@veltdev/sdk 6.0.22 → 6.0.24

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 (59) hide show
  1. package/{chunk-KLBBTIC3.js → chunk-2GJ6LQGO.js} +1 -1
  2. package/chunk-2TBFGTFV.js +1 -0
  3. package/{chunk-EO6L3AMW.js → chunk-3ETDYFCP.js} +1 -1
  4. package/{chunk-THHNU3CV.js → chunk-4OP5FRJZ.js} +1 -1
  5. package/{chunk-IZ4JZWW3.js → chunk-5CE5EQ5I.js} +1 -1
  6. package/{chunk-TSVEXSPX.js → chunk-AAZRCO7P.js} +1 -1
  7. package/{chunk-LIE3QUYS.js → chunk-B4MCRMP7.js} +1 -1
  8. package/{chunk-FKT4RRXE.js → chunk-D4RIWWWT.js} +1 -1
  9. package/{chunk-BKRNQPLW.js → chunk-FAOXE2LY.js} +1 -1
  10. package/{chunk-LZD424IN.js → chunk-FV4CYQIJ.js} +1 -1
  11. package/{chunk-Y3GDB5Y5.js → chunk-FXHOBF24.js} +1 -1
  12. package/{chunk-TGU6RDMK.js → chunk-FZKRXZIZ.js} +1 -1
  13. package/{chunk-KXYVKXXQ.js → chunk-HRFML32S.js} +1 -1
  14. package/{chunk-KBHHOQF7.js → chunk-HWSQCIIL.js} +1 -1
  15. package/chunk-K7KCPFC7.js +1 -0
  16. package/{chunk-TDQOVJ2P.js → chunk-MKJOFE4P.js} +1 -1
  17. package/{chunk-WNYOMHEK.js → chunk-N366MN5J.js} +1 -1
  18. package/{chunk-XDY2NCFJ.js → chunk-NAJL2GCA.js} +1 -1
  19. package/{chunk-U6IYPBIQ.js → chunk-NEJKRV3M.js} +1 -1
  20. package/{chunk-7NB67YTZ.js → chunk-OL2RJSA5.js} +1 -1
  21. package/{chunk-SXISQLEE.js → chunk-PS5CHEBA.js} +1 -1
  22. package/{chunk-LS7ATBSW.js → chunk-QWB3Q3X3.js} +1 -1
  23. package/{chunk-3TQDQN3X.js → chunk-R7PGKNXH.js} +1 -1
  24. package/{chunk-R2RJ3D6W.js → chunk-RHUUOSBK.js} +1 -1
  25. package/{chunk-NE4ASEU4.js → chunk-S3ZS5EPV.js} +1 -1
  26. package/{chunk-2OM7GRSC.js → chunk-S5U5EJSH.js} +1 -1
  27. package/{chunk-2FL7NHMS.js → chunk-T3JQYK3N.js} +1 -1
  28. package/{chunk-3NA76ZTF.js → chunk-U76HLU2G.js} +9 -9
  29. package/{chunk-D4JLBBJT.js → chunk-UYR6HRGI.js} +1 -1
  30. package/{chunk-HAZARMBL.js → chunk-VSBVKZYP.js} +1 -1
  31. package/{chunk-OWKVWABT.js → chunk-VTMNUIEK.js} +1 -1
  32. package/{chunk-UW67T555.js → chunk-WQPVR2MY.js} +1 -1
  33. package/{chunk-WQKWNVKC.js → chunk-WQQKFPTA.js} +1 -1
  34. package/{chunk-WR4YGVJB.js → chunk-Y7EFNXLS.js} +1 -1
  35. package/{chunk-SAB762YK.js → chunk-ZLOF7AUP.js} +1 -1
  36. package/{chunk-C4L4DJUX.js → chunk-ZN6UGTUP.js} +1 -1
  37. package/package.json +1 -1
  38. package/velt-activity-log.js +1 -1
  39. package/velt-area.js +1 -1
  40. package/velt-arrow.js +1 -1
  41. package/velt-comment.js +6 -6
  42. package/velt-crdt.js +1 -1
  43. package/velt-cursor.js +2 -2
  44. package/velt-huddle.js +1 -1
  45. package/velt-live-state-sync.js +1 -1
  46. package/velt-notification.js +1 -1
  47. package/velt-portable.js +1 -1
  48. package/velt-presence.js +1 -1
  49. package/velt-reaction.js +1 -1
  50. package/velt-recorder.js +1 -1
  51. package/velt-rewriter.js +1 -1
  52. package/velt-selection.js +1 -1
  53. package/velt-tag.js +1 -1
  54. package/velt-user-invite.js +1 -1
  55. package/velt-user-request.js +1 -1
  56. package/velt-video-player.js +1 -1
  57. package/velt-views.js +3 -3
  58. package/velt.js +2 -2
  59. package/chunk-F3DXFJ7X.js +0 -1
@@ -120,8 +120,8 @@ ${n.map((r,i)=>`${i+1}) ${r.toString()}`).join(`
120
120
  <a href="${this.videoPlayerUrl}" target="_blank">
121
121
  <img src="${e||this.thumbnailWithPlayIconUrl||this.thumbnailUrl}" />
122
122
  </a>
123
- `}};var ZU=class{constructor(){this.type="recorder",this.recordingType="audio",this.mode="floating",this.attachment=null,this.attachments=[],this.pageInfo=new Et}};var eV=class{constructor(){this.type="rewriter",this.rewriterType="copywriter",this.pageInfo=new Et}};var rp=class{constructor(){this.screenWidth=0,this.screenHeight=0,this.screenScrollHeight=0}};var tV=class{constructor(){this.pageInfo=new Et}},QNe={Start:"start",End:"end"},JNe={Avatar:"avatar",Label:"label"};var nV=class{constructor(){this.sources=[],this.playerState=new rR}},rR=class{constructor(){this.volume=1}};var rV=class{constructor(){this.to=[],this.resolved=!1,this.type="tag",this.pageInfo=new Et}};var iV=class{constructor(){this.visibility="private"}};var sV=class{constructor(){this.reactions=[],this.type="reaction",this.pageInfo=new Et,this.isReactionResolverUsed=!1}};var aV=class{};var Owe={EDITOR:"editor",VIEWER:"viewer"},Mwe={DOES_NOT_EXIST:"does_not_exist",PERMISSION_DENIED:"permission_denied",SOMETHING_WENT_WRONG:"something_went_wrong"};var LX=(function(t){return t.INTERNAL="internal",t.EXTERNAL="external",t})(LX||{}),PX=(function(t){return t.UPDATE_DATA="updateData",t})(PX||{});var Tn=class t{constructor(){this._dataLength=0,this._bufferLength=0,this._state=new Int32Array(4),this._buffer=new ArrayBuffer(68),this._buffer8=new Uint8Array(this._buffer,0,68),this._buffer32=new Uint32Array(this._buffer,0,17),this.start()}static hashStr(e,n=!1){return this.onePassHasher.start().appendStr(e).end(n)}static hashAsciiStr(e,n=!1){return this.onePassHasher.start().appendAsciiStr(e).end(n)}static _hex(e){let n=t.hexChars,r=t.hexOut,i,o,s,a;for(a=0;a<4;a+=1)for(o=a*8,i=e[a],s=0;s<8;s+=2)r[o+1+s]=n.charAt(i&15),i>>>=4,r[o+0+s]=n.charAt(i&15),i>>>=4;return r.join("")}static _md5cycle(e,n){let r=e[0],i=e[1],o=e[2],s=e[3];r+=(i&o|~i&s)+n[0]-680876936|0,r=(r<<7|r>>>25)+i|0,s+=(r&i|~r&o)+n[1]-389564586|0,s=(s<<12|s>>>20)+r|0,o+=(s&r|~s&i)+n[2]+606105819|0,o=(o<<17|o>>>15)+s|0,i+=(o&s|~o&r)+n[3]-1044525330|0,i=(i<<22|i>>>10)+o|0,r+=(i&o|~i&s)+n[4]-176418897|0,r=(r<<7|r>>>25)+i|0,s+=(r&i|~r&o)+n[5]+1200080426|0,s=(s<<12|s>>>20)+r|0,o+=(s&r|~s&i)+n[6]-1473231341|0,o=(o<<17|o>>>15)+s|0,i+=(o&s|~o&r)+n[7]-45705983|0,i=(i<<22|i>>>10)+o|0,r+=(i&o|~i&s)+n[8]+1770035416|0,r=(r<<7|r>>>25)+i|0,s+=(r&i|~r&o)+n[9]-1958414417|0,s=(s<<12|s>>>20)+r|0,o+=(s&r|~s&i)+n[10]-42063|0,o=(o<<17|o>>>15)+s|0,i+=(o&s|~o&r)+n[11]-1990404162|0,i=(i<<22|i>>>10)+o|0,r+=(i&o|~i&s)+n[12]+1804603682|0,r=(r<<7|r>>>25)+i|0,s+=(r&i|~r&o)+n[13]-40341101|0,s=(s<<12|s>>>20)+r|0,o+=(s&r|~s&i)+n[14]-1502002290|0,o=(o<<17|o>>>15)+s|0,i+=(o&s|~o&r)+n[15]+1236535329|0,i=(i<<22|i>>>10)+o|0,r+=(i&s|o&~s)+n[1]-165796510|0,r=(r<<5|r>>>27)+i|0,s+=(r&o|i&~o)+n[6]-1069501632|0,s=(s<<9|s>>>23)+r|0,o+=(s&i|r&~i)+n[11]+643717713|0,o=(o<<14|o>>>18)+s|0,i+=(o&r|s&~r)+n[0]-373897302|0,i=(i<<20|i>>>12)+o|0,r+=(i&s|o&~s)+n[5]-701558691|0,r=(r<<5|r>>>27)+i|0,s+=(r&o|i&~o)+n[10]+38016083|0,s=(s<<9|s>>>23)+r|0,o+=(s&i|r&~i)+n[15]-660478335|0,o=(o<<14|o>>>18)+s|0,i+=(o&r|s&~r)+n[4]-405537848|0,i=(i<<20|i>>>12)+o|0,r+=(i&s|o&~s)+n[9]+568446438|0,r=(r<<5|r>>>27)+i|0,s+=(r&o|i&~o)+n[14]-1019803690|0,s=(s<<9|s>>>23)+r|0,o+=(s&i|r&~i)+n[3]-187363961|0,o=(o<<14|o>>>18)+s|0,i+=(o&r|s&~r)+n[8]+1163531501|0,i=(i<<20|i>>>12)+o|0,r+=(i&s|o&~s)+n[13]-1444681467|0,r=(r<<5|r>>>27)+i|0,s+=(r&o|i&~o)+n[2]-51403784|0,s=(s<<9|s>>>23)+r|0,o+=(s&i|r&~i)+n[7]+1735328473|0,o=(o<<14|o>>>18)+s|0,i+=(o&r|s&~r)+n[12]-1926607734|0,i=(i<<20|i>>>12)+o|0,r+=(i^o^s)+n[5]-378558|0,r=(r<<4|r>>>28)+i|0,s+=(r^i^o)+n[8]-2022574463|0,s=(s<<11|s>>>21)+r|0,o+=(s^r^i)+n[11]+1839030562|0,o=(o<<16|o>>>16)+s|0,i+=(o^s^r)+n[14]-35309556|0,i=(i<<23|i>>>9)+o|0,r+=(i^o^s)+n[1]-1530992060|0,r=(r<<4|r>>>28)+i|0,s+=(r^i^o)+n[4]+1272893353|0,s=(s<<11|s>>>21)+r|0,o+=(s^r^i)+n[7]-155497632|0,o=(o<<16|o>>>16)+s|0,i+=(o^s^r)+n[10]-1094730640|0,i=(i<<23|i>>>9)+o|0,r+=(i^o^s)+n[13]+681279174|0,r=(r<<4|r>>>28)+i|0,s+=(r^i^o)+n[0]-358537222|0,s=(s<<11|s>>>21)+r|0,o+=(s^r^i)+n[3]-722521979|0,o=(o<<16|o>>>16)+s|0,i+=(o^s^r)+n[6]+76029189|0,i=(i<<23|i>>>9)+o|0,r+=(i^o^s)+n[9]-640364487|0,r=(r<<4|r>>>28)+i|0,s+=(r^i^o)+n[12]-421815835|0,s=(s<<11|s>>>21)+r|0,o+=(s^r^i)+n[15]+530742520|0,o=(o<<16|o>>>16)+s|0,i+=(o^s^r)+n[2]-995338651|0,i=(i<<23|i>>>9)+o|0,r+=(o^(i|~s))+n[0]-198630844|0,r=(r<<6|r>>>26)+i|0,s+=(i^(r|~o))+n[7]+1126891415|0,s=(s<<10|s>>>22)+r|0,o+=(r^(s|~i))+n[14]-1416354905|0,o=(o<<15|o>>>17)+s|0,i+=(s^(o|~r))+n[5]-57434055|0,i=(i<<21|i>>>11)+o|0,r+=(o^(i|~s))+n[12]+1700485571|0,r=(r<<6|r>>>26)+i|0,s+=(i^(r|~o))+n[3]-1894986606|0,s=(s<<10|s>>>22)+r|0,o+=(r^(s|~i))+n[10]-1051523|0,o=(o<<15|o>>>17)+s|0,i+=(s^(o|~r))+n[1]-2054922799|0,i=(i<<21|i>>>11)+o|0,r+=(o^(i|~s))+n[8]+1873313359|0,r=(r<<6|r>>>26)+i|0,s+=(i^(r|~o))+n[15]-30611744|0,s=(s<<10|s>>>22)+r|0,o+=(r^(s|~i))+n[6]-1560198380|0,o=(o<<15|o>>>17)+s|0,i+=(s^(o|~r))+n[13]+1309151649|0,i=(i<<21|i>>>11)+o|0,r+=(o^(i|~s))+n[4]-145523070|0,r=(r<<6|r>>>26)+i|0,s+=(i^(r|~o))+n[11]-1120210379|0,s=(s<<10|s>>>22)+r|0,o+=(r^(s|~i))+n[2]+718787259|0,o=(o<<15|o>>>17)+s|0,i+=(s^(o|~r))+n[9]-343485551|0,i=(i<<21|i>>>11)+o|0,e[0]=r+e[0]|0,e[1]=i+e[1]|0,e[2]=o+e[2]|0,e[3]=s+e[3]|0}start(){return this._dataLength=0,this._bufferLength=0,this._state.set(t.stateIdentity),this}appendStr(e){let n=this._buffer8,r=this._buffer32,i=this._bufferLength,o,s;for(s=0;s<e.length;s+=1){if(o=e.charCodeAt(s),o<128)n[i++]=o;else if(o<2048)n[i++]=(o>>>6)+192,n[i++]=o&63|128;else if(o<55296||o>56319)n[i++]=(o>>>12)+224,n[i++]=o>>>6&63|128,n[i++]=o&63|128;else{if(o=(o-55296)*1024+(e.charCodeAt(++s)-56320)+65536,o>1114111)throw new Error("Unicode standard supports code points up to U+10FFFF");n[i++]=(o>>>18)+240,n[i++]=o>>>12&63|128,n[i++]=o>>>6&63|128,n[i++]=o&63|128}i>=64&&(this._dataLength+=64,t._md5cycle(this._state,r),i-=64,r[0]=r[16])}return this._bufferLength=i,this}appendAsciiStr(e){let n=this._buffer8,r=this._buffer32,i=this._bufferLength,o,s=0;for(;;){for(o=Math.min(e.length-s,64-i);o--;)n[i++]=e.charCodeAt(s++);if(i<64)break;this._dataLength+=64,t._md5cycle(this._state,r),i=0}return this._bufferLength=i,this}appendByteArray(e){let n=this._buffer8,r=this._buffer32,i=this._bufferLength,o,s=0;for(;;){for(o=Math.min(e.length-s,64-i);o--;)n[i++]=e[s++];if(i<64)break;this._dataLength+=64,t._md5cycle(this._state,r),i=0}return this._bufferLength=i,this}getState(){let e=this._state;return{buffer:String.fromCharCode.apply(null,Array.from(this._buffer8)),buflen:this._bufferLength,length:this._dataLength,state:[e[0],e[1],e[2],e[3]]}}setState(e){let n=e.buffer,r=e.state,i=this._state,o;for(this._dataLength=e.length,this._bufferLength=e.buflen,i[0]=r[0],i[1]=r[1],i[2]=r[2],i[3]=r[3],o=0;o<n.length;o+=1)this._buffer8[o]=n.charCodeAt(o)}end(e=!1){let n=this._bufferLength,r=this._buffer8,i=this._buffer32,o=(n>>2)+1;this._dataLength+=n;let s=this._dataLength*8;if(r[n]=128,r[n+1]=r[n+2]=r[n+3]=0,i.set(t.buffer32Identity.subarray(o),o),n>55&&(t._md5cycle(this._state,i),i.set(t.buffer32Identity)),s<=4294967295)i[14]=s;else{let a=s.toString(16).match(/(.*?)(.{0,8})$/);if(a===null)return;let c=parseInt(a[2],16),l=parseInt(a[1],16)||0;i[14]=c,i[15]=l}return t._md5cycle(this._state,i),e?this._state:t._hex(this._state)}};Tn.stateIdentity=new Int32Array([1732584193,-271733879,-1732584194,271733878]);Tn.buffer32Identity=new Int32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);Tn.hexChars="0123456789abcdef";Tn.hexOut=[];Tn.onePassHasher=new Tn;if(Tn.hashStr("hello")!=="5d41402abc4b2a76b9719d911017c592")throw new Error("Md5 self test failed.");var cV=["annotationId","annotationNumber","visibilityConfig","actions","comments","commentCategories","from","color","resolved","inProgress","lastUpdated","createdAt","positionX","positionY","screenWidth","screenHeight","screenScrollHeight","screenScrollTop","taggedElementPath","taggedElementRect","targetElement","targetElementId","position","documentParamsId","documentParams","locationId","location","type","commentType","sourceType","metadata","targetTextRange","selectAllContent","approved","status","statusUpdatedByUserId","annotationIndex","pageInfo","assignedTo","priority","ghostComment","areaAnnotationId","context","contextId","iam","isPageAnnotation","targetInlineCommentElementId","inlineCommentSectionConfig","customList","subscribedUsers","unsubscribedUsers","subscribedGroups","resolvedByUserId","resolvedByUser","multiThreadAnnotationId","isDraft","sourceId","views","viewedByUserIds","viewedBy","unread","suggestion","agent","involvedUserIds","mentionedUserIds"],lV=["commentId","context","type","commentText","isCommentTextAvailable","isCommentResolverUsed","commentHtml","replaceContentHtml","replaceContentText","commentVoiceUrl","from","to","lastUpdated","createdAt","status","attachments","recorders","reactionAnnotationIds","taggedUserContacts","customList","toOrganizationUserGroup","isDraft","editedAt","isEdited","reactionAnnotations","sourceType","agent","metadata","actions","progress"],iR=["commentId","context","type","isCommentTextAvailable","isCommentResolverUsed","replaceContentHtml","replaceContentText","commentVoiceUrl","from","to","lastUpdated","createdAt","status","attachments","recorders","reactionAnnotationIds","taggedUserContacts","customList","toOrganizationUserGroup","isDraft","editedAt","isEdited","reactionAnnotations","sourceType","agent","metadata","actions","progress"];var uV=["annotationId","context","commentAnnotationId","reactions","lastUpdated","targetElement","targetElementId","position","locationId","location","type","annotationIndex","pageInfo","from","isReactionResolverUsed","iconUrl","iconEmoji","metadata","involvedUserIds"];var dV=["context","annotationId","commentAnnotationId","from","color","lastUpdated","positionX","positionY","screenWidth","screenHeight","screenScrollHeight","screenScrollTop","recorderedElementPath","recorderedElementRect","targetElement","position","locationId","location","type","recordingType","mode","approved","attachment","attachments","annotationIndex","pageInfo","recordedTime","waveformData","displayName","metadata","latestVersion","recordingEditVersions","chunkUrls","isRecorderResolverUsed","isUrlAvailable"];var kOe=["id","featureType","actionType","eventType","actionUser","timestamp","metadata","targetEntityId","targetSubEntityId","changes","entityData","entityTargetData","displayMessageTemplate","displayMessageTemplateData","displayMessage","actionIcon","immutable","isActivityResolverUsed"];var ST=["userId"];var oR=["commonAncestorContainer","commonAncestorContainerFXpath","commonAncestorContainerCFXpath","commonAncestorContainerAnchor","occurrence"],sR=["attachmentId","isAttachmentResolverUsed","name","bucketPath","size","type","url","thumbnail","thumbnailWithPlayIconUrl","metadata","mimeType","previewImages"],aR=["attachmentId","isAttachmentResolverUsed","bucketPath","size","type","thumbnail","thumbnailWithPlayIconUrl","metadata","mimeType","previewImages"];var hV=["id","tag","type","thumbnailUrl","thumbnailWithPlayIconUrl","videoUrl","audioUrl","videoPlayerUrl","chunkUrls"],cR=["status","targetId","targetType","oldValue","newValue","summary","driftDetected","rejectReason","resolvedBy","resolvedAt","metadata"],lR=["status","targetId","targetType","driftDetected","resolvedBy","resolvedAt"];var Lc="velt://self-hosted-disabled/",Pc=t=>typeof t=="string"&&t.startsWith(Lc),CV=(t,e)=>{try{if(Pc(t))return t;let n=new URL(t),r=n.hostname.split("."),i=r.length>=3?r[0]:"",o=t.replace(n.host,e);if(i){let s=o.includes("?")?"&":"?";o+=`${s}ns=${i}`}return o}catch(n){return M.catch("Error in getProxiedDatabaseUrl: ",n),t}},qOe=t=>{try{let e=localStorage.getItem(F.LOCAL_STORAGE.VELT_AUTH_PROXY_HOST);if(!e)return;let n=atob(e),r=t?.config;n&&r&&(r.apiHost=n,r.tokenApiHost=n)}catch(e){M.catch("Error in applyCachedAuthProxyHost: ",e)}},Mc=(t,e=0)=>{try{let n=3735928559^e,r=1103547991^e;for(let i=0,o;i<t.length;i++)o=t.charCodeAt(i),n=Math.imul(n^o,2654435761),r=Math.imul(r^o,1597334677);return n=Math.imul(n^n>>>16,2246822507)^Math.imul(r^r>>>13,3266489909),r=Math.imul(r^r>>>16,2246822507)^Math.imul(n^n>>>13,3266489909),4294967296*(2097151&r)+(n>>>0)}catch(n){return M.catch("Error in cyrb53: ",n),0}},xX=()=>{try{return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,t=>(+t^crypto.getRandomValues(new Uint8Array(1))[0]&15>>+t/4).toString(16))}catch(t){return M.catch("Error in uuidv4: ",t),""}},Vo=t=>{try{return Tn.hashStr(t)}catch(e){return M.catch("Error in hashStr: ",e),t}},DV=t=>{try{return!t||t.trim().length===0?void 0:Tn.hashStr(t)}catch(e){M.catch("Error in hashForAnchor: ",e);return}},KOe=t=>Mc(t).toString(),YOe=t=>Vo(t),RV=t=>Vo(t).toString(),XOe=t=>Vo(t).toString(),QOe=(t,e)=>{try{let n=t.userIds?.length?[...t.userIds]:[];return n.includes(e)||n.push(e),Ee(B({},t),{userIds:n})}catch(n){return M.catch("Error in ensureUserIdInVisibility: ",n),t}},JOe=t=>{try{if(!t)return!1;if(t.iam?.accessMode===dT.PRIVATE)return!0;let e=t.visibilityConfig?.type;return e==="restricted"||e==="organizationPrivate"}catch(e){return M.catch("Error in isAnnotationPrivate: ",e),!1}},ZOe=(t,e)=>{let n=[];switch(t.type){case"public":return n.push(F.DEFAULT_VELT_CONTEXT),n;case"organizationPrivate":{let r=[...t.organizationId?[t.organizationId]:[],...t.organizationIds??[]].filter((i,o,s)=>!!i&&s.indexOf(i)===o);if(!r.length)throw new Error("organizationId is required for organizationPrivate visibility type");r.forEach(i=>{let o=RV(i);n.push(`${F.VISIBILITY_ORG_PREFIX}${o}`)});break}case"restricted":{if(!t.userIds?.length)throw new Error("userIds is required for restricted visibility type");t.userIds.filter((i,o,s)=>!!i&&s.indexOf(i)===o).forEach(i=>{let o=Vo(i).toString();n.push(`${F.VISIBILITY_SELF_PREFIX}${o}`)});break}default:throw new Error(`Invalid visibility type: ${t.type}`)}if(e){let r=`${F.VISIBILITY_SELF_PREFIX}${Vo(e).toString()}`;n.includes(r)||n.push(r)}return n},e0e=(t,e)=>{let n={type:t.type};try{if(t.type==="public")return n;t.organizationId&&(n.organizationId=t.organizationId),t.organizationIds?.length&&(n.organizationIds=t.organizationIds);let r=[...t.userIds??[],...e?[e]:[]].filter((i,o,s)=>!!i&&s.indexOf(i)===o);r.length&&(n.userIds=r)}catch(r){M.catch("Error in buildStoredVisibilityConfig: ",r)}return n},t0e=t=>{let e=[F.DEFAULT_VELT_CONTEXT];try{t?.userId&&e.push(`${F.VISIBILITY_SELF_PREFIX}${Vo(t.userId).toString()}`),t?.clientOrganizationId?e.push(`${F.VISIBILITY_ORG_PREFIX}${RV(t.clientOrganizationId)}`):t?.fallbackServerOrganizationId&&e.push(`${F.VISIBILITY_ORG_PREFIX}${t.fallbackServerOrganizationId}`)}catch(n){M.catch("Error in buildViewerVisibilityTokens: ",n)}return e},n0e=(t,e)=>{try{if(!t?.length)return t??[];let n=new Set(e?.tokens??[]);return t.filter(r=>{try{let i=r?.context?.accessFields,o=wV(i),s=r?.visibilityConfig?.type,a=s==="organizationPrivate"||s==="restricted",c=o.length>0&&!i?.includes(F.DEFAULT_VELT_CONTEXT);return!!(!a&&!c||!i?.length||e?.userId&&r?.from?.userId===e.userId||o.some(l=>n.has(l))||e?.userId&&r?.visibilityConfig?.userIds?.includes(e.userId))}catch(i){return M.catch("Error filtering annotation visibility: ",i),!0}})}catch(n){return M.catch("Error in filterAnnotationsVisibleToUser: ",n),t}},NV=t=>{try{return typeof t=="string"&&(t.startsWith(F.VISIBILITY_SELF_PREFIX)||t.startsWith(F.VISIBILITY_ORG_PREFIX))}catch(e){return M.catch("Error in isVisibilityAccessToken: ",e),!1}},wV=t=>{try{return(t||[]).filter(e=>NV(e))}catch(e){return M.catch("Error in extractVisibilityAccessTokens: ",e),[]}},r0e=t=>{try{return!!t&&typeof t=="object"&&Object.keys(t).some(e=>!(e==="default"&&t[e]==="velt"))}catch(e){return M.catch("Error in isCustomerContextAccess: ",e),!1}},i0e=(t,e)=>{try{let n=Array.isArray(e)?e:[],r=n.length>0&&!n.includes(F.DEFAULT_VELT_CONTEXT),i=t;if(r&&t?.access&&typeof t.access=="object"&&t.access.default==="velt"){let s=B({},t.access);delete s.default,i=Ee(B({},t),{access:s})}let o=sQ(i);return r&&(o=o.filter(s=>s!==F.DEFAULT_VELT_CONTEXT)),r?[...new Set([...n,...o])]:o}catch(n){return M.catch("Error in mergeAccessFieldTokenFamilies: ",n),Array.isArray(e)?e:[]}},kX=t=>{try{if(!t)return null;let e=t?.context?.accessFields??[];if(!e?.length)return null;let n=wV(e),r=t?.visibilityConfig?.type,i=r==="restricted"||r==="organizationPrivate",o=n.length>0&&!e.includes(F.DEFAULT_VELT_CONTEXT);if(!i&&!o)return null;let s=n.some(h=>h.startsWith(F.VISIBILITY_ORG_PREFIX)),c={type:i?r:s?"organizationPrivate":"restricted",accessTokens:n},l=t?.visibilityConfig?.userIds;l?.length&&(c.userIds=[...l]);let d=[...t?.visibilityConfig?.organizationId?[t.visibilityConfig.organizationId]:[],...t?.visibilityConfig?.organizationIds??[]].filter((h,f,g)=>!!h&&g.indexOf(h)===f);return d.length&&(c.organizationIds=d),c}catch(e){M.catch("Error in buildNotificationVisibilityStamp: ",e);try{let n=t?.visibilityConfig?.type;if(n==="restricted"||n==="organizationPrivate")return{type:n,accessTokens:[]}}catch{}return null}},o0e=(t,e)=>{try{if(!e?.length)return[];let n=kX(t);if(!n||n.type!=="restricted")return[];let r=new Set([...n.userIds??[],...t?.from?.userId?[t.from.userId]:[]]),i=new Set(n.accessTokens??[]);return e.filter(o=>!o||r.has(o)?!1:!i.has(`${F.VISIBILITY_SELF_PREFIX}${Vo(o).toString()}`))}catch(n){return M.catch("Error in getVisibilityDeniedUserIds: ",n),[]}},s0e=(t,e)=>{try{if(!t?.length)return t??[];let n=new Set([F.DEFAULT_VELT_CONTEXT,...e||[]]);return t.filter(r=>{try{let i=r?.context?.accessFields;if(!i?.length)return!0;let o=i.filter(s=>!NV(s));return o.length?o.some(s=>n.has(s)):!0}catch(i){return M.catch("Error filtering annotation doc-context match: ",i),!0}})}catch(n){return M.catch("Error in filterAnnotationsMatchingDocContext: ",n),t}},a0e=(t,e)=>{try{if(!t?.length)return t??[];let n=e?.statusIds?.filter(a=>a!=null),r=e?.locationIds?.filter(a=>a!=null),i=n?.length?new Set(n):null,o=r?.length?new Set(r):null,s=e?.veltFolderId||null;return!i&&!o&&!s?t:t.filter(a=>{try{return!(i&&!i.has(a?.status?.id)||s&&a?.metadata?.veltFolderId!==s||o&&!o.has(a?.location?.id))}catch(c){return M.catch("Error filtering annotation query scope: ",c),!0}})}catch(n){return M.catch("Error in filterAnnotationsMatchingQueryScope: ",n),t}},c0e=t=>{try{if(t)return typeof t=="string"?Tn.hashStr(t):Array.isArray(t)?Tn.hashStr(t.join("-")):"";{let e=xX();return Tn.hashStr(e)}}catch(e){return M.catch("Error in getMultiThreadAnnotationId: ",e),""}},bV=(t,e,n)=>{try{if(t&&e){if(t.featureAllowList&&t.featureAllowList.length&&!t.featureAllowList.includes(n)||t.userIdAllowList&&t.userIdAllowList.length&&!t.userIdAllowList.includes(e.userId)||t.userGroupIdAllowList&&t.userGroupIdAllowList.length&&!t.userGroupIdAllowList.includes(e.groupId||"")||t.userPlanAllowList&&t.userPlanAllowList.length&&!t.userPlanAllowList.includes(e.plan||""))return!1;if(t.urlAllowList){let r=window.location.href;if(t.urlAllowList.length&&!t.urlAllowList.filter(i=>r.includes(i)).length)return!1}return!0}return!1}catch(r){return M.catch("Error in isFeatureAllowed: ",r),!1}},nd=()=>{try{let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",e="";for(let n=0;n<20;n++)e+=t.charAt(Math.floor(Math.random()*t.length));return e}catch(t){return M.catch("Error in utils generateId: ",t),""}},l0e=t=>{try{let e=0;if(t){let n=new Date().getTime();e=Math.abs(n-t)}return e}catch(e){return M.catch("Error in utils getFirebaseTimeDiffInMins: ",e),0}};var OV=()=>{try{return qt.debugMode||!!sessionStorage.getItem("debugMode")||!!sessionStorage.getItem("forceDebugMode")}catch(t){return M.catch("Error in showLogs: ",t),!1}},MV=()=>{try{return!!sessionStorage.getItem("debugContextMode")}catch(t){return M.catch("Error in showContextLogs: ",t),!1}},LV=t=>{try{return typeof t!="object"?Object.assign({},...Object.keys(t).sort().map(e=>({[e]:t[e]&&typeof t[e]=="object"?LV(t[e]):t[e]}))):t}catch(e){return M.catch("Error in sortObjectByKeys: ",e),t}},uR=t=>{try{return t!==null&&typeof t=="object"&&!Array.isArray(t)}catch{return!1}},fV=t=>{try{return uR(t)?Object.fromEntries(Object.entries(t).sort(([e],[n])=>e.localeCompare(n)).map(([e,n])=>[e,uR(n)?fV(n):Array.isArray(n)?n.map(r=>uR(r)?fV(r):r):n])):t}catch{return t}},pV=(t,e)=>{try{return typeof e!="object"||e===null?t===e:typeof t!="object"||t===null?!1:Array.isArray(e)?Array.isArray(t)?e.every(n=>t.some(r=>pV(r,n))):!1:Object.keys(e).every(n=>Object.prototype.hasOwnProperty.call(t,n)?pV(t[n],e[n]):!1)}catch{return!1}},FX=(t,e,n)=>y(null,null,function*(){try{let r=yield BX(e),i=new Uint8Array(new TextEncoder().encode(n)).slice(0,16),o=new TextEncoder().encode(t),s=yield window.crypto.subtle.encrypt({name:"AES-CBC",iv:i},r,o);return btoa(String.fromCharCode(...new Uint8Array(s)))}catch(r){return M.catch("Error in encrypt: ",r),t}}),UX=(t,e,n)=>y(null,null,function*(){try{let r=yield VX(e),i=new Uint8Array(new TextEncoder().encode(n)).slice(0,16),o=new Uint8Array(atob(t).split("").map(a=>a.charCodeAt(0))),s=yield window.crypto.subtle.decrypt({name:"AES-CBC",iv:i},r,o);return new TextDecoder().decode(s)}catch(r){return M.catch("Error in decrypt: ",r),t}}),VX=t=>y(null,null,function*(){try{let e=new TextEncoder().encode(t),n=new Uint8Array(32);return n.fill(0),n.set(e.slice(0,32)),yield window.crypto.subtle.importKey("raw",n,"AES-CBC",!1,["decrypt"])}catch(e){throw M.catch("Error in importDecryptKey:",e),e}}),wT=(t,e)=>y(null,null,function*(){try{let n="Velt"+e;return yield FX(JSON.stringify(t),n,Vo(n))}catch(n){return M.catch("Error in encryptData: ",n),t}}),sp=(t,e)=>y(null,null,function*(){try{let n="Velt"+e,r=yield UX(t,n,Vo(n));return JSON.parse(r)}catch(n){return M.catch("Error in decryptData: ",n),null}}),u0e=t=>{try{switch(t?.region){case"asiaSouthEast1":return"asiaSouthEast1";case"asiaNorthEast1":return"asiaNorthEast1";case"europeWest1":return"europeWest1";case"australiaSouthEast1":return"australiaSouthEast1";default:return"usCentral1"}}catch(e){return M.catch("Error in getRegion: ",e),"usCentral1"}},BX=t=>y(null,null,function*(){try{let e=new TextEncoder().encode(t),n=new Uint8Array(32);return n.fill(0),n.set(e.slice(0,32)),yield window.crypto.subtle.importKey("raw",n,"AES-CBC",!1,["encrypt"])}catch(e){throw M.catch("Error in importKey:",e),e}}),d0e=t=>{try{if(t&&typeof t=="object"){let e=LV(t);return Mc(JSON.stringify(e))}else return null}catch(e){return M.catch("Error in utils generateLocationId: ",e),null}},qi=(t,e=[])=>(t?.tagName?.toLowerCase().indexOf("velt-")>=0&&![F.TAGS.VELT_VIDEO_PLAYER.toLowerCase()].includes(t?.tagName?.toLowerCase())||t?.tagName?.toLowerCase().indexOf("snippyly-")>=0||t?.className?.split&&(t?.className?.split(" ")?.indexOf("snippyly-overlay-panel")>=0||t?.className?.split(" ")?.indexOf("cdk-overlay-container")>=0))&&!e?.includes(t?.tagName?.toLowerCase())?!0:t?.parentNode&&qi(t?.parentNode,e),h0e=(t,e=[])=>{try{let n=typeof t.composedPath=="function"?t.composedPath():[],r=n.length>0?n:[t?.target];for(let i of r){let o=i;if(!(!o||typeof o.tagName!="string")&&qi(o,e))return!0}}catch(n){M.catch("Error in utils isSnippylyEventTarget: ",n)}return!1},rd=t=>{try{return!!document?.body?.contains(t)}catch(e){return M.catch("Error in utils isElementInsideBody: ",e),!1}};var GX=(t,e)=>{try{return Object.prototype.toString.call(t)===Object.prototype.toString.call(e)?Object.prototype.toString.call(t)==="[object Object]"||Object.prototype.toString.call(t)==="[object Array]"?Object.keys(t).length!==Object.keys(e).length?!1:Object.keys(t).every(n=>GX(t[n],e[n])):t===e:!1}catch(n){return M.catch("Error in utils deepCompare: ",n),!1}},f0e=(t,e,n=1)=>{try{if(e){let r=gV(e.textContent,t,n);if(r>=0){let i=e.querySelector("script")!==null,o=(e?.ownerDocument).createNodeIterator(e,NodeFilter.SHOW_TEXT,i?{acceptNode:g=>g.parentElement?.tagName==="SCRIPT"?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}:null),s,a=[];for(;s=o.nextNode();)a.push(s);let c=r;if(i){let g=a.reduce((I,S)=>I+(S.textContent||""),""),E=gV(g,t,n);if(E<0)return[];c=E}let l=[],d=t.length,h=c+d,f=0;for(let g=0;g<a.length;g++){let E=a[g],I=f;if(f+=E.textContent?.length,f>=c&&!l.length?l.push({textNode:E,startOffset:c-I}):f>=c&&f<h&&l.push({textNode:E}),f>=h){if(l.length===1&&l[0].textNode===E){l.push({textNode:E,endOffset:c-I+t.length});break}let S=d;l.forEach(L=>{S-=L.textNode.textContent?.length-(L.startOffset||0)}),l.push({textNode:E,endOffset:S});break}}return l}}return[]}catch(r){return M.catch("Error in utils calculateNodes: ",r),[]}},gV=(t,e,n=1)=>{try{if(t?.includes(e)){let r=t.split(e,n);return r.length===n?r.join(e).length:-1}else return-1}catch(r){return M.catch("Error in utils getTextPosition: ",r),-1}},gR=(t,e,n,r,i)=>{try{let o=new Range;o.setStart(t,e),o.setEnd(n,r);let s=o.commonAncestorContainer,c=(s.nodeType===Node.ELEMENT_NODE?s:s.parentElement)?.querySelector("script")!==null,l;if(c){let h=o.cloneContents();h.querySelectorAll("script").forEach(f=>f.remove()),l=h.textContent||""}else l=o.toString();let d=0;if(t.nodeType===Node.TEXT_NODE){let h=t,f="";if(h)for(;h=h.previousSibling;)if(c){if(h.nodeType===Node.ELEMENT_NODE&&h.tagName==="SCRIPT")continue;if(h.nodeType===Node.ELEMENT_NODE){let g=h;if(g.querySelector("script")){let E=g.cloneNode(!0);E.querySelectorAll("script").forEach(I=>I.remove()),f=(E.textContent||"")+f}else f=(h.textContent||"")+f}else h.parentElement?.tagName!=="SCRIPT"&&(f=(h.textContent||"")+f)}else f=(h.textContent||"")+f;if(f){let g=new RegExp(mV(i),"g");d=(f.match(g)||[]).length}}if(l){let h=new RegExp(mV(i),"g");return(l.match(h)||[]).length+d}else return d}catch(o){return M.catch("Error in utils getSelectedTextOccurrenceInRange: ",o),0}},mV=t=>{try{return t&&typeof t=="string"?t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"):t}catch(e){return M.catch("Error in utils escapeRegExp: ",e),t}},jX=t=>{try{return t==null?null:t.scrollHeight>t.clientHeight?t:jX(t?.parentNode)}catch(e){return M.catch("Error in utils getScrollableParent: ",e),null}},DT=t=>{try{return t==null?[]:t.scrollHeight>t.clientHeight||t.scrollWidth>t.clientWidth?[t,...DT(t?.parentNode)]:DT(t?.parentNode)}catch(e){return M.catch("Error in utils getScrollableParents: ",e),[]}};function p0e(t){try{if(!t)return[];let e=DT(t),n=t;for(;n;){let r=n.getRootNode();if(r instanceof ShadowRoot)e.push(...DT(r.host)),n=r.host;else break}return e}catch(e){return M.catch("Error in utils getScrollableParentsCrossingShadowBoundary: ",e),[]}}var g0e=(t,e)=>{try{if(t&&e){let n=t.getBoundingClientRect(),r=e.getBoundingClientRect(),i=n.top-r.top+(e.tagName?.toLowerCase()==="html"?0:e.scrollTop),o=n.left-r.left;return{top:i,left:o}}else return null}catch(n){return M.catch("Error in utils getRelativeTopLeftPosition: ",n),null}},PV=(t,e)=>`${Mc(t+"_"+e)}`,xV=t=>{try{let e=TT(t),n=new Et(!1);return e&&Object.assign(n,e),n.url=e?.url??window.location.href,n.path=e?.path??window.location.pathname,n.queryParams=e?.queryParams??window.location.search,n.baseUrl=e?.baseUrl??window.location.origin,n.title=e?.title??document.title,n}catch(e){M.catch("Error in utils getPageInfo: ",e);return}},HX=t=>{try{return t?t?.hasAttribute&&t?.hasAttribute(F.ATTRIBUTES.VELT_COMMENT_DISABLED)?!0:HX(t?.parentElement):!1}catch(e){return M.catch("Error in utils isCommentDisabledOnElement: ",e),!1}},ap=".ProseMirror[contenteditable]",EV=new Set,id=(t,e)=>{try{if(EV.has(t))return;EV.add(t),M.catch(`Error in utils ${t} (treated as "not editor content"): `,e)}catch{}};var Oc=t=>{try{return!t||!t.isConnected?!1:!!(t.nodeType===Node.ELEMENT_NODE?t:t.parentElement)?.closest?.(ap)}catch(e){return id("isNodeInsideRichTextEditor",e),!1}},_V=t=>{if(!t||!t.isConnected)return null;let e=null,n=t.nodeType===Node.ELEMENT_NODE?t:t.parentElement;for(;n=n?.closest?.(ap)??null;)e=n,n=n.parentElement;return e},$X=t=>{try{return!!t?.querySelector?.(ap)}catch(e){return id("containsRichTextEditor",e),!1}},kV=(t,e)=>{let n=e.ownerDocument.createRange();return n.selectNodeContents(e),t.compareBoundaryPoints(Range.START_TO_START,n)>0&&n.setStart(t.startContainer,t.startOffset),t.compareBoundaryPoints(Range.END_TO_END,n)<0&&n.setEnd(t.endContainer,t.endOffset),n},WX=(t,e)=>{let n=t;for(;n&&n!==e;){if(n.nextSibling)return n.nextSibling;n=n.parentNode}return null},zX=(t,e)=>{let n=kV(t,e);if(n.collapsed)return!1;let{startContainer:r,startOffset:i,endContainer:o,endOffset:s}=n,a=d=>{let h=d===r?i:0;return(d===o?s:d.length)>h},c=e.ownerDocument.createTreeWalker(e,NodeFilter.SHOW_TEXT),l;for(r.nodeType===Node.TEXT_NODE?l=r:(l=r.childNodes[i]??WX(r,e),l&&l.nodeType!==Node.TEXT_NODE&&(c.currentNode=l,l=c.nextNode()));l;){if(n.comparePoint(l,0)>0)return!1;if(a(l))return!0;c.currentNode=l,l=c.nextNode()}return!1},FV=t=>{let e=new Set,n=_V(t.startContainer),r=_V(t.endContainer);n&&e.add(n),r&&e.add(r);let i=t.commonAncestorContainer,s=(i?.nodeType===Node.TEXT_NODE?i.parentElement:i)?.querySelectorAll?.(ap)??[];for(let a=0;a<s.length;a++)t.intersectsNode(s[a])&&e.add(s[a]);return e},TV=(t,e)=>{let n=e.parentNode;if(!n)return!1;let r=Array.prototype.indexOf.call(n.childNodes,e);return t.comparePoint(n,r)===0&&t.comparePoint(n,r+1)===0},qX=t=>{try{if(!t||t.collapsed)return!1;for(let e of FV(t))if(zX(t,e))return!0;return!1}catch(e){return id("doesRangeTouchRichTextEditor",e),!1}},m0e=t=>{try{if(!t||t.collapsed)return!1;if(qX(t))return!0;for(let e of FV(t)){if(TV(t,e))return!0;let n=kV(t,e);if(n.collapsed)continue;let r=e.ownerDocument.createTreeWalker(e,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT);for(;r.nextNode();)if(TV(n,r.currentNode))return!0}return!1}catch(e){return id("doesRangeIntersectRichTextEditorNode",e),!1}},KX=t=>{try{if(!t||Oc(t))return;if(!$X(t)){t.normalize();return}Array.from(t.childNodes).forEach(e=>{e.nodeType===Node.ELEMENT_NODE&&!e.matches(ap)&&KX(e)})}catch(e){id("normalizeOutsideRichTextEditors",e)}},E0e=t=>{try{let e=Oc(t.startContainer),n=Oc(t.endContainer);if(!e&&!n)return!0;let r=t.commonAncestorContainer,i=r.nodeType===Node.ELEMENT_NODE?r:r.parentNode;if(!i)return!1;let o=(i.ownerDocument||document).createTreeWalker(i,NodeFilter.SHOW_TEXT),s=null,a=null;for(;o.nextNode();){let c=o.currentNode;c.length&&t.intersectsNode(c)&&!Oc(c)&&(s=s||c,a=c)}return!s||!a?!1:(e&&t.setStart(s,0),n&&t.setEnd(a,a.length),!0)}catch(e){return id("moveRangeBoundariesOutOfRichTextEditors",e),!1}},YX=t=>{try{return t?t?.hasAttribute&&t?.hasAttribute(F.ATTRIBUTES.VELT_TAG_DISABLED)?!0:YX(t?.parentElement):!1}catch(e){return M.catch("Error in utils isTagDisabledOnElement: ",e),!1}},XX=t=>{try{return t?t?.hasAttribute&&t?.hasAttribute(F.ATTRIBUTES.VELT_ARROW_DISABLED)?!0:XX(t?.parentElement):!1}catch(e){return M.catch("Error in utils isArrowDisabledOnElement: ",e),!1}},QX=t=>{try{return t?t?.hasAttribute&&t?.hasAttribute(F.ATTRIBUTES.VELT_AREA_DISABLED)?!0:QX(t?.parentElement):!1}catch(e){return M.catch("Error in utils isAreaDisabledOnElement: ",e),!1}},JX=t=>{try{return t?t?.hasAttribute&&t?.hasAttribute(F.ATTRIBUTES.VELT_RECORDER_DISABLED)?!0:JX(t?.parentElement):!1}catch(e){return M.catch("Error in utils isRecorderDisabledOnElement: ",e),!1}};var xc=()=>{try{return window?.Snippyly?.version}catch(t){return M.catch("Error in utils getSdkVersion: ",t),null}},_0e=t=>{try{return Object.fromEntries(Object.entries(t).filter(([e,n])=>n!==void 0))}catch(e){return M.catch("Error in utils removeUndefinedKeys: ",e),t}},T0e=t=>{try{let e=new URL(t);return Object.values(F.URL_PARAMS).forEach(n=>{e.searchParams.delete(n)}),e.href}catch(e){return M.catch("Error in utils excludeSnippylyParamsFromUrl: ",e),t}},y0e=t=>{try{navigator.clipboard.writeText(t)}catch(e){M.catch("Error in copyToClipboard: ",e)}},dR=t=>{try{let e=UV(t);return e&&typeof e=="string"&&e.includes("/svg")&&(e=e.split("/svg")[0]+"/*[name()='svg']"),e}catch(e){M.catch("Error in utils getXPath:",e)}},UV=t=>{try{if(t){if(typeof t=="string")return document.evaluate(t,document,null,0,null);if(!t||t.nodeType!=1)return"";if(t.id&&t?.tagName?.toLowerCase()!=="svg"&&document.querySelectorAll(`[id='${t.id}']`)?.length===1)return"//*[@id='"+t.id+"']";let e=[].filter.call(t.parentNode?.children?t.parentNode?.children:[],function(n){return n.tagName==t.tagName});return UV(t.parentNode)+"/"+t.tagName.toLowerCase()+(e.length>1?"["+([].indexOf.call(e,t)+1)+"]":"")}}catch(e){M.catch("Error in utils calculateXPath:",e)}},I0e=t=>{try{let e=[];return t.forEach(n=>{let r={};r.commonAncestorContainer=ZX(n.commonAncestorContainer),r.text=n.toString(),r.occurrence=gR(n.commonAncestorContainer,0,n.startContainer,n.startOffset,n.toString())+1,e.push(r)}),e}catch{return[]}},ZX=t=>{try{if(t.nodeType===Node.TEXT_NODE){let e=1,n=t.previousSibling;for(;n;)n.nodeType===Node.TEXT_NODE&&e++,n=n.previousSibling;return dR(t.parentElement)}else return dR(t)}catch(e){return M.catch("Error in utils getXPathForText: ",e),dR(t)}},eQ=(t,e)=>{try{return t?t?.hasAttribute&&(e&&t.hasAttribute("contenteditable")||t?.getAttribute(F.ATTRIBUTES.VELT_LIVE_SELECTION_ENABLED)==="true")?t:eQ(t?.parentElement,e):null}catch(n){return M.catch("Error in utils getSelectionEnabledElement: ",n),null}},v0e=t=>{try{let e,n=[],r=document.createTreeWalker(t,NodeFilter.SHOW_TEXT,null);for(;e=r.nextNode();)n.push(e);return n}catch(e){return M.catch("Error in utils getTextNodesInsideElement: ",e),[]}},S0e=t=>{try{return t<576||t>=576&&t<767?"Mobile":t>=768&&t<992?"Tablet":t>=992&&t<1520?"Desktop":"Monitor"}catch(e){return M.catch("Error in utils getDeviceTypeFromDeviceWidth: ",e),""}},VV=t=>new Promise(e=>setTimeout(e,t)),A0e=(t,e=0)=>new Promise((n,r)=>{let i=document.createElement("video"),o=navigator.userAgent.includes("Firefox");o&&(i.preload="auto"),i.setAttribute("src",URL.createObjectURL(t)),i.load(),i.addEventListener("error",s=>{r("error when loading video file: "+s)}),i.addEventListener("loadedmetadata",()=>{let s=()=>{if(i.duration<e){r("video is too short.");return}setTimeout(()=>{i.currentTime=e},200),i.addEventListener("seeked",()=>{let a=document.createElement("canvas");a.width=i.videoWidth,a.height=i.videoHeight;let c=a.getContext("2d");c.drawImage(i,0,0,a.width,a.height),c.canvas.toBlob(l=>{i.remove(),n(l)},"image/jpeg",.75)})};if(o&&i.duration>0&&i.duration<10&&t.size>1e6){setTimeout(()=>{i.duration<e&&(e=Math.max(.1,i.duration/2)),s()},1e3);return}s()})}),C0e=t=>{try{return new Promise((e,n)=>{let r=new FileReader;r.onloadend=()=>e(r.result),r.readAsDataURL(t)})}catch(e){return M.catch("Error in utils blobToBase64: ",e),Promise.resolve("")}},D0e=(t,e="image/jpeg")=>{try{let n=atob(t.split(",")[1]),r=new ArrayBuffer(n.length),i=new Uint8Array(r);for(let o=0;o<n.length;o++)i[o]=n.charCodeAt(o);return new Blob([r],{type:e})}catch(n){return M.catch("Error in utils base64ToBlob: ",n),null}},R0e=(t,e,n=20)=>new Promise((r,i)=>{let o=new Image;o.crossOrigin="Anonymous",o.onload=()=>{let s=o.width,a=o.height,c=600,l=a/s*c,d="http://www.w3.org/2000/svg",h=document.createElementNS(d,"svg");h.setAttribute("xmlns",d),h.setAttribute("width",c.toString()),h.setAttribute("height",l.toString()),h.setAttribute("viewBox",`0 0 ${c} ${l}`);let f=document.createElementNS(d,"circle"),g=document.createElementNS(d,"polygon"),E=16,I=E+16,S=c/2,L=l/2;if(f.setAttribute("cx",S.toString()),f.setAttribute("cy",L.toString()),f.setAttribute("r",I.toString()),f.setAttribute("fill","lightgrey"),g.setAttribute("points",`${S-E/2},${L-E} ${S-E/2},${L+E} ${S+E},${L}`),g.setAttribute("fill","#ffffff"),h.appendChild(f),h.appendChild(g),e){let C=e.length*16-10,v=16*1.5,A=(c-C)/2,R=l-v-10,N=document.createElementNS(d,"rect");N.setAttribute("x",A.toString()),N.setAttribute("y",R.toString()),N.setAttribute("width",C.toString()),N.setAttribute("height",v.toString()),N.setAttribute("fill","#353945b3"),N.setAttribute("rx","12"),h.appendChild(N);let O=document.createElementNS(d,"text");O.textContent=e,O.setAttribute("x",(c/2).toString()),O.setAttribute("y",(R+16).toString()),O.setAttribute("font-size","16"),O.setAttribute("text-anchor","middle"),O.setAttribute("fill","white"),h.appendChild(O)}let V=new XMLSerializer().serializeToString(h),K=new Image,oe=new Blob([V],{type:"image/svg+xml;charset=utf-8"}),ge=URL.createObjectURL(oe);K.onload=()=>{let te=document.createElement("canvas");te.width=c,te.height=l;let C=te.getContext("2d");C.beginPath(),C.moveTo(n,0),C.lineTo(c-n,0),C.quadraticCurveTo(c,0,c,n),C.lineTo(c,l-n),C.quadraticCurveTo(c,l,c-n,l),C.lineTo(n,l),C.quadraticCurveTo(0,l,0,l-n),C.lineTo(0,n),C.quadraticCurveTo(0,0,n,0),C.closePath(),C.clip(),C.drawImage(o,0,0,c,l),C.drawImage(K,0,0,c,l);let v=te.toDataURL("image/png");r(v)},K.onerror=i,K.src=ge},o.onerror=i,o.src=t});var N0e=t=>{try{return t?.replace(/[\n\t\u200D]/g,"")?.split(/\s+/)?.filter(r=>r?.trim()?.length)||[]}catch(e){return M.catch("Error in utils getWords: ",e),[]}},w0e=(t,e=[])=>{try{let n=e.map(r=>`[${r}="${t}"]`).join(",");return document.querySelector(n)}catch(n){return M.catch("Error in utils getElementByAttributes: ",n),null}},b0e=(t,e=[])=>{try{let n=e.map(r=>`[${r}="${t}"]`).join(",");return document.querySelectorAll(n)}catch(n){return M.catch("Error in utils getElementsByAttributes: ",n),[]}},AT=t=>{try{let e=Math.floor(t/3600),n=Math.floor((t-e*3600)/60),r=Math.floor(t-e*3600-n*60);return e&&e<10&&(e="0"+e),n<10&&(n="0"+n),r<10&&(r="0"+r),(e?e+":":"")+n+":"+r}catch{return""}},tQ=10,O0e=t=>{try{if(typeof t!="number"||!isFinite(t))return 0;let e=1e3/tQ;return Math.round(t*e)/e}catch{return t}},M0e=t=>{try{if(!t||typeof t!="object")return;let e={videoPlayerId:t.videoPlayerId,currentMediaPosition:t.currentMediaPosition,locationName:t.locationName};return t.version?.id&&t.version?.name&&(e.version={id:t.version.id,name:t.version.name}),e}catch{return}},L0e=(t,e=10)=>{try{if(!t||!t.currentTime)throw new Error("Invalid video element reference provided");let n=t.currentTime,r=Math.floor(n/e)*e,i=r+e;return{startSlot:AT(r),endSlot:AT(i),timeSlot:AT(r)+" - "+AT(i)}}catch{return null}},nQ=t=>{try{return t?typeof ShadowRoot<"u"&&t instanceof ShadowRoot?!0:Object.prototype.toString.call(t)==="[object ShadowRoot]":!1}catch{return!1}},BV=t=>{let e=[];try{let n=t;for(;n;){let r=n?.getRootNode?.();if(!r||r===n||!nQ(r))break;e.push(r),n=r.host}}catch(n){M.catch("Error in utils getShadowRootsForElement: ",n)}return e},hR=(t,e)=>{try{let n=r=>!!r&&(r===t||t.contains(r));return n(e.startContainer)&&n(e.endContainer)}catch{return!1}},yV=new Set,GV=(t,e)=>{try{let n=`${t}|${e}`;if(yV.has(n))return;yV.add(n),M.catch(`Caret resolution failed in ${t} (${e}). Mentions and text replacement may not work in this browser.`)}catch{}};var mR=t=>{try{if(!t)return{status:"failed",reason:"no-element"};let e=BV(t),n=window.getSelection(),r=!1,i=e[0];if(i&&typeof i.getSelection=="function"){let o=i.getSelection();if(o?.rangeCount){r=!0;let s=o.getRangeAt(0);if(hR(t,s))return{status:"resolved",range:s,selection:o}}}if(e.length&&typeof n?.getComposedRanges=="function")try{let s=n.getComposedRanges({shadowRoots:e})?.[0];if(s&&(r=!0,hR(t,s))){let a=document.createRange();return a.setStart(s.startContainer,s.startOffset),a.setEnd(s.endContainer,s.endOffset),{status:"resolved",range:a,selection:n}}}catch{}if(n?.rangeCount){r=!0;let o=n.getRangeAt(0);if(hR(t,o))return{status:"resolved",range:o,selection:n}}return r?{status:"failed",reason:"caret-not-resolvable-in-element"}:{status:"no-caret"}}catch(e){return M.catch("Error in utils resolveCaretRangeInElement: ",e),{status:"failed",reason:"threw"}}},P0e=t=>{try{let e=mR(t);if(e.status==="resolved"&&e.selection)return e.selection;let n=BV(t)[0];return n&&typeof n.getSelection=="function"?n.getSelection():window.getSelection()}catch(e){return M.catch("Error in utils getSelectionForElement: ",e),window.getSelection()}},IV=(t,e)=>{try{return!t||!e?!1:typeof t.setBaseAndExtent=="function"?(t.setBaseAndExtent(e.startContainer,e.startOffset,e.startContainer,e.startOffset),!0):(t.removeAllRanges(),t.addRange(e),!0)}catch(n){return M.catch("Error in utils setCaretToRangeStart: ",n),!1}},x0e=(t,e=["@"])=>{try{let n="",r=mR(t);if(r.status==="failed")return GV("getWordAtCursor",r.reason),"";if(r.status==="resolved"){let i=r.range,o=i.endOffset,s=i?.commonAncestorContainer?.textContent;s?n=rQ(s,o,e):n=""}return n}catch(n){return M.catch("Error in utils getWordAtCursor: ",n),""}};var rQ=(t,e,n=["@"])=>{try{let r=-1,i=!1;for(let o of n){let s=t.lastIndexOf(o,e),a=s>0?t.lastIndexOf(o,s-1):-1;if(s>r){let c=RT(t,s,e),l=NT(t,s,e);if(c||l){if(a!==-1){let d=RT(t,a,s),h=NT(t,a,s);!d&&!h&&(r=a,i=!0)}}else r=s,i=!0}}return r!==-1&&i?t.substring(r,e):""}catch(r){return M.catch("Error in utils getStringFromLastAtSymbol: ",r),""}},RT=(t,e,n)=>{try{if(e===0)return!1;let r=t.charAt(e-1);return!(r===" "||r==="\xA0"||r===`
124
- `||r===" "||[",",":",";"].includes(r))}catch(r){return M.catch("Error in utils isHotkeyDisabledForAutocomplete: ",r),!1}},NT=(t,e,n)=>{try{return!!t.substring(e+1,n).startsWith(" ")}catch(r){return M.catch("Error in utils isHotkeyFollowedBySpace: ",r),!1}},k0e=(t,e,n=["@"])=>{try{let r=mR(t);if(r.status==="failed"){GV("replaceWordAtCursor",r.reason);return}if(r.status==="resolved"){let i=r.selection,o=r.range,s=o.startOffset,a=o?.commonAncestorContainer?.textContent;if(a){let c=-1;for(let l of n){let d=a.lastIndexOf(l,s),h=d>0?a.lastIndexOf(l,d-1):-1;if(d>c){let f=RT(a,d,s),g=NT(a,d,s);if(f||g){if(h!==-1){let E=RT(a,h,d),I=NT(a,h,d);!E&&!I&&(c=h)}}else c=d}}if(c!==-1){let l=a.substring(0,c),d=a.substring(o.endOffset),h=document.createElement("span");h.textContent=e,h.style.color="var(--velt-accent)";let f=e.startsWith("@")?e.substring(1):e;h.classList.add("velt-mention"),h.classList.add(f.includes("@")?"velt-mention--email":"velt-mention--name");let g=Date.now()+"_"+Math.random().toString(36).substr(2,9);h.setAttribute("data-recently-added",g),setTimeout(()=>{h.hasAttribute("data-recently-added")&&h.removeAttribute("data-recently-added")},5e3);let E=o.commonAncestorContainer;if(E.nodeType===Node.TEXT_NODE){let I=E.parentNode;if(I){let S=document.createTextNode(l),L=document.createTextNode(d);I.replaceChild(L,E),I.insertBefore(h,L),I.insertBefore(S,h);try{let V=document.createRange();V.setStartAfter(h),V.collapse(!0),IV(i,V)}catch(V){M.catch("Error positioning cursor after span:",V);try{let K=document.createRange();K.selectNodeContents(t),K.collapse(!1),IV(i,K)}catch(K){M.catch("Error with fallback cursor positioning:",K)}}}}}}}}catch(r){M.catch("Error in utils replaceWordAtCursor: ",r)}},F0e=()=>{try{let e=window.getSelection()?.getRangeAt(0),n=e?.commonAncestorContainer,r=e?.startContainer,i=e?.endContainer,o=[];o.push(n),o.push(r),o.push(i);let s=!1;for(let a of o)if(a&&qi(a,[F.TAGS.SNIPPYLY_TEXT_HIGHLIGHT,F.TAGS.SNIPPYLY_COMMENT_TEXT_PORTAL,F.TAGS.SNIPPYLY_HIGHLIGHT_USER_TEXT,F.TAGS.SNIPPYLY_COMMENT_TEXT])){s=!0;break}return s}catch(t){return M.catch("Error in utils isTextSelectionIncludesSnippylyElement: ",t),!1}},jV=(t,e,n)=>{try{let r=document.querySelector(`[id=${t}]`);if(r)r.name=e,r.content=n;else{let i=document.createElement("meta");i.id=t,i.name=e,i.content=n,document.getElementsByTagName("head")[0].appendChild(i)}}catch{}},HV=t=>{try{if(t){let e=document.querySelector(`[id=${t}]`);e&&e.remove()}}catch{}},$V=()=>{try{let e=new Date().getTimezoneOffset(),n=Math.floor(Math.abs(e)/60),r=Math.abs(e)%60;return`UTC${e>0?"-":"+"}${n?.toString()?.padStart(2,"0")}:${r?.toString()?.padStart(2,"0")}`}catch(t){return M.catch("Error in utils getTimezone: ",t),""}},U0e=()=>{try{let t=[];return document.querySelectorAll("*").forEach(n=>{(n.scrollHeight>n.clientHeight||n.scrollWidth>n.clientWidth||["auto","scroll"].includes(getComputedStyle(n).overflow))&&t.push(n)}),t}catch(t){return M.catch("Error in utils getScrollableElements: ",t),[]}},WV=(t,e)=>Math.sqrt((t.x-e.x)**2+(t.y-e.y)**2),V0e=(t,e={x:window.innerWidth/2,y:window.innerHeight/2})=>{try{let n=t;for(;n.children.length>0;){let r=null,i=Number.MAX_SAFE_INTEGER;for(let o=0;o<n.children.length;o++){let s=n.children[o],a=s.getBoundingClientRect(),c={x:a.left+a.width/2,y:a.top+a.height/2},l=WV(c,e);(a.top>=0||a.bottom<=window.innerHeight)&&a.width>0&&a.height>0&&l<=i&&(r=s,i=l)}if(r===null)break;n=r}return n}catch(n){return M.catch("Error in utils getInnermostElement: ",n),null}},B0e=t=>{try{let{offsetWidth:e,offsetHeight:n,scrollTop:r}=t,i=t,o={x:e/2,y:r+n/2};for(;i.children.length>0;){let s=null,a=Number.MAX_SAFE_INTEGER;for(let c=0;c<i.children.length;c++){let l=i.children[c],d={x:l.offsetLeft+l.offsetWidth/2,y:l.offsetTop+l.offsetHeight/2},h=WV(d,o);l.offsetTop>=0&&l.offsetWidth>0&&l.offsetHeight>0&&h<=a&&(s=l,a=h)}if(s===null)break;i=s}return i}catch(e){return M.catch("Error in utils getNestedInnermostElement: ",e),null}},G0e=()=>{try{let t=window.innerWidth/2,e=window.innerHeight/2,n=document.elementFromPoint(t,e);for(;n&&n.tagName==="BODY";)e+=2,n=document.elementFromPoint(t,e);return n}catch(t){return M.catch("Error in utils getCenteredBackgroundElement: ",t),null}},j0e=(t,e,n=!1)=>{try{let r=t.getBoundingClientRect(),i=e.getBoundingClientRect(),o=e.offsetTop;n&&(o=o-r.height/2+i.height/2),t.scrollTo({top:o,behavior:"smooth"})}catch(r){M.catch("Error in utils nestedScrollIntoView: ",r)}},H0e=(t,e=!0)=>{try{let n=document.body.getBoundingClientRect(),r=t.getBoundingClientRect(),i=r.top-n.top,o=window.innerHeight,s=i;e&&(s=s-o/2+r.height/2),window.scrollTo({top:s,behavior:"smooth"})}catch(n){M.catch("Error in utils scrollIntoView: ",n)}},$0e=(t=!1)=>{try{let e=!0;return t&&(e=/\sChrome\/[\d.]+ Mobile\s/.test(navigator.userAgent)),"ontouchstart"in window||navigator.maxTouchPoints>0||e}catch(e){return M.catch("Error in utils isTouchDevice: ",e),!1}},W0e=(t,e,n)=>{try{return(1-n)*t+n*e}catch(r){M.catch("Error in utils lerp: ",r)}return 0},z0e=(t,e)=>{try{if(t===void 0)return t;if(t=t.replace("#",""),t.length===6){let n=parseInt(t,16),r=(n>>16)+e;r>255&&(r=255),r<0&&(r=0);let i=(n&255)+e;i>255&&(i=255),i<0&&(i=0);let o=(n>>8&255)+e;return o>255&&(o=255),o<0&&(o=0),`#${(i|o<<8|r<<16).toString(16)}`}else return t}catch(n){M.catch("Error in utils multiplyColor: ",n)}return t},q0e=t=>{try{return t in F.TEXT_COLOR_MAP?F.TEXT_COLOR_MAP[t]:"#141416"}catch(e){return M.catch("Error in generateUserColor:",e),"#141416"}},K0e=()=>{try{let t=localStorage.getItem(F.LOCAL_STORAGE.SNIPPYLY_DEFAULT_MEDIA_SOURCE_OPTIONS);if(t)return JSON.parse(t)}catch(t){return M.catch("Error in getDefaultMediaStreamOptions:",t),{}}},Y0e=(t,e)=>{try{let n=e*(Math.PI/180),r=Math.cos(n);return r?t/r:t}catch(n){return M.catch("Error in calculateHypotenuse:",n),0}},X0e=(t,e,n=!0)=>{try{let r=[],i=n?t:t.parentNode;for(;i;)r.push(i),i=i.parentNode;let o=n?e:e.parentNode;for(;o;){if(r.indexOf(o)!==-1)return o;o=o.parentNode}return null}catch(r){return M.catch("Error in utils findCommonParent: ",r),null}},Q0e=(t,e,n,r,i=!1)=>{try{let o,s;if(i){let a=n,c=r;if(a===c)o=t,s=e;else{let l=0,d=0,h=a;for(;h&&h!==c;)l+=h.offsetLeft,d+=h.offsetTop,h=h.parentElement;o=l+t,s=d+e}}else{let a=n.getBoundingClientRect(),c=r.getBoundingClientRect(),l=a.left+t,d=a.top+e;o=l-c.left,s=d-c.top}return{x:o,y:s}}catch(o){return M.catch("Error in utils calculateParentCoordinates: ",o),{x:t,y:e}}},J0e=t=>{try{let e={height:0,width:0};if(typeof t?.getBBox=="function"){let n=t?.getBBox(),r=t?.getBoundingClientRect();e.height=parseFloat(r?.height||n.height||0),e.width=parseFloat(r?.width||n.width||0)}else{let n=window.getComputedStyle(t);if(e.height=t?.clientHeight||parseFloat(n.getPropertyValue("height"))||0,e.width=t?.clientWidth||parseFloat(n.getPropertyValue("width"))||0,t?.getBoundingClientRect&&typeof t?.getBoundingClientRect=="function"){let r=t?.getBoundingClientRect();e?.height||(e.height=r?.height||t?.clientHeight||t?.offsetHeight||0),e?.width||(e.width=r?.width||t?.clientWidth||t?.offsetWidth||0)}}return e}catch(e){return M.catch("Error in utils getElementDimensions: ",e),{height:0,width:0}}},Z0e=t=>{try{let e=t;for(;e;){if(window?.getComputedStyle(e)?.getPropertyValue("background-clip")=="text")return!0;e=e?.parentElement}return!1}catch(e){return M.catch("Error in utils hasParentWithBackgroundClip: ",e),!1}},eMe=t=>{try{let e=["attachment","attachments","chunkUrls","transcription","color","position","positionX","positionY","resolved","inProgress","screenWidth","screenHeight","screenScrollHeight","screenScrollTop","taggedElementPath","taggedElementRect","targetElement","documentParamsId","documentParams","ghostComment","areaAnnotationId","iam","commentSource"],n=JSON.parse(JSON.stringify(t)),r={};return Object.keys(n).forEach(i=>{e.includes(i)||(r[i]=n[i])}),JSON.parse(JSON.stringify(r))}catch(e){return M.catch("Error in utils getRecorderAnnotationForClient: ",e),null}},tMe=t=>t===null||typeof t>"u",nMe=(t,e)=>{try{return!!t?.closest(`[${e}]`)}catch(n){return M.catch("Error in utils hasParentWithAttribute: ",n),!1}},iQ=(t,e=!0)=>{try{let n=[];if(!t||!(t instanceof HTMLElement))return[];e&&n.push(t);for(let r=0;r<t.children.length;r++){let i=t.children[r];n=n.concat(iQ(i))}return n}catch(n){return M.catch("Error in utils getAllNestedChildren: ",n),[]}},rMe=()=>{try{return document.visibilityState==="hidden"?!1:document.hasFocus()}catch(t){return M.catch("Error in utils isTabActive: ",t),!1}},iMe=t=>{try{let e="",n=t?.getAttribute("src");if(n)e=`${Mc(n)}`;else{let r=t?.querySelectorAll("source");if(r&&r.length>0){let o=r[0]?.getAttribute("src");o&&(e=`${Mc(o)}`)}}return e}catch{return""}},oMe=t=>{try{return!(t&&(t?.children?.length>0||t?.textContent?.trim()?.length>0))}catch(e){return M.catch("Error in utils isTemplateEmpty: ",e),!0}},vV=(t,e)=>{try{if(!t||!e)return;let n=[],r="",i=0;for(let c=0;c<e.length;c++){let l=e[c];l==="["?(i++,i===1&&r&&(n.push(r),r=""),r+=l):l==="]"?(i--,r+=l,i===0&&(n.push(r),r="")):l==="."&&i===0?r&&(n.push(r),r=""):r+=l}r&&n.push(r);let o,s=B({},t),a=n.reduce((c,l)=>{if(c==null)return;ki(c)&&(o=c,c=c());let d=l.match(/^\[([^\[\]]+|(\[[^\[\]]*\]))\]$/);if(d){let f=d[1];if(/^\d+$/.test(f)){let g=parseInt(f,10);return Array.isArray(c)?c[g]:void 0}if(f.startsWith("'")&&f.endsWith("'")||f.startsWith('"')&&f.endsWith('"')){let g=f.slice(1,-1);return c[g]}if(f.includes(".")||f.includes("[")){let g=vV(s,f);ki(g)&&(g=g());let E=g?.toString()||"";return c[E]}if(s[f]!==void 0){let g=s[f];return ki(g)&&(g=g()),c[g]}return c[f]}let h=l;return(l.startsWith("'")&&l.endsWith("'")||l.startsWith('"')&&l.endsWith('"'))&&(h=l.slice(1,-1)),h==="length"&&Array.isArray(c)?c.length:c[h]},t);return o?Vf(()=>{try{let c=B({},t);return n.reduce((l,d)=>{if(l==null)return;ki(l)&&(l=l());let h=d.match(/^\[([^\[\]]+|(\[[^\[\]]*\]))\]$/);if(h){let g=h[1];if(/^\d+$/.test(g)){let E=parseInt(g,10);return Array.isArray(l)?l[E]:void 0}if(g.startsWith("'")&&g.endsWith("'")||g.startsWith('"')&&g.endsWith('"')){let E=g.slice(1,-1);return l[E]}if(g.includes(".")||g.includes("[")){let E=vV(c,g);ki(E)&&(E=E());let I=E?.toString()||"";return l[I]}if(c[g]!==void 0){let E=c[g];return ki(E)&&(E=E()),l[E]}return l[g]}let f=d;return(d.startsWith("'")&&d.endsWith("'")||d.startsWith('"')&&d.endsWith('"'))&&(f=d.slice(1,-1)),l[f]},t)}catch{return""}}):a}catch{return""}},sMe=(t,e)=>{try{return!!(t?.locationId&&(t.locationId===e?.locationId||e?.location?.id===String(t.locationId))||t?.location?.id&&(t.location.id===e?.location?.id||t.location.id===String(e?.locationId)))}catch(n){return M.catch("Error in utils isLocationSame: ",n),!1}},aMe=()=>{try{let t=document.activeElement,e=new Set,n=10,r=0;for(;t&&t.shadowRoot&&!(e.has(t)||(e.add(t),t=t.shadowRoot.activeElement,r++,r>n)););return t}catch(t){return M.catch("Error in utils getActiveElement: ",t),null}},cp=(t,e)=>{try{return typeof t=="object"&&typeof e=="object"?JSON.stringify(t)===JSON.stringify(e):t===e}catch{return!1}},oQ=(t,e=0)=>{try{let n=JSON.parse(JSON.stringify(t));return t?.clientDocumentId&&(n.documentId=t.clientDocumentId),t?.clientOrganizationId&&(n.organizationId=t.clientOrganizationId),t?.documentMetadata&&e<5&&(n.documentMetadata=oQ(t.documentMetadata,e+1)),delete n?.clientDocumentId,delete n?.clientOrganizationId,delete n?.veltFolderId,delete n?.parentVeltFolderId,delete n?.pageInfo,n}catch{return t}},cMe=t=>{try{if(!t.some(s=>s?.value?.data))return{};let e=null,n=t.reduce((s,a)=>Math.max(s,a.timestamp),0),r=t.find(s=>s.timestamp===n);if(!r)return{};r?.value?.operation?.type==="removed"&&(e=r?.value?.operation);let o=t.map(s=>s.value).reduce((s,a)=>({data:B(B({},s?.data??{}),a?.data??{})}),{});return o.operation=e,o}catch{return{}}},lMe=(t,e,n)=>y(null,null,function*(){try{let r=0;for(;r<=(n.retryCount||0);)try{let i=yield t();if(!i)return{success:!1,statusCode:400,message:`${e} failed: No response received`};if(i.statusCode===void 0)return{success:!1,statusCode:400,message:`${e} failed: Response missing statusCode`};if(i.statusCode!==200){if(r++,r>(n.retryCount||0))return{success:!1,statusCode:i.statusCode,message:`${e} failed after ${r} attempts with status code ${i.statusCode}`};n.retryDelay&&(yield new Promise(o=>setTimeout(o,n.retryDelay)));continue}return i}catch(i){if(r++,r>(n.retryCount||0))return{success:!1,statusCode:500,message:`${e} failed with error: ${i instanceof Error?i.message:"Unknown error"}`};n.retryDelay&&(yield new Promise(o=>setTimeout(o,n.retryDelay)))}return{success:!1,statusCode:500,message:`${e} failed: Maximum retry attempts exceeded`}}catch(r){return{success:!1,statusCode:500,message:`${e} failed with unexpected error: ${r instanceof Error?r.message:"Unknown error"}`}}}),uMe=(t,e,n,r,i)=>y(null,null,function*(){try{let o=typeof e=="function"?yield e():e||{},a=B(B({},{"Content-Type":"application/json"}),o),c=yield fetch(t,B({method:"POST",headers:a,body:JSON.stringify(n)},i?{credentials:i}:{}));if(!c.ok)return M.catch(`Error in makeConfigBasedRequest: ${c.status} ${c.statusText}`),r?{data:{},success:!1,statusCode:c.status}:{success:!1,statusCode:c.status};let l=yield c.json();return r?{data:l?.data??{},success:!0,statusCode:200}:{success:!0,statusCode:200}}catch(o){return M.catch("Error in makeConfigBasedRequest:",o),r?{data:{},success:!1,statusCode:500}:{success:!1,statusCode:500}}}),dMe=t=>{try{return!t||!t?.access?[]:Object.keys(t.access).sort().map(i=>t.access?.[i]?.map(o=>`${i}:${o}`)??[]).reduce((i,o)=>i.flatMap(s=>o.map(a=>[...s,a])),[[]]).map(i=>i.join("_"))}catch(e){return M.catch("Error in utils generateProcessedContext: ",e),[]}},sQ=t=>{try{if(!t||!t?.access)return[];let e=Object.keys(t.access).sort(),r=(o=>{let s=[],a=Math.pow(2,o.length);for(let c=1;c<a;c++){let l=[];for(let d=0;d<o.length;d++)c&1<<d&&l.push(o[d]);s.push(l)}return s})(e),i=[];for(let o of r){let s=o.map(a=>{let c=t.access?.[a];return c==null?null:`${a}:${c}`}).filter(a=>a!==null);s.length>0&&i.push(s.join("_"))}return[...new Set(i)]}catch(e){return M.catch("Error in utils generateAllContextCombos: ",e),[]}},hMe=({input:t})=>{try{if(!t||!t?.access)return[];let e=t?.access,n=Object.keys(e).sort(),r=[];for(let o of n){let s=e[o];s!=null&&Array.isArray(s)&&s.length>0&&r.push({key:o,values:s})}return r.length===0?[]:r.reduce((o,{key:s,values:a})=>o.length===0?a.map(c=>[{key:s,value:c}]):o.flatMap(c=>a.map(l=>[...c,{key:s,value:l}])),[]).map(o=>{let s={};return o.forEach(({key:a,value:c})=>{s[a]=c}),{access:s}})}catch(e){return M.catch("Error in utils expandContextArraysToSingleValues: ",e),[]}},fMe=({input:t})=>{try{if(!t||t.length===0)return{access:{}};let e=new Set;t.forEach(r=>{r?.access&&Object.keys(r.access).forEach(i=>e.add(i))});let n={};for(let r of Array.from(e).sort()){let i=new Set;t.forEach(o=>{if(o?.access){let s=o.access[r];s!=null&&i.add(s)}}),n[r]=i.size>0?Array.from(i).sort():null}return{access:n}}catch(e){return M.catch("Error in utils combineContextsToArrays: ",e),{access:{}}}},zV=i=>y(null,[i],function*({data:t,getSdkProxy:e,userId:n,methodName:r}){try{let o="sdkproxyencryptionanddecryptiononsdk"+(n??""),s=yield aQ({data:t,key:o}),a=(yield e({veltData:s}))?.data?.data?.veltData||{};return yield sp(a,o)}catch(o){return M.catch("Error in utils sdkProxyEncryptDecrypt: "+(r??""),o),t}}),aQ=n=>y(null,[n],function*({data:t,key:e}){try{return yield wT(t,e)}catch{return t}}),ER=(t,e)=>y(null,null,function*(){try{let n=0;for(;n<=(e.retryCount||0);)try{let r=yield t();if(!r)throw new Error("No response received");return r}catch{if(n++,n>=(e.retryCount||0))return null;e.retryDelay&&(yield new Promise(i=>setTimeout(i,e.retryDelay)))}return null}catch{return null}}),_R=t=>{try{if(t&&typeof t=="object"){let e=JSON.parse(JSON.stringify(t));return e?.clientOrganizationId&&(e.organizationId=e.clientOrganizationId,delete e.clientOrganizationId),e?.clientGroupId&&(e.groupId=e.clientGroupId,delete e.clientGroupId),e?.userSnippylyId&&delete e.userSnippylyId,delete e?.email_lowercase,delete e?.name_lowercase,e}else return null}catch(e){return M.catch("Error in utils getUserForClient: ",e),null}},od=({url:t,apiProxyDomain:e})=>{try{if(Pc(t))return t;if(e){let n=new URL(t);n.origin&&(t=t.replace(n.origin,e))}return t}catch(n){return M.catch("Error in utils getResolvedApiUrl: ",n),t}},pMe=(t,e)=>{try{if(!t||!(t instanceof Element))return!1;let n,r;if(e&&typeof e.x=="number"&&typeof e.y=="number")n=e.x,r=e.y;else{let o=t.getBoundingClientRect();n=o.left+o.width/2,r=o.top+o.height/2}let i=document.elementFromPoint(n,r);return!(!i||i===t||t.contains(i))}catch{return!1}};function op(t,e){if(t==null||typeof t!="object"||Array.isArray(t))return t;let n={};for(let r of e)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r]);return n}function Kt(t){return t!=null&&typeof t=="object"&&!Array.isArray(t)}function Ps(t,e){switch(e.kind){case"type":return op(t,e.safeKeys);case"array":return Array.isArray(t)?t.map(n=>Ps(n,e.item)):t;case"record":{if(!Kt(t))return t;let n={};for(let r of Object.keys(t))n[r]=Ps(t[r],e.value);return n}case"object":{if(!Kt(t))return t;let n=e.selfKeys?op(t,e.selfKeys):B({},t);for(let r of Object.keys(e.fields))Object.prototype.hasOwnProperty.call(n,r)&&(n[r]=Ps(n[r],e.fields[r]));return n}case"omit":{if(!Kt(t))return t;let n=B({},t);for(let r of e.keys)delete n[r];return n}default:return t}}var Ln={kind:"type",safeKeys:ST},cQ={kind:"type",safeKeys:oR},lQ={kind:"type",safeKeys:hV},uQ={kind:"object",selfKeys:lR,fields:{resolvedBy:Ln}},bT={kind:"object",selfKeys:cR,fields:{resolvedBy:Ln}},Uo="textEditorConfig",td="text";function gMe(t){let e=Kt(t)?t[Uo]:void 0;if(!(!Kt(e)||!Object.prototype.hasOwnProperty.call(e,td)))return e[td]}function mMe(t){let e=Kt(t)?t[Uo]:void 0;Kt(e)&&delete e[td]}function EMe(t,e,n){if(!t||typeof t!="object")return;if(!Kt(t.context)){if(!n?.createContext)return;t.context={}}let r=t.context[Uo];r!==void 0&&!Kt(r)||(r===void 0&&(t.context[Uo]={}),t.context[Uo][td]=e)}var dQ=new Set(lR),OT=cR.filter(t=>!dQ.has(t));function fR(t){return t===void 0?void 0:JSON.parse(JSON.stringify(t))}function _Me(t){return Kt(t)&&OT.some(e=>Object.prototype.hasOwnProperty.call(t,e))}function TMe(t){if(Kt(t))for(let e of OT)delete t[e]}function yMe(t,e){let n={};if(Kt(t))for(let r of OT)Object.prototype.hasOwnProperty.call(t,r)&&t[r]!==void 0&&(n[r]=fR(t[r]));if(Kt(e))for(let r of Object.keys(e))e[r]!==void 0&&(n[r]=fR(e[r]));return n}function IMe(t,e){if(!(!t||typeof t!="object")&&!(!Kt(t.suggestion)||!Kt(e)))for(let n of OT)Object.prototype.hasOwnProperty.call(e,n)&&(t.suggestion[n]=fR(e[n]))}var MT={kind:"object",fields:{[Uo]:{kind:"omit",keys:[td]}}},LT={kind:"object",fields:{}},lp={kind:"type",safeKeys:aR},Fo={kind:"type",safeKeys:sR};function TR(t){return{kind:"object",selfKeys:iR,fields:{from:Ln,to:{kind:"array",item:Ln},attachments:{kind:"array",item:t},recorders:{kind:"array",item:lQ},taggedUserContacts:{kind:"array",item:{kind:"object",fields:{contact:Ln}}}}}}function xs(t,e=MT,n=uQ){return{kind:"object",selfKeys:cV,fields:{from:Ln,assignedTo:Ln,resolvedByUser:Ln,viewedBy:{kind:"array",item:Ln},subscribedUsers:{kind:"record",value:{kind:"object",fields:{user:Ln}}},unsubscribedUsers:{kind:"record",value:{kind:"object",fields:{user:Ln}}},suggestion:n,targetTextRange:cQ,context:e,comments:{kind:"array",item:TR(t)}}}}var hQ=xs(lp),qV=xs(Fo),fQ=xs(lp,LT),pQ=xs(Fo,LT),gQ=xs(lp,MT,bT),mQ=xs(Fo,MT,bT),EQ=xs(lp,LT,bT),_Q=xs(Fo,LT,bT),TQ=TR(lp),yQ=TR(Fo),IQ={kind:"object",fields:{from:Ln,context:MT,commentAnnotationsMap:{kind:"record",value:qV}}},vQ={kind:"object",selfKeys:uV,fields:{from:Ln,reactions:{kind:"array",item:{kind:"object",fields:{from:Ln}}}}},SQ={kind:"object",selfKeys:dV,fields:{from:Ln,attachment:Fo,attachments:{kind:"array",item:Fo},recordingEditVersions:{kind:"record",value:{kind:"object",fields:{from:Ln,attachment:Fo,attachments:{kind:"array",item:Fo}}}}}};function AQ(t,e){let n=!!e?.stripAttachmentFiles,r;return e?.keepSuggestionContent?r=e?.keepContextText?n?EQ:_Q:n?gQ:mQ:r=e?.keepContextText?n?fQ:pQ:n?hQ:qV,Ps(t,r)}function vMe(t,e){return Ps(t,e?.stripAttachmentFiles?TQ:yQ)}function SMe(t){return Ps(t,IQ)}var yR=["name","email","photoUrl","clientUserName","initial","name_lowercase","email_lowercase"];function IR(t){if(!Kt(t))return t;let e=B({},t);for(let n of yR)delete e[n];return e}var AMe=["oldCommentText","rejectReason"];function SV(t){return Kt(t)&&typeof t.userId=="string"&&("name"in t||"email"in t||"photoUrl"in t)}var KV=/(text|html)$/i;function CMe(t,e){return typeof e=="string"&&KV.test(t)}function CQ(t,e){if(!KV.test(t))return!1;if(typeof e=="string")return!0;if(!Kt(e))return!1;let n=e;return typeof n.from=="string"||typeof n.to=="string"}function vR(t){return!!t&&!!(t.comment||t.user||t.reaction||t.recorder||t.activity||t.attachment)}var DQ=lV.filter(t=>!iR.includes(t)),RQ=sR.filter(t=>!aR.includes(t)),NQ=64;function YV(t){try{if(t&&typeof t=="object"){let e=t.statusCode;return typeof e=="number"?`statusCode ${e}`:t instanceof Error?`threw ${t.name||"Error"}`:"no statusCode"}return t==null?"no response":"no statusCode"}catch{return"no statusCode"}}function XV(t,e,n){return vR(e)?pR(t,e,0,{pageRoot:n?.kind==="page"}):t}function Ls(t,e){for(let n of e??[])Object.prototype.hasOwnProperty.call(t,n)&&delete t[n]}var Ue=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);function wQ(t){return!!(t instanceof Date||t instanceof RegExp||t instanceof Error||t instanceof Promise||t instanceof Map||t instanceof Set||t instanceof WeakMap||t instanceof WeakSet||t instanceof ArrayBuffer||ArrayBuffer.isView(t)||typeof Blob<"u"&&t instanceof Blob||typeof Node<"u"&&t instanceof Node)}function an(t){if(!Kt(t)||wQ(t))return!1;let e=Object.getPrototypeOf(t);return!(e!==Object.prototype&&e!==null&&Object.keys(t).length===0)}var bQ=["event","eventTimestamp","apiKey","sessionTabId","traits","properties"];function OQ(t){return bQ.some(e=>Ue(t,e))}var ip=t=>an(t)?op(t,ST):t;function MQ(t){for(let e of["from","assignedTo","resolvedByUser","actionUser"])Ue(t,e)&&(t[e]=ip(t[e]));for(let e of["to","viewedBy"])Array.isArray(t[e])&&(t[e]=t[e].map(ip));for(let e of["subscribedUsers","unsubscribedUsers"])if(an(t[e])){let n={};for(let r of Object.keys(t[e])){let i=t[e][r];n[r]=an(i)&&Ue(i,"user")?Ee(B({},i),{user:ip(i.user)}):i}t[e]=n}Array.isArray(t.taggedUserContacts)&&(t.taggedUserContacts=t.taggedUserContacts.map(e=>an(e)&&Ue(e,"contact")?Ee(B({},e),{contact:ip(e.contact)}):e)),an(t.suggestion)&&Ue(t.suggestion,"resolvedBy")&&(t.suggestion=Ee(B({},t.suggestion),{resolvedBy:ip(t.suggestion.resolvedBy)}))}function LQ(t){return Ue(t,"annotationId")&&(Ue(t,"reactions")||Ue(t,"iconEmoji")||Ue(t,"iconUrl"))}function PQ(t){return Ue(t,"annotationId")&&(Ue(t,"recordingType")||Ue(t,"recordedTime")||Ue(t,"attachment")||Ue(t,"transcription"))}function xQ(t){return Ue(t,"featureType")&&Ue(t,"actionType")&&(Ue(t,"changes")||Ue(t,"entityData")||Ue(t,"timestamp")||Ue(t,"id"))}var AV=t=>Array.isArray(t)?t.map(e=>an(e)?{attachmentId:e.attachmentId,name:e.name,bucketPath:e.bucketPath}:e):t;function kQ(t){if(Ue(t,"attachment")&&(t.attachment=null),Ue(t,"chunkUrls")&&an(t.chunkUrls)&&(t.chunkUrls={}),Ue(t,"attachments")&&(t.attachments=AV(t.attachments)),an(t.recordingEditVersions)){let e={};for(let n of Object.keys(t.recordingEditVersions)){let r=t.recordingEditVersions[n];if(!an(r)){e[n]=r;continue}let i=B({},r);Ue(i,"attachment")&&(i.attachment=null),Ue(i,"attachments")&&(i.attachments=AV(i.attachments)),delete i.transcription,e[n]=i}t.recordingEditVersions=e}}var CT=t=>an(t)&&Ue(t,"userId")?{userId:t.userId}:t;function FQ(t){if(Ue(t,"actionUser")&&(t.actionUser=CT(t.actionUser)),an(t.changes)){let e={};for(let n of Object.keys(t.changes)){let r=t.changes[n];e[n]=an(r)?B(B(B({},r),Ue(r,"from")?{from:CT(r.from)}:{}),Ue(r,"to")?{to:CT(r.to)}:{}):r}t.changes=e}if(an(t.displayMessageTemplateData)){let e={};for(let n of Object.keys(t.displayMessageTemplateData))e[n]=CT(t.displayMessageTemplateData[n]);t.displayMessageTemplateData=e}}var UQ=yR.filter(t=>t!=="name");function pR(t,e,n,r={}){if(n>NQ)throw new Error("self-hosting telemetry filter: nesting too deep");let i=r.recorderOwned?{recorderOwned:!0}:{};if(Array.isArray(t))return t.map(g=>pR(g,e,n+1,i));if(!an(t))return t;let o=B({},t),s=OQ(o),a=Ue(o,"annotationId"),c=!s&&LQ(o),l=!s&&PQ(o),d=!s&&!c&&!l&&(a||Ue(o,"commentId")),h=!!e.attachment&&!!e.comment;if(e.comment){if(Ls(o,DQ),an(o.targetTextRange)&&(o.targetTextRange=op(o.targetTextRange,oR)),an(o.context)&&an(o.context[Uo])){let g=B({},o.context[Uo]);delete g[td],o.context=Ee(B({},o.context),{[Uo]:g})}d&&(MQ(o),a&&(Array.isArray(o.comments)&&(o=AQ(o,{stripAttachmentFiles:h})),Ls(o,e.comment.fieldsToRemove)))}if(e.activity&&!s&&xQ(o)&&(Ls(o,e.activity.fieldsToRemove),FQ(o),an(o.changes))){let g=B({},o.changes);for(let E of Object.keys(g))CQ(E,g[E])&&delete g[E];o.changes=g}e.user&&(!s&&SV(o)?o=op(o,ST):(SV(o)||typeof o.email=="string"||typeof o.photoUrl=="string")&&Ls(o,r.pageRoot?UQ:yR)),h&&!r.recorderOwned&&Ue(o,"attachmentId")&&Ls(o,RQ),e.reaction&&c&&(o=VQ(o),Ls(o,e.reaction.fieldsToRemove)),e.recorder&&(Ls(o,["transcription"]),l&&(o=BQ(o),kQ(o),Ls(o,e.recorder.fieldsToRemove)));let f=l&&e.recorder?{recorderOwned:!0}:i;for(let g of Object.keys(o))o[g]=pR(o[g],e,n+1,f);return o}function VQ(t){return Ps(t,vQ)}function BQ(t){return Ps(t,SQ)}var QV=()=>{};var AR={NODE_CLIENT:!1,NODE_ADMIN:!1,SDK_VERSION:"${JSCORE_VERSION}"};var q=function(t,e){if(!t)throw kc(e)},kc=function(t){return new Error("Firebase Database ("+AR.SDK_VERSION+") INTERNAL ASSERT FAILED: "+t)};var eB=function(t){let e=[],n=0;for(let r=0;r<t.length;r++){let i=t.charCodeAt(r);i<128?e[n++]=i:i<2048?(e[n++]=i>>6|192,e[n++]=i&63|128):(i&64512)===55296&&r+1<t.length&&(t.charCodeAt(r+1)&64512)===56320?(i=65536+((i&1023)<<10)+(t.charCodeAt(++r)&1023),e[n++]=i>>18|240,e[n++]=i>>12&63|128,e[n++]=i>>6&63|128,e[n++]=i&63|128):(e[n++]=i>>12|224,e[n++]=i>>6&63|128,e[n++]=i&63|128)}return e},GQ=function(t){let e=[],n=0,r=0;for(;n<t.length;){let i=t[n++];if(i<128)e[r++]=String.fromCharCode(i);else if(i>191&&i<224){let o=t[n++];e[r++]=String.fromCharCode((i&31)<<6|o&63)}else if(i>239&&i<365){let o=t[n++],s=t[n++],a=t[n++],c=((i&7)<<18|(o&63)<<12|(s&63)<<6|a&63)-65536;e[r++]=String.fromCharCode(55296+(c>>10)),e[r++]=String.fromCharCode(56320+(c&1023))}else{let o=t[n++],s=t[n++];e[r++]=String.fromCharCode((i&15)<<12|(o&63)<<6|s&63)}}return e.join("")},cd={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:typeof atob=="function",encodeByteArray(t,e){if(!Array.isArray(t))throw Error("encodeByteArray takes an array as a parameter");this.init_();let n=e?this.byteToCharMapWebSafe_:this.byteToCharMap_,r=[];for(let i=0;i<t.length;i+=3){let o=t[i],s=i+1<t.length,a=s?t[i+1]:0,c=i+2<t.length,l=c?t[i+2]:0,d=o>>2,h=(o&3)<<4|a>>4,f=(a&15)<<2|l>>6,g=l&63;c||(g=64,s||(f=64)),r.push(n[d],n[h],n[f],n[g])}return r.join("")},encodeString(t,e){return this.HAS_NATIVE_SUPPORT&&!e?btoa(t):this.encodeByteArray(eB(t),e)},decodeString(t,e){return this.HAS_NATIVE_SUPPORT&&!e?atob(t):GQ(this.decodeStringToByteArray(t,e))},decodeStringToByteArray(t,e){this.init_();let n=e?this.charToByteMapWebSafe_:this.charToByteMap_,r=[];for(let i=0;i<t.length;){let o=n[t.charAt(i++)],a=i<t.length?n[t.charAt(i)]:0;++i;let l=i<t.length?n[t.charAt(i)]:64;++i;let h=i<t.length?n[t.charAt(i)]:64;if(++i,o==null||a==null||l==null||h==null)throw new CR;let f=o<<2|a>>4;if(r.push(f),l!==64){let g=a<<4&240|l>>2;if(r.push(g),h!==64){let E=l<<6&192|h;r.push(E)}}}return r},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let t=0;t<this.ENCODED_VALS.length;t++)this.byteToCharMap_[t]=this.ENCODED_VALS.charAt(t),this.charToByteMap_[this.byteToCharMap_[t]]=t,this.byteToCharMapWebSafe_[t]=this.ENCODED_VALS_WEBSAFE.charAt(t),this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[t]]=t,t>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(t)]=t,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(t)]=t)}}},CR=class extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}},RR=function(t){let e=eB(t);return cd.encodeByteArray(e,!0)},dp=function(t){return RR(t).replace(/\./g,"")},sd=function(t){try{return cd.decodeString(t,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};function tB(t){return nB(void 0,t)}function nB(t,e){if(!(e instanceof Object))return e;switch(e.constructor){case Date:let n=e;return new Date(n.getTime());case Object:t===void 0&&(t={});break;case Array:t=[];break;default:return e}for(let n in e)!e.hasOwnProperty(n)||!jQ(n)||(t[n]=nB(t[n],e[n]));return t}function jQ(t){return t!=="__proto__"}function xT(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof global<"u")return global;throw new Error("Unable to locate global object.")}var HQ=()=>xT().__FIREBASE_DEFAULTS__,$Q=()=>{if(typeof process>"u"||typeof process.env>"u")return;let t=process.env.__FIREBASE_DEFAULTS__;if(t)return JSON.parse(t)},WQ=()=>{if(typeof document>"u")return;let t;try{t=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch{return}let e=t&&sd(t[1]);return e&&JSON.parse(e)},kT=()=>{try{return QV()||HQ()||$Q()||WQ()}catch(t){console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${t}`);return}},rB=t=>{var e,n;return(n=(e=kT())===null||e===void 0?void 0:e.emulatorHosts)===null||n===void 0?void 0:n[t]},ld=t=>{let e=rB(t);if(!e)return;let n=e.lastIndexOf(":");if(n<=0||n+1===e.length)throw new Error(`Invalid host ${e} with no separate hostname and port!`);let r=parseInt(e.substring(n+1),10);return e[0]==="["?[e.substring(1,n-1),r]:[e.substring(0,n),r]},NR=()=>{var t;return(t=kT())===null||t===void 0?void 0:t.config},iB=t=>{var e;return(e=kT())===null||e===void 0?void 0:e[`_${t}`]};var cn=class{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise((e,n)=>{this.resolve=e,this.reject=n})}wrapCallback(e){return(n,r)=>{n?this.reject(n):this.resolve(r),typeof e=="function"&&(this.promise.catch(()=>{}),e.length===1?e(n):e(n,r))}}};function _r(t){try{return(t.startsWith("http://")||t.startsWith("https://")?new URL(t).hostname:t).endsWith(".cloudworkstations.dev")}catch{return!1}}function ks(t){return y(this,null,function*(){return(yield fetch(t,{credentials:"include"})).ok})}function FT(t,e){if(t.uid)throw new Error('The "uid" field is no longer supported by mockUserToken. Please use "sub" instead for Firebase Auth User ID.');let n={alg:"none",type:"JWT"},r=e||"demo-project",i=t.iat||0,o=t.sub||t.user_id;if(!o)throw new Error("mockUserToken must contain 'sub' or 'user_id' field!");let s=Object.assign({iss:`https://securetoken.google.com/${r}`,aud:r,iat:i,exp:i+3600,auth_time:i,sub:o,user_id:o,firebase:{sign_in_provider:"custom",identities:{}}},t);return[dp(JSON.stringify(n)),dp(JSON.stringify(s)),""].join(".")}var up={};function zQ(){let t={prod:[],emulator:[]};for(let e of Object.keys(up))up[e]?t.emulator.push(e):t.prod.push(e);return t}function qQ(t){let e=document.getElementById(t),n=!1;return e||(e=document.createElement("div"),e.setAttribute("id",t),n=!0),{created:n,element:e}}var JV=!1;function Fc(t,e){if(typeof window>"u"||typeof document>"u"||!_r(window.location.host)||up[t]===e||up[t]||JV)return;up[t]=e;function n(f){return`__firebase__banner__${f}`}let r="__firebase__banner",o=zQ().prod.length>0;function s(){let f=document.getElementById(r);f&&f.remove()}function a(f){f.style.display="flex",f.style.background="#7faaf0",f.style.position="fixed",f.style.bottom="5px",f.style.left="5px",f.style.padding=".5em",f.style.borderRadius="5px",f.style.alignItems="center"}function c(f,g){f.setAttribute("width","24"),f.setAttribute("id",g),f.setAttribute("height","24"),f.setAttribute("viewBox","0 0 24 24"),f.setAttribute("fill","none"),f.style.marginLeft="-6px"}function l(){let f=document.createElement("span");return f.style.cursor="pointer",f.style.marginLeft="16px",f.style.fontSize="24px",f.innerHTML=" &times;",f.onclick=()=>{JV=!0,s()},f}function d(f,g){f.setAttribute("id",g),f.innerText="Learn more",f.href="https://firebase.google.com/docs/studio/preview-apps#preview-backend",f.setAttribute("target","__blank"),f.style.paddingLeft="5px",f.style.textDecoration="underline"}function h(){let f=qQ(r),g=n("text"),E=document.getElementById(g)||document.createElement("span"),I=n("learnmore"),S=document.getElementById(I)||document.createElement("a"),L=n("preprendIcon"),V=document.getElementById(L)||document.createElementNS("http://www.w3.org/2000/svg","svg");if(f.created){let K=f.element;a(K),d(S,I);let oe=l();c(V,L),K.append(V,E,S,oe),document.body.appendChild(K)}o?(E.innerText="Preview backend disconnected.",V.innerHTML=`<g clip-path="url(#clip0_6013_33858)">
123
+ `}};var ZU=class{constructor(){this.type="recorder",this.recordingType="audio",this.mode="floating",this.attachment=null,this.attachments=[],this.pageInfo=new Et}};var eV=class{constructor(){this.type="rewriter",this.rewriterType="copywriter",this.pageInfo=new Et}};var rp=class{constructor(){this.screenWidth=0,this.screenHeight=0,this.screenScrollHeight=0}};var tV=class{constructor(){this.pageInfo=new Et}},QNe={Start:"start",End:"end"},JNe={Avatar:"avatar",Label:"label"};var nV=class{constructor(){this.sources=[],this.playerState=new rR}},rR=class{constructor(){this.volume=1}};var rV=class{constructor(){this.to=[],this.resolved=!1,this.type="tag",this.pageInfo=new Et}};var iV=class{constructor(){this.visibility="private"}};var sV=class{constructor(){this.reactions=[],this.type="reaction",this.pageInfo=new Et,this.isReactionResolverUsed=!1}};var aV=class{};var Owe={EDITOR:"editor",VIEWER:"viewer"},Mwe={DOES_NOT_EXIST:"does_not_exist",PERMISSION_DENIED:"permission_denied",SOMETHING_WENT_WRONG:"something_went_wrong"};var LX=(function(t){return t.INTERNAL="internal",t.EXTERNAL="external",t})(LX||{}),PX=(function(t){return t.UPDATE_DATA="updateData",t})(PX||{});var Tn=class t{constructor(){this._dataLength=0,this._bufferLength=0,this._state=new Int32Array(4),this._buffer=new ArrayBuffer(68),this._buffer8=new Uint8Array(this._buffer,0,68),this._buffer32=new Uint32Array(this._buffer,0,17),this.start()}static hashStr(e,n=!1){return this.onePassHasher.start().appendStr(e).end(n)}static hashAsciiStr(e,n=!1){return this.onePassHasher.start().appendAsciiStr(e).end(n)}static _hex(e){let n=t.hexChars,r=t.hexOut,i,o,s,a;for(a=0;a<4;a+=1)for(o=a*8,i=e[a],s=0;s<8;s+=2)r[o+1+s]=n.charAt(i&15),i>>>=4,r[o+0+s]=n.charAt(i&15),i>>>=4;return r.join("")}static _md5cycle(e,n){let r=e[0],i=e[1],o=e[2],s=e[3];r+=(i&o|~i&s)+n[0]-680876936|0,r=(r<<7|r>>>25)+i|0,s+=(r&i|~r&o)+n[1]-389564586|0,s=(s<<12|s>>>20)+r|0,o+=(s&r|~s&i)+n[2]+606105819|0,o=(o<<17|o>>>15)+s|0,i+=(o&s|~o&r)+n[3]-1044525330|0,i=(i<<22|i>>>10)+o|0,r+=(i&o|~i&s)+n[4]-176418897|0,r=(r<<7|r>>>25)+i|0,s+=(r&i|~r&o)+n[5]+1200080426|0,s=(s<<12|s>>>20)+r|0,o+=(s&r|~s&i)+n[6]-1473231341|0,o=(o<<17|o>>>15)+s|0,i+=(o&s|~o&r)+n[7]-45705983|0,i=(i<<22|i>>>10)+o|0,r+=(i&o|~i&s)+n[8]+1770035416|0,r=(r<<7|r>>>25)+i|0,s+=(r&i|~r&o)+n[9]-1958414417|0,s=(s<<12|s>>>20)+r|0,o+=(s&r|~s&i)+n[10]-42063|0,o=(o<<17|o>>>15)+s|0,i+=(o&s|~o&r)+n[11]-1990404162|0,i=(i<<22|i>>>10)+o|0,r+=(i&o|~i&s)+n[12]+1804603682|0,r=(r<<7|r>>>25)+i|0,s+=(r&i|~r&o)+n[13]-40341101|0,s=(s<<12|s>>>20)+r|0,o+=(s&r|~s&i)+n[14]-1502002290|0,o=(o<<17|o>>>15)+s|0,i+=(o&s|~o&r)+n[15]+1236535329|0,i=(i<<22|i>>>10)+o|0,r+=(i&s|o&~s)+n[1]-165796510|0,r=(r<<5|r>>>27)+i|0,s+=(r&o|i&~o)+n[6]-1069501632|0,s=(s<<9|s>>>23)+r|0,o+=(s&i|r&~i)+n[11]+643717713|0,o=(o<<14|o>>>18)+s|0,i+=(o&r|s&~r)+n[0]-373897302|0,i=(i<<20|i>>>12)+o|0,r+=(i&s|o&~s)+n[5]-701558691|0,r=(r<<5|r>>>27)+i|0,s+=(r&o|i&~o)+n[10]+38016083|0,s=(s<<9|s>>>23)+r|0,o+=(s&i|r&~i)+n[15]-660478335|0,o=(o<<14|o>>>18)+s|0,i+=(o&r|s&~r)+n[4]-405537848|0,i=(i<<20|i>>>12)+o|0,r+=(i&s|o&~s)+n[9]+568446438|0,r=(r<<5|r>>>27)+i|0,s+=(r&o|i&~o)+n[14]-1019803690|0,s=(s<<9|s>>>23)+r|0,o+=(s&i|r&~i)+n[3]-187363961|0,o=(o<<14|o>>>18)+s|0,i+=(o&r|s&~r)+n[8]+1163531501|0,i=(i<<20|i>>>12)+o|0,r+=(i&s|o&~s)+n[13]-1444681467|0,r=(r<<5|r>>>27)+i|0,s+=(r&o|i&~o)+n[2]-51403784|0,s=(s<<9|s>>>23)+r|0,o+=(s&i|r&~i)+n[7]+1735328473|0,o=(o<<14|o>>>18)+s|0,i+=(o&r|s&~r)+n[12]-1926607734|0,i=(i<<20|i>>>12)+o|0,r+=(i^o^s)+n[5]-378558|0,r=(r<<4|r>>>28)+i|0,s+=(r^i^o)+n[8]-2022574463|0,s=(s<<11|s>>>21)+r|0,o+=(s^r^i)+n[11]+1839030562|0,o=(o<<16|o>>>16)+s|0,i+=(o^s^r)+n[14]-35309556|0,i=(i<<23|i>>>9)+o|0,r+=(i^o^s)+n[1]-1530992060|0,r=(r<<4|r>>>28)+i|0,s+=(r^i^o)+n[4]+1272893353|0,s=(s<<11|s>>>21)+r|0,o+=(s^r^i)+n[7]-155497632|0,o=(o<<16|o>>>16)+s|0,i+=(o^s^r)+n[10]-1094730640|0,i=(i<<23|i>>>9)+o|0,r+=(i^o^s)+n[13]+681279174|0,r=(r<<4|r>>>28)+i|0,s+=(r^i^o)+n[0]-358537222|0,s=(s<<11|s>>>21)+r|0,o+=(s^r^i)+n[3]-722521979|0,o=(o<<16|o>>>16)+s|0,i+=(o^s^r)+n[6]+76029189|0,i=(i<<23|i>>>9)+o|0,r+=(i^o^s)+n[9]-640364487|0,r=(r<<4|r>>>28)+i|0,s+=(r^i^o)+n[12]-421815835|0,s=(s<<11|s>>>21)+r|0,o+=(s^r^i)+n[15]+530742520|0,o=(o<<16|o>>>16)+s|0,i+=(o^s^r)+n[2]-995338651|0,i=(i<<23|i>>>9)+o|0,r+=(o^(i|~s))+n[0]-198630844|0,r=(r<<6|r>>>26)+i|0,s+=(i^(r|~o))+n[7]+1126891415|0,s=(s<<10|s>>>22)+r|0,o+=(r^(s|~i))+n[14]-1416354905|0,o=(o<<15|o>>>17)+s|0,i+=(s^(o|~r))+n[5]-57434055|0,i=(i<<21|i>>>11)+o|0,r+=(o^(i|~s))+n[12]+1700485571|0,r=(r<<6|r>>>26)+i|0,s+=(i^(r|~o))+n[3]-1894986606|0,s=(s<<10|s>>>22)+r|0,o+=(r^(s|~i))+n[10]-1051523|0,o=(o<<15|o>>>17)+s|0,i+=(s^(o|~r))+n[1]-2054922799|0,i=(i<<21|i>>>11)+o|0,r+=(o^(i|~s))+n[8]+1873313359|0,r=(r<<6|r>>>26)+i|0,s+=(i^(r|~o))+n[15]-30611744|0,s=(s<<10|s>>>22)+r|0,o+=(r^(s|~i))+n[6]-1560198380|0,o=(o<<15|o>>>17)+s|0,i+=(s^(o|~r))+n[13]+1309151649|0,i=(i<<21|i>>>11)+o|0,r+=(o^(i|~s))+n[4]-145523070|0,r=(r<<6|r>>>26)+i|0,s+=(i^(r|~o))+n[11]-1120210379|0,s=(s<<10|s>>>22)+r|0,o+=(r^(s|~i))+n[2]+718787259|0,o=(o<<15|o>>>17)+s|0,i+=(s^(o|~r))+n[9]-343485551|0,i=(i<<21|i>>>11)+o|0,e[0]=r+e[0]|0,e[1]=i+e[1]|0,e[2]=o+e[2]|0,e[3]=s+e[3]|0}start(){return this._dataLength=0,this._bufferLength=0,this._state.set(t.stateIdentity),this}appendStr(e){let n=this._buffer8,r=this._buffer32,i=this._bufferLength,o,s;for(s=0;s<e.length;s+=1){if(o=e.charCodeAt(s),o<128)n[i++]=o;else if(o<2048)n[i++]=(o>>>6)+192,n[i++]=o&63|128;else if(o<55296||o>56319)n[i++]=(o>>>12)+224,n[i++]=o>>>6&63|128,n[i++]=o&63|128;else{if(o=(o-55296)*1024+(e.charCodeAt(++s)-56320)+65536,o>1114111)throw new Error("Unicode standard supports code points up to U+10FFFF");n[i++]=(o>>>18)+240,n[i++]=o>>>12&63|128,n[i++]=o>>>6&63|128,n[i++]=o&63|128}i>=64&&(this._dataLength+=64,t._md5cycle(this._state,r),i-=64,r[0]=r[16])}return this._bufferLength=i,this}appendAsciiStr(e){let n=this._buffer8,r=this._buffer32,i=this._bufferLength,o,s=0;for(;;){for(o=Math.min(e.length-s,64-i);o--;)n[i++]=e.charCodeAt(s++);if(i<64)break;this._dataLength+=64,t._md5cycle(this._state,r),i=0}return this._bufferLength=i,this}appendByteArray(e){let n=this._buffer8,r=this._buffer32,i=this._bufferLength,o,s=0;for(;;){for(o=Math.min(e.length-s,64-i);o--;)n[i++]=e[s++];if(i<64)break;this._dataLength+=64,t._md5cycle(this._state,r),i=0}return this._bufferLength=i,this}getState(){let e=this._state;return{buffer:String.fromCharCode.apply(null,Array.from(this._buffer8)),buflen:this._bufferLength,length:this._dataLength,state:[e[0],e[1],e[2],e[3]]}}setState(e){let n=e.buffer,r=e.state,i=this._state,o;for(this._dataLength=e.length,this._bufferLength=e.buflen,i[0]=r[0],i[1]=r[1],i[2]=r[2],i[3]=r[3],o=0;o<n.length;o+=1)this._buffer8[o]=n.charCodeAt(o)}end(e=!1){let n=this._bufferLength,r=this._buffer8,i=this._buffer32,o=(n>>2)+1;this._dataLength+=n;let s=this._dataLength*8;if(r[n]=128,r[n+1]=r[n+2]=r[n+3]=0,i.set(t.buffer32Identity.subarray(o),o),n>55&&(t._md5cycle(this._state,i),i.set(t.buffer32Identity)),s<=4294967295)i[14]=s;else{let a=s.toString(16).match(/(.*?)(.{0,8})$/);if(a===null)return;let c=parseInt(a[2],16),l=parseInt(a[1],16)||0;i[14]=c,i[15]=l}return t._md5cycle(this._state,i),e?this._state:t._hex(this._state)}};Tn.stateIdentity=new Int32Array([1732584193,-271733879,-1732584194,271733878]);Tn.buffer32Identity=new Int32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);Tn.hexChars="0123456789abcdef";Tn.hexOut=[];Tn.onePassHasher=new Tn;if(Tn.hashStr("hello")!=="5d41402abc4b2a76b9719d911017c592")throw new Error("Md5 self test failed.");var cV=["annotationId","annotationNumber","visibilityConfig","actions","comments","commentCategories","from","color","resolved","inProgress","lastUpdated","createdAt","positionX","positionY","screenWidth","screenHeight","screenScrollHeight","screenScrollTop","taggedElementPath","taggedElementRect","targetElement","targetElementId","position","documentParamsId","documentParams","locationId","location","type","commentType","sourceType","metadata","targetTextRange","selectAllContent","approved","status","statusUpdatedByUserId","annotationIndex","pageInfo","assignedTo","priority","ghostComment","areaAnnotationId","context","contextId","iam","isPageAnnotation","targetInlineCommentElementId","inlineCommentSectionConfig","customList","subscribedUsers","unsubscribedUsers","subscribedGroups","resolvedByUserId","resolvedByUser","multiThreadAnnotationId","isDraft","sourceId","views","viewedByUserIds","viewedBy","unread","suggestion","agent","involvedUserIds","mentionedUserIds"],lV=["commentId","context","type","commentText","isCommentTextAvailable","isCommentResolverUsed","commentHtml","replaceContentHtml","replaceContentText","commentVoiceUrl","from","to","lastUpdated","createdAt","status","attachments","recorders","reactionAnnotationIds","taggedUserContacts","customList","toOrganizationUserGroup","isDraft","editedAt","isEdited","reactionAnnotations","sourceType","agent","metadata","actions","progress"],iR=["commentId","context","type","isCommentTextAvailable","isCommentResolverUsed","replaceContentHtml","replaceContentText","commentVoiceUrl","from","to","lastUpdated","createdAt","status","attachments","recorders","reactionAnnotationIds","taggedUserContacts","customList","toOrganizationUserGroup","isDraft","editedAt","isEdited","reactionAnnotations","sourceType","agent","metadata","actions","progress"];var uV=["annotationId","context","commentAnnotationId","reactions","lastUpdated","targetElement","targetElementId","position","locationId","location","type","annotationIndex","pageInfo","from","isReactionResolverUsed","iconUrl","iconEmoji","metadata","involvedUserIds"];var dV=["context","annotationId","commentAnnotationId","from","color","lastUpdated","positionX","positionY","screenWidth","screenHeight","screenScrollHeight","screenScrollTop","recorderedElementPath","recorderedElementRect","targetElement","position","locationId","location","type","recordingType","mode","approved","attachment","attachments","annotationIndex","pageInfo","recordedTime","waveformData","displayName","metadata","latestVersion","recordingEditVersions","chunkUrls","isRecorderResolverUsed","isUrlAvailable"];var kOe=["id","featureType","actionType","eventType","actionUser","timestamp","metadata","targetEntityId","targetSubEntityId","changes","entityData","entityTargetData","displayMessageTemplate","displayMessageTemplateData","displayMessage","actionIcon","immutable","isActivityResolverUsed"];var ST=["userId"];var oR=["commonAncestorContainer","commonAncestorContainerFXpath","commonAncestorContainerCFXpath","commonAncestorContainerAnchor","occurrence"],sR=["attachmentId","isAttachmentResolverUsed","name","bucketPath","size","type","url","thumbnail","thumbnailWithPlayIconUrl","metadata","mimeType","previewImages"],aR=["attachmentId","isAttachmentResolverUsed","bucketPath","size","type","thumbnail","thumbnailWithPlayIconUrl","metadata","mimeType","previewImages"];var hV=["id","tag","type","thumbnailUrl","thumbnailWithPlayIconUrl","videoUrl","audioUrl","videoPlayerUrl","chunkUrls"],cR=["status","targetId","targetType","oldValue","newValue","summary","driftDetected","rejectReason","resolvedBy","resolvedAt","metadata"],lR=["status","targetId","targetType","driftDetected","resolvedBy","resolvedAt"];var Lc="velt://self-hosted-disabled/",Pc=t=>typeof t=="string"&&t.startsWith(Lc),CV=(t,e)=>{try{if(Pc(t))return t;let n=new URL(t),r=n.hostname.split("."),i=r.length>=3?r[0]:"",o=t.replace(n.host,e);if(i){let s=o.includes("?")?"&":"?";o+=`${s}ns=${i}`}return o}catch(n){return M.catch("Error in getProxiedDatabaseUrl: ",n),t}},qOe=t=>{try{let e=localStorage.getItem(F.LOCAL_STORAGE.VELT_AUTH_PROXY_HOST);if(!e)return;let n=atob(e),r=t?.config;n&&r&&(r.apiHost=n,r.tokenApiHost=n)}catch(e){M.catch("Error in applyCachedAuthProxyHost: ",e)}},Mc=(t,e=0)=>{try{let n=3735928559^e,r=1103547991^e;for(let i=0,o;i<t.length;i++)o=t.charCodeAt(i),n=Math.imul(n^o,2654435761),r=Math.imul(r^o,1597334677);return n=Math.imul(n^n>>>16,2246822507)^Math.imul(r^r>>>13,3266489909),r=Math.imul(r^r>>>16,2246822507)^Math.imul(n^n>>>13,3266489909),4294967296*(2097151&r)+(n>>>0)}catch(n){return M.catch("Error in cyrb53: ",n),0}},xX=()=>{try{return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,t=>(+t^crypto.getRandomValues(new Uint8Array(1))[0]&15>>+t/4).toString(16))}catch(t){return M.catch("Error in uuidv4: ",t),""}},Vo=t=>{try{return Tn.hashStr(t)}catch(e){return M.catch("Error in hashStr: ",e),t}},DV=t=>{try{return!t||t.trim().length===0?void 0:Tn.hashStr(t)}catch(e){M.catch("Error in hashForAnchor: ",e);return}},KOe=t=>Mc(t).toString(),YOe=t=>Vo(t),RV=t=>Vo(t).toString(),XOe=t=>Vo(t).toString(),QOe=(t,e)=>{try{let n=t.userIds?.length?[...t.userIds]:[];return n.includes(e)||n.push(e),Ee(B({},t),{userIds:n})}catch(n){return M.catch("Error in ensureUserIdInVisibility: ",n),t}},JOe=t=>{try{if(!t)return!1;if(t.iam?.accessMode===dT.PRIVATE)return!0;let e=t.visibilityConfig?.type;return e==="restricted"||e==="organizationPrivate"}catch(e){return M.catch("Error in isAnnotationPrivate: ",e),!1}},ZOe=(t,e)=>{let n=[];switch(t.type){case"public":return n.push(F.DEFAULT_VELT_CONTEXT),n;case"organizationPrivate":{let r=[...t.organizationId?[t.organizationId]:[],...t.organizationIds??[]].filter((i,o,s)=>!!i&&s.indexOf(i)===o);if(!r.length)throw new Error("organizationId is required for organizationPrivate visibility type");r.forEach(i=>{let o=RV(i);n.push(`${F.VISIBILITY_ORG_PREFIX}${o}`)});break}case"restricted":{if(!t.userIds?.length)throw new Error("userIds is required for restricted visibility type");t.userIds.filter((i,o,s)=>!!i&&s.indexOf(i)===o).forEach(i=>{let o=Vo(i).toString();n.push(`${F.VISIBILITY_SELF_PREFIX}${o}`)});break}default:throw new Error(`Invalid visibility type: ${t.type}`)}if(e){let r=`${F.VISIBILITY_SELF_PREFIX}${Vo(e).toString()}`;n.includes(r)||n.push(r)}return n},e0e=(t,e)=>{let n={type:t.type};try{if(t.type==="public")return n;t.organizationId&&(n.organizationId=t.organizationId),t.organizationIds?.length&&(n.organizationIds=t.organizationIds);let r=[...t.userIds??[],...e?[e]:[]].filter((i,o,s)=>!!i&&s.indexOf(i)===o);r.length&&(n.userIds=r)}catch(r){M.catch("Error in buildStoredVisibilityConfig: ",r)}return n},t0e=t=>{let e=[F.DEFAULT_VELT_CONTEXT];try{t?.userId&&e.push(`${F.VISIBILITY_SELF_PREFIX}${Vo(t.userId).toString()}`),t?.clientOrganizationId?e.push(`${F.VISIBILITY_ORG_PREFIX}${RV(t.clientOrganizationId)}`):t?.fallbackServerOrganizationId&&e.push(`${F.VISIBILITY_ORG_PREFIX}${t.fallbackServerOrganizationId}`)}catch(n){M.catch("Error in buildViewerVisibilityTokens: ",n)}return e},n0e=(t,e)=>{try{if(!t?.length)return t??[];let n=new Set(e?.tokens??[]);return t.filter(r=>{try{let i=r?.context?.accessFields,o=wV(i),s=r?.visibilityConfig?.type,a=s==="organizationPrivate"||s==="restricted",c=o.length>0&&!i?.includes(F.DEFAULT_VELT_CONTEXT);return!!(!a&&!c||!i?.length||e?.userId&&r?.from?.userId===e.userId||o.some(l=>n.has(l))||e?.userId&&r?.visibilityConfig?.userIds?.includes(e.userId))}catch(i){return M.catch("Error filtering annotation visibility: ",i),!0}})}catch(n){return M.catch("Error in filterAnnotationsVisibleToUser: ",n),t}},NV=t=>{try{return typeof t=="string"&&(t.startsWith(F.VISIBILITY_SELF_PREFIX)||t.startsWith(F.VISIBILITY_ORG_PREFIX))}catch(e){return M.catch("Error in isVisibilityAccessToken: ",e),!1}},wV=t=>{try{return(t||[]).filter(e=>NV(e))}catch(e){return M.catch("Error in extractVisibilityAccessTokens: ",e),[]}},r0e=t=>{try{return!!t&&typeof t=="object"&&Object.keys(t).some(e=>!(e==="default"&&t[e]==="velt"))}catch(e){return M.catch("Error in isCustomerContextAccess: ",e),!1}},i0e=(t,e)=>{try{let n=Array.isArray(e)?e:[],r=n.length>0&&!n.includes(F.DEFAULT_VELT_CONTEXT),i=t;if(r&&t?.access&&typeof t.access=="object"&&t.access.default==="velt"){let s=B({},t.access);delete s.default,i=Ee(B({},t),{access:s})}let o=sQ(i);return r&&(o=o.filter(s=>s!==F.DEFAULT_VELT_CONTEXT)),r?[...new Set([...n,...o])]:o}catch(n){return M.catch("Error in mergeAccessFieldTokenFamilies: ",n),Array.isArray(e)?e:[]}},kX=t=>{try{if(!t)return null;let e=t?.context?.accessFields??[];if(!e?.length)return null;let n=wV(e),r=t?.visibilityConfig?.type,i=r==="restricted"||r==="organizationPrivate",o=n.length>0&&!e.includes(F.DEFAULT_VELT_CONTEXT);if(!i&&!o)return null;let s=n.some(h=>h.startsWith(F.VISIBILITY_ORG_PREFIX)),c={type:i?r:s?"organizationPrivate":"restricted",accessTokens:n},l=t?.visibilityConfig?.userIds;l?.length&&(c.userIds=[...l]);let d=[...t?.visibilityConfig?.organizationId?[t.visibilityConfig.organizationId]:[],...t?.visibilityConfig?.organizationIds??[]].filter((h,f,g)=>!!h&&g.indexOf(h)===f);return d.length&&(c.organizationIds=d),c}catch(e){M.catch("Error in buildNotificationVisibilityStamp: ",e);try{let n=t?.visibilityConfig?.type;if(n==="restricted"||n==="organizationPrivate")return{type:n,accessTokens:[]}}catch{}return null}},o0e=(t,e)=>{try{if(!e?.length)return[];let n=kX(t);if(!n||n.type!=="restricted")return[];let r=new Set([...n.userIds??[],...t?.from?.userId?[t.from.userId]:[]]),i=new Set(n.accessTokens??[]);return e.filter(o=>!o||r.has(o)?!1:!i.has(`${F.VISIBILITY_SELF_PREFIX}${Vo(o).toString()}`))}catch(n){return M.catch("Error in getVisibilityDeniedUserIds: ",n),[]}},s0e=(t,e)=>{try{if(!t?.length)return t??[];let n=new Set([F.DEFAULT_VELT_CONTEXT,...e||[]]);return t.filter(r=>{try{let i=r?.context?.accessFields;if(!i?.length)return!0;let o=i.filter(s=>!NV(s));return o.length?o.some(s=>n.has(s)):!0}catch(i){return M.catch("Error filtering annotation doc-context match: ",i),!0}})}catch(n){return M.catch("Error in filterAnnotationsMatchingDocContext: ",n),t}},a0e=(t,e)=>{try{if(!t?.length)return t??[];let n=e?.statusIds?.filter(a=>a!=null),r=e?.locationIds?.filter(a=>a!=null),i=n?.length?new Set(n):null,o=r?.length?new Set(r):null,s=e?.veltFolderId||null;return!i&&!o&&!s?t:t.filter(a=>{try{return!(i&&!i.has(a?.status?.id)||s&&a?.metadata?.veltFolderId!==s||o&&!o.has(a?.location?.id))}catch(c){return M.catch("Error filtering annotation query scope: ",c),!0}})}catch(n){return M.catch("Error in filterAnnotationsMatchingQueryScope: ",n),t}},c0e=(t,e)=>{if(!e||!t?.length)return t;let n=new Set(e);return t.filter(r=>{let i=r?.context?.accessFields;return Array.isArray(i)&&i.some(o=>n.has(o))})},l0e=t=>{try{if(t)return typeof t=="string"?Tn.hashStr(t):Array.isArray(t)?Tn.hashStr(t.join("-")):"";{let e=xX();return Tn.hashStr(e)}}catch(e){return M.catch("Error in getMultiThreadAnnotationId: ",e),""}},bV=(t,e,n)=>{try{if(t&&e){if(t.featureAllowList&&t.featureAllowList.length&&!t.featureAllowList.includes(n)||t.userIdAllowList&&t.userIdAllowList.length&&!t.userIdAllowList.includes(e.userId)||t.userGroupIdAllowList&&t.userGroupIdAllowList.length&&!t.userGroupIdAllowList.includes(e.groupId||"")||t.userPlanAllowList&&t.userPlanAllowList.length&&!t.userPlanAllowList.includes(e.plan||""))return!1;if(t.urlAllowList){let r=window.location.href;if(t.urlAllowList.length&&!t.urlAllowList.filter(i=>r.includes(i)).length)return!1}return!0}return!1}catch(r){return M.catch("Error in isFeatureAllowed: ",r),!1}},nd=()=>{try{let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",e="";for(let n=0;n<20;n++)e+=t.charAt(Math.floor(Math.random()*t.length));return e}catch(t){return M.catch("Error in utils generateId: ",t),""}},u0e=t=>{try{let e=0;if(t){let n=new Date().getTime();e=Math.abs(n-t)}return e}catch(e){return M.catch("Error in utils getFirebaseTimeDiffInMins: ",e),0}};var OV=()=>{try{return qt.debugMode||!!sessionStorage.getItem("debugMode")||!!sessionStorage.getItem("forceDebugMode")}catch(t){return M.catch("Error in showLogs: ",t),!1}},MV=()=>{try{return!!sessionStorage.getItem("debugContextMode")}catch(t){return M.catch("Error in showContextLogs: ",t),!1}},LV=t=>{try{return typeof t!="object"?Object.assign({},...Object.keys(t).sort().map(e=>({[e]:t[e]&&typeof t[e]=="object"?LV(t[e]):t[e]}))):t}catch(e){return M.catch("Error in sortObjectByKeys: ",e),t}},uR=t=>{try{return t!==null&&typeof t=="object"&&!Array.isArray(t)}catch{return!1}},fV=t=>{try{return uR(t)?Object.fromEntries(Object.entries(t).sort(([e],[n])=>e.localeCompare(n)).map(([e,n])=>[e,uR(n)?fV(n):Array.isArray(n)?n.map(r=>uR(r)?fV(r):r):n])):t}catch{return t}},pV=(t,e)=>{try{return typeof e!="object"||e===null?t===e:typeof t!="object"||t===null?!1:Array.isArray(e)?Array.isArray(t)?e.every(n=>t.some(r=>pV(r,n))):!1:Object.keys(e).every(n=>Object.prototype.hasOwnProperty.call(t,n)?pV(t[n],e[n]):!1)}catch{return!1}},FX=(t,e,n)=>y(null,null,function*(){try{let r=yield BX(e),i=new Uint8Array(new TextEncoder().encode(n)).slice(0,16),o=new TextEncoder().encode(t),s=yield window.crypto.subtle.encrypt({name:"AES-CBC",iv:i},r,o);return btoa(String.fromCharCode(...new Uint8Array(s)))}catch(r){return M.catch("Error in encrypt: ",r),t}}),UX=(t,e,n)=>y(null,null,function*(){try{let r=yield VX(e),i=new Uint8Array(new TextEncoder().encode(n)).slice(0,16),o=new Uint8Array(atob(t).split("").map(a=>a.charCodeAt(0))),s=yield window.crypto.subtle.decrypt({name:"AES-CBC",iv:i},r,o);return new TextDecoder().decode(s)}catch(r){return M.catch("Error in decrypt: ",r),t}}),VX=t=>y(null,null,function*(){try{let e=new TextEncoder().encode(t),n=new Uint8Array(32);return n.fill(0),n.set(e.slice(0,32)),yield window.crypto.subtle.importKey("raw",n,"AES-CBC",!1,["decrypt"])}catch(e){throw M.catch("Error in importDecryptKey:",e),e}}),wT=(t,e)=>y(null,null,function*(){try{let n="Velt"+e;return yield FX(JSON.stringify(t),n,Vo(n))}catch(n){return M.catch("Error in encryptData: ",n),t}}),sp=(t,e)=>y(null,null,function*(){try{let n="Velt"+e,r=yield UX(t,n,Vo(n));return JSON.parse(r)}catch(n){return M.catch("Error in decryptData: ",n),null}}),d0e=t=>{try{switch(t?.region){case"asiaSouthEast1":return"asiaSouthEast1";case"asiaNorthEast1":return"asiaNorthEast1";case"europeWest1":return"europeWest1";case"australiaSouthEast1":return"australiaSouthEast1";default:return"usCentral1"}}catch(e){return M.catch("Error in getRegion: ",e),"usCentral1"}},BX=t=>y(null,null,function*(){try{let e=new TextEncoder().encode(t),n=new Uint8Array(32);return n.fill(0),n.set(e.slice(0,32)),yield window.crypto.subtle.importKey("raw",n,"AES-CBC",!1,["encrypt"])}catch(e){throw M.catch("Error in importKey:",e),e}}),h0e=t=>{try{if(t&&typeof t=="object"){let e=LV(t);return Mc(JSON.stringify(e))}else return null}catch(e){return M.catch("Error in utils generateLocationId: ",e),null}},qi=(t,e=[])=>(t?.tagName?.toLowerCase().indexOf("velt-")>=0&&![F.TAGS.VELT_VIDEO_PLAYER.toLowerCase()].includes(t?.tagName?.toLowerCase())||t?.tagName?.toLowerCase().indexOf("snippyly-")>=0||t?.className?.split&&(t?.className?.split(" ")?.indexOf("snippyly-overlay-panel")>=0||t?.className?.split(" ")?.indexOf("cdk-overlay-container")>=0))&&!e?.includes(t?.tagName?.toLowerCase())?!0:t?.parentNode&&qi(t?.parentNode,e),f0e=(t,e=[])=>{try{let n=typeof t.composedPath=="function"?t.composedPath():[],r=n.length>0?n:[t?.target];for(let i of r){let o=i;if(!(!o||typeof o.tagName!="string")&&qi(o,e))return!0}}catch(n){M.catch("Error in utils isSnippylyEventTarget: ",n)}return!1},rd=t=>{try{return!!document?.body?.contains(t)}catch(e){return M.catch("Error in utils isElementInsideBody: ",e),!1}};var GX=(t,e)=>{try{return Object.prototype.toString.call(t)===Object.prototype.toString.call(e)?Object.prototype.toString.call(t)==="[object Object]"||Object.prototype.toString.call(t)==="[object Array]"?Object.keys(t).length!==Object.keys(e).length?!1:Object.keys(t).every(n=>GX(t[n],e[n])):t===e:!1}catch(n){return M.catch("Error in utils deepCompare: ",n),!1}},p0e=(t,e,n=1)=>{try{if(e){let r=gV(e.textContent,t,n);if(r>=0){let i=e.querySelector("script")!==null,o=(e?.ownerDocument).createNodeIterator(e,NodeFilter.SHOW_TEXT,i?{acceptNode:g=>g.parentElement?.tagName==="SCRIPT"?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}:null),s,a=[];for(;s=o.nextNode();)a.push(s);let c=r;if(i){let g=a.reduce((I,S)=>I+(S.textContent||""),""),E=gV(g,t,n);if(E<0)return[];c=E}let l=[],d=t.length,h=c+d,f=0;for(let g=0;g<a.length;g++){let E=a[g],I=f;if(f+=E.textContent?.length,f>=c&&!l.length?l.push({textNode:E,startOffset:c-I}):f>=c&&f<h&&l.push({textNode:E}),f>=h){if(l.length===1&&l[0].textNode===E){l.push({textNode:E,endOffset:c-I+t.length});break}let S=d;l.forEach(L=>{S-=L.textNode.textContent?.length-(L.startOffset||0)}),l.push({textNode:E,endOffset:S});break}}return l}}return[]}catch(r){return M.catch("Error in utils calculateNodes: ",r),[]}},gV=(t,e,n=1)=>{try{if(t?.includes(e)){let r=t.split(e,n);return r.length===n?r.join(e).length:-1}else return-1}catch(r){return M.catch("Error in utils getTextPosition: ",r),-1}},gR=(t,e,n,r,i)=>{try{let o=new Range;o.setStart(t,e),o.setEnd(n,r);let s=o.commonAncestorContainer,c=(s.nodeType===Node.ELEMENT_NODE?s:s.parentElement)?.querySelector("script")!==null,l;if(c){let h=o.cloneContents();h.querySelectorAll("script").forEach(f=>f.remove()),l=h.textContent||""}else l=o.toString();let d=0;if(t.nodeType===Node.TEXT_NODE){let h=t,f="";if(h)for(;h=h.previousSibling;)if(c){if(h.nodeType===Node.ELEMENT_NODE&&h.tagName==="SCRIPT")continue;if(h.nodeType===Node.ELEMENT_NODE){let g=h;if(g.querySelector("script")){let E=g.cloneNode(!0);E.querySelectorAll("script").forEach(I=>I.remove()),f=(E.textContent||"")+f}else f=(h.textContent||"")+f}else h.parentElement?.tagName!=="SCRIPT"&&(f=(h.textContent||"")+f)}else f=(h.textContent||"")+f;if(f){let g=new RegExp(mV(i),"g");d=(f.match(g)||[]).length}}if(l){let h=new RegExp(mV(i),"g");return(l.match(h)||[]).length+d}else return d}catch(o){return M.catch("Error in utils getSelectedTextOccurrenceInRange: ",o),0}},mV=t=>{try{return t&&typeof t=="string"?t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"):t}catch(e){return M.catch("Error in utils escapeRegExp: ",e),t}},jX=t=>{try{return t==null?null:t.scrollHeight>t.clientHeight?t:jX(t?.parentNode)}catch(e){return M.catch("Error in utils getScrollableParent: ",e),null}},DT=t=>{try{return t==null?[]:t.scrollHeight>t.clientHeight||t.scrollWidth>t.clientWidth?[t,...DT(t?.parentNode)]:DT(t?.parentNode)}catch(e){return M.catch("Error in utils getScrollableParents: ",e),[]}};function g0e(t){try{if(!t)return[];let e=DT(t),n=t;for(;n;){let r=n.getRootNode();if(r instanceof ShadowRoot)e.push(...DT(r.host)),n=r.host;else break}return e}catch(e){return M.catch("Error in utils getScrollableParentsCrossingShadowBoundary: ",e),[]}}var m0e=(t,e)=>{try{if(t&&e){let n=t.getBoundingClientRect(),r=e.getBoundingClientRect(),i=n.top-r.top+(e.tagName?.toLowerCase()==="html"?0:e.scrollTop),o=n.left-r.left;return{top:i,left:o}}else return null}catch(n){return M.catch("Error in utils getRelativeTopLeftPosition: ",n),null}},PV=(t,e)=>`${Mc(t+"_"+e)}`,xV=t=>{try{let e=TT(t),n=new Et(!1);return e&&Object.assign(n,e),n.url=e?.url??window.location.href,n.path=e?.path??window.location.pathname,n.queryParams=e?.queryParams??window.location.search,n.baseUrl=e?.baseUrl??window.location.origin,n.title=e?.title??document.title,n}catch(e){M.catch("Error in utils getPageInfo: ",e);return}},HX=t=>{try{return t?t?.hasAttribute&&t?.hasAttribute(F.ATTRIBUTES.VELT_COMMENT_DISABLED)?!0:HX(t?.parentElement):!1}catch(e){return M.catch("Error in utils isCommentDisabledOnElement: ",e),!1}},ap=".ProseMirror[contenteditable]",EV=new Set,id=(t,e)=>{try{if(EV.has(t))return;EV.add(t),M.catch(`Error in utils ${t} (treated as "not editor content"): `,e)}catch{}};var Oc=t=>{try{return!t||!t.isConnected?!1:!!(t.nodeType===Node.ELEMENT_NODE?t:t.parentElement)?.closest?.(ap)}catch(e){return id("isNodeInsideRichTextEditor",e),!1}},_V=t=>{if(!t||!t.isConnected)return null;let e=null,n=t.nodeType===Node.ELEMENT_NODE?t:t.parentElement;for(;n=n?.closest?.(ap)??null;)e=n,n=n.parentElement;return e},$X=t=>{try{return!!t?.querySelector?.(ap)}catch(e){return id("containsRichTextEditor",e),!1}},kV=(t,e)=>{let n=e.ownerDocument.createRange();return n.selectNodeContents(e),t.compareBoundaryPoints(Range.START_TO_START,n)>0&&n.setStart(t.startContainer,t.startOffset),t.compareBoundaryPoints(Range.END_TO_END,n)<0&&n.setEnd(t.endContainer,t.endOffset),n},WX=(t,e)=>{let n=t;for(;n&&n!==e;){if(n.nextSibling)return n.nextSibling;n=n.parentNode}return null},zX=(t,e)=>{let n=kV(t,e);if(n.collapsed)return!1;let{startContainer:r,startOffset:i,endContainer:o,endOffset:s}=n,a=d=>{let h=d===r?i:0;return(d===o?s:d.length)>h},c=e.ownerDocument.createTreeWalker(e,NodeFilter.SHOW_TEXT),l;for(r.nodeType===Node.TEXT_NODE?l=r:(l=r.childNodes[i]??WX(r,e),l&&l.nodeType!==Node.TEXT_NODE&&(c.currentNode=l,l=c.nextNode()));l;){if(n.comparePoint(l,0)>0)return!1;if(a(l))return!0;c.currentNode=l,l=c.nextNode()}return!1},FV=t=>{let e=new Set,n=_V(t.startContainer),r=_V(t.endContainer);n&&e.add(n),r&&e.add(r);let i=t.commonAncestorContainer,s=(i?.nodeType===Node.TEXT_NODE?i.parentElement:i)?.querySelectorAll?.(ap)??[];for(let a=0;a<s.length;a++)t.intersectsNode(s[a])&&e.add(s[a]);return e},TV=(t,e)=>{let n=e.parentNode;if(!n)return!1;let r=Array.prototype.indexOf.call(n.childNodes,e);return t.comparePoint(n,r)===0&&t.comparePoint(n,r+1)===0},qX=t=>{try{if(!t||t.collapsed)return!1;for(let e of FV(t))if(zX(t,e))return!0;return!1}catch(e){return id("doesRangeTouchRichTextEditor",e),!1}},E0e=t=>{try{if(!t||t.collapsed)return!1;if(qX(t))return!0;for(let e of FV(t)){if(TV(t,e))return!0;let n=kV(t,e);if(n.collapsed)continue;let r=e.ownerDocument.createTreeWalker(e,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT);for(;r.nextNode();)if(TV(n,r.currentNode))return!0}return!1}catch(e){return id("doesRangeIntersectRichTextEditorNode",e),!1}},KX=t=>{try{if(!t||Oc(t))return;if(!$X(t)){t.normalize();return}Array.from(t.childNodes).forEach(e=>{e.nodeType===Node.ELEMENT_NODE&&!e.matches(ap)&&KX(e)})}catch(e){id("normalizeOutsideRichTextEditors",e)}},_0e=t=>{try{let e=Oc(t.startContainer),n=Oc(t.endContainer);if(!e&&!n)return!0;let r=t.commonAncestorContainer,i=r.nodeType===Node.ELEMENT_NODE?r:r.parentNode;if(!i)return!1;let o=(i.ownerDocument||document).createTreeWalker(i,NodeFilter.SHOW_TEXT),s=null,a=null;for(;o.nextNode();){let c=o.currentNode;c.length&&t.intersectsNode(c)&&!Oc(c)&&(s=s||c,a=c)}return!s||!a?!1:(e&&t.setStart(s,0),n&&t.setEnd(a,a.length),!0)}catch(e){return id("moveRangeBoundariesOutOfRichTextEditors",e),!1}},YX=t=>{try{return t?t?.hasAttribute&&t?.hasAttribute(F.ATTRIBUTES.VELT_TAG_DISABLED)?!0:YX(t?.parentElement):!1}catch(e){return M.catch("Error in utils isTagDisabledOnElement: ",e),!1}},XX=t=>{try{return t?t?.hasAttribute&&t?.hasAttribute(F.ATTRIBUTES.VELT_ARROW_DISABLED)?!0:XX(t?.parentElement):!1}catch(e){return M.catch("Error in utils isArrowDisabledOnElement: ",e),!1}},QX=t=>{try{return t?t?.hasAttribute&&t?.hasAttribute(F.ATTRIBUTES.VELT_AREA_DISABLED)?!0:QX(t?.parentElement):!1}catch(e){return M.catch("Error in utils isAreaDisabledOnElement: ",e),!1}},JX=t=>{try{return t?t?.hasAttribute&&t?.hasAttribute(F.ATTRIBUTES.VELT_RECORDER_DISABLED)?!0:JX(t?.parentElement):!1}catch(e){return M.catch("Error in utils isRecorderDisabledOnElement: ",e),!1}};var xc=()=>{try{return window?.Snippyly?.version}catch(t){return M.catch("Error in utils getSdkVersion: ",t),null}},T0e=t=>{try{return Object.fromEntries(Object.entries(t).filter(([e,n])=>n!==void 0))}catch(e){return M.catch("Error in utils removeUndefinedKeys: ",e),t}},y0e=t=>{try{let e=new URL(t);return Object.values(F.URL_PARAMS).forEach(n=>{e.searchParams.delete(n)}),e.href}catch(e){return M.catch("Error in utils excludeSnippylyParamsFromUrl: ",e),t}},I0e=t=>{try{navigator.clipboard.writeText(t)}catch(e){M.catch("Error in copyToClipboard: ",e)}},dR=t=>{try{let e=UV(t);return e&&typeof e=="string"&&e.includes("/svg")&&(e=e.split("/svg")[0]+"/*[name()='svg']"),e}catch(e){M.catch("Error in utils getXPath:",e)}},UV=t=>{try{if(t){if(typeof t=="string")return document.evaluate(t,document,null,0,null);if(!t||t.nodeType!=1)return"";if(t.id&&t?.tagName?.toLowerCase()!=="svg"&&document.querySelectorAll(`[id='${t.id}']`)?.length===1)return"//*[@id='"+t.id+"']";let e=[].filter.call(t.parentNode?.children?t.parentNode?.children:[],function(n){return n.tagName==t.tagName});return UV(t.parentNode)+"/"+t.tagName.toLowerCase()+(e.length>1?"["+([].indexOf.call(e,t)+1)+"]":"")}}catch(e){M.catch("Error in utils calculateXPath:",e)}},v0e=t=>{try{let e=[];return t.forEach(n=>{let r={};r.commonAncestorContainer=ZX(n.commonAncestorContainer),r.text=n.toString(),r.occurrence=gR(n.commonAncestorContainer,0,n.startContainer,n.startOffset,n.toString())+1,e.push(r)}),e}catch{return[]}},ZX=t=>{try{if(t.nodeType===Node.TEXT_NODE){let e=1,n=t.previousSibling;for(;n;)n.nodeType===Node.TEXT_NODE&&e++,n=n.previousSibling;return dR(t.parentElement)}else return dR(t)}catch(e){return M.catch("Error in utils getXPathForText: ",e),dR(t)}},eQ=(t,e)=>{try{return t?t?.hasAttribute&&(e&&t.hasAttribute("contenteditable")||t?.getAttribute(F.ATTRIBUTES.VELT_LIVE_SELECTION_ENABLED)==="true")?t:eQ(t?.parentElement,e):null}catch(n){return M.catch("Error in utils getSelectionEnabledElement: ",n),null}},S0e=t=>{try{let e,n=[],r=document.createTreeWalker(t,NodeFilter.SHOW_TEXT,null);for(;e=r.nextNode();)n.push(e);return n}catch(e){return M.catch("Error in utils getTextNodesInsideElement: ",e),[]}},A0e=t=>{try{return t<576||t>=576&&t<767?"Mobile":t>=768&&t<992?"Tablet":t>=992&&t<1520?"Desktop":"Monitor"}catch(e){return M.catch("Error in utils getDeviceTypeFromDeviceWidth: ",e),""}},VV=t=>new Promise(e=>setTimeout(e,t)),C0e=(t,e=0)=>new Promise((n,r)=>{let i=document.createElement("video"),o=navigator.userAgent.includes("Firefox");o&&(i.preload="auto"),i.setAttribute("src",URL.createObjectURL(t)),i.load(),i.addEventListener("error",s=>{r("error when loading video file: "+s)}),i.addEventListener("loadedmetadata",()=>{let s=()=>{if(i.duration<e){r("video is too short.");return}setTimeout(()=>{i.currentTime=e},200),i.addEventListener("seeked",()=>{let a=document.createElement("canvas");a.width=i.videoWidth,a.height=i.videoHeight;let c=a.getContext("2d");c.drawImage(i,0,0,a.width,a.height),c.canvas.toBlob(l=>{i.remove(),n(l)},"image/jpeg",.75)})};if(o&&i.duration>0&&i.duration<10&&t.size>1e6){setTimeout(()=>{i.duration<e&&(e=Math.max(.1,i.duration/2)),s()},1e3);return}s()})}),D0e=t=>{try{return new Promise((e,n)=>{let r=new FileReader;r.onloadend=()=>e(r.result),r.readAsDataURL(t)})}catch(e){return M.catch("Error in utils blobToBase64: ",e),Promise.resolve("")}},R0e=(t,e="image/jpeg")=>{try{let n=atob(t.split(",")[1]),r=new ArrayBuffer(n.length),i=new Uint8Array(r);for(let o=0;o<n.length;o++)i[o]=n.charCodeAt(o);return new Blob([r],{type:e})}catch(n){return M.catch("Error in utils base64ToBlob: ",n),null}},N0e=(t,e,n=20)=>new Promise((r,i)=>{let o=new Image;o.crossOrigin="Anonymous",o.onload=()=>{let s=o.width,a=o.height,c=600,l=a/s*c,d="http://www.w3.org/2000/svg",h=document.createElementNS(d,"svg");h.setAttribute("xmlns",d),h.setAttribute("width",c.toString()),h.setAttribute("height",l.toString()),h.setAttribute("viewBox",`0 0 ${c} ${l}`);let f=document.createElementNS(d,"circle"),g=document.createElementNS(d,"polygon"),E=16,I=E+16,S=c/2,L=l/2;if(f.setAttribute("cx",S.toString()),f.setAttribute("cy",L.toString()),f.setAttribute("r",I.toString()),f.setAttribute("fill","lightgrey"),g.setAttribute("points",`${S-E/2},${L-E} ${S-E/2},${L+E} ${S+E},${L}`),g.setAttribute("fill","#ffffff"),h.appendChild(f),h.appendChild(g),e){let C=e.length*16-10,v=16*1.5,A=(c-C)/2,R=l-v-10,N=document.createElementNS(d,"rect");N.setAttribute("x",A.toString()),N.setAttribute("y",R.toString()),N.setAttribute("width",C.toString()),N.setAttribute("height",v.toString()),N.setAttribute("fill","#353945b3"),N.setAttribute("rx","12"),h.appendChild(N);let O=document.createElementNS(d,"text");O.textContent=e,O.setAttribute("x",(c/2).toString()),O.setAttribute("y",(R+16).toString()),O.setAttribute("font-size","16"),O.setAttribute("text-anchor","middle"),O.setAttribute("fill","white"),h.appendChild(O)}let V=new XMLSerializer().serializeToString(h),K=new Image,oe=new Blob([V],{type:"image/svg+xml;charset=utf-8"}),ge=URL.createObjectURL(oe);K.onload=()=>{let te=document.createElement("canvas");te.width=c,te.height=l;let C=te.getContext("2d");C.beginPath(),C.moveTo(n,0),C.lineTo(c-n,0),C.quadraticCurveTo(c,0,c,n),C.lineTo(c,l-n),C.quadraticCurveTo(c,l,c-n,l),C.lineTo(n,l),C.quadraticCurveTo(0,l,0,l-n),C.lineTo(0,n),C.quadraticCurveTo(0,0,n,0),C.closePath(),C.clip(),C.drawImage(o,0,0,c,l),C.drawImage(K,0,0,c,l);let v=te.toDataURL("image/png");r(v)},K.onerror=i,K.src=ge},o.onerror=i,o.src=t});var w0e=t=>{try{return t?.replace(/[\n\t\u200D]/g,"")?.split(/\s+/)?.filter(r=>r?.trim()?.length)||[]}catch(e){return M.catch("Error in utils getWords: ",e),[]}},b0e=(t,e=[])=>{try{let n=e.map(r=>`[${r}="${t}"]`).join(",");return document.querySelector(n)}catch(n){return M.catch("Error in utils getElementByAttributes: ",n),null}},O0e=(t,e=[])=>{try{let n=e.map(r=>`[${r}="${t}"]`).join(",");return document.querySelectorAll(n)}catch(n){return M.catch("Error in utils getElementsByAttributes: ",n),[]}},AT=t=>{try{let e=Math.floor(t/3600),n=Math.floor((t-e*3600)/60),r=Math.floor(t-e*3600-n*60);return e&&e<10&&(e="0"+e),n<10&&(n="0"+n),r<10&&(r="0"+r),(e?e+":":"")+n+":"+r}catch{return""}},tQ=10,M0e=t=>{try{if(typeof t!="number"||!isFinite(t))return 0;let e=1e3/tQ;return Math.round(t*e)/e}catch{return t}},L0e=t=>{try{if(!t||typeof t!="object")return;let e={videoPlayerId:t.videoPlayerId,currentMediaPosition:t.currentMediaPosition,locationName:t.locationName};return t.version?.id&&t.version?.name&&(e.version={id:t.version.id,name:t.version.name}),e}catch{return}},P0e=(t,e=10)=>{try{if(!t||!t.currentTime)throw new Error("Invalid video element reference provided");let n=t.currentTime,r=Math.floor(n/e)*e,i=r+e;return{startSlot:AT(r),endSlot:AT(i),timeSlot:AT(r)+" - "+AT(i)}}catch{return null}},nQ=t=>{try{return t?typeof ShadowRoot<"u"&&t instanceof ShadowRoot?!0:Object.prototype.toString.call(t)==="[object ShadowRoot]":!1}catch{return!1}},BV=t=>{let e=[];try{let n=t;for(;n;){let r=n?.getRootNode?.();if(!r||r===n||!nQ(r))break;e.push(r),n=r.host}}catch(n){M.catch("Error in utils getShadowRootsForElement: ",n)}return e},hR=(t,e)=>{try{let n=r=>!!r&&(r===t||t.contains(r));return n(e.startContainer)&&n(e.endContainer)}catch{return!1}},yV=new Set,GV=(t,e)=>{try{let n=`${t}|${e}`;if(yV.has(n))return;yV.add(n),M.catch(`Caret resolution failed in ${t} (${e}). Mentions and text replacement may not work in this browser.`)}catch{}};var mR=t=>{try{if(!t)return{status:"failed",reason:"no-element"};let e=BV(t),n=window.getSelection(),r=!1,i=e[0];if(i&&typeof i.getSelection=="function"){let o=i.getSelection();if(o?.rangeCount){r=!0;let s=o.getRangeAt(0);if(hR(t,s))return{status:"resolved",range:s,selection:o}}}if(e.length&&typeof n?.getComposedRanges=="function")try{let s=n.getComposedRanges({shadowRoots:e})?.[0];if(s&&(r=!0,hR(t,s))){let a=document.createRange();return a.setStart(s.startContainer,s.startOffset),a.setEnd(s.endContainer,s.endOffset),{status:"resolved",range:a,selection:n}}}catch{}if(n?.rangeCount){r=!0;let o=n.getRangeAt(0);if(hR(t,o))return{status:"resolved",range:o,selection:n}}return r?{status:"failed",reason:"caret-not-resolvable-in-element"}:{status:"no-caret"}}catch(e){return M.catch("Error in utils resolveCaretRangeInElement: ",e),{status:"failed",reason:"threw"}}},x0e=t=>{try{let e=mR(t);if(e.status==="resolved"&&e.selection)return e.selection;let n=BV(t)[0];return n&&typeof n.getSelection=="function"?n.getSelection():window.getSelection()}catch(e){return M.catch("Error in utils getSelectionForElement: ",e),window.getSelection()}},IV=(t,e)=>{try{return!t||!e?!1:typeof t.setBaseAndExtent=="function"?(t.setBaseAndExtent(e.startContainer,e.startOffset,e.startContainer,e.startOffset),!0):(t.removeAllRanges(),t.addRange(e),!0)}catch(n){return M.catch("Error in utils setCaretToRangeStart: ",n),!1}},k0e=(t,e=["@"])=>{try{let n="",r=mR(t);if(r.status==="failed")return GV("getWordAtCursor",r.reason),"";if(r.status==="resolved"){let i=r.range,o=i.endOffset,s=i?.commonAncestorContainer?.textContent;s?n=rQ(s,o,e):n=""}return n}catch(n){return M.catch("Error in utils getWordAtCursor: ",n),""}};var rQ=(t,e,n=["@"])=>{try{let r=-1,i=!1;for(let o of n){let s=t.lastIndexOf(o,e),a=s>0?t.lastIndexOf(o,s-1):-1;if(s>r){let c=RT(t,s,e),l=NT(t,s,e);if(c||l){if(a!==-1){let d=RT(t,a,s),h=NT(t,a,s);!d&&!h&&(r=a,i=!0)}}else r=s,i=!0}}return r!==-1&&i?t.substring(r,e):""}catch(r){return M.catch("Error in utils getStringFromLastAtSymbol: ",r),""}},RT=(t,e,n)=>{try{if(e===0)return!1;let r=t.charAt(e-1);return!(r===" "||r==="\xA0"||r===`
124
+ `||r===" "||[",",":",";"].includes(r))}catch(r){return M.catch("Error in utils isHotkeyDisabledForAutocomplete: ",r),!1}},NT=(t,e,n)=>{try{return!!t.substring(e+1,n).startsWith(" ")}catch(r){return M.catch("Error in utils isHotkeyFollowedBySpace: ",r),!1}},F0e=(t,e,n=["@"])=>{try{let r=mR(t);if(r.status==="failed"){GV("replaceWordAtCursor",r.reason);return}if(r.status==="resolved"){let i=r.selection,o=r.range,s=o.startOffset,a=o?.commonAncestorContainer?.textContent;if(a){let c=-1;for(let l of n){let d=a.lastIndexOf(l,s),h=d>0?a.lastIndexOf(l,d-1):-1;if(d>c){let f=RT(a,d,s),g=NT(a,d,s);if(f||g){if(h!==-1){let E=RT(a,h,d),I=NT(a,h,d);!E&&!I&&(c=h)}}else c=d}}if(c!==-1){let l=a.substring(0,c),d=a.substring(o.endOffset),h=document.createElement("span");h.textContent=e,h.style.color="var(--velt-accent)";let f=e.startsWith("@")?e.substring(1):e;h.classList.add("velt-mention"),h.classList.add(f.includes("@")?"velt-mention--email":"velt-mention--name");let g=Date.now()+"_"+Math.random().toString(36).substr(2,9);h.setAttribute("data-recently-added",g),setTimeout(()=>{h.hasAttribute("data-recently-added")&&h.removeAttribute("data-recently-added")},5e3);let E=o.commonAncestorContainer;if(E.nodeType===Node.TEXT_NODE){let I=E.parentNode;if(I){let S=document.createTextNode(l),L=document.createTextNode(d);I.replaceChild(L,E),I.insertBefore(h,L),I.insertBefore(S,h);try{let V=document.createRange();V.setStartAfter(h),V.collapse(!0),IV(i,V)}catch(V){M.catch("Error positioning cursor after span:",V);try{let K=document.createRange();K.selectNodeContents(t),K.collapse(!1),IV(i,K)}catch(K){M.catch("Error with fallback cursor positioning:",K)}}}}}}}}catch(r){M.catch("Error in utils replaceWordAtCursor: ",r)}},U0e=()=>{try{let e=window.getSelection()?.getRangeAt(0),n=e?.commonAncestorContainer,r=e?.startContainer,i=e?.endContainer,o=[];o.push(n),o.push(r),o.push(i);let s=!1;for(let a of o)if(a&&qi(a,[F.TAGS.SNIPPYLY_TEXT_HIGHLIGHT,F.TAGS.SNIPPYLY_COMMENT_TEXT_PORTAL,F.TAGS.SNIPPYLY_HIGHLIGHT_USER_TEXT,F.TAGS.SNIPPYLY_COMMENT_TEXT])){s=!0;break}return s}catch(t){return M.catch("Error in utils isTextSelectionIncludesSnippylyElement: ",t),!1}},jV=(t,e,n)=>{try{let r=document.querySelector(`[id=${t}]`);if(r)r.name=e,r.content=n;else{let i=document.createElement("meta");i.id=t,i.name=e,i.content=n,document.getElementsByTagName("head")[0].appendChild(i)}}catch{}},HV=t=>{try{if(t){let e=document.querySelector(`[id=${t}]`);e&&e.remove()}}catch{}},$V=()=>{try{let e=new Date().getTimezoneOffset(),n=Math.floor(Math.abs(e)/60),r=Math.abs(e)%60;return`UTC${e>0?"-":"+"}${n?.toString()?.padStart(2,"0")}:${r?.toString()?.padStart(2,"0")}`}catch(t){return M.catch("Error in utils getTimezone: ",t),""}},V0e=()=>{try{let t=[];return document.querySelectorAll("*").forEach(n=>{(n.scrollHeight>n.clientHeight||n.scrollWidth>n.clientWidth||["auto","scroll"].includes(getComputedStyle(n).overflow))&&t.push(n)}),t}catch(t){return M.catch("Error in utils getScrollableElements: ",t),[]}},WV=(t,e)=>Math.sqrt((t.x-e.x)**2+(t.y-e.y)**2),B0e=(t,e={x:window.innerWidth/2,y:window.innerHeight/2})=>{try{let n=t;for(;n.children.length>0;){let r=null,i=Number.MAX_SAFE_INTEGER;for(let o=0;o<n.children.length;o++){let s=n.children[o],a=s.getBoundingClientRect(),c={x:a.left+a.width/2,y:a.top+a.height/2},l=WV(c,e);(a.top>=0||a.bottom<=window.innerHeight)&&a.width>0&&a.height>0&&l<=i&&(r=s,i=l)}if(r===null)break;n=r}return n}catch(n){return M.catch("Error in utils getInnermostElement: ",n),null}},G0e=t=>{try{let{offsetWidth:e,offsetHeight:n,scrollTop:r}=t,i=t,o={x:e/2,y:r+n/2};for(;i.children.length>0;){let s=null,a=Number.MAX_SAFE_INTEGER;for(let c=0;c<i.children.length;c++){let l=i.children[c],d={x:l.offsetLeft+l.offsetWidth/2,y:l.offsetTop+l.offsetHeight/2},h=WV(d,o);l.offsetTop>=0&&l.offsetWidth>0&&l.offsetHeight>0&&h<=a&&(s=l,a=h)}if(s===null)break;i=s}return i}catch(e){return M.catch("Error in utils getNestedInnermostElement: ",e),null}},j0e=()=>{try{let t=window.innerWidth/2,e=window.innerHeight/2,n=document.elementFromPoint(t,e);for(;n&&n.tagName==="BODY";)e+=2,n=document.elementFromPoint(t,e);return n}catch(t){return M.catch("Error in utils getCenteredBackgroundElement: ",t),null}},H0e=(t,e,n=!1)=>{try{let r=t.getBoundingClientRect(),i=e.getBoundingClientRect(),o=e.offsetTop;n&&(o=o-r.height/2+i.height/2),t.scrollTo({top:o,behavior:"smooth"})}catch(r){M.catch("Error in utils nestedScrollIntoView: ",r)}},$0e=(t,e=!0)=>{try{let n=document.body.getBoundingClientRect(),r=t.getBoundingClientRect(),i=r.top-n.top,o=window.innerHeight,s=i;e&&(s=s-o/2+r.height/2),window.scrollTo({top:s,behavior:"smooth"})}catch(n){M.catch("Error in utils scrollIntoView: ",n)}},W0e=(t=!1)=>{try{let e=!0;return t&&(e=/\sChrome\/[\d.]+ Mobile\s/.test(navigator.userAgent)),"ontouchstart"in window||navigator.maxTouchPoints>0||e}catch(e){return M.catch("Error in utils isTouchDevice: ",e),!1}},z0e=(t,e,n)=>{try{return(1-n)*t+n*e}catch(r){M.catch("Error in utils lerp: ",r)}return 0},q0e=(t,e)=>{try{if(t===void 0)return t;if(t=t.replace("#",""),t.length===6){let n=parseInt(t,16),r=(n>>16)+e;r>255&&(r=255),r<0&&(r=0);let i=(n&255)+e;i>255&&(i=255),i<0&&(i=0);let o=(n>>8&255)+e;return o>255&&(o=255),o<0&&(o=0),`#${(i|o<<8|r<<16).toString(16)}`}else return t}catch(n){M.catch("Error in utils multiplyColor: ",n)}return t},K0e=t=>{try{return t in F.TEXT_COLOR_MAP?F.TEXT_COLOR_MAP[t]:"#141416"}catch(e){return M.catch("Error in generateUserColor:",e),"#141416"}},Y0e=()=>{try{let t=localStorage.getItem(F.LOCAL_STORAGE.SNIPPYLY_DEFAULT_MEDIA_SOURCE_OPTIONS);if(t)return JSON.parse(t)}catch(t){return M.catch("Error in getDefaultMediaStreamOptions:",t),{}}},X0e=(t,e)=>{try{let n=e*(Math.PI/180),r=Math.cos(n);return r?t/r:t}catch(n){return M.catch("Error in calculateHypotenuse:",n),0}},Q0e=(t,e,n=!0)=>{try{let r=[],i=n?t:t.parentNode;for(;i;)r.push(i),i=i.parentNode;let o=n?e:e.parentNode;for(;o;){if(r.indexOf(o)!==-1)return o;o=o.parentNode}return null}catch(r){return M.catch("Error in utils findCommonParent: ",r),null}},J0e=(t,e,n,r,i=!1)=>{try{let o,s;if(i){let a=n,c=r;if(a===c)o=t,s=e;else{let l=0,d=0,h=a;for(;h&&h!==c;)l+=h.offsetLeft,d+=h.offsetTop,h=h.parentElement;o=l+t,s=d+e}}else{let a=n.getBoundingClientRect(),c=r.getBoundingClientRect(),l=a.left+t,d=a.top+e;o=l-c.left,s=d-c.top}return{x:o,y:s}}catch(o){return M.catch("Error in utils calculateParentCoordinates: ",o),{x:t,y:e}}},Z0e=t=>{try{let e={height:0,width:0};if(typeof t?.getBBox=="function"){let n=t?.getBBox(),r=t?.getBoundingClientRect();e.height=parseFloat(r?.height||n.height||0),e.width=parseFloat(r?.width||n.width||0)}else{let n=window.getComputedStyle(t);if(e.height=t?.clientHeight||parseFloat(n.getPropertyValue("height"))||0,e.width=t?.clientWidth||parseFloat(n.getPropertyValue("width"))||0,t?.getBoundingClientRect&&typeof t?.getBoundingClientRect=="function"){let r=t?.getBoundingClientRect();e?.height||(e.height=r?.height||t?.clientHeight||t?.offsetHeight||0),e?.width||(e.width=r?.width||t?.clientWidth||t?.offsetWidth||0)}}return e}catch(e){return M.catch("Error in utils getElementDimensions: ",e),{height:0,width:0}}},eMe=t=>{try{let e=t;for(;e;){if(window?.getComputedStyle(e)?.getPropertyValue("background-clip")=="text")return!0;e=e?.parentElement}return!1}catch(e){return M.catch("Error in utils hasParentWithBackgroundClip: ",e),!1}},tMe=t=>{try{let e=["attachment","attachments","chunkUrls","transcription","color","position","positionX","positionY","resolved","inProgress","screenWidth","screenHeight","screenScrollHeight","screenScrollTop","taggedElementPath","taggedElementRect","targetElement","documentParamsId","documentParams","ghostComment","areaAnnotationId","iam","commentSource"],n=JSON.parse(JSON.stringify(t)),r={};return Object.keys(n).forEach(i=>{e.includes(i)||(r[i]=n[i])}),JSON.parse(JSON.stringify(r))}catch(e){return M.catch("Error in utils getRecorderAnnotationForClient: ",e),null}},nMe=t=>t===null||typeof t>"u",rMe=(t,e)=>{try{return!!t?.closest(`[${e}]`)}catch(n){return M.catch("Error in utils hasParentWithAttribute: ",n),!1}},iQ=(t,e=!0)=>{try{let n=[];if(!t||!(t instanceof HTMLElement))return[];e&&n.push(t);for(let r=0;r<t.children.length;r++){let i=t.children[r];n=n.concat(iQ(i))}return n}catch(n){return M.catch("Error in utils getAllNestedChildren: ",n),[]}},iMe=()=>{try{return document.visibilityState==="hidden"?!1:document.hasFocus()}catch(t){return M.catch("Error in utils isTabActive: ",t),!1}},oMe=t=>{try{let e="",n=t?.getAttribute("src");if(n)e=`${Mc(n)}`;else{let r=t?.querySelectorAll("source");if(r&&r.length>0){let o=r[0]?.getAttribute("src");o&&(e=`${Mc(o)}`)}}return e}catch{return""}},sMe=t=>{try{return!(t&&(t?.children?.length>0||t?.textContent?.trim()?.length>0))}catch(e){return M.catch("Error in utils isTemplateEmpty: ",e),!0}},vV=(t,e)=>{try{if(!t||!e)return;let n=[],r="",i=0;for(let c=0;c<e.length;c++){let l=e[c];l==="["?(i++,i===1&&r&&(n.push(r),r=""),r+=l):l==="]"?(i--,r+=l,i===0&&(n.push(r),r="")):l==="."&&i===0?r&&(n.push(r),r=""):r+=l}r&&n.push(r);let o,s=B({},t),a=n.reduce((c,l)=>{if(c==null)return;ki(c)&&(o=c,c=c());let d=l.match(/^\[([^\[\]]+|(\[[^\[\]]*\]))\]$/);if(d){let f=d[1];if(/^\d+$/.test(f)){let g=parseInt(f,10);return Array.isArray(c)?c[g]:void 0}if(f.startsWith("'")&&f.endsWith("'")||f.startsWith('"')&&f.endsWith('"')){let g=f.slice(1,-1);return c[g]}if(f.includes(".")||f.includes("[")){let g=vV(s,f);ki(g)&&(g=g());let E=g?.toString()||"";return c[E]}if(s[f]!==void 0){let g=s[f];return ki(g)&&(g=g()),c[g]}return c[f]}let h=l;return(l.startsWith("'")&&l.endsWith("'")||l.startsWith('"')&&l.endsWith('"'))&&(h=l.slice(1,-1)),h==="length"&&Array.isArray(c)?c.length:c[h]},t);return o?Vf(()=>{try{let c=B({},t);return n.reduce((l,d)=>{if(l==null)return;ki(l)&&(l=l());let h=d.match(/^\[([^\[\]]+|(\[[^\[\]]*\]))\]$/);if(h){let g=h[1];if(/^\d+$/.test(g)){let E=parseInt(g,10);return Array.isArray(l)?l[E]:void 0}if(g.startsWith("'")&&g.endsWith("'")||g.startsWith('"')&&g.endsWith('"')){let E=g.slice(1,-1);return l[E]}if(g.includes(".")||g.includes("[")){let E=vV(c,g);ki(E)&&(E=E());let I=E?.toString()||"";return l[I]}if(c[g]!==void 0){let E=c[g];return ki(E)&&(E=E()),l[E]}return l[g]}let f=d;return(d.startsWith("'")&&d.endsWith("'")||d.startsWith('"')&&d.endsWith('"'))&&(f=d.slice(1,-1)),l[f]},t)}catch{return""}}):a}catch{return""}},aMe=(t,e)=>{try{return!!(t?.locationId&&(t.locationId===e?.locationId||e?.location?.id===String(t.locationId))||t?.location?.id&&(t.location.id===e?.location?.id||t.location.id===String(e?.locationId)))}catch(n){return M.catch("Error in utils isLocationSame: ",n),!1}},cMe=()=>{try{let t=document.activeElement,e=new Set,n=10,r=0;for(;t&&t.shadowRoot&&!(e.has(t)||(e.add(t),t=t.shadowRoot.activeElement,r++,r>n)););return t}catch(t){return M.catch("Error in utils getActiveElement: ",t),null}},cp=(t,e)=>{try{return typeof t=="object"&&typeof e=="object"?JSON.stringify(t)===JSON.stringify(e):t===e}catch{return!1}},oQ=(t,e=0)=>{try{let n=JSON.parse(JSON.stringify(t));return t?.clientDocumentId&&(n.documentId=t.clientDocumentId),t?.clientOrganizationId&&(n.organizationId=t.clientOrganizationId),t?.documentMetadata&&e<5&&(n.documentMetadata=oQ(t.documentMetadata,e+1)),delete n?.clientDocumentId,delete n?.clientOrganizationId,delete n?.veltFolderId,delete n?.parentVeltFolderId,delete n?.pageInfo,n}catch{return t}},lMe=t=>{try{if(!t.some(s=>s?.value?.data))return{};let e=null,n=t.reduce((s,a)=>Math.max(s,a.timestamp),0),r=t.find(s=>s.timestamp===n);if(!r)return{};r?.value?.operation?.type==="removed"&&(e=r?.value?.operation);let o=t.map(s=>s.value).reduce((s,a)=>({data:B(B({},s?.data??{}),a?.data??{})}),{});return o.operation=e,o}catch{return{}}},uMe=(t,e,n)=>y(null,null,function*(){try{let r=0;for(;r<=(n.retryCount||0);)try{let i=yield t();if(!i)return{success:!1,statusCode:400,message:`${e} failed: No response received`};if(i.statusCode===void 0)return{success:!1,statusCode:400,message:`${e} failed: Response missing statusCode`};if(i.statusCode!==200){if(r++,r>(n.retryCount||0))return{success:!1,statusCode:i.statusCode,message:`${e} failed after ${r} attempts with status code ${i.statusCode}`};n.retryDelay&&(yield new Promise(o=>setTimeout(o,n.retryDelay)));continue}return i}catch(i){if(r++,r>(n.retryCount||0))return{success:!1,statusCode:500,message:`${e} failed with error: ${i instanceof Error?i.message:"Unknown error"}`};n.retryDelay&&(yield new Promise(o=>setTimeout(o,n.retryDelay)))}return{success:!1,statusCode:500,message:`${e} failed: Maximum retry attempts exceeded`}}catch(r){return{success:!1,statusCode:500,message:`${e} failed with unexpected error: ${r instanceof Error?r.message:"Unknown error"}`}}}),dMe=(t,e,n,r,i)=>y(null,null,function*(){try{let o=typeof e=="function"?yield e():e||{},a=B(B({},{"Content-Type":"application/json"}),o),c=yield fetch(t,B({method:"POST",headers:a,body:JSON.stringify(n)},i?{credentials:i}:{}));if(!c.ok)return M.catch(`Error in makeConfigBasedRequest: ${c.status} ${c.statusText}`),r?{data:{},success:!1,statusCode:c.status}:{success:!1,statusCode:c.status};let l=yield c.json();return r?{data:l?.data??{},success:!0,statusCode:200}:{success:!0,statusCode:200}}catch(o){return M.catch("Error in makeConfigBasedRequest:",o),r?{data:{},success:!1,statusCode:500}:{success:!1,statusCode:500}}}),hMe=t=>{try{return!t||!t?.access?[]:Object.keys(t.access).sort().map(i=>t.access?.[i]?.map(o=>`${i}:${o}`)??[]).reduce((i,o)=>i.flatMap(s=>o.map(a=>[...s,a])),[[]]).map(i=>i.join("_"))}catch(e){return M.catch("Error in utils generateProcessedContext: ",e),[]}},sQ=t=>{try{if(!t||!t?.access)return[];let e=Object.keys(t.access).sort(),r=(o=>{let s=[],a=Math.pow(2,o.length);for(let c=1;c<a;c++){let l=[];for(let d=0;d<o.length;d++)c&1<<d&&l.push(o[d]);s.push(l)}return s})(e),i=[];for(let o of r){let s=o.map(a=>{let c=t.access?.[a];return c==null?null:`${a}:${c}`}).filter(a=>a!==null);s.length>0&&i.push(s.join("_"))}return[...new Set(i)]}catch(e){return M.catch("Error in utils generateAllContextCombos: ",e),[]}},fMe=({input:t})=>{try{if(!t||!t?.access)return[];let e=t?.access,n=Object.keys(e).sort(),r=[];for(let o of n){let s=e[o];s!=null&&Array.isArray(s)&&s.length>0&&r.push({key:o,values:s})}return r.length===0?[]:r.reduce((o,{key:s,values:a})=>o.length===0?a.map(c=>[{key:s,value:c}]):o.flatMap(c=>a.map(l=>[...c,{key:s,value:l}])),[]).map(o=>{let s={};return o.forEach(({key:a,value:c})=>{s[a]=c}),{access:s}})}catch(e){return M.catch("Error in utils expandContextArraysToSingleValues: ",e),[]}},pMe=({input:t})=>{try{if(!t||t.length===0)return{access:{}};let e=new Set;t.forEach(r=>{r?.access&&Object.keys(r.access).forEach(i=>e.add(i))});let n={};for(let r of Array.from(e).sort()){let i=new Set;t.forEach(o=>{if(o?.access){let s=o.access[r];s!=null&&i.add(s)}}),n[r]=i.size>0?Array.from(i).sort():null}return{access:n}}catch(e){return M.catch("Error in utils combineContextsToArrays: ",e),{access:{}}}},zV=i=>y(null,[i],function*({data:t,getSdkProxy:e,userId:n,methodName:r}){try{let o="sdkproxyencryptionanddecryptiononsdk"+(n??""),s=yield aQ({data:t,key:o}),a=(yield e({veltData:s}))?.data?.data?.veltData||{};return yield sp(a,o)}catch(o){return M.catch("Error in utils sdkProxyEncryptDecrypt: "+(r??""),o),t}}),aQ=n=>y(null,[n],function*({data:t,key:e}){try{return yield wT(t,e)}catch{return t}}),ER=(t,e)=>y(null,null,function*(){try{let n=0;for(;n<=(e.retryCount||0);)try{let r=yield t();if(!r)throw new Error("No response received");return r}catch{if(n++,n>=(e.retryCount||0))return null;e.retryDelay&&(yield new Promise(i=>setTimeout(i,e.retryDelay)))}return null}catch{return null}}),_R=t=>{try{if(t&&typeof t=="object"){let e=JSON.parse(JSON.stringify(t));return e?.clientOrganizationId&&(e.organizationId=e.clientOrganizationId,delete e.clientOrganizationId),e?.clientGroupId&&(e.groupId=e.clientGroupId,delete e.clientGroupId),e?.userSnippylyId&&delete e.userSnippylyId,delete e?.email_lowercase,delete e?.name_lowercase,e}else return null}catch(e){return M.catch("Error in utils getUserForClient: ",e),null}},od=({url:t,apiProxyDomain:e})=>{try{if(Pc(t))return t;if(e){let n=new URL(t);n.origin&&(t=t.replace(n.origin,e))}return t}catch(n){return M.catch("Error in utils getResolvedApiUrl: ",n),t}},gMe=(t,e)=>{try{if(!t||!(t instanceof Element))return!1;let n,r;if(e&&typeof e.x=="number"&&typeof e.y=="number")n=e.x,r=e.y;else{let o=t.getBoundingClientRect();n=o.left+o.width/2,r=o.top+o.height/2}let i=document.elementFromPoint(n,r);return!(!i||i===t||t.contains(i))}catch{return!1}};function op(t,e){if(t==null||typeof t!="object"||Array.isArray(t))return t;let n={};for(let r of e)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r]);return n}function Kt(t){return t!=null&&typeof t=="object"&&!Array.isArray(t)}function Ps(t,e){switch(e.kind){case"type":return op(t,e.safeKeys);case"array":return Array.isArray(t)?t.map(n=>Ps(n,e.item)):t;case"record":{if(!Kt(t))return t;let n={};for(let r of Object.keys(t))n[r]=Ps(t[r],e.value);return n}case"object":{if(!Kt(t))return t;let n=e.selfKeys?op(t,e.selfKeys):B({},t);for(let r of Object.keys(e.fields))Object.prototype.hasOwnProperty.call(n,r)&&(n[r]=Ps(n[r],e.fields[r]));return n}case"omit":{if(!Kt(t))return t;let n=B({},t);for(let r of e.keys)delete n[r];return n}default:return t}}var Ln={kind:"type",safeKeys:ST},cQ={kind:"type",safeKeys:oR},lQ={kind:"type",safeKeys:hV},uQ={kind:"object",selfKeys:lR,fields:{resolvedBy:Ln}},bT={kind:"object",selfKeys:cR,fields:{resolvedBy:Ln}},Uo="textEditorConfig",td="text";function mMe(t){let e=Kt(t)?t[Uo]:void 0;if(!(!Kt(e)||!Object.prototype.hasOwnProperty.call(e,td)))return e[td]}function EMe(t){let e=Kt(t)?t[Uo]:void 0;Kt(e)&&delete e[td]}function _Me(t,e,n){if(!t||typeof t!="object")return;if(!Kt(t.context)){if(!n?.createContext)return;t.context={}}let r=t.context[Uo];r!==void 0&&!Kt(r)||(r===void 0&&(t.context[Uo]={}),t.context[Uo][td]=e)}var dQ=new Set(lR),OT=cR.filter(t=>!dQ.has(t));function fR(t){return t===void 0?void 0:JSON.parse(JSON.stringify(t))}function TMe(t){return Kt(t)&&OT.some(e=>Object.prototype.hasOwnProperty.call(t,e))}function yMe(t){if(Kt(t))for(let e of OT)delete t[e]}function IMe(t,e){let n={};if(Kt(t))for(let r of OT)Object.prototype.hasOwnProperty.call(t,r)&&t[r]!==void 0&&(n[r]=fR(t[r]));if(Kt(e))for(let r of Object.keys(e))e[r]!==void 0&&(n[r]=fR(e[r]));return n}function vMe(t,e){if(!(!t||typeof t!="object")&&!(!Kt(t.suggestion)||!Kt(e)))for(let n of OT)Object.prototype.hasOwnProperty.call(e,n)&&(t.suggestion[n]=fR(e[n]))}var MT={kind:"object",fields:{[Uo]:{kind:"omit",keys:[td]}}},LT={kind:"object",fields:{}},lp={kind:"type",safeKeys:aR},Fo={kind:"type",safeKeys:sR};function TR(t){return{kind:"object",selfKeys:iR,fields:{from:Ln,to:{kind:"array",item:Ln},attachments:{kind:"array",item:t},recorders:{kind:"array",item:lQ},taggedUserContacts:{kind:"array",item:{kind:"object",fields:{contact:Ln}}}}}}function xs(t,e=MT,n=uQ){return{kind:"object",selfKeys:cV,fields:{from:Ln,assignedTo:Ln,resolvedByUser:Ln,viewedBy:{kind:"array",item:Ln},subscribedUsers:{kind:"record",value:{kind:"object",fields:{user:Ln}}},unsubscribedUsers:{kind:"record",value:{kind:"object",fields:{user:Ln}}},suggestion:n,targetTextRange:cQ,context:e,comments:{kind:"array",item:TR(t)}}}}var hQ=xs(lp),qV=xs(Fo),fQ=xs(lp,LT),pQ=xs(Fo,LT),gQ=xs(lp,MT,bT),mQ=xs(Fo,MT,bT),EQ=xs(lp,LT,bT),_Q=xs(Fo,LT,bT),TQ=TR(lp),yQ=TR(Fo),IQ={kind:"object",fields:{from:Ln,context:MT,commentAnnotationsMap:{kind:"record",value:qV}}},vQ={kind:"object",selfKeys:uV,fields:{from:Ln,reactions:{kind:"array",item:{kind:"object",fields:{from:Ln}}}}},SQ={kind:"object",selfKeys:dV,fields:{from:Ln,attachment:Fo,attachments:{kind:"array",item:Fo},recordingEditVersions:{kind:"record",value:{kind:"object",fields:{from:Ln,attachment:Fo,attachments:{kind:"array",item:Fo}}}}}};function AQ(t,e){let n=!!e?.stripAttachmentFiles,r;return e?.keepSuggestionContent?r=e?.keepContextText?n?EQ:_Q:n?gQ:mQ:r=e?.keepContextText?n?fQ:pQ:n?hQ:qV,Ps(t,r)}function SMe(t,e){return Ps(t,e?.stripAttachmentFiles?TQ:yQ)}function AMe(t){return Ps(t,IQ)}var yR=["name","email","photoUrl","clientUserName","initial","name_lowercase","email_lowercase"];function IR(t){if(!Kt(t))return t;let e=B({},t);for(let n of yR)delete e[n];return e}var CMe=["oldCommentText","rejectReason"];function SV(t){return Kt(t)&&typeof t.userId=="string"&&("name"in t||"email"in t||"photoUrl"in t)}var KV=/(text|html)$/i;function DMe(t,e){return typeof e=="string"&&KV.test(t)}function CQ(t,e){if(!KV.test(t))return!1;if(typeof e=="string")return!0;if(!Kt(e))return!1;let n=e;return typeof n.from=="string"||typeof n.to=="string"}function vR(t){return!!t&&!!(t.comment||t.user||t.reaction||t.recorder||t.activity||t.attachment)}var DQ=lV.filter(t=>!iR.includes(t)),RQ=sR.filter(t=>!aR.includes(t)),NQ=64;function YV(t){try{if(t&&typeof t=="object"){let e=t.statusCode;return typeof e=="number"?`statusCode ${e}`:t instanceof Error?`threw ${t.name||"Error"}`:"no statusCode"}return t==null?"no response":"no statusCode"}catch{return"no statusCode"}}function XV(t,e,n){return vR(e)?pR(t,e,0,{pageRoot:n?.kind==="page"}):t}function Ls(t,e){for(let n of e??[])Object.prototype.hasOwnProperty.call(t,n)&&delete t[n]}var Ue=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);function wQ(t){return!!(t instanceof Date||t instanceof RegExp||t instanceof Error||t instanceof Promise||t instanceof Map||t instanceof Set||t instanceof WeakMap||t instanceof WeakSet||t instanceof ArrayBuffer||ArrayBuffer.isView(t)||typeof Blob<"u"&&t instanceof Blob||typeof Node<"u"&&t instanceof Node)}function an(t){if(!Kt(t)||wQ(t))return!1;let e=Object.getPrototypeOf(t);return!(e!==Object.prototype&&e!==null&&Object.keys(t).length===0)}var bQ=["event","eventTimestamp","apiKey","sessionTabId","traits","properties"];function OQ(t){return bQ.some(e=>Ue(t,e))}var ip=t=>an(t)?op(t,ST):t;function MQ(t){for(let e of["from","assignedTo","resolvedByUser","actionUser"])Ue(t,e)&&(t[e]=ip(t[e]));for(let e of["to","viewedBy"])Array.isArray(t[e])&&(t[e]=t[e].map(ip));for(let e of["subscribedUsers","unsubscribedUsers"])if(an(t[e])){let n={};for(let r of Object.keys(t[e])){let i=t[e][r];n[r]=an(i)&&Ue(i,"user")?Ee(B({},i),{user:ip(i.user)}):i}t[e]=n}Array.isArray(t.taggedUserContacts)&&(t.taggedUserContacts=t.taggedUserContacts.map(e=>an(e)&&Ue(e,"contact")?Ee(B({},e),{contact:ip(e.contact)}):e)),an(t.suggestion)&&Ue(t.suggestion,"resolvedBy")&&(t.suggestion=Ee(B({},t.suggestion),{resolvedBy:ip(t.suggestion.resolvedBy)}))}function LQ(t){return Ue(t,"annotationId")&&(Ue(t,"reactions")||Ue(t,"iconEmoji")||Ue(t,"iconUrl"))}function PQ(t){return Ue(t,"annotationId")&&(Ue(t,"recordingType")||Ue(t,"recordedTime")||Ue(t,"attachment")||Ue(t,"transcription"))}function xQ(t){return Ue(t,"featureType")&&Ue(t,"actionType")&&(Ue(t,"changes")||Ue(t,"entityData")||Ue(t,"timestamp")||Ue(t,"id"))}var AV=t=>Array.isArray(t)?t.map(e=>an(e)?{attachmentId:e.attachmentId,name:e.name,bucketPath:e.bucketPath}:e):t;function kQ(t){if(Ue(t,"attachment")&&(t.attachment=null),Ue(t,"chunkUrls")&&an(t.chunkUrls)&&(t.chunkUrls={}),Ue(t,"attachments")&&(t.attachments=AV(t.attachments)),an(t.recordingEditVersions)){let e={};for(let n of Object.keys(t.recordingEditVersions)){let r=t.recordingEditVersions[n];if(!an(r)){e[n]=r;continue}let i=B({},r);Ue(i,"attachment")&&(i.attachment=null),Ue(i,"attachments")&&(i.attachments=AV(i.attachments)),delete i.transcription,e[n]=i}t.recordingEditVersions=e}}var CT=t=>an(t)&&Ue(t,"userId")?{userId:t.userId}:t;function FQ(t){if(Ue(t,"actionUser")&&(t.actionUser=CT(t.actionUser)),an(t.changes)){let e={};for(let n of Object.keys(t.changes)){let r=t.changes[n];e[n]=an(r)?B(B(B({},r),Ue(r,"from")?{from:CT(r.from)}:{}),Ue(r,"to")?{to:CT(r.to)}:{}):r}t.changes=e}if(an(t.displayMessageTemplateData)){let e={};for(let n of Object.keys(t.displayMessageTemplateData))e[n]=CT(t.displayMessageTemplateData[n]);t.displayMessageTemplateData=e}}var UQ=yR.filter(t=>t!=="name");function pR(t,e,n,r={}){if(n>NQ)throw new Error("self-hosting telemetry filter: nesting too deep");let i=r.recorderOwned?{recorderOwned:!0}:{};if(Array.isArray(t))return t.map(g=>pR(g,e,n+1,i));if(!an(t))return t;let o=B({},t),s=OQ(o),a=Ue(o,"annotationId"),c=!s&&LQ(o),l=!s&&PQ(o),d=!s&&!c&&!l&&(a||Ue(o,"commentId")),h=!!e.attachment&&!!e.comment;if(e.comment){if(Ls(o,DQ),an(o.targetTextRange)&&(o.targetTextRange=op(o.targetTextRange,oR)),an(o.context)&&an(o.context[Uo])){let g=B({},o.context[Uo]);delete g[td],o.context=Ee(B({},o.context),{[Uo]:g})}d&&(MQ(o),a&&(Array.isArray(o.comments)&&(o=AQ(o,{stripAttachmentFiles:h})),Ls(o,e.comment.fieldsToRemove)))}if(e.activity&&!s&&xQ(o)&&(Ls(o,e.activity.fieldsToRemove),FQ(o),an(o.changes))){let g=B({},o.changes);for(let E of Object.keys(g))CQ(E,g[E])&&delete g[E];o.changes=g}e.user&&(!s&&SV(o)?o=op(o,ST):(SV(o)||typeof o.email=="string"||typeof o.photoUrl=="string")&&Ls(o,r.pageRoot?UQ:yR)),h&&!r.recorderOwned&&Ue(o,"attachmentId")&&Ls(o,RQ),e.reaction&&c&&(o=VQ(o),Ls(o,e.reaction.fieldsToRemove)),e.recorder&&(Ls(o,["transcription"]),l&&(o=BQ(o),kQ(o),Ls(o,e.recorder.fieldsToRemove)));let f=l&&e.recorder?{recorderOwned:!0}:i;for(let g of Object.keys(o))o[g]=pR(o[g],e,n+1,f);return o}function VQ(t){return Ps(t,vQ)}function BQ(t){return Ps(t,SQ)}var QV=()=>{};var AR={NODE_CLIENT:!1,NODE_ADMIN:!1,SDK_VERSION:"${JSCORE_VERSION}"};var q=function(t,e){if(!t)throw kc(e)},kc=function(t){return new Error("Firebase Database ("+AR.SDK_VERSION+") INTERNAL ASSERT FAILED: "+t)};var eB=function(t){let e=[],n=0;for(let r=0;r<t.length;r++){let i=t.charCodeAt(r);i<128?e[n++]=i:i<2048?(e[n++]=i>>6|192,e[n++]=i&63|128):(i&64512)===55296&&r+1<t.length&&(t.charCodeAt(r+1)&64512)===56320?(i=65536+((i&1023)<<10)+(t.charCodeAt(++r)&1023),e[n++]=i>>18|240,e[n++]=i>>12&63|128,e[n++]=i>>6&63|128,e[n++]=i&63|128):(e[n++]=i>>12|224,e[n++]=i>>6&63|128,e[n++]=i&63|128)}return e},GQ=function(t){let e=[],n=0,r=0;for(;n<t.length;){let i=t[n++];if(i<128)e[r++]=String.fromCharCode(i);else if(i>191&&i<224){let o=t[n++];e[r++]=String.fromCharCode((i&31)<<6|o&63)}else if(i>239&&i<365){let o=t[n++],s=t[n++],a=t[n++],c=((i&7)<<18|(o&63)<<12|(s&63)<<6|a&63)-65536;e[r++]=String.fromCharCode(55296+(c>>10)),e[r++]=String.fromCharCode(56320+(c&1023))}else{let o=t[n++],s=t[n++];e[r++]=String.fromCharCode((i&15)<<12|(o&63)<<6|s&63)}}return e.join("")},cd={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:typeof atob=="function",encodeByteArray(t,e){if(!Array.isArray(t))throw Error("encodeByteArray takes an array as a parameter");this.init_();let n=e?this.byteToCharMapWebSafe_:this.byteToCharMap_,r=[];for(let i=0;i<t.length;i+=3){let o=t[i],s=i+1<t.length,a=s?t[i+1]:0,c=i+2<t.length,l=c?t[i+2]:0,d=o>>2,h=(o&3)<<4|a>>4,f=(a&15)<<2|l>>6,g=l&63;c||(g=64,s||(f=64)),r.push(n[d],n[h],n[f],n[g])}return r.join("")},encodeString(t,e){return this.HAS_NATIVE_SUPPORT&&!e?btoa(t):this.encodeByteArray(eB(t),e)},decodeString(t,e){return this.HAS_NATIVE_SUPPORT&&!e?atob(t):GQ(this.decodeStringToByteArray(t,e))},decodeStringToByteArray(t,e){this.init_();let n=e?this.charToByteMapWebSafe_:this.charToByteMap_,r=[];for(let i=0;i<t.length;){let o=n[t.charAt(i++)],a=i<t.length?n[t.charAt(i)]:0;++i;let l=i<t.length?n[t.charAt(i)]:64;++i;let h=i<t.length?n[t.charAt(i)]:64;if(++i,o==null||a==null||l==null||h==null)throw new CR;let f=o<<2|a>>4;if(r.push(f),l!==64){let g=a<<4&240|l>>2;if(r.push(g),h!==64){let E=l<<6&192|h;r.push(E)}}}return r},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let t=0;t<this.ENCODED_VALS.length;t++)this.byteToCharMap_[t]=this.ENCODED_VALS.charAt(t),this.charToByteMap_[this.byteToCharMap_[t]]=t,this.byteToCharMapWebSafe_[t]=this.ENCODED_VALS_WEBSAFE.charAt(t),this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[t]]=t,t>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(t)]=t,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(t)]=t)}}},CR=class extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}},RR=function(t){let e=eB(t);return cd.encodeByteArray(e,!0)},dp=function(t){return RR(t).replace(/\./g,"")},sd=function(t){try{return cd.decodeString(t,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};function tB(t){return nB(void 0,t)}function nB(t,e){if(!(e instanceof Object))return e;switch(e.constructor){case Date:let n=e;return new Date(n.getTime());case Object:t===void 0&&(t={});break;case Array:t=[];break;default:return e}for(let n in e)!e.hasOwnProperty(n)||!jQ(n)||(t[n]=nB(t[n],e[n]));return t}function jQ(t){return t!=="__proto__"}function xT(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof global<"u")return global;throw new Error("Unable to locate global object.")}var HQ=()=>xT().__FIREBASE_DEFAULTS__,$Q=()=>{if(typeof process>"u"||typeof process.env>"u")return;let t=process.env.__FIREBASE_DEFAULTS__;if(t)return JSON.parse(t)},WQ=()=>{if(typeof document>"u")return;let t;try{t=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch{return}let e=t&&sd(t[1]);return e&&JSON.parse(e)},kT=()=>{try{return QV()||HQ()||$Q()||WQ()}catch(t){console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${t}`);return}},rB=t=>{var e,n;return(n=(e=kT())===null||e===void 0?void 0:e.emulatorHosts)===null||n===void 0?void 0:n[t]},ld=t=>{let e=rB(t);if(!e)return;let n=e.lastIndexOf(":");if(n<=0||n+1===e.length)throw new Error(`Invalid host ${e} with no separate hostname and port!`);let r=parseInt(e.substring(n+1),10);return e[0]==="["?[e.substring(1,n-1),r]:[e.substring(0,n),r]},NR=()=>{var t;return(t=kT())===null||t===void 0?void 0:t.config},iB=t=>{var e;return(e=kT())===null||e===void 0?void 0:e[`_${t}`]};var cn=class{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise((e,n)=>{this.resolve=e,this.reject=n})}wrapCallback(e){return(n,r)=>{n?this.reject(n):this.resolve(r),typeof e=="function"&&(this.promise.catch(()=>{}),e.length===1?e(n):e(n,r))}}};function _r(t){try{return(t.startsWith("http://")||t.startsWith("https://")?new URL(t).hostname:t).endsWith(".cloudworkstations.dev")}catch{return!1}}function ks(t){return y(this,null,function*(){return(yield fetch(t,{credentials:"include"})).ok})}function FT(t,e){if(t.uid)throw new Error('The "uid" field is no longer supported by mockUserToken. Please use "sub" instead for Firebase Auth User ID.');let n={alg:"none",type:"JWT"},r=e||"demo-project",i=t.iat||0,o=t.sub||t.user_id;if(!o)throw new Error("mockUserToken must contain 'sub' or 'user_id' field!");let s=Object.assign({iss:`https://securetoken.google.com/${r}`,aud:r,iat:i,exp:i+3600,auth_time:i,sub:o,user_id:o,firebase:{sign_in_provider:"custom",identities:{}}},t);return[dp(JSON.stringify(n)),dp(JSON.stringify(s)),""].join(".")}var up={};function zQ(){let t={prod:[],emulator:[]};for(let e of Object.keys(up))up[e]?t.emulator.push(e):t.prod.push(e);return t}function qQ(t){let e=document.getElementById(t),n=!1;return e||(e=document.createElement("div"),e.setAttribute("id",t),n=!0),{created:n,element:e}}var JV=!1;function Fc(t,e){if(typeof window>"u"||typeof document>"u"||!_r(window.location.host)||up[t]===e||up[t]||JV)return;up[t]=e;function n(f){return`__firebase__banner__${f}`}let r="__firebase__banner",o=zQ().prod.length>0;function s(){let f=document.getElementById(r);f&&f.remove()}function a(f){f.style.display="flex",f.style.background="#7faaf0",f.style.position="fixed",f.style.bottom="5px",f.style.left="5px",f.style.padding=".5em",f.style.borderRadius="5px",f.style.alignItems="center"}function c(f,g){f.setAttribute("width","24"),f.setAttribute("id",g),f.setAttribute("height","24"),f.setAttribute("viewBox","0 0 24 24"),f.setAttribute("fill","none"),f.style.marginLeft="-6px"}function l(){let f=document.createElement("span");return f.style.cursor="pointer",f.style.marginLeft="16px",f.style.fontSize="24px",f.innerHTML=" &times;",f.onclick=()=>{JV=!0,s()},f}function d(f,g){f.setAttribute("id",g),f.innerText="Learn more",f.href="https://firebase.google.com/docs/studio/preview-apps#preview-backend",f.setAttribute("target","__blank"),f.style.paddingLeft="5px",f.style.textDecoration="underline"}function h(){let f=qQ(r),g=n("text"),E=document.getElementById(g)||document.createElement("span"),I=n("learnmore"),S=document.getElementById(I)||document.createElement("a"),L=n("preprendIcon"),V=document.getElementById(L)||document.createElementNS("http://www.w3.org/2000/svg","svg");if(f.created){let K=f.element;a(K),d(S,I);let oe=l();c(V,L),K.append(V,E,S,oe),document.body.appendChild(K)}o?(E.innerText="Preview backend disconnected.",V.innerHTML=`<g clip-path="url(#clip0_6013_33858)">
125
125
  <path d="M4.8 17.6L12 5.6L19.2 17.6H4.8ZM6.91667 16.4H17.0833L12 7.93333L6.91667 16.4ZM12 15.6C12.1667 15.6 12.3056 15.5444 12.4167 15.4333C12.5389 15.3111 12.6 15.1667 12.6 15C12.6 14.8333 12.5389 14.6944 12.4167 14.5833C12.3056 14.4611 12.1667 14.4 12 14.4C11.8333 14.4 11.6889 14.4611 11.5667 14.5833C11.4556 14.6944 11.4 14.8333 11.4 15C11.4 15.1667 11.4556 15.3111 11.5667 15.4333C11.6889 15.5444 11.8333 15.6 12 15.6ZM11.4 13.6H12.6V10.4H11.4V13.6Z" fill="#212121"/>
126
126
  </g>
127
127
  <defs>
@@ -135,22 +135,22 @@ ${n.map((r,i)=>`${i+1}) ${r.toString()}`).join(`
135
135
  <clipPath id="clip0_6083_34804">
136
136
  <rect width="24" height="24" fill="white"/>
137
137
  </clipPath>
138
- </defs>`,E.innerText="Preview backend running in this workspace."),E.setAttribute("id",g)}document.readyState==="loading"?window.addEventListener("DOMContentLoaded",h):h()}function Yt(){return typeof navigator<"u"&&typeof navigator.userAgent=="string"?navigator.userAgent:""}function hp(){return typeof window<"u"&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(Yt())}function oB(){var t;let e=(t=kT())===null||t===void 0?void 0:t.forceEnvironment;if(e==="node")return!0;if(e==="browser")return!1;try{return Object.prototype.toString.call(global.process)==="[object process]"}catch{return!1}}function sB(){return typeof navigator<"u"&&navigator.userAgent==="Cloudflare-Workers"}function aB(){let t=typeof chrome=="object"?chrome.runtime:typeof browser=="object"?browser.runtime:void 0;return typeof t=="object"&&t.id!==void 0}function UT(){return typeof navigator=="object"&&navigator.product==="ReactNative"}function cB(){let t=Yt();return t.indexOf("MSIE ")>=0||t.indexOf("Trident/")>=0}function Ki(){return AR.NODE_CLIENT===!0||AR.NODE_ADMIN===!0}function wR(){return!oB()&&!!navigator.userAgent&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")}function bR(){return!oB()&&!!navigator.userAgent&&(navigator.userAgent.includes("Safari")||navigator.userAgent.includes("WebKit"))&&!navigator.userAgent.includes("Chrome")}function ud(){try{return typeof indexedDB=="object"}catch{return!1}}function lB(){return new Promise((t,e)=>{try{let n=!0,r="validate-browser-context-for-indexeddb-analytics-module",i=self.indexedDB.open(r);i.onsuccess=()=>{i.result.close(),n||self.indexedDB.deleteDatabase(r),t(!0)},i.onupgradeneeded=()=>{n=!1},i.onerror=()=>{var o;e(((o=i.error)===null||o===void 0?void 0:o.message)||"")}}catch(n){e(n)}})}var KQ="FirebaseError",Jn=class t extends Error{constructor(e,n,r){super(n),this.code=e,this.customData=r,this.name=KQ,Object.setPrototypeOf(this,t.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,ii.prototype.create)}},ii=class{constructor(e,n,r){this.service=e,this.serviceName=n,this.errors=r}create(e,...n){let r=n[0]||{},i=`${this.service}/${e}`,o=this.errors[e],s=o?YQ(o,r):"Error",a=`${this.serviceName}: ${s} (${i}).`;return new Jn(i,a,r)}};function YQ(t,e){return t.replace(XQ,(n,r)=>{let i=e[r];return i!=null?String(i):`<${r}?>`})}var XQ=/\{\$([^}]+)}/g;function ad(t){return JSON.parse(t)}function xt(t){return JSON.stringify(t)}var uB=function(t){let e={},n={},r={},i="";try{let o=t.split(".");e=ad(sd(o[0])||""),n=ad(sd(o[1])||""),i=o[2],r=n.d||{},delete n.d}catch{}return{header:e,claims:n,data:r,signature:i}};var dB=function(t){let e=uB(t),n=e.claims;return!!n&&typeof n=="object"&&n.hasOwnProperty("iat")},hB=function(t){let e=uB(t).claims;return typeof e=="object"&&e.admin===!0};function Vr(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function Fs(t,e){if(Object.prototype.hasOwnProperty.call(t,e))return t[e]}function fp(t){for(let e in t)if(Object.prototype.hasOwnProperty.call(t,e))return!1;return!0}function pp(t,e,n){let r={};for(let i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=e.call(n,t[i],i,t));return r}function oi(t,e){if(t===e)return!0;let n=Object.keys(t),r=Object.keys(e);for(let i of n){if(!r.includes(i))return!1;let o=t[i],s=e[i];if(ZV(o)&&ZV(s)){if(!oi(o,s))return!1}else if(o!==s)return!1}for(let i of r)if(!n.includes(i))return!1;return!0}function ZV(t){return t!==null&&typeof t=="object"}function gp(t){let e=[];for(let[n,r]of Object.entries(t))Array.isArray(r)?r.forEach(i=>{e.push(encodeURIComponent(n)+"="+encodeURIComponent(i))}):e.push(encodeURIComponent(n)+"="+encodeURIComponent(r));return e.length?"&"+e.join("&"):""}var PT=class{constructor(){this.chain_=[],this.buf_=[],this.W_=[],this.pad_=[],this.inbuf_=0,this.total_=0,this.blockSize=512/8,this.pad_[0]=128;for(let e=1;e<this.blockSize;++e)this.pad_[e]=0;this.reset()}reset(){this.chain_[0]=1732584193,this.chain_[1]=4023233417,this.chain_[2]=2562383102,this.chain_[3]=271733878,this.chain_[4]=3285377520,this.inbuf_=0,this.total_=0}compress_(e,n){n||(n=0);let r=this.W_;if(typeof e=="string")for(let h=0;h<16;h++)r[h]=e.charCodeAt(n)<<24|e.charCodeAt(n+1)<<16|e.charCodeAt(n+2)<<8|e.charCodeAt(n+3),n+=4;else for(let h=0;h<16;h++)r[h]=e[n]<<24|e[n+1]<<16|e[n+2]<<8|e[n+3],n+=4;for(let h=16;h<80;h++){let f=r[h-3]^r[h-8]^r[h-14]^r[h-16];r[h]=(f<<1|f>>>31)&4294967295}let i=this.chain_[0],o=this.chain_[1],s=this.chain_[2],a=this.chain_[3],c=this.chain_[4],l,d;for(let h=0;h<80;h++){h<40?h<20?(l=a^o&(s^a),d=1518500249):(l=o^s^a,d=1859775393):h<60?(l=o&s|a&(o|s),d=2400959708):(l=o^s^a,d=3395469782);let f=(i<<5|i>>>27)+l+c+d+r[h]&4294967295;c=a,a=s,s=(o<<30|o>>>2)&4294967295,o=i,i=f}this.chain_[0]=this.chain_[0]+i&4294967295,this.chain_[1]=this.chain_[1]+o&4294967295,this.chain_[2]=this.chain_[2]+s&4294967295,this.chain_[3]=this.chain_[3]+a&4294967295,this.chain_[4]=this.chain_[4]+c&4294967295}update(e,n){if(e==null)return;n===void 0&&(n=e.length);let r=n-this.blockSize,i=0,o=this.buf_,s=this.inbuf_;for(;i<n;){if(s===0)for(;i<=r;)this.compress_(e,i),i+=this.blockSize;if(typeof e=="string"){for(;i<n;)if(o[s]=e.charCodeAt(i),++s,++i,s===this.blockSize){this.compress_(o),s=0;break}}else for(;i<n;)if(o[s]=e[i],++s,++i,s===this.blockSize){this.compress_(o),s=0;break}}this.inbuf_=s,this.total_+=n}digest(){let e=[],n=this.total_*8;this.inbuf_<56?this.update(this.pad_,56-this.inbuf_):this.update(this.pad_,this.blockSize-(this.inbuf_-56));for(let i=this.blockSize-1;i>=56;i--)this.buf_[i]=n&255,n/=256;this.compress_(this.buf_);let r=0;for(let i=0;i<5;i++)for(let o=24;o>=0;o-=8)e[r]=this.chain_[i]>>o&255,++r;return e}};function fB(t,e){let n=new DR(t,e);return n.subscribe.bind(n)}var DR=class{constructor(e,n){this.observers=[],this.unsubscribes=[],this.observerCount=0,this.task=Promise.resolve(),this.finalized=!1,this.onNoObservers=n,this.task.then(()=>{e(this)}).catch(r=>{this.error(r)})}next(e){this.forEachObserver(n=>{n.next(e)})}error(e){this.forEachObserver(n=>{n.error(e)}),this.close(e)}complete(){this.forEachObserver(e=>{e.complete()}),this.close()}subscribe(e,n,r){let i;if(e===void 0&&n===void 0&&r===void 0)throw new Error("Missing Observer.");QQ(e,["next","error","complete"])?i=e:i={next:e,error:n,complete:r},i.next===void 0&&(i.next=SR),i.error===void 0&&(i.error=SR),i.complete===void 0&&(i.complete=SR);let o=this.unsubscribeOne.bind(this,this.observers.length);return this.finalized&&this.task.then(()=>{try{this.finalError?i.error(this.finalError):i.complete()}catch{}}),this.observers.push(i),o}unsubscribeOne(e){this.observers===void 0||this.observers[e]===void 0||(delete this.observers[e],this.observerCount-=1,this.observerCount===0&&this.onNoObservers!==void 0&&this.onNoObservers(this))}forEachObserver(e){if(!this.finalized)for(let n=0;n<this.observers.length;n++)this.sendOne(n,e)}sendOne(e,n){this.task.then(()=>{if(this.observers!==void 0&&this.observers[e]!==void 0)try{n(this.observers[e])}catch(r){typeof console<"u"&&console.error&&console.error(r)}})}close(e){this.finalized||(this.finalized=!0,e!==void 0&&(this.finalError=e),this.task.then(()=>{this.observers=void 0,this.onNoObservers=void 0}))}};function QQ(t,e){if(typeof t!="object"||t===null)return!1;for(let n of e)if(n in t&&typeof t[n]=="function")return!0;return!1}function SR(){}function Us(t,e){return`${t} failed: ${e} argument `}var pB=function(t){let e=[],n=0;for(let r=0;r<t.length;r++){let i=t.charCodeAt(r);if(i>=55296&&i<=56319){let o=i-55296;r++,q(r<t.length,"Surrogate pair missing trail surrogate.");let s=t.charCodeAt(r)-56320;i=65536+(o<<10)+s}i<128?e[n++]=i:i<2048?(e[n++]=i>>6|192,e[n++]=i&63|128):i<65536?(e[n++]=i>>12|224,e[n++]=i>>6&63|128,e[n++]=i&63|128):(e[n++]=i>>18|240,e[n++]=i>>12&63|128,e[n++]=i>>6&63|128,e[n++]=i&63|128)}return e},mp=function(t){let e=0;for(let n=0;n<t.length;n++){let r=t.charCodeAt(n);r<128?e++:r<2048?e+=2:r>=55296&&r<=56319?(e+=4,n++):e+=3}return e};var bMe=14400*1e3;function Me(t){return t&&t._delegate?t._delegate:t}var Xt=class{constructor(e,n,r){this.name=e,this.instanceFactory=n,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 Uc="[DEFAULT]";var VT=class{constructor(e,n){this.name=e,this.container=n,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(e){let n=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(n)){let r=new cn;if(this.instancesDeferred.set(n,r),this.isInitialized(n)||this.shouldAutoInitialize())try{let i=this.getOrInitializeService({instanceIdentifier:n});i&&r.resolve(i)}catch{}}return this.instancesDeferred.get(n).promise}getImmediate(e){var n;let r=this.normalizeInstanceIdentifier(e?.identifier),i=(n=e?.optional)!==null&&n!==void 0?n:!1;if(this.isInitialized(r)||this.shouldAutoInitialize())try{return this.getOrInitializeService({instanceIdentifier:r})}catch(o){if(i)return null;throw o}else{if(i)return null;throw Error(`Service ${this.name} is not available`)}}getComponent(){return this.component}setComponent(e){if(e.name!==this.name)throw Error(`Mismatching Component ${e.name} for Provider ${this.name}.`);if(this.component)throw Error(`Component for ${this.name} has already been provided`);if(this.component=e,!!this.shouldAutoInitialize()){if(ZQ(e))try{this.getOrInitializeService({instanceIdentifier:Uc})}catch{}for(let[n,r]of this.instancesDeferred.entries()){let i=this.normalizeInstanceIdentifier(n);try{let o=this.getOrInitializeService({instanceIdentifier:i});r.resolve(o)}catch{}}}}clearInstance(e=Uc){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}delete(){return y(this,null,function*(){let e=Array.from(this.instances.values());yield Promise.all([...e.filter(n=>"INTERNAL"in n).map(n=>n.INTERNAL.delete()),...e.filter(n=>"_delete"in n).map(n=>n._delete())])})}isComponentSet(){return this.component!=null}isInitialized(e=Uc){return this.instances.has(e)}getOptions(e=Uc){return this.instancesOptions.get(e)||{}}initialize(e={}){let{options:n={}}=e,r=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(r))throw Error(`${this.name}(${r}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);let i=this.getOrInitializeService({instanceIdentifier:r,options:n});for(let[o,s]of this.instancesDeferred.entries()){let a=this.normalizeInstanceIdentifier(o);r===a&&s.resolve(i)}return i}onInit(e,n){var r;let i=this.normalizeInstanceIdentifier(n),o=(r=this.onInitCallbacks.get(i))!==null&&r!==void 0?r:new Set;o.add(e),this.onInitCallbacks.set(i,o);let s=this.instances.get(i);return s&&e(s,i),()=>{o.delete(e)}}invokeOnInitCallbacks(e,n){let r=this.onInitCallbacks.get(n);if(r)for(let i of r)try{i(e,n)}catch{}}getOrInitializeService({instanceIdentifier:e,options:n={}}){let r=this.instances.get(e);if(!r&&this.component&&(r=this.component.instanceFactory(this.container,{instanceIdentifier:JQ(e),options:n}),this.instances.set(e,r),this.instancesOptions.set(e,n),this.invokeOnInitCallbacks(r,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,r)}catch{}return r||null}normalizeInstanceIdentifier(e=Uc){return this.component?this.component.multipleInstances?e:Uc:e}shouldAutoInitialize(){return!!this.component&&this.component.instantiationMode!=="EXPLICIT"}};function JQ(t){return t===Uc?void 0:t}function ZQ(t){return t.instantiationMode==="EAGER"}var Ep=class{constructor(e){this.name=e,this.providers=new Map}addComponent(e){let n=this.getProvider(e.name);if(n.isComponentSet())throw new Error(`Component ${e.name} has already been registered with ${this.name}`);n.setComponent(e)}addOrOverwriteComponent(e){this.getProvider(e.name).isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){if(this.providers.has(e))return this.providers.get(e);let n=new VT(e,this);return this.providers.set(e,n),n}getProviders(){return Array.from(this.providers.values())}};var gB=[],Re=(function(t){return t[t.DEBUG=0]="DEBUG",t[t.VERBOSE=1]="VERBOSE",t[t.INFO=2]="INFO",t[t.WARN=3]="WARN",t[t.ERROR=4]="ERROR",t[t.SILENT=5]="SILENT",t})(Re||{}),eJ={debug:Re.DEBUG,verbose:Re.VERBOSE,info:Re.INFO,warn:Re.WARN,error:Re.ERROR,silent:Re.SILENT},tJ=Re.INFO,nJ={[Re.DEBUG]:"log",[Re.VERBOSE]:"log",[Re.INFO]:"info",[Re.WARN]:"warn",[Re.ERROR]:"error"},rJ=(t,e,...n)=>{if(e<t.logLevel)return;let r=new Date().toISOString(),i=nJ[e];if(i)console[i](`[${r}] ${t.name}:`,...n);else throw new Error(`Attempted to log a message with an invalid logType (value: ${e})`)},Br=class{constructor(e){this.name=e,this._logLevel=tJ,this._logHandler=rJ,this._userLogHandler=null,gB.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in Re))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel=typeof e=="string"?eJ[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if(typeof e!="function")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,Re.DEBUG,...e),this._logHandler(this,Re.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,Re.VERBOSE,...e),this._logHandler(this,Re.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,Re.INFO,...e),this._logHandler(this,Re.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,Re.WARN,...e),this._logHandler(this,Re.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,Re.ERROR,...e),this._logHandler(this,Re.ERROR,...e)}};function mB(t){gB.forEach(e=>{e.setLogLevel(t)})}var iJ=(t,e)=>e.some(n=>t instanceof n),EB,_B;function oJ(){return EB||(EB=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function sJ(){return _B||(_B=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}var TB=new WeakMap,MR=new WeakMap,yB=new WeakMap,OR=new WeakMap,PR=new WeakMap;function aJ(t){let e=new Promise((n,r)=>{let i=()=>{t.removeEventListener("success",o),t.removeEventListener("error",s)},o=()=>{n(Yi(t.result)),i()},s=()=>{r(t.error),i()};t.addEventListener("success",o),t.addEventListener("error",s)});return e.then(n=>{n instanceof IDBCursor&&TB.set(n,t)}).catch(()=>{}),PR.set(e,t),e}function cJ(t){if(MR.has(t))return;let e=new Promise((n,r)=>{let i=()=>{t.removeEventListener("complete",o),t.removeEventListener("error",s),t.removeEventListener("abort",s)},o=()=>{n(),i()},s=()=>{r(t.error||new DOMException("AbortError","AbortError")),i()};t.addEventListener("complete",o),t.addEventListener("error",s),t.addEventListener("abort",s)});MR.set(t,e)}var LR={get(t,e,n){if(t instanceof IDBTransaction){if(e==="done")return MR.get(t);if(e==="objectStoreNames")return t.objectStoreNames||yB.get(t);if(e==="store")return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return Yi(t[e])},set(t,e,n){return t[e]=n,!0},has(t,e){return t instanceof IDBTransaction&&(e==="done"||e==="store")?!0:e in t}};function IB(t){LR=t(LR)}function lJ(t){return t===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(e,...n){let r=t.call(BT(this),e,...n);return yB.set(r,e.sort?e.sort():[e]),Yi(r)}:sJ().includes(t)?function(...e){return t.apply(BT(this),e),Yi(TB.get(this))}:function(...e){return Yi(t.apply(BT(this),e))}}function uJ(t){return typeof t=="function"?lJ(t):(t instanceof IDBTransaction&&cJ(t),iJ(t,oJ())?new Proxy(t,LR):t)}function Yi(t){if(t instanceof IDBRequest)return aJ(t);if(OR.has(t))return OR.get(t);let e=uJ(t);return e!==t&&(OR.set(t,e),PR.set(e,t)),e}var BT=t=>PR.get(t);function SB(t,e,{blocked:n,upgrade:r,blocking:i,terminated:o}={}){let s=indexedDB.open(t,e),a=Yi(s);return r&&s.addEventListener("upgradeneeded",c=>{r(Yi(s.result),c.oldVersion,c.newVersion,Yi(s.transaction),c)}),n&&s.addEventListener("blocked",c=>n(c.oldVersion,c.newVersion,c)),a.then(c=>{o&&c.addEventListener("close",()=>o()),i&&c.addEventListener("versionchange",l=>i(l.oldVersion,l.newVersion,l))}).catch(()=>{}),a}var dJ=["get","getKey","getAll","getAllKeys","count"],hJ=["put","add","delete","clear"],xR=new Map;function vB(t,e){if(!(t instanceof IDBDatabase&&!(e in t)&&typeof e=="string"))return;if(xR.get(e))return xR.get(e);let n=e.replace(/FromIndex$/,""),r=e!==n,i=hJ.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!(i||dJ.includes(n)))return;let o=function(s,...a){return y(this,null,function*(){let c=this.transaction(s,i?"readwrite":"readonly"),l=c.store;return r&&(l=l.index(a.shift())),(yield Promise.all([l[n](...a),i&&c.done]))[0]})};return xR.set(e,o),o}IB(t=>Ee(B({},t),{get:(e,n,r)=>vB(e,n)||t.get(e,n,r),has:(e,n)=>!!vB(e,n)||t.has(e,n)}));var FR=class{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map(n=>{if(fJ(n)){let r=n.getImmediate();return`${r.library}/${r.version}`}else return null}).filter(n=>n).join(" ")}};function fJ(t){let e=t.getComponent();return e?.type==="VERSION"}var UR="@firebase/app",AB="0.13.2";var Bo=new Br("@firebase/app"),pJ="@firebase/app-compat",gJ="@firebase/analytics-compat",mJ="@firebase/analytics",EJ="@firebase/app-check-compat",_J="@firebase/app-check",TJ="@firebase/auth",yJ="@firebase/auth-compat",IJ="@firebase/database",vJ="@firebase/data-connect",SJ="@firebase/database-compat",AJ="@firebase/functions",CJ="@firebase/functions-compat",DJ="@firebase/installations",RJ="@firebase/installations-compat",NJ="@firebase/messaging",wJ="@firebase/messaging-compat",bJ="@firebase/performance",OJ="@firebase/performance-compat",MJ="@firebase/remote-config",LJ="@firebase/remote-config-compat",PJ="@firebase/storage",xJ="@firebase/storage-compat",kJ="@firebase/firestore",FJ="@firebase/ai",UJ="@firebase/firestore-compat",VJ="firebase",BJ="11.10.0";var VR="[DEFAULT]",GJ={[UR]:"fire-core",[pJ]:"fire-core-compat",[mJ]:"fire-analytics",[gJ]:"fire-analytics-compat",[_J]:"fire-app-check",[EJ]:"fire-app-check-compat",[TJ]:"fire-auth",[yJ]:"fire-auth-compat",[IJ]:"fire-rtdb",[vJ]:"fire-data-connect",[SJ]:"fire-rtdb-compat",[AJ]:"fire-fn",[CJ]:"fire-fn-compat",[DJ]:"fire-iid",[RJ]:"fire-iid-compat",[NJ]:"fire-fcm",[wJ]:"fire-fcm-compat",[bJ]:"fire-perf",[OJ]:"fire-perf-compat",[MJ]:"fire-rc",[LJ]:"fire-rc-compat",[PJ]:"fire-gcs",[xJ]:"fire-gcs-compat",[kJ]:"fire-fst",[UJ]:"fire-fst-compat",[FJ]:"fire-vertex","fire-js":"fire-js",[VJ]:"fire-js-all"};var _p=new Map,jJ=new Map,BR=new Map;function CB(t,e){try{t.container.addComponent(e)}catch(n){Bo.debug(`Component ${e.name} failed to register with FirebaseApp ${t.name}`,n)}}function $n(t){let e=t.name;if(BR.has(e))return Bo.debug(`There were multiple attempts to register component ${e}.`),!1;BR.set(e,t);for(let n of _p.values())CB(n,t);for(let n of jJ.values())CB(n,t);return!0}function Xi(t,e){let n=t.container.getProvider("heartbeat").getImmediate({optional:!0});return n&&n.triggerHeartbeat(),t.container.getProvider(e)}function Zn(t){return t==null?!1:t.settings!==void 0}var HJ={"no-app":"No Firebase App '{$appName}' has been created - call initializeApp() first","bad-app-name":"Illegal App name: '{$appName}'","duplicate-app":"Firebase App named '{$appName}' already exists with different options or config","app-deleted":"Firebase App named '{$appName}' already deleted","server-app-deleted":"Firebase Server App has been deleted","no-options":"Need to provide options, when not being deployed to hosting via source.","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance.","invalid-log-argument":"First argument to `onLog` must be null or a function.","idb-open":"Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.","idb-get":"Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.","idb-set":"Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.","idb-delete":"Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.","finalization-registry-not-supported":"FirebaseServerApp deleteOnDeref field defined but the JS runtime does not support FinalizationRegistry.","invalid-server-app-environment":"FirebaseServerApp is not for use in browser environments."},Vs=new ii("app","Firebase",HJ);var GR=class{constructor(e,n,r){this._isDeleted=!1,this._options=Object.assign({},e),this._config=Object.assign({},n),this._name=n.name,this._automaticDataCollectionEnabled=n.automaticDataCollectionEnabled,this._container=r,this.container.addComponent(new Xt("app",()=>this,"PUBLIC"))}get automaticDataCollectionEnabled(){return this.checkDestroyed(),this._automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this.checkDestroyed(),this._automaticDataCollectionEnabled=e}get name(){return this.checkDestroyed(),this._name}get options(){return this.checkDestroyed(),this._options}get config(){return this.checkDestroyed(),this._config}get container(){return this._container}get isDeleted(){return this._isDeleted}set isDeleted(e){this._isDeleted=e}checkDestroyed(){if(this.isDeleted)throw Vs.create("app-deleted",{appName:this._name})}};var Bs=BJ;function $R(t,e={}){let n=t;typeof e!="object"&&(e={name:e});let r=Object.assign({name:VR,automaticDataCollectionEnabled:!0},e),i=r.name;if(typeof i!="string"||!i)throw Vs.create("bad-app-name",{appName:String(i)});if(n||(n=NR()),!n)throw Vs.create("no-options");let o=_p.get(i);if(o){if(oi(n,o.options)&&oi(r,o.config))return o;throw Vs.create("duplicate-app",{appName:i})}let s=new Ep(i);for(let c of BR.values())s.addComponent(c);let a=new GR(n,r,s);return _p.set(i,a),a}function er(t=VR){let e=_p.get(t);if(!e&&t===VR&&NR())return $R();if(!e)throw Vs.create("no-app",{appName:t});return e}function GT(){return Array.from(_p.values())}function Ge(t,e,n){var r;let i=(r=GJ[t])!==null&&r!==void 0?r:t;n&&(i+=`-${n}`);let o=i.match(/\s|\//),s=e.match(/\s|\//);if(o||s){let a=[`Unable to register library "${i}" with version "${e}":`];o&&a.push(`library name "${i}" contains illegal characters (whitespace or "/")`),o&&s&&a.push("and"),s&&a.push(`version name "${e}" contains illegal characters (whitespace or "/")`),Bo.warn(a.join(" "));return}$n(new Xt(`${i}-version`,()=>({library:i,version:e}),"VERSION"))}function $J(t){mB(t)}var WJ="firebase-heartbeat-database",zJ=1,Tp="firebase-heartbeat-store",kR=null;function wB(){return kR||(kR=SB(WJ,zJ,{upgrade:(t,e)=>{switch(e){case 0:try{t.createObjectStore(Tp)}catch(n){console.warn(n)}}}}).catch(t=>{throw Vs.create("idb-open",{originalErrorMessage:t.message})})),kR}function qJ(t){return y(this,null,function*(){try{let n=(yield wB()).transaction(Tp),r=yield n.objectStore(Tp).get(bB(t));return yield n.done,r}catch(e){if(e instanceof Jn)Bo.warn(e.message);else{let n=Vs.create("idb-get",{originalErrorMessage:e?.message});Bo.warn(n.message)}}})}function DB(t,e){return y(this,null,function*(){try{let r=(yield wB()).transaction(Tp,"readwrite");yield r.objectStore(Tp).put(e,bB(t)),yield r.done}catch(n){if(n instanceof Jn)Bo.warn(n.message);else{let r=Vs.create("idb-set",{originalErrorMessage:n?.message});Bo.warn(r.message)}}})}function bB(t){return`${t.name}!${t.options.appId}`}var KJ=1024,YJ=30,jR=class{constructor(e){this.container=e,this._heartbeatsCache=null;let n=this.container.getProvider("app").getImmediate();this._storage=new HR(n),this._heartbeatsCachePromise=this._storage.read().then(r=>(this._heartbeatsCache=r,r))}triggerHeartbeat(){return y(this,null,function*(){var e,n;try{let i=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString(),o=RB();if(((e=this._heartbeatsCache)===null||e===void 0?void 0:e.heartbeats)==null&&(this._heartbeatsCache=yield this._heartbeatsCachePromise,((n=this._heartbeatsCache)===null||n===void 0?void 0:n.heartbeats)==null)||this._heartbeatsCache.lastSentHeartbeatDate===o||this._heartbeatsCache.heartbeats.some(s=>s.date===o))return;if(this._heartbeatsCache.heartbeats.push({date:o,agent:i}),this._heartbeatsCache.heartbeats.length>YJ){let s=QJ(this._heartbeatsCache.heartbeats);this._heartbeatsCache.heartbeats.splice(s,1)}return this._storage.overwrite(this._heartbeatsCache)}catch(r){Bo.warn(r)}})}getHeartbeatsHeader(){return y(this,null,function*(){var e;try{if(this._heartbeatsCache===null&&(yield this._heartbeatsCachePromise),((e=this._heartbeatsCache)===null||e===void 0?void 0:e.heartbeats)==null||this._heartbeatsCache.heartbeats.length===0)return"";let n=RB(),{heartbeatsToSend:r,unsentEntries:i}=XJ(this._heartbeatsCache.heartbeats),o=dp(JSON.stringify({version:2,heartbeats:r}));return this._heartbeatsCache.lastSentHeartbeatDate=n,i.length>0?(this._heartbeatsCache.heartbeats=i,yield this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),o}catch(n){return Bo.warn(n),""}})}};function RB(){return new Date().toISOString().substring(0,10)}function XJ(t,e=KJ){let n=[],r=t.slice();for(let i of t){let o=n.find(s=>s.agent===i.agent);if(o){if(o.dates.push(i.date),NB(n)>e){o.dates.pop();break}}else if(n.push({agent:i.agent,dates:[i.date]}),NB(n)>e){n.pop();break}r=r.slice(1)}return{heartbeatsToSend:n,unsentEntries:r}}var HR=class{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}runIndexedDBEnvironmentCheck(){return y(this,null,function*(){return ud()?lB().then(()=>!0).catch(()=>!1):!1})}read(){return y(this,null,function*(){if(yield this._canUseIndexedDBPromise){let n=yield qJ(this.app);return n?.heartbeats?n:{heartbeats:[]}}else return{heartbeats:[]}})}overwrite(e){return y(this,null,function*(){var n;if(yield this._canUseIndexedDBPromise){let i=yield this.read();return DB(this.app,{lastSentHeartbeatDate:(n=e.lastSentHeartbeatDate)!==null&&n!==void 0?n:i.lastSentHeartbeatDate,heartbeats:e.heartbeats})}else return})}add(e){return y(this,null,function*(){var n;if(yield this._canUseIndexedDBPromise){let i=yield this.read();return DB(this.app,{lastSentHeartbeatDate:(n=e.lastSentHeartbeatDate)!==null&&n!==void 0?n:i.lastSentHeartbeatDate,heartbeats:[...i.heartbeats,...e.heartbeats]})}else return})}};function NB(t){return dp(JSON.stringify({version:2,heartbeats:t})).length}function QJ(t){if(t.length===0)return-1;let e=0,n=t[0].date;for(let r=1;r<t.length;r++)t[r].date<n&&(n=t[r].date,e=r);return e}function JJ(t){$n(new Xt("platform-logger",e=>new FR(e),"PRIVATE")),$n(new Xt("heartbeat",e=>new jR(e),"PRIVATE")),Ge(UR,AB,t),Ge(UR,AB,"esm2017"),Ge("fire-js","")}JJ("");var ZJ="firebase",eZ="11.10.0";Ge(ZJ,eZ,"app");function aLe(t){t||(t=Y(Hn));let e=new fe(n=>{if(t.destroyed){n.next();return}return t.onDestroy(n.next.bind(n))});return n=>n.pipe(ps(e))}function cLe(t,e){let n=e?.injector??Y(ze),r=new Xa(1),i=_D(()=>{let o;try{o=t()}catch(s){Uf(()=>r.error(s));return}Uf(()=>r.next(o))},{injector:n,manualCleanup:!0});return n.get(Hn).onDestroy(()=>{i.destroy(),r.complete()}),r.asObservable()}function lLe(t,e){let r=!e?.manualCleanup?e?.injector?.get(Hn)??Y(Hn):null,i=tZ(e?.equal),o;e?.requireSync?o=Ec({kind:0},{equal:i}):o=Ec({kind:1,value:e?.initialValue},{equal:i});let s,a=t.subscribe({next:c=>o.set({kind:1,value:c}),error:c=>{o.set({kind:2,error:c}),s?.()},complete:()=>{s?.()}});if(e?.requireSync&&o().kind===0)throw new J(601,!1);return s=r?.onDestroy(a.unsubscribe.bind(a)),Vf(()=>{let c=o();switch(c.kind){case 1:return c.value;case 2:throw c.error;case 0:throw new J(601,!1)}},{equal:e?.equal})}function tZ(t=Object.is){return(e,n)=>e.kind===1&&n.kind===1&&t(e.value,n.value)}function OB(t){t===void 0&&(t=Y(ze));let e=t.get(Fi);return n=>new fe(r=>{let i=e.add(),o=!1;function s(){o||(i(),o=!0)}let a=n.subscribe({next:c=>{r.next(c),s()},complete:()=>{r.complete(),s()},error:c=>{r.error(c),s()}});return a.add(()=>{r.unsubscribe(),s()}),a})}var si=new nc("ANGULARFIRE2_VERSION");function Gs(t,e,n){if(e){if(e.length===1)return e[0];let o=e.filter(s=>s.app===n);if(o.length===1)return o[0]}return n.container.getProvider(t).getImmediate({optional:!0})}var Go=(t,e)=>{let n=e?[e]:GT(),r=[];return n.forEach(i=>{i.container.getProvider(t).instances.forEach(s=>{r.includes(s)||r.push(s)})}),r},dd=(function(t){return t[t.SILENT=0]="SILENT",t[t.WARN=1]="WARN",t[t.VERBOSE=2]="VERBOSE",t})(dd||{}),MB=wD()&&typeof Zone<"u"?dd.WARN:dd.SILENT;var jT=class{zone;delegate;constructor(e,n=SS){this.zone=e,this.delegate=n}now(){return this.delegate.now()}schedule(e,n,r){let i=this.zone,o=function(s){i?i.runGuarded(()=>{e.apply(this,[s])}):e.apply(this,[s])};return this.delegate.schedule(o,n,r)}},ai=(()=>{class t{outsideAngular;insideAngular;constructor(){let n=Y(Ae);this.outsideAngular=n.runOutsideAngular(()=>new jT(typeof Zone>"u"?void 0:Zone.current)),this.insideAngular=n.run(()=>new jT(typeof Zone>"u"?void 0:Zone.current,An))}static \u0275fac=function(r){return new(r||t)};static \u0275prov=Q({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),LB=!1;function nZ(t,e){!LB&&(MB>dd.SILENT||wD())&&(LB=!0,console.warn("Calling Firebase APIs outside of an Injection context may destabilize your application leading to subtle change-detection and hydration bugs. Find more at https://github.com/angular/angularfire/blob/main/docs/zones.md")),MB>=e&&console.warn(`Firebase API called outside injection context: ${t.name}`)}function rZ(t){let e=Y(Ae,{optional:!0});return e?e.runOutsideAngular(()=>t()):t()}function Vc(t){let e=Y(Ae,{optional:!0});return e?e.run(()=>t()):t()}var iZ=(t,e,n)=>(...r)=>(e&&setTimeout(e,0),bi(n,()=>Vc(()=>t.apply(void 0,r)))),ue=(t,e,n)=>(n||=e?dd.WARN:dd.VERBOSE,function(){let r,i=arguments,o,s,a;try{o=Y(ai),s=Y(Fi),a=Y(Nn)}catch{return nZ(t,n),t.apply(this,i)}for(let l=0;l<arguments.length;l++)typeof i[l]=="function"&&(e&&(r||=Vc(()=>s.add())),i[l]=iZ(i[l],r,a));let c=rZ(()=>t.apply(this,i));return e?c instanceof fe?c.pipe(hs(o.outsideAngular),ds(o.insideAngular),OB(a)):c instanceof Promise?Vc(()=>{let l=s.add();return new Promise((d,h)=>{c.then(f=>bi(a,()=>Vc(()=>d(f))),f=>bi(a,()=>Vc(()=>h(f)))).finally(l)})}):typeof c=="function"&&r?function(){return setTimeout(r,0),c.apply(this,arguments)}:Vc(()=>c):c instanceof fe?c.pipe(hs(o.outsideAngular),ds(o.insideAngular)):Vc(()=>c)});var ci=class{constructor(e){return e}},jo=class{constructor(){return GT()}};function oZ(t){return t&&t.length===1?t[0]:new ci(er())}var WR=new z("angularfire2._apps"),sZ={provide:ci,useFactory:oZ,deps:[[new zt,WR]]},aZ={provide:jo,deps:[[new zt,WR]]};function cZ(t){return(e,n)=>{let r=n.get(Oo);Ge("angularfire",si.full,"core"),Ge("angularfire",si.full,"app"),Ge("angular",xS.full,r.toString());let i=e.runOutsideAngular(()=>t(n));return new ci(i)}}function RLe(t,...e){return Xn([sZ,aZ,{provide:WR,useFactory:cZ(t),multi:!0,deps:[Ae,ze,ai,...e]}])}var NLe=ue(er,!0);var wLe=ue($R,!0);var lZ=new Map,uZ={activated:!1,tokenObservers:[]},dZ={initialized:!1,enabled:!1};function li(t){return lZ.get(t)||Object.assign({},uZ)}function FB(){return dZ}var hZ="https://content-firebaseappcheck.googleapis.com/v1";var fZ="exchangeDebugToken",PB={OFFSET_DURATION:300*1e3,RETRIAL_MIN_WAIT:30*1e3,RETRIAL_MAX_WAIT:960*1e3},ULe=1440*60*1e3;var KR=class{constructor(e,n,r,i,o){if(this.operation=e,this.retryPolicy=n,this.getWaitDuration=r,this.lowerBound=i,this.upperBound=o,this.pending=null,this.nextErrorWaitInterval=i,i>o)throw new Error("Proactive refresh lower bound greater than upper bound!")}start(){this.nextErrorWaitInterval=this.lowerBound,this.process(!0).catch(()=>{})}stop(){this.pending&&(this.pending.reject("cancelled"),this.pending=null)}isRunning(){return!!this.pending}process(e){return y(this,null,function*(){this.stop();try{this.pending=new cn,this.pending.promise.catch(n=>{}),yield pZ(this.getNextRun(e)),this.pending.resolve(),yield this.pending.promise,this.pending=new cn,this.pending.promise.catch(n=>{}),yield this.operation(),this.pending.resolve(),yield this.pending.promise,this.process(!0).catch(()=>{})}catch(n){this.retryPolicy(n)?this.process(!1).catch(()=>{}):this.stop()}})}getNextRun(e){if(e)return this.nextErrorWaitInterval=this.lowerBound,this.getWaitDuration();{let n=this.nextErrorWaitInterval;return this.nextErrorWaitInterval*=2,this.nextErrorWaitInterval>this.upperBound&&(this.nextErrorWaitInterval=this.upperBound),n}}};function pZ(t){return new Promise(e=>{setTimeout(e,t)})}var gZ={"already-initialized":"You have already called initializeAppCheck() for FirebaseApp {$appName} with different options. To avoid this error, call initializeAppCheck() with the same options as when it was originally called. This will return the already initialized instance.","use-before-activation":"App Check is being used before initializeAppCheck() is called for FirebaseApp {$appName}. Call initializeAppCheck() before instantiating other Firebase services.","fetch-network-error":"Fetch failed to connect to a network. Check Internet connection. Original error: {$originalErrorMessage}.","fetch-parse-error":"Fetch client could not parse response. Original error: {$originalErrorMessage}.","fetch-status-error":"Fetch server returned an HTTP error status. HTTP status: {$httpStatus}.","storage-open":"Error thrown when opening storage. Original error: {$originalErrorMessage}.","storage-get":"Error thrown when reading from storage. Original error: {$originalErrorMessage}.","storage-set":"Error thrown when writing to storage. Original error: {$originalErrorMessage}.","recaptcha-error":"ReCAPTCHA error.","initial-throttle":"{$httpStatus} error. Attempts allowed again after {$time}",throttled:"Requests throttled due to previous {$httpStatus} error. Attempts allowed again after {$time}"},js=new ii("appCheck","AppCheck",gZ);function UB(t){if(!li(t).activated)throw js.create("use-before-activation",{appName:t.name})}function VB(r,i){return y(this,arguments,function*({url:t,body:e},n){let o={"Content-Type":"application/json"},s=n.getImmediate({optional:!0});if(s){let g=yield s.getHeartbeatsHeader();g&&(o["X-Firebase-Client"]=g)}let a={method:"POST",body:JSON.stringify(e),headers:o},c;try{c=yield fetch(t,a)}catch(g){throw js.create("fetch-network-error",{originalErrorMessage:g?.message})}if(c.status!==200)throw js.create("fetch-status-error",{httpStatus:c.status});let l;try{l=yield c.json()}catch(g){throw js.create("fetch-parse-error",{originalErrorMessage:g?.message})}let d=l.ttl.match(/^([\d.]+)(s)$/);if(!d||!d[2]||isNaN(Number(d[1])))throw js.create("fetch-parse-error",{originalErrorMessage:`ttl field (timeToLive) is not in standard Protobuf Duration format: ${l.ttl}`});let h=Number(d[1])*1e3,f=Date.now();return{token:l.token,expireTimeMillis:f+h,issuedAtTimeMillis:f}})}function BB(t,e){let{projectId:n,appId:r,apiKey:i}=t.options;return{url:`${hZ}/projects/${n}/apps/${r}:${fZ}?key=${i}`,body:{debug_token:e}}}var mZ="firebase-app-check-database",EZ=1,YR="firebase-app-check-store";var HT=null;function _Z(){return HT||(HT=new Promise((t,e)=>{try{let n=indexedDB.open(mZ,EZ);n.onsuccess=r=>{t(r.target.result)},n.onerror=r=>{var i;e(js.create("storage-open",{originalErrorMessage:(i=r.target.error)===null||i===void 0?void 0:i.message}))},n.onupgradeneeded=r=>{let i=r.target.result;r.oldVersion===0&&i.createObjectStore(YR,{keyPath:"compositeKey"})}}catch(n){e(js.create("storage-open",{originalErrorMessage:n?.message}))}}),HT)}function TZ(t,e){return yZ(IZ(t),e)}function yZ(t,e){return y(this,null,function*(){let r=(yield _Z()).transaction(YR,"readwrite"),o=r.objectStore(YR).put({compositeKey:t,value:e});return new Promise((s,a)=>{o.onsuccess=c=>{s()},r.onerror=c=>{var l;a(js.create("storage-set",{originalErrorMessage:(l=c.target.error)===null||l===void 0?void 0:l.message}))}})})}function IZ(t){return`${t.options.appId}-${t.name}`}var yp=new Br("@firebase/app-check");function zR(t,e){return ud()?TZ(t,e).catch(n=>{yp.warn(`Failed to write token to IndexedDB. Error: ${n}`)}):Promise.resolve()}function GB(){return FB().enabled}function jB(){return y(this,null,function*(){let t=FB();if(t.enabled&&t.token)return t.token.promise;throw Error(`
138
+ </defs>`,E.innerText="Preview backend running in this workspace."),E.setAttribute("id",g)}document.readyState==="loading"?window.addEventListener("DOMContentLoaded",h):h()}function Yt(){return typeof navigator<"u"&&typeof navigator.userAgent=="string"?navigator.userAgent:""}function hp(){return typeof window<"u"&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(Yt())}function oB(){var t;let e=(t=kT())===null||t===void 0?void 0:t.forceEnvironment;if(e==="node")return!0;if(e==="browser")return!1;try{return Object.prototype.toString.call(global.process)==="[object process]"}catch{return!1}}function sB(){return typeof navigator<"u"&&navigator.userAgent==="Cloudflare-Workers"}function aB(){let t=typeof chrome=="object"?chrome.runtime:typeof browser=="object"?browser.runtime:void 0;return typeof t=="object"&&t.id!==void 0}function UT(){return typeof navigator=="object"&&navigator.product==="ReactNative"}function cB(){let t=Yt();return t.indexOf("MSIE ")>=0||t.indexOf("Trident/")>=0}function Ki(){return AR.NODE_CLIENT===!0||AR.NODE_ADMIN===!0}function wR(){return!oB()&&!!navigator.userAgent&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")}function bR(){return!oB()&&!!navigator.userAgent&&(navigator.userAgent.includes("Safari")||navigator.userAgent.includes("WebKit"))&&!navigator.userAgent.includes("Chrome")}function ud(){try{return typeof indexedDB=="object"}catch{return!1}}function lB(){return new Promise((t,e)=>{try{let n=!0,r="validate-browser-context-for-indexeddb-analytics-module",i=self.indexedDB.open(r);i.onsuccess=()=>{i.result.close(),n||self.indexedDB.deleteDatabase(r),t(!0)},i.onupgradeneeded=()=>{n=!1},i.onerror=()=>{var o;e(((o=i.error)===null||o===void 0?void 0:o.message)||"")}}catch(n){e(n)}})}var KQ="FirebaseError",Jn=class t extends Error{constructor(e,n,r){super(n),this.code=e,this.customData=r,this.name=KQ,Object.setPrototypeOf(this,t.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,ii.prototype.create)}},ii=class{constructor(e,n,r){this.service=e,this.serviceName=n,this.errors=r}create(e,...n){let r=n[0]||{},i=`${this.service}/${e}`,o=this.errors[e],s=o?YQ(o,r):"Error",a=`${this.serviceName}: ${s} (${i}).`;return new Jn(i,a,r)}};function YQ(t,e){return t.replace(XQ,(n,r)=>{let i=e[r];return i!=null?String(i):`<${r}?>`})}var XQ=/\{\$([^}]+)}/g;function ad(t){return JSON.parse(t)}function xt(t){return JSON.stringify(t)}var uB=function(t){let e={},n={},r={},i="";try{let o=t.split(".");e=ad(sd(o[0])||""),n=ad(sd(o[1])||""),i=o[2],r=n.d||{},delete n.d}catch{}return{header:e,claims:n,data:r,signature:i}};var dB=function(t){let e=uB(t),n=e.claims;return!!n&&typeof n=="object"&&n.hasOwnProperty("iat")},hB=function(t){let e=uB(t).claims;return typeof e=="object"&&e.admin===!0};function Vr(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function Fs(t,e){if(Object.prototype.hasOwnProperty.call(t,e))return t[e]}function fp(t){for(let e in t)if(Object.prototype.hasOwnProperty.call(t,e))return!1;return!0}function pp(t,e,n){let r={};for(let i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=e.call(n,t[i],i,t));return r}function oi(t,e){if(t===e)return!0;let n=Object.keys(t),r=Object.keys(e);for(let i of n){if(!r.includes(i))return!1;let o=t[i],s=e[i];if(ZV(o)&&ZV(s)){if(!oi(o,s))return!1}else if(o!==s)return!1}for(let i of r)if(!n.includes(i))return!1;return!0}function ZV(t){return t!==null&&typeof t=="object"}function gp(t){let e=[];for(let[n,r]of Object.entries(t))Array.isArray(r)?r.forEach(i=>{e.push(encodeURIComponent(n)+"="+encodeURIComponent(i))}):e.push(encodeURIComponent(n)+"="+encodeURIComponent(r));return e.length?"&"+e.join("&"):""}var PT=class{constructor(){this.chain_=[],this.buf_=[],this.W_=[],this.pad_=[],this.inbuf_=0,this.total_=0,this.blockSize=512/8,this.pad_[0]=128;for(let e=1;e<this.blockSize;++e)this.pad_[e]=0;this.reset()}reset(){this.chain_[0]=1732584193,this.chain_[1]=4023233417,this.chain_[2]=2562383102,this.chain_[3]=271733878,this.chain_[4]=3285377520,this.inbuf_=0,this.total_=0}compress_(e,n){n||(n=0);let r=this.W_;if(typeof e=="string")for(let h=0;h<16;h++)r[h]=e.charCodeAt(n)<<24|e.charCodeAt(n+1)<<16|e.charCodeAt(n+2)<<8|e.charCodeAt(n+3),n+=4;else for(let h=0;h<16;h++)r[h]=e[n]<<24|e[n+1]<<16|e[n+2]<<8|e[n+3],n+=4;for(let h=16;h<80;h++){let f=r[h-3]^r[h-8]^r[h-14]^r[h-16];r[h]=(f<<1|f>>>31)&4294967295}let i=this.chain_[0],o=this.chain_[1],s=this.chain_[2],a=this.chain_[3],c=this.chain_[4],l,d;for(let h=0;h<80;h++){h<40?h<20?(l=a^o&(s^a),d=1518500249):(l=o^s^a,d=1859775393):h<60?(l=o&s|a&(o|s),d=2400959708):(l=o^s^a,d=3395469782);let f=(i<<5|i>>>27)+l+c+d+r[h]&4294967295;c=a,a=s,s=(o<<30|o>>>2)&4294967295,o=i,i=f}this.chain_[0]=this.chain_[0]+i&4294967295,this.chain_[1]=this.chain_[1]+o&4294967295,this.chain_[2]=this.chain_[2]+s&4294967295,this.chain_[3]=this.chain_[3]+a&4294967295,this.chain_[4]=this.chain_[4]+c&4294967295}update(e,n){if(e==null)return;n===void 0&&(n=e.length);let r=n-this.blockSize,i=0,o=this.buf_,s=this.inbuf_;for(;i<n;){if(s===0)for(;i<=r;)this.compress_(e,i),i+=this.blockSize;if(typeof e=="string"){for(;i<n;)if(o[s]=e.charCodeAt(i),++s,++i,s===this.blockSize){this.compress_(o),s=0;break}}else for(;i<n;)if(o[s]=e[i],++s,++i,s===this.blockSize){this.compress_(o),s=0;break}}this.inbuf_=s,this.total_+=n}digest(){let e=[],n=this.total_*8;this.inbuf_<56?this.update(this.pad_,56-this.inbuf_):this.update(this.pad_,this.blockSize-(this.inbuf_-56));for(let i=this.blockSize-1;i>=56;i--)this.buf_[i]=n&255,n/=256;this.compress_(this.buf_);let r=0;for(let i=0;i<5;i++)for(let o=24;o>=0;o-=8)e[r]=this.chain_[i]>>o&255,++r;return e}};function fB(t,e){let n=new DR(t,e);return n.subscribe.bind(n)}var DR=class{constructor(e,n){this.observers=[],this.unsubscribes=[],this.observerCount=0,this.task=Promise.resolve(),this.finalized=!1,this.onNoObservers=n,this.task.then(()=>{e(this)}).catch(r=>{this.error(r)})}next(e){this.forEachObserver(n=>{n.next(e)})}error(e){this.forEachObserver(n=>{n.error(e)}),this.close(e)}complete(){this.forEachObserver(e=>{e.complete()}),this.close()}subscribe(e,n,r){let i;if(e===void 0&&n===void 0&&r===void 0)throw new Error("Missing Observer.");QQ(e,["next","error","complete"])?i=e:i={next:e,error:n,complete:r},i.next===void 0&&(i.next=SR),i.error===void 0&&(i.error=SR),i.complete===void 0&&(i.complete=SR);let o=this.unsubscribeOne.bind(this,this.observers.length);return this.finalized&&this.task.then(()=>{try{this.finalError?i.error(this.finalError):i.complete()}catch{}}),this.observers.push(i),o}unsubscribeOne(e){this.observers===void 0||this.observers[e]===void 0||(delete this.observers[e],this.observerCount-=1,this.observerCount===0&&this.onNoObservers!==void 0&&this.onNoObservers(this))}forEachObserver(e){if(!this.finalized)for(let n=0;n<this.observers.length;n++)this.sendOne(n,e)}sendOne(e,n){this.task.then(()=>{if(this.observers!==void 0&&this.observers[e]!==void 0)try{n(this.observers[e])}catch(r){typeof console<"u"&&console.error&&console.error(r)}})}close(e){this.finalized||(this.finalized=!0,e!==void 0&&(this.finalError=e),this.task.then(()=>{this.observers=void 0,this.onNoObservers=void 0}))}};function QQ(t,e){if(typeof t!="object"||t===null)return!1;for(let n of e)if(n in t&&typeof t[n]=="function")return!0;return!1}function SR(){}function Us(t,e){return`${t} failed: ${e} argument `}var pB=function(t){let e=[],n=0;for(let r=0;r<t.length;r++){let i=t.charCodeAt(r);if(i>=55296&&i<=56319){let o=i-55296;r++,q(r<t.length,"Surrogate pair missing trail surrogate.");let s=t.charCodeAt(r)-56320;i=65536+(o<<10)+s}i<128?e[n++]=i:i<2048?(e[n++]=i>>6|192,e[n++]=i&63|128):i<65536?(e[n++]=i>>12|224,e[n++]=i>>6&63|128,e[n++]=i&63|128):(e[n++]=i>>18|240,e[n++]=i>>12&63|128,e[n++]=i>>6&63|128,e[n++]=i&63|128)}return e},mp=function(t){let e=0;for(let n=0;n<t.length;n++){let r=t.charCodeAt(n);r<128?e++:r<2048?e+=2:r>=55296&&r<=56319?(e+=4,n++):e+=3}return e};var OMe=14400*1e3;function Me(t){return t&&t._delegate?t._delegate:t}var Xt=class{constructor(e,n,r){this.name=e,this.instanceFactory=n,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 Uc="[DEFAULT]";var VT=class{constructor(e,n){this.name=e,this.container=n,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(e){let n=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(n)){let r=new cn;if(this.instancesDeferred.set(n,r),this.isInitialized(n)||this.shouldAutoInitialize())try{let i=this.getOrInitializeService({instanceIdentifier:n});i&&r.resolve(i)}catch{}}return this.instancesDeferred.get(n).promise}getImmediate(e){var n;let r=this.normalizeInstanceIdentifier(e?.identifier),i=(n=e?.optional)!==null&&n!==void 0?n:!1;if(this.isInitialized(r)||this.shouldAutoInitialize())try{return this.getOrInitializeService({instanceIdentifier:r})}catch(o){if(i)return null;throw o}else{if(i)return null;throw Error(`Service ${this.name} is not available`)}}getComponent(){return this.component}setComponent(e){if(e.name!==this.name)throw Error(`Mismatching Component ${e.name} for Provider ${this.name}.`);if(this.component)throw Error(`Component for ${this.name} has already been provided`);if(this.component=e,!!this.shouldAutoInitialize()){if(ZQ(e))try{this.getOrInitializeService({instanceIdentifier:Uc})}catch{}for(let[n,r]of this.instancesDeferred.entries()){let i=this.normalizeInstanceIdentifier(n);try{let o=this.getOrInitializeService({instanceIdentifier:i});r.resolve(o)}catch{}}}}clearInstance(e=Uc){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}delete(){return y(this,null,function*(){let e=Array.from(this.instances.values());yield Promise.all([...e.filter(n=>"INTERNAL"in n).map(n=>n.INTERNAL.delete()),...e.filter(n=>"_delete"in n).map(n=>n._delete())])})}isComponentSet(){return this.component!=null}isInitialized(e=Uc){return this.instances.has(e)}getOptions(e=Uc){return this.instancesOptions.get(e)||{}}initialize(e={}){let{options:n={}}=e,r=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(r))throw Error(`${this.name}(${r}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);let i=this.getOrInitializeService({instanceIdentifier:r,options:n});for(let[o,s]of this.instancesDeferred.entries()){let a=this.normalizeInstanceIdentifier(o);r===a&&s.resolve(i)}return i}onInit(e,n){var r;let i=this.normalizeInstanceIdentifier(n),o=(r=this.onInitCallbacks.get(i))!==null&&r!==void 0?r:new Set;o.add(e),this.onInitCallbacks.set(i,o);let s=this.instances.get(i);return s&&e(s,i),()=>{o.delete(e)}}invokeOnInitCallbacks(e,n){let r=this.onInitCallbacks.get(n);if(r)for(let i of r)try{i(e,n)}catch{}}getOrInitializeService({instanceIdentifier:e,options:n={}}){let r=this.instances.get(e);if(!r&&this.component&&(r=this.component.instanceFactory(this.container,{instanceIdentifier:JQ(e),options:n}),this.instances.set(e,r),this.instancesOptions.set(e,n),this.invokeOnInitCallbacks(r,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,r)}catch{}return r||null}normalizeInstanceIdentifier(e=Uc){return this.component?this.component.multipleInstances?e:Uc:e}shouldAutoInitialize(){return!!this.component&&this.component.instantiationMode!=="EXPLICIT"}};function JQ(t){return t===Uc?void 0:t}function ZQ(t){return t.instantiationMode==="EAGER"}var Ep=class{constructor(e){this.name=e,this.providers=new Map}addComponent(e){let n=this.getProvider(e.name);if(n.isComponentSet())throw new Error(`Component ${e.name} has already been registered with ${this.name}`);n.setComponent(e)}addOrOverwriteComponent(e){this.getProvider(e.name).isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){if(this.providers.has(e))return this.providers.get(e);let n=new VT(e,this);return this.providers.set(e,n),n}getProviders(){return Array.from(this.providers.values())}};var gB=[],Re=(function(t){return t[t.DEBUG=0]="DEBUG",t[t.VERBOSE=1]="VERBOSE",t[t.INFO=2]="INFO",t[t.WARN=3]="WARN",t[t.ERROR=4]="ERROR",t[t.SILENT=5]="SILENT",t})(Re||{}),eJ={debug:Re.DEBUG,verbose:Re.VERBOSE,info:Re.INFO,warn:Re.WARN,error:Re.ERROR,silent:Re.SILENT},tJ=Re.INFO,nJ={[Re.DEBUG]:"log",[Re.VERBOSE]:"log",[Re.INFO]:"info",[Re.WARN]:"warn",[Re.ERROR]:"error"},rJ=(t,e,...n)=>{if(e<t.logLevel)return;let r=new Date().toISOString(),i=nJ[e];if(i)console[i](`[${r}] ${t.name}:`,...n);else throw new Error(`Attempted to log a message with an invalid logType (value: ${e})`)},Br=class{constructor(e){this.name=e,this._logLevel=tJ,this._logHandler=rJ,this._userLogHandler=null,gB.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in Re))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel=typeof e=="string"?eJ[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if(typeof e!="function")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,Re.DEBUG,...e),this._logHandler(this,Re.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,Re.VERBOSE,...e),this._logHandler(this,Re.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,Re.INFO,...e),this._logHandler(this,Re.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,Re.WARN,...e),this._logHandler(this,Re.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,Re.ERROR,...e),this._logHandler(this,Re.ERROR,...e)}};function mB(t){gB.forEach(e=>{e.setLogLevel(t)})}var iJ=(t,e)=>e.some(n=>t instanceof n),EB,_B;function oJ(){return EB||(EB=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function sJ(){return _B||(_B=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}var TB=new WeakMap,MR=new WeakMap,yB=new WeakMap,OR=new WeakMap,PR=new WeakMap;function aJ(t){let e=new Promise((n,r)=>{let i=()=>{t.removeEventListener("success",o),t.removeEventListener("error",s)},o=()=>{n(Yi(t.result)),i()},s=()=>{r(t.error),i()};t.addEventListener("success",o),t.addEventListener("error",s)});return e.then(n=>{n instanceof IDBCursor&&TB.set(n,t)}).catch(()=>{}),PR.set(e,t),e}function cJ(t){if(MR.has(t))return;let e=new Promise((n,r)=>{let i=()=>{t.removeEventListener("complete",o),t.removeEventListener("error",s),t.removeEventListener("abort",s)},o=()=>{n(),i()},s=()=>{r(t.error||new DOMException("AbortError","AbortError")),i()};t.addEventListener("complete",o),t.addEventListener("error",s),t.addEventListener("abort",s)});MR.set(t,e)}var LR={get(t,e,n){if(t instanceof IDBTransaction){if(e==="done")return MR.get(t);if(e==="objectStoreNames")return t.objectStoreNames||yB.get(t);if(e==="store")return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return Yi(t[e])},set(t,e,n){return t[e]=n,!0},has(t,e){return t instanceof IDBTransaction&&(e==="done"||e==="store")?!0:e in t}};function IB(t){LR=t(LR)}function lJ(t){return t===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(e,...n){let r=t.call(BT(this),e,...n);return yB.set(r,e.sort?e.sort():[e]),Yi(r)}:sJ().includes(t)?function(...e){return t.apply(BT(this),e),Yi(TB.get(this))}:function(...e){return Yi(t.apply(BT(this),e))}}function uJ(t){return typeof t=="function"?lJ(t):(t instanceof IDBTransaction&&cJ(t),iJ(t,oJ())?new Proxy(t,LR):t)}function Yi(t){if(t instanceof IDBRequest)return aJ(t);if(OR.has(t))return OR.get(t);let e=uJ(t);return e!==t&&(OR.set(t,e),PR.set(e,t)),e}var BT=t=>PR.get(t);function SB(t,e,{blocked:n,upgrade:r,blocking:i,terminated:o}={}){let s=indexedDB.open(t,e),a=Yi(s);return r&&s.addEventListener("upgradeneeded",c=>{r(Yi(s.result),c.oldVersion,c.newVersion,Yi(s.transaction),c)}),n&&s.addEventListener("blocked",c=>n(c.oldVersion,c.newVersion,c)),a.then(c=>{o&&c.addEventListener("close",()=>o()),i&&c.addEventListener("versionchange",l=>i(l.oldVersion,l.newVersion,l))}).catch(()=>{}),a}var dJ=["get","getKey","getAll","getAllKeys","count"],hJ=["put","add","delete","clear"],xR=new Map;function vB(t,e){if(!(t instanceof IDBDatabase&&!(e in t)&&typeof e=="string"))return;if(xR.get(e))return xR.get(e);let n=e.replace(/FromIndex$/,""),r=e!==n,i=hJ.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!(i||dJ.includes(n)))return;let o=function(s,...a){return y(this,null,function*(){let c=this.transaction(s,i?"readwrite":"readonly"),l=c.store;return r&&(l=l.index(a.shift())),(yield Promise.all([l[n](...a),i&&c.done]))[0]})};return xR.set(e,o),o}IB(t=>Ee(B({},t),{get:(e,n,r)=>vB(e,n)||t.get(e,n,r),has:(e,n)=>!!vB(e,n)||t.has(e,n)}));var FR=class{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map(n=>{if(fJ(n)){let r=n.getImmediate();return`${r.library}/${r.version}`}else return null}).filter(n=>n).join(" ")}};function fJ(t){let e=t.getComponent();return e?.type==="VERSION"}var UR="@firebase/app",AB="0.13.2";var Bo=new Br("@firebase/app"),pJ="@firebase/app-compat",gJ="@firebase/analytics-compat",mJ="@firebase/analytics",EJ="@firebase/app-check-compat",_J="@firebase/app-check",TJ="@firebase/auth",yJ="@firebase/auth-compat",IJ="@firebase/database",vJ="@firebase/data-connect",SJ="@firebase/database-compat",AJ="@firebase/functions",CJ="@firebase/functions-compat",DJ="@firebase/installations",RJ="@firebase/installations-compat",NJ="@firebase/messaging",wJ="@firebase/messaging-compat",bJ="@firebase/performance",OJ="@firebase/performance-compat",MJ="@firebase/remote-config",LJ="@firebase/remote-config-compat",PJ="@firebase/storage",xJ="@firebase/storage-compat",kJ="@firebase/firestore",FJ="@firebase/ai",UJ="@firebase/firestore-compat",VJ="firebase",BJ="11.10.0";var VR="[DEFAULT]",GJ={[UR]:"fire-core",[pJ]:"fire-core-compat",[mJ]:"fire-analytics",[gJ]:"fire-analytics-compat",[_J]:"fire-app-check",[EJ]:"fire-app-check-compat",[TJ]:"fire-auth",[yJ]:"fire-auth-compat",[IJ]:"fire-rtdb",[vJ]:"fire-data-connect",[SJ]:"fire-rtdb-compat",[AJ]:"fire-fn",[CJ]:"fire-fn-compat",[DJ]:"fire-iid",[RJ]:"fire-iid-compat",[NJ]:"fire-fcm",[wJ]:"fire-fcm-compat",[bJ]:"fire-perf",[OJ]:"fire-perf-compat",[MJ]:"fire-rc",[LJ]:"fire-rc-compat",[PJ]:"fire-gcs",[xJ]:"fire-gcs-compat",[kJ]:"fire-fst",[UJ]:"fire-fst-compat",[FJ]:"fire-vertex","fire-js":"fire-js",[VJ]:"fire-js-all"};var _p=new Map,jJ=new Map,BR=new Map;function CB(t,e){try{t.container.addComponent(e)}catch(n){Bo.debug(`Component ${e.name} failed to register with FirebaseApp ${t.name}`,n)}}function $n(t){let e=t.name;if(BR.has(e))return Bo.debug(`There were multiple attempts to register component ${e}.`),!1;BR.set(e,t);for(let n of _p.values())CB(n,t);for(let n of jJ.values())CB(n,t);return!0}function Xi(t,e){let n=t.container.getProvider("heartbeat").getImmediate({optional:!0});return n&&n.triggerHeartbeat(),t.container.getProvider(e)}function Zn(t){return t==null?!1:t.settings!==void 0}var HJ={"no-app":"No Firebase App '{$appName}' has been created - call initializeApp() first","bad-app-name":"Illegal App name: '{$appName}'","duplicate-app":"Firebase App named '{$appName}' already exists with different options or config","app-deleted":"Firebase App named '{$appName}' already deleted","server-app-deleted":"Firebase Server App has been deleted","no-options":"Need to provide options, when not being deployed to hosting via source.","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance.","invalid-log-argument":"First argument to `onLog` must be null or a function.","idb-open":"Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.","idb-get":"Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.","idb-set":"Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.","idb-delete":"Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.","finalization-registry-not-supported":"FirebaseServerApp deleteOnDeref field defined but the JS runtime does not support FinalizationRegistry.","invalid-server-app-environment":"FirebaseServerApp is not for use in browser environments."},Vs=new ii("app","Firebase",HJ);var GR=class{constructor(e,n,r){this._isDeleted=!1,this._options=Object.assign({},e),this._config=Object.assign({},n),this._name=n.name,this._automaticDataCollectionEnabled=n.automaticDataCollectionEnabled,this._container=r,this.container.addComponent(new Xt("app",()=>this,"PUBLIC"))}get automaticDataCollectionEnabled(){return this.checkDestroyed(),this._automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this.checkDestroyed(),this._automaticDataCollectionEnabled=e}get name(){return this.checkDestroyed(),this._name}get options(){return this.checkDestroyed(),this._options}get config(){return this.checkDestroyed(),this._config}get container(){return this._container}get isDeleted(){return this._isDeleted}set isDeleted(e){this._isDeleted=e}checkDestroyed(){if(this.isDeleted)throw Vs.create("app-deleted",{appName:this._name})}};var Bs=BJ;function $R(t,e={}){let n=t;typeof e!="object"&&(e={name:e});let r=Object.assign({name:VR,automaticDataCollectionEnabled:!0},e),i=r.name;if(typeof i!="string"||!i)throw Vs.create("bad-app-name",{appName:String(i)});if(n||(n=NR()),!n)throw Vs.create("no-options");let o=_p.get(i);if(o){if(oi(n,o.options)&&oi(r,o.config))return o;throw Vs.create("duplicate-app",{appName:i})}let s=new Ep(i);for(let c of BR.values())s.addComponent(c);let a=new GR(n,r,s);return _p.set(i,a),a}function er(t=VR){let e=_p.get(t);if(!e&&t===VR&&NR())return $R();if(!e)throw Vs.create("no-app",{appName:t});return e}function GT(){return Array.from(_p.values())}function Ge(t,e,n){var r;let i=(r=GJ[t])!==null&&r!==void 0?r:t;n&&(i+=`-${n}`);let o=i.match(/\s|\//),s=e.match(/\s|\//);if(o||s){let a=[`Unable to register library "${i}" with version "${e}":`];o&&a.push(`library name "${i}" contains illegal characters (whitespace or "/")`),o&&s&&a.push("and"),s&&a.push(`version name "${e}" contains illegal characters (whitespace or "/")`),Bo.warn(a.join(" "));return}$n(new Xt(`${i}-version`,()=>({library:i,version:e}),"VERSION"))}function $J(t){mB(t)}var WJ="firebase-heartbeat-database",zJ=1,Tp="firebase-heartbeat-store",kR=null;function wB(){return kR||(kR=SB(WJ,zJ,{upgrade:(t,e)=>{switch(e){case 0:try{t.createObjectStore(Tp)}catch(n){console.warn(n)}}}}).catch(t=>{throw Vs.create("idb-open",{originalErrorMessage:t.message})})),kR}function qJ(t){return y(this,null,function*(){try{let n=(yield wB()).transaction(Tp),r=yield n.objectStore(Tp).get(bB(t));return yield n.done,r}catch(e){if(e instanceof Jn)Bo.warn(e.message);else{let n=Vs.create("idb-get",{originalErrorMessage:e?.message});Bo.warn(n.message)}}})}function DB(t,e){return y(this,null,function*(){try{let r=(yield wB()).transaction(Tp,"readwrite");yield r.objectStore(Tp).put(e,bB(t)),yield r.done}catch(n){if(n instanceof Jn)Bo.warn(n.message);else{let r=Vs.create("idb-set",{originalErrorMessage:n?.message});Bo.warn(r.message)}}})}function bB(t){return`${t.name}!${t.options.appId}`}var KJ=1024,YJ=30,jR=class{constructor(e){this.container=e,this._heartbeatsCache=null;let n=this.container.getProvider("app").getImmediate();this._storage=new HR(n),this._heartbeatsCachePromise=this._storage.read().then(r=>(this._heartbeatsCache=r,r))}triggerHeartbeat(){return y(this,null,function*(){var e,n;try{let i=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString(),o=RB();if(((e=this._heartbeatsCache)===null||e===void 0?void 0:e.heartbeats)==null&&(this._heartbeatsCache=yield this._heartbeatsCachePromise,((n=this._heartbeatsCache)===null||n===void 0?void 0:n.heartbeats)==null)||this._heartbeatsCache.lastSentHeartbeatDate===o||this._heartbeatsCache.heartbeats.some(s=>s.date===o))return;if(this._heartbeatsCache.heartbeats.push({date:o,agent:i}),this._heartbeatsCache.heartbeats.length>YJ){let s=QJ(this._heartbeatsCache.heartbeats);this._heartbeatsCache.heartbeats.splice(s,1)}return this._storage.overwrite(this._heartbeatsCache)}catch(r){Bo.warn(r)}})}getHeartbeatsHeader(){return y(this,null,function*(){var e;try{if(this._heartbeatsCache===null&&(yield this._heartbeatsCachePromise),((e=this._heartbeatsCache)===null||e===void 0?void 0:e.heartbeats)==null||this._heartbeatsCache.heartbeats.length===0)return"";let n=RB(),{heartbeatsToSend:r,unsentEntries:i}=XJ(this._heartbeatsCache.heartbeats),o=dp(JSON.stringify({version:2,heartbeats:r}));return this._heartbeatsCache.lastSentHeartbeatDate=n,i.length>0?(this._heartbeatsCache.heartbeats=i,yield this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),o}catch(n){return Bo.warn(n),""}})}};function RB(){return new Date().toISOString().substring(0,10)}function XJ(t,e=KJ){let n=[],r=t.slice();for(let i of t){let o=n.find(s=>s.agent===i.agent);if(o){if(o.dates.push(i.date),NB(n)>e){o.dates.pop();break}}else if(n.push({agent:i.agent,dates:[i.date]}),NB(n)>e){n.pop();break}r=r.slice(1)}return{heartbeatsToSend:n,unsentEntries:r}}var HR=class{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}runIndexedDBEnvironmentCheck(){return y(this,null,function*(){return ud()?lB().then(()=>!0).catch(()=>!1):!1})}read(){return y(this,null,function*(){if(yield this._canUseIndexedDBPromise){let n=yield qJ(this.app);return n?.heartbeats?n:{heartbeats:[]}}else return{heartbeats:[]}})}overwrite(e){return y(this,null,function*(){var n;if(yield this._canUseIndexedDBPromise){let i=yield this.read();return DB(this.app,{lastSentHeartbeatDate:(n=e.lastSentHeartbeatDate)!==null&&n!==void 0?n:i.lastSentHeartbeatDate,heartbeats:e.heartbeats})}else return})}add(e){return y(this,null,function*(){var n;if(yield this._canUseIndexedDBPromise){let i=yield this.read();return DB(this.app,{lastSentHeartbeatDate:(n=e.lastSentHeartbeatDate)!==null&&n!==void 0?n:i.lastSentHeartbeatDate,heartbeats:[...i.heartbeats,...e.heartbeats]})}else return})}};function NB(t){return dp(JSON.stringify({version:2,heartbeats:t})).length}function QJ(t){if(t.length===0)return-1;let e=0,n=t[0].date;for(let r=1;r<t.length;r++)t[r].date<n&&(n=t[r].date,e=r);return e}function JJ(t){$n(new Xt("platform-logger",e=>new FR(e),"PRIVATE")),$n(new Xt("heartbeat",e=>new jR(e),"PRIVATE")),Ge(UR,AB,t),Ge(UR,AB,"esm2017"),Ge("fire-js","")}JJ("");var ZJ="firebase",eZ="11.10.0";Ge(ZJ,eZ,"app");function cLe(t){t||(t=Y(Hn));let e=new fe(n=>{if(t.destroyed){n.next();return}return t.onDestroy(n.next.bind(n))});return n=>n.pipe(ps(e))}function lLe(t,e){let n=e?.injector??Y(ze),r=new Xa(1),i=_D(()=>{let o;try{o=t()}catch(s){Uf(()=>r.error(s));return}Uf(()=>r.next(o))},{injector:n,manualCleanup:!0});return n.get(Hn).onDestroy(()=>{i.destroy(),r.complete()}),r.asObservable()}function uLe(t,e){let r=!e?.manualCleanup?e?.injector?.get(Hn)??Y(Hn):null,i=tZ(e?.equal),o;e?.requireSync?o=Ec({kind:0},{equal:i}):o=Ec({kind:1,value:e?.initialValue},{equal:i});let s,a=t.subscribe({next:c=>o.set({kind:1,value:c}),error:c=>{o.set({kind:2,error:c}),s?.()},complete:()=>{s?.()}});if(e?.requireSync&&o().kind===0)throw new J(601,!1);return s=r?.onDestroy(a.unsubscribe.bind(a)),Vf(()=>{let c=o();switch(c.kind){case 1:return c.value;case 2:throw c.error;case 0:throw new J(601,!1)}},{equal:e?.equal})}function tZ(t=Object.is){return(e,n)=>e.kind===1&&n.kind===1&&t(e.value,n.value)}function OB(t){t===void 0&&(t=Y(ze));let e=t.get(Fi);return n=>new fe(r=>{let i=e.add(),o=!1;function s(){o||(i(),o=!0)}let a=n.subscribe({next:c=>{r.next(c),s()},complete:()=>{r.complete(),s()},error:c=>{r.error(c),s()}});return a.add(()=>{r.unsubscribe(),s()}),a})}var si=new nc("ANGULARFIRE2_VERSION");function Gs(t,e,n){if(e){if(e.length===1)return e[0];let o=e.filter(s=>s.app===n);if(o.length===1)return o[0]}return n.container.getProvider(t).getImmediate({optional:!0})}var Go=(t,e)=>{let n=e?[e]:GT(),r=[];return n.forEach(i=>{i.container.getProvider(t).instances.forEach(s=>{r.includes(s)||r.push(s)})}),r},dd=(function(t){return t[t.SILENT=0]="SILENT",t[t.WARN=1]="WARN",t[t.VERBOSE=2]="VERBOSE",t})(dd||{}),MB=wD()&&typeof Zone<"u"?dd.WARN:dd.SILENT;var jT=class{zone;delegate;constructor(e,n=SS){this.zone=e,this.delegate=n}now(){return this.delegate.now()}schedule(e,n,r){let i=this.zone,o=function(s){i?i.runGuarded(()=>{e.apply(this,[s])}):e.apply(this,[s])};return this.delegate.schedule(o,n,r)}},ai=(()=>{class t{outsideAngular;insideAngular;constructor(){let n=Y(Ae);this.outsideAngular=n.runOutsideAngular(()=>new jT(typeof Zone>"u"?void 0:Zone.current)),this.insideAngular=n.run(()=>new jT(typeof Zone>"u"?void 0:Zone.current,An))}static \u0275fac=function(r){return new(r||t)};static \u0275prov=Q({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),LB=!1;function nZ(t,e){!LB&&(MB>dd.SILENT||wD())&&(LB=!0,console.warn("Calling Firebase APIs outside of an Injection context may destabilize your application leading to subtle change-detection and hydration bugs. Find more at https://github.com/angular/angularfire/blob/main/docs/zones.md")),MB>=e&&console.warn(`Firebase API called outside injection context: ${t.name}`)}function rZ(t){let e=Y(Ae,{optional:!0});return e?e.runOutsideAngular(()=>t()):t()}function Vc(t){let e=Y(Ae,{optional:!0});return e?e.run(()=>t()):t()}var iZ=(t,e,n)=>(...r)=>(e&&setTimeout(e,0),bi(n,()=>Vc(()=>t.apply(void 0,r)))),ue=(t,e,n)=>(n||=e?dd.WARN:dd.VERBOSE,function(){let r,i=arguments,o,s,a;try{o=Y(ai),s=Y(Fi),a=Y(Nn)}catch{return nZ(t,n),t.apply(this,i)}for(let l=0;l<arguments.length;l++)typeof i[l]=="function"&&(e&&(r||=Vc(()=>s.add())),i[l]=iZ(i[l],r,a));let c=rZ(()=>t.apply(this,i));return e?c instanceof fe?c.pipe(hs(o.outsideAngular),ds(o.insideAngular),OB(a)):c instanceof Promise?Vc(()=>{let l=s.add();return new Promise((d,h)=>{c.then(f=>bi(a,()=>Vc(()=>d(f))),f=>bi(a,()=>Vc(()=>h(f)))).finally(l)})}):typeof c=="function"&&r?function(){return setTimeout(r,0),c.apply(this,arguments)}:Vc(()=>c):c instanceof fe?c.pipe(hs(o.outsideAngular),ds(o.insideAngular)):Vc(()=>c)});var ci=class{constructor(e){return e}},jo=class{constructor(){return GT()}};function oZ(t){return t&&t.length===1?t[0]:new ci(er())}var WR=new z("angularfire2._apps"),sZ={provide:ci,useFactory:oZ,deps:[[new zt,WR]]},aZ={provide:jo,deps:[[new zt,WR]]};function cZ(t){return(e,n)=>{let r=n.get(Oo);Ge("angularfire",si.full,"core"),Ge("angularfire",si.full,"app"),Ge("angular",xS.full,r.toString());let i=e.runOutsideAngular(()=>t(n));return new ci(i)}}function NLe(t,...e){return Xn([sZ,aZ,{provide:WR,useFactory:cZ(t),multi:!0,deps:[Ae,ze,ai,...e]}])}var wLe=ue(er,!0);var bLe=ue($R,!0);var lZ=new Map,uZ={activated:!1,tokenObservers:[]},dZ={initialized:!1,enabled:!1};function li(t){return lZ.get(t)||Object.assign({},uZ)}function FB(){return dZ}var hZ="https://content-firebaseappcheck.googleapis.com/v1";var fZ="exchangeDebugToken",PB={OFFSET_DURATION:300*1e3,RETRIAL_MIN_WAIT:30*1e3,RETRIAL_MAX_WAIT:960*1e3},VLe=1440*60*1e3;var KR=class{constructor(e,n,r,i,o){if(this.operation=e,this.retryPolicy=n,this.getWaitDuration=r,this.lowerBound=i,this.upperBound=o,this.pending=null,this.nextErrorWaitInterval=i,i>o)throw new Error("Proactive refresh lower bound greater than upper bound!")}start(){this.nextErrorWaitInterval=this.lowerBound,this.process(!0).catch(()=>{})}stop(){this.pending&&(this.pending.reject("cancelled"),this.pending=null)}isRunning(){return!!this.pending}process(e){return y(this,null,function*(){this.stop();try{this.pending=new cn,this.pending.promise.catch(n=>{}),yield pZ(this.getNextRun(e)),this.pending.resolve(),yield this.pending.promise,this.pending=new cn,this.pending.promise.catch(n=>{}),yield this.operation(),this.pending.resolve(),yield this.pending.promise,this.process(!0).catch(()=>{})}catch(n){this.retryPolicy(n)?this.process(!1).catch(()=>{}):this.stop()}})}getNextRun(e){if(e)return this.nextErrorWaitInterval=this.lowerBound,this.getWaitDuration();{let n=this.nextErrorWaitInterval;return this.nextErrorWaitInterval*=2,this.nextErrorWaitInterval>this.upperBound&&(this.nextErrorWaitInterval=this.upperBound),n}}};function pZ(t){return new Promise(e=>{setTimeout(e,t)})}var gZ={"already-initialized":"You have already called initializeAppCheck() for FirebaseApp {$appName} with different options. To avoid this error, call initializeAppCheck() with the same options as when it was originally called. This will return the already initialized instance.","use-before-activation":"App Check is being used before initializeAppCheck() is called for FirebaseApp {$appName}. Call initializeAppCheck() before instantiating other Firebase services.","fetch-network-error":"Fetch failed to connect to a network. Check Internet connection. Original error: {$originalErrorMessage}.","fetch-parse-error":"Fetch client could not parse response. Original error: {$originalErrorMessage}.","fetch-status-error":"Fetch server returned an HTTP error status. HTTP status: {$httpStatus}.","storage-open":"Error thrown when opening storage. Original error: {$originalErrorMessage}.","storage-get":"Error thrown when reading from storage. Original error: {$originalErrorMessage}.","storage-set":"Error thrown when writing to storage. Original error: {$originalErrorMessage}.","recaptcha-error":"ReCAPTCHA error.","initial-throttle":"{$httpStatus} error. Attempts allowed again after {$time}",throttled:"Requests throttled due to previous {$httpStatus} error. Attempts allowed again after {$time}"},js=new ii("appCheck","AppCheck",gZ);function UB(t){if(!li(t).activated)throw js.create("use-before-activation",{appName:t.name})}function VB(r,i){return y(this,arguments,function*({url:t,body:e},n){let o={"Content-Type":"application/json"},s=n.getImmediate({optional:!0});if(s){let g=yield s.getHeartbeatsHeader();g&&(o["X-Firebase-Client"]=g)}let a={method:"POST",body:JSON.stringify(e),headers:o},c;try{c=yield fetch(t,a)}catch(g){throw js.create("fetch-network-error",{originalErrorMessage:g?.message})}if(c.status!==200)throw js.create("fetch-status-error",{httpStatus:c.status});let l;try{l=yield c.json()}catch(g){throw js.create("fetch-parse-error",{originalErrorMessage:g?.message})}let d=l.ttl.match(/^([\d.]+)(s)$/);if(!d||!d[2]||isNaN(Number(d[1])))throw js.create("fetch-parse-error",{originalErrorMessage:`ttl field (timeToLive) is not in standard Protobuf Duration format: ${l.ttl}`});let h=Number(d[1])*1e3,f=Date.now();return{token:l.token,expireTimeMillis:f+h,issuedAtTimeMillis:f}})}function BB(t,e){let{projectId:n,appId:r,apiKey:i}=t.options;return{url:`${hZ}/projects/${n}/apps/${r}:${fZ}?key=${i}`,body:{debug_token:e}}}var mZ="firebase-app-check-database",EZ=1,YR="firebase-app-check-store";var HT=null;function _Z(){return HT||(HT=new Promise((t,e)=>{try{let n=indexedDB.open(mZ,EZ);n.onsuccess=r=>{t(r.target.result)},n.onerror=r=>{var i;e(js.create("storage-open",{originalErrorMessage:(i=r.target.error)===null||i===void 0?void 0:i.message}))},n.onupgradeneeded=r=>{let i=r.target.result;r.oldVersion===0&&i.createObjectStore(YR,{keyPath:"compositeKey"})}}catch(n){e(js.create("storage-open",{originalErrorMessage:n?.message}))}}),HT)}function TZ(t,e){return yZ(IZ(t),e)}function yZ(t,e){return y(this,null,function*(){let r=(yield _Z()).transaction(YR,"readwrite"),o=r.objectStore(YR).put({compositeKey:t,value:e});return new Promise((s,a)=>{o.onsuccess=c=>{s()},r.onerror=c=>{var l;a(js.create("storage-set",{originalErrorMessage:(l=c.target.error)===null||l===void 0?void 0:l.message}))}})})}function IZ(t){return`${t.options.appId}-${t.name}`}var yp=new Br("@firebase/app-check");function zR(t,e){return ud()?TZ(t,e).catch(n=>{yp.warn(`Failed to write token to IndexedDB. Error: ${n}`)}):Promise.resolve()}function GB(){return FB().enabled}function jB(){return y(this,null,function*(){let t=FB();if(t.enabled&&t.token)return t.token.promise;throw Error(`
139
139
  Can't get debug token in production mode.
140
- `)})}var vZ={error:"UNKNOWN_ERROR"};function SZ(t){return cd.encodeString(JSON.stringify(t),!1)}function XR(t,e=!1,n=!1){return y(this,null,function*(){let r=t.app;UB(r);let i=li(r),o=i.token,s;if(o&&!Ip(o)&&(i.token=void 0,o=void 0),!o){let l=yield i.cachedTokenPromise;l&&(Ip(l)?o=l:yield zR(r,void 0))}if(!e&&o&&Ip(o))return{token:o.token};let a=!1;if(GB())try{i.exchangeTokenPromise||(i.exchangeTokenPromise=VB(BB(r,yield jB()),t.heartbeatServiceProvider).finally(()=>{i.exchangeTokenPromise=void 0}),a=!0);let l=yield i.exchangeTokenPromise;return yield zR(r,l),i.token=l,{token:l.token}}catch(l){return l.code==="appCheck/throttled"||l.code==="appCheck/initial-throttle"?yp.warn(l.message):n&&yp.error(l),qR(l)}try{i.exchangeTokenPromise||(i.exchangeTokenPromise=i.provider.getToken().finally(()=>{i.exchangeTokenPromise=void 0}),a=!0),o=yield li(r).exchangeTokenPromise}catch(l){l.code==="appCheck/throttled"||l.code==="appCheck/initial-throttle"?yp.warn(l.message):n&&yp.error(l),s=l}let c;return o?s?Ip(o)?c={token:o.token,internalError:s}:c=qR(s):(c={token:o.token},i.token=o,yield zR(r,o)):c=qR(s),a&&RZ(r,c),c})}function AZ(t){return y(this,null,function*(){let e=t.app;UB(e);let{provider:n}=li(e);if(GB()){let r=yield jB(),{token:i}=yield VB(BB(e,r),t.heartbeatServiceProvider);return{token:i}}else{let{token:r}=yield n.getToken();return{token:r}}})}function CZ(t,e,n,r){let{app:i}=t,o=li(i),s={next:n,error:r,type:e};if(o.tokenObservers=[...o.tokenObservers,s],o.token&&Ip(o.token)){let a=o.token;Promise.resolve().then(()=>{n({token:a.token}),xB(t)}).catch(()=>{})}o.cachedTokenPromise.then(()=>xB(t))}function HB(t,e){let n=li(t),r=n.tokenObservers.filter(i=>i.next!==e);r.length===0&&n.tokenRefresher&&n.tokenRefresher.isRunning()&&n.tokenRefresher.stop(),n.tokenObservers=r}function xB(t){let{app:e}=t,n=li(e),r=n.tokenRefresher;r||(r=DZ(t),n.tokenRefresher=r),!r.isRunning()&&n.isTokenAutoRefreshEnabled&&r.start()}function DZ(t){let{app:e}=t;return new KR(()=>y(null,null,function*(){let n=li(e),r;if(n.token?r=yield XR(t,!0):r=yield XR(t),r.error)throw r.error;if(r.internalError)throw r.internalError}),()=>!0,()=>{let n=li(e);if(n.token){let r=n.token.issuedAtTimeMillis+(n.token.expireTimeMillis-n.token.issuedAtTimeMillis)*.5+3e5,i=n.token.expireTimeMillis-300*1e3;return r=Math.min(r,i),Math.max(0,r-Date.now())}else return 0},PB.RETRIAL_MIN_WAIT,PB.RETRIAL_MAX_WAIT)}function RZ(t,e){let n=li(t).tokenObservers;for(let r of n)try{r.type==="EXTERNAL"&&e.error!=null?r.error(e.error):r.next(e)}catch{}}function Ip(t){return t.expireTimeMillis-Date.now()>0}function qR(t){return{token:SZ(vZ),error:t}}var QR=class{constructor(e,n){this.app=e,this.heartbeatServiceProvider=n}_delete(){let{tokenObservers:e}=li(this.app);for(let n of e)HB(this.app,n.next);return Promise.resolve()}};function NZ(t,e){return new QR(t,e)}function wZ(t){return{getToken:e=>XR(t,e),getLimitedUseToken:()=>AZ(t),addTokenListener:e=>CZ(t,"INTERNAL",e),removeTokenListener:e=>HB(t.app,e)}}var bZ="@firebase/app-check",OZ="0.10.1";var MZ="app-check",kB="app-check-internal";function LZ(){$n(new Xt(MZ,t=>{let e=t.getProvider("app").getImmediate(),n=t.getProvider("heartbeat");return NZ(e,n)},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((t,e,n)=>{t.getProvider(kB).initialize()})),$n(new Xt(kB,t=>{let e=t.getProvider("app-check").getImmediate();return wZ(e)},"PUBLIC").setInstantiationMode("EXPLICIT")),Ge(bZ,OZ)}LZ();var PZ="app-check";var Hs=class{constructor(){return Go(PZ)}};var xZ=["localhost","0.0.0.0","127.0.0.1"],QLe=typeof window<"u"&&xZ.includes(window.location.hostname);function eG(){return{"dependent-sdk-initialized-before-auth":"Another Firebase SDK was initialized and is trying to use Auth before Auth is initialized. Please be sure to call `initializeAuth` or `getAuth` before starting any other Firebase SDK."}}var tG=eG,nG=new ii("auth","Firebase",eG());var zT=new Br("@firebase/auth");function kZ(t,...e){zT.logLevel<=Re.WARN&&zT.warn(`Auth (${Bs}): ${t}`,...e)}function WT(t,...e){zT.logLevel<=Re.ERROR&&zT.error(`Auth (${Bs}): ${t}`,...e)}function qT(t,...e){throw hN(t,...e)}function dN(t,...e){return hN(t,...e)}function rG(t,e,n){let r=Object.assign(Object.assign({},tG()),{[e]:n});return new ii("auth","Firebase",r).create(e,{appName:t.name})}function vp(t){return rG(t,"operation-not-supported-in-this-environment","Operations that alter the current user are not supported in conjunction with FirebaseServerApp")}function hN(t,...e){if(typeof t!="string"){let n=e[0],r=[...e.slice(1)];return r[0]&&(r[0].appName=t.name),t._errorFactory.create(n,...r)}return nG.create(t,...e)}function je(t,e,...n){if(!t)throw hN(e,...n)}function Sp(t){let e="INTERNAL ASSERTION FAILED: "+t;throw WT(e),new Error(e)}function KT(t,e){t||Sp(e)}function FZ(){return $B()==="http:"||$B()==="https:"}function $B(){var t;return typeof self<"u"&&((t=self.location)===null||t===void 0?void 0:t.protocol)||null}function UZ(){return typeof navigator<"u"&&navigator&&"onLine"in navigator&&typeof navigator.onLine=="boolean"&&(FZ()||aB()||"connection"in navigator)?navigator.onLine:!0}function VZ(){if(typeof navigator>"u")return null;let t=navigator;return t.languages&&t.languages[0]||t.language||null}var Gc=class{constructor(e,n){this.shortDelay=e,this.longDelay=n,KT(n>e,"Short delay should be less than long delay!"),this.isMobile=hp()||UT()}get(){return UZ()?this.isMobile?this.longDelay:this.shortDelay:Math.min(5e3,this.shortDelay)}};function BZ(t,e){KT(t.emulator,"Emulator should always be set here");let{url:n}=t.emulator;return e?`${n}${e.startsWith("/")?e.slice(1):e}`:n}var YT=class{static initialize(e,n,r){this.fetchImpl=e,n&&(this.headersImpl=n),r&&(this.responseImpl=r)}static fetch(){if(this.fetchImpl)return this.fetchImpl;if(typeof self<"u"&&"fetch"in self)return self.fetch;if(typeof globalThis<"u"&&globalThis.fetch)return globalThis.fetch;if(typeof fetch<"u")return fetch;Sp("Could not find fetch implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}static headers(){if(this.headersImpl)return this.headersImpl;if(typeof self<"u"&&"Headers"in self)return self.Headers;if(typeof globalThis<"u"&&globalThis.Headers)return globalThis.Headers;if(typeof Headers<"u")return Headers;Sp("Could not find Headers implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}static response(){if(this.responseImpl)return this.responseImpl;if(typeof self<"u"&&"Response"in self)return self.Response;if(typeof globalThis<"u"&&globalThis.Response)return globalThis.Response;if(typeof Response<"u")return Response;Sp("Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}};var GZ={CREDENTIAL_MISMATCH:"custom-token-mismatch",MISSING_CUSTOM_TOKEN:"internal-error",INVALID_IDENTIFIER:"invalid-email",MISSING_CONTINUE_URI:"internal-error",INVALID_PASSWORD:"wrong-password",MISSING_PASSWORD:"missing-password",INVALID_LOGIN_CREDENTIALS:"invalid-credential",EMAIL_EXISTS:"email-already-in-use",PASSWORD_LOGIN_DISABLED:"operation-not-allowed",INVALID_IDP_RESPONSE:"invalid-credential",INVALID_PENDING_TOKEN:"invalid-credential",FEDERATED_USER_ID_ALREADY_LINKED:"credential-already-in-use",MISSING_REQ_TYPE:"internal-error",EMAIL_NOT_FOUND:"user-not-found",RESET_PASSWORD_EXCEED_LIMIT:"too-many-requests",EXPIRED_OOB_CODE:"expired-action-code",INVALID_OOB_CODE:"invalid-action-code",MISSING_OOB_CODE:"internal-error",CREDENTIAL_TOO_OLD_LOGIN_AGAIN:"requires-recent-login",INVALID_ID_TOKEN:"invalid-user-token",TOKEN_EXPIRED:"user-token-expired",USER_NOT_FOUND:"user-token-expired",TOO_MANY_ATTEMPTS_TRY_LATER:"too-many-requests",PASSWORD_DOES_NOT_MEET_REQUIREMENTS:"password-does-not-meet-requirements",INVALID_CODE:"invalid-verification-code",INVALID_SESSION_INFO:"invalid-verification-id",INVALID_TEMPORARY_PROOF:"invalid-credential",MISSING_SESSION_INFO:"missing-verification-id",SESSION_EXPIRED:"code-expired",MISSING_ANDROID_PACKAGE_NAME:"missing-android-pkg-name",UNAUTHORIZED_DOMAIN:"unauthorized-continue-uri",INVALID_OAUTH_CLIENT_ID:"invalid-oauth-client-id",ADMIN_ONLY_OPERATION:"admin-restricted-operation",INVALID_MFA_PENDING_CREDENTIAL:"invalid-multi-factor-session",MFA_ENROLLMENT_NOT_FOUND:"multi-factor-info-not-found",MISSING_MFA_ENROLLMENT_ID:"missing-multi-factor-info",MISSING_MFA_PENDING_CREDENTIAL:"missing-multi-factor-session",SECOND_FACTOR_EXISTS:"second-factor-already-in-use",SECOND_FACTOR_LIMIT_EXCEEDED:"maximum-second-factor-count-exceeded",BLOCKING_FUNCTION_ERROR_RESPONSE:"internal-error",RECAPTCHA_NOT_ENABLED:"recaptcha-not-enabled",MISSING_RECAPTCHA_TOKEN:"missing-recaptcha-token",INVALID_RECAPTCHA_TOKEN:"invalid-recaptcha-token",INVALID_RECAPTCHA_ACTION:"invalid-recaptcha-action",MISSING_CLIENT_TYPE:"missing-client-type",MISSING_RECAPTCHA_VERSION:"missing-recaptcha-version",INVALID_RECAPTCHA_VERSION:"invalid-recaptcha-version",INVALID_REQ_TYPE:"invalid-req-type"};var jZ=["/v1/accounts:signInWithCustomToken","/v1/accounts:signInWithEmailLink","/v1/accounts:signInWithIdp","/v1/accounts:signInWithPassword","/v1/accounts:signInWithPhoneNumber","/v1/token"],HZ=new Gc(3e4,6e4);function fN(t,e){return t.tenantId&&!e.tenantId?Object.assign(Object.assign({},e),{tenantId:t.tenantId}):e}function Rp(o,s,a,c){return y(this,arguments,function*(t,e,n,r,i={}){return iG(t,i,()=>y(null,null,function*(){let l={},d={};r&&(e==="GET"?d=r:l={body:JSON.stringify(r)});let h=gp(Object.assign({key:t.config.apiKey},d)).slice(1),f=yield t._getAdditionalHeaders();f["Content-Type"]="application/json",t.languageCode&&(f["X-Firebase-Locale"]=t.languageCode);let g=Object.assign({method:e,headers:f},l);return sB()||(g.referrerPolicy="no-referrer"),t.emulatorConfig&&_r(t.emulatorConfig.host)&&(g.credentials="include"),YT.fetch()(yield oG(t,t.config.apiHost,n,h),g)}))})}function iG(t,e,n){return y(this,null,function*(){t._canInitEmulator=!1;let r=Object.assign(Object.assign({},GZ),e);try{let i=new eN(t),o=yield Promise.race([n(),i.promise]);i.clearNetworkTimeout();let s=yield o.json();if("needConfirmation"in s)throw $T(t,"account-exists-with-different-credential",s);if(o.ok&&!("errorMessage"in s))return s;{let a=o.ok?s.errorMessage:s.error.message,[c,l]=a.split(" : ");if(c==="FEDERATED_USER_ID_ALREADY_LINKED")throw $T(t,"credential-already-in-use",s);if(c==="EMAIL_EXISTS")throw $T(t,"email-already-in-use",s);if(c==="USER_DISABLED")throw $T(t,"user-disabled",s);let d=r[c]||c.toLowerCase().replace(/[_\s]+/g,"-");if(l)throw rG(t,d,l);qT(t,d)}}catch(i){if(i instanceof Jn)throw i;qT(t,"network-request-failed",{message:String(i)})}})}function $Z(o,s,a,c){return y(this,arguments,function*(t,e,n,r,i={}){let l=yield Rp(t,e,n,r,i);return"mfaPendingCredential"in l&&qT(t,"multi-factor-auth-required",{_serverResponse:l}),l})}function oG(t,e,n,r){return y(this,null,function*(){let i=`${e}${n}?${r}`,o=t,s=o.config.emulator?BZ(t.config,i):`${t.config.apiScheme}://${i}`;return jZ.includes(n)&&(yield o._persistenceManagerAvailable,o._getPersistenceType()==="COOKIE")?o._getPersistence()._getFinalTarget(s).toString():s})}var eN=class{clearNetworkTimeout(){clearTimeout(this.timer)}constructor(e){this.auth=e,this.timer=null,this.promise=new Promise((n,r)=>{this.timer=setTimeout(()=>r(dN(this.auth,"network-request-failed")),HZ.get())})}};function $T(t,e,n){let r={appName:t.name};n.email&&(r.email=n.email),n.phoneNumber&&(r.phoneNumber=n.phoneNumber);let i=dN(t,e,r);return i.customData._tokenResponse=n,i}function WZ(t,e){return y(this,null,function*(){return Rp(t,"POST","/v1/accounts:delete",e)})}function XT(t,e){return y(this,null,function*(){return Rp(t,"POST","/v1/accounts:lookup",e)})}function Ap(t){if(t)try{let e=new Date(Number(t));if(!isNaN(e.getTime()))return e.toUTCString()}catch{}}function ry(t,e=!1){return y(this,null,function*(){let n=Me(t),r=yield n.getIdToken(e),i=sG(r);je(i&&i.exp&&i.auth_time&&i.iat,n.auth,"internal-error");let o=typeof i.firebase=="object"?i.firebase:void 0,s=o?.sign_in_provider;return{claims:i,token:r,authTime:Ap(JR(i.auth_time)),issuedAtTime:Ap(JR(i.iat)),expirationTime:Ap(JR(i.exp)),signInProvider:s||null,signInSecondFactor:o?.sign_in_second_factor||null}})}function JR(t){return Number(t)*1e3}function sG(t){let[e,n,r]=t.split(".");if(e===void 0||n===void 0||r===void 0)return WT("JWT malformed, contained fewer than 3 sections"),null;try{let i=sd(n);return i?JSON.parse(i):(WT("Failed to decode base64 JWT payload"),null)}catch(i){return WT("Caught error parsing JWT payload as JSON",i?.toString()),null}}function WB(t){let e=sG(t);return je(e,"internal-error"),je(typeof e.exp<"u","internal-error"),je(typeof e.iat<"u","internal-error"),Number(e.exp)-Number(e.iat)}function tN(t,e,n=!1){return y(this,null,function*(){if(n)return e;try{return yield e}catch(r){throw r instanceof Jn&&zZ(r)&&t.auth.currentUser===t&&(yield t.auth.signOut()),r}})}function zZ({code:t}){return t==="auth/user-disabled"||t==="auth/user-token-expired"}var nN=class{constructor(e){this.user=e,this.isRunning=!1,this.timerId=null,this.errorBackoff=3e4}_start(){this.isRunning||(this.isRunning=!0,this.schedule())}_stop(){this.isRunning&&(this.isRunning=!1,this.timerId!==null&&clearTimeout(this.timerId))}getInterval(e){var n;if(e){let r=this.errorBackoff;return this.errorBackoff=Math.min(this.errorBackoff*2,96e4),r}else{this.errorBackoff=3e4;let i=((n=this.user.stsTokenManager.expirationTime)!==null&&n!==void 0?n:0)-Date.now()-3e5;return Math.max(0,i)}}schedule(e=!1){if(!this.isRunning)return;let n=this.getInterval(e);this.timerId=setTimeout(()=>y(this,null,function*(){yield this.iteration()}),n)}iteration(){return y(this,null,function*(){try{yield this.user.getIdToken(!0)}catch(e){e?.code==="auth/network-request-failed"&&this.schedule(!0);return}this.schedule()})}};var Dp=class{constructor(e,n){this.createdAt=e,this.lastLoginAt=n,this._initializeTime()}_initializeTime(){this.lastSignInTime=Ap(this.lastLoginAt),this.creationTime=Ap(this.createdAt)}_copy(e){this.createdAt=e.createdAt,this.lastLoginAt=e.lastLoginAt,this._initializeTime()}toJSON(){return{createdAt:this.createdAt,lastLoginAt:this.lastLoginAt}}};function QT(t){return y(this,null,function*(){var e;let n=t.auth,r=yield t.getIdToken(),i=yield tN(t,XT(n,{idToken:r}));je(i?.users.length,n,"internal-error");let o=i.users[0];t._notifyReloadListener(o);let s=!((e=o.providerUserInfo)===null||e===void 0)&&e.length?aG(o.providerUserInfo):[],a=qZ(t.providerData,s),c=t.isAnonymous,l=!(t.email&&o.passwordHash)&&!a?.length,d=c?l:!1,h={uid:o.localId,displayName:o.displayName||null,photoURL:o.photoUrl||null,email:o.email||null,emailVerified:o.emailVerified||!1,phoneNumber:o.phoneNumber||null,tenantId:o.tenantId||null,providerData:a,metadata:new Dp(o.createdAt,o.lastLoginAt),isAnonymous:d};Object.assign(t,h)})}function pN(t){return y(this,null,function*(){let e=Me(t);yield QT(e),yield e.auth._persistUserIfCurrent(e),e.auth._notifyListenersIfCurrent(e)})}function qZ(t,e){return[...t.filter(r=>!e.some(i=>i.providerId===r.providerId)),...e]}function aG(t){return t.map(e=>{var{providerId:n}=e,r=nS(e,["providerId"]);return{providerId:n,uid:r.rawId||"",displayName:r.displayName||null,email:r.email||null,phoneNumber:r.phoneNumber||null,photoURL:r.photoUrl||null}})}function KZ(t,e){return y(this,null,function*(){let n=yield iG(t,{},()=>y(null,null,function*(){let r=gp({grant_type:"refresh_token",refresh_token:e}).slice(1),{tokenApiHost:i,apiKey:o}=t.config,s=yield oG(t,i,"/v1/token",`key=${o}`),a=yield t._getAdditionalHeaders();a["Content-Type"]="application/x-www-form-urlencoded";let c={method:"POST",headers:a,body:r};return t.emulatorConfig&&_r(t.emulatorConfig.host)&&(c.credentials="include"),YT.fetch()(s,c)}));return{accessToken:n.access_token,expiresIn:n.expires_in,refreshToken:n.refresh_token}})}function YZ(t,e){return y(this,null,function*(){return Rp(t,"POST","/v2/accounts:revokeToken",fN(t,e))})}var Cp=class t{constructor(){this.refreshToken=null,this.accessToken=null,this.expirationTime=null}get isExpired(){return!this.expirationTime||Date.now()>this.expirationTime-3e4}updateFromServerResponse(e){je(e.idToken,"internal-error"),je(typeof e.idToken<"u","internal-error"),je(typeof e.refreshToken<"u","internal-error");let n="expiresIn"in e&&typeof e.expiresIn<"u"?Number(e.expiresIn):WB(e.idToken);this.updateTokensAndExpiration(e.idToken,e.refreshToken,n)}updateFromIdToken(e){je(e.length!==0,"internal-error");let n=WB(e);this.updateTokensAndExpiration(e,null,n)}getToken(e,n=!1){return y(this,null,function*(){return!n&&this.accessToken&&!this.isExpired?this.accessToken:(je(this.refreshToken,e,"user-token-expired"),this.refreshToken?(yield this.refresh(e,this.refreshToken),this.accessToken):null)})}clearRefreshToken(){this.refreshToken=null}refresh(e,n){return y(this,null,function*(){let{accessToken:r,refreshToken:i,expiresIn:o}=yield KZ(e,n);this.updateTokensAndExpiration(r,i,Number(o))})}updateTokensAndExpiration(e,n,r){this.refreshToken=n||null,this.accessToken=e||null,this.expirationTime=Date.now()+r*1e3}static fromJSON(e,n){let{refreshToken:r,accessToken:i,expirationTime:o}=n,s=new t;return r&&(je(typeof r=="string","internal-error",{appName:e}),s.refreshToken=r),i&&(je(typeof i=="string","internal-error",{appName:e}),s.accessToken=i),o&&(je(typeof o=="number","internal-error",{appName:e}),s.expirationTime=o),s}toJSON(){return{refreshToken:this.refreshToken,accessToken:this.accessToken,expirationTime:this.expirationTime}}_assign(e){this.accessToken=e.accessToken,this.refreshToken=e.refreshToken,this.expirationTime=e.expirationTime}_clone(){return Object.assign(new t,this.toJSON())}_performRefresh(){return Sp("not implemented")}};function $s(t,e){je(typeof t=="string"||typeof t>"u","internal-error",{appName:e})}var Ws=class t{constructor(e){var{uid:n,auth:r,stsTokenManager:i}=e,o=nS(e,["uid","auth","stsTokenManager"]);this.providerId="firebase",this.proactiveRefresh=new nN(this),this.reloadUserInfo=null,this.reloadListener=null,this.uid=n,this.auth=r,this.stsTokenManager=i,this.accessToken=i.accessToken,this.displayName=o.displayName||null,this.email=o.email||null,this.emailVerified=o.emailVerified||!1,this.phoneNumber=o.phoneNumber||null,this.photoURL=o.photoURL||null,this.isAnonymous=o.isAnonymous||!1,this.tenantId=o.tenantId||null,this.providerData=o.providerData?[...o.providerData]:[],this.metadata=new Dp(o.createdAt||void 0,o.lastLoginAt||void 0)}getIdToken(e){return y(this,null,function*(){let n=yield tN(this,this.stsTokenManager.getToken(this.auth,e));return je(n,this.auth,"internal-error"),this.accessToken!==n&&(this.accessToken=n,yield this.auth._persistUserIfCurrent(this),this.auth._notifyListenersIfCurrent(this)),n})}getIdTokenResult(e){return ry(this,e)}reload(){return pN(this)}_assign(e){this!==e&&(je(this.uid===e.uid,this.auth,"internal-error"),this.displayName=e.displayName,this.photoURL=e.photoURL,this.email=e.email,this.emailVerified=e.emailVerified,this.phoneNumber=e.phoneNumber,this.isAnonymous=e.isAnonymous,this.tenantId=e.tenantId,this.providerData=e.providerData.map(n=>Object.assign({},n)),this.metadata._copy(e.metadata),this.stsTokenManager._assign(e.stsTokenManager))}_clone(e){let n=new t(Object.assign(Object.assign({},this),{auth:e,stsTokenManager:this.stsTokenManager._clone()}));return n.metadata._copy(this.metadata),n}_onReload(e){je(!this.reloadListener,this.auth,"internal-error"),this.reloadListener=e,this.reloadUserInfo&&(this._notifyReloadListener(this.reloadUserInfo),this.reloadUserInfo=null)}_notifyReloadListener(e){this.reloadListener?this.reloadListener(e):this.reloadUserInfo=e}_startProactiveRefresh(){this.proactiveRefresh._start()}_stopProactiveRefresh(){this.proactiveRefresh._stop()}_updateTokensIfNecessary(e,n=!1){return y(this,null,function*(){let r=!1;e.idToken&&e.idToken!==this.stsTokenManager.accessToken&&(this.stsTokenManager.updateFromServerResponse(e),r=!0),n&&(yield QT(this)),yield this.auth._persistUserIfCurrent(this),r&&this.auth._notifyListenersIfCurrent(this)})}delete(){return y(this,null,function*(){if(Zn(this.auth.app))return Promise.reject(vp(this.auth));let e=yield this.getIdToken();return yield tN(this,WZ(this.auth,{idToken:e})),this.stsTokenManager.clearRefreshToken(),this.auth.signOut()})}toJSON(){return Object.assign(Object.assign({uid:this.uid,email:this.email||void 0,emailVerified:this.emailVerified,displayName:this.displayName||void 0,isAnonymous:this.isAnonymous,photoURL:this.photoURL||void 0,phoneNumber:this.phoneNumber||void 0,tenantId:this.tenantId||void 0,providerData:this.providerData.map(e=>Object.assign({},e)),stsTokenManager:this.stsTokenManager.toJSON(),_redirectEventId:this._redirectEventId},this.metadata.toJSON()),{apiKey:this.auth.config.apiKey,appName:this.auth.name})}get refreshToken(){return this.stsTokenManager.refreshToken||""}static _fromJSON(e,n){var r,i,o,s,a,c,l,d;let h=(r=n.displayName)!==null&&r!==void 0?r:void 0,f=(i=n.email)!==null&&i!==void 0?i:void 0,g=(o=n.phoneNumber)!==null&&o!==void 0?o:void 0,E=(s=n.photoURL)!==null&&s!==void 0?s:void 0,I=(a=n.tenantId)!==null&&a!==void 0?a:void 0,S=(c=n._redirectEventId)!==null&&c!==void 0?c:void 0,L=(l=n.createdAt)!==null&&l!==void 0?l:void 0,V=(d=n.lastLoginAt)!==null&&d!==void 0?d:void 0,{uid:K,emailVerified:oe,isAnonymous:ge,providerData:te,stsTokenManager:C}=n;je(K&&C,e,"internal-error");let v=Cp.fromJSON(this.name,C);je(typeof K=="string",e,"internal-error"),$s(h,e.name),$s(f,e.name),je(typeof oe=="boolean",e,"internal-error"),je(typeof ge=="boolean",e,"internal-error"),$s(g,e.name),$s(E,e.name),$s(I,e.name),$s(S,e.name),$s(L,e.name),$s(V,e.name);let A=new t({uid:K,auth:e,email:f,emailVerified:oe,displayName:h,isAnonymous:ge,photoURL:E,phoneNumber:g,tenantId:I,stsTokenManager:v,createdAt:L,lastLoginAt:V});return te&&Array.isArray(te)&&(A.providerData=te.map(R=>Object.assign({},R))),S&&(A._redirectEventId=S),A}static _fromIdTokenResponse(e,n,r=!1){return y(this,null,function*(){let i=new Cp;i.updateFromServerResponse(n);let o=new t({uid:n.localId,auth:e,stsTokenManager:i,isAnonymous:r});return yield QT(o),o})}static _fromGetAccountInfoResponse(e,n,r){return y(this,null,function*(){let i=n.users[0];je(i.localId!==void 0,"internal-error");let o=i.providerUserInfo!==void 0?aG(i.providerUserInfo):[],s=!(i.email&&i.passwordHash)&&!o?.length,a=new Cp;a.updateFromIdToken(r);let c=new t({uid:i.localId,auth:e,stsTokenManager:a,isAnonymous:s}),l={uid:i.localId,displayName:i.displayName||null,photoURL:i.photoUrl||null,email:i.email||null,emailVerified:i.emailVerified||!1,phoneNumber:i.phoneNumber||null,tenantId:i.tenantId||null,providerData:o,metadata:new Dp(i.createdAt,i.lastLoginAt),isAnonymous:!(i.email&&i.passwordHash)&&!o?.length};return Object.assign(c,l),c})}};var zB=new Map;function Bc(t){KT(t instanceof Function,"Expected a class definition");let e=zB.get(t);return e?(KT(e instanceof t,"Instance stored in cache mismatched with class"),e):(e=new t,zB.set(t,e),e)}var XZ=(()=>{class t{constructor(){this.type="NONE",this.storage={}}_isAvailable(){return y(this,null,function*(){return!0})}_set(n,r){return y(this,null,function*(){this.storage[n]=r})}_get(n){return y(this,null,function*(){let r=this.storage[n];return r===void 0?null:r})}_remove(n){return y(this,null,function*(){delete this.storage[n]})}_addListener(n,r){}_removeListener(n,r){}}return t.type="NONE",t})(),rN=XZ;function ZR(t,e,n){return`firebase:${t}:${e}:${n}`}var JT=class t{constructor(e,n,r){this.persistence=e,this.auth=n,this.userKey=r;let{config:i,name:o}=this.auth;this.fullUserKey=ZR(this.userKey,i.apiKey,o),this.fullPersistenceKey=ZR("persistence",i.apiKey,o),this.boundEventHandler=n._onStorageEvent.bind(n),this.persistence._addListener(this.fullUserKey,this.boundEventHandler)}setCurrentUser(e){return this.persistence._set(this.fullUserKey,e.toJSON())}getCurrentUser(){return y(this,null,function*(){let e=yield this.persistence._get(this.fullUserKey);if(!e)return null;if(typeof e=="string"){let n=yield XT(this.auth,{idToken:e}).catch(()=>{});return n?Ws._fromGetAccountInfoResponse(this.auth,n,e):null}return Ws._fromJSON(this.auth,e)})}removeCurrentUser(){return this.persistence._remove(this.fullUserKey)}savePersistenceForRedirect(){return this.persistence._set(this.fullPersistenceKey,this.persistence.type)}setPersistence(e){return y(this,null,function*(){if(this.persistence===e)return;let n=yield this.getCurrentUser();if(yield this.removeCurrentUser(),this.persistence=e,n)return this.setCurrentUser(n)})}delete(){this.persistence._removeListener(this.fullUserKey,this.boundEventHandler)}static create(e,n,r="authUser"){return y(this,null,function*(){if(!n.length)return new t(Bc(rN),e,r);let i=(yield Promise.all(n.map(l=>y(null,null,function*(){if(yield l._isAvailable())return l})))).filter(l=>l),o=i[0]||Bc(rN),s=ZR(r,e.config.apiKey,e.name),a=null;for(let l of n)try{let d=yield l._get(s);if(d){let h;if(typeof d=="string"){let f=yield XT(e,{idToken:d}).catch(()=>{});if(!f)break;h=yield Ws._fromGetAccountInfoResponse(e,f,d)}else h=Ws._fromJSON(e,d);l!==o&&(a=h),o=l;break}}catch{}let c=i.filter(l=>l._shouldAllowMigration);return!o._shouldAllowMigration||!c.length?new t(o,e,r):(o=c[0],a&&(yield o._set(s,a.toJSON())),yield Promise.all(n.map(l=>y(null,null,function*(){if(l!==o)try{yield l._remove(s)}catch{}}))),new t(o,e,r))})}};function qB(t){let e=t.toLowerCase();if(e.includes("opera/")||e.includes("opr/")||e.includes("opios/"))return"Opera";if(cG(e))return"IEMobile";if(e.includes("msie")||e.includes("trident/"))return"IE";if(e.includes("edge/"))return"Edge";if(QZ(e))return"Firefox";if(e.includes("silk/"))return"Silk";if(uG(e))return"Blackberry";if(dG(e))return"Webos";if(JZ(e))return"Safari";if((e.includes("chrome/")||ZZ(e))&&!e.includes("edge/"))return"Chrome";if(lG(e))return"Android";{let n=/([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/,r=t.match(n);if(r?.length===2)return r[1]}return"Other"}function QZ(t=Yt()){return/firefox\//i.test(t)}function JZ(t=Yt()){let e=t.toLowerCase();return e.includes("safari/")&&!e.includes("chrome/")&&!e.includes("crios/")&&!e.includes("android")}function ZZ(t=Yt()){return/crios\//i.test(t)}function cG(t=Yt()){return/iemobile/i.test(t)}function lG(t=Yt()){return/android/i.test(t)}function uG(t=Yt()){return/blackberry/i.test(t)}function dG(t=Yt()){return/webos/i.test(t)}function eee(t=Yt()){return/iphone|ipad|ipod/i.test(t)||/macintosh/i.test(t)&&/mobile/i.test(t)}function tee(){return cB()&&document.documentMode===10}function nee(t=Yt()){return eee(t)||lG(t)||dG(t)||uG(t)||/windows phone/i.test(t)||cG(t)}function hG(t,e=[]){let n;switch(t){case"Browser":n=qB(Yt());break;case"Worker":n=`${qB(Yt())}-${t}`;break;default:n=t}let r=e.length?e.join(","):"FirebaseCore-web";return`${n}/JsCore/${Bs}/${r}`}var iN=class{constructor(e){this.auth=e,this.queue=[]}pushCallback(e,n){let r=o=>new Promise((s,a)=>{try{let c=e(o);s(c)}catch(c){a(c)}});r.onAbort=n,this.queue.push(r);let i=this.queue.length-1;return()=>{this.queue[i]=()=>Promise.resolve()}}runMiddleware(e){return y(this,null,function*(){if(this.auth.currentUser===e)return;let n=[];try{for(let r of this.queue)yield r(e),r.onAbort&&n.push(r.onAbort)}catch(r){n.reverse();for(let i of n)try{i()}catch{}throw this.auth._errorFactory.create("login-blocked",{originalMessage:r?.message})}})}};function ree(n){return y(this,arguments,function*(t,e={}){return Rp(t,"GET","/v2/passwordPolicy",fN(t,e))})}var iee=6,oN=class{constructor(e){var n,r,i,o;let s=e.customStrengthOptions;this.customStrengthOptions={},this.customStrengthOptions.minPasswordLength=(n=s.minPasswordLength)!==null&&n!==void 0?n:iee,s.maxPasswordLength&&(this.customStrengthOptions.maxPasswordLength=s.maxPasswordLength),s.containsLowercaseCharacter!==void 0&&(this.customStrengthOptions.containsLowercaseLetter=s.containsLowercaseCharacter),s.containsUppercaseCharacter!==void 0&&(this.customStrengthOptions.containsUppercaseLetter=s.containsUppercaseCharacter),s.containsNumericCharacter!==void 0&&(this.customStrengthOptions.containsNumericCharacter=s.containsNumericCharacter),s.containsNonAlphanumericCharacter!==void 0&&(this.customStrengthOptions.containsNonAlphanumericCharacter=s.containsNonAlphanumericCharacter),this.enforcementState=e.enforcementState,this.enforcementState==="ENFORCEMENT_STATE_UNSPECIFIED"&&(this.enforcementState="OFF"),this.allowedNonAlphanumericCharacters=(i=(r=e.allowedNonAlphanumericCharacters)===null||r===void 0?void 0:r.join(""))!==null&&i!==void 0?i:"",this.forceUpgradeOnSignin=(o=e.forceUpgradeOnSignin)!==null&&o!==void 0?o:!1,this.schemaVersion=e.schemaVersion}validatePassword(e){var n,r,i,o,s,a;let c={isValid:!0,passwordPolicy:this};return this.validatePasswordLengthOptions(e,c),this.validatePasswordCharacterOptions(e,c),c.isValid&&(c.isValid=(n=c.meetsMinPasswordLength)!==null&&n!==void 0?n:!0),c.isValid&&(c.isValid=(r=c.meetsMaxPasswordLength)!==null&&r!==void 0?r:!0),c.isValid&&(c.isValid=(i=c.containsLowercaseLetter)!==null&&i!==void 0?i:!0),c.isValid&&(c.isValid=(o=c.containsUppercaseLetter)!==null&&o!==void 0?o:!0),c.isValid&&(c.isValid=(s=c.containsNumericCharacter)!==null&&s!==void 0?s:!0),c.isValid&&(c.isValid=(a=c.containsNonAlphanumericCharacter)!==null&&a!==void 0?a:!0),c}validatePasswordLengthOptions(e,n){let r=this.customStrengthOptions.minPasswordLength,i=this.customStrengthOptions.maxPasswordLength;r&&(n.meetsMinPasswordLength=e.length>=r),i&&(n.meetsMaxPasswordLength=e.length<=i)}validatePasswordCharacterOptions(e,n){this.updatePasswordCharacterOptionsStatuses(n,!1,!1,!1,!1);let r;for(let i=0;i<e.length;i++)r=e.charAt(i),this.updatePasswordCharacterOptionsStatuses(n,r>="a"&&r<="z",r>="A"&&r<="Z",r>="0"&&r<="9",this.allowedNonAlphanumericCharacters.includes(r))}updatePasswordCharacterOptionsStatuses(e,n,r,i,o){this.customStrengthOptions.containsLowercaseLetter&&(e.containsLowercaseLetter||(e.containsLowercaseLetter=n)),this.customStrengthOptions.containsUppercaseLetter&&(e.containsUppercaseLetter||(e.containsUppercaseLetter=r)),this.customStrengthOptions.containsNumericCharacter&&(e.containsNumericCharacter||(e.containsNumericCharacter=i)),this.customStrengthOptions.containsNonAlphanumericCharacter&&(e.containsNonAlphanumericCharacter||(e.containsNonAlphanumericCharacter=o))}};var sN=class{constructor(e,n,r,i){this.app=e,this.heartbeatServiceProvider=n,this.appCheckServiceProvider=r,this.config=i,this.currentUser=null,this.emulatorConfig=null,this.operations=Promise.resolve(),this.authStateSubscription=new ZT(this),this.idTokenSubscription=new ZT(this),this.beforeStateQueue=new iN(this),this.redirectUser=null,this.isProactiveRefreshEnabled=!1,this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION=1,this._canInitEmulator=!0,this._isInitialized=!1,this._deleted=!1,this._initializationPromise=null,this._popupRedirectResolver=null,this._errorFactory=nG,this._agentRecaptchaConfig=null,this._tenantRecaptchaConfigs={},this._projectPasswordPolicy=null,this._tenantPasswordPolicies={},this._resolvePersistenceManagerAvailable=void 0,this.lastNotifiedUid=void 0,this.languageCode=null,this.tenantId=null,this.settings={appVerificationDisabledForTesting:!1},this.frameworks=[],this.name=e.name,this.clientVersion=i.sdkClientVersion,this._persistenceManagerAvailable=new Promise(o=>this._resolvePersistenceManagerAvailable=o)}_initializeWithPersistence(e,n){return n&&(this._popupRedirectResolver=Bc(n)),this._initializationPromise=this.queue(()=>y(this,null,function*(){var r,i,o;if(!this._deleted&&(this.persistenceManager=yield JT.create(this,e),(r=this._resolvePersistenceManagerAvailable)===null||r===void 0||r.call(this),!this._deleted)){if(!((i=this._popupRedirectResolver)===null||i===void 0)&&i._shouldInitProactively)try{yield this._popupRedirectResolver._initialize(this)}catch{}yield this.initializeCurrentUser(n),this.lastNotifiedUid=((o=this.currentUser)===null||o===void 0?void 0:o.uid)||null,!this._deleted&&(this._isInitialized=!0)}})),this._initializationPromise}_onStorageEvent(){return y(this,null,function*(){if(this._deleted)return;let e=yield this.assertedPersistence.getCurrentUser();if(!(!this.currentUser&&!e)){if(this.currentUser&&e&&this.currentUser.uid===e.uid){this._currentUser._assign(e),yield this.currentUser.getIdToken();return}yield this._updateCurrentUser(e,!0)}})}initializeCurrentUserFromIdToken(e){return y(this,null,function*(){try{let n=yield XT(this,{idToken:e}),r=yield Ws._fromGetAccountInfoResponse(this,n,e);yield this.directlySetCurrentUser(r)}catch(n){console.warn("FirebaseServerApp could not login user with provided authIdToken: ",n),yield this.directlySetCurrentUser(null)}})}initializeCurrentUser(e){return y(this,null,function*(){var n;if(Zn(this.app)){let s=this.app.settings.authIdToken;return s?new Promise(a=>{setTimeout(()=>this.initializeCurrentUserFromIdToken(s).then(a,a))}):this.directlySetCurrentUser(null)}let r=yield this.assertedPersistence.getCurrentUser(),i=r,o=!1;if(e&&this.config.authDomain){yield this.getOrInitRedirectPersistenceManager();let s=(n=this.redirectUser)===null||n===void 0?void 0:n._redirectEventId,a=i?._redirectEventId,c=yield this.tryRedirectSignIn(e);(!s||s===a)&&c?.user&&(i=c.user,o=!0)}if(!i)return this.directlySetCurrentUser(null);if(!i._redirectEventId){if(o)try{yield this.beforeStateQueue.runMiddleware(i)}catch(s){i=r,this._popupRedirectResolver._overrideRedirectResult(this,()=>Promise.reject(s))}return i?this.reloadAndSetCurrentUserOrClear(i):this.directlySetCurrentUser(null)}return je(this._popupRedirectResolver,this,"argument-error"),yield this.getOrInitRedirectPersistenceManager(),this.redirectUser&&this.redirectUser._redirectEventId===i._redirectEventId?this.directlySetCurrentUser(i):this.reloadAndSetCurrentUserOrClear(i)})}tryRedirectSignIn(e){return y(this,null,function*(){let n=null;try{n=yield this._popupRedirectResolver._completeRedirectFn(this,e,!0)}catch{yield this._setRedirectUser(null)}return n})}reloadAndSetCurrentUserOrClear(e){return y(this,null,function*(){try{yield QT(e)}catch(n){if(n?.code!=="auth/network-request-failed")return this.directlySetCurrentUser(null)}return this.directlySetCurrentUser(e)})}useDeviceLanguage(){this.languageCode=VZ()}_delete(){return y(this,null,function*(){this._deleted=!0})}updateCurrentUser(e){return y(this,null,function*(){if(Zn(this.app))return Promise.reject(vp(this));let n=e?Me(e):null;return n&&je(n.auth.config.apiKey===this.config.apiKey,this,"invalid-user-token"),this._updateCurrentUser(n&&n._clone(this))})}_updateCurrentUser(e,n=!1){return y(this,null,function*(){if(!this._deleted)return e&&je(this.tenantId===e.tenantId,this,"tenant-id-mismatch"),n||(yield this.beforeStateQueue.runMiddleware(e)),this.queue(()=>y(this,null,function*(){yield this.directlySetCurrentUser(e),this.notifyAuthListeners()}))})}signOut(){return y(this,null,function*(){return Zn(this.app)?Promise.reject(vp(this)):(yield this.beforeStateQueue.runMiddleware(null),(this.redirectPersistenceManager||this._popupRedirectResolver)&&(yield this._setRedirectUser(null)),this._updateCurrentUser(null,!0))})}setPersistence(e){return Zn(this.app)?Promise.reject(vp(this)):this.queue(()=>y(this,null,function*(){yield this.assertedPersistence.setPersistence(Bc(e))}))}_getRecaptchaConfig(){return this.tenantId==null?this._agentRecaptchaConfig:this._tenantRecaptchaConfigs[this.tenantId]}validatePassword(e){return y(this,null,function*(){this._getPasswordPolicyInternal()||(yield this._updatePasswordPolicy());let n=this._getPasswordPolicyInternal();return n.schemaVersion!==this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION?Promise.reject(this._errorFactory.create("unsupported-password-policy-schema-version",{})):n.validatePassword(e)})}_getPasswordPolicyInternal(){return this.tenantId===null?this._projectPasswordPolicy:this._tenantPasswordPolicies[this.tenantId]}_updatePasswordPolicy(){return y(this,null,function*(){let e=yield ree(this),n=new oN(e);this.tenantId===null?this._projectPasswordPolicy=n:this._tenantPasswordPolicies[this.tenantId]=n})}_getPersistenceType(){return this.assertedPersistence.persistence.type}_getPersistence(){return this.assertedPersistence.persistence}_updateErrorMap(e){this._errorFactory=new ii("auth","Firebase",e())}onAuthStateChanged(e,n,r){return this.registerStateListener(this.authStateSubscription,e,n,r)}beforeAuthStateChanged(e,n){return this.beforeStateQueue.pushCallback(e,n)}onIdTokenChanged(e,n,r){return this.registerStateListener(this.idTokenSubscription,e,n,r)}authStateReady(){return new Promise((e,n)=>{if(this.currentUser)e();else{let r=this.onAuthStateChanged(()=>{r(),e()},n)}})}revokeAccessToken(e){return y(this,null,function*(){if(this.currentUser){let n=yield this.currentUser.getIdToken(),r={providerId:"apple.com",tokenType:"ACCESS_TOKEN",token:e,idToken:n};this.tenantId!=null&&(r.tenantId=this.tenantId),yield YZ(this,r)}})}toJSON(){var e;return{apiKey:this.config.apiKey,authDomain:this.config.authDomain,appName:this.name,currentUser:(e=this._currentUser)===null||e===void 0?void 0:e.toJSON()}}_setRedirectUser(e,n){return y(this,null,function*(){let r=yield this.getOrInitRedirectPersistenceManager(n);return e===null?r.removeCurrentUser():r.setCurrentUser(e)})}getOrInitRedirectPersistenceManager(e){return y(this,null,function*(){if(!this.redirectPersistenceManager){let n=e&&Bc(e)||this._popupRedirectResolver;je(n,this,"argument-error"),this.redirectPersistenceManager=yield JT.create(this,[Bc(n._redirectPersistence)],"redirectUser"),this.redirectUser=yield this.redirectPersistenceManager.getCurrentUser()}return this.redirectPersistenceManager})}_redirectUserForId(e){return y(this,null,function*(){var n,r;return this._isInitialized&&(yield this.queue(()=>y(this,null,function*(){}))),((n=this._currentUser)===null||n===void 0?void 0:n._redirectEventId)===e?this._currentUser:((r=this.redirectUser)===null||r===void 0?void 0:r._redirectEventId)===e?this.redirectUser:null})}_persistUserIfCurrent(e){return y(this,null,function*(){if(e===this.currentUser)return this.queue(()=>y(this,null,function*(){return this.directlySetCurrentUser(e)}))})}_notifyListenersIfCurrent(e){e===this.currentUser&&this.notifyAuthListeners()}_key(){return`${this.config.authDomain}:${this.config.apiKey}:${this.name}`}_startProactiveRefresh(){this.isProactiveRefreshEnabled=!0,this.currentUser&&this._currentUser._startProactiveRefresh()}_stopProactiveRefresh(){this.isProactiveRefreshEnabled=!1,this.currentUser&&this._currentUser._stopProactiveRefresh()}get _currentUser(){return this.currentUser}notifyAuthListeners(){var e,n;if(!this._isInitialized)return;this.idTokenSubscription.next(this.currentUser);let r=(n=(e=this.currentUser)===null||e===void 0?void 0:e.uid)!==null&&n!==void 0?n:null;this.lastNotifiedUid!==r&&(this.lastNotifiedUid=r,this.authStateSubscription.next(this.currentUser))}registerStateListener(e,n,r,i){if(this._deleted)return()=>{};let o=typeof n=="function"?n:n.next.bind(n),s=!1,a=this._isInitialized?Promise.resolve():this._initializationPromise;if(je(a,this,"internal-error"),a.then(()=>{s||o(this.currentUser)}),typeof n=="function"){let c=e.addObserver(n,r,i);return()=>{s=!0,c()}}else{let c=e.addObserver(n);return()=>{s=!0,c()}}}directlySetCurrentUser(e){return y(this,null,function*(){this.currentUser&&this.currentUser!==e&&this._currentUser._stopProactiveRefresh(),e&&this.isProactiveRefreshEnabled&&e._startProactiveRefresh(),this.currentUser=e,e?yield this.assertedPersistence.setCurrentUser(e):yield this.assertedPersistence.removeCurrentUser()})}queue(e){return this.operations=this.operations.then(e,e),this.operations}get assertedPersistence(){return je(this.persistenceManager,this,"internal-error"),this.persistenceManager}_logFramework(e){!e||this.frameworks.includes(e)||(this.frameworks.push(e),this.frameworks.sort(),this.clientVersion=hG(this.config.clientPlatform,this._getFrameworks()))}_getFrameworks(){return this.frameworks}_getAdditionalHeaders(){return y(this,null,function*(){var e;let n={"X-Client-Version":this.clientVersion};this.app.options.appId&&(n["X-Firebase-gmpid"]=this.app.options.appId);let r=yield(e=this.heartbeatServiceProvider.getImmediate({optional:!0}))===null||e===void 0?void 0:e.getHeartbeatsHeader();r&&(n["X-Firebase-Client"]=r);let i=yield this._getAppCheckToken();return i&&(n["X-Firebase-AppCheck"]=i),n})}_getAppCheckToken(){return y(this,null,function*(){var e;if(Zn(this.app)&&this.app.settings.appCheckToken)return this.app.settings.appCheckToken;let n=yield(e=this.appCheckServiceProvider.getImmediate({optional:!0}))===null||e===void 0?void 0:e.getToken();return n?.error&&kZ(`Error while retrieving App Check token: ${n.error}`),n?.token})}};function fG(t){return Me(t)}var ZT=class{constructor(e){this.auth=e,this.observer=null,this.addObserver=fB(n=>this.observer=n)}get next(){return je(this.observer,this.auth,"internal-error"),this.observer.next.bind(this.observer)}};var oee={loadJS(){return y(this,null,function*(){throw new Error("Unable to load external scripts")})},recaptchaV2Script:"",recaptchaEnterpriseScript:"",gapiScript:""};function see(t){oee=t}function aee(t){return`__${t}${Math.floor(Math.random()*1e6)}`}function gN(t,e){let n=Xi(t,"auth");if(n.isInitialized()){let i=n.getImmediate(),o=n.getOptions();if(oi(o,e??{}))return i;qT(i,"already-initialized")}return n.initialize({options:e})}function cee(t,e){let n=e?.persistence||[],r=(Array.isArray(n)?n:[n]).map(Bc);e?.errorMap&&t._updateErrorMap(e.errorMap),t._initializeWithPersistence(r,e?.popupRedirectResolver)}var aN=class t{constructor(e){this.user=e.user,this.providerId=e.providerId,this._tokenResponse=e._tokenResponse,this.operationType=e.operationType}static _fromIdTokenResponse(e,n,r,i=!1){return y(this,null,function*(){let o=yield Ws._fromIdTokenResponse(e,r,i),s=KB(r);return new t({user:o,providerId:s,_tokenResponse:r,operationType:n})})}static _forOperation(e,n,r){return y(this,null,function*(){yield e._updateTokensIfNecessary(r,!0);let i=KB(r);return new t({user:e,providerId:i,_tokenResponse:r,operationType:n})})}};function KB(t){return t.providerId?t.providerId:"phoneNumber"in t?"phone":null}function lee(t,e){return y(this,null,function*(){return $Z(t,"POST","/v1/accounts:signInWithCustomToken",fN(t,e))})}function mN(t,e){return y(this,null,function*(){if(Zn(t.app))return Promise.reject(vp(t));let n=fG(t),r=yield lee(n,{token:e,returnSecureToken:!0}),i=yield aN._fromIdTokenResponse(n,"signIn",r);return yield n._updateCurrentUser(i.user),i})}function iy(t,e,n,r){return Me(t).onAuthStateChanged(e,n,r)}function EN(t){return Me(t).signOut()}var ey="__sak";var ty=class{constructor(e,n){this.storageRetriever=e,this.type=n}_isAvailable(){try{return this.storage?(this.storage.setItem(ey,"1"),this.storage.removeItem(ey),Promise.resolve(!0)):Promise.resolve(!1)}catch{return Promise.resolve(!1)}}_set(e,n){return this.storage.setItem(e,JSON.stringify(n)),Promise.resolve()}_get(e){let n=this.storage.getItem(e);return Promise.resolve(n?JSON.parse(n):null)}_remove(e){return this.storage.removeItem(e),Promise.resolve()}get storage(){return this.storageRetriever()}};var uee=1e3,dee=10,hee=(()=>{class t extends ty{constructor(){super(()=>window.localStorage,"LOCAL"),this.boundEventHandler=(n,r)=>this.onStorageEvent(n,r),this.listeners={},this.localCache={},this.pollTimer=null,this.fallbackToPolling=nee(),this._shouldAllowMigration=!0}forAllChangedKeys(n){for(let r of Object.keys(this.listeners)){let i=this.storage.getItem(r),o=this.localCache[r];i!==o&&n(r,o,i)}}onStorageEvent(n,r=!1){if(!n.key){this.forAllChangedKeys((a,c,l)=>{this.notifyListeners(a,l)});return}let i=n.key;r?this.detachListener():this.stopPolling();let o=()=>{let a=this.storage.getItem(i);!r&&this.localCache[i]===a||this.notifyListeners(i,a)},s=this.storage.getItem(i);tee()&&s!==n.newValue&&n.newValue!==n.oldValue?setTimeout(o,dee):o()}notifyListeners(n,r){this.localCache[n]=r;let i=this.listeners[n];if(i)for(let o of Array.from(i))o(r&&JSON.parse(r))}startPolling(){this.stopPolling(),this.pollTimer=setInterval(()=>{this.forAllChangedKeys((n,r,i)=>{this.onStorageEvent(new StorageEvent("storage",{key:n,oldValue:r,newValue:i}),!0)})},uee)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}attachListener(){window.addEventListener("storage",this.boundEventHandler)}detachListener(){window.removeEventListener("storage",this.boundEventHandler)}_addListener(n,r){Object.keys(this.listeners).length===0&&(this.fallbackToPolling?this.startPolling():this.attachListener()),this.listeners[n]||(this.listeners[n]=new Set,this.localCache[n]=this.storage.getItem(n)),this.listeners[n].add(r)}_removeListener(n,r){this.listeners[n]&&(this.listeners[n].delete(r),this.listeners[n].size===0&&delete this.listeners[n]),Object.keys(this.listeners).length===0&&(this.detachListener(),this.stopPolling())}_set(n,r){return y(this,null,function*(){yield Ga(t.prototype,this,"_set").call(this,n,r),this.localCache[n]=JSON.stringify(r)})}_get(n){return y(this,null,function*(){let r=yield Ga(t.prototype,this,"_get").call(this,n);return this.localCache[n]=JSON.stringify(r),r})}_remove(n){return y(this,null,function*(){yield Ga(t.prototype,this,"_remove").call(this,n),delete this.localCache[n]})}}return t.type="LOCAL",t})(),fee=hee;var pee=(()=>{class t extends ty{constructor(){super(()=>window.sessionStorage,"SESSION")}_addListener(n,r){}_removeListener(n,r){}}return t.type="SESSION",t})(),gee=pee;function mee(t){return Promise.all(t.map(e=>y(null,null,function*(){try{return{fulfilled:!0,value:yield e}}catch(n){return{fulfilled:!1,reason:n}}})))}var Eee=(()=>{class t{constructor(n){this.eventTarget=n,this.handlersMap={},this.boundEventHandler=this.handleEvent.bind(this)}static _getInstance(n){let r=this.receivers.find(o=>o.isListeningto(n));if(r)return r;let i=new t(n);return this.receivers.push(i),i}isListeningto(n){return this.eventTarget===n}handleEvent(n){return y(this,null,function*(){let r=n,{eventId:i,eventType:o,data:s}=r.data,a=this.handlersMap[o];if(!a?.size)return;r.ports[0].postMessage({status:"ack",eventId:i,eventType:o});let c=Array.from(a).map(d=>y(this,null,function*(){return d(r.origin,s)})),l=yield mee(c);r.ports[0].postMessage({status:"done",eventId:i,eventType:o,response:l})})}_subscribe(n,r){Object.keys(this.handlersMap).length===0&&this.eventTarget.addEventListener("message",this.boundEventHandler),this.handlersMap[n]||(this.handlersMap[n]=new Set),this.handlersMap[n].add(r)}_unsubscribe(n,r){this.handlersMap[n]&&r&&this.handlersMap[n].delete(r),(!r||this.handlersMap[n].size===0)&&delete this.handlersMap[n],Object.keys(this.handlersMap).length===0&&this.eventTarget.removeEventListener("message",this.boundEventHandler)}}t.receivers=[];return t})();function _ee(t="",e=10){let n="";for(let r=0;r<e;r++)n+=Math.floor(Math.random()*10);return t+n}var cN=class{constructor(e){this.target=e,this.handlers=new Set}removeMessageHandler(e){e.messageChannel&&(e.messageChannel.port1.removeEventListener("message",e.onMessage),e.messageChannel.port1.close()),this.handlers.delete(e)}_send(e,n,r=50){return y(this,null,function*(){let i=typeof MessageChannel<"u"?new MessageChannel:null;if(!i)throw new Error("connection_unavailable");let o,s;return new Promise((a,c)=>{let l=_ee("",20);i.port1.start();let d=setTimeout(()=>{c(new Error("unsupported_event"))},r);s={messageChannel:i,onMessage(h){let f=h;if(f.data.eventId===l)switch(f.data.status){case"ack":clearTimeout(d),o=setTimeout(()=>{c(new Error("timeout"))},3e3);break;case"done":clearTimeout(o),a(f.data.response);break;default:clearTimeout(d),clearTimeout(o),c(new Error("invalid_response"));break}}},this.handlers.add(s),i.port1.addEventListener("message",s.onMessage),this.target.postMessage({eventType:e,eventId:l,data:n},[i.port2])}).finally(()=>{s&&this.removeMessageHandler(s)})})}};function YB(){return window}function pG(){return typeof YB().WorkerGlobalScope<"u"&&typeof YB().importScripts=="function"}function Tee(){return y(this,null,function*(){if(!navigator?.serviceWorker)return null;try{return(yield navigator.serviceWorker.ready).active}catch{return null}})}function yee(){var t;return((t=navigator?.serviceWorker)===null||t===void 0?void 0:t.controller)||null}function Iee(){return pG()?self:null}var gG="firebaseLocalStorageDb",vee=1,ny="firebaseLocalStorage",mG="fbase_key",jc=class{constructor(e){this.request=e}toPromise(){return new Promise((e,n)=>{this.request.addEventListener("success",()=>{e(this.request.result)}),this.request.addEventListener("error",()=>{n(this.request.error)})})}};function oy(t,e){return t.transaction([ny],e?"readwrite":"readonly").objectStore(ny)}function See(){let t=indexedDB.deleteDatabase(gG);return new jc(t).toPromise()}function lN(){let t=indexedDB.open(gG,vee);return new Promise((e,n)=>{t.addEventListener("error",()=>{n(t.error)}),t.addEventListener("upgradeneeded",()=>{let r=t.result;try{r.createObjectStore(ny,{keyPath:mG})}catch(i){n(i)}}),t.addEventListener("success",()=>y(null,null,function*(){let r=t.result;r.objectStoreNames.contains(ny)?e(r):(r.close(),yield See(),e(yield lN()))}))})}function XB(t,e,n){return y(this,null,function*(){let r=oy(t,!0).put({[mG]:e,value:n});return new jc(r).toPromise()})}function Aee(t,e){return y(this,null,function*(){let n=oy(t,!1).get(e),r=yield new jc(n).toPromise();return r===void 0?null:r.value})}function QB(t,e){let n=oy(t,!0).delete(e);return new jc(n).toPromise()}var Cee=800,Dee=3,Ree=(()=>{class t{constructor(){this.type="LOCAL",this._shouldAllowMigration=!0,this.listeners={},this.localCache={},this.pollTimer=null,this.pendingWrites=0,this.receiver=null,this.sender=null,this.serviceWorkerReceiverAvailable=!1,this.activeServiceWorker=null,this._workerInitializationPromise=this.initializeServiceWorkerMessaging().then(()=>{},()=>{})}_openDb(){return y(this,null,function*(){return this.db?this.db:(this.db=yield lN(),this.db)})}_withRetries(n){return y(this,null,function*(){let r=0;for(;;)try{let i=yield this._openDb();return yield n(i)}catch(i){if(r++>Dee)throw i;this.db&&(this.db.close(),this.db=void 0)}})}initializeServiceWorkerMessaging(){return y(this,null,function*(){return pG()?this.initializeReceiver():this.initializeSender()})}initializeReceiver(){return y(this,null,function*(){this.receiver=Eee._getInstance(Iee()),this.receiver._subscribe("keyChanged",(n,r)=>y(this,null,function*(){return{keyProcessed:(yield this._poll()).includes(r.key)}})),this.receiver._subscribe("ping",(n,r)=>y(this,null,function*(){return["keyChanged"]}))})}initializeSender(){return y(this,null,function*(){var n,r;if(this.activeServiceWorker=yield Tee(),!this.activeServiceWorker)return;this.sender=new cN(this.activeServiceWorker);let i=yield this.sender._send("ping",{},800);i&&!((n=i[0])===null||n===void 0)&&n.fulfilled&&!((r=i[0])===null||r===void 0)&&r.value.includes("keyChanged")&&(this.serviceWorkerReceiverAvailable=!0)})}notifyServiceWorker(n){return y(this,null,function*(){if(!(!this.sender||!this.activeServiceWorker||yee()!==this.activeServiceWorker))try{yield this.sender._send("keyChanged",{key:n},this.serviceWorkerReceiverAvailable?800:50)}catch{}})}_isAvailable(){return y(this,null,function*(){try{if(!indexedDB)return!1;let n=yield lN();return yield XB(n,ey,"1"),yield QB(n,ey),!0}catch{}return!1})}_withPendingWrite(n){return y(this,null,function*(){this.pendingWrites++;try{yield n()}finally{this.pendingWrites--}})}_set(n,r){return y(this,null,function*(){return this._withPendingWrite(()=>y(this,null,function*(){return yield this._withRetries(i=>XB(i,n,r)),this.localCache[n]=r,this.notifyServiceWorker(n)}))})}_get(n){return y(this,null,function*(){let r=yield this._withRetries(i=>Aee(i,n));return this.localCache[n]=r,r})}_remove(n){return y(this,null,function*(){return this._withPendingWrite(()=>y(this,null,function*(){return yield this._withRetries(r=>QB(r,n)),delete this.localCache[n],this.notifyServiceWorker(n)}))})}_poll(){return y(this,null,function*(){let n=yield this._withRetries(o=>{let s=oy(o,!1).getAll();return new jc(s).toPromise()});if(!n)return[];if(this.pendingWrites!==0)return[];let r=[],i=new Set;if(n.length!==0)for(let{fbase_key:o,value:s}of n)i.add(o),JSON.stringify(this.localCache[o])!==JSON.stringify(s)&&(this.notifyListeners(o,s),r.push(o));for(let o of Object.keys(this.localCache))this.localCache[o]&&!i.has(o)&&(this.notifyListeners(o,null),r.push(o));return r})}notifyListeners(n,r){this.localCache[n]=r;let i=this.listeners[n];if(i)for(let o of Array.from(i))o(r)}startPolling(){this.stopPolling(),this.pollTimer=setInterval(()=>y(this,null,function*(){return this._poll()}),Cee)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}_addListener(n,r){Object.keys(this.listeners).length===0&&this.startPolling(),this.listeners[n]||(this.listeners[n]=new Set,this._get(n)),this.listeners[n].add(r)}_removeListener(n,r){this.listeners[n]&&(this.listeners[n].delete(r),this.listeners[n].size===0&&delete this.listeners[n]),Object.keys(this.listeners).length===0&&this.stopPolling()}}return t.type="LOCAL",t})(),Nee=Ree;var aPe=aee("rcb"),cPe=new Gc(3e4,6e4);var lPe=new Gc(2e3,1e4);var uPe=600*1e3;var dPe=new Gc(3e4,6e4);var hPe=new Gc(5e3,15e3);var fPe=encodeURIComponent("fac");var JB="@firebase/auth",ZB="1.10.8";var uN=class{constructor(e){this.auth=e,this.internalListeners=new Map}getUid(){var e;return this.assertAuthConfigured(),((e=this.auth.currentUser)===null||e===void 0?void 0:e.uid)||null}getToken(e){return y(this,null,function*(){return this.assertAuthConfigured(),yield this.auth._initializationPromise,this.auth.currentUser?{accessToken:yield this.auth.currentUser.getIdToken(e)}:null})}addAuthTokenListener(e){if(this.assertAuthConfigured(),this.internalListeners.has(e))return;let n=this.auth.onIdTokenChanged(r=>{e(r?.stsTokenManager.accessToken||null)});this.internalListeners.set(e,n),this.updateProactiveRefresh()}removeAuthTokenListener(e){this.assertAuthConfigured();let n=this.internalListeners.get(e);n&&(this.internalListeners.delete(e),n(),this.updateProactiveRefresh())}assertAuthConfigured(){je(this.auth._initializationPromise,"dependent-sdk-initialized-before-auth")}updateProactiveRefresh(){this.internalListeners.size>0?this.auth._startProactiveRefresh():this.auth._stopProactiveRefresh()}};function wee(t){switch(t){case"Node":return"node";case"ReactNative":return"rn";case"Worker":return"webworker";case"Cordova":return"cordova";case"WebExtension":return"web-extension";default:return}}function bee(t){$n(new Xt("auth",(e,{options:n})=>{let r=e.getProvider("app").getImmediate(),i=e.getProvider("heartbeat"),o=e.getProvider("app-check-internal"),{apiKey:s,authDomain:a}=r.options;je(s&&!s.includes(":"),"invalid-api-key",{appName:r.name});let c={apiKey:s,authDomain:a,clientPlatform:t,apiHost:"identitytoolkit.googleapis.com",tokenApiHost:"securetoken.googleapis.com",apiScheme:"https",sdkClientVersion:hG(t)},l=new sN(r,i,o,c);return cee(l,n),l},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((e,n,r)=>{e.getProvider("auth-internal").initialize()})),$n(new Xt("auth-internal",e=>{let n=fG(e.getProvider("auth").getImmediate());return(r=>new uN(r))(n)},"PRIVATE").setInstantiationMode("EXPLICIT")),Ge(JB,ZB,wee(t)),Ge(JB,ZB,"esm2017")}var Oee=300,pPe=iB("authIdTokenMaxAge")||Oee;function Mee(){var t,e;return(e=(t=document.getElementsByTagName("head"))===null||t===void 0?void 0:t[0])!==null&&e!==void 0?e:document}see({loadJS(t){return new Promise((e,n)=>{let r=document.createElement("script");r.setAttribute("src",t),r.onload=e,r.onerror=i=>{let o=dN("internal-error");o.customData=i,n(o)},r.type="text/javascript",r.charset="UTF-8",Mee().appendChild(r)})},gapiScript:"https://apis.google.com/js/api.js",recaptchaV2Script:"https://www.google.com/recaptcha/api.js",recaptchaEnterpriseScript:"https://www.google.com/recaptcha/enterprise.js?render="});bee("Browser");function TG(t){return new fe(function(e){var n=iy(t,e.next.bind(e),e.error.bind(e),e.complete.bind(e));return{unsubscribe:n}})}var yG="auth",Hc=class{constructor(e){return e}},$c=class{constructor(){return Go(yG)}};var _N=new z("angularfire2.auth-instances");function Ate(t,e){let n=Gs(yG,t,e);return n&&new Hc(n)}function Cte(t){return(e,n)=>{let r=e.runOutsideAngular(()=>t(n));return new Hc(r)}}var Dte={provide:$c,deps:[[new zt,_N]]},Rte={provide:Hc,useFactory:Ate,deps:[[new zt,_N],ci]};function dxe(t,...e){return Ge("angularfire",si.full,"auth"),Xn([Rte,Dte,{provide:_N,useFactory:Cte(t),multi:!0,deps:[Ae,ze,ai,jo,[new zt,Hs],...e]}])}var hd=ue(TG,!0);var Np=ue(ry,!0);var hxe=ue(gN,!0);var IG=ue(mN,!0,2);var vG=ue(EN,!0,2);var wte="type.googleapis.com/google.protobuf.Int64Value",bte="type.googleapis.com/google.protobuf.UInt64Value";function DG(t,e){let n={};for(let r in t)t.hasOwnProperty(r)&&(n[r]=e(t[r]));return n}function sy(t){if(t==null)return null;if(t instanceof Number&&(t=t.valueOf()),typeof t=="number"&&isFinite(t)||t===!0||t===!1||Object.prototype.toString.call(t)==="[object String]")return t;if(t instanceof Date)return t.toISOString();if(Array.isArray(t))return t.map(e=>sy(e));if(typeof t=="function"||typeof t=="object")return DG(t,e=>sy(e));throw new Error("Data cannot be encoded in JSON: "+t)}function fd(t){if(t==null)return t;if(t["@type"])switch(t["@type"]){case wte:case bte:{let e=Number(t.value);if(isNaN(e))throw new Error("Data cannot be decoded from JSON: "+t);return e}default:throw new Error("Data cannot be decoded from JSON: "+t)}return Array.isArray(t)?t.map(e=>fd(e)):typeof t=="function"||typeof t=="object"?DG(t,e=>fd(e)):t}var vN="functions";var SG={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"},tr=class t extends Jn{constructor(e,n,r){super(`${vN}/${e}`,n||""),this.details=r,Object.setPrototypeOf(this,t.prototype)}};function Ote(t){if(t>=200&&t<300)return"ok";switch(t){case 0:return"internal";case 400:return"invalid-argument";case 401:return"unauthenticated";case 403:return"permission-denied";case 404:return"not-found";case 409:return"aborted";case 429:return"resource-exhausted";case 499:return"cancelled";case 500:return"internal";case 501:return"unimplemented";case 503:return"unavailable";case 504:return"deadline-exceeded"}return"unknown"}function ay(t,e){let n=Ote(t),r=n,i;try{let o=e&&e.error;if(o){let s=o.status;if(typeof s=="string"){if(!SG[s])return new tr("internal","internal");n=SG[s],r=s}let a=o.message;typeof a=="string"&&(r=a),i=o.details,i!==void 0&&(i=fd(i))}}catch{}return n==="ok"?null:new tr(n,r,i)}var TN=class{constructor(e,n,r,i){this.app=e,this.auth=null,this.messaging=null,this.appCheck=null,this.serverAppAppCheckToken=null,Zn(e)&&e.settings.appCheckToken&&(this.serverAppAppCheckToken=e.settings.appCheckToken),this.auth=n.getImmediate({optional:!0}),this.messaging=r.getImmediate({optional:!0}),this.auth||n.get().then(o=>this.auth=o,()=>{}),this.messaging||r.get().then(o=>this.messaging=o,()=>{}),this.appCheck||i?.get().then(o=>this.appCheck=o,()=>{})}getAuthToken(){return y(this,null,function*(){if(this.auth)try{let e=yield this.auth.getToken();return e?.accessToken}catch{return}})}getMessagingToken(){return y(this,null,function*(){if(!(!this.messaging||!("Notification"in self)||Notification.permission!=="granted"))try{return yield this.messaging.getToken()}catch{return}})}getAppCheckToken(e){return y(this,null,function*(){if(this.serverAppAppCheckToken)return this.serverAppAppCheckToken;if(this.appCheck){let n=e?yield this.appCheck.getLimitedUseToken():yield this.appCheck.getToken();return n.error?null:n.token}return null})}getContext(e){return y(this,null,function*(){let n=yield this.getAuthToken(),r=yield this.getMessagingToken(),i=yield this.getAppCheckToken(e);return{authToken:n,messagingToken:r,appCheckToken:i}})}};var yN="us-central1",Mte=/^data: (.*?)(?:\n|$)/;function Lte(t){let e=null;return{promise:new Promise((n,r)=>{e=setTimeout(()=>{r(new tr("deadline-exceeded","deadline-exceeded"))},t)}),cancel:()=>{e&&clearTimeout(e)}}}var IN=class{constructor(e,n,r,i,o=yN,s=(...a)=>fetch(...a)){this.app=e,this.fetchImpl=s,this.emulatorOrigin=null,this.contextProvider=new TN(e,n,r,i),this.cancelAllRequests=new Promise(a=>{this.deleteService=()=>Promise.resolve(a())});try{let a=new URL(o);this.customDomain=a.origin+(a.pathname==="/"?"":a.pathname),this.region=yN}catch{this.customDomain=null,this.region=o}}_delete(){return this.deleteService()}_url(e){let n=this.app.options.projectId;return this.emulatorOrigin!==null?`${this.emulatorOrigin}/${n}/${this.region}/${e}`:this.customDomain!==null?`${this.customDomain}/${e}`:`https://${this.region}-${n}.cloudfunctions.net/${e}`}};function Pte(t,e,n){let r=_r(e);t.emulatorOrigin=`http${r?"s":""}://${e}:${n}`,r&&(ks(t.emulatorOrigin),Fc("Functions",!0))}function xte(t,e,n){let r=i=>Fte(t,e,i,n||{});return r.stream=(i,o)=>Ute(t,e,i,o||{}),r}function kte(t,e,n,r){return y(this,null,function*(){n["Content-Type"]="application/json";let i;try{i=yield r(t,{method:"POST",body:JSON.stringify(e),headers:n})}catch{return{status:0,json:null}}let o=null;try{o=yield i.json()}catch{}return{status:i.status,json:o}})}function RG(t,e){return y(this,null,function*(){let n={},r=yield t.contextProvider.getContext(e.limitedUseAppCheckTokens);return r.authToken&&(n.Authorization="Bearer "+r.authToken),r.messagingToken&&(n["Firebase-Instance-ID-Token"]=r.messagingToken),r.appCheckToken!==null&&(n["X-Firebase-AppCheck"]=r.appCheckToken),n})}function Fte(t,e,n,r){return y(this,null,function*(){n=sy(n);let i={data:n},o=yield RG(t,r),s=r.timeout||7e4,a=Lte(s),c=yield Promise.race([kte(e,i,o,t.fetchImpl),a.promise,t.cancelAllRequests]);if(a.cancel(),!c)throw new tr("cancelled","Firebase Functions instance was deleted.");let l=ay(c.status,c.json);if(l)throw l;if(!c.json)throw new tr("internal","Response is not valid JSON object.");let d=c.json.data;if(typeof d>"u"&&(d=c.json.result),typeof d>"u")throw new tr("internal","Response is missing data field.");return{data:fd(d)}})}function Ute(t,e,n,r){return y(this,null,function*(){var i;n=sy(n);let o={data:n},s=yield RG(t,r);s["Content-Type"]="application/json",s.Accept="text/event-stream";let a;try{a=yield t.fetchImpl(e,{method:"POST",body:JSON.stringify(o),headers:s,signal:r?.signal})}catch(g){if(g instanceof Error&&g.name==="AbortError"){let I=new tr("cancelled","Request was cancelled.");return{data:Promise.reject(I),stream:{[Symbol.asyncIterator](){return{next(){return Promise.reject(I)}}}}}}let E=ay(0,null);return{data:Promise.reject(E),stream:{[Symbol.asyncIterator](){return{next(){return Promise.reject(E)}}}}}}let c,l,d=new Promise((g,E)=>{c=g,l=E});(i=r?.signal)===null||i===void 0||i.addEventListener("abort",()=>{let g=new tr("cancelled","Request was cancelled.");l(g)});let h=a.body.getReader(),f=Vte(h,c,l,r?.signal);return{stream:{[Symbol.asyncIterator](){let g=f.getReader();return{next(){return y(this,null,function*(){let{value:I,done:S}=yield g.read();return{value:I,done:S}})},return(){return y(this,null,function*(){return yield g.cancel(),{done:!0,value:void 0}})}}}},data:d}})}function Vte(t,e,n,r){let i=(s,a)=>{let c=s.match(Mte);if(!c)return;let l=c[1];try{let d=JSON.parse(l);if("result"in d){e(fd(d.result));return}if("message"in d){a.enqueue(fd(d.message));return}if("error"in d){let h=ay(0,d);a.error(h),n(h);return}}catch(d){if(d instanceof tr){a.error(d),n(d);return}}},o=new TextDecoder;return new ReadableStream({start(s){let a="";return c();function c(){return y(this,null,function*(){if(r?.aborted){let l=new tr("cancelled","Request was cancelled");return s.error(l),n(l),Promise.resolve()}try{let{value:l,done:d}=yield t.read();if(d){a.trim()&&i(a.trim(),s),s.close();return}if(r?.aborted){let f=new tr("cancelled","Request was cancelled");s.error(f),n(f),yield t.cancel();return}a+=o.decode(l,{stream:!0});let h=a.split(`
141
- `);a=h.pop()||"";for(let f of h)f.trim()&&i(f.trim(),s);return c()}catch(l){let d=l instanceof tr?l:ay(0,null);s.error(d),n(d)}})}},cancel(){return t.cancel()}})}var AG="@firebase/functions",CG="0.12.9";var Bte="auth-internal",Gte="app-check-internal",jte="messaging-internal";function Hte(t){let e=(n,{instanceIdentifier:r})=>{let i=n.getProvider("app").getImmediate(),o=n.getProvider(Bte),s=n.getProvider(jte),a=n.getProvider(Gte);return new IN(i,o,s,a,r)};$n(new Xt(vN,e,"PUBLIC").setMultipleInstances(!0)),Ge(AG,CG,t),Ge(AG,CG,"esm2017")}function NG(t=er(),e=yN){let r=Xi(Me(t),vN).getImmediate({identifier:e}),i=ld("functions");return i&&SN(r,...i),r}function SN(t,e,n){Pte(Me(t),e,n)}function wG(t,e,n){return xte(Me(t),e,n)}Hte();var Ho=class{constructor(e){return e}},bG="functions",AN=class{constructor(){return Go(bG)}};var CN=new z("angularfire2.functions-instances");function $te(t,e){let n=Gs(bG,t,e);return n&&new Ho(n)}function Wte(t){return(e,n)=>{let r=e.runOutsideAngular(()=>t(n));return new Ho(r)}}var zte={provide:AN,deps:[[new zt,CN]]},qte={provide:Ho,useFactory:$te,deps:[[new zt,CN],ci]};function bxe(t,...e){return Ge("angularfire",si.full,"fn"),Xn([qte,zte,{provide:CN,useFactory:Wte(t),multi:!0,deps:[Ae,ze,ai,jo,[new zt,$c],[new zt,Hs],...e]}])}var Oxe=ue(SN,!0),Mxe=ue(NG,!0);var OG=ue(wG,!0);var LG={httpsCallableFromURL:OG};function pd(t,e,n){return n?LG.httpsCallableFromURL(t,e,n):LG.httpsCallableFromURL(t,e)}var Ji=(()=>{let e=class e{constructor(r,i){this.loggingService=r,this.analyticsService=i,this.config$=new ie(null),this.disableLogsConfig$=new ie({warnings:!0,suppressAll:!1}),this.apiKey$=new ie(""),this.baseFeatureAllowList=[],this.sf$=new ie(!1),this.sdkType$=new ie("core"),this.logsEnabled$=new ie(!0),this.safeEval$=new ie(!1),this.firestorePersistentCacheEnabled$=new ie(!1),this.encryptionProvider$=new ie(null);try{this.analyticsService.setConfigService(this),this.sdkType$.subscribe(o=>{this.analyticsService.updateDefaultProperties({sdkType:o})},o=>{this.loggingService.catch("Error in ConfigService sdkType$: ",o)}),this.logsEnabled$.subscribe(o=>{o?this.loggingService.enableLogs():this.loggingService.disableLogs(),M.logsEnabled=o},o=>{this.loggingService.catch("Error in ConfigService logsEnabled$: ",o)})}catch(o){this.loggingService.catch("Error in ConfigService constructor: ",o)}}initConfig(r){try{r.featureAllowList?.length||(r.featureAllowList=Object.values(QD)),this.baseFeatureAllowList=r.featureAllowList?.slice();try{r.proxyConfig?.authHost?localStorage.setItem(F.LOCAL_STORAGE.VELT_AUTH_PROXY_HOST,btoa(r.proxyConfig.authHost)):localStorage.removeItem(F.LOCAL_STORAGE.VELT_AUTH_PROXY_HOST)}catch{}this.config$.next(r)}catch(i){this.loggingService.catch("Error in ConfigService initConfig: ",i)}}setApiKey(r){this.apiKey$.next(r)}getApiKey(){return this.apiKey$.value}getApiKey$(){return this.apiKey$.asObservable()}getConfig(){return this.config$.value}getConfig$(){return this.config$.asObservable()}disableFeatures(r){try{let i=this.config$.value;i&&(r?.length?i.featureAllowList=this.baseFeatureAllowList.filter(o=>!r.includes(o)):i.featureAllowList=this.baseFeatureAllowList.slice()),this.config$.next(i)}catch(i){this.loggingService.catch("Error in ConfigService disableFeatures: ",i)}}enableFeatures(r){try{if(!r?.length)return;let i=this.config$.value;if(!i)return;let o=i.featureAllowList??[],s=r.filter(a=>!o.includes(a));if(s.length===0)return;i.featureAllowList=[...o,...s],this.baseFeatureAllowList=[...this.baseFeatureAllowList,...s.filter(a=>!this.baseFeatureAllowList.includes(a))],this.config$.next(i)}catch(i){this.loggingService.catch("Error in ConfigService enableFeatures: ",i)}}setSF(r){try{this.sf$.next(r),this.analyticsService.setSF(r)}catch(i){this.loggingService.catch("Error in ConfigService setSF: ",i)}}getSF(){try{return this.sf$.value}catch(r){return this.loggingService.catch("Error in ConfigService getSF: ",r),!1}}getSF$(){try{return this.sf$.asObservable().pipe(yo(cp))}catch(r){return this.loggingService.catch("Error in ConfigService getSF$: ",r),lt(!1)}}setSdkType(r){try{this.sdkType$.next(r)}catch(i){this.loggingService.catch("Error in ConfigService setSdkType: ",i)}}getSdkType(){try{return this.sdkType$.value}catch(r){return this.loggingService.catch("Error in ConfigService getSdkType: ",r),"core"}}getSdkType$(){try{return this.sdkType$.asObservable()}catch(r){return this.loggingService.catch("Error in ConfigService getSdkType$: ",r),lt("core")}}enableLogs(){try{if(this.logsEnabled$.value===!0)return;this.logsEnabled$.next(!0)}catch(r){this.loggingService.catch("Error in ConfigService enableLogs: ",r)}}disableLogs(r){try{r&&this.disableLogsConfig$.next({warnings:r.warnings??!0,suppressAll:r.suppressAll??!1}),r?.warnings!==!1&&this.logsEnabled$.next(!1)}catch(i){this.loggingService.catch("Error in ConfigService disableLogs: ",i)}}getDisableLogsConfig(){return this.disableLogsConfig$.value}getDisableLogsConfig$(){return this.disableLogsConfig$.asObservable()}getProxyConfig(){try{return this.config$.value?.proxyConfig}catch(r){this.loggingService.catch("Error in ConfigService getProxyConfig: ",r);return}}getAuthProxyHost(){try{let r=this.config$.value?.proxyConfig?.authHost;if(r)return r;let i=localStorage.getItem(F.LOCAL_STORAGE.VELT_AUTH_PROXY_HOST);return i?atob(i):void 0}catch(r){this.loggingService.catch("Error in ConfigService getAuthProxyHost: ",r);return}}getApiHost(){try{return this.getProxyConfig()?.apiHost||this.config$.value?.apiProxyDomain}catch(r){this.loggingService.catch("Error in ConfigService getApiHost: ",r);return}}getApiProxyDomain(){return this.getApiHost()}getSelfHostedConfig(){try{return this.config$.value?.selfHosted}catch(r){this.loggingService.catch("Error in ConfigService getSelfHostedConfig: ",r);return}}getEnablePortableBackend(){try{return this.config$.value?.selfHosted?.enablePortableBackend===!0}catch(r){return this.loggingService.catch("Error in ConfigService getEnablePortableBackend: ",r),!1}}enableSafeEval(){try{this.safeEval$.next(!0)}catch(r){this.loggingService.catch("Error in ConfigService enableSafeEval: ",r)}}disableSafeEval(){try{this.safeEval$.next(!1)}catch(r){this.loggingService.catch("Error in ConfigService disableSafeEval: ",r)}}getSafeEval(){try{return this.safeEval$.value}catch(r){return this.loggingService.catch("Error in ConfigService getSafeEval: ",r),!1}}getSafeEval$(){try{return this.safeEval$.asObservable()}catch(r){return this.loggingService.catch("Error in ConfigService getSafeEval$: ",r),lt(!1)}}enableFirestorePersistentCache(){try{this.firestorePersistentCacheEnabled$.next(!0)}catch(r){this.loggingService.catch("Error in ConfigService enableFirestorePersistentCache: ",r)}}disableFirestorePersistentCache(){try{this.firestorePersistentCacheEnabled$.next(!1)}catch(r){this.loggingService.catch("Error in ConfigService disableFirestorePersistentCache: ",r)}}isFirestorePersistentCacheEnabled(){try{return this.firestorePersistentCacheEnabled$.value}catch(r){return this.loggingService.catch("Error in ConfigService isFirestorePersistentCacheEnabled: ",r),!1}}getFirestorePersistentCacheEnabled$(){try{return this.firestorePersistentCacheEnabled$.asObservable()}catch(r){return this.loggingService.catch("Error in ConfigService getFirestorePersistentCacheEnabled$: ",r),lt(!1)}}setEncryptionProvider(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setEncryptionProvider","color: green;"),this.encryptionProvider$.next(r)}catch(i){this.loggingService.catch("Error in ConfigService setEncryptionProvider: ",i)}}getEncryptionProvider(){try{return this.encryptionProvider$.value}catch(r){return this.loggingService.catch("Error in ConfigService getEncryptionProvider: ",r),null}}getEncryptionProvider$(){try{return this.encryptionProvider$.asObservable()}catch(r){return this.loggingService.catch("Error in ConfigService getEncryptionProvider$: ",r),lt(null)}}};e.\u0275fac=function(i){return new(i||e)($(bt),$(zs))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var Wc={fetch:(t,e)=>fetch(t,e),timeoutMs:12e5,renewalTimeoutMs:3e4,renewalOfflineTimeoutMs:5e3,isOnline:()=>typeof navigator>"u"||navigator.onLine!==!1};function xG(){try{return Wc.isOnline()?Wc.renewalTimeoutMs:Wc.renewalOfflineTimeoutMs}catch{return Wc.renewalTimeoutMs}}var Gxe=Wc.timeoutMs,PG=Symbol("identify-timed-out");function zc(t){if(!t)return!1;try{let e=new URL(t);return e.protocol==="https:"?!0:e.protocol==="http:"&&["localhost","127.0.0.1","[::1]"].includes(e.hostname)}catch{return!1}}function kG(t){return`${t.replace(/\/+$/,"")}/identify`}function Kte(t,e="identify"){let n="Could not reach the self-hosted backend for "+e+" ("+t+"). If the SDK is running cross-origin, a likely cause is the gateway's CORS origin allowlist not including this origin (fail-closed deny-by-default) \u2014 verify the operator configured it. This is distinct from a server-side denial, which carries a specific error code.";return{error:n,code:"network_error",message:n,source:"identify"}}function FG(t){return y(this,null,function*(){let e={apiKey:t.apiKey,originDomain:typeof window<"u"?window.location.origin:"",version:t.version,user:t.user};return t.authToken!=null&&(e.authToken=t.authToken),UG({url:t.url,body:e,timeoutMs:Wc.timeoutMs,label:"identify"})})}function UG(t){return y(this,null,function*(){let e,n=t.timeoutMs,r=typeof AbortController<"u"?new AbortController:null,i,o=new Promise(a=>{i=setTimeout(()=>{try{r?.abort()}catch{}a(PG)},n)}),s=()=>y(null,null,function*(){let a=yield Wc.fetch(t.url,B({method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t.body)},r?{signal:r.signal}:{}));try{return{body:yield a.json()}}catch{return{detail:`unreadable response (HTTP ${a.status}, non-JSON body)`}}});try{let a=yield Promise.race([s(),o]);if(a===PG)e=`no answer within ${n} ms (request timed out and was aborted)`;else{if("body"in a)return a.body;e=a.detail}}catch(a){e=`fetch failed: ${a?.message??a}`}finally{i!==void 0&&clearTimeout(i)}return console.error(`Velt [selfHosted.portableBackendUrl]: ${t.label} ${e} \u2014 ${t.url}`),Kte(e,t.label)})}var RN="refresh_token_invalid",NN=new Set(["domain_not_whitelisted","identify_not_configured","invalid-argument"]);function VG(t,e){return`${t.replace(/\/+$/,"")}/${e}`}function BG(t){let e={apiKey:t.apiKey,refreshToken:t.refreshToken};return UG({url:t.url,body:e,timeoutMs:t.timeoutMs,label:"identify/refresh"})}var $o={validateClient:{endpointClass:"core",module:"core"},sdkProxy:{endpointClass:"core",module:"core"},getNotificationsForDocuments:{endpointClass:"core",module:"core"},getPlanDetails:{endpointClass:"advisory",module:"core"},sa:{endpointClass:"telemetry",module:"core"},getIceServers:{endpointClass:"optional",module:"huddle-webrtc"},chatgptCompletion:{endpointClass:"optional",module:"ai"},rewriterAskAi:{endpointClass:"optional",module:"ai"},whisperTranscription:{endpointClass:"optional",module:"recorder-media"},getAllowedDocuments:{endpointClass:"optional",module:"core"},videoBackend:{endpointClass:"optional",module:"recorder-media"},convertRecording:{endpointClass:"optional",module:"recorder-media"},processRecording:{endpointClass:"optional",module:"recorder-media"},screenshot:{endpointClass:"optional",module:"recorder-media"},setEncryptedData:{endpointClass:"core",module:"core"},firebaseNotificationsDatabaseURL:{endpointClass:"core",module:"core"},firebaseConfig:{endpointClass:"core",module:"core"}},Yte=Object.keys($o).filter(t=>t!=="setEncryptedData"&&t!=="firebaseNotificationsDatabaseURL"&&t!=="firebaseConfig"&&$o[t].endpointClass==="core"),Xte=["notifications","analytics-telemetry","console"],GG=new Set;function Qte(t){try{let e=t.filter(o=>!xU.includes(o));if(!e.length)return;let n=[...e].sort().join(",");if(GG.has(n))return;GG.add(n);let r=e.filter(o=>Xte.includes(o)),i=`Velt [selfHosted.deploymentProfile]: unknown module id(s) ignored: ${e.join(", ")}. Unknown ids enable nothing (fail-closed).`;r.length&&(i+=` Note: ${r.join(", ")} `+(r.length>1?"were":"was")+" absorbed into 'core' by the 2026-07-10 manifest restructure \u2014 the endpoints they used to gate (notifications hub, getNotificationsForDocuments, sa telemetry, console CFs) now follow 'core' and are ENABLED whenever core is. If you relied on omitting one of these ids to disable those endpoints, that opt-out no longer applies \u2014 regenerate your velt-deployment-profile.json."),console.warn(i)}catch{}}function qc(t,e){let n=t?.deploymentProfile;return!Array.isArray(n)||n.length===0?!0:(Qte(n),n.includes(e))}var jG={usCentral1:"us-central1",europeWest1:"europe-west1",asiaSouthEast1:"asia-southeast1",australiaSouthEast1:"australia-southeast1",asiaNorthEast1:"asia-northeast1"};function Jte(t,e){let n=t?.dataRegions;if(!Array.isArray(n)||e==="usCentral1")return e;let r=jG[e];return r&&n.includes(r)?e:"usCentral1"}function Zte(t){let e=t.cloudFunction;if(e?.setEncryptedData)return!0;let n=t.dataRegions;if(!Array.isArray(n))return Object.values(e?.regions??{}).some(i=>!!i?.setEncryptedData);let r=i=>!!e?.regions?.[i]?.setEncryptedData;return r("usCentral1")?Object.entries(jG).filter(([i,o])=>i!=="usCentral1"&&n.includes(o)).every(([i])=>r(i)):!1}var ene="__VELT_PRE_BOOTSTRAP_SELF_HOSTED__";function tne(t){let e=t?.firebaseConfig;return e?B(B({},qt.firebaseConfig),e):qt.firebaseConfig}function Xxe(){try{if(typeof window>"u")return;let t=window[ene];return t&&typeof t=="object"?t:void 0}catch{return}}var ly=(()=>{let e=class e{constructor(r){this.injector=r,this.strictCoreValidationReported=!1,this.portableUnservedProxyReported=!1,this.portableWithoutStrictReported=!1,this.portableIdentifyFlagMisconfigReported=!1,this.portableIdentifyInsecureUrlReported=!1}get configService(){return this._configService??=this.injector.get(Ji)}get loggingService(){return this._loggingService??=this.injector.get(bt)}getSelfHosted(){try{let r=this.configService.getSelfHostedConfig();return this.reportPortableWithoutStrictOnce(r),r}catch(r){this.loggingService.catch("Error in EndpointsService getSelfHosted: ",r);return}}resolveStrictMiss(r,i){return this.reportStrictCoreMisconfigurationOnce(r),`${Lc}${i}`}resolveProfileDisabled(r,i){return`${Lc}module.${r}/${i}`}isPortableBackendConfigured(r){let i=r?.portableBackendUrl;return r?.enablePortableBackend===!0&&!!i&&zc(i)}reportPortableWithoutStrictOnce(r){if(!this.portableWithoutStrictReported&&!(!this.isPortableBackendConfigured(r)||r?.strict)){this.portableWithoutStrictReported=!0;try{console.warn("Velt [selfHosted.portableBackendUrl]: portable backend configured WITHOUT `strict: true`. Velt-hosted endpoints (analytics `sa`, `sdkProxy`) still egress to Velt cloud, so this deployment is NOT air-gapped. The Tier B recipe pairs them: { enablePortableBackend: true, portableBackendUrl, strict: true }.")}catch{}}}reportStrictCoreMisconfigurationOnce(r){if(!this.strictCoreValidationReported&&!this.isPortableBackendConfigured(r)){this.strictCoreValidationReported=!0;try{let i=this.getMissingStrictCoreEndpoints(r);i.length&&console.error(`Velt [selfHosted.strict]: missing CORE endpoint config: ${i.join(", ")}. The SDK cannot function without these in strict self-hosted mode \u2014 there is no fallback to Velt infrastructure. Provide them via config.selfHosted, or unset \`strict\` for hybrid mode.`)}catch(i){this.loggingService.catch("Error in EndpointsService reportStrictCoreMisconfigurationOnce: ",i,void 0,!0)}}}getMissingStrictCoreEndpoints(r){let i=[];for(let o of Yte)qc(r,$o[o].module)&&(r.cloudFunction?.[o]||i.push(`cloudFunction.${o}`));return qc(r,$o.setEncryptedData.module)&&!Zte(r)&&i.push("cloudFunction.setEncryptedData"),qc(r,$o.firebaseNotificationsDatabaseURL.module)&&!r.firebaseNotificationsDatabaseURL&&i.push("firebaseNotificationsDatabaseURL"),qc(r,$o.firebaseConfig.module)&&!r.firebaseConfig&&i.push("firebaseConfig"),i}getCloudFunctionUrl(r){let i=this.getSelfHosted(),o=$o[r].module;if(!qc(i,o))return this.resolveProfileDisabled(o,`cloudFunction.${r}`);let s=i?.cloudFunction?.[r];return s||(i?.strict?(r==="sdkProxy"&&this.reportPortableUnservedProxyOnce(i),this.resolveStrictMiss(i,`cloudFunction.${r}`)):qt.cloudFunction?.[r])}reportPortableUnservedProxyOnce(r){if(!this.portableUnservedProxyReported&&this.isPortableBackendConfigured(r)){this.portableUnservedProxyReported=!0;try{console.warn("Velt [Tier B]: a Velt-hosted `sdkProxy` call was blocked (strict self-hosting \u2014 zero egress, no fallback). The portable gateway does not serve this operation class, so any feature that still calls it is unavailable on this deployment: today that is the AI rewriter (rewriterAskAi); a routed operation reaches it only if its portable activation wait expired. This warning fires once per session, on the first blocked call.")}catch{}}}getPortableIdentifyUrl(){try{let r=this.getSelfHosted(),i=r?.portableBackendUrl;return i?r?.enablePortableBackend!==!0?(this.portableIdentifyFlagMisconfigReported||(this.portableIdentifyFlagMisconfigReported=!0,console.error("Velt [selfHosted.portableBackendUrl]: set without `enablePortableBackend: true` \u2014 ignored. Identify will use the Velt-hosted endpoint. Set both options to route identify to your self-hosted backend.")),null):zc(i)?kG(i):(this.portableIdentifyInsecureUrlReported||(this.portableIdentifyInsecureUrlReported=!0,console.error(`Velt [selfHosted.portableBackendUrl]: insecure URL "${i}" \u2014 https:// is required (plain http:// is allowed for loopback hosts only). Identify is DISABLED (fail-closed): the SDK will not fall back to Velt infrastructure for a Tier B deployment.`)),`${Lc}portableBackendUrl/identify`):null}catch(r){return this.loggingService.catch("Error in EndpointsService getPortableIdentifyUrl: ",r),null}}getFirebaseConfig(){let r=this.getSelfHosted();return!r?.firebaseConfig&&r?.strict&&this.reportStrictCoreMisconfigurationOnce(r),tne(r)}getNotificationsDbUrl(){let r=this.getSelfHosted(),i=$o.firebaseNotificationsDatabaseURL.module;if(!qc(r,i))return this.resolveProfileDisabled(i,"firebaseNotificationsDatabaseURL");let o=r?.firebaseNotificationsDatabaseURL;return o||(r?.strict?this.resolveStrictMiss(r,"firebaseNotificationsDatabaseURL"):qt.firebaseNotificationsDatabaseURL)}getSetEncryptedDataUrl(r){let i=this.getSelfHosted(),o=$o.setEncryptedData.module;if(!qc(i,o))return this.resolveProfileDisabled(o,`cloudFunction.setEncryptedData (region: ${r})`);r=Jte(i,r);let s=i?.cloudFunction;if(s?.setEncryptedData)return s.setEncryptedData;let a=s?.regions?.[r]?.setEncryptedData;return a||(i?.strict?this.resolveStrictMiss(i,`cloudFunction.setEncryptedData (region: ${r})`):qt.cloudFunction?.[r]?.setEncryptedData)}};e.\u0275fac=function(i){return new(i||e)($(ze))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var zs=(()=>{let e=class e{constructor(r,i){this.functions=r,this.serviceBook=i,this.endpointsService=Y(ly),this.sf=!1,this.defaultProperties={},this.draftEvents=[],this.liveStateSyncEvents=Object.values(St.Events.LiveStateSync||{}),this.eventRateLimitCache={},this.EVENT_LIMIT=50,this.TIME_WINDOW_MS=60*1e3,this.analyticsQueue=[],this.selfHostedAnalyticsSkipReported=!1,this.selfHostingTelemetrySources={},this.selfHostingTelemetryDropReported=!1,this.batchTimer=null,this.BATCH_WINDOW_MS=5*1e3,this.MAX_BATCH_SIZE=50,this.liveStateService=null;try{this.updateDefaultProperties({sdkVersion:xc()}),window?.location?.href&&(this.defaultProperties.pageUrl=window.location.href),this.serviceBook.observe(fT).subscribe(o=>{this.commentService=o??void 0}),this.serviceBook.observe(pT).subscribe(o=>{this.reactionService=o??void 0}),this.serviceBook.observe(gT).subscribe(o=>{this.areaService=o??void 0}),this.serviceBook.observe(vU).subscribe(o=>{this.liveStateService=o??null})}catch(o){M.catch("Error in AnalyticsService constructor: ",o)}}updateDefaultProperties(r={}){this.defaultProperties=B(B({},this.defaultProperties),r)}setInstalledFeature(r){try{this.defaultProperties?.installedFeatures||(this.defaultProperties.installedFeatures=[]),this.defaultProperties.installedFeatures.includes(r)||this.defaultProperties.installedFeatures.push(r)}catch(i){M.catch("Error in AnalyticsService setInstalledFeature: ",i)}}setFeatureConfig({feature:r,config:i}){try{this.defaultProperties.featureConfigs||(this.defaultProperties.featureConfigs={}),this.defaultProperties.featureConfigs[r]||(this.defaultProperties.featureConfigs[r]={}),this.defaultProperties.featureConfigs[r]=B(B({},this.defaultProperties.featureConfigs[r]),i)}catch(o){M.catch("Error in AnalyticsService setFeatureConfig: ",o)}}setSF(r){try{this.sf=r}catch(i){M.catch("Error in AnalyticsService setSF: ",i)}}setAuthService(r){try{this.authService=r}catch(i){M.catch("Error in AnalyticsService setAuthService: ",i)}}setCommentService(r){try{this.commentService=r}catch(i){M.catch("Error in AnalyticsService setCommentService: ",i)}}setConfigService(r){try{this.configService=r}catch(i){M.catch("Error in AnalyticsService setConfigService: ",i)}}setDomService(r){try{this.domService=r}catch(i){M.catch("Error in AnalyticsService setDomService: ",i)}}registerSelfHostingTelemetrySource(r,i){try{this.selfHostingTelemetrySources||(this.selfHostingTelemetrySources={}),this.selfHostingTelemetrySources[r]=i}catch(o){M.catch("Error in AnalyticsService registerSelfHostingTelemetrySource: ",o)}}resolveSelfHostingTelemetryState(){let r=this.selfHostingTelemetrySources??{},i={},o=a=>{let c=r[a];if(!c)return!1;try{return!!c.configured()}catch{return!0}},s=a=>{let c=r[a]?.fieldsToRemove?.();return Array.isArray(c)?c:void 0};return o("comment")&&(i.comment={fieldsToRemove:s("comment")}),o("user")&&(i.user=!0),o("reaction")&&(i.reaction={fieldsToRemove:s("reaction")}),o("recorder")&&(i.recorder={fieldsToRemove:s("recorder")}),o("activity")&&(i.activity={fieldsToRemove:s("activity")}),o("attachment")&&(i.attachment=!0),vR(i)?i:null}applySelfHostingTelemetryRule(r,i){try{let o=this.resolveSelfHostingTelemetryState();return o?XV(r,o,{kind:i}):r}catch(o){return this.selfHostingTelemetryDropReported||(this.selfHostingTelemetryDropReported=!0,console.warn("Velt [selfHosted]: an analytics event was dropped because the self-hosting telemetry filter failed (reported once per session). ",o)),null}}setUserService(r){try{this.userService=r}catch(i){M.catch("Error in AnalyticsService setUserService: ",i)}}identifyUser(r,i,o={}){try{this.userId=r;let s=typeof i=="object"?JSON.parse(JSON.stringify(i)):i;this.userService?.userResolverConfigured?.()&&s?.userId&&(s={userId:s.userId}),this.user=s;let a=this.defaultProperties?this.defaultProperties.apiKey:null;if(qt.production||qt.staging){let c=Date.now(),l={userId:r,clientUserId:this.user?.userId,traits:Ee(B({},s),{apiKey:a,forceReset:o?.forceReset,eventTimestamp:c}),properties:Ee(B({},this.defaultProperties),{eventTimestamp:c}),sf:this.sf,context:this.getContext(),eventTimestamp:c};this.setAnalytics("identify",l)}if(this.userId&&this.draftEvents?.length){let c=this.draftEvents?.slice();this.draftEvents=[],c?.forEach(l=>{l.type==="track"&&l?.data?.eventName&&this.trackEvent(l.data.eventName,l.data.properties,l.data.mergeDefaultProperties,l.data.userId,l.data.clientUserId)})}}catch(s){M.catch("Error in AnalyticsService identifyUser: ",s)}}trackPage(r,i="",o={}){try{if((qt.production||qt.staging)&&this.userId){let s={userId:this.userId,clientUserId:this.user?.userId,name:r,properties:o,sf:this.sf,context:this.getContext()};this.setAnalytics("page",s)}}catch(s){M.catch("Error in AnalyticsService trackPage: ",s)}}trackEvent(c){return y(this,arguments,function*(r,i={},o=!0,s,a){try{if(this.sf&&AU.includes(r))return Promise.resolve();if(qt.production||qt.staging)if(this.userId||s){if(this.eventRateLimitCache[r]?.blockedForSession)return Promise.resolve();let l=Date.now();if(this.eventRateLimitCache[r]&&l-this.eventRateLimitCache[r].timestamp<this.TIME_WINDOW_MS){if(this.eventRateLimitCache[r].count>=this.EVENT_LIMIT){if(!this.eventRateLimitCache[r].rateLimitExceededEventTriggered){this.eventRateLimitCache[r].rateLimitExceededEventTriggered=!0,this.eventRateLimitCache[r].blockedForSession=!0;let d=B({eventName:r},i||{});this.triggerTrackEvent(St.Events.Core.SDK_EVENT_RATE_LIMIT_EXCEEDED,d,o,s,a)}return Promise.resolve()}this.eventRateLimitCache[r].count++}else this.eventRateLimitCache[r]={count:1,timestamp:l,rateLimitExceededEventTriggered:!1,blockedForSession:!1};return this.triggerTrackEvent(r,i,o,s,a)}else return i?.eventTimestamp||(i.eventTimestamp=Date.now()),this.draftEvents.push({type:"track",data:{eventName:r,properties:i,mergeDefaultProperties:o,userId:s,clientUserId:a}}),Promise.resolve();return Promise.resolve()}catch(l){return M.catch("Error in AnalyticsService trackEvent: ",l),Promise.resolve()}})}triggerTrackEvent(c){return y(this,arguments,function*(r,i={},o=!0,s,a){try{o&&(i||(i={}),i=B(B({},i),this.defaultProperties));let l;if(i?.annotationId){let h=i.annotationId;if(!l&&this.commentService){let f=this.commentService.getAnnotationById(h);f?.metadata&&(l=f.metadata),f?.targetElementId&&(i.targetElementId=f.targetElementId);let g=this.commentService.getMultiThreadAnnotationById(h);g?.metadata&&(l=g.metadata),g?.targetElementId&&(i.targetElementId=g.targetElementId)}if(!l){let f=this.serviceBook.get(hT)?.getAnnotationById(h);f?.metadata&&(l=f.metadata)}if(!l&&this.reactionService){let f=this.reactionService.getAnnotationById(h);f?.metadata&&(l=f.metadata),f?.targetElementId&&(i.targetElementId=f.targetElementId)}if(!l&&this.areaService){let f=this.areaService.getAnnotationById(h);f?.metadata&&(l=f.metadata)}}if(l&&typeof l=="object"&&(i=B(B({},i),l)),i&&typeof i=="object"&&(i=Ee(B({},i),{userId:this.userId||s,clientUserId:this.user?.userId||a}),i?.eventTimestamp||(i.eventTimestamp=Date.now()),i?.sessionTabId||(i.sessionTabId=this.domService?.getTabId()),this.liveStateSyncEvents.includes(r))){let h=this.liveStateService?.getSemStats();h&&!i?.semStats&&(i.semStats=h)}let d={userId:this.userId||s,clientUserId:this.user?.userId||a,event:r,properties:i,sf:this.sf,context:this.getContext(),eventTimestamp:i?.eventTimestamp};return this.setAnalytics("track",d)}catch(l){return M.catch("Error in AnalyticsService triggerTrackEvent: ",l),Promise.resolve()}})}setAnalytics(r,i){return y(this,null,function*(){try{let o=this.applySelfHostingTelemetryRule(i,r);return o===null?Promise.resolve():(i=o,navigator.onLine?new Promise((a,c)=>{this.analyticsQueue.push({type:r,body:i,resolve:a,reject:c}),this.analyticsQueue.length>=this.MAX_BATCH_SIZE?this.flushAnalyticsQueue():this.scheduleBatchFlush()}).catch(()=>{}):void 0)}catch(o){return M.catch("Error in AnalyticsService setAnalytics: ",o),Promise.resolve()}})}scheduleBatchFlush(){try{this.batchTimer||(this.batchTimer=setTimeout(()=>{this.batchTimer=null,this.flushAnalyticsQueue()},this.BATCH_WINDOW_MS))}catch(r){M.catch("Error in AnalyticsService scheduleBatchFlush: ",r)}}flushAnalyticsQueue(){return y(this,null,function*(){try{if(this.batchTimer&&(clearTimeout(this.batchTimer),this.batchTimer=null),this.analyticsQueue.length===0||!navigator.onLine)return;let r=[...this.analyticsQueue];this.analyticsQueue=[];try{let i=od({url:this.endpointsService.getCloudFunctionUrl("sa"),apiProxyDomain:this.configService?.getApiProxyDomain()});if(Pc(i)){this.selfHostedAnalyticsSkipReported||(this.selfHostedAnalyticsSkipReported=!0,M.log("Velt [selfHosted]: analytics telemetry is disabled on this deployment (the `sa` endpoint resolves to the inert self-hosted sentinel). Events are dropped locally with zero egress.")),r.forEach(a=>{try{a.resolve&&a.resolve()}catch(c){M.warn("Error resolving analytics promise: ",c)}});return}let o=pd(this.functions,i,{timeout:1200*1e3}),s=r.map(a=>({type:a.type,data:a.body}));try{yield o({type:"batch",data:s}),r.forEach(a=>{try{a.resolve&&a.resolve()}catch(c){M.warn("Error resolving analytics promise: ",c)}})}catch(a){M.warn("Error in AnalyticsService batch flush: ",a),r.forEach(c=>{try{c.reject&&c.reject(a)}catch(l){M.warn("Error rejecting analytics promise: ",l)}})}}catch(i){M.catch("Error in AnalyticsService flushAnalyticsQueue: ",i),r.forEach(o=>{try{o.reject&&o.reject(i)}catch(s){M.warn("Error rejecting analytics promise: ",s)}})}}catch(r){M.catch("Error in AnalyticsService flushAnalyticsQueue: ",r)}})}trackAuthenticatedEvent(r,i={},o=!0){try{this.authService?.getUser$&&typeof this.authService?.getUser$()?.subscribe=="function"&&(this.authService.getUser()?this.trackEvent(r,i,o):((!i||typeof i!="object")&&(i={}),i?.eventTimestamp||(i.eventTimestamp=Date.now()),this.authService?.getUser$()?.pipe(mn(s=>!!s),En(1))?.subscribe(()=>{this.trackEvent(r,i,o)})))}catch(s){M.catch("Error in AnalyticsService trackAuthenticatedEvent: ",s)}}getContext(){try{let r={},i=xV();return r.os={name:i?.deviceInfo?.osName,version:i?.deviceInfo?.osVersion},r.page={path:i?.path,title:i?.title,url:i?.url},r.screen={height:i?.deviceInfo?.screenHeight,width:i?.deviceInfo?.screenWidth},r.app={name:i?.deviceInfo?.browserName,version:i?.deviceInfo?.browserVersion},r.device={type:i?.deviceInfo?.deviceType},r.timezone=$V(),r.userAgent=i?.deviceInfo?.userAgent,r}catch(r){M.catch("Error in AnalyticsService getContext: ",r)}}};e.\u0275fac=function(i){return new(i||e)($(Ho),$(mT))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var bt=(()=>{let e=class e{get debugMode(){return OV()}get debugContextMode(){return MV()}get logsEnabled(){return this.logsEnabled$.value}constructor(r){this.analyticsService=r,this.logsEnabled$=new ie(!0),this.log("%c[WB] Creating SERVICE LoggingService","color: blue;")}enableLogs(){try{if(this.logsEnabled$.value===!0)return;this.logsEnabled$.next(!0)}catch(r){this.catch("Error in LoggingService enableLogs: ",r)}}disableLogs(){try{if(this.logsEnabled$.value===!1)return;this.logsEnabled$.next(!1)}catch(r){this.catch("Error in LoggingService disableLogs: ",r)}}log(r,...i){this.debugMode&&console.log(r,...i)}logContext(r,...i){this.debugContextMode&&console.log(r,...i)}warn(r,...i){this.debugMode&&console.warn(r,...i)}error(r,...i){this.debugMode&&console.error(r,...i)}debug(r,...i){this.debugMode&&console.debug(r,...i)}info(r,...i){this.debugMode&&console.info(r,...i)}catch(r,i,o,s=!1){try{let a=i?.message;if(this.logsEnabled$.value&&(a?.toLowerCase()?.includes("permission denied")||a?.toLowerCase()?.includes("permission_denied")||(i!==void 0?console.warn("Velt: ",r,i):console.warn("Velt: ",r))),!s){let c=typeof i?.message=="string"?i.message:typeof i=="string"?i:void 0;this.analyticsService.trackEvent(St.Events.Core.SDK_ERROR,B({sourceMethod:r,message:c||r,clientUserId:this.analyticsService?.user?.userId,snippylyUserId:this.analyticsService?.user?.userSnippylyId,source:"sdk"},o||{}))}}catch{}}catchResolverFailure(r,i,o){try{this.logsEnabled$.value&&(i!==void 0?console.warn("Velt: ",r,i):console.warn("Velt: ",r));let s=typeof i?.statusCode=="number"?i.statusCode:void 0;this.analyticsService.trackEvent(St.Events.Core.SDK_ERROR,B(Ee(B({sourceMethod:r,message:`${r} ${YV(i)}`},s!==void 0?{statusCode:s}:{}),{clientUserId:this.analyticsService?.user?.userId,snippylyUserId:this.analyticsService?.user?.userSnippylyId,source:"sdk"}),o||{}))}catch{}}};e.\u0275fac=function(i){return new(i||e)($(zs))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();function wp(t){try{if(typeof t!="string"||!t)return null;let e=t.split(".");if(e.length<2)return null;let n=e[1].replace(/-/g,"+").replace(/_/g,"/");n+="=".repeat((4-n.length%4)%4);let i=JSON.parse(atob(n))?.exp;return typeof i!="number"||!Number.isFinite(i)||i<=0?null:i*1e3}catch{return null}}function $G(t,e){try{if(t===null||!Number.isFinite(e))return null;let n=t-e;if(n<=0)return null;if(n<=5e3)return 1e3;let r=Math.min(Math.max(n*.2,3e4),3e5);return Math.max(n-r,1e3)}catch{return null}}var HG=3e4,nne=16*6e4;function WG(t,e,n){if(t!==null&&Number.isFinite(e)&&t>e)return HG;let r=Number.isFinite(n)&&n>=1?Math.floor(n):1;return Math.min(HG*2**Math.min(r-1,30),nne)}function wN(t,e){let n=wp(t);return n===null?!0:n-e<=0}var uy=[],zG=new Set,qs={pings:0,pongs:0,lastPongAtMs:0};function mke(t){try{t==="ping"?qs.pings++:(qs.pongs++,qs.lastPongAtMs=Date.now())}catch{}}function Wn(t,e){try{for(uy.push({t:Date.now(),kind:t,detail:e});uy.length>60;)uy.shift()}catch{}}function qG(t){return!Number.isFinite(t)||t<0?"?":t<1e3?`${Math.round(t)}ms`:t<6e4?`${Math.round(t/1e3)}s`:`${Math.floor(t/6e4)}m${String(Math.round(t%6e4/1e3)).padStart(2,"0")}s`}function Eke(t,e,n){try{let r=n??t;if(zG.has(r))return;zG.add(r);let i=Date.now(),o=uy.map(a=>` -${qG(i-a.t).padStart(7)} ${a.kind}${a.detail?" "+a.detail:""}`),s=qs.pings?` Heartbeat: ${qs.pings} sent, ${qs.pongs} answered${qs.lastPongAtMs?`, last answer ${qG(i-qs.lastPongAtMs)} ago`:", NONE answered"}
140
+ `)})}var vZ={error:"UNKNOWN_ERROR"};function SZ(t){return cd.encodeString(JSON.stringify(t),!1)}function XR(t,e=!1,n=!1){return y(this,null,function*(){let r=t.app;UB(r);let i=li(r),o=i.token,s;if(o&&!Ip(o)&&(i.token=void 0,o=void 0),!o){let l=yield i.cachedTokenPromise;l&&(Ip(l)?o=l:yield zR(r,void 0))}if(!e&&o&&Ip(o))return{token:o.token};let a=!1;if(GB())try{i.exchangeTokenPromise||(i.exchangeTokenPromise=VB(BB(r,yield jB()),t.heartbeatServiceProvider).finally(()=>{i.exchangeTokenPromise=void 0}),a=!0);let l=yield i.exchangeTokenPromise;return yield zR(r,l),i.token=l,{token:l.token}}catch(l){return l.code==="appCheck/throttled"||l.code==="appCheck/initial-throttle"?yp.warn(l.message):n&&yp.error(l),qR(l)}try{i.exchangeTokenPromise||(i.exchangeTokenPromise=i.provider.getToken().finally(()=>{i.exchangeTokenPromise=void 0}),a=!0),o=yield li(r).exchangeTokenPromise}catch(l){l.code==="appCheck/throttled"||l.code==="appCheck/initial-throttle"?yp.warn(l.message):n&&yp.error(l),s=l}let c;return o?s?Ip(o)?c={token:o.token,internalError:s}:c=qR(s):(c={token:o.token},i.token=o,yield zR(r,o)):c=qR(s),a&&RZ(r,c),c})}function AZ(t){return y(this,null,function*(){let e=t.app;UB(e);let{provider:n}=li(e);if(GB()){let r=yield jB(),{token:i}=yield VB(BB(e,r),t.heartbeatServiceProvider);return{token:i}}else{let{token:r}=yield n.getToken();return{token:r}}})}function CZ(t,e,n,r){let{app:i}=t,o=li(i),s={next:n,error:r,type:e};if(o.tokenObservers=[...o.tokenObservers,s],o.token&&Ip(o.token)){let a=o.token;Promise.resolve().then(()=>{n({token:a.token}),xB(t)}).catch(()=>{})}o.cachedTokenPromise.then(()=>xB(t))}function HB(t,e){let n=li(t),r=n.tokenObservers.filter(i=>i.next!==e);r.length===0&&n.tokenRefresher&&n.tokenRefresher.isRunning()&&n.tokenRefresher.stop(),n.tokenObservers=r}function xB(t){let{app:e}=t,n=li(e),r=n.tokenRefresher;r||(r=DZ(t),n.tokenRefresher=r),!r.isRunning()&&n.isTokenAutoRefreshEnabled&&r.start()}function DZ(t){let{app:e}=t;return new KR(()=>y(null,null,function*(){let n=li(e),r;if(n.token?r=yield XR(t,!0):r=yield XR(t),r.error)throw r.error;if(r.internalError)throw r.internalError}),()=>!0,()=>{let n=li(e);if(n.token){let r=n.token.issuedAtTimeMillis+(n.token.expireTimeMillis-n.token.issuedAtTimeMillis)*.5+3e5,i=n.token.expireTimeMillis-300*1e3;return r=Math.min(r,i),Math.max(0,r-Date.now())}else return 0},PB.RETRIAL_MIN_WAIT,PB.RETRIAL_MAX_WAIT)}function RZ(t,e){let n=li(t).tokenObservers;for(let r of n)try{r.type==="EXTERNAL"&&e.error!=null?r.error(e.error):r.next(e)}catch{}}function Ip(t){return t.expireTimeMillis-Date.now()>0}function qR(t){return{token:SZ(vZ),error:t}}var QR=class{constructor(e,n){this.app=e,this.heartbeatServiceProvider=n}_delete(){let{tokenObservers:e}=li(this.app);for(let n of e)HB(this.app,n.next);return Promise.resolve()}};function NZ(t,e){return new QR(t,e)}function wZ(t){return{getToken:e=>XR(t,e),getLimitedUseToken:()=>AZ(t),addTokenListener:e=>CZ(t,"INTERNAL",e),removeTokenListener:e=>HB(t.app,e)}}var bZ="@firebase/app-check",OZ="0.10.1";var MZ="app-check",kB="app-check-internal";function LZ(){$n(new Xt(MZ,t=>{let e=t.getProvider("app").getImmediate(),n=t.getProvider("heartbeat");return NZ(e,n)},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((t,e,n)=>{t.getProvider(kB).initialize()})),$n(new Xt(kB,t=>{let e=t.getProvider("app-check").getImmediate();return wZ(e)},"PUBLIC").setInstantiationMode("EXPLICIT")),Ge(bZ,OZ)}LZ();var PZ="app-check";var Hs=class{constructor(){return Go(PZ)}};var xZ=["localhost","0.0.0.0","127.0.0.1"],JLe=typeof window<"u"&&xZ.includes(window.location.hostname);function eG(){return{"dependent-sdk-initialized-before-auth":"Another Firebase SDK was initialized and is trying to use Auth before Auth is initialized. Please be sure to call `initializeAuth` or `getAuth` before starting any other Firebase SDK."}}var tG=eG,nG=new ii("auth","Firebase",eG());var zT=new Br("@firebase/auth");function kZ(t,...e){zT.logLevel<=Re.WARN&&zT.warn(`Auth (${Bs}): ${t}`,...e)}function WT(t,...e){zT.logLevel<=Re.ERROR&&zT.error(`Auth (${Bs}): ${t}`,...e)}function qT(t,...e){throw hN(t,...e)}function dN(t,...e){return hN(t,...e)}function rG(t,e,n){let r=Object.assign(Object.assign({},tG()),{[e]:n});return new ii("auth","Firebase",r).create(e,{appName:t.name})}function vp(t){return rG(t,"operation-not-supported-in-this-environment","Operations that alter the current user are not supported in conjunction with FirebaseServerApp")}function hN(t,...e){if(typeof t!="string"){let n=e[0],r=[...e.slice(1)];return r[0]&&(r[0].appName=t.name),t._errorFactory.create(n,...r)}return nG.create(t,...e)}function je(t,e,...n){if(!t)throw hN(e,...n)}function Sp(t){let e="INTERNAL ASSERTION FAILED: "+t;throw WT(e),new Error(e)}function KT(t,e){t||Sp(e)}function FZ(){return $B()==="http:"||$B()==="https:"}function $B(){var t;return typeof self<"u"&&((t=self.location)===null||t===void 0?void 0:t.protocol)||null}function UZ(){return typeof navigator<"u"&&navigator&&"onLine"in navigator&&typeof navigator.onLine=="boolean"&&(FZ()||aB()||"connection"in navigator)?navigator.onLine:!0}function VZ(){if(typeof navigator>"u")return null;let t=navigator;return t.languages&&t.languages[0]||t.language||null}var Gc=class{constructor(e,n){this.shortDelay=e,this.longDelay=n,KT(n>e,"Short delay should be less than long delay!"),this.isMobile=hp()||UT()}get(){return UZ()?this.isMobile?this.longDelay:this.shortDelay:Math.min(5e3,this.shortDelay)}};function BZ(t,e){KT(t.emulator,"Emulator should always be set here");let{url:n}=t.emulator;return e?`${n}${e.startsWith("/")?e.slice(1):e}`:n}var YT=class{static initialize(e,n,r){this.fetchImpl=e,n&&(this.headersImpl=n),r&&(this.responseImpl=r)}static fetch(){if(this.fetchImpl)return this.fetchImpl;if(typeof self<"u"&&"fetch"in self)return self.fetch;if(typeof globalThis<"u"&&globalThis.fetch)return globalThis.fetch;if(typeof fetch<"u")return fetch;Sp("Could not find fetch implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}static headers(){if(this.headersImpl)return this.headersImpl;if(typeof self<"u"&&"Headers"in self)return self.Headers;if(typeof globalThis<"u"&&globalThis.Headers)return globalThis.Headers;if(typeof Headers<"u")return Headers;Sp("Could not find Headers implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}static response(){if(this.responseImpl)return this.responseImpl;if(typeof self<"u"&&"Response"in self)return self.Response;if(typeof globalThis<"u"&&globalThis.Response)return globalThis.Response;if(typeof Response<"u")return Response;Sp("Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}};var GZ={CREDENTIAL_MISMATCH:"custom-token-mismatch",MISSING_CUSTOM_TOKEN:"internal-error",INVALID_IDENTIFIER:"invalid-email",MISSING_CONTINUE_URI:"internal-error",INVALID_PASSWORD:"wrong-password",MISSING_PASSWORD:"missing-password",INVALID_LOGIN_CREDENTIALS:"invalid-credential",EMAIL_EXISTS:"email-already-in-use",PASSWORD_LOGIN_DISABLED:"operation-not-allowed",INVALID_IDP_RESPONSE:"invalid-credential",INVALID_PENDING_TOKEN:"invalid-credential",FEDERATED_USER_ID_ALREADY_LINKED:"credential-already-in-use",MISSING_REQ_TYPE:"internal-error",EMAIL_NOT_FOUND:"user-not-found",RESET_PASSWORD_EXCEED_LIMIT:"too-many-requests",EXPIRED_OOB_CODE:"expired-action-code",INVALID_OOB_CODE:"invalid-action-code",MISSING_OOB_CODE:"internal-error",CREDENTIAL_TOO_OLD_LOGIN_AGAIN:"requires-recent-login",INVALID_ID_TOKEN:"invalid-user-token",TOKEN_EXPIRED:"user-token-expired",USER_NOT_FOUND:"user-token-expired",TOO_MANY_ATTEMPTS_TRY_LATER:"too-many-requests",PASSWORD_DOES_NOT_MEET_REQUIREMENTS:"password-does-not-meet-requirements",INVALID_CODE:"invalid-verification-code",INVALID_SESSION_INFO:"invalid-verification-id",INVALID_TEMPORARY_PROOF:"invalid-credential",MISSING_SESSION_INFO:"missing-verification-id",SESSION_EXPIRED:"code-expired",MISSING_ANDROID_PACKAGE_NAME:"missing-android-pkg-name",UNAUTHORIZED_DOMAIN:"unauthorized-continue-uri",INVALID_OAUTH_CLIENT_ID:"invalid-oauth-client-id",ADMIN_ONLY_OPERATION:"admin-restricted-operation",INVALID_MFA_PENDING_CREDENTIAL:"invalid-multi-factor-session",MFA_ENROLLMENT_NOT_FOUND:"multi-factor-info-not-found",MISSING_MFA_ENROLLMENT_ID:"missing-multi-factor-info",MISSING_MFA_PENDING_CREDENTIAL:"missing-multi-factor-session",SECOND_FACTOR_EXISTS:"second-factor-already-in-use",SECOND_FACTOR_LIMIT_EXCEEDED:"maximum-second-factor-count-exceeded",BLOCKING_FUNCTION_ERROR_RESPONSE:"internal-error",RECAPTCHA_NOT_ENABLED:"recaptcha-not-enabled",MISSING_RECAPTCHA_TOKEN:"missing-recaptcha-token",INVALID_RECAPTCHA_TOKEN:"invalid-recaptcha-token",INVALID_RECAPTCHA_ACTION:"invalid-recaptcha-action",MISSING_CLIENT_TYPE:"missing-client-type",MISSING_RECAPTCHA_VERSION:"missing-recaptcha-version",INVALID_RECAPTCHA_VERSION:"invalid-recaptcha-version",INVALID_REQ_TYPE:"invalid-req-type"};var jZ=["/v1/accounts:signInWithCustomToken","/v1/accounts:signInWithEmailLink","/v1/accounts:signInWithIdp","/v1/accounts:signInWithPassword","/v1/accounts:signInWithPhoneNumber","/v1/token"],HZ=new Gc(3e4,6e4);function fN(t,e){return t.tenantId&&!e.tenantId?Object.assign(Object.assign({},e),{tenantId:t.tenantId}):e}function Rp(o,s,a,c){return y(this,arguments,function*(t,e,n,r,i={}){return iG(t,i,()=>y(null,null,function*(){let l={},d={};r&&(e==="GET"?d=r:l={body:JSON.stringify(r)});let h=gp(Object.assign({key:t.config.apiKey},d)).slice(1),f=yield t._getAdditionalHeaders();f["Content-Type"]="application/json",t.languageCode&&(f["X-Firebase-Locale"]=t.languageCode);let g=Object.assign({method:e,headers:f},l);return sB()||(g.referrerPolicy="no-referrer"),t.emulatorConfig&&_r(t.emulatorConfig.host)&&(g.credentials="include"),YT.fetch()(yield oG(t,t.config.apiHost,n,h),g)}))})}function iG(t,e,n){return y(this,null,function*(){t._canInitEmulator=!1;let r=Object.assign(Object.assign({},GZ),e);try{let i=new eN(t),o=yield Promise.race([n(),i.promise]);i.clearNetworkTimeout();let s=yield o.json();if("needConfirmation"in s)throw $T(t,"account-exists-with-different-credential",s);if(o.ok&&!("errorMessage"in s))return s;{let a=o.ok?s.errorMessage:s.error.message,[c,l]=a.split(" : ");if(c==="FEDERATED_USER_ID_ALREADY_LINKED")throw $T(t,"credential-already-in-use",s);if(c==="EMAIL_EXISTS")throw $T(t,"email-already-in-use",s);if(c==="USER_DISABLED")throw $T(t,"user-disabled",s);let d=r[c]||c.toLowerCase().replace(/[_\s]+/g,"-");if(l)throw rG(t,d,l);qT(t,d)}}catch(i){if(i instanceof Jn)throw i;qT(t,"network-request-failed",{message:String(i)})}})}function $Z(o,s,a,c){return y(this,arguments,function*(t,e,n,r,i={}){let l=yield Rp(t,e,n,r,i);return"mfaPendingCredential"in l&&qT(t,"multi-factor-auth-required",{_serverResponse:l}),l})}function oG(t,e,n,r){return y(this,null,function*(){let i=`${e}${n}?${r}`,o=t,s=o.config.emulator?BZ(t.config,i):`${t.config.apiScheme}://${i}`;return jZ.includes(n)&&(yield o._persistenceManagerAvailable,o._getPersistenceType()==="COOKIE")?o._getPersistence()._getFinalTarget(s).toString():s})}var eN=class{clearNetworkTimeout(){clearTimeout(this.timer)}constructor(e){this.auth=e,this.timer=null,this.promise=new Promise((n,r)=>{this.timer=setTimeout(()=>r(dN(this.auth,"network-request-failed")),HZ.get())})}};function $T(t,e,n){let r={appName:t.name};n.email&&(r.email=n.email),n.phoneNumber&&(r.phoneNumber=n.phoneNumber);let i=dN(t,e,r);return i.customData._tokenResponse=n,i}function WZ(t,e){return y(this,null,function*(){return Rp(t,"POST","/v1/accounts:delete",e)})}function XT(t,e){return y(this,null,function*(){return Rp(t,"POST","/v1/accounts:lookup",e)})}function Ap(t){if(t)try{let e=new Date(Number(t));if(!isNaN(e.getTime()))return e.toUTCString()}catch{}}function ry(t,e=!1){return y(this,null,function*(){let n=Me(t),r=yield n.getIdToken(e),i=sG(r);je(i&&i.exp&&i.auth_time&&i.iat,n.auth,"internal-error");let o=typeof i.firebase=="object"?i.firebase:void 0,s=o?.sign_in_provider;return{claims:i,token:r,authTime:Ap(JR(i.auth_time)),issuedAtTime:Ap(JR(i.iat)),expirationTime:Ap(JR(i.exp)),signInProvider:s||null,signInSecondFactor:o?.sign_in_second_factor||null}})}function JR(t){return Number(t)*1e3}function sG(t){let[e,n,r]=t.split(".");if(e===void 0||n===void 0||r===void 0)return WT("JWT malformed, contained fewer than 3 sections"),null;try{let i=sd(n);return i?JSON.parse(i):(WT("Failed to decode base64 JWT payload"),null)}catch(i){return WT("Caught error parsing JWT payload as JSON",i?.toString()),null}}function WB(t){let e=sG(t);return je(e,"internal-error"),je(typeof e.exp<"u","internal-error"),je(typeof e.iat<"u","internal-error"),Number(e.exp)-Number(e.iat)}function tN(t,e,n=!1){return y(this,null,function*(){if(n)return e;try{return yield e}catch(r){throw r instanceof Jn&&zZ(r)&&t.auth.currentUser===t&&(yield t.auth.signOut()),r}})}function zZ({code:t}){return t==="auth/user-disabled"||t==="auth/user-token-expired"}var nN=class{constructor(e){this.user=e,this.isRunning=!1,this.timerId=null,this.errorBackoff=3e4}_start(){this.isRunning||(this.isRunning=!0,this.schedule())}_stop(){this.isRunning&&(this.isRunning=!1,this.timerId!==null&&clearTimeout(this.timerId))}getInterval(e){var n;if(e){let r=this.errorBackoff;return this.errorBackoff=Math.min(this.errorBackoff*2,96e4),r}else{this.errorBackoff=3e4;let i=((n=this.user.stsTokenManager.expirationTime)!==null&&n!==void 0?n:0)-Date.now()-3e5;return Math.max(0,i)}}schedule(e=!1){if(!this.isRunning)return;let n=this.getInterval(e);this.timerId=setTimeout(()=>y(this,null,function*(){yield this.iteration()}),n)}iteration(){return y(this,null,function*(){try{yield this.user.getIdToken(!0)}catch(e){e?.code==="auth/network-request-failed"&&this.schedule(!0);return}this.schedule()})}};var Dp=class{constructor(e,n){this.createdAt=e,this.lastLoginAt=n,this._initializeTime()}_initializeTime(){this.lastSignInTime=Ap(this.lastLoginAt),this.creationTime=Ap(this.createdAt)}_copy(e){this.createdAt=e.createdAt,this.lastLoginAt=e.lastLoginAt,this._initializeTime()}toJSON(){return{createdAt:this.createdAt,lastLoginAt:this.lastLoginAt}}};function QT(t){return y(this,null,function*(){var e;let n=t.auth,r=yield t.getIdToken(),i=yield tN(t,XT(n,{idToken:r}));je(i?.users.length,n,"internal-error");let o=i.users[0];t._notifyReloadListener(o);let s=!((e=o.providerUserInfo)===null||e===void 0)&&e.length?aG(o.providerUserInfo):[],a=qZ(t.providerData,s),c=t.isAnonymous,l=!(t.email&&o.passwordHash)&&!a?.length,d=c?l:!1,h={uid:o.localId,displayName:o.displayName||null,photoURL:o.photoUrl||null,email:o.email||null,emailVerified:o.emailVerified||!1,phoneNumber:o.phoneNumber||null,tenantId:o.tenantId||null,providerData:a,metadata:new Dp(o.createdAt,o.lastLoginAt),isAnonymous:d};Object.assign(t,h)})}function pN(t){return y(this,null,function*(){let e=Me(t);yield QT(e),yield e.auth._persistUserIfCurrent(e),e.auth._notifyListenersIfCurrent(e)})}function qZ(t,e){return[...t.filter(r=>!e.some(i=>i.providerId===r.providerId)),...e]}function aG(t){return t.map(e=>{var{providerId:n}=e,r=nS(e,["providerId"]);return{providerId:n,uid:r.rawId||"",displayName:r.displayName||null,email:r.email||null,phoneNumber:r.phoneNumber||null,photoURL:r.photoUrl||null}})}function KZ(t,e){return y(this,null,function*(){let n=yield iG(t,{},()=>y(null,null,function*(){let r=gp({grant_type:"refresh_token",refresh_token:e}).slice(1),{tokenApiHost:i,apiKey:o}=t.config,s=yield oG(t,i,"/v1/token",`key=${o}`),a=yield t._getAdditionalHeaders();a["Content-Type"]="application/x-www-form-urlencoded";let c={method:"POST",headers:a,body:r};return t.emulatorConfig&&_r(t.emulatorConfig.host)&&(c.credentials="include"),YT.fetch()(s,c)}));return{accessToken:n.access_token,expiresIn:n.expires_in,refreshToken:n.refresh_token}})}function YZ(t,e){return y(this,null,function*(){return Rp(t,"POST","/v2/accounts:revokeToken",fN(t,e))})}var Cp=class t{constructor(){this.refreshToken=null,this.accessToken=null,this.expirationTime=null}get isExpired(){return!this.expirationTime||Date.now()>this.expirationTime-3e4}updateFromServerResponse(e){je(e.idToken,"internal-error"),je(typeof e.idToken<"u","internal-error"),je(typeof e.refreshToken<"u","internal-error");let n="expiresIn"in e&&typeof e.expiresIn<"u"?Number(e.expiresIn):WB(e.idToken);this.updateTokensAndExpiration(e.idToken,e.refreshToken,n)}updateFromIdToken(e){je(e.length!==0,"internal-error");let n=WB(e);this.updateTokensAndExpiration(e,null,n)}getToken(e,n=!1){return y(this,null,function*(){return!n&&this.accessToken&&!this.isExpired?this.accessToken:(je(this.refreshToken,e,"user-token-expired"),this.refreshToken?(yield this.refresh(e,this.refreshToken),this.accessToken):null)})}clearRefreshToken(){this.refreshToken=null}refresh(e,n){return y(this,null,function*(){let{accessToken:r,refreshToken:i,expiresIn:o}=yield KZ(e,n);this.updateTokensAndExpiration(r,i,Number(o))})}updateTokensAndExpiration(e,n,r){this.refreshToken=n||null,this.accessToken=e||null,this.expirationTime=Date.now()+r*1e3}static fromJSON(e,n){let{refreshToken:r,accessToken:i,expirationTime:o}=n,s=new t;return r&&(je(typeof r=="string","internal-error",{appName:e}),s.refreshToken=r),i&&(je(typeof i=="string","internal-error",{appName:e}),s.accessToken=i),o&&(je(typeof o=="number","internal-error",{appName:e}),s.expirationTime=o),s}toJSON(){return{refreshToken:this.refreshToken,accessToken:this.accessToken,expirationTime:this.expirationTime}}_assign(e){this.accessToken=e.accessToken,this.refreshToken=e.refreshToken,this.expirationTime=e.expirationTime}_clone(){return Object.assign(new t,this.toJSON())}_performRefresh(){return Sp("not implemented")}};function $s(t,e){je(typeof t=="string"||typeof t>"u","internal-error",{appName:e})}var Ws=class t{constructor(e){var{uid:n,auth:r,stsTokenManager:i}=e,o=nS(e,["uid","auth","stsTokenManager"]);this.providerId="firebase",this.proactiveRefresh=new nN(this),this.reloadUserInfo=null,this.reloadListener=null,this.uid=n,this.auth=r,this.stsTokenManager=i,this.accessToken=i.accessToken,this.displayName=o.displayName||null,this.email=o.email||null,this.emailVerified=o.emailVerified||!1,this.phoneNumber=o.phoneNumber||null,this.photoURL=o.photoURL||null,this.isAnonymous=o.isAnonymous||!1,this.tenantId=o.tenantId||null,this.providerData=o.providerData?[...o.providerData]:[],this.metadata=new Dp(o.createdAt||void 0,o.lastLoginAt||void 0)}getIdToken(e){return y(this,null,function*(){let n=yield tN(this,this.stsTokenManager.getToken(this.auth,e));return je(n,this.auth,"internal-error"),this.accessToken!==n&&(this.accessToken=n,yield this.auth._persistUserIfCurrent(this),this.auth._notifyListenersIfCurrent(this)),n})}getIdTokenResult(e){return ry(this,e)}reload(){return pN(this)}_assign(e){this!==e&&(je(this.uid===e.uid,this.auth,"internal-error"),this.displayName=e.displayName,this.photoURL=e.photoURL,this.email=e.email,this.emailVerified=e.emailVerified,this.phoneNumber=e.phoneNumber,this.isAnonymous=e.isAnonymous,this.tenantId=e.tenantId,this.providerData=e.providerData.map(n=>Object.assign({},n)),this.metadata._copy(e.metadata),this.stsTokenManager._assign(e.stsTokenManager))}_clone(e){let n=new t(Object.assign(Object.assign({},this),{auth:e,stsTokenManager:this.stsTokenManager._clone()}));return n.metadata._copy(this.metadata),n}_onReload(e){je(!this.reloadListener,this.auth,"internal-error"),this.reloadListener=e,this.reloadUserInfo&&(this._notifyReloadListener(this.reloadUserInfo),this.reloadUserInfo=null)}_notifyReloadListener(e){this.reloadListener?this.reloadListener(e):this.reloadUserInfo=e}_startProactiveRefresh(){this.proactiveRefresh._start()}_stopProactiveRefresh(){this.proactiveRefresh._stop()}_updateTokensIfNecessary(e,n=!1){return y(this,null,function*(){let r=!1;e.idToken&&e.idToken!==this.stsTokenManager.accessToken&&(this.stsTokenManager.updateFromServerResponse(e),r=!0),n&&(yield QT(this)),yield this.auth._persistUserIfCurrent(this),r&&this.auth._notifyListenersIfCurrent(this)})}delete(){return y(this,null,function*(){if(Zn(this.auth.app))return Promise.reject(vp(this.auth));let e=yield this.getIdToken();return yield tN(this,WZ(this.auth,{idToken:e})),this.stsTokenManager.clearRefreshToken(),this.auth.signOut()})}toJSON(){return Object.assign(Object.assign({uid:this.uid,email:this.email||void 0,emailVerified:this.emailVerified,displayName:this.displayName||void 0,isAnonymous:this.isAnonymous,photoURL:this.photoURL||void 0,phoneNumber:this.phoneNumber||void 0,tenantId:this.tenantId||void 0,providerData:this.providerData.map(e=>Object.assign({},e)),stsTokenManager:this.stsTokenManager.toJSON(),_redirectEventId:this._redirectEventId},this.metadata.toJSON()),{apiKey:this.auth.config.apiKey,appName:this.auth.name})}get refreshToken(){return this.stsTokenManager.refreshToken||""}static _fromJSON(e,n){var r,i,o,s,a,c,l,d;let h=(r=n.displayName)!==null&&r!==void 0?r:void 0,f=(i=n.email)!==null&&i!==void 0?i:void 0,g=(o=n.phoneNumber)!==null&&o!==void 0?o:void 0,E=(s=n.photoURL)!==null&&s!==void 0?s:void 0,I=(a=n.tenantId)!==null&&a!==void 0?a:void 0,S=(c=n._redirectEventId)!==null&&c!==void 0?c:void 0,L=(l=n.createdAt)!==null&&l!==void 0?l:void 0,V=(d=n.lastLoginAt)!==null&&d!==void 0?d:void 0,{uid:K,emailVerified:oe,isAnonymous:ge,providerData:te,stsTokenManager:C}=n;je(K&&C,e,"internal-error");let v=Cp.fromJSON(this.name,C);je(typeof K=="string",e,"internal-error"),$s(h,e.name),$s(f,e.name),je(typeof oe=="boolean",e,"internal-error"),je(typeof ge=="boolean",e,"internal-error"),$s(g,e.name),$s(E,e.name),$s(I,e.name),$s(S,e.name),$s(L,e.name),$s(V,e.name);let A=new t({uid:K,auth:e,email:f,emailVerified:oe,displayName:h,isAnonymous:ge,photoURL:E,phoneNumber:g,tenantId:I,stsTokenManager:v,createdAt:L,lastLoginAt:V});return te&&Array.isArray(te)&&(A.providerData=te.map(R=>Object.assign({},R))),S&&(A._redirectEventId=S),A}static _fromIdTokenResponse(e,n,r=!1){return y(this,null,function*(){let i=new Cp;i.updateFromServerResponse(n);let o=new t({uid:n.localId,auth:e,stsTokenManager:i,isAnonymous:r});return yield QT(o),o})}static _fromGetAccountInfoResponse(e,n,r){return y(this,null,function*(){let i=n.users[0];je(i.localId!==void 0,"internal-error");let o=i.providerUserInfo!==void 0?aG(i.providerUserInfo):[],s=!(i.email&&i.passwordHash)&&!o?.length,a=new Cp;a.updateFromIdToken(r);let c=new t({uid:i.localId,auth:e,stsTokenManager:a,isAnonymous:s}),l={uid:i.localId,displayName:i.displayName||null,photoURL:i.photoUrl||null,email:i.email||null,emailVerified:i.emailVerified||!1,phoneNumber:i.phoneNumber||null,tenantId:i.tenantId||null,providerData:o,metadata:new Dp(i.createdAt,i.lastLoginAt),isAnonymous:!(i.email&&i.passwordHash)&&!o?.length};return Object.assign(c,l),c})}};var zB=new Map;function Bc(t){KT(t instanceof Function,"Expected a class definition");let e=zB.get(t);return e?(KT(e instanceof t,"Instance stored in cache mismatched with class"),e):(e=new t,zB.set(t,e),e)}var XZ=(()=>{class t{constructor(){this.type="NONE",this.storage={}}_isAvailable(){return y(this,null,function*(){return!0})}_set(n,r){return y(this,null,function*(){this.storage[n]=r})}_get(n){return y(this,null,function*(){let r=this.storage[n];return r===void 0?null:r})}_remove(n){return y(this,null,function*(){delete this.storage[n]})}_addListener(n,r){}_removeListener(n,r){}}return t.type="NONE",t})(),rN=XZ;function ZR(t,e,n){return`firebase:${t}:${e}:${n}`}var JT=class t{constructor(e,n,r){this.persistence=e,this.auth=n,this.userKey=r;let{config:i,name:o}=this.auth;this.fullUserKey=ZR(this.userKey,i.apiKey,o),this.fullPersistenceKey=ZR("persistence",i.apiKey,o),this.boundEventHandler=n._onStorageEvent.bind(n),this.persistence._addListener(this.fullUserKey,this.boundEventHandler)}setCurrentUser(e){return this.persistence._set(this.fullUserKey,e.toJSON())}getCurrentUser(){return y(this,null,function*(){let e=yield this.persistence._get(this.fullUserKey);if(!e)return null;if(typeof e=="string"){let n=yield XT(this.auth,{idToken:e}).catch(()=>{});return n?Ws._fromGetAccountInfoResponse(this.auth,n,e):null}return Ws._fromJSON(this.auth,e)})}removeCurrentUser(){return this.persistence._remove(this.fullUserKey)}savePersistenceForRedirect(){return this.persistence._set(this.fullPersistenceKey,this.persistence.type)}setPersistence(e){return y(this,null,function*(){if(this.persistence===e)return;let n=yield this.getCurrentUser();if(yield this.removeCurrentUser(),this.persistence=e,n)return this.setCurrentUser(n)})}delete(){this.persistence._removeListener(this.fullUserKey,this.boundEventHandler)}static create(e,n,r="authUser"){return y(this,null,function*(){if(!n.length)return new t(Bc(rN),e,r);let i=(yield Promise.all(n.map(l=>y(null,null,function*(){if(yield l._isAvailable())return l})))).filter(l=>l),o=i[0]||Bc(rN),s=ZR(r,e.config.apiKey,e.name),a=null;for(let l of n)try{let d=yield l._get(s);if(d){let h;if(typeof d=="string"){let f=yield XT(e,{idToken:d}).catch(()=>{});if(!f)break;h=yield Ws._fromGetAccountInfoResponse(e,f,d)}else h=Ws._fromJSON(e,d);l!==o&&(a=h),o=l;break}}catch{}let c=i.filter(l=>l._shouldAllowMigration);return!o._shouldAllowMigration||!c.length?new t(o,e,r):(o=c[0],a&&(yield o._set(s,a.toJSON())),yield Promise.all(n.map(l=>y(null,null,function*(){if(l!==o)try{yield l._remove(s)}catch{}}))),new t(o,e,r))})}};function qB(t){let e=t.toLowerCase();if(e.includes("opera/")||e.includes("opr/")||e.includes("opios/"))return"Opera";if(cG(e))return"IEMobile";if(e.includes("msie")||e.includes("trident/"))return"IE";if(e.includes("edge/"))return"Edge";if(QZ(e))return"Firefox";if(e.includes("silk/"))return"Silk";if(uG(e))return"Blackberry";if(dG(e))return"Webos";if(JZ(e))return"Safari";if((e.includes("chrome/")||ZZ(e))&&!e.includes("edge/"))return"Chrome";if(lG(e))return"Android";{let n=/([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/,r=t.match(n);if(r?.length===2)return r[1]}return"Other"}function QZ(t=Yt()){return/firefox\//i.test(t)}function JZ(t=Yt()){let e=t.toLowerCase();return e.includes("safari/")&&!e.includes("chrome/")&&!e.includes("crios/")&&!e.includes("android")}function ZZ(t=Yt()){return/crios\//i.test(t)}function cG(t=Yt()){return/iemobile/i.test(t)}function lG(t=Yt()){return/android/i.test(t)}function uG(t=Yt()){return/blackberry/i.test(t)}function dG(t=Yt()){return/webos/i.test(t)}function eee(t=Yt()){return/iphone|ipad|ipod/i.test(t)||/macintosh/i.test(t)&&/mobile/i.test(t)}function tee(){return cB()&&document.documentMode===10}function nee(t=Yt()){return eee(t)||lG(t)||dG(t)||uG(t)||/windows phone/i.test(t)||cG(t)}function hG(t,e=[]){let n;switch(t){case"Browser":n=qB(Yt());break;case"Worker":n=`${qB(Yt())}-${t}`;break;default:n=t}let r=e.length?e.join(","):"FirebaseCore-web";return`${n}/JsCore/${Bs}/${r}`}var iN=class{constructor(e){this.auth=e,this.queue=[]}pushCallback(e,n){let r=o=>new Promise((s,a)=>{try{let c=e(o);s(c)}catch(c){a(c)}});r.onAbort=n,this.queue.push(r);let i=this.queue.length-1;return()=>{this.queue[i]=()=>Promise.resolve()}}runMiddleware(e){return y(this,null,function*(){if(this.auth.currentUser===e)return;let n=[];try{for(let r of this.queue)yield r(e),r.onAbort&&n.push(r.onAbort)}catch(r){n.reverse();for(let i of n)try{i()}catch{}throw this.auth._errorFactory.create("login-blocked",{originalMessage:r?.message})}})}};function ree(n){return y(this,arguments,function*(t,e={}){return Rp(t,"GET","/v2/passwordPolicy",fN(t,e))})}var iee=6,oN=class{constructor(e){var n,r,i,o;let s=e.customStrengthOptions;this.customStrengthOptions={},this.customStrengthOptions.minPasswordLength=(n=s.minPasswordLength)!==null&&n!==void 0?n:iee,s.maxPasswordLength&&(this.customStrengthOptions.maxPasswordLength=s.maxPasswordLength),s.containsLowercaseCharacter!==void 0&&(this.customStrengthOptions.containsLowercaseLetter=s.containsLowercaseCharacter),s.containsUppercaseCharacter!==void 0&&(this.customStrengthOptions.containsUppercaseLetter=s.containsUppercaseCharacter),s.containsNumericCharacter!==void 0&&(this.customStrengthOptions.containsNumericCharacter=s.containsNumericCharacter),s.containsNonAlphanumericCharacter!==void 0&&(this.customStrengthOptions.containsNonAlphanumericCharacter=s.containsNonAlphanumericCharacter),this.enforcementState=e.enforcementState,this.enforcementState==="ENFORCEMENT_STATE_UNSPECIFIED"&&(this.enforcementState="OFF"),this.allowedNonAlphanumericCharacters=(i=(r=e.allowedNonAlphanumericCharacters)===null||r===void 0?void 0:r.join(""))!==null&&i!==void 0?i:"",this.forceUpgradeOnSignin=(o=e.forceUpgradeOnSignin)!==null&&o!==void 0?o:!1,this.schemaVersion=e.schemaVersion}validatePassword(e){var n,r,i,o,s,a;let c={isValid:!0,passwordPolicy:this};return this.validatePasswordLengthOptions(e,c),this.validatePasswordCharacterOptions(e,c),c.isValid&&(c.isValid=(n=c.meetsMinPasswordLength)!==null&&n!==void 0?n:!0),c.isValid&&(c.isValid=(r=c.meetsMaxPasswordLength)!==null&&r!==void 0?r:!0),c.isValid&&(c.isValid=(i=c.containsLowercaseLetter)!==null&&i!==void 0?i:!0),c.isValid&&(c.isValid=(o=c.containsUppercaseLetter)!==null&&o!==void 0?o:!0),c.isValid&&(c.isValid=(s=c.containsNumericCharacter)!==null&&s!==void 0?s:!0),c.isValid&&(c.isValid=(a=c.containsNonAlphanumericCharacter)!==null&&a!==void 0?a:!0),c}validatePasswordLengthOptions(e,n){let r=this.customStrengthOptions.minPasswordLength,i=this.customStrengthOptions.maxPasswordLength;r&&(n.meetsMinPasswordLength=e.length>=r),i&&(n.meetsMaxPasswordLength=e.length<=i)}validatePasswordCharacterOptions(e,n){this.updatePasswordCharacterOptionsStatuses(n,!1,!1,!1,!1);let r;for(let i=0;i<e.length;i++)r=e.charAt(i),this.updatePasswordCharacterOptionsStatuses(n,r>="a"&&r<="z",r>="A"&&r<="Z",r>="0"&&r<="9",this.allowedNonAlphanumericCharacters.includes(r))}updatePasswordCharacterOptionsStatuses(e,n,r,i,o){this.customStrengthOptions.containsLowercaseLetter&&(e.containsLowercaseLetter||(e.containsLowercaseLetter=n)),this.customStrengthOptions.containsUppercaseLetter&&(e.containsUppercaseLetter||(e.containsUppercaseLetter=r)),this.customStrengthOptions.containsNumericCharacter&&(e.containsNumericCharacter||(e.containsNumericCharacter=i)),this.customStrengthOptions.containsNonAlphanumericCharacter&&(e.containsNonAlphanumericCharacter||(e.containsNonAlphanumericCharacter=o))}};var sN=class{constructor(e,n,r,i){this.app=e,this.heartbeatServiceProvider=n,this.appCheckServiceProvider=r,this.config=i,this.currentUser=null,this.emulatorConfig=null,this.operations=Promise.resolve(),this.authStateSubscription=new ZT(this),this.idTokenSubscription=new ZT(this),this.beforeStateQueue=new iN(this),this.redirectUser=null,this.isProactiveRefreshEnabled=!1,this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION=1,this._canInitEmulator=!0,this._isInitialized=!1,this._deleted=!1,this._initializationPromise=null,this._popupRedirectResolver=null,this._errorFactory=nG,this._agentRecaptchaConfig=null,this._tenantRecaptchaConfigs={},this._projectPasswordPolicy=null,this._tenantPasswordPolicies={},this._resolvePersistenceManagerAvailable=void 0,this.lastNotifiedUid=void 0,this.languageCode=null,this.tenantId=null,this.settings={appVerificationDisabledForTesting:!1},this.frameworks=[],this.name=e.name,this.clientVersion=i.sdkClientVersion,this._persistenceManagerAvailable=new Promise(o=>this._resolvePersistenceManagerAvailable=o)}_initializeWithPersistence(e,n){return n&&(this._popupRedirectResolver=Bc(n)),this._initializationPromise=this.queue(()=>y(this,null,function*(){var r,i,o;if(!this._deleted&&(this.persistenceManager=yield JT.create(this,e),(r=this._resolvePersistenceManagerAvailable)===null||r===void 0||r.call(this),!this._deleted)){if(!((i=this._popupRedirectResolver)===null||i===void 0)&&i._shouldInitProactively)try{yield this._popupRedirectResolver._initialize(this)}catch{}yield this.initializeCurrentUser(n),this.lastNotifiedUid=((o=this.currentUser)===null||o===void 0?void 0:o.uid)||null,!this._deleted&&(this._isInitialized=!0)}})),this._initializationPromise}_onStorageEvent(){return y(this,null,function*(){if(this._deleted)return;let e=yield this.assertedPersistence.getCurrentUser();if(!(!this.currentUser&&!e)){if(this.currentUser&&e&&this.currentUser.uid===e.uid){this._currentUser._assign(e),yield this.currentUser.getIdToken();return}yield this._updateCurrentUser(e,!0)}})}initializeCurrentUserFromIdToken(e){return y(this,null,function*(){try{let n=yield XT(this,{idToken:e}),r=yield Ws._fromGetAccountInfoResponse(this,n,e);yield this.directlySetCurrentUser(r)}catch(n){console.warn("FirebaseServerApp could not login user with provided authIdToken: ",n),yield this.directlySetCurrentUser(null)}})}initializeCurrentUser(e){return y(this,null,function*(){var n;if(Zn(this.app)){let s=this.app.settings.authIdToken;return s?new Promise(a=>{setTimeout(()=>this.initializeCurrentUserFromIdToken(s).then(a,a))}):this.directlySetCurrentUser(null)}let r=yield this.assertedPersistence.getCurrentUser(),i=r,o=!1;if(e&&this.config.authDomain){yield this.getOrInitRedirectPersistenceManager();let s=(n=this.redirectUser)===null||n===void 0?void 0:n._redirectEventId,a=i?._redirectEventId,c=yield this.tryRedirectSignIn(e);(!s||s===a)&&c?.user&&(i=c.user,o=!0)}if(!i)return this.directlySetCurrentUser(null);if(!i._redirectEventId){if(o)try{yield this.beforeStateQueue.runMiddleware(i)}catch(s){i=r,this._popupRedirectResolver._overrideRedirectResult(this,()=>Promise.reject(s))}return i?this.reloadAndSetCurrentUserOrClear(i):this.directlySetCurrentUser(null)}return je(this._popupRedirectResolver,this,"argument-error"),yield this.getOrInitRedirectPersistenceManager(),this.redirectUser&&this.redirectUser._redirectEventId===i._redirectEventId?this.directlySetCurrentUser(i):this.reloadAndSetCurrentUserOrClear(i)})}tryRedirectSignIn(e){return y(this,null,function*(){let n=null;try{n=yield this._popupRedirectResolver._completeRedirectFn(this,e,!0)}catch{yield this._setRedirectUser(null)}return n})}reloadAndSetCurrentUserOrClear(e){return y(this,null,function*(){try{yield QT(e)}catch(n){if(n?.code!=="auth/network-request-failed")return this.directlySetCurrentUser(null)}return this.directlySetCurrentUser(e)})}useDeviceLanguage(){this.languageCode=VZ()}_delete(){return y(this,null,function*(){this._deleted=!0})}updateCurrentUser(e){return y(this,null,function*(){if(Zn(this.app))return Promise.reject(vp(this));let n=e?Me(e):null;return n&&je(n.auth.config.apiKey===this.config.apiKey,this,"invalid-user-token"),this._updateCurrentUser(n&&n._clone(this))})}_updateCurrentUser(e,n=!1){return y(this,null,function*(){if(!this._deleted)return e&&je(this.tenantId===e.tenantId,this,"tenant-id-mismatch"),n||(yield this.beforeStateQueue.runMiddleware(e)),this.queue(()=>y(this,null,function*(){yield this.directlySetCurrentUser(e),this.notifyAuthListeners()}))})}signOut(){return y(this,null,function*(){return Zn(this.app)?Promise.reject(vp(this)):(yield this.beforeStateQueue.runMiddleware(null),(this.redirectPersistenceManager||this._popupRedirectResolver)&&(yield this._setRedirectUser(null)),this._updateCurrentUser(null,!0))})}setPersistence(e){return Zn(this.app)?Promise.reject(vp(this)):this.queue(()=>y(this,null,function*(){yield this.assertedPersistence.setPersistence(Bc(e))}))}_getRecaptchaConfig(){return this.tenantId==null?this._agentRecaptchaConfig:this._tenantRecaptchaConfigs[this.tenantId]}validatePassword(e){return y(this,null,function*(){this._getPasswordPolicyInternal()||(yield this._updatePasswordPolicy());let n=this._getPasswordPolicyInternal();return n.schemaVersion!==this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION?Promise.reject(this._errorFactory.create("unsupported-password-policy-schema-version",{})):n.validatePassword(e)})}_getPasswordPolicyInternal(){return this.tenantId===null?this._projectPasswordPolicy:this._tenantPasswordPolicies[this.tenantId]}_updatePasswordPolicy(){return y(this,null,function*(){let e=yield ree(this),n=new oN(e);this.tenantId===null?this._projectPasswordPolicy=n:this._tenantPasswordPolicies[this.tenantId]=n})}_getPersistenceType(){return this.assertedPersistence.persistence.type}_getPersistence(){return this.assertedPersistence.persistence}_updateErrorMap(e){this._errorFactory=new ii("auth","Firebase",e())}onAuthStateChanged(e,n,r){return this.registerStateListener(this.authStateSubscription,e,n,r)}beforeAuthStateChanged(e,n){return this.beforeStateQueue.pushCallback(e,n)}onIdTokenChanged(e,n,r){return this.registerStateListener(this.idTokenSubscription,e,n,r)}authStateReady(){return new Promise((e,n)=>{if(this.currentUser)e();else{let r=this.onAuthStateChanged(()=>{r(),e()},n)}})}revokeAccessToken(e){return y(this,null,function*(){if(this.currentUser){let n=yield this.currentUser.getIdToken(),r={providerId:"apple.com",tokenType:"ACCESS_TOKEN",token:e,idToken:n};this.tenantId!=null&&(r.tenantId=this.tenantId),yield YZ(this,r)}})}toJSON(){var e;return{apiKey:this.config.apiKey,authDomain:this.config.authDomain,appName:this.name,currentUser:(e=this._currentUser)===null||e===void 0?void 0:e.toJSON()}}_setRedirectUser(e,n){return y(this,null,function*(){let r=yield this.getOrInitRedirectPersistenceManager(n);return e===null?r.removeCurrentUser():r.setCurrentUser(e)})}getOrInitRedirectPersistenceManager(e){return y(this,null,function*(){if(!this.redirectPersistenceManager){let n=e&&Bc(e)||this._popupRedirectResolver;je(n,this,"argument-error"),this.redirectPersistenceManager=yield JT.create(this,[Bc(n._redirectPersistence)],"redirectUser"),this.redirectUser=yield this.redirectPersistenceManager.getCurrentUser()}return this.redirectPersistenceManager})}_redirectUserForId(e){return y(this,null,function*(){var n,r;return this._isInitialized&&(yield this.queue(()=>y(this,null,function*(){}))),((n=this._currentUser)===null||n===void 0?void 0:n._redirectEventId)===e?this._currentUser:((r=this.redirectUser)===null||r===void 0?void 0:r._redirectEventId)===e?this.redirectUser:null})}_persistUserIfCurrent(e){return y(this,null,function*(){if(e===this.currentUser)return this.queue(()=>y(this,null,function*(){return this.directlySetCurrentUser(e)}))})}_notifyListenersIfCurrent(e){e===this.currentUser&&this.notifyAuthListeners()}_key(){return`${this.config.authDomain}:${this.config.apiKey}:${this.name}`}_startProactiveRefresh(){this.isProactiveRefreshEnabled=!0,this.currentUser&&this._currentUser._startProactiveRefresh()}_stopProactiveRefresh(){this.isProactiveRefreshEnabled=!1,this.currentUser&&this._currentUser._stopProactiveRefresh()}get _currentUser(){return this.currentUser}notifyAuthListeners(){var e,n;if(!this._isInitialized)return;this.idTokenSubscription.next(this.currentUser);let r=(n=(e=this.currentUser)===null||e===void 0?void 0:e.uid)!==null&&n!==void 0?n:null;this.lastNotifiedUid!==r&&(this.lastNotifiedUid=r,this.authStateSubscription.next(this.currentUser))}registerStateListener(e,n,r,i){if(this._deleted)return()=>{};let o=typeof n=="function"?n:n.next.bind(n),s=!1,a=this._isInitialized?Promise.resolve():this._initializationPromise;if(je(a,this,"internal-error"),a.then(()=>{s||o(this.currentUser)}),typeof n=="function"){let c=e.addObserver(n,r,i);return()=>{s=!0,c()}}else{let c=e.addObserver(n);return()=>{s=!0,c()}}}directlySetCurrentUser(e){return y(this,null,function*(){this.currentUser&&this.currentUser!==e&&this._currentUser._stopProactiveRefresh(),e&&this.isProactiveRefreshEnabled&&e._startProactiveRefresh(),this.currentUser=e,e?yield this.assertedPersistence.setCurrentUser(e):yield this.assertedPersistence.removeCurrentUser()})}queue(e){return this.operations=this.operations.then(e,e),this.operations}get assertedPersistence(){return je(this.persistenceManager,this,"internal-error"),this.persistenceManager}_logFramework(e){!e||this.frameworks.includes(e)||(this.frameworks.push(e),this.frameworks.sort(),this.clientVersion=hG(this.config.clientPlatform,this._getFrameworks()))}_getFrameworks(){return this.frameworks}_getAdditionalHeaders(){return y(this,null,function*(){var e;let n={"X-Client-Version":this.clientVersion};this.app.options.appId&&(n["X-Firebase-gmpid"]=this.app.options.appId);let r=yield(e=this.heartbeatServiceProvider.getImmediate({optional:!0}))===null||e===void 0?void 0:e.getHeartbeatsHeader();r&&(n["X-Firebase-Client"]=r);let i=yield this._getAppCheckToken();return i&&(n["X-Firebase-AppCheck"]=i),n})}_getAppCheckToken(){return y(this,null,function*(){var e;if(Zn(this.app)&&this.app.settings.appCheckToken)return this.app.settings.appCheckToken;let n=yield(e=this.appCheckServiceProvider.getImmediate({optional:!0}))===null||e===void 0?void 0:e.getToken();return n?.error&&kZ(`Error while retrieving App Check token: ${n.error}`),n?.token})}};function fG(t){return Me(t)}var ZT=class{constructor(e){this.auth=e,this.observer=null,this.addObserver=fB(n=>this.observer=n)}get next(){return je(this.observer,this.auth,"internal-error"),this.observer.next.bind(this.observer)}};var oee={loadJS(){return y(this,null,function*(){throw new Error("Unable to load external scripts")})},recaptchaV2Script:"",recaptchaEnterpriseScript:"",gapiScript:""};function see(t){oee=t}function aee(t){return`__${t}${Math.floor(Math.random()*1e6)}`}function gN(t,e){let n=Xi(t,"auth");if(n.isInitialized()){let i=n.getImmediate(),o=n.getOptions();if(oi(o,e??{}))return i;qT(i,"already-initialized")}return n.initialize({options:e})}function cee(t,e){let n=e?.persistence||[],r=(Array.isArray(n)?n:[n]).map(Bc);e?.errorMap&&t._updateErrorMap(e.errorMap),t._initializeWithPersistence(r,e?.popupRedirectResolver)}var aN=class t{constructor(e){this.user=e.user,this.providerId=e.providerId,this._tokenResponse=e._tokenResponse,this.operationType=e.operationType}static _fromIdTokenResponse(e,n,r,i=!1){return y(this,null,function*(){let o=yield Ws._fromIdTokenResponse(e,r,i),s=KB(r);return new t({user:o,providerId:s,_tokenResponse:r,operationType:n})})}static _forOperation(e,n,r){return y(this,null,function*(){yield e._updateTokensIfNecessary(r,!0);let i=KB(r);return new t({user:e,providerId:i,_tokenResponse:r,operationType:n})})}};function KB(t){return t.providerId?t.providerId:"phoneNumber"in t?"phone":null}function lee(t,e){return y(this,null,function*(){return $Z(t,"POST","/v1/accounts:signInWithCustomToken",fN(t,e))})}function mN(t,e){return y(this,null,function*(){if(Zn(t.app))return Promise.reject(vp(t));let n=fG(t),r=yield lee(n,{token:e,returnSecureToken:!0}),i=yield aN._fromIdTokenResponse(n,"signIn",r);return yield n._updateCurrentUser(i.user),i})}function iy(t,e,n,r){return Me(t).onAuthStateChanged(e,n,r)}function EN(t){return Me(t).signOut()}var ey="__sak";var ty=class{constructor(e,n){this.storageRetriever=e,this.type=n}_isAvailable(){try{return this.storage?(this.storage.setItem(ey,"1"),this.storage.removeItem(ey),Promise.resolve(!0)):Promise.resolve(!1)}catch{return Promise.resolve(!1)}}_set(e,n){return this.storage.setItem(e,JSON.stringify(n)),Promise.resolve()}_get(e){let n=this.storage.getItem(e);return Promise.resolve(n?JSON.parse(n):null)}_remove(e){return this.storage.removeItem(e),Promise.resolve()}get storage(){return this.storageRetriever()}};var uee=1e3,dee=10,hee=(()=>{class t extends ty{constructor(){super(()=>window.localStorage,"LOCAL"),this.boundEventHandler=(n,r)=>this.onStorageEvent(n,r),this.listeners={},this.localCache={},this.pollTimer=null,this.fallbackToPolling=nee(),this._shouldAllowMigration=!0}forAllChangedKeys(n){for(let r of Object.keys(this.listeners)){let i=this.storage.getItem(r),o=this.localCache[r];i!==o&&n(r,o,i)}}onStorageEvent(n,r=!1){if(!n.key){this.forAllChangedKeys((a,c,l)=>{this.notifyListeners(a,l)});return}let i=n.key;r?this.detachListener():this.stopPolling();let o=()=>{let a=this.storage.getItem(i);!r&&this.localCache[i]===a||this.notifyListeners(i,a)},s=this.storage.getItem(i);tee()&&s!==n.newValue&&n.newValue!==n.oldValue?setTimeout(o,dee):o()}notifyListeners(n,r){this.localCache[n]=r;let i=this.listeners[n];if(i)for(let o of Array.from(i))o(r&&JSON.parse(r))}startPolling(){this.stopPolling(),this.pollTimer=setInterval(()=>{this.forAllChangedKeys((n,r,i)=>{this.onStorageEvent(new StorageEvent("storage",{key:n,oldValue:r,newValue:i}),!0)})},uee)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}attachListener(){window.addEventListener("storage",this.boundEventHandler)}detachListener(){window.removeEventListener("storage",this.boundEventHandler)}_addListener(n,r){Object.keys(this.listeners).length===0&&(this.fallbackToPolling?this.startPolling():this.attachListener()),this.listeners[n]||(this.listeners[n]=new Set,this.localCache[n]=this.storage.getItem(n)),this.listeners[n].add(r)}_removeListener(n,r){this.listeners[n]&&(this.listeners[n].delete(r),this.listeners[n].size===0&&delete this.listeners[n]),Object.keys(this.listeners).length===0&&(this.detachListener(),this.stopPolling())}_set(n,r){return y(this,null,function*(){yield Ga(t.prototype,this,"_set").call(this,n,r),this.localCache[n]=JSON.stringify(r)})}_get(n){return y(this,null,function*(){let r=yield Ga(t.prototype,this,"_get").call(this,n);return this.localCache[n]=JSON.stringify(r),r})}_remove(n){return y(this,null,function*(){yield Ga(t.prototype,this,"_remove").call(this,n),delete this.localCache[n]})}}return t.type="LOCAL",t})(),fee=hee;var pee=(()=>{class t extends ty{constructor(){super(()=>window.sessionStorage,"SESSION")}_addListener(n,r){}_removeListener(n,r){}}return t.type="SESSION",t})(),gee=pee;function mee(t){return Promise.all(t.map(e=>y(null,null,function*(){try{return{fulfilled:!0,value:yield e}}catch(n){return{fulfilled:!1,reason:n}}})))}var Eee=(()=>{class t{constructor(n){this.eventTarget=n,this.handlersMap={},this.boundEventHandler=this.handleEvent.bind(this)}static _getInstance(n){let r=this.receivers.find(o=>o.isListeningto(n));if(r)return r;let i=new t(n);return this.receivers.push(i),i}isListeningto(n){return this.eventTarget===n}handleEvent(n){return y(this,null,function*(){let r=n,{eventId:i,eventType:o,data:s}=r.data,a=this.handlersMap[o];if(!a?.size)return;r.ports[0].postMessage({status:"ack",eventId:i,eventType:o});let c=Array.from(a).map(d=>y(this,null,function*(){return d(r.origin,s)})),l=yield mee(c);r.ports[0].postMessage({status:"done",eventId:i,eventType:o,response:l})})}_subscribe(n,r){Object.keys(this.handlersMap).length===0&&this.eventTarget.addEventListener("message",this.boundEventHandler),this.handlersMap[n]||(this.handlersMap[n]=new Set),this.handlersMap[n].add(r)}_unsubscribe(n,r){this.handlersMap[n]&&r&&this.handlersMap[n].delete(r),(!r||this.handlersMap[n].size===0)&&delete this.handlersMap[n],Object.keys(this.handlersMap).length===0&&this.eventTarget.removeEventListener("message",this.boundEventHandler)}}t.receivers=[];return t})();function _ee(t="",e=10){let n="";for(let r=0;r<e;r++)n+=Math.floor(Math.random()*10);return t+n}var cN=class{constructor(e){this.target=e,this.handlers=new Set}removeMessageHandler(e){e.messageChannel&&(e.messageChannel.port1.removeEventListener("message",e.onMessage),e.messageChannel.port1.close()),this.handlers.delete(e)}_send(e,n,r=50){return y(this,null,function*(){let i=typeof MessageChannel<"u"?new MessageChannel:null;if(!i)throw new Error("connection_unavailable");let o,s;return new Promise((a,c)=>{let l=_ee("",20);i.port1.start();let d=setTimeout(()=>{c(new Error("unsupported_event"))},r);s={messageChannel:i,onMessage(h){let f=h;if(f.data.eventId===l)switch(f.data.status){case"ack":clearTimeout(d),o=setTimeout(()=>{c(new Error("timeout"))},3e3);break;case"done":clearTimeout(o),a(f.data.response);break;default:clearTimeout(d),clearTimeout(o),c(new Error("invalid_response"));break}}},this.handlers.add(s),i.port1.addEventListener("message",s.onMessage),this.target.postMessage({eventType:e,eventId:l,data:n},[i.port2])}).finally(()=>{s&&this.removeMessageHandler(s)})})}};function YB(){return window}function pG(){return typeof YB().WorkerGlobalScope<"u"&&typeof YB().importScripts=="function"}function Tee(){return y(this,null,function*(){if(!navigator?.serviceWorker)return null;try{return(yield navigator.serviceWorker.ready).active}catch{return null}})}function yee(){var t;return((t=navigator?.serviceWorker)===null||t===void 0?void 0:t.controller)||null}function Iee(){return pG()?self:null}var gG="firebaseLocalStorageDb",vee=1,ny="firebaseLocalStorage",mG="fbase_key",jc=class{constructor(e){this.request=e}toPromise(){return new Promise((e,n)=>{this.request.addEventListener("success",()=>{e(this.request.result)}),this.request.addEventListener("error",()=>{n(this.request.error)})})}};function oy(t,e){return t.transaction([ny],e?"readwrite":"readonly").objectStore(ny)}function See(){let t=indexedDB.deleteDatabase(gG);return new jc(t).toPromise()}function lN(){let t=indexedDB.open(gG,vee);return new Promise((e,n)=>{t.addEventListener("error",()=>{n(t.error)}),t.addEventListener("upgradeneeded",()=>{let r=t.result;try{r.createObjectStore(ny,{keyPath:mG})}catch(i){n(i)}}),t.addEventListener("success",()=>y(null,null,function*(){let r=t.result;r.objectStoreNames.contains(ny)?e(r):(r.close(),yield See(),e(yield lN()))}))})}function XB(t,e,n){return y(this,null,function*(){let r=oy(t,!0).put({[mG]:e,value:n});return new jc(r).toPromise()})}function Aee(t,e){return y(this,null,function*(){let n=oy(t,!1).get(e),r=yield new jc(n).toPromise();return r===void 0?null:r.value})}function QB(t,e){let n=oy(t,!0).delete(e);return new jc(n).toPromise()}var Cee=800,Dee=3,Ree=(()=>{class t{constructor(){this.type="LOCAL",this._shouldAllowMigration=!0,this.listeners={},this.localCache={},this.pollTimer=null,this.pendingWrites=0,this.receiver=null,this.sender=null,this.serviceWorkerReceiverAvailable=!1,this.activeServiceWorker=null,this._workerInitializationPromise=this.initializeServiceWorkerMessaging().then(()=>{},()=>{})}_openDb(){return y(this,null,function*(){return this.db?this.db:(this.db=yield lN(),this.db)})}_withRetries(n){return y(this,null,function*(){let r=0;for(;;)try{let i=yield this._openDb();return yield n(i)}catch(i){if(r++>Dee)throw i;this.db&&(this.db.close(),this.db=void 0)}})}initializeServiceWorkerMessaging(){return y(this,null,function*(){return pG()?this.initializeReceiver():this.initializeSender()})}initializeReceiver(){return y(this,null,function*(){this.receiver=Eee._getInstance(Iee()),this.receiver._subscribe("keyChanged",(n,r)=>y(this,null,function*(){return{keyProcessed:(yield this._poll()).includes(r.key)}})),this.receiver._subscribe("ping",(n,r)=>y(this,null,function*(){return["keyChanged"]}))})}initializeSender(){return y(this,null,function*(){var n,r;if(this.activeServiceWorker=yield Tee(),!this.activeServiceWorker)return;this.sender=new cN(this.activeServiceWorker);let i=yield this.sender._send("ping",{},800);i&&!((n=i[0])===null||n===void 0)&&n.fulfilled&&!((r=i[0])===null||r===void 0)&&r.value.includes("keyChanged")&&(this.serviceWorkerReceiverAvailable=!0)})}notifyServiceWorker(n){return y(this,null,function*(){if(!(!this.sender||!this.activeServiceWorker||yee()!==this.activeServiceWorker))try{yield this.sender._send("keyChanged",{key:n},this.serviceWorkerReceiverAvailable?800:50)}catch{}})}_isAvailable(){return y(this,null,function*(){try{if(!indexedDB)return!1;let n=yield lN();return yield XB(n,ey,"1"),yield QB(n,ey),!0}catch{}return!1})}_withPendingWrite(n){return y(this,null,function*(){this.pendingWrites++;try{yield n()}finally{this.pendingWrites--}})}_set(n,r){return y(this,null,function*(){return this._withPendingWrite(()=>y(this,null,function*(){return yield this._withRetries(i=>XB(i,n,r)),this.localCache[n]=r,this.notifyServiceWorker(n)}))})}_get(n){return y(this,null,function*(){let r=yield this._withRetries(i=>Aee(i,n));return this.localCache[n]=r,r})}_remove(n){return y(this,null,function*(){return this._withPendingWrite(()=>y(this,null,function*(){return yield this._withRetries(r=>QB(r,n)),delete this.localCache[n],this.notifyServiceWorker(n)}))})}_poll(){return y(this,null,function*(){let n=yield this._withRetries(o=>{let s=oy(o,!1).getAll();return new jc(s).toPromise()});if(!n)return[];if(this.pendingWrites!==0)return[];let r=[],i=new Set;if(n.length!==0)for(let{fbase_key:o,value:s}of n)i.add(o),JSON.stringify(this.localCache[o])!==JSON.stringify(s)&&(this.notifyListeners(o,s),r.push(o));for(let o of Object.keys(this.localCache))this.localCache[o]&&!i.has(o)&&(this.notifyListeners(o,null),r.push(o));return r})}notifyListeners(n,r){this.localCache[n]=r;let i=this.listeners[n];if(i)for(let o of Array.from(i))o(r)}startPolling(){this.stopPolling(),this.pollTimer=setInterval(()=>y(this,null,function*(){return this._poll()}),Cee)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}_addListener(n,r){Object.keys(this.listeners).length===0&&this.startPolling(),this.listeners[n]||(this.listeners[n]=new Set,this._get(n)),this.listeners[n].add(r)}_removeListener(n,r){this.listeners[n]&&(this.listeners[n].delete(r),this.listeners[n].size===0&&delete this.listeners[n]),Object.keys(this.listeners).length===0&&this.stopPolling()}}return t.type="LOCAL",t})(),Nee=Ree;var cPe=aee("rcb"),lPe=new Gc(3e4,6e4);var uPe=new Gc(2e3,1e4);var dPe=600*1e3;var hPe=new Gc(3e4,6e4);var fPe=new Gc(5e3,15e3);var pPe=encodeURIComponent("fac");var JB="@firebase/auth",ZB="1.10.8";var uN=class{constructor(e){this.auth=e,this.internalListeners=new Map}getUid(){var e;return this.assertAuthConfigured(),((e=this.auth.currentUser)===null||e===void 0?void 0:e.uid)||null}getToken(e){return y(this,null,function*(){return this.assertAuthConfigured(),yield this.auth._initializationPromise,this.auth.currentUser?{accessToken:yield this.auth.currentUser.getIdToken(e)}:null})}addAuthTokenListener(e){if(this.assertAuthConfigured(),this.internalListeners.has(e))return;let n=this.auth.onIdTokenChanged(r=>{e(r?.stsTokenManager.accessToken||null)});this.internalListeners.set(e,n),this.updateProactiveRefresh()}removeAuthTokenListener(e){this.assertAuthConfigured();let n=this.internalListeners.get(e);n&&(this.internalListeners.delete(e),n(),this.updateProactiveRefresh())}assertAuthConfigured(){je(this.auth._initializationPromise,"dependent-sdk-initialized-before-auth")}updateProactiveRefresh(){this.internalListeners.size>0?this.auth._startProactiveRefresh():this.auth._stopProactiveRefresh()}};function wee(t){switch(t){case"Node":return"node";case"ReactNative":return"rn";case"Worker":return"webworker";case"Cordova":return"cordova";case"WebExtension":return"web-extension";default:return}}function bee(t){$n(new Xt("auth",(e,{options:n})=>{let r=e.getProvider("app").getImmediate(),i=e.getProvider("heartbeat"),o=e.getProvider("app-check-internal"),{apiKey:s,authDomain:a}=r.options;je(s&&!s.includes(":"),"invalid-api-key",{appName:r.name});let c={apiKey:s,authDomain:a,clientPlatform:t,apiHost:"identitytoolkit.googleapis.com",tokenApiHost:"securetoken.googleapis.com",apiScheme:"https",sdkClientVersion:hG(t)},l=new sN(r,i,o,c);return cee(l,n),l},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((e,n,r)=>{e.getProvider("auth-internal").initialize()})),$n(new Xt("auth-internal",e=>{let n=fG(e.getProvider("auth").getImmediate());return(r=>new uN(r))(n)},"PRIVATE").setInstantiationMode("EXPLICIT")),Ge(JB,ZB,wee(t)),Ge(JB,ZB,"esm2017")}var Oee=300,gPe=iB("authIdTokenMaxAge")||Oee;function Mee(){var t,e;return(e=(t=document.getElementsByTagName("head"))===null||t===void 0?void 0:t[0])!==null&&e!==void 0?e:document}see({loadJS(t){return new Promise((e,n)=>{let r=document.createElement("script");r.setAttribute("src",t),r.onload=e,r.onerror=i=>{let o=dN("internal-error");o.customData=i,n(o)},r.type="text/javascript",r.charset="UTF-8",Mee().appendChild(r)})},gapiScript:"https://apis.google.com/js/api.js",recaptchaV2Script:"https://www.google.com/recaptcha/api.js",recaptchaEnterpriseScript:"https://www.google.com/recaptcha/enterprise.js?render="});bee("Browser");function TG(t){return new fe(function(e){var n=iy(t,e.next.bind(e),e.error.bind(e),e.complete.bind(e));return{unsubscribe:n}})}var yG="auth",Hc=class{constructor(e){return e}},$c=class{constructor(){return Go(yG)}};var _N=new z("angularfire2.auth-instances");function Ate(t,e){let n=Gs(yG,t,e);return n&&new Hc(n)}function Cte(t){return(e,n)=>{let r=e.runOutsideAngular(()=>t(n));return new Hc(r)}}var Dte={provide:$c,deps:[[new zt,_N]]},Rte={provide:Hc,useFactory:Ate,deps:[[new zt,_N],ci]};function hxe(t,...e){return Ge("angularfire",si.full,"auth"),Xn([Rte,Dte,{provide:_N,useFactory:Cte(t),multi:!0,deps:[Ae,ze,ai,jo,[new zt,Hs],...e]}])}var hd=ue(TG,!0);var Np=ue(ry,!0);var fxe=ue(gN,!0);var IG=ue(mN,!0,2);var vG=ue(EN,!0,2);var wte="type.googleapis.com/google.protobuf.Int64Value",bte="type.googleapis.com/google.protobuf.UInt64Value";function DG(t,e){let n={};for(let r in t)t.hasOwnProperty(r)&&(n[r]=e(t[r]));return n}function sy(t){if(t==null)return null;if(t instanceof Number&&(t=t.valueOf()),typeof t=="number"&&isFinite(t)||t===!0||t===!1||Object.prototype.toString.call(t)==="[object String]")return t;if(t instanceof Date)return t.toISOString();if(Array.isArray(t))return t.map(e=>sy(e));if(typeof t=="function"||typeof t=="object")return DG(t,e=>sy(e));throw new Error("Data cannot be encoded in JSON: "+t)}function fd(t){if(t==null)return t;if(t["@type"])switch(t["@type"]){case wte:case bte:{let e=Number(t.value);if(isNaN(e))throw new Error("Data cannot be decoded from JSON: "+t);return e}default:throw new Error("Data cannot be decoded from JSON: "+t)}return Array.isArray(t)?t.map(e=>fd(e)):typeof t=="function"||typeof t=="object"?DG(t,e=>fd(e)):t}var vN="functions";var SG={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"},tr=class t extends Jn{constructor(e,n,r){super(`${vN}/${e}`,n||""),this.details=r,Object.setPrototypeOf(this,t.prototype)}};function Ote(t){if(t>=200&&t<300)return"ok";switch(t){case 0:return"internal";case 400:return"invalid-argument";case 401:return"unauthenticated";case 403:return"permission-denied";case 404:return"not-found";case 409:return"aborted";case 429:return"resource-exhausted";case 499:return"cancelled";case 500:return"internal";case 501:return"unimplemented";case 503:return"unavailable";case 504:return"deadline-exceeded"}return"unknown"}function ay(t,e){let n=Ote(t),r=n,i;try{let o=e&&e.error;if(o){let s=o.status;if(typeof s=="string"){if(!SG[s])return new tr("internal","internal");n=SG[s],r=s}let a=o.message;typeof a=="string"&&(r=a),i=o.details,i!==void 0&&(i=fd(i))}}catch{}return n==="ok"?null:new tr(n,r,i)}var TN=class{constructor(e,n,r,i){this.app=e,this.auth=null,this.messaging=null,this.appCheck=null,this.serverAppAppCheckToken=null,Zn(e)&&e.settings.appCheckToken&&(this.serverAppAppCheckToken=e.settings.appCheckToken),this.auth=n.getImmediate({optional:!0}),this.messaging=r.getImmediate({optional:!0}),this.auth||n.get().then(o=>this.auth=o,()=>{}),this.messaging||r.get().then(o=>this.messaging=o,()=>{}),this.appCheck||i?.get().then(o=>this.appCheck=o,()=>{})}getAuthToken(){return y(this,null,function*(){if(this.auth)try{let e=yield this.auth.getToken();return e?.accessToken}catch{return}})}getMessagingToken(){return y(this,null,function*(){if(!(!this.messaging||!("Notification"in self)||Notification.permission!=="granted"))try{return yield this.messaging.getToken()}catch{return}})}getAppCheckToken(e){return y(this,null,function*(){if(this.serverAppAppCheckToken)return this.serverAppAppCheckToken;if(this.appCheck){let n=e?yield this.appCheck.getLimitedUseToken():yield this.appCheck.getToken();return n.error?null:n.token}return null})}getContext(e){return y(this,null,function*(){let n=yield this.getAuthToken(),r=yield this.getMessagingToken(),i=yield this.getAppCheckToken(e);return{authToken:n,messagingToken:r,appCheckToken:i}})}};var yN="us-central1",Mte=/^data: (.*?)(?:\n|$)/;function Lte(t){let e=null;return{promise:new Promise((n,r)=>{e=setTimeout(()=>{r(new tr("deadline-exceeded","deadline-exceeded"))},t)}),cancel:()=>{e&&clearTimeout(e)}}}var IN=class{constructor(e,n,r,i,o=yN,s=(...a)=>fetch(...a)){this.app=e,this.fetchImpl=s,this.emulatorOrigin=null,this.contextProvider=new TN(e,n,r,i),this.cancelAllRequests=new Promise(a=>{this.deleteService=()=>Promise.resolve(a())});try{let a=new URL(o);this.customDomain=a.origin+(a.pathname==="/"?"":a.pathname),this.region=yN}catch{this.customDomain=null,this.region=o}}_delete(){return this.deleteService()}_url(e){let n=this.app.options.projectId;return this.emulatorOrigin!==null?`${this.emulatorOrigin}/${n}/${this.region}/${e}`:this.customDomain!==null?`${this.customDomain}/${e}`:`https://${this.region}-${n}.cloudfunctions.net/${e}`}};function Pte(t,e,n){let r=_r(e);t.emulatorOrigin=`http${r?"s":""}://${e}:${n}`,r&&(ks(t.emulatorOrigin),Fc("Functions",!0))}function xte(t,e,n){let r=i=>Fte(t,e,i,n||{});return r.stream=(i,o)=>Ute(t,e,i,o||{}),r}function kte(t,e,n,r){return y(this,null,function*(){n["Content-Type"]="application/json";let i;try{i=yield r(t,{method:"POST",body:JSON.stringify(e),headers:n})}catch{return{status:0,json:null}}let o=null;try{o=yield i.json()}catch{}return{status:i.status,json:o}})}function RG(t,e){return y(this,null,function*(){let n={},r=yield t.contextProvider.getContext(e.limitedUseAppCheckTokens);return r.authToken&&(n.Authorization="Bearer "+r.authToken),r.messagingToken&&(n["Firebase-Instance-ID-Token"]=r.messagingToken),r.appCheckToken!==null&&(n["X-Firebase-AppCheck"]=r.appCheckToken),n})}function Fte(t,e,n,r){return y(this,null,function*(){n=sy(n);let i={data:n},o=yield RG(t,r),s=r.timeout||7e4,a=Lte(s),c=yield Promise.race([kte(e,i,o,t.fetchImpl),a.promise,t.cancelAllRequests]);if(a.cancel(),!c)throw new tr("cancelled","Firebase Functions instance was deleted.");let l=ay(c.status,c.json);if(l)throw l;if(!c.json)throw new tr("internal","Response is not valid JSON object.");let d=c.json.data;if(typeof d>"u"&&(d=c.json.result),typeof d>"u")throw new tr("internal","Response is missing data field.");return{data:fd(d)}})}function Ute(t,e,n,r){return y(this,null,function*(){var i;n=sy(n);let o={data:n},s=yield RG(t,r);s["Content-Type"]="application/json",s.Accept="text/event-stream";let a;try{a=yield t.fetchImpl(e,{method:"POST",body:JSON.stringify(o),headers:s,signal:r?.signal})}catch(g){if(g instanceof Error&&g.name==="AbortError"){let I=new tr("cancelled","Request was cancelled.");return{data:Promise.reject(I),stream:{[Symbol.asyncIterator](){return{next(){return Promise.reject(I)}}}}}}let E=ay(0,null);return{data:Promise.reject(E),stream:{[Symbol.asyncIterator](){return{next(){return Promise.reject(E)}}}}}}let c,l,d=new Promise((g,E)=>{c=g,l=E});(i=r?.signal)===null||i===void 0||i.addEventListener("abort",()=>{let g=new tr("cancelled","Request was cancelled.");l(g)});let h=a.body.getReader(),f=Vte(h,c,l,r?.signal);return{stream:{[Symbol.asyncIterator](){let g=f.getReader();return{next(){return y(this,null,function*(){let{value:I,done:S}=yield g.read();return{value:I,done:S}})},return(){return y(this,null,function*(){return yield g.cancel(),{done:!0,value:void 0}})}}}},data:d}})}function Vte(t,e,n,r){let i=(s,a)=>{let c=s.match(Mte);if(!c)return;let l=c[1];try{let d=JSON.parse(l);if("result"in d){e(fd(d.result));return}if("message"in d){a.enqueue(fd(d.message));return}if("error"in d){let h=ay(0,d);a.error(h),n(h);return}}catch(d){if(d instanceof tr){a.error(d),n(d);return}}},o=new TextDecoder;return new ReadableStream({start(s){let a="";return c();function c(){return y(this,null,function*(){if(r?.aborted){let l=new tr("cancelled","Request was cancelled");return s.error(l),n(l),Promise.resolve()}try{let{value:l,done:d}=yield t.read();if(d){a.trim()&&i(a.trim(),s),s.close();return}if(r?.aborted){let f=new tr("cancelled","Request was cancelled");s.error(f),n(f),yield t.cancel();return}a+=o.decode(l,{stream:!0});let h=a.split(`
141
+ `);a=h.pop()||"";for(let f of h)f.trim()&&i(f.trim(),s);return c()}catch(l){let d=l instanceof tr?l:ay(0,null);s.error(d),n(d)}})}},cancel(){return t.cancel()}})}var AG="@firebase/functions",CG="0.12.9";var Bte="auth-internal",Gte="app-check-internal",jte="messaging-internal";function Hte(t){let e=(n,{instanceIdentifier:r})=>{let i=n.getProvider("app").getImmediate(),o=n.getProvider(Bte),s=n.getProvider(jte),a=n.getProvider(Gte);return new IN(i,o,s,a,r)};$n(new Xt(vN,e,"PUBLIC").setMultipleInstances(!0)),Ge(AG,CG,t),Ge(AG,CG,"esm2017")}function NG(t=er(),e=yN){let r=Xi(Me(t),vN).getImmediate({identifier:e}),i=ld("functions");return i&&SN(r,...i),r}function SN(t,e,n){Pte(Me(t),e,n)}function wG(t,e,n){return xte(Me(t),e,n)}Hte();var Ho=class{constructor(e){return e}},bG="functions",AN=class{constructor(){return Go(bG)}};var CN=new z("angularfire2.functions-instances");function $te(t,e){let n=Gs(bG,t,e);return n&&new Ho(n)}function Wte(t){return(e,n)=>{let r=e.runOutsideAngular(()=>t(n));return new Ho(r)}}var zte={provide:AN,deps:[[new zt,CN]]},qte={provide:Ho,useFactory:$te,deps:[[new zt,CN],ci]};function Oxe(t,...e){return Ge("angularfire",si.full,"fn"),Xn([qte,zte,{provide:CN,useFactory:Wte(t),multi:!0,deps:[Ae,ze,ai,jo,[new zt,$c],[new zt,Hs],...e]}])}var Mxe=ue(SN,!0),Lxe=ue(NG,!0);var OG=ue(wG,!0);var LG={httpsCallableFromURL:OG};function pd(t,e,n){return n?LG.httpsCallableFromURL(t,e,n):LG.httpsCallableFromURL(t,e)}var Ji=(()=>{let e=class e{constructor(r,i){this.loggingService=r,this.analyticsService=i,this.config$=new ie(null),this.disableLogsConfig$=new ie({warnings:!0,suppressAll:!1}),this.apiKey$=new ie(""),this.baseFeatureAllowList=[],this.runtimeDisabledFeatures=new Set,this.sf$=new ie(!1),this.sdkType$=new ie("core"),this.logsEnabled$=new ie(!0),this.safeEval$=new ie(!1),this.firestorePersistentCacheEnabled$=new ie(!1),this.encryptionProvider$=new ie(null);try{this.analyticsService.setConfigService(this),this.sdkType$.subscribe(o=>{this.analyticsService.updateDefaultProperties({sdkType:o})},o=>{this.loggingService.catch("Error in ConfigService sdkType$: ",o)}),this.logsEnabled$.subscribe(o=>{o?this.loggingService.enableLogs():this.loggingService.disableLogs(),M.logsEnabled=o},o=>{this.loggingService.catch("Error in ConfigService logsEnabled$: ",o)})}catch(o){this.loggingService.catch("Error in ConfigService constructor: ",o)}}initConfig(r){try{r.featureAllowList?.length||(r.featureAllowList=Object.values(QD)),this.baseFeatureAllowList=r.featureAllowList?.slice();try{r.proxyConfig?.authHost?localStorage.setItem(F.LOCAL_STORAGE.VELT_AUTH_PROXY_HOST,btoa(r.proxyConfig.authHost)):localStorage.removeItem(F.LOCAL_STORAGE.VELT_AUTH_PROXY_HOST)}catch{}this.config$.next(r)}catch(i){this.loggingService.catch("Error in ConfigService initConfig: ",i)}}setApiKey(r){this.apiKey$.next(r)}getApiKey(){return this.apiKey$.value}getApiKey$(){return this.apiKey$.asObservable()}getConfig(){return this.config$.value}getConfig$(){return this.config$.asObservable()}disableFeatures(r){try{let i=this.config$.value;this.runtimeDisabledFeatures=new Set(r??[]),i&&(r?.length?i.featureAllowList=this.baseFeatureAllowList.filter(o=>!r.includes(o)):i.featureAllowList=this.baseFeatureAllowList.slice()),this.config$.next(i)}catch(i){this.loggingService.catch("Error in ConfigService disableFeatures: ",i)}}enableFeatures(r){try{if(!r?.length)return;let i=this.config$.value;if(!i)return;let o=i.featureAllowList??[],s=r.filter(a=>!o.includes(a)&&!this.runtimeDisabledFeatures.has(a));if(s.length===0)return;i.featureAllowList=[...o,...s],this.baseFeatureAllowList=[...this.baseFeatureAllowList,...s.filter(a=>!this.baseFeatureAllowList.includes(a))],this.config$.next(i)}catch(i){this.loggingService.catch("Error in ConfigService enableFeatures: ",i)}}setSF(r){try{this.sf$.next(r),this.analyticsService.setSF(r)}catch(i){this.loggingService.catch("Error in ConfigService setSF: ",i)}}getSF(){try{return this.sf$.value}catch(r){return this.loggingService.catch("Error in ConfigService getSF: ",r),!1}}getSF$(){try{return this.sf$.asObservable().pipe(yo(cp))}catch(r){return this.loggingService.catch("Error in ConfigService getSF$: ",r),lt(!1)}}setSdkType(r){try{this.sdkType$.next(r)}catch(i){this.loggingService.catch("Error in ConfigService setSdkType: ",i)}}getSdkType(){try{return this.sdkType$.value}catch(r){return this.loggingService.catch("Error in ConfigService getSdkType: ",r),"core"}}getSdkType$(){try{return this.sdkType$.asObservable()}catch(r){return this.loggingService.catch("Error in ConfigService getSdkType$: ",r),lt("core")}}enableLogs(){try{if(this.logsEnabled$.value===!0)return;this.logsEnabled$.next(!0)}catch(r){this.loggingService.catch("Error in ConfigService enableLogs: ",r)}}disableLogs(r){try{r&&this.disableLogsConfig$.next({warnings:r.warnings??!0,suppressAll:r.suppressAll??!1}),r?.warnings!==!1&&this.logsEnabled$.next(!1)}catch(i){this.loggingService.catch("Error in ConfigService disableLogs: ",i)}}getDisableLogsConfig(){return this.disableLogsConfig$.value}getDisableLogsConfig$(){return this.disableLogsConfig$.asObservable()}getProxyConfig(){try{return this.config$.value?.proxyConfig}catch(r){this.loggingService.catch("Error in ConfigService getProxyConfig: ",r);return}}getAuthProxyHost(){try{let r=this.config$.value?.proxyConfig?.authHost;if(r)return r;let i=localStorage.getItem(F.LOCAL_STORAGE.VELT_AUTH_PROXY_HOST);return i?atob(i):void 0}catch(r){this.loggingService.catch("Error in ConfigService getAuthProxyHost: ",r);return}}getApiHost(){try{return this.getProxyConfig()?.apiHost||this.config$.value?.apiProxyDomain}catch(r){this.loggingService.catch("Error in ConfigService getApiHost: ",r);return}}getApiProxyDomain(){return this.getApiHost()}getSelfHostedConfig(){try{return this.config$.value?.selfHosted}catch(r){this.loggingService.catch("Error in ConfigService getSelfHostedConfig: ",r);return}}getEnablePortableBackend(){try{return this.config$.value?.selfHosted?.enablePortableBackend===!0}catch(r){return this.loggingService.catch("Error in ConfigService getEnablePortableBackend: ",r),!1}}enableSafeEval(){try{this.safeEval$.next(!0)}catch(r){this.loggingService.catch("Error in ConfigService enableSafeEval: ",r)}}disableSafeEval(){try{this.safeEval$.next(!1)}catch(r){this.loggingService.catch("Error in ConfigService disableSafeEval: ",r)}}getSafeEval(){try{return this.safeEval$.value}catch(r){return this.loggingService.catch("Error in ConfigService getSafeEval: ",r),!1}}getSafeEval$(){try{return this.safeEval$.asObservable()}catch(r){return this.loggingService.catch("Error in ConfigService getSafeEval$: ",r),lt(!1)}}enableFirestorePersistentCache(){try{this.firestorePersistentCacheEnabled$.next(!0)}catch(r){this.loggingService.catch("Error in ConfigService enableFirestorePersistentCache: ",r)}}disableFirestorePersistentCache(){try{this.firestorePersistentCacheEnabled$.next(!1)}catch(r){this.loggingService.catch("Error in ConfigService disableFirestorePersistentCache: ",r)}}isFirestorePersistentCacheEnabled(){try{return this.firestorePersistentCacheEnabled$.value}catch(r){return this.loggingService.catch("Error in ConfigService isFirestorePersistentCacheEnabled: ",r),!1}}getFirestorePersistentCacheEnabled$(){try{return this.firestorePersistentCacheEnabled$.asObservable()}catch(r){return this.loggingService.catch("Error in ConfigService getFirestorePersistentCacheEnabled$: ",r),lt(!1)}}setEncryptionProvider(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setEncryptionProvider","color: green;"),this.encryptionProvider$.next(r)}catch(i){this.loggingService.catch("Error in ConfigService setEncryptionProvider: ",i)}}getEncryptionProvider(){try{return this.encryptionProvider$.value}catch(r){return this.loggingService.catch("Error in ConfigService getEncryptionProvider: ",r),null}}getEncryptionProvider$(){try{return this.encryptionProvider$.asObservable()}catch(r){return this.loggingService.catch("Error in ConfigService getEncryptionProvider$: ",r),lt(null)}}};e.\u0275fac=function(i){return new(i||e)($(bt),$(zs))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var Wc={fetch:(t,e)=>fetch(t,e),timeoutMs:12e5,renewalTimeoutMs:3e4,renewalOfflineTimeoutMs:5e3,isOnline:()=>typeof navigator>"u"||navigator.onLine!==!1};function xG(){try{return Wc.isOnline()?Wc.renewalTimeoutMs:Wc.renewalOfflineTimeoutMs}catch{return Wc.renewalTimeoutMs}}var jxe=Wc.timeoutMs,PG=Symbol("identify-timed-out");function zc(t){if(!t)return!1;try{let e=new URL(t);return e.protocol==="https:"?!0:e.protocol==="http:"&&["localhost","127.0.0.1","[::1]"].includes(e.hostname)}catch{return!1}}function kG(t){return`${t.replace(/\/+$/,"")}/identify`}function Kte(t,e="identify"){let n="Could not reach the self-hosted backend for "+e+" ("+t+"). If the SDK is running cross-origin, a likely cause is the gateway's CORS origin allowlist not including this origin (fail-closed deny-by-default) \u2014 verify the operator configured it. This is distinct from a server-side denial, which carries a specific error code.";return{error:n,code:"network_error",message:n,source:"identify"}}function FG(t){return y(this,null,function*(){let e={apiKey:t.apiKey,originDomain:typeof window<"u"?window.location.origin:"",version:t.version,user:t.user};return t.authToken!=null&&(e.authToken=t.authToken),UG({url:t.url,body:e,timeoutMs:Wc.timeoutMs,label:"identify"})})}function UG(t){return y(this,null,function*(){let e,n=t.timeoutMs,r=typeof AbortController<"u"?new AbortController:null,i,o=new Promise(a=>{i=setTimeout(()=>{try{r?.abort()}catch{}a(PG)},n)}),s=()=>y(null,null,function*(){let a=yield Wc.fetch(t.url,B({method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t.body)},r?{signal:r.signal}:{}));try{return{body:yield a.json()}}catch{return{detail:`unreadable response (HTTP ${a.status}, non-JSON body)`}}});try{let a=yield Promise.race([s(),o]);if(a===PG)e=`no answer within ${n} ms (request timed out and was aborted)`;else{if("body"in a)return a.body;e=a.detail}}catch(a){e=`fetch failed: ${a?.message??a}`}finally{i!==void 0&&clearTimeout(i)}return console.error(`Velt [selfHosted.portableBackendUrl]: ${t.label} ${e} \u2014 ${t.url}`),Kte(e,t.label)})}var RN="refresh_token_invalid",NN=new Set(["domain_not_whitelisted","identify_not_configured","invalid-argument"]);function VG(t,e){return`${t.replace(/\/+$/,"")}/${e}`}function BG(t){let e={apiKey:t.apiKey,refreshToken:t.refreshToken};return UG({url:t.url,body:e,timeoutMs:t.timeoutMs,label:"identify/refresh"})}var $o={validateClient:{endpointClass:"core",module:"core"},sdkProxy:{endpointClass:"core",module:"core"},getNotificationsForDocuments:{endpointClass:"core",module:"core"},getPlanDetails:{endpointClass:"advisory",module:"core"},sa:{endpointClass:"telemetry",module:"core"},getIceServers:{endpointClass:"optional",module:"huddle-webrtc"},chatgptCompletion:{endpointClass:"optional",module:"ai"},rewriterAskAi:{endpointClass:"optional",module:"ai"},whisperTranscription:{endpointClass:"optional",module:"recorder-media"},getAllowedDocuments:{endpointClass:"optional",module:"core"},videoBackend:{endpointClass:"optional",module:"recorder-media"},convertRecording:{endpointClass:"optional",module:"recorder-media"},processRecording:{endpointClass:"optional",module:"recorder-media"},screenshot:{endpointClass:"optional",module:"recorder-media"},setEncryptedData:{endpointClass:"core",module:"core"},firebaseNotificationsDatabaseURL:{endpointClass:"core",module:"core"},firebaseConfig:{endpointClass:"core",module:"core"}},Yte=Object.keys($o).filter(t=>t!=="setEncryptedData"&&t!=="firebaseNotificationsDatabaseURL"&&t!=="firebaseConfig"&&$o[t].endpointClass==="core"),Xte=["notifications","analytics-telemetry","console"],GG=new Set;function Qte(t){try{let e=t.filter(o=>!xU.includes(o));if(!e.length)return;let n=[...e].sort().join(",");if(GG.has(n))return;GG.add(n);let r=e.filter(o=>Xte.includes(o)),i=`Velt [selfHosted.deploymentProfile]: unknown module id(s) ignored: ${e.join(", ")}. Unknown ids enable nothing (fail-closed).`;r.length&&(i+=` Note: ${r.join(", ")} `+(r.length>1?"were":"was")+" absorbed into 'core' by the 2026-07-10 manifest restructure \u2014 the endpoints they used to gate (notifications hub, getNotificationsForDocuments, sa telemetry, console CFs) now follow 'core' and are ENABLED whenever core is. If you relied on omitting one of these ids to disable those endpoints, that opt-out no longer applies \u2014 regenerate your velt-deployment-profile.json."),console.warn(i)}catch{}}function qc(t,e){let n=t?.deploymentProfile;return!Array.isArray(n)||n.length===0?!0:(Qte(n),n.includes(e))}var jG={usCentral1:"us-central1",europeWest1:"europe-west1",asiaSouthEast1:"asia-southeast1",australiaSouthEast1:"australia-southeast1",asiaNorthEast1:"asia-northeast1"};function Jte(t,e){let n=t?.dataRegions;if(!Array.isArray(n)||e==="usCentral1")return e;let r=jG[e];return r&&n.includes(r)?e:"usCentral1"}function Zte(t){let e=t.cloudFunction;if(e?.setEncryptedData)return!0;let n=t.dataRegions;if(!Array.isArray(n))return Object.values(e?.regions??{}).some(i=>!!i?.setEncryptedData);let r=i=>!!e?.regions?.[i]?.setEncryptedData;return r("usCentral1")?Object.entries(jG).filter(([i,o])=>i!=="usCentral1"&&n.includes(o)).every(([i])=>r(i)):!1}var ene="__VELT_PRE_BOOTSTRAP_SELF_HOSTED__";function tne(t){let e=t?.firebaseConfig;return e?B(B({},qt.firebaseConfig),e):qt.firebaseConfig}function Qxe(){try{if(typeof window>"u")return;let t=window[ene];return t&&typeof t=="object"?t:void 0}catch{return}}var ly=(()=>{let e=class e{constructor(r){this.injector=r,this.strictCoreValidationReported=!1,this.portableUnservedProxyReported=!1,this.portableWithoutStrictReported=!1,this.portableIdentifyFlagMisconfigReported=!1,this.portableIdentifyInsecureUrlReported=!1}get configService(){return this._configService??=this.injector.get(Ji)}get loggingService(){return this._loggingService??=this.injector.get(bt)}getSelfHosted(){try{let r=this.configService.getSelfHostedConfig();return this.reportPortableWithoutStrictOnce(r),r}catch(r){this.loggingService.catch("Error in EndpointsService getSelfHosted: ",r);return}}resolveStrictMiss(r,i){return this.reportStrictCoreMisconfigurationOnce(r),`${Lc}${i}`}resolveProfileDisabled(r,i){return`${Lc}module.${r}/${i}`}isPortableBackendConfigured(r){let i=r?.portableBackendUrl;return r?.enablePortableBackend===!0&&!!i&&zc(i)}reportPortableWithoutStrictOnce(r){if(!this.portableWithoutStrictReported&&!(!this.isPortableBackendConfigured(r)||r?.strict)){this.portableWithoutStrictReported=!0;try{console.warn("Velt [selfHosted.portableBackendUrl]: portable backend configured WITHOUT `strict: true`. Velt-hosted endpoints (analytics `sa`, `sdkProxy`) still egress to Velt cloud, so this deployment is NOT air-gapped. The Tier B recipe pairs them: { enablePortableBackend: true, portableBackendUrl, strict: true }.")}catch{}}}reportStrictCoreMisconfigurationOnce(r){if(!this.strictCoreValidationReported&&!this.isPortableBackendConfigured(r)){this.strictCoreValidationReported=!0;try{let i=this.getMissingStrictCoreEndpoints(r);i.length&&console.error(`Velt [selfHosted.strict]: missing CORE endpoint config: ${i.join(", ")}. The SDK cannot function without these in strict self-hosted mode \u2014 there is no fallback to Velt infrastructure. Provide them via config.selfHosted, or unset \`strict\` for hybrid mode.`)}catch(i){this.loggingService.catch("Error in EndpointsService reportStrictCoreMisconfigurationOnce: ",i,void 0,!0)}}}getMissingStrictCoreEndpoints(r){let i=[];for(let o of Yte)qc(r,$o[o].module)&&(r.cloudFunction?.[o]||i.push(`cloudFunction.${o}`));return qc(r,$o.setEncryptedData.module)&&!Zte(r)&&i.push("cloudFunction.setEncryptedData"),qc(r,$o.firebaseNotificationsDatabaseURL.module)&&!r.firebaseNotificationsDatabaseURL&&i.push("firebaseNotificationsDatabaseURL"),qc(r,$o.firebaseConfig.module)&&!r.firebaseConfig&&i.push("firebaseConfig"),i}getCloudFunctionUrl(r){let i=this.getSelfHosted(),o=$o[r].module;if(!qc(i,o))return this.resolveProfileDisabled(o,`cloudFunction.${r}`);let s=i?.cloudFunction?.[r];return s||(i?.strict?(r==="sdkProxy"&&this.reportPortableUnservedProxyOnce(i),this.resolveStrictMiss(i,`cloudFunction.${r}`)):qt.cloudFunction?.[r])}reportPortableUnservedProxyOnce(r){if(!this.portableUnservedProxyReported&&this.isPortableBackendConfigured(r)){this.portableUnservedProxyReported=!0;try{console.warn("Velt [Tier B]: a Velt-hosted `sdkProxy` call was blocked (strict self-hosting \u2014 zero egress, no fallback). The portable gateway does not serve this operation class, so any feature that still calls it is unavailable on this deployment: today that is the AI rewriter (rewriterAskAi); a routed operation reaches it only if its portable activation wait expired. This warning fires once per session, on the first blocked call.")}catch{}}}getPortableIdentifyUrl(){try{let r=this.getSelfHosted(),i=r?.portableBackendUrl;return i?r?.enablePortableBackend!==!0?(this.portableIdentifyFlagMisconfigReported||(this.portableIdentifyFlagMisconfigReported=!0,console.error("Velt [selfHosted.portableBackendUrl]: set without `enablePortableBackend: true` \u2014 ignored. Identify will use the Velt-hosted endpoint. Set both options to route identify to your self-hosted backend.")),null):zc(i)?kG(i):(this.portableIdentifyInsecureUrlReported||(this.portableIdentifyInsecureUrlReported=!0,console.error(`Velt [selfHosted.portableBackendUrl]: insecure URL "${i}" \u2014 https:// is required (plain http:// is allowed for loopback hosts only). Identify is DISABLED (fail-closed): the SDK will not fall back to Velt infrastructure for a Tier B deployment.`)),`${Lc}portableBackendUrl/identify`):null}catch(r){return this.loggingService.catch("Error in EndpointsService getPortableIdentifyUrl: ",r),null}}getFirebaseConfig(){let r=this.getSelfHosted();return!r?.firebaseConfig&&r?.strict&&this.reportStrictCoreMisconfigurationOnce(r),tne(r)}getNotificationsDbUrl(){let r=this.getSelfHosted(),i=$o.firebaseNotificationsDatabaseURL.module;if(!qc(r,i))return this.resolveProfileDisabled(i,"firebaseNotificationsDatabaseURL");let o=r?.firebaseNotificationsDatabaseURL;return o||(r?.strict?this.resolveStrictMiss(r,"firebaseNotificationsDatabaseURL"):qt.firebaseNotificationsDatabaseURL)}getSetEncryptedDataUrl(r){let i=this.getSelfHosted(),o=$o.setEncryptedData.module;if(!qc(i,o))return this.resolveProfileDisabled(o,`cloudFunction.setEncryptedData (region: ${r})`);r=Jte(i,r);let s=i?.cloudFunction;if(s?.setEncryptedData)return s.setEncryptedData;let a=s?.regions?.[r]?.setEncryptedData;return a||(i?.strict?this.resolveStrictMiss(i,`cloudFunction.setEncryptedData (region: ${r})`):qt.cloudFunction?.[r]?.setEncryptedData)}};e.\u0275fac=function(i){return new(i||e)($(ze))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var zs=(()=>{let e=class e{constructor(r,i){this.functions=r,this.serviceBook=i,this.endpointsService=Y(ly),this.sf=!1,this.defaultProperties={},this.draftEvents=[],this.liveStateSyncEvents=Object.values(St.Events.LiveStateSync||{}),this.eventRateLimitCache={},this.EVENT_LIMIT=50,this.TIME_WINDOW_MS=60*1e3,this.analyticsQueue=[],this.selfHostedAnalyticsSkipReported=!1,this.selfHostingTelemetrySources={},this.selfHostingTelemetryDropReported=!1,this.batchTimer=null,this.BATCH_WINDOW_MS=5*1e3,this.MAX_BATCH_SIZE=50,this.liveStateService=null;try{this.updateDefaultProperties({sdkVersion:xc()}),window?.location?.href&&(this.defaultProperties.pageUrl=window.location.href),this.serviceBook.observe(fT).subscribe(o=>{this.commentService=o??void 0}),this.serviceBook.observe(pT).subscribe(o=>{this.reactionService=o??void 0}),this.serviceBook.observe(gT).subscribe(o=>{this.areaService=o??void 0}),this.serviceBook.observe(vU).subscribe(o=>{this.liveStateService=o??null})}catch(o){M.catch("Error in AnalyticsService constructor: ",o)}}updateDefaultProperties(r={}){this.defaultProperties=B(B({},this.defaultProperties),r)}setInstalledFeature(r){try{this.defaultProperties?.installedFeatures||(this.defaultProperties.installedFeatures=[]),this.defaultProperties.installedFeatures.includes(r)||this.defaultProperties.installedFeatures.push(r)}catch(i){M.catch("Error in AnalyticsService setInstalledFeature: ",i)}}setFeatureConfig({feature:r,config:i}){try{this.defaultProperties.featureConfigs||(this.defaultProperties.featureConfigs={}),this.defaultProperties.featureConfigs[r]||(this.defaultProperties.featureConfigs[r]={}),this.defaultProperties.featureConfigs[r]=B(B({},this.defaultProperties.featureConfigs[r]),i)}catch(o){M.catch("Error in AnalyticsService setFeatureConfig: ",o)}}setSF(r){try{this.sf=r}catch(i){M.catch("Error in AnalyticsService setSF: ",i)}}setAuthService(r){try{this.authService=r}catch(i){M.catch("Error in AnalyticsService setAuthService: ",i)}}setCommentService(r){try{this.commentService=r}catch(i){M.catch("Error in AnalyticsService setCommentService: ",i)}}setConfigService(r){try{this.configService=r}catch(i){M.catch("Error in AnalyticsService setConfigService: ",i)}}setDomService(r){try{this.domService=r}catch(i){M.catch("Error in AnalyticsService setDomService: ",i)}}registerSelfHostingTelemetrySource(r,i){try{this.selfHostingTelemetrySources||(this.selfHostingTelemetrySources={}),this.selfHostingTelemetrySources[r]=i}catch(o){M.catch("Error in AnalyticsService registerSelfHostingTelemetrySource: ",o)}}resolveSelfHostingTelemetryState(){let r=this.selfHostingTelemetrySources??{},i={},o=a=>{let c=r[a];if(!c)return!1;try{return!!c.configured()}catch{return!0}},s=a=>{let c=r[a]?.fieldsToRemove?.();return Array.isArray(c)?c:void 0};return o("comment")&&(i.comment={fieldsToRemove:s("comment")}),o("user")&&(i.user=!0),o("reaction")&&(i.reaction={fieldsToRemove:s("reaction")}),o("recorder")&&(i.recorder={fieldsToRemove:s("recorder")}),o("activity")&&(i.activity={fieldsToRemove:s("activity")}),o("attachment")&&(i.attachment=!0),vR(i)?i:null}applySelfHostingTelemetryRule(r,i){try{let o=this.resolveSelfHostingTelemetryState();return o?XV(r,o,{kind:i}):r}catch(o){return this.selfHostingTelemetryDropReported||(this.selfHostingTelemetryDropReported=!0,console.warn("Velt [selfHosted]: an analytics event was dropped because the self-hosting telemetry filter failed (reported once per session). ",o)),null}}setUserService(r){try{this.userService=r}catch(i){M.catch("Error in AnalyticsService setUserService: ",i)}}identifyUser(r,i,o={}){try{this.userId=r;let s=typeof i=="object"?JSON.parse(JSON.stringify(i)):i;this.userService?.userResolverConfigured?.()&&s?.userId&&(s={userId:s.userId}),this.user=s;let a=this.defaultProperties?this.defaultProperties.apiKey:null;if(qt.production||qt.staging){let c=Date.now(),l={userId:r,clientUserId:this.user?.userId,traits:Ee(B({},s),{apiKey:a,forceReset:o?.forceReset,eventTimestamp:c}),properties:Ee(B({},this.defaultProperties),{eventTimestamp:c}),sf:this.sf,context:this.getContext(),eventTimestamp:c};this.setAnalytics("identify",l)}if(this.userId&&this.draftEvents?.length){let c=this.draftEvents?.slice();this.draftEvents=[],c?.forEach(l=>{l.type==="track"&&l?.data?.eventName&&this.trackEvent(l.data.eventName,l.data.properties,l.data.mergeDefaultProperties,l.data.userId,l.data.clientUserId)})}}catch(s){M.catch("Error in AnalyticsService identifyUser: ",s)}}trackPage(r,i="",o={}){try{if((qt.production||qt.staging)&&this.userId){let s={userId:this.userId,clientUserId:this.user?.userId,name:r,properties:o,sf:this.sf,context:this.getContext()};this.setAnalytics("page",s)}}catch(s){M.catch("Error in AnalyticsService trackPage: ",s)}}trackEvent(c){return y(this,arguments,function*(r,i={},o=!0,s,a){try{if(this.sf&&AU.includes(r))return Promise.resolve();if(qt.production||qt.staging)if(this.userId||s){if(this.eventRateLimitCache[r]?.blockedForSession)return Promise.resolve();let l=Date.now();if(this.eventRateLimitCache[r]&&l-this.eventRateLimitCache[r].timestamp<this.TIME_WINDOW_MS){if(this.eventRateLimitCache[r].count>=this.EVENT_LIMIT){if(!this.eventRateLimitCache[r].rateLimitExceededEventTriggered){this.eventRateLimitCache[r].rateLimitExceededEventTriggered=!0,this.eventRateLimitCache[r].blockedForSession=!0;let d=B({eventName:r},i||{});this.triggerTrackEvent(St.Events.Core.SDK_EVENT_RATE_LIMIT_EXCEEDED,d,o,s,a)}return Promise.resolve()}this.eventRateLimitCache[r].count++}else this.eventRateLimitCache[r]={count:1,timestamp:l,rateLimitExceededEventTriggered:!1,blockedForSession:!1};return this.triggerTrackEvent(r,i,o,s,a)}else return i?.eventTimestamp||(i.eventTimestamp=Date.now()),this.draftEvents.push({type:"track",data:{eventName:r,properties:i,mergeDefaultProperties:o,userId:s,clientUserId:a}}),Promise.resolve();return Promise.resolve()}catch(l){return M.catch("Error in AnalyticsService trackEvent: ",l),Promise.resolve()}})}triggerTrackEvent(c){return y(this,arguments,function*(r,i={},o=!0,s,a){try{o&&(i||(i={}),i=B(B({},i),this.defaultProperties));let l;if(i?.annotationId){let h=i.annotationId;if(!l&&this.commentService){let f=this.commentService.getAnnotationById(h);f?.metadata&&(l=f.metadata),f?.targetElementId&&(i.targetElementId=f.targetElementId);let g=this.commentService.getMultiThreadAnnotationById(h);g?.metadata&&(l=g.metadata),g?.targetElementId&&(i.targetElementId=g.targetElementId)}if(!l){let f=this.serviceBook.get(hT)?.getAnnotationById(h);f?.metadata&&(l=f.metadata)}if(!l&&this.reactionService){let f=this.reactionService.getAnnotationById(h);f?.metadata&&(l=f.metadata),f?.targetElementId&&(i.targetElementId=f.targetElementId)}if(!l&&this.areaService){let f=this.areaService.getAnnotationById(h);f?.metadata&&(l=f.metadata)}}if(l&&typeof l=="object"&&(i=B(B({},i),l)),i&&typeof i=="object"&&(i=Ee(B({},i),{userId:this.userId||s,clientUserId:this.user?.userId||a}),i?.eventTimestamp||(i.eventTimestamp=Date.now()),i?.sessionTabId||(i.sessionTabId=this.domService?.getTabId()),this.liveStateSyncEvents.includes(r))){let h=this.liveStateService?.getSemStats();h&&!i?.semStats&&(i.semStats=h)}let d={userId:this.userId||s,clientUserId:this.user?.userId||a,event:r,properties:i,sf:this.sf,context:this.getContext(),eventTimestamp:i?.eventTimestamp};return this.setAnalytics("track",d)}catch(l){return M.catch("Error in AnalyticsService triggerTrackEvent: ",l),Promise.resolve()}})}setAnalytics(r,i){return y(this,null,function*(){try{let o=this.applySelfHostingTelemetryRule(i,r);return o===null?Promise.resolve():(i=o,navigator.onLine?new Promise((a,c)=>{this.analyticsQueue.push({type:r,body:i,resolve:a,reject:c}),this.analyticsQueue.length>=this.MAX_BATCH_SIZE?this.flushAnalyticsQueue():this.scheduleBatchFlush()}).catch(()=>{}):void 0)}catch(o){return M.catch("Error in AnalyticsService setAnalytics: ",o),Promise.resolve()}})}scheduleBatchFlush(){try{this.batchTimer||(this.batchTimer=setTimeout(()=>{this.batchTimer=null,this.flushAnalyticsQueue()},this.BATCH_WINDOW_MS))}catch(r){M.catch("Error in AnalyticsService scheduleBatchFlush: ",r)}}flushAnalyticsQueue(){return y(this,null,function*(){try{if(this.batchTimer&&(clearTimeout(this.batchTimer),this.batchTimer=null),this.analyticsQueue.length===0||!navigator.onLine)return;let r=[...this.analyticsQueue];this.analyticsQueue=[];try{let i=od({url:this.endpointsService.getCloudFunctionUrl("sa"),apiProxyDomain:this.configService?.getApiProxyDomain()});if(Pc(i)){this.selfHostedAnalyticsSkipReported||(this.selfHostedAnalyticsSkipReported=!0,M.log("Velt [selfHosted]: analytics telemetry is disabled on this deployment (the `sa` endpoint resolves to the inert self-hosted sentinel). Events are dropped locally with zero egress.")),r.forEach(a=>{try{a.resolve&&a.resolve()}catch(c){M.warn("Error resolving analytics promise: ",c)}});return}let o=pd(this.functions,i,{timeout:1200*1e3}),s=r.map(a=>({type:a.type,data:a.body}));try{yield o({type:"batch",data:s}),r.forEach(a=>{try{a.resolve&&a.resolve()}catch(c){M.warn("Error resolving analytics promise: ",c)}})}catch(a){M.warn("Error in AnalyticsService batch flush: ",a),r.forEach(c=>{try{c.reject&&c.reject(a)}catch(l){M.warn("Error rejecting analytics promise: ",l)}})}}catch(i){M.catch("Error in AnalyticsService flushAnalyticsQueue: ",i),r.forEach(o=>{try{o.reject&&o.reject(i)}catch(s){M.warn("Error rejecting analytics promise: ",s)}})}}catch(r){M.catch("Error in AnalyticsService flushAnalyticsQueue: ",r)}})}trackAuthenticatedEvent(r,i={},o=!0){try{this.authService?.getUser$&&typeof this.authService?.getUser$()?.subscribe=="function"&&(this.authService.getUser()?this.trackEvent(r,i,o):((!i||typeof i!="object")&&(i={}),i?.eventTimestamp||(i.eventTimestamp=Date.now()),this.authService?.getUser$()?.pipe(mn(s=>!!s),En(1))?.subscribe(()=>{this.trackEvent(r,i,o)})))}catch(s){M.catch("Error in AnalyticsService trackAuthenticatedEvent: ",s)}}getContext(){try{let r={},i=xV();return r.os={name:i?.deviceInfo?.osName,version:i?.deviceInfo?.osVersion},r.page={path:i?.path,title:i?.title,url:i?.url},r.screen={height:i?.deviceInfo?.screenHeight,width:i?.deviceInfo?.screenWidth},r.app={name:i?.deviceInfo?.browserName,version:i?.deviceInfo?.browserVersion},r.device={type:i?.deviceInfo?.deviceType},r.timezone=$V(),r.userAgent=i?.deviceInfo?.userAgent,r}catch(r){M.catch("Error in AnalyticsService getContext: ",r)}}};e.\u0275fac=function(i){return new(i||e)($(Ho),$(mT))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var bt=(()=>{let e=class e{get debugMode(){return OV()}get debugContextMode(){return MV()}get logsEnabled(){return this.logsEnabled$.value}constructor(r){this.analyticsService=r,this.logsEnabled$=new ie(!0),this.log("%c[WB] Creating SERVICE LoggingService","color: blue;")}enableLogs(){try{if(this.logsEnabled$.value===!0)return;this.logsEnabled$.next(!0)}catch(r){this.catch("Error in LoggingService enableLogs: ",r)}}disableLogs(){try{if(this.logsEnabled$.value===!1)return;this.logsEnabled$.next(!1)}catch(r){this.catch("Error in LoggingService disableLogs: ",r)}}log(r,...i){this.debugMode&&console.log(r,...i)}logContext(r,...i){this.debugContextMode&&console.log(r,...i)}warn(r,...i){this.debugMode&&console.warn(r,...i)}error(r,...i){this.debugMode&&console.error(r,...i)}debug(r,...i){this.debugMode&&console.debug(r,...i)}info(r,...i){this.debugMode&&console.info(r,...i)}catch(r,i,o,s=!1){try{let a=i?.message;if(this.logsEnabled$.value&&(a?.toLowerCase()?.includes("permission denied")||a?.toLowerCase()?.includes("permission_denied")||(i!==void 0?console.warn("Velt: ",r,i):console.warn("Velt: ",r))),!s){let c=typeof i?.message=="string"?i.message:typeof i=="string"?i:void 0;this.analyticsService.trackEvent(St.Events.Core.SDK_ERROR,B({sourceMethod:r,message:c||r,clientUserId:this.analyticsService?.user?.userId,snippylyUserId:this.analyticsService?.user?.userSnippylyId,source:"sdk"},o||{}))}}catch{}}catchResolverFailure(r,i,o){try{this.logsEnabled$.value&&(i!==void 0?console.warn("Velt: ",r,i):console.warn("Velt: ",r));let s=typeof i?.statusCode=="number"?i.statusCode:void 0;this.analyticsService.trackEvent(St.Events.Core.SDK_ERROR,B(Ee(B({sourceMethod:r,message:`${r} ${YV(i)}`},s!==void 0?{statusCode:s}:{}),{clientUserId:this.analyticsService?.user?.userId,snippylyUserId:this.analyticsService?.user?.userSnippylyId,source:"sdk"}),o||{}))}catch{}}};e.\u0275fac=function(i){return new(i||e)($(zs))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();function wp(t){try{if(typeof t!="string"||!t)return null;let e=t.split(".");if(e.length<2)return null;let n=e[1].replace(/-/g,"+").replace(/_/g,"/");n+="=".repeat((4-n.length%4)%4);let i=JSON.parse(atob(n))?.exp;return typeof i!="number"||!Number.isFinite(i)||i<=0?null:i*1e3}catch{return null}}function $G(t,e){try{if(t===null||!Number.isFinite(e))return null;let n=t-e;if(n<=0)return null;if(n<=5e3)return 1e3;let r=Math.min(Math.max(n*.2,3e4),3e5);return Math.max(n-r,1e3)}catch{return null}}var HG=3e4,nne=16*6e4;function WG(t,e,n){if(t!==null&&Number.isFinite(e)&&t>e)return HG;let r=Number.isFinite(n)&&n>=1?Math.floor(n):1;return Math.min(HG*2**Math.min(r-1,30),nne)}function wN(t,e){let n=wp(t);return n===null?!0:n-e<=0}var uy=[],zG=new Set,qs={pings:0,pongs:0,lastPongAtMs:0};function Eke(t){try{t==="ping"?qs.pings++:(qs.pongs++,qs.lastPongAtMs=Date.now())}catch{}}function Wn(t,e){try{for(uy.push({t:Date.now(),kind:t,detail:e});uy.length>60;)uy.shift()}catch{}}function qG(t){return!Number.isFinite(t)||t<0?"?":t<1e3?`${Math.round(t)}ms`:t<6e4?`${Math.round(t/1e3)}s`:`${Math.floor(t/6e4)}m${String(Math.round(t%6e4/1e3)).padStart(2,"0")}s`}function _ke(t,e,n){try{let r=n??t;if(zG.has(r))return;zG.add(r);let i=Date.now(),o=uy.map(a=>` -${qG(i-a.t).padStart(7)} ${a.kind}${a.detail?" "+a.detail:""}`),s=qs.pings?` Heartbeat: ${qs.pings} sent, ${qs.pongs} answered${qs.lastPongAtMs?`, last answer ${qG(i-qs.lastPongAtMs)} ago`:", NONE answered"}
142
142
  `:` Heartbeat: never ran
143
143
  `;console.warn(`Velt [portable backend] SESSION DIAGNOSTIC \u2014 ${t}
144
144
  `+(e?` ${e}
145
145
  `:"")+s+` Recent session events (most recent last, times relative to now):
146
146
  `+(o.length?o.join(`
147
147
  `):" (no events recorded)")+`
148
- This block prints once per distinct problem. If a realtime feature looks stuck, copy it into the issue \u2014 it contains no credentials.`)}catch{}}var rne={fetch:(t,e)=>fetch(t,e)},ine=5e3;function one(t){return`${t.replace(/\/+$/,"")}/operations/getProjectConfig`}function sne(t,e){return y(this,null,function*(){let n=typeof AbortController<"u"?new AbortController:null,r,i=new Promise(o=>{r=setTimeout(()=>{try{n?.abort()}catch{}o(null)},ine)});try{return yield Promise.race([rne.fetch(t,n?Ee(B({},e),{signal:n.signal}):e),i])}finally{r!==void 0&&clearTimeout(r)}})}function KG(t){return y(this,null,function*(){let{apiEndpoint:e,token:n}=t;if(!e||!n)return null;if(!zc(e))return console.error(`Velt [portable backend]: refusing to send the session token to an insecure apiEndpoint (${e}). Project config was not read; https is required (http is allowed on loopback only).`),null;try{let r=yield sne(one(e),{method:"POST",headers:{Authorization:`Bearer ${n}`,"Content-Type":"application/json"},body:JSON.stringify({})});if(!r)return null;let i=yield r.json();return!i||i.ok!==!0||!i.data?null:{isPrivateCommentsEnabled:i.data.isPrivateCommentsEnabled===!0,activityConfig:i.data.activityConfig??null}}catch{return null}})}var ane=["unauthenticated","permission-denied","not-found","invalid-argument","failed-precondition","resource-exhausted"],YG=[...ane,"unimplemented"];function XG(t){return!!t&&t.backend==="portable"&&typeof t.wsEndpoint=="string"&&typeof t.apiEndpoint=="string"}var Ske="getaccess-any-user",Ake="ordered-deltas",Cke="doc-notification-views",Dke="fetch-folders-include-children",Rke="notification-timestamp-by-document",Nke="per-editor-crdt-fold";var dy={import:()=>import("./velt-portable.js")},Tr=null,bp=!1;function QG(t){if(Tr)Tr=Tr.then(()=>dy.import().then(e=>{bp=!0,e.default(t)})).catch(e=>{M.catch("Error re-establishing portable session after re-identify: ",e)});else{let e=dy.import().then(n=>{bp=!0,n.default(t)}).catch(n=>{Tr===e&&(Tr=null),bp=!1,console.warn("Velt [portable backend]: failed to load the portable transport chunk (velt-portable.js). Portable features are disabled for this page load.",n)});Tr=e}return Tr}function JG(){Tr&&(Tr=Tr.then(()=>bp?dy.import().then(t=>{t.teardownPortableBackend()}):void 0).catch(t=>{M.catch("Error tearing down portable backend session: ",t)}))}function ZG(){Tr&&(Tr=Tr.then(()=>bp?dy.import().then(t=>{t.checkPortableBackendLiveness?.()}):void 0).catch(t=>{M.catch("Error checking portable backend liveness: ",t)}))}var e2=(()=>{let e=class e{constructor(r){this.loggingService=r,this.initLocalStorageData()}initLocalStorageData(){this.loggingService.log("%c[WB] Calling FUNCTION: initLocalStorageData","color: green;"),this.getLocalStorageData(),this.getSessionStorageData()}getLocalStorageData(){this.loggingService.log("%c[WB] Calling FUNCTION: getLocalStorageData","color: green;");try{let r=localStorage?.getItem(F.LOCALSTORAGE_DATA_ID);if(r)return JSON.parse(r);{let i=new bc;return this.setLocalStorageData(i),i}}catch(r){return this.loggingService.catch("Error in getLocalStorageData:",r),new bc}}setLocalStorageData(r){this.loggingService.log("%c[WB] Calling FUNCTION: setLocalStorageData","color: green;");try{if(r){let i=JSON.stringify(r);localStorage?.setItem(F.LOCALSTORAGE_DATA_ID,i)}}catch(i){this.loggingService.catch("Error in setLocalStorageData:",i)}}deleteLocalStorageData(){this.loggingService.log("%c[WB] Calling FUNCTION: deleteLocalStorageData","color: green;"),localStorage?.removeItem(F.LOCALSTORAGE_DATA_ID)}getSessionStorageData(){this.loggingService.log("%c[WB] Calling FUNCTION: getSessionStorageData","color: green;");try{let r=sessionStorage?.getItem(F.LOCALSTORAGE_DATA_ID);if(r)return JSON.parse(r);{let i=new bc;return this.setSessionStorageData(i),i}}catch(r){return this.loggingService.catch("Error in getSessionStorageData:",r),new bc}}setSessionStorageData(r){this.loggingService.log("%c[WB] Calling FUNCTION: setSessionStorageData","color: green;");try{if(r){let i=JSON.stringify(r);sessionStorage?.setItem(F.LOCALSTORAGE_DATA_ID,i)}}catch(i){this.loggingService.catch("Error in setSessionStorageData:",i)}}deleteSessionStorageData(){this.loggingService.log("%c[WB] Calling FUNCTION: deleteSessionStorageData","color: green;");try{sessionStorage?.removeItem(F.LOCALSTORAGE_DATA_ID)}catch(r){this.loggingService.catch("Error in deleteSessionStorageData:",r)}}};e.\u0275fac=function(i){return new(i||e)($(bt))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var t2=(()=>{let e=class e{constructor(r,i){this.localStorageService=r,this.loggingService=i,this.avatarList=[{userId:"1",name:"Bear",photoUrl:"https://snippyly.com/assets/avatars/avatar-bear.svg",type:"anonymous"},{userId:"2",name:"Beaver",photoUrl:"https://snippyly.com/assets/avatars/avatar-beaver.svg",type:"anonymous"},{userId:"3",name:"Bunny",photoUrl:"https://snippyly.com/assets/avatars/avatar-bunny.svg",type:"anonymous"},{userId:"4",name:"Cat",photoUrl:"https://snippyly.com/assets/avatars/avatar-cat.svg",type:"anonymous"},{userId:"5",name:"Cow",photoUrl:"https://snippyly.com/assets/avatars/avatar-cow.svg",type:"anonymous"},{userId:"6",name:"Dinosaur",photoUrl:"https://snippyly.com/assets/avatars/avatar-dinosaur.svg",type:"anonymous"},{userId:"7",name:"Elephant",photoUrl:"https://snippyly.com/assets/avatars/avatar-elephant.svg",type:"anonymous"},{userId:"8",name:"Monkey",photoUrl:"https://snippyly.com/assets/avatars/avatar-monkey.svg",type:"anonymous"},{userId:"9",name:"Hedgehog",photoUrl:"https://snippyly.com/assets/avatars/avatar-hedgehog.svg",type:"anonymous"},{userId:"10",name:"Hippo",photoUrl:"https://snippyly.com/assets/avatars/avatar-hippo.svg",type:"anonymous"},{userId:"11",name:"Horse",photoUrl:"https://snippyly.com/assets/avatars/avatar-horse.svg",type:"anonymous"},{userId:"12",name:"Kitten",photoUrl:"https://snippyly.com/assets/avatars/avatar-kitten.svg",type:"anonymous"},{userId:"13",name:"Octopus",photoUrl:"https://snippyly.com/assets/avatars/avatar-octopus.svg",type:"anonymous"},{userId:"14",name:"Oink",photoUrl:"https://snippyly.com/assets/avatars/avatar-oink.svg",type:"anonymous"},{userId:"15",name:"Panda",photoUrl:"https://snippyly.com/assets/avatars/avatar-panda.svg",type:"anonymous"},{userId:"16",name:"Penguin",photoUrl:"https://snippyly.com/assets/avatars/avatar-penguin.svg",type:"anonymous"},{userId:"17",name:"Rabbit",photoUrl:"https://snippyly.com/assets/avatars/avatar-rabbit.svg",type:"anonymous"},{userId:"18",name:"Tiger",photoUrl:"https://snippyly.com/assets/avatars/avatar-tiger.svg",type:"anonymous"}],this.loggingService.log("%c[WB] Creating SERVICE AvatarService","color: blue;")}getSessionAvatar(){this.loggingService.log("%c[WB] Calling FUNCTION: getSessionAvatar","color: green;");try{let r=new zi,i=this.localStorageService.getSessionStorageData();if(i.snippylyAvatar)r=i.snippylyAvatar;else{let o=this.generateUserAvatar();i.snippylyAvatar=o,this.localStorageService.setSessionStorageData(i)}return r}catch(r){return this.loggingService.catch("Error in getSessionAvatar:",r),new zi}}generateUserAvatar(){this.loggingService.log("%c[WB] Calling FUNCTION: generateUserAvatar","color: green;");try{let r=Math.floor(Math.random()*this.avatarList.length),i=this.avatarList[r];return i.color=this.generateUserColor(),i}catch(r){return this.loggingService.catch("Error in generateUserAvatar:",r),this.avatarList[0]}}generateUserColor(r){this.loggingService.log("%c[WB] Calling FUNCTION: generateUserColor","color: green;");try{if(r)return F.AVATAR_COLOR_LIST[r%F.AVATAR_COLOR_LIST.length];let i=Math.floor(Math.random()*F.AVATAR_COLOR_LIST.length);return F.AVATAR_COLOR_LIST[i]}catch(i){return this.loggingService.catch("Error in generateUserColor:",i),""}}generateUserImage(){this.loggingService.log("%c[WB] Calling FUNCTION: generateUserImage","color: green;");try{return this.getSessionAvatar().photoUrl}catch(r){return this.loggingService.catch("Error in generateUserImage:",r),""}}};e.\u0275fac=function(i){return new(i||e)($(e2),$(bt))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var n2=(()=>{let e=class e{constructor(r){this.loggingService=r,this.actionSubjects=new Map,this.subscriptions=[]}triggerAction(r,i){try{this.actionSubjects.has(r)||this.actionSubjects.set(r,new Rt),this.actionSubjects.get(r)?.next(i)}catch(o){this.loggingService.catch("Error in CoreActionsService triggerAction: ",o)}}onAction(r){try{this.actionSubjects.has(r)||this.actionSubjects.set(r,new Rt);let i=this.actionSubjects.get(r);return i?i.asObservable():lt(null)}catch(i){return this.loggingService.catch("Error in CoreActionsService onAction: ",i),lt(null)}}};e.\u0275fac=function(i){return new(i||e)($(bt))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();function r2(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n<e;n++)r[n]=t[n];return r}function dne(t){if(Array.isArray(t))return t}function hne(t,e){var n=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(n!=null){var r,i,o,s,a=[],c=!0,l=!1;try{if(o=(n=n.call(t)).next,e!==0)for(;!(c=(r=o.call(n)).done)&&(a.push(r.value),a.length!==e);c=!0);}catch(d){l=!0,i=d}finally{try{if(!c&&n.return!=null&&(s=n.return(),Object(s)!==s))return}finally{if(l)throw i}}return a}}function fne(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
148
+ This block prints once per distinct problem. If a realtime feature looks stuck, copy it into the issue \u2014 it contains no credentials.`)}catch{}}var rne={fetch:(t,e)=>fetch(t,e)},ine=5e3;function one(t){return`${t.replace(/\/+$/,"")}/operations/getProjectConfig`}function sne(t,e){return y(this,null,function*(){let n=typeof AbortController<"u"?new AbortController:null,r,i=new Promise(o=>{r=setTimeout(()=>{try{n?.abort()}catch{}o(null)},ine)});try{return yield Promise.race([rne.fetch(t,n?Ee(B({},e),{signal:n.signal}):e),i])}finally{r!==void 0&&clearTimeout(r)}})}function KG(t){return y(this,null,function*(){let{apiEndpoint:e,token:n}=t;if(!e||!n)return null;if(!zc(e))return console.error(`Velt [portable backend]: refusing to send the session token to an insecure apiEndpoint (${e}). Project config was not read; https is required (http is allowed on loopback only).`),null;try{let r=yield sne(one(e),{method:"POST",headers:{Authorization:`Bearer ${n}`,"Content-Type":"application/json"},body:JSON.stringify({})});if(!r)return null;let i=yield r.json();return!i||i.ok!==!0||!i.data?null:{isPrivateCommentsEnabled:i.data.isPrivateCommentsEnabled===!0,activityConfig:i.data.activityConfig??null}}catch{return null}})}var ane=["unauthenticated","permission-denied","not-found","invalid-argument","failed-precondition","resource-exhausted"],YG=[...ane,"unimplemented"];function XG(t){return!!t&&t.backend==="portable"&&typeof t.wsEndpoint=="string"&&typeof t.apiEndpoint=="string"}var Ake="getaccess-any-user",Cke="ordered-deltas",Dke="doc-notification-views",Rke="fetch-folders-include-children",Nke="notification-timestamp-by-document",wke="per-editor-crdt-fold";var dy={import:()=>import("./velt-portable.js")},Tr=null,bp=!1;function QG(t){if(Tr)Tr=Tr.then(()=>dy.import().then(e=>{bp=!0,e.default(t)})).catch(e=>{M.catch("Error re-establishing portable session after re-identify: ",e)});else{let e=dy.import().then(n=>{bp=!0,n.default(t)}).catch(n=>{Tr===e&&(Tr=null),bp=!1,console.warn("Velt [portable backend]: failed to load the portable transport chunk (velt-portable.js). Portable features are disabled for this page load.",n)});Tr=e}return Tr}function JG(){Tr&&(Tr=Tr.then(()=>bp?dy.import().then(t=>{t.teardownPortableBackend()}):void 0).catch(t=>{M.catch("Error tearing down portable backend session: ",t)}))}function ZG(){Tr&&(Tr=Tr.then(()=>bp?dy.import().then(t=>{t.checkPortableBackendLiveness?.()}):void 0).catch(t=>{M.catch("Error checking portable backend liveness: ",t)}))}var e2=(()=>{let e=class e{constructor(r){this.loggingService=r,this.initLocalStorageData()}initLocalStorageData(){this.loggingService.log("%c[WB] Calling FUNCTION: initLocalStorageData","color: green;"),this.getLocalStorageData(),this.getSessionStorageData()}getLocalStorageData(){this.loggingService.log("%c[WB] Calling FUNCTION: getLocalStorageData","color: green;");try{let r=localStorage?.getItem(F.LOCALSTORAGE_DATA_ID);if(r)return JSON.parse(r);{let i=new bc;return this.setLocalStorageData(i),i}}catch(r){return this.loggingService.catch("Error in getLocalStorageData:",r),new bc}}setLocalStorageData(r){this.loggingService.log("%c[WB] Calling FUNCTION: setLocalStorageData","color: green;");try{if(r){let i=JSON.stringify(r);localStorage?.setItem(F.LOCALSTORAGE_DATA_ID,i)}}catch(i){this.loggingService.catch("Error in setLocalStorageData:",i)}}deleteLocalStorageData(){this.loggingService.log("%c[WB] Calling FUNCTION: deleteLocalStorageData","color: green;"),localStorage?.removeItem(F.LOCALSTORAGE_DATA_ID)}getSessionStorageData(){this.loggingService.log("%c[WB] Calling FUNCTION: getSessionStorageData","color: green;");try{let r=sessionStorage?.getItem(F.LOCALSTORAGE_DATA_ID);if(r)return JSON.parse(r);{let i=new bc;return this.setSessionStorageData(i),i}}catch(r){return this.loggingService.catch("Error in getSessionStorageData:",r),new bc}}setSessionStorageData(r){this.loggingService.log("%c[WB] Calling FUNCTION: setSessionStorageData","color: green;");try{if(r){let i=JSON.stringify(r);sessionStorage?.setItem(F.LOCALSTORAGE_DATA_ID,i)}}catch(i){this.loggingService.catch("Error in setSessionStorageData:",i)}}deleteSessionStorageData(){this.loggingService.log("%c[WB] Calling FUNCTION: deleteSessionStorageData","color: green;");try{sessionStorage?.removeItem(F.LOCALSTORAGE_DATA_ID)}catch(r){this.loggingService.catch("Error in deleteSessionStorageData:",r)}}};e.\u0275fac=function(i){return new(i||e)($(bt))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var t2=(()=>{let e=class e{constructor(r,i){this.localStorageService=r,this.loggingService=i,this.avatarList=[{userId:"1",name:"Bear",photoUrl:"https://snippyly.com/assets/avatars/avatar-bear.svg",type:"anonymous"},{userId:"2",name:"Beaver",photoUrl:"https://snippyly.com/assets/avatars/avatar-beaver.svg",type:"anonymous"},{userId:"3",name:"Bunny",photoUrl:"https://snippyly.com/assets/avatars/avatar-bunny.svg",type:"anonymous"},{userId:"4",name:"Cat",photoUrl:"https://snippyly.com/assets/avatars/avatar-cat.svg",type:"anonymous"},{userId:"5",name:"Cow",photoUrl:"https://snippyly.com/assets/avatars/avatar-cow.svg",type:"anonymous"},{userId:"6",name:"Dinosaur",photoUrl:"https://snippyly.com/assets/avatars/avatar-dinosaur.svg",type:"anonymous"},{userId:"7",name:"Elephant",photoUrl:"https://snippyly.com/assets/avatars/avatar-elephant.svg",type:"anonymous"},{userId:"8",name:"Monkey",photoUrl:"https://snippyly.com/assets/avatars/avatar-monkey.svg",type:"anonymous"},{userId:"9",name:"Hedgehog",photoUrl:"https://snippyly.com/assets/avatars/avatar-hedgehog.svg",type:"anonymous"},{userId:"10",name:"Hippo",photoUrl:"https://snippyly.com/assets/avatars/avatar-hippo.svg",type:"anonymous"},{userId:"11",name:"Horse",photoUrl:"https://snippyly.com/assets/avatars/avatar-horse.svg",type:"anonymous"},{userId:"12",name:"Kitten",photoUrl:"https://snippyly.com/assets/avatars/avatar-kitten.svg",type:"anonymous"},{userId:"13",name:"Octopus",photoUrl:"https://snippyly.com/assets/avatars/avatar-octopus.svg",type:"anonymous"},{userId:"14",name:"Oink",photoUrl:"https://snippyly.com/assets/avatars/avatar-oink.svg",type:"anonymous"},{userId:"15",name:"Panda",photoUrl:"https://snippyly.com/assets/avatars/avatar-panda.svg",type:"anonymous"},{userId:"16",name:"Penguin",photoUrl:"https://snippyly.com/assets/avatars/avatar-penguin.svg",type:"anonymous"},{userId:"17",name:"Rabbit",photoUrl:"https://snippyly.com/assets/avatars/avatar-rabbit.svg",type:"anonymous"},{userId:"18",name:"Tiger",photoUrl:"https://snippyly.com/assets/avatars/avatar-tiger.svg",type:"anonymous"}],this.loggingService.log("%c[WB] Creating SERVICE AvatarService","color: blue;")}getSessionAvatar(){this.loggingService.log("%c[WB] Calling FUNCTION: getSessionAvatar","color: green;");try{let r=new zi,i=this.localStorageService.getSessionStorageData();if(i.snippylyAvatar)r=i.snippylyAvatar;else{let o=this.generateUserAvatar();i.snippylyAvatar=o,this.localStorageService.setSessionStorageData(i)}return r}catch(r){return this.loggingService.catch("Error in getSessionAvatar:",r),new zi}}generateUserAvatar(){this.loggingService.log("%c[WB] Calling FUNCTION: generateUserAvatar","color: green;");try{let r=Math.floor(Math.random()*this.avatarList.length),i=this.avatarList[r];return i.color=this.generateUserColor(),i}catch(r){return this.loggingService.catch("Error in generateUserAvatar:",r),this.avatarList[0]}}generateUserColor(r){this.loggingService.log("%c[WB] Calling FUNCTION: generateUserColor","color: green;");try{if(r)return F.AVATAR_COLOR_LIST[r%F.AVATAR_COLOR_LIST.length];let i=Math.floor(Math.random()*F.AVATAR_COLOR_LIST.length);return F.AVATAR_COLOR_LIST[i]}catch(i){return this.loggingService.catch("Error in generateUserColor:",i),""}}generateUserImage(){this.loggingService.log("%c[WB] Calling FUNCTION: generateUserImage","color: green;");try{return this.getSessionAvatar().photoUrl}catch(r){return this.loggingService.catch("Error in generateUserImage:",r),""}}};e.\u0275fac=function(i){return new(i||e)($(e2),$(bt))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var n2=(()=>{let e=class e{constructor(r){this.loggingService=r,this.actionSubjects=new Map,this.subscriptions=[]}triggerAction(r,i){try{this.actionSubjects.has(r)||this.actionSubjects.set(r,new Rt),this.actionSubjects.get(r)?.next(i)}catch(o){this.loggingService.catch("Error in CoreActionsService triggerAction: ",o)}}onAction(r){try{this.actionSubjects.has(r)||this.actionSubjects.set(r,new Rt);let i=this.actionSubjects.get(r);return i?i.asObservable():lt(null)}catch(i){return this.loggingService.catch("Error in CoreActionsService onAction: ",i),lt(null)}}};e.\u0275fac=function(i){return new(i||e)($(bt))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();function r2(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n<e;n++)r[n]=t[n];return r}function dne(t){if(Array.isArray(t))return t}function hne(t,e){var n=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(n!=null){var r,i,o,s,a=[],c=!0,l=!1;try{if(o=(n=n.call(t)).next,e!==0)for(;!(c=(r=o.call(n)).done)&&(a.push(r.value),a.length!==e);c=!0);}catch(d){l=!0,i=d}finally{try{if(!c&&n.return!=null&&(s=n.return(),Object(s)!==s))return}finally{if(l)throw i}}return a}}function fne(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
149
149
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function pne(t,e){return dne(t)||hne(t,e)||gne(t,e)||fne()}function gne(t,e){if(t){if(typeof t=="string")return r2(t,e);var n={}.toString.call(t).slice(8,-1);return n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set"?Array.from(t):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r2(t,e):void 0}}var _2=Object.entries,i2=Object.setPrototypeOf,mne=Object.isFrozen,Ene=Object.getPrototypeOf,_ne=Object.getOwnPropertyDescriptor,Qt=Object.freeze,ln=Object.seal,gd=Object.create,T2=typeof Reflect<"u"&&Reflect,kN=T2.apply,FN=T2.construct;Qt||(Qt=function(e){return e});ln||(ln=function(e){return e});kN||(kN=function(e,n){for(var r=arguments.length,i=new Array(r>2?r-2:0),o=2;o<r;o++)i[o-2]=arguments[o];return e.apply(n,i)});FN||(FN=function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return new e(...r)});var Yc=kt(Array.prototype.forEach),Tne=kt(Array.prototype.lastIndexOf),o2=kt(Array.prototype.pop),Op=kt(Array.prototype.push),yne=kt(Array.prototype.splice),md=Array.isArray,Pp=kt(String.prototype.toLowerCase),bN=kt(String.prototype.toString),s2=kt(String.prototype.match),Mp=kt(String.prototype.replace),a2=kt(String.prototype.indexOf),Ine=kt(String.prototype.trim),vne=kt(Number.prototype.toString),Sne=kt(Boolean.prototype.toString),c2=typeof BigInt>"u"?null:kt(BigInt.prototype.toString),l2=typeof Symbol>"u"?null:kt(Symbol.prototype.toString),nr=kt(Object.prototype.hasOwnProperty),Lp=kt(Object.prototype.toString),Pn=kt(RegExp.prototype.test),Kc=Ane(TypeError);function kt(t){return function(e){e instanceof RegExp&&(e.lastIndex=0);for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return kN(t,e,r)}}function Ane(t){return function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return FN(t,n)}}function xe(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Pp;if(i2&&i2(t,null),!md(e))return t;let r=e.length;for(;r--;){let i=e[r];if(typeof i=="string"){let o=n(i);o!==i&&(mne(e)||(e[r]=o),i=o)}t[i]=!0}return t}function Cne(t){for(let e=0;e<t.length;e++)nr(t,e)||(t[e]=null);return t}function Ir(t){let e=gd(null);for(let r of _2(t)){var n=pne(r,2);let i=n[0],o=n[1];nr(t,i)&&(md(o)?e[i]=Cne(o):o&&typeof o=="object"&&o.constructor===Object?e[i]=Ir(o):e[i]=o)}return e}function Dne(t){switch(typeof t){case"string":return t;case"number":return vne(t);case"boolean":return Sne(t);case"bigint":return c2?c2(t):"0";case"symbol":return l2?l2(t):"Symbol()";case"undefined":return Lp(t);case"function":case"object":{if(t===null)return Lp(t);let e=t,n=Gr(e,"toString");if(typeof n=="function"){let r=n(e);return typeof r=="string"?r:Lp(r)}return Lp(t)}default:return Lp(t)}}function Gr(t,e){for(;t!==null;){let r=_ne(t,e);if(r){if(r.get)return kt(r.get);if(typeof r.value=="function")return kt(r.value)}t=Ene(t)}function n(){return null}return n}function Rne(t){try{return Pn(t,""),!0}catch{return!1}}var u2=Qt(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),ON=Qt(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),MN=Qt(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),Nne=Qt(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),LN=Qt(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),wne=Qt(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),d2=Qt(["#text"]),h2=Qt(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","command","commandfor","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns"]),PN=Qt(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dominant-baseline","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mask-type","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","pointer-events","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-orientation","text-rendering","textlength","type","u1","u2","unicode","values","vector-effect","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),f2=Qt(["accent","accentunder","align","bevelled","close","columnalign","columnlines","columnspacing","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lquote","lspace","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),hy=Qt(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),bne=ln(/{{[\w\W]*|^[\w\W]*}}/g),One=ln(/<%[\w\W]*|^[\w\W]*%>/g),Mne=ln(/\${[\w\W]*/g),Lne=ln(/^data-[\-\w.\u00B7-\uFFFF]+$/),Pne=ln(/^aria-[\-\w]+$/),p2=ln(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),xne=ln(/^(?:\w+script|data):/i),kne=ln(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Fne=ln(/^html$/i),Une=ln(/^[a-z][.\w]*(-[.\w]+)+$/i),g2=ln(/<[/\w!]/g),m2=ln(/<[/\w]/g),Vne=ln(/<\/no(script|embed|frames)/i),Bne=ln(/\/>/i),yr={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},y2=["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"],Gne=Qt(xe({},y2)),jne=(function(){let t={};return Yc(y2,e=>{t[e]=ln(new RegExp("</"+e+"(?=[\\t\\n\\f\\r />])","i"))}),Qt(t)})(),Hne=function(){return typeof window>"u"?null:window},$ne=function(e,n){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let r=null,i="data-tt-policy-suffix";n&&n.hasAttribute(i)&&(r=n.getAttribute(i));let o="dompurify"+(r?"#"+r:"");try{return e.createPolicy(o,{createHTML(s){return s},createScriptURL(s){return s}})}catch{return console.warn("TrustedTypes policy "+o+" could not be created."),null}},E2=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},Ks=function(e,n,r,i){return nr(e,n)&&md(e[n])?xe(i.base?Ir(i.base):{},e[n],i.transform):r},xN=function(e,n,r){let i=nr(e,n)?e[n]:void 0;return i&&typeof i=="object"?Ir(i):r()};function I2(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Hne(),e=W=>I2(W);if(e.version="3.4.15",e.removed=[],!t||!t.document||t.document.nodeType!==yr.document||!t.Element)return e.isSupported=!1,e;let n=t.document,r=n,i=r.currentScript;t.DocumentFragment;let o=t.HTMLTemplateElement,s=t.Node,a=t.Element,c=t.NodeFilter,l=t.NamedNodeMap;l===void 0&&(t.NamedNodeMap||t.MozNamedAttrMap),t.HTMLFormElement;let d=t.DOMParser,h=t.trustedTypes,f=a.prototype,g=Gr(f,"cloneNode"),E=Gr(f,"remove"),I=Gr(f,"removeAttributeNode"),S=Gr(f,"nextSibling"),L=Gr(f,"childNodes"),V=Gr(f,"parentNode"),K=Gr(f,"shadowRoot"),oe=Gr(f,"attributes"),ge=s&&s.prototype?Gr(s.prototype,"nodeType"):null,te=s&&s.prototype?Gr(s.prototype,"nodeName"):null,C=s&&s.prototype?Gr(s.prototype,"ownerDocument"):null,v=function(T){return ge?ge(T):T.nodeType},A=function(T){return te?te(T):T.nodeName};if(typeof o=="function"){let W=n.createElement("template");W.content&&W.content.ownerDocument&&(n=W.content.ownerDocument)}let R,N="",O,D=!1,Vn=0,es=function(){if(Vn>0)throw Kc('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},ts=function(T){es(),Vn++;try{return R.createHTML(T)}finally{Vn--}},Da=function(T){es(),Vn++;try{return R.createScriptURL(T)}finally{Vn--}},Ra=function(){return D||(O=$ne(h,i),D=!0),O},ns=n,Fl=ns.implementation,hm=ns.createNodeIterator,_i=ns.createDocumentFragment,nn=ns.getElementsByTagName,kv=r.importNode,He=E2();e.isSupported=typeof _2=="function"&&typeof V=="function"&&Fl&&Fl.createHTMLDocument!==void 0;let Fv=bne,Na=One,Uv=Mne,Vv=Lne,Ul=Pne,Vl=xne,Bl=kne,wh=Une,Gl=p2,Je=null,jl=xe({},[...u2,...ON,...MN,...LN,...d2]),rt=null,bh=xe({},[...h2,...PN,...f2,...hy]),sr=Object.seal(gd(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),rs=null,Hl=null,Wr=Object.seal(gd(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),fm=!0,wa=!0,$l=!1,Wl=!0,dt=!1,yt=!0,wr=!1,zl=!1,ba=null,ql=null,co=!1,lo=!1,Oa=!1,is=!1,pm=!0,gm=!1,Kl="user-content-",Yl=!0,Xl=!1,br={},Ti=null,Ql=xe({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]),yi=null,Oh=xe({},["audio","video","img","source","image","track"]),Ma=null,Mh=xe({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Ii="http://www.w3.org/1998/Math/MathML",La="http://www.w3.org/2000/svg",ct="http://www.w3.org/1999/xhtml",uo=ct,ho=!1,fo=null,Bv=xe({},[Ii,La,ct],bN),mm=Qt(["mi","mo","mn","ms","mtext"]),vi=xe({},mm),Em=Qt(["annotation-xml"]),Lh=xe({},Em),Jl=xe({},["title","style","font","a","script"]),os=null,Ph=["application/xhtml+xml","text/html"],Zl="text/html",$e=null,po=null,_m=n.createElement("form"),eu=function(T){return T instanceof RegExp||T instanceof Function},Pa=function(){let T=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(po&&po===T)return;(!T||typeof T!="object")&&(T={}),T=Ir(T),os=Ph.indexOf(T.PARSER_MEDIA_TYPE)===-1?Zl:T.PARSER_MEDIA_TYPE,$e=os==="application/xhtml+xml"?bN:Pp,Je=Ks(T,"ALLOWED_TAGS",jl,{transform:$e}),rt=Ks(T,"ALLOWED_ATTR",bh,{transform:$e}),fo=Ks(T,"ALLOWED_NAMESPACES",Bv,{transform:bN}),Ma=Ks(T,"ADD_URI_SAFE_ATTR",Mh,{transform:$e,base:Mh}),yi=Ks(T,"ADD_DATA_URI_TAGS",Oh,{transform:$e,base:Oh}),Ti=Ks(T,"FORBID_CONTENTS",Ql,{transform:$e}),rs=Ks(T,"FORBID_TAGS",Ir({}),{transform:$e}),Hl=Ks(T,"FORBID_ATTR",Ir({}),{transform:$e}),br=nr(T,"USE_PROFILES")?T.USE_PROFILES&&typeof T.USE_PROFILES=="object"?Ir(T.USE_PROFILES):T.USE_PROFILES:!1,fm=T.ALLOW_ARIA_ATTR!==!1,wa=T.ALLOW_DATA_ATTR!==!1,$l=T.ALLOW_UNKNOWN_PROTOCOLS||!1,Wl=T.ALLOW_SELF_CLOSE_IN_ATTR!==!1,dt=T.SAFE_FOR_TEMPLATES||!1,yt=T.SAFE_FOR_XML!==!1,wr=T.WHOLE_DOCUMENT||!1,lo=T.RETURN_DOM||!1,Oa=T.RETURN_DOM_FRAGMENT||!1,is=T.RETURN_TRUSTED_TYPE||!1,co=T.FORCE_BODY||!1,pm=T.SANITIZE_DOM!==!1,gm=T.SANITIZE_NAMED_PROPS||!1,Yl=T.KEEP_CONTENT!==!1,Xl=T.IN_PLACE||!1,Gl=Rne(T.ALLOWED_URI_REGEXP)?T.ALLOWED_URI_REGEXP:p2,uo=typeof T.NAMESPACE=="string"?T.NAMESPACE:ct,vi=xN(T,"MATHML_TEXT_INTEGRATION_POINTS",()=>xe({},mm)),Lh=xN(T,"HTML_INTEGRATION_POINTS",()=>xe({},Em));let w=xN(T,"CUSTOM_ELEMENT_HANDLING",()=>gd(null));if(sr=gd(null),nr(w,"tagNameCheck")&&eu(w.tagNameCheck)&&(sr.tagNameCheck=w.tagNameCheck),nr(w,"attributeNameCheck")&&eu(w.attributeNameCheck)&&(sr.attributeNameCheck=w.attributeNameCheck),nr(w,"allowCustomizedBuiltInElements")&&typeof w.allowCustomizedBuiltInElements=="boolean"&&(sr.allowCustomizedBuiltInElements=w.allowCustomizedBuiltInElements),ln(sr),dt&&(wa=!1),Oa&&(lo=!0),br&&(Je=xe({},d2),rt=gd(null),br.html===!0&&(xe(Je,u2),xe(rt,h2)),br.svg===!0&&(xe(Je,ON),xe(rt,PN),xe(rt,hy)),br.svgFilters===!0&&(xe(Je,MN),xe(rt,PN),xe(rt,hy)),br.mathMl===!0&&(xe(Je,LN),xe(rt,f2),xe(rt,hy))),Wr.tagCheck=null,Wr.attributeCheck=null,nr(T,"ADD_TAGS")&&(typeof T.ADD_TAGS=="function"?Wr.tagCheck=T.ADD_TAGS:md(T.ADD_TAGS)&&(Je===jl&&(Je=Ir(Je)),xe(Je,T.ADD_TAGS,$e))),nr(T,"ADD_ATTR")&&(typeof T.ADD_ATTR=="function"?Wr.attributeCheck=T.ADD_ATTR:md(T.ADD_ATTR)&&(rt===bh&&(rt=Ir(rt)),xe(rt,T.ADD_ATTR,$e))),nr(T,"ADD_FORBID_CONTENTS")&&md(T.ADD_FORBID_CONTENTS)&&(Ti===Ql&&(Ti=Ir(Ti)),xe(Ti,T.ADD_FORBID_CONTENTS,$e)),Yl&&(Je["#text"]=!0),wr&&xe(Je,["html","head","body"]),Je.table&&(xe(Je,["tbody"]),delete rs.tbody),T.TRUSTED_TYPES_POLICY){if(typeof T.TRUSTED_TYPES_POLICY.createHTML!="function")throw Kc('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof T.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Kc('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');let G=R;R=T.TRUSTED_TYPES_POLICY;try{N=ts("")}catch(ee){throw R=G,ee}}else T.TRUSTED_TYPES_POLICY===null?(R=void 0,N=""):(R===void 0&&(R=Ra()),R&&typeof N=="string"&&(N=ts("")));Qt&&Qt(T),po=T},xh=xe({},[...ON,...MN,...Nne]),kh=xe({},[...LN,...wne]),Gv=function(T,w,G){return w.namespaceURI===ct?T==="svg":w.namespaceURI===Ii?T==="svg"&&(G==="annotation-xml"||vi[G]):!!xh[T]},tu=function(T,w,G){return w.namespaceURI===ct?T==="math":w.namespaceURI===La?T==="math"&&Lh[G]:!!kh[T]},Tm=function(T,w,G){return w.namespaceURI===La&&!Lh[G]||w.namespaceURI===Ii&&!vi[G]?!1:!kh[T]&&(Jl[T]||!xh[T])},Fh=function(T){let w=V(T);(!w||!w.tagName)&&(w={namespaceURI:uo,tagName:"template"});let G=Pp(T.tagName),ee=Pp(w.tagName);return fo[T.namespaceURI]?T.namespaceURI===La?Gv(G,w,ee):T.namespaceURI===Ii?tu(G,w,ee):T.namespaceURI===ct?Tm(G,w,ee):!!(os==="application/xhtml+xml"&&fo[T.namespaceURI]):!1},Kn=function(T){Op(e.removed,{element:T});try{V(T).removeChild(T)}catch{if(E(T),!V(T))throw Kc("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},Si=function(T,w,G){try{I(T,w)}catch{try{T.removeAttribute(G)}catch{}}},ss=function(T){xa(T);let w=L(T);if(w){let ee=[];Yc(w,ce=>{Op(ee,ce)}),Yc(ee,ce=>{try{E(ce)}catch{}})}let G=oe(T);if(G)for(let ee=G.length-1;ee>=0;--ee){let ce=G[ee],de=ce&&ce.name;typeof de=="string"&&Si(T,ce,de)}},go=function(T,w,G){if(!G)try{G=w.getAttributeNode(T)}catch{G=null}Op(e.removed,{attribute:G||null,from:w});try{G?I(w,G):w.removeAttribute(T)}catch{try{w.removeAttribute(T)}catch{}}if(T==="is")if(lo||Oa)try{Kn(w)}catch{}else try{w.setAttribute(T,"")}catch{}},ym=function(T){let w=oe(T);if(w)for(let G=w.length-1;G>=0;--G){let ee=w[G],ce=ee&&ee.name;typeof ce!="string"||rt[$e(ce)]||Si(T,ee,ce)}},xa=function(T){let w=[T];for(;w.length>0;){let G=w.pop();v(G)===yr.element&&ym(G);let ce=L(G);if(ce)for(let de=ce.length-1;de>=0;--de)w.push(ce[de])}},Uh=function(T,w){return yt?T==="patchsrc"?!0:T==="for"&&w!=="label"&&w!=="output":!1},Vh=function(T){if(!yt)return;let w=[T];for(;w.length>0;){let G=w.pop(),ee=v(G);if(ee===yr.processingInstruction||ee===yr.comment&&Pn(m2,G.data)){try{E(G)}catch{}continue}if(ee===yr.element){let de=G,et=$e(A(G));try{de.hasAttribute&&de.hasAttribute("patchsrc")&&de.removeAttribute("patchsrc"),de.hasAttribute&&de.hasAttribute("for")&&Uh("for",et)&&de.removeAttribute("for")}catch{}}let ce=L(G);if(ce)for(let de=ce.length-1;de>=0;--de)w.push(ce[de])}},nu=function(T){let w=null,G=null;if(co)T="<remove></remove>"+T;else{let de=s2(T,/^[\r\n\t ]+/);G=de&&de[0]}os==="application/xhtml+xml"&&uo===ct&&(T='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+T+"</body></html>");let ee=R?ts(T):T;if(uo===ct)try{w=new d().parseFromString(ee,os)}catch{}if(!w||!w.documentElement){w=Fl.createDocument(uo,"template",null);try{w.documentElement.innerHTML=ho?N:ee}catch{}}let ce=w.body||w.documentElement;return T&&G&&ce.insertBefore(n.createTextNode(G),ce.childNodes[0]||null),uo===ct?nn.call(w,wr?"html":"body")[0]:wr?w.documentElement:ce},Bh=function(T){let w=C?C(T):T.ownerDocument;return hm.call(w||T,T,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},ka=function(T){return T=Mp(T,Fv," "),T=Mp(T,Na," "),T=Mp(T,Uv," "),T},Gh=function(T){var w;T.normalize();let G=C?C(T):T.ownerDocument,ee=hm.call(G||T,T,c.SHOW_TEXT|c.SHOW_COMMENT|c.SHOW_CDATA_SECTION|c.SHOW_PROCESSING_INSTRUCTION,null),ce=ee.nextNode();for(;ce;)ce.data=ka(ce.data),ce=ee.nextNode();let de=(w=T.querySelectorAll)===null||w===void 0?void 0:w.call(T,"template");de&&Yc(de,et=>{mo(et.content)&&Gh(et.content)})},ru=function(T){let w=te?te(T):null;return typeof w!="string"||$e(w)!=="form"?!1:typeof T.nodeName!="string"||typeof T.textContent!="string"||typeof T.removeChild!="function"||T.attributes!==oe(T)||typeof T.removeAttribute!="function"||typeof T.removeAttributeNode!="function"||typeof T.getAttributeNode!="function"||typeof T.setAttribute!="function"||typeof T.namespaceURI!="string"||typeof T.insertBefore!="function"||typeof T.hasChildNodes!="function"||T.nodeType!==ge(T)||T.childNodes!==L(T)},mo=function(T){if(!ge||typeof T!="object"||T===null)return!1;try{return ge(T)===yr.documentFragment}catch{return!1}},as=function(T){if(!ge||typeof T!="object"||T===null)return!1;try{return typeof ge(T)=="number"}catch{return!1}};function Or(W,T,w){W.length!==0&&Yc(W,G=>{G.call(e,T,w,po)})}let Eo=function(T,w){return!!(yt&&T.hasChildNodes()&&!as(T.firstElementChild)&&Pn(g2,T.textContent)&&Pn(g2,T.innerHTML)||yt&&T.namespaceURI===ct&&Gne[w]&&(as(T.firstElementChild)||typeof T.textContent=="string"&&Pn(jne[w],T.textContent))||T.nodeType===yr.processingInstruction||yt&&T.nodeType===yr.comment&&Pn(m2,T.data))},Yn=function(T,w){if(T instanceof RegExp)return Pn(T,w);if(T instanceof Function){for(var G=arguments.length,ee=new Array(G>2?G-2:0),ce=2;ce<G;ce++)ee[ce-2]=arguments[ce];return!!T(w,...ee)}return!1},iu=function(T,w,G){if(!rs[w]&&cs(w)&&Yn(sr.tagNameCheck,w))return!1;if(Yl&&!Ti[w]){let ee=V(T),ce=L(T);if(ce&&ee){let de=ce.length;for(let et=de-1;et>=0;--et){let ht=T===G?g(ce[et],!0):ce[et];ee.insertBefore(ht,S(T))}}}return Kn(T),!0},Fa=function(T,w,G,ee){return T.length===0?w:w===G||w===ee?Ir(w):w},jh=function(T,w){return T===w||V(T)!==null?!1:(Xl&&xa(T),!0)},Ze=function(T,w){if(Or(He.beforeSanitizeElements,T,null),jh(T,w))return!0;if(ru(T))return Kn(T),!0;let G=$e(A(T));if(Je=Fa(He.uponSanitizeElement,Je,jl,ba),Or(He.uponSanitizeElement,T,{tagName:G,allowedTags:Je}),jh(T,w))return!0;if(Eo(T,G))return Kn(T),!0;if(rs[G]||!(Wr.tagCheck instanceof Function&&Wr.tagCheck(G))&&!Je[G]){let ce=iu(T,G,w);return ce===!1&&Or(He.afterSanitizeElements,T,null),ce}if(v(T)===yr.element&&!Fh(T)||(G==="noscript"||G==="noembed"||G==="noframes")&&Pn(Vne,T.innerHTML))return Kn(T),!0;if(dt&&T.nodeType===yr.text){let ce=ka(T.textContent);T.textContent!==ce&&(Op(e.removed,{element:T.cloneNode()}),T.textContent=ce)}return Or(He.afterSanitizeElements,T,null),!1},Ua=function(T,w,G){if(Hl[w]||Uh(w,T)||pm&&(w==="id"||w==="name")&&(G in n||G in _m))return!1;let ee=rt[w]||Wr.attributeCheck instanceof Function&&Wr.attributeCheck(w,T);return wa&&Pn(Vv,w)||fm&&Pn(Ul,w)?!0:ee?Ma[w]||Pn(Gl,Mp(G,Bl,""))||(w==="src"||w==="xlink:href"||w==="href")&&T!=="script"&&a2(G,"data:")===0&&yi[T]||$l&&!Pn(Vl,Mp(G,Bl,""))?!0:!G:cs(T)&&Yn(sr.tagNameCheck,T)&&Yn(sr.attributeNameCheck,w,T)||w==="is"&&sr.allowCustomizedBuiltInElements&&Yn(sr.tagNameCheck,G)},Va=xe({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),cs=function(T){return!Va[Pp(T)]&&Pn(wh,T)},jv=function(T,w,G,ee){if(R&&typeof h=="object"&&typeof h.getAttributeType=="function"&&!G)switch(h.getAttributeType(T,w)){case"TrustedHTML":return ts(ee);case"TrustedScriptURL":return Da(ee)}return ee},Im=function(T,w,G,ee){try{return G?T.setAttributeNS(G,w,ee):T.setAttribute(w,ee),ru(T)?(Kn(T),!1):!0}catch{return go(w,T),!1}},vm=function(T){Or(He.beforeSanitizeAttributes,T,null);let w=T.attributes;if(!w||ru(T))return;rt=Fa(He.uponSanitizeAttribute,rt,bh,ql);let G={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:rt,forceKeepAttr:void 0},ee=w.length,ce=$e(T.nodeName);for(;ee--;){let de=w[ee],et=de.name,ht=de.namespaceURI,In=de.value,It=$e(et),$h=In,pn=et==="value"?$h:Ine($h),ls=!1;if(G.attrName=It,G.attrValue=pn,G.keepAttr=!0,G.forceKeepAttr=void 0,Or(He.uponSanitizeAttribute,T,G),pn=G.attrValue,gm&&(It==="id"||It==="name")&&a2(pn,Kl)!==0&&(go(et,T,de),pn=Kl+pn,ls=!0),yt&&Pn(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,pn)){go(et,T,de);continue}if(It==="attributename"&&s2(pn,"href")){go(et,T,de);continue}if(!G.forceKeepAttr){if(!G.keepAttr){go(et,T,de);continue}if(!Wl&&Pn(Bne,pn)){go(et,T,de);continue}if(dt&&(pn=ka(pn)),!Ua(ce,It,pn)){go(et,T,de);continue}pn=jv(ce,It,ht,pn),pn!==$h&&Im(T,et,ht,pn)&&ls&&o2(e.removed)}}Or(He.afterSanitizeAttributes,T,null)},ou=function(T){let w=null,G=Bh(T);for(Or(He.beforeSanitizeShadowDOM,T,null);w=G.nextNode();)if(Or(He.uponSanitizeShadowNode,w,null),Ze(w,T),vm(w),mo(w.content)&&ou(w.content),v(w)===yr.element){let ee=K(w);mo(ee)&&(Hh(ee),ou(ee))}Or(He.afterSanitizeShadowDOM,T,null)},Hh=function(T){let w=[{node:T,shadow:null}];for(;w.length>0;){let G=w.pop();if(G.shadow){ou(G.shadow);continue}let ee=G.node,de=v(ee)===yr.element,et=L(ee);if(et)for(let ht=et.length-1;ht>=0;--ht)w.push({node:et[ht],shadow:null});if(de){let ht=te?te(ee):null;if(typeof ht=="string"&&$e(ht)==="template"){let In=ee.content;mo(In)&&w.push({node:In,shadow:null})}}if(de){let ht=K(ee);mo(ht)&&w.push({node:null,shadow:ht},{node:ht,shadow:null})}}};return e.sanitize=function(W){let T=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},w=null,G=null,ee=null,ce=null;if(ho=!W,ho&&(W="<!-->"),typeof W!="string"&&!as(W)&&(W=Dne(W),typeof W!="string"))throw Kc("dirty is not a string, aborting");if(!e.isSupported)return W;zl?(Je=ba,rt=ql):Pa(T),(He.uponSanitizeElement.length>0||He.uponSanitizeAttribute.length>0)&&(Je=Ir(Je)),He.uponSanitizeAttribute.length>0&&(rt=Ir(rt)),e.removed=[];let de=Xl&&typeof W!="string"&&as(W);if(de){Vh(W);let In=A(W);if(typeof In=="string"){let It=$e(In);if(!Je[It]||rs[It])throw ss(W),Kc("root node is forbidden and cannot be sanitized in-place")}if(ru(W))throw ss(W),Kc("root node is clobbered and cannot be sanitized in-place");try{Hh(W)}catch(It){throw ss(W),It}}else if(as(W))w=nu("<!---->"),G=w.ownerDocument.importNode(W,!0),G.nodeType===yr.element&&G.nodeName==="BODY"||G.nodeName==="HTML"?w=G:w.appendChild(G),Hh(w);else{if(!lo&&!dt&&!wr&&W.indexOf("<")===-1)return R&&is?ts(W):W;if(w=nu(W),!w)return lo?null:is?N:""}w&&co&&Kn(w.firstChild);let et=de?W:w;try{let In=Bh(et);for(;ee=In.nextNode();)Ze(ee,et),vm(ee),mo(ee.content)&&ou(ee.content)}catch(In){throw de&&(ss(W),Yc(e.removed,It=>{It.element&&xa(It.element)})),In}if(de)return Yc(e.removed,In=>{In.element&&xa(In.element)}),dt&&Gh(W),W;if(lo){if(dt&&Gh(w),Oa)for(ce=_i.call(w.ownerDocument);w.firstChild;)ce.appendChild(w.firstChild);else ce=w;return(rt.shadowroot||rt.shadowrootmode)&&(ce=kv.call(r,ce,!0)),ce}let ht=wr?w.outerHTML:w.innerHTML;return wr&&Je["!doctype"]&&w.ownerDocument&&w.ownerDocument.doctype&&w.ownerDocument.doctype.name&&Pn(Fne,w.ownerDocument.doctype.name)&&(ht="<!DOCTYPE "+w.ownerDocument.doctype.name+`>
150
- `+ht),dt&&(ht=ka(ht)),R&&is?ts(ht):ht},e.setConfig=function(){let W=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Pa(W),zl=!0,ba=Je,ql=rt},e.clearConfig=function(){po=null,zl=!1,ba=null,ql=null,R=O,N=""},e.isValidAttribute=function(W,T,w){po||Pa({});let G=$e(W),ee=$e(T);return Ua(G,ee,w)},e.addHook=function(W,T){typeof T=="function"&&nr(He,W)&&Op(He[W],T)},e.removeHook=function(W,T){if(nr(He,W)){if(T!==void 0){let w=Tne(He[W],T);return w===-1?void 0:yne(He[W],w,1)[0]}return o2(He[W])}},e.removeHooks=function(W){nr(He,W)&&(He[W]=[])},e.removeAllHooks=function(){He=E2()},e}var fy=I2();var Wne=/^\/\/\*\[@id='([^']+)'\]/;function UN(t){try{if(typeof t!="string")return null;let e=Wne.exec(t);if(!e)return null;let n=e[1],r=t.slice(e[0].length);if(!r)return{rootId:n,segments:[]};if(!r.startsWith("/"))return null;let i=[],o="",s=0,a=null;for(let c=1;c<r.length;c++){let l=r[c];if(a){l===a&&(a=null),o+=l;continue}if(l==="'"||l==='"')a=l;else if(l==="[")s++;else if(l==="]")s--;else if(l==="/"&&s===0){if(!o)return null;i.push(o),o="";continue}o+=l}return!o||a||s!==0?null:(i.push(o),{rootId:n,segments:i})}catch{return null}}var zne=[/:r[0-9a-z]+:/i,/_r_[0-9a-z]+_/i,/«r[0-9a-z]+»/i,/^radix-/i];function S2(t){try{return t?zne.some(e=>e.test(t)):!1}catch{return!1}}function Uke(t){if(Array.isArray(t))return v2(t);if(!t||typeof t!="object"||!("documentIds"in t))return{documentIds:null};let e=t.documentIds;return Array.isArray(e)?v2(e):{documentIds:[],problem:"not-an-array"}}function v2(t){let e=t.filter(n=>typeof n=="string"||typeof n=="number"&&Number.isFinite(n)).map(n=>String(n)).filter(n=>n.length>0);return B({documentIds:Array.from(new Set(e)).sort()},e.length<t.length?{problem:"dropped-entries"}:{})}function Vke(t,e){return t===null||e===null?t===e:t.length===e.length&&t.every((n,r)=>n===e[r])}var A2={ADD_TAGS:["velt-skeleton-loader"],ADD_ATTR:["border-radius","target"]},C2=(()=>{let e=class e{constructor(r,i,o,s){this.analyticsService=r,this.rendererFactory2=i,this.loggingService=o,this.sanitizer=s,this.smoothScrollShieldHandler=null,this.smoothScrollShieldLoadListener=null,this.isVideoEditorHandlingDelete=!1,this.pageScrollHeight=0,this.enableRectSelectionSubject$=new ie(!1),this.enableRectSelection$=this.enableRectSelectionSubject$.asObservable(),this.scrollableElementsIds$=new ie([]),this.mousedown=!1,this.windowMouseDown$=new Rt,this.windowPointerMove$=new ie(null),this.windowPointerUp$=new ie(null),this.documentSelectionChange$=new ie(null),this.windowClick$=new ie(null),this.windowScroll$=new ie(null),this.windowResize$=new ie(null),this.windowKeyupBackspace$=new ie(null),this.windowKeyupDelete$=new ie(null),this.windowKeyupEsc$=new ie(null),this.windowPopState$=new ie(null),this.documentClick$=new ie(null),this.documentClickSubject$=new Rt,this.documentFocus$=new ie(null),this.windowKeydownShift$=new ie(null),this.windowKeyupShift$=new ie(null),this.mutation$=new ie(null),this.childListMutation$=new ie(null),this.networkStatus$=new ie(!1),this.xpathCache=new Map,this.xpathCacheId=new Map,this.selectedAnnotationsMap$=new ie({}),this.selectedAnnotationsLocationMap$=new ie({}),this.selectedAnnotationsContextIdMap$=new ie({}),this.recordingInProgress$=new ie({}),this.deleteAnnotations$=new ie([]),this.pinHighlighterClass$=new ie(null),this.dialogOpenedInSidebar$=new ie(!1),this.textHighlighterClass$=new ie(null),this.commentPinHighlighter$=new ie(!1),this.deviceInfo$=new ie(new Ur),this.customCss$=new ie(null),this.mutationObserver=null,this.animationFilterEnabled=!1,this.animationLibraryDetected=null,this.staticAnimationCache=new WeakMap,this.ANIMATION_LIBRARY_SELECTOR=["[data-gsap]",".gsap-marker-start",".gsap-marker-end","[data-gsap-id]",".swiper-slide",".swiper-wrapper",".swiper-pagination",".swiper-pagination-bullet","[data-aos]"].join(", "),this.previousMousePosition={pageX:0,pageY:0,clientX:0,clientY:0},this.currentMousePosition={pageX:0,pageY:0,clientX:0,clientY:0,element:{xpath:"",topPercentage:0,leftPercentage:0}},this.nodeMap={},this.unlistenElementScroll={},this.tabId=null,this.dynamicIdPatterns=[/^yui_[a-z0-9_]+$/i],this.excludeClassList=["show-pin-cursor"],this.filterSnippylyNodes=a=>{try{let c=[];return a.forEach(l=>{if(!qi(l))if(l instanceof HTMLElement){if(l.className.includes("cdk-overlay-container")||l.className.includes("cdk-overlay-connected-position-bounding-box"))return;if(l.className.includes("cdk-overlay")){let d=!1;l.childNodes.forEach(h=>{qi(h)&&(d=!0)}),d||c.push(l)}else c.push(l)}else c.push(l)}),c}catch(c){return this.loggingService.catch("Error in DomService filterSnippylyNodes: ",c),[]}},this.loggingService.log("%c[WB] Creating CLASS: DomService","color: blue;");try{this.analyticsService.setDomService(this),this.renderer=this.rendererFactory2.createRenderer(null,null);let a=this.calculateScreenSize();this.currentScreenSize$=new ie(a),this.currentMousePosition$=new ie(this.currentMousePosition),this.detectNetworkStatusChange(),this.getScrollableElementsIds$().pipe(Ya(),eE(([c,l])=>{try{let d=l.filter(f=>!c.includes(f)),h=c.filter(f=>!l.includes(f));h.length&&h.map(g=>document.getElementById(g)).filter(g=>g).forEach(g=>{this.unlistenElementScroll&&this.unlistenElementScroll[g.id]&&this.unlistenElementScroll[g.id]()}),d.length&&d.map(g=>document.getElementById(g)).filter(g=>g).forEach(g=>{this.unlistenElementScroll[g.id]=this.renderer.listen(g,"scroll",E=>{let I=this.calculateScreenSize();this.currentScreenSize$.next(I)})})}catch(d){this.loggingService.catch("Error in DomService getScrollableElementsIds subscription: ",d)}})).subscribe(()=>{},c=>{this.loggingService.catch("Error in DomService getScrollableElementsIds subscription: ",c)}),this.getSelectedAnnotationsMap$().subscribe(c=>{Object.keys(c||{})?.length?jV("snippylyUserScalableNo","viewport","width=device-width, user-scalable=no"):HV("snippylyUserScalableNo")},c=>{this.loggingService.catch("Error in DomService getSelectedAnnotationsMap$ subscription: ",c)})}catch(a){this.loggingService.catch("Error in DomService constructor: ",a)}}setDocService(r){try{this.docService=r,this.subscribeToDomEvents()}catch(i){this.loggingService.catch("Error in DomService setDocService: ",i)}}setDynamicIdPatterns(r){try{let i=r.map(o=>typeof o=="string"?new RegExp(o):o).filter(Boolean);i.length&&(this.dynamicIdPatterns=i)}catch(i){this.loggingService.catch("Error in DomService setDynamicIdPatterns: ",i)}}isLikelyDynamicId(r){try{return r?this.dynamicIdPatterns.some(i=>i.test(r)):!1}catch{return!1}}isGeneratedId(r){return this.isLikelyDynamicId(r)||S2(r)}getStableAttributes(r){try{let i={};if(!r.getAttributeNames)return i;let o=new Set(["id","class","style"]);return r.getAttributeNames().forEach(a=>{if(o.has(a)||a.includes("snippyly")||a.includes("velt"))return;let c=r.getAttribute(a);c&&c.length<=256&&(i[a]=c)}),i}catch{return{}}}buildStableElementSelector(r,i){try{if(Object.keys(i).length===0)return;let s=[r.tagName?.toLowerCase()],a=["data-","aria-","role","name","title","type"];return Object.keys(i).sort((l,d)=>{let h=a.findIndex(g=>l.startsWith(g)),f=a.findIndex(g=>d.startsWith(g));return(h===-1?99:h)-(f===-1?99:f)}).slice(0,4).forEach(l=>{let d=CSS.escape(i[l]);s.push(`[${l}="${d}"]`)}),s.join("")}catch{return}}getVisibleText(r,i=400){try{let o=document.createTreeWalker(r,NodeFilter.SHOW_TEXT,null),s="",a,c=0;for(;(a=o.nextNode())&&s.length<i;){let l=(a.textContent||"").replace(/\s+/g," ").trim();if(l&&(s+=(s?" ":"")+l),c++,c>100)break}return s.slice(0,i)}catch{return""}}hashText(r){try{return DV(r)}catch{return}}generateRobustXPath(r,i){try{let o=i?.maxDepth||10,s=i?.useAbsolutePath||!1,a=[],c=r,l=0;for(;c&&c!==document.documentElement&&l<o;){let g=this.buildRobustXPathSegment(c);if(g&&(a.unshift(g),this.isStrongAnchorSegment(g)))break;c=c.parentElement,l++}if(a.length===0)return;let h=(s?"/":"//")+a.join("/");return a.some(g=>g.includes("[@")||g.includes("[contains(@class"))?h:void 0}catch{return}}buildRobustXPathSegment(r){try{let i=r.tagName.toLowerCase(),o=r.id;if(o&&!this.isLikelyDynamicId(o)&&document.querySelectorAll(`[id="${CSS.escape(o)}"]`).length===1)return`*[@id=${this.escapeXPathValue(o)}]`;let s=["data-region","data-instanceid","data-action","data-key","data-block","data-activityid"];for(let g of s){let E=r.getAttribute(g);if(E)return`${i}[@${g}=${this.escapeXPathValue(E)}]`}let a=Array.from(r.attributes).filter(g=>g.name.startsWith("data-")&&!g.name.includes("snippyly")&&!g.name.includes("velt")&&g.value.length<100).sort((g,E)=>g.value.length-E.value.length);if(a.length>0){let g=a[0];return`${i}[@${g.name}=${this.escapeXPathValue(g.value)}]`}let c=r.getAttribute("role");if(c)return`${i}[@role=${this.escapeXPathValue(c)}]`;let l=r.getAttribute("aria-label");if(l&&l.length<50)return`${i}[@aria-label=${this.escapeXPathValue(l)}]`;let d=r.getAttribute("name");if(d)return`${i}[@name=${this.escapeXPathValue(d)}]`;let h=r.getAttribute("type");if(h)return`${i}[@type=${this.escapeXPathValue(h)}]`;let f=Array.from(r.classList||[]).filter(g=>g.length>0&&g.length<40&&!g.includes("yui")&&!g.includes("velt")&&!g.includes("snippyly")&&!this.excludeClassList.includes(g)).slice(0,2);if(f.length>0){let g=f.map(E=>`contains(@class, ${this.escapeXPathValue(E)})`).join(" and ");return`${i}[${g}]`}if(r.parentElement){let g=Array.from(r.parentElement.children).filter(E=>E.tagName===r.tagName);if(g.length>1){let E=g.indexOf(r)+1;return`${i}[${E}]`}}return i}catch{return}}isStrongAnchorSegment(r){try{return!!(r.includes("[@id=")||["main","navigation","banner","contentinfo","complementary","search"].some(s=>r.includes(`[@role='${s}']`))||["data-region","data-instanceid","data-activityid"].some(s=>r.includes(`[@${s}=`)))}catch{return!1}}escapeXPathValue(r,i=!0){try{return r.includes("'")?r.includes('"')?`concat(${r.split("'").map(a=>`'${a}'`).join(`,"'",`)})`:i?`"${r}"`:r:i?`'${r}'`:r}catch{try{return`concat(${r.split("'").map(c=>`'${c}'`).join(`,"'",`)})`}catch{return i?`'${r}'`:r}}}getElementFromRobustXPath(r){try{return document.evaluate(r,document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue}catch{return null}}getAllElementsFromRobustXPath(r){try{let i=document.evaluate(r,document,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null),o=[];for(let s=0;s<i.snapshotLength;s++){let a=i.snapshotItem(s);a instanceof Element&&o.push(a)}return o}catch{return[]}}generateAnchorRecord(r,i){try{let o=this.generateAnchorRecordForElement(r,i),s=null;if(r.parentElement&&r.parentElement instanceof HTMLElement&&rd(r.parentElement)&&r.parentElement!==document.body&&(s=r.parentElement),o&&s){let a=this.generateAnchorRecordForElement(s,i);a&&(o.parent=a)}return o}catch(o){return this.loggingService.catch("Error in DomService generateAnchorRecord: ",o),null}}generateAnchorRecordForElement(r,i){try{if(!r)return null;let o=r,s=o.tagName?.toUpperCase();if(!s)return null;let a=o.id&&!this.isLikelyDynamicId(o.id)?o.id:void 0,c=this.getStableAttributes(o),l=this.buildStableElementSelector(o,c),d=this.getVisibleText(o),h=this.hashText(d||""),f=this.generateRobustXPath(o),g=this.getXPath(o,!1,!1,void 0,{ignoreGeneratedIds:i?.ignoreGeneratedIds}),E=this.getXPath(o,!0),I=this.getXPath(o,!0,!0);return{version:"1.0",id:a,tagName:s,elementSelector:l,robustXPath:f||void 0,xPath:g||void 0,fXPath:E||void 0,cfXPath:I||void 0,contentHash:h?{value:h,algorithm:"md5",source:"textContent"}:void 0,createdAt:Date.now()}}catch(o){return this.loggingService.catch("Error in DomService generateAnchorRecordForElement: ",o),null}}resolveAnchorRecord(r){try{let i=[],o=null,s=(h,f,g=0)=>{let E=[],I=g;if(E.push({method:f,score:g}),r.tagName&&h.tagName?.toUpperCase()===r.tagName&&(I+=10,E.push({method:"tagName-match",score:10})),r.contentHash?.value){let S=this.getVisibleText(h);this.hashText(S)===r.contentHash.value&&(I+=30,E.push({method:"contentHash-match",score:30}))}i.push({el:h,score:I,by:f,scoreBreakdown:E})};if(r.id){let h=document.querySelectorAll(`#${CSS.escape(r.id)}`);if(h.length===1)return{element:h[0],matchedBy:"id",score:90};h.length>1&&h.forEach(f=>s(f,"id-duplicate",70))}if(r.elementSelector){let h=document.querySelectorAll(r.elementSelector);if(h.length===1)return{element:h[0],matchedBy:"element-selector",score:80};h.forEach(f=>s(f,"element-selector-duplicate",60))}r.robustXPath&&this.getAllElementsFromRobustXPath(r.robustXPath).slice(0,20).forEach(E=>s(E,"robustXPath",50)),r?.parent&&(o=this.resolveAnchorRecord(r.parent),o.element&&o.element.querySelectorAll(r.tagName?.toLowerCase()||"*").forEach(f=>s(f,"parent+tag",40)));let a=(h,f,g)=>{if(!h)return;let E=this.getElementFromXPath(h);E&&s(E,f||"xpath",g||30)};if(a(r.xPath,"xPath",30),a(r.cfXPath,"cfXPath",30),a(r.fXPath,"fXPath",30),r.contentHash?.value&&i.length===0){let f=g=>{let E=0;for(let I=0;I<g.length&&E<400;I++){let S=g[I];if(E++,!this.isElementVisible(S))continue;let L=this.getVisibleText(S),V=this.hashText(L);V&&V===r.contentHash?.value&&s(S,"contentHash",15)}};if(o?.element&&o?.element instanceof Element){let g=o?.element?.querySelectorAll("*");f(g)}}if(!i.length)return{element:null};i.sort((h,f)=>f.score-h.score);let c=i[0].score,l=i.filter(h=>h.score===c);if(l.length>1){let h=[{path:r.xPath,label:"xPath"},{path:r.cfXPath,label:"cfXPath"},{path:r.fXPath,label:"fXPath"}];for(let f of h)if(f.path){let g=this.getElementFromXPath(f.path);if(g){let E=l.find(I=>I.el===g);if(E)return{element:E.el,matchedBy:`${E.by}+position`,score:E.score,scoreBreakdown:E.scoreBreakdown}}}}let d=i[0];return{element:d.el,matchedBy:d.by,score:d.score,scoreBreakdown:d.scoreBreakdown}}catch(i){return this.loggingService.catch("Error in DomService resolveAnchorRecord: ",i),{element:null}}}subscribeToDomEvents(){try{this.docService?.getDocumentPaths$().pipe(De(r=>{r?(this.onWindowResize(),this.onWindowScroll(),this.onPointerDown(),this.onWindowClick(),this.onWindowKeyupBackspace(),this.onWindowKeyupDelete(),this.onWindowKeyupEsc(),this.onWindowPopState(),this.onWindowKeydownShift(),this.onWindowKeyupShift(),this.addPointerMoveListener(),this.addPointerUpListener(),this.addSelectionChangeListener(),this.onDocumentFocus(),this.setupSmoothScrollShield()):(this.unsubscribeFromWindowResize(),this.unsubscribeFromWindowScroll(),this.unsubscribeFromPointerDown(),this.unsubscribeFromWindowClick(),this.unsubscribeFromWindowKeyupBackspace(),this.unsubscribeFromWindowKeyupDelete(),this.unsubscribeFromWindowKeyupEsc(),this.unsubscribeFromWindowPopState(),this.unsubscribeFromWindowKeydownShift(),this.unsubscribeFromWindowKeyupShift(),this.unsubscribeFromPointerMoveListener(),this.unsubscribeFromPointerUpListener(),this.unsubscribeFromSelectionChangeListener(),this.unsubscribeFromDocumentFocus(),this.unsetMutationObserver(),this.teardownSmoothScrollShield())})).subscribe(),this.onDocumentClick()}catch(r){this.loggingService.catch("Error in DomService subscribeToDomEvents: ",r)}}setScrollableElementsIds(r){try{r&&r.length&&this.scrollableElementsIds$.next(Array.from(new Set(r)))}catch(i){this.loggingService.catch("Error in DomService setScrollableElementsIds: ",i)}}getScrollableElementsIds$(){return this.loggingService.log("%c[WB] Calling FUNCTION: getScrollableElementsIds$","color: green;"),this.scrollableElementsIds$.asObservable()}removeScrollableElementsIds(){this.scrollableElementsIds$.next([])}setMutationObserver(r){try{this.mutationObserver||(this.loggingService.log("%c[WB] Calling DomService FUNCTION: setMutationObserver","color: green;"),this.loggingService.log("%c[WB] setMutationObserver from: "+r,"color: green;"),this.animationFilterEnabled=this.detectAnimationLibraries(),this.loggingService.log("%c[WB] Animation filter:","color: green;",this.animationFilterEnabled?"ENABLED (library detected)":"DISABLED (no library)"),this.mutationObserver=new MutationObserver(i=>{try{if(i?.find(s=>s?.attributeName===F.VELT_IGNORE_CHANGE_DETECTION))return;let o=i.filter(s=>s.type==="childList").filter(s=>{let a=s.target;return s.removedNodes.forEach(c=>{let l=c;if(typeof l.getAttribute=="function"){let d=l.getAttribute(F.ATTRIBUTES.VELT_ELEMENT_CACHE_ID);if(d!==null&&d!==""){let h=this.xpathCacheId.get(d);h!==void 0&&(this.xpathCacheId.delete(d),this.xpathCache.delete(h))}}}),qi(a)?!1:!!(this.filterSnippylyNodes(s.addedNodes).length||this.filterSnippylyNodes(s.removedNodes).length)});this.animationFilterEnabled?this.childListMutation$.next(o.filter(s=>!this.isAnimatingElement(s.target))):this.childListMutation$.next(o),o.push(...i.filter(s=>s.type==="attributes").filter(s=>!qi(s.target)).filter(s=>this.filterSnippylyNodes([s.target]).length).filter(s=>{if(s){let a=s.target;return a?.classList?.contains("snippyly-sidebar-panel")?!1:a?!a.getAttribute(F.VELT_IGNORE_CHANGE_DETECTION):!0}return!0})),o=o.filter(s=>{let a=!0;return Object.keys(F.INGNORE_MUTATION_OBSERVER_CHANGE_TAGS).forEach(c=>{s.target?.closest(c)&&(a=!1)}),a}),o=o.filter(s=>s.target&&rd(s.target)),this.animationFilterEnabled&&(o=o.filter(s=>!this.isAnimatingElement(s.target))),o.length&&this.mutation$.next(o)}catch(o){this.loggingService.catch("Error in DomService change detection: ",o)}}),this.mutationObserver.observe(document.body,{childList:!0,subtree:!0,attributes:!0}))}catch(i){this.loggingService.catch("Error in DomService change detection: ",i)}}detectAnimationLibraries(){try{if(this.animationLibraryDetected!==null)return this.animationLibraryDetected;let r=window;return r.gsap||r.TweenMax||r.TweenLite||r.TimelineMax||r.TimelineLite?(this.loggingService.log("%c[WB] Detected animation library: GSAP","color: green;"),this.animationLibraryDetected=!0,!0):r.Swiper?(this.loggingService.log("%c[WB] Detected animation library: Swiper","color: green;"),this.animationLibraryDetected=!0,!0):r.AOS?(this.loggingService.log("%c[WB] Detected animation library: AOS","color: green;"),this.animationLibraryDetected=!0,!0):r.anime?(this.loggingService.log("%c[WB] Detected animation library: Anime.js","color: green;"),this.animationLibraryDetected=!0,!0):r.lottie||r.Lottie||r.bodymovin?(this.loggingService.log("%c[WB] Detected animation library: Lottie","color: green;"),this.animationLibraryDetected=!0,!0):document.querySelector("[data-framer-component-type]")?(this.loggingService.log("%c[WB] Detected animation library: Framer Motion","color: green;"),this.animationLibraryDetected=!0,!0):document.querySelector(this.ANIMATION_LIBRARY_SELECTOR)?(this.loggingService.log("%c[WB] Detected animation library: DOM markers","color: green;"),this.animationLibraryDetected=!0,!0):(this.loggingService.log("%c[WB] No animation library detected","color: green;"),this.animationLibraryDetected=!1,!1)}catch{return this.animationLibraryDetected=!1,!1}}isAnimatingElement(r){try{if(!r||typeof r.closest!="function")return!1;let i=window;if(i.gsap&&typeof i.gsap.isTweening=="function"){if(i.gsap.isTweening(r))return!0;if(typeof i.gsap.getTweensOf=="function")try{if(i.gsap.getTweensOf(r).length>0)return!0}catch{}}else if(i.TweenMax&&typeof i.TweenMax.isTweening=="function"){if(i.TweenMax.isTweening(r))return!0;if(typeof i.TweenMax.getTweensOf=="function")try{if(i.TweenMax.getTweensOf(r).length>0)return!0}catch{}}let o=r.style?.cssText||"";if(o){let l=o.includes("transform")||o.includes("translate3d")||o.includes("translate(")||o.includes("scale3d")||o.includes("rotate"),d=o.includes("will-change")&&o.includes("transform"),h=o.includes("transform-style")&&o.includes("preserve-3d");if(l&&(d||h))return!0}if(r.style&&(r.style.animation!==""&&r.style.animation!=="none"||r.style.transition!==""&&r.style.transition!=="none")||r.classList?.contains("animate")||r.classList?.contains("animating")||r.classList?.contains("animated")||r.classList?.contains("animation"))return!0;let s=this.staticAnimationCache.get(r);if(s!==void 0)return s;let a=!1,c=r.className||"";return typeof c=="string"&&(c.includes("slider")&&(c.includes("bullet")||c.includes("pagination"))&&(a=!0),c.includes("swiper-pagination")&&(a=!0)),!a&&(r.hasAttribute("data-aos")||r.hasAttribute("data-motion"))&&(a=!0),!a&&r.closest(this.ANIMATION_LIBRARY_SELECTOR)&&(a=!0),this.staticAnimationCache.set(r,a),a}catch{return!1}}unsetMutationObserver(){try{this.mutationObserver&&(this.mutationObserver.disconnect(),this.mutationObserver=null,this.staticAnimationCache=new WeakMap,this.animationLibraryDetected=null,this.animationFilterEnabled=!1)}catch(r){this.loggingService.catch("Error in DomService unsetMutationObserver: ",r)}}detectNetworkStatusChange(){this.loggingService.log("%c[WB] Calling FUNCTION: detectNetworkStatusChange","color: green;");try{gs(wi(window,"offline").pipe(De(()=>!1)),wi(window,"online").pipe(De(()=>!0)),new fe(r=>{r.next(navigator.onLine),r.complete()})).subscribe(r=>{this.networkStatus$.next(r)})}catch(r){this.loggingService.catch("Error in DomService detectNetworkStatusChange: ",r)}}onWindowResize(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowResize","color: green;");try{this.unsubscribeFromWindowResize(),this.unlistenWindowResize=this.renderer.listen("window","resize",r=>{this.windowResize$.next(r);let i=this.calculateScreenSize();this.deviceInfo$.next(new Ur),this.currentScreenSize$.next(i)})}catch(r){this.loggingService.catch("Error in DomService onWindowResize: ",r)}}unsubscribeFromWindowResize(){try{this.unlistenWindowResize&&typeof this.unlistenWindowResize=="function"&&(this.unlistenWindowResize(),this.unlistenWindowResize=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromWindowResize: ",r)}}onWindowScroll(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowScroll","color: green;");try{this.unsubscribeFromWindowScroll(),this.unlistenWindowScroll=this.renderer.listen("window","scroll",r=>{this.windowScroll$.next(r);let i=this.calculateScreenSize();this.currentScreenSize$.next(i)})}catch(r){this.loggingService.catch("Error in DomService onWindowScroll: ",r)}}unsubscribeFromWindowScroll(){try{this.unlistenWindowScroll&&typeof this.unlistenWindowScroll=="function"&&(this.unlistenWindowScroll(),this.unlistenWindowScroll=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromWindowScroll: ",r)}}setupSmoothScrollShield(){this.loggingService.log("%c[WB] Calling FUNCTION: setupSmoothScrollShield","color: green;");try{if(typeof window>"u"||typeof document>"u"||this.smoothScrollShieldHandler)return;if(this.isSmoothScrollLibPresent()){this.attachSmoothScrollShield();return}if(document.readyState!=="complete"&&!this.smoothScrollShieldLoadListener){let r=()=>{this.smoothScrollShieldLoadListener=null;try{if(this.smoothScrollShieldHandler)return;this.isSmoothScrollLibPresent()&&this.attachSmoothScrollShield()}catch(i){this.loggingService.catch("Error in DomService smooth-scroll shield load re-check: ",i)}};window.addEventListener("load",r,{once:!0}),this.smoothScrollShieldLoadListener=()=>window.removeEventListener("load",r)}}catch(r){this.loggingService.catch("Error in DomService setupSmoothScrollShield: ",r)}}isSmoothScrollLibPresent(){try{if(typeof window>"u"||typeof document>"u")return!1;if(window.ET_SmoothScroll)return!0;let i=document.body;return!!(i&&i.classList&&i.classList.contains("et_smooth_scroll"))}catch(r){return this.loggingService.catch("Error in DomService isSmoothScrollLibPresent: ",r),!1}}attachSmoothScrollShield(){if(this.smoothScrollShieldHandler)return;let r=/^(VELT-|SUPERFLOW-|SNIPPYLY-)/,i=s=>{try{let a=typeof s.composedPath=="function"?s.composedPath():[];for(let c=0;c<a.length;c++){let l=a[c];if(!(!l||l.nodeType!==1)&&l.tagName&&r.test(l.tagName)){s.stopImmediatePropagation();return}}}catch(a){this.loggingService.catch("Error in DomService smoothScrollShield handler: ",a)}};this.smoothScrollShieldHandler=i;let o={capture:!0,passive:!0};window.addEventListener("wheel",i,o),window.addEventListener("mousewheel",i,o),window.addEventListener("touchmove",i,o),this.unlistenWindowWheelShield=()=>window.removeEventListener("wheel",i,o),this.unlistenWindowMouseWheelShield=()=>window.removeEventListener("mousewheel",i,o),this.unlistenWindowTouchMoveShield=()=>window.removeEventListener("touchmove",i,o)}teardownSmoothScrollShield(){this.loggingService.log("%c[WB] Calling FUNCTION: teardownSmoothScrollShield","color: green;");try{try{this.smoothScrollShieldLoadListener&&typeof this.smoothScrollShieldLoadListener=="function"&&(this.smoothScrollShieldLoadListener(),this.smoothScrollShieldLoadListener=null)}catch(r){this.loggingService.catch("Error in DomService teardownSmoothScrollShield (load): ",r)}try{this.unlistenWindowWheelShield&&typeof this.unlistenWindowWheelShield=="function"&&(this.unlistenWindowWheelShield(),this.unlistenWindowWheelShield=null)}catch(r){this.loggingService.catch("Error in DomService teardownSmoothScrollShield (wheel): ",r)}try{this.unlistenWindowMouseWheelShield&&typeof this.unlistenWindowMouseWheelShield=="function"&&(this.unlistenWindowMouseWheelShield(),this.unlistenWindowMouseWheelShield=null)}catch(r){this.loggingService.catch("Error in DomService teardownSmoothScrollShield (mousewheel): ",r)}try{this.unlistenWindowTouchMoveShield&&typeof this.unlistenWindowTouchMoveShield=="function"&&(this.unlistenWindowTouchMoveShield(),this.unlistenWindowTouchMoveShield=null)}catch(r){this.loggingService.catch("Error in DomService teardownSmoothScrollShield (touchmove): ",r)}this.smoothScrollShieldHandler=null}catch(r){this.loggingService.catch("Error in DomService teardownSmoothScrollShield: ",r)}}onPointerDown(){this.loggingService.log("%c[WB] Calling FUNCTION: onPointerDown","color: green;");try{this.unsubscribeFromPointerDown(),this.unlistenPointerDown=this.renderer.listen("window","pointerdown",r=>{this.mousedown=!0,this.windowMouseDown$.next(r),this.setPointerPosition(r)})}catch(r){this.loggingService.catch("Error in DomService onPointerDown: ",r)}}unsubscribeFromPointerDown(){try{this.unlistenPointerDown&&typeof this.unlistenPointerDown=="function"&&(this.unlistenPointerDown(),this.unlistenPointerDown=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromPointerDown: ",r)}}onWindowClick(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowKeyupBackspace","color: green;");try{this.unsubscribeFromWindowClick(),this.unlistenWindowClick=this.renderer.listen("window","click",r=>{this.windowClick$.next(r)})}catch(r){this.loggingService.catch("Error in DomService onWindowClick: ",r)}}unsubscribeFromWindowClick(){try{this.unlistenWindowClick&&typeof this.unlistenWindowClick=="function"&&(this.unlistenWindowClick(),this.unlistenWindowClick=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromWindowClick: ",r)}}onWindowKeyupBackspace(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowKeyupBackspace","color: green;");try{this.unsubscribeFromWindowKeyupBackspace(),this.unlistenWindowKeyupBackspace=this.renderer.listen("window","keyup.backspace",r=>{this.isVideoEditorHandlingDelete||this.windowKeyupBackspace$.next(r)})}catch(r){this.loggingService.catch("Error in DomService onWindowKeyupBackspace: ",r)}}unsubscribeFromWindowKeyupBackspace(){try{this.unlistenWindowKeyupBackspace&&typeof this.unlistenWindowKeyupBackspace=="function"&&(this.unlistenWindowKeyupBackspace(),this.unlistenWindowKeyupBackspace=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromWindowKeyupBackspace: ",r)}}onWindowKeyupDelete(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowKeyupDelete","color: green;");try{this.unsubscribeFromWindowKeyupDelete(),this.unlistenWindowKeyupDelete=this.renderer.listen("window","keyup.delete",r=>{this.isVideoEditorHandlingDelete||this.windowKeyupDelete$.next(r)})}catch(r){this.loggingService.catch("Error in DomService onWindowKeyupDelete: ",r)}}unsubscribeFromWindowKeyupDelete(){try{this.unlistenWindowKeyupDelete&&typeof this.unlistenWindowKeyupDelete=="function"&&(this.unlistenWindowKeyupDelete(),this.unlistenWindowKeyupDelete=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromWindowKeyupDelete: ",r)}}onWindowKeyupEsc(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowKeyupEsc","color: green;");try{this.unsubscribeFromWindowKeyupEsc(),this.unlistenWindowKeyupEsc=this.renderer.listen("window","keyup.esc",r=>{this.windowKeyupEsc$.next(r)})}catch(r){this.loggingService.catch("Error in DomService onWindowKeyupEsc: ",r)}}unsubscribeFromWindowKeyupEsc(){try{this.unlistenWindowKeyupEsc&&typeof this.unlistenWindowKeyupEsc=="function"&&(this.unlistenWindowKeyupEsc(),this.unlistenWindowKeyupEsc=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromWindowKeyupEsc: ",r)}}onWindowPopState(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowPopState","color: green;");try{this.unsubscribeFromWindowPopState(),this.unlistenWindowPopState=this.renderer.listen("window","popstate",r=>{this.windowPopState$.next(r)})}catch(r){this.loggingService.catch("Error in DomService onWindowPopState: ",r)}}unsubscribeFromWindowPopState(){try{this.unlistenWindowPopState&&typeof this.unlistenWindowPopState=="function"&&(this.unlistenWindowPopState(),this.unlistenWindowPopState=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromWindowPopState: ",r)}}onDocumentClick(){this.loggingService.log("%c[WB] Calling FUNCTION: onDocumentClick","color: green;");try{this.unsubscribeFromDocumentClick(),this.documentClickListener=r=>{r?.target?.tagName?.toLowerCase()!==F.TAGS.SUPERFLOW_TOOLBAR&&(this.documentClick$.next(r),this.documentClickSubject$.next(r))},document.addEventListener("click",this.documentClickListener,!0)}catch(r){this.loggingService.catch("Error in DomService onDocumentClick: ",r)}}unsubscribeFromDocumentClick(){try{this.documentClickListener&&typeof this.documentClickListener=="function"&&(document.removeEventListener("click",this.documentClickListener,!0),this.documentClickListener=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromDocumentClick: ",r)}}onDocumentFocus(){this.loggingService.log("%c[WB] Calling FUNCTION: onDocumentFocus","color: green;");try{this.unsubscribeFromDocumentFocus(),this.documentFocusListener=r=>{this.documentFocus$.next(r)},document.addEventListener("focus",this.documentFocusListener,!0)}catch(r){this.loggingService.catch("Error in DomService onDocumentFocus: ",r)}}unsubscribeFromDocumentFocus(){try{this.documentFocusListener&&typeof this.documentFocusListener=="function"&&(document.removeEventListener("focus",this.documentFocusListener,!0),this.documentFocusListener=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromDocumentFocus: ",r)}}onWindowKeydownShift(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowKeydownShift","color: green;");try{this.unsubscribeFromWindowKeydownShift(),this.unlistenWindowKeydownShift=this.renderer.listen("window","keydown.shift",r=>{this.windowKeydownShift$.next(r),this.windowKeyupShift$.next(null)})}catch(r){this.loggingService.catch("Error in DomService onWindowKeydownShift: ",r)}}unsubscribeFromWindowKeydownShift(){try{this.unlistenWindowKeydownShift&&typeof this.unlistenWindowKeydownShift=="function"&&(this.unlistenWindowKeydownShift(),this.unlistenWindowKeydownShift=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromWindowKeydownShift: ",r)}}onWindowKeyupShift(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowKeyupShift","color: green;");try{this.unsubscribeFromWindowKeyupShift(),this.unlistenWindowKeyupShift=this.renderer.listen("window","keyup.shift",r=>{this.windowKeyupShift$.next(r),this.windowKeydownShift$.next(null)})}catch(r){this.loggingService.catch("Error in DomService onWindowKeyupShift: ",r)}}unsubscribeFromWindowKeyupShift(){try{this.unlistenWindowKeyupShift&&typeof this.unlistenWindowKeyupShift=="function"&&(this.unlistenWindowKeyupShift(),this.unlistenWindowKeyupShift=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromWindowKeyupShift: ",r)}}onWindowKeydown$(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowKeydown$","color: green;");try{return wi(window,"keydown")}catch(r){return this.loggingService.catch("Error in DomService onWindowKeydown$: ",r),Wa}}addPointerMoveListener(){this.loggingService.log("%c[WB] Calling FUNCTION: addPointerMoveListener","color: green;");try{this.unsubscribeFromPointerMoveListener(),this.unlistenPointerMoveListener=this.renderer.listen("document","pointermove",r=>{this.windowPointerMove$.next(r),this.mouseMoveEvent=r})}catch(r){this.loggingService.catch("Error in DomService addPointerMoveListener: ",r)}}unsubscribeFromPointerMoveListener(){try{this.unlistenPointerMoveListener&&typeof this.unlistenPointerMoveListener=="function"&&(this.unlistenPointerMoveListener(),this.unlistenPointerMoveListener=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromPointerMoveListener: ",r)}}addPointerUpListener(){this.loggingService.log("%c[WB] Calling FUNCTION: addPointerUpListener","color: green;");try{this.unsubscribeFromPointerUpListener(),this.unlistenPointerUpListener=this.renderer.listen("document","pointerup",r=>{this.windowPointerUp$.next(r)})}catch(r){this.loggingService.catch("Error in DomService addPointerUpListener: ",r)}}unsubscribeFromPointerUpListener(){try{this.unlistenPointerUpListener&&typeof this.unlistenPointerUpListener=="function"&&(this.unlistenPointerUpListener(),this.unlistenPointerUpListener=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromPointerUpListener: ",r)}}addSelectionChangeListener(){this.loggingService.log("%c[WB] Calling FUNCTION: addPointerUpListener","color: green;");try{this.unsubscribeFromSelectionChangeListener(),this.unlistenSelectionChangeListener=this.renderer.listen("document","selectionchange",r=>{this.documentSelectionChange$.next(r)})}catch(r){this.loggingService.catch("Error in DomService addPointerUpListener: ",r)}}unsubscribeFromSelectionChangeListener(){try{this.unlistenSelectionChangeListener&&typeof this.unlistenSelectionChangeListener=="function"&&(this.unlistenSelectionChangeListener(),this.unlistenSelectionChangeListener=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromSelectionChangeListener: ",r)}}updateCurrentMousePosition(r){try{if(this.currentMousePosition.pageX=r.pageX,this.currentMousePosition.pageY=r.pageY,this.currentMousePosition.clientX=r.clientX,this.currentMousePosition.clientY=r.clientY,r.target){let i=this.getXPath(r.target),o=r.target;if(i?.includes("name()='svg'")){let h=this.getXPath(i);h&&(o=h.iterateNext()||r.target)}let s=o.getBoundingClientRect(),a=r.clientX-s.x,c=r.clientY-s.y,l=a*100/(s.width||1),d=c*100/(s.height||1);this.currentMousePosition.element={xpath:i,topPercentage:d,leftPercentage:l}}else this.currentMousePosition.element=null;this.currentMousePosition$.next(this.currentMousePosition)}catch(i){this.loggingService.catch("Error in DomService updateCurrentMousePosition: ",i)}}getTargetElementForCursorPosition(r,i=!0,o=!1,s=!0,a,c=!0,l,d){try{let h=r,f=h?.touches?.length?h.touches[0]?.clientX:h?.clientX,g=h?.touches?.length?h.touches[0]?.clientY:h?.clientY;l&&(f=l.clientX,g=l.clientY);let E=this.getBackgroundElement(f,g,i,o);if(E&&a&&typeof a=="function"&&(E=a(E)),E){let I=this.getXPath(E,!1,!1,void 0,d),S=this.getXPath(E,!0),L=E.getBoundingClientRect(),V=f-L.x,K=g-L.y,oe=V*100/(L.width||1),ge=K*100/(L.height||1),te={xpath:I,fXpath:S,leftPercentage:oe,topPercentage:ge};if(s){let C=this.getXPath(E,!0,!0);te.cfXpath=C}if(c){let C=this.generateAnchorRecord(E,d);C&&(te.anchor=C)}return te}else return null}catch(h){return this.loggingService.catch("Error in DomService getTargetElementForCommentPinAnnotation: ",h),null}}getBackgroundElement(r,i,o=!0,s=!1){try{let a=document.elementsFromPoint(r,i),c=[];a.forEach(d=>{qi(d)?c=[]:rd(d)&&c.push(d)}),s&&(c=c.filter(d=>this.isElementVisibleOnScreen(d)));let l=0;return o||c?.forEach((d,h)=>{d.tagName.toLowerCase()==="svg"&&(l=h)}),c[l]}catch(a){return this.loggingService.catch("Error in DomService getBackgroundElement: ",a),null}}getBackgroundVeltElement(r,i){try{let o=document.elementsFromPoint(r,i),s=[];return o.forEach(a=>{qi(a)&&rd(a)&&s.push(a)}),s[0]}catch(o){return this.loggingService.catch("Error in DomService getBackgroundSnippylyElement: ",o),null}}setPointerPosition(r){this.loggingService.log("%c[WB] Calling FUNCTION: setPointerPosition","color: green;");try{this.previousMousePosition.pageX=r.pageX,this.previousMousePosition.pageY=r.pageY,this.currentMousePosition.pageX=r.pageX,this.currentMousePosition.pageY=r.pageY}catch(i){this.loggingService.catch("Error in DomService setPointerPosition: ",i)}}getCurrentWindowSize$(r){return this.loggingService.log("%c[WB] Calling FUNCTION: getCurrentWindowSize","color: green;"),this.currentScreenSize$.asObservable()}getCurrentMousePosition$(){return this.loggingService.log("%c[WB] Calling FUNCTION: getCurrentMousePosition","color: green;"),this.currentMousePosition$.asObservable()}getCurrentWindowSizeValue(){return this.loggingService.log("%c[WB] Calling FUNCTION: getCurrentWindowSizeValue","color: green;"),this.currentScreenSize$.value}getTopLeftPosition(){this.loggingService.log("%c[WB] Calling FUNCTION: getTopLeftPosition","color: green;");try{let r=document?.body?.getBoundingClientRect()||document?.documentElement?.getBoundingClientRect(),i=this.currentMousePosition?.pageX||r.x+200,o=Math.min(i,r.width/2),s=Math.abs(r.y),a=r.y-20;return s>50&&(a=Math.abs(r.y)+180),this.loggingService.log(r),this.loggingService.log(o),this.loggingService.log(a),{topPositionX:o,topPositionY:a}}catch(r){return this.loggingService.catch("Error in DomService getTopLeftPosition: ",r),{topPositionX:0,topPositionY:0}}}toggleSelection(){this.enableRectSelectionSubject$.next(!this.enableRectSelectionSubject$.value)}enableSelection(){this.enableRectSelectionSubject$.next(!0)}disableSelection(){this.enableRectSelectionSubject$.next(!1)}setPinHighlighterClass(r){this.pinHighlighterClass$.next(r)}setTextHighlighterClass(r){this.textHighlighterClass$.next(r)}getTextHighlighterClass(){return this.textHighlighterClass$.asObservable()}enableCommentPinHighlighter(){this.commentPinHighlighter$.next(!0)}disableCommentPinHighlighter(){this.commentPinHighlighter$.next(!1)}getCommentPinHighlighter$(){return this.commentPinHighlighter$.asObservable()}getCommentPinHighlighter(){return this.commentPinHighlighter$?.value}highlightElement(r,i,o){if(r&&!Oc(r)){if(!o&&this.getCommentPinHighlighter()&&(this.pinHighlighterClass$.value?this.addClassToElement(r,this.pinHighlighterClass$.value):this.addClassToElement(r,F.SNIPPYLY_HIGHLIGHT)),i&&!r.hasAttribute(F.ATTRIBUTES.DEFAULT_CURSOR)){let s=r.style.getPropertyValue("cursor"),a=r.style.getPropertyPriority("cursor"),c=s?{defaultCursorValue:s,defaultCursorPriority:a}:"";r.setAttribute(F.ATTRIBUTES.DEFAULT_CURSOR,c?JSON.stringify(c):""),r.style.setProperty("cursor",i,"important")}r.setAttribute(F.SNIPPYLY_HIGHLIGHT,"true"),r.setAttribute(F.VELT_IGNORE_CHANGE_DETECTION,"true")}}removeHighlightFromElement(r){if(r&&(this.pinHighlighterClass$.value&&this.removeClassFromElement(r,this.pinHighlighterClass$.value),this.removeClassFromElement(r,F.SNIPPYLY_HIGHLIGHT),r.removeAttribute(F.SNIPPYLY_HIGHLIGHT),r.removeAttribute(F.VELT_IGNORE_CHANGE_DETECTION),r.hasAttribute(F.ATTRIBUTES.DEFAULT_CURSOR))){try{if(r.style.removeProperty("cursor"),r.getAttribute(F.ATTRIBUTES.DEFAULT_CURSOR)){let i=JSON.parse(r.getAttribute(F.ATTRIBUTES.DEFAULT_CURSOR));r.style.setProperty("cursor",i.defaultCursorValue,i.defaultCursorPriority)}}catch{}r.removeAttribute(F.ATTRIBUTES.DEFAULT_CURSOR)}}highlightUserElement(r,i,o,s=!1){try{r&&(this.addClassToElement(r,F.VELT_LIVE_SELECTION_ON_ELEMENT),s&&this.addClassToElement(r,F.VELT_LIVE_SELECTION_ON_ELEMENT_DEFAULT),r.setAttribute(F.SNIPPYLY_HIGHLIGHT,"true"),r.setAttribute(F.VELT_IGNORE_CHANGE_DETECTION,"true"),i&&!r.style.getPropertyValue(F.VELT_SELECTION_COLOR)&&r.style.setProperty(F.VELT_SELECTION_COLOR,i),o&&r.setAttribute(F.SNIPPYLY_HIGHLIGHT_USER_NAME,o))}catch(a){this.loggingService.catch("Error in DomService highlightUserElement: ",a)}}removeHighlightUserFromElement(r){try{r&&(this.removeClassFromElement(r,F.VELT_LIVE_SELECTION_ON_ELEMENT),this.removeClassFromElement(r,F.VELT_LIVE_SELECTION_ON_ELEMENT_DEFAULT),r.removeAttribute(F.SNIPPYLY_HIGHLIGHT),r.removeAttribute(F.VELT_IGNORE_CHANGE_DETECTION),r.removeAttribute(F.VELT_SELECTION_COLOR),r.removeAttribute(F.SNIPPYLY_HIGHLIGHT_USER_NAME),r.style.removeProperty(F.VELT_SELECTION_COLOR))}catch(i){this.loggingService.catch("Error in DomService removeHighlightUserFromElement: ",i)}}previewHighlightElement(r){r&&r.setAttribute(F.SNIPPYLY_HIGHLIGHT_PREVIEW,"true")}removePreviewHighlightFromElement(r){r&&r.removeAttribute(F.SNIPPYLY_HIGHLIGHT_PREVIEW)}getXPath(r,i=!1,o=!1,s,a){try{let c=this.calculateXPath(r,i,o,s,a);if(c&&typeof c=="string"&&c.includes("/svg")){let l=c.split("/"),d=!1;l.forEach((h,f)=>{h.includes("svg")&&(d=!0),d&&(l[f]="svg:"+h)}),c=l.join("/")}return c}catch(c){this.loggingService.catch("Error in DomService getXPath:",c)}}namespaceResolver(r){return r==="svg"?"http://www.w3.org/2000/svg":null}calculateXPath(r,i,o,s,a){try{if(r){if(typeof r=="string")return document.evaluate(r,s||document,this.namespaceResolver,XPathResult.ANY_TYPE,null);if(!r||r.nodeType!=1)return"";if(r.id&&document.querySelectorAll(`[id='${r.id}']`)?.length===1&&!i&&!(a?.ignoreGeneratedIds&&this.isGeneratedId(r.id)))return"//*[@id='"+r.id+"']";if(o&&r.className&&r.className.split){let l=r.className?.split(" ")?.filter(d=>!d?.includes("snippyly")&&!d?.includes("velt")&&!["show-pin-cursor"].includes(d))[0];if(l){let d=this.calculateXPath(r.parentNode,i,o,s,a)+"/"+r.tagName.toLowerCase(),h=Array.from(r.parentNode?.children||[]).filter(f=>f.nodeType===1&&f.tagName===r.tagName?f.className?.split(" ")?.filter(E=>E?.includes("snippyly")||E?.includes("velt")||["show-pin-cursor"].includes(E))[0]===l:!1);if(h.length>1){let f=h.indexOf(r)+1;d+=`[contains(concat(' ', normalize-space(@class), ' '), ' ${l} ')][${f}]`}else d+=`[contains(concat(' ', normalize-space(@class), ' '), ' ${l} ')]`;return d}}let c=[].filter.call(r.parentNode?.children?r.parentNode?.children:[],function(l){return l.tagName==r.tagName});return this.calculateXPath(r.parentNode,i,o,void 0,a)+"/"+r.tagName.toLowerCase()+(c.length>1?"["+([].indexOf.call(c,r)+1)+"]":"")}}catch(c){this.loggingService.catch("Error in DomService calculateXPath:",c)}}getElementFromXPath(r,i=document){try{if(this.xpathCache.has(r)){let s=this.xpathCache.get(r);if(s!==void 0&&document.contains(s))return s;this.xpathCache.delete(r)}let o=this.getXPath(r,!1,!1,i);if(o){let s=o?.iterateNext();if(s!==null&&typeof s.setAttribute=="function"&&!Oc(s)){let a=nd();s.setAttribute(F.ATTRIBUTES.VELT_ELEMENT_CACHE_ID,a),this.xpathCacheId.set(a,r)}return this.xpathCache.set(r,s),s}return null}catch(o){return this.loggingService.catch("Error in DomService getElementFromXPath:",o),null}}getElementFromTargetElement(r){try{let i=null;if(r?.anchor){let o=this.resolveAnchorRecord(r.anchor);o?.element&&(i=o.element)}else r?.xpath?i=this.getElementFromXPath(r.xpath):r?.cfXpath?i=this.getElementFromXPath(r.cfXpath):r?.fXpath&&(i=this.getElementFromXPath(r.fXpath));return i}catch(i){return this.loggingService.catch("Error in DomService getElementFromTargetElement:",i),null}}resolveIdScopedTarget(r){try{let i=r?.anchor?.xPath||r?.xpath,o=UN(i);if(!i||!o||this.isGeneratedId(o.rootId))return{applicable:!1,element:null};let s=this.getUniqueElementById(o.rootId);if(!s||!this.isElementVisible(s)||!rd(s))return{applicable:!0,element:null};let a=d=>!!d&&s.contains(d)&&this.isElementVisible(d),c=this.getElementFromXPath(i);if(a(c))return{applicable:!0,element:c,matchedBy:"exact"};let l=r?.anchor?.robustXPath;if(l&&UN(l)?.rootId===o.rootId){let d=this.getElementFromRobustXPath(l);if(a(d))return{applicable:!0,element:d,matchedBy:"robust"}}return{applicable:!0,element:s,matchedBy:"root"}}catch(i){return this.loggingService.catch("Error in DomService resolveIdScopedTarget: ",i),{applicable:!1,element:null}}}getUniqueElementById(r){try{let i=document.querySelectorAll(`[id="${CSS.escape(r)}"]`);return i.length===1?i[0]:null}catch{return null}}getElementFromTargetTextRange(r){try{let i=null;if(r?.commonAncestorContainerAnchor){let o=this.resolveAnchorRecord(r.commonAncestorContainerAnchor);o?.element&&(i=o.element)}else r?.commonAncestorContainer&&(i=this.getElementFromXPath(r.commonAncestorContainer));return i}catch(i){return this.loggingService.catch("Error in DomService getElementFromTargetTextRange:",i),null}}calculateScreenSize(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowResize","color: green;");try{let r=[document?.body?.clientHeight||0,document?.documentElement?.clientHeight||0,window?.innerHeight||0],i=[document?.body?.clientWidth||0,document?.documentElement?.clientWidth||0,window?.innerWidth||0];this.calculatePageScrollHeight(),this.loggingService.log(this.pageScrollHeight),this.loggingService.log(this.nodeMap),this.highestNode=this.nodeMap[this.pageScrollHeight];let o=new rp;return o.screenWidth=Math.max(...i),o.screenHeight=Math.max(...r),o.screenScrollHeight=this.pageScrollHeight,o}catch(r){return this.loggingService.catch("Error in DomService calculateScreenSize:",r),new rp}}calculatePageScrollHeight(){this.loggingService.log("%c[WB] Calling FUNCTION: calculatePageScrollHeight","color: green;");try{this.pageScrollHeight=0,this.findLongestNode(document?.documentElement?.childNodes)}catch(r){this.loggingService.catch("Error in DomService calculatePageScrollHeight: ",r)}}removeSnippylyContent(r){this.loggingService.log("%c[WB] Calling FUNCTION: removeSnippylyContent","color: green;");try{let o=new DOMParser().parseFromString(r,"text/html");o.querySelectorAll("[data-snippyly-cache-id]").forEach(f=>{f.removeAttribute("data-snippyly-cache-id")}),o.querySelectorAll("[data-velt-cache-id]").forEach(f=>{f.removeAttribute("data-velt-cache-id")}),o.querySelectorAll(".comment-text-highlight").forEach(f=>{f?.parentNode?.insertBefore(document.createTextNode(f?.textContent),f),f.remove()});let l=document.createNodeIterator(o,NodeFilter.SHOW_COMMENT),d;for(;d=l.nextNode();)d?.remove();return this.mergeAdjacentTextNodes(o.body),this.sanitizeHtml(o.body.innerHTML)}catch(i){return this.loggingService.catch("Error in DomService removeSnippylyContent: ",i),r}}mergeAdjacentTextNodes(r){try{let i=r.firstChild;for(;i;){if(i.nodeType===Node.TEXT_NODE){let o=i.nextSibling;for(;o&&o.nodeType===Node.TEXT_NODE;)i.textContent+=o.textContent,o.remove(),o=i.nextSibling}i=i.nextSibling}}catch(i){this.loggingService.catch("Error in DomService mergeAdjacentTextNodes: ",i)}}findLongestNode(r){try{for(let i=r.length-1;i>=0;i--){if(r[i]?.scrollHeight&&r[i]?.clientHeight){let o=Math.max(r[i]?.scrollHeight,r[i]?.clientHeight);this.pageScrollHeight=Math.max(o,this.pageScrollHeight),this.nodeMap[o]=r[i]}r[i]?.childNodes?.length&&this.findLongestNode(r[i]?.childNodes)}}catch(i){this.loggingService.catch("Error in DomService findLongestNode: ",i)}}resetSelectedAnnotationsMap(r=!0,i){try{let o=Array.from(document.querySelectorAll(`[${F.ATTRIBUTES.VELT_ANNOTATION_DRAFT}]`)),s=this.getDraftCommentAnnotationDialogs()||[];o.push(...s),o=Array.from(new Set(o));let a=o.map(h=>h.classList.contains("velt-annotation-draft-checked")?(h.classList.remove("velt-annotation-draft-checked"),null):(this.removeClassFromElement(h,"velt-comment-dialog-shake"),setTimeout(()=>{this.addClassToElement(h,"velt-comment-dialog-shake"),h.getAttribute(F.ATTRIBUTES.VELT_ANNOTATION_EDIT_COMMENT)||h.classList.contains("velt-annotation-draft-checked")||this.addClassToElement(h,"velt-annotation-draft-checked")},100),h.getAttribute(F.ATTRIBUTES.VELT_ANNOTATION_DRAFT))).filter(h=>h),c=Object.keys(this.getRecordingInProgress()||{});a=[...a,...c];let l=this.selectedAnnotationsMap$.value;if(r&&this.selectedAnnotationsMap$.value&&Object.keys(this.selectedAnnotationsMap$.value).length){let h=[];Object.keys(l).forEach(f=>{if(l[f]?.type==="tag"){let g=l[f];g?.to?.length||a.includes(f)||h.push(g)}else l[f]?.comments?.length||a.includes(f)||h.push(l[f])}),this.deleteAnnotations$.next(h),this.deleteAnnotations$.next([])}let d={};Object.keys(l).forEach(h=>{a.includes(h)&&(d[h]=l[h]),i&&(i==="comment"?["comment","videoPin"].includes(l[h]?.type)||(d[h]=l[h]):l[h]?.type!==i&&(d[h]=l[h]))}),Object.keys(d).forEach(h=>{let f=d[h]?.multiThreadAnnotationId;f&&!d[f]&&(d[f]={annotationId:f,type:"multiThread"})}),JSON.stringify(this.selectedAnnotationsMap$.value)!==JSON.stringify(d)&&this.selectedAnnotationsMap$.next(d),this.setDialogOpenedInSidebar(!1)}catch(o){this.loggingService.catch("Error in DomService resetSelectedAnnotationsMap: ",o)}}setRecordingInProgress(r,i){try{if(i)this.recordingInProgress$.next(Ee(B({},this.recordingInProgress$.value),{[r]:i}));else{let o=this.recordingInProgress$.value;delete o[r],this.recordingInProgress$.next(o)}}catch(o){this.loggingService.catch("Error in DomService setRecordingInProgress: ",o)}}resetRecordingInProgress(){try{this.recordingInProgress$.next({})}catch(r){this.loggingService.catch("Error in DomService resetRecordingInProgress: ",r)}}getRecordingInProgress(){try{return this.recordingInProgress$.value}catch(r){return this.loggingService.catch("Error in DomService getRecordingInProgress: ",r),{}}}getDraftCommentAnnotationDialogs(){try{let r=[],i=Array.from(document.querySelectorAll(`${F.TAGS.SNIPPYLY_COMMENT_DIALOG}`)),o=Array.from(document.querySelectorAll(`${F.TAGS.VELT_COMMENT_DIALOG}`));return[...i,...o].forEach(a=>{if(a?.shadowRoot){let c=a.shadowRoot.querySelector(`[${F.ATTRIBUTES.VELT_ANNOTATION_DRAFT}]`);c&&r.push(c)}else{let c=a.querySelector(`${F.TAGS.VELT_SHADOW_DOM_INTERNAL}`);if(c?.shadowRoot){let l=c.shadowRoot?.querySelector(`[${F.ATTRIBUTES.VELT_ANNOTATION_DRAFT}]`);l&&r.push(l)}else{let l=a.querySelector(`[${F.ATTRIBUTES.VELT_ANNOTATION_DRAFT}]`);l&&r.push(l)}}}),r}catch(r){return this.loggingService.catch("Error in DomService getDraftCommentAnnotationDialogs: ",r),[]}}getSelectedAnnotationsMap(r){try{let i=this.selectedAnnotationsMap$.value;if(r){let o={};return Object.keys(i).forEach(s=>{r==="comment"?["comment","videoPin"].includes(i[s].type)&&(o[s]=i[s]):i[s].type===r&&(o[s]=i[s])}),o}else return i}catch(i){return this.loggingService.catch("Error in DomService getSelectedAnnotationsMap: ",i),{}}}getSelectedAnnotationsMap$(r){return this.selectedAnnotationsMap$.asObservable().pipe(De(i=>{if(r){let o={};return Object.keys(i).forEach(s=>{i[s].type===r&&(o[s]=i[s])}),o}else return i}))}getSelectedComments$(){return this.selectedAnnotationsMap$.asObservable().pipe(De(r=>Object.values(r)))}getSelectedAnnotationsLocationMap(){try{return this.selectedAnnotationsLocationMap$.value}catch(r){return this.loggingService.catch("Error in DomService getSelectedAnnotationsLocationMap: ",r),{}}}getSelectedAnnotationsLocationMap$(){return this.selectedAnnotationsLocationMap$.asObservable()}getSelectedAnnotationsContextIdMap(){try{return this.selectedAnnotationsContextIdMap$.value}catch(r){return this.loggingService.catch("Error in DomService getSelectedAnnotationsContextIdMap: ",r),{}}}getSelectedAnnotationsContextIdMap$(){return this.selectedAnnotationsContextIdMap$.asObservable()}toggleAnnotationSelection(r,i,o,s=!1,a,c){try{o==="sidebarShowReplies"?this.setDialogOpenedInSidebar(!0):this.setDialogOpenedInSidebar(!1);let l=JSON.parse(JSON.stringify(this.selectedAnnotationsMap$.value||{})),d=JSON.parse(JSON.stringify(this.selectedAnnotationsLocationMap$.value||{})),h=JSON.parse(JSON.stringify(this.selectedAnnotationsContextIdMap$.value||{}));l[r.annotationId]&&!s?delete l[r.annotationId]:((!this.windowKeydownShift$.value||s)&&(l={}),l[r.annotationId]=r,d[r.annotationId]=i,c&&(h[r.annotationId]=c),a=r?.multiThreadAnnotationId||a,a&&(l[a]={annotationId:a,type:"multiThread"},d[a]=i,c&&(h[a]=c))),this.selectedAnnotationsMap$.next(l),Object.keys(d).forEach(f=>{l[f]||delete d[f]}),this.selectedAnnotationsLocationMap$.next(d),Object.keys(h).forEach(f=>{l[f]||delete h[f]}),this.selectedAnnotationsContextIdMap$.next(h)}catch(l){this.loggingService.catch("Error in DomService toggleAnnotationSelection: ",l)}}setSelectedAnnotationLocation(r,i){try{let o=JSON.parse(JSON.stringify(this.getSelectedAnnotationsLocationMap()||{}));o?.[r]!==i&&(o[r]=i,this.selectedAnnotationsLocationMap$.next(o))}catch(o){this.loggingService.catch("Error in DomService setSelectedAnnotationLocation: ",o)}}updateSelectedAnnotationInMap(r){try{let i=this.selectedAnnotationsMap$.value;r.forEach(o=>{i[o.annotationId]&&(i[o.annotationId]=o)}),this.selectedAnnotationsMap$.next(i)}catch(i){this.loggingService.catch("Error in DomService updateSelectedAnnotationInMap: ",i)}}getDeleteCommmentAnnotations$(){try{return this.deleteAnnotations$.asObservable()}catch(r){return this.loggingService.catch("Error in DomService getDeleteCommmentAnnotations$: ",r),lt([])}}getHighestNode(){return this.loggingService.log("%c[WB] Calling FUNCTION: getHighestNode","color: green;"),this.highestNode}onWindowMouseDown$(){return this.windowMouseDown$.asObservable()}onWindowPointerMove$(){return this.windowPointerMove$.asObservable()}onWindowPointerMove(){return this.windowPointerMove$.value}onWindowPointerUp$(){return this.windowPointerUp$.asObservable()}onSelectionChange$(){return this.documentSelectionChange$.asObservable()}onWindowClick$(){return this.windowClick$.asObservable()}onWindowScroll$(){return this.windowScroll$.asObservable()}onWindowResize$(){return this.windowResize$.asObservable()}onWindowKeyupBackspace$(){return this.windowKeyupBackspace$.asObservable()}onWindowKeyupDelete$(){return this.windowKeyupDelete$.asObservable()}onWindowKeyupEsc$(){return this.windowKeyupEsc$.asObservable()}onWindowPopState$(){return this.windowPopState$.asObservable()}onDocumentClick$(){return this.documentClick$.asObservable()}getLastDocumentClick(){return this.documentClick$.value}onDocumentClickSubject$(){return this.documentClickSubject$.asObservable()}onDocumentFocus$(){return this.documentFocus$.asObservable()}onDomChange$(r){try{return this.mutationObserver||this.setMutationObserver(r),this.mutation$.asObservable()}catch(i){return this.loggingService.catch("Error in DomService onDomChange$: ",i),lt([])}}getChildListMutation$(){return this.childListMutation$.asObservable()}onNetworkStatusChange$(){return this.networkStatus$.asObservable()}getNetworkStatus(){return this.networkStatus$.value}getElementOffset(r,i){try{let o={offsetTop:0,offsetLeft:0},s=r;if(s===i){let a=window.getComputedStyle(r);a.position==="static"&&a.transformStyle!="preserve-3d"&&a.transform=="none"&&(o.offsetLeft=r?.offsetLeft||0,o.offsetTop=r?.offsetTop||0)}if(s!==i)if(r?.closest("svg"))for(;s&&s!==i;){let c=window.getComputedStyle(s);if(s.tagName.toLowerCase()==="svg"||s instanceof SVGElement){let l=s.parentElement;if(l){let d=l.getBoundingClientRect(),h=s.getBoundingClientRect();o.offsetLeft+=h.left-d.left,o.offsetTop+=h.top-d.top}}else c.position==="static"?c.transformStyle!="preserve-3d"&&c.transform=="none"&&(o.offsetLeft+=s?.offsetLeft||0,o.offsetTop+=s?.offsetTop||0):(o.offsetLeft+=s.offsetLeft,o.offsetTop+=s.offsetTop);if(s=s.parentElement,r instanceof SVGElement&&s===i){let l=window.getComputedStyle(s);l.position==="static"&&l.transformStyle!="preserve-3d"&&l.transform=="none"&&(o.offsetLeft+=s?.offsetLeft||0,o.offsetTop+=s?.offsetTop||0)}}else{let c=window.getComputedStyle(s);c.position==="static"?c.transformStyle!="preserve-3d"&&c.transform=="none"&&(o.offsetLeft+=s?.offsetLeft||0,o.offsetTop+=s?.offsetTop||0):(o.offsetLeft+=s.offsetLeft,o.offsetTop+=s.offsetTop)}return o}catch(o){return this.loggingService.catch("Error in DomService getElementOffset: ",o),{offsetTop:0,offsetLeft:0}}}isElementVisible(r){try{if(typeof r?.getBoundingClientRect=="function"){let{width:i,height:o,top:s,bottom:a}=r?.getBoundingClientRect();return i>0||o>0||s<window.innerHeight&&a>0}else return!1}catch(i){return this.loggingService.catch("Error in DomService isElementVisible: ",i),!1}}isElementVisibleOnScreen(r){try{if(r){if(!(r instanceof Element))return!1;let i=r,o=window.getComputedStyle(i);return!(o.display==="none"||o.visibility==="hidden"||parseFloat(o.opacity)===0)}return!1}catch(i){return this.loggingService.catch("Error in DomService isElementVisibleOnScreen: ",i),!1}}getClickAndDragPointsObservable(){return new fe(r=>{let i=wi(document,"mousedown").pipe(De(l=>({type:l.type,x:l.clientX+window.scrollX,y:l.clientY+window.scrollY,event:l}))),o=wi(document,"mousemove").pipe(De(l=>({type:l.type,x:l.clientX+window.scrollX,y:l.clientY+window.scrollY,event:l}))),s=wi(document,"mouseup").pipe(De(l=>({type:l.type,x:l.clientX+window.scrollX,y:l.clientY+window.scrollY,event:l}))),c=i.pipe(Mr(l=>o.pipe(Ya(),De(([d,h])=>({startPoint:l,prevPoint:d,curPoint:h})),ps(s)))).subscribe(r);return()=>c.unsubscribe()})}drawRectangle(r,i){let o=document.querySelector(".rectangle");o||(o=document.createElement("div"),this.addClassToElement(o,"rectangle"),o.setAttribute(F.ATTRIBUTES.VELT_COMMENT_DISABLED,"true"),o.setAttribute(F.VELT_IGNORE_CHANGE_DETECTION,"true"),document.body.appendChild(o));let s=Math.abs(i.x-r.x),a=Math.abs(i.y-r.y),c=Math.min(r.x,i.x),l=Math.min(r.y,i.y);return o.style.width=`${s}px`,o.style.height=`${a}px`,o.style.left=`${c}px`,o.style.top=`${l}px`,o.style.position="absolute",o.style.border="2px dashed #f00",o.style.pointerEvents="none",o.style.zIndex="2147483577",o}getRange(){try{if(this.loggingService.log("%c[WB] Calling FUNCTION: getRange","color: green;"),window.getSelection()?.toString()){let r=window.getSelection();if(r?.rangeCount)return r.getRangeAt(0)}return null}catch(r){return this.loggingService.catch("Error in DomService getRange: ",r),null}}clearTextSelection(){try{this.loggingService.log("%c[WB] Calling FUNCTION: clearTextSelection","color: green;"),window.getSelection&&(window.getSelection()?.empty?window.getSelection()?.empty():window.getSelection()?.removeAllRanges&&window.getSelection()?.removeAllRanges())}catch(r){this.loggingService.catch("Error in DomService clearTextSelection: ",r)}}getTargetTextRangeFromSelectionRange(r){try{let i={},o=r.commonAncestorContainer;o?.nodeType===Node.TEXT_NODE&&(o=o.parentElement);let s=document.body;if(o){let c=this.getTextXPath(o);this.isXpathWithId(c)&&(s=o)}let a=this.getAdditionalLocationContainer(o);if(a&&(s=a),i.commonAncestorContainer=this.getTextXPath(s),i.commonAncestorContainer){let c=this.getElementFromXPath(i.commonAncestorContainer);if(c){i.commonAncestorContainerFXpath=this.getXPath(c,!0),i.commonAncestorContainerCFXpath=this.getXPath(c,!0,!0);let l=this.generateAnchorRecord(c);l&&(i.commonAncestorContainerAnchor=l)}}return i.text=r.toString(),i.occurrence=gR(s,0,r.startContainer,r.startOffset,r.toString())+1,i}catch(i){this.loggingService.catch("Error in DomService getTargetTextRangeFromSelectionRange: ",i);return}}getTextXPath(r){try{if(this.loggingService.log("%c[WB] Calling FUNCTION: getTextXPath","color: green;"),r.nodeType===Node.TEXT_NODE){let i=1,o=r.previousSibling;for(;o;)o.nodeType===Node.TEXT_NODE&&i++,o=o.previousSibling;return this.getXPath(r.parentElement)}else return this.getXPath(r)}catch(i){this.loggingService.catch("Error in DomService getTextXPath: ",i);return}}getHostElement(r){try{if(F.NON_NESTABLE_ELEMENTS[r?.tagName?.toLowerCase()]){let o=r?.closest("picture");return o?o?.parentElement:r.parentElement}let i=r.closest("svg");return i?i?.parentElement:r}catch(i){return this.loggingService.catch("Error in DomService getHostElement: ",i),r}}isElementInsideAdditionalLocationContainer(r){try{return!!r?.closest(`[${F.ATTRIBUTES.VELT_LOCATION}], [${F.ATTRIBUTES.VELT_LOCATION_ID}]`)}catch(i){return this.loggingService.catch("Error in DomService isElementInsideAdditionalLocationContainer: ",i),!1}}getAdditionalLocationContainer(r){try{return r?.closest(`[${F.ATTRIBUTES.VELT_LOCATION}], [${F.ATTRIBUTES.VELT_LOCATION_ID}]`)||null}catch(i){return this.loggingService.catch("Error in DomService getAdditionalLocationContainer: ",i),null}}isXpathWithId(r){try{return typeof r=="string"?!!r?.includes("[@id="):!1}catch(i){return this.loggingService.catch("Error in DomService isXpathWithId: ",i),!1}}getListedElements({elementIds:r,elementClassNames:i,elementQuerySelectors:o}){try{let s=[];if(r?.length)for(let a=0;a<r.length;a++){let c=document.getElementById(r[a]);c&&s.push(c)}if(i?.length)for(let a=0;a<i.length;a++){let c=document.getElementsByClassName(i[a]);for(let l=0;l<c.length;l++){let d=c[l];d&&d instanceof HTMLElement&&s.push(d)}}if(o?.length)for(let a=0;a<o.length;a++){let c=document.querySelectorAll(o[a]);for(let l=0;l<c.length;l++){let d=c[l];d&&d instanceof HTMLElement&&s.push(d)}}return s}catch(s){return this.loggingService.catch("Error in DomService getListedElements: ",s),[]}}isElementInsideListedElementIds(r,i){try{if(i?.length){for(let o=0;o<i.length;o++){let s=document.getElementById(i[o]);if(s&&s.contains(r))return!0}return!1}return!0}catch(o){return this.loggingService.catch("Error in DomService isElementInsideListedElementIds: ",o),!1}}isElementInsideListedElementClassNames(r,i){try{if(i?.length){for(let o=0;o<i.length;o++){let s=document.getElementsByClassName(i[o]);for(let a=0;a<s.length;a++)if(s[a].contains(r))return!0}return!1}return!0}catch(o){return this.loggingService.catch("Error in DomService isElementInsideListedElementClassNames: ",o),!1}}isElementInsideListedElementQuerySelectors(r,i){try{if(i?.length){for(let o=0;o<i.length;o++){let s=document.querySelectorAll(i[o]);for(let a=0;a<s.length;a++)if(s[a].contains(r))return!0}return!1}return!0}catch(o){return this.loggingService.catch("Error in DomService isElementInsideListedElementQuerySelectors: ",o),!1}}addClassToElement(r,i){try{this.loggingService.log("%c[WB] Calling FUNCTION: addClassToElement","color: green;"),r&&(r.classList?.contains(i)||r.classList?.add(i))}catch(o){this.loggingService.catch("Error in DomService addClassToElement: ",o)}}removeClassFromElement(r,i){try{this.loggingService.log("%c[WB] Calling FUNCTION: removeClassFromElement","color: green;"),r&&r.classList?.contains(i)&&r.classList?.remove(i)}catch(o){this.loggingService.catch("Error in DomService removeClassFromElement: ",o)}}isElementInsideParentWithAttribute(r,i,o){try{let s=r;for(;s&&s!==document.body;){if(s?.getAttribute&&s?.getAttribute(i)===o)return!0;s=s.parentElement}return!1}catch(s){return this.loggingService.catch("Error in DomService isElementInsideParentWithAttribute: ",s),!1}}setVideoEditorHandlingDelete(r){try{this.isVideoEditorHandlingDelete=r}catch(i){this.loggingService.catch("Error in DomService setVideoEditorHandlingDelete: ",i)}}isVideoEditorHandlingDeleteKey(){try{return this.isVideoEditorHandlingDelete}catch(r){return this.loggingService.catch("Error in DomService isVideoEditorHandlingDeleteKey: ",r),!1}}setCustomCss(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setCustomCss","color: green;"),this.customCss$.next(r)}catch(i){this.loggingService.catch("Error in DomService setCustomCss: ",i)}}getCustomCss$(){try{return this.loggingService.log("%c[WB] Calling FUNCTION: getCustomCss$","color: green;"),this.customCss$.asObservable()}catch(r){return this.loggingService.catch("Error in DomService getCustomCss$: ",r),lt(null)}}injectCustomCss(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: injectCustomCss","color: green;");let i=this.customCss$.value;if(i){let o=r?.shadowRoot?.querySelector(`[${F.VELT_CUSTOM_CSS}]`);if(o&&o.remove(),i?.type==="link"){let s=document.createElement("link");s.href=i?.value,s.rel="stylesheet",s.setAttribute(F.VELT_CUSTOM_CSS,"true"),r?.shadowRoot?.appendChild(s)}else{let s=document.createElement("style");s.innerHTML=this.sanitizeHtml(i?.value),s.setAttribute(F.VELT_CUSTOM_CSS,"true"),r?.shadowRoot?.appendChild(s)}}}catch(i){this.loggingService.catch("Error in DomService injectCustomCss: ",i)}}subscribeInjectCustomCss(r){try{return this.customCss$.subscribe(()=>{this.injectCustomCss(r?.nativeElement)})}catch(i){return this.loggingService.catch("Error in DomService subscribeInjectCustomCss: ",i),new gt}}trimCommentHtml(r){try{let i=document.createElement("div");i.innerHTML=r,this.removeEmptyElements(i);let o=i.innerHTML;return o=o.replace(e.MULTIPLE_NBSP_REGEX," ").replace(e.TRIM_NBSP_REGEX,"").trim(),o}catch(i){return this.loggingService.catch("Error in DomService trimCommentHtml: ",i),r}}removeEmptyElements(r){try{let s=function(a){return o.test(a.innerHTML)};var i=s;let o=/^\s*(<br\s*\/?>)?\s*$/;for(;r.firstChild&&s(r.firstChild);)r.removeChild(r.firstChild);for(;r.lastChild&&s(r.lastChild);)r.removeChild(r.lastChild)}catch(o){this.loggingService.catch("Error in DomService removeEmptyElements: ",o)}}normalizeWhitespace(r){try{r.childNodes.forEach(i=>{i.nodeType===Node.TEXT_NODE?i.nodeValue=i.nodeValue?.replace(/\s+/g," ").trim()??"":i.nodeType===Node.ELEMENT_NODE&&this.normalizeWhitespace(i)})}catch(i){this.loggingService.catch("Error in DomService normalizeWhitespace: ",i)}}sanitizeHtml(r){try{return this.loggingService.log("%c[WB] Calling FUNCTION: sanitizeHtml","color: green;"),fy.sanitize(r,A2)}catch(i){return this.loggingService.catch("Error in DomService sanitizeHtml: ",i),""}}sanitizeHtmlForPaste(r){try{let i=this.convertStylesToTags(r);return fy.sanitize(i,{ALLOWED_TAGS:["b","strong","i","em","u","a","br"],ALLOWED_ATTR:["href","target","rel"]})}catch(i){return this.loggingService.catch("Error in DomService sanitizeHtmlForPaste: ",i),""}}convertStylesToTags(r){try{let i=document.createElement("div");return i.innerHTML=r,this.convertBlockElementsToBr(i),this.processNodeStyles(i),i.innerHTML}catch(i){return this.loggingService.catch("Error in DomService convertStylesToTags: ",i),r}}convertBlockElementsToBr(r){try{let i=["P","DIV","H1","H2","H3","H4","H5","H6","LI","BLOCKQUOTE","PRE","SECTION","ARTICLE","HEADER","FOOTER"],o;for(;(o=r.querySelector(i.join(",")))!==null;){let s=o.parentNode;if(!s)break;for(;o.firstChild;)s.insertBefore(o.firstChild,o);o.nextSibling&&s.insertBefore(document.createElement("br"),o),s.removeChild(o)}}catch(i){this.loggingService.catch("Error in DomService convertBlockElementsToBr: ",i)}}processNodeStyles(r){try{let i=Array.from(r.childNodes);for(let o of i)if(o.nodeType===Node.ELEMENT_NODE){this.processNodeStyles(o);let s=o,a=s.style,c=o,l=a?.fontWeight;if(l==="bold"||l==="700"||l==="800"||l==="900"){let d=s.tagName?.toLowerCase();if(d!=="b"&&d!=="strong"){let h=document.createElement("b");c.parentNode.insertBefore(h,c),h.appendChild(c),c=h}}if(a?.fontStyle==="italic"){let d=s.tagName?.toLowerCase();if(d!=="i"&&d!=="em"){let h=document.createElement("i");c.parentNode.insertBefore(h,c),h.appendChild(c),c=h}}if((a?.textDecorationLine?.includes("underline")||a?.textDecoration?.includes("underline"))&&s.tagName?.toLowerCase()!=="u"){let h=document.createElement("u");c.parentNode.insertBefore(h,c),h.appendChild(c),c=h}}}catch(i){this.loggingService.catch("Error in DomService processNodeStyles: ",i)}}sanitizeSvg(r){try{return fy.sanitize(r,A2)}catch(i){return this.loggingService.catch("Error in DomService sanitizeSvg: ",i),r}}setDeviceInfo(){try{this.loggingService.log("%c[WB] Calling FUNCTION: setDeviceInfo","color: green;");let r=new Ur;this.deviceInfo$.next(r)}catch(r){this.loggingService.catch("Error in DomService setDeviceInfo: ",r)}}getDeviceInfo$(){try{return this.loggingService.log("%c[WB] Calling FUNCTION: getDeviceInfo$","color: green;"),this.deviceInfo$.asObservable()}catch(r){return this.loggingService.catch("Error in DomService getDeviceInfo$: ",r),lt(new Ur)}}getTabId(){try{let r=sessionStorage.getItem(F.SESSION_STORAGE.VELT_TAB_ID);!r&&this.tabId&&(r=this.tabId,sessionStorage.setItem(F.SESSION_STORAGE.VELT_TAB_ID,r)),!this.tabId&&r&&(this.tabId=r);let i=this.getTabIdFromWindowName();return(!r||r!==i)&&(r=nd(),this.tabId=r,sessionStorage.setItem(F.SESSION_STORAGE.VELT_TAB_ID,r),this.setTabIdToWindowName(r)),r}catch(r){return this.loggingService.catch("Error in DomService getTabId: ",r),null}}getTabIdFromWindowName(){try{return window.name}catch(r){return this.loggingService.catch("Error in DomService getTabIdFromWindowName: ",r),null}}setTabIdToWindowName(r){try{window.name=r}catch(i){this.loggingService.catch("Error in DomService setTabIdToWindowName: ",i)}}getDeviceInfo(){try{return this.loggingService.log("%c[WB] Calling FUNCTION: getDeviceInfo","color: green;"),this.deviceInfo$.value}catch(r){return this.loggingService.catch("Error in DomService getDeviceInfo: ",r),new Ur}}isMobileDevice(){try{return new Ur().getDeviceType()===Er.MOBILE}catch(r){return this.loggingService.catch("Error in DomService isMobileDevice: ",r),!1}}isTabletDevice(){try{return new Ur().getDeviceType()===Er.TABLET}catch(r){return this.loggingService.catch("Error in DomService isTabletDevice: ",r),!1}}isDesktopDevice(){try{return new Ur().getDeviceType()===Er.DESKTOP}catch(r){return this.loggingService.catch("Error in DomService isDesktopDevice: ",r),!1}}deepCloneElement(r){try{var i=document.createElement(r?.tagName);return Array.from(r.attributes).forEach(o=>{i.setAttribute(o.nodeName,o.nodeValue)}),r.childNodes.forEach(o=>{o.nodeType===Node.ELEMENT_NODE?i.appendChild(this.deepCloneElement(o)):o.nodeType===Node.TEXT_NODE&&i.appendChild(document.createTextNode(o.nodeValue))}),i}catch(o){return this.loggingService.catch("Error in DomService deepCloneElement: ",o),r}}setRandomNumberToElementRecursive(r){try{if(!r)return;let i=Math.random().toString(36).substring(7);r&&r.setAttribute&&typeof r.setAttribute=="function"&&(r.getAttribute("velt-wireframe-id")||r.setAttribute("velt-wireframe-id",i)),Array.from(r.children).forEach(s=>{this.setRandomNumberToElementRecursive(s)})}catch(i){this.loggingService.catch("Error in DomService setRandomNumberToElementRecursive: ",i)}}setDialogOpenedInSidebar(r){this.dialogOpenedInSidebar$.next(r)}getDialogOpenedInSidebar(){return this.dialogOpenedInSidebar$.asObservable()}removeWireframeSuffixFromTags(r){if(!r)return;Array.from(r.children).forEach(o=>{if(this.removeWireframeSuffixFromTags(o),o.tagName.toLowerCase().endsWith("-wireframe")){let s=o.tagName.toLowerCase().replace("-wireframe",""),a=document.createElement(s);for(Array.from(o.attributes).forEach(c=>{a.setAttribute(c.name,c.value)});o.firstChild;)a.appendChild(o.firstChild);o.parentNode.replaceChild(a,o)}})}isMonitorDevice(){try{return new Ur().getDeviceType()===Er.MONITOR}catch(r){return this.loggingService.catch("Error in DomService isMonitorDevice: ",r),!1}}isElementOriginallyStatic(r){try{return window.getComputedStyle(r).position==="static"||r.hasAttribute(F.ATTRIBUTES.VELT_COMMENT_PIN_HOST_STATIC)||r.hasAttribute(F.ATTRIBUTES.VELT_AREA_PIN_HOST_STATIC)||r.hasAttribute(F.ATTRIBUTES.VELT_TAG_PIN_HOST_STATIC)||r.hasAttribute(F.ATTRIBUTES.VELT_RECORDER_PIN_HOST_STATIC)||r.hasAttribute(F.ATTRIBUTES.VELT_ARROW_PIN_HOST_STATIC)}catch(i){return this.loggingService.catch("Error in DomService isElementOriginallyStatic: ",i),!1}}};e.MULTIPLE_NBSP_REGEX=/(?:&nbsp;\s*){2,}/g,e.TRIM_NBSP_REGEX=/^(?:&nbsp;\s*)+|(?:&nbsp;\s*)+$/g,e.\u0275fac=function(i){return new(i||e)($(zs),$(bo),$(bt),$(XD))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();function Xc(t){let e=t?.refreshToken;return typeof e=="string"&&e.length>0?e:void 0}var VN=Symbol("velt-auth-state-pending");function Yne(t,e){let n=B(B({},t),e||{});return n.userId=t.userId,n.userSnippylyId=t.userSnippylyId,n.type=t.type,n.organizationId=t.organizationId,n.clientOrganizationId=t.clientOrganizationId,n.groupId=t.groupId,n.clientGroupId=t.clientGroupId,n.contacts=t.contacts,n.plan=t.plan,n.isAdmin=t.isAdmin,n.isReadOnly=t.isReadOnly,n.isAnonymous=t.isAnonymous,n.isGuest=t.isGuest,n.color=e?.color||t.color,n.textColor=e?.textColor||t.textColor,n.initial=e?.initial||n.name?.charAt(0).toUpperCase()||n.email?.charAt(0).toUpperCase()||t.initial,n?.photoUrl===void 0&&(n.photoUrl=null),n}function D2(t,e){if(!e.length)return!0;if(t.length!==e.length)return!1;let n=new Set(t);return e.every(r=>n.has(r))}var Ed=(()=>{let e=class e{constructor(r,i,o,s,a,c,l,d,h){this.afAuth=r,this.configService=i,this.avatarService=o,this.coreActionsService=s,this.domService=a,this.functions=c,this.analyticsService=l,this.loggingService=d,this.serviceBook=h,this.endpointsService=Y(ly),this.portableBackend$=new ie(null),this.portableAuthUser$=new ie(null),this.user$=new ie(null),this.userOptions$=new ie(null),this.userContacts$=new ie(null),this.userOrganization$=new ie(null),this.isPrivateCommentsEnabled$=new ie(!1),this.providedUser=new zi,this.portableRefreshTimer=null,this.portableToken=null,this.portableRefreshInFlightEpoch=null,this.portableRefreshFailures=0,this.portableRefreshFailuresPastExpiry=0,this.portableRefreshWarnedEpoch=null,this.portableVisibilityHandler=null,this.loggedInUserResolveRetryDelaysMs=[2e3,8e3,3e4],this.loggedInUserResolveRetryInFlightUserId=null,this.firebaseConfig$=new ie(null),this.advancedQueries$=new ie(null),this.planDetails$=new ie(null),this.signOutPreviousUser$=new ie(null),this.preSignOutFunctions=new Map,this.autoLoginCalled=!1,this.portableAutoLoginCalled=!1,this.portableAutoLoginInFlight=Promise.resolve(),this.portableSessionEpoch=0,this.portableLocalSessionEnds=0,this.portableSignOutOwnsEpochBump=!1,this.pendingPortableRestore=null,this.portableResumeUserId=null,this.portableStorageHandler=null,this.portableSessionIdentity=null,this.reportedPortableRefreshCodes=new Set,this.autoLoginRequired=!0,this.config=null,this.getPlanDetailsCalled=!1,this.forceReLoggedIn=!1,this.lastLoggedInUserData=null,this.sessionReLoginCount=0,this.SESSION_RE_LOGIN_COUNT_LIMIT=10,this.sessionReLoginSubscription=null,this.onRetrySubscription=null,this.authProviderListenerGeneration=0,this.TOKEN_EXPIRED_ERROR_COUNT_LIMIT=3,this.tokenExpiredErrorCount=0,this.cachedActivityConfig=null,this.viewsService=null,this.crdtService=null,this.portableSavedSessionRaw=null,this.portableRenewalStopped=null,this.portableSessionStartedAt=0,this.portablePersistInFlight=Promise.resolve(),this.loggingService.log("%c[WB] Creating CLASS: AuthService","color: blue;"),this.serviceBook.observe(fT).subscribe(f=>{this.commentService=f??void 0}),this.serviceBook.observe(pT).subscribe(f=>{this.reactionService=f??void 0}),this.serviceBook.observe(gT).subscribe(f=>{this.areaService=f??void 0}),this.serviceBook.observe(TU).subscribe(f=>{this.activityService=f??void 0,f&&this.cachedActivityConfig&&f.setActivityFeatureConfig(this.cachedActivityConfig)}),this.serviceBook.observe(yU).subscribe(f=>{this.viewsService=f??null}),this.serviceBook.observe(IU).subscribe(f=>{this.crdtService=f??null});try{try{let f=this.configService.getAuthProxyHost();if(f){let g=this.afAuth?.config;g&&(g.apiHost=f,g.tokenApiHost=f)}}catch{}this.analyticsService.setAuthService(this),this.configService.getConfig$().subscribe(f=>{this.config=f}),this.forceReLoggedIn=localStorage.getItem(F.LOCAL_STORAGE.VELT_USER_FORCE_RE_LOGGED_IN)==="true",this.sessionReLoginSubscription=hd(this.afAuth).pipe(Qa(this.afAuth.currentUser),Ya(),Mr(([f,g])=>this.domService.onNetworkStatusChange$().pipe(mn(E=>E),En(1),De(()=>({previousUser:f,currentUser:g}))))).subscribe(E=>y(this,[E],function*({previousUser:f,currentUser:g}){if(!g&&f){let I=f?.stsTokenManager?.expirationTime,S=new Date().getTime(),L=I-S;S>I&&(this.analyticsService.trackEvent(St.Events.Core.SDK_SESSION_TOKEN_EXPIRED,{apiKey:this.apiKey,user:this.getUserForTelemetry(this.user$.value??void 0),lastLoggedInUserData:this.lastLoggedInUserData?{user:this.getUserForTelemetry(this.lastLoggedInUserData.user),autoLogin:this.lastLoggedInUserData.autoLogin,hasAuthToken:!!this.lastLoggedInUserData.userOptions?.authToken}:null,timeLeft:L,forceReset:this.userOptions$.value?.forceReset,sessionReLoginCount:this.sessionReLoginCount},!0,this.user$.value?.userSnippylyId),this.user$.value&&f?.uid===this.user$.value?.userSnippylyId&&this.lastLoggedInUserData?.user?.userSnippylyId===this.user$.value?.userSnippylyId&&(this.sessionReLoginCount>this.SESSION_RE_LOGIN_COUNT_LIMIT?(this.analyticsService.trackEvent(St.Events.Core.SDK_SESSION_RE_LOGIN_COUNT_EXCEEDED,{apiKey:this.apiKey,clientUserId:this.lastLoggedInUserData.user.userId,snippylyUserId:this.lastLoggedInUserData.user.userSnippylyId,timeLeft:L,forceReset:this.userOptions$.value?.forceReset,sessionReLoginCount:this.sessionReLoginCount},!0,this.user$.value?.userSnippylyId),this.sessionReLoginSubscription?.unsubscribe()):(this.sessionReLoginCount++,this.analyticsService.trackEvent(St.Events.Core.SDK_SESSION_RE_LOGIN_TRIGGERED,{apiKey:this.apiKey,clientUserId:this.lastLoggedInUserData.user.userId,snippylyUserId:this.lastLoggedInUserData.user.userSnippylyId,user:this.getUserForTelemetry(this.lastLoggedInUserData.user),timeLeft:L,forceReset:this.userOptions$.value?.forceReset,sessionReLoginCount:this.sessionReLoginCount},!0,this.lastLoggedInUserData.user.userSnippylyId),this.lastLoggedInUserData.user=yield this.updateUserWithColorAndTextColor(this.lastLoggedInUserData.user),this.initializeClient(this.lastLoggedInUserData.user,this.lastLoggedInUserData.userOptions,this.lastLoggedInUserData.initializeClientToken,this.lastLoggedInUserData.autoLogin,"internal-sessionReLogin"))))}}),f=>{this.loggingService.catch("Error in AuthService sessionReLoginSubscription: ",f)}),this.getUser$().pipe(yo(cp)).subscribe(f=>{let g=_R(f);this.coreActionsService.triggerAction(Wi.USER_UPDATE,g),this.coreActionsService.triggerAction(Wi.INIT_UPDATE,{event:Wi.USER_UPDATE,payload:{user:g}})})}catch(f){this.loggingService.catch("Error in AuthService constructor: ",f)}}setApiKey(r,i){this.loggingService.log("%c[WB] Calling FUNCTION: setApiKey","color: green;",r);try{if(this.apiKey){this.loggingService.log("API key is already set");return}this.apiKey=r,this.configService.setApiKey(this.apiKey),i||(i=new yT),this.configService.initConfig(i);let o=this.configService.getProxyConfig();if(o?.authHost)try{let s=this.afAuth?.config;s&&(s.apiHost=o.authHost,s.tokenApiHost=o.authHost)}catch(s){this.loggingService.catch("Error setting auth proxy config: ",s)}else try{let s=this.afAuth?.config;s&&s.apiHost!=="identitytoolkit.googleapis.com"&&(s.apiHost="identitytoolkit.googleapis.com",s.tokenApiHost="securetoken.googleapis.com")}catch(s){this.loggingService.catch("Error resetting auth proxy config: ",s)}i.debugMode?sessionStorage.setItem("debugMode","true"):sessionStorage.removeItem("debugMode"),this.autoLoginCalled||hd(this.afAuth).pipe(En(1)).subscribe(s=>y(this,null,function*(){if(this.autoLoginCalled=!0,s){let a=yield Np(s,!0).catch(c=>null);if(a){let{user:c}=a?.claims;this.autoLoginRequired&&(c=yield this.updateUserWithColorAndTextColor(c),this.initializeClient(c,this.buildAutoLoginOptions(),new Date().getTime(),!0,"internal-autoLogin"))}}})),!this.portableAutoLoginCalled&&this.configService.getEnablePortableBackend()===!0&&(this.portableAutoLoginCalled=!0,this.portableAutoLoginInFlight=this.autoLoginPortableSession())}catch(o){this.loggingService.catch("Error in setApiKey: ",o)}}setUsersService(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setUsersService","color: green;"),this.usersService=r}catch(i){this.loggingService.catch("Error in setUsersService: ",i)}}setUserPermissionService(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setUserPermissionService","color: green;"),this.userPermissionService=r}catch(i){this.loggingService.catch("Error in setUserPermissionService: ",i)}}setDocService(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setDocService","color: green;"),this.docService=r}catch(i){this.loggingService.catch("Error in setDocService: ",i)}}setContactService(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setContactService","color: green;"),this.contactService=r}catch(i){this.loggingService.catch("Error in setContactService: ",i)}}setIamService(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setIamService","color: green;"),this.iamService=r}catch(i){this.loggingService.catch("Error in setIamService: ",i)}}setCommentService(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setCommentService","color: green;"),this.commentService=r}catch(i){this.loggingService.catch("Error in setCommentService: ",i)}}setCommonDbService(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setCommonDbService","color: green;"),this.commonDbService=r}catch(i){this.loggingService.catch("Error in setCommonDbService: ",i)}}validateOrganizationId(r){if(this.isVersionGreaterThanOrEqualTo4()&&!r?.organizationId)if(this.analyticsService.trackEvent(St.Events.Core.SDK_VALIDATE_CLIENT_FAILED,{apiKey:this.apiKey,clientUserId:r.userId,snippylyUserId:r.userSnippylyId,message:"Organization Id is not set",forceReset:this.userOptions$.value?.forceReset,user:this.getUserForTelemetry(r)},!0,r.userSnippylyId),this.configService.getSF())this.loggingService.catch("OrganizationId is not set in Identify method",void 0,void 0,!0);else throw new Error("OrganizationId is not set in Identify method")}setVeltAuthProvider(r){return y(this,null,function*(){this.loggingService.log("%c[WB] Calling FUNCTION: setVeltAuthProvider","color: green;");try{this.onRetrySubscription?.unsubscribe(),this.authProviderListenerGeneration++;let i=null;if(!r.user)return null;r.generateToken&&typeof r.generateToken=="function"&&(i=yield r.generateToken());let o=yield ER(()=>window.Velt.identify(r.user,B(B({},r.options||{}),i&&{authToken:i}),{fromProvider:!0}).catch(s=>(r.onError&&typeof r.onError=="function"&&r.onError(s),Promise.reject(s))),r.retryConfig||{retryCount:0,retryDelay:0});return o&&r.generateToken&&typeof r.generateToken=="function"&&(this.onRetrySubscription=this.coreActionsService.onAction(Wi.ERROR).pipe(mn(s=>s.code==="token_expired"),En(10)).subscribe(s=>y(this,null,function*(){if(s.code==="token_expired"){let a=this.authProviderListenerGeneration,c=()=>a===this.authProviderListenerGeneration,l=this.docService?.getDocumentIds()?.map(I=>({id:I.clientDocumentId}))??[],d=this.docService?.getOptionsFromDocumentPaths()??void 0,h=[],f=this.docService?.getLocation();f&&h.push(f.location);let g=this.docService?.getLocations();if(g&&Object.values(g).forEach(I=>{h.push(I.location)}),(yield ER(()=>y(this,null,function*(){try{let I=yield r.generateToken?.();return c()&&I?window.Velt.identify(r.user,B(B({},r.options||{}),I&&{authToken:I}),{fromProvider:!0}):!0}catch{return!1}}),r.retryConfig||{retryCount:0,retryDelay:0}))&&c()){let I=this.docService?.getDocumentIds()?.map(V=>V.clientDocumentId)??[];D2(l.map(V=>V.id),I)&&(yield this.docService?.setDocuments({documents:l,options:d,source:"internal"}));let S=[],L=this.docService?.getLocation();L?.location?.id&&S.push(L.location.id),Object.values(this.docService?.getLocations()??{}).forEach(V=>{V?.location?.id&&S.push(V.location.id)}),D2(h.map(V=>V?.id).filter(Boolean),S)&&(yield this.docService?.setLocations({locations:h,source:"internal",options:{appendLocation:!f}}))}}}))),o}catch(i){return this.loggingService.catch("Error in setVeltAuthProvider: ",i),null}})}setUserToStorage(r){return y(this,null,function*(){try{if(r){let i=yield wT(r,r?.userId??"");localStorage.setItem(F.LOCAL_STORAGE.VELT_IDENTIFY_USER,i)}}catch(i){this.loggingService.catch("Error in setUserToStorage: ",i)}})}getUserFromStorage(r){return y(this,null,function*(){try{let i=localStorage.getItem(F.LOCAL_STORAGE.VELT_IDENTIFY_USER);return i?yield sp(i,r?.userId??""):null}catch(i){return this.loggingService.catch("Error in getUserFromStorage: ",i),null}})}setIsPrivateCommentsEnabled(r){try{this.isPrivateCommentsEnabled$.next(r)}catch(i){this.loggingService.catch("Error in setIsPrivateCommentsEnabled: ",i)}}getIsPrivateCommentsEnabled(){return this.isPrivateCommentsEnabled$.value}getIsPrivateCommentsEnabled$(){return this.isPrivateCommentsEnabled$.asObservable()}updateUserWithColorAndTextColor(r){return y(this,null,function*(){try{let i=JSON.parse(JSON.stringify(r??{})),o=yield this.getUserFromStorage(i);return!o||Object.keys(o).length===0?(delete i?.color,delete i?.textColor,i):(o?.color&&(i.color=o?.color),o?.textColor&&(i.textColor=o?.textColor),i)}catch(i){return this.loggingService.catch("Error in updateUserWithColorAndTextColor: ",i),r}})}updateUserIfRequired(r){return y(this,null,function*(){this.loggingService.log("%c[WB] Calling FUNCTION: updateUserIfRequired","color: green;");try{let i=yield this.getUserFromStorage(r),o={};r.color&&r.color!==i?.color&&(o.color=r.color),r.textColor&&r.textColor!==i?.textColor&&(o.textColor=r.textColor),Object.keys(o).length>0&&r.clientOrganizationId&&this.docService?.addUserInfoToOrganization({organizationId:r.clientOrganizationId,user:Ee(B({},o),{userId:r.userId})})}catch(i){this.loggingService.catch("Error in updateUserIfRequired: ",i)}})}initializeClient(r,i,o,s,a){return y(this,null,function*(){try{if(this.autoLoginRequired=!1,this.portableResumeUserId=null,this.userOptions$.next(i),this.initializeClientToken)this.pendingUserLogin=r,this.pendingUserLoginSource=a;else{r.userSnippylyId=PV(this.configService.getApiKey(),r.userId),this.pendingUserLogin=void 0,this.pendingUserLoginSource=void 0,this.initializeClientToken=o;let c=this.portableSessionEpoch,l=this.portableLocalSessionEnds,d=yield hd(this.afAuth).pipe(En(1)).toPromise().catch(E=>null),h=!0;this.providedUser=JSON.parse(JSON.stringify(r));let f=!d&&s?this.takePendingPortableRestore(r,i):null,g=f?.envelope??null;if(g){if(this.loggingService.log("%c[WB] Calling FUNCTION: restorePortableSession","color: green;"),this.validateOrganizationId(r),!(yield this.applyIdentifyResponse(r,g.res,s)))return;h=!1,this.trackAutoAuthSuccess(r,a)}else if(!d&&s&&a==="internal-autoLogin"&&this.configService?.getEnablePortableBackend()===!0)return f?.resume?(Wn("session.resume-skipped",f.overtaken?"overtaken":"not restorable"),this.loggingService.log("Velt [portable backend]: not following the session another page saved; waiting for identify().")):f?.overtaken?(Wn("session.restore-discarded"),this.loggingService.log("Velt [portable backend]: discarding a reload restore that a sign-out or a new identify overtook."),this.clearPersistedPortableSessionIfUnchanged(f.raw)):(this.loggingService.log("Velt [portable backend]: nothing restorable on reload; waiting for identify()."),this.clearPersistedPortableSession()),this.initializeClientToken=0,this.checkForPendingLogin(),null;if(d){let E=yield Np(d,!0).catch(V=>null);if(!E)return;let{user:I,firebaseConfig:S,advancedQueries:L}=E.claims;d?.uid!==r?.userSnippylyId||r?.groupId!==I?.groupId||r?.organizationId!==I?.organizationId||i?.forceReset||!s&&r?.organizationId&&!this.forceReLoggedIn||this.forceReLoginRequiredForAdvancedQueries(r)||this.forceReLoginRequiredForRegion(r,S)||this.forceReLoginRequiredForCommentViews(r)?(localStorage.setItem(F.LOCAL_STORAGE.VELT_USER_FORCE_RE_LOGGED_IN,"true"),localStorage.setItem(F.LOCAL_STORAGE.VELT_COMMENT_VIEWS_MIGRATED,"true"),this.forceReLoggedIn=!0,yield this.signOutUser("internal"),c=this.portableSessionEpoch,l=this.portableLocalSessionEnds):(this.loggingService.log("%c[WB] Calling FUNCTION: reinitializeCurrentUser","color: green;"),this.loggingService.log("Keeping user"),yield this.updateUserIfRequired(r),this.validateOrganizationId(r),this.setFirebaseConfig(S),this.setAdvancedQueries(L),I&&(this.providedUser.isAdmin=!!I.isAdmin),this.initializeSignedInUser(d,s,r),h=!1,this.trackAutoAuthSuccess(r,a))}else if(h&&c===this.portableSessionEpoch&&this.isPortableIdentityChange(r,i)){let E=this.signOutUser("internal");c=this.portableSessionEpoch,l=this.portableLocalSessionEnds,yield E}if(h){this.analyticsService.trackEvent(St.Events.Core.SDK_VALIDATE_CLIENT_TRIGGERED,{apiKey:this.apiKey,clientUserId:r.userId,snippylyUserId:r.userSnippylyId,forceReset:this.userOptions$.value?.forceReset,user:this.getUserForTelemetry(r),source:a},!0,r.userSnippylyId,r.userId);let E=yield this.requestIdentify(r,i?.authToken);if(E.error){if(this.analyticsService.trackEvent(St.Events.Core.SDK_VALIDATE_CLIENT_FAILED,Ee(B({apiKey:this.apiKey,clientUserId:r.userId,snippylyUserId:r.userSnippylyId,message:E.error,forceReset:this.userOptions$.value?.forceReset,user:this.getUserForTelemetry(r)},E),{source:a}),!0,r.userSnippylyId,r.userId),E.error&&typeof E.error=="string")if(this.isTokenExpiredIdentifyError(E))this.emitIdentifyTokenExpiredError(E,r,a);else{let S=E;this.coreActionsService.triggerAction(Wi.ERROR,S)}throw E}else this.tokenExpiredErrorCount=0;if(this.shouldHandlePortableBackend(E)&&this.isPortableIdentifyOvertaken(c,l,s))return this.loggingService.log("Velt [portable backend]: discarding an identify response that a sign-out overtook."),this.initializeClientToken=0,this.checkForPendingLogin(),null;if(this.shouldHandlePortableBackend(E)&&c!==this.portableSessionEpoch&&(this.autoLoginRequired=!1,this.portableResumeUserId=null),this.analyticsService.trackEvent(St.Events.Core.SDK_VALIDATE_CLIENT_SUCCESS,{apiKey:this.apiKey,clientUserId:r.userId,snippylyUserId:r.userSnippylyId,forceReset:this.userOptions$.value?.forceReset,user:this.getUserForTelemetry(r),source:a},!0,r.userSnippylyId,r.userId),this.validateOrganizationId(r),!(yield this.applyIdentifyResponse(r,E,s)))return}this.initializeClientToken=0,this.lastLoggedInUserData={user:r,userOptions:i,initializeClientToken:o,autoLogin:s},this.checkForPendingLogin()}return r}catch(c){return this.initializeClientToken=0,this.checkForPendingLogin(),this.loggingService.catch("Error in initializeClient: ",c),i?.throwError?Promise.reject(c):Promise.resolve(null)}})}isPortableIdentifyOvertaken(r,i,o){let s=this.portableSessionEpoch-r;return o?s!==0:s!==this.portableLocalSessionEnds-i}isPortableIdentityChange(r,i){try{if(!this.portableAuthUser$.value)return!1;let o=this.portableSessionIdentity?.user??this.user$.value;return o?o.userSnippylyId!==r?.userSnippylyId||r?.groupId!==o.groupId||r?.organizationId!==o.organizationId||!!i?.forceReset:!1}catch(o){return this.loggingService.catch("Error in isPortableIdentityChange: ",o),!1}}isVersionGreaterThanOrEqualTo4(){try{let r=xc();return(r?parseInt(r.split(".")?.[0]||"0"):0)>=4}catch(r){return this.loggingService.catch("Error in isVersionGreaterThanOrEqualTo4: ",r),!1}}isVersion4Point5(){try{let r=xc();if(r){let i=r.split("."),o=parseInt(i[0]||"0"),s=parseInt(i[1]||"0"),a=parseInt(i[2]||"0");if(o>=4&&s>=5)return o===4&&s===5&&a===0?!r.toLowerCase().includes("beta"):!0}return!1}catch(r){return this.loggingService.catch("Error in isVersion4Point5: ",r),!1}}forceReLoginRequiredForAdvancedQueries(r){try{let i=this.isVersionGreaterThanOrEqualTo4(),o=!1;try{let s=localStorage.getItem(F.LOCAL_STORAGE.VELT_ADVANCED_QUERIES);s&&(o=JSON.parse(s)?.advancedQueriesEnabled)}catch(s){this.loggingService.catch("Error in forceReLoginRequiredForAdvancedQueries: ",s)}return!!(i&&r.organizationId&&!o)}catch(i){return this.loggingService.catch("Error in forceReLoginRequiredForAdvancedQueries: ",i),!1}}forceReLoginRequiredForCommentViews(r){try{let i=this.isVersion4Point5(),o=!1;try{let s=localStorage.getItem(F.LOCAL_STORAGE.VELT_COMMENT_VIEWS_MIGRATED);s&&(o=JSON.parse(s))}catch(s){this.loggingService.catch("Error in forceReLoginRequiredForCommentViews: ",s)}return!!(i&&r.organizationId&&!o)}catch(i){return this.loggingService.catch("Error in forceReLoginRequiredForCommentViews: ",i),!1}}forceReLoginRequiredForRegion(r,i){try{return!!(this.isVersionGreaterThanOrEqualTo4()&&r.organizationId&&!i?.region)}catch(o){return this.loggingService.catch("Error in forceReLoginRequiredForRegion: ",o),!1}}checkForPendingLogin(){this.pendingUserLogin&&this.initializeClient(this.pendingUserLogin,this.userOptions$?.value||{},new Date().getTime(),void 0,this.pendingUserLoginSource)}setFirebaseConfig(r){this.loggingService.log("%c[WB] Calling FUNCTION: setFirebaseConfig","color: green;");try{this.firebaseConfig$.value||this.firebaseConfig$.next({firebaseOptions:B(B({},this.endpointsService.getFirebaseConfig()),r)})}catch(i){this.loggingService.catch("Error in setFirebaseConfig: ",i)}}requestIdentify(r,i){return y(this,null,function*(){let o=xc();this.usersService?.userResolverConfigured?.()&&(r=IR(r));let s=this.endpointsService.getPortableIdentifyUrl();return s?FG({url:s,apiKey:this.apiKey,user:r,version:o,authToken:i}):(yield pd(this.functions,od({url:this.endpointsService.getCloudFunctionUrl("validateClient"),apiProxyDomain:this.configService?.getApiProxyDomain()}),{timeout:1200*1e3})({apiKey:this.apiKey,user:r,version:o,authToken:i}))?.data})}requestPortableRefresh(r){return y(this,null,function*(){let i=this.endpointsService.getPortableIdentifyUrl();if(!i||Pc(i)){let o="the portable identify URL is not configured; the renewal credential was not sent";return{error:o,code:"network_error",message:o,source:"identify"}}return BG({url:VG(i,"refresh"),apiKey:this.apiKey,refreshToken:r,timeoutMs:xG()})})}reportPortableRefreshMisconfigured(r){try{let i=String(r?.code??"unknown");if(this.reportedPortableRefreshCodes.has(i))return;if(this.reportedPortableRefreshCodes.add(i),i===e.PORTABLE_NO_CREDENTIAL_ENVELOPE.code){console.error("Velt [portable backend]: this session has no renewal credential for the configured gateway (the identify answer carried no refreshToken, or selfHosted.portableBackendUrl changed after sign-in), so it cannot be renewed: it is signed out and the app must identify() again. Every identify answer from portable-v0.1.6 or later carries one.");return}let o=r?.message?` (${r.message})`:"";console.error(i==="invalid-argument"?`Velt [portable backend]: the gateway rejected the session renewal as malformed: invalid-argument${o}. The SDK and gateway versions disagree on /identify/refresh; renewal is stopped for this session.`:`Velt [portable backend]: the gateway refused the session renewal: ${i}${o}. A deployment setting is wrong (the allowed origins, or the identify configuration for this API key). Renewal is stopped for this session; after the setting is fixed, a reload renews from the saved session.`)}catch{}}emitIdentifyTokenExpiredError(r,i,o){if(this.tokenExpiredErrorCount++,this.tokenExpiredErrorCount<=this.TOKEN_EXPIRED_ERROR_COUNT_LIMIT){let s={code:"token_expired",message:"Token expired",error:r?.error,source:r?.source};this.coreActionsService.triggerAction(Wi.ERROR,s)}else{let s={code:"too_many_retries",message:"Token expired. Too many retries.",error:r?.error,source:r?.source};this.coreActionsService.triggerAction(Wi.ERROR,s),this.analyticsService.trackEvent(St.Events.Core.SDK_JWT_EXPIRED_RETRY_EXCEEDED,{apiKey:this.apiKey,clientUserId:i.userId,snippylyUserId:i.userSnippylyId,forceReset:this.userOptions$.value?.forceReset,source:o},!0,i.userSnippylyId,i.userId)}}isTokenExpiredIdentifyError(r){try{return r?.code==="token_expired"||!!r?.error?.toLowerCase?.()?.includes("token expired")}catch{return!1}}shouldHandlePortableBackend(r){try{return this.configService?.getEnablePortableBackend()===!0&&XG(r)}catch(i){return this.loggingService.catch("Error in shouldHandlePortableBackend: ",i),!1}}applyIdentifyResponse(r,i,o){return y(this,null,function*(){if(this.shouldHandlePortableBackend(i)){this.portableSessionEpoch++;let s=this.portableSessionEpoch,a=Xc(i),c=a?this.endpointsService.getPortableIdentifyUrl()??void 0:void 0;if(this.portableSessionIdentity=B({user:r,epoch:s},a?{refreshToken:a,refreshTokenIssuer:c}:{}),this.portableSessionStartedAt=Date.now(),this.handlePortableBackendResponse(i),yield this.applyPortableProjectConfig(i),s!==this.portableSessionEpoch)return Wn("session.adopt-discarded"),this.loggingService.log("Velt [portable backend]: discarding a portable sign-in that a sign-out or a new identify overtook."),!0;this.initializePortableSignedInUser(r,i)}else if(i.firebaseConfig){this.clearPortableBackendState(),this.setFirebaseConfig(i.firebaseConfig),yield this.signInWithCustomToken(r,i.token),this.loggingService.log("new signed in user",this.afAuth.currentUser);let s=yield Np(this.afAuth.currentUser,!0).catch(l=>null);if(!s)return!1;let{user:a,advancedQueries:c}=s.claims;this.setAdvancedQueries(c),this.providedUser.isAdmin=!!a?.isAdmin,this.initializeSignedInUser(this.afAuth.currentUser,o,r)}return!0})}applyPortableProjectConfig(r){return y(this,null,function*(){try{let i=yield KG({apiEndpoint:r?.apiEndpoint,token:r?.token});if(!i)return;this.setIsPrivateCommentsEnabled(i.isPrivateCommentsEnabled);let o=i.activityConfig??{immutable:!1,isEnabled:!1};this.cachedActivityConfig=o,this.activityService?.setActivityFeatureConfig(o)}catch(i){this.loggingService.catch("Error in applyPortableProjectConfig: ",i)}})}handlePortableBackendResponse(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: handlePortableBackendResponse","color: green;"),this.portableBackend$.next({backend:r?.backend,wsEndpoint:r?.wsEndpoint,apiEndpoint:r?.apiEndpoint}),QG({backend:r?.backend,token:r?.token??null,wsEndpoint:r?.wsEndpoint,apiEndpoint:r?.apiEndpoint}),this.schedulePortableTokenRefresh(r?.token??null)}catch(i){this.loggingService.catch("Error in handlePortableBackendResponse: ",i)}}schedulePortableTokenRefresh(r){try{if(this.clearPortableTokenRefresh(),this.portableToken=r,!r)return;this.portableRefreshFailures=0,this.portableRefreshFailuresPastExpiry=0;let i=$G(wp(r),Date.now());if(i!==null?this.armPortableRefreshTimer(i,"expiry"):this.loggingService.log("Velt [portable backend]: no proactive token refresh scheduled (token expiry unreadable or already past)."),typeof document<"u"&&typeof document.addEventListener=="function"){this.portableVisibilityHandler=o=>{try{let s=wN(this.portableToken,Date.now());if(Wn(`page.${o?.type??"lifecycle"}`,`visibility=${typeof document<"u"?document.visibilityState:"?"} credentialExpired=${s}`),o?.type==="pageshow"&&o.persisted===!1)return;s?this.refreshPortableToken("focus"):this.checkPortableSessionAgainstStorage(`page.${o?.type??"lifecycle"}`),ZG()}catch{}};for(let o of e.PORTABLE_DOCUMENT_LIFECYCLE_EVENTS)document.addEventListener(o,this.portableVisibilityHandler);typeof window<"u"&&typeof window.addEventListener=="function"&&window.addEventListener("pageshow",this.portableVisibilityHandler)}this.armPortableStorageListener()}catch(i){this.loggingService.catch("Error scheduling portable token refresh: ",i)}}readStoredPortableSessionRaw(){try{return localStorage.getItem(F.LOCAL_STORAGE.VELT_PORTABLE_SESSION)}catch{return}}readPortableSavedSession(r){return y(this,null,function*(){try{let i;try{i=localStorage.getItem(F.LOCAL_STORAGE.VELT_PORTABLE_SESSION)}catch{return{verdict:"persist"}}if(!i){let a=this.readPortableSignOutAt();return{verdict:a!==null&&a>=this.portableSessionStartedAt?"stop":"persist"}}if(i===this.portableSavedSessionRaw)return{verdict:"persist"};let o=null;try{o=yield sp(i,this.apiKey??"")}catch{o=null}return o?.v!==1||o?.apiKey!==this.apiKey||!o?.user?.userId?{verdict:"renew-only"}:o.user.userId!==r?{verdict:"stop"}:{verdict:"persist",sharedRefreshToken:(o?.portableBackendUrl??null)===(this.configService?.getSelfHostedConfig?.()?.portableBackendUrl??null)?Xc(o?.res):void 0}}catch(i){return this.loggingService.catch("Error in AuthService readPortableSavedSession: ",i),{verdict:"persist"}}})}recordPortableSignOut(){try{if(!this.apiKey)return;let r={};try{let i=JSON.parse(localStorage.getItem(F.LOCAL_STORAGE.VELT_PORTABLE_SIGNED_OUT)??"{}");i&&typeof i=="object"&&!Array.isArray(i)&&(r=i)}catch{r={}}r[this.apiKey]=Date.now(),localStorage.setItem(F.LOCAL_STORAGE.VELT_PORTABLE_SIGNED_OUT,JSON.stringify(r))}catch{}}armPortableRefreshTimer(r,i){this.cancelPortableRefreshTimer(),this.portableRefreshTimer=setTimeout(()=>this.refreshPortableToken(i),r)}cancelPortableRefreshTimer(){this.portableRefreshTimer&&(clearTimeout(this.portableRefreshTimer),this.portableRefreshTimer=null)}readPortableSignOutAt(){try{let r=JSON.parse(localStorage.getItem(F.LOCAL_STORAGE.VELT_PORTABLE_SIGNED_OUT)??"null"),i=r&&this.apiKey?r[this.apiKey]:void 0;return typeof i=="number"&&Number.isFinite(i)?i:null}catch{return null}}clearPortableTokenRefresh(){try{if(this.cancelPortableRefreshTimer(),this.portableVisibilityHandler&&typeof document<"u")for(let r of e.PORTABLE_DOCUMENT_LIFECYCLE_EVENTS)document.removeEventListener(r,this.portableVisibilityHandler);this.portableVisibilityHandler&&typeof window<"u"&&typeof window.removeEventListener=="function"&&window.removeEventListener("pageshow",this.portableVisibilityHandler),this.portableVisibilityHandler=null,this.portableStorageHandler&&typeof window<"u"&&typeof window.removeEventListener=="function"&&window.removeEventListener("storage",this.portableStorageHandler),this.portableStorageHandler=null}catch{}}refreshPortableToken(r){return y(this,null,function*(){let i=this.portableSessionEpoch;if(this.portableRefreshInFlightEpoch!==i){this.portableRefreshInFlightEpoch=i;try{let o=this.portableSessionIdentity,s=o?.user;if(!o||o.epoch!==i||!s?.userId||!this.portableBackend$.value)return;if(this.portableRenewalStopped?.epoch===i){Wn("credential.refresh-skipped",`${this.portableRenewalStopped.reason}; waiting for identify()`);return}let a=yield this.readPortableSavedSession(s.userId);if(i!==this.portableSessionEpoch)return;if(a.verdict==="stop"){this.endPortableSessionFromAnotherPage(s,`refresh:${r}`);return}let c=a.sharedRefreshToken,l=this.endpointsService.getPortableIdentifyUrl()??void 0;c&&l&&this.portableSessionIdentity&&c!==this.portableSessionIdentity.refreshToken&&(Wn("credential.shared-adopted"),this.portableSessionIdentity=Ee(B({},this.portableSessionIdentity),{refreshToken:c,refreshTokenIssuer:l}));let d=this.portableSessionIdentity??o,h=d.refreshToken&&d.refreshTokenIssuer===l?d.refreshToken:void 0;if(!h){this.reportPortableRefreshMisconfigured(e.PORTABLE_NO_CREDENTIAL_ENVELOPE),this.endPortableSessionForDeadCredential(s,e.PORTABLE_NO_CREDENTIAL_ENVELOPE,r);return}this.loggingService.log(`Velt [portable backend]: refreshing the gateway credential (${r}).`),Wn("credential.refresh-requested",`reason=${r} via=refresh`);let f=yield this.requestPortableRefresh(h);if(i!==this.portableSessionEpoch){Wn("credential.refresh-discarded",`reason=${r}`),this.loggingService.log("Velt [portable backend]: discarding a credential refresh that a sign-out or a new identify overtook.");return}if(!this.shouldHandlePortableBackend(f)||!f?.token){if(f?.code===RN){this.endPortableSessionForDeadCredential(s,f,r);return}if(NN.has(f?.code)){Wn("credential.refresh-misconfigured",`code=${f?.code}`),this.portableRenewalStopped={epoch:i,reason:`renewal refused: ${f?.code}`},this.cancelPortableRefreshTimer(),this.reportPortableRefreshMisconfigured(f);return}this.portableRefreshFailures++,this.portableRefreshFailures>=e.PORTABLE_REFRESH_WARN_AFTER_FAILURES&&this.reportPortableRefreshFailing(f,i);let S=Date.now();wN(this.portableToken,S)&&this.portableRefreshFailuresPastExpiry++,this.armPortableRefreshTimer(WG(wp(this.portableToken),S,this.portableRefreshFailuresPastExpiry),r);return}let g=this.readStoredPortableSessionRaw(),E=yield this.readPortableSavedSession(s.userId);if(i!==this.portableSessionEpoch){Wn("credential.refresh-discarded",`reason=${r}`);return}if(E.verdict==="stop"){this.endPortableSessionFromAnotherPage(s,`refresh-answered:${r}`);return}Wn("credential.refreshed"),this.handlePortableBackendResponse(f);let I=Xc(f)??h;this.portableSessionIdentity?.epoch===i&&(this.portableSessionIdentity=Ee(B({},this.portableSessionIdentity),{refreshToken:I,refreshTokenIssuer:l})),E.verdict==="persist"&&this.persistPortableSession(s,Ee(B({},f),{refreshToken:I}),{expectStoredRaw:g})}catch(o){this.loggingService.catch("Error refreshing portable token: ",o)}finally{this.portableRefreshInFlightEpoch===i&&(this.portableRefreshInFlightEpoch=null)}}})}reportPortableRefreshFailing(r,i){try{if(this.portableRefreshWarnedEpoch===i)return;this.portableRefreshWarnedEpoch=i,console.warn(`Velt [portable backend]: could not renew the gateway credential (${this.portableRefreshFailures} attempts in a row${r?.code?`, last: ${r.code}`:""}). The SDK keeps retrying \u2014 every 30 s while the current token is valid; once it has expired, after 30 s, doubling up to every 16 minutes, and each time the page becomes active again \u2014 and the realtime session is unavailable from the moment the token expires until a renewal succeeds. Check that the gateway's /identify/refresh endpoint is reachable and the API key is enabled.`)}catch{}}endPortableSessionForDeadCredential(r,i,o){Wn("credential.refresh-credential-invalid",`reason=${o}`),this.portableSavedSessionRaw&&this.clearPersistedPortableSessionIfUnchanged(this.portableSavedSessionRaw),this.endPortableSessionLocally(r),this.emitIdentifyTokenExpiredError(i,r,"internal-portableRefresh")}endPortableSessionFromAnotherPage(r,i){Wn("session.ended-elsewhere",i),this.loggingService.log("Velt [portable backend]: another page signed out or signed in another user; this page's session ends too."),this.endPortableSessionLocally(r)}checkPortableSessionAgainstStorage(r){return y(this,null,function*(){try{let i=this.portableSessionEpoch,o=this.portableSessionIdentity;if(!o||o.epoch!==i||!o.user?.userId)return;let{verdict:s}=yield this.readPortableSavedSession(o.user.userId);s==="stop"&&i===this.portableSessionEpoch&&this.endPortableSessionFromAnotherPage(o.user,r)}catch(i){this.loggingService.catch("Error checking the portable session against storage: ",i)}})}armPortableStorageListener(){try{if(this.portableStorageHandler||typeof window>"u"||typeof window.addEventListener!="function")return;this.portableStorageHandler=r=>{try{let i=r?.key;if(i!==null&&i!==F.LOCAL_STORAGE.VELT_PORTABLE_SESSION&&i!==F.LOCAL_STORAGE.VELT_PORTABLE_SIGNED_OUT)return;this.portableSessionIdentity?this.checkPortableSessionAgainstStorage("storage"):this.portableResumeUserId&&this.resumePortableSessionFromAnotherPage()}catch{}},window.addEventListener("storage",this.portableStorageHandler)}catch(r){this.loggingService.catch("Error arming the portable storage listener: ",r)}}resumePortableSessionFromAnotherPage(){let r=this.portableResumeUserId;!r||this.portableSessionIdentity||this.initializeClientToken||!this.autoLoginRequired||this.configService?.getEnablePortableBackend()!==!0||(this.portableAutoLoginInFlight=this.portableAutoLoginInFlight.then(()=>this.autoLoginPortableSession({onlyUserId:r})).catch(()=>{}))}initializePortableSignedInUser(r,i){try{if(this.loggingService.log("%c[WB] Calling FUNCTION: initializePortableSignedInUser","color: green;"),!i?.token){this.portableAuthUser$.value&&(this.resetServicesCache(),this.user$.next(null),this.clearPortableBackendState());return}let o=new zi;o.type="signedIn",o=B(B({},o),r),o.color=o.color||this.getUserAvatarColor(o.userId),o.textColor=o.textColor||this.getUserTextColor(o.userId),o.initial=o.initial||o.name?.charAt(0).toUpperCase()||o.email?.charAt(0).toUpperCase(),this.setUserToStorage(o),this.persistPortableSession(o,i);let s=Object.assign({},o);delete s.contacts,this.analyticsService.identifyUser(o.userSnippylyId,s,{forceReset:this.userOptions$.value?.forceReset}),this.user$.next(o),this.portableAuthUser$.next({uid:o.userSnippylyId})}catch(o){this.loggingService.catch("Error in initializePortableSignedInUser: ",o)}}clearPortableBackendState(){try{this.portableSignOutOwnsEpochBump||this.portableSessionEpoch++,this.releasePortableSession({clearStorage:!0})}catch(r){this.loggingService.catch("Error clearing portable backend state: ",r)}}releasePortableSession(r){this.pendingPortableRestore=null,this.portableSessionIdentity=null,r.clearStorage&&(this.portableAutoLoginCalled||this.configService?.getEnablePortableBackend()===!0)&&this.clearPersistedPortableSession(),!(!this.portableBackend$.value&&!this.portableAuthUser$.value)&&(this.clearPortableTokenRefresh(),this.portableToken=null,this.portableRefreshFailures=0,this.portableRefreshFailuresPastExpiry=0,this.portableBackend$.next(null),this.portableAuthUser$.next(null),this.user$.next(null),JG())}endPortableSessionLocally(r){try{this.userPermissionService?.invalidateAllPermissionsState(),this.portableSessionEpoch++,this.portableLocalSessionEnds++,this.resetServicesCache(),this.user$.next(null),this.releasePortableSession({clearStorage:!1}),this.autoLoginRequired=!0,this.portableResumeUserId=r?.userId??null,this.armPortableStorageListener()}catch(i){this.loggingService.catch("Error ending the portable session: ",i)}}trackAutoAuthSuccess(r,i){this.analyticsService.trackEvent(St.Events.Core.SDK_USER_AUTH_SUCCESS,{apiKey:this.apiKey,clientUserId:r.userId,snippylyUserId:r.userSnippylyId,authType:"auto",forceReset:this.userOptions$.value?.forceReset,user:this.getUserForTelemetry(r),source:i})}buildAutoLoginOptions(){return this.userOptions$?.value?Ee(B({},this.userOptions$.value),{replaceContacts:!1,replaceGroupContacts:!1,replacePrivateContacts:!1}):{}}persistPortableSession(r,i,o){let s=this.portableSessionEpoch;return this.portablePersistInFlight=this.portablePersistInFlight.then(()=>this.writePortableSessionEnvelope(r,i,s,o?.expectStoredRaw)).catch(()=>{}),this.portablePersistInFlight}writePortableSessionEnvelope(r,i,o,s){return y(this,null,function*(){try{if(!i?.token||!r?.userId||!this.apiKey)return;let a=this.user$.value;if(a?.userSnippylyId&&r.userSnippylyId&&a.userSnippylyId!==r.userSnippylyId)return;let c=this.getUserWithoutContacts(r);if(!c)return;let l={v:1,apiKey:this.apiKey,portableBackendUrl:this.configService?.getSelfHostedConfig?.()?.portableBackendUrl??null,user:c,res:B({backend:i.backend,wsEndpoint:i.wsEndpoint,apiEndpoint:i.apiEndpoint,token:i.token},Xc(i)?{refreshToken:Xc(i)}:{})},d=yield wT(l,this.apiKey);if(o!==this.portableSessionEpoch){this.loggingService.log("Velt [portable backend]: dropping a session envelope write that a sign-out or a new identify overtook.");return}if(s!==void 0&&localStorage.getItem(F.LOCAL_STORAGE.VELT_PORTABLE_SESSION)!==s){this.loggingService.log("Velt [portable backend]: not re-persisting a refreshed credential \u2014 another page changed the saved session meanwhile.");return}let h=this.readPortableSignOutAt();if(h!==null&&h>this.portableSessionStartedAt){this.loggingService.log("Velt [portable backend]: not persisting the session \u2014 another page signed out after it began.");return}typeof d=="string"&&!d.startsWith("{")&&d!==JSON.stringify(l)&&(localStorage.setItem(F.LOCAL_STORAGE.VELT_PORTABLE_SESSION,d),this.portableSavedSessionRaw=d)}catch(a){this.loggingService.catch("Error in writePortableSessionEnvelope: ",a)}})}readPersistedPortableSession(){return y(this,null,function*(){try{let r=localStorage.getItem(F.LOCAL_STORAGE.VELT_PORTABLE_SESSION);if(!r)return null;let i=yield sp(r,this.apiKey??"");return i?i.v!==1||i.apiKey!==this.apiKey||!i.user?.userId||!i.res?.token?(this.clearPersistedPortableSession(),null):(this.portableSavedSessionRaw=r,{envelope:i,raw:r}):null}catch(r){return this.loggingService.catch("Error in readPersistedPortableSession: ",r),null}})}clearPersistedPortableSession(){this.portableSavedSessionRaw=null;try{localStorage.removeItem(F.LOCAL_STORAGE.VELT_PORTABLE_SESSION)}catch{}}clearPersistedPortableSessionIfUnchanged(r){try{r&&localStorage.getItem(F.LOCAL_STORAGE.VELT_PORTABLE_SESSION)===r&&this.clearPersistedPortableSession()}catch{}}isPortableTokenNearExpiry(r){let i=wp(r);return i===null||i-Date.now()<=3e4}isPortableRestoreConfigured(){try{let r=this.endpointsService?.getPortableIdentifyUrl?.();return this.configService?.getEnablePortableBackend()===!0&&!!r&&!Pc(r)}catch{return!1}}isRestorablePortableSession(r,i,o){try{if(!this.isPortableRestoreConfigured()||o?.forceReset||r.portableBackendUrl!==(this.configService?.getSelfHostedConfig?.()?.portableBackendUrl??null)||!zc(r.res?.apiEndpoint)||r.user?.userSnippylyId!==i?.userSnippylyId)return!1;let s=this.user$.value;return s?.userSnippylyId&&s.userSnippylyId!==r.user.userSnippylyId||this.isPortableTokenNearExpiry(r.res.token)?!1:this.shouldHandlePortableBackend(r.res)}catch(s){return this.loggingService.catch("Error in isRestorablePortableSession: ",s),!1}}takePendingPortableRestore(r,i){let o=this.pendingPortableRestore;if(this.pendingPortableRestore=null,!o)return null;let s=o.resume===!0;return o.epoch!==this.portableSessionEpoch?{envelope:null,overtaken:!0,raw:o.raw,resume:s}:{envelope:this.isRestorablePortableSession(o.envelope,r,i)?o.envelope:null,overtaken:!1,raw:o.raw,resume:s}}autoLoginPortableSession(r){return y(this,null,function*(){let i=this.portableSessionEpoch,o=()=>i!==this.portableSessionEpoch||!this.autoLoginRequired,s=!!r?.onlyUserId;try{let a=yield this.readPersistedPortableSession(),c=a?.envelope;if(!a||!c||o()||s&&c.user?.userId!==r?.onlyUserId)return;if(!this.isPortableRestoreConfigured()){s||this.clearPersistedPortableSession();return}if(c.portableBackendUrl!==(this.configService?.getSelfHostedConfig?.()?.portableBackendUrl??null)){s||(this.loggingService.log("Velt [portable backend]: the persisted session belongs to a different gateway; dropped."),this.clearPersistedPortableSession());return}let l=c;if(this.isPortableTokenNearExpiry(c.res.token)){let h=Xc(c.res);if(!h){this.loggingService.log("Velt [portable backend]: the persisted session has no renewal credential; waiting for identify()."),this.clearPersistedPortableSessionIfUnchanged(a.raw);return}Wn("credential.restore-renew","via=refresh");let f=yield this.requestPortableRefresh(h);if(o())return;if(!this.shouldHandlePortableBackend(f)||!f?.token){if(f?.code==="network_error"){this.loggingService.log("Velt [portable backend]: could not reach the gateway to renew the persisted session; keeping it for the next attempt.");return}if(NN.has(f?.code)&&this.reportPortableRefreshMisconfigured(f),f?.code!==RN){this.loggingService.log(`Velt [portable backend]: the persisted session's renewal was refused for now (${f?.code??"no code"}); keeping it for the next attempt.`);return}this.loggingService.log("Velt [portable backend]: the persisted session could not be renewed on reload; waiting for identify()."),this.clearPersistedPortableSessionIfUnchanged(a.raw);return}let g=Xc(f)??h;l=Ee(B({},c),{res:{backend:f.backend,wsEndpoint:f.wsEndpoint,apiEndpoint:f.apiEndpoint,token:f.token,refreshToken:g}})}if(o())return;this.pendingPortableRestore=B({envelope:l,epoch:i,raw:a.raw},s?{resume:!0}:{});let d=this.buildAutoLoginOptions();s&&delete d.forceReset,yield this.initializeClient(B({},l.user),d,new Date().getTime(),!0,"internal-autoLogin")}catch(a){this.loggingService.catch("Error in autoLoginPortableSession: ",a)}finally{this.pendingPortableRestore=null}})}getPortableBackend(){return this.portableBackend$.value}getFirebaseConfig$(){return this.loggingService.log("%c[WB] Calling FUNCTION: getFirebaseConfig","color: green;"),this.firebaseConfig$.asObservable()}getFirebaseConfig(){return this.loggingService.log("%c[WB] Calling FUNCTION: getFirebaseConfig","color: green;"),this.firebaseConfig$.value}setAdvancedQueries(r){this.loggingService.log("%c[WB] Calling FUNCTION: setAdvancedQueries","color: green;");try{r&&typeof r=="object"&&localStorage.setItem(F.LOCAL_STORAGE.VELT_ADVANCED_QUERIES,JSON.stringify(r)),this.advancedQueries$.next(r)}catch(i){this.loggingService.catch("Error in setAdvancedQueries: ",i)}}getAdvancedQueries$(){return this.loggingService.log("%c[WB] Calling FUNCTION: getAdvancedQueries$","color: green;"),this.advancedQueries$.asObservable()}getAdvancedQueries(){return this.loggingService.log("%c[WB] Calling FUNCTION: getAdvancedQueries","color: green;"),this.advancedQueries$.value}getAdvancedQueriesEnabled(r){try{return!this.configService.getConfig()?.advancedQueriesDisabled&&(r||!!this.getAdvancedQueries()?.advancedQueriesEnabled)}catch(i){return this.loggingService.catch("Error in getAdvancedQueriesEnabled: ",i),!1}}signOutPreviousUser(){return this.signOutPreviousUser$.asObservable()}getUser(){return this.loggingService.log("%c[WB] Calling FUNCTION: getUser","color: green;"),this.afAuth?.currentUser||this.portableAuthUser$.value?this.user$.value:null}getProvidedOrCurrentUserId(){try{return this.providedUser?.userId??this.user$.value?.userId??void 0}catch(r){this.loggingService.catch("Error in getProvidedOrCurrentUserId: ",r);return}}scheduleLoggedInUserResolveRetry(r,i){return y(this,null,function*(){try{if(!r||this.loggedInUserResolveRetryInFlightUserId===r)return;this.loggedInUserResolveRetryInFlightUserId=r;let o=this.loggedInUserResolveRetryDelaysMs;for(let s=0;s<o.length;s++){if(yield new Promise(l=>setTimeout(l,o[s])),(this.providedUser?.userId??this.user$.value?.userId)!==r)return;let a=yield this.usersService?.resolveUsers({userIds:[r],organizationId:i,skipUserCheck:!0,forceResolve:!0,moduleName:IT.IDENTIFY});if((this.providedUser?.userId??this.user$.value?.userId)!==r)return;let c=a?.[r];if(c&&this.applyLateResolvedLoggedInUser(r,c))return}this.loggingService.catch(`User resolver did not return the logged-in user after ${o.length} retry attempts \u2014 comments created by this author will have no resolved profile until the resolver returns them`,{userId:r,organizationId:i,attempts:o.length})}catch(o){this.loggingService.catch("Error in scheduleLoggedInUserResolveRetry: ",o)}finally{this.loggedInUserResolveRetryInFlightUserId===r&&(this.loggedInUserResolveRetryInFlightUserId=null)}})}applyLateResolvedLoggedInUser(r,i){try{let o=this.user$.value;if(!o||o.userId!==r)return!1;if(!this.afAuth?.currentUser)return!0;let s=Yne(o,i);return this.setUserToStorage(s),this.user$.next(s),!0}catch(o){return this.loggingService.catch("Error in applyLateResolvedLoggedInUser: ",o),!1}}combinedAuthBearer$(){let r=!1;return Ka([hd(this.afAuth).pipe(Qa(VN)),this.portableAuthUser$]).pipe(mn(([i,o])=>(o!==null&&(r=!0),!!(i!==VN||o!==null||r))),De(([i,o])=>(i===VN?null:i)??o))}getUser$(){return this.loggingService.log("%c[WB] Calling FUNCTION: getUser$","color: green;"),this.combinedAuthBearer$().pipe(Mr(r=>r?this.user$.asObservable():lt(null)),yo(cp))}getAuthUser(){return this.loggingService.log("%c[WB] Calling FUNCTION: getAuthUser","color: green;"),this.afAuth?.currentUser}getAuthState$(){return this.combinedAuthBearer$()}getIdTokenResultForUser(r,i){return Np(r,i)}getUserOptions(){return this.loggingService.log("%c[WB] Calling FUNCTION: getUserOptions","color: green;"),this.userOptions$.value}getUserOptions$(){return this.loggingService.log("%c[WB] Calling FUNCTION: getUserOptions$","color: green;"),this.userOptions$.asObservable()}updateUser(r){this.loggingService.log("%c[WB] Calling FUNCTION: updateUser","color: green;");try{let i=this.user$.value;if(r.userId&&r.userId!==i?.userId||r?.groupId&&r?.groupId!==i?.groupId||r?.organizationId&&r?.organizationId!==i?.organizationId)this.providedUser=r,this.initializeClient(r,this.userOptions$?.value||{},new Date().getTime(),void 0,"internal-updateUser");else if(this.providedUser=B(B({},this.providedUser),r),i){let o=B(B({},i),r);this.updateUserInternally(o)}}catch(i){this.loggingService.catch("Error in updateUser: ",i)}}signInWithCustomToken(r,i,o="manual"){this.loggingService.log("%c[WB] Calling FUNCTION: signInWithCustomToken","color: green;");try{return IG(this.afAuth,i).then(s=>(this.analyticsService.trackEvent(St.Events.Core.SDK_USER_AUTH_SUCCESS,{apiKey:this.apiKey,clientUserId:r.userId,snippylyUserId:r.userSnippylyId,authType:o,forceReset:this.userOptions$.value?.forceReset,user:this.getUserForTelemetry(r)}),s)).catch(s=>(this.analyticsService.trackEvent(St.Events.Core.SDK_USER_AUTH_FAILED,{apiKey:this.apiKey,clientUserId:r.userId,snippylyUserId:r.userSnippylyId,authType:o,forceReset:this.userOptions$.value?.forceReset,message:s.message,user:this.getUserForTelemetry(r)}),s))}catch(s){return this.loggingService.catch("Error in signInWithCustomToken: ",s),Promise.reject(s)}}clearCache(){this.loggingService.log("%c[WB] Calling FUNCTION: clearCache","color: green;");try{this.activityService?.resetActivityFeatureConfig()}catch(r){this.loggingService.catch("Error in clearCache: ",r)}}resetServicesCache(){this.loggingService.log("%c[WB] Calling FUNCTION: resetServicesCache in AuthService","color: green;");try{this.crdtService?.flushAllEditorActivities(),this.clearCache(),this.commonDbService?.unsubscribeFromObservables(),this.activityService?.destroy(),this.docService?.clearCacheOnUserCascade(),this.contactService?.clearCache(),this.iamService?.clearCache(),this.areaService?.clearCache(),this.commentService?.clearCache(),this.reactionService?.clearCache(),this.serviceBook.get(hT)?.clearCache(),this.viewsService?.clearCache()}catch(r){this.loggingService.catch("Error in resetServicesCache: ",r)}}initializeSignedInUser(r,i,o){this.loggingService.log("%c[WB] Calling FUNCTION: initializeSignedInUser","color: green;");try{let s=new zi;s.userSnippylyId=r.uid,s.type="signedIn",o&&(s=B(B({},s),o)),this.setUserToStorage(s),this.mergeUserWithProvidedUserData(s,i)}catch(s){this.loggingService.catch("Error in initializeSignedInUser: ",s)}}mergeUserWithProvidedUserData(r,i){return y(this,null,function*(){this.loggingService.log("%c[WB] Calling FUNCTION: mergeUserWithProvidedUserData","color: green;");try{r.userId=this.providedUser?.userId||r.userId;let o=null;if(this.usersService?.externalUserDataProviderAvailable()){let s=nd(),a=IT.IDENTIFY,c=this.providedUser?.clientOrganizationId||r.clientOrganizationId;this.coreActionsService.triggerAction(Wi.USER_RESOLVER,{event:St.Events.Resolver.USER_RESOLUTION_REQUEST_FORMED,timestamp:new Date().getTime(),uniqueId:s,methodName:nR.MERGE_USER_WITH_PROVIDED_USER_DATA,moduleName:a,source:"internal",payload:{userIds:[r.userId],organizationId:c}});let l=yield this.usersService.resolveUsers({userIds:[r.userId],organizationId:c,skipUserCheck:!0,uniqueId:s,moduleName:a});l&&l[r.userId]?o=JSON.parse(JSON.stringify(l[r.userId]||{})):this.scheduleLoggedInUserResolveRetry(r.userId,c),r=B(B({},r),o||{})}r.name=o?o?.name:this.providedUser?.name||r.name,r.clientUserName=o?o?.clientUserName:this.providedUser?.clientUserName||r.clientUserName,r.photoUrl=o?o?.photoUrl:this.providedUser?.photoUrl||r.photoUrl,r?.photoUrl===void 0&&(r.photoUrl=null),r.email=o?o?.email:this.providedUser?.email||r.email,r.color=o?.color||this.providedUser?.color||this.getUserAvatarColor(r.userId),r.textColor=o?.textColor||this.providedUser?.textColor||this.getUserTextColor(r.userId),r.initial=o?.initial||this.providedUser?.initial||r.initial||r.name?.charAt(0).toUpperCase()||r.email?.charAt(0).toUpperCase(),r.contacts=this.providedUser?.contacts||r.contacts,r.plan=this.providedUser?.plan||r.plan,r.groupId=this.providedUser?.groupId||r.groupId,r.clientGroupId=this.providedUser?.clientGroupId||r.clientGroupId,r.clientOrganizationId=this.providedUser?.clientOrganizationId||r.clientOrganizationId,r.organizationId=this.providedUser?.organizationId||r.organizationId,r.isAdmin=this.providedUser?.isAdmin,r.isReadOnly=this.providedUser?.isReadOnly,r.isAnonymous=this.providedUser?.isAnonymous,r.isGuest=this.providedUser?.isGuest,this.updateUserInternally(r)}catch(o){this.loggingService.catch("Error in mergeUserWithProvidedUserData: ",o)}})}updateUserInternally(r){return y(this,null,function*(){this.loggingService.log("%c[WB] Calling FUNCTION: updateUserInternally","color: green;");try{let i=Object.assign({},r);delete i.contacts,this.analyticsService.identifyUser(r.userSnippylyId,i,{forceReset:this.userOptions$.value?.forceReset}),this.getPlanDetailsCalled||this.getPlanDetailsFromDb();let o=pd(this.functions,od({url:this.endpointsService.getCloudFunctionUrl("sdkProxy"),apiProxyDomain:this.configService?.getApiProxyDomain()})),s=zV({methodName:"updateUserInternally",data:{type:"getProjectConfig"},getSdkProxy:o,userId:r?.userId??""}),a=Promise.resolve();if(this.userPermissionService?.isPermissionProviderAvailable()&&r.clientOrganizationId){let d=[{userId:r.userId,resource:{id:r.clientOrganizationId,type:HU.ORGANIZATION,source:vT.IDENTIFY,organizationId:r.clientOrganizationId}}],h=nd();this.coreActionsService.triggerAction(Wi.PERMISSION_PROVIDER,{event:St.Events.PermissionProvider.RESOURCE_ACCESS_REQUEST_FORMED,methodName:vT.IDENTIFY,uniqueId:h,timestamp:new Date().getTime(),source:"internal",payload:{requests:d}}),a=this.userPermissionService?.onResourceAccessRequired({requests:d,uniqueId:h,userId:r.userId,methodName:vT.IDENTIFY,fromCache:!1})??Promise.resolve()}let[c,l]=yield Promise.allSettled([s,a]);if(c.status==="fulfilled"){this.setIsPrivateCommentsEnabled(!!c.value?.data?.isPrivateCommentsEnabled);let d=c.value?.data?.activityConfig??{immutable:!1,isEnabled:!1};this.cachedActivityConfig=d,this.activityService?.setActivityFeatureConfig(d)}else this.loggingService.warn("Failed to fetch project config:",c.reason);this.afAuth.currentUser?(this.user$.next(r),this.updateUserToFirebase(r)):this.portableAuthUser$.value&&this.user$.next(r)}catch(i){this.loggingService.catch("Error in updateUserInternally: ",i)}})}updateUserToFirebase(r){this.loggingService.log("%c[WB] Calling FUNCTION: updateUserToFirebase","color: green;");try{let i=JSON.parse(JSON.stringify(r)),o=Ee(B({},i),{lastUpdated:new Date})}catch(i){this.loggingService.catch("Error in updateUserToFirebase: ",i)}}getPlanDetailsFromDb(){return y(this,null,function*(){try{this.getPlanDetailsCalled=!0;let i=yield pd(this.functions,od({url:this.endpointsService.getCloudFunctionUrl("getPlanDetails"),apiProxyDomain:this.configService?.getApiProxyDomain()}),{timeout:1200*1e3})({apiKey:this.configService.getApiKey(),sdkVersion:xc(),sdkType:this.configService.getSdkType()});return i?.data?.isPlanExpired&&(this.analyticsService.trackEvent(St.Events.Core.SDK_PLAN_EXPIRED),this.configService.getSF()||console.warn("Velt SDK plan has expired.")),this.planDetails$.next(i?.data||{planInfo:null,isPlanExpired:!1}),i}catch(r){return this.loggingService.catch("Error in getPlanDetailsFromDb: ",r),this.planDetails$.next({planInfo:null,isPlanExpired:!1}),Promise.resolve(null)}})}isPlanExpired$(){return this.planDetails$.pipe(mn(r=>!!r),De(r=>!!r?.isPlanExpired))}isPlanExpired(){return this.planDetails$.getValue()?.isPlanExpired}addPreSignOutFuction(r,i){try{this.preSignOutFunctions.set(r,i)}catch(o){this.loggingService.catch("Error in addPreSignOutFuction: ",o)}}setUserOrganization(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setUserOrganization","color: green;");let i=JSON.parse(JSON.stringify(this.userOrganization$.value||{}));this.getUser()?.organizationId===r?.organizationId?(i.metadata=r,this.userOrganization$.next(i)):this.userOrganization$.next(null)}catch(i){this.loggingService.catch("Error in setUserOrganization: ",i)}}setOrganizationUserGroups(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setUserOrganizationGroups","color: green;");let i=JSON.parse(JSON.stringify(this.userOrganization$.value||{}));this.getUser()?.organizationId===i?.metadata?.organizationId&&(i.groups=r,this.userOrganization$.next(i))}catch(i){this.loggingService.catch("Error in setUserOrganizationGroups: ",i)}}getUserOrganization$(){return this.loggingService.log("%c[WB] Calling FUNCTION: getUserOrganization$","color: green;"),this.getUser$().pipe(Mr(r=>r?this.userOrganization$.asObservable().pipe(De(i=>i?.metadata?.organizationId===r.organizationId?i:null)):lt(null)))}signOutUser(r="internal"){return y(this,null,function*(){try{this.userPermissionService?.invalidateAllPermissionsState(),this.portableSessionEpoch++,this.portableSignOutOwnsEpochBump=!0,this.pendingPortableRestore=null,this.portableResumeUserId=null,this.portableSessionIdentity=null,(this.portableAutoLoginCalled||this.configService?.getEnablePortableBackend()===!0)&&(this.clearPersistedPortableSession(),this.recordPortableSignOut(),this.clearPortableTokenRefresh()),r==="external"&&(this.onRetrySubscription?.unsubscribe(),this.authProviderListenerGeneration++),this.userPermissionService?.revokeAccessOnUserLogout(),this.analyticsService.trackEvent(St.Events.Core.SDK_USER_SIGN_OUT,{apiKey:this.apiKey,clientUserId:this.user$?.value?.userId,snippylyUserId:this.user$?.value?.userSnippylyId,message:r==="external"?"User Sign out":"System Sign out",user:this.user$?.value?this.getUserForTelemetry(this.user$?.value):null,forceReset:this.userOptions$.value?.forceReset,source:r});let i=yield hd(this.afAuth).pipe(En(1)).toPromise().catch(o=>null);if(i){this.resetServicesCache(),this.user$.next(null),this.clearPortableBackendState();for(let[o,s]of this.preSignOutFunctions)try{yield s(i)}catch(a){this.loggingService.catch(`Error in signOutUser ${o} function: `,a)}return this.user$.next(null),yield VV(1e3),vG(this.afAuth).catch(o=>{this.loggingService.catch("Error in signOutUser:",o)})}else return(this.portableAuthUser$.value||this.portableBackend$.value)&&(this.resetServicesCache(),this.user$.next(null),this.clearPortableBackendState()),Promise.resolve()}catch(i){this.loggingService.catch("Error in signOutUser: ",i)}finally{this.portableSignOutOwnsEpochBump=!1}})}isFeatureAllowed(r){return bV(this.config,this.user$.value,r)}getUserWithoutContacts(r){try{if(r){let i=JSON.parse(JSON.stringify(r));return delete i.contacts,i}else return null}catch(i){return this.loggingService.catch("Error in getUserWithoutContacts: ",i),null}}getUserForTelemetry(r){try{let i=this.getUserWithoutContacts(r);return i?this.usersService?.userResolverConfigured?.()?IR(i):i:null}catch(i){return this.loggingService.catch("Error in getUserForTelemetry: ",i),null}}getUserForClient(r){try{return _R(r)}catch(i){return this.loggingService.catch("Error in getUserForClient: ",i),null}}getUserAvatarColor(r){try{return r?this.avatarService.generateUserColor(Mc(r)):"#625DF5"}catch{return"#625DF5"}}getUserTextColor(r){try{return"#FFFFFF"}catch{return"#FFFFFF"}}setOptionalPropertiesToUsers(r){try{r.forEach(i=>{try{i?.color||(i.color=this.getUserAvatarColor(i?.userId)),i?.textColor||(i.textColor=this.getUserTextColor(i?.userId)),!i?.initial&&(i?.name||i?.email)&&(i.initial=i.name?.charAt(0).toUpperCase()||i.email?.charAt(0).toUpperCase())}catch{}})}catch{}}};e.PORTABLE_REFRESH_WARN_AFTER_FAILURES=3,e.PORTABLE_DOCUMENT_LIFECYCLE_EVENTS=["visibilitychange","resume"],e.PORTABLE_NO_CREDENTIAL_ENVELOPE={error:"No renewal credential.",code:"no_renewal_credential",message:"the session has no renewal credential for the configured gateway",source:"identify"},e.\u0275fac=function(i){return new(i||e)($(Hc),$(Ji),$(t2),$(n2),$(C2),$(Ho),$(zs),$(bt),$(mT))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var N2="@firebase/database",w2="1.0.20";var Ww="";function Xne(t){Ww=t}var qN=class{constructor(e){this.domStorage_=e,this.prefix_="firebase:"}set(e,n){n==null?this.domStorage_.removeItem(this.prefixedName_(e)):this.domStorage_.setItem(this.prefixedName_(e),xt(n))}get(e){let n=this.domStorage_.getItem(this.prefixedName_(e));return n==null?null:ad(n)}remove(e){this.domStorage_.removeItem(this.prefixedName_(e))}prefixedName_(e){return this.prefix_+e}toString(){return this.domStorage_.toString()}};var KN=class{constructor(){this.cache_={},this.isInMemoryStorage=!0}set(e,n){n==null?delete this.cache_[e]:this.cache_[e]=n}get(e){return Vr(this.cache_,e)?this.cache_[e]:null}remove(e){delete this.cache_[e]}};var aj=function(t){try{if(typeof window<"u"&&typeof window[t]<"u"){let e=window[t];return e.setItem("firebase:sentinel","cache"),e.removeItem("firebase:sentinel"),new qN(e)}}catch{}return new KN},Jc=aj("localStorage"),YN=aj("sessionStorage");var Id=new Br("@firebase/database"),cj=(function(){let t=1;return function(){return t++}})(),lj=function(t){let e=pB(t),n=new PT;n.update(e);let r=n.digest();return cd.encodeByteArray(r)},ng=function(...t){let e="";for(let n=0;n<t.length;n++){let r=t[n];Array.isArray(r)||r&&typeof r=="object"&&typeof r.length=="number"?e+=ng.apply(null,r):typeof r=="object"?e+=xt(r):e+=r,e+=" "}return e},Zc=null,b2=!0,Qne=function(t,e){q(!e||t===!0||t===!1,"Can't turn on custom loggers persistently."),t===!0?(Id.logLevel=Re.VERBOSE,Zc=Id.log.bind(Id),e&&YN.set("logging_enabled",!0)):typeof t=="function"?Zc=t:(Zc=null,YN.remove("logging_enabled"))},un=function(...t){if(b2===!0&&(b2=!1,Zc===null&&YN.get("logging_enabled")===!0&&Qne(!0)),Zc){let e=ng.apply(null,t);Zc(e)}},rg=function(t){return function(...e){un(t,...e)}},XN=function(...t){let e="FIREBASE INTERNAL ERROR: "+ng(...t);Id.error(e)},Wo=function(...t){let e=`FIREBASE FATAL ERROR: ${ng(...t)}`;throw Id.error(e),new Error(e)},xn=function(...t){let e="FIREBASE WARNING: "+ng(...t);Id.warn(e)},Jne=function(){typeof window<"u"&&window.location&&window.location.protocol&&window.location.protocol.indexOf("https:")!==-1&&xn("Insecure Firebase access from a secure page. Please use https in calls to new Firebase().")},By=function(t){return typeof t=="number"&&(t!==t||t===Number.POSITIVE_INFINITY||t===Number.NEGATIVE_INFINITY)},Zne=function(t){if(Ki()||document.readyState==="complete")t();else{let e=!1,n=function(){if(!document.body){setTimeout(n,Math.floor(10));return}e||(e=!0,t())};document.addEventListener?(document.addEventListener("DOMContentLoaded",n,!1),window.addEventListener("load",n,!1)):document.attachEvent&&(document.attachEvent("onreadystatechange",()=>{document.readyState==="complete"&&n()}),window.attachEvent("onload",n))}},tl="[MIN_NAME]",Zs="[MAX_NAME]",al=function(t,e){if(t===e)return 0;if(t===tl||e===Zs)return-1;if(e===tl||t===Zs)return 1;{let n=O2(t),r=O2(e);return n!==null?r!==null?n-r===0?t.length-e.length:n-r:-1:r!==null?1:t<e?-1:1}},ere=function(t,e){return t===e?0:t<e?-1:1},xp=function(t,e){if(e&&t in e)return e[t];throw new Error("Missing required key ("+t+") in object: "+xt(e))},zw=function(t){if(typeof t!="object"||t===null)return xt(t);let e=[];for(let r in t)e.push(r);e.sort();let n="{";for(let r=0;r<e.length;r++)r!==0&&(n+=","),n+=xt(e[r]),n+=":",n+=zw(t[e[r]]);return n+="}",n},uj=function(t,e){let n=t.length;if(n<=e)return[t];let r=[];for(let i=0;i<n;i+=e)i+e>n?r.push(t.substring(i,n)):r.push(t.substring(i,i+e));return r};function dn(t,e){for(let n in t)t.hasOwnProperty(n)&&e(n,t[n])}var dj=function(t){q(!By(t),"Invalid JSON number");let e=11,n=52,r=(1<<e-1)-1,i,o,s,a,c;t===0?(o=0,s=0,i=1/t===-1/0?1:0):(i=t<0,t=Math.abs(t),t>=Math.pow(2,1-r)?(a=Math.min(Math.floor(Math.log(t)/Math.LN2),r),o=a+r,s=Math.round(t*Math.pow(2,n-a)-Math.pow(2,n))):(o=0,s=Math.round(t/Math.pow(2,1-r-n))));let l=[];for(c=n;c;c-=1)l.push(s%2?1:0),s=Math.floor(s/2);for(c=e;c;c-=1)l.push(o%2?1:0),o=Math.floor(o/2);l.push(i?1:0),l.reverse();let d=l.join(""),h="";for(c=0;c<64;c+=8){let f=parseInt(d.substr(c,8),2).toString(16);f.length===1&&(f="0"+f),h=h+f}return h.toLowerCase()},tre=function(){return!!(typeof window=="object"&&window.chrome&&window.chrome.extension&&!/^chrome/.test(window.location.href))},nre=function(){return typeof Windows=="object"&&typeof Windows.UI=="object"};function rre(t,e){let n="Unknown Error";t==="too_big"?n="The data requested exceeds the maximum size that can be accessed with a single request.":t==="permission_denied"?n="Client doesn't have permission to access the desired data.":t==="unavailable"&&(n="The service is unavailable");let r=new Error(t+" at "+e._path.toString()+": "+n);return r.code=t.toUpperCase(),r}var ire=new RegExp("^-?(0*)\\d{1,10}$"),ore=-2147483648,sre=2147483647,O2=function(t){if(ire.test(t)){let e=Number(t);if(e>=ore&&e<=sre)return e}return null},bd=function(t){try{t()}catch(e){setTimeout(()=>{let n=e.stack||"";throw xn("Exception was thrown by user callback.",n),e},Math.floor(0))}},are=function(){return(typeof window=="object"&&window.navigator&&window.navigator.userAgent||"").search(/googlebot|google webmaster tools|bingbot|yahoo! slurp|baiduspider|yandexbot|duckduckbot/i)>=0},Vp=function(t,e){let n=setTimeout(t,e);return typeof n=="number"&&typeof Deno<"u"&&Deno.unrefTimer?Deno.unrefTimer(n):typeof n=="object"&&n.unref&&n.unref(),n};var QN=class{constructor(e,n){this.appCheckProvider=n,this.appName=e.name,Zn(e)&&e.settings.appCheckToken&&(this.serverAppAppCheckToken=e.settings.appCheckToken),this.appCheck=n?.getImmediate({optional:!0}),this.appCheck||n?.get().then(r=>this.appCheck=r)}getToken(e){if(this.serverAppAppCheckToken){if(e)throw new Error("Attempted reuse of `FirebaseServerApp.appCheckToken` after previous usage failed.");return Promise.resolve({token:this.serverAppAppCheckToken})}return this.appCheck?this.appCheck.getToken(e):new Promise((n,r)=>{setTimeout(()=>{this.appCheck?this.getToken(e).then(n,r):n(null)},0)})}addTokenChangeListener(e){var n;(n=this.appCheckProvider)===null||n===void 0||n.get().then(r=>r.addTokenListener(e))}notifyForInvalidToken(){xn(`Provided AppCheck credentials for the app named "${this.appName}" are invalid. This usually indicates your app was not initialized correctly.`)}};var JN=class{constructor(e,n,r){this.appName_=e,this.firebaseOptions_=n,this.authProvider_=r,this.auth_=null,this.auth_=r.getImmediate({optional:!0}),this.auth_||r.onInit(i=>this.auth_=i)}getToken(e){return this.auth_?this.auth_.getToken(e).catch(n=>n&&n.code==="auth/token-not-initialized"?(un("Got auth/token-not-initialized error. Treating as null token."),null):Promise.reject(n)):new Promise((n,r)=>{setTimeout(()=>{this.auth_?this.getToken(e).then(n,r):n(null)},0)})}addTokenChangeListener(e){this.auth_?this.auth_.addAuthTokenListener(e):this.authProvider_.get().then(n=>n.addAuthTokenListener(e))}removeTokenChangeListener(e){this.authProvider_.get().then(n=>n.removeAuthTokenListener(e))}notifyForInvalidToken(){let e='Provided authentication credentials for the app named "'+this.appName_+'" are invalid. This usually indicates your app was not initialized correctly. ';"credential"in this.firebaseOptions_?e+='Make sure the "credential" property provided to initializeApp() is authorized to access the specified "databaseURL" and is from the correct project.':"serviceAccount"in this.firebaseOptions_?e+='Make sure the "serviceAccount" property provided to initializeApp() is authorized to access the specified "databaseURL" and is from the correct project.':e+='Make sure the "apiKey" and "databaseURL" properties provided to initializeApp() match the values provided for your app at https://console.firebase.google.com/.',xn(e)}},Bp=(()=>{class t{constructor(n){this.accessToken=n}getToken(n){return Promise.resolve({accessToken:this.accessToken})}addTokenChangeListener(n){n(this.accessToken)}removeTokenChangeListener(n){}notifyForInvalidToken(){}}t.OWNER="owner";return t})(),gy="5",hj="v",fj="s",pj="r",gj="f",mj=/(console\.firebase|firebase-console-\w+\.corp|firebase\.corp)\.google\.com/,Ej="ls",_j="p",ZN="ac",Tj="websocket",yj="long_polling";var my=class{constructor(e,n,r,i,o=!1,s="",a=!1,c=!1,l=null){this.secure=n,this.namespace=r,this.webSocketOnly=i,this.nodeAdmin=o,this.persistenceKey=s,this.includeNamespaceInQueryParams=a,this.isUsingEmulator=c,this.emulatorOptions=l,this._host=e.toLowerCase(),this._domain=this._host.substr(this._host.indexOf(".")+1),this.internalHost=Jc.get("host:"+e)||this._host}isCacheableHost(){return this.internalHost.substr(0,2)==="s-"}isCustomHost(){return this._domain!=="firebaseio.com"&&this._domain!=="firebaseio-demo.com"}get host(){return this._host}set host(e){e!==this.internalHost&&(this.internalHost=e,this.isCacheableHost()&&Jc.set("host:"+this._host,this.internalHost))}toString(){let e=this.toURLString();return this.persistenceKey&&(e+="<"+this.persistenceKey+">"),e}toURLString(){let e=this.secure?"https://":"http://",n=this.includeNamespaceInQueryParams?`?ns=${this.namespace}`:"";return`${e}${this.host}/${n}`}};function cre(t){return t.host!==t.internalHost||t.isCustomHost()||t.includeNamespaceInQueryParams}function Ij(t,e,n){q(typeof e=="string","typeof type must == string"),q(typeof n=="object","typeof params must == object");let r;if(e===Tj)r=(t.secure?"wss://":"ws://")+t.internalHost+"/.ws?";else if(e===yj)r=(t.secure?"https://":"http://")+t.internalHost+"/.lp?";else throw new Error("Unknown connection type: "+e);cre(t)&&(n.ns=t.namespace);let i=[];return dn(n,(o,s)=>{i.push(o+"="+s)}),r+i.join("&")}var ew=class{constructor(){this.counters_={}}incrementCounter(e,n=1){Vr(this.counters_,e)||(this.counters_[e]=0),this.counters_[e]+=n}get(){return tB(this.counters_)}};var BN={},GN={};function qw(t){let e=t.toString();return BN[e]||(BN[e]=new ew),BN[e]}function lre(t,e){let n=t.toString();return GN[n]||(GN[n]=e()),GN[n]}var tw=class{constructor(e){this.onMessage_=e,this.pendingResponses=[],this.currentResponseNum=0,this.closeAfterResponse=-1,this.onClose=null}closeAfter(e,n){this.closeAfterResponse=e,this.onClose=n,this.closeAfterResponse<this.currentResponseNum&&(this.onClose(),this.onClose=null)}handleResponse(e,n){for(this.pendingResponses[e]=n;this.pendingResponses[this.currentResponseNum];){let r=this.pendingResponses[this.currentResponseNum];delete this.pendingResponses[this.currentResponseNum];for(let i=0;i<r.length;++i)r[i]&&bd(()=>{this.onMessage_(r[i])});if(this.currentResponseNum===this.closeAfterResponse){this.onClose&&(this.onClose(),this.onClose=null);break}this.currentResponseNum++}}};var M2="start",ure="close",dre="pLPCommand",hre="pRTLPCB",vj="id",Sj="pw",Aj="ser",fre="cb",pre="seg",gre="ts",mre="d",Ere="dframe",Cj=1870,Dj=30,_re=Cj-Dj,Tre=25e3,yre=3e4,Ey=class t{constructor(e,n,r,i,o,s,a){this.connId=e,this.repoInfo=n,this.applicationId=r,this.appCheckToken=i,this.authToken=o,this.transportSessionId=s,this.lastSessionId=a,this.bytesSent=0,this.bytesReceived=0,this.everConnected_=!1,this.log_=rg(e),this.stats_=qw(n),this.urlFn=c=>(this.appCheckToken&&(c[ZN]=this.appCheckToken),Ij(n,yj,c))}open(e,n){this.curSegmentNum=0,this.onDisconnect_=n,this.myPacketOrderer=new tw(e),this.isClosed_=!1,this.connectTimeoutTimer_=setTimeout(()=>{this.log_("Timed out trying to connect."),this.onClosed_(),this.connectTimeoutTimer_=null},Math.floor(yre)),Zne(()=>{if(this.isClosed_)return;this.scriptTagHolder=new nw((...o)=>{let[s,a,c,l,d]=o;if(this.incrementIncomingBytes_(o),!!this.scriptTagHolder)if(this.connectTimeoutTimer_&&(clearTimeout(this.connectTimeoutTimer_),this.connectTimeoutTimer_=null),this.everConnected_=!0,s===M2)this.id=a,this.password=c;else if(s===ure)a?(this.scriptTagHolder.sendNewPolls=!1,this.myPacketOrderer.closeAfter(a,()=>{this.onClosed_()})):this.onClosed_();else throw new Error("Unrecognized command received: "+s)},(...o)=>{let[s,a]=o;this.incrementIncomingBytes_(o),this.myPacketOrderer.handleResponse(s,a)},()=>{this.onClosed_()},this.urlFn);let r={};r[M2]="t",r[Aj]=Math.floor(Math.random()*1e8),this.scriptTagHolder.uniqueCallbackIdentifier&&(r[fre]=this.scriptTagHolder.uniqueCallbackIdentifier),r[hj]=gy,this.transportSessionId&&(r[fj]=this.transportSessionId),this.lastSessionId&&(r[Ej]=this.lastSessionId),this.applicationId&&(r[_j]=this.applicationId),this.appCheckToken&&(r[ZN]=this.appCheckToken),typeof location<"u"&&location.hostname&&mj.test(location.hostname)&&(r[pj]=gj);let i=this.urlFn(r);this.log_("Connecting via long-poll to "+i),this.scriptTagHolder.addTag(i,()=>{})})}start(){this.scriptTagHolder.startLongPoll(this.id,this.password),this.addDisconnectPingFrame(this.id,this.password)}static forceAllow(){t.forceAllow_=!0}static forceDisallow(){t.forceDisallow_=!0}static isAvailable(){return Ki()?!1:t.forceAllow_?!0:!t.forceDisallow_&&typeof document<"u"&&document.createElement!=null&&!tre()&&!nre()}markConnectionHealthy(){}shutdown_(){this.isClosed_=!0,this.scriptTagHolder&&(this.scriptTagHolder.close(),this.scriptTagHolder=null),this.myDisconnFrame&&(document.body.removeChild(this.myDisconnFrame),this.myDisconnFrame=null),this.connectTimeoutTimer_&&(clearTimeout(this.connectTimeoutTimer_),this.connectTimeoutTimer_=null)}onClosed_(){this.isClosed_||(this.log_("Longpoll is closing itself"),this.shutdown_(),this.onDisconnect_&&(this.onDisconnect_(this.everConnected_),this.onDisconnect_=null))}close(){this.isClosed_||(this.log_("Longpoll is being closed."),this.shutdown_())}send(e){let n=xt(e);this.bytesSent+=n.length,this.stats_.incrementCounter("bytes_sent",n.length);let r=RR(n),i=uj(r,_re);for(let o=0;o<i.length;o++)this.scriptTagHolder.enqueueSegment(this.curSegmentNum,i.length,i[o]),this.curSegmentNum++}addDisconnectPingFrame(e,n){if(Ki())return;this.myDisconnFrame=document.createElement("iframe");let r={};r[Ere]="t",r[vj]=e,r[Sj]=n,this.myDisconnFrame.src=this.urlFn(r),this.myDisconnFrame.style.display="none",document.body.appendChild(this.myDisconnFrame)}incrementIncomingBytes_(e){let n=xt(e).length;this.bytesReceived+=n,this.stats_.incrementCounter("bytes_received",n)}},nw=class t{constructor(e,n,r,i){if(this.onDisconnect=r,this.urlFn=i,this.outstandingRequests=new Set,this.pendingSegs=[],this.currentSerial=Math.floor(Math.random()*1e8),this.sendNewPolls=!0,Ki())this.commandCB=e,this.onMessageCB=n;else{this.uniqueCallbackIdentifier=cj(),window[dre+this.uniqueCallbackIdentifier]=e,window[hre+this.uniqueCallbackIdentifier]=n,this.myIFrame=t.createIFrame_();let o="";this.myIFrame.src&&this.myIFrame.src.substr(0,11)==="javascript:"&&(o='<script>document.domain="'+document.domain+'";<\/script>');let s="<html><body>"+o+"</body></html>";try{this.myIFrame.doc.open(),this.myIFrame.doc.write(s),this.myIFrame.doc.close()}catch(a){un("frame writing exception"),a.stack&&un(a.stack),un(a)}}}static createIFrame_(){let e=document.createElement("iframe");if(e.style.display="none",document.body){document.body.appendChild(e);try{e.contentWindow.document||un("No IE domain setting required")}catch{let r=document.domain;e.src="javascript:void((function(){document.open();document.domain='"+r+"';document.close();})())"}}else throw"Document body has not initialized. Wait to initialize Firebase until after the document is ready.";return e.contentDocument?e.doc=e.contentDocument:e.contentWindow?e.doc=e.contentWindow.document:e.document&&(e.doc=e.document),e}close(){this.alive=!1,this.myIFrame&&(this.myIFrame.doc.body.textContent="",setTimeout(()=>{this.myIFrame!==null&&(document.body.removeChild(this.myIFrame),this.myIFrame=null)},Math.floor(0)));let e=this.onDisconnect;e&&(this.onDisconnect=null,e())}startLongPoll(e,n){for(this.myID=e,this.myPW=n,this.alive=!0;this.newRequest_(););}newRequest_(){if(this.alive&&this.sendNewPolls&&this.outstandingRequests.size<(this.pendingSegs.length>0?2:1)){this.currentSerial++;let e={};e[vj]=this.myID,e[Sj]=this.myPW,e[Aj]=this.currentSerial;let n=this.urlFn(e),r="",i=0;for(;this.pendingSegs.length>0&&this.pendingSegs[0].d.length+Dj+r.length<=Cj;){let s=this.pendingSegs.shift();r=r+"&"+pre+i+"="+s.seg+"&"+gre+i+"="+s.ts+"&"+mre+i+"="+s.d,i++}return n=n+r,this.addLongPollTag_(n,this.currentSerial),!0}else return!1}enqueueSegment(e,n,r){this.pendingSegs.push({seg:e,ts:n,d:r}),this.alive&&this.newRequest_()}addLongPollTag_(e,n){this.outstandingRequests.add(n);let r=()=>{this.outstandingRequests.delete(n),this.newRequest_()},i=setTimeout(r,Math.floor(Tre)),o=()=>{clearTimeout(i),r()};this.addTag(e,o)}addTag(e,n){Ki()?this.doNodeLongPoll(e,n):setTimeout(()=>{try{if(!this.sendNewPolls)return;let r=this.myIFrame.doc.createElement("script");r.type="text/javascript",r.async=!0,r.src=e,r.onload=r.onreadystatechange=function(){let i=r.readyState;(!i||i==="loaded"||i==="complete")&&(r.onload=r.onreadystatechange=null,r.parentNode&&r.parentNode.removeChild(r),n())},r.onerror=()=>{un("Long-poll script failed to load: "+e),this.sendNewPolls=!1,this.close()},this.myIFrame.doc.body.appendChild(r)}catch{}},Math.floor(1))}};var Ire=16384,vre=45e3,_y=null;typeof MozWebSocket<"u"?_y=MozWebSocket:typeof WebSocket<"u"&&(_y=WebSocket);var Td=(()=>{class t{constructor(n,r,i,o,s,a,c){this.connId=n,this.applicationId=i,this.appCheckToken=o,this.authToken=s,this.keepaliveTimer=null,this.frames=null,this.totalFrames=0,this.bytesSent=0,this.bytesReceived=0,this.log_=rg(this.connId),this.stats_=qw(r),this.connURL=t.connectionURL_(r,a,c,o,i),this.nodeAdmin=r.nodeAdmin}static connectionURL_(n,r,i,o,s){let a={};return a[hj]=gy,!Ki()&&typeof location<"u"&&location.hostname&&mj.test(location.hostname)&&(a[pj]=gj),r&&(a[fj]=r),i&&(a[Ej]=i),o&&(a[ZN]=o),s&&(a[_j]=s),Ij(n,Tj,a)}open(n,r){this.onDisconnect=r,this.onMessage=n,this.log_("Websocket connecting to "+this.connURL),this.everConnected_=!1,Jc.set("previous_websocket_failure",!0);try{let i;if(Ki()){let o=this.nodeAdmin?"AdminNode":"Node";i={headers:{"User-Agent":`Firebase/${gy}/${Ww}/${process.platform}/${o}`,"X-Firebase-GMPID":this.applicationId||""}},this.authToken&&(i.headers.Authorization=`Bearer ${this.authToken}`),this.appCheckToken&&(i.headers["X-Firebase-AppCheck"]=this.appCheckToken);let s=process.env,a=this.connURL.indexOf("wss://")===0?s.HTTPS_PROXY||s.https_proxy:s.HTTP_PROXY||s.http_proxy;a&&(i.proxy={origin:a})}this.mySock=new _y(this.connURL,[],i)}catch(i){this.log_("Error instantiating WebSocket.");let o=i.message||i.data;o&&this.log_(o),this.onClosed_();return}this.mySock.onopen=()=>{this.log_("Websocket connected."),this.everConnected_=!0},this.mySock.onclose=()=>{this.log_("Websocket connection was disconnected."),this.mySock=null,this.onClosed_()},this.mySock.onmessage=i=>{this.handleIncomingFrame(i)},this.mySock.onerror=i=>{this.log_("WebSocket error. Closing connection.");let o=i.message||i.data;o&&this.log_(o),this.onClosed_()}}start(){}static forceDisallow(){t.forceDisallow_=!0}static isAvailable(){let n=!1;if(typeof navigator<"u"&&navigator.userAgent){let r=/Android ([0-9]{0,}\.[0-9]{0,})/,i=navigator.userAgent.match(r);i&&i.length>1&&parseFloat(i[1])<4.4&&(n=!0)}return!n&&_y!==null&&!t.forceDisallow_}static previouslyFailed(){return Jc.isInMemoryStorage||Jc.get("previous_websocket_failure")===!0}markConnectionHealthy(){Jc.remove("previous_websocket_failure")}appendFrame_(n){if(this.frames.push(n),this.frames.length===this.totalFrames){let r=this.frames.join("");this.frames=null;let i=ad(r);this.onMessage(i)}}handleNewFrameCount_(n){this.totalFrames=n,this.frames=[]}extractFrameCount_(n){if(q(this.frames===null,"We already have a frame buffer"),n.length<=6){let r=Number(n);if(!isNaN(r))return this.handleNewFrameCount_(r),null}return this.handleNewFrameCount_(1),n}handleIncomingFrame(n){if(this.mySock===null)return;let r=n.data;if(this.bytesReceived+=r.length,this.stats_.incrementCounter("bytes_received",r.length),this.resetKeepAlive(),this.frames!==null)this.appendFrame_(r);else{let i=this.extractFrameCount_(r);i!==null&&this.appendFrame_(i)}}send(n){this.resetKeepAlive();let r=xt(n);this.bytesSent+=r.length,this.stats_.incrementCounter("bytes_sent",r.length);let i=uj(r,Ire);i.length>1&&this.sendString_(String(i.length));for(let o=0;o<i.length;o++)this.sendString_(i[o])}shutdown_(){this.isClosed_=!0,this.keepaliveTimer&&(clearInterval(this.keepaliveTimer),this.keepaliveTimer=null),this.mySock&&(this.mySock.close(),this.mySock=null)}onClosed_(){this.isClosed_||(this.log_("WebSocket is closing itself"),this.shutdown_(),this.onDisconnect&&(this.onDisconnect(this.everConnected_),this.onDisconnect=null))}close(){this.isClosed_||(this.log_("WebSocket is being closed"),this.shutdown_())}resetKeepAlive(){clearInterval(this.keepaliveTimer),this.keepaliveTimer=setInterval(()=>{this.mySock&&this.sendString_("0"),this.resetKeepAlive()},Math.floor(vre))}sendString_(n){try{this.mySock.send(n)}catch(r){this.log_("Exception thrown from WebSocket.send():",r.message||r.data,"Closing connection."),setTimeout(this.onClosed_.bind(this),0)}}}t.responsesRequiredToBeHealthy=2,t.healthyTimeout=3e4;return t})(),Rj=(()=>{class t{static get ALL_TRANSPORTS(){return[Ey,Td]}static get IS_TRANSPORT_INITIALIZED(){return this.globalTransportInitialized_}constructor(n){this.initTransports_(n)}initTransports_(n){let r=Td&&Td.isAvailable(),i=r&&!Td.previouslyFailed();if(n.webSocketOnly&&(r||xn("wss:// URL used, but browser isn't known to support websockets. Trying anyway."),i=!0),i)this.transports_=[Td];else{let o=this.transports_=[];for(let s of t.ALL_TRANSPORTS)s&&s.isAvailable()&&o.push(s);t.globalTransportInitialized_=!0}}initialTransport(){if(this.transports_.length>0)return this.transports_[0];throw new Error("No transports available")}upgradeTransport(){return this.transports_.length>1?this.transports_[1]:null}}t.globalTransportInitialized_=!1;return t})(),Sre=6e4,Are=5e3,Cre=10*1024,Dre=100*1024,jN="t",L2="d",Rre="s",P2="r",Nre="e",x2="o",k2="a",F2="n",U2="p",wre="h",rw=class{constructor(e,n,r,i,o,s,a,c,l,d){this.id=e,this.repoInfo_=n,this.applicationId_=r,this.appCheckToken_=i,this.authToken_=o,this.onMessage_=s,this.onReady_=a,this.onDisconnect_=c,this.onKill_=l,this.lastSessionId=d,this.connectionCount=0,this.pendingDataMessages=[],this.state_=0,this.log_=rg("c:"+this.id+":"),this.transportManager_=new Rj(n),this.log_("Connection created"),this.start_()}start_(){let e=this.transportManager_.initialTransport();this.conn_=new e(this.nextTransportId_(),this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,null,this.lastSessionId),this.primaryResponsesRequired_=e.responsesRequiredToBeHealthy||0;let n=this.connReceiver_(this.conn_),r=this.disconnReceiver_(this.conn_);this.tx_=this.conn_,this.rx_=this.conn_,this.secondaryConn_=null,this.isHealthy_=!1,setTimeout(()=>{this.conn_&&this.conn_.open(n,r)},Math.floor(0));let i=e.healthyTimeout||0;i>0&&(this.healthyTimeout_=Vp(()=>{this.healthyTimeout_=null,this.isHealthy_||(this.conn_&&this.conn_.bytesReceived>Dre?(this.log_("Connection exceeded healthy timeout but has received "+this.conn_.bytesReceived+" bytes. Marking connection healthy."),this.isHealthy_=!0,this.conn_.markConnectionHealthy()):this.conn_&&this.conn_.bytesSent>Cre?this.log_("Connection exceeded healthy timeout but has sent "+this.conn_.bytesSent+" bytes. Leaving connection alive."):(this.log_("Closing unhealthy connection after timeout."),this.close()))},Math.floor(i)))}nextTransportId_(){return"c:"+this.id+":"+this.connectionCount++}disconnReceiver_(e){return n=>{e===this.conn_?this.onConnectionLost_(n):e===this.secondaryConn_?(this.log_("Secondary connection lost."),this.onSecondaryConnectionLost_()):this.log_("closing an old connection")}}connReceiver_(e){return n=>{this.state_!==2&&(e===this.rx_?this.onPrimaryMessageReceived_(n):e===this.secondaryConn_?this.onSecondaryMessageReceived_(n):this.log_("message on old connection"))}}sendRequest(e){let n={t:"d",d:e};this.sendData_(n)}tryCleanupConnection(){this.tx_===this.secondaryConn_&&this.rx_===this.secondaryConn_&&(this.log_("cleaning up and promoting a connection: "+this.secondaryConn_.connId),this.conn_=this.secondaryConn_,this.secondaryConn_=null)}onSecondaryControl_(e){if(jN in e){let n=e[jN];n===k2?this.upgradeIfSecondaryHealthy_():n===P2?(this.log_("Got a reset on secondary, closing it"),this.secondaryConn_.close(),(this.tx_===this.secondaryConn_||this.rx_===this.secondaryConn_)&&this.close()):n===x2&&(this.log_("got pong on secondary."),this.secondaryResponsesRequired_--,this.upgradeIfSecondaryHealthy_())}}onSecondaryMessageReceived_(e){let n=xp("t",e),r=xp("d",e);if(n==="c")this.onSecondaryControl_(r);else if(n==="d")this.pendingDataMessages.push(r);else throw new Error("Unknown protocol layer: "+n)}upgradeIfSecondaryHealthy_(){this.secondaryResponsesRequired_<=0?(this.log_("Secondary connection is healthy."),this.isHealthy_=!0,this.secondaryConn_.markConnectionHealthy(),this.proceedWithUpgrade_()):(this.log_("sending ping on secondary."),this.secondaryConn_.send({t:"c",d:{t:U2,d:{}}}))}proceedWithUpgrade_(){this.secondaryConn_.start(),this.log_("sending client ack on secondary"),this.secondaryConn_.send({t:"c",d:{t:k2,d:{}}}),this.log_("Ending transmission on primary"),this.conn_.send({t:"c",d:{t:F2,d:{}}}),this.tx_=this.secondaryConn_,this.tryCleanupConnection()}onPrimaryMessageReceived_(e){let n=xp("t",e),r=xp("d",e);n==="c"?this.onControl_(r):n==="d"&&this.onDataMessage_(r)}onDataMessage_(e){this.onPrimaryResponse_(),this.onMessage_(e)}onPrimaryResponse_(){this.isHealthy_||(this.primaryResponsesRequired_--,this.primaryResponsesRequired_<=0&&(this.log_("Primary connection is healthy."),this.isHealthy_=!0,this.conn_.markConnectionHealthy()))}onControl_(e){let n=xp(jN,e);if(L2 in e){let r=e[L2];if(n===wre){let i=Object.assign({},r);this.repoInfo_.isUsingEmulator&&(i.h=this.repoInfo_.host),this.onHandshake_(i)}else if(n===F2){this.log_("recvd end transmission on primary"),this.rx_=this.secondaryConn_;for(let i=0;i<this.pendingDataMessages.length;++i)this.onDataMessage_(this.pendingDataMessages[i]);this.pendingDataMessages=[],this.tryCleanupConnection()}else n===Rre?this.onConnectionShutdown_(r):n===P2?this.onReset_(r):n===Nre?XN("Server Error: "+r):n===x2?(this.log_("got pong on primary."),this.onPrimaryResponse_(),this.sendPingOnPrimaryIfNecessary_()):XN("Unknown control packet command: "+n)}}onHandshake_(e){let n=e.ts,r=e.v,i=e.h;this.sessionId=e.s,this.repoInfo_.host=i,this.state_===0&&(this.conn_.start(),this.onConnectionEstablished_(this.conn_,n),gy!==r&&xn("Protocol version mismatch detected"),this.tryStartUpgrade_())}tryStartUpgrade_(){let e=this.transportManager_.upgradeTransport();e&&this.startUpgrade_(e)}startUpgrade_(e){this.secondaryConn_=new e(this.nextTransportId_(),this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,this.sessionId),this.secondaryResponsesRequired_=e.responsesRequiredToBeHealthy||0;let n=this.connReceiver_(this.secondaryConn_),r=this.disconnReceiver_(this.secondaryConn_);this.secondaryConn_.open(n,r),Vp(()=>{this.secondaryConn_&&(this.log_("Timed out trying to upgrade."),this.secondaryConn_.close())},Math.floor(Sre))}onReset_(e){this.log_("Reset packet received. New host: "+e),this.repoInfo_.host=e,this.state_===1?this.close():(this.closeConnections_(),this.start_())}onConnectionEstablished_(e,n){this.log_("Realtime connection established."),this.conn_=e,this.state_=1,this.onReady_&&(this.onReady_(n,this.sessionId),this.onReady_=null),this.primaryResponsesRequired_===0?(this.log_("Primary connection is healthy."),this.isHealthy_=!0):Vp(()=>{this.sendPingOnPrimaryIfNecessary_()},Math.floor(Are))}sendPingOnPrimaryIfNecessary_(){!this.isHealthy_&&this.state_===1&&(this.log_("sending ping on primary."),this.sendData_({t:"c",d:{t:U2,d:{}}}))}onSecondaryConnectionLost_(){let e=this.secondaryConn_;this.secondaryConn_=null,(this.tx_===e||this.rx_===e)&&this.close()}onConnectionLost_(e){this.conn_=null,!e&&this.state_===0?(this.log_("Realtime connection failed."),this.repoInfo_.isCacheableHost()&&(Jc.remove("host:"+this.repoInfo_.host),this.repoInfo_.internalHost=this.repoInfo_.host)):this.state_===1&&this.log_("Realtime connection lost."),this.close()}onConnectionShutdown_(e){this.log_("Connection shutdown command received. Shutting down..."),this.onKill_&&(this.onKill_(e),this.onKill_=null),this.onDisconnect_=null,this.close()}sendData_(e){if(this.state_!==1)throw"Connection is not connected";this.tx_.send(e)}close(){this.state_!==2&&(this.log_("Closing realtime connection."),this.state_=2,this.closeConnections_(),this.onDisconnect_&&(this.onDisconnect_(),this.onDisconnect_=null))}closeConnections_(){this.log_("Shutting down all connections"),this.conn_&&(this.conn_.close(),this.conn_=null),this.secondaryConn_&&(this.secondaryConn_.close(),this.secondaryConn_=null),this.healthyTimeout_&&(clearTimeout(this.healthyTimeout_),this.healthyTimeout_=null)}};var Ty=class{put(e,n,r,i){}merge(e,n,r,i){}refreshAuthToken(e){}refreshAppCheckToken(e){}onDisconnectPut(e,n,r){}onDisconnectMerge(e,n,r){}onDisconnectCancel(e,n){}reportStats(e){}};var yy=class{constructor(e){this.allowedEvents_=e,this.listeners_={},q(Array.isArray(e)&&e.length>0,"Requires a non-empty array")}trigger(e,...n){if(Array.isArray(this.listeners_[e])){let r=[...this.listeners_[e]];for(let i=0;i<r.length;i++)r[i].callback.apply(r[i].context,n)}}on(e,n,r){this.validateEventType_(e),this.listeners_[e]=this.listeners_[e]||[],this.listeners_[e].push({callback:n,context:r});let i=this.getInitialEvent(e);i&&n.apply(r,i)}off(e,n,r){this.validateEventType_(e);let i=this.listeners_[e]||[];for(let o=0;o<i.length;o++)if(i[o].callback===n&&(!r||r===i[o].context)){i.splice(o,1);return}}validateEventType_(e){q(this.allowedEvents_.find(n=>n===e),"Unknown event: "+e)}};var Iy=class t extends yy{static getInstance(){return new t}constructor(){super(["online"]),this.online_=!0,typeof window<"u"&&typeof window.addEventListener<"u"&&!hp()&&(window.addEventListener("online",()=>{this.online_||(this.online_=!0,this.trigger("online",!0))},!1),window.addEventListener("offline",()=>{this.online_&&(this.online_=!1,this.trigger("online",!1))},!1))}getInitialEvent(e){return q(e==="online","Unknown event type: "+e),[this.online_]}currentlyOnline(){return this.online_}};var V2=32,B2=768,Be=class{constructor(e,n){if(n===void 0){this.pieces_=e.split("/");let r=0;for(let i=0;i<this.pieces_.length;i++)this.pieces_[i].length>0&&(this.pieces_[r]=this.pieces_[i],r++);this.pieces_.length=r,this.pieceNum_=0}else this.pieces_=e,this.pieceNum_=n}toString(){let e="";for(let n=this.pieceNum_;n<this.pieces_.length;n++)this.pieces_[n]!==""&&(e+="/"+this.pieces_[n]);return e||"/"}};function Ve(){return new Be("")}function Ne(t){return t.pieceNum_>=t.pieces_.length?null:t.pieces_[t.pieceNum_]}function ea(t){return t.pieces_.length-t.pieceNum_}function at(t){let e=t.pieceNum_;return e<t.pieces_.length&&e++,new Be(t.pieces_,e)}function Kw(t){return t.pieceNum_<t.pieces_.length?t.pieces_[t.pieces_.length-1]:null}function bre(t){let e="";for(let n=t.pieceNum_;n<t.pieces_.length;n++)t.pieces_[n]!==""&&(e+="/"+encodeURIComponent(String(t.pieces_[n])));return e||"/"}function $p(t,e=0){return t.pieces_.slice(t.pieceNum_+e)}function Nj(t){if(t.pieceNum_>=t.pieces_.length)return null;let e=[];for(let n=t.pieceNum_;n<t.pieces_.length-1;n++)e.push(t.pieces_[n]);return new Be(e,0)}function Ct(t,e){let n=[];for(let r=t.pieceNum_;r<t.pieces_.length;r++)n.push(t.pieces_[r]);if(e instanceof Be)for(let r=e.pieceNum_;r<e.pieces_.length;r++)n.push(e.pieces_[r]);else{let r=e.split("/");for(let i=0;i<r.length;i++)r[i].length>0&&n.push(r[i])}return new Be(n,0)}function we(t){return t.pieceNum_>=t.pieces_.length}function zn(t,e){let n=Ne(t),r=Ne(e);if(n===null)return e;if(n===r)return zn(at(t),at(e));throw new Error("INTERNAL ERROR: innerPath ("+e+") is not within outerPath ("+t+")")}function Ore(t,e){let n=$p(t,0),r=$p(e,0);for(let i=0;i<n.length&&i<r.length;i++){let o=al(n[i],r[i]);if(o!==0)return o}return n.length===r.length?0:n.length<r.length?-1:1}function Yw(t,e){if(ea(t)!==ea(e))return!1;for(let n=t.pieceNum_,r=e.pieceNum_;n<=t.pieces_.length;n++,r++)if(t.pieces_[n]!==e.pieces_[r])return!1;return!0}function jr(t,e){let n=t.pieceNum_,r=e.pieceNum_;if(ea(t)>ea(e))return!1;for(;n<t.pieces_.length;){if(t.pieces_[n]!==e.pieces_[r])return!1;++n,++r}return!0}var iw=class{constructor(e,n){this.errorPrefix_=n,this.parts_=$p(e,0),this.byteLength_=Math.max(1,this.parts_.length);for(let r=0;r<this.parts_.length;r++)this.byteLength_+=mp(this.parts_[r]);wj(this)}};function Mre(t,e){t.parts_.length>0&&(t.byteLength_+=1),t.parts_.push(e),t.byteLength_+=mp(e),wj(t)}function Lre(t){let e=t.parts_.pop();t.byteLength_-=mp(e),t.parts_.length>0&&(t.byteLength_-=1)}function wj(t){if(t.byteLength_>B2)throw new Error(t.errorPrefix_+"has a key path longer than "+B2+" bytes ("+t.byteLength_+").");if(t.parts_.length>V2)throw new Error(t.errorPrefix_+"path specified exceeds the maximum depth that can be written ("+V2+") or object contains a cycle "+Qc(t))}function Qc(t){return t.parts_.length===0?"":"in property '"+t.parts_.join(".")+"'"}var ow=class t extends yy{static getInstance(){return new t}constructor(){super(["visible"]);let e,n;typeof document<"u"&&typeof document.addEventListener<"u"&&(typeof document.hidden<"u"?(n="visibilitychange",e="hidden"):typeof document.mozHidden<"u"?(n="mozvisibilitychange",e="mozHidden"):typeof document.msHidden<"u"?(n="msvisibilitychange",e="msHidden"):typeof document.webkitHidden<"u"&&(n="webkitvisibilitychange",e="webkitHidden")),this.visible_=!0,n&&document.addEventListener(n,()=>{let r=!document[e];r!==this.visible_&&(this.visible_=r,this.trigger("visible",r))},!1)}getInitialEvent(e){return q(e==="visible","Unknown event type: "+e),[this.visible_]}};var kp=1e3,Pre=300*1e3,G2=30*1e3,xre=1.3,kre=3e4,Fre="server_kill",j2=3,Xw=(()=>{class t extends Ty{constructor(n,r,i,o,s,a,c,l){if(super(),this.repoInfo_=n,this.applicationId_=r,this.onDataUpdate_=i,this.onConnectStatus_=o,this.onServerInfoUpdate_=s,this.authTokenProvider_=a,this.appCheckTokenProvider_=c,this.authOverride_=l,this.id=t.nextPersistentConnectionId_++,this.log_=rg("p:"+this.id+":"),this.interruptReasons_={},this.listens=new Map,this.outstandingPuts_=[],this.outstandingGets_=[],this.outstandingPutCount_=0,this.outstandingGetCount_=0,this.onDisconnectRequestQueue_=[],this.connected_=!1,this.reconnectDelay_=kp,this.maxReconnectDelay_=Pre,this.securityDebugCallback_=null,this.lastSessionId=null,this.establishConnectionTimer_=null,this.visible_=!1,this.requestCBHash_={},this.requestNumber_=0,this.realtime_=null,this.authToken_=null,this.appCheckToken_=null,this.forceTokenRefresh_=!1,this.invalidAuthTokenCount_=0,this.invalidAppCheckTokenCount_=0,this.firstConnection_=!0,this.lastConnectionAttemptTime_=null,this.lastConnectionEstablishedTime_=null,l&&!Ki())throw new Error("Auth override specified in options, but not supported on non Node.js platforms");ow.getInstance().on("visible",this.onVisible_,this),n.host.indexOf("fblocal")===-1&&Iy.getInstance().on("online",this.onOnline_,this)}sendRequest(n,r,i){let o=++this.requestNumber_,s={r:o,a:n,b:r};this.log_(xt(s)),q(this.connected_,"sendRequest call when we're not connected not allowed."),this.realtime_.sendRequest(s),i&&(this.requestCBHash_[o]=i)}get(n){this.initConnection_();let r=new cn,o={action:"g",request:{p:n._path.toString(),q:n._queryObject},onComplete:a=>{let c=a.d;a.s==="ok"?r.resolve(c):r.reject(c)}};this.outstandingGets_.push(o),this.outstandingGetCount_++;let s=this.outstandingGets_.length-1;return this.connected_&&this.sendGet_(s),r.promise}listen(n,r,i,o){this.initConnection_();let s=n._queryIdentifier,a=n._path.toString();this.log_("Listen called for "+a+" "+s),this.listens.has(a)||this.listens.set(a,new Map),q(n._queryParams.isDefault()||!n._queryParams.loadsAllData(),"listen() called for non-default but complete query"),q(!this.listens.get(a).has(s),"listen() called twice for same path/queryId.");let c={onComplete:o,hashFn:r,query:n,tag:i};this.listens.get(a).set(s,c),this.connected_&&this.sendListen_(c)}sendGet_(n){let r=this.outstandingGets_[n];this.sendRequest("g",r.request,i=>{delete this.outstandingGets_[n],this.outstandingGetCount_--,this.outstandingGetCount_===0&&(this.outstandingGets_=[]),r.onComplete&&r.onComplete(i)})}sendListen_(n){let r=n.query,i=r._path.toString(),o=r._queryIdentifier;this.log_("Listen on "+i+" for "+o);let s={p:i},a="q";n.tag&&(s.q=r._queryObject,s.t=n.tag),s.h=n.hashFn(),this.sendRequest(a,s,c=>{let l=c.d,d=c.s;t.warnOnListenWarnings_(l,r),(this.listens.get(i)&&this.listens.get(i).get(o))===n&&(this.log_("listen response",c),d!=="ok"&&this.removeListen_(i,o),n.onComplete&&n.onComplete(d,l))})}static warnOnListenWarnings_(n,r){if(n&&typeof n=="object"&&Vr(n,"w")){let i=Fs(n,"w");if(Array.isArray(i)&&~i.indexOf("no_index")){let o='".indexOn": "'+r._queryParams.getIndex().toString()+'"',s=r._path.toString();xn(`Using an unspecified index. Your data will be downloaded and filtered on the client. Consider adding ${o} at ${s} to your security rules for better performance.`)}}}refreshAuthToken(n){this.authToken_=n,this.log_("Auth token refreshed"),this.authToken_?this.tryAuth():this.connected_&&this.sendRequest("unauth",{},()=>{}),this.reduceReconnectDelayIfAdminCredential_(n)}reduceReconnectDelayIfAdminCredential_(n){(n&&n.length===40||hB(n))&&(this.log_("Admin auth credential detected. Reducing max reconnect time."),this.maxReconnectDelay_=G2)}refreshAppCheckToken(n){this.appCheckToken_=n,this.log_("App check token refreshed"),this.appCheckToken_?this.tryAppCheck():this.connected_&&this.sendRequest("unappeck",{},()=>{})}tryAuth(){if(this.connected_&&this.authToken_){let n=this.authToken_,r=dB(n)?"auth":"gauth",i={cred:n};this.authOverride_===null?i.noauth=!0:typeof this.authOverride_=="object"&&(i.authvar=this.authOverride_),this.sendRequest(r,i,o=>{let s=o.s,a=o.d||"error";this.authToken_===n&&(s==="ok"?this.invalidAuthTokenCount_=0:this.onAuthRevoked_(s,a))})}}tryAppCheck(){this.connected_&&this.appCheckToken_&&this.sendRequest("appcheck",{token:this.appCheckToken_},n=>{let r=n.s,i=n.d||"error";r==="ok"?this.invalidAppCheckTokenCount_=0:this.onAppCheckRevoked_(r,i)})}unlisten(n,r){let i=n._path.toString(),o=n._queryIdentifier;this.log_("Unlisten called for "+i+" "+o),q(n._queryParams.isDefault()||!n._queryParams.loadsAllData(),"unlisten() called for non-default but complete query"),this.removeListen_(i,o)&&this.connected_&&this.sendUnlisten_(i,o,n._queryObject,r)}sendUnlisten_(n,r,i,o){this.log_("Unlisten on "+n+" for "+r);let s={p:n},a="n";o&&(s.q=i,s.t=o),this.sendRequest(a,s)}onDisconnectPut(n,r,i){this.initConnection_(),this.connected_?this.sendOnDisconnect_("o",n,r,i):this.onDisconnectRequestQueue_.push({pathString:n,action:"o",data:r,onComplete:i})}onDisconnectMerge(n,r,i){this.initConnection_(),this.connected_?this.sendOnDisconnect_("om",n,r,i):this.onDisconnectRequestQueue_.push({pathString:n,action:"om",data:r,onComplete:i})}onDisconnectCancel(n,r){this.initConnection_(),this.connected_?this.sendOnDisconnect_("oc",n,null,r):this.onDisconnectRequestQueue_.push({pathString:n,action:"oc",data:null,onComplete:r})}sendOnDisconnect_(n,r,i,o){let s={p:r,d:i};this.log_("onDisconnect "+n,s),this.sendRequest(n,s,a=>{o&&setTimeout(()=>{o(a.s,a.d)},Math.floor(0))})}put(n,r,i,o){this.putInternal("p",n,r,i,o)}merge(n,r,i,o){this.putInternal("m",n,r,i,o)}putInternal(n,r,i,o,s){this.initConnection_();let a={p:r,d:i};s!==void 0&&(a.h=s),this.outstandingPuts_.push({action:n,request:a,onComplete:o}),this.outstandingPutCount_++;let c=this.outstandingPuts_.length-1;this.connected_?this.sendPut_(c):this.log_("Buffering put: "+r)}sendPut_(n){let r=this.outstandingPuts_[n].action,i=this.outstandingPuts_[n].request,o=this.outstandingPuts_[n].onComplete;this.outstandingPuts_[n].queued=this.connected_,this.sendRequest(r,i,s=>{this.log_(r+" response",s),delete this.outstandingPuts_[n],this.outstandingPutCount_--,this.outstandingPutCount_===0&&(this.outstandingPuts_=[]),o&&o(s.s,s.d)})}reportStats(n){if(this.connected_){let r={c:n};this.log_("reportStats",r),this.sendRequest("s",r,i=>{if(i.s!=="ok"){let s=i.d;this.log_("reportStats","Error sending stats: "+s)}})}}onDataMessage_(n){if("r"in n){this.log_("from server: "+xt(n));let r=n.r,i=this.requestCBHash_[r];i&&(delete this.requestCBHash_[r],i(n.b))}else{if("error"in n)throw"A server-side error has occurred: "+n.error;"a"in n&&this.onDataPush_(n.a,n.b)}}onDataPush_(n,r){this.log_("handleServerMessage",n,r),n==="d"?this.onDataUpdate_(r.p,r.d,!1,r.t):n==="m"?this.onDataUpdate_(r.p,r.d,!0,r.t):n==="c"?this.onListenRevoked_(r.p,r.q):n==="ac"?this.onAuthRevoked_(r.s,r.d):n==="apc"?this.onAppCheckRevoked_(r.s,r.d):n==="sd"?this.onSecurityDebugPacket_(r):XN("Unrecognized action received from server: "+xt(n)+`
150
+ `+ht),dt&&(ht=ka(ht)),R&&is?ts(ht):ht},e.setConfig=function(){let W=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Pa(W),zl=!0,ba=Je,ql=rt},e.clearConfig=function(){po=null,zl=!1,ba=null,ql=null,R=O,N=""},e.isValidAttribute=function(W,T,w){po||Pa({});let G=$e(W),ee=$e(T);return Ua(G,ee,w)},e.addHook=function(W,T){typeof T=="function"&&nr(He,W)&&Op(He[W],T)},e.removeHook=function(W,T){if(nr(He,W)){if(T!==void 0){let w=Tne(He[W],T);return w===-1?void 0:yne(He[W],w,1)[0]}return o2(He[W])}},e.removeHooks=function(W){nr(He,W)&&(He[W]=[])},e.removeAllHooks=function(){He=E2()},e}var fy=I2();var Wne=/^\/\/\*\[@id='([^']+)'\]/;function UN(t){try{if(typeof t!="string")return null;let e=Wne.exec(t);if(!e)return null;let n=e[1],r=t.slice(e[0].length);if(!r)return{rootId:n,segments:[]};if(!r.startsWith("/"))return null;let i=[],o="",s=0,a=null;for(let c=1;c<r.length;c++){let l=r[c];if(a){l===a&&(a=null),o+=l;continue}if(l==="'"||l==='"')a=l;else if(l==="[")s++;else if(l==="]")s--;else if(l==="/"&&s===0){if(!o)return null;i.push(o),o="";continue}o+=l}return!o||a||s!==0?null:(i.push(o),{rootId:n,segments:i})}catch{return null}}var zne=[/:r[0-9a-z]+:/i,/_r_[0-9a-z]+_/i,/«r[0-9a-z]+»/i,/^radix-/i];function S2(t){try{return t?zne.some(e=>e.test(t)):!1}catch{return!1}}function Vke(t){if(Array.isArray(t))return v2(t);if(!t||typeof t!="object"||!("documentIds"in t))return{documentIds:null};let e=t.documentIds;return Array.isArray(e)?v2(e):{documentIds:[],problem:"not-an-array"}}function v2(t){let e=t.filter(n=>typeof n=="string"||typeof n=="number"&&Number.isFinite(n)).map(n=>String(n)).filter(n=>n.length>0);return B({documentIds:Array.from(new Set(e)).sort()},e.length<t.length?{problem:"dropped-entries"}:{})}function Bke(t,e){return t===null||e===null?t===e:t.length===e.length&&t.every((n,r)=>n===e[r])}var A2={ADD_TAGS:["velt-skeleton-loader"],ADD_ATTR:["border-radius","target"]},C2=(()=>{let e=class e{constructor(r,i,o,s){this.analyticsService=r,this.rendererFactory2=i,this.loggingService=o,this.sanitizer=s,this.smoothScrollShieldHandler=null,this.smoothScrollShieldLoadListener=null,this.isVideoEditorHandlingDelete=!1,this.pageScrollHeight=0,this.enableRectSelectionSubject$=new ie(!1),this.enableRectSelection$=this.enableRectSelectionSubject$.asObservable(),this.scrollableElementsIds$=new ie([]),this.mousedown=!1,this.windowMouseDown$=new Rt,this.windowPointerMove$=new ie(null),this.windowPointerUp$=new ie(null),this.documentSelectionChange$=new ie(null),this.windowClick$=new ie(null),this.windowScroll$=new ie(null),this.windowResize$=new ie(null),this.windowKeyupBackspace$=new ie(null),this.windowKeyupDelete$=new ie(null),this.windowKeyupEsc$=new ie(null),this.windowPopState$=new ie(null),this.documentClick$=new ie(null),this.documentClickSubject$=new Rt,this.documentFocus$=new ie(null),this.windowKeydownShift$=new ie(null),this.windowKeyupShift$=new ie(null),this.mutation$=new ie(null),this.childListMutation$=new ie(null),this.networkStatus$=new ie(!1),this.xpathCache=new Map,this.xpathCacheId=new Map,this.selectedAnnotationsMap$=new ie({}),this.selectedAnnotationsLocationMap$=new ie({}),this.selectedAnnotationsContextIdMap$=new ie({}),this.recordingInProgress$=new ie({}),this.deleteAnnotations$=new ie([]),this.pinHighlighterClass$=new ie(null),this.dialogOpenedInSidebar$=new ie(!1),this.textHighlighterClass$=new ie(null),this.commentPinHighlighter$=new ie(!1),this.deviceInfo$=new ie(new Ur),this.customCss$=new ie(null),this.mutationObserver=null,this.animationFilterEnabled=!1,this.animationLibraryDetected=null,this.staticAnimationCache=new WeakMap,this.ANIMATION_LIBRARY_SELECTOR=["[data-gsap]",".gsap-marker-start",".gsap-marker-end","[data-gsap-id]",".swiper-slide",".swiper-wrapper",".swiper-pagination",".swiper-pagination-bullet","[data-aos]"].join(", "),this.previousMousePosition={pageX:0,pageY:0,clientX:0,clientY:0},this.currentMousePosition={pageX:0,pageY:0,clientX:0,clientY:0,element:{xpath:"",topPercentage:0,leftPercentage:0}},this.nodeMap={},this.unlistenElementScroll={},this.tabId=null,this.dynamicIdPatterns=[/^yui_[a-z0-9_]+$/i],this.excludeClassList=["show-pin-cursor"],this.filterSnippylyNodes=a=>{try{let c=[];return a.forEach(l=>{if(!qi(l))if(l instanceof HTMLElement){if(l.className.includes("cdk-overlay-container")||l.className.includes("cdk-overlay-connected-position-bounding-box"))return;if(l.className.includes("cdk-overlay")){let d=!1;l.childNodes.forEach(h=>{qi(h)&&(d=!0)}),d||c.push(l)}else c.push(l)}else c.push(l)}),c}catch(c){return this.loggingService.catch("Error in DomService filterSnippylyNodes: ",c),[]}},this.loggingService.log("%c[WB] Creating CLASS: DomService","color: blue;");try{this.analyticsService.setDomService(this),this.renderer=this.rendererFactory2.createRenderer(null,null);let a=this.calculateScreenSize();this.currentScreenSize$=new ie(a),this.currentMousePosition$=new ie(this.currentMousePosition),this.detectNetworkStatusChange(),this.getScrollableElementsIds$().pipe(Ya(),eE(([c,l])=>{try{let d=l.filter(f=>!c.includes(f)),h=c.filter(f=>!l.includes(f));h.length&&h.map(g=>document.getElementById(g)).filter(g=>g).forEach(g=>{this.unlistenElementScroll&&this.unlistenElementScroll[g.id]&&this.unlistenElementScroll[g.id]()}),d.length&&d.map(g=>document.getElementById(g)).filter(g=>g).forEach(g=>{this.unlistenElementScroll[g.id]=this.renderer.listen(g,"scroll",E=>{let I=this.calculateScreenSize();this.currentScreenSize$.next(I)})})}catch(d){this.loggingService.catch("Error in DomService getScrollableElementsIds subscription: ",d)}})).subscribe(()=>{},c=>{this.loggingService.catch("Error in DomService getScrollableElementsIds subscription: ",c)}),this.getSelectedAnnotationsMap$().subscribe(c=>{Object.keys(c||{})?.length?jV("snippylyUserScalableNo","viewport","width=device-width, user-scalable=no"):HV("snippylyUserScalableNo")},c=>{this.loggingService.catch("Error in DomService getSelectedAnnotationsMap$ subscription: ",c)})}catch(a){this.loggingService.catch("Error in DomService constructor: ",a)}}setDocService(r){try{this.docService=r,this.subscribeToDomEvents()}catch(i){this.loggingService.catch("Error in DomService setDocService: ",i)}}setDynamicIdPatterns(r){try{let i=r.map(o=>typeof o=="string"?new RegExp(o):o).filter(Boolean);i.length&&(this.dynamicIdPatterns=i)}catch(i){this.loggingService.catch("Error in DomService setDynamicIdPatterns: ",i)}}isLikelyDynamicId(r){try{return r?this.dynamicIdPatterns.some(i=>i.test(r)):!1}catch{return!1}}isGeneratedId(r){return this.isLikelyDynamicId(r)||S2(r)}getStableAttributes(r){try{let i={};if(!r.getAttributeNames)return i;let o=new Set(["id","class","style"]);return r.getAttributeNames().forEach(a=>{if(o.has(a)||a.includes("snippyly")||a.includes("velt"))return;let c=r.getAttribute(a);c&&c.length<=256&&(i[a]=c)}),i}catch{return{}}}buildStableElementSelector(r,i){try{if(Object.keys(i).length===0)return;let s=[r.tagName?.toLowerCase()],a=["data-","aria-","role","name","title","type"];return Object.keys(i).sort((l,d)=>{let h=a.findIndex(g=>l.startsWith(g)),f=a.findIndex(g=>d.startsWith(g));return(h===-1?99:h)-(f===-1?99:f)}).slice(0,4).forEach(l=>{let d=CSS.escape(i[l]);s.push(`[${l}="${d}"]`)}),s.join("")}catch{return}}getVisibleText(r,i=400){try{let o=document.createTreeWalker(r,NodeFilter.SHOW_TEXT,null),s="",a,c=0;for(;(a=o.nextNode())&&s.length<i;){let l=(a.textContent||"").replace(/\s+/g," ").trim();if(l&&(s+=(s?" ":"")+l),c++,c>100)break}return s.slice(0,i)}catch{return""}}hashText(r){try{return DV(r)}catch{return}}generateRobustXPath(r,i){try{let o=i?.maxDepth||10,s=i?.useAbsolutePath||!1,a=[],c=r,l=0;for(;c&&c!==document.documentElement&&l<o;){let g=this.buildRobustXPathSegment(c);if(g&&(a.unshift(g),this.isStrongAnchorSegment(g)))break;c=c.parentElement,l++}if(a.length===0)return;let h=(s?"/":"//")+a.join("/");return a.some(g=>g.includes("[@")||g.includes("[contains(@class"))?h:void 0}catch{return}}buildRobustXPathSegment(r){try{let i=r.tagName.toLowerCase(),o=r.id;if(o&&!this.isLikelyDynamicId(o)&&document.querySelectorAll(`[id="${CSS.escape(o)}"]`).length===1)return`*[@id=${this.escapeXPathValue(o)}]`;let s=["data-region","data-instanceid","data-action","data-key","data-block","data-activityid"];for(let g of s){let E=r.getAttribute(g);if(E)return`${i}[@${g}=${this.escapeXPathValue(E)}]`}let a=Array.from(r.attributes).filter(g=>g.name.startsWith("data-")&&!g.name.includes("snippyly")&&!g.name.includes("velt")&&g.value.length<100).sort((g,E)=>g.value.length-E.value.length);if(a.length>0){let g=a[0];return`${i}[@${g.name}=${this.escapeXPathValue(g.value)}]`}let c=r.getAttribute("role");if(c)return`${i}[@role=${this.escapeXPathValue(c)}]`;let l=r.getAttribute("aria-label");if(l&&l.length<50)return`${i}[@aria-label=${this.escapeXPathValue(l)}]`;let d=r.getAttribute("name");if(d)return`${i}[@name=${this.escapeXPathValue(d)}]`;let h=r.getAttribute("type");if(h)return`${i}[@type=${this.escapeXPathValue(h)}]`;let f=Array.from(r.classList||[]).filter(g=>g.length>0&&g.length<40&&!g.includes("yui")&&!g.includes("velt")&&!g.includes("snippyly")&&!this.excludeClassList.includes(g)).slice(0,2);if(f.length>0){let g=f.map(E=>`contains(@class, ${this.escapeXPathValue(E)})`).join(" and ");return`${i}[${g}]`}if(r.parentElement){let g=Array.from(r.parentElement.children).filter(E=>E.tagName===r.tagName);if(g.length>1){let E=g.indexOf(r)+1;return`${i}[${E}]`}}return i}catch{return}}isStrongAnchorSegment(r){try{return!!(r.includes("[@id=")||["main","navigation","banner","contentinfo","complementary","search"].some(s=>r.includes(`[@role='${s}']`))||["data-region","data-instanceid","data-activityid"].some(s=>r.includes(`[@${s}=`)))}catch{return!1}}escapeXPathValue(r,i=!0){try{return r.includes("'")?r.includes('"')?`concat(${r.split("'").map(a=>`'${a}'`).join(`,"'",`)})`:i?`"${r}"`:r:i?`'${r}'`:r}catch{try{return`concat(${r.split("'").map(c=>`'${c}'`).join(`,"'",`)})`}catch{return i?`'${r}'`:r}}}getElementFromRobustXPath(r){try{return document.evaluate(r,document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue}catch{return null}}getAllElementsFromRobustXPath(r){try{let i=document.evaluate(r,document,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null),o=[];for(let s=0;s<i.snapshotLength;s++){let a=i.snapshotItem(s);a instanceof Element&&o.push(a)}return o}catch{return[]}}generateAnchorRecord(r,i){try{let o=this.generateAnchorRecordForElement(r,i),s=null;if(r.parentElement&&r.parentElement instanceof HTMLElement&&rd(r.parentElement)&&r.parentElement!==document.body&&(s=r.parentElement),o&&s){let a=this.generateAnchorRecordForElement(s,i);a&&(o.parent=a)}return o}catch(o){return this.loggingService.catch("Error in DomService generateAnchorRecord: ",o),null}}generateAnchorRecordForElement(r,i){try{if(!r)return null;let o=r,s=o.tagName?.toUpperCase();if(!s)return null;let a=o.id&&!this.isLikelyDynamicId(o.id)?o.id:void 0,c=this.getStableAttributes(o),l=this.buildStableElementSelector(o,c),d=this.getVisibleText(o),h=this.hashText(d||""),f=this.generateRobustXPath(o),g=this.getXPath(o,!1,!1,void 0,{ignoreGeneratedIds:i?.ignoreGeneratedIds}),E=this.getXPath(o,!0),I=this.getXPath(o,!0,!0);return{version:"1.0",id:a,tagName:s,elementSelector:l,robustXPath:f||void 0,xPath:g||void 0,fXPath:E||void 0,cfXPath:I||void 0,contentHash:h?{value:h,algorithm:"md5",source:"textContent"}:void 0,createdAt:Date.now()}}catch(o){return this.loggingService.catch("Error in DomService generateAnchorRecordForElement: ",o),null}}resolveAnchorRecord(r){try{let i=[],o=null,s=(h,f,g=0)=>{let E=[],I=g;if(E.push({method:f,score:g}),r.tagName&&h.tagName?.toUpperCase()===r.tagName&&(I+=10,E.push({method:"tagName-match",score:10})),r.contentHash?.value){let S=this.getVisibleText(h);this.hashText(S)===r.contentHash.value&&(I+=30,E.push({method:"contentHash-match",score:30}))}i.push({el:h,score:I,by:f,scoreBreakdown:E})};if(r.id){let h=document.querySelectorAll(`#${CSS.escape(r.id)}`);if(h.length===1)return{element:h[0],matchedBy:"id",score:90};h.length>1&&h.forEach(f=>s(f,"id-duplicate",70))}if(r.elementSelector){let h=document.querySelectorAll(r.elementSelector);if(h.length===1)return{element:h[0],matchedBy:"element-selector",score:80};h.forEach(f=>s(f,"element-selector-duplicate",60))}r.robustXPath&&this.getAllElementsFromRobustXPath(r.robustXPath).slice(0,20).forEach(E=>s(E,"robustXPath",50)),r?.parent&&(o=this.resolveAnchorRecord(r.parent),o.element&&o.element.querySelectorAll(r.tagName?.toLowerCase()||"*").forEach(f=>s(f,"parent+tag",40)));let a=(h,f,g)=>{if(!h)return;let E=this.getElementFromXPath(h);E&&s(E,f||"xpath",g||30)};if(a(r.xPath,"xPath",30),a(r.cfXPath,"cfXPath",30),a(r.fXPath,"fXPath",30),r.contentHash?.value&&i.length===0){let f=g=>{let E=0;for(let I=0;I<g.length&&E<400;I++){let S=g[I];if(E++,!this.isElementVisible(S))continue;let L=this.getVisibleText(S),V=this.hashText(L);V&&V===r.contentHash?.value&&s(S,"contentHash",15)}};if(o?.element&&o?.element instanceof Element){let g=o?.element?.querySelectorAll("*");f(g)}}if(!i.length)return{element:null};i.sort((h,f)=>f.score-h.score);let c=i[0].score,l=i.filter(h=>h.score===c);if(l.length>1){let h=[{path:r.xPath,label:"xPath"},{path:r.cfXPath,label:"cfXPath"},{path:r.fXPath,label:"fXPath"}];for(let f of h)if(f.path){let g=this.getElementFromXPath(f.path);if(g){let E=l.find(I=>I.el===g);if(E)return{element:E.el,matchedBy:`${E.by}+position`,score:E.score,scoreBreakdown:E.scoreBreakdown}}}}let d=i[0];return{element:d.el,matchedBy:d.by,score:d.score,scoreBreakdown:d.scoreBreakdown}}catch(i){return this.loggingService.catch("Error in DomService resolveAnchorRecord: ",i),{element:null}}}subscribeToDomEvents(){try{this.docService?.getDocumentPaths$().pipe(De(r=>{r?(this.onWindowResize(),this.onWindowScroll(),this.onPointerDown(),this.onWindowClick(),this.onWindowKeyupBackspace(),this.onWindowKeyupDelete(),this.onWindowKeyupEsc(),this.onWindowPopState(),this.onWindowKeydownShift(),this.onWindowKeyupShift(),this.addPointerMoveListener(),this.addPointerUpListener(),this.addSelectionChangeListener(),this.onDocumentFocus(),this.setupSmoothScrollShield()):(this.unsubscribeFromWindowResize(),this.unsubscribeFromWindowScroll(),this.unsubscribeFromPointerDown(),this.unsubscribeFromWindowClick(),this.unsubscribeFromWindowKeyupBackspace(),this.unsubscribeFromWindowKeyupDelete(),this.unsubscribeFromWindowKeyupEsc(),this.unsubscribeFromWindowPopState(),this.unsubscribeFromWindowKeydownShift(),this.unsubscribeFromWindowKeyupShift(),this.unsubscribeFromPointerMoveListener(),this.unsubscribeFromPointerUpListener(),this.unsubscribeFromSelectionChangeListener(),this.unsubscribeFromDocumentFocus(),this.unsetMutationObserver(),this.teardownSmoothScrollShield())})).subscribe(),this.onDocumentClick()}catch(r){this.loggingService.catch("Error in DomService subscribeToDomEvents: ",r)}}setScrollableElementsIds(r){try{r&&r.length&&this.scrollableElementsIds$.next(Array.from(new Set(r)))}catch(i){this.loggingService.catch("Error in DomService setScrollableElementsIds: ",i)}}getScrollableElementsIds$(){return this.loggingService.log("%c[WB] Calling FUNCTION: getScrollableElementsIds$","color: green;"),this.scrollableElementsIds$.asObservable()}removeScrollableElementsIds(){this.scrollableElementsIds$.next([])}setMutationObserver(r){try{this.mutationObserver||(this.loggingService.log("%c[WB] Calling DomService FUNCTION: setMutationObserver","color: green;"),this.loggingService.log("%c[WB] setMutationObserver from: "+r,"color: green;"),this.animationFilterEnabled=this.detectAnimationLibraries(),this.loggingService.log("%c[WB] Animation filter:","color: green;",this.animationFilterEnabled?"ENABLED (library detected)":"DISABLED (no library)"),this.mutationObserver=new MutationObserver(i=>{try{if(i?.find(s=>s?.attributeName===F.VELT_IGNORE_CHANGE_DETECTION))return;let o=i.filter(s=>s.type==="childList").filter(s=>{let a=s.target;return s.removedNodes.forEach(c=>{let l=c;if(typeof l.getAttribute=="function"){let d=l.getAttribute(F.ATTRIBUTES.VELT_ELEMENT_CACHE_ID);if(d!==null&&d!==""){let h=this.xpathCacheId.get(d);h!==void 0&&(this.xpathCacheId.delete(d),this.xpathCache.delete(h))}}}),qi(a)?!1:!!(this.filterSnippylyNodes(s.addedNodes).length||this.filterSnippylyNodes(s.removedNodes).length)});this.animationFilterEnabled?this.childListMutation$.next(o.filter(s=>!this.isAnimatingElement(s.target))):this.childListMutation$.next(o),o.push(...i.filter(s=>s.type==="attributes").filter(s=>!qi(s.target)).filter(s=>this.filterSnippylyNodes([s.target]).length).filter(s=>{if(s){let a=s.target;return a?.classList?.contains("snippyly-sidebar-panel")?!1:a?!a.getAttribute(F.VELT_IGNORE_CHANGE_DETECTION):!0}return!0})),o=o.filter(s=>{let a=!0;return Object.keys(F.INGNORE_MUTATION_OBSERVER_CHANGE_TAGS).forEach(c=>{s.target?.closest(c)&&(a=!1)}),a}),o=o.filter(s=>s.target&&rd(s.target)),this.animationFilterEnabled&&(o=o.filter(s=>!this.isAnimatingElement(s.target))),o.length&&this.mutation$.next(o)}catch(o){this.loggingService.catch("Error in DomService change detection: ",o)}}),this.mutationObserver.observe(document.body,{childList:!0,subtree:!0,attributes:!0}))}catch(i){this.loggingService.catch("Error in DomService change detection: ",i)}}detectAnimationLibraries(){try{if(this.animationLibraryDetected!==null)return this.animationLibraryDetected;let r=window;return r.gsap||r.TweenMax||r.TweenLite||r.TimelineMax||r.TimelineLite?(this.loggingService.log("%c[WB] Detected animation library: GSAP","color: green;"),this.animationLibraryDetected=!0,!0):r.Swiper?(this.loggingService.log("%c[WB] Detected animation library: Swiper","color: green;"),this.animationLibraryDetected=!0,!0):r.AOS?(this.loggingService.log("%c[WB] Detected animation library: AOS","color: green;"),this.animationLibraryDetected=!0,!0):r.anime?(this.loggingService.log("%c[WB] Detected animation library: Anime.js","color: green;"),this.animationLibraryDetected=!0,!0):r.lottie||r.Lottie||r.bodymovin?(this.loggingService.log("%c[WB] Detected animation library: Lottie","color: green;"),this.animationLibraryDetected=!0,!0):document.querySelector("[data-framer-component-type]")?(this.loggingService.log("%c[WB] Detected animation library: Framer Motion","color: green;"),this.animationLibraryDetected=!0,!0):document.querySelector(this.ANIMATION_LIBRARY_SELECTOR)?(this.loggingService.log("%c[WB] Detected animation library: DOM markers","color: green;"),this.animationLibraryDetected=!0,!0):(this.loggingService.log("%c[WB] No animation library detected","color: green;"),this.animationLibraryDetected=!1,!1)}catch{return this.animationLibraryDetected=!1,!1}}isAnimatingElement(r){try{if(!r||typeof r.closest!="function")return!1;let i=window;if(i.gsap&&typeof i.gsap.isTweening=="function"){if(i.gsap.isTweening(r))return!0;if(typeof i.gsap.getTweensOf=="function")try{if(i.gsap.getTweensOf(r).length>0)return!0}catch{}}else if(i.TweenMax&&typeof i.TweenMax.isTweening=="function"){if(i.TweenMax.isTweening(r))return!0;if(typeof i.TweenMax.getTweensOf=="function")try{if(i.TweenMax.getTweensOf(r).length>0)return!0}catch{}}let o=r.style?.cssText||"";if(o){let l=o.includes("transform")||o.includes("translate3d")||o.includes("translate(")||o.includes("scale3d")||o.includes("rotate"),d=o.includes("will-change")&&o.includes("transform"),h=o.includes("transform-style")&&o.includes("preserve-3d");if(l&&(d||h))return!0}if(r.style&&(r.style.animation!==""&&r.style.animation!=="none"||r.style.transition!==""&&r.style.transition!=="none")||r.classList?.contains("animate")||r.classList?.contains("animating")||r.classList?.contains("animated")||r.classList?.contains("animation"))return!0;let s=this.staticAnimationCache.get(r);if(s!==void 0)return s;let a=!1,c=r.className||"";return typeof c=="string"&&(c.includes("slider")&&(c.includes("bullet")||c.includes("pagination"))&&(a=!0),c.includes("swiper-pagination")&&(a=!0)),!a&&(r.hasAttribute("data-aos")||r.hasAttribute("data-motion"))&&(a=!0),!a&&r.closest(this.ANIMATION_LIBRARY_SELECTOR)&&(a=!0),this.staticAnimationCache.set(r,a),a}catch{return!1}}unsetMutationObserver(){try{this.mutationObserver&&(this.mutationObserver.disconnect(),this.mutationObserver=null,this.staticAnimationCache=new WeakMap,this.animationLibraryDetected=null,this.animationFilterEnabled=!1)}catch(r){this.loggingService.catch("Error in DomService unsetMutationObserver: ",r)}}detectNetworkStatusChange(){this.loggingService.log("%c[WB] Calling FUNCTION: detectNetworkStatusChange","color: green;");try{gs(wi(window,"offline").pipe(De(()=>!1)),wi(window,"online").pipe(De(()=>!0)),new fe(r=>{r.next(navigator.onLine),r.complete()})).subscribe(r=>{this.networkStatus$.next(r)})}catch(r){this.loggingService.catch("Error in DomService detectNetworkStatusChange: ",r)}}onWindowResize(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowResize","color: green;");try{this.unsubscribeFromWindowResize(),this.unlistenWindowResize=this.renderer.listen("window","resize",r=>{this.windowResize$.next(r);let i=this.calculateScreenSize();this.deviceInfo$.next(new Ur),this.currentScreenSize$.next(i)})}catch(r){this.loggingService.catch("Error in DomService onWindowResize: ",r)}}unsubscribeFromWindowResize(){try{this.unlistenWindowResize&&typeof this.unlistenWindowResize=="function"&&(this.unlistenWindowResize(),this.unlistenWindowResize=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromWindowResize: ",r)}}onWindowScroll(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowScroll","color: green;");try{this.unsubscribeFromWindowScroll(),this.unlistenWindowScroll=this.renderer.listen("window","scroll",r=>{this.windowScroll$.next(r);let i=this.calculateScreenSize();this.currentScreenSize$.next(i)})}catch(r){this.loggingService.catch("Error in DomService onWindowScroll: ",r)}}unsubscribeFromWindowScroll(){try{this.unlistenWindowScroll&&typeof this.unlistenWindowScroll=="function"&&(this.unlistenWindowScroll(),this.unlistenWindowScroll=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromWindowScroll: ",r)}}setupSmoothScrollShield(){this.loggingService.log("%c[WB] Calling FUNCTION: setupSmoothScrollShield","color: green;");try{if(typeof window>"u"||typeof document>"u"||this.smoothScrollShieldHandler)return;if(this.isSmoothScrollLibPresent()){this.attachSmoothScrollShield();return}if(document.readyState!=="complete"&&!this.smoothScrollShieldLoadListener){let r=()=>{this.smoothScrollShieldLoadListener=null;try{if(this.smoothScrollShieldHandler)return;this.isSmoothScrollLibPresent()&&this.attachSmoothScrollShield()}catch(i){this.loggingService.catch("Error in DomService smooth-scroll shield load re-check: ",i)}};window.addEventListener("load",r,{once:!0}),this.smoothScrollShieldLoadListener=()=>window.removeEventListener("load",r)}}catch(r){this.loggingService.catch("Error in DomService setupSmoothScrollShield: ",r)}}isSmoothScrollLibPresent(){try{if(typeof window>"u"||typeof document>"u")return!1;if(window.ET_SmoothScroll)return!0;let i=document.body;return!!(i&&i.classList&&i.classList.contains("et_smooth_scroll"))}catch(r){return this.loggingService.catch("Error in DomService isSmoothScrollLibPresent: ",r),!1}}attachSmoothScrollShield(){if(this.smoothScrollShieldHandler)return;let r=/^(VELT-|SUPERFLOW-|SNIPPYLY-)/,i=s=>{try{let a=typeof s.composedPath=="function"?s.composedPath():[];for(let c=0;c<a.length;c++){let l=a[c];if(!(!l||l.nodeType!==1)&&l.tagName&&r.test(l.tagName)){s.stopImmediatePropagation();return}}}catch(a){this.loggingService.catch("Error in DomService smoothScrollShield handler: ",a)}};this.smoothScrollShieldHandler=i;let o={capture:!0,passive:!0};window.addEventListener("wheel",i,o),window.addEventListener("mousewheel",i,o),window.addEventListener("touchmove",i,o),this.unlistenWindowWheelShield=()=>window.removeEventListener("wheel",i,o),this.unlistenWindowMouseWheelShield=()=>window.removeEventListener("mousewheel",i,o),this.unlistenWindowTouchMoveShield=()=>window.removeEventListener("touchmove",i,o)}teardownSmoothScrollShield(){this.loggingService.log("%c[WB] Calling FUNCTION: teardownSmoothScrollShield","color: green;");try{try{this.smoothScrollShieldLoadListener&&typeof this.smoothScrollShieldLoadListener=="function"&&(this.smoothScrollShieldLoadListener(),this.smoothScrollShieldLoadListener=null)}catch(r){this.loggingService.catch("Error in DomService teardownSmoothScrollShield (load): ",r)}try{this.unlistenWindowWheelShield&&typeof this.unlistenWindowWheelShield=="function"&&(this.unlistenWindowWheelShield(),this.unlistenWindowWheelShield=null)}catch(r){this.loggingService.catch("Error in DomService teardownSmoothScrollShield (wheel): ",r)}try{this.unlistenWindowMouseWheelShield&&typeof this.unlistenWindowMouseWheelShield=="function"&&(this.unlistenWindowMouseWheelShield(),this.unlistenWindowMouseWheelShield=null)}catch(r){this.loggingService.catch("Error in DomService teardownSmoothScrollShield (mousewheel): ",r)}try{this.unlistenWindowTouchMoveShield&&typeof this.unlistenWindowTouchMoveShield=="function"&&(this.unlistenWindowTouchMoveShield(),this.unlistenWindowTouchMoveShield=null)}catch(r){this.loggingService.catch("Error in DomService teardownSmoothScrollShield (touchmove): ",r)}this.smoothScrollShieldHandler=null}catch(r){this.loggingService.catch("Error in DomService teardownSmoothScrollShield: ",r)}}onPointerDown(){this.loggingService.log("%c[WB] Calling FUNCTION: onPointerDown","color: green;");try{this.unsubscribeFromPointerDown(),this.unlistenPointerDown=this.renderer.listen("window","pointerdown",r=>{this.mousedown=!0,this.windowMouseDown$.next(r),this.setPointerPosition(r)})}catch(r){this.loggingService.catch("Error in DomService onPointerDown: ",r)}}unsubscribeFromPointerDown(){try{this.unlistenPointerDown&&typeof this.unlistenPointerDown=="function"&&(this.unlistenPointerDown(),this.unlistenPointerDown=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromPointerDown: ",r)}}onWindowClick(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowKeyupBackspace","color: green;");try{this.unsubscribeFromWindowClick(),this.unlistenWindowClick=this.renderer.listen("window","click",r=>{this.windowClick$.next(r)})}catch(r){this.loggingService.catch("Error in DomService onWindowClick: ",r)}}unsubscribeFromWindowClick(){try{this.unlistenWindowClick&&typeof this.unlistenWindowClick=="function"&&(this.unlistenWindowClick(),this.unlistenWindowClick=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromWindowClick: ",r)}}onWindowKeyupBackspace(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowKeyupBackspace","color: green;");try{this.unsubscribeFromWindowKeyupBackspace(),this.unlistenWindowKeyupBackspace=this.renderer.listen("window","keyup.backspace",r=>{this.isVideoEditorHandlingDelete||this.windowKeyupBackspace$.next(r)})}catch(r){this.loggingService.catch("Error in DomService onWindowKeyupBackspace: ",r)}}unsubscribeFromWindowKeyupBackspace(){try{this.unlistenWindowKeyupBackspace&&typeof this.unlistenWindowKeyupBackspace=="function"&&(this.unlistenWindowKeyupBackspace(),this.unlistenWindowKeyupBackspace=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromWindowKeyupBackspace: ",r)}}onWindowKeyupDelete(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowKeyupDelete","color: green;");try{this.unsubscribeFromWindowKeyupDelete(),this.unlistenWindowKeyupDelete=this.renderer.listen("window","keyup.delete",r=>{this.isVideoEditorHandlingDelete||this.windowKeyupDelete$.next(r)})}catch(r){this.loggingService.catch("Error in DomService onWindowKeyupDelete: ",r)}}unsubscribeFromWindowKeyupDelete(){try{this.unlistenWindowKeyupDelete&&typeof this.unlistenWindowKeyupDelete=="function"&&(this.unlistenWindowKeyupDelete(),this.unlistenWindowKeyupDelete=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromWindowKeyupDelete: ",r)}}onWindowKeyupEsc(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowKeyupEsc","color: green;");try{this.unsubscribeFromWindowKeyupEsc(),this.unlistenWindowKeyupEsc=this.renderer.listen("window","keyup.esc",r=>{this.windowKeyupEsc$.next(r)})}catch(r){this.loggingService.catch("Error in DomService onWindowKeyupEsc: ",r)}}unsubscribeFromWindowKeyupEsc(){try{this.unlistenWindowKeyupEsc&&typeof this.unlistenWindowKeyupEsc=="function"&&(this.unlistenWindowKeyupEsc(),this.unlistenWindowKeyupEsc=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromWindowKeyupEsc: ",r)}}onWindowPopState(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowPopState","color: green;");try{this.unsubscribeFromWindowPopState(),this.unlistenWindowPopState=this.renderer.listen("window","popstate",r=>{this.windowPopState$.next(r)})}catch(r){this.loggingService.catch("Error in DomService onWindowPopState: ",r)}}unsubscribeFromWindowPopState(){try{this.unlistenWindowPopState&&typeof this.unlistenWindowPopState=="function"&&(this.unlistenWindowPopState(),this.unlistenWindowPopState=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromWindowPopState: ",r)}}onDocumentClick(){this.loggingService.log("%c[WB] Calling FUNCTION: onDocumentClick","color: green;");try{this.unsubscribeFromDocumentClick(),this.documentClickListener=r=>{r?.target?.tagName?.toLowerCase()!==F.TAGS.SUPERFLOW_TOOLBAR&&(this.documentClick$.next(r),this.documentClickSubject$.next(r))},document.addEventListener("click",this.documentClickListener,!0)}catch(r){this.loggingService.catch("Error in DomService onDocumentClick: ",r)}}unsubscribeFromDocumentClick(){try{this.documentClickListener&&typeof this.documentClickListener=="function"&&(document.removeEventListener("click",this.documentClickListener,!0),this.documentClickListener=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromDocumentClick: ",r)}}onDocumentFocus(){this.loggingService.log("%c[WB] Calling FUNCTION: onDocumentFocus","color: green;");try{this.unsubscribeFromDocumentFocus(),this.documentFocusListener=r=>{this.documentFocus$.next(r)},document.addEventListener("focus",this.documentFocusListener,!0)}catch(r){this.loggingService.catch("Error in DomService onDocumentFocus: ",r)}}unsubscribeFromDocumentFocus(){try{this.documentFocusListener&&typeof this.documentFocusListener=="function"&&(document.removeEventListener("focus",this.documentFocusListener,!0),this.documentFocusListener=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromDocumentFocus: ",r)}}onWindowKeydownShift(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowKeydownShift","color: green;");try{this.unsubscribeFromWindowKeydownShift(),this.unlistenWindowKeydownShift=this.renderer.listen("window","keydown.shift",r=>{this.windowKeydownShift$.next(r),this.windowKeyupShift$.next(null)})}catch(r){this.loggingService.catch("Error in DomService onWindowKeydownShift: ",r)}}unsubscribeFromWindowKeydownShift(){try{this.unlistenWindowKeydownShift&&typeof this.unlistenWindowKeydownShift=="function"&&(this.unlistenWindowKeydownShift(),this.unlistenWindowKeydownShift=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromWindowKeydownShift: ",r)}}onWindowKeyupShift(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowKeyupShift","color: green;");try{this.unsubscribeFromWindowKeyupShift(),this.unlistenWindowKeyupShift=this.renderer.listen("window","keyup.shift",r=>{this.windowKeyupShift$.next(r),this.windowKeydownShift$.next(null)})}catch(r){this.loggingService.catch("Error in DomService onWindowKeyupShift: ",r)}}unsubscribeFromWindowKeyupShift(){try{this.unlistenWindowKeyupShift&&typeof this.unlistenWindowKeyupShift=="function"&&(this.unlistenWindowKeyupShift(),this.unlistenWindowKeyupShift=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromWindowKeyupShift: ",r)}}onWindowKeydown$(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowKeydown$","color: green;");try{return wi(window,"keydown")}catch(r){return this.loggingService.catch("Error in DomService onWindowKeydown$: ",r),Wa}}addPointerMoveListener(){this.loggingService.log("%c[WB] Calling FUNCTION: addPointerMoveListener","color: green;");try{this.unsubscribeFromPointerMoveListener(),this.unlistenPointerMoveListener=this.renderer.listen("document","pointermove",r=>{this.windowPointerMove$.next(r),this.mouseMoveEvent=r})}catch(r){this.loggingService.catch("Error in DomService addPointerMoveListener: ",r)}}unsubscribeFromPointerMoveListener(){try{this.unlistenPointerMoveListener&&typeof this.unlistenPointerMoveListener=="function"&&(this.unlistenPointerMoveListener(),this.unlistenPointerMoveListener=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromPointerMoveListener: ",r)}}addPointerUpListener(){this.loggingService.log("%c[WB] Calling FUNCTION: addPointerUpListener","color: green;");try{this.unsubscribeFromPointerUpListener(),this.unlistenPointerUpListener=this.renderer.listen("document","pointerup",r=>{this.windowPointerUp$.next(r)})}catch(r){this.loggingService.catch("Error in DomService addPointerUpListener: ",r)}}unsubscribeFromPointerUpListener(){try{this.unlistenPointerUpListener&&typeof this.unlistenPointerUpListener=="function"&&(this.unlistenPointerUpListener(),this.unlistenPointerUpListener=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromPointerUpListener: ",r)}}addSelectionChangeListener(){this.loggingService.log("%c[WB] Calling FUNCTION: addPointerUpListener","color: green;");try{this.unsubscribeFromSelectionChangeListener(),this.unlistenSelectionChangeListener=this.renderer.listen("document","selectionchange",r=>{this.documentSelectionChange$.next(r)})}catch(r){this.loggingService.catch("Error in DomService addPointerUpListener: ",r)}}unsubscribeFromSelectionChangeListener(){try{this.unlistenSelectionChangeListener&&typeof this.unlistenSelectionChangeListener=="function"&&(this.unlistenSelectionChangeListener(),this.unlistenSelectionChangeListener=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromSelectionChangeListener: ",r)}}updateCurrentMousePosition(r){try{if(this.currentMousePosition.pageX=r.pageX,this.currentMousePosition.pageY=r.pageY,this.currentMousePosition.clientX=r.clientX,this.currentMousePosition.clientY=r.clientY,r.target){let i=this.getXPath(r.target),o=r.target;if(i?.includes("name()='svg'")){let h=this.getXPath(i);h&&(o=h.iterateNext()||r.target)}let s=o.getBoundingClientRect(),a=r.clientX-s.x,c=r.clientY-s.y,l=a*100/(s.width||1),d=c*100/(s.height||1);this.currentMousePosition.element={xpath:i,topPercentage:d,leftPercentage:l}}else this.currentMousePosition.element=null;this.currentMousePosition$.next(this.currentMousePosition)}catch(i){this.loggingService.catch("Error in DomService updateCurrentMousePosition: ",i)}}getTargetElementForCursorPosition(r,i=!0,o=!1,s=!0,a,c=!0,l,d){try{let h=r,f=h?.touches?.length?h.touches[0]?.clientX:h?.clientX,g=h?.touches?.length?h.touches[0]?.clientY:h?.clientY;l&&(f=l.clientX,g=l.clientY);let E=this.getBackgroundElement(f,g,i,o);if(E&&a&&typeof a=="function"&&(E=a(E)),E){let I=this.getXPath(E,!1,!1,void 0,d),S=this.getXPath(E,!0),L=E.getBoundingClientRect(),V=f-L.x,K=g-L.y,oe=V*100/(L.width||1),ge=K*100/(L.height||1),te={xpath:I,fXpath:S,leftPercentage:oe,topPercentage:ge};if(s){let C=this.getXPath(E,!0,!0);te.cfXpath=C}if(c){let C=this.generateAnchorRecord(E,d);C&&(te.anchor=C)}return te}else return null}catch(h){return this.loggingService.catch("Error in DomService getTargetElementForCommentPinAnnotation: ",h),null}}getBackgroundElement(r,i,o=!0,s=!1){try{let a=document.elementsFromPoint(r,i),c=[];a.forEach(d=>{qi(d)?c=[]:rd(d)&&c.push(d)}),s&&(c=c.filter(d=>this.isElementVisibleOnScreen(d)));let l=0;return o||c?.forEach((d,h)=>{d.tagName.toLowerCase()==="svg"&&(l=h)}),c[l]}catch(a){return this.loggingService.catch("Error in DomService getBackgroundElement: ",a),null}}getBackgroundVeltElement(r,i){try{let o=document.elementsFromPoint(r,i),s=[];return o.forEach(a=>{qi(a)&&rd(a)&&s.push(a)}),s[0]}catch(o){return this.loggingService.catch("Error in DomService getBackgroundSnippylyElement: ",o),null}}setPointerPosition(r){this.loggingService.log("%c[WB] Calling FUNCTION: setPointerPosition","color: green;");try{this.previousMousePosition.pageX=r.pageX,this.previousMousePosition.pageY=r.pageY,this.currentMousePosition.pageX=r.pageX,this.currentMousePosition.pageY=r.pageY}catch(i){this.loggingService.catch("Error in DomService setPointerPosition: ",i)}}getCurrentWindowSize$(r){return this.loggingService.log("%c[WB] Calling FUNCTION: getCurrentWindowSize","color: green;"),this.currentScreenSize$.asObservable()}getCurrentMousePosition$(){return this.loggingService.log("%c[WB] Calling FUNCTION: getCurrentMousePosition","color: green;"),this.currentMousePosition$.asObservable()}getCurrentWindowSizeValue(){return this.loggingService.log("%c[WB] Calling FUNCTION: getCurrentWindowSizeValue","color: green;"),this.currentScreenSize$.value}getTopLeftPosition(){this.loggingService.log("%c[WB] Calling FUNCTION: getTopLeftPosition","color: green;");try{let r=document?.body?.getBoundingClientRect()||document?.documentElement?.getBoundingClientRect(),i=this.currentMousePosition?.pageX||r.x+200,o=Math.min(i,r.width/2),s=Math.abs(r.y),a=r.y-20;return s>50&&(a=Math.abs(r.y)+180),this.loggingService.log(r),this.loggingService.log(o),this.loggingService.log(a),{topPositionX:o,topPositionY:a}}catch(r){return this.loggingService.catch("Error in DomService getTopLeftPosition: ",r),{topPositionX:0,topPositionY:0}}}toggleSelection(){this.enableRectSelectionSubject$.next(!this.enableRectSelectionSubject$.value)}enableSelection(){this.enableRectSelectionSubject$.next(!0)}disableSelection(){this.enableRectSelectionSubject$.next(!1)}setPinHighlighterClass(r){this.pinHighlighterClass$.next(r)}setTextHighlighterClass(r){this.textHighlighterClass$.next(r)}getTextHighlighterClass(){return this.textHighlighterClass$.asObservable()}enableCommentPinHighlighter(){this.commentPinHighlighter$.next(!0)}disableCommentPinHighlighter(){this.commentPinHighlighter$.next(!1)}getCommentPinHighlighter$(){return this.commentPinHighlighter$.asObservable()}getCommentPinHighlighter(){return this.commentPinHighlighter$?.value}highlightElement(r,i,o){if(r&&!Oc(r)){if(!o&&this.getCommentPinHighlighter()&&(this.pinHighlighterClass$.value?this.addClassToElement(r,this.pinHighlighterClass$.value):this.addClassToElement(r,F.SNIPPYLY_HIGHLIGHT)),i&&!r.hasAttribute(F.ATTRIBUTES.DEFAULT_CURSOR)){let s=r.style.getPropertyValue("cursor"),a=r.style.getPropertyPriority("cursor"),c=s?{defaultCursorValue:s,defaultCursorPriority:a}:"";r.setAttribute(F.ATTRIBUTES.DEFAULT_CURSOR,c?JSON.stringify(c):""),r.style.setProperty("cursor",i,"important")}r.setAttribute(F.SNIPPYLY_HIGHLIGHT,"true"),r.setAttribute(F.VELT_IGNORE_CHANGE_DETECTION,"true")}}removeHighlightFromElement(r){if(r&&(this.pinHighlighterClass$.value&&this.removeClassFromElement(r,this.pinHighlighterClass$.value),this.removeClassFromElement(r,F.SNIPPYLY_HIGHLIGHT),r.removeAttribute(F.SNIPPYLY_HIGHLIGHT),r.removeAttribute(F.VELT_IGNORE_CHANGE_DETECTION),r.hasAttribute(F.ATTRIBUTES.DEFAULT_CURSOR))){try{if(r.style.removeProperty("cursor"),r.getAttribute(F.ATTRIBUTES.DEFAULT_CURSOR)){let i=JSON.parse(r.getAttribute(F.ATTRIBUTES.DEFAULT_CURSOR));r.style.setProperty("cursor",i.defaultCursorValue,i.defaultCursorPriority)}}catch{}r.removeAttribute(F.ATTRIBUTES.DEFAULT_CURSOR)}}highlightUserElement(r,i,o,s=!1){try{r&&(this.addClassToElement(r,F.VELT_LIVE_SELECTION_ON_ELEMENT),s&&this.addClassToElement(r,F.VELT_LIVE_SELECTION_ON_ELEMENT_DEFAULT),r.setAttribute(F.SNIPPYLY_HIGHLIGHT,"true"),r.setAttribute(F.VELT_IGNORE_CHANGE_DETECTION,"true"),i&&!r.style.getPropertyValue(F.VELT_SELECTION_COLOR)&&r.style.setProperty(F.VELT_SELECTION_COLOR,i),o&&r.setAttribute(F.SNIPPYLY_HIGHLIGHT_USER_NAME,o))}catch(a){this.loggingService.catch("Error in DomService highlightUserElement: ",a)}}removeHighlightUserFromElement(r){try{r&&(this.removeClassFromElement(r,F.VELT_LIVE_SELECTION_ON_ELEMENT),this.removeClassFromElement(r,F.VELT_LIVE_SELECTION_ON_ELEMENT_DEFAULT),r.removeAttribute(F.SNIPPYLY_HIGHLIGHT),r.removeAttribute(F.VELT_IGNORE_CHANGE_DETECTION),r.removeAttribute(F.VELT_SELECTION_COLOR),r.removeAttribute(F.SNIPPYLY_HIGHLIGHT_USER_NAME),r.style.removeProperty(F.VELT_SELECTION_COLOR))}catch(i){this.loggingService.catch("Error in DomService removeHighlightUserFromElement: ",i)}}previewHighlightElement(r){r&&r.setAttribute(F.SNIPPYLY_HIGHLIGHT_PREVIEW,"true")}removePreviewHighlightFromElement(r){r&&r.removeAttribute(F.SNIPPYLY_HIGHLIGHT_PREVIEW)}getXPath(r,i=!1,o=!1,s,a){try{let c=this.calculateXPath(r,i,o,s,a);if(c&&typeof c=="string"&&c.includes("/svg")){let l=c.split("/"),d=!1;l.forEach((h,f)=>{h.includes("svg")&&(d=!0),d&&(l[f]="svg:"+h)}),c=l.join("/")}return c}catch(c){this.loggingService.catch("Error in DomService getXPath:",c)}}namespaceResolver(r){return r==="svg"?"http://www.w3.org/2000/svg":null}calculateXPath(r,i,o,s,a){try{if(r){if(typeof r=="string")return document.evaluate(r,s||document,this.namespaceResolver,XPathResult.ANY_TYPE,null);if(!r||r.nodeType!=1)return"";if(r.id&&document.querySelectorAll(`[id='${r.id}']`)?.length===1&&!i&&!(a?.ignoreGeneratedIds&&this.isGeneratedId(r.id)))return"//*[@id='"+r.id+"']";if(o&&r.className&&r.className.split){let l=r.className?.split(" ")?.filter(d=>!d?.includes("snippyly")&&!d?.includes("velt")&&!["show-pin-cursor"].includes(d))[0];if(l){let d=this.calculateXPath(r.parentNode,i,o,s,a)+"/"+r.tagName.toLowerCase(),h=Array.from(r.parentNode?.children||[]).filter(f=>f.nodeType===1&&f.tagName===r.tagName?f.className?.split(" ")?.filter(E=>E?.includes("snippyly")||E?.includes("velt")||["show-pin-cursor"].includes(E))[0]===l:!1);if(h.length>1){let f=h.indexOf(r)+1;d+=`[contains(concat(' ', normalize-space(@class), ' '), ' ${l} ')][${f}]`}else d+=`[contains(concat(' ', normalize-space(@class), ' '), ' ${l} ')]`;return d}}let c=[].filter.call(r.parentNode?.children?r.parentNode?.children:[],function(l){return l.tagName==r.tagName});return this.calculateXPath(r.parentNode,i,o,void 0,a)+"/"+r.tagName.toLowerCase()+(c.length>1?"["+([].indexOf.call(c,r)+1)+"]":"")}}catch(c){this.loggingService.catch("Error in DomService calculateXPath:",c)}}getElementFromXPath(r,i=document){try{if(this.xpathCache.has(r)){let s=this.xpathCache.get(r);if(s!==void 0&&document.contains(s))return s;this.xpathCache.delete(r)}let o=this.getXPath(r,!1,!1,i);if(o){let s=o?.iterateNext();if(s!==null&&typeof s.setAttribute=="function"&&!Oc(s)){let a=nd();s.setAttribute(F.ATTRIBUTES.VELT_ELEMENT_CACHE_ID,a),this.xpathCacheId.set(a,r)}return this.xpathCache.set(r,s),s}return null}catch(o){return this.loggingService.catch("Error in DomService getElementFromXPath:",o),null}}getElementFromTargetElement(r){try{let i=null;if(r?.anchor){let o=this.resolveAnchorRecord(r.anchor);o?.element&&(i=o.element)}else r?.xpath?i=this.getElementFromXPath(r.xpath):r?.cfXpath?i=this.getElementFromXPath(r.cfXpath):r?.fXpath&&(i=this.getElementFromXPath(r.fXpath));return i}catch(i){return this.loggingService.catch("Error in DomService getElementFromTargetElement:",i),null}}resolveIdScopedTarget(r){try{let i=r?.anchor?.xPath||r?.xpath,o=UN(i);if(!i||!o||this.isGeneratedId(o.rootId))return{applicable:!1,element:null};let s=this.getUniqueElementById(o.rootId);if(!s||!this.isElementVisible(s)||!rd(s))return{applicable:!0,element:null};let a=d=>!!d&&s.contains(d)&&this.isElementVisible(d),c=this.getElementFromXPath(i);if(a(c))return{applicable:!0,element:c,matchedBy:"exact"};let l=r?.anchor?.robustXPath;if(l&&UN(l)?.rootId===o.rootId){let d=this.getElementFromRobustXPath(l);if(a(d))return{applicable:!0,element:d,matchedBy:"robust"}}return{applicable:!0,element:s,matchedBy:"root"}}catch(i){return this.loggingService.catch("Error in DomService resolveIdScopedTarget: ",i),{applicable:!1,element:null}}}getUniqueElementById(r){try{let i=document.querySelectorAll(`[id="${CSS.escape(r)}"]`);return i.length===1?i[0]:null}catch{return null}}getElementFromTargetTextRange(r){try{let i=null;if(r?.commonAncestorContainerAnchor){let o=this.resolveAnchorRecord(r.commonAncestorContainerAnchor);o?.element&&(i=o.element)}else r?.commonAncestorContainer&&(i=this.getElementFromXPath(r.commonAncestorContainer));return i}catch(i){return this.loggingService.catch("Error in DomService getElementFromTargetTextRange:",i),null}}calculateScreenSize(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowResize","color: green;");try{let r=[document?.body?.clientHeight||0,document?.documentElement?.clientHeight||0,window?.innerHeight||0],i=[document?.body?.clientWidth||0,document?.documentElement?.clientWidth||0,window?.innerWidth||0];this.calculatePageScrollHeight(),this.loggingService.log(this.pageScrollHeight),this.loggingService.log(this.nodeMap),this.highestNode=this.nodeMap[this.pageScrollHeight];let o=new rp;return o.screenWidth=Math.max(...i),o.screenHeight=Math.max(...r),o.screenScrollHeight=this.pageScrollHeight,o}catch(r){return this.loggingService.catch("Error in DomService calculateScreenSize:",r),new rp}}calculatePageScrollHeight(){this.loggingService.log("%c[WB] Calling FUNCTION: calculatePageScrollHeight","color: green;");try{this.pageScrollHeight=0,this.findLongestNode(document?.documentElement?.childNodes)}catch(r){this.loggingService.catch("Error in DomService calculatePageScrollHeight: ",r)}}removeSnippylyContent(r){this.loggingService.log("%c[WB] Calling FUNCTION: removeSnippylyContent","color: green;");try{let o=new DOMParser().parseFromString(r,"text/html");o.querySelectorAll("[data-snippyly-cache-id]").forEach(f=>{f.removeAttribute("data-snippyly-cache-id")}),o.querySelectorAll("[data-velt-cache-id]").forEach(f=>{f.removeAttribute("data-velt-cache-id")}),o.querySelectorAll(".comment-text-highlight").forEach(f=>{f?.parentNode?.insertBefore(document.createTextNode(f?.textContent),f),f.remove()});let l=document.createNodeIterator(o,NodeFilter.SHOW_COMMENT),d;for(;d=l.nextNode();)d?.remove();return this.mergeAdjacentTextNodes(o.body),this.sanitizeHtml(o.body.innerHTML)}catch(i){return this.loggingService.catch("Error in DomService removeSnippylyContent: ",i),r}}mergeAdjacentTextNodes(r){try{let i=r.firstChild;for(;i;){if(i.nodeType===Node.TEXT_NODE){let o=i.nextSibling;for(;o&&o.nodeType===Node.TEXT_NODE;)i.textContent+=o.textContent,o.remove(),o=i.nextSibling}i=i.nextSibling}}catch(i){this.loggingService.catch("Error in DomService mergeAdjacentTextNodes: ",i)}}findLongestNode(r){try{for(let i=r.length-1;i>=0;i--){if(r[i]?.scrollHeight&&r[i]?.clientHeight){let o=Math.max(r[i]?.scrollHeight,r[i]?.clientHeight);this.pageScrollHeight=Math.max(o,this.pageScrollHeight),this.nodeMap[o]=r[i]}r[i]?.childNodes?.length&&this.findLongestNode(r[i]?.childNodes)}}catch(i){this.loggingService.catch("Error in DomService findLongestNode: ",i)}}resetSelectedAnnotationsMap(r=!0,i){try{let o=Array.from(document.querySelectorAll(`[${F.ATTRIBUTES.VELT_ANNOTATION_DRAFT}]`)),s=this.getDraftCommentAnnotationDialogs()||[];o.push(...s),o=Array.from(new Set(o));let a=o.map(h=>h.classList.contains("velt-annotation-draft-checked")?(h.classList.remove("velt-annotation-draft-checked"),null):(this.removeClassFromElement(h,"velt-comment-dialog-shake"),setTimeout(()=>{this.addClassToElement(h,"velt-comment-dialog-shake"),h.getAttribute(F.ATTRIBUTES.VELT_ANNOTATION_EDIT_COMMENT)||h.classList.contains("velt-annotation-draft-checked")||this.addClassToElement(h,"velt-annotation-draft-checked")},100),h.getAttribute(F.ATTRIBUTES.VELT_ANNOTATION_DRAFT))).filter(h=>h),c=Object.keys(this.getRecordingInProgress()||{});a=[...a,...c];let l=this.selectedAnnotationsMap$.value;if(r&&this.selectedAnnotationsMap$.value&&Object.keys(this.selectedAnnotationsMap$.value).length){let h=[];Object.keys(l).forEach(f=>{if(l[f]?.type==="tag"){let g=l[f];g?.to?.length||a.includes(f)||h.push(g)}else l[f]?.comments?.length||a.includes(f)||h.push(l[f])}),this.deleteAnnotations$.next(h),this.deleteAnnotations$.next([])}let d={};Object.keys(l).forEach(h=>{a.includes(h)&&(d[h]=l[h]),i&&(i==="comment"?["comment","videoPin"].includes(l[h]?.type)||(d[h]=l[h]):l[h]?.type!==i&&(d[h]=l[h]))}),Object.keys(d).forEach(h=>{let f=d[h]?.multiThreadAnnotationId;f&&!d[f]&&(d[f]={annotationId:f,type:"multiThread"})}),JSON.stringify(this.selectedAnnotationsMap$.value)!==JSON.stringify(d)&&this.selectedAnnotationsMap$.next(d),this.setDialogOpenedInSidebar(!1)}catch(o){this.loggingService.catch("Error in DomService resetSelectedAnnotationsMap: ",o)}}setRecordingInProgress(r,i){try{if(i)this.recordingInProgress$.next(Ee(B({},this.recordingInProgress$.value),{[r]:i}));else{let o=this.recordingInProgress$.value;delete o[r],this.recordingInProgress$.next(o)}}catch(o){this.loggingService.catch("Error in DomService setRecordingInProgress: ",o)}}resetRecordingInProgress(){try{this.recordingInProgress$.next({})}catch(r){this.loggingService.catch("Error in DomService resetRecordingInProgress: ",r)}}getRecordingInProgress(){try{return this.recordingInProgress$.value}catch(r){return this.loggingService.catch("Error in DomService getRecordingInProgress: ",r),{}}}getDraftCommentAnnotationDialogs(){try{let r=[],i=Array.from(document.querySelectorAll(`${F.TAGS.SNIPPYLY_COMMENT_DIALOG}`)),o=Array.from(document.querySelectorAll(`${F.TAGS.VELT_COMMENT_DIALOG}`));return[...i,...o].forEach(a=>{if(a?.shadowRoot){let c=a.shadowRoot.querySelector(`[${F.ATTRIBUTES.VELT_ANNOTATION_DRAFT}]`);c&&r.push(c)}else{let c=a.querySelector(`${F.TAGS.VELT_SHADOW_DOM_INTERNAL}`);if(c?.shadowRoot){let l=c.shadowRoot?.querySelector(`[${F.ATTRIBUTES.VELT_ANNOTATION_DRAFT}]`);l&&r.push(l)}else{let l=a.querySelector(`[${F.ATTRIBUTES.VELT_ANNOTATION_DRAFT}]`);l&&r.push(l)}}}),r}catch(r){return this.loggingService.catch("Error in DomService getDraftCommentAnnotationDialogs: ",r),[]}}getSelectedAnnotationsMap(r){try{let i=this.selectedAnnotationsMap$.value;if(r){let o={};return Object.keys(i).forEach(s=>{r==="comment"?["comment","videoPin"].includes(i[s].type)&&(o[s]=i[s]):i[s].type===r&&(o[s]=i[s])}),o}else return i}catch(i){return this.loggingService.catch("Error in DomService getSelectedAnnotationsMap: ",i),{}}}getSelectedAnnotationsMap$(r){return this.selectedAnnotationsMap$.asObservable().pipe(De(i=>{if(r){let o={};return Object.keys(i).forEach(s=>{i[s].type===r&&(o[s]=i[s])}),o}else return i}))}getSelectedComments$(){return this.selectedAnnotationsMap$.asObservable().pipe(De(r=>Object.values(r)))}getSelectedAnnotationsLocationMap(){try{return this.selectedAnnotationsLocationMap$.value}catch(r){return this.loggingService.catch("Error in DomService getSelectedAnnotationsLocationMap: ",r),{}}}getSelectedAnnotationsLocationMap$(){return this.selectedAnnotationsLocationMap$.asObservable()}getSelectedAnnotationsContextIdMap(){try{return this.selectedAnnotationsContextIdMap$.value}catch(r){return this.loggingService.catch("Error in DomService getSelectedAnnotationsContextIdMap: ",r),{}}}getSelectedAnnotationsContextIdMap$(){return this.selectedAnnotationsContextIdMap$.asObservable()}toggleAnnotationSelection(r,i,o,s=!1,a,c){try{o==="sidebarShowReplies"?this.setDialogOpenedInSidebar(!0):this.setDialogOpenedInSidebar(!1);let l=JSON.parse(JSON.stringify(this.selectedAnnotationsMap$.value||{})),d=JSON.parse(JSON.stringify(this.selectedAnnotationsLocationMap$.value||{})),h=JSON.parse(JSON.stringify(this.selectedAnnotationsContextIdMap$.value||{}));l[r.annotationId]&&!s?delete l[r.annotationId]:((!this.windowKeydownShift$.value||s)&&(l={}),l[r.annotationId]=r,d[r.annotationId]=i,c&&(h[r.annotationId]=c),a=r?.multiThreadAnnotationId||a,a&&(l[a]={annotationId:a,type:"multiThread"},d[a]=i,c&&(h[a]=c))),this.selectedAnnotationsMap$.next(l),Object.keys(d).forEach(f=>{l[f]||delete d[f]}),this.selectedAnnotationsLocationMap$.next(d),Object.keys(h).forEach(f=>{l[f]||delete h[f]}),this.selectedAnnotationsContextIdMap$.next(h)}catch(l){this.loggingService.catch("Error in DomService toggleAnnotationSelection: ",l)}}setSelectedAnnotationLocation(r,i){try{let o=JSON.parse(JSON.stringify(this.getSelectedAnnotationsLocationMap()||{}));o?.[r]!==i&&(o[r]=i,this.selectedAnnotationsLocationMap$.next(o))}catch(o){this.loggingService.catch("Error in DomService setSelectedAnnotationLocation: ",o)}}updateSelectedAnnotationInMap(r){try{let i=this.selectedAnnotationsMap$.value;r.forEach(o=>{i[o.annotationId]&&(i[o.annotationId]=o)}),this.selectedAnnotationsMap$.next(i)}catch(i){this.loggingService.catch("Error in DomService updateSelectedAnnotationInMap: ",i)}}getDeleteCommmentAnnotations$(){try{return this.deleteAnnotations$.asObservable()}catch(r){return this.loggingService.catch("Error in DomService getDeleteCommmentAnnotations$: ",r),lt([])}}getHighestNode(){return this.loggingService.log("%c[WB] Calling FUNCTION: getHighestNode","color: green;"),this.highestNode}onWindowMouseDown$(){return this.windowMouseDown$.asObservable()}onWindowPointerMove$(){return this.windowPointerMove$.asObservable()}onWindowPointerMove(){return this.windowPointerMove$.value}onWindowPointerUp$(){return this.windowPointerUp$.asObservable()}onSelectionChange$(){return this.documentSelectionChange$.asObservable()}onWindowClick$(){return this.windowClick$.asObservable()}onWindowScroll$(){return this.windowScroll$.asObservable()}onWindowResize$(){return this.windowResize$.asObservable()}onWindowKeyupBackspace$(){return this.windowKeyupBackspace$.asObservable()}onWindowKeyupDelete$(){return this.windowKeyupDelete$.asObservable()}onWindowKeyupEsc$(){return this.windowKeyupEsc$.asObservable()}onWindowPopState$(){return this.windowPopState$.asObservable()}onDocumentClick$(){return this.documentClick$.asObservable()}getLastDocumentClick(){return this.documentClick$.value}onDocumentClickSubject$(){return this.documentClickSubject$.asObservable()}onDocumentFocus$(){return this.documentFocus$.asObservable()}onDomChange$(r){try{return this.mutationObserver||this.setMutationObserver(r),this.mutation$.asObservable()}catch(i){return this.loggingService.catch("Error in DomService onDomChange$: ",i),lt([])}}getChildListMutation$(){return this.childListMutation$.asObservable()}onNetworkStatusChange$(){return this.networkStatus$.asObservable()}getNetworkStatus(){return this.networkStatus$.value}getElementOffset(r,i){try{let o={offsetTop:0,offsetLeft:0},s=r;if(s===i){let a=window.getComputedStyle(r);a.position==="static"&&a.transformStyle!="preserve-3d"&&a.transform=="none"&&(o.offsetLeft=r?.offsetLeft||0,o.offsetTop=r?.offsetTop||0)}if(s!==i)if(r?.closest("svg"))for(;s&&s!==i;){let c=window.getComputedStyle(s);if(s.tagName.toLowerCase()==="svg"||s instanceof SVGElement){let l=s.parentElement;if(l){let d=l.getBoundingClientRect(),h=s.getBoundingClientRect();o.offsetLeft+=h.left-d.left,o.offsetTop+=h.top-d.top}}else c.position==="static"?c.transformStyle!="preserve-3d"&&c.transform=="none"&&(o.offsetLeft+=s?.offsetLeft||0,o.offsetTop+=s?.offsetTop||0):(o.offsetLeft+=s.offsetLeft,o.offsetTop+=s.offsetTop);if(s=s.parentElement,r instanceof SVGElement&&s===i){let l=window.getComputedStyle(s);l.position==="static"&&l.transformStyle!="preserve-3d"&&l.transform=="none"&&(o.offsetLeft+=s?.offsetLeft||0,o.offsetTop+=s?.offsetTop||0)}}else{let c=window.getComputedStyle(s);c.position==="static"?c.transformStyle!="preserve-3d"&&c.transform=="none"&&(o.offsetLeft+=s?.offsetLeft||0,o.offsetTop+=s?.offsetTop||0):(o.offsetLeft+=s.offsetLeft,o.offsetTop+=s.offsetTop)}return o}catch(o){return this.loggingService.catch("Error in DomService getElementOffset: ",o),{offsetTop:0,offsetLeft:0}}}isElementVisible(r){try{if(typeof r?.getBoundingClientRect=="function"){let{width:i,height:o,top:s,bottom:a}=r?.getBoundingClientRect();return i>0||o>0||s<window.innerHeight&&a>0}else return!1}catch(i){return this.loggingService.catch("Error in DomService isElementVisible: ",i),!1}}isElementVisibleOnScreen(r){try{if(r){if(!(r instanceof Element))return!1;let i=r,o=window.getComputedStyle(i);return!(o.display==="none"||o.visibility==="hidden"||parseFloat(o.opacity)===0)}return!1}catch(i){return this.loggingService.catch("Error in DomService isElementVisibleOnScreen: ",i),!1}}getClickAndDragPointsObservable(){return new fe(r=>{let i=wi(document,"mousedown").pipe(De(l=>({type:l.type,x:l.clientX+window.scrollX,y:l.clientY+window.scrollY,event:l}))),o=wi(document,"mousemove").pipe(De(l=>({type:l.type,x:l.clientX+window.scrollX,y:l.clientY+window.scrollY,event:l}))),s=wi(document,"mouseup").pipe(De(l=>({type:l.type,x:l.clientX+window.scrollX,y:l.clientY+window.scrollY,event:l}))),c=i.pipe(Mr(l=>o.pipe(Ya(),De(([d,h])=>({startPoint:l,prevPoint:d,curPoint:h})),ps(s)))).subscribe(r);return()=>c.unsubscribe()})}drawRectangle(r,i){let o=document.querySelector(".rectangle");o||(o=document.createElement("div"),this.addClassToElement(o,"rectangle"),o.setAttribute(F.ATTRIBUTES.VELT_COMMENT_DISABLED,"true"),o.setAttribute(F.VELT_IGNORE_CHANGE_DETECTION,"true"),document.body.appendChild(o));let s=Math.abs(i.x-r.x),a=Math.abs(i.y-r.y),c=Math.min(r.x,i.x),l=Math.min(r.y,i.y);return o.style.width=`${s}px`,o.style.height=`${a}px`,o.style.left=`${c}px`,o.style.top=`${l}px`,o.style.position="absolute",o.style.border="2px dashed #f00",o.style.pointerEvents="none",o.style.zIndex="2147483577",o}getRange(){try{if(this.loggingService.log("%c[WB] Calling FUNCTION: getRange","color: green;"),window.getSelection()?.toString()){let r=window.getSelection();if(r?.rangeCount)return r.getRangeAt(0)}return null}catch(r){return this.loggingService.catch("Error in DomService getRange: ",r),null}}clearTextSelection(){try{this.loggingService.log("%c[WB] Calling FUNCTION: clearTextSelection","color: green;"),window.getSelection&&(window.getSelection()?.empty?window.getSelection()?.empty():window.getSelection()?.removeAllRanges&&window.getSelection()?.removeAllRanges())}catch(r){this.loggingService.catch("Error in DomService clearTextSelection: ",r)}}getTargetTextRangeFromSelectionRange(r){try{let i={},o=r.commonAncestorContainer;o?.nodeType===Node.TEXT_NODE&&(o=o.parentElement);let s=document.body;if(o){let c=this.getTextXPath(o);this.isXpathWithId(c)&&(s=o)}let a=this.getAdditionalLocationContainer(o);if(a&&(s=a),i.commonAncestorContainer=this.getTextXPath(s),i.commonAncestorContainer){let c=this.getElementFromXPath(i.commonAncestorContainer);if(c){i.commonAncestorContainerFXpath=this.getXPath(c,!0),i.commonAncestorContainerCFXpath=this.getXPath(c,!0,!0);let l=this.generateAnchorRecord(c);l&&(i.commonAncestorContainerAnchor=l)}}return i.text=r.toString(),i.occurrence=gR(s,0,r.startContainer,r.startOffset,r.toString())+1,i}catch(i){this.loggingService.catch("Error in DomService getTargetTextRangeFromSelectionRange: ",i);return}}getTextXPath(r){try{if(this.loggingService.log("%c[WB] Calling FUNCTION: getTextXPath","color: green;"),r.nodeType===Node.TEXT_NODE){let i=1,o=r.previousSibling;for(;o;)o.nodeType===Node.TEXT_NODE&&i++,o=o.previousSibling;return this.getXPath(r.parentElement)}else return this.getXPath(r)}catch(i){this.loggingService.catch("Error in DomService getTextXPath: ",i);return}}getHostElement(r){try{if(F.NON_NESTABLE_ELEMENTS[r?.tagName?.toLowerCase()]){let o=r?.closest("picture");return o?o?.parentElement:r.parentElement}let i=r.closest("svg");return i?i?.parentElement:r}catch(i){return this.loggingService.catch("Error in DomService getHostElement: ",i),r}}isElementInsideAdditionalLocationContainer(r){try{return!!r?.closest(`[${F.ATTRIBUTES.VELT_LOCATION}], [${F.ATTRIBUTES.VELT_LOCATION_ID}]`)}catch(i){return this.loggingService.catch("Error in DomService isElementInsideAdditionalLocationContainer: ",i),!1}}getAdditionalLocationContainer(r){try{return r?.closest(`[${F.ATTRIBUTES.VELT_LOCATION}], [${F.ATTRIBUTES.VELT_LOCATION_ID}]`)||null}catch(i){return this.loggingService.catch("Error in DomService getAdditionalLocationContainer: ",i),null}}isXpathWithId(r){try{return typeof r=="string"?!!r?.includes("[@id="):!1}catch(i){return this.loggingService.catch("Error in DomService isXpathWithId: ",i),!1}}getListedElements({elementIds:r,elementClassNames:i,elementQuerySelectors:o}){try{let s=[];if(r?.length)for(let a=0;a<r.length;a++){let c=document.getElementById(r[a]);c&&s.push(c)}if(i?.length)for(let a=0;a<i.length;a++){let c=document.getElementsByClassName(i[a]);for(let l=0;l<c.length;l++){let d=c[l];d&&d instanceof HTMLElement&&s.push(d)}}if(o?.length)for(let a=0;a<o.length;a++){let c=document.querySelectorAll(o[a]);for(let l=0;l<c.length;l++){let d=c[l];d&&d instanceof HTMLElement&&s.push(d)}}return s}catch(s){return this.loggingService.catch("Error in DomService getListedElements: ",s),[]}}isElementInsideListedElementIds(r,i){try{if(i?.length){for(let o=0;o<i.length;o++){let s=document.getElementById(i[o]);if(s&&s.contains(r))return!0}return!1}return!0}catch(o){return this.loggingService.catch("Error in DomService isElementInsideListedElementIds: ",o),!1}}isElementInsideListedElementClassNames(r,i){try{if(i?.length){for(let o=0;o<i.length;o++){let s=document.getElementsByClassName(i[o]);for(let a=0;a<s.length;a++)if(s[a].contains(r))return!0}return!1}return!0}catch(o){return this.loggingService.catch("Error in DomService isElementInsideListedElementClassNames: ",o),!1}}isElementInsideListedElementQuerySelectors(r,i){try{if(i?.length){for(let o=0;o<i.length;o++){let s=document.querySelectorAll(i[o]);for(let a=0;a<s.length;a++)if(s[a].contains(r))return!0}return!1}return!0}catch(o){return this.loggingService.catch("Error in DomService isElementInsideListedElementQuerySelectors: ",o),!1}}addClassToElement(r,i){try{this.loggingService.log("%c[WB] Calling FUNCTION: addClassToElement","color: green;"),r&&(r.classList?.contains(i)||r.classList?.add(i))}catch(o){this.loggingService.catch("Error in DomService addClassToElement: ",o)}}removeClassFromElement(r,i){try{this.loggingService.log("%c[WB] Calling FUNCTION: removeClassFromElement","color: green;"),r&&r.classList?.contains(i)&&r.classList?.remove(i)}catch(o){this.loggingService.catch("Error in DomService removeClassFromElement: ",o)}}isElementInsideParentWithAttribute(r,i,o){try{let s=r;for(;s&&s!==document.body;){if(s?.getAttribute&&s?.getAttribute(i)===o)return!0;s=s.parentElement}return!1}catch(s){return this.loggingService.catch("Error in DomService isElementInsideParentWithAttribute: ",s),!1}}setVideoEditorHandlingDelete(r){try{this.isVideoEditorHandlingDelete=r}catch(i){this.loggingService.catch("Error in DomService setVideoEditorHandlingDelete: ",i)}}isVideoEditorHandlingDeleteKey(){try{return this.isVideoEditorHandlingDelete}catch(r){return this.loggingService.catch("Error in DomService isVideoEditorHandlingDeleteKey: ",r),!1}}setCustomCss(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setCustomCss","color: green;"),this.customCss$.next(r)}catch(i){this.loggingService.catch("Error in DomService setCustomCss: ",i)}}getCustomCss$(){try{return this.loggingService.log("%c[WB] Calling FUNCTION: getCustomCss$","color: green;"),this.customCss$.asObservable()}catch(r){return this.loggingService.catch("Error in DomService getCustomCss$: ",r),lt(null)}}injectCustomCss(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: injectCustomCss","color: green;");let i=this.customCss$.value;if(i){let o=r?.shadowRoot?.querySelector(`[${F.VELT_CUSTOM_CSS}]`);if(o&&o.remove(),i?.type==="link"){let s=document.createElement("link");s.href=i?.value,s.rel="stylesheet",s.setAttribute(F.VELT_CUSTOM_CSS,"true"),r?.shadowRoot?.appendChild(s)}else{let s=document.createElement("style");s.innerHTML=this.sanitizeHtml(i?.value),s.setAttribute(F.VELT_CUSTOM_CSS,"true"),r?.shadowRoot?.appendChild(s)}}}catch(i){this.loggingService.catch("Error in DomService injectCustomCss: ",i)}}subscribeInjectCustomCss(r){try{return this.customCss$.subscribe(()=>{this.injectCustomCss(r?.nativeElement)})}catch(i){return this.loggingService.catch("Error in DomService subscribeInjectCustomCss: ",i),new gt}}trimCommentHtml(r){try{let i=document.createElement("div");i.innerHTML=r,this.removeEmptyElements(i);let o=i.innerHTML;return o=o.replace(e.MULTIPLE_NBSP_REGEX," ").replace(e.TRIM_NBSP_REGEX,"").trim(),o}catch(i){return this.loggingService.catch("Error in DomService trimCommentHtml: ",i),r}}removeEmptyElements(r){try{let s=function(a){return o.test(a.innerHTML)};var i=s;let o=/^\s*(<br\s*\/?>)?\s*$/;for(;r.firstChild&&s(r.firstChild);)r.removeChild(r.firstChild);for(;r.lastChild&&s(r.lastChild);)r.removeChild(r.lastChild)}catch(o){this.loggingService.catch("Error in DomService removeEmptyElements: ",o)}}normalizeWhitespace(r){try{r.childNodes.forEach(i=>{i.nodeType===Node.TEXT_NODE?i.nodeValue=i.nodeValue?.replace(/\s+/g," ").trim()??"":i.nodeType===Node.ELEMENT_NODE&&this.normalizeWhitespace(i)})}catch(i){this.loggingService.catch("Error in DomService normalizeWhitespace: ",i)}}sanitizeHtml(r){try{return this.loggingService.log("%c[WB] Calling FUNCTION: sanitizeHtml","color: green;"),fy.sanitize(r,A2)}catch(i){return this.loggingService.catch("Error in DomService sanitizeHtml: ",i),""}}sanitizeHtmlForPaste(r){try{let i=this.convertStylesToTags(r);return fy.sanitize(i,{ALLOWED_TAGS:["b","strong","i","em","u","a","br"],ALLOWED_ATTR:["href","target","rel"]})}catch(i){return this.loggingService.catch("Error in DomService sanitizeHtmlForPaste: ",i),""}}convertStylesToTags(r){try{let i=document.createElement("div");return i.innerHTML=r,this.convertBlockElementsToBr(i),this.processNodeStyles(i),i.innerHTML}catch(i){return this.loggingService.catch("Error in DomService convertStylesToTags: ",i),r}}convertBlockElementsToBr(r){try{let i=["P","DIV","H1","H2","H3","H4","H5","H6","LI","BLOCKQUOTE","PRE","SECTION","ARTICLE","HEADER","FOOTER"],o;for(;(o=r.querySelector(i.join(",")))!==null;){let s=o.parentNode;if(!s)break;for(;o.firstChild;)s.insertBefore(o.firstChild,o);o.nextSibling&&s.insertBefore(document.createElement("br"),o),s.removeChild(o)}}catch(i){this.loggingService.catch("Error in DomService convertBlockElementsToBr: ",i)}}processNodeStyles(r){try{let i=Array.from(r.childNodes);for(let o of i)if(o.nodeType===Node.ELEMENT_NODE){this.processNodeStyles(o);let s=o,a=s.style,c=o,l=a?.fontWeight;if(l==="bold"||l==="700"||l==="800"||l==="900"){let d=s.tagName?.toLowerCase();if(d!=="b"&&d!=="strong"){let h=document.createElement("b");c.parentNode.insertBefore(h,c),h.appendChild(c),c=h}}if(a?.fontStyle==="italic"){let d=s.tagName?.toLowerCase();if(d!=="i"&&d!=="em"){let h=document.createElement("i");c.parentNode.insertBefore(h,c),h.appendChild(c),c=h}}if((a?.textDecorationLine?.includes("underline")||a?.textDecoration?.includes("underline"))&&s.tagName?.toLowerCase()!=="u"){let h=document.createElement("u");c.parentNode.insertBefore(h,c),h.appendChild(c),c=h}}}catch(i){this.loggingService.catch("Error in DomService processNodeStyles: ",i)}}sanitizeSvg(r){try{return fy.sanitize(r,A2)}catch(i){return this.loggingService.catch("Error in DomService sanitizeSvg: ",i),r}}setDeviceInfo(){try{this.loggingService.log("%c[WB] Calling FUNCTION: setDeviceInfo","color: green;");let r=new Ur;this.deviceInfo$.next(r)}catch(r){this.loggingService.catch("Error in DomService setDeviceInfo: ",r)}}getDeviceInfo$(){try{return this.loggingService.log("%c[WB] Calling FUNCTION: getDeviceInfo$","color: green;"),this.deviceInfo$.asObservable()}catch(r){return this.loggingService.catch("Error in DomService getDeviceInfo$: ",r),lt(new Ur)}}getTabId(){try{let r=sessionStorage.getItem(F.SESSION_STORAGE.VELT_TAB_ID);!r&&this.tabId&&(r=this.tabId,sessionStorage.setItem(F.SESSION_STORAGE.VELT_TAB_ID,r)),!this.tabId&&r&&(this.tabId=r);let i=this.getTabIdFromWindowName();return(!r||r!==i)&&(r=nd(),this.tabId=r,sessionStorage.setItem(F.SESSION_STORAGE.VELT_TAB_ID,r),this.setTabIdToWindowName(r)),r}catch(r){return this.loggingService.catch("Error in DomService getTabId: ",r),null}}getTabIdFromWindowName(){try{return window.name}catch(r){return this.loggingService.catch("Error in DomService getTabIdFromWindowName: ",r),null}}setTabIdToWindowName(r){try{window.name=r}catch(i){this.loggingService.catch("Error in DomService setTabIdToWindowName: ",i)}}getDeviceInfo(){try{return this.loggingService.log("%c[WB] Calling FUNCTION: getDeviceInfo","color: green;"),this.deviceInfo$.value}catch(r){return this.loggingService.catch("Error in DomService getDeviceInfo: ",r),new Ur}}isMobileDevice(){try{return new Ur().getDeviceType()===Er.MOBILE}catch(r){return this.loggingService.catch("Error in DomService isMobileDevice: ",r),!1}}isTabletDevice(){try{return new Ur().getDeviceType()===Er.TABLET}catch(r){return this.loggingService.catch("Error in DomService isTabletDevice: ",r),!1}}isDesktopDevice(){try{return new Ur().getDeviceType()===Er.DESKTOP}catch(r){return this.loggingService.catch("Error in DomService isDesktopDevice: ",r),!1}}deepCloneElement(r){try{var i=document.createElement(r?.tagName);return Array.from(r.attributes).forEach(o=>{i.setAttribute(o.nodeName,o.nodeValue)}),r.childNodes.forEach(o=>{o.nodeType===Node.ELEMENT_NODE?i.appendChild(this.deepCloneElement(o)):o.nodeType===Node.TEXT_NODE&&i.appendChild(document.createTextNode(o.nodeValue))}),i}catch(o){return this.loggingService.catch("Error in DomService deepCloneElement: ",o),r}}setRandomNumberToElementRecursive(r){try{if(!r)return;let i=Math.random().toString(36).substring(7);r&&r.setAttribute&&typeof r.setAttribute=="function"&&(r.getAttribute("velt-wireframe-id")||r.setAttribute("velt-wireframe-id",i)),Array.from(r.children).forEach(s=>{this.setRandomNumberToElementRecursive(s)})}catch(i){this.loggingService.catch("Error in DomService setRandomNumberToElementRecursive: ",i)}}setDialogOpenedInSidebar(r){this.dialogOpenedInSidebar$.next(r)}getDialogOpenedInSidebar(){return this.dialogOpenedInSidebar$.asObservable()}removeWireframeSuffixFromTags(r){if(!r)return;Array.from(r.children).forEach(o=>{if(this.removeWireframeSuffixFromTags(o),o.tagName.toLowerCase().endsWith("-wireframe")){let s=o.tagName.toLowerCase().replace("-wireframe",""),a=document.createElement(s);for(Array.from(o.attributes).forEach(c=>{a.setAttribute(c.name,c.value)});o.firstChild;)a.appendChild(o.firstChild);o.parentNode.replaceChild(a,o)}})}isMonitorDevice(){try{return new Ur().getDeviceType()===Er.MONITOR}catch(r){return this.loggingService.catch("Error in DomService isMonitorDevice: ",r),!1}}isElementOriginallyStatic(r){try{return window.getComputedStyle(r).position==="static"||r.hasAttribute(F.ATTRIBUTES.VELT_COMMENT_PIN_HOST_STATIC)||r.hasAttribute(F.ATTRIBUTES.VELT_AREA_PIN_HOST_STATIC)||r.hasAttribute(F.ATTRIBUTES.VELT_TAG_PIN_HOST_STATIC)||r.hasAttribute(F.ATTRIBUTES.VELT_RECORDER_PIN_HOST_STATIC)||r.hasAttribute(F.ATTRIBUTES.VELT_ARROW_PIN_HOST_STATIC)}catch(i){return this.loggingService.catch("Error in DomService isElementOriginallyStatic: ",i),!1}}};e.MULTIPLE_NBSP_REGEX=/(?:&nbsp;\s*){2,}/g,e.TRIM_NBSP_REGEX=/^(?:&nbsp;\s*)+|(?:&nbsp;\s*)+$/g,e.\u0275fac=function(i){return new(i||e)($(zs),$(bo),$(bt),$(XD))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();function Xc(t){let e=t?.refreshToken;return typeof e=="string"&&e.length>0?e:void 0}var VN=Symbol("velt-auth-state-pending");function Yne(t,e){let n=B(B({},t),e||{});return n.userId=t.userId,n.userSnippylyId=t.userSnippylyId,n.type=t.type,n.organizationId=t.organizationId,n.clientOrganizationId=t.clientOrganizationId,n.groupId=t.groupId,n.clientGroupId=t.clientGroupId,n.contacts=t.contacts,n.plan=t.plan,n.isAdmin=t.isAdmin,n.isReadOnly=t.isReadOnly,n.isAnonymous=t.isAnonymous,n.isGuest=t.isGuest,n.color=e?.color||t.color,n.textColor=e?.textColor||t.textColor,n.initial=e?.initial||n.name?.charAt(0).toUpperCase()||n.email?.charAt(0).toUpperCase()||t.initial,n?.photoUrl===void 0&&(n.photoUrl=null),n}function D2(t,e){if(!e.length)return!0;if(t.length!==e.length)return!1;let n=new Set(t);return e.every(r=>n.has(r))}var Ed=(()=>{let e=class e{constructor(r,i,o,s,a,c,l,d,h){this.afAuth=r,this.configService=i,this.avatarService=o,this.coreActionsService=s,this.domService=a,this.functions=c,this.analyticsService=l,this.loggingService=d,this.serviceBook=h,this.endpointsService=Y(ly),this.portableBackend$=new ie(null),this.portableAuthUser$=new ie(null),this.user$=new ie(null),this.userOptions$=new ie(null),this.userContacts$=new ie(null),this.userOrganization$=new ie(null),this.isPrivateCommentsEnabled$=new ie(!1),this.providedUser=new zi,this.portableRefreshTimer=null,this.portableToken=null,this.portableRefreshInFlightEpoch=null,this.portableRefreshFailures=0,this.portableRefreshFailuresPastExpiry=0,this.portableRefreshWarnedEpoch=null,this.portableVisibilityHandler=null,this.loggedInUserResolveRetryDelaysMs=[2e3,8e3,3e4],this.loggedInUserResolveRetryInFlightUserId=null,this.firebaseConfig$=new ie(null),this.advancedQueries$=new ie(null),this.planDetails$=new ie(null),this.signOutPreviousUser$=new ie(null),this.preSignOutFunctions=new Map,this.autoLoginCalled=!1,this.portableAutoLoginCalled=!1,this.portableAutoLoginInFlight=Promise.resolve(),this.portableSessionEpoch=0,this.portableLocalSessionEnds=0,this.portableSignOutOwnsEpochBump=!1,this.pendingPortableRestore=null,this.portableResumeUserId=null,this.portableStorageHandler=null,this.portableSessionIdentity=null,this.reportedPortableRefreshCodes=new Set,this.autoLoginRequired=!0,this.config=null,this.getPlanDetailsCalled=!1,this.portablePlanSeeded=!1,this.forceReLoggedIn=!1,this.lastLoggedInUserData=null,this.sessionReLoginCount=0,this.SESSION_RE_LOGIN_COUNT_LIMIT=10,this.sessionReLoginSubscription=null,this.onRetrySubscription=null,this.authProviderListenerGeneration=0,this.TOKEN_EXPIRED_ERROR_COUNT_LIMIT=3,this.tokenExpiredErrorCount=0,this.cachedActivityConfig=null,this.viewsService=null,this.crdtService=null,this.portableSavedSessionRaw=null,this.portableRenewalStopped=null,this.portableSessionStartedAt=0,this.portablePersistInFlight=Promise.resolve(),this.loggingService.log("%c[WB] Creating CLASS: AuthService","color: blue;"),this.serviceBook.observe(fT).subscribe(f=>{this.commentService=f??void 0}),this.serviceBook.observe(pT).subscribe(f=>{this.reactionService=f??void 0}),this.serviceBook.observe(gT).subscribe(f=>{this.areaService=f??void 0}),this.serviceBook.observe(TU).subscribe(f=>{this.activityService=f??void 0,f&&this.cachedActivityConfig&&f.setActivityFeatureConfig(this.cachedActivityConfig)}),this.serviceBook.observe(yU).subscribe(f=>{this.viewsService=f??null}),this.serviceBook.observe(IU).subscribe(f=>{this.crdtService=f??null});try{try{let f=this.configService.getAuthProxyHost();if(f){let g=this.afAuth?.config;g&&(g.apiHost=f,g.tokenApiHost=f)}}catch{}this.analyticsService.setAuthService(this),this.configService.getConfig$().subscribe(f=>{this.config=f}),this.forceReLoggedIn=localStorage.getItem(F.LOCAL_STORAGE.VELT_USER_FORCE_RE_LOGGED_IN)==="true",this.sessionReLoginSubscription=hd(this.afAuth).pipe(Qa(this.afAuth.currentUser),Ya(),Mr(([f,g])=>this.domService.onNetworkStatusChange$().pipe(mn(E=>E),En(1),De(()=>({previousUser:f,currentUser:g}))))).subscribe(E=>y(this,[E],function*({previousUser:f,currentUser:g}){if(!g&&f){let I=f?.stsTokenManager?.expirationTime,S=new Date().getTime(),L=I-S;S>I&&(this.analyticsService.trackEvent(St.Events.Core.SDK_SESSION_TOKEN_EXPIRED,{apiKey:this.apiKey,user:this.getUserForTelemetry(this.user$.value??void 0),lastLoggedInUserData:this.lastLoggedInUserData?{user:this.getUserForTelemetry(this.lastLoggedInUserData.user),autoLogin:this.lastLoggedInUserData.autoLogin,hasAuthToken:!!this.lastLoggedInUserData.userOptions?.authToken}:null,timeLeft:L,forceReset:this.userOptions$.value?.forceReset,sessionReLoginCount:this.sessionReLoginCount},!0,this.user$.value?.userSnippylyId),this.user$.value&&f?.uid===this.user$.value?.userSnippylyId&&this.lastLoggedInUserData?.user?.userSnippylyId===this.user$.value?.userSnippylyId&&(this.sessionReLoginCount>this.SESSION_RE_LOGIN_COUNT_LIMIT?(this.analyticsService.trackEvent(St.Events.Core.SDK_SESSION_RE_LOGIN_COUNT_EXCEEDED,{apiKey:this.apiKey,clientUserId:this.lastLoggedInUserData.user.userId,snippylyUserId:this.lastLoggedInUserData.user.userSnippylyId,timeLeft:L,forceReset:this.userOptions$.value?.forceReset,sessionReLoginCount:this.sessionReLoginCount},!0,this.user$.value?.userSnippylyId),this.sessionReLoginSubscription?.unsubscribe()):(this.sessionReLoginCount++,this.analyticsService.trackEvent(St.Events.Core.SDK_SESSION_RE_LOGIN_TRIGGERED,{apiKey:this.apiKey,clientUserId:this.lastLoggedInUserData.user.userId,snippylyUserId:this.lastLoggedInUserData.user.userSnippylyId,user:this.getUserForTelemetry(this.lastLoggedInUserData.user),timeLeft:L,forceReset:this.userOptions$.value?.forceReset,sessionReLoginCount:this.sessionReLoginCount},!0,this.lastLoggedInUserData.user.userSnippylyId),this.lastLoggedInUserData.user=yield this.updateUserWithColorAndTextColor(this.lastLoggedInUserData.user),this.initializeClient(this.lastLoggedInUserData.user,this.lastLoggedInUserData.userOptions,this.lastLoggedInUserData.initializeClientToken,this.lastLoggedInUserData.autoLogin,"internal-sessionReLogin"))))}}),f=>{this.loggingService.catch("Error in AuthService sessionReLoginSubscription: ",f)}),this.getUser$().pipe(yo(cp)).subscribe(f=>{let g=_R(f);this.coreActionsService.triggerAction(Wi.USER_UPDATE,g),this.coreActionsService.triggerAction(Wi.INIT_UPDATE,{event:Wi.USER_UPDATE,payload:{user:g}})})}catch(f){this.loggingService.catch("Error in AuthService constructor: ",f)}}setApiKey(r,i){this.loggingService.log("%c[WB] Calling FUNCTION: setApiKey","color: green;",r);try{if(this.apiKey){this.loggingService.log("API key is already set");return}this.apiKey=r,this.configService.setApiKey(this.apiKey),i||(i=new yT),this.configService.initConfig(i);let o=this.configService.getProxyConfig();if(o?.authHost)try{let s=this.afAuth?.config;s&&(s.apiHost=o.authHost,s.tokenApiHost=o.authHost)}catch(s){this.loggingService.catch("Error setting auth proxy config: ",s)}else try{let s=this.afAuth?.config;s&&s.apiHost!=="identitytoolkit.googleapis.com"&&(s.apiHost="identitytoolkit.googleapis.com",s.tokenApiHost="securetoken.googleapis.com")}catch(s){this.loggingService.catch("Error resetting auth proxy config: ",s)}i.debugMode?sessionStorage.setItem("debugMode","true"):sessionStorage.removeItem("debugMode"),this.autoLoginCalled||hd(this.afAuth).pipe(En(1)).subscribe(s=>y(this,null,function*(){if(this.autoLoginCalled=!0,s){let a=yield Np(s,!0).catch(c=>null);if(a){let{user:c}=a?.claims;this.autoLoginRequired&&(c=yield this.updateUserWithColorAndTextColor(c),this.initializeClient(c,this.buildAutoLoginOptions(),new Date().getTime(),!0,"internal-autoLogin"))}}})),!this.portableAutoLoginCalled&&this.configService.getEnablePortableBackend()===!0&&(this.portableAutoLoginCalled=!0,this.portableAutoLoginInFlight=this.autoLoginPortableSession())}catch(o){this.loggingService.catch("Error in setApiKey: ",o)}}setUsersService(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setUsersService","color: green;"),this.usersService=r}catch(i){this.loggingService.catch("Error in setUsersService: ",i)}}setUserPermissionService(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setUserPermissionService","color: green;"),this.userPermissionService=r}catch(i){this.loggingService.catch("Error in setUserPermissionService: ",i)}}setDocService(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setDocService","color: green;"),this.docService=r}catch(i){this.loggingService.catch("Error in setDocService: ",i)}}setContactService(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setContactService","color: green;"),this.contactService=r}catch(i){this.loggingService.catch("Error in setContactService: ",i)}}setIamService(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setIamService","color: green;"),this.iamService=r}catch(i){this.loggingService.catch("Error in setIamService: ",i)}}setCommentService(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setCommentService","color: green;"),this.commentService=r}catch(i){this.loggingService.catch("Error in setCommentService: ",i)}}setCommonDbService(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setCommonDbService","color: green;"),this.commonDbService=r}catch(i){this.loggingService.catch("Error in setCommonDbService: ",i)}}validateOrganizationId(r){if(this.isVersionGreaterThanOrEqualTo4()&&!r?.organizationId)if(this.analyticsService.trackEvent(St.Events.Core.SDK_VALIDATE_CLIENT_FAILED,{apiKey:this.apiKey,clientUserId:r.userId,snippylyUserId:r.userSnippylyId,message:"Organization Id is not set",forceReset:this.userOptions$.value?.forceReset,user:this.getUserForTelemetry(r)},!0,r.userSnippylyId),this.configService.getSF())this.loggingService.catch("OrganizationId is not set in Identify method",void 0,void 0,!0);else throw new Error("OrganizationId is not set in Identify method")}setVeltAuthProvider(r){return y(this,null,function*(){this.loggingService.log("%c[WB] Calling FUNCTION: setVeltAuthProvider","color: green;");try{this.onRetrySubscription?.unsubscribe(),this.authProviderListenerGeneration++;let i=null;if(!r.user)return null;r.generateToken&&typeof r.generateToken=="function"&&(i=yield r.generateToken());let o=yield ER(()=>window.Velt.identify(r.user,B(B({},r.options||{}),i&&{authToken:i}),{fromProvider:!0}).catch(s=>(r.onError&&typeof r.onError=="function"&&r.onError(s),Promise.reject(s))),r.retryConfig||{retryCount:0,retryDelay:0});return o&&r.generateToken&&typeof r.generateToken=="function"&&(this.onRetrySubscription=this.coreActionsService.onAction(Wi.ERROR).pipe(mn(s=>s.code==="token_expired"),En(10)).subscribe(s=>y(this,null,function*(){if(s.code==="token_expired"){let a=this.authProviderListenerGeneration,c=()=>a===this.authProviderListenerGeneration,l=this.docService?.getDocumentIds()?.map(I=>({id:I.clientDocumentId}))??[],d=this.docService?.getOptionsFromDocumentPaths()??void 0,h=[],f=this.docService?.getLocation();f&&h.push(f.location);let g=this.docService?.getLocations();if(g&&Object.values(g).forEach(I=>{h.push(I.location)}),(yield ER(()=>y(this,null,function*(){try{let I=yield r.generateToken?.();return c()&&I?window.Velt.identify(r.user,B(B({},r.options||{}),I&&{authToken:I}),{fromProvider:!0}):!0}catch{return!1}}),r.retryConfig||{retryCount:0,retryDelay:0}))&&c()){let I=this.docService?.getDocumentIds()?.map(V=>V.clientDocumentId)??[];D2(l.map(V=>V.id),I)&&(yield this.docService?.setDocuments({documents:l,options:d,source:"internal"}));let S=[],L=this.docService?.getLocation();L?.location?.id&&S.push(L.location.id),Object.values(this.docService?.getLocations()??{}).forEach(V=>{V?.location?.id&&S.push(V.location.id)}),D2(h.map(V=>V?.id).filter(Boolean),S)&&(yield this.docService?.setLocations({locations:h,source:"internal",options:{appendLocation:!f}}))}}}))),o}catch(i){return this.loggingService.catch("Error in setVeltAuthProvider: ",i),null}})}setUserToStorage(r){return y(this,null,function*(){try{if(r){let i=yield wT(r,r?.userId??"");localStorage.setItem(F.LOCAL_STORAGE.VELT_IDENTIFY_USER,i)}}catch(i){this.loggingService.catch("Error in setUserToStorage: ",i)}})}getUserFromStorage(r){return y(this,null,function*(){try{let i=localStorage.getItem(F.LOCAL_STORAGE.VELT_IDENTIFY_USER);return i?yield sp(i,r?.userId??""):null}catch(i){return this.loggingService.catch("Error in getUserFromStorage: ",i),null}})}setIsPrivateCommentsEnabled(r){try{this.isPrivateCommentsEnabled$.next(r)}catch(i){this.loggingService.catch("Error in setIsPrivateCommentsEnabled: ",i)}}getIsPrivateCommentsEnabled(){return this.isPrivateCommentsEnabled$.value}getIsPrivateCommentsEnabled$(){return this.isPrivateCommentsEnabled$.asObservable()}updateUserWithColorAndTextColor(r){return y(this,null,function*(){try{let i=JSON.parse(JSON.stringify(r??{})),o=yield this.getUserFromStorage(i);return!o||Object.keys(o).length===0?(delete i?.color,delete i?.textColor,i):(o?.color&&(i.color=o?.color),o?.textColor&&(i.textColor=o?.textColor),i)}catch(i){return this.loggingService.catch("Error in updateUserWithColorAndTextColor: ",i),r}})}updateUserIfRequired(r){return y(this,null,function*(){this.loggingService.log("%c[WB] Calling FUNCTION: updateUserIfRequired","color: green;");try{let i=yield this.getUserFromStorage(r),o={};r.color&&r.color!==i?.color&&(o.color=r.color),r.textColor&&r.textColor!==i?.textColor&&(o.textColor=r.textColor),Object.keys(o).length>0&&r.clientOrganizationId&&this.docService?.addUserInfoToOrganization({organizationId:r.clientOrganizationId,user:Ee(B({},o),{userId:r.userId})})}catch(i){this.loggingService.catch("Error in updateUserIfRequired: ",i)}})}initializeClient(r,i,o,s,a){return y(this,null,function*(){try{if(this.autoLoginRequired=!1,this.portableResumeUserId=null,this.userOptions$.next(i),this.initializeClientToken)this.pendingUserLogin=r,this.pendingUserLoginSource=a;else{r.userSnippylyId=PV(this.configService.getApiKey(),r.userId),this.pendingUserLogin=void 0,this.pendingUserLoginSource=void 0,this.initializeClientToken=o;let c=this.portableSessionEpoch,l=this.portableLocalSessionEnds,d=yield hd(this.afAuth).pipe(En(1)).toPromise().catch(E=>null),h=!0;this.providedUser=JSON.parse(JSON.stringify(r));let f=!d&&s?this.takePendingPortableRestore(r,i):null,g=f?.envelope??null;if(g){if(this.loggingService.log("%c[WB] Calling FUNCTION: restorePortableSession","color: green;"),this.validateOrganizationId(r),!(yield this.applyIdentifyResponse(r,g.res,s)))return;h=!1,this.trackAutoAuthSuccess(r,a)}else if(!d&&s&&a==="internal-autoLogin"&&this.configService?.getEnablePortableBackend()===!0)return f?.resume?(Wn("session.resume-skipped",f.overtaken?"overtaken":"not restorable"),this.loggingService.log("Velt [portable backend]: not following the session another page saved; waiting for identify().")):f?.overtaken?(Wn("session.restore-discarded"),this.loggingService.log("Velt [portable backend]: discarding a reload restore that a sign-out or a new identify overtook."),this.clearPersistedPortableSessionIfUnchanged(f.raw)):(this.loggingService.log("Velt [portable backend]: nothing restorable on reload; waiting for identify()."),this.clearPersistedPortableSession()),this.initializeClientToken=0,this.checkForPendingLogin(),null;if(d){let E=yield Np(d,!0).catch(V=>null);if(!E)return;let{user:I,firebaseConfig:S,advancedQueries:L}=E.claims;d?.uid!==r?.userSnippylyId||r?.groupId!==I?.groupId||r?.organizationId!==I?.organizationId||i?.forceReset||!s&&r?.organizationId&&!this.forceReLoggedIn||this.forceReLoginRequiredForAdvancedQueries(r)||this.forceReLoginRequiredForRegion(r,S)||this.forceReLoginRequiredForCommentViews(r)?(localStorage.setItem(F.LOCAL_STORAGE.VELT_USER_FORCE_RE_LOGGED_IN,"true"),localStorage.setItem(F.LOCAL_STORAGE.VELT_COMMENT_VIEWS_MIGRATED,"true"),this.forceReLoggedIn=!0,yield this.signOutUser("internal"),c=this.portableSessionEpoch,l=this.portableLocalSessionEnds):(this.loggingService.log("%c[WB] Calling FUNCTION: reinitializeCurrentUser","color: green;"),this.loggingService.log("Keeping user"),yield this.updateUserIfRequired(r),this.validateOrganizationId(r),this.setFirebaseConfig(S),this.setAdvancedQueries(L),I&&(this.providedUser.isAdmin=!!I.isAdmin),this.initializeSignedInUser(d,s,r),h=!1,this.trackAutoAuthSuccess(r,a))}else if(h&&c===this.portableSessionEpoch&&this.isPortableIdentityChange(r,i)){let E=this.signOutUser("internal");c=this.portableSessionEpoch,l=this.portableLocalSessionEnds,yield E}if(h){this.analyticsService.trackEvent(St.Events.Core.SDK_VALIDATE_CLIENT_TRIGGERED,{apiKey:this.apiKey,clientUserId:r.userId,snippylyUserId:r.userSnippylyId,forceReset:this.userOptions$.value?.forceReset,user:this.getUserForTelemetry(r),source:a},!0,r.userSnippylyId,r.userId);let E=yield this.requestIdentify(r,i?.authToken);if(E.error){if(this.analyticsService.trackEvent(St.Events.Core.SDK_VALIDATE_CLIENT_FAILED,Ee(B({apiKey:this.apiKey,clientUserId:r.userId,snippylyUserId:r.userSnippylyId,message:E.error,forceReset:this.userOptions$.value?.forceReset,user:this.getUserForTelemetry(r)},E),{source:a}),!0,r.userSnippylyId,r.userId),E.error&&typeof E.error=="string")if(this.isTokenExpiredIdentifyError(E))this.emitIdentifyTokenExpiredError(E,r,a);else{let S=E;this.coreActionsService.triggerAction(Wi.ERROR,S)}throw E}else this.tokenExpiredErrorCount=0;if(this.shouldHandlePortableBackend(E)&&this.isPortableIdentifyOvertaken(c,l,s))return this.loggingService.log("Velt [portable backend]: discarding an identify response that a sign-out overtook."),this.initializeClientToken=0,this.checkForPendingLogin(),null;if(this.shouldHandlePortableBackend(E)&&c!==this.portableSessionEpoch&&(this.autoLoginRequired=!1,this.portableResumeUserId=null),this.analyticsService.trackEvent(St.Events.Core.SDK_VALIDATE_CLIENT_SUCCESS,{apiKey:this.apiKey,clientUserId:r.userId,snippylyUserId:r.userSnippylyId,forceReset:this.userOptions$.value?.forceReset,user:this.getUserForTelemetry(r),source:a},!0,r.userSnippylyId,r.userId),this.validateOrganizationId(r),!(yield this.applyIdentifyResponse(r,E,s)))return}this.initializeClientToken=0,this.lastLoggedInUserData={user:r,userOptions:i,initializeClientToken:o,autoLogin:s},this.checkForPendingLogin()}return r}catch(c){return this.initializeClientToken=0,this.checkForPendingLogin(),this.loggingService.catch("Error in initializeClient: ",c),i?.throwError?Promise.reject(c):Promise.resolve(null)}})}isPortableIdentifyOvertaken(r,i,o){let s=this.portableSessionEpoch-r;return o?s!==0:s!==this.portableLocalSessionEnds-i}isPortableIdentityChange(r,i){try{if(!this.portableAuthUser$.value)return!1;let o=this.portableSessionIdentity?.user??this.user$.value;return o?o.userSnippylyId!==r?.userSnippylyId||r?.groupId!==o.groupId||r?.organizationId!==o.organizationId||!!i?.forceReset:!1}catch(o){return this.loggingService.catch("Error in isPortableIdentityChange: ",o),!1}}isVersionGreaterThanOrEqualTo4(){try{let r=xc();return(r?parseInt(r.split(".")?.[0]||"0"):0)>=4}catch(r){return this.loggingService.catch("Error in isVersionGreaterThanOrEqualTo4: ",r),!1}}isVersion4Point5(){try{let r=xc();if(r){let i=r.split("."),o=parseInt(i[0]||"0"),s=parseInt(i[1]||"0"),a=parseInt(i[2]||"0");if(o>=4&&s>=5)return o===4&&s===5&&a===0?!r.toLowerCase().includes("beta"):!0}return!1}catch(r){return this.loggingService.catch("Error in isVersion4Point5: ",r),!1}}forceReLoginRequiredForAdvancedQueries(r){try{let i=this.isVersionGreaterThanOrEqualTo4(),o=!1;try{let s=localStorage.getItem(F.LOCAL_STORAGE.VELT_ADVANCED_QUERIES);s&&(o=JSON.parse(s)?.advancedQueriesEnabled)}catch(s){this.loggingService.catch("Error in forceReLoginRequiredForAdvancedQueries: ",s)}return!!(i&&r.organizationId&&!o)}catch(i){return this.loggingService.catch("Error in forceReLoginRequiredForAdvancedQueries: ",i),!1}}forceReLoginRequiredForCommentViews(r){try{let i=this.isVersion4Point5(),o=!1;try{let s=localStorage.getItem(F.LOCAL_STORAGE.VELT_COMMENT_VIEWS_MIGRATED);s&&(o=JSON.parse(s))}catch(s){this.loggingService.catch("Error in forceReLoginRequiredForCommentViews: ",s)}return!!(i&&r.organizationId&&!o)}catch(i){return this.loggingService.catch("Error in forceReLoginRequiredForCommentViews: ",i),!1}}forceReLoginRequiredForRegion(r,i){try{return!!(this.isVersionGreaterThanOrEqualTo4()&&r.organizationId&&!i?.region)}catch(o){return this.loggingService.catch("Error in forceReLoginRequiredForRegion: ",o),!1}}checkForPendingLogin(){this.pendingUserLogin&&this.initializeClient(this.pendingUserLogin,this.userOptions$?.value||{},new Date().getTime(),void 0,this.pendingUserLoginSource)}setFirebaseConfig(r){this.loggingService.log("%c[WB] Calling FUNCTION: setFirebaseConfig","color: green;");try{this.firebaseConfig$.value||this.firebaseConfig$.next({firebaseOptions:B(B({},this.endpointsService.getFirebaseConfig()),r)})}catch(i){this.loggingService.catch("Error in setFirebaseConfig: ",i)}}requestIdentify(r,i){return y(this,null,function*(){let o=xc();this.usersService?.userResolverConfigured?.()&&(r=IR(r));let s=this.endpointsService.getPortableIdentifyUrl();return s?FG({url:s,apiKey:this.apiKey,user:r,version:o,authToken:i}):(yield pd(this.functions,od({url:this.endpointsService.getCloudFunctionUrl("validateClient"),apiProxyDomain:this.configService?.getApiProxyDomain()}),{timeout:1200*1e3})({apiKey:this.apiKey,user:r,version:o,authToken:i}))?.data})}requestPortableRefresh(r){return y(this,null,function*(){let i=this.endpointsService.getPortableIdentifyUrl();if(!i||Pc(i)){let o="the portable identify URL is not configured; the renewal credential was not sent";return{error:o,code:"network_error",message:o,source:"identify"}}return BG({url:VG(i,"refresh"),apiKey:this.apiKey,refreshToken:r,timeoutMs:xG()})})}reportPortableRefreshMisconfigured(r){try{let i=String(r?.code??"unknown");if(this.reportedPortableRefreshCodes.has(i))return;if(this.reportedPortableRefreshCodes.add(i),i===e.PORTABLE_NO_CREDENTIAL_ENVELOPE.code){console.error("Velt [portable backend]: this session has no renewal credential for the configured gateway (the identify answer carried no refreshToken, or selfHosted.portableBackendUrl changed after sign-in), so it cannot be renewed: it is signed out and the app must identify() again. Every identify answer from portable-v0.1.6 or later carries one.");return}let o=r?.message?` (${r.message})`:"";console.error(i==="invalid-argument"?`Velt [portable backend]: the gateway rejected the session renewal as malformed: invalid-argument${o}. The SDK and gateway versions disagree on /identify/refresh; renewal is stopped for this session.`:`Velt [portable backend]: the gateway refused the session renewal: ${i}${o}. A deployment setting is wrong (the allowed origins, or the identify configuration for this API key). Renewal is stopped for this session; after the setting is fixed, a reload renews from the saved session.`)}catch{}}emitIdentifyTokenExpiredError(r,i,o){if(this.tokenExpiredErrorCount++,this.tokenExpiredErrorCount<=this.TOKEN_EXPIRED_ERROR_COUNT_LIMIT){let s={code:"token_expired",message:"Token expired",error:r?.error,source:r?.source};this.coreActionsService.triggerAction(Wi.ERROR,s)}else{let s={code:"too_many_retries",message:"Token expired. Too many retries.",error:r?.error,source:r?.source};this.coreActionsService.triggerAction(Wi.ERROR,s),this.analyticsService.trackEvent(St.Events.Core.SDK_JWT_EXPIRED_RETRY_EXCEEDED,{apiKey:this.apiKey,clientUserId:i.userId,snippylyUserId:i.userSnippylyId,forceReset:this.userOptions$.value?.forceReset,source:o},!0,i.userSnippylyId,i.userId)}}isTokenExpiredIdentifyError(r){try{return r?.code==="token_expired"||!!r?.error?.toLowerCase?.()?.includes("token expired")}catch{return!1}}shouldHandlePortableBackend(r){try{return this.configService?.getEnablePortableBackend()===!0&&XG(r)}catch(i){return this.loggingService.catch("Error in shouldHandlePortableBackend: ",i),!1}}applyIdentifyResponse(r,i,o){return y(this,null,function*(){if(this.shouldHandlePortableBackend(i)){this.portableSessionEpoch++;let s=this.portableSessionEpoch,a=Xc(i),c=a?this.endpointsService.getPortableIdentifyUrl()??void 0:void 0;if(this.portableSessionIdentity=B({user:r,epoch:s},a?{refreshToken:a,refreshTokenIssuer:c}:{}),this.portableSessionStartedAt=Date.now(),this.handlePortableBackendResponse(i),this.planDetails$.value||(this.getPlanDetailsCalled=!0,this.portablePlanSeeded=!0,this.planDetails$.next({planInfo:null,isPlanExpired:!1})),yield this.applyPortableProjectConfig(i),s!==this.portableSessionEpoch)return Wn("session.adopt-discarded"),this.loggingService.log("Velt [portable backend]: discarding a portable sign-in that a sign-out or a new identify overtook."),!0;this.initializePortableSignedInUser(r,i)}else if(i.firebaseConfig){this.clearPortableBackendState(),this.setFirebaseConfig(i.firebaseConfig),yield this.signInWithCustomToken(r,i.token),this.loggingService.log("new signed in user",this.afAuth.currentUser);let s=yield Np(this.afAuth.currentUser,!0).catch(l=>null);if(!s)return!1;let{user:a,advancedQueries:c}=s.claims;this.setAdvancedQueries(c),this.providedUser.isAdmin=!!a?.isAdmin,this.initializeSignedInUser(this.afAuth.currentUser,o,r)}return!0})}applyPortableProjectConfig(r){return y(this,null,function*(){try{let i=yield KG({apiEndpoint:r?.apiEndpoint,token:r?.token});if(!i)return;this.setIsPrivateCommentsEnabled(i.isPrivateCommentsEnabled);let o=i.activityConfig??{immutable:!1,isEnabled:!1};this.cachedActivityConfig=o,this.activityService?.setActivityFeatureConfig(o)}catch(i){this.loggingService.catch("Error in applyPortableProjectConfig: ",i)}})}handlePortableBackendResponse(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: handlePortableBackendResponse","color: green;"),this.portableBackend$.next({backend:r?.backend,wsEndpoint:r?.wsEndpoint,apiEndpoint:r?.apiEndpoint}),QG({backend:r?.backend,token:r?.token??null,wsEndpoint:r?.wsEndpoint,apiEndpoint:r?.apiEndpoint}),this.schedulePortableTokenRefresh(r?.token??null)}catch(i){this.loggingService.catch("Error in handlePortableBackendResponse: ",i)}}schedulePortableTokenRefresh(r){try{if(this.clearPortableTokenRefresh(),this.portableToken=r,!r)return;this.portableRefreshFailures=0,this.portableRefreshFailuresPastExpiry=0;let i=$G(wp(r),Date.now());if(i!==null?this.armPortableRefreshTimer(i,"expiry"):this.loggingService.log("Velt [portable backend]: no proactive token refresh scheduled (token expiry unreadable or already past)."),typeof document<"u"&&typeof document.addEventListener=="function"){this.portableVisibilityHandler=o=>{try{let s=wN(this.portableToken,Date.now());if(Wn(`page.${o?.type??"lifecycle"}`,`visibility=${typeof document<"u"?document.visibilityState:"?"} credentialExpired=${s}`),o?.type==="pageshow"&&o.persisted===!1)return;s?this.refreshPortableToken("focus"):this.checkPortableSessionAgainstStorage(`page.${o?.type??"lifecycle"}`),ZG()}catch{}};for(let o of e.PORTABLE_DOCUMENT_LIFECYCLE_EVENTS)document.addEventListener(o,this.portableVisibilityHandler);typeof window<"u"&&typeof window.addEventListener=="function"&&window.addEventListener("pageshow",this.portableVisibilityHandler)}this.armPortableStorageListener()}catch(i){this.loggingService.catch("Error scheduling portable token refresh: ",i)}}readStoredPortableSessionRaw(){try{return localStorage.getItem(F.LOCAL_STORAGE.VELT_PORTABLE_SESSION)}catch{return}}readPortableSavedSession(r){return y(this,null,function*(){try{let i;try{i=localStorage.getItem(F.LOCAL_STORAGE.VELT_PORTABLE_SESSION)}catch{return{verdict:"persist"}}if(!i){let a=this.readPortableSignOutAt();return{verdict:a!==null&&a>=this.portableSessionStartedAt?"stop":"persist"}}if(i===this.portableSavedSessionRaw)return{verdict:"persist"};let o=null;try{o=yield sp(i,this.apiKey??"")}catch{o=null}return o?.v!==1||o?.apiKey!==this.apiKey||!o?.user?.userId?{verdict:"renew-only"}:o.user.userId!==r?{verdict:"stop"}:{verdict:"persist",sharedRefreshToken:(o?.portableBackendUrl??null)===(this.configService?.getSelfHostedConfig?.()?.portableBackendUrl??null)?Xc(o?.res):void 0}}catch(i){return this.loggingService.catch("Error in AuthService readPortableSavedSession: ",i),{verdict:"persist"}}})}recordPortableSignOut(){try{if(!this.apiKey)return;let r={};try{let i=JSON.parse(localStorage.getItem(F.LOCAL_STORAGE.VELT_PORTABLE_SIGNED_OUT)??"{}");i&&typeof i=="object"&&!Array.isArray(i)&&(r=i)}catch{r={}}r[this.apiKey]=Date.now(),localStorage.setItem(F.LOCAL_STORAGE.VELT_PORTABLE_SIGNED_OUT,JSON.stringify(r))}catch{}}armPortableRefreshTimer(r,i){this.cancelPortableRefreshTimer(),this.portableRefreshTimer=setTimeout(()=>this.refreshPortableToken(i),r)}cancelPortableRefreshTimer(){this.portableRefreshTimer&&(clearTimeout(this.portableRefreshTimer),this.portableRefreshTimer=null)}readPortableSignOutAt(){try{let r=JSON.parse(localStorage.getItem(F.LOCAL_STORAGE.VELT_PORTABLE_SIGNED_OUT)??"null"),i=r&&this.apiKey?r[this.apiKey]:void 0;return typeof i=="number"&&Number.isFinite(i)?i:null}catch{return null}}clearPortableTokenRefresh(){try{if(this.cancelPortableRefreshTimer(),this.portableVisibilityHandler&&typeof document<"u")for(let r of e.PORTABLE_DOCUMENT_LIFECYCLE_EVENTS)document.removeEventListener(r,this.portableVisibilityHandler);this.portableVisibilityHandler&&typeof window<"u"&&typeof window.removeEventListener=="function"&&window.removeEventListener("pageshow",this.portableVisibilityHandler),this.portableVisibilityHandler=null,this.portableStorageHandler&&typeof window<"u"&&typeof window.removeEventListener=="function"&&window.removeEventListener("storage",this.portableStorageHandler),this.portableStorageHandler=null}catch{}}refreshPortableToken(r){return y(this,null,function*(){let i=this.portableSessionEpoch;if(this.portableRefreshInFlightEpoch!==i){this.portableRefreshInFlightEpoch=i;try{let o=this.portableSessionIdentity,s=o?.user;if(!o||o.epoch!==i||!s?.userId||!this.portableBackend$.value)return;if(this.portableRenewalStopped?.epoch===i){Wn("credential.refresh-skipped",`${this.portableRenewalStopped.reason}; waiting for identify()`);return}let a=yield this.readPortableSavedSession(s.userId);if(i!==this.portableSessionEpoch)return;if(a.verdict==="stop"){this.endPortableSessionFromAnotherPage(s,`refresh:${r}`);return}let c=a.sharedRefreshToken,l=this.endpointsService.getPortableIdentifyUrl()??void 0;c&&l&&this.portableSessionIdentity&&c!==this.portableSessionIdentity.refreshToken&&(Wn("credential.shared-adopted"),this.portableSessionIdentity=Ee(B({},this.portableSessionIdentity),{refreshToken:c,refreshTokenIssuer:l}));let d=this.portableSessionIdentity??o,h=d.refreshToken&&d.refreshTokenIssuer===l?d.refreshToken:void 0;if(!h){this.reportPortableRefreshMisconfigured(e.PORTABLE_NO_CREDENTIAL_ENVELOPE),this.endPortableSessionForDeadCredential(s,e.PORTABLE_NO_CREDENTIAL_ENVELOPE,r);return}this.loggingService.log(`Velt [portable backend]: refreshing the gateway credential (${r}).`),Wn("credential.refresh-requested",`reason=${r} via=refresh`);let f=yield this.requestPortableRefresh(h);if(i!==this.portableSessionEpoch){Wn("credential.refresh-discarded",`reason=${r}`),this.loggingService.log("Velt [portable backend]: discarding a credential refresh that a sign-out or a new identify overtook.");return}if(!this.shouldHandlePortableBackend(f)||!f?.token){if(f?.code===RN){this.endPortableSessionForDeadCredential(s,f,r);return}if(NN.has(f?.code)){Wn("credential.refresh-misconfigured",`code=${f?.code}`),this.portableRenewalStopped={epoch:i,reason:`renewal refused: ${f?.code}`},this.cancelPortableRefreshTimer(),this.reportPortableRefreshMisconfigured(f);return}this.portableRefreshFailures++,this.portableRefreshFailures>=e.PORTABLE_REFRESH_WARN_AFTER_FAILURES&&this.reportPortableRefreshFailing(f,i);let S=Date.now();wN(this.portableToken,S)&&this.portableRefreshFailuresPastExpiry++,this.armPortableRefreshTimer(WG(wp(this.portableToken),S,this.portableRefreshFailuresPastExpiry),r);return}let g=this.readStoredPortableSessionRaw(),E=yield this.readPortableSavedSession(s.userId);if(i!==this.portableSessionEpoch){Wn("credential.refresh-discarded",`reason=${r}`);return}if(E.verdict==="stop"){this.endPortableSessionFromAnotherPage(s,`refresh-answered:${r}`);return}Wn("credential.refreshed"),this.handlePortableBackendResponse(f);let I=Xc(f)??h;this.portableSessionIdentity?.epoch===i&&(this.portableSessionIdentity=Ee(B({},this.portableSessionIdentity),{refreshToken:I,refreshTokenIssuer:l})),E.verdict==="persist"&&this.persistPortableSession(s,Ee(B({},f),{refreshToken:I}),{expectStoredRaw:g})}catch(o){this.loggingService.catch("Error refreshing portable token: ",o)}finally{this.portableRefreshInFlightEpoch===i&&(this.portableRefreshInFlightEpoch=null)}}})}reportPortableRefreshFailing(r,i){try{if(this.portableRefreshWarnedEpoch===i)return;this.portableRefreshWarnedEpoch=i,console.warn(`Velt [portable backend]: could not renew the gateway credential (${this.portableRefreshFailures} attempts in a row${r?.code?`, last: ${r.code}`:""}). The SDK keeps retrying \u2014 every 30 s while the current token is valid; once it has expired, after 30 s, doubling up to every 16 minutes, and each time the page becomes active again \u2014 and the realtime session is unavailable from the moment the token expires until a renewal succeeds. Check that the gateway's /identify/refresh endpoint is reachable and the API key is enabled.`)}catch{}}endPortableSessionForDeadCredential(r,i,o){Wn("credential.refresh-credential-invalid",`reason=${o}`),this.portableSavedSessionRaw&&this.clearPersistedPortableSessionIfUnchanged(this.portableSavedSessionRaw),this.endPortableSessionLocally(r),this.emitIdentifyTokenExpiredError(i,r,"internal-portableRefresh")}endPortableSessionFromAnotherPage(r,i){Wn("session.ended-elsewhere",i),this.loggingService.log("Velt [portable backend]: another page signed out or signed in another user; this page's session ends too."),this.endPortableSessionLocally(r)}checkPortableSessionAgainstStorage(r){return y(this,null,function*(){try{let i=this.portableSessionEpoch,o=this.portableSessionIdentity;if(!o||o.epoch!==i||!o.user?.userId)return;let{verdict:s}=yield this.readPortableSavedSession(o.user.userId);s==="stop"&&i===this.portableSessionEpoch&&this.endPortableSessionFromAnotherPage(o.user,r)}catch(i){this.loggingService.catch("Error checking the portable session against storage: ",i)}})}armPortableStorageListener(){try{if(this.portableStorageHandler||typeof window>"u"||typeof window.addEventListener!="function")return;this.portableStorageHandler=r=>{try{let i=r?.key;if(i!==null&&i!==F.LOCAL_STORAGE.VELT_PORTABLE_SESSION&&i!==F.LOCAL_STORAGE.VELT_PORTABLE_SIGNED_OUT)return;this.portableSessionIdentity?this.checkPortableSessionAgainstStorage("storage"):this.portableResumeUserId&&this.resumePortableSessionFromAnotherPage()}catch{}},window.addEventListener("storage",this.portableStorageHandler)}catch(r){this.loggingService.catch("Error arming the portable storage listener: ",r)}}resumePortableSessionFromAnotherPage(){let r=this.portableResumeUserId;!r||this.portableSessionIdentity||this.initializeClientToken||!this.autoLoginRequired||this.configService?.getEnablePortableBackend()!==!0||(this.portableAutoLoginInFlight=this.portableAutoLoginInFlight.then(()=>this.autoLoginPortableSession({onlyUserId:r})).catch(()=>{}))}initializePortableSignedInUser(r,i){try{if(this.loggingService.log("%c[WB] Calling FUNCTION: initializePortableSignedInUser","color: green;"),!i?.token){this.portableAuthUser$.value&&(this.resetServicesCache(),this.user$.next(null),this.clearPortableBackendState());return}let o=new zi;o.type="signedIn",o=B(B({},o),r),o.color=o.color||this.getUserAvatarColor(o.userId),o.textColor=o.textColor||this.getUserTextColor(o.userId),o.initial=o.initial||o.name?.charAt(0).toUpperCase()||o.email?.charAt(0).toUpperCase(),this.setUserToStorage(o),this.persistPortableSession(o,i);let s=Object.assign({},o);delete s.contacts,this.analyticsService.identifyUser(o.userSnippylyId,s,{forceReset:this.userOptions$.value?.forceReset}),this.user$.next(o),this.portableAuthUser$.next({uid:o.userSnippylyId})}catch(o){this.loggingService.catch("Error in initializePortableSignedInUser: ",o)}}clearPortableBackendState(){try{this.portableSignOutOwnsEpochBump||this.portableSessionEpoch++,this.releasePortableSession({clearStorage:!0})}catch(r){this.loggingService.catch("Error clearing portable backend state: ",r)}}releasePortableSession(r){this.portablePlanSeeded&&(this.portablePlanSeeded=!1,this.getPlanDetailsCalled=!1,this.planDetails$.next(null)),this.pendingPortableRestore=null,this.portableSessionIdentity=null,r.clearStorage&&(this.portableAutoLoginCalled||this.configService?.getEnablePortableBackend()===!0)&&this.clearPersistedPortableSession(),!(!this.portableBackend$.value&&!this.portableAuthUser$.value)&&(this.clearPortableTokenRefresh(),this.portableToken=null,this.portableRefreshFailures=0,this.portableRefreshFailuresPastExpiry=0,this.portableBackend$.next(null),this.portableAuthUser$.next(null),this.user$.next(null),JG())}endPortableSessionLocally(r){try{this.userPermissionService?.invalidateAllPermissionsState(),this.portableSessionEpoch++,this.portableLocalSessionEnds++,this.resetServicesCache(),this.user$.next(null),this.releasePortableSession({clearStorage:!1}),this.autoLoginRequired=!0,this.portableResumeUserId=r?.userId??null,this.armPortableStorageListener()}catch(i){this.loggingService.catch("Error ending the portable session: ",i)}}trackAutoAuthSuccess(r,i){this.analyticsService.trackEvent(St.Events.Core.SDK_USER_AUTH_SUCCESS,{apiKey:this.apiKey,clientUserId:r.userId,snippylyUserId:r.userSnippylyId,authType:"auto",forceReset:this.userOptions$.value?.forceReset,user:this.getUserForTelemetry(r),source:i})}buildAutoLoginOptions(){return this.userOptions$?.value?Ee(B({},this.userOptions$.value),{replaceContacts:!1,replaceGroupContacts:!1,replacePrivateContacts:!1}):{}}persistPortableSession(r,i,o){let s=this.portableSessionEpoch;return this.portablePersistInFlight=this.portablePersistInFlight.then(()=>this.writePortableSessionEnvelope(r,i,s,o?.expectStoredRaw)).catch(()=>{}),this.portablePersistInFlight}writePortableSessionEnvelope(r,i,o,s){return y(this,null,function*(){try{if(!i?.token||!r?.userId||!this.apiKey)return;let a=this.user$.value;if(a?.userSnippylyId&&r.userSnippylyId&&a.userSnippylyId!==r.userSnippylyId)return;let c=this.getUserWithoutContacts(r);if(!c)return;let l={v:1,apiKey:this.apiKey,portableBackendUrl:this.configService?.getSelfHostedConfig?.()?.portableBackendUrl??null,user:c,res:B({backend:i.backend,wsEndpoint:i.wsEndpoint,apiEndpoint:i.apiEndpoint,token:i.token},Xc(i)?{refreshToken:Xc(i)}:{})},d=yield wT(l,this.apiKey);if(o!==this.portableSessionEpoch){this.loggingService.log("Velt [portable backend]: dropping a session envelope write that a sign-out or a new identify overtook.");return}if(s!==void 0&&localStorage.getItem(F.LOCAL_STORAGE.VELT_PORTABLE_SESSION)!==s){this.loggingService.log("Velt [portable backend]: not re-persisting a refreshed credential \u2014 another page changed the saved session meanwhile.");return}let h=this.readPortableSignOutAt();if(h!==null&&h>this.portableSessionStartedAt){this.loggingService.log("Velt [portable backend]: not persisting the session \u2014 another page signed out after it began.");return}typeof d=="string"&&!d.startsWith("{")&&d!==JSON.stringify(l)&&(localStorage.setItem(F.LOCAL_STORAGE.VELT_PORTABLE_SESSION,d),this.portableSavedSessionRaw=d)}catch(a){this.loggingService.catch("Error in writePortableSessionEnvelope: ",a)}})}readPersistedPortableSession(){return y(this,null,function*(){try{let r=localStorage.getItem(F.LOCAL_STORAGE.VELT_PORTABLE_SESSION);if(!r)return null;let i=yield sp(r,this.apiKey??"");return i?i.v!==1||i.apiKey!==this.apiKey||!i.user?.userId||!i.res?.token?(this.clearPersistedPortableSession(),null):(this.portableSavedSessionRaw=r,{envelope:i,raw:r}):null}catch(r){return this.loggingService.catch("Error in readPersistedPortableSession: ",r),null}})}clearPersistedPortableSession(){this.portableSavedSessionRaw=null;try{localStorage.removeItem(F.LOCAL_STORAGE.VELT_PORTABLE_SESSION)}catch{}}clearPersistedPortableSessionIfUnchanged(r){try{r&&localStorage.getItem(F.LOCAL_STORAGE.VELT_PORTABLE_SESSION)===r&&this.clearPersistedPortableSession()}catch{}}isPortableTokenNearExpiry(r){let i=wp(r);return i===null||i-Date.now()<=3e4}isPortableRestoreConfigured(){try{let r=this.endpointsService?.getPortableIdentifyUrl?.();return this.configService?.getEnablePortableBackend()===!0&&!!r&&!Pc(r)}catch{return!1}}isRestorablePortableSession(r,i,o){try{if(!this.isPortableRestoreConfigured()||o?.forceReset||r.portableBackendUrl!==(this.configService?.getSelfHostedConfig?.()?.portableBackendUrl??null)||!zc(r.res?.apiEndpoint)||r.user?.userSnippylyId!==i?.userSnippylyId)return!1;let s=this.user$.value;return s?.userSnippylyId&&s.userSnippylyId!==r.user.userSnippylyId||this.isPortableTokenNearExpiry(r.res.token)?!1:this.shouldHandlePortableBackend(r.res)}catch(s){return this.loggingService.catch("Error in isRestorablePortableSession: ",s),!1}}takePendingPortableRestore(r,i){let o=this.pendingPortableRestore;if(this.pendingPortableRestore=null,!o)return null;let s=o.resume===!0;return o.epoch!==this.portableSessionEpoch?{envelope:null,overtaken:!0,raw:o.raw,resume:s}:{envelope:this.isRestorablePortableSession(o.envelope,r,i)?o.envelope:null,overtaken:!1,raw:o.raw,resume:s}}autoLoginPortableSession(r){return y(this,null,function*(){let i=this.portableSessionEpoch,o=()=>i!==this.portableSessionEpoch||!this.autoLoginRequired,s=!!r?.onlyUserId;try{let a=yield this.readPersistedPortableSession(),c=a?.envelope;if(!a||!c||o()||s&&c.user?.userId!==r?.onlyUserId)return;if(!this.isPortableRestoreConfigured()){s||this.clearPersistedPortableSession();return}if(c.portableBackendUrl!==(this.configService?.getSelfHostedConfig?.()?.portableBackendUrl??null)){s||(this.loggingService.log("Velt [portable backend]: the persisted session belongs to a different gateway; dropped."),this.clearPersistedPortableSession());return}let l=c;if(this.isPortableTokenNearExpiry(c.res.token)){let h=Xc(c.res);if(!h){this.loggingService.log("Velt [portable backend]: the persisted session has no renewal credential; waiting for identify()."),this.clearPersistedPortableSessionIfUnchanged(a.raw);return}Wn("credential.restore-renew","via=refresh");let f=yield this.requestPortableRefresh(h);if(o())return;if(!this.shouldHandlePortableBackend(f)||!f?.token){if(f?.code==="network_error"){this.loggingService.log("Velt [portable backend]: could not reach the gateway to renew the persisted session; keeping it for the next attempt.");return}if(NN.has(f?.code)&&this.reportPortableRefreshMisconfigured(f),f?.code!==RN){this.loggingService.log(`Velt [portable backend]: the persisted session's renewal was refused for now (${f?.code??"no code"}); keeping it for the next attempt.`);return}this.loggingService.log("Velt [portable backend]: the persisted session could not be renewed on reload; waiting for identify()."),this.clearPersistedPortableSessionIfUnchanged(a.raw);return}let g=Xc(f)??h;l=Ee(B({},c),{res:{backend:f.backend,wsEndpoint:f.wsEndpoint,apiEndpoint:f.apiEndpoint,token:f.token,refreshToken:g}})}if(o())return;this.pendingPortableRestore=B({envelope:l,epoch:i,raw:a.raw},s?{resume:!0}:{});let d=this.buildAutoLoginOptions();s&&delete d.forceReset,yield this.initializeClient(B({},l.user),d,new Date().getTime(),!0,"internal-autoLogin")}catch(a){this.loggingService.catch("Error in autoLoginPortableSession: ",a)}finally{this.pendingPortableRestore=null}})}getPortableBackend(){return this.portableBackend$.value}getFirebaseConfig$(){return this.loggingService.log("%c[WB] Calling FUNCTION: getFirebaseConfig","color: green;"),this.firebaseConfig$.asObservable()}getFirebaseConfig(){return this.loggingService.log("%c[WB] Calling FUNCTION: getFirebaseConfig","color: green;"),this.firebaseConfig$.value}setAdvancedQueries(r){this.loggingService.log("%c[WB] Calling FUNCTION: setAdvancedQueries","color: green;");try{r&&typeof r=="object"&&localStorage.setItem(F.LOCAL_STORAGE.VELT_ADVANCED_QUERIES,JSON.stringify(r)),this.advancedQueries$.next(r)}catch(i){this.loggingService.catch("Error in setAdvancedQueries: ",i)}}getAdvancedQueries$(){return this.loggingService.log("%c[WB] Calling FUNCTION: getAdvancedQueries$","color: green;"),this.advancedQueries$.asObservable()}getAdvancedQueries(){return this.loggingService.log("%c[WB] Calling FUNCTION: getAdvancedQueries","color: green;"),this.advancedQueries$.value}getAdvancedQueriesEnabled(r){try{return!this.configService.getConfig()?.advancedQueriesDisabled&&(r||!!this.getAdvancedQueries()?.advancedQueriesEnabled)}catch(i){return this.loggingService.catch("Error in getAdvancedQueriesEnabled: ",i),!1}}signOutPreviousUser(){return this.signOutPreviousUser$.asObservable()}getUser(){return this.loggingService.log("%c[WB] Calling FUNCTION: getUser","color: green;"),this.afAuth?.currentUser||this.portableAuthUser$.value?this.user$.value:null}getProvidedOrCurrentUserId(){try{return this.providedUser?.userId??this.user$.value?.userId??void 0}catch(r){this.loggingService.catch("Error in getProvidedOrCurrentUserId: ",r);return}}scheduleLoggedInUserResolveRetry(r,i){return y(this,null,function*(){try{if(!r||this.loggedInUserResolveRetryInFlightUserId===r)return;this.loggedInUserResolveRetryInFlightUserId=r;let o=this.loggedInUserResolveRetryDelaysMs;for(let s=0;s<o.length;s++){if(yield new Promise(l=>setTimeout(l,o[s])),(this.providedUser?.userId??this.user$.value?.userId)!==r)return;let a=yield this.usersService?.resolveUsers({userIds:[r],organizationId:i,skipUserCheck:!0,forceResolve:!0,moduleName:IT.IDENTIFY});if((this.providedUser?.userId??this.user$.value?.userId)!==r)return;let c=a?.[r];if(c&&this.applyLateResolvedLoggedInUser(r,c))return}this.loggingService.catch(`User resolver did not return the logged-in user after ${o.length} retry attempts \u2014 comments created by this author will have no resolved profile until the resolver returns them`,{userId:r,organizationId:i,attempts:o.length})}catch(o){this.loggingService.catch("Error in scheduleLoggedInUserResolveRetry: ",o)}finally{this.loggedInUserResolveRetryInFlightUserId===r&&(this.loggedInUserResolveRetryInFlightUserId=null)}})}applyLateResolvedLoggedInUser(r,i){try{let o=this.user$.value;if(!o||o.userId!==r)return!1;if(!this.afAuth?.currentUser)return!0;let s=Yne(o,i);return this.setUserToStorage(s),this.user$.next(s),!0}catch(o){return this.loggingService.catch("Error in applyLateResolvedLoggedInUser: ",o),!1}}combinedAuthBearer$(){let r=!1;return Ka([hd(this.afAuth).pipe(Qa(VN)),this.portableAuthUser$]).pipe(mn(([i,o])=>(o!==null&&(r=!0),!!(i!==VN||o!==null||r))),De(([i,o])=>(i===VN?null:i)??o))}getUser$(){return this.loggingService.log("%c[WB] Calling FUNCTION: getUser$","color: green;"),this.combinedAuthBearer$().pipe(Mr(r=>r?this.user$.asObservable():lt(null)),yo(cp))}getAuthUser(){return this.loggingService.log("%c[WB] Calling FUNCTION: getAuthUser","color: green;"),this.afAuth?.currentUser}getAuthState$(){return this.combinedAuthBearer$()}getIdTokenResultForUser(r,i){return Np(r,i)}getUserOptions(){return this.loggingService.log("%c[WB] Calling FUNCTION: getUserOptions","color: green;"),this.userOptions$.value}getUserOptions$(){return this.loggingService.log("%c[WB] Calling FUNCTION: getUserOptions$","color: green;"),this.userOptions$.asObservable()}updateUser(r){this.loggingService.log("%c[WB] Calling FUNCTION: updateUser","color: green;");try{let i=this.user$.value;if(r.userId&&r.userId!==i?.userId||r?.groupId&&r?.groupId!==i?.groupId||r?.organizationId&&r?.organizationId!==i?.organizationId)this.providedUser=r,this.initializeClient(r,this.userOptions$?.value||{},new Date().getTime(),void 0,"internal-updateUser");else if(this.providedUser=B(B({},this.providedUser),r),i){let o=B(B({},i),r);this.updateUserInternally(o)}}catch(i){this.loggingService.catch("Error in updateUser: ",i)}}signInWithCustomToken(r,i,o="manual"){this.loggingService.log("%c[WB] Calling FUNCTION: signInWithCustomToken","color: green;");try{return IG(this.afAuth,i).then(s=>(this.analyticsService.trackEvent(St.Events.Core.SDK_USER_AUTH_SUCCESS,{apiKey:this.apiKey,clientUserId:r.userId,snippylyUserId:r.userSnippylyId,authType:o,forceReset:this.userOptions$.value?.forceReset,user:this.getUserForTelemetry(r)}),s)).catch(s=>(this.analyticsService.trackEvent(St.Events.Core.SDK_USER_AUTH_FAILED,{apiKey:this.apiKey,clientUserId:r.userId,snippylyUserId:r.userSnippylyId,authType:o,forceReset:this.userOptions$.value?.forceReset,message:s.message,user:this.getUserForTelemetry(r)}),s))}catch(s){return this.loggingService.catch("Error in signInWithCustomToken: ",s),Promise.reject(s)}}clearCache(){this.loggingService.log("%c[WB] Calling FUNCTION: clearCache","color: green;");try{this.activityService?.resetActivityFeatureConfig()}catch(r){this.loggingService.catch("Error in clearCache: ",r)}}resetServicesCache(){this.loggingService.log("%c[WB] Calling FUNCTION: resetServicesCache in AuthService","color: green;");try{this.crdtService?.flushAllEditorActivities(),this.clearCache(),this.commonDbService?.unsubscribeFromObservables(),this.activityService?.destroy(),this.docService?.clearCacheOnUserCascade(),this.contactService?.clearCache(),this.iamService?.clearCache(),this.areaService?.clearCache(),this.commentService?.clearCache(),this.reactionService?.clearCache(),this.serviceBook.get(hT)?.clearCache(),this.viewsService?.clearCache()}catch(r){this.loggingService.catch("Error in resetServicesCache: ",r)}}initializeSignedInUser(r,i,o){this.loggingService.log("%c[WB] Calling FUNCTION: initializeSignedInUser","color: green;");try{let s=new zi;s.userSnippylyId=r.uid,s.type="signedIn",o&&(s=B(B({},s),o)),this.setUserToStorage(s),this.mergeUserWithProvidedUserData(s,i)}catch(s){this.loggingService.catch("Error in initializeSignedInUser: ",s)}}mergeUserWithProvidedUserData(r,i){return y(this,null,function*(){this.loggingService.log("%c[WB] Calling FUNCTION: mergeUserWithProvidedUserData","color: green;");try{r.userId=this.providedUser?.userId||r.userId;let o=null;if(this.usersService?.externalUserDataProviderAvailable()){let s=nd(),a=IT.IDENTIFY,c=this.providedUser?.clientOrganizationId||r.clientOrganizationId;this.coreActionsService.triggerAction(Wi.USER_RESOLVER,{event:St.Events.Resolver.USER_RESOLUTION_REQUEST_FORMED,timestamp:new Date().getTime(),uniqueId:s,methodName:nR.MERGE_USER_WITH_PROVIDED_USER_DATA,moduleName:a,source:"internal",payload:{userIds:[r.userId],organizationId:c}});let l=yield this.usersService.resolveUsers({userIds:[r.userId],organizationId:c,skipUserCheck:!0,uniqueId:s,moduleName:a});l&&l[r.userId]?o=JSON.parse(JSON.stringify(l[r.userId]||{})):this.scheduleLoggedInUserResolveRetry(r.userId,c),r=B(B({},r),o||{})}r.name=o?o?.name:this.providedUser?.name||r.name,r.clientUserName=o?o?.clientUserName:this.providedUser?.clientUserName||r.clientUserName,r.photoUrl=o?o?.photoUrl:this.providedUser?.photoUrl||r.photoUrl,r?.photoUrl===void 0&&(r.photoUrl=null),r.email=o?o?.email:this.providedUser?.email||r.email,r.color=o?.color||this.providedUser?.color||this.getUserAvatarColor(r.userId),r.textColor=o?.textColor||this.providedUser?.textColor||this.getUserTextColor(r.userId),r.initial=o?.initial||this.providedUser?.initial||r.initial||r.name?.charAt(0).toUpperCase()||r.email?.charAt(0).toUpperCase(),r.contacts=this.providedUser?.contacts||r.contacts,r.plan=this.providedUser?.plan||r.plan,r.groupId=this.providedUser?.groupId||r.groupId,r.clientGroupId=this.providedUser?.clientGroupId||r.clientGroupId,r.clientOrganizationId=this.providedUser?.clientOrganizationId||r.clientOrganizationId,r.organizationId=this.providedUser?.organizationId||r.organizationId,r.isAdmin=this.providedUser?.isAdmin,r.isReadOnly=this.providedUser?.isReadOnly,r.isAnonymous=this.providedUser?.isAnonymous,r.isGuest=this.providedUser?.isGuest,this.updateUserInternally(r)}catch(o){this.loggingService.catch("Error in mergeUserWithProvidedUserData: ",o)}})}updateUserInternally(r){return y(this,null,function*(){this.loggingService.log("%c[WB] Calling FUNCTION: updateUserInternally","color: green;");try{let i=Object.assign({},r);delete i.contacts,this.analyticsService.identifyUser(r.userSnippylyId,i,{forceReset:this.userOptions$.value?.forceReset}),this.getPlanDetailsCalled||this.getPlanDetailsFromDb();let o=pd(this.functions,od({url:this.endpointsService.getCloudFunctionUrl("sdkProxy"),apiProxyDomain:this.configService?.getApiProxyDomain()})),s=zV({methodName:"updateUserInternally",data:{type:"getProjectConfig"},getSdkProxy:o,userId:r?.userId??""}),a=Promise.resolve();if(this.userPermissionService?.isPermissionProviderAvailable()&&r.clientOrganizationId){let d=[{userId:r.userId,resource:{id:r.clientOrganizationId,type:HU.ORGANIZATION,source:vT.IDENTIFY,organizationId:r.clientOrganizationId}}],h=nd();this.coreActionsService.triggerAction(Wi.PERMISSION_PROVIDER,{event:St.Events.PermissionProvider.RESOURCE_ACCESS_REQUEST_FORMED,methodName:vT.IDENTIFY,uniqueId:h,timestamp:new Date().getTime(),source:"internal",payload:{requests:d}}),a=this.userPermissionService?.onResourceAccessRequired({requests:d,uniqueId:h,userId:r.userId,methodName:vT.IDENTIFY,fromCache:!1})??Promise.resolve()}let[c,l]=yield Promise.allSettled([s,a]);if(c.status==="fulfilled"){this.setIsPrivateCommentsEnabled(!!c.value?.data?.isPrivateCommentsEnabled);let d=c.value?.data?.activityConfig??{immutable:!1,isEnabled:!1};this.cachedActivityConfig=d,this.activityService?.setActivityFeatureConfig(d)}else this.loggingService.warn("Failed to fetch project config:",c.reason);this.afAuth.currentUser?(this.user$.next(r),this.updateUserToFirebase(r)):this.portableAuthUser$.value&&this.user$.next(r)}catch(i){this.loggingService.catch("Error in updateUserInternally: ",i)}})}updateUserToFirebase(r){this.loggingService.log("%c[WB] Calling FUNCTION: updateUserToFirebase","color: green;");try{let i=JSON.parse(JSON.stringify(r)),o=Ee(B({},i),{lastUpdated:new Date})}catch(i){this.loggingService.catch("Error in updateUserToFirebase: ",i)}}getPlanDetailsFromDb(){return y(this,null,function*(){try{this.getPlanDetailsCalled=!0;let i=yield pd(this.functions,od({url:this.endpointsService.getCloudFunctionUrl("getPlanDetails"),apiProxyDomain:this.configService?.getApiProxyDomain()}),{timeout:1200*1e3})({apiKey:this.configService.getApiKey(),sdkVersion:xc(),sdkType:this.configService.getSdkType()});return i?.data?.isPlanExpired&&(this.analyticsService.trackEvent(St.Events.Core.SDK_PLAN_EXPIRED),this.configService.getSF()||console.warn("Velt SDK plan has expired.")),this.planDetails$.next(i?.data||{planInfo:null,isPlanExpired:!1}),i}catch(r){return this.loggingService.catch("Error in getPlanDetailsFromDb: ",r),this.planDetails$.next({planInfo:null,isPlanExpired:!1}),Promise.resolve(null)}})}isPlanExpired$(){return this.planDetails$.pipe(mn(r=>!!r),De(r=>!!r?.isPlanExpired))}isPlanExpired(){return this.planDetails$.getValue()?.isPlanExpired}addPreSignOutFuction(r,i){try{this.preSignOutFunctions.set(r,i)}catch(o){this.loggingService.catch("Error in addPreSignOutFuction: ",o)}}setUserOrganization(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setUserOrganization","color: green;");let i=JSON.parse(JSON.stringify(this.userOrganization$.value||{}));this.getUser()?.organizationId===r?.organizationId?(i.metadata=r,this.userOrganization$.next(i)):this.userOrganization$.next(null)}catch(i){this.loggingService.catch("Error in setUserOrganization: ",i)}}setOrganizationUserGroups(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setUserOrganizationGroups","color: green;");let i=JSON.parse(JSON.stringify(this.userOrganization$.value||{}));this.getUser()?.organizationId===i?.metadata?.organizationId&&(i.groups=r,this.userOrganization$.next(i))}catch(i){this.loggingService.catch("Error in setUserOrganizationGroups: ",i)}}getUserOrganization$(){return this.loggingService.log("%c[WB] Calling FUNCTION: getUserOrganization$","color: green;"),this.getUser$().pipe(Mr(r=>r?this.userOrganization$.asObservable().pipe(De(i=>i?.metadata?.organizationId===r.organizationId?i:null)):lt(null)))}signOutUser(r="internal"){return y(this,null,function*(){try{this.userPermissionService?.invalidateAllPermissionsState(),this.portableSessionEpoch++,this.portableSignOutOwnsEpochBump=!0,this.pendingPortableRestore=null,this.portableResumeUserId=null,this.portableSessionIdentity=null,(this.portableAutoLoginCalled||this.configService?.getEnablePortableBackend()===!0)&&(this.clearPersistedPortableSession(),this.recordPortableSignOut(),this.clearPortableTokenRefresh()),r==="external"&&(this.onRetrySubscription?.unsubscribe(),this.authProviderListenerGeneration++),this.userPermissionService?.revokeAccessOnUserLogout(),this.analyticsService.trackEvent(St.Events.Core.SDK_USER_SIGN_OUT,{apiKey:this.apiKey,clientUserId:this.user$?.value?.userId,snippylyUserId:this.user$?.value?.userSnippylyId,message:r==="external"?"User Sign out":"System Sign out",user:this.user$?.value?this.getUserForTelemetry(this.user$?.value):null,forceReset:this.userOptions$.value?.forceReset,source:r});let i=yield hd(this.afAuth).pipe(En(1)).toPromise().catch(o=>null);if(i){this.resetServicesCache(),this.user$.next(null),this.clearPortableBackendState();for(let[o,s]of this.preSignOutFunctions)try{yield s(i)}catch(a){this.loggingService.catch(`Error in signOutUser ${o} function: `,a)}return this.user$.next(null),yield VV(1e3),vG(this.afAuth).catch(o=>{this.loggingService.catch("Error in signOutUser:",o)})}else return(this.portableAuthUser$.value||this.portableBackend$.value)&&(this.resetServicesCache(),this.user$.next(null),this.clearPortableBackendState()),Promise.resolve()}catch(i){this.loggingService.catch("Error in signOutUser: ",i)}finally{this.portableSignOutOwnsEpochBump=!1}})}isFeatureAllowed(r){return bV(this.config,this.user$.value,r)}getUserWithoutContacts(r){try{if(r){let i=JSON.parse(JSON.stringify(r));return delete i.contacts,i}else return null}catch(i){return this.loggingService.catch("Error in getUserWithoutContacts: ",i),null}}getUserForTelemetry(r){try{let i=this.getUserWithoutContacts(r);return i?this.usersService?.userResolverConfigured?.()?IR(i):i:null}catch(i){return this.loggingService.catch("Error in getUserForTelemetry: ",i),null}}getUserForClient(r){try{return _R(r)}catch(i){return this.loggingService.catch("Error in getUserForClient: ",i),null}}getUserAvatarColor(r){try{return r?this.avatarService.generateUserColor(Mc(r)):"#625DF5"}catch{return"#625DF5"}}getUserTextColor(r){try{return"#FFFFFF"}catch{return"#FFFFFF"}}setOptionalPropertiesToUsers(r){try{r.forEach(i=>{try{i?.color||(i.color=this.getUserAvatarColor(i?.userId)),i?.textColor||(i.textColor=this.getUserTextColor(i?.userId)),!i?.initial&&(i?.name||i?.email)&&(i.initial=i.name?.charAt(0).toUpperCase()||i.email?.charAt(0).toUpperCase())}catch{}})}catch{}}};e.PORTABLE_REFRESH_WARN_AFTER_FAILURES=3,e.PORTABLE_DOCUMENT_LIFECYCLE_EVENTS=["visibilitychange","resume"],e.PORTABLE_NO_CREDENTIAL_ENVELOPE={error:"No renewal credential.",code:"no_renewal_credential",message:"the session has no renewal credential for the configured gateway",source:"identify"},e.\u0275fac=function(i){return new(i||e)($(Hc),$(Ji),$(t2),$(n2),$(C2),$(Ho),$(zs),$(bt),$(mT))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var N2="@firebase/database",w2="1.0.20";var Ww="";function Xne(t){Ww=t}var qN=class{constructor(e){this.domStorage_=e,this.prefix_="firebase:"}set(e,n){n==null?this.domStorage_.removeItem(this.prefixedName_(e)):this.domStorage_.setItem(this.prefixedName_(e),xt(n))}get(e){let n=this.domStorage_.getItem(this.prefixedName_(e));return n==null?null:ad(n)}remove(e){this.domStorage_.removeItem(this.prefixedName_(e))}prefixedName_(e){return this.prefix_+e}toString(){return this.domStorage_.toString()}};var KN=class{constructor(){this.cache_={},this.isInMemoryStorage=!0}set(e,n){n==null?delete this.cache_[e]:this.cache_[e]=n}get(e){return Vr(this.cache_,e)?this.cache_[e]:null}remove(e){delete this.cache_[e]}};var aj=function(t){try{if(typeof window<"u"&&typeof window[t]<"u"){let e=window[t];return e.setItem("firebase:sentinel","cache"),e.removeItem("firebase:sentinel"),new qN(e)}}catch{}return new KN},Jc=aj("localStorage"),YN=aj("sessionStorage");var Id=new Br("@firebase/database"),cj=(function(){let t=1;return function(){return t++}})(),lj=function(t){let e=pB(t),n=new PT;n.update(e);let r=n.digest();return cd.encodeByteArray(r)},ng=function(...t){let e="";for(let n=0;n<t.length;n++){let r=t[n];Array.isArray(r)||r&&typeof r=="object"&&typeof r.length=="number"?e+=ng.apply(null,r):typeof r=="object"?e+=xt(r):e+=r,e+=" "}return e},Zc=null,b2=!0,Qne=function(t,e){q(!e||t===!0||t===!1,"Can't turn on custom loggers persistently."),t===!0?(Id.logLevel=Re.VERBOSE,Zc=Id.log.bind(Id),e&&YN.set("logging_enabled",!0)):typeof t=="function"?Zc=t:(Zc=null,YN.remove("logging_enabled"))},un=function(...t){if(b2===!0&&(b2=!1,Zc===null&&YN.get("logging_enabled")===!0&&Qne(!0)),Zc){let e=ng.apply(null,t);Zc(e)}},rg=function(t){return function(...e){un(t,...e)}},XN=function(...t){let e="FIREBASE INTERNAL ERROR: "+ng(...t);Id.error(e)},Wo=function(...t){let e=`FIREBASE FATAL ERROR: ${ng(...t)}`;throw Id.error(e),new Error(e)},xn=function(...t){let e="FIREBASE WARNING: "+ng(...t);Id.warn(e)},Jne=function(){typeof window<"u"&&window.location&&window.location.protocol&&window.location.protocol.indexOf("https:")!==-1&&xn("Insecure Firebase access from a secure page. Please use https in calls to new Firebase().")},By=function(t){return typeof t=="number"&&(t!==t||t===Number.POSITIVE_INFINITY||t===Number.NEGATIVE_INFINITY)},Zne=function(t){if(Ki()||document.readyState==="complete")t();else{let e=!1,n=function(){if(!document.body){setTimeout(n,Math.floor(10));return}e||(e=!0,t())};document.addEventListener?(document.addEventListener("DOMContentLoaded",n,!1),window.addEventListener("load",n,!1)):document.attachEvent&&(document.attachEvent("onreadystatechange",()=>{document.readyState==="complete"&&n()}),window.attachEvent("onload",n))}},tl="[MIN_NAME]",Zs="[MAX_NAME]",al=function(t,e){if(t===e)return 0;if(t===tl||e===Zs)return-1;if(e===tl||t===Zs)return 1;{let n=O2(t),r=O2(e);return n!==null?r!==null?n-r===0?t.length-e.length:n-r:-1:r!==null?1:t<e?-1:1}},ere=function(t,e){return t===e?0:t<e?-1:1},xp=function(t,e){if(e&&t in e)return e[t];throw new Error("Missing required key ("+t+") in object: "+xt(e))},zw=function(t){if(typeof t!="object"||t===null)return xt(t);let e=[];for(let r in t)e.push(r);e.sort();let n="{";for(let r=0;r<e.length;r++)r!==0&&(n+=","),n+=xt(e[r]),n+=":",n+=zw(t[e[r]]);return n+="}",n},uj=function(t,e){let n=t.length;if(n<=e)return[t];let r=[];for(let i=0;i<n;i+=e)i+e>n?r.push(t.substring(i,n)):r.push(t.substring(i,i+e));return r};function dn(t,e){for(let n in t)t.hasOwnProperty(n)&&e(n,t[n])}var dj=function(t){q(!By(t),"Invalid JSON number");let e=11,n=52,r=(1<<e-1)-1,i,o,s,a,c;t===0?(o=0,s=0,i=1/t===-1/0?1:0):(i=t<0,t=Math.abs(t),t>=Math.pow(2,1-r)?(a=Math.min(Math.floor(Math.log(t)/Math.LN2),r),o=a+r,s=Math.round(t*Math.pow(2,n-a)-Math.pow(2,n))):(o=0,s=Math.round(t/Math.pow(2,1-r-n))));let l=[];for(c=n;c;c-=1)l.push(s%2?1:0),s=Math.floor(s/2);for(c=e;c;c-=1)l.push(o%2?1:0),o=Math.floor(o/2);l.push(i?1:0),l.reverse();let d=l.join(""),h="";for(c=0;c<64;c+=8){let f=parseInt(d.substr(c,8),2).toString(16);f.length===1&&(f="0"+f),h=h+f}return h.toLowerCase()},tre=function(){return!!(typeof window=="object"&&window.chrome&&window.chrome.extension&&!/^chrome/.test(window.location.href))},nre=function(){return typeof Windows=="object"&&typeof Windows.UI=="object"};function rre(t,e){let n="Unknown Error";t==="too_big"?n="The data requested exceeds the maximum size that can be accessed with a single request.":t==="permission_denied"?n="Client doesn't have permission to access the desired data.":t==="unavailable"&&(n="The service is unavailable");let r=new Error(t+" at "+e._path.toString()+": "+n);return r.code=t.toUpperCase(),r}var ire=new RegExp("^-?(0*)\\d{1,10}$"),ore=-2147483648,sre=2147483647,O2=function(t){if(ire.test(t)){let e=Number(t);if(e>=ore&&e<=sre)return e}return null},bd=function(t){try{t()}catch(e){setTimeout(()=>{let n=e.stack||"";throw xn("Exception was thrown by user callback.",n),e},Math.floor(0))}},are=function(){return(typeof window=="object"&&window.navigator&&window.navigator.userAgent||"").search(/googlebot|google webmaster tools|bingbot|yahoo! slurp|baiduspider|yandexbot|duckduckbot/i)>=0},Vp=function(t,e){let n=setTimeout(t,e);return typeof n=="number"&&typeof Deno<"u"&&Deno.unrefTimer?Deno.unrefTimer(n):typeof n=="object"&&n.unref&&n.unref(),n};var QN=class{constructor(e,n){this.appCheckProvider=n,this.appName=e.name,Zn(e)&&e.settings.appCheckToken&&(this.serverAppAppCheckToken=e.settings.appCheckToken),this.appCheck=n?.getImmediate({optional:!0}),this.appCheck||n?.get().then(r=>this.appCheck=r)}getToken(e){if(this.serverAppAppCheckToken){if(e)throw new Error("Attempted reuse of `FirebaseServerApp.appCheckToken` after previous usage failed.");return Promise.resolve({token:this.serverAppAppCheckToken})}return this.appCheck?this.appCheck.getToken(e):new Promise((n,r)=>{setTimeout(()=>{this.appCheck?this.getToken(e).then(n,r):n(null)},0)})}addTokenChangeListener(e){var n;(n=this.appCheckProvider)===null||n===void 0||n.get().then(r=>r.addTokenListener(e))}notifyForInvalidToken(){xn(`Provided AppCheck credentials for the app named "${this.appName}" are invalid. This usually indicates your app was not initialized correctly.`)}};var JN=class{constructor(e,n,r){this.appName_=e,this.firebaseOptions_=n,this.authProvider_=r,this.auth_=null,this.auth_=r.getImmediate({optional:!0}),this.auth_||r.onInit(i=>this.auth_=i)}getToken(e){return this.auth_?this.auth_.getToken(e).catch(n=>n&&n.code==="auth/token-not-initialized"?(un("Got auth/token-not-initialized error. Treating as null token."),null):Promise.reject(n)):new Promise((n,r)=>{setTimeout(()=>{this.auth_?this.getToken(e).then(n,r):n(null)},0)})}addTokenChangeListener(e){this.auth_?this.auth_.addAuthTokenListener(e):this.authProvider_.get().then(n=>n.addAuthTokenListener(e))}removeTokenChangeListener(e){this.authProvider_.get().then(n=>n.removeAuthTokenListener(e))}notifyForInvalidToken(){let e='Provided authentication credentials for the app named "'+this.appName_+'" are invalid. This usually indicates your app was not initialized correctly. ';"credential"in this.firebaseOptions_?e+='Make sure the "credential" property provided to initializeApp() is authorized to access the specified "databaseURL" and is from the correct project.':"serviceAccount"in this.firebaseOptions_?e+='Make sure the "serviceAccount" property provided to initializeApp() is authorized to access the specified "databaseURL" and is from the correct project.':e+='Make sure the "apiKey" and "databaseURL" properties provided to initializeApp() match the values provided for your app at https://console.firebase.google.com/.',xn(e)}},Bp=(()=>{class t{constructor(n){this.accessToken=n}getToken(n){return Promise.resolve({accessToken:this.accessToken})}addTokenChangeListener(n){n(this.accessToken)}removeTokenChangeListener(n){}notifyForInvalidToken(){}}t.OWNER="owner";return t})(),gy="5",hj="v",fj="s",pj="r",gj="f",mj=/(console\.firebase|firebase-console-\w+\.corp|firebase\.corp)\.google\.com/,Ej="ls",_j="p",ZN="ac",Tj="websocket",yj="long_polling";var my=class{constructor(e,n,r,i,o=!1,s="",a=!1,c=!1,l=null){this.secure=n,this.namespace=r,this.webSocketOnly=i,this.nodeAdmin=o,this.persistenceKey=s,this.includeNamespaceInQueryParams=a,this.isUsingEmulator=c,this.emulatorOptions=l,this._host=e.toLowerCase(),this._domain=this._host.substr(this._host.indexOf(".")+1),this.internalHost=Jc.get("host:"+e)||this._host}isCacheableHost(){return this.internalHost.substr(0,2)==="s-"}isCustomHost(){return this._domain!=="firebaseio.com"&&this._domain!=="firebaseio-demo.com"}get host(){return this._host}set host(e){e!==this.internalHost&&(this.internalHost=e,this.isCacheableHost()&&Jc.set("host:"+this._host,this.internalHost))}toString(){let e=this.toURLString();return this.persistenceKey&&(e+="<"+this.persistenceKey+">"),e}toURLString(){let e=this.secure?"https://":"http://",n=this.includeNamespaceInQueryParams?`?ns=${this.namespace}`:"";return`${e}${this.host}/${n}`}};function cre(t){return t.host!==t.internalHost||t.isCustomHost()||t.includeNamespaceInQueryParams}function Ij(t,e,n){q(typeof e=="string","typeof type must == string"),q(typeof n=="object","typeof params must == object");let r;if(e===Tj)r=(t.secure?"wss://":"ws://")+t.internalHost+"/.ws?";else if(e===yj)r=(t.secure?"https://":"http://")+t.internalHost+"/.lp?";else throw new Error("Unknown connection type: "+e);cre(t)&&(n.ns=t.namespace);let i=[];return dn(n,(o,s)=>{i.push(o+"="+s)}),r+i.join("&")}var ew=class{constructor(){this.counters_={}}incrementCounter(e,n=1){Vr(this.counters_,e)||(this.counters_[e]=0),this.counters_[e]+=n}get(){return tB(this.counters_)}};var BN={},GN={};function qw(t){let e=t.toString();return BN[e]||(BN[e]=new ew),BN[e]}function lre(t,e){let n=t.toString();return GN[n]||(GN[n]=e()),GN[n]}var tw=class{constructor(e){this.onMessage_=e,this.pendingResponses=[],this.currentResponseNum=0,this.closeAfterResponse=-1,this.onClose=null}closeAfter(e,n){this.closeAfterResponse=e,this.onClose=n,this.closeAfterResponse<this.currentResponseNum&&(this.onClose(),this.onClose=null)}handleResponse(e,n){for(this.pendingResponses[e]=n;this.pendingResponses[this.currentResponseNum];){let r=this.pendingResponses[this.currentResponseNum];delete this.pendingResponses[this.currentResponseNum];for(let i=0;i<r.length;++i)r[i]&&bd(()=>{this.onMessage_(r[i])});if(this.currentResponseNum===this.closeAfterResponse){this.onClose&&(this.onClose(),this.onClose=null);break}this.currentResponseNum++}}};var M2="start",ure="close",dre="pLPCommand",hre="pRTLPCB",vj="id",Sj="pw",Aj="ser",fre="cb",pre="seg",gre="ts",mre="d",Ere="dframe",Cj=1870,Dj=30,_re=Cj-Dj,Tre=25e3,yre=3e4,Ey=class t{constructor(e,n,r,i,o,s,a){this.connId=e,this.repoInfo=n,this.applicationId=r,this.appCheckToken=i,this.authToken=o,this.transportSessionId=s,this.lastSessionId=a,this.bytesSent=0,this.bytesReceived=0,this.everConnected_=!1,this.log_=rg(e),this.stats_=qw(n),this.urlFn=c=>(this.appCheckToken&&(c[ZN]=this.appCheckToken),Ij(n,yj,c))}open(e,n){this.curSegmentNum=0,this.onDisconnect_=n,this.myPacketOrderer=new tw(e),this.isClosed_=!1,this.connectTimeoutTimer_=setTimeout(()=>{this.log_("Timed out trying to connect."),this.onClosed_(),this.connectTimeoutTimer_=null},Math.floor(yre)),Zne(()=>{if(this.isClosed_)return;this.scriptTagHolder=new nw((...o)=>{let[s,a,c,l,d]=o;if(this.incrementIncomingBytes_(o),!!this.scriptTagHolder)if(this.connectTimeoutTimer_&&(clearTimeout(this.connectTimeoutTimer_),this.connectTimeoutTimer_=null),this.everConnected_=!0,s===M2)this.id=a,this.password=c;else if(s===ure)a?(this.scriptTagHolder.sendNewPolls=!1,this.myPacketOrderer.closeAfter(a,()=>{this.onClosed_()})):this.onClosed_();else throw new Error("Unrecognized command received: "+s)},(...o)=>{let[s,a]=o;this.incrementIncomingBytes_(o),this.myPacketOrderer.handleResponse(s,a)},()=>{this.onClosed_()},this.urlFn);let r={};r[M2]="t",r[Aj]=Math.floor(Math.random()*1e8),this.scriptTagHolder.uniqueCallbackIdentifier&&(r[fre]=this.scriptTagHolder.uniqueCallbackIdentifier),r[hj]=gy,this.transportSessionId&&(r[fj]=this.transportSessionId),this.lastSessionId&&(r[Ej]=this.lastSessionId),this.applicationId&&(r[_j]=this.applicationId),this.appCheckToken&&(r[ZN]=this.appCheckToken),typeof location<"u"&&location.hostname&&mj.test(location.hostname)&&(r[pj]=gj);let i=this.urlFn(r);this.log_("Connecting via long-poll to "+i),this.scriptTagHolder.addTag(i,()=>{})})}start(){this.scriptTagHolder.startLongPoll(this.id,this.password),this.addDisconnectPingFrame(this.id,this.password)}static forceAllow(){t.forceAllow_=!0}static forceDisallow(){t.forceDisallow_=!0}static isAvailable(){return Ki()?!1:t.forceAllow_?!0:!t.forceDisallow_&&typeof document<"u"&&document.createElement!=null&&!tre()&&!nre()}markConnectionHealthy(){}shutdown_(){this.isClosed_=!0,this.scriptTagHolder&&(this.scriptTagHolder.close(),this.scriptTagHolder=null),this.myDisconnFrame&&(document.body.removeChild(this.myDisconnFrame),this.myDisconnFrame=null),this.connectTimeoutTimer_&&(clearTimeout(this.connectTimeoutTimer_),this.connectTimeoutTimer_=null)}onClosed_(){this.isClosed_||(this.log_("Longpoll is closing itself"),this.shutdown_(),this.onDisconnect_&&(this.onDisconnect_(this.everConnected_),this.onDisconnect_=null))}close(){this.isClosed_||(this.log_("Longpoll is being closed."),this.shutdown_())}send(e){let n=xt(e);this.bytesSent+=n.length,this.stats_.incrementCounter("bytes_sent",n.length);let r=RR(n),i=uj(r,_re);for(let o=0;o<i.length;o++)this.scriptTagHolder.enqueueSegment(this.curSegmentNum,i.length,i[o]),this.curSegmentNum++}addDisconnectPingFrame(e,n){if(Ki())return;this.myDisconnFrame=document.createElement("iframe");let r={};r[Ere]="t",r[vj]=e,r[Sj]=n,this.myDisconnFrame.src=this.urlFn(r),this.myDisconnFrame.style.display="none",document.body.appendChild(this.myDisconnFrame)}incrementIncomingBytes_(e){let n=xt(e).length;this.bytesReceived+=n,this.stats_.incrementCounter("bytes_received",n)}},nw=class t{constructor(e,n,r,i){if(this.onDisconnect=r,this.urlFn=i,this.outstandingRequests=new Set,this.pendingSegs=[],this.currentSerial=Math.floor(Math.random()*1e8),this.sendNewPolls=!0,Ki())this.commandCB=e,this.onMessageCB=n;else{this.uniqueCallbackIdentifier=cj(),window[dre+this.uniqueCallbackIdentifier]=e,window[hre+this.uniqueCallbackIdentifier]=n,this.myIFrame=t.createIFrame_();let o="";this.myIFrame.src&&this.myIFrame.src.substr(0,11)==="javascript:"&&(o='<script>document.domain="'+document.domain+'";<\/script>');let s="<html><body>"+o+"</body></html>";try{this.myIFrame.doc.open(),this.myIFrame.doc.write(s),this.myIFrame.doc.close()}catch(a){un("frame writing exception"),a.stack&&un(a.stack),un(a)}}}static createIFrame_(){let e=document.createElement("iframe");if(e.style.display="none",document.body){document.body.appendChild(e);try{e.contentWindow.document||un("No IE domain setting required")}catch{let r=document.domain;e.src="javascript:void((function(){document.open();document.domain='"+r+"';document.close();})())"}}else throw"Document body has not initialized. Wait to initialize Firebase until after the document is ready.";return e.contentDocument?e.doc=e.contentDocument:e.contentWindow?e.doc=e.contentWindow.document:e.document&&(e.doc=e.document),e}close(){this.alive=!1,this.myIFrame&&(this.myIFrame.doc.body.textContent="",setTimeout(()=>{this.myIFrame!==null&&(document.body.removeChild(this.myIFrame),this.myIFrame=null)},Math.floor(0)));let e=this.onDisconnect;e&&(this.onDisconnect=null,e())}startLongPoll(e,n){for(this.myID=e,this.myPW=n,this.alive=!0;this.newRequest_(););}newRequest_(){if(this.alive&&this.sendNewPolls&&this.outstandingRequests.size<(this.pendingSegs.length>0?2:1)){this.currentSerial++;let e={};e[vj]=this.myID,e[Sj]=this.myPW,e[Aj]=this.currentSerial;let n=this.urlFn(e),r="",i=0;for(;this.pendingSegs.length>0&&this.pendingSegs[0].d.length+Dj+r.length<=Cj;){let s=this.pendingSegs.shift();r=r+"&"+pre+i+"="+s.seg+"&"+gre+i+"="+s.ts+"&"+mre+i+"="+s.d,i++}return n=n+r,this.addLongPollTag_(n,this.currentSerial),!0}else return!1}enqueueSegment(e,n,r){this.pendingSegs.push({seg:e,ts:n,d:r}),this.alive&&this.newRequest_()}addLongPollTag_(e,n){this.outstandingRequests.add(n);let r=()=>{this.outstandingRequests.delete(n),this.newRequest_()},i=setTimeout(r,Math.floor(Tre)),o=()=>{clearTimeout(i),r()};this.addTag(e,o)}addTag(e,n){Ki()?this.doNodeLongPoll(e,n):setTimeout(()=>{try{if(!this.sendNewPolls)return;let r=this.myIFrame.doc.createElement("script");r.type="text/javascript",r.async=!0,r.src=e,r.onload=r.onreadystatechange=function(){let i=r.readyState;(!i||i==="loaded"||i==="complete")&&(r.onload=r.onreadystatechange=null,r.parentNode&&r.parentNode.removeChild(r),n())},r.onerror=()=>{un("Long-poll script failed to load: "+e),this.sendNewPolls=!1,this.close()},this.myIFrame.doc.body.appendChild(r)}catch{}},Math.floor(1))}};var Ire=16384,vre=45e3,_y=null;typeof MozWebSocket<"u"?_y=MozWebSocket:typeof WebSocket<"u"&&(_y=WebSocket);var Td=(()=>{class t{constructor(n,r,i,o,s,a,c){this.connId=n,this.applicationId=i,this.appCheckToken=o,this.authToken=s,this.keepaliveTimer=null,this.frames=null,this.totalFrames=0,this.bytesSent=0,this.bytesReceived=0,this.log_=rg(this.connId),this.stats_=qw(r),this.connURL=t.connectionURL_(r,a,c,o,i),this.nodeAdmin=r.nodeAdmin}static connectionURL_(n,r,i,o,s){let a={};return a[hj]=gy,!Ki()&&typeof location<"u"&&location.hostname&&mj.test(location.hostname)&&(a[pj]=gj),r&&(a[fj]=r),i&&(a[Ej]=i),o&&(a[ZN]=o),s&&(a[_j]=s),Ij(n,Tj,a)}open(n,r){this.onDisconnect=r,this.onMessage=n,this.log_("Websocket connecting to "+this.connURL),this.everConnected_=!1,Jc.set("previous_websocket_failure",!0);try{let i;if(Ki()){let o=this.nodeAdmin?"AdminNode":"Node";i={headers:{"User-Agent":`Firebase/${gy}/${Ww}/${process.platform}/${o}`,"X-Firebase-GMPID":this.applicationId||""}},this.authToken&&(i.headers.Authorization=`Bearer ${this.authToken}`),this.appCheckToken&&(i.headers["X-Firebase-AppCheck"]=this.appCheckToken);let s=process.env,a=this.connURL.indexOf("wss://")===0?s.HTTPS_PROXY||s.https_proxy:s.HTTP_PROXY||s.http_proxy;a&&(i.proxy={origin:a})}this.mySock=new _y(this.connURL,[],i)}catch(i){this.log_("Error instantiating WebSocket.");let o=i.message||i.data;o&&this.log_(o),this.onClosed_();return}this.mySock.onopen=()=>{this.log_("Websocket connected."),this.everConnected_=!0},this.mySock.onclose=()=>{this.log_("Websocket connection was disconnected."),this.mySock=null,this.onClosed_()},this.mySock.onmessage=i=>{this.handleIncomingFrame(i)},this.mySock.onerror=i=>{this.log_("WebSocket error. Closing connection.");let o=i.message||i.data;o&&this.log_(o),this.onClosed_()}}start(){}static forceDisallow(){t.forceDisallow_=!0}static isAvailable(){let n=!1;if(typeof navigator<"u"&&navigator.userAgent){let r=/Android ([0-9]{0,}\.[0-9]{0,})/,i=navigator.userAgent.match(r);i&&i.length>1&&parseFloat(i[1])<4.4&&(n=!0)}return!n&&_y!==null&&!t.forceDisallow_}static previouslyFailed(){return Jc.isInMemoryStorage||Jc.get("previous_websocket_failure")===!0}markConnectionHealthy(){Jc.remove("previous_websocket_failure")}appendFrame_(n){if(this.frames.push(n),this.frames.length===this.totalFrames){let r=this.frames.join("");this.frames=null;let i=ad(r);this.onMessage(i)}}handleNewFrameCount_(n){this.totalFrames=n,this.frames=[]}extractFrameCount_(n){if(q(this.frames===null,"We already have a frame buffer"),n.length<=6){let r=Number(n);if(!isNaN(r))return this.handleNewFrameCount_(r),null}return this.handleNewFrameCount_(1),n}handleIncomingFrame(n){if(this.mySock===null)return;let r=n.data;if(this.bytesReceived+=r.length,this.stats_.incrementCounter("bytes_received",r.length),this.resetKeepAlive(),this.frames!==null)this.appendFrame_(r);else{let i=this.extractFrameCount_(r);i!==null&&this.appendFrame_(i)}}send(n){this.resetKeepAlive();let r=xt(n);this.bytesSent+=r.length,this.stats_.incrementCounter("bytes_sent",r.length);let i=uj(r,Ire);i.length>1&&this.sendString_(String(i.length));for(let o=0;o<i.length;o++)this.sendString_(i[o])}shutdown_(){this.isClosed_=!0,this.keepaliveTimer&&(clearInterval(this.keepaliveTimer),this.keepaliveTimer=null),this.mySock&&(this.mySock.close(),this.mySock=null)}onClosed_(){this.isClosed_||(this.log_("WebSocket is closing itself"),this.shutdown_(),this.onDisconnect&&(this.onDisconnect(this.everConnected_),this.onDisconnect=null))}close(){this.isClosed_||(this.log_("WebSocket is being closed"),this.shutdown_())}resetKeepAlive(){clearInterval(this.keepaliveTimer),this.keepaliveTimer=setInterval(()=>{this.mySock&&this.sendString_("0"),this.resetKeepAlive()},Math.floor(vre))}sendString_(n){try{this.mySock.send(n)}catch(r){this.log_("Exception thrown from WebSocket.send():",r.message||r.data,"Closing connection."),setTimeout(this.onClosed_.bind(this),0)}}}t.responsesRequiredToBeHealthy=2,t.healthyTimeout=3e4;return t})(),Rj=(()=>{class t{static get ALL_TRANSPORTS(){return[Ey,Td]}static get IS_TRANSPORT_INITIALIZED(){return this.globalTransportInitialized_}constructor(n){this.initTransports_(n)}initTransports_(n){let r=Td&&Td.isAvailable(),i=r&&!Td.previouslyFailed();if(n.webSocketOnly&&(r||xn("wss:// URL used, but browser isn't known to support websockets. Trying anyway."),i=!0),i)this.transports_=[Td];else{let o=this.transports_=[];for(let s of t.ALL_TRANSPORTS)s&&s.isAvailable()&&o.push(s);t.globalTransportInitialized_=!0}}initialTransport(){if(this.transports_.length>0)return this.transports_[0];throw new Error("No transports available")}upgradeTransport(){return this.transports_.length>1?this.transports_[1]:null}}t.globalTransportInitialized_=!1;return t})(),Sre=6e4,Are=5e3,Cre=10*1024,Dre=100*1024,jN="t",L2="d",Rre="s",P2="r",Nre="e",x2="o",k2="a",F2="n",U2="p",wre="h",rw=class{constructor(e,n,r,i,o,s,a,c,l,d){this.id=e,this.repoInfo_=n,this.applicationId_=r,this.appCheckToken_=i,this.authToken_=o,this.onMessage_=s,this.onReady_=a,this.onDisconnect_=c,this.onKill_=l,this.lastSessionId=d,this.connectionCount=0,this.pendingDataMessages=[],this.state_=0,this.log_=rg("c:"+this.id+":"),this.transportManager_=new Rj(n),this.log_("Connection created"),this.start_()}start_(){let e=this.transportManager_.initialTransport();this.conn_=new e(this.nextTransportId_(),this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,null,this.lastSessionId),this.primaryResponsesRequired_=e.responsesRequiredToBeHealthy||0;let n=this.connReceiver_(this.conn_),r=this.disconnReceiver_(this.conn_);this.tx_=this.conn_,this.rx_=this.conn_,this.secondaryConn_=null,this.isHealthy_=!1,setTimeout(()=>{this.conn_&&this.conn_.open(n,r)},Math.floor(0));let i=e.healthyTimeout||0;i>0&&(this.healthyTimeout_=Vp(()=>{this.healthyTimeout_=null,this.isHealthy_||(this.conn_&&this.conn_.bytesReceived>Dre?(this.log_("Connection exceeded healthy timeout but has received "+this.conn_.bytesReceived+" bytes. Marking connection healthy."),this.isHealthy_=!0,this.conn_.markConnectionHealthy()):this.conn_&&this.conn_.bytesSent>Cre?this.log_("Connection exceeded healthy timeout but has sent "+this.conn_.bytesSent+" bytes. Leaving connection alive."):(this.log_("Closing unhealthy connection after timeout."),this.close()))},Math.floor(i)))}nextTransportId_(){return"c:"+this.id+":"+this.connectionCount++}disconnReceiver_(e){return n=>{e===this.conn_?this.onConnectionLost_(n):e===this.secondaryConn_?(this.log_("Secondary connection lost."),this.onSecondaryConnectionLost_()):this.log_("closing an old connection")}}connReceiver_(e){return n=>{this.state_!==2&&(e===this.rx_?this.onPrimaryMessageReceived_(n):e===this.secondaryConn_?this.onSecondaryMessageReceived_(n):this.log_("message on old connection"))}}sendRequest(e){let n={t:"d",d:e};this.sendData_(n)}tryCleanupConnection(){this.tx_===this.secondaryConn_&&this.rx_===this.secondaryConn_&&(this.log_("cleaning up and promoting a connection: "+this.secondaryConn_.connId),this.conn_=this.secondaryConn_,this.secondaryConn_=null)}onSecondaryControl_(e){if(jN in e){let n=e[jN];n===k2?this.upgradeIfSecondaryHealthy_():n===P2?(this.log_("Got a reset on secondary, closing it"),this.secondaryConn_.close(),(this.tx_===this.secondaryConn_||this.rx_===this.secondaryConn_)&&this.close()):n===x2&&(this.log_("got pong on secondary."),this.secondaryResponsesRequired_--,this.upgradeIfSecondaryHealthy_())}}onSecondaryMessageReceived_(e){let n=xp("t",e),r=xp("d",e);if(n==="c")this.onSecondaryControl_(r);else if(n==="d")this.pendingDataMessages.push(r);else throw new Error("Unknown protocol layer: "+n)}upgradeIfSecondaryHealthy_(){this.secondaryResponsesRequired_<=0?(this.log_("Secondary connection is healthy."),this.isHealthy_=!0,this.secondaryConn_.markConnectionHealthy(),this.proceedWithUpgrade_()):(this.log_("sending ping on secondary."),this.secondaryConn_.send({t:"c",d:{t:U2,d:{}}}))}proceedWithUpgrade_(){this.secondaryConn_.start(),this.log_("sending client ack on secondary"),this.secondaryConn_.send({t:"c",d:{t:k2,d:{}}}),this.log_("Ending transmission on primary"),this.conn_.send({t:"c",d:{t:F2,d:{}}}),this.tx_=this.secondaryConn_,this.tryCleanupConnection()}onPrimaryMessageReceived_(e){let n=xp("t",e),r=xp("d",e);n==="c"?this.onControl_(r):n==="d"&&this.onDataMessage_(r)}onDataMessage_(e){this.onPrimaryResponse_(),this.onMessage_(e)}onPrimaryResponse_(){this.isHealthy_||(this.primaryResponsesRequired_--,this.primaryResponsesRequired_<=0&&(this.log_("Primary connection is healthy."),this.isHealthy_=!0,this.conn_.markConnectionHealthy()))}onControl_(e){let n=xp(jN,e);if(L2 in e){let r=e[L2];if(n===wre){let i=Object.assign({},r);this.repoInfo_.isUsingEmulator&&(i.h=this.repoInfo_.host),this.onHandshake_(i)}else if(n===F2){this.log_("recvd end transmission on primary"),this.rx_=this.secondaryConn_;for(let i=0;i<this.pendingDataMessages.length;++i)this.onDataMessage_(this.pendingDataMessages[i]);this.pendingDataMessages=[],this.tryCleanupConnection()}else n===Rre?this.onConnectionShutdown_(r):n===P2?this.onReset_(r):n===Nre?XN("Server Error: "+r):n===x2?(this.log_("got pong on primary."),this.onPrimaryResponse_(),this.sendPingOnPrimaryIfNecessary_()):XN("Unknown control packet command: "+n)}}onHandshake_(e){let n=e.ts,r=e.v,i=e.h;this.sessionId=e.s,this.repoInfo_.host=i,this.state_===0&&(this.conn_.start(),this.onConnectionEstablished_(this.conn_,n),gy!==r&&xn("Protocol version mismatch detected"),this.tryStartUpgrade_())}tryStartUpgrade_(){let e=this.transportManager_.upgradeTransport();e&&this.startUpgrade_(e)}startUpgrade_(e){this.secondaryConn_=new e(this.nextTransportId_(),this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,this.sessionId),this.secondaryResponsesRequired_=e.responsesRequiredToBeHealthy||0;let n=this.connReceiver_(this.secondaryConn_),r=this.disconnReceiver_(this.secondaryConn_);this.secondaryConn_.open(n,r),Vp(()=>{this.secondaryConn_&&(this.log_("Timed out trying to upgrade."),this.secondaryConn_.close())},Math.floor(Sre))}onReset_(e){this.log_("Reset packet received. New host: "+e),this.repoInfo_.host=e,this.state_===1?this.close():(this.closeConnections_(),this.start_())}onConnectionEstablished_(e,n){this.log_("Realtime connection established."),this.conn_=e,this.state_=1,this.onReady_&&(this.onReady_(n,this.sessionId),this.onReady_=null),this.primaryResponsesRequired_===0?(this.log_("Primary connection is healthy."),this.isHealthy_=!0):Vp(()=>{this.sendPingOnPrimaryIfNecessary_()},Math.floor(Are))}sendPingOnPrimaryIfNecessary_(){!this.isHealthy_&&this.state_===1&&(this.log_("sending ping on primary."),this.sendData_({t:"c",d:{t:U2,d:{}}}))}onSecondaryConnectionLost_(){let e=this.secondaryConn_;this.secondaryConn_=null,(this.tx_===e||this.rx_===e)&&this.close()}onConnectionLost_(e){this.conn_=null,!e&&this.state_===0?(this.log_("Realtime connection failed."),this.repoInfo_.isCacheableHost()&&(Jc.remove("host:"+this.repoInfo_.host),this.repoInfo_.internalHost=this.repoInfo_.host)):this.state_===1&&this.log_("Realtime connection lost."),this.close()}onConnectionShutdown_(e){this.log_("Connection shutdown command received. Shutting down..."),this.onKill_&&(this.onKill_(e),this.onKill_=null),this.onDisconnect_=null,this.close()}sendData_(e){if(this.state_!==1)throw"Connection is not connected";this.tx_.send(e)}close(){this.state_!==2&&(this.log_("Closing realtime connection."),this.state_=2,this.closeConnections_(),this.onDisconnect_&&(this.onDisconnect_(),this.onDisconnect_=null))}closeConnections_(){this.log_("Shutting down all connections"),this.conn_&&(this.conn_.close(),this.conn_=null),this.secondaryConn_&&(this.secondaryConn_.close(),this.secondaryConn_=null),this.healthyTimeout_&&(clearTimeout(this.healthyTimeout_),this.healthyTimeout_=null)}};var Ty=class{put(e,n,r,i){}merge(e,n,r,i){}refreshAuthToken(e){}refreshAppCheckToken(e){}onDisconnectPut(e,n,r){}onDisconnectMerge(e,n,r){}onDisconnectCancel(e,n){}reportStats(e){}};var yy=class{constructor(e){this.allowedEvents_=e,this.listeners_={},q(Array.isArray(e)&&e.length>0,"Requires a non-empty array")}trigger(e,...n){if(Array.isArray(this.listeners_[e])){let r=[...this.listeners_[e]];for(let i=0;i<r.length;i++)r[i].callback.apply(r[i].context,n)}}on(e,n,r){this.validateEventType_(e),this.listeners_[e]=this.listeners_[e]||[],this.listeners_[e].push({callback:n,context:r});let i=this.getInitialEvent(e);i&&n.apply(r,i)}off(e,n,r){this.validateEventType_(e);let i=this.listeners_[e]||[];for(let o=0;o<i.length;o++)if(i[o].callback===n&&(!r||r===i[o].context)){i.splice(o,1);return}}validateEventType_(e){q(this.allowedEvents_.find(n=>n===e),"Unknown event: "+e)}};var Iy=class t extends yy{static getInstance(){return new t}constructor(){super(["online"]),this.online_=!0,typeof window<"u"&&typeof window.addEventListener<"u"&&!hp()&&(window.addEventListener("online",()=>{this.online_||(this.online_=!0,this.trigger("online",!0))},!1),window.addEventListener("offline",()=>{this.online_&&(this.online_=!1,this.trigger("online",!1))},!1))}getInitialEvent(e){return q(e==="online","Unknown event type: "+e),[this.online_]}currentlyOnline(){return this.online_}};var V2=32,B2=768,Be=class{constructor(e,n){if(n===void 0){this.pieces_=e.split("/");let r=0;for(let i=0;i<this.pieces_.length;i++)this.pieces_[i].length>0&&(this.pieces_[r]=this.pieces_[i],r++);this.pieces_.length=r,this.pieceNum_=0}else this.pieces_=e,this.pieceNum_=n}toString(){let e="";for(let n=this.pieceNum_;n<this.pieces_.length;n++)this.pieces_[n]!==""&&(e+="/"+this.pieces_[n]);return e||"/"}};function Ve(){return new Be("")}function Ne(t){return t.pieceNum_>=t.pieces_.length?null:t.pieces_[t.pieceNum_]}function ea(t){return t.pieces_.length-t.pieceNum_}function at(t){let e=t.pieceNum_;return e<t.pieces_.length&&e++,new Be(t.pieces_,e)}function Kw(t){return t.pieceNum_<t.pieces_.length?t.pieces_[t.pieces_.length-1]:null}function bre(t){let e="";for(let n=t.pieceNum_;n<t.pieces_.length;n++)t.pieces_[n]!==""&&(e+="/"+encodeURIComponent(String(t.pieces_[n])));return e||"/"}function $p(t,e=0){return t.pieces_.slice(t.pieceNum_+e)}function Nj(t){if(t.pieceNum_>=t.pieces_.length)return null;let e=[];for(let n=t.pieceNum_;n<t.pieces_.length-1;n++)e.push(t.pieces_[n]);return new Be(e,0)}function Ct(t,e){let n=[];for(let r=t.pieceNum_;r<t.pieces_.length;r++)n.push(t.pieces_[r]);if(e instanceof Be)for(let r=e.pieceNum_;r<e.pieces_.length;r++)n.push(e.pieces_[r]);else{let r=e.split("/");for(let i=0;i<r.length;i++)r[i].length>0&&n.push(r[i])}return new Be(n,0)}function we(t){return t.pieceNum_>=t.pieces_.length}function zn(t,e){let n=Ne(t),r=Ne(e);if(n===null)return e;if(n===r)return zn(at(t),at(e));throw new Error("INTERNAL ERROR: innerPath ("+e+") is not within outerPath ("+t+")")}function Ore(t,e){let n=$p(t,0),r=$p(e,0);for(let i=0;i<n.length&&i<r.length;i++){let o=al(n[i],r[i]);if(o!==0)return o}return n.length===r.length?0:n.length<r.length?-1:1}function Yw(t,e){if(ea(t)!==ea(e))return!1;for(let n=t.pieceNum_,r=e.pieceNum_;n<=t.pieces_.length;n++,r++)if(t.pieces_[n]!==e.pieces_[r])return!1;return!0}function jr(t,e){let n=t.pieceNum_,r=e.pieceNum_;if(ea(t)>ea(e))return!1;for(;n<t.pieces_.length;){if(t.pieces_[n]!==e.pieces_[r])return!1;++n,++r}return!0}var iw=class{constructor(e,n){this.errorPrefix_=n,this.parts_=$p(e,0),this.byteLength_=Math.max(1,this.parts_.length);for(let r=0;r<this.parts_.length;r++)this.byteLength_+=mp(this.parts_[r]);wj(this)}};function Mre(t,e){t.parts_.length>0&&(t.byteLength_+=1),t.parts_.push(e),t.byteLength_+=mp(e),wj(t)}function Lre(t){let e=t.parts_.pop();t.byteLength_-=mp(e),t.parts_.length>0&&(t.byteLength_-=1)}function wj(t){if(t.byteLength_>B2)throw new Error(t.errorPrefix_+"has a key path longer than "+B2+" bytes ("+t.byteLength_+").");if(t.parts_.length>V2)throw new Error(t.errorPrefix_+"path specified exceeds the maximum depth that can be written ("+V2+") or object contains a cycle "+Qc(t))}function Qc(t){return t.parts_.length===0?"":"in property '"+t.parts_.join(".")+"'"}var ow=class t extends yy{static getInstance(){return new t}constructor(){super(["visible"]);let e,n;typeof document<"u"&&typeof document.addEventListener<"u"&&(typeof document.hidden<"u"?(n="visibilitychange",e="hidden"):typeof document.mozHidden<"u"?(n="mozvisibilitychange",e="mozHidden"):typeof document.msHidden<"u"?(n="msvisibilitychange",e="msHidden"):typeof document.webkitHidden<"u"&&(n="webkitvisibilitychange",e="webkitHidden")),this.visible_=!0,n&&document.addEventListener(n,()=>{let r=!document[e];r!==this.visible_&&(this.visible_=r,this.trigger("visible",r))},!1)}getInitialEvent(e){return q(e==="visible","Unknown event type: "+e),[this.visible_]}};var kp=1e3,Pre=300*1e3,G2=30*1e3,xre=1.3,kre=3e4,Fre="server_kill",j2=3,Xw=(()=>{class t extends Ty{constructor(n,r,i,o,s,a,c,l){if(super(),this.repoInfo_=n,this.applicationId_=r,this.onDataUpdate_=i,this.onConnectStatus_=o,this.onServerInfoUpdate_=s,this.authTokenProvider_=a,this.appCheckTokenProvider_=c,this.authOverride_=l,this.id=t.nextPersistentConnectionId_++,this.log_=rg("p:"+this.id+":"),this.interruptReasons_={},this.listens=new Map,this.outstandingPuts_=[],this.outstandingGets_=[],this.outstandingPutCount_=0,this.outstandingGetCount_=0,this.onDisconnectRequestQueue_=[],this.connected_=!1,this.reconnectDelay_=kp,this.maxReconnectDelay_=Pre,this.securityDebugCallback_=null,this.lastSessionId=null,this.establishConnectionTimer_=null,this.visible_=!1,this.requestCBHash_={},this.requestNumber_=0,this.realtime_=null,this.authToken_=null,this.appCheckToken_=null,this.forceTokenRefresh_=!1,this.invalidAuthTokenCount_=0,this.invalidAppCheckTokenCount_=0,this.firstConnection_=!0,this.lastConnectionAttemptTime_=null,this.lastConnectionEstablishedTime_=null,l&&!Ki())throw new Error("Auth override specified in options, but not supported on non Node.js platforms");ow.getInstance().on("visible",this.onVisible_,this),n.host.indexOf("fblocal")===-1&&Iy.getInstance().on("online",this.onOnline_,this)}sendRequest(n,r,i){let o=++this.requestNumber_,s={r:o,a:n,b:r};this.log_(xt(s)),q(this.connected_,"sendRequest call when we're not connected not allowed."),this.realtime_.sendRequest(s),i&&(this.requestCBHash_[o]=i)}get(n){this.initConnection_();let r=new cn,o={action:"g",request:{p:n._path.toString(),q:n._queryObject},onComplete:a=>{let c=a.d;a.s==="ok"?r.resolve(c):r.reject(c)}};this.outstandingGets_.push(o),this.outstandingGetCount_++;let s=this.outstandingGets_.length-1;return this.connected_&&this.sendGet_(s),r.promise}listen(n,r,i,o){this.initConnection_();let s=n._queryIdentifier,a=n._path.toString();this.log_("Listen called for "+a+" "+s),this.listens.has(a)||this.listens.set(a,new Map),q(n._queryParams.isDefault()||!n._queryParams.loadsAllData(),"listen() called for non-default but complete query"),q(!this.listens.get(a).has(s),"listen() called twice for same path/queryId.");let c={onComplete:o,hashFn:r,query:n,tag:i};this.listens.get(a).set(s,c),this.connected_&&this.sendListen_(c)}sendGet_(n){let r=this.outstandingGets_[n];this.sendRequest("g",r.request,i=>{delete this.outstandingGets_[n],this.outstandingGetCount_--,this.outstandingGetCount_===0&&(this.outstandingGets_=[]),r.onComplete&&r.onComplete(i)})}sendListen_(n){let r=n.query,i=r._path.toString(),o=r._queryIdentifier;this.log_("Listen on "+i+" for "+o);let s={p:i},a="q";n.tag&&(s.q=r._queryObject,s.t=n.tag),s.h=n.hashFn(),this.sendRequest(a,s,c=>{let l=c.d,d=c.s;t.warnOnListenWarnings_(l,r),(this.listens.get(i)&&this.listens.get(i).get(o))===n&&(this.log_("listen response",c),d!=="ok"&&this.removeListen_(i,o),n.onComplete&&n.onComplete(d,l))})}static warnOnListenWarnings_(n,r){if(n&&typeof n=="object"&&Vr(n,"w")){let i=Fs(n,"w");if(Array.isArray(i)&&~i.indexOf("no_index")){let o='".indexOn": "'+r._queryParams.getIndex().toString()+'"',s=r._path.toString();xn(`Using an unspecified index. Your data will be downloaded and filtered on the client. Consider adding ${o} at ${s} to your security rules for better performance.`)}}}refreshAuthToken(n){this.authToken_=n,this.log_("Auth token refreshed"),this.authToken_?this.tryAuth():this.connected_&&this.sendRequest("unauth",{},()=>{}),this.reduceReconnectDelayIfAdminCredential_(n)}reduceReconnectDelayIfAdminCredential_(n){(n&&n.length===40||hB(n))&&(this.log_("Admin auth credential detected. Reducing max reconnect time."),this.maxReconnectDelay_=G2)}refreshAppCheckToken(n){this.appCheckToken_=n,this.log_("App check token refreshed"),this.appCheckToken_?this.tryAppCheck():this.connected_&&this.sendRequest("unappeck",{},()=>{})}tryAuth(){if(this.connected_&&this.authToken_){let n=this.authToken_,r=dB(n)?"auth":"gauth",i={cred:n};this.authOverride_===null?i.noauth=!0:typeof this.authOverride_=="object"&&(i.authvar=this.authOverride_),this.sendRequest(r,i,o=>{let s=o.s,a=o.d||"error";this.authToken_===n&&(s==="ok"?this.invalidAuthTokenCount_=0:this.onAuthRevoked_(s,a))})}}tryAppCheck(){this.connected_&&this.appCheckToken_&&this.sendRequest("appcheck",{token:this.appCheckToken_},n=>{let r=n.s,i=n.d||"error";r==="ok"?this.invalidAppCheckTokenCount_=0:this.onAppCheckRevoked_(r,i)})}unlisten(n,r){let i=n._path.toString(),o=n._queryIdentifier;this.log_("Unlisten called for "+i+" "+o),q(n._queryParams.isDefault()||!n._queryParams.loadsAllData(),"unlisten() called for non-default but complete query"),this.removeListen_(i,o)&&this.connected_&&this.sendUnlisten_(i,o,n._queryObject,r)}sendUnlisten_(n,r,i,o){this.log_("Unlisten on "+n+" for "+r);let s={p:n},a="n";o&&(s.q=i,s.t=o),this.sendRequest(a,s)}onDisconnectPut(n,r,i){this.initConnection_(),this.connected_?this.sendOnDisconnect_("o",n,r,i):this.onDisconnectRequestQueue_.push({pathString:n,action:"o",data:r,onComplete:i})}onDisconnectMerge(n,r,i){this.initConnection_(),this.connected_?this.sendOnDisconnect_("om",n,r,i):this.onDisconnectRequestQueue_.push({pathString:n,action:"om",data:r,onComplete:i})}onDisconnectCancel(n,r){this.initConnection_(),this.connected_?this.sendOnDisconnect_("oc",n,null,r):this.onDisconnectRequestQueue_.push({pathString:n,action:"oc",data:null,onComplete:r})}sendOnDisconnect_(n,r,i,o){let s={p:r,d:i};this.log_("onDisconnect "+n,s),this.sendRequest(n,s,a=>{o&&setTimeout(()=>{o(a.s,a.d)},Math.floor(0))})}put(n,r,i,o){this.putInternal("p",n,r,i,o)}merge(n,r,i,o){this.putInternal("m",n,r,i,o)}putInternal(n,r,i,o,s){this.initConnection_();let a={p:r,d:i};s!==void 0&&(a.h=s),this.outstandingPuts_.push({action:n,request:a,onComplete:o}),this.outstandingPutCount_++;let c=this.outstandingPuts_.length-1;this.connected_?this.sendPut_(c):this.log_("Buffering put: "+r)}sendPut_(n){let r=this.outstandingPuts_[n].action,i=this.outstandingPuts_[n].request,o=this.outstandingPuts_[n].onComplete;this.outstandingPuts_[n].queued=this.connected_,this.sendRequest(r,i,s=>{this.log_(r+" response",s),delete this.outstandingPuts_[n],this.outstandingPutCount_--,this.outstandingPutCount_===0&&(this.outstandingPuts_=[]),o&&o(s.s,s.d)})}reportStats(n){if(this.connected_){let r={c:n};this.log_("reportStats",r),this.sendRequest("s",r,i=>{if(i.s!=="ok"){let s=i.d;this.log_("reportStats","Error sending stats: "+s)}})}}onDataMessage_(n){if("r"in n){this.log_("from server: "+xt(n));let r=n.r,i=this.requestCBHash_[r];i&&(delete this.requestCBHash_[r],i(n.b))}else{if("error"in n)throw"A server-side error has occurred: "+n.error;"a"in n&&this.onDataPush_(n.a,n.b)}}onDataPush_(n,r){this.log_("handleServerMessage",n,r),n==="d"?this.onDataUpdate_(r.p,r.d,!1,r.t):n==="m"?this.onDataUpdate_(r.p,r.d,!0,r.t):n==="c"?this.onListenRevoked_(r.p,r.q):n==="ac"?this.onAuthRevoked_(r.s,r.d):n==="apc"?this.onAppCheckRevoked_(r.s,r.d):n==="sd"?this.onSecurityDebugPacket_(r):XN("Unrecognized action received from server: "+xt(n)+`
151
151
  Are you using the latest client?`)}onReady_(n,r){this.log_("connection ready"),this.connected_=!0,this.lastConnectionEstablishedTime_=new Date().getTime(),this.handleTimestamp_(n),this.lastSessionId=r,this.firstConnection_&&this.sendConnectStats_(),this.restoreState_(),this.firstConnection_=!1,this.onConnectStatus_(!0)}scheduleConnect_(n){q(!this.realtime_,"Scheduling a connect when we're already connected/ing?"),this.establishConnectionTimer_&&clearTimeout(this.establishConnectionTimer_),this.establishConnectionTimer_=setTimeout(()=>{this.establishConnectionTimer_=null,this.establishConnection_()},Math.floor(n))}initConnection_(){!this.realtime_&&this.firstConnection_&&this.scheduleConnect_(0)}onVisible_(n){n&&!this.visible_&&this.reconnectDelay_===this.maxReconnectDelay_&&(this.log_("Window became visible. Reducing delay."),this.reconnectDelay_=kp,this.realtime_||this.scheduleConnect_(0)),this.visible_=n}onOnline_(n){n?(this.log_("Browser went online."),this.reconnectDelay_=kp,this.realtime_||this.scheduleConnect_(0)):(this.log_("Browser went offline. Killing connection."),this.realtime_&&this.realtime_.close())}onRealtimeDisconnect_(){if(this.log_("data client disconnected"),this.connected_=!1,this.realtime_=null,this.cancelSentTransactions_(),this.requestCBHash_={},this.shouldReconnect_()){this.visible_?this.lastConnectionEstablishedTime_&&(new Date().getTime()-this.lastConnectionEstablishedTime_>kre&&(this.reconnectDelay_=kp),this.lastConnectionEstablishedTime_=null):(this.log_("Window isn't visible. Delaying reconnect."),this.reconnectDelay_=this.maxReconnectDelay_,this.lastConnectionAttemptTime_=new Date().getTime());let n=Math.max(0,new Date().getTime()-this.lastConnectionAttemptTime_),r=Math.max(0,this.reconnectDelay_-n);r=Math.random()*r,this.log_("Trying to reconnect in "+r+"ms"),this.scheduleConnect_(r),this.reconnectDelay_=Math.min(this.maxReconnectDelay_,this.reconnectDelay_*xre)}this.onConnectStatus_(!1)}establishConnection_(){return y(this,null,function*(){if(this.shouldReconnect_()){this.log_("Making a connection attempt"),this.lastConnectionAttemptTime_=new Date().getTime(),this.lastConnectionEstablishedTime_=null;let n=this.onDataMessage_.bind(this),r=this.onReady_.bind(this),i=this.onRealtimeDisconnect_.bind(this),o=this.id+":"+t.nextConnectionId_++,s=this.lastSessionId,a=!1,c=null,l=function(){c?c.close():(a=!0,i())},d=function(f){q(c,"sendRequest call when we're not connected not allowed."),c.sendRequest(f)};this.realtime_={close:l,sendRequest:d};let h=this.forceTokenRefresh_;this.forceTokenRefresh_=!1;try{let[f,g]=yield Promise.all([this.authTokenProvider_.getToken(h),this.appCheckTokenProvider_.getToken(h)]);a?un("getToken() completed but was canceled"):(un("getToken() completed. Creating connection."),this.authToken_=f&&f.accessToken,this.appCheckToken_=g&&g.token,c=new rw(o,this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,n,r,i,E=>{xn(E+" ("+this.repoInfo_.toString()+")"),this.interrupt(Fre)},s))}catch(f){this.log_("Failed to get token: "+f),a||(this.repoInfo_.nodeAdmin&&xn(f),l())}}})}interrupt(n){un("Interrupting connection for reason: "+n),this.interruptReasons_[n]=!0,this.realtime_?this.realtime_.close():(this.establishConnectionTimer_&&(clearTimeout(this.establishConnectionTimer_),this.establishConnectionTimer_=null),this.connected_&&this.onRealtimeDisconnect_())}resume(n){un("Resuming connection for reason: "+n),delete this.interruptReasons_[n],fp(this.interruptReasons_)&&(this.reconnectDelay_=kp,this.realtime_||this.scheduleConnect_(0))}handleTimestamp_(n){let r=n-new Date().getTime();this.onServerInfoUpdate_({serverTimeOffset:r})}cancelSentTransactions_(){for(let n=0;n<this.outstandingPuts_.length;n++){let r=this.outstandingPuts_[n];r&&"h"in r.request&&r.queued&&(r.onComplete&&r.onComplete("disconnect"),delete this.outstandingPuts_[n],this.outstandingPutCount_--)}this.outstandingPutCount_===0&&(this.outstandingPuts_=[])}onListenRevoked_(n,r){let i;r?i=r.map(s=>zw(s)).join("$"):i="default";let o=this.removeListen_(n,i);o&&o.onComplete&&o.onComplete("permission_denied")}removeListen_(n,r){let i=new Be(n).toString(),o;if(this.listens.has(i)){let s=this.listens.get(i);o=s.get(r),s.delete(r),s.size===0&&this.listens.delete(i)}else o=void 0;return o}onAuthRevoked_(n,r){un("Auth token revoked: "+n+"/"+r),this.authToken_=null,this.forceTokenRefresh_=!0,this.realtime_.close(),(n==="invalid_token"||n==="permission_denied")&&(this.invalidAuthTokenCount_++,this.invalidAuthTokenCount_>=j2&&(this.reconnectDelay_=G2,this.authTokenProvider_.notifyForInvalidToken()))}onAppCheckRevoked_(n,r){un("App check token revoked: "+n+"/"+r),this.appCheckToken_=null,this.forceTokenRefresh_=!0,(n==="invalid_token"||n==="permission_denied")&&(this.invalidAppCheckTokenCount_++,this.invalidAppCheckTokenCount_>=j2&&this.appCheckTokenProvider_.notifyForInvalidToken())}onSecurityDebugPacket_(n){this.securityDebugCallback_?this.securityDebugCallback_(n):"msg"in n&&console.log("FIREBASE: "+n.msg.replace(`
152
152
  `,`
153
- FIREBASE: `))}restoreState_(){this.tryAuth(),this.tryAppCheck();for(let n of this.listens.values())for(let r of n.values())this.sendListen_(r);for(let n=0;n<this.outstandingPuts_.length;n++)this.outstandingPuts_[n]&&this.sendPut_(n);for(;this.onDisconnectRequestQueue_.length;){let n=this.onDisconnectRequestQueue_.shift();this.sendOnDisconnect_(n.action,n.pathString,n.data,n.onComplete)}for(let n=0;n<this.outstandingGets_.length;n++)this.outstandingGets_[n]&&this.sendGet_(n)}sendConnectStats_(){let n={},r="js";Ki()&&(this.repoInfo_.nodeAdmin?r="admin_node":r="node"),n["sdk."+r+"."+Ww.replace(/\./g,"-")]=1,hp()?n["framework.cordova"]=1:UT()&&(n["framework.reactnative"]=1),this.reportStats(n)}shouldReconnect_(){let n=Iy.getInstance().currentlyOnline();return fp(this.interruptReasons_)&&n}}t.nextPersistentConnectionId_=0,t.nextConnectionId_=0;return t})(),Oe=class t{constructor(e,n){this.name=e,this.node=n}static Wrap(e,n){return new t(e,n)}};var vd=class{getCompare(){return this.compare.bind(this)}indexedValueChanged(e,n){let r=new Oe(tl,e),i=new Oe(tl,n);return this.compare(r,i)!==0}minPost(){return Oe.MIN}};var py,vy=class extends vd{static get __EMPTY_NODE(){return py}static set __EMPTY_NODE(e){py=e}compare(e,n){return al(e.name,n.name)}isDefinedOn(e){throw kc("KeyIndex.isDefinedOn not expected to be called.")}indexedValueChanged(e,n){return!1}minPost(){return Oe.MIN}maxPost(){return new Oe(Zs,py)}makePost(e,n){return q(typeof e=="string","KeyIndex indexValue must always be a string."),new Oe(e,py)}toString(){return".key"}},el=new vy;var yd=class{constructor(e,n,r,i,o=null){this.isReverse_=i,this.resultGenerator_=o,this.nodeStack_=[];let s=1;for(;!e.isEmpty();)if(e=e,s=n?r(e.key,n):1,i&&(s*=-1),s<0)this.isReverse_?e=e.left:e=e.right;else if(s===0){this.nodeStack_.push(e);break}else this.nodeStack_.push(e),this.isReverse_?e=e.right:e=e.left}getNext(){if(this.nodeStack_.length===0)return null;let e=this.nodeStack_.pop(),n;if(this.resultGenerator_?n=this.resultGenerator_(e.key,e.value):n={key:e.key,value:e.value},this.isReverse_)for(e=e.left;!e.isEmpty();)this.nodeStack_.push(e),e=e.right;else for(e=e.right;!e.isEmpty();)this.nodeStack_.push(e),e=e.left;return n}hasNext(){return this.nodeStack_.length>0}peek(){if(this.nodeStack_.length===0)return null;let e=this.nodeStack_[this.nodeStack_.length-1];return this.resultGenerator_?this.resultGenerator_(e.key,e.value):{key:e.key,value:e.value}}},ui=(()=>{class t{constructor(n,r,i,o,s){this.key=n,this.value=r,this.color=i??t.RED,this.left=o??Hr.EMPTY_NODE,this.right=s??Hr.EMPTY_NODE}copy(n,r,i,o,s){return new t(n??this.key,r??this.value,i??this.color,o??this.left,s??this.right)}count(){return this.left.count()+1+this.right.count()}isEmpty(){return!1}inorderTraversal(n){return this.left.inorderTraversal(n)||!!n(this.key,this.value)||this.right.inorderTraversal(n)}reverseTraversal(n){return this.right.reverseTraversal(n)||n(this.key,this.value)||this.left.reverseTraversal(n)}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(n,r,i){let o=this,s=i(n,o.key);return s<0?o=o.copy(null,null,null,o.left.insert(n,r,i),null):s===0?o=o.copy(null,r,null,null,null):o=o.copy(null,null,null,null,o.right.insert(n,r,i)),o.fixUp_()}removeMin_(){if(this.left.isEmpty())return Hr.EMPTY_NODE;let n=this;return!n.left.isRed_()&&!n.left.left.isRed_()&&(n=n.moveRedLeft_()),n=n.copy(null,null,null,n.left.removeMin_(),null),n.fixUp_()}remove(n,r){let i,o;if(i=this,r(n,i.key)<0)!i.left.isEmpty()&&!i.left.isRed_()&&!i.left.left.isRed_()&&(i=i.moveRedLeft_()),i=i.copy(null,null,null,i.left.remove(n,r),null);else{if(i.left.isRed_()&&(i=i.rotateRight_()),!i.right.isEmpty()&&!i.right.isRed_()&&!i.right.left.isRed_()&&(i=i.moveRedRight_()),r(n,i.key)===0){if(i.right.isEmpty())return Hr.EMPTY_NODE;o=i.right.min_(),i=i.copy(o.key,o.value,null,null,i.right.removeMin_())}i=i.copy(null,null,null,null,i.right.remove(n,r))}return i.fixUp_()}isRed_(){return this.color}fixUp_(){let n=this;return n.right.isRed_()&&!n.left.isRed_()&&(n=n.rotateLeft_()),n.left.isRed_()&&n.left.left.isRed_()&&(n=n.rotateRight_()),n.left.isRed_()&&n.right.isRed_()&&(n=n.colorFlip_()),n}moveRedLeft_(){let n=this.colorFlip_();return n.right.left.isRed_()&&(n=n.copy(null,null,null,null,n.right.rotateRight_()),n=n.rotateLeft_(),n=n.colorFlip_()),n}moveRedRight_(){let n=this.colorFlip_();return n.left.left.isRed_()&&(n=n.rotateRight_(),n=n.colorFlip_()),n}rotateLeft_(){let n=this.copy(null,null,t.RED,null,this.right.left);return this.right.copy(null,null,this.color,n,null)}rotateRight_(){let n=this.copy(null,null,t.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,n)}colorFlip_(){let n=this.left.copy(null,null,!this.left.color,null,null),r=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,n,r)}checkMaxDepth_(){let n=this.check_();return Math.pow(2,n)<=this.count()+1}check_(){if(this.isRed_()&&this.left.isRed_())throw new Error("Red node has red child("+this.key+","+this.value+")");if(this.right.isRed_())throw new Error("Right child of ("+this.key+","+this.value+") is red");let n=this.left.check_();if(n!==this.right.check_())throw new Error("Black depths differ");return n+(this.isRed_()?0:1)}}return t.RED=!0,t.BLACK=!1,t})(),sw=class{copy(e,n,r,i,o){return this}insert(e,n,r){return new ui(e,n,null)}remove(e,n){return this}count(){return 0}isEmpty(){return!0}inorderTraversal(e){return!1}reverseTraversal(e){return!1}minKey(){return null}maxKey(){return null}check_(){return 0}isRed_(){return!1}},Hr=class t{constructor(e,n=t.EMPTY_NODE){this.comparator_=e,this.root_=n}insert(e,n){return new t(this.comparator_,this.root_.insert(e,n,this.comparator_).copy(null,null,ui.BLACK,null,null))}remove(e){return new t(this.comparator_,this.root_.remove(e,this.comparator_).copy(null,null,ui.BLACK,null,null))}get(e){let n,r=this.root_;for(;!r.isEmpty();){if(n=this.comparator_(e,r.key),n===0)return r.value;n<0?r=r.left:n>0&&(r=r.right)}return null}getPredecessorKey(e){let n,r=this.root_,i=null;for(;!r.isEmpty();)if(n=this.comparator_(e,r.key),n===0){if(r.left.isEmpty())return i?i.key:null;for(r=r.left;!r.right.isEmpty();)r=r.right;return r.key}else n<0?r=r.left:n>0&&(i=r,r=r.right);throw new Error("Attempted to find predecessor key for a nonexistent key. What gives?")}isEmpty(){return this.root_.isEmpty()}count(){return this.root_.count()}minKey(){return this.root_.minKey()}maxKey(){return this.root_.maxKey()}inorderTraversal(e){return this.root_.inorderTraversal(e)}reverseTraversal(e){return this.root_.reverseTraversal(e)}getIterator(e){return new yd(this.root_,null,this.comparator_,!1,e)}getIteratorFrom(e,n){return new yd(this.root_,e,this.comparator_,!1,n)}getReverseIteratorFrom(e,n){return new yd(this.root_,e,this.comparator_,!0,n)}getReverseIterator(e){return new yd(this.root_,null,this.comparator_,!0,e)}};Hr.EMPTY_NODE=new sw;function Ure(t,e){return al(t.name,e.name)}function Qw(t,e){return al(t,e)}var aw;function Vre(t){aw=t}var bj=function(t){return typeof t=="number"?"number:"+dj(t):"string:"+t},Oj=function(t){if(t.isLeafNode()){let e=t.val();q(typeof e=="string"||typeof e=="number"||typeof e=="object"&&Vr(e,".sv"),"Priority must be a string or number.")}else q(t===aw||t.isEmpty(),"priority of unexpected type.");q(t===aw||t.getPriority().isEmpty(),"Priority nodes can't have a priority of their own.")};var H2,Sd=(()=>{class t{static set __childrenNodeConstructor(n){H2=n}static get __childrenNodeConstructor(){return H2}constructor(n,r=t.__childrenNodeConstructor.EMPTY_NODE){this.value_=n,this.priorityNode_=r,this.lazyHash_=null,q(this.value_!==void 0&&this.value_!==null,"LeafNode shouldn't be created with null/undefined value."),Oj(this.priorityNode_)}isLeafNode(){return!0}getPriority(){return this.priorityNode_}updatePriority(n){return new t(this.value_,n)}getImmediateChild(n){return n===".priority"?this.priorityNode_:t.__childrenNodeConstructor.EMPTY_NODE}getChild(n){return we(n)?this:Ne(n)===".priority"?this.priorityNode_:t.__childrenNodeConstructor.EMPTY_NODE}hasChild(){return!1}getPredecessorChildName(n,r){return null}updateImmediateChild(n,r){return n===".priority"?this.updatePriority(r):r.isEmpty()&&n!==".priority"?this:t.__childrenNodeConstructor.EMPTY_NODE.updateImmediateChild(n,r).updatePriority(this.priorityNode_)}updateChild(n,r){let i=Ne(n);return i===null?r:r.isEmpty()&&i!==".priority"?this:(q(i!==".priority"||ea(n)===1,".priority must be the last token in a path"),this.updateImmediateChild(i,t.__childrenNodeConstructor.EMPTY_NODE.updateChild(at(n),r)))}isEmpty(){return!1}numChildren(){return 0}forEachChild(n,r){return!1}val(n){return n&&!this.getPriority().isEmpty()?{".value":this.getValue(),".priority":this.getPriority().val()}:this.getValue()}hash(){if(this.lazyHash_===null){let n="";this.priorityNode_.isEmpty()||(n+="priority:"+bj(this.priorityNode_.val())+":");let r=typeof this.value_;n+=r+":",r==="number"?n+=dj(this.value_):n+=this.value_,this.lazyHash_=lj(n)}return this.lazyHash_}getValue(){return this.value_}compareTo(n){return n===t.__childrenNodeConstructor.EMPTY_NODE?1:n instanceof t.__childrenNodeConstructor?-1:(q(n.isLeafNode(),"Unknown node type"),this.compareToLeafNode_(n))}compareToLeafNode_(n){let r=typeof n.value_,i=typeof this.value_,o=t.VALUE_TYPE_ORDER.indexOf(r),s=t.VALUE_TYPE_ORDER.indexOf(i);return q(o>=0,"Unknown leaf type: "+r),q(s>=0,"Unknown leaf type: "+i),o===s?i==="object"?0:this.value_<n.value_?-1:this.value_===n.value_?0:1:s-o}withIndex(){return this}isIndexed(){return!0}equals(n){if(n===this)return!0;if(n.isLeafNode()){let r=n;return this.value_===r.value_&&this.priorityNode_.equals(r.priorityNode_)}else return!1}}t.VALUE_TYPE_ORDER=["object","boolean","number","string"];return t})(),Mj,Lj;function Bre(t){Mj=t}function Gre(t){Lj=t}var cw=class extends vd{compare(e,n){let r=e.node.getPriority(),i=n.node.getPriority(),o=r.compareTo(i);return o===0?al(e.name,n.name):o}isDefinedOn(e){return!e.getPriority().isEmpty()}indexedValueChanged(e,n){return!e.getPriority().equals(n.getPriority())}minPost(){return Oe.MIN}maxPost(){return new Oe(Zs,new Sd("[PRIORITY-POST]",Lj))}makePost(e,n){let r=Mj(e);return new Oe(n,new Sd("[PRIORITY-POST]",r))}toString(){return".priority"}},ft=new cw;var jre=Math.log(2),lw=class{constructor(e){let n=o=>parseInt(Math.log(o)/jre,10),r=o=>parseInt(Array(o+1).join("1"),2);this.count=n(e+1),this.current_=this.count-1;let i=r(this.count);this.bits_=e+1&i}nextBitIsOne(){let e=!(this.bits_&1<<this.current_);return this.current_--,e}},Sy=function(t,e,n,r){t.sort(e);let i=function(c,l){let d=l-c,h,f;if(d===0)return null;if(d===1)return h=t[c],f=n?n(h):h,new ui(f,h.node,ui.BLACK,null,null);{let g=parseInt(d/2,10)+c,E=i(c,g),I=i(g+1,l);return h=t[g],f=n?n(h):h,new ui(f,h.node,ui.BLACK,E,I)}},o=function(c){let l=null,d=null,h=t.length,f=function(E,I){let S=h-E,L=h;h-=E;let V=i(S+1,L),K=t[S],oe=n?n(K):K;g(new ui(oe,K.node,I,null,V))},g=function(E){l?(l.left=E,l=E):(d=E,l=E)};for(let E=0;E<c.count;++E){let I=c.nextBitIsOne(),S=Math.pow(2,c.count-(E+1));I?f(S,ui.BLACK):(f(S,ui.BLACK),f(S,ui.RED))}return d},s=new lw(t.length),a=o(s);return new Hr(r||e,a)};var HN,_d={},Ad=class t{static get Default(){return q(_d&&ft,"ChildrenNode.ts has not been loaded"),HN=HN||new t({".priority":_d},{".priority":ft}),HN}constructor(e,n){this.indexes_=e,this.indexSet_=n}get(e){let n=Fs(this.indexes_,e);if(!n)throw new Error("No index defined for "+e);return n instanceof Hr?n:null}hasIndex(e){return Vr(this.indexSet_,e.toString())}addIndex(e,n){q(e!==el,"KeyIndex always exists and isn't meant to be added to the IndexMap.");let r=[],i=!1,o=n.getIterator(Oe.Wrap),s=o.getNext();for(;s;)i=i||e.isDefinedOn(s.node),r.push(s),s=o.getNext();let a;i?a=Sy(r,e.getCompare()):a=_d;let c=e.toString(),l=Object.assign({},this.indexSet_);l[c]=e;let d=Object.assign({},this.indexes_);return d[c]=a,new t(d,l)}addToIndexes(e,n){let r=pp(this.indexes_,(i,o)=>{let s=Fs(this.indexSet_,o);if(q(s,"Missing index implementation for "+o),i===_d)if(s.isDefinedOn(e.node)){let a=[],c=n.getIterator(Oe.Wrap),l=c.getNext();for(;l;)l.name!==e.name&&a.push(l),l=c.getNext();return a.push(e),Sy(a,s.getCompare())}else return _d;else{let a=n.get(e.name),c=i;return a&&(c=c.remove(new Oe(e.name,a))),c.insert(e,e.node)}});return new t(r,this.indexSet_)}removeFromIndexes(e,n){let r=pp(this.indexes_,i=>{if(i===_d)return i;{let o=n.get(e.name);return o?i.remove(new Oe(e.name,o)):i}});return new t(r,this.indexSet_)}};var Fp,ve=(()=>{class t{static get EMPTY_NODE(){return Fp||(Fp=new t(new Hr(Qw),null,Ad.Default))}constructor(n,r,i){this.children_=n,this.priorityNode_=r,this.indexMap_=i,this.lazyHash_=null,this.priorityNode_&&Oj(this.priorityNode_),this.children_.isEmpty()&&q(!this.priorityNode_||this.priorityNode_.isEmpty(),"An empty node cannot have a priority")}isLeafNode(){return!1}getPriority(){return this.priorityNode_||Fp}updatePriority(n){return this.children_.isEmpty()?this:new t(this.children_,n,this.indexMap_)}getImmediateChild(n){if(n===".priority")return this.getPriority();{let r=this.children_.get(n);return r===null?Fp:r}}getChild(n){let r=Ne(n);return r===null?this:this.getImmediateChild(r).getChild(at(n))}hasChild(n){return this.children_.get(n)!==null}updateImmediateChild(n,r){if(q(r,"We should always be passing snapshot nodes"),n===".priority")return this.updatePriority(r);{let i=new Oe(n,r),o,s;r.isEmpty()?(o=this.children_.remove(n),s=this.indexMap_.removeFromIndexes(i,this.children_)):(o=this.children_.insert(n,r),s=this.indexMap_.addToIndexes(i,this.children_));let a=o.isEmpty()?Fp:this.priorityNode_;return new t(o,a,s)}}updateChild(n,r){let i=Ne(n);if(i===null)return r;{q(Ne(n)!==".priority"||ea(n)===1,".priority must be the last token in a path");let o=this.getImmediateChild(i).updateChild(at(n),r);return this.updateImmediateChild(i,o)}}isEmpty(){return this.children_.isEmpty()}numChildren(){return this.children_.count()}val(n){if(this.isEmpty())return null;let r={},i=0,o=0,s=!0;if(this.forEachChild(ft,(a,c)=>{r[a]=c.val(n),i++,s&&t.INTEGER_REGEXP_.test(a)?o=Math.max(o,Number(a)):s=!1}),!n&&s&&o<2*i){let a=[];for(let c in r)a[c]=r[c];return a}else return n&&!this.getPriority().isEmpty()&&(r[".priority"]=this.getPriority().val()),r}hash(){if(this.lazyHash_===null){let n="";this.getPriority().isEmpty()||(n+="priority:"+bj(this.getPriority().val())+":"),this.forEachChild(ft,(r,i)=>{let o=i.hash();o!==""&&(n+=":"+r+":"+o)}),this.lazyHash_=n===""?"":lj(n)}return this.lazyHash_}getPredecessorChildName(n,r,i){let o=this.resolveIndex_(i);if(o){let s=o.getPredecessorKey(new Oe(n,r));return s?s.name:null}else return this.children_.getPredecessorKey(n)}getFirstChildName(n){let r=this.resolveIndex_(n);if(r){let i=r.minKey();return i&&i.name}else return this.children_.minKey()}getFirstChild(n){let r=this.getFirstChildName(n);return r?new Oe(r,this.children_.get(r)):null}getLastChildName(n){let r=this.resolveIndex_(n);if(r){let i=r.maxKey();return i&&i.name}else return this.children_.maxKey()}getLastChild(n){let r=this.getLastChildName(n);return r?new Oe(r,this.children_.get(r)):null}forEachChild(n,r){let i=this.resolveIndex_(n);return i?i.inorderTraversal(o=>r(o.name,o.node)):this.children_.inorderTraversal(r)}getIterator(n){return this.getIteratorFrom(n.minPost(),n)}getIteratorFrom(n,r){let i=this.resolveIndex_(r);if(i)return i.getIteratorFrom(n,o=>o);{let o=this.children_.getIteratorFrom(n.name,Oe.Wrap),s=o.peek();for(;s!=null&&r.compare(s,n)<0;)o.getNext(),s=o.peek();return o}}getReverseIterator(n){return this.getReverseIteratorFrom(n.maxPost(),n)}getReverseIteratorFrom(n,r){let i=this.resolveIndex_(r);if(i)return i.getReverseIteratorFrom(n,o=>o);{let o=this.children_.getReverseIteratorFrom(n.name,Oe.Wrap),s=o.peek();for(;s!=null&&r.compare(s,n)>0;)o.getNext(),s=o.peek();return o}}compareTo(n){return this.isEmpty()?n.isEmpty()?0:-1:n.isLeafNode()||n.isEmpty()?1:n===ig?-1:0}withIndex(n){if(n===el||this.indexMap_.hasIndex(n))return this;{let r=this.indexMap_.addIndex(n,this.children_);return new t(this.children_,this.priorityNode_,r)}}isIndexed(n){return n===el||this.indexMap_.hasIndex(n)}equals(n){if(n===this)return!0;if(n.isLeafNode())return!1;{let r=n;if(this.getPriority().equals(r.getPriority()))if(this.children_.count()===r.children_.count()){let i=this.getIterator(ft),o=r.getIterator(ft),s=i.getNext(),a=o.getNext();for(;s&&a;){if(s.name!==a.name||!s.node.equals(a.node))return!1;s=i.getNext(),a=o.getNext()}return s===null&&a===null}else return!1;else return!1}}resolveIndex_(n){return n===el?null:this.indexMap_.get(n.toString())}}return t.INTEGER_REGEXP_=/^(0|[1-9]\d*)$/,t})(),uw=class extends ve{constructor(){super(new Hr(Qw),ve.EMPTY_NODE,Ad.Default)}compareTo(e){return e===this?0:1}equals(e){return e===this}getPriority(){return this}getImmediateChild(e){return ve.EMPTY_NODE}isEmpty(){return!1}},ig=new uw;Object.defineProperties(Oe,{MIN:{value:new Oe(tl,ve.EMPTY_NODE)},MAX:{value:new Oe(Zs,ig)}});vy.__EMPTY_NODE=ve.EMPTY_NODE;Sd.__childrenNodeConstructor=ve;Vre(ig);Gre(ig);var Hre=!0;function At(t,e=null){if(t===null)return ve.EMPTY_NODE;if(typeof t=="object"&&".priority"in t&&(e=t[".priority"]),q(e===null||typeof e=="string"||typeof e=="number"||typeof e=="object"&&".sv"in e,"Invalid priority type found: "+typeof e),typeof t=="object"&&".value"in t&&t[".value"]!==null&&(t=t[".value"]),typeof t!="object"||".sv"in t){let n=t;return new Sd(n,At(e))}if(!(t instanceof Array)&&Hre){let n=[],r=!1;if(dn(t,(s,a)=>{if(s.substring(0,1)!=="."){let c=At(a);c.isEmpty()||(r=r||!c.getPriority().isEmpty(),n.push(new Oe(s,c)))}}),n.length===0)return ve.EMPTY_NODE;let o=Sy(n,Ure,s=>s.name,Qw);if(r){let s=Sy(n,ft.getCompare());return new ve(o,At(e),new Ad({".priority":s},{".priority":ft}))}else return new ve(o,At(e),Ad.Default)}else{let n=ve.EMPTY_NODE;return dn(t,(r,i)=>{if(Vr(t,r)&&r.substring(0,1)!=="."){let o=At(i);(o.isLeafNode()||!o.isEmpty())&&(n=n.updateImmediateChild(r,o))}}),n.updatePriority(At(e))}}Bre(At);var Wp=class extends vd{constructor(e){super(),this.indexPath_=e,q(!we(e)&&Ne(e)!==".priority","Can't create PathIndex with empty path or .priority key")}extractChild(e){return e.getChild(this.indexPath_)}isDefinedOn(e){return!e.getChild(this.indexPath_).isEmpty()}compare(e,n){let r=this.extractChild(e.node),i=this.extractChild(n.node),o=r.compareTo(i);return o===0?al(e.name,n.name):o}makePost(e,n){let r=At(e),i=ve.EMPTY_NODE.updateChild(this.indexPath_,r);return new Oe(n,i)}maxPost(){let e=ve.EMPTY_NODE.updateChild(this.indexPath_,ig);return new Oe(Zs,e)}toString(){return $p(this.indexPath_,0).join("/")}};var dw=class extends vd{compare(e,n){let r=e.node.compareTo(n.node);return r===0?al(e.name,n.name):r}isDefinedOn(e){return!0}indexedValueChanged(e,n){return!e.equals(n)}minPost(){return Oe.MIN}maxPost(){return Oe.MAX}makePost(e,n){let r=At(e);return new Oe(n,r)}toString(){return".value"}},Pj=new dw;function xj(t){return{type:"value",snapshotNode:t}}function Cd(t,e){return{type:"child_added",snapshotNode:e,childName:t}}function zp(t,e){return{type:"child_removed",snapshotNode:e,childName:t}}function qp(t,e,n){return{type:"child_changed",snapshotNode:e,childName:t,oldSnap:n}}function $re(t,e){return{type:"child_moved",snapshotNode:e,childName:t}}var Kp=class{constructor(e){this.index_=e}updateChild(e,n,r,i,o,s){q(e.isIndexed(this.index_),"A node must be indexed if only a child is updated");let a=e.getImmediateChild(n);return a.getChild(i).equals(r.getChild(i))&&a.isEmpty()===r.isEmpty()||(s!=null&&(r.isEmpty()?e.hasChild(n)?s.trackChildChange(zp(n,a)):q(e.isLeafNode(),"A child remove without an old child only makes sense on a leaf node"):a.isEmpty()?s.trackChildChange(Cd(n,r)):s.trackChildChange(qp(n,r,a))),e.isLeafNode()&&r.isEmpty())?e:e.updateImmediateChild(n,r).withIndex(this.index_)}updateFullNode(e,n,r){return r!=null&&(e.isLeafNode()||e.forEachChild(ft,(i,o)=>{n.hasChild(i)||r.trackChildChange(zp(i,o))}),n.isLeafNode()||n.forEachChild(ft,(i,o)=>{if(e.hasChild(i)){let s=e.getImmediateChild(i);s.equals(o)||r.trackChildChange(qp(i,o,s))}else r.trackChildChange(Cd(i,o))})),n.withIndex(this.index_)}updatePriority(e,n){return e.isEmpty()?ve.EMPTY_NODE:e.updatePriority(n)}filtersNodes(){return!1}getIndexedFilter(){return this}getIndex(){return this.index_}};var Ay=class t{constructor(e){this.indexedFilter_=new Kp(e.getIndex()),this.index_=e.getIndex(),this.startPost_=t.getStartPost_(e),this.endPost_=t.getEndPost_(e),this.startIsInclusive_=!e.startAfterSet_,this.endIsInclusive_=!e.endBeforeSet_}getStartPost(){return this.startPost_}getEndPost(){return this.endPost_}matches(e){let n=this.startIsInclusive_?this.index_.compare(this.getStartPost(),e)<=0:this.index_.compare(this.getStartPost(),e)<0,r=this.endIsInclusive_?this.index_.compare(e,this.getEndPost())<=0:this.index_.compare(e,this.getEndPost())<0;return n&&r}updateChild(e,n,r,i,o,s){return this.matches(new Oe(n,r))||(r=ve.EMPTY_NODE),this.indexedFilter_.updateChild(e,n,r,i,o,s)}updateFullNode(e,n,r){n.isLeafNode()&&(n=ve.EMPTY_NODE);let i=n.withIndex(this.index_);i=i.updatePriority(ve.EMPTY_NODE);let o=this;return n.forEachChild(ft,(s,a)=>{o.matches(new Oe(s,a))||(i=i.updateImmediateChild(s,ve.EMPTY_NODE))}),this.indexedFilter_.updateFullNode(e,i,r)}updatePriority(e,n){return e}filtersNodes(){return!0}getIndexedFilter(){return this.indexedFilter_}getIndex(){return this.index_}static getStartPost_(e){if(e.hasStart()){let n=e.getIndexStartName();return e.getIndex().makePost(e.getIndexStartValue(),n)}else return e.getIndex().minPost()}static getEndPost_(e){if(e.hasEnd()){let n=e.getIndexEndName();return e.getIndex().makePost(e.getIndexEndValue(),n)}else return e.getIndex().maxPost()}};var hw=class{constructor(e){this.withinDirectionalStart=n=>this.reverse_?this.withinEndPost(n):this.withinStartPost(n),this.withinDirectionalEnd=n=>this.reverse_?this.withinStartPost(n):this.withinEndPost(n),this.withinStartPost=n=>{let r=this.index_.compare(this.rangedFilter_.getStartPost(),n);return this.startIsInclusive_?r<=0:r<0},this.withinEndPost=n=>{let r=this.index_.compare(n,this.rangedFilter_.getEndPost());return this.endIsInclusive_?r<=0:r<0},this.rangedFilter_=new Ay(e),this.index_=e.getIndex(),this.limit_=e.getLimit(),this.reverse_=!e.isViewFromLeft(),this.startIsInclusive_=!e.startAfterSet_,this.endIsInclusive_=!e.endBeforeSet_}updateChild(e,n,r,i,o,s){return this.rangedFilter_.matches(new Oe(n,r))||(r=ve.EMPTY_NODE),e.getImmediateChild(n).equals(r)?e:e.numChildren()<this.limit_?this.rangedFilter_.getIndexedFilter().updateChild(e,n,r,i,o,s):this.fullLimitUpdateChild_(e,n,r,o,s)}updateFullNode(e,n,r){let i;if(n.isLeafNode()||n.isEmpty())i=ve.EMPTY_NODE.withIndex(this.index_);else if(this.limit_*2<n.numChildren()&&n.isIndexed(this.index_)){i=ve.EMPTY_NODE.withIndex(this.index_);let o;this.reverse_?o=n.getReverseIteratorFrom(this.rangedFilter_.getEndPost(),this.index_):o=n.getIteratorFrom(this.rangedFilter_.getStartPost(),this.index_);let s=0;for(;o.hasNext()&&s<this.limit_;){let a=o.getNext();if(this.withinDirectionalStart(a))if(this.withinDirectionalEnd(a))i=i.updateImmediateChild(a.name,a.node),s++;else break;else continue}}else{i=n.withIndex(this.index_),i=i.updatePriority(ve.EMPTY_NODE);let o;this.reverse_?o=i.getReverseIterator(this.index_):o=i.getIterator(this.index_);let s=0;for(;o.hasNext();){let a=o.getNext();s<this.limit_&&this.withinDirectionalStart(a)&&this.withinDirectionalEnd(a)?s++:i=i.updateImmediateChild(a.name,ve.EMPTY_NODE)}}return this.rangedFilter_.getIndexedFilter().updateFullNode(e,i,r)}updatePriority(e,n){return e}filtersNodes(){return!0}getIndexedFilter(){return this.rangedFilter_.getIndexedFilter()}getIndex(){return this.index_}fullLimitUpdateChild_(e,n,r,i,o){let s;if(this.reverse_){let h=this.index_.getCompare();s=(f,g)=>h(g,f)}else s=this.index_.getCompare();let a=e;q(a.numChildren()===this.limit_,"");let c=new Oe(n,r),l=this.reverse_?a.getFirstChild(this.index_):a.getLastChild(this.index_),d=this.rangedFilter_.matches(c);if(a.hasChild(n)){let h=a.getImmediateChild(n),f=i.getChildAfterChild(this.index_,l,this.reverse_);for(;f!=null&&(f.name===n||a.hasChild(f.name));)f=i.getChildAfterChild(this.index_,f,this.reverse_);let g=f==null?1:s(f,c);if(d&&!r.isEmpty()&&g>=0)return o?.trackChildChange(qp(n,r,h)),a.updateImmediateChild(n,r);{o?.trackChildChange(zp(n,h));let I=a.updateImmediateChild(n,ve.EMPTY_NODE);return f!=null&&this.rangedFilter_.matches(f)?(o?.trackChildChange(Cd(f.name,f.node)),I.updateImmediateChild(f.name,f.node)):I}}else return r.isEmpty()?e:d&&s(l,c)>=0?(o!=null&&(o.trackChildChange(zp(l.name,l.node)),o.trackChildChange(Cd(n,r))),a.updateImmediateChild(n,r).updateImmediateChild(l.name,ve.EMPTY_NODE)):e}};var fw=class t{constructor(){this.limitSet_=!1,this.startSet_=!1,this.startNameSet_=!1,this.startAfterSet_=!1,this.endSet_=!1,this.endNameSet_=!1,this.endBeforeSet_=!1,this.limit_=0,this.viewFrom_="",this.indexStartValue_=null,this.indexStartName_="",this.indexEndValue_=null,this.indexEndName_="",this.index_=ft}hasStart(){return this.startSet_}isViewFromLeft(){return this.viewFrom_===""?this.startSet_:this.viewFrom_==="l"}getIndexStartValue(){return q(this.startSet_,"Only valid if start has been set"),this.indexStartValue_}getIndexStartName(){return q(this.startSet_,"Only valid if start has been set"),this.startNameSet_?this.indexStartName_:tl}hasEnd(){return this.endSet_}getIndexEndValue(){return q(this.endSet_,"Only valid if end has been set"),this.indexEndValue_}getIndexEndName(){return q(this.endSet_,"Only valid if end has been set"),this.endNameSet_?this.indexEndName_:Zs}hasLimit(){return this.limitSet_}hasAnchoredLimit(){return this.limitSet_&&this.viewFrom_!==""}getLimit(){return q(this.limitSet_,"Only valid if limit has been set"),this.limit_}getIndex(){return this.index_}loadsAllData(){return!(this.startSet_||this.endSet_||this.limitSet_)}isDefault(){return this.loadsAllData()&&this.index_===ft}copy(){let e=new t;return e.limitSet_=this.limitSet_,e.limit_=this.limit_,e.startSet_=this.startSet_,e.startAfterSet_=this.startAfterSet_,e.indexStartValue_=this.indexStartValue_,e.startNameSet_=this.startNameSet_,e.indexStartName_=this.indexStartName_,e.endSet_=this.endSet_,e.endBeforeSet_=this.endBeforeSet_,e.indexEndValue_=this.indexEndValue_,e.endNameSet_=this.endNameSet_,e.indexEndName_=this.indexEndName_,e.index_=this.index_,e.viewFrom_=this.viewFrom_,e}};function Wre(t){return t.loadsAllData()?new Kp(t.getIndex()):t.hasLimit()?new hw(t):new Ay(t)}function zre(t,e){let n=t.copy();return n.limitSet_=!0,n.limit_=e,n.viewFrom_="r",n}function qre(t,e,n){let r=t.copy();return r.startSet_=!0,e===void 0&&(e=null),r.indexStartValue_=e,n!=null?(r.startNameSet_=!0,r.indexStartName_=n):(r.startNameSet_=!1,r.indexStartName_=""),r}function Kre(t,e,n){let r=t.copy();return r.endSet_=!0,e===void 0&&(e=null),r.indexEndValue_=e,n!==void 0?(r.endNameSet_=!0,r.indexEndName_=n):(r.endNameSet_=!1,r.indexEndName_=""),r}function Yre(t,e){let n=t.copy();return n.index_=e,n}function $2(t){let e={};if(t.isDefault())return e;let n;if(t.index_===ft?n="$priority":t.index_===Pj?n="$value":t.index_===el?n="$key":(q(t.index_ instanceof Wp,"Unrecognized index type!"),n=t.index_.toString()),e.orderBy=xt(n),t.startSet_){let r=t.startAfterSet_?"startAfter":"startAt";e[r]=xt(t.indexStartValue_),t.startNameSet_&&(e[r]+=","+xt(t.indexStartName_))}if(t.endSet_){let r=t.endBeforeSet_?"endBefore":"endAt";e[r]=xt(t.indexEndValue_),t.endNameSet_&&(e[r]+=","+xt(t.indexEndName_))}return t.limitSet_&&(t.isViewFromLeft()?e.limitToFirst=t.limit_:e.limitToLast=t.limit_),e}function W2(t){let e={};if(t.startSet_&&(e.sp=t.indexStartValue_,t.startNameSet_&&(e.sn=t.indexStartName_),e.sin=!t.startAfterSet_),t.endSet_&&(e.ep=t.indexEndValue_,t.endNameSet_&&(e.en=t.indexEndName_),e.ein=!t.endBeforeSet_),t.limitSet_){e.l=t.limit_;let n=t.viewFrom_;n===""&&(t.isViewFromLeft()?n="l":n="r"),e.vf=n}return t.index_!==ft&&(e.i=t.index_.toString()),e}var pw=class t extends Ty{reportStats(e){throw new Error("Method not implemented.")}static getListenId_(e,n){return n!==void 0?"tag$"+n:(q(e._queryParams.isDefault(),"should have a tag if it's not a default query."),e._path.toString())}constructor(e,n,r,i){super(),this.repoInfo_=e,this.onDataUpdate_=n,this.authTokenProvider_=r,this.appCheckTokenProvider_=i,this.log_=rg("p:rest:"),this.listens_={}}listen(e,n,r,i){let o=e._path.toString();this.log_("Listen called for "+o+" "+e._queryIdentifier);let s=t.getListenId_(e,r),a={};this.listens_[s]=a;let c=$2(e._queryParams);this.restRequest_(o+".json",c,(l,d)=>{let h=d;if(l===404&&(h=null,l=null),l===null&&this.onDataUpdate_(o,h,!1,r),Fs(this.listens_,s)===a){let f;l?l===401?f="permission_denied":f="rest_error:"+l:f="ok",i(f,null)}})}unlisten(e,n){let r=t.getListenId_(e,n);delete this.listens_[r]}get(e){let n=$2(e._queryParams),r=e._path.toString(),i=new cn;return this.restRequest_(r+".json",n,(o,s)=>{let a=s;o===404&&(a=null,o=null),o===null?(this.onDataUpdate_(r,a,!1,null),i.resolve(a)):i.reject(new Error(a))}),i.promise}refreshAuthToken(e){}restRequest_(e,n={},r){return n.format="export",Promise.all([this.authTokenProvider_.getToken(!1),this.appCheckTokenProvider_.getToken(!1)]).then(([i,o])=>{i&&i.accessToken&&(n.auth=i.accessToken),o&&o.token&&(n.ac=o.token);let s=(this.repoInfo_.secure?"https://":"http://")+this.repoInfo_.host+e+"?ns="+this.repoInfo_.namespace+gp(n);this.log_("Sending REST request for "+s);let a=new XMLHttpRequest;a.onreadystatechange=()=>{if(r&&a.readyState===4){this.log_("REST Response for "+s+" received. status:",a.status,"response:",a.responseText);let c=null;if(a.status>=200&&a.status<300){try{c=ad(a.responseText)}catch{xn("Failed to parse JSON response for "+s+": "+a.responseText)}r(null,c)}else a.status!==401&&a.status!==404&&xn("Got unsuccessful REST response for "+s+" Status: "+a.status),r(a.status);r=null}},a.open("GET",s,!0),a.send()})}};var gw=class{constructor(){this.rootNode_=ve.EMPTY_NODE}getNode(e){return this.rootNode_.getChild(e)}updateSnapshot(e,n){this.rootNode_=this.rootNode_.updateChild(e,n)}};function Cy(){return{value:null,children:new Map}}function Od(t,e,n){if(we(e))t.value=n,t.children.clear();else if(t.value!==null)t.value=t.value.updateChild(e,n);else{let r=Ne(e);t.children.has(r)||t.children.set(r,Cy());let i=t.children.get(r);e=at(e),Od(i,e,n)}}function mw(t,e){if(we(e))return t.value=null,t.children.clear(),!0;if(t.value!==null){if(t.value.isLeafNode())return!1;{let n=t.value;return t.value=null,n.forEachChild(ft,(r,i)=>{Od(t,new Be(r),i)}),mw(t,e)}}else if(t.children.size>0){let n=Ne(e);return e=at(e),t.children.has(n)&&mw(t.children.get(n),e)&&t.children.delete(n),t.children.size===0}else return!0}function Ew(t,e,n){t.value!==null?n(e,t.value):Xre(t,(r,i)=>{let o=new Be(e.toString()+"/"+r);Ew(i,o,n)})}function Xre(t,e){t.children.forEach((n,r)=>{e(r,n)})}var _w=class{constructor(e){this.collection_=e,this.last_=null}get(){let e=this.collection_.get(),n=Object.assign({},e);return this.last_&&dn(this.last_,(r,i)=>{n[r]=n[r]-i}),this.last_=e,n}};var z2=10*1e3,Qre=30*1e3,Jre=300*1e3,Tw=class{constructor(e,n){this.server_=n,this.statsToReport_={},this.statsListener_=new _w(e);let r=z2+(Qre-z2)*Math.random();Vp(this.reportStats_.bind(this),Math.floor(r))}reportStats_(){let e=this.statsListener_.get(),n={},r=!1;dn(e,(i,o)=>{o>0&&Vr(this.statsToReport_,i)&&(n[i]=o,r=!0)}),r&&this.server_.reportStats(n),Vp(this.reportStats_.bind(this),Math.floor(Math.random()*2*Jre))}};var Zi=(function(t){return t[t.OVERWRITE=0]="OVERWRITE",t[t.MERGE=1]="MERGE",t[t.ACK_USER_WRITE=2]="ACK_USER_WRITE",t[t.LISTEN_COMPLETE=3]="LISTEN_COMPLETE",t})(Zi||{});function Jw(){return{fromUser:!0,fromServer:!1,queryId:null,tagged:!1}}function Zw(){return{fromUser:!1,fromServer:!0,queryId:null,tagged:!1}}function eb(t){return{fromUser:!1,fromServer:!0,queryId:t,tagged:!0}}var yw=class t{constructor(e,n,r){this.path=e,this.affectedTree=n,this.revert=r,this.type=Zi.ACK_USER_WRITE,this.source=Jw()}operationForChild(e){if(we(this.path)){if(this.affectedTree.value!=null)return q(this.affectedTree.children.isEmpty(),"affectedTree should not have overlapping affected paths."),this;{let n=this.affectedTree.subtree(new Be(e));return new t(Ve(),n,this.revert)}}else return q(Ne(this.path)===e,"operationForChild called for unrelated child."),new t(at(this.path),this.affectedTree,this.revert)}};var Dy=class t{constructor(e,n){this.source=e,this.path=n,this.type=Zi.LISTEN_COMPLETE}operationForChild(e){return we(this.path)?new t(this.source,Ve()):new t(this.source,at(this.path))}};var Dd=class t{constructor(e,n,r){this.source=e,this.path=n,this.snap=r,this.type=Zi.OVERWRITE}operationForChild(e){return we(this.path)?new t(this.source,Ve(),this.snap.getImmediateChild(e)):new t(this.source,at(this.path),this.snap)}};var Yp=class t{constructor(e,n,r){this.source=e,this.path=n,this.children=r,this.type=Zi.MERGE}operationForChild(e){if(we(this.path)){let n=this.children.subtree(new Be(e));return n.isEmpty()?null:n.value?new Dd(this.source,Ve(),n.value):new t(this.source,Ve(),n)}else return q(Ne(this.path)===e,"Can't get a merge for a child not on the path of the operation"),new t(this.source,at(this.path),this.children)}toString(){return"Operation("+this.path+": "+this.source.toString()+" merge: "+this.children.toString()+")"}};var eo=class{constructor(e,n,r){this.node_=e,this.fullyInitialized_=n,this.filtered_=r}isFullyInitialized(){return this.fullyInitialized_}isFiltered(){return this.filtered_}isCompleteForPath(e){if(we(e))return this.isFullyInitialized()&&!this.filtered_;let n=Ne(e);return this.isCompleteForChild(n)}isCompleteForChild(e){return this.isFullyInitialized()&&!this.filtered_||this.node_.hasChild(e)}getNode(){return this.node_}};var Iw=class{constructor(e){this.query_=e,this.index_=this.query_._queryParams.getIndex()}};function Zre(t,e,n,r){let i=[],o=[];return e.forEach(s=>{s.type==="child_changed"&&t.index_.indexedValueChanged(s.oldSnap,s.snapshotNode)&&o.push($re(s.childName,s.snapshotNode))}),Up(t,i,"child_removed",e,r,n),Up(t,i,"child_added",e,r,n),Up(t,i,"child_moved",o,r,n),Up(t,i,"child_changed",e,r,n),Up(t,i,"value",e,r,n),i}function Up(t,e,n,r,i,o){let s=r.filter(a=>a.type===n);s.sort((a,c)=>tie(t,a,c)),s.forEach(a=>{let c=eie(t,a,o);i.forEach(l=>{l.respondsTo(a.type)&&e.push(l.createEvent(c,t.query_))})})}function eie(t,e,n){return e.type==="value"||e.type==="child_removed"||(e.prevName=n.getPredecessorChildName(e.childName,e.snapshotNode,t.index_)),e}function tie(t,e,n){if(e.childName==null||n.childName==null)throw kc("Should only compare child_ events.");let r=new Oe(e.childName,e.snapshotNode),i=new Oe(n.childName,n.snapshotNode);return t.index_.compare(r,i)}function Gy(t,e){return{eventCache:t,serverCache:e}}function Gp(t,e,n,r){return Gy(new eo(e,n,r),t.serverCache)}function kj(t,e,n,r){return Gy(t.eventCache,new eo(e,n,r))}function Ry(t){return t.eventCache.isFullyInitialized()?t.eventCache.getNode():null}function nl(t){return t.serverCache.isFullyInitialized()?t.serverCache.getNode():null}var $N,nie=()=>($N||($N=new Hr(ere)),$N),qn=class t{static fromObject(e){let n=new t(null);return dn(e,(r,i)=>{n=n.set(new Be(r),i)}),n}constructor(e,n=nie()){this.value=e,this.children=n}isEmpty(){return this.value===null&&this.children.isEmpty()}findRootMostMatchingPathAndValue(e,n){if(this.value!=null&&n(this.value))return{path:Ve(),value:this.value};if(we(e))return null;{let r=Ne(e),i=this.children.get(r);if(i!==null){let o=i.findRootMostMatchingPathAndValue(at(e),n);return o!=null?{path:Ct(new Be(r),o.path),value:o.value}:null}else return null}}findRootMostValueAndPath(e){return this.findRootMostMatchingPathAndValue(e,()=>!0)}subtree(e){if(we(e))return this;{let n=Ne(e),r=this.children.get(n);return r!==null?r.subtree(at(e)):new t(null)}}set(e,n){if(we(e))return new t(n,this.children);{let r=Ne(e),o=(this.children.get(r)||new t(null)).set(at(e),n),s=this.children.insert(r,o);return new t(this.value,s)}}remove(e){if(we(e))return this.children.isEmpty()?new t(null):new t(null,this.children);{let n=Ne(e),r=this.children.get(n);if(r){let i=r.remove(at(e)),o;return i.isEmpty()?o=this.children.remove(n):o=this.children.insert(n,i),this.value===null&&o.isEmpty()?new t(null):new t(this.value,o)}else return this}}get(e){if(we(e))return this.value;{let n=Ne(e),r=this.children.get(n);return r?r.get(at(e)):null}}setTree(e,n){if(we(e))return n;{let r=Ne(e),o=(this.children.get(r)||new t(null)).setTree(at(e),n),s;return o.isEmpty()?s=this.children.remove(r):s=this.children.insert(r,o),new t(this.value,s)}}fold(e){return this.fold_(Ve(),e)}fold_(e,n){let r={};return this.children.inorderTraversal((i,o)=>{r[i]=o.fold_(Ct(e,i),n)}),n(e,this.value,r)}findOnPath(e,n){return this.findOnPath_(e,Ve(),n)}findOnPath_(e,n,r){let i=this.value?r(n,this.value):!1;if(i)return i;if(we(e))return null;{let o=Ne(e),s=this.children.get(o);return s?s.findOnPath_(at(e),Ct(n,o),r):null}}foreachOnPath(e,n){return this.foreachOnPath_(e,Ve(),n)}foreachOnPath_(e,n,r){if(we(e))return this;{this.value&&r(n,this.value);let i=Ne(e),o=this.children.get(i);return o?o.foreachOnPath_(at(e),Ct(n,i),r):new t(null)}}foreach(e){this.foreach_(Ve(),e)}foreach_(e,n){this.children.inorderTraversal((r,i)=>{i.foreach_(Ct(e,r),n)}),this.value&&n(e,this.value)}foreachChild(e){this.children.inorderTraversal((n,r)=>{r.value&&e(n,r.value)})}};var di=class t{constructor(e){this.writeTree_=e}static empty(){return new t(new qn(null))}};function jp(t,e,n){if(we(e))return new di(new qn(n));{let r=t.writeTree_.findRootMostValueAndPath(e);if(r!=null){let i=r.path,o=r.value,s=zn(i,e);return o=o.updateChild(s,n),new di(t.writeTree_.set(i,o))}else{let i=new qn(n),o=t.writeTree_.setTree(e,i);return new di(o)}}}function vw(t,e,n){let r=t;return dn(n,(i,o)=>{r=jp(r,Ct(e,i),o)}),r}function q2(t,e){if(we(e))return di.empty();{let n=t.writeTree_.setTree(e,new qn(null));return new di(n)}}function Sw(t,e){return cl(t,e)!=null}function cl(t,e){let n=t.writeTree_.findRootMostValueAndPath(e);return n!=null?t.writeTree_.get(n.path).getChild(zn(n.path,e)):null}function K2(t){let e=[],n=t.writeTree_.value;return n!=null?n.isLeafNode()||n.forEachChild(ft,(r,i)=>{e.push(new Oe(r,i))}):t.writeTree_.children.inorderTraversal((r,i)=>{i.value!=null&&e.push(new Oe(r,i.value))}),e}function Qs(t,e){if(we(e))return t;{let n=cl(t,e);return n!=null?new di(new qn(n)):new di(t.writeTree_.subtree(e))}}function Aw(t){return t.writeTree_.isEmpty()}function Rd(t,e){return Fj(Ve(),t.writeTree_,e)}function Fj(t,e,n){if(e.value!=null)return n.updateChild(t,e.value);{let r=null;return e.children.inorderTraversal((i,o)=>{i===".priority"?(q(o.value!==null,"Priority writes must always be leaf nodes"),r=o.value):n=Fj(Ct(t,i),o,n)}),!n.getChild(t).isEmpty()&&r!==null&&(n=n.updateChild(Ct(t,".priority"),r)),n}}function jy(t,e){return Gj(e,t)}function rie(t,e,n,r,i){q(r>t.lastWriteId,"Stacking an older write on top of newer ones"),i===void 0&&(i=!0),t.allWrites.push({path:e,snap:n,writeId:r,visible:i}),i&&(t.visibleWrites=jp(t.visibleWrites,e,n)),t.lastWriteId=r}function iie(t,e,n,r){q(r>t.lastWriteId,"Stacking an older merge on top of newer ones"),t.allWrites.push({path:e,children:n,writeId:r,visible:!0}),t.visibleWrites=vw(t.visibleWrites,e,n),t.lastWriteId=r}function oie(t,e){for(let n=0;n<t.allWrites.length;n++){let r=t.allWrites[n];if(r.writeId===e)return r}return null}function sie(t,e){let n=t.allWrites.findIndex(a=>a.writeId===e);q(n>=0,"removeWrite called with nonexistent writeId.");let r=t.allWrites[n];t.allWrites.splice(n,1);let i=r.visible,o=!1,s=t.allWrites.length-1;for(;i&&s>=0;){let a=t.allWrites[s];a.visible&&(s>=n&&aie(a,r.path)?i=!1:jr(r.path,a.path)&&(o=!0)),s--}if(i){if(o)return cie(t),!0;if(r.snap)t.visibleWrites=q2(t.visibleWrites,r.path);else{let a=r.children;dn(a,c=>{t.visibleWrites=q2(t.visibleWrites,Ct(r.path,c))})}return!0}else return!1}function aie(t,e){if(t.snap)return jr(t.path,e);for(let n in t.children)if(t.children.hasOwnProperty(n)&&jr(Ct(t.path,n),e))return!0;return!1}function cie(t){t.visibleWrites=Uj(t.allWrites,lie,Ve()),t.allWrites.length>0?t.lastWriteId=t.allWrites[t.allWrites.length-1].writeId:t.lastWriteId=-1}function lie(t){return t.visible}function Uj(t,e,n){let r=di.empty();for(let i=0;i<t.length;++i){let o=t[i];if(e(o)){let s=o.path,a;if(o.snap)jr(n,s)?(a=zn(n,s),r=jp(r,a,o.snap)):jr(s,n)&&(a=zn(s,n),r=jp(r,Ve(),o.snap.getChild(a)));else if(o.children){if(jr(n,s))a=zn(n,s),r=vw(r,a,o.children);else if(jr(s,n))if(a=zn(s,n),we(a))r=vw(r,Ve(),o.children);else{let c=Fs(o.children,Ne(a));if(c){let l=c.getChild(at(a));r=jp(r,Ve(),l)}}}else throw kc("WriteRecord should have .snap or .children")}}return r}function Vj(t,e,n,r,i){if(!r&&!i){let o=cl(t.visibleWrites,e);if(o!=null)return o;{let s=Qs(t.visibleWrites,e);if(Aw(s))return n;if(n==null&&!Sw(s,Ve()))return null;{let a=n||ve.EMPTY_NODE;return Rd(s,a)}}}else{let o=Qs(t.visibleWrites,e);if(!i&&Aw(o))return n;if(!i&&n==null&&!Sw(o,Ve()))return null;{let s=function(l){return(l.visible||i)&&(!r||!~r.indexOf(l.writeId))&&(jr(l.path,e)||jr(e,l.path))},a=Uj(t.allWrites,s,e),c=n||ve.EMPTY_NODE;return Rd(a,c)}}}function uie(t,e,n){let r=ve.EMPTY_NODE,i=cl(t.visibleWrites,e);if(i)return i.isLeafNode()||i.forEachChild(ft,(o,s)=>{r=r.updateImmediateChild(o,s)}),r;if(n){let o=Qs(t.visibleWrites,e);return n.forEachChild(ft,(s,a)=>{let c=Rd(Qs(o,new Be(s)),a);r=r.updateImmediateChild(s,c)}),K2(o).forEach(s=>{r=r.updateImmediateChild(s.name,s.node)}),r}else{let o=Qs(t.visibleWrites,e);return K2(o).forEach(s=>{r=r.updateImmediateChild(s.name,s.node)}),r}}function die(t,e,n,r,i){q(r||i,"Either existingEventSnap or existingServerSnap must exist");let o=Ct(e,n);if(Sw(t.visibleWrites,o))return null;{let s=Qs(t.visibleWrites,o);return Aw(s)?i.getChild(n):Rd(s,i.getChild(n))}}function hie(t,e,n,r){let i=Ct(e,n),o=cl(t.visibleWrites,i);if(o!=null)return o;if(r.isCompleteForChild(n)){let s=Qs(t.visibleWrites,i);return Rd(s,r.getNode().getImmediateChild(n))}else return null}function fie(t,e){return cl(t.visibleWrites,e)}function pie(t,e,n,r,i,o,s){let a,c=Qs(t.visibleWrites,e),l=cl(c,Ve());if(l!=null)a=l;else if(n!=null)a=Rd(c,n);else return[];if(a=a.withIndex(s),!a.isEmpty()&&!a.isLeafNode()){let d=[],h=s.getCompare(),f=o?a.getReverseIteratorFrom(r,s):a.getIteratorFrom(r,s),g=f.getNext();for(;g&&d.length<i;)h(g,r)!==0&&d.push(g),g=f.getNext();return d}else return[]}function gie(){return{visibleWrites:di.empty(),allWrites:[],lastWriteId:-1}}function Ny(t,e,n,r){return Vj(t.writeTree,t.treePath,e,n,r)}function tb(t,e){return uie(t.writeTree,t.treePath,e)}function Y2(t,e,n,r){return die(t.writeTree,t.treePath,e,n,r)}function wy(t,e){return fie(t.writeTree,Ct(t.treePath,e))}function mie(t,e,n,r,i,o){return pie(t.writeTree,t.treePath,e,n,r,i,o)}function nb(t,e,n){return hie(t.writeTree,t.treePath,e,n)}function Bj(t,e){return Gj(Ct(t.treePath,e),t.writeTree)}function Gj(t,e){return{treePath:t,writeTree:e}}var Cw=class{constructor(){this.changeMap=new Map}trackChildChange(e){let n=e.type,r=e.childName;q(n==="child_added"||n==="child_changed"||n==="child_removed","Only child changes supported for tracking"),q(r!==".priority","Only non-priority child changes can be tracked.");let i=this.changeMap.get(r);if(i){let o=i.type;if(n==="child_added"&&o==="child_removed")this.changeMap.set(r,qp(r,e.snapshotNode,i.snapshotNode));else if(n==="child_removed"&&o==="child_added")this.changeMap.delete(r);else if(n==="child_removed"&&o==="child_changed")this.changeMap.set(r,zp(r,i.oldSnap));else if(n==="child_changed"&&o==="child_added")this.changeMap.set(r,Cd(r,e.snapshotNode));else if(n==="child_changed"&&o==="child_changed")this.changeMap.set(r,qp(r,e.snapshotNode,i.oldSnap));else throw kc("Illegal combination of changes: "+e+" occurred after "+i)}else this.changeMap.set(r,e)}getChanges(){return Array.from(this.changeMap.values())}};var Dw=class{getCompleteChild(e){return null}getChildAfterChild(e,n,r){return null}},jj=new Dw,Xp=class{constructor(e,n,r=null){this.writes_=e,this.viewCache_=n,this.optCompleteServerCache_=r}getCompleteChild(e){let n=this.viewCache_.eventCache;if(n.isCompleteForChild(e))return n.getNode().getImmediateChild(e);{let r=this.optCompleteServerCache_!=null?new eo(this.optCompleteServerCache_,!0,!1):this.viewCache_.serverCache;return nb(this.writes_,e,r)}}getChildAfterChild(e,n,r){let i=this.optCompleteServerCache_!=null?this.optCompleteServerCache_:nl(this.viewCache_),o=mie(this.writes_,i,n,1,r,e);return o.length===0?null:o[0]}};function Eie(t){return{filter:t}}function _ie(t,e){q(e.eventCache.getNode().isIndexed(t.filter.getIndex()),"Event snap not indexed"),q(e.serverCache.getNode().isIndexed(t.filter.getIndex()),"Server snap not indexed")}function Tie(t,e,n,r,i){let o=new Cw,s,a;if(n.type===Zi.OVERWRITE){let l=n;l.source.fromUser?s=Rw(t,e,l.path,l.snap,r,i,o):(q(l.source.fromServer,"Unknown source."),a=l.source.tagged||e.serverCache.isFiltered()&&!we(l.path),s=by(t,e,l.path,l.snap,r,i,a,o))}else if(n.type===Zi.MERGE){let l=n;l.source.fromUser?s=Iie(t,e,l.path,l.children,r,i,o):(q(l.source.fromServer,"Unknown source."),a=l.source.tagged||e.serverCache.isFiltered(),s=Nw(t,e,l.path,l.children,r,i,a,o))}else if(n.type===Zi.ACK_USER_WRITE){let l=n;l.revert?s=Aie(t,e,l.path,r,i,o):s=vie(t,e,l.path,l.affectedTree,r,i,o)}else if(n.type===Zi.LISTEN_COMPLETE)s=Sie(t,e,n.path,r,o);else throw kc("Unknown operation type: "+n.type);let c=o.getChanges();return yie(e,s,c),{viewCache:s,changes:c}}function yie(t,e,n){let r=e.eventCache;if(r.isFullyInitialized()){let i=r.getNode().isLeafNode()||r.getNode().isEmpty(),o=Ry(t);(n.length>0||!t.eventCache.isFullyInitialized()||i&&!r.getNode().equals(o)||!r.getNode().getPriority().equals(o.getPriority()))&&n.push(xj(Ry(e)))}}function Hj(t,e,n,r,i,o){let s=e.eventCache;if(wy(r,n)!=null)return e;{let a,c;if(we(n))if(q(e.serverCache.isFullyInitialized(),"If change path is empty, we must have complete server data"),e.serverCache.isFiltered()){let l=nl(e),d=l instanceof ve?l:ve.EMPTY_NODE,h=tb(r,d);a=t.filter.updateFullNode(e.eventCache.getNode(),h,o)}else{let l=Ny(r,nl(e));a=t.filter.updateFullNode(e.eventCache.getNode(),l,o)}else{let l=Ne(n);if(l===".priority"){q(ea(n)===1,"Can't have a priority with additional path components");let d=s.getNode();c=e.serverCache.getNode();let h=Y2(r,n,d,c);h!=null?a=t.filter.updatePriority(d,h):a=s.getNode()}else{let d=at(n),h;if(s.isCompleteForChild(l)){c=e.serverCache.getNode();let f=Y2(r,n,s.getNode(),c);f!=null?h=s.getNode().getImmediateChild(l).updateChild(d,f):h=s.getNode().getImmediateChild(l)}else h=nb(r,l,e.serverCache);h!=null?a=t.filter.updateChild(s.getNode(),l,h,d,i,o):a=s.getNode()}}return Gp(e,a,s.isFullyInitialized()||we(n),t.filter.filtersNodes())}}function by(t,e,n,r,i,o,s,a){let c=e.serverCache,l,d=s?t.filter:t.filter.getIndexedFilter();if(we(n))l=d.updateFullNode(c.getNode(),r,null);else if(d.filtersNodes()&&!c.isFiltered()){let g=c.getNode().updateChild(n,r);l=d.updateFullNode(c.getNode(),g,null)}else{let g=Ne(n);if(!c.isCompleteForPath(n)&&ea(n)>1)return e;let E=at(n),S=c.getNode().getImmediateChild(g).updateChild(E,r);g===".priority"?l=d.updatePriority(c.getNode(),S):l=d.updateChild(c.getNode(),g,S,E,jj,null)}let h=kj(e,l,c.isFullyInitialized()||we(n),d.filtersNodes()),f=new Xp(i,h,o);return Hj(t,h,n,i,f,a)}function Rw(t,e,n,r,i,o,s){let a=e.eventCache,c,l,d=new Xp(i,e,o);if(we(n))l=t.filter.updateFullNode(e.eventCache.getNode(),r,s),c=Gp(e,l,!0,t.filter.filtersNodes());else{let h=Ne(n);if(h===".priority")l=t.filter.updatePriority(e.eventCache.getNode(),r),c=Gp(e,l,a.isFullyInitialized(),a.isFiltered());else{let f=at(n),g=a.getNode().getImmediateChild(h),E;if(we(f))E=r;else{let I=d.getCompleteChild(h);I!=null?Kw(f)===".priority"&&I.getChild(Nj(f)).isEmpty()?E=I:E=I.updateChild(f,r):E=ve.EMPTY_NODE}if(g.equals(E))c=e;else{let I=t.filter.updateChild(a.getNode(),h,E,f,d,s);c=Gp(e,I,a.isFullyInitialized(),t.filter.filtersNodes())}}}return c}function X2(t,e){return t.eventCache.isCompleteForChild(e)}function Iie(t,e,n,r,i,o,s){let a=e;return r.foreach((c,l)=>{let d=Ct(n,c);X2(e,Ne(d))&&(a=Rw(t,a,d,l,i,o,s))}),r.foreach((c,l)=>{let d=Ct(n,c);X2(e,Ne(d))||(a=Rw(t,a,d,l,i,o,s))}),a}function Q2(t,e,n){return n.foreach((r,i)=>{e=e.updateChild(r,i)}),e}function Nw(t,e,n,r,i,o,s,a){if(e.serverCache.getNode().isEmpty()&&!e.serverCache.isFullyInitialized())return e;let c=e,l;we(n)?l=r:l=new qn(null).setTree(n,r);let d=e.serverCache.getNode();return l.children.inorderTraversal((h,f)=>{if(d.hasChild(h)){let g=e.serverCache.getNode().getImmediateChild(h),E=Q2(t,g,f);c=by(t,c,new Be(h),E,i,o,s,a)}}),l.children.inorderTraversal((h,f)=>{let g=!e.serverCache.isCompleteForChild(h)&&f.value===null;if(!d.hasChild(h)&&!g){let E=e.serverCache.getNode().getImmediateChild(h),I=Q2(t,E,f);c=by(t,c,new Be(h),I,i,o,s,a)}}),c}function vie(t,e,n,r,i,o,s){if(wy(i,n)!=null)return e;let a=e.serverCache.isFiltered(),c=e.serverCache;if(r.value!=null){if(we(n)&&c.isFullyInitialized()||c.isCompleteForPath(n))return by(t,e,n,c.getNode().getChild(n),i,o,a,s);if(we(n)){let l=new qn(null);return c.getNode().forEachChild(el,(d,h)=>{l=l.set(new Be(d),h)}),Nw(t,e,n,l,i,o,a,s)}else return e}else{let l=new qn(null);return r.foreach((d,h)=>{let f=Ct(n,d);c.isCompleteForPath(f)&&(l=l.set(d,c.getNode().getChild(f)))}),Nw(t,e,n,l,i,o,a,s)}}function Sie(t,e,n,r,i){let o=e.serverCache,s=kj(e,o.getNode(),o.isFullyInitialized()||we(n),o.isFiltered());return Hj(t,s,n,r,jj,i)}function Aie(t,e,n,r,i,o){let s;if(wy(r,n)!=null)return e;{let a=new Xp(r,e,i),c=e.eventCache.getNode(),l;if(we(n)||Ne(n)===".priority"){let d;if(e.serverCache.isFullyInitialized())d=Ny(r,nl(e));else{let h=e.serverCache.getNode();q(h instanceof ve,"serverChildren would be complete if leaf node"),d=tb(r,h)}d=d,l=t.filter.updateFullNode(c,d,o)}else{let d=Ne(n),h=nb(r,d,e.serverCache);h==null&&e.serverCache.isCompleteForChild(d)&&(h=c.getImmediateChild(d)),h!=null?l=t.filter.updateChild(c,d,h,at(n),a,o):e.eventCache.getNode().hasChild(d)?l=t.filter.updateChild(c,d,ve.EMPTY_NODE,at(n),a,o):l=c,l.isEmpty()&&e.serverCache.isFullyInitialized()&&(s=Ny(r,nl(e)),s.isLeafNode()&&(l=t.filter.updateFullNode(l,s,o)))}return s=e.serverCache.isFullyInitialized()||wy(r,Ve())!=null,Gp(e,l,s,t.filter.filtersNodes())}}var ww=class{constructor(e,n){this.query_=e,this.eventRegistrations_=[];let r=this.query_._queryParams,i=new Kp(r.getIndex()),o=Wre(r);this.processor_=Eie(o);let s=n.serverCache,a=n.eventCache,c=i.updateFullNode(ve.EMPTY_NODE,s.getNode(),null),l=o.updateFullNode(ve.EMPTY_NODE,a.getNode(),null),d=new eo(c,s.isFullyInitialized(),i.filtersNodes()),h=new eo(l,a.isFullyInitialized(),o.filtersNodes());this.viewCache_=Gy(h,d),this.eventGenerator_=new Iw(this.query_)}get query(){return this.query_}};function Cie(t){return t.viewCache_.serverCache.getNode()}function Die(t){return Ry(t.viewCache_)}function Rie(t,e){let n=nl(t.viewCache_);return n&&(t.query._queryParams.loadsAllData()||!we(e)&&!n.getImmediateChild(Ne(e)).isEmpty())?n.getChild(e):null}function J2(t){return t.eventRegistrations_.length===0}function Nie(t,e){t.eventRegistrations_.push(e)}function Z2(t,e,n){let r=[];if(n){q(e==null,"A cancel should cancel all event registrations.");let i=t.query._path;t.eventRegistrations_.forEach(o=>{let s=o.createCancelEvent(n,i);s&&r.push(s)})}if(e){let i=[];for(let o=0;o<t.eventRegistrations_.length;++o){let s=t.eventRegistrations_[o];if(!s.matches(e))i.push(s);else if(e.hasAnyCallback()){i=i.concat(t.eventRegistrations_.slice(o+1));break}}t.eventRegistrations_=i}else t.eventRegistrations_=[];return r}function ej(t,e,n,r){e.type===Zi.MERGE&&e.source.queryId!==null&&(q(nl(t.viewCache_),"We should always have a full cache before handling merges"),q(Ry(t.viewCache_),"Missing event cache, even though we have a server cache"));let i=t.viewCache_,o=Tie(t.processor_,i,e,n,r);return _ie(t.processor_,o.viewCache),q(o.viewCache.serverCache.isFullyInitialized()||!i.serverCache.isFullyInitialized(),"Once a server snap is complete, it should never go back"),t.viewCache_=o.viewCache,$j(t,o.changes,o.viewCache.eventCache.getNode(),null)}function wie(t,e){let n=t.viewCache_.eventCache,r=[];return n.getNode().isLeafNode()||n.getNode().forEachChild(ft,(o,s)=>{r.push(Cd(o,s))}),n.isFullyInitialized()&&r.push(xj(n.getNode())),$j(t,r,n.getNode(),e)}function $j(t,e,n,r){let i=r?[r]:t.eventRegistrations_;return Zre(t.eventGenerator_,e,n,i)}var Oy,My=class{constructor(){this.views=new Map}};function bie(t){q(!Oy,"__referenceConstructor has already been defined"),Oy=t}function Oie(){return q(Oy,"Reference.ts has not been loaded"),Oy}function Mie(t){return t.views.size===0}function rb(t,e,n,r){let i=e.source.queryId;if(i!==null){let o=t.views.get(i);return q(o!=null,"SyncTree gave us an op for an invalid query."),ej(o,e,n,r)}else{let o=[];for(let s of t.views.values())o=o.concat(ej(s,e,n,r));return o}}function Wj(t,e,n,r,i){let o=e._queryIdentifier,s=t.views.get(o);if(!s){let a=Ny(n,i?r:null),c=!1;a?c=!0:r instanceof ve?(a=tb(n,r),c=!1):(a=ve.EMPTY_NODE,c=!1);let l=Gy(new eo(a,c,!1),new eo(r,i,!1));return new ww(e,l)}return s}function Lie(t,e,n,r,i,o){let s=Wj(t,e,r,i,o);return t.views.has(e._queryIdentifier)||t.views.set(e._queryIdentifier,s),Nie(s,n),wie(s,n)}function Pie(t,e,n,r){let i=e._queryIdentifier,o=[],s=[],a=ta(t);if(i==="default")for(let[c,l]of t.views.entries())s=s.concat(Z2(l,n,r)),J2(l)&&(t.views.delete(c),l.query._queryParams.loadsAllData()||o.push(l.query));else{let c=t.views.get(i);c&&(s=s.concat(Z2(c,n,r)),J2(c)&&(t.views.delete(i),c.query._queryParams.loadsAllData()||o.push(c.query)))}return a&&!ta(t)&&o.push(new(Oie())(e._repo,e._path)),{removed:o,events:s}}function zj(t){let e=[];for(let n of t.views.values())n.query._queryParams.loadsAllData()||e.push(n);return e}function Js(t,e){let n=null;for(let r of t.views.values())n=n||Rie(r,e);return n}function qj(t,e){if(e._queryParams.loadsAllData())return Hy(t);{let r=e._queryIdentifier;return t.views.get(r)}}function Kj(t,e){return qj(t,e)!=null}function ta(t){return Hy(t)!=null}function Hy(t){for(let e of t.views.values())if(e.query._queryParams.loadsAllData())return e;return null}var Ly;function xie(t){q(!Ly,"__referenceConstructor has already been defined"),Ly=t}function kie(){return q(Ly,"Reference.ts has not been loaded"),Ly}var Fie=1,Py=class{constructor(e){this.listenProvider_=e,this.syncPointTree_=new qn(null),this.pendingWriteTree_=gie(),this.tagToQueryMap=new Map,this.queryToTagMap=new Map}};function ib(t,e,n,r,i){return rie(t.pendingWriteTree_,e,n,r,i),i?Md(t,new Dd(Jw(),e,n)):[]}function Uie(t,e,n,r){iie(t.pendingWriteTree_,e,n,r);let i=qn.fromObject(n);return Md(t,new Yp(Jw(),e,i))}function Ys(t,e,n=!1){let r=oie(t.pendingWriteTree_,e);if(sie(t.pendingWriteTree_,e)){let o=new qn(null);return r.snap!=null?o=o.set(Ve(),!0):dn(r.children,s=>{o=o.set(new Be(s),!0)}),Md(t,new yw(r.path,o,n))}else return[]}function og(t,e,n){return Md(t,new Dd(Zw(),e,n))}function Vie(t,e,n){let r=qn.fromObject(n);return Md(t,new Yp(Zw(),e,r))}function Bie(t,e){return Md(t,new Dy(Zw(),e))}function Gie(t,e,n){let r=ob(t,n);if(r){let i=sb(r),o=i.path,s=i.queryId,a=zn(o,e),c=new Dy(eb(s),a);return ab(t,o,c)}else return[]}function xy(t,e,n,r,i=!1){let o=e._path,s=t.syncPointTree_.get(o),a=[];if(s&&(e._queryIdentifier==="default"||Kj(s,e))){let c=Pie(s,e,n,r);Mie(s)&&(t.syncPointTree_=t.syncPointTree_.remove(o));let l=c.removed;if(a=c.events,!i){let d=l.findIndex(f=>f._queryParams.loadsAllData())!==-1,h=t.syncPointTree_.findOnPath(o,(f,g)=>ta(g));if(d&&!h){let f=t.syncPointTree_.subtree(o);if(!f.isEmpty()){let g=$ie(f);for(let E=0;E<g.length;++E){let I=g[E],S=I.query,L=Jj(t,I);t.listenProvider_.startListening(Hp(S),Qp(t,S),L.hashFn,L.onComplete)}}}!h&&l.length>0&&!r&&(d?t.listenProvider_.stopListening(Hp(e),null):l.forEach(f=>{let g=t.queryToTagMap.get(Wy(f));t.listenProvider_.stopListening(Hp(f),g)}))}Wie(t,l)}return a}function Yj(t,e,n,r){let i=ob(t,r);if(i!=null){let o=sb(i),s=o.path,a=o.queryId,c=zn(s,e),l=new Dd(eb(a),c,n);return ab(t,s,l)}else return[]}function jie(t,e,n,r){let i=ob(t,r);if(i){let o=sb(i),s=o.path,a=o.queryId,c=zn(s,e),l=qn.fromObject(n),d=new Yp(eb(a),c,l);return ab(t,s,d)}else return[]}function bw(t,e,n,r=!1){let i=e._path,o=null,s=!1;t.syncPointTree_.foreachOnPath(i,(f,g)=>{let E=zn(f,i);o=o||Js(g,E),s=s||ta(g)});let a=t.syncPointTree_.get(i);a?(s=s||ta(a),o=o||Js(a,Ve())):(a=new My,t.syncPointTree_=t.syncPointTree_.set(i,a));let c;o!=null?c=!0:(c=!1,o=ve.EMPTY_NODE,t.syncPointTree_.subtree(i).foreachChild((g,E)=>{let I=Js(E,Ve());I&&(o=o.updateImmediateChild(g,I))}));let l=Kj(a,e);if(!l&&!e._queryParams.loadsAllData()){let f=Wy(e);q(!t.queryToTagMap.has(f),"View does not exist, but we have a tag");let g=zie();t.queryToTagMap.set(f,g),t.tagToQueryMap.set(g,f)}let d=jy(t.pendingWriteTree_,i),h=Lie(a,e,n,d,o,c);if(!l&&!s&&!r){let f=qj(a,e);h=h.concat(qie(t,e,f))}return h}function $y(t,e,n){let i=t.pendingWriteTree_,o=t.syncPointTree_.findOnPath(e,(s,a)=>{let c=zn(s,e),l=Js(a,c);if(l)return l});return Vj(i,e,o,n,!0)}function Hie(t,e){let n=e._path,r=null;t.syncPointTree_.foreachOnPath(n,(l,d)=>{let h=zn(l,n);r=r||Js(d,h)});let i=t.syncPointTree_.get(n);i?r=r||Js(i,Ve()):(i=new My,t.syncPointTree_=t.syncPointTree_.set(n,i));let o=r!=null,s=o?new eo(r,!0,!1):null,a=jy(t.pendingWriteTree_,e._path),c=Wj(i,e,a,o?s.getNode():ve.EMPTY_NODE,o);return Die(c)}function Md(t,e){return Xj(e,t.syncPointTree_,null,jy(t.pendingWriteTree_,Ve()))}function Xj(t,e,n,r){if(we(t.path))return Qj(t,e,n,r);{let i=e.get(Ve());n==null&&i!=null&&(n=Js(i,Ve()));let o=[],s=Ne(t.path),a=t.operationForChild(s),c=e.children.get(s);if(c&&a){let l=n?n.getImmediateChild(s):null,d=Bj(r,s);o=o.concat(Xj(a,c,l,d))}return i&&(o=o.concat(rb(i,t,r,n))),o}}function Qj(t,e,n,r){let i=e.get(Ve());n==null&&i!=null&&(n=Js(i,Ve()));let o=[];return e.children.inorderTraversal((s,a)=>{let c=n?n.getImmediateChild(s):null,l=Bj(r,s),d=t.operationForChild(s);d&&(o=o.concat(Qj(d,a,c,l)))}),i&&(o=o.concat(rb(i,t,r,n))),o}function Jj(t,e){let n=e.query,r=Qp(t,n);return{hashFn:()=>(Cie(e)||ve.EMPTY_NODE).hash(),onComplete:i=>{if(i==="ok")return r?Gie(t,n._path,r):Bie(t,n._path);{let o=rre(i,n);return xy(t,n,null,o)}}}}function Qp(t,e){let n=Wy(e);return t.queryToTagMap.get(n)}function Wy(t){return t._path.toString()+"$"+t._queryIdentifier}function ob(t,e){return t.tagToQueryMap.get(e)}function sb(t){let e=t.indexOf("$");return q(e!==-1&&e<t.length-1,"Bad queryKey."),{queryId:t.substr(e+1),path:new Be(t.substr(0,e))}}function ab(t,e,n){let r=t.syncPointTree_.get(e);q(r,"Missing sync point for query tag that we're tracking");let i=jy(t.pendingWriteTree_,e);return rb(r,n,i,null)}function $ie(t){return t.fold((e,n,r)=>{if(n&&ta(n))return[Hy(n)];{let i=[];return n&&(i=zj(n)),dn(r,(o,s)=>{i=i.concat(s)}),i}})}function Hp(t){return t._queryParams.loadsAllData()&&!t._queryParams.isDefault()?new(kie())(t._repo,t._path):t}function Wie(t,e){for(let n=0;n<e.length;++n){let r=e[n];if(!r._queryParams.loadsAllData()){let i=Wy(r),o=t.queryToTagMap.get(i);t.queryToTagMap.delete(i),t.tagToQueryMap.delete(o)}}}function zie(){return Fie++}function qie(t,e,n){let r=e._path,i=Qp(t,e),o=Jj(t,n),s=t.listenProvider_.startListening(Hp(e),i,o.hashFn,o.onComplete),a=t.syncPointTree_.subtree(r);if(i)q(!ta(a.value),"If we're adding a query, it shouldn't be shadowed");else{let c=a.fold((l,d,h)=>{if(!we(l)&&d&&ta(d))return[Hy(d).query];{let f=[];return d&&(f=f.concat(zj(d).map(g=>g.query))),dn(h,(g,E)=>{f=f.concat(E)}),f}});for(let l=0;l<c.length;++l){let d=c[l];t.listenProvider_.stopListening(Hp(d),Qp(t,d))}}return s}var Ow=class t{constructor(e){this.node_=e}getImmediateChild(e){let n=this.node_.getImmediateChild(e);return new t(n)}node(){return this.node_}},Mw=class t{constructor(e,n){this.syncTree_=e,this.path_=n}getImmediateChild(e){let n=Ct(this.path_,e);return new t(this.syncTree_,n)}node(){return $y(this.syncTree_,this.path_)}},Kie=function(t){return t=t||{},t.timestamp=t.timestamp||new Date().getTime(),t},tj=function(t,e,n){if(!t||typeof t!="object")return t;if(q(".sv"in t,"Unexpected leaf node or priority contents"),typeof t[".sv"]=="string")return Yie(t[".sv"],e,n);if(typeof t[".sv"]=="object")return Xie(t[".sv"],e);q(!1,"Unexpected server value: "+JSON.stringify(t,null,2))},Yie=function(t,e,n){if(t==="timestamp")return n.timestamp;q(!1,"Unexpected server value: "+t)},Xie=function(t,e,n){t.hasOwnProperty("increment")||q(!1,"Unexpected server value: "+JSON.stringify(t,null,2));let r=t.increment;typeof r!="number"&&q(!1,"Unexpected increment value: "+r);let i=e.node();if(q(i!==null&&typeof i<"u","Expected ChildrenNode.EMPTY_NODE for nulls"),!i.isLeafNode())return r;let s=i.getValue();return typeof s!="number"?r:s+r},Zj=function(t,e,n,r){return lb(e,new Mw(n,t),r)},cb=function(t,e,n){return lb(t,new Ow(e),n)};function lb(t,e,n){let r=t.getPriority().val(),i=tj(r,e.getImmediateChild(".priority"),n),o;if(t.isLeafNode()){let s=t,a=tj(s.getValue(),e,n);return a!==s.getValue()||i!==s.getPriority().val()?new Sd(a,At(i)):t}else{let s=t;return o=s,i!==s.getPriority().val()&&(o=o.updatePriority(new Sd(i))),s.forEachChild(ft,(a,c)=>{let l=lb(c,e.getImmediateChild(a),n);l!==c&&(o=o.updateImmediateChild(a,l))}),o}}var Jp=class{constructor(e="",n=null,r={children:{},childCount:0}){this.name=e,this.parent=n,this.node=r}};function zy(t,e){let n=e instanceof Be?e:new Be(e),r=t,i=Ne(n);for(;i!==null;){let o=Fs(r.node.children,i)||{children:{},childCount:0};r=new Jp(i,r,o),n=at(n),i=Ne(n)}return r}function ll(t){return t.node.value}function ub(t,e){t.node.value=e,Lw(t)}function eH(t){return t.node.childCount>0}function Qie(t){return ll(t)===void 0&&!eH(t)}function qy(t,e){dn(t.node.children,(n,r)=>{e(new Jp(n,t,r))})}function tH(t,e,n,r){n&&!r&&e(t),qy(t,i=>{tH(i,e,!0,r)}),n&&r&&e(t)}function Jie(t,e,n){let r=n?t:t.parent;for(;r!==null;){if(e(r))return!0;r=r.parent}return!1}function sg(t){return new Be(t.parent===null?t.name:sg(t.parent)+"/"+t.name)}function Lw(t){t.parent!==null&&Zie(t.parent,t.name,t)}function Zie(t,e,n){let r=Qie(n),i=Vr(t.node.children,e);r&&i?(delete t.node.children[e],t.node.childCount--,Lw(t)):!r&&!i&&(t.node.children[e]=n.node,t.node.childCount++,Lw(t))}var eoe=/[\[\].#$\/\u0000-\u001F\u007F]/,toe=/[\[\].#$\u0000-\u001F\u007F]/,WN=10*1024*1024,Ky=function(t){return typeof t=="string"&&t.length!==0&&!eoe.test(t)},nH=function(t){return typeof t=="string"&&t.length!==0&&!toe.test(t)},noe=function(t){return t&&(t=t.replace(/^\/*\.info(\/|$)/,"/")),nH(t)},Zp=function(t){return t===null||typeof t=="string"||typeof t=="number"&&!By(t)||t&&typeof t=="object"&&Vr(t,".sv")},rl=function(t,e,n,r){r&&e===void 0||ag(Us(t,"value"),e,n)},ag=function(t,e,n){let r=n instanceof Be?new iw(n,t):n;if(e===void 0)throw new Error(t+"contains undefined "+Qc(r));if(typeof e=="function")throw new Error(t+"contains a function "+Qc(r)+" with contents = "+e.toString());if(By(e))throw new Error(t+"contains "+e.toString()+" "+Qc(r));if(typeof e=="string"&&e.length>WN/3&&mp(e)>WN)throw new Error(t+"contains a string greater than "+WN+" utf8 bytes "+Qc(r)+" ('"+e.substring(0,50)+"...')");if(e&&typeof e=="object"){let i=!1,o=!1;if(dn(e,(s,a)=>{if(s===".value")i=!0;else if(s!==".priority"&&s!==".sv"&&(o=!0,!Ky(s)))throw new Error(t+" contains an invalid key ("+s+") "+Qc(r)+`. Keys must be non-empty strings and can't contain ".", "#", "$", "/", "[", or "]"`);Mre(r,s),ag(t,a,r),Lre(r)}),i&&o)throw new Error(t+' contains ".value" child '+Qc(r)+" in addition to actual children.")}},roe=function(t,e){let n,r;for(n=0;n<e.length;n++){r=e[n];let o=$p(r);for(let s=0;s<o.length;s++)if(!(o[s]===".priority"&&s===o.length-1)){if(!Ky(o[s]))throw new Error(t+"contains an invalid key ("+o[s]+") in path "+r.toString()+`. Keys must be non-empty strings and can't contain ".", "#", "$", "/", "[", or "]"`)}}e.sort(Ore);let i=null;for(n=0;n<e.length;n++){if(r=e[n],i!==null&&jr(i,r))throw new Error(t+"contains a path "+i.toString()+" that is ancestor of another path "+r.toString());i=r}},rH=function(t,e,n,r){if(r&&e===void 0)return;let i=Us(t,"values");if(!(e&&typeof e=="object")||Array.isArray(e))throw new Error(i+" must be an object containing the children to replace.");let o=[];dn(e,(s,a)=>{let c=new Be(s);if(ag(i,a,Ct(n,c)),Kw(c)===".priority"&&!Zp(a))throw new Error(i+"contains an invalid value for '"+c.toString()+"', which must be a valid Firebase priority (a string, finite number, server value, or null).");o.push(c)}),roe(i,o)},ioe=function(t,e,n){if(!(n&&e===void 0)){if(By(e))throw new Error(Us(t,"priority")+"is "+e.toString()+", but must be a valid Firebase priority (a string, finite number, server value, or null).");if(!Zp(e))throw new Error(Us(t,"priority")+"must be a valid Firebase priority (a string, finite number, server value, or null).")}},iH=function(t,e,n,r){if(!(r&&n===void 0)&&!Ky(n))throw new Error(Us(t,e)+'was an invalid key = "'+n+`". Firebase keys must be non-empty strings and can't contain ".", "#", "$", "/", "[", or "]").`)},db=function(t,e,n,r){if(!(r&&n===void 0)&&!nH(n))throw new Error(Us(t,e)+'was an invalid path = "'+n+`". Paths must be non-empty strings and can't contain ".", "#", "$", "[", or "]"`)},ooe=function(t,e,n,r){n&&(n=n.replace(/^\/*\.info(\/|$)/,"/")),db(t,e,n,r)},Xs=function(t,e){if(Ne(e)===".info")throw new Error(t+" failed = Can't modify data under /.info/")},soe=function(t,e){let n=e.path.toString();if(typeof e.repoInfo.host!="string"||e.repoInfo.host.length===0||!Ky(e.repoInfo.namespace)&&e.repoInfo.host.split(":")[0]!=="localhost"||n.length!==0&&!noe(n))throw new Error(Us(t,"url")+`must be a valid firebase URL and the path can't contain ".", "#", "$", "[", or "]".`)};var Pw=class{constructor(){this.eventLists_=[],this.recursionDepth_=0}};function Yy(t,e){let n=null;for(let r=0;r<e.length;r++){let i=e[r],o=i.getPath();n!==null&&!Yw(o,n.path)&&(t.eventLists_.push(n),n=null),n===null&&(n={events:[],path:o}),n.events.push(i)}n&&t.eventLists_.push(n)}function oH(t,e,n){Yy(t,n),sH(t,r=>Yw(r,e))}function vr(t,e,n){Yy(t,n),sH(t,r=>jr(r,e)||jr(e,r))}function sH(t,e){t.recursionDepth_++;let n=!0;for(let r=0;r<t.eventLists_.length;r++){let i=t.eventLists_[r];if(i){let o=i.path;e(o)?(aoe(t.eventLists_[r]),t.eventLists_[r]=null):n=!1}}n&&(t.eventLists_=[]),t.recursionDepth_--}function aoe(t){for(let e=0;e<t.events.length;e++){let n=t.events[e];if(n!==null){t.events[e]=null;let r=n.getEventRunner();Zc&&un("event: "+n.toString()),bd(r)}}}var coe="repo_interrupt",loe=25,xw=class{constructor(e,n,r,i){this.repoInfo_=e,this.forceRestClient_=n,this.authTokenProvider_=r,this.appCheckProvider_=i,this.dataUpdateCount=0,this.statsListener_=null,this.eventQueue_=new Pw,this.nextWriteId_=1,this.interceptServerDataCallback_=null,this.onDisconnect_=Cy(),this.transactionQueueTree_=new Jp,this.persistentConnection_=null,this.key=this.repoInfo_.toURLString()}toString(){return(this.repoInfo_.secure?"https://":"http://")+this.repoInfo_.host}};function uoe(t,e,n){if(t.stats_=qw(t.repoInfo_),t.forceRestClient_||are())t.server_=new pw(t.repoInfo_,(r,i,o,s)=>{nj(t,r,i,o,s)},t.authTokenProvider_,t.appCheckProvider_),setTimeout(()=>rj(t,!0),0);else{if(typeof n<"u"&&n!==null){if(typeof n!="object")throw new Error("Only objects are supported for option databaseAuthVariableOverride");try{xt(n)}catch(r){throw new Error("Invalid authOverride provided: "+r)}}t.persistentConnection_=new Xw(t.repoInfo_,e,(r,i,o,s)=>{nj(t,r,i,o,s)},r=>{rj(t,r)},r=>{doe(t,r)},t.authTokenProvider_,t.appCheckProvider_,n),t.server_=t.persistentConnection_}t.authTokenProvider_.addTokenChangeListener(r=>{t.server_.refreshAuthToken(r)}),t.appCheckProvider_.addTokenChangeListener(r=>{t.server_.refreshAppCheckToken(r.token)}),t.statsReporter_=lre(t.repoInfo_,()=>new Tw(t.stats_,t.server_)),t.infoData_=new gw,t.infoSyncTree_=new Py({startListening:(r,i,o,s)=>{let a=[],c=t.infoData_.getNode(r._path);return c.isEmpty()||(a=og(t.infoSyncTree_,r._path,c),setTimeout(()=>{s("ok")},0)),a},stopListening:()=>{}}),hb(t,"connected",!1),t.serverSyncTree_=new Py({startListening:(r,i,o,s)=>(t.server_.listen(r,o,i,(a,c)=>{let l=s(a,c);vr(t.eventQueue_,r._path,l)}),[]),stopListening:(r,i)=>{t.server_.unlisten(r,i)}})}function aH(t){let n=t.infoData_.getNode(new Be(".info/serverTimeOffset")).val()||0;return new Date().getTime()+n}function cg(t){return Kie({timestamp:aH(t)})}function nj(t,e,n,r,i){t.dataUpdateCount++;let o=new Be(e);n=t.interceptServerDataCallback_?t.interceptServerDataCallback_(e,n):n;let s=[];if(i)if(r){let c=pp(n,l=>At(l));s=jie(t.serverSyncTree_,o,c,i)}else{let c=At(n);s=Yj(t.serverSyncTree_,o,c,i)}else if(r){let c=pp(n,l=>At(l));s=Vie(t.serverSyncTree_,o,c)}else{let c=At(n);s=og(t.serverSyncTree_,o,c)}let a=o;s.length>0&&(a=Nd(t,o)),vr(t.eventQueue_,a,s)}function rj(t,e){hb(t,"connected",e),e===!1&&goe(t)}function doe(t,e){dn(e,(n,r)=>{hb(t,n,r)})}function hb(t,e,n){let r=new Be("/.info/"+e),i=At(n);t.infoData_.updateSnapshot(r,i);let o=og(t.infoSyncTree_,r,i);vr(t.eventQueue_,r,o)}function Xy(t){return t.nextWriteId_++}function hoe(t,e,n){let r=Hie(t.serverSyncTree_,e);return r!=null?Promise.resolve(r):t.server_.get(e).then(i=>{let o=At(i).withIndex(e._queryParams.getIndex());bw(t.serverSyncTree_,e,n,!0);let s;if(e._queryParams.loadsAllData())s=og(t.serverSyncTree_,e._path,o);else{let a=Qp(t.serverSyncTree_,e);s=Yj(t.serverSyncTree_,e._path,o,a)}return vr(t.eventQueue_,e._path,s),xy(t.serverSyncTree_,e,n,null,!0),o},i=>(Ld(t,"get for query "+xt(e)+" failed: "+i),Promise.reject(new Error(i))))}function foe(t,e,n,r,i){Ld(t,"set",{path:e.toString(),value:n,priority:r});let o=cg(t),s=At(n,r),a=$y(t.serverSyncTree_,e),c=cb(s,a,o),l=Xy(t),d=ib(t.serverSyncTree_,e,c,l,!0);Yy(t.eventQueue_,d),t.server_.put(e.toString(),s.val(!0),(f,g)=>{let E=f==="ok";E||xn("set at "+e+" failed: "+f);let I=Ys(t.serverSyncTree_,l,!E);vr(t.eventQueue_,e,I),na(t,i,f,g)});let h=pb(t,e);Nd(t,h),vr(t.eventQueue_,h,[])}function poe(t,e,n,r){Ld(t,"update",{path:e.toString(),value:n});let i=!0,o=cg(t),s={};if(dn(n,(a,c)=>{i=!1,s[a]=Zj(Ct(e,a),At(c),t.serverSyncTree_,o)}),i)un("update() called with empty data. Don't do anything."),na(t,r,"ok",void 0);else{let a=Xy(t),c=Uie(t.serverSyncTree_,e,s,a);Yy(t.eventQueue_,c),t.server_.merge(e.toString(),n,(l,d)=>{let h=l==="ok";h||xn("update at "+e+" failed: "+l);let f=Ys(t.serverSyncTree_,a,!h),g=f.length>0?Nd(t,e):e;vr(t.eventQueue_,g,f),na(t,r,l,d)}),dn(n,l=>{let d=pb(t,Ct(e,l));Nd(t,d)}),vr(t.eventQueue_,e,[])}}function goe(t){Ld(t,"onDisconnectEvents");let e=cg(t),n=Cy();Ew(t.onDisconnect_,Ve(),(i,o)=>{let s=Zj(i,o,t.serverSyncTree_,e);Od(n,i,s)});let r=[];Ew(n,Ve(),(i,o)=>{r=r.concat(og(t.serverSyncTree_,i,o));let s=pb(t,i);Nd(t,s)}),t.onDisconnect_=Cy(),vr(t.eventQueue_,Ve(),r)}function moe(t,e,n){t.server_.onDisconnectCancel(e.toString(),(r,i)=>{r==="ok"&&mw(t.onDisconnect_,e),na(t,n,r,i)})}function ij(t,e,n,r){let i=At(n);t.server_.onDisconnectPut(e.toString(),i.val(!0),(o,s)=>{o==="ok"&&Od(t.onDisconnect_,e,i),na(t,r,o,s)})}function Eoe(t,e,n,r,i){let o=At(n,r);t.server_.onDisconnectPut(e.toString(),o.val(!0),(s,a)=>{s==="ok"&&Od(t.onDisconnect_,e,o),na(t,i,s,a)})}function _oe(t,e,n,r){if(fp(n)){un("onDisconnect().update() called with empty data. Don't do anything."),na(t,r,"ok",void 0);return}t.server_.onDisconnectMerge(e.toString(),n,(i,o)=>{i==="ok"&&dn(n,(s,a)=>{let c=At(a);Od(t.onDisconnect_,Ct(e,s),c)}),na(t,r,i,o)})}function Toe(t,e,n){let r;Ne(e._path)===".info"?r=bw(t.infoSyncTree_,e,n):r=bw(t.serverSyncTree_,e,n),oH(t.eventQueue_,e._path,r)}function kw(t,e,n){let r;Ne(e._path)===".info"?r=xy(t.infoSyncTree_,e,n):r=xy(t.serverSyncTree_,e,n),oH(t.eventQueue_,e._path,r)}function yoe(t){t.persistentConnection_&&t.persistentConnection_.interrupt(coe)}function Ld(t,...e){let n="";t.persistentConnection_&&(n=t.persistentConnection_.id+":"),un(n,...e)}function na(t,e,n,r){e&&bd(()=>{if(n==="ok")e(null);else{let i=(n||"error").toUpperCase(),o=i;r&&(o+=": "+r);let s=new Error(o);s.code=i,e(s)}})}function Ioe(t,e,n,r,i,o){Ld(t,"transaction on "+e);let s={path:e,update:n,onComplete:r,status:null,order:cj(),applyLocally:o,retryCount:0,unwatcher:i,abortReason:null,currentWriteId:null,currentInputSnapshot:null,currentOutputSnapshotRaw:null,currentOutputSnapshotResolved:null},a=fb(t,e,void 0);s.currentInputSnapshot=a;let c=s.update(a.val());if(c===void 0)s.unwatcher(),s.currentOutputSnapshotRaw=null,s.currentOutputSnapshotResolved=null,s.onComplete&&s.onComplete(null,!1,s.currentInputSnapshot);else{ag("transaction failed: Data returned ",c,s.path),s.status=0;let l=zy(t.transactionQueueTree_,e),d=ll(l)||[];d.push(s),ub(l,d);let h;typeof c=="object"&&c!==null&&Vr(c,".priority")?(h=Fs(c,".priority"),q(Zp(h),"Invalid priority returned by transaction. Priority must be a valid string, finite number, server value, or null.")):h=($y(t.serverSyncTree_,e)||ve.EMPTY_NODE).getPriority().val();let f=cg(t),g=At(c,h),E=cb(g,a,f);s.currentOutputSnapshotRaw=g,s.currentOutputSnapshotResolved=E,s.currentWriteId=Xy(t);let I=ib(t.serverSyncTree_,e,E,s.currentWriteId,s.applyLocally);vr(t.eventQueue_,e,I),Qy(t,t.transactionQueueTree_)}}function fb(t,e,n){return $y(t.serverSyncTree_,e,n)||ve.EMPTY_NODE}function Qy(t,e=t.transactionQueueTree_){if(e||Jy(t,e),ll(e)){let n=lH(t,e);q(n.length>0,"Sending zero length transaction queue"),n.every(i=>i.status===0)&&voe(t,sg(e),n)}else eH(e)&&qy(e,n=>{Qy(t,n)})}function voe(t,e,n){let r=n.map(l=>l.currentWriteId),i=fb(t,e,r),o=i,s=i.hash();for(let l=0;l<n.length;l++){let d=n[l];q(d.status===0,"tryToSendTransactionQueue_: items in queue should all be run."),d.status=1,d.retryCount++;let h=zn(e,d.path);o=o.updateChild(h,d.currentOutputSnapshotRaw)}let a=o.val(!0),c=e;t.server_.put(c.toString(),a,l=>{Ld(t,"transaction put response",{path:c.toString(),status:l});let d=[];if(l==="ok"){let h=[];for(let f=0;f<n.length;f++)n[f].status=2,d=d.concat(Ys(t.serverSyncTree_,n[f].currentWriteId)),n[f].onComplete&&h.push(()=>n[f].onComplete(null,!0,n[f].currentOutputSnapshotResolved)),n[f].unwatcher();Jy(t,zy(t.transactionQueueTree_,e)),Qy(t,t.transactionQueueTree_),vr(t.eventQueue_,e,d);for(let f=0;f<h.length;f++)bd(h[f])}else{if(l==="datastale")for(let h=0;h<n.length;h++)n[h].status===3?n[h].status=4:n[h].status=0;else{xn("transaction at "+c.toString()+" failed: "+l);for(let h=0;h<n.length;h++)n[h].status=4,n[h].abortReason=l}Nd(t,e)}},s)}function Nd(t,e){let n=cH(t,e),r=sg(n),i=lH(t,n);return Soe(t,i,r),r}function Soe(t,e,n){if(e.length===0)return;let r=[],i=[],s=e.filter(a=>a.status===0).map(a=>a.currentWriteId);for(let a=0;a<e.length;a++){let c=e[a],l=zn(n,c.path),d=!1,h;if(q(l!==null,"rerunTransactionsUnderNode_: relativePath should not be null."),c.status===4)d=!0,h=c.abortReason,i=i.concat(Ys(t.serverSyncTree_,c.currentWriteId,!0));else if(c.status===0)if(c.retryCount>=loe)d=!0,h="maxretry",i=i.concat(Ys(t.serverSyncTree_,c.currentWriteId,!0));else{let f=fb(t,c.path,s);c.currentInputSnapshot=f;let g=e[a].update(f.val());if(g!==void 0){ag("transaction failed: Data returned ",g,c.path);let E=At(g);typeof g=="object"&&g!=null&&Vr(g,".priority")||(E=E.updatePriority(f.getPriority()));let S=c.currentWriteId,L=cg(t),V=cb(E,f,L);c.currentOutputSnapshotRaw=E,c.currentOutputSnapshotResolved=V,c.currentWriteId=Xy(t),s.splice(s.indexOf(S),1),i=i.concat(ib(t.serverSyncTree_,c.path,V,c.currentWriteId,c.applyLocally)),i=i.concat(Ys(t.serverSyncTree_,S,!0))}else d=!0,h="nodata",i=i.concat(Ys(t.serverSyncTree_,c.currentWriteId,!0))}vr(t.eventQueue_,n,i),i=[],d&&(e[a].status=2,(function(f){setTimeout(f,Math.floor(0))})(e[a].unwatcher),e[a].onComplete&&(h==="nodata"?r.push(()=>e[a].onComplete(null,!1,e[a].currentInputSnapshot)):r.push(()=>e[a].onComplete(new Error(h),!1,null))))}Jy(t,t.transactionQueueTree_);for(let a=0;a<r.length;a++)bd(r[a]);Qy(t,t.transactionQueueTree_)}function cH(t,e){let n,r=t.transactionQueueTree_;for(n=Ne(e);n!==null&&ll(r)===void 0;)r=zy(r,n),e=at(e),n=Ne(e);return r}function lH(t,e){let n=[];return uH(t,e,n),n.sort((r,i)=>r.order-i.order),n}function uH(t,e,n){let r=ll(e);if(r)for(let i=0;i<r.length;i++)n.push(r[i]);qy(e,i=>{uH(t,i,n)})}function Jy(t,e){let n=ll(e);if(n){let r=0;for(let i=0;i<n.length;i++)n[i].status!==2&&(n[r]=n[i],r++);n.length=r,ub(e,n.length>0?n:void 0)}qy(e,r=>{Jy(t,r)})}function pb(t,e){let n=sg(cH(t,e)),r=zy(t.transactionQueueTree_,e);return Jie(r,i=>{zN(t,i)}),zN(t,r),tH(r,i=>{zN(t,i)}),n}function zN(t,e){let n=ll(e);if(n){let r=[],i=[],o=-1;for(let s=0;s<n.length;s++)n[s].status===3||(n[s].status===1?(q(o===s-1,"All SENT items should be at beginning of queue."),o=s,n[s].status=3,n[s].abortReason="set"):(q(n[s].status===0,"Unexpected transaction status in abort"),n[s].unwatcher(),i=i.concat(Ys(t.serverSyncTree_,n[s].currentWriteId,!0)),n[s].onComplete&&r.push(n[s].onComplete.bind(null,new Error("set"),!1,null))));o===-1?ub(e,void 0):n.length=o+1,vr(t.eventQueue_,sg(e),i);for(let s=0;s<r.length;s++)bd(r[s])}}function Aoe(t){let e="",n=t.split("/");for(let r=0;r<n.length;r++)if(n[r].length>0){let i=n[r];try{i=decodeURIComponent(i.replace(/\+/g," "))}catch{}e+="/"+i}return e}function Coe(t){let e={};t.charAt(0)==="?"&&(t=t.substring(1));for(let n of t.split("&")){if(n.length===0)continue;let r=n.split("=");r.length===2?e[decodeURIComponent(r[0])]=decodeURIComponent(r[1]):xn(`Invalid query segment '${n}' in query '${t}'`)}return e}var oj=function(t,e){let n=Doe(t),r=n.namespace;n.domain==="firebase.com"&&Wo(n.host+" is no longer supported. Please use <YOUR FIREBASE>.firebaseio.com instead"),(!r||r==="undefined")&&n.domain!=="localhost"&&Wo("Cannot parse Firebase url. Please use https://<YOUR FIREBASE>.firebaseio.com"),n.secure||Jne();let i=n.scheme==="ws"||n.scheme==="wss";return{repoInfo:new my(n.host,n.secure,r,i,e,"",r!==n.subdomain),path:new Be(n.pathString)}},Doe=function(t){let e="",n="",r="",i="",o="",s=!0,a="https",c=443;if(typeof t=="string"){let l=t.indexOf("//");l>=0&&(a=t.substring(0,l-1),t=t.substring(l+2));let d=t.indexOf("/");d===-1&&(d=t.length);let h=t.indexOf("?");h===-1&&(h=t.length),e=t.substring(0,Math.min(d,h)),d<h&&(i=Aoe(t.substring(d,h)));let f=Coe(t.substring(Math.min(t.length,h)));l=e.indexOf(":"),l>=0?(s=a==="https"||a==="wss",c=parseInt(e.substring(l+1),10)):l=e.length;let g=e.slice(0,l);if(g.toLowerCase()==="localhost")n="localhost";else if(g.split(".").length<=2)n=g;else{let E=e.indexOf(".");r=e.substring(0,E).toLowerCase(),n=e.substring(E+1),o=r}"ns"in f&&(o=f.ns)}return{host:e,port:c,domain:n,subdomain:r,secure:s,scheme:a,pathString:i,namespace:o}};var sj="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz",Roe=(function(){let t=0,e=[];return function(n){let r=n===t;t=n;let i,o=new Array(8);for(i=7;i>=0;i--)o[i]=sj.charAt(n%64),n=Math.floor(n/64);q(n===0,"Cannot push at time == 0");let s=o.join("");if(r){for(i=11;i>=0&&e[i]===63;i--)e[i]=0;e[i]++}else for(i=0;i<12;i++)e[i]=Math.floor(Math.random()*64);for(i=0;i<12;i++)s+=sj.charAt(e[i]);return q(s.length===20,"nextPushId: Length should be 20."),s}})();var ky=class{constructor(e,n,r,i){this.eventType=e,this.eventRegistration=n,this.snapshot=r,this.prevName=i}getPath(){let e=this.snapshot.ref;return this.eventType==="value"?e._path:e.parent._path}getEventType(){return this.eventType}getEventRunner(){return this.eventRegistration.getEventRunner(this)}toString(){return this.getPath().toString()+":"+this.eventType+":"+xt(this.snapshot.exportVal())}},Fy=class{constructor(e,n,r){this.eventRegistration=e,this.error=n,this.path=r}getPath(){return this.path}getEventType(){return"cancel"}getEventRunner(){return this.eventRegistration.getEventRunner(this)}toString(){return this.path.toString()+":cancel"}};var eg=class{constructor(e,n){this.snapshotCallback=e,this.cancelCallback=n}onValue(e,n){this.snapshotCallback.call(null,e,n)}onCancel(e){return q(this.hasCancelCallback,"Raising a cancel event on a listener with no cancel callback"),this.cancelCallback.call(null,e)}get hasCancelCallback(){return!!this.cancelCallback}matches(e){return this.snapshotCallback===e.snapshotCallback||this.snapshotCallback.userCallback!==void 0&&this.snapshotCallback.userCallback===e.snapshotCallback.userCallback&&this.snapshotCallback.context===e.snapshotCallback.context}};var Fw=class{constructor(e,n){this._repo=e,this._path=n}cancel(){let e=new cn;return moe(this._repo,this._path,e.wrapCallback(()=>{})),e.promise}remove(){Xs("OnDisconnect.remove",this._path);let e=new cn;return ij(this._repo,this._path,null,e.wrapCallback(()=>{})),e.promise}set(e){Xs("OnDisconnect.set",this._path),rl("OnDisconnect.set",e,this._path,!1);let n=new cn;return ij(this._repo,this._path,e,n.wrapCallback(()=>{})),n.promise}setWithPriority(e,n){Xs("OnDisconnect.setWithPriority",this._path),rl("OnDisconnect.setWithPriority",e,this._path,!1),ioe("OnDisconnect.setWithPriority",n,!1);let r=new cn;return Eoe(this._repo,this._path,e,n,r.wrapCallback(()=>{})),r.promise}update(e){Xs("OnDisconnect.update",this._path),rH("OnDisconnect.update",e,this._path,!1);let n=new cn;return _oe(this._repo,this._path,e,n.wrapCallback(()=>{})),n.promise}};var il=class t{constructor(e,n,r,i){this._repo=e,this._path=n,this._queryParams=r,this._orderByCalled=i}get key(){return we(this._path)?null:Kw(this._path)}get ref(){return new hi(this._repo,this._path)}get _queryIdentifier(){let e=W2(this._queryParams),n=zw(e);return n==="{}"?"default":n}get _queryObject(){return W2(this._queryParams)}isEqual(e){if(e=Me(e),!(e instanceof t))return!1;let n=this._repo===e._repo,r=Yw(this._path,e._path),i=this._queryIdentifier===e._queryIdentifier;return n&&r&&i}toJSON(){return this.toString()}toString(){return this._repo.toString()+bre(this._path)}};function Noe(t,e){if(t._orderByCalled===!0)throw new Error(e+": You can't combine multiple orderBy calls.")}function gb(t){let e=null,n=null;if(t.hasStart()&&(e=t.getIndexStartValue()),t.hasEnd()&&(n=t.getIndexEndValue()),t.getIndex()===el){let r="Query: When ordering by key, you may only pass one argument to startAt(), endAt(), or equalTo().",i="Query: When ordering by key, the argument passed to startAt(), startAfter(), endAt(), endBefore(), or equalTo() must be a string.";if(t.hasStart()){if(t.getIndexStartName()!==tl)throw new Error(r);if(typeof e!="string")throw new Error(i)}if(t.hasEnd()){if(t.getIndexEndName()!==Zs)throw new Error(r);if(typeof n!="string")throw new Error(i)}}else if(t.getIndex()===ft){if(e!=null&&!Zp(e)||n!=null&&!Zp(n))throw new Error("Query: When ordering by priority, the first argument passed to startAt(), startAfter() endAt(), endBefore(), or equalTo() must be a valid priority value (null, a number, or a string).")}else if(q(t.getIndex()instanceof Wp||t.getIndex()===Pj,"unknown index type."),e!=null&&typeof e=="object"||n!=null&&typeof n=="object")throw new Error("Query: First argument passed to startAt(), startAfter(), endAt(), endBefore(), or equalTo() cannot be an object.")}function dH(t){if(t.hasStart()&&t.hasEnd()&&t.hasLimit()&&!t.hasAnchoredLimit())throw new Error("Query: Can't combine startAt(), startAfter(), endAt(), endBefore(), and limit(). Use limitToFirst() or limitToLast() instead.")}var hi=class t extends il{constructor(e,n){super(e,n,new fw,!1)}get parent(){let e=Nj(this._path);return e===null?null:new t(this._repo,e)}get root(){let e=this;for(;e.parent!==null;)e=e.parent;return e}},wd=class t{constructor(e,n,r){this._node=e,this.ref=n,this._index=r}get priority(){return this._node.getPriority().val()}get key(){return this.ref.key}get size(){return this._node.numChildren()}child(e){let n=new Be(e),r=ol(this.ref,e);return new t(this._node.getChild(n),r,ft)}exists(){return!this._node.isEmpty()}exportVal(){return this._node.val(!0)}forEach(e){return this._node.isLeafNode()?!1:!!this._node.forEachChild(this._index,(r,i)=>e(new t(i,ol(this.ref,r),ft)))}hasChild(e){let n=new Be(e);return!this._node.getChild(n).isEmpty()}hasChildren(){return this._node.isLeafNode()?!1:!this._node.isEmpty()}toJSON(){return this.exportVal()}val(){return this._node.val()}};function hH(t,e){return t=Me(t),t._checkNotDeleted("ref"),e!==void 0?ol(t._root,e):t._root}function ol(t,e){return t=Me(t),Ne(t._path)===null?ooe("child","path",e,!1):db("child","path",e,!1),new hi(t._repo,Ct(t._path,e))}function fH(t){return t=Me(t),new Fw(t._repo,t._path)}function pH(t,e){t=Me(t),Xs("push",t._path),rl("push",e,t._path,!0);let n=aH(t._repo),r=Roe(n),i=ol(t,r),o=ol(t,r),s;return e!=null?s=Zy(o,e).then(()=>o):s=Promise.resolve(o),i.then=s.then.bind(s),i.catch=s.then.bind(s,void 0),i}function gH(t){return Xs("remove",t._path),Zy(t,null)}function Zy(t,e){t=Me(t),Xs("set",t._path),rl("set",e,t._path,!1);let n=new cn;return foe(t._repo,t._path,e,null,n.wrapCallback(()=>{})),n.promise}function mH(t,e){rH("update",e,t._path,!1);let n=new cn;return poe(t._repo,t._path,e,n.wrapCallback(()=>{})),n.promise}function eI(t){t=Me(t);let e=new eg(()=>{}),n=new tg(e);return hoe(t._repo,t,n).then(r=>new wd(r,new hi(t._repo,t._path),t._queryParams.getIndex()))}var tg=class t{constructor(e){this.callbackContext=e}respondsTo(e){return e==="value"}createEvent(e,n){let r=n._queryParams.getIndex();return new ky("value",this,new wd(e.snapshotNode,new hi(n._repo,n._path),r))}getEventRunner(e){return e.getEventType()==="cancel"?()=>this.callbackContext.onCancel(e.error):()=>this.callbackContext.onValue(e.snapshot,null)}createCancelEvent(e,n){return this.callbackContext.hasCancelCallback?new Fy(this,e,n):null}matches(e){return e instanceof t?!e.callbackContext||!this.callbackContext?!0:e.callbackContext.matches(this.callbackContext):!1}hasAnyCallback(){return this.callbackContext!==null}},Uy=class t{constructor(e,n){this.eventType=e,this.callbackContext=n}respondsTo(e){let n=e==="children_added"?"child_added":e;return n=n==="children_removed"?"child_removed":n,this.eventType===n}createCancelEvent(e,n){return this.callbackContext.hasCancelCallback?new Fy(this,e,n):null}createEvent(e,n){q(e.childName!=null,"Child events should have a childName.");let r=ol(new hi(n._repo,n._path),e.childName),i=n._queryParams.getIndex();return new ky(e.type,this,new wd(e.snapshotNode,r,i),e.prevName)}getEventRunner(e){return e.getEventType()==="cancel"?()=>this.callbackContext.onCancel(e.error):()=>this.callbackContext.onValue(e.snapshot,e.prevName)}matches(e){return e instanceof t?this.eventType===e.eventType&&(!this.callbackContext||!e.callbackContext||this.callbackContext.matches(e.callbackContext)):!1}hasAnyCallback(){return!!this.callbackContext}};function lg(t,e,n,r,i){let o;if(typeof r=="object"&&(o=void 0,i=r),typeof r=="function"&&(o=r),i&&i.onlyOnce){let c=n,l=(d,h)=>{kw(t._repo,t,a),c(d,h)};l.userCallback=n.userCallback,l.context=n.context,n=l}let s=new eg(n,o||void 0),a=e==="value"?new tg(s):new Uy(e,s);return Toe(t._repo,t,a),()=>kw(t._repo,t,a)}function ug(t,e,n,r){return lg(t,"value",e,n,r)}function tI(t,e,n,r){return lg(t,"child_added",e,n,r)}function nI(t,e,n,r){return lg(t,"child_changed",e,n,r)}function mb(t,e,n,r){return lg(t,"child_moved",e,n,r)}function rI(t,e,n,r){return lg(t,"child_removed",e,n,r)}function iI(t,e,n){let r=null,i=n?new eg(n):null;e==="value"?r=new tg(i):e&&(r=new Uy(e,i)),kw(t._repo,t,r)}var sl=class{},Uw=class extends sl{constructor(e,n){super(),this._value=e,this._key=n,this.type="endAt"}_apply(e){rl("endAt",this._value,e._path,!0);let n=Kre(e._queryParams,this._value,this._key);if(dH(n),gb(n),e._queryParams.hasEnd())throw new Error("endAt: Starting point was already set (by another call to endAt, endBefore or equalTo).");return new il(e._repo,e._path,n,e._orderByCalled)}};var Vy=class extends sl{constructor(e,n){super(),this._value=e,this._key=n,this.type="startAt"}_apply(e){rl("startAt",this._value,e._path,!0);let n=qre(e._queryParams,this._value,this._key);if(dH(n),gb(n),e._queryParams.hasStart())throw new Error("startAt: Starting point was already set (by another call to startAt, startBefore or equalTo).");return new il(e._repo,e._path,n,e._orderByCalled)}};function EH(t=null,e){return iH("startAt","key",e,!0),new Vy(t,e)}var Vw=class extends sl{constructor(e){super(),this._limit=e,this.type="limitToLast"}_apply(e){if(e._queryParams.hasLimit())throw new Error("limitToLast: Limit was already set (by another call to limitToFirst or limitToLast).");return new il(e._repo,e._path,zre(e._queryParams,this._limit),e._orderByCalled)}};function _H(t){if(typeof t!="number"||Math.floor(t)!==t||t<=0)throw new Error("limitToLast: First argument must be a positive integer.");return new Vw(t)}var Bw=class extends sl{constructor(e){super(),this._path=e,this.type="orderByChild"}_apply(e){Noe(e,"orderByChild");let n=new Be(this._path);if(we(n))throw new Error("orderByChild: cannot pass in empty path. Use orderByValue() instead.");let r=new Wp(n),i=Yre(e._queryParams,r);return gb(i),new il(e._repo,e._path,i,!0)}};function TH(t){if(t==="$key")throw new Error('orderByChild: "$key" is invalid. Use orderByKey() instead.');if(t==="$priority")throw new Error('orderByChild: "$priority" is invalid. Use orderByPriority() instead.');if(t==="$value")throw new Error('orderByChild: "$value" is invalid. Use orderByValue() instead.');return db("orderByChild","path",t,!1),new Bw(t)}var Gw=class extends sl{constructor(e,n){super(),this._value=e,this._key=n,this.type="equalTo"}_apply(e){if(rl("equalTo",this._value,e._path,!1),e._queryParams.hasStart())throw new Error("equalTo: Starting point was already set (by another call to startAt/startAfter or equalTo).");if(e._queryParams.hasEnd())throw new Error("equalTo: Ending point was already set (by another call to endAt/endBefore or equalTo).");return new Uw(this._value,this._key)._apply(new Vy(this._value,this._key)._apply(e))}};function yH(t,e){return iH("equalTo","key",e,!0),new Gw(t,e)}function IH(t,...e){let n=Me(t);for(let r of e)n=r._apply(n);return n}bie(hi);xie(hi);var woe="FIREBASE_DATABASE_EMULATOR_HOST",jw={},boe=!1;function Ooe(t,e,n,r){let i=e.lastIndexOf(":"),o=e.substring(0,i),s=_r(o);t.repoInfo_=new my(e,s,t.repoInfo_.namespace,t.repoInfo_.webSocketOnly,t.repoInfo_.nodeAdmin,t.repoInfo_.persistenceKey,t.repoInfo_.includeNamespaceInQueryParams,!0,n),r&&(t.authTokenProvider_=r)}function Moe(t,e,n,r,i){let o=r||t.options.databaseURL;o===void 0&&(t.options.projectId||Wo("Can't determine Firebase Database URL. Be sure to include a Project ID when calling firebase.initializeApp()."),un("Using default host for project ",t.options.projectId),o=`${t.options.projectId}-default-rtdb.firebaseio.com`);let s=oj(o,i),a=s.repoInfo,c,l;typeof process<"u"&&process.env&&(l=process.env[woe]),l?(c=!0,o=`http://${l}?ns=${a.namespace}`,s=oj(o,i),a=s.repoInfo):c=!s.repoInfo.secure;let d=i&&c?new Bp(Bp.OWNER):new JN(t.name,t.options,e);soe("Invalid Firebase Database URL",s),we(s.path)||Wo("Database URL must point to the root of a Firebase Database (not including a child path).");let h=Poe(a,t,d,new QN(t,n));return new Hw(h,t)}function Loe(t,e){let n=jw[e];(!n||n[t.key]!==t)&&Wo(`Database ${e}(${t.repoInfo_}) has already been deleted.`),yoe(t),delete n[t.key]}function Poe(t,e,n,r){let i=jw[e.name];i||(i={},jw[e.name]=i);let o=i[t.toURLString()];return o&&Wo("Database initialized multiple times. Please make sure the format of the database URL matches with each database() call."),o=new xw(t,boe,n,r),i[t.toURLString()]=o,o}var Hw=class{constructor(e,n){this._repoInternal=e,this.app=n,this.type="database",this._instanceStarted=!1}get _repo(){return this._instanceStarted||(uoe(this._repoInternal,this.app.options.appId,this.app.options.databaseAuthVariableOverride),this._instanceStarted=!0),this._repoInternal}get _root(){return this._rootInternal||(this._rootInternal=new hi(this._repo,Ve())),this._rootInternal}_delete(){return this._rootInternal!==null&&(Loe(this._repo,this.app.name),this._repoInternal=null,this._rootInternal=null),Promise.resolve()}_checkNotDeleted(e){this._rootInternal===null&&Wo("Cannot call "+e+" on a deleted database.")}};function xoe(){Rj.IS_TRANSPORT_INITIALIZED&&xn("Transport has already been initialized. Please call this function before calling ref or setting up a listener")}function Eb(){xoe(),Td.forceDisallow(),Ey.forceAllow()}function Pd(t=er(),e){let n=Xi(t,"database").getImmediate({identifier:e});if(!n._instanceStarted){let r=ld("database");r&&vH(n,...r)}return n}function vH(t,e,n,r={}){t=Me(t),t._checkNotDeleted("useEmulator");let i=`${e}:${n}`,o=t._repoInternal;if(t._instanceStarted){if(i===t._repoInternal.repoInfo_.host&&oi(r,o.repoInfo_.emulatorOptions))return;Wo("connectDatabaseEmulator() cannot initialize or alter the emulator configuration after the database instance has started.")}let s;if(o.repoInfo_.nodeAdmin)r.mockUserToken&&Wo('mockUserToken is not supported by the Admin SDK. For client access with mock users, please use the "firebase" package instead of "firebase-admin".'),s=new Bp(Bp.OWNER);else if(r.mockUserToken){let a=typeof r.mockUserToken=="string"?r.mockUserToken:FT(r.mockUserToken,t.app.options.projectId);s=new Bp(a)}_r(e)&&(ks(e),Fc("Database",!0)),Ooe(o,i,r,s)}function koe(t){Xne(Bs),$n(new Xt("database",(e,{instanceIdentifier:n})=>{let r=e.getProvider("app").getImmediate(),i=e.getProvider("auth-internal"),o=e.getProvider("app-check-internal");return Moe(r,i,o,n)},"PUBLIC").setMultipleInstances(!0)),Ge(N2,w2,t),Ge(N2,w2,"esm2017")}var $w=class{constructor(e,n){this.committed=e,this.snapshot=n}toJSON(){return{committed:this.committed,snapshot:this.snapshot.toJSON()}}};function SH(t,e,n){var r;if(t=Me(t),Xs("Reference.transaction",t._path),t.key===".length"||t.key===".keys")throw"Reference.transaction failed: "+t.key+" is a read-only object.";let i=(r=n?.applyLocally)!==null&&r!==void 0?r:!0,o=new cn,s=(c,l,d)=>{let h=null;c?o.reject(c):(h=new wd(d,new hi(t._repo,t._path),ft),o.resolve(new $w(l,h)))},a=ug(t,()=>{});return Ioe(t._repo,t._path,e,s,a,i),o.promise}Xw.prototype.simpleListen=function(t,e){this.sendRequest("q",{p:t},e)};Xw.prototype.echo=function(t,e){this.sendRequest("echo",{d:t},e)};koe();var ul,hn=(function(t){return t.added="child_added",t.removed="child_removed",t.changed="child_changed",t.moved="child_moved",t.value="value",t})(hn||{}),Foe=Object.freeze((ul={},ul[hn.added]=tI,ul[hn.removed]=rI,ul[hn.changed]=nI,ul[hn.moved]=mb,ul[hn.value]=ug,ul));function sI(t,e){return new fe(function(n){var r=Foe[e](t,function(i,o){n.next({snapshot:i,prevKey:o,event:e})},n.error.bind(n));return{unsubscribe:function(){iI(t,e,r)}}}).pipe(cS(0))}var oI=function(){return oI=Object.assign||function(e){for(var n,r=1,i=arguments.length;r<i;r++){n=arguments[r];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},oI.apply(this,arguments)};function _b(t,e,n){if(n||arguments.length===2)for(var r=0,i=e.length,o;r<i;r++)(o||!(r in e))&&(o||(o=Array.prototype.slice.call(e,0,r)),o[r]=e[r]);return t.concat(o||Array.prototype.slice.call(e))}function AH(t){return(t==null||t.length===0)&&(t=[hn.added,hn.removed,hn.changed,hn.moved]),t}function CH(t,e){return e===void 0&&(e={}),sI(t,hn.value).pipe(De(function(n){return Tb(n,e)}))}function Tb(t,e){var n;e===void 0&&(e={});var r=t.snapshot.val();return!t.snapshot.exists()||typeof r!="object"?r:oI(oI({},r),e.keyField?(n={},n[e.keyField]=t.snapshot.key,n):null)}function DH(t,e){e===void 0&&(e={});var n=AH(e.events),r=n.map(function(i){return sI(t,i)});return gs.apply(void 0,r)}function Uoe(t){return cr(eI(t)).pipe(De(function(e){var n=hn.value;return{snapshot:e,prevKey:null,event:n}}))}function RH(t,e){e===void 0&&(e={});var n=AH(e.events);return Uoe(t).pipe(Mr(function(r){var i=[lt(r)];return n.forEach(function(o){i.push(sI(t,o))}),gs.apply(void 0,i).pipe(Zm(Boe,[]))}),yo())}function NH(t,e){return e===void 0&&(e={}),RH(t).pipe(De(function(n){return n.map(function(r){return Tb(r,e)})}))}function wH(t,e){for(var n=t.length,r=0;r<n;r++)if(t[r].snapshot.key===e)return r;return-1}function Voe(t,e){if(e==null)return 0;var n=wH(t,e);return n===-1?t.length:n+1}function Boe(t,e){var n=e.snapshot,r=e.prevKey,i=e.event,o=n.key,s=wH(t,o),a=Voe(t,r||void 0);switch(i){case hn.value:if(e.snapshot&&e.snapshot.exists()){var c=null;e.snapshot.forEach(function(h){var f={snapshot:h,event:hn.value,prevKey:c};return c=h.key,t=_b(_b([],t,!0),[f],!1),!1})}return t;case hn.added:if(s>-1){var l=t[s-1];(l&&l.snapshot.key||null)!==r&&(t=t.filter(function(h){return h.snapshot.key!==n.key}),t.splice(a,0,e))}else{if(r==null)return _b([e],t,!0);t=t.slice(),t.splice(a,0,e)}return t;case hn.removed:return t.filter(function(h){return h.snapshot.key!==n.key});case hn.changed:return t.map(function(h){return h.snapshot.key===o?e:h});case hn.moved:if(s>-1){var d=t.splice(s,1)[0];return t=t.slice(),t.splice(a,0,d),t}return t;default:return t}}var dg=class{constructor(e){return e}},bH="database",yb=class{constructor(){return Go(bH)}};var Ib=new z("angularfire2.database-instances");function Goe(t,e){let n=Gs(bH,t,e);return n&&new dg(n)}function joe(t){return(e,n)=>{let r=e.runOutsideAngular(()=>t(n));return new dg(r)}}var Hoe={provide:yb,deps:[[new zt,Ib]]},$oe={provide:dg,useFactory:Goe,deps:[[new zt,Ib],ci]};function oFe(t,...e){return Ge("angularfire",si.full,"rtdb"),Xn([$oe,Hoe,{provide:Ib,useFactory:joe(t),multi:!0,deps:[Ae,ze,ai,jo,[new zt,$c],[new zt,Hs],...e]}])}var OH=ue(NH,!0);var MH=ue(CH,!0),LH=ue(DH,!0);var sFe=ue(yH,!0,2);var hg=ue(eI,!0),aFe=ue(Pd,!0);var cFe=ue(_H,!0,2),PH=ue(iI,!0),xH=ue(tI,!0),kH=ue(nI,!0);var FH=ue(rI,!0),UH=ue(fH,!0),vb=ue(ug,!0),lFe=ue(TH,!0,2);var VH=ue(pH,!0,2),BH=ue(IH,!0,2),xd=ue(hH,!0,2);var GH=ue(gH,!0,2),jH=ue(SH,!0),HH=ue(Zy,!0,2);var uFe=ue(EH,!0,2),$H=ue(mH,!0,2);var WH=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},zH={};var zo,Sb;(function(){var t;function e(C,v){function A(){}A.prototype=v.prototype,C.D=v.prototype,C.prototype=new A,C.prototype.constructor=C,C.C=function(R,N,O){for(var D=Array(arguments.length-2),Vn=2;Vn<arguments.length;Vn++)D[Vn-2]=arguments[Vn];return v.prototype[N].apply(R,D)}}function n(){this.blockSize=-1}function r(){this.blockSize=-1,this.blockSize=64,this.g=Array(4),this.B=Array(this.blockSize),this.o=this.h=0,this.s()}e(r,n),r.prototype.s=function(){this.g[0]=1732584193,this.g[1]=4023233417,this.g[2]=2562383102,this.g[3]=271733878,this.o=this.h=0};function i(C,v,A){A||(A=0);var R=Array(16);if(typeof v=="string")for(var N=0;16>N;++N)R[N]=v.charCodeAt(A++)|v.charCodeAt(A++)<<8|v.charCodeAt(A++)<<16|v.charCodeAt(A++)<<24;else for(N=0;16>N;++N)R[N]=v[A++]|v[A++]<<8|v[A++]<<16|v[A++]<<24;v=C.g[0],A=C.g[1],N=C.g[2];var O=C.g[3],D=v+(O^A&(N^O))+R[0]+3614090360&4294967295;v=A+(D<<7&4294967295|D>>>25),D=O+(N^v&(A^N))+R[1]+3905402710&4294967295,O=v+(D<<12&4294967295|D>>>20),D=N+(A^O&(v^A))+R[2]+606105819&4294967295,N=O+(D<<17&4294967295|D>>>15),D=A+(v^N&(O^v))+R[3]+3250441966&4294967295,A=N+(D<<22&4294967295|D>>>10),D=v+(O^A&(N^O))+R[4]+4118548399&4294967295,v=A+(D<<7&4294967295|D>>>25),D=O+(N^v&(A^N))+R[5]+1200080426&4294967295,O=v+(D<<12&4294967295|D>>>20),D=N+(A^O&(v^A))+R[6]+2821735955&4294967295,N=O+(D<<17&4294967295|D>>>15),D=A+(v^N&(O^v))+R[7]+4249261313&4294967295,A=N+(D<<22&4294967295|D>>>10),D=v+(O^A&(N^O))+R[8]+1770035416&4294967295,v=A+(D<<7&4294967295|D>>>25),D=O+(N^v&(A^N))+R[9]+2336552879&4294967295,O=v+(D<<12&4294967295|D>>>20),D=N+(A^O&(v^A))+R[10]+4294925233&4294967295,N=O+(D<<17&4294967295|D>>>15),D=A+(v^N&(O^v))+R[11]+2304563134&4294967295,A=N+(D<<22&4294967295|D>>>10),D=v+(O^A&(N^O))+R[12]+1804603682&4294967295,v=A+(D<<7&4294967295|D>>>25),D=O+(N^v&(A^N))+R[13]+4254626195&4294967295,O=v+(D<<12&4294967295|D>>>20),D=N+(A^O&(v^A))+R[14]+2792965006&4294967295,N=O+(D<<17&4294967295|D>>>15),D=A+(v^N&(O^v))+R[15]+1236535329&4294967295,A=N+(D<<22&4294967295|D>>>10),D=v+(N^O&(A^N))+R[1]+4129170786&4294967295,v=A+(D<<5&4294967295|D>>>27),D=O+(A^N&(v^A))+R[6]+3225465664&4294967295,O=v+(D<<9&4294967295|D>>>23),D=N+(v^A&(O^v))+R[11]+643717713&4294967295,N=O+(D<<14&4294967295|D>>>18),D=A+(O^v&(N^O))+R[0]+3921069994&4294967295,A=N+(D<<20&4294967295|D>>>12),D=v+(N^O&(A^N))+R[5]+3593408605&4294967295,v=A+(D<<5&4294967295|D>>>27),D=O+(A^N&(v^A))+R[10]+38016083&4294967295,O=v+(D<<9&4294967295|D>>>23),D=N+(v^A&(O^v))+R[15]+3634488961&4294967295,N=O+(D<<14&4294967295|D>>>18),D=A+(O^v&(N^O))+R[4]+3889429448&4294967295,A=N+(D<<20&4294967295|D>>>12),D=v+(N^O&(A^N))+R[9]+568446438&4294967295,v=A+(D<<5&4294967295|D>>>27),D=O+(A^N&(v^A))+R[14]+3275163606&4294967295,O=v+(D<<9&4294967295|D>>>23),D=N+(v^A&(O^v))+R[3]+4107603335&4294967295,N=O+(D<<14&4294967295|D>>>18),D=A+(O^v&(N^O))+R[8]+1163531501&4294967295,A=N+(D<<20&4294967295|D>>>12),D=v+(N^O&(A^N))+R[13]+2850285829&4294967295,v=A+(D<<5&4294967295|D>>>27),D=O+(A^N&(v^A))+R[2]+4243563512&4294967295,O=v+(D<<9&4294967295|D>>>23),D=N+(v^A&(O^v))+R[7]+1735328473&4294967295,N=O+(D<<14&4294967295|D>>>18),D=A+(O^v&(N^O))+R[12]+2368359562&4294967295,A=N+(D<<20&4294967295|D>>>12),D=v+(A^N^O)+R[5]+4294588738&4294967295,v=A+(D<<4&4294967295|D>>>28),D=O+(v^A^N)+R[8]+2272392833&4294967295,O=v+(D<<11&4294967295|D>>>21),D=N+(O^v^A)+R[11]+1839030562&4294967295,N=O+(D<<16&4294967295|D>>>16),D=A+(N^O^v)+R[14]+4259657740&4294967295,A=N+(D<<23&4294967295|D>>>9),D=v+(A^N^O)+R[1]+2763975236&4294967295,v=A+(D<<4&4294967295|D>>>28),D=O+(v^A^N)+R[4]+1272893353&4294967295,O=v+(D<<11&4294967295|D>>>21),D=N+(O^v^A)+R[7]+4139469664&4294967295,N=O+(D<<16&4294967295|D>>>16),D=A+(N^O^v)+R[10]+3200236656&4294967295,A=N+(D<<23&4294967295|D>>>9),D=v+(A^N^O)+R[13]+681279174&4294967295,v=A+(D<<4&4294967295|D>>>28),D=O+(v^A^N)+R[0]+3936430074&4294967295,O=v+(D<<11&4294967295|D>>>21),D=N+(O^v^A)+R[3]+3572445317&4294967295,N=O+(D<<16&4294967295|D>>>16),D=A+(N^O^v)+R[6]+76029189&4294967295,A=N+(D<<23&4294967295|D>>>9),D=v+(A^N^O)+R[9]+3654602809&4294967295,v=A+(D<<4&4294967295|D>>>28),D=O+(v^A^N)+R[12]+3873151461&4294967295,O=v+(D<<11&4294967295|D>>>21),D=N+(O^v^A)+R[15]+530742520&4294967295,N=O+(D<<16&4294967295|D>>>16),D=A+(N^O^v)+R[2]+3299628645&4294967295,A=N+(D<<23&4294967295|D>>>9),D=v+(N^(A|~O))+R[0]+4096336452&4294967295,v=A+(D<<6&4294967295|D>>>26),D=O+(A^(v|~N))+R[7]+1126891415&4294967295,O=v+(D<<10&4294967295|D>>>22),D=N+(v^(O|~A))+R[14]+2878612391&4294967295,N=O+(D<<15&4294967295|D>>>17),D=A+(O^(N|~v))+R[5]+4237533241&4294967295,A=N+(D<<21&4294967295|D>>>11),D=v+(N^(A|~O))+R[12]+1700485571&4294967295,v=A+(D<<6&4294967295|D>>>26),D=O+(A^(v|~N))+R[3]+2399980690&4294967295,O=v+(D<<10&4294967295|D>>>22),D=N+(v^(O|~A))+R[10]+4293915773&4294967295,N=O+(D<<15&4294967295|D>>>17),D=A+(O^(N|~v))+R[1]+2240044497&4294967295,A=N+(D<<21&4294967295|D>>>11),D=v+(N^(A|~O))+R[8]+1873313359&4294967295,v=A+(D<<6&4294967295|D>>>26),D=O+(A^(v|~N))+R[15]+4264355552&4294967295,O=v+(D<<10&4294967295|D>>>22),D=N+(v^(O|~A))+R[6]+2734768916&4294967295,N=O+(D<<15&4294967295|D>>>17),D=A+(O^(N|~v))+R[13]+1309151649&4294967295,A=N+(D<<21&4294967295|D>>>11),D=v+(N^(A|~O))+R[4]+4149444226&4294967295,v=A+(D<<6&4294967295|D>>>26),D=O+(A^(v|~N))+R[11]+3174756917&4294967295,O=v+(D<<10&4294967295|D>>>22),D=N+(v^(O|~A))+R[2]+718787259&4294967295,N=O+(D<<15&4294967295|D>>>17),D=A+(O^(N|~v))+R[9]+3951481745&4294967295,C.g[0]=C.g[0]+v&4294967295,C.g[1]=C.g[1]+(N+(D<<21&4294967295|D>>>11))&4294967295,C.g[2]=C.g[2]+N&4294967295,C.g[3]=C.g[3]+O&4294967295}r.prototype.u=function(C,v){v===void 0&&(v=C.length);for(var A=v-this.blockSize,R=this.B,N=this.h,O=0;O<v;){if(N==0)for(;O<=A;)i(this,C,O),O+=this.blockSize;if(typeof C=="string"){for(;O<v;)if(R[N++]=C.charCodeAt(O++),N==this.blockSize){i(this,R),N=0;break}}else for(;O<v;)if(R[N++]=C[O++],N==this.blockSize){i(this,R),N=0;break}}this.h=N,this.o+=v},r.prototype.v=function(){var C=Array((56>this.h?this.blockSize:2*this.blockSize)-this.h);C[0]=128;for(var v=1;v<C.length-8;++v)C[v]=0;var A=8*this.o;for(v=C.length-8;v<C.length;++v)C[v]=A&255,A/=256;for(this.u(C),C=Array(16),v=A=0;4>v;++v)for(var R=0;32>R;R+=8)C[A++]=this.g[v]>>>R&255;return C};function o(C,v){var A=a;return Object.prototype.hasOwnProperty.call(A,C)?A[C]:A[C]=v(C)}function s(C,v){this.h=v;for(var A=[],R=!0,N=C.length-1;0<=N;N--){var O=C[N]|0;R&&O==v||(A[N]=O,R=!1)}this.g=A}var a={};function c(C){return-128<=C&&128>C?o(C,function(v){return new s([v|0],0>v?-1:0)}):new s([C|0],0>C?-1:0)}function l(C){if(isNaN(C)||!isFinite(C))return h;if(0>C)return S(l(-C));for(var v=[],A=1,R=0;C>=A;R++)v[R]=C/A|0,A*=4294967296;return new s(v,0)}function d(C,v){if(C.length==0)throw Error("number format error: empty string");if(v=v||10,2>v||36<v)throw Error("radix out of range: "+v);if(C.charAt(0)=="-")return S(d(C.substring(1),v));if(0<=C.indexOf("-"))throw Error('number format error: interior "-" character');for(var A=l(Math.pow(v,8)),R=h,N=0;N<C.length;N+=8){var O=Math.min(8,C.length-N),D=parseInt(C.substring(N,N+O),v);8>O?(O=l(Math.pow(v,O)),R=R.j(O).add(l(D))):(R=R.j(A),R=R.add(l(D)))}return R}var h=c(0),f=c(1),g=c(16777216);t=s.prototype,t.m=function(){if(I(this))return-S(this).m();for(var C=0,v=1,A=0;A<this.g.length;A++){var R=this.i(A);C+=(0<=R?R:4294967296+R)*v,v*=4294967296}return C},t.toString=function(C){if(C=C||10,2>C||36<C)throw Error("radix out of range: "+C);if(E(this))return"0";if(I(this))return"-"+S(this).toString(C);for(var v=l(Math.pow(C,6)),A=this,R="";;){var N=oe(A,v).g;A=L(A,N.j(v));var O=((0<A.g.length?A.g[0]:A.h)>>>0).toString(C);if(A=N,E(A))return O+R;for(;6>O.length;)O="0"+O;R=O+R}},t.i=function(C){return 0>C?0:C<this.g.length?this.g[C]:this.h};function E(C){if(C.h!=0)return!1;for(var v=0;v<C.g.length;v++)if(C.g[v]!=0)return!1;return!0}function I(C){return C.h==-1}t.l=function(C){return C=L(this,C),I(C)?-1:E(C)?0:1};function S(C){for(var v=C.g.length,A=[],R=0;R<v;R++)A[R]=~C.g[R];return new s(A,~C.h).add(f)}t.abs=function(){return I(this)?S(this):this},t.add=function(C){for(var v=Math.max(this.g.length,C.g.length),A=[],R=0,N=0;N<=v;N++){var O=R+(this.i(N)&65535)+(C.i(N)&65535),D=(O>>>16)+(this.i(N)>>>16)+(C.i(N)>>>16);R=D>>>16,O&=65535,D&=65535,A[N]=D<<16|O}return new s(A,A[A.length-1]&-2147483648?-1:0)};function L(C,v){return C.add(S(v))}t.j=function(C){if(E(this)||E(C))return h;if(I(this))return I(C)?S(this).j(S(C)):S(S(this).j(C));if(I(C))return S(this.j(S(C)));if(0>this.l(g)&&0>C.l(g))return l(this.m()*C.m());for(var v=this.g.length+C.g.length,A=[],R=0;R<2*v;R++)A[R]=0;for(R=0;R<this.g.length;R++)for(var N=0;N<C.g.length;N++){var O=this.i(R)>>>16,D=this.i(R)&65535,Vn=C.i(N)>>>16,es=C.i(N)&65535;A[2*R+2*N]+=D*es,V(A,2*R+2*N),A[2*R+2*N+1]+=O*es,V(A,2*R+2*N+1),A[2*R+2*N+1]+=D*Vn,V(A,2*R+2*N+1),A[2*R+2*N+2]+=O*Vn,V(A,2*R+2*N+2)}for(R=0;R<v;R++)A[R]=A[2*R+1]<<16|A[2*R];for(R=v;R<2*v;R++)A[R]=0;return new s(A,0)};function V(C,v){for(;(C[v]&65535)!=C[v];)C[v+1]+=C[v]>>>16,C[v]&=65535,v++}function K(C,v){this.g=C,this.h=v}function oe(C,v){if(E(v))throw Error("division by zero");if(E(C))return new K(h,h);if(I(C))return v=oe(S(C),v),new K(S(v.g),S(v.h));if(I(v))return v=oe(C,S(v)),new K(S(v.g),v.h);if(30<C.g.length){if(I(C)||I(v))throw Error("slowDivide_ only works with positive integers.");for(var A=f,R=v;0>=R.l(C);)A=ge(A),R=ge(R);var N=te(A,1),O=te(R,1);for(R=te(R,2),A=te(A,2);!E(R);){var D=O.add(R);0>=D.l(C)&&(N=N.add(A),O=D),R=te(R,1),A=te(A,1)}return v=L(C,N.j(v)),new K(N,v)}for(N=h;0<=C.l(v);){for(A=Math.max(1,Math.floor(C.m()/v.m())),R=Math.ceil(Math.log(A)/Math.LN2),R=48>=R?1:Math.pow(2,R-48),O=l(A),D=O.j(v);I(D)||0<D.l(C);)A-=R,O=l(A),D=O.j(v);E(O)&&(O=f),N=N.add(O),C=L(C,D)}return new K(N,C)}t.A=function(C){return oe(this,C).h},t.and=function(C){for(var v=Math.max(this.g.length,C.g.length),A=[],R=0;R<v;R++)A[R]=this.i(R)&C.i(R);return new s(A,this.h&C.h)},t.or=function(C){for(var v=Math.max(this.g.length,C.g.length),A=[],R=0;R<v;R++)A[R]=this.i(R)|C.i(R);return new s(A,this.h|C.h)},t.xor=function(C){for(var v=Math.max(this.g.length,C.g.length),A=[],R=0;R<v;R++)A[R]=this.i(R)^C.i(R);return new s(A,this.h^C.h)};function ge(C){for(var v=C.g.length+1,A=[],R=0;R<v;R++)A[R]=C.i(R)<<1|C.i(R-1)>>>31;return new s(A,C.h)}function te(C,v){var A=v>>5;v%=32;for(var R=C.g.length-A,N=[],O=0;O<R;O++)N[O]=0<v?C.i(O+A)>>>v|C.i(O+A+1)<<32-v:C.i(O+A);return new s(N,C.h)}r.prototype.digest=r.prototype.v,r.prototype.reset=r.prototype.s,r.prototype.update=r.prototype.u,Sb=zH.Md5=r,s.prototype.add=s.prototype.add,s.prototype.multiply=s.prototype.j,s.prototype.modulo=s.prototype.A,s.prototype.compare=s.prototype.l,s.prototype.toNumber=s.prototype.m,s.prototype.toString=s.prototype.toString,s.prototype.getBits=s.prototype.i,s.fromNumber=l,s.fromString=d,zo=zH.Integer=s}).apply(typeof WH<"u"?WH:typeof self<"u"?self:typeof window<"u"?window:{});var aI=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},qo={};var Ab,Woe,kd,Cb,fg,cI,Db,Rb,Nb;(function(){var t,e=typeof Object.defineProperties=="function"?Object.defineProperty:function(u,p,m){return u==Array.prototype||u==Object.prototype||(u[p]=m.value),u};function n(u){u=[typeof globalThis=="object"&&globalThis,u,typeof window=="object"&&window,typeof self=="object"&&self,typeof aI=="object"&&aI];for(var p=0;p<u.length;++p){var m=u[p];if(m&&m.Math==Math)return m}throw Error("Cannot find global object")}var r=n(this);function i(u,p){if(p)e:{var m=r;u=u.split(".");for(var _=0;_<u.length-1;_++){var b=u[_];if(!(b in m))break e;m=m[b]}u=u[u.length-1],_=m[u],p=p(_),p!=_&&p!=null&&e(m,u,{configurable:!0,writable:!0,value:p})}}function o(u,p){u instanceof String&&(u+="");var m=0,_=!1,b={next:function(){if(!_&&m<u.length){var k=m++;return{value:p(k,u[k]),done:!1}}return _=!0,{done:!0,value:void 0}}};return b[Symbol.iterator]=function(){return b},b}i("Array.prototype.values",function(u){return u||function(){return o(this,function(p,m){return m})}});var s=s||{},a=this||self;function c(u){var p=typeof u;return p=p!="object"?p:u?Array.isArray(u)?"array":p:"null",p=="array"||p=="object"&&typeof u.length=="number"}function l(u){var p=typeof u;return p=="object"&&u!=null||p=="function"}function d(u,p,m){return u.call.apply(u.bind,arguments)}function h(u,p,m){if(!u)throw Error();if(2<arguments.length){var _=Array.prototype.slice.call(arguments,2);return function(){var b=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(b,_),u.apply(p,b)}}return function(){return u.apply(p,arguments)}}function f(u,p,m){return f=Function.prototype.bind&&Function.prototype.bind.toString().indexOf("native code")!=-1?d:h,f.apply(null,arguments)}function g(u,p){var m=Array.prototype.slice.call(arguments,1);return function(){var _=m.slice();return _.push.apply(_,arguments),u.apply(this,_)}}function E(u,p){function m(){}m.prototype=p.prototype,u.aa=p.prototype,u.prototype=new m,u.prototype.constructor=u,u.Qb=function(_,b,k){for(var X=Array(arguments.length-2),it=2;it<arguments.length;it++)X[it-2]=arguments[it];return p.prototype[b].apply(_,X)}}function I(u){let p=u.length;if(0<p){let m=Array(p);for(let _=0;_<p;_++)m[_]=u[_];return m}return[]}function S(u,p){for(let m=1;m<arguments.length;m++){let _=arguments[m];if(c(_)){let b=u.length||0,k=_.length||0;u.length=b+k;for(let X=0;X<k;X++)u[b+X]=_[X]}else u.push(_)}}class L{constructor(p,m){this.i=p,this.j=m,this.h=0,this.g=null}get(){let p;return 0<this.h?(this.h--,p=this.g,this.g=p.next,p.next=null):p=this.i(),p}}function V(u){return/^[\s\xa0]*$/.test(u)}function K(){var u=a.navigator;return u&&(u=u.userAgent)?u:""}function oe(u){return oe[" "](u),u}oe[" "]=function(){};var ge=K().indexOf("Gecko")!=-1&&!(K().toLowerCase().indexOf("webkit")!=-1&&K().indexOf("Edge")==-1)&&!(K().indexOf("Trident")!=-1||K().indexOf("MSIE")!=-1)&&K().indexOf("Edge")==-1;function te(u,p,m){for(let _ in u)p.call(m,u[_],_,u)}function C(u,p){for(let m in u)p.call(void 0,u[m],m,u)}function v(u){let p={};for(let m in u)p[m]=u[m];return p}let A="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function R(u,p){let m,_;for(let b=1;b<arguments.length;b++){_=arguments[b];for(m in _)u[m]=_[m];for(let k=0;k<A.length;k++)m=A[k],Object.prototype.hasOwnProperty.call(_,m)&&(u[m]=_[m])}}function N(u){var p=1;u=u.split(":");let m=[];for(;0<p&&u.length;)m.push(u.shift()),p--;return u.length&&m.push(u.join(":")),m}function O(u){a.setTimeout(()=>{throw u},0)}function D(){var u=ns;let p=null;return u.g&&(p=u.g,u.g=u.g.next,u.g||(u.h=null),p.next=null),p}class Vn{constructor(){this.h=this.g=null}add(p,m){let _=es.get();_.set(p,m),this.h?this.h.next=_:this.g=_,this.h=_}}var es=new L(()=>new ts,u=>u.reset());class ts{constructor(){this.next=this.g=this.h=null}set(p,m){this.h=p,this.g=m,this.next=null}reset(){this.next=this.g=this.h=null}}let Da,Ra=!1,ns=new Vn,Fl=()=>{let u=a.Promise.resolve(void 0);Da=()=>{u.then(hm)}};var hm=()=>{for(var u;u=D();){try{u.h.call(u.g)}catch(m){O(m)}var p=es;p.j(u),100>p.h&&(p.h++,u.next=p.g,p.g=u)}Ra=!1};function _i(){this.s=this.s,this.C=this.C}_i.prototype.s=!1,_i.prototype.ma=function(){this.s||(this.s=!0,this.N())},_i.prototype.N=function(){if(this.C)for(;this.C.length;)this.C.shift()()};function nn(u,p){this.type=u,this.g=this.target=p,this.defaultPrevented=!1}nn.prototype.h=function(){this.defaultPrevented=!0};var kv=(function(){if(!a.addEventListener||!Object.defineProperty)return!1;var u=!1,p=Object.defineProperty({},"passive",{get:function(){u=!0}});try{let m=()=>{};a.addEventListener("test",m,p),a.removeEventListener("test",m,p)}catch{}return u})();function He(u,p){if(nn.call(this,u?u.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,u){var m=this.type=u.type,_=u.changedTouches&&u.changedTouches.length?u.changedTouches[0]:null;if(this.target=u.target||u.srcElement,this.g=p,p=u.relatedTarget){if(ge){e:{try{oe(p.nodeName);var b=!0;break e}catch{}b=!1}b||(p=null)}}else m=="mouseover"?p=u.fromElement:m=="mouseout"&&(p=u.toElement);this.relatedTarget=p,_?(this.clientX=_.clientX!==void 0?_.clientX:_.pageX,this.clientY=_.clientY!==void 0?_.clientY:_.pageY,this.screenX=_.screenX||0,this.screenY=_.screenY||0):(this.clientX=u.clientX!==void 0?u.clientX:u.pageX,this.clientY=u.clientY!==void 0?u.clientY:u.pageY,this.screenX=u.screenX||0,this.screenY=u.screenY||0),this.button=u.button,this.key=u.key||"",this.ctrlKey=u.ctrlKey,this.altKey=u.altKey,this.shiftKey=u.shiftKey,this.metaKey=u.metaKey,this.pointerId=u.pointerId||0,this.pointerType=typeof u.pointerType=="string"?u.pointerType:Fv[u.pointerType]||"",this.state=u.state,this.i=u,u.defaultPrevented&&He.aa.h.call(this)}}E(He,nn);var Fv={2:"touch",3:"pen",4:"mouse"};He.prototype.h=function(){He.aa.h.call(this);var u=this.i;u.preventDefault?u.preventDefault():u.returnValue=!1};var Na="closure_listenable_"+(1e6*Math.random()|0),Uv=0;function Vv(u,p,m,_,b){this.listener=u,this.proxy=null,this.src=p,this.type=m,this.capture=!!_,this.ha=b,this.key=++Uv,this.da=this.fa=!1}function Ul(u){u.da=!0,u.listener=null,u.proxy=null,u.src=null,u.ha=null}function Vl(u){this.src=u,this.g={},this.h=0}Vl.prototype.add=function(u,p,m,_,b){var k=u.toString();u=this.g[k],u||(u=this.g[k]=[],this.h++);var X=wh(u,p,_,b);return-1<X?(p=u[X],m||(p.fa=!1)):(p=new Vv(p,this.src,k,!!_,b),p.fa=m,u.push(p)),p};function Bl(u,p){var m=p.type;if(m in u.g){var _=u.g[m],b=Array.prototype.indexOf.call(_,p,void 0),k;(k=0<=b)&&Array.prototype.splice.call(_,b,1),k&&(Ul(p),u.g[m].length==0&&(delete u.g[m],u.h--))}}function wh(u,p,m,_){for(var b=0;b<u.length;++b){var k=u[b];if(!k.da&&k.listener==p&&k.capture==!!m&&k.ha==_)return b}return-1}var Gl="closure_lm_"+(1e6*Math.random()|0),Je={};function jl(u,p,m,_,b){if(_&&_.once)return sr(u,p,m,_,b);if(Array.isArray(p)){for(var k=0;k<p.length;k++)jl(u,p[k],m,_,b);return null}return m=Wl(m),u&&u[Na]?u.K(p,m,l(_)?!!_.capture:!!_,b):rt(u,p,m,!1,_,b)}function rt(u,p,m,_,b,k){if(!p)throw Error("Invalid event type");var X=l(b)?!!b.capture:!!b,it=wa(u);if(it||(u[Gl]=it=new Vl(u)),m=it.add(p,m,_,X,k),m.proxy)return m;if(_=bh(),m.proxy=_,_.src=u,_.listener=m,u.addEventListener)kv||(b=X),b===void 0&&(b=!1),u.addEventListener(p.toString(),_,b);else if(u.attachEvent)u.attachEvent(Wr(p.toString()),_);else if(u.addListener&&u.removeListener)u.addListener(_);else throw Error("addEventListener and attachEvent are unavailable.");return m}function bh(){function u(m){return p.call(u.src,u.listener,m)}let p=fm;return u}function sr(u,p,m,_,b){if(Array.isArray(p)){for(var k=0;k<p.length;k++)sr(u,p[k],m,_,b);return null}return m=Wl(m),u&&u[Na]?u.L(p,m,l(_)?!!_.capture:!!_,b):rt(u,p,m,!0,_,b)}function rs(u,p,m,_,b){if(Array.isArray(p))for(var k=0;k<p.length;k++)rs(u,p[k],m,_,b);else _=l(_)?!!_.capture:!!_,m=Wl(m),u&&u[Na]?(u=u.i,p=String(p).toString(),p in u.g&&(k=u.g[p],m=wh(k,m,_,b),-1<m&&(Ul(k[m]),Array.prototype.splice.call(k,m,1),k.length==0&&(delete u.g[p],u.h--)))):u&&(u=wa(u))&&(p=u.g[p.toString()],u=-1,p&&(u=wh(p,m,_,b)),(m=-1<u?p[u]:null)&&Hl(m))}function Hl(u){if(typeof u!="number"&&u&&!u.da){var p=u.src;if(p&&p[Na])Bl(p.i,u);else{var m=u.type,_=u.proxy;p.removeEventListener?p.removeEventListener(m,_,u.capture):p.detachEvent?p.detachEvent(Wr(m),_):p.addListener&&p.removeListener&&p.removeListener(_),(m=wa(p))?(Bl(m,u),m.h==0&&(m.src=null,p[Gl]=null)):Ul(u)}}}function Wr(u){return u in Je?Je[u]:Je[u]="on"+u}function fm(u,p){if(u.da)u=!0;else{p=new He(p,this);var m=u.listener,_=u.ha||u.src;u.fa&&Hl(u),u=m.call(_,p)}return u}function wa(u){return u=u[Gl],u instanceof Vl?u:null}var $l="__closure_events_fn_"+(1e9*Math.random()>>>0);function Wl(u){return typeof u=="function"?u:(u[$l]||(u[$l]=function(p){return u.handleEvent(p)}),u[$l])}function dt(){_i.call(this),this.i=new Vl(this),this.M=this,this.F=null}E(dt,_i),dt.prototype[Na]=!0,dt.prototype.removeEventListener=function(u,p,m,_){rs(this,u,p,m,_)};function yt(u,p){var m,_=u.F;if(_)for(m=[];_;_=_.F)m.push(_);if(u=u.M,_=p.type||p,typeof p=="string")p=new nn(p,u);else if(p instanceof nn)p.target=p.target||u;else{var b=p;p=new nn(_,u),R(p,b)}if(b=!0,m)for(var k=m.length-1;0<=k;k--){var X=p.g=m[k];b=wr(X,_,!0,p)&&b}if(X=p.g=u,b=wr(X,_,!0,p)&&b,b=wr(X,_,!1,p)&&b,m)for(k=0;k<m.length;k++)X=p.g=m[k],b=wr(X,_,!1,p)&&b}dt.prototype.N=function(){if(dt.aa.N.call(this),this.i){var u=this.i,p;for(p in u.g){for(var m=u.g[p],_=0;_<m.length;_++)Ul(m[_]);delete u.g[p],u.h--}}this.F=null},dt.prototype.K=function(u,p,m,_){return this.i.add(String(u),p,!1,m,_)},dt.prototype.L=function(u,p,m,_){return this.i.add(String(u),p,!0,m,_)};function wr(u,p,m,_){if(p=u.i.g[String(p)],!p)return!0;p=p.concat();for(var b=!0,k=0;k<p.length;++k){var X=p[k];if(X&&!X.da&&X.capture==m){var it=X.listener,gn=X.ha||X.src;X.fa&&Bl(u.i,X),b=it.call(gn,_)!==!1&&b}}return b&&!_.defaultPrevented}function zl(u,p,m){if(typeof u=="function")m&&(u=f(u,m));else if(u&&typeof u.handleEvent=="function")u=f(u.handleEvent,u);else throw Error("Invalid listener argument");return 2147483647<Number(p)?-1:a.setTimeout(u,p||0)}function ba(u){u.g=zl(()=>{u.g=null,u.i&&(u.i=!1,ba(u))},u.l);let p=u.h;u.h=null,u.m.apply(null,p)}class ql extends _i{constructor(p,m){super(),this.m=p,this.l=m,this.h=null,this.i=!1,this.g=null}j(p){this.h=arguments,this.g?this.i=!0:ba(this)}N(){super.N(),this.g&&(a.clearTimeout(this.g),this.g=null,this.i=!1,this.h=null)}}function co(u){_i.call(this),this.h=u,this.g={}}E(co,_i);var lo=[];function Oa(u){te(u.g,function(p,m){this.g.hasOwnProperty(m)&&Hl(p)},u),u.g={}}co.prototype.N=function(){co.aa.N.call(this),Oa(this)},co.prototype.handleEvent=function(){throw Error("EventHandler.handleEvent not implemented")};var is=a.JSON.stringify,pm=a.JSON.parse,gm=class{stringify(u){return a.JSON.stringify(u,void 0)}parse(u){return a.JSON.parse(u,void 0)}};function Kl(){}Kl.prototype.h=null;function Yl(u){return u.h||(u.h=u.i())}function Xl(){}var br={OPEN:"a",kb:"b",Ja:"c",wb:"d"};function Ti(){nn.call(this,"d")}E(Ti,nn);function Ql(){nn.call(this,"c")}E(Ql,nn);var yi={},Oh=null;function Ma(){return Oh=Oh||new dt}yi.La="serverreachability";function Mh(u){nn.call(this,yi.La,u)}E(Mh,nn);function Ii(u){let p=Ma();yt(p,new Mh(p))}yi.STAT_EVENT="statevent";function La(u,p){nn.call(this,yi.STAT_EVENT,u),this.stat=p}E(La,nn);function ct(u){let p=Ma();yt(p,new La(p,u))}yi.Ma="timingevent";function uo(u,p){nn.call(this,yi.Ma,u),this.size=p}E(uo,nn);function ho(u,p){if(typeof u!="function")throw Error("Fn must not be null and must be a function");return a.setTimeout(function(){u()},p)}function fo(){this.g=!0}fo.prototype.xa=function(){this.g=!1};function Bv(u,p,m,_,b,k){u.info(function(){if(u.g)if(k)for(var X="",it=k.split("&"),gn=0;gn<it.length;gn++){var Fe=it[gn].split("=");if(1<Fe.length){var vn=Fe[0];Fe=Fe[1];var Sn=vn.split("_");X=2<=Sn.length&&Sn[1]=="type"?X+(vn+"="+Fe+"&"):X+(vn+"=redacted&")}}else X=null;else X=k;return"XMLHTTP REQ ("+_+") [attempt "+b+"]: "+p+`
153
+ FIREBASE: `))}restoreState_(){this.tryAuth(),this.tryAppCheck();for(let n of this.listens.values())for(let r of n.values())this.sendListen_(r);for(let n=0;n<this.outstandingPuts_.length;n++)this.outstandingPuts_[n]&&this.sendPut_(n);for(;this.onDisconnectRequestQueue_.length;){let n=this.onDisconnectRequestQueue_.shift();this.sendOnDisconnect_(n.action,n.pathString,n.data,n.onComplete)}for(let n=0;n<this.outstandingGets_.length;n++)this.outstandingGets_[n]&&this.sendGet_(n)}sendConnectStats_(){let n={},r="js";Ki()&&(this.repoInfo_.nodeAdmin?r="admin_node":r="node"),n["sdk."+r+"."+Ww.replace(/\./g,"-")]=1,hp()?n["framework.cordova"]=1:UT()&&(n["framework.reactnative"]=1),this.reportStats(n)}shouldReconnect_(){let n=Iy.getInstance().currentlyOnline();return fp(this.interruptReasons_)&&n}}t.nextPersistentConnectionId_=0,t.nextConnectionId_=0;return t})(),Oe=class t{constructor(e,n){this.name=e,this.node=n}static Wrap(e,n){return new t(e,n)}};var vd=class{getCompare(){return this.compare.bind(this)}indexedValueChanged(e,n){let r=new Oe(tl,e),i=new Oe(tl,n);return this.compare(r,i)!==0}minPost(){return Oe.MIN}};var py,vy=class extends vd{static get __EMPTY_NODE(){return py}static set __EMPTY_NODE(e){py=e}compare(e,n){return al(e.name,n.name)}isDefinedOn(e){throw kc("KeyIndex.isDefinedOn not expected to be called.")}indexedValueChanged(e,n){return!1}minPost(){return Oe.MIN}maxPost(){return new Oe(Zs,py)}makePost(e,n){return q(typeof e=="string","KeyIndex indexValue must always be a string."),new Oe(e,py)}toString(){return".key"}},el=new vy;var yd=class{constructor(e,n,r,i,o=null){this.isReverse_=i,this.resultGenerator_=o,this.nodeStack_=[];let s=1;for(;!e.isEmpty();)if(e=e,s=n?r(e.key,n):1,i&&(s*=-1),s<0)this.isReverse_?e=e.left:e=e.right;else if(s===0){this.nodeStack_.push(e);break}else this.nodeStack_.push(e),this.isReverse_?e=e.right:e=e.left}getNext(){if(this.nodeStack_.length===0)return null;let e=this.nodeStack_.pop(),n;if(this.resultGenerator_?n=this.resultGenerator_(e.key,e.value):n={key:e.key,value:e.value},this.isReverse_)for(e=e.left;!e.isEmpty();)this.nodeStack_.push(e),e=e.right;else for(e=e.right;!e.isEmpty();)this.nodeStack_.push(e),e=e.left;return n}hasNext(){return this.nodeStack_.length>0}peek(){if(this.nodeStack_.length===0)return null;let e=this.nodeStack_[this.nodeStack_.length-1];return this.resultGenerator_?this.resultGenerator_(e.key,e.value):{key:e.key,value:e.value}}},ui=(()=>{class t{constructor(n,r,i,o,s){this.key=n,this.value=r,this.color=i??t.RED,this.left=o??Hr.EMPTY_NODE,this.right=s??Hr.EMPTY_NODE}copy(n,r,i,o,s){return new t(n??this.key,r??this.value,i??this.color,o??this.left,s??this.right)}count(){return this.left.count()+1+this.right.count()}isEmpty(){return!1}inorderTraversal(n){return this.left.inorderTraversal(n)||!!n(this.key,this.value)||this.right.inorderTraversal(n)}reverseTraversal(n){return this.right.reverseTraversal(n)||n(this.key,this.value)||this.left.reverseTraversal(n)}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(n,r,i){let o=this,s=i(n,o.key);return s<0?o=o.copy(null,null,null,o.left.insert(n,r,i),null):s===0?o=o.copy(null,r,null,null,null):o=o.copy(null,null,null,null,o.right.insert(n,r,i)),o.fixUp_()}removeMin_(){if(this.left.isEmpty())return Hr.EMPTY_NODE;let n=this;return!n.left.isRed_()&&!n.left.left.isRed_()&&(n=n.moveRedLeft_()),n=n.copy(null,null,null,n.left.removeMin_(),null),n.fixUp_()}remove(n,r){let i,o;if(i=this,r(n,i.key)<0)!i.left.isEmpty()&&!i.left.isRed_()&&!i.left.left.isRed_()&&(i=i.moveRedLeft_()),i=i.copy(null,null,null,i.left.remove(n,r),null);else{if(i.left.isRed_()&&(i=i.rotateRight_()),!i.right.isEmpty()&&!i.right.isRed_()&&!i.right.left.isRed_()&&(i=i.moveRedRight_()),r(n,i.key)===0){if(i.right.isEmpty())return Hr.EMPTY_NODE;o=i.right.min_(),i=i.copy(o.key,o.value,null,null,i.right.removeMin_())}i=i.copy(null,null,null,null,i.right.remove(n,r))}return i.fixUp_()}isRed_(){return this.color}fixUp_(){let n=this;return n.right.isRed_()&&!n.left.isRed_()&&(n=n.rotateLeft_()),n.left.isRed_()&&n.left.left.isRed_()&&(n=n.rotateRight_()),n.left.isRed_()&&n.right.isRed_()&&(n=n.colorFlip_()),n}moveRedLeft_(){let n=this.colorFlip_();return n.right.left.isRed_()&&(n=n.copy(null,null,null,null,n.right.rotateRight_()),n=n.rotateLeft_(),n=n.colorFlip_()),n}moveRedRight_(){let n=this.colorFlip_();return n.left.left.isRed_()&&(n=n.rotateRight_(),n=n.colorFlip_()),n}rotateLeft_(){let n=this.copy(null,null,t.RED,null,this.right.left);return this.right.copy(null,null,this.color,n,null)}rotateRight_(){let n=this.copy(null,null,t.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,n)}colorFlip_(){let n=this.left.copy(null,null,!this.left.color,null,null),r=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,n,r)}checkMaxDepth_(){let n=this.check_();return Math.pow(2,n)<=this.count()+1}check_(){if(this.isRed_()&&this.left.isRed_())throw new Error("Red node has red child("+this.key+","+this.value+")");if(this.right.isRed_())throw new Error("Right child of ("+this.key+","+this.value+") is red");let n=this.left.check_();if(n!==this.right.check_())throw new Error("Black depths differ");return n+(this.isRed_()?0:1)}}return t.RED=!0,t.BLACK=!1,t})(),sw=class{copy(e,n,r,i,o){return this}insert(e,n,r){return new ui(e,n,null)}remove(e,n){return this}count(){return 0}isEmpty(){return!0}inorderTraversal(e){return!1}reverseTraversal(e){return!1}minKey(){return null}maxKey(){return null}check_(){return 0}isRed_(){return!1}},Hr=class t{constructor(e,n=t.EMPTY_NODE){this.comparator_=e,this.root_=n}insert(e,n){return new t(this.comparator_,this.root_.insert(e,n,this.comparator_).copy(null,null,ui.BLACK,null,null))}remove(e){return new t(this.comparator_,this.root_.remove(e,this.comparator_).copy(null,null,ui.BLACK,null,null))}get(e){let n,r=this.root_;for(;!r.isEmpty();){if(n=this.comparator_(e,r.key),n===0)return r.value;n<0?r=r.left:n>0&&(r=r.right)}return null}getPredecessorKey(e){let n,r=this.root_,i=null;for(;!r.isEmpty();)if(n=this.comparator_(e,r.key),n===0){if(r.left.isEmpty())return i?i.key:null;for(r=r.left;!r.right.isEmpty();)r=r.right;return r.key}else n<0?r=r.left:n>0&&(i=r,r=r.right);throw new Error("Attempted to find predecessor key for a nonexistent key. What gives?")}isEmpty(){return this.root_.isEmpty()}count(){return this.root_.count()}minKey(){return this.root_.minKey()}maxKey(){return this.root_.maxKey()}inorderTraversal(e){return this.root_.inorderTraversal(e)}reverseTraversal(e){return this.root_.reverseTraversal(e)}getIterator(e){return new yd(this.root_,null,this.comparator_,!1,e)}getIteratorFrom(e,n){return new yd(this.root_,e,this.comparator_,!1,n)}getReverseIteratorFrom(e,n){return new yd(this.root_,e,this.comparator_,!0,n)}getReverseIterator(e){return new yd(this.root_,null,this.comparator_,!0,e)}};Hr.EMPTY_NODE=new sw;function Ure(t,e){return al(t.name,e.name)}function Qw(t,e){return al(t,e)}var aw;function Vre(t){aw=t}var bj=function(t){return typeof t=="number"?"number:"+dj(t):"string:"+t},Oj=function(t){if(t.isLeafNode()){let e=t.val();q(typeof e=="string"||typeof e=="number"||typeof e=="object"&&Vr(e,".sv"),"Priority must be a string or number.")}else q(t===aw||t.isEmpty(),"priority of unexpected type.");q(t===aw||t.getPriority().isEmpty(),"Priority nodes can't have a priority of their own.")};var H2,Sd=(()=>{class t{static set __childrenNodeConstructor(n){H2=n}static get __childrenNodeConstructor(){return H2}constructor(n,r=t.__childrenNodeConstructor.EMPTY_NODE){this.value_=n,this.priorityNode_=r,this.lazyHash_=null,q(this.value_!==void 0&&this.value_!==null,"LeafNode shouldn't be created with null/undefined value."),Oj(this.priorityNode_)}isLeafNode(){return!0}getPriority(){return this.priorityNode_}updatePriority(n){return new t(this.value_,n)}getImmediateChild(n){return n===".priority"?this.priorityNode_:t.__childrenNodeConstructor.EMPTY_NODE}getChild(n){return we(n)?this:Ne(n)===".priority"?this.priorityNode_:t.__childrenNodeConstructor.EMPTY_NODE}hasChild(){return!1}getPredecessorChildName(n,r){return null}updateImmediateChild(n,r){return n===".priority"?this.updatePriority(r):r.isEmpty()&&n!==".priority"?this:t.__childrenNodeConstructor.EMPTY_NODE.updateImmediateChild(n,r).updatePriority(this.priorityNode_)}updateChild(n,r){let i=Ne(n);return i===null?r:r.isEmpty()&&i!==".priority"?this:(q(i!==".priority"||ea(n)===1,".priority must be the last token in a path"),this.updateImmediateChild(i,t.__childrenNodeConstructor.EMPTY_NODE.updateChild(at(n),r)))}isEmpty(){return!1}numChildren(){return 0}forEachChild(n,r){return!1}val(n){return n&&!this.getPriority().isEmpty()?{".value":this.getValue(),".priority":this.getPriority().val()}:this.getValue()}hash(){if(this.lazyHash_===null){let n="";this.priorityNode_.isEmpty()||(n+="priority:"+bj(this.priorityNode_.val())+":");let r=typeof this.value_;n+=r+":",r==="number"?n+=dj(this.value_):n+=this.value_,this.lazyHash_=lj(n)}return this.lazyHash_}getValue(){return this.value_}compareTo(n){return n===t.__childrenNodeConstructor.EMPTY_NODE?1:n instanceof t.__childrenNodeConstructor?-1:(q(n.isLeafNode(),"Unknown node type"),this.compareToLeafNode_(n))}compareToLeafNode_(n){let r=typeof n.value_,i=typeof this.value_,o=t.VALUE_TYPE_ORDER.indexOf(r),s=t.VALUE_TYPE_ORDER.indexOf(i);return q(o>=0,"Unknown leaf type: "+r),q(s>=0,"Unknown leaf type: "+i),o===s?i==="object"?0:this.value_<n.value_?-1:this.value_===n.value_?0:1:s-o}withIndex(){return this}isIndexed(){return!0}equals(n){if(n===this)return!0;if(n.isLeafNode()){let r=n;return this.value_===r.value_&&this.priorityNode_.equals(r.priorityNode_)}else return!1}}t.VALUE_TYPE_ORDER=["object","boolean","number","string"];return t})(),Mj,Lj;function Bre(t){Mj=t}function Gre(t){Lj=t}var cw=class extends vd{compare(e,n){let r=e.node.getPriority(),i=n.node.getPriority(),o=r.compareTo(i);return o===0?al(e.name,n.name):o}isDefinedOn(e){return!e.getPriority().isEmpty()}indexedValueChanged(e,n){return!e.getPriority().equals(n.getPriority())}minPost(){return Oe.MIN}maxPost(){return new Oe(Zs,new Sd("[PRIORITY-POST]",Lj))}makePost(e,n){let r=Mj(e);return new Oe(n,new Sd("[PRIORITY-POST]",r))}toString(){return".priority"}},ft=new cw;var jre=Math.log(2),lw=class{constructor(e){let n=o=>parseInt(Math.log(o)/jre,10),r=o=>parseInt(Array(o+1).join("1"),2);this.count=n(e+1),this.current_=this.count-1;let i=r(this.count);this.bits_=e+1&i}nextBitIsOne(){let e=!(this.bits_&1<<this.current_);return this.current_--,e}},Sy=function(t,e,n,r){t.sort(e);let i=function(c,l){let d=l-c,h,f;if(d===0)return null;if(d===1)return h=t[c],f=n?n(h):h,new ui(f,h.node,ui.BLACK,null,null);{let g=parseInt(d/2,10)+c,E=i(c,g),I=i(g+1,l);return h=t[g],f=n?n(h):h,new ui(f,h.node,ui.BLACK,E,I)}},o=function(c){let l=null,d=null,h=t.length,f=function(E,I){let S=h-E,L=h;h-=E;let V=i(S+1,L),K=t[S],oe=n?n(K):K;g(new ui(oe,K.node,I,null,V))},g=function(E){l?(l.left=E,l=E):(d=E,l=E)};for(let E=0;E<c.count;++E){let I=c.nextBitIsOne(),S=Math.pow(2,c.count-(E+1));I?f(S,ui.BLACK):(f(S,ui.BLACK),f(S,ui.RED))}return d},s=new lw(t.length),a=o(s);return new Hr(r||e,a)};var HN,_d={},Ad=class t{static get Default(){return q(_d&&ft,"ChildrenNode.ts has not been loaded"),HN=HN||new t({".priority":_d},{".priority":ft}),HN}constructor(e,n){this.indexes_=e,this.indexSet_=n}get(e){let n=Fs(this.indexes_,e);if(!n)throw new Error("No index defined for "+e);return n instanceof Hr?n:null}hasIndex(e){return Vr(this.indexSet_,e.toString())}addIndex(e,n){q(e!==el,"KeyIndex always exists and isn't meant to be added to the IndexMap.");let r=[],i=!1,o=n.getIterator(Oe.Wrap),s=o.getNext();for(;s;)i=i||e.isDefinedOn(s.node),r.push(s),s=o.getNext();let a;i?a=Sy(r,e.getCompare()):a=_d;let c=e.toString(),l=Object.assign({},this.indexSet_);l[c]=e;let d=Object.assign({},this.indexes_);return d[c]=a,new t(d,l)}addToIndexes(e,n){let r=pp(this.indexes_,(i,o)=>{let s=Fs(this.indexSet_,o);if(q(s,"Missing index implementation for "+o),i===_d)if(s.isDefinedOn(e.node)){let a=[],c=n.getIterator(Oe.Wrap),l=c.getNext();for(;l;)l.name!==e.name&&a.push(l),l=c.getNext();return a.push(e),Sy(a,s.getCompare())}else return _d;else{let a=n.get(e.name),c=i;return a&&(c=c.remove(new Oe(e.name,a))),c.insert(e,e.node)}});return new t(r,this.indexSet_)}removeFromIndexes(e,n){let r=pp(this.indexes_,i=>{if(i===_d)return i;{let o=n.get(e.name);return o?i.remove(new Oe(e.name,o)):i}});return new t(r,this.indexSet_)}};var Fp,ve=(()=>{class t{static get EMPTY_NODE(){return Fp||(Fp=new t(new Hr(Qw),null,Ad.Default))}constructor(n,r,i){this.children_=n,this.priorityNode_=r,this.indexMap_=i,this.lazyHash_=null,this.priorityNode_&&Oj(this.priorityNode_),this.children_.isEmpty()&&q(!this.priorityNode_||this.priorityNode_.isEmpty(),"An empty node cannot have a priority")}isLeafNode(){return!1}getPriority(){return this.priorityNode_||Fp}updatePriority(n){return this.children_.isEmpty()?this:new t(this.children_,n,this.indexMap_)}getImmediateChild(n){if(n===".priority")return this.getPriority();{let r=this.children_.get(n);return r===null?Fp:r}}getChild(n){let r=Ne(n);return r===null?this:this.getImmediateChild(r).getChild(at(n))}hasChild(n){return this.children_.get(n)!==null}updateImmediateChild(n,r){if(q(r,"We should always be passing snapshot nodes"),n===".priority")return this.updatePriority(r);{let i=new Oe(n,r),o,s;r.isEmpty()?(o=this.children_.remove(n),s=this.indexMap_.removeFromIndexes(i,this.children_)):(o=this.children_.insert(n,r),s=this.indexMap_.addToIndexes(i,this.children_));let a=o.isEmpty()?Fp:this.priorityNode_;return new t(o,a,s)}}updateChild(n,r){let i=Ne(n);if(i===null)return r;{q(Ne(n)!==".priority"||ea(n)===1,".priority must be the last token in a path");let o=this.getImmediateChild(i).updateChild(at(n),r);return this.updateImmediateChild(i,o)}}isEmpty(){return this.children_.isEmpty()}numChildren(){return this.children_.count()}val(n){if(this.isEmpty())return null;let r={},i=0,o=0,s=!0;if(this.forEachChild(ft,(a,c)=>{r[a]=c.val(n),i++,s&&t.INTEGER_REGEXP_.test(a)?o=Math.max(o,Number(a)):s=!1}),!n&&s&&o<2*i){let a=[];for(let c in r)a[c]=r[c];return a}else return n&&!this.getPriority().isEmpty()&&(r[".priority"]=this.getPriority().val()),r}hash(){if(this.lazyHash_===null){let n="";this.getPriority().isEmpty()||(n+="priority:"+bj(this.getPriority().val())+":"),this.forEachChild(ft,(r,i)=>{let o=i.hash();o!==""&&(n+=":"+r+":"+o)}),this.lazyHash_=n===""?"":lj(n)}return this.lazyHash_}getPredecessorChildName(n,r,i){let o=this.resolveIndex_(i);if(o){let s=o.getPredecessorKey(new Oe(n,r));return s?s.name:null}else return this.children_.getPredecessorKey(n)}getFirstChildName(n){let r=this.resolveIndex_(n);if(r){let i=r.minKey();return i&&i.name}else return this.children_.minKey()}getFirstChild(n){let r=this.getFirstChildName(n);return r?new Oe(r,this.children_.get(r)):null}getLastChildName(n){let r=this.resolveIndex_(n);if(r){let i=r.maxKey();return i&&i.name}else return this.children_.maxKey()}getLastChild(n){let r=this.getLastChildName(n);return r?new Oe(r,this.children_.get(r)):null}forEachChild(n,r){let i=this.resolveIndex_(n);return i?i.inorderTraversal(o=>r(o.name,o.node)):this.children_.inorderTraversal(r)}getIterator(n){return this.getIteratorFrom(n.minPost(),n)}getIteratorFrom(n,r){let i=this.resolveIndex_(r);if(i)return i.getIteratorFrom(n,o=>o);{let o=this.children_.getIteratorFrom(n.name,Oe.Wrap),s=o.peek();for(;s!=null&&r.compare(s,n)<0;)o.getNext(),s=o.peek();return o}}getReverseIterator(n){return this.getReverseIteratorFrom(n.maxPost(),n)}getReverseIteratorFrom(n,r){let i=this.resolveIndex_(r);if(i)return i.getReverseIteratorFrom(n,o=>o);{let o=this.children_.getReverseIteratorFrom(n.name,Oe.Wrap),s=o.peek();for(;s!=null&&r.compare(s,n)>0;)o.getNext(),s=o.peek();return o}}compareTo(n){return this.isEmpty()?n.isEmpty()?0:-1:n.isLeafNode()||n.isEmpty()?1:n===ig?-1:0}withIndex(n){if(n===el||this.indexMap_.hasIndex(n))return this;{let r=this.indexMap_.addIndex(n,this.children_);return new t(this.children_,this.priorityNode_,r)}}isIndexed(n){return n===el||this.indexMap_.hasIndex(n)}equals(n){if(n===this)return!0;if(n.isLeafNode())return!1;{let r=n;if(this.getPriority().equals(r.getPriority()))if(this.children_.count()===r.children_.count()){let i=this.getIterator(ft),o=r.getIterator(ft),s=i.getNext(),a=o.getNext();for(;s&&a;){if(s.name!==a.name||!s.node.equals(a.node))return!1;s=i.getNext(),a=o.getNext()}return s===null&&a===null}else return!1;else return!1}}resolveIndex_(n){return n===el?null:this.indexMap_.get(n.toString())}}return t.INTEGER_REGEXP_=/^(0|[1-9]\d*)$/,t})(),uw=class extends ve{constructor(){super(new Hr(Qw),ve.EMPTY_NODE,Ad.Default)}compareTo(e){return e===this?0:1}equals(e){return e===this}getPriority(){return this}getImmediateChild(e){return ve.EMPTY_NODE}isEmpty(){return!1}},ig=new uw;Object.defineProperties(Oe,{MIN:{value:new Oe(tl,ve.EMPTY_NODE)},MAX:{value:new Oe(Zs,ig)}});vy.__EMPTY_NODE=ve.EMPTY_NODE;Sd.__childrenNodeConstructor=ve;Vre(ig);Gre(ig);var Hre=!0;function At(t,e=null){if(t===null)return ve.EMPTY_NODE;if(typeof t=="object"&&".priority"in t&&(e=t[".priority"]),q(e===null||typeof e=="string"||typeof e=="number"||typeof e=="object"&&".sv"in e,"Invalid priority type found: "+typeof e),typeof t=="object"&&".value"in t&&t[".value"]!==null&&(t=t[".value"]),typeof t!="object"||".sv"in t){let n=t;return new Sd(n,At(e))}if(!(t instanceof Array)&&Hre){let n=[],r=!1;if(dn(t,(s,a)=>{if(s.substring(0,1)!=="."){let c=At(a);c.isEmpty()||(r=r||!c.getPriority().isEmpty(),n.push(new Oe(s,c)))}}),n.length===0)return ve.EMPTY_NODE;let o=Sy(n,Ure,s=>s.name,Qw);if(r){let s=Sy(n,ft.getCompare());return new ve(o,At(e),new Ad({".priority":s},{".priority":ft}))}else return new ve(o,At(e),Ad.Default)}else{let n=ve.EMPTY_NODE;return dn(t,(r,i)=>{if(Vr(t,r)&&r.substring(0,1)!=="."){let o=At(i);(o.isLeafNode()||!o.isEmpty())&&(n=n.updateImmediateChild(r,o))}}),n.updatePriority(At(e))}}Bre(At);var Wp=class extends vd{constructor(e){super(),this.indexPath_=e,q(!we(e)&&Ne(e)!==".priority","Can't create PathIndex with empty path or .priority key")}extractChild(e){return e.getChild(this.indexPath_)}isDefinedOn(e){return!e.getChild(this.indexPath_).isEmpty()}compare(e,n){let r=this.extractChild(e.node),i=this.extractChild(n.node),o=r.compareTo(i);return o===0?al(e.name,n.name):o}makePost(e,n){let r=At(e),i=ve.EMPTY_NODE.updateChild(this.indexPath_,r);return new Oe(n,i)}maxPost(){let e=ve.EMPTY_NODE.updateChild(this.indexPath_,ig);return new Oe(Zs,e)}toString(){return $p(this.indexPath_,0).join("/")}};var dw=class extends vd{compare(e,n){let r=e.node.compareTo(n.node);return r===0?al(e.name,n.name):r}isDefinedOn(e){return!0}indexedValueChanged(e,n){return!e.equals(n)}minPost(){return Oe.MIN}maxPost(){return Oe.MAX}makePost(e,n){let r=At(e);return new Oe(n,r)}toString(){return".value"}},Pj=new dw;function xj(t){return{type:"value",snapshotNode:t}}function Cd(t,e){return{type:"child_added",snapshotNode:e,childName:t}}function zp(t,e){return{type:"child_removed",snapshotNode:e,childName:t}}function qp(t,e,n){return{type:"child_changed",snapshotNode:e,childName:t,oldSnap:n}}function $re(t,e){return{type:"child_moved",snapshotNode:e,childName:t}}var Kp=class{constructor(e){this.index_=e}updateChild(e,n,r,i,o,s){q(e.isIndexed(this.index_),"A node must be indexed if only a child is updated");let a=e.getImmediateChild(n);return a.getChild(i).equals(r.getChild(i))&&a.isEmpty()===r.isEmpty()||(s!=null&&(r.isEmpty()?e.hasChild(n)?s.trackChildChange(zp(n,a)):q(e.isLeafNode(),"A child remove without an old child only makes sense on a leaf node"):a.isEmpty()?s.trackChildChange(Cd(n,r)):s.trackChildChange(qp(n,r,a))),e.isLeafNode()&&r.isEmpty())?e:e.updateImmediateChild(n,r).withIndex(this.index_)}updateFullNode(e,n,r){return r!=null&&(e.isLeafNode()||e.forEachChild(ft,(i,o)=>{n.hasChild(i)||r.trackChildChange(zp(i,o))}),n.isLeafNode()||n.forEachChild(ft,(i,o)=>{if(e.hasChild(i)){let s=e.getImmediateChild(i);s.equals(o)||r.trackChildChange(qp(i,o,s))}else r.trackChildChange(Cd(i,o))})),n.withIndex(this.index_)}updatePriority(e,n){return e.isEmpty()?ve.EMPTY_NODE:e.updatePriority(n)}filtersNodes(){return!1}getIndexedFilter(){return this}getIndex(){return this.index_}};var Ay=class t{constructor(e){this.indexedFilter_=new Kp(e.getIndex()),this.index_=e.getIndex(),this.startPost_=t.getStartPost_(e),this.endPost_=t.getEndPost_(e),this.startIsInclusive_=!e.startAfterSet_,this.endIsInclusive_=!e.endBeforeSet_}getStartPost(){return this.startPost_}getEndPost(){return this.endPost_}matches(e){let n=this.startIsInclusive_?this.index_.compare(this.getStartPost(),e)<=0:this.index_.compare(this.getStartPost(),e)<0,r=this.endIsInclusive_?this.index_.compare(e,this.getEndPost())<=0:this.index_.compare(e,this.getEndPost())<0;return n&&r}updateChild(e,n,r,i,o,s){return this.matches(new Oe(n,r))||(r=ve.EMPTY_NODE),this.indexedFilter_.updateChild(e,n,r,i,o,s)}updateFullNode(e,n,r){n.isLeafNode()&&(n=ve.EMPTY_NODE);let i=n.withIndex(this.index_);i=i.updatePriority(ve.EMPTY_NODE);let o=this;return n.forEachChild(ft,(s,a)=>{o.matches(new Oe(s,a))||(i=i.updateImmediateChild(s,ve.EMPTY_NODE))}),this.indexedFilter_.updateFullNode(e,i,r)}updatePriority(e,n){return e}filtersNodes(){return!0}getIndexedFilter(){return this.indexedFilter_}getIndex(){return this.index_}static getStartPost_(e){if(e.hasStart()){let n=e.getIndexStartName();return e.getIndex().makePost(e.getIndexStartValue(),n)}else return e.getIndex().minPost()}static getEndPost_(e){if(e.hasEnd()){let n=e.getIndexEndName();return e.getIndex().makePost(e.getIndexEndValue(),n)}else return e.getIndex().maxPost()}};var hw=class{constructor(e){this.withinDirectionalStart=n=>this.reverse_?this.withinEndPost(n):this.withinStartPost(n),this.withinDirectionalEnd=n=>this.reverse_?this.withinStartPost(n):this.withinEndPost(n),this.withinStartPost=n=>{let r=this.index_.compare(this.rangedFilter_.getStartPost(),n);return this.startIsInclusive_?r<=0:r<0},this.withinEndPost=n=>{let r=this.index_.compare(n,this.rangedFilter_.getEndPost());return this.endIsInclusive_?r<=0:r<0},this.rangedFilter_=new Ay(e),this.index_=e.getIndex(),this.limit_=e.getLimit(),this.reverse_=!e.isViewFromLeft(),this.startIsInclusive_=!e.startAfterSet_,this.endIsInclusive_=!e.endBeforeSet_}updateChild(e,n,r,i,o,s){return this.rangedFilter_.matches(new Oe(n,r))||(r=ve.EMPTY_NODE),e.getImmediateChild(n).equals(r)?e:e.numChildren()<this.limit_?this.rangedFilter_.getIndexedFilter().updateChild(e,n,r,i,o,s):this.fullLimitUpdateChild_(e,n,r,o,s)}updateFullNode(e,n,r){let i;if(n.isLeafNode()||n.isEmpty())i=ve.EMPTY_NODE.withIndex(this.index_);else if(this.limit_*2<n.numChildren()&&n.isIndexed(this.index_)){i=ve.EMPTY_NODE.withIndex(this.index_);let o;this.reverse_?o=n.getReverseIteratorFrom(this.rangedFilter_.getEndPost(),this.index_):o=n.getIteratorFrom(this.rangedFilter_.getStartPost(),this.index_);let s=0;for(;o.hasNext()&&s<this.limit_;){let a=o.getNext();if(this.withinDirectionalStart(a))if(this.withinDirectionalEnd(a))i=i.updateImmediateChild(a.name,a.node),s++;else break;else continue}}else{i=n.withIndex(this.index_),i=i.updatePriority(ve.EMPTY_NODE);let o;this.reverse_?o=i.getReverseIterator(this.index_):o=i.getIterator(this.index_);let s=0;for(;o.hasNext();){let a=o.getNext();s<this.limit_&&this.withinDirectionalStart(a)&&this.withinDirectionalEnd(a)?s++:i=i.updateImmediateChild(a.name,ve.EMPTY_NODE)}}return this.rangedFilter_.getIndexedFilter().updateFullNode(e,i,r)}updatePriority(e,n){return e}filtersNodes(){return!0}getIndexedFilter(){return this.rangedFilter_.getIndexedFilter()}getIndex(){return this.index_}fullLimitUpdateChild_(e,n,r,i,o){let s;if(this.reverse_){let h=this.index_.getCompare();s=(f,g)=>h(g,f)}else s=this.index_.getCompare();let a=e;q(a.numChildren()===this.limit_,"");let c=new Oe(n,r),l=this.reverse_?a.getFirstChild(this.index_):a.getLastChild(this.index_),d=this.rangedFilter_.matches(c);if(a.hasChild(n)){let h=a.getImmediateChild(n),f=i.getChildAfterChild(this.index_,l,this.reverse_);for(;f!=null&&(f.name===n||a.hasChild(f.name));)f=i.getChildAfterChild(this.index_,f,this.reverse_);let g=f==null?1:s(f,c);if(d&&!r.isEmpty()&&g>=0)return o?.trackChildChange(qp(n,r,h)),a.updateImmediateChild(n,r);{o?.trackChildChange(zp(n,h));let I=a.updateImmediateChild(n,ve.EMPTY_NODE);return f!=null&&this.rangedFilter_.matches(f)?(o?.trackChildChange(Cd(f.name,f.node)),I.updateImmediateChild(f.name,f.node)):I}}else return r.isEmpty()?e:d&&s(l,c)>=0?(o!=null&&(o.trackChildChange(zp(l.name,l.node)),o.trackChildChange(Cd(n,r))),a.updateImmediateChild(n,r).updateImmediateChild(l.name,ve.EMPTY_NODE)):e}};var fw=class t{constructor(){this.limitSet_=!1,this.startSet_=!1,this.startNameSet_=!1,this.startAfterSet_=!1,this.endSet_=!1,this.endNameSet_=!1,this.endBeforeSet_=!1,this.limit_=0,this.viewFrom_="",this.indexStartValue_=null,this.indexStartName_="",this.indexEndValue_=null,this.indexEndName_="",this.index_=ft}hasStart(){return this.startSet_}isViewFromLeft(){return this.viewFrom_===""?this.startSet_:this.viewFrom_==="l"}getIndexStartValue(){return q(this.startSet_,"Only valid if start has been set"),this.indexStartValue_}getIndexStartName(){return q(this.startSet_,"Only valid if start has been set"),this.startNameSet_?this.indexStartName_:tl}hasEnd(){return this.endSet_}getIndexEndValue(){return q(this.endSet_,"Only valid if end has been set"),this.indexEndValue_}getIndexEndName(){return q(this.endSet_,"Only valid if end has been set"),this.endNameSet_?this.indexEndName_:Zs}hasLimit(){return this.limitSet_}hasAnchoredLimit(){return this.limitSet_&&this.viewFrom_!==""}getLimit(){return q(this.limitSet_,"Only valid if limit has been set"),this.limit_}getIndex(){return this.index_}loadsAllData(){return!(this.startSet_||this.endSet_||this.limitSet_)}isDefault(){return this.loadsAllData()&&this.index_===ft}copy(){let e=new t;return e.limitSet_=this.limitSet_,e.limit_=this.limit_,e.startSet_=this.startSet_,e.startAfterSet_=this.startAfterSet_,e.indexStartValue_=this.indexStartValue_,e.startNameSet_=this.startNameSet_,e.indexStartName_=this.indexStartName_,e.endSet_=this.endSet_,e.endBeforeSet_=this.endBeforeSet_,e.indexEndValue_=this.indexEndValue_,e.endNameSet_=this.endNameSet_,e.indexEndName_=this.indexEndName_,e.index_=this.index_,e.viewFrom_=this.viewFrom_,e}};function Wre(t){return t.loadsAllData()?new Kp(t.getIndex()):t.hasLimit()?new hw(t):new Ay(t)}function zre(t,e){let n=t.copy();return n.limitSet_=!0,n.limit_=e,n.viewFrom_="r",n}function qre(t,e,n){let r=t.copy();return r.startSet_=!0,e===void 0&&(e=null),r.indexStartValue_=e,n!=null?(r.startNameSet_=!0,r.indexStartName_=n):(r.startNameSet_=!1,r.indexStartName_=""),r}function Kre(t,e,n){let r=t.copy();return r.endSet_=!0,e===void 0&&(e=null),r.indexEndValue_=e,n!==void 0?(r.endNameSet_=!0,r.indexEndName_=n):(r.endNameSet_=!1,r.indexEndName_=""),r}function Yre(t,e){let n=t.copy();return n.index_=e,n}function $2(t){let e={};if(t.isDefault())return e;let n;if(t.index_===ft?n="$priority":t.index_===Pj?n="$value":t.index_===el?n="$key":(q(t.index_ instanceof Wp,"Unrecognized index type!"),n=t.index_.toString()),e.orderBy=xt(n),t.startSet_){let r=t.startAfterSet_?"startAfter":"startAt";e[r]=xt(t.indexStartValue_),t.startNameSet_&&(e[r]+=","+xt(t.indexStartName_))}if(t.endSet_){let r=t.endBeforeSet_?"endBefore":"endAt";e[r]=xt(t.indexEndValue_),t.endNameSet_&&(e[r]+=","+xt(t.indexEndName_))}return t.limitSet_&&(t.isViewFromLeft()?e.limitToFirst=t.limit_:e.limitToLast=t.limit_),e}function W2(t){let e={};if(t.startSet_&&(e.sp=t.indexStartValue_,t.startNameSet_&&(e.sn=t.indexStartName_),e.sin=!t.startAfterSet_),t.endSet_&&(e.ep=t.indexEndValue_,t.endNameSet_&&(e.en=t.indexEndName_),e.ein=!t.endBeforeSet_),t.limitSet_){e.l=t.limit_;let n=t.viewFrom_;n===""&&(t.isViewFromLeft()?n="l":n="r"),e.vf=n}return t.index_!==ft&&(e.i=t.index_.toString()),e}var pw=class t extends Ty{reportStats(e){throw new Error("Method not implemented.")}static getListenId_(e,n){return n!==void 0?"tag$"+n:(q(e._queryParams.isDefault(),"should have a tag if it's not a default query."),e._path.toString())}constructor(e,n,r,i){super(),this.repoInfo_=e,this.onDataUpdate_=n,this.authTokenProvider_=r,this.appCheckTokenProvider_=i,this.log_=rg("p:rest:"),this.listens_={}}listen(e,n,r,i){let o=e._path.toString();this.log_("Listen called for "+o+" "+e._queryIdentifier);let s=t.getListenId_(e,r),a={};this.listens_[s]=a;let c=$2(e._queryParams);this.restRequest_(o+".json",c,(l,d)=>{let h=d;if(l===404&&(h=null,l=null),l===null&&this.onDataUpdate_(o,h,!1,r),Fs(this.listens_,s)===a){let f;l?l===401?f="permission_denied":f="rest_error:"+l:f="ok",i(f,null)}})}unlisten(e,n){let r=t.getListenId_(e,n);delete this.listens_[r]}get(e){let n=$2(e._queryParams),r=e._path.toString(),i=new cn;return this.restRequest_(r+".json",n,(o,s)=>{let a=s;o===404&&(a=null,o=null),o===null?(this.onDataUpdate_(r,a,!1,null),i.resolve(a)):i.reject(new Error(a))}),i.promise}refreshAuthToken(e){}restRequest_(e,n={},r){return n.format="export",Promise.all([this.authTokenProvider_.getToken(!1),this.appCheckTokenProvider_.getToken(!1)]).then(([i,o])=>{i&&i.accessToken&&(n.auth=i.accessToken),o&&o.token&&(n.ac=o.token);let s=(this.repoInfo_.secure?"https://":"http://")+this.repoInfo_.host+e+"?ns="+this.repoInfo_.namespace+gp(n);this.log_("Sending REST request for "+s);let a=new XMLHttpRequest;a.onreadystatechange=()=>{if(r&&a.readyState===4){this.log_("REST Response for "+s+" received. status:",a.status,"response:",a.responseText);let c=null;if(a.status>=200&&a.status<300){try{c=ad(a.responseText)}catch{xn("Failed to parse JSON response for "+s+": "+a.responseText)}r(null,c)}else a.status!==401&&a.status!==404&&xn("Got unsuccessful REST response for "+s+" Status: "+a.status),r(a.status);r=null}},a.open("GET",s,!0),a.send()})}};var gw=class{constructor(){this.rootNode_=ve.EMPTY_NODE}getNode(e){return this.rootNode_.getChild(e)}updateSnapshot(e,n){this.rootNode_=this.rootNode_.updateChild(e,n)}};function Cy(){return{value:null,children:new Map}}function Od(t,e,n){if(we(e))t.value=n,t.children.clear();else if(t.value!==null)t.value=t.value.updateChild(e,n);else{let r=Ne(e);t.children.has(r)||t.children.set(r,Cy());let i=t.children.get(r);e=at(e),Od(i,e,n)}}function mw(t,e){if(we(e))return t.value=null,t.children.clear(),!0;if(t.value!==null){if(t.value.isLeafNode())return!1;{let n=t.value;return t.value=null,n.forEachChild(ft,(r,i)=>{Od(t,new Be(r),i)}),mw(t,e)}}else if(t.children.size>0){let n=Ne(e);return e=at(e),t.children.has(n)&&mw(t.children.get(n),e)&&t.children.delete(n),t.children.size===0}else return!0}function Ew(t,e,n){t.value!==null?n(e,t.value):Xre(t,(r,i)=>{let o=new Be(e.toString()+"/"+r);Ew(i,o,n)})}function Xre(t,e){t.children.forEach((n,r)=>{e(r,n)})}var _w=class{constructor(e){this.collection_=e,this.last_=null}get(){let e=this.collection_.get(),n=Object.assign({},e);return this.last_&&dn(this.last_,(r,i)=>{n[r]=n[r]-i}),this.last_=e,n}};var z2=10*1e3,Qre=30*1e3,Jre=300*1e3,Tw=class{constructor(e,n){this.server_=n,this.statsToReport_={},this.statsListener_=new _w(e);let r=z2+(Qre-z2)*Math.random();Vp(this.reportStats_.bind(this),Math.floor(r))}reportStats_(){let e=this.statsListener_.get(),n={},r=!1;dn(e,(i,o)=>{o>0&&Vr(this.statsToReport_,i)&&(n[i]=o,r=!0)}),r&&this.server_.reportStats(n),Vp(this.reportStats_.bind(this),Math.floor(Math.random()*2*Jre))}};var Zi=(function(t){return t[t.OVERWRITE=0]="OVERWRITE",t[t.MERGE=1]="MERGE",t[t.ACK_USER_WRITE=2]="ACK_USER_WRITE",t[t.LISTEN_COMPLETE=3]="LISTEN_COMPLETE",t})(Zi||{});function Jw(){return{fromUser:!0,fromServer:!1,queryId:null,tagged:!1}}function Zw(){return{fromUser:!1,fromServer:!0,queryId:null,tagged:!1}}function eb(t){return{fromUser:!1,fromServer:!0,queryId:t,tagged:!0}}var yw=class t{constructor(e,n,r){this.path=e,this.affectedTree=n,this.revert=r,this.type=Zi.ACK_USER_WRITE,this.source=Jw()}operationForChild(e){if(we(this.path)){if(this.affectedTree.value!=null)return q(this.affectedTree.children.isEmpty(),"affectedTree should not have overlapping affected paths."),this;{let n=this.affectedTree.subtree(new Be(e));return new t(Ve(),n,this.revert)}}else return q(Ne(this.path)===e,"operationForChild called for unrelated child."),new t(at(this.path),this.affectedTree,this.revert)}};var Dy=class t{constructor(e,n){this.source=e,this.path=n,this.type=Zi.LISTEN_COMPLETE}operationForChild(e){return we(this.path)?new t(this.source,Ve()):new t(this.source,at(this.path))}};var Dd=class t{constructor(e,n,r){this.source=e,this.path=n,this.snap=r,this.type=Zi.OVERWRITE}operationForChild(e){return we(this.path)?new t(this.source,Ve(),this.snap.getImmediateChild(e)):new t(this.source,at(this.path),this.snap)}};var Yp=class t{constructor(e,n,r){this.source=e,this.path=n,this.children=r,this.type=Zi.MERGE}operationForChild(e){if(we(this.path)){let n=this.children.subtree(new Be(e));return n.isEmpty()?null:n.value?new Dd(this.source,Ve(),n.value):new t(this.source,Ve(),n)}else return q(Ne(this.path)===e,"Can't get a merge for a child not on the path of the operation"),new t(this.source,at(this.path),this.children)}toString(){return"Operation("+this.path+": "+this.source.toString()+" merge: "+this.children.toString()+")"}};var eo=class{constructor(e,n,r){this.node_=e,this.fullyInitialized_=n,this.filtered_=r}isFullyInitialized(){return this.fullyInitialized_}isFiltered(){return this.filtered_}isCompleteForPath(e){if(we(e))return this.isFullyInitialized()&&!this.filtered_;let n=Ne(e);return this.isCompleteForChild(n)}isCompleteForChild(e){return this.isFullyInitialized()&&!this.filtered_||this.node_.hasChild(e)}getNode(){return this.node_}};var Iw=class{constructor(e){this.query_=e,this.index_=this.query_._queryParams.getIndex()}};function Zre(t,e,n,r){let i=[],o=[];return e.forEach(s=>{s.type==="child_changed"&&t.index_.indexedValueChanged(s.oldSnap,s.snapshotNode)&&o.push($re(s.childName,s.snapshotNode))}),Up(t,i,"child_removed",e,r,n),Up(t,i,"child_added",e,r,n),Up(t,i,"child_moved",o,r,n),Up(t,i,"child_changed",e,r,n),Up(t,i,"value",e,r,n),i}function Up(t,e,n,r,i,o){let s=r.filter(a=>a.type===n);s.sort((a,c)=>tie(t,a,c)),s.forEach(a=>{let c=eie(t,a,o);i.forEach(l=>{l.respondsTo(a.type)&&e.push(l.createEvent(c,t.query_))})})}function eie(t,e,n){return e.type==="value"||e.type==="child_removed"||(e.prevName=n.getPredecessorChildName(e.childName,e.snapshotNode,t.index_)),e}function tie(t,e,n){if(e.childName==null||n.childName==null)throw kc("Should only compare child_ events.");let r=new Oe(e.childName,e.snapshotNode),i=new Oe(n.childName,n.snapshotNode);return t.index_.compare(r,i)}function Gy(t,e){return{eventCache:t,serverCache:e}}function Gp(t,e,n,r){return Gy(new eo(e,n,r),t.serverCache)}function kj(t,e,n,r){return Gy(t.eventCache,new eo(e,n,r))}function Ry(t){return t.eventCache.isFullyInitialized()?t.eventCache.getNode():null}function nl(t){return t.serverCache.isFullyInitialized()?t.serverCache.getNode():null}var $N,nie=()=>($N||($N=new Hr(ere)),$N),qn=class t{static fromObject(e){let n=new t(null);return dn(e,(r,i)=>{n=n.set(new Be(r),i)}),n}constructor(e,n=nie()){this.value=e,this.children=n}isEmpty(){return this.value===null&&this.children.isEmpty()}findRootMostMatchingPathAndValue(e,n){if(this.value!=null&&n(this.value))return{path:Ve(),value:this.value};if(we(e))return null;{let r=Ne(e),i=this.children.get(r);if(i!==null){let o=i.findRootMostMatchingPathAndValue(at(e),n);return o!=null?{path:Ct(new Be(r),o.path),value:o.value}:null}else return null}}findRootMostValueAndPath(e){return this.findRootMostMatchingPathAndValue(e,()=>!0)}subtree(e){if(we(e))return this;{let n=Ne(e),r=this.children.get(n);return r!==null?r.subtree(at(e)):new t(null)}}set(e,n){if(we(e))return new t(n,this.children);{let r=Ne(e),o=(this.children.get(r)||new t(null)).set(at(e),n),s=this.children.insert(r,o);return new t(this.value,s)}}remove(e){if(we(e))return this.children.isEmpty()?new t(null):new t(null,this.children);{let n=Ne(e),r=this.children.get(n);if(r){let i=r.remove(at(e)),o;return i.isEmpty()?o=this.children.remove(n):o=this.children.insert(n,i),this.value===null&&o.isEmpty()?new t(null):new t(this.value,o)}else return this}}get(e){if(we(e))return this.value;{let n=Ne(e),r=this.children.get(n);return r?r.get(at(e)):null}}setTree(e,n){if(we(e))return n;{let r=Ne(e),o=(this.children.get(r)||new t(null)).setTree(at(e),n),s;return o.isEmpty()?s=this.children.remove(r):s=this.children.insert(r,o),new t(this.value,s)}}fold(e){return this.fold_(Ve(),e)}fold_(e,n){let r={};return this.children.inorderTraversal((i,o)=>{r[i]=o.fold_(Ct(e,i),n)}),n(e,this.value,r)}findOnPath(e,n){return this.findOnPath_(e,Ve(),n)}findOnPath_(e,n,r){let i=this.value?r(n,this.value):!1;if(i)return i;if(we(e))return null;{let o=Ne(e),s=this.children.get(o);return s?s.findOnPath_(at(e),Ct(n,o),r):null}}foreachOnPath(e,n){return this.foreachOnPath_(e,Ve(),n)}foreachOnPath_(e,n,r){if(we(e))return this;{this.value&&r(n,this.value);let i=Ne(e),o=this.children.get(i);return o?o.foreachOnPath_(at(e),Ct(n,i),r):new t(null)}}foreach(e){this.foreach_(Ve(),e)}foreach_(e,n){this.children.inorderTraversal((r,i)=>{i.foreach_(Ct(e,r),n)}),this.value&&n(e,this.value)}foreachChild(e){this.children.inorderTraversal((n,r)=>{r.value&&e(n,r.value)})}};var di=class t{constructor(e){this.writeTree_=e}static empty(){return new t(new qn(null))}};function jp(t,e,n){if(we(e))return new di(new qn(n));{let r=t.writeTree_.findRootMostValueAndPath(e);if(r!=null){let i=r.path,o=r.value,s=zn(i,e);return o=o.updateChild(s,n),new di(t.writeTree_.set(i,o))}else{let i=new qn(n),o=t.writeTree_.setTree(e,i);return new di(o)}}}function vw(t,e,n){let r=t;return dn(n,(i,o)=>{r=jp(r,Ct(e,i),o)}),r}function q2(t,e){if(we(e))return di.empty();{let n=t.writeTree_.setTree(e,new qn(null));return new di(n)}}function Sw(t,e){return cl(t,e)!=null}function cl(t,e){let n=t.writeTree_.findRootMostValueAndPath(e);return n!=null?t.writeTree_.get(n.path).getChild(zn(n.path,e)):null}function K2(t){let e=[],n=t.writeTree_.value;return n!=null?n.isLeafNode()||n.forEachChild(ft,(r,i)=>{e.push(new Oe(r,i))}):t.writeTree_.children.inorderTraversal((r,i)=>{i.value!=null&&e.push(new Oe(r,i.value))}),e}function Qs(t,e){if(we(e))return t;{let n=cl(t,e);return n!=null?new di(new qn(n)):new di(t.writeTree_.subtree(e))}}function Aw(t){return t.writeTree_.isEmpty()}function Rd(t,e){return Fj(Ve(),t.writeTree_,e)}function Fj(t,e,n){if(e.value!=null)return n.updateChild(t,e.value);{let r=null;return e.children.inorderTraversal((i,o)=>{i===".priority"?(q(o.value!==null,"Priority writes must always be leaf nodes"),r=o.value):n=Fj(Ct(t,i),o,n)}),!n.getChild(t).isEmpty()&&r!==null&&(n=n.updateChild(Ct(t,".priority"),r)),n}}function jy(t,e){return Gj(e,t)}function rie(t,e,n,r,i){q(r>t.lastWriteId,"Stacking an older write on top of newer ones"),i===void 0&&(i=!0),t.allWrites.push({path:e,snap:n,writeId:r,visible:i}),i&&(t.visibleWrites=jp(t.visibleWrites,e,n)),t.lastWriteId=r}function iie(t,e,n,r){q(r>t.lastWriteId,"Stacking an older merge on top of newer ones"),t.allWrites.push({path:e,children:n,writeId:r,visible:!0}),t.visibleWrites=vw(t.visibleWrites,e,n),t.lastWriteId=r}function oie(t,e){for(let n=0;n<t.allWrites.length;n++){let r=t.allWrites[n];if(r.writeId===e)return r}return null}function sie(t,e){let n=t.allWrites.findIndex(a=>a.writeId===e);q(n>=0,"removeWrite called with nonexistent writeId.");let r=t.allWrites[n];t.allWrites.splice(n,1);let i=r.visible,o=!1,s=t.allWrites.length-1;for(;i&&s>=0;){let a=t.allWrites[s];a.visible&&(s>=n&&aie(a,r.path)?i=!1:jr(r.path,a.path)&&(o=!0)),s--}if(i){if(o)return cie(t),!0;if(r.snap)t.visibleWrites=q2(t.visibleWrites,r.path);else{let a=r.children;dn(a,c=>{t.visibleWrites=q2(t.visibleWrites,Ct(r.path,c))})}return!0}else return!1}function aie(t,e){if(t.snap)return jr(t.path,e);for(let n in t.children)if(t.children.hasOwnProperty(n)&&jr(Ct(t.path,n),e))return!0;return!1}function cie(t){t.visibleWrites=Uj(t.allWrites,lie,Ve()),t.allWrites.length>0?t.lastWriteId=t.allWrites[t.allWrites.length-1].writeId:t.lastWriteId=-1}function lie(t){return t.visible}function Uj(t,e,n){let r=di.empty();for(let i=0;i<t.length;++i){let o=t[i];if(e(o)){let s=o.path,a;if(o.snap)jr(n,s)?(a=zn(n,s),r=jp(r,a,o.snap)):jr(s,n)&&(a=zn(s,n),r=jp(r,Ve(),o.snap.getChild(a)));else if(o.children){if(jr(n,s))a=zn(n,s),r=vw(r,a,o.children);else if(jr(s,n))if(a=zn(s,n),we(a))r=vw(r,Ve(),o.children);else{let c=Fs(o.children,Ne(a));if(c){let l=c.getChild(at(a));r=jp(r,Ve(),l)}}}else throw kc("WriteRecord should have .snap or .children")}}return r}function Vj(t,e,n,r,i){if(!r&&!i){let o=cl(t.visibleWrites,e);if(o!=null)return o;{let s=Qs(t.visibleWrites,e);if(Aw(s))return n;if(n==null&&!Sw(s,Ve()))return null;{let a=n||ve.EMPTY_NODE;return Rd(s,a)}}}else{let o=Qs(t.visibleWrites,e);if(!i&&Aw(o))return n;if(!i&&n==null&&!Sw(o,Ve()))return null;{let s=function(l){return(l.visible||i)&&(!r||!~r.indexOf(l.writeId))&&(jr(l.path,e)||jr(e,l.path))},a=Uj(t.allWrites,s,e),c=n||ve.EMPTY_NODE;return Rd(a,c)}}}function uie(t,e,n){let r=ve.EMPTY_NODE,i=cl(t.visibleWrites,e);if(i)return i.isLeafNode()||i.forEachChild(ft,(o,s)=>{r=r.updateImmediateChild(o,s)}),r;if(n){let o=Qs(t.visibleWrites,e);return n.forEachChild(ft,(s,a)=>{let c=Rd(Qs(o,new Be(s)),a);r=r.updateImmediateChild(s,c)}),K2(o).forEach(s=>{r=r.updateImmediateChild(s.name,s.node)}),r}else{let o=Qs(t.visibleWrites,e);return K2(o).forEach(s=>{r=r.updateImmediateChild(s.name,s.node)}),r}}function die(t,e,n,r,i){q(r||i,"Either existingEventSnap or existingServerSnap must exist");let o=Ct(e,n);if(Sw(t.visibleWrites,o))return null;{let s=Qs(t.visibleWrites,o);return Aw(s)?i.getChild(n):Rd(s,i.getChild(n))}}function hie(t,e,n,r){let i=Ct(e,n),o=cl(t.visibleWrites,i);if(o!=null)return o;if(r.isCompleteForChild(n)){let s=Qs(t.visibleWrites,i);return Rd(s,r.getNode().getImmediateChild(n))}else return null}function fie(t,e){return cl(t.visibleWrites,e)}function pie(t,e,n,r,i,o,s){let a,c=Qs(t.visibleWrites,e),l=cl(c,Ve());if(l!=null)a=l;else if(n!=null)a=Rd(c,n);else return[];if(a=a.withIndex(s),!a.isEmpty()&&!a.isLeafNode()){let d=[],h=s.getCompare(),f=o?a.getReverseIteratorFrom(r,s):a.getIteratorFrom(r,s),g=f.getNext();for(;g&&d.length<i;)h(g,r)!==0&&d.push(g),g=f.getNext();return d}else return[]}function gie(){return{visibleWrites:di.empty(),allWrites:[],lastWriteId:-1}}function Ny(t,e,n,r){return Vj(t.writeTree,t.treePath,e,n,r)}function tb(t,e){return uie(t.writeTree,t.treePath,e)}function Y2(t,e,n,r){return die(t.writeTree,t.treePath,e,n,r)}function wy(t,e){return fie(t.writeTree,Ct(t.treePath,e))}function mie(t,e,n,r,i,o){return pie(t.writeTree,t.treePath,e,n,r,i,o)}function nb(t,e,n){return hie(t.writeTree,t.treePath,e,n)}function Bj(t,e){return Gj(Ct(t.treePath,e),t.writeTree)}function Gj(t,e){return{treePath:t,writeTree:e}}var Cw=class{constructor(){this.changeMap=new Map}trackChildChange(e){let n=e.type,r=e.childName;q(n==="child_added"||n==="child_changed"||n==="child_removed","Only child changes supported for tracking"),q(r!==".priority","Only non-priority child changes can be tracked.");let i=this.changeMap.get(r);if(i){let o=i.type;if(n==="child_added"&&o==="child_removed")this.changeMap.set(r,qp(r,e.snapshotNode,i.snapshotNode));else if(n==="child_removed"&&o==="child_added")this.changeMap.delete(r);else if(n==="child_removed"&&o==="child_changed")this.changeMap.set(r,zp(r,i.oldSnap));else if(n==="child_changed"&&o==="child_added")this.changeMap.set(r,Cd(r,e.snapshotNode));else if(n==="child_changed"&&o==="child_changed")this.changeMap.set(r,qp(r,e.snapshotNode,i.oldSnap));else throw kc("Illegal combination of changes: "+e+" occurred after "+i)}else this.changeMap.set(r,e)}getChanges(){return Array.from(this.changeMap.values())}};var Dw=class{getCompleteChild(e){return null}getChildAfterChild(e,n,r){return null}},jj=new Dw,Xp=class{constructor(e,n,r=null){this.writes_=e,this.viewCache_=n,this.optCompleteServerCache_=r}getCompleteChild(e){let n=this.viewCache_.eventCache;if(n.isCompleteForChild(e))return n.getNode().getImmediateChild(e);{let r=this.optCompleteServerCache_!=null?new eo(this.optCompleteServerCache_,!0,!1):this.viewCache_.serverCache;return nb(this.writes_,e,r)}}getChildAfterChild(e,n,r){let i=this.optCompleteServerCache_!=null?this.optCompleteServerCache_:nl(this.viewCache_),o=mie(this.writes_,i,n,1,r,e);return o.length===0?null:o[0]}};function Eie(t){return{filter:t}}function _ie(t,e){q(e.eventCache.getNode().isIndexed(t.filter.getIndex()),"Event snap not indexed"),q(e.serverCache.getNode().isIndexed(t.filter.getIndex()),"Server snap not indexed")}function Tie(t,e,n,r,i){let o=new Cw,s,a;if(n.type===Zi.OVERWRITE){let l=n;l.source.fromUser?s=Rw(t,e,l.path,l.snap,r,i,o):(q(l.source.fromServer,"Unknown source."),a=l.source.tagged||e.serverCache.isFiltered()&&!we(l.path),s=by(t,e,l.path,l.snap,r,i,a,o))}else if(n.type===Zi.MERGE){let l=n;l.source.fromUser?s=Iie(t,e,l.path,l.children,r,i,o):(q(l.source.fromServer,"Unknown source."),a=l.source.tagged||e.serverCache.isFiltered(),s=Nw(t,e,l.path,l.children,r,i,a,o))}else if(n.type===Zi.ACK_USER_WRITE){let l=n;l.revert?s=Aie(t,e,l.path,r,i,o):s=vie(t,e,l.path,l.affectedTree,r,i,o)}else if(n.type===Zi.LISTEN_COMPLETE)s=Sie(t,e,n.path,r,o);else throw kc("Unknown operation type: "+n.type);let c=o.getChanges();return yie(e,s,c),{viewCache:s,changes:c}}function yie(t,e,n){let r=e.eventCache;if(r.isFullyInitialized()){let i=r.getNode().isLeafNode()||r.getNode().isEmpty(),o=Ry(t);(n.length>0||!t.eventCache.isFullyInitialized()||i&&!r.getNode().equals(o)||!r.getNode().getPriority().equals(o.getPriority()))&&n.push(xj(Ry(e)))}}function Hj(t,e,n,r,i,o){let s=e.eventCache;if(wy(r,n)!=null)return e;{let a,c;if(we(n))if(q(e.serverCache.isFullyInitialized(),"If change path is empty, we must have complete server data"),e.serverCache.isFiltered()){let l=nl(e),d=l instanceof ve?l:ve.EMPTY_NODE,h=tb(r,d);a=t.filter.updateFullNode(e.eventCache.getNode(),h,o)}else{let l=Ny(r,nl(e));a=t.filter.updateFullNode(e.eventCache.getNode(),l,o)}else{let l=Ne(n);if(l===".priority"){q(ea(n)===1,"Can't have a priority with additional path components");let d=s.getNode();c=e.serverCache.getNode();let h=Y2(r,n,d,c);h!=null?a=t.filter.updatePriority(d,h):a=s.getNode()}else{let d=at(n),h;if(s.isCompleteForChild(l)){c=e.serverCache.getNode();let f=Y2(r,n,s.getNode(),c);f!=null?h=s.getNode().getImmediateChild(l).updateChild(d,f):h=s.getNode().getImmediateChild(l)}else h=nb(r,l,e.serverCache);h!=null?a=t.filter.updateChild(s.getNode(),l,h,d,i,o):a=s.getNode()}}return Gp(e,a,s.isFullyInitialized()||we(n),t.filter.filtersNodes())}}function by(t,e,n,r,i,o,s,a){let c=e.serverCache,l,d=s?t.filter:t.filter.getIndexedFilter();if(we(n))l=d.updateFullNode(c.getNode(),r,null);else if(d.filtersNodes()&&!c.isFiltered()){let g=c.getNode().updateChild(n,r);l=d.updateFullNode(c.getNode(),g,null)}else{let g=Ne(n);if(!c.isCompleteForPath(n)&&ea(n)>1)return e;let E=at(n),S=c.getNode().getImmediateChild(g).updateChild(E,r);g===".priority"?l=d.updatePriority(c.getNode(),S):l=d.updateChild(c.getNode(),g,S,E,jj,null)}let h=kj(e,l,c.isFullyInitialized()||we(n),d.filtersNodes()),f=new Xp(i,h,o);return Hj(t,h,n,i,f,a)}function Rw(t,e,n,r,i,o,s){let a=e.eventCache,c,l,d=new Xp(i,e,o);if(we(n))l=t.filter.updateFullNode(e.eventCache.getNode(),r,s),c=Gp(e,l,!0,t.filter.filtersNodes());else{let h=Ne(n);if(h===".priority")l=t.filter.updatePriority(e.eventCache.getNode(),r),c=Gp(e,l,a.isFullyInitialized(),a.isFiltered());else{let f=at(n),g=a.getNode().getImmediateChild(h),E;if(we(f))E=r;else{let I=d.getCompleteChild(h);I!=null?Kw(f)===".priority"&&I.getChild(Nj(f)).isEmpty()?E=I:E=I.updateChild(f,r):E=ve.EMPTY_NODE}if(g.equals(E))c=e;else{let I=t.filter.updateChild(a.getNode(),h,E,f,d,s);c=Gp(e,I,a.isFullyInitialized(),t.filter.filtersNodes())}}}return c}function X2(t,e){return t.eventCache.isCompleteForChild(e)}function Iie(t,e,n,r,i,o,s){let a=e;return r.foreach((c,l)=>{let d=Ct(n,c);X2(e,Ne(d))&&(a=Rw(t,a,d,l,i,o,s))}),r.foreach((c,l)=>{let d=Ct(n,c);X2(e,Ne(d))||(a=Rw(t,a,d,l,i,o,s))}),a}function Q2(t,e,n){return n.foreach((r,i)=>{e=e.updateChild(r,i)}),e}function Nw(t,e,n,r,i,o,s,a){if(e.serverCache.getNode().isEmpty()&&!e.serverCache.isFullyInitialized())return e;let c=e,l;we(n)?l=r:l=new qn(null).setTree(n,r);let d=e.serverCache.getNode();return l.children.inorderTraversal((h,f)=>{if(d.hasChild(h)){let g=e.serverCache.getNode().getImmediateChild(h),E=Q2(t,g,f);c=by(t,c,new Be(h),E,i,o,s,a)}}),l.children.inorderTraversal((h,f)=>{let g=!e.serverCache.isCompleteForChild(h)&&f.value===null;if(!d.hasChild(h)&&!g){let E=e.serverCache.getNode().getImmediateChild(h),I=Q2(t,E,f);c=by(t,c,new Be(h),I,i,o,s,a)}}),c}function vie(t,e,n,r,i,o,s){if(wy(i,n)!=null)return e;let a=e.serverCache.isFiltered(),c=e.serverCache;if(r.value!=null){if(we(n)&&c.isFullyInitialized()||c.isCompleteForPath(n))return by(t,e,n,c.getNode().getChild(n),i,o,a,s);if(we(n)){let l=new qn(null);return c.getNode().forEachChild(el,(d,h)=>{l=l.set(new Be(d),h)}),Nw(t,e,n,l,i,o,a,s)}else return e}else{let l=new qn(null);return r.foreach((d,h)=>{let f=Ct(n,d);c.isCompleteForPath(f)&&(l=l.set(d,c.getNode().getChild(f)))}),Nw(t,e,n,l,i,o,a,s)}}function Sie(t,e,n,r,i){let o=e.serverCache,s=kj(e,o.getNode(),o.isFullyInitialized()||we(n),o.isFiltered());return Hj(t,s,n,r,jj,i)}function Aie(t,e,n,r,i,o){let s;if(wy(r,n)!=null)return e;{let a=new Xp(r,e,i),c=e.eventCache.getNode(),l;if(we(n)||Ne(n)===".priority"){let d;if(e.serverCache.isFullyInitialized())d=Ny(r,nl(e));else{let h=e.serverCache.getNode();q(h instanceof ve,"serverChildren would be complete if leaf node"),d=tb(r,h)}d=d,l=t.filter.updateFullNode(c,d,o)}else{let d=Ne(n),h=nb(r,d,e.serverCache);h==null&&e.serverCache.isCompleteForChild(d)&&(h=c.getImmediateChild(d)),h!=null?l=t.filter.updateChild(c,d,h,at(n),a,o):e.eventCache.getNode().hasChild(d)?l=t.filter.updateChild(c,d,ve.EMPTY_NODE,at(n),a,o):l=c,l.isEmpty()&&e.serverCache.isFullyInitialized()&&(s=Ny(r,nl(e)),s.isLeafNode()&&(l=t.filter.updateFullNode(l,s,o)))}return s=e.serverCache.isFullyInitialized()||wy(r,Ve())!=null,Gp(e,l,s,t.filter.filtersNodes())}}var ww=class{constructor(e,n){this.query_=e,this.eventRegistrations_=[];let r=this.query_._queryParams,i=new Kp(r.getIndex()),o=Wre(r);this.processor_=Eie(o);let s=n.serverCache,a=n.eventCache,c=i.updateFullNode(ve.EMPTY_NODE,s.getNode(),null),l=o.updateFullNode(ve.EMPTY_NODE,a.getNode(),null),d=new eo(c,s.isFullyInitialized(),i.filtersNodes()),h=new eo(l,a.isFullyInitialized(),o.filtersNodes());this.viewCache_=Gy(h,d),this.eventGenerator_=new Iw(this.query_)}get query(){return this.query_}};function Cie(t){return t.viewCache_.serverCache.getNode()}function Die(t){return Ry(t.viewCache_)}function Rie(t,e){let n=nl(t.viewCache_);return n&&(t.query._queryParams.loadsAllData()||!we(e)&&!n.getImmediateChild(Ne(e)).isEmpty())?n.getChild(e):null}function J2(t){return t.eventRegistrations_.length===0}function Nie(t,e){t.eventRegistrations_.push(e)}function Z2(t,e,n){let r=[];if(n){q(e==null,"A cancel should cancel all event registrations.");let i=t.query._path;t.eventRegistrations_.forEach(o=>{let s=o.createCancelEvent(n,i);s&&r.push(s)})}if(e){let i=[];for(let o=0;o<t.eventRegistrations_.length;++o){let s=t.eventRegistrations_[o];if(!s.matches(e))i.push(s);else if(e.hasAnyCallback()){i=i.concat(t.eventRegistrations_.slice(o+1));break}}t.eventRegistrations_=i}else t.eventRegistrations_=[];return r}function ej(t,e,n,r){e.type===Zi.MERGE&&e.source.queryId!==null&&(q(nl(t.viewCache_),"We should always have a full cache before handling merges"),q(Ry(t.viewCache_),"Missing event cache, even though we have a server cache"));let i=t.viewCache_,o=Tie(t.processor_,i,e,n,r);return _ie(t.processor_,o.viewCache),q(o.viewCache.serverCache.isFullyInitialized()||!i.serverCache.isFullyInitialized(),"Once a server snap is complete, it should never go back"),t.viewCache_=o.viewCache,$j(t,o.changes,o.viewCache.eventCache.getNode(),null)}function wie(t,e){let n=t.viewCache_.eventCache,r=[];return n.getNode().isLeafNode()||n.getNode().forEachChild(ft,(o,s)=>{r.push(Cd(o,s))}),n.isFullyInitialized()&&r.push(xj(n.getNode())),$j(t,r,n.getNode(),e)}function $j(t,e,n,r){let i=r?[r]:t.eventRegistrations_;return Zre(t.eventGenerator_,e,n,i)}var Oy,My=class{constructor(){this.views=new Map}};function bie(t){q(!Oy,"__referenceConstructor has already been defined"),Oy=t}function Oie(){return q(Oy,"Reference.ts has not been loaded"),Oy}function Mie(t){return t.views.size===0}function rb(t,e,n,r){let i=e.source.queryId;if(i!==null){let o=t.views.get(i);return q(o!=null,"SyncTree gave us an op for an invalid query."),ej(o,e,n,r)}else{let o=[];for(let s of t.views.values())o=o.concat(ej(s,e,n,r));return o}}function Wj(t,e,n,r,i){let o=e._queryIdentifier,s=t.views.get(o);if(!s){let a=Ny(n,i?r:null),c=!1;a?c=!0:r instanceof ve?(a=tb(n,r),c=!1):(a=ve.EMPTY_NODE,c=!1);let l=Gy(new eo(a,c,!1),new eo(r,i,!1));return new ww(e,l)}return s}function Lie(t,e,n,r,i,o){let s=Wj(t,e,r,i,o);return t.views.has(e._queryIdentifier)||t.views.set(e._queryIdentifier,s),Nie(s,n),wie(s,n)}function Pie(t,e,n,r){let i=e._queryIdentifier,o=[],s=[],a=ta(t);if(i==="default")for(let[c,l]of t.views.entries())s=s.concat(Z2(l,n,r)),J2(l)&&(t.views.delete(c),l.query._queryParams.loadsAllData()||o.push(l.query));else{let c=t.views.get(i);c&&(s=s.concat(Z2(c,n,r)),J2(c)&&(t.views.delete(i),c.query._queryParams.loadsAllData()||o.push(c.query)))}return a&&!ta(t)&&o.push(new(Oie())(e._repo,e._path)),{removed:o,events:s}}function zj(t){let e=[];for(let n of t.views.values())n.query._queryParams.loadsAllData()||e.push(n);return e}function Js(t,e){let n=null;for(let r of t.views.values())n=n||Rie(r,e);return n}function qj(t,e){if(e._queryParams.loadsAllData())return Hy(t);{let r=e._queryIdentifier;return t.views.get(r)}}function Kj(t,e){return qj(t,e)!=null}function ta(t){return Hy(t)!=null}function Hy(t){for(let e of t.views.values())if(e.query._queryParams.loadsAllData())return e;return null}var Ly;function xie(t){q(!Ly,"__referenceConstructor has already been defined"),Ly=t}function kie(){return q(Ly,"Reference.ts has not been loaded"),Ly}var Fie=1,Py=class{constructor(e){this.listenProvider_=e,this.syncPointTree_=new qn(null),this.pendingWriteTree_=gie(),this.tagToQueryMap=new Map,this.queryToTagMap=new Map}};function ib(t,e,n,r,i){return rie(t.pendingWriteTree_,e,n,r,i),i?Md(t,new Dd(Jw(),e,n)):[]}function Uie(t,e,n,r){iie(t.pendingWriteTree_,e,n,r);let i=qn.fromObject(n);return Md(t,new Yp(Jw(),e,i))}function Ys(t,e,n=!1){let r=oie(t.pendingWriteTree_,e);if(sie(t.pendingWriteTree_,e)){let o=new qn(null);return r.snap!=null?o=o.set(Ve(),!0):dn(r.children,s=>{o=o.set(new Be(s),!0)}),Md(t,new yw(r.path,o,n))}else return[]}function og(t,e,n){return Md(t,new Dd(Zw(),e,n))}function Vie(t,e,n){let r=qn.fromObject(n);return Md(t,new Yp(Zw(),e,r))}function Bie(t,e){return Md(t,new Dy(Zw(),e))}function Gie(t,e,n){let r=ob(t,n);if(r){let i=sb(r),o=i.path,s=i.queryId,a=zn(o,e),c=new Dy(eb(s),a);return ab(t,o,c)}else return[]}function xy(t,e,n,r,i=!1){let o=e._path,s=t.syncPointTree_.get(o),a=[];if(s&&(e._queryIdentifier==="default"||Kj(s,e))){let c=Pie(s,e,n,r);Mie(s)&&(t.syncPointTree_=t.syncPointTree_.remove(o));let l=c.removed;if(a=c.events,!i){let d=l.findIndex(f=>f._queryParams.loadsAllData())!==-1,h=t.syncPointTree_.findOnPath(o,(f,g)=>ta(g));if(d&&!h){let f=t.syncPointTree_.subtree(o);if(!f.isEmpty()){let g=$ie(f);for(let E=0;E<g.length;++E){let I=g[E],S=I.query,L=Jj(t,I);t.listenProvider_.startListening(Hp(S),Qp(t,S),L.hashFn,L.onComplete)}}}!h&&l.length>0&&!r&&(d?t.listenProvider_.stopListening(Hp(e),null):l.forEach(f=>{let g=t.queryToTagMap.get(Wy(f));t.listenProvider_.stopListening(Hp(f),g)}))}Wie(t,l)}return a}function Yj(t,e,n,r){let i=ob(t,r);if(i!=null){let o=sb(i),s=o.path,a=o.queryId,c=zn(s,e),l=new Dd(eb(a),c,n);return ab(t,s,l)}else return[]}function jie(t,e,n,r){let i=ob(t,r);if(i){let o=sb(i),s=o.path,a=o.queryId,c=zn(s,e),l=qn.fromObject(n),d=new Yp(eb(a),c,l);return ab(t,s,d)}else return[]}function bw(t,e,n,r=!1){let i=e._path,o=null,s=!1;t.syncPointTree_.foreachOnPath(i,(f,g)=>{let E=zn(f,i);o=o||Js(g,E),s=s||ta(g)});let a=t.syncPointTree_.get(i);a?(s=s||ta(a),o=o||Js(a,Ve())):(a=new My,t.syncPointTree_=t.syncPointTree_.set(i,a));let c;o!=null?c=!0:(c=!1,o=ve.EMPTY_NODE,t.syncPointTree_.subtree(i).foreachChild((g,E)=>{let I=Js(E,Ve());I&&(o=o.updateImmediateChild(g,I))}));let l=Kj(a,e);if(!l&&!e._queryParams.loadsAllData()){let f=Wy(e);q(!t.queryToTagMap.has(f),"View does not exist, but we have a tag");let g=zie();t.queryToTagMap.set(f,g),t.tagToQueryMap.set(g,f)}let d=jy(t.pendingWriteTree_,i),h=Lie(a,e,n,d,o,c);if(!l&&!s&&!r){let f=qj(a,e);h=h.concat(qie(t,e,f))}return h}function $y(t,e,n){let i=t.pendingWriteTree_,o=t.syncPointTree_.findOnPath(e,(s,a)=>{let c=zn(s,e),l=Js(a,c);if(l)return l});return Vj(i,e,o,n,!0)}function Hie(t,e){let n=e._path,r=null;t.syncPointTree_.foreachOnPath(n,(l,d)=>{let h=zn(l,n);r=r||Js(d,h)});let i=t.syncPointTree_.get(n);i?r=r||Js(i,Ve()):(i=new My,t.syncPointTree_=t.syncPointTree_.set(n,i));let o=r!=null,s=o?new eo(r,!0,!1):null,a=jy(t.pendingWriteTree_,e._path),c=Wj(i,e,a,o?s.getNode():ve.EMPTY_NODE,o);return Die(c)}function Md(t,e){return Xj(e,t.syncPointTree_,null,jy(t.pendingWriteTree_,Ve()))}function Xj(t,e,n,r){if(we(t.path))return Qj(t,e,n,r);{let i=e.get(Ve());n==null&&i!=null&&(n=Js(i,Ve()));let o=[],s=Ne(t.path),a=t.operationForChild(s),c=e.children.get(s);if(c&&a){let l=n?n.getImmediateChild(s):null,d=Bj(r,s);o=o.concat(Xj(a,c,l,d))}return i&&(o=o.concat(rb(i,t,r,n))),o}}function Qj(t,e,n,r){let i=e.get(Ve());n==null&&i!=null&&(n=Js(i,Ve()));let o=[];return e.children.inorderTraversal((s,a)=>{let c=n?n.getImmediateChild(s):null,l=Bj(r,s),d=t.operationForChild(s);d&&(o=o.concat(Qj(d,a,c,l)))}),i&&(o=o.concat(rb(i,t,r,n))),o}function Jj(t,e){let n=e.query,r=Qp(t,n);return{hashFn:()=>(Cie(e)||ve.EMPTY_NODE).hash(),onComplete:i=>{if(i==="ok")return r?Gie(t,n._path,r):Bie(t,n._path);{let o=rre(i,n);return xy(t,n,null,o)}}}}function Qp(t,e){let n=Wy(e);return t.queryToTagMap.get(n)}function Wy(t){return t._path.toString()+"$"+t._queryIdentifier}function ob(t,e){return t.tagToQueryMap.get(e)}function sb(t){let e=t.indexOf("$");return q(e!==-1&&e<t.length-1,"Bad queryKey."),{queryId:t.substr(e+1),path:new Be(t.substr(0,e))}}function ab(t,e,n){let r=t.syncPointTree_.get(e);q(r,"Missing sync point for query tag that we're tracking");let i=jy(t.pendingWriteTree_,e);return rb(r,n,i,null)}function $ie(t){return t.fold((e,n,r)=>{if(n&&ta(n))return[Hy(n)];{let i=[];return n&&(i=zj(n)),dn(r,(o,s)=>{i=i.concat(s)}),i}})}function Hp(t){return t._queryParams.loadsAllData()&&!t._queryParams.isDefault()?new(kie())(t._repo,t._path):t}function Wie(t,e){for(let n=0;n<e.length;++n){let r=e[n];if(!r._queryParams.loadsAllData()){let i=Wy(r),o=t.queryToTagMap.get(i);t.queryToTagMap.delete(i),t.tagToQueryMap.delete(o)}}}function zie(){return Fie++}function qie(t,e,n){let r=e._path,i=Qp(t,e),o=Jj(t,n),s=t.listenProvider_.startListening(Hp(e),i,o.hashFn,o.onComplete),a=t.syncPointTree_.subtree(r);if(i)q(!ta(a.value),"If we're adding a query, it shouldn't be shadowed");else{let c=a.fold((l,d,h)=>{if(!we(l)&&d&&ta(d))return[Hy(d).query];{let f=[];return d&&(f=f.concat(zj(d).map(g=>g.query))),dn(h,(g,E)=>{f=f.concat(E)}),f}});for(let l=0;l<c.length;++l){let d=c[l];t.listenProvider_.stopListening(Hp(d),Qp(t,d))}}return s}var Ow=class t{constructor(e){this.node_=e}getImmediateChild(e){let n=this.node_.getImmediateChild(e);return new t(n)}node(){return this.node_}},Mw=class t{constructor(e,n){this.syncTree_=e,this.path_=n}getImmediateChild(e){let n=Ct(this.path_,e);return new t(this.syncTree_,n)}node(){return $y(this.syncTree_,this.path_)}},Kie=function(t){return t=t||{},t.timestamp=t.timestamp||new Date().getTime(),t},tj=function(t,e,n){if(!t||typeof t!="object")return t;if(q(".sv"in t,"Unexpected leaf node or priority contents"),typeof t[".sv"]=="string")return Yie(t[".sv"],e,n);if(typeof t[".sv"]=="object")return Xie(t[".sv"],e);q(!1,"Unexpected server value: "+JSON.stringify(t,null,2))},Yie=function(t,e,n){if(t==="timestamp")return n.timestamp;q(!1,"Unexpected server value: "+t)},Xie=function(t,e,n){t.hasOwnProperty("increment")||q(!1,"Unexpected server value: "+JSON.stringify(t,null,2));let r=t.increment;typeof r!="number"&&q(!1,"Unexpected increment value: "+r);let i=e.node();if(q(i!==null&&typeof i<"u","Expected ChildrenNode.EMPTY_NODE for nulls"),!i.isLeafNode())return r;let s=i.getValue();return typeof s!="number"?r:s+r},Zj=function(t,e,n,r){return lb(e,new Mw(n,t),r)},cb=function(t,e,n){return lb(t,new Ow(e),n)};function lb(t,e,n){let r=t.getPriority().val(),i=tj(r,e.getImmediateChild(".priority"),n),o;if(t.isLeafNode()){let s=t,a=tj(s.getValue(),e,n);return a!==s.getValue()||i!==s.getPriority().val()?new Sd(a,At(i)):t}else{let s=t;return o=s,i!==s.getPriority().val()&&(o=o.updatePriority(new Sd(i))),s.forEachChild(ft,(a,c)=>{let l=lb(c,e.getImmediateChild(a),n);l!==c&&(o=o.updateImmediateChild(a,l))}),o}}var Jp=class{constructor(e="",n=null,r={children:{},childCount:0}){this.name=e,this.parent=n,this.node=r}};function zy(t,e){let n=e instanceof Be?e:new Be(e),r=t,i=Ne(n);for(;i!==null;){let o=Fs(r.node.children,i)||{children:{},childCount:0};r=new Jp(i,r,o),n=at(n),i=Ne(n)}return r}function ll(t){return t.node.value}function ub(t,e){t.node.value=e,Lw(t)}function eH(t){return t.node.childCount>0}function Qie(t){return ll(t)===void 0&&!eH(t)}function qy(t,e){dn(t.node.children,(n,r)=>{e(new Jp(n,t,r))})}function tH(t,e,n,r){n&&!r&&e(t),qy(t,i=>{tH(i,e,!0,r)}),n&&r&&e(t)}function Jie(t,e,n){let r=n?t:t.parent;for(;r!==null;){if(e(r))return!0;r=r.parent}return!1}function sg(t){return new Be(t.parent===null?t.name:sg(t.parent)+"/"+t.name)}function Lw(t){t.parent!==null&&Zie(t.parent,t.name,t)}function Zie(t,e,n){let r=Qie(n),i=Vr(t.node.children,e);r&&i?(delete t.node.children[e],t.node.childCount--,Lw(t)):!r&&!i&&(t.node.children[e]=n.node,t.node.childCount++,Lw(t))}var eoe=/[\[\].#$\/\u0000-\u001F\u007F]/,toe=/[\[\].#$\u0000-\u001F\u007F]/,WN=10*1024*1024,Ky=function(t){return typeof t=="string"&&t.length!==0&&!eoe.test(t)},nH=function(t){return typeof t=="string"&&t.length!==0&&!toe.test(t)},noe=function(t){return t&&(t=t.replace(/^\/*\.info(\/|$)/,"/")),nH(t)},Zp=function(t){return t===null||typeof t=="string"||typeof t=="number"&&!By(t)||t&&typeof t=="object"&&Vr(t,".sv")},rl=function(t,e,n,r){r&&e===void 0||ag(Us(t,"value"),e,n)},ag=function(t,e,n){let r=n instanceof Be?new iw(n,t):n;if(e===void 0)throw new Error(t+"contains undefined "+Qc(r));if(typeof e=="function")throw new Error(t+"contains a function "+Qc(r)+" with contents = "+e.toString());if(By(e))throw new Error(t+"contains "+e.toString()+" "+Qc(r));if(typeof e=="string"&&e.length>WN/3&&mp(e)>WN)throw new Error(t+"contains a string greater than "+WN+" utf8 bytes "+Qc(r)+" ('"+e.substring(0,50)+"...')");if(e&&typeof e=="object"){let i=!1,o=!1;if(dn(e,(s,a)=>{if(s===".value")i=!0;else if(s!==".priority"&&s!==".sv"&&(o=!0,!Ky(s)))throw new Error(t+" contains an invalid key ("+s+") "+Qc(r)+`. Keys must be non-empty strings and can't contain ".", "#", "$", "/", "[", or "]"`);Mre(r,s),ag(t,a,r),Lre(r)}),i&&o)throw new Error(t+' contains ".value" child '+Qc(r)+" in addition to actual children.")}},roe=function(t,e){let n,r;for(n=0;n<e.length;n++){r=e[n];let o=$p(r);for(let s=0;s<o.length;s++)if(!(o[s]===".priority"&&s===o.length-1)){if(!Ky(o[s]))throw new Error(t+"contains an invalid key ("+o[s]+") in path "+r.toString()+`. Keys must be non-empty strings and can't contain ".", "#", "$", "/", "[", or "]"`)}}e.sort(Ore);let i=null;for(n=0;n<e.length;n++){if(r=e[n],i!==null&&jr(i,r))throw new Error(t+"contains a path "+i.toString()+" that is ancestor of another path "+r.toString());i=r}},rH=function(t,e,n,r){if(r&&e===void 0)return;let i=Us(t,"values");if(!(e&&typeof e=="object")||Array.isArray(e))throw new Error(i+" must be an object containing the children to replace.");let o=[];dn(e,(s,a)=>{let c=new Be(s);if(ag(i,a,Ct(n,c)),Kw(c)===".priority"&&!Zp(a))throw new Error(i+"contains an invalid value for '"+c.toString()+"', which must be a valid Firebase priority (a string, finite number, server value, or null).");o.push(c)}),roe(i,o)},ioe=function(t,e,n){if(!(n&&e===void 0)){if(By(e))throw new Error(Us(t,"priority")+"is "+e.toString()+", but must be a valid Firebase priority (a string, finite number, server value, or null).");if(!Zp(e))throw new Error(Us(t,"priority")+"must be a valid Firebase priority (a string, finite number, server value, or null).")}},iH=function(t,e,n,r){if(!(r&&n===void 0)&&!Ky(n))throw new Error(Us(t,e)+'was an invalid key = "'+n+`". Firebase keys must be non-empty strings and can't contain ".", "#", "$", "/", "[", or "]").`)},db=function(t,e,n,r){if(!(r&&n===void 0)&&!nH(n))throw new Error(Us(t,e)+'was an invalid path = "'+n+`". Paths must be non-empty strings and can't contain ".", "#", "$", "[", or "]"`)},ooe=function(t,e,n,r){n&&(n=n.replace(/^\/*\.info(\/|$)/,"/")),db(t,e,n,r)},Xs=function(t,e){if(Ne(e)===".info")throw new Error(t+" failed = Can't modify data under /.info/")},soe=function(t,e){let n=e.path.toString();if(typeof e.repoInfo.host!="string"||e.repoInfo.host.length===0||!Ky(e.repoInfo.namespace)&&e.repoInfo.host.split(":")[0]!=="localhost"||n.length!==0&&!noe(n))throw new Error(Us(t,"url")+`must be a valid firebase URL and the path can't contain ".", "#", "$", "[", or "]".`)};var Pw=class{constructor(){this.eventLists_=[],this.recursionDepth_=0}};function Yy(t,e){let n=null;for(let r=0;r<e.length;r++){let i=e[r],o=i.getPath();n!==null&&!Yw(o,n.path)&&(t.eventLists_.push(n),n=null),n===null&&(n={events:[],path:o}),n.events.push(i)}n&&t.eventLists_.push(n)}function oH(t,e,n){Yy(t,n),sH(t,r=>Yw(r,e))}function vr(t,e,n){Yy(t,n),sH(t,r=>jr(r,e)||jr(e,r))}function sH(t,e){t.recursionDepth_++;let n=!0;for(let r=0;r<t.eventLists_.length;r++){let i=t.eventLists_[r];if(i){let o=i.path;e(o)?(aoe(t.eventLists_[r]),t.eventLists_[r]=null):n=!1}}n&&(t.eventLists_=[]),t.recursionDepth_--}function aoe(t){for(let e=0;e<t.events.length;e++){let n=t.events[e];if(n!==null){t.events[e]=null;let r=n.getEventRunner();Zc&&un("event: "+n.toString()),bd(r)}}}var coe="repo_interrupt",loe=25,xw=class{constructor(e,n,r,i){this.repoInfo_=e,this.forceRestClient_=n,this.authTokenProvider_=r,this.appCheckProvider_=i,this.dataUpdateCount=0,this.statsListener_=null,this.eventQueue_=new Pw,this.nextWriteId_=1,this.interceptServerDataCallback_=null,this.onDisconnect_=Cy(),this.transactionQueueTree_=new Jp,this.persistentConnection_=null,this.key=this.repoInfo_.toURLString()}toString(){return(this.repoInfo_.secure?"https://":"http://")+this.repoInfo_.host}};function uoe(t,e,n){if(t.stats_=qw(t.repoInfo_),t.forceRestClient_||are())t.server_=new pw(t.repoInfo_,(r,i,o,s)=>{nj(t,r,i,o,s)},t.authTokenProvider_,t.appCheckProvider_),setTimeout(()=>rj(t,!0),0);else{if(typeof n<"u"&&n!==null){if(typeof n!="object")throw new Error("Only objects are supported for option databaseAuthVariableOverride");try{xt(n)}catch(r){throw new Error("Invalid authOverride provided: "+r)}}t.persistentConnection_=new Xw(t.repoInfo_,e,(r,i,o,s)=>{nj(t,r,i,o,s)},r=>{rj(t,r)},r=>{doe(t,r)},t.authTokenProvider_,t.appCheckProvider_,n),t.server_=t.persistentConnection_}t.authTokenProvider_.addTokenChangeListener(r=>{t.server_.refreshAuthToken(r)}),t.appCheckProvider_.addTokenChangeListener(r=>{t.server_.refreshAppCheckToken(r.token)}),t.statsReporter_=lre(t.repoInfo_,()=>new Tw(t.stats_,t.server_)),t.infoData_=new gw,t.infoSyncTree_=new Py({startListening:(r,i,o,s)=>{let a=[],c=t.infoData_.getNode(r._path);return c.isEmpty()||(a=og(t.infoSyncTree_,r._path,c),setTimeout(()=>{s("ok")},0)),a},stopListening:()=>{}}),hb(t,"connected",!1),t.serverSyncTree_=new Py({startListening:(r,i,o,s)=>(t.server_.listen(r,o,i,(a,c)=>{let l=s(a,c);vr(t.eventQueue_,r._path,l)}),[]),stopListening:(r,i)=>{t.server_.unlisten(r,i)}})}function aH(t){let n=t.infoData_.getNode(new Be(".info/serverTimeOffset")).val()||0;return new Date().getTime()+n}function cg(t){return Kie({timestamp:aH(t)})}function nj(t,e,n,r,i){t.dataUpdateCount++;let o=new Be(e);n=t.interceptServerDataCallback_?t.interceptServerDataCallback_(e,n):n;let s=[];if(i)if(r){let c=pp(n,l=>At(l));s=jie(t.serverSyncTree_,o,c,i)}else{let c=At(n);s=Yj(t.serverSyncTree_,o,c,i)}else if(r){let c=pp(n,l=>At(l));s=Vie(t.serverSyncTree_,o,c)}else{let c=At(n);s=og(t.serverSyncTree_,o,c)}let a=o;s.length>0&&(a=Nd(t,o)),vr(t.eventQueue_,a,s)}function rj(t,e){hb(t,"connected",e),e===!1&&goe(t)}function doe(t,e){dn(e,(n,r)=>{hb(t,n,r)})}function hb(t,e,n){let r=new Be("/.info/"+e),i=At(n);t.infoData_.updateSnapshot(r,i);let o=og(t.infoSyncTree_,r,i);vr(t.eventQueue_,r,o)}function Xy(t){return t.nextWriteId_++}function hoe(t,e,n){let r=Hie(t.serverSyncTree_,e);return r!=null?Promise.resolve(r):t.server_.get(e).then(i=>{let o=At(i).withIndex(e._queryParams.getIndex());bw(t.serverSyncTree_,e,n,!0);let s;if(e._queryParams.loadsAllData())s=og(t.serverSyncTree_,e._path,o);else{let a=Qp(t.serverSyncTree_,e);s=Yj(t.serverSyncTree_,e._path,o,a)}return vr(t.eventQueue_,e._path,s),xy(t.serverSyncTree_,e,n,null,!0),o},i=>(Ld(t,"get for query "+xt(e)+" failed: "+i),Promise.reject(new Error(i))))}function foe(t,e,n,r,i){Ld(t,"set",{path:e.toString(),value:n,priority:r});let o=cg(t),s=At(n,r),a=$y(t.serverSyncTree_,e),c=cb(s,a,o),l=Xy(t),d=ib(t.serverSyncTree_,e,c,l,!0);Yy(t.eventQueue_,d),t.server_.put(e.toString(),s.val(!0),(f,g)=>{let E=f==="ok";E||xn("set at "+e+" failed: "+f);let I=Ys(t.serverSyncTree_,l,!E);vr(t.eventQueue_,e,I),na(t,i,f,g)});let h=pb(t,e);Nd(t,h),vr(t.eventQueue_,h,[])}function poe(t,e,n,r){Ld(t,"update",{path:e.toString(),value:n});let i=!0,o=cg(t),s={};if(dn(n,(a,c)=>{i=!1,s[a]=Zj(Ct(e,a),At(c),t.serverSyncTree_,o)}),i)un("update() called with empty data. Don't do anything."),na(t,r,"ok",void 0);else{let a=Xy(t),c=Uie(t.serverSyncTree_,e,s,a);Yy(t.eventQueue_,c),t.server_.merge(e.toString(),n,(l,d)=>{let h=l==="ok";h||xn("update at "+e+" failed: "+l);let f=Ys(t.serverSyncTree_,a,!h),g=f.length>0?Nd(t,e):e;vr(t.eventQueue_,g,f),na(t,r,l,d)}),dn(n,l=>{let d=pb(t,Ct(e,l));Nd(t,d)}),vr(t.eventQueue_,e,[])}}function goe(t){Ld(t,"onDisconnectEvents");let e=cg(t),n=Cy();Ew(t.onDisconnect_,Ve(),(i,o)=>{let s=Zj(i,o,t.serverSyncTree_,e);Od(n,i,s)});let r=[];Ew(n,Ve(),(i,o)=>{r=r.concat(og(t.serverSyncTree_,i,o));let s=pb(t,i);Nd(t,s)}),t.onDisconnect_=Cy(),vr(t.eventQueue_,Ve(),r)}function moe(t,e,n){t.server_.onDisconnectCancel(e.toString(),(r,i)=>{r==="ok"&&mw(t.onDisconnect_,e),na(t,n,r,i)})}function ij(t,e,n,r){let i=At(n);t.server_.onDisconnectPut(e.toString(),i.val(!0),(o,s)=>{o==="ok"&&Od(t.onDisconnect_,e,i),na(t,r,o,s)})}function Eoe(t,e,n,r,i){let o=At(n,r);t.server_.onDisconnectPut(e.toString(),o.val(!0),(s,a)=>{s==="ok"&&Od(t.onDisconnect_,e,o),na(t,i,s,a)})}function _oe(t,e,n,r){if(fp(n)){un("onDisconnect().update() called with empty data. Don't do anything."),na(t,r,"ok",void 0);return}t.server_.onDisconnectMerge(e.toString(),n,(i,o)=>{i==="ok"&&dn(n,(s,a)=>{let c=At(a);Od(t.onDisconnect_,Ct(e,s),c)}),na(t,r,i,o)})}function Toe(t,e,n){let r;Ne(e._path)===".info"?r=bw(t.infoSyncTree_,e,n):r=bw(t.serverSyncTree_,e,n),oH(t.eventQueue_,e._path,r)}function kw(t,e,n){let r;Ne(e._path)===".info"?r=xy(t.infoSyncTree_,e,n):r=xy(t.serverSyncTree_,e,n),oH(t.eventQueue_,e._path,r)}function yoe(t){t.persistentConnection_&&t.persistentConnection_.interrupt(coe)}function Ld(t,...e){let n="";t.persistentConnection_&&(n=t.persistentConnection_.id+":"),un(n,...e)}function na(t,e,n,r){e&&bd(()=>{if(n==="ok")e(null);else{let i=(n||"error").toUpperCase(),o=i;r&&(o+=": "+r);let s=new Error(o);s.code=i,e(s)}})}function Ioe(t,e,n,r,i,o){Ld(t,"transaction on "+e);let s={path:e,update:n,onComplete:r,status:null,order:cj(),applyLocally:o,retryCount:0,unwatcher:i,abortReason:null,currentWriteId:null,currentInputSnapshot:null,currentOutputSnapshotRaw:null,currentOutputSnapshotResolved:null},a=fb(t,e,void 0);s.currentInputSnapshot=a;let c=s.update(a.val());if(c===void 0)s.unwatcher(),s.currentOutputSnapshotRaw=null,s.currentOutputSnapshotResolved=null,s.onComplete&&s.onComplete(null,!1,s.currentInputSnapshot);else{ag("transaction failed: Data returned ",c,s.path),s.status=0;let l=zy(t.transactionQueueTree_,e),d=ll(l)||[];d.push(s),ub(l,d);let h;typeof c=="object"&&c!==null&&Vr(c,".priority")?(h=Fs(c,".priority"),q(Zp(h),"Invalid priority returned by transaction. Priority must be a valid string, finite number, server value, or null.")):h=($y(t.serverSyncTree_,e)||ve.EMPTY_NODE).getPriority().val();let f=cg(t),g=At(c,h),E=cb(g,a,f);s.currentOutputSnapshotRaw=g,s.currentOutputSnapshotResolved=E,s.currentWriteId=Xy(t);let I=ib(t.serverSyncTree_,e,E,s.currentWriteId,s.applyLocally);vr(t.eventQueue_,e,I),Qy(t,t.transactionQueueTree_)}}function fb(t,e,n){return $y(t.serverSyncTree_,e,n)||ve.EMPTY_NODE}function Qy(t,e=t.transactionQueueTree_){if(e||Jy(t,e),ll(e)){let n=lH(t,e);q(n.length>0,"Sending zero length transaction queue"),n.every(i=>i.status===0)&&voe(t,sg(e),n)}else eH(e)&&qy(e,n=>{Qy(t,n)})}function voe(t,e,n){let r=n.map(l=>l.currentWriteId),i=fb(t,e,r),o=i,s=i.hash();for(let l=0;l<n.length;l++){let d=n[l];q(d.status===0,"tryToSendTransactionQueue_: items in queue should all be run."),d.status=1,d.retryCount++;let h=zn(e,d.path);o=o.updateChild(h,d.currentOutputSnapshotRaw)}let a=o.val(!0),c=e;t.server_.put(c.toString(),a,l=>{Ld(t,"transaction put response",{path:c.toString(),status:l});let d=[];if(l==="ok"){let h=[];for(let f=0;f<n.length;f++)n[f].status=2,d=d.concat(Ys(t.serverSyncTree_,n[f].currentWriteId)),n[f].onComplete&&h.push(()=>n[f].onComplete(null,!0,n[f].currentOutputSnapshotResolved)),n[f].unwatcher();Jy(t,zy(t.transactionQueueTree_,e)),Qy(t,t.transactionQueueTree_),vr(t.eventQueue_,e,d);for(let f=0;f<h.length;f++)bd(h[f])}else{if(l==="datastale")for(let h=0;h<n.length;h++)n[h].status===3?n[h].status=4:n[h].status=0;else{xn("transaction at "+c.toString()+" failed: "+l);for(let h=0;h<n.length;h++)n[h].status=4,n[h].abortReason=l}Nd(t,e)}},s)}function Nd(t,e){let n=cH(t,e),r=sg(n),i=lH(t,n);return Soe(t,i,r),r}function Soe(t,e,n){if(e.length===0)return;let r=[],i=[],s=e.filter(a=>a.status===0).map(a=>a.currentWriteId);for(let a=0;a<e.length;a++){let c=e[a],l=zn(n,c.path),d=!1,h;if(q(l!==null,"rerunTransactionsUnderNode_: relativePath should not be null."),c.status===4)d=!0,h=c.abortReason,i=i.concat(Ys(t.serverSyncTree_,c.currentWriteId,!0));else if(c.status===0)if(c.retryCount>=loe)d=!0,h="maxretry",i=i.concat(Ys(t.serverSyncTree_,c.currentWriteId,!0));else{let f=fb(t,c.path,s);c.currentInputSnapshot=f;let g=e[a].update(f.val());if(g!==void 0){ag("transaction failed: Data returned ",g,c.path);let E=At(g);typeof g=="object"&&g!=null&&Vr(g,".priority")||(E=E.updatePriority(f.getPriority()));let S=c.currentWriteId,L=cg(t),V=cb(E,f,L);c.currentOutputSnapshotRaw=E,c.currentOutputSnapshotResolved=V,c.currentWriteId=Xy(t),s.splice(s.indexOf(S),1),i=i.concat(ib(t.serverSyncTree_,c.path,V,c.currentWriteId,c.applyLocally)),i=i.concat(Ys(t.serverSyncTree_,S,!0))}else d=!0,h="nodata",i=i.concat(Ys(t.serverSyncTree_,c.currentWriteId,!0))}vr(t.eventQueue_,n,i),i=[],d&&(e[a].status=2,(function(f){setTimeout(f,Math.floor(0))})(e[a].unwatcher),e[a].onComplete&&(h==="nodata"?r.push(()=>e[a].onComplete(null,!1,e[a].currentInputSnapshot)):r.push(()=>e[a].onComplete(new Error(h),!1,null))))}Jy(t,t.transactionQueueTree_);for(let a=0;a<r.length;a++)bd(r[a]);Qy(t,t.transactionQueueTree_)}function cH(t,e){let n,r=t.transactionQueueTree_;for(n=Ne(e);n!==null&&ll(r)===void 0;)r=zy(r,n),e=at(e),n=Ne(e);return r}function lH(t,e){let n=[];return uH(t,e,n),n.sort((r,i)=>r.order-i.order),n}function uH(t,e,n){let r=ll(e);if(r)for(let i=0;i<r.length;i++)n.push(r[i]);qy(e,i=>{uH(t,i,n)})}function Jy(t,e){let n=ll(e);if(n){let r=0;for(let i=0;i<n.length;i++)n[i].status!==2&&(n[r]=n[i],r++);n.length=r,ub(e,n.length>0?n:void 0)}qy(e,r=>{Jy(t,r)})}function pb(t,e){let n=sg(cH(t,e)),r=zy(t.transactionQueueTree_,e);return Jie(r,i=>{zN(t,i)}),zN(t,r),tH(r,i=>{zN(t,i)}),n}function zN(t,e){let n=ll(e);if(n){let r=[],i=[],o=-1;for(let s=0;s<n.length;s++)n[s].status===3||(n[s].status===1?(q(o===s-1,"All SENT items should be at beginning of queue."),o=s,n[s].status=3,n[s].abortReason="set"):(q(n[s].status===0,"Unexpected transaction status in abort"),n[s].unwatcher(),i=i.concat(Ys(t.serverSyncTree_,n[s].currentWriteId,!0)),n[s].onComplete&&r.push(n[s].onComplete.bind(null,new Error("set"),!1,null))));o===-1?ub(e,void 0):n.length=o+1,vr(t.eventQueue_,sg(e),i);for(let s=0;s<r.length;s++)bd(r[s])}}function Aoe(t){let e="",n=t.split("/");for(let r=0;r<n.length;r++)if(n[r].length>0){let i=n[r];try{i=decodeURIComponent(i.replace(/\+/g," "))}catch{}e+="/"+i}return e}function Coe(t){let e={};t.charAt(0)==="?"&&(t=t.substring(1));for(let n of t.split("&")){if(n.length===0)continue;let r=n.split("=");r.length===2?e[decodeURIComponent(r[0])]=decodeURIComponent(r[1]):xn(`Invalid query segment '${n}' in query '${t}'`)}return e}var oj=function(t,e){let n=Doe(t),r=n.namespace;n.domain==="firebase.com"&&Wo(n.host+" is no longer supported. Please use <YOUR FIREBASE>.firebaseio.com instead"),(!r||r==="undefined")&&n.domain!=="localhost"&&Wo("Cannot parse Firebase url. Please use https://<YOUR FIREBASE>.firebaseio.com"),n.secure||Jne();let i=n.scheme==="ws"||n.scheme==="wss";return{repoInfo:new my(n.host,n.secure,r,i,e,"",r!==n.subdomain),path:new Be(n.pathString)}},Doe=function(t){let e="",n="",r="",i="",o="",s=!0,a="https",c=443;if(typeof t=="string"){let l=t.indexOf("//");l>=0&&(a=t.substring(0,l-1),t=t.substring(l+2));let d=t.indexOf("/");d===-1&&(d=t.length);let h=t.indexOf("?");h===-1&&(h=t.length),e=t.substring(0,Math.min(d,h)),d<h&&(i=Aoe(t.substring(d,h)));let f=Coe(t.substring(Math.min(t.length,h)));l=e.indexOf(":"),l>=0?(s=a==="https"||a==="wss",c=parseInt(e.substring(l+1),10)):l=e.length;let g=e.slice(0,l);if(g.toLowerCase()==="localhost")n="localhost";else if(g.split(".").length<=2)n=g;else{let E=e.indexOf(".");r=e.substring(0,E).toLowerCase(),n=e.substring(E+1),o=r}"ns"in f&&(o=f.ns)}return{host:e,port:c,domain:n,subdomain:r,secure:s,scheme:a,pathString:i,namespace:o}};var sj="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz",Roe=(function(){let t=0,e=[];return function(n){let r=n===t;t=n;let i,o=new Array(8);for(i=7;i>=0;i--)o[i]=sj.charAt(n%64),n=Math.floor(n/64);q(n===0,"Cannot push at time == 0");let s=o.join("");if(r){for(i=11;i>=0&&e[i]===63;i--)e[i]=0;e[i]++}else for(i=0;i<12;i++)e[i]=Math.floor(Math.random()*64);for(i=0;i<12;i++)s+=sj.charAt(e[i]);return q(s.length===20,"nextPushId: Length should be 20."),s}})();var ky=class{constructor(e,n,r,i){this.eventType=e,this.eventRegistration=n,this.snapshot=r,this.prevName=i}getPath(){let e=this.snapshot.ref;return this.eventType==="value"?e._path:e.parent._path}getEventType(){return this.eventType}getEventRunner(){return this.eventRegistration.getEventRunner(this)}toString(){return this.getPath().toString()+":"+this.eventType+":"+xt(this.snapshot.exportVal())}},Fy=class{constructor(e,n,r){this.eventRegistration=e,this.error=n,this.path=r}getPath(){return this.path}getEventType(){return"cancel"}getEventRunner(){return this.eventRegistration.getEventRunner(this)}toString(){return this.path.toString()+":cancel"}};var eg=class{constructor(e,n){this.snapshotCallback=e,this.cancelCallback=n}onValue(e,n){this.snapshotCallback.call(null,e,n)}onCancel(e){return q(this.hasCancelCallback,"Raising a cancel event on a listener with no cancel callback"),this.cancelCallback.call(null,e)}get hasCancelCallback(){return!!this.cancelCallback}matches(e){return this.snapshotCallback===e.snapshotCallback||this.snapshotCallback.userCallback!==void 0&&this.snapshotCallback.userCallback===e.snapshotCallback.userCallback&&this.snapshotCallback.context===e.snapshotCallback.context}};var Fw=class{constructor(e,n){this._repo=e,this._path=n}cancel(){let e=new cn;return moe(this._repo,this._path,e.wrapCallback(()=>{})),e.promise}remove(){Xs("OnDisconnect.remove",this._path);let e=new cn;return ij(this._repo,this._path,null,e.wrapCallback(()=>{})),e.promise}set(e){Xs("OnDisconnect.set",this._path),rl("OnDisconnect.set",e,this._path,!1);let n=new cn;return ij(this._repo,this._path,e,n.wrapCallback(()=>{})),n.promise}setWithPriority(e,n){Xs("OnDisconnect.setWithPriority",this._path),rl("OnDisconnect.setWithPriority",e,this._path,!1),ioe("OnDisconnect.setWithPriority",n,!1);let r=new cn;return Eoe(this._repo,this._path,e,n,r.wrapCallback(()=>{})),r.promise}update(e){Xs("OnDisconnect.update",this._path),rH("OnDisconnect.update",e,this._path,!1);let n=new cn;return _oe(this._repo,this._path,e,n.wrapCallback(()=>{})),n.promise}};var il=class t{constructor(e,n,r,i){this._repo=e,this._path=n,this._queryParams=r,this._orderByCalled=i}get key(){return we(this._path)?null:Kw(this._path)}get ref(){return new hi(this._repo,this._path)}get _queryIdentifier(){let e=W2(this._queryParams),n=zw(e);return n==="{}"?"default":n}get _queryObject(){return W2(this._queryParams)}isEqual(e){if(e=Me(e),!(e instanceof t))return!1;let n=this._repo===e._repo,r=Yw(this._path,e._path),i=this._queryIdentifier===e._queryIdentifier;return n&&r&&i}toJSON(){return this.toString()}toString(){return this._repo.toString()+bre(this._path)}};function Noe(t,e){if(t._orderByCalled===!0)throw new Error(e+": You can't combine multiple orderBy calls.")}function gb(t){let e=null,n=null;if(t.hasStart()&&(e=t.getIndexStartValue()),t.hasEnd()&&(n=t.getIndexEndValue()),t.getIndex()===el){let r="Query: When ordering by key, you may only pass one argument to startAt(), endAt(), or equalTo().",i="Query: When ordering by key, the argument passed to startAt(), startAfter(), endAt(), endBefore(), or equalTo() must be a string.";if(t.hasStart()){if(t.getIndexStartName()!==tl)throw new Error(r);if(typeof e!="string")throw new Error(i)}if(t.hasEnd()){if(t.getIndexEndName()!==Zs)throw new Error(r);if(typeof n!="string")throw new Error(i)}}else if(t.getIndex()===ft){if(e!=null&&!Zp(e)||n!=null&&!Zp(n))throw new Error("Query: When ordering by priority, the first argument passed to startAt(), startAfter() endAt(), endBefore(), or equalTo() must be a valid priority value (null, a number, or a string).")}else if(q(t.getIndex()instanceof Wp||t.getIndex()===Pj,"unknown index type."),e!=null&&typeof e=="object"||n!=null&&typeof n=="object")throw new Error("Query: First argument passed to startAt(), startAfter(), endAt(), endBefore(), or equalTo() cannot be an object.")}function dH(t){if(t.hasStart()&&t.hasEnd()&&t.hasLimit()&&!t.hasAnchoredLimit())throw new Error("Query: Can't combine startAt(), startAfter(), endAt(), endBefore(), and limit(). Use limitToFirst() or limitToLast() instead.")}var hi=class t extends il{constructor(e,n){super(e,n,new fw,!1)}get parent(){let e=Nj(this._path);return e===null?null:new t(this._repo,e)}get root(){let e=this;for(;e.parent!==null;)e=e.parent;return e}},wd=class t{constructor(e,n,r){this._node=e,this.ref=n,this._index=r}get priority(){return this._node.getPriority().val()}get key(){return this.ref.key}get size(){return this._node.numChildren()}child(e){let n=new Be(e),r=ol(this.ref,e);return new t(this._node.getChild(n),r,ft)}exists(){return!this._node.isEmpty()}exportVal(){return this._node.val(!0)}forEach(e){return this._node.isLeafNode()?!1:!!this._node.forEachChild(this._index,(r,i)=>e(new t(i,ol(this.ref,r),ft)))}hasChild(e){let n=new Be(e);return!this._node.getChild(n).isEmpty()}hasChildren(){return this._node.isLeafNode()?!1:!this._node.isEmpty()}toJSON(){return this.exportVal()}val(){return this._node.val()}};function hH(t,e){return t=Me(t),t._checkNotDeleted("ref"),e!==void 0?ol(t._root,e):t._root}function ol(t,e){return t=Me(t),Ne(t._path)===null?ooe("child","path",e,!1):db("child","path",e,!1),new hi(t._repo,Ct(t._path,e))}function fH(t){return t=Me(t),new Fw(t._repo,t._path)}function pH(t,e){t=Me(t),Xs("push",t._path),rl("push",e,t._path,!0);let n=aH(t._repo),r=Roe(n),i=ol(t,r),o=ol(t,r),s;return e!=null?s=Zy(o,e).then(()=>o):s=Promise.resolve(o),i.then=s.then.bind(s),i.catch=s.then.bind(s,void 0),i}function gH(t){return Xs("remove",t._path),Zy(t,null)}function Zy(t,e){t=Me(t),Xs("set",t._path),rl("set",e,t._path,!1);let n=new cn;return foe(t._repo,t._path,e,null,n.wrapCallback(()=>{})),n.promise}function mH(t,e){rH("update",e,t._path,!1);let n=new cn;return poe(t._repo,t._path,e,n.wrapCallback(()=>{})),n.promise}function eI(t){t=Me(t);let e=new eg(()=>{}),n=new tg(e);return hoe(t._repo,t,n).then(r=>new wd(r,new hi(t._repo,t._path),t._queryParams.getIndex()))}var tg=class t{constructor(e){this.callbackContext=e}respondsTo(e){return e==="value"}createEvent(e,n){let r=n._queryParams.getIndex();return new ky("value",this,new wd(e.snapshotNode,new hi(n._repo,n._path),r))}getEventRunner(e){return e.getEventType()==="cancel"?()=>this.callbackContext.onCancel(e.error):()=>this.callbackContext.onValue(e.snapshot,null)}createCancelEvent(e,n){return this.callbackContext.hasCancelCallback?new Fy(this,e,n):null}matches(e){return e instanceof t?!e.callbackContext||!this.callbackContext?!0:e.callbackContext.matches(this.callbackContext):!1}hasAnyCallback(){return this.callbackContext!==null}},Uy=class t{constructor(e,n){this.eventType=e,this.callbackContext=n}respondsTo(e){let n=e==="children_added"?"child_added":e;return n=n==="children_removed"?"child_removed":n,this.eventType===n}createCancelEvent(e,n){return this.callbackContext.hasCancelCallback?new Fy(this,e,n):null}createEvent(e,n){q(e.childName!=null,"Child events should have a childName.");let r=ol(new hi(n._repo,n._path),e.childName),i=n._queryParams.getIndex();return new ky(e.type,this,new wd(e.snapshotNode,r,i),e.prevName)}getEventRunner(e){return e.getEventType()==="cancel"?()=>this.callbackContext.onCancel(e.error):()=>this.callbackContext.onValue(e.snapshot,e.prevName)}matches(e){return e instanceof t?this.eventType===e.eventType&&(!this.callbackContext||!e.callbackContext||this.callbackContext.matches(e.callbackContext)):!1}hasAnyCallback(){return!!this.callbackContext}};function lg(t,e,n,r,i){let o;if(typeof r=="object"&&(o=void 0,i=r),typeof r=="function"&&(o=r),i&&i.onlyOnce){let c=n,l=(d,h)=>{kw(t._repo,t,a),c(d,h)};l.userCallback=n.userCallback,l.context=n.context,n=l}let s=new eg(n,o||void 0),a=e==="value"?new tg(s):new Uy(e,s);return Toe(t._repo,t,a),()=>kw(t._repo,t,a)}function ug(t,e,n,r){return lg(t,"value",e,n,r)}function tI(t,e,n,r){return lg(t,"child_added",e,n,r)}function nI(t,e,n,r){return lg(t,"child_changed",e,n,r)}function mb(t,e,n,r){return lg(t,"child_moved",e,n,r)}function rI(t,e,n,r){return lg(t,"child_removed",e,n,r)}function iI(t,e,n){let r=null,i=n?new eg(n):null;e==="value"?r=new tg(i):e&&(r=new Uy(e,i)),kw(t._repo,t,r)}var sl=class{},Uw=class extends sl{constructor(e,n){super(),this._value=e,this._key=n,this.type="endAt"}_apply(e){rl("endAt",this._value,e._path,!0);let n=Kre(e._queryParams,this._value,this._key);if(dH(n),gb(n),e._queryParams.hasEnd())throw new Error("endAt: Starting point was already set (by another call to endAt, endBefore or equalTo).");return new il(e._repo,e._path,n,e._orderByCalled)}};var Vy=class extends sl{constructor(e,n){super(),this._value=e,this._key=n,this.type="startAt"}_apply(e){rl("startAt",this._value,e._path,!0);let n=qre(e._queryParams,this._value,this._key);if(dH(n),gb(n),e._queryParams.hasStart())throw new Error("startAt: Starting point was already set (by another call to startAt, startBefore or equalTo).");return new il(e._repo,e._path,n,e._orderByCalled)}};function EH(t=null,e){return iH("startAt","key",e,!0),new Vy(t,e)}var Vw=class extends sl{constructor(e){super(),this._limit=e,this.type="limitToLast"}_apply(e){if(e._queryParams.hasLimit())throw new Error("limitToLast: Limit was already set (by another call to limitToFirst or limitToLast).");return new il(e._repo,e._path,zre(e._queryParams,this._limit),e._orderByCalled)}};function _H(t){if(typeof t!="number"||Math.floor(t)!==t||t<=0)throw new Error("limitToLast: First argument must be a positive integer.");return new Vw(t)}var Bw=class extends sl{constructor(e){super(),this._path=e,this.type="orderByChild"}_apply(e){Noe(e,"orderByChild");let n=new Be(this._path);if(we(n))throw new Error("orderByChild: cannot pass in empty path. Use orderByValue() instead.");let r=new Wp(n),i=Yre(e._queryParams,r);return gb(i),new il(e._repo,e._path,i,!0)}};function TH(t){if(t==="$key")throw new Error('orderByChild: "$key" is invalid. Use orderByKey() instead.');if(t==="$priority")throw new Error('orderByChild: "$priority" is invalid. Use orderByPriority() instead.');if(t==="$value")throw new Error('orderByChild: "$value" is invalid. Use orderByValue() instead.');return db("orderByChild","path",t,!1),new Bw(t)}var Gw=class extends sl{constructor(e,n){super(),this._value=e,this._key=n,this.type="equalTo"}_apply(e){if(rl("equalTo",this._value,e._path,!1),e._queryParams.hasStart())throw new Error("equalTo: Starting point was already set (by another call to startAt/startAfter or equalTo).");if(e._queryParams.hasEnd())throw new Error("equalTo: Ending point was already set (by another call to endAt/endBefore or equalTo).");return new Uw(this._value,this._key)._apply(new Vy(this._value,this._key)._apply(e))}};function yH(t,e){return iH("equalTo","key",e,!0),new Gw(t,e)}function IH(t,...e){let n=Me(t);for(let r of e)n=r._apply(n);return n}bie(hi);xie(hi);var woe="FIREBASE_DATABASE_EMULATOR_HOST",jw={},boe=!1;function Ooe(t,e,n,r){let i=e.lastIndexOf(":"),o=e.substring(0,i),s=_r(o);t.repoInfo_=new my(e,s,t.repoInfo_.namespace,t.repoInfo_.webSocketOnly,t.repoInfo_.nodeAdmin,t.repoInfo_.persistenceKey,t.repoInfo_.includeNamespaceInQueryParams,!0,n),r&&(t.authTokenProvider_=r)}function Moe(t,e,n,r,i){let o=r||t.options.databaseURL;o===void 0&&(t.options.projectId||Wo("Can't determine Firebase Database URL. Be sure to include a Project ID when calling firebase.initializeApp()."),un("Using default host for project ",t.options.projectId),o=`${t.options.projectId}-default-rtdb.firebaseio.com`);let s=oj(o,i),a=s.repoInfo,c,l;typeof process<"u"&&process.env&&(l=process.env[woe]),l?(c=!0,o=`http://${l}?ns=${a.namespace}`,s=oj(o,i),a=s.repoInfo):c=!s.repoInfo.secure;let d=i&&c?new Bp(Bp.OWNER):new JN(t.name,t.options,e);soe("Invalid Firebase Database URL",s),we(s.path)||Wo("Database URL must point to the root of a Firebase Database (not including a child path).");let h=Poe(a,t,d,new QN(t,n));return new Hw(h,t)}function Loe(t,e){let n=jw[e];(!n||n[t.key]!==t)&&Wo(`Database ${e}(${t.repoInfo_}) has already been deleted.`),yoe(t),delete n[t.key]}function Poe(t,e,n,r){let i=jw[e.name];i||(i={},jw[e.name]=i);let o=i[t.toURLString()];return o&&Wo("Database initialized multiple times. Please make sure the format of the database URL matches with each database() call."),o=new xw(t,boe,n,r),i[t.toURLString()]=o,o}var Hw=class{constructor(e,n){this._repoInternal=e,this.app=n,this.type="database",this._instanceStarted=!1}get _repo(){return this._instanceStarted||(uoe(this._repoInternal,this.app.options.appId,this.app.options.databaseAuthVariableOverride),this._instanceStarted=!0),this._repoInternal}get _root(){return this._rootInternal||(this._rootInternal=new hi(this._repo,Ve())),this._rootInternal}_delete(){return this._rootInternal!==null&&(Loe(this._repo,this.app.name),this._repoInternal=null,this._rootInternal=null),Promise.resolve()}_checkNotDeleted(e){this._rootInternal===null&&Wo("Cannot call "+e+" on a deleted database.")}};function xoe(){Rj.IS_TRANSPORT_INITIALIZED&&xn("Transport has already been initialized. Please call this function before calling ref or setting up a listener")}function Eb(){xoe(),Td.forceDisallow(),Ey.forceAllow()}function Pd(t=er(),e){let n=Xi(t,"database").getImmediate({identifier:e});if(!n._instanceStarted){let r=ld("database");r&&vH(n,...r)}return n}function vH(t,e,n,r={}){t=Me(t),t._checkNotDeleted("useEmulator");let i=`${e}:${n}`,o=t._repoInternal;if(t._instanceStarted){if(i===t._repoInternal.repoInfo_.host&&oi(r,o.repoInfo_.emulatorOptions))return;Wo("connectDatabaseEmulator() cannot initialize or alter the emulator configuration after the database instance has started.")}let s;if(o.repoInfo_.nodeAdmin)r.mockUserToken&&Wo('mockUserToken is not supported by the Admin SDK. For client access with mock users, please use the "firebase" package instead of "firebase-admin".'),s=new Bp(Bp.OWNER);else if(r.mockUserToken){let a=typeof r.mockUserToken=="string"?r.mockUserToken:FT(r.mockUserToken,t.app.options.projectId);s=new Bp(a)}_r(e)&&(ks(e),Fc("Database",!0)),Ooe(o,i,r,s)}function koe(t){Xne(Bs),$n(new Xt("database",(e,{instanceIdentifier:n})=>{let r=e.getProvider("app").getImmediate(),i=e.getProvider("auth-internal"),o=e.getProvider("app-check-internal");return Moe(r,i,o,n)},"PUBLIC").setMultipleInstances(!0)),Ge(N2,w2,t),Ge(N2,w2,"esm2017")}var $w=class{constructor(e,n){this.committed=e,this.snapshot=n}toJSON(){return{committed:this.committed,snapshot:this.snapshot.toJSON()}}};function SH(t,e,n){var r;if(t=Me(t),Xs("Reference.transaction",t._path),t.key===".length"||t.key===".keys")throw"Reference.transaction failed: "+t.key+" is a read-only object.";let i=(r=n?.applyLocally)!==null&&r!==void 0?r:!0,o=new cn,s=(c,l,d)=>{let h=null;c?o.reject(c):(h=new wd(d,new hi(t._repo,t._path),ft),o.resolve(new $w(l,h)))},a=ug(t,()=>{});return Ioe(t._repo,t._path,e,s,a,i),o.promise}Xw.prototype.simpleListen=function(t,e){this.sendRequest("q",{p:t},e)};Xw.prototype.echo=function(t,e){this.sendRequest("echo",{d:t},e)};koe();var ul,hn=(function(t){return t.added="child_added",t.removed="child_removed",t.changed="child_changed",t.moved="child_moved",t.value="value",t})(hn||{}),Foe=Object.freeze((ul={},ul[hn.added]=tI,ul[hn.removed]=rI,ul[hn.changed]=nI,ul[hn.moved]=mb,ul[hn.value]=ug,ul));function sI(t,e){return new fe(function(n){var r=Foe[e](t,function(i,o){n.next({snapshot:i,prevKey:o,event:e})},n.error.bind(n));return{unsubscribe:function(){iI(t,e,r)}}}).pipe(cS(0))}var oI=function(){return oI=Object.assign||function(e){for(var n,r=1,i=arguments.length;r<i;r++){n=arguments[r];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},oI.apply(this,arguments)};function _b(t,e,n){if(n||arguments.length===2)for(var r=0,i=e.length,o;r<i;r++)(o||!(r in e))&&(o||(o=Array.prototype.slice.call(e,0,r)),o[r]=e[r]);return t.concat(o||Array.prototype.slice.call(e))}function AH(t){return(t==null||t.length===0)&&(t=[hn.added,hn.removed,hn.changed,hn.moved]),t}function CH(t,e){return e===void 0&&(e={}),sI(t,hn.value).pipe(De(function(n){return Tb(n,e)}))}function Tb(t,e){var n;e===void 0&&(e={});var r=t.snapshot.val();return!t.snapshot.exists()||typeof r!="object"?r:oI(oI({},r),e.keyField?(n={},n[e.keyField]=t.snapshot.key,n):null)}function DH(t,e){e===void 0&&(e={});var n=AH(e.events),r=n.map(function(i){return sI(t,i)});return gs.apply(void 0,r)}function Uoe(t){return cr(eI(t)).pipe(De(function(e){var n=hn.value;return{snapshot:e,prevKey:null,event:n}}))}function RH(t,e){e===void 0&&(e={});var n=AH(e.events);return Uoe(t).pipe(Mr(function(r){var i=[lt(r)];return n.forEach(function(o){i.push(sI(t,o))}),gs.apply(void 0,i).pipe(Zm(Boe,[]))}),yo())}function NH(t,e){return e===void 0&&(e={}),RH(t).pipe(De(function(n){return n.map(function(r){return Tb(r,e)})}))}function wH(t,e){for(var n=t.length,r=0;r<n;r++)if(t[r].snapshot.key===e)return r;return-1}function Voe(t,e){if(e==null)return 0;var n=wH(t,e);return n===-1?t.length:n+1}function Boe(t,e){var n=e.snapshot,r=e.prevKey,i=e.event,o=n.key,s=wH(t,o),a=Voe(t,r||void 0);switch(i){case hn.value:if(e.snapshot&&e.snapshot.exists()){var c=null;e.snapshot.forEach(function(h){var f={snapshot:h,event:hn.value,prevKey:c};return c=h.key,t=_b(_b([],t,!0),[f],!1),!1})}return t;case hn.added:if(s>-1){var l=t[s-1];(l&&l.snapshot.key||null)!==r&&(t=t.filter(function(h){return h.snapshot.key!==n.key}),t.splice(a,0,e))}else{if(r==null)return _b([e],t,!0);t=t.slice(),t.splice(a,0,e)}return t;case hn.removed:return t.filter(function(h){return h.snapshot.key!==n.key});case hn.changed:return t.map(function(h){return h.snapshot.key===o?e:h});case hn.moved:if(s>-1){var d=t.splice(s,1)[0];return t=t.slice(),t.splice(a,0,d),t}return t;default:return t}}var dg=class{constructor(e){return e}},bH="database",yb=class{constructor(){return Go(bH)}};var Ib=new z("angularfire2.database-instances");function Goe(t,e){let n=Gs(bH,t,e);return n&&new dg(n)}function joe(t){return(e,n)=>{let r=e.runOutsideAngular(()=>t(n));return new dg(r)}}var Hoe={provide:yb,deps:[[new zt,Ib]]},$oe={provide:dg,useFactory:Goe,deps:[[new zt,Ib],ci]};function sFe(t,...e){return Ge("angularfire",si.full,"rtdb"),Xn([$oe,Hoe,{provide:Ib,useFactory:joe(t),multi:!0,deps:[Ae,ze,ai,jo,[new zt,$c],[new zt,Hs],...e]}])}var OH=ue(NH,!0);var MH=ue(CH,!0),LH=ue(DH,!0);var aFe=ue(yH,!0,2);var hg=ue(eI,!0),cFe=ue(Pd,!0);var lFe=ue(_H,!0,2),PH=ue(iI,!0),xH=ue(tI,!0),kH=ue(nI,!0);var FH=ue(rI,!0),UH=ue(fH,!0),vb=ue(ug,!0),uFe=ue(TH,!0,2);var VH=ue(pH,!0,2),BH=ue(IH,!0,2),xd=ue(hH,!0,2);var GH=ue(gH,!0,2),jH=ue(SH,!0),HH=ue(Zy,!0,2);var dFe=ue(EH,!0,2),$H=ue(mH,!0,2);var WH=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},zH={};var zo,Sb;(function(){var t;function e(C,v){function A(){}A.prototype=v.prototype,C.D=v.prototype,C.prototype=new A,C.prototype.constructor=C,C.C=function(R,N,O){for(var D=Array(arguments.length-2),Vn=2;Vn<arguments.length;Vn++)D[Vn-2]=arguments[Vn];return v.prototype[N].apply(R,D)}}function n(){this.blockSize=-1}function r(){this.blockSize=-1,this.blockSize=64,this.g=Array(4),this.B=Array(this.blockSize),this.o=this.h=0,this.s()}e(r,n),r.prototype.s=function(){this.g[0]=1732584193,this.g[1]=4023233417,this.g[2]=2562383102,this.g[3]=271733878,this.o=this.h=0};function i(C,v,A){A||(A=0);var R=Array(16);if(typeof v=="string")for(var N=0;16>N;++N)R[N]=v.charCodeAt(A++)|v.charCodeAt(A++)<<8|v.charCodeAt(A++)<<16|v.charCodeAt(A++)<<24;else for(N=0;16>N;++N)R[N]=v[A++]|v[A++]<<8|v[A++]<<16|v[A++]<<24;v=C.g[0],A=C.g[1],N=C.g[2];var O=C.g[3],D=v+(O^A&(N^O))+R[0]+3614090360&4294967295;v=A+(D<<7&4294967295|D>>>25),D=O+(N^v&(A^N))+R[1]+3905402710&4294967295,O=v+(D<<12&4294967295|D>>>20),D=N+(A^O&(v^A))+R[2]+606105819&4294967295,N=O+(D<<17&4294967295|D>>>15),D=A+(v^N&(O^v))+R[3]+3250441966&4294967295,A=N+(D<<22&4294967295|D>>>10),D=v+(O^A&(N^O))+R[4]+4118548399&4294967295,v=A+(D<<7&4294967295|D>>>25),D=O+(N^v&(A^N))+R[5]+1200080426&4294967295,O=v+(D<<12&4294967295|D>>>20),D=N+(A^O&(v^A))+R[6]+2821735955&4294967295,N=O+(D<<17&4294967295|D>>>15),D=A+(v^N&(O^v))+R[7]+4249261313&4294967295,A=N+(D<<22&4294967295|D>>>10),D=v+(O^A&(N^O))+R[8]+1770035416&4294967295,v=A+(D<<7&4294967295|D>>>25),D=O+(N^v&(A^N))+R[9]+2336552879&4294967295,O=v+(D<<12&4294967295|D>>>20),D=N+(A^O&(v^A))+R[10]+4294925233&4294967295,N=O+(D<<17&4294967295|D>>>15),D=A+(v^N&(O^v))+R[11]+2304563134&4294967295,A=N+(D<<22&4294967295|D>>>10),D=v+(O^A&(N^O))+R[12]+1804603682&4294967295,v=A+(D<<7&4294967295|D>>>25),D=O+(N^v&(A^N))+R[13]+4254626195&4294967295,O=v+(D<<12&4294967295|D>>>20),D=N+(A^O&(v^A))+R[14]+2792965006&4294967295,N=O+(D<<17&4294967295|D>>>15),D=A+(v^N&(O^v))+R[15]+1236535329&4294967295,A=N+(D<<22&4294967295|D>>>10),D=v+(N^O&(A^N))+R[1]+4129170786&4294967295,v=A+(D<<5&4294967295|D>>>27),D=O+(A^N&(v^A))+R[6]+3225465664&4294967295,O=v+(D<<9&4294967295|D>>>23),D=N+(v^A&(O^v))+R[11]+643717713&4294967295,N=O+(D<<14&4294967295|D>>>18),D=A+(O^v&(N^O))+R[0]+3921069994&4294967295,A=N+(D<<20&4294967295|D>>>12),D=v+(N^O&(A^N))+R[5]+3593408605&4294967295,v=A+(D<<5&4294967295|D>>>27),D=O+(A^N&(v^A))+R[10]+38016083&4294967295,O=v+(D<<9&4294967295|D>>>23),D=N+(v^A&(O^v))+R[15]+3634488961&4294967295,N=O+(D<<14&4294967295|D>>>18),D=A+(O^v&(N^O))+R[4]+3889429448&4294967295,A=N+(D<<20&4294967295|D>>>12),D=v+(N^O&(A^N))+R[9]+568446438&4294967295,v=A+(D<<5&4294967295|D>>>27),D=O+(A^N&(v^A))+R[14]+3275163606&4294967295,O=v+(D<<9&4294967295|D>>>23),D=N+(v^A&(O^v))+R[3]+4107603335&4294967295,N=O+(D<<14&4294967295|D>>>18),D=A+(O^v&(N^O))+R[8]+1163531501&4294967295,A=N+(D<<20&4294967295|D>>>12),D=v+(N^O&(A^N))+R[13]+2850285829&4294967295,v=A+(D<<5&4294967295|D>>>27),D=O+(A^N&(v^A))+R[2]+4243563512&4294967295,O=v+(D<<9&4294967295|D>>>23),D=N+(v^A&(O^v))+R[7]+1735328473&4294967295,N=O+(D<<14&4294967295|D>>>18),D=A+(O^v&(N^O))+R[12]+2368359562&4294967295,A=N+(D<<20&4294967295|D>>>12),D=v+(A^N^O)+R[5]+4294588738&4294967295,v=A+(D<<4&4294967295|D>>>28),D=O+(v^A^N)+R[8]+2272392833&4294967295,O=v+(D<<11&4294967295|D>>>21),D=N+(O^v^A)+R[11]+1839030562&4294967295,N=O+(D<<16&4294967295|D>>>16),D=A+(N^O^v)+R[14]+4259657740&4294967295,A=N+(D<<23&4294967295|D>>>9),D=v+(A^N^O)+R[1]+2763975236&4294967295,v=A+(D<<4&4294967295|D>>>28),D=O+(v^A^N)+R[4]+1272893353&4294967295,O=v+(D<<11&4294967295|D>>>21),D=N+(O^v^A)+R[7]+4139469664&4294967295,N=O+(D<<16&4294967295|D>>>16),D=A+(N^O^v)+R[10]+3200236656&4294967295,A=N+(D<<23&4294967295|D>>>9),D=v+(A^N^O)+R[13]+681279174&4294967295,v=A+(D<<4&4294967295|D>>>28),D=O+(v^A^N)+R[0]+3936430074&4294967295,O=v+(D<<11&4294967295|D>>>21),D=N+(O^v^A)+R[3]+3572445317&4294967295,N=O+(D<<16&4294967295|D>>>16),D=A+(N^O^v)+R[6]+76029189&4294967295,A=N+(D<<23&4294967295|D>>>9),D=v+(A^N^O)+R[9]+3654602809&4294967295,v=A+(D<<4&4294967295|D>>>28),D=O+(v^A^N)+R[12]+3873151461&4294967295,O=v+(D<<11&4294967295|D>>>21),D=N+(O^v^A)+R[15]+530742520&4294967295,N=O+(D<<16&4294967295|D>>>16),D=A+(N^O^v)+R[2]+3299628645&4294967295,A=N+(D<<23&4294967295|D>>>9),D=v+(N^(A|~O))+R[0]+4096336452&4294967295,v=A+(D<<6&4294967295|D>>>26),D=O+(A^(v|~N))+R[7]+1126891415&4294967295,O=v+(D<<10&4294967295|D>>>22),D=N+(v^(O|~A))+R[14]+2878612391&4294967295,N=O+(D<<15&4294967295|D>>>17),D=A+(O^(N|~v))+R[5]+4237533241&4294967295,A=N+(D<<21&4294967295|D>>>11),D=v+(N^(A|~O))+R[12]+1700485571&4294967295,v=A+(D<<6&4294967295|D>>>26),D=O+(A^(v|~N))+R[3]+2399980690&4294967295,O=v+(D<<10&4294967295|D>>>22),D=N+(v^(O|~A))+R[10]+4293915773&4294967295,N=O+(D<<15&4294967295|D>>>17),D=A+(O^(N|~v))+R[1]+2240044497&4294967295,A=N+(D<<21&4294967295|D>>>11),D=v+(N^(A|~O))+R[8]+1873313359&4294967295,v=A+(D<<6&4294967295|D>>>26),D=O+(A^(v|~N))+R[15]+4264355552&4294967295,O=v+(D<<10&4294967295|D>>>22),D=N+(v^(O|~A))+R[6]+2734768916&4294967295,N=O+(D<<15&4294967295|D>>>17),D=A+(O^(N|~v))+R[13]+1309151649&4294967295,A=N+(D<<21&4294967295|D>>>11),D=v+(N^(A|~O))+R[4]+4149444226&4294967295,v=A+(D<<6&4294967295|D>>>26),D=O+(A^(v|~N))+R[11]+3174756917&4294967295,O=v+(D<<10&4294967295|D>>>22),D=N+(v^(O|~A))+R[2]+718787259&4294967295,N=O+(D<<15&4294967295|D>>>17),D=A+(O^(N|~v))+R[9]+3951481745&4294967295,C.g[0]=C.g[0]+v&4294967295,C.g[1]=C.g[1]+(N+(D<<21&4294967295|D>>>11))&4294967295,C.g[2]=C.g[2]+N&4294967295,C.g[3]=C.g[3]+O&4294967295}r.prototype.u=function(C,v){v===void 0&&(v=C.length);for(var A=v-this.blockSize,R=this.B,N=this.h,O=0;O<v;){if(N==0)for(;O<=A;)i(this,C,O),O+=this.blockSize;if(typeof C=="string"){for(;O<v;)if(R[N++]=C.charCodeAt(O++),N==this.blockSize){i(this,R),N=0;break}}else for(;O<v;)if(R[N++]=C[O++],N==this.blockSize){i(this,R),N=0;break}}this.h=N,this.o+=v},r.prototype.v=function(){var C=Array((56>this.h?this.blockSize:2*this.blockSize)-this.h);C[0]=128;for(var v=1;v<C.length-8;++v)C[v]=0;var A=8*this.o;for(v=C.length-8;v<C.length;++v)C[v]=A&255,A/=256;for(this.u(C),C=Array(16),v=A=0;4>v;++v)for(var R=0;32>R;R+=8)C[A++]=this.g[v]>>>R&255;return C};function o(C,v){var A=a;return Object.prototype.hasOwnProperty.call(A,C)?A[C]:A[C]=v(C)}function s(C,v){this.h=v;for(var A=[],R=!0,N=C.length-1;0<=N;N--){var O=C[N]|0;R&&O==v||(A[N]=O,R=!1)}this.g=A}var a={};function c(C){return-128<=C&&128>C?o(C,function(v){return new s([v|0],0>v?-1:0)}):new s([C|0],0>C?-1:0)}function l(C){if(isNaN(C)||!isFinite(C))return h;if(0>C)return S(l(-C));for(var v=[],A=1,R=0;C>=A;R++)v[R]=C/A|0,A*=4294967296;return new s(v,0)}function d(C,v){if(C.length==0)throw Error("number format error: empty string");if(v=v||10,2>v||36<v)throw Error("radix out of range: "+v);if(C.charAt(0)=="-")return S(d(C.substring(1),v));if(0<=C.indexOf("-"))throw Error('number format error: interior "-" character');for(var A=l(Math.pow(v,8)),R=h,N=0;N<C.length;N+=8){var O=Math.min(8,C.length-N),D=parseInt(C.substring(N,N+O),v);8>O?(O=l(Math.pow(v,O)),R=R.j(O).add(l(D))):(R=R.j(A),R=R.add(l(D)))}return R}var h=c(0),f=c(1),g=c(16777216);t=s.prototype,t.m=function(){if(I(this))return-S(this).m();for(var C=0,v=1,A=0;A<this.g.length;A++){var R=this.i(A);C+=(0<=R?R:4294967296+R)*v,v*=4294967296}return C},t.toString=function(C){if(C=C||10,2>C||36<C)throw Error("radix out of range: "+C);if(E(this))return"0";if(I(this))return"-"+S(this).toString(C);for(var v=l(Math.pow(C,6)),A=this,R="";;){var N=oe(A,v).g;A=L(A,N.j(v));var O=((0<A.g.length?A.g[0]:A.h)>>>0).toString(C);if(A=N,E(A))return O+R;for(;6>O.length;)O="0"+O;R=O+R}},t.i=function(C){return 0>C?0:C<this.g.length?this.g[C]:this.h};function E(C){if(C.h!=0)return!1;for(var v=0;v<C.g.length;v++)if(C.g[v]!=0)return!1;return!0}function I(C){return C.h==-1}t.l=function(C){return C=L(this,C),I(C)?-1:E(C)?0:1};function S(C){for(var v=C.g.length,A=[],R=0;R<v;R++)A[R]=~C.g[R];return new s(A,~C.h).add(f)}t.abs=function(){return I(this)?S(this):this},t.add=function(C){for(var v=Math.max(this.g.length,C.g.length),A=[],R=0,N=0;N<=v;N++){var O=R+(this.i(N)&65535)+(C.i(N)&65535),D=(O>>>16)+(this.i(N)>>>16)+(C.i(N)>>>16);R=D>>>16,O&=65535,D&=65535,A[N]=D<<16|O}return new s(A,A[A.length-1]&-2147483648?-1:0)};function L(C,v){return C.add(S(v))}t.j=function(C){if(E(this)||E(C))return h;if(I(this))return I(C)?S(this).j(S(C)):S(S(this).j(C));if(I(C))return S(this.j(S(C)));if(0>this.l(g)&&0>C.l(g))return l(this.m()*C.m());for(var v=this.g.length+C.g.length,A=[],R=0;R<2*v;R++)A[R]=0;for(R=0;R<this.g.length;R++)for(var N=0;N<C.g.length;N++){var O=this.i(R)>>>16,D=this.i(R)&65535,Vn=C.i(N)>>>16,es=C.i(N)&65535;A[2*R+2*N]+=D*es,V(A,2*R+2*N),A[2*R+2*N+1]+=O*es,V(A,2*R+2*N+1),A[2*R+2*N+1]+=D*Vn,V(A,2*R+2*N+1),A[2*R+2*N+2]+=O*Vn,V(A,2*R+2*N+2)}for(R=0;R<v;R++)A[R]=A[2*R+1]<<16|A[2*R];for(R=v;R<2*v;R++)A[R]=0;return new s(A,0)};function V(C,v){for(;(C[v]&65535)!=C[v];)C[v+1]+=C[v]>>>16,C[v]&=65535,v++}function K(C,v){this.g=C,this.h=v}function oe(C,v){if(E(v))throw Error("division by zero");if(E(C))return new K(h,h);if(I(C))return v=oe(S(C),v),new K(S(v.g),S(v.h));if(I(v))return v=oe(C,S(v)),new K(S(v.g),v.h);if(30<C.g.length){if(I(C)||I(v))throw Error("slowDivide_ only works with positive integers.");for(var A=f,R=v;0>=R.l(C);)A=ge(A),R=ge(R);var N=te(A,1),O=te(R,1);for(R=te(R,2),A=te(A,2);!E(R);){var D=O.add(R);0>=D.l(C)&&(N=N.add(A),O=D),R=te(R,1),A=te(A,1)}return v=L(C,N.j(v)),new K(N,v)}for(N=h;0<=C.l(v);){for(A=Math.max(1,Math.floor(C.m()/v.m())),R=Math.ceil(Math.log(A)/Math.LN2),R=48>=R?1:Math.pow(2,R-48),O=l(A),D=O.j(v);I(D)||0<D.l(C);)A-=R,O=l(A),D=O.j(v);E(O)&&(O=f),N=N.add(O),C=L(C,D)}return new K(N,C)}t.A=function(C){return oe(this,C).h},t.and=function(C){for(var v=Math.max(this.g.length,C.g.length),A=[],R=0;R<v;R++)A[R]=this.i(R)&C.i(R);return new s(A,this.h&C.h)},t.or=function(C){for(var v=Math.max(this.g.length,C.g.length),A=[],R=0;R<v;R++)A[R]=this.i(R)|C.i(R);return new s(A,this.h|C.h)},t.xor=function(C){for(var v=Math.max(this.g.length,C.g.length),A=[],R=0;R<v;R++)A[R]=this.i(R)^C.i(R);return new s(A,this.h^C.h)};function ge(C){for(var v=C.g.length+1,A=[],R=0;R<v;R++)A[R]=C.i(R)<<1|C.i(R-1)>>>31;return new s(A,C.h)}function te(C,v){var A=v>>5;v%=32;for(var R=C.g.length-A,N=[],O=0;O<R;O++)N[O]=0<v?C.i(O+A)>>>v|C.i(O+A+1)<<32-v:C.i(O+A);return new s(N,C.h)}r.prototype.digest=r.prototype.v,r.prototype.reset=r.prototype.s,r.prototype.update=r.prototype.u,Sb=zH.Md5=r,s.prototype.add=s.prototype.add,s.prototype.multiply=s.prototype.j,s.prototype.modulo=s.prototype.A,s.prototype.compare=s.prototype.l,s.prototype.toNumber=s.prototype.m,s.prototype.toString=s.prototype.toString,s.prototype.getBits=s.prototype.i,s.fromNumber=l,s.fromString=d,zo=zH.Integer=s}).apply(typeof WH<"u"?WH:typeof self<"u"?self:typeof window<"u"?window:{});var aI=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},qo={};var Ab,Woe,kd,Cb,fg,cI,Db,Rb,Nb;(function(){var t,e=typeof Object.defineProperties=="function"?Object.defineProperty:function(u,p,m){return u==Array.prototype||u==Object.prototype||(u[p]=m.value),u};function n(u){u=[typeof globalThis=="object"&&globalThis,u,typeof window=="object"&&window,typeof self=="object"&&self,typeof aI=="object"&&aI];for(var p=0;p<u.length;++p){var m=u[p];if(m&&m.Math==Math)return m}throw Error("Cannot find global object")}var r=n(this);function i(u,p){if(p)e:{var m=r;u=u.split(".");for(var _=0;_<u.length-1;_++){var b=u[_];if(!(b in m))break e;m=m[b]}u=u[u.length-1],_=m[u],p=p(_),p!=_&&p!=null&&e(m,u,{configurable:!0,writable:!0,value:p})}}function o(u,p){u instanceof String&&(u+="");var m=0,_=!1,b={next:function(){if(!_&&m<u.length){var k=m++;return{value:p(k,u[k]),done:!1}}return _=!0,{done:!0,value:void 0}}};return b[Symbol.iterator]=function(){return b},b}i("Array.prototype.values",function(u){return u||function(){return o(this,function(p,m){return m})}});var s=s||{},a=this||self;function c(u){var p=typeof u;return p=p!="object"?p:u?Array.isArray(u)?"array":p:"null",p=="array"||p=="object"&&typeof u.length=="number"}function l(u){var p=typeof u;return p=="object"&&u!=null||p=="function"}function d(u,p,m){return u.call.apply(u.bind,arguments)}function h(u,p,m){if(!u)throw Error();if(2<arguments.length){var _=Array.prototype.slice.call(arguments,2);return function(){var b=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(b,_),u.apply(p,b)}}return function(){return u.apply(p,arguments)}}function f(u,p,m){return f=Function.prototype.bind&&Function.prototype.bind.toString().indexOf("native code")!=-1?d:h,f.apply(null,arguments)}function g(u,p){var m=Array.prototype.slice.call(arguments,1);return function(){var _=m.slice();return _.push.apply(_,arguments),u.apply(this,_)}}function E(u,p){function m(){}m.prototype=p.prototype,u.aa=p.prototype,u.prototype=new m,u.prototype.constructor=u,u.Qb=function(_,b,k){for(var X=Array(arguments.length-2),it=2;it<arguments.length;it++)X[it-2]=arguments[it];return p.prototype[b].apply(_,X)}}function I(u){let p=u.length;if(0<p){let m=Array(p);for(let _=0;_<p;_++)m[_]=u[_];return m}return[]}function S(u,p){for(let m=1;m<arguments.length;m++){let _=arguments[m];if(c(_)){let b=u.length||0,k=_.length||0;u.length=b+k;for(let X=0;X<k;X++)u[b+X]=_[X]}else u.push(_)}}class L{constructor(p,m){this.i=p,this.j=m,this.h=0,this.g=null}get(){let p;return 0<this.h?(this.h--,p=this.g,this.g=p.next,p.next=null):p=this.i(),p}}function V(u){return/^[\s\xa0]*$/.test(u)}function K(){var u=a.navigator;return u&&(u=u.userAgent)?u:""}function oe(u){return oe[" "](u),u}oe[" "]=function(){};var ge=K().indexOf("Gecko")!=-1&&!(K().toLowerCase().indexOf("webkit")!=-1&&K().indexOf("Edge")==-1)&&!(K().indexOf("Trident")!=-1||K().indexOf("MSIE")!=-1)&&K().indexOf("Edge")==-1;function te(u,p,m){for(let _ in u)p.call(m,u[_],_,u)}function C(u,p){for(let m in u)p.call(void 0,u[m],m,u)}function v(u){let p={};for(let m in u)p[m]=u[m];return p}let A="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function R(u,p){let m,_;for(let b=1;b<arguments.length;b++){_=arguments[b];for(m in _)u[m]=_[m];for(let k=0;k<A.length;k++)m=A[k],Object.prototype.hasOwnProperty.call(_,m)&&(u[m]=_[m])}}function N(u){var p=1;u=u.split(":");let m=[];for(;0<p&&u.length;)m.push(u.shift()),p--;return u.length&&m.push(u.join(":")),m}function O(u){a.setTimeout(()=>{throw u},0)}function D(){var u=ns;let p=null;return u.g&&(p=u.g,u.g=u.g.next,u.g||(u.h=null),p.next=null),p}class Vn{constructor(){this.h=this.g=null}add(p,m){let _=es.get();_.set(p,m),this.h?this.h.next=_:this.g=_,this.h=_}}var es=new L(()=>new ts,u=>u.reset());class ts{constructor(){this.next=this.g=this.h=null}set(p,m){this.h=p,this.g=m,this.next=null}reset(){this.next=this.g=this.h=null}}let Da,Ra=!1,ns=new Vn,Fl=()=>{let u=a.Promise.resolve(void 0);Da=()=>{u.then(hm)}};var hm=()=>{for(var u;u=D();){try{u.h.call(u.g)}catch(m){O(m)}var p=es;p.j(u),100>p.h&&(p.h++,u.next=p.g,p.g=u)}Ra=!1};function _i(){this.s=this.s,this.C=this.C}_i.prototype.s=!1,_i.prototype.ma=function(){this.s||(this.s=!0,this.N())},_i.prototype.N=function(){if(this.C)for(;this.C.length;)this.C.shift()()};function nn(u,p){this.type=u,this.g=this.target=p,this.defaultPrevented=!1}nn.prototype.h=function(){this.defaultPrevented=!0};var kv=(function(){if(!a.addEventListener||!Object.defineProperty)return!1;var u=!1,p=Object.defineProperty({},"passive",{get:function(){u=!0}});try{let m=()=>{};a.addEventListener("test",m,p),a.removeEventListener("test",m,p)}catch{}return u})();function He(u,p){if(nn.call(this,u?u.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,u){var m=this.type=u.type,_=u.changedTouches&&u.changedTouches.length?u.changedTouches[0]:null;if(this.target=u.target||u.srcElement,this.g=p,p=u.relatedTarget){if(ge){e:{try{oe(p.nodeName);var b=!0;break e}catch{}b=!1}b||(p=null)}}else m=="mouseover"?p=u.fromElement:m=="mouseout"&&(p=u.toElement);this.relatedTarget=p,_?(this.clientX=_.clientX!==void 0?_.clientX:_.pageX,this.clientY=_.clientY!==void 0?_.clientY:_.pageY,this.screenX=_.screenX||0,this.screenY=_.screenY||0):(this.clientX=u.clientX!==void 0?u.clientX:u.pageX,this.clientY=u.clientY!==void 0?u.clientY:u.pageY,this.screenX=u.screenX||0,this.screenY=u.screenY||0),this.button=u.button,this.key=u.key||"",this.ctrlKey=u.ctrlKey,this.altKey=u.altKey,this.shiftKey=u.shiftKey,this.metaKey=u.metaKey,this.pointerId=u.pointerId||0,this.pointerType=typeof u.pointerType=="string"?u.pointerType:Fv[u.pointerType]||"",this.state=u.state,this.i=u,u.defaultPrevented&&He.aa.h.call(this)}}E(He,nn);var Fv={2:"touch",3:"pen",4:"mouse"};He.prototype.h=function(){He.aa.h.call(this);var u=this.i;u.preventDefault?u.preventDefault():u.returnValue=!1};var Na="closure_listenable_"+(1e6*Math.random()|0),Uv=0;function Vv(u,p,m,_,b){this.listener=u,this.proxy=null,this.src=p,this.type=m,this.capture=!!_,this.ha=b,this.key=++Uv,this.da=this.fa=!1}function Ul(u){u.da=!0,u.listener=null,u.proxy=null,u.src=null,u.ha=null}function Vl(u){this.src=u,this.g={},this.h=0}Vl.prototype.add=function(u,p,m,_,b){var k=u.toString();u=this.g[k],u||(u=this.g[k]=[],this.h++);var X=wh(u,p,_,b);return-1<X?(p=u[X],m||(p.fa=!1)):(p=new Vv(p,this.src,k,!!_,b),p.fa=m,u.push(p)),p};function Bl(u,p){var m=p.type;if(m in u.g){var _=u.g[m],b=Array.prototype.indexOf.call(_,p,void 0),k;(k=0<=b)&&Array.prototype.splice.call(_,b,1),k&&(Ul(p),u.g[m].length==0&&(delete u.g[m],u.h--))}}function wh(u,p,m,_){for(var b=0;b<u.length;++b){var k=u[b];if(!k.da&&k.listener==p&&k.capture==!!m&&k.ha==_)return b}return-1}var Gl="closure_lm_"+(1e6*Math.random()|0),Je={};function jl(u,p,m,_,b){if(_&&_.once)return sr(u,p,m,_,b);if(Array.isArray(p)){for(var k=0;k<p.length;k++)jl(u,p[k],m,_,b);return null}return m=Wl(m),u&&u[Na]?u.K(p,m,l(_)?!!_.capture:!!_,b):rt(u,p,m,!1,_,b)}function rt(u,p,m,_,b,k){if(!p)throw Error("Invalid event type");var X=l(b)?!!b.capture:!!b,it=wa(u);if(it||(u[Gl]=it=new Vl(u)),m=it.add(p,m,_,X,k),m.proxy)return m;if(_=bh(),m.proxy=_,_.src=u,_.listener=m,u.addEventListener)kv||(b=X),b===void 0&&(b=!1),u.addEventListener(p.toString(),_,b);else if(u.attachEvent)u.attachEvent(Wr(p.toString()),_);else if(u.addListener&&u.removeListener)u.addListener(_);else throw Error("addEventListener and attachEvent are unavailable.");return m}function bh(){function u(m){return p.call(u.src,u.listener,m)}let p=fm;return u}function sr(u,p,m,_,b){if(Array.isArray(p)){for(var k=0;k<p.length;k++)sr(u,p[k],m,_,b);return null}return m=Wl(m),u&&u[Na]?u.L(p,m,l(_)?!!_.capture:!!_,b):rt(u,p,m,!0,_,b)}function rs(u,p,m,_,b){if(Array.isArray(p))for(var k=0;k<p.length;k++)rs(u,p[k],m,_,b);else _=l(_)?!!_.capture:!!_,m=Wl(m),u&&u[Na]?(u=u.i,p=String(p).toString(),p in u.g&&(k=u.g[p],m=wh(k,m,_,b),-1<m&&(Ul(k[m]),Array.prototype.splice.call(k,m,1),k.length==0&&(delete u.g[p],u.h--)))):u&&(u=wa(u))&&(p=u.g[p.toString()],u=-1,p&&(u=wh(p,m,_,b)),(m=-1<u?p[u]:null)&&Hl(m))}function Hl(u){if(typeof u!="number"&&u&&!u.da){var p=u.src;if(p&&p[Na])Bl(p.i,u);else{var m=u.type,_=u.proxy;p.removeEventListener?p.removeEventListener(m,_,u.capture):p.detachEvent?p.detachEvent(Wr(m),_):p.addListener&&p.removeListener&&p.removeListener(_),(m=wa(p))?(Bl(m,u),m.h==0&&(m.src=null,p[Gl]=null)):Ul(u)}}}function Wr(u){return u in Je?Je[u]:Je[u]="on"+u}function fm(u,p){if(u.da)u=!0;else{p=new He(p,this);var m=u.listener,_=u.ha||u.src;u.fa&&Hl(u),u=m.call(_,p)}return u}function wa(u){return u=u[Gl],u instanceof Vl?u:null}var $l="__closure_events_fn_"+(1e9*Math.random()>>>0);function Wl(u){return typeof u=="function"?u:(u[$l]||(u[$l]=function(p){return u.handleEvent(p)}),u[$l])}function dt(){_i.call(this),this.i=new Vl(this),this.M=this,this.F=null}E(dt,_i),dt.prototype[Na]=!0,dt.prototype.removeEventListener=function(u,p,m,_){rs(this,u,p,m,_)};function yt(u,p){var m,_=u.F;if(_)for(m=[];_;_=_.F)m.push(_);if(u=u.M,_=p.type||p,typeof p=="string")p=new nn(p,u);else if(p instanceof nn)p.target=p.target||u;else{var b=p;p=new nn(_,u),R(p,b)}if(b=!0,m)for(var k=m.length-1;0<=k;k--){var X=p.g=m[k];b=wr(X,_,!0,p)&&b}if(X=p.g=u,b=wr(X,_,!0,p)&&b,b=wr(X,_,!1,p)&&b,m)for(k=0;k<m.length;k++)X=p.g=m[k],b=wr(X,_,!1,p)&&b}dt.prototype.N=function(){if(dt.aa.N.call(this),this.i){var u=this.i,p;for(p in u.g){for(var m=u.g[p],_=0;_<m.length;_++)Ul(m[_]);delete u.g[p],u.h--}}this.F=null},dt.prototype.K=function(u,p,m,_){return this.i.add(String(u),p,!1,m,_)},dt.prototype.L=function(u,p,m,_){return this.i.add(String(u),p,!0,m,_)};function wr(u,p,m,_){if(p=u.i.g[String(p)],!p)return!0;p=p.concat();for(var b=!0,k=0;k<p.length;++k){var X=p[k];if(X&&!X.da&&X.capture==m){var it=X.listener,gn=X.ha||X.src;X.fa&&Bl(u.i,X),b=it.call(gn,_)!==!1&&b}}return b&&!_.defaultPrevented}function zl(u,p,m){if(typeof u=="function")m&&(u=f(u,m));else if(u&&typeof u.handleEvent=="function")u=f(u.handleEvent,u);else throw Error("Invalid listener argument");return 2147483647<Number(p)?-1:a.setTimeout(u,p||0)}function ba(u){u.g=zl(()=>{u.g=null,u.i&&(u.i=!1,ba(u))},u.l);let p=u.h;u.h=null,u.m.apply(null,p)}class ql extends _i{constructor(p,m){super(),this.m=p,this.l=m,this.h=null,this.i=!1,this.g=null}j(p){this.h=arguments,this.g?this.i=!0:ba(this)}N(){super.N(),this.g&&(a.clearTimeout(this.g),this.g=null,this.i=!1,this.h=null)}}function co(u){_i.call(this),this.h=u,this.g={}}E(co,_i);var lo=[];function Oa(u){te(u.g,function(p,m){this.g.hasOwnProperty(m)&&Hl(p)},u),u.g={}}co.prototype.N=function(){co.aa.N.call(this),Oa(this)},co.prototype.handleEvent=function(){throw Error("EventHandler.handleEvent not implemented")};var is=a.JSON.stringify,pm=a.JSON.parse,gm=class{stringify(u){return a.JSON.stringify(u,void 0)}parse(u){return a.JSON.parse(u,void 0)}};function Kl(){}Kl.prototype.h=null;function Yl(u){return u.h||(u.h=u.i())}function Xl(){}var br={OPEN:"a",kb:"b",Ja:"c",wb:"d"};function Ti(){nn.call(this,"d")}E(Ti,nn);function Ql(){nn.call(this,"c")}E(Ql,nn);var yi={},Oh=null;function Ma(){return Oh=Oh||new dt}yi.La="serverreachability";function Mh(u){nn.call(this,yi.La,u)}E(Mh,nn);function Ii(u){let p=Ma();yt(p,new Mh(p))}yi.STAT_EVENT="statevent";function La(u,p){nn.call(this,yi.STAT_EVENT,u),this.stat=p}E(La,nn);function ct(u){let p=Ma();yt(p,new La(p,u))}yi.Ma="timingevent";function uo(u,p){nn.call(this,yi.Ma,u),this.size=p}E(uo,nn);function ho(u,p){if(typeof u!="function")throw Error("Fn must not be null and must be a function");return a.setTimeout(function(){u()},p)}function fo(){this.g=!0}fo.prototype.xa=function(){this.g=!1};function Bv(u,p,m,_,b,k){u.info(function(){if(u.g)if(k)for(var X="",it=k.split("&"),gn=0;gn<it.length;gn++){var Fe=it[gn].split("=");if(1<Fe.length){var vn=Fe[0];Fe=Fe[1];var Sn=vn.split("_");X=2<=Sn.length&&Sn[1]=="type"?X+(vn+"="+Fe+"&"):X+(vn+"=redacted&")}}else X=null;else X=k;return"XMLHTTP REQ ("+_+") [attempt "+b+"]: "+p+`
154
154
  `+m+`
155
155
  `+X})}function mm(u,p,m,_,b,k,X){u.info(function(){return"XMLHTTP RESP ("+_+") [ attempt "+b+"]: "+p+`
156
156
  `+m+`
@@ -171,4 +171,4 @@ This typically indicates that your device does not have a healthy Internet conne
171
171
  `+e.join(`
172
172
  `)+`
173
173
  )`}copy(e,n){let r=new t;return r.comparator=this.comparator,r.keyedMap=e,r.sortedSet=n,r}};var av=class{constructor(){this.fa=new pt(Z.comparator)}track(e){let n=e.doc.key,r=this.fa.get(n);r?e.type!==0&&r.type===3?this.fa=this.fa.insert(n,e):e.type===3&&r.type!==1?this.fa=this.fa.insert(n,{type:r.type,doc:e.doc}):e.type===2&&r.type===2?this.fa=this.fa.insert(n,{type:2,doc:e.doc}):e.type===2&&r.type===0?this.fa=this.fa.insert(n,{type:0,doc:e.doc}):e.type===1&&r.type===0?this.fa=this.fa.remove(n):e.type===1&&r.type===2?this.fa=this.fa.insert(n,{type:1,doc:r.doc}):e.type===0&&r.type===1?this.fa=this.fa.insert(n,{type:2,doc:e.doc}):re(63341,{At:e,ga:r}):this.fa=this.fa.insert(n,e)}pa(){let e=[];return this.fa.inorderTraversal((n,r)=>{e.push(r)}),e}},Eh=class t{constructor(e,n,r,i,o,s,a,c,l){this.query=e,this.docs=n,this.oldDocs=r,this.docChanges=i,this.mutatedKeys=o,this.fromCache=s,this.syncStateChanged=a,this.excludesMetadataChanges=c,this.hasCachedResults=l}static fromInitialDocuments(e,n,r,i,o){let s=[];return n.forEach(a=>{s.push({type:0,doc:a})}),new t(e,n,sv.emptySet(n),s,r,i,!0,!1,o)}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)&&Cv(this.query,e.query)&&this.docs.isEqual(e.docs)&&this.oldDocs.isEqual(e.oldDocs)))return!1;let n=this.docChanges,r=e.docChanges;if(n.length!==r.length)return!1;for(let i=0;i<n.length;i++)if(n[i].type!==r[i].type||!n[i].doc.isEqual(r[i].doc))return!1;return!0}};var p0=class{constructor(){this.ya=void 0,this.wa=[]}Sa(){return this.wa.some(e=>e.ba())}},g0=class{constructor(){this.queries=Q$(),this.onlineState="Unknown",this.Da=new Set}terminate(){(function(n,r){let i=se(n),o=i.queries;i.queries=Q$(),o.forEach((s,a)=>{for(let c of a.wa)c.onError(r)})})(this,new j(x.ABORTED,"Firestore shutting down"))}};function Q$(){return new pi(t=>$3(t),Cv)}function hM(t,e){return y(this,null,function*(){let n=se(t),r=3,i=e.query,o=n.queries.get(i);o?!o.Sa()&&e.ba()&&(r=2):(o=new p0,r=e.ba()?0:1);try{switch(r){case 0:o.ya=yield n.onListen(i,!0);break;case 1:o.ya=yield n.onListen(i,!1);break;case 2:yield n.onFirstRemoteStoreListen(i)}}catch(s){let a=dM(s,`Initialization of query '${$d(e.query)}' failed`);return void e.onError(a)}n.queries.set(i,o),o.wa.push(e),e.va(n.onlineState),o.ya&&e.Ca(o.ya)&&pM(n)})}function fM(t,e){return y(this,null,function*(){let n=se(t),r=e.query,i=3,o=n.queries.get(r);if(o){let s=o.wa.indexOf(e);s>=0&&(o.wa.splice(s,1),o.wa.length===0?i=e.ba()?0:1:!o.Sa()&&e.ba()&&(i=2))}switch(i){case 0:return n.queries.delete(r),n.onUnlisten(r,!0);case 1:return n.queries.delete(r),n.onUnlisten(r,!1);case 2:return n.onLastRemoteStoreUnlisten(r);default:return}})}function Iae(t,e){let n=se(t),r=!1;for(let i of e){let o=i.query,s=n.queries.get(o);if(s){for(let a of s.wa)a.Ca(i)&&(r=!0);s.ya=i}}r&&pM(n)}function vae(t,e,n){let r=se(t),i=r.queries.get(e);if(i)for(let o of i.wa)o.onError(n);r.queries.delete(e)}function pM(t){t.Da.forEach(e=>{e.next()})}var m0,J$;(J$=m0||(m0={})).Fa="default",J$.Cache="cache";var Jg=class{constructor(e,n,r){this.query=e,this.Ma=n,this.xa=!1,this.Oa=null,this.onlineState="Unknown",this.options=r||{}}Ca(e){if(!this.options.includeMetadataChanges){let r=[];for(let i of e.docChanges)i.type!==3&&r.push(i);e=new Eh(e.query,e.docs,e.oldDocs,r,e.mutatedKeys,e.fromCache,e.syncStateChanged,!0,e.hasCachedResults)}let n=!1;return this.xa?this.Na(e)&&(this.Ma.next(e),n=!0):this.Ba(e,this.onlineState)&&(this.La(e),n=!0),this.Oa=e,n}onError(e){this.Ma.error(e)}va(e){this.onlineState=e;let n=!1;return this.Oa&&!this.xa&&this.Ba(this.Oa,e)&&(this.La(this.Oa),n=!0),n}Ba(e,n){if(!e.fromCache||!this.ba())return!0;let r=n!=="Offline";return(!this.options.ka||!r)&&(!e.docs.isEmpty()||e.hasCachedResults||n==="Offline")}Na(e){if(e.docChanges.length>0)return!0;let n=this.Oa&&this.Oa.hasPendingWrites!==e.hasPendingWrites;return!(!e.syncStateChanged&&!n)&&this.options.includeMetadataChanges===!0}La(e){e=Eh.fromInitialDocuments(e.query,e.docs,e.mutatedKeys,e.fromCache,e.hasCachedResults),this.xa=!0,this.Ma.next(e)}ba(){return this.options.source!==m0.Cache}};var cv=class{constructor(e){this.key=e}},lv=class{constructor(e){this.key=e}},E0=class{constructor(e,n){this.query=e,this.Ha=n,this.Ya=null,this.hasCachedResults=!1,this.current=!1,this.Za=be(),this.mutatedKeys=be(),this.Xa=z3(e),this.eu=new sv(this.Xa)}get tu(){return this.Ha}nu(e,n){let r=n?n.ru:new av,i=n?n.eu:this.eu,o=n?n.mutatedKeys:this.mutatedKeys,s=i,a=!1,c=this.query.limitType==="F"&&i.size===this.query.limit?i.last():null,l=this.query.limitType==="L"&&i.size===this.query.limit?i.first():null;if(e.inorderTraversal((d,h)=>{let f=i.get(d),g=cm(this.query,h)?h:null,E=!!f&&this.mutatedKeys.has(f.key),I=!!g&&(g.hasLocalMutations||this.mutatedKeys.has(g.key)&&g.hasCommittedMutations),S=!1;f&&g?f.data.isEqual(g.data)?E!==I&&(r.track({type:3,doc:g}),S=!0):this.iu(f,g)||(r.track({type:2,doc:g}),S=!0,(c&&this.Xa(g,c)>0||l&&this.Xa(g,l)<0)&&(a=!0)):!f&&g?(r.track({type:0,doc:g}),S=!0):f&&!g&&(r.track({type:1,doc:f}),S=!0,(c||l)&&(a=!0)),S&&(g?(s=s.add(g),o=I?o.add(d):o.delete(d)):(s=s.delete(d),o=o.delete(d)))}),this.query.limit!==null)for(;s.size>this.query.limit;){let d=this.query.limitType==="F"?s.last():s.first();s=s.delete(d.key),o=o.delete(d.key),r.track({type:1,doc:d})}return{eu:s,ru:r,Ds:a,mutatedKeys:o}}iu(e,n){return e.hasLocalMutations&&n.hasCommittedMutations&&!n.hasLocalMutations}applyChanges(e,n,r,i){let o=this.eu;this.eu=e.eu,this.mutatedKeys=e.mutatedKeys;let s=e.ru.pa();s.sort((d,h)=>(function(g,E){let I=S=>{switch(S){case 0:return 1;case 2:case 3:return 2;case 1:return 0;default:return re(20277,{At:S})}};return I(g)-I(E)})(d.type,h.type)||this.Xa(d.doc,h.doc)),this.su(r),i=i!=null&&i;let a=n&&!i?this.ou():[],c=this.Za.size===0&&this.current&&!i?1:0,l=c!==this.Ya;return this.Ya=c,s.length!==0||l?{snapshot:new Eh(this.query,e.eu,o,s,e.mutatedKeys,c===0,l,!1,!!r&&r.resumeToken.approximateByteSize()>0),_u:a}:{_u:a}}va(e){return this.current&&e==="Offline"?(this.current=!1,this.applyChanges({eu:this.eu,ru:new av,mutatedKeys:this.mutatedKeys,Ds:!1},!1)):{_u:[]}}au(e){return!this.Ha.has(e)&&!!this.eu.has(e)&&!this.eu.get(e).hasLocalMutations}su(e){e&&(e.addedDocuments.forEach(n=>this.Ha=this.Ha.add(n)),e.modifiedDocuments.forEach(n=>{}),e.removedDocuments.forEach(n=>this.Ha=this.Ha.delete(n)),this.current=e.current)}ou(){if(!this.current)return[];let e=this.Za;this.Za=be(),this.eu.forEach(r=>{this.au(r.key)&&(this.Za=this.Za.add(r.key))});let n=[];return e.forEach(r=>{this.Za.has(r)||n.push(new lv(r))}),this.Za.forEach(r=>{e.has(r)||n.push(new cv(r))}),n}uu(e){this.Ha=e.qs,this.Za=be();let n=this.nu(e.documents);return this.applyChanges(n,!0)}cu(){return Eh.fromInitialDocuments(this.query,this.eu,this.mutatedKeys,this.Ya===0,this.hasCachedResults)}},Ch="SyncEngine",_0=class{constructor(e,n,r){this.query=e,this.targetId=n,this.view=r}},T0=class{constructor(e){this.key=e,this.lu=!1}},y0=class{constructor(e,n,r,i,o,s){this.localStore=e,this.remoteStore=n,this.eventManager=r,this.sharedClientState=i,this.currentUser=o,this.maxConcurrentLimboResolutions=s,this.hu={},this.Pu=new pi(a=>$3(a),Cv),this.Tu=new Map,this.Iu=new Set,this.du=new pt(Z.comparator),this.Eu=new Map,this.Au=new Kg,this.Ru={},this.Vu=new Map,this.mu=ph.ur(),this.onlineState="Unknown",this.fu=void 0}get isPrimaryClient(){return this.fu===!0}};function Sae(t,e,n=!0){return y(this,null,function*(){let r=wv(t),i,o=r.Pu.get(e);return o?(r.sharedClientState.addLocalQueryTarget(o.targetId),i=o.view.cu()):i=yield jW(r,e,n,!0),i})}function Aae(t,e){return y(this,null,function*(){let n=wv(t);yield jW(n,e,!0,!1)})}function jW(t,e,n,r){return y(this,null,function*(){let i=yield ZI(t.localStore,Rr(e)),o=i.targetId,s=t.sharedClientState.addLocalQueryTarget(o,n),a;return r&&(a=yield gM(t,e,o,s==="current",i.resumeToken)),t.isPrimaryClient&&n&&Nv(t.remoteStore,i),a})}function gM(t,e,n,r,i){return y(this,null,function*(){t.gu=(h,f,g)=>(function(I,S,L,V){return y(this,null,function*(){let K=S.view.nu(L);K.Ds&&(K=yield ZO(I.localStore,S.query,!1).then(({documents:C})=>S.view.nu(C,K)));let oe=V&&V.targetChanges.get(S.targetId),ge=V&&V.targetMismatches.get(S.targetId)!=null,te=S.view.applyChanges(K,I.isPrimaryClient,oe,ge);return I0(I,S.targetId,te._u),te.snapshot})})(t,h,f,g);let o=yield ZO(t.localStore,e,!0),s=new E0(e,o.qs),a=s.nu(o.documents),c=$g.createSynthesizedTargetChangeForCurrentChange(n,r&&t.onlineState!=="Offline",i),l=s.applyChanges(a,t.isPrimaryClient,c);I0(t,n,l._u);let d=new _0(e,n,s);return t.Pu.set(e,d),t.Tu.has(n)?t.Tu.get(n).push(e):t.Tu.set(n,[e]),l.snapshot})}function Cae(t,e,n){return y(this,null,function*(){let r=se(t),i=r.Pu.get(e),o=r.Tu.get(i.targetId);if(o.length>1)return r.Tu.set(i.targetId,o.filter(s=>!Cv(s,e))),void r.Pu.delete(e);r.isPrimaryClient?(r.sharedClientState.removeLocalQueryTarget(i.targetId),r.sharedClientState.isActiveQueryTarget(i.targetId)||(yield gh(r.localStore,i.targetId,!1).then(()=>{r.sharedClientState.clearQueryState(i.targetId),n&&mh(r.remoteStore,i.targetId),_h(r,i.targetId)}).catch(va))):(_h(r,i.targetId),yield gh(r.localStore,i.targetId,!0))})}function Dae(t,e){return y(this,null,function*(){let n=se(t),r=n.Pu.get(e),i=n.Tu.get(r.targetId);n.isPrimaryClient&&i.length===1&&(n.sharedClientState.removeLocalQueryTarget(r.targetId),mh(n.remoteStore,r.targetId))})}function Rae(t,e,n){return y(this,null,function*(){let r=TM(t);try{let i=yield(function(s,a){let c=se(s),l=Tt.now(),d=a.reduce((g,E)=>g.add(E.key),be()),h,f;return c.persistence.runTransaction("Locally write mutations","readwrite",g=>{let E=Dr(),I=be();return c.Os.getEntries(g,d).next(S=>{E=S,E.forEach((L,V)=>{V.isValidDocument()||(I=I.add(L))})}).next(()=>c.localDocuments.getOverlayedDocuments(g,E)).next(S=>{h=S;let L=[];for(let V of a){let K=Vse(V,h.get(V.key).overlayedDocument);K!=null&&L.push(new gi(V.key,K,k3(K.value.mapValue),yn.exists(!0)))}return c.mutationQueue.addMutationBatch(g,l,L,a)}).next(S=>{f=S;let L=S.applyToLocalDocumentSet(h,I);return c.documentOverlayCache.saveOverlays(g,S.batchId,L)})}).then(()=>({batchId:f.batchId,changes:K3(h)}))})(r.localStore,e);r.sharedClientState.addPendingMutation(i.batchId),(function(s,a,c){let l=s.Ru[s.currentUser.toKey()];l||(l=new pt(Ie)),l=l.insert(a,c),s.Ru[s.currentUser.toKey()]=l})(r,i.batchId,n),yield Ca(r,i.changes),yield Sh(r.remoteStore)}catch(i){let o=dM(i,"Failed to persist write");n.reject(o)}})}function HW(t,e){return y(this,null,function*(){let n=se(t);try{let r=yield aae(n.localStore,e);e.targetChanges.forEach((i,o)=>{let s=n.Eu.get(o);s&&(ae(i.addedDocuments.size+i.modifiedDocuments.size+i.removedDocuments.size<=1,22616),i.addedDocuments.size>0?s.lu=!0:i.modifiedDocuments.size>0?ae(s.lu,14607):i.removedDocuments.size>0&&(ae(s.lu,42227),s.lu=!1))}),yield Ca(n,r,e)}catch(r){yield va(r)}})}function Z$(t,e,n){let r=se(t);if(r.isPrimaryClient&&n===0||!r.isPrimaryClient&&n===1){let i=[];r.Pu.forEach((o,s)=>{let a=s.view.va(e);a.snapshot&&i.push(a.snapshot)}),(function(s,a){let c=se(s);c.onlineState=a;let l=!1;c.queries.forEach((d,h)=>{for(let f of h.wa)f.va(a)&&(l=!0)}),l&&pM(c)})(r.eventManager,e),i.length&&r.hu.J_(i),r.onlineState=e,r.isPrimaryClient&&r.sharedClientState.setOnlineState(e)}}function Nae(t,e,n){return y(this,null,function*(){let r=se(t);r.sharedClientState.updateQueryState(e,"rejected",n);let i=r.Eu.get(e),o=i&&i.key;if(o){let s=new pt(Z.comparator);s=s.insert(o,Zt.newNoDocument(o,le.min()));let a=be().add(o),c=new Hg(le.min(),new Map,new pt(Ie),s,a);yield HW(r,c),r.du=r.du.remove(o),r.Eu.delete(e),_M(r)}else yield gh(r.localStore,e,!1).then(()=>_h(r,e,n)).catch(va)})}function wae(t,e){return y(this,null,function*(){let n=se(t),r=e.batch.batchId;try{let i=yield sae(n.localStore,e);EM(n,r,null),mM(n,r),n.sharedClientState.updateMutationState(r,"acknowledged"),yield Ca(n,i)}catch(i){yield va(i)}})}function bae(t,e,n){return y(this,null,function*(){let r=se(t);try{let i=yield(function(s,a){let c=se(s);return c.persistence.runTransaction("Reject batch","readwrite-primary",l=>{let d;return c.mutationQueue.lookupMutationBatch(l,a).next(h=>(ae(h!==null,37113),d=h.keys(),c.mutationQueue.removeMutationBatch(l,h))).next(()=>c.mutationQueue.performConsistencyCheck(l)).next(()=>c.documentOverlayCache.removeOverlaysForBatchId(l,d,a)).next(()=>c.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(l,d)).next(()=>c.localDocuments.getDocuments(l,d))})})(r.localStore,e);EM(r,e,n),mM(r,e),r.sharedClientState.updateMutationState(e,"rejected",n),yield Ca(r,i)}catch(i){yield va(i)}})}function mM(t,e){(t.Vu.get(e)||[]).forEach(n=>{n.resolve()}),t.Vu.delete(e)}function EM(t,e,n){let r=se(t),i=r.Ru[r.currentUser.toKey()];if(i){let o=i.get(e);o&&(n?o.reject(n):o.resolve(),i=i.remove(e)),r.Ru[r.currentUser.toKey()]=i}}function _h(t,e,n=null){t.sharedClientState.removeLocalQueryTarget(e);for(let r of t.Tu.get(e))t.Pu.delete(r),n&&t.hu.pu(r,n);t.Tu.delete(e),t.isPrimaryClient&&t.Au.zr(e).forEach(r=>{t.Au.containsKey(r)||$W(t,r)})}function $W(t,e){t.Iu.delete(e.path.canonicalString());let n=t.du.get(e);n!==null&&(mh(t.remoteStore,n),t.du=t.du.remove(e),t.Eu.delete(n),_M(t))}function I0(t,e,n){for(let r of n)r instanceof cv?(t.Au.addReference(r.key,e),Oae(t,r)):r instanceof lv?(H(Ch,"Document no longer in limbo: "+r.key),t.Au.removeReference(r.key,e),t.Au.containsKey(r.key)||$W(t,r.key)):re(19791,{yu:r})}function Oae(t,e){let n=e.key,r=n.path.canonicalString();t.du.get(n)||t.Iu.has(r)||(H(Ch,"New document in limbo: "+n),t.Iu.add(r),_M(t))}function _M(t){for(;t.Iu.size>0&&t.du.size<t.maxConcurrentLimboResolutions;){let e=t.Iu.values().next().value;t.Iu.delete(e);let n=new Z(ke.fromString(e)),r=t.mu.next();t.Eu.set(r,new T0(n)),t.du=t.du.insert(n,r),Nv(t.remoteStore,new fh(Rr(am(n.path)),r,"TargetPurposeLimboResolution",Ar.ue))}}function Ca(t,e,n){return y(this,null,function*(){let r=se(t),i=[],o=[],s=[];r.Pu.isEmpty()||(r.Pu.forEach((a,c)=>{s.push(r.gu(c,e,n).then(l=>{var d;if((l||n)&&r.isPrimaryClient){let h=l?!l.fromCache:(d=n?.targetChanges.get(c.targetId))===null||d===void 0?void 0:d.current;r.sharedClientState.updateQueryState(c.targetId,h?"current":"not-current")}if(l){i.push(l);let h=XO.Es(c.targetId,l);o.push(h)}}))}),yield Promise.all(s),r.hu.J_(i),yield(function(c,l){return y(this,null,function*(){let d=se(c);try{yield d.persistence.runTransaction("notifyLocalViewChanges","readwrite",h=>P.forEach(l,f=>P.forEach(f.Is,g=>d.persistence.referenceDelegate.addReference(h,f.targetId,g)).next(()=>P.forEach(f.ds,g=>d.persistence.referenceDelegate.removeReference(h,f.targetId,g)))))}catch(h){if(!Sa(h))throw h;H(aM,"Failed to update sequence numbers: "+h)}for(let h of l){let f=h.targetId;if(!h.fromCache){let g=d.Fs.get(f),E=g.snapshotVersion,I=g.withLastLimboFreeSnapshotVersion(E);d.Fs=d.Fs.insert(f,I)}}})})(r.localStore,o))})}function Mae(t,e){return y(this,null,function*(){let n=se(t);if(!n.currentUser.isEqual(e)){H(Ch,"User change. New user:",e.toKey());let r=yield NW(n.localStore,e);n.currentUser=e,(function(o,s){o.Vu.forEach(a=>{a.forEach(c=>{c.reject(new j(x.CANCELLED,s))})}),o.Vu.clear()})(n,"'waitForPendingWrites' promise is rejected due to a user change."),n.sharedClientState.handleUserChange(e,r.removedBatchIds,r.addedBatchIds),yield Ca(n,r.Bs)}})}function Lae(t,e){let n=se(t),r=n.Eu.get(e);if(r&&r.lu)return be().add(r.key);{let i=be(),o=n.Tu.get(e);if(!o)return i;for(let s of o){let a=n.Pu.get(s);i=i.unionWith(a.view.tu)}return i}}function Pae(t,e){return y(this,null,function*(){let n=se(t),r=yield ZO(n.localStore,e.query,!0),i=e.view.uu(r);return n.isPrimaryClient&&I0(n,e.targetId,i._u),i})}function xae(t,e){return y(this,null,function*(){let n=se(t);return OW(n.localStore,e).then(r=>Ca(n,r))})}function kae(t,e,n,r){return y(this,null,function*(){let i=se(t),o=yield(function(a,c){let l=se(a),d=se(l.mutationQueue);return l.persistence.runTransaction("Lookup mutation documents","readonly",h=>d.Xn(h,c).next(f=>f?l.localDocuments.getDocuments(h,f):P.resolve(null)))})(i.localStore,e);o!==null?(n==="pending"?yield Sh(i.remoteStore):n==="acknowledged"||n==="rejected"?(EM(i,e,r||null),mM(i,e),(function(a,c){se(se(a).mutationQueue).rr(c)})(i.localStore,e)):re(6720,"Unknown batchState",{wu:n}),yield Ca(i,o)):H(Ch,"Cannot apply mutation batch with id: "+e)})}function Fae(t,e){return y(this,null,function*(){let n=se(t);if(wv(n),TM(n),e===!0&&n.fu!==!0){let r=n.sharedClientState.getAllActiveQueryTargets(),i=yield e3(n,r.toArray());n.fu=!0,yield h0(n.remoteStore,!0);for(let o of i)Nv(n.remoteStore,o)}else if(e===!1&&n.fu!==!1){let r=[],i=Promise.resolve();n.Tu.forEach((o,s)=>{n.sharedClientState.isLocalQueryTarget(s)?r.push(s):i=i.then(()=>(_h(n,s),gh(n.localStore,s,!0))),mh(n.remoteStore,s)}),yield i,yield e3(n,r),(function(s){let a=se(s);a.Eu.forEach((c,l)=>{mh(a.remoteStore,l)}),a.Au.jr(),a.Eu=new Map,a.du=new pt(Z.comparator)})(n),n.fu=!1,yield h0(n.remoteStore,!1)}})}function e3(t,e,n){return y(this,null,function*(){let r=se(t),i=[],o=[];for(let s of e){let a,c=r.Tu.get(s);if(c&&c.length!==0){a=yield ZI(r.localStore,Rr(c[0]));for(let l of c){let d=r.Pu.get(l),h=yield Pae(r,d);h.snapshot&&o.push(h.snapshot)}}else{let l=yield bW(r.localStore,s);a=yield ZI(r.localStore,l),yield gM(r,WW(l),s,!1,a.resumeToken)}i.push(a)}return r.hu.J_(o),i})}function WW(t){return j3(t.path,t.collectionGroup,t.orderBy,t.filters,t.limit,"F",t.startAt,t.endAt)}function Uae(t){return(function(n){return se(se(n).persistence).Ps()})(se(t).localStore)}function Vae(t,e,n,r){return y(this,null,function*(){let i=se(t);if(i.fu)return void H(Ch,"Ignoring unexpected query state notification.");let o=i.Tu.get(e);if(o&&o.length>0)switch(n){case"current":case"not-current":{let s=yield OW(i.localStore,W3(o[0])),a=Hg.createSynthesizedRemoteEventForCurrentChange(e,n==="current",Gt.EMPTY_BYTE_STRING);yield Ca(i,s,a);break}case"rejected":yield gh(i.localStore,e,!0),_h(i,e,r);break;default:re(64155,n)}})}function Bae(t,e,n){return y(this,null,function*(){let r=wv(t);if(r.fu){for(let i of e){if(r.Tu.has(i)&&r.sharedClientState.isActiveQueryTarget(i)){H(Ch,"Adding an already active target "+i);continue}let o=yield bW(r.localStore,i),s=yield ZI(r.localStore,o);yield gM(r,WW(o),s.targetId,!1,s.resumeToken),Nv(r.remoteStore,s)}for(let i of n)r.Tu.has(i)&&(yield gh(r.localStore,i,!1).then(()=>{mh(r.remoteStore,i),_h(r,i)}).catch(va))}})}function wv(t){let e=se(t);return e.remoteStore.remoteSyncer.applyRemoteEvent=HW.bind(null,e),e.remoteStore.remoteSyncer.getRemoteKeysForTarget=Lae.bind(null,e),e.remoteStore.remoteSyncer.rejectListen=Nae.bind(null,e),e.hu.J_=Iae.bind(null,e.eventManager),e.hu.pu=vae.bind(null,e.eventManager),e}function TM(t){let e=se(t);return e.remoteStore.remoteSyncer.applySuccessfulWrite=wae.bind(null,e),e.remoteStore.remoteSyncer.rejectFailedWrite=bae.bind(null,e),e}var yM=(()=>{class t{constructor(){this.kind="memory",this.synchronizeTabs=!1}initialize(n){return y(this,null,function*(){this.serializer=Dv(n.databaseInfo.databaseId),this.sharedClientState=this.bu(n),this.persistence=this.Du(n),yield this.persistence.start(),this.localStore=this.vu(n),this.gcScheduler=this.Cu(n,this.localStore),this.indexBackfillerScheduler=this.Fu(n,this.localStore)})}Cu(n,r){return null}Fu(n,r){return null}vu(n){return RW(this.persistence,new JI,n.initialUser,this.serializer)}Du(n){return new Yg(XI.Vi,this.serializer)}bu(n){return new nv}terminate(){return y(this,null,function*(){var n,r;(n=this.gcScheduler)===null||n===void 0||n.stop(),(r=this.indexBackfillerScheduler)===null||r===void 0||r.stop(),this.sharedClientState.shutdown(),yield this.persistence.shutdown()})}}return t.provider={build:()=>new t},t})(),v0=class extends yM{constructor(e){super(),this.cacheSizeBytes=e}Cu(e,n){ae(this.persistence.referenceDelegate instanceof QI,46915);let r=this.persistence.referenceDelegate.garbageCollector;return new qI(r,e.asyncQueue,n)}Du(e){let n=this.cacheSizeBytes!==void 0?rr.withCacheSize(this.cacheSizeBytes):rr.DEFAULT;return new Yg(r=>QI.Vi(r,n),this.serializer)}},uv=class t extends yM{constructor(e,n,r){super(),this.Mu=e,this.cacheSizeBytes=n,this.forceOwnership=r,this.kind="persistent",this.synchronizeTabs=!1}initialize(e){return y(this,null,function*(){yield Ga(t.prototype,this,"initialize").call(this,e),yield this.Mu.initialize(this,e),yield TM(this.Mu.syncEngine),yield Sh(this.Mu.remoteStore),yield this.persistence.ji(()=>(this.gcScheduler&&!this.gcScheduler.started&&this.gcScheduler.start(),this.indexBackfillerScheduler&&!this.indexBackfillerScheduler.started&&this.indexBackfillerScheduler.start(),Promise.resolve()))})}vu(e){return RW(this.persistence,new JI,e.initialUser,this.serializer)}Cu(e,n){let r=this.persistence.referenceDelegate.garbageCollector;return new qI(r,e.asyncQueue,n)}Fu(e,n){let r=new qb(n,this.persistence);return new zb(e.asyncQueue,r)}Du(e){let n=DW(e.databaseInfo.databaseId,e.databaseInfo.persistenceKey),r=this.cacheSizeBytes!==void 0?rr.withCacheSize(this.cacheSizeBytes):rr.DEFAULT;return new YO(this.synchronizeTabs,n,e.clientId,r,e.asyncQueue,kW(),II(),this.serializer,this.sharedClientState,!!this.forceOwnership)}bu(e){return new nv}},S0=class t extends uv{constructor(e,n){super(e,n,!1),this.Mu=e,this.cacheSizeBytes=n,this.synchronizeTabs=!0}initialize(e){return y(this,null,function*(){yield Ga(t.prototype,this,"initialize").call(this,e);let n=this.Mu.syncEngine;this.sharedClientState instanceof Ng&&(this.sharedClientState.syncEngine={Do:kae.bind(null,n),vo:Vae.bind(null,n),Co:Bae.bind(null,n),Ps:Uae.bind(null,n),bo:xae.bind(null,n)},yield this.sharedClientState.start()),yield this.persistence.ji(r=>y(this,null,function*(){yield Fae(this.Mu.syncEngine,r),this.gcScheduler&&(r&&!this.gcScheduler.started?this.gcScheduler.start():r||this.gcScheduler.stop()),this.indexBackfillerScheduler&&(r&&!this.indexBackfillerScheduler.started?this.indexBackfillerScheduler.start():r||this.indexBackfillerScheduler.stop())}))})}bu(e){let n=kW();if(!Ng.C(n))throw new j(x.UNIMPLEMENTED,"IndexedDB persistence is only available on platforms that support LocalStorage.");let r=DW(e.databaseInfo.databaseId,e.databaseInfo.persistenceKey);return new Ng(n,e.asyncQueue,r,e.clientId,e.initialUser)}},IM=(()=>{class t{initialize(n,r){return y(this,null,function*(){this.localStore||(this.localStore=n.localStore,this.sharedClientState=n.sharedClientState,this.datastore=this.createDatastore(r),this.remoteStore=this.createRemoteStore(r),this.eventManager=this.createEventManager(r),this.syncEngine=this.createSyncEngine(r,!n.synchronizeTabs),this.sharedClientState.onlineStateHandler=i=>Z$(this.syncEngine,i,1),this.remoteStore.remoteSyncer.handleCredentialChange=Mae.bind(null,this.syncEngine),yield h0(this.remoteStore,this.syncEngine.isPrimaryClient))})}createEventManager(n){return(function(){return new g0})()}createDatastore(n){let r=Dv(n.databaseInfo.databaseId),i=(function(s){return new o0(s)})(n.databaseInfo);return(function(s,a,c,l){return new l0(s,a,c,l)})(n.authCredentials,n.appCheckCredentials,i,r)}createRemoteStore(n){return(function(i,o,s,a,c){return new d0(i,o,s,a,c)})(this.localStore,this.datastore,n.asyncQueue,r=>Z$(this.syncEngine,r,0),(function(){return rv.C()?new rv:new t0})())}createSyncEngine(n,r){return(function(o,s,a,c,l,d,h){let f=new y0(o,s,a,c,l,d);return h&&(f.fu=!0),f})(this.localStore,this.remoteStore,this.eventManager,this.sharedClientState,n.initialUser,n.maxConcurrentLimboResolutions,r)}terminate(){return y(this,null,function*(){var n,r;yield(function(o){return y(this,null,function*(){let s=se(o);H(Ml,"RemoteStore shutting down."),s.Ia.add(5),yield lm(s),s.Ea.shutdown(),s.Aa.set("Unknown")})})(this.remoteStore),(n=this.datastore)===null||n===void 0||n.terminate(),(r=this.eventManager)===null||r===void 0||r.terminate()})}}return t.provider={build:()=>new t},t})();var Zg=class{constructor(e){this.observer=e,this.muted=!1}next(e){this.muted||this.observer.next&&this.xu(this.observer.next,e)}error(e){this.muted||(this.observer.error?this.xu(this.observer.error,e):Mt("Uncaught Error in snapshot listener:",e.toString()))}Ou(){this.muted=!0}xu(e,n){setTimeout(()=>{this.muted||e(n)},0)}};var A0=class{constructor(e){this.datastore=e,this.readVersions=new Map,this.mutations=[],this.committed=!1,this.lastTransactionError=null,this.writtenDocs=new Set}lookup(e){return y(this,null,function*(){if(this.ensureCommitNotCalled(),this.mutations.length>0)throw this.lastTransactionError=new j(x.INVALID_ARGUMENT,"Firestore transactions require all reads to be executed before all writes."),this.lastTransactionError;let n=yield(function(i,o){return y(this,null,function*(){let s=se(i),a={documents:o.map(h=>Wg(s.serializer,h))},c=yield s.Jo("BatchGetDocuments",s.serializer.databaseId,ke.emptyPath(),a,o.length),l=new Map;c.forEach(h=>{let f=zse(s.serializer,h);l.set(f.key.toString(),f)});let d=[];return o.forEach(h=>{let f=l.get(h.toString());ae(!!f,55234,{key:h}),d.push(f)}),d})})(this.datastore,e);return n.forEach(r=>this.recordVersion(r)),n})}set(e,n){this.write(n.toMutation(e,this.precondition(e))),this.writtenDocs.add(e.toString())}update(e,n){try{this.write(n.toMutation(e,this.preconditionForUpdate(e)))}catch(r){this.lastTransactionError=r}this.writtenDocs.add(e.toString())}delete(e){this.write(new wl(e,this.precondition(e))),this.writtenDocs.add(e.toString())}commit(){return y(this,null,function*(){if(this.ensureCommitNotCalled(),this.lastTransactionError)throw this.lastTransactionError;let e=this.readVersions;this.mutations.forEach(n=>{e.delete(n.key.toString())}),e.forEach((n,r)=>{let i=Z.fromPath(r);this.mutations.push(new Bg(i,this.precondition(i)))}),yield(function(r,i){return y(this,null,function*(){let o=se(r),s={writes:i.map(a=>zg(o.serializer,a))};yield o.Wo("Commit",o.serializer.databaseId,ke.emptyPath(),s)})})(this.datastore,this.mutations),this.committed=!0})}recordVersion(e){let n;if(e.isFoundDocument())n=e.version;else{if(!e.isNoDocument())throw re(50498,{Wu:e.constructor.name});n=le.min()}let r=this.readVersions.get(e.key.toString());if(r){if(!n.isEqual(r))throw new j(x.ABORTED,"Document version changed between two reads.")}else this.readVersions.set(e.key.toString(),n)}precondition(e){let n=this.readVersions.get(e.toString());return!this.writtenDocs.has(e.toString())&&n?n.isEqual(le.min())?yn.exists(!1):yn.updateTime(n):yn.none()}preconditionForUpdate(e){let n=this.readVersions.get(e.toString());if(!this.writtenDocs.has(e.toString())&&n){if(n.isEqual(le.min()))throw new j(x.INVALID_ARGUMENT,"Can't update a document that doesn't exist.");return yn.updateTime(n)}return yn.exists(!0)}write(e){this.ensureCommitNotCalled(),this.mutations.push(e)}ensureCommitNotCalled(){}};var C0=class{constructor(e,n,r,i,o){this.asyncQueue=e,this.datastore=n,this.options=r,this.updateFunction=i,this.deferred=o,this.Gu=r.maxAttempts,this.F_=new Qg(this.asyncQueue,"transaction_retry")}zu(){this.Gu-=1,this.ju()}ju(){this.F_.g_(()=>y(this,null,function*(){let e=new A0(this.datastore),n=this.Ju(e);n&&n.then(r=>{this.asyncQueue.enqueueAndForget(()=>e.commit().then(()=>{this.deferred.resolve(r)}).catch(i=>{this.Hu(i)}))}).catch(r=>{this.Hu(r)})}))}Ju(e){try{let n=this.updateFunction(e);return!im(n)&&n.catch&&n.then?n:(this.deferred.reject(Error("Transaction callback must return a Promise")),null)}catch(n){return this.deferred.reject(n),null}}Hu(e){this.Gu>0&&this.Yu(e)?(this.Gu-=1,this.asyncQueue.enqueueAndForget(()=>(this.ju(),Promise.resolve()))):this.deferred.reject(e)}Yu(e){if(e.name==="FirebaseError"){let n=e.code;return n==="aborted"||n==="failed-precondition"||n==="already-exists"||!rW(n)}return!1}};var Ia="FirestoreClient",D0=class{constructor(e,n,r,i,o){this.authCredentials=e,this.appCheckCredentials=n,this.asyncQueue=r,this.databaseInfo=i,this.user=Vt.UNAUTHENTICATED,this.clientId=wg.newId(),this.authCredentialListener=()=>Promise.resolve(),this.appCheckCredentialListener=()=>Promise.resolve(),this._uninitializedComponentsProvider=o,this.authCredentials.start(r,s=>y(this,null,function*(){H(Ia,"Received user=",s.uid),yield this.authCredentialListener(s),this.user=s})),this.appCheckCredentials.start(r,s=>(H(Ia,"Received new app check token=",s),this.appCheckCredentialListener(s,this.user)))}get configuration(){return{asyncQueue:this.asyncQueue,databaseInfo:this.databaseInfo,clientId:this.clientId,authCredentials:this.authCredentials,appCheckCredentials:this.appCheckCredentials,initialUser:this.user,maxConcurrentLimboResolutions:100}}setCredentialChangeListener(e){this.authCredentialListener=e}setAppCheckTokenChangeListener(e){this.appCheckCredentialListener=e}terminate(){this.asyncQueue.enterRestrictedMode();let e=new ir;return this.asyncQueue.enqueueAndForgetEvenWhileRestricted(()=>y(this,null,function*(){try{this._onlineComponents&&(yield this._onlineComponents.terminate()),this._offlineComponents&&(yield this._offlineComponents.terminate()),this.authCredentials.shutdown(),this.appCheckCredentials.shutdown(),e.resolve()}catch(n){let r=dM(n,"Failed to shutdown persistence");e.reject(r)}})),e.promise}};function xb(t,e){return y(this,null,function*(){t.asyncQueue.verifyOperationInProgress(),H(Ia,"Initializing OfflineComponentProvider");let n=t.configuration;yield e.initialize(n);let r=n.initialUser;t.setCredentialChangeListener(i=>y(null,null,function*(){r.isEqual(i)||(yield NW(e.localStore,i),r=i)})),e.persistence.setDatabaseDeletedListener(()=>{Qo("Terminating Firestore due to IndexedDb database deletion"),t.terminate().then(()=>{H("Terminating Firestore due to IndexedDb database deletion completed successfully")}).catch(i=>{Qo("Terminating Firestore due to IndexedDb database deletion failed",i)})}),t._offlineComponents=e})}function t3(t,e){return y(this,null,function*(){t.asyncQueue.verifyOperationInProgress();let n=yield Gae(t);H(Ia,"Initializing OnlineComponentProvider"),yield e.initialize(n,t.configuration),t.setCredentialChangeListener(r=>X$(e.remoteStore,r)),t.setAppCheckTokenChangeListener((r,i)=>X$(e.remoteStore,i)),t._onlineComponents=e})}function Gae(t){return y(this,null,function*(){if(!t._offlineComponents)if(t._uninitializedComponentsProvider){H(Ia,"Using user provided OfflineComponentProvider");try{yield xb(t,t._uninitializedComponentsProvider._offline)}catch(e){let n=e;if(!(function(i){return i.name==="FirebaseError"?i.code===x.FAILED_PRECONDITION||i.code===x.UNIMPLEMENTED:!(typeof DOMException<"u"&&i instanceof DOMException)||i.code===22||i.code===20||i.code===11})(n))throw n;Qo("Error using user provided cache. Falling back to memory cache: "+n),yield xb(t,new yM)}}else H(Ia,"Using default OfflineComponentProvider"),yield xb(t,new v0(void 0));return t._offlineComponents})}function vM(t){return y(this,null,function*(){return t._onlineComponents||(t._uninitializedComponentsProvider?(H(Ia,"Using user provided OnlineComponentProvider"),yield t3(t,t._uninitializedComponentsProvider._online)):(H(Ia,"Using default OnlineComponentProvider"),yield t3(t,new IM))),t._onlineComponents})}function jae(t){return vM(t).then(e=>e.syncEngine)}function zW(t){return vM(t).then(e=>e.datastore)}function dv(t){return y(this,null,function*(){let e=yield vM(t),n=e.eventManager;return n.onListen=Sae.bind(null,e.syncEngine),n.onUnlisten=Cae.bind(null,e.syncEngine),n.onFirstRemoteStoreListen=Aae.bind(null,e.syncEngine),n.onLastRemoteStoreUnlisten=Dae.bind(null,e.syncEngine),n})}function Hae(t,e,n={}){let r=new ir;return t.asyncQueue.enqueueAndForget(()=>y(null,null,function*(){return(function(o,s,a,c,l){let d=new Zg({next:f=>{d.Ou(),s.enqueueAndForget(()=>fM(o,h));let g=f.docs.has(a);!g&&f.fromCache?l.reject(new j(x.UNAVAILABLE,"Failed to get document because the client is offline.")):g&&f.fromCache&&c&&c.source==="server"?l.reject(new j(x.UNAVAILABLE,'Failed to get document from server. (However, this document does exist in the local cache. Run again without setting source to "server" to retrieve the cached document.)')):l.resolve(f)},error:f=>l.reject(f)}),h=new Jg(am(a.path),d,{includeMetadataChanges:!0,ka:!0});return hM(o,h)})(yield dv(t),t.asyncQueue,e,n,r)})),r.promise}function $ae(t,e,n={}){let r=new ir;return t.asyncQueue.enqueueAndForget(()=>y(null,null,function*(){return(function(o,s,a,c,l){let d=new Zg({next:f=>{d.Ou(),s.enqueueAndForget(()=>fM(o,h)),f.fromCache&&c.source==="server"?l.reject(new j(x.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.)')):l.resolve(f)},error:f=>l.reject(f)}),h=new Jg(a,d,{includeMetadataChanges:!0,ka:!0});return hM(o,h)})(yield dv(t),t.asyncQueue,e,n,r)})),r.promise}function Wae(t,e,n){let r=new ir;return t.asyncQueue.enqueueAndForget(()=>y(null,null,function*(){try{let i=yield zW(t);r.resolve((function(s,a,c){return y(this,null,function*(){var l;let d=se(s),{request:h,ft:f,parent:g}=Yse(d.serializer,Nse(a),c);d.connection.Qo||delete h.parent;let E=(yield d.Jo("RunAggregationQuery",d.serializer.databaseId,g,h,1)).filter(S=>!!S.result);ae(E.length===1,64727);let I=(l=E[0].result)===null||l===void 0?void 0:l.aggregateFields;return Object.keys(I).reduce((S,L)=>(S[f[L]]=I[L],S),{})})})(i,e,n))}catch(i){r.reject(i)}})),r.promise}function qW(t){let e={};return t.timeoutSeconds!==void 0&&(e.timeoutSeconds=t.timeoutSeconds),e}var n3=new Map;var KW="firestore.googleapis.com",r3=!0,hv=class{constructor(e){var n,r;if(e.host===void 0){if(e.ssl!==void 0)throw new j(x.INVALID_ARGUMENT,"Can't provide ssl option if host option is not set");this.host=KW,this.ssl=r3}else this.host=e.host,this.ssl=(n=e.ssl)!==null&&n!==void 0?n:r3;if(this.isUsingEmulator=e.emulatorOptions!==void 0,this.credentials=e.credentials,this.ignoreUndefinedProperties=!!e.ignoreUndefinedProperties,this.localCache=e.localCache,e.cacheSizeBytes===void 0)this.cacheSizeBytes=TW;else{if(e.cacheSizeBytes!==-1&&e.cacheSizeBytes<SW)throw new j(x.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=e.cacheSizeBytes}Yoe("experimentalForceLongPolling",e.experimentalForceLongPolling,"experimentalAutoDetectLongPolling",e.experimentalAutoDetectLongPolling),this.experimentalForceLongPolling=!!e.experimentalForceLongPolling,this.experimentalForceLongPolling?this.experimentalAutoDetectLongPolling=!1:e.experimentalAutoDetectLongPolling===void 0?this.experimentalAutoDetectLongPolling=!0:this.experimentalAutoDetectLongPolling=!!e.experimentalAutoDetectLongPolling,this.experimentalLongPollingOptions=qW((r=e.experimentalLongPollingOptions)!==null&&r!==void 0?r:{}),(function(o){if(o.timeoutSeconds!==void 0){if(isNaN(o.timeoutSeconds))throw new j(x.INVALID_ARGUMENT,`invalid long polling timeout: ${o.timeoutSeconds} (must not be NaN)`);if(o.timeoutSeconds<5)throw new j(x.INVALID_ARGUMENT,`invalid long polling timeout: ${o.timeoutSeconds} (minimum allowed value is 5)`);if(o.timeoutSeconds>30)throw new j(x.INVALID_ARGUMENT,`invalid long polling timeout: ${o.timeoutSeconds} (maximum allowed value is 30)`)}})(this.experimentalLongPollingOptions),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&&(function(r,i){return r.timeoutSeconds===i.timeoutSeconds})(this.experimentalLongPollingOptions,e.experimentalLongPollingOptions)&&this.ignoreUndefinedProperties===e.ignoreUndefinedProperties&&this.useFetchStreams===e.useFetchStreams}},Ll=class{constructor(e,n,r,i){this._authCredentials=e,this._appCheckCredentials=n,this._databaseId=r,this._app=i,this.type="firestore-lite",this._persistenceKey="(lite)",this._settings=new hv({}),this._settingsFrozen=!1,this._emulatorOptions={},this._terminateTask="notTerminated"}get app(){if(!this._app)throw new j(x.FAILED_PRECONDITION,"Firestore was not initialized using the Firebase SDK. 'app' is not available");return this._app}get _initialized(){return this._settingsFrozen}get _terminated(){return this._terminateTask!=="notTerminated"}_setSettings(e){if(this._settingsFrozen)throw new j(x.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 hv(e),this._emulatorOptions=e.emulatorOptions||{},e.credentials!==void 0&&(this._authCredentials=(function(r){if(!r)return new kb;switch(r.type){case"firstParty":return new Bb(r.sessionIndex||"0",r.iamToken||null,r.authTokenFactory||null);case"provider":return r.client;default:throw new j(x.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 this._terminateTask==="notTerminated"&&(this._terminateTask=this._terminate()),this._terminateTask}_restart(){return y(this,null,function*(){this._terminateTask==="notTerminated"?yield this._terminate():this._terminateTask="notTerminated"})}toJSON(){return{app:this._app,databaseId:this._databaseId,settings:this._settings}}_terminate(){return(function(n){let r=n3.get(n);r&&(H("ComponentProvider","Removing Datastore"),n3.delete(n),r.terminate())})(this),Promise.resolve()}};function YW(t,e,n,r={}){var i;t=or(t,Ll);let o=_r(e),s=t._getSettings(),a=Object.assign(Object.assign({},s),{emulatorOptions:t._getEmulatorOptions()}),c=`${e}:${n}`;o&&(ks(`https://${c}`),Fc("Firestore",!0)),s.host!==KW&&s.host!==c&&Qo("Host has been set in both settings() and connectFirestoreEmulator(), emulator host will be used.");let l=Object.assign(Object.assign({},s),{host:c,ssl:o,emulatorOptions:r});if(!oi(l,a)&&(t._setSettings(l),r.mockUserToken)){let d,h;if(typeof r.mockUserToken=="string")d=r.mockUserToken,h=Vt.MOCK_USER;else{d=FT(r.mockUserToken,(i=t._app)===null||i===void 0?void 0:i.options.projectId);let f=r.mockUserToken.sub||r.mockUserToken.user_id;if(!f)throw new j(x.INVALID_ARGUMENT,"mockUserToken must contain 'sub' or 'user_id' field!");h=new Vt(f)}t._authCredentials=new Fb(new vI(d,h))}}var mi=class t{constructor(e,n,r){this.converter=n,this._query=r,this.type="query",this.firestore=e}withConverter(e){return new t(this.firestore,e,this._query)}},en=class t{constructor(e,n,r){this.converter=n,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 ua(this.firestore,this.converter,this._key.path.popLast())}withConverter(e){return new t(this.firestore,e,this._key)}toJSON(){return{type:t._jsonSchemaVersion,referencePath:this._key.toString()}}static fromJSON(e,n,r){if(rm(n,t._jsonSchema))return new t(e,r||null,new Z(ke.fromString(n.referencePath)))}};en._jsonSchemaVersion="firestore/documentReference/1.0",en._jsonSchema={type:Bt("string",en._jsonSchemaVersion),referencePath:Bt("string")};var ua=class t extends mi{constructor(e,n,r){super(e,n,am(r)),this._path=r,this.type="collection"}get id(){return this._query.path.lastSegment()}get path(){return this._query.path.canonicalString()}get parent(){let e=this._path.popLast();return e.isEmpty()?null:new en(this.firestore,null,new Z(e))}withConverter(e){return new t(this.firestore,e,this._path)}};function XW(t,e,...n){if(t=Me(t),W0("collection","path",e),t instanceof Ll){let r=ke.fromString(e,...n);return JH(r),new ua(t,null,r)}{if(!(t instanceof en||t instanceof ua))throw new j(x.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore");let r=t._path.child(ke.fromString(e,...n));return JH(r),new ua(t.firestore,null,r)}}function QW(t,e){if(t=or(t,Ll),W0("collectionGroup","collection id",e),e.indexOf("/")>=0)throw new j(x.INVALID_ARGUMENT,`Invalid collection ID '${e}' passed to function collectionGroup(). Collection IDs must not contain '/'.`);return new mi(t,null,(function(r){return new ao(ke.emptyPath(),r)})(e))}function JW(t,e,...n){if(t=Me(t),arguments.length===1&&(e=wg.newId()),W0("doc","path",e),t instanceof Ll){let r=ke.fromString(e,...n);return QH(r),new en(t,null,new Z(r))}{if(!(t instanceof en||t instanceof ua))throw new j(x.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore");let r=t._path.child(ke.fromString(e,...n));return QH(r),new en(t.firestore,t instanceof ua?t.converter:null,new Z(r))}}var i3="AsyncQueue",fv=class{constructor(e=Promise.resolve()){this.Zu=[],this.Xu=!1,this.ec=[],this.tc=null,this.nc=!1,this.rc=!1,this.sc=[],this.F_=new Qg(this,"async_queue_retry"),this.oc=()=>{let r=II();r&&H(i3,"Visibility state changed to "+r.visibilityState),this.F_.y_()},this._c=e;let n=II();n&&typeof n.addEventListener=="function"&&n.addEventListener("visibilitychange",this.oc)}get isShuttingDown(){return this.Xu}enqueueAndForget(e){this.enqueue(e)}enqueueAndForgetEvenWhileRestricted(e){this.ac(),this.uc(e)}enterRestrictedMode(e){if(!this.Xu){this.Xu=!0,this.rc=e||!1;let n=II();n&&typeof n.removeEventListener=="function"&&n.removeEventListener("visibilitychange",this.oc)}}enqueue(e){if(this.ac(),this.Xu)return new Promise(()=>{});let n=new ir;return this.uc(()=>this.Xu&&this.rc?Promise.resolve():(e().then(n.resolve,n.reject),n.promise)).then(()=>n.promise)}enqueueRetryable(e){this.enqueueAndForget(()=>(this.Zu.push(e),this.cc()))}cc(){return y(this,null,function*(){if(this.Zu.length!==0){try{yield this.Zu[0](),this.Zu.shift(),this.F_.reset()}catch(e){if(!Sa(e))throw e;H(i3,"Operation failed with retryable error: "+e)}this.Zu.length>0&&this.F_.g_(()=>this.cc())}})}uc(e){let n=this._c.then(()=>(this.nc=!0,e().catch(r=>{throw this.tc=r,this.nc=!1,Mt("INTERNAL UNHANDLED ERROR: ",o3(r)),r}).then(r=>(this.nc=!1,r))));return this._c=n,n}enqueueAfterDelay(e,n,r){this.ac(),this.sc.indexOf(e)>-1&&(n=0);let i=f0.createAndSchedule(this,e,n,r,o=>this.lc(o));return this.ec.push(i),i}ac(){this.tc&&re(47125,{hc:o3(this.tc)})}verifyOperationInProgress(){}Pc(){return y(this,null,function*(){let e;do e=this._c,yield e;while(e!==this._c)})}Tc(e){for(let n of this.ec)if(n.timerId===e)return!0;return!1}Ic(e){return this.Pc().then(()=>{this.ec.sort((n,r)=>n.targetTimeMs-r.targetTimeMs);for(let n of this.ec)if(n.skipDelay(),e!=="all"&&n.timerId===e)break;return this.Pc()})}dc(e){this.sc.push(e)}lc(e){let n=this.ec.indexOf(e);this.ec.splice(n,1)}};function o3(t){let e=t.message||"";return t.stack&&(e=t.stack.includes(t.message)?t.stack:t.message+`
174
- `+t.stack),e}function s3(t){return(function(n,r){if(typeof n!="object"||n===null)return!1;let i=n;for(let o of r)if(o in i&&typeof i[o]=="function")return!0;return!1})(t,["next","error","complete"])}var Ei=class extends Ll{constructor(e,n,r,i){super(e,n,r,i),this.type="firestore",this._queue=new fv,this._persistenceKey=i?.name||"[DEFAULT]"}_terminate(){return y(this,null,function*(){if(this._firestoreClient){let e=this._firestoreClient.terminate();this._queue=new fv(e),this._firestoreClient=void 0,yield e}})}};function bv(t,e,n){n||(n=Fg);let r=Xi(t,"firestore");if(r.isInitialized(n)){let i=r.getImmediate({identifier:n}),o=r.getOptions(n);if(oi(o,e))return i;throw new j(x.FAILED_PRECONDITION,"initializeFirestore() has already been called with different options. To avoid this error, call initializeFirestore() with the same options as when it was originally called, or call getFirestore() to return the already initialized instance.")}if(e.cacheSizeBytes!==void 0&&e.localCache!==void 0)throw new j(x.INVALID_ARGUMENT,"cache and cacheSizeBytes cannot be specified at the same time as cacheSizeBytes willbe deprecated. Instead, specify the cache size in the cache object");if(e.cacheSizeBytes!==void 0&&e.cacheSizeBytes!==-1&&e.cacheSizeBytes<SW)throw new j(x.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");return e.host&&_r(e.host)&&ks(e.host),r.initialize({options:e,instanceIdentifier:n})}function Dh(t,e){let n=typeof t=="object"?t:er(),r=typeof t=="string"?t:e||Fg,i=Xi(n,"firestore").getImmediate({identifier:r});if(!i._initialized){let o=ld("firestore");o&&YW(i,...o)}return i}function Rh(t){if(t._terminated)throw new j(x.FAILED_PRECONDITION,"The client has already been terminated.");return t._firestoreClient||zae(t),t._firestoreClient}function zae(t){var e,n,r;let i=t._freezeSettings(),o=(function(a,c,l,d){return new Qb(a,c,l,d.host,d.ssl,d.experimentalForceLongPolling,d.experimentalAutoDetectLongPolling,qW(d.experimentalLongPollingOptions),d.useFetchStreams,d.isUsingEmulator)})(t._databaseId,((e=t._app)===null||e===void 0?void 0:e.options.appId)||"",t._persistenceKey,i);t._componentsProvider||!((n=i.localCache)===null||n===void 0)&&n._offlineComponentProvider&&(!((r=i.localCache)===null||r===void 0)&&r._onlineComponentProvider)&&(t._componentsProvider={_offline:i.localCache._offlineComponentProvider,_online:i.localCache._onlineComponentProvider}),t._firestoreClient=new D0(t._authCredentials,t._appCheckCredentials,t._queue,o,t._componentsProvider&&(function(a){let c=a?._online.build();return{_offline:a?._offline.build(c),_online:c}})(t._componentsProvider))}var R0=class{constructor(e="count",n){this._internalFieldPath=n,this.type="AggregateField",this.aggregateType=e}},N0=class{constructor(e,n,r){this._userDataWriter=n,this._data=r,this.type="AggregateQuerySnapshot",this.query=e}data(){return this._userDataWriter.convertObjectMap(this._data)}};var Xo=class t{constructor(e){this._byteString=e}static fromBase64String(e){try{return new t(Gt.fromBase64String(e))}catch(n){throw new j(x.INVALID_ARGUMENT,"Failed to construct data from Base64 string: "+n)}}static fromUint8Array(e){return new t(Gt.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:t._jsonSchemaVersion,bytes:this.toBase64()}}static fromJSON(e){if(rm(e,t._jsonSchema))return t.fromBase64String(e.bytes)}};Xo._jsonSchemaVersion="firestore/bytes/1.0",Xo._jsonSchema={type:Bt("string",Xo._jsonSchemaVersion),bytes:Bt("string")};var Th=class{constructor(...e){for(let n=0;n<e.length;++n)if(e[n].length===0)throw new j(x.INVALID_ARGUMENT,"Invalid field name at argument $(i + 1). Field names must not be empty.");this._internalPath=new Jt(e)}isEqual(e){return this._internalPath.isEqual(e._internalPath)}};var em=class{constructor(e){this._methodName=e}};var da=class t{constructor(e,n){if(!isFinite(e)||e<-90||e>90)throw new j(x.INVALID_ARGUMENT,"Latitude must be a number between -90 and 90, but was: "+e);if(!isFinite(n)||n<-180||n>180)throw new j(x.INVALID_ARGUMENT,"Longitude must be a number between -180 and 180, but was: "+n);this._lat=e,this._long=n}get latitude(){return this._lat}get longitude(){return this._long}isEqual(e){return this._lat===e._lat&&this._long===e._long}_compareTo(e){return Ie(this._lat,e._lat)||Ie(this._long,e._long)}toJSON(){return{latitude:this._lat,longitude:this._long,type:t._jsonSchemaVersion}}static fromJSON(e){if(rm(e,t._jsonSchema))return new t(e.latitude,e.longitude)}};da._jsonSchemaVersion="firestore/geoPoint/1.0",da._jsonSchema={type:Bt("string",da._jsonSchemaVersion),latitude:Bt("number"),longitude:Bt("number")};var ha=class t{constructor(e){this._values=(e||[]).map(n=>n)}toArray(){return this._values.map(e=>e)}isEqual(e){return(function(r,i){if(r.length!==i.length)return!1;for(let o=0;o<r.length;++o)if(r[o]!==i[o])return!1;return!0})(this._values,e._values)}toJSON(){return{type:t._jsonSchemaVersion,vectorValues:this._values}}static fromJSON(e){if(rm(e,t._jsonSchema)){if(Array.isArray(e.vectorValues)&&e.vectorValues.every(n=>typeof n=="number"))return new t(e.vectorValues);throw new j(x.INVALID_ARGUMENT,"Expected 'vectorValues' field to be a number array")}}};ha._jsonSchemaVersion="firestore/vectorValue/1.0",ha._jsonSchema={type:Bt("string",ha._jsonSchemaVersion),vectorValues:Bt("object")};var qae=/^__.*__$/,w0=class{constructor(e,n,r){this.data=e,this.fieldMask=n,this.fieldTransforms=r}toMutation(e,n){return this.fieldMask!==null?new gi(e,this.data,this.fieldMask,n,this.fieldTransforms):new Ta(e,this.data,n,this.fieldTransforms)}},pv=class{constructor(e,n,r){this.data=e,this.fieldMask=n,this.fieldTransforms=r}toMutation(e,n){return new gi(e,this.data,this.fieldMask,n,this.fieldTransforms)}};function ZW(t){switch(t){case 0:case 2:case 1:return!0;case 3:case 4:return!1;default:throw re(40011,{Ec:t})}}var b0=class t{constructor(e,n,r,i,o,s){this.settings=e,this.databaseId=n,this.serializer=r,this.ignoreUndefinedProperties=i,o===void 0&&this.Ac(),this.fieldTransforms=o||[],this.fieldMask=s||[]}get path(){return this.settings.path}get Ec(){return this.settings.Ec}Rc(e){return new t(Object.assign(Object.assign({},this.settings),e),this.databaseId,this.serializer,this.ignoreUndefinedProperties,this.fieldTransforms,this.fieldMask)}Vc(e){var n;let r=(n=this.path)===null||n===void 0?void 0:n.child(e),i=this.Rc({path:r,mc:!1});return i.fc(e),i}gc(e){var n;let r=(n=this.path)===null||n===void 0?void 0:n.child(e),i=this.Rc({path:r,mc:!1});return i.Ac(),i}yc(e){return this.Rc({path:void 0,mc:!0})}wc(e){return mv(e,this.settings.methodName,this.settings.Sc||!1,this.path,this.settings.bc)}contains(e){return this.fieldMask.find(n=>e.isPrefixOf(n))!==void 0||this.fieldTransforms.find(n=>e.isPrefixOf(n.field))!==void 0}Ac(){if(this.path)for(let e=0;e<this.path.length;e++)this.fc(this.path.get(e))}fc(e){if(e.length===0)throw this.wc("Document fields must not be empty");if(ZW(this.Ec)&&qae.test(e))throw this.wc('Document fields cannot begin and end with "__"')}},O0=class{constructor(e,n,r){this.databaseId=e,this.ignoreUndefinedProperties=n,this.serializer=r||Dv(e)}Dc(e,n,r,i=!1){return new b0({Ec:e,methodName:n,bc:r,path:Jt.emptyPath(),mc:!1,Sc:i},this.databaseId,this.serializer,this.ignoreUndefinedProperties)}};function Ov(t){let e=t._freezeSettings(),n=Dv(t._databaseId);return new O0(t._databaseId,!!e.ignoreUndefinedProperties,n)}function e6(t,e,n,r,i,o={}){let s=t.Dc(o.merge||o.mergeFields?2:0,e,n,i);SM("Data must be an object, but it was:",s,r);let a=n6(r,s),c,l;if(o.merge)c=new Cr(s.fieldMask),l=s.fieldTransforms;else if(o.mergeFields){let d=[];for(let h of o.mergeFields){let f=M0(e,h,n);if(!s.contains(f))throw new j(x.INVALID_ARGUMENT,`Field '${f}' is specified in your field mask but missing from your input data.`);i6(d,f)||d.push(f)}c=new Cr(d),l=s.fieldTransforms.filter(h=>c.covers(h.field))}else c=null,l=s.fieldTransforms;return new w0(new Fn(a),c,l)}var gv=class t extends em{_toFieldTransform(e){if(e.Ec!==2)throw e.Ec===1?e.wc(`${this._methodName}() can only appear at the top level of your update data`):e.wc(`${this._methodName}() cannot be used with set() unless you pass {merge:true}`);return e.fieldMask.push(e.path),null}isEqual(e){return e instanceof t}};function Kae(t,e,n,r){let i=t.Dc(1,e,n);SM("Data must be an object, but it was:",i,r);let o=[],s=Fn.empty();Aa(r,(c,l)=>{let d=AM(e,c,n);l=Me(l);let h=i.gc(d);if(l instanceof gv)o.push(d);else{let f=um(l,h);f!=null&&(o.push(d),s.set(d,f))}});let a=new Cr(o);return new pv(s,a,i.fieldTransforms)}function Yae(t,e,n,r,i,o){let s=t.Dc(1,e,n),a=[M0(e,r,n)],c=[i];if(o.length%2!=0)throw new j(x.INVALID_ARGUMENT,`Function ${e}() needs to be called with an even number of arguments that alternate between field names and values.`);for(let f=0;f<o.length;f+=2)a.push(M0(e,o[f])),c.push(o[f+1]);let l=[],d=Fn.empty();for(let f=a.length-1;f>=0;--f)if(!i6(l,a[f])){let g=a[f],E=c[f];E=Me(E);let I=s.gc(g);if(E instanceof gv)l.push(g);else{let S=um(E,I);S!=null&&(l.push(g),d.set(g,S))}}let h=new Cr(l);return new pv(d,h,s.fieldTransforms)}function t6(t,e,n,r=!1){return um(n,t.Dc(r?4:3,e))}function um(t,e){if(r6(t=Me(t)))return SM("Unsupported field value:",e,t),n6(t,e);if(t instanceof em)return(function(r,i){if(!ZW(i.Ec))throw i.wc(`${r._methodName}() can only be used with update() and set()`);if(!i.path)throw i.wc(`${r._methodName}() is not currently supported inside arrays`);let o=r._toFieldTransform(i);o&&i.fieldTransforms.push(o)})(t,e),null;if(t===void 0&&e.ignoreUndefinedProperties)return null;if(e.path&&e.fieldMask.push(e.path),t instanceof Array){if(e.settings.mc&&e.Ec!==4)throw e.wc("Nested arrays are not supported");return(function(r,i){let o=[],s=0;for(let a of r){let c=um(a,i.yc(s));c==null&&(c={nullValue:"NULL_VALUE"}),o.push(c),s++}return{arrayValue:{values:o}}})(t,e)}return(function(r,i){if((r=Me(r))===null)return{nullValue:"NULL_VALUE"};if(typeof r=="number")return Pse(i.serializer,r);if(typeof r=="boolean")return{booleanValue:r};if(typeof r=="string")return{stringValue:r};if(r instanceof Date){let o=Tt.fromDate(r);return{timestampValue:hh(i.serializer,o)}}if(r instanceof Tt){let o=new Tt(r.seconds,1e3*Math.floor(r.nanoseconds/1e3));return{timestampValue:hh(i.serializer,o)}}if(r instanceof da)return{geoPointValue:{latitude:r.latitude,longitude:r.longitude}};if(r instanceof Xo)return{bytesValue:oW(i.serializer,r._byteString)};if(r instanceof en){let o=i.databaseId,s=r.firestore._databaseId;if(!s.isEqual(o))throw i.wc(`Document reference is for database ${s.projectId}/${s.database} but should be for database ${o.projectId}/${o.database}`);return{referenceValue:iM(r.firestore._databaseId||i.databaseId,r._key.path)}}if(r instanceof ha)return(function(s,a){return{mapValue:{fields:{[J0]:{stringValue:Z0},[ah]:{arrayValue:{values:s.toArray().map(l=>{if(typeof l!="number")throw a.wc("VectorValues must only contain numeric values.");return rM(a.serializer,l)})}}}}}})(r,i);throw i.wc(`Unsupported field value: ${_v(r)}`)})(t,e)}function n6(t,e){let n={};return N3(t)?e.path&&e.path.length>0&&e.fieldMask.push(e.path):Aa(t,(r,i)=>{let o=um(i,e.Vc(r));o!=null&&(n[r]=o)}),{mapValue:{fields:n}}}function r6(t){return!(typeof t!="object"||t===null||t instanceof Array||t instanceof Date||t instanceof Tt||t instanceof da||t instanceof Xo||t instanceof en||t instanceof em||t instanceof ha)}function SM(t,e,n){if(!r6(n)||!h3(n)){let r=_v(n);throw r==="an object"?e.wc(t+" a custom object"):e.wc(t+" "+r)}}function M0(t,e,n){if((e=Me(e))instanceof Th)return e._internalPath;if(typeof e=="string")return AM(t,e);throw mv("Field path arguments must be of type string or ",t,!1,void 0,n)}var Xae=new RegExp("[~\\*/\\[\\]]");function AM(t,e,n){if(e.search(Xae)>=0)throw mv(`Invalid field path (${e}). Paths must not contain '~', '*', '/', '[', or ']'`,t,!1,void 0,n);try{return new Th(...e.split("."))._internalPath}catch{throw mv(`Invalid field path (${e}). Paths must not be empty, begin with '.', end with '.', or contain '..'`,t,!1,void 0,n)}}function mv(t,e,n,r,i){let o=r&&!r.isEmpty(),s=i!==void 0,a=`Function ${e}() called with invalid data`;n&&(a+=" (via `toFirestore()`)"),a+=". ";let c="";return(o||s)&&(c+=" (found",o&&(c+=` in field ${r}`),s&&(c+=` in document ${i}`),c+=")"),new j(x.INVALID_ARGUMENT,a+t+c)}function i6(t,e){return t.some(n=>n.isEqual(e))}var Pl=class{constructor(e,n,r,i,o){this._firestore=e,this._userDataWriter=n,this._key=r,this._document=i,this._converter=o}get id(){return this._key.path.lastSegment()}get ref(){return new en(this._firestore,this._converter,this._key)}exists(){return this._document!==null}data(){if(this._document){if(this._converter){let e=new L0(this._firestore,this._userDataWriter,this._key,this._document,null);return this._converter.fromFirestore(e)}return this._userDataWriter.convertValue(this._document.data.value)}}get(e){if(this._document){let n=this._document.data.field(Mv("DocumentSnapshot.get",e));if(n!==null)return this._userDataWriter.convertValue(n)}}},L0=class extends Pl{data(){return super.data()}};function Mv(t,e){return typeof e=="string"?AM(t,e):e instanceof Th?e._internalPath:e._delegate._internalPath}function o6(t){if(t.limitType==="L"&&t.explicitOrderBy.length===0)throw new j(x.UNIMPLEMENTED,"limitToLast() queries require specifying at least one orderBy() clause")}var tm=class{},yh=class extends tm{};function s6(t,e,...n){let r=[];e instanceof tm&&r.push(e),r=r.concat(n),(function(o){let s=o.filter(c=>c instanceof Ih).length,a=o.filter(c=>c instanceof nm).length;if(s>1||s>0&&a>0)throw new j(x.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(...)))`.")})(r);for(let i of r)t=i._apply(t);return t}var nm=class t extends yh{constructor(e,n,r){super(),this._field=e,this._op=n,this._value=r,this.type="where"}static _create(e,n,r){return new t(e,n,r)}_apply(e){let n=this._parse(e);return f6(e._query,n),new mi(e.firestore,e.converter,uO(e._query,n))}_parse(e){let n=Ov(e.firestore);return(function(o,s,a,c,l,d,h){let f;if(l.isKeyField()){if(d==="array-contains"||d==="array-contains-any")throw new j(x.INVALID_ARGUMENT,`Invalid Query. You can't perform '${d}' queries on documentId().`);if(d==="in"||d==="not-in"){c3(h,d);let E=[];for(let I of h)E.push(a3(c,o,I));f={arrayValue:{values:E}}}else f=a3(c,o,h)}else d!=="in"&&d!=="not-in"&&d!=="array-contains-any"||c3(h,d),f=t6(a,s,h,d==="in"||d==="not-in");return Le.create(l,d,f)})(e._query,"where",n,e.firestore._databaseId,this._field,this._op,this._value)}};function a6(t,e,n){let r=e,i=Mv("where",t);return nm._create(i,r,n)}var Ih=class t extends tm{constructor(e,n){super(),this.type=e,this._queryConstraints=n}static _create(e,n){return new t(e,n)}_parse(e){let n=this._queryConstraints.map(r=>r._parse(e)).filter(r=>r.getFilters().length>0);return n.length===1?n[0]:Xe.create(n,this._getOperator())}_apply(e){let n=this._parse(e);return n.getFilters().length===0?e:((function(i,o){let s=i,a=o.getFlattenedFilters();for(let c of a)f6(s,c),s=uO(s,c)})(e._query,n),new mi(e.firestore,e.converter,uO(e._query,n)))}_getQueryConstraints(){return this._queryConstraints}_getOperator(){return this.type==="and"?"and":"or"}};function c6(...t){return t.forEach(e=>p6("or",e)),Ih._create("or",t)}function l6(...t){return t.forEach(e=>p6("and",e)),Ih._create("and",t)}var P0=class t extends yh{constructor(e,n){super(),this._field=e,this._direction=n,this.type="orderBy"}static _create(e,n){return new t(e,n)}_apply(e){let n=(function(i,o,s){if(i.startAt!==null)throw new j(x.INVALID_ARGUMENT,"Invalid query. You must not call startAt() or startAfter() before calling orderBy().");if(i.endAt!==null)throw new j(x.INVALID_ARGUMENT,"Invalid query. You must not call endAt() or endBefore() before calling orderBy().");return new Cl(o,s)})(e._query,this._field,this._direction);return new mi(e.firestore,e.converter,(function(i,o){let s=i.explicitOrderBy.concat([o]);return new ao(i.path,i.collectionGroup,s,i.filters.slice(),i.limit,i.limitType,i.startAt,i.endAt)})(e._query,n))}};function u6(t,e="asc"){let n=e,r=Mv("orderBy",t);return P0._create(r,n)}var x0=class t extends yh{constructor(e,n,r){super(),this.type=e,this._limit=n,this._limitType=r}static _create(e,n,r){return new t(e,n,r)}_apply(e){return new mi(e.firestore,e.converter,kI(e._query,this._limit,this._limitType))}};function d6(t){return Xoe("limit",t),x0._create("limit",t,"F")}var k0=class t extends yh{constructor(e,n,r){super(),this.type=e,this._docOrFields=n,this._inclusive=r}static _create(e,n,r){return new t(e,n,r)}_apply(e){let n=Qae(e,this.type,this._docOrFields,this._inclusive);return new mi(e.firestore,e.converter,(function(i,o){return new ao(i.path,i.collectionGroup,i.explicitOrderBy.slice(),i.filters.slice(),i.limit,i.limitType,o,i.endAt)})(e._query,n))}};function h6(...t){return k0._create("startAfter",t,!1)}function Qae(t,e,n,r){if(n[0]=Me(n[0]),n[0]instanceof Pl)return(function(o,s,a,c,l){if(!c)throw new j(x.NOT_FOUND,`Can't use a DocumentSnapshot that doesn't exist for ${a}().`);let d=[];for(let h of Yd(o))if(h.field.isKeyField())d.push(Al(s,c.key));else{let f=c.data.field(h.field);if(vv(f))throw new j(x.INVALID_ARGUMENT,'Invalid query. You are trying to start or end a query using a document for which the field "'+h.field+'" is an uncommitted server timestamp. (Since the value of this field is unknown, you cannot start/end a query with it.)');if(f===null){let g=h.field.canonicalString();throw new j(x.INVALID_ARGUMENT,`Invalid query. You are trying to start or end a query using a document for which the field '${g}' (used as the orderBy) does not exist.`)}d.push(f)}return new so(d,l)})(t._query,t.firestore._databaseId,e,n[0]._document,r);{let i=Ov(t.firestore);return(function(s,a,c,l,d,h){let f=s.explicitOrderBy;if(d.length>f.length)throw new j(x.INVALID_ARGUMENT,`Too many arguments provided to ${l}(). The number of arguments must be less than or equal to the number of orderBy() clauses`);let g=[];for(let E=0;E<d.length;E++){let I=d[E];if(f[E].field.isKeyField()){if(typeof I!="string")throw new j(x.INVALID_ARGUMENT,`Invalid query. Expected a string for document ID in ${l}(), but got a ${typeof I}`);if(!tM(s)&&I.indexOf("/")!==-1)throw new j(x.INVALID_ARGUMENT,`Invalid query. When querying a collection and ordering by documentId(), the value passed to ${l}() must be a plain document ID, but '${I}' contains a slash.`);let S=s.path.child(ke.fromString(I));if(!Z.isDocumentKey(S))throw new j(x.INVALID_ARGUMENT,`Invalid query. When querying a collection group and ordering by documentId(), the value passed to ${l}() must result in a valid document path, but '${S}' is not because it contains an odd number of segments.`);let L=new Z(S);g.push(Al(a,L))}else{let S=t6(c,l,I);g.push(S)}}return new so(g,h)})(t._query,t.firestore._databaseId,i,e,n,r)}}function a3(t,e,n){if(typeof(n=Me(n))=="string"){if(n==="")throw new j(x.INVALID_ARGUMENT,"Invalid query. When querying with documentId(), you must provide a valid document ID, but it was an empty string.");if(!tM(e)&&n.indexOf("/")!==-1)throw new j(x.INVALID_ARGUMENT,`Invalid query. When querying a collection by documentId(), you must provide a plain document ID, but '${n}' contains a '/' character.`);let r=e.path.child(ke.fromString(n));if(!Z.isDocumentKey(r))throw new j(x.INVALID_ARGUMENT,`Invalid query. When querying a collection group by documentId(), the value provided must result in a valid document path, but '${r}' is not because it has an odd number of segments (${r.length}).`);return Al(t,new Z(r))}if(n instanceof en)return Al(t,n._key);throw new j(x.INVALID_ARGUMENT,`Invalid query. When querying with documentId(), you must provide a valid string or a DocumentReference, but it was: ${_v(n)}.`)}function c3(t,e){if(!Array.isArray(t)||t.length===0)throw new j(x.INVALID_ARGUMENT,`Invalid Query. A non-empty array is required for '${e.toString()}' filters.`)}function f6(t,e){let n=(function(i,o){for(let s of i)for(let a of s.getFlattenedFilters())if(o.indexOf(a.op)>=0)return a.op;return null})(t.filters,(function(i){switch(i){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[]}})(e.op));if(n!==null)throw n===e.op?new j(x.INVALID_ARGUMENT,`Invalid query. You cannot use more than one '${e.op.toString()}' filter.`):new j(x.INVALID_ARGUMENT,`Invalid query. You cannot use '${e.op.toString()}' filters with '${n.toString()}' filters.`)}function p6(t,e){if(!(e instanceof nm||e instanceof Ih))throw new j(x.INVALID_ARGUMENT,`Function ${t}() requires AppliableConstraints created with a call to 'where(...)', 'or(...)', or 'and(...)'.`)}var Ev=class{convertValue(e,n="none"){switch(ga(e)){case 0:return null;case 1:return e.booleanValue;case 2:return _t(e.integerValue||e.doubleValue);case 3:return this.convertTimestamp(e.timestampValue);case 4:return this.convertServerTimestamp(e,n);case 5:return e.stringValue;case 6:return this.convertBytes(Zo(e.bytesValue));case 7:return this.convertReference(e.referenceValue);case 8:return this.convertGeoPoint(e.geoPointValue);case 9:return this.convertArray(e.arrayValue,n);case 11:return this.convertObject(e.mapValue,n);case 10:return this.convertVectorValue(e.mapValue);default:throw re(62114,{value:e})}}convertObject(e,n){return this.convertObjectMap(e.fields,n)}convertObjectMap(e,n="none"){let r={};return Aa(e,(i,o)=>{r[i]=this.convertValue(o,n)}),r}convertVectorValue(e){var n,r,i;let o=(i=(r=(n=e.fields)===null||n===void 0?void 0:n[ah].arrayValue)===null||r===void 0?void 0:r.values)===null||i===void 0?void 0:i.map(s=>_t(s.doubleValue));return new ha(o)}convertGeoPoint(e){return new da(_t(e.latitude),_t(e.longitude))}convertArray(e,n){return(e.values||[]).map(r=>this.convertValue(r,n))}convertServerTimestamp(e,n){switch(n){case"previous":let r=Sv(e);return r==null?null:this.convertValue(r,n);case"estimate":return this.convertTimestamp(kg(e));default:return null}}convertTimestamp(e){let n=Jo(e);return new Tt(n.seconds,n.nanos)}convertDocumentKey(e,n){let r=ke.fromString(e);ae(pW(r),9688,{name:e});let i=new sh(r.get(1),r.get(3)),o=new Z(r.popFirst(5));return i.isEqual(n)||Mt(`Document ${o} contains a document reference within a different database (${i.projectId}/${i.database}) which is not supported. It will be treated as a reference in the current database (${n.projectId}/${n.database}) instead.`),o}};function g6(t,e,n){let r;return r=t?n&&(n.merge||n.mergeFields)?t.toFirestore(e,n):t.toFirestore(e):e,r}var F0=class extends Ev{constructor(e){super(),this.firestore=e}convertBytes(e){return new Xo(e)}convertReference(e){let n=this.convertDocumentKey(e,this.firestore._databaseId);return new en(this.firestore,null,n)}};function Jae(){return new R0("count")}var la=class{constructor(e,n){this.hasPendingWrites=e,this.fromCache=n}isEqual(e){return this.hasPendingWrites===e.hasPendingWrites&&this.fromCache===e.fromCache}},fa=class t extends Pl{constructor(e,n,r,i,o,s){super(e,n,r,i,s),this._firestore=e,this._firestoreImpl=e,this.metadata=o}exists(){return super.exists()}data(e={}){if(this._document){if(this._converter){let n=new Qd(this._firestore,this._userDataWriter,this._key,this._document,this.metadata,null);return this._converter.fromFirestore(n,e)}return this._userDataWriter.convertValue(this._document.data.value,e.serverTimestamps)}}get(e,n={}){if(this._document){let r=this._document.data.field(Mv("DocumentSnapshot.get",e));if(r!==null)return this._userDataWriter.convertValue(r,n.serverTimestamps)}}toJSON(){if(this.metadata.hasPendingWrites)throw new j(x.FAILED_PRECONDITION,"DocumentSnapshot.toJSON() attempted to serialize a document with pending writes. Await waitForPendingWrites() before invoking toJSON().");let e=this._document,n={};return n.type=t._jsonSchemaVersion,n.bundle="",n.bundleSource="DocumentSnapshot",n.bundleName=this._key.toString(),!e||!e.isValidDocument()||!e.isFoundDocument()?n:(this._userDataWriter.convertObjectMap(e.data.value.mapValue.fields,"previous"),n.bundle=(this._firestore,this.ref.path,"NOT SUPPORTED"),n)}};fa._jsonSchemaVersion="firestore/documentSnapshot/1.0",fa._jsonSchema={type:Bt("string",fa._jsonSchemaVersion),bundleSource:Bt("string","DocumentSnapshot"),bundleName:Bt("string"),bundle:Bt("string")};var Qd=class extends fa{data(e={}){return super.data(e)}},Sl=class t{constructor(e,n,r,i){this._firestore=e,this._userDataWriter=n,this._snapshot=i,this.metadata=new la(i.hasPendingWrites,i.fromCache),this.query=r}get docs(){let e=[];return this.forEach(n=>e.push(n)),e}get size(){return this._snapshot.docs.size}get empty(){return this.size===0}forEach(e,n){this._snapshot.docs.forEach(r=>{e.call(n,new Qd(this._firestore,this._userDataWriter,r.key,r,new la(this._snapshot.mutatedKeys.has(r.key),this._snapshot.fromCache),this.query.converter))})}docChanges(e={}){let n=!!e.includeMetadataChanges;if(n&&this._snapshot.excludesMetadataChanges)throw new j(x.INVALID_ARGUMENT,"To include metadata changes with your document changes, you must also pass { includeMetadataChanges:true } to onSnapshot().");return this._cachedChanges&&this._cachedChangesIncludeMetadataChanges===n||(this._cachedChanges=(function(i,o){if(i._snapshot.oldDocs.isEmpty()){let s=0;return i._snapshot.docChanges.map(a=>{let c=new Qd(i._firestore,i._userDataWriter,a.doc.key,a.doc,new la(i._snapshot.mutatedKeys.has(a.doc.key),i._snapshot.fromCache),i.query.converter);return a.doc,{type:"added",doc:c,oldIndex:-1,newIndex:s++}})}{let s=i._snapshot.oldDocs;return i._snapshot.docChanges.filter(a=>o||a.type!==3).map(a=>{let c=new Qd(i._firestore,i._userDataWriter,a.doc.key,a.doc,new la(i._snapshot.mutatedKeys.has(a.doc.key),i._snapshot.fromCache),i.query.converter),l=-1,d=-1;return a.type!==0&&(l=s.indexOf(a.doc.key),s=s.delete(a.doc.key)),a.type!==1&&(s=s.add(a.doc),d=s.indexOf(a.doc.key)),{type:Zae(a.type),doc:c,oldIndex:l,newIndex:d}})}})(this,n),this._cachedChangesIncludeMetadataChanges=n),this._cachedChanges}toJSON(){if(this.metadata.hasPendingWrites)throw new j(x.FAILED_PRECONDITION,"QuerySnapshot.toJSON() attempted to serialize a document with pending writes. Await waitForPendingWrites() before invoking toJSON().");let e={};e.type=t._jsonSchemaVersion,e.bundleSource="QuerySnapshot",e.bundleName=wg.newId(),this._firestore._databaseId.database,this._firestore._databaseId.projectId;let n=[],r=[],i=[];return this.docs.forEach(o=>{o._document!==null&&(n.push(o._document),r.push(this._userDataWriter.convertObjectMap(o._document.data.value.mapValue.fields,"previous")),i.push(o.ref.path))}),e.bundle=(this._firestore,this.query._query,e.bundleName,"NOT SUPPORTED"),e}};function Zae(t){switch(t){case 0:return"added";case 2:case 3:return"modified";case 1:return"removed";default:return re(61501,{type:t})}}function m6(t){t=or(t,en);let e=or(t.firestore,Ei);return Hae(Rh(e),t._key).then(n=>v6(e,t,n))}Sl._jsonSchemaVersion="firestore/querySnapshot/1.0",Sl._jsonSchema={type:Bt("string",Sl._jsonSchemaVersion),bundleSource:Bt("string","QuerySnapshot"),bundleName:Bt("string"),bundle:Bt("string")};var xl=class extends Ev{constructor(e){super(),this.firestore=e}convertBytes(e){return new Xo(e)}convertReference(e){let n=this.convertDocumentKey(e,this.firestore._databaseId);return new en(this.firestore,null,n)}};function E6(t){t=or(t,mi);let e=or(t.firestore,Ei),n=Rh(e),r=new xl(e);return o6(t._query),$ae(n,t._query).then(i=>new Sl(e,r,t,i))}function _6(t,e,n){t=or(t,en);let r=or(t.firestore,Ei),i=g6(t.converter,e,n);return I6(r,[e6(Ov(r),"setDoc",t._key,i,t.converter!==null,n).toMutation(t._key,yn.none())])}function T6(t){return I6(or(t.firestore,Ei),[new wl(t._key,yn.none())])}function y6(t,...e){var n,r,i;t=Me(t);let o={includeMetadataChanges:!1,source:"default"},s=0;typeof e[s]!="object"||s3(e[s])||(o=e[s++]);let a={includeMetadataChanges:o.includeMetadataChanges,source:o.source};if(s3(e[s])){let h=e[s];e[s]=(n=h.next)===null||n===void 0?void 0:n.bind(h),e[s+1]=(r=h.error)===null||r===void 0?void 0:r.bind(h),e[s+2]=(i=h.complete)===null||i===void 0?void 0:i.bind(h)}let c,l,d;if(t instanceof en)l=or(t.firestore,Ei),d=am(t._key.path),c={next:h=>{e[s]&&e[s](v6(l,t,h))},error:e[s+1],complete:e[s+2]};else{let h=or(t,mi);l=or(h.firestore,Ei),d=h._query;let f=new xl(l);c={next:g=>{e[s]&&e[s](new Sl(l,f,h,g))},error:e[s+1],complete:e[s+2]},o6(t._query)}return(function(f,g,E,I){let S=new Zg(I),L=new Jg(g,S,E);return f.asyncQueue.enqueueAndForget(()=>y(null,null,function*(){return hM(yield dv(f),L)})),()=>{S.Ou(),f.asyncQueue.enqueueAndForget(()=>y(null,null,function*(){return fM(yield dv(f),L)}))}})(Rh(l),d,a,c)}function I6(t,e){return(function(r,i){let o=new ir;return r.asyncQueue.enqueueAndForget(()=>y(null,null,function*(){return Rae(yield jae(r),i,o)})),o.promise})(Rh(t),e)}function v6(t,e,n){let r=n.docs.get(e._key),i=new xl(t);return new fa(t,i,e._key,r,new la(n.hasPendingWrites,n.fromCache),e.converter)}function S6(t){return A6(t,{count:Jae()})}function A6(t,e){let n=or(t.firestore,Ei),r=Rh(n),i=Sse(e,(o,s)=>new pO(s,o.aggregateType,o._internalFieldPath));return Wae(r,t._query,i).then(o=>(function(a,c,l){let d=new xl(a);return new N0(c,d,l)})(n,t,o))}var U0=class{constructor(e){let n;this.kind="persistent",e?.tabManager?(e.tabManager._initialize(e),n=e.tabManager):(n=ece(void 0),n._initialize(e)),this._onlineComponentProvider=n._onlineComponentProvider,this._offlineComponentProvider=n._offlineComponentProvider}toJSON(){return{kind:this.kind}}};function CM(t){return new U0(t)}var V0=class{constructor(e){this.forceOwnership=e,this.kind="persistentSingleTab"}toJSON(){return{kind:this.kind}}_initialize(e){this._onlineComponentProvider=IM.provider,this._offlineComponentProvider={build:n=>new uv(n,e?.cacheSizeBytes,this.forceOwnership)}}},B0=class{constructor(){this.kind="PersistentMultipleTab"}toJSON(){return{kind:this.kind}}_initialize(e){this._onlineComponentProvider=IM.provider,this._offlineComponentProvider={build:n=>new S0(n,e?.cacheSizeBytes)}}};function ece(t){return new V0(t?.forceOwnership)}function DM(){return new B0}var tce={maxAttempts:5};function yg(t,e){if((t=Me(t)).firestore!==e)throw new j(x.INVALID_ARGUMENT,"Provided document reference is from a different Firestore instance.");return t}var G0=class{constructor(e,n){this._firestore=e,this._transaction=n,this._dataReader=Ov(e)}get(e){let n=yg(e,this._firestore),r=new F0(this._firestore);return this._transaction.lookup([n._key]).then(i=>{if(!i||i.length!==1)return re(24041);let o=i[0];if(o.isFoundDocument())return new Pl(this._firestore,r,o.key,o,n.converter);if(o.isNoDocument())return new Pl(this._firestore,r,n._key,null,n.converter);throw re(18433,{doc:o})})}set(e,n,r){let i=yg(e,this._firestore),o=g6(i.converter,n,r),s=e6(this._dataReader,"Transaction.set",i._key,o,i.converter!==null,r);return this._transaction.set(i._key,s),this}update(e,n,r,...i){let o=yg(e,this._firestore),s;return s=typeof(n=Me(n))=="string"||n instanceof Th?Yae(this._dataReader,"Transaction.update",o._key,n,r,i):Kae(this._dataReader,"Transaction.update",o._key,n),this._transaction.update(o._key,s),this}delete(e){let n=yg(e,this._firestore);return this._transaction.delete(n._key),this}};var j0=class extends G0{constructor(e,n){super(e,n),this._firestore=e}get(e){let n=yg(e,this._firestore),r=new xl(this._firestore);return super.get(e).then(i=>new fa(this._firestore,r,n._key,i._document,new la(!1,!1),n.converter))}};function C6(t,e,n){t=or(t,Ei);let r=Object.assign(Object.assign({},tce),n);return(function(o){if(o.maxAttempts<1)throw new j(x.INVALID_ARGUMENT,"Max attempts must be at least 1")})(r),(function(o,s,a){let c=new ir;return o.asyncQueue.enqueueAndForget(()=>y(null,null,function*(){let l=yield zW(o);new C0(o.asyncQueue,l,a,s,c).zu()})),c.promise})(Rh(t),i=>e(new j0(t,i)),r)}(function(e,n=!0){(function(i){vh=i})(Bs),$n(new Xt("firestore",(r,{instanceIdentifier:i,options:o})=>{let s=r.getProvider("app").getImmediate(),a=new Ei(new Ub(r.getProvider("auth-internal")),new Gb(s,r.getProvider("app-check-internal")),(function(l,d){if(!Object.prototype.hasOwnProperty.apply(l.options,["projectId"]))throw new j(x.INVALID_ARGUMENT,'"projectId" not provided in firebase.initializeApp.');return new sh(l.options.projectId,d)})(s,i),s);return o=Object.assign({useFetchStreams:n},o),a._setSettings(o),a},"PUBLIC").setMultipleInstances(!0)),Ge(qH,KH,e),Ge(qH,KH,"esm2017")})();var pUe=ue(l6,!0,2);var Lv=ue(XW,!0,2),D6=ue(QW,!0,2);var R6=ue(T6,!0,2);var dm=ue(JW,!0,2);var N6=ue(S6,!0),RM=ue(m6,!0);var w6=ue(E6,!0);var gUe=ue(d6,!0,2);var b6=ue(y6,!0);var mUe=ue(c6,!0,2),EUe=ue(u6,!0,2),O6=ue(s6,!0,2);var M6=ue(C6,!0),L6=ue(_6,!0,2);var _Ue=ue(h6,!0,2);var TUe=ue(a6,!0,2);var Pv=class{static getFirestoreProdDbName(e,n){return n?.databaseURL?.includes("snippyly-plugin.firebaseio.com")||n?.databaseURL?.includes("snippyly-plugin-staging.firebaseio.com")?"sfdb":n?.storeDbId??(this.isTestingDb(n?.databaseURL??"")?"sdktest":`apikey${e.toLowerCase()}`)}static isTestingDb(e){try{return e.includes("-test")}catch(n){return M.error("Error in isTestingDb:",n),!1}}};var P6=(()=>{let e=class e{constructor(r,i,o){this.configService=r,this.authService=i,this.loggingService=o,this.firestore$=new ie(null);try{Ka([this.authService.getFirebaseConfig$(),this.configService.getApiKey$(),this.configService.getFirestorePersistentCacheEnabled$()]).pipe(mn(([s,a])=>!!s&&!!a),En(1)).subscribe(([s,a,c])=>{if(s&&a&&s?.firebaseOptions?.storeDbId){try{let h=sessionStorage?.getItem("veltFirestoreLogLevel")||qt?.firebaseLogLevel||"silent";H0(h)}catch(h){this.loggingService.catch("Error in FirestoreService setLogLevel: ",h)}let l=Pv.getFirestoreProdDbName(a,s.firebaseOptions),d=this.configService.getProxyConfig();if(d?.v2DbHost){let h={host:d.v2DbHost,ssl:!0};d.forceLongPolling?h.experimentalForceLongPolling=!0:h.experimentalAutoDetectLongPolling=!0,c&&(h.localCache=CM({tabManager:DM()}));try{this.firestore$.next(bv(er(),h,l))}catch(f){this.loggingService.catch("Firestore proxy: initializeFirestore failed, falling back to existing instance. Proxy settings may not be applied: ",f),this.firestore$.next(Dh(l))}}else if(c)try{let h=er(),f=bv(h,{localCache:CM({tabManager:DM()})},l);this.firestore$.next(f)}catch{this.firestore$.next(Dh(l))}else this.firestore$.next(Dh(l))}},s=>{})}catch{}}getFirestore(){return this.firestore$.asObservable()}getFirestoreValue(){return this.firestore$.value}generateFirestoreDocumentId(){try{let r=this.getFirestoreValue()||Dh("DocumentIdDb");if(r){let i=Lv(r,"generateDocumentId");return dm(i).id}return}catch(r){this.loggingService.catch("Error in FirestoreService generateFirestoreDocumentId: ",r);return}}};e.\u0275fac=function(i){return new(i||e)($(Ji),$(Ed),$(bt))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var xv=(()=>{let e=class e{constructor(r,i,o){this.authService=r,this.configService=i,this.loggingService=o,this.db$=new ie(null);try{this.authService.getFirebaseConfig$().subscribe(s=>{if(s){let a=this.configService.getProxyConfig(),c=s.firebaseOptions.databaseURL;a?.v1DbHost&&c&&(c=CV(c,a.v1DbHost),a?.forceLongPolling&&Eb());let l=Pd(void 0,c);a?.v1DbHost&&c&&this.lockDatabaseHost(l),this.db$.next(l)}},s=>{this.loggingService.catch("Error in DatabaseService constructor: ",s)})}catch(s){this.loggingService.catch("Error in DatabaseService constructor:",s)}}getDb(){return this.db$.asObservable()}getDbValue(){return this.db$.getValue()}lockDatabaseHost(r){try{let o=r?._repo?.repoInfo_;if(o){let s=o.host;Object.defineProperty(o,"host",{get:()=>s,set:()=>{},configurable:!0}),o.internalHost=s}}catch(i){this.loggingService.catch("Error in DatabaseService lockDatabaseHost: ",i)}}};e.\u0275fac=function(i){return new(i||e)($(Ed),$(Ji),$(bt))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var Nr={doc:dm,collection:Lv,collectionGroup:D6,query:O6,getDoc:RM,getDocs:w6,getCountFromServer:N6,setDoc:L6,deleteDoc:R6,onSnapshot:b6,runTransaction:M6},k6=(()=>{let e=class e{constructor(r,i,o){this.firestoreService=r,this.databaseService=i,this.loggingService=o}read(r){return y(this,null,function*(){if((r.store??"firestore")==="rtdb"){let a=this.databaseService.getDbValue();return a?{data:(yield hg(xd(a,r.location)))?.val()}:{data:void 0}}let o=this.firestoreService.getFirestoreValue();return o?{data:(yield RM(dm(o,r.location)))?.data()}:{data:void 0}})}runTransaction(r){return y(this,null,function*(){return r()})}firestoreDoc(r,i){return Nr.doc(r,i)}firestoreCollection(r,i){return Nr.collection(r,i)}firestoreCollectionGroup(r,i){return Nr.collectionGroup(r,i)}firestoreQuery(r,...i){return Nr.query(r,...i)}firestoreGetDoc(r){return Nr.getDoc(r)}firestoreGetDocs(r){return Nr.getDocs(r)}firestoreGetCountFromServer(r){return Nr.getCountFromServer(r)}firestoreSetDoc(r,i,o){return o?Nr.setDoc(r,i,o):Nr.setDoc(r,i)}firestoreDeleteDoc(r){return Nr.deleteDoc(r)}firestoreOnSnapshot(r,i,o){return o?Nr.onSnapshot(r,i,o):Nr.onSnapshot(r,i)}firestoreRunTransaction(r,i){return Nr.runTransaction(r,i)}addComment(r){return this.deferred("addComment")}editComment(r){return this.deferred("editComment")}addReaction(r){return this.deferred("addReaction")}editReaction(r){return this.deferred("editReaction")}deleteReaction(r){return this.deferred("deleteReaction")}recordDocumentView(r){return this.deferred("recordDocumentView")}getActivitiesForDocuments(r){return this.deferred("getActivitiesForDocuments")}getActivitiesForEntity(r){return this.deferred("getActivitiesForEntity")}deleteComment(r){return this.deferred("deleteComment")}setCommentResolved(r){return this.deferred("setCommentResolved")}setCommentMetadata(r){return this.deferred("setCommentMetadata")}bumpCommentViews(r){return this.deferred("bumpCommentViews")}markCommentThreadRead(r){return this.deferred("markCommentThreadRead")}markNotificationRead(r){return this.deferred("markNotificationRead")}addNotification(r){return this.deferred("addNotification")}deleteNotification(r){return this.deferred("deleteNotification")}updateNotification(r){return this.deferred("updateNotification")}updatePresence(r){return this.deferred("updatePresence")}grantAccess(r){return this.deferred("grantAccess")}revokeAccess(r){return this.deferred("revokeAccess")}getAccess(r){return this.deferred("getAccess")}upsertOrgUserProfile(r){return this.deferred("upsertOrgUserProfile")}upsertDocMetadata(r){return this.deferred("upsertDocMetadata")}upsertOrgMetadata(r){return this.deferred("upsertOrgMetadata")}createActivity(r){return this.deferred("createActivity")}saveCrdtVersion(r){return this.deferred("saveCrdtVersion")}getCrdtVersion(r){return this.deferred("getCrdtVersion")}listCrdtVersions(r){return this.deferred("listCrdtVersions")}getOrganizationUsers(r){return this.deferred("getOrganizationUsers")}setLocationMetadata(r){return this.deferred("setLocationMetadata")}fetchLocations(r){return this.deferred("fetchLocations")}createFolder(r){return this.deferred("createFolder")}setDocumentMetadata(r){return this.deferred("setDocumentMetadata")}getDocuments(r){return this.deferred("getDocuments")}fetchDocuments(r){return this.deferred("fetchDocuments")}fetchFolders(r){return this.deferred("fetchFolders")}fetchCommentAnnotations(r){return this.deferred("fetchCommentAnnotations")}getCommentAnnotationsCount(r){return this.deferred("getCommentAnnotationsCount")}markNotificationReadDoc(r){return this.deferred("markNotificationReadDoc")}getNotificationsForDocuments(r){return this.deferred("getNotificationsForDocuments")}getDocumentMetadataFromIds(r){return this.deferred("getDocumentMetadataFromIds")}getCrossOrgUserNotifications(r){return this.deferred("getCrossOrgUserNotifications")}deferred(r){return this.loggingService.warn(`[WB] FirebaseDbAdapter.${r} called but write-op wiring is deferred to Phase A (self-hosting Step 0). The SDK uses its existing direct write path in Step 0.`),Promise.resolve({ok:!1,code:"unimplemented",message:`FirebaseDbAdapter.${r} wiring deferred to Phase A`})}};e.\u0275fac=function(i){return new(i||e)($(P6),$(xv),$(bt))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var rce={comment:{mode:"persistent",scope:"doc"},notification:{mode:"persistent",scope:"user"},notificationIndex:{mode:"persistent",scope:"user"},crdt:{mode:"persistent",scope:"doc"},presence:{mode:"ephemeral",scope:"doc"},crdtSyncPresence:{mode:"ephemeral",scope:"doc"},crdtPresence:{mode:"ephemeral",scope:"doc"},liveState:{mode:"ephemeral",scope:"doc"},cursor:{mode:"ephemeral",scope:"doc"},huddle:{mode:"ephemeral",scope:"doc"},syncVideoPlayer:{mode:"ephemeral",scope:"doc"},heartbeat:{mode:"ephemeral",scope:"org"},flockSession:{mode:"ephemeral",scope:"doc"},selection:{mode:"ephemeral",scope:"doc"},reaction:{mode:"persistent",scope:"doc"},lastActivityTimestamp:{mode:"persistent",scope:"org"},lastNotificationTimestamp:{mode:"persistent",scope:"org"},documentViews:{mode:"persistent",scope:"doc"}};function F6(t){return rce[t]}var Qe={getDatabase:Pd,ref:xd,query:BH,get:hg,set:HH,update:$H,remove:GH,push:VH,runTransaction:jH,onValue:vb,onChildAdded:xH,onChildChanged:kH,onChildRemoved:FH,off:PH,objectVal:MH,listVal:OH,stateChanges:LH,onDisconnect:UH},U6=(()=>{let e=class e{constructor(r,i){this.databaseService=r,this.loggingService=i}getServerTimeOffset(){return y(this,null,function*(){try{let r=this.databaseService.getDbValue();if(!r)return 0;let o=(yield hg(xd(r,e.SERVER_TIME_OFFSET_PATH)))?.val();return typeof o=="number"?o:0}catch(r){return this.loggingService.catch("Error in FirebaseRealtimeAdapter getServerTimeOffset: ",r),0}})}onServerTimeOffset(r){let i=null,o=null;try{o=this.databaseService.getDb().subscribe(s=>{if(s){let a=xd(s,e.SERVER_TIME_OFFSET_PATH);i=vb(a,c=>{try{r(c?.val())}catch(l){this.loggingService.catch("Error in FirebaseRealtimeAdapter onServerTimeOffset callback: ",l)}})}})}catch(s){this.loggingService.catch("Error in FirebaseRealtimeAdapter onServerTimeOffset: ",s)}return()=>{try{i&&(i(),i=null),o?.unsubscribe(),o=null}catch(s){this.loggingService.catch("Error tearing down FirebaseRealtimeAdapter onServerTimeOffset: ",s)}}}getChannelTag(r){return F6(r)}getDatabaseInstance(r){return r?Qe.getDatabase(void 0,r):Qe.getDatabase()}rtdbRef(r,i){return Qe.ref(r,i)}rtdbQueryRef(r,...i){return Qe.query(r,...i)}rtdbGet(r){return Qe.get(r)}rtdbSet(r,i,o){return this.getChannelTag(r),Qe.set(i,o)}rtdbUpdate(r,i,o){return this.getChannelTag(r),Qe.update(i,o)}rtdbRemove(r,i){return this.getChannelTag(r),Qe.remove(i)}rtdbPush(r,i,o){return this.getChannelTag(r),o===void 0?Qe.push(i):Qe.push(i,o)}rtdbRunTransaction(r,i,o){return this.getChannelTag(r),Qe.runTransaction(i,o)}rtdbOnValue(r,i,o,s,a){return this.getChannelTag(r),typeof s=="function"?a?Qe.onValue(i,o,s,a):Qe.onValue(i,o,s):s?Qe.onValue(i,o,s):Qe.onValue(i,o)}rtdbOnChildAdded(r,i,o,s){return this.getChannelTag(r),s?Qe.onChildAdded(i,o,s):Qe.onChildAdded(i,o)}rtdbOnChildChanged(r,i,o,s){return this.getChannelTag(r),s?Qe.onChildChanged(i,o,s):Qe.onChildChanged(i,o)}rtdbOnChildRemoved(r,i,o,s){return this.getChannelTag(r),s?Qe.onChildRemoved(i,o,s):Qe.onChildRemoved(i,o)}rtdbOff(r,i,o){Qe.off(r,i,o)}rtdbObjectVal$(r,i){return this.getChannelTag(r),Qe.objectVal(i)}rtdbListVal$(r,i){return this.getChannelTag(r),Qe.listVal(i)}rtdbStateChanges$(r,i){return this.getChannelTag(r),Qe.stateChanges(i)}rtdbOnDisconnectSet(r,i,o){return this.getChannelTag(r),Qe.onDisconnect(i).set(o)}rtdbOnDisconnectUpdate(r,i,o){return this.getChannelTag(r),Qe.onDisconnect(i).update(o)}rtdbOnDisconnectRemove(r,i){return this.getChannelTag(r),Qe.onDisconnect(i).remove()}rtdbOnDisconnectCancel(r,i){return this.getChannelTag(r),Qe.onDisconnect(i).cancel()}subscribe(r,i,o,s){return{unsubscribe:()=>{}}}publish(r,i,o){return y(this,null,function*(){return{ok:!1,code:"unimplemented",message:"RealtimeAdapter.publish wiring deferred to Phase A"}})}presence(r,i){return y(this,null,function*(){return{ok:!1,code:"unimplemented",message:"RealtimeAdapter.presence wiring deferred to Phase A"}})}onDisconnect(r,i){return y(this,null,function*(){return()=>{}})}};e.SERVER_TIME_OFFSET_PATH=".info/serverTimeOffset",e.\u0275fac=function(i){return new(i||e)($(xv),$(bt))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var Nh=null,NM=new Set;function V6(t){return NM.add(t),()=>NM.delete(t)}function YUe(t){return new Promise(e=>{let n=!1,r=null,i=()=>{if(!n){n=!0,clearTimeout(o);try{r?.()}catch{}e()}},o=setTimeout(i,t);r=V6(i),Nh&&i()})}function XUe(t){return tf(()=>{let e=!1;try{if(t.isPortableFeedActive())return lt(null)}catch(r){e=!0,t.onError("portable check",r)}let n=new fe(r=>V6(()=>{try{(e||t.isPortableFeedActive())&&r.next(null)}catch(i){e=!0,r.next(null),t.onError("registration re-check",i)}}));return gs(t.firebaseDb$().pipe(mn(r=>!!r)),n)})}function ice(t){let e=t?.message;return typeof e=="string"&&/^NG0205(?!\d)/.test(e)}function QUe(t){if(Nh=t??null,Nh)for(let e of Array.from(NM))try{e()}catch(n){M.catch("Error in portable adapter registration listener: ",n)}}var JUe=(()=>{let e=class e{constructor(r){this.injector=r}get configService(){return this._configService??=this.injector.get(Ji)}get authService(){return this._authService??=this.injector.get(Ed)}isPortableBackendActive(){return this.isPortableActive()}evaluatePortableGates(){try{return{chunkRegistered:!!Nh,flagOn:this.configService.getEnablePortableBackend()===!0,identifyRecorded:!!this.authService.getPortableBackend()}}catch(r){return ice(r)||M.catch("Error in AdapterSelectorService evaluatePortableGates: ",r),null}}isPortableActive(){let r=this.evaluatePortableGates();return!!r&&r.chunkRegistered&&r.flagOn&&r.identifyRecorded}isPortableBackendPending(){let r=this.evaluatePortableGates();return!!r&&!r.chunkRegistered&&r.flagOn&&r.identifyRecorded}isPortableSession(){let r=this.evaluatePortableGates();return!!r&&r.flagOn&&r.identifyRecorded}resolveDbAdapter(){return this.isPortableActive()?Nh.db:this.injector.get(k6)}resolveRealtimeAdapter(){return this.isPortableActive()?Nh.realtime:this.injector.get(U6)}};e.\u0275fac=function(i){return new(i||e)($(ze))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var nVe=new Set(YG);function rVe(t){try{let e=t?.reasonCode;return typeof e!="string"||!e.trim()?"":` [reason: ${e.trim()}]`}catch{return""}}export{B as a,Ee as b,X6 as c,oce as d,sce as e,ace as f,y as g,gt as h,fe as i,lS as j,Rt as k,ie as l,Xa as m,B4 as n,G4 as o,Wa as p,cr as q,lt as r,j4 as s,H4 as t,R4 as u,De as v,Ka as w,tf as x,$4 as y,wi as z,Q4 as A,To as B,I4 as C,gs as D,mn as E,u4 as F,oS as G,sS as H,T4 as I,Jm as J,En as K,cS as L,yo as M,Qh as N,Ya as O,Zm as P,dS as Q,v4 as R,hS as S,S4 as T,Qa as U,Mr as V,ps as W,A4 as X,eE as Y,C4 as Z,w4 as _,J as $,SE as aa,Q as ba,So as ca,z as da,$ as ea,Y as fa,Xn as ga,Nn as ha,bi as ia,gP as ja,mP as ka,RP as la,NP as ma,ze as na,on as oa,Hn as pa,lr as qa,ki as ra,Ec as sa,Lr as ta,wz as ua,zt as va,vC as wa,Kz as xa,Ns as ya,i_ as za,y_ as Aa,n8 as Ba,V8 as Ca,B8 as Da,G8 as Ea,$8 as Fa,W8 as Ga,c5 as Ha,Ro as Ia,Ae as Ja,m5 as Ka,oq as La,sq as Ma,Vi as Na,bf as Oa,bo as Pa,L_ as Qa,st as Ra,mq as Sa,ji as Ta,vc as Ua,r1 as Va,i9 as Wa,ws as Xa,Hi as Ya,Mf as Za,l1 as _a,p9 as $a,h1 as ab,f1 as bb,k_ as cb,bs as db,T1 as eb,y1 as fb,I9 as gb,S9 as hb,A9 as ib,C9 as jb,D9 as kb,R9 as lb,N9 as mb,I1 as nb,aD as ob,cD as pb,v1 as qb,lD as rb,uD as sb,S1 as tb,dD as ub,hD as vb,C1 as wb,P9 as xb,D1 as yb,N1 as zb,w1 as Ab,V9 as Bb,G9 as Cb,j9 as Db,$9 as Eb,W9 as Fb,z9 as Gb,q9 as Hb,K9 as Ib,Y9 as Jb,X9 as Kb,x1 as Lb,k1 as Mb,lK as Nb,dK as Ob,IK as Pb,W1 as Qb,fD as Rb,z1 as Sb,q1 as Tb,K1 as Ub,CK as Vb,Y1 as Wb,Q1 as Xb,DK as Yb,RK as Zb,NK as _b,wK as $b,PK as ac,xK as bc,kK as cc,FK as dc,UK as ec,VK as fc,BK as gc,GK as hc,jK as ic,HK as jc,$K as kc,WK as lc,qK as mc,YK as nc,XK as oc,QK as pc,JK as qc,ZK as rc,nY as sc,Uf as tc,Vf as uc,_D as vc,FSe as wc,USe as xc,VSe as yc,MY as zc,bD as Ac,BSe as Bc,GSe as Cc,jSe as Dc,$i as Ec,NF as Fc,ZY as Gc,WF as Hc,e7 as Ic,FD as Jc,t7 as Kc,n7 as Lc,r7 as Mc,i7 as Nc,s7 as Oc,c7 as Pc,u7 as Qc,UD as Rc,tT as Sc,nT as Tc,D7 as Uc,w7 as Vc,pU as Wc,Z7 as Xc,eX as Yc,XD as Zc,RU as _c,eR as $c,ld as ad,_r as bd,ks as cd,FT as dd,Fc as ed,Jn as fd,Me as gd,Xt as hd,$n as id,Xi as jd,Zn as kd,Bs as ld,er as md,Ge as nd,$J as od,aLe as pd,cLe as qd,lLe as rd,si as sd,Gs as td,Go as ud,ai as vd,ue as wd,ci as xd,jo as yd,RLe as zd,NLe as Ad,wLe as Bd,Hs as Cd,fee as Dd,gee as Ed,Nee as Fd,Hc as Gd,$c as Hd,dxe as Id,hxe as Jd,oFe as Kd,sFe as Ld,aFe as Md,cFe as Nd,lFe as Od,uFe as Pd,Ho as Qd,bxe as Rd,Oxe as Sd,Mxe as Td,bU as Ud,yX as Vd,np as Wd,qt as Xd,M as Yd,lDe as Zd,uDe as _d,dDe as $d,hDe as ae,fDe as be,pDe as ce,gDe as de,Wi as ee,mDe as fe,EDe as ge,_De as he,TDe as ie,rX as je,iX as ke,oX as le,sX as me,aX as ne,cX as oe,yDe as pe,lX as qe,QD as re,uX as se,Er as te,uT as ue,dX as ve,Zu as we,Mn as xe,hX as ye,dT as ze,fX as Ae,pX as Be,gX as Ce,IDe as De,vDe as Ee,SDe as Fe,mX as Ge,F as He,CU as Ie,oRe as Je,sRe as Ke,aRe as Le,cRe as Me,ed as Ne,hRe as Oe,fRe as Pe,pRe as Qe,Ur as Re,Et as Se,OU as Te,MU as Ue,HRe as Ve,$Re as We,LU as Xe,tR as Ye,PU as Ze,nR as _e,IT as $e,IX as af,vX as bf,SX as cf,AX as df,CX as ef,DX as ff,RX as gf,NX as hf,wX as if,bX as jf,OX as kf,MX as lf,UU as mf,VU as nf,BU as of,GU as pf,jU as qf,zi as rf,gNe as sf,vT as tf,HU as uf,$U as vf,WU as wf,zU as xf,qU as yf,KU as zf,YU as Af,XU as Bf,QU as Cf,JU as Df,ZU as Ef,eV as Ff,tV as Gf,QNe as Hf,JNe as If,nV as Jf,rR as Kf,rV as Lf,iV as Mf,sV as Nf,aV as Of,Owe as Pf,Mwe as Qf,LX as Rf,PX as Sf,kOe as Tf,ST as Uf,lR as Vf,Pc as Wf,CV as Xf,qOe as Yf,Mc as Zf,Vo as _f,KOe as $f,YOe as ag,RV as bg,XOe as cg,QOe as dg,JOe as eg,ZOe as fg,e0e as gg,t0e as hg,n0e as ig,NV as jg,wV as kg,r0e as lg,i0e as mg,kX as ng,o0e as og,s0e as pg,a0e as qg,c0e as rg,bV as sg,nd as tg,l0e as ug,OV as vg,LV as wg,fV as xg,pV as yg,FX as zg,UX as Ag,wT as Bg,sp as Cg,u0e as Dg,d0e as Eg,qi as Fg,h0e as Gg,rd as Hg,GX as Ig,f0e as Jg,gR as Kg,mV as Lg,jX as Mg,DT as Ng,p0e as Og,g0e as Pg,PV as Qg,xV as Rg,HX as Sg,Oc as Tg,$X as Ug,qX as Vg,m0e as Wg,KX as Xg,E0e as Yg,YX as Zg,XX as _g,QX as $g,JX as ah,xc as bh,_0e as ch,T0e as dh,y0e as eh,dR as fh,I0e as gh,eQ as hh,v0e as ih,S0e as jh,VV as kh,A0e as lh,C0e as mh,D0e as nh,R0e as oh,N0e as ph,w0e as qh,b0e as rh,AT as sh,O0e as th,M0e as uh,L0e as vh,mR as wh,P0e as xh,IV as yh,x0e as zh,k0e as Ah,F0e as Bh,U0e as Ch,V0e as Dh,B0e as Eh,G0e as Fh,j0e as Gh,H0e as Hh,$0e as Ih,W0e as Jh,z0e as Kh,q0e as Lh,K0e as Mh,Y0e as Nh,X0e as Oh,Q0e as Ph,J0e as Qh,Z0e as Rh,eMe as Sh,tMe as Th,nMe as Uh,iQ as Vh,rMe as Wh,iMe as Xh,oMe as Yh,vV as Zh,sMe as _h,aMe as $h,cp as ai,oQ as bi,cMe as ci,lMe as di,uMe as ei,dMe as fi,sQ as gi,hMe as hi,fMe as ii,zV as ji,_R as ki,od as li,pMe as mi,op as ni,gMe as oi,mMe as pi,EMe as qi,fR as ri,_Me as si,TMe as ti,yMe as ui,IMe as vi,AQ as wi,vMe as xi,SMe as yi,AMe as zi,SV as Ai,CMe as Bi,CQ as Ci,VQ as Di,BQ as Ei,St as Fi,pd as Gi,NDe as Hi,wDe as Ii,bDe as Ji,ODe as Ki,MDe as Li,LDe as Mi,PDe as Ni,xDe as Oi,kDe as Pi,FDe as Qi,UDe as Ri,VDe as Si,hT as Ti,BDe as Ui,GDe as Vi,jDe as Wi,fT as Xi,HDe as Yi,$De as Zi,WDe as _i,zDe as $i,qDe as aj,KDe as bj,YDe as cj,pT as dj,XDe as ej,QDe as fj,gT as gj,TU as hj,yU as ij,IU as jj,vU as kj,mT as lj,zs as mj,bt as nj,Ji as oj,zc as pj,tne as qj,Xxe as rj,ly as sj,mke as tj,Wn as uj,Eke as vj,YG as wj,Ske as xj,Ake as yj,Cke as zj,Dke as Aj,Rke as Bj,Nke as Cj,pUe as Dj,gUe as Ej,mUe as Fj,EUe as Gj,_Ue as Hj,TUe as Ij,Pv as Jj,P6 as Kj,xv as Lj,k6 as Mj,F6 as Nj,U6 as Oj,V6 as Pj,YUe as Qj,XUe as Rj,QUe as Sj,JUe as Tj,rVe as Uj,t2 as Vj,n2 as Wj,fy as Xj,Uke as Yj,Vke as Zj,C2 as _j,Ed as $j};
174
+ `+t.stack),e}function s3(t){return(function(n,r){if(typeof n!="object"||n===null)return!1;let i=n;for(let o of r)if(o in i&&typeof i[o]=="function")return!0;return!1})(t,["next","error","complete"])}var Ei=class extends Ll{constructor(e,n,r,i){super(e,n,r,i),this.type="firestore",this._queue=new fv,this._persistenceKey=i?.name||"[DEFAULT]"}_terminate(){return y(this,null,function*(){if(this._firestoreClient){let e=this._firestoreClient.terminate();this._queue=new fv(e),this._firestoreClient=void 0,yield e}})}};function bv(t,e,n){n||(n=Fg);let r=Xi(t,"firestore");if(r.isInitialized(n)){let i=r.getImmediate({identifier:n}),o=r.getOptions(n);if(oi(o,e))return i;throw new j(x.FAILED_PRECONDITION,"initializeFirestore() has already been called with different options. To avoid this error, call initializeFirestore() with the same options as when it was originally called, or call getFirestore() to return the already initialized instance.")}if(e.cacheSizeBytes!==void 0&&e.localCache!==void 0)throw new j(x.INVALID_ARGUMENT,"cache and cacheSizeBytes cannot be specified at the same time as cacheSizeBytes willbe deprecated. Instead, specify the cache size in the cache object");if(e.cacheSizeBytes!==void 0&&e.cacheSizeBytes!==-1&&e.cacheSizeBytes<SW)throw new j(x.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");return e.host&&_r(e.host)&&ks(e.host),r.initialize({options:e,instanceIdentifier:n})}function Dh(t,e){let n=typeof t=="object"?t:er(),r=typeof t=="string"?t:e||Fg,i=Xi(n,"firestore").getImmediate({identifier:r});if(!i._initialized){let o=ld("firestore");o&&YW(i,...o)}return i}function Rh(t){if(t._terminated)throw new j(x.FAILED_PRECONDITION,"The client has already been terminated.");return t._firestoreClient||zae(t),t._firestoreClient}function zae(t){var e,n,r;let i=t._freezeSettings(),o=(function(a,c,l,d){return new Qb(a,c,l,d.host,d.ssl,d.experimentalForceLongPolling,d.experimentalAutoDetectLongPolling,qW(d.experimentalLongPollingOptions),d.useFetchStreams,d.isUsingEmulator)})(t._databaseId,((e=t._app)===null||e===void 0?void 0:e.options.appId)||"",t._persistenceKey,i);t._componentsProvider||!((n=i.localCache)===null||n===void 0)&&n._offlineComponentProvider&&(!((r=i.localCache)===null||r===void 0)&&r._onlineComponentProvider)&&(t._componentsProvider={_offline:i.localCache._offlineComponentProvider,_online:i.localCache._onlineComponentProvider}),t._firestoreClient=new D0(t._authCredentials,t._appCheckCredentials,t._queue,o,t._componentsProvider&&(function(a){let c=a?._online.build();return{_offline:a?._offline.build(c),_online:c}})(t._componentsProvider))}var R0=class{constructor(e="count",n){this._internalFieldPath=n,this.type="AggregateField",this.aggregateType=e}},N0=class{constructor(e,n,r){this._userDataWriter=n,this._data=r,this.type="AggregateQuerySnapshot",this.query=e}data(){return this._userDataWriter.convertObjectMap(this._data)}};var Xo=class t{constructor(e){this._byteString=e}static fromBase64String(e){try{return new t(Gt.fromBase64String(e))}catch(n){throw new j(x.INVALID_ARGUMENT,"Failed to construct data from Base64 string: "+n)}}static fromUint8Array(e){return new t(Gt.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:t._jsonSchemaVersion,bytes:this.toBase64()}}static fromJSON(e){if(rm(e,t._jsonSchema))return t.fromBase64String(e.bytes)}};Xo._jsonSchemaVersion="firestore/bytes/1.0",Xo._jsonSchema={type:Bt("string",Xo._jsonSchemaVersion),bytes:Bt("string")};var Th=class{constructor(...e){for(let n=0;n<e.length;++n)if(e[n].length===0)throw new j(x.INVALID_ARGUMENT,"Invalid field name at argument $(i + 1). Field names must not be empty.");this._internalPath=new Jt(e)}isEqual(e){return this._internalPath.isEqual(e._internalPath)}};var em=class{constructor(e){this._methodName=e}};var da=class t{constructor(e,n){if(!isFinite(e)||e<-90||e>90)throw new j(x.INVALID_ARGUMENT,"Latitude must be a number between -90 and 90, but was: "+e);if(!isFinite(n)||n<-180||n>180)throw new j(x.INVALID_ARGUMENT,"Longitude must be a number between -180 and 180, but was: "+n);this._lat=e,this._long=n}get latitude(){return this._lat}get longitude(){return this._long}isEqual(e){return this._lat===e._lat&&this._long===e._long}_compareTo(e){return Ie(this._lat,e._lat)||Ie(this._long,e._long)}toJSON(){return{latitude:this._lat,longitude:this._long,type:t._jsonSchemaVersion}}static fromJSON(e){if(rm(e,t._jsonSchema))return new t(e.latitude,e.longitude)}};da._jsonSchemaVersion="firestore/geoPoint/1.0",da._jsonSchema={type:Bt("string",da._jsonSchemaVersion),latitude:Bt("number"),longitude:Bt("number")};var ha=class t{constructor(e){this._values=(e||[]).map(n=>n)}toArray(){return this._values.map(e=>e)}isEqual(e){return(function(r,i){if(r.length!==i.length)return!1;for(let o=0;o<r.length;++o)if(r[o]!==i[o])return!1;return!0})(this._values,e._values)}toJSON(){return{type:t._jsonSchemaVersion,vectorValues:this._values}}static fromJSON(e){if(rm(e,t._jsonSchema)){if(Array.isArray(e.vectorValues)&&e.vectorValues.every(n=>typeof n=="number"))return new t(e.vectorValues);throw new j(x.INVALID_ARGUMENT,"Expected 'vectorValues' field to be a number array")}}};ha._jsonSchemaVersion="firestore/vectorValue/1.0",ha._jsonSchema={type:Bt("string",ha._jsonSchemaVersion),vectorValues:Bt("object")};var qae=/^__.*__$/,w0=class{constructor(e,n,r){this.data=e,this.fieldMask=n,this.fieldTransforms=r}toMutation(e,n){return this.fieldMask!==null?new gi(e,this.data,this.fieldMask,n,this.fieldTransforms):new Ta(e,this.data,n,this.fieldTransforms)}},pv=class{constructor(e,n,r){this.data=e,this.fieldMask=n,this.fieldTransforms=r}toMutation(e,n){return new gi(e,this.data,this.fieldMask,n,this.fieldTransforms)}};function ZW(t){switch(t){case 0:case 2:case 1:return!0;case 3:case 4:return!1;default:throw re(40011,{Ec:t})}}var b0=class t{constructor(e,n,r,i,o,s){this.settings=e,this.databaseId=n,this.serializer=r,this.ignoreUndefinedProperties=i,o===void 0&&this.Ac(),this.fieldTransforms=o||[],this.fieldMask=s||[]}get path(){return this.settings.path}get Ec(){return this.settings.Ec}Rc(e){return new t(Object.assign(Object.assign({},this.settings),e),this.databaseId,this.serializer,this.ignoreUndefinedProperties,this.fieldTransforms,this.fieldMask)}Vc(e){var n;let r=(n=this.path)===null||n===void 0?void 0:n.child(e),i=this.Rc({path:r,mc:!1});return i.fc(e),i}gc(e){var n;let r=(n=this.path)===null||n===void 0?void 0:n.child(e),i=this.Rc({path:r,mc:!1});return i.Ac(),i}yc(e){return this.Rc({path:void 0,mc:!0})}wc(e){return mv(e,this.settings.methodName,this.settings.Sc||!1,this.path,this.settings.bc)}contains(e){return this.fieldMask.find(n=>e.isPrefixOf(n))!==void 0||this.fieldTransforms.find(n=>e.isPrefixOf(n.field))!==void 0}Ac(){if(this.path)for(let e=0;e<this.path.length;e++)this.fc(this.path.get(e))}fc(e){if(e.length===0)throw this.wc("Document fields must not be empty");if(ZW(this.Ec)&&qae.test(e))throw this.wc('Document fields cannot begin and end with "__"')}},O0=class{constructor(e,n,r){this.databaseId=e,this.ignoreUndefinedProperties=n,this.serializer=r||Dv(e)}Dc(e,n,r,i=!1){return new b0({Ec:e,methodName:n,bc:r,path:Jt.emptyPath(),mc:!1,Sc:i},this.databaseId,this.serializer,this.ignoreUndefinedProperties)}};function Ov(t){let e=t._freezeSettings(),n=Dv(t._databaseId);return new O0(t._databaseId,!!e.ignoreUndefinedProperties,n)}function e6(t,e,n,r,i,o={}){let s=t.Dc(o.merge||o.mergeFields?2:0,e,n,i);SM("Data must be an object, but it was:",s,r);let a=n6(r,s),c,l;if(o.merge)c=new Cr(s.fieldMask),l=s.fieldTransforms;else if(o.mergeFields){let d=[];for(let h of o.mergeFields){let f=M0(e,h,n);if(!s.contains(f))throw new j(x.INVALID_ARGUMENT,`Field '${f}' is specified in your field mask but missing from your input data.`);i6(d,f)||d.push(f)}c=new Cr(d),l=s.fieldTransforms.filter(h=>c.covers(h.field))}else c=null,l=s.fieldTransforms;return new w0(new Fn(a),c,l)}var gv=class t extends em{_toFieldTransform(e){if(e.Ec!==2)throw e.Ec===1?e.wc(`${this._methodName}() can only appear at the top level of your update data`):e.wc(`${this._methodName}() cannot be used with set() unless you pass {merge:true}`);return e.fieldMask.push(e.path),null}isEqual(e){return e instanceof t}};function Kae(t,e,n,r){let i=t.Dc(1,e,n);SM("Data must be an object, but it was:",i,r);let o=[],s=Fn.empty();Aa(r,(c,l)=>{let d=AM(e,c,n);l=Me(l);let h=i.gc(d);if(l instanceof gv)o.push(d);else{let f=um(l,h);f!=null&&(o.push(d),s.set(d,f))}});let a=new Cr(o);return new pv(s,a,i.fieldTransforms)}function Yae(t,e,n,r,i,o){let s=t.Dc(1,e,n),a=[M0(e,r,n)],c=[i];if(o.length%2!=0)throw new j(x.INVALID_ARGUMENT,`Function ${e}() needs to be called with an even number of arguments that alternate between field names and values.`);for(let f=0;f<o.length;f+=2)a.push(M0(e,o[f])),c.push(o[f+1]);let l=[],d=Fn.empty();for(let f=a.length-1;f>=0;--f)if(!i6(l,a[f])){let g=a[f],E=c[f];E=Me(E);let I=s.gc(g);if(E instanceof gv)l.push(g);else{let S=um(E,I);S!=null&&(l.push(g),d.set(g,S))}}let h=new Cr(l);return new pv(d,h,s.fieldTransforms)}function t6(t,e,n,r=!1){return um(n,t.Dc(r?4:3,e))}function um(t,e){if(r6(t=Me(t)))return SM("Unsupported field value:",e,t),n6(t,e);if(t instanceof em)return(function(r,i){if(!ZW(i.Ec))throw i.wc(`${r._methodName}() can only be used with update() and set()`);if(!i.path)throw i.wc(`${r._methodName}() is not currently supported inside arrays`);let o=r._toFieldTransform(i);o&&i.fieldTransforms.push(o)})(t,e),null;if(t===void 0&&e.ignoreUndefinedProperties)return null;if(e.path&&e.fieldMask.push(e.path),t instanceof Array){if(e.settings.mc&&e.Ec!==4)throw e.wc("Nested arrays are not supported");return(function(r,i){let o=[],s=0;for(let a of r){let c=um(a,i.yc(s));c==null&&(c={nullValue:"NULL_VALUE"}),o.push(c),s++}return{arrayValue:{values:o}}})(t,e)}return(function(r,i){if((r=Me(r))===null)return{nullValue:"NULL_VALUE"};if(typeof r=="number")return Pse(i.serializer,r);if(typeof r=="boolean")return{booleanValue:r};if(typeof r=="string")return{stringValue:r};if(r instanceof Date){let o=Tt.fromDate(r);return{timestampValue:hh(i.serializer,o)}}if(r instanceof Tt){let o=new Tt(r.seconds,1e3*Math.floor(r.nanoseconds/1e3));return{timestampValue:hh(i.serializer,o)}}if(r instanceof da)return{geoPointValue:{latitude:r.latitude,longitude:r.longitude}};if(r instanceof Xo)return{bytesValue:oW(i.serializer,r._byteString)};if(r instanceof en){let o=i.databaseId,s=r.firestore._databaseId;if(!s.isEqual(o))throw i.wc(`Document reference is for database ${s.projectId}/${s.database} but should be for database ${o.projectId}/${o.database}`);return{referenceValue:iM(r.firestore._databaseId||i.databaseId,r._key.path)}}if(r instanceof ha)return(function(s,a){return{mapValue:{fields:{[J0]:{stringValue:Z0},[ah]:{arrayValue:{values:s.toArray().map(l=>{if(typeof l!="number")throw a.wc("VectorValues must only contain numeric values.");return rM(a.serializer,l)})}}}}}})(r,i);throw i.wc(`Unsupported field value: ${_v(r)}`)})(t,e)}function n6(t,e){let n={};return N3(t)?e.path&&e.path.length>0&&e.fieldMask.push(e.path):Aa(t,(r,i)=>{let o=um(i,e.Vc(r));o!=null&&(n[r]=o)}),{mapValue:{fields:n}}}function r6(t){return!(typeof t!="object"||t===null||t instanceof Array||t instanceof Date||t instanceof Tt||t instanceof da||t instanceof Xo||t instanceof en||t instanceof em||t instanceof ha)}function SM(t,e,n){if(!r6(n)||!h3(n)){let r=_v(n);throw r==="an object"?e.wc(t+" a custom object"):e.wc(t+" "+r)}}function M0(t,e,n){if((e=Me(e))instanceof Th)return e._internalPath;if(typeof e=="string")return AM(t,e);throw mv("Field path arguments must be of type string or ",t,!1,void 0,n)}var Xae=new RegExp("[~\\*/\\[\\]]");function AM(t,e,n){if(e.search(Xae)>=0)throw mv(`Invalid field path (${e}). Paths must not contain '~', '*', '/', '[', or ']'`,t,!1,void 0,n);try{return new Th(...e.split("."))._internalPath}catch{throw mv(`Invalid field path (${e}). Paths must not be empty, begin with '.', end with '.', or contain '..'`,t,!1,void 0,n)}}function mv(t,e,n,r,i){let o=r&&!r.isEmpty(),s=i!==void 0,a=`Function ${e}() called with invalid data`;n&&(a+=" (via `toFirestore()`)"),a+=". ";let c="";return(o||s)&&(c+=" (found",o&&(c+=` in field ${r}`),s&&(c+=` in document ${i}`),c+=")"),new j(x.INVALID_ARGUMENT,a+t+c)}function i6(t,e){return t.some(n=>n.isEqual(e))}var Pl=class{constructor(e,n,r,i,o){this._firestore=e,this._userDataWriter=n,this._key=r,this._document=i,this._converter=o}get id(){return this._key.path.lastSegment()}get ref(){return new en(this._firestore,this._converter,this._key)}exists(){return this._document!==null}data(){if(this._document){if(this._converter){let e=new L0(this._firestore,this._userDataWriter,this._key,this._document,null);return this._converter.fromFirestore(e)}return this._userDataWriter.convertValue(this._document.data.value)}}get(e){if(this._document){let n=this._document.data.field(Mv("DocumentSnapshot.get",e));if(n!==null)return this._userDataWriter.convertValue(n)}}},L0=class extends Pl{data(){return super.data()}};function Mv(t,e){return typeof e=="string"?AM(t,e):e instanceof Th?e._internalPath:e._delegate._internalPath}function o6(t){if(t.limitType==="L"&&t.explicitOrderBy.length===0)throw new j(x.UNIMPLEMENTED,"limitToLast() queries require specifying at least one orderBy() clause")}var tm=class{},yh=class extends tm{};function s6(t,e,...n){let r=[];e instanceof tm&&r.push(e),r=r.concat(n),(function(o){let s=o.filter(c=>c instanceof Ih).length,a=o.filter(c=>c instanceof nm).length;if(s>1||s>0&&a>0)throw new j(x.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(...)))`.")})(r);for(let i of r)t=i._apply(t);return t}var nm=class t extends yh{constructor(e,n,r){super(),this._field=e,this._op=n,this._value=r,this.type="where"}static _create(e,n,r){return new t(e,n,r)}_apply(e){let n=this._parse(e);return f6(e._query,n),new mi(e.firestore,e.converter,uO(e._query,n))}_parse(e){let n=Ov(e.firestore);return(function(o,s,a,c,l,d,h){let f;if(l.isKeyField()){if(d==="array-contains"||d==="array-contains-any")throw new j(x.INVALID_ARGUMENT,`Invalid Query. You can't perform '${d}' queries on documentId().`);if(d==="in"||d==="not-in"){c3(h,d);let E=[];for(let I of h)E.push(a3(c,o,I));f={arrayValue:{values:E}}}else f=a3(c,o,h)}else d!=="in"&&d!=="not-in"&&d!=="array-contains-any"||c3(h,d),f=t6(a,s,h,d==="in"||d==="not-in");return Le.create(l,d,f)})(e._query,"where",n,e.firestore._databaseId,this._field,this._op,this._value)}};function a6(t,e,n){let r=e,i=Mv("where",t);return nm._create(i,r,n)}var Ih=class t extends tm{constructor(e,n){super(),this.type=e,this._queryConstraints=n}static _create(e,n){return new t(e,n)}_parse(e){let n=this._queryConstraints.map(r=>r._parse(e)).filter(r=>r.getFilters().length>0);return n.length===1?n[0]:Xe.create(n,this._getOperator())}_apply(e){let n=this._parse(e);return n.getFilters().length===0?e:((function(i,o){let s=i,a=o.getFlattenedFilters();for(let c of a)f6(s,c),s=uO(s,c)})(e._query,n),new mi(e.firestore,e.converter,uO(e._query,n)))}_getQueryConstraints(){return this._queryConstraints}_getOperator(){return this.type==="and"?"and":"or"}};function c6(...t){return t.forEach(e=>p6("or",e)),Ih._create("or",t)}function l6(...t){return t.forEach(e=>p6("and",e)),Ih._create("and",t)}var P0=class t extends yh{constructor(e,n){super(),this._field=e,this._direction=n,this.type="orderBy"}static _create(e,n){return new t(e,n)}_apply(e){let n=(function(i,o,s){if(i.startAt!==null)throw new j(x.INVALID_ARGUMENT,"Invalid query. You must not call startAt() or startAfter() before calling orderBy().");if(i.endAt!==null)throw new j(x.INVALID_ARGUMENT,"Invalid query. You must not call endAt() or endBefore() before calling orderBy().");return new Cl(o,s)})(e._query,this._field,this._direction);return new mi(e.firestore,e.converter,(function(i,o){let s=i.explicitOrderBy.concat([o]);return new ao(i.path,i.collectionGroup,s,i.filters.slice(),i.limit,i.limitType,i.startAt,i.endAt)})(e._query,n))}};function u6(t,e="asc"){let n=e,r=Mv("orderBy",t);return P0._create(r,n)}var x0=class t extends yh{constructor(e,n,r){super(),this.type=e,this._limit=n,this._limitType=r}static _create(e,n,r){return new t(e,n,r)}_apply(e){return new mi(e.firestore,e.converter,kI(e._query,this._limit,this._limitType))}};function d6(t){return Xoe("limit",t),x0._create("limit",t,"F")}var k0=class t extends yh{constructor(e,n,r){super(),this.type=e,this._docOrFields=n,this._inclusive=r}static _create(e,n,r){return new t(e,n,r)}_apply(e){let n=Qae(e,this.type,this._docOrFields,this._inclusive);return new mi(e.firestore,e.converter,(function(i,o){return new ao(i.path,i.collectionGroup,i.explicitOrderBy.slice(),i.filters.slice(),i.limit,i.limitType,o,i.endAt)})(e._query,n))}};function h6(...t){return k0._create("startAfter",t,!1)}function Qae(t,e,n,r){if(n[0]=Me(n[0]),n[0]instanceof Pl)return(function(o,s,a,c,l){if(!c)throw new j(x.NOT_FOUND,`Can't use a DocumentSnapshot that doesn't exist for ${a}().`);let d=[];for(let h of Yd(o))if(h.field.isKeyField())d.push(Al(s,c.key));else{let f=c.data.field(h.field);if(vv(f))throw new j(x.INVALID_ARGUMENT,'Invalid query. You are trying to start or end a query using a document for which the field "'+h.field+'" is an uncommitted server timestamp. (Since the value of this field is unknown, you cannot start/end a query with it.)');if(f===null){let g=h.field.canonicalString();throw new j(x.INVALID_ARGUMENT,`Invalid query. You are trying to start or end a query using a document for which the field '${g}' (used as the orderBy) does not exist.`)}d.push(f)}return new so(d,l)})(t._query,t.firestore._databaseId,e,n[0]._document,r);{let i=Ov(t.firestore);return(function(s,a,c,l,d,h){let f=s.explicitOrderBy;if(d.length>f.length)throw new j(x.INVALID_ARGUMENT,`Too many arguments provided to ${l}(). The number of arguments must be less than or equal to the number of orderBy() clauses`);let g=[];for(let E=0;E<d.length;E++){let I=d[E];if(f[E].field.isKeyField()){if(typeof I!="string")throw new j(x.INVALID_ARGUMENT,`Invalid query. Expected a string for document ID in ${l}(), but got a ${typeof I}`);if(!tM(s)&&I.indexOf("/")!==-1)throw new j(x.INVALID_ARGUMENT,`Invalid query. When querying a collection and ordering by documentId(), the value passed to ${l}() must be a plain document ID, but '${I}' contains a slash.`);let S=s.path.child(ke.fromString(I));if(!Z.isDocumentKey(S))throw new j(x.INVALID_ARGUMENT,`Invalid query. When querying a collection group and ordering by documentId(), the value passed to ${l}() must result in a valid document path, but '${S}' is not because it contains an odd number of segments.`);let L=new Z(S);g.push(Al(a,L))}else{let S=t6(c,l,I);g.push(S)}}return new so(g,h)})(t._query,t.firestore._databaseId,i,e,n,r)}}function a3(t,e,n){if(typeof(n=Me(n))=="string"){if(n==="")throw new j(x.INVALID_ARGUMENT,"Invalid query. When querying with documentId(), you must provide a valid document ID, but it was an empty string.");if(!tM(e)&&n.indexOf("/")!==-1)throw new j(x.INVALID_ARGUMENT,`Invalid query. When querying a collection by documentId(), you must provide a plain document ID, but '${n}' contains a '/' character.`);let r=e.path.child(ke.fromString(n));if(!Z.isDocumentKey(r))throw new j(x.INVALID_ARGUMENT,`Invalid query. When querying a collection group by documentId(), the value provided must result in a valid document path, but '${r}' is not because it has an odd number of segments (${r.length}).`);return Al(t,new Z(r))}if(n instanceof en)return Al(t,n._key);throw new j(x.INVALID_ARGUMENT,`Invalid query. When querying with documentId(), you must provide a valid string or a DocumentReference, but it was: ${_v(n)}.`)}function c3(t,e){if(!Array.isArray(t)||t.length===0)throw new j(x.INVALID_ARGUMENT,`Invalid Query. A non-empty array is required for '${e.toString()}' filters.`)}function f6(t,e){let n=(function(i,o){for(let s of i)for(let a of s.getFlattenedFilters())if(o.indexOf(a.op)>=0)return a.op;return null})(t.filters,(function(i){switch(i){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[]}})(e.op));if(n!==null)throw n===e.op?new j(x.INVALID_ARGUMENT,`Invalid query. You cannot use more than one '${e.op.toString()}' filter.`):new j(x.INVALID_ARGUMENT,`Invalid query. You cannot use '${e.op.toString()}' filters with '${n.toString()}' filters.`)}function p6(t,e){if(!(e instanceof nm||e instanceof Ih))throw new j(x.INVALID_ARGUMENT,`Function ${t}() requires AppliableConstraints created with a call to 'where(...)', 'or(...)', or 'and(...)'.`)}var Ev=class{convertValue(e,n="none"){switch(ga(e)){case 0:return null;case 1:return e.booleanValue;case 2:return _t(e.integerValue||e.doubleValue);case 3:return this.convertTimestamp(e.timestampValue);case 4:return this.convertServerTimestamp(e,n);case 5:return e.stringValue;case 6:return this.convertBytes(Zo(e.bytesValue));case 7:return this.convertReference(e.referenceValue);case 8:return this.convertGeoPoint(e.geoPointValue);case 9:return this.convertArray(e.arrayValue,n);case 11:return this.convertObject(e.mapValue,n);case 10:return this.convertVectorValue(e.mapValue);default:throw re(62114,{value:e})}}convertObject(e,n){return this.convertObjectMap(e.fields,n)}convertObjectMap(e,n="none"){let r={};return Aa(e,(i,o)=>{r[i]=this.convertValue(o,n)}),r}convertVectorValue(e){var n,r,i;let o=(i=(r=(n=e.fields)===null||n===void 0?void 0:n[ah].arrayValue)===null||r===void 0?void 0:r.values)===null||i===void 0?void 0:i.map(s=>_t(s.doubleValue));return new ha(o)}convertGeoPoint(e){return new da(_t(e.latitude),_t(e.longitude))}convertArray(e,n){return(e.values||[]).map(r=>this.convertValue(r,n))}convertServerTimestamp(e,n){switch(n){case"previous":let r=Sv(e);return r==null?null:this.convertValue(r,n);case"estimate":return this.convertTimestamp(kg(e));default:return null}}convertTimestamp(e){let n=Jo(e);return new Tt(n.seconds,n.nanos)}convertDocumentKey(e,n){let r=ke.fromString(e);ae(pW(r),9688,{name:e});let i=new sh(r.get(1),r.get(3)),o=new Z(r.popFirst(5));return i.isEqual(n)||Mt(`Document ${o} contains a document reference within a different database (${i.projectId}/${i.database}) which is not supported. It will be treated as a reference in the current database (${n.projectId}/${n.database}) instead.`),o}};function g6(t,e,n){let r;return r=t?n&&(n.merge||n.mergeFields)?t.toFirestore(e,n):t.toFirestore(e):e,r}var F0=class extends Ev{constructor(e){super(),this.firestore=e}convertBytes(e){return new Xo(e)}convertReference(e){let n=this.convertDocumentKey(e,this.firestore._databaseId);return new en(this.firestore,null,n)}};function Jae(){return new R0("count")}var la=class{constructor(e,n){this.hasPendingWrites=e,this.fromCache=n}isEqual(e){return this.hasPendingWrites===e.hasPendingWrites&&this.fromCache===e.fromCache}},fa=class t extends Pl{constructor(e,n,r,i,o,s){super(e,n,r,i,s),this._firestore=e,this._firestoreImpl=e,this.metadata=o}exists(){return super.exists()}data(e={}){if(this._document){if(this._converter){let n=new Qd(this._firestore,this._userDataWriter,this._key,this._document,this.metadata,null);return this._converter.fromFirestore(n,e)}return this._userDataWriter.convertValue(this._document.data.value,e.serverTimestamps)}}get(e,n={}){if(this._document){let r=this._document.data.field(Mv("DocumentSnapshot.get",e));if(r!==null)return this._userDataWriter.convertValue(r,n.serverTimestamps)}}toJSON(){if(this.metadata.hasPendingWrites)throw new j(x.FAILED_PRECONDITION,"DocumentSnapshot.toJSON() attempted to serialize a document with pending writes. Await waitForPendingWrites() before invoking toJSON().");let e=this._document,n={};return n.type=t._jsonSchemaVersion,n.bundle="",n.bundleSource="DocumentSnapshot",n.bundleName=this._key.toString(),!e||!e.isValidDocument()||!e.isFoundDocument()?n:(this._userDataWriter.convertObjectMap(e.data.value.mapValue.fields,"previous"),n.bundle=(this._firestore,this.ref.path,"NOT SUPPORTED"),n)}};fa._jsonSchemaVersion="firestore/documentSnapshot/1.0",fa._jsonSchema={type:Bt("string",fa._jsonSchemaVersion),bundleSource:Bt("string","DocumentSnapshot"),bundleName:Bt("string"),bundle:Bt("string")};var Qd=class extends fa{data(e={}){return super.data(e)}},Sl=class t{constructor(e,n,r,i){this._firestore=e,this._userDataWriter=n,this._snapshot=i,this.metadata=new la(i.hasPendingWrites,i.fromCache),this.query=r}get docs(){let e=[];return this.forEach(n=>e.push(n)),e}get size(){return this._snapshot.docs.size}get empty(){return this.size===0}forEach(e,n){this._snapshot.docs.forEach(r=>{e.call(n,new Qd(this._firestore,this._userDataWriter,r.key,r,new la(this._snapshot.mutatedKeys.has(r.key),this._snapshot.fromCache),this.query.converter))})}docChanges(e={}){let n=!!e.includeMetadataChanges;if(n&&this._snapshot.excludesMetadataChanges)throw new j(x.INVALID_ARGUMENT,"To include metadata changes with your document changes, you must also pass { includeMetadataChanges:true } to onSnapshot().");return this._cachedChanges&&this._cachedChangesIncludeMetadataChanges===n||(this._cachedChanges=(function(i,o){if(i._snapshot.oldDocs.isEmpty()){let s=0;return i._snapshot.docChanges.map(a=>{let c=new Qd(i._firestore,i._userDataWriter,a.doc.key,a.doc,new la(i._snapshot.mutatedKeys.has(a.doc.key),i._snapshot.fromCache),i.query.converter);return a.doc,{type:"added",doc:c,oldIndex:-1,newIndex:s++}})}{let s=i._snapshot.oldDocs;return i._snapshot.docChanges.filter(a=>o||a.type!==3).map(a=>{let c=new Qd(i._firestore,i._userDataWriter,a.doc.key,a.doc,new la(i._snapshot.mutatedKeys.has(a.doc.key),i._snapshot.fromCache),i.query.converter),l=-1,d=-1;return a.type!==0&&(l=s.indexOf(a.doc.key),s=s.delete(a.doc.key)),a.type!==1&&(s=s.add(a.doc),d=s.indexOf(a.doc.key)),{type:Zae(a.type),doc:c,oldIndex:l,newIndex:d}})}})(this,n),this._cachedChangesIncludeMetadataChanges=n),this._cachedChanges}toJSON(){if(this.metadata.hasPendingWrites)throw new j(x.FAILED_PRECONDITION,"QuerySnapshot.toJSON() attempted to serialize a document with pending writes. Await waitForPendingWrites() before invoking toJSON().");let e={};e.type=t._jsonSchemaVersion,e.bundleSource="QuerySnapshot",e.bundleName=wg.newId(),this._firestore._databaseId.database,this._firestore._databaseId.projectId;let n=[],r=[],i=[];return this.docs.forEach(o=>{o._document!==null&&(n.push(o._document),r.push(this._userDataWriter.convertObjectMap(o._document.data.value.mapValue.fields,"previous")),i.push(o.ref.path))}),e.bundle=(this._firestore,this.query._query,e.bundleName,"NOT SUPPORTED"),e}};function Zae(t){switch(t){case 0:return"added";case 2:case 3:return"modified";case 1:return"removed";default:return re(61501,{type:t})}}function m6(t){t=or(t,en);let e=or(t.firestore,Ei);return Hae(Rh(e),t._key).then(n=>v6(e,t,n))}Sl._jsonSchemaVersion="firestore/querySnapshot/1.0",Sl._jsonSchema={type:Bt("string",Sl._jsonSchemaVersion),bundleSource:Bt("string","QuerySnapshot"),bundleName:Bt("string"),bundle:Bt("string")};var xl=class extends Ev{constructor(e){super(),this.firestore=e}convertBytes(e){return new Xo(e)}convertReference(e){let n=this.convertDocumentKey(e,this.firestore._databaseId);return new en(this.firestore,null,n)}};function E6(t){t=or(t,mi);let e=or(t.firestore,Ei),n=Rh(e),r=new xl(e);return o6(t._query),$ae(n,t._query).then(i=>new Sl(e,r,t,i))}function _6(t,e,n){t=or(t,en);let r=or(t.firestore,Ei),i=g6(t.converter,e,n);return I6(r,[e6(Ov(r),"setDoc",t._key,i,t.converter!==null,n).toMutation(t._key,yn.none())])}function T6(t){return I6(or(t.firestore,Ei),[new wl(t._key,yn.none())])}function y6(t,...e){var n,r,i;t=Me(t);let o={includeMetadataChanges:!1,source:"default"},s=0;typeof e[s]!="object"||s3(e[s])||(o=e[s++]);let a={includeMetadataChanges:o.includeMetadataChanges,source:o.source};if(s3(e[s])){let h=e[s];e[s]=(n=h.next)===null||n===void 0?void 0:n.bind(h),e[s+1]=(r=h.error)===null||r===void 0?void 0:r.bind(h),e[s+2]=(i=h.complete)===null||i===void 0?void 0:i.bind(h)}let c,l,d;if(t instanceof en)l=or(t.firestore,Ei),d=am(t._key.path),c={next:h=>{e[s]&&e[s](v6(l,t,h))},error:e[s+1],complete:e[s+2]};else{let h=or(t,mi);l=or(h.firestore,Ei),d=h._query;let f=new xl(l);c={next:g=>{e[s]&&e[s](new Sl(l,f,h,g))},error:e[s+1],complete:e[s+2]},o6(t._query)}return(function(f,g,E,I){let S=new Zg(I),L=new Jg(g,S,E);return f.asyncQueue.enqueueAndForget(()=>y(null,null,function*(){return hM(yield dv(f),L)})),()=>{S.Ou(),f.asyncQueue.enqueueAndForget(()=>y(null,null,function*(){return fM(yield dv(f),L)}))}})(Rh(l),d,a,c)}function I6(t,e){return(function(r,i){let o=new ir;return r.asyncQueue.enqueueAndForget(()=>y(null,null,function*(){return Rae(yield jae(r),i,o)})),o.promise})(Rh(t),e)}function v6(t,e,n){let r=n.docs.get(e._key),i=new xl(t);return new fa(t,i,e._key,r,new la(n.hasPendingWrites,n.fromCache),e.converter)}function S6(t){return A6(t,{count:Jae()})}function A6(t,e){let n=or(t.firestore,Ei),r=Rh(n),i=Sse(e,(o,s)=>new pO(s,o.aggregateType,o._internalFieldPath));return Wae(r,t._query,i).then(o=>(function(a,c,l){let d=new xl(a);return new N0(c,d,l)})(n,t,o))}var U0=class{constructor(e){let n;this.kind="persistent",e?.tabManager?(e.tabManager._initialize(e),n=e.tabManager):(n=ece(void 0),n._initialize(e)),this._onlineComponentProvider=n._onlineComponentProvider,this._offlineComponentProvider=n._offlineComponentProvider}toJSON(){return{kind:this.kind}}};function CM(t){return new U0(t)}var V0=class{constructor(e){this.forceOwnership=e,this.kind="persistentSingleTab"}toJSON(){return{kind:this.kind}}_initialize(e){this._onlineComponentProvider=IM.provider,this._offlineComponentProvider={build:n=>new uv(n,e?.cacheSizeBytes,this.forceOwnership)}}},B0=class{constructor(){this.kind="PersistentMultipleTab"}toJSON(){return{kind:this.kind}}_initialize(e){this._onlineComponentProvider=IM.provider,this._offlineComponentProvider={build:n=>new S0(n,e?.cacheSizeBytes)}}};function ece(t){return new V0(t?.forceOwnership)}function DM(){return new B0}var tce={maxAttempts:5};function yg(t,e){if((t=Me(t)).firestore!==e)throw new j(x.INVALID_ARGUMENT,"Provided document reference is from a different Firestore instance.");return t}var G0=class{constructor(e,n){this._firestore=e,this._transaction=n,this._dataReader=Ov(e)}get(e){let n=yg(e,this._firestore),r=new F0(this._firestore);return this._transaction.lookup([n._key]).then(i=>{if(!i||i.length!==1)return re(24041);let o=i[0];if(o.isFoundDocument())return new Pl(this._firestore,r,o.key,o,n.converter);if(o.isNoDocument())return new Pl(this._firestore,r,n._key,null,n.converter);throw re(18433,{doc:o})})}set(e,n,r){let i=yg(e,this._firestore),o=g6(i.converter,n,r),s=e6(this._dataReader,"Transaction.set",i._key,o,i.converter!==null,r);return this._transaction.set(i._key,s),this}update(e,n,r,...i){let o=yg(e,this._firestore),s;return s=typeof(n=Me(n))=="string"||n instanceof Th?Yae(this._dataReader,"Transaction.update",o._key,n,r,i):Kae(this._dataReader,"Transaction.update",o._key,n),this._transaction.update(o._key,s),this}delete(e){let n=yg(e,this._firestore);return this._transaction.delete(n._key),this}};var j0=class extends G0{constructor(e,n){super(e,n),this._firestore=e}get(e){let n=yg(e,this._firestore),r=new xl(this._firestore);return super.get(e).then(i=>new fa(this._firestore,r,n._key,i._document,new la(!1,!1),n.converter))}};function C6(t,e,n){t=or(t,Ei);let r=Object.assign(Object.assign({},tce),n);return(function(o){if(o.maxAttempts<1)throw new j(x.INVALID_ARGUMENT,"Max attempts must be at least 1")})(r),(function(o,s,a){let c=new ir;return o.asyncQueue.enqueueAndForget(()=>y(null,null,function*(){let l=yield zW(o);new C0(o.asyncQueue,l,a,s,c).zu()})),c.promise})(Rh(t),i=>e(new j0(t,i)),r)}(function(e,n=!0){(function(i){vh=i})(Bs),$n(new Xt("firestore",(r,{instanceIdentifier:i,options:o})=>{let s=r.getProvider("app").getImmediate(),a=new Ei(new Ub(r.getProvider("auth-internal")),new Gb(s,r.getProvider("app-check-internal")),(function(l,d){if(!Object.prototype.hasOwnProperty.apply(l.options,["projectId"]))throw new j(x.INVALID_ARGUMENT,'"projectId" not provided in firebase.initializeApp.');return new sh(l.options.projectId,d)})(s,i),s);return o=Object.assign({useFetchStreams:n},o),a._setSettings(o),a},"PUBLIC").setMultipleInstances(!0)),Ge(qH,KH,e),Ge(qH,KH,"esm2017")})();var gUe=ue(l6,!0,2);var Lv=ue(XW,!0,2),D6=ue(QW,!0,2);var R6=ue(T6,!0,2);var dm=ue(JW,!0,2);var N6=ue(S6,!0),RM=ue(m6,!0);var w6=ue(E6,!0);var mUe=ue(d6,!0,2);var b6=ue(y6,!0);var EUe=ue(c6,!0,2),_Ue=ue(u6,!0,2),O6=ue(s6,!0,2);var M6=ue(C6,!0),L6=ue(_6,!0,2);var TUe=ue(h6,!0,2);var yUe=ue(a6,!0,2);var Pv=class{static getFirestoreProdDbName(e,n){return n?.databaseURL?.includes("snippyly-plugin.firebaseio.com")||n?.databaseURL?.includes("snippyly-plugin-staging.firebaseio.com")?"sfdb":n?.storeDbId??(this.isTestingDb(n?.databaseURL??"")?"sdktest":`apikey${e.toLowerCase()}`)}static isTestingDb(e){try{return e.includes("-test")}catch(n){return M.error("Error in isTestingDb:",n),!1}}};var P6=(()=>{let e=class e{constructor(r,i,o){this.configService=r,this.authService=i,this.loggingService=o,this.firestore$=new ie(null);try{Ka([this.authService.getFirebaseConfig$(),this.configService.getApiKey$(),this.configService.getFirestorePersistentCacheEnabled$()]).pipe(mn(([s,a])=>!!s&&!!a),En(1)).subscribe(([s,a,c])=>{if(s&&a&&s?.firebaseOptions?.storeDbId){try{let h=sessionStorage?.getItem("veltFirestoreLogLevel")||qt?.firebaseLogLevel||"silent";H0(h)}catch(h){this.loggingService.catch("Error in FirestoreService setLogLevel: ",h)}let l=Pv.getFirestoreProdDbName(a,s.firebaseOptions),d=this.configService.getProxyConfig();if(d?.v2DbHost){let h={host:d.v2DbHost,ssl:!0};d.forceLongPolling?h.experimentalForceLongPolling=!0:h.experimentalAutoDetectLongPolling=!0,c&&(h.localCache=CM({tabManager:DM()}));try{this.firestore$.next(bv(er(),h,l))}catch(f){this.loggingService.catch("Firestore proxy: initializeFirestore failed, falling back to existing instance. Proxy settings may not be applied: ",f),this.firestore$.next(Dh(l))}}else if(c)try{let h=er(),f=bv(h,{localCache:CM({tabManager:DM()})},l);this.firestore$.next(f)}catch{this.firestore$.next(Dh(l))}else this.firestore$.next(Dh(l))}},s=>{})}catch{}}getFirestore(){return this.firestore$.asObservable()}getFirestoreValue(){return this.firestore$.value}generateFirestoreDocumentId(){try{let r=this.getFirestoreValue()||Dh("DocumentIdDb");if(r){let i=Lv(r,"generateDocumentId");return dm(i).id}return}catch(r){this.loggingService.catch("Error in FirestoreService generateFirestoreDocumentId: ",r);return}}};e.\u0275fac=function(i){return new(i||e)($(Ji),$(Ed),$(bt))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var xv=(()=>{let e=class e{constructor(r,i,o){this.authService=r,this.configService=i,this.loggingService=o,this.db$=new ie(null);try{this.authService.getFirebaseConfig$().subscribe(s=>{if(s){let a=this.configService.getProxyConfig(),c=s.firebaseOptions.databaseURL;a?.v1DbHost&&c&&(c=CV(c,a.v1DbHost),a?.forceLongPolling&&Eb());let l=Pd(void 0,c);a?.v1DbHost&&c&&this.lockDatabaseHost(l),this.db$.next(l)}},s=>{this.loggingService.catch("Error in DatabaseService constructor: ",s)})}catch(s){this.loggingService.catch("Error in DatabaseService constructor:",s)}}getDb(){return this.db$.asObservable()}getDbValue(){return this.db$.getValue()}lockDatabaseHost(r){try{let o=r?._repo?.repoInfo_;if(o){let s=o.host;Object.defineProperty(o,"host",{get:()=>s,set:()=>{},configurable:!0}),o.internalHost=s}}catch(i){this.loggingService.catch("Error in DatabaseService lockDatabaseHost: ",i)}}};e.\u0275fac=function(i){return new(i||e)($(Ed),$(Ji),$(bt))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var Nr={doc:dm,collection:Lv,collectionGroup:D6,query:O6,getDoc:RM,getDocs:w6,getCountFromServer:N6,setDoc:L6,deleteDoc:R6,onSnapshot:b6,runTransaction:M6},k6=(()=>{let e=class e{constructor(r,i,o){this.firestoreService=r,this.databaseService=i,this.loggingService=o}read(r){return y(this,null,function*(){if((r.store??"firestore")==="rtdb"){let a=this.databaseService.getDbValue();return a?{data:(yield hg(xd(a,r.location)))?.val()}:{data:void 0}}let o=this.firestoreService.getFirestoreValue();return o?{data:(yield RM(dm(o,r.location)))?.data()}:{data:void 0}})}runTransaction(r){return y(this,null,function*(){return r()})}firestoreDoc(r,i){return Nr.doc(r,i)}firestoreCollection(r,i){return Nr.collection(r,i)}firestoreCollectionGroup(r,i){return Nr.collectionGroup(r,i)}firestoreQuery(r,...i){return Nr.query(r,...i)}firestoreGetDoc(r){return Nr.getDoc(r)}firestoreGetDocs(r){return Nr.getDocs(r)}firestoreGetCountFromServer(r){return Nr.getCountFromServer(r)}firestoreSetDoc(r,i,o){return o?Nr.setDoc(r,i,o):Nr.setDoc(r,i)}firestoreDeleteDoc(r){return Nr.deleteDoc(r)}firestoreOnSnapshot(r,i,o){return o?Nr.onSnapshot(r,i,o):Nr.onSnapshot(r,i)}firestoreRunTransaction(r,i){return Nr.runTransaction(r,i)}addComment(r){return this.deferred("addComment")}editComment(r){return this.deferred("editComment")}addReaction(r){return this.deferred("addReaction")}editReaction(r){return this.deferred("editReaction")}deleteReaction(r){return this.deferred("deleteReaction")}addArea(r){return this.deferred("addArea")}deleteArea(r){return this.deferred("deleteArea")}recordDocumentView(r){return this.deferred("recordDocumentView")}getActivitiesForDocuments(r){return this.deferred("getActivitiesForDocuments")}getActivitiesForEntity(r){return this.deferred("getActivitiesForEntity")}deleteComment(r){return this.deferred("deleteComment")}setCommentResolved(r){return this.deferred("setCommentResolved")}setCommentMetadata(r){return this.deferred("setCommentMetadata")}bumpCommentViews(r){return this.deferred("bumpCommentViews")}markCommentThreadRead(r){return this.deferred("markCommentThreadRead")}markNotificationRead(r){return this.deferred("markNotificationRead")}addNotification(r){return this.deferred("addNotification")}deleteNotification(r){return this.deferred("deleteNotification")}updateNotification(r){return this.deferred("updateNotification")}updatePresence(r){return this.deferred("updatePresence")}grantAccess(r){return this.deferred("grantAccess")}revokeAccess(r){return this.deferred("revokeAccess")}getAccess(r){return this.deferred("getAccess")}upsertOrgUserProfile(r){return this.deferred("upsertOrgUserProfile")}upsertDocMetadata(r){return this.deferred("upsertDocMetadata")}upsertOrgMetadata(r){return this.deferred("upsertOrgMetadata")}createActivity(r){return this.deferred("createActivity")}saveCrdtVersion(r){return this.deferred("saveCrdtVersion")}getCrdtVersion(r){return this.deferred("getCrdtVersion")}listCrdtVersions(r){return this.deferred("listCrdtVersions")}getOrganizationUsers(r){return this.deferred("getOrganizationUsers")}setLocationMetadata(r){return this.deferred("setLocationMetadata")}fetchLocations(r){return this.deferred("fetchLocations")}createFolder(r){return this.deferred("createFolder")}setDocumentMetadata(r){return this.deferred("setDocumentMetadata")}getDocuments(r){return this.deferred("getDocuments")}fetchDocuments(r){return this.deferred("fetchDocuments")}fetchFolders(r){return this.deferred("fetchFolders")}fetchCommentAnnotations(r){return this.deferred("fetchCommentAnnotations")}getCommentAnnotationsCount(r){return this.deferred("getCommentAnnotationsCount")}markNotificationReadDoc(r){return this.deferred("markNotificationReadDoc")}getNotificationsForDocuments(r){return this.deferred("getNotificationsForDocuments")}getDocumentMetadataFromIds(r){return this.deferred("getDocumentMetadataFromIds")}getCrossOrgUserNotifications(r){return this.deferred("getCrossOrgUserNotifications")}deferred(r){return this.loggingService.warn(`[WB] FirebaseDbAdapter.${r} called but write-op wiring is deferred to Phase A (self-hosting Step 0). The SDK uses its existing direct write path in Step 0.`),Promise.resolve({ok:!1,code:"unimplemented",message:`FirebaseDbAdapter.${r} wiring deferred to Phase A`})}};e.\u0275fac=function(i){return new(i||e)($(P6),$(xv),$(bt))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var rce={comment:{mode:"persistent",scope:"doc"},notification:{mode:"persistent",scope:"user"},notificationIndex:{mode:"persistent",scope:"user"},crdt:{mode:"persistent",scope:"doc"},presence:{mode:"ephemeral",scope:"doc"},crdtSyncPresence:{mode:"ephemeral",scope:"doc"},crdtPresence:{mode:"ephemeral",scope:"doc"},liveState:{mode:"ephemeral",scope:"doc"},cursor:{mode:"ephemeral",scope:"doc"},huddle:{mode:"ephemeral",scope:"doc"},syncVideoPlayer:{mode:"ephemeral",scope:"doc"},heartbeat:{mode:"ephemeral",scope:"org"},flockSession:{mode:"ephemeral",scope:"doc"},selection:{mode:"ephemeral",scope:"doc"},reaction:{mode:"persistent",scope:"doc"},area:{mode:"persistent",scope:"doc"},lastActivityTimestamp:{mode:"persistent",scope:"org"},lastNotificationTimestamp:{mode:"persistent",scope:"org"},documentViews:{mode:"persistent",scope:"doc"}};function F6(t){return rce[t]}var Qe={getDatabase:Pd,ref:xd,query:BH,get:hg,set:HH,update:$H,remove:GH,push:VH,runTransaction:jH,onValue:vb,onChildAdded:xH,onChildChanged:kH,onChildRemoved:FH,off:PH,objectVal:MH,listVal:OH,stateChanges:LH,onDisconnect:UH},U6=(()=>{let e=class e{constructor(r,i){this.databaseService=r,this.loggingService=i}getServerTimeOffset(){return y(this,null,function*(){try{let r=this.databaseService.getDbValue();if(!r)return 0;let o=(yield hg(xd(r,e.SERVER_TIME_OFFSET_PATH)))?.val();return typeof o=="number"?o:0}catch(r){return this.loggingService.catch("Error in FirebaseRealtimeAdapter getServerTimeOffset: ",r),0}})}onServerTimeOffset(r){let i=null,o=null;try{o=this.databaseService.getDb().subscribe(s=>{if(s){let a=xd(s,e.SERVER_TIME_OFFSET_PATH);i=vb(a,c=>{try{r(c?.val())}catch(l){this.loggingService.catch("Error in FirebaseRealtimeAdapter onServerTimeOffset callback: ",l)}})}})}catch(s){this.loggingService.catch("Error in FirebaseRealtimeAdapter onServerTimeOffset: ",s)}return()=>{try{i&&(i(),i=null),o?.unsubscribe(),o=null}catch(s){this.loggingService.catch("Error tearing down FirebaseRealtimeAdapter onServerTimeOffset: ",s)}}}getChannelTag(r){return F6(r)}getDatabaseInstance(r){return r?Qe.getDatabase(void 0,r):Qe.getDatabase()}rtdbRef(r,i){return Qe.ref(r,i)}rtdbQueryRef(r,...i){return Qe.query(r,...i)}rtdbGet(r){return Qe.get(r)}rtdbSet(r,i,o){return this.getChannelTag(r),Qe.set(i,o)}rtdbUpdate(r,i,o){return this.getChannelTag(r),Qe.update(i,o)}rtdbRemove(r,i){return this.getChannelTag(r),Qe.remove(i)}rtdbPush(r,i,o){return this.getChannelTag(r),o===void 0?Qe.push(i):Qe.push(i,o)}rtdbRunTransaction(r,i,o){return this.getChannelTag(r),Qe.runTransaction(i,o)}rtdbOnValue(r,i,o,s,a){return this.getChannelTag(r),typeof s=="function"?a?Qe.onValue(i,o,s,a):Qe.onValue(i,o,s):s?Qe.onValue(i,o,s):Qe.onValue(i,o)}rtdbOnChildAdded(r,i,o,s){return this.getChannelTag(r),s?Qe.onChildAdded(i,o,s):Qe.onChildAdded(i,o)}rtdbOnChildChanged(r,i,o,s){return this.getChannelTag(r),s?Qe.onChildChanged(i,o,s):Qe.onChildChanged(i,o)}rtdbOnChildRemoved(r,i,o,s){return this.getChannelTag(r),s?Qe.onChildRemoved(i,o,s):Qe.onChildRemoved(i,o)}rtdbOff(r,i,o){Qe.off(r,i,o)}rtdbObjectVal$(r,i){return this.getChannelTag(r),Qe.objectVal(i)}rtdbListVal$(r,i){return this.getChannelTag(r),Qe.listVal(i)}rtdbStateChanges$(r,i){return this.getChannelTag(r),Qe.stateChanges(i)}rtdbOnDisconnectSet(r,i,o){return this.getChannelTag(r),Qe.onDisconnect(i).set(o)}rtdbOnDisconnectUpdate(r,i,o){return this.getChannelTag(r),Qe.onDisconnect(i).update(o)}rtdbOnDisconnectRemove(r,i){return this.getChannelTag(r),Qe.onDisconnect(i).remove()}rtdbOnDisconnectCancel(r,i){return this.getChannelTag(r),Qe.onDisconnect(i).cancel()}subscribe(r,i,o,s){return{unsubscribe:()=>{}}}publish(r,i,o){return y(this,null,function*(){return{ok:!1,code:"unimplemented",message:"RealtimeAdapter.publish wiring deferred to Phase A"}})}presence(r,i){return y(this,null,function*(){return{ok:!1,code:"unimplemented",message:"RealtimeAdapter.presence wiring deferred to Phase A"}})}onDisconnect(r,i){return y(this,null,function*(){return()=>{}})}};e.SERVER_TIME_OFFSET_PATH=".info/serverTimeOffset",e.\u0275fac=function(i){return new(i||e)($(xv),$(bt))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var Nh=null,NM=new Set;function V6(t){return NM.add(t),()=>NM.delete(t)}function XUe(t){return new Promise(e=>{let n=!1,r=null,i=()=>{if(!n){n=!0,clearTimeout(o);try{r?.()}catch{}e()}},o=setTimeout(i,t);r=V6(i),Nh&&i()})}function QUe(t){return tf(()=>{let e=!1;try{if(t.isPortableFeedActive())return lt(null)}catch(r){e=!0,t.onError("portable check",r)}let n=new fe(r=>V6(()=>{try{(e||t.isPortableFeedActive())&&r.next(null)}catch(i){e=!0,r.next(null),t.onError("registration re-check",i)}}));return gs(t.firebaseDb$().pipe(mn(r=>!!r)),n)})}function ice(t){let e=t?.message;return typeof e=="string"&&/^NG0205(?!\d)/.test(e)}function JUe(t){if(Nh=t??null,Nh)for(let e of Array.from(NM))try{e()}catch(n){M.catch("Error in portable adapter registration listener: ",n)}}var ZUe=(()=>{let e=class e{constructor(r){this.injector=r}get configService(){return this._configService??=this.injector.get(Ji)}get authService(){return this._authService??=this.injector.get(Ed)}isPortableBackendActive(){return this.isPortableActive()}evaluatePortableGates(){try{return{chunkRegistered:!!Nh,flagOn:this.configService.getEnablePortableBackend()===!0,identifyRecorded:!!this.authService.getPortableBackend()}}catch(r){return ice(r)||M.catch("Error in AdapterSelectorService evaluatePortableGates: ",r),null}}isPortableActive(){let r=this.evaluatePortableGates();return!!r&&r.chunkRegistered&&r.flagOn&&r.identifyRecorded}isPortableBackendPending(){let r=this.evaluatePortableGates();return!!r&&!r.chunkRegistered&&r.flagOn&&r.identifyRecorded}isPortableSession(){let r=this.evaluatePortableGates();return!!r&&r.flagOn&&r.identifyRecorded}resolveDbAdapter(){return this.isPortableActive()?Nh.db:this.injector.get(k6)}resolveRealtimeAdapter(){return this.isPortableActive()?Nh.realtime:this.injector.get(U6)}};e.\u0275fac=function(i){return new(i||e)($(ze))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var rVe=new Set(YG);function iVe(t){try{let e=t?.reasonCode;return typeof e!="string"||!e.trim()?"":` [reason: ${e.trim()}]`}catch{return""}}export{B as a,Ee as b,X6 as c,oce as d,sce as e,ace as f,y as g,gt as h,fe as i,lS as j,Rt as k,ie as l,Xa as m,B4 as n,G4 as o,Wa as p,cr as q,lt as r,j4 as s,H4 as t,R4 as u,De as v,Ka as w,tf as x,$4 as y,wi as z,Q4 as A,To as B,I4 as C,gs as D,mn as E,u4 as F,oS as G,sS as H,T4 as I,Jm as J,En as K,cS as L,yo as M,Qh as N,Ya as O,Zm as P,dS as Q,v4 as R,hS as S,S4 as T,Qa as U,Mr as V,ps as W,A4 as X,eE as Y,C4 as Z,w4 as _,J as $,SE as aa,Q as ba,So as ca,z as da,$ as ea,Y as fa,Xn as ga,Nn as ha,bi as ia,gP as ja,mP as ka,RP as la,NP as ma,ze as na,on as oa,Hn as pa,lr as qa,ki as ra,Ec as sa,Lr as ta,wz as ua,zt as va,vC as wa,Kz as xa,Ns as ya,i_ as za,y_ as Aa,n8 as Ba,V8 as Ca,B8 as Da,G8 as Ea,$8 as Fa,W8 as Ga,c5 as Ha,Ro as Ia,Ae as Ja,m5 as Ka,oq as La,sq as Ma,Vi as Na,bf as Oa,bo as Pa,L_ as Qa,st as Ra,mq as Sa,ji as Ta,vc as Ua,r1 as Va,i9 as Wa,ws as Xa,Hi as Ya,Mf as Za,l1 as _a,p9 as $a,h1 as ab,f1 as bb,k_ as cb,bs as db,T1 as eb,y1 as fb,I9 as gb,S9 as hb,A9 as ib,C9 as jb,D9 as kb,R9 as lb,N9 as mb,I1 as nb,aD as ob,cD as pb,v1 as qb,lD as rb,uD as sb,S1 as tb,dD as ub,hD as vb,C1 as wb,P9 as xb,D1 as yb,N1 as zb,w1 as Ab,V9 as Bb,G9 as Cb,j9 as Db,$9 as Eb,W9 as Fb,z9 as Gb,q9 as Hb,K9 as Ib,Y9 as Jb,X9 as Kb,x1 as Lb,k1 as Mb,lK as Nb,dK as Ob,IK as Pb,W1 as Qb,fD as Rb,z1 as Sb,q1 as Tb,K1 as Ub,CK as Vb,Y1 as Wb,Q1 as Xb,DK as Yb,RK as Zb,NK as _b,wK as $b,PK as ac,xK as bc,kK as cc,FK as dc,UK as ec,VK as fc,BK as gc,GK as hc,jK as ic,HK as jc,$K as kc,WK as lc,qK as mc,YK as nc,XK as oc,QK as pc,JK as qc,ZK as rc,nY as sc,Uf as tc,Vf as uc,_D as vc,FSe as wc,USe as xc,VSe as yc,MY as zc,bD as Ac,BSe as Bc,GSe as Cc,jSe as Dc,$i as Ec,NF as Fc,ZY as Gc,WF as Hc,e7 as Ic,FD as Jc,t7 as Kc,n7 as Lc,r7 as Mc,i7 as Nc,s7 as Oc,c7 as Pc,u7 as Qc,UD as Rc,tT as Sc,nT as Tc,D7 as Uc,w7 as Vc,pU as Wc,Z7 as Xc,eX as Yc,XD as Zc,RU as _c,eR as $c,ld as ad,_r as bd,ks as cd,FT as dd,Fc as ed,Jn as fd,Me as gd,Xt as hd,$n as id,Xi as jd,Zn as kd,Bs as ld,er as md,Ge as nd,$J as od,cLe as pd,lLe as qd,uLe as rd,si as sd,Gs as td,Go as ud,ai as vd,ue as wd,ci as xd,jo as yd,NLe as zd,wLe as Ad,bLe as Bd,Hs as Cd,fee as Dd,gee as Ed,Nee as Fd,Hc as Gd,$c as Hd,hxe as Id,fxe as Jd,sFe as Kd,aFe as Ld,cFe as Md,lFe as Nd,uFe as Od,dFe as Pd,Ho as Qd,Oxe as Rd,Mxe as Sd,Lxe as Td,bU as Ud,yX as Vd,np as Wd,qt as Xd,M as Yd,lDe as Zd,uDe as _d,dDe as $d,hDe as ae,fDe as be,pDe as ce,gDe as de,Wi as ee,mDe as fe,EDe as ge,_De as he,TDe as ie,rX as je,iX as ke,oX as le,sX as me,aX as ne,cX as oe,yDe as pe,lX as qe,QD as re,uX as se,Er as te,uT as ue,dX as ve,Zu as we,Mn as xe,hX as ye,dT as ze,fX as Ae,pX as Be,gX as Ce,IDe as De,vDe as Ee,SDe as Fe,mX as Ge,F as He,CU as Ie,oRe as Je,sRe as Ke,aRe as Le,cRe as Me,ed as Ne,hRe as Oe,fRe as Pe,pRe as Qe,Ur as Re,Et as Se,OU as Te,MU as Ue,HRe as Ve,$Re as We,LU as Xe,tR as Ye,PU as Ze,nR as _e,IT as $e,IX as af,vX as bf,SX as cf,AX as df,CX as ef,DX as ff,RX as gf,NX as hf,wX as if,bX as jf,OX as kf,MX as lf,UU as mf,VU as nf,BU as of,GU as pf,jU as qf,zi as rf,gNe as sf,vT as tf,HU as uf,$U as vf,WU as wf,zU as xf,qU as yf,KU as zf,YU as Af,XU as Bf,QU as Cf,JU as Df,ZU as Ef,eV as Ff,tV as Gf,QNe as Hf,JNe as If,nV as Jf,rR as Kf,rV as Lf,iV as Mf,sV as Nf,aV as Of,Owe as Pf,Mwe as Qf,LX as Rf,PX as Sf,kOe as Tf,ST as Uf,lR as Vf,Pc as Wf,CV as Xf,qOe as Yf,Mc as Zf,Vo as _f,KOe as $f,YOe as ag,RV as bg,XOe as cg,QOe as dg,JOe as eg,ZOe as fg,e0e as gg,t0e as hg,n0e as ig,NV as jg,wV as kg,r0e as lg,i0e as mg,kX as ng,o0e as og,s0e as pg,a0e as qg,c0e as rg,l0e as sg,bV as tg,nd as ug,u0e as vg,OV as wg,LV as xg,fV as yg,pV as zg,FX as Ag,UX as Bg,wT as Cg,sp as Dg,d0e as Eg,h0e as Fg,qi as Gg,f0e as Hg,rd as Ig,GX as Jg,p0e as Kg,gR as Lg,mV as Mg,jX as Ng,DT as Og,g0e as Pg,m0e as Qg,PV as Rg,xV as Sg,HX as Tg,Oc as Ug,$X as Vg,qX as Wg,E0e as Xg,KX as Yg,_0e as Zg,YX as _g,XX as $g,QX as ah,JX as bh,xc as ch,T0e as dh,y0e as eh,I0e as fh,dR as gh,v0e as hh,eQ as ih,S0e as jh,A0e as kh,VV as lh,C0e as mh,D0e as nh,R0e as oh,N0e as ph,w0e as qh,b0e as rh,O0e as sh,AT as th,M0e as uh,L0e as vh,P0e as wh,mR as xh,x0e as yh,IV as zh,k0e as Ah,F0e as Bh,U0e as Ch,V0e as Dh,B0e as Eh,G0e as Fh,j0e as Gh,H0e as Hh,$0e as Ih,W0e as Jh,z0e as Kh,q0e as Lh,K0e as Mh,Y0e as Nh,X0e as Oh,Q0e as Ph,J0e as Qh,Z0e as Rh,eMe as Sh,tMe as Th,nMe as Uh,rMe as Vh,iQ as Wh,iMe as Xh,oMe as Yh,sMe as Zh,vV as _h,aMe as $h,cMe as ai,cp as bi,oQ as ci,lMe as di,uMe as ei,dMe as fi,hMe as gi,sQ as hi,fMe as ii,pMe as ji,zV as ki,_R as li,od as mi,gMe as ni,op as oi,mMe as pi,EMe as qi,_Me as ri,fR as si,TMe as ti,yMe as ui,IMe as vi,vMe as wi,AQ as xi,SMe as yi,AMe as zi,CMe as Ai,SV as Bi,DMe as Ci,CQ as Di,VQ as Ei,BQ as Fi,St as Gi,pd as Hi,NDe as Ii,wDe as Ji,bDe as Ki,ODe as Li,MDe as Mi,LDe as Ni,PDe as Oi,xDe as Pi,kDe as Qi,FDe as Ri,UDe as Si,VDe as Ti,hT as Ui,BDe as Vi,GDe as Wi,jDe as Xi,fT as Yi,HDe as Zi,$De as _i,WDe as $i,zDe as aj,qDe as bj,KDe as cj,YDe as dj,pT as ej,XDe as fj,QDe as gj,gT as hj,TU as ij,yU as jj,IU as kj,vU as lj,mT as mj,zs as nj,bt as oj,Ji as pj,zc as qj,tne as rj,Qxe as sj,ly as tj,Eke as uj,Wn as vj,_ke as wj,YG as xj,Ake as yj,Cke as zj,Dke as Aj,Rke as Bj,Nke as Cj,wke as Dj,gUe as Ej,mUe as Fj,EUe as Gj,_Ue as Hj,TUe as Ij,yUe as Jj,Pv as Kj,P6 as Lj,xv as Mj,k6 as Nj,F6 as Oj,U6 as Pj,V6 as Qj,XUe as Rj,QUe as Sj,JUe as Tj,ZUe as Uj,iVe as Vj,t2 as Wj,n2 as Xj,fy as Yj,Vke as Zj,Bke as _j,C2 as $j,Ed as ak};