!function(t){var e=function(t){return new Promise((function(e,i){var n=document.getElementById("veltScript"),o=!1,s=!1,r="latest",a="";if(t&&(t.staging&&(o=t.staging),t.version&&(r=t.version),t.develop&&(s=t.develop),t.proxyDomain&&(a=t.proxyDomain)),(null==t?void 0:t.version)||(r="1.0.120"),n)e();else{var l=document.createElement("script");o?l.src="https://us-central1-snipply-sdk-staging.cloudfunctions.net/getprivatenpmpackagefile?packageName=sdk-staging&packageVersion=".concat(r&&"latest"!==r?r:"1.0.1","&filePath=velt.js&orgName=@veltdev"):s?l.src="https://us-central1-snipply-sdk-staging.cloudfunctions.net/getprivatenpmpackagefile?packageName=sdk-dev&packageVersion=".concat(r&&"latest"!==r?r:"1.0.1","&filePath=velt.js&orgName=@veltdev"):a?("/"===a[a.length-1]&&(a=a.slice(0,-1)),l.src="".concat(a,"/lib/sdk@").concat(r,"/velt.js")):l.src="https://cdn.jsdelivr.net/npm/@veltdev/sdk@".concat(r,"/velt.js"),l.id="veltScript",l.type="module",document.body.appendChild(l),l.onload=function(){e()},l.onerror=function(){i(new Error("Failed to load Velt script"))}}}))},i=function(t,i){return function(t,e,i,n){return new(i||(i=Promise))((function(e,o){function s(t){try{a(n.next(t))}catch(t){o(t)}}function r(t){try{a(n.throw(t))}catch(t){o(t)}}function a(t){var n;t.done?e(t.value):(n=t.value,n instanceof i?n:new i((function(t){t(n)}))).then(s,r)}a((n=n.apply(t,[])).next())}))}(void 0,0,void 0,(function(){var n,o;return function(t,e){var i,n,o,s,r={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return s={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function a(a){return function(l){return function(a){if(i)throw new TypeError("Generator is already executing.");for(;s&&(s=0,a[0]&&(r=0)),r;)try{if(i=1,n&&(o=2&a[0]?n.return:a[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,a[1])).done)return o;switch(n=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return r.label++,{value:a[1],done:!1};case 5:r.label++,n=a[1],a=[0];continue;case 7:a=r.ops.pop(),r.trys.pop();continue;default:if(!((o=(o=r.trys).length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){r=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){r.label=a[1];break}if(6===a[0]&&r.label<o[1]){r.label=o[1],o=a;break}if(o&&r.label<o[2]){r.label=o[2],r.ops.push(a);break}o[2]&&r.ops.pop(),r.trys.pop();continue}a=e.call(t,r)}catch(t){a=[6,t],n=0}finally{i=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,l])}}}(this,(function(s){switch(s.label){case 0:return s.trys.push([0,6,,7]),[4,e(null==i?void 0:i.options)];case 1:return s.sent(),n=window.Velt,i?[4,null==n?void 0:n.init(t,i)]:[3,3];case 2:return s.sent(),[3,5];case 3:return[4,null==n?void 0:n.init(t)];case 4:s.sent(),s.label=5;case 5:return(null==n?void 0:n.st)&&(null==n||n.st("client")),[2,n];case 6:return o=s.sent(),console.error(o),[2,null];case 7:return[2]}}))}))};
/**
     * @license
     * Copyright 2019 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */const n=window.ShadowRoot&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,o=Symbol(),s=new Map;let r=class{constructor(t,e){if(this._$cssResult$=!0,e!==o)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t}get styleSheet(){let t=s.get(this.cssText);return n&&void 0===t&&(s.set(this.cssText,t=new CSSStyleSheet),t.replaceSync(this.cssText)),t}toString(){return this.cssText}};const a=(t,...e)=>{const i=1===t.length?t[0]:e.reduce(((e,i,n)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if("number"==typeof t)return t;throw Error("Value passed to 'css' function must be a 'css' function result: "+t+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(i)+t[n+1]),t[0]);return new r(i,o)},l=n?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e="";for(const i of t.cssRules)e+=i.cssText;return(t=>new r("string"==typeof t?t:t+"",o))(e)})(t):t
/**
     * @license
     * Copyright 2017 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */;var c;const d=window.trustedTypes,h=d?d.emptyScript:"",u=window.reactiveElementPolyfillSupport,p={toAttribute(t,e){switch(e){case Boolean:t=t?h:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,e){let i=t;switch(e){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},v=(t,e)=>e!==t&&(e==e||t==t),f={attribute:!0,type:String,converter:p,reflect:!1,hasChanged:v};let g=class extends HTMLElement{constructor(){super(),this._$Et=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Ei=null,this.o()}static addInitializer(t){var e;null!==(e=this.l)&&void 0!==e||(this.l=[]),this.l.push(t)}static get observedAttributes(){this.finalize();const t=[];return this.elementProperties.forEach(((e,i)=>{const n=this._$Eh(i,e);void 0!==n&&(this._$Eu.set(n,i),t.push(n))})),t}static createProperty(t,e=f){if(e.state&&(e.attribute=!1),this.finalize(),this.elementProperties.set(t,e),!e.noAccessor&&!this.prototype.hasOwnProperty(t)){const i="symbol"==typeof t?Symbol():"__"+t,n=this.getPropertyDescriptor(t,i,e);void 0!==n&&Object.defineProperty(this.prototype,t,n)}}static getPropertyDescriptor(t,e,i){return{get(){return this[e]},set(n){const o=this[t];this[e]=n,this.requestUpdate(t,o,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||f}static finalize(){if(this.hasOwnProperty("finalized"))return!1;this.finalized=!0;const t=Object.getPrototypeOf(this);if(t.finalize(),this.elementProperties=new Map(t.elementProperties),this._$Eu=new Map,this.hasOwnProperty("properties")){const t=this.properties,e=[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)];for(const i of e)this.createProperty(i,t[i])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(t){const e=[];if(Array.isArray(t)){const i=new Set(t.flat(1/0).reverse());for(const t of i)e.unshift(l(t))}else void 0!==t&&e.push(l(t));return e}static _$Eh(t,e){const i=e.attribute;return!1===i?void 0:"string"==typeof i?i:"string"==typeof t?t.toLowerCase():void 0}o(){var t;this._$Ep=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$Em(),this.requestUpdate(),null===(t=this.constructor.l)||void 0===t||t.forEach((t=>t(this)))}addController(t){var e,i;(null!==(e=this._$Eg)&&void 0!==e?e:this._$Eg=[]).push(t),void 0!==this.renderRoot&&this.isConnected&&(null===(i=t.hostConnected)||void 0===i||i.call(t))}removeController(t){var e;null===(e=this._$Eg)||void 0===e||e.splice(this._$Eg.indexOf(t)>>>0,1)}_$Em(){this.constructor.elementProperties.forEach(((t,e)=>{this.hasOwnProperty(e)&&(this._$Et.set(e,this[e]),delete this[e])}))}createRenderRoot(){var t;const e=null!==(t=this.shadowRoot)&&void 0!==t?t:this.attachShadow(this.constructor.shadowRootOptions);return((t,e)=>{n?t.adoptedStyleSheets=e.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):e.forEach((e=>{const i=document.createElement("style"),n=window.litNonce;void 0!==n&&i.setAttribute("nonce",n),i.textContent=e.cssText,t.appendChild(i)}))})(e,this.constructor.elementStyles),e}connectedCallback(){var t;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(t=this._$Eg)||void 0===t||t.forEach((t=>{var e;return null===(e=t.hostConnected)||void 0===e?void 0:e.call(t)}))}enableUpdating(t){}disconnectedCallback(){var t;null===(t=this._$Eg)||void 0===t||t.forEach((t=>{var e;return null===(e=t.hostDisconnected)||void 0===e?void 0:e.call(t)}))}attributeChangedCallback(t,e,i){this._$AK(t,i)}_$ES(t,e,i=f){var n,o;const s=this.constructor._$Eh(t,i);if(void 0!==s&&!0===i.reflect){const r=(null!==(o=null===(n=i.converter)||void 0===n?void 0:n.toAttribute)&&void 0!==o?o:p.toAttribute)(e,i.type);this._$Ei=t,null==r?this.removeAttribute(s):this.setAttribute(s,r),this._$Ei=null}}_$AK(t,e){var i,n,o;const s=this.constructor,r=s._$Eu.get(t);if(void 0!==r&&this._$Ei!==r){const t=s.getPropertyOptions(r),a=t.converter,l=null!==(o=null!==(n=null===(i=a)||void 0===i?void 0:i.fromAttribute)&&void 0!==n?n:"function"==typeof a?a:null)&&void 0!==o?o:p.fromAttribute;this._$Ei=r,this[r]=l(e,t.type),this._$Ei=null}}requestUpdate(t,e,i){let n=!0;void 0!==t&&(((i=i||this.constructor.getPropertyOptions(t)).hasChanged||v)(this[t],e)?(this._$AL.has(t)||this._$AL.set(t,e),!0===i.reflect&&this._$Ei!==t&&(void 0===this._$EC&&(this._$EC=new Map),this._$EC.set(t,i))):n=!1),!this.isUpdatePending&&n&&(this._$Ep=this._$E_())}async _$E_(){this.isUpdatePending=!0;try{await this._$Ep}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Et&&(this._$Et.forEach(((t,e)=>this[e]=t)),this._$Et=void 0);let e=!1;const i=this._$AL;try{e=this.shouldUpdate(i),e?(this.willUpdate(i),null===(t=this._$Eg)||void 0===t||t.forEach((t=>{var e;return null===(e=t.hostUpdate)||void 0===e?void 0:e.call(t)})),this.update(i)):this._$EU()}catch(t){throw e=!1,this._$EU(),t}e&&this._$AE(i)}willUpdate(t){}_$AE(t){var e;null===(e=this._$Eg)||void 0===e||e.forEach((t=>{var e;return null===(e=t.hostUpdated)||void 0===e?void 0:e.call(t)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$Ep}shouldUpdate(t){return!0}update(t){void 0!==this._$EC&&(this._$EC.forEach(((t,e)=>this._$ES(e,this[e],t))),this._$EC=void 0),this._$EU()}updated(t){}firstUpdated(t){}};
/**
     * @license
     * Copyright 2017 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */
var m;g.finalized=!0,g.elementProperties=new Map,g.elementStyles=[],g.shadowRootOptions={mode:"open"},null==u||u({ReactiveElement:g}),(null!==(c=globalThis.reactiveElementVersions)&&void 0!==c?c:globalThis.reactiveElementVersions=[]).push("1.3.2");const w=globalThis.trustedTypes,b=w?w.createPolicy("lit-html",{createHTML:t=>t}):void 0,y=`lit$${(Math.random()+"").slice(9)}$`,C="?"+y,x=`<${C}>`,E=document,k=(t="")=>E.createComment(t),S=t=>null===t||"object"!=typeof t&&"function"!=typeof t,M=Array.isArray,_=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,T=/-->/g,I=/>/g,N=/>|[ 	\n\r](?:([^\s"'>=/]+)([ 	\n\r]*=[ 	\n\r]*(?:[^ 	\n\r"'`<>=]|("|')|))|$)/g,A=/'/g,L=/"/g,O=/^(?:script|style|textarea|title)$/i,$=(t=>(e,...i)=>({_$litType$:t,strings:e,values:i}))(1),D=Symbol.for("lit-noChange"),V=Symbol.for("lit-nothing"),j=new WeakMap,F=E.createTreeWalker(E,129,null,!1),P=(t,e)=>{const i=t.length-1,n=[];let o,s=2===e?"<svg>":"",r=_;for(let e=0;e<i;e++){const i=t[e];let a,l,c=-1,d=0;for(;d<i.length&&(r.lastIndex=d,l=r.exec(i),null!==l);)d=r.lastIndex,r===_?"!--"===l[1]?r=T:void 0!==l[1]?r=I:void 0!==l[2]?(O.test(l[2])&&(o=RegExp("</"+l[2],"g")),r=N):void 0!==l[3]&&(r=N):r===N?">"===l[0]?(r=null!=o?o:_,c=-1):void 0===l[1]?c=-2:(c=r.lastIndex-l[2].length,a=l[1],r=void 0===l[3]?N:'"'===l[3]?L:A):r===L||r===A?r=N:r===T||r===I?r=_:(r=N,o=void 0);const h=r===N&&t[e+1].startsWith("/>")?" ":"";s+=r===_?i+x:c>=0?(n.push(a),i.slice(0,c)+"$lit$"+i.slice(c)+y+h):i+y+(-2===c?(n.push(void 0),e):h)}const a=s+(t[i]||"<?>")+(2===e?"</svg>":"");if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return[void 0!==b?b.createHTML(a):a,n]};class R{constructor({strings:t,_$litType$:e},i){let n;this.parts=[];let o=0,s=0;const r=t.length-1,a=this.parts,[l,c]=P(t,e);if(this.el=R.createElement(l,i),F.currentNode=this.el.content,2===e){const t=this.el.content,e=t.firstChild;e.remove(),t.append(...e.childNodes)}for(;null!==(n=F.nextNode())&&a.length<r;){if(1===n.nodeType){if(n.hasAttributes()){const t=[];for(const e of n.getAttributeNames())if(e.endsWith("$lit$")||e.startsWith(y)){const i=c[s++];if(t.push(e),void 0!==i){const t=n.getAttribute(i.toLowerCase()+"$lit$").split(y),e=/([.?@])?(.*)/.exec(i);a.push({type:1,index:o,name:e[2],strings:t,ctor:"."===e[1]?W:"?"===e[1]?K:"@"===e[1]?Z:H})}else a.push({type:6,index:o})}for(const e of t)n.removeAttribute(e)}if(O.test(n.tagName)){const t=n.textContent.split(y),e=t.length-1;if(e>0){n.textContent=w?w.emptyScript:"";for(let i=0;i<e;i++)n.append(t[i],k()),F.nextNode(),a.push({type:2,index:++o});n.append(t[e],k())}}}else if(8===n.nodeType)if(n.data===C)a.push({type:2,index:o});else{let t=-1;for(;-1!==(t=n.data.indexOf(y,t+1));)a.push({type:7,index:o}),t+=y.length-1}o++}}static createElement(t,e){const i=E.createElement("template");return i.innerHTML=t,i}}function U(t,e,i=t,n){var o,s,r,a;if(e===D)return e;let l=void 0!==n?null===(o=i._$Cl)||void 0===o?void 0:o[n]:i._$Cu;const c=S(e)?void 0:e._$litDirective$;return(null==l?void 0:l.constructor)!==c&&(null===(s=null==l?void 0:l._$AO)||void 0===s||s.call(l,!1),void 0===c?l=void 0:(l=new c(t),l._$AT(t,i,n)),void 0!==n?(null!==(r=(a=i)._$Cl)&&void 0!==r?r:a._$Cl=[])[n]=l:i._$Cu=l),void 0!==l&&(e=U(t,l._$AS(t,e.values),l,n)),e}class z{constructor(t,e){this.v=[],this._$AN=void 0,this._$AD=t,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}p(t){var e;const{el:{content:i},parts:n}=this._$AD,o=(null!==(e=null==t?void 0:t.creationScope)&&void 0!==e?e:E).importNode(i,!0);F.currentNode=o;let s=F.nextNode(),r=0,a=0,l=n[0];for(;void 0!==l;){if(r===l.index){let e;2===l.type?e=new B(s,s.nextSibling,this,t):1===l.type?e=new l.ctor(s,l.name,l.strings,this,t):6===l.type&&(e=new J(s,this,t)),this.v.push(e),l=n[++a]}r!==(null==l?void 0:l.index)&&(s=F.nextNode(),r++)}return o}m(t){let e=0;for(const i of this.v)void 0!==i&&(void 0!==i.strings?(i._$AI(t,i,e),e+=i.strings.length-2):i._$AI(t[e])),e++}}let B=class t{constructor(t,e,i,n){var o;this.type=2,this._$AH=V,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=i,this.options=n,this._$Cg=null===(o=null==n?void 0:n.isConnected)||void 0===o||o}get _$AU(){var t,e;return null!==(e=null===(t=this._$AM)||void 0===t?void 0:t._$AU)&&void 0!==e?e:this._$Cg}get parentNode(){let t=this._$AA.parentNode;const e=this._$AM;return void 0!==e&&11===t.nodeType&&(t=e.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,e=this){t=U(this,t,e),S(t)?t===V||null==t||""===t?(this._$AH!==V&&this._$AR(),this._$AH=V):t!==this._$AH&&t!==D&&this.$(t):void 0!==t._$litType$?this.T(t):void 0!==t.nodeType?this.k(t):(t=>{var e;return M(t)||"function"==typeof(null===(e=t)||void 0===e?void 0:e[Symbol.iterator])})(t)?this.S(t):this.$(t)}M(t,e=this._$AB){return this._$AA.parentNode.insertBefore(t,e)}k(t){this._$AH!==t&&(this._$AR(),this._$AH=this.M(t))}$(t){this._$AH!==V&&S(this._$AH)?this._$AA.nextSibling.data=t:this.k(E.createTextNode(t)),this._$AH=t}T(t){var e;const{values:i,_$litType$:n}=t,o="number"==typeof n?this._$AC(t):(void 0===n.el&&(n.el=R.createElement(n.h,this.options)),n);if((null===(e=this._$AH)||void 0===e?void 0:e._$AD)===o)this._$AH.m(i);else{const t=new z(o,this),e=t.p(this.options);t.m(i),this.k(e),this._$AH=t}}_$AC(t){let e=j.get(t.strings);return void 0===e&&j.set(t.strings,e=new R(t)),e}S(e){M(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let n,o=0;for(const s of e)o===i.length?i.push(n=new t(this.M(k()),this.M(k()),this,this.options)):n=i[o],n._$AI(s),o++;o<i.length&&(this._$AR(n&&n._$AB.nextSibling,o),i.length=o)}_$AR(t=this._$AA.nextSibling,e){var i;for(null===(i=this._$AP)||void 0===i||i.call(this,!1,!0,e);t&&t!==this._$AB;){const e=t.nextSibling;t.remove(),t=e}}setConnected(t){var e;void 0===this._$AM&&(this._$Cg=t,null===(e=this._$AP)||void 0===e||e.call(this,t))}},H=class{constructor(t,e,i,n,o){this.type=1,this._$AH=V,this._$AN=void 0,this.element=t,this.name=e,this._$AM=n,this.options=o,i.length>2||""!==i[0]||""!==i[1]?(this._$AH=Array(i.length-1).fill(new String),this.strings=i):this._$AH=V}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,e=this,i,n){const o=this.strings;let s=!1;if(void 0===o)t=U(this,t,e,0),s=!S(t)||t!==this._$AH&&t!==D,s&&(this._$AH=t);else{const n=t;let r,a;for(t=o[0],r=0;r<o.length-1;r++)a=U(this,n[i+r],e,r),a===D&&(a=this._$AH[r]),s||(s=!S(a)||a!==this._$AH[r]),a===V?t=V:t!==V&&(t+=(null!=a?a:"")+o[r+1]),this._$AH[r]=a}s&&!n&&this.C(t)}C(t){t===V?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,null!=t?t:"")}};class W extends H{constructor(){super(...arguments),this.type=3}C(t){this.element[this.name]=t===V?void 0:t}}const G=w?w.emptyScript:"";let K=class extends H{constructor(){super(...arguments),this.type=4}C(t){t&&t!==V?this.element.setAttribute(this.name,G):this.element.removeAttribute(this.name)}};class Z extends H{constructor(t,e,i,n,o){super(t,e,i,n,o),this.type=5}_$AI(t,e=this){var i;if((t=null!==(i=U(this,t,e,0))&&void 0!==i?i:V)===D)return;const n=this._$AH,o=t===V&&n!==V||t.capture!==n.capture||t.once!==n.once||t.passive!==n.passive,s=t!==V&&(n===V||o);o&&this.element.removeEventListener(this.name,this,n),s&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var e,i;"function"==typeof this._$AH?this._$AH.call(null!==(i=null===(e=this.options)||void 0===e?void 0:e.host)&&void 0!==i?i:this.element,t):this._$AH.handleEvent(t)}}class J{constructor(t,e,i){this.element=t,this.type=6,this._$AN=void 0,this._$AM=e,this.options=i}get _$AU(){return this._$AM._$AU}_$AI(t){U(this,t)}}const Y=window.litHtmlPolyfillSupport;
/**
     * @license
     * Copyright 2017 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */
var q,Q;null==Y||Y(R,B),(null!==(m=globalThis.litHtmlVersions)&&void 0!==m?m:globalThis.litHtmlVersions=[]).push("2.2.6");class X extends g{constructor(){super(...arguments),this.renderOptions={host:this},this._$Dt=void 0}createRenderRoot(){var t,e;const i=super.createRenderRoot();return null!==(t=(e=this.renderOptions).renderBefore)&&void 0!==t||(e.renderBefore=i.firstChild),i}update(t){const e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Dt=((t,e,i)=>{var n,o;const s=null!==(n=null==i?void 0:i.renderBefore)&&void 0!==n?n:e;let r=s._$litPart$;if(void 0===r){const t=null!==(o=null==i?void 0:i.renderBefore)&&void 0!==o?o:null;s._$litPart$=r=new B(e.insertBefore(k(),t),t,void 0,null!=i?i:{})}return r._$AI(t),r})(e,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),null===(t=this._$Dt)||void 0===t||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),null===(t=this._$Dt)||void 0===t||t.setConnected(!1)}render(){return D}}X.finalized=!0,X._$litElement$=!0,null===(q=globalThis.litElementHydrateSupport)||void 0===q||q.call(globalThis,{LitElement:X});const tt=globalThis.litElementPolyfillSupport;null==tt||tt({LitElement:X}),(null!==(Q=globalThis.litElementVersions)&&void 0!==Q?Q:globalThis.litElementVersions=[]).push("3.2.0");
/**
     * @license
     * Copyright 2017 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */
const et=t=>e=>"function"==typeof e?((t,e)=>(window.customElements.define(t,e),e))(t,e):((t,e)=>{const{kind:i,elements:n}=e;return{kind:i,elements:n,finisher(e){window.customElements.define(t,e)}}})(t,e)
/**
     * @license
     * Copyright 2017 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */,it=(t,e)=>"method"===e.kind&&e.descriptor&&!("value"in e.descriptor)?{...e,finisher(i){i.createProperty(e.key,t)}}:{kind:"field",key:Symbol(),placement:"own",descriptor:{},originalKey:e.key,initializer(){"function"==typeof e.initializer&&(this[e.key]=e.initializer.call(this))},finisher(i){i.createProperty(e.key,t)}};function nt(t){return(e,i)=>void 0!==i?((t,e,i)=>{e.constructor.createProperty(i,t)})(t,e,i):it(t,e)
/**
     * @license
     * Copyright 2017 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */}function ot(t){return nt({...t,state:!0})}
/**
     * @license
     * Copyright 2017 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */
/**
     * @license
     * Copyright 2017 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */
function st(t,e){return(({finisher:t,descriptor:e})=>(i,n)=>{var o;if(void 0===n){const n=null!==(o=i.originalKey)&&void 0!==o?o:i.key,s=null!=e?{kind:"method",placement:"prototype",key:n,descriptor:e(i.key)}:{...i,key:n};return null!=t&&(s.finisher=function(e){t(e,n)}),s}{const o=i.constructor;void 0!==e&&Object.defineProperty(i,n,e(n)),null==t||t(o,n)}})({descriptor:e=>{const i={get(){var e,i;return null!==(i=null===(e=this.renderRoot)||void 0===e?void 0:e.querySelector(t))&&void 0!==i?i:null},enumerable:!0,configurable:!0};return i}})}
/**
     * @license
     * Copyright 2021 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */var rt;null===(rt=window.HTMLSlotElement)||void 0===rt||rt.prototype.assignedElements;
/**
     * @license
     * Copyright 2017 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */
const at=1,lt=2,ct=t=>(...e)=>({_$litDirective$:t,values:e});class dt{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}
/**
     * @license
     * Copyright 2018 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */const ht=ct(class extends dt{constructor(t){var e;if(super(t),t.type!==at||"class"!==t.name||(null===(e=t.strings)||void 0===e?void 0:e.length)>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(t){return" "+Object.keys(t).filter((e=>t[e])).join(" ")+" "}update(t,[e]){var i,n;if(void 0===this.et){this.et=new Set,void 0!==t.strings&&(this.st=new Set(t.strings.join(" ").split(/\s/).filter((t=>""!==t))));for(const t in e)e[t]&&!(null===(i=this.st)||void 0===i?void 0:i.has(t))&&this.et.add(t);return this.render(e)}const o=t.element.classList;this.et.forEach((t=>{t in e||(o.remove(t),this.et.delete(t))}));for(const t in e){const i=!!e[t];i===this.et.has(t)||(null===(n=this.st)||void 0===n?void 0:n.has(t))||(i?(o.add(t),this.et.add(t)):(o.remove(t),this.et.delete(t)))}return D}});
/**
     * @license
     * Copyright 2017 Google LLC
     * SPDX-License-Identifier: BSD-3-Clause
     */class ut extends dt{constructor(t){if(super(t),this.it=V,t.type!==lt)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(t){if(t===V||null==t)return this.ft=void 0,this.it=t;if(t===D)return t;if("string"!=typeof t)throw Error(this.constructor.directiveName+"() called with a non-string value");if(t===this.it)return this.ft;this.it=t;const e=[t];return e.raw=e,this.ft={_$litType$:this.constructor.resultType,strings:e,values:[]}}}ut.directiveName="unsafeHTML",ut.resultType=1;const pt=ct(ut);class vt{}vt.Events={GUEST_MODE_SIGN_IN_DIALOG_SHOWN:"guestModeSignInDialogShown",GUEST_MODE_NAME_DIALOG_SHOWN:"guestModeNameDialogShown",GUEST_MODE_SIGN_IN_BANNER_SHOWN:"guestModeSignInBannerShown",GUEST_MODE_SIGN_IN_BUTTON_CLICKED:"guestModeSignInButtonClicked",PASSWORD_PROTECTED_MODAL_CLOSE_BUTTON_CLICKED:"passwordProtectedModalCloseButtonClicked",PASSWORD_PROTECTED_MODAL_OPEN_BUTTON_CLICKED:"passwordProtectedModalOpenButtonClicked",TOOLBAR_EXPANDED:"toolbarExpanded",TOOLBAR_COLLAPSED:"toolbarCollapsed",TOOLBAR_NOTIFICATION_CLICKED:"toolbarNotificationClicked",GUEST_MODE_SKIP_BUTTON_CLICKED:"guestModeSkipButtonClicked",GUEST_MODE_SIGN_IN_NUDGE_SHOWN:"guestModeSignInNudgeShown",GUEST_MODE_NAME_NUDGE_SHOWN:"guestModeNameNudgeShown",GUEST_MODE_SIGN_IN_CLICKED:"guestModeSignInClicked",GUEST_MODE_PRESENT:"guestModePresent",GUEST_MODE_NAME_ADDED:"guestModeNameAdded",REVIEW_PASSWORD_ADDED:"reviewPasswordAdded",REVIEW_PASSWORD_REJECTED:"reviewPasswordRejected",REVIEW_PASSWORD_ACCEPTED:"reviewPasswordAccepted",PRIVATE_MODE_ENABLED:"privateModeEnabled",PRIVATE_MODE_DISABLED:"privateModeDisabled",VIEW_PROJECT_CLICKED:"viewProjectClicked",OPEN_MOBILE_CLICKED:"openMobileClicked",EXIT_REVIEW_MODE_CLICKED:"exitReviewModeClicked",SIGNOUT_CLICKED:"signoutClicked",SIGNIN_CLICKED:"signinClicked",SIGN_IN_REQUIRED:"signInRequired",USER_EMAIL_NOT_WHITELISTED:"userEmailNotWhitelisted",DOMAIN_NOT_WHITELISTED:"domainNotWhitelisted",DUPLICATE_SCRIPT_INSTALLED:"duplicateScriptInstalled",TOOLBAR_DISABLED:"toolbarDisabled",INVITE_MODAL_OPENED:"inviteModalOpened",INVITE_SENT:"inviteSent",QUALITY_CHECK_RUN_TOOLBAR_CLICKED:"qualityCheckRunFromToolbarClicked"};const ft="1.0.131",gt="5.0.2-beta.45",mt="1.0.120",wt=["v3ogId1G43AFHehEOewv","rNYzMJd13L27xtfipmSK","aU1MxKP0rca2UXwKi8bl"],bt="review",yt="feedback",Ct="sreviewId",xt="scommentId",Et="snippyly-user",kt="st",St="_sfut",Mt="_sfgut",_t="projectVersionKey",Tt="projectVersion",It="sversion",Nt="sprojectInstall",At="sflivedemo",Lt="sffigmademo",Ot="sfTourCommentTooltip",$t="sfUserAdmin",Dt="sfGuestMode",Vt="sfPasswordProtected",jt="sfQueryParamsComments",Ft="sfUsePageTitleAsLocationName",Pt="sfPasswordIsValid",Rt="sfPrivateMode",Ut="sfGuestModeAllowSignIn",zt="sfGuestUserModelOpened",Bt="sfGuestUserNameUpdated",Ht="sfGuestUserBannerOpened",Wt="sfCustomerMetadata",Gt="sfSamlConfig",Kt="superflow-file-viewer-staging.web.app",Zt="drive.usesuperflow.com",Jt="terminal",Yt="suggestion",qt={AGENT:"agent:",AGENT_TYPE_CUSTOM:"agentType:custom"},Qt={SPELL_CHECK:"spell-check",BROKEN_LINKS:"broken-links",GRAMMAR_CHECK:"grammar-check"},Xt={VELT_ROOT:"velt-root",VELT_PRESENCE:"velt-presence",VELT_CURSOR:"velt-cursor",VELT_COMMENT_TOOL:"velt-comment-tool",VELT_COMMENTS:"velt-comments",SNIPPYLY_TEXT_HIGHLIGHT:"snippyly-text-highlight",VELT_COMMENTS_SIDEBAR:"velt-comments-sidebar",VELT_HUDDLE:"velt-huddle",VELT_RECORDER_NOTES:"velt-recorder-notes",VELT_RECORDER_CONTROL_PANEL:"velt-recorder-control-panel",VELT_ARROWS:"velt-arrows",VELT_NOTIFICATIONS_HISTORY_PANEL:"velt-notifications-history-panel"},te={ENABLE_URL_NAVIGATION:"enable-url-navigation",CURRENT_LOCATION_SUFFIX:"current-location-suffix"},ee={customBranding:{logo:{logoMark:{lightUrl:'\n\t\t\t\t<svg viewBox="0 0 49 48" fill="none" xmlns="http://www.w3.org/2000/svg">\n\t\t\t\t\t<path d="M8 8C8 3.58172 11.5817 0 16 0V0C20.4183 0 24 3.58172 24 8V16H16C11.5817 16 8 12.4183 8 8V8Z" fill="#FFCD2E"/>\n\t\t\t\t\t<path d="M0 29C0 22.3726 5.37258 17 12 17H24V29C24 35.6274 18.6274 41 12 41V41C5.37258 41 0 35.6274 0 29V29Z" fill="#A259FE"/>\n\t\t\t\t\t<path d="M25 19C25 12.3726 30.3726 7 37 7V7C43.6274 7 49 12.3726 49 19V19C49 25.6274 43.6274 31 37 31H25V19Z" fill="#FF7162"/>\n\t\t\t\t\t<path d="M25 32H33C37.4183 32 41 35.5817 41 40V40C41 44.4183 37.4183 48 33 48V48C28.5817 48 25 44.4183 25 40V32Z" fill="#0DCF82"/>\n\t\t\t\t</svg>\n\t\t\t\t',darkUrl:'\n\t\t\t\t<svg viewBox="0 0 49 48" fill="none" xmlns="http://www.w3.org/2000/svg">\n\t\t\t\t\t<path d="M8 8C8 3.58172 11.5817 0 16 0V0C20.4183 0 24 3.58172 24 8V16H16C11.5817 16 8 12.4183 8 8V8Z" fill="#FFCD2E"/>\n\t\t\t\t\t<path d="M0 29C0 22.3726 5.37258 17 12 17H24V29C24 35.6274 18.6274 41 12 41V41C5.37258 41 0 35.6274 0 29V29Z" fill="#A259FE"/>\n\t\t\t\t\t<path d="M25 19C25 12.3726 30.3726 7 37 7V7C43.6274 7 49 12.3726 49 19V19C49 25.6274 43.6274 31 37 31H25V19Z" fill="#FF7162"/>\n\t\t\t\t\t<path d="M25 32H33C37.4183 32 41 35.5817 41 40V40C41 44.4183 37.4183 48 33 48V48C28.5817 48 25 44.4183 25 40V32Z" fill="#0DCF82"/>\n\t\t\t\t</svg>\n\t\t\t\t'},wordMark:{lightUrl:'\n\t\t\t\t<svg width="257" height="65" viewBox="0 0 257 65" fill="none" xmlns="http://www.w3.org/2000/svg">\n\t\t\t\t\t<path d="M8 16C8 11.5817 11.5817 8 16 8V8C20.4183 8 24 11.5817 24 16V24H16C11.5817 24 8 20.4183 8 16V16Z" fill="#FFCD2E"/>\n\t\t\t\t\t<path d="M0 37C0 30.3726 5.37258 25 12 25H24V37C24 43.6274 18.6274 49 12 49V49C5.37258 49 0 43.6274 0 37V37Z" fill="#A259FE"/>\n\t\t\t\t\t<path d="M25 27C25 20.3726 30.3726 15 37 15V15C43.6274 15 49 20.3726 49 27V27C49 33.6274 43.6274 39 37 39H25V27Z" fill="#FF7162"/>\n\t\t\t\t\t<path d="M25 40H33C37.4183 40 41 43.5817 41 48V48C41 52.4183 37.4183 56 33 56V56C28.5817 56 25 52.4183 25 48V40Z" fill="#0DCF82"/>\n\t\t\t\t\t<path d="M73.4 46.28C71.4533 46.28 69.6933 45.9467 68.12 45.28C66.5733 44.6133 65.3467 43.6533 64.44 42.4C63.5333 41.1467 63.0667 39.6667 63.04 37.96H69.04C69.12 39.1067 69.52 40.0133 70.24 40.68C70.9867 41.3467 72 41.68 73.28 41.68C74.5867 41.68 75.6133 41.3733 76.36 40.76C77.1067 40.12 77.48 39.2933 77.48 38.28C77.48 37.4533 77.2267 36.7733 76.72 36.24C76.2133 35.7067 75.5733 35.2933 74.8 35C74.0533 34.68 73.0133 34.3333 71.68 33.96C69.8667 33.4267 68.3867 32.9067 67.24 32.4C66.12 31.8667 65.1467 31.08 64.32 30.04C63.52 28.9733 63.12 27.56 63.12 25.8C63.12 24.1467 63.5333 22.7067 64.36 21.48C65.1867 20.2533 66.3467 19.32 67.84 18.68C69.3333 18.0133 71.04 17.68 72.96 17.68C75.84 17.68 78.1733 18.3867 79.96 19.8C81.7733 21.1867 82.7733 23.1333 82.96 25.64H76.8C76.7467 24.68 76.3333 23.8933 75.56 23.28C74.8133 22.64 73.8133 22.32 72.56 22.32C71.4667 22.32 70.5867 22.6 69.92 23.16C69.28 23.72 68.96 24.5333 68.96 25.6C68.96 26.3467 69.2 26.9733 69.68 27.48C70.1867 27.96 70.8 28.36 71.52 28.68C72.2667 28.9733 73.3067 29.32 74.64 29.72C76.4533 30.2533 77.9333 30.7867 79.08 31.32C80.2267 31.8533 81.2133 32.6533 82.04 33.72C82.8667 34.7867 83.28 36.1867 83.28 37.92C83.28 39.4133 82.8933 40.8 82.12 42.08C81.3467 43.36 80.2133 44.3867 78.72 45.16C77.2267 45.9067 75.4533 46.28 73.4 46.28ZM107.855 23.84V46H102.215V43.2C101.495 44.16 100.548 44.92 99.375 45.48C98.2283 46.0133 96.975 46.28 95.615 46.28C93.8817 46.28 92.3483 45.92 91.015 45.2C89.6817 44.4533 88.6283 43.3733 87.855 41.96C87.1083 40.52 86.735 38.8133 86.735 36.84V23.84H92.335V36.04C92.335 37.8 92.775 39.16 93.655 40.12C94.535 41.0533 95.735 41.52 97.255 41.52C98.8017 41.52 100.015 41.0533 100.895 40.12C101.775 39.16 102.215 37.8 102.215 36.04V23.84H107.855ZM116.98 27.04C117.7 26.0267 118.687 25.1867 119.94 24.52C121.22 23.8267 122.674 23.48 124.3 23.48C126.194 23.48 127.9 23.9467 129.42 24.88C130.967 25.8133 132.18 27.1467 133.06 28.88C133.967 30.5867 134.42 32.5733 134.42 34.84C134.42 37.1067 133.967 39.12 133.06 40.88C132.18 42.6133 130.967 43.96 129.42 44.92C127.9 45.88 126.194 46.36 124.3 46.36C122.674 46.36 121.234 46.0267 119.98 45.36C118.754 44.6933 117.754 43.8533 116.98 42.84V56.56H111.38V23.84H116.98V27.04ZM128.7 34.84C128.7 33.5067 128.42 32.36 127.86 31.4C127.327 30.4133 126.607 29.6667 125.7 29.16C124.82 28.6533 123.86 28.4 122.82 28.4C121.807 28.4 120.847 28.6667 119.94 29.2C119.06 29.7067 118.34 30.4533 117.78 31.44C117.247 32.4267 116.98 33.5867 116.98 34.92C116.98 36.2533 117.247 37.4133 117.78 38.4C118.34 39.3867 119.06 40.1467 119.94 40.68C120.847 41.1867 121.807 41.44 122.82 41.44C123.86 41.44 124.82 41.1733 125.7 40.64C126.607 40.1067 127.327 39.3467 127.86 38.36C128.42 37.3733 128.7 36.2 128.7 34.84ZM158.29 34.44C158.29 35.24 158.236 35.96 158.13 36.6H141.93C142.063 38.2 142.623 39.4533 143.61 40.36C144.596 41.2667 145.81 41.72 147.25 41.72C149.33 41.72 150.81 40.8267 151.69 39.04H157.73C157.09 41.1733 155.863 42.9333 154.05 44.32C152.236 45.68 150.01 46.36 147.37 46.36C145.236 46.36 143.316 45.8933 141.61 44.96C139.93 44 138.61 42.6533 137.65 40.92C136.716 39.1867 136.25 37.1867 136.25 34.92C136.25 32.6267 136.716 30.6133 137.65 28.88C138.583 27.1467 139.89 25.8133 141.57 24.88C143.25 23.9467 145.183 23.48 147.37 23.48C149.476 23.48 151.356 23.9333 153.01 24.84C154.69 25.7467 155.983 27.04 156.89 28.72C157.823 30.3733 158.29 32.28 158.29 34.44ZM152.49 32.84C152.463 31.4 151.943 30.2533 150.93 29.4C149.916 28.52 148.676 28.08 147.21 28.08C145.823 28.08 144.65 28.5067 143.69 29.36C142.756 30.1867 142.183 31.3467 141.97 32.84H152.49ZM167.177 27.28C167.897 26.1067 168.831 25.1867 169.977 24.52C171.151 23.8533 172.484 23.52 173.977 23.52V29.4H172.497C170.737 29.4 169.404 29.8133 168.497 30.64C167.617 31.4667 167.177 32.9067 167.177 34.96V46H161.577V23.84H167.177V27.28ZM188.309 28.44H184.429V46H178.749V28.44H176.229V23.84H178.749V22.72C178.749 20 179.522 18 181.069 16.72C182.616 15.44 184.949 14.84 188.069 14.92V19.64C186.709 19.6133 185.762 19.84 185.229 20.32C184.696 20.8 184.429 21.6667 184.429 22.92V23.84H188.309V28.44ZM197.538 16.4V46H191.938V16.4H197.538ZM211.711 46.36C209.578 46.36 207.658 45.8933 205.951 44.96C204.244 44 202.898 42.6533 201.911 40.92C200.951 39.1867 200.471 37.1867 200.471 34.92C200.471 32.6533 200.964 30.6533 201.951 28.92C202.964 27.1867 204.338 25.8533 206.071 24.92C207.804 23.96 209.738 23.48 211.871 23.48C214.004 23.48 215.938 23.96 217.671 24.92C219.404 25.8533 220.764 27.1867 221.751 28.92C222.764 30.6533 223.271 32.6533 223.271 34.92C223.271 37.1867 222.751 39.1867 221.711 40.92C220.698 42.6533 219.311 44 217.551 44.96C215.818 45.8933 213.871 46.36 211.711 46.36ZM211.711 41.48C212.724 41.48 213.671 41.24 214.551 40.76C215.458 40.2533 216.178 39.5067 216.711 38.52C217.244 37.5333 217.511 36.3333 217.511 34.92C217.511 32.8133 216.951 31.2 215.831 30.08C214.738 28.9333 213.391 28.36 211.791 28.36C210.191 28.36 208.844 28.9333 207.751 30.08C206.684 31.2 206.151 32.8133 206.151 34.92C206.151 37.0267 206.671 38.6533 207.711 39.8C208.778 40.92 210.111 41.48 211.711 41.48ZM256.499 23.84L250.019 46H243.979L239.939 30.52L235.899 46H229.819L223.299 23.84H228.979L232.899 40.72L237.139 23.84H243.059L247.219 40.68L251.139 23.84H256.499Z" fill="#141416"/>\n\t\t\t\t</svg>\n\t\t\t\t',darkUrl:'\n\t\t\t\t<svg width="257" height="65" viewBox="0 0 257 65" fill="none" xmlns="http://www.w3.org/2000/svg">\n\t\t\t\t\t<path d="M8 16C8 11.5817 11.5817 8 16 8V8C20.4183 8 24 11.5817 24 16V24H16C11.5817 24 8 20.4183 8 16V16Z" fill="#FFCD2E"/>\n\t\t\t\t\t<path d="M0 37C0 30.3726 5.37258 25 12 25H24V37C24 43.6274 18.6274 49 12 49V49C5.37258 49 0 43.6274 0 37V37Z" fill="#A259FE"/>\n\t\t\t\t\t<path d="M25 27C25 20.3726 30.3726 15 37 15V15C43.6274 15 49 20.3726 49 27V27C49 33.6274 43.6274 39 37 39H25V27Z" fill="#FF7162"/>\n\t\t\t\t\t<path d="M25 40H33C37.4183 40 41 43.5817 41 48V48C41 52.4183 37.4183 56 33 56V56C28.5817 56 25 52.4183 25 48V40Z" fill="#0DCF82"/>\n\t\t\t\t\t<path d="M73.4 46.28C71.4533 46.28 69.6933 45.9467 68.12 45.28C66.5733 44.6133 65.3467 43.6533 64.44 42.4C63.5333 41.1467 63.0667 39.6667 63.04 37.96H69.04C69.12 39.1067 69.52 40.0133 70.24 40.68C70.9867 41.3467 72 41.68 73.28 41.68C74.5867 41.68 75.6133 41.3733 76.36 40.76C77.1067 40.12 77.48 39.2933 77.48 38.28C77.48 37.4533 77.2267 36.7733 76.72 36.24C76.2133 35.7067 75.5733 35.2933 74.8 35C74.0533 34.68 73.0133 34.3333 71.68 33.96C69.8667 33.4267 68.3867 32.9067 67.24 32.4C66.12 31.8667 65.1467 31.08 64.32 30.04C63.52 28.9733 63.12 27.56 63.12 25.8C63.12 24.1467 63.5333 22.7067 64.36 21.48C65.1867 20.2533 66.3467 19.32 67.84 18.68C69.3333 18.0133 71.04 17.68 72.96 17.68C75.84 17.68 78.1733 18.3867 79.96 19.8C81.7733 21.1867 82.7733 23.1333 82.96 25.64H76.8C76.7467 24.68 76.3333 23.8933 75.56 23.28C74.8133 22.64 73.8133 22.32 72.56 22.32C71.4667 22.32 70.5867 22.6 69.92 23.16C69.28 23.72 68.96 24.5333 68.96 25.6C68.96 26.3467 69.2 26.9733 69.68 27.48C70.1867 27.96 70.8 28.36 71.52 28.68C72.2667 28.9733 73.3067 29.32 74.64 29.72C76.4533 30.2533 77.9333 30.7867 79.08 31.32C80.2267 31.8533 81.2133 32.6533 82.04 33.72C82.8667 34.7867 83.28 36.1867 83.28 37.92C83.28 39.4133 82.8933 40.8 82.12 42.08C81.3467 43.36 80.2133 44.3867 78.72 45.16C77.2267 45.9067 75.4533 46.28 73.4 46.28ZM107.855 23.84V46H102.215V43.2C101.495 44.16 100.548 44.92 99.375 45.48C98.2283 46.0133 96.975 46.28 95.615 46.28C93.8817 46.28 92.3483 45.92 91.015 45.2C89.6817 44.4533 88.6283 43.3733 87.855 41.96C87.1083 40.52 86.735 38.8133 86.735 36.84V23.84H92.335V36.04C92.335 37.8 92.775 39.16 93.655 40.12C94.535 41.0533 95.735 41.52 97.255 41.52C98.8017 41.52 100.015 41.0533 100.895 40.12C101.775 39.16 102.215 37.8 102.215 36.04V23.84H107.855ZM116.98 27.04C117.7 26.0267 118.687 25.1867 119.94 24.52C121.22 23.8267 122.674 23.48 124.3 23.48C126.194 23.48 127.9 23.9467 129.42 24.88C130.967 25.8133 132.18 27.1467 133.06 28.88C133.967 30.5867 134.42 32.5733 134.42 34.84C134.42 37.1067 133.967 39.12 133.06 40.88C132.18 42.6133 130.967 43.96 129.42 44.92C127.9 45.88 126.194 46.36 124.3 46.36C122.674 46.36 121.234 46.0267 119.98 45.36C118.754 44.6933 117.754 43.8533 116.98 42.84V56.56H111.38V23.84H116.98V27.04ZM128.7 34.84C128.7 33.5067 128.42 32.36 127.86 31.4C127.327 30.4133 126.607 29.6667 125.7 29.16C124.82 28.6533 123.86 28.4 122.82 28.4C121.807 28.4 120.847 28.6667 119.94 29.2C119.06 29.7067 118.34 30.4533 117.78 31.44C117.247 32.4267 116.98 33.5867 116.98 34.92C116.98 36.2533 117.247 37.4133 117.78 38.4C118.34 39.3867 119.06 40.1467 119.94 40.68C120.847 41.1867 121.807 41.44 122.82 41.44C123.86 41.44 124.82 41.1733 125.7 40.64C126.607 40.1067 127.327 39.3467 127.86 38.36C128.42 37.3733 128.7 36.2 128.7 34.84ZM158.29 34.44C158.29 35.24 158.236 35.96 158.13 36.6H141.93C142.063 38.2 142.623 39.4533 143.61 40.36C144.596 41.2667 145.81 41.72 147.25 41.72C149.33 41.72 150.81 40.8267 151.69 39.04H157.73C157.09 41.1733 155.863 42.9333 154.05 44.32C152.236 45.68 150.01 46.36 147.37 46.36C145.236 46.36 143.316 45.8933 141.61 44.96C139.93 44 138.61 42.6533 137.65 40.92C136.716 39.1867 136.25 37.1867 136.25 34.92C136.25 32.6267 136.716 30.6133 137.65 28.88C138.583 27.1467 139.89 25.8133 141.57 24.88C143.25 23.9467 145.183 23.48 147.37 23.48C149.476 23.48 151.356 23.9333 153.01 24.84C154.69 25.7467 155.983 27.04 156.89 28.72C157.823 30.3733 158.29 32.28 158.29 34.44ZM152.49 32.84C152.463 31.4 151.943 30.2533 150.93 29.4C149.916 28.52 148.676 28.08 147.21 28.08C145.823 28.08 144.65 28.5067 143.69 29.36C142.756 30.1867 142.183 31.3467 141.97 32.84H152.49ZM167.177 27.28C167.897 26.1067 168.831 25.1867 169.977 24.52C171.151 23.8533 172.484 23.52 173.977 23.52V29.4H172.497C170.737 29.4 169.404 29.8133 168.497 30.64C167.617 31.4667 167.177 32.9067 167.177 34.96V46H161.577V23.84H167.177V27.28ZM188.309 28.44H184.429V46H178.749V28.44H176.229V23.84H178.749V22.72C178.749 20 179.522 18 181.069 16.72C182.616 15.44 184.949 14.84 188.069 14.92V19.64C186.709 19.6133 185.762 19.84 185.229 20.32C184.696 20.8 184.429 21.6667 184.429 22.92V23.84H188.309V28.44ZM197.538 16.4V46H191.938V16.4H197.538ZM211.711 46.36C209.578 46.36 207.658 45.8933 205.951 44.96C204.244 44 202.898 42.6533 201.911 40.92C200.951 39.1867 200.471 37.1867 200.471 34.92C200.471 32.6533 200.964 30.6533 201.951 28.92C202.964 27.1867 204.338 25.8533 206.071 24.92C207.804 23.96 209.738 23.48 211.871 23.48C214.004 23.48 215.938 23.96 217.671 24.92C219.404 25.8533 220.764 27.1867 221.751 28.92C222.764 30.6533 223.271 32.6533 223.271 34.92C223.271 37.1867 222.751 39.1867 221.711 40.92C220.698 42.6533 219.311 44 217.551 44.96C215.818 45.8933 213.871 46.36 211.711 46.36ZM211.711 41.48C212.724 41.48 213.671 41.24 214.551 40.76C215.458 40.2533 216.178 39.5067 216.711 38.52C217.244 37.5333 217.511 36.3333 217.511 34.92C217.511 32.8133 216.951 31.2 215.831 30.08C214.738 28.9333 213.391 28.36 211.791 28.36C210.191 28.36 208.844 28.9333 207.751 30.08C206.684 31.2 206.151 32.8133 206.151 34.92C206.151 37.0267 206.671 38.6533 207.711 39.8C208.778 40.92 210.111 41.48 211.711 41.48ZM256.499 23.84L250.019 46H243.979L239.939 30.52L235.899 46H229.819L223.299 23.84H228.979L232.899 40.72L237.139 23.84H243.059L247.219 40.68L251.139 23.84H256.499Z" fill="white"/>\n\t\t\t\t</svg>\n\t\t\t\t'}}}},ie=[{name:"Peppa Pig",photoUrl:"https://firebasestorage.googleapis.com/v0/b/snippyly-sdk-external/o/avatars%2Fpeppa_pig.svg?alt=media&token=a9fc83f7-b347-4868-8d52-0e888f0de73a&_gl=1*jzxghx*_ga*NTc3MjEzMjIwLjE2NjEwODkwMDU.*_ga_CW55HF8NVT*MTY5NzE0MTIzNC4zMzMuMS4xNjk3MTQyMTQ5LjQyLjAuMA.."},{name:"Dazzling Dalmatian",photoUrl:"https://firebasestorage.googleapis.com/v0/b/snippyly-sdk-external/o/avatars%2Fdazzling_dalmatian.svg?alt=media&token=5842b24c-7e58-4bb5-96c2-d09aa11f7f9e&_gl=1*11ayw3z*_ga*NTc3MjEzMjIwLjE2NjEwODkwMDU.*_ga_CW55HF8NVT*MTY5NzE0MTIzNC4zMzMuMS4xNjk3MTQxOTY4LjExLjAuMA.."},{name:"Rosy Rabbit",photoUrl:"https://firebasestorage.googleapis.com/v0/b/snippyly-sdk-external/o/avatars%2Frosy_rabbit.svg?alt=media&token=4e65a9e3-080d-4416-839d-e761b6b37181&_gl=1*156om5t*_ga*NTc3MjEzMjIwLjE2NjEwODkwMDU.*_ga_CW55HF8NVT*MTY5NzE0MTIzNC4zMzMuMS4xNjk3MTQyMjUzLjYwLjAuMA.."},{name:"Leo the Lion",photoUrl:"https://firebasestorage.googleapis.com/v0/b/snippyly-sdk-external/o/avatars%2Fleo_the_lion.svg?alt=media&token=58d1296e-fefd-42ce-80ea-ae2cc830f1a9&_gl=1*1cz8e9q*_ga*NTc3MjEzMjIwLjE2NjEwODkwMDU.*_ga_CW55HF8NVT*MTY5NzE0MTIzNC4zMzMuMS4xNjk3MTQyMTAwLjIwLjAuMA.."},{name:"Ducky Down",photoUrl:"https://firebasestorage.googleapis.com/v0/b/snippyly-sdk-external/o/avatars%2Fducky_down.svg?alt=media&token=d67ae889-78c5-46e3-aaa9-3eb511fe90b3&_gl=1*cxyj7o*_ga*NTc3MjEzMjIwLjE2NjEwODkwMDU.*_ga_CW55HF8NVT*MTY5NzE0MTIzNC4zMzMuMS4xNjk3MTQxOTkwLjYwLjAuMA.."},{name:"Merry Monkey",photoUrl:"https://firebasestorage.googleapis.com/v0/b/snippyly-sdk-external/o/avatars%2Fmerry_monkey.svg?alt=media&token=5bd2f69a-7211-42df-9718-5339c467b2d1&_gl=1*1labjed*_ga*NTc3MjEzMjIwLjE2NjEwODkwMDU.*_ga_CW55HF8NVT*MTY5NzE0MTIzNC4zMzMuMS4xNjk3MTQyMTE3LjMuMC4w"},{name:"Ecstatic Elephant",photoUrl:"https://firebasestorage.googleapis.com/v0/b/snippyly-sdk-external/o/avatars%2Fecstatic_elephant.svg?alt=media&token=fbd2ba76-6c3a-47a7-beac-0460a2178b7d&_gl=1*aku3ps*_ga*NTc3MjEzMjIwLjE2NjEwODkwMDU.*_ga_CW55HF8NVT*MTY5NzE0MTIzNC4zMzMuMS4xNjk3MTQyMDA3LjQzLjAuMA.."},{name:"Baby Bear",photoUrl:"https://firebasestorage.googleapis.com/v0/b/snippyly-sdk-external/o/avatars%2Fbaby_bear.svg?alt=media&token=71d0c5fb-60aa-4304-adc1-635a83650bde&_gl=1*1dxajmf*_ga*NTc3MjEzMjIwLjE2NjEwODkwMDU.*_ga_CW55HF8NVT*MTY5NzE0MTIzNC4zMzMuMS4xNjk3MTQxMjQyLjUyLjAuMA.."},{name:"Freddy Froglet",photoUrl:"https://firebasestorage.googleapis.com/v0/b/snippyly-sdk-external/o/avatars%2Ffreddy_froglet.svg?alt=media&token=e3b2e292-6480-4507-9da3-21a62a1346d4&_gl=1*s4yycs*_ga*NTc3MjEzMjIwLjE2NjEwODkwMDU.*_ga_CW55HF8NVT*MTY5NzE0MTIzNC4zMzMuMS4xNjk3MTQyMDQzLjcuMC4w"},{name:"Powerful Panda",photoUrl:"https://firebasestorage.googleapis.com/v0/b/snippyly-sdk-external/o/avatars%2Fpowerful_panda.svg?alt=media&token=07f9d60f-aa14-4a77-ad5b-c48ee76db3f5&_gl=1*7gfuit*_ga*NTc3MjEzMjIwLjE2NjEwODkwMDU.*_ga_CW55HF8NVT*MTY5NzE0MTIzNC4zMzMuMS4xNjk3MTQyMTkzLjYwLjAuMA.."},{name:"Curious Cat",photoUrl:"https://firebasestorage.googleapis.com/v0/b/snippyly-sdk-external/o/avatars%2Fcurious_cat.svg?alt=media&token=dccf6824-3b7c-4e4e-8559-40fbb8ff6186&_gl=1*1nwi0ti*_ga*NTc3MjEzMjIwLjE2NjEwODkwMDU.*_ga_CW55HF8NVT*MTY5NzE0MTIzNC4zMzMuMS4xNjk3MTQxOTM3LjQyLjAuMA.."},{name:"Playful Penguin",photoUrl:"https://firebasestorage.googleapis.com/v0/b/snippyly-sdk-external/o/avatars%2Fplayful_penguin.svg?alt=media&token=c6d1b11a-43a6-4001-ae56-e04fd5a3f965&_gl=1*1xdxvkx*_ga*NTc3MjEzMjIwLjE2NjEwODkwMDU.*_ga_CW55HF8NVT*MTY5NzE0MTIzNC4zMzMuMS4xNjk3MTQyMTYzLjI4LjAuMA.."},{name:"Kind Koala",photoUrl:"https://firebasestorage.googleapis.com/v0/b/snippyly-sdk-external/o/avatars%2Fkind_koala.svg?alt=media&token=974396d6-6ccd-4367-8563-b27634849cb5&_gl=1*1w1gbnn*_ga*NTc3MjEzMjIwLjE2NjEwODkwMDU.*_ga_CW55HF8NVT*MTY5NzE0MTIzNC4zMzMuMS4xNjk3MTQyMDgwLjQwLjAuMA.."},{name:"Tommy Tiger",photoUrl:"https://firebasestorage.googleapis.com/v0/b/snippyly-sdk-external/o/avatars%2Ftommy_tiger.svg?alt=media&token=40a95ac7-cc91-4b74-859a-4e2e5964b967&_gl=1*1n0cr0n*_ga*NTc3MjEzMjIwLjE2NjEwODkwMDU.*_ga_CW55HF8NVT*MTY5NzE0MTIzNC4zMzMuMS4xNjk3MTQyMjczLjQwLjAuMA.."},{name:"Wally Walrus",photoUrl:"https://firebasestorage.googleapis.com/v0/b/snippyly-sdk-external/o/avatars%2Fwally_walrus.svg?alt=media&token=31e02ef2-c986-4724-b987-dca97f84f81b&_gl=1*y5by2c*_ga*NTc3MjEzMjIwLjE2NjEwODkwMDU.*_ga_CW55HF8NVT*MTY5NzE0MTIzNC4zMzMuMS4xNjk3MTQyMjkxLjIyLjAuMA.."},{name:"Ricky Rhino",photoUrl:"https://firebasestorage.googleapis.com/v0/b/snippyly-sdk-external/o/avatars%2Fricky_rhino.svg?alt=media&token=5d9dafe5-f4de-4f8b-94c1-49e01c776611&_gl=1*zyp4n2*_ga*NTc3MjEzMjIwLjE2NjEwODkwMDU.*_ga_CW55HF8NVT*MTY5NzE0MTIzNC4zMzMuMS4xNjk3MTQyMjMxLjIyLjAuMA.."},{name:"Oliver Otter",photoUrl:"https://firebasestorage.googleapis.com/v0/b/snippyly-sdk-external/o/avatars%2Foliver_otter.svg?alt=media&token=5298b869-0903-40b2-a702-224a3e0bcd95&_gl=1*aicppz*_ga*NTc3MjEzMjIwLjE2NjEwODkwMDU.*_ga_CW55HF8NVT*MTY5NzE0MTIzNC4zMzMuMS4xNjk3MTQyMTMxLjYwLjAuMA.."},{name:"Reggie Ratling",photoUrl:"https://firebasestorage.googleapis.com/v0/b/snippyly-sdk-external/o/avatars%2Freggie_ratling.svg?alt=media&token=f37fd4a0-9dbd-403a-bb82-81fdfb63cf88&_gl=1*16lzeql*_ga*NTc3MjEzMjIwLjE2NjEwODkwMDU.*_ga_CW55HF8NVT*MTY5NzE0MTIzNC4zMzMuMS4xNjk3MTQyMjA3LjQ2LjAuMA.."},{name:"Gentle Giraffe",photoUrl:"https://firebasestorage.googleapis.com/v0/b/snippyly-sdk-external/o/avatars%2Fgentle_giraffe.svg?alt=media&token=f097ec12-e8ce-4d26-bf32-43e470eb7907&_gl=1*11ctuwz*_ga*NTc3MjEzMjIwLjE2NjEwODkwMDU.*_ga_CW55HF8NVT*MTY5NzE0MTIzNC4zMzMuMS4xNjk3MTQyMDYwLjYwLjAuMA.."},{name:"Fabulous Fox",photoUrl:"https://firebasestorage.googleapis.com/v0/b/snippyly-sdk-external/o/avatars%2Ffabulous_fox.svg?alt=media&token=fe1a4236-af45-427f-a035-1eda417b0682&_gl=1*xyyv1g*_ga*NTc3MjEzMjIwLjE2NjEwODkwMDU.*_ga_CW55HF8NVT*MTY5NzE0MTIzNC4zMzMuMS4xNjk3MTQyMDIxLjI5LjAuMA.."}];var ne=Object.freeze({__proto__:null,AGENT_FIELD_PREFIXES:qt,ANNOTATION_STATUS_TERMINAL:Jt,ANNOTATION_TYPE_SUGGESTION:Yt,ATTRIBUTES:te,DEFAULT_CUSTOMER_METADATA:ee,DOCUMENT_TITLE_CHANGE_LISTENER_API_KEYS:wt,DRIVE_PROD_URL:Zt,DRIVE_STAGING_URL:Kt,EXCLUDED_API_KEYS_FROM_LATEST_VERSION:["I9R2VqG45F5AgpIicnht"],FEEDBACK_MODE:yt,FIGMA_DEMO_MODAL:Lt,GUEST_USERS:ie,LIVE_DEMO_MODAL:At,PROJECT_INSTALL:Nt,PROJECT_VERSION:Tt,PROJECT_VERSION_DEFAULT_KEY:It,PROJECT_VERSION_KEY:_t,REVIEW_DOC_ID:Ct,REVIEW_MODE:bt,SNIPPYLY_COMMENT_ID:xt,SNIPPYLY_TOKEN:kt,SNIPPYLY_USER:Et,SUPERFLOW_CUSTOMER_METADATA:Wt,SUPERFLOW_DOCUMENT_METADATA:"sfDocumentMetadata",SUPERFLOW_GUEST_MODE:Dt,SUPERFLOW_GUEST_MODE_ALLOW_SIGN_IN:Ut,SUPERFLOW_GUEST_USER_BANNER_OPENED:Ht,SUPERFLOW_GUEST_USER_MODEL_OPENED:zt,SUPERFLOW_GUEST_USER_NAME_MODEL_OPENED:"sfGuestUserNameModelOpened",SUPERFLOW_GUEST_USER_NAME_UPDATED:Bt,SUPERFLOW_GUEST_USER_TOKEN:Mt,SUPERFLOW_PASSWORD_IS_VALID:Pt,SUPERFLOW_PASSWORD_PROTECTED:Vt,SUPERFLOW_PRIVATE_MODE:Rt,SUPERFLOW_QUERY_PARAMS_COMMENTS:jt,SUPERFLOW_SAML_CONFIG:Gt,SUPERFLOW_USER_ADMIN:$t,SUPERFLOW_USER_TOKEN:St,SUPERFLOW_USE_PAGE_TITLE_AS_LOCATION_NAME:Ft,SUPERFLOW_VERSION:ft,SYSTEM_AGENT_IDS:Qt,TAGS:Xt,TOUR_COMMENT_TOOLTIP:Ot,VELT_SDK_DEVELOP_VERSION:gt,VELT_SDK_PROD_VERSION:mt,VELT_SDK_STAGING_VERSION:"3.0.92"});const oe=!1,se="https://app.usesuperflow.com/",re="9dbcd2509e0fa90a5c81f038ce618e3f",ae="6d24f74f12f6fb84c87efa8f791cfb2e",le="https://api.velt.dev/sa",ce="https://api.velt.dev/v2/sf/tb",de=function(t){const e=[];let i=0;for(let n=0;n<t.length;n++){let o=t.charCodeAt(n);o<128?e[i++]=o:o<2048?(e[i++]=o>>6|192,e[i++]=63&o|128):55296==(64512&o)&&n+1<t.length&&56320==(64512&t.charCodeAt(n+1))?(o=65536+((1023&o)<<10)+(1023&t.charCodeAt(++n)),e[i++]=o>>18|240,e[i++]=o>>12&63|128,e[i++]=o>>6&63|128,e[i++]=63&o|128):(e[i++]=o>>12|224,e[i++]=o>>6&63|128,e[i++]=63&o|128)}return e},he={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray(t,e){if(!Array.isArray(t))throw Error("encodeByteArray takes an array as a parameter");this.init_();const i=e?this.byteToCharMapWebSafe_:this.byteToCharMap_,n=[];for(let e=0;e<t.length;e+=3){const o=t[e],s=e+1<t.length,r=s?t[e+1]:0,a=e+2<t.length,l=a?t[e+2]:0,c=o>>2,d=(3&o)<<4|r>>4;let h=(15&r)<<2|l>>6,u=63&l;a||(u=64,s||(h=64)),n.push(i[c],i[d],i[h],i[u])}return n.join("")},encodeString(t,e){return this.HAS_NATIVE_SUPPORT&&!e?btoa(t):this.encodeByteArray(de(t),e)},decodeString(t,e){return this.HAS_NATIVE_SUPPORT&&!e?atob(t):function(t){const e=[];let i=0,n=0;for(;i<t.length;){const o=t[i++];if(o<128)e[n++]=String.fromCharCode(o);else if(o>191&&o<224){const s=t[i++];e[n++]=String.fromCharCode((31&o)<<6|63&s)}else if(o>239&&o<365){const s=((7&o)<<18|(63&t[i++])<<12|(63&t[i++])<<6|63&t[i++])-65536;e[n++]=String.fromCharCode(55296+(s>>10)),e[n++]=String.fromCharCode(56320+(1023&s))}else{const s=t[i++],r=t[i++];e[n++]=String.fromCharCode((15&o)<<12|(63&s)<<6|63&r)}}return e.join("")}(this.decodeStringToByteArray(t,e))},decodeStringToByteArray(t,e){this.init_();const i=e?this.charToByteMapWebSafe_:this.charToByteMap_,n=[];for(let e=0;e<t.length;){const o=i[t.charAt(e++)],s=e<t.length?i[t.charAt(e)]:0;++e;const r=e<t.length?i[t.charAt(e)]:64;++e;const a=e<t.length?i[t.charAt(e)]:64;if(++e,null==o||null==s||null==r||null==a)throw new ue;const l=o<<2|s>>4;if(n.push(l),64!==r){const t=s<<4&240|r>>2;if(n.push(t),64!==a){const t=r<<6&192|a;n.push(t)}}}return n},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)}}};class ue extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}const pe=function(t){return function(t){const e=de(t);return he.encodeByteArray(e,!0)}(t).replace(/\./g,"")},ve=function(t){try{return he.decodeString(t,!0)}catch(t){console.error("base64Decode failed: ",t)}return null};
/**
     * @license
     * Copyright 2022 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
const fe=()=>
/**
     * @license
     * Copyright 2022 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("Unable to locate global object.")}().t,ge=()=>{try{return fe()||(()=>{if("undefined"==typeof process||void 0===process.env)return;const t=process.env.t;return t?JSON.parse(t):void 0})()||(()=>{if("undefined"==typeof document)return;let t;try{t=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(t){return}const e=t&&ve(t[1]);return e&&JSON.parse(e)})()}catch(t){return void console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${t}`)}},me=t=>{var e,i;return null===(i=null===(e=ge())||void 0===e?void 0:e.emulatorHosts)||void 0===i?void 0:i[t]},we=()=>{var t;return null===(t=ge())||void 0===t?void 0:t.config},be=t=>{var e;return null===(e=ge())||void 0===e?void 0:e[`_${t}`]};
/**
     * @license
     * Copyright 2017 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
class ye{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise(((t,e)=>{this.resolve=t,this.reject=e}))}wrapCallback(t){return(e,i)=>{e?this.reject(e):this.resolve(i),"function"==typeof t&&(this.promise.catch((()=>{})),1===t.length?t(e):t(e,i))}}}
/**
     * @license
     * Copyright 2017 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */function Ce(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}class xe extends Error{constructor(t,e,i){super(e),this.code=t,this.customData=i,this.name="FirebaseError",Object.setPrototypeOf(this,xe.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,Ee.prototype.create)}}class Ee{constructor(t,e,i){this.service=t,this.serviceName=e,this.errors=i}create(t,...e){const i=e[0]||{},n=`${this.service}/${t}`,o=this.errors[t],s=o?function(t,e){return t.replace(ke,((t,i)=>{const n=e[i];return null!=n?String(n):`<${i}?>`}))}(o,i):"Error",r=`${this.serviceName}: ${s} (${n}).`;return new xe(n,r,i)}}const ke=/\{\$([^}]+)}/g;function Se(t,e){if(t===e)return!0;const i=Object.keys(t),n=Object.keys(e);for(const o of i){if(!n.includes(o))return!1;const i=t[o],s=e[o];if(Me(i)&&Me(s)){if(!Se(i,s))return!1}else if(i!==s)return!1}for(const t of n)if(!i.includes(t))return!1;return!0}function Me(t){return null!==t&&"object"==typeof t}
/**
     * @license
     * Copyright 2017 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */function _e(t){const e=[];for(const[i,n]of Object.entries(t))Array.isArray(n)?n.forEach((t=>{e.push(encodeURIComponent(i)+"="+encodeURIComponent(t))})):e.push(encodeURIComponent(i)+"="+encodeURIComponent(n));return e.length?"&"+e.join("&"):""}class Te{constructor(t,e){this.observers=[],this.unsubscribes=[],this.observerCount=0,this.task=Promise.resolve(),this.finalized=!1,this.onNoObservers=e,this.task.then((()=>{t(this)})).catch((t=>{this.error(t)}))}next(t){this.forEachObserver((e=>{e.next(t)}))}error(t){this.forEachObserver((e=>{e.error(t)})),this.close(t)}complete(){this.forEachObserver((t=>{t.complete()})),this.close()}subscribe(t,e,i){let n;if(void 0===t&&void 0===e&&void 0===i)throw new Error("Missing Observer.");n=function(t,e){if("object"!=typeof t||null===t)return!1;for(const i of e)if(i in t&&"function"==typeof t[i])return!0;return!1}(t,["next","error","complete"])?t:{next:t,error:e,complete:i},void 0===n.next&&(n.next=Ie),void 0===n.error&&(n.error=Ie),void 0===n.complete&&(n.complete=Ie);const o=this.unsubscribeOne.bind(this,this.observers.length);return this.finalized&&this.task.then((()=>{try{this.finalError?n.error(this.finalError):n.complete()}catch(t){}})),this.observers.push(n),o}unsubscribeOne(t){void 0!==this.observers&&void 0!==this.observers[t]&&(delete this.observers[t],this.observerCount-=1,0===this.observerCount&&void 0!==this.onNoObservers&&this.onNoObservers(this))}forEachObserver(t){if(!this.finalized)for(let e=0;e<this.observers.length;e++)this.sendOne(e,t)}sendOne(t,e){this.task.then((()=>{if(void 0!==this.observers&&void 0!==this.observers[t])try{e(this.observers[t])}catch(t){"undefined"!=typeof console&&console.error&&console.error(t)}}))}close(t){this.finalized||(this.finalized=!0,void 0!==t&&(this.finalError=t),this.task.then((()=>{this.observers=void 0,this.onNoObservers=void 0})))}}function Ie(){}
/**
     * @license
     * Copyright 2021 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */function Ne(t){return t&&t._delegate?t._delegate:t}class Ae{constructor(t,e,i){this.name=t,this.instanceFactory=e,this.type=i,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(t){return this.instantiationMode=t,this}setMultipleInstances(t){return this.multipleInstances=t,this}setServiceProps(t){return this.serviceProps=t,this}setInstanceCreatedCallback(t){return this.onInstanceCreated=t,this}}
/**
     * @license
     * Copyright 2019 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */const Le="[DEFAULT]";
/**
     * @license
     * Copyright 2019 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */class Oe{constructor(t,e){this.name=t,this.container=e,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(t){const e=this.normalizeInstanceIdentifier(t);if(!this.instancesDeferred.has(e)){const t=new ye;if(this.instancesDeferred.set(e,t),this.isInitialized(e)||this.shouldAutoInitialize())try{const i=this.getOrInitializeService({instanceIdentifier:e});i&&t.resolve(i)}catch(t){}}return this.instancesDeferred.get(e).promise}getImmediate(t){var e;const i=this.normalizeInstanceIdentifier(null==t?void 0:t.identifier),n=null!==(e=null==t?void 0:t.optional)&&void 0!==e&&e;if(!this.isInitialized(i)&&!this.shouldAutoInitialize()){if(n)return null;throw Error(`Service ${this.name} is not available`)}try{return this.getOrInitializeService({instanceIdentifier:i})}catch(t){if(n)return null;throw t}}getComponent(){return this.component}setComponent(t){if(t.name!==this.name)throw Error(`Mismatching Component ${t.name} for Provider ${this.name}.`);if(this.component)throw Error(`Component for ${this.name} has already been provided`);if(this.component=t,this.shouldAutoInitialize()){if(function(t){return"EAGER"===t.instantiationMode}
/**
     * @license
     * Copyright 2019 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */(t))try{this.getOrInitializeService({instanceIdentifier:Le})}catch(t){}for(const[t,e]of this.instancesDeferred.entries()){const i=this.normalizeInstanceIdentifier(t);try{const t=this.getOrInitializeService({instanceIdentifier:i});e.resolve(t)}catch(t){}}}}clearInstance(t=Le){this.instancesDeferred.delete(t),this.instancesOptions.delete(t),this.instances.delete(t)}async delete(){const t=Array.from(this.instances.values());await Promise.all([...t.filter((t=>"INTERNAL"in t)).map((t=>t.INTERNAL.delete())),...t.filter((t=>"_delete"in t)).map((t=>t._delete()))])}isComponentSet(){return null!=this.component}isInitialized(t=Le){return this.instances.has(t)}getOptions(t=Le){return this.instancesOptions.get(t)||{}}initialize(t={}){const{options:e={}}=t,i=this.normalizeInstanceIdentifier(t.instanceIdentifier);if(this.isInitialized(i))throw Error(`${this.name}(${i}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);const n=this.getOrInitializeService({instanceIdentifier:i,options:e});for(const[t,e]of this.instancesDeferred.entries()){i===this.normalizeInstanceIdentifier(t)&&e.resolve(n)}return n}onInit(t,e){var i;const n=this.normalizeInstanceIdentifier(e),o=null!==(i=this.onInitCallbacks.get(n))&&void 0!==i?i:new Set;o.add(t),this.onInitCallbacks.set(n,o);const s=this.instances.get(n);return s&&t(s,n),()=>{o.delete(t)}}invokeOnInitCallbacks(t,e){const i=this.onInitCallbacks.get(e);if(i)for(const n of i)try{n(t,e)}catch(t){}}getOrInitializeService({instanceIdentifier:t,options:e={}}){let i=this.instances.get(t);if(!i&&this.component&&(i=this.component.instanceFactory(this.container,{instanceIdentifier:(n=t,n===Le?void 0:n),options:e}),this.instances.set(t,i),this.instancesOptions.set(t,e),this.invokeOnInitCallbacks(i,t),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,t,i)}catch(t){}var n;return i||null}normalizeInstanceIdentifier(t=Le){return this.component?this.component.multipleInstances?t:Le:t}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class $e{constructor(t){this.name=t,this.providers=new Map}addComponent(t){const e=this.getProvider(t.name);if(e.isComponentSet())throw new Error(`Component ${t.name} has already been registered with ${this.name}`);e.setComponent(t)}addOrOverwriteComponent(t){this.getProvider(t.name).isComponentSet()&&this.providers.delete(t.name),this.addComponent(t)}getProvider(t){if(this.providers.has(t))return this.providers.get(t);const e=new Oe(t,this);return this.providers.set(t,e),e}getProviders(){return Array.from(this.providers.values())}}
/**
     * @license
     * Copyright 2017 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */var De;!function(t){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"}(De||(De={}));const Ve={debug:De.DEBUG,verbose:De.VERBOSE,info:De.INFO,warn:De.WARN,error:De.ERROR,silent:De.SILENT},je=De.INFO,Fe={[De.DEBUG]:"log",[De.VERBOSE]:"log",[De.INFO]:"info",[De.WARN]:"warn",[De.ERROR]:"error"},Pe=(t,e,...i)=>{if(e<t.logLevel)return;const n=(new Date).toISOString(),o=Fe[e];if(!o)throw new Error(`Attempted to log a message with an invalid logType (value: ${e})`);console[o](`[${n}]  ${t.name}:`,...i)};class Re{constructor(t){this.name=t,this._logLevel=je,this._logHandler=Pe,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(t){if(!(t in De))throw new TypeError(`Invalid value "${t}" assigned to \`logLevel\``);this._logLevel=t}setLogLevel(t){this._logLevel="string"==typeof t?Ve[t]:t}get logHandler(){return this._logHandler}set logHandler(t){if("function"!=typeof t)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=t}get userLogHandler(){return this._userLogHandler}set userLogHandler(t){this._userLogHandler=t}debug(...t){this._userLogHandler&&this._userLogHandler(this,De.DEBUG,...t),this._logHandler(this,De.DEBUG,...t)}log(...t){this._userLogHandler&&this._userLogHandler(this,De.VERBOSE,...t),this._logHandler(this,De.VERBOSE,...t)}info(...t){this._userLogHandler&&this._userLogHandler(this,De.INFO,...t),this._logHandler(this,De.INFO,...t)}warn(...t){this._userLogHandler&&this._userLogHandler(this,De.WARN,...t),this._logHandler(this,De.WARN,...t)}error(...t){this._userLogHandler&&this._userLogHandler(this,De.ERROR,...t),this._logHandler(this,De.ERROR,...t)}}let Ue,ze;const Be=new WeakMap,He=new WeakMap,We=new WeakMap,Ge=new WeakMap,Ke=new WeakMap;let Ze={get(t,e,i){if(t instanceof IDBTransaction){if("done"===e)return He.get(t);if("objectStoreNames"===e)return t.objectStoreNames||We.get(t);if("store"===e)return i.objectStoreNames[1]?void 0:i.objectStore(i.objectStoreNames[0])}return qe(t[e])},set:(t,e,i)=>(t[e]=i,!0),has:(t,e)=>t instanceof IDBTransaction&&("done"===e||"store"===e)||e in t};function Je(t){return t!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(ze||(ze=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(t)?function(...e){return t.apply(Qe(this),e),qe(Be.get(this))}:function(...e){return qe(t.apply(Qe(this),e))}:function(e,...i){const n=t.call(Qe(this),e,...i);return We.set(n,e.sort?e.sort():[e]),qe(n)}}function Ye(t){return"function"==typeof t?Je(t):(t instanceof IDBTransaction&&function(t){if(He.has(t))return;const e=new Promise(((e,i)=>{const n=()=>{t.removeEventListener("complete",o),t.removeEventListener("error",s),t.removeEventListener("abort",s)},o=()=>{e(),n()},s=()=>{i(t.error||new DOMException("AbortError","AbortError")),n()};t.addEventListener("complete",o),t.addEventListener("error",s),t.addEventListener("abort",s)}));He.set(t,e)}(t),e=t,(Ue||(Ue=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])).some((t=>e instanceof t))?new Proxy(t,Ze):t);var e}function qe(t){if(t instanceof IDBRequest)return function(t){const e=new Promise(((e,i)=>{const n=()=>{t.removeEventListener("success",o),t.removeEventListener("error",s)},o=()=>{e(qe(t.result)),n()},s=()=>{i(t.error),n()};t.addEventListener("success",o),t.addEventListener("error",s)}));return e.then((e=>{e instanceof IDBCursor&&Be.set(e,t)})).catch((()=>{})),Ke.set(e,t),e}(t);if(Ge.has(t))return Ge.get(t);const e=Ye(t);return e!==t&&(Ge.set(t,e),Ke.set(e,t)),e}const Qe=t=>Ke.get(t);const Xe=["get","getKey","getAll","getAllKeys","count"],ti=["put","add","delete","clear"],ei=new Map;function ii(t,e){if(!(t instanceof IDBDatabase)||e in t||"string"!=typeof e)return;if(ei.get(e))return ei.get(e);const i=e.replace(/FromIndex$/,""),n=e!==i,o=ti.includes(i);if(!(i in(n?IDBIndex:IDBObjectStore).prototype)||!o&&!Xe.includes(i))return;const s=async function(t,...e){const s=this.transaction(t,o?"readwrite":"readonly");let r=s.store;return n&&(r=r.index(e.shift())),(await Promise.all([r[i](...e),o&&s.done]))[0]};return ei.set(e,s),s}Ze=(t=>({...t,get:(e,i,n)=>ii(e,i)||t.get(e,i,n),has:(e,i)=>!!ii(e,i)||t.has(e,i)}))(Ze);
/**
     * @license
     * Copyright 2019 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
class ni{constructor(t){this.container=t}getPlatformInfoString(){return this.container.getProviders().map((t=>{if(function(t){const e=t.getComponent();return"VERSION"===(null==e?void 0:e.type)}(t)){const e=t.getImmediate();return`${e.library}/${e.version}`}return null})).filter((t=>t)).join(" ")}}const oi="@firebase/app",si="0.11.4",ri=new Re("@firebase/app"),ai="@firebase/app-compat",li="@firebase/analytics-compat",ci="@firebase/analytics",di="@firebase/app-check-compat",hi="@firebase/app-check",ui="@firebase/auth",pi="@firebase/auth-compat",vi="@firebase/database",fi="@firebase/data-connect",gi="@firebase/database-compat",mi="@firebase/functions",wi="@firebase/functions-compat",bi="@firebase/installations",yi="@firebase/installations-compat",Ci="@firebase/messaging",xi="@firebase/messaging-compat",Ei="@firebase/performance",ki="@firebase/performance-compat",Si="@firebase/remote-config",Mi="@firebase/remote-config-compat",_i="@firebase/storage",Ti="@firebase/storage-compat",Ii="@firebase/firestore",Ni="@firebase/vertexai",Ai="@firebase/firestore-compat",Li="firebase",Oi="[DEFAULT]",$i={[oi]:"fire-core",[ai]:"fire-core-compat",[ci]:"fire-analytics",[li]:"fire-analytics-compat",[hi]:"fire-app-check",[di]:"fire-app-check-compat",[ui]:"fire-auth",[pi]:"fire-auth-compat",[vi]:"fire-rtdb",[fi]:"fire-data-connect",[gi]:"fire-rtdb-compat",[mi]:"fire-fn",[wi]:"fire-fn-compat",[bi]:"fire-iid",[yi]:"fire-iid-compat",[Ci]:"fire-fcm",[xi]:"fire-fcm-compat",[Ei]:"fire-perf",[ki]:"fire-perf-compat",[Si]:"fire-rc",[Mi]:"fire-rc-compat",[_i]:"fire-gcs",[Ti]:"fire-gcs-compat",[Ii]:"fire-fst",[Ai]:"fire-fst-compat",[Ni]:"fire-vertex","fire-js":"fire-js",[Li]:"fire-js-all"},Di=new Map,Vi=new Map,ji=new Map;function Fi(t,e){try{t.container.addComponent(e)}catch(i){ri.debug(`Component ${e.name} failed to register with FirebaseApp ${t.name}`,i)}}function Pi(t){const e=t.name;if(ji.has(e))return ri.debug(`There were multiple attempts to register component ${e}.`),!1;ji.set(e,t);for(const e of Di.values())Fi(e,t);for(const e of Vi.values())Fi(e,t);return!0}function Ri(t,e){const i=t.container.getProvider("heartbeat").getImmediate({optional:!0});return i&&i.triggerHeartbeat(),t.container.getProvider(e)}function Ui(t){return null!=t&&void 0!==t.settings}
/**
     * @license
     * Copyright 2019 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */const zi=new Ee("app","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call initializeApp() first","bad-app-name":"Illegal App name: '{$appName}'","duplicate-app":"Firebase App named '{$appName}' already exists with different options or config","app-deleted":"Firebase App named '{$appName}' already deleted","server-app-deleted":"Firebase Server App has been deleted","no-options":"Need to provide options, when not being deployed to hosting via source.","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance.","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."});
/**
     * @license
     * Copyright 2019 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
class Bi{constructor(t,e,i){this._isDeleted=!1,this._options=Object.assign({},t),this._config=Object.assign({},e),this._name=e.name,this._automaticDataCollectionEnabled=e.automaticDataCollectionEnabled,this._container=i,this.container.addComponent(new Ae("app",(()=>this),"PUBLIC"))}get automaticDataCollectionEnabled(){return this.checkDestroyed(),this._automaticDataCollectionEnabled}set automaticDataCollectionEnabled(t){this.checkDestroyed(),this._automaticDataCollectionEnabled=t}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(t){this._isDeleted=t}checkDestroyed(){if(this.isDeleted)throw zi.create("app-deleted",{appName:this._name})}}
/**
     * @license
     * Copyright 2019 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */const Hi="11.6.0";function Wi(t,e={}){let i=t;if("object"!=typeof e){e={name:e}}const n=Object.assign({name:Oi,automaticDataCollectionEnabled:!1},e),o=n.name;if("string"!=typeof o||!o)throw zi.create("bad-app-name",{appName:String(o)});if(i||(i=we()),!i)throw zi.create("no-options");const s=Di.get(o);if(s){if(Se(i,s.options)&&Se(n,s.config))return s;throw zi.create("duplicate-app",{appName:o})}const r=new $e(o);for(const t of ji.values())r.addComponent(t);const a=new Bi(i,n,r);return Di.set(o,a),a}function Gi(t=Oi){const e=Di.get(t);if(!e&&t===Oi&&we())return Wi();if(!e)throw zi.create("no-app",{appName:t});return e}function Ki(t,e,i){var n;let o=null!==(n=$i[t])&&void 0!==n?n:t;i&&(o+=`-${i}`);const s=o.match(/\s|\//),r=e.match(/\s|\//);if(s||r){const t=[`Unable to register library "${o}" with version "${e}":`];return s&&t.push(`library name "${o}" contains illegal characters (whitespace or "/")`),s&&r&&t.push("and"),r&&t.push(`version name "${e}" contains illegal characters (whitespace or "/")`),void ri.warn(t.join(" "))}Pi(new Ae(`${o}-version`,(()=>({library:o,version:e})),"VERSION"))}
/**
     * @license
     * Copyright 2021 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */const Zi="firebase-heartbeat-store";let Ji=null;function Yi(){return Ji||(Ji=function(t,e,{blocked:i,upgrade:n,blocking:o,terminated:s}={}){const r=indexedDB.open(t,e),a=qe(r);return n&&r.addEventListener("upgradeneeded",(t=>{n(qe(r.result),t.oldVersion,t.newVersion,qe(r.transaction),t)})),i&&r.addEventListener("blocked",(t=>i(t.oldVersion,t.newVersion,t))),a.then((t=>{s&&t.addEventListener("close",(()=>s())),o&&t.addEventListener("versionchange",(t=>o(t.oldVersion,t.newVersion,t)))})).catch((()=>{})),a}("firebase-heartbeat-database",1,{upgrade:(t,e)=>{if(0===e)try{t.createObjectStore(Zi)}catch(t){console.warn(t)}}}).catch((t=>{throw zi.create("idb-open",{originalErrorMessage:t.message})}))),Ji}async function qi(t,e){try{const i=(await Yi()).transaction(Zi,"readwrite"),n=i.objectStore(Zi);await n.put(e,Qi(t)),await i.done}catch(t){if(t instanceof xe)ri.warn(t.message);else{const e=zi.create("idb-set",{originalErrorMessage:null==t?void 0:t.message});ri.warn(e.message)}}}function Qi(t){return`${t.name}!${t.options.appId}`}
/**
     * @license
     * Copyright 2021 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */class Xi{constructor(t){this.container=t,this._heartbeatsCache=null;const e=this.container.getProvider("app").getImmediate();this._storage=new en(e),this._heartbeatsCachePromise=this._storage.read().then((t=>(this._heartbeatsCache=t,t)))}async triggerHeartbeat(){var t,e;try{const i=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString(),n=tn();if(null==(null===(t=this._heartbeatsCache)||void 0===t?void 0:t.heartbeats)&&(this._heartbeatsCache=await this._heartbeatsCachePromise,null==(null===(e=this._heartbeatsCache)||void 0===e?void 0:e.heartbeats)))return;if(this._heartbeatsCache.lastSentHeartbeatDate===n||this._heartbeatsCache.heartbeats.some((t=>t.date===n)))return;if(this._heartbeatsCache.heartbeats.push({date:n,agent:i}),this._heartbeatsCache.heartbeats.length>30){const t=function(t){if(0===t.length)return-1;let e=0,i=t[0].date;for(let n=1;n<t.length;n++)t[n].date<i&&(i=t[n].date,e=n);return e}
/**
     * @license
     * Copyright 2019 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */(this._heartbeatsCache.heartbeats);this._heartbeatsCache.heartbeats.splice(t,1)}return this._storage.overwrite(this._heartbeatsCache)}catch(t){ri.warn(t)}}async getHeartbeatsHeader(){var t;try{if(null===this._heartbeatsCache&&await this._heartbeatsCachePromise,null==(null===(t=this._heartbeatsCache)||void 0===t?void 0:t.heartbeats)||0===this._heartbeatsCache.heartbeats.length)return"";const e=tn(),{heartbeatsToSend:i,unsentEntries:n}=function(t,e=1024){const i=[];let n=t.slice();for(const o of t){const t=i.find((t=>t.agent===o.agent));if(t){if(t.dates.push(o.date),nn(i)>e){t.dates.pop();break}}else if(i.push({agent:o.agent,dates:[o.date]}),nn(i)>e){i.pop();break}n=n.slice(1)}return{heartbeatsToSend:i,unsentEntries:n}}(this._heartbeatsCache.heartbeats),o=pe(JSON.stringify({version:2,heartbeats:i}));return this._heartbeatsCache.lastSentHeartbeatDate=e,n.length>0?(this._heartbeatsCache.heartbeats=n,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),o}catch(t){return ri.warn(t),""}}}function tn(){return(new Date).toISOString().substring(0,10)}class en{constructor(t){this.app=t,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!function(){try{return"object"==typeof indexedDB}catch(t){return!1}}()&&new Promise(((t,e)=>{try{let i=!0;const n="validate-browser-context-for-indexeddb-analytics-module",o=self.indexedDB.open(n);o.onsuccess=()=>{o.result.close(),i||self.indexedDB.deleteDatabase(n),t(!0)},o.onupgradeneeded=()=>{i=!1},o.onerror=()=>{var t;e((null===(t=o.error)||void 0===t?void 0:t.message)||"")}}catch(t){e(t)}})).then((()=>!0)).catch((()=>!1))}async read(){if(await this._canUseIndexedDBPromise){const t=await async function(t){try{const e=(await Yi()).transaction(Zi),i=await e.objectStore(Zi).get(Qi(t));return await e.done,i}catch(t){if(t instanceof xe)ri.warn(t.message);else{const e=zi.create("idb-get",{originalErrorMessage:null==t?void 0:t.message});ri.warn(e.message)}}}(this.app);return(null==t?void 0:t.heartbeats)?t:{heartbeats:[]}}return{heartbeats:[]}}async overwrite(t){var e;if(await this._canUseIndexedDBPromise){const i=await this.read();return qi(this.app,{lastSentHeartbeatDate:null!==(e=t.lastSentHeartbeatDate)&&void 0!==e?e:i.lastSentHeartbeatDate,heartbeats:t.heartbeats})}}async add(t){var e;if(await this._canUseIndexedDBPromise){const i=await this.read();return qi(this.app,{lastSentHeartbeatDate:null!==(e=t.lastSentHeartbeatDate)&&void 0!==e?e:i.lastSentHeartbeatDate,heartbeats:[...i.heartbeats,...t.heartbeats]})}}}function nn(t){return pe(JSON.stringify({version:2,heartbeats:t})).length}var on;on="",Pi(new Ae("platform-logger",(t=>new ni(t)),"PRIVATE")),Pi(new Ae("heartbeat",(t=>new Xi(t)),"PRIVATE")),Ki(oi,si,on),Ki(oi,si,"esm2017"),Ki("fire-js","");
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
Ki("firebase","11.6.0","app");function sn(t,e){const i={};for(const n in t)t.hasOwnProperty(n)&&(i[n]=e(t[n]));return i}function rn(t){if(null==t)return null;if(t instanceof Number&&(t=t.valueOf()),"number"==typeof t&&isFinite(t))return t;if(!0===t||!1===t)return t;if("[object String]"===Object.prototype.toString.call(t))return t;if(t instanceof Date)return t.toISOString();if(Array.isArray(t))return t.map((t=>rn(t)));if("function"==typeof t||"object"==typeof t)return sn(t,(t=>rn(t)));throw new Error("Data cannot be encoded in JSON: "+t)}function an(t){if(null==t)return t;if(t["@type"])switch(t["@type"]){case"type.googleapis.com/google.protobuf.Int64Value":case"type.googleapis.com/google.protobuf.UInt64Value":{const 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((t=>an(t))):"function"==typeof t||"object"==typeof t?sn(t,(t=>an(t))):t}
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */const ln="functions",cn={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"};
/**
     * @license
     * Copyright 2017 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */class dn extends xe{constructor(t,e,i){super(`${ln}/${t}`,e||""),this.details=i,Object.setPrototypeOf(this,dn.prototype)}}function hn(t,e){let i,n=function(t){if(t>=200&&t<300)return"ok";switch(t){case 0:case 500: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 501:return"unimplemented";case 503:return"unavailable";case 504:return"deadline-exceeded"}return"unknown"}(t),o=n;try{const t=e&&e.error;if(t){const e=t.status;if("string"==typeof e){if(!cn[e])return new dn("internal","internal");n=cn[e],o=e}const s=t.message;"string"==typeof s&&(o=s),i=t.details,void 0!==i&&(i=an(i))}}catch(t){}return"ok"===n?null:new dn(n,o,i)}
/**
     * @license
     * Copyright 2017 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */class un{constructor(t,e,i,n){this.app=t,this.auth=null,this.messaging=null,this.appCheck=null,this.serverAppAppCheckToken=null,Ui(t)&&t.settings.appCheckToken&&(this.serverAppAppCheckToken=t.settings.appCheckToken),this.auth=e.getImmediate({optional:!0}),this.messaging=i.getImmediate({optional:!0}),this.auth||e.get().then((t=>this.auth=t),(()=>{})),this.messaging||i.get().then((t=>this.messaging=t),(()=>{})),this.appCheck||null==n||n.get().then((t=>this.appCheck=t),(()=>{}))}async getAuthToken(){if(this.auth)try{const t=await this.auth.getToken();return null==t?void 0:t.accessToken}catch(t){return}}async getMessagingToken(){if(this.messaging&&"Notification"in self&&"granted"===Notification.permission)try{return await this.messaging.getToken()}catch(t){return}}async getAppCheckToken(t){if(this.serverAppAppCheckToken)return this.serverAppAppCheckToken;if(this.appCheck){const e=t?await this.appCheck.getLimitedUseToken():await this.appCheck.getToken();return e.error?null:e.token}return null}async getContext(t){return{authToken:await this.getAuthToken(),messagingToken:await this.getMessagingToken(),appCheckToken:await this.getAppCheckToken(t)}}}
/**
     * @license
     * Copyright 2017 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */const pn="us-central1",vn=/^data: (.*?)(?:\n|$)/;class fn{constructor(t,e,i,n,o=pn,s=(...t)=>fetch(...t)){this.app=t,this.fetchImpl=s,this.emulatorOrigin=null,this.contextProvider=new un(t,e,i,n),this.cancelAllRequests=new Promise((t=>{this.deleteService=()=>Promise.resolve(t())}));try{const t=new URL(o);this.customDomain=t.origin+("/"===t.pathname?"":t.pathname),this.region=pn}catch(t){this.customDomain=null,this.region=o}}_delete(){return this.deleteService()}_url(t){const e=this.app.options.projectId;if(null!==this.emulatorOrigin){return`${this.emulatorOrigin}/${e}/${this.region}/${t}`}return null!==this.customDomain?`${this.customDomain}/${t}`:`https://${this.region}-${e}.cloudfunctions.net/${t}`}}function gn(t,e,i){const n=n=>async function(t,e,i,n){i=rn(i);const o={data:i},s=await wn(t,n),r=n.timeout||7e4,a=function(t){let e=null;return{promise:new Promise(((i,n)=>{e=setTimeout((()=>{n(new dn("deadline-exceeded","deadline-exceeded"))}),t)})),cancel:()=>{e&&clearTimeout(e)}}}(r),l=await Promise.race([mn(e,o,s,t.fetchImpl),a.promise,t.cancelAllRequests]);if(a.cancel(),!l)throw new dn("cancelled","Firebase Functions instance was deleted.");const c=hn(l.status,l.json);if(c)throw c;if(!l.json)throw new dn("internal","Response is not valid JSON object.");let d=l.json.data;void 0===d&&(d=l.json.result);if(void 0===d)throw new dn("internal","Response is missing data field.");return{data:an(d)}}(t,e,n,i||{});return n.stream=(i,n)=>async function(t,e,i,n){var o;i=rn(i);const s={data:i},r=await wn(t,n);let a,l,c;r["Content-Type"]="application/json",r.Accept="text/event-stream";try{a=await t.fetchImpl(e,{method:"POST",body:JSON.stringify(s),headers:r,signal:null==n?void 0:n.signal})}catch(t){if(t instanceof Error&&"AbortError"===t.name){const t=new dn("cancelled","Request was cancelled.");return{data:Promise.reject(t),stream:{[Symbol.asyncIterator]:()=>({next:()=>Promise.reject(t)})}}}const e=hn(0,null);return{data:Promise.reject(e),stream:{[Symbol.asyncIterator]:()=>({next:()=>Promise.reject(e)})}}}const d=new Promise(((t,e)=>{l=t,c=e}));null===(o=null==n?void 0:n.signal)||void 0===o||o.addEventListener("abort",(()=>{const t=new dn("cancelled","Request was cancelled.");c(t)}));const h=function(t,e,i,n){const o=(t,n)=>{const o=t.match(vn);if(!o)return;const s=o[1];try{const t=JSON.parse(s);if("result"in t)return void e(an(t.result));if("message"in t)return void n.enqueue(an(t.message));if("error"in t){const e=hn(0,t);return n.error(e),void i(e)}}catch(t){if(t instanceof dn)return n.error(t),void i(t)}},s=new TextDecoder;return new ReadableStream({start(e){let r="";return a();async function a(){if(null==n?void 0:n.aborted){const t=new dn("cancelled","Request was cancelled");return e.error(t),i(t),Promise.resolve()}try{const{value:l,done:c}=await t.read();if(c)return r.trim()&&o(r.trim(),e),void e.close();if(null==n?void 0:n.aborted){const n=new dn("cancelled","Request was cancelled");return e.error(n),i(n),void await t.cancel()}r+=s.decode(l,{stream:!0});const d=r.split("\n");r=d.pop()||"";for(const t of d)t.trim()&&o(t.trim(),e);return a()}catch(t){const n=t instanceof dn?t:hn(0,null);e.error(n),i(n)}}},cancel:()=>t.cancel()})}(a.body.getReader(),l,c,null==n?void 0:n.signal);return{stream:{[Symbol.asyncIterator](){const t=h.getReader();return{async next(){const{value:e,done:i}=await t.read();return{value:e,done:i}},return:async()=>(await t.cancel(),{done:!0,value:void 0})}}},data:d}}(t,e,i,n||{}),n}async function mn(t,e,i,n){let o;i["Content-Type"]="application/json";try{o=await n(t,{method:"POST",body:JSON.stringify(e),headers:i})}catch(t){return{status:0,json:null}}let s=null;try{s=await o.json()}catch(t){}return{status:o.status,json:s}}async function wn(t,e){const i={},n=await t.contextProvider.getContext(e.limitedUseAppCheckTokens);return n.authToken&&(i.Authorization="Bearer "+n.authToken),n.messagingToken&&(i["Firebase-Instance-ID-Token"]=n.messagingToken),null!==n.appCheckToken&&(i["X-Firebase-AppCheck"]=n.appCheckToken),i}const bn="@firebase/functions",yn="0.12.3";function Cn(t,e,i){return gn(Ne(t),e,i)}function xn(t,e){var i={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.indexOf(n)<0&&(i[n]=t[n]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(t);o<n.length;o++)e.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(t,n[o])&&(i[n[o]]=t[n[o]])}return i}function En(){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."}}!function(t){Pi(new Ae(ln,((t,{instanceIdentifier:e})=>{const i=t.getProvider("app").getImmediate(),n=t.getProvider("auth-internal"),o=t.getProvider("messaging-internal"),s=t.getProvider("app-check-internal");return new fn(i,n,o,s,e)}),"PUBLIC").setMultipleInstances(!0)),Ki(bn,yn,t),Ki(bn,yn,"esm2017")}
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */(),"function"==typeof SuppressedError&&SuppressedError;const kn=En,Sn=new Ee("auth","Firebase",{"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."}),Mn=new Re("@firebase/auth");function _n(t,...e){Mn.logLevel<=De.ERROR&&Mn.error(`Auth (${Hi}): ${t}`,...e)}
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */function Tn(t,...e){throw Ln(t,...e)}function In(t,...e){return Ln(t,...e)}function Nn(t,e,i){const n=Object.assign(Object.assign({},kn()),{[e]:i});return new Ee("auth","Firebase",n).create(e,{appName:t.name})}function An(t){return Nn(t,"operation-not-supported-in-this-environment","Operations that alter the current user are not supported in conjunction with FirebaseServerApp")}function Ln(t,...e){if("string"!=typeof t){const i=e[0],n=[...e.slice(1)];return n[0]&&(n[0].appName=t.name),t._errorFactory.create(i,...n)}return Sn.create(t,...e)}function On(t,e,...i){if(!t)throw Ln(e,...i)}function $n(t){const e="INTERNAL ASSERTION FAILED: "+t;throw _n(e),new Error(e)}function Dn(t,e){t||$n(e)}
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */function Vn(){var t;return"undefined"!=typeof self&&(null===(t=self.location)||void 0===t?void 0:t.href)||""}function jn(){var t;return"undefined"!=typeof self&&(null===(t=self.location)||void 0===t?void 0:t.protocol)||null}
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */function Fn(){return"undefined"==typeof navigator||!navigator||!("onLine"in navigator)||"boolean"!=typeof navigator.onLine||"http:"!==jn()&&"https:"!==jn()&&!function(){const t="object"==typeof chrome?chrome.runtime:"object"==typeof browser?browser.runtime:void 0;return"object"==typeof t&&void 0!==t.id}()&&!("connection"in navigator)||navigator.onLine}
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
class Pn{constructor(t,e){this.shortDelay=t,this.longDelay=e,Dn(e>t,"Short delay should be less than long delay!"),this.isMobile="undefined"!=typeof window&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(Ce())||"object"==typeof navigator&&"ReactNative"===navigator.product}get(){return Fn()?this.isMobile?this.longDelay:this.shortDelay:Math.min(5e3,this.shortDelay)}}
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */function Rn(t,e){Dn(t.emulator,"Emulator should always be set here");const{url:i}=t.emulator;return e?`${i}${e.startsWith("/")?e.slice(1):e}`:i}
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */class Un{static initialize(t,e,i){this.fetchImpl=t,e&&(this.headersImpl=e),i&&(this.responseImpl=i)}static fetch(){return this.fetchImpl?this.fetchImpl:"undefined"!=typeof self&&"fetch"in self?self.fetch:"undefined"!=typeof globalThis&&globalThis.fetch?globalThis.fetch:"undefined"!=typeof fetch?fetch:void $n("Could not find fetch implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}static headers(){return this.headersImpl?this.headersImpl:"undefined"!=typeof self&&"Headers"in self?self.Headers:"undefined"!=typeof globalThis&&globalThis.Headers?globalThis.Headers:"undefined"!=typeof Headers?Headers:void $n("Could not find Headers implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}static response(){return this.responseImpl?this.responseImpl:"undefined"!=typeof self&&"Response"in self?self.Response:"undefined"!=typeof globalThis&&globalThis.Response?globalThis.Response:"undefined"!=typeof Response?Response:void $n("Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}}
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */const zn={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"},Bn=["/v1/accounts:signInWithCustomToken","/v1/accounts:signInWithEmailLink","/v1/accounts:signInWithIdp","/v1/accounts:signInWithPassword","/v1/accounts:signInWithPhoneNumber","/v1/token"],Hn=new Pn(3e4,6e4);
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */function Wn(t,e){return t.tenantId&&!e.tenantId?Object.assign(Object.assign({},e),{tenantId:t.tenantId}):e}async function Gn(t,e,i,n,o={}){return Kn(t,o,(async()=>{let o={},s={};n&&("GET"===e?s=n:o={body:JSON.stringify(n)});const r=_e(Object.assign({key:t.config.apiKey},s)).slice(1),a=await t._getAdditionalHeaders();a["Content-Type"]="application/json",t.languageCode&&(a["X-Firebase-Locale"]=t.languageCode);const l=Object.assign({method:e,headers:a},o);return"undefined"!=typeof navigator&&"Cloudflare-Workers"===navigator.userAgent||(l.referrerPolicy="no-referrer"),Un.fetch()(await Zn(t,t.config.apiHost,i,r),l)}))}async function Kn(t,e,i){t._canInitEmulator=!1;const n=Object.assign(Object.assign({},zn),e);try{const e=new Jn(t),o=await Promise.race([i(),e.promise]);e.clearNetworkTimeout();const s=await o.json();if("needConfirmation"in s)throw Yn(t,"account-exists-with-different-credential",s);if(o.ok&&!("errorMessage"in s))return s;{const e=o.ok?s.errorMessage:s.error.message,[i,r]=e.split(" : ");if("FEDERATED_USER_ID_ALREADY_LINKED"===i)throw Yn(t,"credential-already-in-use",s);if("EMAIL_EXISTS"===i)throw Yn(t,"email-already-in-use",s);if("USER_DISABLED"===i)throw Yn(t,"user-disabled",s);const a=n[i]||i.toLowerCase().replace(/[_\s]+/g,"-");if(r)throw Nn(t,a,r);Tn(t,a)}}catch(e){if(e instanceof xe)throw e;Tn(t,"network-request-failed",{message:String(e)})}}async function Zn(t,e,i,n){const o=`${e}${i}?${n}`,s=t,r=s.config.emulator?Rn(t.config,o):`${t.config.apiScheme}://${o}`;if(Bn.includes(i)&&(await s._persistenceManagerAvailable,"COOKIE"===s._getPersistenceType())){return s._getPersistence()._getFinalTarget(r).toString()}return r}class Jn{clearNetworkTimeout(){clearTimeout(this.timer)}constructor(t){this.auth=t,this.timer=null,this.promise=new Promise(((t,e)=>{this.timer=setTimeout((()=>e(In(this.auth,"network-request-failed"))),Hn.get())}))}}function Yn(t,e,i){const n={appName:t.name};i.email&&(n.email=i.email),i.phoneNumber&&(n.phoneNumber=i.phoneNumber);const o=In(t,e,n);return o.customData._tokenResponse=i,o}
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */async function qn(t,e){return Gn(t,"POST","/v1/accounts:lookup",e)}
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */function Qn(t){if(t)try{const e=new Date(Number(t));if(!isNaN(e.getTime()))return e.toUTCString()}catch(t){}}function Xn(t){return 1e3*Number(t)}function to(t){const[e,i,n]=t.split(".");if(void 0===e||void 0===i||void 0===n)return _n("JWT malformed, contained fewer than 3 sections"),null;try{const t=ve(i);return t?JSON.parse(t):(_n("Failed to decode base64 JWT payload"),null)}catch(t){return _n("Caught error parsing JWT payload as JSON",null==t?void 0:t.toString()),null}}function eo(t){const e=to(t);return On(e,"internal-error"),On(void 0!==e.exp,"internal-error"),On(void 0!==e.iat,"internal-error"),Number(e.exp)-Number(e.iat)}
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */async function io(t,e,i=!1){if(i)return e;try{return await e}catch(e){throw e instanceof xe&&function({code:t}){return"auth/user-disabled"===t||"auth/user-token-expired"===t}
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */(e)&&t.auth.currentUser===t&&await t.auth.signOut(),e}}class no{constructor(t){this.user=t,this.isRunning=!1,this.timerId=null,this.errorBackoff=3e4}_start(){this.isRunning||(this.isRunning=!0,this.schedule())}_stop(){this.isRunning&&(this.isRunning=!1,null!==this.timerId&&clearTimeout(this.timerId))}getInterval(t){var e;if(t){const t=this.errorBackoff;return this.errorBackoff=Math.min(2*this.errorBackoff,96e4),t}{this.errorBackoff=3e4;const t=(null!==(e=this.user.stsTokenManager.expirationTime)&&void 0!==e?e:0)-Date.now()-3e5;return Math.max(0,t)}}schedule(t=!1){if(!this.isRunning)return;const e=this.getInterval(t);this.timerId=setTimeout((async()=>{await this.iteration()}),e)}async iteration(){try{await this.user.getIdToken(!0)}catch(t){return void("auth/network-request-failed"===(null==t?void 0:t.code)&&this.schedule(!0))}this.schedule()}}
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */class oo{constructor(t,e){this.createdAt=t,this.lastLoginAt=e,this._initializeTime()}_initializeTime(){this.lastSignInTime=Qn(this.lastLoginAt),this.creationTime=Qn(this.createdAt)}_copy(t){this.createdAt=t.createdAt,this.lastLoginAt=t.lastLoginAt,this._initializeTime()}toJSON(){return{createdAt:this.createdAt,lastLoginAt:this.lastLoginAt}}}
/**
     * @license
     * Copyright 2019 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */async function so(t){var e;const i=t.auth,n=await t.getIdToken(),o=await io(t,qn(i,{idToken:n}));On(null==o?void 0:o.users.length,i,"internal-error");const s=o.users[0];t._notifyReloadListener(s);const r=(null===(e=s.providerUserInfo)||void 0===e?void 0:e.length)?ro(s.providerUserInfo):[],a=function(t,e){const i=t.filter((t=>!e.some((e=>e.providerId===t.providerId))));return[...i,...e]}(t.providerData,r),l=t.isAnonymous,c=!(t.email&&s.passwordHash||(null==a?void 0:a.length)),d=!!l&&c,h={uid:s.localId,displayName:s.displayName||null,photoURL:s.photoUrl||null,email:s.email||null,emailVerified:s.emailVerified||!1,phoneNumber:s.phoneNumber||null,tenantId:s.tenantId||null,providerData:a,metadata:new oo(s.createdAt,s.lastLoginAt),isAnonymous:d};Object.assign(t,h)}function ro(t){return t.map((t=>{var{providerId:e}=t,i=xn(t,["providerId"]);return{providerId:e,uid:i.rawId||"",displayName:i.displayName||null,email:i.email||null,phoneNumber:i.phoneNumber||null,photoURL:i.photoUrl||null}}))}
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
class ao{constructor(){this.refreshToken=null,this.accessToken=null,this.expirationTime=null}get isExpired(){return!this.expirationTime||Date.now()>this.expirationTime-3e4}updateFromServerResponse(t){On(t.idToken,"internal-error"),On(void 0!==t.idToken,"internal-error"),On(void 0!==t.refreshToken,"internal-error");const e="expiresIn"in t&&void 0!==t.expiresIn?Number(t.expiresIn):eo(t.idToken);this.updateTokensAndExpiration(t.idToken,t.refreshToken,e)}updateFromIdToken(t){On(0!==t.length,"internal-error");const e=eo(t);this.updateTokensAndExpiration(t,null,e)}async getToken(t,e=!1){return e||!this.accessToken||this.isExpired?(On(this.refreshToken,t,"user-token-expired"),this.refreshToken?(await this.refresh(t,this.refreshToken),this.accessToken):null):this.accessToken}clearRefreshToken(){this.refreshToken=null}async refresh(t,e){const{accessToken:i,refreshToken:n,expiresIn:o}=await async function(t,e){const i=await Kn(t,{},(async()=>{const i=_e({grant_type:"refresh_token",refresh_token:e}).slice(1),{tokenApiHost:n,apiKey:o}=t.config,s=await Zn(t,n,"/v1/token",`key=${o}`),r=await t._getAdditionalHeaders();return r["Content-Type"]="application/x-www-form-urlencoded",Un.fetch()(s,{method:"POST",headers:r,body:i})}));return{accessToken:i.access_token,expiresIn:i.expires_in,refreshToken:i.refresh_token}}(t,e);this.updateTokensAndExpiration(i,n,Number(o))}updateTokensAndExpiration(t,e,i){this.refreshToken=e||null,this.accessToken=t||null,this.expirationTime=Date.now()+1e3*i}static fromJSON(t,e){const{refreshToken:i,accessToken:n,expirationTime:o}=e,s=new ao;return i&&(On("string"==typeof i,"internal-error",{appName:t}),s.refreshToken=i),n&&(On("string"==typeof n,"internal-error",{appName:t}),s.accessToken=n),o&&(On("number"==typeof o,"internal-error",{appName:t}),s.expirationTime=o),s}toJSON(){return{refreshToken:this.refreshToken,accessToken:this.accessToken,expirationTime:this.expirationTime}}_assign(t){this.accessToken=t.accessToken,this.refreshToken=t.refreshToken,this.expirationTime=t.expirationTime}_clone(){return Object.assign(new ao,this.toJSON())}_performRefresh(){return $n("not implemented")}}
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */function lo(t,e){On("string"==typeof t||void 0===t,"internal-error",{appName:e})}class co{constructor(t){var{uid:e,auth:i,stsTokenManager:n}=t,o=xn(t,["uid","auth","stsTokenManager"]);this.providerId="firebase",this.proactiveRefresh=new no(this),this.reloadUserInfo=null,this.reloadListener=null,this.uid=e,this.auth=i,this.stsTokenManager=n,this.accessToken=n.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 oo(o.createdAt||void 0,o.lastLoginAt||void 0)}async getIdToken(t){const e=await io(this,this.stsTokenManager.getToken(this.auth,t));return On(e,this.auth,"internal-error"),this.accessToken!==e&&(this.accessToken=e,await this.auth._persistUserIfCurrent(this),this.auth._notifyListenersIfCurrent(this)),e}getIdTokenResult(t){return async function(t,e=!1){const i=Ne(t),n=await i.getIdToken(e),o=to(n);On(o&&o.exp&&o.auth_time&&o.iat,i.auth,"internal-error");const s="object"==typeof o.firebase?o.firebase:void 0,r=null==s?void 0:s.sign_in_provider;return{claims:o,token:n,authTime:Qn(Xn(o.auth_time)),issuedAtTime:Qn(Xn(o.iat)),expirationTime:Qn(Xn(o.exp)),signInProvider:r||null,signInSecondFactor:(null==s?void 0:s.sign_in_second_factor)||null}}(this,t)}reload(){return async function(t){const e=Ne(t);await so(e),await e.auth._persistUserIfCurrent(e),e.auth._notifyListenersIfCurrent(e)}(this)}_assign(t){this!==t&&(On(this.uid===t.uid,this.auth,"internal-error"),this.displayName=t.displayName,this.photoURL=t.photoURL,this.email=t.email,this.emailVerified=t.emailVerified,this.phoneNumber=t.phoneNumber,this.isAnonymous=t.isAnonymous,this.tenantId=t.tenantId,this.providerData=t.providerData.map((t=>Object.assign({},t))),this.metadata._copy(t.metadata),this.stsTokenManager._assign(t.stsTokenManager))}_clone(t){const e=new co(Object.assign(Object.assign({},this),{auth:t,stsTokenManager:this.stsTokenManager._clone()}));return e.metadata._copy(this.metadata),e}_onReload(t){On(!this.reloadListener,this.auth,"internal-error"),this.reloadListener=t,this.reloadUserInfo&&(this._notifyReloadListener(this.reloadUserInfo),this.reloadUserInfo=null)}_notifyReloadListener(t){this.reloadListener?this.reloadListener(t):this.reloadUserInfo=t}_startProactiveRefresh(){this.proactiveRefresh._start()}_stopProactiveRefresh(){this.proactiveRefresh._stop()}async _updateTokensIfNecessary(t,e=!1){let i=!1;t.idToken&&t.idToken!==this.stsTokenManager.accessToken&&(this.stsTokenManager.updateFromServerResponse(t),i=!0),e&&await so(this),await this.auth._persistUserIfCurrent(this),i&&this.auth._notifyListenersIfCurrent(this)}async delete(){if(Ui(this.auth.app))return Promise.reject(An(this.auth));const t=await this.getIdToken();return await io(this,async function(t,e){return Gn(t,"POST","/v1/accounts:delete",e)}(this.auth,{idToken:t})),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((t=>Object.assign({},t))),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(t,e){var i,n,o,s,r,a,l,c;const d=null!==(i=e.displayName)&&void 0!==i?i:void 0,h=null!==(n=e.email)&&void 0!==n?n:void 0,u=null!==(o=e.phoneNumber)&&void 0!==o?o:void 0,p=null!==(s=e.photoURL)&&void 0!==s?s:void 0,v=null!==(r=e.tenantId)&&void 0!==r?r:void 0,f=null!==(a=e._redirectEventId)&&void 0!==a?a:void 0,g=null!==(l=e.createdAt)&&void 0!==l?l:void 0,m=null!==(c=e.lastLoginAt)&&void 0!==c?c:void 0,{uid:w,emailVerified:b,isAnonymous:y,providerData:C,stsTokenManager:x}=e;On(w&&x,t,"internal-error");const E=ao.fromJSON(this.name,x);On("string"==typeof w,t,"internal-error"),lo(d,t.name),lo(h,t.name),On("boolean"==typeof b,t,"internal-error"),On("boolean"==typeof y,t,"internal-error"),lo(u,t.name),lo(p,t.name),lo(v,t.name),lo(f,t.name),lo(g,t.name),lo(m,t.name);const k=new co({uid:w,auth:t,email:h,emailVerified:b,displayName:d,isAnonymous:y,photoURL:p,phoneNumber:u,tenantId:v,stsTokenManager:E,createdAt:g,lastLoginAt:m});return C&&Array.isArray(C)&&(k.providerData=C.map((t=>Object.assign({},t)))),f&&(k._redirectEventId=f),k}static async _fromIdTokenResponse(t,e,i=!1){const n=new ao;n.updateFromServerResponse(e);const o=new co({uid:e.localId,auth:t,stsTokenManager:n,isAnonymous:i});return await so(o),o}static async _fromGetAccountInfoResponse(t,e,i){const n=e.users[0];On(void 0!==n.localId,"internal-error");const o=void 0!==n.providerUserInfo?ro(n.providerUserInfo):[],s=!(n.email&&n.passwordHash||(null==o?void 0:o.length)),r=new ao;r.updateFromIdToken(i);const a=new co({uid:n.localId,auth:t,stsTokenManager:r,isAnonymous:s}),l={uid:n.localId,displayName:n.displayName||null,photoURL:n.photoUrl||null,email:n.email||null,emailVerified:n.emailVerified||!1,phoneNumber:n.phoneNumber||null,tenantId:n.tenantId||null,providerData:o,metadata:new oo(n.createdAt,n.lastLoginAt),isAnonymous:!(n.email&&n.passwordHash||(null==o?void 0:o.length))};return Object.assign(a,l),a}}
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */const ho=new Map;function uo(t){Dn(t instanceof Function,"Expected a class definition");let e=ho.get(t);return e?(Dn(e instanceof t,"Instance stored in cache mismatched with class"),e):(e=new t,ho.set(t,e),e)}
/**
     * @license
     * Copyright 2019 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */class po{constructor(){this.type="NONE",this.storage={}}async _isAvailable(){return!0}async _set(t,e){this.storage[t]=e}async _get(t){const e=this.storage[t];return void 0===e?null:e}async _remove(t){delete this.storage[t]}_addListener(t,e){}_removeListener(t,e){}}po.type="NONE";const vo=po;
/**
     * @license
     * Copyright 2019 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */function fo(t,e,i){return`firebase:${t}:${e}:${i}`}class go{constructor(t,e,i){this.persistence=t,this.auth=e,this.userKey=i;const{config:n,name:o}=this.auth;this.fullUserKey=fo(this.userKey,n.apiKey,o),this.fullPersistenceKey=fo("persistence",n.apiKey,o),this.boundEventHandler=e._onStorageEvent.bind(e),this.persistence._addListener(this.fullUserKey,this.boundEventHandler)}setCurrentUser(t){return this.persistence._set(this.fullUserKey,t.toJSON())}async getCurrentUser(){const t=await this.persistence._get(this.fullUserKey);if(!t)return null;if("string"==typeof t){const e=await qn(this.auth,{idToken:t}).catch((()=>{}));return e?co._fromGetAccountInfoResponse(this.auth,e,t):null}return co._fromJSON(this.auth,t)}removeCurrentUser(){return this.persistence._remove(this.fullUserKey)}savePersistenceForRedirect(){return this.persistence._set(this.fullPersistenceKey,this.persistence.type)}async setPersistence(t){if(this.persistence===t)return;const e=await this.getCurrentUser();return await this.removeCurrentUser(),this.persistence=t,e?this.setCurrentUser(e):void 0}delete(){this.persistence._removeListener(this.fullUserKey,this.boundEventHandler)}static async create(t,e,i="authUser"){if(!e.length)return new go(uo(vo),t,i);const n=(await Promise.all(e.map((async t=>{if(await t._isAvailable())return t})))).filter((t=>t));let o=n[0]||uo(vo);const s=fo(i,t.config.apiKey,t.name);let r=null;for(const i of e)try{const e=await i._get(s);if(e){let n;if("string"==typeof e){const i=await qn(t,{idToken:e}).catch((()=>{}));if(!i)break;n=await co._fromGetAccountInfoResponse(t,i,e)}else n=co._fromJSON(t,e);i!==o&&(r=n),o=i;break}}catch(t){}const a=n.filter((t=>t._shouldAllowMigration));return o._shouldAllowMigration&&a.length?(o=a[0],r&&await o._set(s,r.toJSON()),await Promise.all(e.map((async t=>{if(t!==o)try{await t._remove(s)}catch(t){}}))),new go(o,t,i)):new go(o,t,i)}}
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */function mo(t){const e=t.toLowerCase();if(e.includes("opera/")||e.includes("opr/")||e.includes("opios/"))return"Opera";if(Co(e))return"IEMobile";if(e.includes("msie")||e.includes("trident/"))return"IE";if(e.includes("edge/"))return"Edge";if(wo(e))return"Firefox";if(e.includes("silk/"))return"Silk";if(Eo(e))return"Blackberry";if(ko(e))return"Webos";if(bo(e))return"Safari";if((e.includes("chrome/")||yo(e))&&!e.includes("edge/"))return"Chrome";if(xo(e))return"Android";{const e=/([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/,i=t.match(e);if(2===(null==i?void 0:i.length))return i[1]}return"Other"}function wo(t=Ce()){return/firefox\//i.test(t)}function bo(t=Ce()){const e=t.toLowerCase();return e.includes("safari/")&&!e.includes("chrome/")&&!e.includes("crios/")&&!e.includes("android")}function yo(t=Ce()){return/crios\//i.test(t)}function Co(t=Ce()){return/iemobile/i.test(t)}function xo(t=Ce()){return/android/i.test(t)}function Eo(t=Ce()){return/blackberry/i.test(t)}function ko(t=Ce()){return/webos/i.test(t)}function So(t=Ce()){return/iphone|ipad|ipod/i.test(t)||/macintosh/i.test(t)&&/mobile/i.test(t)}function Mo(){return function(){const t=Ce();return t.indexOf("MSIE ")>=0||t.indexOf("Trident/")>=0}()&&10===document.documentMode}function _o(t=Ce()){return So(t)||xo(t)||ko(t)||Eo(t)||/windows phone/i.test(t)||Co(t)}
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */function To(t,e=[]){let i;switch(t){case"Browser":i=mo(Ce());break;case"Worker":i=`${mo(Ce())}-${t}`;break;default:i=t}const n=e.length?e.join(","):"FirebaseCore-web";return`${i}/JsCore/${Hi}/${n}`}
/**
     * @license
     * Copyright 2022 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */class Io{constructor(t){this.auth=t,this.queue=[]}pushCallback(t,e){const i=e=>new Promise(((i,n)=>{try{i(t(e))}catch(t){n(t)}}));i.onAbort=e,this.queue.push(i);const n=this.queue.length-1;return()=>{this.queue[n]=()=>Promise.resolve()}}async runMiddleware(t){if(this.auth.currentUser===t)return;const e=[];try{for(const i of this.queue)await i(t),i.onAbort&&e.push(i.onAbort)}catch(t){e.reverse();for(const t of e)try{t()}catch(t){}throw this.auth._errorFactory.create("login-blocked",{originalMessage:null==t?void 0:t.message})}}}
/**
     * @license
     * Copyright 2023 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */class No{constructor(t){var e,i,n,o;const s=t.customStrengthOptions;this.customStrengthOptions={},this.customStrengthOptions.minPasswordLength=null!==(e=s.minPasswordLength)&&void 0!==e?e:6,s.maxPasswordLength&&(this.customStrengthOptions.maxPasswordLength=s.maxPasswordLength),void 0!==s.containsLowercaseCharacter&&(this.customStrengthOptions.containsLowercaseLetter=s.containsLowercaseCharacter),void 0!==s.containsUppercaseCharacter&&(this.customStrengthOptions.containsUppercaseLetter=s.containsUppercaseCharacter),void 0!==s.containsNumericCharacter&&(this.customStrengthOptions.containsNumericCharacter=s.containsNumericCharacter),void 0!==s.containsNonAlphanumericCharacter&&(this.customStrengthOptions.containsNonAlphanumericCharacter=s.containsNonAlphanumericCharacter),this.enforcementState=t.enforcementState,"ENFORCEMENT_STATE_UNSPECIFIED"===this.enforcementState&&(this.enforcementState="OFF"),this.allowedNonAlphanumericCharacters=null!==(n=null===(i=t.allowedNonAlphanumericCharacters)||void 0===i?void 0:i.join(""))&&void 0!==n?n:"",this.forceUpgradeOnSignin=null!==(o=t.forceUpgradeOnSignin)&&void 0!==o&&o,this.schemaVersion=t.schemaVersion}validatePassword(t){var e,i,n,o,s,r;const a={isValid:!0,passwordPolicy:this};return this.validatePasswordLengthOptions(t,a),this.validatePasswordCharacterOptions(t,a),a.isValid&&(a.isValid=null===(e=a.meetsMinPasswordLength)||void 0===e||e),a.isValid&&(a.isValid=null===(i=a.meetsMaxPasswordLength)||void 0===i||i),a.isValid&&(a.isValid=null===(n=a.containsLowercaseLetter)||void 0===n||n),a.isValid&&(a.isValid=null===(o=a.containsUppercaseLetter)||void 0===o||o),a.isValid&&(a.isValid=null===(s=a.containsNumericCharacter)||void 0===s||s),a.isValid&&(a.isValid=null===(r=a.containsNonAlphanumericCharacter)||void 0===r||r),a}validatePasswordLengthOptions(t,e){const i=this.customStrengthOptions.minPasswordLength,n=this.customStrengthOptions.maxPasswordLength;i&&(e.meetsMinPasswordLength=t.length>=i),n&&(e.meetsMaxPasswordLength=t.length<=n)}validatePasswordCharacterOptions(t,e){let i;this.updatePasswordCharacterOptionsStatuses(e,!1,!1,!1,!1);for(let n=0;n<t.length;n++)i=t.charAt(n),this.updatePasswordCharacterOptionsStatuses(e,i>="a"&&i<="z",i>="A"&&i<="Z",i>="0"&&i<="9",this.allowedNonAlphanumericCharacters.includes(i))}updatePasswordCharacterOptionsStatuses(t,e,i,n,o){this.customStrengthOptions.containsLowercaseLetter&&(t.containsLowercaseLetter||(t.containsLowercaseLetter=e)),this.customStrengthOptions.containsUppercaseLetter&&(t.containsUppercaseLetter||(t.containsUppercaseLetter=i)),this.customStrengthOptions.containsNumericCharacter&&(t.containsNumericCharacter||(t.containsNumericCharacter=n)),this.customStrengthOptions.containsNonAlphanumericCharacter&&(t.containsNonAlphanumericCharacter||(t.containsNonAlphanumericCharacter=o))}}
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */class Ao{constructor(t,e,i,n){this.app=t,this.heartbeatServiceProvider=e,this.appCheckServiceProvider=i,this.config=n,this.currentUser=null,this.emulatorConfig=null,this.operations=Promise.resolve(),this.authStateSubscription=new Oo(this),this.idTokenSubscription=new Oo(this),this.beforeStateQueue=new Io(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=Sn,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=t.name,this.clientVersion=n.sdkClientVersion,this._persistenceManagerAvailable=new Promise((t=>this._resolvePersistenceManagerAvailable=t))}_initializeWithPersistence(t,e){return e&&(this._popupRedirectResolver=uo(e)),this._initializationPromise=this.queue((async()=>{var i,n,o;if(!this._deleted&&(this.persistenceManager=await go.create(this,t),null===(i=this._resolvePersistenceManagerAvailable)||void 0===i||i.call(this),!this._deleted)){if(null===(n=this._popupRedirectResolver)||void 0===n?void 0:n._shouldInitProactively)try{await this._popupRedirectResolver._initialize(this)}catch(t){}await this.initializeCurrentUser(e),this.lastNotifiedUid=(null===(o=this.currentUser)||void 0===o?void 0:o.uid)||null,this._deleted||(this._isInitialized=!0)}})),this._initializationPromise}async _onStorageEvent(){if(this._deleted)return;const t=await this.assertedPersistence.getCurrentUser();return this.currentUser||t?this.currentUser&&t&&this.currentUser.uid===t.uid?(this._currentUser._assign(t),void await this.currentUser.getIdToken()):void await this._updateCurrentUser(t,!0):void 0}async initializeCurrentUserFromIdToken(t){try{const e=await qn(this,{idToken:t}),i=await co._fromGetAccountInfoResponse(this,e,t);await this.directlySetCurrentUser(i)}catch(t){console.warn("FirebaseServerApp could not login user with provided authIdToken: ",t),await this.directlySetCurrentUser(null)}}async initializeCurrentUser(t){var e;if(Ui(this.app)){const t=this.app.settings.authIdToken;return t?new Promise((e=>{setTimeout((()=>this.initializeCurrentUserFromIdToken(t).then(e,e)))})):this.directlySetCurrentUser(null)}const i=await this.assertedPersistence.getCurrentUser();let n=i,o=!1;if(t&&this.config.authDomain){await this.getOrInitRedirectPersistenceManager();const i=null===(e=this.redirectUser)||void 0===e?void 0:e._redirectEventId,s=null==n?void 0:n._redirectEventId,r=await this.tryRedirectSignIn(t);i&&i!==s||!(null==r?void 0:r.user)||(n=r.user,o=!0)}if(!n)return this.directlySetCurrentUser(null);if(!n._redirectEventId){if(o)try{await this.beforeStateQueue.runMiddleware(n)}catch(t){n=i,this._popupRedirectResolver._overrideRedirectResult(this,(()=>Promise.reject(t)))}return n?this.reloadAndSetCurrentUserOrClear(n):this.directlySetCurrentUser(null)}return On(this._popupRedirectResolver,this,"argument-error"),await this.getOrInitRedirectPersistenceManager(),this.redirectUser&&this.redirectUser._redirectEventId===n._redirectEventId?this.directlySetCurrentUser(n):this.reloadAndSetCurrentUserOrClear(n)}async tryRedirectSignIn(t){let e=null;try{e=await this._popupRedirectResolver._completeRedirectFn(this,t,!0)}catch(t){await this._setRedirectUser(null)}return e}async reloadAndSetCurrentUserOrClear(t){try{await so(t)}catch(t){if("auth/network-request-failed"!==(null==t?void 0:t.code))return this.directlySetCurrentUser(null)}return this.directlySetCurrentUser(t)}useDeviceLanguage(){this.languageCode=function(){if("undefined"==typeof navigator)return null;const t=navigator;return t.languages&&t.languages[0]||t.language||null}()}async _delete(){this._deleted=!0}async updateCurrentUser(t){if(Ui(this.app))return Promise.reject(An(this));const e=t?Ne(t):null;return e&&On(e.auth.config.apiKey===this.config.apiKey,this,"invalid-user-token"),this._updateCurrentUser(e&&e._clone(this))}async _updateCurrentUser(t,e=!1){if(!this._deleted)return t&&On(this.tenantId===t.tenantId,this,"tenant-id-mismatch"),e||await this.beforeStateQueue.runMiddleware(t),this.queue((async()=>{await this.directlySetCurrentUser(t),this.notifyAuthListeners()}))}async signOut(){return Ui(this.app)?Promise.reject(An(this)):(await this.beforeStateQueue.runMiddleware(null),(this.redirectPersistenceManager||this._popupRedirectResolver)&&await this._setRedirectUser(null),this._updateCurrentUser(null,!0))}setPersistence(t){return Ui(this.app)?Promise.reject(An(this)):this.queue((async()=>{await this.assertedPersistence.setPersistence(uo(t))}))}_getRecaptchaConfig(){return null==this.tenantId?this._agentRecaptchaConfig:this._tenantRecaptchaConfigs[this.tenantId]}async validatePassword(t){this._getPasswordPolicyInternal()||await this._updatePasswordPolicy();const e=this._getPasswordPolicyInternal();return e.schemaVersion!==this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION?Promise.reject(this._errorFactory.create("unsupported-password-policy-schema-version",{})):e.validatePassword(t)}_getPasswordPolicyInternal(){return null===this.tenantId?this._projectPasswordPolicy:this._tenantPasswordPolicies[this.tenantId]}async _updatePasswordPolicy(){const t=await async function(t,e={}){return Gn(t,"GET","/v2/passwordPolicy",Wn(t,e))}
/**
     * @license
     * Copyright 2023 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */(this),e=new No(t);null===this.tenantId?this._projectPasswordPolicy=e:this._tenantPasswordPolicies[this.tenantId]=e}_getPersistenceType(){return this.assertedPersistence.persistence.type}_getPersistence(){return this.assertedPersistence.persistence}_updateErrorMap(t){this._errorFactory=new Ee("auth","Firebase",t())}onAuthStateChanged(t,e,i){return this.registerStateListener(this.authStateSubscription,t,e,i)}beforeAuthStateChanged(t,e){return this.beforeStateQueue.pushCallback(t,e)}onIdTokenChanged(t,e,i){return this.registerStateListener(this.idTokenSubscription,t,e,i)}authStateReady(){return new Promise(((t,e)=>{if(this.currentUser)t();else{const i=this.onAuthStateChanged((()=>{i(),t()}),e)}}))}async revokeAccessToken(t){if(this.currentUser){const e={providerId:"apple.com",tokenType:"ACCESS_TOKEN",token:t,idToken:await this.currentUser.getIdToken()};null!=this.tenantId&&(e.tenantId=this.tenantId),await async function(t,e){return Gn(t,"POST","/v2/accounts:revokeToken",Wn(t,e))}(this,e)}}toJSON(){var t;return{apiKey:this.config.apiKey,authDomain:this.config.authDomain,appName:this.name,currentUser:null===(t=this._currentUser)||void 0===t?void 0:t.toJSON()}}async _setRedirectUser(t,e){const i=await this.getOrInitRedirectPersistenceManager(e);return null===t?i.removeCurrentUser():i.setCurrentUser(t)}async getOrInitRedirectPersistenceManager(t){if(!this.redirectPersistenceManager){const e=t&&uo(t)||this._popupRedirectResolver;On(e,this,"argument-error"),this.redirectPersistenceManager=await go.create(this,[uo(e._redirectPersistence)],"redirectUser"),this.redirectUser=await this.redirectPersistenceManager.getCurrentUser()}return this.redirectPersistenceManager}async _redirectUserForId(t){var e,i;return this._isInitialized&&await this.queue((async()=>{})),(null===(e=this._currentUser)||void 0===e?void 0:e._redirectEventId)===t?this._currentUser:(null===(i=this.redirectUser)||void 0===i?void 0:i._redirectEventId)===t?this.redirectUser:null}async _persistUserIfCurrent(t){if(t===this.currentUser)return this.queue((async()=>this.directlySetCurrentUser(t)))}_notifyListenersIfCurrent(t){t===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 t,e;if(!this._isInitialized)return;this.idTokenSubscription.next(this.currentUser);const i=null!==(e=null===(t=this.currentUser)||void 0===t?void 0:t.uid)&&void 0!==e?e:null;this.lastNotifiedUid!==i&&(this.lastNotifiedUid=i,this.authStateSubscription.next(this.currentUser))}registerStateListener(t,e,i,n){if(this._deleted)return()=>{};const o="function"==typeof e?e:e.next.bind(e);let s=!1;const r=this._isInitialized?Promise.resolve():this._initializationPromise;if(On(r,this,"internal-error"),r.then((()=>{s||o(this.currentUser)})),"function"==typeof e){const o=t.addObserver(e,i,n);return()=>{s=!0,o()}}{const i=t.addObserver(e);return()=>{s=!0,i()}}}async directlySetCurrentUser(t){this.currentUser&&this.currentUser!==t&&this._currentUser._stopProactiveRefresh(),t&&this.isProactiveRefreshEnabled&&t._startProactiveRefresh(),this.currentUser=t,t?await this.assertedPersistence.setCurrentUser(t):await this.assertedPersistence.removeCurrentUser()}queue(t){return this.operations=this.operations.then(t,t),this.operations}get assertedPersistence(){return On(this.persistenceManager,this,"internal-error"),this.persistenceManager}_logFramework(t){t&&!this.frameworks.includes(t)&&(this.frameworks.push(t),this.frameworks.sort(),this.clientVersion=To(this.config.clientPlatform,this._getFrameworks()))}_getFrameworks(){return this.frameworks}async _getAdditionalHeaders(){var t;const e={"X-Client-Version":this.clientVersion};this.app.options.appId&&(e["X-Firebase-gmpid"]=this.app.options.appId);const i=await(null===(t=this.heartbeatServiceProvider.getImmediate({optional:!0}))||void 0===t?void 0:t.getHeartbeatsHeader());i&&(e["X-Firebase-Client"]=i);const n=await this._getAppCheckToken();return n&&(e["X-Firebase-AppCheck"]=n),e}async _getAppCheckToken(){var t;if(Ui(this.app)&&this.app.settings.appCheckToken)return this.app.settings.appCheckToken;const e=await(null===(t=this.appCheckServiceProvider.getImmediate({optional:!0}))||void 0===t?void 0:t.getToken());return(null==e?void 0:e.error)&&function(t,...e){Mn.logLevel<=De.WARN&&Mn.warn(`Auth (${Hi}): ${t}`,...e)}(`Error while retrieving App Check token: ${e.error}`),null==e?void 0:e.token}}function Lo(t){return Ne(t)}class Oo{constructor(t){this.auth=t,this.observer=null,this.addObserver=function(t,e){const i=new Te(t,e);return i.subscribe.bind(i)}((t=>this.observer=t))}get next(){return On(this.observer,this.auth,"internal-error"),this.observer.next.bind(this.observer)}}
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */let $o={async loadJS(){throw new Error("Unable to load external scripts")},recaptchaV2Script:"",recaptchaEnterpriseScript:"",gapiScript:""};function Do(t,e,i){const n=Lo(t);On(/^https?:\/\//.test(e),n,"invalid-emulator-scheme");const o=Vo(e),{host:s,port:r}=function(t){const e=Vo(t),i=/(\/\/)?([^?#/]+)/.exec(t.substr(e.length));if(!i)return{host:"",port:null};const n=i[2].split("@").pop()||"",o=/^(\[[^\]]+\])(:|$)/.exec(n);if(o){const t=o[1];return{host:t,port:jo(n.substr(t.length+1))}}{const[t,e]=n.split(":");return{host:t,port:jo(e)}}}(e),a={url:`${o}//${s}${null===r?"":`:${r}`}/`},l=Object.freeze({host:s,port:r,protocol:o.replace(":",""),options:Object.freeze({disableWarnings:!1})});if(!n._canInitEmulator)return On(n.config.emulator&&n.emulatorConfig,n,"emulator-config-failed"),void On(Se(a,n.config.emulator)&&Se(l,n.emulatorConfig),n,"emulator-config-failed");n.config.emulator=a,n.emulatorConfig=l,n.settings.appVerificationDisabledForTesting=!0,function(){function t(){const t=document.createElement("p"),e=t.style;t.innerText="Running in emulator mode. Do not use with production credentials.",e.position="fixed",e.width="100%",e.backgroundColor="#ffffff",e.border=".1em solid #000000",e.color="#b50000",e.bottom="0px",e.left="0px",e.margin="0px",e.zIndex="10000",e.textAlign="center",t.classList.add("firebase-emulator-warning"),document.body.appendChild(t)}"undefined"!=typeof console&&"function"==typeof console.info&&console.info("WARNING: You are using the Auth Emulator, which is intended for local testing only.  Do not use with production credentials.");"undefined"!=typeof window&&"undefined"!=typeof document&&("loading"===document.readyState?window.addEventListener("DOMContentLoaded",t):t())}
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */()}function Vo(t){const e=t.indexOf(":");return e<0?"":t.substr(0,e+1)}function jo(t){if(!t)return null;const e=Number(t);return isNaN(e)?null:e}class Fo{constructor(t,e){this.providerId=t,this.signInMethod=e}toJSON(){return $n("not implemented")}_getIdTokenResponse(t){return $n("not implemented")}_linkToIdToken(t,e){return $n("not implemented")}_getReauthenticationResolver(t){return $n("not implemented")}}
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */async function Po(t,e){return async function(t,e,i,n,o={}){const s=await Gn(t,e,i,n,o);return"mfaPendingCredential"in s&&Tn(t,"multi-factor-auth-required",{_serverResponse:s}),s}(t,"POST","/v1/accounts:signInWithIdp",Wn(t,e))}
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */class Ro extends Fo{constructor(){super(...arguments),this.pendingToken=null}static _fromParams(t){const e=new Ro(t.providerId,t.signInMethod);return t.idToken||t.accessToken?(t.idToken&&(e.idToken=t.idToken),t.accessToken&&(e.accessToken=t.accessToken),t.nonce&&!t.pendingToken&&(e.nonce=t.nonce),t.pendingToken&&(e.pendingToken=t.pendingToken)):t.oauthToken&&t.oauthTokenSecret?(e.accessToken=t.oauthToken,e.secret=t.oauthTokenSecret):Tn("argument-error"),e}toJSON(){return{idToken:this.idToken,accessToken:this.accessToken,secret:this.secret,nonce:this.nonce,pendingToken:this.pendingToken,providerId:this.providerId,signInMethod:this.signInMethod}}static fromJSON(t){const e="string"==typeof t?JSON.parse(t):t,{providerId:i,signInMethod:n}=e,o=xn(e,["providerId","signInMethod"]);if(!i||!n)return null;const s=new Ro(i,n);return s.idToken=o.idToken||void 0,s.accessToken=o.accessToken||void 0,s.secret=o.secret,s.nonce=o.nonce,s.pendingToken=o.pendingToken||null,s}_getIdTokenResponse(t){return Po(t,this.buildRequest())}_linkToIdToken(t,e){const i=this.buildRequest();return i.idToken=e,Po(t,i)}_getReauthenticationResolver(t){const e=this.buildRequest();return e.autoCreate=!1,Po(t,e)}buildRequest(){const t={requestUri:"http://localhost",returnSecureToken:!0};if(this.pendingToken)t.pendingToken=this.pendingToken;else{const e={};this.idToken&&(e.id_token=this.idToken),this.accessToken&&(e.access_token=this.accessToken),this.secret&&(e.oauth_token_secret=this.secret),e.providerId=this.providerId,this.nonce&&!this.pendingToken&&(e.nonce=this.nonce),t.postBody=_e(e)}return t}}
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */class Uo{constructor(t){this.providerId=t,this.defaultLanguageCode=null,this.customParameters={}}setDefaultLanguage(t){this.defaultLanguageCode=t}setCustomParameters(t){return this.customParameters=t,this}getCustomParameters(){return this.customParameters}}
/**
     * @license
     * Copyright 2019 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */class zo extends Uo{constructor(){super(...arguments),this.scopes=[]}addScope(t){return this.scopes.includes(t)||this.scopes.push(t),this}getScopes(){return[...this.scopes]}}
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */class Bo extends zo{constructor(){super("facebook.com")}static credential(t){return Ro._fromParams({providerId:Bo.PROVIDER_ID,signInMethod:Bo.FACEBOOK_SIGN_IN_METHOD,accessToken:t})}static credentialFromResult(t){return Bo.credentialFromTaggedObject(t)}static credentialFromError(t){return Bo.credentialFromTaggedObject(t.customData||{})}static credentialFromTaggedObject({_tokenResponse:t}){if(!t||!("oauthAccessToken"in t))return null;if(!t.oauthAccessToken)return null;try{return Bo.credential(t.oauthAccessToken)}catch(t){return null}}}Bo.FACEBOOK_SIGN_IN_METHOD="facebook.com",Bo.PROVIDER_ID="facebook.com";
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
class Ho extends zo{constructor(){super("google.com"),this.addScope("profile")}static credential(t,e){return Ro._fromParams({providerId:Ho.PROVIDER_ID,signInMethod:Ho.GOOGLE_SIGN_IN_METHOD,idToken:t,accessToken:e})}static credentialFromResult(t){return Ho.credentialFromTaggedObject(t)}static credentialFromError(t){return Ho.credentialFromTaggedObject(t.customData||{})}static credentialFromTaggedObject({_tokenResponse:t}){if(!t)return null;const{oauthIdToken:e,oauthAccessToken:i}=t;if(!e&&!i)return null;try{return Ho.credential(e,i)}catch(t){return null}}}Ho.GOOGLE_SIGN_IN_METHOD="google.com",Ho.PROVIDER_ID="google.com";
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
class Wo extends zo{constructor(){super("github.com")}static credential(t){return Ro._fromParams({providerId:Wo.PROVIDER_ID,signInMethod:Wo.GITHUB_SIGN_IN_METHOD,accessToken:t})}static credentialFromResult(t){return Wo.credentialFromTaggedObject(t)}static credentialFromError(t){return Wo.credentialFromTaggedObject(t.customData||{})}static credentialFromTaggedObject({_tokenResponse:t}){if(!t||!("oauthAccessToken"in t))return null;if(!t.oauthAccessToken)return null;try{return Wo.credential(t.oauthAccessToken)}catch(t){return null}}}Wo.GITHUB_SIGN_IN_METHOD="github.com",Wo.PROVIDER_ID="github.com";
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
class Go extends zo{constructor(){super("twitter.com")}static credential(t,e){return Ro._fromParams({providerId:Go.PROVIDER_ID,signInMethod:Go.TWITTER_SIGN_IN_METHOD,oauthToken:t,oauthTokenSecret:e})}static credentialFromResult(t){return Go.credentialFromTaggedObject(t)}static credentialFromError(t){return Go.credentialFromTaggedObject(t.customData||{})}static credentialFromTaggedObject({_tokenResponse:t}){if(!t)return null;const{oauthAccessToken:e,oauthTokenSecret:i}=t;if(!e||!i)return null;try{return Go.credential(e,i)}catch(t){return null}}}Go.TWITTER_SIGN_IN_METHOD="twitter.com",Go.PROVIDER_ID="twitter.com";
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
class Ko{constructor(t){this.user=t.user,this.providerId=t.providerId,this._tokenResponse=t._tokenResponse,this.operationType=t.operationType}static async _fromIdTokenResponse(t,e,i,n=!1){const o=await co._fromIdTokenResponse(t,i,n),s=Zo(i);return new Ko({user:o,providerId:s,_tokenResponse:i,operationType:e})}static async _forOperation(t,e,i){await t._updateTokensIfNecessary(i,!0);const n=Zo(i);return new Ko({user:t,providerId:n,_tokenResponse:i,operationType:e})}}function Zo(t){return t.providerId?t.providerId:"phoneNumber"in t?"phone":null}
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */class Jo extends xe{constructor(t,e,i,n){var o;super(e.code,e.message),this.operationType=i,this.user=n,Object.setPrototypeOf(this,Jo.prototype),this.customData={appName:t.name,tenantId:null!==(o=t.tenantId)&&void 0!==o?o:void 0,_serverResponse:e.customData._serverResponse,operationType:i}}static _fromErrorAndOperation(t,e,i,n){return new Jo(t,e,i,n)}}function Yo(t,e,i,n){return("reauthenticate"===e?i._getReauthenticationResolver(t):i._getIdTokenResponse(t)).catch((i=>{if("auth/multi-factor-auth-required"===i.code)throw Jo._fromErrorAndOperation(t,i,e,n);throw i}))}const qo="__sak";
/**
     * @license
     * Copyright 2019 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */class Qo{constructor(t,e){this.storageRetriever=t,this.type=e}_isAvailable(){try{return this.storage?(this.storage.setItem(qo,"1"),this.storage.removeItem(qo),Promise.resolve(!0)):Promise.resolve(!1)}catch(t){return Promise.resolve(!1)}}_set(t,e){return this.storage.setItem(t,JSON.stringify(e)),Promise.resolve()}_get(t){const e=this.storage.getItem(t);return Promise.resolve(e?JSON.parse(e):null)}_remove(t){return this.storage.removeItem(t),Promise.resolve()}get storage(){return this.storageRetriever()}}
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */class Xo extends Qo{constructor(){super((()=>window.localStorage),"LOCAL"),this.boundEventHandler=(t,e)=>this.onStorageEvent(t,e),this.listeners={},this.localCache={},this.pollTimer=null,this.fallbackToPolling=_o(),this._shouldAllowMigration=!0}forAllChangedKeys(t){for(const e of Object.keys(this.listeners)){const i=this.storage.getItem(e),n=this.localCache[e];i!==n&&t(e,n,i)}}onStorageEvent(t,e=!1){if(!t.key)return void this.forAllChangedKeys(((t,e,i)=>{this.notifyListeners(t,i)}));const i=t.key;e?this.detachListener():this.stopPolling();const n=()=>{const t=this.storage.getItem(i);(e||this.localCache[i]!==t)&&this.notifyListeners(i,t)},o=this.storage.getItem(i);Mo()&&o!==t.newValue&&t.newValue!==t.oldValue?setTimeout(n,10):n()}notifyListeners(t,e){this.localCache[t]=e;const i=this.listeners[t];if(i)for(const t of Array.from(i))t(e?JSON.parse(e):e)}startPolling(){this.stopPolling(),this.pollTimer=setInterval((()=>{this.forAllChangedKeys(((t,e,i)=>{this.onStorageEvent(new StorageEvent("storage",{key:t,oldValue:e,newValue:i}),!0)}))}),1e3)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}attachListener(){window.addEventListener("storage",this.boundEventHandler)}detachListener(){window.removeEventListener("storage",this.boundEventHandler)}_addListener(t,e){0===Object.keys(this.listeners).length&&(this.fallbackToPolling?this.startPolling():this.attachListener()),this.listeners[t]||(this.listeners[t]=new Set,this.localCache[t]=this.storage.getItem(t)),this.listeners[t].add(e)}_removeListener(t,e){this.listeners[t]&&(this.listeners[t].delete(e),0===this.listeners[t].size&&delete this.listeners[t]),0===Object.keys(this.listeners).length&&(this.detachListener(),this.stopPolling())}async _set(t,e){await super._set(t,e),this.localCache[t]=JSON.stringify(e)}async _get(t){const e=await super._get(t);return this.localCache[t]=JSON.stringify(e),e}async _remove(t){await super._remove(t),delete this.localCache[t]}}Xo.type="LOCAL";const ts=Xo;
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */class es extends Qo{constructor(){super((()=>window.sessionStorage),"SESSION")}_addListener(t,e){}_removeListener(t,e){}}es.type="SESSION";const is=es;
/**
     * @license
     * Copyright 2019 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
/**
     * @license
     * Copyright 2019 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
class ns{constructor(t){this.eventTarget=t,this.handlersMap={},this.boundEventHandler=this.handleEvent.bind(this)}static _getInstance(t){const e=this.receivers.find((e=>e.isListeningto(t)));if(e)return e;const i=new ns(t);return this.receivers.push(i),i}isListeningto(t){return this.eventTarget===t}async handleEvent(t){const e=t,{eventId:i,eventType:n,data:o}=e.data,s=this.handlersMap[n];if(!(null==s?void 0:s.size))return;e.ports[0].postMessage({status:"ack",eventId:i,eventType:n});const r=Array.from(s).map((async t=>t(e.origin,o))),a=await function(t){return Promise.all(t.map((async t=>{try{return{fulfilled:!0,value:await t}}catch(t){return{fulfilled:!1,reason:t}}})))}(r);e.ports[0].postMessage({status:"done",eventId:i,eventType:n,response:a})}_subscribe(t,e){0===Object.keys(this.handlersMap).length&&this.eventTarget.addEventListener("message",this.boundEventHandler),this.handlersMap[t]||(this.handlersMap[t]=new Set),this.handlersMap[t].add(e)}_unsubscribe(t,e){this.handlersMap[t]&&e&&this.handlersMap[t].delete(e),e&&0!==this.handlersMap[t].size||delete this.handlersMap[t],0===Object.keys(this.handlersMap).length&&this.eventTarget.removeEventListener("message",this.boundEventHandler)}}
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
function os(t="",e=10){let i="";for(let t=0;t<e;t++)i+=Math.floor(10*Math.random());return t+i}
/**
     * @license
     * Copyright 2019 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */ns.receivers=[];class ss{constructor(t){this.target=t,this.handlers=new Set}removeMessageHandler(t){t.messageChannel&&(t.messageChannel.port1.removeEventListener("message",t.onMessage),t.messageChannel.port1.close()),this.handlers.delete(t)}async _send(t,e,i=50){const n="undefined"!=typeof MessageChannel?new MessageChannel:null;if(!n)throw new Error("connection_unavailable");let o,s;return new Promise(((r,a)=>{const l=os("",20);n.port1.start();const c=setTimeout((()=>{a(new Error("unsupported_event"))}),i);s={messageChannel:n,onMessage(t){const e=t;if(e.data.eventId===l)switch(e.data.status){case"ack":clearTimeout(c),o=setTimeout((()=>{a(new Error("timeout"))}),3e3);break;case"done":clearTimeout(o),r(e.data.response);break;default:clearTimeout(c),clearTimeout(o),a(new Error("invalid_response"))}}},this.handlers.add(s),n.port1.addEventListener("message",s.onMessage),this.target.postMessage({eventType:t,eventId:l,data:e},[n.port2])})).finally((()=>{s&&this.removeMessageHandler(s)}))}}
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */function rs(){return window}
/**
     * @license
     * Copyright 2020 Google LLC.
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
function as(){return void 0!==rs().WorkerGlobalScope&&"function"==typeof rs().importScripts}
/**
     * @license
     * Copyright 2019 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
const ls="firebaseLocalStorageDb",cs="firebaseLocalStorage",ds="fbase_key";class hs{constructor(t){this.request=t}toPromise(){return new Promise(((t,e)=>{this.request.addEventListener("success",(()=>{t(this.request.result)})),this.request.addEventListener("error",(()=>{e(this.request.error)}))}))}}function us(t,e){return t.transaction([cs],e?"readwrite":"readonly").objectStore(cs)}function ps(){const t=indexedDB.open(ls,1);return new Promise(((e,i)=>{t.addEventListener("error",(()=>{i(t.error)})),t.addEventListener("upgradeneeded",(()=>{const e=t.result;try{e.createObjectStore(cs,{keyPath:ds})}catch(t){i(t)}})),t.addEventListener("success",(async()=>{const i=t.result;i.objectStoreNames.contains(cs)?e(i):(i.close(),await function(){const t=indexedDB.deleteDatabase(ls);return new hs(t).toPromise()}(),e(await ps()))}))}))}async function vs(t,e,i){const n=us(t,!0).put({[ds]:e,value:i});return new hs(n).toPromise()}function fs(t,e){const i=us(t,!0).delete(e);return new hs(i).toPromise()}class gs{constructor(){this.type="LOCAL",this._shouldAllowMigration=!0,this.listeners={},this.localCache={},this.pollTimer=null,this.pendingWrites=0,this.receiver=null,this.sender=null,this.serviceWorkerReceiverAvailable=!1,this.activeServiceWorker=null,this._workerInitializationPromise=this.initializeServiceWorkerMessaging().then((()=>{}),(()=>{}))}async _openDb(){return this.db||(this.db=await ps()),this.db}async _withRetries(t){let e=0;for(;;)try{const e=await this._openDb();return await t(e)}catch(t){if(e++>3)throw t;this.db&&(this.db.close(),this.db=void 0)}}async initializeServiceWorkerMessaging(){return as()?this.initializeReceiver():this.initializeSender()}async initializeReceiver(){this.receiver=ns._getInstance(as()?self:null),this.receiver._subscribe("keyChanged",(async(t,e)=>({keyProcessed:(await this._poll()).includes(e.key)}))),this.receiver._subscribe("ping",(async(t,e)=>["keyChanged"]))}async initializeSender(){var t,e;if(this.activeServiceWorker=await async function(){if(!(null===navigator||void 0===navigator?void 0:navigator.serviceWorker))return null;try{return(await navigator.serviceWorker.ready).active}catch(t){return null}}(),!this.activeServiceWorker)return;this.sender=new ss(this.activeServiceWorker);const i=await this.sender._send("ping",{},800);i&&(null===(t=i[0])||void 0===t?void 0:t.fulfilled)&&(null===(e=i[0])||void 0===e?void 0:e.value.includes("keyChanged"))&&(this.serviceWorkerReceiverAvailable=!0)}async notifyServiceWorker(t){var e;if(this.sender&&this.activeServiceWorker&&((null===(e=null===navigator||void 0===navigator?void 0:navigator.serviceWorker)||void 0===e?void 0:e.controller)||null)===this.activeServiceWorker)try{await this.sender._send("keyChanged",{key:t},this.serviceWorkerReceiverAvailable?800:50)}catch(e){}}async _isAvailable(){try{if(!indexedDB)return!1;const t=await ps();return await vs(t,qo,"1"),await fs(t,qo),!0}catch(t){}return!1}async _withPendingWrite(t){this.pendingWrites++;try{await t()}finally{this.pendingWrites--}}async _set(t,e){return this._withPendingWrite((async()=>(await this._withRetries((i=>vs(i,t,e))),this.localCache[t]=e,this.notifyServiceWorker(t))))}async _get(t){const e=await this._withRetries((e=>async function(t,e){const i=us(t,!1).get(e),n=await new hs(i).toPromise();return void 0===n?null:n.value}(e,t)));return this.localCache[t]=e,e}async _remove(t){return this._withPendingWrite((async()=>(await this._withRetries((e=>fs(e,t))),delete this.localCache[t],this.notifyServiceWorker(t))))}async _poll(){const t=await this._withRetries((t=>{const e=us(t,!1).getAll();return new hs(e).toPromise()}));if(!t)return[];if(0!==this.pendingWrites)return[];const e=[],i=new Set;if(0!==t.length)for(const{fbase_key:n,value:o}of t)i.add(n),JSON.stringify(this.localCache[n])!==JSON.stringify(o)&&(this.notifyListeners(n,o),e.push(n));for(const t of Object.keys(this.localCache))this.localCache[t]&&!i.has(t)&&(this.notifyListeners(t,null),e.push(t));return e}notifyListeners(t,e){this.localCache[t]=e;const i=this.listeners[t];if(i)for(const t of Array.from(i))t(e)}startPolling(){this.stopPolling(),this.pollTimer=setInterval((async()=>this._poll()),800)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}_addListener(t,e){0===Object.keys(this.listeners).length&&this.startPolling(),this.listeners[t]||(this.listeners[t]=new Set,this._get(t)),this.listeners[t].add(e)}_removeListener(t,e){this.listeners[t]&&(this.listeners[t].delete(e),0===this.listeners[t].size&&delete this.listeners[t]),0===Object.keys(this.listeners).length&&this.stopPolling()}}gs.type="LOCAL";const ms=gs;new Pn(3e4,6e4);
/**
     * @license
     * Copyright 2019 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
class ws extends Fo{constructor(t){super("custom","custom"),this.params=t}_getIdTokenResponse(t){return Po(t,this._buildIdpRequest())}_linkToIdToken(t,e){return Po(t,this._buildIdpRequest(e))}_getReauthenticationResolver(t){return Po(t,this._buildIdpRequest())}_buildIdpRequest(t){const e={requestUri:this.params.requestUri,sessionId:this.params.sessionId,postBody:this.params.postBody,tenantId:this.params.tenantId,pendingToken:this.params.pendingToken,returnSecureToken:!0,returnIdpCredential:!0};return t&&(e.idToken=t),e}}function bs(t){
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
return async function(t,e,i=!1){if(Ui(t.app))return Promise.reject(An(t));const n="signIn",o=await Yo(t,n,e),s=await Ko._fromIdTokenResponse(t,n,o);return i||await t._updateCurrentUser(s.user),s}(t.auth,new ws(t),t.bypassAuthState)}function ys(t){const{auth:e,user:i}=t;return On(i,e,"internal-error"),
/**
     * @license
     * Copyright 2019 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
async function(t,e,i=!1){const{auth:n}=t;if(Ui(n.app))return Promise.reject(An(n));const o="reauthenticate";try{const s=await io(t,Yo(n,o,e,t),i);On(s.idToken,n,"internal-error");const r=to(s.idToken);On(r,n,"internal-error");const{sub:a}=r;return On(t.uid===a,n,"user-mismatch"),Ko._forOperation(t,o,s)}catch(t){throw"auth/user-not-found"===(null==t?void 0:t.code)&&Tn(n,"user-mismatch"),t}}(i,new ws(t),t.bypassAuthState)}async function Cs(t){const{auth:e,user:i}=t;return On(i,e,"internal-error"),async function(t,e,i=!1){const n=await io(t,e._linkToIdToken(t.auth,await t.getIdToken()),i);return Ko._forOperation(t,"link",n)}(i,new ws(t),t.bypassAuthState)}
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */class xs{constructor(t,e,i,n,o=!1){this.auth=t,this.resolver=i,this.user=n,this.bypassAuthState=o,this.pendingPromise=null,this.eventManager=null,this.filter=Array.isArray(e)?e:[e]}execute(){return new Promise((async(t,e)=>{this.pendingPromise={resolve:t,reject:e};try{this.eventManager=await this.resolver._initialize(this.auth),await this.onExecution(),this.eventManager.registerConsumer(this)}catch(t){this.reject(t)}}))}async onAuthEvent(t){const{urlResponse:e,sessionId:i,postBody:n,tenantId:o,error:s,type:r}=t;if(s)return void this.reject(s);const a={auth:this.auth,requestUri:e,sessionId:i,tenantId:o||void 0,postBody:n||void 0,user:this.user,bypassAuthState:this.bypassAuthState};try{this.resolve(await this.getIdpTask(r)(a))}catch(t){this.reject(t)}}onError(t){this.reject(t)}getIdpTask(t){switch(t){case"signInViaPopup":case"signInViaRedirect":return bs;case"linkViaPopup":case"linkViaRedirect":return Cs;case"reauthViaPopup":case"reauthViaRedirect":return ys;default:Tn(this.auth,"internal-error")}}resolve(t){Dn(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.resolve(t),this.unregisterAndCleanUp()}reject(t){Dn(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.reject(t),this.unregisterAndCleanUp()}unregisterAndCleanUp(){this.eventManager&&this.eventManager.unregisterConsumer(this),this.pendingPromise=null,this.cleanUp()}}
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */const Es=new Pn(2e3,1e4);class ks extends xs{constructor(t,e,i,n,o){super(t,e,n,o),this.provider=i,this.authWindow=null,this.pollId=null,ks.currentPopupAction&&ks.currentPopupAction.cancel(),ks.currentPopupAction=this}async executeNotNull(){const t=await this.execute();return On(t,this.auth,"internal-error"),t}async onExecution(){Dn(1===this.filter.length,"Popup operations only handle one event");const t=os();this.authWindow=await this.resolver._openPopup(this.auth,this.provider,this.filter[0],t),this.authWindow.associatedEvent=t,this.resolver._originValidation(this.auth).catch((t=>{this.reject(t)})),this.resolver._isIframeWebStorageSupported(this.auth,(t=>{t||this.reject(In(this.auth,"web-storage-unsupported"))})),this.pollUserCancellation()}get eventId(){var t;return(null===(t=this.authWindow)||void 0===t?void 0:t.associatedEvent)||null}cancel(){this.reject(In(this.auth,"cancelled-popup-request"))}cleanUp(){this.authWindow&&this.authWindow.close(),this.pollId&&window.clearTimeout(this.pollId),this.authWindow=null,this.pollId=null,ks.currentPopupAction=null}pollUserCancellation(){const t=()=>{var e,i;(null===(i=null===(e=this.authWindow)||void 0===e?void 0:e.window)||void 0===i?void 0:i.closed)?this.pollId=window.setTimeout((()=>{this.pollId=null,this.reject(In(this.auth,"popup-closed-by-user"))}),8e3):this.pollId=window.setTimeout(t,Es.get())};t()}}ks.currentPopupAction=null;
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
const Ss="pendingRedirect",Ms=new Map;class _s extends xs{constructor(t,e,i=!1){super(t,["signInViaRedirect","linkViaRedirect","reauthViaRedirect","unknown"],e,void 0,i),this.eventId=null}async execute(){let t=Ms.get(this.auth._key());if(!t){try{const e=await async function(t,e){const i=function(t){return fo(Ss,t.config.apiKey,t.name)}(e),n=function(t){return uo(t._redirectPersistence)}(t);if(!await n._isAvailable())return!1;const o="true"===await n._get(i);return await n._remove(i),o}(this.resolver,this.auth),i=e?await super.execute():null;t=()=>Promise.resolve(i)}catch(e){t=()=>Promise.reject(e)}Ms.set(this.auth._key(),t)}return this.bypassAuthState||Ms.set(this.auth._key(),(()=>Promise.resolve(null))),t()}async onAuthEvent(t){if("signInViaRedirect"===t.type)return super.onAuthEvent(t);if("unknown"!==t.type){if(t.eventId){const e=await this.auth._redirectUserForId(t.eventId);if(e)return this.user=e,super.onAuthEvent(t);this.resolve(null)}}else this.resolve(null)}async onExecution(){}cleanUp(){}}function Ts(t,e){Ms.set(t._key(),e)}async function Is(t,e,i=!1){if(Ui(t.app))return Promise.reject(An(t));const n=Lo(t),o=
/**
     * @license
     * Copyright 2021 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
function(t,e){return e?uo(e):(On(t._popupRedirectResolver,t,"argument-error"),t._popupRedirectResolver)}(n,e),s=new _s(n,o,i),r=await s.execute();return r&&!i&&(delete r.user._redirectEventId,await n._persistUserIfCurrent(r.user),await n._setRedirectUser(null,e)),r}
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */class Ns{constructor(t){this.auth=t,this.cachedEventUids=new Set,this.consumers=new Set,this.queuedRedirectEvent=null,this.hasHandledPotentialRedirect=!1,this.lastProcessedEventTime=Date.now()}registerConsumer(t){this.consumers.add(t),this.queuedRedirectEvent&&this.isEventForConsumer(this.queuedRedirectEvent,t)&&(this.sendToConsumer(this.queuedRedirectEvent,t),this.saveEventToCache(this.queuedRedirectEvent),this.queuedRedirectEvent=null)}unregisterConsumer(t){this.consumers.delete(t)}onEvent(t){if(this.hasEventBeenHandled(t))return!1;let e=!1;return this.consumers.forEach((i=>{this.isEventForConsumer(t,i)&&(e=!0,this.sendToConsumer(t,i),this.saveEventToCache(t))})),this.hasHandledPotentialRedirect||!function(t){switch(t.type){case"signInViaRedirect":case"linkViaRedirect":case"reauthViaRedirect":return!0;case"unknown":return Ls(t);default:return!1}}
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */(t)||(this.hasHandledPotentialRedirect=!0,e||(this.queuedRedirectEvent=t,e=!0)),e}sendToConsumer(t,e){var i;if(t.error&&!Ls(t)){const n=(null===(i=t.error.code)||void 0===i?void 0:i.split("auth/")[1])||"internal-error";e.onError(In(this.auth,n))}else e.onAuthEvent(t)}isEventForConsumer(t,e){const i=null===e.eventId||!!t.eventId&&t.eventId===e.eventId;return e.filter.includes(t.type)&&i}hasEventBeenHandled(t){return Date.now()-this.lastProcessedEventTime>=6e5&&this.cachedEventUids.clear(),this.cachedEventUids.has(As(t))}saveEventToCache(t){this.cachedEventUids.add(As(t)),this.lastProcessedEventTime=Date.now()}}function As(t){return[t.type,t.eventId,t.sessionId,t.tenantId].filter((t=>t)).join("-")}function Ls({type:t,error:e}){return"unknown"===t&&"auth/no-auth-event"===(null==e?void 0:e.code)}
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
const Os=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,$s=/^https?/;async function Ds(t){if(t.config.emulator)return;const{authorizedDomains:e}=await async function(t,e={}){return Gn(t,"GET","/v1/projects",e)}(t);for(const t of e)try{if(Vs(t))return}catch(t){}Tn(t,"unauthorized-domain")}function Vs(t){const e=Vn(),{protocol:i,hostname:n}=new URL(e);if(t.startsWith("chrome-extension://")){const o=new URL(t);return""===o.hostname&&""===n?"chrome-extension:"===i&&t.replace("chrome-extension://","")===e.replace("chrome-extension://",""):"chrome-extension:"===i&&o.hostname===n}if(!$s.test(i))return!1;if(Os.test(t))return n===t;const o=t.replace(/\./g,"\\.");return new RegExp("^(.+\\."+o+"|"+o+")$","i").test(n)}
/**
     * @license
     * Copyright 2020 Google LLC.
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */const js=new Pn(3e4,6e4);function Fs(){const t=rs().i;if(null==t?void 0:t.H)for(const e of Object.keys(t.H))if(t.H[e].r=t.H[e].r||[],t.H[e].L=t.H[e].L||[],t.H[e].r=[...t.H[e].L],t.CP)for(let e=0;e<t.CP.length;e++)t.CP[e]=null}function Ps(t){return new Promise(((e,i)=>{var n,o,s,r;function a(){Fs(),gapi.load("gapi.iframes",{callback:()=>{e(gapi.iframes.getContext())},ontimeout:()=>{Fs(),i(In(t,"network-request-failed"))},timeout:js.get()})}if(null===(o=null===(n=rs().gapi)||void 0===n?void 0:n.iframes)||void 0===o?void 0:o.Iframe)e(gapi.iframes.getContext());else{if(!(null===(s=rs().gapi)||void 0===s?void 0:s.load)){const e=`__${"iframefcb"}${Math.floor(1e6*Math.random())}`;return rs()[e]=()=>{gapi.load?a():i(In(t,"network-request-failed"))},(r=`${$o.gapiScript}?onload=${e}`,$o.loadJS(r)).catch((t=>i(t)))}a()}})).catch((t=>{throw Rs=null,t}))}let Rs=null;
/**
     * @license
     * Copyright 2020 Google LLC.
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
const Us=new Pn(5e3,15e3),zs={style:{position:"absolute",top:"-100px",width:"1px",height:"1px"},"aria-hidden":"true",tabindex:"-1"},Bs=new Map([["identitytoolkit.googleapis.com","p"],["staging-identitytoolkit.sandbox.googleapis.com","s"],["test-identitytoolkit.sandbox.googleapis.com","t"]]);function Hs(t){const e=t.config;On(e.authDomain,t,"auth-domain-config-required");const i=e.emulator?Rn(e,"emulator/auth/iframe"):`https://${t.config.authDomain}/__/auth/iframe`,n={apiKey:e.apiKey,appName:t.name,v:Hi},o=Bs.get(t.config.apiHost);o&&(n.eid=o);const s=t._getFrameworks();return s.length&&(n.fw=s.join(",")),`${i}?${_e(n).slice(1)}`}async function Ws(t){const e=await function(t){return Rs=Rs||Ps(t),Rs}(t),i=rs().gapi;return On(i,t,"internal-error"),e.open({where:document.body,url:Hs(t),messageHandlersFilter:i.iframes.CROSS_ORIGIN_IFRAMES_FILTER,attributes:zs,dontclear:!0},(e=>new Promise((async(i,n)=>{await e.restyle({setHideOnLeave:!1});const o=In(t,"network-request-failed"),s=rs().setTimeout((()=>{n(o)}),Us.get());function r(){rs().clearTimeout(s),i(e)}e.ping(r).then(r,(()=>{n(o)}))}))))}
/**
     * @license
     * Copyright 2020 Google LLC.
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */const Gs={location:"yes",resizable:"yes",statusbar:"yes",toolbar:"no"};class Ks{constructor(t){this.window=t,this.associatedEvent=null}close(){if(this.window)try{this.window.close()}catch(t){}}}function Zs(t,e,i,n=500,o=600){const s=Math.max((window.screen.availHeight-o)/2,0).toString(),r=Math.max((window.screen.availWidth-n)/2,0).toString();let a="";const l=Object.assign(Object.assign({},Gs),{width:n.toString(),height:o.toString(),top:s,left:r}),c=Ce().toLowerCase();i&&(a=yo(c)?"_blank":i),wo(c)&&(e=e||"http://localhost",l.scrollbars="yes");const d=Object.entries(l).reduce(((t,[e,i])=>`${t}${e}=${i},`),"");if(function(t=Ce()){var e;return So(t)&&!!(null===(e=window.navigator)||void 0===e?void 0:e.standalone)}(c)&&"_self"!==a)return function(t,e){const i=document.createElement("a");i.href=t,i.target=e;const n=document.createEvent("MouseEvent");n.initMouseEvent("click",!0,!0,window,1,0,0,0,0,!1,!1,!1,!1,1,null),i.dispatchEvent(n)}
/**
     * @license
     * Copyright 2021 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */(e||"",a),new Ks(null);const h=window.open(e||"",a,d);On(h,t,"popup-blocked");try{h.focus()}catch(t){}return new Ks(h)}const Js="__/auth/handler",Ys="emulator/auth/handler",qs=encodeURIComponent("fac");async function Qs(t,e,i,n,o,s){On(t.config.authDomain,t,"auth-domain-config-required"),On(t.config.apiKey,t,"invalid-api-key");const r={apiKey:t.config.apiKey,appName:t.name,authType:i,redirectUrl:n,v:Hi,eventId:o};if(e instanceof Uo){e.setDefaultLanguage(t.languageCode),r.providerId=e.providerId||"",function(t){for(const e in t)if(Object.prototype.hasOwnProperty.call(t,e))return!1;return!0}(e.getCustomParameters())||(r.customParameters=JSON.stringify(e.getCustomParameters()));for(const[t,e]of Object.entries({}))r[t]=e}if(e instanceof zo){const t=e.getScopes().filter((t=>""!==t));t.length>0&&(r.scopes=t.join(","))}t.tenantId&&(r.tid=t.tenantId);const a=r;for(const t of Object.keys(a))void 0===a[t]&&delete a[t];const l=await t._getAppCheckToken(),c=l?`#${qs}=${encodeURIComponent(l)}`:"";return`${function({config:t}){if(!t.emulator)return`https://${t.authDomain}/${Js}`;return Rn(t,Ys)}
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */(t)}?${_e(a).slice(1)}${c}`}const Xs="webStorageSupport";const tr=class{constructor(){this.eventManagers={},this.iframes={},this.originValidationPromises={},this._redirectPersistence=is,this._completeRedirectFn=Is,this._overrideRedirectResult=Ts}async _openPopup(t,e,i,n){var o;Dn(null===(o=this.eventManagers[t._key()])||void 0===o?void 0:o.manager,"_initialize() not called before _openPopup()");return Zs(t,await Qs(t,e,i,Vn(),n),os())}async _openRedirect(t,e,i,n){await this._originValidation(t);return function(t){rs().location.href=t}(await Qs(t,e,i,Vn(),n)),new Promise((()=>{}))}_initialize(t){const e=t._key();if(this.eventManagers[e]){const{manager:t,promise:i}=this.eventManagers[e];return t?Promise.resolve(t):(Dn(i,"If manager is not set, promise should be"),i)}const i=this.initAndGetManager(t);return this.eventManagers[e]={promise:i},i.catch((()=>{delete this.eventManagers[e]})),i}async initAndGetManager(t){const e=await Ws(t),i=new Ns(t);return e.register("authEvent",(e=>{On(null==e?void 0:e.authEvent,t,"invalid-auth-event");return{status:i.onEvent(e.authEvent)?"ACK":"ERROR"}}),gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER),this.eventManagers[t._key()]={manager:i},this.iframes[t._key()]=e,i}_isIframeWebStorageSupported(t,e){this.iframes[t._key()].send(Xs,{type:Xs},(i=>{var n;const o=null===(n=null==i?void 0:i[0])||void 0===n?void 0:n[Xs];void 0!==o&&e(!!o),Tn(t,"internal-error")}),gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER)}_originValidation(t){const e=t._key();return this.originValidationPromises[e]||(this.originValidationPromises[e]=Ds(t)),this.originValidationPromises[e]}get _shouldInitProactively(){return _o()||bo()||So()}};var er="@firebase/auth",ir="1.10.0";
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
class nr{constructor(t){this.auth=t,this.internalListeners=new Map}getUid(){var t;return this.assertAuthConfigured(),(null===(t=this.auth.currentUser)||void 0===t?void 0:t.uid)||null}async getToken(t){if(this.assertAuthConfigured(),await this.auth._initializationPromise,!this.auth.currentUser)return null;return{accessToken:await this.auth.currentUser.getIdToken(t)}}addAuthTokenListener(t){if(this.assertAuthConfigured(),this.internalListeners.has(t))return;const e=this.auth.onIdTokenChanged((e=>{t((null==e?void 0:e.stsTokenManager.accessToken)||null)}));this.internalListeners.set(t,e),this.updateProactiveRefresh()}removeAuthTokenListener(t){this.assertAuthConfigured();const e=this.internalListeners.get(t);e&&(this.internalListeners.delete(t),e(),this.updateProactiveRefresh())}assertAuthConfigured(){On(this.auth._initializationPromise,"dependent-sdk-initialized-before-auth")}updateProactiveRefresh(){this.internalListeners.size>0?this.auth._startProactiveRefresh():this.auth._stopProactiveRefresh()}}
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
/**
     * @license
     * Copyright 2021 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
const or=be("authIdTokenMaxAge")||300;let sr=null;function rr(t=Gi()){const e=Ri(t,"auth");if(e.isInitialized())return e.getImmediate();const i=
/**
     * @license
     * Copyright 2020 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
function(t,e){const i=Ri(t,"auth");if(i.isInitialized()){const t=i.getImmediate();if(Se(i.getOptions(),null!=e?e:{}))return t;Tn(t,"already-initialized")}return i.initialize({options:e})}(t,{popupRedirectResolver:tr,persistence:[ms,ts,is]}),n=be("authTokenSyncURL");if(n&&"boolean"==typeof isSecureContext&&isSecureContext){const t=new URL(n,location.origin);if(location.origin===t.origin){const e=(o=t.toString(),async t=>{const e=t&&await t.getIdTokenResult(),i=e&&((new Date).getTime()-Date.parse(e.issuedAtTime))/1e3;if(i&&i>or)return;const n=null==e?void 0:e.token;sr!==n&&(sr=n,await fetch(o,{method:n?"POST":"DELETE",headers:n?{Authorization:`Bearer ${n}`}:{}}))});!function(t,e,i){Ne(t).beforeAuthStateChanged(e,i)}(i,e,(()=>e(i.currentUser))),function(t,e,i,n){Ne(t).onIdTokenChanged(e,i,n)}(i,(t=>e(t)))}}var o;const s=me("auth");return s&&Do(i,`http://${s}`),i}var ar;!function(t){$o=t}({loadJS:t=>new Promise(((e,i)=>{const n=document.createElement("script");var o,s;n.setAttribute("src",t),n.onload=e,n.onerror=t=>{const e=In("internal-error");e.customData=t,i(e)},n.type="text/javascript",n.charset="UTF-8",(null!==(s=null===(o=document.getElementsByTagName("head"))||void 0===o?void 0:o[0])&&void 0!==s?s:document).appendChild(n)})),gapiScript:"https://apis.google.com/js/api.js",recaptchaV2Script:"https://www.google.com/recaptcha/api.js",recaptchaEnterpriseScript:"https://www.google.com/recaptcha/enterprise.js?render="}),ar="Browser",Pi(new Ae("auth",((t,{options:e})=>{const i=t.getProvider("app").getImmediate(),n=t.getProvider("heartbeat"),o=t.getProvider("app-check-internal"),{apiKey:s,authDomain:r}=i.options;On(s&&!s.includes(":"),"invalid-api-key",{appName:i.name});const a={apiKey:s,authDomain:r,clientPlatform:ar,apiHost:"identitytoolkit.googleapis.com",tokenApiHost:"securetoken.googleapis.com",apiScheme:"https",sdkClientVersion:To(ar)},l=new Ao(i,n,o,a);return function(t,e){const i=(null==e?void 0:e.persistence)||[],n=(Array.isArray(i)?i:[i]).map(uo);(null==e?void 0:e.errorMap)&&t._updateErrorMap(e.errorMap),t._initializeWithPersistence(n,null==e?void 0:e.popupRedirectResolver)}(l,e),l}),"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback(((t,e,i)=>{t.getProvider("auth-internal").initialize()}))),Pi(new Ae("auth-internal",(t=>(t=>new nr(t))(Lo(t.getProvider("auth").getImmediate()))),"PRIVATE").setInstantiationMode("EXPLICIT")),Ki(er,ir,function(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}}(ar)),Ki(er,ir,"esm2017");const lr=("undefined"!=typeof globalThis?globalThis:void 0)?.crypto||("undefined"!=typeof global?global:void 0)?.crypto||("undefined"!=typeof window?window:void 0)?.crypto||("undefined"!=typeof self?self:void 0)?.crypto||("undefined"!=typeof frames?frames:void 0)?.[0]?.crypto;let cr;cr=lr?t=>{const e=[];for(let i=0;i<t;i+=4)e.push(lr.getRandomValues(new Uint32Array(1))[0]);return new hr(e,t)}:t=>{const e=[],i=t=>{let e=t,i=987654321;const n=4294967295;return()=>{i=36969*(65535&i)+(i>>16)&n,e=18e3*(65535&e)+(e>>16)&n;let t=(i<<16)+e&n;return t/=4294967296,t+=.5,t*(Math.random()>.5?1:-1)}};for(let n,o=0;o<t;o+=4){const t=i(4294967296*(n||Math.random()));n=987654071*t(),e.push(4294967296*t()|0)}return new hr(e,t)};class dr{static create(...t){return new this(...t)}mixIn(t){return Object.assign(this,t)}clone(){const t=new this.constructor;return Object.assign(t,this),t}}class hr extends dr{constructor(t=[],e=4*t.length){super();let i=t;if(i instanceof ArrayBuffer&&(i=new Uint8Array(i)),(i instanceof Int8Array||i instanceof Uint8ClampedArray||i instanceof Int16Array||i instanceof Uint16Array||i instanceof Int32Array||i instanceof Uint32Array||i instanceof Float32Array||i instanceof Float64Array)&&(i=new Uint8Array(i.buffer,i.byteOffset,i.byteLength)),i instanceof Uint8Array){const t=i.byteLength,e=[];for(let n=0;n<t;n+=1)e[n>>>2]|=i[n]<<24-n%4*8;this.words=e,this.sigBytes=t}else this.words=t,this.sigBytes=e}static random=cr;toString(t=ur){return t.stringify(this)}concat(t){const e=this.words,i=t.words,n=this.sigBytes,o=t.sigBytes;if(this.clamp(),n%4)for(let t=0;t<o;t+=1){const o=i[t>>>2]>>>24-t%4*8&255;e[n+t>>>2]|=o<<24-(n+t)%4*8}else for(let t=0;t<o;t+=4)e[n+t>>>2]=i[t>>>2];return this.sigBytes+=o,this}clamp(){const{words:t,sigBytes:e}=this;t[e>>>2]&=4294967295<<32-e%4*8,t.length=Math.ceil(e/4)}clone(){const t=super.clone.call(this);return t.words=this.words.slice(0),t}}const ur={stringify(t){const{words:e,sigBytes:i}=t,n=[];for(let t=0;t<i;t+=1){const i=e[t>>>2]>>>24-t%4*8&255;n.push((i>>>4).toString(16)),n.push((15&i).toString(16))}return n.join("")},parse(t){const e=t.length,i=[];for(let n=0;n<e;n+=2)i[n>>>3]|=parseInt(t.substr(n,2),16)<<24-n%8*4;return new hr(i,e/2)}},pr={stringify(t){const{words:e,sigBytes:i}=t,n=[];for(let t=0;t<i;t+=1){const i=e[t>>>2]>>>24-t%4*8&255;n.push(String.fromCharCode(i))}return n.join("")},parse(t){const e=t.length,i=[];for(let n=0;n<e;n+=1)i[n>>>2]|=(255&t.charCodeAt(n))<<24-n%4*8;return new hr(i,e)}},vr={stringify(t){try{return decodeURIComponent(escape(pr.stringify(t)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:t=>pr.parse(unescape(encodeURIComponent(t)))};class fr extends dr{constructor(){super(),this._minBufferSize=0}reset(){this._data=new hr,this._nDataBytes=0}_append(t){let e=t;"string"==typeof e&&(e=vr.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes}_process(t){let e;const{_data:i,blockSize:n}=this,o=i.words,s=i.sigBytes;let r=s/(4*n);r=t?Math.ceil(r):Math.max((0|r)-this._minBufferSize,0);const a=r*n,l=Math.min(4*a,s);if(a){for(let t=0;t<a;t+=n)this._doProcessBlock(o,t);e=o.splice(0,a),i.sigBytes-=l}return new hr(e,l)}clone(){const t=super.clone.call(this);return t._data=this._data.clone(),t}}class gr extends fr{constructor(t){super(),this.blockSize=16,this.cfg=Object.assign(new dr,t),this.reset()}static _createHelper(t){return(e,i)=>new t(i).finalize(e)}static _createHmacHelper(t){return(e,i)=>new mr(t,i).finalize(e)}reset(){super.reset.call(this),this._doReset()}update(t){return this._append(t),this._process(),this}finalize(t){t&&this._append(t);return this._doFinalize()}}class mr extends dr{constructor(t,e){super();const i=new t;this._hasher=i;let n=e;"string"==typeof n&&(n=vr.parse(n));const o=i.blockSize,s=4*o;n.sigBytes>s&&(n=i.finalize(e)),n.clamp();const r=n.clone();this._oKey=r;const a=n.clone();this._iKey=a;const l=r.words,c=a.words;for(let t=0;t<o;t+=1)l[t]^=1549556828,c[t]^=909522486;r.sigBytes=s,a.sigBytes=s,this.reset()}reset(){const t=this._hasher;t.reset(),t.update(this._iKey)}update(t){return this._hasher.update(t),this}finalize(t){const e=this._hasher,i=e.finalize(t);e.reset();return e.finalize(this._oKey.clone().concat(i))}}const wr=hr;class br extends dr{constructor(t,e){super(),this.high=t,this.low=e}}class yr extends dr{constructor(t=[],e=8*t.length){super(),this.words=t,this.sigBytes=e}toX32(){const t=this.words,e=t.length,i=[];for(let n=0;n<e;n+=1){const e=t[n];i.push(e.high),i.push(e.low)}return wr.create(i,this.sigBytes)}clone(){const t=super.clone.call(this);t.words=this.words.slice(0);const{words:e}=t,i=e.length;for(let t=0;t<i;t+=1)e[t]=e[t].clone();return t}}const Cr=(t,e,i)=>{const n=[];let o=0;for(let s=0;s<e;s+=1)if(s%4){const e=i[t.charCodeAt(s-1)]<<s%4*2|i[t.charCodeAt(s)]>>>6-s%4*2;n[o>>>2]|=e<<24-o%4*8,o+=1}return hr.create(n,o)},xr={stringify(t){const{words:e,sigBytes:i}=t,n=this._map;t.clamp();const o=[];for(let t=0;t<i;t+=3){const s=(e[t>>>2]>>>24-t%4*8&255)<<16|(e[t+1>>>2]>>>24-(t+1)%4*8&255)<<8|e[t+2>>>2]>>>24-(t+2)%4*8&255;for(let e=0;e<4&&t+.75*e<i;e+=1)o.push(n.charAt(s>>>6*(3-e)&63))}const s=n.charAt(64);if(s)for(;o.length%4;)o.push(s);return o.join("")},parse(t){let e=t.length;const i=this._map;let n=this._reverseMap;if(!n){this._reverseMap=[],n=this._reverseMap;for(let t=0;t<i.length;t+=1)n[i.charCodeAt(t)]=t}const o=i.charAt(64);if(o){const i=t.indexOf(o);-1!==i&&(e=i)}return Cr(t,e,n)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},Er=[];for(let t=0;t<64;t+=1)Er[t]=4294967296*Math.abs(Math.sin(t+1))|0;const kr=(t,e,i,n,o,s,r)=>{const a=t+(e&i|~e&n)+o+r;return(a<<s|a>>>32-s)+e},Sr=(t,e,i,n,o,s,r)=>{const a=t+(e&n|i&~n)+o+r;return(a<<s|a>>>32-s)+e},Mr=(t,e,i,n,o,s,r)=>{const a=t+(e^i^n)+o+r;return(a<<s|a>>>32-s)+e},_r=(t,e,i,n,o,s,r)=>{const a=t+(i^(e|~n))+o+r;return(a<<s|a>>>32-s)+e};class Tr extends gr{_doReset(){this._hash=new hr([1732584193,4023233417,2562383102,271733878])}_doProcessBlock(t,e){const i=t;for(let n=0;n<16;n+=1){const o=e+n,s=t[o];i[o]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8)}const n=this._hash.words,o=i[e+0],s=i[e+1],r=i[e+2],a=i[e+3],l=i[e+4],c=i[e+5],d=i[e+6],h=i[e+7],u=i[e+8],p=i[e+9],v=i[e+10],f=i[e+11],g=i[e+12],m=i[e+13],w=i[e+14],b=i[e+15];let y=n[0],C=n[1],x=n[2],E=n[3];y=kr(y,C,x,E,o,7,Er[0]),E=kr(E,y,C,x,s,12,Er[1]),x=kr(x,E,y,C,r,17,Er[2]),C=kr(C,x,E,y,a,22,Er[3]),y=kr(y,C,x,E,l,7,Er[4]),E=kr(E,y,C,x,c,12,Er[5]),x=kr(x,E,y,C,d,17,Er[6]),C=kr(C,x,E,y,h,22,Er[7]),y=kr(y,C,x,E,u,7,Er[8]),E=kr(E,y,C,x,p,12,Er[9]),x=kr(x,E,y,C,v,17,Er[10]),C=kr(C,x,E,y,f,22,Er[11]),y=kr(y,C,x,E,g,7,Er[12]),E=kr(E,y,C,x,m,12,Er[13]),x=kr(x,E,y,C,w,17,Er[14]),C=kr(C,x,E,y,b,22,Er[15]),y=Sr(y,C,x,E,s,5,Er[16]),E=Sr(E,y,C,x,d,9,Er[17]),x=Sr(x,E,y,C,f,14,Er[18]),C=Sr(C,x,E,y,o,20,Er[19]),y=Sr(y,C,x,E,c,5,Er[20]),E=Sr(E,y,C,x,v,9,Er[21]),x=Sr(x,E,y,C,b,14,Er[22]),C=Sr(C,x,E,y,l,20,Er[23]),y=Sr(y,C,x,E,p,5,Er[24]),E=Sr(E,y,C,x,w,9,Er[25]),x=Sr(x,E,y,C,a,14,Er[26]),C=Sr(C,x,E,y,u,20,Er[27]),y=Sr(y,C,x,E,m,5,Er[28]),E=Sr(E,y,C,x,r,9,Er[29]),x=Sr(x,E,y,C,h,14,Er[30]),C=Sr(C,x,E,y,g,20,Er[31]),y=Mr(y,C,x,E,c,4,Er[32]),E=Mr(E,y,C,x,u,11,Er[33]),x=Mr(x,E,y,C,f,16,Er[34]),C=Mr(C,x,E,y,w,23,Er[35]),y=Mr(y,C,x,E,s,4,Er[36]),E=Mr(E,y,C,x,l,11,Er[37]),x=Mr(x,E,y,C,h,16,Er[38]),C=Mr(C,x,E,y,v,23,Er[39]),y=Mr(y,C,x,E,m,4,Er[40]),E=Mr(E,y,C,x,o,11,Er[41]),x=Mr(x,E,y,C,a,16,Er[42]),C=Mr(C,x,E,y,d,23,Er[43]),y=Mr(y,C,x,E,p,4,Er[44]),E=Mr(E,y,C,x,g,11,Er[45]),x=Mr(x,E,y,C,b,16,Er[46]),C=Mr(C,x,E,y,r,23,Er[47]),y=_r(y,C,x,E,o,6,Er[48]),E=_r(E,y,C,x,h,10,Er[49]),x=_r(x,E,y,C,w,15,Er[50]),C=_r(C,x,E,y,c,21,Er[51]),y=_r(y,C,x,E,g,6,Er[52]),E=_r(E,y,C,x,a,10,Er[53]),x=_r(x,E,y,C,v,15,Er[54]),C=_r(C,x,E,y,s,21,Er[55]),y=_r(y,C,x,E,u,6,Er[56]),E=_r(E,y,C,x,b,10,Er[57]),x=_r(x,E,y,C,d,15,Er[58]),C=_r(C,x,E,y,m,21,Er[59]),y=_r(y,C,x,E,l,6,Er[60]),E=_r(E,y,C,x,f,10,Er[61]),x=_r(x,E,y,C,r,15,Er[62]),C=_r(C,x,E,y,p,21,Er[63]),n[0]=n[0]+y|0,n[1]=n[1]+C|0,n[2]=n[2]+x|0,n[3]=n[3]+E|0}_doFinalize(){const t=this._data,e=t.words,i=8*this._nDataBytes,n=8*t.sigBytes;e[n>>>5]|=128<<24-n%32;const o=Math.floor(i/4294967296),s=i;e[15+(n+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),e[14+(n+64>>>9<<4)]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),t.sigBytes=4*(e.length+1),this._process();const r=this._hash,a=r.words;for(let t=0;t<4;t+=1){const e=a[t];a[t]=16711935&(e<<8|e>>>24)|4278255360&(e<<24|e>>>8)}return r}clone(){const t=super.clone.call(this);return t._hash=this._hash.clone(),t}}const Ir=gr._createHelper(Tr),Nr=gr._createHmacHelper(Tr);class Ar extends dr{constructor(t){super(),this.cfg=Object.assign(new dr,{keySize:4,hasher:Tr,iterations:1},t)}compute(t,e){let i;const{cfg:n}=this,o=n.hasher.create(),s=hr.create(),r=s.words,{keySize:a,iterations:l}=n;for(;r.length<a;){i&&o.update(i),i=o.update(t).finalize(e),o.reset();for(let t=1;t<l;t+=1)i=o.finalize(i),o.reset();s.concat(i)}return s.sigBytes=4*a,s}}class Lr extends fr{constructor(t,e,i){super(),this.cfg=Object.assign(new dr,i),this._xformMode=t,this._key=e,this.reset()}static createEncryptor(t,e){return this.create(this._ENC_XFORM_MODE,t,e)}static createDecryptor(t,e){return this.create(this._DEC_XFORM_MODE,t,e)}static _createHelper(t){const e=t=>"string"==typeof t?Br:Ur;return{encrypt:(i,n,o)=>e(n).encrypt(t,i,n,o),decrypt:(i,n,o)=>e(n).decrypt(t,i,n,o)}}reset(){super.reset.call(this),this._doReset()}process(t){return this._append(t),this._process()}finalize(t){t&&this._append(t);return this._doFinalize()}}Lr._ENC_XFORM_MODE=1,Lr._DEC_XFORM_MODE=2,Lr.keySize=4,Lr.ivSize=4;class Or extends Lr{constructor(...t){super(...t),this.blockSize=1}_doFinalize(){return this._process(!0)}}class $r extends dr{constructor(t,e){super(),this._cipher=t,this._iv=e}static createEncryptor(t,e){return this.Encryptor.create(t,e)}static createDecryptor(t,e){return this.Decryptor.create(t,e)}}function Dr(t,e,i){const n=t;let o;const s=this._iv;s?(o=s,this._iv=void 0):o=this._prevBlock;for(let t=0;t<i;t+=1)n[e+t]^=o[t]}class Vr extends $r{}Vr.Encryptor=class extends Vr{processBlock(t,e){const i=this._cipher,{blockSize:n}=i;Dr.call(this,t,e,n),i.encryptBlock(t,e),this._prevBlock=t.slice(e,e+n)}},Vr.Decryptor=class extends Vr{processBlock(t,e){const i=this._cipher,{blockSize:n}=i,o=t.slice(e,e+n);i.decryptBlock(t,e),Dr.call(this,t,e,n),this._prevBlock=o}};const jr={pad(t,e){const i=4*e,n=i-t.sigBytes%i,o=n<<24|n<<16|n<<8|n,s=[];for(let t=0;t<n;t+=4)s.push(o);const r=hr.create(s,n);t.concat(r)},unpad(t){const e=t,i=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=i}};class Fr extends Lr{constructor(t,e,i){super(t,e,Object.assign({mode:Vr,padding:jr},i)),this.blockSize=4}reset(){let t;super.reset.call(this);const{cfg:e}=this,{iv:i,mode:n}=e;this._xformMode===this.constructor._ENC_XFORM_MODE?t=n.createEncryptor:(t=n.createDecryptor,this._minBufferSize=1),this._mode=t.call(n,this,i&&i.words),this._mode.u=t}_doProcessBlock(t,e){this._mode.processBlock(t,e)}_doFinalize(){let t;const{padding:e}=this.cfg;return this._xformMode===this.constructor._ENC_XFORM_MODE?(e.pad(this._data,this.blockSize),t=this._process(!0)):(t=this._process(!0),e.unpad(t)),t}}class Pr extends dr{constructor(t){super(),this.mixIn(t)}toString(t){return(t||this.formatter).stringify(this)}}const Rr={stringify(t){let e;const{ciphertext:i,salt:n}=t;return e=n?hr.create([1398893684,1701076831]).concat(n).concat(i):i,e.toString(xr)},parse(t){let e;const i=xr.parse(t),n=i.words;return 1398893684===n[0]&&1701076831===n[1]&&(e=hr.create(n.slice(2,4)),n.splice(0,4),i.sigBytes-=16),Pr.create({ciphertext:i,salt:e})}};class Ur extends dr{static encrypt(t,e,i,n){const o=Object.assign(new dr,this.cfg,n),s=t.createEncryptor(i,o),r=s.finalize(e),a=s.cfg;return Pr.create({ciphertext:r,key:i,iv:a.iv,algorithm:t,mode:a.mode,padding:a.padding,blockSize:s.blockSize,formatter:o.format})}static decrypt(t,e,i,n){let o=e;const s=Object.assign(new dr,this.cfg,n);o=this._parse(o,s.format);return t.createDecryptor(i,s).finalize(o.ciphertext)}static _parse(t,e){return"string"==typeof t?e.parse(t,this):t}}Ur.cfg=Object.assign(new dr,{format:Rr});const zr={execute(t,e,i,n,o){let s,r=n;r||(r=hr.random(8)),s=o?Ar.create({keySize:e+i,hasher:o}).compute(t,r):Ar.create({keySize:e+i}).compute(t,r);const a=hr.create(s.words.slice(e),4*i);return s.sigBytes=4*e,Pr.create({key:s,iv:a,salt:r})}};class Br extends Ur{static encrypt(t,e,i,n){const o=Object.assign(new dr,this.cfg,n),s=o.kdf.execute(i,t.keySize,t.ivSize,o.salt,o.hasher);o.iv=s.iv;const r=Ur.encrypt.call(this,t,e,s.key,o);return r.mixIn(s),r}static decrypt(t,e,i,n){let o=e;const s=Object.assign(new dr,this.cfg,n);o=this._parse(o,s.format);const r=s.kdf.execute(i,t.keySize,t.ivSize,o.salt,s.hasher);s.iv=r.iv;return Ur.decrypt.call(this,t,o,r.key,s)}}Br.cfg=Object.assign(Ur.cfg,{kdf:zr});const Hr=t=>t<<8&4278255360|t>>>8&16711935,Wr={stringify(t){const{words:e,sigBytes:i}=t,n=[];for(let t=0;t<i;t+=2){const i=e[t>>>2]>>>16-t%4*8&65535;n.push(String.fromCharCode(i))}return n.join("")},parse(t){const e=t.length,i=[];for(let n=0;n<e;n+=1)i[n>>>1]|=t.charCodeAt(n)<<16-n%2*16;return hr.create(i,2*e)}},Gr=Wr,Kr={stringify(t){const{words:e,sigBytes:i}=t,n=[];for(let t=0;t<i;t+=2){const i=Hr(e[t>>>2]>>>16-t%4*8&65535);n.push(String.fromCharCode(i))}return n.join("")},parse(t){const e=t.length,i=[];for(let n=0;n<e;n+=1)i[n>>>1]|=Hr(t.charCodeAt(n)<<16-n%2*16);return hr.create(i,2*e)}},Zr={stringify(t,e=!0){const{words:i,sigBytes:n}=t,o=e?this._safeMap:this._map;t.clamp();const s=[];for(let t=0;t<n;t+=3){const e=(i[t>>>2]>>>24-t%4*8&255)<<16|(i[t+1>>>2]>>>24-(t+1)%4*8&255)<<8|i[t+2>>>2]>>>24-(t+2)%4*8&255;for(let i=0;i<4&&t+.75*i<n;i+=1)s.push(o.charAt(e>>>6*(3-i)&63))}const r=o.charAt(64);if(r)for(;s.length%4;)s.push(r);return s.join("")},parse(t,e=!0){let i=t.length;const n=e?this._safeMap:this._map;let o=this._reverseMap;if(!o){this._reverseMap=[],o=this._reverseMap;for(let t=0;t<n.length;t+=1)o[n.charCodeAt(t)]=t}const s=n.charAt(64);if(s){const e=t.indexOf(s);-1!==e&&(i=e)}return Cr(t,i,o)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_safeMap:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"},Jr=[];class Yr extends gr{_doReset(){this._hash=new hr([1732584193,4023233417,2562383102,271733878,3285377520])}_doProcessBlock(t,e){const i=this._hash.words;let n=i[0],o=i[1],s=i[2],r=i[3],a=i[4];for(let i=0;i<80;i+=1){if(i<16)Jr[i]=0|t[e+i];else{const t=Jr[i-3]^Jr[i-8]^Jr[i-14]^Jr[i-16];Jr[i]=t<<1|t>>>31}let l=(n<<5|n>>>27)+a+Jr[i];l+=i<20?1518500249+(o&s|~o&r):i<40?1859775393+(o^s^r):i<60?(o&s|o&r|s&r)-1894007588:(o^s^r)-899497514,a=r,r=s,s=o<<30|o>>>2,o=n,n=l}i[0]=i[0]+n|0,i[1]=i[1]+o|0,i[2]=i[2]+s|0,i[3]=i[3]+r|0,i[4]=i[4]+a|0}_doFinalize(){const t=this._data,e=t.words,i=8*this._nDataBytes,n=8*t.sigBytes;return e[n>>>5]|=128<<24-n%32,e[14+(n+64>>>9<<4)]=Math.floor(i/4294967296),e[15+(n+64>>>9<<4)]=i,t.sigBytes=4*e.length,this._process(),this._hash}clone(){const t=super.clone.call(this);return t._hash=this._hash.clone(),t}}const qr=gr._createHelper(Yr),Qr=gr._createHmacHelper(Yr),Xr=[],ta=[],ea=t=>{const e=Math.sqrt(t);for(let i=2;i<=e;i+=1)if(!(t%i))return!1;return!0},ia=t=>4294967296*(t-(0|t))|0;let na=2,oa=0;for(;oa<64;)ea(na)&&(oa<8&&(Xr[oa]=ia(na**.5)),ta[oa]=ia(na**(1/3)),oa+=1),na+=1;const sa=[];class ra extends gr{_doReset(){this._hash=new hr(Xr.slice(0))}_doProcessBlock(t,e){const i=this._hash.words;let n=i[0],o=i[1],s=i[2],r=i[3],a=i[4],l=i[5],c=i[6],d=i[7];for(let i=0;i<64;i+=1){if(i<16)sa[i]=0|t[e+i];else{const t=sa[i-15],e=(t<<25|t>>>7)^(t<<14|t>>>18)^t>>>3,n=sa[i-2],o=(n<<15|n>>>17)^(n<<13|n>>>19)^n>>>10;sa[i]=e+sa[i-7]+o+sa[i-16]}const h=n&o^n&s^o&s,u=(n<<30|n>>>2)^(n<<19|n>>>13)^(n<<10|n>>>22),p=d+((a<<26|a>>>6)^(a<<21|a>>>11)^(a<<7|a>>>25))+(a&l^~a&c)+ta[i]+sa[i];d=c,c=l,l=a,a=r+p|0,r=s,s=o,o=n,n=p+(u+h)|0}i[0]=i[0]+n|0,i[1]=i[1]+o|0,i[2]=i[2]+s|0,i[3]=i[3]+r|0,i[4]=i[4]+a|0,i[5]=i[5]+l|0,i[6]=i[6]+c|0,i[7]=i[7]+d|0}_doFinalize(){const t=this._data,e=t.words,i=8*this._nDataBytes,n=8*t.sigBytes;return e[n>>>5]|=128<<24-n%32,e[14+(n+64>>>9<<4)]=Math.floor(i/4294967296),e[15+(n+64>>>9<<4)]=i,t.sigBytes=4*e.length,this._process(),this._hash}clone(){const t=super.clone.call(this);return t._hash=this._hash.clone(),t}}const aa=gr._createHelper(ra),la=gr._createHmacHelper(ra);class ca extends ra{_doReset(){this._hash=new hr([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])}_doFinalize(){const t=super._doFinalize.call(this);return t.sigBytes-=4,t}}const da=ra._createHelper(ca),ha=ra._createHmacHelper(ca),ua=[new br(1116352408,3609767458),new br(1899447441,602891725),new br(3049323471,3964484399),new br(3921009573,2173295548),new br(961987163,4081628472),new br(1508970993,3053834265),new br(2453635748,2937671579),new br(2870763221,3664609560),new br(3624381080,2734883394),new br(310598401,1164996542),new br(607225278,1323610764),new br(1426881987,3590304994),new br(1925078388,4068182383),new br(2162078206,991336113),new br(2614888103,633803317),new br(3248222580,3479774868),new br(3835390401,2666613458),new br(4022224774,944711139),new br(264347078,2341262773),new br(604807628,2007800933),new br(770255983,1495990901),new br(1249150122,1856431235),new br(1555081692,3175218132),new br(1996064986,2198950837),new br(2554220882,3999719339),new br(2821834349,766784016),new br(2952996808,2566594879),new br(3210313671,3203337956),new br(3336571891,1034457026),new br(3584528711,2466948901),new br(113926993,3758326383),new br(338241895,168717936),new br(666307205,1188179964),new br(773529912,1546045734),new br(1294757372,1522805485),new br(1396182291,2643833823),new br(1695183700,2343527390),new br(1986661051,1014477480),new br(2177026350,1206759142),new br(2456956037,344077627),new br(2730485921,1290863460),new br(2820302411,3158454273),new br(3259730800,3505952657),new br(3345764771,106217008),new br(3516065817,3606008344),new br(3600352804,1432725776),new br(4094571909,1467031594),new br(275423344,851169720),new br(430227734,3100823752),new br(506948616,1363258195),new br(659060556,3750685593),new br(883997877,3785050280),new br(958139571,3318307427),new br(1322822218,3812723403),new br(1537002063,2003034995),new br(1747873779,3602036899),new br(1955562222,1575990012),new br(2024104815,1125592928),new br(2227730452,2716904306),new br(2361852424,442776044),new br(2428436474,593698344),new br(2756734187,3733110249),new br(3204031479,2999351573),new br(3329325298,3815920427),new br(3391569614,3928383900),new br(3515267271,566280711),new br(3940187606,3454069534),new br(4118630271,4000239992),new br(116418474,1914138554),new br(174292421,2731055270),new br(289380356,3203993006),new br(460393269,320620315),new br(685471733,587496836),new br(852142971,1086792851),new br(1017036298,365543100),new br(1126000580,2618297676),new br(1288033470,3409855158),new br(1501505948,4234509866),new br(1607167915,987167468),new br(1816402316,1246189591)],pa=[];for(let t=0;t<80;t+=1)pa[t]=new br;class va extends gr{constructor(){super(),this.blockSize=32}_doReset(){this._hash=new yr([new br(1779033703,4089235720),new br(3144134277,2227873595),new br(1013904242,4271175723),new br(2773480762,1595750129),new br(1359893119,2917565137),new br(2600822924,725511199),new br(528734635,4215389547),new br(1541459225,327033209)])}_doProcessBlock(t,e){const i=this._hash.words,n=i[0],o=i[1],s=i[2],r=i[3],a=i[4],l=i[5],c=i[6],d=i[7],h=n.high;let u=n.low;const p=o.high;let v=o.low;const f=s.high;let g=s.low;const m=r.high;let w=r.low;const b=a.high;let y=a.low;const C=l.high;let x=l.low;const E=c.high;let k=c.low;const S=d.high;let M=d.low,_=h,T=u,I=p,N=v,A=f,L=g,O=m,$=w,D=b,V=y,j=C,F=x,P=E,R=k,U=S,z=M;for(let i=0;i<80;i+=1){let n,o;const s=pa[i];if(i<16)s.high=0|t[e+2*i],o=s.high,s.low=0|t[e+2*i+1],n=s.low;else{const t=pa[i-15],e=t.high,r=t.low,a=(e>>>1|r<<31)^(e>>>8|r<<24)^e>>>7,l=(r>>>1|e<<31)^(r>>>8|e<<24)^(r>>>7|e<<25),c=pa[i-2],d=c.high,h=c.low,u=(d>>>19|h<<13)^(d<<3|h>>>29)^d>>>6,p=(h>>>19|d<<13)^(h<<3|d>>>29)^(h>>>6|d<<26),v=pa[i-7],f=v.high,g=v.low,m=pa[i-16],w=m.high,b=m.low;n=l+g,o=a+f+(n>>>0<l>>>0?1:0),n+=p,o=o+u+(n>>>0<p>>>0?1:0),n+=b,o=o+w+(n>>>0<b>>>0?1:0),s.high=o,s.low=n}const r=D&j^~D&P,a=V&F^~V&R,l=_&I^_&A^I&A,c=T&N^T&L^N&L,d=(_>>>28|T<<4)^(_<<30|T>>>2)^(_<<25|T>>>7),h=(T>>>28|_<<4)^(T<<30|_>>>2)^(T<<25|_>>>7),u=(D>>>14|V<<18)^(D>>>18|V<<14)^(D<<23|V>>>9),p=(V>>>14|D<<18)^(V>>>18|D<<14)^(V<<23|D>>>9),v=ua[i],f=v.high,g=v.low;let m=z+p,w=U+u+(m>>>0<z>>>0?1:0);m+=a,w=w+r+(m>>>0<a>>>0?1:0),m+=g,w=w+f+(m>>>0<g>>>0?1:0),m+=n,w=w+o+(m>>>0<n>>>0?1:0);const b=h+c;U=P,z=R,P=j,R=F,j=D,F=V,V=$+m|0,D=O+w+(V>>>0<$>>>0?1:0)|0,O=A,$=L,A=I,L=N,I=_,N=T,T=m+b|0,_=w+(d+l+(b>>>0<h>>>0?1:0))+(T>>>0<m>>>0?1:0)|0}n.low=u+T,u=n.low,n.high=h+_+(u>>>0<T>>>0?1:0),o.low=v+N,v=o.low,o.high=p+I+(v>>>0<N>>>0?1:0),s.low=g+L,g=s.low,s.high=f+A+(g>>>0<L>>>0?1:0),r.low=w+$,w=r.low,r.high=m+O+(w>>>0<$>>>0?1:0),a.low=y+V,y=a.low,a.high=b+D+(y>>>0<V>>>0?1:0),l.low=x+F,x=l.low,l.high=C+j+(x>>>0<F>>>0?1:0),c.low=k+R,k=c.low,c.high=E+P+(k>>>0<R>>>0?1:0),d.low=M+z,M=d.low,d.high=S+U+(M>>>0<z>>>0?1:0)}_doFinalize(){const t=this._data,e=t.words,i=8*this._nDataBytes,n=8*t.sigBytes;e[n>>>5]|=128<<24-n%32,e[30+(n+128>>>10<<5)]=Math.floor(i/4294967296),e[31+(n+128>>>10<<5)]=i,t.sigBytes=4*e.length,this._process();return this._hash.toX32()}clone(){const t=super.clone.call(this);return t._hash=this._hash.clone(),t}}const fa=gr._createHelper(va),ga=gr._createHmacHelper(va);class ma extends va{_doReset(){this._hash=new yr([new br(3418070365,3238371032),new br(1654270250,914150663),new br(2438529370,812702999),new br(355462360,4144912697),new br(1731405415,4290775857),new br(2394180231,1750603025),new br(3675008525,1694076839),new br(1203062813,3204075428)])}_doFinalize(){const t=super._doFinalize.call(this);return t.sigBytes-=16,t}}const wa=va._createHelper(ma),ba=va._createHmacHelper(ma),ya=[],Ca=[],xa=[];let Ea=1,ka=0;for(let t=0;t<24;t+=1){ya[Ea+5*ka]=(t+1)*(t+2)/2%64;const e=(2*Ea+3*ka)%5;Ea=ka%5,ka=e}for(let t=0;t<5;t+=1)for(let e=0;e<5;e+=1)Ca[t+5*e]=e+(2*t+3*e)%5*5;let Sa=1;for(let t=0;t<24;t+=1){let e=0,i=0;for(let t=0;t<7;t+=1){if(1&Sa){const n=(1<<t)-1;n<32?i^=1<<n:e^=1<<n-32}128&Sa?Sa=Sa<<1^113:Sa<<=1}xa[t]=br.create(e,i)}const Ma=[];for(let t=0;t<25;t+=1)Ma[t]=br.create();class _a extends gr{constructor(t){super(Object.assign({outputLength:512},t))}_doReset(){this._state=[];const t=this._state;for(let e=0;e<25;e+=1)t[e]=new br;this.blockSize=(1600-2*this.cfg.outputLength)/32}_doProcessBlock(t,e){const i=this._state,n=this.blockSize/2;for(let o=0;o<n;o+=1){let n=t[e+2*o],s=t[e+2*o+1];n=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8),s=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8);const r=i[o];r.high^=s,r.low^=n}for(let t=0;t<24;t+=1){for(let t=0;t<5;t+=1){let e=0,n=0;for(let o=0;o<5;o+=1){const s=i[t+5*o];e^=s.high,n^=s.low}const o=Ma[t];o.high=e,o.low=n}for(let t=0;t<5;t+=1){const e=Ma[(t+4)%5],n=Ma[(t+1)%5],o=n.high,s=n.low,r=e.high^(o<<1|s>>>31),a=e.low^(s<<1|o>>>31);for(let e=0;e<5;e+=1){const n=i[t+5*e];n.high^=r,n.low^=a}}for(let t=1;t<25;t+=1){let e,n;const o=i[t],s=o.high,r=o.low,a=ya[t];a<32?(e=s<<a|r>>>32-a,n=r<<a|s>>>32-a):(e=r<<a-32|s>>>64-a,n=s<<a-32|r>>>64-a);const l=Ma[Ca[t]];l.high=e,l.low=n}const e=Ma[0],n=i[0];e.high=n.high,e.low=n.low;for(let t=0;t<5;t+=1)for(let e=0;e<5;e+=1){const n=t+5*e,o=i[n],s=Ma[n],r=Ma[(t+1)%5+5*e],a=Ma[(t+2)%5+5*e];o.high=s.high^~r.high&a.high,o.low=s.low^~r.low&a.low}const o=i[0],s=xa[t];o.high^=s.high,o.low^=s.low}}_doFinalize(){const t=this._data,e=t.words,i=8*t.sigBytes,n=32*this.blockSize;e[i>>>5]|=1<<24-i%32,e[(Math.ceil((i+1)/n)*n>>>5)-1]|=128,t.sigBytes=4*e.length,this._process();const o=this._state,s=this.cfg.outputLength/8,r=s/8,a=[];for(let t=0;t<r;t+=1){const e=o[t];let i=e.high,n=e.low;i=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8),n=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8),a.push(n),a.push(i)}return new hr(a,s)}clone(){const t=super.clone.call(this);t._state=this._state.slice(0);const e=t._state;for(let t=0;t<25;t+=1)e[t]=e[t].clone();return t}}const Ta=gr._createHelper(_a),Ia=gr._createHmacHelper(_a),Na=hr.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),Aa=hr.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),La=hr.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),Oa=hr.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),$a=hr.create([0,1518500249,1859775393,2400959708,2840853838]),Da=hr.create([1352829926,1548603684,1836072691,2053994217,0]),Va=(t,e,i)=>t^e^i,ja=(t,e,i)=>t&e|~t&i,Fa=(t,e,i)=>(t|~e)^i,Pa=(t,e,i)=>t&i|e&~i,Ra=(t,e,i)=>t^(e|~i),Ua=(t,e)=>t<<e|t>>>32-e;class za extends gr{_doReset(){this._hash=hr.create([1732584193,4023233417,2562383102,271733878,3285377520])}_doProcessBlock(t,e){const i=t;for(let t=0;t<16;t+=1){const n=e+t,o=i[n];i[n]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8)}const n=this._hash.words,o=$a.words,s=Da.words,r=Na.words,a=Aa.words,l=La.words,c=Oa.words;let d,h=n[0],u=n[1],p=n[2],v=n[3],f=n[4],g=n[0],m=n[1],w=n[2],b=n[3],y=n[4];for(let t=0;t<80;t+=1)d=h+i[e+r[t]]|0,d+=t<16?Va(u,p,v)+o[0]:t<32?ja(u,p,v)+o[1]:t<48?Fa(u,p,v)+o[2]:t<64?Pa(u,p,v)+o[3]:Ra(u,p,v)+o[4],d|=0,d=Ua(d,l[t]),d=d+f|0,h=f,f=v,v=Ua(p,10),p=u,u=d,d=g+i[e+a[t]]|0,d+=t<16?Ra(m,w,b)+s[0]:t<32?Pa(m,w,b)+s[1]:t<48?Fa(m,w,b)+s[2]:t<64?ja(m,w,b)+s[3]:Va(m,w,b)+s[4],d|=0,d=Ua(d,c[t]),d=d+y|0,g=y,y=b,b=Ua(w,10),w=m,m=d;d=n[1]+p+b|0,n[1]=n[2]+v+y|0,n[2]=n[3]+f+g|0,n[3]=n[4]+h+m|0,n[4]=n[0]+u+w|0,n[0]=d}_doFinalize(){const t=this._data,e=t.words,i=8*this._nDataBytes,n=8*t.sigBytes;e[n>>>5]|=128<<24-n%32,e[14+(n+64>>>9<<4)]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8),t.sigBytes=4*(e.length+1),this._process();const o=this._hash,s=o.words;for(let t=0;t<5;t+=1){const e=s[t];s[t]=16711935&(e<<8|e>>>24)|4278255360&(e<<24|e>>>8)}return o}clone(){const t=super.clone.call(this);return t._hash=this._hash.clone(),t}}const Ba=gr._createHelper(za),Ha=gr._createHmacHelper(za);class Wa extends dr{constructor(t){super(),this.cfg=Object.assign(new dr,{keySize:4,hasher:ra,iterations:25e4},t)}compute(t,e){const{cfg:i}=this,n=mr.create(i.hasher,t),o=hr.create(),s=hr.create([1]),r=o.words,a=s.words,{keySize:l,iterations:c}=i;for(;r.length<l;){const t=n.update(e).finalize(s);n.reset();const i=t.words,r=i.length;let l=t;for(let t=1;t<c;t+=1){l=n.finalize(l),n.reset();const t=l.words;for(let e=0;e<r;e+=1)i[e]^=t[e]}o.concat(t),a[0]+=1}return o.sigBytes=4*l,o}}const Ga=[],Ka=[],Za=[],Ja=[],Ya=[],qa=[],Qa=[],Xa=[],tl=[],el=[],il=[];for(let t=0;t<256;t+=1)il[t]=t<128?t<<1:t<<1^283;let nl=0,ol=0;for(let t=0;t<256;t+=1){let t=ol^ol<<1^ol<<2^ol<<3^ol<<4;t=t>>>8^255&t^99,Ga[nl]=t,Ka[t]=nl;const e=il[nl],i=il[e],n=il[i];let o=257*il[t]^16843008*t;Za[nl]=o<<24|o>>>8,Ja[nl]=o<<16|o>>>16,Ya[nl]=o<<8|o>>>24,qa[nl]=o,o=16843009*n^65537*i^257*e^16843008*nl,Qa[t]=o<<24|o>>>8,Xa[t]=o<<16|o>>>16,tl[t]=o<<8|o>>>24,el[t]=o,nl?(nl=e^il[il[il[n^e]]],ol^=il[il[ol]]):(ol=1,nl=ol)}const sl=[0,1,2,4,8,16,32,64,128,27,54];class rl extends Fr{_doReset(){let t;if(this._nRounds&&this._keyPriorReset===this._key)return;this._keyPriorReset=this._key;const e=this._keyPriorReset,i=e.words,n=e.sigBytes/4;this._nRounds=n+6;const o=4*(this._nRounds+1);this._keySchedule=[];const s=this._keySchedule;for(let e=0;e<o;e+=1)e<n?s[e]=i[e]:(t=s[e-1],e%n?n>6&&e%n==4&&(t=Ga[t>>>24]<<24|Ga[t>>>16&255]<<16|Ga[t>>>8&255]<<8|Ga[255&t]):(t=t<<8|t>>>24,t=Ga[t>>>24]<<24|Ga[t>>>16&255]<<16|Ga[t>>>8&255]<<8|Ga[255&t],t^=sl[e/n|0]<<24),s[e]=s[e-n]^t);this._invKeySchedule=[];const r=this._invKeySchedule;for(let e=0;e<o;e+=1){const i=o-e;t=e%4?s[i]:s[i-4],r[e]=e<4||i<=4?t:Qa[Ga[t>>>24]]^Xa[Ga[t>>>16&255]]^tl[Ga[t>>>8&255]]^el[Ga[255&t]]}}encryptBlock(t,e){this._doCryptBlock(t,e,this._keySchedule,Za,Ja,Ya,qa,Ga)}decryptBlock(t,e){const i=t;let n=i[e+1];i[e+1]=i[e+3],i[e+3]=n,this._doCryptBlock(i,e,this._invKeySchedule,Qa,Xa,tl,el,Ka),n=i[e+1],i[e+1]=i[e+3],i[e+3]=n}_doCryptBlock(t,e,i,n,o,s,r,a){const l=t,c=this._nRounds;let d=l[e]^i[0],h=l[e+1]^i[1],u=l[e+2]^i[2],p=l[e+3]^i[3],v=4;for(let t=1;t<c;t+=1){const t=n[d>>>24]^o[h>>>16&255]^s[u>>>8&255]^r[255&p]^i[v];v+=1;const e=n[h>>>24]^o[u>>>16&255]^s[p>>>8&255]^r[255&d]^i[v];v+=1;const a=n[u>>>24]^o[p>>>16&255]^s[d>>>8&255]^r[255&h]^i[v];v+=1;const l=n[p>>>24]^o[d>>>16&255]^s[h>>>8&255]^r[255&u]^i[v];v+=1,d=t,h=e,u=a,p=l}const f=(a[d>>>24]<<24|a[h>>>16&255]<<16|a[u>>>8&255]<<8|a[255&p])^i[v];v+=1;const g=(a[h>>>24]<<24|a[u>>>16&255]<<16|a[p>>>8&255]<<8|a[255&d])^i[v];v+=1;const m=(a[u>>>24]<<24|a[p>>>16&255]<<16|a[d>>>8&255]<<8|a[255&h])^i[v];v+=1;const w=(a[p>>>24]<<24|a[d>>>16&255]<<16|a[h>>>8&255]<<8|a[255&u])^i[v];v+=1,l[e]=f,l[e+1]=g,l[e+2]=m,l[e+3]=w}}rl.keySize=8;const al=Fr._createHelper(rl),ll=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],cl=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],dl=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],hl=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],ul=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679];function pl(t,e){const i=(this._lBlock>>>t^this._rBlock)&e;this._rBlock^=i,this._lBlock^=i<<t}function vl(t,e){const i=(this._rBlock>>>t^this._lBlock)&e;this._lBlock^=i,this._rBlock^=i<<t}class fl extends Fr{constructor(t,e,i){super(t,e,i),this.blockSize=2}_doReset(){const t=this._key.words,e=[];for(let i=0;i<56;i+=1){const n=ll[i]-1;e[i]=t[n>>>5]>>>31-n%32&1}this._subKeys=[];const i=this._subKeys;for(let t=0;t<16;t+=1){i[t]=[];const n=i[t],o=dl[t];for(let t=0;t<24;t+=1)n[t/6|0]|=e[(cl[t]-1+o)%28]<<31-t%6,n[4+(t/6|0)]|=e[28+(cl[t+24]-1+o)%28]<<31-t%6;n[0]=n[0]<<1|n[0]>>>31;for(let t=1;t<7;t+=1)n[t]>>>=4*(t-1)+3;n[7]=n[7]<<5|n[7]>>>27}this._invSubKeys=[];const n=this._invSubKeys;for(let t=0;t<16;t+=1)n[t]=i[15-t]}encryptBlock(t,e){this._doCryptBlock(t,e,this._subKeys)}decryptBlock(t,e){this._doCryptBlock(t,e,this._invSubKeys)}_doCryptBlock(t,e,i){const n=t;this._lBlock=t[e],this._rBlock=t[e+1],pl.call(this,4,252645135),pl.call(this,16,65535),vl.call(this,2,858993459),vl.call(this,8,16711935),pl.call(this,1,1431655765);for(let t=0;t<16;t+=1){const e=i[t],n=this._lBlock,o=this._rBlock;let s=0;for(let t=0;t<8;t+=1)s|=hl[t][((o^e[t])&ul[t])>>>0];this._lBlock=o,this._rBlock=n^s}const o=this._lBlock;this._lBlock=this._rBlock,this._rBlock=o,pl.call(this,1,1431655765),vl.call(this,8,16711935),vl.call(this,2,858993459),pl.call(this,16,65535),pl.call(this,4,252645135),n[e]=this._lBlock,n[e+1]=this._rBlock}}fl.keySize=2,fl.ivSize=2;const gl=Fr._createHelper(fl);class ml extends Fr{_doReset(){const t=this._key.words;if(2!==t.length&&4!==t.length&&t.length<6)throw new Error("Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.");const e=t.slice(0,2),i=t.length<4?t.slice(0,2):t.slice(2,4),n=t.length<6?t.slice(0,2):t.slice(4,6);this._des1=fl.createEncryptor(hr.create(e)),this._des2=fl.createEncryptor(hr.create(i)),this._des3=fl.createEncryptor(hr.create(n))}encryptBlock(t,e){this._des1.encryptBlock(t,e),this._des2.decryptBlock(t,e),this._des3.encryptBlock(t,e)}decryptBlock(t,e){this._des3.decryptBlock(t,e),this._des2.encryptBlock(t,e),this._des1.decryptBlock(t,e)}}ml.keySize=6,ml.ivSize=2;const wl=Fr._createHelper(ml),bl=[],yl=[],Cl=[];function xl(){const t=this._X,e=this._C;for(let t=0;t<8;t+=1)yl[t]=e[t];e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0<yl[0]>>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0<yl[1]>>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0<yl[2]>>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0<yl[3]>>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0<yl[4]>>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0<yl[5]>>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0<yl[6]>>>0?1:0)|0,this._b=e[7]>>>0<yl[7]>>>0?1:0;for(let i=0;i<8;i+=1){const n=t[i]+e[i],o=65535&n,s=n>>>16,r=((o*o>>>17)+o*s>>>15)+s*s,a=((4294901760&n)*n|0)+((65535&n)*n|0);Cl[i]=r^a}t[0]=Cl[0]+(Cl[7]<<16|Cl[7]>>>16)+(Cl[6]<<16|Cl[6]>>>16)|0,t[1]=Cl[1]+(Cl[0]<<8|Cl[0]>>>24)+Cl[7]|0,t[2]=Cl[2]+(Cl[1]<<16|Cl[1]>>>16)+(Cl[0]<<16|Cl[0]>>>16)|0,t[3]=Cl[3]+(Cl[2]<<8|Cl[2]>>>24)+Cl[1]|0,t[4]=Cl[4]+(Cl[3]<<16|Cl[3]>>>16)+(Cl[2]<<16|Cl[2]>>>16)|0,t[5]=Cl[5]+(Cl[4]<<8|Cl[4]>>>24)+Cl[3]|0,t[6]=Cl[6]+(Cl[5]<<16|Cl[5]>>>16)+(Cl[4]<<16|Cl[4]>>>16)|0,t[7]=Cl[7]+(Cl[6]<<8|Cl[6]>>>24)+Cl[5]|0}class El extends Or{constructor(...t){super(...t),this.blockSize=4,this.ivSize=2}_doReset(){const t=this._key.words,{iv:e}=this.cfg;for(let e=0;e<4;e+=1)t[e]=16711935&(t[e]<<8|t[e]>>>24)|4278255360&(t[e]<<24|t[e]>>>8);this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16];const i=this._X;this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];const n=this._C;this._b=0;for(let t=0;t<4;t+=1)xl.call(this);for(let t=0;t<8;t+=1)n[t]^=i[t+4&7];if(e){const t=e.words,i=t[0],o=t[1],s=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8),r=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),a=s>>>16|4294901760&r,l=r<<16|65535&s;n[0]^=s,n[1]^=a,n[2]^=r,n[3]^=l,n[4]^=s,n[5]^=a,n[6]^=r,n[7]^=l;for(let t=0;t<4;t+=1)xl.call(this)}}_doProcessBlock(t,e){const i=t,n=this._X;xl.call(this),bl[0]=n[0]^n[5]>>>16^n[3]<<16,bl[1]=n[2]^n[7]>>>16^n[5]<<16,bl[2]=n[4]^n[1]>>>16^n[7]<<16,bl[3]=n[6]^n[3]>>>16^n[1]<<16;for(let t=0;t<4;t+=1)bl[t]=16711935&(bl[t]<<8|bl[t]>>>24)|4278255360&(bl[t]<<24|bl[t]>>>8),i[e+t]^=bl[t]}}const kl=Or._createHelper(El),Sl=[],Ml=[],_l=[];function Tl(){const t=this._X,e=this._C;for(let t=0;t<8;t+=1)Ml[t]=e[t];e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0<Ml[0]>>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0<Ml[1]>>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0<Ml[2]>>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0<Ml[3]>>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0<Ml[4]>>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0<Ml[5]>>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0<Ml[6]>>>0?1:0)|0,this._b=e[7]>>>0<Ml[7]>>>0?1:0;for(let i=0;i<8;i+=1){const n=t[i]+e[i],o=65535&n,s=n>>>16,r=((o*o>>>17)+o*s>>>15)+s*s,a=((4294901760&n)*n|0)+((65535&n)*n|0);_l[i]=r^a}t[0]=_l[0]+(_l[7]<<16|_l[7]>>>16)+(_l[6]<<16|_l[6]>>>16)|0,t[1]=_l[1]+(_l[0]<<8|_l[0]>>>24)+_l[7]|0,t[2]=_l[2]+(_l[1]<<16|_l[1]>>>16)+(_l[0]<<16|_l[0]>>>16)|0,t[3]=_l[3]+(_l[2]<<8|_l[2]>>>24)+_l[1]|0,t[4]=_l[4]+(_l[3]<<16|_l[3]>>>16)+(_l[2]<<16|_l[2]>>>16)|0,t[5]=_l[5]+(_l[4]<<8|_l[4]>>>24)+_l[3]|0,t[6]=_l[6]+(_l[5]<<16|_l[5]>>>16)+(_l[4]<<16|_l[4]>>>16)|0,t[7]=_l[7]+(_l[6]<<8|_l[6]>>>24)+_l[5]|0}class Il extends Or{constructor(...t){super(...t),this.blockSize=4,this.ivSize=2}_doReset(){const t=this._key.words,{iv:e}=this.cfg;this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16];const i=this._X;this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];const n=this._C;this._b=0;for(let t=0;t<4;t+=1)Tl.call(this);for(let t=0;t<8;t+=1)n[t]^=i[t+4&7];if(e){const t=e.words,i=t[0],o=t[1],s=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8),r=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),a=s>>>16|4294901760&r,l=r<<16|65535&s;n[0]^=s,n[1]^=a,n[2]^=r,n[3]^=l,n[4]^=s,n[5]^=a,n[6]^=r,n[7]^=l;for(let t=0;t<4;t+=1)Tl.call(this)}}_doProcessBlock(t,e){const i=t,n=this._X;Tl.call(this),Sl[0]=n[0]^n[5]>>>16^n[3]<<16,Sl[1]=n[2]^n[7]>>>16^n[5]<<16,Sl[2]=n[4]^n[1]>>>16^n[7]<<16,Sl[3]=n[6]^n[3]>>>16^n[1]<<16;for(let t=0;t<4;t+=1)Sl[t]=16711935&(Sl[t]<<8|Sl[t]>>>24)|4278255360&(Sl[t]<<24|Sl[t]>>>8),i[e+t]^=Sl[t]}}const Nl=Or._createHelper(Il);function Al(){const t=this._S;let e=this._i,i=this._j,n=0;for(let o=0;o<4;o+=1){e=(e+1)%256,i=(i+t[e])%256;const s=t[e];t[e]=t[i],t[i]=s,n|=t[(t[e]+t[i])%256]<<24-8*o}return this._i=e,this._j=i,n}class Ll extends Or{_doReset(){const t=this._key,e=t.words,i=t.sigBytes;this._S=[];const n=this._S;for(let t=0;t<256;t+=1)n[t]=t;for(let t=0,o=0;t<256;t+=1){const s=t%i,r=e[s>>>2]>>>24-s%4*8&255;o=(o+n[t]+r)%256;const a=n[t];n[t]=n[o],n[o]=a}this._j=0,this._i=this._j}_doProcessBlock(t,e){t[e]^=Al.call(this)}}Ll.keySize=8,Ll.ivSize=0;const Ol=Or._createHelper(Ll);class $l extends Ll{constructor(...t){super(...t),Object.assign(this.cfg,{drop:192})}_doReset(){super._doReset.call(this);for(let t=this.cfg.drop;t>0;t-=1)Al.call(this)}}const Dl=Or._createHelper($l),Vl=16,jl=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479,2450970073,2306472731],Fl=[[3509652390,2564797868,805139163,3491422135,3101798381,1780907670,3128725573,4046225305,614570311,3012652279,134345442,2240740374,1667834072,1901547113,2757295779,4103290238,227898511,1921955416,1904987480,2182433518,2069144605,3260701109,2620446009,720527379,3318853667,677414384,3393288472,3101374703,2390351024,1614419982,1822297739,2954791486,3608508353,3174124327,2024746970,1432378464,3864339955,2857741204,1464375394,1676153920,1439316330,715854006,3033291828,289532110,2706671279,2087905683,3018724369,1668267050,732546397,1947742710,3462151702,2609353502,2950085171,1814351708,2050118529,680887927,999245976,1800124847,3300911131,1713906067,1641548236,4213287313,1216130144,1575780402,4018429277,3917837745,3693486850,3949271944,596196993,3549867205,258830323,2213823033,772490370,2760122372,1774776394,2652871518,566650946,4142492826,1728879713,2882767088,1783734482,3629395816,2517608232,2874225571,1861159788,326777828,3124490320,2130389656,2716951837,967770486,1724537150,2185432712,2364442137,1164943284,2105845187,998989502,3765401048,2244026483,1075463327,1455516326,1322494562,910128902,469688178,1117454909,936433444,3490320968,3675253459,1240580251,122909385,2157517691,634681816,4142456567,3825094682,3061402683,2540495037,79693498,3249098678,1084186820,1583128258,426386531,1761308591,1047286709,322548459,995290223,1845252383,2603652396,3431023940,2942221577,3202600964,3727903485,1712269319,422464435,3234572375,1170764815,3523960633,3117677531,1434042557,442511882,3600875718,1076654713,1738483198,4213154764,2393238008,3677496056,1014306527,4251020053,793779912,2902807211,842905082,4246964064,1395751752,1040244610,2656851899,3396308128,445077038,3742853595,3577915638,679411651,2892444358,2354009459,1767581616,3150600392,3791627101,3102740896,284835224,4246832056,1258075500,768725851,2589189241,3069724005,3532540348,1274779536,3789419226,2764799539,1660621633,3471099624,4011903706,913787905,3497959166,737222580,2514213453,2928710040,3937242737,1804850592,3499020752,2949064160,2386320175,2390070455,2415321851,4061277028,2290661394,2416832540,1336762016,1754252060,3520065937,3014181293,791618072,3188594551,3933548030,2332172193,3852520463,3043980520,413987798,3465142937,3030929376,4245938359,2093235073,3534596313,375366246,2157278981,2479649556,555357303,3870105701,2008414854,3344188149,4221384143,3956125452,2067696032,3594591187,2921233993,2428461,544322398,577241275,1471733935,610547355,4027169054,1432588573,1507829418,2025931657,3646575487,545086370,48609733,2200306550,1653985193,298326376,1316178497,3007786442,2064951626,458293330,2589141269,3591329599,3164325604,727753846,2179363840,146436021,1461446943,4069977195,705550613,3059967265,3887724982,4281599278,3313849956,1404054877,2845806497,146425753,1854211946],[1266315497,3048417604,3681880366,3289982499,290971e4,1235738493,2632868024,2414719590,3970600049,1771706367,1449415276,3266420449,422970021,1963543593,2690192192,3826793022,1062508698,1531092325,1804592342,2583117782,2714934279,4024971509,1294809318,4028980673,1289560198,2221992742,1669523910,35572830,157838143,1052438473,1016535060,1802137761,1753167236,1386275462,3080475397,2857371447,1040679964,2145300060,2390574316,1461121720,2956646967,4031777805,4028374788,33600511,2920084762,1018524850,629373528,3691585981,3515945977,2091462646,2486323059,586499841,988145025,935516892,3367335476,2599673255,2839830854,265290510,3972581182,2759138881,3795373465,1005194799,847297441,406762289,1314163512,1332590856,1866599683,4127851711,750260880,613907577,1450815602,3165620655,3734664991,3650291728,3012275730,3704569646,1427272223,778793252,1343938022,2676280711,2052605720,1946737175,3164576444,3914038668,3967478842,3682934266,1661551462,3294938066,4011595847,840292616,3712170807,616741398,312560963,711312465,1351876610,322626781,1910503582,271666773,2175563734,1594956187,70604529,3617834859,1007753275,1495573769,4069517037,2549218298,2663038764,504708206,2263041392,3941167025,2249088522,1514023603,1998579484,1312622330,694541497,2582060303,2151582166,1382467621,776784248,2618340202,3323268794,2497899128,2784771155,503983604,4076293799,907881277,423175695,432175456,1378068232,4145222326,3954048622,3938656102,3820766613,2793130115,2977904593,26017576,3274890735,3194772133,1700274565,1756076034,4006520079,3677328699,720338349,1533947780,354530856,688349552,3973924725,1637815568,332179504,3949051286,53804574,2852348879,3044236432,1282449977,3583942155,3416972820,4006381244,1617046695,2628476075,3002303598,1686838959,431878346,2686675385,1700445008,1080580658,1009431731,832498133,3223435511,2605976345,2271191193,2516031870,1648197032,4164389018,2548247927,300782431,375919233,238389289,3353747414,2531188641,2019080857,1475708069,455242339,2609103871,448939670,3451063019,1395535956,2413381860,1841049896,1491858159,885456874,4264095073,4001119347,1565136089,3898914787,1108368660,540939232,1173283510,2745871338,3681308437,4207628240,3343053890,4016749493,1699691293,1103962373,3625875870,2256883143,3830138730,1031889488,3479347698,1535977030,4236805024,3251091107,2132092099,1774941330,1199868427,1452454533,157007616,2904115357,342012276,595725824,1480756522,206960106,497939518,591360097,863170706,2375253569,3596610801,1814182875,2094937945,3421402208,1082520231,3463918190,2785509508,435703966,3908032597,1641649973,2842273706,3305899714,1510255612,2148256476,2655287854,3276092548,4258621189,236887753,3681803219,274041037,1734335097,3815195456,3317970021,1899903192,1026095262,4050517792,356393447,2410691914,3873677099,3682840055],[3913112168,2491498743,4132185628,2489919796,1091903735,1979897079,3170134830,3567386728,3557303409,857797738,1136121015,1342202287,507115054,2535736646,337727348,3213592640,1301675037,2528481711,1895095763,1721773893,3216771564,62756741,2142006736,835421444,2531993523,1442658625,3659876326,2882144922,676362277,1392781812,170690266,3921047035,1759253602,3611846912,1745797284,664899054,1329594018,3901205900,3045908486,2062866102,2865634940,3543621612,3464012697,1080764994,553557557,3656615353,3996768171,991055499,499776247,1265440854,648242737,3940784050,980351604,3713745714,1749149687,3396870395,4211799374,3640570775,1161844396,3125318951,1431517754,545492359,4268468663,3499529547,1437099964,2702547544,3433638243,2581715763,2787789398,1060185593,1593081372,2418618748,4260947970,69676912,2159744348,86519011,2512459080,3838209314,1220612927,3339683548,133810670,1090789135,1078426020,1569222167,845107691,3583754449,4072456591,1091646820,628848692,1613405280,3757631651,526609435,236106946,48312990,2942717905,3402727701,1797494240,859738849,992217954,4005476642,2243076622,3870952857,3732016268,765654824,3490871365,2511836413,1685915746,3888969200,1414112111,2273134842,3281911079,4080962846,172450625,2569994100,980381355,4109958455,2819808352,2716589560,2568741196,3681446669,3329971472,1835478071,660984891,3704678404,4045999559,3422617507,3040415634,1762651403,1719377915,3470491036,2693910283,3642056355,3138596744,1364962596,2073328063,1983633131,926494387,3423689081,2150032023,4096667949,1749200295,3328846651,309677260,2016342300,1779581495,3079819751,111262694,1274766160,443224088,298511866,1025883608,3806446537,1145181785,168956806,3641502830,3584813610,1689216846,3666258015,3200248200,1692713982,2646376535,4042768518,1618508792,1610833997,3523052358,4130873264,2001055236,3610705100,2202168115,4028541809,2961195399,1006657119,2006996926,3186142756,1430667929,3210227297,1314452623,4074634658,4101304120,2273951170,1399257539,3367210612,3027628629,1190975929,2062231137,2333990788,2221543033,2438960610,1181637006,548689776,2362791313,3372408396,3104550113,3145860560,296247880,1970579870,3078560182,3769228297,1714227617,3291629107,3898220290,166772364,1251581989,493813264,448347421,195405023,2709975567,677966185,3703036547,1463355134,2715995803,1338867538,1343315457,2802222074,2684532164,233230375,2599980071,2000651841,3277868038,1638401717,4028070440,3237316320,6314154,819756386,300326615,590932579,1405279636,3267499572,3150704214,2428286686,3959192993,3461946742,1862657033,1266418056,963775037,2089974820,2263052895,1917689273,448879540,3550394620,3981727096,150775221,3627908307,1303187396,508620638,2975983352,2726630617,1817252668,1876281319,1457606340,908771278,3720792119,3617206836,2455994898,1729034894,1080033504],[976866871,3556439503,2881648439,1522871579,1555064734,1336096578,3548522304,2579274686,3574697629,3205460757,3593280638,3338716283,3079412587,564236357,2993598910,1781952180,1464380207,3163844217,3332601554,1699332808,1393555694,1183702653,3581086237,1288719814,691649499,2847557200,2895455976,3193889540,2717570544,1781354906,1676643554,2592534050,3230253752,1126444790,2770207658,2633158820,2210423226,2615765581,2414155088,3127139286,673620729,2805611233,1269405062,4015350505,3341807571,4149409754,1057255273,2012875353,2162469141,2276492801,2601117357,993977747,3918593370,2654263191,753973209,36408145,2530585658,25011837,3520020182,2088578344,530523599,2918365339,1524020338,1518925132,3760827505,3759777254,1202760957,3985898139,3906192525,674977740,4174734889,2031300136,2019492241,3983892565,4153806404,3822280332,352677332,2297720250,60907813,90501309,3286998549,1016092578,2535922412,2839152426,457141659,509813237,4120667899,652014361,1966332200,2975202805,55981186,2327461051,676427537,3255491064,2882294119,3433927263,1307055953,942726286,933058658,2468411793,3933900994,4215176142,1361170020,2001714738,2830558078,3274259782,1222529897,1679025792,2729314320,3714953764,1770335741,151462246,3013232138,1682292957,1483529935,471910574,1539241949,458788160,3436315007,1807016891,3718408830,978976581,1043663428,3165965781,1927990952,4200891579,2372276910,3208408903,3533431907,1412390302,2931980059,4132332400,1947078029,3881505623,4168226417,2941484381,1077988104,1320477388,886195818,18198404,3786409e3,2509781533,112762804,3463356488,1866414978,891333506,18488651,661792760,1628790961,3885187036,3141171499,876946877,2693282273,1372485963,791857591,2686433993,3759982718,3167212022,3472953795,2716379847,445679433,3561995674,3504004811,3574258232,54117162,3331405415,2381918588,3769707343,4154350007,1140177722,4074052095,668550556,3214352940,367459370,261225585,2610173221,4209349473,3468074219,3265815641,314222801,3066103646,3808782860,282218597,3406013506,3773591054,379116347,1285071038,846784868,2669647154,3771962079,3550491691,2305946142,453669953,1268987020,3317592352,3279303384,3744833421,2610507566,3859509063,266596637,3847019092,517658769,3462560207,3443424879,370717030,4247526661,2224018117,4143653529,4112773975,2788324899,2477274417,1456262402,2901442914,1517677493,1846949527,2295493580,3734397586,2176403920,1280348187,1908823572,3871786941,846861322,1172426758,3287448474,3383383037,1655181056,3139813346,901632758,1897031941,2986607138,3066810236,3447102507,1393639104,373351379,950779232,625454576,3124240540,4148612726,2007998917,544563296,2244738638,2330496472,2058025392,1291430526,424198748,50039436,29584100,3605783033,2429876329,2791104160,1057563949,3255363231,3075367218,3463963227,1469046755,985887462]],Pl={pbox:[],sbox:[]};function Rl(t,e){const i=e>>24&255,n=e>>16&255,o=e>>8&255,s=255&e;let r=t.sbox[0][i]+t.sbox[1][n];return r^=t.sbox[2][o],r+=t.sbox[3][s],r}function Ul(t,e,i){let n,o=e,s=i;for(let e=0;e<Vl;++e)o^=t.pbox[e],s=Rl(t,o)^s,n=o,o=s,s=n;return n=o,o=s,s=n,s^=t.pbox[Vl],o^=t.pbox[17],{left:o,right:s}}class zl extends Fr{constructor(t,e,i){super(t,e,i),this.blockSize=2}_doReset(){if(this._keyPriorReset===this._key)return;const t=this._keyPriorReset=this._key,e=t.words,i=t.sigBytes/4;!function(t,e,i){for(let e=0;e<4;e++){t.sbox[e]=[];for(let i=0;i<256;i++)t.sbox[e][i]=Fl[e][i]}let n=0;for(let o=0;o<18;o++)t.pbox[o]=jl[o]^e[n],n++,n>=i&&(n=0);let o=0,s=0,r=0;for(let e=0;e<18;e+=2)r=Ul(t,o,s),o=r.left,s=r.right,t.pbox[e]=o,t.pbox[e+1]=s;for(let e=0;e<4;e++)for(let i=0;i<256;i+=2)r=Ul(t,o,s),o=r.left,s=r.right,t.sbox[e][i]=o,t.sbox[e][i+1]=s}(Pl,e,i)}encryptBlock(t,e){const i=Ul(Pl,t[e],t[e+1]);t[e]=i.left,t[e+1]=i.right}decryptBlock(t,e){const i=function(t,e,i){let n,o=e,s=i;for(let e=17;e>1;--e)o^=t.pbox[e],s=Rl(t,o)^s,n=o,o=s,s=n;return n=o,o=s,s=n,s^=t.pbox[1],o^=t.pbox[0],{left:o,right:s}}(Pl,t[e],t[e+1]);t[e]=i.left,t[e+1]=i.right}}zl.keySize=4,zl.ivSize=2;const Bl=Fr._createHelper(zl);function Hl(t,e,i,n){const o=t;let s;const r=this._iv;r?(s=r.slice(0),this._iv=void 0):s=this._prevBlock,n.encryptBlock(s,0);for(let t=0;t<i;t+=1)o[e+t]^=s[t]}class Wl extends $r{}Wl.Encryptor=class extends Wl{processBlock(t,e){const i=this._cipher,{blockSize:n}=i;Hl.call(this,t,e,n,i),this._prevBlock=t.slice(e,e+n)}},Wl.Decryptor=class extends Wl{processBlock(t,e){const i=this._cipher,{blockSize:n}=i,o=t.slice(e,e+n);Hl.call(this,t,e,n,i),this._prevBlock=o}};class Gl extends $r{}Gl.Encryptor=class extends Gl{processBlock(t,e){const i=t,n=this._cipher,{blockSize:o}=n,s=this._iv;let r=this._counter;s&&(this._counter=s.slice(0),r=this._counter,this._iv=void 0);const a=r.slice(0);n.encryptBlock(a,0),r[o-1]=r[o-1]+1|0;for(let t=0;t<o;t+=1)i[e+t]^=a[t]}},Gl.Decryptor=Gl.Encryptor;const Kl=t=>{let e=t;if(255&~(t>>24))e+=1<<24;else{let i=t>>16&255,n=t>>8&255,o=255&t;255===i?(i=0,255===n?(n=0,255===o?o=0:o+=1):n+=1):i+=1,e=0,e+=i<<16,e+=n<<8,e+=o}return e};
/** @preserve
     * Counter block mode compatible with  Dr Brian Gladman fileenc.c
     * derived from CryptoJS.mode.CTR
     * Jan Hruby jhruby.web@gmail.com
     */
class Zl extends $r{}Zl.Encryptor=class extends Zl{processBlock(t,e){const i=t,n=this._cipher,{blockSize:o}=n,s=this._iv;let r=this._counter;s&&(this._counter=s.slice(0),r=this._counter,this._iv=void 0),(t=>{const e=t;e[0]=Kl(e[0]),0===e[0]&&(e[1]=Kl(e[1]))})(r);const a=r.slice(0);n.encryptBlock(a,0);for(let t=0;t<o;t+=1)i[e+t]^=a[t]}},Zl.Decryptor=Zl.Encryptor;class Jl extends $r{}Jl.Encryptor=class extends Jl{processBlock(t,e){this._cipher.encryptBlock(t,e)}},Jl.Decryptor=class extends Jl{processBlock(t,e){this._cipher.decryptBlock(t,e)}};class Yl extends $r{}Yl.Encryptor=class extends Yl{processBlock(t,e){const i=t,n=this._cipher,{blockSize:o}=n,s=this._iv;let r=this._keystream;s&&(this._keystream=s.slice(0),r=this._keystream,this._iv=void 0),n.encryptBlock(r,0);for(let t=0;t<o;t+=1)i[e+t]^=r[t]}},Yl.Decryptor=Yl.Encryptor;const ql={pad(t,e){const i=t,n=i.sigBytes,o=4*e,s=o-n%o,r=n+s-1;i.clamp(),i.words[r>>>2]|=s<<24-r%4*8,i.sigBytes+=s},unpad(t){const e=t,i=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=i}},Ql={pad(t,e){const i=4*e,n=i-t.sigBytes%i;t.concat(hr.random(n-1)).concat(hr.create([n<<24],1))},unpad(t){const e=t,i=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=i}},Xl={pad(t,e){const i=t,n=4*e;i.clamp(),i.sigBytes+=n-(t.sigBytes%n||n)},unpad(t){const e=t,i=e.words;for(let t=e.sigBytes-1;t>=0;t-=1)if(i[t>>>2]>>>24-t%4*8&255){e.sigBytes=t+1;break}}},tc={pad(t,e){t.concat(hr.create([2147483648],1)),Xl.pad(t,e)},unpad(t){const e=t;Xl.unpad(e),e.sigBytes-=1}},ec={pad(){},unpad(){}},ic={stringify:t=>t.ciphertext.toString(ur),parse(t){const e=ur.parse(t);return Pr.create({ciphertext:e})}};var nc={lib:{Base:dr,WordArray:hr,BufferedBlockAlgorithm:fr,Hasher:gr,Cipher:Lr,StreamCipher:Or,BlockCipherMode:$r,BlockCipher:Fr,CipherParams:Pr,SerializableCipher:Ur,PasswordBasedCipher:Br},x64:{Word:br,WordArray:yr},enc:{Hex:ur,Latin1:pr,Utf8:vr,Utf16:Gr,Utf16BE:Wr,Utf16LE:Kr,Base64:xr,Base64url:Zr},algo:{HMAC:mr,MD5:Tr,SHA1:Yr,SHA224:ca,SHA256:ra,SHA384:ma,SHA512:va,SHA3:_a,RIPEMD160:za,PBKDF2:Wa,EvpKDF:Ar,AES:rl,DES:fl,TripleDES:ml,Rabbit:El,RabbitLegacy:Il,RC4:Ll,RC4Drop:$l,Blowfish:zl},mode:{CBC:Vr,CFB:Wl,CTR:Gl,CTRGladman:Zl,ECB:Jl,OFB:Yl},pad:{Pkcs7:jr,AnsiX923:ql,Iso10126:Ql,Iso97971:tc,NoPadding:ec,ZeroPadding:Xl},format:{OpenSSL:Rr,Hex:ic},kdf:{OpenSSL:zr},MD5:Ir,HmacMD5:Nr,SHA1:qr,HmacSHA1:Qr,SHA224:da,HmacSHA224:ha,SHA256:aa,HmacSHA256:la,SHA384:wa,HmacSHA384:ba,SHA512:fa,HmacSHA512:ga,SHA3:Ta,HmacSHA3:Ia,RIPEMD160:Ba,HmacRIPEMD160:Ha,PBKDF2:(t,e,i)=>Wa.create(i).compute(t,e),EvpKDF:(t,e,i)=>Ar.create(i).compute(t,e),AES:al,DES:gl,TripleDES:wl,Rabbit:kl,RabbitLegacy:Nl,RC4:Ol,RC4Drop:Dl,Blowfish:Bl};const oc=(t,e=0)=>{try{let i=3735928559^e,n=1103547991^e;for(let e,o=0;o<t.length;o++)e=t.charCodeAt(o),i=Math.imul(i^e,2654435761),n=Math.imul(n^e,1597334677);return i=Math.imul(i^i>>>16,2246822507)^Math.imul(n^n>>>13,3266489909),n=Math.imul(n^n>>>16,2246822507)^Math.imul(i^i>>>13,3266489909),4294967296*(2097151&n)+(i>>>0)}catch(t){return console.warn("Error in cyrb53: ",t),Sc("Error in cyrb53: ",t),0}},sc=t=>{try{return"object"!=typeof t?Object.assign({},...Object.keys(t).sort().map((e=>({[e]:t[e]&&"object"==typeof t[e]?sc(t[e]):t[e]})))):t}catch(e){return t}},rc=t=>{let e;return e=t.includes("http")?new URL(t):new URL("http://"+t),e.hostname.replace("www.","")};function ac(t){try{const e=localStorage.getItem(t);if(!e)return null;try{return JSON.parse(e)}catch(t){return e}}catch(t){return console.warn("Error in getLocalStorage: ",t),null}}const lc=(t,e,i=!1,n="localStorage")=>{try{const o=i?btoa(e):e;"localStorage"===n?localStorage.setItem(t,o):sessionStorage.setItem(t,o)}catch(t){console.warn("Error in setLocalStorage: ",t),Sc("Error in setLocalStorage: ",t)}},cc=(t,e=!1,i="localStorage")=>{try{let n=null;return n="localStorage"===i?localStorage.getItem(t):sessionStorage.getItem(t),n&&e?atob(n):n}catch(t){return console.warn("Error in getLocalStorage: ",t),Sc("Error in getLocalStorage: ",t),null}},dc=(t,e="localStorage")=>{try{"localStorage"===e?localStorage.removeItem(t):sessionStorage.removeItem(t)}catch(t){console.warn("Error in removeLocalStorageData: ",t),Sc("Error in removeLocalStorageData: ",t)}},hc=(...t)=>{if(t)switch(t.length){case 1:return a`calc(${t[0]}rem * var(--velt-base-rem-unit, 1))`;case 2:return a`calc(${t[0]}rem * var(--velt-base-rem-unit, 1)) calc(${t[1]}rem * var(--velt-base-rem-unit, 1))`;case 3:return a`calc(${t[0]}rem * var(--velt-base-rem-unit, 1)) calc(${t[1]}rem * var(--velt-base-rem-unit, 1)) 
                calc(${t[2]}rem * var(--velt-base-rem-unit, 1))`;case 4:return a`calc(${t[0]}rem * var(--velt-base-rem-unit, 1)) calc(${t[1]}rem * var(--velt-base-rem-unit, 1))
                calc(${t[2]}rem * var(--velt-base-rem-unit, 1)) calc(${t[3]}rem * var(--velt-base-rem-unit, 1))`}return a`0`},uc=(t,e,i)=>{try{const n=nc.enc.Utf8.parse(e),o=nc.enc.Utf8.parse(i);return nc.AES.encrypt(nc.enc.Utf8.parse(t),n,{keySize:32,iv:o,mode:nc.mode.CBC,padding:nc.pad.Pkcs7}).toString()}catch(e){return console.warn("Error in encrypt: ",e),Sc("Error in encrypt: ",e),t}},pc=(t,e,i)=>{try{const n=nc.enc.Utf8.parse(e),o=nc.enc.Utf8.parse(i);return nc.AES.decrypt(t,n,{keySize:32,iv:o,mode:nc.mode.CBC,padding:nc.pad.Pkcs7}).toString(nc.enc.Utf8)}catch(t){return console.warn("Error in decrypt: ",t),Sc("Error in decrypt: ",t),null}},vc=()=>{try{const t=cc(St,!0);if(t){const e=pc(t,re,ae);if(e)return JSON.parse(e);console.warn("Error in getUserFromToken: ","Invalid token."),dc(St)}else{const t=cc(Et,!0);if(t)return fc(),JSON.parse(t)}return null}catch(t){return console.warn("Error in getUserFromToken: ",t),Sc("Error in getUserFromToken: ",t),null}},fc=()=>{try{const t=cc(Et,!0);if(t){const e=uc(t,re,ae);lc(St,e,!0)}dc(Et)}catch(t){console.warn("Error in moveSnippylyUserToST: ",t),Sc("Error in moveSnippylyUserToST: ",t)}},gc=(t=!0,e)=>{try{const i=cc(Mt,!0);if(i){const t=pc(i,re,ae);return t?JSON.parse(t):null}if(t){const t=ie,i=t[Math.floor(Math.random()*t.length)],n=i.name,o=i.photoUrl,s={name:n,email:"guest@usesuperflow.com",userId:Math.floor(1e9*Math.random())+"",photoUrl:o,isGuest:!0,organizationId:e},r=JSON.stringify(s),a=uc(r,re,ae);return lc(Mt,a,!0),s}return null}catch(t){return console.warn("Error in getGuestUser: ",t),Sc("Error in getGuestUser: ",t),null}},mc=Wi({apiKey:"AIzaSyD-upDZIcd4inmT2hCbVjN8rMcHqY-j1WE",projectId:"snippyly-sdk-prod",messagingSenderId:"769823558474",appId:"1:769823558474:web:79f3bb0db8fd99f6f58fb3"}),wc=function(t=Gi(),e=pn){const i=Ri(Ne(t),ln).getImmediate({identifier:e}),n=(t=>{const e=me(t);if(!e)return;const i=e.lastIndexOf(":");if(i<=0||i+1===e.length)throw new Error(`Invalid host ${e} with no separate hostname and port!`);const n=parseInt(e.substring(i+1),10);return"["===e[0]?[e.substring(1,i-1),n]:[e.substring(0,i),n]})("functions");return n&&function(t,e,i){!function(t,e,i){t.emulatorOrigin=`http://${e}:${i}`}(Ne(t),e,i)}(i,...n),i}(mc);let bc,yc={sourcePlatform:"superflowToolbar"};const Cc=()=>new Promise(((t,e)=>{const i=rr(mc).onAuthStateChanged((n=>{i(),n?t(n):e("No user is currently signed in.")}),e)})),xc=(t={})=>{yc={...yc,...t}},Ec=t=>{bc=t},kc=t=>{var e,i,n,o,s,r,a,l,c,d,h,u;const p={properties:{apiKey:null!==(e=null==yc?void 0:yc.apiKey)&&void 0!==e?e:"",name:null!==(i=null==t?void 0:t.name)&&void 0!==i?i:"",firstName:(null==t?void 0:t.name)?null===(n=null==t?void 0:t.name)||void 0===n?void 0:n.split(" ")[0]:"",lastName:(null==t?void 0:t.name)?null===(o=null==t?void 0:t.name)||void 0===o?void 0:o.split(" ")[1]:"",email:null!==(s=null==t?void 0:t.email)&&void 0!==s?s:"",clientUserId:null!==(r=null==t?void 0:t.userId)&&void 0!==r?r:"",snippylyUserId:null!==(a=null==t?void 0:t.userSnippylyId)&&void 0!==a?a:"",groupId:null!==(l=null==t?void 0:t.groupId)&&void 0!==l?l:"",isOwner:"",plan:"",sdkVersion:null!==(c=null==yc?void 0:yc.sdkVersion)&&void 0!==c?c:"",sdkType:null!==(d=null==yc?void 0:yc.sdkType)&&void 0!==d?d:"",sourcePlatform:null!==(h=null==yc?void 0:yc.sourcePlatform)&&void 0!==h?h:"",website:null===(u=null===window||void 0===window?void 0:window.location)||void 0===u?void 0:u.href},context:{userAgent:null===navigator||void 0===navigator?void 0:navigator.userAgent},userId:null==t?void 0:t.userSnippylyId,sf:!0};_c("identify",p)},Sc=(t,e,i={})=>{const n={error:t,message:(null==e?void 0:e.message)||e||t,...i};Mc("error",n)},Mc=(t,e={},i=!0)=>{try{if(null==bc?void 0:bc.userSnippylyId){e=i?{...yc,...e}:e,e={...e};const n={userId:null==bc?void 0:bc.userSnippylyId,event:t,properties:e,sf:!0};_c("track",n)}else console.warn("Untracked event: ",t,e)}catch(t){console.warn("Error in trackEvent: ",t)}},_c=(t,e)=>{try{Cn(wc,le,{timeout:12e5})({type:t,data:e})}catch(t){console.warn("Error in setAnalytics: ",t)}},Tc=async(t,e)=>{try{const i=Cn(wc,ce,{timeout:12e5});await i({eventType:"checkDomainWhitelisted",apiKey:t,projectId:e})}catch(t){console.warn("Error in checkDomainWhitelisted: ",t)}},Ic=async(t,e,i,n)=>{try{const o=Cn(wc,ce,{timeout:12e5}),s=await o({eventType:"iam",apiKey:t,projectId:e,email:i,userId:n});return null==s?void 0:s.data}catch(t){return console.warn("Error in iam: ",t),null}},Nc=async(t,e)=>{var i;try{const n=Cn(wc,ce,{timeout:12e5}),o=await n({eventType:"getProjectConfig",apiKey:t,projectId:e});return null===(i=null==o?void 0:o.data)||void 0===i?void 0:i.data}catch(t){return console.warn("Error in getProjectConfig: ",t),null}},Ac=async(t,e,i)=>{var n;try{const o=Cn(wc,ce,{timeout:12e5}),s=await o({eventType:"validatePassword",apiKey:t,projectId:e,password:i});return null===(n=null==s?void 0:s.data)||void 0===n?void 0:n.data}catch(t){return console.warn("Error in validatePassword: ",t),null}},Lc=async(t,e,i)=>{var n;try{const o=Cn(wc,ce,{timeout:12e5}),s=await o({eventType:"checkToolbarEnabled",apiKey:t,projectId:e,url:i});return null===(n=null==s?void 0:s.data)||void 0===n?void 0:n.data}catch(t){return console.warn("Error in checkToolbarEnabled: ",t),null}},Oc=async t=>{try{const e=Cn(wc,ce,{timeout:12e5}),i=await e({eventType:"getCustomerMetadata",apiKey:t});return null==i?void 0:i.data}catch(t){return console.warn("Error in getCustomerMetadata: ",t),null}},$c=async t=>{try{const e=Cn(wc,ce,{timeout:12e5}),i=await e({eventType:"customStatus",subEventType:"getOrgStatuses",apiKey:t});return null==i?void 0:i.data}catch(t){return console.warn("Error in getOrgStatuses: ",t),null}},Dc=async(t,e,i)=>{var n,o;try{const s=Cn(wc,ce,{timeout:12e5}),r=await s({eventType:"generateSuperflowAuthToken",apiKey:t,userId:e,userProperties:i});return null===(o=null===(n=null==r?void 0:r.data)||void 0===n?void 0:n.data)||void 0===o?void 0:o.token}catch(t){return console.warn("Error in generateSuperflowAuthToken: ",t),null}},Vc=async(t,e,i,n,o)=>{try{const s=Cn(wc,ce,{timeout:12e5}),r=await s({eventType:"userMigration",apiKey:t,projectId:e,oldUser:i,newUser:n,deleteGuestUserFlag:o});return null==r?void 0:r.data}catch(t){return console.warn("Error in usermigration: ",t),null}},jc=t=>Cn(wc,ce,{timeout:12e5})({eventType:"customLoginEnabled",apiKey:t}),Fc=async t=>{var e;try{const i=Cn(wc,ce,{timeout:12e5}),n=await i({eventType:"saml",samlEventType:"getPublicConfig",apiKey:t});return null===(e=null==n?void 0:n.data)||void 0===e?void 0:e.publicConfig}catch(t){return console.warn("Error in getSamlPublicConfig: ",t),null}},Pc=async(t,e)=>{var i;try{const n=await Cc();if(!n)throw new Error("User must be authenticated to create admin users");const o=window.Velt?await(null===(i=window.Velt)||void 0===i?void 0:i.getUser()):null,s=(null==n?void 0:n.displayName)||(null==o?void 0:o.name)||(null==o?void 0:o.email)||"",r=Cn(wc,ce,{timeout:12e5}),a=await r({eventType:"createAdminUser",apiKey:t,users:e,inviterName:s});return null==a?void 0:a.data}catch(t){throw console.warn("Error in createAdminUser: ",t),t}},Rc=async(t,e,i)=>{var n;try{const o=await Cc();if(!o)throw new Error("User must be authenticated to create project users");const s=window.Velt?await(null===(n=window.Velt)||void 0===n?void 0:n.getUser()):null,r=(null==o?void 0:o.displayName)||(null==s?void 0:s.name)||(null==s?void 0:s.email)||"",a=Cn(wc,ce,{timeout:12e5}),l=await a({eventType:"createProjectUser",apiKey:t,documentId:e,users:i,inviterName:r});return null==l?void 0:l.data}catch(t){throw console.warn("Error in createProjectUser: ",t),t}},Uc=async(t,e,i,n,o)=>{try{const s=Cn(wc,ce,{timeout:12e5}),r=await s({eventType:"checkDocumentUserAndCreate",apiKey:t,documentId:e,userId:i,name:n,email:o});return null==r?void 0:r.data}catch(t){throw console.warn("Error in checkDocumentUserAndCreate: ",t),t}};var zc;!function(t){t.WorkspaceUserSeats="workspaceUserSeats",t.Storage="storage",t.Agents="agents"}(zc||(zc={}));const Bc=async t=>{var e;try{const i=Cn(wc,ce,{timeout:12e5}),n=await i({eventType:"getFeatureAccess",apiKey:t});return null===(e=null==n?void 0:n.data)||void 0===e?void 0:e.data}catch(t){return console.warn("Error in getFeatureAccess: ",t),null}},Hc=async(t,e,i,n,o)=>{try{const s=Cn(wc,ce,{timeout:12e5}),r=await s({eventType:"acceptAgentSuggestion",apiKey:t,organizationId:e,documentId:i,annotationId:n,user:o});return null==r?void 0:r.data}catch(t){return console.warn("Error in acceptAgentSuggestion: ",t),Sc("Error in acceptAgentSuggestion: ",t),null}},Wc=async(t,e,i,n)=>{try{const o=Cn(wc,ce,{timeout:12e5}),s=await o({eventType:"declineAgentSuggestion",apiKey:t,organizationId:e,documentId:i,annotationId:n});return null==s?void 0:s.data}catch(t){return console.warn("Error in declineAgentSuggestion: ",t),Sc("Error in declineAgentSuggestion: ",t),null}};var Gc=Object.freeze({__proto__:null,get BillableMetricTypes(){return zc},acceptAgentSuggestion:Hc,checkDocumentUserAndCreate:Uc,checkDomainWhitelisted:Tc,checkToolbarEnabled:Lc,createAdminUser:Pc,createProjectUser:Rc,declineAgentSuggestion:Wc,detectCustomLoginEnabled:jc,generateSuperflowAuthToken:Dc,getAgents:async t=>{var e,i,n;try{const o=Cn(wc,ce,{timeout:12e5}),s=await o({eventType:"getAgents",apiKey:t});return null!==(n=null===(i=null===(e=null==s?void 0:s.data)||void 0===e?void 0:e.data)||void 0===i?void 0:i.agents)&&void 0!==n?n:[]}catch(t){return console.warn("Error in getAgents: ",t),[]}},getCurrentUser:Cc,getCustomerMetadata:Oc,getFeatureAccess:Bc,getOrgStatuses:$c,getProjectConfig:Nc,getSamlPublicConfig:Fc,iam:Ic,setDefaultProperties:xc,setUser:Ec,trackErrorEvent:Sc,trackEvent:Mc,trackIdentifyEvent:kc,userMigration:Vc,validatePassword:Ac});navigator.language.split("-")[0];const Kc=new Map;Kc.set("es",{Comment:"Comentario","Commenting is disabled. Contact admin.":"Los comentarios están deshabilitados. Póngase en contacto con el administrador.","Arrow feature is disabled. Contact admin.":"La función de flecha está desactivada. Póngase en contacto con el administrador.","All Comments":"Todos los comentarios","Signing In":"Iniciando sesión","Sign in again!":"¡Inicia sesión de nuevo!","Sign in to comment":"Inicia sesión para comentar",Superflow:"Superflujo","Sign in to comment on this page.":"Inicia sesión para comentar en esta página.","Join Community":"Únete a la comunidad","Open in Mobile":"Abrir en móvil","Exit Review Mode":"Salir del modo de revisión","Sign in":"Iniciar sesión","Try Superflow using the toolbar below.":"Prueba Superflujo usando la barra de herramientas de abajo.","Get ready to drop your first comment!":"¡Prepárate para dejar tu primer comentario!","But before you do that, you definitely deserve a high five!":"¡Pero antes de eso, definitivamente mereces un choca esos cinco!",Done:"Hecho","Sign in on the toolbar below and add":"Inicia sesión en la barra de herramientas de abajo y añade","comments on the design flaws.":"comentarios sobre los defectos de diseño.","Click to add comments on this page.":"Haz clic para añadir comentarios en esta página.",Ok:"Ok",Arrow:"Flecha","Live Huddle":"Encuentro en vivo",Recording:"Grabación","Open Comments":"Abrir comentarios",Views:"Vistas",Internal:"Interno",External:"Externo",All:"Todos",Upgrade:"Actualizar","You don't have access.":"No tienes acceso.","Reach out to the admin of this project.":"Contacta al administrador de este proyecto.","Your plan has expired! Please upgrade.":"¡Tu plan ha caducado! Por favor, actualiza.","Your plan has expired!":"¡Tu plan ha caducado!","Please contact the admin.":"Por favor, contacta al administrador.",Share:"Compartir","Add comments & recordings on this page.":"Añade comentarios y grabaciones en esta página.","Learn more":"Aprender más","View project":"Ver proyecto","Sign Out":"Cerrar sesión","You’re a SuperFlow installation wizard!":"¡Eres un mago de la instalación de Superflujo!",Next:"Siguiente"}),Kc.set("fr",{Comment:"Commentaire","Commenting is disabled. Contact admin.":"Les commentaires sont désactivés. Contactez l'administrateur.","Arrow feature is disabled. Contact admin.":"La fonction flèche est désactivée. Contactez l'administrateur.","All Comments":"Tous les commentaires","Signing In":"Connexion en cours","Sign in again!":"Connectez-vous à nouveau!","Sign in to comment":"Connectez-vous pour commenter",Superflow:"Superflux","Sign in to comment on this page.":"Connectez-vous pour commenter sur cette page.","Join Community":"Rejoindre la communauté","Open in Mobile":"Ouvrir sur mobile","Exit Review Mode":"Quitter le mode de révision","Sign in":"Se connecter","Try Superflow using the toolbar below.":"Essayez Superflux en utilisant la barre d'outils ci-dessous.","Get ready to drop your first comment!":"Préparez-vous à laisser votre premier commentaire!","But before you do that, you definitely deserve a high five!":"Mais avant cela, vous méritez certainement un tope-là!",Done:"Terminé","Sign in on the toolbar below and add":"Connectez-vous sur la barre d'outils ci-dessous et ajoutez","comments on the design flaws.":"des commentaires sur les défauts de conception.","Click to add comments on this page.":"Cliquez pour ajouter des commentaires sur cette page.",Ok:"Ok",Arrow:"Flèche","Live Huddle":"Discussion en direct",Recording:"Enregistrement","Open Comments":"Ouvrir les commentaires",Views:"Vues",Internal:"Interne",External:"Externe",All:"Tous",Upgrade:"Mettre à jour","You don't have access.":"Vous n'avez pas accès.","Reach out to the admin of this project.":"Contactez l'administrateur de ce projet.","Your plan has expired! Please upgrade.":"Votre plan a expiré! Veuillez mettre à jour.","Your plan has expired!":"Votre plan a expiré!","Please contact the admin.":"Veuillez contacter l'administrateur.",Share:"Partager","Add comments & recordings on this page.":"Ajoutez des commentaires et des enregistrements sur cette page.","Learn more":"En savoir plus","View project":"Voir le projet","Sign Out":"Se déconnecter","You’re a SuperFlow installation wizard!":"Vous êtes un sorcier d'installation de Superflux!",Next:"Suivant"}),Kc.set("hi",{Comment:"टिप्पणी","Commenting is disabled. Contact admin.":"टिप्पणी करना अक्षम है. व्यवस्थापक से संपर्क करें.","Arrow feature is disabled. Contact admin.":"तीर सुविधा अक्षम है. व्यवस्थापक से संपर्क करें.","All Comments":"सभी टिप्पणियाँ","Signing In":"साइन इन कर रहा है","Sign in again!":"फिर से साइन इन करें!","Sign in to comment":"टिप्पणी करने के लिए साइन इन करें",Superflow:"सुपरफ्लो","Sign in to comment on this page.":"इस पृष्ठ पर टिप्पणी करने के लिए साइन इन करें।","Join Community":"समुदाय में शामिल हों","Open in Mobile":"मोबाइल में खोलें","Exit Review Mode":"समीक्षा मोड से बाहर निकलें","Sign in":"साइन इन करें","Try Superflow using the toolbar below.":"टूलबार का उपयोग करके सुपरफ्लो का प्रयास करें।","Get ready to drop your first comment!":"अपनी पहली टिप्पणी डालने के लिए तैयार हो जाओ!","But before you do that, you definitely deserve a high five!":"लेकिन इससे पहले, आपको निश्चित रूप से एक उच्च पांच मिलता है!",Done:"किया हुआ","Sign in on the toolbar below and add":"टूलबार पर साइन इन करें और जोड़ें","comments on the design flaws.":"डिज़ाइन की खामियों पर टिप्पणियाँ।","Click to add comments on this page.":"इस पृष्ठ पर टिप्पणियाँ जोड़ने के लिए क्लिक करें।",Ok:"ठीक",Arrow:"तीर","Live Huddle":"लाइव हडल",Recording:"रेकॉर्डिंग","Open Comments":"टिप्पणियाँ खोलें",Views:"दृश्य",Internal:"आंतरिक",External:"बाहरी",All:"सब",Upgrade:"अपग्रेड","You don't have access.":"आपके पास पहुंच नहीं है।","Reach out to the admin of this project.":"इस परियोजना के व्यवस्थापक से संपर्क करें।","Your plan has expired! Please upgrade.":"आपकी योजना समाप्त हो गई है! कृपया अपग्रेड करें।","Your plan has expired!":"आपकी योजना समाप्त हो गई है!","Please contact the admin.":"कृपया व्यवस्थापक से संपर्क करें।",Share:"शेयर","Add comments & recordings on this page.":"इस पृष्ठ पर टिप्पणियाँ और रिकॉर्डिंग जोड़ें।","Learn more":"और अधिक जानें","View project":"परियोजना देखें","Sign Out":"साइन आउट","You’re a SuperFlow installation wizard!":"आप एक सुपरफ्लो स्थापना विज़ार्ड हैं!",Next:"आगामी"}),Kc.set("it",{Comment:"Commento","Commenting is disabled. Contact admin.":"I commenti sono disabilitati. Contatta l'amministratore.","Arrow feature is disabled. Contact admin.":"La funzione freccia è disabilitata. Contatta l'amministratore.","All Comments":"Tutti i commenti","Signing In":"Accesso in corso","Sign in again!":"Accedi di nuovo!","Sign in to comment":"Accedi per commentare",Superflow:"Superflusso","Sign in to comment on this page.":"Accedi per commentare su questa pagina.","Join Community":"Unisciti alla comunità","Open in Mobile":"Apri su mobile","Exit Review Mode":"Esci dalla modalità di revisione","Sign in":"Accedi","Try Superflow using the toolbar below.":"Prova Superflusso utilizzando la barra degli strumenti qui sotto.","Get ready to drop your first comment!":"Preparati a lasciare il tuo primo commento!","But before you do that, you definitely deserve a high five!":"Ma prima di farlo, meriti sicuramente un cinque in alto!",Done:"Fatto","Sign in on the toolbar below and add":"Accedi alla barra degli strumenti qui sotto e aggiungi","comments on the design flaws.":"commenti sui difetti di progettazione.","Click to add comments on this page.":"Clicca per aggiungere commenti su questa pagina.",Ok:"Ok",Arrow:"Freccia","Live Huddle":"Riunione dal vivo",Recording:"Registrazione","Open Comments":"Apri commenti",Views:"Visualizzazioni",Internal:"Interno",External:"Esterno",All:"Tutti",Upgrade:"Aggiorna","You don't have access.":"Non hai accesso.","Reach out to the admin of this project.":"Contatta l'amministratore di questo progetto.","Your plan has expired! Please upgrade.":"Il tuo piano è scaduto! Si prega di aggiornare.","Your plan has expired!":"Il tuo piano è scaduto!","Please contact the admin.":"Si prega di contattare l'amministratore.",Share:"Condividi","Add comments & recordings on this page.":"Aggiungi commenti e registrazioni su questa pagina.","Learn more":"Scopri di più","View project":"Visualizza progetto","Sign Out":"Disconnetti","You’re a SuperFlow installation wizard!":"Sei un mago dell'installazione di Superflusso!",Next:"Avanti"}),Kc.set("ru",{Comment:"Комментарий","Commenting is disabled. Contact admin.":"Комментирование отключено. Свяжитесь с админом.","Arrow feature is disabled. Contact admin.":"Функция стрелки отключена. Свяжитесь с администратором.","All Comments":"Все комментарии","Signing In":"Вход в систему","Sign in again!":"Войдите снова!","Sign in to comment":"Войдите, чтобы оставить комментарий",Superflow:"Суперпоток","Sign in to comment on this page.":"Войдите, чтобы оставить комментарий на этой странице.","Join Community":"Присоединиться к сообществу","Open in Mobile":"Открыть на мобильном","Exit Review Mode":"Выйти из режима обзора","Sign in":"Войти","Try Superflow using the toolbar below.":"Попробуйте Суперпоток, используя панель инструментов ниже.","Get ready to drop your first comment!":"Приготовьтесь оставить свой первый комментарий!","But before you do that, you definitely deserve a high five!":"Но перед этим вы определенно заслуживаете пять!",Done:"Сделано","Sign in on the toolbar below and add":"Войдите на панели инструментов ниже и добавьте","comments on the design flaws.":"комментарии об ошибках в дизайне.","Click to add comments on this page.":"Нажмите, чтобы добавить комментарии на этой странице.",Ok:"Ок",Arrow:"Стрелка","Live Huddle":"Прямой сбор",Recording:"Запись","Open Comments":"Открыть комментарии",Views:"Просмотры",Internal:"Внутренний",External:"Внешний",All:"Все",Upgrade:"Обновить","You don't have access.":"У вас нет доступа.","Reach out to the admin of this project.":"Обратитесь к администратору этого проекта.","Your plan has expired! Please upgrade.":"Ваш план истек! Пожалуйста, обновите.","Your plan has expired!":"Ваш план истек!","Please contact the admin.":"Пожалуйста, свяжитесь с администратором.",Share:"Поделиться","Add comments & recordings on this page.":"Добавьте комментарии и записи на этой странице.","Learn more":"Узнать больше","View project":"Посмотреть проект","Sign Out":"Выйти","You’re a SuperFlow installation wizard!":"Вы волшебник установки Суперпотока!",Next:"Далее"}),Kc.set("uk",{Comment:"Коментар","Commenting is disabled. Contact admin.":"Коментування вимкнено. Зв'язатися з адміном.","Arrow feature is disabled. Contact admin.":"Функція стрілки вимкнена. Зв'язатися з адміном.","All Comments":"Всі коментарі","Signing In":"Увійти в систему","Sign in again!":"Увійдіть знову!","Sign in to comment":"Увійдіть, щоб залишити коментар",Superflow:"Суперпотік","Sign in to comment on this page.":"Увійдіть, щоб залишити коментар на цій сторінці.","Join Community":"Приєднатися до спільноти","Open in Mobile":"Відкрити на мобільному","Exit Review Mode":"Вийти з режиму огляду","Sign in":"Увійти","Try Superflow using the toolbar below.":"Спробуйте Суперпотік, використовуючи панель інструментів нижче.","Get ready to drop your first comment!":"Приготуйтеся залишити свій перший коментар!","But before you do that, you definitely deserve a high five!":"Але перед тим, як ви це зробите, ви точно заслуговуєте на високу п'ятірку!",Done:"Готово","Sign in on the toolbar below and add":"Увійдіть в панель інструментів нижче і додайте","comments on the design flaws.":"коментарі про помилки в дизайні.","Click to add comments on this page.":"Натисніть, щоб додати коментарі на цій сторінці.",Ok:"Добре",Arrow:"Стрілка","Live Huddle":"Пряма група",Recording:"Запис","Open Comments":"Відкрити коментарі",Views:"Перегляди",Internal:"Внутрішній",External:"Зовнішній",All:"Все",Upgrade:"Оновити","You don't have access.":"У вас немає доступу.","Reach out to the admin of this project.":"Зверніться до адміністратора цього проекту.","Your plan has expired! Please upgrade.":"Термін дії вашого плану закінчився! Будь ласка, оновіть.","Your plan has expired!":"Термін дії вашого плану закінчився!","Please contact the admin.":"Будь ласка, зв'яжіться з адміністратором.",Share:"Поділитися","Add comments & recordings on this page.":"Додайте коментарі та записи на цій сторінці.","Learn more":"Дізнатися більше","View project":"Переглянути проект","Sign Out":"Вийти","You’re a SuperFlow installation wizard!":"Ви чарівник встановлення Суперпотоку!",Next:"Далі"});const Zc=t=>{try{return t}catch(e){return t}},Jc=a`

    .wrap {
        padding: 32px;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 32px 32px;
    }


    * {
        margin: 0;
        padding: 0;
        font-family: 'Poppins', sans-serif;
        font-style: normal;
        font-size: 14px;
        line-height: 1.14em;
    }


    .toolbar {
        padding: 1.14em;
        background: #FFFFFF;
        border: 1px solid #E6E8EC;
        box-shadow: 0px 8px 16px rgba(143, 149, 178, 0.15);
        border-radius: 3.78em;
        display: inline-flex;
        justify-content: left;
        gap: 0.57em;
        flex-basis: auto;
    }

    .toolbar-section,
    .toolbar-avatars,
    .toolbar-actions,
    .toolbar-actions1,
    .toolbar-actions2,
    .action,
    .action-border {
        display: flex;
        justify-content: center;
        align-items: center;
    }

    .toolbar-icon {
        width: 32px;
        height: 32px;
        border-radius: 50px;
        fill: #8F95B2;
        cursor: pointer;
    }

    .toolbar-icon:hover,
    .action-dropdown:hover {
        background: #EAE8F9;
    }

    .toolbar-icon:active,
    .action-dropdown:active,
    .action-dropdown:active *{
        fill: #FFFFFF !important;
        background: #625DF5;
    }

    .action-dropdown-icon {
        width: 32px;
        height: 32px;
        fill: #8F95B2;
        border-radius: 50px;
    }

    .toolbar-icon-border {
        width: 24px;
        height: 24px;
        fill: #8F95B2;
        cursor: pointer;
    }

    .toolbar-icon-dropdown-arrow {
        width: 16px;
        height: 16px;
        fill: #8F95B2;
        cursor: pointer;
    }

    .toolbar-logo {
        height: 1.82em;
    }

	.toolbar-logo img {
        height: 1.5em;
				user-select: none;
    }

	.toolbar-logo svg {
		height: 100%;
		width: auto;
	}

    .toolbar-divider {
        width: 1px;
        height: 1.57em;
        flex-grow: 0;
        border-radius: 0.57em;
        background-color: #d4d6df;
    }

    .toolbar-button {
        display: block;
        background: #625DF5;
        border-radius: 4em;
        padding: 0.78em 1.28em;
        text-decoration: none;
        color: #FFFFFF;
    }

    .toolbar-button a {
        text-decoration: none;
        color: #FFFFFF;
        font-weight: 400;
        font-size: 1em;
        line-height: 1.14em;
    }

    .toolbar-avatars {
        margin: 0px 6px;
    }

    .avatar {
        display: flex;
        justify-content: center;
        align-items: center;
        text-align: center;
        width: 35px;
        height: 35px;
        border-radius: 3.42em;
    }

    .avatar.blue {
        border: 2px solid #3772FF;
    }

    .avatar.gray {
        border: 2px solid #B1B5C3;
    }

    .avatar.yellow {
        border: 2px solid #FFD166;
    }

    .avatar-img,
    .avatar-text {
        border-radius: 3.42em;
        width: 32px;
        height: 32px;
    }

    .avatar-text {
        display: flex;
        justify-content: center;
        align-items: center;
        color: #FFFFFF;
        text-align: center;
        font-weight: 500;
        font-size: 0.79em;
        line-height: 1.71em;
    }

    .avatar.overlapped {
        margin: 0px -6px;
    }

    .avatar-text.yellow {
        background-color: #FFD166;

    }

    .avatar-text.more {
        color: #000000 !important;
    }

    .toolbar-actions {
        padding: 0px 4px !important;
        gap: 0px;
				cursor: pointer;
    }

    .action-dropdown {
        display: flex;
        justify-content: center;
        align-items: center;
        padding: 0px 6px;
        border-radius: 50px;
    }

    .toolbar-actions1 {
        padding: 0px 8px !important;
        gap: 8px;
    }

    .content-warnings-button {
        width: 38px;
        height: 38px;
        border-radius: 50px;
        display: flex;
        justify-content: center;
        align-items: center;
        color: #8F95B2;
        cursor: pointer !important;
        transition: color 0.2s ease, background 0.2s ease;
    }

    .content-warnings-button:hover {
        background: #EAE8F9;
    }

    .content-warnings-button.has-warnings {
        color: #E69422;
    }

    .content-warnings-button.has-warnings:hover {
        background: #FEF3E0;
    }

    .content-warnings-count {
        position: absolute;
        top: -2px;
        left: 14px;
        background: #E69422;
        color: #ffffff;
        font-size: 12px;
        font-weight: 600;
        font-family: 'Poppins', sans-serif;
        min-width: 1.25rem;
        height: 1.25rem;
        padding: 0 5px;
        border-radius: 10px;
        display: flex;
        align-items: center;
        justify-content: center;
        line-height: 1;
    }

    .toolbar.private-comment-mode .content-warnings-count {
        background: #E69422;
    }

    .toolbar.private-comment-mode .content-warnings-button {
        color: #8F95B2;
    }

    .toolbar.private-comment-mode .content-warnings-button:hover {
        background: #24234C;
    }

    .toolbar.private-comment-mode .content-warnings-button.has-warnings {
        color: #E69422;
    }

    .toolbar.private-comment-mode .content-warnings-button.has-warnings:hover {
        background: #3D2E1A;
    }

    content-warning-sidebar {
        position: fixed;
        bottom: 120px;
        right: 24px;
        z-index: 2147483578;
    }

    .toolbar-actions2 {
        gap: 8px;
    }

    .action-border {
        padding: 4px 8px;
        border: 1px solid #D4D6DF;
        border-radius: 50px;
        cursor: pointer;
    }

    .action-border:hover,
    .action-border:hover * {
        background: #EAE8F9;
        border-color: rgba(98, 93, 245, 1);
        color: #625DF5;
        stroke: #625DF5;
    }

    .action-border:active,
    .action-border:active * {
        background: #625DF5;
        border-color: #625DF5;
        color: #FFFFFF;
        fill: #FFFFFF;
    }


    .action-text {
        margin: 0px 8px 0px 4px;
        color: #8F95B2;
    }

    .toolbar-img {
        width: 28px;
        height: 28px;
				user-select: none;
				pointer-events: none;
    }

    /* Tooltip text */
    .tooltip {
        position: relative;
        display: flex;
        flex-direction: row;
    }

    .tooltip-link {
        font-style: normal;
        font-weight: 400;
        font-size: 12px;
        line-height: 1.5em;
    }

    .tooltip-link:hover {}

    /* Tooltip text */
    .tooltip .tooltiptext {
        visibility: hidden;
        block-size: auto;
        width: max-content;
        bottom: 140%;
        background-color: black !important;
        color: #fff;
        text-align: left;
        padding: 6px 12px;
        border-radius: 6px;
        font-style: normal;
        font-weight: 400;
        font-size: 12px;
        line-height: 2em;
        display: flex;
        flex-direction: column;
        gap: ${hc(.4)};

        /* Position the tooltip text - see examples below! */
        position: absolute;
        z-index: 1;
        opacity: 0;
        transition: opacity 0.5s;
    }

    /* Show the tooltip text when you mouse over the tooltip container */
    .tooltip:hover .tooltiptext {
        visibility: visible;
        opacity: 1;
    }

    .tooltip .tooltiptext::after {
        content: " ";
        position: absolute;
        bottom: 0;
        right: 50%;
        width: 12px;
        height: 12px;
        background-color: #000;
        border-radius: 4px;
        transform: translate(50%, 41%) rotate(45deg);
        transform-origin: center;
    }

    .tooltip .tour-tooltiptext {
        block-size: auto;
        width: max-content;
        bottom: 140%;
        background-color: #625DF5 !important;
        color: #fff;
        text-align: left;
        padding: 16px;
        border-radius: 6px;
        font-style: normal;
        font-weight: 400;
        font-size: 12px;
        line-height: 3em;
        max-width: 280px;

        /* Position the tooltip text - see examples below! */
        position: absolute;
        z-index: 1;
        transition: opacity 0.5s;

        display: flex;
        flex-direction: column;
        gap: 8px;
    }

    .tooltip .tour-tooltiptext::after {
        content: " ";
        position: absolute;
        bottom: 0;
        right: 50%;
        width: 12px;
        height: 12px;
        background-color: #625DF5;
        border-radius: 4px;
        transform: translate(50%, 41%) rotate(45deg);
        transform-origin: center;
    }

    .tour-tooltip-content {
        line-height: 1.5em;
    }

    .tour-tooltip-action {
        border-radius: 8px;
        padding: 8px 16px;
        color: white;
        background: #403cab;
        border: 0;
        align-self: end;
        cursor: pointer;
    }
`,Yc=a`
    @import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');

    * {
        font-family: 'Poppins', sans-serif;
    }

    .snippyly-plugin-container {
        position: fixed;
        bottom: 0;
        right: 0;
        z-index: 2147483577;
        margin: ${hc(1.5)};
        margin-bottom: ${hc(3)}; // Added to prevent overlap between plugin UI and webflow badge
        max-width: 100vw !important;
        box-sizing: border-box;

        display: flex;
        align-items: center;
        gap: 1em;
  		}

    .snippyly-plugin-container * {
        box-sizing: border-box;
    }

    .toolbar {
        padding: 0.75em;
        gap: 0.25em;
        max-width: 100vw !important;
        background: white;
    }

    .toolbar.private-comment-mode {
        background: #18173D;
        border: 1px solid rgba(230, 232, 236, 0.12);
        box-shadow: 0px 8px 16px 0px rgba(143, 149, 178, 0.15);
        color: #8F95B2;
    }

    .toolbar.private-comment-mode .s-more-menu.dropdown .dropdown-content {
        background: #18173D !important;
        border: 1px solid rgba(230, 232, 236, 0.12);
        box-shadow: rgba(143, 149, 178, 0.15) 0px 8px 16px 0px;
    }

    .toolbar.private-comment-mode .s-more-menu.dropdown hr {
        border-top-color: #343354;
    }

    .toolbar.private-comment-mode .toolbar-divider {
        background-color: #343354;
    }

    .toolbar.private-comment-mode .s-more-menu.dropdown .dropdown-content .menu-point,
    .toolbar.private-comment-mode .s-more-menu.dropdown .dropdown-content .menu-point-wrap {
        color: white !important;
    }

    .toolbar.private-comment-mode .s-more-menu.dropdown .dropdown-content .menu-point svg:not(.toolbar-logo) * {
        fill: currentColor;
    }

    .toolbar.private-comment-mode .s-more-menu.dropdown .dropdown-content .menu-point:not(.disable-hover):hover {
        background: var(--primary-6, #625DF5);
    }

    .toolbar.private-comment-mode .toolbar-icon {
        fill: #8F95B2;
    }

    .toolbar.private-comment-mode .toolbar-icon:hover {
        background: #24234C;
    }

    .toolbar.private-comment-mode .toolbar-icon:active {
        fill: #FFFFFF !important;
        background: rgb(98, 93, 245) !important;
    }

    .toolbar.private-comment-mode .action-border {
        border: 1px solid #3F4B6C;
    }

    .toolbar.private-comment-mode .active .toolbar-icon {
        fill: #FFFFFF !important;
        background: #625DF5;
    }

    .toolbar.private-comment-mode .action-dropdown:hover {
        background: #24234C;
    }

    .toolbar.private-comment-mode .action-dropdown:active {
        background: rgb(98, 93, 245) !important;
    }

    .toolbar.private-comment-mode velt-sidebar-button .action-border:hover {
        border: 1px solid #B0AEFA;
        background: #24234C !important;
    }

    .toolbar.private-comment-mode velt-sidebar-button .action-border:hover svg {
        background: #24234C !important;
    }

    .toolbar.private-comment-mode velt-sidebar-button .action-border:hover svg path {
        stroke: #B0AEFA;
    }

    .toolbar.private-comment-mode velt-sidebar-button .action-border:hover .action-text {
        color: #B0AEFA;
        background: #24234C !important;
    }

    .action-border {
        padding: 3px 7px;
    }

    .toolbar-icon.active,
    .action-dropdown.active,
    .action-dropdown.active *{
        fill: #FFFFFF !important;
        background: #625DF5 !important;
    }

    .toolbar-img {
        border-radius: 50px;
    }

    .profile-initial {
        background: #625df5;
        width: 32px;
        height: 32px;
        border-radius: 32px;
        display: flex;
        align-items: center;
        justify-content: center;
        color: white;
        text-transform: uppercase;
    }

    .sign-in-button {
        display: flex;
        align-items: center;
        gap: 8px;
        cursor: pointer;
    }

    .sign-in-button.loading {
        cursor: not-allowed;
    }

    .toolbar:not(.expanded) .toolbar-icon-arrow {
        transform: rotate(180deg);
    }

    velt-huddle-tool .action-dropdown {
        display: flex;
        align-items: center;
        justify-content: center;
    }

    velt-huddle-tool .action-dropdown .mat-menu-trigger {
        display: flex;
    }

    velt-huddle-tool .action-dropdown svg path:first-child {
        stroke: rgb(143, 149, 178); 
        stroke-width: 1.5px;
        fill: none !important;
    }

    velt-huddle-tool .action-dropdown svg path:not(:first-child) {
        fill: rgb(143, 149, 178);
        stroke: rgb(143, 149, 178);
        stroke-width: 0.5px;
    }

    velt-huddle-tool .action-dropdown:active svg path:first-child,
    velt-huddle-tool .action-dropdown.active svg path:first-child  {
        stroke: white;
        fill: transparent !important;
    }

    velt-huddle-tool .action-dropdown:active svg path:not(:first-child),
    velt-huddle-tool .action-dropdown.active svg path:not(:first-child) {
        fill: white;
        stroke: white;
    }

    velt-recorder-tool .action-dropdown {
        display: flex;
        align-items: center;
        justify-content: center;
    }

    velt-recorder-tool .action-dropdown .mat-menu-trigger {
        display: flex;
    }

    velt-recorder-tool .action-dropdown svg path:first-child {
        fill: rgb(143, 149, 178);
        stroke-width: 1.5px;
    }

    velt-recorder-tool .action-dropdown svg path:not(:first-child) {
        fill: rgb(143, 149, 178);
    }

    velt-recorder-tool .action-dropdown:active svg path:first-child {
        fill: white;
    }

    velt-recorder-tool .action-dropdown:active svg path:not(:first-child) {
        fill: white;
    }

    .d-none {
        display: none !important;
    }

    velt-presence {
        display: flex;

        --legacy-velt-presence-avatar-size: 1.5rem;
        --legacy-velt-avatar-size: 1.5rem;
        --legacy-velt-presence-tooltip-bg-color: var(--legacy-velt-bg-color);
        --legacy-velt-presence-tooltip-border-color: var(--legacy-velt-border-color);
    }

    .s-presence-container {
        display: inline-flex;
        flex-direction: row-reverse;
        align-items: center;
    }

    .s-presence-avatar {
        position: relative;
        box-shadow: 0px 0px 0px 3px;
        border-radius: 50%;
        overflow: hidden;
        width: 24px;
        height: 24px;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 12px;
        // background-color: white;
    }

    .s-presence-avatar.more-users {
        background: #4578a7;
        box-shadow: 0px 0px 0px 3px #4578a7;
    }

    .s-presence-avatar:not(:last-child):not(.more-users) {
        margin-left: -6px !important;
    }

    .s-presence-avatar-image {
        width: 100%;
        height: auto;
        display: block;
    }

    .s-presence-avatar-image-small {
        width: ${hc(1.6)};
        height: auto;
        display: block;
    }

    .s-presence-avatar-initial {
        color: white;
    }

    .away {
        filter: grayscale(1);
    }

    velt-sidebar-button app-sidebar-button-comments-count{
        background: #625DF5;
        padding: 2px 5px 0 5px;
        font-size: 12px;
        color: white;
        width: fit-content;
        border-radius: 10px;
        min-width: 1.25rem;
        height: 1.25rem;
        display: flex;
        align-items: center;
        justify-content: center;
        position: absolute;
        right: 8px;
        top: 8px;
        transform: translate(50%, -50%);
        outline: 2px solid white;
    }

    app-sidebar-button-unread-icon {
        display: none !important;
    }

    .velt-tool--action-btn:has(app-sidebar-button-unread-icon svg)
        app-sidebar-button-comments-count {
        background-color: #ff7162;
    }

    velt-sidebar-button .action-border path {
        stroke: #8f95b2;
    }

    velt-sidebar-button .action-border {
        padding: 3px 7px 3px 10px;
    }

    .active .action-border,
    .active .action-border * {
        background: #625DF5;
        border-color: #625DF5;
        color: #FFFFFF;
        fill: #FFFFFF;
    }

    .active .toolbar-icon {
        fill: #FFFFFF !important;
        background: #625DF5;
    }

    .toolbar-avatars {
        margin: 0 !important;
    }

    .toolbar-avatars velt-presence:not(:empty) {
        margin: 0px 6px;
    }

    .tooltip {
        justify-content: center;
        align-items: center;
    }

    .cursor-pointer {
        cursor: pointer !important;
    }

    .toolbar-button {
        padding: 0.55em 1.28em;
        white-space: nowrap;
        margin: 0 8px !important;
    }

    .snippyly-logo {
         cursor: pointer; 
		 margin-right: 12px;  
    }

    snippyly-user-avatar.presence-user-avatar {
        box-shadow: 0 0 0 3px!important;
        display: flex!important;
        border-radius: 50%!important;
        z-index: 1!important;
    }

    .s-user-avatar-container {
        width: 28px!important;
        height: 28px!important;
        border-radius: 50%!important;
        overflow: hidden!important;
        display: inline-block!important;
    }

    .s-user-avatar-image {
        object-fit: cover!important;
        width: 100%!important;
        height: 100%!important;
    }

    .s-user-avatar-initial-container {
        width: 100%!important;
        height: 100%!important;
        display: flex!important;
        justify-content: center!important;
        align-items: center!important;
    }

    .s-user-avatar-initial {
        color: black !important;
        font-size: ${hc(.8)} !important;
        position: relative !important;
    }

    .s-user-avatar-initial::after {
        content: attr(data-modal-author-initial);
        position: absolute!important;
        top: 50%;
        left: 50%;
        transform: translate(-50%,-50%);
    }

    .snippyly-plugin-modal-container {
        position: fixed;
        z-index: 2147483647;
        top: 0;
        left: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100vw !important;
        height: 100vh !important;
        background: rgb(20 20 22 / 50%);
        backdrop-filter: blur(4px);
    }

    .s-modal,
    .s-modal-text {
        display: flex;
        align-items: center;
        flex-direction: column;
        width: max-content;
        border-radius: 16px;
        padding: ${hc(3)};
        font-size: ${hc(.8)};
        color: #4c5366;
        box-sizing: border-box;
    }

    .s-modal {
        margin: 16px;
        background-size: 100% 100%;
        background-position: 0px 0px, 0px 0px, 0px 0px;
        background-image: radial-gradient(113% 80% at 17% -2%, #625df573 1%, #ff000000 99%),
            radial-gradient(101% 73% at 92% 0%, #625df5 1%, #ff000000 99%),
            radial-gradient(152% 91% at 120% 120%, #ffffffff 0%, #ffffffff 100%);
    }

    .s-modal img {
		padding: ${hc(2,1,0,1)};
        width: ${hc(8)};
    }

    .s-modal-text h1 {
        font-weight: 600;
        font-size: 24px;
        line-height: 32px;
        color: #4C5366;
        font-style: normal;
        margin-bottom: ${hc(1)};
    }

    .s-modal-text p {
        font-style: normal;
        font-weight: 400;
        font-size: 14px;
        line-height: 21px;
        text-align: center;
        color: #4C5366;
    }

    .s-button {
        display: flex;
        align-items: center;
        justify-content: center;
		padding: ${hc(1,2.5)};
        border-radius: ${hc(.8)};
        font-size: ${hc(.8)};
        transition: 0.1s ease;
        cursor: pointer;
    }
    .s-primary {
        background: #625df5;
        color: white;
    }
    .s-primary:hover {
        background: #4f4bbf;
    }

    .s-modal-text {
        gap: ${hc(.2)};
        max-width: ${hc(30)};
        text-align: center;
        padding-left: 0px;
        padding-right: 0px;
        width: 100%;
    }

    @media only screen and (max-width: 620px) {

        .snippyly-plugin-container {
            left: 50%;
            right: unset !important;
            transform: translate(-50%, 0);
            margin-left: 0;
            margin-right: 0;
        }
        .snippyly-plugin-container .d-sm-none {
            display: none;
        }
        .profile-img {
            margin-left: 8px;
        }

        .comment-tool-container .tour-tooltiptext {
            left: 0 !important;
        }

        .comment-tool-container .tour-tooltiptext::after {
            right: calc(100% - 16px) !important;
        }
    }

    @media only screen and (max-width: 400px) {
        .snippyly-plugin-container .d-xs-none {
            display: none;
        }

        .action-text {
            margin-right: 0 !important;
        }

        .snippyly-plugin-container svg {
            max-width: 28px !important;
            max-height: 28px !important;
        }

        .action-dropdown {
            padding: 0px 2px;
        }
    }

    .s-user-request-tool-button {
        display: flex;
        align-items: center;
        gap: ${hc(1)};
    }

    .s-user-request-tool-button svg {
        width: 20px;
        height: 20px;
    }

    /* Last 3-dot menu options css */

    .s-more-menu hr {
        width: 90%;
        border: 0;
        border-top: ${hc(.01)} solid #D4D6DF;
        margin: 8px auto;
    }

		.content-menu-logo {
			width: 20px;
			height: 20px;

			svg{
				width: 20px;
				height: 20px;
			}
		}

    .toolbar-section {
        display: flex;
        justify-content: center;
        align-items: center;
    }

    .toolbar-icon {
        width: 32px;
        height: 32px;
        border-radius: 50px;
        fill: #80808a;
        cursor: pointer;
    }

    .toolbar-icon:hover {
        background: #625df5;
        fill: white;
    }

    .toolbar-icon:active {
        fill: #ffffff !important;
        background: #625df5;
    }

    .dropdown {
        position: relative;
        display: flex;
        flex-direction: row;
        align-items: center;
    }

    .dropdown .dropdown-content {
        visibility: hidden;
        block-size: auto;
        width: max-content;
        // bottom: 170%;
        bottom: 100%;
        right: 0%;
        background: #141416 !important;
        border: 1px solid #222226;
        border-radius: 12px;
        padding: 4px;
        position: absolute;
        z-index: 1;
        opacity: 0;
        transition: opacity 0.5s;
        display: flex;
        flex-direction: column;
        align-items: flex-start;

        min-width: 212px;
        max-width: 212px;
        background: white !important;
        border: 1px solid #D4D6DF;
    }

    .dropdown:hover .dropdown-content {
        visibility: visible;
        opacity: 1;
    }

    .dropdown-content .menu-point {
        display: flex;
        align-items: center;
        gap: ${hc(.6)};
        padding: ${hc(.6)};
        color: #ababb5;
        text-align: left;
        font-style: normal;
        font-weight: 400;
        font-size: 12px;
        line-height: 2em;
				border-radius: 8px;

        color: #4C5366;
        width: 100%;
    }

    .dropdown-content .menu-point:not(.disable-hover):hover {
        background: #f0f0f0;
        cursor: pointer;
    }
    
    .dropdown-content a {
        color: #FFCB00;
        display: flex;
        align-items: center;
        gap: ${hc(.25)};
        font-size: 12px;
        color: grey;
        text-decoration: none;
    }

    .dropdown-content a:hover {
        color: #625df5;
    }

    .dropdown-content a:hover svg path {
        fill: #625df5 !important;
    }

    .menu-point.header {
        gap: ${hc(.5)};
    }

    .menu-point-wrap {
        display: flex;
        flex-direction: column;
        color: #ababb5;
        font-size: ${hc(.9)};
		padding: ${hc(0,1,.25,1)};
        gap: ${hc(.5)};
        align-items: flex-start;
        width: 100%;
        line-height: ${hc(1.4)};

        color: #4C5366;
    }

    .user-profile-section {
        margin-left: ${hc(.5)};
    }

    .user-invite-tool-container {
        margin-right: 4px;
    }

    .qrcode-container {
        position: absolute;
        bottom: 100%;
        right: 0;
        width: 200px;
        height: 200px;
        border: 1px solid rgb(230, 232, 236);
        box-shadow: rgba(143, 149, 178, 0.15) 0px 8px 16px;
        border-radius: 16px;
        margin-bottom: 16px;
        z-index: 999;
    }

    img.qrcode {
        border-radius: 16px;
        width: 100%;
        height: 100%;
    }

    .qrcode-container-close-btn {
        position: absolute;
        top: -8px;
        right: -8px;
        background: black;
        color: white;
        border: 0;
        font-size: 12px;
        border-radius: 100px;
        line-height: 24px;
        width: 24px;
        height: 24px;
        line-height: 1;
        cursor: pointer;
    }

    .disable-add-comment-button {
        position: relative;
        width: 48px;
        height: 48px;
        background: #625DF5;
        border-radius: 100px;
        display: flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
        display: none;
    }

    .s-alert-btn {
        display: flex;
        align-items: center;
        gap: 4px;
        border-radius: 16px;
        background: #FFF8E1;
    }

    .s-alert-btn .error-container {
        display: flex;
        gap: 4px;
        align-items: center;
        color: #EDB400;
        padding: 4px 8px;
    }

    .s-alert-btn .error-container .error-message {
        font-size: 12px;
        font-style: normal;
        font-weight: 600;
        line-height: 20px;
    }

	.s-password-alert {
		display: flex;
		align-items: center;
		gap: 4px;
		border-radius: 16px;
		background: #FFF8E1;
	}

	.s-password-alert .error-container {
		display: flex;
		padding: 4px 8px;
		align-items: center;
		gap: 4px;
		border-radius: 16px 0px 0px 16px;
		background: #FFF8E1;
	}

	.s-password-alert .error-container .error-message {
		color: #FFCD2E;
		text-align: center;
		font-family: Poppins;
		font-size: 12px;
		font-style: normal;
		font-weight: 600;
		line-height: 20px;
	}

	.s-password-alert .cta-btn {
		cursor: pointer;
		display: flex;
		height: 32px;
		padding: 5.5px 8px;
		align-items: center;
		gap: 8px;
		border-radius: 16px;
		background: var(--Secondary-3, #FFCD2E);
		color: var(--New-Netural-2, #23262F);
		text-align: center;
		font-family: Poppins;
		font-size: 12px;
		font-style: normal;
		font-weight: 600;
		line-height: 20px;
	}

    .s-cta-btn {
        display: flex;
        padding: 5.5px 8px;
        align-items: center;
        gap: 8px;
        border-radius: 16px;
        background: #FFCD2E;
        color: white;
        height: 100%;
        cursor: pointer;

        font-size: 12px;
        font-style: normal;
        font-weight: 600;
        line-height: 20px;
    }

    .s-alert-btn.danger {
        background: var(--shade-1, #FBE6E7);
    }

    .s-alert-btn.danger .error-container {
        color: #FF7162;
    }

    .s-alert-btn.danger .s-cta-btn {
        background: #FF7162;
    }

    .s-guest-mode-chip {
        display: flex;
        position: fixed;
        top: 0px;
        left: 50%;
        transform: translateX(-50%);
        z-index: 2147483558;
    }

    .s-guest-mode-chip-title {
        display: flex;
        padding: 6px 16px;
        align-items: center;
        gap: 8px;
        border-radius: 0px 0px 0px 8px;
        background: var(--neutrals-3, #353945);
        color: #FCFCFD;
        font-size: 12px;
        font-style: normal;
        font-weight: 700;
        line-height: 24px;
        text-transform: uppercase;
    }

	.s-guest-mode-rounded-corners {
		border-radius: 0px 0px 8px 8px;
	}

    .s-guest-mode-chip-action {
        display: flex;
        padding: 6px 16px;
        align-items: center;
        gap: 8px;
        border-radius: 0px 0px 8px;
        border: 1px solid var(--neutrals-3, #353945);
        background: var(--neutrals-1, #141416);
        color: rgb(252, 252, 253);
        font-size: 12px;
        font-style: normal;
        font-weight: 700;
        line-height: 24px;
        cursor: pointer;
    }

    .s-guest-mode-signin-modal-container .s-modal {
        background: #FFFFFF;
        padding: 48px 96px;
		position: relative;
    }

	.s-password-container .s-modal {
        padding: 52px 40px 40px 40px;
		width: 460px;
    }

    .s-guest-mode-signin-modal-container .s-modal-superflow-logo {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
    }

    .s-guest-mode-signin-modal-container .s-modal-superflow-logo span {
        color: #141416;
        font-size: 27.068px;
        font-style: normal;
        font-weight: 600;
        line-height: normal;
        letter-spacing: -0.812px;
    }

    .s-guest-mode-signin-modal-container .s-modal-title {
        color: var(--neutrals-1, #141416);
        text-align: center;
        font-size: 32px;
        font-style: normal;
        font-weight: 600;
        line-height: 40px;
        letter-spacing: -0.32px;
        margin-top: 24px;
    }

    .s-guest-mode-signin-modal-container .s-modal-subtitle {
        color: var(--primary-6, #625DF5);
        text-align: center;
        font-size: 16px;
        font-style: normal;
        font-weight: 600;
        line-height: 24px; /* 150% */
        margin-top: 16px;

    }

	.s-guest-mode-signin-modal-container .s-modal-secondary-subtitle {
        text-align: center;
        margin-top: 16px;
		color: #000;
		font-family: Poppins;
		font-size: 20px;
		font-style: normal;
		font-weight: 600;
		line-height: normal;
    }

	.s-guest-mode-signin-modal-container .s-modal-secondary-desc {
		text-align: center;
		margin-top: 8px;
		color: var(--New-Netural-4, #777E90);
		font-family: Poppins;
		font-size: 14px;
		font-style: normal;
		font-weight: 400;
		line-height: 130%;
    }

	.s-guest-mode-signin-modal-container .s-modal-secondary-desc-sign-in {
		display: inline;
		cursor: pointer;
		color: var(--Primary-6, #625DF5);
		font-family: Poppins;
		font-size: 14px;
		font-style: normal;
		font-weight: 400;
		line-height: 130%;
		text-decoration-line: underline;
    }

	.s-guest-mode-signin-modal-container .s-modal-secondary-actions {
		display: flex;
		justify-content: center;
		align-items: flex-start;
		gap: 12px;
		align-self: stretch;
    }

	.s-guest-mode-signin-modal-container .error-message {
		width: 100%;
		display: flex;
		justify-content: flex-start;
		align-items: center;
		gap: 8px;
		color: var(--Primary-3, #FF7162);
		font-family: Poppins;
		font-size: 12px;
		font-style: normal;
		font-weight: 500;
		line-height: normal;
    }

	.s-guest-mode-signin-modal-container .s-modal-secondary-actions-submit {
		display: flex;
        padding: 16px 48px;
        justify-content: center;
        align-items: center;
        gap: 10px;
        border-radius: 100px;
        background: var(--primary-6, #625DF5);
		margin-top: 24px;
    }

	.s-guest-mode-signin-modal-container .s-disabled {
        background: var(--neutrals-8, #E6E8EC);
        cursor: not-allowed;
    }    

    .s-guest-mode-signin-modal-container .s-signin-button {
        display: flex;
        padding: 16px 48px;
        justify-content: center;
        align-items: center;
        gap: 10px;
        border-radius: 100px;
        background: var(--primary-6, #625DF5);
        margin-top: 36px;
    }

    .s-guest-mode-signin-modal-container .s-signin-button.s-disabled {
        background: var(--neutrals-8, #E6E8EC);
        cursor: not-allowed;
    }    

    .s-guest-mode-signin-modal-container .s-modal-link-text {
        color: var(--neutrals-6, #8F95B2);
        text-align: center;
        font-size: 12px;
        font-style: normal;
        font-weight: 500;
        line-height: normal;
        text-decoration-line: underline;
        cursor: pointer;
        margin-top: 24px;
    }

	.s-guest-mode-signin-modal-container .s-modal-close-button {
		cursor: pointer;
		position: absolute;
		right: 16px;
		top: 16px;
    }

    .s-guest-mode-signin-modal-container input {
        display: flex;
        padding: 12px 18px;
        justify-content: center;
        align-items: center;
        gap: 12px;
        border-radius: 14.325px;
        border: 1.194px solid var(--neutrals-8, #E6E8EC);
        width: 100%;
        margin-top: 24px;
    }

    .s-guest-user-sign-in-button {
        display: flex;
        padding: 8px 12px;
        align-items: center;
        gap: 8px;
        border-radius: 16px;
        background: var(--primary-6, #625DF5);
        color: var(--neutrals-13, #FFF);
        text-align: center;
        font-size: 12px;
        font-style: normal;
        font-weight: 600;
        line-height: 20px; /* 166.667% */
        cursor: pointer;
    }

    .s-guest-mode-banner {
        position: fixed;
        top: 56px;
        max-width: 80vw;
        left: 50%;
        transform: translateX(-50%);

        display: flex;
        width: 1000px;
        padding: 20px 40px;
        justify-content: space-between;
        align-items: center;
        border-radius: 16px;
        border: 1px solid var(--primary-6, #625DF5);
        background: var(--primary-6, #625DF5);

        color: var(--neutrals-13, #FFF);
        font-size: 16px;
        font-style: normal;
        font-weight: 600;
        line-height: 24px; /* 150% */

        z-index: 2147483558;
    }

    .s-guest-mode-banner button {
        display: flex;
        padding: 12px 24px;
        justify-content: center;
        align-items: flex-start;
        gap: 10px;
        align-self: stretch;
        border-radius: 20px;
        border: 1px solid var(--neutrals-9, #E6E8EC);
        background: var(--primary-7, linear-gradient(0deg, rgba(0, 0, 0, 0.25) 0%, rgba(0, 0, 0, 0.25) 100%), #625DF5);

        color: var(--neutrals-13, #FFF);
        font-size: 14px;
        font-style: normal;
        font-weight: 500;
        line-height: 16px; /* 114.286% */
        letter-spacing: -0.21px;
        cursor: pointer;
    }

    .s-guest-mode-banner .s-guest-mode-banner-actions {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 16px;
    }

    velt-comment-tool {
        display: flex;
    }

    velt-comment-tool.active {
        --legacy-velt-tool-icon-size: var(--legacy-velt-tool-active-icon-size);
        --legacy-velt-tool-icon-color: var(--legacy-velt-tool-active-icon-color);
        --legacy-velt-tool-border-radius: var(--legacy-velt-tool-active-border-radius);
        --legacy-velt-tool-border-color: var(--legacy-velt-tool-active-border-color);
        --legacy-velt-tool-border: var(--legacy-velt-tool-active-border);
        --legacy-velt-tool-bg-color: var(--legacy-velt-tool-active-bg-color);
    }

    .private-comment-mode-switch-container {
        margin-right: 4px;
    }

    .private-comment-mode-switch {
        display: flex;
        justify-content: flex-start;
        width: 52px;
        height: 36px;
        padding: 4px;
        align-items: center;
        border-radius: 32px;
        border: 1px solid rgba(143, 149, 178, 0.12);
        background: rgba(143, 149, 178, 0.08);
        transition: all 0.2s ease-in-out;
        cursor: pointer;
    }

    .private-comment-mode-switch .switch-icon {
        display: flex;
        padding: 4px;
        border-radius: 100%;
    }

    .private-comment-mode-switch-container .tooltiptext {
        padding: 12px;
    }

    .private-comment-mode-switch-container .tooltiptext .title {
        color: var(--neutrals-10, #FFF);
        font-style: normal;
        font-weight: 400;
        line-height: normal;
    }

    .private-comment-mode-switch-container .tooltiptext .body {
        color: var(--neutrals-8, #D4D6DF);
    }

    .private-comment-mode-switch-container.enabled .private-comment-mode-switch {
        background: var(--primary-6, #625DF5);
        justify-content: flex-end;
    }

    .private-comment-mode-switch-container.enabled .private-comment-mode-switch .switch-icon {
        background: white;
    }

    .notification-container {
        display: flex;
        position: relative;
        cursor: pointer;
    }

    .notification-container .notification {
        border-radius: 100%;
        padding: 2px;
        outline: 2px solid rgb(255, 95, 122);
    }

    .notification-container .notification-badge {
        display: inline-block;
        width: 8px;
        height: 8px;
        border-radius: 100%;
        position: absolute;
        background-color: rgb(255, 95, 122);
        top: 2px;
        right: 4px;
        transform: translate(50%, -50%);
    }

    velt-view-analytics {
        width: 100%;
    }

    velt-view-analytics .menu-point {
        width: 210px !important;
    }

    velt-notifications-tool .menu-point {
        width: 210px !important;
    }

    .velt-tool--action-btn {
        display: flex;
        justify-content: center;
        align-items: center;
        padding: var(--legacy-velt-tool-padding);
        border-radius: var(--legacy-velt-tool-border-radius);
        border: var(--legacy-velt-tool-border);
        background-color: var(--legacy-velt-tool-bg-color);
   }
    .velt-tool--action-btn .velt-tool--action-btn-icon {
        width: rem_var(var(--legacy-velt-tool-icon-size));
        height: rem_var(var(--legacy-velt-tool-icon-size));
        color: var(--legacy-velt-tool-icon-color);
        cursor: pointer;
   }
    .velt-tool--action-btn:focus {
        border-radius: var(--legacy-velt-tool-focus-border-radius);
        border: var(--legacy-velt-tool-focus-border);
        background-color: var(--legacy-velt-tool-focus-bg-color);
   }
    .velt-tool--action-btn:focus .velt-tool--action-btn-icon {
        width: rem_var(var(--legacy-velt-tool-focus-icon-size));
        height: rem_var(var(--legacy-velt-tool-focus-icon-size));
        color: var(--legacy-velt-tool-focus-icon-color);
   }
    .velt-tool--action-btn:hover {
        border-radius: var(--legacy-velt-tool-hover-border-radius);
        border: var(--legacy-velt-tool-hover-border);
        background-color: var(--legacy-velt-tool-hover-bg-color);
   }
    .velt-tool--action-btn:hover .velt-tool--action-btn-icon {
        width: rem_var(var(--legacy-velt-tool-hover-icon-size));
        height: rem_var(var(--legacy-velt-tool-hover-icon-size));
        color: var(--legacy-velt-tool-hover-icon-color);
   }
    .velt-tool--action-btn:active, .velt-tool--action-btn.active {
        border-radius: var(--legacy-velt-tool-active-border-radius);
        border: var(--legacy-velt-tool-active-border);
        background-color: var(--legacy-velt-tool-active-bg-color);
   }
    .velt-tool--action-btn:active .velt-tool--action-btn-icon, .velt-tool--action-btn.active .velt-tool--action-btn-icon {
        width: rem_var(var(--legacy-velt-tool-active-icon-size));
        height: rem_var(var(--legacy-velt-tool-active-icon-size));
        color: var(--legacy-velt-tool-active-icon-color);
   }   

   velt-sidebar-button .velt-sidebar-button {
	 			display: flex;
        width: max-content !important;
        --legacy-velt-tool-border: var(--legacy-velt-tool-focus-border);
        --legacy-velt-tool-hover-border: 1px solid #e6e8ec;
    }
    velt-sidebar-button .velt-sidebar-button.dark {
        --legacy-velt-tool-hover-border: 1px solid #23262f;
    }
    velt-sidebar-button .velt-tool--action-btn {
        display: inline-flex;
        justify-content: center;
        align-items: center;
        gap: 4px;
        padding: 4px;
        border-radius: var(--legacy-velt-tool-border-radius);
        border: var(--legacy-velt-tool-border);
        border-width: 1px;
				border-color: transparent;
        background-color: var(--legacy-velt-tool-bg-color);
        color: var(--legacy-velt-tool-icon-color);
        cursor: pointer;
    }
    velt-sidebar-button .velt-tool--action-btn .velt-tool--action-btn-label {
        font-size: rem(0.9);
        font-weight: 500;
        color: currentColor;
    }
    velt-sidebar-button .velt-tool--action-btn .velt-tool--action-btn-icon {
        width: 1.8rem;
        height: 1.8rem;
        color: currentColor;
    }

		app-sidebar-button-icon{
			display: flex;
			justify-content: center;
			align-items: center;
		}

    velt-sidebar-button .velt-tool--action-btn:focus {
        border-radius: var(--legacy-velt-tool-focus-border-radius);
        border: var(--legacy-velt-tool-focus-border);
        border-width: 1px;
        background-color: var(--legacy-velt-tool-focus-bg-color);
        color: var(--legacy-velt-tool-focus-icon-color);
    }
    velt-sidebar-button .velt-tool--action-btn:focus .velt-tool--action-btn-icon {
        width: 1.8rem !important;
        height: 1.8rem !important;
    }
    velt-sidebar-button .velt-tool--action-btn:hover {
        border-radius: var(--legacy-velt-tool-hover-border-radius);
        border: var(--legacy-velt-tool-hover-border);
        border-width: 1px;
        background-color: var(--legacy-velt-tool-hover-bg-color);
        color: var(--legacy-velt-tool-hover-icon-color);
    }
    velt-sidebar-button .velt-tool--action-btn:hover .velt-tool--action-btn-icon {
        width: 1.8rem;
        height: 1.8rem;
    }
    velt-sidebar-button .velt-tool--action-btn:active, velt-sidebar-button .velt-tool--action-btn.active {
        border-radius: var(--legacy-velt-tool-active-border-radius);
        border: var(--legacy-velt-tool-active-border);
        border-width: 1px;
        background-color: var(--legacy-velt-tool-active-bg-color);
        color: var(--legacy-velt-tool-active-icon-color);
    }

    .private-comment-mode {
        --legacy-velt-tool-icon-color: #8F95B2;
        --legacy-velt-tool-hover-icon-color: #8F95B2;
        --legacy-velt-tool-hover-bg-color: #24234C !important;
        --legacy-velt-tool-hover-border: 2px solid #24234C !important;
    }

    .private-comment-mode velt-sidebar-button .velt-tool--action-btn, .private-comment-mode velt-sidebar-button::part(button-container) {
        --legacy-velt-tool-border: 2px solid #3F4B6C !important;
        --legacy-velt-tool-hover-border: 1px solid #B0AEFA !important;
        --legacy-velt-tool-hover-bg-color: #24234C !important;
        --legacy-velt-tool-hover-icon-color: #B0AEFA !important;
    }

	@media only screen and (max-width: 620px) {
		.disable-add-comment-button {
            display: flex;
        }
		.s-password-alert .error-container .password {
			display: none;
		}
		.s-password-alert .cta-btn {
			width: 110px;
		}

		.s-guest-mode-signin-modal-container .s-modal-secondary-actions {
			flex-direction: column;
			align-items: center;
		}

	}

	@media only screen and (max-width: 700px) {
		.hide-arrow-tool {
			display: none;
		}
		.hide-huddle-tool {
			display: none;
		}
	}
`,qc=a`
    :host {
        display: flex;
        justify-content: center;
        align-items: center;
    }

    :host([mode="modal"]) {
        overflow: hidden;
        background-color: rgba(0, 0, 0, 0.5);
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        z-index: 10000;
    }

    .share-modal {
        background: var(--superflow-surface-1, #ffffff);
        width: 520px;
        box-shadow: 0px 64px 64px -48px rgba(31, 47, 70, 0.12);
        border: 1px solid var(--superflow-surface-3, #e6e8ec);
        border-radius: var(--superflow-border-radius-md, 12px);
        max-height: 60vh;
        overflow-y: auto;
        animation: scale-in 300ms ease-in-out;
    }

    @keyframes scale-in {
        from {
            opacity: 0;
            transform: scale(0.95);
        }
        to {
            opacity: 1;
            transform: scale(1);
        }
    }

    .share-modal-content {
        display: flex;
        flex-direction: column;
        gap: var(--superflow-spacing-xl, 24px);
        padding: var(--superflow-spacing-xl, 24px);
        background-color: var(--superflow-surface-0, #ffffff);
        border-radius: var(--superflow-border-radius-md, 12px);
    }

    .share-modal-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        background-color: inherit;
        position: sticky;
        top: 0;
        z-index: 1;
    }

    .share-modal-header.locked {
        align-items: flex-start;
    }

    .share-modal-header-content {
        display: flex;
        align-items: flex-start;
        flex-direction: column;
        gap: var(--superflow-spacing-rg, 16px);
    }

    .share-modal-header-title {
        display: flex;
        align-items: center;
        gap: var(--superflow-spacing-sm, 8px);
    }

    .lock-icon {
        font-size: 24px;
        color: var(--superflow-brand-primary, #625df5);
    }

    h2 {
        color: var(--superflow-text-0, #23262f);
        font-size: calc(var(--superflow-font-size-md, 18px) - 4px);
        font-weight: 500;
        line-height: 120%;
        letter-spacing: -0.015em;
        margin: 0;
    }

    .share-modal-header-description {
        color: var(--superflow-text-4, #777e91);
        font-size: var(--superflow-font-size-rg, 14px);
        line-height: 120%;
        letter-spacing: -0.015em;
    }

    .close-button {
        transition: all 150ms ease-in-out;
        color: var(--superflow-text-4, #777e91);
        margin-right: var(--superflow-spacing-xs, 4px);
        background: transparent;
        border: none;
        padding: 4px;
        cursor: pointer;
        font-size: 20px;
    }

    .close-button:hover {
        color: var(--superflow-text-0, #23262f);
    }

    .input-form {
        display: flex;
        gap: var(--superflow-spacing-rg, 16px);
        flex-direction: column;
    }

    .input-group {
        display: flex;
        align-items: flex-end;
        gap: var(--superflow-spacing-sm, 8px);
    }

    .email-input-container {
        position: relative;
        flex: 1;
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
        padding: var(--superflow-spacing-sm, 8px) var(--superflow-spacing-md, 12px);
        border: 2px solid var(--superflow-surface-2, #f4f5f6);
        border-radius: var(--superflow-border-radius-md, 12px);
        transition: all 300ms ease-in-out;
        transition-delay: 100ms;
        min-height: 42px;
        color: var(--superflow-text-0, #23262f);
    }

    .email-input-container:focus-within:not(.editing) {
        border: 2px solid var(--superflow-brand-primary, #625df5);
        box-shadow: 0 0 0 4px color-mix(in oklch, var(--superflow-brand-primary, #625df5), transparent 90%);
    }

    .email-input-container.warning:focus-within:not(.editing) {
        border: 2px solid var(--superflow-semantic-warning, #ff6b6b);
        box-shadow: 0 0 0 4px color-mix(in oklch, var(--superflow-semantic-warning, #ff6b6b), transparent 90%);
    }

    .email-pills {
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
        width: 100%;
    }

    .email-pill {
        display: flex;
        align-items: center;
        gap: var(--superflow-spacing-xs, 4px);
        padding: var(--superflow-spacing-xs, 4px) var(--superflow-spacing-sm, 8px);
        padding-right: var(--superflow-spacing-xs, 4px);
        background-color: var(--superflow-surface-2, #f4f5f6);
        border-radius: var(--superflow-border-radius-md, 12px);
        font-size: var(--superflow-font-size-sm, 12px);
        color: var(--superflow-text-1, #353945);
        transition: all 200ms ease-in-out;
        width: fit-content;
    }

    .email-pill:hover {
        background-color: var(--superflow-surface-3, #e6e8ec);
    }

    .email-pill.editing {
        background-color: color-mix(in srgb, var(--superflow-brand-primary, #625df5), var(--superflow-surface-0, #ffffff) 90%);
    }

    .email-pill p {
        cursor: pointer;
        margin: 0;
    }

    .edit-input {
        background: transparent;
        border: none;
        outline: none;
        width: 100%;
        min-width: 50px;
        max-width: 200px;
        font-size: inherit;
        color: var(--superflow-text-0, #23262f);
        padding: 0;
        margin: 0;
        font-family: inherit;
    }

    .remove-email {
        display: flex;
        align-items: center;
        justify-content: center;
        padding: var(--superflow-spacing-xs, 4px);
        border-radius: 50%;
        background: transparent;
        cursor: pointer;
        border: none;
        font-size: 14px;
        line-height: 1;
    }

    .remove-email:hover {
        background-color: color-mix(in srgb, var(--superflow-semantic-error, #ff6b6b), var(--superflow-surface-3, #e6e8ec) 90%);
        color: var(--superflow-semantic-error, #ff6b6b);
    }

    input#mainInput {
        flex: 1;
        min-width: 120px;
        border: none;
        outline: none;
        background: transparent;
        font-size: var(--superflow-font-size-rg, 14px);
    }

    input#mainInput::placeholder {
        color: #838383;
    }

    .contacts-list {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background: var(--superflow-surface-0, #ffffff);
        border: 1px solid var(--superflow-surface-3, #e6e8ec);
        border-radius: var(--superflow-border-radius-rg, 8px);
        margin-top: var(--superflow-spacing-xs, 4px);
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
        z-index: 10;
        max-height: 250px;
        overflow-y: auto;
        padding: var(--superflow-spacing-xs, 4px);
    }

    .contact-item {
        padding: var(--superflow-spacing-sm, 8px);
        cursor: pointer;
        transition: background 200ms ease-in-out;
        border-radius: calc(var(--superflow-border-radius-rg, 8px) - 2px);
    }

    .contact-item:hover {
        background: var(--superflow-surface-2, #f4f5f6);
    }

    .contact-item.loading-state,
    .contact-item.no-results {
        cursor: default;
    }

    .contact-item.loading-state:hover,
    .contact-item.no-results:hover {
        background: transparent;
    }

    .contact-info {
        display: flex;
        align-items: center;
        gap: var(--superflow-spacing-rg, 16px);
    }

    .avatar {
        width: 32px;
        height: 32px;
        border-radius: 50%;
        font-size: 1em;
        flex-shrink: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        background-color: var(--superflow-surface-3, #e6e8ec);
        color: var(--superflow-text-2, #777e91);
        font-weight: 500;
        border: 2px solid var(--superflow-surface-0, #ffffff);
    }

    .contact-details {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 2px;
        overflow: hidden;
        flex: 1;
    }

    .contact-name {
        color: var(--superflow-text-0, #23262f);
        font-size: var(--superflow-font-size-sm, 12px);
        margin: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        max-width: 100%;
    }

    .contact-email {
        color: var(--superflow-text-3, #777e91);
        font-size: var(--superflow-font-size-xs, 11px);
        margin: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        max-width: 100%;
    }

    .loading-spinner {
        width: 20px;
        height: 20px;
        border: 2px solid var(--superflow-surface-3, #e6e8ec);
        border-top-color: var(--superflow-brand-primary, #625df5);
        border-radius: 50%;
        animation: spin 0.8s linear infinite;
    }

    @keyframes spin {
        0% { transform: rotate(0deg); }
        100% { transform: rotate(360deg); }
    }

    .loading-text {
        color: var(--superflow-text-3, #777e91);
        font-size: var(--superflow-font-size-sm, 12px);
        margin: 0;
    }

    .no-results p {
        color: var(--superflow-text-3, #777e91);
        font-size: var(--superflow-font-size-sm, 12px);
        margin: 0;
        width: 100%;
        text-align: center;
    }

    .user-type-dropdown select {
        height: 44px;
        padding: var(--superflow-spacing-sm, 8px) var(--superflow-spacing-md, 12px);
        border: 2px solid var(--superflow-surface-2, #f4f5f6);
        border-radius: var(--superflow-border-radius-lg, 16px);
        background-color: var(--superflow-surface-0, #ffffff);
        color: var(--superflow-text-0, #23262f);
        font-size: var(--superflow-font-size-rg, 14px);
        cursor: pointer;
        outline: none;
        transition: all 200ms ease-in-out;
        appearance: none;
        background-image: url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23777E91' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
        background-repeat: no-repeat;
        background-position: right 12px center;
        padding-right: 36px;
    }

    .user-type-dropdown select:hover {
        border-color: var(--superflow-surface-3, #e6e8ec);
    }

    .user-type-dropdown select:focus {
        border-color: var(--superflow-brand-primary, #625df5);
        box-shadow: 0 0 0 4px color-mix(in oklch, var(--superflow-brand-primary, #625df5), transparent 90%);
    }

    .message {
        display: flex;
        align-items: center;
        gap: var(--superflow-spacing-sm, 8px);
        font-size: var(--superflow-font-size-sm, 12px);
        margin-left: var(--superflow-spacing-xs, 4px);
    }

    .message .icon {
        font-size: 16px;
    }

    .message p {
        margin: 0;
    }

    .info-message .icon {
        color: var(--superflow-text-4, #777e91);
    }

    .info-message p {
        color: var(--superflow-text-4, #777e91);
        font-size: var(--superflow-font-size-sm, 12px);
    }

    .error-message .icon {
        color: var(--superflow-semantic-warning, #ff6b6b);
    }

    .error-message p {
        color: color-mix(in srgb, var(--superflow-semantic-warning, #ff6b6b), var(--superflow-text-0, #23262f) 52%);
        font-size: var(--superflow-font-size-sm, 12px);
    }

    .share-modal-footer {
        position: sticky;
        bottom: 0;
        z-index: 1;
        background-color: var(--superflow-surface-1, #ffffff);
        padding: var(--superflow-spacing-md, 16px) var(--superflow-spacing-lg, 20px);
        display: flex;
        flex-direction: column;
        gap: var(--superflow-spacing-sm, 8px);
        font-size: var(--superflow-font-size-sm, 12px);
    }

    .share-modal-footer-buttons {
        display: flex;
        justify-content: space-between;
        gap: var(--superflow-spacing-sm, 8px);
    }

    .copy-link-button {
        display: flex;
        align-items: center;
        gap: var(--superflow-spacing-sm, 8px);
        background-color: var(--superflow-surface-1, #ffffff);
        border: 1px solid var(--superflow-surface-3, #e6e8ec);
        border-radius: var(--superflow-border-radius-md, 12px);
        padding: var(--superflow-spacing-sm, 8px) var(--superflow-spacing-md, 12px);
        color: var(--superflow-brand-primary, #625df5);
        cursor: pointer;
        transition: all 200ms ease-in-out;
        font-size: var(--superflow-font-size-sm, 12px);
    }

    .copy-link-button:hover {
        background-color: var(--superflow-surface-2, #f4f5f6);
    }

    .copy-link-button .icon {
        font-size: 20px;
    }

    .copy-link-button p {
        margin: 0;
    }

    .button-primary {
        background-color: var(--superflow-brand-primary, #625df5);
        color: white;
        border: none;
        border-radius: var(--superflow-border-radius-md, 12px);
        padding: var(--superflow-spacing-sm, 8px) var(--superflow-spacing-lg, 20px);
        font-size: var(--superflow-font-size-rg, 14px);
        font-weight: 500;
        cursor: pointer;
        transition: all 200ms ease-in-out;
        min-width: 80px;
    }

    .button-primary:hover:not(:disabled) {
        background-color: color-mix(in srgb, var(--superflow-brand-primary, #625df5), black 10%);
    }

    .button-primary:disabled {
        opacity: 0.5;
        cursor: not-allowed;
    }

    .upgrade-button-container {
        box-shadow: 0px 0px 24px rgba(0, 0, 0, 0.12);
        display: block;
        padding: 2px;
        margin: -2px;
        border-radius: var(--superflow-border-radius-md, 12px);
        width: fit-content;
        animation: soothing-gradient 25s ease infinite;
        transition: all 300ms ease-in-out;
        background: radial-gradient(circle at center,
            #9b4dca, #1a237e, #000000, #ffffff, #ff0000,
            #ffcdb2, #ffa500, #ffeb3b, #4caf50, #9b4dca);
        background-size: 400% 400%;
    }

    .upgrade-button-container:hover {
        animation: soothing-gradient 10s ease infinite;
        background-position: 100% 100%;
    }

    @keyframes soothing-gradient {
        0% { background-position: 0% 0%; }
        50% { background-position: 100% 100%; }
        100% { background-position: 0% 0%; }
    }

    .upgrade-button {
        background-color: var(--superflow-surface-0, #ffffff);
        color: var(--superflow-brand-primary, #625df5);
    }

    .upgrade-button:hover:not(:disabled) {
        background-color: var(--superflow-surface-0, #ffffff);
    }

    @media screen and (max-width: 768px) {
        .share-modal {
            width: 100%;
            margin: var(--superflow-spacing-lg, 20px);
        }

        .share-modal-content {
            padding: var(--superflow-spacing-lg, 20px);
        }
    }
`;var Qc,Xc=function(t,e,i,n){for(var o,s=arguments.length,r=s<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n,a=t.length-1;a>=0;a--)(o=t[a])&&(r=(s<3?o(r):s>3?o(e,i,r):o(e,i))||r);return s>3&&r&&Object.defineProperty(e,i,r),r};!function(t){t.Admin="Admin",t.Commenter="Commenter"}(Qc||(Qc={}));let td=class extends X{constructor(){super(...arguments),this.apiKey="",this.documentId="",this.disableInvite=!1,this.hasInviteAccess=!0,this.userSeatsExhausted=!1,this.userType=Qc.Admin,this.showCheckIcon=!1,this.contactListIsHovered=!1,this.invalidEmail=!1,this.isEmailValid=!1,this.inviting=!1,this.searchingUsers=!1,this.emailInput="",this.emailTags=[],this.editingTag=null,this.editingInput="",this.duplicateEmail="",this.filteredContacts=[],this.searchDebounceTimer=null,this.handleOutsideClick=t=>{try{t.target===this&&this.close()}catch(t){console.error("Error in handleOutsideClick:",t)}}}connectedCallback(){try{super.connectedCallback(),document.addEventListener("click",this.handleOutsideClick),this.userSeatsExhausted&&this.userType===Qc.Admin&&(this.userType=Qc.Commenter)}catch(t){console.error("Error in connectedCallback:",t)}}willUpdate(t){t.has("userSeatsExhausted")&&this.userSeatsExhausted&&this.userType===Qc.Admin&&(this.userType=Qc.Commenter)}disconnectedCallback(){try{super.disconnectedCallback(),document.removeEventListener("click",this.handleOutsideClick),this.searchDebounceTimer&&clearTimeout(this.searchDebounceTimer)}catch(t){console.error("Error in disconnectedCallback:",t)}}close(){try{this.dispatchEvent(new CustomEvent("superflow-invite-modal-close",{bubbles:!0,composed:!0}))}catch(t){console.error("Error in close:",t)}}validateEmail(t){try{const e=t.replace(/,/g,"").toLowerCase().trim();if(this.emailTags.some((t=>t.email===e)))return this.duplicateEmail=e,!1;if(this.duplicateEmail="",e.includes(" "))return!1;return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}catch(t){return console.error("Error in validateEmail:",t),!1}}async searchUser(t=""){try{if(this.searchDebounceTimer&&clearTimeout(this.searchDebounceTimer),!t.trim())return this.filteredContacts=[],void(this.searchingUsers=!1);this.filteredContacts=[],this.searchingUsers=!1}catch(t){console.error("Error in searchUser:",t),this.searchingUsers=!1}}handleEmailChange(t){try{const e=t.target;this.emailInput=e.value,this.isEmailValid=this.validateEmail(e.value),this.searchUser(e.value)}catch(t){console.error("Error in handleEmailChange:",t)}}handleKeyUp(t){try{if(!this.emailInput)return this.invalidEmail=!1,void(this.isEmailValid=!1);if("Backspace"===t.code)return void(this.invalidEmail=!1);if("Enter"!==t.code&&"Comma"!==t.code)return;const e=this.emailInput.replace(/,/g,"").trim();if(!e)return;this.validateEmail(e)?(this.addEmailTag(e),this.emailInput="",this.invalidEmail=!1):(this.invalidEmail=!0,setTimeout((()=>{this.invalidEmail=!1}),1500))}catch(t){console.error("Error in handleKeyUp:",t)}}handlePaste(t){var e,i;try{t.preventDefault();const n=((null===(e=t.clipboardData)||void 0===e?void 0:e.getData("text"))||"").split(/[,\n|;]/).map((t=>t.trim())).filter((t=>t.length>0));let o=!1;n.forEach((t=>{this.emailTags.some((e=>e.email===t))?(this.duplicateEmail=t,this.emailInput=t,o=!0):this.validateEmail(t)?this.addEmailTag(t):(o=!0,this.emailInput=t)})),o&&(this.invalidEmail=!0,setTimeout((()=>{this.invalidEmail=!1}),1500)),null===(i=this.mainInput)||void 0===i||i.focus()}catch(t){console.error("Error in handlePaste:",t)}}addEmailTag(t){var e;try{if(!t)return;if(!this.validateEmail(t))return void(this.invalidEmail=!this.duplicateEmail);this.emailTags=[...this.emailTags,{name:"",email:t.toLowerCase().trim(),type:this.userType}],this.invalidEmail=!1,this.duplicateEmail="",this.emailInput="",this.contactListIsHovered=!1,null===(e=this.mainInput)||void 0===e||e.focus()}catch(t){console.error("Error in addEmailTag:",t)}}removeTag(t,e){var i;try{e.stopPropagation(),this.emailTags=this.emailTags.filter((e=>e.email!==t.email)),0===this.emailTags.length&&(this.isEmailValid=!1),null===(i=this.mainInput)||void 0===i||i.focus()}catch(e){console.error("Error in removeTag:",e)}}startEditingTag(t,e){try{e.stopPropagation(),this.editingTag=t,this.editingInput=t.email,setTimeout((()=>{var t;null===(t=this.editInput)||void 0===t||t.focus()}),100)}catch(e){console.error("Error in startEditingTag:",e)}}handleEditKeyUp(t){try{if("Enter"!==t.code&&"Escape"!==t.code)return;"Enter"===t.code&&this.editingInput&&this.validateEmail(this.editingInput)?this.updateEmailTag():this.cancelEmailTagEdit()}catch(t){console.error("Error in handleEditKeyUp:",t)}}updateEmailTag(){try{if(!this.editingTag||!this.validateEmail(this.editingInput))return void this.cancelEmailTagEdit();const t=this.emailTags.findIndex((t=>{var e;return t.email===(null===(e=this.editingTag)||void 0===e?void 0:e.email)}));if(-1===t)return void this.cancelEmailTagEdit();this.emailTags=[...this.emailTags.slice(0,t),{...this.editingTag,email:this.editingInput.toLowerCase().trim(),type:this.userType},...this.emailTags.slice(t+1)],this.cancelEmailTagEdit()}catch(t){console.error("Error in updateEmailTag:",t)}}cancelEmailTagEdit(){var t;try{this.editingTag=null,this.editingInput="",null===(t=this.mainInput)||void 0===t||t.focus()}catch(t){console.error("Error in cancelEmailTagEdit:",t)}}async copyReviewLink(){try{let t=window.location.href;const e=new URL(t);e.searchParams.has("review")&&"true"===e.searchParams.get("review")||(e.searchParams.set("review","true"),t=e.toString()),await navigator.clipboard.writeText(t),this.showCheckIcon=!0,setTimeout((()=>{this.showCheckIcon=!1}),2e3)}catch(t){console.error("Error copying review link:",t)}}setUserType(t){try{this.userType=t,this.emailTags=this.emailTags.map((t=>({...t,type:this.userType})))}catch(t){console.error("Error in setUserType:",t)}}async sendInvites(){try{if(this.disableInvite)return void this.dispatchEvent(new CustomEvent("superflow-invite-modal-invite-clicked",{detail:this.emailTags.map((t=>({email:t.email,type:t.type}))),bubbles:!0,composed:!0}));if(""!==this.emailInput.trim()&&this.isEmailValid&&(this.emailTags=[...this.emailTags,{name:"",email:this.emailInput.toLowerCase().trim(),type:this.userType}]),this.emailInput="",this.inviting=!0,this.userType===Qc.Commenter)await this.addCommenter();else{if(this.userType!==Qc.Admin)throw new Error("No User Type Selected");await this.addAdmin()}this.inviting=!1,this.close()}catch(t){console.error("Error sending invites:",t),this.inviting=!1}}async addAdmin(){try{if(0===this.emailTags.length)throw new Error("No email tags");const t=this.emailTags.map((t=>({email:t.email})));if(!await Pc(this.apiKey,t))throw new Error("Failed to add admin users");this.dispatchEvent(new CustomEvent("superflow-invite-modal-invite-success",{detail:{users:t,type:"admin"},bubbles:!0,composed:!0}))}catch(t){throw console.error("Error adding admin:",t),t}}async addCommenter(){try{if(!this.emailTags.length)throw new Error("No email tags");const t=this.emailTags.map((t=>({email:t.email})));if(!await Rc(this.apiKey,this.documentId,t))throw new Error("Failed to add commenter users");this.dispatchEvent(new CustomEvent("superflow-invite-modal-invite-success",{detail:{users:t,type:"commenter"},bubbles:!0,composed:!0}))}catch(t){throw console.error("Error adding commenter:",t),t}}upgradeToInvite(){try{this.dispatchEvent(new CustomEvent("superflow-invite-modal-upgrade-clicked",{bubbles:!0,composed:!0}))}catch(t){console.error("Error in upgradeToInvite:",t)}}render(){var t;const e=this.emailInput.length>0&&(this.mainInput===(null===(t=this.shadowRoot)||void 0===t?void 0:t.activeElement)||this.contactListIsHovered);return $`
            <div class="share-modal">
                <div class="share-modal-content">
                    <div class="share-modal-header ${ht({locked:!this.hasInviteAccess})}">
                        <div class="share-modal-header-content">
                            <div class="share-modal-header-title">
                                ${this.hasInviteAccess?"":$`
                                    <svg class="lock-icon" width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                                        <path stroke="none" d="M0 0h24v24H0z" fill="none" />
                                        <path stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
                                            d="M5 13a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v6a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-6z" />
                                        <path stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
                                            d="M11 16a1 1 0 1 0 2 0a1 1 0 0 0 -2 0" />
                                        <path stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
                                            d="M8 11v-4a4 4 0 1 1 8 0v4" />
                                    </svg>
                                `}
                                <h2>${Zc("Invite Users")}</h2>
                            </div>
                            ${this.hasInviteAccess?"":$`
                                <p class="share-modal-header-description">Upgrade to invite more users</p>
                            `}
                        </div>
                        <button class="close-button" @click=${this.close}>
                            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                                <path d="M18 6L6 18M6 6L18 18" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
                            </svg>
                        </button>
                    </div>

                    ${this.hasInviteAccess?$`
                        <div class="input-form">
                            <div class="input-group">
                                <div class="email-input-container ${ht({warning:this.invalidEmail||!!this.duplicateEmail,editing:!!this.editingTag})}">
                                    ${this.emailTags.length>0?$`
                                        <div class="email-pills">
                                            ${this.emailTags.map((t=>$`
                                                <div class="email-pill ${ht({editing:this.editingTag===t})}">
                                                    ${this.editingTag===t?$`
                                                        <input 
                                                            type="text" 
                                                            id="editInput"
                                                            .value=${this.editingInput}
                                                            @input=${t=>this.editingInput=t.target.value}
                                                            @keyup=${this.handleEditKeyUp}
                                                            @blur=${this.cancelEmailTagEdit}
                                                            class="edit-input"
                                                        />
                                                    `:$`
                                                        <p @click=${e=>this.startEditingTag(t,e)}>
                                                            ${t.email}
                                                        </p>
                                                        <button class="remove-email" @click=${e=>this.removeTag(t,e)} title="Remove">
                                                            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                                                                <path d="M18 6L6 18M6 6L18 18" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
                                                            </svg>
                                                        </button>
                                                    `}
                                                </div>
                                            `))}
                                        </div>
                                    `:""}
                                    
                                    <input
                                        id="mainInput"
                                        type="text"
                                        .value=${this.emailInput}
                                        @input=${this.handleEmailChange}
                                        @keyup=${this.handleKeyUp}
                                        @paste=${this.handlePaste}
                                        placeholder="Enter email or name"
                                    />

                                    ${e?$`
                                        <div 
                                            class="contacts-list"
                                            @mouseenter=${()=>this.contactListIsHovered=!0}
                                            @mouseleave=${()=>this.contactListIsHovered=!1}
                                        >
                                            ${this.searchingUsers?$`
                                                <div class="contact-item loading-state">
                                                    <div class="contact-info">
                                                        <div class="loading-spinner"></div>
                                                        <p class="loading-text">Searching users...</p>
                                                    </div>
                                                </div>
                                            `:this.filteredContacts.length>0?this.filteredContacts.map((t=>$`
                                                <div class="contact-item" @click=${()=>this.addEmailTag(t.email)}>
                                                    <div class="contact-info">
                                                        ${t.photoUrl?$`
                                                            <img class="avatar" src="${t.photoUrl}" alt="Profile photo">
                                                        `:$`
                                                            <div class="avatar">
                                                                ${(t.name||t.email).charAt(0).toUpperCase()}
                                                            </div>
                                                        `}
                                                        <div class="contact-details">
                                                            ${t.name?$`
                                                                <p class="contact-name" title="${t.name}">${t.name}</p>
                                                            `:""}
                                                            <p class="contact-email" title="${t.email}">${t.email}</p>
                                                        </div>
                                                    </div>
                                                </div>
                                            `)):$`
                                                <div class="contact-item no-results">
                                                    <p>No users found</p>
                                                </div>
                                            `}
                                        </div>
                                    `:""}
                                </div>

                                <div class="user-type-dropdown">
                                    <select 
                                        .value=${this.userType}
                                        @change=${t=>this.setUserType(t.target.value)}
                                    >
                                        ${this.userSeatsExhausted?"":$`<option value="${Qc.Admin}">Admin</option>`}
                                        <option value="${Qc.Commenter}">Guest</option>
                                    </select>
                                </div>
                            </div>

                            ${!this.invalidEmail&&!this.duplicateEmail||0!==this.emailTags.length&&this.isEmailValid?"":$`
                                <div class="message ${ht({"error-message":this.invalidEmail||!!this.duplicateEmail,"info-message":!this.invalidEmail&&!this.duplicateEmail})}">
                                    <svg class="icon" width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                                        <path d="M12 9V13M12 16V16.01M3 12C3 13.1819 3.23279 14.3522 3.68508 15.4442C4.13738 16.5361 4.80031 17.5282 5.63604 18.364C6.47177 19.1997 7.46392 19.8626 8.55585 20.3149C9.64778 20.7672 10.8181 21 12 21C13.1819 21 14.3522 20.7672 15.4442 20.3149C16.5361 19.8626 17.5282 19.1997 18.364 18.364C19.1997 17.5282 19.8626 16.5361 20.3149 15.4442C20.7672 14.3522 21 13.1819 21 12C21 10.8181 20.7672 9.64778 20.3149 8.55585C19.8626 7.46392 19.1997 6.47177 18.364 5.63604C17.5282 4.80031 16.5361 4.13738 15.4442 3.68508C14.3522 3.23279 13.1819 3 12 3C10.8181 3 9.64778 3.23279 8.55585 3.68508C7.46392 4.13738 6.47177 4.80031 5.63604 5.63604C4.80031 6.47177 4.13738 7.46392 3.68508 8.55585C3.23279 9.64778 3 10.8181 3 12Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
                                    </svg>
                                    <p>
                                        ${this.duplicateEmail?`${this.duplicateEmail} already exists`:this.invalidEmail?"Please enter a valid email address":"Add emails separated by commas"}
                                    </p>
                                </div>
                            `}
                        </div>
                    `:""}
                </div>

                <div class="share-modal-footer">
                    <div class="share-modal-footer-buttons">
                        <button class="copy-link-button" @click=${this.copyReviewLink}>
                            ${this.showCheckIcon?$`
                                <svg class="icon" width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                                    <path d="M5 12L10 17L20 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
                                </svg>
                            `:$`
                                <svg class="icon" width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                                    <path d="M9 15L15 9M11 6L11.463 5.464C12.4008 4.52633 13.6727 3.9996 14.9989 3.99969C16.325 3.99979 17.5968 4.52669 18.5345 5.4645C19.4722 6.40231 19.9989 7.67419 19.9988 9.00035C19.9987 10.3265 19.4718 11.5983 18.534 12.536L18 13M13.0001 18L12.6031 18.534C11.6544 19.4722 10.3739 19.9984 9.03964 19.9984C7.70535 19.9984 6.42489 19.4722 5.47614 18.534C5.0085 18.0716 4.63724 17.521 4.38385 16.9141C4.13047 16.3073 4 15.6561 4 14.9985C4 14.3408 4.13047 13.6897 4.38385 13.0829C4.63724 12.476 5.0085 11.9254 5.47614 11.463L6.00014 11" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
                                </svg>
                            `}
                            <p>${this.showCheckIcon?"Copied!":"Review Link"}</p>
                        </button>

                        ${this.hasInviteAccess?$`
                            <button 
                                class="button-primary" 
                                ?disabled=${0===this.emailTags.length&&!this.isEmailValid||this.inviting}
                                @click=${this.sendInvites}
                            >
                                ${this.inviting?"Inviting...":"Invite"}
                            </button>
                        `:$`
                            <div class="upgrade-button-container">
                                <button class="button-primary upgrade-button" @click=${this.upgradeToInvite}>
                                    Upgrade
                                </button>
                            </div>
                        `}
                    </div>
                </div>
            </div>
        `}};td.styles=qc,Xc([nt({type:String})],td.prototype,"apiKey",void 0),Xc([nt({type:String})],td.prototype,"documentId",void 0),Xc([nt({type:Boolean})],td.prototype,"disableInvite",void 0),Xc([nt({type:Boolean})],td.prototype,"hasInviteAccess",void 0),Xc([nt({type:Boolean})],td.prototype,"userSeatsExhausted",void 0),Xc([ot()],td.prototype,"userType",void 0),Xc([ot()],td.prototype,"showCheckIcon",void 0),Xc([ot()],td.prototype,"contactListIsHovered",void 0),Xc([ot()],td.prototype,"invalidEmail",void 0),Xc([ot()],td.prototype,"isEmailValid",void 0),Xc([ot()],td.prototype,"inviting",void 0),Xc([ot()],td.prototype,"searchingUsers",void 0),Xc([ot()],td.prototype,"emailInput",void 0),Xc([ot()],td.prototype,"emailTags",void 0),Xc([ot()],td.prototype,"editingTag",void 0),Xc([ot()],td.prototype,"editingInput",void 0),Xc([ot()],td.prototype,"duplicateEmail",void 0),Xc([ot()],td.prototype,"filteredContacts",void 0),Xc([st("#mainInput")],td.prototype,"mainInput",void 0),Xc([st("#editInput")],td.prototype,"editInput",void 0),td=Xc([et("superflow-invite-modal")],td);const ed=a`
    :host {
        display: block;
        font-family: 'Poppins', sans-serif;
    }

    * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
        font-family: 'Poppins', sans-serif;
    }

    .cws-panel {
        width: 300px;
        background: #ffffff;
        border: 1px solid #f0f0f0;
        border-radius: 16px;
        box-shadow: 0px 8px 24px rgba(143, 149, 178, 0.15);
        overflow: hidden;
        padding: 4px 0;
        animation: cws-slide-in 200ms ease-out;
    }

    @keyframes cws-slide-in {
        from {
            opacity: 0;
            transform: translateY(-8px);
        }
        to {
            opacity: 1;
            transform: translateY(0);
        }
    }

    /* ======================== Header ======================== */

    .cws-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 8px 12px;
    }

    .cws-header-left {
        display: flex;
        align-items: center;
        gap: 10px;
    }

    .cws-header-title {
        font-size: 14px;
        font-weight: 500;
        color: #0a0a0a;
        line-height: normal;
        white-space: nowrap;
    }

    .refresh-icon-wrapper {
        display: flex;
        align-items: center;
        padding: 4px;
        border-radius: 4px;
        cursor: pointer;
        transition: background 0.15s ease;
        flex-shrink: 0;
    }

    .refresh-icon-wrapper:hover {
        background: #f5f5f5;
    }

    .refresh-icon-wrapper.disabled {
        cursor: not-allowed;
        opacity: 0.5;
    }

    .refresh-icon-wrapper.disabled:hover {
        background: transparent;
    }

    .refresh-icon {
        color: #858585;
        transition: color 0.2s ease;
        flex-shrink: 0;
    }

    .refresh-icon.spinning {
        animation: cws-spin 1s linear infinite;
    }

    @keyframes cws-spin {
        from { transform: rotate(0deg); }
        to { transform: rotate(360deg); }
    }

    .back-icon-wrapper {
        display: flex;
        align-items: center;
        padding: 4px;
        border-radius: 4px;
        cursor: pointer;
        transition: background 0.15s ease;
        flex-shrink: 0;
    }

    .back-icon-wrapper:hover {
        background: #f5f5f5;
    }

    .back-icon {
        color: #858585;
        transition: color 0.2s ease;
        flex-shrink: 0;
    }

    /* ======================== Divider ======================== */

    .cws-divider {
        height: 8px;
        display: flex;
        align-items: center;
        padding: 0 16px;
    }

    .cws-divider::after {
        content: '';
        display: block;
        width: 100%;
        height: 1px;
        background: #f0f0f0;
    }

    /* ======================== Category List ======================== */

    .cws-category-list {
        display: flex;
        flex-direction: column;
    }

    .cws-category-row {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 8px 12px;
        cursor: pointer;
        transition: background 0.15s ease;
    }

    .cws-category-row:hover {
        background: #f5f5f5;
    }

    .cws-category-left {
        display: flex;
        align-items: center;
        gap: 10px;
    }

    .cws-category-label {
        font-size: 14px;
        font-weight: 500;
        color: #0a0a0a;
        line-height: normal;
    }

    .cws-category-right {
        display: flex;
        align-items: center;
        gap: 4px;
        color: #858585;
    }

    .cws-category-count {
        font-size: 14px;
        font-weight: 500;
        color: #858585;
        line-height: 1;
    }

    .cws-empty-state {
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 24px 12px;
        color: #858585;
        font-size: 14px;
    }

    /* ======================== Detail List ======================== */

    .cws-list {
        display: flex;
        flex-direction: column;
        max-height: 320px;
        overflow-y: auto;
        overflow-x: hidden;
    }

    .cws-list-row {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 6px 8px;
        gap: 8px;
        margin: 2px 8px;
        border-radius: 8px;
        cursor: pointer;
        transition: background 0.15s ease;
    }

    .cws-list-row:hover {
        background: #f5f5f5;
    }

    .cws-list-row-content {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 4px;
        min-width: 0;
        flex: 1;
        overflow: hidden;
    }

    /* ======================== Page Group Accordion ======================== */

    .cws-page-group {
        display: flex;
        flex-direction: column;
    }

    .cws-page-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 10px 12px;
        cursor: pointer;
        transition: background 0.15s ease;
    }

    .cws-page-header:hover {
        background: #f5f5f5;
    }

    .cws-page-header-left {
        display: flex;
        align-items: center;
        gap: 8px;
        min-width: 0;
        flex: 1;
    }

    .cws-page-slash {
        font-size: 16px;
        font-weight: 500;
        color: #b0b0b0;
        flex-shrink: 0;
    }

    .cws-page-path {
        font-size: 14px;
        font-weight: 500;
        color: #0a0a0a;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .cws-current-page-label {
        font-size: 14px;
        font-weight: 400;
        color: #858585;
    }

    .cws-accordion-chevron {
        color: #858585;
        flex-shrink: 0;
        transition: transform 0.2s ease;
    }

    .cws-accordion-chevron.open {
        transform: rotate(180deg);
    }

    .cws-page-warnings {
        display: flex;
        flex-direction: column;
    }

    .cws-group-divider {
        height: 1px;
        margin: 4px 16px;
        background: #f0f0f0;
    }

    /* Spelling-specific styles */

    .cws-incorrect-word {
        font-size: 14px;
        font-weight: 500;
        color: #ff7162;
        text-decoration: line-through;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        max-width: 100%;
        flex-shrink: 1;
    }

    .cws-suggestion-word {
        font-size: 14px;
        font-weight: 500;
        color: #0a0a0a;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        max-width: 100%;
        flex: 1;
        min-width: 0;
    }

    /* Broken links-specific styles */

    .cws-status-code {
        font-size: 14px;
        font-weight: 600;
        color: #ff7162;
        flex-shrink: 0;
    }

    .cws-broken-url {
        font-size: 14px;
        font-weight: 400;
        color: #0a0a0a;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    /* Generic agent row styles (for custom agents) */

    .cws-generic-primary {
        font-size: 14px;
        font-weight: 500;
        color: #0a0a0a;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        max-width: 100%;
        flex: 1;
        min-width: 0;
    }

    .cws-generic-secondary {
        font-size: 14px;
        font-weight: 400;
        color: #858585;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        max-width: 100%;
        flex: 1;
        min-width: 0;
    }

    /* Occurrence badge */

    .cws-occurrence-badge {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 16px;
        height: 16px;
        border-radius: 32px;
        background: #ff7162;
        color: #ffffff;
        font-size: 10px;
        font-weight: 500;
        line-height: 1;
        flex-shrink: 0;
    }

    /* ======================== Footer ======================== */

    .cws-footer {
        padding: 4px 8px 12px;
    }

    .cws-add-all-button {
        width: 100%;
        padding: 6px 8px;
        border: 1px solid #625cf4;
        border-radius: 8px;
        background: transparent;
        color: #625df5;
        font-size: 13px;
        font-weight: 500;
        font-family: 'Poppins', sans-serif;
        cursor: pointer;
        transition: background 0.15s ease, color 0.15s ease;
        line-height: normal;
    }

    .cws-add-all-button:hover {
        background: #625DF5;
        color: #ffffff;
    }

    /* ======================== Scrollbar ======================== */

    .cws-list::-webkit-scrollbar {
        width: 4px;
    }

    .cws-list::-webkit-scrollbar-track {
        background: transparent;
    }

    .cws-list::-webkit-scrollbar-thumb {
        background: #D1D5DB;
        border-radius: 2px;
    }

    .cws-list::-webkit-scrollbar-thumb:hover {
        background: #9CA3AF;
    }
`;var id=function(t,e,i,n){for(var o,s=arguments.length,r=s<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n,a=t.length-1;a>=0;a--)(o=t[a])&&(r=(s<3?o(r):s>3?o(e,i,r):o(e,i))||r);return s>3&&r&&Object.defineProperty(e,i,r),r};let nd=class extends X{constructor(){super(...arguments),this.agentGroups=[],this.currentPageUrl="",this.openAccordions=new Set,this.currentView="agents",this.selectedAgentId="",this.getSelectedAgentGroup=()=>{var t;try{return null===(t=this.agentGroups)||void 0===t?void 0:t.find((t=>(null==t?void 0:t.agentId)===this.selectedAgentId))}catch(t){return void console.warn("Error in getSelectedAgentGroup: ",t)}},this.onAgentClick=t=>{try{this.selectedAgentId=t,this.currentView="agent-detail",this.autoOpenCurrentPageAccordion(t)}catch(t){console.warn("Error in onAgentClick: ",t)}},this.autoOpenCurrentPageAccordion=t=>{var e;try{const i=null===(e=this.agentGroups)||void 0===e?void 0:e.find((e=>(null==e?void 0:e.agentId)===t));if(!i)return;const n=this.groupWarningsByPage(i.warnings),o=null==n?void 0:n.find((t=>null==t?void 0:t.isCurrentPage));this.openAccordions=new Set,(null==o?void 0:o.pageUrl)&&this.openAccordions.add(o.pageUrl)}catch(t){console.warn("Error in autoOpenCurrentPageAccordion: ",t)}},this.onBackClick=()=>{try{this.currentView="agents",this.selectedAgentId=""}catch(t){console.warn("Error in onBackClick: ",t)}},this.onWarningRowClick=t=>{var e;try{const i=null===(e=null==t?void 0:t.annotations)||void 0===e?void 0:e[0];if(!i)return;this.dispatchEvent(new CustomEvent("content-warning-item-click",{bubbles:!0,composed:!0,detail:{annotation:i}}))}catch(t){console.warn("Error in onWarningRowClick: ",t)}},this.onAddAllSuggestions=t=>{try{this.dispatchEvent(new CustomEvent("content-warning-sidebar-add-all",{bubbles:!0,composed:!0,detail:{agentId:t}}))}catch(t){console.warn("Error in onAddAllSuggestions: ",t)}},this.normalizeUrlForGrouping=t=>{try{if(!t)return"";const e="false"!==localStorage.getItem("sfNormalizeParams");let i=t;if(null==t?void 0:t.startsWith("/"))e&&(i=t.split("?")[0].split("#")[0]);else{const n=new URL(t);i=e?(null==n?void 0:n.pathname)||"/":(null==n?void 0:n.pathname)+((null==n?void 0:n.search)||"")+((null==n?void 0:n.hash)||"")}return(null==i?void 0:i.startsWith("/"))?i.substring(1):i}catch{const e=t||"";return(null==e?void 0:e.startsWith("/"))?e.substring(1):e}},this.groupWarningsByPage=t=>{var e,i,n,o,s,r;try{const a=new Map;for(const l of t){if(!(null===(e=null==l?void 0:l.pageUrls)||void 0===e?void 0:e.length)){const t="__unknown__";a.has(t)||a.set(t,{displayUrl:"__unknown__",warnings:[]}),null===(n=null===(i=a.get(t))||void 0===i?void 0:i.warnings)||void 0===n||n.push(l);continue}const t=new Map;for(const e of l.pageUrls){const i=this.normalizeUrlForGrouping(e);t.has(i)||t.set(i,e)}for(const[e,i]of t){const t=(null===(o=l.annotations)||void 0===o?void 0:o.filter((t=>{var i,n,o;const s=(null===(i=null==t?void 0:t.pageInfo)||void 0===i?void 0:i.url)||(null===(n=null==t?void 0:t.location)||void 0===n?void 0:n.url)||(null===(o=null==t?void 0:t.agent)||void 0===o?void 0:o.url)||"";return this.normalizeUrlForGrouping(s)===e})))||[];if(0===t.length)continue;const n={...l,occurrences:t.length,annotations:t};a.has(e)||a.set(e,{displayUrl:i,warnings:[]}),null===(r=null===(s=a.get(e))||void 0===s?void 0:s.warnings)||void 0===r||r.push(n)}}const l=[],c=this.normalizeUrlForGrouping(this.currentPageUrl);for(const[t,{displayUrl:e,warnings:i}]of a){const n="__unknown__"===t?"Unknown":t;l.push({pageUrl:e,pagePath:n,isCurrentPage:t===c&&"__unknown__"!==t,warnings:i})}return l.sort(((t,e)=>{var i;return(null==t?void 0:t.isCurrentPage)?-1:(null==e?void 0:e.isCurrentPage)?1:null===(i=null==t?void 0:t.pagePath)||void 0===i?void 0:i.localeCompare(null==e?void 0:e.pagePath)})),l}catch(t){return console.warn("Error in groupWarningsByPage: ",t),[]}},this.toggleAccordion=t=>{try{const e=new Set(this.openAccordions);e.has(t)?e.delete(t):e.add(t),this.openAccordions=e}catch(t){console.warn("Error in toggleAccordion: ",t)}},this.renderWarningIcon=()=>{try{return $`
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                    <path d="M12.0003 10.2329V13.8332M12.0003 16.5334H12.0093M10.5268 5.36441L3.23087 17.546C3.08046 17.8064 3.00087 18.1017 3.00001 18.4025C2.99915 18.7033 3.07705 18.999 3.22596 19.2604C3.37487 19.5217 3.5896 19.7395 3.8488 19.8921C4.108 20.0446 4.40263 20.1267 4.70338 20.1301H19.2971C19.5978 20.1266 19.8922 20.0445 20.1513 19.892C20.4104 19.7395 20.625 19.5218 20.7739 19.2606C20.9228 18.9994 21.0007 18.7038 21 18.4032C20.9992 18.1025 20.9198 17.8073 20.7697 17.5469L13.4737 5.36351C13.3202 5.11015 13.1039 4.90064 12.8458 4.75524C12.5877 4.60984 12.2965 4.53345 12.0003 4.53345C11.704 4.53345 11.4128 4.60984 11.1547 4.75524C10.8966 4.90064 10.6803 5.11015 10.5268 5.36351V5.36441Z" stroke="#E69422" stroke-width="1.80014" stroke-linecap="round" stroke-linejoin="round"/>
                </svg>
            `}catch(t){return console.warn("Error in renderWarningIcon: ",t),$``}},this.renderBackIcon=()=>{try{return $`
                <div class="back-icon-wrapper" @click=${this.onBackClick}>
                    <svg class="back-icon" width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                        <path d="M15 18L9 12L15 6" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
                    </svg>
                </div>
            `}catch(t){return console.warn("Error in renderBackIcon: ",t),$``}},this.renderExclamationIcon=()=>{try{return $`
                <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                    <rect width="16" height="16" rx="8" fill="#fe3201"/>
                    <path d="M8 5V9" stroke="white" stroke-width="1.5" stroke-linecap="round"/>
                    <circle cx="8" cy="11.25" r="0.875" fill="white"/>
                </svg>
            `}catch(t){return console.warn("Error in renderExclamationIcon: ",t),$``}},this.renderChevronRight=()=>{try{return $`
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                    <path d="M9 6L15 12L9 18" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
                </svg>
            `}catch(t){return console.warn("Error in renderChevronRight: ",t),$``}},this.renderAccordionChevron=t=>{try{return $`
                <svg class="cws-accordion-chevron ${ht({open:t})}" width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                    <path d="M6 9L12 15L18 9" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
                </svg>
            `}catch(t){return console.warn("Error in renderAccordionChevron: ",t),$``}},this.renderGroupedListView=(t,e,i,n,o="No issues found")=>{try{const s=this.groupWarningsByPage(e);return $`
                <div class="cws-header">
                    <div class="cws-header-left">
                        ${this.renderBackIcon()}
                        <span class="cws-header-title">${t}</span>
                    </div>
                </div>
                <div class="cws-divider"></div>
                <div class="cws-list">
                    ${(null==e?void 0:e.length)>0?s.map(((t,e)=>{var n,o;const r=null===(n=this.openAccordions)||void 0===n?void 0:n.has(null==t?void 0:t.pageUrl);return $`
                                <div class="cws-page-group">
                                    <div class="cws-page-header" @click=${()=>this.toggleAccordion(null==t?void 0:t.pageUrl)}>
                                        <div class="cws-page-header-left">
                                            <span class="cws-page-slash">/</span>
                                            <span class="cws-page-path">
                                                ${null==t?void 0:t.pagePath}${(null==t?void 0:t.isCurrentPage)?$` <span class="cws-current-page-label">(This Page)</span>`:""}
                                            </span>
                                        </div>
                                        ${this.renderAccordionChevron(r)}
                                    </div>
                                    ${r?$`
                                        <div class="cws-page-warnings">
                                            ${null===(o=null==t?void 0:t.warnings)||void 0===o?void 0:o.map((t=>i(t)))}
                                        </div>
                                    `:""}
                                </div>
                                ${e<(null==s?void 0:s.length)-1?$`<div class="cws-group-divider"></div>`:""}
                            `})):$`<div class="cws-empty-state"><span>${o}</span></div>`}
                </div>
                ${(null==e?void 0:e.length)>0?$`
                    <!-- <div class="cws-footer">
                        <button class="cws-add-all-button" @click=${()=>this.onAddAllSuggestions(n)}>
                            Add All Suggestions
                        </button>
                    </div> -->
                `:""}
            `}catch(t){return console.warn("Error in renderGroupedListView: ",t),$``}},this.renderAgentsView=()=>{var t;try{return $`
                <div class="cws-header">
                    <div class="cws-header-left">
                        ${this.renderWarningIcon()}
                        <span class="cws-header-title">Agent Checks</span>
                    </div>
                </div>
                <div class="cws-divider"></div>
                <div class="cws-category-list">
                    ${(null===(t=this.agentGroups)||void 0===t?void 0:t.length)>0?this.agentGroups.map((t=>$`
                        <div class="cws-category-row" @click=${()=>this.onAgentClick(null==t?void 0:t.agentId)}>
                            <div class="cws-category-left">
                                ${this.renderExclamationIcon()}
                                <span class="cws-category-label">${null==t?void 0:t.agentName}</span>
                            </div>
                            <div class="cws-category-right">
                                <span class="cws-category-count">${null==t?void 0:t.warningCount}</span>
                                ${this.renderChevronRight()}
                            </div>
                        </div>
                    `)):$`<div class="cws-empty-state"><span>No agent warnings found.</span></div>`}
                </div>
            `}catch(t){return console.warn("Error in renderAgentsView: ",t),$``}},this.renderGenericRow=t=>{try{return $`
                <div class="cws-list-row" @click=${()=>this.onWarningRowClick(t)}>
                    <div class="cws-list-row-content">
                        <span class="cws-generic-primary" data-title="${null==t?void 0:t.primaryText}">${null==t?void 0:t.primaryText}</span>
                        ${(null==t?void 0:t.secondaryText)?$`
                            <span class="cws-generic-secondary" data-title="${null==t?void 0:t.secondaryText}">${null==t?void 0:t.secondaryText}</span>
                        `:""}
                    </div>
                    <span class="cws-occurrence-badge">${null==t?void 0:t.occurrences}</span>
                </div>
            `}catch(t){return console.warn("Error in renderGenericRow: ",t),$``}},this.renderAgentDetailView=()=>{try{const t=this.getSelectedAgentGroup();if(!t)return $`<div class="cws-empty-state"><span>Agent not found.</span></div>`;const e=t.agentId,i=this.renderGenericRow;return this.renderGroupedListView(t.agentName,t.warnings,i,e,`No issues found for ${t.agentName}`)}catch(t){return console.warn("Error in renderAgentDetailView: ",t),$``}}}render(){try{return $`
                <div class="cws-panel">
                    ${"agents"===this.currentView?this.renderAgentsView():this.renderAgentDetailView()}
                </div>
            `}catch(t){return console.warn("Error in render: ",t),$``}}};nd.styles=ed,id([nt({type:Array})],nd.prototype,"agentGroups",void 0),id([nt({type:String})],nd.prototype,"currentPageUrl",void 0),id([ot()],nd.prototype,"openAccordions",void 0),id([ot()],nd.prototype,"currentView",void 0),id([ot()],nd.prototype,"selectedAgentId",void 0),nd=id([et("content-warning-sidebar")],nd);var od=function(t,e,i,n){for(var o,s=arguments.length,r=s<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n,a=t.length-1;a>=0;a--)(o=t[a])&&(r=(s<3?o(r):s>3?o(e,i,r):o(e,i))||r);return s>3&&r&&Object.defineProperty(e,i,r),r};class sd extends X{constructor(){super(),this._loadPlugin=!1,this.comments=[],this.addCommentMode=!1,this.showTourCommentTooltip=!1,this.allFeatureDisabled=!1,this.allFeatureRestricted=!1,this.guestMode=!1,this._expanded=!0,this.loading=!0,this._isPlanExpired=null,this.showOnboardingModal=!0,this.showLiveDemoModal=!1,this.showFigmaDemoModal=!1,this.showGuestModeSignInModal=!1,this.defaultGuestModeSignInModalConfig={title:"Sign in to notify your team",description:"Notify your team about your latest comments.",closeOnClickOutside:!1,showLeaveCommentButton:!0},this.guestModeSignInModalConfig=JSON.parse(JSON.stringify(this.defaultGuestModeSignInModalConfig)),this.showGuestModeNameModal=!1,this.guestModeSignInBannerVisible=!1,this.guestUserNameInput="",this.guestUserModelOpened=!1,this.guestUserNameUpdated=!1,this.guestUserNameUpdateLoading=!1,this.staging=oe,this._autoLocation=!0,this.copyLinkTooltip="Copy Link",this.invalidApiKey=!1,this._isUserGlobalContact=!1,this.showQrCode=!1,this.customLoginEnabledLocally=null,this.customLoginEnabled=null,this.exitReviewModeCalled=!1,this.addCommentCount=0,this._privateCommentModeEnabled=!1,this.superflowToolbarMoved=!1,this._darkMode=!1,this.allowGuestModeSignIn=!0,this._queryParamsComments=!1,this._usePageTitleAsLocationName=!1,this.toolbarEnabled=!1,this.toolbarEnabledApiCalled=!1,this.passwordProtected=!1,this.isPasswordValid=!1,this.password="",this.validatingPasswordLoading=!1,this.showPasswordProtectedModal=!1,this.showInvalidPassword=!1,this.skipGuestNameModal=!1,this._totalViews={},this.totalViewsCount=0,this.inviteUrl="",this.showModalOnceCommentIsModeIsOff=!1,this.showInviteModal=!1,this.featureAccess=null,this.hasAgentAccess=!1,this.hasContentWarnings=!1,this.contentWarningsCount=0,this.showContentWarningSidebar=!1,this.agentGroups=[],this.agentNameMap=new Map,this.agentNamesFetched=!1,this.spellingSuggestionPagePathMap=new Map,this.grammarSuggestionPagePathMap=new Map,this.processingAnnotationIds=new Set,this.subscriptions=[],this.onApiKeyChange=()=>{try{this.apiKey&&(null===window||void 0===window?void 0:window.onSuperflowLoad)&&"function"==typeof window.onSuperflowLoad&&window.onSuperflowLoad()}catch(t){console.warn("Error in onApiKeyChange: ",t),Sc("Error in onApiKeyChange: ",t)}},this.checkCustomLoginEnabled=async()=>{var t;try{const e=await jc(this.apiKey);this.customLoginEnabled=!!(null===(t=null==e?void 0:e.data)||void 0===t?void 0:t.customLoginEnabled),this.customLoginEnabled&&this.loginWithCustomUser()}catch(t){this.customLoginEnabled=!1,console.warn("Error in checkCustomLoginEnabled: ",t),Sc("Error in checkCustomLoginEnabled: ",t)}},this.loginWithCustomUser=()=>{try{this.customLoginEnabled?(dc(St),this.loadPlugin&&this.documentId&&this.identifySnippyly()):console.warn("Identify call not allowed.")}catch(t){console.warn("Error in loginWithCustomUser: ",t),Sc("Error in loginWithCustomUser: ",t)}},this.addWindowClickEventListener=()=>{try{this.windowClickEventListener||(this.windowClickEventListener=()=>{this.menuOpenedId&&(this.menuOpenedId=void 0)},window.addEventListener("click",this.windowClickEventListener))}catch(t){console.warn("Error in addWindowClickEventListener: ",t),Sc("Error in addWindowClickEventListener: ",t)}},this.removeWindowClickEventListener=()=>{try{window.removeEventListener("click",this.windowClickEventListener),this.windowClickEventListener=void 0}catch(t){console.warn("Error in removeWindowClickEventListener: ",t),Sc("Error in removeWindowClickEventListener: ",t)}},this.setWindowEventListner=()=>{try{window.addEventListener("locationchange",(()=>{this.checkUrl()}))}catch(t){console.warn("Error in setWindowEventListner: ",t),Sc("Error in setWindowEventListner: ",t)}},this.urlChangeListener=()=>{try{const t=history.pushState;history.pushState=function(){const e=t.apply(this,arguments);return window.dispatchEvent(new Event("pushstate")),window.dispatchEvent(new Event("locationchange")),e};const e=history.replaceState;history.replaceState=function(){const t=e.apply(this,arguments);return window.dispatchEvent(new Event("replacestate")),window.dispatchEvent(new Event("locationchange")),t},window.addEventListener("popstate",(()=>{window.dispatchEvent(new Event("locationchange"))}))}catch(t){console.warn("Error in urlChangeListener: ",t),Sc("Error in urlChangeListener: ",t)}},this.checkUrl=()=>{try{this.setInviteUrl();const t=new URL(document.location),e=t.searchParams;if(e.has(xt)&&lc(bt,"true",!1),(null==e?void 0:e.has(Nt))&&!cc(Nt)?this.showOnboardingModal=!0:this.showOnboardingModal=!1,null==e?void 0:e.has(At))if(cc(At,!1,"sessionStorage")){this.showLiveDemoModal=!1;const t=new URL(document.location);t.searchParams.delete(At),window.history.replaceState({},null===document||void 0===document?void 0:document.title,t.toString())}else this.showLiveDemoModal=!0;else this.showLiveDemoModal=!1;if(null==e?void 0:e.has(Lt))if(cc(Lt,!1)){this.showFigmaDemoModal=!1;const t=new URL(document.location);t.searchParams.delete(Lt),window.history.replaceState({},null===document||void 0===document?void 0:document.title,t.toString())}else this.showFigmaDemoModal=!0;else this.showFigmaDemoModal=!1;if(e.has(kt)||e.has("snippyly_google_token")){if(e.has(kt)){const t=decodeURIComponent(e.get(kt)),i=pc(t,re,ae),n=i&&JSON.parse(i);if(n){const t={};t.userId=n.uid,t.name=n.displayName,t.email=n.email,t.photoUrl=null==n?void 0:n.photoURL;const e=JSON.stringify(t),i=uc(e,re,ae);lc(St,i,!0),dc($t)}}else if(e.has("snippyly_google_token")){const t=JSON.parse(atob(e.get("snippyly_google_token"))),i={};i.userId=t.uid,i.name=t.displayName,i.email=t.email,i.photoUrl=null==t?void 0:t.photoURL,lc(Et,JSON.stringify(i),!0)}e.delete(kt),e.delete("snippyly_google_token"),window.history.replaceState({},document.title,t.href)}e.has(bt)?(lc(bt,"true",!1),dc(yt),e.delete(bt),window.history.replaceState({},document.title,t.href),this.loadPluginUI()):e.has(yt)||cc(bt,!1)&&this.loadPluginUI(),e.has(yt)?(lc(yt,"true",!1),dc(bt),e.delete(yt),window.history.replaceState({},document.title,t.href),this.loadPluginUI()):e.has(bt)||cc(yt,!1)&&this.loadPluginUI(),this.setVersionInUrl()}catch(t){console.warn("Error in checkUrl: ",t),Sc("Error in checkUrl: ",t)}},this.setInviteUrl=()=>{try{const t=new URL(document.location);t.searchParams.has(bt)||t.searchParams.set(bt,"true"),this.inviteUrl=t.toString()}catch(t){console.warn("Error in setInviteUrl: ",t),Sc("Error in setInviteUrl: ",t)}},this.detectVersion=()=>{try{if(this.projectVersionKey){const t=new URL(document.location).searchParams;if(t.get(this.projectVersionKey))this.projectVersion=t.get(this.projectVersionKey);else if(window.snippylyInitialLoadUrl){const t=new URL(window.snippylyInitialLoadUrl).searchParams;t.get(this.projectVersionKey)&&(this.projectVersion=t.get(this.projectVersionKey))}this.projectVersion&&lc(Tt,this.projectVersion,!1,"sessionStorage")}else{const t=new URL(document.location).searchParams;(t.has(bt)||t.has(yt))&&t.has(It)&&(lc(_t,It,!1,"sessionStorage"),this.projectVersion=t.get(It),this.projectVersion&&lc(Tt,this.projectVersion,!1,"sessionStorage"))}}catch(t){console.warn("Error in detectVersion: ",t),Sc("Error in detectVersion: ",t)}},this.setVersionInUrl=()=>{try{const t=this.projectVersionKey||cc(_t,!1,"sessionStorage"),e=this.projectVersion||cc(Tt,!1,"sessionStorage");if(t&&e){const i=new URL(document.location),n=i.searchParams;n.get(t)||(n.set(t,e),window.history.replaceState({},document.title,i.href))}}catch(t){console.warn("Error in setVersionInUrl: ",t),Sc("Error in setVersionInUrl: ",t)}},this.loadPluginUI=async()=>{var t,e,i,n,o,s,r,a;try{if(!this.apiKey)return;if(!this.projectId)return;if(this.loadPlugin)return this.generateLocation(),this.setLocation(),void setTimeout((()=>{var t;if(this.usePageTitleAsLocationName){const e=document.title;(null===(t=this.location)||void 0===t?void 0:t.locationName)!==e&&(this.generateLocation(),this.setLocation({forceSetLocation:!0}))}}),4e3);if(this.toolbarEnabledApiCalled||await this.detectToolbarEnabled(),!this.toolbarEnabled)return;wt.includes(this.apiKey)&&this.listenToDocumentTitleChange();const l=vc();l&&!(null==l?void 0:l.isAnonymous)&&(this.loading=!0);try{this.customerMetadata=await this.getCustomerMetadata()}catch(t){console.warn("Error in getCustomerMetadata: ",t),Sc("Error in getCustomerMetadata: ",t)}if(ac(Pt)&&(this.isPasswordValid=ac(Pt)),this.projectConfig=await Nc(this.apiKey,this.projectId),this.guestMode=!!(null===(t=this.projectConfig)||void 0===t?void 0:t.guestMode)||this.guestMode,this.allowGuestModeSignIn=!!(null===(i=null===(e=this.projectConfig)||void 0===e?void 0:e.guestModeConfig)||void 0===i?void 0:i.allowSignIn),this.queryParamsComments=!!(null===(n=this.projectConfig)||void 0===n?void 0:n.queryParamsComments),this.usePageTitleAsLocationName=!!(null===(o=this.projectConfig)||void 0===o?void 0:o.usePageTitleAsLocationName),(null===(s=this.projectConfig)||void 0===s?void 0:s.guestModeConfig)||(this.allowGuestModeSignIn=!0),this.passwordProtected=!!(null===(a=null===(r=this.projectConfig)||void 0===r?void 0:r.passwordProtected)||void 0===a?void 0:a.enabled),lc(Dt,this.guestMode+"",!0),lc(Ut,this.allowGuestModeSignIn+"",!0),lc(Vt,this.passwordProtected+"",!0),lc(jt,this.queryParamsComments+"",!0),lc(Ft,this.usePageTitleAsLocationName+"",!0),this.loadPlugin=!0,!document.querySelector(Xt.VELT_COMMENTS)){const t=document.createElement(Xt.VELT_COMMENTS);t.setAttribute("filter-comments-on-dom","true"),t.setAttribute("shadow-dom","true"),null==t||t.addEventListener("onSignIn",(()=>{this.loginWithGoogle()})),null==t||t.addEventListener("onUpgrade",(()=>{this.onUpgradePlanClick()})),t.addEventListener("onCommentAdd",(()=>{this.addCommentCount++})),t.addEventListener("onCommentUpdate",(t=>{var e,i;(null===(e=this.snippylyUser)||void 0===e?void 0:e.isGuest)&&"newlyAdded"===(null===(i=null==t?void 0:t.detail)||void 0===i?void 0:i.type)&&(this.addCommentCount>=2&&(this.showModalOnceCommentIsModeIsOff=!0),this.addCommentCount>=5&&!this.showModalOnceCommentIsModeIsOff&&(this.showModalOnceCommentIsModeIsOff=!0))})),window.document.body.appendChild(t)}if(!document.querySelector(Xt.VELT_CURSOR)){const t=document.createElement(Xt.VELT_CURSOR);window.document.body.appendChild(t)}if(!document.querySelector(Xt.VELT_HUDDLE)){const t=document.createElement(Xt.VELT_HUDDLE);window.document.body.appendChild(t)}if(!document.querySelector(Xt.VELT_RECORDER_NOTES)){const t=document.createElement(Xt.VELT_RECORDER_NOTES);window.document.body.appendChild(t)}if(!document.querySelector(Xt.VELT_RECORDER_CONTROL_PANEL)){const t=document.createElement(Xt.VELT_RECORDER_CONTROL_PANEL);window.document.body.appendChild(t)}if(!document.querySelector(Xt.VELT_ARROWS)){const t=document.createElement(Xt.VELT_ARROWS);window.document.body.appendChild(t)}try{const t=new URL(document.location),e=t.searchParams;let i=!1;e.has("wireframe")&&"true"===e.get("wireframe")&&(sessionStorage.setItem("velt-wireframe","true"),e.delete("wireframe"),i=!0),e.get("velt-version")&&(sessionStorage.setItem("velt-version",e.get("velt-version")),e.delete("velt-version"),i=!0),e.get("velt-env")&&(sessionStorage.setItem("velt-env",e.get("velt-env")),e.delete("velt-env"),i=!0),i&&window.history.replaceState({},document.title,t.href)}catch(t){}this.initializeSnippyly()}catch(t){this.loading=!1,console.warn("Error in loadPluginUI: ",t),Sc("Error in loadPluginUI: ",t)}},this.listenToDocumentTitleChange=()=>{try{this.documentTitleChangeInterval||(this.documentTitleChangeInterval=setInterval((()=>{var t,e,i;const n="true"===sessionStorage.getItem("debugDocumentTitleChange");if(n&&(console.log("*** listenToDocumentTitleChange ***"),console.log("usePageTitleAsLocationName: ",this.usePageTitleAsLocationName)),this.usePageTitleAsLocationName){const o=document.title;n&&(console.log("location name: ",null===(t=this.location)||void 0===t?void 0:t.locationName),console.log("title: ",o),console.log("changed: ",(null===(e=this.location)||void 0===e?void 0:e.locationName)!==o)),(null===(i=this.location)||void 0===i?void 0:i.locationName)!==o&&(n&&console.log("%c triggering location update!","color: green; font-weight: bold;"),this.generateLocation(),this.setLocation({forceSetLocation:!0}))}}),2e3))}catch(t){Sc("Error in listenToDocumentTitleChange: ",t)}},this.initializeSnippyly=async()=>{var t,e,n,o,s,r,a,l,c,d,h,u,p,v,f,g,m,w,b,y,C,x,E,k,S,M,_,T,I;try{let N=this.staging?gt:mt;this.staging||(N="latest"),this.veltVersion&&(N=this.veltVersion);let A=this.staging,L=!1;if((null===sessionStorage||void 0===sessionStorage?void 0:sessionStorage.getItem("velt-version"))&&(N=sessionStorage.getItem("velt-version")),null===sessionStorage||void 0===sessionStorage?void 0:sessionStorage.getItem("velt-env")){"staging"===sessionStorage.getItem("velt-env")&&(A=!1,L=!0)}if(await i(this.apiKey,{options:{develop:A,staging:L,version:N,velt:!0,proxyDomain:"https://cdn.velt.dev"}}),!window.Velt)return;if(this.autoTranslation&&(null===Velt||void 0===Velt?void 0:Velt.enableAutoTranslation)&&(null===Velt||void 0===Velt||Velt.enableAutoTranslation()),!document.querySelector(Xt.VELT_COMMENTS_SIDEBAR)){const t=document.createElement(Xt.VELT_COMMENTS_SIDEBAR);t.setAttribute("shadow-dom","true"),t.setAttribute(te.ENABLE_URL_NAVIGATION,"true"),t.setAttribute(te.CURRENT_LOCATION_SUFFIX,"true"),window.document.body.appendChild(t)}if(Velt){null===Velt||void 0===Velt||Velt.sf(!0);try{window.dispatchEvent(new CustomEvent("onVeltLoad",{detail:{Velt}})),(null===window||void 0===window?void 0:window.onSnippylyLoad)&&(null===window||void 0===window||window.onSnippylyLoad(Velt))}catch(t){}document.body.style.setProperty("--velt-default-font-family","'Poppins', sans-serif"),(()=>{try{if(!document.getElementById("superflowFontLink3")){const t=document.createElement("link");t.rel="stylesheet",t.href="https://firebasestorage.googleapis.com/v0/b/snippyly-sdk-external/o/fonts%2Fpoppins%2Fpoppins.css?alt=media&token=5f31a0f2-5f67-4974-bf56-78ae655f2b68",t.id="superflowFontLink3",document.head.appendChild(t)}}catch(t){console.warn("Error in loadPoppinsFont: ",t),Sc("Error in loadPoppinsFont: ",t)}})()}if(Velt&&(xc({sdkVersion:null===Velt||void 0===Velt?void 0:Velt.version,sdkType:"client"}),console.log(`Velt Version: ${(null===Velt||void 0===Velt?void 0:Velt.version)||"unknown"}`),console.log(`Superflow Toolbar Version: ${ft}`)),this.generateDocumentId(),(null===Velt||void 0===Velt?void 0:Velt.on)&&"function"==typeof(null===Velt||void 0===Velt?void 0:Velt.on)){const e=vc(),i="true"===sessionStorage.getItem("debugUserUpdateEvent");this.previousVeltUserId=null!==(t=null==e?void 0:e.userId)&&void 0!==t?t:"default",i&&console.log("[Superflow Debug] Initialized previousVeltUserId:",this.previousVeltUserId),Velt.on("userUpdate").subscribe((async t=>{if(i&&console.log("User from event: UserUpdate",t),t){const e=t.userId;i&&console.log("[Superflow Debug] userUpdate event fired:",{previousVeltUserId:this.previousVeltUserId,currentUserId:e,userChanged:this.previousVeltUserId!==e}),this.previousVeltUserId!==e&&(i&&console.log("[Superflow Debug] User changed, calling setDocumentAndLocation"),await this.setDocumentAndLocation()),this.previousVeltUserId=e}})),i&&console.log("[Superflow Debug] Performing initial setDocumentAndLocation"),await this.setDocumentAndLocation()}else await this.setDocumentAndLocation();if(setTimeout((()=>{var t;if(this.usePageTitleAsLocationName){const e=document.title;(null===(t=this.location)||void 0===t?void 0:t.locationName)!==e&&(this.generateLocation(),this.setLocation({forceSetLocation:!0}))}}),4e3),this.commentElement=null===Velt||void 0===Velt?void 0:Velt.getCommentElement(),this.contactElement=null===Velt||void 0===Velt?void 0:Velt.getContactElement(),this.rewriterElement=null===Velt||void 0===Velt?void 0:Velt.getRewriterElement(),this.presenceElement=null===Velt||void 0===Velt?void 0:Velt.getPresenceElement(),this.commentElement){this.commentElement.enableTextComments(!0),this.customLoginEnabledLocally||this.commentElement.enableSignInButton(!0),this.commentElement.enableAttachments(!0),(null===(e=this.commentElement)||void 0===e?void 0:e.showScreenSizeInfo)&&this.commentElement.showScreenSizeInfo(!0),(null===(n=this.commentElement)||void 0===n?void 0:n.enableDeviceInfo)&&this.commentElement.enableDeviceInfo(!0),this.commentElement.enableCommentIndex(!0),this.commentElement.onCommentModeChange&&this.commentElement.onCommentModeChange().subscribe((t=>{this.addCommentMode=t,this.addCommentMode||this.showModalOnceCommentIsModeIsOff&&(this.addCommentCount>=2&&!cc(zt)&&(this.allowGuestModeSignIn?this.openGuestModeSignInModal():this.openGuestModeNameModel(),lc(zt,"true"),this.showModalOnceCommentIsModeIsOff=!1),this.addCommentCount>=5&&!this.showGuestModeSignInModal&&!cc(Ht,!1,"sessionStorage")&&(this.showGuestModeSignInBanner(),lc(Ht,"true",!1,"sessionStorage"),this.showModalOnceCommentIsModeIsOff=!1))})),(null===(o=this.commentElement)||void 0===o?void 0:o.enableOrphanComments)&&this.commentElement.enableOrphanComments(),(null===(s=this.commentElement)||void 0===s?void 0:s.enablePersistentCommentMode)&&this.commentElement.enablePersistentCommentMode(),(null===(r=this.commentElement)||void 0===r?void 0:r.enableGhostComments)&&this.commentElement.enableGhostComments();const t=null===window||void 0===window?void 0:window.SUPERFLOW_CUSTOM_STATUSES;t&&"object"==typeof t&&(null===(a=this.commentElement)||void 0===a?void 0:a.setCustomStatus)&&this.commentElement.setCustomStatus(t),(null===(l=this.commentElement)||void 0===l?void 0:l.enableMinimap)&&this.commentElement.enableMinimap(),(null===(c=this.commentElement)||void 0===c?void 0:c.setDStrategy)&&(null===(d=this.commentElement)||void 0===d||d.setDStrategy("dynamicId")),(null===(h=this.commentElement)||void 0===h?void 0:h.enableSidebarButtonOnCommentDialog)&&this.commentElement.enableSidebarButtonOnCommentDialog(),(null===(u=this.commentElement)||void 0===u?void 0:u.enableHotkey)&&this.commentElement.enableHotkey(),(null===(p=this.commentElement)||void 0===p?void 0:p.enableDeviceIndicatorOnCommentPins)&&this.commentElement.enableDeviceIndicatorOnCommentPins(),(null===(g=null===(f=null===(v=this.customerMetadata)||void 0===v?void 0:v.superflow)||void 0===f?void 0:f.advancedFeatures)||void 0===g?void 0:g.takeScreenshotOnComments)?this.commentElement.enableScreenshot&&this.commentElement.enableScreenshot():this.commentElement.disableScreenshot&&this.commentElement.disableScreenshot(),(null===(b=null===(w=null===(m=this.customerMetadata)||void 0===m?void 0:m.superflow)||void 0===w?void 0:w.advancedFeatures)||void 0===b?void 0:b.hasCustomStatus)&&this.setCustomStatuses(),this.setQueryParamsCommentsInSdk(),this.checkToEnableUpgradeButton(),this.setupSidebarAgentCommentFilter(),this.setupVeltButtonClickListener()}this.applyStorageFeatureAccess(),this.selectionElement=Velt.getSelectionElement(),this.selectionElement&&this.selectionElement.enableLiveSelection(!0),this.rewriterElement&&(null===(y=this.rewriterElement)||void 0===y||y.enableRewriter()),this.presenceElement&&(null===(C=this.presenceElement)||void 0===C?void 0:C.enableFlockMode)&&(null===(x=this.presenceElement)||void 0===x||x.enableFlockMode(!0)),(null===Velt||void 0===Velt?void 0:Velt.getDocElement)&&(this.docElement=Velt.getDocElement()),null===(M=(null===(E=this.docElement)||void 0===E?void 0:E.getDocumentMetadata)?null===(k=this.docElement)||void 0===k?void 0:k.getDocumentMetadata():null===(S=null===Velt||void 0===Velt?void 0:Velt.docService)||void 0===S?void 0:S.getDocumentMetadata$())||void 0===M||M.subscribe((t=>{var e,i;const n=(null===(e=null==t?void 0:t.superflow)||void 0===e?void 0:e.versions)?Object.values(null===(i=null==t?void 0:t.superflow)||void 0===i?void 0:i.versions):[],o=new URL(document.location).searchParams.get("version");if(o){const t=n.find((t=>t.id===o));t&&(this.version={id:t.id,name:t.versionName||t.id},this.setLocation())}})),(null===Velt||void 0===Velt?void 0:Velt.getViewsElement)&&(this.viewsElement=Velt.getViewsElement()),(null===(_=this.viewsElement)||void 0===_?void 0:_.getUniqueViewsByUser)&&(null===(I=null===(T=this.viewsElement)||void 0===T?void 0:T.getUniqueViewsByUser())||void 0===I||I.subscribe((t=>{this.totalViews=t}))),this.identifySnippyly()}catch(t){this.loading=!1,console.warn("Error in initializeSnippyly: ",t),Sc("Error in initializeSnippyly: ",t)}},this.generateDocumentId=()=>{try{this.documentId=oc(rc(window.location.origin))+"",this.projectId&&(this.documentId=this.projectId+""),this.serverDocumentId=(t=this.documentId+"")?`${oc(t)}`:void 0}catch(t){console.warn("Error in generateDocumentId: ",t),Sc("Error in generateDocumentId: ",t)}var t},this.setDocumentAndLocation=async()=>{try{this.generateDocumentId(),this.previousLocation=null,await(null===Velt||void 0===Velt?void 0:Velt.setDocumentId(this.documentId+"")),xc({documentId:this.serverDocumentId,clientDocumentId:this.documentId}),this.generateLocation(),this.setLocation()}catch(t){console.warn("Error in setDocumentAndLocation: ",t),Sc("Error in setDocumentAndLocation: ",t)}},this.checkToEnableUpgradeButton=()=>{var t,e;try{this.isPlanExpired&&this.isUserGlobalContact?(null===(t=this.commentElement)||void 0===t?void 0:t.enableUpgradeButton)&&this.commentElement.enableUpgradeButton():(null===(e=this.commentElement)||void 0===e?void 0:e.disableUpgradeButton)&&this.commentElement.disableUpgradeButton()}catch(t){console.warn("Error in checkToEnableUpgradeButton: ",t),Sc("Error in checkToEnableUpgradeButton: ",t)}},this.getCustomerMetadata=async()=>{try{const t=await Oc(this.apiKey);return(t=>{try{const e=t?JSON.stringify(t):"false";lc(Wt,e)}catch(t){console.warn("Error in setCustomerMetadataToStorage: ",t),Sc("Error in setCustomerMetadataToStorage: ",t)}})(t),t}catch(t){console.warn("Error in getCustomerMetadata: ",t),Sc("Error in getCustomerMetadata: ",t);const e=(()=>{try{const t=cc(Wt);return t?"false"===t?JSON.parse(JSON.stringify(ee)):JSON.parse(t):null}catch(t){return console.warn("Error in getCustomerMetadataFromStorage: ",t),Sc("Error in getCustomerMetadataFromStorage: ",t),null}})();if(e)return e}},this.setCustomStatuses=async()=>{var t;try{const e=await $c(this.apiKey);if((null==e?void 0:e.success)&&(null==e?void 0:e.data)){const i=Object.values(e.data),n=this.sortCustomStatuses(i);n.length>0&&(null===(t=this.commentElement)||void 0===t?void 0:t.setCustomStatus)&&this.commentElement.setCustomStatus(n)}}catch(t){console.warn("Error in setCustomStatuses: ",t),Sc("Error in setCustomStatuses: ",t)}},this.sortCustomStatuses=t=>{try{const e=[...t].sort(((t,e)=>("number"==typeof t.order?t.order:Number.MAX_SAFE_INTEGER)-("number"==typeof e.order?e.order:Number.MAX_SAFE_INTEGER)));return e}catch(e){return console.warn("Error in sortCustomStatuses: ",e),Sc("Error in sortCustomStatuses: ",e),t}},this.getSamlConfig=async()=>{try{const t=await Fc(this.apiKey);return(t=>{try{if(t){const e=JSON.stringify(t);lc(Gt,e,!0)}}catch(t){console.warn("Error in setSamlConfigToStorage: ",t),Sc("Error in setSamlConfigToStorage: ",t)}})(t),t}catch(t){console.warn("Error in getSamlConfig: ",t),Sc("Error in getSamlConfig: ",t);const e=(()=>{try{const t=cc(Gt,!0);return t?JSON.parse(t):null}catch(t){return console.warn("Error in getSamlConfigFromStorage: ",t),Sc("Error in getSamlConfigFromStorage: ",t),null}})();if(e)return e}},this.setLogos=()=>{var t,e,i,n,o,s,r,a,l,c,d,h;try{let u="light";this.privateCommentModeEnabled&&(u="dark");const p=null===(i=null===(e=null===(t=this.customerMetadata)||void 0===t?void 0:t.superflow)||void 0===e?void 0:e.customBranding)||void 0===i?void 0:i.logoMark,v=null===(s=null===(o=null===(n=null==ne?void 0:ee)||void 0===n?void 0:n.customBranding)||void 0===o?void 0:o.logo)||void 0===s?void 0:s.logoMark,f=null===(l=null===(a=null===(r=this.customerMetadata)||void 0===r?void 0:r.superflow)||void 0===a?void 0:a.customBranding)||void 0===l?void 0:l.wordMark,g=null===(h=null===(d=null===(c=null==ne?void 0:ee)||void 0===c?void 0:c.customBranding)||void 0===d?void 0:d.logo)||void 0===h?void 0:h.wordMark;switch(u){case"light":this.logoMark=(null==p?void 0:p.lightUrl)||(null==p?void 0:p.darkUrl)||(null==v?void 0:v.lightUrl),this.wordMark=(null==f?void 0:f.lightUrl)||(null==f?void 0:f.darkUrl)||(null==g?void 0:g.lightUrl);break;case"dark":this.logoMark=(null==p?void 0:p.darkUrl)||(null==p?void 0:p.lightUrl)||(null==v?void 0:v.darkUrl),this.wordMark=(null==f?void 0:f.darkUrl)||(null==f?void 0:f.lightUrl)||(null==g?void 0:g.darkUrl)}}catch(t){console.warn("Error in setLogos: ",t),Sc("Error in setLogos: ",t)}},this.getLogoMark=()=>{var t;try{return(null===(t=this.logoMark)||void 0===t?void 0:t.includes("<svg"))?$`
					${pt(this.logoMark)}
                `:$`
				<img src=${this.logoMark} />
			`}catch(t){return console.warn("Error in getLogoMark: ",t),$``}},this.getWordMark=()=>{var t;try{return(null===(t=this.wordMark)||void 0===t?void 0:t.includes("<svg"))?$`
					${pt(this.wordMark)}
                `:$`
				<img src=${this.wordMark} />
			`}catch(t){return console.warn("Error in getWordMark: ",t),$``}},this.generateLocation=()=>{try{if(this.autoLocation){const t=new URL(document.location).searchParams,e=new URL(document.location);e.searchParams.delete(bt),e.searchParams.delete(yt),e.searchParams.delete(Ct),e.searchParams.delete(xt),e.searchParams.delete(Nt),e.searchParams.delete(At);const i=t.get(It)||this.projectVersion;this.queryParamsComments||(e.search="");let n=(t=>{try{return t.replace(/#.*$/,"")}catch(e){return console.warn("Error in removeHashFromUrl: ",e),Sc("Error in removeHashFromUrl: ",e),t}})(e.href);this.projectId&&(n=null==n?void 0:n.replace(window.location.origin,"")),this.location={url:n,version:i}}}catch(t){console.warn("Error in generateLocation: ",t),Sc("Error in generateLocation: ",t)}},this.setLocation=t=>{var e,i,n,o;try{if(this.autoLocation&&window.Velt&&(null===Velt||void 0===Velt?void 0:Velt.setLocation)){if(this.version?(this.location||(this.location={}),this.location.version=this.version):this.location&&delete this.location.version,!(null==t?void 0:t.forceSetLocation)&&this.previousLocation&&(null===(e=this.previousLocation)||void 0===e?void 0:e.url)===(null===(i=this.location)||void 0===i?void 0:i.url)&&(null===(n=this.previousLocation)||void 0===n?void 0:n.version)===(null===(o=this.location)||void 0===o?void 0:o.version))return;const s=(t=>{try{const e=sc(t);return oc(JSON.stringify(e))}catch(t){return}})(JSON.parse(JSON.stringify(this.location)));if(s?this.location.id=`${s}`:delete this.location.id,this.usePageTitleAsLocationName){const t=document.title;t&&(this.location.locationName=t)}null===Velt||void 0===Velt||Velt.setLocation(JSON.parse(JSON.stringify(this.location))),xc({clientLocation:this.location}),this.previousLocation=JSON.parse(JSON.stringify(this.location)),this.onVeltLocationChange()}}catch(t){console.warn("Error in setLocation: ",t),Sc("Error in setLocation: ",t)}},this.onVeltLocationChange=()=>{try{window.dispatchEvent(new CustomEvent("veltLocationChange",{detail:this.location}))}catch(t){console.warn("Error in onVeltLocationChange: ",t),Sc("Error in onVeltLocationChange: ",t)}},this.identifySnippyly=async()=>{var t,e;let i="",n="";try{this.invalidApiKey=!1;let e,o={name:"Default User",email:"default@usesuperflow.com",userId:"default",isAnonymous:!0,organizationId:this.apiKey};e=this.customLoginEnabled&&this.providedUser?this.providedUser:vc();const s=await this.getSamlConfig(),r=new URL(document.location);if(r.searchParams.has(kt)&&r.searchParams.delete(kt),s&&(this.signInUrl=`${se}saml/${s.slug}/login?redirect_url=${encodeURIComponent(null==r?void 0:r.toString())}&source=sf`,window.Superflow.signInUrl=this.signInUrl),(null==e?void 0:e.email)&&(o=e),o.isAnonymous)delete o.groupId;else{const t=Velt.getDocumentId()||this.serverDocumentId;t&&(o.groupId=t+"")}if(this.customLoginEnabledLocally||(null===(t=null==o?void 0:o.contacts)||void 0===t?void 0:t.length)&&(o.contacts=[]),i=null==o?void 0:o.email,n=null==o?void 0:o.userId,(null==o?void 0:o.isAnonymous)&&this.projectId&&this.guestMode){const t=gc(!0,this.apiKey);t&&(o=JSON.parse(JSON.stringify(t)))}(null==o?void 0:o.isAnonymous)||(this.loading=!0);const a={};(null==o?void 0:o.groupId)&&(a.groupId=null==o?void 0:o.groupId),o.organizationId=this.apiKey;const l=await Ic(this.apiKey,this.projectId||"",null==o?void 0:o.email,null==o?void 0:o.userId),c=null==l?void 0:l.isAdmin;if(this.snippylyUserRole=c?"Admin":"Commenter",c&&(a.isAdmin=c,c&&this.allFeatureDisabled&&(this.allFeatureDisabled=!1)),(null==o?void 0:o.userId)&&!(null==o?void 0:o.isGuest)&&!(null==o?void 0:o.isAnonymous)&&this.documentId)try{await Uc(this.apiKey,this.documentId,o.userId,o.name,o.email)}catch(t){Sc("checkDocumentUserAndCreateError",t)}const[d]=await Promise.all([Velt.setVeltAuthProvider({user:o,options:{throwError:!0},retryConfig:{retryCount:3,retryDelay:1e3},generateToken:async()=>await Dc(this.apiKey,null==o?void 0:o.userId,a),onError:t=>{console.log("Error signing to velt - ",t),this.invalidApiKey=!0}}),this.fetchAndApplyFeatureAccess()]);if(this.hasAgentAccess&&this.insertShadowDOM(),this.invalidApiKey)throw"Invalid Api Key -  Domain Not Whitelisted";Ec(JSON.parse(JSON.stringify(d||{}))),(null==o?void 0:o.isAnonymous)||(this.snippylyUser=JSON.parse(JSON.stringify(o)));const h=JSON.parse(JSON.stringify(d||{}));if((null==h?void 0:h.userSnippylyId)&&!(null==h?void 0:h.isGuest)&&this.checkToMigrateGuestUser(h),Velt.getUserRole$().subscribe((t=>{var e;t&&(this.loading=!1,null===(e=this.commentElement)||void 0===e||e.enablePriority())})),this.contactListSubscription=Velt.getContactElement().getContactList().subscribe((t=>{var e;this.loading=!1,(null===(e=null==t?void 0:t.organizationUsers)||void 0===e?void 0:e.length)>0&&(this.checkPrivateCommentModeFromStorage(),this.contactListSubscription&&(this.contactListSubscription.unsubscribe(),this.contactListSubscription=null))})),(null===Velt||void 0===Velt?void 0:Velt.isPlanExpired$)&&(null===Velt||void 0===Velt||Velt.isPlanExpired$().subscribe((t=>{this.isPlanExpired=t}),(t=>{this.isPlanExpired=!1,console.warn("Error in isPlanExpired$: ",t),Sc("Error in isPlanExpired$: ",t)}))),null===Velt||void 0===Velt?void 0:Velt.on){let t;null===Velt||void 0===Velt||Velt.on("initUpdate").subscribe((e=>{"setDocumentsSuccess"===e.event&&(t&&(t.unsubscribe(),t=null),t=null===Velt||void 0===Velt?void 0:Velt.getDocumentMetadata().subscribe((async t=>{if(t){const e=await Nc(this.apiKey,null==t?void 0:t.clientDocumentId);this.setProjectConfigVariables(e)}}),(t=>{console.warn("Error in getDocumentMetadata: ",t),Sc("Error in getDocumentMetadata: ",t)})))}))}xc({clientUserId:null==o?void 0:o.userId});try{kc(o)}catch(t){console.warn("Error in trackIdentifyEvent: ",t)}this.getComments(),this.checkGlobalUserContact(),setTimeout((()=>{cc(Ot)||(this.showTourCommentTooltip=!0)}),2e3)}catch(t){if(console.log("Error",t),this.loading=!1,this.signInError=!0,t&&"string"==typeof t&&(null===(e=null==t?void 0:t.toLowerCase())||void 0===e?void 0:e.includes("invalid"))){this.invalidApiKey=!0,Mc(vt.Events.DOMAIN_NOT_WHITELISTED),this.projectId&&Tc(this.apiKey,this.projectId);if(new URL(document.location).searchParams.has(Nt))this.isSigningInUserAdmin=!0;else if(cc($t))this.isSigningInUserAdmin="true"===cc($t,!0);else{const t=await Ic(this.apiKey,this.projectId||"",i,n);this.isSigningInUserAdmin=!!(null==t?void 0:t.isAdmin),lc($t,this.isSigningInUserAdmin+"",!0)}}console.warn("Error in identifySnippyly: ",t),Sc("Error in identifySnippyly: ",t)}},this.fetchAndApplyFeatureAccess=async()=>{var t;try{this.featureAccess=await Bc(this.apiKey),this.applyStorageFeatureAccess();const e=null===(t=this.featureAccess)||void 0===t?void 0:t[zc.Agents];this.hasAgentAccess=!0===(null==e?void 0:e.hasAccess)}catch(t){console.warn("Error in fetchAndApplyFeatureAccess: ",t),Sc("Error in fetchAndApplyFeatureAccess: ",t)}},this.insertShadowDOM=()=>{try{if(document.querySelector("velt-wireframe"))return;const t=document.querySelector("velt-comments");t&&t.setAttribute("shadow-dom","false");const e=document.querySelector("velt-comments-sidebar");e&&e.setAttribute("shadow-dom","false");const i=document.createElement("velt-wireframe");i.innerHTML='\n                    <style>\n\n                        .velt-sidebar-assigned {\n                            padding-block: 0.15rem;\n                        }\n\n                        .velt-body{\n                            max-height: 450px !important;\n                        }\n                        .velt-comment-dialog-body--closed{\n                            max-height: none !important;\n                        }\n                        velt-comment-dialog-threads-internal{\n                            // max-height: none !important;\n                        }\n                        .velt-comment-dialog--body {\n                            border-radius: 20px !important;\n                        }\n\n                        .velt-comment-dialog{\n                            border: none !important;\n                        }\n\n                        .velt-comment-dialog{\n                            padding: 0 !important;\n                        }\n\n                        .sf-suggestion-card {\n\n                        .velt-thread-card--message{\n                        margin: 0 !important;\n                        padding: 8px !important;\n                        }\n                            min-width: 320px;\n                            display: flex;\n                            flex-direction: column;\n                            gap: 4px;\n                            padding: 8px;\n                            border: 1px solid #625df5;\n                            border-radius: 12px;\n                            background: #ffffff;\n                            font-family: \'Poppins\', sans-serif;\n                            box-sizing: border-box;\n                        }\n\n                        .sf-suggestion-words {\n                            display: flex;\n                            flex-direction: column;\n                            align-items: flex-start;\n                            gap: 2px;\n                            padding: 6px 8px;\n                            font-size: 16px;\n                            font-weight: 500;\n                            line-height: normal;\n                            min-width: 0;\n                            width: 100%;\n                            box-sizing: border-box;\n                        }\n\n                        .sf-incorrect-word {\n                            text-decoration: line-through;\n                            color: #ff7162;\n                            white-space: nowrap;\n                            overflow: hidden;\n                            text-overflow: ellipsis;\n                            max-width: 100%;\n                        }\n\n                        .sf-arrow-down {\n                            color: #b0b0b0;\n                            display: flex;\n                            align-items: center;\n                        }\n\n                        .sf-correct-word {\n                            color: #0a0a0a;\n                            white-space: nowrap;\n                            overflow: hidden;\n                            text-overflow: ellipsis;\n                            max-width: 100%;\n                        }\n\n                        .sf-suggestion-actions {\n                            display: flex;\n                            align-items: center;\n                            justify-content: space-between;\n                        }\n\n                        .sf-stepper {\n                            display: flex;\n                            align-items: center;\n                            gap: 8px;\n                        }\n\n                        .sf-stepper-btn {\n                            display: flex;\n                            align-items: center;\n                            padding: 4px;\n                            opacity: 0;\n                            cursor: pointer;\n                            border: none;\n                            background: transparent;\n                            color: #7a7a7a;\n                            border-radius: 4px;\n                            transition: background 0.15s ease;\n                        }\n\n                        .velt-comment-dialog.selected button.sf-stepper-btn{\n                            opacity: 1\n                        }\n\n\n                        .sf-stepper-btn:hover {\n                            background: #f5f5f5;\n                        }\n\n                        .sf-stepper-count {\n                            font-size: 12px;\n                            font-weight: 500;\n                            color: #7a7a7a;\n                            white-space: nowrap;\n                            font-family: \'Poppins\', sans-serif;\n                        }\n\n                        .sf-accept-reject {\n                            display: flex;\n                            align-items: center;\n                            gap: 4px;\n                        }\n\n                        .sf-accept-btn {\n                            display: flex;\n                            align-items: center;\n                            justify-content: center;\n                            padding: 4px 12px;\n                            border-radius: 32px;\n                            background: #198f65;\n                            border: none;\n                            cursor: pointer;\n                            transition: opacity 0.15s ease;\n                        }\n\n                        .sf-accept-btn:hover {\n                            opacity: 0.85;\n                        }\n\n                        .sf-reject-btn {\n                            display: flex;\n                            align-items: center;\n                            justify-content: center;\n                            padding: 4px 12px;\n                            border-radius: 32px;\n                            background: #ff7162;\n                            border: none;\n                            cursor: pointer;\n                            transition: opacity 0.15s ease;\n                        }\n\n                        .sf-reject-btn:hover {\n                            opacity: 0.85;\n                        }\n\n                        @keyframes sf-spin {\n                            from { transform: rotate(0deg); }\n                            to { transform: rotate(360deg); }\n                        }\n\n                        .sf-accept-btn.sf-btn-loading,\n                        .sf-reject-btn.sf-btn-loading {\n                            pointer-events: none;\n                            opacity: 0.7;\n                        }\n\n                        .sf-accept-btn.sf-btn-loading svg,\n                        .sf-reject-btn.sf-btn-loading svg {\n                            display: none;\n                        }\n\n                        .sf-accept-btn.sf-btn-loading::after,\n                        .sf-reject-btn.sf-btn-loading::after {\n                            content: \'\';\n                            display: block;\n                            width: 14px;\n                            height: 14px;\n                            border: 2px solid rgba(255,255,255,0.3);\n                            border-top-color: #ffffff;\n                            border-radius: 50%;\n                            animation: sf-spin 0.6s linear infinite;\n                        }\n\n                        .sf-accept-btn.sf-btn-disabled,\n                        .sf-reject-btn.sf-btn-disabled {\n                            pointer-events: none;\n                            opacity: 0.5;\n                        }\n\n                        .sf-comment-dialog-body-wireframe-default{\n                            display: flex;\n                            align-items: flex-start;\n                            border-radius: 1rem !important;\n                            /* background-color: white !important; */\n                            padding: 1rem !important;\n                            flex-direction: column;\n                            gap: 1rem;\n                            &:empty{\n                                display: none !important;\n                            }\n\n                            velt-comment-dialog-private-banner-internal,\n                            velt-comment-dialog-body-internal,\n                            velt-comment-dialog-all-comment-internal{\n                                width: 100% !important;\n                            }\n                        }\n\n                        .no-comments:has(.sf-comment-dialog-body-wireframe-default){\n                            .sf-comment-dialog-body-wireframe-default{\n                                padding: 0 !important;\n                            }\n                            \n                        }\n\n                        .velt-thread-card--emoji-picker-button{\n                            transition: opacity 0.2s ease-in-out !important;\n                            opacity: 0 !important;\n                        }\n                        .velt-thread-card--message-wrap:hover .velt-thread-card--emoji-picker-button {\n                            opacity: 1 !important;\n                        }\n\n                        app-if:empty{\n                            display: none !important;\n                        }\n\n                    </style>\n                    <velt-wireframe style="display: none;">\n                        <velt-comment-dialog-wireframe>\n                            <velt-if condition="{annotation.commentType} == \'suggestion\'">\n                                <velt-comment-dialog-body-wireframe>\n                                    <velt-comment-dialog-threads-wireframe>\n                                        <velt-comment-dialog-thread-card-wireframe>\n                                        <div class="sf-suggestion-card">\n                                        <velt-comment-dialog-thread-card-message-wireframe></velt-comment-dialog-thread-card-message-wireframe>\n                                                <div class="sf-suggestion-actions">\n                                                    <div class="sf-stepper">\n                                                        <velt-if condition="{showButtons} == true">\n                                                            <velt-button-wireframe id="prev-suggestion" type="button">\n                                                                <button class="sf-stepper-btn" type="button">\n                                                                    <svg width="12" height="12" viewBox="0 0 24 24" fill="none"\n                                                                        xmlns="http://www.w3.org/2000/svg">\n                                                                        <path d="M15 18L9 12L15 6" stroke="currentColor" stroke-width="2"\n                                                                            stroke-linecap="round" stroke-linejoin="round" />\n                                                                    </svg>\n                                                                </button>\n                                                            </velt-button-wireframe>\n                                                            <velt-button-wireframe id="next-suggestion" type="button">\n                                                                <button class="sf-stepper-btn" type="button">\n                                                                    <svg width="12" height="12" viewBox="0 0 24 24" fill="none"\n                                                                        xmlns="http://www.w3.org/2000/svg">\n                                                                        <path d="M9 6L15 12L9 18" stroke="currentColor" stroke-width="2"\n                                                                            stroke-linecap="round" stroke-linejoin="round" />\n                                                                    </svg>\n                                                                </button>\n                                                            </velt-button-wireframe>\n                                                        </velt-if>\n                                                    </div>\n\n                                                    <div class="sf-accept-reject">\n                                                        <velt-button-wireframe id="accept-suggestion" type="button">\n                                                            <button class="sf-accept-btn" type="button">\n                                                                <svg width="16" height="16" viewBox="0 0 24 24" fill="none"\n                                                                    xmlns="http://www.w3.org/2000/svg">\n                                                                    <path d="M20 6L9 17L4 12" stroke="#ffffff" stroke-width="2.5"\n                                                                        stroke-linecap="round" stroke-linejoin="round" />\n                                                                </svg>\n                                                            </button>\n                                                        </velt-button-wireframe>\n                                                        <velt-button-wireframe id="reject-suggestion" type="button">\n                                                            <button class="sf-reject-btn" type="button">\n                                                                <svg width="16" height="16" viewBox="0 0 24 24" fill="none"\n                                                                    xmlns="http://www.w3.org/2000/svg">\n                                                                    <path d="M18 6L6 18M6 6L18 18" stroke="#ffffff" stroke-width="2.5"\n                                                                        stroke-linecap="round" stroke-linejoin="round" />\n                                                                </svg>\n                                                            </button>\n                                                        </velt-button-wireframe>\n                                                    </div>\n                                                </div>\n                                            </div>\n\n                                        </velt-comment-dialog-thread-card-wireframe>\n                                    </velt-comment-dialog-threads-wireframe>\n                                </velt-comment-dialog-body-wireframe>\n                            </velt-if>\n\n                            <velt-if condition="{annotation.commentType} != \'suggestion\'" class="sf-comment-dialog-body-wireframe-default" >\n                                <velt-comment-dialog-ghost-banner-wireframe></velt-comment-dialog-ghost-banner-wireframe>\n                                <velt-comment-dialog-private-banner-wireframe></velt-comment-dialog-private-banner-wireframe>\n                                <velt-comment-dialog-assignee-banner-wireframe></velt-comment-dialog-assignee-banner-wireframe>\n                                <velt-comment-dialog-header-wireframe></velt-comment-dialog-header-wireframe>\n                                <velt-comment-dialog-body-wireframe></velt-comment-dialog-body-wireframe>\n                                <velt-comment-dialog-composer-wireframe></velt-comment-dialog-composer-wireframe>\n                                <velt-comment-dialog-all-comment-wireframe></velt-comment-dialog-all-comment-wireframe>\n                                <velt-comment-dialog-approve-wireframe></velt-comment-dialog-approve-wireframe>\n                                <velt-comment-dialog-sign-in-wireframe></velt-comment-dialog-sign-in-wireframe>\n                                <velt-comment-dialog-upgrade-wireframe></velt-comment-dialog-upgrade-wireframe>\n                                <velt-comment-dialog-suggestion-action-wireframe></velt-comment-dialog-suggestion-action-wireframe>\n                            </velt-if>\n                        </velt-comment-dialog-wireframe>\n                    </velt-wireframe>\n                    ',window.document.body.appendChild(i)}catch(t){console.warn("Error in insertShadowDOM: ",t),Sc("Error in insertShadowDOM: ",t)}},this.applyStorageFeatureAccess=()=>{try{if(!this.featureAccess||!this.commentElement)return;const t=this.featureAccess[zc.Storage];(null==t?void 0:t.hasUsageExhausted)&&(this.commentElement.disableAttachments(),this.commentElement.setRecordings("none"))}catch(t){Sc("Error in applyStorageFeatureAccess: ",t)}},this.checkToMigrateGuestUser=async t=>{try{const e=gc(!1,this.apiKey);e&&(await Vc(this.apiKey,this.projectId||"",e,t,!0),dc(Mt))}catch(t){console.warn("Error in checkToMigrationGuestUser: ",t),Sc("Error in checkToMigrationGuestUser: ",t)}},this.getComments=()=>{try{this.commentElement&&(this.commentSubscription&&this.commentSubscription.unsubscribe(),this.commentSubscription=this.commentElement.getAllCommentAnnotations(this.documentId).subscribe((t=>{this.comments=null==t?void 0:t.filter((t=>{var e;return["open","inProgress"].includes(null==t?void 0:t.status)||["default","ongoing"].includes(null===(e=null==t?void 0:t.status)||void 0===e?void 0:e.type)})),this.processAgentComments(t),this.filterAgentCommentsFromCurrentData()})))}catch(t){console.warn("Error in getComments: ",t),Sc("Error in getComments: ",t)}},this.handleCommentSelection=t=>{var e,i,n,o,s,r,a,l,c,d;try{if(!1===(null==t?void 0:t.selected))return void(null===(e=null===Velt||void 0===Velt?void 0:Velt.setUiState)||void 0===e||e.call(Velt,{showButtons:!1}));const h=null==t?void 0:t.annotation;if(!h||!this.isAgentAnnotation(h))return void(null===(i=null===Velt||void 0===Velt?void 0:Velt.setUiState)||void 0===i||i.call(Velt,{showButtons:!1}));const u=null===(o=null===(n=null==h?void 0:h.agent)||void 0===n?void 0:n.result)||void 0===o?void 0:o.incorrectWord,p=(null===(s=null==h?void 0:h.pageInfo)||void 0===s?void 0:s.path)||(null===(r=null==h?void 0:h.location)||void 0===r?void 0:r.path)||(null===(a=null==h?void 0:h.agent)||void 0===a?void 0:a.path);if(!u||!p)return void(null===(l=null===Velt||void 0===Velt?void 0:Velt.setUiState)||void 0===l||l.call(Velt,{showButtons:!1}));const v=this.normalizePagePath(p),f=u,g=null===(d=null===(c=null==h?void 0:h.agent)||void 0===c?void 0:c.result)||void 0===d?void 0:d.type;let m,w="";"grammar"===g?(m=this.grammarSuggestionPagePathMap,w="grammar"):(m=this.spellingSuggestionPagePathMap,w="spelling");const b=null==m?void 0:m.get(f);((null==b?void 0:b.get(v))||0)<=1?Velt.setUiState({showButtons:!1,warningType:w}):Velt.setUiState({showButtons:!0,warningType:w})}catch(t){console.warn("Error in handleCommentSelection: ",t),Sc("Error in handleCommentSelection: ",t)}},this.processAgentComments=t=>{var e,i,n;try{if(!(null==t?void 0:t.length))return this.hasContentWarnings=!1,this.contentWarningsCount=0,this.agentGroups=[],this.spellingSuggestionPagePathMap=new Map,void(this.grammarSuggestionPagePathMap=new Map);!this.agentNamesFetched&&this.apiKey&&this.fetchAgentNames();const o=null==t?void 0:t.filter((t=>{var e;const i=(null===(e=null==t?void 0:t.status)||void 0===e?void 0:e.type)===Jt;return this.isAgentAnnotation(t)&&!i})),s=new Map;for(const t of o){const i=this.extractAgentId((null===(e=null==t?void 0:t.agent)||void 0===e?void 0:e.agentFields)||[]);if(!i)continue;const n=s.get(i);n?n.push(t):s.set(i,[t])}const r=[],a=new Map,l=new Map;for(const[t,e]of s){const o=this.isCustomAgent((null===(n=null===(i=e[0])||void 0===i?void 0:i.agent)||void 0===n?void 0:n.agentFields)||[]),s=this.resolveAgentDisplayName(t),{warnings:c,warningCount:d}=this.buildAgentWarnings(t,e,a,l);r.push({agentId:t,agentName:s,isCustom:o,warningCount:d,warnings:c,annotations:e})}r.sort(((t,e)=>e.warningCount-t.warningCount)),this.agentGroups=r;const c=r.reduce(((t,e)=>t+e.warningCount),0);this.contentWarningsCount=c,this.hasContentWarnings=c>0,this.spellingSuggestionPagePathMap=a,this.grammarSuggestionPagePathMap=l}catch(t){console.warn("Error in processAgentComments: ",t),Sc("Error in processAgentComments: ",t)}},this.extractAgentId=t=>{try{if(!Array.isArray(t)||0===t.length)return null;for(const e of t)if(null==e?void 0:e.startsWith(qt.AGENT))return e.substring(qt.AGENT.length);return null}catch(t){return console.warn("Error in extractAgentId: ",t),null}},this.isCustomAgent=t=>{try{return!!Array.isArray(t)&&t.includes(qt.AGENT_TYPE_CUSTOM)}catch(t){return console.warn("Error in isCustomAgent: ",t),!1}},this.resolveAgentDisplayName=t=>{var e,i;try{return null!==(i=null===(e=this.agentNameMap)||void 0===e?void 0:e.get(t))&&void 0!==i?i:"Unknown Agent"}catch(t){return console.warn("Error in resolveAgentDisplayName: ",t),"Unknown Agent"}},this.fetchAgentNames=async()=>{var t,e,i;try{this.agentNamesFetched=!0;const{getAgents:n}=await Promise.resolve().then((function(){return Gc})),o=await n(this.apiKey),s=new Map;for(const i of o){const n=null!==(t=null==i?void 0:i.id)&&void 0!==t?t:"",o=null!==(e=null==i?void 0:i.name)&&void 0!==e?e:"";n&&o&&s.set(n,o)}if(this.agentNameMap=s,(null===(i=this.agentGroups)||void 0===i?void 0:i.length)>0){const t=this.agentGroups.map((t=>({...t,agentName:this.resolveAgentDisplayName(t.agentId)})));this.agentGroups=t}}catch(t){this.agentNamesFetched=!1,console.warn("Error in fetchAgentNames: ",t)}},this.buildAgentWarnings=(t,e,i,n)=>{try{return t===Qt.BROKEN_LINKS?this.buildBrokenLinkWarnings(e):t===Qt.SPELL_CHECK||t===Qt.GRAMMAR_CHECK?this.buildSpellCheckWarnings(e,i,n):this.buildGenericWarnings(e)}catch(t){return console.warn("Error in buildAgentWarnings: ",t),{warnings:[],warningCount:0}}},this.buildBrokenLinkWarnings=t=>{var e,i,n,o,s,r,a,l,c,d,h;try{const u=new Map;for(const p of t){const t=(null===(e=null==p?void 0:p.pageInfo)||void 0===e?void 0:e.url)||(null===(i=null==p?void 0:p.location)||void 0===i?void 0:i.url)||(null===(n=null==p?void 0:p.agent)||void 0===n?void 0:n.url)||"",v=(null===(s=null===(o=null==p?void 0:p.agent)||void 0===o?void 0:o.result)||void 0===s?void 0:s.url)||(null===(a=null===(r=null==p?void 0:p.agent)||void 0===r?void 0:r.result)||void 0===a?void 0:a.link)||t,f=(null===(c=null===(l=null==p?void 0:p.agent)||void 0===l?void 0:l.result)||void 0===c?void 0:c.statusCode)||(null===(h=null===(d=null==p?void 0:p.agent)||void 0===d?void 0:d.result)||void 0===h?void 0:h.status)||"404",g=(null==v?void 0:v.toLowerCase())||"";if(u.has(g)){const e=u.get(g);e.occurrences+=1,t&&!e.pageUrls.includes(t)&&e.pageUrls.push(t),e.annotations.push(p)}else u.set(g,{primaryText:v||"",secondaryText:String(f),occurrences:1,pageUrls:t?[t]:[],annotations:[p]})}const p=Array.from(u.values());return{warnings:p,warningCount:p.length}}catch(t){return console.warn("Error in buildBrokenLinkWarnings: ",t),{warnings:[],warningCount:0}}},this.buildSpellCheckWarnings=(t,e,i)=>{var n,o,s,r,a,l,c,d,h,u,p,v,f,g,m,w,b,y,C;try{const x=new Map;for(const E of t){const t=(null===(n=null==E?void 0:E.pageInfo)||void 0===n?void 0:n.url)||(null===(o=null==E?void 0:E.location)||void 0===o?void 0:o.url)||(null===(s=null==E?void 0:E.agent)||void 0===s?void 0:s.url)||"",k=(null===(r=null==E?void 0:E.pageInfo)||void 0===r?void 0:r.path)||(null===(a=null==E?void 0:E.location)||void 0===a?void 0:a.path)||(null===(l=null==E?void 0:E.agent)||void 0===l?void 0:l.path)||"",S=this.normalizePagePath(k),M=null!==(d=null!==(c=null==E?void 0:E.comments)&&void 0!==c?c:null==E?void 0:E.commentData)&&void 0!==d?d:[],_=null!==(p=null===(u=null===(h=null==M?void 0:M[0])||void 0===h?void 0:h.commentText)||void 0===u?void 0:u.trim())&&void 0!==p?p:"",T=(null===(f=null===(v=null==E?void 0:E.agent)||void 0===v?void 0:v.result)||void 0===f?void 0:f.incorrectWord)||(null===(g=null==E?void 0:E.targetElement)||void 0===g?void 0:g.targetText)||_||"",I=(null===(w=null===(m=null==E?void 0:E.agent)||void 0===m?void 0:m.result)||void 0===w?void 0:w.suggestions)||[],N=Array.isArray(I)?I[0]||"":I||"",A=null===(y=null===(b=null==E?void 0:E.agent)||void 0===b?void 0:b.result)||void 0===y?void 0:y.type,L=T||"";T||console.warn("[CWS] Spell check annotation missing incorrectWord. agent.result:",null===(C=null==E?void 0:E.agent)||void 0===C?void 0:C.result,"targetElement:",null==E?void 0:E.targetElement,"comments:",M);const O="grammar"===A?i:e;O.has(L)||O.set(L,new Map);const $=O.get(L),D=$.get(S)||0;if($.set(S,D+1),x.has(L)){const e=x.get(L);e.occurrences+=1,t&&!e.pageUrls.includes(t)&&e.pageUrls.push(t),e.annotations.push(E)}else x.set(L,{primaryText:T||"",secondaryText:N||"",occurrences:1,pageUrls:t?[t]:[],annotations:[E]})}const E=Array.from(x.values());return{warnings:E,warningCount:E.length}}catch(t){return console.warn("Error in buildSpellCheckWarnings: ",t),{warnings:[],warningCount:0}}},this.buildGenericWarnings=t=>{var e,i,n,o,s,r,a,l,c,d,h,u,p,v,f,g,m,w,b,y;try{const C=new Map;for(const x of t){const t=(null===(e=null==x?void 0:x.pageInfo)||void 0===e?void 0:e.url)||(null===(i=null==x?void 0:x.location)||void 0===i?void 0:i.url)||(null===(n=null==x?void 0:x.agent)||void 0===n?void 0:n.url)||"",E=null!==(s=null!==(o=null==x?void 0:x.comments)&&void 0!==o?o:null==x?void 0:x.commentData)&&void 0!==s?s:[],k=null==E?void 0:E[0],S=null!==(p=null!==(d=null!==(a=null===(r=null==k?void 0:k.commentText)||void 0===r?void 0:r.trim())&&void 0!==a?a:null===(c=null===(l=null==x?void 0:x.agent)||void 0===l?void 0:l.result)||void 0===c?void 0:c.incorrectWord)&&void 0!==d?d:null===(u=null===(h=null==x?void 0:x.targetElement)||void 0===h?void 0:h.targetText)||void 0===u?void 0:u.trim())&&void 0!==p?p:"",M=null!==(y=null!==(m=null===(g=null===(f=null===(v=null==x?void 0:x.agent)||void 0===v?void 0:v.result)||void 0===f?void 0:f.suggestions)||void 0===g?void 0:g[0])&&void 0!==m?m:null===(b=null===(w=null==x?void 0:x.agent)||void 0===w?void 0:w.result)||void 0===b?void 0:b.suggestion)&&void 0!==y?y:"",_=S||(null==x?void 0:x.annotationId)||(null==x?void 0:x.id)||"";if(C.has(_)){const e=C.get(_);e.occurrences+=1,t&&!e.pageUrls.includes(t)&&e.pageUrls.push(t),e.annotations.push(x)}else C.set(_,{primaryText:S||"No text",secondaryText:M||"",occurrences:1,pageUrls:t?[t]:[],annotations:[x]})}const x=Array.from(C.values());return{warnings:x,warningCount:x.length}}catch(t){return console.warn("Error in buildGenericWarnings: ",t),{warnings:[],warningCount:0}}},this.normalizePagePath=t=>{try{return t?(null==t?void 0:t.startsWith("/"))?t.substring(1):t:""}catch(e){return console.warn("Error in normalizePagePath: ",e),t||""}},this.setQueryParamsCommentsInSdk=()=>{var t,e,i,n,o;try{const s="true"===sessionStorage.getItem("debugQueryParamsComments");s&&console.log("setQueryParamsCommentsInSdk commentElement",this.commentElement),this.commentElement&&(s&&console.log("setQueryParamsCommentsInSdk queryParamsComments",this.queryParamsComments),this.queryParamsComments&&(null===(t=this.commentElement)||void 0===t?void 0:t.enableQueryParamsComments)?(s&&console.log("enableQueryParamsComments this.commentElement?.enableQueryParamsComments",null===(e=this.commentElement)||void 0===e?void 0:e.enableQueryParamsComments),null===(i=this.commentElement)||void 0===i||i.enableQueryParamsComments()):!this.queryParamsComments&&(null===(n=this.commentElement)||void 0===n?void 0:n.disableQueryParamsComments)&&(s&&console.log("disableQueryParamsComments"),null===(o=this.commentElement)||void 0===o||o.disableQueryParamsComments()))}catch(t){console.warn("Error in setQueryParamsCommentsInSdk: ",t),Sc("Error in setQueryParamsCommentsInSdk: ",t)}},this.checkGlobalUserContact=()=>{try{this.contactElement&&this.contactElement.isUserGlobalContact().subscribe((t=>{this.isUserGlobalContact=t}))}catch(t){console.warn("Error in checkGlobalUserContact: ",t),Sc("Error in checkGlobalUserContact: ",t)}},this.setProjectConfigVariables=t=>{var e,i,n,o;try{const s="Admin"===this.snippylyUserRole;this.allFeatureDisabled=!s&&(null!==(e=null==t?void 0:t.disabled)&&void 0!==e&&e),this.allFeatureRestricted=null!==(i=null==t?void 0:t.restricted)&&void 0!==i&&i,this.guestMode=null!==(n=null==t?void 0:t.guestMode)&&void 0!==n&&n,this.allowGuestModeSignIn=!!(null===(o=null==t?void 0:t.guestModeConfig)||void 0===o?void 0:o.allowSignIn),(null==t?void 0:t.guestModeConfig)||(this.allowGuestModeSignIn=!0),this.guestMode&&Mc(vt.Events.GUEST_MODE_PRESENT),this.passwordProtected=!1,this.queryParamsComments=!!(null==t?void 0:t.queryParamsComments),this.usePageTitleAsLocationName=!!(null==t?void 0:t.usePageTitleAsLocationName),Velt&&(t&&this.passwordProtected&&!this.isPasswordValid?Velt.disableFeatures(["area","arrow","audioHuddle","cursor","huddle","liveStateSync","presence","tag","recorder","comment"]):Velt.disableFeatures([])),lc(Dt,this.guestMode+"",!0),lc(Ut,this.allowGuestModeSignIn+"",!0),lc(Vt,this.passwordProtected+"",!0),lc(jt,this.queryParamsComments+"",!0),lc(Ft,this.usePageTitleAsLocationName+"",!0)}catch(t){console.warn("Error in setProjectConfigVariables: ",t),Sc("Error in setProjectConfigVariables: ",t)}},this.toggleSnippylyPluginToolbar=()=>{try{this.expanded=!this.expanded,this.expanded?Mc(vt.Events.TOOLBAR_EXPANDED):Mc(vt.Events.TOOLBAR_COLLAPSED)}catch(t){console.warn("Error in toggleSnippylyPluginToolbar: ",t),Sc("Error in toggleSnippylyPluginToolbar: ",t)}},this.togglePrivateCommentMode=()=>{try{this.commentElement&&(this.privateCommentModeEnabled?(this.commentElement.disablePrivateCommentMode&&this.commentElement.disablePrivateCommentMode(),this.privateCommentModeEnabled=!1,Mc(vt.Events.PRIVATE_MODE_DISABLED)):(this.commentElement.enablePrivateCommentMode&&this.commentElement.enablePrivateCommentMode(),this.privateCommentModeEnabled=!0,Mc(vt.Events.PRIVATE_MODE_ENABLED)),lc(Rt,this.privateCommentModeEnabled.toString()))}catch(t){console.warn("Error in togglePrivateCommentMode: ",t),Sc("Error in togglePrivateCommentMode: ",t)}},this.checkPrivateCommentModeFromStorage=()=>{try{this.allFeatureDisabled||"Admin"!==this.snippylyUserRole||cc(Rt)&&(this.privateCommentModeEnabled="true"===cc(Rt),this.privateCommentModeEnabled&&this.commentElement.enablePrivateCommentMode&&this.commentElement.enablePrivateCommentMode())}catch(t){console.warn("Error in checkPrivateCommentModeFromStorage: ",t),Sc("Error in checkPrivateCommentModeFromStorage: ",t)}},this.loginWithGoogle=()=>{try{if(Mc(vt.Events.SIGNIN_CLICKED),this.loading||this.customLoginEnabledLocally)return;const t=this.buildSignInUrlWithParams(this.signInUrl||"");window.open(t,"_self")}catch(t){console.warn("Error in loginWithGoogle: ",t),Sc("Error in loginWithGoogle: ",t)}},this.buildSignInUrlWithParams=t=>{try{const e=new URL(t);return this.apiKey&&e.searchParams.set("apiKey",this.apiKey),this.projectId&&e.searchParams.set("projectId",this.projectId),e.toString()}catch(e){return console.warn("Error in buildSignInUrlWithParams: ",e),Sc("Error in buildSignInUrlWithParams: ",e),t}},this.getQRCode=async()=>{try{const t=new URL(window.location.href);null==t||t.searchParams.set("review","true");const e=null==t?void 0:t.toString();if(e){const t=uc(e,re,ae),i=await fetch(`https://us-central1-snippyly-sdk-prod.cloudfunctions.net/getqrcode?text=${encodeURIComponent(t)}`),n=await i.json();(null==n?void 0:n.qrcode)&&(this.qrCode=null==n?void 0:n.qrcode)}}catch(t){console.warn("Error in getQRCode: ",t),Sc("Error in getQRCode: ",t)}},this.toggleQRCodeVisibility=async()=>{try{Mc(vt.Events.OPEN_MOBILE_CLICKED),this.showQrCode=!this.showQrCode,this.showQrCode&&!this.qrCode&&await this.getQRCode()}catch(t){console.warn("Error in toggleQRCodeVisibility: ",t),Sc("Error in toggleQRCodeVisibility: ",t)}},this.onUserInviteToolClick=()=>{var t;(null===(t=this.snippylyUser)||void 0===t?void 0:t.isGuest)?(this.guestModeSignInModalConfig.title="Sign in to invite others.",this.guestModeSignInModalConfig.description="Invite team members to comment on this project.",this.guestModeSignInModalConfig.showLeaveCommentButton=!1,this.guestModeSignInModalConfig.closeOnClickOutside=!0,this.openGuestModeSignInModal()):this.openInviteModal()},this.openInviteModal=()=>{this.showInviteModal=!0,Mc(vt.Events.INVITE_MODAL_OPENED)},this.closeInviteModal=()=>{this.showInviteModal=!1},this.onInviteSuccess=()=>{this.closeInviteModal(),Mc(vt.Events.INVITE_SENT)},this.removeSnippyly=async()=>{try{Mc(vt.Events.EXIT_REVIEW_MODE_CLICKED),this.exitReviewModeCalled=!0,dc(bt),dc(yt),dc(Ct),dc(_t,"sessionStorage"),dc(Tt,"sessionStorage");const t=new URL(document.location),e=t.searchParams;e.delete(Ct),e.delete(bt),e.delete(xt),e.delete(yt),this.projectVersionKey&&e.delete(this.projectVersionKey),e.delete(It),e.delete(Nt),e.delete(At),this.projectVersion=void 0,this.projectVersionKey=void 0,delete window.snippylyInitialLoadUrl,window.history.replaceState({},document.title,t.href),window.location.reload()}catch(t){console.warn("Error in removeSnippyly: ",t),Sc("Error in removeSnippyly: ",t)}},this.signOutUser=async()=>{try{Mc(vt.Events.SIGNOUT_CLICKED),this.subscriptions.forEach((t=>{t&&t.unsubscribe&&(null==t||t.unsubscribe())})),this.contactListSubscription&&(this.contactListSubscription.unsubscribe(),this.contactListSubscription=null),await Velt.signOutUser(),dc(Et),dc(St),dc($t),dc(Rt),this.snippylyUser=void 0,window.open(this.signOutUrl,"_self")}catch(t){console.warn("Error in signOutUser: ",t),Sc("Error in signOutUser: ",t)}},this.toggleMenu=(t,e)=>{try{t.stopPropagation(),this.menuOpenedId===e?this.menuOpenedId=void 0:this.menuOpenedId=e}catch(t){console.warn("Error in toggleMenu: ",t),Sc("Error in toggleMenu: ",t)}},this.copyLink=()=>{try{navigator.clipboard.writeText(window.location.href),this.copyLinkTooltip="Link copied!",setTimeout((()=>{this.copyLinkTooltip="Copy Link"}),2e3)}catch(t){console.warn("Error in copyLink: ",t),Sc("Error in copyLink: ",t)}},this.goToAdminPortal=()=>{try{let t=`${se}`;Velt&&(null===Velt||void 0===Velt?void 0:Velt.getDocumentId)&&this.serverDocumentId&&(t=`${se}/dashboard/project/comment/${this.apiKey}/${this.serverDocumentId}`),Mc(vt.Events.VIEW_PROJECT_CLICKED),window.open(t,"_blank")}catch(t){console.warn("Error in goToAdminPortal: ",t),Sc("Error in goToAdminPortal: ",t)}},this.goToAdminPortalDashboard=()=>{try{let t=`${se}`;Velt&&(null===Velt||void 0===Velt?void 0:Velt.getDocumentId)&&this.serverDocumentId&&(t=`${se}/dashboard`),window.open(t,"_blank")}catch(t){console.warn("Error in goToAdminPortalDashboard: ",t),Sc("Error in goToAdminPortalDashboard: ",t)}},this.joinCommunity=()=>{try{window.open("https://join.slack.com/t/superflowusers/shared_invite/zt-1q3jzsddt-NEb~uu9RXscLfxOIDGQXJw","_blank")}catch(t){console.warn("Error in joinCommunity: ",t),Sc("Error in joinCommunity: ",t)}},this.onboardingNextClick=()=>{try{this.showOnboardingModal=!1,lc(Nt,"true");const t=new URL(document.location);t.searchParams.delete(Nt),window.history.replaceState({},document.title,t.href)}catch(t){console.warn("Error in onboardingNextClick: ",t),Sc("Error in onboardingNextClick: ",t)}},this.onLiveDemoModalNextClick=()=>{try{this.showLiveDemoModal=!1,lc(At,"true",!1,"sessionStorage");const t=new URL(document.location);t.searchParams.delete(At),window.history.replaceState({},document.title,t.href)}catch(t){console.warn("Error in onLiveDemoModalNextClick: ",t),Sc("Error in onLiveDemoModalNextClick: ",t)}},this.onFigmaDemoModalNextClick=()=>{try{this.showFigmaDemoModal=!1;const t=new URL(document.location);t.searchParams.delete(Lt),window.history.replaceState({},document.title,t.href)}catch(t){console.warn("Error in onFigmaDemoModalNextClick: ",t),Sc("Error in onFigmaDemoModalNextClick: ",t)}},this.onUpgradePlanClick=()=>{try{window.open("https://app.usesuperflow.com/settings/billing","_blank")}catch(t){console.warn("Error in onUpgradePlanClick: ",t),Sc("Error in onUpgradePlanClick: ",t)}},this.onTourCommentTooltipClick=()=>{try{this.showTourCommentTooltip=!1,lc(Ot,"true")}catch(t){console.warn("Error in onTourCommentTooltipClick: ",t),Sc("Error in onTourCommentTooltipClick: ",t)}},this.onGuestModeChipSignInButtonClick=()=>{try{Mc(vt.Events.GUEST_MODE_SIGN_IN_BUTTON_CLICKED),this.loginWithGoogle()}catch(t){console.warn("Error in onGuestModeChipSignInButtonClick: ",t),Sc("Error in onGuestModeChipSignInButtonClick: ",t)}},this.openGuestModeSignInModal=()=>{try{this.showGuestModeSignInModal=!0,Mc(vt.Events.GUEST_MODE_SIGN_IN_DIALOG_SHOWN)}catch(t){console.warn("Error in openGuestModeSignInModal: ",t),Sc("Error in openGuestModeSignInModal: ",t)}},this.closeGuestModeSignInModal=()=>{try{this.showGuestModeSignInModal=!1,this.guestModeSignInModalConfig=JSON.parse(JSON.stringify(this.defaultGuestModeSignInModalConfig))}catch(t){console.warn("Error in closeGuestModeSignInModal: ",t),Sc("Error in closeGuestModeSignInModal: ",t)}},this.onGuestModeSignInModalSignInButtonClick=()=>{try{Mc(vt.Events.GUEST_MODE_SIGN_IN_BUTTON_CLICKED),this.loginWithGoogle()}catch(t){console.warn("Error in onGuestModeSignInModalSignInButtonClick: ",t),Sc("Error in onGuestModeSignInModalSignInButtonClick: ",t)}},this.openGuestModeNameModel=t=>{try{t&&(t.stopPropagation(),t.preventDefault()),this.skipGuestNameModal||(this.showGuestModeNameModal=!0,Mc(vt.Events.GUEST_MODE_NAME_NUDGE_SHOWN))}catch(t){console.warn("Error in openGuestModeNameModel: ",t),Sc("Error in openGuestModeNameModel: ",t)}},this.closeGuestModeNameModel=()=>{try{this.showGuestModeNameModal=!1}catch(t){console.warn("Error in closeGuestModeNameModel: ",t),Sc("Error in closeGuestModeNameModel: ",t)}},this.onGuestModeNameModalSkipButtonClick=()=>{try{Mc(vt.Events.GUEST_MODE_SKIP_BUTTON_CLICKED),this.showGuestModeNameModal=!1}catch(t){console.warn("Error in onGuestModeNameModalSkipButtonClick: ",t),Sc("Error in onGuestModeNameModalSkipButtonClick: ",t)}},this.onPasswordProtectedModalCloseButtonClick=()=>{try{Mc(vt.Events.PASSWORD_PROTECTED_MODAL_CLOSE_BUTTON_CLICKED),this.showPasswordProtectedModal=!1,this.password="",this.showInvalidPassword=!1}catch(t){console.warn("Error in onPasswordProtectedModalCloseButtonClick: ",t),Sc("Error in onPasswordProtectedModalCloseButtonClick: ",t)}},this.onPasswordProtectedModalOpenButtonClick=()=>{try{Mc(vt.Events.PASSWORD_PROTECTED_MODAL_OPEN_BUTTON_CLICKED),this.showPasswordProtectedModal=!0}catch(t){console.warn("Error in onPasswordProtectedModalOpenButtonClick: ",t),Sc("Error in onPasswordProtectedModalOpenButtonClick: ",t)}},this.showGuestModeSignInBanner=()=>{try{this.guestModeSignInBannerVisible=!0,Mc(vt.Events.GUEST_MODE_SIGN_IN_NUDGE_SHOWN)}catch(t){console.warn("Error in showGuestModeSignInBanner: ",t),Sc("Error in showGuestModeSignInBanner: ",t)}},this.hideGuestModeSignInBanner=()=>{try{this.guestModeSignInBannerVisible=!1}catch(t){console.warn("Error in hideGuestModeSignInBanner: ",t),Sc("Error in hideGuestModeSignInBanner: ",t)}},this.onGuestModeBannerSignInButtonClick=()=>{try{Mc(vt.Events.GUEST_MODE_SIGN_IN_CLICKED),this.loginWithGoogle()}catch(t){console.warn("Error in onGuestModeBannerSignInButtonClick: ",t),Sc("Error in onGuestModeBannerSignInButtonClick: ",t)}},this.updateGuestUserName=async()=>{var t;try{if(!(null===(t=this.guestUserNameInput)||void 0===t?void 0:t.trim()))return;if(this.guestUserNameUpdateLoading)return;const e=gc(!0,this.apiKey);if(e){const t=JSON.parse(JSON.stringify(e));e.name=this.guestUserNameInput,e.photoUrl=null,this.guestUserNameUpdateLoading=!0,(t=>{try{const e=JSON.stringify(t),i=uc(e,re,ae);lc(Mt,i,!0)}catch(t){console.warn("Error in updateGuestUser: ",t),Sc("Error in updateGuestUser: ",t)}})(e),await Velt.identify(e),this.snippylyUser=JSON.parse(JSON.stringify(e)),await Vc(this.apiKey,this.projectId||"",t,e),this.showGuestModeNameModal=!1,this.guestUserNameUpdated=!0,this.guestUserNameUpdateLoading=!1,lc(Bt,"true"),Mc(vt.Events.GUEST_MODE_NAME_ADDED,{oldName:null==t?void 0:t.name,newName:null==e?void 0:e.name})}this.closeGuestModeNameModel()}catch(t){console.warn("Error in updateGuestUserName: ",t),Sc("Error in updateGuestUserName: ",t)}},this.submitPassword=async()=>{var t;try{if(Mc(vt.Events.REVIEW_PASSWORD_ADDED),!(null===(t=this.password)||void 0===t?void 0:t.trim()))return;if(this.validatingPasswordLoading)return;this.validatingPasswordLoading=!0,this.isPasswordValid=await Ac(this.apiKey,this.projectId,this.password),function(t,e){try{const i="object"==typeof e?JSON.stringify(e):e;localStorage.setItem(t,i)}catch(t){console.warn("Error in setLocalStorage: ",t)}}(Pt,this.isPasswordValid),this.isPasswordValid?(this.password="",this.onPasswordProtectedModalCloseButtonClick(),this.showInvalidPassword=!1,Velt&&Velt.disableFeatures([]),Mc(vt.Events.REVIEW_PASSWORD_ACCEPTED)):(this.showInvalidPassword=!0,Mc(vt.Events.REVIEW_PASSWORD_REJECTED)),this.validatingPasswordLoading=!1}catch(t){console.warn("Error in submitPassword: ",t),Sc("Error in submitPassword: ",t)}},this.updateUserName=async()=>{var t;try{if(!(null===(t=this.guestUserNameInput)||void 0===t?void 0:t.trim()))return;if(this.guestUserNameUpdateLoading)return;this.guestUserNameUpdateLoading=!0;const e=JSON.parse(JSON.stringify(this.snippylyUser)),i=JSON.parse(JSON.stringify(this.snippylyUser));i.name=this.guestUserNameInput,await Vc(this.apiKey,this.projectId||"",e,i),await Velt.updateUser(i),this.snippylyUser=JSON.parse(JSON.stringify(i));const n=vc();n.name=i.name;const o=JSON.stringify(n),s=uc(o,re,ae);lc(St,s,!0),this.guestUserNameUpdateLoading=!1,this.guestUserNameInput="",this.closeGuestModeNameModel()}catch(t){console.warn("Error in updateUserName: ",t),Sc("Error in updateUserName: ",t)}},this.isAgentAnnotation=t=>{try{return(null==t?void 0:t.commentType)===Yt}catch(t){return console.warn("Error in isAgentAnnotation: ",t),!1}},this.filterAgentCommentsFromSidebar=t=>{try{if(!t||!this.commentElement)return;const e=t.commentAnnotations;if(!Array.isArray(e))return;const i=[];e.forEach((t=>{this.isAgentAnnotation(t)||i.push(t)}));const n=new Map;i.forEach((t=>{var e,i,o,s;const r=(null===(e=null==t?void 0:t.pageInfo)||void 0===e?void 0:e.path)||(null===(i=null==t?void 0:t.pageInfo)||void 0===i?void 0:i.url)||(null===(o=null==t?void 0:t.location)||void 0===o?void 0:o.path)||"/";n.has(r)||n.set(r,[]),null===(s=n.get(r))||void 0===s||s.push(t)}));const o=[];n.forEach(((t,e)=>{o.push({groupId:e,groupName:e,isExpanded:!0,annotations:t})})),this.commentElement.setCommentSidebarData(o,{grouping:!0})}catch(t){console.warn("Error in filterAgentCommentsFromSidebar: ",t),Sc("Error in filterAgentCommentsFromSidebar: ",t)}},this.filterAgentCommentsFromCurrentData=()=>{var t;try{if(!this.commentElement||!(null===(t=this.comments)||void 0===t?void 0:t.length))return;const e=this.comments.filter((t=>!this.isAgentAnnotation(t))),i=new Map;e.forEach((t=>{var e,n,o,s;const r=(null===(e=null==t?void 0:t.pageInfo)||void 0===e?void 0:e.path)||(null===(n=null==t?void 0:t.pageInfo)||void 0===n?void 0:n.url)||(null===(o=null==t?void 0:t.location)||void 0===o?void 0:o.path)||"/";i.has(r)||i.set(r,[]),null===(s=i.get(r))||void 0===s||s.push(t)}));const n=[];i.forEach(((t,e)=>{n.push({groupId:e,groupName:e,isExpanded:!0,annotations:t})})),this.commentElement.setCommentSidebarData(n,{grouping:!0})}catch(t){console.warn("Error in filterAgentCommentsFromCurrentData: ",t),Sc("Error in filterAgentCommentsFromCurrentData: ",t)}},this.setupSidebarAgentCommentFilter=()=>{try{return}catch(t){console.warn("Error in setupSidebarAgentCommentFilter: ",t),Sc("Error in setupSidebarAgentCommentFilter: ",t)}},this.getContentWarningsDisplayCount=()=>{try{return this.contentWarningsCount>99?"99+":`${this.contentWarningsCount}`}catch(t){return console.warn("Error in getContentWarningsDisplayCount: ",t),"0"}},this.onContentWarningsButtonClick=()=>{try{this.showContentWarningSidebar=!this.showContentWarningSidebar}catch(t){console.warn("Error in onContentWarningsButtonClick: ",t),Sc("Error in onContentWarningsButtonClick: ",t)}},this.onContentWarningSidebarClose=()=>{try{this.showContentWarningSidebar=!1}catch(t){console.warn("Error in onContentWarningSidebarClose: ",t)}},this.handleContentWarningSidebarClickOutside=t=>{var e;try{const i=null===(e=this.shadowRoot)||void 0===e?void 0:e.querySelector("content-warning-sidebar");if(!i)return;const n=t.composedPath(),o=n.some((t=>t===i)),s=n.some((t=>{var e;return t instanceof HTMLElement&&((null===(e=t.classList)||void 0===e?void 0:e.contains("content-warnings-button"))||null!==t.closest(".content-warnings-button"))}));o||s||(this.showContentWarningSidebar=!1)}catch(t){console.warn("Error in handleContentWarningSidebarClickOutside: ",t)}},this.addContentWarningSidebarClickListener=()=>{try{this.contentWarningSidebarClickHandler||(this.contentWarningSidebarClickHandler=this.handleContentWarningSidebarClickOutside.bind(this),document.addEventListener("click",this.contentWarningSidebarClickHandler,!0))}catch(t){console.warn("Error in addContentWarningSidebarClickListener: ",t)}},this.removeContentWarningSidebarClickListener=()=>{try{void 0!==this.contentWarningSidebarListenerTimeoutId&&(window.clearTimeout(this.contentWarningSidebarListenerTimeoutId),this.contentWarningSidebarListenerTimeoutId=void 0),this.contentWarningSidebarClickHandler&&(document.removeEventListener("click",this.contentWarningSidebarClickHandler,!0),this.contentWarningSidebarClickHandler=void 0)}catch(t){console.warn("Error in removeContentWarningSidebarClickListener: ",t)}},this.onContentWarningSidebarAddAll=()=>{},this.onContentWarningItemClick=t=>{var e,i,n;try{const o=null===(e=null==t?void 0:t.detail)||void 0===e?void 0:e.annotation;if(!(null==o?void 0:o.annotationId)&&!(null==o?void 0:o.id))return;const s=(null==o?void 0:o.annotationId)||(null==o?void 0:o.id),r=null===(i=null==o?void 0:o.pageInfo)||void 0===i?void 0:i.url;if(r&&!this.isCurrentPageUrl(r)){const t=new URL(r);return t.searchParams.set(xt,s),void(window.location.href=t.toString())}(null===(n=this.commentElement)||void 0===n?void 0:n.selectCommentByAnnotationId)&&this.commentElement.selectCommentByAnnotationId(s),setTimeout((()=>{var t;(null===(t=this.commentElement)||void 0===t?void 0:t.scrollToCommentByAnnotationId)&&this.commentElement.scrollToCommentByAnnotationId(s)}),150)}catch(t){console.warn("Error in onContentWarningItemClick: ",t),Sc("Error in onContentWarningItemClick: ",t)}},this.isCurrentPageUrl=t=>{try{const e=new URL(t).pathname;return e===window.location.pathname}catch{return!1}},this.setupVeltButtonClickListener=()=>{try{if(!(null===Velt||void 0===Velt?void 0:Velt.on))return void console.warn("[CWS Toolbar] Velt.on not available for button click listener");Velt.on("veltButtonClick").subscribe((t=>{var e;try{if(!t)return;const i=null===(e=null==t?void 0:t.buttonContext)||void 0===e?void 0:e.clickedButtonId,n=null==t?void 0:t.commentAnnotation,o=(null==n?void 0:n.annotationId)||(null==n?void 0:n.id);if(("accept-suggestion"===i||"reject-suggestion"===i)&&o&&this.processingAnnotationIds.has(o))return;"prev-suggestion"===i?this.navigateSuggestion(n,"prev"):"next-suggestion"===i?this.navigateSuggestion(n,"next"):"accept-suggestion"===i?this.handleAcceptSuggestion(n):"reject-suggestion"===i&&this.handleDeclineSuggestion(n)}catch(t){console.warn("Error in veltButtonClick handler: ",t)}})),this.commentElement.onCommentSelectionChange().subscribe((t=>{this.handleCommentSelection(t)}))}catch(t){console.warn("Error in setupVeltButtonClickListener: ",t),Sc("Error in setupVeltButtonClickListener: ",t)}},this.navigateSuggestion=(t,e)=>{var i,n,o,s,r;try{if(!t)return void console.warn("[CWS Toolbar] No annotation provided for navigation");const a=null===(n=null===(i=null==t?void 0:t.agent)||void 0===i?void 0:i.result)||void 0===n?void 0:n.incorrectWord;if(!a)return void console.warn("[CWS Toolbar] No incorrectWord found on annotation");const l=this.findMatchingWarning(a);if(!l)return void console.warn("[CWS Toolbar] No matching warning found for word:",a);const c=null===(o=null==t?void 0:t.pageInfo)||void 0===o?void 0:o.path,d=this.normalizePagePath(c),h=null===(s=null==l?void 0:l.annotations)||void 0===s?void 0:s.filter((t=>{var e;const i=null===(e=null==t?void 0:t.pageInfo)||void 0===e?void 0:e.path;return this.normalizePagePath(i)===d}));if(!(null==h?void 0:h.length)||h.length<=1)return;const u=(null==t?void 0:t.annotationId)||(null==t?void 0:t.id),p=h.findIndex((t=>((null==t?void 0:t.annotationId)||(null==t?void 0:t.id))===u));if(-1===p)return void console.warn("[CWS Toolbar] Current annotation not found in warning group");let v;v="next"===e?(p+1)%h.length:(p-1+h.length)%h.length;const f=h[v],g=(null==f?void 0:f.annotationId)||(null==f?void 0:f.id);g&&((null===(r=this.commentElement)||void 0===r?void 0:r.selectCommentByAnnotationId)&&this.commentElement.selectCommentByAnnotationId(g),setTimeout((()=>{var t;(null===(t=this.commentElement)||void 0===t?void 0:t.scrollToCommentByAnnotationId)&&this.commentElement.scrollToCommentByAnnotationId(g)}),150))}catch(t){console.warn("Error in navigateSuggestion: ",t),Sc("Error in navigateSuggestion: ",t)}},this.findMatchingWarning=t=>{var e;try{for(const i of this.agentGroups){const n=null===(e=null==i?void 0:i.warnings)||void 0===e?void 0:e.find((e=>(null==e?void 0:e.primaryText)===t));if(n)return n}return null}catch(t){return console.warn("Error in findMatchingWarning: ",t),null}},this.removeAnnotationFromWarnings=t=>{var e,i,n;try{if(!t)return;const o=e=>{var i,n,o,s;for(const r of e){const e=null===(i=null==r?void 0:r.annotations)||void 0===i?void 0:i.find((e=>((null==e?void 0:e.annotationId)||(null==e?void 0:e.id))===t));if(e){const t="grammar"===(null===(o=null===(n=null==e?void 0:e.agent)||void 0===n?void 0:n.result)||void 0===o?void 0:o.type)?this.grammarSuggestionPagePathMap:this.spellingSuggestionPagePathMap,i=(null==r?void 0:r.primaryText)||"",a=null===(s=null==e?void 0:e.pageInfo)||void 0===s?void 0:s.path,l=this.normalizePagePath(a);if(i&&l&&t.has(i)){const e=t.get(i),n=e.get(l)||0;n>1?e.set(l,n-1):(e.delete(l),0===e.size&&t.delete(i))}return}}};for(const t of this.agentGroups)(null==t?void 0:t.agentId)!==Qt.SPELL_CHECK&&(null==t?void 0:t.agentId)!==Qt.GRAMMAR_CHECK||o(t.warnings);const s=null!==(n=null===(i=null===(e=this.agentGroups)||void 0===e?void 0:e.map((e=>{var i,n,o,s,r;const a=null!==(o=null===(n=null===(i=null==e?void 0:e.warnings)||void 0===i?void 0:i.map((e=>{var i;const n=null===(i=null==e?void 0:e.annotations)||void 0===i?void 0:i.filter((e=>((null==e?void 0:e.annotationId)||(null==e?void 0:e.id))!==t));return n&&0!==n.length?{...e,annotations:n,occurrences:n.length}:null})))||void 0===n?void 0:n.filter((t=>null!==t)))&&void 0!==o?o:[],l=null!==(r=null===(s=null==e?void 0:e.annotations)||void 0===s?void 0:s.filter((e=>((null==e?void 0:e.annotationId)||(null==e?void 0:e.id))!==t)))&&void 0!==r?r:[];return 0===a.length?null:{...e,warnings:a,warningCount:a.length,annotations:l}})))||void 0===i?void 0:i.filter((t=>null!==t)))&&void 0!==n?n:[];this.agentGroups=s;const r=s.reduce(((t,e)=>t+e.warningCount),0);this.contentWarningsCount=r,this.hasContentWarnings=r>0}catch(t){console.warn("Error in removeAnnotationFromWarnings: ",t)}},this.setSuggestionButtonsLoading=(t,e,i)=>{try{const n=i||document.querySelector(".velt-comment-dialog.selected");if(!n)return;const o=n.querySelector(".sf-accept-btn"),s=n.querySelector(".sf-reject-btn");if(e){const e="accept"===t?o:s,i="accept"===t?s:o;null==e||e.classList.add("sf-btn-loading"),null==i||i.classList.add("sf-btn-disabled")}else null==o||o.classList.remove("sf-btn-loading","sf-btn-disabled"),null==s||s.classList.remove("sf-btn-loading","sf-btn-disabled")}catch(t){console.warn("Error in setSuggestionButtonsLoading: ",t)}},this.handleAcceptSuggestion=async t=>{var e,i,n;try{const o=(null==t?void 0:t.annotationId)||(null==t?void 0:t.id);if(!o)return void console.warn("[CWS Toolbar] handleAcceptSuggestion: No annotationId found",t);if(this.processingAnnotationIds.has(o))return;const s=(null===(e=this.snippylyUser)||void 0===e?void 0:e.userId)||(null===(i=this.snippylyUser)||void 0===i?void 0:i.uid),r=(null===(n=this.snippylyUser)||void 0===n?void 0:n.email)||"";if(!s)return void console.warn("[CWS Toolbar] handleAcceptSuggestion: No user available");if(!this.documentId)return void console.warn("[CWS Toolbar] handleAcceptSuggestion: No documentId available");this.processingAnnotationIds.add(o);const a=document.querySelector(".velt-comment-dialog.selected");this.setSuggestionButtonsLoading("accept",!0,a);try{await Hc(this.apiKey,this.apiKey,this.documentId+"",o,{userId:s,email:r}),this.removeAnnotationFromWarnings(o)}finally{this.processingAnnotationIds.delete(o),this.setSuggestionButtonsLoading("accept",!1,a)}}catch(t){console.warn("Error in handleAcceptSuggestion: ",t),Sc("Error in handleAcceptSuggestion: ",t)}},this.handleDeclineSuggestion=async t=>{try{const e=(null==t?void 0:t.annotationId)||(null==t?void 0:t.id);if(!e)return void console.warn("[CWS Toolbar] handleDeclineSuggestion: No annotationId found",t);if(this.processingAnnotationIds.has(e))return;if(!this.documentId)return void console.warn("[CWS Toolbar] handleDeclineSuggestion: No documentId available");this.processingAnnotationIds.add(e);const i=document.querySelector(".velt-comment-dialog.selected");this.setSuggestionButtonsLoading("reject",!0,i);try{await Wc(this.apiKey,this.apiKey,this.documentId+"",e),this.removeAnnotationFromWarnings(e)}finally{this.processingAnnotationIds.delete(e),this.setSuggestionButtonsLoading("reject",!1,i)}}catch(t){console.warn("Error in handleDeclineSuggestion: ",t),Sc("Error in handleDeclineSuggestion: ",t)}},this.disableCommentMode=()=>{var t;try{(null===(t=this.commentElement)||void 0===t?void 0:t.disableCommentMode)&&this.commentElement.disableCommentMode()}catch(t){console.warn("Error in disableAddCommentMode: ",t),Sc("Error in disableAddCommentMode: ",t)}},this.disableCommentModeButton=()=>{try{return this.addCommentMode?$`
                    <div class="disable-add-comment-button" @click=${()=>this.disableCommentMode()}>
                        <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                            <path fill-rule="evenodd" clip-rule="evenodd" d="M3.52861 3.52858C3.78896 3.26823 4.21107 3.26823 4.47141 3.52858L8.00001 7.05717L11.5286 3.52858C11.789 3.26823 12.2111 3.26823 12.4714 3.52858C12.7318 3.78892 12.7318 4.21103 12.4714 4.47138L8.94282 7.99998L12.4714 11.5286C12.7318 11.7889 12.7318 12.211 12.4714 12.4714C12.2111 12.7317 11.789 12.7317 11.5286 12.4714L8.00001 8.94279L4.47141 12.4714C4.21107 12.7317 3.78896 12.7317 3.52861 12.4714C3.26826 12.211 3.26826 11.7889 3.52861 11.5286L7.0572 7.99998L3.52861 4.47138C3.26826 4.21103 3.26826 3.78892 3.52861 3.52858Z" fill="#FAFBFF"/>
                        </svg>
                    </div>
                `:$``}catch(t){return console.warn("Error in disableAddCommentModeButton: ",t),Sc("Error in disableAddCommentModeButton: ",t),$``}},this.addStyles=()=>{var t,e;try{const i=document.createElement("style");i.textContent=Jc.cssText,null===(t=this.shadowRoot)||void 0===t||t.appendChild(i);const n=document.createElement("style");n.textContent=Yc.cssText,null===(e=this.shadowRoot)||void 0===e||e.appendChild(n)}catch(t){console.warn("Error in addStyles: ",t),Sc("Error in addStyles: ",t)}},this.checkToolbarPosition=()=>{var t;try{const e=null===(t=this.shadowRoot)||void 0===t?void 0:t.querySelector(".snippyly-plugin-container");if(!e)return;requestAnimationFrame((()=>{var t;try{const{x:i}=e.getBoundingClientRect();if(i>=0)return;const n=e.style.transform,[o,s]=(null===(t=n.match(/translate\(([-\d.]+)px,\s*([-\d.]+)px\)/))||void 0===t?void 0:t.slice(1))||[],r=parseInt(o)-i;e.style.transform=`translate(${r||0}px, ${s||0}px)`}catch(t){console.warn("Error in checkToolbarPosition Request Animation Frame",t)}}))}catch(t){console.warn("Error in checkToolbarPosition",t)}},this._dragX=0,this._dragY=0,this._isDragging=!1,this._startX=0,this._startY=0,this.toolbarMouseMove=t=>{var e;try{if(t.stopPropagation(),this._isDragging){let i,n;const o=null===(e=this.shadowRoot)||void 0===e?void 0:e.querySelector(".snippyly-plugin-container");if(o){if(i=t.clientX-this._startX,n=t.clientY-this._startY,i>20||n>40)return;if(window.innerWidth-o.getBoundingClientRect().width-Math.abs(i)<32)return;if(window.innerHeight-o.getBoundingClientRect().height-Math.abs(n)<o.getBoundingClientRect().height)return;o.style.transform=`translate(${i}px, ${n}px)`}}}catch(t){console.warn("Error in toolbarMouseMove",t)}},this.toolbarMouseDown=t=>{var e;try{const i=null===(e=this.shadowRoot)||void 0===e?void 0:e.querySelector(".snippyly-plugin-container");if(i){this._isDragging=!0;const e=window.getComputedStyle(i),n=new WebKitCSSMatrix(e.transform);this._startX=t.clientX-n.m41,this._startY=t.clientY-n.m42}}catch(t){console.warn("Error in toolbarMouseDown",t)}},this.toolbarMouseUp=t=>{try{t&&(this._isDragging=!1)}catch(t){console.warn("Error in toolbarMouseUp",t)}},this.toolbarMouseLeave=t=>{try{t&&(this._isDragging=!1)}catch(t){console.warn("Error in toolbarMouseLeave",t)}},localStorage.setItem("sfToolbarVersion",ft),this.guestUserNameUpdated=!!cc(Bt);const t=new URL(document.location);t.searchParams.has(kt)&&t.searchParams.delete(kt),this.signInUrl=`${se}/signin?redirect_url=${encodeURIComponent(null==t?void 0:t.toString())}&source=sf`,this.signOutUrl=`${se}/signout?redirect_url=${encodeURIComponent(null==t?void 0:t.toString())}&source=sf`,window.Superflow={enableCustomLogin:async()=>{this.customLoginEnabledLocally=!0,dc(St),await this.checkCustomLoginEnabled()},identify:async t=>{this.providedUser=t,this.customLoginEnabled&&this.loginWithCustomUser()},signInUrl:this.signInUrl,signOutUrl:this.signOutUrl,openGuestModeSignInModal:t=>{this.skipGuestNameModal=t,this.openGuestModeSignInModal()},onPasswordProtectedModalOpenButtonClick:()=>{this.onPasswordProtectedModalOpenButtonClick()}};try{this.detectVersion(),this.setWindowEventListner(),this.urlChangeListener(),this.checkUrl()}catch(t){console.warn("Error in constructor: ",t),Sc("Error in constructor: ",t)}}get loadPlugin(){return this._loadPlugin}set loadPlugin(t){var e,i,n,o,s,r,a,l,c,d;this._loadPlugin=t,this.loadPlugin?(this.classList.add("visible"),null===(i=null===(e=null===document||void 0===document?void 0:document.body)||void 0===e?void 0:e.style)||void 0===i||i.setProperty("transform","none","important"),null===(s=null===(o=null===(n=null===document||void 0===document?void 0:document.body)||void 0===n?void 0:n.parentElement)||void 0===o?void 0:o.style)||void 0===s||s.setProperty("transform","none","important"),null===(a=null===(r=null===document||void 0===document?void 0:document.body)||void 0===r?void 0:r.style)||void 0===a||a.setProperty("perspective","none","important"),null===(d=null===(c=null===(l=null===document||void 0===document?void 0:document.body)||void 0===l?void 0:l.parentElement)||void 0===c?void 0:c.style)||void 0===d||d.setProperty("perspective","none","important")):this.classList.remove("visible")}get expanded(){return this._expanded}set expanded(t){this._expanded=t,this.expanded?this.classList.add("expanded"):this.classList.remove("expanded")}get isPlanExpired(){return this._isPlanExpired}set isPlanExpired(t){this._isPlanExpired=t,this.checkToEnableUpgradeButton()}get apiKey(){return this._apiKey}set apiKey(t){this._apiKey=t,this.onApiKeyChange(),xc({apiKey:this.apiKey}),this.checkUrl()}get projectId(){return this._projectId}set projectId(t){this._projectId=t,this.checkUrl()}get projectVersionKey(){return this._projectVersionKey}set projectVersionKey(t){try{this._projectVersionKey=t,this.projectVersionKey&&lc(_t,this.projectVersionKey,!1,"sessionStorage"),this.exitReviewModeCalled||this.detectVersion()}catch(t){console.warn("Error in set projectVersionKey: ",t),Sc("Error in set projectVersionKey: ",t)}}get autoLocation(){return this._autoLocation}set autoLocation(t){this._autoLocation="true"===t||!0===t}get menuOpenedId(){return this._menuOpenedId}set menuOpenedId(t){this._menuOpenedId=t,this.menuOpenedId?this.addWindowClickEventListener():this.removeWindowClickEventListener()}get isUserGlobalContact(){return this._isUserGlobalContact}set isUserGlobalContact(t){this._isUserGlobalContact=t,this.checkToEnableUpgradeButton()}get privateCommentModeEnabled(){return this._privateCommentModeEnabled}set privateCommentModeEnabled(t){this._privateCommentModeEnabled=t,this.darkMode=!!this.privateCommentModeEnabled}get customerMetadata(){return this._customerMetadata}set customerMetadata(t){this._customerMetadata=t,this.setLogos()}get documentMetadata(){return this._documentMetadata}set documentMetadata(t){this._documentMetadata=t}get darkMode(){return this._darkMode}set darkMode(t){this._darkMode=t,this.setLogos()}get queryParamsComments(){return this._queryParamsComments}set queryParamsComments(t){this._queryParamsComments=t,this.setQueryParamsCommentsInSdk()}get usePageTitleAsLocationName(){return this._usePageTitleAsLocationName}set usePageTitleAsLocationName(t){this._usePageTitleAsLocationName=t}get totalViews(){return this._totalViews}set totalViews(t){this._totalViews=t,this.totalViewsCount=Object.keys(this.totalViews||{}).length}connectedCallback(){super.connectedCallback(),this.getAttribute("apiKey")&&!this.getAttribute("projectId")&&(this.projectId=oc(rc(window.location.origin))+""),this.expanded=!0,this.setAttribute("data-velt-comment-disabled","true"),this.style.zIndex="2147483647",setTimeout((()=>{if(!this.superflowToolbarMoved){this.superflowToolbarMoved=!0,document.body.appendChild(this);const t=document.querySelector(".cdk-overlay-container");t&&document.body.appendChild(t)}}),5e3);const t=document.createElement("style");t.innerHTML='body[data-velt-ongoing-recording="screen"] superflow-toolbar { display: none !important; }',document.head.appendChild(t),this.addStyles(),setTimeout((()=>{const t=document.querySelectorAll('script[src*="snippyly.min.js"]');(null==t?void 0:t.length)>1&&(console.warn("Multiple superflow scripts installed."),Mc(vt.Events.DUPLICATE_SCRIPT_INSTALLED))}),1e3)}updated(t){try{super.updated(t),t.has("showContentWarningSidebar")&&(this.showContentWarningSidebar?this.contentWarningSidebarListenerTimeoutId=window.setTimeout((()=>{this.showContentWarningSidebar&&this.addContentWarningSidebarClickListener(),this.contentWarningSidebarListenerTimeoutId=void 0}),0):this.removeContentWarningSidebarClickListener())}catch(t){console.warn("Error in updated: ",t)}}disconnectedCallback(){try{super.disconnectedCallback(),this.removeContentWarningSidebarClickListener()}catch(t){console.warn("Error in disconnectedCallback: ",t)}}async detectToolbarEnabled(){try{if(this.projectId&&this.apiKey){this.toolbarEnabledApiCalled=!0;const t=document.location.toString();t.includes(Zt)||t.includes(Kt)?this.toolbarEnabled=!0:this.toolbarEnabled=await Lc(this.apiKey,this.projectId,t),this.toolbarEnabled||Mc(vt.Events.TOOLBAR_DISABLED)}}catch(t){console.warn("Error in detectToolbarEnabled: ",t),Sc("Error in detectToolbarEnabled: ",t)}}render(){var t,e,i,n,o,s,r,a,l,c,d,h,u,p,v,f,g,m,w,b;return this.loadPlugin&&this.toolbarEnabled?!this.snippylyUser||this.loading||null===this.isPlanExpired?$`
                <div class="snippyly-plugin-container" part="superflow-toolbar-container">
                    <div class="toolbar" id="smallToolbar"
										style="cursor: default; top: ${this._dragY}px; left: ${this._dragX}px;">
                        <!-- <div class="toolbar-section">
                            <svg class="toolbar-icon-arrow" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
                                <path fill-rule="evenodd" clip-rule="evenodd"
                                    d="M14.1607 12.4941C13.8353 12.8195 13.8353 13.3472 14.1607 13.6726L16.4882 16L14.1607 18.3274C13.8353 18.6528 13.8353 19.1805 14.1607 19.5059C14.4862 19.8314 15.0138 19.8314 15.3393 19.5059L18.2559 16.5893C18.5814 16.2638 18.5814 15.7362 18.2559 15.4107L15.3393 12.4941C15.0138 12.1686 14.4862 12.1686 14.1607 12.4941Z" />
                            </svg>
                        </div> -->
                        <div class="toolbar-section">
							<div class="toolbar-logo">
                            	${this.getLogoMark()}
							</div>
                        </div>
                        <div class="toolbar-section">
                            <div class="toolbar-divider"></div>
                        </div>
                        ${this.snippylyUserRole&&!this.allFeatureDisabled?$`
                            <div class="toolbar-section comment-viewmode-section ${ht({"d-none":!this.expanded})}">
                                <div class="toolbar-actions1 ${ht({"d-none":!this.commentElement})}">
                                    <div class="tooltip">
                                        <div class="tooltiptext">${Zc("All Comments")}</div>
                                        <velt-sidebar-button shadow-dom="false"></velt-sidebar-button>
                                    </div>
                                </div>
                                <div class="toolbar-section ${ht({"d-none":!this.commentElement})}">
                                    <div class="toolbar-divider"></div>
                                </div>
                            </div>
                            `:null}
                ${!this.customLoginEnabledLocally||this.loading?$`
                        <div class="toolbar-section ${this.invalidApiKey?"d-none":""}" @click=${()=>this.loginWithGoogle()}>
                            <a class="toolbar-button sign-in-button ${ht({loading:this.loading})}">
                                ${this.loading?$`
                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16px" height="16px" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid">
                                            <g transform="rotate(0 50 50)">
                                            <rect x="47" y="6" rx="3" ry="12" width="6" height="24" fill="white">
                                                <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.9166666666666666s" repeatCount="indefinite"></animate>
                                            </rect>
                                            </g><g transform="rotate(30 50 50)">
                                            <rect x="47" y="6" rx="3" ry="12" width="6" height="24" fill="white">
                                                <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.8333333333333334s" repeatCount="indefinite"></animate>
                                            </rect>
                                            </g><g transform="rotate(60 50 50)">
                                            <rect x="47" y="6" rx="3" ry="12" width="6" height="24" fill="white">
                                                <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.75s" repeatCount="indefinite"></animate>
                                            </rect>
                                            </g><g transform="rotate(90 50 50)">
                                            <rect x="47" y="6" rx="3" ry="12" width="6" height="24" fill="white">
                                                <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.6666666666666666s" repeatCount="indefinite"></animate>
                                            </rect>
                                            </g><g transform="rotate(120 50 50)">
                                            <rect x="47" y="6" rx="3" ry="12" width="6" height="24" fill="white">
                                                <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.5833333333333334s" repeatCount="indefinite"></animate>
                                            </rect>
                                            </g><g transform="rotate(150 50 50)">
                                            <rect x="47" y="6" rx="3" ry="12" width="6" height="24" fill="white">
                                                <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.5s" repeatCount="indefinite"></animate>
                                            </rect>
                                            </g><g transform="rotate(180 50 50)">
                                            <rect x="47" y="6" rx="3" ry="12" width="6" height="24" fill="white">
                                                <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.4166666666666667s" repeatCount="indefinite"></animate>
                                            </rect>
                                            </g><g transform="rotate(210 50 50)">
                                            <rect x="47" y="6" rx="3" ry="12" width="6" height="24" fill="white">
                                                <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.3333333333333333s" repeatCount="indefinite"></animate>
                                            </rect>
                                            </g><g transform="rotate(240 50 50)">
                                            <rect x="47" y="6" rx="3" ry="12" width="6" height="24" fill="white">
                                                <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.25s" repeatCount="indefinite"></animate>
                                            </rect>
                                            </g><g transform="rotate(270 50 50)">
                                            <rect x="47" y="6" rx="3" ry="12" width="6" height="24" fill="white">
                                                <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.16666666666666666s" repeatCount="indefinite"></animate>
                                            </rect>
                                            </g><g transform="rotate(300 50 50)">
                                            <rect x="47" y="6" rx="3" ry="12" width="6" height="24" fill="white">
                                                <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.08333333333333333s" repeatCount="indefinite"></animate>
                                            </rect>
                                            </g><g transform="rotate(330 50 50)">
                                            <rect x="47" y="6" rx="3" ry="12" width="6" height="24" fill="white">
                                                <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="0s" repeatCount="indefinite"></animate>
                                            </rect>
                                            </g>
                                        </svg>
                                        ${this.guestMode,""}
                                    `:$`${this.signInError?$`
                        <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                            <path fill-rule="evenodd" clip-rule="evenodd" d="M8.64754 5.99921C8.27961 6.01309 7.97008 5.72609 7.95619 5.35816C7.92488 4.5287 7.8809 3.92331 7.83766 3.48926C7.79508 3.06179 7.53702 2.8046 7.1773 2.76063C6.75313 2.70878 6.15477 2.66634 5.33367 2.66634C4.51254 2.66634 3.91418 2.70878 3.49002 2.76063C3.13048 2.80458 2.87229 3.06189 2.8297 3.48946C2.74944 4.29515 2.667 5.68713 2.667 7.99968C2.667 10.3122 2.74944 11.7042 2.8297 12.5099C2.87229 12.9375 3.13048 13.1948 3.49002 13.2387C3.91418 13.2906 4.51254 13.333 5.33367 13.333C6.15477 13.333 6.75313 13.2906 7.1773 13.2387C7.53702 13.1947 7.79508 12.9376 7.83766 12.5101C7.8809 12.076 7.92488 11.4706 7.95619 10.6412C7.97008 10.2733 8.27961 9.98626 8.64754 10.0001C9.01546 10.014 9.30247 10.3236 9.28858 10.6915C9.25644 11.5428 9.21087 12.1761 9.16443 12.6423C9.06679 13.6224 8.38345 14.4345 7.33908 14.5622C6.85294 14.6216 6.19979 14.6663 5.33367 14.6663C4.46752 14.6663 3.81436 14.6216 3.32822 14.5622C2.28377 14.4345 1.60055 13.622 1.50293 12.6421C1.41698 11.7792 1.33367 10.3407 1.33367 7.99968C1.33367 5.65866 1.41698 4.22013 1.50293 3.35729C1.60055 2.37738 2.28377 1.56483 3.32822 1.43715C3.81436 1.37772 4.46752 1.33301 5.33367 1.33301C6.19979 1.33301 6.85294 1.37772 7.33908 1.43714C8.38345 1.56481 9.06679 2.37697 9.16443 3.35709C9.21087 3.8233 9.25644 4.45651 9.28858 5.30786C9.30247 5.67579 9.01546 5.98532 8.64754 5.99921Z" fill="white"/>
                            <path fill-rule="evenodd" clip-rule="evenodd" d="M11.1966 6.13807C10.9362 5.87772 10.9362 5.45561 11.1966 5.19526C11.4569 4.93491 11.879 4.93491 12.1394 5.19526L14.4727 7.5286C14.7331 7.78894 14.7331 8.21105 14.4727 8.4714L12.1394 10.8047C11.879 11.0651 11.4569 11.0651 11.1966 10.8047C10.9362 10.5444 10.9362 10.1223 11.1966 9.86193L12.3918 8.66667H6.0013C5.63311 8.66667 5.33463 8.36819 5.33463 8C5.33463 7.63181 5.63311 7.33333 6.0013 7.33333L12.3918 7.33333L11.1966 6.13807Z" fill="white"/>
                        </svg>
                        <span>${Zc("Sign in again!")}</span>
                    `:$`
                            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                                <path fill-rule="evenodd" clip-rule="evenodd" d="M8.64754 5.99921C8.27961 6.01309 7.97008 5.72609 7.95619 5.35816C7.92488 4.5287 7.8809 3.92331 7.83766 3.48926C7.79508 3.06179 7.53702 2.8046 7.1773 2.76063C6.75313 2.70878 6.15477 2.66634 5.33367 2.66634C4.51254 2.66634 3.91418 2.70878 3.49002 2.76063C3.13048 2.80458 2.87229 3.06189 2.8297 3.48946C2.74944 4.29515 2.667 5.68713 2.667 7.99968C2.667 10.3122 2.74944 11.7042 2.8297 12.5099C2.87229 12.9375 3.13048 13.1948 3.49002 13.2387C3.91418 13.2906 4.51254 13.333 5.33367 13.333C6.15477 13.333 6.75313 13.2906 7.1773 13.2387C7.53702 13.1947 7.79508 12.9376 7.83766 12.5101C7.8809 12.076 7.92488 11.4706 7.95619 10.6412C7.97008 10.2733 8.27961 9.98626 8.64754 10.0001C9.01546 10.014 9.30247 10.3236 9.28858 10.6915C9.25644 11.5428 9.21087 12.1761 9.16443 12.6423C9.06679 13.6224 8.38345 14.4345 7.33908 14.5622C6.85294 14.6216 6.19979 14.6663 5.33367 14.6663C4.46752 14.6663 3.81436 14.6216 3.32822 14.5622C2.28377 14.4345 1.60055 13.622 1.50293 12.6421C1.41698 11.7792 1.33367 10.3407 1.33367 7.99968C1.33367 5.65866 1.41698 4.22013 1.50293 3.35729C1.60055 2.37738 2.28377 1.56483 3.32822 1.43715C3.81436 1.37772 4.46752 1.33301 5.33367 1.33301C6.19979 1.33301 6.85294 1.37772 7.33908 1.43714C8.38345 1.56481 9.06679 2.37697 9.16443 3.35709C9.21087 3.8233 9.25644 4.45651 9.28858 5.30786C9.30247 5.67579 9.01546 5.98532 8.64754 5.99921Z" fill="white"/>
                                <path fill-rule="evenodd" clip-rule="evenodd" d="M11.1966 6.13807C10.9362 5.87772 10.9362 5.45561 11.1966 5.19526C11.4569 4.93491 11.879 4.93491 12.1394 5.19526L14.4727 7.5286C14.7331 7.78894 14.7331 8.21105 14.4727 8.4714L12.1394 10.8047C11.879 11.0651 11.4569 11.0651 11.1966 10.8047C10.9362 10.5444 10.9362 10.1223 11.1966 9.86193L12.3918 8.66667H6.0013C5.63311 8.66667 5.33463 8.36819 5.33463 8C5.33463 7.63181 5.63311 7.33333 6.0013 7.33333L12.3918 7.33333L11.1966 6.13807Z" fill="white"/>
                            </svg>
                            <span>${Zc("Sign in to comment")}</span>
                    `}`}
                        </a>
                        </div>
                        ${this.invalidApiKey?$`
                            <div class="toolbar-section">
                                <div class="tooltip">
                                    <div class="tooltiptext">
                                        ${this.isSigningInUserAdmin?$`Current URL not added to Superflow <br/> Project. Please add this URL.`:$`Current URL not added to Superflow <br/> Project. Please contact admin.`}
                                    </div>
                                    <div class="s-alert-btn danger">
                                        <div class='error-container'>
                                            <svg class="error-icon" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                                                <path d="M12 3C10.22 3 8.47991 3.52784 6.99987 4.51677C5.51983 5.50571 4.36628 6.91131 3.68509 8.55585C3.0039 10.2004 2.82567 12.01 3.17294 13.7558C3.5202 15.5016 4.37737 17.1053 5.63604 18.364C6.89471 19.6226 8.49836 20.4798 10.2442 20.8271C11.99 21.1743 13.7996 20.9961 15.4442 20.3149C17.0887 19.6337 18.4943 18.4802 19.4832 17.0001C20.4722 15.5201 21 13.78 21 12C20.9975 9.61382 20.0485 7.3261 18.3612 5.63882C16.6739 3.95154 14.3862 3.00252 12 3ZM12 19.6154C10.4938 19.6154 9.02146 19.1687 7.76912 18.332C6.51678 17.4952 5.5407 16.3058 4.96431 14.9143C4.38792 13.5227 4.23711 11.9916 4.53095 10.5143C4.82479 9.03707 5.55008 7.68014 6.61511 6.61511C7.68014 5.55008 9.03708 4.82478 10.5143 4.53094C11.9916 4.2371 13.5228 4.38791 14.9143 4.9643C16.3058 5.54069 17.4952 6.51677 18.332 7.76912C19.1688 9.02146 19.6154 10.4938 19.6154 12C19.6131 14.019 18.81 15.9547 17.3824 17.3824C15.9547 18.81 14.019 19.6131 12 19.6154ZM11.3077 12.6923V7.84615C11.3077 7.66254 11.3806 7.48645 11.5105 7.35662C11.6403 7.22678 11.8164 7.15385 12 7.15385C12.1836 7.15385 12.3597 7.22678 12.4895 7.35662C12.6194 7.48645 12.6923 7.66254 12.6923 7.84615V12.6923C12.6923 12.8759 12.6194 13.052 12.4895 13.1818C12.3597 13.3117 12.1836 13.3846 12 13.3846C11.8164 13.3846 11.6403 13.3117 11.5105 13.1818C11.3806 13.052 11.3077 12.8759 11.3077 12.6923ZM13.0385 15.8077C13.0385 16.0131 12.9776 16.2139 12.8635 16.3846C12.7493 16.5554 12.5872 16.6885 12.3974 16.7671C12.2076 16.8457 11.9988 16.8663 11.7974 16.8262C11.596 16.7861 11.4109 16.6872 11.2657 16.542C11.1205 16.3968 11.0216 16.2117 10.9815 16.0103C10.9414 15.8088 10.962 15.6 11.0406 15.4103C11.1192 15.2205 11.2523 15.0583 11.4231 14.9442C11.5938 14.8301 11.7946 14.7692 12 14.7692C12.2754 14.7692 12.5396 14.8786 12.7343 15.0734C12.9291 15.2681 13.0385 15.5323 13.0385 15.8077Z" fill="currentColor"/>
                                            </svg>
                                            <div class="error-message">Error</div>                    
                                        </div>
                                        ${this.isSigningInUserAdmin?$`
                                                <div class="s-cta-btn" @click=${()=>this.goToAdminPortalDashboard()}>
                                                    Add URL
                                                </div>
                                                `:null}
                                    </div>
                                </div>
                            </div>
                            `:null}
                        <div class="toolbar-section">
                            <div class="toolbar-divider"></div>
                        </div>`:null}
                        <div class="toolbar-section s-more-menu dropdown">
                            <div class="dropdown-content">
                                <div class="menu-point header disable-hover">
									<div class="toolbar-logo">
										${this.getWordMark()}
									</div>
                                </div>
                                <div class="menu-point-wrap">
                                    ${Zc("Sign in to comment on this page.")}
                                    <a href="https://www.usesuperflow.com/features" target="_blank">
                                        ${Zc("Learn more")}
                                        <svg width="14" height="14" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
                                            <path d="M4.30881 1.72602C3.67106 1.86293 3.11953 2.1682 2.64215 2.64149C2.29011 2.99745 2.05915 3.34183 1.89878 3.76037C1.66018 4.37857 1.668 4.08911 1.668 10.0007C1.668 15.9122 1.66018 15.6228 1.89878 16.241C2.29385 17.2699 3.29164 18.0876 4.38704 18.291C4.70779 18.3496 15.2947 18.3496 15.6154 18.291C16.2297 18.1775 16.9494 17.7942 17.3838 17.3481C17.8221 16.8942 18.1506 16.284 18.2797 15.6736C18.3227 15.4702 18.3345 14.8051 18.3345 12.2973V9.17907H17.5129H16.6913V12.1017C16.6913 13.7957 16.6756 15.126 16.6522 15.259C16.5348 15.975 15.9753 16.5343 15.2593 16.6517C14.9503 16.7025 5.05201 16.7025 4.74282 16.6517C4.03857 16.5382 3.48296 15.9944 3.34997 15.2862C3.29912 15.0085 3.29521 5.06326 3.34997 4.74251C3.46731 4.02653 4.02684 3.467 4.74282 3.34966C4.87582 3.32619 6.20609 3.31054 7.90013 3.31054H10.8226V2.48895V1.66735L7.68482 1.67126C5.25184 1.67126 4.48891 1.68691 4.30881 1.72602Z" fill="#4C5366"/>
                                            <path d="M12.5058 2.48917V3.31077H14.0004H15.4988L13.3548 5.45481L11.2148 7.59477L11.7939 8.17385C12.1108 8.49069 12.3887 8.74902 12.4082 8.74902C12.4317 8.74902 13.4019 7.79443 14.5679 6.62845L16.6924 4.50413V6.0026V7.49715H17.514H18.3352V4.58253V1.66791H15.4206H12.5058V2.48917Z" fill="#4C5366"/>
                                        </svg>
                                    </a>
                                </div>
                                <hr />
                                <div class="menu-point" @click=${()=>this.toggleQRCodeVisibility()}>
                                    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
																		<path d="M5.25 12.75V12.7575M5.25 5.25V5.2575M12.75 5.25V5.2575M12.75 10.5H10.5V12.75M15 10.5V10.5075M10.5 15H12.75M12.75 12.75H15V15M3 3.75C3 3.55109 3.07902 3.36032 3.21967 3.21967C3.36032 3.07902 3.55109 3 3.75 3H6.75C6.94891 3 7.13968 3.07902 7.28033 3.21967C7.42098 3.36032 7.5 3.55109 7.5 3.75V6.75C7.5 6.94891 7.42098 7.13968 7.28033 7.28033C7.13968 7.42098 6.94891 7.5 6.75 7.5H3.75C3.55109 7.5 3.36032 7.42098 3.21967 7.28033C3.07902 7.13968 3 6.94891 3 6.75V3.75ZM10.5 3.75C10.5 3.55109 10.579 3.36032 10.7197 3.21967C10.8603 3.07902 11.0511 3 11.25 3H14.25C14.4489 3 14.6397 3.07902 14.7803 3.21967C14.921 3.36032 15 3.55109 15 3.75V6.75C15 6.94891 14.921 7.13968 14.7803 7.28033C14.6397 7.42098 14.4489 7.5 14.25 7.5H11.25C11.0511 7.5 10.8603 7.42098 10.7197 7.28033C10.579 7.13968 10.5 6.94891 10.5 6.75V3.75ZM3 11.25C3 11.0511 3.07902 10.8603 3.21967 10.7197C3.36032 10.579 3.55109 10.5 3.75 10.5H6.75C6.94891 10.5 7.13968 10.579 7.28033 10.7197C7.42098 10.8603 7.5 11.0511 7.5 11.25V14.25C7.5 14.4489 7.42098 14.6397 7.28033 14.7803C7.13968 14.921 6.94891 15 6.75 15H3.75C3.55109 15 3.36032 14.921 3.21967 14.7803C3.07902 14.6397 3 14.4489 3 14.25V11.25Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
																		</svg>

                                    <p>${Zc("Open in Mobile")}</p>
                                </div>
                                <div class="menu-point" @click=${()=>this.removeSnippyly()}>
                                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                                        <path fill-rule="evenodd" clip-rule="evenodd" d="M12 4C10.0478 4 8.24816 4.161 6.80371 4.35177C5.50372 4.52346 4.52346 5.50372 4.35177 6.80371C4.16101 8.24816 4 10.0478 4 12C4 13.9522 4.161 15.7518 4.35177 17.1963C4.52346 18.4963 5.50372 19.4765 6.80371 19.6482C8.24816 19.839 10.0478 20 12 20C13.9522 20 15.7518 19.839 17.1963 19.6482C18.4963 19.4765 19.4765 18.4963 19.6482 17.1963C19.839 15.7518 20 13.9522 20 12C20 10.0478 19.839 8.24816 19.6482 6.80371C19.4765 5.50372 18.4963 4.52346 17.1963 4.35177C15.7518 4.16101 13.9522 4 12 4ZM6.54184 2.36899C4.34504 2.65912 2.65912 4.34504 2.36899 6.54184C2.16953 8.05208 2 9.94127 2 12C2 14.0587 2.16953 15.9479 2.36899 17.4582C2.65912 19.655 4.34504 21.3409 6.54184 21.631C8.05208 21.8305 9.94127 22 12 22C14.0587 22 15.9479 21.8305 17.4582 21.631C19.655 21.3409 21.3409 19.655 21.631 17.4582C21.8305 15.9479 22 14.0587 22 12C22 9.94127 21.8305 8.05208 21.631 6.54184C21.3409 4.34504 19.655 2.65912 17.4582 2.36899C15.9479 2.16953 14.0587 2 12 2C9.94127 2 8.05208 2.16953 6.54184 2.36899Z" fill="#777E91"/>
                                        <path fill-rule="evenodd" clip-rule="evenodd" d="M8.29289 8.29289C8.68342 7.90237 9.31658 7.90237 9.70711 8.29289L12 10.5858L14.2929 8.29289C14.6834 7.90237 15.3166 7.90237 15.7071 8.29289C16.0976 8.68342 16.0976 9.31658 15.7071 9.70711L13.4142 12L15.7071 14.2929C16.0976 14.6834 16.0976 15.3166 15.7071 15.7071C15.3166 16.0976 14.6834 16.0976 14.2929 15.7071L12 13.4142L9.70711 15.7071C9.31658 16.0976 8.68342 16.0976 8.29289 15.7071C7.90237 15.3166 7.90237 14.6834 8.29289 14.2929L10.5858 12L8.29289 9.70711C7.90237 9.31658 7.90237 8.68342 8.29289 8.29289Z" fill="#777E91"/>
                                    </svg>

                                    <p>${Zc("Exit Review Mode")}</p>
                                </div>
                                ${!this.customLoginEnabledLocally&&this.allowGuestModeSignIn?$`
                                    <div class="menu-point" @click=${()=>this.loginWithGoogle()}>
                                        <svg width="20" height="20" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                                            <path fill-rule="evenodd" clip-rule="evenodd" d="M8.64754 5.99921C8.27961 6.01309 7.97008 5.72609 7.95619 5.35816C7.92488 4.5287 7.8809 3.92331 7.83766 3.48926C7.79508 3.06179 7.53702 2.8046 7.1773 2.76063C6.75313 2.70878 6.15477 2.66634 5.33367 2.66634C4.51254 2.66634 3.91418 2.70878 3.49002 2.76063C3.13048 2.80458 2.87229 3.06189 2.8297 3.48946C2.74944 4.29515 2.667 5.68713 2.667 7.99968C2.667 10.3122 2.74944 11.7042 2.8297 12.5099C2.87229 12.9375 3.13048 13.1948 3.49002 13.2387C3.91418 13.2906 4.51254 13.333 5.33367 13.333C6.15477 13.333 6.75313 13.2906 7.1773 13.2387C7.53702 13.1947 7.79508 12.9376 7.83766 12.5101C7.8809 12.076 7.92488 11.4706 7.95619 10.6412C7.97008 10.2733 8.27961 9.98626 8.64754 10.0001C9.01546 10.014 9.30247 10.3236 9.28858 10.6915C9.25644 11.5428 9.21087 12.1761 9.16443 12.6423C9.06679 13.6224 8.38345 14.4345 7.33908 14.5622C6.85294 14.6216 6.19979 14.6663 5.33367 14.6663C4.46752 14.6663 3.81436 14.6216 3.32822 14.5622C2.28377 14.4345 1.60055 13.622 1.50293 12.6421C1.41698 11.7792 1.33367 10.3407 1.33367 7.99968C1.33367 5.65866 1.41698 4.22013 1.50293 3.35729C1.60055 2.37738 2.28377 1.56483 3.32822 1.43715C3.81436 1.37772 4.46752 1.33301 5.33367 1.33301C6.19979 1.33301 6.85294 1.37772 7.33908 1.43714C8.38345 1.56481 9.06679 2.37697 9.16443 3.35709C9.21087 3.8233 9.25644 4.45651 9.28858 5.30786C9.30247 5.67579 9.01546 5.98532 8.64754 5.99921Z" fill="#777E91"/>
                                            <path fill-rule="evenodd" clip-rule="evenodd" d="M11.1966 6.13807C10.9362 5.87772 10.9362 5.45561 11.1966 5.19526C11.4569 4.93491 11.879 4.93491 12.1394 5.19526L14.4727 7.5286C14.7331 7.78894 14.7331 8.21105 14.4727 8.4714L12.1394 10.8047C11.879 11.0651 11.4569 11.0651 11.1966 10.8047C10.9362 10.5444 10.9362 10.1223 11.1966 9.86193L12.3918 8.66667H6.0013C5.63311 8.66667 5.33463 8.36819 5.33463 8C5.33463 7.63181 5.63311 7.33333 6.0013 7.33333L12.3918 7.33333L11.1966 6.13807Z" fill="#777E91"/>
                                        </svg>
                                        <p>${Zc("Sign in")}</p>
                                    </div>
                                    `:null}
                            </div>
                            <svg
                                class="toolbar-icon"
                                viewBox="0 0 32 32"
                                fill="none"
                                xmlns="http://www.w3.org/2000/svg"
                            >
                                <path
                                d="M14 23C14 24.1 14.9 25 16 25C17.1 25 18 24.1 18 23C18 21.9 17.1 21 16 21C14.9 21 14 21.9 14 23ZM14 9C14 10.1 14.9 11 16 11C17.1 11 18 10.1 18 9C18 7.9 17.1 7 16 7C14.9 7 14 7.9 14 9ZM14 16C14 17.1 14.9 18 16 18C17.1 18 18 17.1 18 16C18 14.9 17.1 14 16 14C14.9 14 14 14.9 14 16Z"
                                />
                            </svg>
                        </div>
                    </div>
                    ${this.showQrCode&&this.qrCode?$`
                            <div class="qrcode-container">
                                <img class="qrcode" src=${this.qrCode} />
                                <button class="qrcode-container-close-btn" @click=${()=>this.toggleQRCodeVisibility()}>x</button>
                            </div>
                        `:null}
                </div>
                ${this.showLiveDemoModal?$`
                <div class="snippyly-plugin-modal-container" @click=${()=>this.onLiveDemoModalNextClick()}>
                    <div class="s-modal" @click=${t=>null==t?void 0:t.stopPropagation()}>
                        <img src="https://app.usesuperflow.com/assets/party-emoji.svg" />
                        <div class="s-modal-text">
                            <h1>${Zc("Try Superflow using the toolbar below.")}</h1>
                            <p>
                                ${Zc("Get ready to drop your first comment!")} <br/>
                                ${Zc("But before you do that, you definitely deserve a high five!")}
                            </p>
                        </div>
                        <div class="s-button s-primary" @click=${()=>this.onLiveDemoModalNextClick()}>${Zc("Done")}</div>
                    </div>
                </div>
            `:$``}
                ${this.showFigmaDemoModal?$`
                    <div class="snippyly-plugin-modal-container" @click=${()=>this.onFigmaDemoModalNextClick()}>
                        <div class="s-modal" @click=${t=>null==t?void 0:t.stopPropagation()}>
                            <img src="https://app.usesuperflow.com/assets/party-emoji.svg" />
                            <div class="s-modal-text">
                                <h1>
                                    ${Zc("Sign in on the toolbar below and add")}<br/>
                                    ${Zc("comments on the design flaws.")}
                                </h1>
                            </div>
                            <div class="s-button s-primary" @click=${()=>this.onFigmaDemoModalNextClick()}>${Zc("Done")}</div>
                        </div>
                    </div>
                `:$``}
            `:$`
        <div class="snippyly-plugin-container" part="superflow-toolbar-container">
            ${this.disableCommentModeButton()}
            <div class="toolbar ${ht({expanded:this.expanded,"add-comment-mode":this.addCommentMode,"private-comment-mode":!!this.privateCommentModeEnabled})}"   @resize=${this.checkToolbarPosition()}
								@mousemove=${t=>this.toolbarMouseMove(t)} 
								@mousedown=${t=>this.toolbarMouseDown(t)} 
								@mouseup=${t=>this.toolbarMouseUp(t)}  
								@mouseleave=${t=>this.toolbarMouseLeave(t)}
								style="cursor: grab;">

                <!-- icon + logo -->
                <div class="toolbar-section toolbar-toggle-icon d-sm-none" @click=${()=>this.toggleSnippylyPluginToolbar()}>
                    <svg class="toolbar-icon toolbar-icon-arrow" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
                        <path fill-rule="evenodd" clip-rule="evenodd"
                            d="M14.1607 12.4941C13.8353 12.8195 13.8353 13.3472 14.1607 13.6726L16.4882 16L14.1607 18.3274C13.8353 18.6528 13.8353 19.1805 14.1607 19.5059C14.4862 19.8314 15.0138 19.8314 15.3393 19.5059L18.2559 16.5893C18.5814 16.2638 18.5814 15.7362 18.2559 15.4107L15.3393 12.4941C15.0138 12.1686 14.4862 12.1686 14.1607 12.4941Z" />
                    </svg>
                </div>

                ${!(null===(t=this.snippylyUser)||void 0===t?void 0:t.isGuest)&&!(null===(e=this.snippylyUser)||void 0===e?void 0:e.name)||(null===(i=this.snippylyUser)||void 0===i?void 0:i.isGuest)&&!this.guestUserNameUpdated?$`
                        <div class="toolbar-section snippyly-logo ${ht({"d-xs-none":this.expanded,"d-none":this.addCommentMode})}" @click=${()=>{Mc(vt.Events.TOOLBAR_NOTIFICATION_CLICKED),this.openGuestModeNameModel()}}>

                            <div class="notification-container">
								<div class="notification">
									<div class="toolbar-logo">
										${this.getLogoMark()}
									</div>
								</div>
                                <div class="notification-badge"></div>
                            </div>

                        </div>
                        `:$`
                        <div class="toolbar-section snippyly-logo ${ht({"d-xs-none":this.expanded})}" @click=${()=>this.toggleSnippylyPluginToolbar()}>
							<div class="toolbar-logo">
								${this.getLogoMark()}
							</div>
                        </div>
                        `}

                <!-- Below features should only be allowed if user role is available -->

                ${this.snippylyUserRole&&!this.isPlanExpired&&!this.allFeatureDisabled&&(!this.passwordProtected||this.passwordProtected&&this.isPasswordValid)?$`
                <!-- divider -->
                <div class="toolbar-section d-xs-none ${ht({"d-none":!this.expanded||this.addCommentMode})}">
                    <div class="toolbar-divider"></div>
                </div>

                <!-- avatars -->
                <div class="toolbar-section presence-section d-sm-none ${ht({"d-none":!this.expanded})}">
                    <div class="toolbar-avatars">
                        <velt-presence max-users="4" self="false"></velt-presence>
                        <!-- <div class="avatar blue overlapped">
                            <img class="avatar-img"
                                src="https://drive.google.com/uc?export=view&id=1QHXtKZg8I7-wIapZJDs-x8YenlHMvzP4">
                        </div>
                        <div class="avatar gray overlapped">
                            <img class="avatar-img"
                                src="https://drive.google.com/uc?export=view&id=19Q76zC8mmLXjnMoRqio6EVtfO4AoB-hm">
                        </div>
                        <div class="avatar yellow overlapped">
                            <div class="avatar-text yellow">K</div>
                        </div>
                        <div class="avatar overlapped">
                            <div class="avatar-text more">+2</div>
                        </div> -->
                    </div>
                </div>

                <!-- divider -->
                <!-- <div class="toolbar-section">
                    <div class="toolbar-divider"></div>
                </div> -->

                <!-- actions -->
                <div class="toolbar-section huddle-recorder-section ${ht({"d-none":!this.expanded})}">
                    <div class="toolbar-actions">
                        ${this.allFeatureDisabled||"Admin"!==this.snippylyUserRole?null:$`<div class="action tooltip data-userType private-comment-mode-switch-container ${ht({enabled:!!this.privateCommentModeEnabled,"d-none":this.addCommentMode})}" @click=${()=>this.togglePrivateCommentMode()}>
                                <div class="tooltiptext">
                                    <h3 class="title">Private Mode</h3>
                                    <p class="body">By enabling this Only admins <br/> can view your new comment</p>
                                </div>
                                <div class="private-comment-mode-switch">
                                    <div class="switch-icon">
                                        <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
                                            <path fill-rule="evenodd" clip-rule="evenodd" d="M9.00049 8.25002C7.67105 8.25002 6.48682 8.29844 5.51927 8.35994C4.60152 8.41827 3.89583 9.1185 3.82997 10.0298C3.78311 10.678 3.75049 11.3611 3.75049 12C3.75049 12.639 3.78311 13.322 3.82997 13.9703C3.89583 14.8815 4.60152 15.5818 5.51927 15.6401C6.48682 15.7016 7.67105 15.75 9.00049 15.75C10.3299 15.75 11.5142 15.7016 12.4817 15.6401C13.3995 15.5818 14.1051 14.8815 14.171 13.9703C14.2179 13.322 14.2505 12.639 14.2505 12C14.2505 11.3611 14.2179 10.678 14.171 10.0298C14.1051 9.1185 13.3995 8.41827 12.4817 8.35994C11.5142 8.29844 10.3299 8.25002 9.00049 8.25002ZM5.42412 6.86296C3.76081 6.96868 2.45402 8.25929 2.33387 9.92163C2.28538 10.5926 2.25049 11.3137 2.25049 12C2.25049 12.6863 2.28538 13.4075 2.33387 14.0784C2.45402 15.7407 3.76081 17.0313 5.42412 17.1371C6.41882 17.2003 7.63508 17.25 9.00049 17.25C10.3659 17.25 11.5822 17.2003 12.5769 17.1371C14.2402 17.0313 15.547 15.7407 15.6671 14.0784C15.7156 13.4075 15.7505 12.6863 15.7505 12C15.7505 11.3137 15.7156 10.5926 15.6671 9.92162C15.547 8.25929 14.2402 6.96868 12.5769 6.86296C11.5822 6.79973 10.3659 6.75002 9.00049 6.75002C7.63508 6.75002 6.41882 6.79973 5.42412 6.86296Z" fill="#625DF5"/>
                                            <path fill-rule="evenodd" clip-rule="evenodd" d="M9.75 12.5493C10.1984 12.29 10.5 11.8052 10.5 11.25C10.5 10.4216 9.82843 9.75 9 9.75C8.17157 9.75 7.5 10.4216 7.5 11.25C7.5 11.8052 7.80165 12.29 8.25 12.5493V13.5C8.25 13.9142 8.58579 14.25 9 14.25C9.41421 14.25 9.75 13.9142 9.75 13.5V12.5493Z" fill="#625DF5"/>
                                            <path fill-rule="evenodd" clip-rule="evenodd" d="M5.25 4.50002C5.25 2.42895 6.92893 0.750015 9 0.750015C11.0711 0.750015 12.75 2.42895 12.75 4.50002V4.50002C12.75 4.91423 12.4142 5.25002 12 5.25002C11.5858 5.25002 11.25 4.91423 11.25 4.50002V4.50002C11.25 3.25737 10.2426 2.25002 9 2.25002C7.75736 2.25002 6.75 3.25737 6.75 4.50002V7.50002C6.75 7.91423 6.41421 8.25002 6 8.25002C5.58579 8.25002 5.25 7.91423 5.25 7.50002V4.50002Z" fill="#625DF5"/>
                                        </svg>
                                    </div>
                                </div>
                            </div>`}
                        <div class="action tooltip comment-tool-container">
                            <div class="tooltiptext">${this.allFeatureDisabled?Zc("Commenting is disabled. Contact admin."):Zc("Comment (C)")}</div>
                            ${!this.allFeatureDisabled&&this.showTourCommentTooltip?$`
                                    <div class="tour-tooltiptext" @click=${()=>this.onTourCommentTooltipClick()}>
                                        <div class="tour-tooltip-content">${Zc("Click to add comments on this page.")}</div>
                                        <button class="tour-tooltip-action" @click=${()=>this.onTourCommentTooltipClick()}>${Zc("Ok")}</button>
                                    </div>
                                `:null}
                            ${this.allFeatureDisabled?$`
                                    <div class="custom-tool">
                                        <div class="action" slot="button">
                                            <svg class="toolbar-icon"
                                                 viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
                                                <path fill-rule="evenodd" clip-rule="evenodd"
                                                      d="M17.7608 6.03888C21.6888 6.64595 24.7153 9.3481 25.7503 13.1722C26.0832 14.4028 26.0832 16.5981 25.7503 17.8287C24.8136 21.2897 22.3047 23.7986 18.8437 24.7353C18.1546 24.9217 17.6783 24.9695 16.5154 24.9685C14.9367 24.9672 14.1823 24.8254 12.8496 24.2792L12.1364 23.9869L9.93697 24.5342C7.8786 25.0464 7.71866 25.071 7.44436 24.917C6.90064 24.6118 6.90443 24.3818 7.49147 22.0353L8.03021 19.8823L7.73728 19.1677C7.19053 17.8336 7.04867 17.0796 7.04737 15.5005C7.0464 14.3376 7.09415 13.8613 7.28063 13.1722C8.21127 9.73361 10.737 7.1939 14.1308 6.28405C14.9298 6.06985 17.0392 5.92745 17.7608 6.03888ZM14.2233 8.05664C12.9452 8.46912 12.019 9.04056 11.0373 10.0223C9.57907 11.4805 8.85364 13.0991 8.75174 15.1214C8.68947 16.3572 8.85884 17.3544 9.31582 18.4435C9.47381 18.8201 9.65855 19.2624 9.72624 19.4266C9.82922 19.6761 9.78471 19.9865 9.45432 21.3204C9.23688 22.1979 9.06827 22.9251 9.07953 22.9364C9.09079 22.9476 9.81796 22.779 10.6955 22.5616C12.0294 22.2312 12.3398 22.1867 12.5893 22.2897C12.7535 22.3573 13.1958 22.5421 13.5724 22.7001C14.6615 23.1571 15.6587 23.3264 16.8945 23.2642C18.9168 23.1623 20.5354 22.4368 21.9936 20.9786C22.968 20.0042 23.5361 19.0878 23.9685 17.7926C24.2112 17.0656 24.2457 16.7805 24.2457 15.5005C24.2457 14.2204 24.2112 13.9353 23.9685 13.2083C23.5361 11.9132 22.968 10.9967 21.9936 10.0223C20.3414 8.37025 18.566 7.66777 16.2447 7.74769C15.3595 7.77823 14.8403 7.8575 14.2233 8.05664Z"/>
                                            </svg>
                                        </div>
                                    </div>
                                `:$`
                                    <velt-comment-tool @click=${()=>this.onTourCommentTooltipClick()} class="${ht({active:!this.allFeatureDisabled&&this.showTourCommentTooltip})}"></velt-comment-tool>
                                `}
                        </div>
                        <div class="action tooltip ${ht({"d-none":this.addCommentMode})}">
                            <div class="tooltiptext">${this.allFeatureDisabled?Zc("Arrow feature is disabled. Contact admin."):Zc("Arrow")}</div>
                            ${this.allFeatureDisabled?$`
                            <div class="custom-tool">
                                <div class="action">
                                    <svg class="toolbar-icon" width="32" height="32" viewBox="0 0 32 32"
                                         fill="none" xmlns="http://www.w3.org/2000/svg">
                                        <path fill-rule="evenodd" clip-rule="evenodd"
                                              d="M22.6315 18.0207C23.3673 17.9913 23.9399 17.371 23.9105 16.6352L23.6567 10.2894C23.6289 9.59486 23.0723 9.03819 22.3778 9.01041L16.0319 8.75654C15.2961 8.7271 14.6758 9.29972 14.6463 10.0355C14.6169 10.7713 15.1895 11.3916 15.9253 11.4211L19.2283 11.5532L10.0679 20.7136C9.54724 21.2343 9.54724 22.0785 10.0679 22.5992C10.5886 23.1199 11.4329 23.1199 11.9536 22.5992L21.1139 13.4389L21.246 16.7418C21.2754 17.4775 21.8957 18.0502 22.6315 18.0207Z"/>
                                    </svg>
                                </div>
                            </div>
                            `:$`
								<div class="hide-arrow-tool">
									<velt-arrow-tool></velt-arrow-tool>
								</div>
                            `}
                        </div>
                        <div class="tooltip cursor-pointer hide-huddle-tool ${ht({"d-none":this.addCommentMode})}">
                            <div class="tooltiptext">${Zc("Live Huddle")}</div>
                            <velt-huddle-tool type="all"></velt-huddle-tool>
                        </div>
                        ${this.staging&&!this.addCommentMode?$`
                                <div class="tooltip cursor-pointer">
                                    <div class="tooltiptext">${Zc("Recording")}</div>
                                    <velt-recorder-tool type="all"></velt-recorder-tool>
                                </div>
                            `:null}
                    </div>
                </div>

                <!-- divider -->
                <div class="toolbar-section ${ht({"d-none":!this.expanded||this.addCommentMode})}">
                    <div class="toolbar-divider"></div>
                </div>

                <!-- actions 1 -->
                <div class="toolbar-section comment-viewmode-section ${ht({"d-none":!this.expanded||this.addCommentMode})}">
                    <div class="toolbar-actions1">
                        <div class="tooltip">
                            <div class="tooltiptext">${Zc("Open Comments")}</div>
                            <velt-sidebar-button shadow-dom="false"></velt-sidebar-button>
                        </div>
                        ${this.allFeatureDisabled||"Admin"!==this.snippylyUserRole?null:$`
                        ${this.hasAgentAccess?$`
                        <div class="tooltip">
                            <div class="tooltiptext">${Zc("Agent Comments")}</div>
                            <div class="content-warnings-button ${ht({"has-warnings":this.hasContentWarnings})}" @click=${()=>this.onContentWarningsButtonClick()}>
                                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                                    <path d="M12.0003 10.2329V13.8332M12.0003 16.5334H12.0093M10.5268 5.36441L3.23087 17.546C3.08046 17.8064 3.00087 18.1017 3.00001 18.4025C2.99915 18.7033 3.07705 18.999 3.22596 19.2604C3.37487 19.5217 3.5896 19.7395 3.8488 19.8921C4.108 20.0446 4.40263 20.1267 4.70338 20.1301H19.2971C19.5978 20.1266 19.8922 20.0445 20.1513 19.892C20.4104 19.7395 20.625 19.5218 20.7739 19.2606C20.9228 18.9994 21.0007 18.7038 21 18.4032C20.9992 18.1025 20.9198 17.8073 20.7697 17.5469L13.4737 5.36351C13.3202 5.11015 13.1039 4.90064 12.8458 4.75524C12.5877 4.60984 12.2965 4.53345 12.0003 4.53345C11.704 4.53345 11.4128 4.60984 11.1547 4.75524C10.8966 4.90064 10.6803 5.11015 10.5268 5.36351V5.36441Z" stroke="currentColor" stroke-width="1.80014" stroke-linecap="round" stroke-linejoin="round"/>
                                </svg>
                                ${this.hasContentWarnings?$`<span class="content-warnings-count">${this.getContentWarningsDisplayCount()}</span>`:null}
                            </div>
                        </div>
                        `:null}
                        `}
                    </div>
                </div>

                <!-- divider -->
                <div class="toolbar-section ${ht({"d-none":!this.expanded||this.addCommentMode})}">
                    <div class="toolbar-divider"></div>
                </div>`:$`
                    ${this.isPlanExpired?$`
                        <div class="tooltip">
                            <div class="tooltiptext">
                                ${this.isUserGlobalContact?$`Your current plan has <br/> expired, please renew <br/> plan to continue.`:$`Your current plan has expired, <br/> please contact admin.`}
                            </div>
                            <div class="s-alert-btn">
                                <div class='error-container'>
                                    <svg class="error-icon" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                                        <path d="M12 3C10.22 3 8.47991 3.52784 6.99987 4.51677C5.51983 5.50571 4.36628 6.91131 3.68509 8.55585C3.0039 10.2004 2.82567 12.01 3.17294 13.7558C3.5202 15.5016 4.37737 17.1053 5.63604 18.364C6.89471 19.6226 8.49836 20.4798 10.2442 20.8271C11.99 21.1743 13.7996 20.9961 15.4442 20.3149C17.0887 19.6337 18.4943 18.4802 19.4832 17.0001C20.4722 15.5201 21 13.78 21 12C20.9975 9.61382 20.0485 7.3261 18.3612 5.63882C16.6739 3.95154 14.3862 3.00252 12 3ZM12 19.6154C10.4938 19.6154 9.02146 19.1687 7.76912 18.332C6.51678 17.4952 5.5407 16.3058 4.96431 14.9143C4.38792 13.5227 4.23711 11.9916 4.53095 10.5143C4.82479 9.03707 5.55008 7.68014 6.61511 6.61511C7.68014 5.55008 9.03708 4.82478 10.5143 4.53094C11.9916 4.2371 13.5228 4.38791 14.9143 4.9643C16.3058 5.54069 17.4952 6.51677 18.332 7.76912C19.1688 9.02146 19.6154 10.4938 19.6154 12C19.6131 14.019 18.81 15.9547 17.3824 17.3824C15.9547 18.81 14.019 19.6131 12 19.6154ZM11.3077 12.6923V7.84615C11.3077 7.66254 11.3806 7.48645 11.5105 7.35662C11.6403 7.22678 11.8164 7.15385 12 7.15385C12.1836 7.15385 12.3597 7.22678 12.4895 7.35662C12.6194 7.48645 12.6923 7.66254 12.6923 7.84615V12.6923C12.6923 12.8759 12.6194 13.052 12.4895 13.1818C12.3597 13.3117 12.1836 13.3846 12 13.3846C11.8164 13.3846 11.6403 13.3117 11.5105 13.1818C11.3806 13.052 11.3077 12.8759 11.3077 12.6923ZM13.0385 15.8077C13.0385 16.0131 12.9776 16.2139 12.8635 16.3846C12.7493 16.5554 12.5872 16.6885 12.3974 16.7671C12.2076 16.8457 11.9988 16.8663 11.7974 16.8262C11.596 16.7861 11.4109 16.6872 11.2657 16.542C11.1205 16.3968 11.0216 16.2117 10.9815 16.0103C10.9414 15.8088 10.962 15.6 11.0406 15.4103C11.1192 15.2205 11.2523 15.0583 11.4231 14.9442C11.5938 14.8301 11.7946 14.7692 12 14.7692C12.2754 14.7692 12.5396 14.8786 12.7343 15.0734C12.9291 15.2681 13.0385 15.5323 13.0385 15.8077Z" fill="currentColor"/>
                                    </svg>
                                    <div class="error-message">Expired</div>                    
                                </div>
                                ${this.isUserGlobalContact?$`
                                    <div class="s-cta-btn" @click=${()=>this.onUpgradePlanClick()}>
                                        Renew Plan
                                    </div>
                                    `:null}
                            </div>
                        </div>
                        `:null}
                        ${this.snippylyUserRole?null:$`
                            <div class="tooltip ${ht({"d-none":!this.expanded||this.addCommentMode})}">
                                <div class="tooltiptext">
                                    ${this.snippylyUserRole?null:$`${Zc("You don't have access to this project.")} <br/> ${Zc("Please contact admin.")}`}
                                </div>
                                <div class="s-alert-btn">
                                    <div class='error-container'>
                                        <svg class="error-icon" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                                            <path d="M12 3C10.22 3 8.47991 3.52784 6.99987 4.51677C5.51983 5.50571 4.36628 6.91131 3.68509 8.55585C3.0039 10.2004 2.82567 12.01 3.17294 13.7558C3.5202 15.5016 4.37737 17.1053 5.63604 18.364C6.89471 19.6226 8.49836 20.4798 10.2442 20.8271C11.99 21.1743 13.7996 20.9961 15.4442 20.3149C17.0887 19.6337 18.4943 18.4802 19.4832 17.0001C20.4722 15.5201 21 13.78 21 12C20.9975 9.61382 20.0485 7.3261 18.3612 5.63882C16.6739 3.95154 14.3862 3.00252 12 3ZM12 19.6154C10.4938 19.6154 9.02146 19.1687 7.76912 18.332C6.51678 17.4952 5.5407 16.3058 4.96431 14.9143C4.38792 13.5227 4.23711 11.9916 4.53095 10.5143C4.82479 9.03707 5.55008 7.68014 6.61511 6.61511C7.68014 5.55008 9.03708 4.82478 10.5143 4.53094C11.9916 4.2371 13.5228 4.38791 14.9143 4.9643C16.3058 5.54069 17.4952 6.51677 18.332 7.76912C19.1688 9.02146 19.6154 10.4938 19.6154 12C19.6131 14.019 18.81 15.9547 17.3824 17.3824C15.9547 18.81 14.019 19.6131 12 19.6154ZM11.3077 12.6923V7.84615C11.3077 7.66254 11.3806 7.48645 11.5105 7.35662C11.6403 7.22678 11.8164 7.15385 12 7.15385C12.1836 7.15385 12.3597 7.22678 12.4895 7.35662C12.6194 7.48645 12.6923 7.66254 12.6923 7.84615V12.6923C12.6923 12.8759 12.6194 13.052 12.4895 13.1818C12.3597 13.3117 12.1836 13.3846 12 13.3846C11.8164 13.3846 11.6403 13.3117 11.5105 13.1818C11.3806 13.052 11.3077 12.8759 11.3077 12.6923ZM13.0385 15.8077C13.0385 16.0131 12.9776 16.2139 12.8635 16.3846C12.7493 16.5554 12.5872 16.6885 12.3974 16.7671C12.2076 16.8457 11.9988 16.8663 11.7974 16.8262C11.596 16.7861 11.4109 16.6872 11.2657 16.542C11.1205 16.3968 11.0216 16.2117 10.9815 16.0103C10.9414 15.8088 10.962 15.6 11.0406 15.4103C11.1192 15.2205 11.2523 15.0583 11.4231 14.9442C11.5938 14.8301 11.7946 14.7692 12 14.7692C12.2754 14.7692 12.5396 14.8786 12.7343 15.0734C12.9291 15.2681 13.0385 15.5323 13.0385 15.8077Z" fill="currentColor"/>
                                        </svg>
                                        <div class="error-message">Request Access</div>
                                    </div>
                                </div>
                            </div>
                            `}
                `}

            ${this.allFeatureDisabled?$`
                <div class="s-alert-btn">
                    <div class='error-container'>
                        <svg class="error-icon" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                            <path d="M12 3C10.22 3 8.47991 3.52784 6.99987 4.51677C5.51983 5.50571 4.36628 6.91131 3.68509 8.55585C3.0039 10.2004 2.82567 12.01 3.17294 13.7558C3.5202 15.5016 4.37737 17.1053 5.63604 18.364C6.89471 19.6226 8.49836 20.4798 10.2442 20.8271C11.99 21.1743 13.7996 20.9961 15.4442 20.3149C17.0887 19.6337 18.4943 18.4802 19.4832 17.0001C20.4722 15.5201 21 13.78 21 12C20.9975 9.61382 20.0485 7.3261 18.3612 5.63882C16.6739 3.95154 14.3862 3.00252 12 3ZM12 19.6154C10.4938 19.6154 9.02146 19.1687 7.76912 18.332C6.51678 17.4952 5.5407 16.3058 4.96431 14.9143C4.38792 13.5227 4.23711 11.9916 4.53095 10.5143C4.82479 9.03707 5.55008 7.68014 6.61511 6.61511C7.68014 5.55008 9.03708 4.82478 10.5143 4.53094C11.9916 4.2371 13.5228 4.38791 14.9143 4.9643C16.3058 5.54069 17.4952 6.51677 18.332 7.76912C19.1688 9.02146 19.6154 10.4938 19.6154 12C19.6131 14.019 18.81 15.9547 17.3824 17.3824C15.9547 18.81 14.019 19.6131 12 19.6154ZM11.3077 12.6923V7.84615C11.3077 7.66254 11.3806 7.48645 11.5105 7.35662C11.6403 7.22678 11.8164 7.15385 12 7.15385C12.1836 7.15385 12.3597 7.22678 12.4895 7.35662C12.6194 7.48645 12.6923 7.66254 12.6923 7.84615V12.6923C12.6923 12.8759 12.6194 13.052 12.4895 13.1818C12.3597 13.3117 12.1836 13.3846 12 13.3846C11.8164 13.3846 11.6403 13.3117 11.5105 13.1818C11.3806 13.052 11.3077 12.8759 11.3077 12.6923ZM13.0385 15.8077C13.0385 16.0131 12.9776 16.2139 12.8635 16.3846C12.7493 16.5554 12.5872 16.6885 12.3974 16.7671C12.2076 16.8457 11.9988 16.8663 11.7974 16.8262C11.596 16.7861 11.4109 16.6872 11.2657 16.542C11.1205 16.3968 11.0216 16.2117 10.9815 16.0103C10.9414 15.8088 10.962 15.6 11.0406 15.4103C11.1192 15.2205 11.2523 15.0583 11.4231 14.9442C11.5938 14.8301 11.7946 14.7692 12 14.7692C12.2754 14.7692 12.5396 14.8786 12.7343 15.0734C12.9291 15.2681 13.0385 15.5323 13.0385 15.8077Z" fill="currentColor"/>
                        </svg>
                        <div class="error-message">Comments Disabled</div>                    
                    </div>
                </div>
                `:null}

			${this.passwordProtected&&!this.isPasswordValid?$`
                <div class="s-password-alert">
                    <div class='error-container'>
						<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
							<path d="M17.0556 11.2778H6.94444C6.1467 11.2778 5.5 11.9245 5.5 12.7223V17.7778C5.5 18.5756 6.1467 19.2223 6.94444 19.2223H17.0556C17.8533 19.2223 18.5 18.5756 18.5 17.7778V12.7223C18.5 11.9245 17.8533 11.2778 17.0556 11.2778Z" stroke="#FFCD2E" stroke-width="1.44444" stroke-linecap="round" stroke-linejoin="round"/>
							<path d="M17.0556 11.2778H6.94444C6.1467 11.2778 5.5 11.9245 5.5 12.7223V17.7778C5.5 18.5756 6.1467 19.2223 6.94444 19.2223H17.0556C17.8533 19.2223 18.5 18.5756 18.5 17.7778V12.7223C18.5 11.9245 17.8533 11.2778 17.0556 11.2778Z" stroke="black" stroke-opacity="0.16" stroke-width="1.44444" stroke-linecap="round" stroke-linejoin="round"/>
							<path d="M8.38892 11.2778V8.38894C8.38892 7.43122 8.76937 6.51272 9.44659 5.8355C10.1238 5.15829 11.0423 4.77783 12 4.77783C12.9578 4.77783 13.8763 5.15829 14.5535 5.8355C15.2307 6.51272 15.6111 7.43122 15.6111 8.38894V11.2778" stroke="#FFCD2E" stroke-width="1.44444" stroke-linecap="round" stroke-linejoin="round"/>
							<path d="M8.38892 11.2778V8.38894C8.38892 7.43122 8.76937 6.51272 9.44659 5.8355C10.1238 5.15829 11.0423 4.77783 12 4.77783C12.9578 4.77783 13.8763 5.15829 14.5535 5.8355C15.2307 6.51272 15.6111 7.43122 15.6111 8.38894V11.2778" stroke="black" stroke-opacity="0.16" stroke-width="1.44444" stroke-linecap="round" stroke-linejoin="round"/>
						</svg>					
                        <div class="error-message password">Review is Locked</div>               
                    </div>
					<div class="cta-btn" @click=${()=>this.onPasswordProtectedModalOpenButtonClick()}>
						Enter Password
					</div>     
                </div>
                `:null}
                <!-- actions 2 -->
                <div class="toolbar-section user-profile-section ${ht({"d-none":!this.expanded||this.addCommentMode})}">
                    <div class="toolbar-actions2">
                        ${this.isPlanExpired?null:$`
                            <div class="action tooltip cursor-pointer d-sm-none user-invite-tool-container" @click=${()=>this.onUserInviteToolClick()}>
                                <div class="tooltiptext">${Zc("Share")}</div>
																<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
																	<path d="M7.25016 8.91671L12.7502 6.08337M7.25016 11.0834L12.7502 13.9167M2.5 10C2.5 10.663 2.76339 11.2989 3.23223 11.7678C3.70107 12.2366 4.33696 12.5 5 12.5C5.66304 12.5 6.29893 12.2366 6.76777 11.7678C7.23661 11.2989 7.5 10.663 7.5 10C7.5 9.33696 7.23661 8.70107 6.76777 8.23223C6.29893 7.76339 5.66304 7.5 5 7.5C4.33696 7.5 3.70107 7.76339 3.23223 8.23223C2.76339 8.70107 2.5 9.33696 2.5 10ZM12.5 5C12.5 5.66304 12.7634 6.29893 13.2322 6.76777C13.7011 7.23661 14.337 7.5 15 7.5C15.663 7.5 16.2989 7.23661 16.7678 6.76777C17.2366 6.29893 17.5 5.66304 17.5 5C17.5 4.33696 17.2366 3.70107 16.7678 3.23223C16.2989 2.76339 15.663 2.5 15 2.5C14.337 2.5 13.7011 2.76339 13.2322 3.23223C12.7634 3.70107 12.5 4.33696 12.5 5ZM12.5 15C12.5 15.663 12.7634 16.2989 13.2322 16.7678C13.7011 17.2366 14.337 17.5 15 17.5C15.663 17.5 16.2989 17.2366 16.7678 16.7678C17.2366 16.2989 17.5 15.663 17.5 15C17.5 14.337 17.2366 13.7011 16.7678 13.2322C16.2989 12.7634 15.663 12.5 15 12.5C14.337 12.5 13.7011 12.7634 13.2322 13.2322C12.7634 13.7011 12.5 14.337 12.5 15Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
																</svg>
                            </div>
                            `}
            ${(null===(n=this.snippylyUser)||void 0===n?void 0:n.isGuest)&&this.allowGuestModeSignIn?$`
                    <div class="s-guest-user-sign-in-button" @click=${()=>this.loginWithGoogle()}>
                        <p>${Zc("Sign in")}</p>
                    </div>
                    `:$`
                    <div class="action">
                        ${(null===(o=this.snippylyUser)||void 0===o?void 0:o.photoUrl)&&!this.avatarFetchFailed?$`<img class="toolbar-img profile-img" src=${null===(s=this.snippylyUser)||void 0===s?void 0:s.photoUrl} referrerpolicy="no-referrer" title=${null===(r=this.snippylyUser)||void 0===r?void 0:r.name} @error=${()=>this.avatarFetchFailed=!0} />`:$`<div class="profile-initial"><span>${(null===(l=null===(a=this.snippylyUser)||void 0===a?void 0:a.name)||void 0===l?void 0:l.charAt(0))||(null===(d=null===(c=this.snippylyUser)||void 0===c?void 0:c.email)||void 0===d?void 0:d.charAt(0))}</span></div>`}
                    </div>
                    `}
                    </div>
                </div>

                <!-- context menu icon -->
                <div class="toolbar-section ${ht({"d-none":!this.expanded||this.addCommentMode})}">
                <div class="toolbar-section s-more-menu dropdown">
                    <div class="dropdown-content">
                        <div class="menu-point">
												<div class="toolbar-logo content-menu-logo">
													${this.getLogoMark()}
												</div>
													<a href="https://www.usesuperflow.com/features?ref=toolbar" target="_blank">
														${Zc("Powered by Superflow")}
                          </a>
                        </div>
                        <hr />
                        ${this.isUserGlobalContact?$`
                                <div class="menu-point" @click=${()=>this.goToAdminPortal()}>
                                    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
																			<path d="M12.75 5.25L5.25 12.75M12.75 5.25H6M12.75 5.25V12" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
																		</svg>
                                    <p>${Zc("View project")}</p>
                                </div>
                                <hr />
                            `:$``}
                        ${this.isUserGlobalContact&&this.staging?$`
                                <velt-view-analytics>
                                    <div class="menu-point" slot="button">
                                        <svg width="16" height="16" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
                                            <path
                                                d="M7.5 9C7.5 9.39782 7.65804 9.77936 7.93934 10.0607C8.22064 10.342 8.60218 10.5 9 10.5C9.39782 10.5 9.77936 10.342 10.0607 10.0607C10.342 9.77936 10.5 9.39782 10.5 9C10.5 8.60218 10.342 8.22064 10.0607 7.93934C9.77936 7.65804 9.39782 7.5 9 7.5C8.60218 7.5 8.22064 7.65804 7.93934 7.93934C7.65804 8.22064 7.5 8.60218 7.5 9Z"
                                                stroke="#777E91" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" />
                                            <path
                                                d="M15.75 9C13.95 12 11.7 13.5 9 13.5C6.3 13.5 4.05 12 2.25 9C4.05 6 6.3 4.5 9 4.5C11.7 4.5 13.95 6 15.75 9Z"
                                                stroke="#777E91" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" />
                                        </svg>
                                        <p>${Zc(this.totalViewsCount+" Total Views")}</p>
                                    </div>
                                </velt-view-analytics>
                            `:$``}
                        ${this.staging?$`
                                <velt-notifications-tool>
                                    <div class="menu-point" slot="button">
                                        <svg part="button-icon" width="16" height="16" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg" class="action-btn-icon ng-star-inserted">
                                            <path d="M6.75 12.75V13.5C6.75 14.0967 6.98705 14.669 7.40901 15.091C7.83097 15.5129 8.40326 15.75 9 15.75C9.59674 15.75 10.169 15.5129 10.591 15.091C11.0129 14.669 11.25 14.0967 11.25 13.5V12.75M7.5 3.75C7.5 3.35218 7.65804 2.97064 7.93934 2.68934C8.22064 2.40804 8.60218 2.25 9 2.25C9.39782 2.25 9.77936 2.40804 10.0607 2.68934C10.342 2.97064 10.5 3.35218 10.5 3.75C11.3613 4.15727 12.0956 4.79124 12.624 5.58397C13.1525 6.3767 13.4553 7.29831 13.5 8.25V10.5C13.5564 10.9663 13.7216 11.4128 13.9821 11.8036C14.2426 12.1944 14.5913 12.5186 15 12.75H3C3.4087 12.5186 3.75736 12.1944 4.01789 11.8036C4.27842 11.4128 4.44356 10.9663 4.5 10.5V8.25C4.54467 7.29831 4.84748 6.3767 5.37596 5.58397C5.90445 4.79124 6.63869 4.15727 7.5 3.75Z" stroke="#777E91" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round">
                                            </path>
                                        </svg>
                                        <p>Notifications</p>
                                    </div>
                                </velt-notifications-tool>
                            `:$``}
                        <div class="menu-point" @click=${()=>this.toggleQRCodeVisibility()}>
                            <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
															<path d="M5.25 12.75V12.7575M5.25 5.25V5.2575M12.75 5.25V5.2575M12.75 10.5H10.5V12.75M15 10.5V10.5075M10.5 15H12.75M12.75 12.75H15V15M3 3.75C3 3.55109 3.07902 3.36032 3.21967 3.21967C3.36032 3.07902 3.55109 3 3.75 3H6.75C6.94891 3 7.13968 3.07902 7.28033 3.21967C7.42098 3.36032 7.5 3.55109 7.5 3.75V6.75C7.5 6.94891 7.42098 7.13968 7.28033 7.28033C7.13968 7.42098 6.94891 7.5 6.75 7.5H3.75C3.55109 7.5 3.36032 7.42098 3.21967 7.28033C3.07902 7.13968 3 6.94891 3 6.75V3.75ZM10.5 3.75C10.5 3.55109 10.579 3.36032 10.7197 3.21967C10.8603 3.07902 11.0511 3 11.25 3H14.25C14.4489 3 14.6397 3.07902 14.7803 3.21967C14.921 3.36032 15 3.55109 15 3.75V6.75C15 6.94891 14.921 7.13968 14.7803 7.28033C14.6397 7.42098 14.4489 7.5 14.25 7.5H11.25C11.0511 7.5 10.8603 7.42098 10.7197 7.28033C10.579 7.13968 10.5 6.94891 10.5 6.75V3.75ZM3 11.25C3 11.0511 3.07902 10.8603 3.21967 10.7197C3.36032 10.579 3.55109 10.5 3.75 10.5H6.75C6.94891 10.5 7.13968 10.579 7.28033 10.7197C7.42098 10.8603 7.5 11.0511 7.5 11.25V14.25C7.5 14.4489 7.42098 14.6397 7.28033 14.7803C7.13968 14.921 6.94891 15 6.75 15H3.75C3.55109 15 3.36032 14.921 3.21967 14.7803C3.07902 14.6397 3 14.4489 3 14.25V11.25Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
														</svg>

                            <p>${Zc("Open in Mobile")}</p>
                        </div>
                        <div class="menu-point" @click=${()=>this.removeSnippyly()}>
                            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                                <path fill-rule="evenodd" clip-rule="evenodd" d="M12 4C10.0478 4 8.24816 4.161 6.80371 4.35177C5.50372 4.52346 4.52346 5.50372 4.35177 6.80371C4.16101 8.24816 4 10.0478 4 12C4 13.9522 4.161 15.7518 4.35177 17.1963C4.52346 18.4963 5.50372 19.4765 6.80371 19.6482C8.24816 19.839 10.0478 20 12 20C13.9522 20 15.7518 19.839 17.1963 19.6482C18.4963 19.4765 19.4765 18.4963 19.6482 17.1963C19.839 15.7518 20 13.9522 20 12C20 10.0478 19.839 8.24816 19.6482 6.80371C19.4765 5.50372 18.4963 4.52346 17.1963 4.35177C15.7518 4.16101 13.9522 4 12 4ZM6.54184 2.36899C4.34504 2.65912 2.65912 4.34504 2.36899 6.54184C2.16953 8.05208 2 9.94127 2 12C2 14.0587 2.16953 15.9479 2.36899 17.4582C2.65912 19.655 4.34504 21.3409 6.54184 21.631C8.05208 21.8305 9.94127 22 12 22C14.0587 22 15.9479 21.8305 17.4582 21.631C19.655 21.3409 21.3409 19.655 21.631 17.4582C21.8305 15.9479 22 14.0587 22 12C22 9.94127 21.8305 8.05208 21.631 6.54184C21.3409 4.34504 19.655 2.65912 17.4582 2.36899C15.9479 2.16953 14.0587 2 12 2C9.94127 2 8.05208 2.16953 6.54184 2.36899Z" fill="#777E91"/>
                                <path fill-rule="evenodd" clip-rule="evenodd" d="M8.29289 8.29289C8.68342 7.90237 9.31658 7.90237 9.70711 8.29289L12 10.5858L14.2929 8.29289C14.6834 7.90237 15.3166 7.90237 15.7071 8.29289C16.0976 8.68342 16.0976 9.31658 15.7071 9.70711L13.4142 12L15.7071 14.2929C16.0976 14.6834 16.0976 15.3166 15.7071 15.7071C15.3166 16.0976 14.6834 16.0976 14.2929 15.7071L12 13.4142L9.70711 15.7071C9.31658 16.0976 8.68342 16.0976 8.29289 15.7071C7.90237 15.3166 7.90237 14.6834 8.29289 14.2929L10.5858 12L8.29289 9.70711C7.90237 9.31658 7.90237 8.68342 8.29289 8.29289Z" fill="#777E91"/>
                            </svg>

                            <p>${Zc("Exit Review Mode")}</p>
                        </div>
                        ${this.customLoginEnabledLocally||(null===(h=this.snippylyUser)||void 0===h?void 0:h.isGuest)?null:$`
                            <div class="menu-point" @click=${()=>this.signOutUser()}>
                                <svg width="18" height="19" viewBox="0 0 18 19" fill="none" xmlns="http://www.w3.org/2000/svg">
																	<path fill-rule="evenodd" clip-rule="evenodd" d="M8.27201 11.9903C8.68593 11.9746 9.03414 12.2975 9.04977 12.7114C9.085 13.6446 9.13447 14.3257 9.18312 14.814C9.23103 15.2949 9.52134 15.5842 9.92603 15.6337C10.4032 15.692 11.0764 15.7397 12.0001 15.7397C12.9239 15.7397 13.597 15.692 14.0742 15.6337C14.4787 15.5842 14.7692 15.2947 14.8171 14.8137C14.9074 13.9073 15.0001 12.3414 15.0001 9.73975C15.0001 7.13813 14.9074 5.57215 14.8171 4.66575C14.7692 4.18474 14.4787 3.89527 14.0742 3.84582C13.597 3.78749 12.9239 3.73974 12.0001 3.73974C11.0764 3.73974 10.4032 3.78748 9.92602 3.84582C9.52134 3.89529 9.23103 4.18463 9.18312 4.66552C9.13447 5.15383 9.085 5.8349 9.04977 6.76804C9.03414 7.18196 8.68593 7.50484 8.27201 7.48921C7.85809 7.47359 7.53521 7.12537 7.55084 6.71145C7.58699 5.75368 7.63826 5.04132 7.69051 4.51683C7.80035 3.4142 8.5691 2.50052 9.74402 2.3569C10.2909 2.29004 11.0257 2.23974 12.0001 2.23974C12.9745 2.23974 13.7093 2.29005 14.2562 2.35691C15.4312 2.50055 16.1999 3.41466 16.3097 4.51706C16.4064 5.48776 16.5001 7.1061 16.5001 9.73975C16.5001 12.3734 16.4064 13.9917 16.3097 14.9624C16.1999 16.0648 15.4313 16.9789 14.2562 17.1226C13.7093 17.1894 12.9745 17.2397 12.0001 17.2397C11.0257 17.2397 10.2909 17.1894 9.74402 17.1226C8.56911 16.979 7.80035 16.0653 7.69051 14.9627C7.63826 14.4382 7.58699 13.7258 7.55084 12.768C7.53521 12.3541 7.85809 12.0059 8.27201 11.9903Z" fill="#FF7162"/>
																	<path fill-rule="evenodd" clip-rule="evenodd" d="M5.40533 11.8344C5.69822 12.1273 5.69822 12.6022 5.40533 12.8951C5.11244 13.188 4.63756 13.188 4.34467 12.8951L1.71967 10.2701C1.42678 9.97718 1.42678 9.50231 1.71967 9.20942L4.34467 6.58442C4.63756 6.29152 5.11244 6.29152 5.40533 6.58442C5.69822 6.87731 5.69822 7.35218 5.40533 7.64508L4.06066 8.98975H11.25C11.6642 8.98975 12 9.32553 12 9.73975C12 10.154 11.6642 10.4897 11.25 10.4897L4.06066 10.4897L5.40533 11.8344Z" fill="#FF7162"/>
																</svg>
                                <p>${Zc("Sign Out")}</p>
                            </div>
                            `}
                    </div>
                    <svg
                        class="toolbar-icon"
                        viewBox="0 0 32 32"
                        fill="none"
                        xmlns="http://www.w3.org/2000/svg"
                    >
                        <path
                        d="M14 23C14 24.1 14.9 25 16 25C17.1 25 18 24.1 18 23C18 21.9 17.1 21 16 21C14.9 21 14 21.9 14 23ZM14 9C14 10.1 14.9 11 16 11C17.1 11 18 10.1 18 9C18 7.9 17.1 7 16 7C14.9 7 14 7.9 14 9ZM14 16C14 17.1 14.9 18 16 18C17.1 18 18 17.1 18 16C18 14.9 17.1 14 16 14C14.9 14 14 14.9 14 16Z"
                        />
                    </svg>
                    </div>
                </div>

            </div>
            ${this.showQrCode&&this.qrCode?$`
                    <div class="qrcode-container">
                        <img class="qrcode" src=${this.qrCode} />
                        <button class="qrcode-container-close-btn" @click=${()=>this.toggleQRCodeVisibility()}>x</button>
                    </div>
                `:null}
        </div>
        ${this.showOnboardingModal?$`
                <div class="snippyly-plugin-modal-container" @click=${()=>this.onboardingNextClick()}>
                    <div class="s-modal" @click=${t=>null==t?void 0:t.stopPropagation()}>
                        <img src="https://app.usesuperflow.com/assets/party-emoji.svg" />
                        <div class="s-modal-text">
                            <h1>${Zc("You’re a SuperFlow installation wizard!")}</h1>
                            <p>
                                ${Zc("Get ready to drop your first comment!")} <br/>
                                ${Zc("But before you do that, you definitely deserve a high five!")}
                            </p>
                        </div>
                        <div class="s-button s-primary" @click=${()=>this.onboardingNextClick()}>${Zc("Next")}</div>
                    </div>
                </div>
            `:$``}
            ${this.showLiveDemoModal?$`
                <div class="snippyly-plugin-modal-container" @click=${()=>this.onLiveDemoModalNextClick()}>
                    <div class="s-modal" @click=${t=>null==t?void 0:t.stopPropagation()}>
                        <img src="https://app.usesuperflow.com/assets/party-emoji.svg" />
                        <div class="s-modal-text">
                            <h1>${Zc("Try Superflow using the toolbar below.")}</h1>
                            <p>
                                ${Zc("Get ready to drop your first comment!")} <br/>
                                ${Zc("But before you do that, you definitely deserve a high five!")}
                            </p>
                        </div>
                        <div class="s-button s-primary" @click=${()=>this.onLiveDemoModalNextClick()}>${Zc("Done")}</div>
                    </div>
                </div>
            `:$``}
            ${this.showFigmaDemoModal?$`
                <div class="snippyly-plugin-modal-container" @click=${()=>this.onFigmaDemoModalNextClick()}>
                    <div class="s-modal" @click=${t=>null==t?void 0:t.stopPropagation()}>
                        <img src="https://app.usesuperflow.com/assets/party-emoji.svg" />
                        <div class="s-modal-text">
                            <h1>
                                ${Zc("Sign in on the toolbar below and add")}<br/>
                                ${Zc("comments on the design flaws.")}
                            </h1>
                        </div>
                        <div class="s-button s-primary" @click=${()=>this.onFigmaDemoModalNextClick()}>${Zc("Done")}</div>
                    </div>
                </div>
            `:$``}
            ${this.showGuestModeNameModal?$`
                    <div class="snippyly-plugin-modal-container s-guest-mode-signin-modal-container">
                        <div class="s-modal" @click=${t=>null==t?void 0:t.stopPropagation()}
                            @pointerdown=${t=>null==t?void 0:t.stopPropagation()} 
                            @pointerup=${t=>null==t?void 0:t.stopPropagation()}
                            @mousedown=${t=>null==t?void 0:t.stopPropagation()} 
                            @mouseup=${t=>null==t?void 0:t.stopPropagation()}>
                            <div class="s-modal-superflow-logo">
								${this.getWordMark()}
                            </div>
                            <div class="s-modal-subtitle">Tag your comments with your name!</div>
                            <input id="guestUserName" class="s-guest-user-name" placeholder="Your name" @input=${t=>{var e;return this.guestUserNameInput=null===(e=null==t?void 0:t.target)||void 0===e?void 0:e.value}} />
                            <div class="s-button s-primary s-signin-button ${(null===(u=this.guestUserNameInput)||void 0===u?void 0:u.trim())?"":"s-disabled"}" @click=${()=>{var t;(null===(t=this.snippylyUser)||void 0===t?void 0:t.isGuest)?this.updateGuestUserName():this.updateUserName()}}>
                                ${this.guestUserNameUpdateLoading?$`
                                        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16px" height="16px" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid">
                                            <g transform="rotate(0 50 50)">
                                            <rect x="47" y="6" rx="3" ry="12" width="6" height="24" fill="white">
                                                <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.9166666666666666s" repeatCount="indefinite"></animate>
                                            </rect>
                                            </g><g transform="rotate(30 50 50)">
                                            <rect x="47" y="6" rx="3" ry="12" width="6" height="24" fill="white">
                                                <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.8333333333333334s" repeatCount="indefinite"></animate>
                                            </rect>
                                            </g><g transform="rotate(60 50 50)">
                                            <rect x="47" y="6" rx="3" ry="12" width="6" height="24" fill="white">
                                                <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.75s" repeatCount="indefinite"></animate>
                                            </rect>
                                            </g><g transform="rotate(90 50 50)">
                                            <rect x="47" y="6" rx="3" ry="12" width="6" height="24" fill="white">
                                                <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.6666666666666666s" repeatCount="indefinite"></animate>
                                            </rect>
                                            </g><g transform="rotate(120 50 50)">
                                            <rect x="47" y="6" rx="3" ry="12" width="6" height="24" fill="white">
                                                <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.5833333333333334s" repeatCount="indefinite"></animate>
                                            </rect>
                                            </g><g transform="rotate(150 50 50)">
                                            <rect x="47" y="6" rx="3" ry="12" width="6" height="24" fill="white">
                                                <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.5s" repeatCount="indefinite"></animate>
                                            </rect>
                                            </g><g transform="rotate(180 50 50)">
                                            <rect x="47" y="6" rx="3" ry="12" width="6" height="24" fill="white">
                                                <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.4166666666666667s" repeatCount="indefinite"></animate>
                                            </rect>
                                            </g><g transform="rotate(210 50 50)">
                                            <rect x="47" y="6" rx="3" ry="12" width="6" height="24" fill="white">
                                                <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.3333333333333333s" repeatCount="indefinite"></animate>
                                            </rect>
                                            </g><g transform="rotate(240 50 50)">
                                            <rect x="47" y="6" rx="3" ry="12" width="6" height="24" fill="white">
                                                <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.25s" repeatCount="indefinite"></animate>
                                            </rect>
                                            </g><g transform="rotate(270 50 50)">
                                            <rect x="47" y="6" rx="3" ry="12" width="6" height="24" fill="white">
                                                <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.16666666666666666s" repeatCount="indefinite"></animate>
                                            </rect>
                                            </g><g transform="rotate(300 50 50)">
                                            <rect x="47" y="6" rx="3" ry="12" width="6" height="24" fill="white">
                                                <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.08333333333333333s" repeatCount="indefinite"></animate>
                                            </rect>
                                            </g><g transform="rotate(330 50 50)">
                                            <rect x="47" y="6" rx="3" ry="12" width="6" height="24" fill="white">
                                                <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="0s" repeatCount="indefinite"></animate>
                                            </rect>
                                            </g>
                                        </svg>
                                        `:null}
                                ${this.guestUserNameUpdateLoading?"":Zc("Save")}
                            </div>
                            <div class="s-modal-link-text" @click=${()=>this.onGuestModeNameModalSkipButtonClick()}>Skip</div>
                        </div>
                    </div>
                    `:$``}
            ${(null===(p=this.snippylyUser)||void 0===p?void 0:p.isGuest)?$`
                        ${!this.addCommentMode&&this.allowGuestModeSignIn?$`
								<div class="s-guest-mode-chip" part="guest-mode-chip">
									<div class="s-guest-mode-chip-title ${this.allowGuestModeSignIn?"":"s-guest-mode-rounded-corners"}">Guest Mode</div>
									<div class="s-guest-mode-chip-action" @click=${()=>this.onGuestModeChipSignInButtonClick()}>Sign in</div>
								</div>
                            `:$``}
                        ${this.showGuestModeSignInModal?$`
                                <div class="snippyly-plugin-modal-container s-guest-mode-signin-modal-container" @click=${()=>{this.guestModeSignInModalConfig.closeOnClickOutside&&this.closeGuestModeSignInModal()}}>
                                    <div class="s-modal" @click=${t=>null==t?void 0:t.stopPropagation()}>
                                        <div class="s-modal-superflow-logo">
											${this.getWordMark()}
                                        </div>
                                        <div class="s-modal-title">${null===(v=this.guestModeSignInModalConfig)||void 0===v?void 0:v.title}</div>
                                        <div class="s-modal-subtitle">${null===(f=this.guestModeSignInModalConfig)||void 0===f?void 0:f.description}</div>
                                        <div class="s-button s-primary s-signin-button" @click=${()=>this.onGuestModeSignInModalSignInButtonClick()}>${Zc("Sign in")}</div>
                                        ${this.guestModeSignInModalConfig.showLeaveCommentButton?$`
                                                <div class="s-modal-link-text" @click=${t=>{this.closeGuestModeSignInModal(),this.openGuestModeNameModel(t)}}>Leave Comment Anonymously</div>
                                                `:$``}
                                    </div>
                                </div>
                                `:$``}
                        ${this.guestModeSignInBannerVisible?$`
                                    <div class="s-guest-mode-banner">
                                        <span>Notify your team about your comments by signing in.</span>
                                        <div class="s-guest-mode-banner-actions">
                                            <button @click=${()=>this.onGuestModeBannerSignInButtonClick()}>${Zc("Sign in")}</button>
                                            <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="cursor-pointer" viewBox="0 0 16 16" @click=${()=>this.hideGuestModeSignInBanner()}>
                                                <path d="M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8 2.146 2.854Z"/>
                                            </svg>
                                        </div>
                                    </div>
                                `:$``}
                    `:$``}
			${this.passwordProtected&&this.showPasswordProtectedModal?$`
                    <div class="snippyly-plugin-modal-container s-guest-mode-signin-modal-container s-password-container">
						<div class="s-modal" @click=${t=>null==t?void 0:t.stopPropagation()}
							@pointerdown=${t=>null==t?void 0:t.stopPropagation()} 
							@pointerup=${t=>null==t?void 0:t.stopPropagation()}
							@mousedown=${t=>null==t?void 0:t.stopPropagation()} 
							@mouseup=${t=>null==t?void 0:t.stopPropagation()}>
							<div class="s-modal-close-button" @click=${()=>this.onPasswordProtectedModalCloseButtonClick()}>
								<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
									<path d="M13.5 4.5L4.5 13.5" stroke="#B1B5C3" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
									<path d="M4.5 4.5L13.5 13.5" stroke="#B1B5C3" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
								</svg>
							</div>
							<div class="s-modal-superflow-logo">
								<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
									<path d="M25.3333 14.6667H6.66667C5.19391 14.6667 4 15.8606 4 17.3333V26.6667C4 28.1394 5.19391 29.3333 6.66667 29.3333H25.3333C26.8061 29.3333 28 28.1394 28 26.6667V17.3333C28 15.8606 26.8061 14.6667 25.3333 14.6667Z" stroke="#625DF5" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
									<path d="M9.33337 14.6667V9.33333C9.33337 7.56522 10.0358 5.86953 11.286 4.61929C12.5362 3.36904 14.2319 2.66666 16 2.66666C17.7682 2.66666 19.4638 3.36904 20.7141 4.61929C21.9643 5.86953 22.6667 7.56522 22.6667 9.33333V14.6667" stroke="#625DF5" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
								</svg>							
							</div>
							<div class="s-modal-secondary-subtitle">Enter password to review</div>
							<div class="s-modal-secondary-desc">
								Contact admin if you need help
							</div>
							<div class="s-modal-secondary-actions">
								<input id="Enter Password" placeholder="Password" @input=${t=>{var e;return this.password=null===(e=null==t?void 0:t.target)||void 0===e?void 0:e.value}} />
								<div class="s-button s-primary s-modal-secondary-actions-submit ${(null===(g=this.password)||void 0===g?void 0:g.trim())?"":"s-disabled"}" @click=${()=>{this.submitPassword()}}>
									${this.validatingPasswordLoading?$`
											<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16px" height="16px" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid">
												<g transform="rotate(0 50 50)">
												<rect x="47" y="6" rx="3" ry="12" width="6" height="24" fill="white">
													<animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.9166666666666666s" repeatCount="indefinite"></animate>
												</rect>
												</g><g transform="rotate(30 50 50)">
												<rect x="47" y="6" rx="3" ry="12" width="6" height="24" fill="white">
													<animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.8333333333333334s" repeatCount="indefinite"></animate>
												</rect>
												</g><g transform="rotate(60 50 50)">
												<rect x="47" y="6" rx="3" ry="12" width="6" height="24" fill="white">
													<animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.75s" repeatCount="indefinite"></animate>
												</rect>
												</g><g transform="rotate(90 50 50)">
												<rect x="47" y="6" rx="3" ry="12" width="6" height="24" fill="white">
													<animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.6666666666666666s" repeatCount="indefinite"></animate>
												</rect>
												</g><g transform="rotate(120 50 50)">
												<rect x="47" y="6" rx="3" ry="12" width="6" height="24" fill="white">
													<animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.5833333333333334s" repeatCount="indefinite"></animate>
												</rect>
												</g><g transform="rotate(150 50 50)">
												<rect x="47" y="6" rx="3" ry="12" width="6" height="24" fill="white">
													<animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.5s" repeatCount="indefinite"></animate>
												</rect>
												</g><g transform="rotate(180 50 50)">
												<rect x="47" y="6" rx="3" ry="12" width="6" height="24" fill="white">
													<animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.4166666666666667s" repeatCount="indefinite"></animate>
												</rect>
												</g><g transform="rotate(210 50 50)">
												<rect x="47" y="6" rx="3" ry="12" width="6" height="24" fill="white">
													<animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.3333333333333333s" repeatCount="indefinite"></animate>
												</rect>
												</g><g transform="rotate(240 50 50)">
												<rect x="47" y="6" rx="3" ry="12" width="6" height="24" fill="white">
													<animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.25s" repeatCount="indefinite"></animate>
												</rect>
												</g><g transform="rotate(270 50 50)">
												<rect x="47" y="6" rx="3" ry="12" width="6" height="24" fill="white">
													<animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.16666666666666666s" repeatCount="indefinite"></animate>
												</rect>
												</g><g transform="rotate(300 50 50)">
												<rect x="47" y="6" rx="3" ry="12" width="6" height="24" fill="white">
													<animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.08333333333333333s" repeatCount="indefinite"></animate>
												</rect>
												</g><g transform="rotate(330 50 50)">
												<rect x="47" y="6" rx="3" ry="12" width="6" height="24" fill="white">
													<animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="0s" repeatCount="indefinite"></animate>
												</rect>
												</g>
											</svg>
											`:null}
									${this.validatingPasswordLoading?"":Zc("Submit")}
								</div>
							</div>
							${this.showInvalidPassword?$`
									<div class="error-message">
									<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
										<g clip-path="url(#clip0_21454_3891)">
										<path d="M8.00004 14.6667C11.6819 14.6667 14.6667 11.6819 14.6667 7.99999C14.6667 4.31809 11.6819 1.33332 8.00004 1.33332C4.31814 1.33332 1.33337 4.31809 1.33337 7.99999C1.33337 11.6819 4.31814 14.6667 8.00004 14.6667Z" stroke="#FF7162" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/>
										<path d="M8 5.33332V7.99999" stroke="#FF7162" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/>
										<path d="M8 10.6667H8.00667" stroke="#FF7162" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/>
										</g>
										<defs>
										<clipPath id="clip0_21454_3891">
										<rect width="16" height="16" fill="white"/>
										</clipPath>
										</defs>
									</svg>				
									Incorrect Password					
									</div>
								`:null}
						</div>
                    </div>
                    `:$``}

            <!-- Content Warning Sidebar -->
            ${this.showContentWarningSidebar&&!this.allFeatureDisabled&&"Admin"===this.snippylyUserRole?$`
                <content-warning-sidebar
                    .agentGroups=${this.agentGroups}
                    .currentPageUrl=${window.location.href}
                    @content-warning-sidebar-close=${this.onContentWarningSidebarClose}
                    @content-warning-sidebar-add-all=${this.onContentWarningSidebarAddAll}
                    @content-warning-item-click=${this.onContentWarningItemClick}
                ></content-warning-sidebar>
            `:""}

            <!-- Invite Modal -->
            ${this.showInviteModal?$`
                <superflow-invite-modal
                    mode="modal"
                    .apiKey=${this.apiKey}
                    .documentId=${this.documentId}
                    .hasInviteAccess=${!0}
                    .disableInvite=${!(this.snippylyUser&&!(null===(m=this.snippylyUser)||void 0===m?void 0:m.isGuest))}
                    .userSeatsExhausted=${!!(null===(b=null===(w=this.featureAccess)||void 0===w?void 0:w[zc.WorkspaceUserSeats])||void 0===b?void 0:b.hasUsageExhausted)}
                    @superflow-invite-modal-close=${this.closeInviteModal}
                    @superflow-invite-modal-invite-success=${this.onInviteSuccess}
                ></superflow-invite-modal>
            `:""}
        `:$``}}sd.styles=[Jc,Yc],od([ot()],sd.prototype,"loadPlugin",null),od([ot()],sd.prototype,"comments",void 0),od([ot()],sd.prototype,"commentElement",void 0),od([ot()],sd.prototype,"contactElement",void 0),od([ot()],sd.prototype,"rewriterElement",void 0),od([ot()],sd.prototype,"presenceElement",void 0),od([ot()],sd.prototype,"commentSubscription",void 0),od([ot()],sd.prototype,"selectionElement",void 0),od([ot()],sd.prototype,"viewsElement",void 0),od([ot()],sd.prototype,"docElement",void 0),od([ot()],sd.prototype,"addCommentMode",void 0),od([ot()],sd.prototype,"showTourCommentTooltip",void 0),od([ot()],sd.prototype,"allFeatureDisabled",void 0),od([ot()],sd.prototype,"allFeatureRestricted",void 0),od([ot()],sd.prototype,"guestMode",void 0),od([ot()],sd.prototype,"_expanded",void 0),od([ot()],sd.prototype,"loading",void 0),od([ot()],sd.prototype,"signInError",void 0),od([ot()],sd.prototype,"snippylyUser",void 0),od([ot()],sd.prototype,"snippylyUserRole",void 0),od([ot()],sd.prototype,"_isPlanExpired",void 0),od([ot()],sd.prototype,"showOnboardingModal",void 0),od([ot()],sd.prototype,"showLiveDemoModal",void 0),od([ot()],sd.prototype,"showFigmaDemoModal",void 0),od([ot()],sd.prototype,"showGuestModeSignInModal",void 0),od([ot()],sd.prototype,"guestModeSignInModalConfig",void 0),od([ot()],sd.prototype,"showGuestModeNameModal",void 0),od([ot()],sd.prototype,"guestModeSignInBannerVisible",void 0),od([ot()],sd.prototype,"guestUserNameInput",void 0),od([ot()],sd.prototype,"guestUserModelOpened",void 0),od([ot()],sd.prototype,"guestUserNameUpdated",void 0),od([ot()],sd.prototype,"guestUserNameUpdateLoading",void 0),od([nt()],sd.prototype,"apiKey",null),od([nt()],sd.prototype,"projectId",null),od([ot()],sd.prototype,"staging",void 0),od([nt()],sd.prototype,"projectVersionKey",null),od([ot()],sd.prototype,"projectVersion",void 0),od([ot()],sd.prototype,"version",void 0),od([nt()],sd.prototype,"veltVersion",void 0),od([nt()],sd.prototype,"autoLocation",null),od([ot()],sd.prototype,"_menuOpenedId",void 0),od([ot()],sd.prototype,"copyLinkTooltip",void 0),od([ot()],sd.prototype,"invalidApiKey",void 0),od([ot()],sd.prototype,"documentId",void 0),od([ot()],sd.prototype,"serverDocumentId",void 0),od([ot()],sd.prototype,"_isUserGlobalContact",void 0),od([ot()],sd.prototype,"location",void 0),od([ot()],sd.prototype,"qrCode",void 0),od([ot()],sd.prototype,"showQrCode",void 0),od([ot()],sd.prototype,"customLoginEnabledLocally",void 0),od([nt()],sd.prototype,"customLoginEnabled",void 0),od([ot()],sd.prototype,"providedUser",void 0),od([ot()],sd.prototype,"autoTranslation",void 0),od([ot()],sd.prototype,"addCommentCount",void 0),od([ot()],sd.prototype,"isSigningInUserAdmin",void 0),od([ot()],sd.prototype,"_privateCommentModeEnabled",void 0),od([ot()],sd.prototype,"superflowToolbarMoved",void 0),od([ot()],sd.prototype,"_customerMetadata",void 0),od([ot()],sd.prototype,"logoMark",void 0),od([ot()],sd.prototype,"wordMark",void 0),od([ot()],sd.prototype,"_darkMode",void 0),od([ot()],sd.prototype,"projectConfig",void 0),od([ot()],sd.prototype,"allowGuestModeSignIn",void 0),od([ot()],sd.prototype,"_queryParamsComments",void 0),od([ot()],sd.prototype,"_usePageTitleAsLocationName",void 0),od([ot()],sd.prototype,"toolbarEnabled",void 0),od([ot()],sd.prototype,"toolbarEnabledApiCalled",void 0),od([ot()],sd.prototype,"passwordProtected",void 0),od([ot()],sd.prototype,"isPasswordValid",void 0),od([ot()],sd.prototype,"password",void 0),od([ot()],sd.prototype,"validatingPasswordLoading",void 0),od([ot()],sd.prototype,"showPasswordProtectedModal",void 0),od([ot()],sd.prototype,"showInvalidPassword",void 0),od([ot()],sd.prototype,"skipGuestNameModal",void 0),od([ot()],sd.prototype,"_totalViews",void 0),od([ot()],sd.prototype,"totalViewsCount",void 0),od([ot()],sd.prototype,"inviteUrl",void 0),od([ot()],sd.prototype,"showModalOnceCommentIsModeIsOff",void 0),od([ot()],sd.prototype,"showInviteModal",void 0),od([ot()],sd.prototype,"featureAccess",void 0),od([ot()],sd.prototype,"hasAgentAccess",void 0),od([ot()],sd.prototype,"hasContentWarnings",void 0),od([ot()],sd.prototype,"contentWarningsCount",void 0),od([ot()],sd.prototype,"showContentWarningSidebar",void 0),od([ot()],sd.prototype,"agentGroups",void 0),od([ot()],sd.prototype,"spellingSuggestionPagePathMap",void 0),od([ot()],sd.prototype,"grammarSuggestionPagePathMap",void 0),(t=>{if(customElements.get("superflow-toolbar")||customElements.get("snippyly-plugin"))return;const e={allow:["sdkUrl","windowVariables","snippylyPlugin"],loaders:{windowVariables:()=>{const t=null===window||void 0===window?void 0:window.SUPERFLOW_TOOLBAR_API_KEY;return{valid:!!t,type:"windowVariables",apiKey:t,staging:!!(null===window||void 0===window?void 0:window.SUPERFLOW_TOOLBAR_STAGING),projectVersionKey:null===window||void 0===window?void 0:window.SUPERFLOW_TOOLBAR_PROJECT_VERSION_KEY,projectId:null===window||void 0===window?void 0:window.SUPERFLOW_TOOLBAR_PROJECT_ID,autoLocation:null===window||void 0===window?void 0:window.SUPERFLOW_TOOLBAR_AUTO_LOCATION,veltVersion:null===window||void 0===window?void 0:window.SUPERFLOW_TOOLBAR_VELT_VERSION}},snippylyPlugin:()=>{const t=document.querySelector("snippyly-plugin");if(!t)return;const e=t.getAttribute("apiKey"),i=!!t.getAttribute("staging"),n=t.getAttribute("projectVersionKey"),o=t.getAttribute("projectId"),s=t.getAttribute("autoLocation"),r=t.getAttribute("veltVersion");return null==t||t.remove(),{valid:!!e,type:"snippylyPlugin",apiKey:e,staging:i,projectVersionKey:n,projectId:o,autoLocation:s,veltVersion:r}},sdkUrl:()=>{const t=document.getElementById("superflowToolbarScript");if(!t)return;const e=null==t?void 0:t.src,i=new URL(e).searchParams,n=i.has("apiKey")?i.get("apiKey"):void 0;return{valid:!!n,type:"sdkUrl",apiKey:n,staging:void 0,projectVersionKey:void 0,projectId:i.has("projectId")?i.get("projectId"):void 0,autoLocation:i.has("autoLocation")?i.get("autoLocation"):void 0,veltVersion:i.has("veltVersion")?i.get("veltVersion"):void 0}}},load:()=>{for(let t=0;t<e.allow.length;t++){const i=e.allow[t],n=e.loaders[i]();if(n&&n.valid)return n}}},i=()=>{try{const i=e.load();if(customElements.define("superflow-toolbar",t),i&&i.valid){(()=>{try{document.querySelectorAll("superflow-toolbar").forEach((t=>{t.remove()})),document.querySelectorAll("snippyly-plugin").forEach((t=>{t.remove()}))}catch(t){console.warn("Error in removeSuperflowToolbarTag: ",t)}})();const t={};return t.apiKey=i.apiKey,i.staging&&(t.staging="true"),i.projectVersionKey&&(t.projectVersionKey=i.projectVersionKey),i.projectId&&(t.projectId=i.projectId),(null==i?void 0:i.autoLocation)&&(t.autoLocation=i.autoLocation),(null==i?void 0:i.veltVersion)&&(t.veltVersion=i.veltVersion),void((t={})=>{try{const e=document.createElement("superflow-toolbar");Object.keys(t||{}).forEach((i=>{e.setAttribute(i,t[i])})),document.body.appendChild(e)}catch(t){console.warn("Error in loadSuperflowToolbarTag: ",t)}})(t)}}catch(t){console.warn("Error in initSuperflow: ",t)}};(null===document||void 0===document?void 0:document.body)?i():null===document||void 0===document||document.addEventListener("DOMContentLoaded",(()=>{i()}))})(sd);class rd extends X{}customElements.get("snippyly-plugin")||customElements.define("snippyly-plugin",rd),t.SnippylyPlugin=rd,t.SuperflowToolbar=sd}({});
