{"version":3,"file":"almi.js","sources":["../../node_modules/@lit/reactive-element/css-tag.js","../../node_modules/@lit/reactive-element/reactive-element.js","../../node_modules/lit-html/lit-html.js","../../node_modules/lit-element/lit-element.js","../../src/components/desktop-menu/desktop-menu-modal.js","../../src/components/desktop-menu/desktop-menu.js","../../src/components/accordion-container/accordion-container.js","../../src/components/menu-button/menu-button.js","../../src/components/carousel/carousel.js","../../src/components/modal-container/modal-container.js","../../src/components/mobile-menu/mobile-menu.js","../../src/components/contextual-menu/contextual-menu.js","../../node_modules/lit-html/directive.js","../../node_modules/lit-html/directives/unsafe-html.js","../../src/components/highlight-text/highlight-text.js","../../src/components/filter-container/filter-container.js","../../src/components/list-container/list-container.js","../../src/components/paging-container/paging-container.js","../../src/components/large-dropdown/large-dropdown.js","../../src/components/filter-search-box/filter-search-box.js","../../src/components/search-result/search-result.js","../../src/components/form-container/form-container.js","../../src/components/contact-form-container/contact-form-container.js","../../src/components/dropdown-container/dropdown-container.js","../../src/components/conditional-field/conditional-field.js","../../src/components/radio-group/radio-group.js","../../src/components/form-steps/form-steps.js","../../src/components/popover-box/popover-box.js","../../src/foundation/icons/toggle-icon.js","../../src/foundation/icons/search-icon.js","../../src/foundation/icons/close-icon.js","../../src/foundation/icons/icon-base.js","../../src/foundation/icons/globe-icon.js","../../src/foundation/icons/user-icon.js","../../src/foundation/icons/arrow-right.js","../../src/foundation/icons/arrow-left.js","../../src/foundation/icons/facebook-icon.js","../../src/foundation/icons/linkedin-icon.js","../../src/foundation/icons/youtube-icon.js","../../src/foundation/icons/contact-icon.js","../../src/foundation/icons/send-icon.js","../../src/foundation/icons/handshake-icon.js","../../src/foundation/icons/buildings-icon.js","../../src/foundation/icons/presentation-icon.js","../../src/foundation/icons/mail-exclamation-icon.js","../../src/foundation/icons/whistle-icon.js","../../src/foundation/icons/briefcase-icon.js","../../src/foundation/icons/bank-icon.js","../../src/foundation/icons/chevron-icon.js","../../src/foundation/icons/arrow-square.js","../../src/foundation/icons/map-icon.js","../../src/foundation/icons/mail-icon.js","../../src/foundation/icons/wallet-icon.js","../../src/foundation/icons/calendar-icon.js","../../src/foundation/icons/deadline-icon.js","../../src/foundation/icons/play-icon.js","../../src/foundation/icons/phone-icon.js","../../src/foundation/icons/circle-exclamation-icon.js","../../src/foundation/icons/ghost-smile.js","../../src/foundation/icons/laptop-xmark.js","../../src/foundation/icons/questionmark-icon.js","../../src/patterns/form/form.js","../../src/global/datalayer-push.js","../../src/_styleguide/elements/nav-container.js","../../src/_styleguide/elements/almi-logotype.js","../../src/_styleguide/elements/component-canvas.js","../../node_modules/quicklink/dist/quicklink.mjs","../../src/main.js"],"sourcesContent":["/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>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.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,adoptStyles,css,getCompatibleStyle,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:r,getOwnPropertyNames:h,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){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}},f=(t,s)=>!i(t,s),y={attribute:!0,type:String,converter:u,reflect:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class b extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=y){if(s.state&&(s.attribute=!1),this._$Ei(),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),r=this.getPropertyDescriptor(t,i,s);void 0!==r&&e(this.prototype,t,r)}}static getPropertyDescriptor(t,s,i){const{get:e,set:h}=r(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get(){return e?.call(this)},set(s){const r=e?.call(this);h.call(this,s),this.requestUpdate(t,r,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??y}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...h(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$Eg=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$ES(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$E_??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$E_?.delete(t)}_$ES(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$E_?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$E_?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$EO(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const r=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==r?this.removeAttribute(e):this.setAttribute(e,r),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),r=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e,this[e]=r.fromAttribute(s,t.type),this._$Em=null}}requestUpdate(t,s,i,e=!1,r){if(void 0!==t){if(i??=this.constructor.getPropertyOptions(t),!(i.hasChanged??f)(e?r:this[t],s))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$Eg=this._$EP())}C(t,s,i){this._$AL.has(t)||this._$AL.set(t,s),!0===i.reflect&&this._$Em!==t&&(this._$Ej??=new Set).add(t)}async _$EP(){this.isUpdatePending=!0;try{await this._$Eg}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t)!0!==i.wrapped||this._$AL.has(s)||void 0===this[s]||this.C(s,this[s],i)}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$E_?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$ET()}catch(s){throw t=!1,this._$ET(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$E_?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$ET(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$Eg}shouldUpdate(t){return!0}update(t){this._$Ej&&=this._$Ej.forEach((t=>this._$EO(t,this[t]))),this._$ET()}updated(t){}firstUpdated(t){}}b.elementStyles=[],b.shadowRootOptions={mode:\"open\"},b[d(\"elementProperties\")]=new Map,b[d(\"finalized\")]=new Map,p?.({ReactiveElement:b}),(a.reactiveElementVersions??=[]).push(\"2.0.2\");export{b as ReactiveElement,u as defaultConverter,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t.trustedTypes,s=i?i.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,e=\"$lit$\",h=`lit$${(Math.random()+\"\").slice(9)}$`,o=\"?\"+h,n=`<${o}>`,r=document,l=()=>r.createComment(\"\"),c=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,a=Array.isArray,u=t=>a(t)||\"function\"==typeof t?.[Symbol.iterator],d=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,v=/-->/g,_=/>/g,m=RegExp(`>|${d}(?:([^\\\\s\"'>=/]+)(${d}*=${d}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),p=/'/g,g=/\"/g,$=/^(?:script|style|textarea|title)$/i,y=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=y(1),b=y(2),w=Symbol.for(\"lit-noChange\"),T=Symbol.for(\"lit-nothing\"),A=new WeakMap,E=r.createTreeWalker(r,129);function C(t,i){if(!Array.isArray(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==s?s.createHTML(i):i}const P=(t,i)=>{const s=t.length-1,o=[];let r,l=2===i?\"\":\"\",c=f;for(let i=0;i\"===u[0]?(c=r??f,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?m:'\"'===u[3]?g:p):c===g||c===p?c=m:c===v||c===_?c=f:(c=m,r=void 0);const x=c===m&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===f?s+n:d>=0?(o.push(a),s.slice(0,d)+e+s.slice(d)+h+x):s+h+(-2===d?i:x)}return[C(t,l+(t[s]||\"\")+(2===i?\"\":\"\")),o]};class V{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let c=0,a=0;const u=t.length-1,d=this.parts,[f,v]=P(t,s);if(this.el=V.createElement(f,n),E.currentNode=this.el.content,2===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=E.nextNode())&&d.length0){r.textContent=i?i.emptyScript:\"\";for(let i=0;i2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=T}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=N(this,t,i,0),o=!c(t)||t!==this._$AH&&t!==w,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new M(i.insertBefore(l(),t),t,void 0,s??{})}return h._$AI(t),h};export{z as _$LH,x as html,w as noChange,T as nothing,j as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as i}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class s extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const i=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(i,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return i}}s._$litElement$=!0,s[(\"finalized\",\"finalized\")]=!0,globalThis.litElementHydrateSupport?.({LitElement:s});const r=globalThis.litElementPolyfillSupport;r?.({LitElement:s});const o={_$AK:(t,e,i)=>{t._$AK(e,i)},_$AL:t=>t._$AL};(globalThis.litElementVersions??=[]).push(\"4.0.2\");export{s as LitElement,o as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","import { LitElement, html, css } from 'lit'\n\nclass Modal extends LitElement {\n static styles = css`\n :host([open]) {\n display: flex;\n justify-content: center;\n position: absolute;\n inset: var(--overlay-offset, 91px) 0 0 0;\n z-index: 1001;\n }\n dialog {\n display: block;\n background: none;\n border: none;\n padding: 0;\n margin: 0;\n box-sizing: border-box;\n position: static;\n width: 100%;\n background: #fff;\n z-index: 1002;\n }\n .inner {\n margin-left: auto;\n margin-right: auto;\n max-width: var(--site-max-w);\n width: 100%;\n padding: 0 var(--site-padding-x);\n box-sizing: content-box;\n position: relative;\n }\n button {\n position: absolute;\n right: -1rem;\n top: 1.1rem;\n width: 2rem;\n height: 2rem;\n border-radius:1rem;\n appearance: none;\n border: none;\n background: none;\n transition: background 150ms ease-in-out;\n cursor: pointer;\n display: flex;\n padding:0;\n align-items: center;\n justify-content: center;\n color: var(--overlay-close-color, #000);\n --icon-width: 1rem;\n --icon-stroke-width: 2.5;\n --icon-offset: 1px;\n }\n button:hover {\n background:hsl(var(--theme-40));\n }\n `\n static properties = {\n open: { type: Boolean, reflect: true },\n }\n constructor() {\n super()\n this.handleEscPress = this.handleEscPress.bind(this)\n this.handleTriggerClick = this.handleTriggerClick.bind(this)\n // this.handleTriggerKeyDown = this.handleTriggerKeyDown.bind(this)\n this.closeDialog = this.closeDialog.bind(this)\n this._trigger = document.querySelector(\n `[data-controls=\"${this.getAttribute('id')}\"]`\n )\n this._menuContainer = document.querySelector('desktop-menu')\n this.initTrigger()\n }\n updated(changedProperties) {\n if (changedProperties.has('open')) {\n if (this.open) {\n this.initDialog()\n }\n }\n }\n initTrigger() {\n this._trigger.setAttribute('aria-controls', this.getAttribute('id'))\n this._trigger.setAttribute('aria-haspopup', 'true')\n this._trigger.setAttribute('aria-expanded', 'false')\n\n this._trigger.addEventListener('click', this.handleTriggerClick.bind(this))\n\n if (this._trigger.tagName.toLowerCase() !== 'button') {\n this._trigger.setAttribute('role', 'button')\n // this.setTriggerKeydownEvents()\n }\n }\n // setTriggerKeydownEvents() {\n // this._trigger.addEventListener('focus', (e) => {\n // window.addEventListener('keydown', this.handleTriggerKeyDown)\n // })\n // this._trigger.addEventListener('blur', (e) => {\n // window.removeEventListener('keydown', this.handleTriggerKeyDown)\n // })\n // }\n\n initDialog() {\n this.open = true\n this._trigger.setAttribute('aria-expanded', 'true')\n this.dispatchEvent(new CustomEvent('modal-opening', { bubbles: true }))\n setTimeout(() => {\n document.addEventListener('click', this.closeDialog)\n window.addEventListener('keyup', this.handleEscPress)\n this.dispatchEvent(new CustomEvent('modal-opened', { bubbles: true }))\n })\n }\n closed() {\n document.removeEventListener('click', this.closeDialog)\n window.removeEventListener('keyup', this.handleEscPress)\n this.dispatchEvent(new CustomEvent('modal-closed', { bubbles: true }))\n }\n closeDialog() {\n this._trigger.setAttribute('aria-expanded', 'false')\n this.dispatchEvent(new CustomEvent('modal-closing', { bubbles: true }))\n setTimeout(\n () => {\n this.closed()\n this.open = false\n },\n this._menuContainer.state !== 'open' ? 500 : 0\n )\n }\n handleTriggerClick(e) {\n e.preventDefault()\n this.open ? this.closeDialog() : (this.open = true)\n }\n // handleTriggerKeyDown(e) {\n // if (e.key === ' ' || e.key === 'Spacebar') {\n // e.preventDefault()\n // e.target.click()\n // }\n // }\n handleEscPress(e) {\n if (e.key === 'Escape') {\n this.closeDialog()\n }\n }\n render() {\n if (!this.open) return\n\n return html`\n e.stopPropagation()}\">\n
\n \n \n \n \n
\n
\n `\n }\n}\ncustomElements.define('desktop-menu-modal', Modal)\n","import { LitElement, html, css } from 'lit'\n\n//Handles menu state and animated border indicating selected menu item.\n//Opening and closing of the menu is handled by the indivdual modal components.\nclass DesktopMenu extends LitElement {\n static styles = css`\n :host {\n display: block;\n }\n\n .border {\n display: block;\n height: 3px;\n background: hsl(var(--theme-200));\n width: 0;\n position: absolute;\n left: 0;\n bottom: -3px;\n z-index: 1004;\n opacity: 0;\n }\n\n .border--init {\n transition: all 300ms ease-in-out;\n }\n\n .border--visible {\n opacity: 1;\n }\n `\n static properties = {\n state: { type: String, reflect: true },\n }\n\n constructor() {\n super()\n this.state = 'closed'\n \n }\n \n resetBorderPosition() {\n if (this.state === 'open') {\n this._border.style.width = this.querySelector('[aria-expanded=\"true\"]').offsetWidth + 'px'\n this._border.style.left = this.querySelector('[aria-expanded=\"true\"]').offsetLeft + 'px'\n }\n }\n\n render() {\n return html`\n \n \n `\n }\n\n firstUpdated() {\n this._border = this.shadowRoot.querySelector('.border')\n\n this.addEventListener('modal-opening', (e) => {\n if (this.state === 'closed') {\n this.state = 'opening'\n }\n })\n this.addEventListener('modal-closing', (e) => {\n if (!this.querySelector('[aria-expanded=\"true\"]')) {\n this.state = 'closing'\n this._border.classList.remove('border--visible')\n }\n })\n this.addEventListener('modal-opened', (e) => {\n this.state = 'open'\n window.addEventListener('resize', this.resetBorderPosition.bind(this))\n document.querySelector('.main').setAttribute('inert', '')\n document.querySelector('.footer').setAttribute('inert', '')\n })\n this.addEventListener('modal-closed', (e) => {\n if (!this.querySelector('[aria-expanded=\"true\"]')) {\n this.state = 'closed'\n this._border.classList.remove('border--init')\n this._border.style.width = 0\n this._border.style.left = 0\n window.removeEventListener('resize', this.resetBorderPosition.bind(this))\n document.querySelector('.main').removeAttribute('inert', '')\n document.querySelector('.footer').removeAttribute('inert', '')\n }\n })\n //Create observer that checks when aria-expanded is set to true on the trigger\n const observer = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n if (mutation.type === 'attributes') {\n if (mutation.attributeName === 'aria-expanded') {\n if (mutation.target.getAttribute('aria-expanded') === 'true') {\n setTimeout(() => {\n this._border.style.width = mutation.target.offsetWidth + 'px'\n this._border.style.left = mutation.target.offsetLeft + 'px'\n })\n }\n if (this.state === 'open' || this.state === 'opening') {\n this._border.classList.add('border--visible')\n }\n if (this.state === 'open') {\n this._border.classList.add('border--init')\n } else {\n this._border.classList.remove('border--init')\n }\n }\n }\n })\n })\n //Start observing the trigger\n const triggers = this.querySelectorAll('[aria-controls]')\n triggers.forEach((trigger) => {\n observer.observe(trigger, {\n attributes: true,\n })\n })\n }\n connectedCallback() {\n super.connectedCallback()\n this.currentPage()\n this.triggers = this.querySelectorAll('[aria-controls]')\n this.triggers.forEach((trigger) => {\n trigger.addEventListener('click', () => {\n this.setPositionHeader()\n })\n })\n window.addEventListener('resize', this.setPositionHeader)\n }\n\n setPositionHeader = () => {\n const zoom = ((window.outerWidth - 10) / window.innerWidth) * 100 > 150\n const header = document.querySelector('.header')\n if (this.querySelector('[aria-expanded=\"true\"]') !== null && zoom) {\n header.style.position = 'relative'\n } else {\n header.style.position = 'sticky'\n }\n }\n\n currentPage = () => {\n const currentNav = document.querySelectorAll(`[data-current-nav]`)\n const query = window.location.pathname.split('/')[1]\n\n for (const nav of currentNav) {\n const href = nav.getAttribute('href').replace(/\\//g, '')\n if (href === query) {\n nav.setAttribute('data-current-nav', 'true')\n } else {\n nav.setAttribute('data-current-nav', 'false')\n }\n }\n }\n }\n\n customElements.define('desktop-menu', DesktopMenu)\n","import { LitElement, html, css } from 'lit'\n\nclass Accordion extends LitElement {\n static styles = css`\n :host {\n display: block;\n border-top: 1px solid var(--accordion-border-color, hsl(var(--theme-200)));\n }\n `\n render() {\n return html`\n
\n \n
\n `\n }\n}\ncustomElements.define('accordion-container', Accordion)\n\nclass AccordionItem extends LitElement {\n static properties = {\n open: { reflect: true, type: Boolean },\n }\n\n static styles = css`\n :host {\n display: block;\n border-bottom: 1px solid var(--accordion-border-color, hsl(var(--theme-200)));\n }\n :host button:focus-visible {\n outline: var(--outline);\n outline-offset: var(--outline-offset);\n border-radius: var(--outline-radius);\n }\n :host([open]) {\n }\n :host([open]) button {\n color: hsl(var(--theme-400));\n }\n close-icon {\n --icon-stroke-color: hsl(var(--gray-700));\n --icon-stroke-width: 2;\n }\n button {\n font: var(--base);\n color: hsla(var(--text-color-dark));\n text-align: left;\n appearance: none;\n background: transparent;\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0;\n border: none;\n cursor: pointer;\n gap:var(--gutter);\n padding: var(--spacing-6) 0;\n transition: all 150ms ease-in-out;\n font-weight: 300;\n }\n button:hover {\n color: hsl(var(--theme-400));\n -webkit-text-stroke: .6px currentColor;\n }\n :host([open]) button {\n color: hsl(var(--theme-400));\n -webkit-text-stroke: .6px currentColor;\n }\n :host([open]) .accordion-item__list__item {\n height: auto;\n max-width: 500px;\n margin: 0 0 var(--spacing-6);\n color: hsl(var(--gray-3));\n text-align: left;\n font: var(--base);\n }\n .accordion-item__list__item {\n height: 0;\n overflow: hidden;\n }\n @media (max-width: 430px) { \n :host(:first-child) {\n border-top: none;\n }\n }\n `\n constructor() {\n super()\n this._regionId = String(Date.now()) + Math.floor(Math.random() * 10000)\n this._labelId = String(Date.now()) + Math.floor(Math.random() * 10000)\n }\n toggle() {\n // this._notChosenItems = Array.from(\n // document.querySelectorAll('accordion-item')\n // ).filter((item) => item !== this)\n\n const wasOpen = this.open\n this.open = !this.open\n\n if (wasOpen) {\n this.button.setAttribute('aria-expanded', 'false')\n \n } else {\n this.button.setAttribute('aria-expanded', 'true')\n \n // this._notChosenItems.forEach((accordionItem) => {\n // if (accordionItem.open) {\n // accordionItem.open = false\n // accordionItem.button.setAttribute('aria-expanded', 'false')\n // }\n // })\n }\n }\n \n // updated(changedProperties) {\n // if (changedProperties.has('open')) {\n // if (!this.open) {\n // this.querySelector('highlight-text').setAttribute('hover', 'hover')\n // } else {\n // this.querySelector('highlight-text').removeAttribute('hover')\n // }\n // }\n // }\n\n get button() {\n return this.shadowRoot.querySelector('button')\n }\n render() {\n return html`\n
\n this.toggle()}\"\n aria-expanded=\"${this.open ? 'true' : 'false'}\"\n aria-controls=\"${this._regionId}\"\n >\n \n \n \n \n \n
\n \n `\n }\n}\n\ncustomElements.define('accordion-item', AccordionItem)\n","import { LitElement, html, css } from 'lit'\n\nclass MenuButton extends LitElement {\n static styles = css`\n :host {\n display: flex;\n position: relative;\n }\n :host([aria-expanded='true']) .line:before {\n transform: rotate(45deg);\n top: auto;\n border-radius: 1px;\n }\n :host([aria-expanded='true']) .line:after {\n transform: rotate(-45deg);\n bottom: auto;\n border-radius: 1px;\n }\n :host([aria-expanded='true']) .line {\n height: 0;\n }\n :host([aria-expanded='true']) .label.open {\n display: none;\n }\n :host([aria-expanded='false']) .label.close {\n display: none;\n }\n button {\n appearance: none;\n padding: 0;\n border: none;\n background: transparent;\n width: 100%;\n cursor: pointer;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n padding: 0 0.5em;\n position: relative;\n right: -0.5em;\n transition: background 150ms ease-in-out;\n color: hsl(var(--text-color-dark));\n }\n button:focus-visible {\n outline: var(--outline);\n outline-offset: 0;\n outline-color: var(--focus-color);\n border-radius: 4px;\n }\n button:hover {\n background: hsl(var(--gray-40));\n border-radius: 4px;\n }\n .icon {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n height: 2rem;\n width: 2rem;\n position: relative;\n }\n .line {\n display: block;\n background: hsl(var(--text-color-dark));\n height: 2px;\n width: 14px;\n margin: 0 4px;\n transition: width 100ms ease-in-out;\n }\n .line:before,\n .line:after {\n content: '';\n width: auto;\n display: block;\n background: hsl(var(--text-color-dark));\n height: 2px;\n position: absolute;\n right: 4px;\n left: 4px;\n }\n .line:before {\n top: 7px;\n }\n .line:after {\n bottom: 7px;\n }\n .label {\n font-size: var(--xs);\n font-family: var(--base-font);\n position: relative;\n }\n button:hover .line {\n width: 100%;\n }\n `\n\n constructor() {\n super()\n }\n\n render() {\n return html`\n \n `\n }\n}\ncustomElements.define('menu-button', MenuButton)\n","import { LitElement, html, css } from 'lit'\n\nclass Carousel extends LitElement {\n static styles = css`\n :host {\n display: block;\n position: relative;\n }\n\n .outer {\n overflow-x: auto;\n scrollbar-width: none;\n scroll-snap-type: x mandatory;\n margin-left: calc(var(--gutter) * -1);\n width: calc(100% + var(--gutter) * 2);\n }\n\n .outer::-webkit-scrollbar {\n -webkit-appearance: none;\n width: 0;\n height: 0;\n }\n\n .inner {\n display: flex;\n }\n\n .slider-container {\n width: 40%;\n height: 0;\n border-bottom: 1px dashed hsl(var(--gray-6));\n position: relative;\n margin: 2rem auto 0;\n }\n\n .slider {\n width: 50%;\n height: 0;\n border-bottom: 1px solid hsl(var(--gray-5));\n position: absolute;\n top: 0;\n }\n\n button {\n cursor: pointer;\n position: absolute;\n display: flex;\n background-color: hsl(var(--gray-200));\n flex-direction: column;\n align-items: center;\n justify-content: center;\n border: none;\n width: 32px;\n height: 32px;\n border-radius: 100%;\n --icon-width: var(--spacing-6);\n --icon-height: var(--spacing-6);\n --icon-stroke-width: 2;\n --icon-offset: 0;\n }\n\n button:focus-visible {\n outline: var(--outline);\n outline-offset: 3px;\n }\n\n button:hover {\n background-color: hsl(var(--gray-150));\n }\n\n button:active {\n background-color: hsl(var(--gray-9));\n }\n\n button[disabled],\n button[disabled]:hover {\n cursor: auto;\n background: transparent;\n }\n\n button.prev {\n bottom: 50%;\n left: -60px;\n }\n\n button.next {\n bottom: 50%;\n right: -60px;\n }\n\n button span {\n clip: rect(0 0 0 0);\n clip-path: inset(50%);\n height: 1px;\n overflow: hidden;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n }\n\n :host(:not([navigation])) .slider-container,\n :host(:not([navigation])) .prev,\n :host(:not([navigation])) .next {\n display: none;\n }\n\n @media (max-width: 1262px) {\n button {\n --icon-stroke-width: 1;\n }\n\n button.prev {\n bottom: -15px;\n left: calc(30% - 32px - var(--spacing-6));\n }\n\n button.next {\n bottom: -15px;\n right: calc(30% - 32px - var(--spacing-6));\n }\n }\n `\n\n static properties = {\n visibleCount: { type: Number },\n leftDisabled: { type: Boolean },\n rightDisabled: { type: Boolean },\n positionPercentage: { type: Number },\n sliderWidth: { type: Number },\n nextLabel: { type: String },\n previousLabel: { type: String },\n navigation: { type: Boolean, reflect: true },\n }\n\n constructor() {\n super()\n this.leftDisabled = true\n this.rightDisabled = false\n this.nextLabel = 'Show next item'\n this.previousLabel = 'Show previous item'\n this.itemWidth = 0\n this.classList.remove('grid')\n this.classList.remove('grid--md')\n this.items = this.querySelectorAll('carousel-item')\n this.gap = 0\n this.offset = 0\n this.navigation = true\n setTimeout(() => this.init())\n window.addEventListener('resize', () => this.init())\n }\n\n firstUpdated(_changedProperties) {\n this.slider = this.shadowRoot.querySelector('.slider')\n }\n\n init() {\n const parentWidth = this.clientWidth\n const visibleCount = this.getVisibleCount(parentWidth)\n this.gap = this.convertRemToPixels(\n getComputedStyle(document.body).getPropertyValue('--gutter')\n )\n this.itemWidth =\n (parentWidth - this.gap * (visibleCount - 1)) / visibleCount\n this.items.forEach((item) => {\n item.style.minWidth = this.itemWidth + 'px'\n item.style.maxWidth = this.itemWidth + 'px'\n })\n\n //Set slider\n const outer = this.shadowRoot.querySelector('.outer')\n this.sliderWidth = (outer.clientWidth / outer.scrollWidth) * 100\n\n this.navigation = this.items.length > visibleCount\n \n this.shadowRoot.querySelector('.outer').scroll({\n top: 0,\n left: 0\n })\n }\n\n getVisibleCount(availableWidth) {\n if (availableWidth <= 360) return 1.1 // Hint next item on screen\n else if (availableWidth < 500) return 1.2\n else if (availableWidth < 768) return 2\n else return 3\n }\n\n handleScroll(e) {\n this.offset = e.target.scrollLeft\n const outer = this.shadowRoot.querySelector('.outer')\n\n this.leftDisabled = this.offset === 0\n this.rightDisabled = this.offset === outer.scrollWidth - outer.clientWidth\n\n // Update slider position\n this.slider.style.left = `${(this.offset / outer.scrollWidth) * 100}%`\n this.slider.style.width = `${this.sliderWidth}%`\n }\n\n move(direction) {\n let move = 0\n if (direction === 'left' && this.offset > 0) {\n move = -(this.itemWidth + this.gap)\n } else if (direction === 'right') {\n move = this.itemWidth + this.gap\n }\n\n this.shadowRoot.querySelector('.outer').scroll({\n top: 0,\n left: this.offset + move,\n behavior: 'smooth',\n })\n }\n\n render() {\n return html`\n this.move('left')}\"\n >\n ${this.previousLabel}\n \n \n
\n
\n \n
\n
\n this.move('right')}\"\n >\n ${this.nextLabel}\n \n \n
\n
\n
\n `\n }\n\n convertRemToPixels(rem) {\n return (\n parseFloat(rem) *\n parseFloat(getComputedStyle(document.documentElement).fontSize)\n )\n }\n}\n\ncustomElements.define('carousel-container', Carousel)\n\nclass CarouselItem extends LitElement {\n static styles = css`\n :host {\n display: block;\n box-sizing: content-box !important;\n scroll-snap-align: start;\n padding-left: var(--gutter) !important;\n }\n\n :host(:last-child) {\n padding-right: var(--gutter) !important;\n }\n `\n\n render() {\n return html` `\n }\n}\n\ncustomElements.define('carousel-item', CarouselItem)\n","import { LitElement, html, css } from 'lit'\n\nclass Modal extends LitElement {\n static styles = css`\n :host([open]) {\n display: flex;\n justify-content: center;\n align-items: center;\n position: fixed;\n inset: 0;\n z-index: 99;\n }\n :host([open]):before {\n content: '';\n display: block;\n inset: 0;\n position: fixed;\n background: rgba(0, 0, 0, 0.7);\n opacity: 1;\n transition: opacity 500ms ease;\n }\n :host(.opening):before,\n :host(.closing):before {\n opacity: 0;\n }\n dialog {\n display: block;\n background: none;\n border: none;\n padding: 0;\n margin: 0;\n position: static;\n min-height: 600px;\n width: 100%;\n max-width: 1080px;\n background: #fff;\n z-index: 100;\n opacity: 1;\n transform: translateY(0);\n transition: opacity 200ms ease, transform 200ms ease;\n }\n :host(.opening) dialog,\n :host(.closing) dialog {\n opacity: 0;\n transform: translateY(50px);\n }\n button {\n position: absolute;\n right: 20px;\n top: -75px;\n appearance: none;\n border: none;\n background: none;\n cursor: pointer;\n display: flex;\n gap: 10px;\n align-items: center;\n color: #fff;\n }\n close-icon {\n --icon-width: 2rem;\n }\n `\n static properties = {\n open: { type: Boolean, reflect: true },\n }\n constructor() {\n super()\n this.handleEscPress = this.handleEscPress.bind(this)\n this.handleTriggerClick = this.handleTriggerClick.bind(this)\n this.closeDialog = this.closeDialog.bind(this)\n\n this._trigger = document.querySelector(\n `[data-controls=\"${this.getAttribute('id')}\"]`\n )\n this.initTrigger()\n document.body.prepend(this)\n }\n updated(changedProperties) {\n if (changedProperties.has('open')) {\n if (this.open) {\n this.initDialog()\n }\n }\n }\n initTrigger() {\n this._trigger.setAttribute('aria-controls', this.getAttribute('id'))\n this._trigger.setAttribute('aria-haspopup', 'true')\n this._trigger.setAttribute('aria-expanded', 'false')\n\n this._trigger.addEventListener('click', this.handleTriggerClick.bind(this))\n\n if (this._trigger.tagName.toLowerCase() !== 'button') {\n this._trigger.setAttribute('role', 'button')\n this.setTriggerKeydownEvents()\n }\n }\n\n setTriggerKeydownEvents() {\n console.log('setTriggerKeydownEvents')\n this._trigger.addEventListener('focus', (e) => {\n window.addEventListener('keydown', this.handleTriggerKeyDown)\n })\n this._trigger.addEventListener('blur', (e) => {\n window.removeEventListener('keydown', this.handleTriggerKeyDown)\n })\n }\n\n initDialog() {\n this.open = true\n this._trigger.setAttribute('aria-expanded', 'true')\n this.classList.add('opening')\n document.querySelector('.page').setAttribute('inert', '')\n setTimeout(() => {\n this.classList.remove('opening')\n this.querySelector('input')?.focus()\n document.addEventListener('click', this.closeDialog)\n window.addEventListener('keyup', this.handleEscPress)\n document.dispatchEvent(new CustomEvent('modal-opened'))\n }, 50)\n }\n closed() {\n document.querySelector('.page').removeAttribute('inert', '')\n document.removeEventListener('click', this.closeDialog)\n window.removeEventListener('keyup', this.handleEscPress)\n this.classList.remove('closing')\n this.dispatchEvent(new CustomEvent('modal-closed'))\n this._trigger.focus()\n }\n closeDialog() {\n this.stopVideo()\n this._trigger.setAttribute('aria-expanded', 'false')\n this.classList.add('closing')\n this.dispatchEvent(new CustomEvent('modal-closing'))\n setTimeout(() => {\n this.closed()\n this.open = false\n }, 500)\n }\n stopVideo() {\n const iframe = this.querySelector('iframe')\n if (iframe) {\n const src = iframe.src\n iframe.src = src\n }\n const video = this.querySelector('video')\n if (video) {\n video.pause()\n }\n }\n handleTriggerClick(e) {\n e.preventDefault()\n this.open ? (this.open = false) : (this.open = true)\n }\n handleTriggerKeyDown(e) {\n if (e.key === ' ' || e.key === 'Spacebar') {\n e.preventDefault()\n e.target.click()\n }\n }\n handleEscPress(e) {\n if (e.key === 'Escape') {\n this.closeDialog()\n }\n }\n render() {\n if (!this.open) return\n\n return html`\n e.stopPropagation()}\">\n \n \n \n \n \n `\n }\n}\ncustomElements.define('modal-container', Modal)\n","import { LitElement, html, css } from 'lit'\n\nclass MobileMenu extends LitElement {\n static styles = css`\n :host {\n display: flex;\n justify-content: center;\n align-items: center;\n position: fixed;\n inset: 68px 0 0 0;\n z-index: 99;\n }\n :host([state='closed']) {\n display: none;\n }\n dialog {\n display: block;\n background: none;\n border: none;\n padding: 0;\n margin: 0;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n background: #fff;\n z-index: 100;\n opacity: 1;\n transform: translateY(0);\n transition: opacity 150ms ease, transform 150ms ease;\n }\n :host([state='opening']) dialog,\n :host([state='closing']) dialog {\n opacity: 0;\n transform: translateY(10px);\n }\n `\n static properties = {\n state: { type: String, reflect: true },\n }\n constructor() {\n super()\n this.state = 'closed'\n this.handleEscPress = this.handleEscPress.bind(this)\n this.handleTriggerClick = this.handleTriggerClick.bind(this)\n this.checkForScroll = this.checkForScroll.bind(this)\n this.closeDialog = this.closeDialog.bind(this)\n this._trigger = document.querySelector(\n `[aria-controls=\"${this.getAttribute('id')}\"]`\n )\n this.initTrigger()\n document.body.prepend(this)\n }\n firstUpdated() {\n if (this.state === 'open') {\n this.initDialog()\n }\n }\n updated(changedProperties) {\n if (changedProperties.has('state')) {\n if (this.state === 'open') {\n this.initDialog()\n }\n if (this.state === 'closed') {\n this.closeDialog()\n }\n }\n }\n initTrigger() {\n this._trigger.setAttribute('aria-haspopup', 'true')\n this._trigger.setAttribute('aria-expanded', 'false')\n this._trigger.addEventListener('click', this.handleTriggerClick)\n }\n initDialog() {\n this._trigger.setAttribute('aria-expanded', 'true')\n document.querySelector('.main').setAttribute('inert', '')\n document.querySelector('.footer').setAttribute('inert', '')\n setTimeout(() => {\n this.state = 'open'\n this.querySelector('input')?.focus()\n document.addEventListener('click', this.closeDialog)\n window.addEventListener('keyup', this.handleEscPress)\n document.dispatchEvent(new CustomEvent('modal-opened'))\n }, 50)\n\n this.checkForScroll()\n this.addEventListener('menu-item-toggled', this.checkForScroll)\n window.addEventListener('resize', this.checkForScroll)\n\n document.documentElement.style.overscrollBehavior = 'none'\n }\n checkForScroll(e) {\n const inner = this.querySelector('.mobile-nav__inner')\n if (inner.scrollHeight - 116 > inner.clientHeight) {\n inner.classList.add('mobile-nav__inner--shadow')\n } else {\n inner.classList.remove('mobile-nav__inner--shadow')\n }\n }\n closed() {\n document.querySelector('.main').removeAttribute('inert', '')\n document.querySelector('.footer').removeAttribute('inert', '')\n document.documentElement.style.removeProperty('overscroll-behavior')\n document.removeEventListener('click', this.closeDialog)\n window.removeEventListener('keyup', this.handleEscPress)\n window.removeEventListener('resize', this.checkForScroll)\n this.removeEventListener('menu-item-toggled', this.checkForScroll)\n this.dispatchEvent(new CustomEvent('modal-closed'))\n this._trigger.focus()\n }\n closeDialog() {\n this._trigger.setAttribute('aria-expanded', 'false')\n this.dispatchEvent(new CustomEvent('modal-closing'))\n setTimeout(() => {\n this.closed()\n this.state = 'closed'\n }, 150)\n }\n handleTriggerClick(e) {\n e.preventDefault()\n if (this.state === 'open') {\n this.state = 'closing'\n this.closeDialog()\n } else {\n this.state = 'opening'\n this.initDialog()\n }\n }\n handleEscPress(e) {\n if (e.key === 'Escape') {\n this.closeDialog()\n }\n }\n render() {\n if (this.state === 'closed') return\n\n return html`\n e.stopPropagation()}\">\n \n \n `\n }\n}\ncustomElements.define('mobile-menu', MobileMenu)\n\nclass MobileMenuItem extends LitElement {\n static styles = css`\n :host {\n display: block;\n }\n div {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 1em;\n }\n button {\n background: none;\n border: none;\n padding: 1em;\n cursor: pointer;\n appearance: none;\n }\n button:focus-visible {\n outline: var(--outline);\n outline-offset: 0;\n outline-color: var(--focus-color);\n border-radius: 100px;\n }\n `\n static properties = {\n expanded: { type: Boolean, reflect: true },\n }\n firstUpdated() {\n this._toggleButton = this.shadowRoot.querySelector('button')\n if (this._toggleButton) {\n this._toggleButton.setAttribute('aria-expanded', 'false')\n this._id = Math.random().toString(36).substring(2, 15)\n this._toggleButton.setAttribute('aria-controls', this._id)\n }\n }\n updated(changedProperties) {\n if (changedProperties.has('expanded')) {\n if (this._toggleButton) {\n this._toggleButton.setAttribute('aria-expanded', this.expanded)\n this.dispatchEvent(\n new CustomEvent('menu-item-toggled', {\n detail: this.expanded,\n bubbles: true,\n })\n )\n }\n }\n }\n render() {\n let children = this.expanded\n ? html``\n : ''\n let toggleButton = this.querySelector('ul')\n ? html`\n \n `\n : ''\n return html`\n
\n \n ${toggleButton}\n
\n ${children}\n `\n }\n toggleChildren() {\n this.expanded = !this.expanded\n }\n}\ncustomElements.define('mobile-menu-item', MobileMenuItem)\n","import { LitElement, html, css } from 'lit'\n\nclass ContextualMenu extends LitElement {\n static styles = css`\n :host {\n display: block;\n }\n `\n static properties = {}\n\n constructor() {\n super()\n this._selectedItem = null\n this._wait = false\n this._observer = null\n\n window.addEventListener('resize', this.handleResize.bind(this))\n\n }\n\n handleResize() {\n this._observer?.disconnect()\n this.initScrollSpyObserver()\n }\n\n firstUpdated() {\n\n this.initScrollSpyObserver()\n\n this.addEventListener('contextual-menu-item-selected', (e) => {\n this.setSelectedItem(e.detail)\n //Hack to not update while scrolling when the user clicks on a menu item\n this._wait = true\n setTimeout(() => {\n this._wait = false\n }, 800)\n })\n\n this._items = this.querySelectorAll('contextual-menu-item')\n }\n\n initScrollSpyObserver() {\n const settings = {\n root: null,\n rootMargin: `-177px 0px -${window.innerHeight - 177}px 0px`,\n threshold: 0,\n }\n let observer = new IntersectionObserver((entries, observer) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n if (this._wait) return\n\n const divider = this.getPreviousDivider(entry.target)\n const id = divider?.querySelector('h2').id\n if (!id) {\n\n window.history.replaceState(\n null,\n null,\n window.location.pathname + window.location.search,\n )\n } else {\n console.log('intersecting', entry.target)\n window.history.replaceState(\n null,\n null,\n `${window.location.pathname + window.location.search}#${id}`,\n )\n }\n this.setSelectedItem(id)\n }\n })\n }, settings)\n\n let dividers = document.querySelectorAll('main > *')\n\n dividers.forEach(function(divider) {\n observer.observe(divider)\n })\n\n this._observer = observer\n }\n\n getPreviousDivider = function(elem) {\n if (elem.matches('.divider')) return elem\n let sibling = elem.previousElementSibling\n while (sibling) {\n if (sibling.matches('.divider')) return sibling\n sibling = sibling.previousElementSibling\n }\n }\n\n setSelectedItem(id) {\n let hasSelected = false\n this._items.forEach((item, i) => {\n if (item.dataset.id === id) {\n hasSelected = true\n item.setAttribute('selected', '')\n this.querySelector('contextual-menu-track').scrollTo({\n left: item.offsetLeft - ((window.innerWidth / 2) - (item.offsetWidth / 2)),\n behavior: 'smooth',\n })\n } else {\n item.removeAttribute('selected')\n }\n })\n if (!hasSelected) {\n this.querySelector('contextual-menu-track').scrollTo({\n left: 0,\n behavior: 'smooth',\n })\n }\n }\n\n render() {\n return html`\n `\n }\n}\n\ncustomElements.define('contextual-menu', ContextualMenu)\n\nclass ContextualMenuItem extends LitElement {\n static styles = css``\n static properties = {\n selected: { type: Boolean, reflect: true },\n }\n\n constructor() {\n super()\n this.handleAnchorClick = this.handleAnchorClick.bind(this)\n this._anchor = this.querySelector('a')\n this._anchor.addEventListener('click', (e) => this.handleAnchorClick(e))\n }\n\n handleAnchorClick(e) {\n e.preventDefault()\n const id = e.currentTarget.href.split('#')[1]\n const targetDivider = document.getElementById(id).closest('.divider')\n const parent = this.closest('contextual-menu')\n let scrollOffset = parent.offsetHeight\n\n if (window.innerWidth > 1100) {\n scrollOffset += document.querySelector('.header').offsetHeight\n } else {\n scrollOffset += document.querySelector('.header-mobile').offsetHeight\n }\n\n window.scrollTo({\n behavior: 'smooth',\n top:\n targetDivider.offsetTop - scrollOffset,\n })\n window.history.replaceState(null, null, `#${id}`)\n this.dispatchEvent(\n new CustomEvent('contextual-menu-item-selected', {\n detail: id,\n bubbles: true,\n }),\n )\n }\n\n render() {\n return html`\n `\n }\n}\n\ncustomElements.define('contextual-menu-item', ContextualMenuItem)\n\nclass ContextualMenuToggle extends LitElement {\n static styles = css`\n button {\n }\n `\n static properties = {\n isMobile: { type: Boolean },\n }\n\n constructor() {\n super()\n window.addEventListener('resize', () => {\n this.isMobile = window.matchMedia('(max-width: 1100px)').matches\n })\n }\n\n firstUpdated() {\n this.isMobile = window.matchMedia('(max-width: 1100px)').matches\n }\n\n render() {\n if (this.isMobile) {\n return html`\n \n `\n } else {\n return html`\n `\n }\n }\n}\n\ncustomElements.define('contextual-menu-toggle', ContextualMenuToggle)\n\n\nclass ContextualMenuTrack extends LitElement {\n static styles = css`\n :host {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n\n overflow: auto;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: none;\n -ms-overflow-style: none;\n }\n `\n\n constructor() {\n super()\n }\n\n firstUpdated() {\n }\n\n render() {\n return html`\n `\n }\n}\n\ncustomElements.define('contextual-menu-track', ContextualMenuTrack)","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{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)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{nothing as t,noChange as i}from\"../lit-html.js\";import{Directive as r,PartType as s,directive as n}from\"../directive.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class e extends r{constructor(i){if(super(i),this.et=t,i.type!==s.CHILD)throw Error(this.constructor.directiveName+\"() can only be used in child bindings\")}render(r){if(r===t||null==r)return this.vt=void 0,this.et=r;if(r===i)return r;if(\"string\"!=typeof r)throw Error(this.constructor.directiveName+\"() called with a non-string value\");if(r===this.et)return this.vt;this.et=r;const s=[r];return s.raw=s,this.vt={_$litType$:this.constructor.resultType,strings:s,values:[]}}}e.directiveName=\"unsafeHTML\",e.resultType=1;const o=n(e);export{e as UnsafeHTMLDirective,o as unsafeHTML};\n//# sourceMappingURL=unsafe-html.js.map\n","import { LitElement, html, css } from 'lit'\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js'\n\nclass Highlight extends LitElement {\n static styles = css`\n :host {\n display: block;\n }\n\n .wrapper {\n position: relative;\n display: block;\n }\n\n .text {\n color: var(--highlight-color);\n position: relative;\n z-index: 2;\n }\n\n .ghost {\n position: absolute;\n top: 0.13em;\n bottom: 0;\n z-index: 1;\n user-select: none;\n }\n\n .left .ghost.before {\n left: 0.3em;\n right: -0.3em;\n }\n\n .left .ghost.after {\n left: -0.3em;\n right: 0.3em;\n }\n\n .right .ghost.before {\n right: 0.3em;\n left: -0.3em;\n }\n\n .right .ghost.after {\n right: -0.3em;\n left: 0.3em;\n }\n\n .ghost__inner {\n display: inline;\n transition: all 200ms ease-in-out;\n background: var(--highlight);\n color: transparent;\n padding: .3em 0 0;\n }\n\n .hover .ghost {\n transform: scaleX(0);\n transition: transform 150ms ease-in-out;\n transform-origin: 0;\n }\n\n .hover.active .ghost,\n :host(:hover) .hover .ghost {\n transform: scaleX(1);\n }\n `\n\n static properties = {\n hover: { type: Boolean },\n active: { type: Boolean }\n }\n\n constructor() {\n super()\n\n this.hover = false\n this.active = false\n\n const computedStyle = window.getComputedStyle(this)\n this._align =\n computedStyle.getPropertyValue('text-align') === 'right'\n ? 'right'\n : 'left'\n }\n\n firstUpdated() {\n const parentAnchor = this.closest('a');\n if(parentAnchor) {\n this.closest('a').addEventListener('mouseenter', () => {\n this.active = true\n })\n this.closest('a').addEventListener('mouseleave', () => {\n this.active = false\n })\n }\n }\n\n render() {\n return html`\n \n \n \n ${unsafeHTML(this.innerHTML)}\n \n \n ${unsafeHTML(this.innerHTML)}\n \n \n `\n }\n}\ncustomElements.define('highlight-text', Highlight)\n","import { LitElement, html, css } from 'lit'\n\nclass FilterContainer extends LitElement {\n #listContainer\n #groups\n\n constructor() {\n super()\n this.handleFilter = this.handleFilter.bind(this)\n this.addEventListener('filter-group-update', this.handleFilter)\n this.addEventListener(\n 'filter-item-initialized',\n this.handleFilterItemInitialized.bind(this)\n )\n }\n\n static properties = {\n for: {},\n using: {},\n }\n\n static styles = css`\n :host {\n display: block;\n margin-bottom: 30px !important;\n }\n `\n\n firstUpdated() {\n this.#listContainer = document.getElementById(this.for)\n this.#groups = this.querySelectorAll('filter-group')\n }\n\n handleFilter(e) {\n const cache = e.detail?.cache ?? true\n this.syncParamsWithElements(cache)\n this.requestUpdate()\n }\n\n handleFilterItemInitialized(e) {\n setTimeout(() => {\n this.#listContainer.dispatchEvent(\n new CustomEvent('filter-item-initialized', {\n bubbles: true,\n detail: e.detail,\n })\n )\n })\n }\n\n syncParamsWithElements(cache) {\n let newParams = []\n this.#groups.forEach((group) => {\n newParams = newParams.concat(group.selected)\n })\n this.#listContainer.dispatchEvent(\n new CustomEvent('filter-update', {\n bubbles: true,\n detail: { cache: cache },\n })\n )\n }\n\n render() {\n return html` `\n }\n}\n\ncustomElements.define('filter-container', FilterContainer)\n\nclass FilterGroup extends LitElement {\n #buttons\n\n constructor() {\n super()\n this.handleButtonClick = this.handleButtonClick.bind(this)\n this.#buttons = this.querySelectorAll('button')\n this.initButtons()\n }\n\n static properties = {\n name: {},\n type: {},\n }\n\n get selected() {\n if (this.querySelector('button[value=\"all\"][aria-selected=\"true\"]'))\n return []\n return Array.from(this.#buttons)\n .filter((button) => button.getAttribute('aria-selected') === 'true')\n .map((button) => {\n return { name: this.name, value: button.value, text: button.innerText }\n })\n }\n\n set selected(value) {\n Array.from(this.#buttons).forEach((button) => {\n if (\n value.some(\n (param) => param.name === this.name && param.value === button.value\n )\n ) {\n button.setAttribute('aria-selected', 'true')\n }\n })\n }\n\n initButtons() {\n this.#buttons.forEach((button) => {\n button.setAttribute(\n 'aria-controls',\n this.closest('filter-container').getAttribute('for')\n )\n button.addEventListener('click', this.handleButtonClick)\n const url = this.createUrl(button)\n this.dispatchEvent(\n new CustomEvent('filter-item-initialized', {\n bubbles: true,\n detail: { url: url },\n })\n )\n })\n }\n\n handleButtonClick(e) {\n const current = e.currentTarget\n if (this.type === 'single') {\n this.clearAll()\n }\n const isSelected = current.getAttribute('aria-selected') === 'true'\n current.setAttribute('aria-selected', !isSelected)\n\n const url = this.createUrl(current)\n window.history.replaceState({}, '', url)\n\n this.requestUpdate()\n this.dispatchEvent(new Event('filter-group-update', { bubbles: true }))\n }\n\n createUrl(current) {\n let searchParams = new URLSearchParams(window.location.search)\n let url\n\n // searchParams.delete('p')\n\n if (!this.getAttribute('name')) {\n //Use as url segment\n url = new URL(`${location.protocol}/${location.hostname}${current.value}`)\n } else {\n url = new URL(window.location.href)\n if (current.value != 0) {\n searchParams.set(this.getAttribute('name'), current.value)\n } else {\n searchParams.delete(this.getAttribute('name'))\n }\n }\n url.search = searchParams.toString()\n return url\n }\n\n clearAll() {\n this.#buttons.forEach((button) =>\n button.setAttribute('aria-selected', false)\n )\n }\n\n firstUpdated() {}\n\n updated() {\n const allButton = this.querySelector('button[value=\"all\"]')\n allButton?.setAttribute('aria-selected', this.selected.length === 0)\n }\n\n render() {\n return html` `\n }\n}\n\ncustomElements.define('filter-group', FilterGroup)\n\nclass FilterTextField extends LitElement {\n #inputField\n\n constructor() {\n super()\n this.handleInput = this.handleInput.bind(this)\n this.#inputField = this.querySelector('input')\n this.#inputField.addEventListener('input', this.handleInput)\n }\n\n handleInput(e) {\n e.preventDefault()\n const current = e.currentTarget\n const url = this.createUrl(current)\n window.history.replaceState({}, '', url)\n this.dispatchEvent(\n new CustomEvent('filter-group-update', {\n bubbles: true,\n detail: { cache: false },\n })\n )\n }\n\n createUrl(current) {\n let searchParams = new URLSearchParams(window.location.search)\n let url\n url = new URL(window.location.href)\n if (current.value.length > 1) {\n searchParams.set(this.getAttribute('name'), current.value)\n } else {\n searchParams.delete(this.getAttribute('name'))\n }\n url.search = searchParams.toString()\n return url\n }\n\n render() {\n return html` `\n }\n}\n\ncustomElements.define('filter-textfield', FilterTextField)\n","import { LitElement, html, css } from 'lit'\n\nclass ListContainer extends LitElement {\n static properties = {\n loading: { type: Boolean, reflect: true, attribute: true }, //Loading/replacing items\n reloading: { type: Boolean, reflect: true, attribute: true }, //Replacing all items\n total: { type: Number, reflect: true },\n prefetch: { type: Boolean },\n nofetch: { type: Boolean }\n }\n\n constructor() {\n super()\n this.setAttribute('aria-live', 'polite')\n this.addEventListener('search-result', this.handleSearchResult)\n this.addEventListener('filter-update', this.handleFilterUpdate)\n this.addEventListener('paging-update', this.handlePagingUpdate)\n this.addEventListener(\n 'filter-item-initialized',\n this.prefetchUrl.bind(this)\n )\n this.pagingContainer = document.querySelector(\n `paging-container[for=\"${this.id}\"]`\n )\n this.loading = false\n this.reloading = false\n }\n\n firstUpdated() {}\n\n updated(changedProperties) {\n if (changedProperties.has('loading')) {\n if (this.loading) {\n this.setAttribute('aria-busy', 'true')\n } else {\n this.removeAttribute('aria-busy')\n }\n }\n }\n\n handleSearchResult(e) {\n const searchValue = e.detail\n }\n\n createUrl(path, search, pageNo = 0) {\n let url = this.dataset.fetchUrl.split('?')[0]\n let searchParams = new URLSearchParams(this.dataset.fetchUrl.split('?')[1])\n\n searchParams.set('path', path)\n searchParams.set('initial', this.dataset.initial)\n\n searchParams = new URLSearchParams({\n ...Object.fromEntries(searchParams),\n ...Object.fromEntries(new URLSearchParams(search)),\n })\n\n if (pageNo > 0) {\n searchParams.set(this.pagingContainer?.name ?? 'p', pageNo.toString())\n } else {\n searchParams.delete(this.pagingContainer?.name ?? 'p')\n }\n return `${url}?${searchParams.toString()}`\n }\n\n prefetchUrl(e) {\n if (!this.prefetch) return\n this.fetchResult(this.createUrl(e.detail.url.pathname, e.detail.url.search))\n }\n\n async handleFilterUpdate(e) {\n const pageNo = 0\n const timeout = setTimeout(() => {\n this.loading = true\n this.reloading = true\n }, 100)\n const cache = e.detail.cache ?? true\n await this.fetchAndUpdateItems(true, pageNo, cache)\n clearTimeout(timeout)\n this.loading = false\n this.reloading = false\n }\n\n async handlePagingUpdate(e) {\n const pageNo = e.detail.pageNo || 0\n const timeout = setTimeout(() => {\n this.loading = true\n }, 100)\n setTimeout(async() => {\n await this.fetchAndUpdateItems(false, pageNo)\n clearTimeout(timeout)\n this.loading = false\n }, 3000)\n\n }\n\n async fetchAndUpdateItems(replace = false, pageNo = 0, cache = true) {\n const result = await this.fetchResult(\n this.createUrl(window.location.pathname, window.location.search, pageNo),\n cache\n )\n this.total = result.total\n\n if (replace) {\n this.innerHTML = result.html\n } else {\n this.insertAdjacentHTML('beforeend', result.html)\n }\n this.dispatchEvent(\n new CustomEvent('list-updated', {\n bubbles: true,\n detail: { count: this.childElementCount, total: this.total },\n })\n )\n }\n\n async fetchResult(url, cache = true) {\n let result = this.getResultFromCache(url)\n if (result) return result\n const response = await fetch(url)\n result = {\n total: response.headers.get('total-count'),\n html: await response.text(),\n }\n if (!this.nofetch && cache) {\n this.cacheResult(url, result)\n }\n return result\n }\n\n cacheResult(key, result) {\n sessionStorage.setItem(key, JSON.stringify(result))\n }\n\n getResultFromCache(key) {\n return JSON.parse(sessionStorage.getItem(key))\n }\n\n render() {\n return html` `\n }\n}\n\ncustomElements.define('list-container', ListContainer)\n","import { LitElement, html, css } from 'lit'\n\nclass PagingContainer extends LitElement {\n #listContainer\n #button\n\n static properties = {\n visible: { type: Boolean, reflect: true },\n name: { type: String },\n }\n\n static styles = css`\n :host {\n margin-bottom: 30px !important;\n }\n `\n\n constructor() {\n super()\n this.#listContainer = document.getElementById(this.getAttribute('for'))\n this.#button = this.querySelector('button')\n this.#listContainer.addEventListener(\n 'list-updated',\n this.handleListUpdate.bind(this)\n )\n this.#listContainer.addEventListener(\n 'filter-update',\n this.handleFilterUpdate.bind(this)\n )\n this.#button.addEventListener('click', this.handleButtonClick.bind(this))\n if (!this.visible) {\n this.style.display = 'none'\n }\n }\n\n updated(changedProperties) {\n if (changedProperties.has('visible')) {\n if (this.visible) {\n this.style.removeProperty('display')\n } else {\n this.style.display = 'none'\n }\n }\n }\n\n handleFilterUpdate(e) {\n let params = new URLSearchParams(window.location.search)\n params.delete(this.name)\n let url = new URL(window.location.href)\n url.search = params.toString()\n window.history.replaceState({}, '', url)\n }\n\n handleListUpdate(e) {\n this.visible = e.detail.count < e.detail.total\n this.#button.removeAttribute('aria-busy') \n }\n\n handleButtonClick() {\n if (this.#listContainer.loading) {\n return\n }\n\n this.#button.setAttribute('aria-busy', 'true')\n \n let params = new URLSearchParams(window.location.search)\n let page = parseInt(params.get(this.name)) || 0\n params.set(this.name, page + 1)\n\n let url = new URL(window.location.href)\n url.search = params.toString()\n window.history.replaceState({}, '', url)\n\n this.#listContainer.dispatchEvent(\n new CustomEvent('paging-update', {\n bubbles: true,\n detail: { pageNo: page + 1 },\n })\n )\n }\n\n render() {\n return html` `\n }\n}\n\ncustomElements.define('paging-container', PagingContainer)\n","import { LitElement, html, css } from 'lit'\n\nclass LargeDropdown extends LitElement {\n static styles = css`\n :host {\n display: block;\n position: relative;\n }\n\n .trigger {\n appearance: none;\n border: none;\n border-radius: 3rem 1rem;\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 382px;\n background-color: hsla(var(--theme-400));\n font: var(--display-5);\n padding: 0.8rem 2.5rem 0.8rem;\n transition: all ease-in-out 150ms;\n transition-delay: 75ms;\n cursor: pointer;\n outline: none;\n z-index: 98;\n position: relative;\n color: hsla(var(--white));\n background-image: linear-gradient(\n hsla(var(--theme-400)),\n hsla(var(--theme-400))\n );\n background-size: 0 100%;\n background-repeat: no-repeat;\n --icon-stroke-width: 3px;\n --icon-width: 1.375rem;\n --icon-offset: 0px;\n }\n\n :host(.theme-regions) .trigger {\n background-image: linear-gradient(\n hsla(var(--green-alt-500)),\n hsla(var(--green-alt-500))\n );\n background-color: hsla(var(--green-alt-400));\n color: hsla(var(--black));\n }\n\n .trigger:hover {\n background-size: 100% 100%;\n }\n\n .trigger:focus-visible {\n outline: var(--outline);\n outline-offset: var(--outline-offset);\n border-radius: 3rem 1rem;\n }\n\n :host([open]) .trigger {\n width: 100%;\n transition-delay: 75ms;\n }\n\n .dropdown {\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n overflow: hidden;\n z-index: 100;\n height: 0;\n transition: height 0;\n transition-delay: 300ms;\n }\n\n :host([open]) .dropdown {\n margin-top: 0.5rem;\n border-radius: 0rem 3rem 3rem 3rem;\n height: 22em;\n transition-delay: 0ms;\n }\n\n .dropdown__inner {\n padding: 2rem 4rem 3rem;\n background-color: hsla(var(--theme-150));\n transform: translateY(-20rem);\n opacity: 0;\n transition: all ease-in-out 150ms;\n transition-delay: 0ms;\n }\n\n :host(.theme-regions) .dropdown__inner {\n background-color: hsla(var(--green-alt-200));\n }\n\n :host([open]) .dropdown__inner {\n border-radius: 0rem 3rem 3rem 3rem;\n transform: translateY(0);\n transition-delay: 150ms;\n opacity: 1;\n }\n\n .dropdown__label {\n position: absolute;\n left: -9999px;\n }\n\n @media (max-width: 768px) and (min-width: 430px) { \n .dropdown__inner {\n padding: 2rem 1.5rem 5rem;\n }\n }\n\n @media (max-width: 430px) {\n .trigger {\n width: 290px;\n padding: 0.5rem 1.5rem calc(0.5rem + 2px) 2rem;\n --icon-offset: 2px;\n box-shadow:\n 0 0 0 0 hsla(var(--theme-400)),\n 0 0 0 0 hsla(var(--theme-400));\n }\n \n :host([open]) .trigger {\n/* box-shadow:\n calc(var(--site-padding-x) * -1) 0 0 0 hsla(var(--theme-400)),\n var(--site-padding-x) 0 0 0 hsla(var(--theme-400));\n } */\n box-shadow:\n 0 0 0 0 hsla(var(--theme-400)),\n 0 0 0 0 hsla(var(--theme-400));\n }\n\n :host(.theme-regions) .trigger {\n box-shadow:\n 0 0 0 0 hsla(var(--green-alt-400)),\n 0 0 0 0 hsla(var(--green-alt-400));\n }\n\n :host([open].theme-regions) .trigger {\n/* box-shadow:\n calc(var(--site-padding-x) * -1) 0 0 0 hsla(var(--green-alt-400)),\n var(--site-padding-x) 0 0 0 hsla(var(--green-alt-400));\n } */\n box-shadow:\n 0 0 0 0 hsla(var(--green-alt-400)),\n 0 0 0 0 hsla(var(--green-alt-400));\n }\n\n .dropdown {\n left: 0;\n /* width: calc(100% + var(--site-padding-x) * 2); */\n } \n\n :host([open]) .dropdown {\n height: 70em;\n }\n }\n `\n static properties = {\n open: { type: Boolean, reflect: true },\n summary: { type: String },\n selected: { type: String, reflect: true },\n selectedSummary: { type: String, reflect: true },\n type: { type: String },\n }\n constructor() {\n super()\n this.open = false\n this.id = Math.random().toString(36).substring(2, 9)\n this.addEventListener('dropdown-select', this.handleOptionSelect)\n this.addEventListener('keydown', this.handleUpKey.bind(this))\n this.addEventListener('keydown', this.handleDownKey.bind(this))\n this.addEventListener('keydown', this.handleEscKey.bind(this))\n }\n firstUpdated() {\n this.shadowRoot\n .querySelector('.dropdown')\n .addEventListener('click', (e) => {\n e.stopPropagation()\n })\n this.trigger = this.shadowRoot.querySelector('.trigger')\n this.dropdown = this.shadowRoot.querySelector('.dropdown')\n this.options = this.querySelectorAll('dropdown-option')\n this.buttons = this.querySelectorAll('dropdown-option button')\n this.buttons.forEach((option) => {\n option.setAttribute('aria-selected', 'false')\n option.setAttribute('id', `${this.id}_${option.value}`)\n })\n this.dropdown.setAttribute('inert', 'inert')\n }\n updated(changedProperties) {\n if (changedProperties.has('open')) {\n if (this.open) {\n document.addEventListener('click', this.handleClickOutside.bind(this))\n this.querySelector(\n 'dropdown-option button[aria-selected=\"true\"]'\n )?.focus()\n this.dropdown.removeAttribute('inert')\n } else {\n if (changedProperties.get('open') !== undefined) {\n //Don't on first update\n this.trigger.focus()\n document.removeEventListener(\n 'click',\n this.handleClickOutside.bind(this)\n )\n }\n }\n }\n }\n handleEscKey(e) {\n if (e.key === 'Escape') {\n this.open = false\n this.trigger.focus()\n }\n }\n handleUpKey(e) {\n if (e.key === 'ArrowUp') {\n e.preventDefault()\n const current = this.querySelector('dropdown-option button:focus')\n if (\n current &&\n current.closest('dropdown-option').previousElementSibling\n ) {\n current\n .closest('dropdown-option')\n .previousElementSibling.querySelector('button')\n .focus()\n } else {\n this.buttons[this.options.length - 1].focus()\n }\n }\n }\n handleDownKey(e) {\n if (e.key === 'ArrowDown') {\n e.preventDefault()\n const current = this.querySelector('dropdown-option button:focus')\n if (current && current.closest('dropdown-option').nextElementSibling) {\n current\n .closest('dropdown-option')\n .nextElementSibling.querySelector('button')\n .focus()\n } else {\n this.querySelector('dropdown-option button').focus()\n }\n }\n }\n\n handleClickOutside(e) {\n if (e.target === this) return\n this.open = false\n }\n\n handleOptionSelect(e) {\n this.selected = e.detail.value\n this.selectedSummary = e.detail.summary\n this.setAttribute('aria-activedescendant', e.detail.value)\n this.querySelectorAll('dropdown-option button').forEach((option) => {\n if (option.value === e.detail.value) {\n option.setAttribute('aria-selected', 'true')\n } else {\n option.setAttribute('aria-selected', 'false')\n }\n })\n if (this.type === 'single') {\n this.open = false\n }\n }\n render() {\n return html`\n (this.open = !this.open)}\n >\n ${this.selectedSummary || this.summary}\n \n \n ${this.summary}\n \n
\n \n
\n \n `\n }\n}\ncustomElements.define('large-dropdown', LargeDropdown)\n\nclass DropdownOption extends LitElement {\n static styles = css`\n :host {\n display: block;\n }\n `\n static properties = {\n open: { type: Boolean, reflect: true },\n description: { type: String },\n value: { type: String },\n }\n constructor() {\n super()\n this.addEventListener('click', this.handleOptionSelect)\n this.querySelector('button').setAttribute('role', 'option')\n }\n handleOptionSelect(e) {\n this.dispatchEvent(\n new CustomEvent('dropdown-select', {\n detail: { value: this.value, summary: this.description },\n bubbles: true,\n composed: true,\n })\n )\n }\n render() {\n return html``\n }\n}\ncustomElements.define('dropdown-option', DropdownOption)\n","import { LitElement, html, css } from 'lit'\n\nclass FilterSearchBox extends LitElement {\n #listContainer\n #searchResult\n\n static styles = css``\n\n constructor() {\n super()\n this.searchPageHero = document.querySelector('.searchpage-hero')\n this.inputField = document.getElementById('input-search')\n this.clearButton = document.querySelector('.button-clear')\n this.searchButton = document.querySelector('.button-search')\n this.form = document.querySelector('form')\n this.detectKeyboardNav()\n }\n\n static properties = {\n for: {},\n using: {},\n }\n\n connectedCallback() {\n super.connectedCallback()\n\n this.inputField.addEventListener('input', (e) => {\n this.valueOnChange(e)\n })\n\n this.clearButton.addEventListener('click', (e) => {\n this.clearInputValue(e)\n })\n this.clearButton.addEventListener('keydown', (e) => {\n if (e.key === 'Enter') {\n this.clearInputValue(e)\n }\n })\n\n window.addEventListener('popstate', (e) => {\n let urlWithoutQueryParams =\n window.location.origin + window.location.pathname\n\n window.history.pushState({}, '', urlWithoutQueryParams)\n\n this.clearInputValue(e)\n })\n\n this.searchButton.addEventListener('click', this.searchFunction)\n\n this.inputField.addEventListener('keydown', (e) => {\n if (e.key === 'Enter') {\n this.searchFunction(e)\n }\n })\n }\n\n searchFunction = async (e) => {\n e.preventDefault()\n if (this.inputField.value === '') {\n this.inputField.focus()\n return\n }\n\n const url = this.createUrlSearch(this.inputField.value)\n window.history.pushState({}, '', url)\n\n await this.search(this.inputField.value)\n\n this.checkInputValue()\n }\n\n firstUpdated() {\n this.#listContainer = document.getElementById(this.for)\n this.#searchResult = document.getElementById(this.for)\n }\n\n syncParamsWithSearchResult(value) {\n this.#listContainer.dispatchEvent(\n new CustomEvent('search-result', { bubbles: true, detail: value })\n )\n\n this.#searchResult.dispatchEvent(\n new CustomEvent('search-result', { bubbles: true, detail: value })\n )\n }\n\n detectKeyboardNav() {\n this.inputField.addEventListener('click', () => {\n this.inputField.classList.add('hide-focusstate')\n })\n\n this.inputField.addEventListener('keydown', (event) => {\n if (event.key == 'Tab') {\n this.inputField.classList.remove('hide-focusstate')\n }\n })\n }\n\n createUrlSearch(value) {\n let searchParams = new URLSearchParams(window.location.search)\n const currentlySelectedFilter = document.querySelector(\n \"[aria-selected='true']\"\n )\n const filterCategory = document.querySelector('filter-group').name\n const filterSearchName = document.querySelector('#input-search').name\n\n const searchQuery = currentlySelectedFilter.value\n\n searchParams.set(filterCategory, searchQuery)\n searchParams.set(filterSearchName, value)\n\n searchParams.delete('p')\n let url = new URL(window.location.href)\n url.search = searchParams.toString()\n return url\n }\n\n valueOnChange(e) {\n const currentValue = e.currentTarget.value.trim()\n\n if (currentValue !== this.previousValue) {\n this.searchButton.style.display = 'flex'\n this.clearButton.style.display = 'none'\n }\n this.previousValue = currentValue\n }\n\n updateUI(hasValue) {\n this.searchButton.style.display = hasValue ? 'none' : 'flex'\n this.clearButton.style.display = hasValue ? 'flex' : 'none'\n }\n\n checkInputValue() {\n const hasValue = this.inputField.value.trim() !== ''\n this.searchPageHero.classList.add('searchpage-hero--active')\n this.updateUI(hasValue)\n }\n\n clearInputValue(e) {\n e.preventDefault()\n let queryParams = window.location.search\n if (queryParams === '') {\n this.inputField.value = ''\n this.searchPageHero.classList.remove('searchpage-hero--active')\n this.updateUI(false)\n }\n this.inputField.value = ''\n this.updateUI(false)\n }\n\n async syncParamsWithSearchResult(query) {\n const url = new URL(this.dataset.fetchUrl, window.location.origin)\n url.searchParams.append('q', query)\n\n const response = await fetch(url.pathname + url.search)\n\n if (!response.ok) return\n }\n\n async search(query) {\n const url = new URL(this.dataset.fetchUrl, window.location.origin)\n url.searchParams.append('q', query)\n\n this.form.setAttribute('aria-busy', 'true')\n this.searchButton.setAttribute('aria-busy', 'true')\n\n await fetch(url.pathname + url.search)\n .then((response) => {\n return response.text()\n })\n .then((result) => {\n document.getElementById(this.for).dispatchEvent(\n new CustomEvent('search-result-update', {\n bubbles: true,\n detail: {\n body: result,\n searchValue: query,\n },\n })\n )\n })\n .finally(() => {\n this.form.removeAttribute('aria-busy')\n this.searchButton.removeAttribute('aria-busy')\n })\n }\n\n render() {\n return html``\n }\n}\n\ncustomElements.define('filter-search-box', FilterSearchBox)\n","import { LitElement, html } from 'lit'\n\nclass SearchResult extends LitElement {\n constructor() {\n super()\n\n this.resultTitle = document.querySelector('.searchpage-heading')\n this.searchresult = document.querySelector('.search-result')\n this.listTitle = document.querySelector('.content-section__main h2')\n this.listContainer = document.querySelector('#search-result').total\n\n this.addEventListener('search-result', this.handleSearchResult)\n this.addEventListener('search-result-update', this.handleSearchResultUpdate)\n this.addEventListener('filter-update', this.handleFilterUpdate)\n }\n\n static properties = {}\n\n updateSearchResultVisibility() {\n let queryParams = window.location.search\n if (queryParams === '') {\n this.searchresult.style.display = 'none'\n } else {\n this.searchresult.style.display = 'flex'\n }\n }\n \n connectedCallback() {\n window.addEventListener('popstate', () => {\n this.updateSearchResultVisibility()\n })\n this.updateSearchResultVisibility()\n }\n\n handleSearchResult(event) {\n let searchValue = event.detail\n let totalValue = this.listContainer\n\n let title = `${totalValue} sökresultat för ${searchValue}`\n\n if (searchValue !== '' || searchValue !== undefined) {\n this.searchresult.style.display = 'flex'\n this.resultTitle.innerText = title\n }\n }\n\n handleSearchResultUpdate(event) {\n this.searchresult.innerHTML = event.detail.body\n this.searchresult.style.display = 'flex'\n }\n\n render() {\n return html``\n }\n}\n\ncustomElements.define('search-result', SearchResult)\n","import { LitElement, html, css } from 'lit'\n\nclass FormContainer extends LitElement {\n static styles = css`\n :host[hidden] {\n display: none;\n }\n\n .response-message {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n margin-top: 3rem;\n }\n\n .response-message-text {\n color: hsl(var(--theme-400));\n font: var(--display-5);\n margin-bottom: 4rem;\n }\n\n .response-message-icon {\n --icon-width: 5rem;\n --icon-stroke-color: hsla(var(--theme-600));\n --icon-stroke-width: 1.7;\n }\n `\n\n static get properties() {\n return {\n success: {},\n formSent: { type: Boolean },\n formError: { type: Boolean },\n }\n }\n\n constructor() {\n super()\n this.form = this.querySelector('form')\n this.submitButton = this.querySelector('button[type=\"submit\"]')\n this.action = this.form.getAttribute('action')\n this.formSent = false\n\n var inputElement = document.getElementById(\"vatno\");\n\n if (inputElement) {\n inputElement.addEventListener(\"input\", function() {\n if (!inputElement.checkValidity()) {\n inputElement.reportValidity();\n inputElement.scrollIntoView({ behavior: 'smooth', block: 'center' });\n }\n });\n }\n this.form.addEventListener('submit', this.submitForm.bind(this))\n }\n\n connectedCallback() {\n super.connectedCallback()\n }\n\n submitForm(e) {\n e.preventDefault()\n if (this.form.getAttribute('aria-busy') === 'true') return\n\n this.form.setAttribute('aria-busy', 'true')\n this.submitButton.setAttribute('aria-busy', 'true')\n\n const formData = new FormData(this.form)\n\n fetch(this.action, {\n method: 'POST',\n headers: {\n // 'Content-Type': 'multipart/form-data',\n 'x-requested-with': 'XMLHttpRequest',\n },\n body: formData,\n })\n .then((response) => {\n if (response.ok) {\n this.formSent = true\n window.scrollTo(\n 0,\n this.getBoundingClientRect().top +\n document.documentElement.scrollTop -\n 200\n )\n } else {\n this.formError = true\n console.error(response)\n }\n })\n .catch((error) => {\n this.formError = true\n console.error(error)\n })\n .finally(() => {\n this.form.removeAttribute('aria-busy')\n this.submitButton.removeAttribute('aria-busy')\n })\n }\n\n render() {\n if (this.formSent) {\n return html`
\n
\n \n

\n ${this.dataset.sentmessage}\n

\n
\n
`\n }\n if (this.formError) {\n return html`
\n
\n

\n ${this.dataset.errormessage}\n

\n
\n
`\n }\n return html` `\n }\n}\n\ncustomElements.define('form-container', FormContainer)\n","import { LitElement, html, css } from 'lit'\n\nclass FormContainer extends LitElement {\n static styles = css`\n :host[hidden] {\n display: none;\n }\n\n .response-message {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n margin-top:3rem;\n }\n\n .response-message p {\n color: hsl(var(--theme-400));\n font: var(--display-5);\n margin-bottom:4rem;\n }\n\n send-icon {\n --icon-width: 5rem;\n --icon-stroke-color: hsla(var(--theme-600));\n --icon-stroke-width: 1.7;\n }\n `\n\n static get properties() {\n return {\n hidden: { type: Boolean, reflect: true },\n success: {},\n formSent: { type: Boolean },\n formError: { type: Boolean },\n }\n }\n\n constructor() {\n super()\n this.hidden = true\n this.form = this.querySelector('form')\n this.submitButton = this.querySelector('button[type=\"submit\"]')\n this.action = this.form.getAttribute('action')\n this.formSent = false\n this.form.addEventListener('submit', this.submitForm.bind(this))\n\n this.contactButton = document.querySelector(\n `button[aria-controls=\"${this.id}\"]`\n )\n this.closeButton = document.getElementById('contact-form-close')\n\n this.closeButton.classList.add('hidden')\n this.contactButton.classList.remove('hidden')\n this.contactButton.addEventListener('click', this.showForm.bind(this))\n this.closeButton.addEventListener('click', this.hideForm.bind(this))\n }\n\n showForm(e) {\n this.contactButton.setAttribute('aria-expanded', 'true')\n this.hidden = false\n this.closeButton.classList.remove('hidden')\n this.contactButton.classList.add('hidden')\n setTimeout(() => {\n this.querySelector('input[type=\"text\"]').focus()\n })\n }\n\n hideForm(e) {\n this.contactButton.setAttribute('aria-expanded', 'false')\n this.hidden = true\n this.contactButton.classList.remove('hidden')\n this.closeButton.classList.add('hidden')\n this.formSent = false\n this.formError = false\n this.form.reset()\n }\n\n connectedCallback() {\n super.connectedCallback()\n }\n\n submitForm(e) {\n e.preventDefault()\n if (this.form.getAttribute('aria-busy') === 'true') return\n\n this.form.setAttribute('aria-busy', 'true')\n this.submitButton.setAttribute('aria-busy', 'true')\n\n const formData = new FormData(this.form)\n\n fetch(this.action, {\n method: 'POST',\n headers: {\n // 'Content-Type': 'multipart/form-data',\n 'x-requested-with' : 'XMLHttpRequest',\n },\n body: formData,\n })\n .then((response) => {\n if (response.ok) {\n this.formSent = true\n console.log(\n this.getBoundingClientRect().top +\n document.documentElement.scrollTop -\n 200\n )\n window.scrollTo(\n 0,\n this.getBoundingClientRect().top +\n document.documentElement.scrollTop -\n 200\n )\n } else {\n this.formError = true\n console.error(response)\n }\n })\n .catch((error) => {\n this.formError = true\n console.error(error)\n })\n .finally(() => {\n this.form.removeAttribute('aria-busy')\n this.submitButton.removeAttribute('aria-busy')\n })\n }\n\n render() {\n if (this.formSent) {\n return html`
\n
\n \n

${this.dataset.sentmessage}

\n
\n
`\n }\n if (this.formError) {\n return html`\n Något gick fel.\n \n `\n }\n return html` `\n }\n}\n\ncustomElements.define('contact-form-container', FormContainer)\n","import { LitElement, html, css } from 'lit'\n\nclass DropdownContainer extends LitElement {\n static styles = css`\n :host {\n display: inline-flex;\n position: relative;\n }\n\n .trigger {\n appearance: none;\n border: none;\n display: flex;\n justify-content: space-between;\n align-items: center;\n \n transition: all ease-in-out 150ms;\n \n cursor: pointer;\n \n background:var(--trigger-background);\n }\n\n .trigger:hover {\n background:var(--trigger-background-hover, var(--trigger-background));\n }\n\n .trigger:focus-visible {\n \n }\n\n :host([open]) .trigger {\n background:var(--trigger-background-open, var(--trigger-background-hover));\n background-size: 100% 100% !important;\n }\n\n .dropdown {\n display: none;\n position: absolute;\n left:0;\n //right:0;\n top:calc(100% + .25rem);\n z-index:100;\n\n }\n\n :host([open]) .dropdown {\n display: block;\n }\n\n .dropdown__inner {\n\n }\n\n :host([open]) .dropdown__inner {\n\n }\n\n .dropdown__label {\n\n }\n\n @media (max-width: 430px) {\n\n }\n `\n static properties = {\n open: { type: Boolean, reflect: true },\n summary: { type: String },\n selected: { type: String, reflect: true },\n selectedSummary: { type: String, reflect: true },\n type: { type: String },\n }\n constructor() {\n super()\n this.open = false\n this.id = Math.random().toString(36).substring(2, 9)\n this.addEventListener('dropdown-select', this.handleOptionSelect)\n this.addEventListener('keydown', this.handleUpKey.bind(this))\n this.addEventListener('keydown', this.handleDownKey.bind(this))\n this.addEventListener('keydown', this.handleEscKey.bind(this))\n }\n firstUpdated() {\n this.shadowRoot\n .querySelector('.dropdown')\n .addEventListener('click', (e) => {\n e.stopPropagation()\n })\n this.trigger = this.shadowRoot.querySelector('.trigger')\n this.dropdown = this.shadowRoot.querySelector('.dropdown')\n this.options = this.querySelectorAll('dropdown-option')\n this.buttons = this.querySelectorAll('dropdown-option button')\n this.buttons.forEach((option) => {\n option.setAttribute('aria-selected', this.selected === option.value ? 'true' : 'false')\n option.setAttribute('id', `${this.id}_${option.value}`)\n })\n this.selectedSummary = this.querySelector(`dropdown-option:has(button[aria-selected=\"true\"])`)?.description\n this.dropdown.setAttribute('inert', 'inert')\n }\n updated(changedProperties) {\n if (changedProperties.has('open')) {\n if (this.open) {\n document.addEventListener('click', this.handleClickOutside.bind(this))\n this.querySelector(\n 'dropdown-option button[aria-selected=\"true\"]'\n )?.focus()\n this.dropdown.removeAttribute('inert')\n } else {\n if(changedProperties.get('open') !== undefined) {\n //Don't on first update\n this.trigger.focus()\n document.removeEventListener(\n 'click',\n this.handleClickOutside.bind(this)\n )\n }\n }\n }\n }\n handleEscKey(e) {\n if (e.key === 'Escape') {\n this.open = false\n this.trigger.focus()\n }\n }\n handleUpKey(e) {\n if (e.key === 'ArrowUp') {\n e.preventDefault()\n const current = this.querySelector('dropdown-option button:focus')\n if (\n current &&\n current.closest('dropdown-option').previousElementSibling\n ) {\n current\n .closest('dropdown-option')\n .previousElementSibling.querySelector('button')\n .focus()\n } else {\n this.buttons[this.options.length - 1].focus()\n }\n }\n }\n handleDownKey(e) {\n if (e.key === 'ArrowDown') {\n e.preventDefault()\n const current = this.querySelector('dropdown-option button:focus')\n if (current && current.closest('dropdown-option').nextElementSibling) {\n current\n .closest('dropdown-option')\n .nextElementSibling.querySelector('button')\n .focus()\n } else {\n this.querySelector('dropdown-option button').focus()\n }\n }\n }\n\n handleClickOutside(e) {\n if (e.target === this) return\n this.open = false\n }\n\n handleOptionSelect(e) {\n this.selected = e.detail.value\n this.selectedSummary = e.detail.summary\n this.setAttribute('aria-activedescendant', e.detail.value)\n this.querySelectorAll('dropdown-option button').forEach((option) => {\n if (option.value === e.detail.value) {\n option.setAttribute('aria-selected', 'true')\n } else {\n option.setAttribute('aria-selected', 'false')\n }\n })\n if (this.type === 'single') {\n this.open = false\n }\n }\n render() {\n return html`\n (this.open = !this.open)}\n >\n ${this.selectedSummary || this.summary}\n \n \n\n \n
\n \n
\n \n `\n }\n}\ncustomElements.define('dropdown-container', DropdownContainer)\n\n// class DropdownOption extends LitElement {\n// static styles = css`\n// :host {\n// display: block;\n// }\n// `\n// static properties = {\n// open: { type: Boolean, reflect: true },\n// description: { type: String },\n// value: { type: String },\n// }\n// constructor() {\n// super()\n// this.addEventListener('click', this.handleOptionSelect)\n// this.querySelector('button').setAttribute('role', 'option')\n// }\n// handleOptionSelect(e) {\n// this.dispatchEvent(\n// new CustomEvent('dropdown-select', {\n// detail: { value: this.value, summary: this.description },\n// bubbles: true,\n// composed: true,\n// })\n// )\n// }\n// render() {\n// return html``\n// }\n// }\n// customElements.define('dropdown-option', DropdownOption)\n","import { LitElement, html, css } from 'lit'\n\nclass ConditionalField extends LitElement {\n #activator\n constructor() {\n super()\n this.visible = false\n }\n\n firstUpdated() {\n var nestedCondition = this.getAttribute('nested');\n \n this.#activator = document.getElementById(this.for);\n var secondActivator = document.getElementById(nestedCondition);\n const inputs = document.querySelectorAll(`input[name=\"${this.#activator.name}\"]`)\n inputs.forEach((input) => {\n input.addEventListener('change', this.handleChange.bind(this))\n })\n\n if(secondActivator) {\n var nameOfInput = secondActivator.getAttribute('name');\n \n const nestedInputs = document.querySelectorAll(`input[name=\"${nameOfInput}\"]`)\n nestedInputs.forEach((input) => {\n input.addEventListener('change', this.handleChange.bind(this))\n })\n }\n }\n\n static properties = {\n visible: { type: Boolean, state: true },\n for: { type: String },\n }\n\n handleChange(e) {\n // the nested condition is used on the Boka möte form, where two criteria must be met to display Är det en innovativ affärsidé\n var nestedCondition = this.getAttribute('nested');\n \n this.querySelectorAll('input, select, textarea').forEach((field) => {\n if(!nestedCondition) {\n field.disabled = !this.#activator.checked;\n } else if (nestedCondition) {\n var secondActivator = document.getElementById(nestedCondition);\n var nameOfInput = secondActivator.getAttribute('name');\n const inputs = document.querySelectorAll('input[name=\"'+nameOfInput+'\"]')\n \n inputs.forEach((input) => {\n if(input === secondActivator) {\n if(!this.#activator.checked && !input.checked) {\n field.disabled = true;\n } else if(this.#activator.checked && input.checked){\n field.disabled = false;\n }\n } else {\n field.disabled = true;\n }\n })\n }\n })\n \n \n if(!nestedCondition) {\n this.visible = this.#activator.checked;\n } else if (nestedCondition) {\n const inputs = document.querySelectorAll('input[id=\"'+nestedCondition+'\"]')\n \n inputs.forEach((input) => {\n this.visible = this.#activator.checked && input.checked;\n })\n }\n \n }\n\n render() {\n if (!this.visible) return html``\n return html` `\n }\n}\n\ncustomElements.define('conditional-field', ConditionalField)\n\n","import { LitElement, html, css } from 'lit'\n\nclass RadioGroup extends LitElement {\n\n constructor() {\n super()\n\n }\n\n firstUpdated() {\n\n }\n\n static properties = {\n\n }\n\n render() {\n return html` `\n }\n}\n\ncustomElements.define('radio-group', RadioGroup)","import { LitElement, html, css } from 'lit'\n\nclass FormSteps extends LitElement {\n static styles = css`\n ol {\n list-style: none;\n padding: 0;\n display: flex;\n justify-content: space-between;\n margin: 4rem 4rem 5rem;\n position: relative;\n }\n\n li:after {\n content: '';\n display: block;\n height: 1px;\n background: hsl(var(--theme-400));\n position: absolute;\n left: 4rem;\n right: 4rem;\n top: 31px;\n z-index: 0;\n }\n\n li {\n display: flex;\n align-items: center;\n flex-direction: column;\n }\n\n .number {\n background: hsl(var(--theme-150));\n color: hsl(var(--theme-400));\n display: flex;\n justify-content: center;\n align-items: center;\n width: 42px;\n height: 42px;\n border-radius: 50%;\n font-weight: 600;\n margin-bottom: 0.75rem;\n position: relative;\n z-index: 1;\n border: 10px solid hsl(var(--theme-40));\n }\n\n .title {\n font-size: var(--md);\n font-weight: 400;\n color: hsl(var(--gray-6));\n margin: 0 0.2rem;\n }\n\n li[aria-selected='true'] .title {\n color: #000;\n }\n\n li[aria-selected='true'] .number {\n background: hsl(var(--theme-400));\n color: #fff;\n }\n\n @media (max-width: 768px) {\n ol {\n margin: 2rem 0 4rem;\n }\n }\n `\n static properties = {\n current: { type: Object },\n }\n\n constructor() {\n super()\n this.steps = this.querySelectorAll('form-step')\n this.current = this.querySelector('form-step[active]')\n this.addEventListener('next-step', this.handleNextStep)\n this.addEventListener('previous-step', this.handlePreviousStep)\n this.steps.forEach((step, i) => {\n step.previousStep = this.steps[i - 1]\n step.nextStep = this.steps[i + 1]\n })\n }\n\n handleNextStep(e) {\n this.current = e.detail.current\n let next = null\n this.steps.forEach((step, i) => {\n step.active = false\n if (step === this.current) {\n next = this.steps[i + 1]\n }\n })\n if (next) {\n next.active = true\n setTimeout(() => {\n next.querySelector('input').focus()\n })\n this.current = next\n }\n }\n\n handlePreviousStep(e) {\n this.current = e.detail.current\n let previous = null\n this.steps.forEach((step, i) => {\n step.active = false\n if (step === this.current) {\n previous = this.steps[i - 1]\n }\n })\n if (previous) {\n previous.active = true\n setTimeout(() => {\n previous.querySelector('input').focus()\n })\n this.current = previous\n }\n }\n\n render() {\n let steps = Array.from(this.steps).map((step, i) => {\n return html`\n
  • \n ${i + 1}\n ${step.ariaLabel}\n
  • \n `\n })\n return html`\n
      \n ${steps}\n
    \n \n `\n }\n}\n\ncustomElements.define('form-steps', FormSteps)\n\nclass FormStep extends LitElement {\n static styles = css`\n :host(:not([active])) {\n display: none;\n }\n\n .actions {\n display: flex;\n justify-content: center;\n margin: 4rem 0;\n gap: 1rem;\n }\n `\n static properties = {\n title: { type: String },\n nextButtonText: { type: String },\n backButtonText: { type: String },\n active: { type: Boolean, reflect: true },\n previousStep: { type: Object },\n nextStep: { type: Object },\n }\n\n constructor() {\n super()\n }\n\n handleNext() {\n let stepValid = true\n Array.from(this.querySelectorAll('input, textarea, select'))\n .reverse()\n .forEach((input) => {\n if (input.type === 'file') {\n const file = input.files[0]\n if (file && file.size > input.dataset.max) {\n input.setCustomValidity(input.dataset.message)\n }\n else {\n input.setCustomValidity('')\n }\n }\n const valid = input.checkValidity()\n if (!valid) {\n input.reportValidity()\n stepValid = false\n }\n })\n if (stepValid) {\n this.dispatchEvent(\n new CustomEvent('next-step', {\n detail: { current: this },\n bubbles: true,\n composed: true,\n })\n )\n }\n }\n\n handlePrevious() {\n this.dispatchEvent(\n new CustomEvent('previous-step', {\n detail: { current: this },\n bubbles: true,\n composed: true,\n })\n )\n }\n\n render() {\n console.log(this.nextStep);\n const nextButton = this.nextStep\n ? html` `\n : ''\n const prevButton = this.previousStep\n ? html` `\n : ''\n\n \n let actions = html`\n
    \n ${prevButton} ${nextButton}\n \n
    \n `\n\n return html`\n \n ${actions}\n `\n }\n}\n\ncustomElements.define('form-step', FormStep)\n\n// JavaScript to handle visibility and required attribute dynamically (very specific for pitch form)\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n // Wait for the custom element to be defined\n customElements.whenDefined(\"form-steps\").then(() => {\n const formSteps = document.querySelector(\"form-step\");\n\n if (formSteps) {\n const shadowRoot = formSteps.shadowRoot;\n\n if (shadowRoot) {\n // Find the button inside the shadow DOM\n const submitButton = shadowRoot.querySelector('button[part=\"button\"]');\n\n if (submitButton) {\n addSubmitButtonLogic(submitButton);\n } \n } \n } \n });\n function addSubmitButtonLogic(submitButton) {\n const sectorSelect = document.getElementById(\"sector\");\n const otherSectorInput = document.getElementById(\"other-sector\");\n const otherSectorLabel = document.getElementById(\"other-sector-label\");\n const infoText = document.getElementById(\"info-text\");\n const greentechNo = document.getElementById(\"greentech_no\");\n const swedishBasedNo = document.getElementById(\"swedishbased_no\");\n const greentechYes = document.getElementById(\"greentech_yes\");\n const swedishBasedYes = document.getElementById(\"swedishbased_yes\");\n\n function toggleOtherSectorInput() {\n if (sectorSelect.value === \"other\") {\n otherSectorInput.style.display = \"block\";\n otherSectorLabel.style.display = \"block\";\n otherSectorInput.setAttribute(\"required\", \"true\");\n } else {\n otherSectorInput.style.display = \"none\";\n otherSectorLabel.style.display = \"none\";\n otherSectorInput.removeAttribute(\"required\");\n }\n }\n\n function checkFormConditions() {\n if (greentechNo.checked && swedishBasedNo.checked) {\n submitButton.disabled = true;\n infoText.style.display = \"flex\";\n } else {\n submitButton.disabled = false;\n infoText.style.display = \"none\";\n }\n }\n\n // Initial check in case form reloads with \"other\" pre-selected\n toggleOtherSectorInput();\n checkFormConditions();\n\n // Listen for changes in the dropdown\n sectorSelect.addEventListener(\"change\", toggleOtherSectorInput);\n greentechNo.addEventListener(\"change\", checkFormConditions);\n swedishBasedNo.addEventListener(\"change\", checkFormConditions);\n greentechYes.addEventListener(\"change\", checkFormConditions);\n swedishBasedYes.addEventListener(\"change\", checkFormConditions);\n }\n \n});","import { LitElement, html, css } from 'lit'\n\nclass Popover extends LitElement {\n static styles = css`\n .info-box {\n --icon-width: 1.5em;\n\n align-items: center;\n margin-bottom: var(--spacing-6);\n border-radius: 4px;\n background-color: hsl(var(--gray-400));\n color: hsl(var(--white));\n padding: var(--spacing-3) var(--spacing-3) var(--spacing-4);\n\n circle-exclamation-icon {\n margin-right: var(--spacing-3);\n }\n }\n\n .tooltip-toggle {\n --icon-width: 1.5rem;\n\n cursor: pointer;\n position: relative;\n margin-left: var(--spacing-3);\n\n &:focus-visible {\n --outline-offset: 2px;\n outline: var(--outline);\n outline-offset: var(--outline-offset);\n border-radius: var(--outline-radius);\n }\n }\n\n .tooltip-toggle + .tooltip {\n z-index: 2;\n visibility: hidden;\n position: absolute;\n right: 0;\n top: 1.8rem;\n max-width: 300px;\n border-radius: 4px;\n background-color: hsl(var(--gray-400));\n color: hsl(var(--white));\n padding: var(--spacing-3) var(--spacing-3) var(--spacing-4);\n transition: opacity 0.2s ease-out;\n }\n\n .tooltip-toggle:hover + .tooltip,\n .tooltip-toggle:focus + .tooltip,\n .tooltip:hover,\n .tooltip:focus {\n visibility: visible;\n }\n\n .tooltip-hidden {\n visibility: hidden !important;\n }\n\n .tooltip-toggle::after {\n content: '';\n position: absolute;\n top: 1.2rem;\n left: 12px;\n transform: translateX(-50%);\n border-width: 5px;\n border-style: solid;\n border-color: transparent transparent hsl(var(--gray-400)) transparent;\n opacity: 0;\n }\n\n .tooltip-toggle:hover::after,\n .tooltip-toggle:focus::after,\n .tooltip-wrapper:has(.tooltip:hover) .tooltip-toggle::after,\n .tooltip-wrapper:has(.tooltip:focus) .tooltip-toggle::after {\n opacity: 1;\n visibility: visible;\n transition: opacity 0.1s ease-out;\n }\n `\n\n constructor() {\n super()\n this.handleKeyDown = this.handleKeyDown.bind(this)\n this.handleFocusOut = this.handleFocusOut.bind(this)\n this.removeClassName = this.removeClassName.bind(this)\n }\n\n firstUpdated() {\n this.tooltipToggle = this.shadowRoot.querySelector('.tooltip-toggle')\n this.tooltip = this.shadowRoot.querySelector('.tooltip')\n\n document.addEventListener('keydown', this.handleKeyDown)\n this.tooltipToggle.addEventListener('focus', this.removeClassName)\n this.tooltipToggle.addEventListener('focusout', this.handleFocusOut)\n this.tooltip.addEventListener('focusout', this.handleFocusOut)\n this.tooltipToggle.addEventListener('mouseleave', this.removeClassName)\n this.tooltipToggle.addEventListener('mouseenter', this.removeClassName)\n }\n\n handleKeyDown(event) {\n if (event.key === 'Escape') {\n this.tooltip.classList.add('tooltip-hidden')\n }\n }\n\n removeClassName() {\n this.tooltip.classList.remove('tooltip-hidden')\n }\n\n handleFocusOut(event) {\n if (\n !this.tooltip.contains(event.relatedTarget) &&\n !this.tooltipToggle.contains(event.relatedTarget)\n ) {\n this.tooltip.classList.remove('tooltip-hidden')\n }\n }\n\n render() {\n return html`\n \n \n \n \n
    \n \n
    \n \n `\n }\n}\ncustomElements.define('popover-box', Popover)\n","import { LitElement, css } from 'lit'\n\nclass ToggleIcon extends LitElement {\n static properties = {\n open: { reflect: true, type: Boolean },\n }\n static styles = css`\n :host {\n display: flex;\n justify-content: center;\n align-items: center;\n width: var(--icon-width, 1em);\n height: var(--icon-height, 1em);\n position: relative;\n top: var(--icon-offset, 0);\n transition:transform ease 200ms;\n }\n :host:before,\n :host:after {\n content: '';\n display: block;\n height: var(--icon-stroke-width, 2px);\n width: var(--icon-width, 1em);\n background: var(--icon-stroke-color, currentColor);\n position: absolute;\n border-radius: 2px;\n }\n :host:after {\n transform: rotate(90deg);\n }\n :host([open]) {\n transform:rotate(135deg);\n }\n :host(.press) {\n transform:scale(1.1);\n }\n `\n updated() {\n this.setAttribute('aria-label', this.open ? 'collapse' : 'expand')\n // this.classList.add('press')\n // setTimeout(() => {\n // this.classList.remove('press')\n // }, 200)\n }\n}\ncustomElements.define('toggle-icon', ToggleIcon)\n","import { LitElement, html, css } from 'lit'\n\nclass SearchIcon extends LitElement {\n static styles = css`\n :host {\n display: block;\n width: var(--icon-width, 1em);\n height: var(--icon-height, auto);\n position: relative;\n top: var(--icon-offset, 2px);\n }\n svg {\n stroke: var(--icon-stroke-color, currentColor);\n stroke-width: var(--icon-stroke-width, 1.5);\n fill: none;\n width: 100%;\n height: auto;\n }\n `\n static properties = {\n open: { type: Boolean },\n }\n render() {\n if (!this.open) {\n return html`\n \n \n \n `\n } else {\n return html` `\n }\n }\n}\ncustomElements.define('search-icon', SearchIcon)\n","import { LitElement, html, css } from 'lit'\n\nclass CloseIcon extends LitElement {\n static styles = css`\n :host {\n display: flex;\n justify-content: center;\n width: var(--icon-width, 1em);\n min-width: var(--icon-width, 1em);\n height: var(--icon-height, auto);\n position: relative;\n top: var(--icon-offset, 2px);\n }\n :host([closed]) {\n transition: transform 150ms ease-in-out; transform: rotate(45deg)\n }\n :host([open]) {\n transition: transform 150ms ease-in-out; transform: rotate(90deg)\n }\n svg {\n stroke: var(--icon-stroke-color, currentColor);\n stroke-width: var(--icon-stroke-width, 1.5);\n fill: none;\n width: 100%;\n height: auto;\n }\n `\n static properties = {\n open: { type: Boolean },\n }\n render() {\n return html`\n \n \n \n `\n }\n}\ncustomElements.define('close-icon', CloseIcon)\n","import { LitElement, html, css } from 'lit'\n\nexport class IconBase extends LitElement {\n static styles = css`\n :host {\n display: block;\n width: var(--icon-width, 1em);\n height: var(--icon-height, auto);\n position: relative;\n top: var(--icon-offset, 2px);\n }\n svg {\n stroke: var(--icon-stroke-color, currentColor);\n stroke-width: var(--icon-stroke-width, 1.5);\n fill: none;\n width: 100%;\n height: auto;\n }\n `\n}","import { html } from 'lit'\nimport { IconBase } from './icon-base.js'\n\nclass Icon extends IconBase {\n render() {\n return html`\n \n \n \n `\n }\n}\ncustomElements.define('globe-icon', Icon)\n","import { LitElement, html, css } from 'lit'\n\nclass Icon extends LitElement {\n static styles = css`\n :host {\n display: block;\n width: var(--icon-width, 1em);\n height: var(--icon-height, auto);\n position: relative;\n top: var(--icon-offset, 2px);\n }\n svg {\n stroke: var(--icon-stroke-color, currentColor);\n stroke-width: var(--icon-stroke-width, 1.5);\n fill: none;\n width: 100%;\n height: auto;\n }\n `\n render() {\n return html`\n \n \n \n `\n }\n}\ncustomElements.define('user-icon', Icon)\n","import { LitElement, html, css } from 'lit'\n\nclass ArrowRight extends LitElement {\n static styles = css`\n :host {\n display: block;\n width: var(--icon-width, 1em);\n height: var(--icon-height, auto);\n position: relative;\n top: var(--icon-offset, 2px);\n }\n svg {\n stroke: var(--icon-stroke-color, currentColor);\n stroke-width: var(--icon-stroke-width, 1.5);\n fill: none;\n width: 100%;\n height: auto;\n }\n `\n static properties = {\n open: { type: Boolean },\n }\n render() {\n return html`\n \n \n \n `\n }\n}\ncustomElements.define('arrow-right', ArrowRight)\n","import { LitElement, html, css } from 'lit'\n\nclass ArrowLeft extends LitElement {\n static styles = css`\n :host {\n display: block;\n width: var(--icon-width, 1em);\n height: var(--icon-height, auto);\n position: relative;\n top: var(--icon-offset, 2px);\n }\n svg {\n stroke: var(--icon-stroke-color, currentColor);\n stroke-width: var(--icon-stroke-width, 1.5);\n fill: none;\n width: 100%;\n height: auto;\n }\n `\n static properties = {\n open: { type: Boolean },\n }\n render() {\n return html`\n \n \n \n `\n }\n}\ncustomElements.define('arrow-left', ArrowLeft)\n","import { LitElement, html, css } from 'lit'\n\nclass Icon extends LitElement {\n static styles = css`\n :host {\n display: block;\n width: var(--icon-width, 1em);\n height: var(--icon-height, auto);\n position: relative;\n top: var(--icon-offset, 2px);\n }\n svg {\n fill: var(--icon-fill-color, currentColor);\n width: 100%;\n height: auto;\n }\n `\n render() {\n return html`\n \n \n \n \n \n \n \n \n \n \n `\n }\n}\ncustomElements.define('facebook-icon', Icon)\n","import { LitElement, html, css } from 'lit'\n\nclass Icon extends LitElement {\n static styles = css`\n :host {\n display: block;\n width: var(--icon-width, 1em);\n height: var(--icon-height, auto);\n position: relative;\n top: var(--icon-offset, 2px);\n }\n svg {\n fill: var(--icon-fill-color, currentColor);\n width: 100%;\n height: auto;\n }\n `\n render() {\n return html`\n \n \n \n \n \n \n \n \n \n \n `\n }\n}\ncustomElements.define('linkedin-icon', Icon)\n","import { LitElement, html, css } from 'lit'\n\nclass Icon extends LitElement {\n static styles = css`\n :host {\n display: block;\n width: var(--icon-width, 1em);\n height: var(--icon-height, auto);\n position: relative;\n top: var(--icon-offset, 2px);\n }\n svg {\n fill: var(--icon-fill-color, currentColor);\n width: 100%;\n height: auto;\n }\n `\n render() {\n return html`\n \n \n \n `\n }\n}\ncustomElements.define('youtube-icon', Icon)\n","import { LitElement, html, css } from 'lit'\n\nclass Icon extends LitElement {\n static styles = css`\n :host {\n display: block;\n width: var(--icon-width, 1em);\n height: var(--icon-height, auto);\n position: relative;\n top: var(--icon-offset, 2px);\n }\n svg {\n stroke: var(--icon-stroke-color, currentColor);\n stroke-width: var(--icon-stroke-width, 1.5);\n fill: none;\n width: 100%;\n height: auto;\n }\n `\n render() {\n return html`\n \n \n \n `\n }\n}\ncustomElements.define('contact-icon', Icon)\n","import { html } from 'lit'\nimport { IconBase } from './icon-base.js'\n\nclass Icon extends IconBase {\n render() {\n return html`\n \n \n \n `\n }\n}\ncustomElements.define('send-icon', Icon)\n","import { html } from 'lit'\nimport { IconBase } from './icon-base.js'\n\nclass Icon extends IconBase {\n render() {\n return html`\n \n \n \n `\n }\n}\ncustomElements.define('handshake-icon', Icon)\n","import { html } from 'lit'\nimport { IconBase } from './icon-base.js'\n\nclass Icon extends IconBase {\n render() {\n return html`\n \n \n \n `\n }\n}\ncustomElements.define('buildings-icon', Icon)\n","import { html } from 'lit'\nimport { IconBase } from './icon-base.js'\n\nclass Icon extends IconBase {\n render() {\n return html`\n \n \n \n `\n }\n}\ncustomElements.define('presentation-icon', Icon)\n","import { html } from 'lit'\nimport { IconBase } from './icon-base.js'\n\nclass Icon extends IconBase {\n render() {\n return html`\n \n \n \n `\n }\n}\ncustomElements.define('mail-exclamation-icon', Icon)\n","import { html } from 'lit'\nimport { IconBase } from './icon-base.js'\n\nclass Icon extends IconBase {\n render() {\n return html`\n \n \n \n \n \n `\n }\n}\ncustomElements.define('whistle-icon', Icon)\n","import { html } from 'lit'\nimport { IconBase } from './icon-base.js'\n\nclass Icon extends IconBase {\n render() {\n return html`\n \n \n \n `\n }\n}\ncustomElements.define('briefcase-icon', Icon)\n","import { html } from 'lit'\nimport { IconBase } from './icon-base.js'\n\nclass Icon extends IconBase {\n render() {\n return html`\n \n \n \n `\n }\n}\ncustomElements.define('bank-icon', Icon)\n","import { LitElement, html, css } from 'lit'\n\nclass ChevronIcon extends LitElement {\n static styles = css`\n :host {\n display: flex;\n justify-content: center;\n width: var(--icon-width, 1em);\n min-width: var(--icon-width, 1em);\n height: var(--icon-height, auto);\n position: relative;\n top: var(--icon-offset, 2px);\n }\n :host([closed]) {\n transition: transform 150ms ease-in-out;\n transform: rotate(45deg);\n }\n :host([open]) {\n transition: transform 150ms ease-in-out;\n transform: rotate(90deg);\n }\n svg {\n stroke: var(--icon-stroke-color, currentColor);\n stroke-width: var(--icon-stroke-width, 1.5);\n fill: none;\n width: 100%;\n height: auto;\n }\n `\n static properties = {\n open: { type: Boolean },\n }\n render() {\n return html`\n \n \n \n `\n }\n}\ncustomElements.define('chevron-icon', ChevronIcon)\n","import { LitElement, html, css } from 'lit'\n\nclass ArrowSquare extends LitElement {\n static styles = css`\n :host {\n display: block;\n width: var(--icon-width, 1em);\n height: var(--icon-height, auto);\n position: relative;\n top: var(--icon-offset, 2px);\n }\n svg {\n stroke: var(--icon-stroke-color, currentColor);\n stroke-width: var(--icon-stroke-width, 1.5);\n fill: none;\n width: 100%;\n height: auto;\n }\n `\n static properties = {\n open: { type: Boolean },\n }\n render() {\n return html`\n \n \n \n `\n }\n}\ncustomElements.define('arrow-square', ArrowSquare)\n","import { html } from 'lit'\nimport { IconBase } from './icon-base.js'\n\nclass Icon extends IconBase {\n render() {\n return html`\n \n \n \n `\n }\n}\n\ncustomElements.define('map-icon', Icon)\n","import { html } from 'lit'\nimport { IconBase } from './icon-base.js'\n\nclass Icon extends IconBase {\n render() {\n return html`\n \n \n \n `\n }\n}\n\ncustomElements.define('mail-icon', Icon)\n","import { html } from 'lit'\nimport { IconBase } from './icon-base.js'\n\nclass Icon extends IconBase {\n render() {\n return html`\n \n \n \n `\n }\n}\n\ncustomElements.define('wallet-icon', Icon)\n","import { html } from 'lit'\nimport { IconBase } from './icon-base.js'\n\nclass Icon extends IconBase {\n render() {\n return html`\n \n \n \n `\n }\n}\n\ncustomElements.define('calendar-icon', Icon)\n","import { html } from 'lit'\nimport { IconBase } from './icon-base.js'\n\nclass Icon extends IconBase {\n render() {\n return html`\n \n \n \n `\n }\n}\n\ncustomElements.define('deadline-icon', Icon)\n","import { LitElement, html, css } from 'lit'\n\nclass PlayIcon extends LitElement {\n static styles = css`\n :host {\n display: block;\n width: var(--icon-width, 1em);\n height: var(--icon-height, auto);\n position: relative;\n top: var(--icon-offset, 2px);\n }\n svg {\n stroke: var(--icon-stroke-color, currentColor);\n stroke-width: var(--icon-stroke-width, 1.5);\n fill: none;\n width: 100%;\n height: auto;\n }\n`\n render() {\n return html`\n \n \n \n `\n }\n}\ncustomElements.define('play-icon', PlayIcon)\n","import { html } from 'lit'\nimport { IconBase } from './icon-base.js'\n\nclass Icon extends IconBase {\n render() {\n return html`\n \n \n \n `\n }\n}\n\ncustomElements.define('phone-icon', Icon)\n","import { LitElement, html, css } from 'lit'\nimport { IconBase } from './icon-base.js'\n\nclass CircleExclamation extends IconBase {\n render() {\n return html`\n \n \n \n `\n }\n}\ncustomElements.define('circle-exclamation-icon', CircleExclamation)\n","import { LitElement, html, css } from 'lit'\nimport { IconBase } from './icon-base'\n\nclass GhostSmile extends IconBase {\n render() {\n return html`\n \n \n \n `\n }\n}\ncustomElements.define('ghost-smile', GhostSmile)\n","import { LitElement, html, css } from 'lit'\nimport { IconBase } from './icon-base'\n\nclass LaptopXMark extends IconBase {\n render() {\n return html`\n \n \n \n `\n }\n}\ncustomElements.define('laptop-xmark', LaptopXMark)\n","import { LitElement, html, css } from 'lit'\n\nclass Questionmark extends LitElement {\n static styles = css`\n :host {\n display: block;\n width: var(--icon-width, 1em);\n height: var(--icon-height, auto);\n position: relative;\n top: var(--icon-offset, 2px);\n }\n svg {\n stroke: var(--icon-stroke-color, currentColor);\n stroke-width: var(--icon-stroke-width, 1.5);\n fill: none;\n width: 100%;\n height: auto;\n }\n `\n render() {\n return html`\n \n \n \n `\n }\n}\ncustomElements.define('questionmark-icon', Questionmark)\n","const inputFields = document.querySelectorAll(\n '.form input, .form textarea, .form select, filter-textfield input, filter-textfield label'\n)\n\ninputFields.forEach((inputField) => {\n if (inputField.type === 'file') {\n return\n }\n\n inputField.addEventListener('mousedown', (event) => {\n event.stopPropagation();\n inputFields.forEach((field) => {\n if (!field.value) {\n field.classList.remove('click-focus')\n }\n })\n\n inputField.classList.add('click-focus')\n })\n\n inputField.addEventListener('change', () => {\n if (inputField.value) {\n inputField.classList.add('click-focus')\n } else {\n inputField.classList.remove('click-focus')\n }\n })\n\n inputField.addEventListener('keydown', (event) => {\n if (event.key === 'Tab') {\n inputFields.forEach((field) => {\n if (!field.value) {\n field.classList.remove('click-focus')\n }\n })\n }\n })\n})\n\ndocument.addEventListener('mousedown', (event) => {\n if (!event.target.matches('.form input, .form textarea, .form select')) {\n inputFields.forEach((inputField) => {\n if (!inputField.value) {\n inputField.classList.remove('click-focus')\n }\n })\n }\n})\n","document.addEventListener(\"DOMContentLoaded\", () => {\n\n // Select all form elements on the page\n var forms = document.querySelectorAll('form');\n // Iterate over each form\n forms.forEach(function(form) {\n form.addEventListener('submit', function(event) {\n // Prevent the default form submission behavior\n event.preventDefault();\n\n var formContainer = this.closest('form-container');\n // Get the ID of the form-container or a default value if not found\n var formContainerId = formContainer ? formContainer.id : '';\n \n window.dataLayer.push({\n 'event': 'formSubmit',\n 'formType': formContainerId\n });\n });\n }); \n \n // Opti Forms Event\n if (typeof $$epiforms !== 'undefined') {\n $$epiforms(function () {\n $$epiforms('.EPiServerForms').on('formsSubmitted', function (event) {\n window.dataLayer.push({\n 'event': 'formSubmit',\n 'formType': 'optiForms'\n });\n });\n });\n }\n \n \n \n});","import { LitElement, html } from 'lit';\n\nclass NavContainer extends LitElement {\n static get properties() {\n return {\n toggleClass: { type: String },\n };\n }\n\n constructor() {\n super();\n this.toggleClass = 'fullscreen';\n }\n\n connectedCallback() {\n super.connectedCallback();\n window.addEventListener('keydown', this.handleKeyDown.bind(this));\n this.applySavedToggleState();\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n window.removeEventListener('keydown', this.handleKeyDown.bind(this));\n }\n\n handleKeyDown(event) {\n if (event.metaKey && event.key === '.') {\n const body = document.body;\n body.classList.toggle(this.toggleClass);\n localStorage.setItem('navContainerClass', body.classList.contains(this.toggleClass));\n }\n }\n\n applySavedToggleState() {\n const body = document.body;\n const savedClassValue = localStorage.getItem('navContainerClass');\n if (savedClassValue === 'true') {\n body.classList.add(this.toggleClass);\n } else if (savedClassValue === 'false') {\n body.classList.remove(this.toggleClass);\n }\n }\n\n render() {\n return html``;\n }\n}\n\ncustomElements.define('nav-container', NavContainer);","import { LitElement, html, css } from 'lit'\n\nclass Logotype extends LitElement {\n static styles = css`\n :host {\n display: block;\n }\n `\n render() {\n return html`\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `\n }\n}\ncustomElements.define('almi-logotype', Logotype)\n","import { LitElement, html, css } from 'lit'\n\nclass ComponentCanvas extends LitElement {\n static get properties() {\n return {\n content: { type: String },\n device: { type: String },\n iframeStyle: { type: String },\n }\n }\n static styles = css`\n :host {\n width: 100%;\n height: 100%;\n display: block;\n }\n\n iframe {\n display: flex;\n width: 100%;\n height: 100%;\n border: none;\n overflow: hidden;\n }\n .iframe-container {\n width: 100%;\n height: 100%;\n }\n .iframe-container.mobile {\n position: relative;\n display: flex;\n width: 400px;\n height: 800px;\n margin: auto;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.5);\n }\n `\n\n constructor() {\n super()\n\n this.iframe = ''\n this.device = 'desktop'\n\n window.addEventListener(\n 'message',\n (e) => {\n let message = e.data\n if (!message.height) return\n\n this.iframeStyle = `\n height: ${message.height}px;\n `\n },\n false\n )\n }\n\n firstUpdated() {\n this.content = this.innerHTML\n\n this.iframe = `\n \n \n \n {{ title }}\n \n \n \n \n \n \n ${this.content}\n \n \n \n `\n }\n\n render() {\n return html`
    \n \n
    `\n }\n}\n\ncustomElements.define('component-canvas', ComponentCanvas)\n","function e(e){return new Promise(function(n,r,t){(t=new XMLHttpRequest).open(\"GET\",e,t.withCredentials=!0),t.onload=function(){200===t.status?n():r()},t.send()})}var n,r=(n=document.createElement(\"link\")).relList&&n.relList.supports&&n.relList.supports(\"prefetch\")?function(e){return new Promise(function(n,r,t){(t=document.createElement(\"link\")).rel=\"prefetch\",t.href=e,t.onload=n,t.onerror=r,document.head.appendChild(t)})}:e,t=window.requestIdleCallback||function(e){var n=Date.now();return setTimeout(function(){e({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-n))}})},1)},o=new Set,i=new Set,c=!1;function a(e){if(e){if(e.saveData)return new Error(\"Save-Data is enabled\");if(/2g/.test(e.effectiveType))return new Error(\"network conditions are poor\")}return!0}function u(e){if(e||(e={}),window.IntersectionObserver){var n=function(e){e=e||1;var n=[],r=0;function t(){r0&&(n.shift()(),r++)}return[function(e){n.push(e)>1||t()},function(){r--,t()}]}(e.throttle||1/0),r=n[0],a=n[1],u=e.limit||1/0,l=e.origins||[location.hostname],d=e.ignores||[],h=e.delay||0,p=[],m=e.timeoutFn||t,w=\"function\"==typeof e.hrefFn&&e.hrefFn,g=e.prerender||!1;c=e.prerenderAndPrefetch||!1;var v=new IntersectionObserver(function(n){n.forEach(function(n){if(n.isIntersecting)p.push((n=n.target).href),function(e,n){n?setTimeout(e,n):e()}(function(){-1!==p.indexOf(n.href)&&(v.unobserve(n),(c||g)&&i.size<1?f(w?w(n):n.href).catch(function(n){if(!e.onError)throw n;e.onError(n)}):o.size-1&&p.splice(t)}})},{threshold:e.threshold||0});return m(function(){(e.el||document).querySelectorAll(\"a\").forEach(function(e){l.length&&!l.includes(e.hostname)||function e(n,r){return Array.isArray(r)?r.some(function(r){return e(n,r)}):(r.test||r).call(r,n.href,n)}(e,d)||v.observe(e)})},{timeout:e.timeout||2e3}),function(){o.clear(),v.disconnect()}}}function s(n,t,u){var s=a(navigator.connection);return s instanceof Error?Promise.reject(new Error(\"Cannot prefetch, \"+s.message)):(i.size>0&&!c&&console.warn(\"[Warning] You are using both prefetching and prerendering on the same document\"),Promise.all([].concat(n).map(function(n){if(!o.has(n))return o.add(n),(t?function(n){return window.fetch?fetch(n,{credentials:\"include\"}):e(n)}:r)(new URL(n,location.href).toString())})))}function f(e,n){var r=a(navigator.connection);if(r instanceof Error)return Promise.reject(new Error(\"Cannot prerender, \"+r.message));if(!HTMLScriptElement.supports(\"speculationrules\"))return s(e),Promise.reject(new Error(\"This browser does not support the speculation rules API. Falling back to prefetch.\"));if(document.querySelector('script[type=\"speculationrules\"]'))return Promise.reject(new Error(\"Speculation Rules is already defined and cannot be altered.\"));for(var t=0,u=[].concat(e);t0&&!c&&console.warn(\"[Warning] You are using both prefetching and prerendering on the same document\");var l=function(e){var n=document.createElement(\"script\");n.type=\"speculationrules\",n.text='{\"prerender\":[{\"source\": \"list\",\"urls\": [\"'+Array.from(e).join('\",\"')+'\"]}]}';try{document.head.appendChild(n)}catch(e){return e}return!0}(i);return!0===l?Promise.resolve():Promise.reject(l)}export{u as listen,s as prefetch,f as prerender};\n","import './components/desktop-menu/desktop-menu-modal.js'\nimport './components/desktop-menu/desktop-menu.js'\nimport './components/accordion-container/accordion-container.js'\nimport './components/menu-button/menu-button.js'\nimport './components/carousel/carousel.js'\nimport './components/modal-container/modal-container.js'\nimport './components/mobile-menu/mobile-menu.js'\nimport './components/contextual-menu/contextual-menu.js'\nimport './components/highlight-text/highlight-text.js'\nimport './components/filter-container/filter-container.js'\nimport './components/list-container/list-container.js'\nimport './components/paging-container/paging-container.js'\nimport './components/large-dropdown/large-dropdown.js'\nimport './components/filter-search-box/filter-search-box.js'\nimport './components/search-result/search-result.js'\nimport './components/form-container/form-container.js'\nimport './components/contact-form-container/contact-form-container.js'\nimport './components/dropdown-container/dropdown-container.js'\nimport './components/conditional-field/conditional-field.js'\nimport './components/radio-group/radio-group.js'\nimport './components/form-steps/form-steps.js'\nimport './components/popover-box/popover-box.js'\n\nimport './base.css'\nimport './util.css'\n\nimport './foundation/icons/toggle-icon.js'\nimport './foundation/icons/search-icon.js'\nimport './foundation/icons/close-icon.js'\nimport './foundation/icons/globe-icon.js'\nimport './foundation/icons/user-icon.js'\nimport './foundation/icons/arrow-right.js'\nimport './foundation/icons/arrow-left.js'\nimport './foundation/icons/facebook-icon.js'\nimport './foundation/icons/linkedin-icon.js'\nimport './foundation/icons/youtube-icon.js'\nimport './foundation/icons/contact-icon.js'\nimport './foundation/icons/send-icon.js'\nimport './foundation/icons/handshake-icon.js'\nimport './foundation/icons/buildings-icon.js'\nimport './foundation/icons/presentation-icon.js'\nimport './foundation/icons/mail-exclamation-icon.js'\nimport './foundation/icons/whistle-icon.js'\nimport './foundation/icons/briefcase-icon.js'\nimport './foundation/icons/bank-icon.js'\nimport './foundation/icons/chevron-icon.js'\nimport './foundation/icons/arrow-square.js'\nimport './foundation/icons/map-icon.js'\nimport './foundation/icons/mail-icon.js'\nimport './foundation/icons/wallet-icon.js'\nimport './foundation/icons/calendar-icon.js'\nimport './foundation/icons/deadline-icon.js'\nimport './foundation/icons/play-icon.js'\nimport './foundation/icons/phone-icon.js'\nimport './foundation/icons/circle-exclamation-icon.js'\nimport './foundation/icons/ghost-smile.js'\nimport './foundation/icons/laptop-xmark.js'\nimport './foundation/icons/questionmark-icon.js'\n\nimport './patterns/form/form.js'\n\nimport './global/datalayer-push.js'\n\nimport './foundation/colors/colors.css'\nimport './foundation/colors/colors.theme.invest.css'\nimport './foundation/colors/colors.theme.default.css'\nimport './foundation/colors/colors.theme.inspiration.css'\nimport './foundation/colors/colors.theme.regions.css'\nimport './foundation/colors/colors.theme.color.css'\n\nimport './foundation/type/type.css'\nimport './foundation/type/fonts.css'\nimport './foundation/type/tables.css'\n\nimport './layout/layout.css'\nimport './layout/header.css'\nimport './layout/header-mobile.css'\nimport './layout/main-nav.css'\nimport './layout/tools.css'\nimport './layout/main.css'\nimport './layout/util.css'\nimport './layout/contextual-nav.css'\nimport './layout/footer.css'\n\nimport './pages/start/article/article.css'\nimport './pages/start/search/search.css'\n\nimport './sections/contactform/contactform.css'\n\nimport './patterns/button/button.css'\nimport './patterns/dropdown-button/dropdown-button.css'\nimport './patterns/richtext/richtext.css'\nimport './patterns/content/content.css'\nimport './patterns/content-section/content-section.css'\nimport './patterns/content-list/content-list.css'\nimport './patterns/section/section.css'\nimport './patterns/grid/grid.css'\nimport './patterns/hero/hero.css'\nimport './patterns/card/card.css'\nimport './patterns/content-label/content-label.css'\nimport './patterns/card-small/card-small.css'\nimport './patterns/card-wide/card-wide.css'\nimport './patterns/card-text-below/card-text-below.css'\nimport './patterns/promotion-card-event/promotion-card-event.css'\nimport './patterns/promotion-card/promotion-card.css'\nimport './patterns/image-overlay/image-overlay.css'\nimport './patterns/faq/faq.css'\nimport './patterns/inline-faq/inline-faq.css'\nimport './patterns/signup/signup.css'\nimport './patterns/form/optimizely.css'\nimport './patterns/form/form.css'\nimport './patterns/form/radio-group.css'\nimport './patterns/topic/topic.css'\nimport './patterns/region-dropdown/region-dropdown.css'\nimport './patterns/page-hero/page-hero.css'\nimport './patterns/page-hero/page-hero-regions.css'\nimport './patterns/hero-page-image/hero-page-image.css'\nimport './patterns/hero-articlepage-image/hero-articlepage-image.css'\nimport './patterns/article-summary/article-summary.css'\nimport './patterns/breadcrumbs/breadcrumbs.css'\nimport './patterns/divider/divider.css'\nimport './patterns/quote/quote.css'\nimport './patterns/image/image.css'\nimport './patterns/image-grid/image-grid.css'\nimport './patterns/card-cta/card-cta.css'\nimport './patterns/filter/filter.css'\nimport './patterns/featured-cards/featured-cards.css'\nimport './patterns/usp/usp.css'\nimport './patterns/icon-card/icon-card.css'\nimport './patterns/statistics/statistics.css'\nimport './patterns/joblist/joblist.css'\nimport './patterns/details/details.css'\nimport './patterns/date-banner/date-banner.css'\nimport './patterns/gallery/gallery.css'\nimport './patterns/video/video.css'\nimport './patterns/container/container.css'\nimport './patterns/facts-card/facts-card.css'\nimport './patterns/alert-message/alert-message.css'\n\nimport './global/third-party.css'\n\n/* Todo: Exclude from main bundle */\nimport './_styleguide/elements/nav-container.js'\nimport './_styleguide/elements/almi-logotype.js'\nimport './_styleguide/elements/component-canvas.js'\n\nimport { listen } from 'quicklink'\n\nwindow.addEventListener('load', () => {\n listen()\n})\n"],"names":["t","globalThis","e","ShadowRoot","ShadyCSS","nativeShadow","Document","prototype","CSSStyleSheet","s","Symbol","o","WeakMap","n$3","constructor","this","_$cssResult$","Error","cssText","styleSheet","length","get","replaceSync","set","toString","i","reduce","n","c","cssRules","r","is","defineProperty","getOwnPropertyDescriptor","getOwnPropertyNames","h","getOwnPropertySymbols","getPrototypeOf","Object","a","trustedTypes","l","emptyScript","p","reactiveElementPolyfillSupport","d","u","toAttribute","Boolean","Array","JSON","stringify","fromAttribute","Number","parse","f","y","attribute","type","String","converter","reflect","hasChanged","metadata","litPropertyMetadata","b","HTMLElement","addInitializer","_$Ei","push","observedAttributes","finalize","_$Eh","keys","createProperty","state","elementProperties","noAccessor","getPropertyDescriptor","call","requestUpdate","configurable","enumerable","getPropertyOptions","hasOwnProperty","Map","finalized","properties","_$Eu","elementStyles","finalizeStyles","styles","isArray","Set","flat","reverse","unshift","toLowerCase","super","_$Ep","isUpdatePending","hasUpdated","_$Em","_$Ev","_$Eg","Promise","enableUpdating","_$AL","_$ES","forEach","addController","_$E_","add","renderRoot","isConnected","hostConnected","removeController","delete","size","createRenderRoot","shadowRoot","attachShadow","shadowRootOptions","adoptedStyleSheets","map","document","createElement","litNonce","setAttribute","textContent","appendChild","connectedCallback","disconnectedCallback","hostDisconnected","attributeChangedCallback","_$AK","_$EO","removeAttribute","C","_$EP","has","_$Ej","reject","scheduleUpdate","performUpdate","wrapped","shouldUpdate","willUpdate","hostUpdate","update","_$ET","_$AE","hostUpdated","firstUpdated","updated","updateComplete","getUpdateComplete","mode","ReactiveElement","reactiveElementVersions","createPolicy","createHTML","Math","random","slice","createComment","v","_","m","RegExp","g","$","x","_$litType$","strings","values","w","for","T","A","E","createTreeWalker","P","lastIndex","exec","test","startsWith","V","parts","el","currentNode","content","firstChild","replaceWith","childNodes","nextNode","nodeType","hasAttributes","getAttributeNames","endsWith","getAttribute","split","index","name","ctor","k","H","I","R","tagName","append","data","indexOf","innerHTML","N","_$Co","_$Cl","_$litDirective$","_$AO","_$AT","_$AS","S","_$AV","_$AN","_$AD","_$AM","parentNode","_$AU","creationScope","importNode","M","nextSibling","L","_$AI","_$Cv","_$AH","_$AA","_$AB","options","startNode","endNode","_$AR","iterator","insertBefore","createTextNode","_$AC","_$AP","remove","setConnected","element","fill","O","arguments","toggleAttribute","capture","once","passive","removeEventListener","addEventListener","handleEvent","host","Z","litHtmlPolyfillSupport","litHtmlVersions","s$1","renderOptions","_$Do","renderBefore","render","_$litPart$","_$litElement$","litElementHydrateSupport","LitElement","litElementPolyfillSupport","litElementVersions","static","css","open","handleEscPress","bind","handleTriggerClick","closeDialog","_trigger","querySelector","_menuContainer","initTrigger","changedProperties","initDialog","dispatchEvent","CustomEvent","bubbles","setTimeout","window","closed","preventDefault","key","html","stopPropagation","customElements","define","Modal","DesktopMenu","resetBorderPosition","_border","style","width","offsetWidth","left","offsetLeft","classList","observer","MutationObserver","mutations","mutation","attributeName","target","querySelectorAll","trigger","observe","attributes","currentPage","triggers","setPositionHeader","zoom","outerWidth","innerWidth","header","position","currentNav","query","location","pathname","nav","replace","Accordion","AccordionItem","_regionId","Date","now","floor","_labelId","toggle","wasOpen","button","MenuButton","Carousel","visibleCount","leftDisabled","rightDisabled","positionPercentage","sliderWidth","nextLabel","previousLabel","navigation","itemWidth","items","gap","offset","init","_changedProperties","slider","parentWidth","clientWidth","getVisibleCount","convertRemToPixels","getComputedStyle","body","getPropertyValue","item","minWidth","maxWidth","outer","scrollWidth","scroll","top","availableWidth","handleScroll","scrollLeft","move","direction","behavior","rem","parseFloat","documentElement","fontSize","CarouselItem","prepend","setTriggerKeydownEvents","console","log","handleTriggerKeyDown","focus","stopVideo","iframe","src","video","pause","click","MobileMenu","checkForScroll","overscrollBehavior","inner","scrollHeight","clientHeight","removeProperty","MobileMenuItem","expanded","_toggleButton","_id","substring","detail","children","toggleButton","toggleChildren","ContextualMenu","_selectedItem","_wait","_observer","handleResize","disconnect","initScrollSpyObserver","setSelectedItem","_items","settings","root","rootMargin","innerHeight","threshold","IntersectionObserver","entries","entry","isIntersecting","divider","getPreviousDivider","id","history","replaceState","search","elem","matches","sibling","previousElementSibling","hasSelected","dataset","scrollTo","ContextualMenuItem","selected","handleAnchorClick","_anchor","currentTarget","href","targetDivider","getElementById","closest","scrollOffset","offsetHeight","offsetTop","ContextualMenuToggle","isMobile","matchMedia","ContextualMenuTrack","i$1","_$Ct","_$Ci","e$1","et","directiveName","vt","raw","resultType","Highlight","hover","active","computedStyle","_align","unsafeHTML","FilterContainer","listContainer","groups","handleFilter","handleFilterItemInitialized","using","cache","syncParamsWithElements","newParams","group","concat","buttons","handleButtonClick","initButtons","from","filter","value","text","innerText","some","param","url","createUrl","current","clearAll","isSelected","Event","searchParams","URLSearchParams","URL","protocol","hostname","allButton","inputField","handleInput","ListContainer","loading","reloading","total","prefetch","nofetch","handleSearchResult","handleFilterUpdate","handlePagingUpdate","prefetchUrl","pagingContainer","path","pageNo","fetchUrl","initial","fromEntries","fetchResult","timeout","fetchAndUpdateItems","clearTimeout","async","result","insertAdjacentHTML","count","childElementCount","getResultFromCache","response","fetch","headers","cacheResult","sessionStorage","setItem","getItem","PagingContainer","visible","handleListUpdate","display","params","page","parseInt","LargeDropdown","summary","selectedSummary","handleOptionSelect","handleUpKey","handleDownKey","handleEscKey","dropdown","option","handleClickOutside","undefined","nextElementSibling","DropdownOption","description","composed","FilterSearchBox","searchResult","searchPageHero","clearButton","searchButton","form","detectKeyboardNav","valueOnChange","clearInputValue","urlWithoutQueryParams","origin","pushState","searchFunction","createUrlSearch","checkInputValue","syncParamsWithSearchResult","event","currentlySelectedFilter","filterCategory","filterSearchName","searchQuery","currentValue","trim","previousValue","updateUI","hasValue","ok","then","searchValue","finally","resultTitle","searchresult","listTitle","handleSearchResultUpdate","updateSearchResultVisibility","queryParams","title","success","formSent","formError","submitButton","action","inputElement","checkValidity","reportValidity","scrollIntoView","block","submitForm","formData","FormData","method","getBoundingClientRect","scrollTop","error","catch","sentmessage","errormessage","FormContainer","hidden","contactButton","closeButton","showForm","hideForm","reset","DropdownContainer","ConditionalField","activator","nestedCondition","secondActivator","input","handleChange","nameOfInput","field","checked","disabled","FormSteps","steps","handleNextStep","handlePreviousStep","step","previousStep","nextStep","next","previous","ariaLabel","FormStep","nextButtonText","backButtonText","handleNext","stepValid","file","files","max","setCustomValidity","message","handlePrevious","nextButton","prevButton","actions","whenDefined","formSteps","sectorSelect","otherSectorInput","otherSectorLabel","infoText","greentechNo","swedishBasedNo","greentechYes","swedishBasedYes","toggleOtherSectorInput","checkFormConditions","addSubmitButtonLogic","Popover","handleKeyDown","handleFocusOut","removeClassName","tooltipToggle","tooltip","contains","relatedTarget","ToggleIcon","SearchIcon","CloseIcon","IconBase","Icon","ArrowRight","ArrowLeft","ChevronIcon","ArrowSquare","PlayIcon","Questionmark","inputFields","formContainer","formContainerId","dataLayer","formType","$$epiforms","on","toggleClass","applySavedToggleState","metaKey","localStorage","savedClassValue","Logotype","ComponentCanvas","device","iframeStyle","height","XMLHttpRequest","withCredentials","onload","status","send","relList","supports","rel","onerror","head","requestIdleCallback","didTimeout","timeRemaining","saveData","effectiveType","navigator","connection","warn","all","credentials","HTMLScriptElement","join","resolve","shift","throttle","limit","origins","ignores","delay","timeoutFn","hrefFn","prerender","prerenderAndPrefetch","unobserve","onError","priority","splice","includes","listen"],"mappings":";;;;;AAKA,MAAMA,EAAEC,WAAWC,EAAEF,EAAEG,kBAAa,IAASH,EAAEI,UAAUJ,EAAEI,SAASC,eAAe,uBAAuBC,SAASC,WAAW,YAAYC,cAAcD,UAAUE,EAAEC,SAASC,EAAE,IAAIC,QAAQ,IAAAC,EAAA,MAAQ,WAAAC,CAAYd,EAAEE,EAAES,GAAG,GAAGI,KAAKC,cAAa,EAAGL,IAAIF,EAAE,MAAMQ,MAAM,qEAAqEF,KAAKG,QAAQlB,EAAEe,KAAKf,EAAEE,CAAC,CAAC,cAAIiB,GAAa,IAAInB,EAAEe,KAAKJ,EAAE,MAAMF,EAAEM,KAAKf,EAAE,GAAGE,QAAG,IAASF,EAAE,CAAC,MAAME,OAAE,IAASO,GAAG,IAAIA,EAAEW,OAAOlB,IAAIF,EAAEW,EAAEU,IAAIZ,SAAI,IAAST,KAAKe,KAAKJ,EAAEX,EAAE,IAAIQ,eAAec,YAAYP,KAAKG,SAAShB,GAAGS,EAAEY,IAAId,EAAET,GAAG,CAAC,OAAOA,CAAC,CAAC,QAAAwB,GAAW,OAAOT,KAAKG,OAAO,GAAE,MAAqDO,EAAE,CAACzB,KAAKE,KAAK,MAAMS,EAAE,IAAIX,EAAEoB,OAAOpB,EAAE,GAAGE,EAAEwB,QAAQ,CAACxB,EAAEO,EAAEE,IAAIT,EAAE,CAACF,IAAI,IAAG,IAAKA,EAAEgB,aAAa,OAAOhB,EAAEkB,QAAQ,GAAG,iBAAiBlB,EAAE,OAAOA,EAAE,MAAMiB,MAAM,mEAAmEjB,EAAE,uFAAwF,EAArP,CAAuPS,GAAGT,EAAEW,EAAE,IAAIX,EAAE,IAAI,OAAO,IAAI2B,EAAEhB,EAAEX,EAAES,EAAC,EAA0PmB,EAAE1B,EAAEF,GAAGA,EAAEA,GAAGA,aAAaQ,cAAc,CAACR,IAAI,IAAIE,EAAE,GAAG,IAAI,MAAMO,KAAKT,EAAE6B,SAAS3B,GAAGO,EAAES,QAAQ,MAAztBlB,IAAG,IAAI2B,EAAE,iBAAiB3B,EAAEA,EAAEA,EAAE,QAAG,EAAOS,GAAsrBqB,CAAE5B,EAAG,EAAjE,CAAmEF,GAAGA;;;;;KCAlzC+B,GAAGN,EAAEO,eAAe9B,EAAE+B,yBAAyBH,EAAEI,oBAAoBC,EAAEC,sBAAsBzB,EAAE0B,eAAeV,GAAGW,OAAOC,EAAEtC,WAAW2B,EAAEW,EAAEC,aAAaC,EAAEb,EAAEA,EAAEc,YAAY,GAAGC,EAAEJ,EAAEK,+BAA+BC,EAAE,CAAC7C,EAAES,IAAIT,EAAE8C,EAAE,CAAC,WAAAC,CAAY/C,EAAES,GAAG,OAAOA,GAAG,KAAKuC,QAAQhD,EAAEA,EAAEyC,EAAE,KAAK,MAAM,KAAKH,OAAO,KAAKW,MAAMjD,EAAE,MAAMA,EAAEA,EAAEkD,KAAKC,UAAUnD,GAAG,OAAOA,CAAC,EAAE,aAAAoD,CAAcpD,EAAES,GAAG,IAAIgB,EAAEzB,EAAE,OAAOS,GAAG,KAAKuC,QAAQvB,EAAE,OAAOzB,EAAE,MAAM,KAAKqD,OAAO5B,EAAE,OAAOzB,EAAE,KAAKqD,OAAOrD,GAAG,MAAM,KAAKsC,OAAO,KAAKW,MAAM,IAAIxB,EAAEyB,KAAKI,MAAMtD,EAAE,CAAC,MAAMA,GAAGyB,EAAE,IAAI,EAAE,OAAOA,CAAC,GAAG8B,EAAE,CAACvD,EAAES,KAAKgB,EAAEzB,EAAES,GAAG+C,EAAE,CAACC,WAAU,EAAGC,KAAKC,OAAOC,UAAUd,EAAEe,SAAQ,EAAGC,WAAWP,GAAG7C,OAAOqD,WAAWrD,OAAO,YAAY6B,EAAEyB,sBAAsB,IAAIpD,QAAQ,MAAMqD,UAAUC,YAAY,qBAAOC,CAAenE,GAAGe,KAAKqD,QAAQrD,KAAK0B,IAAI,IAAI4B,KAAKrE,EAAE,CAAC,6BAAWsE,GAAqB,OAAOvD,KAAKwD,WAAWxD,KAAKyD,MAAM,IAAIzD,KAAKyD,KAAKC,OAAO,CAAC,qBAAOC,CAAe1E,EAAES,EAAE+C,GAAG,GAAG/C,EAAEkE,QAAQlE,EAAEgD,WAAU,GAAI1C,KAAKqD,OAAOrD,KAAK6D,kBAAkBrD,IAAIvB,EAAES,IAAIA,EAAEoE,WAAW,CAAC,MAAMpD,EAAEf,SAASoB,EAAEf,KAAK+D,sBAAsB9E,EAAEyB,EAAEhB,QAAG,IAASqB,GAAG5B,EAAEa,KAAKR,UAAUP,EAAE8B,EAAE,CAAC,CAAC,4BAAOgD,CAAsB9E,EAAES,EAAEgB,GAAG,MAAMJ,IAAInB,EAAEqB,IAAIY,GAAGL,EAAEf,KAAKR,UAAUP,IAAI,CAAC,GAAAqB,GAAM,OAAON,KAAKN,EAAE,EAAE,GAAAc,CAAIvB,GAAGe,KAAKN,GAAGT,CAAC,GAAG,MAAM,CAAC,GAAAqB,GAAM,OAAOnB,GAAG6E,KAAKhE,KAAK,EAAE,GAAAQ,CAAId,GAAG,MAAMqB,EAAE5B,GAAG6E,KAAKhE,MAAMoB,EAAE4C,KAAKhE,KAAKN,GAAGM,KAAKiE,cAAchF,EAAE8B,EAAEL,EAAE,EAAEwD,cAAa,EAAGC,YAAW,EAAG,CAAC,yBAAOC,CAAmBnF,GAAG,OAAOe,KAAK6D,kBAAkBvD,IAAIrB,IAAIwD,CAAC,CAAC,WAAOY,GAAO,GAAGrD,KAAKqE,eAAevC,EAAE,sBAAsB,OAAO,MAAM7C,EAAE2B,EAAEZ,MAAMf,EAAEuE,gBAAW,IAASvE,EAAEyC,IAAI1B,KAAK0B,EAAE,IAAIzC,EAAEyC,IAAI1B,KAAK6D,kBAAkB,IAAIS,IAAIrF,EAAE4E,kBAAkB,CAAC,eAAOL,GAAW,GAAGxD,KAAKqE,eAAevC,EAAE,cAAc,OAAO,GAAG9B,KAAKuE,WAAU,EAAGvE,KAAKqD,OAAOrD,KAAKqE,eAAevC,EAAE,eAAe,CAAC,MAAM7C,EAAEe,KAAKwE,WAAW9E,EAAE,IAAI0B,EAAEnC,MAAMW,EAAEX,IAAI,IAAI,MAAMyB,KAAKhB,EAAEM,KAAK2D,eAAejD,EAAEzB,EAAEyB,GAAG,CAAC,MAAMzB,EAAEe,KAAKL,OAAOqD,UAAU,GAAG,OAAO/D,EAAE,CAAC,MAAMS,EAAEuD,oBAAoB3C,IAAIrB,GAAG,QAAG,IAASS,EAAE,IAAI,MAAMT,EAAEyB,KAAKhB,EAAEM,KAAK6D,kBAAkBrD,IAAIvB,EAAEyB,EAAE,CAACV,KAAKyD,KAAK,IAAIa,IAAI,IAAI,MAAMrF,EAAES,KAAKM,KAAK6D,kBAAkB,CAAC,MAAMnD,EAAEV,KAAKyE,KAAKxF,EAAES,QAAG,IAASgB,GAAGV,KAAKyD,KAAKjD,IAAIE,EAAEzB,EAAE,CAACe,KAAK0E,cAAc1E,KAAK2E,eAAe3E,KAAK4E,OAAO,CAAC,qBAAOD,CAAejF,GAAG,MAAMgB,EAAE,GAAG,GAAGwB,MAAM2C,QAAQnF,GAAG,CAAC,MAAMP,EAAE,IAAI2F,IAAIpF,EAAEqF,KAAK,KAAKC,WAAW,IAAI,MAAMtF,KAAKP,EAAEuB,EAAEuE,QAAQhG,EAAES,GAAG,WAAM,IAASA,GAAGgB,EAAE4C,KAAKrE,EAAES,IAAI,OAAOgB,CAAC,CAAC,WAAO+D,CAAKxF,EAAES,GAAG,MAAMgB,EAAEhB,EAAEgD,UAAU,OAAM,IAAKhC,OAAE,EAAO,iBAAiBA,EAAEA,EAAE,iBAAiBzB,EAAEA,EAAEiG,mBAAc,CAAM,CAAC,WAAAnF,GAAcoF,QAAQnF,KAAKoF,UAAK,EAAOpF,KAAKqF,iBAAgB,EAAGrF,KAAKsF,YAAW,EAAGtF,KAAKuF,KAAK,KAAKvF,KAAKwF,MAAM,CAAC,IAAAA,GAAOxF,KAAKyF,KAAK,IAAIC,SAASzG,GAAGe,KAAK2F,eAAe1G,IAAIe,KAAK4F,KAAK,IAAItB,IAAItE,KAAK6F,OAAO7F,KAAKiE,gBAAgBjE,KAAKD,YAAY2B,GAAGoE,SAAS7G,GAAGA,EAAEe,OAAO,CAAC,aAAA+F,CAAc9G,IAAIe,KAAKgG,OAAO,IAAIlB,KAAKmB,IAAIhH,QAAG,IAASe,KAAKkG,YAAYlG,KAAKmG,aAAalH,EAAEmH,iBAAiB,CAAC,gBAAAC,CAAiBpH,GAAGe,KAAKgG,MAAMM,OAAOrH,EAAE,CAAC,IAAA4G,GAAO,MAAM5G,EAAE,IAAIqF,IAAI5E,EAAEM,KAAKD,YAAY8D,kBAAkB,IAAI,MAAMnD,KAAKhB,EAAEgE,OAAO1D,KAAKqE,eAAe3D,KAAKzB,EAAEuB,IAAIE,EAAEV,KAAKU,WAAWV,KAAKU,IAAIzB,EAAEsH,KAAK,IAAIvG,KAAKoF,KAAKnG,EAAE,CAAC,gBAAAuH,GAAmB,MAAMvH,EAAEe,KAAKyG,YAAYzG,KAAK0G,aAAa1G,KAAKD,YAAY4G,mBAAmB,MDAhiE,EAACjH,EAAEE,KAAK,GAAGT,EAAEO,EAAEkH,mBAAmBhH,EAAEiH,KAAK5H,GAAGA,aAAaQ,cAAcR,EAAEA,EAAEmB,kBAAkB,IAAI,MAAMjB,KAAKS,EAAE,CAAC,MAAMA,EAAEkH,SAASC,cAAc,SAASnG,EAAE3B,EAAE+H,cAAS,IAASpG,GAAGhB,EAAEqH,aAAa,QAAQrG,GAAGhB,EAAEsH,YAAY/H,EAAEgB,QAAQT,EAAEyH,YAAYvH,EAAE,GCAqzDF,CAAET,EAAEe,KAAKD,YAAY2E,eAAezF,CAAC,CAAC,iBAAAmI,GAAoBpH,KAAKkG,aAAalG,KAAKwG,mBAAmBxG,KAAK2F,gBAAe,GAAI3F,KAAKgG,MAAMF,SAAS7G,GAAGA,EAAEmH,mBAAmB,CAAC,cAAAT,CAAe1G,GAAE,CAAE,oBAAAoI,GAAuBrH,KAAKgG,MAAMF,SAAS7G,GAAGA,EAAEqI,sBAAsB,CAAC,wBAAAC,CAAyBtI,EAAES,EAAEgB,GAAGV,KAAKwH,KAAKvI,EAAEyB,EAAE,CAAC,IAAA+G,CAAKxI,EAAES,GAAG,MAAMgB,EAAEV,KAAKD,YAAY8D,kBAAkBvD,IAAIrB,GAAGE,EAAEa,KAAKD,YAAY0E,KAAKxF,EAAEyB,GAAG,QAAG,IAASvB,IAAG,IAAKuB,EAAEoC,QAAQ,CAAC,MAAM/B,QAAG,IAASL,EAAEmC,WAAWb,YAAYtB,EAAEmC,UAAUd,GAAGC,YAAYtC,EAAEgB,EAAEiC,MAAM3C,KAAKuF,KAAKtG,EAAE,MAAM8B,EAAEf,KAAK0H,gBAAgBvI,GAAGa,KAAKiH,aAAa9H,EAAE4B,GAAGf,KAAKuF,KAAK,IAAI,CAAC,CAAC,IAAAiC,CAAKvI,EAAES,GAAG,MAAMgB,EAAEV,KAAKD,YAAYZ,EAAEuB,EAAE+C,KAAKnD,IAAIrB,GAAG,QAAG,IAASE,GAAGa,KAAKuF,OAAOpG,EAAE,CAAC,MAAMF,EAAEyB,EAAE0D,mBAAmBjF,GAAG4B,EAAE,mBAAmB9B,EAAE4D,UAAU,CAACR,cAAcpD,EAAE4D,gBAAW,IAAS5D,EAAE4D,WAAWR,cAAcpD,EAAE4D,UAAUd,EAAE/B,KAAKuF,KAAKpG,EAAEa,KAAKb,GAAG4B,EAAEsB,cAAc3C,EAAET,EAAE0D,MAAM3C,KAAKuF,KAAK,IAAI,CAAC,CAAC,aAAAtB,CAAchF,EAAES,EAAEgB,EAAEvB,GAAE,EAAG4B,GAAG,QAAG,IAAS9B,EAAE,CAAC,GAAGyB,IAAIV,KAAKD,YAAYqE,mBAAmBnF,KAAKyB,EAAEqC,YAAYP,GAAGrD,EAAE4B,EAAEf,KAAKf,GAAGS,GAAG,OAAOM,KAAK2H,EAAE1I,EAAES,EAAEgB,EAAE,EAAC,IAAKV,KAAKqF,kBAAkBrF,KAAKyF,KAAKzF,KAAK4H,OAAO,CAAC,CAAAD,CAAE1I,EAAES,EAAEgB,GAAGV,KAAK4F,KAAKiC,IAAI5I,IAAIe,KAAK4F,KAAKpF,IAAIvB,EAAES,IAAG,IAAKgB,EAAEoC,SAAS9C,KAAKuF,OAAOtG,IAAIe,KAAK8H,OAAO,IAAIhD,KAAKmB,IAAIhH,EAAE,CAAC,UAAM2I,GAAO5H,KAAKqF,iBAAgB,EAAG,UAAUrF,KAAKyF,IAAI,CAAC,MAAMxG,GAAGyG,QAAQqC,OAAO9I,EAAE,CAAC,MAAMA,EAAEe,KAAKgI,iBAAiB,OAAO,MAAM/I,SAASA,GAAGe,KAAKqF,eAAe,CAAC,cAAA2C,GAAiB,OAAOhI,KAAKiI,eAAe,CAAC,aAAAA,GAAgB,IAAIjI,KAAKqF,gBAAgB,OAAO,IAAIrF,KAAKsF,WAAW,CAAC,GAAGtF,KAAKkG,aAAalG,KAAKwG,mBAAmBxG,KAAKoF,KAAK,CAAC,IAAI,MAAMnG,EAAES,KAAKM,KAAKoF,KAAKpF,KAAKf,GAAGS,EAAEM,KAAKoF,UAAK,CAAM,CAAC,MAAMnG,EAAEe,KAAKD,YAAY8D,kBAAkB,GAAG5E,EAAEsH,KAAK,EAAE,IAAI,MAAM7G,EAAEgB,KAAKzB,GAAE,IAAKyB,EAAEwH,SAASlI,KAAK4F,KAAKiC,IAAInI,SAAI,IAASM,KAAKN,IAAIM,KAAK2H,EAAEjI,EAAEM,KAAKN,GAAGgB,EAAE,CAAC,IAAIzB,GAAE,EAAG,MAAMS,EAAEM,KAAK4F,KAAK,IAAI3G,EAAEe,KAAKmI,aAAazI,GAAGT,GAAGe,KAAKoI,WAAW1I,GAAGM,KAAKgG,MAAMF,SAAS7G,GAAGA,EAAEoJ,iBAAiBrI,KAAKsI,OAAO5I,IAAIM,KAAKuI,MAAM,CAAC,MAAM7I,GAAG,MAAMT,GAAE,EAAGe,KAAKuI,OAAO7I,CAAC,CAACT,GAAGe,KAAKwI,KAAK9I,EAAE,CAAC,UAAA0I,CAAWnJ,GAAE,CAAE,IAAAuJ,CAAKvJ,GAAGe,KAAKgG,MAAMF,SAAS7G,GAAGA,EAAEwJ,kBAAkBzI,KAAKsF,aAAatF,KAAKsF,YAAW,EAAGtF,KAAK0I,aAAazJ,IAAIe,KAAK2I,QAAQ1J,EAAE,CAAC,IAAAsJ,GAAOvI,KAAK4F,KAAK,IAAItB,IAAItE,KAAKqF,iBAAgB,CAAE,CAAC,kBAAIuD,GAAiB,OAAO5I,KAAK6I,mBAAmB,CAAC,iBAAAA,GAAoB,OAAO7I,KAAKyF,IAAI,CAAC,YAAA0C,CAAalJ,GAAG,OAAM,CAAE,CAAC,MAAAqJ,CAAOrJ,GAAGe,KAAK8H,OAAO9H,KAAK8H,KAAKhC,SAAS7G,GAAGe,KAAKyH,KAAKxI,EAAEe,KAAKf,MAAMe,KAAKuI,MAAM,CAAC,OAAAI,CAAQ1J,GAAI,CAAA,YAAAyJ,CAAazJ,GAAE,EAAGiE,EAAEwB,cAAc,GAAGxB,EAAEyD,kBAAkB,CAACmC,KAAK,QAAQ5F,EAAEpB,EAAE,sBAAsB,IAAIwC,IAAIpB,EAAEpB,EAAE,cAAc,IAAIwC,IAAI1C,IAAI,CAACmH,gBAAgB7F,KAAK1B,EAAEwH,0BAA0B,IAAI1F,KAAK;;;;;;ACAv7K,MAACrE,EAAEC,WAAWwB,EAAEzB,EAAEwC,aAAa/B,EAAEgB,EAAEA,EAAEuI,aAAa,WAAW,CAACC,WAAWjK,GAAGA,SAAI,EAAOE,EAAE,QAAQiC,EAAE,QAAQ+H,KAAKC,SAAS,IAAIC,MAAM,MAAMzJ,EAAE,IAAIwB,EAAER,EAAE,IAAIhB,KAAKmB,EAAE+F,SAASpF,EAAE,IAAIX,EAAEuI,cAAc,IAAIzI,EAAE5B,GAAG,OAAOA,GAAG,iBAAiBA,GAAG,mBAAmBA,EAAEuC,EAAEU,MAAM2C,QAA2D/C,EAAE,cAAcU,EAAE,sDAAsD+G,EAAE,OAAOC,EAAE,KAAKC,EAAEC,OAAO,KAAK5H,sBAAsBA,MAAMA,uCAAuC,KAAKF,EAAE,KAAK+H,EAAE,KAAKC,EAAE,qCAAwFC,EAAjD5K,IAAG,CAACyB,KAAKhB,KAAK,CAACoK,WAAW7K,EAAE8K,QAAQrJ,EAAEsJ,OAAOtK,IAAM+C,CAAE,GAAUwH,EAAEtK,OAAOuK,IAAI,gBAAgBC,EAAExK,OAAOuK,IAAI,eAAeE,EAAE,IAAIvK,QAAQwK,EAAEtJ,EAAEuJ,iBAAiBvJ,EAAE,KAAK,SAAS4G,EAAE1I,EAAEyB,GAAG,IAAIwB,MAAM2C,QAAQ5F,KAAKA,EAAEoF,eAAe,OAAO,MAAMnE,MAAM,kCAAkC,YAAO,IAASR,EAAEA,EAAEwJ,WAAWxI,GAAGA,CAAC,CAAC,MAAM6J,EAAE,CAACtL,EAAEyB,KAAK,MAAMhB,EAAET,EAAEoB,OAAO,EAAET,EAAE,GAAG,IAAImB,EAAEW,EAAE,IAAIhB,EAAE,QAAQ,GAAGG,EAAE2B,EAAE,IAAI,IAAI9B,EAAE,EAAEA,EAAEhB,EAAEgB,IAAI,CAAC,MAAMhB,EAAET,EAAEyB,GAAG,IAAIc,EAAEO,EAAED,GAAG,EAAEW,EAAE,EAAE,KAAKA,EAAE/C,EAAEW,SAASQ,EAAE2J,UAAU/H,EAAEV,EAAElB,EAAE4J,KAAK/K,GAAG,OAAOqC,IAAIU,EAAE5B,EAAE2J,UAAU3J,IAAI2B,EAAE,QAAQT,EAAE,GAAGlB,EAAE0I,OAAE,IAASxH,EAAE,GAAGlB,EAAE2I,OAAE,IAASzH,EAAE,IAAI6H,EAAEc,KAAK3I,EAAE,MAAMhB,EAAE2I,OAAO,KAAK3H,EAAE,GAAG,MAAMlB,EAAE4I,QAAG,IAAS1H,EAAE,KAAKlB,EAAE4I,GAAG5I,IAAI4I,EAAE,MAAM1H,EAAE,IAAIlB,EAAEE,GAAGyB,EAAEV,GAAG,QAAG,IAASC,EAAE,GAAGD,GAAG,GAAGA,EAAEjB,EAAE2J,UAAUzI,EAAE,GAAG1B,OAAOmB,EAAEO,EAAE,GAAGlB,OAAE,IAASkB,EAAE,GAAG0H,EAAE,MAAM1H,EAAE,GAAG4H,EAAE/H,GAAGf,IAAI8I,GAAG9I,IAAIe,EAAEf,EAAE4I,EAAE5I,IAAI0I,GAAG1I,IAAI2I,EAAE3I,EAAE2B,GAAG3B,EAAE4I,EAAE1I,OAAE,GAAQ,MAAM8I,EAAEhJ,IAAI4I,GAAGxK,EAAEyB,EAAE,GAAGiK,WAAW,MAAM,IAAI,GAAGjJ,GAAGb,IAAI2B,EAAE9C,EAAEkB,EAAEkB,GAAG,GAAGlC,EAAE0D,KAAK9B,GAAG9B,EAAE2J,MAAM,EAAEvH,GAAG3C,EAAEO,EAAE2J,MAAMvH,GAAGV,EAAEyI,GAAGnK,EAAE0B,IAAI,IAAIU,EAAEpB,EAAEmJ,EAAE,CAAC,MAAM,CAAClC,EAAE1I,EAAEyC,GAAGzC,EAAES,IAAI,QAAQ,IAAIgB,EAAE,SAAS,KAAKd,EAAC,EAAG,MAAMgL,EAAE,WAAA7K,EAAagK,QAAQ9K,EAAE6K,WAAWpK,GAAGkB,GAAG,IAAIG,EAAEf,KAAK6K,MAAM,GAAG,IAAIhK,EAAE,EAAEW,EAAE,EAAE,MAAMO,EAAE9C,EAAEoB,OAAO,EAAEyB,EAAE9B,KAAK6K,OAAOrI,EAAE+G,GAAGgB,EAAEtL,EAAES,GAAG,GAAGM,KAAK8K,GAAGF,EAAE7D,cAAcvE,EAAE5B,GAAGyJ,EAAEU,YAAY/K,KAAK8K,GAAGE,QAAQ,IAAItL,EAAE,CAAC,MAAMT,EAAEe,KAAK8K,GAAGE,QAAQC,WAAWhM,EAAEiM,eAAejM,EAAEkM,WAAW,CAAC,KAAK,QAAQpK,EAAEsJ,EAAEe,aAAatJ,EAAEzB,OAAO0B,GAAG,CAAC,GAAG,IAAIhB,EAAEsK,SAAS,CAAC,GAAGtK,EAAEuK,gBAAgB,IAAI,MAAMrM,KAAK8B,EAAEwK,oBAAoB,GAAGtM,EAAEuM,SAASrM,GAAG,CAAC,MAAMuB,EAAE6I,EAAE/H,KAAK9B,EAAEqB,EAAE0K,aAAaxM,GAAGyM,MAAMtK,GAAGjC,EAAE,eAAesL,KAAK/J,GAAGoB,EAAEwB,KAAK,CAACX,KAAK,EAAEgJ,MAAM9K,EAAE+K,KAAKzM,EAAE,GAAG4K,QAAQrK,EAAEmM,KAAK,MAAM1M,EAAE,GAAG2M,EAAE,MAAM3M,EAAE,GAAG4M,GAAE,MAAM5M,EAAE,GAAG6M,GAAEC,IAAIlL,EAAE2G,gBAAgBzI,EAAE,MAAMA,EAAE0L,WAAWvJ,KAAKU,EAAEwB,KAAK,CAACX,KAAK,EAAEgJ,MAAM9K,IAAIE,EAAE2G,gBAAgBzI,IAAI,GAAG2K,EAAEc,KAAK3J,EAAEmL,SAAS,CAAC,MAAMjN,EAAE8B,EAAEmG,YAAYwE,MAAMtK,GAAG1B,EAAET,EAAEoB,OAAO,EAAE,GAAGX,EAAE,EAAE,CAACqB,EAAEmG,YAAYxG,EAAEA,EAAEiB,YAAY,GAAG,IAAI,IAAIjB,EAAE,EAAEA,EAAEhB,EAAEgB,IAAIK,EAAEoL,OAAOlN,EAAEyB,GAAGgB,KAAK2I,EAAEe,WAAWtJ,EAAEwB,KAAK,CAACX,KAAK,EAAEgJ,QAAQ9K,IAAIE,EAAEoL,OAAOlN,EAAES,GAAGgC,IAAI,CAAC,CAAC,MAAM,GAAG,IAAIX,EAAEsK,SAAS,GAAGtK,EAAEqL,OAAOxM,EAAEkC,EAAEwB,KAAK,CAACX,KAAK,EAAEgJ,MAAM9K,QAAQ,CAAC,IAAI5B,GAAG,EAAE,MAAM,KAAKA,EAAE8B,EAAEqL,KAAKC,QAAQjL,EAAEnC,EAAE,KAAK6C,EAAEwB,KAAK,CAACX,KAAK,EAAEgJ,MAAM9K,IAAI5B,GAAGmC,EAAEf,OAAO,CAAC,CAACQ,GAAG,CAAC,CAAC,oBAAOkG,CAAc9H,EAAEyB,GAAG,MAAMhB,EAAEqB,EAAEgG,cAAc,YAAY,OAAOrH,EAAE4M,UAAUrN,EAAES,CAAC,EAAE,SAAS6M,EAAEtN,EAAEyB,EAAEhB,EAAET,EAAEE,GAAG,GAAGuB,IAAIuJ,EAAE,OAAOvJ,EAAE,IAAIU,OAAE,IAASjC,EAAEO,EAAE8M,OAAOrN,GAAGO,EAAE+M,KAAK,MAAM7M,EAAEiB,EAAEH,QAAG,EAAOA,EAAEgM,gBAAgB,OAAOtL,GAAGrB,cAAcH,IAAIwB,GAAGuL,QAAO,QAAI,IAAS/M,EAAEwB,OAAE,GAAQA,EAAE,IAAIxB,EAAEX,GAAGmC,EAAEwL,KAAK3N,EAAES,EAAEP,SAAI,IAASA,GAAGO,EAAE8M,OAAO,IAAIrN,GAAGiC,EAAE1B,EAAE+M,KAAKrL,QAAG,IAASA,IAAIV,EAAE6L,EAAEtN,EAAEmC,EAAEyL,KAAK5N,EAAEyB,EAAEsJ,QAAQ5I,EAAEjC,IAAIuB,CAAC,CAAC,MAAMoM,EAAE,WAAA/M,CAAYd,EAAEyB,GAAGV,KAAK+M,KAAK,GAAG/M,KAAKgN,UAAK,EAAOhN,KAAKiN,KAAKhO,EAAEe,KAAKkN,KAAKxM,CAAC,CAAC,cAAIyM,GAAa,OAAOnN,KAAKkN,KAAKC,UAAU,CAAC,QAAIC,GAAO,OAAOpN,KAAKkN,KAAKE,IAAI,CAAC,CAAArL,CAAE9C,GAAG,MAAM6L,IAAIE,QAAQtK,GAAGmK,MAAMnL,GAAGM,KAAKiN,KAAK9N,GAAGF,GAAGoO,eAAetM,GAAGuM,WAAW5M,GAAE,GAAI2J,EAAEU,YAAY5L,EAAE,IAAIiC,EAAEiJ,EAAEe,WAAWxL,EAAE,EAAEgB,EAAE,EAAEc,EAAEhC,EAAE,GAAG,UAAK,IAASgC,GAAG,CAAC,GAAG9B,IAAI8B,EAAEiK,MAAM,CAAC,IAAIjL,EAAE,IAAIgB,EAAEiB,KAAKjC,EAAE,IAAI6M,EAAEnM,EAAEA,EAAEoM,YAAYxN,KAAKf,GAAG,IAAIyC,EAAEiB,KAAKjC,EAAE,IAAIgB,EAAEmK,KAAKzK,EAAEM,EAAEkK,KAAKlK,EAAEqI,QAAQ/J,KAAKf,GAAG,IAAIyC,EAAEiB,OAAOjC,EAAE,IAAI+M,GAAErM,EAAEpB,KAAKf,IAAIe,KAAK+M,KAAKzJ,KAAK5C,GAAGgB,EAAEhC,IAAIkB,EAAE,CAAChB,IAAI8B,GAAGiK,QAAQvK,EAAEiJ,EAAEe,WAAWxL,IAAI,CAAC,OAAOyK,EAAEU,YAAYhK,EAAE5B,CAAC,CAAC,CAAAyC,CAAE3C,GAAG,IAAIyB,EAAE,EAAE,IAAI,MAAMhB,KAAKM,KAAK+M,UAAK,IAASrN,SAAI,IAASA,EAAEqK,SAASrK,EAAEgO,KAAKzO,EAAES,EAAEgB,GAAGA,GAAGhB,EAAEqK,QAAQ1J,OAAO,GAAGX,EAAEgO,KAAKzO,EAAEyB,KAAKA,GAAG,EAAE,MAAM6M,EAAE,QAAIH,GAAO,OAAOpN,KAAKkN,MAAME,MAAMpN,KAAK2N,IAAI,CAAC,WAAA5N,CAAYd,EAAEyB,EAAEhB,EAAEP,GAAGa,KAAK2C,KAAK,EAAE3C,KAAK4N,KAAKzD,EAAEnK,KAAKgN,UAAK,EAAOhN,KAAK6N,KAAK5O,EAAEe,KAAK8N,KAAKpN,EAAEV,KAAKkN,KAAKxN,EAAEM,KAAK+N,QAAQ5O,EAAEa,KAAK2N,KAAKxO,GAAGgH,cAAa,CAAE,CAAC,cAAIgH,GAAa,IAAIlO,EAAEe,KAAK6N,KAAKV,WAAW,MAAMzM,EAAEV,KAAKkN,KAAK,YAAO,IAASxM,GAAG,KAAKzB,GAAGoM,WAAWpM,EAAEyB,EAAEyM,YAAYlO,CAAC,CAAC,aAAI+O,GAAY,OAAOhO,KAAK6N,IAAI,CAAC,WAAII,GAAU,OAAOjO,KAAK8N,IAAI,CAAC,IAAAJ,CAAKzO,EAAEyB,EAAEV,MAAMf,EAAEsN,EAAEvM,KAAKf,EAAEyB,GAAGG,EAAE5B,GAAGA,IAAIkL,GAAG,MAAMlL,GAAG,KAAKA,GAAGe,KAAK4N,OAAOzD,GAAGnK,KAAKkO,OAAOlO,KAAK4N,KAAKzD,GAAGlL,IAAIe,KAAK4N,MAAM3O,IAAIgL,GAAGjK,KAAKwJ,EAAEvK,QAAG,IAASA,EAAE6K,WAAW9J,KAAK2J,EAAE1K,QAAG,IAASA,EAAEoM,SAASrL,KAAK4J,EAAE3K,GAAzxHA,IAAGuC,EAAEvC,IAAI,mBAAmBA,IAAIU,OAAOwO,UAAqvHpM,CAAE9C,GAAGe,KAAKmK,EAAElL,GAAGe,KAAKwJ,EAAEvK,EAAE,CAAC,CAAA6M,CAAE7M,GAAG,OAAOe,KAAK6N,KAAKV,WAAWiB,aAAanP,EAAEe,KAAK8N,KAAK,CAAC,CAAAlE,CAAE3K,GAAGe,KAAK4N,OAAO3O,IAAIe,KAAKkO,OAAOlO,KAAK4N,KAAK5N,KAAK8L,EAAE7M,GAAG,CAAC,CAAAuK,CAAEvK,GAAGe,KAAK4N,OAAOzD,GAAGtJ,EAAEb,KAAK4N,MAAM5N,KAAK6N,KAAKL,YAAYpB,KAAKnN,EAAEe,KAAK4J,EAAE7I,EAAEsN,eAAepP,IAAIe,KAAK4N,KAAK3O,CAAC,CAAC,CAAA0K,CAAE1K,GAAG,MAAM+K,OAAOtJ,EAAEoJ,WAAWpK,GAAGT,EAAEE,EAAE,iBAAiBO,EAAEM,KAAKsO,KAAKrP,SAAI,IAASS,EAAEoL,KAAKpL,EAAEoL,GAAGF,EAAE7D,cAAcY,EAAEjI,EAAE0B,EAAE1B,EAAE0B,EAAE,IAAIpB,KAAK+N,UAAUrO,GAAG,GAAGM,KAAK4N,MAAMX,OAAO9N,EAAEa,KAAK4N,KAAKhM,EAAElB,OAAO,CAAC,MAAMzB,EAAE,IAAI6N,EAAE3N,EAAEa,MAAMN,EAAET,EAAE8C,EAAE/B,KAAK+N,SAAS9O,EAAE2C,EAAElB,GAAGV,KAAK4J,EAAElK,GAAGM,KAAK4N,KAAK3O,CAAC,CAAC,CAAC,IAAAqP,CAAKrP,GAAG,IAAIyB,EAAE0J,EAAE9J,IAAIrB,EAAE8K,SAAS,YAAO,IAASrJ,GAAG0J,EAAE5J,IAAIvB,EAAE8K,QAAQrJ,EAAE,IAAIkK,EAAE3L,IAAIyB,CAAC,CAAC,CAAAyJ,CAAElL,GAAGuC,EAAExB,KAAK4N,QAAQ5N,KAAK4N,KAAK,GAAG5N,KAAKkO,QAAQ,MAAMxN,EAAEV,KAAK4N,KAAK,IAAIlO,EAAEP,EAAE,EAAE,IAAI,MAAMiC,KAAKnC,EAAEE,IAAIuB,EAAEL,OAAOK,EAAE4C,KAAK5D,EAAE,IAAI6N,EAAEvN,KAAK8L,EAAEpK,KAAK1B,KAAK8L,EAAEpK,KAAK1B,KAAKA,KAAK+N,UAAUrO,EAAEgB,EAAEvB,GAAGO,EAAEgO,KAAKtM,GAAGjC,IAAIA,EAAEuB,EAAEL,SAASL,KAAKkO,KAAKxO,GAAGA,EAAEoO,KAAKN,YAAYrO,GAAGuB,EAAEL,OAAOlB,EAAE,CAAC,IAAA+O,CAAKjP,EAAEe,KAAK6N,KAAKL,YAAY9M,GAAG,IAAIV,KAAKuO,QAAO,GAAG,EAAG7N,GAAGzB,GAAGA,IAAIe,KAAK8N,MAAM,CAAC,MAAMpN,EAAEzB,EAAEuO,YAAYvO,EAAEuP,SAASvP,EAAEyB,CAAC,CAAC,CAAC,YAAA+N,CAAaxP,QAAG,IAASe,KAAKkN,OAAOlN,KAAK2N,KAAK1O,EAAEe,KAAKuO,OAAOtP,GAAG,EAAE,MAAMgN,EAAE,WAAIC,GAAU,OAAOlM,KAAK0O,QAAQxC,OAAO,CAAC,QAAIkB,GAAO,OAAOpN,KAAKkN,KAAKE,IAAI,CAAC,WAAArN,CAAYd,EAAEyB,EAAEhB,EAAEP,EAAEiC,GAAGpB,KAAK2C,KAAK,EAAE3C,KAAK4N,KAAKzD,EAAEnK,KAAKgN,UAAK,EAAOhN,KAAK0O,QAAQzP,EAAEe,KAAK4L,KAAKlL,EAAEV,KAAKkN,KAAK/N,EAAEa,KAAK+N,QAAQ3M,EAAE1B,EAAEW,OAAO,GAAG,KAAKX,EAAE,IAAI,KAAKA,EAAE,IAAIM,KAAK4N,KAAK1L,MAAMxC,EAAEW,OAAO,GAAGsO,KAAK,IAAI/L,QAAQ5C,KAAK+J,QAAQrK,GAAGM,KAAK4N,KAAKzD,CAAC,CAAC,IAAAuD,CAAKzO,EAAEyB,EAAEV,KAAKN,EAAEP,GAAG,MAAMiC,EAAEpB,KAAK+J,QAAQ,IAAInK,GAAE,EAAG,QAAG,IAASwB,EAAEnC,EAAEsN,EAAEvM,KAAKf,EAAEyB,EAAE,GAAGd,GAAGiB,EAAE5B,IAAIA,IAAIe,KAAK4N,MAAM3O,IAAIgL,EAAErK,IAAII,KAAK4N,KAAK3O,OAAO,CAAC,MAAME,EAAEF,EAAE,IAAI2B,EAAEG,EAAE,IAAI9B,EAAEmC,EAAE,GAAGR,EAAE,EAAEA,EAAEQ,EAAEf,OAAO,EAAEO,IAAIG,EAAEwL,EAAEvM,KAAKb,EAAEO,EAAEkB,GAAGF,EAAEE,GAAGG,IAAIkJ,IAAIlJ,EAAEf,KAAK4N,KAAKhN,IAAIhB,KAAKiB,EAAEE,IAAIA,IAAIf,KAAK4N,KAAKhN,GAAGG,IAAIoJ,EAAElL,EAAEkL,EAAElL,IAAIkL,IAAIlL,IAAI8B,GAAG,IAAIK,EAAER,EAAE,IAAIZ,KAAK4N,KAAKhN,GAAGG,CAAC,CAACnB,IAAIT,GAAGa,KAAK4O,EAAE3P,EAAE,CAAC,CAAA2P,CAAE3P,GAAGA,IAAIkL,EAAEnK,KAAK0O,QAAQhH,gBAAgB1H,KAAK4L,MAAM5L,KAAK0O,QAAQzH,aAAajH,KAAK4L,KAAK3M,GAAG,GAAG,EAAE,MAAM6M,UAAUG,EAAE,WAAAlM,GAAcoF,SAAS0J,WAAW7O,KAAK2C,KAAK,CAAC,CAAC,CAAAiM,CAAE3P,GAAGe,KAAK0O,QAAQ1O,KAAK4L,MAAM3M,IAAIkL,OAAE,EAAOlL,CAAC,EAAE,MAAM8M,WAAUE,EAAE,WAAAlM,GAAcoF,SAAS0J,WAAW7O,KAAK2C,KAAK,CAAC,CAAC,CAAAiM,CAAE3P,GAAGe,KAAK0O,QAAQI,gBAAgB9O,KAAK4L,OAAO3M,GAAGA,IAAIkL,EAAE,EAAE,MAAM6B,WAAUC,EAAE,WAAAlM,CAAYd,EAAEyB,EAAEhB,EAAEP,EAAEiC,GAAG+D,MAAMlG,EAAEyB,EAAEhB,EAAEP,EAAEiC,GAAGpB,KAAK2C,KAAK,CAAC,CAAC,IAAA+K,CAAKzO,EAAEyB,EAAEV,MAAM,IAAIf,EAAEsN,EAAEvM,KAAKf,EAAEyB,EAAE,IAAIyJ,KAAKF,EAAE,OAAO,MAAMvK,EAAEM,KAAK4N,KAAKzO,EAAEF,IAAIkL,GAAGzK,IAAIyK,GAAGlL,EAAE8P,UAAUrP,EAAEqP,SAAS9P,EAAE+P,OAAOtP,EAAEsP,MAAM/P,EAAEgQ,UAAUvP,EAAEuP,QAAQ7N,EAAEnC,IAAIkL,IAAIzK,IAAIyK,GAAGhL,GAAGA,GAAGa,KAAK0O,QAAQQ,oBAAoBlP,KAAK4L,KAAK5L,KAAKN,GAAG0B,GAAGpB,KAAK0O,QAAQS,iBAAiBnP,KAAK4L,KAAK5L,KAAKf,GAAGe,KAAK4N,KAAK3O,CAAC,CAAC,WAAAmQ,CAAYnQ,GAAG,mBAAmBe,KAAK4N,KAAK5N,KAAK4N,KAAK5J,KAAKhE,KAAK+N,SAASsB,MAAMrP,KAAK0O,QAAQzP,GAAGe,KAAK4N,KAAKwB,YAAYnQ,EAAE,EAAE,MAAMwO,GAAE,WAAA1N,CAAYd,EAAEyB,EAAEhB,GAAGM,KAAK0O,QAAQzP,EAAEe,KAAK2C,KAAK,EAAE3C,KAAKgN,UAAK,EAAOhN,KAAKkN,KAAKxM,EAAEV,KAAK+N,QAAQrO,CAAC,CAAC,QAAI0N,GAAO,OAAOpN,KAAKkN,KAAKE,IAAI,CAAC,IAAAM,CAAKzO,GAAGsN,EAAEvM,KAAKf,EAAE,EAAO,MAA2DqQ,GAAErQ,EAAEsQ,uBAAuBD,KAAI1E,EAAE2C,IAAItO,EAAEuQ,kBAAkB,IAAIlM,KAAK;;;;;;ACA9rN,IAAAmM,GAAA,cAAgBxQ,EAAE,WAAAc,GAAcoF,SAAS0J,WAAW7O,KAAK0P,cAAc,CAACL,KAAKrP,MAAMA,KAAK2P,UAAK,CAAM,CAAC,gBAAAnJ,GAAmB,MAAMvH,EAAEkG,MAAMqB,mBAAmB,OAAOxG,KAAK0P,cAAcE,eAAe3Q,EAAEgM,WAAWhM,CAAC,CAAC,MAAAqJ,CAAOrJ,GAAG,MAAMyB,EAAEV,KAAK6P,SAAS7P,KAAKsF,aAAatF,KAAK0P,cAAcvJ,YAAYnG,KAAKmG,aAAahB,MAAMmD,OAAOrJ,GAAGe,KAAK2P,KDAu4M,EAAC1Q,EAAEyB,EAAEhB,KAAK,MAAMP,EAAEO,GAAGkQ,cAAclP,EAAE,IAAIU,EAAEjC,EAAE2Q,WAAW,QAAG,IAAS1O,EAAE,CAAC,MAAMnC,EAAES,GAAGkQ,cAAc,KAAKzQ,EAAE2Q,WAAW1O,EAAE,IAAImM,EAAE7M,EAAE0N,aAAa1M,IAAIzC,GAAGA,OAAE,EAAOS,GAAG,CAAA,EAAG,CAAC,OAAO0B,EAAEsM,KAAKzO,GAAGmC,GCAnjNjC,CAAEuB,EAAEV,KAAKkG,WAAWlG,KAAK0P,cAAc,CAAC,iBAAAtI,GAAoBjC,MAAMiC,oBAAoBpH,KAAK2P,MAAMlB,cAAa,EAAG,CAAC,oBAAApH,GAAuBlC,MAAMkC,uBAAuBrH,KAAK2P,MAAMlB,cAAa,EAAG,CAAC,MAAAoB,GAAS,OAAOnP,CAAC,GAAEhB,GAAEqQ,eAAc,EAAGrQ,GAA0B,WAAG,EAAGR,WAAW8Q,2BAA2B,CAACC,WAAWvQ,KAAI,MAAMqB,GAAE7B,WAAWgR,0BAA0BnP,KAAI,CAACkP,WAAWvQ,MAA0DR,WAAWiR,qBAAqB,IAAI7M,KAAK,gBCH9yB,cAAoB2M,GAClBG,cAAgBC,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsDnBD,kBAAoB,CAClBE,KAAM,CAAE3N,KAAMV,QAASa,SAAS,IAElC,WAAA/C,GACEoF,QACAnF,KAAKuQ,eAAiBvQ,KAAKuQ,eAAeC,KAAKxQ,MAC/CA,KAAKyQ,mBAAqBzQ,KAAKyQ,mBAAmBD,KAAKxQ,MAEvDA,KAAK0Q,YAAc1Q,KAAK0Q,YAAYF,KAAKxQ,MACzCA,KAAK2Q,SAAW7J,SAAS8J,cACvB,mBAAmB5Q,KAAKyL,aAAa,WAEvCzL,KAAK6Q,eAAiB/J,SAAS8J,cAAc,gBAC7C5Q,KAAK8Q,aACN,CACD,OAAAnI,CAAQoI,GACFA,EAAkBlJ,IAAI,SACpB7H,KAAKsQ,MACPtQ,KAAKgR,YAGV,CACD,WAAAF,GACE9Q,KAAK2Q,SAAS1J,aAAa,gBAAiBjH,KAAKyL,aAAa,OAC9DzL,KAAK2Q,SAAS1J,aAAa,gBAAiB,QAC5CjH,KAAK2Q,SAAS1J,aAAa,gBAAiB,SAE5CjH,KAAK2Q,SAASxB,iBAAiB,QAASnP,KAAKyQ,mBAAmBD,KAAKxQ,OAEzB,WAAxCA,KAAK2Q,SAASzE,QAAQhH,eACxBlF,KAAK2Q,SAAS1J,aAAa,OAAQ,SAGtC,CAUD,UAAA+J,GACEhR,KAAKsQ,MAAO,EACZtQ,KAAK2Q,SAAS1J,aAAa,gBAAiB,QAC5CjH,KAAKiR,cAAc,IAAIC,YAAY,gBAAiB,CAAEC,SAAS,KAC/DC,YAAW,KACTtK,SAASqI,iBAAiB,QAASnP,KAAK0Q,aACxCW,OAAOlC,iBAAiB,QAASnP,KAAKuQ,gBACtCvQ,KAAKiR,cAAc,IAAIC,YAAY,eAAgB,CAAEC,SAAS,IAAQ,GAEzE,CACD,MAAAG,GACExK,SAASoI,oBAAoB,QAASlP,KAAK0Q,aAC3CW,OAAOnC,oBAAoB,QAASlP,KAAKuQ,gBACzCvQ,KAAKiR,cAAc,IAAIC,YAAY,eAAgB,CAAEC,SAAS,IAC/D,CACD,WAAAT,GACE1Q,KAAK2Q,SAAS1J,aAAa,gBAAiB,SAC5CjH,KAAKiR,cAAc,IAAIC,YAAY,gBAAiB,CAAEC,SAAS,KAC/DC,YACE,KACEpR,KAAKsR,SACLtR,KAAKsQ,MAAO,CAAK,GAEW,SAA9BtQ,KAAK6Q,eAAejN,MAAmB,IAAM,EAEhD,CACD,kBAAA6M,CAAmBtR,GACjBA,EAAEoS,iBACFvR,KAAKsQ,KAAOtQ,KAAK0Q,cAAiB1Q,KAAKsQ,MAAO,CAC/C,CAOD,cAAAC,CAAepR,GACC,WAAVA,EAAEqS,KACJxR,KAAK0Q,aAER,CACD,MAAAb,GACE,GAAK7P,KAAKsQ,KAEV,OAAOmB,CAAI;2CAC6BtS,GAAMA,EAAEuS;;;sBAG9B1R,KAAK0Q;;;;;;;;;KAUxB,GAEHiB,eAAeC,OAAO,qBAAsBC,IC5J5C,MAAMC,WAAoB7B,GACxBG,cAAgBC,CAAG;;;;;;;;;;;;;;;;;;;;;;;;IAyBnBD,kBAAoB,CAClBxM,MAAO,CAAEjB,KAAMC,OAAQE,SAAS,IAGlC,WAAA/C,GACEoF,QACAnF,KAAK4D,MAAQ,QAEd,CAED,mBAAAmO,GACqB,SAAf/R,KAAK4D,QACP5D,KAAKgS,QAAQC,MAAMC,MAAQlS,KAAK4Q,cAAc,0BAA0BuB,YAAc,KACtFnS,KAAKgS,QAAQC,MAAMG,KAAOpS,KAAK4Q,cAAc,0BAA0ByB,WAAa,KAEvF,CAED,MAAAxC,GACE,OAAO4B,CAAI;;;KAIZ,CAED,YAAA/I,GACE1I,KAAKgS,QAAUhS,KAAKyG,WAAWmK,cAAc,WAE7C5Q,KAAKmP,iBAAiB,iBAAkBhQ,IACnB,WAAfa,KAAK4D,QACP5D,KAAK4D,MAAQ,UACd,IAEH5D,KAAKmP,iBAAiB,iBAAkBhQ,IACjCa,KAAK4Q,cAAc,4BACtB5Q,KAAK4D,MAAQ,UACb5D,KAAKgS,QAAQM,UAAU9D,OAAO,mBAC/B,IAEHxO,KAAKmP,iBAAiB,gBAAiBhQ,IACrCa,KAAK4D,MAAQ,OACbyN,OAAOlC,iBAAiB,SAAUnP,KAAK+R,oBAAoBvB,KAAKxQ,OAChE8G,SAAS8J,cAAc,SAAS3J,aAAa,QAAS,IACtDH,SAAS8J,cAAc,WAAW3J,aAAa,QAAS,GAAG,IAE7DjH,KAAKmP,iBAAiB,gBAAiBhQ,IAChCa,KAAK4Q,cAAc,4BACtB5Q,KAAK4D,MAAQ,SACb5D,KAAKgS,QAAQM,UAAU9D,OAAO,gBAC9BxO,KAAKgS,QAAQC,MAAMC,MAAQ,EAC3BlS,KAAKgS,QAAQC,MAAMG,KAAO,EAC1Bf,OAAOnC,oBAAoB,SAAUlP,KAAK+R,oBAAoBvB,KAAKxQ,OACnE8G,SAAS8J,cAAc,SAASlJ,gBAAgB,QAAS,IACzDZ,SAAS8J,cAAc,WAAWlJ,gBAAgB,QAAS,IAC5D,IAGH,MAAM6K,EAAW,IAAIC,kBAAkBC,IACrCA,EAAU3M,SAAS4M,IACK,eAAlBA,EAAS/P,MACoB,kBAA3B+P,EAASC,gBAC2C,SAAlDD,EAASE,OAAOnH,aAAa,kBAC/B2F,YAAW,KACTpR,KAAKgS,QAAQC,MAAMC,MAAQQ,EAASE,OAAOT,YAAc,KACzDnS,KAAKgS,QAAQC,MAAMG,KAAOM,EAASE,OAAOP,WAAa,IAAI,IAG5C,SAAfrS,KAAK4D,OAAmC,YAAf5D,KAAK4D,OAChC5D,KAAKgS,QAAQM,UAAUrM,IAAI,mBAEV,SAAfjG,KAAK4D,MACP5D,KAAKgS,QAAQM,UAAUrM,IAAI,gBAE3BjG,KAAKgS,QAAQM,UAAU9D,OAAO,gBAGnC,GACD,IAGaxO,KAAK6S,iBAAiB,mBAC9B/M,SAASgN,IAChBP,EAASQ,QAAQD,EAAS,CACxBE,YAAY,GACZ,GAEL,CACD,iBAAA5L,GACEjC,MAAMiC,oBACNpH,KAAKiT,cACLjT,KAAKkT,SAAWlT,KAAK6S,iBAAiB,mBACtC7S,KAAKkT,SAASpN,SAASgN,IACrBA,EAAQ3D,iBAAiB,SAAS,KAChCnP,KAAKmT,mBAAmB,GACxB,IAEJ9B,OAAOlC,iBAAiB,SAAUnP,KAAKmT,kBACxC,CAECA,kBAAoB,KAClB,MAAMC,GAAS/B,OAAOgC,WAAa,IAAMhC,OAAOiC,WAAc,IAAM,IAC9DC,EAASzM,SAAS8J,cAAc,WACe,OAAjD5Q,KAAK4Q,cAAc,2BAAsCwC,EAC3DG,EAAOtB,MAAMuB,SAAW,WAExBD,EAAOtB,MAAMuB,SAAW,QACzB,EAGHP,YAAc,KACZ,MAAMQ,EAAa3M,SAAS+L,iBAAiB,sBACvCa,EAAQrC,OAAOsC,SAASC,SAASlI,MAAM,KAAK,GAElD,IAAK,MAAMmI,KAAOJ,EAAY,CACfI,EAAIpI,aAAa,QAAQqI,QAAQ,MAAO,MACxCJ,EACXG,EAAI5M,aAAa,mBAAoB,QAErC4M,EAAI5M,aAAa,mBAAoB,QAExC,GAIL0K,eAAeC,OAAO,eAAgBE,ICvJxC,MAAMiC,WAAkB9D,GACtBG,cAAgBC,CAAG;;;;;IAMnB,MAAAR,GACE,OAAO4B,CAAI;;;;KAKZ,EAEHE,eAAeC,OAAO,sBAAuBmC,IAE7C,MAAMC,WAAsB/D,GAC1BG,kBAAoB,CAClBE,KAAM,CAAExN,SAAS,EAAMH,KAAMV,UAG/BmO,cAAgBC,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA+DnB,WAAAtQ,GACEoF,QACAnF,KAAKiU,UAAYrR,OAAOsR,KAAKC,OAAShL,KAAKiL,MAAsB,IAAhBjL,KAAKC,UACtDpJ,KAAKqU,SAAWzR,OAAOsR,KAAKC,OAAShL,KAAKiL,MAAsB,IAAhBjL,KAAKC,SACtD,CACD,MAAAkL,GAKE,MAAMC,EAAUvU,KAAKsQ,KACrBtQ,KAAKsQ,MAAQtQ,KAAKsQ,KAEdiE,EACFvU,KAAKwU,OAAOvN,aAAa,gBAAiB,SAG1CjH,KAAKwU,OAAOvN,aAAa,gBAAiB,OAS7C,CAYD,UAAIuN,GACF,OAAOxU,KAAKyG,WAAWmK,cAAc,SACtC,CACD,MAAAf,GACE,OAAO4B,CAAI;;;;gBAICzR,KAAKqU;oBACD,IAAMrU,KAAKsU;2BACJtU,KAAKsQ,KAAO,OAAS;2BACrBtQ,KAAKiU;;;+BAGDjU,KAAKsQ,mBAAmBtQ,KAAKsQ;;;gBAG5CtQ,KAAKiU;6BACQjU,KAAKqU;;;;;;;KAQ/B,EAGH1C,eAAeC,OAAO,iBAAkBoC,ICxJxC,MAAMS,WAAmBxE,GACvBG,cAAgBC,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA8FnB,WAAAtQ,GACEoF,OACD,CAED,MAAA0K,GACE,OAAO4B,CAAI;;;;;;;;KASZ,EAEHE,eAAeC,OAAO,cAAe6C,IC/GrC,MAAMC,WAAiBzE,GACrBG,cAAgBC,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAwHnBD,kBAAoB,CAClBuE,aAAc,CAAEhS,KAAML,QACtBsS,aAAc,CAAEjS,KAAMV,SACtB4S,cAAe,CAAElS,KAAMV,SACvB6S,mBAAoB,CAAEnS,KAAML,QAC5ByS,YAAa,CAAEpS,KAAML,QACrB0S,UAAW,CAAErS,KAAMC,QACnBqS,cAAe,CAAEtS,KAAMC,QACvBsS,WAAY,CAAEvS,KAAMV,QAASa,SAAS,IAGxC,WAAA/C,GACEoF,QACAnF,KAAK4U,cAAe,EACpB5U,KAAK6U,eAAgB,EACrB7U,KAAKgV,UAAY,iBACjBhV,KAAKiV,cAAgB,qBACrBjV,KAAKmV,UAAY,EACjBnV,KAAKsS,UAAU9D,OAAO,QACtBxO,KAAKsS,UAAU9D,OAAO,YACtBxO,KAAKoV,MAAQpV,KAAK6S,iBAAiB,iBACnC7S,KAAKqV,IAAM,EACXrV,KAAKsV,OAAS,EACdtV,KAAKkV,YAAa,EAClB9D,YAAW,IAAMpR,KAAKuV,SACtBlE,OAAOlC,iBAAiB,UAAU,IAAMnP,KAAKuV,QAC9C,CAED,YAAA7M,CAAa8M,GACXxV,KAAKyV,OAASzV,KAAKyG,WAAWmK,cAAc,UAC7C,CAED,IAAA2E,GACE,MAAMG,EAAc1V,KAAK2V,YACnBhB,EAAe3U,KAAK4V,gBAAgBF,GAC1C1V,KAAKqV,IAAMrV,KAAK6V,mBACdC,iBAAiBhP,SAASiP,MAAMC,iBAAiB,aAEnDhW,KAAKmV,WACFO,EAAc1V,KAAKqV,KAAOV,EAAe,IAAMA,EAClD3U,KAAKoV,MAAMtP,SAASmQ,IAClBA,EAAKhE,MAAMiE,SAAWlW,KAAKmV,UAAY,KACvCc,EAAKhE,MAAMkE,SAAWnW,KAAKmV,UAAY,IAAI,IAI7C,MAAMiB,EAAQpW,KAAKyG,WAAWmK,cAAc,UAC5C5Q,KAAK+U,YAAeqB,EAAMT,YAAcS,EAAMC,YAAe,IAE7DrW,KAAKkV,WAAalV,KAAKoV,MAAM/U,OAASsU,EAEtC3U,KAAKyG,WAAWmK,cAAc,UAAU0F,OAAO,CAC7CC,IAAK,EACLnE,KAAM,GAET,CAED,eAAAwD,CAAgBY,GACd,OAAIA,GAAkB,IAAY,IACzBA,EAAiB,IAAY,IAC7BA,EAAiB,IAAY,EAC1B,CACb,CAED,YAAAC,CAAatX,GACXa,KAAKsV,OAASnW,EAAEyT,OAAO8D,WACvB,MAAMN,EAAQpW,KAAKyG,WAAWmK,cAAc,UAE5C5Q,KAAK4U,aAA+B,IAAhB5U,KAAKsV,OACzBtV,KAAK6U,cAAgB7U,KAAKsV,SAAWc,EAAMC,YAAcD,EAAMT,YAG/D3V,KAAKyV,OAAOxD,MAAMG,KAAWpS,KAAKsV,OAASc,EAAMC,YAAe,IAAvC,IACzBrW,KAAKyV,OAAOxD,MAAMC,MAAQ,GAAGlS,KAAK+U,cACnC,CAED,IAAA4B,CAAKC,GACH,IAAID,EAAO,EACO,SAAdC,GAAwB5W,KAAKsV,OAAS,EACxCqB,IAAS3W,KAAKmV,UAAYnV,KAAKqV,KACR,UAAduB,IACTD,EAAO3W,KAAKmV,UAAYnV,KAAKqV,KAG/BrV,KAAKyG,WAAWmK,cAAc,UAAU0F,OAAO,CAC7CC,IAAK,EACLnE,KAAMpS,KAAKsV,OAASqB,EACpBE,SAAU,UAEb,CAED,MAAAhH,GACE,OAAO4B,CAAI;;;qBAGMzR,KAAK4U;kBACR,IAAM5U,KAAK2W,KAAK;;wCAEM3W,KAAKiV;;;oCAGTjV,KAAKyW;;;;;;;qBAOpBzW,KAAK6U;kBACR,IAAM7U,KAAK2W,KAAK;;wCAEM3W,KAAKgV;;;;;;KAO1C,CAED,kBAAAa,CAAmBiB,GACjB,OACEC,WAAWD,GACXC,WAAWjB,iBAAiBhP,SAASkQ,iBAAiBC,SAEzD,EAGHtF,eAAeC,OAAO,qBAAsB8C,IAE5C,MAAMwC,WAAqBjH,GACzBG,cAAgBC,CAAG;;;;;;;;;;;IAanB,MAAAR,GACE,OAAO4B,CAAI,gBACZ,EAGHE,eAAeC,OAAO,gBAAiBsF,IC9QvC,MAAMrF,WAAc5B,GAClBG,cAAgBC,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4DnBD,kBAAoB,CAClBE,KAAM,CAAE3N,KAAMV,QAASa,SAAS,IAElC,WAAA/C,GACEoF,QACAnF,KAAKuQ,eAAiBvQ,KAAKuQ,eAAeC,KAAKxQ,MAC/CA,KAAKyQ,mBAAqBzQ,KAAKyQ,mBAAmBD,KAAKxQ,MACvDA,KAAK0Q,YAAc1Q,KAAK0Q,YAAYF,KAAKxQ,MAEzCA,KAAK2Q,SAAW7J,SAAS8J,cACvB,mBAAmB5Q,KAAKyL,aAAa,WAEvCzL,KAAK8Q,cACLhK,SAASiP,KAAKoB,QAAQnX,KACvB,CACD,OAAA2I,CAAQoI,GACFA,EAAkBlJ,IAAI,SACpB7H,KAAKsQ,MACPtQ,KAAKgR,YAGV,CACD,WAAAF,GACE9Q,KAAK2Q,SAAS1J,aAAa,gBAAiBjH,KAAKyL,aAAa,OAC9DzL,KAAK2Q,SAAS1J,aAAa,gBAAiB,QAC5CjH,KAAK2Q,SAAS1J,aAAa,gBAAiB,SAE5CjH,KAAK2Q,SAASxB,iBAAiB,QAASnP,KAAKyQ,mBAAmBD,KAAKxQ,OAEzB,WAAxCA,KAAK2Q,SAASzE,QAAQhH,gBACxBlF,KAAK2Q,SAAS1J,aAAa,OAAQ,UACnCjH,KAAKoX,0BAER,CAED,uBAAAA,GACEC,QAAQC,IAAI,2BACZtX,KAAK2Q,SAASxB,iBAAiB,SAAUhQ,IACvCkS,OAAOlC,iBAAiB,UAAWnP,KAAKuX,qBAAqB,IAE/DvX,KAAK2Q,SAASxB,iBAAiB,QAAShQ,IACtCkS,OAAOnC,oBAAoB,UAAWlP,KAAKuX,qBAAqB,GAEnE,CAED,UAAAvG,GACEhR,KAAKsQ,MAAO,EACZtQ,KAAK2Q,SAAS1J,aAAa,gBAAiB,QAC5CjH,KAAKsS,UAAUrM,IAAI,WACnBa,SAAS8J,cAAc,SAAS3J,aAAa,QAAS,IACtDmK,YAAW,KACTpR,KAAKsS,UAAU9D,OAAO,WACtBxO,KAAK4Q,cAAc,UAAU4G,QAC7B1Q,SAASqI,iBAAiB,QAASnP,KAAK0Q,aACxCW,OAAOlC,iBAAiB,QAASnP,KAAKuQ,gBACtCzJ,SAASmK,cAAc,IAAIC,YAAY,gBAAgB,GACtD,GACJ,CACD,MAAAI,GACExK,SAAS8J,cAAc,SAASlJ,gBAAgB,QAAS,IACzDZ,SAASoI,oBAAoB,QAASlP,KAAK0Q,aAC3CW,OAAOnC,oBAAoB,QAASlP,KAAKuQ,gBACzCvQ,KAAKsS,UAAU9D,OAAO,WACtBxO,KAAKiR,cAAc,IAAIC,YAAY,iBACnClR,KAAK2Q,SAAS6G,OACf,CACD,WAAA9G,GACE1Q,KAAKyX,YACLzX,KAAK2Q,SAAS1J,aAAa,gBAAiB,SAC5CjH,KAAKsS,UAAUrM,IAAI,WACnBjG,KAAKiR,cAAc,IAAIC,YAAY,kBACnCE,YAAW,KACTpR,KAAKsR,SACLtR,KAAKsQ,MAAO,CAAK,GAChB,IACJ,CACD,SAAAmH,GACE,MAAMC,EAAS1X,KAAK4Q,cAAc,UAClC,GAAI8G,EAAQ,CACV,MAAMC,EAAMD,EAAOC,IACnBD,EAAOC,IAAMA,CACd,CACD,MAAMC,EAAQ5X,KAAK4Q,cAAc,SAC7BgH,GACFA,EAAMC,OAET,CACD,kBAAApH,CAAmBtR,GACjBA,EAAEoS,iBACFvR,KAAKsQ,KAAQtQ,KAAKsQ,MAAO,EAAUtQ,KAAKsQ,MAAO,CAChD,CACD,oBAAAiH,CAAqBpY,GACL,MAAVA,EAAEqS,KAAyB,aAAVrS,EAAEqS,MACrBrS,EAAEoS,iBACFpS,EAAEyT,OAAOkF,QAEZ,CACD,cAAAvH,CAAepR,GACC,WAAVA,EAAEqS,KACJxR,KAAK0Q,aAER,CACD,MAAAb,GACE,GAAK7P,KAAKsQ,KAEV,OAAOmB,CAAI;2CAC6BtS,GAAMA,EAAEuS;;oBAEhC1R,KAAK0Q;;;;;;;;KAStB,EAEHiB,eAAeC,OAAO,kBAAmBC,ICpLzC,MAAMkG,WAAmB9H,GACvBG,cAAgBC,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiCnBD,kBAAoB,CAClBxM,MAAO,CAAEjB,KAAMC,OAAQE,SAAS,IAElC,WAAA/C,GACEoF,QACAnF,KAAK4D,MAAQ,SACb5D,KAAKuQ,eAAiBvQ,KAAKuQ,eAAeC,KAAKxQ,MAC/CA,KAAKyQ,mBAAqBzQ,KAAKyQ,mBAAmBD,KAAKxQ,MACvDA,KAAKgY,eAAiBhY,KAAKgY,eAAexH,KAAKxQ,MAC/CA,KAAK0Q,YAAc1Q,KAAK0Q,YAAYF,KAAKxQ,MACzCA,KAAK2Q,SAAW7J,SAAS8J,cACvB,mBAAmB5Q,KAAKyL,aAAa,WAEvCzL,KAAK8Q,cACLhK,SAASiP,KAAKoB,QAAQnX,KACvB,CACD,YAAA0I,GACqB,SAAf1I,KAAK4D,OACP5D,KAAKgR,YAER,CACD,OAAArI,CAAQoI,GACFA,EAAkBlJ,IAAI,WACL,SAAf7H,KAAK4D,OACP5D,KAAKgR,aAEY,WAAfhR,KAAK4D,OACP5D,KAAK0Q,cAGV,CACD,WAAAI,GACE9Q,KAAK2Q,SAAS1J,aAAa,gBAAiB,QAC5CjH,KAAK2Q,SAAS1J,aAAa,gBAAiB,SAC5CjH,KAAK2Q,SAASxB,iBAAiB,QAASnP,KAAKyQ,mBAC9C,CACD,UAAAO,GACEhR,KAAK2Q,SAAS1J,aAAa,gBAAiB,QAC5CH,SAAS8J,cAAc,SAAS3J,aAAa,QAAS,IACtDH,SAAS8J,cAAc,WAAW3J,aAAa,QAAS,IACxDmK,YAAW,KACTpR,KAAK4D,MAAQ,OACb5D,KAAK4Q,cAAc,UAAU4G,QAC7B1Q,SAASqI,iBAAiB,QAASnP,KAAK0Q,aACxCW,OAAOlC,iBAAiB,QAASnP,KAAKuQ,gBACtCzJ,SAASmK,cAAc,IAAIC,YAAY,gBAAgB,GACtD,IAEHlR,KAAKgY,iBACLhY,KAAKmP,iBAAiB,oBAAqBnP,KAAKgY,gBAChD3G,OAAOlC,iBAAiB,SAAUnP,KAAKgY,gBAEvClR,SAASkQ,gBAAgB/E,MAAMgG,mBAAqB,MACrD,CACD,cAAAD,CAAe7Y,GACb,MAAM+Y,EAAQlY,KAAK4Q,cAAc,sBAC7BsH,EAAMC,aAAe,IAAMD,EAAME,aACnCF,EAAM5F,UAAUrM,IAAI,6BAEpBiS,EAAM5F,UAAU9D,OAAO,4BAE1B,CACD,MAAA8C,GACExK,SAAS8J,cAAc,SAASlJ,gBAAgB,QAAS,IACzDZ,SAAS8J,cAAc,WAAWlJ,gBAAgB,QAAS,IAC3DZ,SAASkQ,gBAAgB/E,MAAMoG,eAAe,uBAC9CvR,SAASoI,oBAAoB,QAASlP,KAAK0Q,aAC3CW,OAAOnC,oBAAoB,QAASlP,KAAKuQ,gBACzCc,OAAOnC,oBAAoB,SAAUlP,KAAKgY,gBAC1ChY,KAAKkP,oBAAoB,oBAAqBlP,KAAKgY,gBACnDhY,KAAKiR,cAAc,IAAIC,YAAY,iBACnClR,KAAK2Q,SAAS6G,OACf,CACD,WAAA9G,GACE1Q,KAAK2Q,SAAS1J,aAAa,gBAAiB,SAC5CjH,KAAKiR,cAAc,IAAIC,YAAY,kBACnCE,YAAW,KACTpR,KAAKsR,SACLtR,KAAK4D,MAAQ,QAAQ,GACpB,IACJ,CACD,kBAAA6M,CAAmBtR,GACjBA,EAAEoS,iBACiB,SAAfvR,KAAK4D,OACP5D,KAAK4D,MAAQ,UACb5D,KAAK0Q,gBAEL1Q,KAAK4D,MAAQ,UACb5D,KAAKgR,aAER,CACD,cAAAT,CAAepR,GACC,WAAVA,EAAEqS,KACJxR,KAAK0Q,aAER,CACD,MAAAb,GACE,GAAmB,WAAf7P,KAAK4D,MAET,OAAO6N,CAAI;2CAC6BtS,GAAMA,EAAEuS;;;KAIjD,EAEHC,eAAeC,OAAO,cAAemG,IAErC,MAAMO,WAAuBrI,GAC3BG,cAAgBC,CAAG;;;;;;;;;;;;;;;;;;;;;;;IAwBnBD,kBAAoB,CAClBmI,SAAU,CAAE5V,KAAMV,QAASa,SAAS,IAEtC,YAAA4F,GACE1I,KAAKwY,cAAgBxY,KAAKyG,WAAWmK,cAAc,UAC/C5Q,KAAKwY,gBACPxY,KAAKwY,cAAcvR,aAAa,gBAAiB,SACjDjH,KAAKyY,IAAMtP,KAAKC,SAAS3I,SAAS,IAAIiY,UAAU,EAAG,IACnD1Y,KAAKwY,cAAcvR,aAAa,gBAAiBjH,KAAKyY,KAEzD,CACD,OAAA9P,CAAQoI,GACFA,EAAkBlJ,IAAI,aACpB7H,KAAKwY,gBACPxY,KAAKwY,cAAcvR,aAAa,gBAAiBjH,KAAKuY,UACtDvY,KAAKiR,cACH,IAAIC,YAAY,oBAAqB,CACnCyH,OAAQ3Y,KAAKuY,SACbpH,SAAS,KAKlB,CACD,MAAAtB,GACE,IAAI+I,EAAW5Y,KAAKuY,SAChB9G,CAAI,6BAA6BzR,KAAKyY,eACtC,GACAI,EAAe7Y,KAAK4Q,cAAc,MAClCa,CAAI;4BACgBzR,KAAK8Y;kCACC9Y,KAAKuY;;UAG/B,GACJ,OAAO9G,CAAI;;;UAGLoH;;QAEFD;KAEL,CACD,cAAAE,GACE9Y,KAAKuY,UAAYvY,KAAKuY,QACvB,EAEH5G,eAAeC,OAAO,mBAAoB0G,ICtN1C,MAAMS,WAAuB9I,GAC3BG,cAAgBC,CAAG;;;;IAKnBD,kBAAoB,CAAE,EAEtB,WAAArQ,GACEoF,QACAnF,KAAKgZ,cAAgB,KACrBhZ,KAAKiZ,OAAQ,EACbjZ,KAAKkZ,UAAY,KAEjB7H,OAAOlC,iBAAiB,SAAUnP,KAAKmZ,aAAa3I,KAAKxQ,MAE1D,CAED,YAAAmZ,GACEnZ,KAAKkZ,WAAWE,aAChBpZ,KAAKqZ,uBACN,CAED,YAAA3Q,GAEE1I,KAAKqZ,wBAELrZ,KAAKmP,iBAAiB,iCAAkChQ,IACtDa,KAAKsZ,gBAAgBna,EAAEwZ,QAEvB3Y,KAAKiZ,OAAQ,EACb7H,YAAW,KACTpR,KAAKiZ,OAAQ,CAAK,GACjB,IAAI,IAGTjZ,KAAKuZ,OAASvZ,KAAK6S,iBAAiB,uBACrC,CAED,qBAAAwG,GACE,MAAMG,EAAW,CACfC,KAAM,KACNC,WAAY,eAAerI,OAAOsI,YAAc,YAChDC,UAAW,GAEb,IAAIrH,EAAW,IAAIsH,sBAAqB,CAACC,EAASvH,KAChDuH,EAAQhU,SAASiU,IACf,GAAIA,EAAMC,eAAgB,CACxB,GAAIha,KAAKiZ,MAAO,OAEhB,MAAMgB,EAAUja,KAAKka,mBAAmBH,EAAMnH,QACxCuH,EAAKF,GAASrJ,cAAc,MAAMuJ,GACnCA,GAQH9C,QAAQC,IAAI,eAAgByC,EAAMnH,QAClCvB,OAAO+I,QAAQC,aACb,KACA,KACA,GAAGhJ,OAAOsC,SAASC,SAAWvC,OAAOsC,SAAS2G,UAAUH,MAV1D9I,OAAO+I,QAAQC,aACb,KACA,KACAhJ,OAAOsC,SAASC,SAAWvC,OAAOsC,SAAS2G,QAU/Cta,KAAKsZ,gBAAgBa,EACtB,IACD,GACDX,GAEY1S,SAAS+L,iBAAiB,YAEhC/M,SAAQ,SAASmU,GACxB1H,EAASQ,QAAQkH,EACvB,IAEIja,KAAKkZ,UAAY3G,CAClB,CAED2H,mBAAqB,SAASK,GAC5B,GAAIA,EAAKC,QAAQ,YAAa,OAAOD,EACrC,IAAIE,EAAUF,EAAKG,uBACnB,KAAOD,GAAS,CACd,GAAIA,EAAQD,QAAQ,YAAa,OAAOC,EACxCA,EAAUA,EAAQC,sBACnB,CACF,EAED,eAAApB,CAAgBa,GACd,IAAIQ,GAAc,EAClB3a,KAAKuZ,OAAOzT,SAAQ,CAACmQ,EAAMvV,KACrBuV,EAAK2E,QAAQT,KAAOA,GACtBQ,GAAc,EACd1E,EAAKhP,aAAa,WAAY,IAC9BjH,KAAK4Q,cAAc,yBAAyBiK,SAAS,CACnDzI,KAAM6D,EAAK5D,YAAehB,OAAOiC,WAAa,EAAM2C,EAAK9D,YAAc,GACvE0E,SAAU,YAGZZ,EAAKvO,gBAAgB,WACtB,IAEEiT,GACH3a,KAAK4Q,cAAc,yBAAyBiK,SAAS,CACnDzI,KAAM,EACNyE,SAAU,UAGf,CAED,MAAAhH,GACE,OAAO4B,CAAI;oBAEZ,EAGHE,eAAeC,OAAO,kBAAmBmH,IAEzC,MAAM+B,WAA2B7K,GAC/BG,cAAgBC,CAAG,GACnBD,kBAAoB,CAClB2K,SAAU,CAAEpY,KAAMV,QAASa,SAAS,IAGtC,WAAA/C,GACEoF,QACAnF,KAAKgb,kBAAoBhb,KAAKgb,kBAAkBxK,KAAKxQ,MACrDA,KAAKib,QAAUjb,KAAK4Q,cAAc,KAClC5Q,KAAKib,QAAQ9L,iBAAiB,SAAUhQ,GAAMa,KAAKgb,kBAAkB7b,IACtE,CAED,iBAAA6b,CAAkB7b,GAChBA,EAAEoS,iBACF,MAAM4I,EAAKhb,EAAE+b,cAAcC,KAAKzP,MAAM,KAAK,GACrC0P,EAAgBtU,SAASuU,eAAelB,GAAImB,QAAQ,YAE1D,IAAIC,EADWvb,KAAKsb,QAAQ,mBACFE,aAEtBnK,OAAOiC,WAAa,KACtBiI,GAAgBzU,SAAS8J,cAAc,WAAW4K,aAElDD,GAAgBzU,SAAS8J,cAAc,kBAAkB4K,aAG3DnK,OAAOwJ,SAAS,CACdhE,SAAU,SACVN,IACE6E,EAAcK,UAAYF,IAE9BlK,OAAO+I,QAAQC,aAAa,KAAM,KAAM,IAAIF,KAC5Cna,KAAKiR,cACH,IAAIC,YAAY,gCAAiC,CAC/CyH,OAAQwB,EACRhJ,SAAS,IAGd,CAED,MAAAtB,GACE,OAAO4B,CAAI;qBAEZ,EAGHE,eAAeC,OAAO,uBAAwBkJ,IAE9C,MAAMY,WAA6BzL,GACjCG,cAAgBC,CAAG;;;IAInBD,kBAAoB,CAClBuL,SAAU,CAAEhZ,KAAMV,UAGpB,WAAAlC,GACEoF,QACAkM,OAAOlC,iBAAiB,UAAU,KAChCnP,KAAK2b,SAAWtK,OAAOuK,WAAW,uBAAuBpB,OAAO,GAEnE,CAED,YAAA9R,GACE1I,KAAK2b,SAAWtK,OAAOuK,WAAW,uBAAuBpB,OAC1D,CAED,MAAA3K,GACE,OAAI7P,KAAK2b,SACAlK,CAAI;;;;QAMJA,CAAI;sBAGd,EAGHE,eAAeC,OAAO,yBAA0B8J,IAGhD,MAAMG,WAA4B5L,GAChCG,cAAgBC,CAAG;;;;;;;;;;;IAanB,WAAAtQ,GACEoF,OACD,CAED,YAAAuD,GACC,CAED,MAAAmH,GACE,OAAO4B,CAAI;oBAEZ,EAGHE,eAAeC,OAAO,wBAAyBiK;;;;;;ACrO/C,MAAM5c,GAAqB,EAAgG,IAAA6c,GAAA,MAAQ,WAAA/b,CAAYd,GAAI,CAAA,QAAImO,GAAO,OAAOpN,KAAKkN,KAAKE,IAAI,CAAC,IAAAR,CAAK3N,EAAEE,EAAEuB,GAAGV,KAAK+b,KAAK9c,EAAEe,KAAKkN,KAAK/N,EAAEa,KAAKgc,KAAKtb,CAAC,CAAC,IAAAmM,CAAK5N,EAAEE,GAAG,OAAOa,KAAKsI,OAAOrJ,EAAEE,EAAE,CAAC,MAAAmJ,CAAOrJ,EAAEE,GAAG,OAAOa,KAAK6P,UAAU1Q,EAAE,GCA1S8c,GAAG,cAAgBlb,GAAE,WAAAhB,CAAYW,GAAG,GAAGyE,MAAMzE,GAAGV,KAAKkc,GAAGjd,EAAEyB,EAAEiC,OAAOjD,GAAQ,MAAMQ,MAAMF,KAAKD,YAAYoc,cAAc,wCAAwC,CAAC,MAAAtM,CAAO9O,GAAG,GAAGA,IAAI9B,GAAG,MAAM8B,EAAE,OAAOf,KAAKoc,QAAG,EAAOpc,KAAKkc,GAAGnb,EAAE,GAAGA,IAAIL,EAAE,OAAOK,EAAE,GAAG,iBAAiBA,EAAE,MAAMb,MAAMF,KAAKD,YAAYoc,cAAc,qCAAqC,GAAGpb,IAAIf,KAAKkc,GAAG,OAAOlc,KAAKoc,GAAGpc,KAAKkc,GAAGnb,EAAE,MAAMrB,EAAE,CAACqB,GAAG,OAAOrB,EAAE2c,IAAI3c,EAAEM,KAAKoc,GAAG,CAACtS,WAAW9J,KAAKD,YAAYuc,WAAWvS,QAAQrK,EAAEsK,OAAO,GAAG;;;;;GAAE7K,GAAEgd,cAAc,aAAahd,GAAEmd,WAAW,EAAE,MAAM1c,GDA7bX,IAAG,IAAIE,KAAC,CAAKuN,gBAAgBzN,EAAE+K,OAAO7K,ICAyZyB,CAAEzB,ICFlhB,MAAMod,WAAkBtM,GACtBG,cAAgBC,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgEnBD,kBAAoB,CAClBoM,MAAO,CAAE7Z,KAAMV,SACfwa,OAAQ,CAAE9Z,KAAMV,UAGlB,WAAAlC,GACEoF,QAEAnF,KAAKwc,OAAQ,EACbxc,KAAKyc,QAAS,EAEd,MAAMC,EAAgBrL,OAAOyE,iBAAiB9V,MAC9CA,KAAK2c,OAC8C,UAAjDD,EAAc1G,iBAAiB,cAC3B,QACA,MACP,CAED,YAAAtN,GACuB1I,KAAKsb,QAAQ,OAEhCtb,KAAKsb,QAAQ,KAAKnM,iBAAiB,cAAc,KAC/CnP,KAAKyc,QAAS,CAAI,IAEpBzc,KAAKsb,QAAQ,KAAKnM,iBAAiB,cAAc,KAC/CnP,KAAKyc,QAAS,CAAK,IAGxB,CAED,MAAA5M,GACE,OAAO4B,CAAI;6BACczR,KAAK2c,SAAS3c,KAAKwc,MAAQ,SAAW,KAAKxc,KAAKyc,OAAS,UAAY;;;uCAG3DG,GAAW5c,KAAKsM;;;uCAGhBsQ,GAAW5c,KAAKsM;;;KAIpD,EAEHqF,eAAeC,OAAO,iBAAkB2K,IC9GxC,MAAMM,WAAwB5M,GAC5B6M,GACAC,GAEA,WAAAhd,GACEoF,QACAnF,KAAKgd,aAAehd,KAAKgd,aAAaxM,KAAKxQ,MAC3CA,KAAKmP,iBAAiB,sBAAuBnP,KAAKgd,cAClDhd,KAAKmP,iBACH,0BACAnP,KAAKid,4BAA4BzM,KAAKxQ,MAEzC,CAEDoQ,kBAAoB,CAClBlG,IAAK,CAAE,EACPgT,MAAO,CAAE,GAGX9M,cAAgBC,CAAG;;;;;IAOnB,YAAA3H,GACE1I,MAAK8c,EAAiBhW,SAASuU,eAAerb,KAAKkK,KACnDlK,MAAK+c,EAAU/c,KAAK6S,iBAAiB,eACtC,CAED,YAAAmK,CAAa7d,GACX,MAAMge,EAAQhe,EAAEwZ,QAAQwE,QAAS,EACjCnd,KAAKod,uBAAuBD,GAC5Bnd,KAAKiE,eACN,CAED,2BAAAgZ,CAA4B9d,GAC1BiS,YAAW,KACTpR,MAAK8c,EAAe7L,cAClB,IAAIC,YAAY,0BAA2B,CACzCC,SAAS,EACTwH,OAAQxZ,EAAEwZ,SAEb,GAEJ,CAED,sBAAAyE,CAAuBD,GACrB,IAAIE,EAAY,GAChBrd,MAAK+c,EAAQjX,SAASwX,IACpBD,EAAYA,EAAUE,OAAOD,EAAMvC,SAAS,IAE9C/a,MAAK8c,EAAe7L,cAClB,IAAIC,YAAY,gBAAiB,CAC/BC,SAAS,EACTwH,OAAQ,CAAEwE,MAAOA,KAGtB,CAED,MAAAtN,GACE,OAAO4B,CAAI,gBACZ,EAGHE,eAAeC,OAAO,mBAAoBiL,IA8G1ClL,eAAeC,OAAO,eA5GtB,cAA0B3B,GACxBuN,GAEA,WAAAzd,GACEoF,QACAnF,KAAKyd,kBAAoBzd,KAAKyd,kBAAkBjN,KAAKxQ,MACrDA,MAAKwd,EAAWxd,KAAK6S,iBAAiB,UACtC7S,KAAK0d,aACN,CAEDtN,kBAAoB,CAClBxE,KAAM,CAAE,EACRjJ,KAAM,CAAE,GAGV,YAAIoY,GACF,OAAI/a,KAAK4Q,cAAc,6CACd,GACF1O,MAAMyb,KAAK3d,MAAKwd,GACpBI,QAAQpJ,GAAoD,SAAzCA,EAAO/I,aAAa,mBACvC5E,KAAK2N,IACG,CAAE5I,KAAM5L,KAAK4L,KAAMiS,MAAOrJ,EAAOqJ,MAAOC,KAAMtJ,EAAOuJ,aAEjE,CAED,YAAIhD,CAAS8C,GACX3b,MAAMyb,KAAK3d,MAAKwd,GAAU1X,SAAS0O,IAE/BqJ,EAAMG,MACHC,GAAUA,EAAMrS,OAAS5L,KAAK4L,MAAQqS,EAAMJ,QAAUrJ,EAAOqJ,SAGhErJ,EAAOvN,aAAa,gBAAiB,OACtC,GAEJ,CAED,WAAAyW,GACE1d,MAAKwd,EAAS1X,SAAS0O,IACrBA,EAAOvN,aACL,gBACAjH,KAAKsb,QAAQ,oBAAoB7P,aAAa,QAEhD+I,EAAOrF,iBAAiB,QAASnP,KAAKyd,mBACtC,MAAMS,EAAMle,KAAKme,UAAU3J,GAC3BxU,KAAKiR,cACH,IAAIC,YAAY,0BAA2B,CACzCC,SAAS,EACTwH,OAAQ,CAAEuF,IAAKA,KAElB,GAEJ,CAED,iBAAAT,CAAkBte,GAChB,MAAMif,EAAUjf,EAAE+b,cACA,WAAdlb,KAAK2C,MACP3C,KAAKqe,WAEP,MAAMC,EAAuD,SAA1CF,EAAQ3S,aAAa,iBACxC2S,EAAQnX,aAAa,iBAAkBqX,GAEvC,MAAMJ,EAAMle,KAAKme,UAAUC,GAC3B/M,OAAO+I,QAAQC,aAAa,CAAA,EAAI,GAAI6D,GAEpCle,KAAKiE,gBACLjE,KAAKiR,cAAc,IAAIsN,MAAM,sBAAuB,CAAEpN,SAAS,IAChE,CAED,SAAAgN,CAAUC,GACR,IACIF,EADAM,EAAe,IAAIC,gBAAgBpN,OAAOsC,SAAS2G,QAiBvD,OAZKta,KAAKyL,aAAa,SAIrByS,EAAM,IAAIQ,IAAIrN,OAAOsC,SAASwH,MACT,GAAjBiD,EAAQP,MACVW,EAAahe,IAAIR,KAAKyL,aAAa,QAAS2S,EAAQP,OAEpDW,EAAalY,OAAOtG,KAAKyL,aAAa,UANxCyS,EAAM,IAAIQ,IAAI,GAAG/K,SAASgL,YAAYhL,SAASiL,WAAWR,EAAQP,SASpEK,EAAI5D,OAASkE,EAAa/d,WACnByd,CACR,CAED,QAAAG,GACEre,MAAKwd,EAAS1X,SAAS0O,GACrBA,EAAOvN,aAAa,iBAAiB,IAExC,CAED,YAAAyB,GAAiB,CAEjB,OAAAC,GACE,MAAMkW,EAAY7e,KAAK4Q,cAAc,uBACrCiO,GAAW5X,aAAa,gBAA0C,IAAzBjH,KAAK+a,SAAS1a,OACxD,CAED,MAAAwP,GACE,OAAO4B,CAAI,gBACZ,IA8CHE,eAAeC,OAAO,mBAzCtB,cAA8B3B,GAC5B6O,GAEA,WAAA/e,GACEoF,QACAnF,KAAK+e,YAAc/e,KAAK+e,YAAYvO,KAAKxQ,MACzCA,MAAK8e,EAAc9e,KAAK4Q,cAAc,SACtC5Q,MAAK8e,EAAY3P,iBAAiB,QAASnP,KAAK+e,YACjD,CAED,WAAAA,CAAY5f,GACVA,EAAEoS,iBACF,MAAM6M,EAAUjf,EAAE+b,cACZgD,EAAMle,KAAKme,UAAUC,GAC3B/M,OAAO+I,QAAQC,aAAa,CAAA,EAAI,GAAI6D,GACpCle,KAAKiR,cACH,IAAIC,YAAY,sBAAuB,CACrCC,SAAS,EACTwH,OAAQ,CAAEwE,OAAO,KAGtB,CAED,SAAAgB,CAAUC,GACR,IACIF,EADAM,EAAe,IAAIC,gBAAgBpN,OAAOsC,SAAS2G,QASvD,OAPA4D,EAAM,IAAIQ,IAAIrN,OAAOsC,SAASwH,MAC1BiD,EAAQP,MAAMxd,OAAS,EACzBme,EAAahe,IAAIR,KAAKyL,aAAa,QAAS2S,EAAQP,OAEpDW,EAAalY,OAAOtG,KAAKyL,aAAa,SAExCyS,EAAI5D,OAASkE,EAAa/d,WACnByd,CACR,CAED,MAAArO,GACE,OAAO4B,CAAI,gBACZ,ICxNH,MAAMuN,WAAsB/O,GAC1BG,kBAAoB,CAClB6O,QAAS,CAAEtc,KAAMV,QAASa,SAAS,EAAMJ,WAAW,GACpDwc,UAAW,CAAEvc,KAAMV,QAASa,SAAS,EAAMJ,WAAW,GACtDyc,MAAO,CAAExc,KAAML,OAAQQ,SAAS,GAChCsc,SAAU,CAAEzc,KAAMV,SAClBod,QAAS,CAAE1c,KAAMV,UAGnB,WAAAlC,GACEoF,QACAnF,KAAKiH,aAAa,YAAa,UAC/BjH,KAAKmP,iBAAiB,gBAAiBnP,KAAKsf,oBAC5Ctf,KAAKmP,iBAAiB,gBAAiBnP,KAAKuf,oBAC5Cvf,KAAKmP,iBAAiB,gBAAiBnP,KAAKwf,oBAC5Cxf,KAAKmP,iBACH,0BACAnP,KAAKyf,YAAYjP,KAAKxQ,OAExBA,KAAK0f,gBAAkB5Y,SAAS8J,cAC9B,yBAAyB5Q,KAAKma,QAEhCna,KAAKif,SAAU,EACfjf,KAAKkf,WAAY,CAClB,CAED,YAAAxW,GAAiB,CAEjB,OAAAC,CAAQoI,GACFA,EAAkBlJ,IAAI,aACpB7H,KAAKif,QACPjf,KAAKiH,aAAa,YAAa,QAE/BjH,KAAK0H,gBAAgB,aAG1B,CAED,kBAAA4X,CAAmBngB,GACGA,EAAEwZ,MACvB,CAED,SAAAwF,CAAUwB,EAAMrF,EAAQsF,EAAS,GAC/B,IAAI1B,EAAMle,KAAK4a,QAAQiF,SAASnU,MAAM,KAAK,GACvC8S,EAAe,IAAIC,gBAAgBze,KAAK4a,QAAQiF,SAASnU,MAAM,KAAK,IAexE,OAbA8S,EAAahe,IAAI,OAAQmf,GACzBnB,EAAahe,IAAI,UAAWR,KAAK4a,QAAQkF,SAEzCtB,EAAe,IAAIC,gBAAgB,IAC9Bld,OAAOwe,YAAYvB,MACnBjd,OAAOwe,YAAY,IAAItB,gBAAgBnE,MAGxCsF,EAAS,EACXpB,EAAahe,IAAIR,KAAK0f,iBAAiB9T,MAAQ,IAAKgU,EAAOnf,YAE3D+d,EAAalY,OAAOtG,KAAK0f,iBAAiB9T,MAAQ,KAE7C,GAAGsS,KAAOM,EAAa/d,YAC/B,CAED,WAAAgf,CAAYtgB,GACLa,KAAKof,UACVpf,KAAKggB,YAAYhgB,KAAKme,UAAUhf,EAAEwZ,OAAOuF,IAAItK,SAAUzU,EAAEwZ,OAAOuF,IAAI5D,QACrE,CAED,wBAAMiF,CAAmBpgB,GACvB,MACM8gB,EAAU7O,YAAW,KACzBpR,KAAKif,SAAU,EACfjf,KAAKkf,WAAY,CAAI,GACpB,KACG/B,EAAQhe,EAAEwZ,OAAOwE,QAAS,QAC1Bnd,KAAKkgB,qBAAoB,EANhB,EAM8B/C,GAC7CgD,aAAaF,GACbjgB,KAAKif,SAAU,EACfjf,KAAKkf,WAAY,CAClB,CAED,wBAAMM,CAAmBrgB,GACvB,MAAMygB,EAASzgB,EAAEwZ,OAAOiH,QAAU,EAC5BK,EAAU7O,YAAW,KACzBpR,KAAKif,SAAU,CAAI,GAClB,KACH7N,YAAWgP,gBACHpgB,KAAKkgB,qBAAoB,EAAON,GACtCO,aAAaF,GACbjgB,KAAKif,SAAU,CAAK,GACnB,IAEJ,CAED,yBAAMiB,CAAoBpM,GAAU,EAAO8L,EAAS,EAAGzC,GAAQ,GAC7D,MAAMkD,QAAergB,KAAKggB,YACxBhgB,KAAKme,UAAU9M,OAAOsC,SAASC,SAAUvC,OAAOsC,SAAS2G,OAAQsF,GACjEzC,GAEFnd,KAAKmf,MAAQkB,EAAOlB,MAEhBrL,EACF9T,KAAKsM,UAAY+T,EAAO5O,KAExBzR,KAAKsgB,mBAAmB,YAAaD,EAAO5O,MAE9CzR,KAAKiR,cACH,IAAIC,YAAY,eAAgB,CAC9BC,SAAS,EACTwH,OAAQ,CAAE4H,MAAOvgB,KAAKwgB,kBAAmBrB,MAAOnf,KAAKmf,SAG1D,CAED,iBAAMa,CAAY9B,EAAKf,GAAQ,GAC7B,IAAIkD,EAASrgB,KAAKygB,mBAAmBvC,GACrC,GAAImC,EAAQ,OAAOA,EACnB,MAAMK,QAAiBC,MAAMzC,GAQ7B,OAPAmC,EAAS,CACPlB,MAAOuB,EAASE,QAAQtgB,IAAI,eAC5BmR,WAAYiP,EAAS5C,SAElB9d,KAAKqf,SAAWlC,GACnBnd,KAAK6gB,YAAY3C,EAAKmC,GAEjBA,CACR,CAED,WAAAQ,CAAYrP,EAAK6O,GACfS,eAAeC,QAAQvP,EAAKrP,KAAKC,UAAUie,GAC5C,CAED,kBAAAI,CAAmBjP,GACjB,OAAOrP,KAAKI,MAAMue,eAAeE,QAAQxP,GAC1C,CAED,MAAA3B,GACE,OAAO4B,CAAI,gBACZ,EAGHE,eAAeC,OAAO,iBAAkBoN,IC5IxC,MAAMiC,WAAwBhR,GAC5B6M,GACAtI,GAEApE,kBAAoB,CAClB8Q,QAAS,CAAEve,KAAMV,QAASa,SAAS,GACnC8I,KAAM,CAAEjJ,KAAMC,SAGhBwN,cAAgBC,CAAG;;;;IAMnB,WAAAtQ,GACEoF,QACAnF,MAAK8c,EAAiBhW,SAASuU,eAAerb,KAAKyL,aAAa,QAChEzL,MAAKwU,EAAUxU,KAAK4Q,cAAc,UAClC5Q,MAAK8c,EAAe3N,iBAClB,eACAnP,KAAKmhB,iBAAiB3Q,KAAKxQ,OAE7BA,MAAK8c,EAAe3N,iBAClB,gBACAnP,KAAKuf,mBAAmB/O,KAAKxQ,OAE/BA,MAAKwU,EAAQrF,iBAAiB,QAASnP,KAAKyd,kBAAkBjN,KAAKxQ,OAC9DA,KAAKkhB,UACRlhB,KAAKiS,MAAMmP,QAAU,OAExB,CAED,OAAAzY,CAAQoI,GACFA,EAAkBlJ,IAAI,aACpB7H,KAAKkhB,QACPlhB,KAAKiS,MAAMoG,eAAe,WAE1BrY,KAAKiS,MAAMmP,QAAU,OAG1B,CAED,kBAAA7B,CAAmBpgB,GACjB,IAAIkiB,EAAS,IAAI5C,gBAAgBpN,OAAOsC,SAAS2G,QACjD+G,EAAO/a,OAAOtG,KAAK4L,MACnB,IAAIsS,EAAM,IAAIQ,IAAIrN,OAAOsC,SAASwH,MAClC+C,EAAI5D,OAAS+G,EAAO5gB,WACpB4Q,OAAO+I,QAAQC,aAAa,CAAA,EAAI,GAAI6D,EACrC,CAED,gBAAAiD,CAAiBhiB,GACfa,KAAKkhB,QAAU/hB,EAAEwZ,OAAO4H,MAAQphB,EAAEwZ,OAAOwG,MACzCnf,MAAKwU,EAAQ9M,gBAAgB,YAC9B,CAED,iBAAA+V,GACE,GAAIzd,MAAK8c,EAAemC,QACtB,OAGFjf,MAAKwU,EAAQvN,aAAa,YAAa,QAEvC,IAAIoa,EAAS,IAAI5C,gBAAgBpN,OAAOsC,SAAS2G,QAC7CgH,EAAOC,SAASF,EAAO/gB,IAAIN,KAAK4L,QAAU,EAC9CyV,EAAO7gB,IAAIR,KAAK4L,KAAM0V,EAAO,GAE7B,IAAIpD,EAAM,IAAIQ,IAAIrN,OAAOsC,SAASwH,MAClC+C,EAAI5D,OAAS+G,EAAO5gB,WACpB4Q,OAAO+I,QAAQC,aAAa,CAAA,EAAI,GAAI6D,GAEpCle,MAAK8c,EAAe7L,cAClB,IAAIC,YAAY,gBAAiB,CAC/BC,SAAS,EACTwH,OAAQ,CAAEiH,OAAQ0B,EAAO,KAG9B,CAED,MAAAzR,GACE,OAAO4B,CAAI,iBACZ,EAGHE,eAAeC,OAAO,mBAAoBqP,ICpF1C,MAAMO,WAAsBvR,GAC1BG,cAAgBC,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2JnBD,kBAAoB,CAClBE,KAAM,CAAE3N,KAAMV,QAASa,SAAS,GAChC2e,QAAS,CAAE9e,KAAMC,QACjBmY,SAAU,CAAEpY,KAAMC,OAAQE,SAAS,GACnC4e,gBAAiB,CAAE/e,KAAMC,OAAQE,SAAS,GAC1CH,KAAM,CAAEA,KAAMC,SAEhB,WAAA7C,GACEoF,QACAnF,KAAKsQ,MAAO,EACZtQ,KAAKma,GAAKhR,KAAKC,SAAS3I,SAAS,IAAIiY,UAAU,EAAG,GAClD1Y,KAAKmP,iBAAiB,kBAAmBnP,KAAK2hB,oBAC9C3hB,KAAKmP,iBAAiB,UAAWnP,KAAK4hB,YAAYpR,KAAKxQ,OACvDA,KAAKmP,iBAAiB,UAAWnP,KAAK6hB,cAAcrR,KAAKxQ,OACzDA,KAAKmP,iBAAiB,UAAWnP,KAAK8hB,aAAatR,KAAKxQ,MACzD,CACD,YAAA0I,GACE1I,KAAKyG,WACFmK,cAAc,aACdzB,iBAAiB,SAAUhQ,IAC1BA,EAAEuS,iBAAiB,IAEvB1R,KAAK8S,QAAU9S,KAAKyG,WAAWmK,cAAc,YAC7C5Q,KAAK+hB,SAAW/hB,KAAKyG,WAAWmK,cAAc,aAC9C5Q,KAAK+N,QAAU/N,KAAK6S,iBAAiB,mBACrC7S,KAAKwd,QAAUxd,KAAK6S,iBAAiB,0BACrC7S,KAAKwd,QAAQ1X,SAASkc,IACpBA,EAAO/a,aAAa,gBAAiB,SACrC+a,EAAO/a,aAAa,KAAM,GAAGjH,KAAKma,MAAM6H,EAAOnE,QAAQ,IAEzD7d,KAAK+hB,SAAS9a,aAAa,QAAS,QACrC,CACD,OAAA0B,CAAQoI,GACFA,EAAkBlJ,IAAI,UACpB7H,KAAKsQ,MACPxJ,SAASqI,iBAAiB,QAASnP,KAAKiiB,mBAAmBzR,KAAKxQ,OAChEA,KAAK4Q,cACH,iDACC4G,QACHxX,KAAK+hB,SAASra,gBAAgB,eAEQwa,IAAlCnR,EAAkBzQ,IAAI,UAExBN,KAAK8S,QAAQ0E,QACb1Q,SAASoI,oBACP,QACAlP,KAAKiiB,mBAAmBzR,KAAKxQ,QAKtC,CACD,YAAA8hB,CAAa3iB,GACG,WAAVA,EAAEqS,MACJxR,KAAKsQ,MAAO,EACZtQ,KAAK8S,QAAQ0E,QAEhB,CACD,WAAAoK,CAAYziB,GACV,GAAc,YAAVA,EAAEqS,IAAmB,CACvBrS,EAAEoS,iBACF,MAAM6M,EAAUpe,KAAK4Q,cAAc,gCAEjCwN,GACAA,EAAQ9C,QAAQ,mBAAmBZ,uBAEnC0D,EACG9C,QAAQ,mBACRZ,uBAAuB9J,cAAc,UACrC4G,QAEHxX,KAAKwd,QAAQxd,KAAK+N,QAAQ1N,OAAS,GAAGmX,OAEzC,CACF,CACD,aAAAqK,CAAc1iB,GACZ,GAAc,cAAVA,EAAEqS,IAAqB,CACzBrS,EAAEoS,iBACF,MAAM6M,EAAUpe,KAAK4Q,cAAc,gCAC/BwN,GAAWA,EAAQ9C,QAAQ,mBAAmB6G,mBAChD/D,EACG9C,QAAQ,mBACR6G,mBAAmBvR,cAAc,UACjC4G,QAEHxX,KAAK4Q,cAAc,0BAA0B4G,OAEhD,CACF,CAED,kBAAAyK,CAAmB9iB,GACbA,EAAEyT,SAAW5S,OACjBA,KAAKsQ,MAAO,EACb,CAED,kBAAAqR,CAAmBxiB,GACjBa,KAAK+a,SAAW5b,EAAEwZ,OAAOkF,MACzB7d,KAAK0hB,gBAAkBviB,EAAEwZ,OAAO8I,QAChCzhB,KAAKiH,aAAa,wBAAyB9H,EAAEwZ,OAAOkF,OACpD7d,KAAK6S,iBAAiB,0BAA0B/M,SAASkc,IACnDA,EAAOnE,QAAU1e,EAAEwZ,OAAOkF,MAC5BmE,EAAO/a,aAAa,gBAAiB,QAErC+a,EAAO/a,aAAa,gBAAiB,QACtC,IAEe,WAAdjH,KAAK2C,OACP3C,KAAKsQ,MAAO,EAEf,CACD,MAAAT,GACE,OAAO4B,CAAI;;;yBAGUzR,KAAKsQ;yBACLtQ,KAAKma;;iBAEb,IAAOna,KAAKsQ,MAAQtQ,KAAKsQ;;UAEhCtQ,KAAK0hB,iBAAmB1hB,KAAKyhB;6BACVzhB,KAAKsQ;;uDAEqBtQ,KAAKma;WACjDna,KAAKyhB;;;;;0BAKUzhB,KAAKma;;cAEjBna,KAAKma;;;;;;KAOhB,EAEHxI,eAAeC,OAAO,iBAAkB4P,IAExC,MAAMY,WAAuBnS,GAC3BG,cAAgBC,CAAG;;;;IAKnBD,kBAAoB,CAClBE,KAAM,CAAE3N,KAAMV,QAASa,SAAS,GAChCuf,YAAa,CAAE1f,KAAMC,QACrBib,MAAO,CAAElb,KAAMC,SAEjB,WAAA7C,GACEoF,QACAnF,KAAKmP,iBAAiB,QAASnP,KAAK2hB,oBACpC3hB,KAAK4Q,cAAc,UAAU3J,aAAa,OAAQ,SACnD,CACD,kBAAA0a,CAAmBxiB,GACjBa,KAAKiR,cACH,IAAIC,YAAY,kBAAmB,CACjCyH,OAAQ,CAAEkF,MAAO7d,KAAK6d,MAAO4D,QAASzhB,KAAKqiB,aAC3ClR,SAAS,EACTmR,UAAU,IAGf,CACD,MAAAzS,GACE,OAAO4B,CAAI,eACZ,EAEHE,eAAeC,OAAO,kBAAmBwQ,ICtUzC,MAAMG,WAAwBtS,GAC5B6M,GACA0F,GAEApS,cAAgBC,CAAG,GAEnB,WAAAtQ,GACEoF,QACAnF,KAAKyiB,eAAiB3b,SAAS8J,cAAc,oBAC7C5Q,KAAK8e,WAAahY,SAASuU,eAAe,gBAC1Crb,KAAK0iB,YAAc5b,SAAS8J,cAAc,iBAC1C5Q,KAAK2iB,aAAe7b,SAAS8J,cAAc,kBAC3C5Q,KAAK4iB,KAAO9b,SAAS8J,cAAc,QACnC5Q,KAAK6iB,mBACN,CAEDzS,kBAAoB,CAClBlG,IAAK,CAAE,EACPgT,MAAO,CAAE,GAGX,iBAAA9V,GACEjC,MAAMiC,oBAENpH,KAAK8e,WAAW3P,iBAAiB,SAAUhQ,IACzCa,KAAK8iB,cAAc3jB,EAAE,IAGvBa,KAAK0iB,YAAYvT,iBAAiB,SAAUhQ,IAC1Ca,KAAK+iB,gBAAgB5jB,EAAE,IAEzBa,KAAK0iB,YAAYvT,iBAAiB,WAAYhQ,IAC9B,UAAVA,EAAEqS,KACJxR,KAAK+iB,gBAAgB5jB,EACtB,IAGHkS,OAAOlC,iBAAiB,YAAahQ,IACnC,IAAI6jB,EACF3R,OAAOsC,SAASsP,OAAS5R,OAAOsC,SAASC,SAE3CvC,OAAO+I,QAAQ8I,UAAU,CAAA,EAAI,GAAIF,GAEjChjB,KAAK+iB,gBAAgB5jB,EAAE,IAGzBa,KAAK2iB,aAAaxT,iBAAiB,QAASnP,KAAKmjB,gBAEjDnjB,KAAK8e,WAAW3P,iBAAiB,WAAYhQ,IAC7B,UAAVA,EAAEqS,KACJxR,KAAKmjB,eAAehkB,EACrB,GAEJ,CAEDgkB,eAAiB/C,MAAOjhB,IAEtB,GADAA,EAAEoS,iBAC4B,KAA1BvR,KAAK8e,WAAWjB,MAElB,YADA7d,KAAK8e,WAAWtH,QAIlB,MAAM0G,EAAMle,KAAKojB,gBAAgBpjB,KAAK8e,WAAWjB,OACjDxM,OAAO+I,QAAQ8I,UAAU,CAAA,EAAI,GAAIhF,SAE3Ble,KAAKsa,OAAOta,KAAK8e,WAAWjB,OAElC7d,KAAKqjB,iBAAiB,EAGxB,YAAA3a,GACE1I,MAAK8c,EAAiBhW,SAASuU,eAAerb,KAAKkK,KACnDlK,MAAKwiB,EAAgB1b,SAASuU,eAAerb,KAAKkK,IACnD,CAED,0BAAAoZ,CAA2BzF,GACzB7d,MAAK8c,EAAe7L,cAClB,IAAIC,YAAY,gBAAiB,CAAEC,SAAS,EAAMwH,OAAQkF,KAG5D7d,MAAKwiB,EAAcvR,cACjB,IAAIC,YAAY,gBAAiB,CAAEC,SAAS,EAAMwH,OAAQkF,IAE7D,CAED,iBAAAgF,GACE7iB,KAAK8e,WAAW3P,iBAAiB,SAAS,KACxCnP,KAAK8e,WAAWxM,UAAUrM,IAAI,kBAAkB,IAGlDjG,KAAK8e,WAAW3P,iBAAiB,WAAYoU,IAC1B,OAAbA,EAAM/R,KACRxR,KAAK8e,WAAWxM,UAAU9D,OAAO,kBAClC,GAEJ,CAED,eAAA4U,CAAgBvF,GACd,IAAIW,EAAe,IAAIC,gBAAgBpN,OAAOsC,SAAS2G,QACvD,MAAMkJ,EAA0B1c,SAAS8J,cACvC,0BAEI6S,EAAiB3c,SAAS8J,cAAc,gBAAgBhF,KACxD8X,EAAmB5c,SAAS8J,cAAc,iBAAiBhF,KAE3D+X,EAAcH,EAAwB3F,MAE5CW,EAAahe,IAAIijB,EAAgBE,GACjCnF,EAAahe,IAAIkjB,EAAkB7F,GAEnCW,EAAalY,OAAO,KACpB,IAAI4X,EAAM,IAAIQ,IAAIrN,OAAOsC,SAASwH,MAElC,OADA+C,EAAI5D,OAASkE,EAAa/d,WACnByd,CACR,CAED,aAAA4E,CAAc3jB,GACZ,MAAMykB,EAAezkB,EAAE+b,cAAc2C,MAAMgG,OAEvCD,IAAiB5jB,KAAK8jB,gBACxB9jB,KAAK2iB,aAAa1Q,MAAMmP,QAAU,OAClCphB,KAAK0iB,YAAYzQ,MAAMmP,QAAU,QAEnCphB,KAAK8jB,cAAgBF,CACtB,CAED,QAAAG,CAASC,GACPhkB,KAAK2iB,aAAa1Q,MAAMmP,QAAU4C,EAAW,OAAS,OACtDhkB,KAAK0iB,YAAYzQ,MAAMmP,QAAU4C,EAAW,OAAS,MACtD,CAED,eAAAX,GACE,MAAMW,EAA4C,KAAjChkB,KAAK8e,WAAWjB,MAAMgG,OACvC7jB,KAAKyiB,eAAenQ,UAAUrM,IAAI,2BAClCjG,KAAK+jB,SAASC,EACf,CAED,eAAAjB,CAAgB5jB,GACdA,EAAEoS,iBAEkB,KADFF,OAAOsC,SAAS2G,SAEhCta,KAAK8e,WAAWjB,MAAQ,GACxB7d,KAAKyiB,eAAenQ,UAAU9D,OAAO,2BACrCxO,KAAK+jB,UAAS,IAEhB/jB,KAAK8e,WAAWjB,MAAQ,GACxB7d,KAAK+jB,UAAS,EACf,CAED,gCAAMT,CAA2B5P,GAC/B,MAAMwK,EAAM,IAAIQ,IAAI1e,KAAK4a,QAAQiF,SAAUxO,OAAOsC,SAASsP,QAC3D/E,EAAIM,aAAarS,OAAO,IAAKuH,UAENiN,MAAMzC,EAAItK,SAAWsK,EAAI5D,SAElC2J,EACf,CAED,YAAM3J,CAAO5G,GACX,MAAMwK,EAAM,IAAIQ,IAAI1e,KAAK4a,QAAQiF,SAAUxO,OAAOsC,SAASsP,QAC3D/E,EAAIM,aAAarS,OAAO,IAAKuH,GAE7B1T,KAAK4iB,KAAK3b,aAAa,YAAa,QACpCjH,KAAK2iB,aAAa1b,aAAa,YAAa,cAEtC0Z,MAAMzC,EAAItK,SAAWsK,EAAI5D,QAC5B4J,MAAMxD,GACEA,EAAS5C,SAEjBoG,MAAM7D,IACLvZ,SAASuU,eAAerb,KAAKkK,KAAK+G,cAChC,IAAIC,YAAY,uBAAwB,CACtCC,SAAS,EACTwH,OAAQ,CACN5C,KAAMsK,EACN8D,YAAazQ,KAGlB,IAEF0Q,SAAQ,KACPpkB,KAAK4iB,KAAKlb,gBAAgB,aAC1B1H,KAAK2iB,aAAajb,gBAAgB,YAAY,GAEnD,CAED,MAAAmI,GACE,OAAO4B,CAAI,eACZ,EAGHE,eAAeC,OAAO,oBAAqB2Q,ICzI3C5Q,eAAeC,OAAO,gBAtDtB,cAA2B3B,GACzB,WAAAlQ,GACEoF,QAEAnF,KAAKqkB,YAAcvd,SAAS8J,cAAc,uBAC1C5Q,KAAKskB,aAAexd,SAAS8J,cAAc,kBAC3C5Q,KAAKukB,UAAYzd,SAAS8J,cAAc,6BACxC5Q,KAAK8c,cAAgBhW,SAAS8J,cAAc,kBAAkBuO,MAE9Dnf,KAAKmP,iBAAiB,gBAAiBnP,KAAKsf,oBAC5Ctf,KAAKmP,iBAAiB,uBAAwBnP,KAAKwkB,0BACnDxkB,KAAKmP,iBAAiB,gBAAiBnP,KAAKuf,mBAC7C,CAEDnP,kBAAoB,CAAE,EAEtB,4BAAAqU,GACE,IAAIC,EAAcrT,OAAOsC,SAAS2G,OAEhCta,KAAKskB,aAAarS,MAAMmP,QADN,KAAhBsD,EACgC,OAEA,MAErC,CAED,iBAAAtd,GACEiK,OAAOlC,iBAAiB,YAAY,KAClCnP,KAAKykB,8BAA8B,IAErCzkB,KAAKykB,8BACN,CAED,kBAAAnF,CAAmBiE,GACjB,IAAIY,EAAcZ,EAAM5K,OAGpBgM,EAAQ,GAFK3kB,KAAK8c,iCAEuBqH,IAEzB,KAAhBA,QAAsCjC,IAAhBiC,IACxBnkB,KAAKskB,aAAarS,MAAMmP,QAAU,OAClCphB,KAAKqkB,YAAYtG,UAAY4G,EAEhC,CAED,wBAAAH,CAAyBjB,GACrBvjB,KAAKskB,aAAahY,UAAYiX,EAAM5K,OAAO5C,KAC3C/V,KAAKskB,aAAarS,MAAMmP,QAAU,MACrC,CAED,MAAAvR,GACE,OAAO4B,CAAI,eACZ,WCnDH,cAA4BxB,GAC1BG,cAAgBC,CAAG;;;;;;;;;;;;;;;;;;;;;;;;IA0BnB,qBAAW7L,GACT,MAAO,CACLogB,QAAS,CAAE,EACXC,SAAU,CAAEliB,KAAMV,SAClB6iB,UAAW,CAAEniB,KAAMV,SAEtB,CAED,WAAAlC,GACEoF,QACAnF,KAAK4iB,KAAO5iB,KAAK4Q,cAAc,QAC/B5Q,KAAK+kB,aAAe/kB,KAAK4Q,cAAc,yBACvC5Q,KAAKglB,OAAShlB,KAAK4iB,KAAKnX,aAAa,UACrCzL,KAAK6kB,UAAW,EAEhB,IAAII,EAAene,SAASuU,eAAe,SAEvC4J,GACFA,EAAa9V,iBAAiB,SAAS,WAChC8V,EAAaC,kBAChBD,EAAaE,iBACbF,EAAaG,eAAe,CAAEvO,SAAU,SAAUwO,MAAO,WAEnE,IAEIrlB,KAAK4iB,KAAKzT,iBAAiB,SAAUnP,KAAKslB,WAAW9U,KAAKxQ,MAC3D,CAED,iBAAAoH,GACEjC,MAAMiC,mBACP,CAED,UAAAke,CAAWnmB,GAET,GADAA,EAAEoS,iBAC0C,SAAxCvR,KAAK4iB,KAAKnX,aAAa,aAAyB,OAEpDzL,KAAK4iB,KAAK3b,aAAa,YAAa,QACpCjH,KAAK+kB,aAAa9d,aAAa,YAAa,QAE5C,MAAMse,EAAW,IAAIC,SAASxlB,KAAK4iB,MAEnCjC,MAAM3gB,KAAKglB,OAAQ,CACjBS,OAAQ,OACR7E,QAAS,CAEP,mBAAoB,kBAEtB7K,KAAMwP,IAELrB,MAAMxD,IACDA,EAASuD,IACXjkB,KAAK6kB,UAAW,EAChBxT,OAAOwJ,SACL,EACA7a,KAAK0lB,wBAAwBnP,IAC3BzP,SAASkQ,gBAAgB2O,UACzB,OAGJ3lB,KAAK8kB,WAAY,EACjBzN,QAAQuO,MAAMlF,GACf,IAEFmF,OAAOD,IACN5lB,KAAK8kB,WAAY,EACjBzN,QAAQuO,MAAMA,EAAM,IAErBxB,SAAQ,KACPpkB,KAAK4iB,KAAKlb,gBAAgB,aAC1B1H,KAAK+kB,aAAard,gBAAgB,YAAY,GAEnD,CAED,MAAAmI,GACE,OAAI7P,KAAK6kB,SACApT,CAAI;;;;;;;cAOHzR,KAAK4a,QAAQkL;;;cAKnB9lB,KAAK8kB,UACArT,CAAI;;;cAGHzR,KAAK4a,QAAQmL;;;cAKhBtU,CAAI,gBACZ,GAGHE,eAAeC,OAAO,iBAAkBoU,IC/HxC,MAAMA,WAAsB/V,GAC1BG,cAAgBC,CAAG;;;;;;;;;;;;;;;;;;;;;;;;IA0BnB,qBAAW7L,GACT,MAAO,CACLyhB,OAAQ,CAAEtjB,KAAMV,QAASa,SAAS,GAClC8hB,QAAS,CAAE,EACXC,SAAU,CAAEliB,KAAMV,SAClB6iB,UAAW,CAAEniB,KAAMV,SAEtB,CAED,WAAAlC,GACEoF,QACAnF,KAAKimB,QAAS,EACdjmB,KAAK4iB,KAAO5iB,KAAK4Q,cAAc,QAC/B5Q,KAAK+kB,aAAe/kB,KAAK4Q,cAAc,yBACvC5Q,KAAKglB,OAAShlB,KAAK4iB,KAAKnX,aAAa,UACrCzL,KAAK6kB,UAAW,EAChB7kB,KAAK4iB,KAAKzT,iBAAiB,SAAUnP,KAAKslB,WAAW9U,KAAKxQ,OAE1DA,KAAKkmB,cAAgBpf,SAAS8J,cAC5B,yBAAyB5Q,KAAKma,QAEhCna,KAAKmmB,YAAcrf,SAASuU,eAAe,sBAE3Crb,KAAKmmB,YAAY7T,UAAUrM,IAAI,UAC/BjG,KAAKkmB,cAAc5T,UAAU9D,OAAO,UACpCxO,KAAKkmB,cAAc/W,iBAAiB,QAASnP,KAAKomB,SAAS5V,KAAKxQ,OAChEA,KAAKmmB,YAAYhX,iBAAiB,QAASnP,KAAKqmB,SAAS7V,KAAKxQ,MAC/D,CAED,QAAAomB,CAASjnB,GACPa,KAAKkmB,cAAcjf,aAAa,gBAAiB,QACjDjH,KAAKimB,QAAS,EACdjmB,KAAKmmB,YAAY7T,UAAU9D,OAAO,UAClCxO,KAAKkmB,cAAc5T,UAAUrM,IAAI,UACjCmL,YAAW,KACTpR,KAAK4Q,cAAc,sBAAsB4G,OAAO,GAEnD,CAED,QAAA6O,CAASlnB,GACPa,KAAKkmB,cAAcjf,aAAa,gBAAiB,SACjDjH,KAAKimB,QAAS,EACdjmB,KAAKkmB,cAAc5T,UAAU9D,OAAO,UACpCxO,KAAKmmB,YAAY7T,UAAUrM,IAAI,UAC/BjG,KAAK6kB,UAAW,EAChB7kB,KAAK8kB,WAAY,EACjB9kB,KAAK4iB,KAAK0D,OACX,CAED,iBAAAlf,GACEjC,MAAMiC,mBACP,CAED,UAAAke,CAAWnmB,GAET,GADAA,EAAEoS,iBAC0C,SAAxCvR,KAAK4iB,KAAKnX,aAAa,aAAyB,OAEpDzL,KAAK4iB,KAAK3b,aAAa,YAAa,QACpCjH,KAAK+kB,aAAa9d,aAAa,YAAa,QAE5C,MAAMse,EAAW,IAAIC,SAASxlB,KAAK4iB,MAEnCjC,MAAM3gB,KAAKglB,OAAQ,CACjBS,OAAQ,OACR7E,QAAS,CAEP,mBAAqB,kBAEvB7K,KAAMwP,IAELrB,MAAMxD,IACDA,EAASuD,IACXjkB,KAAK6kB,UAAW,EAChBxN,QAAQC,IACNtX,KAAK0lB,wBAAwBnP,IAC3BzP,SAASkQ,gBAAgB2O,UACzB,KAEJtU,OAAOwJ,SACL,EACA7a,KAAK0lB,wBAAwBnP,IAC3BzP,SAASkQ,gBAAgB2O,UACzB,OAGJ3lB,KAAK8kB,WAAY,EACjBzN,QAAQuO,MAAMlF,GACf,IAEFmF,OAAOD,IACN5lB,KAAK8kB,WAAY,EACjBzN,QAAQuO,MAAMA,EAAM,IAErBxB,SAAQ,KACPpkB,KAAK4iB,KAAKlb,gBAAgB,aAC1B1H,KAAK+kB,aAAard,gBAAgB,YAAY,GAEnD,CAED,MAAAmI,GACE,OAAI7P,KAAK6kB,SACApT,CAAI;;;eAGFzR,KAAK4a,QAAQkL;;cAIpB9lB,KAAK8kB,UACArT,CAAI;;;QAKNA,CAAI,gBACZ,EAGHE,eAAeC,OAAO,yBAA0BoU,ICjJhD,MAAMO,WAA0BtW,GAC9BG,cAAgBC,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA+DnBD,kBAAoB,CAClBE,KAAM,CAAE3N,KAAMV,QAASa,SAAS,GAChC2e,QAAS,CAAE9e,KAAMC,QACjBmY,SAAU,CAAEpY,KAAMC,OAAQE,SAAS,GACnC4e,gBAAiB,CAAE/e,KAAMC,OAAQE,SAAS,GAC1CH,KAAM,CAAEA,KAAMC,SAEhB,WAAA7C,GACEoF,QACAnF,KAAKsQ,MAAO,EACZtQ,KAAKma,GAAKhR,KAAKC,SAAS3I,SAAS,IAAIiY,UAAU,EAAG,GAClD1Y,KAAKmP,iBAAiB,kBAAmBnP,KAAK2hB,oBAC9C3hB,KAAKmP,iBAAiB,UAAWnP,KAAK4hB,YAAYpR,KAAKxQ,OACvDA,KAAKmP,iBAAiB,UAAWnP,KAAK6hB,cAAcrR,KAAKxQ,OACzDA,KAAKmP,iBAAiB,UAAWnP,KAAK8hB,aAAatR,KAAKxQ,MACzD,CACD,YAAA0I,GACE1I,KAAKyG,WACFmK,cAAc,aACdzB,iBAAiB,SAAUhQ,IAC1BA,EAAEuS,iBAAiB,IAEvB1R,KAAK8S,QAAU9S,KAAKyG,WAAWmK,cAAc,YAC7C5Q,KAAK+hB,SAAW/hB,KAAKyG,WAAWmK,cAAc,aAC9C5Q,KAAK+N,QAAU/N,KAAK6S,iBAAiB,mBACrC7S,KAAKwd,QAAUxd,KAAK6S,iBAAiB,0BACrC7S,KAAKwd,QAAQ1X,SAASkc,IACpBA,EAAO/a,aAAa,gBAAiBjH,KAAK+a,WAAaiH,EAAOnE,MAAQ,OAAS,SAC/EmE,EAAO/a,aAAa,KAAM,GAAGjH,KAAKma,MAAM6H,EAAOnE,QAAQ,IAEzD7d,KAAK0hB,gBAAkB1hB,KAAK4Q,cAAc,sDAAsDyR,YAChGriB,KAAK+hB,SAAS9a,aAAa,QAAS,QACrC,CACD,OAAA0B,CAAQoI,GACFA,EAAkBlJ,IAAI,UACpB7H,KAAKsQ,MACPxJ,SAASqI,iBAAiB,QAASnP,KAAKiiB,mBAAmBzR,KAAKxQ,OAChEA,KAAK4Q,cACH,iDACC4G,QACHxX,KAAK+hB,SAASra,gBAAgB,eAEOwa,IAAlCnR,EAAkBzQ,IAAI,UAEvBN,KAAK8S,QAAQ0E,QACb1Q,SAASoI,oBACP,QACAlP,KAAKiiB,mBAAmBzR,KAAKxQ,QAKtC,CACD,YAAA8hB,CAAa3iB,GACG,WAAVA,EAAEqS,MACJxR,KAAKsQ,MAAO,EACZtQ,KAAK8S,QAAQ0E,QAEhB,CACD,WAAAoK,CAAYziB,GACV,GAAc,YAAVA,EAAEqS,IAAmB,CACvBrS,EAAEoS,iBACF,MAAM6M,EAAUpe,KAAK4Q,cAAc,gCAEjCwN,GACAA,EAAQ9C,QAAQ,mBAAmBZ,uBAEnC0D,EACG9C,QAAQ,mBACRZ,uBAAuB9J,cAAc,UACrC4G,QAEHxX,KAAKwd,QAAQxd,KAAK+N,QAAQ1N,OAAS,GAAGmX,OAEzC,CACF,CACD,aAAAqK,CAAc1iB,GACZ,GAAc,cAAVA,EAAEqS,IAAqB,CACzBrS,EAAEoS,iBACF,MAAM6M,EAAUpe,KAAK4Q,cAAc,gCAC/BwN,GAAWA,EAAQ9C,QAAQ,mBAAmB6G,mBAChD/D,EACG9C,QAAQ,mBACR6G,mBAAmBvR,cAAc,UACjC4G,QAEHxX,KAAK4Q,cAAc,0BAA0B4G,OAEhD,CACF,CAED,kBAAAyK,CAAmB9iB,GACbA,EAAEyT,SAAW5S,OACjBA,KAAKsQ,MAAO,EACb,CAED,kBAAAqR,CAAmBxiB,GACjBa,KAAK+a,SAAW5b,EAAEwZ,OAAOkF,MACzB7d,KAAK0hB,gBAAkBviB,EAAEwZ,OAAO8I,QAChCzhB,KAAKiH,aAAa,wBAAyB9H,EAAEwZ,OAAOkF,OACpD7d,KAAK6S,iBAAiB,0BAA0B/M,SAASkc,IACnDA,EAAOnE,QAAU1e,EAAEwZ,OAAOkF,MAC5BmE,EAAO/a,aAAa,gBAAiB,QAErC+a,EAAO/a,aAAa,gBAAiB,QACtC,IAEe,WAAdjH,KAAK2C,OACP3C,KAAKsQ,MAAO,EAEf,CACD,MAAAT,GACE,OAAO4B,CAAI;;;yBAGUzR,KAAKsQ;yBACLtQ,KAAKma;;iBAEb,IAAOna,KAAKsQ,MAAQtQ,KAAKsQ;;UAEhCtQ,KAAK0hB,iBAAmB1hB,KAAKyhB;6BACVzhB,KAAKsQ;;;;;;0BAMRtQ,KAAKma;;cAEjBna,KAAKma;;;;;;KAOhB,EAEHxI,eAAeC,OAAO,qBAAsB2U,IC1M5C,MAAMC,WAAyBvW,GAC7BwW,GACA,WAAA1mB,GACEoF,QACAnF,KAAKkhB,SAAU,CAChB,CAED,YAAAxY,GACI,IAAIge,EAAkB1mB,KAAKyL,aAAa,UAExCzL,MAAKymB,EAAa3f,SAASuU,eAAerb,KAAKkK,KAC/C,IAAIyc,EAAkB7f,SAASuU,eAAeqL,GAMhD,GALiB5f,SAAS+L,iBAAiB,eAAe7S,MAAKymB,EAAW7a,UACjE9F,SAAS8gB,IACdA,EAAMzX,iBAAiB,SAAUnP,KAAK6mB,aAAarW,KAAKxQ,MAAM,IAG/D2mB,EAAiB,CAClB,IAAIG,EAAcH,EAAgBlb,aAAa,QAE1B3E,SAAS+L,iBAAiB,eAAeiU,OACjDhhB,SAAS8gB,IACpBA,EAAMzX,iBAAiB,SAAUnP,KAAK6mB,aAAarW,KAAKxQ,MAAM,GAEjE,CACF,CAEDoQ,kBAAoB,CAClB8Q,QAAS,CAAEve,KAAMV,QAAS2B,OAAO,GACjCsG,IAAK,CAAEvH,KAAMC,SAGf,YAAAikB,CAAa1nB,GAEX,IAAIunB,EAAkB1mB,KAAKyL,aAAa,UAyBxC,GAvBAzL,KAAK6S,iBAAiB,2BAA2B/M,SAASihB,IACxD,GAAIL,GAEG,GAAIA,EAAiB,CAC1B,IAAIC,EAAkB7f,SAASuU,eAAeqL,GAC1CI,EAAcH,EAAgBlb,aAAa,QAChC3E,SAAS+L,iBAAiB,eAAeiU,EAAY,MAE7DhhB,SAAS8gB,IACXA,IAAUD,IACP3mB,MAAKymB,EAAWO,SAAYJ,EAAMI,SAE5BhnB,MAAKymB,EAAWO,SAAWJ,EAAMI,UACzCD,EAAME,UAAW,GAGnBF,EAAME,UAAW,CAClB,GAEJ,OAjBCF,EAAME,UAAYjnB,MAAKymB,EAAWO,OAiBnC,IAICN,GAEG,GAAIA,EAAiB,CACX5f,SAAS+L,iBAAiB,aAAa6T,EAAgB,MAE/D5gB,SAAS8gB,IACd5mB,KAAKkhB,QAAUlhB,MAAKymB,EAAWO,SAAWJ,EAAMI,OAAO,GAE1D,OAPChnB,KAAKkhB,QAAUlhB,MAAKymB,EAAWO,OASlC,CAED,MAAAnX,GACE,OAAK7P,KAAKkhB,QACHzP,CAAI,kBADeA,CAAI,EAE/B,EAGHE,eAAeC,OAAO,oBAAqB4U,ICzD3C7U,eAAeC,OAAO,cApBtB,cAAyB3B,GAEvB,WAAAlQ,GACEoF,OAED,CAED,YAAAuD,GAEC,CAED0H,kBAAoB,CAEnB,EAED,MAAAP,GACE,OAAO4B,CAAI,iBACZ,ICjBH,MAAMyV,WAAkBjX,GACtBG,cAAgBC,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkEnBD,kBAAoB,CAClBgO,QAAS,CAAEzb,KAAMpB,SAGnB,WAAAxB,GACEoF,QACAnF,KAAKmnB,MAAQnnB,KAAK6S,iBAAiB,aACnC7S,KAAKoe,QAAUpe,KAAK4Q,cAAc,qBAClC5Q,KAAKmP,iBAAiB,YAAanP,KAAKonB,gBACxCpnB,KAAKmP,iBAAiB,gBAAiBnP,KAAKqnB,oBAC5CrnB,KAAKmnB,MAAMrhB,SAAQ,CAACwhB,EAAM5mB,KACxB4mB,EAAKC,aAAevnB,KAAKmnB,MAAMzmB,EAAI,GACnC4mB,EAAKE,SAAWxnB,KAAKmnB,MAAMzmB,EAAI,EAAE,GAEpC,CAED,cAAA0mB,CAAejoB,GACba,KAAKoe,QAAUjf,EAAEwZ,OAAOyF,QACxB,IAAIqJ,EAAO,KACXznB,KAAKmnB,MAAMrhB,SAAQ,CAACwhB,EAAM5mB,KACxB4mB,EAAK7K,QAAS,EACV6K,IAAStnB,KAAKoe,UAChBqJ,EAAOznB,KAAKmnB,MAAMzmB,EAAI,GACvB,IAEC+mB,IACFA,EAAKhL,QAAS,EACdrL,YAAW,KACTqW,EAAK7W,cAAc,SAAS4G,OAAO,IAErCxX,KAAKoe,QAAUqJ,EAElB,CAED,kBAAAJ,CAAmBloB,GACjBa,KAAKoe,QAAUjf,EAAEwZ,OAAOyF,QACxB,IAAIsJ,EAAW,KACf1nB,KAAKmnB,MAAMrhB,SAAQ,CAACwhB,EAAM5mB,KACxB4mB,EAAK7K,QAAS,EACV6K,IAAStnB,KAAKoe,UAChBsJ,EAAW1nB,KAAKmnB,MAAMzmB,EAAI,GAC3B,IAECgnB,IACFA,EAASjL,QAAS,EAClBrL,YAAW,KACTsW,EAAS9W,cAAc,SAAS4G,OAAO,IAEzCxX,KAAKoe,QAAUsJ,EAElB,CAED,MAAA7X,GACE,IAAIsX,EAAQjlB,MAAMyb,KAAK3d,KAAKmnB,OAAOtgB,KAAI,CAACygB,EAAM5mB,IACrC+Q,CAAI;6BACY6V,IAAStnB,KAAKoe;iCACV1d,EAAI;gCACL4mB,EAAKK;;UAIjC,OAAOlW,CAAI;;UAEL0V;;;KAIP,EAGHxV,eAAeC,OAAO,aAAcsV,IAEpC,MAAMU,WAAiB3X,GACrBG,cAAgBC,CAAG;;;;;;;;;;;IAYnBD,kBAAoB,CAClBuU,MAAO,CAAEhiB,KAAMC,QACfilB,eAAgB,CAAEllB,KAAMC,QACxBklB,eAAgB,CAAEnlB,KAAMC,QACxB6Z,OAAQ,CAAE9Z,KAAMV,QAASa,SAAS,GAClCykB,aAAc,CAAE5kB,KAAMpB,QACtBimB,SAAU,CAAE7kB,KAAMpB,SAGpB,WAAAxB,GACEoF,OACD,CAED,UAAA4iB,GACE,IAAIC,GAAY,EAChB9lB,MAAMyb,KAAK3d,KAAK6S,iBAAiB,4BAC9B7N,UACAc,SAAS8gB,IACR,GAAmB,SAAfA,EAAMjkB,KAAiB,CACzB,MAAMslB,EAAOrB,EAAMsB,MAAM,GACrBD,GAAQA,EAAK1hB,KAAOqgB,EAAMhM,QAAQuN,IACpCvB,EAAMwB,kBAAkBxB,EAAMhM,QAAQyN,SAGtCzB,EAAMwB,kBAAkB,GAE3B,CACaxB,EAAM1B,kBAElB0B,EAAMzB,iBACN6C,GAAY,EACb,IAEDA,GACFhoB,KAAKiR,cACH,IAAIC,YAAY,YAAa,CAC3ByH,OAAQ,CAAEyF,QAASpe,MACnBmR,SAAS,EACTmR,UAAU,IAIjB,CAED,cAAAgG,GACEtoB,KAAKiR,cACH,IAAIC,YAAY,gBAAiB,CAC/ByH,OAAQ,CAAEyF,QAASpe,MACnBmR,SAAS,EACTmR,UAAU,IAGf,CAED,MAAAzS,GACEwH,QAAQC,IAAItX,KAAKwnB,UACjB,MAAMe,EAAavoB,KAAKwnB,SACpB/V,CAAI,oBAAoBzR,KAAK+nB;YACzB/nB,KAAKwnB,UAAUK;mBAEnB,GACEW,EAAaxoB,KAAKunB,aACpB9V,CAAI,oBAAoBzR,KAAKsoB;UAC3BtoB,KAAKunB,cAAcO;mBAErB,GAGJ,IAAIW,EAAUhX,CAAI;;UAEZ+W,KAAcD;;;MAKpB,OAAO9W,CAAI;;QAEPgX;KAEL,EAGH9W,eAAeC,OAAO,YAAagW,IAGnC9gB,SAASqI,iBAAiB,oBAAoB,WAE5CwC,eAAe+W,YAAY,cAAcxE,MAAK,KAC5C,MAAMyE,EAAY7hB,SAAS8J,cAAc,aAEzC,GAAI+X,EAAW,CACb,MAAMliB,EAAakiB,EAAUliB,WAE7B,GAAIA,EAAY,CAEd,MAAMse,EAAete,EAAWmK,cAAc,yBAE1CmU,GAMV,SAA8BA,GAC5B,MAAM6D,EAAe9hB,SAASuU,eAAe,UACvCwN,EAAmB/hB,SAASuU,eAAe,gBAC3CyN,EAAmBhiB,SAASuU,eAAe,sBAC3C0N,EAAWjiB,SAASuU,eAAe,aACnC2N,EAAcliB,SAASuU,eAAe,gBACtC4N,EAAiBniB,SAASuU,eAAe,mBACzC6N,EAAepiB,SAASuU,eAAe,iBACvC8N,EAAkBriB,SAASuU,eAAe,oBAEhD,SAAS+N,IACoB,UAAvBR,EAAa/K,OACfgL,EAAiB5W,MAAMmP,QAAU,QACjC0H,EAAiB7W,MAAMmP,QAAU,QACjCyH,EAAiB5hB,aAAa,WAAY,UAE1C4hB,EAAiB5W,MAAMmP,QAAU,OACjC0H,EAAiB7W,MAAMmP,QAAU,OACjCyH,EAAiBnhB,gBAAgB,YAEpC,CAED,SAAS2hB,IACDL,EAAYhC,SAAWiC,EAAejC,SACxCjC,EAAakC,UAAW,EACxB8B,EAAS9W,MAAMmP,QAAU,SAEzB2D,EAAakC,UAAW,EACxB8B,EAAS9W,MAAMmP,QAAU,OAE9B,CAGDgI,IACAC,IAGAT,EAAazZ,iBAAiB,SAAUia,GACxCJ,EAAY7Z,iBAAiB,SAAUka,GACvCJ,EAAe9Z,iBAAiB,SAAUka,GAC1CH,EAAa/Z,iBAAiB,SAAUka,GACxCF,EAAgBha,iBAAiB,SAAUka,EAC5C,CA/COC,CAAqBvE,EAExB,CACF,IA8CL,IC3SA,MAAMwE,WAAgBtZ,GACpBG,cAAgBC,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA8EnB,WAAAtQ,GACEoF,QACAnF,KAAKwpB,cAAgBxpB,KAAKwpB,cAAchZ,KAAKxQ,MAC7CA,KAAKypB,eAAiBzpB,KAAKypB,eAAejZ,KAAKxQ,MAC/CA,KAAK0pB,gBAAkB1pB,KAAK0pB,gBAAgBlZ,KAAKxQ,KAClD,CAED,YAAA0I,GACE1I,KAAK2pB,cAAgB3pB,KAAKyG,WAAWmK,cAAc,mBACnD5Q,KAAK4pB,QAAU5pB,KAAKyG,WAAWmK,cAAc,YAE7C9J,SAASqI,iBAAiB,UAAWnP,KAAKwpB,eAC1CxpB,KAAK2pB,cAAcxa,iBAAiB,QAASnP,KAAK0pB,iBAClD1pB,KAAK2pB,cAAcxa,iBAAiB,WAAYnP,KAAKypB,gBACrDzpB,KAAK4pB,QAAQza,iBAAiB,WAAYnP,KAAKypB,gBAC/CzpB,KAAK2pB,cAAcxa,iBAAiB,aAAcnP,KAAK0pB,iBACvD1pB,KAAK2pB,cAAcxa,iBAAiB,aAAcnP,KAAK0pB,gBACxD,CAED,aAAAF,CAAcjG,GACM,WAAdA,EAAM/R,KACRxR,KAAK4pB,QAAQtX,UAAUrM,IAAI,iBAE9B,CAED,eAAAyjB,GACE1pB,KAAK4pB,QAAQtX,UAAU9D,OAAO,iBAC/B,CAED,cAAAib,CAAelG,GAEVvjB,KAAK4pB,QAAQC,SAAStG,EAAMuG,gBAC5B9pB,KAAK2pB,cAAcE,SAAStG,EAAMuG,gBAEnC9pB,KAAK4pB,QAAQtX,UAAU9D,OAAO,iBAEjC,CAED,MAAAqB,GACE,OAAO4B,CAAI;;;sBAGOzR,KAAKyL,aAAa;;;;;;;;;;;;;KAcrC,EAEHkG,eAAeC,OAAO,cAAe2X,ICzIrC,MAAMQ,WAAmB9Z,GACvBG,kBAAoB,CAClBE,KAAM,CAAExN,SAAS,EAAMH,KAAMV,UAE/BmO,cAAgBC,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA+BnB,OAAA1H,GACE3I,KAAKiH,aAAa,aAAcjH,KAAKsQ,KAAO,WAAa,SAK1D,EAEHqB,eAAeC,OAAO,cAAemY,IC3CrC,MAAMC,WAAmB/Z,GACvBG,cAAgBC,CAAG;;;;;;;;;;;;;;;IAgBnBD,kBAAoB,CAClBE,KAAM,CAAE3N,KAAMV,UAEhB,MAAA4N,GACE,OAAK7P,KAAKsQ,KAiBDmB,CAAI,8BAhBJA,CAAI;;;;;;;;;;;;;;OAkBd,EAEHE,eAAeC,OAAO,cAAeoY,IC1CrC,MAAMC,WAAkBha,GACtBG,cAAgBC,CAAG;;;;;;;;;;;;;;;;;;;;;;;IAwBnBD,kBAAoB,CAClBE,KAAM,CAAE3N,KAAMV,UAEhB,MAAA4N,GACE,OAAO4B,CAAI;;;;;;;;;;;;;;KAeZ,EAEHE,eAAeC,OAAO,aAAcqY,IC9C7B,MAAMC,WAAiBja,GAC5BG,cAAgBC,CAAG;;;;;;;;;;;;;;;ICmBrBsB,eAAeC,OAAO,aAnBtB,cAAmBsY,GACjB,MAAAra,GACE,OAAO4B,CAAI;;;;;;;;;;;;;;KAeZ,WClBH,cAAmBxB,GACjBG,cAAgBC,CAAG;;;;;;;;;;;;;;;IAgBnB,MAAAR,GACE,OAAO4B,CAAI;;;;;;;;;;;;;;KAeZ,GAEHE,eAAeC,OAAO,YAAauY,ICnCnC,MAAMC,WAAmBna,GACvBG,cAAgBC,CAAG;;;;;;;;;;;;;;;IAgBnBD,kBAAoB,CAClBE,KAAM,CAAE3N,KAAMV,UAEhB,MAAA4N,GACE,OAAO4B,CAAI;;;;;;;;;;;;;;KAeZ,EAEHE,eAAeC,OAAO,cAAewY,ICtCrC,MAAMC,WAAkBpa,GACtBG,cAAgBC,CAAG;;;;;;;;;;;;;;;IAgBnBD,kBAAoB,CAClBE,KAAM,CAAE3N,KAAMV,UAEhB,MAAA4N,GACE,OAAO4B,CAAI;;;;;;;;;;;;;;KAeZ,EAEHE,eAAeC,OAAO,aAAcyY,WCtCpC,cAAmBpa,GACjBG,cAAgBC,CAAG;;;;;;;;;;;;;IAcnB,MAAAR,GACE,OAAO4B,CAAI;;;;;;;;;;;;;;;;;;KAmBZ,GAEHE,eAAeC,OAAO,gBAAiBuY,WCrCvC,cAAmBla,GACjBG,cAAgBC,CAAG;;;;;;;;;;;;;IAcnB,MAAAR,GACE,OAAO4B,CAAI;;;;;;;;;;;;;;;;;;KAmBZ,GAEHE,eAAeC,OAAO,gBAAiBuY,WCrCvC,cAAmBla,GACjBG,cAAgBC,CAAG;;;;;;;;;;;;;IAcnB,MAAAR,GACE,OAAO4B,CAAI;;;;;;;;;;;KAYZ,GAEHE,eAAeC,OAAO,eAAgBuY,WC9BtC,cAAmBla,GACjBG,cAAgBC,CAAG;;;;;;;;;;;;;;;IAgBnB,MAAAR,GACE,OAAO4B,CAAI;;;;;;;;;;;;;;KAeZ,GAEHE,eAAeC,OAAO,eAAgBuY,ICftCxY,eAAeC,OAAO,YAnBtB,cAAmBsY,GACjB,MAAAra,GACE,OAAO4B,CAAI;;;;;;;;;;;;;;KAeZ,ICEHE,eAAeC,OAAO,iBAnBtB,cAAmBsY,GACjB,MAAAra,GACE,OAAO4B,CAAI;;;;;;;;;;;;;;KAeZ,ICCHE,eAAeC,OAAO,iBAlBtB,cAAmBsY,GACjB,MAAAra,GACE,OAAO4B,CAAI;;;;;;;;;;;;;KAcZ,ICGHE,eAAeC,OAAO,oBAnBtB,cAAmBsY,GACjB,MAAAra,GACE,OAAO4B,CAAI;;;;;;;;;;;;;;KAeZ,ICEHE,eAAeC,OAAO,wBAnBtB,cAAmBsY,GACjB,MAAAra,GACE,OAAO4B,CAAI;;;;;;;;;;;;;;KAeZ,ICMHE,eAAeC,OAAO,eAvBtB,cAAmBsY,GACjB,MAAAra,GACE,OAAO4B,CAAI;;;;;;;;;;;;;;;;;;KAmBZ,ICFHE,eAAeC,OAAO,iBAnBtB,cAAmBsY,GACjB,MAAAra,GACE,OAAO4B,CAAI;;;;;;;;;;;;;;KAeZ,ICEHE,eAAeC,OAAO,YAnBtB,cAAmBsY,GACjB,MAAAra,GACE,OAAO4B,CAAI;;;;;;;;;;;;;;KAeZ,IClBH,MAAM6Y,WAAoBra,GACxBG,cAAgBC,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;IA0BnBD,kBAAoB,CAClBE,KAAM,CAAE3N,KAAMV,UAEhB,MAAA4N,GACE,OAAO4B,CAAI;;;;;;;;;;;;;;KAeZ,EAEHE,eAAeC,OAAO,eAAgB0Y,IChDtC,MAAMC,WAAoBta,GACxBG,cAAgBC,CAAG;;;;;;;;;;;;;;;IAgBnBD,kBAAoB,CAClBE,KAAM,CAAE3N,KAAMV,UAEhB,MAAA4N,GACE,OAAO4B,CAAI;;;;;;;;;;;;;;KAeZ,EAEHE,eAAeC,OAAO,eAAgB2Y,ICjBtC5Y,eAAeC,OAAO,WApBtB,cAAmBsY,GACjB,MAAAra,GACE,OAAO4B,CAAI;;;;;;;;;;;;;;KAeZ,ICGHE,eAAeC,OAAO,YApBtB,cAAmBsY,GACjB,MAAAra,GACE,OAAO4B,CAAI;;;;;;;;;;;;;;KAeZ,ICGHE,eAAeC,OAAO,cApBtB,cAAmBsY,GACjB,MAAAra,GACE,OAAO4B,CAAI;;;;;;;;;;;;;;KAeZ,ICGHE,eAAeC,OAAO,gBApBtB,cAAmBsY,GACjB,MAAAra,GACE,OAAO4B,CAAI;;;;;;;;;;;;;;KAeZ,ICGHE,eAAeC,OAAO,gBApBtB,cAAmBsY,GACjB,MAAAra,GACE,OAAO4B,CAAI;;;;;;;;;;;;;;KAeZ,IClBH,MAAM+Y,WAAiBva,GACrBG,cAAgBC,CAAG;;;;;;;;;;;;;;;EAgBnB,MAAAR,GACE,OAAO4B,CAAI;;;;;;;;;;;;;;KAeZ,EAEHE,eAAeC,OAAO,YAAa4Y,ICxBnC7Y,eAAeC,OAAO,aAVtB,cAAmBsY,GACjB,MAAAra,GACE,OAAO4B,CAAI;;;;KAKZ,ICYHE,eAAeC,OAAO,0BAnBtB,cAAgCsY,GAC9B,MAAAra,GACE,OAAO4B,CAAI;;;;;;;;;;;;;;KAeZ,ICEHE,eAAeC,OAAO,cAnBtB,cAAyBsY,GACvB,MAAAra,GACE,OAAO4B,CAAI;;;;;;;;;;;;;;KAeZ,ICEHE,eAAeC,OAAO,eAnBtB,cAA0BsY,GACxB,MAAAra,GACE,OAAO4B,CAAI;;;;;;;;;;;;;;KAeZ,IClBH,MAAMgZ,WAAqBxa,GACzBG,cAAgBC,CAAG;;;;;;;;;;;;;;;IAgBnB,MAAAR,GACE,OAAO4B,CAAI;;;;;;;;;;;;;KAcZ,EAEHE,eAAeC,OAAO,oBAAqB6Y,ICpC3C,MAAMC,GAAc5jB,SAAS+L,iBAC3B,6FAGF6X,GAAY5kB,SAASgZ,IACK,SAApBA,EAAWnc,OAIfmc,EAAW3P,iBAAiB,aAAcoU,IACxCA,EAAM7R,kBACNgZ,GAAY5kB,SAASihB,IACdA,EAAMlJ,OACTkJ,EAAMzU,UAAU9D,OAAO,cACxB,IAGHsQ,EAAWxM,UAAUrM,IAAI,cAAc,IAGzC6Y,EAAW3P,iBAAiB,UAAU,KAChC2P,EAAWjB,MACbiB,EAAWxM,UAAUrM,IAAI,eAEzB6Y,EAAWxM,UAAU9D,OAAO,cAC7B,IAGHsQ,EAAW3P,iBAAiB,WAAYoU,IACpB,QAAdA,EAAM/R,KACRkZ,GAAY5kB,SAASihB,IACdA,EAAMlJ,OACTkJ,EAAMzU,UAAU9D,OAAO,cACxB,GAEJ,IACD,IAGJ1H,SAASqI,iBAAiB,aAAcoU,IACjCA,EAAM3Q,OAAO4H,QAAQ,8CACxBkQ,GAAY5kB,SAASgZ,IACdA,EAAWjB,OACdiB,EAAWxM,UAAU9D,OAAO,cAC7B,GAEJ,IC9CH1H,SAASqI,iBAAiB,oBAAoB,KAGhCrI,SAAS+L,iBAAiB,QAEhC/M,SAAQ,SAAS8c,GACrBA,EAAKzT,iBAAiB,UAAU,SAASoU,GAEvCA,EAAMhS,iBAEN,IAAIoZ,EAAgB3qB,KAAKsb,QAAQ,kBAE7BsP,EAAkBD,EAAgBA,EAAcxQ,GAAK,GAEzD9I,OAAOwZ,UAAUvnB,KAAK,CACpBigB,MAAS,aACTuH,SAAYF,GAEpB,GACA,IAG4B,oBAAfG,YACTA,YAAW,WACTA,WAAW,mBAAmBC,GAAG,kBAAkB,SAAUzH,GAC3DlS,OAAOwZ,UAAUvnB,KAAK,CACpBigB,MAAS,aACTuH,SAAY,aAEtB,GACA,GACG,ICiBHnZ,eAAeC,OAAO,gBA9CtB,cAA2B3B,GACzB,qBAAWzL,GACT,MAAO,CACLymB,YAAa,CAAEtoB,KAAMC,QAExB,CAED,WAAA7C,GACEoF,QACAnF,KAAKirB,YAAc,YACpB,CAED,iBAAA7jB,GACEjC,MAAMiC,oBACNiK,OAAOlC,iBAAiB,UAAWnP,KAAKwpB,cAAchZ,KAAKxQ,OAC3DA,KAAKkrB,uBACN,CAED,oBAAA7jB,GACElC,MAAMkC,uBACNgK,OAAOnC,oBAAoB,UAAWlP,KAAKwpB,cAAchZ,KAAKxQ,MAC/D,CAED,aAAAwpB,CAAcjG,GACZ,GAAIA,EAAM4H,SAAyB,MAAd5H,EAAM/R,IAAa,CACtC,MAAMuE,EAAOjP,SAASiP,KACtBA,EAAKzD,UAAUgC,OAAOtU,KAAKirB,aAC3BG,aAAarK,QAAQ,oBAAqBhL,EAAKzD,UAAUuX,SAAS7pB,KAAKirB,aACxE,CACF,CAED,qBAAAC,GACE,MAAMnV,EAAOjP,SAASiP,KAChBsV,EAAkBD,aAAapK,QAAQ,qBACrB,SAApBqK,EACFtV,EAAKzD,UAAUrM,IAAIjG,KAAKirB,aACK,UAApBI,GACTtV,EAAKzD,UAAU9D,OAAOxO,KAAKirB,YAE9B,CAED,MAAApb,GACE,OAAO4B,CAAI,eACZ,IC3CH,MAAM6Z,WAAiBrb,GACrBG,cAAgBC,CAAG;;;;IAKnB,MAAAR,GACE,OAAO4B,CAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA+CZ,EAEHE,eAAeC,OAAO,gBAAiB0Z,ICxDvC,MAAMC,WAAwBtb,GAC5B,qBAAWzL,GACT,MAAO,CACLwG,QAAS,CAAErI,KAAMC,QACjB4oB,OAAQ,CAAE7oB,KAAMC,QAChB6oB,YAAa,CAAE9oB,KAAMC,QAExB,CACDwN,cAAgBC,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;IA4BnB,WAAAtQ,GACEoF,QAEAnF,KAAK0X,OAAS,GACd1X,KAAKwrB,OAAS,UAEdna,OAAOlC,iBACL,WACChQ,IACC,IAAIkpB,EAAUlpB,EAAEiN,KACXic,EAAQqD,SAEb1rB,KAAKyrB,YAAc,qBACTpD,EAAQqD,sBACjB,IAEH,EAEH,CAED,YAAAhjB,GACE1I,KAAKgL,QAAUhL,KAAKsM,UAEpBtM,KAAK0X,OAAS,6cAeV1X,KAAKgL,qcAgBV,CAED,MAAA6E,GACE,OAAO4B,CAAI,gCAAgCzR,KAAKwrB;uBAC7BxrB,KAAKyrB,wBAAwBzrB,KAAK0X;WAEtD,EClGH,SAASvY,GAAEA,GAAG,OAAO,IAAIuG,SAAQ,SAAS9E,EAAEG,EAAE9B,IAAIA,EAAE,IAAI0sB,gBAAgBrb,KAAK,MAAMnR,EAAEF,EAAE2sB,iBAAgB,GAAI3sB,EAAE4sB,OAAO,WAAW,MAAM5sB,EAAE6sB,OAAOlrB,IAAIG,GAAG,EAAE9B,EAAE8sB,MAAM,GAAE,CDqGjKpa,eAAeC,OAAO,mBAAoB2Z,ICrGwH,IAAI3qB,GAAEG,IAAGH,GAAEkG,SAASC,cAAc,SAASilB,SAASprB,GAAEorB,QAAQC,UAAUrrB,GAAEorB,QAAQC,SAAS,YAAY,SAAS9sB,GAAG,OAAO,IAAIuG,SAAQ,SAAS9E,EAAEG,EAAE9B,IAAIA,EAAE6H,SAASC,cAAc,SAASmlB,IAAI,WAAWjtB,EAAEkc,KAAKhc,EAAEF,EAAE4sB,OAAOjrB,EAAE3B,EAAEktB,QAAQprB,EAAE+F,SAASslB,KAAKjlB,YAAYlI,EAAE,GAAE,EAAEE,GAAEF,GAAEoS,OAAOgb,qBAAqB,SAASltB,GAAG,IAAIyB,EAAEsT,KAAKC,MAAM,OAAO/C,YAAW,WAAWjS,EAAE,CAACmtB,YAAW,EAAGC,cAAc,WAAW,OAAOpjB,KAAKgf,IAAI,EAAE,IAAIjU,KAAKC,MAAMvT,GAAG,GAAG,GAAE,EAAE,EAAEhB,GAAE,IAAIkF,IAAIpE,GAAE,IAAIoE,IAAIjE,IAAE,EAAG,SAASW,GAAErC,GAAG,GAAGA,EAAE,CAAC,GAAGA,EAAEqtB,SAAS,OAAO,IAAItsB,MAAM,wBAAwB,GAAG,KAAKwK,KAAKvL,EAAEstB,eAAe,OAAO,IAAIvsB,MAAM,8BAA8B,CAAC,OAAM,CAAE,CAAosC,SAASR,GAAEkB,EAAE3B,EAAE8C,GAAG,IAAIrC,EAAE8B,GAAEkrB,UAAUC,YAAY,OAAOjtB,aAAaQ,MAAMwF,QAAQqC,OAAO,IAAI7H,MAAM,oBAAoBR,EAAE2oB,WAAW3nB,GAAE6F,KAAK,IAAI1F,IAAGwW,QAAQuV,KAAK,kFAAkFlnB,QAAQmnB,IAAI,GAAGtP,OAAO3c,GAAGiG,KAAI,SAASjG,GAAG,IAAIhB,GAAEiI,IAAIjH,GAAG,OAAOhB,GAAEqG,IAAIrF,IAAI3B,EAAE,SAAS2B,GAAG,OAAOyQ,OAAOsP,MAAMA,MAAM/f,EAAE,CAACksB,YAAY,YAAY3tB,GAAEyB,EAAE,EAAEG,IAAG,IAAI2d,IAAI9d,EAAE+S,SAASwH,MAAM1a,WAAW,KAAI,CAAC,SAAS+B,GAAErD,EAAEyB,GAAG,IAAIG,EAAES,GAAEkrB,UAAUC,YAAY,GAAG5rB,aAAab,MAAM,OAAOwF,QAAQqC,OAAO,IAAI7H,MAAM,qBAAqBa,EAAEsnB,UAAU,IAAI0E,kBAAkBd,SAAS,oBAAoB,OAAOvsB,GAAEP,GAAGuG,QAAQqC,OAAO,IAAI7H,MAAM,uFAAuF,GAAG4G,SAAS8J,cAAc,mCAAmC,OAAOlL,QAAQqC,OAAO,IAAI7H,MAAM,gEAAgE,IAAI,IAAIjB,EAAE,EAAE8C,EAAE,GAAGwb,OAAOpe,GAAGF,EAAE8C,EAAE1B,OAAOpB,GAAG,EAAE,CAAC,IAAIuD,EAAET,EAAE9C,GAAG,GAAGoS,OAAOsC,SAASsP,SAAS,IAAIvE,IAAIlc,EAAE6O,OAAOsC,SAASwH,MAAM8H,OAAO,OAAOvd,QAAQqC,OAAO,IAAI7H,MAAM,sCAAsCsC,IAAI9B,GAAEuF,IAAIzD,EAAE,CAAC5C,GAAE2G,KAAK,IAAI1F,IAAGwW,QAAQuV,KAAK,kFAAkF,IAAIlrB,EAAE,SAASvC,GAAG,IAAIyB,EAAEkG,SAASC,cAAc,UAAUnG,EAAE+B,KAAK,mBAAmB/B,EAAEkd,KAAK,6CAA6C5b,MAAMyb,KAAKxe,GAAG6tB,KAAK,OAAO,QAAQ,IAAIlmB,SAASslB,KAAKjlB,YAAYvG,EAAE,CAAC,MAAMzB,GAAG,OAAOA,CAAC,CAAC,OAAM,CAAE,CAA9N,CAAgOuB,IAAG,OAAM,IAAKgB,EAAEgE,QAAQunB,UAAUvnB,QAAQqC,OAAOrG,EAAE,CCoJ16G2P,OAAOlC,iBAAiB,QAAQ,MDpJsvB,SAAWhQ,GAAG,GAAGA,IAAIA,EAAE,CAAE,GAAEkS,OAAOwI,qBAAqB,CAAC,IAAIjZ,EAAE,SAASzB,GAAGA,EAAEA,GAAG,EAAE,IAAIyB,EAAE,GAAGG,EAAE,EAAE,SAAS9B,IAAI8B,EAAE5B,GAAGyB,EAAEP,OAAO,IAAIO,EAAEssB,OAAFtsB,GAAYG,IAAI,CAAC,MAAM,CAAC,SAAS5B,GAAGyB,EAAE0C,KAAKnE,GAAG,GAAGF,GAAG,EAAE,WAAW8B,IAAI9B,GAAG,EAAE,CAAzI,CAA2IE,EAAEguB,UAAU,KAAKpsB,EAAEH,EAAE,GAAGY,EAAEZ,EAAE,GAAGmB,EAAE5C,EAAEiuB,OAAO,IAAI1rB,EAAEvC,EAAEkuB,SAAS,CAAC1Z,SAASiL,UAAU9c,EAAE3C,EAAEmuB,SAAS,GAAGlsB,EAAEjC,EAAEouB,OAAO,EAAE3rB,EAAE,GAAG6H,EAAEtK,EAAEquB,WAAWvuB,GAAEgL,EAAE,mBAAmB9K,EAAEsuB,QAAQtuB,EAAEsuB,OAAO9jB,EAAExK,EAAEuuB,YAAW,EAAG7sB,GAAE1B,EAAEwuB,uBAAsB,EAAG,IAAIpkB,EAAE,IAAIsQ,sBAAqB,SAASjZ,GAAGA,EAAEkF,SAAQ,SAASlF,GAAG,GAAGA,EAAEoZ,eAAepY,EAAE0B,MAAM1C,EAAEA,EAAEgS,QAAQuI,MAAM,SAAShc,EAAEyB,GAAGA,EAAEwQ,WAAWjS,EAAEyB,GAAGzB,GAAG,CAAnC,EAAqC,YAAY,IAAIyC,EAAEyK,QAAQzL,EAAEua,QAAQ5R,EAAEqkB,UAAUhtB,IAAIC,IAAG8I,IAAIjJ,GAAE6F,KAAK,EAAE/D,GAAEyH,EAAEA,EAAErJ,GAAGA,EAAEua,MAAM0K,OAAM,SAASjlB,GAAG,IAAIzB,EAAE0uB,QAAQ,MAAMjtB,EAAEzB,EAAE0uB,QAAQjtB,EAAE,IAAGhB,GAAE2G,KAAKxE,IAAI4H,GAAG5I,GAAE,WAAWrB,GAAEuK,EAAEA,EAAErJ,GAAGA,EAAEua,KAAKhc,EAAE2uB,UAAU5J,KAAK1iB,GAAGqkB,OAAM,SAASjlB,GAAGY,IAAIrC,EAAE0uB,SAAS1uB,EAAE0uB,QAAQjtB,EAAE,GAAE,IAAG,GAAEQ,OAAO,CAAC,IAAInC,EAAE2C,EAAEyK,SAASzL,EAAEA,EAAEgS,QAAQuI,MAAMlc,GAAG,GAAG2C,EAAEmsB,OAAO9uB,EAAE,CAAC,GAAE,GAAE,CAAC2a,UAAUza,EAAEya,WAAW,IAAWnQ,GAAE,YAAYtK,EAAE2L,IAAIhE,UAAU+L,iBAAiB,KAAK/M,SAAQ,SAAS3G,GAAGuC,EAAErB,SAASqB,EAAEssB,SAAS7uB,EAAEyf,WAAW,SAASzf,EAAEyB,EAAEG,GAAG,OAAOmB,MAAM2C,QAAQ9D,GAAGA,EAAEid,MAAK,SAASjd,GAAG,OAAO5B,EAAEyB,EAAEG,EAAE,KAAIA,EAAE2J,MAAM3J,GAAGiD,KAAKjD,EAAEH,EAAEua,KAAKva,EAAE,CAAvG,CAAyGzB,EAAE2C,IAAIyH,EAAEwJ,QAAQ5T,EAAE,GAAE,GAAE,CAAC8gB,QAAQ9gB,EAAE8gB,SAAS,KAA0C,CAAC,CCqJt9DgO,EAAQ","x_google_ignoreList":[0,1,2,3,12,13,66]}