diff --git a/package.json b/package.json index f0f73d5..776bf6f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "marco", - "version": "1.28.0", + "version": "1.29.0", "private": true, "description": "Unhosted maps app", "repository": { diff --git a/release/assets/main-C4QF_Hr3.js b/release/assets/main-C4QF_Hr3.js deleted file mode 100644 index 60d62af..0000000 --- a/release/assets/main-C4QF_Hr3.js +++ /dev/null @@ -1 +0,0 @@ -var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),a=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:"Module"}),r},l=(o,a,l)=>(l=null!=o?e(i(o)):{},((e,i,o,a)=>{if(i&&"object"==typeof i||"function"==typeof i)for(var l,c=r(i),u=0,h=c.length;ui[e]).bind(null,l),enumerable:!(a=n(i,l))||a.enumerable});return e})(!a&&o&&o.__esModule&&s.call(o,"default")?l:t(l,"default",{value:o,enumerable:!0}),o)),c=(e=>"undefined"!=typeof require?require:"undefined"!=typeof Proxy?new Proxy(e,{get:(e,t)=>("undefined"!=typeof require?require:e)[t]}):e)(function(e){if("undefined"!=typeof require)return require.apply(this,arguments);throw Error('Calling `require` for "'+e+"\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.")});!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))t(e);new MutationObserver(e=>{for(const n of e)if("childList"===n.type)for(const e of n.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&t(e)}).observe(document,{childList:!0,subtree:!0})}function t(e){if(e.ep)return;e.ep=!0;const t=function(e){const t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?t.credentials="include":"anonymous"===e.crossOrigin?t.credentials="omit":t.credentials="same-origin",t}(e);fetch(e.href,t)}}();var u,h=Object.prototype,d=Symbol("undefined"),p=function(e){return e[e.ADD=0]="ADD",e[e.ONCE=1]="ONCE",e[e.REMOVE=2]="REMOVE",e}(p||{}),f=1,g=class{_descriptors;_mixins;_isInit;_lazyChains;_values;_revisions;source;proto;_parent;_listeners;_listenersVersion=1;_inheritedEnd=-1;_flattenedVersion=0;constructor(e){this._parent=void 0,this._descriptors=void 0,this._mixins=void 0,this._lazyChains=void 0,this._values=void 0,this._revisions=void 0,this._isInit=!1,this.source=e,this.proto=void 0===e.constructor?void 0:e.constructor.prototype,this._listeners=void 0}get parent(){let e=this._parent;if(void 0===e){let t=m(this.source);this._parent=e=null===t||t===h?null:w(t)}return e}setInitializing(){this._isInit=!0}unsetInitializing(){this._isInit=!1}isInitializing(){return this._isInit}isPrototypeMeta(e){return this.proto===this.source&&this.source===e}_getOrCreateOwnMap(e){return this[e]||(this[e]=Object.create(null))}_getOrCreateOwnSet(e){return this[e]||(this[e]=new Set)}_findInheritedMap(e,t){let n=this;for(;null!==n;){let r=n[e];if(void 0!==r){let e=r.get(t);if(void 0!==e)return e}n=n.parent}}_hasInInheritedSet(e,t){let n=this;for(;null!==n;){let r=n[e];if(void 0!==r&&r.has(t))return!0;n=n.parent}return!1}valueFor(e){let t=this._values;return void 0!==t?t[e]:void 0}setValueFor(e,t){this._getOrCreateOwnMap("_values")[e]=t}revisionFor(e){let t=this._revisions;return void 0!==t?t[e]:void 0}setRevisionFor(e,t){this._getOrCreateOwnMap("_revisions")[e]=t}writableLazyChainsFor(e){let t=this._getOrCreateOwnMap("_lazyChains"),n=t[e];return void 0===n&&(n=t[e]=[]),n}readableLazyChainsFor(e){let t=this._lazyChains;if(void 0!==t)return t[e]}addMixin(e){this._getOrCreateOwnSet("_mixins").add(e)}hasMixin(e){return this._hasInInheritedSet("_mixins",e)}forEachMixins(e){let t,n=this;for(;null!==n;){let r=n._mixins;void 0!==r&&(t=void 0===t?new Set:t,r.forEach(n=>{t.has(n)||(t.add(n),e(n))})),n=n.parent}}writeDescriptors(e,t){(this._descriptors||(this._descriptors=new Map)).set(e,t)}peekDescriptors(e){let t=this._findInheritedMap("_descriptors",e);return t===d?void 0:t}removeDescriptors(e){this.writeDescriptors(e,d)}forEachDescriptors(e){let t,n=this;for(;null!==n;){let r=n._descriptors;void 0!==r&&(t=void 0===t?new Set:t,r.forEach((n,r)=>{t.has(r)||(t.add(r),n!==d&&e(r,n))})),n=n.parent}}addToListeners(e,t,n,r,i){this.pushListener(e,t,n,r?p.ONCE:p.ADD,i)}removeFromListeners(e,t,n){this.pushListener(e,t,n,p.REMOVE)}pushListener(e,t,n,r,i=!1){let s=this.writableListeners(),o=_(s,e,t,n);if(-1!==o&&o0&&(e.splice(0,this._inheritedEnd),this._inheritedEnd=0);for(let n of t)-1===_(e,n.event,n.target,n.method)&&(e.unshift(n),this._inheritedEnd++)}}this._flattenedVersion=f}return this._listeners}matchingListeners(e){let t,n=this.flattenedListeners();if(void 0!==n)for(let r of n)r.event!==e||r.kind!==p.ADD&&r.kind!==p.ONCE||(void 0===t&&(t=[]),t.push(r.target,r.method,r.kind===p.ONCE));return t}observerEvents(){let e,t=this.flattenedListeners();if(void 0!==t)for(let n of t)n.kind!==p.ADD&&n.kind!==p.ONCE||-1===n.event.indexOf(":change")||(void 0===e&&(e=[]),e.push(n));return e}},m=Object.getPrototypeOf,y=new WeakMap;function v(e,t){y.set(e,t)}function b(e){let t=y.get(e);if(void 0!==t)return t;let n=m(e);for(;null!==n;){if(t=y.get(n),void 0!==t)return t.proto!==n&&(t.proto=n),t;n=m(n)}return null}var w=function(e){let t=b(e);if(null!==t&&t.source===e)return t;let n=new g(e);return v(e,n),n};function _(e,t,n,r){for(let i=e.length-1;i>=0;i--){let s=e[i];if(s.event===t&&s.target===n&&s.method===r)return i}return-1}function x(e){let[t,n,r]=e;return 3===e.length&&("function"==typeof t||"object"==typeof t&&null!==t)&&"string"==typeof n&&("object"==typeof r&&null!==r||void 0===r)}function C(e){let t=function(){return e};return A(t),t}var S=class{enumerable=!0;configurable=!0;_dependentKeys=void 0;_meta=void 0;setup(e,t,n,r){r.writeDescriptors(t,this)}teardown(e,t,n){n.removeDescriptors(t)}};function k(e,t){return function(){return t.get(this,e)}}function E(e,t){let n=function(n){return t.set(this,e,n)};return R.add(n),n}var R=new WeakSet;function T(e,t){let n=function(t,n,r,i){let s=3===arguments.length?w(t):i;return e.setup(t,n,r,s),{enumerable:e.enumerable,configurable:e.configurable,get:k(n,e),set:E(n,e)}};return A(n,e),Object.setPrototypeOf(n,t.prototype),n}var L=new WeakMap;function I(e,t,n){let r=void 0===n?b(e):n;if(null!==r)return r.peekDescriptors(t)}function P(e){return L.get(e)}function M(e){return"function"==typeof e&&L.has(e)}function A(e,t=!0){L.set(e,t)}var O={ENABLE_OPTIONAL_FEATURES:!1,EXTEND_PROTOTYPES:{Array:!1},LOG_STACKTRACE_ON_DEPRECATION:!0,LOG_VERSION:!0,LOG_INSPECTOR_HINT:!0,RAISE_ON_DEPRECATION:!1,STRUCTURED_PROFILE:!1,_DEBUG_RENDER_TREE:!1,_ALL_DEPRECATIONS_ENABLED:!1,_OVERRIDE_DEPRECATION_VERSION:null,_DEFAULT_ASYNC_OBSERVERS:!1,_RERENDER_LOOP_LIMIT:1e3,FEATURES:{}},N=globalThis.EmberENV;if("object"==typeof N&&null!==N){for(let t in N){if(!Object.prototype.hasOwnProperty.call(N,t)||"EXTEND_PROTOTYPES"===t||"EMBER_LOAD_HOOKS"===t)continue;let e=O[t];O[t]=!0===e?!1!==N[t]:!1===e?!0===N[t]:N[t]}let{FEATURES:e}=N;if("object"==typeof e&&null!==e)for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(O.FEATURES[t]=!0===e[t])}function F(){return O}var D,z,j,U,B,$,q,V,W=()=>{},H=new WeakMap,G=Symbol("BrandedArray");function K(e){return Array.isArray(e)&&G in e}function Z(e,t){if(null===e)return t;if(K(e))return e.push(t),e;{const n=[e,t];return n[G]=!0,n}}function Y(e,t){K(e)?e.forEach(t):null!==e&&t(e)}function X(e,t){if(K(e)&&e.length>1){let n=e.indexOf(t),r=e.length-1;return n!==r&&(e[n]=e[r]),e.length=r,e}return null}function J(e){let t=H.get(e);return void 0===t&&(t={parents:null,children:null,eagerDestructors:null,destructors:null,state:0},H.set(e,t)),t}function Q(e,t){let n=J(e),r=J(t);return n.children=Z(n.children,t),r.parents=Z(r.parents,e),t}function ee(e,t,n=!1){let r=J(e),i=n?"eagerDestructors":"destructors";return r[i]=Z(r[i],t),t}function te(e){let t=J(e);if(t.state>=1)return;let{parents:n,children:r,eagerDestructors:i,destructors:s}=t;t.state=1,Y(r,te),Y(i,t=>{t(e)}),Y(s,t=>{D(e,t)}),z(()=>{Y(n,t=>{!function(e,t){let n=J(t);2!==n.state&&(n.children=X(n.children,e))}(e,t)}),t.state=2})}function ne(e){let t=H.get(e);return void 0!==t&&null!==t.children}function re(e){let t=H.get(e);return void 0!==t&&t.state>=1}function ie(e){let t=H.get(e);return void 0!==t&&t.state>=2}var se=1;function oe(){se++}var ae=Symbol("TAG_COMPUTE");function le(e){return e[ae]()}function ce(e,t){return t>=e[ae]()}var ue=Symbol("TAG_TYPE"),he=class e{static combine(t){switch(t.length){case 0:return me;case 1:return t[0];default:{let n=new e(2);return n.subtag=t,n}}}revision=1;lastChecked=1;lastValue=1;isUpdating=!1;subtag=null;subtagBufferCache=null;constructor(e){this[ue]=e}[ae](){let{lastChecked:e}=this;if(this.isUpdating)this.lastChecked=++se;else if(e!==se){this.isUpdating=!0,this.lastChecked=se;try{let{subtag:e,revision:t}=this;if(null!==e)if(Array.isArray(e))for(const n of e){let e=n[ae]();t=Math.max(e,t)}else{let n=e[ae]();n===this.subtagBufferCache?t=Math.max(t,this.lastValue):(this.subtagBufferCache=null,t=Math.max(t,n))}this.lastValue=t}finally{this.isUpdating=!1}}return this.lastValue}static updateTag(e,t){let n=e,r=t;r===me?n.subtag=null:(n.subtagBufferCache=r[ae](),n.subtag=r)}static dirtyTag(e,t){e.revision=++se,W()}},de=he.dirtyTag,pe=he.updateTag;function fe(){return new he(0)}function ge(){return new he(1)}var me=new he(3);function ye(e){return e===me}var ve=class{[ue]=100;[ae](){return NaN}},be=new ve,we=class{[ue]=101;[ae](){return se}},_e=new we,xe=he.combine,Ce=ge(),Se=ge(),ke=ge();le(Ce),de(Ce),le(Ce),pe(Ce,xe([Se,ke])),le(Ce),de(Se),le(Ce),de(ke),le(Ce),pe(Ce,ke),le(Ce),de(ke),le(Ce);var Ee=class{tags=new Set;last=null;add(e){e!==me&&(this.tags.add(e),this.last=e)}combine(){let{tags:e}=this;return 0===e.size?me:1===e.size?this.last:xe(Array.from(this.tags))}},Re=null,Te=[];function Le(){Te.push(Re),Re=new Ee}function Ie(){let e=Re;return Re=Te.pop()||null,function(e){if(null==e)throw new Error("Expected value to be present");return e}(e).combine()}function Pe(){Te.push(Re),Re=null}function Me(){Re=Te.pop()||null}function Ae(){for(;Te.length>0;)Te.pop();Re=null}function Oe(){return null!==Re}function Ne(e){null!==Re&&Re.add(e)}var Fe=Symbol("FN"),De=Symbol("LAST_VALUE"),ze=Symbol("TAG"),je=Symbol("SNAPSHOT");function Ue(e){return{[Fe]:e,[De]:void 0,[ze]:void 0,[je]:-1}}function Be(e){let t=e[Fe],n=e[ze],r=e[je];if(void 0!==n&&ce(n,r))Ne(n);else{Le();try{e[De]=t()}finally{n=Ie(),e[ze]=n,e[je]=le(n),Ne(n)}}return e[De]}function $e(e){return ye(e[ze])}function qe(e){let t;Le();try{e()}finally{t=Ie()}return t}function Ve(e){Pe();try{return e()}finally{Me()}}var We=new WeakMap;function He(e,t,n){let r=void 0===n?We.get(e):n;if(void 0===r)return;let i=r.get(t);void 0!==i&&de(i,!0)}function Ge(e){let t=We.get(e);return void 0===t&&(t=new Map,We.set(e,t)),t}function Ke(e,t,n){let r=void 0===n?Ge(e):n,i=r.get(t);return void 0===i&&(i=ge(),r.set(t,i)),i}function Ze(e){return null!==e&&("object"==typeof e||"function"==typeof e)}function Ye(e){return e}function Xe(e){return e}function Je(e){return!!e&&e.length>0}function Qe(e){return 0===e.length?void 0:e[e.length-1]}function et(e){return 0===e.length?void 0:e[0]}function tt(){return Object.create(null)}function nt(e){return null!=e}function rt(e){return"function"==typeof e||"object"==typeof e&&null!==e}var it=class{stack;current=null;constructor(e=[]){this.stack=e}get size(){return this.stack.length}push(e){this.current=e,this.stack.push(e)}pop(){let e=this.stack.pop();return this.current=Qe(this.stack)??null,void 0===e?null:e}nth(e){let t=this.stack.length;return twt(e),null,e.debugLabel):e}function mt(e){return 3===e[st]}function yt(e){const t=ft(()=>wt(e),t=>_t(e,t));return t.debugLabel=e.debugLabel,t[st]=3,t}function vt(e){return e.tag===me}function bt(e){return null!==e.update}function wt(e){const t=e;let{tag:n}=t;if(n===me)return t.lastValue;const{lastRevision:r}=t;let i;if(null!==n&&ce(n,r))i=t.lastValue;else{const{compute:e}=t,r=qe(()=>{i=t.lastValue=e()});n=t.tag=r,t.lastRevision=le(r)}return Ne(n),i}function _t(e,t){(0,e.update)(t)}function xt(e,t){const n=e,r=n[st];let i,s=n.children;if(null===s)s=n.children=new Map;else{const e=s.get(t);if(e)return e}if(2===r){const e=wt(n);i=nt(e)?pt(e[t]):lt}else i=ft(()=>{const e=wt(n);if(nt(e))return B(e,t)},e=>{const r=wt(n);if(nt(r))return $(r,t,e)});return s.set(t,i),i}function Ct(e,t){let n=e;for(const r of t)n=xt(n,r);return n}var St=new WeakMap;function kt(e){return St.get(e)}function Et(e,t){St.set(e,t)}function Rt(e){if("symbol"==typeof e)return null;const t=Number(e);return isNaN(t)?null:t%1==0?t:null}var Tt=class{constructor(e){this.named=e}get(e,t){const n=this.named[t];if(void 0!==n)return wt(n)}has(e,t){return t in this.named}ownKeys(){return Object.keys(this.named)}isExtensible(){return!1}getOwnPropertyDescriptor(e,t){return{enumerable:!0,configurable:!0}}},Lt=class{constructor(e){this.positional=e}get(e,t){let{positional:n}=this;if("length"===t)return n.length;const r=Rt(t);return null!==r&&r>=0&&r=0&&n{const{named:t,positional:n}=e,r=new Tt(t),i=new Lt(n),s=Object.create(null),o=new Proxy(s,r),a=new Proxy([],i);return Et(o,(e,n)=>function(e,t){return qe(()=>{t in e&&wt(e[t])})}(t,n)),Et(a,(e,t)=>function(e,t){return qe(()=>{"[]"===t&&e.forEach(wt);const n=Rt(t);null!==n&&n>=0&&n-1?function(e){return Bt.test($t.call(e))}:function(){return!0},Vt=new WeakMap,Wt=Object.freeze(function(){});function Ht(e){let t=Vt.get(e);return void 0===t&&(t=qt(e),Vt.set(e,t)),t}Vt.set(Wt,!1);var Gt=class{listeners=void 0;observers=void 0},Kt=new WeakMap;function Zt(e){let t=Kt.get(e);return void 0===t&&(t=new Gt,Kt.set(e,t)),t}function Yt(e){return Kt.get(e)}function Xt(e,t){Zt(e).observers=t}function Jt(e,t){Zt(e).listeners=t}var Qt=new WeakSet;function en(e,t){return Ht(e)?!Qt.has(t)&&Ht(t)?tn(e,tn(t,Wt)):tn(e,t):e}function tn(e,t){function n(){let n=this._super;this._super=t;let r=e.apply(this,arguments);return this._super=n,r}Qt.add(n);let r=Kt.get(e);return void 0!==r&&Kt.set(n,r),n}function nn(e,t,n,r,i,s=!0){r||"function"!=typeof n||(r=n,n=null),w(e).addToListeners(t,n,r,!0===i,s)}function rn(e,t,n,r){let i,s;"object"==typeof n?(i=n,s=r):(i=null,s=n),w(e).removeFromListeners(t,i,s)}function sn(e,t,n,r,i){if(void 0===r){let n=void 0===i?b(e):i;r=null!==n?n.matchingListeners(t):void 0}if(void 0===r||0===r.length)return!1;for(let s=r.length-3;s>=0;s-=3){let i=r[s],o=r[s+1],a=r[s+2];if(!o)continue;a&&rn(e,t,i,o),i||(i=e);let l=typeof o;"string"!==l&&"symbol"!==l||(o=i[o]),o.apply(i,n)}return!0}function on(e,t){let n=b(e);if(null===n)return!1;let r=n.matchingListeners(t);return void 0!==r&&r.length>0}function an(...e){let t=e.pop();return Jt(t,e),t}function ln(e){return e+":change"}var cn=!O._DEFAULT_ASYNC_OBSERVERS,un=new Map,hn=new Map;function dn(e,t,n,r,i=cn){let s=ln(t);nn(e,s,n,r,!1,i);let o=b(e);null!==o&&(o.isPrototypeMeta(e)||o.isInitializing())||fn(e,s,i)}function pn(e,t,n,r,i=cn){let s=ln(t),o=b(e);null!==o&&(o.isPrototypeMeta(e)||o.isInitializing())||yn(e,s,i),rn(e,s,n,r)}function fn(e,t,n=!1){let r=function(e,t){let n=!0===t?un:hn;return n.has(e)||(n.set(e,new Map),ee(e,()=>function(e){un.size>0&&un.delete(e),hn.size>0&&hn.delete(e)}(e),!0)),n.get(e)}(e,n);if(r.has(t))r.get(t).count++;else{let n=t.substring(0,t.lastIndexOf(":")),i=jt(e,n,Ge(e),b(e));r.set(t,{count:1,path:n,tag:i,lastRevision:le(i),suspended:!1})}}var gn=!1,mn=[];function yn(e,t,n=!1){if(!0===gn)return void mn.push([e,t,n]);let r=!0===n?un:hn,i=r.get(e);if(void 0!==i){let n=i.get(t);n.count--,0===n.count&&(i.delete(t),0===i.size&&r.delete(e))}}function vn(e){hn.has(e)&&hn.get(e).forEach(t=>{t.tag=jt(e,t.path,Ge(e),b(e)),t.lastRevision=le(t.tag)}),un.has(e)&&un.get(e).forEach(t=>{t.tag=jt(e,t.path,Ge(e),b(e)),t.lastRevision=le(t.tag)})}var bn=0;function wn(e){let t=le(_e);bn!==t&&(bn=t,hn.forEach((t,n)=>{let r=b(n);t.forEach((t,i)=>{if(!ce(t.tag,t.lastRevision)){let s=()=>{try{sn(n,i,[n,t.path],void 0,r)}finally{t.tag=jt(n,t.path,Ge(n),b(n)),t.lastRevision=le(t.tag)}};e?e("actions",s):s()}})}))}function _n(){un.forEach((e,t)=>{let n=b(t);e.forEach((e,r)=>{if(!e.suspended&&!ce(e.tag,e.lastRevision))try{e.suspended=!0,sn(t,r,[t,e.path],void 0,n)}finally{e.tag=jt(t,e.path,Ge(t),b(t)),e.lastRevision=le(e.tag),e.suspended=!1}})})}function xn(e,t,n){let r=un.get(e);if(!r)return;let i=r.get(ln(t));i&&(i.suspended=n)}var Cn=()=>{},{toString:Sn}=Object.prototype,{toString:kn}=Function.prototype,{isArray:En}=Array,{keys:Rn}=Object,{stringify:Tn}=JSON,Ln=100,In=/^[\w$]+$/;function Pn(e){return"number"==typeof e&&2===arguments.length?this:Mn(e,0)}function Mn(e,t,n){let r=!1;switch(typeof e){case"undefined":return"undefined";case"object":if(null===e)return"null";if(En(e)){r=!0;break}if(e.toString===Sn||void 0===e.toString)break;return e.toString();case"function":return e.toString===kn?e.name?`[Function:${e.name}]`:"[Function]":e.toString();case"string":return Tn(e);default:return e.toString()}if(void 0===n)n=new WeakSet;else if(n.has(e))return"[Circular]";return n.add(e),r?function(e,t,n){if(t>4)return"[Array]";let r="[";for(let i=0;i=Ln){r+=`... ${e.length-Ln} more items`;break}r+=Mn(e[i],t,n)}return r+=" ]",r}(e,t+1,n):function(e,t,n){if(t>4)return"[Object]";let r="{",i=Rn(e);for(let s=0;s=Ln){r+=`... ${i.length-Ln} more keys`;break}let o=i[s];Cn(),r+=`${An(String(o))}: ${Mn(e[o],t,n)}`}return r+=" }",r}(e,t+1,n)}function An(e){return In.test(e)?e:Tn(e)}var On=/\.@each$/;function Nn(e,t){let n=e.indexOf("{");n<0?t(e.replace(On,".[]")):Fn("",e,n,t)}function Fn(e,t,n,r){let i,s,o=t.indexOf("}"),a=0,l=t.substring(n+1,o).split(","),c=t.substring(o+1);for(e+=t.substring(0,n),s=l.length;a0&&this._property(...e)}setup(e,t,n,r){if(super.setup(e,t,n,r),!1===this._hasConfig){let{get:e,set:t}=n;void 0!==e&&(this._getter=e),void 0!==t&&(this._setter=function(n,r){let i=t.call(this,r);return void 0!==e&&void 0===i?e.call(this):i})}}_property(...e){let t=[];function n(e){t.push(e)}for(let r of e)Nn(r,n);this._dependentKeys=t}get(e,t){let n,r=w(e),i=Ge(e),s=Ke(e,t,i),o=r.revisionFor(t);if(void 0!==o&&ce(s,o))n=r.valueFor(t);else{let{_getter:o,_dependentKeys:a}=this;Ve(()=>{n=o.call(e,t)}),void 0!==a&&pe(s,zt(e,a,i,r)),r.setValueFor(t,n),r.setRevisionFor(t,le(s)),Dt(r,t,n)}return Ne(s),Array.isArray(n)&&Ne(Ke(n,"[]")),n}set(e,t,n){this._readOnly&&this._throwReadOnlyError(e,t);let r,i=w(e);i.isInitializing()&&void 0!==this._dependentKeys&&this._dependentKeys.length>0&&"function"==typeof e[Un]&&e.isComponent&&dn(e,t,()=>{e[Un](t)},void 0,!0);try{qn(),r=this._set(e,t,n,i),Dt(i,t,r);let s=Ge(e),o=Ke(e,t,s),{_dependentKeys:a}=this;void 0!==a&&pe(o,zt(e,a,s,i)),i.setRevisionFor(t,le(o))}finally{Vn()}return r}_throwReadOnlyError(e,t){throw new Error(`Cannot set read-only property "${t}" on object: ${Pn(e)}`)}_set(e,t,n,r){let i,s=void 0!==r.revisionFor(t),o=r.valueFor(t),{_setter:a}=this;xn(e,t,!0);try{i=a.call(e,t,n,o)}finally{xn(e,t,!1)}return s&&o===i||(r.setValueFor(t,i),$n(e,t,r,n)),i}teardown(e,t,n){void 0!==n.revisionFor(t)&&(n.setRevisionFor(t,void 0),n.setValueFor(t,void 0)),super.teardown(e,t,n)}},Kn=class extends Gn{get(e,t){let n,r=w(e),i=Ge(e),s=Ke(e,t,i),o=r.revisionFor(t);if(void 0!==o&&ce(s,o))n=r.valueFor(t);else{let{_getter:i}=this,o=qe(()=>{n=i.call(e,t)});pe(s,o),r.setValueFor(t,n),r.setRevisionFor(t,le(s)),Dt(r,t,n)}return Ne(s),Array.isArray(n)&&Ne(Ke(n,"[]",i)),n}},Zn=class extends Function{readOnly(){return P(this)._readOnly=!0,this}meta(e){let t=P(this);return 0===arguments.length?t._meta||{}:(t._meta=e,this)}get _getter(){return P(this)._getter}set enumerable(e){P(this).enumerable=e}};function Yn(...e){return x(e)?T(new Gn([]),Zn)(e[0],e[1],e[2]):T(new Gn(e),Zn)}function Xn(...e){return T(new Kn(e),Zn)}function Jn(e,t){return Boolean(I(e,t))}function Qn(e,t){let n=b(e);return n?n.valueFor(t):void 0}var er=new WeakSet;function tr(e){return!!Ze(e)&&er.has(e)}function nr(e){Ze(e)&&er.add(e)}var rr=new WeakSet;function ir(e){return rr.has(e)}var sr=class{size=0;misses=0;hits=0;constructor(e,t,n=new Map){this.limit=e,this.func=t,this.store=n}get(e){return this.store.has(e)?(this.hits++,this.store.get(e)):(this.misses++,this.set(e,this.func(e)))}set(e,t){return this.limit>this.size&&(this.size++,this.store.set(e,t)),t}purge(){this.store.clear(),this.size=0,this.hits=0,this.misses=0}},or=new sr(1e3,e=>e.indexOf("."));function ar(e){return"string"==typeof e&&-1!==or.get(e)}var lr=Symbol("PROXY_CONTENT");function cr(e){return"object"==typeof e&&null!==e&&"function"==typeof e.unknownProperty}function ur(e,t){return ar(t)?dr(e,t):hr(e,t)}function hr(e,t){if(null==e)return;let n;return"object"==typeof e||"function"==typeof e?(n=e[t],void 0===n&&"object"==typeof e&&!(t in e)&&cr(e)&&(n=e.unknownProperty(t)),Oe()&&(Ne(Ke(e,t)),(Array.isArray(n)||ir(n))&&Ne(Ke(n,"[]")))):n=e[t],n}function dr(e,t,n){let r="string"==typeof t?t.split("."):t;for(let i of r){if(null==e||e.isDestroyed)return;if(n&&("__proto__"===i||"constructor"===i))return;e=hr(e,i)}return e}hr("foo","a"),hr("foo",1),hr({},"a"),hr({},1),hr({unknownProperty(){}},"a"),hr({unknownProperty(){}},1),ur({},"foo"),ur({},"foo.bar");var pr={};function fr(e,t){let n=e;do{let e=Object.getOwnPropertyDescriptor(n,t);if(void 0!==e)return e;n=Object.getPrototypeOf(n)}while(null!==n);return null}function gr(e,t,n,r){return e.isDestroyed?n:ar(t)?function(e,t,n,r){let i=t.split("."),s=i.pop(),o=dr(e,i,!0);if(null!=o)return gr(o,s,n);if(!r)throw new Error(`Property set failed: object in path "${i.join(".")}" could not be found.`)}(e,t,n,r):mr(e,t,n)}function mr(e,t,n){let r,i=fr(e,t);return null!==i&&R.has(i.set)?(e[t]=n,n):(r=e[t],void 0!==r||"object"!=typeof e||t in e||"function"!=typeof e.setUnknownProperty?(e[t]=n,r!==n&&$n(e,t)):e.setUnknownProperty(t,n),n)}function yr(e,t,n){return gr(e,t,n,!0)}function vr(e){return T(new wr(e),br)}nr(pr),qe(()=>hr({},"a")),qe(()=>hr({},1)),qe(()=>hr({a:[]},"a")),qe(()=>hr({a:pr},"a"));var br=class extends Function{readOnly(){return P(this).readOnly(),this}oneWay(){return P(this).oneWay(),this}meta(e){let t=P(this);if(0===arguments.length)return t._meta||{};t._meta=e}},wr=class extends S{altKey;constructor(e){super(),this.altKey=e}setup(e,t,n,r){super.setup(e,t,n,r),Ft.add(this)}get(e,t){let n,r=w(e),i=Ge(e),s=Ke(e,t,i);Ve(()=>{n=ur(e,this.altKey)});let o=r.revisionFor(t);return void 0!==o&&ce(s,o)||(pe(s,jt(e,this.altKey,i,r)),r.setRevisionFor(t,le(s)),Dt(r,t,n)),Ne(s),n}set(e,t,n){return gr(e,this.altKey,n)}readOnly(){this.set=_r}oneWay(){this.set=xr}};function _r(e,t){throw new Error(`Cannot set read-only property '${t}' on object: ${Pn(e)}`)}function xr(e,t,n){return Dn(e,t,null),gr(e,t,n)}function Cr(e,t,n,r){return void 0===t?(t=0,n=r=-1):(void 0===n&&(n=-1),void 0===r&&(r=-1)),sn(e,"@array:before",[e,t,n,r]),e}function Sr(e,t,n,r,i=!0){void 0===t?(t=0,n=r=-1):(void 0===n&&(n=-1),void 0===r&&(r=-1));let s=b(e);if(i&&((r<0||n<0||r-n!==0)&&$n(e,"length",s),$n(e,"[]",s)),sn(e,"@array:change",[e,t,n,r]),null!==s){let i=-1===n?0:n,o=e.length-((-1===r?0:r)-i),a=t<0?o+t:t;void 0!==s.revisionFor("firstObject")&&0===a&&$n(e,"firstObject",s),void 0!==s.revisionFor("lastObject")&&o-1Ar}),Ar="7.2.0",Or=class{_registry;_coreLibIndex;constructor(){this._registry=[],this._coreLibIndex=0}_getLibraryByName(e){let t=this._registry;for(let n of t)if(n.name===e)return n}register(e,t,n){let r=this._registry.length;this._getLibraryByName(e)||(n&&(r=this._coreLibIndex++),this._registry.splice(r,0,{name:e,version:t}))}registerCoreLibrary(e,t){this.register(e,t,!0)}deRegister(e){let t,n=this._getLibraryByName(e);n&&(t=this._registry.indexOf(n),this._registry.splice(t,1))}},Nr=new Or;function Fr(e,t){let n,r={},i=1;for(2===arguments.length&&Array.isArray(t)?(i=0,n=arguments[1]):n=Array.from(arguments);i{let n=Object.keys(t);for(let r of n)gr(e,r,t[r])}),t}Nr.registerCoreLibrary("Ember",Ar);var zr=Symbol("OWNER");function jr(e){return e[zr]}function Ur(e){return jr(e)}function Br(e,t){!function(e,t){e[zr]=t}(e,t)}function $r(e,...t){let n,r;x(t)?n=t:"string"==typeof t[0]&&(r=t[0]);let i=Yn({get:function(t){return(Ur(this)||this.container).lookup(`${e}:${r||t}`)},set(e,t){Dn(this,e,null,t)}});return n?i(n[0],n[1],n[2]):i}function qr(e,t){let n=new WeakMap,r="function"==typeof t;return{getter:function(i){let s;return Ne(Ke(i,e)),r&&!n.has(i)?(s=t.call(i),n.set(i,s)):s=n.get(i),s},setter:function(t,r){He(t,e),n.set(t,r)}}}function Vr(...e){if(!x(e)){let t=e[0],n=t?t.initializer:void 0,r=t?t.value:void 0,i=function(e,t){return Wr([e,t,{initializer:n||(()=>r)}])};return A(i),i}return Wr(e)}function Wr([e,t,n]){let{getter:r,setter:i}=qr(t,n?n.initializer:void 0);function s(){let e=r(this);return(Array.isArray(e)||ir(e))&&Ne(Ke(e,"[]")),e}function o(e){i(this,e),He(this,Mt)}let a={enumerable:!0,configurable:!0,isTracked:!0,get:s,set:o};return R.add(o),w(e).writeDescriptors(t,new Hr(s,o)),a}var Hr=class{constructor(e,t){this._get=e,this._set=t,Ft.add(this)}get(e){return this._get.call(e)}set(e,t,n){this._set.call(e,n)}},Gr=(...e)=>{const[t,n,r]=e,i=new WeakMap,s=r.get;r.get=function(){return i.has(this)||i.set(this,Ue(s.bind(this))),Be(i.get(this))}},Kr=a({ENV:()=>O,context:()=>Xr,getENV:()=>F,getLookup:()=>Jr,setLookup:()=>Qr}),Zr=globalThis,Yr=Zr.Ember,Xr=void 0===Yr?{imports:Zr,exports:Zr,lookup:Zr}:{imports:Yr.imports||Zr,exports:Yr.exports||Zr,lookup:Yr.lookup||Zr};function Jr(){return Xr.lookup}function Qr(e){Xr.lookup=e}var ei=new WeakMap;function ti(e,t){Ze(e)&&ei.set(e,t)}function ni(e){return ei.get(e)}var ri=Object.prototype.hasOwnProperty,ii=!1,si={_set:0,_unprocessedNamespaces:!1,get unprocessedNamespaces(){return this._unprocessedNamespaces},set unprocessedNamespaces(e){this._set++,this._unprocessedNamespaces=e}},oi=!1,ai=[],li=Object.create(null);function ci(e){si.unprocessedNamespaces=!0,ai.push(e)}function ui(e){let t=ni(e);delete li[t],ai.splice(ai.indexOf(e),1),t in Xr.lookup&&e===Xr.lookup[t]&&(Xr.lookup[t]=void 0)}function hi(){if(!si.unprocessedNamespaces)return;let e=Xr.lookup,t=Object.keys(e);for(let n of t){if(!wi(n.charCodeAt(0)))continue;let t=_i(e,n);t&&ti(t,n)}}function di(e){return ii||fi(),li[e]}function pi(e){vi([e.toString()],e,new Set)}function fi(){let e=si.unprocessedNamespaces;if(e&&(hi(),si.unprocessedNamespaces=!1),e||oi){let e=ai;for(let t of e)pi(t);oi=!1}}function gi(){return ii}function mi(e){ii=Boolean(e)}function yi(){oi=!0}function vi(e,t,n){let r=e.length,i=e.join(".");li[i]=t,ti(t,i);for(let s in t){if(!ri.call(t,s))continue;let i=t[s];if(e[r]=s,i&&void 0===ni(i))ti(i,e.join("."));else if(i&&bi(i)){if(n.has(i))continue;n.add(i),vi(e,i,n)}}e.length=r}function bi(e){return null!=e&&"object"==typeof e&&e.isNamespace}function wi(e){return e>=65&&e<=90}function _i(e,t){try{let n=e[t];return(null!==n&&"object"==typeof n||"function"==typeof n)&&n.isNamespace&&n}catch(n){}}var xi=a({ASYNC_OBSERVERS:()=>hn,ComputedDescriptor:()=>S,ComputedProperty:()=>Gn,DEBUG_INJECTION_FUNCTIONS:()=>{},Libraries:()=>Or,NAMESPACES:()=>ai,NAMESPACES_BY_ID:()=>li,PROPERTY_DID_CHANGE:()=>Un,PROXY_CONTENT:()=>lr,SYNC_OBSERVERS:()=>un,TrackedDescriptor:()=>Hr,_getPath:()=>dr,_getProp:()=>hr,_setProp:()=>mr,activateObserver:()=>fn,addArrayObserver:()=>Ir,addListener:()=>nn,addNamespace:()=>ci,addObserver:()=>dn,alias:()=>vr,arrayContentDidChange:()=>Sr,arrayContentWillChange:()=>Cr,autoComputed:()=>Xn,beginPropertyChanges:()=>qn,cached:()=>Gr,changeProperties:()=>Wn,computed:()=>Yn,createCache:()=>Ue,defineDecorator:()=>zn,defineProperty:()=>Dn,defineValue:()=>jn,deprecateProperty:()=>Ci,descriptorForDecorator:()=>P,descriptorForProperty:()=>I,eachProxyArrayDidChange:()=>Ei,eachProxyArrayWillChange:()=>ki,endPropertyChanges:()=>Vn,expandProperties:()=>Nn,findNamespace:()=>di,findNamespaces:()=>hi,flushAsyncObservers:()=>wn,get:()=>ur,getCachedValueFor:()=>Qn,getProperties:()=>Fr,getValue:()=>Be,hasListeners:()=>on,hasUnknownProperty:()=>cr,inject:()=>$r,isClassicDecorator:()=>M,isComputed:()=>Jn,isConst:()=>$e,isElementDescriptor:()=>x,isNamespaceSearchDisabled:()=>gi,libraries:()=>Nr,makeComputedDecorator:()=>T,markObjectAsDirty:()=>Nt,nativeDescDecorator:()=>C,notifyPropertyChange:()=>$n,objectAt:()=>Pt,on:()=>an,processAllNamespaces:()=>fi,processNamespace:()=>pi,removeArrayObserver:()=>Pr,removeListener:()=>rn,removeNamespace:()=>ui,removeObserver:()=>pn,replace:()=>Er,replaceInNativeArray:()=>Tr,revalidateObservers:()=>vn,sendEvent:()=>sn,set:()=>gr,setClassicDecorator:()=>A,setNamespaceSearchDisabled:()=>mi,setProperties:()=>Dr,setUnprocessedMixins:()=>yi,tagForObject:()=>Ot,tagForProperty:()=>At,tracked:()=>Vr,trySet:()=>yr});function Ci(e,t,n){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,set(e){gr(this,n,e)},get(){return ur(this,n)}})}var Si=new WeakMap;function ki(e,t,n,r){let i=Si.get(e);void 0!==i&&i.arrayWillChange(e,t,n,r)}function Ei(e,t,n,r){let i=Si.get(e);void 0!==i&&i.arrayDidChange(e,t,n,r)}var Ri={get onerror(){}},Ti=setTimeout,Li=()=>{};function Ii(e){if("function"==typeof Promise){const t=Promise.resolve();return()=>t.then(e)}if("function"==typeof MutationObserver){let t=0,n=new MutationObserver(e),r=document.createTextNode("");return n.observe(r,{characterData:!0}),()=>(t=++t%2,r.data=""+t,t)}return()=>Ti(e,0)}function Pi(e){let t=Li;return{setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),now:()=>Date.now(),next:Ii(e),clearNext:t}}var Mi=/\d+/;function Ai(e){let t=typeof e;return"number"===t&&e==e||"string"===t&&Mi.test(e)}function Oi(e){return e.onError||e.onErrorTarget&&e.onErrorTarget[e.onErrorMethod]}function Ni(e,t,n){let r=-1;for(let i=0,s=n.length;i=t[n]?i=n+6:s=n;return e>=t[i]?i+6:i}var ji=class{constructor(e,t={},n={}){this._queueBeingFlushed=[],this.targetQueues=new Map,this.index=0,this._queue=[],this.name=e,this.options=t,this.globalOptions=n}stackFor(e){if(e0){let e=Oi(this.globalOptions);s=e?this.invokeWithOnError:this.invoke;for(let o=this.index;o0&&this.flush(!0)}hasWork(){return this._queueBeingFlushed.length>0||this._queue.length>0}cancel({target:e,method:t}){let n=this._queue,r=this.targetQueues.get(e);void 0!==r&&r.delete(t);let i=Ni(e,t,n);return i>-1?(n[i+1]=null,!0):(n=this._queueBeingFlushed,i=Ni(e,t,n),i>-1&&(n[i+1]=null,!0))}push(e,t,n,r){return this._queue.push(e,t,n,r),{queue:this,target:e,method:t}}pushUnique(e,t,n,r){let i=this.targetQueues.get(e);void 0===i&&(i=new Map,this.targetQueues.set(e,i));let s=i.get(t);if(void 0===s){let s=this._queue.push(e,t,n,r)-4;i.set(t,s)}else{let e=this._queue;e[s+2]=n,e[s+3]=r}return{queue:this,target:e,method:t}}_getDebugInfo(e){if(e)return Di(this._queue,4)}invoke(e,t,n){void 0===n?t.call(e):t.apply(e,n)}invokeWithOnError(e,t,n,r,i){try{void 0===n?t.call(e):t.apply(e,n)}catch(_6){r(_6,i)}}},Ui=class{constructor(e=[],t){this.queues={},this.queueNameIndex=0,this.queueNames=e,e.reduce(function(e,n){return e[n]=new ji(n,t[n],t),e},this.queues)}schedule(e,t,n,r,i,s){let o=this.queues[e];if(void 0===o)throw new Error(`You attempted to schedule an action in a queue (${e}) that doesn't exist`);if(null==n)throw new Error(`You attempted to schedule an action in a queue (${e}) for a method that doesn't exist`);return this.queueNameIndex=0,i?o.pushUnique(t,n,r,s):o.push(t,n,r,s)}flush(e=!1){let t,n,r=this.queueNames.length;for(;this.queueNameIndexi){let t=r-i;e=new Array(t);for(let n=0;n{us++,!1!==this._autorun&&(this._autorun=!1,this._autorunStack=null,this._end(!0))};let n=this.options._buildPlatform||Pi;this._platform=n(this._boundAutorunEnd)}get counters(){return{begin:Gi,end:Ki,events:{begin:Zi,end:0},autoruns:{created:cs,completed:us},run:Yi,join:Xi,defer:Ji,schedule:Qi,scheduleIterable:es,deferOnce:ts,scheduleOnce:ns,setTimeout:rs,later:is,throttle:ss,debounce:os,cancelTimers:as,cancel:ls,loops:{total:hs,nested:ds}}}get defaultQueue(){return this._defaultQueue}begin(){Gi++;let e,t=this.options,n=this.currentInstance;return!1!==this._autorun?(e=n,this._cancelAutorun()):(null!==n&&(ds++,this.instanceStack.push(n)),hs++,e=this.currentInstance=new Ui(this.queueNames,t),Zi++,this._trigger("begin",e,n)),this._onBegin(e,n),e}end(){Ki++,this._end(!1)}on(e,t){if("function"!=typeof t)throw new TypeError("Callback must be a function");let n=this._eventCallbacks[e];if(void 0===n)throw new TypeError(`Cannot on() event ${e} because it does not exist`);n.push(t)}off(e,t){let n=this._eventCallbacks[e];if(!e||void 0===n)throw new TypeError(`Cannot off() event ${e} because it does not exist`);let r=!1;if(t)for(let i=0;i0&&Ai(n[i-1])&&(r=parseInt(n.pop(),10)),[e,t,n,r]}(...arguments);return this._later(e,t,n,r)}throttle(){ss++;let e,[t,n,r,i,s=!0]=Wi(...arguments),o=Fi(t,n,this._timers);if(-1===o)e=this._later(t,n,s?qi:r,i),s&&this._join(t,n,r);else{e=this._timers[o+1];let t=o+4;this._timers[t]!==qi&&(this._timers[t]=r)}return e}debounce(){os++;let e,[t,n,r,i,s=!1]=Wi(...arguments),o=this._timers,a=Fi(t,n,o);if(-1===a)e=this._later(t,n,s?qi:r,i),s&&this._join(t,n,r);else{let s=this._platform.now()+i,l=a+4;o[l]===qi&&(r=qi),e=o[a+1];let c=zi(s,o);if(a+6===c)o[a]=s,o[l]=r;else{let i=this._timers[a+5];this._timers.splice(c,0,s,e,t,n,r,i),this._timers.splice(a,6)}0===a&&this._reinstallTimerTimeout()}return e}cancelTimers(){as++,this._clearTimerTimeout(),this._timers=[],this._cancelAutorun()}hasTimers(){return this._timers.length>0||this._autorun}cancel(e){if(ls++,null==e)return!1;let t=typeof e;return"number"===t?this._cancelLaterTimer(e):!("object"!==t||!e.queue||!e.method)&&e.queue.cancel(e)}ensureInstance(){this._ensureInstance()}getDebugInfo(){if(this.DEBUG)return{autorun:this._autorunStack,counters:this.counters,timers:Di(this._timers,6,2),instanceStack:[this.currentInstance,...this.instanceStack].map(e=>e&&e._getDebugInfo(this.DEBUG))}}_end(e){let t=this.currentInstance,n=null;if(null===t)throw new Error("end called without begin");let r,i=!1;try{r=t.flush(e)}finally{if(!i)if(i=!0,1===r){const e=this.queueNames[t.queueNameIndex];this._scheduleAutorun(e)}else this.currentInstance=null,this.instanceStack.length>0&&(n=this.instanceStack.pop(),this.currentInstance=n),this._trigger("end",t,n),this._onEnd(t,n)}}_join(e,t,n){return null===this.currentInstance?this._run(e,t,n):void 0===e&&void 0===n?t():t.apply(e,n)}_run(e,t,n){let r=Oi(this.options);if(this.begin(),r)try{return t.apply(e,n)}catch(_6){r(_6)}finally{this.end()}else try{return t.apply(e,n)}finally{this.end()}}_cancelAutorun(){this._autorun&&(this._platform.clearNext(),this._autorun=!1,this._autorunStack=null)}_later(e,t,n,r){let i=this.DEBUG?new Error:void 0,s=this._platform.now()+r,o=Hi++;if(0===this._timers.length)this._timers.push(s,o,e,t,n,i),this._installTimerTimeout();else{let r=zi(s,this._timers);this._timers.splice(r,0,s,o,e,t,n,i),this._reinstallTimerTimeout()}return o}_cancelLaterTimer(e){for(let t=1;t0&&(this.begin(),this._scheduleExpiredTimers(),this.end())}_scheduleExpiredTimers(){let e=this._timers,t=0,n=e.length,r=this._defaultQueue,i=this._platform.now();for(;ti);t+=6){let n=e[t+4];if(n!==qi){let i=e[t+2],s=e[t+3],o=e[t+5];this.currentInstance.schedule(r,i,s,n,!1,o)}}e.splice(0,t),this._installTimerTimeout()}_reinstallTimerTimeout(){this._clearTimerTimeout(),this._installTimerTimeout()}_clearTimerTimeout(){null!==this._timerTimeoutId&&(this._platform.clearTimeout(this._timerTimeoutId),this._timerTimeoutId=null)}_installTimerTimeout(){if(0===this._timers.length)return;let e=this._timers[0],t=this._platform.now(),n=Math.max(0,e-t);this._timerTimeoutId=this._platform.setTimeout(this._boundRunExpiredTimers,n)}_ensureInstance(){let e=this.currentInstance;return null===e&&(this._autorunStack=this.DEBUG?new Error:void 0,e=this.begin(),this._scheduleAutorun(this.queueNames[0])),e}_scheduleAutorun(e){cs++;const t=this._platform.next,n=this.options.flush;n?n(e,t):t(),this._autorun=!0}};ps.Queue=ji,ps.buildPlatform=Pi,ps.buildNext=Ii;var fs=a({_backburner:()=>bs,_cancelTimers:()=>Rs,_getCurrentRunLoop:()=>ms,_hasScheduledTimers:()=>Es,_queues:()=>vs,_rsvpErrorQueue:()=>ys,begin:()=>Cs,bind:()=>xs,cancel:()=>Ms,debounce:()=>As,end:()=>Ss,join:()=>_s,later:()=>Ts,next:()=>Ps,once:()=>Ls,run:()=>ws,schedule:()=>ks,scheduleOnce:()=>Is,throttle:()=>Os}),gs=null;function ms(){return gs}var ys=`${Math.random()}${Date.now()}`.replace(".",""),vs=["actions","routerTransitions","render","afterRender","destroy",ys],bs=new ps(vs,{defaultQueue:"actions",onBegin:function(e){gs=e},onEnd:function(e,t){gs=t,wn(ks)},onErrorTarget:Ri,onErrorMethod:"onerror",flush:function(e,t){"render"!==e&&e!==ys||wn(ks),t()}});function ws(...e){return bs.run(...e)}function _s(e,t,...n){return bs.join(e,t,...n)}function xs(...e){return(...t)=>_s(...e.concat(t))}function Cs(){bs.begin()}function Ss(){bs.end()}function ks(...e){return bs.schedule(...e)}function Es(){return bs.hasTimers()}function Rs(){bs.cancelTimers()}function Ts(...e){return bs.later(...e)}function Ls(...e){return bs.scheduleOnce("actions",...e)}function Is(...e){return bs.scheduleOnce(...e)}function Ps(...e){return bs.later(...e,1)}function Ms(e){return bs.cancel(e)}function As(...e){return bs.debounce(...e)}function Os(...e){return bs.throttle(...e)}var Ns=new Set([Symbol.iterator,"concat","entries","every","filter","find","findIndex","flat","flatMap","forEach","includes","indexOf","join","keys","lastIndexOf","map","reduce","reduceRight","slice","some","values"]),Fs=new Set(["fill","push","unshift"]);function Ds(e){if("symbol"==typeof e)return null;const t=Number(e);return isNaN(t)?null:t%1==0?t:null}var zs=class e{#e;constructor(t,n){this.#e=n;const r=t.slice(),i=this,s=new Map;let o=!1;return new Proxy(r,{get(e,t){const n=Ds(t);if(null!==n)return i.#t(n),Ne(i.#n),e[n];if("length"===t)return o?o=!1:Ne(i.#n),e[t];if(Fs.has(t)&&(o=!0),Ns.has(t)){let n=s.get(t);return void 0===n&&(n=(...n)=>(Ne(i.#n),e[t](...n)),s.set(t,n)),n}return e[t]},set(e,t,n){if(i.#e.equals(e[t],n))return!0;e[t]=n;const r=Ds(t);return null!==r?(i.#r(r),i.#i()):"length"===t&&i.#i(),!0},getPrototypeOf:()=>e.prototype})}#n=ge();#s=new Map;#t(e){let t=this.#s.get(e);void 0===t&&(t=ge(),this.#s.set(e,t)),Ne(t)}#r(e){const t=this.#s.get(e);t&&de(t)}#i(){de(this.#n),this.#s.clear()}};function js(e,t){return new zs(e??[],{equals:t?.equals??Object.is,description:t?.description})}Object.setPrototypeOf(zs.prototype,Array.prototype);var Us=class e{#e;#s=new Map;#n=ge();#t(e){let t=this.#s.get(e);void 0===t&&(t=ge(),this.#s.set(e,t)),Ne(t)}#r(e){const t=this.#s.get(e);t&&de(t)}#i(){de(this.#n)}constructor(t,n){this.#e=n;const r=Object.getPrototypeOf(t),i=Object.getOwnPropertyDescriptors(t),s=Object.create(r);for(const e in i)Object.defineProperty(s,e,i[e]);const o=this;return new Proxy(s,{get:(e,t)=>(o.#t(t),e[t]),has:(e,t)=>(o.#t(t),t in e),ownKeys:e=>(Ne(o.#n),Reflect.ownKeys(e)),set:(e,t,n)=>(o.#e.equals(e[t],n)||(e[t]=n,o.#r(t),o.#i()),!0),deleteProperty:(e,t)=>(t in e&&(delete e[t],o.#r(t),o.#s.delete(t),o.#i()),!0),getPrototypeOf:()=>e.prototype})}};function Bs(e,t){return new Us(e??{},{equals:t?.equals??Object.is,description:t?.description})}function $s(e,t){const n=t?.equals??Object.is,r=new Set(e??[]),i=ge(),s=new Map;function o(e){const t=s.get(e);t&&de(t)}const a=new Proxy(r,{get(e,t,r){if("add"===t)return function(t){if(e.has(t)){if(n(t,t))return a}else de(i);return o(t),e.add(t),a};if("delete"===t)return function(t){return!!e.has(t)&&(o(t),de(i),s.delete(t),e.delete(t))};if("clear"===t)return function(){0!==e.size&&(s.forEach(e=>de(e)),de(i),s.clear(),e.clear())};if("has"===t)return function(t){return Ne(function(e){let t=s.get(e);return void 0===t&&(t=ge(),s.set(e,t)),t}(t)),e.has(t)};if("size"===t)return Ne(i),e.size;const l=Reflect.get(e,t,r);return"function"==typeof l?function(...t){return Ne(i),l.apply(e,t)}:l}});return a}function qs(e,t){const n=t?.equals??Object.is,r=new WeakSet(e??[]),i=new WeakMap;function s(e){const t=i.get(e);t&&de(t)}const o=new Proxy(r,{get(e,t,r){if("add"===t)return function(t){return e.has(t)&&n(t,t)||(e.add(t),s(t)),o};if("delete"===t)return function(t){return!!e.has(t)&&(s(t),i.delete(t),e.delete(t))};if("has"===t)return function(t){return Ne(function(e){let t=i.get(e);return void 0===t&&(t=ge(),i.set(e,t)),t}(t)),e.has(t)};const a=Reflect.get(e,t,r);return"function"==typeof a?a.bind(e):a}});return o}function Vs(e,t){const n=t?.equals??Object.is,r=e instanceof Map?new Map(e.entries()):new Map(e??[]),i=ge(),s=new Map;function o(e){let t=s.get(e);return void 0===t&&(t=ge(),s.set(e,t)),t}function a(e){const t=s.get(e);t&&de(t)}const l=new Proxy(r,{get(e,t,r){if("set"===t)return function(t,r){return e.has(t)&&n(e.get(t),r)||(a(t),de(i),e.set(t,r)),l};if("delete"===t)return function(t){return!!e.has(t)&&(a(t),de(i),s.delete(t),e.delete(t))};if("clear"===t)return function(){0!==e.size&&(s.forEach(e=>de(e)),s.clear(),de(i),e.clear())};if("get"===t)return function(t){return Ne(o(t)),e.get(t)};if("has"===t)return function(t){return Ne(o(t)),e.has(t)};if("size"===t)return Ne(i),e.size;const c=Reflect.get(e,t,r);return"function"==typeof c?function(...t){return Ne(i),c.apply(e,t)}:c}});return l}function Ws(e,t){const n=t?.equals??Object.is,r=e??[],i=r instanceof WeakMap?r:new WeakMap(r),s=new WeakMap;function o(e){let t=s.get(e);return void 0===t&&(t=ge(),s.set(e,t)),t}function a(e){const t=s.get(e);t&&de(t)}const l=new Proxy(i,{get(e,t,r){if("set"===t)return function(t,r){return e.has(t)&&n(e.get(t),r)||(a(t),e.set(t,r)),l};if("delete"===t)return function(t){return!!e.has(t)&&(a(t),s.delete(t),e.delete(t))};if("get"===t)return function(t){return Ne(o(t)),e.get(t)};if("has"===t)return function(t){return Ne(o(t)),e.has(t)};const i=Reflect.get(e,t,r);return"function"==typeof i?i.bind(e):i}});return l}var Hs=a({ALLOW_CYCLES:()=>{},COMPUTE:()=>ae,CONSTANT:()=>0,CONSTANT_TAG:()=>me,CURRENT_TAG:()=>_e,CurrentTag:()=>we,INITIAL:()=>1,VOLATILE:()=>NaN,VOLATILE_TAG:()=>be,VolatileTag:()=>ve,beginTrackFrame:()=>Le,beginUntrackFrame:()=>Pe,bump:()=>oe,combine:()=>xe,consumeTag:()=>Ne,createCache:()=>Ue,createTag:()=>fe,createUpdatableTag:()=>ge,debug:()=>Gs,dirtyTag:()=>de,dirtyTagFor:()=>He,endTrackFrame:()=>Ie,endUntrackFrame:()=>Me,getValue:()=>Be,isConst:()=>$e,isConstTag:()=>ye,isTracking:()=>Oe,resetTracking:()=>Ae,tagFor:()=>Ke,tagMetaFor:()=>Ge,track:()=>qe,trackedArray:()=>js,trackedData:()=>qr,trackedMap:()=>Vs,trackedObject:()=>Bs,trackedSet:()=>$s,trackedWeakMap:()=>Ws,trackedWeakSet:()=>qs,untrack:()=>Ve,updateTag:()=>pe,validateTag:()=>ce,valueForTag:()=>le}),Gs={},Ks=Symbol("GLIMMER_VALIDATOR_REGISTRATION");if(Reflect.has(globalThis,Ks))throw new Error("The `@glimmer/validator` library has been included twice in this application. It could be different versions of the package, or the same version included twice by mistake. `@glimmer/validator` depends on having a single copy of the package in use at any time in an application, even if they are the same version. You must dedupe your build to remove the duplicate packages in order to prevent this error.");Reflect.set(globalThis,Ks,!0);var Zs="@warp-drive/core",Ys=globalThis;Ys.__warpDrive_universalCache=Ys.__warpDrive_universalCache??{},Ys[Zs]=Ys[Zs]??{__version:"5.8.2"};var Xs=Ys[Zs],Js=Xs.__warpDrive_ModuleScopedCaches??{};if(Xs.__warpDrive_hasOtherCopy)throw new Error("Multiple copies of WarpDrive detected, the application will malfunction.");function Qs(e,t){return t}function eo(e){return Js[`(transient) ${e}`]??null}function to(e,t){return t}Xs.__warpDrive_hasOtherCopy=!0,to(0,Symbol.for("wd:skip-cache")),to(0,Symbol.for("wd:enable-hydration")),Qs(0,Symbol("IS_FUTURE")),Qs(0,Symbol("DOC")),Qs(0,Symbol("FROZEN")),Qs(0,Symbol.for("Collection"));var no=to(0,new WeakMap);function ro(e,t){no.set(e,t)}to(0,new Map),Qs(0,Symbol("IS_CACHE_HANDLER"));var io=Qs(0,Symbol("#[]"));function so(e,t){return eo("signalHooks").createSignal(e,t)}Qs(0,Symbol("#{}"));var oo={isInitializer:!0};function ao(e){return"object"==typeof e&&null!==e&&Object.getPrototypeOf(e)===oo}var lo=Qs(0,Symbol("Signals"));function co(e){return e[lo]||function(e){e[lo]=new Map}(e),e[lo]}function uo(e,t,n,r){const i={key:n,context:t,signal:so(t,n),value:ao(r)?r.value.call(t):r,isStale:!1};return e.set(n,i),i}function ho(e,t){return e?.get(t)}function po(e,t){return{enumerable:!0,configurable:!1,get(){const n=function(e,t,n,r){let i=ho(e,n);return i||(i=uo(e,t,n,r)),function(e){eo("signalHooks").consumeSignal(e)}(i.signal),i}(co(this),this,e,t);return n.isStale=!1,n.value},set(n){const r=function(e,t,n,r){let i=ho(e,n);return i||(i=uo(e,t,n,r)),i}(co(this),this,e,t);var i;r.value!==n&&(r.value=n,(i=r)&&(i.isStale=!0,function(e){eo("signalHooks").notifySignal(e)}(i.signal)))}}}function fo(e,t,n){Object.defineProperty(e,t,po(t,n))}function go(e,t,n){const r=po(t,n);r.enumerable=!1,Object.defineProperty(e,t,r)}function mo(e,t,n){const r=n.get;return n.get=function(){const e=co(this);let n=e.get(t);return n||(n=function(e,t,n,r){{const i=function(e,t,n){return eo("signalHooks").createMemo(e,t,n)}(t,n,r);return e.set(n,i),i}}(e,this,t,r.bind(this))),n()},n}var yo=new WeakMap;function vo(e){return e instanceof DOMException&&"AbortError"===e.name}var bo=class{_stream=null;_future;_triggered=!1;_trigger(){if(this._triggered)return;this._triggered=!0;const e=this._future.getStream();e.sizeHint&&(this._sizeHint=e.sizeHint),this.promise=e.then(e=>e?async function(e,t){const n=t,r=e.getReader();let i=0,s=null!==n._stream&&n._stream.readable.locked,o=s,a=n._stream?.writable.getWriter();const l=[];for(n._isPending=!1,n._isStarted=!0,n._startTime=performance.now();;){const{value:e,done:t}=await r.read();if(t)break;if(i+=e.byteLength,n._bytesLoaded=i,n._lastPacketTime=performance.now(),s=s||null!==n._stream&&n._stream.readable.locked,s){if(!o){o=!0,a=n._stream.writable.getWriter();for(const e of l)await a.ready,await a.write(e);l.length=0}await a.ready,await a.write(e)}else l.push(e)}o?(await a.ready,await a.close()):n._stream&&(await n._stream.readable.cancel("The Stream Has Already Ended"),n._stream=null),n._endTime=performance.now(),n._isComplete=!0,n._isStarted=!1}(e,this):(this._isPending=!1,void(this._isComplete=!0)),e=>{this._isPending=!1,this._isStarted=!1,vo(e)&&(this._isCancelled=!0,this._isComplete=!0),this._isErrored=!0,this._error=e})}promise=null;get isPending(){return this._trigger(),this._isPending}get sizeHint(){return this._trigger(),this._sizeHint}get stream(){if(this._trigger(),!this._stream){if(this._isComplete||this._isCancelled||this._isErrored)return null;this._stream=new TransformStream}return this._stream.readable}get isStarted(){return this._trigger(),this._isStarted}get bytesLoaded(){return this._trigger(),this._bytesLoaded}get startTime(){return this._trigger(),this._startTime}get endTime(){return this._trigger(),this._endTime}get lastPacketTime(){return this._trigger(),this._lastPacketTime}get isComplete(){return this._trigger(),this._isComplete}get isCancelled(){return this._trigger(),this._isCancelled}get isErrored(){return this._trigger(),this._isErrored}get error(){return this._trigger(),this._error}get elapsedTime(){return(this.endTime||this.lastPacketTime)-this.startTime}get completedRatio(){return this.sizeHint?this.bytesLoaded/this.sizeHint:0}get remainingRatio(){return 1-this.completedRatio}get duration(){return this.endTime-this.startTime}get speed(){return this.bytesLoaded/(this.elapsedTime/1e3)}constructor(e){this._future=e}abort=()=>{this._future.abort()}};go(bo.prototype,"_isPending",!0),go(bo.prototype,"_isStarted",!1),go(bo.prototype,"_isComplete",!1),go(bo.prototype,"_isCancelled",!1),go(bo.prototype,"_isErrored",!1),go(bo.prototype,"_error",null),go(bo.prototype,"_sizeHint",0),go(bo.prototype,"_bytesLoaded",0),go(bo.prototype,"_startTime",0),go(bo.prototype,"_endTime",0),go(bo.prototype,"_lastPacketTime",0);var wo={};function _o(e,t,n){const r=Object.assign({},t),i=Object.assign({},r.cacheOptions);return n?i.reload=!0:!1===n?(delete i.reload,i.backgroundReload=!0):(delete i.backgroundReload,delete i.reload),r.cacheOptions=i,e.request(r)}function xo(e,t,n){let r={...Object.getOwnPropertyDescriptor(e,t)};for(let i of n)r=i(e,t,r)||r;void 0!==r.initializer&&(r.value=r.initializer?r.initializer.call(e):void 0,r.initializer=void 0),Object.defineProperty(e,t,r)}fo(wo,"reason",null),fo(wo,"value",null),fo(wo,"result",null),fo(wo,"error",null),fo(wo,"status","pending"),fo(wo,"isPending",!0),fo(wo,"isLoading",!0),fo(wo,"isSuccess",!1),fo(wo,"isError",!1),fo(wo,"request",null),fo(wo,"response",null),Object.defineProperty(wo,"isCancelled",{get(){return this.isError&&vo(this.reason)}}),Object.defineProperty(wo,"loadingState",{get(){return this._loadingState||(this._loadingState=new bo(this._request)),this._loadingState}});var Co=Symbol.dispose||Symbol.for("dispose"),So=class{_requester;constructor(e,t){this._args=t,this.store=e,this._subscribedTo=null,this._subscription=null,this._intervalStart=null,this._invalidated=!1,this._nextInterval=null,this._requester=null,this.isDestroyed=!1,this[Co]=Eo,this._installListeners(),this._beginPolling()}async _beginPolling(){try{this.isIdle||await this.request}catch{}finally{this.isDestroyed||this._scheduleInterval()}}get isIdle(){const{request:e,query:t}=this._args;return Boolean(!e&&!t)}static{xo(this.prototype,"isIdle",[mo])}get autorefreshTypes(){const{autorefresh:e}=this._args;let t;return t=!0===e?["online","invalid"]:"string"==typeof e?e.split(","):[],new Set(t)}static{xo(this.prototype,"autorefreshTypes",[mo])}async _scheduleInterval(){const{autorefreshThreshold:e}=this._args;if("undefined"!=typeof window&&"number"==typeof e&&e>0&&this.autorefreshTypes.has("interval")&&null===this._intervalStart){if(this._latestRequest){try{await this._latestRequest}catch{}if(this.isDestroyed)return}this._intervalStart=Date.now(),this._nextInterval=setTimeout(()=>{this._maybeUpdate()},e)}}_clearInterval(){this._nextInterval&&(clearTimeout(this._nextInterval),this._intervalStart=null)}_updateSubscriptions(){if(this.isIdle)return;const e=this._request.lid;if(this._subscribedTo===e)return;this._removeSubscriptions();const t=this._getRequester();this._requester=t,e&&ko(t)&&(this._subscribedTo=e,this._subscription=t.notifications.subscribe(e,(n,r)=>{if(!this._isUpdating)switch(r){case"invalidated":this.autorefreshTypes.has("invalid")&&(this._invalidated=!0,this._maybeUpdate());break;case"state":{const n=t.requestManager._deduped.get(e)?.priority,r=this.reqState;n?n.blocking&&!r.isLoading?(this.isRefreshing=!1,this._maybeUpdate("policy",!0)):this.isRefreshing=!0:this.isRefreshing=!1}}}))}_removeSubscriptions(){const e=this._requester;this._subscription&&e&&ko(e)&&(e.notifications.unsubscribe(this._subscription),this._subscribedTo=null,this._subscription=null,this._requester=null)}_installListeners(){"undefined"!=typeof window&&(this.isOnline=window.navigator.onLine,this._unavailableStart=this.isOnline?null:Date.now(),this.isHidden="hidden"===document.visibilityState,this._onlineChanged=e=>{this.isOnline="online"===e.type,"offline"===e.type&&null===this._unavailableStart&&(this._unavailableStart=Date.now()),this._maybeUpdate()},this._backgroundChanged=()=>{const e="hidden"===document.visibilityState;this.isHidden=e,e&&null===this._unavailableStart&&(this._unavailableStart=Date.now()),this._maybeUpdate()},window.addEventListener("online",this._onlineChanged,{passive:!0,capture:!0}),window.addEventListener("offline",this._onlineChanged,{passive:!0,capture:!0}),document.addEventListener("visibilitychange",this._backgroundChanged,{passive:!0,capture:!0}))}_maybeUpdate(e,t){if(this.isIdle)return;const{reqState:n}=this;if(n.isPending)return;if(!Boolean(this.isOnline&&!this.isHidden&&(e||this.autorefreshTypes.size))){if(!t&&e&&"_invalidated"!==e)throw new Error("Reload not available: the network is not online or the tab is hidden");return}const{autorefreshTypes:r}=this;let i=this._invalidated||Boolean(e);if(!i&&r.has("online")){const{_unavailableStart:e}=this,{autorefreshThreshold:t}=this._args,n="number"==typeof t?t:3e4;i=Boolean(e&&Date.now()-e>n)}if(!i&&r.has("interval")){const{_intervalStart:e}=this,{autorefreshThreshold:t}=this._args;e&&"number"==typeof t&&t>0&&(i=Boolean(Date.now()-e>=t))}if(this._unavailableStart=null,this._invalidated=!1,i){this._clearInterval(),this._isUpdating=!0;const t=("_invalidated"===e?null:e)??this._args.autorefreshBehavior??"policy",r=this._getRequester();switch(n._request.requester||(n._request.requester=r),t){case"reload":this._latestRequest=n.reload();break;case"refresh":this._latestRequest=n.refresh();break;case"policy":this._latestRequest=n.refresh(!0)}"refresh"!==t&&(this._localRequest=this._latestRequest),this._scheduleInterval(),this._latestRequest.finally(()=>{this._isUpdating=!1})}}_getRequester(){return this._args.request?.requester?this._args.request.requester:this.store}retry=async()=>{this._maybeUpdate("reload"),await this._localRequest};refresh=async()=>{this._maybeUpdate("refresh"),await this._latestRequest};get errorFeatures(){return{isHidden:this.isHidden,isOnline:this.isOnline,retry:this.retry}}static{xo(this.prototype,"errorFeatures",[mo])}get contentFeatures(){const e={isHidden:this.isHidden,isOnline:this.isOnline,reload:this.retry,refresh:this.refresh,isRefreshing:this.isRefreshing,latestRequest:this._latestRequest};return e.isRefreshing&&(e.abort=()=>{this._latestRequest?.abort()}),e}static{xo(this.prototype,"contentFeatures",[mo])}get _request(){const{request:e,query:t}=this._args,{_localRequest:n,_originalRequest:r,_originalQuery:i}=this;return n&&e===r&&t===i?n:(this._originalQuery=t,this._originalRequest=e,e||this.store.request(t))}static{xo(this.prototype,"_request",[mo])}get request(){{const e=this._request;return this._updateSubscriptions(),e}}static{xo(this.prototype,"request",[mo])}get reqState(){return function(e){let t=yo.get(e);return t||(t=function(e){const t=(n=e,no.get(n));var n;const r=Object.create(wo);return r._request=e,r.reload=()=>_o(e.requester,r.request,!0),r.refresh=(t=!1)=>_o(e.requester,r.request,!0===t&&null),t?t.isError?(r.error=t.result,r.reason=t.result,r.status="rejected",r.isError=!0,r.isPending=!1,r.isLoading=!1,r.request=t.result.request,r.response=t.result.response):(r.result=t.result.content,r.value=t.result.content,r.status="fulfilled",r.isSuccess=!0,r.isPending=!1,r.isLoading=!1,r.request=t.result.request,r.response=t.result.response):e.then(t=>{ro(e,{isError:!1,result:t}),r.result=t.content,r.value=t.content,r.status="fulfilled",r.isSuccess=!0,r.isPending=!1,r.isLoading=!1,r.request=t.request,r.response=t.response},t=>{ro(e,{isError:!0,result:t}),r.error=t,r.reason=t,r.status="rejected",r.isError=!0,r.isPending=!1,r.isLoading=!1,r.request=t.request,r.response=t.response}),r}(e),yo.set(e,t)),t}(this.request)}get result(){return this.reqState.result}};function ko(e){return"requestManager"in e}function Eo(){const e=this;e.isDestroyed=!0,e._removeSubscriptions(),"undefined"!=typeof window&&(e._clearInterval(),window.removeEventListener("online",e._onlineChanged,{passive:!0,capture:!0}),window.removeEventListener("offline",e._onlineChanged,{passive:!0,capture:!0}),document.removeEventListener("visibilitychange",e._backgroundChanged,{passive:!0,capture:!0}))}fo(So.prototype,"isOnline",!0),fo(So.prototype,"isHidden",!1),fo(So.prototype,"isRefreshing",!1),fo(So.prototype,"_localRequest",void 0),fo(So.prototype,"_latestRequest",void 0);var Ro={};fo(Ro,"reason",null),fo(Ro,"value",null),fo(Ro,"result",null),fo(Ro,"error",null),fo(Ro,"status","pending"),fo(Ro,"isPending",!0),fo(Ro,"isLoading",!0),fo(Ro,"isSuccess",!1),fo(Ro,"isError",!1);var To=de;!function(){const e=function(e){const t=e.wellknown.Array;return{createSignal:(e,n)=>n===t?[At(e,n),At(e,"length"),At(e,"[]")]:At(e,n),consumeSignal(e){if(Array.isArray(e))return Ne(e[0]),Ne(e[1]),void Ne(e[2]);Ne(e)},notifySignal(e){if(Array.isArray(e))return To(e[0]),To(e[1]),void To(e[2]);To(e)},createMemo:(e,t,n)=>{{const r=At(e,t),i=Ue(n);let s;const o=()=>{s=Be(i)};return()=>{const e=qe(o);return pe(r,e),Ne(e),s}}},willSyncFlushWatchers:()=>!!bs.currentInstance&&!0!==bs._autorun,waitFor:async e=>e}}({wellknown:{Array:io}});var t;t=e,Js["(transient) signalHooks"]=t}();var Lo=a({getOwner:()=>Io,setOwner:()=>Br}),Io=Ur;function Po(e){let t=Object.create(e);return t._dict=null,delete t._dict,t}var Mo="object"==typeof self&&null!==self&&self.Object===Object&&"undefined"!=typeof Window&&self.constructor===Window&&"object"==typeof document&&null!==document&&self.document===document&&"object"==typeof location&&null!==location&&self.location===location&&"object"==typeof history&&null!==history&&self.history===history&&"object"==typeof navigator&&null!==navigator&&self.navigator===navigator&&"string"==typeof navigator.userAgent;function Ao(e){let t=e._promiseCallbacks;return t||(t=e._promiseCallbacks={}),t}var Oo={mixin(e){return e.on=this.on,e.off=this.off,e.trigger=this.trigger,e._promiseCallbacks=void 0,e},on(e,t){if("function"!=typeof t)throw new TypeError("Callback must be a function");let n=Ao(this),r=n[e];r||(r=n[e]=[]),-1===r.indexOf(t)&&r.push(t)},off(e,t){let n=Ao(this);if(!t)return void(n[e]=[]);let r=n[e],i=r.indexOf(t);-1!==i&&r.splice(i,1)},trigger(e,t,n){let r=Ao(this)[e];if(r){let e;for(let i=0;i{for(let e=0;e{t===n?Go(e,n):Wo(e,n)},t=>Ko(e,t))}(e,t):"function"==typeof n?function(e,t,n){No.async(e=>{let r=!1,i=function(n,i){try{n.call(i,n=>{r||(r=!0,t===n?Go(e,n):Wo(e,n))},t=>{r||(r=!0,Ko(e,t))})}catch(s){return s}}(n,t,e._label);!r&&i&&(r=!0,Ko(e,i))},e)}(e,t,n):Go(e,t)}function Wo(e,t){if(e===t)Go(e,t);else if(function(e){let t=typeof e;return null!==e&&("object"===t||"function"===t)}(t)){let n;try{n=t.then}catch(_6){return void Ko(e,_6)}Vo(e,t,n)}else Go(e,t)}function Ho(e){e._onError&&e._onError(e._result),Yo(e)}function Go(e,t){e._state===Bo&&(e._result=t,e._state=$o,0===e._subscribers.length?No.instrument&&zo("fulfilled",e):No.async(Yo,e))}function Ko(e,t){e._state===Bo&&(e._state=qo,e._result=t,No.async(Ho,e))}function Zo(e,t,n,r){let i=e._subscribers,s=i.length;e._onError=null,i[s]=t,i[s+$o]=n,i[s+qo]=r,0===s&&e._state&&No.async(Yo,e)}function Yo(e){let t=e._subscribers,n=e._state;if(No.instrument&&zo(n===$o?"fulfilled":"rejected",e),0===t.length)return;let r,i,s=e._result;for(let o=0;oXo(i,s,n,o))}return s}var Qo=class{constructor(e,t,n,r){this._instanceConstructor=e,this.promise=new e(Uo,r),this._abortOnReject=n,this._isUsingOwnPromise=e===ra,this._isUsingOwnResolve=e.resolve===jo,this._init(...arguments)}_init(e,t){let n=t.length||0;this.length=n,this._remaining=n,this._result=new Array(n),this._enumerate(t)}_enumerate(e){let t=this.length,n=this.promise;for(let r=0;n._state===Bo&&rt(e)),t,n)}else this._willSettleAt(r.resolve(e),t,n)}_eachEntry(e,t,n){null!==e&&"object"==typeof e?this._settleMaybeThenable(e,t,n):this._setResultAt($o,t,e,n)}_settledAt(e,t,n,r){let i=this.promise;i._state===Bo&&(this._abortOnReject&&e===qo?Ko(i,n):(this._setResultAt(e,t,n,r),this._checkFullfillment()))}_setResultAt(e,t,n,r){this._remaining--,this._result[t]=n}_willSettleAt(e,t,n){Zo(e,void 0,e=>this._settledAt($o,t,e,n),e=>this._settledAt(qo,t,e,n))}};function ea(e,t,n){this._remaining--,this._result[t]=e===$o?{state:"fulfilled",value:n}:{state:"rejected",reason:n}}var ta="rsvp_"+Date.now()+"-",na=0,ra=class e{constructor(t,n){this._id=na++,this._label=n,this._state=void 0,this._result=void 0,this._subscribers=[],No.instrument&&zo("created",this),Uo!==t&&("function"!=typeof t&&function(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}(),this instanceof e?function(e,t){let n=!1;try{t(t=>{n||(n=!0,Wo(e,t))},t=>{n||(n=!0,Ko(e,t))})}catch(r){Ko(e,r)}}(this,t):function(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}())}_onError(e){No.after(()=>{this._onError&&No.trigger("error",e,this._label)})}catch(e,t){return this.then(void 0,e,t)}finally(e,t){let n=this,r=n.constructor;return"function"==typeof e?n.then(t=>r.resolve(e()).then(()=>t),t=>r.resolve(e()).then(()=>{throw t})):n.then(e,e)}};function ia(e,t){return{then:(n,r)=>e.call(t,n,r)}}function sa(e,t){let n=function(){let n=arguments.length,r=new Array(n+1),i=!1;for(let e=0;eoa(e,t,n,r))}(s,r,e,this):oa(s,r,e,this)};return n.__proto__=e,n}function oa(e,t,n,r){try{n.apply(r,t)}catch(_6){Ko(e,_6)}return e}function aa(e,t){return ra.all(e,t)}ra.cast=jo,ra.all=function(e,t){return Array.isArray(e)?new Qo(this,e,!0,t).promise:this.reject(new TypeError("Promise.all must be called with an array"),t)},ra.race=function(e,t){let n=this,r=new n(Uo,t);if(!Array.isArray(e))return Ko(r,new TypeError("Promise.race must be called with an array")),r;for(let i=0;r._state===Bo&&iWo(r,e),e=>Ko(r,e));return r},ra.resolve=jo,ra.reject=function(e,t){let n=new this(Uo,t);return Ko(n,e),n},ra.prototype._guidKey=ta,ra.prototype.then=Jo;var la=class extends Qo{constructor(e,t,n){super(e,t,!1,n)}};function ca(e,t){return Array.isArray(e)?new la(ra,e,t).promise:ra.reject(new TypeError("Promise.allSettled must be called with an array"),t)}function ua(e,t){return ra.race(e,t)}la.prototype._setResultAt=ea;var ha=class extends Qo{constructor(e,t,n=!0,r){super(e,t,n,r)}_init(e,t){this._result={},this._enumerate(t)}_enumerate(e){let t,n,r=Object.keys(e),i=r.length,s=this.promise;this._remaining=i;for(let o=0;s._state===Bo&&o{throw e}),e}function ma(e){let t={resolve:void 0,reject:void 0};return t.promise=new ra((e,n)=>{t.resolve=e,t.reject=n},e),t}pa.prototype._setResultAt=ea;var ya=class extends Qo{constructor(e,t,n,r){super(e,t,!0,r,n)}_init(e,t,n,r,i){let s=t.length||0;this.length=s,this._remaining=s,this._result=new Array(s),this._mapFn=i,this._enumerate(t)}_setResultAt(e,t,n,r){if(r)try{this._eachEntry(this._mapFn(n,t),t,!1)}catch(_6){this._settledAt(qo,t,_6,!1)}else this._remaining--,this._result[t]=n}};function va(e,t,n){return"function"!=typeof t?ra.reject(new TypeError("map expects a function as a second argument"),n):ra.resolve(e,n).then(function(e){if(!Array.isArray(e))throw new TypeError("map must be called with an array");return new ya(ra,e,t,n).promise})}function ba(e,t){return ra.resolve(e,t)}function wa(e,t){return ra.reject(e,t)}var _a={},xa=class extends ya{_checkFullfillment(){if(0===this._remaining&&null!==this._result){let e=this._result.filter(e=>e!==_a);Go(this.promise,e),this._result=null}}_setResultAt(e,t,n,r){if(r){this._result[t]=n;let e,r=!0;try{e=this._mapFn(n,t)}catch(_6){r=!1,this._settledAt(qo,t,_6,!1)}r&&this._eachEntry(e,t,!1)}else this._remaining--,n||(this._result[t]=_a)}};function Ca(e,t,n){return"function"!=typeof t?ra.reject(new TypeError("filter expects function as a second argument"),n):ra.resolve(e,n).then(function(e){if(!Array.isArray(e))throw new TypeError("filter must be called with an array");return new xa(ra,e,t,n).promise})}var Sa,ka=0;function Ea(e,t){Oa[ka]=e,Oa[ka+1]=t,2===(ka+=2)&&Aa()}var Ra="undefined"!=typeof window?window:void 0,Ta=Ra||{},La=Ta.MutationObserver||Ta.WebKitMutationObserver,Ia="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),Pa="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel;function Ma(){return()=>setTimeout(Na,1)}var Aa,Oa=new Array(1e3);function Na(){for(let e=0;ee(Na)}():La?function(){let e=0,t=new La(Na),n=document.createTextNode("");return t.observe(n,{characterData:!0}),()=>n.data=e=++e%2}():Pa?function(){let e=new MessageChannel;return e.port1.onmessage=Na,()=>e.port2.postMessage(0)}():void 0===Ra&&"function"==typeof window.require?function(){try{const e=Function("return this")().require("vertx");return void 0!==(Sa=e.runOnLoop||e.runOnContext)?function(){Sa(Na)}:Ma()}catch(e){return Ma()}}():Ma(),No.async=Ea,No.after=e=>setTimeout(e,0);var Fa=ba,Da=(e,t)=>No.async(e,t);function za(){No.on(...arguments)}function ja(){No.off(...arguments)}if("undefined"!=typeof window&&"object"==typeof window.__PROMISE_INSTRUMENTATION__){let e=window.__PROMISE_INSTRUMENTATION__;Fo("instrument",!0);for(let t in e)e.hasOwnProperty(t)&&za(t,e[t])}var Ua={asap:Ea,cast:Fa,Promise:ra,EventTarget:Oo,all:aa,allSettled:ca,race:ua,hash:da,hashSettled:fa,rethrow:ga,defer:ma,denodeify:sa,configure:Fo,on:za,off:ja,resolve:ba,reject:wa,map:va,async:Da,filter:Ca},Ba=Object.freeze(Object.defineProperty({__proto__:null,EventTarget:Oo,Promise:ra,all:aa,allSettled:ca,asap:Ea,async:Da,cast:Fa,configure:Fo,default:Ua,defer:ma,denodeify:sa,filter:Ca,hash:da,hashSettled:fa,map:va,off:ja,on:za,race:ua,reject:wa,resolve:ba,rethrow:ga},Symbol.toStringTag,{value:"Module"}));function $a(e){let t=function(e){if(!e)return;let t=e;return t.errorThrown?function(e){let t=e.errorThrown;return"string"==typeof t&&(t=new Error(t)),Object.defineProperty(t,"__reason_with_error_thrown__",{value:e,enumerable:!1}),t}(t):"UnrecognizedURLError"!==e.name&&"TransitionAborted"!==e.name?e:void 0}(e);if(t){let e=null;if(!e)throw t;e(t)}}Fo("async",(e,t)=>{bs.schedule("actions",null,e,t)}),Fo("after",e=>{bs.schedule(ys,null,e)}),za("error",$a);var qa=class{static _leakTracking;owner;registry;cache;factoryManagerCache;validationCache;isDestroyed;isDestroying;constructor(e,t={}){this.registry=e,this.owner=t.owner||null,this.cache=Po(t.cache||null),this.factoryManagerCache=Po(t.factoryManagerCache||null),this.isDestroyed=!1,this.isDestroying=!1}lookup(e,t){if(this.isDestroyed)throw new Error(`Cannot call \`.lookup('${e}')\` after the owner has been destroyed`);return function(e,t,n={}){let r=t;if(!0===n.singleton||void 0===n.singleton&&Va(e,t)){let t=e.cache[r];if(void 0!==t)return t}return function(e,t,n,r){let i=Ha(e,t,n);if(void 0!==i){if(function(e,t,{instantiate:n,singleton:r}){return!1!==r&&!1!==n&&(!0===r||Va(e,t))&&Wa(e,t)}(e,n,r)){let n=e.cache[t]=i.create();return e.isDestroying&&"function"==typeof n.destroy&&n.destroy(),n}if(function(e,t,{instantiate:n,singleton:r}){return!1!==n&&(!1===r||!Va(e,t))&&Wa(e,t)}(e,n,r))return i.create();if(function(e,t,{instantiate:n,singleton:r}){return!1!==r&&!n&&Va(e,t)&&!Wa(e,t)}(e,n,r)||function(e,t,{instantiate:n,singleton:r}){return!(!1!==n||!1!==r&&Va(e,t)||Wa(e,t))}(e,n,r))return i.class;throw new Error("Could not create factory")}}(e,r,t,n)}(this,this.registry.normalize(e),t)}destroy(){this.isDestroying=!0,Ga(this)}finalizeDestroy(){Ka(this),this.isDestroyed=!0}reset(e){this.isDestroyed||(void 0===e?(Ga(this),Ka(this)):function(e,t){let n=e.cache[t];delete e.factoryManagerCache[t],n&&(delete e.cache[t],n.destroy&&n.destroy())}(this,this.registry.normalize(e)))}ownerInjection(){let e={};return Br(e,this.owner),e}factoryFor(e){if(this.isDestroyed)throw new Error(`Cannot call \`.factoryFor('${e}')\` after the owner has been destroyed`);return Ha(this,this.registry.normalize(e),e)}};function Va(e,t){return!1!==e.registry.getOption(t,"singleton")}function Wa(e,t){return!1!==e.registry.getOption(t,"instantiate")}function Ha(e,t,n){let r=e.factoryManagerCache[t];if(void 0!==r)return r;let i=e.registry.resolve(t);if(void 0===i)return;let s=new Ja(e,i,n,t);return e.factoryManagerCache[t]=s,s}function Ga(e){let t=e.cache,n=Object.keys(t);for(let r of n){let e=t[r];e.destroy&&e.destroy()}}function Ka(e){e.cache=Po(null),e.factoryManagerCache=Po(null)}var Za=Symbol("INIT_FACTORY");function Ya(e){return e[Za]}function Xa(e,t){e[Za]=t}var Ja=class{container;owner;class;fullName;normalizedName;madeToString;injections;constructor(e,t,n,r){this.container=e,this.owner=e.owner,this.class=t,this.fullName=n,this.normalizedName=r,this.madeToString=void 0,this.injections=void 0}toString(){return void 0===this.madeToString&&(this.madeToString=this.container.registry.makeToString(this.class,this.fullName)),this.madeToString}create(e){let{container:t}=this;if(t.isDestroyed)throw new Error(`Cannot create new instances after the owner has been destroyed (you attempted to create ${this.fullName})`);let n=e?{...e}:{};return Br(n,t.owner),Xa(n,this),this.class.create(n)}};function Qa(e){let t=Object.create(null);t[e]=1;for(let n in t)if(n===e)return n;return e}var el=0;function tl(){return++el}var nl="ember",rl=new WeakMap,il=new Map,sl=Qa(`__ember${Date.now()}`);function ol(e,t=nl){let n=t+tl().toString();return Ze(e)&&rl.set(e,n),n}function al(e){let t;if(Ze(e))t=rl.get(e),void 0===t&&(t=`${nl}${tl()}`,rl.set(e,t));else if(t=il.get(e),void 0===t){let n=typeof e;t="string"===n?`st${tl()}`:"number"===n?`nu${tl()}`:"symbol"===n?`sy${tl()}`:`(${e})`,il.set(e,t)}return t}var ll=Array.prototype.concat;function cl(e,t,n,r){let i=n[e]||r[e];return t[e]&&(i=i?ll.call(i,t[e]):t[e]),i}function ul(e,t,n,r){if(!0===n)return t;let i=n._getter;if(void 0===i)return t;let s=r[e],o="function"==typeof s?P(s):s;if(void 0===o||!0===o)return t;let a=o._getter;if(void 0===a)return t;let l,c=en(i,a),u=n._setter,h=o._setter;if(l=void 0!==h?void 0!==u?en(u,h):h:u,c!==i||l!==u){let e=n._dependentKeys||[],t=new Gn([...e,{get:c,set:l}]);return t._readOnly=n._readOnly,t._meta=n._meta,t.enumerable=n.enumerable,T(t,Gn)}return t}function hl(e,t,n,r){if(void 0!==r[e])return t;let i=n[e];return"function"==typeof i?en(t,i):t}function dl(e){return e?Array.isArray(e)?e:[e]:[]}function pl(e,t,n){return dl(n[e]).concat(dl(t))}function fl(e,t,n){let r=n[e];if(!r)return t;let i=Object.assign({},r),s=!1,o=Object.keys(t);for(let a of o){let e=t[a];"function"==typeof e?(s=!0,i[a]=hl(a,e,r,{})):i[a]=e}return s&&(i._super=Wt),i}function gl(e,t,n,r,i,s,o){let a;for(let l=0;l{let t=s.indexOf(e);-1!==t&&s.splice(t,1)}))}else ml(t,a,n,r,i,s,o)}function ml(e,t,n,r,i,s,o){let a=cl("concatenatedProperties",t,r,i),l=cl("mergedProperties",t,r,i),c=Object.keys(t);for(let u of c){let c=t[u];if(void 0===c)continue;if(-1===s.indexOf(u)){s.push(u);let t=e.peekDescriptors(u);if(void 0===t){if(!M(c)){let e=r[u]=i[u];"function"==typeof e&&yl(i,u,e,!1)}}else n[u]=t,o.push(u),t.teardown(i,u,e)}let h="function"==typeof c;if(h){let e=P(c);if(void 0!==e){n[u]=ul(u,c,e,n),r[u]=void 0;continue}}a&&a.indexOf(u)>=0||"concatenatedProperties"===u||"mergedProperties"===u?c=pl(u,c,r):l&&l.indexOf(u)>-1?c=fl(u,c,r):h&&(c=hl(u,c,r,n)),r[u]=c,n[u]=void 0}}function yl(e,t,n,r){let i=Yt(n);if(void 0===i)return;let{observers:s,listeners:o}=i;if(void 0!==s){let n=r?dn:pn;for(let r of s.paths)n(e,r,null,t,s.sync)}if(void 0!==o){let n=r?nn:rn;for(let r of o)n(e,r,null,t)}}function vl(e,t,n=!1){let r=Object.create(null),i=Object.create(null),s=w(e),o=[],a=[];e._super=Wt,gl(t,s,r,i,e,o,a);for(let l of o){let t=i[l],o=r[l];void 0!==t?("function"==typeof t&&yl(e,l,t,!0),jn(e,l,t,-1!==a.indexOf(l),!n)):void 0!==o&&zn(e,l,o,s)}return s.isPrototypeMeta(e)||vn(e),e}var bl=new WeakSet,wl=class e{mixins;properties;ownerConstructor;_without;constructor(e,t){bl.add(this),this.properties=function(e){if(void 0!==e)for(let t of Object.keys(e)){let n=Object.getOwnPropertyDescriptor(e,t);void 0===n.get&&void 0===n.set||Object.defineProperty(e,t,{value:C(n)})}return e}(t),this.mixins=_l(e),this.ownerConstructor=void 0,this._without=void 0}static create(...e){return yi(),new this(e,void 0)}static mixins(e){let t=b(e),n=[];return null===t||t.forEachMixins(e=>{e.properties||n.push(e)}),n}reopen(...t){if(0===t.length)return this;if(this.properties){let t=new e(void 0,this.properties);this.properties=void 0,this.mixins=[t]}else this.mixins||(this.mixins=[]);return this.mixins=this.mixins.concat(_l(t)),this}apply(e,t=!1){return vl(e,[this],t)}applyPartial(e){return vl(e,[this])}detect(e){if("object"!=typeof e||null===e)return!1;if(bl.has(e))return xl(e,this);let t=b(e);return null!==t&&t.hasMixin(this)}without(...t){let n=new e([this]);return n._without=t,n}keys(){return Cl(this)}toString(){return"(unknown mixin)"}};function _l(e){let t,n=e&&e.length||0;if(n>0){t=new Array(n);for(let r=0;rxl(e,t,n))}function Cl(e,t=new Set,n=new Set){if(!n.has(e)){if(n.add(e),e.properties){let n=Object.keys(e.properties);for(let e of n)t.add(e)}else e.mixins&&e.mixins.forEach(e=>Cl(e,t,n));return t}}var Sl=wl.create({mergedProperties:["actions"],send(e,...t){if(this.actions&&this.actions[e]&&!0!==this.actions[e].apply(this,t))return;let n=ur(this,"target");n&&n.send(...arguments)}}),{isArray:kl}=Array;function El(e){return null==e?[]:kl(e)?e:[e]}var Rl=a({default:()=>Nl});function Tl(e){return"object"==typeof e&&null!==e&&"function"==typeof e.setUnknownProperty}var Ll=wl.prototype.reopen,Il=new WeakSet,Pl=new WeakMap,Ml=new Set;function Al(e){Ml.has(e)||e.destroy()}function Ol(e,t){let n=w(e);if(void 0!==t){let r=e.concatenatedProperties,i=e.mergedProperties,s=Object.keys(t);for(let o of s){let s=t[o],a=I(e,o,n),l=void 0!==a;if(!l){if(void 0!==r&&r.length>0&&r.includes(o)){let t=e[o];s=t?El(t).concat(s):El(s)}if(void 0!==i&&i.length>0&&i.includes(o)){let t=e[o];s=Object.assign({},t,s)}}l?a.set(e,o,s):Tl(e)&&!(o in e)?e.setUnknownProperty(o,s):e[o]=s}}e.init(t),n.unsetInitializing();let r=n.observerEvents();if(void 0!==r)for(let i=0;in.willDestroy()),w(t).setInitializing()}reopen(...e){return vl(this,e),this}init(e){}get isDestroyed(){return ie(this)}set isDestroyed(e){}get isDestroying(){return re(this)}set isDestroying(e){}destroy(){Ml.add(this);try{te(this)}finally{Ml.delete(this)}return this}willDestroy(){}toString(){let e="object"==typeof this&&null!==this&&"function"==typeof this.toStringExtension?`:${this.toStringExtension()}`:"";return`<${Ya(this)||"(unknown)"}:${al(this)}${e}>`}static extend(...e){let t=class extends(this){};return Ll.apply(t.PrototypeMixin,e),t}static create(...e){let t,n=e[0];return void 0!==n?(t=new this(Ur(n)),Xa(t,Ya(n))):t=new this,e.length<=1?Ol(t,n):Ol(t,Fl.apply(this,e)),t}static reopen(...e){return this.willReopen(),Ll.apply(this.PrototypeMixin,e),this}static willReopen(){let e=this.prototype;Il.has(e)&&(Il.delete(e),Pl.has(this)&&Pl.set(this,wl.create(this.PrototypeMixin)))}static reopenClass(...e){return vl(this,e),this}static detect(e){if("function"!=typeof e)return!1;for(;e;){if(e===this)return!0;e=e.superclass}return!1}static detectInstance(e){return e instanceof this}static metaForProperty(e){return I(this.proto(),e)._meta||{}}static eachComputedProperty(e,t=this){this.proto();let n={};w(this.prototype).forEachDescriptors((r,i)=>{if(i.enumerable){let s=i._meta||n;e.call(t,r,s)}})}static get PrototypeMixin(){let e=Pl.get(this);return void 0===e&&(e=wl.create(),e.ownerConstructor=this,Pl.set(this,e)),e}static get superclass(){let e=Object.getPrototypeOf(this);return e!==Function.prototype?e:void 0}static proto(){let e=this.prototype;if(!Il.has(e)){Il.add(e);let t=this.superclass;t&&t.proto(),Pl.has(this)&&this.PrototypeMixin.apply(e)}return e}static toString(){return`<${Ya(this)||"(unknown)"}:constructor>`}static isClass=!0;static isMethod=!1;static _onLookup;static _lazyInjections};function Fl(...e){let t={};for(let n of e){let e=Object.keys(n);for(let r=0,i=e.length;rzl}),zl=wl.create({get(e){return ur(this,e)},getProperties(...e){return Fr(this,...e)},set(e,t){return gr(this,e,t)},setProperties(e){return Dr(this,e)},beginPropertyChanges(){return qn(),this},endPropertyChanges(){return Vn(),this},notifyPropertyChange(e){return $n(this,e),this},addObserver(e,t,n,r){return dn(this,e,t,n,r),this},removeObserver(e,t,n,r){return pn(this,e,t,n,r),this},hasObserverFor(e){return on(this,`${e}:change`)},incrementProperty(e,t=1){return gr(this,e,(parseFloat(ur(this,e))||0)+t)},decrementProperty(e,t=1){return gr(this,e,(ur(this,e)||0)-t)},toggleProperty(e){return gr(this,e,!ur(this,e))},cacheFor(e){let t=b(this);return null!==t?t.valueFor(e):void 0}}),jl=a({action:()=>ql,computed:()=>Yn,default:()=>Ul,defineProperty:()=>Dn,get:()=>ur,getProperties:()=>Fr,notifyPropertyChange:()=>$n,observer:()=>Vl,set:()=>gr,setProperties:()=>Dr,trySet:()=>yr}),Ul=class extends(Nl.extend(zl)){get _debugContainerKey(){let e=Ya(this);return void 0!==e&&e.fullName}},Bl=new WeakMap;function $l(e,t,n){var r;if(null!=(r=e)&&void 0!==r.constructor&&"function"==typeof r.constructor.proto&&e.constructor.proto(),!Object.prototype.hasOwnProperty.call(e,"actions")){let t=e.actions;e.actions=t?Object.assign({},t):{}}return e.actions[t]=n,{get(){let e=Bl.get(this);void 0===e&&(e=new Map,Bl.set(this,e));let t=e.get(n);return void 0===t&&(t=n.bind(this),e.set(n,t)),t}}}function ql(...e){let t;if(!x(e)){t=e[0];let n=function(e,n){return $l(e,n,t)};return A(n),n}let[n,r,i]=e;return t=i?.value,$l(n,r,t)}function Vl(...e){let t,n,r,i=e.pop();"function"==typeof i?(t=i,n=e,r=!O._DEFAULT_ASYNC_OBSERVERS):(t=i.fn,n=i.dependentKeys,r=i.sync);let s=[];for(let o of n)Nn(o,e=>s.push(e));return Xt(t,{paths:s,sync:r}),t}function Wl(e){if(!(e instanceof MouseEvent))return!1;let t=e.shiftKey||e.metaKey||e.altKey||e.ctrlKey,n=0!==e.button;return!t&&!n}function Hl(e){return'Binding style attributes may introduce cross-site scripting vulnerabilities; please ensure that values being bound are properly escaped. For more information, including how to disable this warning, see https://deprecations.emberjs.com/v1.x/#toc_binding-style-attributes. Style affected: "'+e+'"'}function Gl(e){let t=e.lookup("-view-registry:main"),n=[];return Object.keys(t).forEach(e=>{let r=t[e];null===r.parentView&&n.push(r)}),n}function Kl(e){return""!==e.tagName&&e.elementId?e.elementId:al(e)}A(ql);var Zl=new WeakMap,Yl=new WeakMap;function Xl(e){return Zl.get(e)||null}function Jl(e){return Yl.get(e)||null}function Ql(e,t){Zl.set(e,t)}function ec(e,t){Yl.set(e,t)}function tc(e){Zl.delete(e)}function nc(e){Yl.delete(e)}var rc=new WeakMap;function ic(e){return function(e,t){let n=[],r=rc.get(e);return void 0!==r&&r.forEach(e=>{let r=t[e];!r||r.isDestroying||r.isDestroyed||n.push(r)}),n}(e,Ur(e).lookup("-view-registry:main"))}function sc(e,t){let n=rc.get(e);void 0===n&&(n=function(e){let t=new Set;return rc.set(e,t),t}(e)),n.add(Kl(t))}function oc(e){return e.renderer.getBounds(e)}function ac(e){let t=oc(e),n=document.createRange();return n.setStartBefore(t.firstNode),n.setEndAfter(t.lastNode),n}function lc(e){return ac(e).getClientRects()}function cc(e){return ac(e).getBoundingClientRect()}var uc="ember-application",hc=class extends Ul{events={touchstart:"touchStart",touchmove:"touchMove",touchend:"touchEnd",touchcancel:"touchCancel",keydown:"keyDown",keyup:"keyUp",keypress:"keyPress",mousedown:"mouseDown",mouseup:"mouseUp",contextmenu:"contextMenu",click:"click",dblclick:"doubleClick",focusin:"focusIn",focusout:"focusOut",submit:"submit",input:"input",change:"change",dragstart:"dragStart",drag:"drag",dragenter:"dragEnter",dragleave:"dragLeave",dragover:"dragOver",drop:"drop",dragend:"dragEnd"};rootElement="body";_eventHandlers=Object.create(null);_didSetup=!1;finalEventNameMapping=null;_sanitizedRootElement=null;lazyEvents=new Map;_reverseEventNameMapping=null;setup(e,t){let n=this.finalEventNameMapping={...ur(this,"events"),...e};this._reverseEventNameMapping=Object.keys(n).reduce((e,t)=>{let r=n[t];return r?{...e,[r]:t}:e},{});let r=this.lazyEvents;null!=t&&gr(this,"rootElement",t);let i=ur(this,"rootElement"),s="string"!=typeof i?i:document.querySelector(i);s.classList.add(uc),this._sanitizedRootElement=s;for(let o in n)Object.prototype.hasOwnProperty.call(n,o)&&r.set(o,n[o]??null);this._didSetup=!0}setupHandlerForBrowserEvent(e){this.setupHandler(this._sanitizedRootElement,e,this.finalEventNameMapping[e]??null)}setupHandlerForEmberEvent(e){let t=this._reverseEventNameMapping?.[e];t&&this.setupHandler(this._sanitizedRootElement,t,e)}setupHandler(e,t,n){if(null===n||!this.lazyEvents.has(t))return;let r=(e,t)=>{let r=Xl(e),i=!0;return r&&(i=r.handleEvent(n,t)),i},i=this._eventHandlers[t]=e=>{let t=e.target;do{if(Xl(t)){if(!1===r(t,e)){e.preventDefault(),e.stopPropagation();break}if(!0===e.cancelBubble)break}t=t.parentNode}while(t instanceof Element)};e.addEventListener(t,i),this.lazyEvents.delete(t)}destroy(){if(!1===this._didSetup)return;let e=this._sanitizedRootElement;if(e){for(let t in this._eventHandlers)e.removeEventListener(t,this._eventHandlers[t]);return e.classList.remove(uc),this._super(...arguments)}}toString(){return"(EventDispatcher)"}},dc=/^[^:]+:[^:]+$/,pc=class{_failSet;resolver;fallback;registrations;_normalizeCache;_options;_resolveCache;_typeOptions;constructor(e={}){this.fallback=e.fallback||null,this.resolver=e.resolver||null,this.registrations=Po(e.registrations||null),this._normalizeCache=Po(null),this._resolveCache=Po(null),this._failSet=new Set,this._options=Po(null),this._typeOptions=Po(null)}container(e){return new qa(this,e)}register(e,t,n={}){let r=this.normalize(e);this._failSet.delete(r),this.registrations[r]=t,this._options[r]=n}unregister(e){let t=this.normalize(e);delete this.registrations[t],delete this._resolveCache[t],delete this._options[t],this._failSet.delete(t)}resolve(e){let t=function(e,t){let n,r=t,i=e._resolveCache[r];return void 0!==i?i:e._failSet.has(r)?void 0:(e.resolver&&(n=e.resolver.resolve(r)),void 0===n&&(n=e.registrations[r]),void 0===n?e._failSet.add(r):e._resolveCache[r]=n,n)}(this,this.normalize(e));return void 0===t&&null!==this.fallback&&(t=this.fallback.resolve(e)),t}describe(e){return null!==this.resolver&&this.resolver.lookupDescription?this.resolver.lookupDescription(e):null!==this.fallback?this.fallback.describe(e):e}normalizeFullName(e){return null!==this.resolver&&this.resolver.normalize?this.resolver.normalize(e):null!==this.fallback?this.fallback.normalizeFullName(e):e}normalize(e){return this._normalizeCache[e]||(this._normalizeCache[e]=this.normalizeFullName(e))}makeToString(e,t){return null!==this.resolver&&this.resolver.makeToString?this.resolver.makeToString(e,t):null!==this.fallback?this.fallback.makeToString(e,t):"string"==typeof e?e:e.name??"(unknown class)"}has(e){return!!this.isValidFullName(e)&&function(e,t){return void 0!==e.resolve(t)}(this,this.normalize(e))}optionsForType(e,t){this._typeOptions[e]=t}getOptionsForType(e){let t=this._typeOptions[e];return void 0===t&&null!==this.fallback&&(t=this.fallback.getOptionsForType(e)),t}options(e,t){let n=this.normalize(e);this._options[n]=t}getOptions(e){let t=this.normalize(e),n=this._options[t];return void 0===n&&null!==this.fallback&&(n=this.fallback.getOptions(e)),n}getOption(e,t){let n=this._options[e];if(void 0!==n&&void 0!==n[t])return n[t];let r=e.split(":")[0];return n=this._typeOptions[r],n&&void 0!==n[t]?n[t]:null!==this.fallback?this.fallback.getOption(e,t):void 0}knownForType(e){let t,n,r=Po(null),i=Object.keys(this.registrations);for(let s of i)s.split(":")[0]===e&&(r[s]=!0);return null!==this.fallback&&(t=this.fallback.knownForType(e)),null!==this.resolver&&this.resolver.knownForType&&(n=this.resolver.knownForType(e)),Object.assign({},t,r,n)}isValidFullName(e){return dc.test(e)}},fc=Po(null),gc=`${Math.random()}${Date.now()}`.replace(".","");function mc([e]){let t=fc[e];if(t)return t;let[n,r]=e.split(":");return fc[e]=Qa(`${n}:${r}-${gc}`)}var yc=a({default:()=>vc,on:()=>an}),vc=wl.create({on(e,t,n){return nn(this,e,t,n),this},one(e,t,n){return nn(this,e,t,n,!0),this},trigger(e,...t){sn(this,e,t)},off(e,t,n){return rn(this,e,t,n),this},has(e){return on(this,e)}}),bc=wl.create(),wc=a({default:()=>_c}),_c=wl.create(bc),xc={"[object Boolean]":"boolean","[object Number]":"number","[object String]":"string","[object Function]":"function","[object AsyncFunction]":"function","[object Array]":"array","[object Date]":"date","[object RegExp]":"regexp","[object Object]":"object","[object FileList]":"filelist"},{toString:Cc}=Object.prototype;function Sc(e){if(null===e)return"null";if(void 0===e)return"undefined";let t=xc[Cc.call(e)]||"object";return"function"===t?Nl.detect(e)&&(t="class"):"object"===t&&(e instanceof Error?t="error":e instanceof Nl?t="instance":e instanceof Date&&(t="date")),t}var kc=wl.create({compare:null}),Ec={undefined:0,null:1,boolean:2,number:3,string:4,array:5,object:6,instance:7,function:8,class:9,date:10,regexp:11,filelist:12,error:13};function Rc(e,t){return Math.sign(e-t)}function Tc(e,t){if(e===t)return 0;let n=Sc(e),r=Sc(t);if("instance"===n&&Lc(e)&&e.constructor.compare)return e.constructor.compare(e,t);if("instance"===r&&Lc(t)&&t.constructor.compare)return-1*t.constructor.compare(t,e);let i=Rc(Ec[n],Ec[r]);if(0!==i)return i;switch(n){case"boolean":return Rc(Number(e),Number(t));case"number":return Rc(e,t);case"string":return Rc(e.localeCompare(t),0);case"array":{let n=e.length,r=t.length,i=Math.min(n,r);for(let s=0;sZc,MutableArray:()=>Hc,NativeArray:()=>Gc,default:()=>Wc,isArray:()=>Ic,makeArray:()=>El,removeAt:()=>Bc,uniqBy:()=>Oc}),Mc=Object.freeze([]),Ac=e=>e;function Oc(e,t=Ac){let n=Zc(),r=new Set,i="function"==typeof t?t:e=>ur(e,t);return e.forEach(e=>{let t=i(e);r.has(t)||(r.add(t),n.push(e))}),n}function Nc(...e){let t=2===e.length,[n,r]=e;return t?e=>r===ur(e,n):e=>Boolean(ur(e,n))}function Fc(e,t,n){let r=e.length;for(let i=n;i!r(e,t,n),0)}function Uc(e,t,n=0,r){let i=e.length;return n<0&&(n+=i),Fc(e,r&&t!=t?e=>e!=e:e=>e===t,n)}function Bc(e,t,n){return Er(e,t,n??1,Mc),e}function $c(e,t,n){return Er(e,t,0,[n]),n}function qc(e){let t=Yn(e);return t.enumerable=!1,t}function Vc(e){return this.map(t=>ur(t,e))}var Wc=wl.create(bc,{init(){this._super(...arguments),rr.add(this)},objectsAt(e){return e.map(e=>Pt(this,e))},"[]":qc({get(){return this},set(e,t){return this.replace(0,this.length,t),this}}),firstObject:qc(function(){return Pt(this,0)}).readOnly(),lastObject:qc(function(){return Pt(this,this.length-1)}).readOnly(),slice(e=0,t){let n,r=Zc(),i=this.length;for(e<0&&(e=i+e),n=void 0===t||t>i?i:t<0?i+t:t;e=n)&&(t=n-1),t<0&&(t+=n);for(let r=t;r>=0;r--)if(Pt(this,r)===e)return r;return-1},forEach(e,t=null){let n=this.length;for(let r=0;rgr(n,e,t))},map(e,t=null){let n=Zc();return this.forEach((r,i,s)=>n[i]=e.call(t,r,i,s)),n},mapBy:Vc,filter(e,t=null){let n=Zc();return this.forEach((r,i,s)=>{e.call(t,r,i,s)&&n.push(r)}),n},reject(e,t=null){return this.filter(function(){return!e.apply(t,arguments)})},filterBy(){return this.filter(Nc(...arguments))},rejectBy(){return this.reject(Nc(...arguments))},find(e,t=null){return Dc(this,e,t)},findBy(){return Dc(this,Nc(...arguments))},every(e,t=null){return jc(this,e,t)},isEvery(){return jc(this,Nc(...arguments))},any(e,t=null){return zc(this,e,t)},isAny(){return zc(this,Nc(...arguments))},reduce(e,t){let n=t,r=0;if(!(arguments.length>1)){if(0===this.length)throw new TypeError("Reduce of empty array with no initial value");n=this.objectAt(0),r=1}for(let i=r;in.push(r[e]?.(...t))),n},toArray(){return this.map(e=>e)},compact(){return this.filter(e=>null!=e)},includes(e,t){return-1!==Uc(this,e,t,!0)},sortBy(){let e=arguments;return this.toArray().sort((t,n)=>{for(let r=0;rt!==e:e=>e==e;return this.filter(t)}}),Hc=wl.create(Wc,_c,{clear(){let e=this.length;return 0===e||this.replace(0,e,Mc),this},insertAt(e,t){return $c(this,e,t),this},removeAt(e,t){return Bc(this,e,t)},pushObject(e){return $c(this,this.length,e)},pushObjects(e){return this.replace(this.length,0,e),this},popObject(){let e=this.length;if(0===e)return null;let t=Pt(this,e-1);return this.removeAt(e-1,1),t},shiftObject(){if(0===this.length)return null;let e=Pt(this,0);return this.removeAt(0),e},unshiftObject(e){return $c(this,0,e)},unshiftObjects(e){return this.replace(0,0,e),this},reverseObjects(){let e=this.length;if(0===e)return this;let t=this.toArray().reverse();return this.replace(0,e,t),this},setObjects(e){if(0===e.length)return this.clear();let t=this.length;return this.replace(0,t,e),this},removeObject(e){let t=this.length||0;for(;--t>=0;)Pt(this,t)===e&&this.removeAt(t);return this},removeObjects(e){qn();for(let t=e.length-1;t>=0;t--)this.removeObject(e[t]);return Vn(),this},addObject(e){return this.includes(e)||this.pushObject(e),this},addObjects(e){return qn(),e.forEach(e=>this.addObject(e)),Vn(),this}}),Gc=wl.create(Hc,zl,{objectAt(e){return this[e]},replace(e,t,n=Mc){return Tr(this,e,t,n),this}}),Kc=["length"];Gc.keys().forEach(e=>{Array.prototype[e]&&Kc.push(e)}),Gc=Gc.without(...Kc);var Zc=function(e){return ir(e)?e:Gc.apply(e??[])},Yc=class extends Ul{},Xc=a({ControllerMixin:()=>Qc,default:()=>eu,inject:()=>tu}),Jc=Symbol("MODEL"),Qc=wl.create(Sl,{isController:!0,concatenatedProperties:["queryParams"],target:null,store:null,init(){this._super(...arguments);let e=Ur(this);e&&(this.namespace=e.lookup("application:main"),this.target=e.lookup("router:main"))},model:Yn({get(){return this[Jc]},set(e,t){return this[Jc]=t}}),queryParams:null,_qpDelegate:null,_qpChanged(e,t){let n=t.indexOf(".[]"),r=-1===n?t:t.slice(0,n);(0,e._qpDelegate)(r,ur(e,r))}}),eu=class extends(Yc.extend(Qc)){};function tu(...e){return $r("controller",...e)}var nu=!1;function ru(){return nu}function iu(e){nu=Boolean(e)}var su=Symbol("ENGINE_PARENT");function ou(e){return e[su]}var au=wl.create({__container__:null,ownerInjection(){return this.__container__.ownerInjection()},lookup(e,t){return this.__container__.lookup(e,t)},destroy(){let e=this.__container__;e&&_s(()=>{e.destroy(),ks("destroy",e,"finalizeDestroy")}),this._super()},factoryFor(e){return this.__container__.factoryFor(e)}}),lu=wl.create({__registry__:null,resolveRegistration(e){return this.__registry__.resolve(e)},register:cu("register"),unregister:cu("unregister"),hasRegistration:cu("has"),registeredOption:cu("getOption"),registerOptions:cu("options"),registeredOptions:cu("getOptions"),registerOptionsForType:cu("optionsForType"),registeredOptionsForType:cu("getOptionsForType")});function cu(e){return function(...t){return this.__registry__[e](...t)}}var uu=class extends(Ul.extend(lu,au)){static setupRegistry(e,t){}[su];_booted=!1;init(e){super.init(e),al(this),this.base??=this.application;let t=this.__registry__=new pc({fallback:this.base.__registry__});this.__container__=t.container({owner:this}),this._booted=!1}_bootPromise=null;boot(e){return this._bootPromise||(this._bootPromise=new Ba.Promise(t=>{t(this._bootSync(e))})),this._bootPromise}_bootSync(e){return this._booted||(this.cloneParentDependencies(),this.setupRegistry(e),this.base.runInstanceInitializers(this),this._booted=!0),this}setupRegistry(e=this.__container__.lookup("-environment:main")){this.constructor.setupRegistry(this.__registry__,e)}unregister(e){this.__container__.reset(e),this.__registry__.unregister(e)}buildChildEngineInstance(e,t={}){let n=this.lookup(`engine:${e}`);if(!n)throw new Error(`You attempted to mount the engine '${e}', but it is not registered with its parent.`);let r=n.buildInstance(t);return r[su]=this,r}cloneParentDependencies(){const e=ou(this);["route:basic","service:-routing"].forEach(t=>{let n=e.resolveRegistration(t);this.register(t,n)});let t=e.lookup("-environment:main");this.register("-environment:main",t,{instantiate:!1});let n=["router:main",mc`-bucket-cache:main`,"-view-registry:main","renderer:-dom","service:-document"];t.isInteractive&&n.push("event_dispatcher:main"),n.forEach(t=>{let n=e.lookup(t);this.register(t,n,{instantiate:!1})})}},hu=function(e,t,n){let{get:r}=n;return void 0!==r&&(n.get=function(){let e,n=Ke(this,t),i=qe(()=>{e=r.call(this)});return pe(n,i),Ne(i),e}),n};function du(...e){if(x(e)){let[t,n,r]=e;return hu(0,n,r)}{const t=e[0];let n=function(e,n){return hu(0,n,t)};return A(n),n}}A(du);var pu={Empty:0,dynamicLayout:1,dynamicTag:2,prepareArgs:4,createArgs:8,attributeHook:16,elementHook:32,dynamicScope:64,createCaller:128,updateHook:256,createInstance:512,wrapped:1024,willDestroy:2048,hasSubOwner:4096},fu=pu.Empty;function gu(e){return fu|mu(e,"dynamicLayout")|mu(e,"dynamicTag")|mu(e,"prepareArgs")|mu(e,"createArgs")|mu(e,"attributeHook")|mu(e,"elementHook")|mu(e,"dynamicScope")|mu(e,"createCaller")|mu(e,"updateHook")|mu(e,"createInstance")|mu(e,"wrapped")|mu(e,"willDestroy")|mu(e,"hasSubOwner")}function mu(e,t){return e[t]?pu[t]:fu}function yu(e,t,n){return!!(t&n)}function vu(e,t){return!!(e&t)}function bu(e,t={}){return{hasValue:Boolean(t.hasValue),hasDestroyable:Boolean(t.hasDestroyable),hasScheduledEffect:Boolean(t.hasScheduledEffect)}}function wu(e){return e.capabilities.hasValue}function _u(e){return e.capabilities.hasDestroyable}var xu=class{constructor(e){this.factory=e}helperManagerDelegates=new WeakMap;undefinedDelegate=null;getDelegateForOwner(e){let t=this.helperManagerDelegates.get(e);if(void 0===t){let{factory:n}=this;t=n(e),this.helperManagerDelegates.set(e,t)}return t}getDelegateFor(e){if(void 0===e){let{undefinedDelegate:e}=this;if(null===e){let{factory:t}=this;this.undefinedDelegate=e=t(void 0)}return e}return this.getDelegateForOwner(e)}getHelper(e){return(t,n)=>{let r=this.getDelegateFor(n);const i=It(t),s=r.createHelper(e,i);if(wu(r)){let e=ft(()=>r.getValue(s),null);return _u(r)&&Q(e,r.getDestroyable(s)),e}if(_u(r)){let e=dt(void 0);return Q(e,r.getDestroyable(s)),e}return lt}}},Cu=class{capabilities={hasValue:!0,hasDestroyable:!1,hasScheduledEffect:!1};createHelper(e,t){return{fn:e,args:t}}getValue({fn:e,args:t}){return Object.keys(t.named).length>0?e(...t.positional,t.named):e(...t.positional)}getDebugName(e){return e.name?`(helper function ${e.name})`:"(anonymous helper function)"}},Su=new WeakMap,ku=new WeakMap,Eu=new WeakMap,Ru=Object.getPrototypeOf;function Tu(e,t,n){return e.set(n,t),n}function Lu(e,t){let n=t;for(;null!==n;){const t=e.get(n);if(void 0!==t)return t;n=Ru(n)}}function Iu(e,t){return Tu(ku,e,t)}function Pu(e){const t=Lu(ku,e);return void 0===t?null:t}function Mu(e,t){return Tu(Eu,e,t)}var Au=new xu(()=>new Cu);function Ou(e){let t=Lu(Eu,e);return void 0===t&&"function"==typeof e&&(t=Au),t||null}function Nu(e,t){return Tu(Su,e,t)}function Fu(e){const t=Lu(Su,e);return void 0===t?null:t}function Du(e){return void 0!==Lu(Su,e)}function zu(e){return function(e){return"function"==typeof e}(e)||void 0!==Lu(Eu,e)}function ju(e){return void 0!==Lu(ku,e)}var Uu=Object.create;function Bu(){var e=Uu(null);return e.__=void 0,delete e.__,e}var $u=function(e,t,n){this.path=e,this.matcher=t,this.delegate=n};$u.prototype.to=function(e,t){var n=this.delegate;if(n&&n.willAddRoute&&(e=n.willAddRoute(this.matcher.target,e)),this.matcher.add(this.path,e),t){if(0===t.length)throw new Error("You must have an argument in the function passed to `to`");this.matcher.addChild(this.path,e,t,this.delegate)}};var qu=function(e){this.routes=Bu(),this.children=Bu(),this.target=e};function Vu(e,t,n){return function(r,i){var s=e+r;if(!i)return new $u(s,t,n);i(Vu(s,t,n))}}function Wu(e,t,n){for(var r=0,i=0;i0&&47===t.charCodeAt(0)&&(t=t.substr(1));for(var r=t.split("/"),i=void 0,s=void 0,o=0;o2&&"[]"===s.slice(o-2)&&(a=!0,n[s=s.slice(0,o-2)]||(n[s]=[])),l=i[1]?ph(i[1]):""),a?n[s].push(l):n[s]=l}return n},fh.prototype.recognize=function(e){var t,n=[this.rootState],r={},i=!1,s=e.indexOf("#");-1!==s&&(e=e.substr(0,s));var o=e.indexOf("?");if(-1!==o){var a=e.substr(o+1,e.length);e=e.substr(0,o),r=this.parseQueryString(a)}"/"!==e.charAt(0)&&(e="/"+e);var l=e;fh.ENCODE_AND_DECODE_PATH_SEGMENTS?e=Gu(e):(e=decodeURI(e),l=decodeURI(l));var c=e.length;c>1&&"/"===e.charAt(c-1)&&(e=e.substr(0,c-1),l=l.substr(0,l.length-1),i=!0);for(var u=0;u0){let i=e[r-1];if(function(e){if(e&&"object"==typeof e){let t=e;return"queryParams"in t&&Object.keys(t.queryParams).every(e=>"string"==typeof e)}return!1}(i))return n=i.queryParams,t=yh.call(e,0,r-1),[t,n]}return[e,null]}function _h(e){for(let t in e){let n=e[t];if("number"==typeof n)e[t]=String(n);else if(Array.isArray(n))for(let e=0,t=n.length;e{throw this.router.transitionDidError(e,this)},Rh("Handle Abort"))}else this.promise=ra.resolve(this[Th]),this[Lh]={}}then(e,t,n){return this.promise.then(e,t,n)}catch(e,t){return this.promise.catch(e,t)}finally(e,t){return this.promise.finally(e,t)}abort(){this.rollback();let t=new e(this.router,void 0,void 0,void 0);return t.to=this.from,t.from=this.from,t.isAborted=!0,this.router.routeWillChange(t),this.router.routeDidChange(t),this}rollback(){this.isAborted||(xh(this.router,this.sequence,this.targetName+": transition was aborted"),void 0!==this.intent&&null!==this.intent&&(this.intent.preTransitionState=this.router.state),this.isAborted=!0,this.isActive=!1,this.router.activeTransition=void 0)}redirect(e){this[Ph]=e,this.rollback(),this.router.routeWillChange(e)}retry(){this.abort();let e=this.router.transitionByIntent(this.intent,!1);return null!==this.urlMethod&&e.method(this.urlMethod),e}method(e){return this.urlMethod=e,this}send(e=!1,t,n,r,i){this.trigger(e,t,n,r,i)}trigger(e=!1,t,...n){"string"==typeof e&&(t=e,e=!1),this.router.triggerEvent(this[Th].routeInfos.slice(0,this.resolveIndex+1),e,t,n)}followRedirects(){return this.promise.catch(e=>this[Ph]?this[Ph].followRedirects():ra.reject(e))}toString(){return"Transition (sequence "+this.sequence+")"}log(e){xh(this.router,this.sequence,e)}};function Ah(e){return xh(e.router,e.sequence,"detected abort."),gh()}function Oh(e){return"object"==typeof e&&e instanceof Mh&&e.isTransition}var Nh=function(){function e(t){let n=Error.call(this,t);this.name="UnrecognizedURLError",this.message=t||"UnrecognizedURL",Error.captureStackTrace?Error.captureStackTrace(this,e):this.stack=n.stack}return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e}();function Fh(e,t){let n=e.factoryFor("controller:basic").class;n=class extends n{toString(){return`(generated ${t} controller)`}};let r=`controller:${t}`;return e.register(r,n),e.factoryFor(r)}function Dh(e,t){Fh(e,t);let n=`controller:${t}`;return e.lookup(n)}var zh=/\./g;function jh(e){let t,n,r=(e=e.slice())[e.length-1];return function(e){if(e&&"object"==typeof e){let t=e.queryParams;if(t&&"object"==typeof t)return Object.keys(t).every(e=>"string"==typeof e)}return!1}(r)?(e.pop(),t=r.queryParams):t={},"string"==typeof e[0]&&(n=e.shift()),{routeName:n,models:e,queryParams:t}}function Uh(e,t){if(t._namesStashed)return;let n,r=t[t.length-1].name,i=e._routerMicrolib.recognizer.handlersFor(r);for(let s=0;s(e[t]=n,e),s)}serializeQueryParamKey(e){return e}serializeQueryParam(e,t,n){return this._router._serializeQueryParam(e,n)}deserializeQueryParam(e,t,n){return this._router._deserializeQueryParam(e,n)}_optionsForQueryParam(e){const t=ur(this,"queryParams");return ur(t,e.urlKey)||ur(t,e.prop)||t[e.urlKey]||t[e.prop]||{}}resetController(e,t,n){return this}exit(e){this.deactivate(e),this.trigger("deactivate",e),this.teardownViews()}_internalReset(e,t){let n=this.controller;n._qpDelegate=ur(this,"_qp").states.inactive,this.resetController(n,e,t)}enter(e){this[Xh]=void 0,this.activate(e),this.trigger("activate",e)}deactivate(e){}activate(e){}intermediateTransitionTo(...e){let[t,...n]=function(e,t){let n,r=Ur(e),i=r.mountPoint;if(r.routable&&"string"==typeof t[0]){if(n=t[0],Vh(n))throw new Error("Programmatic transitions by URL cannot be used within an Engine. Please use the route name instead.");n=`${i}.${n}`,t[0]=n}return t}(this,e);this._router.intermediateTransitionTo(t,...n)}refresh(){return this._router._routerMicrolib.refresh(this)}setup(e,t){let n=this.controllerName||this.routeName,r=this.controllerFor(n,!0)??this.generateController(n),i=ur(this,"_qp");if(!this.controller){let e=i.propertyNames;!function(e,t){t.forEach(t=>{if(void 0===I(e,t)){let n=fr(e,t);null===n||"function"!=typeof n.get&&"function"!=typeof n.set||Dn(e,t,du({get:n.get,set:n.set}))}dn(e,`${t}.[]`,e,e._qpChanged,!1)})}(r,e),this.controller=r}if(r._qpDelegate=i.states.allowOverrides,t){Uh(this._router,t[Th].routeInfos);let e=this._bucketCache,n=t[Lh];i.propertyNames.forEach(t=>{let s=i.map[t];s.values=n;let o=$h(s.route.fullRouteName,s.parts,s.values),a=e.lookup(o,t,s.undecoratedDefaultValue);gr(r,t,a)});let s=td(this,t[Th]);Dr(r,s)}this.setupController(r,e,t),this._environment.options.shouldRender&&this[Yh](),wn(!1)}_qpChanged(e,t,n){if(!n)return;let r=this._bucketCache,i=$h(n.route.fullRouteName,n.parts,n.values);r.stash(i,e,t)}beforeModel(e){}afterModel(e,t){}redirect(e,t){}contextDidChange(){this.currentModel=this.context}model(e,t){let n,r,i=ur(this,"_qp").map;for(let s in e){if("queryParams"===s||i&&s in i)continue;let e=s.match(/^(.*)_id$/);null!==e&&(n=e[1]),r=!0}if(!n){if(r)return Object.assign({},e);if(t.resolveIndex<1)return;return t[Th].routeInfos[t.resolveIndex-1].context}}deserialize(e,t){return this.model(this._paramsFor(this.routeName,e),t)}setupController(e,t,n){e&&void 0!==t&&gr(e,"model",t)}controllerFor(e,t=!1){let n=Ur(this),r=n.lookup(`route:${e}`);return r&&r.controllerName&&(e=r.controllerName),n.lookup(`controller:${e}`)}generateController(e){return Dh(Ur(this),e)}modelFor(e){let t,n=Ur(this),r=this._router&&this._router._routerMicrolib?this._router._routerMicrolib.activeTransition:void 0;t=n.routable&&void 0!==r?rd(n,e):e;let i=n.lookup(`route:${t}`);if(null!=r){let e=i&&i.routeName||t;if(Object.prototype.hasOwnProperty.call(r.resolvedModels,e))return r.resolvedModels[e]}return i?.currentModel}[Xh]=void 0;[Yh](){this[Xh]=function(e){let t,n=Ur(e),r=e.routeName,i=n.lookup(`controller:${e.controllerName||r}`),s=e.currentModel,o=n.lookup(`template:${e.templateName||r}`);return t=o?Du(o)?o:o(n):e._topLevelViewTemplate(n),{owner:n,name:r,controller:i,model:s,template:t}}(this),Ls(this._router,"_setOutlets")}willDestroy(){this.teardownViews()}teardownViews(){this[Xh]&&(this[Xh]=void 0,Ls(this._router,"_setOutlets"))}buildRouteInfoMetadata(){}_paramsFor(e,t){return void 0!==this._router._routerMicrolib.activeTransition?this.paramsFor(e):t}get _store(){const e=Ur(this);return this.routeName,{find(t,n){let r=e.factoryFor(`model:${t}`);if(r)return r=r.class,r.find(n)}}}static{Kh(this.prototype,"_store",[Yn])}get _qp(){let e={},t=this.controllerName||this.routeName,n=Ur(this),r=n.lookup(`controller:${t}`),i=ur(this,"queryParams"),s=Object.keys(i).length>0;r?e=function(e,t){let n={},r={defaultValue:!0,type:!0,scope:!0,as:!0};for(let i in e)Object.prototype.hasOwnProperty.call(e,i)&&(n[i]={...e[i],...t[i]},r[i]=!0);for(let i in t)Object.prototype.hasOwnProperty.call(t,i)&&!r[i]&&(n[i]={...t[i],...e[i]});return n}(function(e){let t={};for(let n of e)qh(n,t);return t}(ur(r,"queryParams")||[]),i):s&&(r=Dh(n,t),e=i);let o=[],a={},l=[];for(let c in e){if(!Object.prototype.hasOwnProperty.call(e,c))continue;if("unknownProperty"===c||"_super"===c)continue;let n,i=e[c],s=i.scope||"model";"controller"===s&&(n=[]);let u=i.as||this.serializeQueryParamKey(c),h=ur(r,c);h=nd(h);let d=i.type||Sc(h),p=this.serializeQueryParam(h,u,d),f=`${t}:${c}`,g={undecoratedDefaultValue:ur(r,c),defaultValue:h,serializedDefaultValue:p,serializedValue:p,type:d,urlKey:u,prop:c,scopedPropertyName:f,controllerName:t,route:this,parts:n,values:null,scope:s};a[c]=a[u]=a[f]=g,o.push(g),l.push(c)}return{qps:o,map:a,propertyNames:l,states:{inactive:(e,t)=>{let n=a[e];this._qpChanged(e,t,n)},active:(e,t)=>{let n=a[e];return this._qpChanged(e,t,n),this._activeQPChanged(n,t)},allowOverrides:(e,t)=>{let n=a[e];return this._qpChanged(e,t,n),this._updatingQPChanged(n)}}}}static{Kh(this.prototype,"_qp",[Yn])}};function Qh(e){return e[Xh]}function ed(e,t){if(t.fullQueryParams)return t.fullQueryParams;let n=t.routeInfos.every(e=>e.route),r={...t.queryParams};return e._deserializeQueryParams(t.routeInfos,r),n&&(t.fullQueryParams=r),r}function td(e,t){t.queryParamsFor=t.queryParamsFor||{};let n=e.fullRouteName,r=t.queryParamsFor[n];if(r)return r;let i=ed(e._router,t),s=t.queryParamsFor[n]={},o=ur(e,"_qp").qps;for(let a of o){let e=a.prop in i;s[a.prop]=e?i[a.prop]:nd(a.defaultValue)}return s}function nd(e){return Array.isArray(e)?Zc(e.slice()):e}function rd(e,t){if(e.routable){let n=e.mountPoint;return"application"===t?n:`${n}.${t}`}return t}var id=Jh.prototype.serialize;Jh.reopen({mergedProperties:["queryParams"],queryParams:{},templateName:null,controllerName:null,send(...e){if(this._router&&this._router._routerMicrolib||!ru())this._router.send(...e);else{let t=e.shift(),n=this.actions[t];if(n)return n.apply(this,e)}},actions:{queryParamsDidChange(e,t,n){let r=ur(this,"_qp").map,i=Object.keys(e).concat(Object.keys(n));for(let s of i){let e=r[s];if(e&&ur(this._optionsForQueryParam(e),"refreshModel")&&this._router.currentState){this.refresh();break}}return!0},finalizeQueryParamChange(e,t,n){if("application"!==this.fullRouteName)return!0;if(!n)return;let r,i=n[Th].routeInfos,s=this._router,o=s._queryParamsFor(i),a=s._qpUpdates,l=!1;Uh(s,i);for(let c of o.qps){let i,s,o=c.route,u=o.controller,h=c.urlKey in e&&c.urlKey;if(a.has(c.urlKey)?(i=ur(u,c.prop),s=o.serializeQueryParam(i,c.urlKey,c.type)):h?(s=e[h],void 0!==s&&(i=o.deserializeQueryParam(s,c.urlKey,c.type))):(s=c.serializedDefaultValue,i=nd(c.defaultValue)),u._qpDelegate=ur(o,"_qp").states.inactive,s!==c.serializedValue){if(n.queryParamsOnly&&!1!==r){let e=ur(o._optionsForQueryParam(c),"replace");e?r=!0:!1===e&&(r=!1)}gr(u,c.prop,i),l=!0}c.serializedValue=s,c.serializedDefaultValue!==s&&t.push({value:s,visible:!0,key:h||c.urlKey})}!0===l&&wn(!1),r&&n.method("replace"),o.qps.forEach(e=>{let t=ur(e.route,"_qp");e.route.controller._qpDelegate=ur(t,"states.active")}),s._qpUpdates.clear()}}});var sd=0;function od(e){return"function"==typeof e}var ad=class e{parent;matches;enableLoadingSubstates;explicitIndex=!1;options;constructor(e=null,t){this.parent=e,this.enableLoadingSubstates=Boolean(t&&t.enableLoadingSubstates),this.matches=[],this.options=t}route(t,n,r){let i,s=null,o=`/_unused_dummy_error_path_route_${t}/:error`;if(od(n)?(i={},s=n):od(r)?(i=n,s=r):i=n||{},this.enableLoadingSubstates&&(cd(this,`${t}_loading`,{resetNamespace:i.resetNamespace}),cd(this,`${t}_error`,{resetNamespace:i.resetNamespace,path:o})),s){let n=ld(this,t,i.resetNamespace),r=new e(n,this.options);cd(r,"loading"),cd(r,"error",{path:o}),s.call(r),cd(this,t,i,r.generate())}else cd(this,t,i)}push(e,t,n,r){let i=t.split(".");if(this.options.engineInfo){let e=t.slice(this.options.engineInfo.fullName.length+1),n=Object.assign({localFullName:e},this.options.engineInfo);r&&(n.serializeMethod=r),this.options.addRouteForEngine(t,n)}else if(r)throw new Error(`Defining a route serializer on route '${t}' outside an Engine is not allowed.`);""!==e&&"/"!==e&&"index"!==i[i.length-1]||(this.explicitIndex=!0),this.matches.push(e,t,n)}generate(){let e=this.matches;return this.explicitIndex||this.route("index",{path:"/"}),t=>{for(let n=0;n0){let i=Object.assign({},n);return this.emberRouter._prepareQueryParams(e,t,i),Wh(i,r.queryParams)}return!0}},hd=new WeakMap;function dd(e,t={},n={includeAttributes:!1,localizeMapUpdates:!1}){const r=new WeakMap;return e.map((i,s)=>{let{name:o,params:a,paramNames:l,context:c,route:u}=i,h=i;if(hd.has(h)&&n.includeAttributes){let e=hd.get(h);e=function(e,t){let n={get metadata(){return fd(e)}};return!Object.isExtensible(t)||t.hasOwnProperty("metadata")?Object.freeze(Object.assign({},t,n)):Object.assign(t,n)}(u,e);let t=pd(e,c);return r.set(h,e),n.localizeMapUpdates||hd.set(h,t),t}const d=n.localizeMapUpdates?r:hd;let p={find(t,n){let r,i=[];3===t.length&&(i=e.map(e=>d.get(e)));for(let s=0;e.length>s;s++)if(r=d.get(e[s]),t.call(n,r,s,i))return r},get name(){return o},get paramNames(){return l},get metadata(){return fd(i.route)},get parent(){let t=e[s-1];return void 0===t?null:d.get(t)},get child(){let t=e[s+1];return void 0===t?null:d.get(t)},get localName(){let e=this.name.split(".");return e[e.length-1]},get params(){return a},get queryParams(){return t}};return n.includeAttributes&&(p=pd(p,c)),r.set(i,p),n.localizeMapUpdates||hd.set(i,p),p})}function pd(e,t){let n={get attributes(){return t}};return!Object.isExtensible(e)||e.hasOwnProperty("attributes")?Object.freeze(Object.assign({},e,n)):Object.assign(e,n)}function fd(e){return null!=e&&void 0!==e.buildRouteInfoMetadata?e.buildRouteInfoMetadata():null}var gd=class{_routePromise=void 0;_route=null;router;params={};isResolved=!1;constructor(e,t,n,r){this.name=t,this.paramNames=n,this.router=e,r&&this._processRoute(r)}getModel(e){return ra.resolve(this.context)}serialize(e){return this.params||{}}resolve(e){return ra.resolve(this.routePromise).then(t=>(mh(e),t)).then(()=>this.runBeforeModelHook(e)).then(()=>mh(e)).then(()=>this.getModel(e)).then(t=>(mh(e),t)).then(t=>this.runAfterModelHook(e,t)).then(t=>this.becomeResolved(e,t))}becomeResolved(e,t){let n,r=this.serialize(t);e&&(this.stashResolvedModel(e,t),e[Lh]=e[Lh]||{},e[Lh][this.name]=r);let i=t===this.context;!("context"in this)&&i||(n=t);let s=hd.get(this),o=new md(this.router,this.name,this.paramNames,r,this.route,n);return void 0!==s&&hd.set(o,s),o}shouldSupersede(e){if(!e)return!0;let t=e.context===this.context;return e.name!==this.name||"context"in this&&!t||this.hasOwnProperty("params")&&!function(e,t){if(e===t)return!0;if(!e||!t)return!1;for(let n in e)if(e.hasOwnProperty(n)&&e[n]!==t[n])return!1;return!0}(this.params,e.params)}get route(){return null!==this._route?this._route:this.fetchRoute()}set route(e){this._route=e}get routePromise(){return this._routePromise||this.fetchRoute(),this._routePromise}set routePromise(e){this._routePromise=e}log(e,t){e.log&&e.log(this.name+": "+t)}updateRoute(e){return e._internalName=this.name,this.route=e}runBeforeModelHook(e){let t;return e.trigger&&e.trigger(!0,"willResolveModel",e,this.route),this.route&&void 0!==this.route.beforeModel&&(t=this.route.beforeModel(e)),Oh(t)&&(t=null),ra.resolve(t)}runAfterModelHook(e,t){let n,r=this.name;var i;return this.stashResolvedModel(e,t),void 0!==this.route&&void 0!==this.route.afterModel&&(n=this.route.afterModel(t,e)),n=Oh(i=n)?null:i,ra.resolve(n).then(()=>e.resolvedModels[r])}stashResolvedModel(e,t){e.resolvedModels=e.resolvedModels||{},e.resolvedModels[this.name]=t}fetchRoute(){let e=this.router.getRoute(this.name);return this._processRoute(e)}_processRoute(e){return this.routePromise=ra.resolve(e),function(e){return null!==e&&"object"==typeof e&&"function"==typeof e.then}(e)?(this.routePromise=this.routePromise.then(e=>this.updateRoute(e)),void(this.route=void 0)):e?this.updateRoute(e):void 0}},md=class extends gd{isResolved;context;constructor(e,t,n,r,i,s){super(e,t,n,i),this.params=r,this.isResolved=!0,this.context=s}resolve(e){return e&&e.resolvedModels&&(e.resolvedModels[this.name]=this.context),ra.resolve(this)}},yd=class extends gd{params={};constructor(e,t,n,r,i){super(e,t,n,i),r&&(this.params=r)}getModel(e){let t=this.params;e&&e[Ih]&&(t={},bh(t,this.params),t.queryParams=e[Ih]);let n,r=this.route;return r.deserialize?n=r.deserialize(t,e):r.model&&(n=r.model(t,e)),n&&Oh(n)&&(n=void 0),ra.resolve(n)}},vd=class extends gd{serializer;constructor(e,t,n,r){super(e,t,n),this.context=r,this.serializer=this.router.getSerializer(t)}getModel(e){return void 0!==this.router.log&&this.router.log(this.name+": resolving provided model"),super.getModel(e)}serialize(e){let{paramNames:t,context:n}=this;e||(e=n);let r={};if(Ch(e))return r[t[0]]=e,r;if(this.serializer)return this.serializer.call(null,e,t);if(void 0!==this.route&&this.route.serialize)return this.route.serialize(e,t);if(1!==t.length)return;let i=t[0];return/_id$/.test(i)?r[i]=e.id:r[i]=e,r}},bd=class{data;router;constructor(e,t={}){this.router=e,this.data=t}preTransitionState};function wd(e,t,n){let r=e.routeInfos,i=t.resolveIndex>=r.length?r.length-1:t.resolveIndex,s=t.isAborted;throw new Sd(n,e.routeInfos[i].route,s,e)}function _d(e,t){if(t.resolveIndex===e.routeInfos.length)return;let n=e.routeInfos[t.resolveIndex],r=xd.bind(null,e,t);return n.resolve(t).then(r,null,e.promiseLabel("Proceed"))}function xd(e,t,n){let r=e.routeInfos[t.resolveIndex].isResolved;if(e.routeInfos[t.resolveIndex++]=n,!r){let{route:e}=n;void 0!==e&&e.redirect&&e.redirect(n.context,t)}return mh(t),_d(e,t)}var Cd=class{routeInfos=[];queryParams={};params={};promiseLabel(e){let t="";return Sh(this.routeInfos,function(e){return""!==t&&(t+="."),t+=e.name,!0}),Rh("'"+t+"': "+e)}resolve(e){let t=this.params;Sh(this.routeInfos,e=>(t[e.name]=e.params||{},!0)),e.resolveIndex=0;let n=_d.bind(null,this,e),r=wd.bind(null,this,e);return ra.resolve(null,this.promiseLabel("Start transition")).then(n,null,this.promiseLabel("Resolve route")).catch(r,this.promiseLabel("Handle error")).then(()=>this)}},Sd=class{constructor(e,t,n,r){this.error=e,this.route=t,this.wasAborted=n,this.state=r}},kd=class extends bd{name;pivotHandler;contexts;queryParams;preTransitionState=void 0;constructor(e,t,n,r=[],i={},s){super(e,s),this.name=t,this.pivotHandler=n,this.contexts=r,this.queryParams=i}applyToState(e,t){let n=this.router.recognizer.handlersFor(this.name),r=n[n.length-1].handler;return this.applyToHandlers(e,n,r,t,!1)}applyToHandlers(e,t,n,r,i){let s,o,a=new Cd,l=this.contexts.slice(0),c=t.length;if(this.pivotHandler)for(s=0,o=t.length;s=0;--s){let o=t[s],u=o.handler,h=e.routeInfos[s],d=null;if(d=o.names.length>0?s>=c?this.createParamHandlerInfo(u,o.names,l,h):this.getHandlerInfoForDynamicSegment(u,o.names,l,h,n,s):this.createParamHandlerInfo(u,o.names,l,h),i){d=d.becomeResolved(null,d.context);let e=h&&h.context;o.names.length>0&&void 0!==h.context&&d.context===e&&(d.params=h&&h.params),d.context=e}let p=h;(s>=c||d.shouldSupersede(h))&&(c=Math.min(s,c),p=d),r&&!i&&(p=p.becomeResolved(null,p.context)),a.routeInfos.unshift(p)}if(l.length>0)throw new Error("More context objects were passed than there are dynamic segments for the route: "+n);return r||this.invalidateChildren(a.routeInfos,c),bh(a.queryParams,this.queryParams||{}),r&&e.queryParams&&bh(a.queryParams,e.queryParams),a}invalidateChildren(e,t){for(let n=t,r=e.length;n0){if(o=n[n.length-1],Ch(o))return this.createParamHandlerInfo(e,t,n,r);n.pop()}else{if(r&&r.name===e)return r;if(!this.preTransitionState)return r;o=this.preTransitionState.routeInfos[s]?.context}return new vd(this.router,e,t,o)}createParamHandlerInfo(e,t,n,r){let i={},s=t.length,o=[];for(;s--;){let a=r&&e===r.name&&r.params||{},l=n[n.length-1],c=t[s];Ch(l)?i[c]=String(n.pop()):a.hasOwnProperty(c)?i[c]=a[c]:o.push(c)}if(o.length>0)throw new Error(`You didn't provide enough string/numeric parameters to satisfy all of the dynamic segments for route ${e}. Missing params: ${o}`);return new yd(this.router,e,t,i)}},Ed=class extends bd{preTransitionState;url;constructor(e,t,n){super(e,n),this.url=t,this.preTransitionState=void 0}applyToState(e){let t,n,r=new Cd,i=this.router.recognizer.recognize(this.url);if(!i)throw new Nh(this.url);let s=!1,o=this.url;function a(e){if(e&&e.inaccessibleByURL)throw new Nh(o);return e}for(t=0,n=i.length;t=0&&r;--n){let i=t[n],s=i.handler;e.add(t,{as:s}),r="/"===i.path||""===i.path||".index"===s.slice(-6)}})}hasRoute(e){return this.recognizer.hasRoute(e)}queryParamsTransition(e,t,n,r){if(this.fireQueryParamDidChange(r,e),!t&&this.activeTransition)return this.activeTransition;{let e=new Mh(this,void 0,void 0);return e.queryParamsOnly=!0,n.queryParams=this.finalizeQueryParamChange(r.routeInfos,r.queryParams,e),e[Ih]=r.queryParams,this.toReadOnlyInfos(e,r),this.routeWillChange(e),e.promise=e.promise.then(t=>(e.isAborted||(this._updateURL(e,n),this.didTransition(this.currentRouteInfos),this.toInfos(e,r.routeInfos,!0),this.routeDidChange(e)),t),null,Rh("Transition complete")),e}}transitionByIntent(e,t){try{return this.getTransitionByIntent(e,t)}catch(n){return new Mh(this,e,void 0,n,void 0)}}recognize(e){let t=new Ed(this,e),n=this.generateNewState(t);if(null===n)return n;let r=dd(n.routeInfos,n.queryParams,{includeAttributes:!1,localizeMapUpdates:!0});return r[r.length-1]}recognizeAndLoad(e){let t=new Ed(this,e),n=this.generateNewState(t);if(null===n)return ra.reject(`URL ${e} was not recognized`);let r=new Mh(this,t,n,void 0);return r.then(()=>{let e=dd(n.routeInfos,r[Ih],{includeAttributes:!0,localizeMapUpdates:!1});return e[e.length-1]})}generateNewState(e){try{return e.applyToState(this.state,!1)}catch(t){return null}}getTransitionByIntent(e,t){let n,r=Boolean(this.activeTransition),i=r?this.activeTransition[Th]:this.state,s=e.applyToState(i,t),o=kh(i.queryParams,s.queryParams);if(Td(s.routeInfos,i.routeInfos)){if(o){let e=this.queryParamsTransition(o,r,i,s);return e.queryParamsOnly=!0,e}return this.activeTransition||new Mh(this,void 0,void 0)}if(t){let e=new Mh(this,void 0,s);return e.isIntermediate=!0,this.toReadOnlyInfos(e,s),this.setupContexts(s,e),this.routeWillChange(e),this.activeTransition}return n=new Mh(this,e,s,void 0,this.activeTransition),function(e,t){if(e.length!==t.length)return!1;for(let n=0,r=e.length;nthis.finalizeTransition(n,e),null,Rh("Settle transition promise when transition is finalized")),r||this.notifyExistingHandlers(s,n),this.fireQueryParamDidChange(s,o),n}doTransition(e,t=[],n=!1){let r,i=t[t.length-1],s={};if(i&&Object.prototype.hasOwnProperty.call(i,"queryParams")&&(s=t.pop().queryParams),void 0===e){xh(this,"Updating query params");let{routeInfos:e}=this.state;r=new kd(this,e[e.length-1].name,void 0,[],s)}else"/"===e.charAt(0)?(xh(this,"Attempting URL transition to "+e),r=new Ed(this,e)):(xh(this,"Attempting transition to "+e),r=new kd(this,e,void 0,t,s));return this.transitionByIntent(r,n)}finalizeTransition(e,t){try{xh(e.router,e.sequence,"Resolved all models on destination route; finalizing transition.");let n=t.routeInfos;return this.setupContexts(t,e),e.isAborted?(this.state.routeInfos=this.currentRouteInfos,ra.reject(Ah(e))):(this._updateURL(e,t),e.isActive=!1,this.activeTransition=void 0,this.triggerEvent(this.currentRouteInfos,!0,"didTransition",[]),this.didTransition(this.currentRouteInfos),this.toInfos(e,t.routeInfos,!0),this.routeDidChange(e),xh(this,e.sequence,"TRANSITION COMPLETE."),n[n.length-1].route)}catch(r){if("object"!=typeof(n=r)||null===n||"TRANSITION_ABORTED"!==n.code){let t=e[Th].routeInfos;e.trigger(!0,"error",r,e,t[t.length-1].route),e.abort()}throw r}var n}setupContexts(e,t){let n,r,i,s=this.partitionRoutes(this.state,e);for(n=0,r=s.exited.length;n=0;--o){let e=r[o];bh(s,e.params),e.route.inaccessibleByURL&&(n=null)}if(n){s.queryParams=e._visibleQueryParams||t.queryParams;let r=this.recognizer.generate(i,s),o=e.isCausedByInitialTransition,a="replace"===n&&!e.isCausedByAbortingTransition,l=e.queryParamsOnly&&"replace"===n,c="replace"===n&&e.isCausedByAbortingReplaceTransition;o||a||l||c?this.replaceURL(r):this.updateURL(r)}}finalizeQueryParamChange(e,t,n){for(let s in t)t.hasOwnProperty(s)&&null===t[s]&&delete t[s];let r=[];this.triggerEvent(e,!0,"finalizeQueryParamChange",[t,r,n]),n&&(n._visibleQueryParams={});let i={};for(let s=0,o=r.length;s0){let n=dd(t,Object.assign({},this._lastQueryParams),{includeAttributes:!0,localizeMapUpdates:!1});e.from=n[n.length-1]||null}}toInfos(e,t,n=!1){if(void 0!==e&&t.length>0){let r=dd(t,Object.assign({},e[Ih]),{includeAttributes:n,localizeMapUpdates:!1});e.to=r[r.length-1]||null}}notifyExistingHandlers(e,t){let n,r,i,s,o=this.state.routeInfos;for(r=o.length,n=0;n{e.setURL(n),gr(t,"currentURL",n)})}didTransition(e){t.didTransition(e)}willTransition(e,n){t.willTransition(e,n)}triggerEvent(e,n,r,i){return zd.bind(t)(e,n,r,i)}routeWillChange(e){t.trigger("routeWillChange",e),t._routerService.trigger("routeWillChange",e),e.isIntermediate&&t.set("currentRoute",e.to)}routeDidChange(e){t.set("currentRoute",e.to),Ls(()=>{t.trigger("routeDidChange",e),t._routerService.trigger("routeDidChange",e)})}transitionDidError(e,n){return e.wasAborted||n.isAborted?Ah(n):(n.trigger(!1,"error",e.error,n,e.route),t._isErrorHandled(e.error)?(n.rollback(),this.routeDidChange(n),e.error):(n.abort(),e.error))}replaceURL(n){e.replaceURL?Ls(()=>{e.replaceURL(n),gr(t,"currentURL",n)}):this.updateURL(n)}},s=this.constructor.dslCallbacks||[Id],o=this._buildDSL();o.route("application",{path:"/",resetNamespace:!0,overrideNameAssertion:!0},function(){for(let e=0;en.factoryFor(`route-map:${e}`),addRouteForEngine(e,n){t._engineInfoByRoute[e]||(t._engineInfoByRoute[e]=n)}})}_resetQueuedQueryParameterChanges(){this._queuedQPChanges={}}_hasModuleBasedResolver(){let e=ur(Io(this),"application.__registry__.resolver.moduleBasedResolver");return Boolean(e)}startRouting(){if(this.setupRouter()){let e=ur(this,"initialURL");void 0===e&&(e=ur(this,"location").getURL());let t=this.handleURL(e);if(t&&t.error)throw t.error}}setupRouter(){if(this._didSetupRouter)return!1;this._didSetupRouter=!0,this._setupLocation();let e=ur(this,"location");return!ur(e,"cancelRouterSetup")&&(this._initRouterJs(),e.onUpdateURL(e=>{this.handleURL(e)}),!0)}_setOutlets(){if(this.isDestroying||this.isDestroyed)return;let e=this._routerMicrolib.currentRouteInfos;if(!e)return;let t=null,n=null;for(let r of e){let e=Qh(r.route);if(!e)break;{let r={render:e,outlets:{main:void 0}};n?n.outlets.main=r:t=r,n=r}}if(null!==t)if(this._toplevelView)this._toplevelView.setOutletState(t);else{let e=Io(this),n=e.factoryFor("view:-outlet"),r=e.lookup("application:main"),i=e.lookup("-environment:main"),s=e.lookup("template:-outlet");this._toplevelView=n.create({environment:i,template:s,application:r}),this._toplevelView.setOutletState(t),e.lookup("-application-instance:main").didCreateRootView(this._toplevelView)}}handleURL(e){let t=e.split(/#(.+)?/)[0];return this._doURLTransition("handleURL",t)}_doURLTransition(e,t){this._initialTransitionStarted=!0;let n=this._routerMicrolib[e](t||"/");return Bd(n,this),n}transitionTo(...e){if(Vh(e[0]))return this._doURLTransition("transitionTo",e[0]);let{routeName:t,models:n,queryParams:r}=jh(e);return this._doTransition(t,n,r)}intermediateTransitionTo(e,...t){this._routerMicrolib.intermediateTransitionTo(e,...t),Ud(this)}replaceWith(...e){return this.transitionTo(...e).method("replace")}generate(e,...t){let n=this._routerMicrolib.generate(e,...t);return this.location.formatURL(n)}isActive(e){return this._routerMicrolib.isActive(e)}isActiveIntent(e,t,n){return this.currentState.isActiveIntent(e,t,n)}send(e,...t){this._routerMicrolib.trigger(e,...t)}hasRoute(e){return this._routerMicrolib.hasRoute(e)}reset(){this._didSetupRouter=!1,this._initialTransitionStarted=!1,this._routerMicrolib&&this._routerMicrolib.reset()}willDestroy(){this._toplevelView&&(this._toplevelView.destroy(),this._toplevelView=null),super.willDestroy(),this.reset();let e=this._engineInstances;for(let t in e){let n=e[t];for(let e in n)ws(n[e],"destroy")}}_activeQPChanged(e,t){this._queuedQPChanges[e]=t,Ls(this,this._fireQueryParamTransition)}_updatingQPChanged(e){this._qpUpdates.add(e)}_fireQueryParamTransition(){this.transitionTo({queryParams:this._queuedQPChanges}),this._resetQueuedQueryParameterChanges()}_setupLocation(){let e=this.location,t=this.rootURL,n=Io(this);"string"==typeof e&&(e=gr(this,"location",n.lookup(`location:${e}`))),null!==e&&"object"==typeof e&&(t&&gr(e,"rootURL",t),"function"==typeof e.initState&&e.initState())}_serializeQueryParams(e,t){$d(this,e,t,(e,n,r)=>{if(r)delete t[e],t[r.urlKey]=r.route.serializeQueryParam(n,r.urlKey,r.type);else{if(void 0===n)return;t[e]=this._serializeQueryParam(n,Sc(n))}})}_serializeQueryParam(e,t){return null==e?e:"array"===t?JSON.stringify(e):`${e}`}_deserializeQueryParams(e,t){$d(this,e,t,(e,n,r)=>{r&&(delete t[e],t[r.prop]=r.route.deserializeQueryParam(n,r.urlKey,r.type))})}_deserializeQueryParam(e,t){return null==e?e:"boolean"===t?"true"===e:"number"===t?Number(e).valueOf():"array"===t?Zc(JSON.parse(e)):e}_pruneDefaultQueryParamValues(e,t){let n=this._queryParamsFor(e);for(let r in t){let e=n.map[r];e&&e.serializedDefaultValue===t[r]&&delete t[r]}}_doTransition(e,t,n,r){let i=e||function(e){let t=e.activeTransition?e.activeTransition[Th].routeInfos:e.state.routeInfos;return t[t.length-1].name}(this._routerMicrolib);this._initialTransitionStarted=!0;let s={};this._processActiveTransitionQueryParams(i,t,s,n),Object.assign(s,n),this._prepareQueryParams(i,t,s,Boolean(r));let o=this._routerMicrolib.transitionTo(i,...t,{queryParams:s});return Bd(o,this),o}_processActiveTransitionQueryParams(e,t,n,r){if(!this._routerMicrolib.activeTransition)return;let i={},s=this._qpUpdates,o=ed(this,this._routerMicrolib.activeTransition[Th]);for(let a in o)s.has(a)||(i[a]=o[a]);this._fullyScopeQueryParams(e,t,r),this._fullyScopeQueryParams(e,t,i),Object.assign(n,i)}_prepareQueryParams(e,t,n,r){let i=jd(this,e,t);this._hydrateUnsuppliedQueryParams(i,n,Boolean(r)),this._serializeQueryParams(i.routeInfos,n),r||this._pruneDefaultQueryParamValues(i.routeInfos,n)}_getQPMeta(e){let t=e.route;return t&&ur(t,"_qp")}_queryParamsFor(e){let t=e[e.length-1].name,n=this._qpCache[t];if(void 0!==n)return n;let r,i=!0,s={},o=[];for(let l of e)if(r=this._getQPMeta(l),r){for(let e of r.qps)o.push(e);Object.assign(s,r.map)}else i=!1;let a={qps:o,map:s};return i&&(this._qpCache[t]=a),a}_fullyScopeQueryParams(e,t,n){let r,i=jd(this,e,t).routeInfos;for(let s of i)if(r=this._getQPMeta(s),r)for(let e of r.qps){let t=e.prop in n&&e.prop||e.scopedPropertyName in n&&e.scopedPropertyName||e.urlKey in n&&e.urlKey;t&&t!==e.scopedPropertyName&&(n[e.scopedPropertyName]=n[t],delete n[t])}}_hydrateUnsuppliedQueryParams(e,t,n){let r,i,s,o=e.routeInfos,a=this._bucketCache;for(let l of o)if(r=this._getQPMeta(l),r)for(let n=0,o=r.qps.length;n=0;--n){let r=e[n],i=r.route;if(void 0!==i&&!0!==t(i,r))return}}var Od={willResolveModel(e,t,n){this._scheduleLoadingEvent(t,n)},error(e,t,n){let r=this,i=e[e.length-1];Ad(e,(e,n)=>{if(n!==i){let n=Fd(e,"error");if(n)return r._markErrorAsHandled(t),r.intermediateTransitionTo(n,t),!1}let s=Nd(e,"error");return!s||(r._markErrorAsHandled(t),r.intermediateTransitionTo(s,t),!1)}),function(e,t){let n,r=[];n=e&&"object"==typeof e&&"object"==typeof e.errorThrown?e.errorThrown:e,t&&r.push(t),n&&(n.message&&r.push(n.message),n.stack&&r.push(n.stack),"string"==typeof n&&r.push(n)),console.error(...r)}(t,`Error while processing route: ${n.targetName}`)},loading(e,t){let n=this,r=e[e.length-1];Ad(e,(e,i)=>{if(i!==r){let t=Fd(e,"loading");if(t)return n.intermediateTransitionTo(t),!1}let s=Nd(e,"loading");return s?(n.intermediateTransitionTo(s),!1):t.pivotHandler!==e})}};function Nd(e,t){let n=Io(e),{routeName:r,fullRouteName:i,_router:s}=e,o=`${i}_${t}`;return Dd(n,s,`${r}_${t}`,o)?o:""}function Fd(e,t){let n=Io(e),{routeName:r,fullRouteName:i,_router:s}=e,o="application"===i?t:`${i}.${t}`;return Dd(n,s,"application"===r?t:`${r}.${t}`,o)?o:""}function Dd(e,t,n,r){let i=t.hasRoute(r),s=e.factoryFor(`template:${n}`)||e.factoryFor(`route:${n}`);return i&&s}function zd(e,t,n,r){if(!e){if(t)return;throw new Error(`Can't trigger action '${n}' because your app hasn't finished transitioning into its first route. To trigger an action on destination routes during a transition, you can call \`.send()\` on the \`Transition\` object passed to the \`model/beforeModel/afterModel\` hooks.`)}let i,s,o,a=!1;for(let c=e.length-1;c>=0;c--)if(i=e[c],s=i.route,o=s&&s.actions&&s.actions[n],o){if(!0!==o.apply(s,r))return void("error"===n&&s._router._markErrorAsHandled(r[0]));a=!0}let l=Od[n];if(l)l.call(this,e,...r);else if(!a&&!t)throw new Error(`Nothing handled the action '${n}'. If you did handle the action, this error can be caused by returning true from an action handler in a controller, causing the action to bubble.`)}function jd(e,t,n){let r=e._routerMicrolib.applyIntent(t,n),{routeInfos:i,params:s}=r;for(let o of i)o.isResolved?s[o.name]=o.params:s[o.name]=o.serialize(o.context);return r}function Ud(e){let t=e._routerMicrolib.currentRouteInfos;if(0===t.length)return;let n=Md._routePath(t),r=t[t.length-1].name,i=e.location.getURL();gr(e,"currentPath",n),gr(e,"currentRouteName",r),gr(e,"currentURL",i)}function Bd(e,t){let n=new ud(t,t._routerMicrolib,e[Th]);t.currentState||t.set("currentState",n),t.set("targetState",n),e.promise=e.catch(e=>{if(!t._isErrorHandled(e))throw e;t._clearHandledError(e)},"Transition Error")}function $d(e,t,n,r){let i=e._queryParamsFor(t);for(let s in n)Object.prototype.hasOwnProperty.call(n,s)&&r(s,n[s],i.map[s])}function qd(e){return void 0!==e.hash?e.hash.substring(0):""}Md.reopen({didTransition:function(){Ud(this),this._cancelSlowTransitionTimer(),this.notifyPropertyChange("url"),this.set("currentState",this.targetState)},willTransition:function(){},rootURL:"/",location:"hash",url:Yn(function(){let e=ur(this,"location");if("string"!=typeof e)return e.getURL()})});var Vd=class extends Ul{_hashchangeHandler;_location;init(){this.location=this._location??window.location,this._hashchangeHandler=void 0}getHash(){return qd(this.location)}getURL(){let e=this.getHash().substring(1),t=e;return"/"!==t[0]&&(t="/",e&&(t+=`#${e}`)),t}setURL(e){this.location.hash=e,this.lastSetURL=e}replaceURL(e){this.location.replace(`#${e}`),this.lastSetURL=e}lastSetURL=null;onUpdateURL(e){this._removeEventListener(),this._hashchangeHandler=xs(this,function(){let t=this.getURL();this.lastSetURL!==t&&(this.lastSetURL=null,e(t))}),window.addEventListener("hashchange",this._hashchangeHandler)}formatURL(e){return`#${e}`}willDestroy(){this._removeEventListener()}_removeEventListener(){this._hashchangeHandler&&window.removeEventListener("hashchange",this._hashchangeHandler)}};function Wd(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){let t,n;return t=16*Math.random()|0,n="x"===e?t:3&t|8,n.toString(16)})}var Hd=class extends Ul{history;_popstateHandler;rootURL="/";getHash(){return qd(this.location)}init(){this._super(...arguments);let e=document.querySelector("base"),t="";null!==e&&e.hasAttribute("href")&&(t=e.getAttribute("href")??""),this.baseURL=t,this.location=this.location??window.location,this._popstateHandler=void 0}initState(){let e=this.history??window.history;this.history=e;let{state:t}=e,n=this.formatURL(this.getURL());t&&t.path===n||this.replaceState(n)}getURL(){let{location:e,rootURL:t,baseURL:n}=this,r=e.pathname;t=t.replace(/\/$/,""),n=n.replace(/\/$/,"");let i=r.replace(new RegExp(`^${n}(?=/|$)`),"").replace(new RegExp(`^${t}(?=/|$)`),"").replace(/\/\//g,"/");return i+=(e.search||"")+this.getHash(),i}setURL(e){let{state:t}=this.history;e=this.formatURL(e),t&&t.path===e||this.pushState(e)}replaceURL(e){let{state:t}=this.history;e=this.formatURL(e),t&&t.path===e||this.replaceState(e)}pushState(e){let t={path:e,uuid:Wd()};this.history.pushState(t,"",e)}replaceState(e){let t={path:e,uuid:Wd()};this.history.replaceState(t,"",e)}onUpdateURL(e){this._removeEventListener(),this._popstateHandler=()=>{e(this.getURL())},window.addEventListener("popstate",this._popstateHandler)}formatURL(e){let{rootURL:t,baseURL:n}=this;return""!==e?(t=t.replace(/\/$/,""),n=n.replace(/\/$/,"")):"/"===n[0]&&"/"===t[0]&&(n=n.replace(/\/$/,"")),n+t+e}willDestroy(){this._removeEventListener()}_removeEventListener(){this._popstateHandler&&window.removeEventListener("popstate",this._popstateHandler)}},Gd=class extends Ul{updateCallback;initState(){this._super(...arguments);let{rootURL:e}=this}getURL(){let{path:e,rootURL:t}=this;return t=t.replace(/\/$/,""),e.replace(new RegExp(`^${t}(?=/|$)`),"")}setURL(e){this.path=e}onUpdateURL(e){this.updateCallback=e}handleURL(e){this.path=e,this.updateCallback&&this.updateCallback(e)}formatURL(e){let{rootURL:t}=this;return""!==e&&(t=t.replace(/\/$/,"")),t+e}};function Kd(e,t){return(e,...n)=>{let r=function(e,t){let n=[];function r(e){n.push(e)}for(let i of t)Nn(i,r);return n}(0,[e,...n]);return Yn(...r,function(){let e=r.length-1;for(let n=0;ne),Kd(0,e=>!e);var Yd=/[ _]/g,Xd=new sr(1e3,e=>{return(t=e,rp.get(t)).replace(Yd,"-");var t}),Jd=/^(-|_)+(.)?/,Qd=/(.)(-|_|\.|\s)+(.)?/g,ep=/(^|\/|\.)([a-z])/g,tp=new sr(1e3,e=>{let t=(e,t,n)=>n?`_${n.toUpperCase()}`:"",n=(e,t,n,r)=>t+(r?r.toUpperCase():""),r=e.split("/");for(let i=0;ie.toUpperCase())}),np=/([a-z\d])([A-Z])/g,rp=new sr(1e3,e=>e.replace(np,"$1_$2").toLowerCase());function ip(e){return Xd.get(e)}function sp(e){return Object.hasOwnProperty.call(e.since,"enabled")||O._ALL_DEPRECATIONS_ENABLED}var op=parseFloat(O._OVERRIDE_DEPRECATION_VERSION??"7.2.0");function ap(e){return function(e,t=op){let n=e.replace(/(\.0+)/g,"");return t>=parseFloat(n)}(e.until)}function lp(e){return{options:e,test:!sp(e),isEnabled:sp(e)||ap(e),isRemoved:ap(e)}}var cp={DEPRECATE_IMPORT_EMBER:e=>lp({id:`deprecate-import-${ip(e).toLowerCase()}-from-ember`,for:"ember-source",since:{available:"5.10.0",enabled:"6.5.0"},until:"7.0.0",url:`https://deprecations.emberjs.com/id/import-${ip(e).toLowerCase()}-from-ember`}),DEPRECATE_IMPORT_INJECT:lp({for:"ember-source",id:"importing-inject-from-ember-service",since:{available:"6.2.0",enabled:"6.3.0"},until:"7.0.0",url:"https://deprecations.emberjs.com/id/importing-inject-from-ember-service"})},up=a({default:()=>pp,inject:()=>hp,service:()=>dp});function hp(...e){return function(e,t){const{options:n}=t;if(t.isRemoved)throw new Error(`The API deprecated by ${n.id} was removed in ember-source ${n.until}. The message was: Importing \`inject\` from \`@ember/service\` is deprecated. Please import \`service\` instead.. Please see ${n.url} for more details.`)}(0,cp.DEPRECATE_IMPORT_INJECT),$r("service",...e)}function dp(...e){return $r("service",...e)}var pp=class extends Yc{static isServiceFactory=!0},fp=Symbol("ROUTER");function gp(e,t){return"/"===t?e:e.substring(t.length)}var mp=class extends(pp.extend(vc)){[fp];get _router(){let e=this[fp];if(void 0!==e)return e;let t=Ur(this).lookup("router:main");return this[fp]=t}willDestroy(){super.willDestroy(),this[fp]=void 0}transitionTo(...e){if(Vh(e[0]))return this._router._doURLTransition("transitionTo",e[0]);let{routeName:t,models:n,queryParams:r}=jh(e);return this._router._doTransition(t,n,r,!0)}replaceWith(...e){return this.transitionTo(...e).method("replace")}urlFor(e,...t){return this._router.setupRouter(),this._router.generate(e,...t)}isActive(...e){let{routeName:t,models:n,queryParams:r}=jh(e);this._router.setupRouter();let i=this._router._routerMicrolib;if(Ne(Ke(this._router,"currentURL")),!i.isActiveIntent(t,n))return!1;if(Object.keys(r).length>0){let e=t;r=Object.assign({},r),this._router._prepareQueryParams(e,n,r,!0);let s=Object.assign({},i.state.queryParams);return this._router._prepareQueryParams(e,n,s,!0),Wh(r,s)}return!0}recognize(e){this._router.setupRouter();let t=gp(e,this.rootURL);return this._router._routerMicrolib.recognize(t)}recognizeAndLoad(e){this._router.setupRouter();let t=gp(e,this.rootURL);return this._router._routerMicrolib.recognizeAndLoad(t)}refresh(e){if(!e)return this._router._routerMicrolib.refresh();let t=Ur(this).lookup(`route:${e}`);return this._router._routerMicrolib.refresh(t)}static{Gh(this.prototype,"currentRouteName",[Zd("_router.currentRouteName")])}#o=void Zh(this,"currentRouteName");static{Gh(this.prototype,"currentURL",[Zd("_router.currentURL")])}#a=void Zh(this,"currentURL");static{Gh(this.prototype,"location",[Zd("_router.location")])}#l=void Zh(this,"location");static{Gh(this.prototype,"rootURL",[Zd("_router.rootURL")])}#c=void Zh(this,"rootURL");static{Gh(this.prototype,"currentRoute",[Zd("_router.currentRoute")])}#u=void Zh(this,"currentRoute")},yp=class extends pp{[fp];get router(){let e=this[fp];if(void 0!==e)return e;let t=Ur(this).lookup("router:main");return t.setupRouter(),this[fp]=t}hasRoute(e){return this.router.hasRoute(e)}transitionTo(e,t,n,r){let i=this.router._doTransition(e,t,n);return r&&i.method("replace"),i}normalizeQueryParams(e,t,n){this.router._prepareQueryParams(e,t,n)}_generateURL(e,t,n){let r={};return n&&(Object.assign(r,n),this.normalizeQueryParams(e,t,r)),this.router.generate(e,...t,{queryParams:r})}generateURL(e,t,n){if(this.router._initialTransitionStarted)return this._generateURL(e,t,n);try{return this._generateURL(e,t,n)}catch(r){return}}isActiveForRoute(e,t,n,r){let i=this.router._routerMicrolib.recognizer.handlersFor(n),s=i[i.length-1].handler,o=function(e,t){let n=0;for(let r=0;ro&&(n=s),r.isActiveIntent(n,e,t)}};yp.reopen({targetState:Zd("router.targetState"),currentState:Zd("router.currentState"),currentRouteName:Zd("router.currentRouteName"),currentPath:Zd("router.currentPath")});var vp=class{cache;constructor(){this.cache=new Map}has(e){return this.cache.has(e)}stash(e,t,n){let r=this.cache.get(e);void 0===r&&(r=new Map,this.cache.set(e,r)),r.set(t,n)}lookup(e,t,n){if(!this.has(e))return n;let r=this.cache.get(e);return r.has(t)?r.get(t):n}},bp=Mo?self:null,wp=Mo?self.location:null,_p=Mo?self.history:null,xp=Mo?self.navigator.userAgent:"Lynx (textmode)",Cp=!(!Mo||"object"!=typeof chrome||"object"==typeof opera),Sp=!!Mo&&/Firefox|FxiOS/.test(xp),kp=Object.freeze(Object.defineProperty({__proto__:null,hasDOM:Mo,history:_p,isChrome:Cp,isFirefox:Sp,location:wp,userAgent:xp,window:bp},Symbol.toStringTag,{value:"Module"})),Ep=-536870913;function Rp(e){return(e|=0)<0?function(e){return e&Ep}(e):function(e){return~e}(e)}function Tp(e){return(e|=0)>Ep?function(e){return~e}(e):function(e){return 536870912|e}(e)}function Lp(e){if("number"==typeof e)return e;{let t=e.errors[0];throw new Error(`Compile Error: ${t.problem} @ ${t.span.start}..${t.span.end}`)}}function Ip(e){if("error"===e.result)throw new Error(`Compile Error: ${e.problem} @ ${e.span.start}..${e.span.end}`);return e}[1,-1].forEach(e=>Tp(Rp(e)));var Pp=new WeakMap,Mp=Reflect.getPrototypeOf;function Ap(e,t){return Pp.set(t,e),t}function Op(e){let t=e;for(;null!==t;){let e=Pp.get(t);if(void 0!==e)return e;t=Mp(t)}}var Np=Object.assign;function Fp(e){return Object.values(e)}function Dp(e){return Object.entries(e)}function zp(e){return Object.keys(e)}var jp=Object.freeze([]);function Up(){return jp}var Bp=Up(),$p=Up();function qp(e){return e===jp}function*Vp(e){for(let t=e.length-1;t>=0;t--)yield e[t]}function*Wp(e){let t=0;for(const n of e)yield[t++,n]}function*Hp(e,t){for(let n=0;n255)throw new Error(`Opcode type over 8-bits. Got ${e}.`);let r=e|t|arguments.length-2<<8;this.buffer.push(r);for(const i of n)this.buffer.push(i);this.size=this.buffer.length}patch(e,t){if(-1!==this.buffer[e+1])throw new Error("Trying to patch operand in populated slot instead of a reserved slot.");this.buffer[e+1]=t}},Yp=32,Xp=31;function Jp(e){return t=>{if(!function(e){return Array.isArray(e)&&2===e.length}(t))return!1;let n=t[0];return n===Xp||n===Yp||n===e}}var Qp=Jp(39),ef=Jp(38),tf=Jp(37),nf=Jp(35);function rf(e,t,n,r){let{symbols:{upvars:i}}=n,s=i[e[1]],o=t?.lookupBuiltInHelper?.(s)??null;return r.helper(o,s)}var sf=1004,of=1005,af=1010,lf=1e3,cf=1001,uf=1002;function hf(e){return{type:1,value:e}}function df(e){return{type:5,value:e}}function pf(e){return{type:7,value:e}}function ff(e){return{type:8,value:e}}var gf=class{labels=tt();targets=[];label(e,t){this.labels[e]=t}target(e,t){this.targets.push({at:e,target:t})}patch(e){let{targets:t,labels:n}=this;for(const{at:r,target:i}of t){let t=n[i]-r;Kp(e.getbyaddr(r)),e.setbyaddr(r,t)}}};function mf(e,t,n,r){let{program:{constants:i},resolver:s}=t;if(function(e){return e<1e3}(r[0])){let[t,...n]=r;e.push(i,t,...n)}else switch(r[0]){case lf:return e.label(r[1]);case cf:return e.startLabels();case uf:return e.stopLabels();case sf:return function(e,t,n,[,r,i]){if(Qp(r),r[0]===Yp){let{scopeValues:e,owner:s,symbols:{lexical:o}}=n,a=e[r[1]];i(t.component(a,s,!1,o?.at(r[1])))}else{let{symbols:{upvars:s},owner:o}=n,a=s[r[1]],l=e?.lookupComponent?.(a,o)??null;i(t.resolvedComponent(l,a))}}(s,i,n,r);case 1003:return function(e,t,n,[,r,i]){ef(r);let s=r[0];if(s===Yp){let{scopeValues:e,symbols:{lexical:s}}=n,o=e[r[1]];i(t.modifier(o,s?.at(r[1])??void 0))}else if(s===Xp){let{symbols:{upvars:s}}=n,o=s[r[1]],a=e?.lookupBuiltInModifier?.(o)??null;i(t.modifier(a,o))}else{let{symbols:{upvars:s},owner:o}=n,a=s[r[1]],l=e?.lookupModifier?.(a,o)??null;i(t.modifier(l))}}(s,i,n,r);case of:return function(e,t,n,[,r,i]){tf(r);let s=r[0];if(s===Yp){let{scopeValues:e}=n,s=e[r[1]];i(t.helper(s))}else if(s===Xp)i(rf(r,e,n,t));else{let{symbols:{upvars:s},owner:o}=n,a=s[r[1]],l=e?.lookupHelper?.(a,o)??null;i(t.helper(l,a))}}(s,i,n,r);case 1007:return function(e,t,n,[,r,{ifComponent:i,ifHelper:s}]){nf(r);let o=r[0];if(o===Yp){let{scopeValues:e,owner:o,symbols:{lexical:a}}=n,l=e[r[1]],c=t.component(l,o,!0,a?.at(r[1]));if(null!==c)return void i(c);s(t.helper(l,null,!0))}else if(o===Xp)s(rf(r,e,n,t));else{let{symbols:{upvars:o},owner:a}=n,l=o[r[1]],c=e?.lookupComponent?.(l,a)??null;if(null!==c)i(t.resolvedComponent(c,l));else{let n=e?.lookupHelper?.(l,a)??null;s(t.helper(n,l))}}}(s,i,n,r);case 1008:return function(e,t,n,[,r,{ifComponent:i,ifHelper:s,ifValue:o}]){nf(r);let a=r[0];if(a===Yp){let{scopeValues:e,owner:a,symbols:{lexical:l}}=n,c=e[r[1]];if("function"!=typeof c&&("object"!=typeof c||null===c))return void o(t.value(c));let u=t.component(c,a,!0,l?.at(r[1]));if(null!==u)return void i(u);let h=t.helper(c,null,!0);if(null!==h)return void s(h);o(t.value(c))}else if(a===Xp)s(rf(r,e,n,t));else{let{symbols:{upvars:o},owner:a}=n,l=o[r[1]],c=e?.lookupComponent?.(l,a)??null;if(null!==c)return void i(t.resolvedComponent(c,l));let u=e?.lookupHelper?.(l,a)??null;null!==u&&s(t.helper(u,l))}}(s,i,n,r);case af:{let[,e,t]=r;t(n.symbols.upvars[e],n.moduleName);break}case 1011:{let[,e,t]=r,s=n.scopeValues[e];t(i.value(s));break}default:throw new Error(`Unexpected high level opcode ${r[0]}`)}}var yf=class{labelsStack=new it;encoder=new Zp([]);errors=[];handle;constructor(e,t,n){this.heap=e,this.meta=t,this.stdlib=n,this.handle=e.malloc()}error(e){this.encoder.encode(30,0),this.errors.push(e)}commit(e){let t=this.handle;return this.heap.pushMachine(5),this.heap.finishMalloc(t,e),Je(this.errors)?{errors:this.errors,handle:t}:t}push(e,t,...n){let{heap:r}=this,i=t|((s=t)>=0&&s<=15?1024:0)|n.length<<8;var s;r.pushRaw(i);for(let o=0;o=-536870912?Rp(n):function(e){return{type:6,value:e}}(n)),e(30,n)}function kf(e,t,n,r){e(0),Af(e,n,r,!1),e(16,t),e(1),e(36,8)}function Ef(e,t,n,r){e(0),Af(e,t,n,!1),e(33,2,1),e(107),r?(e(36,8),r(),e(1),e(34,1)):(e(1),e(34,1),e(36,8))}function Rf(e,t,n,r,i){e(0),Af(e,r,i,!1),e(86),xf(e,n),e(77,t,{type:2,value:void 0}),e(1),e(36,8)}function Tf(e,t,n){Af(e,n,null,!0),e(23,t),e(24),e(61),e(64),e(40),e(1)}function Lf(e,t){!function(e,t){null!==t?e(63,pf({parameters:t})):Sf(e,null)}(e,t&&t[1]),e(62),Mf(e,t)}function If(e,t){e(0),Mf(e,t),e(61),e(2),e(1)}function Pf(e,t,n){let r=t[1],i=r.length,s=Math.min(n,i);if(0!==s){if(e(0),s){e(39);for(let t=0;t{for(let n of t)xf(e,n);e(27,t.length)}),wf.add(28,(e,[,t,n,r])=>{tf(t)?e(of,t,t=>{kf(e,t,n,r)}):(xf(e,t),Ef(e,n,r))}),wf.add(50,(e,[,t,n,r,i])=>{Rf(e,n,t,r,i)}),wf.add(30,(e,[,t,n])=>{e(21,t),_f(e,n)}),wf.add(Yp,(e,[,t,n])=>{e(1011,t,t=>{e(29,t),_f(e,n)})}),wf.add(Xp,(e,t)=>{e(af,t[1],()=>{e(of,t,t=>{kf(e,t,null,null)})})}),wf.add(37,(e,t)=>{e(af,t[1],()=>{e(of,t,t=>{kf(e,t,null,null)})})}),wf.add(27,e=>Cf(e,void 0)),wf.add(48,(e,[,t])=>{xf(e,t),e(25)}),wf.add(49,(e,[,t])=>{xf(e,t),e(24),e(61),e(26)}),wf.add(52,(e,[,t,n,r])=>{xf(e,r),xf(e,n),xf(e,t),e(109)}),wf.add(51,(e,[,t])=>{xf(e,t),e(110)}),wf.add(53,(e,[,t])=>{xf(e,t),e(111)}),wf.add(54,(e,[,t])=>{e(0),Af(e,t,null,!1),e(112),e(1),e(36,8)});var Ff=class e{names;constructor(e){this.blocks=e,this.names=e?Object.keys(e):[]}get(e){return this.blocks&&this.blocks[e]||null}has(e){let{blocks:t}=this;return null!==t&&e in t}with(t,n){let{blocks:r}=this;return new e(r?Np({},r,{[t]:n}):{[t]:n})}get hasAny(){return null!==this.blocks}},Df=new Ff(null);function zf(e){if(null===e)return Df;let t=tt(),[n,r]=e;for(const[i,s]of Wp(n))t[s]=Ye(r[i]);return new Ff(t)}function jf(e,t,n){let r=[],i=0;n(function(e,t){r.push({match:e,callback:t,label:"CLAUSE"+i++})}),e(69,1),t(),e(cf);for(let s of r.slice(0,-1))e(67,hf(s.label),s.match);for(let s=r.length-1;s>=0;s--){let t=Ye(r[s]);e(lf,t.label),e(34,1),t.callback(),0!==s&&e(4,hf("END"))}e(lf,"END"),e(uf),e(70)}function Uf(e,t,n){e(cf),e(0),e(6,hf("ENDINITIAL")),e(69,t()),n(),e(lf,"FINALLY"),e(70),e(5),e(lf,"ENDINITIAL"),e(1),e(uf)}function Bf(e,t,n,r){return Uf(e,t,()=>{e(66,hf("ELSE")),n(),e(4,hf("FINALLY")),e(lf,"ELSE"),void 0!==r&&r()})}var $f="&attrs";function qf(e,t,n,r,i,s){let{compilable:o,capabilities:a,handle:l}=t,c=n?[n,[]]:null,u=zf(s);o?(e(78,l),function(e,{capabilities:t,layout:n,elementBlock:r,positional:i,named:s,blocks:o}){let{symbolTable:a}=n;if(vu(t,pu.prepareArgs))return void Wf(e,{capabilities:t,elementBlock:r,positional:i,named:s,atNames:!0,blocks:o,layout:n});e(36,4),e(33,3,1),e(35,4),e(0);let{symbols:l}=a,c=[],u=[],h=[],d=o.names;if(null!==r){let t=l.indexOf($f);-1!==t&&(Lf(e,r),c.push(t))}for(const p of d){let t=l.indexOf(`&${p}`);-1!==t&&(Lf(e,o.get(p)),c.push(t))}if(vu(t,pu.createArgs)){let t=Of(e,i)<<4;t|=8;let n=Bp;if(null!==s){n=s[0];let t=s[1];for(let r=0;r0?1:0),e(19,0);for(const p of Vp(u))-1===p?e(34,1):e(19,p+1);null!==i&&e(34,i.length);for(const p of Vp(c))e(20,p+1);e(28,ff(n)),e(61),e(2),e(100,4),e(1),e(40),vu(t,pu.dynamicScope)&&e(60),e(98),e(35,4)}(e,{capabilities:a,layout:o,elementBlock:c,positional:r,named:i,blocks:u})):(e(78,l),Wf(e,{capabilities:a,elementBlock:c,positional:r,named:i,atNames:!0,blocks:u}))}function Vf(e,t,n,r,i,s,o,a){let l=n?[n,[]]:null,c=zf(s);Uf(e,()=>(xf(e,t),e(33,3,0),2),()=>{e(66,hf("ELSE")),a?e(81):e(80,{type:2,value:void 0}),e(79),Wf(e,{capabilities:!0,elementBlock:l,positional:r,named:i,atNames:o,blocks:c}),e(lf,"ELSE")})}function Wf(e,{capabilities:t,elementBlock:n,positional:r,named:i,atNames:s,blocks:o,layout:a}){let l=Boolean(o),c=!0===t||vu(t,pu.prepareArgs)||0!==i?.[0].length,u=o.with("attrs",n);e(36,4),e(33,3,1),e(35,4),e(0),function(e,t,n,r,i){let s=r.names;for(const l of s)Lf(e,r.get(l));let o=Of(e,t)<<4;i&&(o|=8),r.hasAny&&(o|=7);let a=jp;if(n){a=n[0];let t=n[1];for(let n=0;n{a?(e(63,pf(a.symbolTable)),e(28,ff(a)),e(61)):e(92,4),e(95,4)}),e(35,4)}function Hf(e,t,n,r,i=null){e(97,4),e(59),e(87,0|t),i&&i(),e(88,4),e(90,4),e(38,4),e(19,0),r&&e(17,4),n&&e(18,4),e(34,1),e(96,4),e(100,4),e(1),e(40),e(60),e(98)}var Gf=new bf,Kf=["class","id","value","name","type","style","href"],Zf=["div","span","p","a"];function Yf(e){return"string"==typeof e?e:Zf[e]}function Xf(e){return"string"==typeof e?e:Kf[e]}function Jf(e){return null===e?null:[e[0].map(e=>`@${e}`),e[1]]}Gf.add(3,(e,t)=>e(42,t[1])),Gf.add(13,e=>e(55)),Gf.add(12,e=>e(54)),Gf.add(4,(e,[,t,n,r])=>{ef(t)?e(1003,t,t=>{e(0),Af(e,n,r,!1),e(57,t),e(1)}):(xf(e,t),e(0),Af(e,n,r,!1),e(33,2,1),e(108),e(1))}),Gf.add(14,(e,[,t,n,r])=>{e(51,Xf(t),n,r??null)}),Gf.add(24,(e,[,t,n,r])=>{e(105,Xf(t),n,r??null)}),Gf.add(15,(e,[,t,n,r])=>{xf(e,n),e(52,Xf(t),!1,r??null)}),Gf.add(22,(e,[,t,n,r])=>{xf(e,n),e(52,Xf(t),!0,r??null)}),Gf.add(16,(e,[,t,n,r])=>{xf(e,n),e(53,Xf(t),!1,r??null)}),Gf.add(23,(e,[,t,n,r])=>{xf(e,n),e(53,Xf(t),!0,r??null)}),Gf.add(10,(e,[,t])=>{e(48,Yf(t))}),Gf.add(11,(e,[,t])=>{e(89),e(48,Yf(t))}),Gf.add(8,(e,[,t,n,r,i])=>{Qp(t)?e(sf,t,t=>{qf(e,t,n,null,r,i)}):Vf(e,t,n,null,r,i,!0,!0)}),Gf.add(18,(e,[,t,n])=>Tf(e,t,n)),Gf.add(17,(e,[,t])=>Tf(e,t,null)),Gf.add(26,(e,[,t,n,r])=>{e(103,function(e,t,n){return{type:3,value:{locals:e,upvars:t,lexical:n}}}(t,n,r))}),Gf.add(1,(e,[,t])=>{if(Array.isArray(t))if(nf(t))e(1008,t,{ifComponent(t){qf(e,t,null,null,null,null)},ifHelper(t){e(0),kf(e,t,null,null),e(3,df("cautious-non-dynamic-append")),e(1)},ifValue(t){e(0),e(29,t),e(3,df("cautious-non-dynamic-append")),e(1)}});else if(28===t[0]){let[,n,r,i]=t;nf(n)?e(1007,n,{ifComponent(t){qf(e,t,null,r,Jf(i),null)},ifHelper(t){e(0),kf(e,t,r,i),e(3,df("cautious-non-dynamic-append")),e(1)}}):jf(e,()=>{xf(e,n),e(106)},t=>{t(0,()=>{e(68),e(81),e(79),Wf(e,{capabilities:!0,elementBlock:null,positional:r,named:i,atNames:!1,blocks:zf(null)})}),t(1,()=>{Ef(e,r,i,()=>{e(3,df("cautious-non-dynamic-append"))})})})}else e(0),xf(e,t),e(3,df("cautious-append")),e(1);else e(41,null==t?"":String(t))}),Gf.add(2,(e,[,t])=>{Array.isArray(t)?(e(0),xf(e,t),e(3,df("trusting-append")),e(1)):e(41,null==t?"":String(t))}),Gf.add(6,(e,[,t,n,r,i])=>{Qp(t)?e(sf,t,t=>{qf(e,t,null,n,Jf(r),i)}):Vf(e,t,null,n,r,i,!1,!1)}),Gf.add(40,(e,[,t,n,r,i])=>{Bf(e,()=>(xf(e,n),void 0===i?Cf(e,void 0):xf(e,i),xf(e,r),e(33,3,0),4),()=>{e(50),If(e,t),e(56)})}),Gf.add(41,(e,[,t,n,r])=>Bf(e,()=>(xf(e,t),e(71),1),()=>{If(e,n)},r?()=>{If(e,r)}:void 0)),Gf.add(42,(e,[,t,n,r,i])=>Uf(e,()=>(n?xf(e,n):Cf(e,null),xf(e,t),2),()=>{e(72,hf("BODY"),hf("ELSE")),e(0),e(33,2,1),e(6,hf("ITER")),e(lf,"ITER"),e(74,hf("BREAK")),e(lf,"BODY"),Pf(e,r,2),e(34,2),e(4,hf("FINALLY")),e(lf,"BREAK"),e(1),e(73),e(4,hf("FINALLY")),e(lf,"ELSE"),i&&If(e,i)})),Gf.add(44,(e,[,t,n])=>{Pf(e,n,Of(e,t))}),Gf.add(45,(e,[,t,n])=>{if(t){let[r,i]=t;Of(e,i),function(e,t,n){e(59),e(58,t),n(),e(60)}(e,r,()=>{If(e,n)})}else If(e,n)}),Gf.add(46,(e,[,t,n,r,i])=>{Qp(t)?e(sf,t,t=>{qf(e,t,null,n,Jf(r),i)}):Vf(e,t,null,n,r,i,!1,!1)});var Qf=class{compiled=new WeakMap;constructor(e,t,n,r="plain block"){this.statements=e,this.meta=t,this.symbolTable=n,this.moduleName=r}compile(e){return function(e,t){if(e.compiled.has(t))return e.compiled.get(t);e.compiled.set(t,-1);let{statements:n,meta:r}=e,i=function(e,t,n){let r=Gf,i=vf(n,t),{encoder:s,evaluation:o}=i;function a(...e){mf(s,o,t,e)}for(const l of e)r.compile(a,l);return i.encoder.commit(t.size)}(n,r,t);return e.compiled.set(t,i),i}(this,e)}},eg=class{symbolTable;compiled=null;attrsBlockNumber;meta;constructor(e,t){this.layout=e,this.moduleName=t;let{block:n}=e,[,r]=n;r=r.slice();let i=r.indexOf($f);this.attrsBlockNumber=-1===i?r.push($f):i+1,this.symbolTable={symbols:r},this.meta=Nf(e)}compile(e){if(null!==this.compiled)return this.compiled;let t=Nf(this.layout),n=vf(e,t),{encoder:r,evaluation:i}=n;var s,o,a;s=function(...e){mf(r,i,t,e)},o=this.layout,a=this.attrsBlockNumber,s(cf),function(e,t,n){e(36,5),n(),e(35,5)}(s,0,()=>{s(91,4),s(31),s(33,3,0)}),s(66,hf("BODY")),s(36,5),s(89),s(49),s(99,4),Tf(s,a,null),s(54),s(lf,"BODY"),If(s,[o.block[0],[]]),s(36,5),s(66,hf("END")),s(55),s(lf,"END"),s(35,5),s(uf);let l=n.encoder.commit(t.size);return"number"!=typeof l||(this.compiled=l),l}},tg=0,ng={cacheHit:0,cacheMiss:0};function rg({id:e,moduleName:t,block:n,scope:r,isStrictMode:i}){let s,o=e||"client-"+tg++,a=null,l=new WeakMap,c=e=>{if(void 0===s&&(s=JSON.parse(n)),void 0===e)return null===a?(ng.cacheMiss++,a=new ig({id:o,block:s,moduleName:t,owner:null,scope:r,isStrictMode:i})):ng.cacheHit++,a;let c=l.get(e);return void 0===c?(ng.cacheMiss++,c=new ig({id:o,block:s,moduleName:t,owner:e,scope:r,isStrictMode:i}),l.set(e,c)):ng.cacheHit++,c};return c.__id=o,c.__meta={moduleName:t},c}var ig=class{result="ok";layout=null;wrappedLayout=null;constructor(e){this.parsedLayout=e}get moduleName(){return this.parsedLayout.moduleName}get id(){return this.parsedLayout.id}get referrer(){return{moduleName:this.parsedLayout.moduleName,owner:this.parsedLayout.owner}}asLayout(){return this.layout?this.layout:this.layout=function(e,t){let[n,r]=e.block;return new Qf(n,Nf(e),{symbols:r},t)}(Np({},this.parsedLayout),this.moduleName)}asWrappedLayout(){return this.wrappedLayout?this.wrappedLayout:this.wrappedLayout=new eg(Np({},this.parsedLayout),this.moduleName)}},sg=class{offset=0;constructor(e){this.heap=e}get size(){return 1+((768&this.heap.getbyaddr(this.offset))>>8)}get isMachine(){return 1024&this.heap.getbyaddr(this.offset)?1:0}get type(){return 255&this.heap.getbyaddr(this.offset)}get op1(){return this.heap.getbyaddr(this.offset+1)}get op2(){return this.heap.getbyaddr(this.offset+2)}get op3(){return this.heap.getbyaddr(this.offset+3)}},og=1048576,ag=class{offset=0;heap;handleTable;handleState;constructor(){this.heap=new Int32Array(og),this.handleTable=[],this.handleState=[]}entries(){return this.offset}pushRaw(e){this.sizeCheck(),this.heap[this.offset++]=e}pushOp(e){this.pushRaw(e)}pushMachine(e){this.pushRaw(1024|e)}sizeCheck(){let{heap:e}=this;if(this.offset===this.heap.length){let t=new Int32Array(e.length+og);t.set(e,0),this.heap=t}}getbyaddr(e){return this.heap[e]}setbyaddr(e,t){this.heap[e]=t}malloc(){return this.handleTable.push(this.offset),this.handleTable.length-1}finishMalloc(e){}size(){return this.offset}getaddr(e){return this.handleTable[e]}sizeof(e){return this.handleTable,-1}free(e){this.handleState[e]=1}compact(){let e=0,{handleTable:t,handleState:n,heap:r}=this;for(let i=0;i[e,t]));helperDefinitionCache=new WeakMap;modifierDefinitionCache=new WeakMap;componentDefinitionCache=new WeakMap;value(e){let t=this.indexMap,n=t.get(e);return void 0===n&&(n=this.values.push(e)-1,t.set(e,n)),n}array(e){if(0===e.length)return dg;let t=new Array(e.length);for(let n=0;ne}helper(e,t=null,n){let r=this.helperDefinitionCache.get(e);if(void 0===r){let t=Ou(e);if(null===t)return this.helperDefinitionCache.set(e,null),null;let n="function"==typeof t?t:t.getHelper(e);r=this.value(n),this.helperDefinitionCache.set(e,r),this.helperDefinitionCount++}return r}modifier(e,t=null,n){let r=this.modifierDefinitionCache.get(e);if(void 0===r){let n=Pu(e);if(null===n)return this.modifierDefinitionCache.set(e,null),null;let i={resolvedName:t,manager:n,state:e};r=this.value(i),this.modifierDefinitionCache.set(e,r),this.modifierDefinitionCount++}return r}component(e,t,n,r){let i=this.componentDefinitionCache.get(e);if(void 0===i){let n=Fu(e);if(null===n)return this.componentDefinitionCache.set(e,null),null;let s,o=gu(n.getCapabilities(e)),a=Op(e),l=null;s=yu(0,o,pu.dynamicLayout)?a?.(t):a?.(t)??this.defaultTemplate,void 0!==s&&(s=Ip(s),l=yu(0,o,pu.wrapped)?s.asWrappedLayout():s.asLayout()),i={resolvedName:null,handle:-1,manager:n,capabilities:o,state:e,compilable:l},i.handle=this.value(i),r&&(i.debugName=r),this.componentDefinitionCache.set(e,i),this.componentDefinitionCount++}return i}resolvedComponent(e,t){let n=this.componentDefinitionCache.get(e);if(void 0===n){let{manager:r,state:i,template:s}=e,o=gu(r.getCapabilities(e)),a=null;yu(0,o,pu.dynamicLayout)||(s=s??this.defaultTemplate),null!==s&&(s=Ip(s),a=yu(0,o,pu.wrapped)?s.asWrappedLayout():s.asLayout()),n={resolvedName:t,handle:-1,manager:r,capabilities:o,state:i,compilable:a},n.handle=this.value(n),this.componentDefinitionCache.set(e,n),this.componentDefinitionCount++}return n}getValue(e){return this.values[e]}getArray(e){let t=this.reifiedArrs,n=t[e];if(void 0===n){let r=this.getValue(e);n=new Array(r.length);for(const[e,t]of Wp(r))n[e]=this.getValue(t);t[e]=n}return n}},fg=class{constructor(e,t){this.element=e,this.nextSibling=t}},gg=class{constructor(e,t,n){this.parentNode=e,this.first=t,this.last=n}parentElement(){return this.parentNode}firstNode(){return this.first}lastNode(){return this.last}};function mg(e,t){let n=e.parentElement(),r=e.firstNode(),i=e.lastNode(),s=r;for(;;){let e=s.nextSibling;if(n.insertBefore(s,t),s===i)return e;s=Xe(e)}}function yg(e){let t=e.parentElement(),n=e.firstNode(),r=e.lastNode(),i=n;for(;;){let e=i.nextSibling;if(t.removeChild(i),i===r)return e;i=Xe(e)}}function vg(e){return bg(e)?"":String(e)}function bg(e){return null==e||"function"!=typeof e.toString}function wg(e){return null!==e&&"object"==typeof e}function _g(e){return wg(e)&&"function"==typeof e.toHTML}function xg(e){return"string"==typeof e}function Cg(e,t){let n,r;if(t in e)r=t,n="prop";else{let i=t.toLowerCase();i in e?(n="prop",r=i):(n="attr",r=t)}return"prop"!==n||"style"!==r.toLowerCase()&&!function(e,t){let n=kg[e.toUpperCase()];return!(!n||!n[t.toLowerCase()])}(e.tagName,r)||(n="attr"),{normalized:r,type:n}}var Sg,kg={INPUT:{form:!0,autocorrect:!0,list:!0},SELECT:{form:!0},OPTION:{form:!0},TEXTAREA:{form:!0},LABEL:{form:!0},FIELDSET:{form:!0},LEGEND:{form:!0},OBJECT:{form:!0},OUTPUT:{form:!0},BUTTON:{form:!0}},Eg="http://www.w3.org/1998/Math/MathML",Rg=["javascript:","vbscript:"],Tg=["A","AREA","BODY","LINK","IMG","IFRAME","BASE","FORM","BUTTON","INPUT"],Lg=["EMBED"],Ig=["IFRAME","OBJECT"],Pg=["href","src","background","action","formaction","xlink:href"],Mg=["src"],Ag=["src","data"];function Og(e,t){return-1!==e.indexOf(t)}function Ng(e,t){return(null===e||Og(Tg,e.toUpperCase()))&&Og(Pg,t)}function Fg(e,t){return null!==e&&Og(Lg,e.toUpperCase())&&Og(Mg,t)}function Dg(e,t){return null!==e&&Og(Ig,e.toUpperCase())&&Og(Ag,t)}function zg(e,t){return Ng(e,t)||Fg(e,t)||Dg(e,t)}function jg(e){return Sg||(Sg=function(){const e=URL;if("object"==typeof e&&null!==e&&"function"==typeof e.parse){let t=e;return e=>{let n=null;return"string"==typeof e&&(n=t.parse(e.replace(/[\t\n\r]/gu,"")).protocol),null===n?":":n}}if("function"==typeof e)return t=>{try{return new e(t).protocol}catch{return":"}};throw new Error('@glimmer/runtime needs a valid "globalThis.URL"')}()),Sg(e)}function Ug(e,t,n){if(null==n)return n;if(_g(n))return n.toHTML();const r=e.tagName;let i=vg(n);if(Ng(r,t)){let e=jg(i);if(Og(Rg,e))return`unsafe:${i}`}if(Dg(r,t)){let e=jg(i);if("data:"===e||Og(Rg,e))return`unsafe:${i}`}return Fg(r,t)?`unsafe:${i}`:i}function Bg(e,t,n){const{tagName:r,namespaceURI:i}=e,s={element:e,name:t,namespace:n};if("http://www.w3.org/2000/svg"===i)return $g(r,t,s);const{type:o,normalized:a}=Cg(e,t);return"attr"===o?$g(r,a,s):function(e,t,n){return zg(e,t)?new Hg(t,n):function(e,t){return("INPUT"===e||"TEXTAREA"===e)&&"value"===t}(e,t)?new Kg(t,n):function(e,t){return"OPTION"===e&&"selected"===t}(e,t)?new Zg(t,n):new Wg(t,n)}(r,a,s)}function $g(e,t,n){return zg(e,t)?new Gg(n):new Vg(n)}var qg=class{constructor(e){this.attribute=e}},Vg=class extends qg{set(e,t,n){const r=Yg(t);if(null!==r){const{name:t,namespace:n}=this.attribute;e.__setAttribute(t,r,n)}}update(e,t){const n=Yg(e),{element:r,name:i}=this.attribute;null===n?r.removeAttribute(i):r.setAttribute(i,n)}},Wg=class extends qg{constructor(e,t){super(t),this.normalizedName=e}value;set(e,t,n){null!=t&&(this.value=t,e.__setProperty(this.normalizedName,t))}update(e,t){const{element:n}=this.attribute;this.value!==e&&(n[this.normalizedName]=this.value=e,null==e&&this.removeAttribute())}removeAttribute(){const{element:e,namespace:t}=this.attribute;t?e.removeAttributeNS(t,this.normalizedName):e.removeAttribute(this.normalizedName)}},Hg=class extends Wg{set(e,t,n){const{element:r,name:i}=this.attribute,s=Ug(r,i,t);super.set(e,s,n)}update(e,t){const{element:n,name:r}=this.attribute,i=Ug(n,r,e);super.update(i,t)}},Gg=class extends Vg{set(e,t,n){const{element:r,name:i}=this.attribute,s=Ug(r,i,t);super.set(e,s,n)}update(e,t){const{element:n,name:r}=this.attribute,i=Ug(n,r,e);super.update(i,t)}},Kg=class extends Wg{set(e,t){const n=vg(t);e.__setProperty("value",n),""===t&&"INPUT"===this.attribute.element.tagName&&e.__setAttribute("value","",null)}update(e){const t=this.attribute.element,n=t.value,r=vg(e);n!==r&&(t.value=r)}},Zg=class extends Wg{set(e,t){null!=t&&!1!==t&&e.__setProperty("selected",!0)}update(e){this.attribute.element.selected=!!e}};function Yg(e){return!1===e||null==e||void 0===e.toString?null:!0===e?"":"function"==typeof e?null:String(e)}var Xg=class{constructor(e){this.node=e}firstNode(){return this.node}},Jg=class{constructor(e){this.node=e}lastNode(){return this.node}},Qg=class{dom;updateOperations;constructing=null;operations=null;env;cursors=new it;modifierStack=new it;blockStack=new it;static forInitialRender(e,t){return new this(e,t.element,t.nextSibling).initialize()}static resume(e,t){let n=new this(e,t.parentElement(),t.reset(e)).initialize();return n.pushBlock(t),n}constructor(e,t,n){this.pushElement(t,n),this.env=e,this.dom=e.getAppendOperations(),this.updateOperations=e.getDOM()}initialize(){return this.pushAppendingBlock(),this}debugBlocks(){return this.blockStack.toArray()}get element(){return this.cursors.current.element}get nextSibling(){return this.cursors.current.nextSibling}get hasBlocks(){return this.blockStack.size>0}block(){return this.blockStack.current}popElement(){this.cursors.pop(),this.cursors.current}pushAppendingBlock(){return this.pushBlock(new em(this.element))}pushResettableBlock(){return this.pushBlock(new nm(this.element))}pushBlockList(e){return this.pushBlock(new rm(this.element,e))}pushBlock(e,t=!1){let n=this.blockStack.current;return null!==n&&(t||n.didAppendBounds(e)),this.__openBlock(),this.blockStack.push(e),e}popBlock(){return this.block().finalize(this),this.__closeBlock(),this.blockStack.pop()}__openBlock(){}__closeBlock(){}openElement(e){let t=this.__openElement(e);return this.constructing=t,t}__openElement(e){return this.dom.createElement(e,this.element)}flushElement(e){let t=this.element,n=this.constructing;this.__flushElement(t,n),this.constructing=null,this.operations=null,this.pushModifiers(e),this.pushElement(n,null),this.didOpenElement(n)}__flushElement(e,t){this.dom.insertBefore(e,t,this.nextSibling)}closeElement(){return this.willCloseElement(),this.popElement(),this.popModifiers()}pushRemoteElement(e,t,n){return this.__pushRemoteElement(e,t,n)}__pushRemoteElement(e,t,n){if(this.pushElement(e,n),void 0===n)for(;e.lastChild;)e.removeChild(e.lastChild);let r=new tm(e);return this.pushBlock(r,!0)}popRemoteElement(){const e=this.popBlock();return this.popElement(),e}pushElement(e,t=null){this.cursors.push(new fg(e,t))}pushModifiers(e){this.modifierStack.push(e)}popModifiers(){return this.modifierStack.pop()}didAppendBounds(e){return this.block().didAppendBounds(e),e}didAppendNode(e){return this.block().didAppendNode(e),e}didOpenElement(e){return this.block().openElement(e),e}willCloseElement(){this.block().closeElement()}appendText(e){return this.didAppendNode(this.__appendText(e))}__appendText(e){let{dom:t,element:n,nextSibling:r}=this,i=t.createTextNode(e);return t.insertBefore(n,i,r),i}__appendNode(e){return this.dom.insertBefore(this.element,e,this.nextSibling),e}__appendFragment(e){let t=e.firstChild;if(t){let n=new gg(this.element,t,e.lastChild);return this.dom.insertBefore(this.element,e,this.nextSibling),n}{const e=this.__appendComment("");return new gg(this.element,e,e)}}__appendHTML(e){return this.dom.insertHTMLBefore(this.element,this.nextSibling,e)}appendDynamicHTML(e){let t=this.trustedContent(e);this.didAppendBounds(t)}appendDynamicText(e){let t=this.untrustedContent(e);return this.didAppendNode(t),t}appendDynamicFragment(e){let t=this.__appendFragment(e);this.didAppendBounds(t)}appendDynamicNode(e){let t=this.__appendNode(e),n=new gg(this.element,t,t);this.didAppendBounds(n)}trustedContent(e){return this.__appendHTML(e)}untrustedContent(e){return this.__appendText(e)}appendComment(e){return this.didAppendNode(this.__appendComment(e))}__appendComment(e){let{dom:t,element:n,nextSibling:r}=this,i=t.createComment(e);return t.insertBefore(n,i,r),i}__setAttribute(e,t,n){this.dom.setAttribute(this.constructing,e,t,n)}__setProperty(e,t){this.constructing[e]=t}setStaticAttribute(e,t,n){this.__setAttribute(e,t,n)}setDynamicAttribute(e,t,n,r){let i=Bg(this.constructing,e,r);return i.set(this,t,this.env),i}},em=class{first=null;last=null;nesting=0;constructor(e){this.parent=e}parentElement(){return this.parent}firstNode(){return this.first.firstNode()}lastNode(){return this.last.lastNode()}openElement(e){this.didAppendNode(e),this.nesting++}closeElement(){this.nesting--}didAppendNode(e){0===this.nesting&&(this.first||(this.first=new Xg(e)),this.last=new Jg(e))}didAppendBounds(e){0===this.nesting&&(this.first||(this.first=e),this.last=e)}finalize(e){null===this.first&&e.appendComment("")}},tm=class extends em{constructor(e){super(e),ee(this,()=>{this.parentElement()===this.firstNode().parentNode&&yg(this)})}},nm=class extends em{constructor(e){super(e)}reset(){te(this);let e=yg(this);return this.first=null,this.last=null,this.nesting=0,e}},rm=class{constructor(e,t){this.parent=e,this.boundList=t,this.parent=e,this.boundList=t}parentElement(){return this.parent}firstNode(){return this.boundList[0].firstNode()}lastNode(){let e=this.boundList;return e[e.length-1].lastNode()}openElement(e){}closeElement(){}didAppendNode(e){}didAppendBounds(e){}finalize(e){this.boundList.length}};function im(e,t){return Qg.forInitialRender(e,t)}var sm={foreignObject:1,desc:1,title:1},om=Object.create(null),am=class{constructor(e){this.document=e,this.setupUselessElement()}setupUselessElement(){this.uselessElement=this.document.createElement("div")}createElement(e,t){let n,r,i,s;if(t?(n="http://www.w3.org/2000/svg"===t.namespaceURI||"svg"===e,i=t.namespaceURI===Eg||"math"===e,r=!!sm[t.tagName]):(n="svg"===e,i="math"===e,r=!1),!i&&!n||r)return this.document.createElement(e);if(om[e])throw new Error(`Cannot create a ${e} inside an SVG context`);return s=i?Eg:"http://www.w3.org/2000/svg",this.document.createElementNS(s,e)}insertBefore(e,t,n){e.insertBefore(t,n)}insertHTMLBefore(e,t,n){if(""===n){const n=this.createComment("");return e.insertBefore(n,t),new gg(e,n,n)}const r=t?t.previousSibling:e.lastChild;let i;if(null===t)e.insertAdjacentHTML("beforeend",n),i=e.lastChild;else if(t instanceof HTMLElement)t.insertAdjacentHTML("beforebegin",n),i=t.previousSibling;else{const{uselessElement:r}=this;e.insertBefore(r,t),r.insertAdjacentHTML("beforebegin",n),i=r.previousSibling,e.removeChild(r)}const s=r?r.nextSibling:e.firstChild;return new gg(e,s,i)}createTextNode(e){return this.document.createTextNode(e)}createComment(e){return this.document.createComment(e)}},lm=class extends am{createElementNS(e,t){return this.document.createElementNS(e,t)}setAttribute(e,t,n,r=null){r?e.setAttributeNS(r,t,n):e.setAttribute(t,n)}};function cm(e){return e}function um(e){return"getDebugCustomRenderTree"in e}new class{validate(e){switch(e){case 4:case 5:case 3:case 2:case 1:case 0:case 6:case 7:case 8:return!0;default:return!1}}expected(){return"Register"}};var hm=Symbol("TYPE"),dm=Symbol("INNER"),pm=Symbol("OWNER"),fm=Symbol("ARGS"),gm=Symbol("RESOLVED"),mm=new WeakSet;function ym(e){return mm.has(e)}function vm(e,t){return ym(e)&&e[hm]===t}var bm=class{[hm];[dm];[pm];[fm];[gm];constructor(e,t,n,r,i=!1){mm.add(this),this[hm]=e,this[dm]=t,this[pm]=n,this[fm]=r,this[gm]=i}};function wm(e){let t,n,r,i,s,o=e;for(;;){let{[fm]:e,[dm]:a}=o;if(null!==e){let{named:r,positional:i}=e;i.length>0&&(t=void 0===t?i:i.concat(t)),void 0===n&&(n=[]),n.unshift(r)}if(!ym(a)){r=a,i=o[pm],s=o[gm];break}o=a}return{definition:r,owner:i,resolved:s,positional:t,named:n}}function _m(e,t,n,r,i=!1){return new bm(e,t,n,r,i)}var xm=0,Cm=class{id=xm++;value;constructor(e){this.value=e}get(){return this.value}release(){this.value=null}toString(){let e=`Ref ${this.id}`;if(null===this.value)return`${e} (released)`;try{return`${e}: ${this.value}`}catch{return e}}},Sm=class{stack=new it;refs=new WeakMap;roots=new Set;nodes=new WeakMap;begin(){this.reset()}create(e,t){let n=Np({},t,{bounds:null,refs:new Set});this.nodes.set(e,n),this.appendChild(n,e),this.enter(e)}update(e){this.enter(e)}didRender(e,t){this.nodeFor(e).bounds=t,this.exit()}willDestroy(e){this.refs.get(e).release()}commit(){this.reset()}capture(){return this.captureRefs(this.roots)}reset(){if(0!==this.stack.size){let e=this.stack.toArray()[0],t=this.refs.get(e);for(void 0!==t&&this.roots.delete(t);!this.stack.isEmpty();)this.stack.pop()}}enter(e){this.stack.push(e)}exit(){this.stack.pop()}nodeFor(e){return this.nodes.get(e)}appendChild(e,t){let n=this.stack.current,r=new Cm(t);if(this.refs.set(t,r),n){let t=this.nodeFor(n);t.refs.add(r),e.parent=t}else this.roots.add(r)}captureRefs(e){let t=[];return e.forEach(n=>{let r=n.get();r?t.push(this.captureNode(`render-node:${n.id}`,r)):e.delete(n)}),t}captureNode(e,t){let n=this.nodeFor(t),{type:r,name:i,args:s,instance:o,refs:a}=n,l=this.captureBounds(n),c=this.captureRefs(a);return{id:e,type:r,name:i,args:iy(s),instance:o,bounds:l,children:c}}captureBounds(e){let t=e.bounds;return{parentElement:t.parentElement(),firstNode:t.firstNode(),lastNode:t.lastNode()}}},km=new class{evaluateOpcode=new Array(113).fill(null);constructor(){}add(e,t,n="syscall"){this.evaluateOpcode[e]={syscall:"machine"!==n,evaluate:t}}evaluate(e,t,n){let r=this.evaluateOpcode[n];r.syscall?(t.isMachine,r.syscall,t.isMachine,t.type,r.evaluate(e,t)):(t.isMachine,r.syscall,t.isMachine,t.type,r.evaluate(e.lowlevel,t))}};km.add(39,e=>e.pushChildScope()),km.add(40,e=>e.popScope()),km.add(59,e=>e.pushDynamicScope()),km.add(60,e=>e.popDynamicScope()),km.add(28,(e,{op1:t})=>{e.stack.push(e.constants.getValue(t))}),km.add(29,(e,{op1:t})=>{e.stack.push(dt(e.constants.getValue(t)))}),km.add(30,(e,{op1:t})=>{let n=e.stack;if(t>=0){let r=e.constants.getValue(t);n.push(r)}else n.push(Tp(t))}),km.add(31,e=>{let t,n=e.stack,r=cm(n.pop());t=void 0===r?lt:null===r?ct:!0===r?ut:!1===r?ht:at(r),n.push(t)}),km.add(33,(e,{op1:t,op2:n})=>{let r=cm(e.fetchValue(cm(t)))-n;e.stack.dup(r)}),km.add(34,(e,{op1:t})=>{e.stack.pop(t)}),km.add(35,(e,{op1:t})=>{e.load(cm(t))}),km.add(36,(e,{op1:t})=>{e.fetch(cm(t))}),km.add(58,(e,{op1:t})=>{let n=e.constants.getArray(t);e.bindDynamicScope(n)}),km.add(69,(e,{op1:t})=>{e.enter(t)}),km.add(70,e=>{e.exit()}),km.add(63,(e,{op1:t})=>{e.stack.push(e.constants.getValue(t))}),km.add(62,e=>{e.stack.push(e.scope())}),km.add(61,e=>{let t=e.stack,n=t.pop();n?t.push(e.compile(n)):t.push(null)}),km.add(64,e=>{let{stack:t}=e,n=cm(t.pop()),r=cm(t.pop()),i=cm(t.pop()),s=cm(t.pop());if(null===i||null===n)return e.lowlevel.pushFrame(),void e.pushScope(r??e.scope());let o=r;{let e=i.parameters,t=e.length;if(t>0){o=o.child();for(let n=0;n{let n=cm(e.stack.pop()),r=Boolean(wt(n));vt(n)?r&&e.lowlevel.goto(t):(r&&e.lowlevel.goto(t),e.updateWith(new Em(n)))}),km.add(66,(e,{op1:t})=>{let n=cm(e.stack.pop()),r=Boolean(wt(n));vt(n)?r||e.lowlevel.goto(t):(r||e.lowlevel.goto(t),e.updateWith(new Em(n)))}),km.add(67,(e,{op1:t,op2:n})=>{cm(e.stack.peek())===n&&e.lowlevel.goto(t)}),km.add(68,e=>{let t=cm(e.stack.peek());vt(t)||e.updateWith(new Em(t))}),km.add(71,e=>{let{stack:t}=e,n=cm(t.pop());t.push(ft(()=>U(wt(n))))});var Em=class{last;constructor(e){this.ref=e,this.last=wt(e)}evaluate(e){let{last:t,ref:n}=this;t!==wt(n)&&e.throw()}},Rm=class{last;constructor(e,t){this.ref=e,this.filter=t,this.last=t(wt(e))}evaluate(e){let{last:t,ref:n,filter:r}=this;t!==r(wt(n))&&e.throw()}},Tm=class{tag=me;lastRevision=1;target;finalize(e,t){this.target=t,this.didModify(e)}evaluate(e){let{tag:t,target:n,lastRevision:r}=this;!e.alwaysRevalidate&&ce(t,r)&&(Ne(t),e.goto(n))}didModify(e){this.tag=e,this.lastRevision=le(this.tag),Ne(e)}},Lm=class{constructor(e){this.debugLabel=e}evaluate(){Le(this.debugLabel)}},Im=class{constructor(e){this.target=e}evaluate(){let e=Ie();this.target.didModify(e)}};km.add(41,(e,{op1:t})=>{e.tree().appendText(e.constants.getValue(t))}),km.add(42,(e,{op1:t})=>{e.tree().appendComment(e.constants.getValue(t))}),km.add(48,(e,{op1:t})=>{e.tree().openElement(e.constants.getValue(t))}),km.add(49,e=>{let t=cm(wt(cm(e.stack.pop())));e.tree().openElement(t)}),km.add(50,e=>{let t=cm(e.stack.pop()),n=cm(e.stack.pop()),r=cm(e.stack.pop()),i=cm(wt(t)),s=cm(wt(n)),o=wt(r);vt(t)||e.updateWith(new Em(t)),void 0===s||vt(n)||e.updateWith(new Em(n));let a=e.tree().pushRemoteElement(i,o,s);if(e.associateDestroyable(a),void 0!==e.env.debugRenderTree){let r=Ym(void 0===s?{}:{insertBefore:n},[t]);e.env.debugRenderTree.create(a,{type:"keyword",name:"in-element",args:r,instance:null}),ee(a,()=>{e.env.debugRenderTree?.willDestroy(a)})}}),km.add(56,e=>{let t=e.tree().popRemoteElement();void 0!==e.env.debugRenderTree&&e.env.debugRenderTree.didRender(t,t)}),km.add(54,e=>{let t=cm(e.fetchValue(6)),n=null;t&&(n=t.flush(e),e.loadValue(6,null)),e.tree().flushElement(n)}),km.add(55,e=>{let t=e.tree().closeElement();null!==t&&t.forEach(t=>{e.env.scheduleInstallModifier(t);const n=t.manager.getDestroyable(t.state);null!==n&&e.associateDestroyable(n)})}),km.add(57,(e,{op1:t})=>{let n=cm(e.stack.pop());if(!e.env.isInteractive)return;let r=e.getOwner(),i=e.constants.getValue(t),{manager:s}=i,{constructing:o}=e.tree(),a=n.capture(),l=s.create(r,o,i.state,a),c={manager:s,state:l,definition:i};cm(e.fetchValue(6)).addModifier(e,c,a);let u=s.getTag(l);return null!==u?(Ne(u),e.updateWith(new Pm(u,c))):void 0}),km.add(108,e=>{let{stack:t}=e,n=cm(t.pop()),r=cm(t.pop());if(!e.env.isInteractive)return;let i=r.capture(),{positional:s,named:o}=i,{constructing:a}=e.tree(),l=e.getOwner(),c=ft(()=>{let e,t,r=wt(n);if(!rt(r))return;if(vm(r,2)){let{definition:n,owner:a,positional:l,named:c}=wm(r);t=n,e=a,void 0!==l&&(i.positional=l.concat(s)),void 0!==c&&(i.named=Object.assign({},...c,o))}else t=r,e=l;let c=Pu(t);if(null===c)throw new Error("BUG: modifier manager expected");let u={resolvedName:null,manager:c,state:t};return{manager:c,state:c.create(e,a,u.state,i),definition:u}}),u=wt(c),h=null;return void 0!==u&&(cm(e.fetchValue(6)).addModifier(e,u,i),h=u.manager.getTag(u.state),null!==h&&Ne(h)),!vt(n)||h?e.updateWith(new Mm(h,u,c)):void 0});var Pm=class{lastUpdated;constructor(e,t){this.tag=e,this.modifier=t,this.lastUpdated=le(e)}evaluate(e){let{modifier:t,tag:n,lastUpdated:r}=this;Ne(n),ce(n,r)||(e.env.scheduleUpdateModifier(t),this.lastUpdated=le(n))}},Mm=class{lastUpdated;constructor(e,t,n){this.tag=e,this.instance=t,this.instanceRef=n,this.lastUpdated=le(e??_e)}evaluate(e){let{tag:t,lastUpdated:n,instance:r,instanceRef:i}=this,s=wt(i);if(s!==r){if(void 0!==r){let e=r.manager.getDestroyable(r.state);null!==e&&te(e)}if(void 0!==s){let{manager:n,state:r}=s,i=n.getDestroyable(r);null!==i&&Q(this,i),t=n.getTag(r),null!==t&&(this.lastUpdated=le(t)),this.tag=t,e.env.scheduleInstallModifier(s)}this.instance=s}else null===t||ce(t,n)||(e.env.scheduleUpdateModifier(r),this.lastUpdated=le(t));null!==t&&Ne(t)}};km.add(51,(e,{op1:t,op2:n,op3:r})=>{let i=e.constants.getValue(t),s=e.constants.getValue(n),o=r?e.constants.getValue(r):null;e.tree().setStaticAttribute(i,s,o)}),km.add(52,(e,{op1:t,op2:n,op3:r})=>{let i=e.constants.getValue(t),s=e.constants.getValue(n),o=cm(e.stack.pop()),a=wt(o),l=r?e.constants.getValue(r):null,c=e.tree().setDynamicAttribute(i,a,s,l);vt(o)||e.updateWith(new Am(o,c,e.env))});var Am=class{updateRef;constructor(e,t,n){let r=!1;this.updateRef=ft(()=>{let i=wt(e);r?t.update(i,n):r=!0}),wt(this.updateRef)}evaluate(){wt(this.updateRef)}};km.add(78,(e,{op1:t})=>{let n=e.constants.getValue(t),{manager:r,capabilities:i}=n,s={definition:n,manager:r,capabilities:i,state:null,handle:null,table:null,lookup:null};e.stack.push(s)}),km.add(80,(e,{op1:t})=>{let n,r=e.stack,i=cm(wt(cm(r.pop()))),s=e.constants,o=e.getOwner();if(s.getValue(t),e.loadValue(7,null),"string"==typeof i){let t=function(e,t,n,r){let i=e?.lookupComponent?.(n,r)??null;return t.resolvedComponent(i,n)}(e.context.resolver,s,i,o);n=t}else n=ym(i)?i:s.component(i,o);r.push(n)}),km.add(81,e=>{let t,n=e.stack,r=wt(cm(n.pop())),i=e.constants;t=ym(r)?r:i.component(r,e.getOwner(),!0),n.push(t)}),km.add(79,e=>{let t,n,{stack:r}=e,i=r.pop();ym(i)?n=t=null:(n=i.manager,t=i.capabilities),r.push({definition:i,capabilities:t,manager:n,state:null,handle:null,table:null})}),km.add(82,(e,{op1:t,op2:n,op3:r})=>{let i=e.stack,s=e.constants.getArray(t),o=r>>4,a=8&r,l=7&r?e.constants.getArray(n):Bp;e.args.setup(i,s,l,o,!!a),i.push(e.args)}),km.add(83,e=>{let{stack:t}=e;t.push(e.args.empty(t))}),km.add(86,e=>{let t=e.stack,n=cm(t.pop()).capture();t.push(n)}),km.add(85,(e,{op1:t})=>{let n=e.stack,r=e.fetchValue(cm(t)),i=cm(n.pop()),{definition:s}=r;if(vm(s,0)){s.manager;let t=e.constants,{definition:n,owner:o,resolved:a,positional:l,named:c}=wm(s);if(a)s=n;else if("string"==typeof n){let r=e.context.resolver?.lookupComponent?.(n,o)??null;s=t.resolvedComponent(r,n)}else s=t.component(n,o);void 0!==c&&i.named.merge(Np({},...c)),void 0!==l&&(i.realloc(l.length),i.positional.prepend(l));let{manager:u}=s;r.definition=s,r.manager=u,r.capabilities=s.capabilities,e.loadValue(7,o)}let{manager:o,state:a}=s;if(!yu(0,r.capabilities,pu.prepareArgs))return void n.push(i);let l=i.blocks.values,c=i.blocks.names,u=o.prepareArgs(a,i);if(u){i.clear();for(let i=0;i{let n=cm(e.fetchValue(4)),{definition:r,manager:i,capabilities:s}=n;if(!yu(0,s,pu.createInstance))return;let o=null;yu(0,s,pu.dynamicScope)&&(o=e.dynamicScope());let a=1&t,l=null;yu(0,s,pu.createArgs)&&(l=cm(e.stack.peek()));let c=null;yu(0,s,pu.createCaller)&&(c=e.getSelf());let u=i.create(e.getOwner(),r.state,l,e.env,o,c,!!a);n.state=u,yu(0,s,pu.updateHook)&&e.updateWith(new zm(u,i,o))}),km.add(88,(e,{op1:t})=>{let{manager:n,state:r,capabilities:i}=cm(e.fetchValue(cm(t))),s=n.getDestroyable(r);s&&e.associateDestroyable(s)}),km.add(97,(e,{op1:t})=>{e.beginCacheGroup(void 0),e.tree().pushAppendingBlock()}),km.add(89,e=>{e.loadValue(6,new Om)}),km.add(53,(e,{op1:t,op2:n,op3:r})=>{let i=e.constants.getValue(t),s=e.constants.getValue(n),o=cm(e.stack.pop()),a=r?e.constants.getValue(r):null;cm(e.fetchValue(6)).setAttribute(i,o,s,a)}),km.add(105,(e,{op1:t,op2:n,op3:r})=>{let i=e.constants.getValue(t),s=e.constants.getValue(n),o=r?e.constants.getValue(r):null;cm(e.fetchValue(6)).setStaticAttribute(i,s,o)});var Om=class{attributes=tt();classes=[];modifiers=[];setAttribute(e,t,n,r){let i={value:t,namespace:r,trusting:n};"class"===e&&this.classes.push(t),this.attributes[e]=i}setStaticAttribute(e,t,n){let r={value:t,namespace:n};"class"===e&&this.classes.push(t),this.attributes[e]=r}addModifier(e,t,n){if(this.modifiers.push(t),void 0!==e.env.debugRenderTree){const{manager:r,definition:i,state:s}=t;if(null===s||"object"!=typeof s&&"function"!=typeof s)return;let{element:o,constructing:a}=e.tree(),l=i.resolvedName??r.getDebugName(i.state),c=r.getDebugInstance(s),u=new gg(o,a,a);e.env.debugRenderTree.create(s,{type:"modifier",name:l,args:n,instance:c}),e.env.debugRenderTree.didRender(s,u),e.associateDestroyable(s),e.updateWith(new Um(s)),e.updateWith(new Bm(s,u)),ee(s,()=>{e.env.debugRenderTree?.willDestroy(s)})}}flush(e){let t,n=this.attributes;for(let r in this.attributes){if("type"===r){t=n[r];continue}let i=Ye(this.attributes[r]);"class"===r?Fm(e,"class",Nm(this.classes),i.namespace,i.trusting):Fm(e,r,i.value,i.namespace,i.trusting)}return void 0!==t&&Fm(e,"type",t.value,t.namespace,t.trusting),this.modifiers}};function Nm(e){return 0===e.length?"":1===e.length?e[0]:function(e){return e.every(e=>"string"==typeof e)}(e)?e.join(" "):(t=e,ft(()=>{let e=[];for(const n of t){let t=vg("string"==typeof n?n:wt(n));t&&e.push(t)}return 0===e.length?null:e.join(" ")}));var t}function Fm(e,t,n,r,i=!1){if("string"==typeof n)e.tree().setStaticAttribute(t,n,r);else{let s=e.tree().setDynamicAttribute(t,wt(n),i,r);vt(n)||e.updateWith(new Am(n,s,e.env))}}function Dm(e,t,n,r,i){let s=n.table.symbols.indexOf(e),o=r.get(t);-1!==s&&i.scope().bindBlock(s+1,o),n.lookup&&(n.lookup[e]=o)}km.add(99,(e,{op1:t})=>{let{definition:n,state:r}=cm(e.fetchValue(cm(t))),{manager:i}=n,s=cm(e.fetchValue(6));i.didCreateElement(r,e.tree().constructing,s)}),km.add(90,(e,{op1:t,op2:n})=>{let{definition:r,state:i}=cm(e.fetchValue(cm(t))),{manager:s}=r,o=s.getSelf(i);if(void 0!==e.env.debugRenderTree){let r,s=cm(e.fetchValue(cm(t))),{definition:a,manager:l}=s;if(e.stack.peek()===e.args)r=e.args.capture();else{let t=e.constants.getArray(n);e.args.setup(e.stack,t,[],0,!0),r=e.args.capture()}let c=a.compilable;if(null===c){yu(0,s.capabilities,pu.dynamicLayout);let t=e.context.resolver;c=null===t?null:l.getDynamicLayout(i,t)}if(e.associateDestroyable(s),um(l))l.getDebugCustomRenderTree(s.definition.state,s.state,r).forEach(t=>{let{bucket:n}=t;e.env.debugRenderTree.create(n,t),ee(s,()=>{e.env.debugRenderTree?.willDestroy(n)}),e.updateWith(new Um(n))});else{let t=function(e,t=e.manager){return e.resolvedName??e.debugName??t.getDebugName(e.state)}(a,l);e.env.debugRenderTree.create(s,{type:"component",name:t,args:r,instance:wt(o)}),ee(s,()=>{e.env.debugRenderTree?.willDestroy(s)}),e.updateWith(new Um(s))}}e.stack.push(o)}),km.add(91,(e,{op1:t})=>{let{definition:n,state:r}=cm(e.fetchValue(cm(t))),{manager:i}=n,s=i.getTagName(r);e.stack.push(s)}),km.add(92,(e,{op1:t})=>{let n=cm(e.fetchValue(cm(t))),{manager:r,definition:i}=n,{stack:s}=e,{compilable:o}=i;if(null===o){let{capabilities:t}=n;yu(0,t,pu.dynamicLayout);let i=e.context.resolver;o=null===i?null:r.getDynamicLayout(n.state,i),null===o&&(o=yu(0,t,pu.wrapped)?Ip(e.constants.defaultTemplate).asWrappedLayout():Ip(e.constants.defaultTemplate).asLayout())}let a=o.compile(e.context);s.push(o.symbolTable),s.push(a)}),km.add(75,(e,{op1:t})=>{let n=cm(e.stack.pop()),r=cm(e.stack.pop()),{manager:i,capabilities:s}=n,o={definition:n,manager:i,capabilities:s,state:null,handle:r.handle,table:r.symbolTable,lookup:null};e.loadValue(cm(t),o)}),km.add(95,(e,{op1:t})=>{let{stack:n}=e,r=cm(n.pop()),i=cm(n.pop()),s=cm(e.fetchValue(cm(t)));s.handle=r,s.table=i}),km.add(38,(e,{op1:t})=>{let n,{table:r,manager:i,capabilities:s,state:o}=cm(e.fetchValue(cm(t)));yu(0,s,pu.hasSubOwner)?(n=i.getOwner(o),e.loadValue(7,null)):(n=e.fetchValue(7),null===n?n=e.getOwner():e.loadValue(7,null)),e.pushRootScope(r.symbols.length+1,n)}),km.add(17,(e,{op1:t})=>{let n=cm(e.fetchValue(cm(t))),r=e.scope(),i=cm(e.stack.peek()),s=i.named.atNames;for(let o=s.length-1;o>=0;o--){let e=Ye(s[o]),t=n.table.symbols.indexOf(e),a=i.named.get(e,!0);-1!==t&&r.bindSymbol(t+1,a),n.lookup&&(n.lookup[e]=a)}}),km.add(18,(e,{op1:t})=>{let n=cm(e.fetchValue(cm(t))),{blocks:r}=cm(e.stack.peek());for(const[i]of Wp(r.names))Dm(Ye(r.symbolNames[i]),Ye(r.names[i]),n,r,e)}),km.add(96,(e,{op1:t})=>{let n=cm(e.fetchValue(cm(t)));e.call(n.handle)}),km.add(100,(e,{op1:t})=>{let n=cm(e.fetchValue(cm(t))),{manager:r,state:i,capabilities:s}=n,o=e.tree().popBlock();void 0!==e.env.debugRenderTree&&(um(r)?r.getDebugCustomRenderTree(n.definition.state,i,ay).reverse().forEach(t=>{let{bucket:n}=t;e.env.debugRenderTree.didRender(n,o),e.updateWith(new Bm(n,o))}):(e.env.debugRenderTree.didRender(n,o),e.updateWith(new Bm(n,o)))),yu(0,s,pu.createInstance)&&(cm(r).didRenderLayout(i,o),e.env.didCreate(n),e.updateWith(new jm(n,o)))}),km.add(98,e=>{e.commitCacheGroup()});var zm=class{constructor(e,t,n){this.component=e,this.manager=t,this.dynamicScope=n}evaluate(e){let{component:t,manager:n,dynamicScope:r}=this;n.update(t,r)}},jm=class{constructor(e,t){this.component=e,this.bounds=t}evaluate(e){let{component:t,bounds:n}=this,{manager:r,state:i}=t;r.didUpdateLayout(i,n),e.env.didUpdate(t)}},Um=class{constructor(e){this.bucket=e}evaluate(e){e.env.debugRenderTree?.update(this.bucket)}},Bm=class{constructor(e,t){this.bucket=e,this.bounds=t}evaluate(e){e.env.debugRenderTree?.didRender(this.bucket,this.bounds)}},$m=(new class{validate(e){return"object"==typeof e&&null!==e&&st in e}expected(){return"Reference"}},class{stack=null;positional=new Vm;named=new Wm;blocks=new Km;constructor(){}empty(e){let t=e.registers[3]+1;return this.named.empty(e,t),this.positional.empty(e,t),this.blocks.empty(e,t),this}setup(e,t,n,r,i){this.stack=e;let s=this.named,o=t.length,a=e.registers[3]-o+1;s.setup(e,a,o,t,i);let l=a-r;this.positional.setup(e,l,r);let c=this.blocks,u=n.length,h=l-3*u;c.setup(e,h,u,n)}get base(){return this.blocks.base}get length(){return this.positional.length+this.named.length+3*this.blocks.length}at(e){return this.positional.at(e)}realloc(e){let{stack:t}=this;if(e>0&&null!==t){let{positional:n,named:r}=this,i=n.base+e;for(let e=n.length+r.length-1;e>=0;e--)t.copy(e+n.base,e+i);n.base+=e,r.base+=e,t.registers[3]+=e}}capture(){let e=0===this.positional.length?oy:this.positional.capture();return{named:0===this.named.length?sy:this.named.capture(),positional:e}}clear(){let{stack:e,length:t}=this;t>0&&null!==e&&e.pop(t)}}),qm=Up(),Vm=class{base=0;length=0;stack=null;_references=null;constructor(){}empty(e,t){this.stack=e,this.base=t,this.length=0,this._references=qm}setup(e,t,n){this.stack=e,this.base=t,this.length=n,this._references=0===n?qm:null}at(e){let{base:t,length:n,stack:r}=this;return e<0||e>=n?lt:cm(r.get(e,t))}capture(){return this.references}prepend(e){let t=e.length;if(t>0){let{base:n,length:r,stack:i}=this;this.base=n-=t,this.length=r+t;for(let s=0;s0){let{names:n,length:r,stack:i}=this,s=n.slice();for(const o of t)-1===s.indexOf(o)&&(r=s.push(o),i.push(e[o]));this.length=r,this._references=null,this._names=s,this._atNames=null}}get references(){let e=this._references;if(!e){let{base:t,length:n,stack:r}=this;e=this._references=r.slice(t,t+n)}return e}toSyntheticName(e){return e.slice(1)}toAtName(e){return`@${e}`}};function Hm(e){return`&${e}`}var Gm=Up(),Km=class{internalValues=null;_symbolNames=null;internalTag=null;names=Bp;length=0;base=0;constructor(){}empty(e,t){this.stack=e,this.names=Bp,this.base=t,this.length=0,this._symbolNames=null,this.internalTag=me,this.internalValues=Gm}setup(e,t,n,r){this.stack=e,this.names=r,this.base=t,this.length=n,this._symbolNames=null,0===n?(this.internalTag=me,this.internalValues=Gm):(this.internalTag=null,this.internalValues=null)}get values(){let e=this.internalValues;if(!e){let{base:t,length:n,stack:r}=this;e=this.internalValues=r.slice(t,t+3*n)}return e}has(e){return-1!==this.names.indexOf(e)}get(e){let t=this.names.indexOf(e);if(-1===t)return null;let{base:n,stack:r}=this,i=cm(r.get(3*t,n)),s=cm(r.get(3*t+1,n)),o=cm(r.get(3*t+2,n));return null===o?null:[o,s,i]}capture(){return new Zm(this.names,this.values)}get symbolNames(){let e=this._symbolNames;return null===e&&(e=this._symbolNames=this.names.map(Hm)),e}},Zm=class{length;constructor(e,t){this.names=e,this.values=t,this.length=e.length}has(e){return-1!==this.names.indexOf(e)}get(e){let t=this.names.indexOf(e);return-1===t?null:[this.values[3*t+2],this.values[3*t+1],this.values[3*t]]}};function Ym(e,t){return{named:e,positional:t}}function Xm(e){let t=tt();for(const[n,r]of Object.entries(e))t[n]=wt(r);return t}function Jm(e){return e.map(wt)}function Qm(e){return{named:Xm(e.named),positional:Jm(e.positional)}}var ey=Symbol("ARGUMENT_ERROR");function ty(e){return null!==e&&"object"==typeof e&&e[ey]}function ny(e){return{[ey]:!0,error:e}}function ry(e){let t=tt();for(const[r,i]of Object.entries(e))try{t[r]=wt(i)}catch(n){t[r]=ny(n)}return t}function iy(e){return{named:ry(e.named),positional:(t=e.positional,t.map(e=>{try{return wt(e)}catch(t){return ny(t)}}))};var t}var sy=Object.freeze(Object.create(null)),oy=qm,ay=Ym(sy,oy),ly=a({FALSE_REFERENCE:()=>ht,NULL_REFERENCE:()=>ct,REFERENCE:()=>st,TRUE_REFERENCE:()=>ut,UNDEFINED_REFERENCE:()=>lt,childRefFor:()=>xt,childRefFromParts:()=>Ct,createComputeRef:()=>ft,createConstRef:()=>dt,createDebugAliasRef:()=>{},createInvokableRef:()=>yt,createIteratorItemRef:()=>yy,createIteratorRef:()=>my,createPrimitiveRef:()=>at,createReadOnlyRef:()=>gt,createUnboundRef:()=>pt,isConstRef:()=>vt,isInvokableRef:()=>mt,isUpdatableRef:()=>bt,updateRef:()=>_t,valueForRef:()=>wt}),cy={},uy=(e,t)=>t,hy=(e,t)=>String(t),dy=e=>null===e?cy:e,py=class{_weakMap;_primitiveMap;get weakMap(){return void 0===this._weakMap&&(this._weakMap=new WeakMap),this._weakMap}get primitiveMap(){return void 0===this._primitiveMap&&(this._primitiveMap=new Map),this._primitiveMap}set(e,t){rt(e)?this.weakMap.set(e,t):this.primitiveMap.set(e,t)}get(e){return rt(e)?this.weakMap.get(e):this.primitiveMap.get(e)}},fy=new py;function gy(e){let t=new py;return(n,r)=>{let i=e(n,r),s=t.get(i)||0;return t.set(i,s+1),0===s?i:function(e,t){let n=fy.get(e);void 0===n&&(n=[],fy.set(e,n));let r=n[t];return void 0===r&&(r={value:e,count:t},n[t]=r),r}(i,s)}}function my(e,t){return ft(()=>{let n=wt(e),r=function(e){switch(e){case"@key":return gy(uy);case"@index":return gy(hy);case"@identity":return gy(dy);default:return t=e,gy(e=>null==e?e:q(e,t))}var t}(t);if(Array.isArray(n))return new by(n,r);let i=j(n);return null===i?new by(jp,()=>null):new vy(i,r)})}function yy(e){let t=e,n=fe();return ft(()=>(Ne(n),t),e=>{t!==e&&(t=e,de(n))})}var vy=class{constructor(e,t){this.inner=e,this.keyFor=t}isEmpty(){return this.inner.isEmpty()}next(){let e=this.inner.next();return null!==e&&(e.key=this.keyFor(e.value,e.memo)),e}},by=class{current;pos=0;constructor(e,t){this.iterator=e,this.keyFor=t,0===e.length?this.current={kind:"empty"}:this.current={kind:"first",value:e[this.pos]}}isEmpty(){return"empty"===this.current.kind}next(){let e,t=this.current;if("first"===t.kind)this.current={kind:"progress"},e=t.value;else{if(this.pos>=this.iterator.length-1)return null;e=this.iterator[++this.pos]}let{keyFor:n}=this;return{key:n(e,this.pos),value:e,memo:this.pos}}},wy=class e{bucket;constructor(e){this.bucket=e?Np({},e):{}}get(e){return this.bucket[e]}set(e,t){return this.bucket[e]=t}child(){return new e(this.bucket)}},_y=class e{static root(t,{self:n,size:r=0}){let i=new Array(r+1).fill(lt);return new e(t,i,null).init({self:n})}static sized(t,n=0){let r=new Array(n+1).fill(lt);return new e(t,r,null)}owner;slots;callerScope;constructor(e,t,n){this.owner=e,this.slots=t,this.callerScope=n}init({self:e}){return this.slots[0]=e,this}snapshot(){return this.slots.slice()}getSelf(){return this.get(0)}getSymbol(e){return this.get(e)}getBlock(e){let t=this.get(e);return t===lt?null:t}bind(e,t){this.set(e,t)}bindSelf(e){this.set(0,e)}bindSymbol(e,t){this.set(e,t)}bindBlock(e,t){this.set(e,t)}bindCallerScope(e){this.callerScope=e}getCallerScope(){return this.callerScope}child(){return new e(this.owner,this.slots.slice(),this.callerScope)}get(e){if(e>=this.slots.length)throw new RangeError(`BUG: cannot get $${e} from scope; length=${this.slots.length}`);return this.slots[e]}set(e,t){if(e>=this.slots.length)throw new RangeError(`BUG: cannot get $${e} from scope; length=${this.slots.length}`);this.slots[e]=t}};["b","big","blockquote","body","br","center","code","dd","div","dl","dt","em","embed","h1","h2","h3","h4","h5","h6","head","hr","i","img","li","listing","main","meta","nobr","ol","p","pre","ruby","s","small","span","strong","strike","sub","sup","table","tt","u","ul","var"].forEach(e=>om[e]=1);var xy=/[\t\n\v\f\r \xa0\u{1680}\u{180e}\u{2000}-\u{200a}\u{2028}\u{2029}\u{202f}\u{205f}\u{3000}\u{feff}]/u;function Cy(e){return xy.test(e)}var Sy=class extends am{namespace;constructor(e){super(e),this.document=e,this.namespace=null}setAttribute(e,t,n){e.setAttribute(t,n)}removeAttribute(e,t){e.removeAttribute(t)}insertAfter(e,t,n){this.insertBefore(e,t,n.nextSibling)}},ky=Sy,Ey=Symbol("TRANSACTION"),Ry=class{scheduledInstallModifiers=[];scheduledUpdateModifiers=[];createdComponents=[];updatedComponents=[];didCreate(e){this.createdComponents.push(e)}didUpdate(e){this.updatedComponents.push(e)}scheduleInstallModifier(e){this.scheduledInstallModifiers.push(e)}scheduleUpdateModifier(e){this.scheduledUpdateModifiers.push(e)}commit(){let{createdComponents:e,updatedComponents:t}=this;for(const{manager:i,state:s}of e)i.didCreate(s);for(const{manager:i,state:s}of t)i.didUpdate(s);let{scheduledInstallModifiers:n,scheduledUpdateModifiers:r}=this;for(const{manager:i,state:s,definition:o}of n){let e=i.getTag(s);if(null!==e){let t=qe(()=>i.install(s));pe(e,t)}else i.install(s)}for(const{manager:i,state:s,definition:o}of r){let e=i.getTag(s);if(null!==e){let t=qe(()=>i.update(s));pe(e,t)}else i.update(s)}}},Ty=class{[Ey]=null;updateOperations;isInteractive;isArgumentCaptureError;debugRenderTree;constructor(e,t){this.delegate=t,this.isInteractive=t.isInteractive,this.debugRenderTree=this.delegate.enableDebugTooling?new Sm:void 0,this.isArgumentCaptureError=this.delegate.enableDebugTooling?ty:void 0,e.appendOperations?(this.appendOperations=e.appendOperations,this.updateOperations=e.updateOperations):e.document&&(this.appendOperations=new lm(e.document),this.updateOperations=new Sy(e.document))}getAppendOperations(){return this.appendOperations}getDOM(){return this.updateOperations}begin(){this[Ey],this.debugRenderTree?.begin(),this[Ey]=new Ry}get transaction(){return this[Ey]}didCreate(e){this.transaction.didCreate(e)}didUpdate(e){this.transaction.didUpdate(e)}scheduleInstallModifier(e){this.isInteractive&&this.transaction.scheduleInstallModifier(e)}scheduleUpdateModifier(e){this.isInteractive&&this.transaction.scheduleUpdateModifier(e)}commit(){let e=this.transaction;this[Ey]=null,e.commit(),this.debugRenderTree?.commit(),this.delegate.onTransactionCommit()}};function Ly(e,t,n,r){return{env:new Ty(e,t),program:new lg(n.constants,n.heap),resolver:r}}function Iy(e,t){if(e[Ey])t();else{e.begin();try{t()}finally{e.commit()}}}function Py(e){return"string"==typeof e?e:"function"!=typeof e.toString?"":String(e)}function My(e){let t,n=Ou(e);return t=null===n?null:"function"==typeof n?n:n.getHelper(e),t}function Ay(e){return e===lt}km.add(77,(e,{op1:t,op2:n})=>{let r=e.stack,i=r.pop(),s=r.pop(),o=e.getOwner();e.context.resolver,e.loadValue(8,function(e,t,n,r){let i,s;return ft(()=>{let o=wt(t);return o===i||(s=vm(o,e)?r?_m(e,o,n,r):r:0===e&&"string"==typeof o&&o||rt(o)?_m(e,o,n,r):null,i=o),s})}(t,i,o,s))}),km.add(107,e=>{let t,n=e.stack,r=n.pop(),i=n.pop().capture(),s=e.getOwner(),o=ft(()=>{void 0!==t&&te(t);let e=wt(r);if(vm(e,1)){let{definition:n,owner:r,positional:s,named:a}=wm(e),l=My(n);void 0!==a&&(i.named=Np({},...a,i.named)),void 0!==s&&(i.positional=s.concat(i.positional)),t=l(i,r),Q(o,t)}else rt(e)?(t=My(e)(i,s),ne(t)&&Q(o,t)):t=lt}),a=ft(()=>(wt(o),wt(t)));e.associateDestroyable(o),e.loadValue(8,a)}),km.add(16,(e,{op1:t})=>{let n=e.stack,r=e.constants.getValue(t)(n.pop().capture(),e.getOwner(),e.dynamicScope());ne(r)&&e.associateDestroyable(r),e.loadValue(8,r)}),km.add(21,(e,{op1:t})=>{let n=e.referenceForSymbol(t);e.stack.push(n)}),km.add(19,(e,{op1:t})=>{let n=e.stack.pop();e.scope().bindSymbol(t,n)}),km.add(20,(e,{op1:t})=>{let n=e.stack.pop(),r=e.stack.pop(),i=e.stack.pop();e.scope().bindBlock(t,[n,r,i])}),km.add(37,(e,{op1:t})=>{e.pushRootScope(t,e.getOwner())}),km.add(22,(e,{op1:t})=>{let n=e.constants.getValue(t),r=e.stack.pop();e.stack.push(xt(r,n))}),km.add(23,(e,{op1:t})=>{let{stack:n}=e,r=e.scope().getBlock(t);n.push(r)}),km.add(24,e=>{let{stack:t}=e,n=t.pop();if(n&&!Ay(n)){let[e,r,i]=n;t.push(i),t.push(r),t.push(e)}else t.push(null),t.push(null),t.push(null)}),km.add(25,e=>{let{stack:t}=e,n=t.pop();n&&!Ay(n)?t.push(ut):t.push(ht)}),km.add(26,e=>{e.stack.pop(),e.stack.pop();let t=e.stack.pop(),n=t&&t.parameters.length;e.stack.push(n?ut:ht)}),km.add(27,(e,{op1:t})=>{let n=new Array(t);for(let i=t;i>0;i--)n[i-1]=cm(e.stack.pop());var r;e.stack.push((r=n,ft(()=>{const e=[];for(const t of r){const n=wt(t);null!=n&&e.push(Py(n))}return e.length>0?e.join(""):null})))}),km.add(109,e=>{let t=e.stack.pop(),n=e.stack.pop(),r=e.stack.pop();e.stack.push(ft(()=>U(wt(t))?wt(n):wt(r)))}),km.add(110,e=>{let t=e.stack.pop();e.stack.push(ft(()=>!U(wt(t))))}),km.add(111,e=>{let t=e.dynamicScope(),n=e.stack,r=n.pop();n.push(ft(()=>{let e=String(wt(r));return wt(t.get(e))}))}),km.add(112,e=>{let{positional:t}=e.stack.pop().capture();e.loadValue(8,ft(()=>{console.log(...Jm(t))}))});var Oy=class{constructor(e,t,n){this.node=e,this.reference=t,this.lastValue=n}evaluate(){let e,t=wt(this.reference),{lastValue:n}=this;t!==n&&(e=bg(t)?"":xg(t)?t:String(t),e!==n)&&(this.node.nodeValue=this.lastValue=e)}};function Ny(e){return function(e){return xg(e)||bg(e)||"boolean"==typeof e||"number"==typeof e}(e)?2:vm(e,0)||Du(e)?0:vm(e,1)||zu(e)?1:_g(e)?4:function(e){return wg(e)&&11===e.nodeType}(e)?5:function(e){return wg(e)&&"number"==typeof e.nodeType}(e)?6:2}function Fy(e){return rt(e)?vm(e,0)||Du(e)?0:1:2}function Dy(e,t){console.info("Use `context`, and `get()` to debug this template."),t("this")}km.add(76,e=>{let t=e.stack.peek();e.stack.push(Ny(wt(t))),vt(t)||e.updateWith(new Rm(t,Ny))}),km.add(106,e=>{let t=e.stack.peek();e.stack.push(Fy(wt(t))),vt(t)||e.updateWith(new Rm(t,Fy))}),km.add(43,e=>{let t=wt(e.stack.pop()),n=bg(t)?"":String(t);e.tree().appendDynamicHTML(n)}),km.add(44,e=>{let t=wt(e.stack.pop()).toHTML(),n=bg(t)?"":t;e.tree().appendDynamicHTML(n)}),km.add(47,e=>{let t=e.stack.pop(),n=wt(t),r=bg(n)?"":String(n),i=e.tree().appendDynamicText(r);vt(t)||e.updateWith(new Oy(i,t,r))}),km.add(45,e=>{let t=wt(e.stack.pop());e.tree().appendDynamicFragment(t)}),km.add(46,e=>{let t=wt(e.stack.pop());e.tree().appendDynamicNode(t)});var zy=Dy;function jy(e){zy=e}function Uy(){zy=Dy}var By=class{#h;constructor(e,t){this.scope=e,this.#h=t}get(e){let t,{scope:n}=this,r=this.#h,i=e.split("."),[s,...o]=e.split(".");return"this"===s?t=n.getSelf():r.locals[s]?t=n.getSymbol(r.locals[s]):(t=this.scope.getSelf(),o=i),o.reduce((e,t)=>xt(e,t),t)}};km.add(103,(e,{op1:t})=>{let n=e.constants.getValue(t),r=new By(e.scope(),n);zy(wt(e.getSelf()),e=>wt(r.get(e)))}),km.add(72,(e,{op1:t,op2:n})=>{let r=e.stack,i=r.pop(),s=wt(r.pop()),o=my(i,null===s?"@identity":String(s)),a=wt(o);e.updateWith(new Rm(o,e=>e.isEmpty())),a.isEmpty()?e.lowlevel.goto(n+1):(e.enterList(o,t),e.stack.push(a))}),km.add(73,e=>{e.exitList()}),km.add(74,(e,{op1:t})=>{let n=e.stack.peek().next();null!==n?e.registerItem(e.enterItem(n)):e.lowlevel.goto(t)});var $y=class{currentOpSize=0;registers;context;constructor(e,t,n,r){this.stack=e,this.externs=n,this.context=t,this.registers=r}fetchRegister(e){return this.registers[e]}loadRegister(e,t){this.registers[e]=t}setPc(e){this.registers[0]=e}pushFrame(){this.stack.push(this.registers[1]),this.stack.push(this.registers[2]),this.registers[2]=this.registers[3]-1}popFrame(){this.registers[3]=this.registers[2]-1,this.registers[1]=this.stack.get(0),this.registers[2]=this.stack.get(1)}pushSmallFrame(){this.stack.push(this.registers[1])}popSmallFrame(){this.registers[1]=this.stack.pop()}goto(e){this.setPc(this.target(e))}target(e){return this.registers[0]+e-this.currentOpSize}call(e){this.registers[1]=this.registers[0],this.setPc(this.context.program.heap.getaddr(e))}returnTo(e){this.registers[1]=this.target(e)}return(){this.setPc(this.registers[1])}nextStatement(){let{registers:e,context:t}=this,n=e[0];if(-1===n)return null;let r=t.program.opcode(n),i=this.currentOpSize=r.size;return this.registers[0]+=i,r}evaluateOuter(e,t){this.evaluateInner(e,t)}evaluateInner(e,t){e.isMachine?this.evaluateMachine(e,t):this.evaluateSyscall(e,t)}evaluateMachine(e,t){switch(e.type){case 0:return void this.pushFrame();case 1:return void this.popFrame();case 3:return void this.call(e.op1);case 2:return void t.call(this.stack.pop());case 4:return void this.goto(e.op1);case 5:return void t.return();case 6:return void this.returnTo(e.op1)}}evaluateSyscall(e,t){km.evaluate(t,e,e.type)}},qy=class{env;dom;alwaysRevalidate;frameStack=new it;constructor(e,{alwaysRevalidate:t=!1}){this.env=e,this.dom=e.getDOM(),this.alwaysRevalidate=t}execute(e,t){this._execute(e,t)}_execute(e,t){let{frameStack:n}=this;for(this.try(e,t);!n.isEmpty();){let e=this.frame.nextStatement();void 0!==e?e.evaluate(this):n.pop()}}get frame(){return this.frameStack.current}goto(e){this.frame.goto(e)}try(e,t){this.frameStack.push(new Ky(e,t))}throw(){this.frame.handleException(),this.frameStack.pop()}},Vy=class{children;bounds;constructor(e,t,n,r){this.state=e,this.context=t,this.children=r,this.bounds=n}parentElement(){return this.bounds.parentElement()}firstNode(){return this.bounds.firstNode()}lastNode(){return this.bounds.lastNode()}evaluate(e){e.try(this.children,null)}},Wy=class extends Vy{type="try";evaluate(e){e.try(this.children,this)}handleException(){let{state:e,bounds:t,context:{env:n}}=this;!function(e){let{children:t}=J(e);Y(t,te)}(this);let r=Qg.resume(n,t),i=e.evaluate(r),s=this.children=[],o=i.execute(e=>{e.updateWith(this),e.pushUpdating(s)});Q(this,o.drop)}},Hy=class extends Wy{retained=!1;index=-1;constructor(e,t,n,r,i,s){super(e,t,n,[]),this.key=r,this.memo=i,this.value=s}shouldRemove(){return!this.retained}reset(){this.retained=!1}},Gy=class extends Vy{type="list-block";opcodeMap=new Map;marker=null;lastIterator;constructor(e,t,n,r,i){super(e,t,n,r),this.iterableRef=i,this.lastIterator=wt(i)}initializeChild(e){e.index=this.children.length-1,this.opcodeMap.set(e.key,e)}evaluate(e){let t=wt(this.iterableRef);if(this.lastIterator!==t){let{bounds:n}=this,{dom:r}=e,i=this.marker=r.createComment("");r.insertAfter(n.parentElement(),i,n.lastNode()),this.sync(t),this.parentElement().removeChild(i),this.marker=null,this.lastIterator=t}super.evaluate(e)}sync(e){let{opcodeMap:t,children:n}=this,r=0,i=0;for(this.children=this.bounds.boundList=[];;){let s=e.next();if(null===s)break;let o=n[r],{key:a}=s;for(;void 0!==o&&o.retained;)o=n[++r];if(void 0!==o&&o.key===a)this.retainItem(o,s),r++;else if(t.has(a)){let e=t.get(a);if(e.index{let r=t.enterItem(e);r.index=s.length,s.push(r),n.set(a,r),Q(this,r)})}moveItem(e,t,n){let r,i,{children:s}=this;_t(e.memo,t.memo),_t(e.value,t.value),e.retained=!0,void 0===n?mg(e,this.marker):(r=e.lastNode().nextSibling,i=n.firstNode(),r!==i&&mg(e,i)),e.index=s.length,s.push(e)}deleteItem(e){te(e),yg(e),this.opcodeMap.delete(e.key)}},Ky=class{current=0;constructor(e,t){this.ops=e,this.exceptionHandler=t}goto(e){this.current=e}nextStatement(){return this.ops[this.current++]}handleException(){this.exceptionHandler&&this.exceptionHandler.handleException()}},Zy=class{constructor(e,t,n,r){this.env=e,this.updating=t,this.bounds=n,this.drop=r,Q(this,r),ee(this,()=>yg(this.bounds))}rerender({alwaysRevalidate:e=!1}={alwaysRevalidate:!1}){let{env:t,updating:n}=this;new qy(t,{alwaysRevalidate:e}).execute(n,this)}parentElement(){return this.bounds.parentElement()}firstNode(){return this.bounds.firstNode()}lastNode(){return this.bounds.lastNode()}handleException(){}},Yy=class{static restore(e,t){const n=new this(e.slice(),function(e){return[0,-1,e,0]}(e.length-1));return n.registers[0]=t,n.registers[3]=e.length-1,n.registers[2]=-1,n}registers;constructor(e=[],t){this.stack=e,this.registers=t}push(e){this.stack[++this.registers[3]]=e}dup(e=this.registers[3]){this.stack[++this.registers[3]]=this.stack[e]}copy(e,t){this.stack[t]=this.stack[e]}pop(e=1){let t=this.stack[this.registers[3]];return this.registers[3]-=e,t}peek(e=0){return this.stack[this.registers[3]-e]}get(e,t=this.registers[2]){return this.stack[t+e]}set(e,t,n=this.registers[2]){this.stack[n+t]=e}slice(e,t){return this.stack.slice(e,t)}capture(e){let t=this.registers[3]+1,n=t-e;return this.stack.slice(n,t)}reset(){this.stack.length=0}},Xy=class{drop={};scope=new it;dynamicScope=new it;updating=new it;cache=new it;list=new it;destroyable=new it;constructor(e,t){this.scope.push(e),this.dynamicScope.push(t),this.destroyable.push(this.drop)}},Jy=class e{#d;args;lowlevel;debug;trace;get stack(){return this.lowlevel.stack}get pc(){return this.lowlevel.fetchRegister(0)}#p=[null,null,null,null,null,null,null,null,null];fetch(e){let t=this.fetchValue(e);this.stack.push(t)}load(e){let t=this.stack.pop();this.loadValue(e,t)}loadValue(e,t){this.#p[e]=t}fetchValue(e){return function(e){return e<=3}(e)?this.lowlevel.fetchRegister(e):this.#p[e]}call(e){null!==e&&this.lowlevel.call(e)}return(){this.lowlevel.return()}#f;context;constructor({scope:e,dynamicScope:t,stack:n,pc:r},i,s){let o=Yy.restore(n,r);this.#f=s,this.context=i,this.#d=new Xy(e,t),this.args=new $m,this.lowlevel=new $y(o,i,void 0,o.registers),this.pushUpdating()}static initial(t,n){let r=_y.root(n.owner,n.scope??{self:lt,size:0});const i=function(e,t,n){return{pc:e,scope:t,dynamicScope:n,stack:[]}}(t.program.heap.getaddr(n.handle),r,n.dynamicScope);return new e(i,t,n.tree)}compile(e){return Lp(e.compile(this.context))}get constants(){return this.context.program.constants}get program(){return this.context.program}get env(){return this.context.env}captureClosure(e,t=this.lowlevel.fetchRegister(0)){return{pc:t,scope:this.scope(),dynamicScope:this.dynamicScope(),stack:this.stack.capture(e)}}capture(e,t=this.lowlevel.fetchRegister(0)){return new Qy(this.captureClosure(e,t),this.context)}beginCacheGroup(e){let t=this.updating(),n=new Tm;t.push(n),t.push(new Lm(e)),this.#d.cache.push(n),Le()}commitCacheGroup(){let e=this.updating(),t=this.#d.cache.pop(),n=Ie();e.push(new Im(t)),t.finalize(n,e.length)}enter(e){let t=this.capture(e),n=this.tree().pushResettableBlock(),r=new Wy(t,this.context,n,[]);this.didEnter(r)}enterItem({key:e,value:t,memo:n}){let{stack:r}=this,i=yy(t),s=yy(n);r.push(i),r.push(s);let o=this.capture(2),a=this.tree().pushResettableBlock(),l=new Hy(o,this.context,a,e,s,i);return this.didEnter(l),l}registerItem(e){this.listBlock().initializeChild(e)}enterList(e,t){let n=[],r=this.lowlevel.target(t),i=this.capture(0,r),s=this.tree().pushBlockList(n),o=new Gy(i,this.context,s,n,e);this.#d.list.push(o),this.didEnter(o)}didEnter(e){this.associateDestroyable(e),this.#d.destroyable.push(e),this.updateWith(e),this.pushUpdating(e.children)}exit(){this.#d.destroyable.pop(),this.#f.popBlock(),this.popUpdating()}exitList(){this.exit(),this.#d.list.pop()}pushRootScope(e,t){let n=_y.sized(t,e);return this.#d.scope.push(n),n}pushChildScope(){this.#d.scope.push(this.scope().child())}pushScope(e){this.#d.scope.push(e)}popScope(){this.#d.scope.pop()}pushDynamicScope(){let e=this.dynamicScope().child();return this.#d.dynamicScope.push(e),e}bindDynamicScope(e){let t=this.dynamicScope();for(const n of Vp(e))t.set(n,this.stack.pop())}pushUpdating(e=[]){this.#d.updating.push(e)}popUpdating(){return this.#d.updating.pop()}updateWith(e){this.updating().push(e)}listBlock(){return this.#d.list.current}associateDestroyable(e){Q(this.#d.destroyable.current,e)}updating(){return this.#d.updating.current}tree(){return this.#f}scope(){return this.#d.scope.current}dynamicScope(){return this.#d.dynamicScope.current}popDynamicScope(){this.#d.dynamicScope.pop()}getOwner(){return this.scope().owner}getSelf(){return this.scope().getSelf()}referenceForSymbol(e){return this.scope().getSymbol(e)}execute(e){return this._execute(e)}_execute(e){let t;e&&e(this);do{t=this.next()}while(!t.done);return t.value}next(){let e,{env:t}=this,n=this.lowlevel.nextStatement();return null!==n?(this.lowlevel.evaluateOuter(n,this),e={done:!1,value:null}):(this.stack.reset(),e={done:!0,value:new Zy(t,this.popUpdating(),this.#f.popBlock(),this.#d.drop)}),e}},Qy=class{state;context;constructor(e,t){this.state=e,this.context=t}evaluate(e){return new Jy(this.state,this.context,e)}},ev=class{constructor(e){this.vm=e}next(){return this.vm.next()}sync(){return this.vm.execute()}};function tv(e,t){let n;return Iy(e,()=>n=t.sync()),n}function nv(e,t,n,r,i,s=new wy){let o=Lp(i.compile(e)),a=i.symbolTable.symbols.length,l=Jy.initial(e,{scope:{self:n,size:a},dynamicScope:s,tree:r,handle:o,owner:t});return new ev(l)}function rv(e,t,n,r,i={},s=new wy){return function(e,t,n,r,i){const s=Object.keys(i).map(e=>[e,i[e]]),o=["main","else","attrs"],a=s.map(([e])=>`@${e}`);let l=e.constants.component(r,n,void 0,"{ROOT}");e.lowlevel.pushFrame();for(let h=0;h<3*o.length;h++)e.stack.push(null);e.stack.push(null),s.forEach(([,t])=>{e.stack.push(t)}),e.args.setup(e.stack,a,o,0,!0);const c=l.compilable,u={handle:Lp(c.compile(t)),symbolTable:c.symbolTable};return e.stack.push(e.args),e.stack.push(u),e.stack.push(l),new ev(e)}(Jy.initial(e,{tree:t,handle:e.stdlib.main,dynamicScope:s,owner:n}),e,n,r,function(e){const t=dt(e);return Object.keys(e).reduce((e,n)=>(e[n]=xt(t,n),e),{})}(i))}var iv=a({_instrumentStart:()=>hv,flaggedInstrument:()=>cv,instrument:()=>lv,reset:()=>fv,subscribe:()=>dv,subscribers:()=>sv,unsubscribe:()=>pv}),sv=[],ov={},av=()=>performance.now();function lv(e,t,n,r){let i,s,o;if(arguments.length<=3&&"function"==typeof t?(s=t,o=n):(i=t,s=n,o=r),0===sv.length)return s.call(o);let a=i||{},l=hv(e,()=>a);return l===uv?s.call(o):function(e,t,n,r){try{return e.call(r)}catch(i){throw n.exception=i,i}finally{t()}}(s,l,a,o)}function cv(e,t,n){return n()}function uv(){}function hv(e,t,n){if(0===sv.length)return uv;let r=ov[e];if(r||(r=function(e){let t=[];for(let n of sv)n.regex.test(e)&&t.push(n.object);return ov[e]=t,t}(e)),0===r.length)return uv;let i,s=t(n),o=O.STRUCTURED_PROFILE;o&&(i=`${e}: ${s.object}`,console.time(i));let a=[],l=av();for(let u of r)a.push(u.before(e,l,s));const c=r;return function(){let t=av();for(let n=0;n-1?yv(t,i.split(".")):xt(t,i);r.setAttribute(s,a,!1,null)}function wv(e,t){let n;return ft(()=>{let r=wt(e);return!0===r?n||(n=ip(t)):r||0===r?String(r):null})}function _v(){}var xv=class{classRef=null;rootRef;argsRevision;constructor(e,t,n,r,i,s){this.component=e,this.args=t,this.argsTag=n,this.finalizer=r,this.hasWrappedElement=i,this.isInteractive=s,this.classRef=null,this.argsRevision=null===t?0:le(n),this.rootRef=dt(e),ee(this,()=>this.willDestroy(),!0),ee(this,()=>this.component.destroy())}willDestroy(){let{component:e,isInteractive:t}=this;if(t){Pe(),e.trigger("willDestroyElement"),e.trigger("willClearRender"),Me();let t=Jl(e);t&&(tc(t),nc(e))}e.renderer.unregister(e)}finalize(){let{finalizer:e}=this;e(),this.finalizer=_v}};function Cv(e){let t=Object.create(null),n=Object.create(null);for(let r in e){let i=e[r],s=wt(i);bt(i)?t[r]=new kv(i,s):t[r]=s,n[r]=s}return n.attrs=t,n}var Sv=Symbol("REF"),kv=class{value;[gv];[Sv];constructor(e,t){this[gv]=!0,this[Sv]=e,this.value=t}update(e){_t(this[Sv],e)}},Ev=new WeakMap,Rv=Symbol("DIRTY_TAG"),Tv=Symbol("IS_DISPATCHING_ATTRS"),Lv=Symbol("BOUNDS"),Iv=at("ember-view"),Pv=class{templateFor(e){let t,{layout:n,layoutName:r}=e,i=Ur(e);if(void 0===n){if(void 0===r)return null;t=i.lookup(`template:${r}`)}else{if("function"!=typeof n)return null;t=n}return mv(t(i)).asWrappedLayout()}getDynamicLayout(e){return this.templateFor(e.component)}getTagName(e){let{component:t,hasWrappedElement:n}=e;return n?t&&t.tagName||"div":null}getCapabilities(){return Ov}prepareArgs(e,t){if(t.named.has("__ARGS__")){let{__ARGS__:e,...n}=t.named.capture(),r=wt(e);return{positional:r.positional,named:{...n,...r.named}}}const{positionalParams:n}=e.class??e;if(null==n||0===t.positional.length)return null;let r;if("string"==typeof n){let e=t.positional.capture();r={[n]:ft(()=>Jm(e))},Object.assign(r,t.named.capture())}else{if(!(Array.isArray(n)&&n.length>0))return null;{const e=Math.min(n.length,t.positional.length);r={},Object.assign(r,t.named.capture());for(let i=0;i{s.setAttribute("class",at(e),!1,null)}),l&&l.length&&l.forEach(e=>{!function(e,t,n){let[r,i,s]=t.split(":");if(""===r)n.setAttribute("class",at(i),!0,null);else{let t,o=r.indexOf(".")>-1,a=o?r.split("."):[],l=o?yv(e,a):xt(e,r);t=void 0===i?wv(l,o?a[a.length-1]:r):function(e,t,n){return ft(()=>wt(e)?t:n)}(l,i,s),n.setAttribute("class",t,!1,null)}}(r,e,s)}),s.setAttribute("class",Iv,!1,null),"ariaRole"in e&&s.setAttribute("role",xt(r,"ariaRole"),!1,null),e._transitionTo("hasElement"),n&&(Pe(),e.trigger("willInsertElement"),Me())}didRenderLayout(e,t){e.component[Lv]=t,e.finalize()}didCreate({component:e,isInteractive:t}){t&&(e._transitionTo("inDOM"),e.trigger("didInsertElement"),e.trigger("didRender"))}update(e){let{component:t,args:n,argsTag:r,argsRevision:i,isInteractive:s}=e;if(e.finalizer=hv("render.component",Av,t),Pe(),null!==n&&!ce(r,i)){Le();let i=Cv(n);r=e.argsTag=Ie(),e.argsRevision=le(r),t[Tv]=!0,t.setProperties(i),t[Tv]=!1,t.trigger("didUpdateAttrs"),t.trigger("didReceiveAttrs")}s&&(t.trigger("willUpdate"),t.trigger("willRender")),Me(),Ne(r),Ne(t[Rv])}didUpdateLayout(e){e.finalize()}didUpdate({component:e,isInteractive:t}){t&&(e.trigger("didUpdate"),e.trigger("didRender"))}getDestroyable(e){return e}};function Mv(e){return e.instrumentDetails({initialRender:!0})}function Av(e){return e.instrumentDetails({initialRender:!1})}var Ov={dynamicLayout:!0,dynamicTag:!0,prepareArgs:!0,createArgs:!0,attributeHook:!0,elementHook:!0,createCaller:!0,dynamicScope:!0,updateHook:!0,createInstance:!0,wrapped:!0,willDestroy:!0,hasSubOwner:!1},Nv=new Pv;function Fv(e){return e===Nv}function Dv(e){let t=ur(e,"content");return pe(Ot(e),Ot(t)),t}function zv(e,t,n){let r=Ge(e),i=Ke(e,t,r);if(t in e)return i;{let s=[i,Ke(e,"content",r)],o=Dv(e);return Ze(o)&&s.push(At(o,t,n)),xe(s)}}var jv=wl.create({content:null,init(){this._super(...arguments),nr(this),Ot(this),Et(this,zv)},willDestroy(){this.set("content",null),this._super(...arguments)},isTruthy:Yn("content",function(){return Boolean(ur(this,"content"))}),unknownProperty(e){let t=Dv(this);return t?ur(t,e):void 0},setUnknownProperty(e,t){let n=w(this);return n.isInitializing()||n.isPrototypeMeta(this)?(Dn(this,e,null,t),t):gr(Dv(this),e,t)}});function Uv(e){return Mu(e,{})}var Bv=class{__string;constructor(e){this.__string=e}toString(){return`${this.__string}`}toHTML(){return this.toString()}},$v=function(e){return null==e?e="":"string"!=typeof e&&(e=String(e)),new Bv(e)};function qv(e){return Mu(e,{})}var Vv=qv(({positional:e})=>ft(()=>Jm(e),null)),Wv=qv(({positional:e})=>{let t=e[0];return ft(()=>(...n)=>{let[r,...i]=Jm(e);if(mt(t)){let e=i.length>0?i[0]:n[0];return void _t(t,e)}return r.call(null,...i,...n)},null)}),Hv=qv(({named:e})=>{let t=ft(()=>Xm(e),null),n=new Map;for(let r in e)n.set(r,e[r]);return t.children=n,t}),Gv=e=>(e=>null==e||"function"!=typeof e.toString)(e)?"":String(e),Kv=qv(({positional:e})=>ft(()=>Jm(e).map(Gv).join(""),null)),Zv=qv(({positional:e})=>{let t=e[0]??lt,n=e[1]??lt;return ft(()=>{let e=wt(t);if(nt(e))return q(e,String(wt(n)))},e=>{let r=wt(t);if(nt(r))return V(r,String(wt(n)),e)})}),Yv=class{tag=ge();element;args;listener=null;constructor(e,t){this.element=e,this.args=t,ee(this,()=>{let{element:e,listener:t}=this;if(t){let{eventName:n,callback:r,options:i}=t;Qv(e,n,r,i)}})}updateListener(){let e,t,n,{element:r,args:i,listener:s}=this,o=i.positional[0],a=o?wt(o):void 0,l=i.positional[1],c=l?wt(l):void 0;{let{once:r,passive:s,capture:o}=i.named;r&&(e=wt(r)),s&&(t=wt(s)),o&&(n=wt(o))}let u,h=!1;if(h=null===s||a!==s.eventName||c!==s.userProvidedCallback||e!==s.once||t!==s.passive||n!==s.capture,h&&(void 0===e&&void 0===t&&void 0===n||(u={once:e,passive:t,capture:n})),h){let i=c;this.listener={eventName:a,callback:i,userProvidedCallback:c,once:e,passive:t,capture:n,options:u},s&&Qv(r,s.eventName,s.callback,s.options),function(e,t,n,r){Xv++,e.addEventListener(t,n,r)}(r,a,i,u)}}},Xv=0,Jv=0;function Qv(e,t,n,r){Jv++,e.removeEventListener(t,n,r)}var eb,tb=Iu(new class{getDebugName(){return"on"}getDebugInstance(){return null}get counters(){return{adds:Xv,removes:Jv}}create(e,t,n,r){return new Yv(t,r)}getTag({tag:e}){return e}install(e){e.updateListener()}update(e){e.updateListener()}getDestroyable(e){return e}},{}),nb={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!1,attributeHook:!1,elementHook:!1,createCaller:!1,dynamicScope:!1,updateHook:!1,createInstance:!1,wrapped:!1,willDestroy:!1,hasSubOwner:!1},rb=class{getCapabilities(){return nb}getDebugName({name:e}){return e}getSelf(){return ct}getDestroyable(){return null}},ib=new rb,sb=class{constructor(e="@glimmer/component/template-only",t="(unknown template-only component)"){this.moduleName=e,this.name=t}toString(){return this.moduleName}};function ob(e,t){return new sb(e,t)}Nu(ib,sb.prototype);var ab={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!0,attributeHook:!1,elementHook:!1,createCaller:!1,dynamicScope:!0,updateHook:!0,createInstance:!0,wrapped:!1,willDestroy:!1,hasSubOwner:!1};function lb(e,t={}){let n=Boolean(t.updateHook);return{asyncLifeCycleCallbacks:Boolean(t.asyncLifecycleCallbacks),destructor:Boolean(t.destructor),updateHook:n}}function cb(e){return e.capabilities.asyncLifeCycleCallbacks}function ub(e){return e.capabilities.updateHook}var hb=class{componentManagerDelegates=new WeakMap;constructor(e){this.factory=e}getDelegateFor(e){let{componentManagerDelegates:t}=this,n=t.get(e);if(void 0===n){let{factory:r}=this;n=r(e),t.set(e,n)}return n}create(e,t,n){let r=this.getDelegateFor(e),i=It(n.capture()),s=r.createComponent(t,i);return new db(s,r,i)}getDebugName(e){return"function"==typeof e?e.name:e.toString()}update(e){let{delegate:t}=e;if(ub(t)){let{component:n,args:r}=e;t.updateComponent(n,r)}}didCreate({component:e,delegate:t}){cb(t)&&t.didCreateComponent(e)}didUpdate({component:e,delegate:t}){(function(e){return cb(e)&&ub(e)})(t)&&t.didUpdateComponent(e)}didRenderLayout(){}didUpdateLayout(){}getSelf({component:e,delegate:t}){return dt(t.getContext(e))}getDestroyable(e){const{delegate:t}=e;if(function(e){return e.capabilities.destructor}(t)){const{component:n}=e;return ee(e,()=>t.destroyComponent(n)),e}return null}getCapabilities(){return ab}},db=class{constructor(e,t,n){this.component=e,this.delegate=t,this.args=n}};function pb(e,t={}){return{disableAutoTracking:Boolean(t.disableAutoTracking)}}var fb=class{componentManagerDelegates=new WeakMap;constructor(e){this.factory=e}getDelegateFor(e){let{componentManagerDelegates:t}=this,n=t.get(e);if(void 0===n){let{factory:r}=this;n=r(e),t.set(e,n)}return n}create(e,t,n,r){let i,s=this.getDelegateFor(e),o=It(r),a=s.createModifier(n,o);return i={tag:ge(),element:t,delegate:s,args:o,modifier:a},ee(i,()=>s.destroyModifier(a,o)),i}getDebugName(e){return"function"==typeof e?e.name||e.toString():""}getDebugInstance({modifier:e}){return e}getTag({tag:e}){return e}install({element:e,args:t,modifier:n,delegate:r}){let{capabilities:i}=r;i.disableAutoTracking?Ve(()=>r.installModifier(n,e,t)):r.installModifier(n,e,t)}update({args:e,modifier:t,delegate:n}){let{capabilities:r}=n;r.disableAutoTracking?Ve(()=>n.updateModifier(t,e)):n.updateModifier(t,e)}getDestroyable(e){return e}};function gb(e,t){return Nu(new hb(e),t)}function mb(e,t){return Iu(new fb(e),t)}function yb(e,t){return Mu(new xu(e),t)}var vb=Symbol("RECOMPUTE_TAG"),bb=Symbol("IS_CLASSIC_HELPER"),wb=class extends Yc{static isHelperFactory=!0;static[bb]=!0;static helper=kb;init(e){super.init(e),this[vb]=fe()}recompute(){_s(()=>de(this[vb]))}},_b=class{capabilities=bu(0,{hasValue:!0,hasDestroyable:!0});ownerInjection;constructor(e){let t={};Br(t,e),this.ownerInjection=t}createHelper(e,t){return{instance:(n=e,null!=n&&"class"in n?e.create():e.create(this.ownerInjection)),args:t};var n}getDestroyable({instance:e}){return e}getValue({instance:e,args:t}){let{positional:n,named:r}=t,i=e.compute(n,r);return Ne(e[vb]),i}getDebugName(e){return eb((e.class||e).prototype)}};yb(e=>new _b(e),wb);var xb=Ou(wb),Cb=class{isHelperFactory=!0;constructor(e){this.compute=e}create(){return{compute:this.compute}}},Sb=new class{capabilities=bu(0,{hasValue:!0});createHelper(e,t){return()=>e.compute.call(null,t.positional,t.named)}getValue(e){return e()}getDebugName(e){return eb(e.compute)}};function kb(e){return new Cb(e)}yb(()=>Sb,Cb.prototype);var Eb=Uv(()=>dt("30000000-1000-4000-2000-100000000000".replace(/[0-3]/g,e=>(4*e^16*Math.random()>>(2&e)).toString(16)))),Rb=class{constructor(e,t,n,r,i){this.main=e,this.trustingGuardedAppend=t,this.cautiousGuardedAppend=n,this.trustingNonDynamicAppend=r,this.cautiousNonDynamicAppend=i}get"trusting-append"(){return this.trustingGuardedAppend}get"cautious-append"(){return this.cautiousGuardedAppend}get"trusting-non-dynamic-append"(){return this.trustingNonDynamicAppend}get"cautious-non-dynamic-append"(){return this.cautiousNonDynamicAppend}getAppend(e){return e?this.trustingGuardedAppend:this.cautiousGuardedAppend}};function Tb(e,t,n){jf(e,()=>e(76),r=>{r(2,()=>{t?(e(68),e(43)):e(47)}),"number"==typeof n?(r(0,()=>{e(68),e(81),e(79),function(e){e(36,4),e(33,3,1),e(35,4),e(0),e(83),e(85,4),Hf(e,!1,!1,!0,()=>{e(92,4),e(95,4)}),e(35,4)}(e)}),r(1,()=>{Ef(e,null,null,()=>{e(3,n)})})):(r(0,()=>{e(47)}),r(1,()=>{e(47)})),r(4,()=>{e(68),e(44)}),r(5,()=>{e(68),e(45)}),r(6,()=>{e(68),e(46)})})}var Lb={symbols:{locals:null,upvars:null},moduleName:"stdlib",scopeValues:null,isStrictMode:!0,owner:null,size:0};function Ib(e,t){let n=new yf(e.program.heap,Lb);t(function(...t){mf(n,e,Lb,t)});let r=n.commit(0);if("number"!=typeof r)throw new Error("Unexpected errors compiling std");return r}var Pb=class{constants;heap;resolver;stdlib;createOp;env;program;constructor({constants:e,heap:t},n,r){this.constants=e,this.heap=t,this.resolver=r.resolver,this.createOp=n,this.env=r.env,this.program=r.program,this.stdlib=function(e){let t=Ib(e,e=>function(e){e(75,4),Hf(e,!1,!1,!0)}(e)),n=Ib(e,e=>Tb(e,!0,null)),r=Ib(e,e=>Tb(e,!1,null)),i=Ib(e,e=>Tb(e,!0,n)),s=Ib(e,e=>Tb(e,!1,r));return new Rb(t,i,s,n,r)}(this)}};function Mb(e){return{object:`${e.name}:main`}}var Ab,Ob={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!1,attributeHook:!1,elementHook:!1,createCaller:!1,dynamicScope:!0,updateHook:!1,createInstance:!0,wrapped:!1,willDestroy:!1,hasSubOwner:!1},Nb=gu(Ob),Fb=new class{create(e,t,n,r,i){let s=i.get("outletState"),o=t.ref;i.set("outletState",o);let a={finalize:hv("render.outlet",Mb,t)};if(void 0!==r.debugRenderTree){let e=wt(s)?.render?.owner,t=wt(o)?.render?.owner;if(e&&e!==t){let e=t,{mountPoint:n}=e;n&&(a.engine={mountPoint:n,instance:e})}}return a}getDebugName({name:e}){return`{{outlet}} for ${e}`}getDebugCustomRenderTree(e,t){let n=[];return n.push({bucket:t,type:"outlet",name:"main",args:ay,instance:void 0}),t.engine&&n.push({bucket:t.engine,type:"engine",name:t.engine.mountPoint,args:ay,instance:t.engine.instance}),n}getCapabilities(){return Ob}getSelf(){return lt}didCreate(){}didUpdate(){}didRenderLayout(e){e.finalize()}didUpdateLayout(){}getDestroyable(){return null}},Db=rg({id:null,block:'[[[8,[30,1],null,[["@controller","@model"],[[30,2],[30,3]]],null]],["@Component","@controller","@model"],[]]',moduleName:"(unknown template module)",isStrictMode:!0}),zb=class{handle=-1;resolvedName=null;manager=Fb;capabilities=Nb;compilable;constructor(e,t){this.state=t,this.compilable=mv(Db(e)).asLayout()}},jb=class extends Pv{component;constructor(e){super(),this.component=e}create(e,t,n,{isInteractive:r},i){let s=this.component,o=hv("render.component",Mv,s);i.view=s;let a=""!==s.tagName;a||(r&&s.trigger("willRender"),s._transitionTo("hasElement"),r&&s.trigger("willInsertElement"));let l=new xv(s,null,me,o,a,r);return Ne(s[Rv]),l}},Ub={dynamicLayout:!0,dynamicTag:!0,prepareArgs:!1,createArgs:!1,attributeHook:!0,elementHook:!0,createCaller:!0,dynamicScope:!0,updateHook:!0,createInstance:!0,wrapped:!0,willDestroy:!1,hasSubOwner:!1},Bb=class{handle=-1;resolvedName="-top-level";state;manager;capabilities=gu(Ub);compilable=null;constructor(e){this.manager=new jb(e);let t=Ya(e);this.state=t}},$b=class{constructor(e){this.inner=e}},qb=Uv(({positional:e})=>{const t=e[0];return ft(()=>{let e=wt(t);return Ne(Ot(e)),tr(e)&&(e=Dv(e)),new $b(e)})}),Vb=class{position=0;constructor(e){this.length=e}isEmpty(){return!1}memoFor(e){return e}next(){let{length:e,position:t}=this;if(t>=e)return null;let n=this.valueFor(t),r=this.memoFor(t);return this.position++,{value:n,memo:r}}},Wb=class extends Vb{static from(e){return e.length>0?new this(e):null}static fromForEachable(e){let t=[];return e.forEach(e=>t.push(e)),this.from(t)}constructor(e){super(e.length),this.array=e}valueFor(e){return this.array[e]}},Hb=class extends Vb{static from(e){return e.length>0?new this(e):null}constructor(e){super(e.length),this.array=e}valueFor(e){return Pt(this.array,e)}},Gb=class extends Vb{static fromIndexable(e){let t=Object.keys(e);if(0===t.length)return null;{let n=[];for(let r of t){let t;t=e[r],Oe()&&(Ne(Ke(e,r)),Array.isArray(t)&&Ne(Ke(t,"[]"))),n.push(t)}return new this(t,n)}}static fromForEachable(e){let t=[],n=[],r=0,i=!1;return e.forEach(function(e,s){i=i||arguments.length>=2,i&&t.push(s),n.push(e),r++}),0===r?null:i?new this(t,n):new Wb(n)}constructor(e,t){super(t.length),this.keys=e,this.values=t}valueFor(e){return this.values[e]}memoFor(e){return this.keys[e]}},Kb=class{static from(e){let t=e[Symbol.iterator](),n=t.next(),{done:r}=n;return r?null:new this(t,n)}position=0;constructor(e,t){this.iterable=e,this.result=t}isEmpty(){return!1}next(){let{iterable:e,result:t,position:n}=this;if(t.done)return null;let r=this.valueFor(t,n),i=this.memoFor(t,n);return this.position++,this.result=e.next(),{value:r,memo:i}}},Zb=class extends Kb{valueFor(e){return e.value}memoFor(e,t){return t}},Yb=class extends Kb{valueFor(e){return e.value[1]}memoFor(e){return e.value[0]}};function Xb(e){return null!=e&&"function"==typeof e.forEach}function Jb(e){return null!=e&&"function"==typeof e[Symbol.iterator]}W=(Ab={scheduleRevalidate(){bs.ensureInstance()},toBool:function(e){return tr(e)?(Ne(At(e,"content")),Boolean(ur(e,"isTruthy"))):Ic(e)?(Ne(At(e,"[]")),0!==e.length):null!==(t=e)&&"object"==typeof t&&"function"==typeof t.toHTML?Boolean(e.toString()):Boolean(e);var t},toIterator:function(e){return e instanceof $b?function(e){return null===(t=e)||"object"!=typeof t&&"function"!=typeof t?null:Array.isArray(e)||ir(e)?Gb.fromIndexable(e):Jb(e)?Yb.from(e):Xb(e)?Gb.fromForEachable(e):Gb.fromIndexable(e);var t}(e.inner):function(e){return Ze(e)?Array.isArray(e)?Wb.from(e):ir(e)?Hb.from(e):Jb(e)?Zb.from(e):Xb(e)?Wb.fromForEachable(e):null:null}(e)},getProp:hr,setProp:mr,getPath:ur,setPath:gr,scheduleDestroy(e,t){ks("actions",null,t,e)},scheduleDestroyed(e){ks("destroy",null,e)},warnIfStyleNotTrusted(e){},assert(e,t,n){},deprecate(e,t,n){}}).scheduleRevalidate,D=Ab.scheduleDestroy,z=Ab.scheduleDestroyed,j=Ab.toIterator,U=Ab.toBool,B=Ab.getProp,$=Ab.setProp,q=Ab.getPath,V=Ab.setPath;var Qb=class{enableDebugTooling=O._DEBUG_RENDER_TREE;constructor(e,t){this.owner=e,this.isInteractive=t}onTransactionCommit(){}},ew=Uv(({positional:e,named:t})=>{const n=e[0];let r=t.type,i=t.loc,s=t.original;return wt(r),wt(i),wt(s),ft(()=>wt(n))}),tw=Uv(e=>e.positional[0]),nw=Uv(({positional:e})=>ft(()=>{let t=e[0],n=e[1],r=wt(t).split("."),i=r[r.length-1],s=wt(n);return!0===s?ip(i):s||0===s?String(s):""})),rw=Uv(({positional:e},t)=>{let n=wt(e[0]);return dt(t.factoryFor(n)?.class)}),iw=Uv(({positional:e})=>{const t=e[0];return ft(()=>{let e=wt(t);return Ze(e)&&Ne(At(e,"[]")),e})}),sw=Uv(({positional:e})=>yt(e[0])),ow=Uv(({positional:e})=>gt(e[0])),aw=Uv(({positional:e,named:t})=>pt(wt(e[0]))),lw={dynamicLayout:!0,dynamicTag:!1,prepareArgs:!1,createArgs:!0,attributeHook:!1,elementHook:!1,createCaller:!0,dynamicScope:!0,updateHook:!0,createInstance:!0,wrapped:!1,willDestroy:!1,hasSubOwner:!0},cw=new class{getDynamicLayout(e){return mv(e.engine.lookup("template:application")(e.engine)).asLayout()}getCapabilities(){return lw}getOwner(e){return e.engine}create(e,{name:t},n,r){let i=e.buildChildEngineInstance(t);i.boot();let s,o,a,l,c=i.factoryFor("controller:application")||Fh(i,"application");if(n.named.has("model")&&(l=n.named.get("model")),void 0===l)s=c.create(),o=dt(s),a={engine:i,controller:s,self:o,modelRef:l};else{let e=wt(l);s=c.create({model:e}),o=dt(s),a={engine:i,controller:s,self:o,modelRef:l}}return r.debugRenderTree&&Q(i,s),a}getDebugName({name:e}){return e}getDebugCustomRenderTree(e,t,n){return[{bucket:t.engine,instance:t.engine,type:"engine",name:e.name,args:n},{bucket:t.controller,instance:t.controller,type:"route-template",name:"application",args:n}]}getSelf({self:e}){return e}getDestroyable(e){return e.engine}didCreate(){}didUpdate(){}didRenderLayout(){}didUpdateLayout(){}update(e){let{controller:t,modelRef:n}=e;void 0!==n&&t.set("model",wt(n))}},uw=class{handle=-1;state;manager=cw;compilable=null;capabilities=gu(lw);constructor(e){this.resolvedName=e,this.state={name:e}}},hw=Uv((e,t)=>{let n,r,i,s=e.positional[0];return n=Ym(e.named,oy),ft(()=>{let e=wt(s);return"string"==typeof e?(r===e||(r=e,i=_m(0,new uw(e),t,n,!0)),i):(i=null,r=null,null)})}),dw={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!0,attributeHook:!1,elementHook:!1,createCaller:!1,dynamicScope:!1,updateHook:!1,createInstance:!0,wrapped:!1,willDestroy:!1,hasSubOwner:!1},pw=gu(dw),fw=new class{create(e,t,n){let r=n.named.get("controller");return{self:r,controller:wt(r)}}getSelf({self:e}){return e}getDebugName({name:e}){return`route-template (${e})`}getDebugCustomRenderTree({name:e},t,n){return[{bucket:t,type:"route-template",name:e,args:n,instance:t.controller}]}getCapabilities(){return dw}didRenderLayout(){}didUpdateLayout(){}didCreate(){}didUpdate(){}getDestroyable(){return null}},gw=class{handle=-1;resolvedName;state;manager=fw;capabilities=pw;compilable;constructor(e,t){let n=mv(t);this.resolvedName=e,this.state={name:e},this.compilable=n.asLayout()}};function mw(e,t,n){return _m(0,new gw(t,n),e,null,!0)}var yw=Uv((e,t,n)=>{let r=ft(()=>wt(n.get("outletState"))?.outlets?.main),i=null,s=null;return ft(()=>{let e=wt(r),n=function(e,t){if(void 0===t)return null;let n=t.render;if(void 0===n)return null;let r=n.template;return null==r?null:{ref:e,name:n.name,template:r,controller:n.controller}}(r,e);if(!function(e,t){return null!==e&&null!==t&&e.template===t.template&&e.controller===t.controller}(n,i))if(i=n,null!==n){let o,a=e?.render?.owner??t,l=tt(),c=n.template;o=Du(c)?c:mw(a,n.name,c),l.Component=dt(o),l.controller=dt(n.controller);let u=Ct(r,["render","model"]),h=wt(u);l.model=ft(()=>(i===n&&(h=wt(u)),h));let d=Ym(l,oy);s=_m(0,new zb(t,n),a,d,!0)}else s=null;return s})});function vw(e){return{object:`component:${e}`}}var bw={mut:sw,readonly:ow,unbound:aw,"-hash":Hv,"-each-in":qb,"-normalize-class":nw,"-resolve":rw,"-track-array":iw,"-mount":hw,"-outlet":yw,"-in-el-null":tw},ww={...bw,array:Vv,concat:Kv,fn:Wv,get:Zv,hash:Hv,"unique-id":Eb};ww["-disallow-dynamic-resolution"]=ew;var _w={},xw={..._w,on:tb},Cw=class{componentDefinitionCache=new Map;lookupPartial(){return null}lookupHelper(e,t){let n=ww[e];if(void 0!==n)return n;let r=t.factoryFor(`helper:${e}`);if(void 0===r)return null;let i=r.class;return void 0===i?null:"function"==typeof i&&!0===i[bb]?(Mu(xb,r),r):i}lookupBuiltInHelper(e){return bw[e]??null}lookupModifier(e,t){let n=xw[e];if(void 0!==n)return n;let r=t.factoryFor(`modifier:${e}`);return void 0===r?null:r.class||null}lookupBuiltInModifier(e){return _w[e]??null}lookupComponent(e,t){let n=function(e,t){let n=function(e,t){let n=`component:${e}`;return t.factoryFor(n)||null}(t,e);if(null!=(r=n)&&"function"==typeof r.create&&n.class){let e=Op(n.class);if(void 0!==e)return{component:n,layout:e}}var r;return null===n?null:{component:n,layout:null}}(t,e);if(null===n)return null;let r,i=null;r=null===n.component?i=n.layout(t):n.component;let s=this.componentDefinitionCache.get(r);if(void 0!==s)return s;null===i&&null!==n.layout&&(i=n.layout(t));let o=hv("render.getComponentDefinition",vw,e),a=null;if(null===n.component)a={state:ob(void 0,e),manager:ib,template:i};else{let e=n.component,t=e.class,r=Fu(t);a={state:Fv(r)?e:t,manager:r,template:i}}return o(),this.componentDefinitionCache.set(r,a),a}},Sw="-top-level",kw=class e{static extend(t){return class extends e{static create(e){return e?super.create(Object.assign({},t,e)):super.create(t)}}}static reopenClass(e){Object.assign(this,e)}static create(t){let{environment:n,application:r,template:i}=t,s=Ur(t),o=i(s);return new e(n,s,o,r)}ref;state;constructor(e,t,n,r){this._environment=e,this.owner=t,this.template=n,this.namespace=r;let i=fe(),s={outlets:{main:void 0},render:{owner:t,name:Sw,controller:void 0,model:void 0,template:n}},o=this.ref=ft(()=>(Ne(i),s),e=>{de(i),s.outlets.main=e});this.state={ref:o,name:Sw,template:n,controller:void 0}}appendTo(e){let t;t=this._environment.hasDOM&&"string"==typeof e?document.querySelector(e):e,ks("render",this.owner.lookup("renderer:-dom"),"appendOutletView",this,t)}rerender(){}setOutletState(e){_t(this.ref,e)}destroy(){}},Ew=class e{constructor(e,t){this.view=e,this.outletState=t}child(){return new e(this.view,this.outletState)}get(e){return this.outletState}set(e,t){return this.outletState=t,t}},Rw=()=>{},Tw=class{type="component";#g;#m;constructor(e,t,n){this.#m=()=>{let r=rv(e.context,e.builder(e.env,n.into),e.owner,t,n?.args),i=this.#g=r.sync();Q(this,this.#g),this.#m=()=>{if(!re(i)&&!ie(i))return i.rerender({alwaysRevalidate:!1})}}}isFor(e){return!1}render(){this.#m()}destroy(){te(this)}get destroyed(){return ie(this)}get result(){return this.#g}},Lw=class{type="classic";id;result;destroyed;render;env;constructor(e,t,n,r,i,s,o,a){this.root=e,this.id=e instanceof kw?al(e):Kl(e),this.result=void 0,this.destroyed=!1,this.env=t.env,this.render=()=>{let e=mv(r).asLayout(),l=nv(t,n,i,a(t.env,{element:s,nextSibling:null}),e,o),c=this.result=l.sync();Q(this,c),this.render=()=>{if(!re(c)&&!ie(c))return c.rerender({alwaysRevalidate:!1})}}}isFor(e){return this.root===e}destroy(){let{result:e,env:t}=this;this.destroyed=!0,this.root=null,this.result=void 0,this.render=void 0,void 0!==e&&Iy(t,()=>te(e))}},Iw=[];function Pw(e){let t=Iw.indexOf(e);Iw.splice(t,1)}var Mw=null,Aw=0;bs.on("begin",function(){for(let e of Iw)e.rerender()}),bs.on("end",function(){for(let e of Iw)if(!e.isValid()){if(Aw>O._RERENDER_LOOP_LIMIT)throw Aw=0,e.destroy(),new Error("infinite rendering invalidation detected");return Aw++,bs.join(null,Rw)}Aw=0,function(){if(null!==Mw){let e=Mw.resolve;Mw=null,bs.join(null,e)}}()});var Ow=class e{static create(t,n){const r=new e(t,n);return Q(n,r),r}#y;#v=-1;#b=!1;#w=!1;#_=[];#x=[];constructor(e,t){this.#y=e,ee(this,()=>{this.clearAllRoots(t)})}get debug(){return{roots:this.#_,inRenderTransaction:this.#b,isInteractive:this.isInteractive}}get roots(){return this.#_}get owner(){return this.#y.owner}get builder(){return this.#y.builder}get context(){return this.#y.context}get env(){return this.context.env}get isInteractive(){return this.#y.context.env.isInteractive}renderRoot(e,t){let n=this.#_;return n.push(e),Q(this,e),1===n.length&&function(e){Iw.push(e)}(t),this.#C(t),e}#C(e){if(this.#b)return;this.#b=!0;let t=!1;try{this.renderRoots(e),t=!0}finally{t||(this.#v=le(_e)),this.#b=!1}}renderRoots(e){let t,n=this.#_,r=this.#x;do{t=n.length,Iy(this.context.env,()=>{for(let e=0;e=t||i.render()}this.#v=le(_e)})}while(n.length>t);for(;r.length;){let e=r.pop(),t=n.indexOf(e);n.splice(t,1)}0===this.#_.length&&Pw(e)}scheduleRevalidate(e){bs.scheduleOnce("render",this,this.revalidate,e)}isValid(){return this.#w||0===this.#_.length||ce(_e,this.#v)}revalidate(e){this.isValid()||this.#C(e)}clearAllRoots(e){let t=this.#_;for(let n of t)te(n);this.#x.length=0,this.#_=[],t.length&&Pw(e)}},Nw=class e{static strict(t,n,r){return new e(t,{hasDOM:Mo,...r},n,new Cw,im)}state;constructor(e,t,n,r,i){let s={constants:new pg,heap:new ag},o=Ly({document:n},new Qb(e,t.isInteractive),s,r),a=new Pb(s,e=>new sg(e),o);this.state=Ow.create({owner:e,context:a,builder:i},this)}get debugRenderTree(){let{debugRenderTree:e}=this.state.env;return e}isValid(){return this.state.isValid()}destroy(){te(this)}render(e,t){const n=new Tw(this.state,e,{args:t.args,into:(r=t.into,"element"in r?r:{element:r,nextSibling:null})});var r;return this.state.renderRoot(n,this)}rerender(){this.state.scheduleRevalidate(this)}},Fw=class extends Nw{static strict(e,t,n){return new Nw(e,{hasDOM:Mo,...n},t,new Cw,im)}_rootTemplate;_viewRegistry;static create(e){let{_viewRegistry:t}=e,n=Ur(e),r=n.lookup("service:-document"),i=n.lookup("-environment:main"),s=n.lookup(mc`template:-root`),o=n.lookup("service:-dom-builder");return new this(n,r,i,s,t,o)}constructor(e,t,n,r,i,s=im,o=new Cw){super(e,n,t,o,s),this._rootTemplate=r(e),this._viewRegistry=i||e.lookup("-view-registry:main")}appendOutletView(e,t){let n=new zb((r=e).owner,r.state);var r;let{name:i,template:s}=e.state,o=tt();o.Component=dt(mw(e.owner,i,s)),o.controller=lt,o.model=lt;let a=Ym(o,oy);this._appendDefinition(e,_m(0,n,e.owner,a,!0),t)}appendTo(e,t){let n=new Bb(e);this._appendDefinition(e,_m(0,n,this.state.owner,null,!0),t)}_appendDefinition(e,t,n){let r=dt(t),i=new Ew(null,lt),s=new Lw(e,this.state.context,this.state.owner,this._rootTemplate,r,n,i,this.state.builder);this.state.renderRoot(s,this)}cleanupRootFor(e){if(ie(this))return;let t=this.state.roots,n=t.length;for(;n--;){let r=t[n];"classic"===r.type&&r.isFor(e)&&(r.destroy(),t.splice(n,1))}}remove(e){e._transitionTo("destroying"),this.cleanupRootFor(e),this.state.isInteractive&&e.trigger("didDestroyElement")}get _roots(){return this.state.debug.roots}get _inRenderTransaction(){return this.state.debug.inRenderTransaction}get _isInteractive(){return this.state.debug.isInteractive}get _context(){return this.state.context}register(e){let t=Kl(e);this._viewRegistry[t]=e}unregister(e){delete this._viewRegistry[Kl(e)]}getElement(e){if(this._isInteractive)return Jl(e);throw new Error("Accessing `this.element` is not allowed in non-interactive environments (such as FastBoot).")}getBounds(e){let t=e[Lv];return{parentElement:t.parentElement(),firstNode:t.firstNode(),lastNode:t.lastNode()}}},Dw=class extends uu{rootElement=null;init(e){super.init(e),this.application._watchInstance(this),this.register("-application-instance:main",this,{instantiate:!1})}_bootSync(e){return this._booted||(e=new zw(e),this.setupRegistry(e),e.rootElement?this.rootElement=e.rootElement:this.rootElement=this.application.rootElement,e.location&&gr(this.router,"location",e.location),this.application.runInstanceInitializers(this),e.isInteractive&&this.setupEventDispatcher(),this._booted=!0),this}setupRegistry(e){this.constructor.setupRegistry(this.__registry__,e)}_router;get router(){if(!this._router){let e=this.lookup("router:main");this._router=e}return this._router}didCreateRootView(e){e.appendTo(this.rootElement)}startRouting(){this.router.startRouting()}setupRouter(){this.router.setupRouter()}handleURL(e){return this.setupRouter(),this.router.handleURL(e)}setupEventDispatcher(){let e=this.lookup("event_dispatcher:main"),t=ur(this.application,"customEvents"),n=ur(this,"customEvents"),r=Object.assign({},t,n);return e.setup(r,this.rootElement),e}getURL(){return this.router.url}visit(e){this.setupRouter();let t=this.__container__.lookup("-environment:main"),n=this.router,r=ur(n,"location");return r.setURL(e),n.handleURL(r.getURL()).followRedirects().then(()=>t.options.shouldRender?function(){if(null===Mw){let e;Mw={promise:new Promise(t=>e=t),resolve:e},ms()||bs.schedule("actions",null,Rw)}return Mw.promise}().then(()=>this):this,e=>{throw e.error&&e.error instanceof Error?e.error:"TransitionAborted"===e.name?new Error(e.message):e})}willDestroy(){super.willDestroy(),this.application._unwatchInstance(this)}static setupRegistry(e,t={}){let n=t instanceof zw?t:new zw(t);e.register("-environment:main",n.toEnvironment(),{instantiate:!1}),e.register("service:-document",n.document,{instantiate:!1}),super.setupRegistry(e,n)}},zw=class{isInteractive;_renderMode;isBrowser;location=null;shouldRender;document;rootElement;constructor(e={}){this.isInteractive=Boolean(Mo),this._renderMode=e._renderMode,void 0!==e.isBrowser?this.isBrowser=Boolean(e.isBrowser):this.isBrowser=Boolean(Mo),this.isBrowser||(this.isInteractive=!1,this.location="none"),void 0!==e.shouldRender?this.shouldRender=Boolean(e.shouldRender):this.shouldRender=!0,this.shouldRender||(this.isInteractive=!1),e.document?this.document=e.document:this.document="undefined"!=typeof document?document:null,e.rootElement&&(this.rootElement=e.rootElement),void 0!==e.location&&(this.location=e.location),void 0!==e.isInteractive&&(this.isInteractive=Boolean(e.isInteractive))}toEnvironment(){return{...kp,hasDOM:this.isBrowser,isInteractive:this.isInteractive,_renderMode:this._renderMode,options:this}}},jw=a({default:()=>Uw}),Uw=class extends Ul{static NAMESPACES=ai;static NAMESPACES_BY_ID=li;static processAll=fi;static byName=di;init(e){super.init(e),ci(this)}toString(){let e=ur(this,"name")||ur(this,"modulePrefix");if(e)return e;hi();let t=ni(this);return void 0===t&&(t=al(this),ti(this,t)),t}nameClasses(){pi(this)}destroy(){return ui(this),super.destroy()}};Uw.prototype.isNamespace=!0;var Bw=function(){function e(){this._vertices=new $w}return e.prototype.add=function(e,t,n,r){if(!e)throw new Error("argument `key` is required");var i=this._vertices,s=i.add(e);if(s.val=t,n)if("string"==typeof n)i.addEdge(s,i.add(n));else for(var o=0;o0){var r="cycle detected: "+t;throw this.each(this.path,function(e){r+=" <- "+e}),new Error(r)}}},e.prototype.reset=function(){this.stack.length=0,this.path.length=0,this.result.length=0;for(var e=0,t=this.length;e=0){var a=this[o];if(a.flag)continue;if(a.flag=!0,i.push(o),t===a.key)break;r.push(~o),this.pushIncoming(a)}else i.pop(),s.push(~o)}},e.prototype.pushIncoming=function(e){for(var t=this.stack,n=e.length-1;n>=0;n--){var r=e[n];this[r].flag||t.push(r)}},e.prototype.each=function(e,t){for(var n=0,r=e.length;n{for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&r.test(t)&&"class"===Sc(e[t])&&n.push(ip(t.replace(r,"")))}),n}},Ww=tb;function Hw(){}var Gw=class{static toString(){return"internal component"}constructor(e,t,n){this.owner=e,this.args=t,this.caller=n,Br(this,e)}get id(){return al(this)}get class(){return"ember-view"}validateArguments(){for(let e of Object.keys(this.args.named))this.isSupportedArgument(e)||this.onUnsupportedArgument(e)}named(e){let t=this.args.named[e];return t?wt(t):void 0}positional(e){let t=this.args.positional[e];return t?wt(t):void 0}listenerFor(e){return this.named(e)||Hw}isSupportedArgument(e){return!1}onUnsupportedArgument(e){}toString(){return`<${this.constructor}:${al(this)}>`}},Kw=new WeakMap;function Zw(e,t){let n={create(){throw void 0},toString:()=>e.toString()};return Kw.set(n,e),Nu(Xw,n),Ap(t,n),n}var Yw={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!0,attributeHook:!1,elementHook:!1,createCaller:!0,dynamicScope:!1,updateHook:!1,createInstance:!0,wrapped:!1,willDestroy:!1,hasSubOwner:!1},Xw=new class{getCapabilities(){return Yw}create(e,t,n,r,i,s){let o=new(a=t,Kw.get(a))(e,n.capture(),wt(s));var a;return Ve(o.validateArguments.bind(o)),o}didCreate(){}didUpdate(){}didRenderLayout(){}didUpdateLayout(){}getDebugName(e){return e.toString()}getSelf(e){return dt(e)}getDestroyable(e){return e}},Jw=rg({id:null,block:'[[[11,"input"],[16,1,[30,0,["id"]]],[16,0,[30,0,["class"]]],[17,1],[16,4,[30,0,["type"]]],[16,"checked",[30,0,["checked"]]],[16,2,[30,0,["value"]]],[4,[32,0],["change",[30,0,["change"]]],null],[4,[32,0],["input",[30,0,["input"]]],null],[4,[32,0],["keyup",[30,0,["keyUp"]]],null],[4,[32,0],["paste",[30,0,["valueDidChange"]]],null],[4,[32,0],["cut",[30,0,["valueDidChange"]]],null],[12],[13]],["&attrs"],[]]',moduleName:"packages/@ember/-internals/glimmer/lib/templates/input.hbs",scope:()=>({on:Ww}),isStrictMode:!0}),Qw=Object.freeze({});function e_(e){return function(e){return e.target}(e).value}function t_(e){return void 0===e?new r_(void 0):vt(e)?new r_(wt(e)):bt(e)?new i_(e):new s_(e)}var n_,r_=class{static{Gh(this.prototype,"value",[Vr])}#S=void Zh(this,"value");constructor(e){this.value=e}get(){return this.value}set(e){this.value=e}},i_=class{constructor(e){this.reference=e}get(){return wt(this.reference)}set(e){_t(this.reference,e)}},s_=class{local;upstream;lastUpstreamValue=Qw;constructor(e){this.upstream=new i_(e)}get(){let e=this.upstream.get();return e!==this.lastUpstreamValue&&(this.lastUpstreamValue=e,this.local=new r_(e)),this.local.get()}set(e){this.local.set(e)}},o_=class extends Gw{validateArguments(){super.validateArguments()}_value=t_(this.args.named.value);get value(){return this._value.get()}set value(e){this._value.set(e)}valueDidChange(e){this.value=e_(e)}static{Kh(this.prototype,"valueDidChange",[ql])}change(e){this.valueDidChange(e)}input(e){this.valueDidChange(e)}keyUp(e){switch(e.key){case"Enter":this.listenerFor("enter")(e),this.listenerFor("insert-newline")(e);break;case"Escape":this.listenerFor("escape-press")(e)}}static{Kh(this.prototype,"keyUp",[ql])}listenerFor(e){let t=super.listenerFor(e);return this.isVirtualEventListener(e,t)?function(e){return t=>e(e_(t),t)}(t):t}isVirtualEventListener(e,t){return-1!==["enter","insert-newline","escape-press"].indexOf(e)}};if(Mo){const e=Object.create(null),t=document.createElement("input");e[""]=!1,e.text=!0,e.checkbox=!0,n_=n=>{let r=e[n];if(void 0===r){try{t.type=n,r=t.type===n}catch(i){r=!1}finally{t.type="text"}e[n]=r}return r}}else n_=e=>""!==e;var a_=class extends o_{static toString(){return"Input"}get class(){return this.isCheckbox?"ember-checkbox ember-view":"ember-text-field ember-view"}get type(){let e=this.named("type");return null==e?"text":n_(e)?e:"text"}get isCheckbox(){return"checkbox"===this.named("type")}_checked=t_(this.args.named.checked);get checked(){return this.isCheckbox?this._checked.get():void 0}set checked(e){this._checked.set(e)}change(e){this.isCheckbox?this.checkedDidChange(e):super.change(e)}static{Kh(this.prototype,"change",[ql])}input(e){this.isCheckbox||super.input(e)}static{Kh(this.prototype,"input",[ql])}checkedDidChange(e){let t=e.target;this.checked=t.checked}static{Kh(this.prototype,"checkedDidChange",[ql])}isSupportedArgument(e){return-1!==["type","value","checked","enter","insert-newline","escape-press"].indexOf(e)||super.isSupportedArgument(e)}},l_=Zw(a_,Jw),c_=rg({id:null,block:'[[[11,"textarea"],[16,1,[30,0,["id"]]],[16,0,[30,0,["class"]]],[17,1],[16,2,[30,0,["value"]]],[4,[32,0],["change",[30,0,["change"]]],null],[4,[32,0],["input",[30,0,["input"]]],null],[4,[32,0],["keyup",[30,0,["keyUp"]]],null],[4,[32,0],["paste",[30,0,["valueDidChange"]]],null],[4,[32,0],["cut",[30,0,["valueDidChange"]]],null],[12],[13]],["&attrs"],[]]',moduleName:"packages/@ember/-internals/glimmer/lib/templates/textarea.hbs",scope:()=>({on:Ww}),isStrictMode:!0}),u_=class extends o_{static toString(){return"Textarea"}get class(){return"ember-text-area ember-view"}change(e){super.change(e)}static{Kh(this.prototype,"change",[ql])}input(e){super.input(e)}static{Kh(this.prototype,"input",[ql])}isSupportedArgument(e){return-1!==["type","value","enter","insert-newline","escape-press"].indexOf(e)||super.isSupportedArgument(e)}},h_=Zw(u_,c_),d_=rg({id:null,block:'[[[11,3],[16,1,[30,0,["id"]]],[16,0,[30,0,["class"]]],[16,"role",[30,0,["role"]]],[16,"title",[30,0,["title"]]],[16,"rel",[30,0,["rel"]]],[16,"tabindex",[30,0,["tabindex"]]],[16,"target",[30,0,["target"]]],[17,1],[16,6,[30,0,["href"]]],[4,[32,0],["click",[30,0,["click"]]],null],[12],[18,2,null],[13]],["&attrs","&default"],["yield"]]',moduleName:"packages/@ember/-internals/glimmer/lib/templates/link-to.hbs",scope:()=>({on:Ww}),isStrictMode:!0}),p_=[],f_={};function g_(e){return null==e}function m_(e){return"object"==typeof e&&null!==e&&!0===e.isQueryParams}var y_=class extends Gw{static toString(){return"LinkTo"}static{Gh(this.prototype,"routing",[dp("-routing")])}#k=void Zh(this,"routing");validateArguments(){super.validateArguments()}get class(){let e="ember-view";return this.isActive?(e+=this.classFor("active"),!1===this.willBeActive&&(e+=" ember-transitioning-out")):this.willBeActive&&(e+=" ember-transitioning-in"),this.isLoading&&(e+=this.classFor("loading")),this.isDisabled&&(e+=this.classFor("disabled")),e}get href(){if(this.isLoading)return"#";let{routing:e,route:t,models:n,query:r}=this;return Ne(Ke(e,"currentState")),e.generateURL(t,n,r)}click(e){if(!Wl(e))return;let t=e.currentTarget,n=t instanceof SVGAElement?t.target.baseVal:t.target;if(""!==n&&"_self"!==n)return;if(this.preventDefault(e),this.isDisabled)return;if(this.isLoading)return;let{routing:r,route:i,models:s,query:o,replace:a}=this,l={transition:void 0};cv(0,0,()=>{l.transition=r.transitionTo(i,s,o,a)})}static{Kh(this.prototype,"click",[ql])}get route(){if("route"in this.args.named){let e=this.named("route");return e&&this.namespaceRoute(e)}return this.currentRoute}currentRouteCache=Ue(()=>(Ne(Ke(this.routing,"currentState")),Ve(()=>this.routing.currentRouteName)));get currentRoute(){return Be(this.currentRouteCache)}get models(){return"models"in this.args.named?this.named("models"):"model"in this.args.named?[this.named("model")]:p_}get query(){return"query"in this.args.named?{...this.named("query")}:f_}get replace(){return!0===this.named("replace")}get isActive(){return this.isActiveForState(this.routing.currentState)}get willBeActive(){let e=this.routing.currentState,t=this.routing.targetState;return e===t?null:this.isActiveForState(t)}get isLoading(){return g_(this.route)||this.models.some(e=>g_(e))}get isDisabled(){return Boolean(this.named("disabled"))}get isEngine(){return void 0!==ou(this.owner)}get engineMountPoint(){return this.owner.mountPoint}classFor(e){let t=this.named(`${e}Class`);return!0===t||g_(t)?` ${e}`:t?` ${t}`:""}namespaceRoute(e){let{engineMountPoint:t}=this;return void 0===t?e:"application"===e?t:`${t}.${e}`}isActiveForState(e){if(g_(e))return!1;if(this.isLoading)return!1;let t=this.named("current-when");if("boolean"==typeof t)return t;if("string"==typeof t){let{routing:n}=this;return t.split(" ").some(t=>n.isActiveForRoute([],void 0,this.namespaceRoute(t),e))}{let{route:t,models:n,query:r,routing:i}=this;return i.isActiveForRoute(n,r,t,e)}}preventDefault(e){e.preventDefault()}isSupportedArgument(e){return-1!==["route","model","models","query","replace","disabled","current-when","activeClass","loadingClass","disabledClass"].indexOf(e)||super.isSupportedArgument(e)}},{prototype:v_}=y_,b_=(e,t)=>e?Object.getOwnPropertyDescriptor(e,t)||b_(Object.getPrototypeOf(e),t):null;{let e=v_.onUnsupportedArgument;Object.defineProperty(v_,"onUnsupportedArgument",{configurable:!0,enumerable:!1,value:function(t){"href"===t||e.call(this,t)}})}{let e=b_(v_,"models").get;Object.defineProperty(v_,"models",{configurable:!0,enumerable:!1,get:function(){let t=e.call(this);return t.length>0&&!("query"in this.args.named)&&m_(t[t.length-1])&&(t=t.slice(0,-1)),t}});let t=b_(v_,"query").get;Object.defineProperty(v_,"query",{configurable:!0,enumerable:!1,get:function(){if("query"in this.args.named){let e=t.call(this);return m_(e)?e.values??f_:e}{let t=e.call(this);if(t.length>0){let e=t[t.length-1];if(m_(e)&&null!==e.values)return e.values}return f_}}})}{let e=v_.onUnsupportedArgument;Object.defineProperty(v_,"onUnsupportedArgument",{configurable:!0,enumerable:!1,value:function(t){"params"!==t&&e.call(this,t)}})}var w_=Zw(y_,d_),__="%+b:0%";function x_(e){return e.nodeValue===__}var C_=class extends fg{candidate=null;openBlockDepth;injectedOmittedNode=!1;constructor(e,t,n){super(e,t),this.startingBlockDepth=n,this.openBlockDepth=n-1}},S_=class extends Qg{unmatchedAttributes=null;blockDepth=0;startingBlockOffset;constructor(e,t,n){if(super(e,t,n),n)throw new Error("Rehydration with nextSibling not supported");let r=this.currentCursor.element.firstChild;for(;null!==r&&!k_(r);)r=r.nextSibling;this.candidate=r;const i=R_(r);if(0!==i){const e=i-1,t=this.dom.createComment(`%+b:${e}%`);r.parentNode.insertBefore(t,this.candidate);let n=r.nextSibling;for(;null!==n&&(!E_(n)||R_(n)!==i);)n=n.nextSibling;const s=this.dom.createComment(`%-b:${e}%`);r.parentNode.insertBefore(s,n.nextSibling),this.candidate=t,this.startingBlockOffset=e}else this.startingBlockOffset=0}get currentCursor(){return this.cursors.current}get candidate(){return this.currentCursor?this.currentCursor.candidate:null}set candidate(e){this.currentCursor.candidate=e}disableRehydration(e){const t=this.currentCursor;t.candidate=null,t.nextSibling=e}enableRehydration(e){const t=this.currentCursor;t.candidate=e,t.nextSibling=null}pushElement(e,t=null){const n=new C_(e,t,this.blockDepth||0);null!==this.candidate&&(n.candidate=e.firstChild,this.candidate=e.nextSibling),this.cursors.push(n)}clearMismatch(e){let t=e;const n=this.currentCursor;if(null!==n){const e=n.openBlockDepth;if(e>=n.startingBlockDepth)for(;t&&!(E_(t)&&e>=T_(t,this.startingBlockOffset));)t=this.remove(t);else for(;null!==t;)t=this.remove(t);this.disableRehydration(t)}}__openBlock(){const{currentCursor:e}=this;if(null===e)return;const t=this.blockDepth;this.blockDepth++;const{candidate:n}=e;if(null===n)return;const{tagName:r}=e.element;k_(n)&&T_(n,this.startingBlockOffset)===t?(this.candidate=this.remove(n),e.openBlockDepth=t):"TITLE"!==r&&"SCRIPT"!==r&&"STYLE"!==r&&this.clearMismatch(n)}__closeBlock(){const{currentCursor:e}=this;if(null===e)return;const t=e.openBlockDepth;this.blockDepth--;const{candidate:n}=e;let r=!1;if(null!==n)if(r=!0,E_(n)&&T_(n,this.startingBlockOffset)===t){const t=this.remove(n);this.candidate=t,e.openBlockDepth--}else this.clearMismatch(n),r=!1;if(!r){const t=e.nextSibling;if(null!==t&&E_(t)&&T_(t,this.startingBlockOffset)===this.blockDepth){const n=this.remove(t);this.enableRehydration(n),e.openBlockDepth--}}}__appendNode(e){const{candidate:t}=this;return t||super.__appendNode(e)}__appendHTML(e){const t=this.markerBounds();if(t){const e=t.firstNode(),n=t.lastNode(),r=new gg(this.element,e.nextSibling,n.previousSibling),i=this.remove(e);return this.remove(n),null!==i&&P_(i)&&(this.candidate=this.remove(i),null!==this.candidate&&this.clearMismatch(this.candidate)),r}return super.__appendHTML(e)}remove(e){const t=e.parentNode,n=e.nextSibling;return t.removeChild(e),n}markerBounds(){const e=this.candidate;if(e&&I_(e)){const t=e;let n=t.nextSibling;for(;!I_(n);)n=Xe(n.nextSibling);return new gg(this.element,t,n)}return null}__appendText(e){const{candidate:t}=this;return t?3===t.nodeType?(t.nodeValue!==e&&(t.nodeValue=e),this.candidate=t.nextSibling,t):8===(n=t).nodeType&&"%|%"===n.nodeValue||P_(t)&&""===e?(this.candidate=this.remove(t),this.__appendText(e)):(this.clearMismatch(t),super.__appendText(e)):super.__appendText(e);var n}__appendComment(e){const t=this.candidate;return t&&8===t.nodeType?(t.nodeValue!==e&&(t.nodeValue=e),this.candidate=t.nextSibling,t):(t&&this.clearMismatch(t),super.__appendComment(e))}__openElement(e){const t=this.candidate;if(t&&L_(t)&&function(e,t){return"http://www.w3.org/2000/svg"===e.namespaceURI?e.tagName===t:e.tagName===t.toUpperCase()}(t,e))return this.unmatchedAttributes=[].slice.call(t.attributes),t;if(t){if(L_(t)&&"TBODY"===t.tagName)return this.pushElement(t,null),this.currentCursor.injectedOmittedNode=!0,this.__openElement(e);this.clearMismatch(t)}return super.__openElement(e)}__setAttribute(e,t,n){const r=this.unmatchedAttributes;if(r){const n=M_(r,e);if(n)return n.value!==t&&(n.value=t),void r.splice(r.indexOf(n),1)}return super.__setAttribute(e,t,n)}__setProperty(e,t){const n=this.unmatchedAttributes;if(n){const r=M_(n,e);if(r)return r.value!==t&&(r.value=t),void n.splice(n.indexOf(r),1)}return super.__setProperty(e,t)}__flushElement(e,t){const{unmatchedAttributes:n}=this;if(n){for(const e of n)this.constructing.removeAttribute(e.name);this.unmatchedAttributes=null}else super.__flushElement(e,t)}willCloseElement(){const{candidate:e,currentCursor:t}=this;null!==e&&this.clearMismatch(e),t&&t.injectedOmittedNode&&this.popElement(),super.willCloseElement()}getMarker(e,t){const n=e.querySelector(`script[glmr="${t}"]`);return n?(function(e){e.nodeType}(r=n),r):null;var r}__pushRemoteElement(e,t,n){const r=this.getMarker(e,t);if(!r||r.parentNode,void 0===n){for(;null!==e.firstChild&&e.firstChild!==r;)this.remove(e.firstChild);n=null}const i=new C_(e,null,this.blockDepth);this.cursors.push(i),null===r?this.disableRehydration(n):this.candidate=this.remove(r);const s=new tm(e);return this.pushBlock(s,!0)}didAppendBounds(e){if(super.didAppendBounds(e),this.candidate){const t=e.lastNode();this.candidate=t.nextSibling}return e}};function k_(e){return 8===e.nodeType&&0===e.nodeValue.lastIndexOf("%+b:",0)}function E_(e){return 8===e.nodeType&&0===e.nodeValue.lastIndexOf("%-b:",0)}function R_(e){return parseInt(e.nodeValue.slice(4),10)}function T_(e,t){return R_(e)-t}function L_(e){return 1===e.nodeType}function I_(e){return 8===e.nodeType&&"%glmr%"===e.nodeValue}function P_(e){return 8===e.nodeType&&"% %"===e.nodeValue}function M_(e,t){for(const n of e)if(n.name===t)return n}function A_(e,t){return S_.forInitialRender(e,t)}var O_=new WeakMap,N_=class extends Qg{serializeBlockDepth=0;__openBlock(){let{tagName:e}=this.element;if("TITLE"!==e&&"SCRIPT"!==e&&"STYLE"!==e){let e=this.serializeBlockDepth++;this.__appendComment(`%+b:${e}%`)}super.__openBlock()}__closeBlock(){let{tagName:e}=this.element;if(super.__closeBlock(),"TITLE"!==e&&"SCRIPT"!==e&&"STYLE"!==e){let e=--this.serializeBlockDepth;this.__appendComment(`%-b:${e}%`)}}__appendHTML(e){let{tagName:t}=this.element;if("TITLE"===t||"SCRIPT"===t||"STYLE"===t)return super.__appendHTML(e);let n=this.__appendComment("%glmr%");if("TABLE"===t){let t=e.indexOf("<");t>-1&&"tr"===e.slice(t+1,t+3)&&(e=`${e}`)}""===e?this.__appendComment("% %"):super.__appendHTML(e);let r=this.__appendComment("%glmr%");return new gg(this.element,n,r)}__appendText(e){let{tagName:t}=this.element,n=function(e){let{element:t,nextSibling:n}=e;return null===n?t.lastChild:n.previousSibling}(this);return"TITLE"===t||"SCRIPT"===t||"STYLE"===t?super.__appendText(e):""===e?this.__appendComment("% %"):(n&&3===n.nodeType&&this.__appendComment("%|%"),super.__appendText(e))}closeElement(){return O_.has(this.element)&&(O_.delete(this.element),super.closeElement()),super.closeElement()}openElement(e){return"tr"===e&&"TBODY"!==this.element.tagName&&"THEAD"!==this.element.tagName&&"TFOOT"!==this.element.tagName&&(this.openElement("tbody"),O_.set(this.constructing,!0),this.flushElement(null)),super.openElement(e)}pushRemoteElement(e,t,n=null){let{dom:r}=this,i=r.createElement("script");return i.setAttribute("glmr",t),r.insertBefore(e,i,n),super.pushRemoteElement(e,t,n)}};function F_(e,t){return N_.forInitialRender(e,t)}var D_=rg({id:null,block:'[[[46,[30,0],null,null,null]],[],["component"]]',moduleName:"packages/@ember/-internals/glimmer/lib/templates/root.hbs",isStrictMode:!0}),z_=rg({id:null,block:'[[[46,[28,[32,0],null,null],null,null,null]],[],["component"]]',moduleName:"packages/@ember/-internals/glimmer/lib/templates/outlet.hbs",scope:()=>({outletHelper:yw}),isStrictMode:!0});function j_(e){e.register("service:-dom-builder",{create(e){switch(Ur(e).lookup("-environment:main")._renderMode){case"serialize":return F_.bind(null);case"rehydrate":return A_.bind(null);default:return im.bind(null)}}}),e.register(mc`template:-root`,D_),e.register("renderer:-dom",Fw)}var U_=class e{moduleBasedResolver=!0;#E=new Map;original;static create({namespace:t}){return new e(t.modules)}constructor(e){this.addModules(e)}addModules(e){for(let[t,n]of Object.entries(e))this.#E.set(this.#R(t),n)}#R(e){return e.replace(B_,"").replace($_,"")}#T(e){return"config"===e?e:e+"s"}resolve(e){let[t,n]=e.split(":");n=this.#L(t,n);for(let r of[this.#I,this.#P,this.#M,this.#A]){let e=r.call(this,t,n);if(e)return this.#O(e.hit)}}#O(e){return e&&e.default&&(e=e.default),e}normalize(e){let[t,n]=e.split(":");return n=this.#L(t,n),`${t}:${n}`}#L(e,t){return"component"===e||"helper"===e||"modifier"===e||"template"===e&&0===t.indexOf("components/")?t.replace(/_/g,"-"):t.replace(/\./g,"/").replace(q_,"$1_$2").toLowerCase().replace(V_,"-")}#I(e,t){if("resolver"===e&&"current"===t)return{hit:{create:()=>this}}}#P(e,t){if("main"===t){let t=this.#E.get(e);if(t)return{hit:t}}}#M(e,t){let n=`${this.#T(e)}/${t}`,r=this.#E.get(n);if(r)return{hit:r}}#A(e,t){if("component"!==e)return;let n=`${this.#T(e)}/${t}/index`,r=this.#E.get(n);return r?{hit:r}:void 0}},B_=/\.\w{1,4}$/,$_=/^\.\//,q_=/([a-z\d])([A-Z])/g,V_=/[ _]/g,W_=class extends(Uw.extend(lu)){static initializers=Object.create(null);static instanceInitializers=Object.create(null);static initializer=G_("initializers");static instanceInitializer=G_("instanceInitializers");static buildRegistry(e){let t=new pc({resolver:H_(e)});return t.set=gr,t.register("application:main",e,{instantiate:!1}),function(e){e.optionsForType("component",{singleton:!1}),e.optionsForType("view",{singleton:!1}),e.register("controller:basic",eu,{instantiate:!1}),e.register("service:-routing",yp),e.register("resolver-for-debugging:main",e.resolver,{instantiate:!1}),e.register("container-debug-adapter:main",Vw)}(t),function(e){e.optionsForType("template",{instantiate:!1}),e.register("view:-outlet",kw),e.register("template:-outlet",z_),e.optionsForType("helper",{instantiate:!1}),e.register("component:input",l_),e.register("component:link-to",w_),e.register("component:textarea",h_)}(t),t}Resolver=U_;init(e){super.init(e),this.buildRegistry()}_initializersRan=!1;ensureInitializers(){this._initializersRan||(this.runInitializers(),this._initializersRan=!0)}buildInstance(e={}){return this.ensureInitializers(),uu.create({...e,base:this})}buildRegistry(){return this.__registry__=this.constructor.buildRegistry(this)}initializer(e){this.constructor.initializer(e)}instanceInitializer(e){this.constructor.instanceInitializer(e)}runInitializers(){this._runInitializer("initializers",(e,t)=>{t.initialize(this)})}runInstanceInitializers(e){this._runInitializer("instanceInitializers",(t,n)=>{n.initialize(e)})}_runInitializer(e,t){let n,r=ur(this.constructor,e),i=function(e){let t=[];for(let n in e)t.push(n);return t}(r),s=new Bw;for(let o of i)n=r[o],s.add(n.name,n,n.before,n.after);s.topsort(t)}};function H_(e){let t={namespace:e};return e.Resolver.create(t)}function G_(e){return function(t){let n=this.superclass;if(void 0!==n[e]&&n[e]===this[e]){let t={[e]:Object.create(this[e])};this.reopenClass(t)}this[e][t.name]=t}}var K_=a({default:()=>X_,getOwner:()=>Z_,setOwner:()=>Y_}),Z_=Io,Y_=Br,X_=class extends W_{static buildRegistry(e){let t=super.buildRegistry(e);return function(e){e.register("router:main",Md),e.register("-view-registry:main",{create:()=>Po(null)}),e.register("route:basic",Jh),e.register("event_dispatcher:main",hc),e.register("location:hash",Vd),e.register("location:history",Hd),e.register("location:none",Gd),e.register(mc`-bucket-cache:main`,{create:()=>new vp}),e.register("service:router",mp)}(t),j_(t),t}static initializer=G_("initializers");static instanceInitializer=G_("instanceInitializers");init(e){super.init(e),this.rootElement??="body",this._document??=null,this.eventDispatcher??=null,this.customEvents??=null,this.autoboot??=!0,this._document??=Mo?window.document:null,this._readinessDeferrals=1,this._booted=!1,this._applicationInstances=new Set,this.autoboot=Boolean(this.autoboot),this.autoboot&&(this.Router=(this.Router||Md).extend(),this._buildDeprecatedInstance(),this.waitForDOMReady())}buildInstance(e={}){return Dw.create({...e,base:this,application:this})}_watchInstance(e){this._applicationInstances.add(e)}_unwatchInstance(e){return this._applicationInstances.delete(e)}Router;__deprecatedInstance__;__container__;_buildDeprecatedInstance(){let e=this.buildInstance();this.__deprecatedInstance__=e,this.__container__=e.__container__}waitForDOMReady(){const e=this._document;if(null===e||"loading"!==e.readyState)ks("actions",this,this.domReady);else{let t=()=>{e.removeEventListener("DOMContentLoaded",t),ws(this,this.domReady)};e.addEventListener("DOMContentLoaded",t)}}domReady(){this.isDestroying||this.isDestroyed||this._bootSync()}deferReadiness(){this._readinessDeferrals++}advanceReadiness(){this._readinessDeferrals--,0===this._readinessDeferrals&&Ls(this,this.didBecomeReady)}_bootPromise=null;boot(){if(this._bootPromise)return this._bootPromise;try{this._bootSync()}catch(e){}return this._bootPromise}_bootResolver=null;_bootSync(){if(this._booted||this.isDestroying||this.isDestroyed)return;let e=this._bootResolver=Ba.defer();this._bootPromise=e.promise;try{this.runInitializers(),this.advanceReadiness()}catch(_6){throw e.reject(_6),_6}}reset(){let e=this.__deprecatedInstance__;this._readinessDeferrals=1,this._bootPromise=null,this._bootResolver=null,this._booted=!1,_s(this,function(){ws(e,"destroy"),this._buildDeprecatedInstance(),ks("actions",this,"_bootSync")})}didBecomeReady(){if(!this.isDestroying&&!this.isDestroyed)try{if(this.autoboot){let e=this.__deprecatedInstance__;e._bootSync(),this.ready(),e.startRouting()}this._bootResolver.resolve(this),this._booted=!0}catch(_6){throw this._bootResolver.reject(_6),_6}}ready(){return this}willDestroy(){super.willDestroy(),this._applicationInstances.size&&(this._applicationInstances.forEach(e=>e.destroy()),this._applicationInstances.clear())}visit(e,t){return this.boot().then(()=>{let n=this.buildInstance();return n.boot(t).then(()=>n.visit(e)).catch(e=>{throw ws(n,"destroy"),e})})}},J_=Object.assign({},{});function Q_(){return ex.global}var ex=globalThis.__embroider_macros__runtime_config__||={};ex.packages||={},ex.global||={};Object.assign(ex.packages,{}),Object.assign(ex.global,{});var tx="undefined"!=typeof window?window._embroider_macros_runtime_config:void 0;if(tx){let e={config:function(e){return ex.packages[e]},getGlobalConfig:Q_,setConfig(e,t){ex.packages[e]=t},setGlobalConfig(e,t){ex.global[e]=t}};for(let t of tx)t(e)}var nx=a({default:()=>rx,enterTestMode:()=>ix}),rx={modulePrefix:"marco",environment:"production",rootURL:"/",locationType:"history",EmberENV:{},APP:{}};function ix(){rx.locationType="none",rx.APP.rootElement="#ember-testing",rx.APP.autoboot=!1;const e=Q_()["@embroider/macros"];e&&(e.isTesting=!0)}var sx=()=>{},ox=()=>{};function ax(e){let t=e.lookup("renderer:-dom");if(!t)throw new Error("BUG: owner is missing renderer");return t.debugRenderTree.capture()}var lx=a({_warnIfUsingStrippedFeatureFlags:()=>{},assert:()=>Cn,captureRenderTree:()=>ax,debug:()=>dx,debugFreeze:()=>fx,debugSeal:()=>px,deprecate:()=>bx,deprecateFunc:()=>vx,getDebugFunction:()=>yx,info:()=>ux,inspect:()=>Pn,isTesting:()=>ru,registerDeprecationHandler:()=>sx,registerWarnHandler:()=>ox,runInDebug:()=>gx,setDebugFunction:()=>mx,setTesting:()=>iu,warn:()=>hx}),cx=()=>{},ux=cx,hx=cx,dx=cx,px=cx,fx=cx,gx=cx,mx=cx,yx=cx,vx=function(){return arguments[arguments.length-1]};function bx(){}var wx,_x=a({});wx={throwOnUnhandled:!1,workflow:[]},self.deprecationWorkflow=self.deprecationWorkflow||{},self.deprecationWorkflow.deprecationLog={messages:new Set},self.deprecationWorkflow.flushDeprecations=e=>function({handler:e="silence",config:t={}}={}){let n=self.deprecationWorkflow.deprecationLog.messages,r=t.workflow??[],i=n.values().filter(e=>!r.some(t=>t.matchId===e)).map(t=>({handler:e,matchId:t})),s={...t,workflow:[...r,...i]};return`import setupDeprecationWorkflow from 'ember-cli-deprecation-workflow';\n\nsetupDeprecationWorkflow(${JSON.stringify(s,void 0,2)});`}({config:wx,...e}),function(){const e="TEST_WAITERS",t="undefined"!=typeof Symbol?Symbol.for(e):e,n=function(){if("undefined"!=typeof globalThis)return globalThis;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;throw new Error("unable to locate global object")}();let r=n[t];void 0===r&&(r=n[t]=new Map)}();var xx=class{name;constructor(e){this.name=e}beginAsync(){return this}endAsync(){}waitUntil(){return!0}debugInfo(){return[]}reset(){}};function Cx(e){return new xx(e)}Cx("@ember/test-waiters:promise-waiter"),Cx("@ember/test-waiters:generator-waiter");var Sx,kx=a({assertDestroyablesDestroyed:()=>{},associateDestroyableChild:()=>Q,destroy:()=>te,enableDestroyableTracking:()=>{},isDestroyed:()=>ie,isDestroying:()=>re,registerDestructor:()=>Ex,unregisterDestructor:()=>Rx});function Ex(e,t){return ee(e,t)}function Rx(e,t){return function(e,t,n=!1){let r=J(e),i=n?"eagerDestructors":"destructors";r[i]=X(r[i],t)}(e,t)}(Sx=Lo,Sx?.__esModule?Sx:{default:Sx,...Sx}).getOwner;var Tx=Md,Lx=a({default:()=>Ix}),Ix=class extends Tx{location=rx.locationType;rootURL=rx.rootURL};function Px(e){return 0===e||3===e||1e4<=e&&e<2e4}function Mx(e){return 3e4<=e&&e<4e4}function Ax(e,t){const n=t instanceof Array?t:[t];return function(e){if(!(e instanceof Object))return!1;if("number"!=typeof e.kind)return!1;if("string"!=typeof e.content)return!1;if("number"!=typeof e.created_at)return!1;if("string"!=typeof e.pubkey)return!1;if(!e.pubkey.match(/^[a-f0-9]{64}$/))return!1;if(!Array.isArray(e.tags))return!1;for(let t=0;t0&&!t.includes(e.length))throw new Error(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function Fx(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}Ix.map(function(){this.route("place",{path:"/place/:place_id"}),this.route("place.new",{path:"/place/new"}),this.route("search"),this.route("menu"),this.route("lists",function(){this.route("list",{path:"/:list_id"})}),this.route("contributions"),this.route("oauth",function(){this.route("osm-callback",{path:"/osm/callback"})})});var Dx="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0,zx=e=>e instanceof Uint8Array,jx=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),Ux=(e,t)=>e<<32-t|e>>>t;if(68!==new Uint8Array(new Uint32Array([287454020]).buffer)[0])throw new Error("Non little-endian hardware is not supported");function Bx(e){if("string"==typeof e&&(e=function(e){if("string"!=typeof e)throw new Error("utf8ToBytes expected string, got "+typeof e);return new Uint8Array((new TextEncoder).encode(e))}(e)),!zx(e))throw new Error("expected Uint8Array, got "+typeof e);return e}var $x=class{clone(){return this._cloneInto()}};function qx(e){const t=t=>e().update(Bx(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function Vx(e=32){if(Dx&&"function"==typeof Dx.getRandomValues)return Dx.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}var Wx=class extends $x{constructor(e,t,n,r){super(),this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=r,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=jx(this.buffer)}update(e){Fx(this);const{view:t,buffer:n,blockLen:r}=this,i=(e=Bx(e)).length;for(let s=0;sr-s&&(this.process(n,0),s=0);for(let u=s;u>i&s),a=Number(n&s),l=r?4:0,c=r?0:4;e.setUint32(t+l,o,r),e.setUint32(t+c,a,r)}(n,r-8,BigInt(8*this.length),i),this.process(n,0);const o=jx(e),a=this.outputLen;if(a%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const l=a/4,c=this.get();if(l>c.length)throw new Error("_sha2: outputLen bigger than state");for(let u=0;ue&t^~e&n,Gx=(e,t,n)=>e&t^e&n^t&n,Kx=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Zx=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Yx=new Uint32Array(64),Xx=class extends Wx{constructor(){super(64,32,8,!1),this.A=0|Zx[0],this.B=0|Zx[1],this.C=0|Zx[2],this.D=0|Zx[3],this.E=0|Zx[4],this.F=0|Zx[5],this.G=0|Zx[6],this.H=0|Zx[7]}get(){const{A:e,B:t,C:n,D:r,E:i,F:s,G:o,H:a}=this;return[e,t,n,r,i,s,o,a]}set(e,t,n,r,i,s,o,a){this.A=0|e,this.B=0|t,this.C=0|n,this.D=0|r,this.E=0|i,this.F=0|s,this.G=0|o,this.H=0|a}process(e,t){for(let u=0;u<16;u++,t+=4)Yx[u]=e.getUint32(t,!1);for(let u=16;u<64;u++){const e=Yx[u-15],t=Yx[u-2],n=Ux(e,7)^Ux(e,18)^e>>>3,r=Ux(t,17)^Ux(t,19)^t>>>10;Yx[u]=r+Yx[u-7]+n+Yx[u-16]|0}let{A:n,B:r,C:i,D:s,E:o,F:a,G:l,H:c}=this;for(let u=0;u<64;u++){const e=c+(Ux(o,6)^Ux(o,11)^Ux(o,25))+Hx(o,a,l)+Kx[u]+Yx[u]|0,t=(Ux(n,2)^Ux(n,13)^Ux(n,22))+Gx(n,r,i)|0;c=l,l=a,a=o,o=s+e|0,s=i,i=r,r=n,n=e+t|0}n=n+this.A|0,r=r+this.B|0,i=i+this.C|0,s=s+this.D|0,o=o+this.E|0,a=a+this.F|0,l=l+this.G|0,c=c+this.H|0,this.set(n,r,i,s,o,a,l,c)}roundClean(){Yx.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}},Jx=qx(()=>new Xx),Qx=a({bitGet:()=>bC,bitLen:()=>vC,bitMask:()=>_C,bitSet:()=>wC,bytesToHex:()=>sC,bytesToNumberBE:()=>cC,bytesToNumberLE:()=>uC,concatBytes:()=>gC,createHmacDrbg:()=>SC,ensureBytes:()=>fC,equalBytes:()=>mC,hexToBytes:()=>lC,hexToNumber:()=>aC,numberToBytesBE:()=>hC,numberToBytesLE:()=>dC,numberToHexUnpadded:()=>oC,numberToVarBytesBE:()=>pC,utf8ToBytes:()=>yC,validateObject:()=>EC}),eC=BigInt(0),tC=BigInt(1),nC=BigInt(2),rC=e=>e instanceof Uint8Array,iC=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function sC(e){if(!rC(e))throw new Error("Uint8Array expected");let t="";for(let n=0;ne+t.length,0));let n=0;return e.forEach(e=>{if(!rC(e))throw new Error("Uint8Array expected");t.set(e,n),n+=e.length}),t}function mC(e,t){if(e.length!==t.length)return!1;for(let n=0;neC;e>>=tC,t+=1);return t}function bC(e,t){return e>>BigInt(t)&tC}var wC=(e,t,n)=>e|(n?tC:eC)<(nC<new Uint8Array(e),CC=e=>Uint8Array.from(e);function SC(e,t,n){if("number"!=typeof e||e<2)throw new Error("hashLen must be a number");if("number"!=typeof t||t<2)throw new Error("qByteLen must be a number");if("function"!=typeof n)throw new Error("hmacFn must be a function");let r=xC(e),i=xC(e),s=0;const o=()=>{r.fill(1),i.fill(0),s=0},a=(...e)=>n(i,r,...e),l=(e=xC())=>{i=a(CC([0]),e),r=a(),0!==e.length&&(i=a(CC([1]),e),r=a())},c=()=>{if(s++>=1e3)throw new Error("drbg: tried 1000 values");let e=0;const n=[];for(;e{let n;for(o(),l(e);!(n=t(c()));)l();return o(),n}}var kC={bigint:e=>"bigint"==typeof e,function:e=>"function"==typeof e,boolean:e=>"boolean"==typeof e,string:e=>"string"==typeof e,stringOrUint8Array:e=>"string"==typeof e||e instanceof Uint8Array,isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>"function"==typeof e&&Number.isSafeInteger(e.outputLen)};function EC(e,t,n={}){const r=(t,n,r)=>{const i=kC[n];if("function"!=typeof i)throw new Error(`Invalid validator "${n}", expected function`);const s=e[t];if(!(r&&void 0===s||i(s,e)))throw new Error(`Invalid param ${String(t)}=${s} (${typeof s}), expected ${n}`)};for(const[i,s]of Object.entries(t))r(i,s,!1);for(const[i,s]of Object.entries(n))r(i,s,!0);return e}var RC=BigInt(0),TC=BigInt(1),LC=BigInt(2),IC=BigInt(3),PC=BigInt(4),MC=BigInt(5),AC=BigInt(8);function OC(e,t){const n=e%t;return n>=RC?n:t+n}function NC(e,t,n){if(n<=RC||t 0");if(n===TC)return RC;let r=TC;for(;t>RC;)t&TC&&(r=r*e%n),e=e*e%n,t>>=TC;return r}function FC(e,t,n){let r=e;for(;t-- >RC;)r*=r,r%=n;return r}function DC(e,t){if(e===RC||t<=RC)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let n=OC(e,t),r=t,i=RC,s=TC,o=TC,a=RC;for(;n!==RC;){const e=r/n,t=r%n,l=i-o*e,c=s-a*e;r=n,n=t,i=o,s=a,o=l,a=c}if(r!==TC)throw new Error("invert: does not exist");return OC(i,t)}BigInt(9),BigInt(16);var zC=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function jC(e,t){const n=void 0!==t?t:e.toString(2).length;return{nBitLength:n,nByteLength:Math.ceil(n/8)}}function UC(e){if("bigint"!=typeof e)throw new Error("field order must be bigint");const t=e.toString(2).length;return Math.ceil(t/8)}function BC(e){const t=UC(e);return t+Math.ceil(t/2)}var $C=BigInt(0),qC=BigInt(1);function VC(e){return function(e){const t=zC.reduce((e,t)=>(e[t]="function",e),{ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"});EC(e,t)}(e.Fp),EC(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...jC(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}var{bytesToNumberBE:WC,hexToBytes:HC}=Qx,GC={Err:class extends Error{constructor(e=""){super(e)}},_parseInt(e){const{Err:t}=GC;if(e.length<2||2!==e[0])throw new t("Invalid signature integer tag");const n=e[1],r=e.subarray(2,n+2);if(!n||r.length!==n)throw new t("Invalid signature integer: wrong length");if(128&r[0])throw new t("Invalid signature integer: negative");if(0===r[0]&&!(128&r[1]))throw new t("Invalid signature integer: unnecessary leading zero");return{d:WC(r),l:e.subarray(n+2)}},toSig(e){const{Err:t}=GC,n="string"==typeof e?HC(e):e;if(!(n instanceof Uint8Array))throw new Error("ui8a expected");let r=n.length;if(r<2||48!=n[0])throw new t("Invalid signature tag");if(n[1]!==r-2)throw new t("Invalid signature: incorrect length");const{d:i,l:s}=GC._parseInt(n.subarray(2)),{d:o,l:a}=GC._parseInt(s);if(a.length)throw new t("Invalid signature: left bytes after parsing");return{r:i,s:o}},hexFromSig(e){const t=e=>8&Number.parseInt(e[0],16)?"00"+e:e,n=e=>{const t=e.toString(16);return 1&t.length?`0${t}`:t},r=t(n(e.s)),i=t(n(e.r)),s=r.length/2,o=i.length/2,a=n(s),l=n(o);return`30${n(o+s+4)}02${l}${i}02${a}${r}`}},KC=BigInt(0),ZC=BigInt(1),YC=BigInt(3);var XC=class extends $x{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,function(e){if("function"!=typeof e||"function"!=typeof e.create)throw new Error("Hash should be wrapped by utils.wrapConstructor");Ox(e.outputLen),Ox(e.blockLen)}(e);const n=Bx(t);if(this.iHash=e.create(),"function"!=typeof this.iHash.update)throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const r=this.blockLen,i=new Uint8Array(r);i.set(n.length>r?e.create().update(n).digest():n);for(let s=0;snew XC(e,t).update(n).digest();function QC(e){return{hash:e,hmac:(t,...n)=>JC(e,t,function(...e){const t=new Uint8Array(e.reduce((e,t)=>e+t.length,0));let n=0;return e.forEach(e=>{if(!zx(e))throw new Error("Uint8Array expected");t.set(e,n),n+=e.length}),t}(...n)),randomBytes:Vx}}JC.create=(e,t)=>new XC(e,t);var eS=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),tS=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),nS=BigInt(1),rS=BigInt(2),iS=(e,t)=>(e+t/rS)/t;function sS(e){const t=eS,n=BigInt(3),r=BigInt(6),i=BigInt(11),s=BigInt(22),o=BigInt(23),a=BigInt(44),l=BigInt(88),c=e*e*e%t,u=c*c*e%t,h=FC(u,n,t)*u%t,d=FC(h,n,t)*u%t,p=FC(d,rS,t)*c%t,f=FC(p,i,t)*p%t,g=FC(f,s,t)*f%t,m=FC(g,a,t)*g%t,y=FC(m,l,t)*m%t,v=FC(y,a,t)*g%t,b=FC(v,n,t)*u%t,w=FC(b,o,t)*f%t,_=FC(w,r,t)*c%t,x=FC(_,rS,t);if(!oS.eql(oS.sqr(x),e))throw new Error("Cannot find square root");return x}var oS=function(e,t,n=!1,r={}){if(e<=RC)throw new Error(`Expected Field ORDER > 0, got ${e}`);const{nBitLength:i,nByteLength:s}=jC(e,t);if(s>2048)throw new Error("Field lengths over 2048 bytes are not supported");const o=function(e){if(e%PC===IC){const t=(e+TC)/PC;return function(e,n){const r=e.pow(n,t);if(!e.eql(e.sqr(r),n))throw new Error("Cannot find square root");return r}}if(e%AC===MC){const t=(e-MC)/AC;return function(e,n){const r=e.mul(n,LC),i=e.pow(r,t),s=e.mul(n,i),o=e.mul(e.mul(s,LC),i),a=e.mul(s,e.sub(o,e.ONE));if(!e.eql(e.sqr(a),n))throw new Error("Cannot find square root");return a}}return function(e){const t=(e-TC)/LC;let n,r,i;for(n=e-TC,r=0;n%LC===RC;n/=LC,r++);for(i=LC;iOC(t,e),isValid:t=>{if("bigint"!=typeof t)throw new Error("Invalid field element: expected bigint, got "+typeof t);return RC<=t&&te===RC,isOdd:e=>(e&TC)===TC,neg:t=>OC(-t,e),eql:(e,t)=>e===t,sqr:t=>OC(t*t,e),add:(t,n)=>OC(t+n,e),sub:(t,n)=>OC(t-n,e),mul:(t,n)=>OC(t*n,e),pow:(e,t)=>function(e,t,n){if(n 0");if(n===RC)return e.ONE;if(n===TC)return t;let r=e.ONE,i=t;for(;n>RC;)n&TC&&(r=e.mul(r,i)),i=e.sqr(i),n>>=TC;return r}(a,e,t),div:(t,n)=>OC(t*DC(n,e),e),sqrN:e=>e*e,addN:(e,t)=>e+t,subN:(e,t)=>e-t,mulN:(e,t)=>e*t,inv:t=>DC(t,e),sqrt:r.sqrt||(e=>o(a,e)),invertBatch:e=>function(e,t){const n=new Array(t.length),r=t.reduce((t,r,i)=>e.is0(r)?t:(n[i]=t,e.mul(t,r)),e.ONE),i=e.inv(r);return t.reduceRight((t,r,i)=>e.is0(r)?t:(n[i]=e.mul(t,n[i]),e.mul(t,r)),i),n}(a,e),cmov:(e,t,n)=>n?t:e,toBytes:e=>n?dC(e,s):hC(e,s),fromBytes:e=>{if(e.length!==s)throw new Error(`Fp.fromBytes: expected ${s}, got ${e.length}`);return n?uC(e):cC(e)}});return Object.freeze(a)}(eS,void 0,void 0,{sqrt:sS}),aS=function(e,t){const n=t=>function(e){const t=function(e){const t=VC(e);return EC(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}(e),{Fp:n,n:r}=t,i=n.BYTES+1,s=2*n.BYTES+1;function o(e){return OC(e,r)}function a(e){return DC(e,r)}const{ProjectivePoint:l,normPrivateKeyToScalar:c,weierstrassEquation:u,isWithinCurveOrder:h}=function(e){const t=function(e){const t=VC(e);EC(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:n,Fp:r,a:i}=t;if(n){if(!r.eql(i,r.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if("object"!=typeof n||"bigint"!=typeof n.beta||"function"!=typeof n.splitScalar)throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...t})}(e),{Fp:n}=t,r=t.toBytes||((e,t)=>{const r=t.toAffine();return gC(Uint8Array.from([4]),n.toBytes(r.x),n.toBytes(r.y))}),i=t.fromBytes||(e=>{const t=e.subarray(1);return{x:n.fromBytes(t.subarray(0,n.BYTES)),y:n.fromBytes(t.subarray(n.BYTES,2*n.BYTES))}});function s(e){const{a:r,b:i}=t,s=n.sqr(e),o=n.mul(s,e);return n.add(n.add(o,n.mul(e,r)),i)}if(!n.eql(n.sqr(t.Gy),s(t.Gx)))throw new Error("bad generator point: equation left != right");function o(e){return"bigint"==typeof e&&KCn.eql(e,n.ZERO);return i(t)&&i(r)?h.ZERO:new h(t,r,n.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(e){const t=n.invertBatch(e.map(e=>e.pz));return e.map((e,n)=>e.toAffine(t[n])).map(h.fromAffine)}static fromHex(e){const t=h.fromAffine(i(fC("pointHex",e)));return t.assertValidity(),t}static fromPrivateKey(e){return h.BASE.multiply(l(e))}_setWindowSize(e){this._WINDOW_SIZE=e,c.delete(this)}assertValidity(){if(this.is0()){if(t.allowInfinityPoint&&!n.is0(this.py))return;throw new Error("bad point: ZERO")}const{x:e,y:r}=this.toAffine();if(!n.isValid(e)||!n.isValid(r))throw new Error("bad point: x or y not FE");const i=n.sqr(r),o=s(e);if(!n.eql(i,o))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){const{y:e}=this.toAffine();if(n.isOdd)return!n.isOdd(e);throw new Error("Field doesn't support isOdd")}equals(e){u(e);const{px:t,py:r,pz:i}=this,{px:s,py:o,pz:a}=e,l=n.eql(n.mul(t,a),n.mul(s,i)),c=n.eql(n.mul(r,a),n.mul(o,i));return l&&c}negate(){return new h(this.px,n.neg(this.py),this.pz)}double(){const{a:e,b:r}=t,i=n.mul(r,YC),{px:s,py:o,pz:a}=this;let l=n.ZERO,c=n.ZERO,u=n.ZERO,d=n.mul(s,s),p=n.mul(o,o),f=n.mul(a,a),g=n.mul(s,o);return g=n.add(g,g),u=n.mul(s,a),u=n.add(u,u),l=n.mul(e,u),c=n.mul(i,f),c=n.add(l,c),l=n.sub(p,c),c=n.add(p,c),c=n.mul(l,c),l=n.mul(g,l),u=n.mul(i,u),f=n.mul(e,f),g=n.sub(d,f),g=n.mul(e,g),g=n.add(g,u),u=n.add(d,d),d=n.add(u,d),d=n.add(d,f),d=n.mul(d,g),c=n.add(c,d),f=n.mul(o,a),f=n.add(f,f),d=n.mul(f,g),l=n.sub(l,d),u=n.mul(f,p),u=n.add(u,u),u=n.add(u,u),new h(l,c,u)}add(e){u(e);const{px:r,py:i,pz:s}=this,{px:o,py:a,pz:l}=e;let c=n.ZERO,d=n.ZERO,p=n.ZERO;const f=t.a,g=n.mul(t.b,YC);let m=n.mul(r,o),y=n.mul(i,a),v=n.mul(s,l),b=n.add(r,i),w=n.add(o,a);b=n.mul(b,w),w=n.add(m,y),b=n.sub(b,w),w=n.add(r,s);let _=n.add(o,l);return w=n.mul(w,_),_=n.add(m,v),w=n.sub(w,_),_=n.add(i,s),c=n.add(a,l),_=n.mul(_,c),c=n.add(y,v),_=n.sub(_,c),p=n.mul(f,w),c=n.mul(g,v),p=n.add(c,p),c=n.sub(y,p),p=n.add(y,p),d=n.mul(c,p),y=n.add(m,m),y=n.add(y,m),v=n.mul(f,v),w=n.mul(g,w),y=n.add(y,v),v=n.sub(m,v),v=n.mul(f,v),w=n.add(w,v),m=n.mul(y,w),d=n.add(d,m),m=n.mul(_,w),c=n.mul(b,c),c=n.sub(c,m),m=n.mul(b,y),p=n.mul(_,p),p=n.add(p,m),new h(c,d,p)}subtract(e){return this.add(e.negate())}is0(){return this.equals(h.ZERO)}wNAF(e){return p.wNAFCached(this,c,e,e=>{const t=n.invertBatch(e.map(e=>e.pz));return e.map((e,n)=>e.toAffine(t[n])).map(h.fromAffine)})}multiplyUnsafe(e){const r=h.ZERO;if(e===KC)return r;if(a(e),e===ZC)return this;const{endo:i}=t;if(!i)return p.unsafeLadder(this,e);let{k1neg:s,k1:o,k2neg:l,k2:c}=i.splitScalar(e),u=r,d=r,f=this;for(;o>KC||c>KC;)o&ZC&&(u=u.add(f)),c&ZC&&(d=d.add(f)),f=f.double(),o>>=ZC,c>>=ZC;return s&&(u=u.negate()),l&&(d=d.negate()),d=new h(n.mul(d.px,i.beta),d.py,d.pz),u.add(d)}multiply(e){a(e);let r,i,s=e;const{endo:o}=t;if(o){const{k1neg:e,k1:t,k2neg:a,k2:l}=o.splitScalar(s);let{p:c,f:u}=this.wNAF(t),{p:d,f:f}=this.wNAF(l);c=p.constTimeNegate(e,c),d=p.constTimeNegate(a,d),d=new h(n.mul(d.px,o.beta),d.py,d.pz),r=c.add(d),i=u.add(f)}else{const{p:e,f:t}=this.wNAF(s);r=e,i=t}return h.normalizeZ([r,i])[0]}multiplyAndAddUnsafe(e,t,n){const r=h.BASE,i=(e,t)=>t!==KC&&t!==ZC&&e.equals(r)?e.multiply(t):e.multiplyUnsafe(t),s=i(this,t).add(i(e,n));return s.is0()?void 0:s}toAffine(e){const{px:t,py:r,pz:i}=this,s=this.is0();null==e&&(e=s?n.ONE:n.inv(i));const o=n.mul(t,e),a=n.mul(r,e),l=n.mul(i,e);if(s)return{x:n.ZERO,y:n.ZERO};if(!n.eql(l,n.ONE))throw new Error("invZ was invalid");return{x:o,y:a}}isTorsionFree(){const{h:e,isTorsionFree:n}=t;if(e===ZC)return!0;if(n)return n(h,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:e,clearCofactor:n}=t;return e===ZC?this:n?n(h,this):this.multiplyUnsafe(t.h)}toRawBytes(e=!0){return this.assertValidity(),r(h,this,e)}toHex(e=!0){return sC(this.toRawBytes(e))}}h.BASE=new h(t.Gx,t.Gy,n.ONE),h.ZERO=new h(n.ZERO,n.ONE,n.ZERO);const d=t.nBitLength,p=function(e,t){const n=(e,t)=>{const n=t.negate();return e?n:t},r=e=>({windows:Math.ceil(t/e)+1,windowSize:2**(e-1)});return{constTimeNegate:n,unsafeLadder(t,n){let r=e.ZERO,i=t;for(;n>$C;)n&qC&&(r=r.add(i)),i=i.double(),n>>=qC;return r},precomputeWindow(e,t){const{windows:n,windowSize:i}=r(t),s=[];let o=e,a=o;for(let r=0;r>=d,r>a&&(r-=h,s+=qC);const o=t,p=t+Math.abs(r)-1,f=e%2!=0,g=r<0;0===r?c=c.add(n(f,i[o])):l=l.add(n(g,i[p]))}return{p:l,f:c}},wNAFCached(e,t,n,r){const i=e._WINDOW_SIZE||1;let s=t.get(e);return s||(s=this.precomputeWindow(e,i),1!==i&&t.set(e,r(s))),this.wNAF(i,s,n)}}}(h,t.endo?Math.ceil(d/2):d);return{CURVE:t,ProjectivePoint:h,normPrivateKeyToScalar:l,weierstrassEquation:s,isWithinCurveOrder:o}}({...t,toBytes(e,t,r){const i=t.toAffine(),s=n.toBytes(i.x),o=gC;return r?o(Uint8Array.from([t.hasEvenY()?2:3]),s):o(Uint8Array.from([4]),s,n.toBytes(i.y))},fromBytes(e){const t=e.length,r=e[0],o=e.subarray(1);if(t!==i||2!==r&&3!==r){if(t===s&&4===r)return{x:n.fromBytes(o.subarray(0,n.BYTES)),y:n.fromBytes(o.subarray(n.BYTES,2*n.BYTES))};throw new Error(`Point of length ${t} was invalid. Expected ${i} compressed bytes or ${s} uncompressed bytes`)}{const e=cC(o);if(!(KC<(a=e)&&asC(hC(e,t.nByteLength));function p(e){return e>r>>ZC}const f=(e,t,n)=>cC(e.slice(t,n));class g{constructor(e,t,n){this.r=e,this.s=t,this.recovery=n,this.assertValidity()}static fromCompact(e){const n=t.nByteLength;return e=fC("compactSignature",e,2*n),new g(f(e,0,n),f(e,n,2*n))}static fromDER(e){const{r:t,s:n}=GC.toSig(fC("DER",e));return new g(t,n)}assertValidity(){if(!h(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!h(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(e){return new g(this.r,this.s,e)}recoverPublicKey(e){const{r:r,s:i,recovery:s}=this,c=b(fC("msgHash",e));if(null==s||![0,1,2,3].includes(s))throw new Error("recovery id invalid");const u=2===s||3===s?r+t.n:r;if(u>=n.ORDER)throw new Error("recovery id 2 or 3 invalid");const h=1&s?"03":"02",p=l.fromHex(h+d(u)),f=a(u),g=o(-c*f),m=o(i*f),y=l.BASE.multiplyAndAddUnsafe(p,g,m);if(!y)throw new Error("point at infinify");return y.assertValidity(),y}hasHighS(){return p(this.s)}normalizeS(){return this.hasHighS()?new g(this.r,o(-this.s),this.recovery):this}toDERRawBytes(){return lC(this.toDERHex())}toDERHex(){return GC.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return lC(this.toCompactHex())}toCompactHex(){return d(this.r)+d(this.s)}}const m={isValidPrivateKey(e){try{return c(e),!0}catch(_6){return!1}},normPrivateKeyToScalar:c,randomPrivateKey:()=>{const e=BC(t.n);return function(e,t,n=!1){const r=e.length,i=UC(t),s=BC(t);if(r<16||r1024)throw new Error(`expected ${s}-1024 bytes of input, got ${r}`);const o=OC(n?cC(e):uC(e),t-TC)+TC;return n?dC(o,i):hC(o,i)}(t.randomBytes(e),t.n)},precompute:(e=8,t=l.BASE)=>(t._setWindowSize(e),t.multiply(BigInt(3)),t)};function y(e){const t=e instanceof Uint8Array,n="string"==typeof e,r=(t||n)&&e.length;return t?r===i||r===s:n?r===2*i||r===2*s:e instanceof l}const v=t.bits2int||function(e){const n=cC(e),r=8*e.length-t.nBitLength;return r>0?n>>BigInt(r):n},b=t.bits2int_modN||function(e){return o(v(e))},w=_C(t.nBitLength);function _(e){if("bigint"!=typeof e)throw new Error("bigint expected");if(!(KC<=e&&ee in i))throw new Error("sign() legacy options not supported");const{hash:s,randomBytes:u}=t;let{lowS:d,prehash:f,extraEntropy:m}=i;null==d&&(d=!0),e=fC("msgHash",e),f&&(e=fC("prehashed msgHash",s(e)));const y=b(e),w=c(r),C=[_(w),_(y)];if(null!=m){const e=!0===m?u(n.BYTES):m;C.push(fC("extraEntropy",e))}const S=gC(...C),k=y;return{seed:S,k2sig:function(e){const t=v(e);if(!h(t))return;const n=a(t),r=l.BASE.multiply(t).toAffine(),i=o(r.x);if(i===KC)return;const s=o(n*o(k+i*w));if(s===KC)return;let c=(r.x===i?0:2)|Number(r.y&ZC),u=s;return d&&p(s)&&(u=function(e){return p(e)?o(-e):e}(s),c^=1),new g(i,u,c)}}}(e,r,i),d=t;return SC(d.hash.outputLen,d.nByteLength,d.hmac)(s,u)},verify:function(e,n,r,i=C){const s=e;if(n=fC("msgHash",n),r=fC("publicKey",r),"strict"in i)throw new Error("options.strict was renamed to lowS");const{lowS:c,prehash:u}=i;let h,d;try{if("string"==typeof s||s instanceof Uint8Array)try{h=g.fromDER(s)}catch(x){if(!(x instanceof GC.Err))throw x;h=g.fromCompact(s)}else{if("object"!=typeof s||"bigint"!=typeof s.r||"bigint"!=typeof s.s)throw new Error("PARSE");{const{r:e,s:t}=s;h=new g(e,t)}}d=l.fromHex(r)}catch(_6){if("PARSE"===_6.message)throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(c&&h.hasHighS())return!1;u&&(n=t.hash(n));const{r:p,s:f}=h,m=b(n),y=a(f),v=o(m*y),w=o(p*y),_=l.BASE.multiplyAndAddUnsafe(d,v,w)?.toAffine();return!!_&&o(_.x)===p},ProjectivePoint:l,Signature:g,utils:m}}({...e,...QC(t)});return Object.freeze({...n(t),create:n})}({a:BigInt(0),b:BigInt(7),Fp:oS,n:tS,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{const t=tS,n=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),r=-nS*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),s=n,o=BigInt("0x100000000000000000000000000000000"),a=iS(s*e,t),l=iS(-r*e,t);let c=OC(e-a*n-l*i,t),u=OC(-a*r-l*s,t);const h=c>o,d=u>o;if(h&&(c=t-c),d&&(u=t-u),c>o||u>o)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:h,k1:c,k2neg:d,k2:u}}}},Jx),lS=BigInt(0),cS=e=>"bigint"==typeof e&&lSe.charCodeAt(0)));n=gC(t,t),uS[e]=n}return Jx(gC(n,...t))}var dS=e=>e.toRawBytes(!0).slice(1),pS=e=>hC(e,32),fS=e=>OC(e,eS),gS=e=>OC(e,tS),mS=aS.ProjectivePoint;function yS(e){let t=aS.utils.normPrivateKeyToScalar(e),n=mS.fromPrivateKey(t);return{scalar:n.hasEvenY()?t:gS(-t),bytes:dS(n)}}function vS(e){if(!cS(e))throw new Error("bad x: need 0 < x < p");const t=fS(e*e);let n=sS(fS(t*e+BigInt(7)));n%rS!==lS&&(n=fS(-n));const r=new mS(e,n,nS);return r.assertValidity(),r}function bS(...e){return gS(cC(hS("BIP0340/challenge",...e)))}function wS(e){return yS(e).bytes}function _S(e,t,n=Vx(32)){const r=fC("message",e),{bytes:i,scalar:s}=yS(t),o=fC("auxRand",n,32),a=hS("BIP0340/nonce",pS(s^cC(hS("BIP0340/aux",o))),i,r),l=gS(cC(a));if(l===lS)throw new Error("sign failed: k is zero");const{bytes:c,scalar:u}=yS(l),h=bS(c,i,r),d=new Uint8Array(64);if(d.set(c,0),d.set(pS(gS(u+h*s)),32),!xS(d,r,i))throw new Error("sign: Invalid signature produced");return d}function xS(e,t,n){const r=fC("signature",e,64),i=fC("message",t),s=fC("publicKey",n,32);try{const e=vS(cC(s)),t=cC(r.subarray(0,32));if(!cS(t))return!1;const n=cC(r.subarray(32,64));if(!(e=>"bigint"==typeof e&&lS({getPublicKey:wS,sign:_S,verify:xS,utils:{randomPrivateKey:aS.utils.randomPrivateKey,lift_x:vS,pointToBytes:dS,numberToBytesBE:hC,bytesToNumberBE:cC,taggedHash:hS,mod:OC}}))(),SS="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0,kS=e=>e instanceof Uint8Array,ES=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),RS=(e,t)=>e<<32-t|e>>>t;if(68!==new Uint8Array(new Uint32Array([287454020]).buffer)[0])throw new Error("Non little-endian hardware is not supported");var TS=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function LS(e){if(!kS(e))throw new Error("Uint8Array expected");let t="";for(let n=0;ne+t.length,0));let n=0;return e.forEach(e=>{if(!kS(e))throw new Error("Uint8Array expected");t.set(e,n),n+=e.length}),t}var AS=class{clone(){return this._cloneInto()}};function OS(e){const t=t=>e().update(PS(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function NS(e=32){if(SS&&"function"==typeof SS.getRandomValues)return SS.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}function FS(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function DS(e,...t){if(!(e instanceof Uint8Array))throw new Error("Expected Uint8Array");if(t.length>0&&!t.includes(e.length))throw new Error(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}var zS={number:FS,bool:function(e){if("boolean"!=typeof e)throw new Error(`Expected boolean, not ${e}`)},bytes:DS,hash:function(e){if("function"!=typeof e||"function"!=typeof e.create)throw new Error("Hash should be wrapped by utils.wrapConstructor");FS(e.outputLen),FS(e.blockLen)},exists:function(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")},output:function(e,t){DS(e);const n=t.outputLen;if(e.lengthr-s&&(this.process(n,0),s=0);for(let u=s;u>i&s),a=Number(n&s),l=r?4:0,c=r?0:4;e.setUint32(t+l,o,r),e.setUint32(t+c,a,r)}(n,r-8,BigInt(8*this.length),i),this.process(n,0);const o=ES(e),a=this.outputLen;if(a%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const l=a/4,c=this.get();if(l>c.length)throw new Error("_sha2: outputLen bigger than state");for(let u=0;ue&t^~e&n,BS=(e,t,n)=>e&t^e&n^t&n,$S=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),qS=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),VS=new Uint32Array(64),WS=class extends jS{constructor(){super(64,32,8,!1),this.A=0|qS[0],this.B=0|qS[1],this.C=0|qS[2],this.D=0|qS[3],this.E=0|qS[4],this.F=0|qS[5],this.G=0|qS[6],this.H=0|qS[7]}get(){const{A:e,B:t,C:n,D:r,E:i,F:s,G:o,H:a}=this;return[e,t,n,r,i,s,o,a]}set(e,t,n,r,i,s,o,a){this.A=0|e,this.B=0|t,this.C=0|n,this.D=0|r,this.E=0|i,this.F=0|s,this.G=0|o,this.H=0|a}process(e,t){for(let u=0;u<16;u++,t+=4)VS[u]=e.getUint32(t,!1);for(let u=16;u<64;u++){const e=VS[u-15],t=VS[u-2],n=RS(e,7)^RS(e,18)^e>>>3,r=RS(t,17)^RS(t,19)^t>>>10;VS[u]=r+VS[u-7]+n+VS[u-16]|0}let{A:n,B:r,C:i,D:s,E:o,F:a,G:l,H:c}=this;for(let u=0;u<64;u++){const e=c+(RS(o,6)^RS(o,11)^RS(o,25))+US(o,a,l)+$S[u]+VS[u]|0,t=(RS(n,2)^RS(n,13)^RS(n,22))+BS(n,r,i)|0;c=l,l=a,a=o,o=s+e|0,s=i,i=r,r=n,n=e+t|0}n=n+this.A|0,r=r+this.B|0,i=i+this.C|0,s=s+this.D|0,o=o+this.E|0,a=a+this.F|0,l=l+this.G|0,c=c+this.H|0,this.set(n,r,i,s,o,a,l,c)}roundClean(){VS.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}},HS=class extends WS{constructor(){super(),this.A=-1056596264,this.B=914150663,this.C=812702999,this.D=-150054599,this.E=-4191439,this.F=1750603025,this.G=1694076839,this.H=-1090891868,this.outputLen=28}},GS=OS(()=>new WS);function KS(e){if(!Number.isSafeInteger(e))throw new Error(`Wrong integer: ${e}`)}function ZS(...e){const t=(e,t)=>n=>e(t(n));return{encode:Array.from(e).reverse().reduce((e,n)=>e?t(e,n.encode):n.encode,void 0),decode:e.reduce((e,n)=>e?t(e,n.decode):n.decode,void 0)}}function YS(e){return{encode:t=>{if(!Array.isArray(t)||t.length&&"number"!=typeof t[0])throw new Error("alphabet.encode input should be an array of numbers");return t.map(t=>{if(KS(t),t<0||t>=e.length)throw new Error(`Digit index outside alphabet: ${t} (alphabet: ${e.length})`);return e[t]})},decode:t=>{if(!Array.isArray(t)||t.length&&"string"!=typeof t[0])throw new Error("alphabet.decode input should be array of strings");return t.map(t=>{if("string"!=typeof t)throw new Error(`alphabet.decode: not string element=${t}`);const n=e.indexOf(t);if(-1===n)throw new Error(`Unknown letter: "${t}". Allowed: ${e}`);return n})}}}function XS(e=""){if("string"!=typeof e)throw new Error("join separator should be string");return{encode:t=>{if(!Array.isArray(t)||t.length&&"string"!=typeof t[0])throw new Error("join.encode input should be array of strings");for(let e of t)if("string"!=typeof e)throw new Error(`join.encode: non-string input=${e}`);return t.join(e)},decode:t=>{if("string"!=typeof t)throw new Error("join.decode input should be string");return t.split(e)}}}function JS(e,t="="){if(KS(e),"string"!=typeof t)throw new Error("padding chr should be string");return{encode(n){if(!Array.isArray(n)||n.length&&"string"!=typeof n[0])throw new Error("padding.encode input should be array of strings");for(let e of n)if("string"!=typeof e)throw new Error(`padding.encode: non-string input=${e}`);for(;n.length*e%8;)n.push(t);return n},decode(n){if(!Array.isArray(n)||n.length&&"string"!=typeof n[0])throw new Error("padding.encode input should be array of strings");for(let e of n)if("string"!=typeof e)throw new Error(`padding.decode: non-string input=${e}`);let r=n.length;if(r*e%8)throw new Error("Invalid padding: string should have whole number of bytes");for(;r>0&&n[r-1]===t;r--)if(!((r-1)*e%8))throw new Error("Invalid padding: string has too much padding");return n.slice(0,r)}}}function QS(e){if("function"!=typeof e)throw new Error("normalize fn should be function");return{encode:e=>e,decode:t=>e(t)}}function ek(e,t,n){if(t<2)throw new Error(`convertRadix: wrong from=${t}, base cannot be less than 2`);if(n<2)throw new Error(`convertRadix: wrong to=${n}, base cannot be less than 2`);if(!Array.isArray(e))throw new Error("convertRadix: data should be array");if(!e.length)return[];let r=0;const i=[],s=Array.from(e);for(s.forEach(e=>{if(KS(e),e<0||e>=t)throw new Error(`Wrong integer: ${e}`)});;){let e=0,o=!0;for(let i=r;inew HS);var tk=(e,t)=>t?tk(t,e%t):e,nk=(e,t)=>e+(t-tk(e,t));function rk(e,t,n,r){if(!Array.isArray(e))throw new Error("convertRadix2: data should be array");if(t<=0||t>32)throw new Error(`convertRadix2: wrong from=${t}`);if(n<=0||n>32)throw new Error(`convertRadix2: wrong to=${n}`);if(nk(t,n)>32)throw new Error(`convertRadix2: carry overflow from=${t} to=${n} carryBits=${nk(t,n)}`);let i=0,s=0;const o=2**n-1,a=[];for(const l of e){if(KS(l),l>=2**t)throw new Error(`convertRadix2: invalid data word=${l} from=${t}`);if(i=i<32)throw new Error(`convertRadix2: carry overflow pos=${s} from=${t}`);for(s+=t;s>=n;s-=n)a.push((i>>s-n&o)>>>0);i&=2**s-1}if(i=i<=t)throw new Error("Excess padding");if(!r&&i)throw new Error(`Non-zero padding: ${i}`);return r&&s>0&&a.push(i>>>0),a}function ik(e,t=!1){if(KS(e),e<=0||e>32)throw new Error("radix2: bits should be in (0..32]");if(nk(8,e)>32||nk(e,8)>32)throw new Error("radix2: carry overflow");return{encode:n=>{if(!(n instanceof Uint8Array))throw new Error("radix2.encode input should be Uint8Array");return rk(Array.from(n),8,e,!t)},decode:n=>{if(!Array.isArray(n)||n.length&&"number"!=typeof n[0])throw new Error("radix2.decode input should be array of strings");return Uint8Array.from(rk(n,e,8,t))}}}function sk(e){if("function"!=typeof e)throw new Error("unsafeWrapper fn should be function");return function(...t){try{return e.apply(null,t)}catch(n){}}}var ok=ZS(ik(4),YS("0123456789ABCDEF"),XS("")),ak=ZS(ik(5),YS("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),JS(5),XS("")),lk=(ZS(ik(5),YS("0123456789ABCDEFGHIJKLMNOPQRSTUV"),JS(5),XS("")),ZS(ik(5),YS("0123456789ABCDEFGHJKMNPQRSTVWXYZ"),XS(""),QS(e=>e.toUpperCase().replace(/O/g,"0").replace(/[IL]/g,"1"))),ZS(ik(6),YS("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),JS(6),XS(""))),ck=ZS(ik(6),YS("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),JS(6),XS("")),uk=e=>ZS((KS(58),{encode:e=>{if(!(e instanceof Uint8Array))throw new Error("radix.encode input should be Uint8Array");return ek(Array.from(e),256,58)},decode:e=>{if(!Array.isArray(e)||e.length&&"number"!=typeof e[0])throw new Error("radix.decode input should be array of strings");return Uint8Array.from(ek(e,58,256))}}),YS(e),XS("")),hk=uk("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),dk=(uk("123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"),uk("rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz"),[0,2,3,5,6,7,9,10,11]),pk={encode(e){let t="";for(let n=0;n>25;let n=(33554431&e)<<5;for(let r=0;r>r&1)&&(n^=gk[r]);return n}function yk(e,t,n=1){const r=e.length;let i=1;for(let s=0;s126)throw new Error(`Invalid prefix (${e})`);i=mk(i)^t>>5}i=mk(i);for(let s=0;sn)throw new TypeError(`Wrong string length: ${e.length} (${e}). Expected (8..${n})`);const r=e.toLowerCase();if(e!==r&&e!==e.toUpperCase())throw new Error("String must be lowercase or uppercase");const i=(e=r).lastIndexOf("1");if(0===i||-1===i)throw new Error('Letter "1" must be present between prefix and data only');const s=e.slice(0,i),o=e.slice(i+1);if(o.length<6)throw new Error("Data must be at least 6 characters long");const a=fk.decode(o).slice(0,-6),l=yk(s,a,t);if(!o.endsWith(l))throw new Error(`Invalid checksum in ${e}: expected "${l}"`);return{prefix:s,words:a}}return{encode:function(e,n,r=90){if("string"!=typeof e)throw new Error("bech32.encode prefix should be string, not "+typeof e);if(!Array.isArray(n)||n.length&&"number"!=typeof n[0])throw new Error("bech32.encode words should be array of numbers, not "+typeof n);const i=e.length+7+n.length;if(!1!==r&&i>r)throw new TypeError(`Length ${i} exceeds limit ${r}`);return`${e=e.toLowerCase()}1${fk.encode(n)}${yk(e,n,t)}`},decode:o,decodeToBytes:function(e){const{prefix:t,words:n}=o(e,!1);return{prefix:t,words:n,bytes:r(n)}},decodeUnsafe:sk(o),fromWords:r,fromWordsUnsafe:s,toWords:i}}var bk=vk("bech32"),wk=(vk("bech32m"),{utf8:{encode:e=>(new TextDecoder).decode(e),decode:e=>(new TextEncoder).encode(e)},hex:ZS(ik(4),YS("0123456789abcdef"),XS(""),QS(e=>{if("string"!=typeof e||e.length%2)throw new TypeError(`hex.decode: expected string, got ${typeof e} with length ${e.length}`);return e.toLowerCase()})),base16:ok,base32:ak,base64:lk,base64url:ck,base58:hk,base58xmr:pk});function _k(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`positive integer expected, not ${e}`)}function xk(e){if("boolean"!=typeof e)throw new Error(`boolean expected, not ${e}`)}function Ck(e){return e instanceof Uint8Array||null!=e&&"object"==typeof e&&"Uint8Array"===e.constructor.name}function Sk(e,...t){if(!Ck(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error(`Uint8Array expected of length ${t}, not of length=${e.length}`)}function kk(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Ek(e,t){Sk(e);const n=t.outputLen;if(e.lengthnew Uint8Array(e.buffer,e.byteOffset,e.byteLength),Tk=e=>new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4)),Lk=e=>new DataView(e.buffer,e.byteOffset,e.byteLength);if(68!==new Uint8Array(new Uint32Array([287454020]).buffer)[0])throw new Error("Non little-endian hardware is not supported");var Ik=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Pk(e){Sk(e);let t="";for(let n=0;n=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:void 0}function Ak(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);const t=e.length,n=t/2;if(t%2)throw new Error("padded hex string expected, got unpadded hex of length "+t);const r=new Uint8Array(n);for(let i=0,s=0;i(Object.assign(t,e),t);function Dk(e,t,n,r){if("function"==typeof e.setBigUint64)return e.setBigUint64(t,n,r);const i=BigInt(32),s=BigInt(4294967295),o=Number(n>>i&s),a=Number(n&s),l=r?4:0,c=r?0:4;e.setUint32(t+l,o,r),e.setUint32(t+c,a,r)}var zk=16,jk=new Uint8Array(16),Uk=Tk(jk),Bk=(e,t,n,r)=>({s3:n<<31|r>>>1,s2:t<<31|n>>>1,s1:e<<31|t>>>1,s0:e>>>1^225<<24&-(1&r)}),$k=e=>(e>>>0&255)<<24|(e>>>8&255)<<16|(e>>>16&255)<<8|e>>>24&255,qk=class{constructor(e,t){this.blockLen=zk,this.outputLen=zk,this.s0=0,this.s1=0,this.s2=0,this.s3=0,this.finished=!1,Sk(e=Ok(e),16);const n=Lk(e);let r=n.getUint32(0,!1),i=n.getUint32(4,!1),s=n.getUint32(8,!1),o=n.getUint32(12,!1);const a=[];for(let d=0;d<128;d++)a.push({s0:$k(r),s1:$k(i),s2:$k(s),s3:$k(o)}),({s0:r,s1:i,s2:s,s3:o}=Bk(r,i,s,o));const l=(e=>e>65536?8:e>1024?4:2)(t||1024);if(![1,2,4,8].includes(l))throw new Error(`ghash: wrong window size=${l}, should be 2, 4 or 8`);this.W=l;const c=128/l,u=this.windowSize=2**l,h=[];for(let d=0;d>>l-s-1&1))continue;const{s0:o,s1:c,s2:u,s3:h}=a[l*d+s];t^=o,n^=c,r^=u,i^=h}h.push({s0:t,s1:n,s2:r,s3:i})}this.t=h}_updateBlock(e,t,n,r){e^=this.s0,t^=this.s1,n^=this.s2,r^=this.s3;const{W:i,t:s,windowSize:o}=this;let a=0,l=0,c=0,u=0;const h=(1<>>8*e&255;for(let e=8/i-1;e>=0;e--){const n=t>>>i*e&h,{s0:r,s1:p,s2:f,s3:g}=s[d*o+n];a^=r,l^=p,c^=f,u^=g,d+=1}}this.s0=a,this.s1=l,this.s2=c,this.s3=u}update(e){e=Ok(e),kk(this);const t=Tk(e),n=Math.floor(e.length/zk),r=e.length%zk;for(let i=0;i>>1|n,n=(1&t)<<7}return e[0]^=225&-t,e}((e=Ok(e)).slice());super(n,t),n.fill(0)}update(e){e=Ok(e),kk(this);const t=Tk(e),n=e.length%zk,r=Math.floor(e.length/zk);for(let i=0;ie(n,t.length).update(Ok(t)).digest(),n=e(new Uint8Array(16),0);return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=(t,n)=>e(t,n),t}var Hk=Wk((e,t)=>new qk(e,t)),Gk=Wk((e,t)=>new Vk(e,t)),Kk=16,Zk=new Uint8Array(Kk);function Yk(e){return e<<1^283&-(e>>7)}function Xk(e,t){let n=0;for(;t>0;t>>=1)n^=e&-(1&t),e=Yk(e);return n}var Jk=(()=>{let e=new Uint8Array(256);for(let n=0,r=1;n<256;n++,r^=Yk(r))e[n]=r;const t=new Uint8Array(256);t[0]=99;for(let n=0;n<255;n++){let r=e[255-n];r|=r<<8,t[e[n]]=255&(r^r>>4^r>>5^r>>6^r>>7^99)}return t})(),Qk=Jk.map((e,t)=>Jk.indexOf(t)),eE=e=>e<<24|e>>>8,tE=e=>e<<8|e>>>24;function nE(e,t){if(256!==e.length)throw new Error("Wrong sbox length");const n=new Uint32Array(256).map((n,r)=>t(e[r])),r=n.map(tE),i=r.map(tE),s=i.map(tE),o=new Uint32Array(65536),a=new Uint32Array(65536),l=new Uint16Array(65536);for(let c=0;c<256;c++)for(let t=0;t<256;t++){const u=256*c+t;o[u]=n[c]^r[t],a[u]=i[c]^s[t],l[u]=e[c]<<8|e[t]}return{sbox:e,sbox2:l,T0:n,T1:r,T2:i,T3:s,T01:o,T23:a}}var rE=nE(Jk,e=>Xk(e,3)<<24|e<<16|e<<8|Xk(e,2)),iE=nE(Qk,e=>Xk(e,11)<<24|Xk(e,13)<<16|Xk(e,9)<<8|Xk(e,14)),sE=(()=>{const e=new Uint8Array(16);for(let t=0,n=1;t<16;t++,n=Yk(n))e[t]=n;return e})();function oE(e){Sk(e);const t=e.length;if(![16,24,32].includes(t))throw new Error(`aes: wrong key size: should be 16, 24 or 32, got: ${t}`);const{sbox2:n}=rE,r=Tk(e),i=r.length,s=e=>cE(n,e,e,e,e),o=new Uint32Array(t+28);o.set(r);for(let a=i;a6&&a%i===4&&(e=s(e)),o[a]=o[a-i]^e}return o}function aE(e){const t=oE(e),n=t.slice(),r=t.length,{sbox2:i}=rE,{T0:s,T1:o,T2:a,T3:l}=iE;for(let c=0;c>>8&255]^a[t>>>16&255]^l[t>>>24]}return n}function lE(e,t,n,r,i,s){return e[n<<8&65280|r>>>8&255]^t[i>>>8&65280|s>>>24&255]}function cE(e,t,n,r,i){return e[255&t|65280&n]|e[r>>>16&255|i>>>16&65280]<<16}function uE(e,t,n,r,i){const{sbox2:s,T01:o,T23:a}=rE;let l=0;t^=e[l++],n^=e[l++],r^=e[l++],i^=e[l++];const c=e.length/4-2;for(let u=0;u>>0,a.setUint32(u,d,t),({s0:p,s1:f,s2:g,s3:m}=uE(e,o[0],o[1],o[2],o[3]));const y=Kk*Math.floor(l.length/4);if(y16)throw new Error(`aes/pcks5: wrong padding byte: ${r}`);const i=e.subarray(0,-r);for(let s=0;s=0;e--)t=t+(255&s[e])|0,s[e]=255&t,t>>>=8;({s0:a,s1:l,s2:c,s3:u}=uE(e,o[0],o[1],o[2],o[3]))}const p=Kk*Math.floor(h.length/4);if(pn(e,t),decrypt:(e,t)=>n(e,t)}}),Fk({blockSize:16},function(e,t={}){Sk(e);const n=!t.disablePadding;return{encrypt:(t,r)=>{Sk(t);const{b:i,o:s,out:o}=gE(t,n,r),a=oE(e);let l=0;for(;l+4<=i.length;){const{s0:e,s1:t,s2:n,s3:r}=uE(a,i[l+0],i[l+1],i[l+2],i[l+3]);s[l++]=e,s[l++]=t,s[l++]=n,s[l++]=r}if(n){const e=yE(t.subarray(4*l)),{s0:n,s1:r,s2:i,s3:o}=uE(a,e[0],e[1],e[2],e[3]);s[l++]=n,s[l++]=r,s[l++]=i,s[l++]=o}return a.fill(0),o},decrypt:(t,r)=>{fE(t);const i=aE(e),s=dE(t.length,r),o=Tk(t),a=Tk(s);for(let e=0;e+4<=o.length;){const{s0:t,s1:n,s2:r,s3:s}=hE(i,o[e+0],o[e+1],o[e+2],o[e+3]);a[e++]=t,a[e++]=n,a[e++]=r,a[e++]=s}return i.fill(0),mE(s,n)}}});var vE=Fk({blockSize:16,nonceLength:16},function(e,t,n={}){Sk(e),Sk(t,16);const r=!n.disablePadding;return{encrypt:(n,i)=>{const s=oE(e),{b:o,o:a,out:l}=gE(n,r,i),c=Tk(t);let u=c[0],h=c[1],d=c[2],p=c[3],f=0;for(;f+4<=o.length;)u^=o[f+0],h^=o[f+1],d^=o[f+2],p^=o[f+3],({s0:u,s1:h,s2:d,s3:p}=uE(s,u,h,d,p)),a[f++]=u,a[f++]=h,a[f++]=d,a[f++]=p;if(r){const e=yE(n.subarray(4*f));u^=e[0],h^=e[1],d^=e[2],p^=e[3],({s0:u,s1:h,s2:d,s3:p}=uE(s,u,h,d,p)),a[f++]=u,a[f++]=h,a[f++]=d,a[f++]=p}return s.fill(0),l},decrypt:(n,i)=>{fE(n);const s=aE(e),o=Tk(t),a=dE(n.length,i),l=Tk(n),c=Tk(a);let u=o[0],h=o[1],d=o[2],p=o[3];for(let e=0;e+4<=l.length;){const t=u,n=h,r=d,i=p;u=l[e+0],h=l[e+1],d=l[e+2],p=l[e+3];const{s0:o,s1:a,s2:f,s3:g}=hE(s,u,h,d,p);c[e++]=o^t,c[e++]=a^n,c[e++]=f^r,c[e++]=g^i}return s.fill(0),mE(a,r)}}});function bE(e,t,n,r,i){const s=e.create(n,r.length+(i?.length||0));i&&s.update(i),s.update(r);const o=new Uint8Array(16),a=Lk(o);return i&&Dk(a,0,BigInt(8*i.length),t),Dk(a,8,BigInt(8*r.length),t),s.update(o),s.digest()}Fk({blockSize:16,nonceLength:16},function(e,t){function n(n,r,i){const s=oE(e),o=n.length;i=dE(o,i);const a=Tk(n),l=Tk(i),c=r?l:a,u=Tk(t);let h=u[0],d=u[1],p=u[2],f=u[3];for(let e=0;e+4<=a.length;){const{s0:t,s1:n,s2:r,s3:i}=uE(s,h,d,p,f);l[e+0]=a[e+0]^t,l[e+1]=a[e+1]^n,l[e+2]=a[e+2]^r,l[e+3]=a[e+3]^i,h=c[e++],d=c[e++],p=c[e++],f=c[e++]}const g=Kk*Math.floor(a.length/4);if(gn(e,!0,t),decrypt:(e,t)=>n(e,!1,t)}}),Fk({blockSize:16,nonceLength:12,tagLength:16},function(e,t,n){if(Sk(t),0===t.length)throw new Error("aes/gcm: empty nonce");function r(e,t,r){const i=bE(Hk,!1,e,r,n);for(let n=0;n{Sk(e);const{xk:t,authKey:n,counter:s,tagMask:o}=i(),a=new Uint8Array(e.length+16);pE(t,!1,s,e,a);const l=r(n,o,a.subarray(0,a.length-16));return a.set(l,e.length),t.fill(0),a},decrypt:e=>{if(Sk(e),e.length<16)throw new Error("aes/gcm: ciphertext less than tagLen (16)");const{xk:t,authKey:n,counter:s,tagMask:o}=i(),a=e.subarray(0,-16),l=e.subarray(-16);if(!Nk(r(n,o,a),l))throw new Error("aes/gcm: invalid ghash tag");const c=pE(t,!1,s,a);return n.fill(0),o.fill(0),t.fill(0),c}}});var wE=(e,t,n)=>r=>{if(!Number.isSafeInteger(r)||t>r||r>n)throw new Error(`${e}: invalid value=${r}, must be [${t}..${n}]`)},_E=(Fk({blockSize:16,nonceLength:12,tagLength:16},function(e,t,n){const r=wE("AAD",0,2**36),i=wE("plaintext",0,2**36),s=wE("nonce",12,12),o=wE("ciphertext",16,2**36+16);function a(){const n=e.length;if(16!==n&&24!==n&&32!==n)throw new Error(`key length must be 16, 24 or 32 bytes, got: ${n} bytes`);const r=oE(e),i=new Uint8Array(n),s=new Uint8Array(16),o=Tk(t);let a=0,l=o[0],c=o[1],u=o[2],h=0;for(const e of[s,i].map(Tk)){const t=Tk(e);for(let e=0;e{Sk(e),i(e.length);const{encKey:t,authKey:n}=a(),r=l(t,n,e),s=new Uint8Array(e.length+16);return s.set(r,e.length),s.set(c(t,r,e)),t.fill(0),n.fill(0),s},decrypt:e=>{Sk(e),o(e.length);const t=e.subarray(-16),{encKey:n,authKey:r}=a(),i=c(n,t,e.subarray(0,-16)),s=l(n,r,i);if(n.fill(0),r.fill(0),!Nk(t,s))throw new Error("invalid polyval tag");return i}}}),(e,t)=>255&e[t++]|(255&e[t++])<<8),xE=class{constructor(e){this.blockLen=16,this.outputLen=16,this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.pos=0,this.finished=!1,Sk(e=Ok(e),32);const t=_E(e,0),n=_E(e,2),r=_E(e,4),i=_E(e,6),s=_E(e,8),o=_E(e,10),a=_E(e,12),l=_E(e,14);this.r[0]=8191&t,this.r[1]=8191&(t>>>13|n<<3),this.r[2]=7939&(n>>>10|r<<6),this.r[3]=8191&(r>>>7|i<<9),this.r[4]=255&(i>>>4|s<<12),this.r[5]=s>>>1&8190,this.r[6]=8191&(s>>>14|o<<2),this.r[7]=8065&(o>>>11|a<<5),this.r[8]=8191&(a>>>8|l<<8),this.r[9]=l>>>5&127;for(let c=0;c<8;c++)this.pad[c]=_E(e,16+2*c)}process(e,t,n=!1){const r=n?0:2048,{h:i,r:s}=this,o=s[0],a=s[1],l=s[2],c=s[3],u=s[4],h=s[5],d=s[6],p=s[7],f=s[8],g=s[9],m=_E(e,t+0),y=_E(e,t+2),v=_E(e,t+4),b=_E(e,t+6),w=_E(e,t+8),_=_E(e,t+10),x=_E(e,t+12),C=_E(e,t+14);let S=i[0]+(8191&m),k=i[1]+(8191&(m>>>13|y<<3)),E=i[2]+(8191&(y>>>10|v<<6)),R=i[3]+(8191&(v>>>7|b<<9)),T=i[4]+(8191&(b>>>4|w<<12)),L=i[5]+(w>>>1&8191),I=i[6]+(8191&(w>>>14|_<<2)),P=i[7]+(8191&(_>>>11|x<<5)),M=i[8]+(8191&(x>>>8|C<<8)),A=i[9]+(C>>>5|r),O=0,N=O+S*o+k*(5*g)+E*(5*f)+R*(5*p)+T*(5*d);O=N>>>13,N&=8191,N+=L*(5*h)+I*(5*u)+P*(5*c)+M*(5*l)+A*(5*a),O+=N>>>13,N&=8191;let F=O+S*a+k*o+E*(5*g)+R*(5*f)+T*(5*p);O=F>>>13,F&=8191,F+=L*(5*d)+I*(5*h)+P*(5*u)+M*(5*c)+A*(5*l),O+=F>>>13,F&=8191;let D=O+S*l+k*a+E*o+R*(5*g)+T*(5*f);O=D>>>13,D&=8191,D+=L*(5*p)+I*(5*d)+P*(5*h)+M*(5*u)+A*(5*c),O+=D>>>13,D&=8191;let z=O+S*c+k*l+E*a+R*o+T*(5*g);O=z>>>13,z&=8191,z+=L*(5*f)+I*(5*p)+P*(5*d)+M*(5*h)+A*(5*u),O+=z>>>13,z&=8191;let j=O+S*u+k*c+E*l+R*a+T*o;O=j>>>13,j&=8191,j+=L*(5*g)+I*(5*f)+P*(5*p)+M*(5*d)+A*(5*h),O+=j>>>13,j&=8191;let U=O+S*h+k*u+E*c+R*l+T*a;O=U>>>13,U&=8191,U+=L*o+I*(5*g)+P*(5*f)+M*(5*p)+A*(5*d),O+=U>>>13,U&=8191;let B=O+S*d+k*h+E*u+R*c+T*l;O=B>>>13,B&=8191,B+=L*a+I*o+P*(5*g)+M*(5*f)+A*(5*p),O+=B>>>13,B&=8191;let $=O+S*p+k*d+E*h+R*u+T*c;O=$>>>13,$&=8191,$+=L*l+I*a+P*o+M*(5*g)+A*(5*f),O+=$>>>13,$&=8191;let q=O+S*f+k*p+E*d+R*h+T*u;O=q>>>13,q&=8191,q+=L*c+I*l+P*a+M*o+A*(5*g),O+=q>>>13,q&=8191;let V=O+S*g+k*f+E*p+R*d+T*h;O=V>>>13,V&=8191,V+=L*u+I*c+P*l+M*a+A*o,O+=V>>>13,V&=8191,O=(O<<2)+O|0,O=O+N|0,N=8191&O,O>>>=13,F+=O,i[0]=N,i[1]=F,i[2]=D,i[3]=z,i[4]=j,i[5]=U,i[6]=B,i[7]=$,i[8]=q,i[9]=V}finalize(){const{h:e,pad:t}=this,n=new Uint16Array(10);let r=e[1]>>>13;e[1]&=8191;for(let o=2;o<10;o++)e[o]+=r,r=e[o]>>>13,e[o]&=8191;e[0]+=5*r,r=e[0]>>>13,e[0]&=8191,e[1]+=r,r=e[1]>>>13,e[1]&=8191,e[2]+=r,n[0]=e[0]+5,r=n[0]>>>13,n[0]&=8191;for(let o=1;o<10;o++)n[o]=e[o]+r,r=n[o]>>>13,n[o]&=8191;n[9]-=8192;let i=(1^r)-1;for(let o=0;o<10;o++)n[o]&=i;i=~i;for(let o=0;o<10;o++)e[o]=e[o]&i|n[o];e[0]=65535&(e[0]|e[1]<<13),e[1]=65535&(e[1]>>>3|e[2]<<10),e[2]=65535&(e[2]>>>6|e[3]<<7),e[3]=65535&(e[3]>>>9|e[4]<<4),e[4]=65535&(e[4]>>>12|e[5]<<1|e[6]<<14),e[5]=65535&(e[6]>>>2|e[7]<<11),e[6]=65535&(e[7]>>>5|e[8]<<8),e[7]=65535&(e[8]>>>8|e[9]<<5);let s=e[0]+t[0];e[0]=65535&s;for(let o=1;o<8;o++)s=(e[o]+t[o]|0)+(s>>>16)|0,e[o]=65535&s}update(e){kk(this);const{buffer:t,blockLen:n}=this,r=(e=Ok(e)).length;for(let i=0;i>>0,e[i++]=n[s]>>>8;return e}digest(){const{buffer:e,outputLen:t}=this;this.digestInto(e);const n=e.slice(0,t);return this.destroy(),n}},CE=function(e){const t=(t,n)=>e(n).update(Ok(t)).digest(),n=e(new Uint8Array(32));return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=t=>e(t),t}(e=>new xE(e)),SE=e=>Uint8Array.from(e.split("").map(e=>e.charCodeAt(0))),kE=SE("expand 16-byte k"),EE=SE("expand 32-byte k"),RE=Tk(kE),TE=Tk(EE);function LE(e,t){return e<>>32-t}function IE(e){return e.byteOffset%4==0}TE.slice();var PE=2**32-1,ME=new Uint32Array;function AE(e,t){const{allowShortKeys:n,extendNonceFn:r,counterLength:i,counterRight:s,rounds:o}=function(e,t){if(null==t||"object"!=typeof t)throw new Error("options must be defined");return Object.assign({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},t)}(0,t);if("function"!=typeof e)throw new Error("core must be a function");return _k(i),_k(o),xk(s),xk(n),(t,a,l,c,u=0)=>{Sk(t),Sk(a),Sk(l);const h=l.length;if(c||(c=new Uint8Array(h)),Sk(c),_k(u),u<0||u>=PE)throw new Error("arx: counter overflow");if(c.length=PE)throw new Error("arx: counter overflow");const g=Math.min(64,l-f);if(h&&64===g){const e=f/4;if(f%4!=0)throw new Error("arx: invalid block position");for(let t,n=0;n<16;n++)t=e+n,p[t]=d[t]^u[n];f+=64;continue}for(let e,t=0;t0;)d.pop().fill(0);return c}}function OE(e,t,n,r,i,s=20){let o=e[0],a=e[1],l=e[2],c=e[3],u=t[0],h=t[1],d=t[2],p=t[3],f=t[4],g=t[5],m=t[6],y=t[7],v=i,b=n[0],w=n[1],_=n[2],x=o,C=a,S=l,k=c,E=u,R=h,T=d,L=p,I=f,P=g,M=m,A=y,O=v,N=b,F=w,D=_;for(let j=0;j{e.update(t);const n=t.length%16;n&&e.update(DE.subarray(n))},jE=new Uint8Array(32);function UE(e,t,n,r,i){const s=e(t,n,jE),o=CE.create(s);i&&zE(o,i),zE(o,r);const a=new Uint8Array(16),l=Lk(a);Dk(l,0,BigInt(i?i.length:0),!0),Dk(l,8,BigInt(r.length),!0),o.update(a);const c=o.digest();return s.fill(0),c}var BE=e=>(t,n,r)=>(Sk(t,32),Sk(n),{encrypt:(i,s)=>{const o=i.length,a=o+16;s?Sk(s,a):s=new Uint8Array(a),e(t,n,i,s,1);const l=UE(e,t,n,s.subarray(0,-16),r);return s.set(l,o),s},decrypt:(i,s)=>{const o=i.length,a=o-16;if(o<16)throw new Error("encrypted data must be at least 16 bytes");s?Sk(s,a):s=new Uint8Array(a);const l=i.subarray(0,-16);if(!Nk(i.subarray(-16),UE(e,t,n,l,r)))throw new Error("invalid tag");return e(t,n,l,s,1),s}}),$E=(BE(NE),BE(FE),class extends AS{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,zS.hash(e);const n=PS(t);if(this.iHash=e.create(),"function"!=typeof this.iHash.update)throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const r=this.blockLen,i=new Uint8Array(r);i.set(n.length>r?e.create().update(n).digest():n);for(let s=0;snew $E(e,t).update(n).digest();qE.create=(e,t)=>new $E(e,t);var VE=new Uint8Array([0]),WE=new Uint8Array,HE=Object.defineProperty,GE=(e,t)=>{for(var n in t)HE(e,n,{get:t[n],enumerable:!0})},KE=Symbol("verified");function ZE(e){if(!(e instanceof Object))return!1;if("number"!=typeof e.kind)return!1;if("string"!=typeof e.content)return!1;if("number"!=typeof e.created_at)return!1;if("string"!=typeof e.pubkey)return!1;if(!e.pubkey.match(/^[a-f0-9]{64}$/))return!1;if(!Array.isArray(e.tags))return!1;for(let t=0;trR,QueueNode:()=>nR,binarySearch:()=>tR,bytesToHex:()=>LS,hexToBytes:()=>IS,insertEventIntoAscendingList:()=>eR,insertEventIntoDescendingList:()=>QE,normalizeURL:()=>JE,utf8Decoder:()=>YE,utf8Encoder:()=>XE});var YE=new TextDecoder("utf-8"),XE=new TextEncoder;function JE(e){try{-1===e.indexOf("://")&&(e="wss://"+e);let t=new URL(e);return"http:"===t.protocol?t.protocol="ws:":"https:"===t.protocol&&(t.protocol="wss:"),t.pathname=t.pathname.replace(/\/+/g,"/"),t.pathname.endsWith("/")&&(t.pathname=t.pathname.slice(0,-1)),("80"===t.port&&"ws:"===t.protocol||"443"===t.port&&"wss:"===t.protocol)&&(t.port=""),t.searchParams.sort(),t.hash="",t.toString()}catch(t){throw new Error(`Invalid URL: ${e}`)}}function QE(e,t){const[n,r]=tR(e,e=>t.id===e.id?0:t.created_at===e.created_at?-1:e.created_at-t.created_at);return r||e.splice(n,0,t),e}function eR(e,t){const[n,r]=tR(e,e=>t.id===e.id?0:t.created_at===e.created_at?-1:t.created_at-e.created_at);return r||e.splice(n,0,t),e}function tR(e,t){let n=0,r=e.length-1;for(;n<=r;){const i=Math.floor((n+r)/2),s=t(e[i]);if(0===s)return[i,!0];s<0?r=i-1:n=i+1}return[n,!1]}var nR=class{value;next=null;prev=null;constructor(e){this.value=e}},rR=class{first;last;constructor(){this.first=null,this.last=null}enqueue(e){const t=new nR(e);return this.last?this.last===this.first?(this.last=t,this.last.prev=this.first,this.first.next=t):(t.prev=this.last,this.last.next=t,this.last=t):(this.first=t,this.last=t),!0}dequeue(){if(!this.first)return null;if(this.first===this.last){const e=this.first;return this.first=null,this.last=null,e.value}const e=this.first;return this.first=e.next,this.first&&(this.first.prev=null),e.value}};function iR(e){return LS(GS(XE.encode(function(e){if(!ZE(e))throw new Error("can't serialize event with wrong or missing properties");return JSON.stringify([0,e.pubkey,e.created_at,e.kind,e.tags,e.content])}(e))))}var sR=new class{generateSecretKey(){return CS.utils.randomPrivateKey()}getPublicKey(e){return LS(CS.getPublicKey(e))}finalizeEvent(e,t){const n=e;return n.pubkey=LS(CS.getPublicKey(t)),n.id=iR(n),n.sig=LS(CS.sign(iR(n),t)),n[KE]=!0,n}verifyEvent(e){if("boolean"==typeof e[KE])return e[KE];const t=iR(e);if(t!==e.id)return e[KE]=!1,!1;try{const n=CS.verify(e.sig,t,e.pubkey);return e[KE]=n,n}catch(RD){return e[KE]=!1,!1}}},oR=sR.generateSecretKey,aR=sR.getPublicKey,lR=sR.finalizeEvent,cR=sR.verifyEvent,uR={};function hR(e){return e<1e4&&0!==e&&3!==e}function dR(e){return 0===e||3===e||1e4<=e&&e<2e4}function pR(e){return 2e4<=e&&e<3e4}function fR(e){return 3e4<=e&&e<4e4}function gR(e){return hR(e)?"regular":dR(e)?"replaceable":pR(e)?"ephemeral":fR(e)?"parameterized":"unknown"}function mR(e,t){const n=t instanceof Array?t:[t];return ZE(e)&&n.includes(e.kind)||!1}GE(uR,{Application:()=>BT,BadgeAward:()=>kR,BadgeDefinition:()=>OT,BlockedRelaysList:()=>pT,BlossomServerList:()=>wT,BookmarkList:()=>uT,Bookmarksets:()=>PT,Calendar:()=>KT,CalendarEventRSVP:()=>ZT,ChannelCreation:()=>NR,ChannelHideMessage:()=>zR,ChannelMessage:()=>DR,ChannelMetadata:()=>FR,ChannelMuteUser:()=>jR,ChatMessage:()=>ER,ClassifiedListing:()=>VT,ClientAuth:()=>CT,Comment:()=>VR,CommunitiesList:()=>hT,CommunityDefinition:()=>QT,CommunityPostApproval:()=>JR,Contacts:()=>wR,CreateOrUpdateProduct:()=>DT,CreateOrUpdateStall:()=>FT,Curationsets:()=>MT,Date:()=>HT,DirectMessageRelaysList:()=>vT,DraftClassifiedListing:()=>WT,DraftLong:()=>jT,Emojisets:()=>UT,EncryptedDirectMessage:()=>_R,EventDeletion:()=>xR,FavoriteRelays:()=>gT,FileMessage:()=>IR,FileMetadata:()=>qR,FileServerPreference:()=>bT,Followsets:()=>TT,ForumThread:()=>RR,GenericRepost:()=>PR,Genericlists:()=>LT,GiftWrap:()=>BR,GroupMetadata:()=>eL,HTTPAuth:()=>RT,Handlerinformation:()=>JT,Handlerrecommendation:()=>XT,Highlights:()=>sT,InterestsList:()=>mT,Interestsets:()=>NT,JobFeedback:()=>tT,JobRequest:()=>QR,JobResult:()=>eT,Label:()=>XR,LightningPubRPC:()=>xT,LiveChatMessage:()=>WR,LiveEvent:()=>$T,LongFormArticle:()=>zT,Metadata:()=>yR,Mutelist:()=>aT,NWCWalletInfo:()=>_T,NWCWalletRequest:()=>ST,NWCWalletResponse:()=>kT,NormalVideo:()=>AR,NostrConnect:()=>ET,OpenTimestamps:()=>UR,Photo:()=>MR,Pinlist:()=>lT,Poll:()=>$R,PollResponse:()=>oT,PrivateDirectMessage:()=>LR,ProblemTracker:()=>KR,ProfileBadges:()=>AT,PublicChatsList:()=>dT,Reaction:()=>SR,RecommendRelay:()=>bR,RelayList:()=>cT,RelayReview:()=>YT,Relaysets:()=>IT,Report:()=>ZR,Reporting:()=>YR,Repost:()=>CR,Seal:()=>TR,SearchRelaysList:()=>fT,ShortTextNote:()=>vR,ShortVideo:()=>OR,Time:()=>GT,UserEmojiList:()=>yT,UserStatuses:()=>qT,Voice:()=>HR,VoiceComment:()=>GR,Zap:()=>iT,ZapGoal:()=>nT,ZapRequest:()=>rT,classifyKind:()=>gR,isAddressableKind:()=>fR,isEphemeralKind:()=>pR,isKind:()=>mR,isRegularKind:()=>hR,isReplaceableKind:()=>dR});var yR=0,vR=1,bR=2,wR=3,_R=4,xR=5,CR=6,SR=7,kR=8,ER=9,RR=11,TR=13,LR=14,IR=15,PR=16,MR=20,AR=21,OR=22,NR=40,FR=41,DR=42,zR=43,jR=44,UR=1040,BR=1059,$R=1068,qR=1063,VR=1111,WR=1311,HR=1222,GR=1244,KR=1971,ZR=1984,YR=1984,XR=1985,JR=4550,QR=5999,eT=6999,tT=7e3,nT=9041,rT=9734,iT=9735,sT=9802,oT=1018,aT=1e4,lT=10001,cT=10002,uT=10003,hT=10004,dT=10005,pT=10006,fT=10007,gT=10012,mT=10015,yT=10030,vT=10050,bT=10096,wT=10063,_T=13194,xT=21e3,CT=22242,ST=23194,kT=23195,ET=24133,RT=27235,TT=3e4,LT=30001,IT=30002,PT=30003,MT=30004,AT=30008,OT=30009,NT=30015,FT=30017,DT=30018,zT=30023,jT=30024,UT=30030,BT=30078,$T=30311,qT=30315,VT=30402,WT=30403,HT=31922,GT=31923,KT=31924,ZT=31925,YT=31987,XT=31989,JT=31990,QT=34550,eL=39e3;function tL(e,t){let n=t.length+3,r=e.indexOf(`"${t}":`)+n,i=e.slice(r).indexOf('"')+r+1;return e.slice(i,i+64)}function nL(e,t){let n=t.length,r=e.indexOf(`"${t}":`)+n+3,i=e.slice(r),s=Math.min(i.indexOf(","),i.indexOf("}"));return parseInt(i.slice(0,s),10)}function rL(e){let t=e.slice(0,22).indexOf('"EVENT"');if(-1===t)return null;let n=e.slice(t+7+1).indexOf('"');if(-1===n)return null;let r=t+7+1+n,i=e.slice(r+1,80).indexOf('"');if(-1===i)return null;let s=r+1+i;return e.slice(r+1,s)}function iL(e,t){return t===tL(e,"id")}function sL(e,t){return t===tL(e,"pubkey")}function oL(e,t){return t===nL(e,"kind")}function aL(e,t){return{kind:CT,created_at:Math.floor(Date.now()/1e3),tags:[["relay",e],["challenge",t]],content:""}}GE({},{getHex64:()=>tL,getInt:()=>nL,getSubscriptionId:()=>rL,matchEventId:()=>iL,matchEventKind:()=>oL,matchEventPubkey:()=>sL}),GE({},{makeAuthEvent:()=>aL});try{WebSocket}catch{}try{WebSocket}catch{}GE({},{BECH32_REGEX:()=>uL,Bech32MaxSize:()=>cL,NostrTypeGuard:()=>lL,decode:()=>dL,decodeNostrURI:()=>hL,encodeBytes:()=>vL,naddrEncode:()=>_L,neventEncode:()=>wL,noteEncode:()=>mL,nprofileEncode:()=>bL,npubEncode:()=>gL,nsecEncode:()=>fL});var lL={isNProfile:e=>/^nprofile1[a-z\d]+$/.test(e||""),isNEvent:e=>/^nevent1[a-z\d]+$/.test(e||""),isNAddr:e=>/^naddr1[a-z\d]+$/.test(e||""),isNSec:e=>/^nsec1[a-z\d]{58}$/.test(e||""),isNPub:e=>/^npub1[a-z\d]{58}$/.test(e||""),isNote:e=>/^note1[a-z\d]+$/.test(e||""),isNcryptsec:e=>/^ncryptsec1[a-z\d]+$/.test(e||"")},cL=5e3,uL=/[\x21-\x7E]{1,83}1[023456789acdefghjklmnpqrstuvwxyz]{6,}/;function hL(e){try{return e.startsWith("nostr:")&&(e=e.substring(6)),dL(e)}catch(t){return{type:"invalid",data:null}}}function dL(e){let{prefix:t,words:n}=bk.decode(e,cL),r=new Uint8Array(bk.fromWords(n));switch(t){case"nprofile":{let e=pL(r);if(!e[0]?.[0])throw new Error("missing TLV 0 for nprofile");if(32!==e[0][0].length)throw new Error("TLV 0 should be 32 bytes");return{type:"nprofile",data:{pubkey:LS(e[0][0]),relays:e[1]?e[1].map(e=>YE.decode(e)):[]}}}case"nevent":{let e=pL(r);if(!e[0]?.[0])throw new Error("missing TLV 0 for nevent");if(32!==e[0][0].length)throw new Error("TLV 0 should be 32 bytes");if(e[2]&&32!==e[2][0].length)throw new Error("TLV 2 should be 32 bytes");if(e[3]&&4!==e[3][0].length)throw new Error("TLV 3 should be 4 bytes");return{type:"nevent",data:{id:LS(e[0][0]),relays:e[1]?e[1].map(e=>YE.decode(e)):[],author:e[2]?.[0]?LS(e[2][0]):void 0,kind:e[3]?.[0]?parseInt(LS(e[3][0]),16):void 0}}}case"naddr":{let e=pL(r);if(!e[0]?.[0])throw new Error("missing TLV 0 for naddr");if(!e[2]?.[0])throw new Error("missing TLV 2 for naddr");if(32!==e[2][0].length)throw new Error("TLV 2 should be 32 bytes");if(!e[3]?.[0])throw new Error("missing TLV 3 for naddr");if(4!==e[3][0].length)throw new Error("TLV 3 should be 4 bytes");return{type:"naddr",data:{identifier:YE.decode(e[0][0]),pubkey:LS(e[2][0]),kind:parseInt(LS(e[3][0]),16),relays:e[1]?e[1].map(e=>YE.decode(e)):[]}}}case"nsec":return{type:t,data:r};case"npub":case"note":return{type:t,data:LS(r)};default:throw new Error(`unknown prefix ${t}`)}}function pL(e){let t={},n=e;for(;n.length>0;){let e=n[0],r=n[1],i=n.slice(2,2+r);if(n=n.slice(2+r),i.lengthXE.encode(e))}))}function wL(e){let t;return void 0!==e.kind&&(t=function(e){const t=new Uint8Array(4);return t[0]=e>>24&255,t[1]=e>>16&255,t[2]=e>>8&255,t[3]=255&e,t}(e.kind)),yL("nevent",xL({0:[IS(e.id)],1:(e.relays||[]).map(e=>XE.encode(e)),2:e.author?[IS(e.author)]:[],3:t?[new Uint8Array(t)]:[]}))}function _L(e){let t=new ArrayBuffer(4);return new DataView(t).setUint32(0,e.kind,!1),yL("naddr",xL({0:[XE.encode(e.identifier)],1:(e.relays||[]).map(e=>XE.encode(e)),2:[IS(e.pubkey)],3:[new Uint8Array(t)]}))}function xL(e){let t=[];return Object.entries(e).reverse().forEach(([e,n])=>{n.forEach(n=>{let r=new Uint8Array(n.length+2);r.set([parseInt(e)],0),r.set([n.length],1),r.set(n,2),t.push(r)})}),MS(...t)}var CL={};function SL(e,t,n){const r=e instanceof Uint8Array?LS(e):e,i=EL(aS.getSharedSecret(r,"02"+t));let s=Uint8Array.from(NS(16)),o=XE.encode(n),a=vE(i,s).encrypt(o);return`${lk.encode(new Uint8Array(a))}?iv=${lk.encode(new Uint8Array(s.buffer))}`}function kL(e,t,n){const r=e instanceof Uint8Array?LS(e):e;let[i,s]=n.split("?iv="),o=EL(aS.getSharedSecret(r,"02"+t)),a=lk.decode(s),l=lk.decode(i),c=vE(o,a).decrypt(l);return YE.decode(c)}function EL(e){return e.slice(1,33)}GE(CL,{decrypt:()=>kL,encrypt:()=>SL}),GE({},{NIP05_REGEX:()=>TL,isNip05:()=>LL,isValid:()=>AL,queryProfile:()=>ML,searchDomain:()=>PL,useFetchImplementation:()=>IL});var RL,TL=/^(?:([\w.+-]+)@)?([\w_-]+(\.[\w_-]+)+)$/,LL=e=>TL.test(e||"");try{RL=fetch}catch(Ite){}function IL(e){RL=e}async function PL(e,t=""){try{const n=`https://${e}/.well-known/nostr.json?name=${t}`,r=await RL(n,{redirect:"manual"});if(200!==r.status)throw Error("Wrong response code");return(await r.json()).names}catch(Ite){return{}}}async function ML(e){const t=e.match(TL);if(!t)return null;const[,n="_",r]=t;try{const e=`https://${r}/.well-known/nostr.json?name=${n}`,t=await RL(e,{redirect:"manual"});if(200!==t.status)throw Error("Wrong response code");const i=await t.json(),s=i.names[n];return s?{pubkey:s,relays:i.relays?.[s]}:null}catch(i){return null}}async function AL(e,t){const n=await ML(t);return!!n&&n.pubkey===e}function OL(e){const t={reply:void 0,root:void 0,mentions:[],profiles:[],quotes:[]};let n,r;for(let i=e.tags.length-1;i>=0;i--){const s=e.tags[i];if("e"===s[0]&&s[1]){const[e,i,o,a,l]=s,c={id:i,relays:o?[o]:[],author:l};if("root"===a){t.root=c;continue}if("reply"===a){t.reply=c;continue}if("mention"===a){t.mentions.push(c);continue}n?r=c:n=c,t.mentions.push(c);continue}if("q"===s[0]&&s[1]){const[e,n,r]=s;t.quotes.push({id:n,relays:r?[r]:[]})}"p"===s[0]&&s[1]&&t.profiles.push({pubkey:s[1],relays:s[2]?[s[2]]:[]})}return t.root||(t.root=r||n||t.reply),t.reply||(t.reply=n||t.root),[t.reply,t.root].forEach(e=>{if(!e)return;let n=t.mentions.indexOf(e);if(-1!==n&&t.mentions.splice(n,1),e.author){let n=t.profiles.find(t=>t.pubkey===e.author);n&&n.relays&&(e.relays||(e.relays=[]),n.relays.forEach(t=>{-1===e.relays?.indexOf(t)&&e.relays.push(t)}),n.relays=e.relays)}}),t.mentions.forEach(e=>{if(e.author){let n=t.profiles.find(t=>t.pubkey===e.author);n&&n.relays&&(e.relays||(e.relays=[]),n.relays.forEach(t=>{-1===e.relays.indexOf(t)&&e.relays.push(t)}),n.relays=e.relays)}}),t}function NL(){}async function FL(e){return await(await fetch(e.replace("ws://","http://").replace("wss://","https://"),{headers:{Accept:"application/nostr+json"}})).json()}function DL(e){let t=0;for(let n=0;n<64;n+=8){const r=parseInt(e.substring(n,n+8),16);if(0!==r){t+=Math.clz32(r);break}t+=32}return t}function zL(e,t){let n=0;const r=e,i=["nonce",n.toString(),t.toString()];for(r.tags.push(i);;){const e=Math.floor((new Date).getTime()/1e3);if(e!==r.created_at&&(n=0,r.created_at=e),i[1]=(++n).toString(),r.id=jL(r),DL(r.id)>=t)break}return r}function jL(e){return LS(GS(XE.encode(JSON.stringify([0,e.pubkey,e.created_at,e.kind,e.tags,e.content]))))}GE({},{parse:()=>OL}),GE({},{fetchRelayInformation:()=>FL,useFetchImplementation:()=>NL}),GE({},{fastEventHash:()=>jL,getPow:()=>DL,minePow:()=>zL}),GE({},{unwrapEvent:()=>uI,unwrapManyEvents:()=>hI,wrapEvent:()=>lI,wrapManyEvents:()=>cI}),GE({},{createRumor:()=>tI,createSeal:()=>nI,createWrap:()=>rI,unwrapEvent:()=>oI,unwrapManyEvents:()=>aI,wrapEvent:()=>iI,wrapManyEvents:()=>sI});var UL={};GE(UL,{decrypt:()=>KL,encrypt:()=>GL,getConversationKey:()=>qL,v2:()=>ZL});var BL=1,$L=65535;function qL(e,t){const n=aS.getSharedSecret(e,"02"+t).subarray(1,33);return r=GS,i=n,s="nip44-v2",zS.hash(r),void 0===s&&(s=new Uint8Array(r.outputLen)),qE(r,PS(s),PS(i));var r,i,s}function VL(e,t){const n=function(e,t,n,r=32){if(zS.hash(e),zS.number(r),r>255*e.outputLen)throw new Error("Length should be <= 255*HashLen");const i=Math.ceil(r/e.outputLen);void 0===n&&(n=WE);const s=new Uint8Array(i*e.outputLen),o=qE.create(e,t),a=o._cloneInto(),l=new Uint8Array(o.outputLen);for(let c=0;c$L)throw new Error("invalid plaintext size: must be between 1 and 65535 bytes");const t=new Uint8Array(2);return new DataView(t.buffer).setUint16(0,e,!1),t}(n),t,new Uint8Array(WL(n)-n))}(e),a=NE(r,i,o),l=HL(s,a,n);return lk.encode(MS(new Uint8Array([2]),n,a,l))}function KL(e,t){const{nonce:n,ciphertext:r,mac:i}=function(e){if("string"!=typeof e)throw new Error("payload must be a valid string");const t=e.length;if(t<132||t>87472)throw new Error("invalid payload length: "+t);if("#"===e[0])throw new Error("unknown encryption version");let n;try{n=lk.decode(e)}catch(_6){throw new Error("invalid base64: "+_6.message)}const r=n.length;if(r<99||r>65603)throw new Error("invalid data length: "+r);const i=n[0];if(2!==i)throw new Error("unknown encryption version "+i);return{nonce:n.subarray(1,33),ciphertext:n.subarray(33,-32),mac:n.subarray(-32)}}(e),{chacha_key:s,chacha_nonce:o,hmac_key:a}=VL(t,n);if(!Nk(HL(a,r,n),i))throw new Error("invalid MAC");return function(e){const t=new DataView(e.buffer).getUint16(0),n=e.subarray(2,2+t);if(t$L||n.length!==t||e.length!==2+WL(t))throw new Error("invalid padding");return YE.decode(n)}(NE(s,o,r))}var ZL={utils:{getConversationKey:qL,calcPaddedLen:WL},encrypt:GL,decrypt:KL},YL=()=>Math.round(Date.now()/1e3),XL=()=>Math.round(YL()-172800*Math.random()),JL=(e,t)=>qL(e,t),QL=(e,t,n)=>GL(JSON.stringify(e),JL(t,n)),eI=(e,t)=>JSON.parse(KL(e.content,JL(t,e.pubkey)));function tI(e,t){const n={created_at:YL(),content:"",tags:[],...e,pubkey:aR(t)};return n.id=iR(n),n}function nI(e,t,n){return lR({kind:TR,content:QL(e,t,n),created_at:XL(),tags:[]},t)}function rI(e,t){const n=oR();return lR({kind:BR,content:QL(e,n,t),created_at:XL(),tags:[["p",t]]},n)}function iI(e,t,n){return rI(nI(tI(e,t),t,n),n)}function sI(e,t,n){if(!n||0===n.length)throw new Error("At least one recipient is required.");const r=[iI(e,t,aR(t))];return n.forEach(n=>{r.push(iI(e,t,n))}),r}function oI(e,t){return eI(eI(e,t),t)}function aI(e,t){let n=[];return e.forEach(e=>{n.push(oI(e,t))}),n.sort((e,t)=>e.created_at-t.created_at),n}function lI(e,t,n,r,i){return iI(function(e,t,n,r){const i={created_at:Math.ceil(Date.now()/1e3),kind:LR,tags:[],content:t};return(Array.isArray(e)?e:[e]).forEach(({publicKey:e,relayUrl:t})=>{i.tags.push(t?["p",e,t]:["p",e])}),r&&i.tags.push(["e",r.eventId,r.relayUrl||"","reply"]),n&&i.tags.push(["subject",n]),i}(t,n,r,i),e,t.publicKey)}function cI(e,t,n,r,i){if(!t||0===t.length)throw new Error("At least one recipient is required.");return[{publicKey:aR(e)},...t].map(t=>lI(e,t,n,r,i))}var uI=oI,hI=aI;function dI(e,t,n,r){let i;const s=[...e.tags??[],["e",t.id,n],["p",t.pubkey]];return t.kind===vR?i=CR:(i=PR,s.push(["k",String(t.kind)])),lR({kind:i,tags:s,content:""===e.content||t.tags?.find(e=>"-"===e[0])?"":JSON.stringify(t),created_at:e.created_at},r)}function pI(e){if(![CR,PR].includes(e.kind))return;let t,n;for(let r=e.tags.length-1;r>=0&&(void 0===t||void 0===n);r--){const i=e.tags[r];i.length>=2&&("e"===i[0]&&void 0===t?t=i:"p"===i[0]&&void 0===n&&(n=i))}return void 0!==t?{id:t[1],relays:[t[2],n?.[2]].filter(e=>"string"==typeof e),author:n?.[1]}:void 0}function fI(e,{skipVerification:t}={}){const n=pI(e);if(void 0===n||""===e.content)return;let r;try{r=JSON.parse(e.content)}catch(_6){return}return r.id===n.id&&(t||cR(r))?r:void 0}GE({},{finishRepostEvent:()=>dI,getRepostedEvent:()=>fI,getRepostedEventPointer:()=>pI}),GE({},{NOSTR_URI_REGEX:()=>gI,parse:()=>yI,test:()=>mI});var gI=new RegExp(`nostr:(${uL.source})`);function mI(e){return"string"==typeof e&&new RegExp(`^${gI.source}$`).test(e)}function yI(e){const t=e.match(new RegExp(`^${gI.source}$`));if(!t)throw new Error(`Invalid Nostr URI: ${e}`);return{uri:t[0],value:t[1],decoded:dL(t[1])}}function vI(e,t,n){const r=t.tags.filter(e=>e.length>=2&&("e"===e[0]||"p"===e[0]));return lR({...e,kind:SR,tags:[...e.tags??[],...r,["e",t.id],["p",t.pubkey]],content:e.content??"+"},n)}function bI(e){if(e.kind!==SR)return;let t,n;for(let r=e.tags.length-1;r>=0&&(void 0===t||void 0===n);r--){const i=e.tags[r];i.length>=2&&("e"===i[0]&&void 0===t?t=i:"p"===i[0]&&void 0===n&&(n=i))}return void 0!==t&&void 0!==n?{id:t[1],relays:[t[2],n[2]].filter(e=>void 0!==e),author:n[1]}:void 0}GE({},{finishReactionEvent:()=>vI,getReactedEventPointer:()=>bI}),GE({},{parse:()=>CI});var wI=/\W/m,_I=/[^\w\/] |[^\w\/]$|$|,| /m,xI=42;function*CI(e){let t=[];if("string"!=typeof e){for(let n=0;n=3&&t.push({type:"emoji",shortcode:r[1],url:r[2]})}e=e.content}const n=e.length;let r=0,i=0;e:for(;i=0&&aSI,channelHideMessageEvent:()=>RI,channelMessageEvent:()=>EI,channelMetadataEvent:()=>kI,channelMuteUserEvent:()=>TI});var SI=(e,t)=>{let n;if("object"==typeof e.content)n=JSON.stringify(e.content);else{if("string"!=typeof e.content)return;n=e.content}return lR({kind:NR,tags:[...e.tags??[]],content:n,created_at:e.created_at},t)},kI=(e,t)=>{let n;if("object"==typeof e.content)n=JSON.stringify(e.content);else{if("string"!=typeof e.content)return;n=e.content}return lR({kind:FR,tags:[["e",e.channel_create_event_id],...e.tags??[]],content:n,created_at:e.created_at},t)},EI=(e,t)=>{const n=[["e",e.channel_create_event_id,e.relay_url,"root"]];return e.reply_to_channel_message_event_id&&n.push(["e",e.reply_to_channel_message_event_id,e.relay_url,"reply"]),lR({kind:DR,tags:[...n,...e.tags??[]],content:e.content,created_at:e.created_at},t)},RI=(e,t)=>{let n;if("object"==typeof e.content)n=JSON.stringify(e.content);else{if("string"!=typeof e.content)return;n=e.content}return lR({kind:zR,tags:[["e",e.channel_message_event_id],...e.tags??[]],content:n,created_at:e.created_at},t)},TI=(e,t)=>{let n;if("object"==typeof e.content)n=JSON.stringify(e.content);else{if("string"!=typeof e.content)return;n=e.content}return lR({kind:jR,tags:[["p",e.pubkey_to_mute],...e.tags??[]],content:n,created_at:e.created_at},t)};GE({},{EMOJI_SHORTCODE_REGEX:()=>PI,matchAll:()=>AI,regex:()=>MI,replaceAll:()=>OI});var LI,II,PI=/:(\w+):/,MI=()=>new RegExp(`\\B${PI.source}\\B`,"g");function*AI(e){const t=e.matchAll(MI());for(const r of t)try{const[e,t]=r;yield{shortcode:e,name:t,start:r.index,end:r.index+e.length}}catch(n){}}function OI(e,t){return e.replaceAll(MI(),(e,n)=>t({shortcode:e,name:n}))}GE({},{useFetchImplementation:()=>NI,validateGithub:()=>FI});try{LI=fetch}catch{}function NI(e){LI=e}async function FI(e,t,n){try{return await(await LI(`https://gist.github.com/${t}/${n}/raw`)).text()===`Verifying that I control the following Nostr public key: ${e}`}catch(Ite){return!1}}function DI(e){const{host:t,pathname:n,searchParams:r}=new URL(e),i=n||t,s=r.get("relay"),o=r.get("secret");if(!i||!s||!o)throw new Error("invalid connection string");return{pubkey:i,relay:s,secret:o}}async function zI(e,t,n){const r=SL(t,e,JSON.stringify({method:"pay_invoice",params:{invoice:n}}));return lR({kind:ST,created_at:Math.round(Date.now()/1e3),content:r,tags:[["p",e]]},t)}function jI(e){return e=(e=e.trim().toLowerCase()).normalize("NFKC"),Array.from(e).map(e=>/\p{Letter}/u.test(e)||/\p{Number}/u.test(e)?e:"-").join("")}GE({},{makeNwcRequestEvent:()=>zI,parseConnectionString:()=>DI}),GE({},{normalizeIdentifier:()=>jI}),GE({},{getSatoshisAmountFromBolt11:()=>WI,getZapEndpoint:()=>BI,makeZapReceipt:()=>VI,makeZapRequest:()=>$I,useFetchImplementation:()=>UI,validateZapRequest:()=>qI});try{II=fetch}catch{}function UI(e){II=e}async function BI(e){try{let t="",{lud06:n,lud16:r}=JSON.parse(e.content);if(r){let[e,n]=r.split("@");t=new URL(`/.well-known/lnurlp/${e}`,`https://${n}`).toString()}else{if(!n)return null;{let{words:e}=bk.decode(n,1e3),r=bk.fromWords(e);t=YE.decode(r)}}let i=await(await II(t)).json();if(i.allowsNostr&&i.nostrPubkey)return i.callback}catch(RD){}return null}function $I(e){let t={kind:9734,created_at:Math.round(Date.now()/1e3),content:e.comment||"",tags:[["p","pubkey"in e?e.pubkey:e.event.pubkey],["amount",e.amount.toString()],["relays",...e.relays]]};if("event"in e){if(t.tags.push(["e",e.event.id]),dR(e.event.kind)){const n=["a",`${e.event.kind}:${e.event.pubkey}:`];t.tags.push(n)}else if(fR(e.event.kind)){let n=e.event.tags.find(([e,t])=>"d"===e&&t);if(!n)throw new Error("d tag not found or is empty");const r=["a",`${e.event.kind}:${e.event.pubkey}:${n[1]}`];t.tags.push(r)}t.tags.push(["k",e.event.kind.toString()])}return t}function qI(e){let t;try{t=JSON.parse(e)}catch(RD){return"Invalid zap request JSON."}if(!ZE(t))return"Zap request is not a valid Nostr event.";if(!cR(t))return"Invalid signature on zap request.";let n=t.tags.find(([e,t])=>"p"===e&&t);if(!n)return"Zap request doesn't have a 'p' tag.";if(!n[1].match(/^[a-f0-9]{64}$/))return"Zap request 'p' tag is not valid hex.";let r=t.tags.find(([e,t])=>"e"===e&&t);return r&&!r[1].match(/^[a-f0-9]{64}$/)?"Zap request 'e' tag is not valid hex.":t.tags.find(([e,t])=>"relays"===e&&t)?null:"Zap request doesn't have a 'relays' tag."}function VI({zapRequest:e,preimage:t,bolt11:n,paidAt:r}){let i=JSON.parse(e),s=i.tags.filter(([e])=>"e"===e||"p"===e||"a"===e),o={kind:9735,created_at:Math.round(r.getTime()/1e3),content:"",tags:[...s,["P",i.pubkey],["bolt11",n],["description",e]]};return t&&o.tags.push(["preimage",t]),o}function WI(e){if(e.length<50)return 0;const t=(e=e.substring(0,50)).lastIndexOf("1");if(-1===t)return 0;const n=e.substring(0,t);if(!n.startsWith("lnbc"))return 0;const r=n.substring(4);if(r.length<1)return 0;const i=r[r.length-1],s=i.charCodeAt(0)-"0".charCodeAt(0),o=s>=0&&s<=9;let a=r.length-1;if(o&&a++,a<1)return 0;const l=parseInt(r.substring(0,a));switch(i){case"m":return 1e5*l;case"u":return 100*l;case"n":return l/10;case"p":return l/1e4;default:return 1e8*l}}GE({},{Negentropy:()=>QI,NegentropyStorageVector:()=>JI,NegentropySync:()=>nP});var HI=32,GI=class{_raw;length;constructor(e){"number"==typeof e?(this._raw=new Uint8Array(e),this.length=0):e instanceof Uint8Array?(this._raw=new Uint8Array(e),this.length=e.length):(this._raw=new Uint8Array(512),this.length=0)}unwrap(){return this._raw.subarray(0,this.length)}get capacity(){return this._raw.byteLength}extend(e){if(e instanceof GI&&(e=e.unwrap()),"number"!=typeof e.length)throw Error("bad length");const t=e.length+this.length;if(this.capacity>>=7;t.reverse();for(let n=0;n4294967295&&(n=1),r.setUint32(e,4294967295&o,!0),t=n,n=0}}negate(){let e=new DataView(this.buf.buffer);for(let n=0;n<8;n++){let t=4*n;e.setUint32(t,~e.getUint32(t,!0))}let t=new Uint8Array(HI);t[0]=1,this.add(t)}getFingerprint(e){let t=new GI;return t.extend(this.buf),t.extend(ZI(e)),GS(t.unwrap()).subarray(0,16)}},JI=class{items;sealed;constructor(){this.items=[],this.sealed=!1}insert(e,t){if(this.sealed)throw Error("already sealed");const n=Ak(t);if(n.byteLength!==HI)throw Error("bad id size for added item");this.items.push({timestamp:e,id:n})}seal(){if(this.sealed)throw Error("already sealed");this.sealed=!0,this.items.sort(tP);for(let e=1;e=this.items.length)throw Error("out of range");return this.items[e]}iterate(e,t,n){this._checkSealed(),this._checkBounds(e,t);for(let r=e;rtP(e,n)<0)}fingerprint(e,t){let n=new XI;return n.setToZero(),this.iterate(e,t,e=>(n.add(e.id),!0)),n.getFingerprint(t-e)}_checkSealed(){if(!this.sealed)throw Error("not sealed")}_checkBounds(e,t){if(e>t||t>this.items.length)throw Error("bad range")}_binarySearch(e,t,n,r){let i=n-t;for(;i>0;){let n=t,s=Math.floor(i/2);n+=s,r(e[n])?(t=++n,i-=s+1):i=s}return t}},QI=class{storage;frameSizeLimit;lastTimestampIn;lastTimestampOut;constructor(e,t=6e4){if(t<4096)throw Error("frameSizeLimit too small");this.storage=e,this.frameSizeLimit=t,this.lastTimestampIn=0,this.lastTimestampOut=0}_bound(e,t){return{timestamp:e,id:t||new Uint8Array(0)}}initiate(){let e=new GI;return e.extend(new Uint8Array([97])),this.splitRange(0,this.storage.size(),this._bound(Number.MAX_VALUE),e),Pk(e.unwrap())}reconcile(e,t,n){const r=new GI(Ak(e));this.lastTimestampIn=this.lastTimestampOut=0;let i=new GI;i.extend(new Uint8Array([97]));let s=YI(r,1)[0];if(s<96||s>111)throw Error("invalid negentropy protocol version byte");if(97!==s)throw Error("unsupported negentropy protocol version requested: "+(s-96));let o=this.storage.size(),a=this._bound(0),l=0,c=!1;for(;0!==r.length;){let e=new GI,s=()=>{c&&(c=!1,e.extend(this.encodeBound(a)),e.extend(ZI(0)))},u=this.decodeBound(r),h=KI(r),d=l,p=this.storage.findLowerBound(l,o,u);if(0===h)c=!0;else if(1===h)0!==eP(YI(r,16),this.storage.fingerprint(d,p))?(s(),this.splitRange(d,p,u,e)):c=!0;else{if(2!==h)throw Error("unexpected mode");{let e=KI(r),i={};for(let t=0;t{let n=e.id;const r=Pk(n);return i[r]?delete i[Pk(n)]:t?.(r),!0}),n)for(let t of Object.values(i))n(Pk(t))}}if(this.exceededFrameSizeLimit(i.length+e.length)){let e=this.storage.fingerprint(p,o);i.extend(this.encodeBound(this._bound(Number.MAX_VALUE))),i.extend(ZI(1)),i.extend(e);break}i.extend(e),l=p,a=u}return 1===i.length?null:Pk(i.unwrap())}splitRange(e,t,n,r){let i=t-e;if(i<32)r.extend(this.encodeBound(n)),r.extend(ZI(2)),r.extend(ZI(i)),this.storage.iterate(e,t,e=>(r.extend(e.id),!0));else{let s=Math.floor(i/16),o=i%16,a=e;for(let e=0;e<16;e++){let i,l=s+(e(r===a-1?e=n:t=n,!0)),i=this.getMinimalBound(e,t)}r.extend(this.encodeBound(i)),r.extend(ZI(1)),r.extend(c)}}}exceededFrameSizeLimit(e){return e>this.frameSizeLimit-200}decodeTimestampIn(e){let t=KI(e);return t=0===t?Number.MAX_VALUE:t-1,this.lastTimestampIn===Number.MAX_VALUE||t===Number.MAX_VALUE?(this.lastTimestampIn=Number.MAX_VALUE,Number.MAX_VALUE):(t+=this.lastTimestampIn,this.lastTimestampIn=t,t)}decodeBound(e){let t=this.decodeTimestampIn(e),n=KI(e);if(n>HI)throw Error("bound key too long");return{timestamp:t,id:YI(e,n)}}encodeTimestampOut(e){if(e===Number.MAX_VALUE)return this.lastTimestampOut=Number.MAX_VALUE,ZI(0);let t=e;return e-=this.lastTimestampOut,this.lastTimestampOut=t,ZI(e+1)}encodeBound(e){let t=new GI;return t.extend(this.encodeTimestampOut(e.timestamp)),t.extend(ZI(e.id.length)),t.extend(e.id),t}getMinimalBound(e,t){if(t.timestamp!==e.timestamp)return this._bound(t.timestamp);{let n=0,r=t.id,i=e.id;for(let e=0;et[n])return 1}return e.byteLength>t.byteLength?1:e.byteLength{switch(e[0]){case"NEG-MSG":e.length<3&&console.warn(`got invalid NEG-MSG from ${this.relay.url}: ${e}`);try{const t=this.neg.reconcile(e[2],this.onhave,this.onneed);t?this.relay.send(`["NEG-MSG", "${this.subscription.id}", "${t}"]`):(this.close(),r.onclose?.())}catch(_6){console.error("negentropy reconcile error:",_6),r?.onclose?.(`reconcile error: ${_6}`)}break;case"NEG-CLOSE":{const t=e[2];console.warn("negentropy error:",t),r.onclose?.(t);break}case"NEG-ERR":r.onclose?.()}}}async start(){const e=this.neg.initiate();this.relay.send(`["NEG-OPEN","${this.subscription.id}",${JSON.stringify(this.filter)},"${e}"]`)}close(){this.relay.send(`["NEG-CLOSE","${this.subscription.id}"]`),this.subscription.close()}};GE({},{getToken:()=>iP,hashPayload:()=>hP,unpackEventFromToken:()=>oP,validateEvent:()=>pP,validateEventKind:()=>lP,validateEventMethodTag:()=>uP,validateEventPayloadTag:()=>dP,validateEventTimestamp:()=>aP,validateEventUrlTag:()=>cP,validateToken:()=>sP});var rP="Nostr ";async function iP(e,t,n,r=!1,i){const s={kind:RT,tags:[["u",e],["method",t]],created_at:Math.round((new Date).getTime()/1e3),content:""};i&&s.tags.push(["payload",hP(i)]);const o=await n(s);return(r?rP:"")+lk.encode(XE.encode(JSON.stringify(o)))}async function sP(e,t,n){return await pP(await oP(e).catch(e=>{throw e}),t,n).catch(e=>{throw e})}async function oP(e){if(!e)throw new Error("Missing token");e=e.replace(rP,"");const t=YE.decode(lk.decode(e));if(!t||0===t.length||!t.startsWith("{"))throw new Error("Invalid token");return JSON.parse(t)}function aP(e){return!!e.created_at&&Math.round((new Date).getTime()/1e3)-e.created_at<60}function lP(e){return e.kind===RT}function cP(e,t){const n=e.tags.find(e=>"u"===e[0]);return!!n&&n.length>0&&n[1]===t}function uP(e,t){const n=e.tags.find(e=>"method"===e[0]);return!!n&&n.length>0&&n[1].toLowerCase()===t.toLowerCase()}function hP(e){return LS(GS(XE.encode(JSON.stringify(e))))}function dP(e,t){const n=e.tags.find(e=>"payload"===e[0]);if(!n)return!1;const r=hP(t);return n.length>0&&n[1]===r}async function pP(e,t,n,r){if(!cR(e))throw new Error("Invalid nostr event, signature invalid");if(!lP(e))throw new Error("Invalid nostr event, kind invalid");if(!aP(e))throw new Error("Invalid nostr event, created_at timestamp invalid");if(!cP(e,t))throw new Error("Invalid nostr event, url tag invalid");if(!uP(e,n))throw new Error("Invalid nostr event, method tag invalid");if(Boolean(r)&&"object"==typeof r&&Object.keys(r).length>0&&!dP(e,r))throw new Error("Invalid nostr event, payload tag does not match request body hash");return!0}var fP=Symbol("verified");new TextDecoder("utf-8");var gP=new TextEncoder;function mP(e){return LS(GS(gP.encode(function(e){if(!function(e){if(!(e instanceof Object))return!1;if("number"!=typeof e.kind)return!1;if("string"!=typeof e.content)return!1;if("number"!=typeof e.created_at)return!1;if("string"!=typeof e.pubkey)return!1;if(!e.pubkey.match(/^[a-f0-9]{64}$/))return!1;if(!Array.isArray(e.tags))return!1;for(let t=0;tt.id===e.id?0:t.created_at===e.created_at?-1:e.created_at-t.created_at);return r||e.splice(n,0,t),e}function SP(e,t){let n=0,r=e.length-1;for(;n<=r;){const i=Math.floor((n+r)/2),s=t(e[i]);if(0===s)return[i,!0];s<0?r=i-1:n=i+1}return[n,!1]}new TextDecoder("utf-8"),new TextEncoder;var kP=Symbol.for("event-store"),EP=Symbol.for("event-uid"),RP=Symbol.for("replaceable-address"),TP=Symbol.for("from-cache"),LP=Symbol.for("replaceable-identifier");function IP(e){return Px(e)||Mx(e)}function PP(e){return IP(e.kind)?xP(e,RP,()=>MP(e.kind,e.pubkey,OP(e))):null}function MP(e,t,n){return e+":"+t+":"+(n??"")}function AP(e){Reflect.set(e,TP,!0)}function OP(e){return xP(e,LP,()=>e.tags.find(e=>"d"===e[0])?.[1]??"")}var NP=Symbol.for("encrypted-content"),FP={[uR.EncryptedDirectMessage]:"nip04",[uR.Seal]:"nip44",[uR.GiftWrap]:"nip44"};function DP(e,t){return FP[e]=t,e}function zP(e,t,n){const r=n??FP[e];if(!r)throw new Error(`Event kind ${e} does not support encrypted content`);const i=t[r];if(!i)throw new Error(`Signer does not support ${r} encryption`);return i}var jP=new Set([NP]);function UP(e){return e}function BP(...e){return qP(e.filter(e=>!!e),jP)}function $P(...e){return qP(e.filter(e=>!!e))}function qP(e,t){return 0===e.length?UP:async function(n){return e.reduce(async(e,n)=>{const r=await n(await e);if(t&&"object"==typeof r&&null!==r&&"object"==typeof e&&null!==e){const e=Reflect.ownKeys(r).filter(e=>"symbol"==typeof e);for(const n of e)t.has(n)||Reflect.deleteProperty(r,n)}return r},n)}}function VP(){return Math.round(Date.now()/1e3)}var WP=(e=21)=>{let t="",n=crypto.getRandomValues(new Uint8Array(e|=0));for(;e--;)t+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[63&n[e]];return t};function HP(e,t){return void 0!==e[0]&&void 0!==e[1]&&(!t||e[0]===t)}function GP(e){return HP(e,"e")}function KP(e){return HP(e,"p")}function ZP(e){return HP(e,"r")}function YP(e){return HP(e,"a")}var XP=(e,...t)=>t.reduce((e,t)=>{const n=[];for(const r of e)try{const e=t(r);if(void 0===e)continue;n.push(e)}catch(_6){}return n},e),JP=new TextDecoder("utf-8"),QP=(new TextEncoder,5e3);function eM(e){let t={},n=e;for(;n.length>0;){let e=n[0],r=n[1],i=n.slice(2,2+r);if(n=n.slice(2+r),i.length=8&&aM.test(e)}function cM(...e){const t=new Set;for(const n of e)if(n)if("string"==typeof n)try{t.add(sM(n))}catch(_6){}else if(Reflect.has(n,Symbol.iterator))for(const e of n)try{t.add(sM(e))}catch(_6){}return Array.from(t)}function uM(e){return!!e&&64===e.length&&!!e.toLowerCase().match(/^[0-9a-f]{64}$/)}function hM(e){const t=e[1];if(!t||!uM(t))return null;const n={id:t};return e[2]&&lM(e[2])&&(n.relays=[rM(e[2])]),n}function dM(e){if(!e[1])return null;const t=function(e,t=!1){const n=e.split(":"),r=n[0]?parseInt(n[0]):void 0,i=n[1];if(void 0===r)return null;if(void 0===i||""===i||!uM(i))return null;const s=n.slice(2).join(":");return t&&""===s?null:{kind:r,pubkey:i,identifier:s}}(e[1]);return t?(e[2]&&lM(e[2])&&(t.relays=[rM(e[2])]),t):null}function pM(e){const t=e[1];if(!t||!uM(t))return null;const n={pubkey:t};return e[2]&&lM(e[2])&&(n.relays=[rM(e[2])]),n}function fM(e){return"object"==typeof e&&null!==e&&"id"in e&&"string"==typeof e.id}function gM(e,t){return fM(t)?e.id===t.id&&(!t.author||e.pubkey===t.author):e.kind===t.kind&&e.pubkey===t.pubkey&&OP(e)===(t.identifier??"")}var mM=NP,yM=zP,vM=new Set([DP(uR.DraftLong,"nip04")]);function bM(e,t){return vM.add(DP(e,t)),e}function wM(e){return function(e){return void 0!==FP[e]}(e)&&vM.has(e)}function _M(e){if(wM(e.kind))return mM in e?Reflect.get(e,mM):function(e){return Reflect.get(e,NP)}(e)}function xM(e,t){if(!wM(e.kind))throw new Error("Event kind does not support hidden content");!function(e,t){Reflect.set(e,NP,t),function(e){if(!function(e){return null!=e&&64===e.id?.length&&"string"==typeof e.sig&&"string"==typeof e.pubkey&&64===e.pubkey.length&&"string"==typeof e.content&&Array.isArray(e.tags)&&"number"==typeof e.created_at&&e.created_at>0}(e))return;const t=function(e){return Reflect.get(e,kP)}(e);t&&t.update(e)}(e)}(e,t)}var CM=Symbol.for("hidden-tags"),SM=new Set([bM(uR.BookmarkList,"nip04"),bM(uR.InterestsList,"nip04"),bM(uR.Mutelist,"nip04"),bM(uR.CommunitiesList,"nip04"),bM(uR.PublicChatsList,"nip04"),bM(uR.SearchRelaysList,"nip04"),bM(10009,"nip04"),bM(uR.Bookmarksets,"nip04"),bM(uR.Relaysets,"nip04"),bM(uR.Followsets,"nip04"),bM(uR.Curationsets,"nip04"),bM(uR.Interestsets,"nip04")]);function kM(e){return wM(e)&&SM.has(e)}function EM(e){return kM(e.kind)&&function(e){return wM(e.kind)&&function(e){return e.content.length>0}(e)}(e)}function RM(e){if(!kM(e.kind))return;if(CM in e)return e[CM];const t=_M(e);if(void 0===t)return;const n=JSON.parse(t);if(!Array.isArray(n))throw new Error("Content is not an array of tags");const r=n.filter(e=>Array.isArray(e)).map(e=>e.map(e=>String(e)));return Reflect.set(e,CM,r),r}var TM=Symbol.for("public-contacts"),LM=Symbol.for("hidden-contacts"),IM=function(e,t){return IM=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},IM(e,t)};function PM(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}IM(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var MM=function(){return MM=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&i[i.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function NM(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,s=n.call(e),o=[];try{for(;(void 0===t||t-- >0)&&!(r=s.next()).done;)o.push(r.value)}catch(_6){i={error:_6}}finally{try{r&&!r.done&&(n=s.return)&&n.call(s)}finally{if(i)throw i.error}}return o}function FM(e,t,n){if(n||2===arguments.length)for(var r,i=0,s=t.length;i0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(t){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,t)},t.prototype._subscribe=function(e){return this._throwIfClosed(),this._checkFinalizedStatuses(e),this._innerSubscribe(e)},t.prototype._innerSubscribe=function(e){var t=this,n=this,r=n.hasError,i=n.isStopped,s=n.observers;return r||i?qM:(this.currentObservers=null,s.push(e),new $M(function(){t.currentObservers=null,BM(s,e)}))},t.prototype._checkFinalizedStatuses=function(e){var t=this,n=t.hasError,r=t.thrownError,i=t.isStopped;n?e.error(r):i&&e.complete()},t.prototype.asObservable=function(){var e=new oA;return e.source=this,e},t.create=function(e,t){return new pA(e,t)},t}(oA),pA=function(e){function t(t,n){var r=e.call(this)||this;return r.destination=t,r.source=n,r}return PM(t,e),t.prototype.next=function(e){var t,n;null===(n=null===(t=this.destination)||void 0===t?void 0:t.next)||void 0===n||n.call(t,e)},t.prototype.error=function(e){var t,n;null===(n=null===(t=this.destination)||void 0===t?void 0:t.error)||void 0===n||n.call(t,e)},t.prototype.complete=function(){var e,t;null===(t=null===(e=this.destination)||void 0===e?void 0:e.complete)||void 0===t||t.call(e)},t.prototype._subscribe=function(e){var t,n;return null!==(n=null===(t=this.source)||void 0===t?void 0:t.subscribe(e))&&void 0!==n?n:qM},t}(dA),fA=function(e){function t(t){var n=e.call(this)||this;return n._value=t,n}return PM(t,e),Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),t.prototype._subscribe=function(t){var n=e.prototype._subscribe.call(this,t);return!n.closed&&t.next(this._value),n},t.prototype.getValue=function(){var e=this,t=e.hasError,n=e.thrownError,r=e._value;if(t)throw n;return this._throwIfClosed(),r},t.prototype.next=function(t){e.prototype.next.call(this,this._value=t)},t}(dA),gA={now:function(){return(gA.delegate||Date).now()},delegate:void 0},mA=function(e){function t(t,n,r){void 0===t&&(t=1/0),void 0===n&&(n=1/0),void 0===r&&(r=gA);var i=e.call(this)||this;return i._bufferSize=t,i._windowTime=n,i._timestampProvider=r,i._buffer=[],i._infiniteTimeWindow=!0,i._infiniteTimeWindow=n===1/0,i._bufferSize=Math.max(1,t),i._windowTime=Math.max(1,n),i}return PM(t,e),t.prototype.next=function(t){var n=this,r=n.isStopped,i=n._buffer,s=n._infiniteTimeWindow,o=n._timestampProvider,a=n._windowTime;r||(i.push(t),!s&&i.push(o.now()+a)),this._trimBuffer(),e.prototype.next.call(this,t)},t.prototype._subscribe=function(e){this._throwIfClosed(),this._trimBuffer();for(var t=this._innerSubscribe(e),n=this._infiniteTimeWindow,r=this._buffer.slice(),i=0;i1||a(e,t)})},t&&(r[e]=t(r[e])))}function a(e,t){try{(n=i[e](t)).value instanceof DM?Promise.resolve(n.value.v).then(l,c):u(s[0][2],n)}catch(r){u(s[0][3],r)}var n}function l(e){a("next",e)}function c(e){a("throw",e)}function u(e,t){e(t),s.shift(),s.length&&a(s[0][0],s[0][1])}}(this,arguments)}function DA(e){return zM(null==e?void 0:e.getReader)}function zA(e){if(e instanceof oA)return e;if(null!=e){if(PA(e))return r=e,new oA(function(e){var t=r[iA]();if(zM(t.subscribe))return t.subscribe(e);throw new TypeError("Provided object does not correctly implement Symbol.observable")});if(LA(e))return function(e){return new oA(function(t){for(var n=0;n0&&h(i)},void 0,void 0,function(){(null==s?void 0:s.closed)||null==s||s.unsubscribe(),a=null})),!c&&h(null!=r?"number"==typeof r?r:+r-l.now():i)})}function eO(e){throw new JA(e)}function tO(e,t){return lA(function(n,r){var i=0;n.subscribe(cA(r,function(n){r.next(e.call(t,n,i++))}))})}var nO=Array.isArray,rO=Array.isArray,iO=Object.getPrototypeOf,sO=Object.prototype,oO=Object.keys;function aO(){for(var e=[],t=0;t=0?UA(n,s,c,o,!0):i=!0,c();var u=cA(n,function(e){var t,n,i=r.slice();try{for(var s=OM(i),o=s.next();!o.done;o=s.next()){var c=o.value,u=c.buffer;u.push(e),a<=u.length&&l(c)}}catch(h){t={error:h}}finally{try{o&&!o.done&&(n=s.return)&&n.call(s)}finally{if(t)throw t.error}}},function(){for(;null==r?void 0:r.length;)n.next(r.shift().buffer);null==u||u.unsubscribe(),n.complete(),n.unsubscribe()},void 0,function(){return r=null});t.subscribe(u)})}function wO(e){return lA(function(t,n){var r,i=null,s=!1;i=t.subscribe(cA(n,void 0,void 0,function(o){r=zA(e(o,wO(e)(t))),i?(i.unsubscribe(),i=null,r.subscribe(n)):s=!0})),s&&(i.unsubscribe(),i=null,r.subscribe(n))})}function _O(e,t,n,r,i){return function(s,o){var a=n,l=t,c=0;s.subscribe(cA(o,function(t){var n=c++;l=a?e(l,t,n):(a=!0,t),r&&o.next(l)},i&&function(){a&&o.next(l),o.complete()}))}}var xO=function(e,t){return e.push(t),e},CO={connector:function(){return new dA}};function SO(e,t){void 0===t&&(t=CO);var n=t.connector;return lA(function(t,r){var i,s=n();zA(e((i=s,new oA(function(e){return i.subscribe(e)})))).subscribe(r),r.add(t.subscribe(s))})}function kO(e){return e<=0?function(){return SA}:lA(function(t,n){var r=0;t.subscribe(cA(n,function(t){++r<=e&&(n.next(t),e<=r&&n.complete())}))})}function EO(){return lA(function(e,t){e.subscribe(cA(t,KM))})}function RO(e,t){return void 0===t&&(t=sA),e=null!=e?e:TO,lA(function(n,r){var i,s=!0;n.subscribe(cA(r,function(n){var o=t(n);!s&&e(i,o)||(s=!1,i=o,r.next(n))}))})}function TO(e,t){return e===t}function LO(){for(var e=[],t=0;t=2,!0))}function FO(e){void 0===e&&(e={});var t=e.connector,n=void 0===t?function(){return new dA}:t,r=e.resetOnError,i=void 0===r||r,s=e.resetOnComplete,o=void 0===s||s,a=e.resetOnRefCountZero,l=void 0===a||a;return function(e){var t,r,s,a=0,c=!1,u=!1,h=function(){null==r||r.unsubscribe(),r=void 0},d=function(){h(),t=s=void 0,c=u=!1},p=function(){var e=t;d(),null==e||e.unsubscribe()};return lA(function(e,f){a++,u||c||h();var g=s=null!=s?s:n();f.add(function(){0!==--a||u||c||(r=DO(p,l))}),g.subscribe(f),!t&&a>0&&(t=new eA({next:function(e){return g.next(e)},error:function(e){u=!0,h(),r=DO(d,i,e),g.error(e)},complete:function(){c=!0,h(),r=DO(d,o),g.complete()}}),zA(e).subscribe(t))})(e)}}function DO(e,t){for(var n=[],r=2;r{var n=1e3,r=60*n,i=60*r,s=24*i,o=7*s;function a(e,t,n,r){var i=t>=1.5*n;return Math.round(e/n)+" "+r+(i?"s":"")}t.exports=function(e,t){t=t||{};var l,c,u=typeof e;if("string"===u&&e.length>0)return function(e){if(!((e=String(e)).length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var a=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*a;case"weeks":case"week":case"w":return a*o;case"days":case"day":case"d":return a*s;case"hours":case"hour":case"hrs":case"hr":case"h":return a*i;case"minutes":case"minute":case"mins":case"min":case"m":return a*r;case"seconds":case"second":case"secs":case"sec":case"s":return a*n;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return a;default:return}}}}(e);if("number"===u&&isFinite(e))return t.long?(l=e,(c=Math.abs(l))>=s?a(l,c,s,"day"):c>=i?a(l,c,i,"hour"):c>=r?a(l,c,r,"minute"):c>=n?a(l,c,n,"second"):l+" ms"):function(e){var t=Math.abs(e);return t>=s?Math.round(e/s)+"d":t>=i?Math.round(e/i)+"h":t>=r?Math.round(e/r)+"m":t>=n?Math.round(e/n)+"s":e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}}),WO=o((e,t)=>{t.exports=function(e){function t(e){let r,i,s,o=null;function a(...e){if(!a.enabled)return;const n=a,i=Number(new Date);n.diff=i-(r||i),n.prev=r,n.curr=i,r=i,e[0]=t.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");let s=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,(r,i)=>{if("%%"===r)return"%";s++;const o=t.formatters[i];if("function"==typeof o){const t=e[s];r=o.call(n,t),e.splice(s,1),s--}return r}),t.formatArgs.call(n,e),(n.log||t.log).apply(n,e)}return a.namespace=e,a.useColors=t.useColors(),a.color=t.selectColor(e),a.extend=n,a.destroy=t.destroy,Object.defineProperty(a,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==o?o:(i!==t.namespaces&&(i=t.namespaces,s=t.enabled(e)),s),set:e=>{o=e}}),"function"==typeof t.init&&t.init(a),a}function n(e,n){const r=t(this.namespace+(void 0===n?":":n)+e);return r.log=this.log,r}function r(e,t){let n=0,r=0,i=-1,s=0;for(;n"-"+e)].join(",");return t.enable(""),e},t.enable=function(e){t.save(e),t.namespaces=e,t.names=[],t.skips=[];const n=("string"==typeof e?e:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(const r of n)"-"===r[0]?t.skips.push(r.slice(1)):t.names.push(r)},t.enabled=function(e){for(const n of t.skips)if(r(e,n))return!1;for(const n of t.names)if(r(e,n))return!0;return!1},t.humanize=VO(),t.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(e).forEach(n=>{t[n]=e[n]}),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let n=0;for(let t=0;t{e.formatArgs=function(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+t.exports.humanize(this.diff),!this.useColors)return;const n="color: "+this.color;e.splice(1,0,n,"color: inherit");let r=0,i=0;e[0].replace(/%[a-zA-Z%]/g,e=>{"%%"!==e&&(r++,"%c"===e&&(i=r))}),e.splice(i,0,n)},e.save=function(t){try{t?e.storage.setItem("debug",t):e.storage.removeItem("debug")}catch(_6){}},e.load=function(){let t;try{t=e.storage.getItem("debug")||e.storage.getItem("DEBUG")}catch(_6){}return!t&&"undefined"!=typeof process&&"env"in process&&(t={}.DEBUG),t},e.useColors=function(){if("undefined"!=typeof window&&window.process&&("renderer"===window.process.type||window.process.__nwjs))return!0;if("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return"undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},e.storage=function(){try{return localStorage}catch(_6){}}(),e.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),e.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],e.log=console.debug||console.log||(()=>{}),t.exports=WO()(e);var{formatters:n}=t.exports;n.j=function(e){try{return JSON.stringify(e)}catch(_6){return"[UnexpectedJSONParseError]: "+_6.message}}}),GO=l(HO(),1),KO=(0,GO.default)("applesauce"),ZO=KO.extend("event-cache"),YO=Symbol("expiration-timestamp");function XO(e){return xP(e,YO,()=>{const t=e.tags.find(e=>"expiration"===e[0])?.[1];return t?parseInt(t):void 0})}var JO=o((e,t)=>{t.exports=function e(t,n){if(t===n)return!0;if(t&&n&&"object"==typeof t&&"object"==typeof n){if(t.constructor!==n.constructor)return!1;var r,i,s;if(Array.isArray(t)){if((r=t.length)!=n.length)return!1;for(i=r;0!==i--;)if(!e(t[i],n[i]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if((r=(s=Object.keys(t)).length)!==Object.keys(n).length)return!1;for(i=r;0!==i--;)if(!Object.prototype.hasOwnProperty.call(n,s[i]))return!1;for(i=r;0!==i--;){var o=s[i];if(!e(t[o],n[o]))return!1}return!0}return t!=t&&n!=n}}),QO=l(JO(),1),eN="abcdefghijklmnopqrstuvwxyz",tN=new Set((eN+eN.toUpperCase()).split("")),nN=Symbol.for("indexable-tags");function rN(e){let t=Reflect.get(e,nN);if(!t){const n=new Set;for(const t of e.tags)t.length>=2&&1===t[0].length&&tN.has(t[0])&&n.add(t[0]+":"+t[1]);t=n,Reflect.set(e,nN,n)}return t}function iN(e,t){if(e.ids&&-1===e.ids.indexOf(t.id))return!1;if(e.kinds&&-1===e.kinds.indexOf(t.kind))return!1;if(e.authors&&-1===e.authors.indexOf(t.pubkey))return!1;if(e.since&&t.created_ate.until)return!1;for(let n in e)if("&"===n[0]){let r=n.slice(1),i=e[n];if(i&&i.length>0){const e=rN(t);for(const t of i)if(!e.has(r+":"+t))return!1}}for(let n in e)if("#"===n[0]){let r=n.slice(1),i=e[n];if(i){const n=e[`&${r}`],s=n?i.filter(e=>!n.includes(e)):i;if(0===s.length)continue;const o=rN(t);if(!1===s.some(e=>o.has(r+":"+e)))return!1}}return!0}function sN(e,t){for(let n=0;n[e,this.get(e)])}evict(e=!1){if(e||this.size>0){const e=this.first;delete this.items[e.key],0===--this.size?(this.first=null,this.last=null):(this.first=e.next,this.first.prev=null)}return this}expiresAt(e){let t;return this.has(e)&&(t=this.items[e].expiry),t}get(e){let t;if(this.has(e)){const n=this.items[e];this.ttl>0&&n.expiry<=Date.now()?this.delete(e):(t=n.value,this.set(e,t,!0))}return t}has(e){return e in this.items}keys(){const e=[];let t=this.first;for(;null!==t;)e.push(t.key),t=t.next;return e}set(e,t,n=!1,r=this.resetTtl){let i;if(n||this.has(e)){if(i=this.items[e],i.value=t,!1===n&&r&&(i.expiry=this.ttl>0?Date.now()+this.ttl:this.ttl),this.last!==i){const e=this.last,t=i.next,n=i.prev;this.first===i&&(this.first=i.next),i.next=null,i.prev=this.last,e.next=i,null!==n&&(n.next=t),null!==t&&(t.prev=n)}}else this.max>0&&this.size===this.max&&this.evict(!0),i=this.items[e]={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:e,prev:this.last,next:null,value:t},1===++this.size?this.first=i:this.last.next=i;return this.last=i,this}values(e=this.keys()){return e.map(e=>this.get(e))}},lN=Symbol.for("mailboxes-inboxes"),cN=Symbol.for("mailboxes-outboxes");function uN(e){return xP(e,lN,()=>{const t=[];for(const n of e.tags)if(ZP(n))try{const[,e,r]=n;!e||!lM(e)||t.includes(e)||"read"!==r&&void 0!==r||t.push(rM(e))}catch{}return t})}function hN(e){return xP(e,cN,()=>{const t=[];for(const n of e.tags)if(ZP(n))try{const[e,r,i]=n;"r"!==e||!lM(r)||t.includes(r)||"write"!==i&&void 0!==i||t.push(rM(r))}catch{}return t})}var dN=Symbol.for("profile-content");function pN(e){return xP(e,dN,()=>{const t=function(e){try{return JSON.parse(e)}catch(_6){return}}(e.content);if(t)return t.nip05&&"string"!=typeof t.nip05&&(t.nip05=String(t.nip05)),t.website&&t.website?.length>0&&!1===t.website?.startsWith("http")&&(t.website="https://"+t.website),t})}function fN(e){return!(!e||e.kind!==uR.Metadata&&e.kind!==uR.Handlerinformation||!pN(e))}function gN(e,t){return Object.fromEntries(Array.from(Object.entries(e)).map(([e,n])=>[e,{authors:n.map(e=>e.pubkey),...t}]))}function mN(e,t=!0){return n=>function(e,t,n=!0){const r=e.find(e=>e[0]===t[0]);return r?n?e.map(e=>e===r?t:e):e:[...e,t]}(n,e,t)}function yN(e,t=!0){return vN(mN(e,t))}function vN(...e){return async t=>({...t,tags:await $P(...e)(Array.from(t.tags))})}function bN(e,...t){return 0===(t=t.filter(e=>!!e)).length?e=>e:async n=>{if(!e)throw new Error("Missing signer for hidden tags");if(!kM(n.kind))throw new Error("Event kind does not support hidden tags");let r,i;if(EM(n)?(i=RM(n),void 0===i&&(EM(n)?(r=await e.getPublicKey(),i=await async function(e,t,n){if(!kM(e.kind))throw new Error("Event kind does not support hidden tags");if(function(e){if(!kM(e.kind))return!1;try{return CM in e||function(e){return!!wM(e.kind)&&function(e){return!0===Reflect.has(e,NP)}(e)&&!0===Reflect.has(e,mM)}(e)&&void 0!==RM(e)}catch{}return!1}(e))return e[CM];await async function(e,t,n){if(!wM(e.kind))throw new Error("Event kind does not support hidden content");if(mM in e)return Reflect.get(e,mM);const r=await zP(e.kind,t,n).decrypt(e.pubkey,e.content);return xM(e,r),r}(e,t,n);const r=RM(e);if(void 0===r)throw new Error("Failed to unlock hidden tags");return function(e,t){if(!kM(e.kind))throw new Error("Event kind does not support hidden tags");Reflect.set(e,CM,t),xM(e,JSON.stringify(t))}(e,r),r}({...n,pubkey:r},e)):i=[])):i=[],void 0===i)throw new Error("Failed to find hidden tags");const s=await $P(...t)(i),o=function(e,t){return yM(e,t)}(n.kind,e);r||(r=await e.getPublicKey());const a=JSON.stringify(s),l=await o.encrypt(r,a);return{...n,content:l,[NP]:a}}}function wN(e){return yN(["alt",e])}function _N(e){return yN(["expiration",e.toString()],!0)}function xN(e=!0){return vN(e?mN(["-"]):e=>e.filter(e=>!("-"===e[0])))}function CN(e){return async t=>{if(!e)throw new Error("Missing signer");Reflect.deleteProperty(t,"id"),Reflect.deleteProperty(t,"sig");const n=await e.getPublicKey(),r={...t,pubkey:n};return Reflect.has(t,NP)&&Reflect.set(r,NP,Reflect.get(t,NP)),r}}var SN=class e extends Promise{static fromKind(t){return new e(e=>e({kind:t,created_at:VP(),tags:[],content:""}))}static fromEvent(t){return new e(e=>e(function(e){return{kind:e.kind,created_at:VP(),tags:Array.from(e.tags),content:e.content}}(t)))}_signerRef={};get signer(){return this._signerRef.signer}set signer(e){this._signerRef.signer=e}chain(e){const t=new(0,this.constructor)(t=>t(this.then(async t=>{const n=await e(t);for(const e of Reflect.ownKeys(n))"symbol"!=typeof e||jP.has(e)||Reflect.deleteProperty(n,e);return n})));return t._signerRef=this._signerRef,t}as(e){return this._signerRef.signer=e,this}strip(){return new e(e=>e(this.then(e=>({content:e.content,tags:e.tags,created_at:e.created_at,kind:e.kind}))))}stamp(t=this.signer){return new e((e,n)=>{if(!t)return n(new Error("Signer required for stamping"));e(this.then(e=>CN(t)(e)))})}async sign(e=this.signer){if(!e)throw new Error("Missing signer");this.signer||(this.signer=e);const t=await(this),n=await function(e){return async t=>{if(!e)throw new Error("Missing signer");const n=await CN(e)(t),r=await e.signEvent(n);if(Reflect.has(t,"pubkey")&&Reflect.get(t,"pubkey")!==r.pubkey)throw new Error("Signer modified pubkey");if(!Ax(r,t.kind))throw new Error("Signer modified event kind");return Reflect.has(t,NP)&&Reflect.set(r,NP,Reflect.get(t,NP)),r}}(e)(t);if(Reflect.has(t,"pubkey")&&Reflect.get(t,"pubkey")!==n.pubkey)throw new Error("Signer modified pubkey");if(Ax(n,t.kind))return n;throw new Error("Signer modified event kind")}kind(t){return new e(e=>({...e,kind:t}))}content(e){return this.chain(t=>({...t,content:e}))}created(e=VP()){return e instanceof Date&&(e=Math.floor(e.getTime()/1e3)),this.chain(t=>({...t,created_at:e}))}meta(e){return this.chain(function(e){return BP(e?.protected?xN(!0):e=>e,e?.expiration?_N(e.expiration):e=>e,e?.alt?wN(e.alt):e=>e)}(e))}alt(e){return this.chain(wN(e))}expiration(e){return this.chain(_N(e))}contentWarning(e){return this.chain(function(e){return t=>{let n=Array.from(t.tags);return n=n.filter(e=>"content-warning"!==e[0]),"string"==typeof e?n.push(["content-warning",e]):!0===e&&n.push(["content-warning"]),{...t,tags:n}}}(e))}protected(e){return this.chain(xN(e))}modifyTags(...e){let t;return t=this.chain(n=>function(e,t){let n=[],r=[];return void 0===e?n=r=[]:Array.isArray(e)?n=e:"function"==typeof e?n=[e]:("function"==typeof e.public?n=[e.public]:e.public&&(n=e.public),"function"==typeof e.hidden?r=[e.hidden]:e.hidden&&(r=e.hidden)),BP(n.length>0?vN(...n):void 0,r.length>0?bN(t,...r):void 0)}(e[0],t.signer)(n)),t}modifyPublicTags(...e){return this.chain(vN(...e))}modifyHiddenTags(...e){let t;return t=this.chain(n=>bN(t.signer,...e)(n)),t}encryptedContent(e,t,n){let r;return r=this.chain(i=>{const s=r.signer;if(!s)throw new Error("Signer required for encrypted content");return function(e,t,n,r){return async i=>{if(!n)throw new Error("Signer required for encrypted content");const s=await zP(i.kind,n,r).encrypt(e,t);return{...i,content:s,[NP]:t}}}(e,t,s,n)(i)}),r}},kN=o((e,t)=>{function n(e,t){var n,r;if(0===t.length)return e;for(n=0,r=t.length;nnull!==e).map(t=>(t.author=e.pubkey,t))}(e);if(r.length>0){let i=this.deletedIds.get(t);i||(i=new Set,this.deletedIds.set(t,i));for(const t of r){i.add(t.id);const r={pointer:t,until:e.created_at};n.push(r),this.deletedSubject.next(r)}}const i=function(e){return e.tags.filter(YP).map(dM).filter(e=>null!==e).filter(t=>t.pubkey===e.pubkey)}(e);if(i.length>0){let r=this.deletedIdentifiers.get(t);r||(r=new Map,this.deletedIdentifiers.set(t,r));for(const t of i){const i=t.kind+"|"+t.identifier;r.set(i,e.created_at);const s={pointer:t,until:e.created_at};n.push(s),this.deletedSubject.next(s)}}return n}check(e){const t=e.pubkey;if(Px(e.kind)||Mx(e.kind)){const n=this.deletedIdentifiers.get(t);if(!n)return!1;const r=OP(e),i=e.kind+"|"+r,s=n.get(i);return void 0!==s&&s>=e.created_at}{const n=this.deletedIds.get(t);return!!n&&n.has(e.id)}}filter(e){return e.filter(e=>!1===this.check(e))}},TN=class{log=KO.extend("EventMemory");kinds=new Map;authors=new Map;tags=new aN;created_at=[];kindAuthor=new Map;events=new aN;replaceable=new Map;get size(){return this.events.size}hasEvent(e){return this.events.has(e)}getEvent(e){return this.events.get(e)}hasReplaceable(e,t,n){const r=this.replaceable.get(MP(e,t,n));return!!r&&r.length>0}getReplaceable(e,t,n){const r=MP(e,t,n);return this.replaceable.get(r)?.[0]}getReplaceableHistory(e,t,n){const r=MP(e,t,n);return this.replaceable.get(r)}getByFilters(e){return Array.from(this.getEventsForFilters(Array.isArray(e)?e:[e]))}getTimeline(e){const t=[],n=this.getByFilters(e);for(const r of n)CP(t,r);return t}add(e){const t=e.id,n=this.events.get(t);if(n)return n;this.events.set(t,e),this.getKindIndex(e.kind).add(e),this.getAuthorsIndex(e.pubkey).add(e),this.getKindAuthorIndex(e.kind,e.pubkey).add(e);for(const r of rN(e))this.tags.has(r)&&this.getTagIndex(r).add(e);if(CP(this.created_at,e),IP(e.kind)){const t=e.tags.find(e=>"d"===e[0])?.[1],n=MP(e.kind,e.pubkey,t);let r=this.replaceable.get(n);this.replaceable.has(n)||(r=[],this.replaceable.set(n,r)),CP(r,e)}return e}remove(e){let t="string"==typeof e?this.events.get(e):e;if(!t)return!1;const n=t.id;if(!this.events.has(n))return!1;const r=this.authors.get(t.pubkey);r&&(r.delete(t),0===r.size&&this.authors.delete(t.pubkey));const i=this.kinds.get(t.kind);i&&(i.delete(t),0===i.size&&this.kinds.delete(t.kind));const s=`${t.kind}:${t.pubkey}`,o=this.kindAuthor.get(s);o&&(o.delete(t),0===o.size&&this.kindAuthor.delete(s));for(const a of rN(t))if(this.tags.has(a)){const e=this.getTagIndex(a);e.delete(t),0===e.size&&this.tags.delete(a)}if(this.removeFromSortedArray(this.created_at,t),this.events.delete(n),IP(t.kind)){const e=t.tags.find(e=>"d"===e[0])?.[1],n=MP(t.kind,t.pubkey,e),r=this.replaceable.get(n);r&&(this.removeFromSortedArray(r,t),0===r.length&&this.replaceable.delete(n))}return this.claims.delete(t),!0}removeByFilters(e){const t=this.getByFilters(e);let n=0;for(const r of t)this.remove(r)&&n++;return n}update(e){}claims=new WeakMap;touch(e){this.events.has(e.id)&&this.events.set(e.id,e)}claim(e){const t=this.claims.get(e)||0;this.claims.set(e,t+1),this.touch(e)}isClaimed(e){const t=this.claims.get(e);return void 0!==t&&t>0}removeClaim(e){const t=this.claims.get(e);if(void 0!==t&&t>0){const n=t-1;0===n?this.claims.delete(e):this.claims.set(e,n)}}clearClaim(e){this.claims.delete(e)}*unclaimed(){let e=this.events.first;for(;e;){const t=e.value;this.isClaimed(t)||(yield t),e=e.next}return 0}prune(e){let t=0;const n=this.unclaimed();for(const r of n)if(this.remove(r),t++,e&&t>=e)break;return t}getKindIndex(e){return this.kinds.has(e)||this.kinds.set(e,new Set),this.kinds.get(e)}getAuthorsIndex(e){return this.authors.has(e)||this.authors.set(e,new Set),this.authors.get(e)}getKindAuthorIndex(e,t){const n=`${e}:${t}`;return this.kindAuthor.has(n)||this.kindAuthor.set(n,new Set),this.kindAuthor.get(n)}getTagIndex(e){if(!this.tags.has(e)){const t=new Set,n=Date.now();for(const i of this.events.values())rN(i).has(e)&&t.add(i);const r=Date.now()-n;r>100&&this.log(`Built index ${e} took ${r}ms`),this.tags.set(e,t)}return this.tags.get(e)}removeFromSortedArray(e,t){if(0===e.length)return;const n=SP(e,e=>e.created_at-t.created_at);if(n){let r=n[0],i=!1;if(e[r]===t)return void e.splice(r,1);for(let n=r-1;n>=0&&e[n].created_at===t.created_at;n--)if(e[n]===t){e.splice(n,1),i=!0;break}if(i)return;for(let n=r+1;ne.created_at-t):void 0;i&&(n=Math.max(0,Math.min(i[0],this.created_at.length-1)));const s=e?SP(this.created_at,t=>t.created_at-e):void 0;if(s&&(r=Math.max(0,Math.min(s[0],this.created_at.length-1))),!(n>r))for(let o=n;o<=r;o++){const n=this.created_at[o];if(!(void 0!==t&&n.created_at>t)){if(void 0!==e&&n.created_at{const r=e instanceof Set?e:new Set(e);if(t)n=r,t=!1;else for(const t of n)r.has(t)||n.delete(t);return n};e.ids&&r(this.iterateIds(e.ids));let i=null;void 0!==e.since&&(i=Array.from(this.iterateTime(e.since,e.until)),r(i));for(const s of tN){const t=e[`&${s}`];if(t?.length)for(const e of t)r(this.iterateTag(s,[e]))}for(const s of tN){const t=e[`#${s}`];if(t?.length){const n=e[`&${s}`],i=n?t.filter(e=>!n.includes(e)):t;i.length>0&&r(this.iterateTag(s,i))}}if(e.authors&&e.kinds&&e.authors.length*e.kinds.length<=20){const t=new Set;for(const n of e.kinds)for(const r of e.authors){const e=`${n}:${r}`,i=this.kindAuthor.get(e);if(i)for(const n of i)t.add(n)}r(t)}else e.authors&&r(this.iterateAuthors(e.authors)),e.kinds&&r(this.iterateKinds(e.kinds));if(void 0===e.since&&void 0!==e.until&&(i=Array.from(this.iterateTime(e.since,e.until)),r(i)),t)return new Set(this.events.values());if(e.limit&&i){const t=new Set;for(const r of i){if(t.size>=e.limit)break;n.has(r)&&t.add(r)}return t}return n}getEventsForFilters(e){if(0===e.length)return new Set;let t=new Set;for(const n of e){const e=this.getEventsForFilter(n);for(const n of e)t.add(n)}return t}reset(){this.events.clear(),this.kinds.clear(),this.authors.clear(),this.kindAuthor.clear(),this.tags.clear(),this.created_at=[],this.replaceable.clear(),this.claims=new WeakMap}};function LN(e){return t=>{const n=new Set;return t.pipe(qO(t=>{if(void 0!==t)if(Array.isArray(t))for(const r of t)n.has(r)||(n.add(r),e.claim(r));else n.has(t)||(n.add(t),e.claim(t))}),IO(()=>{for(const t of n)e.removeClaim(t)}))}}function IN(e){return t=>{let n;return t.pipe(qO(t=>{n!==t&&(n&&e.removeClaim(n),t&&e.claim(t),n=t)}),IO(()=>{n&&e.removeClaim(n)}))}}function PN(e,t){return UO(n=>n?WA(n):e.eventLoader?VA(e.eventLoader(t)).pipe(jO(void 0)):WA(n))}function MN(e){return"string"==typeof e&&(e={id:e}),t=>fO(dO(()=>function(e,t){const n=e.getEvent(t.id);return n instanceof Promise?VA(n):WA(n)}(t,e)).pipe(t.eventLoader?PN(t,e):sA),t.insert$.pipe(vO(t=>t.id===e.id)),t.remove$.pipe(vO(t=>t.id===e.id),kO(1),tO(()=>{}))).pipe(RO((e,t)=>e?.id===t?.id),IN(t))}function AN(e){return t=>{let n;return fO(dO(()=>function(e,t){const n=e.getReplaceable(t.kind,t.pubkey,t.identifier);return n instanceof Promise?VA(n):WA(n)}(t,e)).pipe(t.eventLoader?PN(t,e):sA),t.insert$.pipe(vO(t=>t.pubkey==e.pubkey&&t.kind===e.kind&&(void 0===e.identifier||OP(t)===e.identifier)))).pipe(qO(e=>n=e),MO(t.remove$.pipe(vO(e=>e.id===n?.id),tO(()=>{}))),RO((e,t)=>void 0===e||void 0===t?e===t:t.created_at{const r=new Map,i=e=>t?e.id:function(e){let t=Reflect.get(e,EP);return t||(t=IP(e.kind)?PP(e)??e.id:e.id,Reflect.set(e,EP,t)),t}(e);return dO(()=>{const t=n.getTimeline(e);return t instanceof Promise?VA(t):WA(t)}).pipe(LN(n),MO(n.insert$.pipe(vO(t=>sN(e,t)),LN(n))),MO(n.remove$.pipe(vO(t=>sN(e,t)),tO(e=>e.id))),NO((e,n)=>{if("string"==typeof n){const t=e.find(e=>e.id===n);if(t){const e=i(t);r.get(e)?.id===n&&r.delete(e)}return e.filter(e=>e.id!==n)}if(Array.isArray(n)){r.clear();for(const e of n)r.set(i(e),e);return[...n]}let s=[...e];const o=i(n),a=r.get(o);if(a&&(!IP(n.kind)||!t&&n.created_atr.clear()))}}function NN(e,t=!1){return e=Array.isArray(e)?e:[e],n=>{const r=t?SA:dO(()=>function(e,t){const n=e.getByFilters(t);return n instanceof Promise?VA(n).pipe(cO(e=>VA(e))):VA(n)}(n,e));return fO(r,n.insert$.pipe(vO(t=>sN(e,t))))}}function FN(e){return"string"==typeof e&&(e={pubkey:e}),t=>{return t.replaceable({kind:uR.Contacts,pubkey:e.pubkey,relays:e.relays}).pipe((n=t,e=>{let t;return fO(e.pipe(qO(e=>t=e)),n.update$.pipe(vO(e=>e.id===t?.id)))}),tO(e=>{return e?function(...e){const t=new Map;for(const n of e)if(Array.isArray(n))for(const e of n)e&&t.set(e.pubkey,e);else n&&t.set(n.pubkey,n);return Array.from(t.values())}(function(e){return xP(e,TM,()=>XP(e.tags,e=>KP(e)?e:void 0,e=>pM(e)??void 0))}(t=e),function(e){if(LM in e)return e[LM];const t=RM(e);if(!t)return;const n=XP(t,e=>KP(e)?e:void 0,e=>pM(e)??void 0);return Reflect.set(e,LM,n),n}(t)):[];var t}));var n}}function DN(e){return"string"==typeof e&&(e={pubkey:e}),t=>t.replaceable({kind:uR.RelayList,pubkey:e.pubkey,relays:e.relays}).pipe(tO(e=>e&&{inboxes:uN(e),outboxes:hN(e)}))}function zN(e){return"string"==typeof e&&(e={pubkey:e}),t=>t.replaceable({kind:uR.Metadata,pubkey:e.pubkey,relays:e.relays}).pipe(vO(fN),tO(e=>e&&pN(e)))}var jN=class{models=new Map;modelKeepWarm=6e4;destroy$=new mA(1);model(e,...t){let n=this.models.get(e);n||(n=new Map,this.models.set(e,n));const r=e.getKey?e.getKey(...t):(0,EN.default)(t);let i=n.get(r);if(!i){const s=()=>{n.get(r)===i&&n.delete(r)};i=e(...t)(this).pipe(IO(s),FO({connector:()=>new mA(1),resetOnComplete:()=>fO(pO(this.modelKeepWarm),this.destroy$),resetOnRefCountZero:()=>fO(pO(this.modelKeepWarm),this.destroy$)}),BO(this.destroy$)),n.set(r,i)}return i}filters(e,t=!1){return Array.isArray(e)||(e=[e]),this.model(NN,e,t)}event(e){return"string"==typeof e||fM(e)?this.model(MN,e):this.replaceable(e)}replaceable(...e){let t;if(1===e.length)t=e[0];else if(3===e.length||2===e.length){let[n,r,i]=e;t={kind:n,pubkey:r,identifier:i}}if(!t)throw new Error("Invalid arguments, expected address pointer or kind, pubkey, identifier");return this.model(AN,t)}addressable(e){return this.replaceable(e)}timeline(e,t=!1){return this.model(ON,e,t)}profile(e){return this.model(zN,e)}contacts(e){return"string"==typeof e&&(e={pubkey:e}),this.model(FN,e)}mailboxes(e){return"string"==typeof e&&(e={pubkey:e}),this.model(DN,e)}dispose(){this.destroy$.next(),this.destroy$.complete()}},UN=class{expired$;expiredSubject;expirations=new Map;timer=null;nextCheck=null;constructor(){this.expiredSubject=new dA,this.expired$=this.expiredSubject.asObservable()}track(e){const t=XO(e);if(!t||!Number.isFinite(t))return;const n=VP();if(t<=n)return;if(this.expirations.set(e.id,t),this.timer&&this.nextCheck&&this.nextCheck<=t)return;this.timer&&clearTimeout(this.timer);const r=t-n;r>0&&(this.timer=setTimeout(this.emitNotifications.bind(this),1e3*r+10),this.nextCheck=t)}forget(e){this.expirations.delete(e)}check(e){const t=XO(e);return!!t&&t<=VP()}dispose(){this.timer&&clearTimeout(this.timer),this.timer=null,this.nextCheck=null,this.expirations.clear(),this.expiredSubject.complete()}[Symbol.dispose](){this.dispose()}emitNotifications(){const e=VP();let t=1/0;for(const[n,r]of this.expirations)r<=e?(this.expirations.delete(n),this.expiredSubject.next(n)):r0&&(this.timer=setTimeout(this.emitNotifications.bind(this),1e3*n+10),this.nextCheck=t)}}},BN=class e extends jN{database;memory;deletes;expiration;keepOldVersions=!1;keepExpired=!1;keepDeleted=!1;_verifyEventMethod=_P;get verifyEvent(){return this._verifyEventMethod}set verifyEvent(e){this._verifyEventMethod=e,void 0===e&&console.warn("[applesauce-core] EventStore.verifyEvent is undefined; signature checks are disabled.")}insert$=new dA;update$=new dA;remove$=new dA;eventLoader;internalSubscriptions=new $M;constructor(e){super(),e?.database?(this.database=e.database,this.memory=new TN):this.database=this.memory=new TN,void 0!==e?.keepDeleted&&(this.keepDeleted=e.keepDeleted),void 0!==e?.keepExpired&&(this.keepExpired=e.keepExpired),void 0!==e?.keepOldVersions&&(this.keepOldVersions=e.keepOldVersions),e?.verifyEvent&&(this.verifyEvent=e.verifyEvent),this.deletes=e?.deleteManager??new RN,this.internalSubscriptions.add(this.deletes.deleted$.subscribe(this.handleDeleteNotification.bind(this))),this.expiration=e?.expirationManager??new UN,this.internalSubscriptions.add(this.expiration.expired$.subscribe(this.handleExpiredNotification.bind(this)))}mapToMemory(e){if(void 0!==e)return this.memory?this.memory.add(e):e}handleDeleteNotification({pointer:e,until:t}){if(!this.keepDeleted)if(fM(e)){const n=this.getEvent(e.id);n&&t>=n.created_at&&gM(n,e)&&this.remove(n)}else if(function(e){return"object"==typeof e&&null!==e&&"identifier"in e&&"pubkey"in e&&"kind"in e&&"string"==typeof e.identifier&&"string"==typeof e.pubkey&&"number"==typeof e.kind}(e)){const n=this.getReplaceableHistory(e.kind,e.pubkey,e.identifier);if(n)for(const r of n)t>=r.created_at&&gM(r,e)&&this.remove(r)}}handleExpiredNotification(e){this.keepExpired||this.remove(e)}static copySymbolsToDuplicateEvent(e,t){if(e.kind!==t.kind)throw new Error("Source and destination events must have the same kind");if((n=e.kind)<1e4&&0!==n&&3!==n&&e.id!==t.id)throw new Error("Source and destination events must have the same ID");var n;if(IP(e.kind)&&e.pubkey!==t.pubkey&&OP(e)!==OP(t))throw new Error("Source and destination events must have the same pubkey and replaceable identifier");let r=!1;const i=(s=e,Reflect.get(s,iM));var s;if(i){for(const e of i)oM(t,e);r=!0}const o=[TP,fP,NP];for(const a of o)a in e&&!(a in t)&&(Reflect.set(t,a,Reflect.get(e,a)),r=!0);return r}add(t,n){if(t.kind===uR.EventDeletion)return this.deletes.add(t),t;if(this.deletes.check(t))return t;const r=XO(t);if(!1===this.keepExpired&&r&&r<=VP())return null;n&&oM(t,n);const i=IP(t.kind)?OP(t):void 0;if(!1===this.keepOldVersions&&IP(t.kind)){const n=this.database.getReplaceableHistory(t.kind,t.pubkey,i);if(n&&n.length>0){let r=n[0];for(const e of n)(e.created_at>r.created_at||e.created_at===r.created_at&&e.idr.created_at||t.created_at===r.created_at&&t.id0){let t=e[0];for(const r of e)(r.created_at>t.created_at||r.created_at===t.created_at&&r.ide!==t);for(const e of n)this.remove(e);if(n.length>0)return t}}return!1===this.keepExpired&&void 0!==r&&this.expiration.track(o),o}remove(e){const t="string"==typeof e?e:e.id;let n=this.memory.getEvent(t);this.expiration.forget(t),n&&Reflect.deleteProperty(n,kP),this.memory!==this.database&&this.memory.remove(e);const r=this.database.remove(e);return r&&n&&this.remove$.next(n),r}removeByFilters(e){const t=this.getByFilters(e);for(const r of t)this.expiration.forget(r.id);this.memory!==this.database&&this.memory.removeByFilters(e);const n=this.database.removeByFilters(e);for(const r of t)this.remove$.next(r);return n}update(e){return!!this.database.add(e)&&(this.database.update?.(e),this.update$.next(e),!0)}hasEvent(e){return"string"==typeof e?this.memory.hasEvent(e)||this.database.hasEvent(e):fM(e)?this.memory.hasEvent(e.id)||this.database.hasEvent(e.id):this.hasReplaceable(e.kind,e.pubkey,e.identifier)}getEvent(e){return"string"==typeof e?this.memory.getEvent(e)??this.mapToMemory(this.database.getEvent(e)):fM(e)?this.memory.getEvent(e.id)??this.mapToMemory(this.database.getEvent(e.id)):this.getReplaceable(e.kind,e.pubkey,e.identifier)}hasReplaceable(e,t,n){return this.memory.hasReplaceable(e,t,n)||this.database.hasReplaceable(e,t,n)}getReplaceable(e,t,n){return this.memory.getReplaceable(e,t,n)??this.mapToMemory(this.database.getReplaceable(e,t,n))}getReplaceableHistory(e,t,n){return this.memory.getReplaceableHistory(e,t,n)??this.database.getReplaceableHistory(e,t,n)?.map(e=>this.mapToMemory(e)??e)}getByFilters(e){const t=this.database.getByFilters(e);return this.memory?t.map(e=>this.mapToMemory(e)):t}getTimeline(e){const t=this.database.getTimeline(e);return this.memory?t.map(e=>this.mapToMemory(e)):t}touch(e){return this.memory.touch(e)}claim(e){return this.memory.claim(e)}isClaimed(e){return this.memory.isClaimed(e)??!1}removeClaim(e){return this.memory.removeClaim(e)}clearClaim(e){return this.memory.clearClaim(e)}unclaimed(){return this.memory.unclaimed()||function*(){}()}prune(e){return this.memory.prune(e)??0}dispose(){const e=this.eventLoader;e&&"function"==typeof e[Symbol.dispose]&&e[Symbol.dispose](),this.eventLoader=void 0,super.dispose(),this.internalSubscriptions.unsubscribe(),this.expiration.dispose?.(),this.insert$.complete(),this.update$.complete(),this.remove$.complete()}[Symbol.dispose](){this.dispose()}};function $N(e,t=!0){return n=>{const r=n.pipe(FO());return r.pipe(cO(t=>{if("string"==typeof t)return SA;const n=e.add(t);return n instanceof Promise?VA(n):WA(n)}),wO(()=>WA(null)),vO(e=>null!==e),t?lA(function(e,t){var n=new Set;e.subscribe(cA(t,function(e){var r=e;n.has(r)||(n.add(r),t.next(e))}))}):sA,MO(r.pipe(vO(e=>"string"==typeof e))))}}function qN(e){return $N(e,!0)}var VN=class extends Error{};function WN(e,t){return QA({first:e,with:()=>HA(()=>new VN(t??"Timeout"))})}function HN(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name&&"BYTES_PER_ELEMENT"in e&&1===e.BYTES_PER_ELEMENT}var GN=e=>e?`"${e}" `:"";function KN(e,t,n=""){if(HN(e)&&(void 0===t||e.length===t))return e;void 0!==t&&function(e,t=""){if("number"!=typeof e)throw new TypeError(GN(t)+"expected number, got "+typeof e);if(!Number.isSafeInteger(e)||e<0)throw new RangeError(GN(t)+"expected integer >= 0, got "+e)}(t,"length");const r=HN(e),i=void 0!==t?` of length ${t}`:"",s=r?`length=${e.length}`:"type="+typeof e,o=GN(n)+"expected Uint8Array"+i+", got "+s;if(!r)throw new TypeError(o);throw new RangeError(o)}var ZN=(e,t)=>{if(null===e||"object"!=typeof e||Array.isArray(e))throw new TypeError(("object"===t?"":`"${t}" `)+"expected object, got type="+typeof e)};function YN(e,t=!0){if(e.destroyed)throw new Error("hash was destroyed");if(t&&e.finished)throw new Error("digest() was already called")}function XN(...e){for(let t=0;t>>t}function eF(e,t={}){if("function"!=typeof e)throw new TypeError('"hashCons" expected function, got type='+typeof e);t=function(e,t,n="opts"){return ZN(e,"defaults"),void 0!==t&&ZN(t,n),Object.assign(e,t)}({},t,"info");const n=(t,n)=>e(n).update(t).digest(),r=e(void 0);return n.outputLen=r.outputLen,n.blockLen=r.blockLen,n.canXOF=r.canXOF,n.create=t=>e(t),Object.assign(n,t),Object.freeze(n)}var tF=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])});function nF(e,t,n){return e&t^~e&n}function rF(e,t,n){return e&t^e&n^t&n}var iF=class{blockLen;outputLen;canXOF=!1;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(e,t,n,r){this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=r,this.buffer=new Uint8Array(e),this.view=JN(this.buffer)}update(e){YN(this),KN(e);const{view:t,buffer:n,blockLen:r}=this,i=e.length;let s=!1;for(let o=0;o=n))throw new RangeError('"output" expected length >= '+n)}(e,this),this.finished=!0;const{buffer:t,view:n,blockLen:r,isLE:i}=this;let{pos:s}=this;t[s++]=128,t.fill(0,s),this.padOffset>r-s&&(this.process(n,0),t.fill(0)),function(e,t,n,r){const i=(e=>e/2**32|0)(n),s=(e=>e>>>0)(n);e.setUint32(t,r?s:i,r),e.setUint32(t+4,r?i:s,r)}(n,r-8,8*this.length,i),this.process(n,0),this.roundClean();const o=e===t?n:JN(e),a=this.outputLen,l=a/4,c=this.get();if(a%4||l>c.length)throw new Error("invalid outputLen");for(let u=0;u>>3,r=QN(t,17)^QN(t,19)^t>>>10;aF[u]=r+aF[u-7]+n+aF[u-16]|0}let{A:n,B:r,C:i,D:s,E:o,F:a,G:l,H:c}=this;for(let u=0;u<64;u++){const e=c+(QN(o,6)^QN(o,11)^QN(o,25))+nF(o,a,l)+oF[u]+aF[u]|0,t=(QN(n,2)^QN(n,13)^QN(n,22))+rF(n,r,i)|0;c=l,l=a,a=o,o=s+e|0,s=i,i=r,r=n,n=e+t|0}n=n+this.A|0,r=r+this.B|0,i=i+this.C|0,s=s+this.D|0,o=o+this.E|0,a=a+this.F|0,l=l+this.G|0,c=c+this.H|0,this.set(n,r,i,s,o,a,l,c)}roundClean(){XN(aF)}destroy(){this.destroyed=!0,this.set(0,0,0,0,0,0,0,0),XN(this.buffer)}},cF=class extends lF{constructor(){super(32,sF)}},uF=eF(()=>new cF,tF(1)),hF=new WeakMap;function dF(e,t,n,r){let i={configurable:!0,enumerable:!0,writable:!0,initializer:null};r&&(i.initializer=r);for(let s of n)i=s(e,t,i)||i;void 0===i.initializer?Object.defineProperty(e,t,i):function(e,t,n){let r=hF.get(e);r||(r=new Map,hF.set(e,r)),r.set(t,n)}(e,t,i)}function pF(e,t,n){let r={...Object.getOwnPropertyDescriptor(e,t)};for(let i of n)r=i(e,t,r)||r;void 0!==r.initializer&&(r.value=r.initializer?r.initializer.call(e):void 0,r.initializer=void 0),Object.defineProperty(e,t,r)}function fF(e,t){let n=function(e,t){var n;let r=e.prototype;for(;r;){let e=null==(n=hF.get(r))?void 0:n.get(t);if(e)return e;r=Object.getPrototypeOf(r)}}(e.constructor,t);n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(e):void 0})}var gF=a({DEFAULT_BLOSSOM_SERVER:()=>mF,default:()=>vF}),mF="https://blossom.nostr.build";function yF(e,t){let n=e||"https://blossom.nostr.build";return n.endsWith("/")&&(n=n.slice(0,-1)),t.startsWith("/")?`${n}${t}`:`${n}/${t}`}var vF=class extends pp{static{dF(this.prototype,"nostrAuth",[dp])}#N=void fF(this,"nostrAuth");static{dF(this.prototype,"nostrData",[dp])}#F=void fF(this,"nostrData");static{dF(this.prototype,"settings",[dp])}#D=void fF(this,"settings");get servers(){const e=this.nostrData.blossomServers,t=e.length?e:[mF];return this.settings.nostrPhotoFallbackUploads?t:[t[0]]}async _getAuthHeader(e,t,n){const r=Math.floor(Date.now()/1e3),i=new URL(n).hostname,s=await SN.fromKind(24242).content("upload"===e?"Upload photo for place":"Delete photo").modifyPublicTags(()=>[["t",e],["x",t],["expiration",String(r+3600)],["server",i]]).created(r).as(this.nostrAuth.signer).sign();return`Nostr ${btoa(JSON.stringify(s)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}`}async _uploadToServer(e,t,n,r){const i=yF(n,"upload");r&&r("signing");const s=await this._getAuthHeader("upload",t,n);r&&r("uploading");const o=await fetch(i,{method:"PUT",headers:{Authorization:s,"X-SHA-256":t},body:e});if(!o.ok){const e=await o.text();throw new Error(`Upload failed (${o.status}): ${e}`)}return o.json()}async upload(e,t={sequential:!1}){if(!this.nostrAuth.isConnected)throw new Error("Not connected");const n=await e.arrayBuffer();let r;r="undefined"!=typeof crypto&&crypto.subtle&&crypto.subtle.digest?await crypto.subtle.digest("SHA-256",n):uF(new Uint8Array(n));const i=function(e){return Array.from(new Uint8Array(e)).map(e=>e.toString(16).padStart(2,"0")).join("")}(r),s=this.servers,o=s[0],a=s.slice(1),l=[];let c;if(t.sequential){c=await this._uploadToServer(e,i,o,t.onProgress);for(const n of a)try{const r=await this._uploadToServer(e,i,n,t.onProgress);l.push(r.url)}catch(_6){console.warn(`Fallback upload to ${n} failed:`,_6)}}else{const n=this._uploadToServer(e,i,o,t.onProgress),r=a.map(n=>this._uploadToServer(e,i,n,t.onProgress));c=await n;const s=await Promise.allSettled(r);for(let e=0;ethis._deleteFromServer(e,t));await i;const o=await Promise.allSettled(s);for(let a=0;a_F,groupPhotoContributions:()=>CF}),wF=3600,_F=class{type="photo";placeIdentifier;osmType;osmId;photos;createdAt;eventCount;static{dF(this.prototype,"placeName",[Vr],function(){return null})}#z=void fF(this,"placeName");static{dF(this.prototype,"placeNameLoading",[Vr],function(){return!0})}#j=void fF(this,"placeNameLoading");constructor({placeIdentifier:e,osmType:t,osmId:n,photos:r,createdAt:i,eventCount:s}){this.placeIdentifier=e,this.osmType=t,this.osmId=n,this.photos=r,this.createdAt=i,this.eventCount=s}};function xF(e){const t=e.tags||[],n=t.filter(e=>"t"===e[0]).map(e=>e[1]).filter(Boolean),r=t.find(e=>"imeta"===e[0]);if(!r)return null;let i=null,s=null,o=null,a=!1,l=16/9,c=null;for(const p of r.slice(1))if(p.startsWith("url "))i=p.substring(4);else if(p.startsWith("thumb "))s=p.substring(6);else if(p.startsWith("blurhash "))o=p.substring(9);else if(p.startsWith("dim ")){const[e,t]=p.substring(4).split("x").map(Number);e&&t&&(l=e/t,e>t&&(a=!0))}else if(p.startsWith("alt ")){const e=p.substring(4).trim();c="A photo of a place"===e?null:e||null}if(!i)return null;const u=t.find(e=>"i"===e[0])?.[1],h=t.find(e=>"published_at"===e[0])?.[1],d=h?Number(h):null;return{eventId:e.id,pubkey:e.pubkey,createdAt:e.created_at,publishedAt:d&&d>0?d:null,url:i,thumbUrl:s,blurhash:o,isLandscape:a,aspectRatio:l,placeIdentifier:u,tags:n,alt:c}}function CF(e,t=3){if(!e||0===e.length)return[];const n=function(e){const t=new Set;for(const n of e)if(5===n.kind)for(const e of n.tags||[])"e"===e[0]&&e[1]&&t.add(e[1]);return e.filter(e=>360===e.kind&&!t.has(e.id))}(e);if(0===n.length)return[];const r=new Map;for(const o of n){const e=(o.tags||[]).find(e=>"i"===e[0])?.[1];e&&(r.has(e)||r.set(e,[]),r.get(e).push(o))}const i=t*wF,s=[];for(const[o,a]of r){const e=[...a].sort((e,t)=>t.created_at-e.created_at);let t=[],n=null;for(const r of e)null!==n&&n-r.created_at>i&&(s.push(SF(o,t)),t=[]),t.push(r),n=r.created_at;t.length>0&&s.push(SF(o,t))}return s.filter(e=>e.photos.length>0).sort((e,t)=>t.createdAt-e.createdAt)}function SF(e,t){const n=t.map(xF).filter(Boolean).sort((e,t)=>e.createdAt-t.createdAt),r=t.reduce((e,t)=>t.created_at>e?t.created_at:e,0),[,i,s]=e.split(":");return new _F({placeIdentifier:e,osmType:i,osmId:s,photos:n,createdAt:r,eventCount:t.length})}var kF=a({default:()=>RF}),EF="contributions-name-cache",RF=class extends pp{static{dF(this.prototype,"nostrData",[dp])}#F=void fF(this,"nostrData");static{dF(this.prototype,"nostrAuth",[dp])}#N=void fF(this,"nostrAuth");static{dF(this.prototype,"storage",[dp])}#U=void fF(this,"storage");static{dF(this.prototype,"osm",[dp])}#B=void fF(this,"osm");static{dF(this.prototype,"localForage",[dp])}#$=void fF(this,"localForage");static{dF(this.prototype,"items",[Vr],function(){return[]})}#q=void fF(this,"items");_sub=null;_pendingBatchPromise=null;_lastBatchSignature="";_unresolvable=new Set;async _resolveCachedName(e){const t=this.storage.findPlaceById(e.osmId);return t?.title?t.title:await this.localForage.get(EF,e.placeIdentifier)||(await this.osm.getCachedOsmObject(e.osmType,e.osmId))?.title||null}async _resolveFromCache(e){const t=e.filter(e=>e.placeNameLoading);0!==t.length?(await Promise.all(t.map(async e=>{const t=await this._resolveCachedName(e);t&&(e.placeName=t,e.placeNameLoading=!1)})),this.items=[...this.items],this._maybeBatchFetchNames(this.items)):this._maybeBatchFetchNames(this.items)}async load(e){e?(this._sub=this.nostrData.store.timeline([{kinds:[360,5],authors:[e]}]).subscribe(e=>{this._updateItems(e)}),await this.nostrData.loadMyContributions(e)):this.items=[]}stop(){this._sub&&(this._sub.unsubscribe(),this._sub=null),this.items=[],this._lastBatchSignature="",this._pendingBatchPromise=null,this._unresolvable.clear()}willDestroy(){this.stop(),super.willDestroy(...arguments)}_updateItems(e){const t=CF(e);for(const n of t){const e=this.storage.findPlaceById(n.osmId);e?.title&&(n.placeName=e.title,n.placeNameLoading=!1)}this.items=t,this._resolveFromCache(t)}_isUnresolvable(e){return this._unresolvable.has(e.placeIdentifier)}_maybeBatchFetchNames(e){const t=e.filter(e=>e.placeNameLoading&&!this._isUnresolvable(e));for(const r of e)r.placeNameLoading&&this._isUnresolvable(r)&&(r.placeName=this._fallbackName(r),r.placeNameLoading=!1);if(0===t.length)return void(this.items.some(e=>!e.placeNameLoading)&&(this.items=[...this.items]));const n=t.map(e=>e.placeIdentifier).sort().join("|");n===this._lastBatchSignature&&this._pendingBatchPromise||(this._lastBatchSignature=n,this._pendingBatchPromise=this._batchResolveNames(t).then(e=>{for(const t of this.items)t.placeNameLoading&&(e.has(t.placeIdentifier)?(t.placeName=e.get(t.placeIdentifier),t.placeNameLoading=!1):(this._unresolvable.add(t.placeIdentifier),t.placeName=this._fallbackName(t),t.placeNameLoading=!1));this.items=[...this.items]}).catch(e=>{console.error("[contributions] Batch name resolution failed",e);for(const t of this.items)t.placeNameLoading&&(this._unresolvable.add(t.placeIdentifier),t.placeName=this._fallbackName(t),t.placeNameLoading=!1);this.items=[...this.items]}).finally(()=>{this._pendingBatchPromise=null}))}_fallbackName(e){return`OSM ${e.osmType} ${e.osmId}`}async _batchResolveNames(e){const t=new Map,n=[];for(const s of e){const e=await this._resolveCachedName(s);e?t.set(s.placeIdentifier,e):n.push({osmType:s.osmType,osmId:s.osmId})}if(0===n.length)return t;const r=await this.osm.fetchOsmObjectsBatch(n),i=[];for(const s of e){if(t.has(s.placeIdentifier))continue;const e=`${s.osmType}:${s.osmId}`,n=r.get(e);n?.title&&(t.set(s.placeIdentifier,n.title),i.push(this.localForage.set(EF,s.placeIdentifier,n.title)))}return await Promise.all(i),t}};function TF(e){return new Worker("/assets/image-processor-TE4QOxly.js",{name:e?.name})}var LF=a({default:()=>IF}),IF=class extends pp{_worker=null;_callbacks=new Map;_msgId=0;constructor(){super(...arguments),this._initWorker()}_initWorker(){if(!this._worker&&void 0!==TF)try{this._worker=new TF,this._worker.onmessage=this._handleMessage.bind(this),this._worker.onerror=this._handleError.bind(this)}catch(e){console.warn("Failed to initialize image-processor worker:",e)}}_handleMessage(e){const{id:t,success:n,blob:r,dim:i,blurhash:s,error:o}=e.data,a=this._callbacks.get(t);a&&(this._callbacks.delete(t),n?a.resolve({blob:r,dim:i,blurhash:s}):a.reject(new Error(o)))}_handleError(e){console.error("Image Processor Worker Error:",e);for(const[,t]of this._callbacks.entries())t.reject(new Error("Worker crashed"));this._callbacks.clear(),this._worker.terminate(),this._worker=null,this._initWorker()}_getImageDimensions(e){return new Promise((t,n)=>{const r=new Image,i=URL.createObjectURL(e);r.onload=()=>{const e={width:r.width,height:r.height};URL.revokeObjectURL(i),t(e)},r.onerror=()=>{URL.revokeObjectURL(i),n(new Error("Could not read image dimensions"))},r.src=i})}async process(e,t,n,r=!1){if(!this._worker)throw new Error("Image processor worker is not available.");try{const{width:i,height:s}=await this._getImageDimensions(e);let o=i,a=s;return i>s?i>t&&(a=Math.round(s*(t/i)),o=t):s>t&&(o=Math.round(i*(t/s)),a=t),new Promise((t,i)=>{const s=++this._msgId;this._callbacks.set(s,{resolve:t,reject:i}),this._worker.postMessage({type:"PROCESS_IMAGE",id:s,file:e,targetWidth:o,targetHeight:a,quality:n,computeBlurhash:r})})}catch(i){throw new Error(`Failed to process image: ${i.message}`,{cause:i})}}willDestroy(){super.willDestroy(...arguments),this._worker&&(this._worker.terminate(),this._worker=null),this._callbacks.clear()}},PF=o((e,t)=>{!function(n){"object"==typeof e&&void 0!==t?t.exports=n():"function"==typeof define&&define.amd?define([],n):("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).localforage=n()}(function(){return function e(t,n,r){function i(o,a){if(!n[o]){if(!t[o]){var l="function"==typeof c&&c;if(!a&&l)return l(o,!0);if(s)return s(o,!0);var u=new Error("Cannot find module '"+o+"'");throw u.code="MODULE_NOT_FOUND",u}var h=n[o]={exports:{}};t[o][0].call(h.exports,function(e){return i(t[o][1][e]||e)},h,h.exports,e,t,n,r)}return n[o].exports}for(var s="function"==typeof c&&c,o=0;oe.db.version;if(r&&(e.version!==t&&console.warn('The database "'+e.name+"\" can't be downgraded from version "+e.db.version+" to version "+e.version+"."),e.version=e.db.version),i||n){if(n){var s=e.db.version+1;s>e.version&&(e.version=s)}return!0}return!1}function S(e){return i([m(atob(e.data))],{type:e.type})}function k(e){return e&&e.__local_forage_encoded_blob}function E(e){var t=this,n=t._initReady().then(function(){var e=d[t._dbInfo.name];if(e&&e.dbReady)return e.dbReady});return a(n,e,e),n}function R(e,t,n,r){void 0===r&&(r=1);try{n(null,e.db.transaction(e.storeName,t))}catch(RD){if(r>0&&(!e.db||"InvalidStateError"===RD.name||"NotFoundError"===RD.name))return s.resolve().then(function(){if(!e.db||"NotFoundError"===RD.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),x(e)}).then(function(){return function(e){y(e);for(var t=d[e.name],n=t.forages,r=0;r=43)}}).catch(function(){return!1})}(e).then(function(e){return h=e})}(a.db).then(function(e){return e?t:(n=t,new s(function(e,t){var r=new FileReader;r.onerror=t,r.onloadend=function(t){e({__local_forage_encoded_blob:!0,data:btoa(t.target.result||""),type:n.type})},r.readAsBinaryString(n)}));var n}):t}).then(function(t){R(r._dbInfo,g,function(i,s){if(i)return o(i);try{var a=s.objectStore(r._dbInfo.storeName);null===t&&(t=void 0);var l=a.put(t,e);s.oncomplete=function(){void 0===t&&(t=null),n(t)},s.onabort=s.onerror=function(){o(l.error?l.error:l.transaction.error)}}catch(c){o(c)}})}).catch(o)});return o(a,n),a},removeItem:function(e,t){var n=this;e=l(e);var r=new s(function(t,r){n.ready().then(function(){R(n._dbInfo,g,function(i,s){if(i)return r(i);try{var o=s.objectStore(n._dbInfo.storeName).delete(e);s.oncomplete=function(){t()},s.onerror=function(){r(o.error)},s.onabort=function(){r(o.error?o.error:o.transaction.error)}}catch(a){r(a)}})}).catch(r)});return o(r,t),r},clear:function(e){var t=this,n=new s(function(e,n){t.ready().then(function(){R(t._dbInfo,g,function(r,i){if(r)return n(r);try{var s=i.objectStore(t._dbInfo.storeName).clear();i.oncomplete=function(){e()},i.onabort=i.onerror=function(){n(s.error?s.error:s.transaction.error)}}catch(o){n(o)}})}).catch(n)});return o(n,e),n},length:function(e){var t=this,n=new s(function(e,n){t.ready().then(function(){R(t._dbInfo,f,function(r,i){if(r)return n(r);try{var s=i.objectStore(t._dbInfo.storeName).count();s.onsuccess=function(){e(s.result)},s.onerror=function(){n(s.error)}}catch(o){n(o)}})}).catch(n)});return o(n,e),n},key:function(e,t){var n=this,r=new s(function(t,r){e<0?t(null):n.ready().then(function(){R(n._dbInfo,f,function(i,s){if(i)return r(i);try{var o=s.objectStore(n._dbInfo.storeName),a=!1,l=o.openKeyCursor();l.onsuccess=function(){var n=l.result;n?0===e||a?t(n.key):(a=!0,n.advance(e)):t(null)},l.onerror=function(){r(l.error)}}catch(c){r(c)}})}).catch(r)});return o(r,t),r},keys:function(e){var t=this,n=new s(function(e,n){t.ready().then(function(){R(t._dbInfo,f,function(r,i){if(r)return n(r);try{var s=i.objectStore(t._dbInfo.storeName).openKeyCursor(),o=[];s.onsuccess=function(){var t=s.result;t?(o.push(t.key),t.continue()):e(o)},s.onerror=function(){n(s.error)}}catch(a){n(a)}})}).catch(n)});return o(n,e),n},dropInstance:function(e,t){t=c.apply(this,arguments);var n,i=this.config();if((e="function"!=typeof e&&e||{}).name||(e.name=e.name||i.name,e.storeName=e.storeName||i.storeName),e.name){var a=e.name===i.name&&this._dbInfo.db?s.resolve(this._dbInfo.db):_(e).then(function(t){var n=d[e.name],r=n.forages;n.db=t;for(var i=0;i>4,u[l++]=(15&r)<<4|i>>2,u[l++]=(3&i)<<6|63&s;return c}function W(e){var t,n=new Uint8Array(e),r="";for(t=0;t>2],r+=L[(3&n[t])<<4|n[t+1]>>4],r+=L[(15&n[t+1])<<2|n[t+2]>>6],r+=L[63&n[t+2]];return n.length%3==2?r=r.substring(0,r.length-1)+"=":n.length%3==1&&(r=r.substring(0,r.length-2)+"=="),r}var H={serialize:function(e,t){var n="";if(e&&(n=q.call(e)),e&&("[object ArrayBuffer]"===n||e.buffer&&"[object ArrayBuffer]"===q.call(e.buffer))){var r,i=P;e instanceof ArrayBuffer?(r=e,i+=M):(r=e.buffer,"[object Int8Array]"===n?i+=O:"[object Uint8Array]"===n?i+=N:"[object Uint8ClampedArray]"===n?i+=F:"[object Int16Array]"===n?i+=D:"[object Uint16Array]"===n?i+=j:"[object Int32Array]"===n?i+=z:"[object Uint32Array]"===n?i+=U:"[object Float32Array]"===n?i+=B:"[object Float64Array]"===n?i+=$:t(new Error("Failed to get type for BinaryArray"))),t(i+W(r))}else if("[object Blob]"===n){var s=new FileReader;s.onload=function(){var n="~~local_forage_type~"+e.type+"~"+W(this.result);t(P+A+n)},s.readAsArrayBuffer(e)}else try{t(JSON.stringify(e))}catch(o){console.error("Couldn't convert value into a JSON string: ",e),t(null,o)}},deserialize:function(e){if(e.substring(0,9)!==P)return JSON.parse(e);var t,n=e.substring(13),r=e.substring(9,13);if(r===A&&I.test(n)){var s=n.match(I);t=s[1],n=n.substring(s[0].length)}var o=V(n);switch(r){case M:return o;case A:return i([o],{type:t});case O:return new Int8Array(o);case N:return new Uint8Array(o);case F:return new Uint8ClampedArray(o);case D:return new Int16Array(o);case j:return new Uint16Array(o);case z:return new Int32Array(o);case U:return new Uint32Array(o);case B:return new Float32Array(o);case $:return new Float64Array(o);default:throw new Error("Unkown type: "+r)}},stringToBuffer:V,bufferToString:W};function G(e,t,n,r){e.executeSql("CREATE TABLE IF NOT EXISTS "+t.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],n,r)}function K(e,t,n,r,i,s){e.executeSql(n,r,i,function(e,o){o.code===o.SYNTAX_ERR?e.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[t.storeName],function(e,a){a.rows.length?s(e,o):G(e,t,function(){e.executeSql(n,r,i,s)},s)},s):s(e,o)},s)}function Z(e,t,n,r){var i=this;e=l(e);var a=new s(function(s,o){i.ready().then(function(){void 0===t&&(t=null);var a=t,l=i._dbInfo;l.serializer.serialize(t,function(t,c){c?o(c):l.db.transaction(function(n){K(n,l,"INSERT OR REPLACE INTO "+l.storeName+" (key, value) VALUES (?, ?)",[e,t],function(){s(a)},function(e,t){o(t)})},function(t){if(t.code===t.QUOTA_ERR){if(r>0)return void s(Z.apply(i,[e,a,n,r-1]));o(t)}})})}).catch(o)});return o(a,n),a}var Y={_driver:"webSQLStorage",_initStorage:function(e){var t=this,n={db:null};if(e)for(var r in e)n[r]="string"!=typeof e[r]?e[r].toString():e[r];var i=new s(function(e,r){try{n.db=openDatabase(n.name,String(n.version),n.description,n.size)}catch(i){return r(i)}n.db.transaction(function(i){G(i,n,function(){t._dbInfo=n,e()},function(e,t){r(t)})},r)});return n.serializer=H,i},_support:"function"==typeof openDatabase,iterate:function(e,t){var n=this,r=new s(function(t,r){n.ready().then(function(){var i=n._dbInfo;i.db.transaction(function(n){K(n,i,"SELECT * FROM "+i.storeName,[],function(n,r){for(var s=r.rows,o=s.length,a=0;a '__WebKitDatabaseInfoTable__'",[],function(n,r){for(var i=[],s=0;s0?(this._dbInfo=t,t.serializer=H,s.resolve()):s.reject()},_support:function(){try{return"undefined"!=typeof localStorage&&"setItem"in localStorage&&!!localStorage.setItem}catch(e){return!1}}(),iterate:function(e,t){var n=this,r=n.ready().then(function(){for(var t=n._dbInfo,r=t.keyPrefix,i=r.length,s=localStorage.length,o=1,a=0;a=0;n--){var r=localStorage.key(n);0===r.indexOf(e)&&localStorage.removeItem(r)}});return o(n,e),n},length:function(e){var t=this.keys().then(function(e){return e.length});return o(t,e),t},key:function(e,t){var n=this,r=n.ready().then(function(){var t,r=n._dbInfo;try{t=localStorage.key(e)}catch(_6){t=null}return t&&(t=t.substring(r.keyPrefix.length)),t});return o(r,t),r},keys:function(e){var t=this,n=t.ready().then(function(){for(var e=t._dbInfo,n=localStorage.length,r=[],i=0;i=0;t--){var n=localStorage.key(t);0===n.indexOf(e)&&localStorage.removeItem(n)}}):s.reject("Invalid arguments"),o(r,t),r}},Q=function(e,t){return e===t||"number"==typeof e&&"number"==typeof t&&isNaN(e)&&isNaN(t)},ee=function(e,t){for(var n=e.length,r=0;rOF}),AF=l(PF(),1),OF=class extends pp{_instances=new Map;_instance(e){let t=this._instances.get(e);return t||(t=AF.default.createInstance({name:"marco",storeName:e}),this._instances.set(e,t)),t}async get(e,t){return this._instance(e).getItem(t)}async set(e,t,n){return this._instance(e).setItem(t,n)}async remove(e,t){return this._instance(e).removeItem(t)}async keys(e){return this._instance(e).keys()}async clear(e){return this._instance(e).clear()}async iterate(e,t){return this._instance(e).iterate(t)}},NF=a({default:()=>FF}),FF=class extends pp{static{dF(this.prototype,"nostrData",[dp])}#F=void fF(this,"nostrData");static{dF(this.prototype,"selectedPlace",[Vr],function(){return null})}#V=void fF(this,"selectedPlace");static{dF(this.prototype,"isSearching",[Vr],function(){return!1})}#W=void fF(this,"isSearching");static{dF(this.prototype,"isCreating",[Vr],function(){return!1})}#H=void fF(this,"isCreating");static{dF(this.prototype,"creationCoordinates",[Vr],function(){return null})}#G=void fF(this,"creationCoordinates");static{dF(this.prototype,"returnToSearch",[Vr],function(){return!1})}#K=void fF(this,"returnToSearch");static{dF(this.prototype,"returnToRoute",[Vr],function(){return null})}#Z=void fF(this,"returnToRoute");static{dF(this.prototype,"currentCenter",[Vr],function(){return null})}#Y=void fF(this,"currentCenter");static{dF(this.prototype,"currentBounds",[Vr],function(){return null})}#X=void fF(this,"currentBounds");static{dF(this.prototype,"currentZoom",[Vr],function(){return null})}#J=void fF(this,"currentZoom");static{dF(this.prototype,"searchBoxHasFocus",[Vr],function(){return!1})}#Q=void fF(this,"searchBoxHasFocus");static{dF(this.prototype,"selectionOptions",[Vr],function(){return{}})}#ee=void fF(this,"selectionOptions");static{dF(this.prototype,"preventNextZoom",[Vr],function(){return!1})}#te=void fF(this,"preventNextZoom");static{dF(this.prototype,"searchResults",[Vr],function(){return[]})}#ne=void fF(this,"searchResults");static{dF(this.prototype,"currentSearch",[Vr],function(){return null})}#re=void fF(this,"currentSearch");static{dF(this.prototype,"loadingState",[Vr],function(){return null})}#ie=void fF(this,"loadingState");static{dF(this.prototype,"isSidebarVisible",[Vr],function(){return!1})}#se=void fF(this,"isSidebarVisible");static{dF(this.prototype,"isSidebarOpening",[Vr],function(){return!1})}#oe=void fF(this,"isSidebarOpening");scrollPositions={};saveScrollPosition(e,t){this.scrollPositions[e]=t}static{pF(this.prototype,"saveScrollPosition",[ql])}getScrollPosition(e){return this.scrollPositions[e]||0}static{pF(this.prototype,"getScrollPosition",[ql])}showSidebar(){this.isSidebarVisible||(this.isSidebarVisible=!0,this.isSidebarOpening=!0,setTimeout(()=>{this.isSidebarOpening=!1},250))}hideSidebar(){this.isSidebarVisible=!1,this.isSidebarOpening=!1}selectPlace(e,t={}){this.selectedPlace=e,this.selectionOptions=t,this.nostrData.loadPhotosForPlace(e)}clearSelection(){this.selectedPlace=null,this.selectionOptions={},this.preventNextZoom=!1,this.nostrData.loadPhotosForPlace(null)}setSearchResults(e){this.searchResults=e||[]}clearSearchResults(){this.searchResults=[],this.currentSearch=null}startSearch(){this.isSearching=!0,this.isCreating=!1,this.preventNextZoom=!1}stopSearch(){this.isSearching=!1}startCreating(){this.isCreating=!0,this.isSearching=!1}stopCreating(){this.isCreating=!1,this.creationCoordinates=null}updateCreationCoordinates(e,t){this.creationCoordinates={lat:e,lon:t}}setSearchBoxFocus(e){this.searchBoxHasFocus=e}updateCenter(e,t){this.currentCenter={lat:e,lon:t}}updateZoom(e){this.currentZoom=e}updateBounds(e){this.currentBounds=e}startLoading(e,t){this.loadingState={type:e,value:t}}stopLoading(e=null,t=null){e||t?this.loadingState&&this.loadingState.type===e&&this.loadingState.value===t&&(this.loadingState=null):this.loadingState=null}};function DF(){let e,t;const n=new Promise((n,r)=>{e=n,t=r});return n.resolve=e,n.reject=t,n}"navigator"in globalThis&&navigator.userAgent.includes("Android")&&navigator.clipboard&&navigator.clipboard.readText;var zF=class extends Error{},jF=class{get nip04(){return window.nostr?.nip04}get nip44(){return window.nostr?.nip44}pubkey=void 0;async getPublicKey(){if(!window.nostr)throw new zF("Signer extension missing");if(this.pubkey)return this.pubkey;const e=await window.nostr.getPublicKey();if(!uM(e))throw new Error("Extension returned an invalid public key");return this.pubkey=e,this.pubkey}async signEvent(e){if(!window.nostr)throw new zF("Signer extension missing");const t=await window.nostr.signEvent(e);if(!_P(t))throw new Error("Extension returned an invalid event");return t}};function UF(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name&&"BYTES_PER_ELEMENT"in e&&1===e.BYTES_PER_ELEMENT}function BF(e,t){return!!Array.isArray(t)&&(0===t.length||(e?t.every(e=>"string"==typeof e):t.every(e=>Number.isSafeInteger(e))))}function $F(e){if("function"!=typeof e)throw new TypeError("function expected");return!0}function qF(e,t){if("string"!=typeof t)throw new TypeError(`${e}: string expected`);return!0}function VF(e){if("number"!=typeof e)throw new TypeError("number expected, got "+typeof e);if(!Number.isSafeInteger(e))throw new RangeError(`invalid integer: ${e}`)}function WF(e){if(!Array.isArray(e))throw new TypeError("array expected")}function HF(e,t){if(!BF(!0,t))throw new TypeError(`${e}: array of strings expected`)}function GF(e,t){if(!BF(!1,t))throw new TypeError(`${e}: array of numbers expected`)}function KF(...e){const t=e=>e,n=(e,t)=>n=>e(t(n));return{encode:e.map(e=>e.encode).reduceRight(n,t),decode:e.map(e=>e.decode).reduce(n,t)}}function ZF(e){const t="string"==typeof e?e.split(""):e,n=t.length;HF("alphabet",t);const r=new Map(t.map((e,t)=>[e,t]));return{encode:r=>(WF(r),r.map(r=>{if(!Number.isSafeInteger(r)||r<0||r>=n)throw new Error(`alphabet.encode: digit index outside alphabet "${r}". Allowed: ${e}`);return t[r]})),decode:t=>(WF(t),t.map(t=>{qF("alphabet.decode",t);const n=r.get(t);if(void 0===n)throw new Error(`Unknown letter: "${t}". Allowed: ${e}`);return n}))}}function YF(e=""){return qF("join",e),{encode:t=>(HF("join.decode",t),t.join(e)),decode:t=>(qF("join.decode",t),t.split(e))}}function XF(e,t="="){return VF(e),qF("padding",t),{encode(n){for(HF("padding.encode",n);n.length*e%8;)n.push(t);return n},decode(n){HF("padding.decode",n);let r=n.length;if(r*e%8)throw new Error("padding: invalid, string should have whole number of bytes");for(;r>0&&n[r-1]===t;r--)if((r-1)*e%8==0)throw new Error("padding: invalid, string has too much padding");return n.slice(0,r)}}}function JF(e){return $F(e),{encode:e=>e,decode:t=>e(t)}}var QF=(e,t)=>0===t?e:QF(t,e%t),eD=(e,t)=>e+(t-QF(e,t)),tD=(()=>{let e=[];for(let t=0;t<40;t++)e.push(2**t);return e})();function nD(e,t,n,r){if(WF(e),t<=0||t>32)throw new RangeError(`convertRadix2: wrong from=${t}`);if(n<=0||n>32)throw new RangeError(`convertRadix2: wrong to=${n}`);if(eD(t,n)>32)throw new Error(`convertRadix2: carry overflow from=${t} to=${n} carryBits=${eD(t,n)}`);let i=0,s=0;const o=tD[t],a=tD[n]-1,l=[];for(const c of e){if(VF(c),c>=o)throw new Error(`convertRadix2: invalid data word=${c} from=${t}`);if(i=i<32)throw new Error(`convertRadix2: carry overflow pos=${s} from=${t}`);for(s+=t;s>=n;s-=n)l.push((i>>s-n&a)>>>0);const e=tD[s];if(void 0===e)throw new Error("invalid carry");i&=e-1}if(i=i<=t)throw new Error("Excess padding");if(!r&&i>0)throw new Error(`Non-zero padding: ${i}`);return r&&s>0&&l.push(i>>>0),l}function rD(e,t=!1){if(VF(e),e<=0||e>32)throw new RangeError("radix2: bits should be in (0..32]");if(eD(8,e)>32||eD(e,8)>32)throw new RangeError("radix2: carry overflow");return{encode:n=>{if(!UF(n))throw new TypeError("radix2.encode input should be Uint8Array");return nD(Array.from(n),8,e,!t)},decode:n=>(GF("radix2.decode",n),Uint8Array.from(nD(n,e,8,t)))}}function iD(e){return $F(e),function(...t){try{return e.apply(null,t)}catch(n){}}}KF(rD(4),ZF("0123456789ABCDEF"),YF("")),KF(rD(5),ZF("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),XF(5),YF("")),KF(rD(5),ZF("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),YF("")),KF(rD(5),ZF("0123456789ABCDEFGHIJKLMNOPQRSTUV"),XF(5),YF("")),KF(rD(5),ZF("0123456789ABCDEFGHIJKLMNOPQRSTUV"),YF("")),KF(rD(5),ZF("0123456789ABCDEFGHJKMNPQRSTVWXYZ"),YF(""),JF(e=>e.toUpperCase().replace(/O/g,"0").replace(/[IL]/g,"1")));var sD=(()=>"function"==typeof Uint8Array.from([]).toBase64&&"function"==typeof Uint8Array.fromBase64)(),oD=(sD||KF(rD(6),ZF("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),XF(6),YF("")),KF(rD(6),ZF("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),YF("")),sD||KF(rD(6),ZF("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),XF(6),YF("")),KF(rD(6),ZF("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),YF("")),KF(ZF("qpzry9x8gf2tvdw0s3jn54khce6mua7l"),YF(""))),aD=[996825010,642813549,513874426,1027748829,705979059];function lD(e){const t=e>>25;let n=(33554431&e)<<5;for(let r=0;r>r&1)&&(n^=aD[r]);return n}function cD(e,t,n=1){const r=e.length;let i=1;for(let s=0;s126)throw new Error(`Invalid prefix (${e})`);i=lD(i)^t>>5}i=lD(i);for(let s=0;sr)throw new TypeError(`Length ${s} exceeds limit ${r}`);const o=e.toLowerCase(),a=cD(o,n,t);return`${o}1${oD.encode(n)}${a}`}function a(e,n=90){qF("bech32.decode input",e);const r=e.length;if(r<8||!1!==n&&r>n)throw new TypeError(`invalid string length: ${r} (${e}). Expected (8..${n})`);const i=e.toLowerCase();if(e!==i&&e!==e.toUpperCase())throw new Error("String must be lowercase or uppercase");const s=i.lastIndexOf("1");if(0===s||-1===s)throw new Error('Letter "1" must be present between prefix and data only');const o=i.slice(0,s),a=i.slice(s+1);if(a.length<6)throw new Error("Data must be at least 6 characters long");const l=oD.decode(a).slice(0,-6),c=cD(o,l,t);if(!a.endsWith(c))throw new Error(`Invalid checksum in ${e}: expected "${c}"`);return{prefix:o,words:l}}return{encode:o,decode:a,encodeFromBytes:function(e,t){return o(e,i(t))},decodeToBytes:function(e){const{prefix:t,words:n}=a(e,!1);return{prefix:t,words:n,bytes:r(n)}},decodeUnsafe:iD(a),fromWords:r,fromWordsUnsafe:s,toWords:i}}var hD,dD,pD=Object.freeze(uD("bech32")),fD=(uD("bech32m"),(()=>"function"==typeof Uint8Array.from([]).toHex&&"function"==typeof Uint8Array.fromHex)()||KF(rD(4),ZF("0123456789abcdef"),YF(""),JF(e=>{if("string"!=typeof e||e.length%2!=0)throw new TypeError(`hex.decode: expected string, got ${typeof e} with length ${e.length}`);return e.toLowerCase()})),new TextEncoder),gD=new TextDecoder;function mD(e){if(!uM(e.remote))throw new Error("Invalid nbunksec: remote is not a valid hex key");if(!uM(e.clientKey))throw new Error("Invalid nbunksec: clientKey is not a valid hex key");if(0===e.relays.length)throw new Error("Invalid nbunksec: missing relays");return function(e){try{const t=[],n=IS(e.pubkey);t.push(new Uint8Array([0,n.length]),n);const r=IS(e.local_key);t.push(new Uint8Array([1,r.length]),r);for(const a of e.relays){const e=fD.encode(a);t.push(new Uint8Array([2,e.length]),e)}if(e.secret){const n=fD.encode(e.secret);t.push(new Uint8Array([3,n.length]),n)}const i=t.reduce((e,t)=>e+t.length,0),s=new Uint8Array(i);let o=0;for(const e of t)s.set(e,o),o+=e.length;return pD.encode("nbunksec",pD.toWords(s),!1)}catch(_6){throw new Error(`Failed to encode bunker info: ${_6}`)}}({pubkey:e.remote,local_key:e.clientKey,relays:e.relays,secret:e.bunkerSecret??e.secret})}bM(uR.NostrConnect,"nip44"),function(e){e.GetPublicKey="get_public_key",e.SignEvent="sign_event",e.Ping="ping",e.Nip04Encrypt="nip04_encrypt",e.Nip04Decrypt="nip04_decrypt",e.Nip44Encrypt="nip44_encrypt",e.Nip44Decrypt="nip44_decrypt",e.SwitchRelays="switch_relays"}(hD||(hD={})),function(e){e.Connect="connect",e.CreateAccount="create_account",e.GetPublicKey="get_public_key",e.SignEvent="sign_event",e.Ping="ping",e.Nip04Encrypt="nip04_encrypt",e.Nip04Decrypt="nip04_decrypt",e.Nip44Encrypt="nip44_encrypt",e.Nip44Decrypt="nip44_decrypt",e.SwitchRelays="switch_relays",e.Logout="logout"}(dD||(dD={}));var yD=class e{key;constructor(e){this.key=e||vP()}async getPublicKey(){return bP(this.key)}async signEvent(e){return wP(e,this.key)}nip04={encrypt:async(e,t)=>CL.encrypt(this.key,e,t),decrypt:async(e,t)=>CL.decrypt(this.key,e,t)};nip44={encrypt:async(e,t)=>UL.v2.encrypt(t,UL.v2.utils.getConversationKey(this.key,e)),decrypt:async(e,t)=>UL.v2.decrypt(t,UL.v2.utils.getConversationKey(this.key,e))};static fromKey(t){const n=function(e){if(e instanceof Uint8Array)return 32!==e.length?null:e;if(uM(e))return IS(e);try{const t=function(e){let{prefix:t,words:n}=bk.decode(e,5e3),r=new Uint8Array(bk.fromWords(n));switch(t){case"nprofile":{let e=eM(r);if(!e[0]?.[0])throw new Error("missing TLV 0 for nprofile");if(32!==e[0][0].length)throw new Error("TLV 0 should be 32 bytes");return{type:"nprofile",data:{pubkey:LS(e[0][0]),relays:e[1]?e[1].map(e=>JP.decode(e)):[]}}}case"nevent":{let e=eM(r);if(!e[0]?.[0])throw new Error("missing TLV 0 for nevent");if(32!==e[0][0].length)throw new Error("TLV 0 should be 32 bytes");if(e[2]&&32!==e[2][0].length)throw new Error("TLV 2 should be 32 bytes");if(e[3]&&4!==e[3][0].length)throw new Error("TLV 3 should be 4 bytes");return{type:"nevent",data:{id:LS(e[0][0]),relays:e[1]?e[1].map(e=>JP.decode(e)):[],author:e[2]?.[0]?LS(e[2][0]):void 0,kind:e[3]?.[0]?parseInt(LS(e[3][0]),16):void 0}}}case"naddr":{let e=eM(r);if(!e[0]?.[0])throw new Error("missing TLV 0 for naddr");if(!e[2]?.[0])throw new Error("missing TLV 2 for naddr");if(32!==e[2][0].length)throw new Error("TLV 2 should be 32 bytes");if(!e[3]?.[0])throw new Error("missing TLV 3 for naddr");if(4!==e[3][0].length)throw new Error("TLV 3 should be 4 bytes");return{type:"naddr",data:{identifier:JP.decode(e[0][0]),pubkey:LS(e[2][0]),kind:parseInt(LS(e[3][0]),16),relays:e[1]?e[1].map(e=>JP.decode(e)):[]}}}case"nsec":return{type:t,data:r};case"npub":case"note":return{type:t,data:LS(r)};default:throw new Error(`unknown prefix ${t}`)}}(e);return"nsec"!==t.type?null:t.data}catch{return null}}(t);if(!n)throw new Error("Invalid private key");return new e(n)}};async function vD(e){window.open(e,"auth","width=400,height=600,resizable=no,status=no,location=no,toolbar=no,menubar=no")}var bD=class e{static subscriptionMethod=void 0;static publishMethod=void 0;static pool=void 0;publishMethod;subscriptionMethod;log=KO.extend("NostrConnectSigner");signer;listening=!1;isConnected=!1;pubkey;relays;remote;get clientPubkey(){return bP(this.signer.key)}onAuth=vD;verifyEvent=_P;connectSecret;bunkerSecret;get secret(){return this.connectSecret}set secret(e){this.connectSecret=e}nip04;nip44;constructor(t){this.relays=t.relays,this.pubkey=t.pubkey,this.remote=t.remote,this.connectSecret=t.connectSecret||t.secret||WP(12),this.bunkerSecret=t.bunkerSecret;const{subscriptionMethod:n,publishMethod:r}=function(e,t){const n=e.subscriptionMethod||e.pool?.subscription.bind(e.pool)||t?.subscriptionMethod||t?.pool?.subscription.bind(t.pool);if(!n)throw new Error("Missing subscriptionMethod, either pass a method or set subscriptionMethod globally on the class");const r=e.publishMethod||e.pool?.publish.bind(e.pool)||t?.publishMethod||t?.pool?.publish.bind(t.pool);if(!r)throw new Error("Missing publishMethod, either pass a method or set publishMethod globally on the class");return{subscriptionMethod:n,publishMethod:r}}(t,e);this.subscriptionMethod=(e,t)=>n(e,t),this.publishMethod=(e,t)=>r(e,t),t.onAuth&&(this.onAuth=t.onAuth),this.signer=t?.signer||new yD,this.nip04={encrypt:this.nip04Encrypt.bind(this),decrypt:this.nip04Decrypt.bind(this)},this.nip44={encrypt:this.nip44Encrypt.bind(this),decrypt:this.nip44Decrypt.bind(this)}}req;async open(){if(this.listening)return;this.listening=!0;const e=await this.signer.getPublicKey();this.req=VA(this.subscriptionMethod(this.relays,[{kinds:[uR.NostrConnect],"#p":[e]}])).pipe(AO(),OO(),vO(e=>"string"!=typeof e)).subscribe(this.handleEvent.bind(this)),this.log("Opened",this.relays)}async close(){this.listening=!1,this.isConnected=!1,this.req&&(this.req.unsubscribe(),this.req=void 0),this.waitingPromise&&(this.waitingPromise.reject(new Error("Closed")),this.waitingPromise=null),this.log("Closed")}requests=new Map;auths=new Set;async handleEvent(e){if(this.verifyEvent(e)&&(!this.remote||e.pubkey===this.remote))try{const n=_M(e)??(function(e){const t=e.length;return!(t<28)&&"?"==e[t-28]&&"i"==e[t-27]&&"v"==e[t-26]&&"="==e[t-25]}(e.content)?await this.signer.nip04.decrypt(e.pubkey,e.content):await this.signer.nip44.decrypt(e.pubkey,e.content));if(!n)return;const r=JSON.parse(n);if(!this.remote&&("ack"===r.result||this.connectSecret&&r.result===this.connectSecret))return this.log("Got ack response from",e.pubkey,r.result),this.isConnected=!0,this.remote=e.pubkey,this.waitingPromise?.resolve(),void(this.waitingPromise=null);if(r.id){const e=this.requests.get(r.id);if(!e)return;if(r.error)if(this.log("Got Error",r.id,r.result,r.error),"auth_url"===r.result){if(!this.auths.has(r.id)&&(this.auths.add(r.id),this.onAuth))try{await this.onAuth(r.error)}catch(t){e.reject(t)}}else e.reject(new Error(r.error));else r.result&&(this.log("Got Response",r.id,r.result),e.resolve(r.result))}}catch(t){}}async createRequestEvent(e,t=this.remote,n=uR.NostrConnect){if(!t)throw new Error("Missing target pubkey");return await this.signer.signEvent({kind:n,created_at:VP(),tags:[["p",t]],content:e})}async makeRequest(e,t,n=uR.NostrConnect){if(!this.remote)throw new Error("Missing remote signer pubkey");const r=WP(8),i={id:r,method:e,params:t},s=await this.signer.nip44.encrypt(this.remote,JSON.stringify(i)),o=await this.createRequestEvent(s,this.remote,n);this.log(`Sending ${r} (${e}) ${JSON.stringify(t)}`);const a=DF();this.requests.set(r,a);const l=this.publishMethod?.(this.relays,o);return l instanceof Promise?await l:"subscribe"in l&&await new Promise(e=>l.subscribe({complete:e})),this.log(`Sent ${r} (${e})`),a}async connect(e,t){if(!this.remote&&this.pubkey&&(this.remote=this.pubkey),!this.remote)throw new Error("Missing remote signer pubkey");await this.open();try{void 0!==e&&(this.bunkerSecret=e);const n=await this.makeRequest(dD.Connect,[this.remote,this.bunkerSecret||"",t?.join(",")??""]);return this.isConnected=!0,n}catch(n){throw this.isConnected=!1,this.close(),n}}waitingPromise=null;waitForSigner(e){return this.isConnected?Promise.resolve():(this.open(),this.waitingPromise=DF(),e?.addEventListener("abort",()=>{this.waitingPromise?.reject(new Error("Aborted")),this.waitingPromise=null,this.close()},!0),this.waitingPromise)}async createAccount(e,t,n,r){if(!this.remote)throw new Error("Remote pubkey must be set");await this.open();try{const i=await this.makeRequest(dD.CreateAccount,[e,t,n??"",r?.join(",")??""]);return this.pubkey=i,this.isConnected=!0,i}catch(i){throw this.isConnected=!1,this.close(),i}}async requireConnection(){this.isConnected||await this.connect()}async getPublicKey(){if(this.pubkey)return this.pubkey;await this.requireConnection();const e=await this.makeRequest(dD.GetPublicKey,[]);if(!uM(e))throw new Error("Remote signer returned an invalid public key");return e}async signEvent(e){await this.requireConnection();const t=await this.makeRequest(dD.SignEvent,[JSON.stringify(e)]),n=JSON.parse(t);if(!this.verifyEvent(n))throw new Error("Invalid event");return n}async nip04Encrypt(e,t){return await this.requireConnection(),this.makeRequest(dD.Nip04Encrypt,[e,t])}async nip04Decrypt(e,t){await this.requireConnection();const n=await this.makeRequest(dD.Nip04Decrypt,[e,t]);return n.startsWith('["')&&n.endsWith('"]')?JSON.parse(n)[0]:n}async nip44Encrypt(e,t){return await this.requireConnection(),this.makeRequest(dD.Nip44Encrypt,[e,t])}async nip44Decrypt(e,t){await this.requireConnection();const n=await this.makeRequest(dD.Nip44Decrypt,[e,t]);return n.startsWith('["')&&n.endsWith('"]')?JSON.parse(n)[0]:n}async ping(){return await this.requireConnection(),this.makeRequest(dD.Ping,[])}async switchRelays(){await this.requireConnection();const e=await this.makeRequest(dD.SwitchRelays,[]);return null!==e&&Array.isArray(e)&&e.length>0&&(this.log("Switching relays from",this.relays,"to",e),this.relays=e,this.listening&&(await this.close(),await this.open())),e}async logout(){try{this.isConnected&&this.remote&&await this.makeRequest(dD.Logout,[])}catch(_6){this.log("Failed to send logout request",_6)}finally{this.isConnected=!1,await this.close()}}getNostrConnectURI(e){return function(e){const t=new URLSearchParams,n=e.connectSecret??e.secret;if(!n)throw new Error("Invalid nostrconnect URI: missing secret");t.set("secret",n),e.metadata?.name&&t.set("name",e.metadata.name),e.metadata?.url&&t.set("url",String(e.metadata.url)),e.metadata?.image&&t.set("image",e.metadata.image),e.metadata?.permissions&&t.set("perms",e.metadata.permissions.join(","));for(const r of e.relays)t.append("relay",r);return`nostrconnect://${e.client}?`+t.toString()}({client:bP(this.signer.key),connectSecret:this.connectSecret,relays:this.relays,metadata:e})}getNbunksec(){if(!this.remote)throw new Error("Cant create nbunksec when remote signer is not set");return mD({remote:this.remote,clientKey:LS(this.signer.key),relays:this.relays,bunkerSecret:this.bunkerSecret})}static parseBunkerURI(e){return function(e){const t=new URL(e),n=t.host||t.pathname.replace("//","");if(!uM(n))throw new Error("Invalid bunker URI: remote is not a valid hex key");const r=t.searchParams.getAll("relay");if(0===r.length)throw new Error("Invalid bunker URI: missing relays");const i=t.searchParams.get("secret")??void 0;return{remote:n,relays:r,secret:i,bunkerSecret:i}}(e)}static parseNbunksec(e){return function(e){const t=function(e){try{const{prefix:t,words:n}=pD.decode(e,!1);if("nbunksec"!==t)throw new Error(`Invalid prefix: ${t}`);const r=pD.fromWords(n);let i=0;const s={pubkey:"",local_key:"",relays:[]};for(;i`${hD.SignEvent}:${e}`)]}(e)}static async fromBunkerURI(t,n){const{remote:r,relays:i,bunkerSecret:s}=e.parseBunkerURI(t),o=new e({relays:i,remote:r,bunkerSecret:s,...n});return await o.connect(s,n?.permissions),o}static async fromNbunksec(t,n){const{remote:r,clientKey:i,relays:s,bunkerSecret:o}=e.parseNbunksec(t),a=new e({relays:s,remote:r,signer:new yD(IS(i)),bunkerSecret:o,...n});return await a.connect(o,n?.permissions),a}},wD=Object.freeze({p:115792089237316195423570985008687907853269984665640564039457584007908834671663n,n:115792089237316195423570985008687907852837564279074904382605163141518161494337n,h:1n,a:0n,b:7n,Gx:55066263022277343669578718895168534326250603453777594175500187360389116729240n,Gy:32670510020758816978083085130507043184471273380659243275938904335757337482424n}),{p:_D,n:xD,Gx:CD,Gy:SD,b:kD}=wD,ED={publicKey:33,publicKeyUncompressed:65,signature:64,seed:48},RD=(e="",t=Error)=>{const n=new t(e),{captureStackTrace:r}=Error;throw"function"==typeof r&&r(n,RD),n},TD=(e,t,n="")=>{const r=(i=e)instanceof Uint8Array||ArrayBuffer.isView(i)&&"Uint8Array"===i.constructor.name&&1===i.BYTES_PER_ELEMENT;var i;const s=e?.length,o=void 0!==t;return!r||o&&s!==t?RD((n&&`"${n}" `)+"expected Uint8Array"+(o?` of length ${t}`:"")+", got "+(r?`length=${s}`:"type="+typeof e),r?RangeError:TypeError):e},LD=e=>new Uint8Array(e),ID=(e,t)=>e.toString(16).padStart(t,"0"),PD=e=>{let t="";for(const n of TD(e))t+=ID(n,2);return t},MD=e=>e>=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:void 0,AD=e=>{const t="hex invalid";if("string"!=typeof e)return RD(t);const n=e.length,r=n/2;if(n%2)return RD(t);const i=LD(r);for(let s=0,o=0;s{let t=0;for(const i of e)t+=TD(i).length;const n=LD(t);let r=0;for(const i of e)n.set(i,r),r+=i.length;return n},ND=BigInt,FD=(e,t,n,r="bad number: out of range")=>"bigint"!=typeof e?RD(r,TypeError):t<=e&&e{const n=e%t;return n>=0n?n:t+n},zD=e=>e instanceof VD?e:RD("Point expected"),jD=e=>DD(DD(e*e)*e+kD),UD=e=>FD(e,0n,_D),BD=e=>FD(e,1n,_D),$D=e=>!(1n&e),qD=e=>Uint8Array.of(e),VD=class e{static BASE;static ZERO;X;Y;Z;constructor(e,t,n){this.X=UD(e),this.Y=BD(t),this.Z=UD(n),Object.freeze(this)}static CURVE(){return wD}static fromAffine(t){const{x:n,y:r}=t;return 0n===n&&0n===r?HD:new e(n,r,1n)}static fromBytes(t){TD(t);const{publicKey:n,publicKeyUncompressed:r}=ED;let i;const s=t.length,o=t[0],a=t.subarray(1),l=GD(a,0,32);if(s===n&&(2===o||3===o)){let t=(e=>{const t=jD(BD(e));let n=1n;for(let r=t,i=(_D+1n)/4n;i>0n;i>>=1n)1n&i&&(n=n*r%_D),r=r*r%_D;return DD(n*n)!==t&&RD("sqrt invalid"),$D(n)?n:DD(-n)})(l);3===o&&(t=DD(-t)),i=new e(l,t,1n)}return s===r&&4===o&&(i=new e(l,GD(a,32,64),1n)),i?i.assertValidity():RD("bad point: not on curve")}static fromHex(t){return e.fromBytes(AD(t))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}equals(e){const{X:t,Y:n,Z:r}=this,{X:i,Y:s,Z:o}=zD(e),a=DD(t*o),l=DD(i*r),c=DD(n*o),u=DD(s*r);return a===l&&c===u}is0(){return this.equals(HD)}negate(){return new e(this.X,DD(-this.Y),this.Z)}double(){return this.add(this)}add(t){const{X:n,Y:r,Z:i}=this,{X:s,Y:o,Z:a}=zD(t);let l=0n,c=0n,u=0n;const h=DD(3n*kD);let d=DD(n*s),p=DD(r*o),f=DD(i*a),g=DD(n+r),m=DD(s+o);g=DD(g*m),m=DD(d+p),g=DD(g-m),m=DD(n+i);let y=DD(s+a);return m=DD(m*y),y=DD(d+f),m=DD(m-y),y=DD(r+i),l=DD(o+a),y=DD(y*l),l=DD(p+f),y=DD(y-l),u=DD(0n*m),l=DD(h*f),u=DD(l+u),l=DD(p-u),u=DD(p+u),c=DD(l*u),p=DD(d+d),p=DD(p+d),f=DD(0n*f),m=DD(h*m),p=DD(p+f),f=DD(d-f),f=DD(0n*f),m=DD(m+f),d=DD(p*m),c=DD(c+d),d=DD(y*m),l=DD(g*l),l=DD(l-d),d=DD(g*p),u=DD(y*u),u=DD(u+d),new e(l,c,u)}subtract(e){return this.add(zD(e).negate())}multiply(e,t=!0){if(!t&&0n===e)return HD;if((e=>{FD(e,1n,xD)})(e),1n===e)return this;if(this.equals(WD))return QD(e).p;let n=HD,r=WD;for(let i=this;e>0n;i=i.double(),e>>=1n)1n&e?n=n.add(i):t&&(r=r.add(i));return n}multiplyUnsafe(e){return this.multiply(e,!1)}toAffine(){const{X:e,Y:t,Z:n}=this;if(this.equals(HD))return{x:0n,y:0n};if(1n===n)return{x:e,y:t};const r=((e,t)=>{(0n===e||t<=0n)&&RD("no inverse n="+e+" mod="+t);let n=DD(e,t),r=t,i=0n,s=1n,o=1n,a=0n;for(;0n!==n;){const e=r/n,t=r%n,l=i-o*e,c=s-a*e;r=n,n=t,i=o,s=a,o=l,a=c}return 1n===r?DD(i,t):RD("no inverse")})(n,_D);return 1n!==DD(n*r)&&RD("inverse invalid"),{x:DD(e*r),y:DD(t*r)}}assertValidity(){const{x:e,y:t}=this.toAffine();return BD(e),BD(t),DD(t*t)===jD(e)?this:RD("bad point: not on curve")}toBytes(e=!0){const{x:t,y:n}=this.assertValidity().toAffine(),r=ZD(t);return e?OD((e=>qD($D(e)?2:3))(n),r):OD(qD(4),r,ZD(n))}toHex(e){return PD(this.toBytes(e))}},WD=new VD(CD,SD,1n),HD=new VD(0n,1n,0n);VD.BASE=WD,VD.ZERO=HD;var GD=(e,t,n)=>(e=>ND("0x"+(PD(e)||"0")))(e.subarray(t,n)),KD=2n**256n,ZD=e=>AD(ID(FD(e,0n,KD),64)),YD=Math.ceil(32)+1,XD=void 0,JD=(e,t)=>{const n=t.negate();return e?n:t},QD=e=>{const t=XD||(XD=(()=>{const e=[];let t=WD,n=t;for(let r=0;r>=s,a>128&&(a-=256,e+=1n);const l=128*o,c=l,u=l+Math.abs(a)-1,h=o%2!=0,d=a<0;0===a?r=r.add(JD(h,t[c])):n=n.add(JD(d,t[u]))}return 0n!==e&&RD("invalid wnaf"),{p:n,f:r}};function ez(e){return VD.fromHex(e).toHex().substring(2)}var tz=new TextDecoder("utf-8"),nz=new TextEncoder;function rz(e){return btoa(String.fromCharCode(...e))}function iz(e){return new Uint8Array(atob(e).split("").map(e=>e.charCodeAt(0)))}(class e{log=KO.extend("SerialPortSigner");writer=null;pubkey;get isConnected(){return!!this.writer}verifyEvent=_P;nip04;constructor(){this.nip04={encrypt:this.nip04Encrypt.bind(this),decrypt:this.nip04Decrypt.bind(this)}}lastCommand=null;async callMethodOnDevice(t,n,r={}){if(!e.SUPPORTED)throw new Error("Serial devices are not supported");if(this.writer||await this.connectToDevice(r),this.lastCommand)throw new Error("Previous command to device still pending!");const i=DF();return this.lastCommand=i,this.sendCommand(t,n),setTimeout(()=>{i.reject(new Error("Device timeout")),this.lastCommand===i&&(this.lastCommand=null)},6e3),this.lastCommand}async connectToDevice({onConnect:t,onDisconnect:n,onError:r,onDone:i}){let s,o=await window.navigator.serial.requestPort();await o.open({baudRate:9600}),await new Promise(e=>setTimeout(e,1e3)),(async()=>{for(;o&&o.readable;){const t=new window.TextDecoderStream;o.readable.pipeTo(t.writable),s=t.readable.getReader();const n=this.readFromSerialPort(s);try{for(;;){const{value:t,done:r}=await n("\n");if(t){const{method:n,data:r}=this.parseResponse(t);if("/ping"===n&&this.log("Pong"),-1===e.PUBLIC_METHODS.indexOf(n))continue;this.log("Received: ",n,r),this.lastCommand&&(this.lastCommand.resolve(r),this.lastCommand=null)}if(r)return this.lastCommand=null,this.writer=null,void(i&&i())}}catch(_6){if(_6 instanceof Error)throw this.writer=null,r&&r(_6),this.lastCommand&&(this.lastCommand.reject(_6),this.lastCommand=null),_6}}})();const a=new window.TextEncoderStream;a.readable.pipeTo(o.writable),this.writer=a.writable.getWriter(),await this.sendCommand(e.METHOD_PING),await this.sendCommand(e.METHOD_PING,[window.location.host]),t&&t(),o.addEventListener("disconnect",()=>{this.log("Disconnected"),this.lastCommand=null,this.writer=null,n&&n()})}async sendCommand(e,t=[]){if(!this.writer)return;this.log("Send command",e,t);const n=[e].concat(t).join(" ");await this.writer.write(n+"\n")}readFromSerialPort(e){let t,n=[];return async(r="\n")=>{if(n.length)return{value:n.shift().trim(),done:!1};const i=[];for(t&&(i.push(t),t=void 0);;){const{value:s,done:o}=await e.read();if(s){const e=s.split(r);if(e.length>1)return i.push(e.shift()),t=e.pop(),n=e,{value:i.join("").trim(),done:!1};i.push(s)}if(o)return{value:i.join("").trim(),done:!0}}}}parseResponse(e){const t=e.split(" ")[0];return{method:t,data:e.substring(t.length).trim()}}async nip04Encrypt(t,n){const r=IS(await this.callMethodOnDevice(e.METHOD_SHARED_SECRET,[ez(t)]));let i=Uint8Array.from(window.crypto.getRandomValues(new Uint8Array(16))),s=nz.encode(n),o=await crypto.subtle.importKey("raw",r,{name:"AES-CBC"},!1,["encrypt"]),a=await crypto.subtle.encrypt({name:"AES-CBC",iv:i},o,s);return`${rz(new Uint8Array(a))}?iv=${rz(new Uint8Array(i.buffer))}`}async nip04Decrypt(t,n){let[r,i]=n.split("?iv=");const s=IS(await this.callMethodOnDevice(e.METHOD_SHARED_SECRET,[ez(t)]));let o=await crypto.subtle.importKey("raw",s,{name:"AES-CBC"},!1,["decrypt"]),a=iz(r),l=iz(i),c=await crypto.subtle.decrypt({name:"AES-CBC",iv:l},o,a);return tz.decode(c)}async getPublicKey(){const t=await this.callMethodOnDevice(e.METHOD_PUBLIC_KEY,[]);return this.pubkey=t,t}async restore(t){await this.callMethodOnDevice(e.METHOD_RESTORE,[LS(t)])}async signEvent(t){const n=t.pubkey||this.pubkey;if(!n)throw new Error("Unknown signer pubkey");const r={...t,id:mP({...t,pubkey:n})},i=await this.callMethodOnDevice(e.METHOD_SIGN_MESSAGE,[r.id]),s={...r,sig:i,pubkey:n};if(!this.verifyEvent(s))throw new Error("Invalid signature");return s}ping(){this.sendCommand(e.METHOD_PING,[window.location.host])}static SUPPORTED="navigator"in globalThis&&!!navigator.serial;static METHOD_PING="/ping";static METHOD_LOG="/log";static METHOD_SIGN_MESSAGE="/sign-message";static METHOD_SHARED_SECRET="/shared-secret";static METHOD_PUBLIC_KEY="/public-key";static METHOD_RESTORE="/restore";static PUBLIC_METHODS=[e.METHOD_PUBLIC_KEY,e.METHOD_SIGN_MESSAGE,e.METHOD_SHARED_SECRET,e.METHOD_RESTORE]});var sz=a({isMobile:()=>oz});function oz(){return"undefined"!=typeof navigator&&/Mobi|Android|iPhone|iPad/i.test(navigator.userAgent)}var az,lz=a({default:()=>gz}),cz="marco:nostr_pubkey",uz="marco:nostr_signer_type",hz="marco:nostr_connect_local_key",dz="marco:nostr_connect_remote_pubkey",pz="marco:nostr_connect_relay",fz="wss://nostr.kosmos.org",gz=class extends pp{static{dF(this.prototype,"nostrRelay",[dp])}#ae=void fF(this,"nostrRelay");static{dF(this.prototype,"nostrData",[dp])}#F=void fF(this,"nostrData");static{dF(this.prototype,"pubkey",[Vr],function(){return null})}#le=void fF(this,"pubkey");static{dF(this.prototype,"signerType",[Vr],function(){return null})}#ce=void fF(this,"signerType");static{dF(this.prototype,"connectStatus",[Vr],function(){return null})}#ue=void fF(this,"connectStatus");static{dF(this.prototype,"connectUri",[Vr],function(){return null})}#he=void fF(this,"connectUri");_signerInstance=null;constructor(){super(...arguments),"undefined"!=typeof localStorage&&(localStorage.debug="applesauce:*");const e=localStorage.getItem(cz),t=localStorage.getItem(uz);e&&(this.pubkey=e,this.signerType=t||"extension",this._verifyPubkey())}async _verifyPubkey(){if("extension"===this.signerType){if(void 0===window.nostr)return void this.disconnect();try{const e=await(new jF).getPublicKey();e!==this.pubkey&&(this.pubkey=e,localStorage.setItem(cz,this.pubkey)),this.nostrData.loadProfile(this.pubkey)}catch(e){console.warn("Failed to verify extension nostr pubkey, logging out",e),this.disconnect()}}else if("connect"===this.signerType)try{await this._initConnectSigner()}catch(e){console.warn("Failed to verify connect nostr pubkey, logging out",e),this.disconnect()}}get isMobile(){return oz()}get isConnected(){return!!this.pubkey&&("extension"!==this.signerType||void 0!==window.nostr)}get signer(){return this._signerInstance?this._signerInstance:"extension"===this.signerType&&void 0!==window.nostr?new jF:(this.signerType,null)}async connectWithExtension(){if(void 0===window.nostr)throw new Error("No NIP-07 Nostr extension found (e.g., Alby, nos2x).");try{return this._signerInstance=new jF,this.pubkey=await this._signerInstance.getPublicKey(),this.signerType="extension",localStorage.setItem(cz,this.pubkey),localStorage.setItem(uz,"extension"),this.nostrData.loadProfile(this.pubkey),this.pubkey}catch(_6){throw console.error("Failed to get public key from extension:",_6),_6}}_getLocalSigner(){let e,t=localStorage.getItem(hz);return t?e=yD.fromKey(t):(e=new yD,t=Array.from(e.key).map(e=>e.toString(16).padStart(2,"0")).join(""),localStorage.setItem(hz,t)),e}async connectWithApp(){this.connectStatus="waiting";try{const t=this._getLocalSigner(),n=fz;localStorage.setItem(pz,n),this._signerInstance=new bD({pool:this.nostrRelay.pool,relays:[n],signer:t,onAuth:async e=>{confirm(`Your signer app requests authentication via a web page. Open it now?\n\nURL: ${e}`)&&window.open(e,"_blank")}}),this.connectUri=this._signerInstance.getNostrConnectURI({name:"Marco",url:window.location.origin,description:"An unhosted maps application.",icons:[]}),this.isMobile&&(console.debug("Mobile detected, triggering deep link intent."),window.location.href=this.connectUri),console.debug("Opening signer connection to relay..."),await this._signerInstance.open(),console.debug("Signer connection opened successfully."),console.debug("Waiting for remote signer to ack via relay...");try{await this._signerInstance.waitForSigner(),console.debug("Remote signer ack received!")}catch(e){throw console.error("Error while waiting for remote signer ack:",e),e}return this.pubkey=await this._signerInstance.getPublicKey(),this.signerType="connect",this.connectStatus="connected",localStorage.setItem(cz,this.pubkey),localStorage.setItem(uz,"connect"),localStorage.setItem(dz,this._signerInstance.remote),this.nostrData.loadProfile(this.pubkey),this.pubkey}catch(_6){throw this.connectStatus=null,console.error("Failed to connect via Nostr Connect:",_6),_6}}async _initConnectSigner(){const e=localStorage.getItem(dz),t=localStorage.getItem(pz)||fz;if(!e)throw new Error("Missing Nostr Connect remote pubkey.");const n=this._getLocalSigner();if(this._signerInstance=new bD({pool:this.nostrRelay.pool,relays:[t],signer:n,remote:e,onAuth:async e=>{confirm(`Your signer app requests authentication via a web page. Open it now?\n\nURL: ${e}`)&&window.open(e,"_blank")}}),await this._signerInstance.open(),await this._signerInstance.getPublicKey()!==this.pubkey)throw new Error("Remote signer pubkey mismatch");this.nostrData.loadProfile(this.pubkey)}async signEvent(e){if(!this.signer)throw new Error("Not connected or extension missing. Please connect Nostr again.");return await this.signer.signEvent(e)}async disconnect(){this.pubkey=null,this.nostrData?.loadProfile(null),this.signerType=null,this.connectStatus=null,this.connectUri=null,this._signerInstance&&"function"==typeof this._signerInstance.close&&await this._signerInstance.close(),this._signerInstance=null,localStorage.removeItem(cz),localStorage.removeItem(uz),localStorage.removeItem(hz),localStorage.removeItem(dz),localStorage.removeItem(pz)}};function mz(e){return Array.from(new Set(e))}function yz(e){const t={};t.kinds=mz(e.map(e=>e.kind)),t.authors=mz(e.map(e=>e.pubkey));const n=mz(e.map(e=>e.identifier).filter(e=>void 0!==e));return n.length>0&&(t["#d"]=n),t}function vz(e){const t=e.filter(e=>Px(e.kind)),n=e.filter(e=>Mx(e.kind)),r=[],i=e=>{if(0===e.length)return;const t=function(e){const t=new Set(e.map(e=>e.kind));return new Set(e.map(e=>e.pubkey)).sizeArray.isArray(e)?VA(e):WA(e)),qO(e=>AP(e)));if(Array.isArray(n)){for(const e of n)AP(e);return VA(n)}return AP(n),WA(n)}(e,t)}function _z(e,t){return GA(e)?e.pipe(kO(1),UO(t)):t(e)}function xz(e,t,n,r,i){const s=new dA,o=new dA,a=s.pipe(e,vO(e=>e.length>0),tO(e=>t(e).pipe(BO(o),FO({resetOnRefCountZero:!1,resetOnComplete:!1,resetOnError:!1}))),BO(o),FO()),l=()=>{o.next(),o.complete(),s.complete()};return i?.signal&&(i.signal.aborted?l():i.signal.addEventListener("abort",l,{once:!0})),Object.assign(e=>new oA(t=>{const i=a.pipe(kO(1),uO(),vO(t=>n(e,t)),r??sA).subscribe(t);return s.next(e),i}),{stop:l,[Symbol.dispose]:l})}function Cz(e){return(t,n)=>function(e,t,n){if("function"==typeof e)return e(t,n);if("object"==typeof e&&"request"in e)return e.request(t,n);throw new Error("Invalid upstream pool")}(e,t,n)}function Sz(e){return(...t)=>{return n=e(...t),new oA(e=>{let t;const r=i=>{const s=i?n.next(i):n.next(),o=n=>{if(n.done)return e.complete();const i=[];GA(n.value)?t=n.value.subscribe({next:t=>{i.push(t),e.next(t)},error:t=>{e.error(t)},complete:()=>{r(i)}}):(i.push(n.value),e.next(n.value),r(i))};s instanceof Promise?s.then(o,t=>e.error(t)):o(s)};return r(),()=>t?.unsubscribe()}).pipe(FO());var n}}function kz(e,t){return n=>_z(t,t=>0===t.length?SA:e(t,vz(n)))}function Ez(e){const t={...e};return e.relays&&(t.relays=[...e.relays]),t}function Rz(e,t){return n=>_z(t,t=>e(t,[{ids:n.map(e=>e.id)}]))}function Tz(e,t){return Rz(e,[t])}function Lz(e,t=Tz){const n=new Map;return r=>{const i=function(e){let t=new Map;for(const n of e){let e=cM(n.relays,void 0);for(const r of e)t.has(r)?t.get(r)?.push(n):t.set(r,[n])}return t}(r);return fO(...Array.from(i).map(([r,i])=>(r=>{let i=n.get(r);return i||(i=t(e,r),n.set(r,i)),i})(r)(i)))}}!function(e){e.Error="error",e.Missing="missing",e.Found="found"}(az||(az={}));var Iz,Pz,Mz=(e,t)=>t.some(t=>e instanceof t),Az=new WeakMap,Oz=new WeakMap,Nz=new WeakMap,Fz={get(e,t,n){if(e instanceof IDBTransaction){if("done"===t)return Az.get(e);if("store"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return zz(e[t])},set:(e,t,n)=>(e[t]=n,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function Dz(e){Fz=e(Fz)}function zz(e){if(e instanceof IDBRequest)return function(e){const t=new Promise((t,n)=>{const r=()=>{e.removeEventListener("success",i),e.removeEventListener("error",s)},i=()=>{t(zz(e.result)),r()},s=()=>{n(e.error),r()};e.addEventListener("success",i),e.addEventListener("error",s)});return Nz.set(t,e),t}(e);if(Oz.has(e))return Oz.get(e);const t=function(e){return"function"==typeof e?(t=e,(Pz||(Pz=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(t)?function(...e){return t.apply(jz(this),e),zz(this.request)}:function(...e){return zz(t.apply(jz(this),e))}):(e instanceof IDBTransaction&&function(e){if(Az.has(e))return;const t=new Promise((t,n)=>{const r=()=>{e.removeEventListener("complete",i),e.removeEventListener("error",s),e.removeEventListener("abort",s)},i=()=>{t(),r()},s=()=>{n(e.error||new DOMException("AbortError","AbortError")),r()};e.addEventListener("complete",i),e.addEventListener("error",s),e.addEventListener("abort",s)});Az.set(e,t)}(e),Mz(e,Iz||(Iz=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]))?new Proxy(e,Fz):e);var t}(e);return t!==e&&(Oz.set(e,t),Nz.set(t,e)),t}var jz=e=>Nz.get(e),Uz=["get","getKey","getAll","getAllKeys","count"],Bz=["put","add","delete","clear"],$z=new Map;function qz(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if($z.get(t))return $z.get(t);const n=t.replace(/FromIndex$/,""),r=t!==n,i=Bz.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!i&&!Uz.includes(n))return;const s=async function(e,...t){const s=this.transaction(e,i?"readwrite":"readonly");let o=s.store;return r&&(o=o.index(t.shift())),(await Promise.all([o[n](...t),i&&s.done]))[0]};return $z.set(t,s),s}Dz(e=>({...e,get:(t,n,r)=>qz(t,n)||e.get(t,n,r),has:(t,n)=>!!qz(t,n)||e.has(t,n)}));var Vz=["continue","continuePrimaryKey","advance"],Wz={},Hz=new WeakMap,Gz=new WeakMap,Kz={get(e,t){if(!Vz.includes(t))return e[t];let n=Wz[t];return n||(n=Wz[t]=function(...e){Hz.set(this,Gz.get(this)[t](...e))}),n}};async function*Zz(...e){let t=this;if(t instanceof IDBCursor||(t=await t.openCursor(...e)),!t)return;const n=new Proxy(t,Kz);for(Gz.set(n,t),Nz.set(n,jz(t));t;)yield n,t=await(Hz.get(n)||t.continue()),Hz.delete(n)}function Yz(e,t){return t===Symbol.asyncIterator&&Mz(e,[IDBIndex,IDBObjectStore,IDBCursor])||"iterate"===t&&Mz(e,[IDBIndex,IDBObjectStore])}function Xz(e){return 0===e||3===e||e>=1e4&&e<2e4}function Jz(e){return e>=3e4&&e<4e4}function Qz(e){return e>=2e4&&e<3e4}Dz(e=>({...e,get:(t,n,r)=>Yz(t,n)?Zz:e.get(t,n,r),has:(t,n)=>Yz(t,n)||e.has(t,n)}));var ej=Symbol.for("indexable-tags");function tj(e,t){if(e.ids&&-1===e.ids.indexOf(t.id))return!1;if(e.kinds&&-1===e.kinds.indexOf(t.kind))return!1;if(e.authors&&-1===e.authors.indexOf(t.pubkey))return!1;if(e.since&&t.created_ate.until)return!1;const n=function(e){let t=Reflect.get(e,ej);if(!t){t=new Set;for(const n of e.tags)n.length>=2&&1===n[0].length&&t.add(n[0]+":"+n[1]);Reflect.set(e,ej,t)}return t}(t);for(const r in e)if("&"===r[0]){const t=r.slice(1),i=e[r];if(i&&i.length>0)for(const e of i)if(!n.has(t+":"+e))return!1}for(const r in e)if("#"===r[0]){const t=r.slice(1),i=e[r];if(i){const r=e[`&${t}`],s=r?i.filter(e=>!r.includes(e)):i;if(0===s.length)continue;if(!s.some(e=>n.has(t+":"+e)))return!1}}return!0}function nj(e,t){for(let n=0;ne.length>=2&&1===e[0].length&&ij.includes(e[0])).map(e=>e[0]+e[1])}function aj(e){if(Reflect.has(e,sj))return Reflect.get(e,sj);let t;if(Xz(e.kind)||Jz(e.kind)){const n=e.tags.find(e=>"d"===e[0])?.[1];t=e.kind+":"+e.pubkey+":"+(n??"")}else t=e.id;return Reflect.set(e,sj,t),t}async function lj(e="nostr-idb",t){return await function(e,t,{blocked:n,upgrade:r,blocking:i,terminated:s}={}){const o=indexedDB.open(e,t),a=zz(o);return r&&o.addEventListener("upgradeneeded",e=>{r(zz(o.result),e.oldVersion,e.newVersion,zz(o.transaction),e)}),n&&o.addEventListener("blocked",e=>n(e.oldVersion,e.newVersion,e)),a.then(e=>{s&&e.addEventListener("close",()=>s()),i&&e.addEventListener("versionchange",e=>i(e.oldVersion,e.newVersion,e))}).catch(()=>{}),a}(e,3,{...t,async upgrade(e,n,r,i,s){if(0===n){const t=e.createObjectStore("events");t.createIndex("id","event.id",{unique:!0}),t.createIndex("pubkey","event.pubkey"),t.createIndex("kind","event.kind"),t.createIndex("created_at","event.created_at"),t.createIndex("tags","tags",{multiEntry:!0}),e.createObjectStore("used",{keyPath:"uid"}).createIndex("date","date")}1===n&&(e.deleteObjectStore("events"),e.deleteObjectStore("used"),e.deleteObjectStore("seen")),n<=2&&await async function(e){const t=e.objectStore("events");let n=await t.openCursor();const r=[];for(;n;){const e=n.primaryKey,t=n.value,i=t.event;if(Xz(i.kind)||Jz(i.kind)){const n=aj(i);e!==n&&r.push({oldKey:e,newKey:n,value:t})}n=await n.continue()}for(const{oldKey:i,newKey:s,value:o}of r)await t.delete(i),await t.put(o,s)}(i),t?.upgrade&&t.upgrade(e,n,r,i,s)}})}function cj(e,t){return t.created_at-e.created_at}var uj=a({countEventsForFilters:()=>wj,getEventsForFilters:()=>bj,getIdsForFilter:()=>yj,getIdsForFilters:()=>vj,queryForKinds:()=>gj,queryForPubkeys:()=>hj,queryForTag:()=>dj,queryForTagAnd:()=>pj,queryForTime:()=>mj});function hj(e,t=[],n){const r=[],i=new Set;if(n)for(const l of t){const e=n.getPubkeyIndex(l);if(e){for(const t of e)i.add(t);r.push(l)}}if(r.length===t.length)return Promise.resolve(i);const s=e.transaction("events","readonly"),o=s.objectStore("events").index("pubkey"),a=t.filter(e=>!r.includes(e)).map(e=>o.getAllKeys(e).then(t=>((e,t)=>{for(const n of t)i.add(n);n&&n.setPubkeyIndex(e,new Set(t))})(e,t)));return s.commit(),Promise.all(a).then(()=>i)}function dj(e,t,n,r){const i=[],s=new Set;if(r)for(const c of n){const e=r.getTagIndex(t+c);if(e){for(const t of e)s.add(t);i.push(c)}}if(i.length===n.length)return Promise.resolve(s);const o=e.transaction("events","readonly"),a=o.objectStore("events").index("tags"),l=n.map(e=>a.getAllKeys(t+e).then(n=>((e,n)=>{for(const t of n)s.add(t);r&&r.setTagIndex(t+e,new Set(n))})(e,n)));return o.commit(),Promise.all(l).then(()=>s)}function pj(e,t,n,r){if(0===n.length)return Promise.resolve(new Set);if(1===n.length)return dj(e,t,n,r);const i=[],s=[];if(r)for(const c of n){const e=r.getTagIndex(t+c);e&&(s.push(e),i.push(c))}if(i.length===n.length)return Promise.resolve(fj(s));const o=e.transaction("events","readonly"),a=o.objectStore("events").index("tags"),l=n.filter(e=>!i.includes(e)).map(e=>a.getAllKeys(t+e).then(n=>((e,n)=>{const i=new Set(n);s.push(i),r&&r.setTagIndex(t+e,i)})(e,n)));return o.commit(),Promise.all(l).then(()=>fj(s))}function fj(e){if(0===e.length)return new Set;const t=e.slice().sort((e,t)=>e.size-t.size);let n=t[0];for(let r=1;r!r.includes(e)).map(e=>o.getAllKeys(e).then(t=>((e,t)=>{for(const n of t)i.add(n);n&&n.setKindIndex(e,new Set(t))})(e,t)));return s.commit(),Promise.all(a).then(()=>i)}async function mj(e,t,n){let r;if(void 0!==t&&void 0!==n)r=IDBKeyRange.bound(t,n);else if(void 0!==t)r=IDBKeyRange.lowerBound(t);else{if(void 0===n)throw new Error("Missing since or until");r=IDBKeyRange.upperBound(n)}return(await e.getAllKeysFromIndex("events","created_at",r)).reverse()}async function yj(e,t,n){if(t.search)return new Set;if(t.ids)return new Set(t.ids);let r=null;const i=e=>{const t=e instanceof Set?e:new Set(e);if(r)for(const n of r)t.has(n)||r.delete(n);else r=t;return r};let s=null;void 0!==t.since&&(s=await mj(e,t.since,t.until),i(s));for(const o of ij){const r=t[`&${o}`],s=t[`#${o}`];if(r?.length&&i(await pj(e,o,r,n)),s?.length){const t=r?.length?s.filter(e=>!r.includes(e)):s;t.length>0&&i(await dj(e,o,t,n))}}if(t.authors&&i(await hj(e,t.authors,n)),t.kinds&&i(await gj(e,t.kinds,n)),void 0===t.since&&void 0!==t.until&&(s=await mj(e,t.since,t.until),i(s)),t.limit&&s){const e=new Set;for(const n of s){if(e.size>=t.limit)break;r.has(n)&&e.add(n)}return e}if(null===r)throw new Error("Empty filter");return r}async function vj(e,t,n){if(0===t.length)throw new Error("No Filters");let r=new Set;for(const i of t){const t=await yj(e,i,n);for(const e of t)r.add(e)}return r}async function bj(e,t,n,r){const i=await vj(e,t,n);return await async function(e,t,n,r){const i=[];let s=[];if(r)for(const d of t){const e=r.get(d);e?i.push(e):s.push(d)}else s=t;const o=e.transaction("events","readonly"),a=o.objectStore("events"),l=e=>e&&i.push(e.event),c=Array.from(s).map(e=>a.get(e).then(l));o.commit();const u=await Promise.all(c).then(()=>i.sort(cj));let h=1/0;for(const d of n)d.limit&&d.limith&&(u.length=h),u}(e,Array.from(i),t,r)}async function wj(e,t,n){return(await vj(e,t,n)).size}var _j=GO.default("nostr-idb"),xj=_j.extend("prune");async function Cj(e,t,n){const r=e.transaction("events","readwrite"),i=r.objectStore("events"),s=await i.get(t);if(!s)return await r.commit(),!1;if(await i.delete(t),await r.commit(),n){const e=s.event;n.removeEvent(e)}return!0}var Sj=_j.extend("WriteQueue"),kj=class{db;queuedIds=new Set;eventQueue=[];lastUsedQueue=new Set;processEvents=null;constructor(e){this.db=e}addEvent(e){const t=aj(e);this.queuedIds.has(t)||(this.eventQueue.push(e),this.queuedIds.add(t),this.touch(e))}addEvents(e){const t=e.filter(e=>!this.queuedIds.has(aj(e)));if(0!==t.length){this.eventQueue.push(...t);for(const e of t)this.queuedIds.add(aj(e));this.touch(t)}}touch(e){if(Array.isArray(e))for(const t of e)this.lastUsedQueue.add(aj(t));else this.lastUsedQueue.add(aj(e))}matchPending(e){return this.eventQueue.filter(t=>nj(e,t))}async flush(e=1e3){if(this.eventQueue.length>0){let t=[];for(let n=0;nfunction(e){if("object"!=typeof e||null===e)return!1;if("number"!=typeof e.kind)return!1;if("string"!=typeof e.content)return!1;if("number"!=typeof e.created_at)return!1;if("string"!=typeof e.id)return!1;if(!/^[a-f0-9]{64}$/.test(e.id))return!1;if("string"!=typeof e.pubkey)return!1;if(!/^[a-f0-9]{64}$/.test(e.pubkey))return!1;if(!Array.isArray(e.tags))return!1;for(const t of e.tags){if(!Array.isArray(t))return!1;for(const e of t)if("string"!=typeof e)return!1}return!0}(e))).filter(e=>Xz(e.kind)||Jz(e.kind)),r={};if(n.length>0){const t=e.transaction("events","readonly"),i=n.map(e=>{const n=aj(e);return t.store.get(n).then(e=>e&&(r[n]=e.event.created_at))});t.commit(),await Promise.all(i)}const i=e.transaction("events","readwrite");for(const s of t){const e=aj(s);(!r[e]||s.created_at>r[e])&&i.objectStore("events").put({event:s,tags:oj(s)},e)}await i.commit()}(this.db,t),Sj(`Wrote ${t.length} to database`),this.eventQueue.length>0&&Sj(`${this.eventQueue.length} left`)}this.lastUsedQueue.size>0&&(await async function(e,t){const n=e.transaction("used","readwrite"),r=Math.floor((new Date).valueOf()/1e3);for(const i of t)n.objectStore("used").put({uid:i,date:r});await n.commit()}(this.db,this.lastUsedQueue),this.lastUsedQueue.clear())}clear(){this.eventQueue=[]}},Ej=_j.extend("cache:indexes"),Rj=class extends Set{type;key;constructor(e,t,n){super(e),this.type=t,this.key=n}},Tj=class{kinds=new Map;pubkeys=new Map;tags=new Map;get count(){return this.kinds.size+this.pubkeys.size+this.tags.size}max=1e3;lastUsed=[];useIndex(e){const t=this.lastUsed.indexOf(e);-1!==t&&this.lastUsed.splice(t,t+1),this.lastUsed.push(e)}getKindIndex(e){const t=this.kinds.get(e);return t&&this.useIndex(t),t}setKindIndex(e,t){const n=new Rj(t,"kind",e);this.kinds.set(e,n),this.useIndex(n),this.pruneIndexes()}getPubkeyIndex(e){const t=this.pubkeys.get(e);return t&&this.useIndex(t),t}setPubkeyIndex(e,t){const n=new Rj(t,"pubkey",e);this.pubkeys.set(e,n),this.useIndex(n),this.pruneIndexes()}getTagIndex(e){const t=this.tags.get(e);return t&&this.useIndex(t),t}setTagIndex(e,t){const n=new Rj(t,"tag",e);this.tags.set(e,n),this.useIndex(n),this.pruneIndexes()}addEventToIndexes(e){const t=aj(e);this.getKindIndex(e.kind)?.add(t),this.getPubkeyIndex(e.pubkey)?.add(t);const n=oj(e);for(const r of n)this.getTagIndex(r)?.add(t)}removeEvent(e){const t=aj(e);this.getKindIndex(e.kind)?.delete(t),this.getPubkeyIndex(e.pubkey)?.delete(t);const n=oj(e);for(const r of n)this.getTagIndex(r)?.delete(t)}clear(){this.kinds.clear(),this.pubkeys.clear(),this.tags.clear(),this.lastUsed=[]}pruneIndexes(){for(;this.lastUsed.length>0&&this.lastUsed.length>this.max;){const e=this.lastUsed.shift();if(!e)return;switch(Ej(`Forgetting ${e.type}:${e.key}`),e.type){case"kind":this.kinds.delete(e.key);break;case"pubkey":this.pubkeys.delete(e.key);break;case"tag":this.tags.delete(e.key)}}}},Lj={},Ij=function(e,t){let n=Promise.resolve();if(t&&t.length>0){const e=document.getElementsByTagName("link"),i=document.querySelector("meta[property=csp-nonce]"),s=i?.nonce||i?.getAttribute("nonce");r=t.map(t=>{var n;if(n=t=function(e){return"/"+e}(t),(t=import.meta.resolve?import.meta.resolve(n):new URL(n,import.meta.url).href)in Lj)return;Lj[t]=!0;const r=t.endsWith(".css");for(let s=e.length-1;s>=0;s--){const n=e[s];if(n.href===t&&(!r||"stylesheet"===n.rel))return}const i=document.createElement("link");return i.rel=r?"stylesheet":"modulepreload",r||(i.as="script"),i.crossOrigin="",i.href=t,s&&i.setAttribute("nonce",s),document.head.appendChild(i),r?new Promise((e,n)=>{i.addEventListener("load",e),i.addEventListener("error",()=>n(new Error(`Unable to preload CSS for ${t}`)))}):void 0}),n=Promise.all(r.map(e=>Promise.resolve(e).then(e=>({status:"fulfilled",value:e}),e=>({status:"rejected",reason:e}))))}var r;function i(e){const t=new Event("vite:preloadError",{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return n.then(t=>{for(const e of t||[])"rejected"===e.status&&i(e.reason);return e().catch(i)})},Pj={batchWrite:1e3,writeInterval:100,cacheIndexes:1e3,pruneInterval:6e4,maxEvents:1e4},Mj=_j.extend("nostridb"),Aj=class{options;running=!1;writeInterval;pruneInterval;eventMap=new Map;writeQueue=null;indexCache;db=null;baseEoseTimeout=4400;subscriptions=new Map;constructor(e,t={}){this.options={...Pj,...t},e&&(this.db=e,this.writeQueue=new kj(e)),this.indexCache=new Tj,this.indexCache.max=this.options.cacheIndexes,this.start()}async getDb(){return this.db||(this.db=await lj()),this.db}async getWriteQueue(){if(this.writeQueue)return this.writeQueue;const e=await this.getDb();return this.writeQueue=new kj(e),this.writeQueue}async flush(){await(await this.getWriteQueue()).flush(),this.writeInterval=setTimeout(this.flush.bind(this),this.options.writeInterval)}async start(){if(this.running)return;Mj("Starting"),this.running=!0;const e=await this.getDb();await this.flush(),this.pruneInterval=setInterval(()=>{!async function(e,t){const n=await function(e){return e.transaction("events","readonly").store.count()}(e);if(n<=t)return;const r=n-t;if(r<=0)return;xj(`Pruning database to ${t}`);const i=(await e.getAll("used")).sort((e,t)=>e.date-t.date),s=[];let o=r;for(const u of i){if(o<=0)break;const e=u.uid;s.push(e),o--}if(0===s.length)return;const a=e.transaction("events","readwrite"),l=e.transaction("used","readwrite"),c=[];for(const u of s)c.push(a.store.delete(u)),c.push(l.store.delete(u));a.commit(),l.commit(),await Promise.all(c),xj(`Removed ${s.length} old events`)}(e,this.options.maxEvents)},this.options.pruneInterval)}async stop(){this.running&&(this.writeInterval&&(clearTimeout(this.writeInterval),this.writeInterval=void 0),this.pruneInterval&&(clearInterval(this.pruneInterval),this.pruneInterval=void 0),this.running=!1,Mj("Stopped"))}async add(e){Qz(e.kind)||((await this.getWriteQueue()).addEvent(e),this.indexCache.addEventToIndexes(e));const t=aj(e);if(!this.eventMap.has(t)){Qz(e.kind)||this.eventMap.set(t,e);for(const[t,n]of this.subscriptions)n.event&&nj(n.filters,e)&&n.event(e)}return!0}async event(e){return(await(await this.getDb()).get("events",e))?.event}async replaceable(e,t,n){return this.event([e,t,n??""].join(":"))}async count(e){const t=Array.isArray(e)?e:[e],n=await this.getDb();return await wj(n,t)}async query(e){const t=Array.isArray(e)?e:[e],n=await this.getDb(),r=(await this.getWriteQueue()).matchPending(t),i=await bj(n,t,this.indexCache,this.eventMap);this.addToEventMaps(i);const s=new Set(r.map(e=>aj(e)));return r.length>0?[...i.filter(e=>!s.has(aj(e))),...r].sort(cj):i}async*subscribe(e){const t=Array.isArray(e)?e:[e],n=[],r=new Set;let i=null,s=!1;const o=this.subscribeInternal(t,{event:e=>{const t=aj(e);if(!r.has(t)&&(r.add(t),n.push(e),i)){const e=i;i=null,e()}},complete:()=>{if(s=!0,i){const e=i;i=null,e()}}});try{for(;;){for(;n.length>0;)yield n.shift();if(s)break;await new Promise(e=>{i=e})}}finally{o.close()}}async supports(){return[]}async deleteEvent(e){const t=await this.getDb(),n=await Cj(t,e,this.indexCache);return this.eventMap.delete(e),n}async deleteReplaceable(e,t,n){const r=await this.getDb(),i=await async function(e,t,n,r,i){if(!Xz(n)&&!Jz(n))throw new Error(`Kind ${n} is not replaceable`);return await Cj(e,`${n}:${t}:${r??""}`,i)}(r,e,t,n,this.indexCache);if(i){const r=`${t}:${e}:${n??""}`;this.eventMap.delete(r)}return i}async deleteByFilters(e){const t=Array.isArray(e)?e:[e],n=await this.getDb(),r=await this.getEventIdsForFilters(t),i=await async function(e,t,n){const r=await vj(e,t,n);return await async function(e,t,n){if(0===t.length)return 0;const r=e.transaction("events","readwrite"),i=r.objectStore("events");let s=0;const o=[];for(const a of t){const e=await i.get(a);e&&(o.push(e.event),await i.delete(a),s++)}if(await r.commit(),n&&o.length>0)for(const a of o)n.removeEvent(a);return s}(e,Array.from(r),n)}(n,t,this.indexCache);if(i>0)for(const s of r)this.eventMap.delete(s);return i}async deleteAllEvents(){const e=await this.getDb();await async function(e,t){const n=e.transaction("events","readwrite");await n.objectStore("events").clear(),await n.commit(),t&&t.clear()}(e,this.indexCache),this.eventMap.clear()}async getEventIdsForFilters(e){const t=await this.getDb(),{getIdsForFilters:n}=await Ij(async()=>{const{getIdsForFilters:e}=await Promise.resolve().then(()=>uj);return{getIdsForFilters:e}},void 0),r=await n(t,e,this.indexCache);return Array.from(r)}addToEventMaps(e){for(const t of e)this.eventMap.set(aj(t),t)}subscribeInternal(e,t){const n=((e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce((e,t)=>e+((t&=63)<36?t.toString(36):t<62?(t-26).toString(36).toUpperCase():t>62?"-":"_"),""))(),r={id:n,filters:e,closed:!1,close:()=>this.unsubscribe(n),...t};return this.subscriptions.set(n,r),this.executeSubscription(r),r}async executeSubscription(e){const t=(new Date).valueOf();Mj(`Running ${e.id}`,e.filters);const n=(await this.getWriteQueue()).matchPending(e.filters);return new Promise(async r=>{const i=await this.getDb(),s=setTimeout(()=>{e.eose&&!e.closed&&e.eose(),r()},this.baseEoseTimeout);bj(i,e.filters,this.indexCache,this.eventMap).then(i=>{if(clearTimeout(s),this.addToEventMaps(i),e.event&&!e.closed){const r=new Set(n.map(e=>aj(e))),s=n.length>0?[...i.filter(e=>!r.has(aj(e))),...n].sort(cj):i;for(const t of s)try{e.event(t)}catch(_6){Mj("event handler failed with error",_6)}const o=(new Date).valueOf()-t;Mj(`Finished ${e.id} took ${o}ms and got ${s.length} events`)}e.eose&&!e.closed&&e.eose(),r()})})}unsubscribe(e){const t=this.subscriptions.get(e);t&&(Mj(`Closing ${e}`),t.closed=!0,t.complete?.(),this.subscriptions.delete(e))}},Oj=a({excludeRequiredRelays:()=>zj,mergeRequiredRelays:()=>Dj,normalizeRelayUrl:()=>Nj,parsePlacePhotos:()=>jj,uniqNormalizedRelays:()=>Fj});function Nj(e){if(!e)return"";let t=e.trim().toLowerCase();if(!t)return"";for(t.startsWith("ws://")||t.startsWith("wss://")||(t="wss://"+t);t.endsWith("/");)t=t.slice(0,-1);return t}function Fj(e=[]){return Array.from(new Set(e.map(Nj).filter(Boolean)))}function Dj(e=[],t=[]){const n=new Set(e.filter(Boolean)),r=[...e.filter(Boolean)];for(const i of Fj(t))n.has(i)||r.push(i);return r}function zj(e=[],t=[]){const n=new Set(t.filter(Boolean));return Fj(e).filter(e=>!n.has(e))}function jj(e){if(!e||0===e.length)return[];const t=[...e].sort((e,t)=>e.created_at-t.created_at),n=[];for(const i of t){const e=i.tags.filter(e=>"t"===e[0]).map(e=>e[1]).filter(Boolean),t=i.tags.filter(e=>"imeta"===e[0]);for(const r of t){let t=null,s=null,o=null,a=!1,l=16/9,c=null,u=i.tags.find(e=>"i"===e[0])?.[1];const h=i.tags.find(e=>"published_at"===e[0])?.[1],d=h?Number(h):null;for(const e of r.slice(1))if(e.startsWith("url "))t=e.substring(4);else if(e.startsWith("thumb "))s=e.substring(6);else if(e.startsWith("blurhash "))o=e.substring(9);else if(e.startsWith("dim ")){const[t,n]=e.substring(4).split("x").map(Number);t&&n&&(l=t/n,t>n&&(a=!0))}else if(e.startsWith("alt ")){const t=e.substring(4).trim();c="A photo of a place"===t?null:t||null}t&&n.push({eventId:i.id,pubkey:i.pubkey,createdAt:i.created_at,publishedAt:d&&d>0?d:null,url:t,thumbUrl:s,blurhash:o,isLandscape:a,aspectRatio:l,placeIdentifier:u,tags:e,alt:c})}}if(0===n.length)return[];const r=n.findIndex(e=>e.isLandscape);if(r>0){const[e]=n.splice(r,1);n.unshift(e)}return n}var Uj="0123456789bcdefghjkmnpqrstuvwxyz",Bj=class e{static encode(t,n,r){if(void 0===r){for(let r=1;r<=12;r++){const i=e.encode(t,n,r),s=e.decode(i);if(s.lat==t&&s.lon==n)return i}r=12}if(t=Number(t),n=Number(n),r=Number(r),isNaN(t)||isNaN(n)||isNaN(r))throw new Error("Invalid geohash");let i=0,s=0,o=!0,a="",l=-90,c=90,u=-180,h=180;for(;a.length=e?(i=2*i+1,u=e):(i*=2,h=e)}else{const e=(l+c)/2;t>=e?(i=2*i+1,l=e):(i*=2,c=e)}o=!o,5==++s&&(a+=Uj.charAt(i),s=0,i=0)}return a}static decode(t){const n=e.bounds(t),r=n.sw.lat,i=n.sw.lon,s=n.ne.lat,o=n.ne.lon;let a=(r+s)/2,l=(i+o)/2;return a=a.toFixed(Math.floor(2-Math.log(s-r)/Math.LN10)),l=l.toFixed(Math.floor(2-Math.log(o-i)/Math.LN10)),{lat:Number(a),lon:Number(l)}}static bounds(e){if(0==e.length)throw new Error("Invalid geohash");e=e.toLowerCase();let t=!0,n=-90,r=90,i=-180,s=180;for(let o=0;o=0;e--){const o=l>>e&1;if(t){const e=(i+s)/2;1==o?i=e:s=e}else{const e=(n+r)/2;1==o?n=e:r=e}t=!t}}return{sw:{lat:n,lon:i},ne:{lat:r,lon:s}}}static adjacent(t,n){if(t=t.toLowerCase(),n=n.toLowerCase(),0==t.length)throw new Error("Invalid geohash");if(-1=="nsew".indexOf(n))throw new Error("Invalid direction");const r=t.slice(-1);let i=t.slice(0,-1);const s=t.length%2;return-1!={n:["prxz","bcfguvyz"],s:["028b","0145hjnp"],e:["bcfguvyz","prxz"],w:["0145hjnp","028b"]}[n][s].indexOf(r)&&""!=i&&(i=e.adjacent(i,n)),i+Uj.charAt({n:["p0r21436x8zb9dcf5h7kjnmqesgutwvy","bc01fg45238967deuvhjyznpkmstqrwx"],s:["14365h7k9dcfesgujnmqp0r2twvyx8zb","238967debc01fg45kmstqrwxuvhjyznp"],e:["bc01fg45238967deuvhjyznpkmstqrwx","p0r21436x8zb9dcf5h7kjnmqesgutwvy"],w:["238967debc01fg45kmstqrwxuvhjyznp","14365h7k9dcfesgujnmqp0r2twvyx8zb"]}[n][s].indexOf(r))}static neighbours(t){return{n:e.adjacent(t,"n"),ne:e.adjacent(e.adjacent(t,"n"),"e"),e:e.adjacent(t,"e"),se:e.adjacent(e.adjacent(t,"s"),"e"),s:e.adjacent(t,"s"),sw:e.adjacent(e.adjacent(t,"s"),"w"),w:e.adjacent(t,"w"),nw:e.adjacent(e.adjacent(t,"n"),"w")}}},$j=a({getGeohashPrefixesInBbox:()=>qj});function qj(e){const{minLat:t,minLon:n,maxLat:r,maxLon:i}=e,s=new Set;if(Math.abs(r-t)>20||Math.abs(i-n)>20)return console.debug("BBox too large for 4-char geohash scanning, aborting fine scan."),[];for(let a=t;a<=r+.1;a+=.1)for(let e=n;e<=i+.1;e+=.1){const t=Math.min(a,r),n=Math.min(e,i);try{const e=Bj.encode(t,n,4);s.add(e)}catch(o){}}try{s.add(Bj.encode(t,n,4))}catch(o){}try{s.add(Bj.encode(r,i,4))}catch(o){}try{s.add(Bj.encode(t,i,4))}catch(o){}try{s.add(Bj.encode(r,n,4))}catch(o){}return Array.from(s)}var Vj=a({default:()=>Kj}),Wj=["wss://relay.primal.net","wss://nos.lol","wss://relay.damus.io"],Hj=["wss://nostr.kosmos.org"],Gj=[],Kj=class extends pp{static{dF(this.prototype,"nostrRelay",[dp])}#ae=void fF(this,"nostrRelay");static{dF(this.prototype,"nostrAuth",[dp])}#N=void fF(this,"nostrAuth");static{dF(this.prototype,"settings",[dp])}#D=void fF(this,"settings");store=new BN;static{dF(this.prototype,"profile",[Vr],function(){return null})}#de=void fF(this,"profile");static{dF(this.prototype,"mailboxes",[Vr],function(){return null})}#pe=void fF(this,"mailboxes");static{dF(this.prototype,"blossomServers",[Vr],function(){return[]})}#fe=void fF(this,"blossomServers");static{dF(this.prototype,"placePhotos",[Vr],function(){return[]})}#ge=void fF(this,"placePhotos");static{dF(this.prototype,"myContributionEvents",[Vr],function(){return[]})}#me=void fF(this,"myContributionEvents");static{dF(this.prototype,"profiles",[Vr],function(){return{}})}#ye=void fF(this,"profiles");_profileSub=null;_mailboxesSub=null;_blossomSub=null;_photosSub=null;_contributionsSub=null;_profileModelSubs=new Map;_requestSub=null;_cachePromise=null;_currentPlaceEntityId=null;loadedGeohashPrefixes=new Set;constructor(){super(...arguments),function(e,t,n){const r=function(e,t){const n=function(e,t){const n=Cz(e);return xz(bO(t?.bufferTime??1e3,void 0,t?.bufferSize??200),function(...e){return Sz(function*(t){if(0===(t=function(e){let t=new Map;for(let n of e){let e=t.get(n.id);e&&n.relays?e.relays?e.relays=[...e.relays,...n.relays.filter(t=>!e.relays.includes(t))]:e.relays=[...n.relays]:e||t.set(n.id,{...n})}return Array.from(t.values())}(t)).length)return;const n=new Set;let r=Array.from(t);for(const i of e)if(void 0!==i&&(yield i(r).pipe(wO(()=>SA),qO(e=>n.add(e.id))),r=r.filter(e=>!n.has(e.id)),0===r.length))return})}(t?.cacheRequest?function(e){return t=>(t=t.filter(e=>!1!==e.cache),0===t.length?SA:wz(e,[{ids:t.map(e=>e.id)}]))}(t.cacheRequest):void 0,!1!==t?.followRelayHints?Lz(n):void 0,t?.extraRelays?Rz(n,t.extraRelays):void 0),(e,t)=>t.id===e.id,null===t?.eventStore?sA:qN(t?.eventStore||new TN),{signal:t?.signal})}(e,{bufferTime:t?.bufferTime,bufferSize:t?.bufferSize,eventStore:t?.eventStore,cacheRequest:t?.cacheRequest,followRelayHints:t?.followRelayHints,extraRelays:t?.extraRelays,signal:t?.signal}),r=function(e,t){const n=Cz(e);return xz(bO(t?.bufferTime??1e3,void 0,t?.bufferSize??200),function(...e){return Sz(function*(t){if(0===(t=function(e){const t=new Map;for(const n of e){const e=MP(n.kind,n.pubkey,n.identifier);if(t.has(e)){const r=t.get(e);n.relays&&n.relays.length>0&&(r.relays?r.relays=cM(r.relays,n.relays):r.relays=n.relays),!1===n.cache&&(r.cache=!1)}else t.set(e,Ez(n))}return Array.from(t.values())}(t.filter(bz))).length)return;let n=Array.from(t);for(const r of e){if(void 0===r)continue;const e=yield r(n).pipe(wO(()=>SA)),t=new Set(e.filter(e=>IP(e.kind)).map(e=>PP(e)));if(n=n.filter(e=>!t.has(MP(e.kind,e.pubkey,e.identifier))),0===n.length)return}})}(t?.cacheRequest?function(e){return t=>(t=t.filter(e=>!1!==e.cache),0===t.length?SA:wz(e,vz(t)))}(t.cacheRequest):void 0,!1!==t?.followRelayHints?function(e){return t=>{const n=cM(...t.map(e=>e.relays));return 0===n.length?SA:e(n,vz(t))}}(n):void 0,t?.extraRelays?kz(n,t.extraRelays):void 0,t?.lookupRelays?kz(n,t.lookupRelays):void 0),(e,t)=>t.kind===e.kind&&t.pubkey===e.pubkey&&(void 0===e.identifier||OP(t)===e.identifier),null===t?.eventStore?sA:qN(t?.eventStore||new TN),{signal:t?.signal})}(e,{bufferTime:t?.bufferTime,bufferSize:t?.bufferSize,eventStore:t?.eventStore,cacheRequest:t?.cacheRequest,followRelayHints:t?.followRelayHints,extraRelays:t?.extraRelays,lookupRelays:t?.lookupRelays,signal:t?.signal}),i=()=>{n.stop(),r.stop()};return Object.assign(e=>fM(e)?n(e):r(e),{stop:i,[Symbol.dispose]:i})}(t,{...n,eventStore:e});e.eventLoader=r}(this.store,this.nostrRelay.pool,{cacheRequest:e=>this.cache?VA(this.cache.query(e)):SA,lookupRelays:Wj}),this._cachePromise=lj("applesauce-events").then(async e=>{this.cache=new Aj(e,{cacheIndexes:1e3,maxEvents:1e4}),await this.cache.start(),this._stopPersisting=function(e,t,n){const r=n?.batchTime??5e3,i=e.insert$.pipe(vO(e=>{return t=e,!(!0===Reflect.get(t,TP));var t}),n?.maxBatchSize?bO(r,void 0,n?.maxBatchSize??100):bO(r),vO(e=>e.length>0)).subscribe(e=>{t(e).then(()=>ZO(`Saved ${e.length} events to cache`)).catch(t=>ZO(`Failed to save ${e.length} events to cache`,t))});return()=>i.unsubscribe()}(this.store,async e=>{const t=e.filter(e=>0===e.kind||5===e.kind||10002===e.kind||10063===e.kind||360===e.kind);t.length>0&&await Promise.all(t.map(e=>this.cache.add(e)))},{batchTime:1e3,maxBatchSize:100})}),this.nostrRelay.pool.relays$.subscribe(()=>{})}get requiredReadRelays(){return Hj}get requiredWriteRelays(){return Gj}get mailboxReadRelays(){return(this.mailboxes?.inboxes||[]).map(Nj).filter(Boolean)}get mailboxWriteRelays(){return(this.mailboxes?.outboxes||[]).map(Nj).filter(Boolean)}get configuredReadRelays(){return zj(Fj([...this.mailboxReadRelays,...this.settings.nostrReadRelays||[]]),this.settings.nostrReadRelayExclusions||[])}get configuredWriteRelays(){return zj(Fj([...this.mailboxWriteRelays,...this.settings.nostrWriteRelays||[]]),this.settings.nostrWriteRelayExclusions||[])}get activeReadRelays(){return Dj(this.requiredReadRelays,this.configuredReadRelays)}get activeWriteRelays(){return Dj(this.requiredWriteRelays,this.configuredWriteRelays)}async loadPlacesInBounds(e){const t=qj(e).filter(e=>!this.loadedGeohashPrefixes.has(e));if(0!==t.length){console.debug("[nostr-data] Loading place photos for prefixes:",t);try{await this._cachePromise;const e=await this.cache.query([{kinds:[360],"#g":t}]);if(e&&e.length>0)for(const t of e)this.store.add(t)}catch(n){console.warn("[nostr-data] Failed to read photos from local Nostr IDB cache",n)}this.nostrRelay.pool.request(this.activeReadRelays,[{kinds:[360],"#g":t}]).subscribe({next:e=>{this.store.add(e)},error:e=>{console.error("[nostr-data] Error fetching place photos by geohash:",e)}});for(const e of t)this.loadedGeohashPrefixes.add(e)}}async loadPhotosForPlace(e){const t=e&&e.osmId&&e.osmType?`osm:${e.osmType}:${e.osmId}`:null;if((!t||t!==this._currentPlaceEntityId)&&(this._photosSub&&(this._photosSub.unsubscribe(),this._photosSub=null),this.placePhotos=[],this._clearProfileSubs(),this._currentPlaceEntityId=t,t)){this._photosSub=this.store.timeline([{kinds:[360],"#i":[t]}]).subscribe(e=>{this.placePhotos=e;const t=[...new Set(e.map(e=>e.pubkey))];this.loadProfiles(t)});try{await this._cachePromise;const e=await this.cache.query([{kinds:[360,5],"#i":[t]}]);if(e&&e.length>0)for(const t of e)this.store.add(t)}catch(n){console.warn("[nostr-data] Failed to read photos for place from local Nostr IDB cache",n)}this.nostrRelay.pool.request(this.activeReadRelays,[{kinds:[360,5],"#i":[t]}]).subscribe({next:e=>{this.store.add(e)},error:e=>{console.error("[nostr-data] Error fetching place photos for place:",e)}})}}async loadMyContributions(e){if(!e)return;this.myContributionEvents=[],this._contributionsSub&&(this._contributionsSub.unsubscribe(),this._contributionsSub=null);const t=[{kinds:[360,5],authors:[e]}];this._contributionsSub=this.store.timeline(t).subscribe(e=>{this.myContributionEvents=e});try{await this._cachePromise;const e=await this.cache.query(t);if(e&&e.length>0)for(const t of e)this.store.add(t)}catch(n){console.warn("[nostr-data] Failed to read my contributions from local Nostr IDB cache",n)}this.nostrRelay.pool.request(this.activeReadRelays,t).subscribe({next:e=>{this.store.add(e)},error:e=>{console.error("[nostr-data] Error fetching my contribution events:",e)}})}loadProfiles(e){const t=e.filter(e=>e&&!this._profileModelSubs.has(e));for(const n of t){const e=this.store.model(zN,n).subscribe(e=>{this.profiles={...this.profiles,[n]:e}});this._profileModelSubs.set(n,e)}}getProfile(e){return this.profiles[e]}_clearProfileSubs(){for(const e of this._profileModelSubs.values())e.unsubscribe();this._profileModelSubs.clear(),this.profiles={}}async loadProfile(e){if(!e)return;this.profile=null,this.mailboxes=null,this.blossomServers=[],this._cleanupSubscriptions(),this._profileSub=this.store.model(zN,e).subscribe(e=>{this.profile=e}),this._mailboxesSub=this.store.model(DN,e).subscribe(e=>{this.mailboxes=e}),this._blossomSub=this.store.replaceable(10063,e).subscribe(e=>{e&&e.tags?this.blossomServers=e.tags.filter(e=>"server"===e[0]&&e[1]).map(e=>e[1]):this.blossomServers=[]});try{await this._cachePromise;const t=await this.cache.query([{authors:[e],kinds:[0,10002,10063]}]);if(t&&t.length>0)for(const e of t)this.store.add(e)}catch(n){console.warn("Failed to read from local Nostr IDB cache",n)}const t=Array.from(new Set([...Wj,...this.activeWriteRelays]));this._requestSub=this.nostrRelay.pool.request(t,[{authors:[e],kinds:[0,10002,10063]}]).subscribe({next:e=>{this.store.add(e)},error:e=>{console.error("Error fetching profile events:",e)}})}get userDisplayName(){if(this.profile){if(this.profile.nip05)return this.profile.nip05;if(this.profile.displayName||this.profile.display_name)return this.profile.displayName||this.profile.display_name;if(this.profile.name)return this.profile.name}if(this.nostrAuth.pubkey)try{const e=function(e,t){return function(e,t){let n=bk.toWords(t);return bk.encode("npub",n,QP)}(0,t)}(0,IS(this.nostrAuth.pubkey));return`${e.slice(0,9)}...${e.slice(-4)}`}catch{return this.nostrAuth.pubkey}return"Not connected"}async clearCache(){await this._cachePromise,this.cache&&await this.cache.deleteAllEvents()}_cleanupSubscriptions(){this._requestSub&&(this._requestSub.unsubscribe(),this._requestSub=null),this._profileSub&&(this._profileSub.unsubscribe(),this._profileSub=null),this._mailboxesSub&&(this._mailboxesSub.unsubscribe(),this._mailboxesSub=null),this._blossomSub&&(this._blossomSub.unsubscribe(),this._blossomSub=null),this._photosSub&&(this._photosSub.unsubscribe(),this._photosSub=null),this._contributionsSub&&(this._contributionsSub.unsubscribe(),this._contributionsSub=null)}willDestroy(){super.willDestroy(...arguments),this._cleanupSubscriptions(),this._clearProfileSubs(),this._stopPersisting&&this._stopPersisting(),this.cache&&this.cache.stop()}};function Zj(e,t=e=>!!e){return SO(n=>{const r=t?n.pipe(e,vO(t),kO(1)):n.pipe(e,kO(1));return n.pipe(BO(r))})}function Yj(e){return wO(t=>WA({ok:!1,from:e.url,message:t?.message||"Unknown error"}))}var Xj,Jj=class e{relays$=new fA([]);status$;get relays(){if(this.relays$ instanceof fA)return this.relays$.value;throw new Error("This group was created with an observable, relays are not available")}constructor(e){this.relays$=Array.isArray(e)?new fA(e):e,this.status$=this.relays$.pipe(UO(e=>0===e.length?WA({}):fO(...e.map(e=>e.status$)).pipe(NO((e,t)=>({...e,[t.url]:t}),{}),jO({}))),zO(1))}get controlled(){return this.relays$ instanceof fA==0}has(e){if(this.controlled)throw new Error("This group was created with an observable, relays are not available");return"string"==typeof e?this.relays.some(t=>t.url===e):this.relays.includes(e)}add(e){this.has(e)||this.relays$.next([...this.relays,e])}remove(e){this.has(e)&&this.relays$.next(this.relays.filter(t=>t!==e))}internalSubscription(e){const t=new WeakMap;return this.relays$.pipe(function(e){return lA((t,n)=>{let r=null,i=!1;const s=()=>{i&&!r&&n.complete()};t.subscribe(cA(n,t=>{const i=r,o=r=cA(n,e=>n.next(e),()=>{r!==o&&null!==r||(r=null,s())});VA(e(t)).subscribe(r),i?.unsubscribe()},()=>{i=!0,s()}))})}(n=>{const r=[];for(const i of n){if(t.has(i)){r.push(t.get(i));continue}const n=e(i).pipe(wO(e=>WA({type:"ERROR",from:i.url,error:e})));r.push(n),t.set(i,n)}return fO(...r)}),FO())}internalPublish(e){const t=new WeakMap;return this.relays$.pipe(kO(1),UO(n=>{const r=[];for(const i of n){if(t.has(i)){r.push(t.get(i));continue}const n=e(i).pipe(Yj(i));r.push(n),t.set(i,n)}return fO(...r)}),FO())}req(e,t){return this.internalSubscription(n=>n.req(e,t))}event(e){return this.internalPublish(t=>t.event(e))}async negentropy(e,t,n,r){const i=(await Promise.all(this.relays.map(async e=>[e,await e.getSupported()]))).filter(([e,t])=>t?.includes(77)).map(([e])=>e);if(0===i.length)throw new Error("No relays support NIP-77 negentropy sync");if(!r?.parallel)throw new Error("Negentropy sync must be parallel (for now)");return await Promise.allSettled(i.map(i=>i.negentropy(e,t,n,r))),!0}publish(e,t){return ZA(this.internalPublish(n=>VA(n.publish(e,t))).pipe(lA(function(e,t){(function(e,t){return lA(_O(e,t,arguments.length>=2,!1,!0))})(xO,[])(e).subscribe(t)}),(n=[],lA(function(e,t){var r=!1;e.subscribe(cA(t,function(e){r=!0,t.next(e)},function(){r||t.next(n),t.complete()}))}))));var n}request(t,n){const r=n?.complete??e.completeOnAny(e.completeAfterFirstRelay(5e3),e.completeOnAllEose());return this.internalSubscription(e=>e.req(t,{...n,reconnect:n?.reconnect??e.requestReconnect})).pipe(r?Zj(r):sA,QA({first:n?.timeout??3e4}),vO(e=>"EVENT"===e.type),tO(e=>e.event),null===n?.eventStore?sA:qN(n?.eventStore??new TN),FO())}subscription(e,t){return this.internalSubscription(n=>n.req(e,{...t,reconnect:t?.reconnect??n.subscriptionReconnect})).pipe(vO(e=>"EVENT"===e.type),tO(e=>e.event),null===t?.eventStore?sA:qN(t?.eventStore??new TN),FO())}count(e,t=WP()){return this.relays$.pipe(UO(n=>aO(Object.fromEntries(n.map(n=>[n.url,n.count(e,t)])))),FO())}sync(e,t,n){return dO(async()=>{const e=(await Promise.all(this.relays.map(async e=>[e,await e.getSupported()]))).filter(([e,t])=>t?.includes(77)).map(([e])=>e);if(0===e.length)throw new Error("No relays support NIP-77 negentropy sync");return e}).pipe(UO(r=>fO(...r.map(r=>r.sync(e,t,n)))),FO())}static completeAfterFirstRelay(e=5e3){return t=>t.pipe(vO(e=>"EOSE"===e.type)).pipe(kO(1),UO(()=>pO(e)),tO(()=>!0))}static completeOnAllEose(){return e=>e.pipe(vO(e=>"OPEN"===e.type||"EOSE"===e.type||"ERROR"===e.type),NO((e,t)=>e.set(t.from,t.type),new Map),tO(e=>Array.from(e.values()).every(e=>"OPEN"!==e)))}static completeOnAny(...e){return SO(t=>fO(...e.map(e=>t.pipe(e))))}static completeOnAll(...e){return SO(t=>aO(e.map(e=>t.pipe(e))).pipe(tO(e=>e.every(e=>!!e))))}},Qj={url:"",deserializer:function(e){return JSON.parse(e.data)},serializer:function(e){return JSON.stringify(e)}},eU=function(e){function t(t,n){var r=e.call(this)||this;if(r._socket=null,t instanceof oA)r.destination=n,r.source=t;else{var i=r._config=MM({},Qj);if(r._output=new dA,"string"==typeof t)i.url=t;else for(var s in t)t.hasOwnProperty(s)&&(i[s]=t[s]);if(!i.WebSocketCtor&&WebSocket)i.WebSocketCtor=WebSocket;else if(!i.WebSocketCtor)throw new Error("no WebSocket constructor can be found");r.destination=new mA}return r}return PM(t,e),t.prototype.lift=function(e){var n=new t(this._config,this.destination);return n.operator=e,n.source=this,n},t.prototype._resetState=function(){this._socket=null,this.source||(this.destination=new mA),this._output=new dA},t.prototype.multiplex=function(e,t,n){var r=this;return new oA(function(i){try{r.next(e())}catch(RD){i.error(RD)}var s=r.subscribe({next:function(e){try{n(e)&&i.next(e)}catch(RD){i.error(RD)}},error:function(e){return i.error(e)},complete:function(){return i.complete()}});return function(){try{r.next(t())}catch(RD){i.error(RD)}s.unsubscribe()}})},t.prototype._connectSocket=function(){var e=this,t=this._config,n=t.WebSocketCtor,r=t.protocol,i=t.url,s=t.binaryType,o=this._output,a=null;try{a=r?new n(i,r):new n(i),this._socket=a,s&&(this._socket.binaryType=s)}catch(c){return void o.error(c)}var l=new $M(function(){e._socket=null,a&&1===a.readyState&&a.close()});a.onopen=function(t){if(!e._socket)return a.close(),void e._resetState();var n=e._config.openObserver;n&&n.next(t);var r=e.destination;e.destination=JM.create(function(t){if(1===a.readyState)try{var n=e._config.serializer;a.send(n(t))}catch(c){e.destination.error(c)}},function(t){var n=e._config.closingObserver;n&&n.next(void 0),t&&t.code?a.close(t.code,t.reason):o.error(new TypeError("WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }")),e._resetState()},function(){var t=e._config.closingObserver;t&&t.next(void 0),a.close(),e._resetState()}),r&&r instanceof mA&&l.add(r.subscribe(e.destination))},a.onerror=function(t){e._resetState(),o.error(t)},a.onclose=function(t){a===e._socket&&e._resetState();var n=e._config.closeObserver;n&&n.next(t),t.wasClean?o.complete():o.error(t)},a.onmessage=function(t){try{var n=e._config.deserializer;o.next(n(t))}catch(RD){o.error(RD)}}},t.prototype._subscribe=function(e){var t=this,n=this.source;return n?n.subscribe(e):(this._socket||this._connectSocket(),this._output.subscribe(e),e.add(function(){var e=t._socket;0===t._output.observers.length&&(!e||1!==e.readyState&&0!==e.readyState||e.close(),t._resetState())}),e)},t.prototype.unsubscribe=function(){var t=this._socket;!t||1!==t.readyState&&0!==t.readyState||t.close(),this._resetState(),e.prototype.unsubscribe.call(this)},t}(pA),tU="auth-required:",nU={count:3,delay:(e,t)=>pO(1e3*t),resetOnSuccess:!0};function rU(e){return"number"==typeof e?{...nU,count:e}:{...nU,...e??{}}}!function(e){e[e.RECEIVE=1]="RECEIVE",e[e.SEND=2]="SEND",e[e.BOTH=3]="BOTH"}(Xj||(Xj={}));var iU=class extends Error{reason;constructor(e){super(e),this.reason=e,this.name="RelayClosedError"}},sU=class extends iU{constructor(e){super(e),this.name="AuthRequiredError"}},oU={"auth-required":sU,unsupported:iU,error:iU,blocked:iU,restricted:iU,"rate-limited":iU,pow:iU,invalid:iU,duplicate:iU,mute:iU};function aU(e){const t=oU[e.split(":")[0]];return t?new t(e):null}var lU={ids:["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],limit:0},cU=class e{url;log=KO.extend("Relay");socket;_ready$=new fA(!0);ready$=this._ready$.asObservable();reconnectTimer;attempts$=new fA(0);connected$=new fA(!1);challenge$=new fA(null);authenticated$;authenticatedAs$;authentication$=new fA(null);authenticationResponse$=new fA(null);notices$=new fA([]);error$=new fA(null);message$;notice$;lastMessageReceivedAt=0;_lastMessageAt$=new fA(0);lastMessageAt$=this._lastMessageAt$.asObservable();status$;information$;_nip11=null;icon$;limitations$;supported$;open$=new dA;close$=new dA;closing$=new dA;reqs$=new fA({});get ready(){return this._ready$.value}get connected(){return this.connected$.value}get challenge(){return this.challenge$.value}get notices(){return this.notices$.value}get authenticated(){return!0===this.authenticationResponse?.ok}get authentication(){return this.authentication$.value}get authenticatedAs(){return this.authenticated?this.authentication?.pubkey??null:null}get authenticationResponse(){return this.authenticationResponse$.value}get information(){return this._nip11}get lastMessageAt(){return this._lastMessageAt$.value}get reqs(){return this.reqs$.value}eventTimeout=1e4;publishTimeout=3e4;keepAlive=3e4;enablePing=!1;pingFrequency=29e3;pingTimeout=2e4;subscriptionReconnect;requestReconnect;publishRetry;onUnresponsive;receivedAuthRequiredForReq=new fA(!1);receivedAuthRequiredForEvent=new fA(!1);authRequiredForRead$;authRequiredForPublish$;resetState(){null!==this.challenge$.value&&this.challenge$.next(null),this.authenticationResponse$.value&&this.authenticationResponse$.next(null),null!==this.authentication$.value&&this.authentication$.next(null),this.notices$.value.length>0&&this.notices$.next([]),this.receivedAuthRequiredForReq.value&&this.receivedAuthRequiredForReq.next(!1),this.receivedAuthRequiredForEvent.value&&this.receivedAuthRequiredForEvent.next(!1)}watchTower;internalSubscriptions=new $M;reconnectSubscription=null;destroy$=new mA(1);constructor(t,n){var r;this.url=t,this.log=this.log.extend(t),void 0!==n?.eventTimeout&&(this.eventTimeout=n.eventTimeout),void 0!==n?.publishTimeout&&(this.publishTimeout=n.publishTimeout),void 0!==n?.keepAlive&&(this.keepAlive=n.keepAlive),void 0!==n?.enablePing&&(this.enablePing=n.enablePing),void 0!==n?.pingFrequency&&(this.pingFrequency=n.pingFrequency),void 0!==n?.pingTimeout&&(this.pingTimeout=n.pingTimeout),void 0!==n?.onUnresponsive&&(this.onUnresponsive=n.onUnresponsive),this.subscriptionReconnect=rU(n?.subscriptionReconnect),this.requestReconnect=rU(n?.requestReconnect),this.publishRetry={...nU,...n?.publishRetry??{}},this.authenticated$=this.authenticationResponse$.pipe(tO(e=>!0===e?.ok)),this.authenticatedAs$=aO([this.authenticated$,this.authentication$]).pipe(tO(([e,t])=>e&&t?t.pubkey:null)),this.reconnectTimer=e.createReconnectTimer(t),this.internalSubscriptions.add(this.open$.subscribe(()=>{this.log("Connected"),this.connected$.next(!0),this.attempts$.next(0),this.error$.next(null),this.resetState()})),this.internalSubscriptions.add(this.close$.subscribe(e=>{this.connected$.value?this.log("Disconnected"):this.log("Failed to connect"),this.connected$.value&&this.connected$.next(!1),this.attempts$.next(this.attempts$.value+1),this.resetState(),e.wasClean||this.startReconnectTimer(e)})),this.socket=(r={url:t,openObserver:this.open$,closeObserver:this.close$,closingObserver:this.closing$,WebSocketCtor:n?.WebSocket},new eU(r)),this.information$=dO(()=>(this.log("Fetching NIP-11 information document"),e.fetchInformationDocument(this.url))).pipe(wO(()=>WA(null)),qO(e=>this._nip11=e),zO(1)),this.limitations$=this.information$.pipe(tO(e=>e?e.limitation:null)),this.supported$=this.information$.pipe(tO(e=>e&&Array.isArray(e.supported_nips)?e.supported_nips.filter(e=>"number"==typeof e):null)),this.icon$=this.information$.pipe(tO(e=>e?.icon||new URL("/favicon.ico",nM(this.url)).toString())),this.authRequiredForRead$=this.receivedAuthRequiredForReq,this.authRequiredForPublish$=this.receivedAuthRequiredForEvent,this.internalSubscriptions.add(this.authRequiredForRead$.pipe(vO(e=>!0===e),kO(1)).subscribe(()=>this.log("Auth required for REQ"))),this.internalSubscriptions.add(this.authRequiredForPublish$.pipe(vO(e=>!0===e),kO(1)).subscribe(()=>this.log("Auth required for EVENT"))),this.status$=aO({url:WA(this.url),connected:this.connected$,authenticated:this.authenticated$,authenticatedAs:this.authenticatedAs$,ready:this._ready$,authRequiredForRead:this.authRequiredForRead$,authRequiredForPublish:this.authRequiredForPublish$,challenge:this.challenge$.asObservable()}).pipe(zO(1));const i=this.socket.pipe(vO(e=>Array.isArray(e)&&"NOTICE"===e[0]),tO(e=>e[1]),NO((e,t)=>[...e,t],[]),qO(e=>this.notices$.next(e))),s=this.socket.pipe(vO(e=>"AUTH"===e[0]),tO(e=>e[1]),qO(e=>{this.log("Received AUTH challenge",e),this.challenge$.next(e)})),o=new dA,a=this.socket.pipe(qO(e=>{const t=Date.now();this.lastMessageReceivedAt=t,this._lastMessageAt$.next(t),o.next(e)}));this.message$=o.asObservable(),this.notice$=this.message$.pipe(vO(e=>Array.isArray(e)&&"NOTICE"===e[0]),tO(e=>e[1]));const l=this.connected$.pipe(UO(e=>e&&this.enablePing?pO(this.pingFrequency,this.pingFrequency).pipe(cO(()=>{if(Date.now()-this.lastMessageReceivedAtArray.isArray(t)&&("EOSE"===t[0]||"CLOSED"===t[0])&&t[1]===e),kO(1),QA({first:this.pingTimeout,with:()=>{const e=Date.now(),t=this.onUnresponsive?.({url:this.url,lastMessageAt:this.lastMessageReceivedAt,now:e,attempts:this.attempts$.value})??"reconnect",n=new Error(`Relay ping timeout after ${this.pingTimeout}ms`);return"reconnect"===t?(this.log("Relay connection has become unresponsive, triggering reconnect"),this.startReconnectTimer(n)):"close"===t?(this.log("Relay connection has become unresponsive, closing connection"),this.error$.next(n),this.socket.complete()):this.log("Relay connection has become unresponsive (ignoring per policy)"),gO}}),IO(()=>this.send(["CLOSE",e])))})):gO),wO(()=>gO));this.watchTower=this.ready$.pipe(UO(e=>e?fO(a,i,s,l).pipe(EO(),wO(e=>(this.startReconnectTimer(e instanceof Error?e:new Error("Connection error")),gO)),FO({resetOnRefCountZero:()=>pO(this.keepAlive).pipe(BO(this.destroy$))})):gO),FO())}startReconnectTimer(e){this.ready&&(this.error$.next(e instanceof Error?e:new Error("Connection error")),this._ready$.next(!1),this.reconnectSubscription?.unsubscribe(),this.reconnectSubscription=this.reconnectTimer(e,this.attempts$.value).pipe(kO(1)).subscribe(()=>{this.reconnectSubscription=null,this._ready$.next(!0)}))}waitForAuth(e,t){return aO([e,this.authenticated$]).pipe(MO(this.watchTower),vO(([e,t])=>!e||t),kO(1),UO(()=>t))}waitForReady(e){return this.ready?e:this.ready$.pipe(vO(e=>e),kO(1),UO(()=>e))}multiplex(e,t,n){return this.socket.multiplex(e,t,n)}send(e){this.socket.next(e)}req(e,t){const n=t?.id??WP(),r=t?.waitForAuth??!0;let i;if("function"==typeof e){const t=e(this);i=(GA(t)?t:fO(WA(t),gO)).pipe(tO(e=>Array.isArray(e)?e:[e]))}else i=(GA(e)?e:fO(WA(e),gO)).pipe(tO(e=>Array.isArray(e)?e:[e]));const s=i.pipe(EO(),LO(!0));let o=!1,a=!1;const l=this.socket.pipe(vO(e=>Array.isArray(e)&&("EVENT"===e[0]||"CLOSED"===e[0]||"EOSE"===e[0])&&e[1]===n),tO(e=>"EVENT"===e[0]&&"object"==typeof e[2]?{type:"EVENT",from:this.url,id:e[1],event:e[2]}:"CLOSED"===e[0]?{type:"CLOSED",from:this.url,id:e[1],reason:e[2]??""}:{type:"EOSE",from:this.url,id:e[1]}),qO(e=>{if("CLOSED"===e.type){o=!0;const t=aU(e.reason);if(t)throw t;a=!0}}),$O(e=>"CLOSED"!==e.type,!0),FO()),c=i.pipe(tO(e=>(o=!1,a=!1,this.socket.next(["REQ",n,...e]),this.reqs$.next({...this.reqs$.value,[n]:e}),{type:"OPEN",id:n,filters:e,from:this.url})),IO(()=>{o||this.socket.next(["CLOSE",n]);const{[n]:e,...t}=this.reqs$.value;this.reqs$.next(t)}),UO(e=>l.pipe(jO(e)))),u=fO(this.watchTower,c).pipe(BO(l.pipe(EO(),LO(!0))),BO(s),qO(e=>{"EVENT"===e.type&&oM(e.event,this.url)}),FO()),h=r?this.waitForAuth(this.authRequiredForRead$,u):u;return dO(()=>this.waitForReady(h)).pipe(OO({delay:e=>e instanceof sU?(this.log("Auth required for REQ"),this.receivedAuthRequiredForReq.next(!0),r?this.authenticated$.pipe(vO(e=>e),kO(1)):HA(()=>e)):HA(()=>e)}),this.customConnectionRetryOperator(t?.reconnect),this.customRepeatOperator(t?.resubscribe,()=>a),FO())}count(e,t=WP()){let n=!1;const r=this.socket.pipe(vO(e=>Array.isArray(e)&&("COUNT"===e[0]||"CLOSED"===e[0])&&e[1]===t),tO(e=>{if("COUNT"===e[0])return e[2];if("CLOSED"===e[0]){n=!0;const t=aU(e[2]??"");if(t)throw t}return null}),$O(e=>null!==e,!0),vO(e=>null!==e),FO()),i=dO(()=>(n=!1,this.socket.next(Array.isArray(e)?["COUNT",t,...e]:["COUNT",t,e]),r)).pipe(IO(()=>{n||this.socket.next(["CLOSE",t])})),s=fO(this.watchTower,i).pipe(BO(r.pipe(EO(),LO(!0))),kO(1),wO(e=>(e instanceof sU&&!this.receivedAuthRequiredForReq.value&&(this.log("Auth required for COUNT"),this.receivedAuthRequiredForReq.next(!0)),HA(()=>e))),QA({first:1e4,with:()=>HA(()=>new Error("COUNT timeout"))}));return this.waitForReady(this.waitForAuth(this.authRequiredForRead$,s)).pipe(FO())}event(e,t="EVENT"){const n=dO(()=>(this.socket.next([t,e]),this.socket.pipe(vO(t=>"OK"===t[0]&&t[1]===e.id),tO(e=>({ok:e[2],message:e[3],from:this.url}))))).pipe(FO()),r=fO(this.watchTower,n).pipe(BO(n.pipe(EO(),LO(!0))),kO(1),qO(({ok:e,message:t})=>{!1===e&&t?.startsWith(tU)&&!this.receivedAuthRequiredForEvent.value&&(this.log("Auth required for publish"),this.receivedAuthRequiredForEvent.next(!0))}),QA({first:this.eventTimeout,with:()=>WA({ok:!1,from:this.url,message:"Timeout"})}));return"AUTH"===t?this.waitForReady(r).pipe(FO()):this.waitForReady(this.waitForAuth(this.authRequiredForPublish$,r)).pipe(FO())}auth(e){return this.authentication$.next(e),ZA(this.event(e,"AUTH").pipe(qO(e=>this.authenticationResponse$.next(e))))}async negentropy(e,t,n,r){if(!1===(await this.getSupported())?.includes(77))throw new Error("Relay does not support NIP-77");const{buildStorageVector:i,buildStorageFromFilter:s,negentropySync:o}=await Ij(async()=>{const{buildStorageVector:e,buildStorageFromFilter:t,negentropySync:n}=await import("./negentropy-YVHJ2Mgy.js");return{buildStorageVector:e,buildStorageFromFilter:t,negentropySync:n}},[]);return o(Array.isArray(e)?i(e):await s(e,t),this.socket,t,n,r)}authenticate(e){if(!this.challenge)throw new Error("Have not received authentication challenge");const t=e.signEvent(function(e,t){return{kind:22242,created_at:Math.floor(Date.now()/1e3),tags:[["relay",e],["challenge",t]],content:""}}(this.url,this.challenge));return ZA((t instanceof Promise?VA(t):WA(t)).pipe(UO(e=>this.auth(e))))}customRetryOperator(e,t){return!1===e||void 0===e?sA:"number"==typeof e?OO({...t,count:e}):!0===e?t?OO(t):OO():OO({...t,...e})}customConnectionRetryOperator(e,t){if(!1===e||void 0===e)return sA;const n="number"==typeof e?{...t,count:e}:!0===e?t??{}:{...t,...e};return OO({...n,delay:(e,t)=>e instanceof iU?HA(()=>e):"number"==typeof n.delay?pO(n.delay):"function"==typeof n.delay?n.delay(e,t):WA(null)})}customRepeatOperator(e,t){if(!1===e||void 0===e)return sA;const n=n=>{if(t&&!t())return SA;if("object"==typeof e){if("number"==typeof e.delay)return pO(e.delay);if("function"==typeof e.delay)return e.delay(n)}return WA(null)};return AO(!0===e?{delay:n}:"number"==typeof e?{count:e,delay:n}:{...e,delay:n})}customTimeoutOperator(e,t){return!1===e?sA:WN(!0===e?t:e??t)}subscription(e,t){return this.req(e,{...t,reconnect:t?.reconnect??this.subscriptionReconnect}).pipe(vO(e=>"EOSE"===e.type||"EVENT"===e.type),tO(e=>"EOSE"===e.type?"EOSE":e.event),FO())}request(e,t){return this.req(e,{...t,reconnect:t?.reconnect??this.requestReconnect}).pipe(t?.complete?Zj(t?.complete):sA,QA({first:t?.timeout??3e4}),$O(e=>"EOSE"!==e.type),vO(e=>"EVENT"===e.type),tO(e=>e.event),FO())}publish(e,t){return ZA(this.event(e).pipe(cO(e=>!1===e.ok&&e.message?.startsWith(tU)?HA(()=>new sU(e.message??"")):WA(e)),this.customRetryOperator(t?.retries??t?.reconnect??!0,this.publishRetry),this.customTimeoutOperator(t?.timeout,this.publishTimeout)))}sync(e,t,n=Xj.RECEIVE){return new oA(r=>{const i=new AbortController;let s=!1;return this.negentropy(e,t,async(t,i)=>{if(n&Xj.SEND&&t.length>0){const n=await(async t=>Array.isArray(e)?e.filter(e=>t.includes(e.id)):e.getByFilters({ids:t}))(t);await Promise.allSettled(n.map(async e=>{const t=await ZA(this.event(e));return t.ok&&oM(e,this.url),t}))}n&Xj.RECEIVE&&i.length>0&&await ZA(this.req({ids:i}).pipe($O(e=>"EOSE"!==e.type),vO(e=>"EVENT"===e.type),tO(e=>e.event),Reflect.has(e,"add")?$N(e):sA,qO(e=>r.next(e))))},{signal:i.signal}).then(()=>{s||r.complete()}).catch(e=>{s||r.error(e)}),()=>{s||(s=!0,i.abort())}}).pipe(FO())}close(){this.destroy$.next(),this.destroy$.complete(),this.reconnectSubscription?.unsubscribe(),this.reconnectSubscription=null,this.internalSubscriptions.unsubscribe(),this.connected$.value&&this.connected$.next(!1),this._ready$.next(!1),this._ready$.complete(),this.socket.unsubscribe()}async getInformation(){return YA(this.information$)}async getLimitations(){return YA(this.limitations$)}async getSupported(){return YA(this.supported$)}static fetchInformationDocument(e){return VA(fetch(nM(e),{headers:{Accept:"application/nostr+json"}}).then(e=>e.json())).pipe(wO(()=>WA(null)),WN(1e4))}static createReconnectTimer(e){return(e,t=0)=>pO(Math.min(1e3*Math.pow(1.5,t),3e5))}static afterOpen(e){return t=>t.pipe(vO(e=>"OPEN"===e.type),UO(()=>t.pipe(e)))}static completeOr(...e){return t=>aO(e.map(e=>t.pipe(e,jO(!1)))).pipe(tO(e=>e.some(e=>!!e)))}static completeAnd(...e){return t=>aO(e.map(e=>t.pipe(e,jO(!1)))).pipe(tO(e=>e.every(e=>!!e)))}static defaultComplete(e,t=1e4){return this.completeOr(()=>pO(e),this.afterOpen(()=>pO(t)))}},uU=class{options;relays$=new fA(new Map);get relays(){return this.relays$.value}status$;ignoreOffline=!1;add$=new dA;remove$=new dA;constructor(e){this.options=e,this.status$=this.relays$.pipe(tO(e=>Array.from(e.values())),UO(e=>0===e.length?WA({}):fO(...e.map(e=>e.status$)).pipe(NO((e,t)=>({...e,[t.url]:t}),{}),jO({}))),zO(1))}relay(e){e=rM(e);let t=this.relays.get(e);return t||(t=new cU(e,this.options),this.relays.set(e,t),this.relays$.next(this.relays),this.add$.next(t),t)}group(e,t=this.ignoreOffline){let n=Array.isArray(e)?e.map(e=>this.relay(e)):e.pipe(tO(e=>e.map(e=>this.relay(e))));return t&&(n=(Array.isArray(n)?WA(n):n).pipe(UO(e=>0===e.length?WA([]):aO(e.map(e=>e.ready$.pipe(vO(e=>e),kO(1),tO(()=>e),jO(null)))).pipe(tO(e=>e.filter(e=>null!==e)))))),new Jj(n)}remove(e,t=!0){let n;if("string"==typeof e){if(n=this.relays.get(e),!n)return}else{if(!Array.from(this.relays.values()).some(t=>t===e))return;n=e}t&&n?.close(),this.relays.delete(n.url),this.relays$.next(this.relays),this.remove$.next(n)}close(){for(const e of[...this.relays.values()])this.remove(e,!0)}req(e,t,n){return this.group(e).req(t,n)}event(e,t){return this.group(e).event(t)}negentropy(e,t,n,r,i){return this.group(e).negentropy(t,n,r,i)}publish(e,t,n){return this.group(e).publish(t,n)}request(e,t,n){return this.group(e).request(t,n)}subscription(e,t,n){return this.group(e).subscription(t,n)}subscriptionMap(e,t){const n=GA(e)?e:WA(e);return this.group(n.pipe(tO(e=>Object.keys(e)))).subscription(e=>n.pipe(tO(t=>t[e.url]),RO(oN)),t)}outboxSubscription(e,t,n){const r=GA(e)?e.pipe(tO(e=>gN(e,t))):gN(e,t);return this.subscriptionMap(r,n)}count(e,t,n){return this.group(e,!1).count(t,n)}sync(e,t,n,r){return this.group(e,!1).sync(t,n,r)}},hU=a({default:()=>dU}),dU=class extends pp{pool=new uU({enablePing:!0});async publish(e,t){if(!e||0===e.length)throw new Error("No relays provided to publish the event.");const n=await this.pool.publish(e,t);if(!n.some(e=>e.ok))throw new Error(`Failed to publish event. Responses: ${JSON.stringify(n)}`);return n}},pU=class{},fU=class extends pU{constructor(e){super(),this.message=e}},gU=class extends pU{},mU=class extends pU{},yU=class extends pU{},vU=class extends pU{},bU=class extends pU{},wU=class extends pU{},_U={invalid_request:class extends pU{},invalid_grant:class extends bU{},unauthorized_client:class extends vU{},access_denied:class extends vU{},unsupported_response_type:class extends vU{},invalid_scope:class extends pU{},server_error:class extends vU{},temporarily_unavailable:class extends vU{},invalid_client:class extends bU{},unsupported_grant_type:class extends bU{},invalid_token:class extends pU{}},xU=e=>{const t=_U[e];return t?new t:new fU(e)},CU="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~",SU=e=>{const t=e.slice(7).replace(/"/g,"").split(",").map(e=>{const[t,n]=e.trim().split("=");return{[t]:n}}).reduce((e,t)=>({...e,...t}),{});return{realm:t.realm,error:t.error,errorDescription:t.error_description,errorUri:t.error_uri}},kU=e=>{let t=btoa(e);return t=t.replace(/\+/g,"-"),t=t.replace(/\//g,"_"),t=t.replace(/=/g,""),t},EU=(e,t)=>{let n=t.split("?");if(n.length<2)return;n=n[1].split("#");const r=n[0].split("&");for(const i of r){const[t,n]=i.split("=");if(t===e)return decodeURIComponent(n)}},RU=e=>Object.entries(e).map(([e,t])=>`${e}=${encodeURIComponent(t)}`).join("&"),TU="WWW-Authenticate",LU=class{constructor(e,t){this.state={},this.config=e,this.storage=t||PU,this.ready=new Promise(e=>this.setReady=e),this.recoverState()}async reset(){this.state={},await this.saveState(),this.authCodeForAccessTokenPromise=void 0,this.refreshTokenForAccessTokenPromise=void 0}async requestAuthorizationCode(e){const{clientId:t,extraAuthorizationParams:n,redirectUrl:r,scopes:i}=this.config,{codeChallenge:s,codeVerifier:o}=await(async()=>{const e=new Uint32Array(96);crypto.getRandomValues(e);const t=kU(Array.from(e).map(e=>CU[e%66]).join("")),n=await crypto.subtle.digest("SHA-256",(new TextEncoder).encode(t)),r=new Uint8Array(n);let i="";const s=r.byteLength;for(let o=0;o{const e=new Uint32Array(32);return crypto.getRandomValues(e),Array.from(e).map(e=>CU[e%66]).join("")})();this.state={...this.state,codeChallenge:s,codeVerifier:o,stateQueryParam:a},await this.saveState();let l=this.config.authorizationUrl+`?response_type=code&client_id=${encodeURIComponent(t)}&redirect_uri=${encodeURIComponent(r)}&state=${a}&code_challenge=${encodeURIComponent(s)}&code_challenge_method=S256`;if(i&&(l+=`&scope=${encodeURIComponent(i.join(" "))}`),n||e){const t={...n,...e};l+=`&${RU(t)}`}location.replace(l)}isReturningFromAuthServer(){return!!EU("code",location.href)}async receiveCode(){await this.ready;const e=EU("error",location.href);if(e)throw xU(e);if(EU("state",location.href)!==this.state.stateQueryParam)throw console.warn('"state" parameter doesn\'t match the one sent! Possible malicious activity.'),new yU;if(this.state.authorizationCode=EU("code",location.href),!this.state.authorizationCode)throw new mU;this.saveState()}async getTokens(e){const{accessToken:t,authorizationCode:n,idToken:r,refreshToken:i,scopes:s}=this.state;if(n)return this.exchangeAuthCodeForAccessToken(e);if(!t)throw new gU;if(this.isAccessTokenExpired()){if(this.config.onAccessTokenExpiry)return this.config.onAccessTokenExpiry();throw new wU}return Promise.resolve({accessToken:t,idToken:r,refreshToken:i,scopes:s})}async exchangeAuthCodeForAccessToken(e){this.authCodeForAccessTokenPromise||(this.authCodeForAccessTokenPromise=this.fetchAccessTokenUsingCode(e));const t=await this.authCodeForAccessTokenPromise;return this.authCodeForAccessTokenPromise=void 0,this.state.authorizationCode=void 0,this.setTokens(t)}async exchangeRefreshTokenForAccessToken(){this.refreshTokenForAccessTokenPromise||(this.refreshTokenForAccessTokenPromise=this.fetchAccessTokenUsingRefreshToken());const e=await this.refreshTokenForAccessTokenPromise;return this.refreshTokenForAccessTokenPromise=void 0,this.setTokens(e)}makeRetryFetchFunction(e){return async(t,...n)=>{const r=await e(t,...n);if(401===r.status){const i=r.headers.get(TU.toLowerCase());if(i&&"invalid_token"===SU(i).error)return await this.exchangeRefreshTokenForAccessToken(),t=await this.requestInterceptor(t),e(t,...n)}return r}}decorateFetchWithInterceptors(e){return async(t,...n)=>{"string"==typeof t&&(t=new Request(t)),t=await this.requestInterceptor(t);const r=await e(t,...n);return this.responseInterceptor(r)}}async requestInterceptor(e){const t=await this.getTokens();return e.headers.set("Authorization",`Bearer ${t.accessToken}`),e}async responseInterceptor(e){if(401!==e.status)return e;const t=e.headers.get(TU.toLowerCase());if(t){const e=SU(t).error;throw"invalid_grant"===e&&this.config.onInvalidGrant&&await this.config.onInvalidGrant(),"invalid_token"===e&&this.config.onInvalidToken&&await this.config.onInvalidToken(),xU(e)}return e}getGrantedScopes(){return this.state.scopes}isAuthorized(){return!!this.state.accessToken}isAccessTokenExpired(){const{accessTokenExpiry:e}=this.state;return Boolean(e&&new Date>=new Date(e))}async fetchAccessTokenUsingCode(e){const{authorizationCode:t,codeVerifier:n=""}=this.state,{clientId:r,redirectUrl:i}=this.config;n?t||console.warn("No authorization grant code is being passed."):console.warn("No code verifier is being sent.");const s=this.config.tokenUrl,o={grant_type:"authorization_code",code:t,redirect_uri:i,client_id:r,code_verifier:n,...e},a=new URLSearchParams(o).toString();return this.makeTokenRequest(s,a)}fetchAccessTokenUsingRefreshToken(){const{extraRefreshParams:e,clientId:t,tokenUrl:n}=this.config,{refreshToken:r}=this.state;r||console.warn("No refresh token is present.");const i=n;let s=`grant_type=refresh_token&refresh_token=${r}&client_id=${t}`;return e&&(s=`${s}&${RU(e)}`),this.makeTokenRequest(i,s)}async makeTokenRequest(e,t){const n=await fetch(e,{method:"POST",body:t,headers:{"Content-Type":"application/x-www-form-urlencoded"}}),r=await n.json();if(!n.ok)throw"invalid_grant"===r.error&&this.config.onInvalidGrant&&await this.config.onInvalidGrant(),xU(r.error);const{access_token:i,expires_in:s,id_token:o,refresh_token:a,scope:l}=r;return{accessToken:i,expiresIn:s,idToken:o,refreshToken:a,scope:l}}async setTokens(e){const{accessToken:t,expiresIn:n,idToken:r,refreshToken:i,scope:s}=e;return this.state.accessToken=t,n&&(this.state.accessTokenExpiry=new Date(Date.now()+1e3*parseInt(n,10)).toString()),r&&(this.state.idToken=r),i&&(this.state.refreshToken=i),s&&(this.state.scopes=s.split(" ")),await this.saveState(),{accessToken:this.state.accessToken,idToken:this.state.idToken,refreshToken:this.state.refreshToken,scopes:s?this.state.scopes:[]}}async recoverState(){this.state=JSON.parse(await this.storage.loadState()||"{}"),this.setReady(),this.config.storeRefreshToken||(this.state.refreshToken=this.refreshToken)}async saveState(){this.refreshToken=this.state.refreshToken;const e={...this.state};this.config.storeRefreshToken||delete e.refreshToken,await this.storage.saveState(JSON.stringify(e))}},IU="oauth2authcodepkce-state",PU={saveState:e=>localStorage.setItem(IU,e),loadState:()=>localStorage.getItem(IU)},MU=a({default:()=>OU}),AU=class{saveState(e){localStorage.setItem("marco:osm_auth_state",e)}loadState(){const e=localStorage.getItem("marco:osm_auth_state");if(!e)return!1;try{return JSON.parse(e),e}catch(t){return console.warn("Failed to parse OSM auth state",t),!1}}},OU=class extends pp{static{dF(this.prototype,"isConnected",[Vr],function(){return!1})}#ve=void fF(this,"isConnected");static{dF(this.prototype,"userDisplayName",[Vr],function(){return null})}#be=void fF(this,"userDisplayName");oauthClient;constructor(){super(...arguments);const e="https://www.openstreetmap.org",t=`${window.location.origin}/oauth/osm/callback`;this.oauthClient=new LU({scopes:["read_prefs","write_api"],authorizationUrl:`${e}/oauth2/authorize`,tokenUrl:`${e}/oauth2/token`,clientId:"jIn8l5mT8FZOGYiIYXG1Yvj_2FZKB9TJ1edZwOJPsRU",redirectUrl:t,storeRefreshToken:!0,onAccessTokenExpiry(){return this.exchangeRefreshTokenForAccessToken()}},new AU),this.restoreSession()}async restoreSession(){try{await this.oauthClient.ready}catch(e){console.warn("oauthClient.ready failed",e)}if(await this.oauthClient.isAuthorized()){this.isConnected=!0;const e=localStorage.getItem("marco:osm_user_display_name");e?this.userDisplayName=e:await this.fetchUserInfo()}}async login(){await this.oauthClient.requestAuthorizationCode()}async handleCallback(){await this.oauthClient.receiveCode(),await this.oauthClient.getTokens(),this.isConnected=!0,await this.fetchUserInfo()}async logout(){await this.oauthClient.reset(),this.isConnected=!1,this.userDisplayName=null,localStorage.removeItem("marco:osm_user_display_name")}async fetchUserInfo(){try{const e=await this.oauthClient.getTokens(),t=await fetch("https://api.openstreetmap.org/api/0.6/user/details.json",{headers:{Authorization:`Bearer ${e.accessToken}`}});if(t.ok){const e=await t.json();console.debug("OSM data:",e);const n=e.user.display_name;this.userDisplayName=n,localStorage.setItem("marco:osm_user_display_name",n)}else console.error("Failed to fetch OSM user info",t.status)}catch(e){console.error("Error fetching OSM user info",e)}}},NU=a({capitalize:()=>DU,formatRelativeDate:()=>zU,humanizeOsmTag:()=>FU});function FU(e){return"string"==typeof e&&e?e.replace(/[_-]/g," ").replace(/\w\S*/g,e=>e.replace(/^\w/,e=>e.toUpperCase())):""}function DU(e){return"string"==typeof e&&e?e.charAt(0).toUpperCase()+e.slice(1):""}function zU(e){if(!e)return"";const t=new Date(1e3*e),n=new Date-t,r=Math.floor(n/6e4),i=Math.floor(r/60),s=Math.floor(i/24);return r<1?"just now":r<60?`${r} min ago`:i<24?`${i} hr ago`:s<7?`${s} day${1===s?"":"s"} ago`:t.toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}var jU=a({getLocalizedName:()=>UU,getPlaceType:()=>$U});function UU(e,t="Untitled Place"){if(!e)return t;const n=navigator.languages||[navigator.language||"en"];for(const r of n){if(!r)continue;const t=`name:${r.split("-")[0]}`;if(e[t])return e[t]}return e.name?e.name:e["name:en"]?e["name:en"]:t}var BU=["amenity","shop","tourism","historic","leisure","office","craft","building","landuse","public_transport","highway","aeroway","waterway","natural","place","border_type","admin_title"];function $U(e){if(!e)return null;let t=null;for(const n of BU){const r=e[n];if(r){if("yes"===r){t||(t=n);continue}return FU(r)}}return t?FU(t):null}var qU=a({POI_CATEGORIES:()=>VU,getCategoryById:()=>WU}),VU=[{id:"restaurants",label:"Restaurants",icon:"fork-and-knife",filter:['["amenity"~"^(restaurant|fast_food|food_court|pub|cafe)$"]["cuisine"!~"coffee"]'],types:["node","way"]},{id:"coffee",label:"Coffee",icon:"cup-and-saucer",filter:['["amenity"~"^(cafe|ice_cream)$"]','["shop"~"^(coffee|tea)$"]','["cuisine"~"coffee_shop"]'],types:["node","way"]},{id:"groceries",label:"Groceries",icon:"shopping-basket",filter:['["shop"~"^(supermarket|convenience|grocery|greengrocer|bakery|butcher|deli|farm|seafood)$"]'],types:["node","way"]},{id:"things-to-do",label:"Things to do",icon:"feather-camera",filter:['["tourism"~"^(museum|gallery|attraction|viewpoint|zoo|theme_park|aquarium|artwork|information)$"]','["amenity"~"^(cinema|theatre|arts_centre|planetarium)$"]','["leisure"~"^(sports_centre|stadium|water_park)$"]','["historic"]','["shop"="flea_market"]'],types:["node","way","relation"]},{id:"accommodation",label:"Hotels",icon:"person-sleeping-in-bed",filter:['["tourism"~"^(hotel|hostel|motel|chalet|guest_house)$"]'],types:["node","way","relation"]}];function WU(e){return VU.find(t=>t.id===e)}var HU,GU=a({default:()=>KU}),KU=class e extends pp{static{dF(this.prototype,"settings",[dp])}#D=void fF(this,"settings");static{dF(this.prototype,"localForage",[dp])}#$=void fF(this,"localForage");controller=null;cachedResults=null;lastQueryKey=null;cachedPlaces=new Map;static STORE_NAME="osm-cache";static CACHE_TTL_MS=6048e5;static IN_MEMORY_TTL_MS=1e4;_buildCacheKey(e,t){return`${e}:${t}`}async _readLocalCache(t,n){const r=this._buildCacheKey(t,n);try{const t=await this.localForage.get(e.STORE_NAME,r);if(!t)return null;const n="string"==typeof t?JSON.parse(t):t;return!n||"number"!=typeof n.timestamp||Date.now()-n.timestamp>e.CACHE_TTL_MS?(await this.localForage.remove(e.STORE_NAME,r),null):n.data}catch{try{await this.localForage.remove(e.STORE_NAME,r)}catch{}return null}}async _writeLocalCache(t,n,r){if(!r)return;const i=this._buildCacheKey(t,n);try{await this.localForage.set(e.STORE_NAME,i,{data:r,timestamp:Date.now()})}catch(s){console.debug("[osm] Failed to write IndexedDB cache entry",s)}}async getCachedOsmObject(t,n){if(!t||!n)return null;const r=this._buildCacheKey(t,n),i=this.cachedPlaces.get(r);return i&&Date.now()-i.timestamp{this.cachedPlaces.delete(t)},e.IN_MEMORY_TTL_MS),this._writeLocalCache(n,r,i)):console.debug(`[osm] Skipping cache write for ${t}: data has no title`)}cancelAll(){this.controller&&(this.controller.abort(),this.controller=null)}async getNearbyPois(e,t,n=50){const r=`${e},${t},${n}`;if(this.lastQueryKey===r&&this.cachedResults)return console.debug("Returning cached Overpass results for:",r),this.cachedResults;this.controller&&this.controller.abort(),this.controller=new AbortController;const i=this.controller.signal,s=[`~"^(${["amenity","shop","tourism","historic","leisure","office","craft","building","landuse","public_transport","aeroway"].join("|")})$"~".*"`],o=Object.entries({public_transport:["stop_area","platform"]}).map(([e,t])=>`["${e}"!~"^(${t.join("|")})$"]`).join(""),a=`\n[out:json][timeout:25];\n(\n node(around:${n},${e},${t})\n [${s}]${o}[~"^name"~"."];\n way(around:${n},${e},${t})\n [${s}]${o}[~"^name"~"."];\n relation(around:${n},${e},${t})\n [${s}]${o}[~"^name"~"."];\n);\nout center;\n `.trim(),l=`${this.settings.overpassApi}?data=${encodeURIComponent(a)}`;try{const e=await this.fetchWithRetry(l,{signal:i});if(!e.ok)throw new Error("Overpass request failed");const t=(await e.json()).elements.map(this.normalizePoi);return this.lastQueryKey=r,this.cachedResults=t,t}catch(c){if("AbortError"===c.name)return console.debug("Overpass request aborted"),[];throw c}}async getCategoryPois(e,t,n,r){const i=WU(t);if(!i||!e)return[];const s=n&&r?`cat:${t}:${n}:${r}`:null;if(s&&this.lastQueryKey===s&&this.cachedResults)return console.debug("Returning cached category results for:",s),this.cachedResults;this.controller&&this.controller.abort(),this.controller=new AbortController;const o=this.controller.signal,{minLat:a,minLon:l,maxLat:c,maxLon:u}=e,h=[],d=i.types||["node","way","relation"];i.filter.forEach(e=>{d.forEach(t=>{h.push(`${t}${e}[~"^name"~"."];`)})});const p=`\n[out:json][timeout:25][bbox:${a},${l},${c},${u}];\n(\n ${h.join("\n ")}\n);\nout center;\n `.trim(),f=`${this.settings.overpassApi}?data=${encodeURIComponent(p)}`;try{const e=await this.fetchWithRetry(f,{signal:o});if(!e.ok)throw new Error("Overpass request failed");const t=(await e.json()).elements.map(this.normalizePoi);return s&&(this.lastQueryKey=s,this.cachedResults=t),t}catch(g){if("AbortError"===g.name)return console.debug("Category search aborted"),[];throw console.error("Category search failed",g),g}}normalizePoi(e){const t=e.tags||{},n=$U(t)||"Point of Interest";return{title:UU(t),lat:e.lat||e.center?.lat,lon:e.lon||e.center?.lon,url:t.website,osmId:String(e.id),osmType:e.type,osmTags:t,description:t.description,source:"osm",type:n}}async fetchWithRetry(e,t={},n=3){try{const r=await fetch(e,t);return!r.ok&&n>0&&[502,503,504,429].includes(r.status)?(console.warn(`Overpass request failed with ${r.status}. Retrying... (${n} left)`),await new Promise(e=>setTimeout(e,1e3)),this.fetchWithRetry(e,t,n-1)):r}catch(r){if(n>0&&"AbortError"!==r.name)return console.debug(`Retrying Overpass request... (${n} left)`),await new Promise(e=>setTimeout(e,1e3)),this.fetchWithRetry(e,t,n-1);throw r}}async getPoiById(e,t=null){let n;n="node"===t?`[out:json][timeout:25];node(${e});out center;`:"way"===t?`[out:json][timeout:25];way(${e});out center;`:`\n[out:json][timeout:25];\n(\n node(${e});\n way(${e});\n);\nout center;\n `.trim();const r=`${this.settings.overpassApi}?data=${encodeURIComponent(n)}`,i=await this.fetchWithRetry(r);if(!i.ok)throw new Error("Overpass request failed");const s=await i.json();return s.elements[0]?this.normalizePoi(s.elements[0]):null}async fetchOsmObject(t,n,{forceFresh:r=!1}={}){if(!t||!n)return null;const i=this._buildCacheKey(n,t);if(r)return this._fetchAndCacheOsmObject(t,n,i);const s=this.cachedPlaces.get(i);if(s&&Date.now()-s.timestamp{console.debug("[osm] Background refresh failed for",i,e)}),o):this._fetchAndCacheOsmObject(t,n,i)}async _refreshOsmObject(e,t,n){const r=await this._fetchOsmObjectFromApi(e,t);return r&&this._storeInMemoryAndLocalStorage(n,t,e,r),r}async _fetchAndCacheOsmObject(e,t,n){const r=await this._fetchOsmObjectFromApi(e,t);return r&&this._storeInMemoryAndLocalStorage(n,t,e,r),r}async _fetchOsmObjectFromApi(e,t){let n;if("node"===t)n=`https://www.openstreetmap.org/api/0.6/node/${e}.json`;else if("way"===t)n=`https://www.openstreetmap.org/api/0.6/way/${e}/full.json`;else{if("relation"!==t)return console.error("Unknown OSM type:",t),null;n=`https://www.openstreetmap.org/api/0.6/relation/${e}/full.json`}try{const r=await this.fetchWithRetry(n);if(!r.ok){if(410===r.status)return console.warn("OSM object has been deleted"),null;throw new Error(`OSM API request failed: ${r.status}`)}const i=await r.json();return this.normalizeOsmApiData(i.elements,e,t)}catch(r){return console.error("Failed to fetch OSM object:",r),null}}async fetchOsmObjectsBatch(e){const t=new Map;if(!e||0===e.length)return t;const n=[];for(const{osmType:s,osmId:o}of e){if(!s||!o)continue;const e=this._buildCacheKey(s,o),r=await this.getCachedOsmObject(s,o);r?t.set(e,r):n.push({osmType:s,osmId:o,cacheKey:e})}if(0===n.length)return t;const r=new Map;for(const s of n)r.has(s.osmType)||r.set(s.osmType,[]),r.get(s.osmType).push(s);const i=[];for(const[s,o]of r)i.push(this._fetchOsmObjectsByType(s,o,t));return await Promise.allSettled(i),t}async _fetchOsmObjectsByType(e,t,n){for(let i=0;ie.osmId).join(","),a="way"===e?"ways":e+"s",l=`https://www.openstreetmap.org/api/0.6/${a}.json?${a}=${o}`;try{const t=await this.fetchWithRetry(l);if(!t.ok){console.warn(`[osm] Batch fetch failed for ${e} (${t.status})`,o);continue}const r=await t.json();for(const i of s){const t=this.normalizeOsmApiData(r.elements,i.osmId,e);t&&n.set(i.cacheKey,t)}}catch(r){console.error(`[osm] Batch fetch error for ${e}:`,r)}}}normalizeOsmApiData(e,t,n){if(!e||0===e.length)return null;let r=e.find(e=>String(e.id)===String(t)&&e.type===n);if(!r)return null;let i=r;if("relation"===n&&r.members){const t=r.members.find(e=>"label"===e.role&&"node"===e.type),n=r.members.find(e=>"admin_centre"===e.role&&"node"===e.type),s=t||n;if(s){const t=e.find(e=>String(e.id)===String(s.ref)&&"node"===e.type);t&&(i=t)}}let s=i.lat,o=i.lon,a=null,l=null;if("way"===n&&r.nodes){const t=new Map;e.forEach(e=>{"node"===e.type&&t.set(e.id,[e.lon,e.lat])});const n=r.nodes.map(e=>t.get(e)).filter(Boolean);if(n.length>0){if(i===r){const e=n.reduce((e,t)=>e+t[1],0),t=n.reduce((e,t)=>e+t[0],0);s=e/n.length,o=t/n.length}const e=n.map(e=>e[1]),t=n.map(e=>e[0]);if(a={minLat:Math.min(...e),maxLat:Math.max(...e),minLon:Math.min(...t),maxLon:Math.max(...t)},n.length>1){const e=n[0],t=n[n.length-1];l=e[0]===t[0]&&e[1]===t[1]?{type:"Polygon",coordinates:[n]}:{type:"LineString",coordinates:n}}}}else if("relation"===n&&r.members){const t=[],n=new Map;e.forEach(e=>{"node"===e.type&&n.set(e.id,e)});const c=[];if(r.members.forEach(r=>{if("node"===r.type){const e=n.get(r.ref);e&&t.push(e)}else if("way"===r.type){const i=e.find(e=>"way"===e.type&&e.id===r.ref);if(i&&i.nodes){const e=[];i.nodes.forEach(r=>{const i=n.get(r);i&&(t.push(i),e.push([i.lon,i.lat]))}),e.length>1&&c.push(e)}}}),t.length>0){if(i===r){const e=t.reduce((e,t)=>e+t.lat,0),n=t.reduce((e,t)=>e+t.lon,0);s=e/t.length,o=n/t.length}const e=t.map(e=>e.lat),n=t.map(e=>e.lon);a={minLat:Math.min(...e),maxLat:Math.max(...e),minLon:Math.min(...n),maxLon:Math.max(...n)}}c.length>0&&(l={type:"MultiLineString",coordinates:c})}const c=i.tags||{},u=$U(c)||"Point of Interest";return{title:UU(c),lat:s,lon:o,bbox:a,geojson:l,url:c.website,osmId:String(i.id),osmType:i.type,osmTags:c,description:c.description,source:"osm",type:u}}},ZU=a({default:()=>YU}),YU=class extends pp{static{dF(this.prototype,"settings",[dp])}#D=void fF(this,"settings");controller=null;cancelAll(){this.controller&&(this.controller.abort(),this.controller=null)}get baseUrl(){return this.settings.photonApi}async search(e,t,n,r=10){if(!e||e.length<2)return[];this.controller&&this.controller.abort(),this.controller=new AbortController;const i=this.controller.signal,s=new URLSearchParams({q:e,limit:String(r)});t&&n&&(s.append("lat",parseFloat(t).toFixed(4)),s.append("lon",parseFloat(n).toFixed(4)));const o=`${this.baseUrl}?${s.toString()}`;try{const e=await this.fetchWithRetry(o,{signal:i});if(!e.ok)throw new Error(`Photon request failed with status ${e.status}`);const t=await e.json();return t.features?t.features.map(e=>this.normalizeFeature(e)):[]}catch(a){return"AbortError"===a.name||console.error("Photon search error:",a),[]}}normalizeFeature(e){const t=e.properties||{},n=(e.geometry||{}).coordinates||[],r=n[0],i=n[1],s=[];t.street&&s.push(t.housenumber?`${t.street} ${t.housenumber}`:t.street),t.city&&t.city!==t.name&&s.push(t.city),t.state&&t.state!==t.city&&s.push(t.state),t.country&&s.push(t.country);const o=s.join(", "),a=t.name||o||"Unknown Place",l={...t};t.osm_key&&t.osm_value&&(l[t.osm_key]=t.osm_value);const c=$U(l)||FU(t.osm_value);return{title:a,lat:i,lon:r,osmId:t.osm_id,osmType:{N:"node",W:"way",R:"relation"}[t.osm_type]||t.osm_type,osmTags:l,description:t.name?o:s.slice(1).join(", "),source:"photon",type:c}}async fetchWithRetry(e,t={},n=3){try{const r=await fetch(e,t);return!r.ok&&n>0&&[502,503,504,429].includes(r.status)?(console.warn(`Photon request failed with ${r.status}. Retrying... (${n} left)`),await new Promise(e=>setTimeout(e,1e3)),this.fetchWithRetry(e,t,n-1)):r}catch(r){if(n>0&&"AbortError"!==r.name)return console.debug(`Retrying Photon request... (${n} left)`,r),await new Promise(e=>setTimeout(e,1e3)),this.fetchWithRetry(e,t,n-1);throw r}}},XU=a({default:()=>QU}),JU={overpassApi:"https://overpass-api.de/api/interpreter",mapKinetic:!0,photonApi:"https://photon.komoot.io/api/",showQuickSearchButtons:!0,nostrPhotoFallbackUploads:!1,nostrReadRelays:null,nostrWriteRelays:null,nostrReadRelayExclusions:null,nostrWriteRelayExclusions:null,experimentalEnablePhotoDeletion:!1},QU=class extends pp{static{dF(this.prototype,"overpassApi",[Vr],function(){return JU.overpassApi})}#we=void fF(this,"overpassApi");static{dF(this.prototype,"mapKinetic",[Vr],function(){return JU.mapKinetic})}#_e=void fF(this,"mapKinetic");static{dF(this.prototype,"photonApi",[Vr],function(){return JU.photonApi})}#xe=void fF(this,"photonApi");static{dF(this.prototype,"showQuickSearchButtons",[Vr],function(){return JU.showQuickSearchButtons})}#Ce=void fF(this,"showQuickSearchButtons");static{dF(this.prototype,"nostrPhotoFallbackUploads",[Vr],function(){return JU.nostrPhotoFallbackUploads})}#Se=void fF(this,"nostrPhotoFallbackUploads");static{dF(this.prototype,"nostrReadRelays",[Vr],function(){return JU.nostrReadRelays})}#ke=void fF(this,"nostrReadRelays");static{dF(this.prototype,"nostrWriteRelays",[Vr],function(){return JU.nostrWriteRelays})}#Ee=void fF(this,"nostrWriteRelays");static{dF(this.prototype,"nostrReadRelayExclusions",[Vr],function(){return JU.nostrReadRelayExclusions})}#Re=void fF(this,"nostrReadRelayExclusions");static{dF(this.prototype,"nostrWriteRelayExclusions",[Vr],function(){return JU.nostrWriteRelayExclusions})}#Te=void fF(this,"nostrWriteRelayExclusions");static{dF(this.prototype,"experimentalEnablePhotoDeletion",[Vr],function(){return JU.experimentalEnablePhotoDeletion})}#Le=void fF(this,"experimentalEnablePhotoDeletion");overpassApis=[{name:"overpass-api.de (DE)",url:"https://overpass-api.de/api/interpreter"},{name:"private.coffee (AT)",url:"https://overpass.private.coffee/api/interpreter"}];photonApis=[{name:"photon.komoot.io",url:"https://photon.komoot.io/api/"}];constructor(){super(...arguments),this.loadSettings()}loadSettings(){let e={};const t=localStorage.getItem("marco:settings");if(t)try{e=JSON.parse(t)}catch(r){console.error("Failed to parse settings from localStorage",r)}else{const t=localStorage.getItem("marco:overpass-api");t&&(e.overpassApi=t);const n=localStorage.getItem("marco:map-kinetic");null!==n&&(e.mapKinetic="true"===n);const r=localStorage.getItem("marco:show-quick-search");null!==r&&(e.showQuickSearchButtons="true"===r);const i=localStorage.getItem("marco:nostr-photo-fallback-uploads");null!==i&&(e.nostrPhotoFallbackUploads="true"===i);const s=localStorage.getItem("marco:photon-api");s&&(e.photonApi=s)}const n={...JU,...e};this.overpassApis.some(e=>e.url===n.overpassApi)||(n.overpassApi=JU.overpassApi),this.overpassApi=n.overpassApi,this.mapKinetic=n.mapKinetic,this.photonApi=n.photonApi,this.showQuickSearchButtons=n.showQuickSearchButtons,this.nostrPhotoFallbackUploads=n.nostrPhotoFallbackUploads,this.nostrReadRelays=n.nostrReadRelays,this.nostrWriteRelays=n.nostrWriteRelays,this.nostrReadRelayExclusions=n.nostrReadRelayExclusions,this.nostrWriteRelayExclusions=n.nostrWriteRelayExclusions,this.experimentalEnablePhotoDeletion=n.experimentalEnablePhotoDeletion,this.saveSettings()}saveSettings(){const e={overpassApi:this.overpassApi,mapKinetic:this.mapKinetic,photonApi:this.photonApi,showQuickSearchButtons:this.showQuickSearchButtons,nostrPhotoFallbackUploads:this.nostrPhotoFallbackUploads,nostrReadRelays:this.nostrReadRelays,nostrWriteRelays:this.nostrWriteRelays,nostrReadRelayExclusions:this.nostrReadRelayExclusions,nostrWriteRelayExclusions:this.nostrWriteRelayExclusions,experimentalEnablePhotoDeletion:this.experimentalEnablePhotoDeletion};localStorage.setItem("marco:settings",JSON.stringify(e))}update(e,t){e in JU&&(this[e]=t,this.saveSettings())}},eB=o((e,t)=>{var n,r;n=e,r=function(){return function(){var e={548:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.Access=void 0;class n{constructor(e){this.rs=e,this.reset(!1)}get scopes(){return Object.keys(this.scopeModeMap).map(e=>({name:e,mode:this.scopeModeMap[e]}))}get scopeParameter(){return this.scopes.map(e=>`${this._scopeNameForParameter(e)}:${e.mode}`).join(" ")}claim(e,t){if("string"!=typeof e||-1!==e.indexOf("/")||0===e.length)throw new Error("Scope should be a non-empty string without forward slashes");if("string"!=typeof t||!t.match(/^rw?$/))throw new Error("Mode should be either 'r' or 'rw'");this._adjustRootPaths(e),this.scopeModeMap[e]=t,this._notifyChange()}get(e){return this.scopeModeMap[e]}remove(e){const t={};for(const n in this.scopeModeMap)t[n]=this.scopeModeMap[n];this.reset(!1),delete t[e];for(const n in t)this._adjustRootPaths(n),this.scopeModeMap[n]=t[n];this._notifyChange()}checkPermission(e,t){const n=this.get(e);return n&&("r"===t||"rw"===n)}checkPathPermission(e,t){if(this.checkPermission("*",t))return!0;const n=this._getModuleName(e);return!!this.checkPermission(n,t)}reset(e=!0){this.rootPaths=[],this.scopeModeMap={},e&&this._notifyChange()}_getModuleName(e){if("/"!==e[0])throw new Error("Path should start with a slash");const t=e.replace(/^\/public/,"").match(/^\/([^/]*)\//);return t?t[1]:"*"}_adjustRootPaths(e){"*"in this.scopeModeMap||"*"===e?this.rootPaths=["/"]:e in this.scopeModeMap||(this.rootPaths.push("/"+e+"/"),this.rootPaths.push("/public/"+e+"/"))}_scopeNameForParameter(e){if("*"===e.name&&this.storageType){if("2012.04"===this.storageType)return"";if(this.storageType.match(/remotestorage-0[01]/))return"root"}return e.name}setStorageType(e){this.storageType=e}_notifyChange(){this.rs&&"function"==typeof this.rs._checkScopeChange&&this.rs._checkScopeChange()}static _rs_init(){}}t.Access=n,t.default=n},275:function(e,t,n){var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,s){function o(e){try{l(r.next(e))}catch(e){s(e)}}function a(e){try{l(r.throw(e))}catch(e){s(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,a)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Authorize=void 0;const s=i(n(28)),o=i(n(334)),a=n(746),l=i(n(503)),c=n(368);let u;function h(e){const t=e||d.getLocation().href,n={};for(const[s,o]of new URL(t).searchParams)n[s]=o;const r=t.indexOf("#");if(-1===r)return n;const i=t.substring(r+1);return i.includes("=")?i.split("&").reduce(function(e,t){const n=t.split("=");if("state"===n[0]&&n[1].match(/rsDiscovery/)){let t=decodeURIComponent(n[1]);const r=t.substr(t.indexOf("rsDiscovery=")).split("&")[0].split("=")[1];e.rsDiscovery=JSON.parse(atob(r)),t=t.replace(new RegExp("&?rsDiscovery="+r),""),t.length>0&&(e.state=t)}else e[decodeURIComponent(n[0])]=decodeURIComponent(n[1]);return e},n):n}class d{static authorize(e,t){if((0,o.default)("[Authorize] authURL = ",t.authURL,"scope = ",t.scope,"redirectUri = ",t.redirectUri,"clientId = ",t.clientId,"response_type =",t.response_type),!t.scope)throw new Error("Cannot authorize due to undefined or empty scope; did you forget to access.claim()?");if("function"==typeof e._rememberPendingScope&&e._rememberPendingScope(t.scope),!(0,a.localStorageAvailable)()&&"remotestorage"===e.backend){t.redirectUri+=t.redirectUri.indexOf("#")>0?"&":"#";const n={userAddress:e.remote.userAddress,href:e.remote.href,storageApi:e.remote.storageApi,properties:e.remote.properties};t.redirectUri+="rsDiscovery="+(0,a.toBase64)(JSON.stringify(n))}const n=function(e){const t=new URL(e.redirectUri);e.state||(e.state=t.hash?t.hash.substring(1):""),e.response_type||(e.response_type="token");const n=new URL(e.authURL);n.searchParams.set("redirect_uri",e.redirectUri.replace(/#.*$/,"")),n.searchParams.set("scope",e.scope),n.searchParams.set("client_id",e.clientId);for(const r of["state","response_type","code_challenge","code_challenge_method","token_access_type"]){const t=e[r];t&&n.searchParams.set(r,t)}return n.href}(t);a.globalContext.cordova&&(d.getLocation().href.startsWith("file:")||"string"==typeof s.default.cordovaRedirectUri&&t.redirectUri===s.default.cordovaRedirectUri)?d.openWindow(n,t.redirectUri,"location=yes,clearsessioncache=yes,clearcache=yes").then(n=>{e.remote.configure({token:n.access_token}),"function"==typeof e._completeAuthorization&&e._completeAuthorization(n.scope||t.scope)}):d.setLocation(n)}static refreshAccessToken(e,t,n){return r(this,void 0,void 0,function*(){var e,r,i;yield t.configure({token:null,tokenType:null});const s=new URLSearchParams({grant_type:"refresh_token",client_id:t.clientId,refresh_token:n}),a=yield(0,c.requestWithTimeout)("POST",t.TOKEN_URL,{headers:{"Content-Type":"application/x-www-form-urlencoded"},body:s.toString(),responseType:"json"});if(200!==(null==a?void 0:a.status))throw yield t.configure({refreshToken:null}),new l.default("refresh token rejected:"+JSON.stringify(a.response));{(0,o.default)(`[Authorize] access token good for ${null===(e=null==a?void 0:a.response)||void 0===e?void 0:e.expires_in} seconds`);const n={token:null===(r=null==a?void 0:a.response)||void 0===r?void 0:r.access_token,tokenType:null===(i=null==a?void 0:a.response)||void 0===i?void 0:i.token_type};if(!n.token)throw new Error(`no access_token in "successful" refresh: ${a.response}`);yield t.configure(n)}})}static setLocation(e){if("string"==typeof e)document.location.href=e;else{if("object"!=typeof e)throw"Invalid location "+e;document.location.href=e.href}}static _rs_supported(){return"undefined"!=typeof document}static _rs_cleanup(e){e.removeEventListener("features-loaded",u)}}t.Authorize=d,d.IMPLIED_FAKE_TOKEN=!1,d.getLocation=function(){return document.location},d.openWindow=function(e,t,n){return new Promise((r,i)=>{const s=open(e,"_blank",n);function o(){i("Authorization was canceled")}s&&!s.closed?(s.addEventListener("loadstart",function(e){if(0!==e.url.indexOf(t))return;s.removeEventListener("exit",o),s.close();const n=h(e.url);n?r(n):i("Authorization error")}),s.addEventListener("exit",o)):i("Authorization popup was blocked")})},d._rs_init=function(e){const t=h(),n=function(e){return"string"==typeof e.access_token||"string"==typeof e.code||"string"==typeof e.error||"string"==typeof e.remotestorage||"object"==typeof e.rsDiscovery}(t);let i;n&&(i=d.getLocation(),i.hash=""),u=function(){let s=!1;if(n){if(t.error)throw"function"==typeof e._forgetPendingScope&&e._forgetPendingScope(),"access_denied"===t.error?new l.default("Authorization failed: access denied",{code:"access_denied"}):new l.default(`Authorization failed: ${t.error}`);t.rsDiscovery&&e.remote.configure(t.rsDiscovery),t.access_token&&(e.remote.configure({token:t.access_token}),"function"==typeof e._completeAuthorization&&e._completeAuthorization(t.scope),s=!0),t.remotestorage&&(e.connect(t.remotestorage),s=!0),t.state&&(i=d.getLocation(),d.setLocation(i.href.split("#")[0]+"#"+t.state)),t.code&&(function(t){r(this,void 0,void 0,function*(){var n,r,s,a,l;const u=sessionStorage.getItem("remotestorage:codeVerifier");if(!u)return void(0,o.default)("[Authorize] Ignoring OAuth code parameter, because no PKCE code verifier found in sessionStorage");i=d.getLocation();let h=i.origin;"/"!==i.pathname&&(h+=i.pathname);const p=new URLSearchParams({code:t,grant_type:"authorization_code",client_id:e.remote.clientId,redirect_uri:h,code_verifier:u}),f=yield(0,c.requestWithTimeout)("POST",e.remote.TOKEN_URL,{headers:{"Content-Type":"application/x-www-form-urlencoded"},body:p.toString(),responseType:"json"});switch(f.status){case 200:{(0,o.default)(`[Authorize] access token good for ${null===(n=null==f?void 0:f.response)||void 0===n?void 0:n.expires_in} seconds`);const t={token:null===(r=null==f?void 0:f.response)||void 0===r?void 0:r.access_token,refreshToken:null===(s=null==f?void 0:f.response)||void 0===s?void 0:s.refresh_token,tokenType:null===(a=null==f?void 0:f.response)||void 0===a?void 0:a.token_type};t.token?(e.remote.configure(t),"function"==typeof e._completeAuthorization&&e._completeAuthorization(null===(l=null==f?void 0:f.response)||void 0===l?void 0:l.scope)):e._emit("error",new Error(`no access_token in "successful" response: ${f.response}`)),sessionStorage.removeItem("remotestorage:codeVerifier");break}default:"function"==typeof e._forgetPendingScope&&e._forgetPendingScope(),e._emit("error",new Error(`${f.statusText}: ${f.response}`))}})}(t.code),s=!0),s||e.remote.stopWaitingForToken()}else e.remote.stopWaitingForToken()},e.on("features-loaded",u)},t.default=d},424:function(e,t,n){var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,s){function o(e){try{l(r.next(e))}catch(e){s(e)}}function a(e){try{l(r.throw(e))}catch(e){s(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,a)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.BaseClient=void 0;const s=i(n(439)),o=i(n(613)),a=i(n(491)),l=i(n(93)),c=i(n(28)),u=n(746);class h{constructor(e,t){if(this.schemas={configurable:!0,get(){return h.Types.inScope(this.moduleName)}},"/"!==t[t.length-1])throw"Not a folder: "+t;"/"===t&&(this.makePath=e=>("/"===e[0]?"":"/")+e),this.storage=e,this.base=t,this.moduleName=function(e){const t=e.split("/");return e.length>2?t[1]:"root"}(this.base),this.addEvents(["change"]),this.on=this.on.bind(this),e.onChange(this.base,this._fireChange.bind(this))}scope(e){return new h(this.storage,this.makePath(e))}getListing(e,t){return r(this,void 0,void 0,function*(){if("string"!=typeof e)e="";else if(e.length>0&&!(0,u.isFolder)(e))return Promise.reject("Not a folder: "+e);return this.storage.get(this.makePath(e),t).then(e=>404===e.statusCode?{}:e.body)})}getAll(e,t){return r(this,void 0,void 0,function*(){if("string"!=typeof e)e="";else if(e.length>0&&!(0,u.isFolder)(e))return Promise.reject("Not a folder: "+e);return this.storage.get(this.makePath(e),t).then(n=>{if(404===n.statusCode)return{};if("object"==typeof n.body){const r=Object.keys(n.body);if(0===r.length)return{};const i=r.map(r=>this.storage.get(this.makePath(e+r),t).then(e=>{if("string"==typeof e.body)try{e.body=JSON.parse(e.body)}catch(e){}"object"==typeof e.body&&(n.body[r]=e.body)}));return Promise.all(i).then(()=>n.body)}})})}getFile(e,t){return r(this,void 0,void 0,function*(){return"string"!=typeof e?Promise.reject("Argument 'path' of baseClient.getFile must be a string"):this.storage.get(this.makePath(e),t).then(e=>({data:e.body,contentType:e.contentType,revision:e.revision}))})}storeFile(e,t,n){return r(this,void 0,void 0,function*(){return"string"!=typeof e?Promise.reject("Argument 'contentType' of baseClient.storeFile must be a string"):"string"!=typeof t?Promise.reject("Argument 'path' of baseClient.storeFile must be a string"):"string"!=typeof n&&"object"!=typeof n?Promise.reject("Argument 'body' of baseClient.storeFile must be a string, ArrayBuffer, or ArrayBufferView"):(this.storage.access.checkPathPermission(this.makePath(t),"rw")||console.warn("WARNING: Editing a document to which only read access ('r') was claimed"),this.storage.put(this.makePath(t),n,e).then(e=>200===e.statusCode||201===e.statusCode?e.revision:Promise.reject("Request (PUT "+this.makePath(t)+") failed with status: "+e.statusCode)))})}getObject(e,t){return r(this,void 0,void 0,function*(){return"string"!=typeof e?Promise.reject("Argument 'path' of baseClient.getObject must be a string"):this.storage.get(this.makePath(e),t).then(t=>{if("object"==typeof t.body)return t.body;if("string"==typeof t.body)try{return JSON.parse(t.body)}catch(t){throw new Error("Not valid JSON: "+this.makePath(e))}else if(void 0!==t.body&&200===t.statusCode)return Promise.reject("Not an object: "+this.makePath(e))})})}storeObject(e,t,n){return r(this,void 0,void 0,function*(){if("string"!=typeof e)return Promise.reject("Argument 'typeAlias' of baseClient.storeObject must be a string");if("string"!=typeof t)return Promise.reject("Argument 'path' of baseClient.storeObject must be a string");if("object"!=typeof n)return Promise.reject("Argument 'object' of baseClient.storeObject must be an object");this._attachType(n,e);try{const e=this.validate(n);if(!e.valid)return Promise.reject(e)}catch(e){return Promise.reject(e)}return this.storage.put(this.makePath(t),JSON.stringify(n),"application/json; charset=UTF-8").then(e=>200===e.statusCode||201===e.statusCode?e.revision:Promise.reject("Request (PUT "+this.makePath(t)+") failed with status: "+e.statusCode))})}remove(e){return r(this,void 0,void 0,function*(){return"string"!=typeof e?Promise.reject("Argument 'path' of baseClient.remove must be a string"):(this.storage.access.checkPathPermission(this.makePath(e),"rw")||console.warn("WARNING: Removing a document to which only read access ('r') was claimed"),this.storage.delete(this.makePath(e),this.storage.connected))})}getItemURL(e){return r(this,void 0,void 0,function*(){if("string"!=typeof e)throw"Argument 'path' of baseClient.getItemURL must be a string";if(this.storage.connected)return"function"==typeof this.storage.remote.getItemURL?this.storage.remote.getItemURL(this.makePath(e)):this.storage.remote.href+(0,u.cleanPath)(this.makePath(e))})}cache(e,t="ALL"){if("string"!=typeof e)throw"Argument 'path' of baseClient.cache must be a string";if("string"!=typeof t)throw"Argument 'strategy' of baseClient.cache must be a string or undefined";if("FLUSH"!==t&&"SEEN"!==t&&"ALL"!==t)throw'Argument \'strategy\' of baseclient.cache must be one of ["FLUSH", "SEEN", "ALL"]';return this.storage.caching.set(this.makePath(e),t),this}declareType(e,t,n){let r;if(n&&"string"==typeof t)r=t;else if(n||"string"==typeof t){if(!n&&"string"==typeof t)throw new Error("declareType() requires a JSON Schema object to be passed, in order to validate object types/formats")}else n=t,r=this._defaultTypeURI(e);h.Types.declare(this.moduleName,e,r,n)}validate(e){const t=h.Types.getSchema(e["@context"]);if(t)return s.default.validateResult(e,t);throw new a.default(e["@context"])}_defaultTypeURI(e){return"http://remotestorage.io/spec/modules/"+encodeURIComponent(this.moduleName)+"/"+encodeURIComponent(e)}_attachType(e,t){e["@context"]=h.Types.resolveAlias(this.moduleName+"/"+t)||this._defaultTypeURI(t)}makePath(e){return this.base+(e||"")}_fireChange(e){c.default.changeEvents[e.origin]&&(["new","old","lastCommon"].forEach(function(t){if((!e[t+"ContentType"]||/^application\/(.*)json(.*)/.exec(e[t+"ContentType"]))&&"string"==typeof e[t+"Value"])try{e[t+"Value"]=JSON.parse(e[t+"Value"])}catch(e){}}),this._emit("change",e))}static _rs_init(){}}t.BaseClient=h,h.Types=o.default,(0,u.applyMixins)(h,[l.default]),t.default=h},285:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Caching=void 0;const i=n(746),s=r(n(334));class o{constructor(e){this.pendingActivations=[],this._access=e.access,this.reset()}set(e,t){if("string"!=typeof e)throw new Error("path should be a string");if(!(0,i.isFolder)(e))throw new Error("path should be a folder");if(!this._access.checkPathPermission(e,"r"))throw new Error('No access to path "'+e+'". You must claim access to it first.');if(void 0===t||!t.match(/^(FLUSH|SEEN|ALL)$/))throw new Error("strategy should be 'FLUSH', 'SEEN', or 'ALL'");this._rootPaths[e]=t,"ALL"===t&&(this.activateHandler?this.activateHandler(e):this.pendingActivations.push(e))}enable(e){this.set(e,"ALL")}disable(e){this.set(e,"FLUSH")}onActivate(e){(0,s.default)("[Caching] Setting activate handler",e,this.pendingActivations),this.activateHandler=e;for(let t=0;t{this.emitChange(e.data)})}get(e,t,n){return r(this,void 0,void 0,function*(){return"number"==typeof t?this.getNodes((0,c.pathsFromRoot)(e)).then(r=>{const i=u(r[e]);return h(r,t)?n(e):i?{statusCode:200,body:i.body||i.itemsMap,contentType:(0,c.stripLegacyCharsetBinary)(i.contentType||null)}:{statusCode:404}}):this.getNodes([e]).then(t=>{const n=u(t[e]);if(n){if((0,c.isFolder)(e))for(const e in n.itemsMap)n.itemsMap.hasOwnProperty(e)&&!1===n.itemsMap[e]&&delete n.itemsMap[e];return{statusCode:200,body:n.body||n.itemsMap,contentType:(0,c.stripLegacyCharsetBinary)(n.contentType||null)}}return{statusCode:404}})})}put(e,t,n){return r(this,void 0,void 0,function*(){const r=(0,c.pathsFromRoot)(e);return this._updateNodes(r,function(e,r){try{for(let i=0,s=e.length;i0)break}else console.error("Cannot delete non-existing node "+i)}return n})})}flush(e){return this._getAllDescendentPaths(e).then(e=>this.getNodes(e)).then(e=>{for(const t in e){const n=e[t];n&&n.common&&n.local&&this.emitChange({path:n.path,origin:"local",oldValue:!1===n.local.body?void 0:n.local.body,newValue:!1===n.common.body?void 0:n.common.body}),e[t]=void 0}return this.setNodes(e)})}emitChange(e){a.default.changeEvents[e.origin]&&this._emit("change",e)}fireInitial(){a.default.changeEvents.local&&this.forAllNodes(e=>{if((0,c.isDocument)(e.path)){const t=u(e);t&&this.emitChange({path:e.path,origin:"local",oldValue:void 0,oldContentType:void 0,newValue:t.body,newContentType:t.contentType})}}).then(()=>{this._emit("local-events-done")})}onDiff(e){this.diffHandler=e}_updateNodes(e,t){return new Promise((n,r)=>{this._doUpdateNodes(e,t,{resolve:n,reject:r})})}_doUpdateNodes(e,t,n){return r(this,void 0,void 0,function*(){if(this._updateNodesRunning)return void this._updateNodesQueued.push({paths:e,cb:t,promise:n});this._updateNodesRunning=!0;try{let r=yield this.getNodes(e);const i=(0,c.deepClone)(r),s=[];r=t(e,r);for(const e in r){const t=r[e];(0,c.equal)(t,i[e])?delete r[e]:(0,c.isDocument)(e)&&((0,c.equal)(t.local.body,t.local.previousBody)&&t.local.contentType===t.local.previousContentType||s.push({path:e,origin:"window",oldValue:t.local.previousBody,newValue:!1===t.local.body?void 0:t.local.body,oldContentType:t.local.previousContentType,newContentType:t.local.contentType}),void 0===t.local.body?r[e]=void 0:(delete t.local.previousBody,delete t.local.previousContentType))}yield this.setNodes(r),this._emitChangeEvents(s),n.resolve({statusCode:200})}catch(e){n.reject(e)}this._updateNodesRunning=!1;const r=this._updateNodesQueued.shift();r&&(yield this._doUpdateNodes(r.paths,r.cb,r.promise))})}_emitChangeEvents(e){for(let t=0,n=e.length;t{const n=[e],r=u(t[e]),i=Object.keys(r.itemsMap).map(t=>this._getAllDescendentPaths(e+t).then(e=>{for(let t=0,r=e.length;tn)}):Promise.resolve([e])}_getInternals(){return{getLatest:u,makeNode:d,isOutdated:h}}}(0,c.applyMixins)(f,[o.default]),e.exports=f},28:function(e){e.exports={cache:!0,changeEvents:{local:!0,window:!1,remote:!0,conflict:!0},cordovaRedirectUri:void 0,discovery:{allowPrivateAddresses:!0,timeout:5e3},logging:!1,modules:[],backgroundSyncInterval:6e4,disableFeatures:[],isBackground:!1,requestTimeout:3e4,syncInterval:1e4}},373:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};const i=r(n(713)),s=r(n(28)),o=r(n(334)),a=n(746);let l;const c="remotestorage:discover";let u={};const h=function(e){if(e in u)return Promise.resolve(u[e]);const t=new i.default({tls_only:!1,uri_fallback:!0,request_timeout:s.default.discovery.timeout,allow_private_addresses:s.default.discovery.allowPrivateAddresses});let n;const r=new Promise((e,t)=>{n=setTimeout(()=>{t(new Error("timed out"))},s.default.discovery.timeout)});return Promise.race([t.lookup(e),r]).then(t=>{if(clearTimeout(n),"object"!=typeof t.idx.links.remotestorage||"number"!=typeof t.idx.links.remotestorage.length||t.idx.links.remotestorage.length<=0)throw(0,o.default)("[Discover] WebFinger record for "+e+" does not have remotestorage defined in the links section ",JSON.stringify(t.object)),new Error("WebFinger record for "+e+" does not have remotestorage defined in the links section.");const r=t.idx.links.remotestorage[0],i=r.properties||{},s=i["http://tools.ietf.org/html/rfc6749#section-4.2"]||i["auth-endpoint"],a=i["http://remotestorage.io/spec/version"]||r.type;return u[e]={href:r.href,storageApi:a,authURL:s,properties:i},l&&localStorage.setItem(c,JSON.stringify({cache:u})),u[e]}).catch(e=>{throw clearTimeout(n),e})};(h.DiscoveryError=function(e){this.name="DiscoveryError",this.message=e,this.stack=(new Error).stack}).prototype=Object.create(Error.prototype),h.DiscoveryError.prototype.constructor=h.DiscoveryError,h._rs_init=function(){if(l=(0,a.localStorageAvailable)(),l){const e=JSON.parse(localStorage.getItem(c));e&&(u=e.cache)}},h._rs_supported=function(){return Object.prototype.hasOwnProperty.call(a.globalContext,"fetch")||Object.prototype.hasOwnProperty.call(a.globalContext,"XMLHttpRequest")},h._rs_cleanup=function(){l&&localStorage.removeItem(c)},e.exports=h},706:function(e,t,n){var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,s){function o(e){try{l(r.next(e))}catch(e){s(e)}}function a(e){try{l(r.throw(e))}catch(e){s(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,a)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};const s=i(n(93)),o=i(n(941)),a=i(n(982)),l=i(n(503)),c=n(746),u=n(368),h=n(684),d=i(n(275));let p;const f="remotestorage:dropbox",g="https://api.dropboxapi.com/2/files/list_folder",m="https://api.dropboxapi.com/2/files/list_folder/continue";function y(e){return("/remotestorage/"+e).replace(/\/+$/,"").replace(/\/+/g,"/")}const v=/[\u007f-\uffff]/g;function b(e){return JSON.stringify(e).replace(v,function(e){return"\\u"+("000"+e.charCodeAt(0).toString(16)).slice(-4)})}function w(e,t){return new RegExp("^"+t.join("\\/")+"(\\/|$)").test(e.error_summary)}class _ extends h.RemoteBase{constructor(e){if(super(e),this.online=!0,this.storageApi="draft-dejong-remotestorage-19",this._initialFetchDone=!1,this.addEvents(["connected","not-connected"]),this.clientId=e.apiKeys.dropbox.appKey,this.TOKEN_URL="https://api.dropboxapi.com/oauth2/token",this._revCache=new o.default("rev"),this._fetchDeltaCursor=null,this._fetchDeltaPromise=null,this._itemRefs={},p=(0,c.localStorageAvailable)(),p){const e=(0,c.getJSONFromLocalStorage)(f);e&&this.configure(e),this._itemRefs=(0,c.getJSONFromLocalStorage)(`${f}:shares`)||{}}this.connected&&setTimeout(this._emit.bind(this),0,"connected")}connect(){return r(this,void 0,void 0,function*(){try{if(this.rs.setBackend("dropbox"),this.token)S(this.rs);else{const{codeVerifier:e,codeChallenge:t,state:n}=yield(0,c.generateCodeVerifier)();sessionStorage.setItem("remotestorage:codeVerifier",e),sessionStorage.setItem("remotestorage:state",n),this.rs.authorize({authURL:"https://www.dropbox.com/oauth2/authorize",scope:"account_info.read files.content.read files.content.write files.metadata.read files.metadata.write sharing.read sharing.write",clientId:this.clientId,response_type:"code",state:n,code_challenge:t,code_challenge_method:"S256",token_access_type:"offline"})}}catch(e){throw this.rs._emit("error",e),this.rs.setBackend(void 0),e}})}configure(e){return r(this,void 0,void 0,function*(){void 0!==e.userAddress&&(this.userAddress=e.userAddress),void 0!==e.token&&(this.token=e.token),void 0!==e.refreshToken&&(this.refreshToken=e.refreshToken),void 0!==e.tokenType&&(this.tokenType=e.tokenType);const t=()=>{p&&localStorage.setItem(f,JSON.stringify({userAddress:this.userAddress,token:this.token,refreshToken:this.refreshToken,tokenType:this.tokenType}))};if(this.refreshToken||this.token)if(this.connected=!0,this.userAddress)this._emit("connected"),t();else try{const e=yield this.info();this.userAddress=e.email,this._emit("connected"),t()}catch(e){this.connected=!1,this.rs._emit("error",new Error("Could not fetch user info.")),t.apply(this)}else(()=>{this.connected=!1,p&&(localStorage.removeItem(f),localStorage.removeItem(`${f}:shares`)),this.rs.setBackend(void 0)})()})}_getFolder(e){const t=this._revCache,n=n=>{let i;if(200!==n.status&&409!==n.status)return Promise.reject("Unexpected response status: "+n.status);try{i=JSON.parse(n.responseText)}catch(e){return Promise.reject(e)}if(409===n.status)return w(i,["path","not_found"])?Promise.resolve({}):Promise.reject(new Error("API returned an error: "+i.error_summary));const s=i.entries.reduce((n,r)=>{try{const i="folder"===r[".tag"],s=r.path_display.split("/").slice(-1)[0]+(i?"/":"");if(i)n[s]={ETag:t.get(e+s)};else{const t=new Date(r.server_modified);n[s]={ETag:r.rev,"Content-Length":r.size,"Last-Modified":t.toUTCString()},this._revCache.set(e+s,r.rev)}}catch(t){console.error(`[Dropbox] folder “${e}” has entry ${JSON.stringify(r)}:`,t)}return n},{});return i.has_more?r(i.cursor).then(function(e){return Object.assign(s,e)}):Promise.resolve(s)},r=e=>{const t={body:{cursor:e}};return this._request("POST",m,t).then(n)};return this._request("POST",g,{body:{path:y(e)}}).then(n).then(function(n){return Promise.resolve({statusCode:200,body:n,contentType:"application/json; charset=UTF-8",revision:t.get(e)})})}get(e,t={}){if(!this.connected)return Promise.reject("not connected (path: "+e+")");const n=this._revCache.get(e);if(null===n)return Promise.resolve({statusCode:404});if(t&&t.ifNoneMatch){if(!this._initialFetchDone)return this.fetchDelta().then(()=>this.get(e,t));if(n&&n===t.ifNoneMatch)return Promise.resolve({statusCode:304})}if("/"===e.slice(-1))return this._getFolder(e);const r={headers:{"Dropbox-API-Arg":b({path:y(e)})},responseType:"arraybuffer"};return t&&t.ifNoneMatch&&(r.headers["If-None-Match"]=t.ifNoneMatch),this._request("GET","https://content.dropboxapi.com/2/files/download",r).then(t=>{const n=t.status;let r,i,s,o;return 200!==n&&409!==n?Promise.resolve({statusCode:n}):(r=t.getResponseHeader("Dropbox-API-Result"),(0,c.getTextFromArrayBuffer)(t.response,"UTF-8").then(a=>{i=a,409===n&&(r=i);try{r=JSON.parse(r)}catch(e){return Promise.reject(e)}if(409===n)return w(r,["path","not_found"])?{statusCode:404}:Promise.reject(new Error('API error while downloading file ("'+e+'"): '+r.error_summary));if(s=t.getResponseHeader("Content-Type"),o=r.rev,this._revCache.set(e,o),this._shareIfNeeded(e),(0,c.shouldBeTreatedAsBinary)(a,s))i=t.response;else try{i=JSON.parse(i),s="application/json; charset=UTF-8"}catch(e){}return{statusCode:n,body:i,contentType:(0,c.stripLegacyCharsetBinary)(s),revision:o}}))})}put(e,t,n){return r(this,arguments,void 0,function*(e,t,n,r={}){if(!this.connected)throw new Error("not connected (path: "+e+")");const i=this._revCache.get(e);if(r&&r.ifMatch&&i&&i!==r.ifMatch)return{statusCode:412,revision:i};if(r&&"*"===r.ifNoneMatch&&i&&"rev"!==i)return{statusCode:412,revision:i};if(t.length>157286400)throw new Error("Cannot upload file larger than 150MB");const s={body:t,contentType:n,path:e};if(r&&(r.ifMatch||"*"===r.ifNoneMatch)){const t=yield this._getMetadata(e);if(r&&"*"===r.ifNoneMatch&&t)return{statusCode:412,revision:t.rev};if(r&&r.ifMatch&&t&&t.rev!==r.ifMatch)return{statusCode:412,revision:t.rev}}const o=yield this._uploadSimple(s);return this._shareIfNeeded(e),o})}delete(e){return r(this,arguments,void 0,function*(e,t={}){if(!this.connected)throw new Error("not connected (path: "+e+")");const n=this._revCache.get(e);if((null==t?void 0:t.ifMatch)&&n&&t.ifMatch!==n)return{statusCode:412,revision:n};if(null==t?void 0:t.ifMatch){const n=yield this._getMetadata(e);if((null==t?void 0:t.ifMatch)&&n&&n.rev!==t.ifMatch)return{statusCode:412,revision:n.rev}}return this._deleteSimple(e)})}_shareIfNeeded(e){if(e.match(/^\/public\/.*[^/]$/)&&void 0===this._itemRefs[e])return this.share(e)}getItemURL(e){return r(this,void 0,void 0,function*(){if(e.match(/^\/public\/.*[^/]$/))return this._itemRefs[e]?this._itemRefs[e]:this.share(e)})}share(e){const t={body:{path:y(e)}};return this._request("POST","https://api.dropboxapi.com/2/sharing/create_shared_link_with_settings",t).then(t=>{if(200!==t.status&&409!==t.status)return Promise.reject(new Error("Invalid response status:"+t.status));let n;try{n=JSON.parse(t.responseText)}catch(e){return Promise.reject(new Error("Invalid response body: "+t.responseText))}return 409===t.status?w(n,["shared_link_already_exists"])?this._getSharedLink(e):Promise.reject(new Error("API error: "+n.error_summary)):Promise.resolve(n.url)}).then(t=>(this._itemRefs[e]=t,p&&localStorage.setItem("remotestorage:dropbox:shares",JSON.stringify(this._itemRefs)),Promise.resolve(t)),t=>(t.message='Sharing Dropbox file or folder ("'+e+'") failed: '+t.message,Promise.reject(t)))}info(){return this._request("POST","https://api.dropboxapi.com/2/users/get_current_account",{}).then(function(e){let t;try{const n=JSON.parse(e.responseText);t=null==n?void 0:n.email}catch(t){return Promise.reject(new Error("Could not query current account info: Invalid API response: "+e.responseText))}return Promise.resolve({email:t})})}_request(e,t,n){return r(this,arguments,void 0,function*(e,t,n,r=1){if(this.isForbiddenRequestMethod(e,t))throw`Don't use ${e} on directories!`;if(!this.token)throw new l.default("No access token");var i;n.headers||(n.headers={}),n.headers.Authorization="Bearer "+this.token,"object"!=typeof n.body||(i=n.body)instanceof ArrayBuffer||(0,u.isArrayBufferView)(i)||(n.body=JSON.stringify(n.body),n.headers["Content-Type"]="application/json; charset=UTF-8"),this.rs._emit("wire-busy",{method:e,isFolder:(0,c.isFolder)(t)});try{const i=yield(0,u.requestWithTimeout)(e,t,n);return this.online||(this.online=!0,this.rs._emit("network-online")),this.rs._emit("wire-done",{method:e,isFolder:(0,c.isFolder)(t),success:!0}),401===(null==i?void 0:i.status)&&this.refreshToken?r>=3?(console.error(`Abandoned after ${r} attempts: ${e} ${t}`),i):(this.rs._emit("wire-busy",{method:e,isFolder:(0,c.isFolder)(t)}),yield d.default.refreshAccessToken(this.rs,this,this.refreshToken),this.rs._emit("wire-done",{method:e,isFolder:(0,c.isFolder)(t),success:!0}),this._request(e,t,n,r+1)):[503,429].includes(null==i?void 0:i.status)?(this.online&&(this.online=!1,this.rs._emit("network-offline")),r>=3?(console.warn(`Abandoned after ${r} attempts: ${e} ${t}`),i):(yield new Promise(e=>setTimeout(e,(0,u.retryAfterMs)(i))),this._request(e,t,n,r+1))):i}catch(n){throw this.online&&(this.online=!1,this.rs._emit("network-offline")),this.rs._emit("wire-done",{method:e,isFolder:(0,c.isFolder)(t),success:!1}),n}})}fetchDelta(...e){if(this._fetchDeltaPromise)return this._fetchDeltaPromise;const t=e=>r(this,void 0,void 0,function*(){let n,r;"string"==typeof e?(n=m,r={cursor:e}):(n=g,r={path:"/remotestorage",recursive:!0,include_deleted:!0});try{const i=yield this._request("POST",n,{body:r});if(401===i.status)throw new l.default;if(200!==i.status&&409!==i.status)throw new Error("Invalid response status: "+i.status);let s;try{s=JSON.parse(i.responseText)}catch(e){throw new Error("Invalid response body: "+i.responseText)}if(409===i.status){if(!w(s,["path","not_found"]))throw new Error("API returned an error: "+s.error_summary);s={cursor:null,entries:[],has_more:!1}}if(e||this._revCache.deactivatePropagation(),s.entries.forEach(e=>{const t=e.path_display.slice(14);"deleted"===e[".tag"]?(this._revCache.delete(t),this._revCache.delete(t+"/")):"file"===e[".tag"]&&this._revCache.set(t,e.rev)}),this._fetchDeltaCursor=s.cursor,s.has_more)return t(s.cursor);this._revCache.activatePropagation(),this._initialFetchDone=!0}catch(e){if("timeout"===e)return;throw e}});return this._fetchDeltaPromise=t(this._fetchDeltaCursor).catch(e=>("object"==typeof e&&"message"in e?e.message="Dropbox: fetchDelta: "+e.message:e=`Dropbox: fetchDelta: ${e}`,this.rs._emit("error",e),this._fetchDeltaPromise=null,Promise.reject(e))).then(()=>(this._fetchDeltaPromise=null,Promise.resolve(e))),this._fetchDeltaPromise}_getMetadata(e){const t={path:y(e)};return this._request("POST","https://api.dropboxapi.com/2/files/get_metadata",{body:t}).then(e=>{if(200!==e.status&&409!==e.status)return Promise.reject(new Error("Invalid response status:"+e.status));let t;try{t=JSON.parse(e.responseText)}catch(t){return Promise.reject(new Error("Invalid response body: "+e.responseText))}return 409===e.status?w(t,["path","not_found"])?Promise.resolve():Promise.reject(new Error("API error: "+t.error_summary)):Promise.resolve(t)}).then(void 0,t=>(t.message='Could not load metadata for file or folder ("'+e+'"): '+t.message,Promise.reject(t)))}_uploadSimple(e){const t={path:y(e.path),mode:{".tag":"overwrite",update:void 0},mute:!0};return e.ifMatch&&(t.mode={".tag":"update",update:e.ifMatch}),this._request("POST","https://content.dropboxapi.com/2/files/upload",{body:e.body,headers:{"Content-Type":"application/octet-stream","Dropbox-API-Arg":b(t)}}).then(t=>{if(200!==t.status&&409!==t.status)return Promise.resolve({statusCode:t.status});let n;try{n=JSON.parse(t.responseText)}catch(e){return Promise.reject(new Error("Invalid API result: "+t.responseText))}return 409===t.status?w(n,["path","conflict"])?this._getMetadata(e.path).then(function(e){return Promise.resolve({statusCode:412,revision:e.rev})}):(this.rs._emit("error",new Error(n.error_summary)),Promise.resolve({statusCode:t.status})):(this._revCache.set(e.path,n.rev),Promise.resolve({statusCode:t.status,revision:n.rev}))})}_deleteSimple(e){const t={path:y(e)};return this._request("POST","https://api.dropboxapi.com/2/files/delete",{body:t}).then(e=>{if(200!==e.status&&409!==e.status)return Promise.resolve({statusCode:e.status});let t;try{t=JSON.parse(e.responseText)}catch(t){return Promise.reject(new Error("Invalid response body: "+e.responseText))}if(409===e.status){if(w(t,["path_lookup","not_found"]))return Promise.resolve({statusCode:404});this.rs._emit("error",new Error(t.error_summary))}return Promise.resolve({statusCode:e.status,revision:200===e.status?t.rev:void 0})}).then(t=>(200!==t.statusCode&&404!==t.statusCode||(this._revCache.delete(e),delete this._itemRefs[e]),Promise.resolve(t)),t=>(t.message='Could not delete Dropbox file or folder ("'+e+'"): '+t.message,Promise.reject(t)))}_getSharedLink(e){return r(this,void 0,void 0,function*(){const t={body:{path:y(e),direct_only:!0}};return this._request("POST","https://api.dropboxapi.com/2/sharing/list_shared_links",t).then(e=>{if(200!==e.status&&409!==e.status)return Promise.reject(new Error("Invalid response status: "+e.status));let t;try{t=JSON.parse(e.responseText)}catch(t){return Promise.reject(new Error("Invalid response body: "+e.responseText))}return 409===e.status?Promise.reject(new Error("API error: "+(null==t?void 0:t.error_summary)||0)):t.links.length?Promise.resolve(t.links[0].url):Promise.reject(new Error("No links returned"))},t=>(t.message='Could not get link to a shared file or folder ("'+e+'"): '+t.message,Promise.reject(t)))})}static _rs_init(e){p=(0,c.localStorageAvailable)(),e.apiKeys.dropbox&&(e.dropbox=new _(e)),"dropbox"===e.backend&&S(e)}static _rs_supported(){return!0}static _rs_cleanup(e){(function(e){(function(e){e._origRemote&&(e.remote=e._origRemote,delete e._origRemote)})(e),function(e){e._dropboxOrigSync&&(e.sync.sync=e._dropboxOrigSync,delete e._dropboxOrigSync)}(e),C(e)})(e),p&&localStorage.removeItem(f),e.setBackend(void 0)}}function x(e,...t){e._dropboxOrigSync||(e._dropboxOrigSync=e.sync.sync.bind(e.sync),e.sync.sync=function(){return this.dropbox.fetchDelta(e,...t).then(e._dropboxOrigSync,function(t){e._emit("error",new a.default(t)),e._emit("sync-done",{completed:!1})})}.bind(e))}function C(e){e._dropboxOrigSyncCycle&&(e.syncCycle=e._dropboxOrigSyncCycle,delete e._dropboxOrigSyncCycle)}function S(e){(function(e){e._origRemote||(e._origRemote=e.remote,e.remote=e.dropbox)})(e),e.sync?x(e):function(e,...t){e._dropboxOrigSyncCycle||(e._dropboxOrigSyncCycle=e.syncCycle,e.syncCycle=()=>{if(!e.sync)throw new Error("expected sync to be initialized by now");x(e),e._dropboxOrigSyncCycle(e,...t),C(e)})}(e)}(0,c.applyMixins)(_,[s.default]),e.exports=_},451:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};const i=r(n(93)),s=n(746),o=r(n(334));class a{constructor(){this.addEvents(["background","foreground"]),this.mode="undefined"!=typeof window?"browser":"node","browser"===this.mode&&(this.setBrowserPrefixedNames(),document.addEventListener(this.visibilityChangeEvent,this.setVisibility.bind(this),!1),this.setVisibility())}setBrowserPrefixedNames(){"browser"===this.mode&&(void 0!==document.hidden?(this.hiddenProperty="hidden",this.visibilityChangeEvent="visibilitychange"):void 0!==document.mozHidden?(this.hiddenProperty="mozHidden",this.visibilityChangeEvent="mozvisibilitychange"):void 0!==document.msHidden?(this.hiddenProperty="msHidden",this.visibilityChangeEvent="msvisibilitychange"):void 0!==document.webkitHidden&&(this.hiddenProperty="webkitHidden",this.visibilityChangeEvent="webkitvisibilitychange"))}setVisibility(){document[this.hiddenProperty]?((0,o.default)("[Env] Going into background mode"),this.goBackground()):((0,o.default)("[Env] Going into foreground mode"),this.goForeground())}isBrowser(){return"browser"===this.mode}isNode(){return"node"===this.mode}goBackground(){this._emit("background")}goForeground(){this._emit("foreground")}static _rs_init(){}static _rs_cleanup(){}}(0,s.applyMixins)(a,[i.default]),e.exports=a},93:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.EventHandling=void 0;const i=r(n(334));class s{addEvents(e){e.forEach(e=>this._addEvent(e))}addEventListener(e,t){if("string"!=typeof e)throw new Error("Argument eventName should be a string");if("function"!=typeof t)throw new Error("Argument handler should be a function");(0,i.default)("[EventHandling] Adding event listener",e),this._validateEvent(e),this._handlers[e].push(t)}on(e,t){return this.addEventListener(e,t)}removeEventListener(e,t){this._validateEvent(e);const n=this._handlers[e].length;for(let r=0;r{e(...t)})}_validateEvent(e){if(!(e in this._handlers))throw new Error("Unknown event: "+e)}_delegateEvent(e,t){t.on(e,t=>{this._emit(e,t)})}_addEvent(e){void 0===this._handlers&&(this._handlers={}),this._handlers[e]=[]}}t.EventHandling=s,t.default=s},545:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};const i=r(n(28)),s=r(n(451)),o=r(n(334)),a=n(746),l=r(n(370)),c=r(n(548)),u=r(n(275)),h=r(n(373)),d=r(n(424)),p=r(n(801)),f=r(n(706)),g=r(n(600)),m=r(n(313)),y=r(n(285)),v=r(n(567)),b=r(n(794)),w=r(n(365));e.exports={features:[],featuresDone:0,readyFired:!1,loadFeatures(){this.features=[],this.featuresDone=0,this.readyFired=!1,this.featureModules={WireClient:g.default,Dropbox:f.default,GoogleDrive:p.default,Access:c.default,Discover:h.default,Authorize:u.default,BaseClient:d.default,Env:s.default},i.default.cache&&(0,a.extend)(this.featureModules,{Caching:y.default,IndexedDB:v.default,LocalStorage:b.default,InMemoryStorage:w.default,Sync:m.default}),i.default.disableFeatures.forEach(e=>{this.featureModules[e]&&delete this.featureModules[e]}),this._allLoaded=!1;for(const e in this.featureModules)this.loadFeature(e)},hasFeature(e){for(let t=this.features.length-1;t>=0;t--)if(this.features[t].name===e)return this.features[t].supported;return!1},loadFeature(e){const t=this.featureModules[e],n=!t._rs_supported||t._rs_supported();(0,o.default)(`[RemoteStorage] [FEATURE ${e}] initializing ...`),"object"==typeof n?n.then(()=>{this.featureSupported(e,!0),this.initFeature(e)},()=>{this.featureSupported(e,!1)}):"boolean"==typeof n?(this.featureSupported(e,n),n&&this.initFeature(e)):this.featureSupported(e,!1)},initFeature(e){const t=this.featureModules[e];let n;try{n=t._rs_init(this)}catch(t){return void this.featureFailed(e,t)}"object"==typeof n&&"function"==typeof n.then?n.then(()=>{this.featureInitialized(e)},t=>{this.featureFailed(e,t)}):this.featureInitialized(e)},featureFailed(e,t){(0,o.default)(`[RemoteStorage] [FEATURE ${e}] initialization failed (${t})`),this.featureDone()},featureSupported(e,t){(0,o.default)(`[RemoteStorage] [FEATURE ${e}]${t?"":"not "} supported`),t||this.featureDone()},featureInitialized(e){(0,o.default)(`[RemoteStorage] [FEATURE ${e}] initialized`),this.features.push({name:e,init:this.featureModules[e]._rs_init,supported:!0,cleanup:this.featureModules[e]._rs_cleanup}),this.featureDone()},featureDone(){this.featuresDone++,this.featuresDone===Object.keys(this.featureModules).length&&setTimeout(this.featuresLoaded.bind(this),0)},_setCachingModule(){["IndexedDB","LocalStorage","InMemoryStorage"].some(e=>{if(this.features.some(t=>t.name===e))return this.features.local=this.featureModules[e],!0})},_fireReady(){try{this.readyFired||(this._emit("ready"),this.readyFired=!0)}catch(e){console.error("'ready' failed: ",e,e.stack),this._emit("error",e)}},featuresLoaded(){(0,o.default)("[RemoteStorage] All features loaded"),this._setCachingModule(),this.local=i.default.cache&&this.features.local&&new this.features.local,this.local&&this.remote?(this._setGPD(l.default,this),this._bindChange(this.local)):this.remote&&this._setGPD(this.remote,this.remote),this.remote&&(this.remote.on("connected",()=>{this._fireReady(),this._emit("connected")}),this.remote.on("not-connected",()=>{this._fireReady(),this._emit("not-connected")}),this.remote.connected&&(this._fireReady(),this._emit("connected")),this.hasFeature("Authorize")||this.remote.stopWaitingForToken()),this._collectCleanupFunctions();try{this._allLoaded=!0,this._emit("features-loaded")}catch(e){(0,a.logError)(e),this._emit("error",e)}this._processPending()},_collectCleanupFunctions(){this._cleanups=[];for(let e=0;e=n-this.maxAge?t.v:void 0}set(e,t){this._items[e]={v:t,t:(new Date).getTime()}}}class m extends a.RemoteBase{constructor(e,t){if(super(e),this.online=!0,this.storageApi="draft-dejong-remotestorage-19",this.addEvents(["connected","not-connected"]),this.clientId=t,this._fileIdCache=new g(300),u=(0,s.localStorageAvailable)(),u){const e=(0,s.getJSONFromLocalStorage)(l);e&&this.configure(e)}}configure(e){void 0!==e.userAddress&&(this.userAddress=e.userAddress),void 0!==e.token&&(this.token=e.token);const t=function(){u&&localStorage.setItem(l,JSON.stringify({userAddress:this.userAddress,token:this.token}))},n=function(){this.connected=!1,delete this.token,u&&localStorage.removeItem(l)};this.token?(this.connected=!0,this.userAddress?(this._emit("connected"),t.apply(this)):this.info().then(e=>{this.userAddress=e.user.emailAddress,this._emit("connected"),t.apply(this)}).catch(()=>{n.apply(this),this.rs._emit("error",new Error("Could not fetch user info."))})):n.apply(this)}connect(){this.rs.setBackend("googledrive"),this.rs.authorize({authURL:"https://accounts.google.com/o/oauth2/auth",scope:"https://www.googleapis.com/auth/drive",clientId:this.clientId})}get(e,t={}){return(0,s.isFolder)(e)?this._getFolder(f(e)):this._getFile(f(e),t)}put(e,t,n,r={}){const i=f(e);function s(e){if(e.status>=200&&e.status<300){const t=JSON.parse(e.responseText),n=this.stripQuotes(t.etag);return Promise.resolve({statusCode:200,contentType:t.mimeType,revision:n})}return 412===e.status?Promise.resolve({statusCode:412,revision:"conflict"}):Promise.reject("PUT failed with status "+e.status+" ("+e.responseText+")")}return this._getFileId(i).then(e=>e?r&&"*"===r.ifNoneMatch?s({status:412}):this._updateFile(e,i,t,n,r).then(s):this._createFile(i,t,n).then(s))}delete(e,t={}){const n=f(e);return this._getFileId(n).then(e=>e?this._getMeta(e).then(n=>{let r;return"object"==typeof n&&"string"==typeof n.etag&&(r=this.stripQuotes(n.etag)),t&&t.ifMatch&&t.ifMatch!==r?{statusCode:412,revision:r}:this._request("DELETE","https://www.googleapis.com/drive/v2/files/"+e,{}).then(e=>200===e.status||204===e.status?{statusCode:200}:Promise.reject("Delete failed: "+e.status+" ("+e.responseText+")"))}):Promise.resolve({statusCode:200}))}info(){return this._request("GET","https://www.googleapis.com/drive/v2/about?fields=user",{}).then(function(e){try{const t=JSON.parse(e.responseText);return Promise.resolve(t)}catch(e){return Promise.reject(e)}})}_updateFile(e,t,n,r,i){const s={mimeType:r},o={"Content-Type":"application/json; charset=UTF-8"};return i&&i.ifMatch&&(o["If-Match"]=this.addQuotes(i.ifMatch)),this._request("PUT","https://www.googleapis.com/upload/drive/v2/files/"+e+"?uploadType=resumable",{body:JSON.stringify(s),headers:o}).then(e=>412===e.status?e:this._request("PUT",e.getResponseHeader("Location"),{body:r.match(/^application\/json/)?JSON.stringify(n):n}))}_createFile(e,t,n){return this._getParentId(e).then(r=>{const i={title:h(p(e)),mimeType:n,parents:[{kind:"drive#fileLink",id:r}]};return this._request("POST","https://www.googleapis.com/upload/drive/v2/files?uploadType=resumable",{body:JSON.stringify(i),headers:{"Content-Type":"application/json; charset=UTF-8"}}).then(e=>this._request("POST",e.getResponseHeader("Location"),{body:n.match(/^application\/json/)?JSON.stringify(t):t}))})}_getFile(e,t){return this._getFileId(e).then(e=>this._getMeta(e).then(e=>{let n;if("object"==typeof e&&"string"==typeof e.etag&&(n=this.stripQuotes(e.etag)),t&&t.ifNoneMatch&&n===t.ifNoneMatch)return Promise.resolve({statusCode:304});if(!e.downloadUrl){if(!e.exportLinks||!e.exportLinks["text/html"])return Promise.resolve({statusCode:200,body:"",contentType:e.mimeType,revision:n});e.mimeType+=";export=text/html",e.downloadUrl=e.exportLinks["text/html"]}return this._request("GET",e.downloadUrl,{responseType:"arraybuffer"}).then(t=>(0,s.getTextFromArrayBuffer)(t.response,"UTF-8").then(function(r){let i=r;if(e.mimeType.match(/^application\/json/))try{i=JSON.parse(i)}catch(e){}else(0,s.shouldBeTreatedAsBinary)(r,e.mimeType)&&(i=t.response);return{statusCode:200,body:i,contentType:(0,s.stripLegacyCharsetBinary)(e.mimeType),revision:n}}))}))}_getFolder(e){return this._getFileId(e).then(t=>{let n,r,i;if(!t)return Promise.resolve({statusCode:404});const o="'"+t+"' in parents";return this._request("GET","https://www.googleapis.com/drive/v2/files?q="+encodeURIComponent(o)+"&fields=items(downloadUrl%2Cetag%2CfileSize%2Cid%2CmimeType%2Ctitle%2Clabels)&maxResults=1000&trashed=false",{}).then(t=>{var o;if(200!==t.status)return Promise.reject("request failed or something: "+t.status);try{n=JSON.parse(t.responseText)}catch(e){return Promise.reject("non-JSON response from GoogleDrive")}i={};for(const a of n.items)null!==(o=a.labels)&&void 0!==o&&o.trashed||(r=this.stripQuotes(a.etag),a.mimeType===c?(this._fileIdCache.set(e+(0,s.cleanPath)(a.title)+"/",a.id),i[a.title+"/"]={ETag:r}):(this._fileIdCache.set(e+(0,s.cleanPath)(a.title),a.id),i[a.title]={ETag:r,"Content-Type":a.mimeType,"Content-Length":a.fileSize}));return Promise.resolve({statusCode:200,body:i,contentType:"application/json; charset=UTF-8",revision:void 0})})})}_getParentId(e){const t=d(e);return this._getFileId(t).then(e=>e?Promise.resolve(e):this._createFolder(t))}_createFolder(e){return this._getParentId(e).then(t=>this._request("POST","https://www.googleapis.com/drive/v2/files",{body:JSON.stringify({title:h(p(e)),mimeType:c,parents:[{id:t}]}),headers:{"Content-Type":"application/json; charset=UTF-8"}}).then(e=>{const t=JSON.parse(e.responseText);return Promise.resolve(t.id)}))}_getFileId(e){let t;return"/"===e?Promise.resolve("root"):(t=this._fileIdCache.get(e))?Promise.resolve(t):this._getFolder(d(e)).then(()=>(t=this._fileIdCache.get(e),t?Promise.resolve(t):"/"===e.substr(-1)?this._createFolder(e).then(()=>this._getFileId(e)):Promise.resolve()))}_getMeta(e){return this._request("GET","https://www.googleapis.com/drive/v2/files/"+e,{}).then(function(t){return 200===t.status?Promise.resolve(JSON.parse(t.responseText)):Promise.reject("request (getting metadata for "+e+") failed with status: "+t.status)})}_request(e,t,n){return this.isForbiddenRequestMethod(e,t)?Promise.reject(`Don't use ${e} on directories!`):(n.headers||(n.headers={}),n.headers.Authorization="Bearer "+this.token,this.rs._emit("wire-busy",{method:e,isFolder:(0,s.isFolder)(t)}),(0,o.requestWithTimeout)(e,t,n).then(n=>n&&401===n.status?void this.connect():(this.online||(this.online=!0,this.rs._emit("network-online")),this.rs._emit("wire-done",{method:e,isFolder:(0,s.isFolder)(t),success:!0}),Promise.resolve(n)),n=>(this.online&&(this.online=!1,this.rs._emit("network-offline")),this.rs._emit("wire-done",{method:e,isFolder:(0,s.isFolder)(t),success:!1}),Promise.reject(n))))}getItemURL(e){return r(this,void 0,void 0,function*(){throw new Error("getItemURL is not implemented for Google Drive yet")})}static _rs_init(e){const t=e.apiKeys.googledrive;t&&(e.googledrive=new m(e,t.clientId),"googledrive"===e.backend&&(e._origRemote=e.remote,e.remote=e.googledrive))}static _rs_supported(){return!0}static _rs_cleanup(e){e.setBackend(void 0),e._origRemote&&(e.remote=e._origRemote,delete e._origRemote)}}(0,s.applyMixins)(m,[i.default]),e.exports=m},567:function(e,t,n){var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,s){function o(e){try{l(r.next(e))}catch(e){s(e)}}function a(e){try{l(r.throw(e))}catch(e){s(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,a)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};const s=i(n(93)),o=i(n(496)),a=i(n(334)),l=n(746),c="remotestorage";let u;class h extends o.default{constructor(e){super(),this.addEvents(["change","local-events-done"]),this.db=e||u,this.db?(this.getsRunning=0,this.putsRunning=0,this.changesQueued={},this.changesRunning={},this.commitSlownessWarning=null):(0,a.default)("[IndexedDB] Failed to open DB")}getNodes(e){return r(this,void 0,void 0,function*(){const t=[],n={};for(let r=0,i=e.length;r0?this.getNodesFromDb(t).then(function(e){for(const t in n)e[t]=n[t];return e}):n})}setNodes(e){return r(this,void 0,void 0,function*(){for(const t in e)this.changesQueued[t]=e[t]||!1;this.maybeFlush()})}maybeFlush(){0===this.putsRunning?this.flushChangesQueued():this.commitSlownessWarning||(this.commitSlownessWarning=n.g.setInterval(function(){console.warn("WARNING: waited more than 10 seconds for previous commit to finish")},1e4))}flushChangesQueued(){this.commitSlownessWarning&&(clearInterval(this.commitSlownessWarning),this.commitSlownessWarning=null),Object.keys(this.changesQueued).length>0&&(this.changesRunning=this.changesQueued,this.changesQueued={},this.setNodesInDb(this.changesRunning).then(this.flushChangesQueued.bind(this)))}getNodesFromDb(e){return new Promise((t,n)=>{const r=this.db.transaction(["nodes"],"readonly"),i=r.objectStore("nodes"),s={};this.getsRunning++,e.map(e=>{i.get(e).onsuccess=t=>{s[e]=t.target.result}}),r.oncomplete=()=>{t(s),this.getsRunning--},r.onerror=r.onabort=()=>{n("get transaction error/abort"),this.getsRunning--}})}setNodesInDb(e){return r(this,void 0,void 0,function*(){return new Promise((t,n)=>{const r=this.db.transaction(["nodes"],"readwrite"),i=r.objectStore("nodes"),s=(new Date).getTime();this.putsRunning++,(0,a.default)("[IndexedDB] Starting puts",e,this.putsRunning);for(const o in e){const t=e[o];if("object"==typeof t)try{i.put(t)}catch(e){throw(0,a.default)("[IndexedDB] Error while putting",t,e),e}else try{i.delete(o)}catch(e){throw(0,a.default)("[IndexedDB] Error while removing",i,t,e),e}}r.oncomplete=()=>{this.putsRunning--,(0,a.default)("[IndexedDB] Finished puts",e,this.putsRunning,(new Date).getTime()-s+"ms"),t()},r.onerror=()=>{this.putsRunning--,n("transaction error")},r.onabort=()=>{n("transaction abort"),this.putsRunning--}})})}reset(e){const t=this.db.name;this.db.close(),h.clean(t,()=>{h.open(t,(n,r)=>{n?(0,a.default)(`[IndexedDB] Error while resetting database ${t}:`,n):this.db=r,"function"==typeof e&&e(self)})})}forAllNodes(e){return r(this,void 0,void 0,function*(){return new Promise(t=>{this.db.transaction(["nodes"],"readonly").objectStore("nodes").openCursor().onsuccess=n=>{const r=n.target.result;r?(e(r.value),r.continue()):t()}})})}closeDB(){0===this.putsRunning?this.db.close():setTimeout(this.closeDB.bind(this),100)}static open(e,t){const n=setTimeout(function(){t("timeout trying to open db")},1e4);try{const r=indexedDB.open(e,2);r.onerror=function(){(0,a.default)("[IndexedDB] Opening DB failed",r),clearTimeout(n),t(r.error)},r.onupgradeneeded=function(e){const t=r.result;(0,a.default)("[IndexedDB] Upgrade: from ",e.oldVersion," to ",e.newVersion),t.objectStoreNames.contains("nodes")||((0,a.default)("[IndexedDB] Creating object store: nodes"),t.createObjectStore("nodes",{keyPath:"path"})),t.objectStoreNames.contains("changes")||((0,a.default)("[IndexedDB] Creating object store: changes"),t.createObjectStore("changes",{keyPath:"path"}))},r.onsuccess=function(){clearTimeout(n);const i=r.result;if(!i.objectStoreNames.contains("nodes")||!i.objectStoreNames.contains("changes"))return(0,a.default)("[IndexedDB] Missing object store. Resetting the database."),i.close(),void h.clean(e,function(){h.open(e,t)});t(null,r.result)}}catch(r){(0,a.default)("[IndexedDB] Failed to open database: "+r),(0,a.default)("[IndexedDB] Resetting database and trying again."),clearTimeout(n),h.clean(e,function(){h.open(e,t)})}}static clean(e,t){const n=indexedDB.deleteDatabase(e);n.onblocked=function(t){console.warn(`Deleting IndexedDB database "${e}" is blocked by another open connection`,t)},n.onsuccess=function(){(0,a.default)(`[IndexedDB] Deleted database "${e}"`),t()},n.onerror=n.onabort=function(t){console.error('Failed to remove database "'+e+'"',t)}}static _rs_init(e){return new Promise((t,n)=>{h.open(c,function(r,i){if(r)n(r);else{if(!i)return void n(new Error("IndexedDB opened without a database instance"));u=i,i.onerror=t=>{e._emit("error",h.eventToError(t))},t()}})})}static _rs_supported(){return new Promise((e,t)=>{const n=(0,l.getGlobalContext)();let r=!1;if("undefined"!=typeof navigator&&navigator.userAgent.match(/Android (2|3|4\.[0-3])/)&&(navigator.userAgent.match(/Chrome|Firefox/)||(r=!0)),"indexedDB"in n&&!r)try{const n=indexedDB.open("rs-check");n.onerror=function(){t()},n.onsuccess=function(){n.result.close(),indexedDB.deleteDatabase("rs-check"),e()}}catch(e){t()}else t()})}static _rs_cleanup(e){return new Promise(t=>{e.local instanceof h&&e.local.closeDB(),h.clean(c,t)})}static eventToError(e){var t;const n=null==e?void 0:e.target,r=null==n?void 0:n.error;if(r)return r;if(null===(t=null==n?void 0:n.db)||void 0===t?void 0:t.name){const e=n.objectStoreNames,t=e?Array.from(e).join(", "):"";return new Error(`Error in store(s) “${t}” in database “${n.db.name}”`)}return new Error("Unknown IndexedDB error")}diffHandler(){}}(0,l.applyMixins)(h,[s.default]),e.exports=h},365:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};const i=r(n(93)),s=r(n(496)),o=n(746);class a extends s.default{constructor(){super(),this._storage={},this.addEvents(["change","local-events-done"])}getNodes(e){const t={};for(let n=0,r=e.length;n=2e3&&e<=36e5}var M;!function(e){e.GOOGLE="googledrive",e.DROPBOX="dropbox"}(M||(M={}));class A{constructor(e){if(this._pending=[],this._cleanups=[],this._pathHandlers={change:{}},this.apiKeys={},this._init=x.default.loadFeatures,this.features=x.default.features,this.loadFeature=x.default.loadFeature,this.featureSupported=x.default.featureSupported,this.featureDone=x.default.featureDone,this.featuresDone=x.default.featuresDone,this.featuresLoaded=x.default.featuresLoaded,this.featureInitialized=x.default.featureInitialized,this.featureFailed=x.default.featureFailed,this.hasFeature=x.default.hasFeature,this._setCachingModule=x.default._setCachingModule,this._collectCleanupFunctions=x.default._collectCleanupFunctions,this._fireReady=x.default._fireReady,this.initFeature=x.default.initFeature,"object"==typeof e&&null!==e){const t=e,{discovery:n}=t,r=a(t,["discovery"]);Object.assign(c.default,r),n&&"object"==typeof n&&Object.assign(c.default.discovery,n)}if(this.addEvents(["ready","authing","connecting","connected","disconnected","not-connected","conflict","error","features-loaded","scope-change-required","sync-interval-change","sync-started","sync-req-done","sync-done","wire-busy","wire-done","network-offline","network-online"]),this._setGPD({get:this._pendingGPD("get"),put:this._pendingGPD("put"),delete:this._pendingGPD("delete")}),k=(0,h.localStorageAvailable)(),k){this.apiKeys=(0,h.getJSONFromLocalStorage)("remotestorage:api-keys")||{};const e=localStorage.getItem("remotestorage:backend");"dropbox"===e||"googledrive"===e?this.setBackend(e):this.setBackend("remotestorage")}this._authorizedScope=this._loadAuthorizedScope(),this._scopeChangeRequired=!1,this._scopeChangeEvent=null;const t=this.on;this.on=function(e,n){const r=t.call(this,e,n);if("scope-change-required"===e&&this._scopeChangeRequired&&this._scopeChangeEvent&&setTimeout(()=>{n(this._scopeChangeEvent)},0),this._allLoaded)switch(e){case"features-loaded":setTimeout(n,0);break;case"ready":this.remote&&setTimeout(n,0);break;case"connected":this.remote&&this.remote.connected&&setTimeout(n,0);break;case"not-connected":this.remote&&!this.remote.connected&&setTimeout(n,0)}return r},this._init(),this.fireInitial=function(){this.local&&setTimeout(this.local.fireInitial.bind(this.local),0)}.bind(this),this.on("ready",this.fireInitial.bind(this)),this.loadModules()}get connected(){return this.remote.connected}get scopeChangeRequired(){return this._scopeChangeRequired}loadModules(){c.default.modules.forEach(this.addModule.bind(this))}authorize(e){if(this.access.setStorageType(this.remote.storageApi),void 0===e.scope&&(e.scope=this.access.scopeParameter),S.cordova&&"string"==typeof c.default.cordovaRedirectUri)e.redirectUri=c.default.cordovaRedirectUri;else{const t=p.default.getLocation();let n=t.origin;"/"!==t.pathname&&(n+=t.pathname),e.redirectUri=n}void 0===e.clientId&&(e.clientId=e.redirectUri.match(/^(https?:\/\/[^/]+)/)[0]),p.default.authorize(this,e)}impliedauth(e,t){e=e||this.remote.storageApi,t=t||String(document.location),(0,u.default)("ImpliedAuth proceeding due to absent authURL; storageApi = "+e+" redirectUri = "+t),this.remote.configure({token:p.default.IMPLIED_FAKE_TOKEN}),document.location.href=t}connect(e,t){if(this.setBackend("remotestorage"),e.indexOf("@")<0&&!e.match(/^(https?:\/\/)?[^\s\/$\.?#]+\.[^\s]*$/))this._emit("error",new A.DiscoveryError("Not a valid user address or URL."));else{if(e.indexOf("@")<0&&!e.match(/^https?:\/\//)&&(e=`https://${e}`),S.cordova){if("string"!=typeof c.default.cordovaRedirectUri)return void this._emit("error",new A.DiscoveryError("Please supply a custom HTTPS redirect URI for your Cordova app"));if(!S.cordova.InAppBrowser)return void this._emit("error",new A.DiscoveryError("Please include the InAppBrowser Cordova plugin to enable OAuth"))}this.remote.configure({userAddress:e}),this._emit("connecting"),A.Discover(e).then(n=>{if(this._emit("authing"),n.userAddress=e,this.remote.configure(n),!this.remote.connected)if(n.authURL)if(void 0===t)this.authorize({authURL:n.authURL});else{if("string"!=typeof t)throw new Error("Supplied bearer token must be a string");(0,u.default)("Skipping authorization sequence and connecting with known token"),this.remote.configure({token:t}),this._rememberAuthorizedScope(this.access.scopeParameter)}else this.impliedauth()},()=>{this._emit("error",new A.DiscoveryError("No storage information found for this user address."))})}}reconnect(){this.remote.configure({token:null}),"remotestorage"===this.backend?this.connect(this.remote.userAddress):this.remote.connect()}reauthorize(){this.reconnect()}disconnect(){this.remote&&this.remote.configure({userAddress:null,href:null,storageApi:null,token:null,refreshToken:null,properties:null}),this._forgetPendingScope(),this._rememberAuthorizedScope(null),this._setGPD({get:this._pendingGPD("get"),put:this._pendingGPD("put"),delete:this._pendingGPD("delete")});const e=this._cleanups.length;let t=0;const n=()=>{t++,t>=e&&(this._init(),(0,u.default)('Cleanups done, emitting "disconnected" event'),this._emit("disconnected"))};e>0?this._cleanups.forEach(e=>{const t=e(this);"object"==typeof t&&"function"==typeof t.then?t.then(n):n()}):n()}setBackend(e){if(this.backend=e,k&&(void 0!==e?localStorage.setItem("remotestorage:backend",e):localStorage.removeItem("remotestorage:backend")),void 0===e)return this._authorizedScope=null,this._scopeChangeRequired=!1,void(this._scopeChangeEvent=null);this._authorizedScope=this._loadAuthorizedScope(),this._checkScopeChange()}_rememberPendingScope(e){const t=T(e);k&&(t&&this.backend?localStorage.setItem(R,JSON.stringify({backend:this.backend,scope:t})):localStorage.removeItem(R))}_forgetPendingScope(){k&&localStorage.removeItem(R)}_rememberAuthorizedScope(e){const t=T(e);k?t&&this.backend?(localStorage.setItem(E,JSON.stringify({backend:this.backend,scope:t})),this._authorizedScope=t,this._checkScopeChange()):(localStorage.removeItem(E),this._authorizedScope=null,this._checkScopeChange()):(this._authorizedScope=t,this._checkScopeChange())}_completeAuthorization(e){const t=this._loadPendingScope()||T(e);this._forgetPendingScope(),t?this._rememberAuthorizedScope(t):this._checkScopeChange()}_checkScopeChange(){const e=T(this.access.scopeParameter),t=this._authorizedScope||this._loadAuthorizedScope(),n=!(!e||!t||e===t),r=n&&(!this._scopeChangeRequired||!this._scopeChangeEvent||this._scopeChangeEvent.requestedScope!==e||this._scopeChangeEvent.authorizedScope!==t);this._scopeChangeRequired=n,n?(this._scopeChangeEvent=this._buildScopeChangeEvent(e,t),r&&this._emit("scope-change-required",this._scopeChangeEvent)):this._scopeChangeEvent=null}_loadAuthorizedScope(){if(!k||!this.backend)return null;const e=L(E);return e&&e.backend===this.backend?T(e.scope):null}_loadPendingScope(){if(!k||!this.backend)return null;const e=L(R);return e&&e.backend===this.backend?T(e.scope):null}_buildScopeChangeEvent(e=T(this.access.scopeParameter),t=this._authorizedScope){return{requestedScope:e||"",authorizedScope:t||"",reauthorize:this.reauthorize.bind(this)}}onChange(e,t){this._pathHandlers.change[e]||(this._pathHandlers.change[e]=[]),this._pathHandlers.change[e].push(t)}enableLog(){c.default.logging=!0}disableLog(){c.default.logging=!1}log(...e){u.default.apply(A,e)}setApiKeys(e){const t=[M.GOOGLE,M.DROPBOX];if("object"!=typeof e||!Object.keys(e).every(e=>t.includes(e)))return console.error("setApiKeys() was called with invalid arguments"),!1;Object.keys(e).forEach(t=>{const n=e[t];if(n){switch(t){case M.DROPBOX:this.apiKeys[M.DROPBOX]={appKey:n},void 0!==this.dropbox&&this.dropbox.clientId===n||v.default._rs_init(this);break;case M.GOOGLE:this.apiKeys[M.GOOGLE]={clientId:n},void 0!==this.googledrive&&this.googledrive.clientId===n||y.default._rs_init(this)}return!0}delete this.apiKeys[t]}),k&&localStorage.setItem("remotestorage:api-keys",JSON.stringify(this.apiKeys))}setCordovaRedirectUri(e){if("string"!=typeof e||!e.match(/http(s)?:\/\//))throw new Error("Cordova redirect URI must be a URI string");c.default.cordovaRedirectUri=e}_setGPD(e,t){function n(e){return function(...n){return e.apply(t,n).then(I.bind(this))}}this.get=n(e.get),this.put=n(e.put),this.delete=n(e.delete)}_pendingGPD(e){return(...t)=>{const n=Array.prototype.slice.call(t);return new Promise((t,r)=>{this._pending.push({method:e,args:n,promise:{resolve:t,reject:r}})})}}_processPending(){this._pending.forEach(e=>{try{this[e.method](...e.args).then(e.promise.resolve,e.promise.reject)}catch(t){e.promise.reject(t)}}),this._pending=[]}_bindChange(e){e.on("change",this._dispatchEvent.bind(this,"change"))}_dispatchEvent(e,t){Object.keys(this._pathHandlers[e]).forEach(n=>{const r=n.length;t.path.substr(0,r)===n&&this._pathHandlers[e][n].forEach(e=>{const r={};for(const n in t)r[n]=t[n];r.relativePath=t.path.replace(new RegExp("^"+n),"");try{e(r)}catch(e){console.error("'change' handler failed: ",e,e.stack),this._emit("error",e)}})})}scope(e){if("string"!=typeof e)throw"Argument 'path' of baseClient.scope must be a string";return this.access.checkPathPermission(e,"r")||console.warn("WARNING: Please use remoteStorage.access.claim() to ask for access permissions first: https://remotestorage.io/rs.js/docs/api/access/classes/Access.html#claim"),new f.default(this,e)}getSyncInterval(){return c.default.syncInterval}setSyncInterval(e){if(!P(e))throw e+" is not a valid sync interval";const t=c.default.syncInterval;c.default.syncInterval=e,this._emit("sync-interval-change",{oldValue:t,newValue:e})}getBackgroundSyncInterval(){return c.default.backgroundSyncInterval}setBackgroundSyncInterval(e){if(!P(e))throw e+" is not a valid sync interval";const t=c.default.backgroundSyncInterval;c.default.backgroundSyncInterval=e,this._emit("sync-interval-change",{oldValue:t,newValue:e})}getCurrentSyncInterval(){return c.default.isBackground?c.default.backgroundSyncInterval:c.default.syncInterval}getRequestTimeout(){return c.default.requestTimeout}setRequestTimeout(e){if("number"!=typeof e)throw e+" is not a valid request timeout";c.default.requestTimeout=e}setupSyncCycle(){this.sync&&!this.sync.stopped&&((0,u.default)("[Sync] Setting up sync cycle"),this.on("sync-done",()=>{(0,u.default)("[Sync] Sync done. Setting timer to",this.getCurrentSyncInterval()),this.sync&&!this.sync.stopped&&(this._syncTimer&&clearTimeout(this._syncTimer),this._syncTimer=setTimeout(this.sync.sync.bind(this.sync),this.getCurrentSyncInterval()))}),this.sync.sync())}startSync(){return c.default.cache?(this.sync.stopped=!1,this.syncStopped=!1,this.sync.sync()):(console.warn("Nothing to sync, because caching is disabled."),Promise.resolve())}stopSync(){clearTimeout(this._syncTimer),this._syncTimer=void 0,this.sync?((0,u.default)("[Sync] Stopping sync"),this.sync.stopped=!0):((0,u.default)("[Sync] Will instantiate sync stopped"),this.syncStopped=!0)}addModule(e){const t=e.name,n=e.builder;if(Object.defineProperty(this,t,{configurable:!0,get:function(){const e=this._loadModule(t,n);return Object.defineProperty(this,t,{value:e}),e}}),-1!==t.indexOf("-")){const e=t.replace(/\-[a-z]/g,function(e){return e[1].toUpperCase()});Object.defineProperty(this,e,{get:function(){return this[t]}})}}_loadModule(e,t){if(t)return t(new f.default(this,"/"+e+"/"),new f.default(this,"/public/"+e+"/")).exports;throw"Unknown module: "+e}}t.RemoteStorage=A,A.SyncError=w.default,A.Unauthorized=_.default,A.Discover=b.default,A.DiscoveryError=b.default.DiscoveryError,A.util=C,Object.defineProperty(A.prototype,"access",{configurable:!0,get:function(){const e=new d.default(this);return Object.defineProperty(this,"access",{value:e,writable:!0,configurable:!0}),e}}),Object.defineProperty(A.prototype,"caching",{configurable:!0,get:function(){const e=new g.default(this);return Object.defineProperty(this,"caching",{value:e,writable:!0,configurable:!0}),e}}),(0,h.applyMixins)(A,[m.EventHandling]),t.default=A},368:function(e,t,n){var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,s){function o(e){try{l(r.next(e))}catch(e){s(e)}}function a(e){try{l(r.throw(e))}catch(e){s(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,a)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.isArrayBufferView=void 0,t.retryAfterMs=function(e){const t=1e3*parseInt(e.getResponseHeader("Retry-After"));return t>=1e3?t:Math.max(1500,Math.min(6e4,Math.round(o.default.syncInterval/(2.9+.2*Math.random()))))},t.requestWithTimeout=function(e,n,i){return r(this,void 0,void 0,function*(){return"function"==typeof fetch?function(e,t,n){return r(this,void 0,void 0,function*(){const r="function"==typeof AbortController?new AbortController:null;let i;const a=new Promise((e,t)=>{i=setTimeout(()=>{r&&r.abort(),t("timeout")},o.default.requestTimeout)});let l;const c={},u=fetch(t,{method:e,headers:n.headers,body:n.body,signal:r?r.signal:void 0}).then(e=>{switch((0,s.default)("[requests fetch]",e),e.headers.forEach((e,t)=>{c[t.toUpperCase()]=e}),l={readyState:4,status:e.status,statusText:e.statusText,response:void 0,getResponseHeader:e=>c[e.toUpperCase()]||null,responseType:n.responseType,responseURL:t},n.responseType){case"arraybuffer":return e.arrayBuffer();case"blob":return e.blob();case"json":return e.json();case void 0:case"":case"text":return e.text();default:throw new Error("responseType 'document' is not currently supported using fetch")}}).then(e=>(l.response=e,n.responseType&&"text"!==n.responseType||(l.responseText=e),l)).finally(()=>{clearTimeout(i)});return Promise.race([u,a])})}(e,n,i):"function"==typeof XMLHttpRequest?function(e,n,i){return r(this,void 0,void 0,function*(){return new Promise((r,a)=>{(0,s.default)("[requests XHR]",e,n);let l=!1;const c=setTimeout(()=>{l=!0,a("timeout")},o.default.requestTimeout),u=new XMLHttpRequest;if(u.open(e,n,!0),i.responseType&&(u.responseType=i.responseType),i.headers)for(const e in i.headers)u.setRequestHeader(e,i.headers[e]);u.onload=()=>{l||(clearTimeout(c),r(u))},u.onerror=e=>{l||(clearTimeout(c),a(e))};let h=i.body;"object"==typeof h&&!(0,t.isArrayBufferView)(h)&&h instanceof ArrayBuffer&&(h=new Uint8Array(h)),u.send(h)})})}(e,n,i):Promise.reject("[Requests] You need to add a polyfill for fetch or XMLHttpRequest")})};const s=i(n(334)),o=i(n(28));if("function"==typeof(n.g||window).ArrayBufferView)t.isArrayBufferView=function(e){return e&&e instanceof(n.g||window).ArrayBufferView};else{const e=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];t.isArrayBufferView=function(t){for(let n=0;n<8;n++)if(t instanceof e[n])return!0;return!1}}},941:function(e){e.exports=class{constructor(e){this._itemsRev={},this._storage={},this._canPropagate=!1,this.defaultValue=e,this.activatePropagation()}get(e){e=e.toLowerCase();let t=this._storage[e];return void 0===t&&(t=this.defaultValue,this._storage[e]=t),t}set(e,t){return e=e.toLowerCase(),this._storage[e]===t||(this._storage[e]=t,t||delete this._itemsRev[e],this._updateParentFolderItemRev(e,t),this._canPropagate&&this._propagate(e)),t}delete(e){return this.set(e,null)}deactivatePropagation(){return this._canPropagate=!1,!0}activatePropagation(){return this._canPropagate||(this._generateFolderRev("/"),this._canPropagate=!0),!0}_hashCode(e){let t=0;if(0===e.length)return t;for(let n=0;n0&&(n=this._generateHash(e))}return this.set(e,n),n}}},491:function(e){class t extends Error{constructor(e){super();const t=new Error("Schema not found: "+e);return t.name="SchemaNotFound",t}}e.exports=t},982:function(e){class t extends Error{constructor(e){super(),this.name="SyncError",this.message="Sync failed: ","string"==typeof e?this.message+=e:(this.message+=e.message,this.stack=e.stack,this.originalError=e)}}e.exports=t},313:function(e,t,n){var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,s){function o(e){try{l(r.next(e))}catch(e){s(e)}}function a(e){try{l(r.throw(e))}catch(e){s(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,a)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Sync=void 0;const s=i(n(28)),o=i(n(451)),a=i(n(93)),l=i(n(334)),c=i(n(275)),u=i(n(982)),h=i(n(503)),d=n(746);let p,f;function g(e,t,n){return{action:e,path:t,promise:n}}function m(e,t){return e.common.revision!==t&&(!e.remote||e.remote.revision!==t)}function y(e){return!!e.common&&!!e.common.revision}class v{constructor(e){this.numThreads=10,this._tasks={},this._running={},this._timeStarted={},this._finishedTasks=[],this.rs=e,this.rs.local.onDiff(e=>{this.addTask(e),this.doTasks()}),this.rs.caching.onActivate(e=>{this.addTask(e),this.doTasks()}),this.addEvents(["done","req-done"])}now(){return(new Date).getTime()}queueGetRequest(e){return r(this,void 0,void 0,function*(){return new Promise((t,n)=>{this.rs.remote.connected?this.rs.remote.online?(this.addTask(e,function(){this.rs.local.get(e).then(e=>t(e))}.bind(this)),this.doTasks()):n("cannot fulfill maxAge requirement - remote is not online"):n("cannot fulfill maxAge requirement - remote is not connected")})})}corruptServerItemsMap(e){if("object"!=typeof e||Array.isArray(e))return!0;for(const t in e){const n=e[t];if("object"!=typeof n)return!0;if("string"!=typeof n.ETag)return!0;if((0,d.isFolder)(t)){if(-1!==t.substring(0,t.length-1).indexOf("/"))return!0}else if(-1!==t.indexOf("/"))return!0}return!1}corruptItemsMap(e){if("object"!=typeof e||Array.isArray(e))return!0;for(const t in e)if("boolean"!=typeof e[t])return!0;return!1}corruptRevision(e){return"object"!=typeof e||Array.isArray(e)||e.revision&&"string"!=typeof e.revision||e.body&&"string"!=typeof e.body&&"object"!=typeof e.body||e.contentType&&"string"!=typeof e.contentType||e.contentLength&&"number"!=typeof e.contentLength||e.timestamp&&"number"!=typeof e.timestamp||e.itemsMap&&this.corruptItemsMap(e.itemsMap)}isCorrupt(e){return"object"!=typeof e||Array.isArray(e)||"string"!=typeof e.path||this.corruptRevision(e.common)||e.local&&this.corruptRevision(e.local)||e.remote&&this.corruptRevision(e.remote)||e.push&&this.corruptRevision(e.push)}hasTasks(){return Object.keys(this._tasks).length>0}collectDiffTasks(){return r(this,void 0,void 0,function*(){let e=0;return this.rs.local.forAllNodes(t=>{e>100||(this.isCorrupt(t)?((0,l.default)("[Sync] WARNING: corrupt node in local cache",t),"object"==typeof t&&t.path&&(this.addTask(t.path),e++)):(this.needsFetch(t)&&this.rs.access.checkPathPermission(t.path,"r")||(0,d.isDocument)(t.path)&&this.needsPush(t)&&this.rs.access.checkPathPermission(t.path,"rw"))&&(this.addTask(t.path),e++))}).then(()=>e)})}inConflict(e){return!(!e.local||!e.remote||void 0===e.remote.body&&!e.remote.itemsMap)}needsRefresh(e){return!!e.common&&(!e.common.timestamp||this.now()-e.common.timestamp>s.default.syncInterval)}needsFetch(e){return!!this.inConflict(e)||!(!e.common||void 0!==e.common.itemsMap||void 0!==e.common.body)||!(!e.remote||void 0!==e.remote.itemsMap||void 0!==e.remote.body)}needsPush(e){return!this.inConflict(e)&&(!(!e.local||e.push)||void 0)}needsRemotePut(e){return!(!e.local||void 0===e.local.body||!1===e.local.body)}needsRemoteDelete(e){return e.local&&!1===e.local.body}getParentPath(e){const t=e.match(/^(.*\/)([^\/]+\/?)$/);if(t)return t[1];throw new Error('Not a valid path: "'+e+'"')}deleteChildPathsFromTasks(){for(const e in this._tasks){const t=(0,d.pathsFromRoot)(e);for(let n=1;n{let t;if(this.needsRefresh(e)){try{t=this.getParentPath(e.path)}catch(e){}t&&this.rs.access.checkPathPermission(t,"r")?this.addTask(t):this.rs.access.checkPathPermission(e.path,"r")&&this.addTask(e.path)}}),this.deleteChildPathsFromTasks()})}flush(e){for(const t in e)"FLUSH"===this.rs.caching.checkPath(t)&&e[t]&&!e[t].local&&((0,l.default)("[Sync] Flushing",t),e[t]=void 0);return e}doTask(e){return r(this,void 0,void 0,function*(){return this.rs.local.getNodes([e]).then(t=>{const n=t[e];return void 0===n||function(e){return!(!e.remote||!e.remote.revision||e.remote.itemsMap||e.remote.body)}(n)?g("get",e,this.rs.remote.get(e)):this.needsRemotePut(n)?(n.push=(0,d.deepClone)(n.local),n.push.timestamp=this.now(),this.rs.local.setNodes(this.flush(t)).then(()=>{let t;return t=y(n)?{ifMatch:n.common.revision}:{ifNoneMatch:"*"},g("put",e,this.rs.remote.put(e,n.push.body,n.push.contentType,t))})):this.needsRemoteDelete(n)?(n.push={body:!1,timestamp:this.now()},this.rs.local.setNodes(this.flush(t)).then(()=>y(n)?g("delete",e,this.rs.remote.delete(e,{ifMatch:n.common.revision})):g("get",e,this.rs.remote.get(e)))):y(n)?g("get",e,this.rs.remote.get(e,{ifNoneMatch:n.common.revision})):g("get",e,this.rs.remote.get(e))})})}autoMergeFolder(e){if(e.remote.itemsMap&&(e.common=e.remote,delete e.remote,e.common.itemsMap)){for(const t in e.common.itemsMap)e.local.itemsMap[t]||(e.local.itemsMap[t]=!1);for(const t in e.local.itemsMap)e.common.itemsMap[t]||this.addTask(e.path+t);(0,d.equal)(e.local.itemsMap,e.common.itemsMap)&&delete e.local}return e}autoMergeDocument(e){var t;return function(e){return(!e.remote||!e.remote.revision||e.remote.revision===e.common.revision)&&(void 0===e.common.body&&!1===e.remote.body||e.remote.body===e.common.body&&e.remote.contentType===e.common.contentType)}(e)?delete(e=function(e){return e.remote&&!1===e.remote.body&&e.local&&!1===e.local.body&&delete e.local,e}(e)).remote:void 0!==e.remote.body&&(!1===e.remote.body&&!1===(null===(t=e.local)||void 0===t?void 0:t.body)||((0,l.default)("[Sync] Emitting conflict event"),setTimeout(this.rs.local.emitChange.bind(this.rs.local),10,{origin:"conflict",path:e.path,oldValue:e.local.body,newValue:e.remote.body,lastCommonValue:e.common.body,oldContentType:e.local.contentType,newContentType:e.remote.contentType,lastCommonContentType:e.common.contentType})),!1===e.remote.body?e.common={}:e.common=e.remote,delete e.remote,delete e.local),e}autoMerge(e){if(e.remote){if(e.local)return(0,d.isFolder)(e.path)?this.autoMergeFolder(e):this.autoMergeDocument(e);if((0,d.isFolder)(e.path))void 0!==e.remote.itemsMap&&(e.common=e.remote,delete e.remote);else if(void 0!==e.remote.body){const t={origin:"remote",path:e.path,oldValue:!1===e.common.body?void 0:e.common.body,newValue:!1===e.remote.body?void 0:e.remote.body,oldContentType:e.common.contentType,newContentType:e.remote.contentType};if(void 0===t.oldValue&&void 0===t.newValue||this.rs.local.emitChange(t),!1===e.remote.body)return;e.common=e.remote,delete e.remote}return e}e.common.body&&this.rs.local.emitChange({origin:"remote",path:e.path,oldValue:e.common.body,newValue:void 0,oldContentType:e.common.contentType,newContentType:void 0})}updateCommonTimestamp(e,t){return r(this,void 0,void 0,function*(){return this.rs.local.getNodes([e]).then(n=>(n[e]&&n[e].common&&n[e].common.revision===t&&(n[e].common.timestamp=this.now()),this.rs.local.setNodes(this.flush(n))))})}markChildren(e,t,n,i){return r(this,void 0,void 0,function*(){const r=[],s={},o={};for(const n in t)r.push(e+n),s[e+n]=t[n];for(const t in i)r.push(e+t);const a=yield this.rs.local.getNodes(r);let l,c;for(const t in a)if(c=a[t],s[t])c&&c.common?m(c,s[t].ETag)&&(n[t]=(0,d.deepClone)(c),n[t].remote={revision:s[t].ETag,timestamp:this.now()},n[t]=this.autoMerge(n[t])):(l=this.rs.caching.checkPath(t),"ALL"===l&&(n[t]={path:t,common:{timestamp:this.now()},remote:{revision:s[t].ETag,timestamp:this.now()}})),n[t]&&s[t]["Content-Type"]&&(n[t].remote.contentType=s[t]["Content-Type"]),n[t]&&s[t]["Content-Length"]&&(n[t].remote.contentLength=s[t]["Content-Length"]);else if(i[t.substring(e.length)]&&c&&c.common){if(c.common.itemsMap)for(const e in c.common.itemsMap)o[t+e]=!0;if(c.local&&c.local.itemsMap)for(const e in c.local.itemsMap)o[t+e]=!0;if(c.remote||(0,d.isFolder)(t))n[t]=void 0;else if(n[t]=this.autoMerge(c),void 0===n[t]){const r=n[this.getParentPath(t)],i=t.substring(e.length);r&&r.local&&(delete r.local.itemsMap[i],(0,d.equal)(r.local.itemsMap,r.common.itemsMap)&&delete r.local)}}const u=yield this.markRemoteDeletions(Object.keys(o),n);u&&(yield this.rs.local.setNodes(this.flush(u)))})}markRemoteDeletions(e,t){return r(this,void 0,void 0,function*(){if(0===e.length)return t;const n=yield this.rs.local.getNodes(e),r={};function i(e,t){if(e&&e.itemsMap)for(const n in e.itemsMap)r[t+n]=!0}for(const e in n){const r=n[e];r&&((0,d.isFolder)(e)?(i(r.common,e),i(r.local,e)):r.common&&void 0!==r.common.body&&(t[e]=(0,d.deepClone)(r),t[e].remote={body:!1,timestamp:this.now()},t[e]=this.autoMerge(t[e])))}const s=yield this.markRemoteDeletions(Object.keys(r),t);s&&(yield this.rs.local.setNodes(this.flush(s)))})}completeFetch(e,t,n,i){return r(this,void 0,void 0,function*(){let r,s;const o=(0,d.pathsFromRoot)(e);(0,d.isFolder)(e)?r=[e]:(s=o[1],r=[e,s]);const a=yield this.rs.local.getNodes(r),l=a[s],c={};let u,h=a[e];function p(e){if(e&&e.itemsMap)for(u in e.itemsMap)t[u]||(c[u]=!0)}if("object"==typeof h&&h.path===e&&"object"==typeof h.common||(h={path:e,common:{}},a[e]=h),h.remote={revision:i,timestamp:this.now()},(0,d.isFolder)(e))for(u in p(h.common),p(h.remote),h.remote.itemsMap={},t)h.remote.itemsMap[u]=!0;else h.remote.body=t,h.remote.contentType=n,l&&l.local&&l.local.itemsMap&&(u=e.substring(s.length),!1!==t?l.local.itemsMap[u]=!0:l.local.itemsMap[u]&&delete l.local.itemsMap[u],(0,d.equal)(l.local.itemsMap,l.common.itemsMap)&&delete l.local);return a[e]=this.autoMerge(h),{toBeSaved:a,missingChildren:c}})}completePush(e,t,n,i){return r(this,void 0,void 0,function*(){const r=yield this.rs.local.getNodes([e]),s=r[e];if(!s.push)throw this.stopped=!0,new Error("completePush called but no push version!");n?((0,l.default)("[Sync] We have a conflict"),s.remote&&s.remote.revision===i||(s.remote={revision:i||"conflict",timestamp:this.now()},delete s.push),r[e]=this.autoMerge(s)):(s.common={revision:i,timestamp:this.now()},"put"===t?(s.common.body=s.push.body,s.common.contentType=s.push.contentType,(0,d.equal)(s.local.body,s.push.body)&&s.local.contentType===s.push.contentType&&delete s.local,delete s.push):"delete"===t&&(!1===s.local.body?r[e]=void 0:delete s.push)),yield this.rs.local.setNodes(this.flush(r))})}dealWithFailure(e){return r(this,void 0,void 0,function*(){const t=yield this.rs.local.getNodes([e]);if(t[e])return delete t[e].push,this.rs.local.setNodes(this.flush(t))})}interpretStatus(e){const t={statusCode:e,successful:void 0,conflict:void 0,unAuth:void 0,notFound:void 0,changed:void 0,networkProblems:void 0};return"string"!=typeof e||"offline"!==e&&"timeout"!==e?"number"==typeof e?(t.successful=2===Math.floor(e/100)||304===e||412===e||404===e,t.conflict=412===e,t.unAuth=401===e&&this.rs.remote.token!==c.default.IMPLIED_FAKE_TOKEN||402===e||403===e,t.notFound=404===e,t.changed=304!==e,t):void 0:(t.successful=!1,t.networkProblems=!0,t)}handleGetResponse(e,t,n,i,s){return r(this,void 0,void 0,function*(){if(t.notFound&&(n=!!(0,d.isFolder)(e)&&{}),t.changed){const t=yield this.completeFetch(e,n,i,s);if((0,d.isFolder)(e)){if(this.corruptServerItemsMap(n))return(0,l.default)("[Sync] WARNING: Discarding corrupt folder description from server for "+e),!1;yield this.markChildren(e,n,t.toBeSaved,t.missingChildren)}else yield this.rs.local.setNodes(this.flush(t.toBeSaved))}else yield this.updateCommonTimestamp(e,s);return!0})}handleResponse(e,t,n){return r(this,void 0,void 0,function*(){const r=this.interpretStatus(n.statusCode);if(r.successful){if("get"===t)return this.handleGetResponse(e,r,n.body,n.contentType,n.revision);if("put"===t||"delete"===t)return this.completePush(e,t,r.conflict,n.revision).then(function(){return!0});throw new Error(`cannot handle response for unknown action ${t}`)}{let t;return t=r.unAuth?new h.default:r.networkProblems?new u.default("Network request failed."):new Error("HTTP response code "+r.statusCode+" received."),this.dealWithFailure(e).then(()=>{throw this.rs._emit("error",t),t})}})}finishTask(e){return r(this,arguments,void 0,function*(e,t=!0){if(void 0===e.action)return void delete this._running[e.path];if(t&&((0,l.default)("[Sync] queue finished task:",e.path),this._finishedTasks.push(e),this._finishedTasks.length>1))return void(0,l.default)("[Sync] delaying finished task:",e.path);let n;(0,l.default)("[Sync] run task:",e.path);try{n=yield e.promise}catch(t){(0,l.default)("[Sync] wire client rejects its promise",e.path,e.action,t),n={statusCode:"offline"}}try{const t=yield this.handleResponse(e.path,e.action,n);this.finishSuccessfulTask(e,t)}catch(t){this.finishUnsuccessfulTask(e,t)}})}finishSuccessfulTask(e,t){return r(this,void 0,void 0,function*(){if(this._finishedTasks.shift(),delete this._timeStarted[e.path],delete this._running[e.path],t&&this._tasks[e.path]){for(let t=0;t0?yield this.finishTask(this._finishedTasks[0],!1):yield this.collectTasks(!1).then(()=>{!this.hasTasks()||this.stopped?(this.done||(this.done=!0),this.rs._emit("sync-done",{completed:!0})):setTimeout(()=>{this.doTasks()},10)})})}finishUnsuccessfulTask(e,t){return r(this,void 0,void 0,function*(){(0,l.default)("[Sync]",t.message),this._finishedTasks.shift(),delete this._timeStarted[e.path],delete this._running[e.path],this.rs._emit("sync-req-done",{tasksRemaining:Object.keys(this._tasks).length}),this._finishedTasks.length>0?yield this.finishTask(this._finishedTasks[0],!1):this.done||(this.done=!0,this.rs._emit("sync-done",{completed:!1}))})}tasksWanted(){return this.rs.remote.connected?this.rs.remote.online?this.numThreads:1:0}doTasks(){const e=this.tasksWanted()-Object.keys(this._running).length;if(e<=0)return!0;this.hasTasks()&&!this.done&&this.rs._emit("sync-started");let t,n=0;for(t in this._tasks)if(!this._running[t]&&(this._timeStarted[t]=this.now(),this._running[t]=this.doTask(t).then(this.finishTask.bind(this)),n++,n>=e))break;return n>=e}collectTasks(){return r(this,arguments,void 0,function*(e=!0){if(!this.hasTasks()&&!this.stopped)return(yield this.collectDiffTasks())>0?void 0:e?this.collectRefreshTasks():void 0})}addTask(e,t){this._tasks[e]||(this._tasks[e]=[]),"function"==typeof t&&this._tasks[e].push(t)}sync(){return r(this,void 0,void 0,function*(){if(this.done=!1,!this.doTasks()){try{yield this.collectTasks()}catch(e){throw(0,l.default)("[Sync] Sync error",e),new Error("Local cache unavailable")}this.doTasks()}})}static _rs_init(e){p=function(){const t=new o.default;t.isBrowser()&&function(e,t){function n(e){const n=t.getCurrentSyncInterval();s.default.isBackground=!e;const r=t.getCurrentSyncInterval();t._emit("sync-interval-change",{oldValue:n,newValue:r})}e.on("background",()=>n(!1)),e.on("foreground",()=>n(!0))}(t,e),e.sync||(e.sync=new v(e),e.syncStopped&&((0,l.default)("[Sync] Initializing with sync stopped"),e.sync.stopped=!0,delete e.syncStopped)),e.setupSyncCycle()},f=function(){e.removeEventListener("connected",f),e.startSync()},e.on("ready",p),e.on("connected",f)}static _rs_cleanup(e){e.stopSync(),e.removeEventListener("ready",p),e.removeEventListener("connected",f),e.caching.resetActivationHandler(),e.sync=void 0,delete e.sync}}t.Sync=v,(0,d.applyMixins)(v,[a.default]),t.default=v},370:function(e,t,n){var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,s){function o(e){try{l(r.next(e))}catch(e){s(e)}}function a(e){try{l(r.throw(e))}catch(e){s(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,a)}l((r=r.apply(e,t||[])).next())})};const i=(this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}})(n(334));function s(e){return"dropbox"===this.backend&&!!e.match(/^\/public\/.*[^\/]$/)}const o={get:function(e,t){if(this.local){if(void 0===t)t="object"==typeof(n=this).remote&&n.remote.connected&&n.remote.online?2*n.getSyncInterval():((0,i.default)("Not setting default maxAge, because remote is offline or not connected"),!1);else if("number"!=typeof t&&!1!==t)return Promise.reject("Argument 'maxAge' must be 'false' or a number");return this.local.get(e,t,this.sync.queueGetRequest.bind(this.sync))}return this.remote.get(e);var n},put:function(e,t,n){return s.bind(this)(e)?o._wrapBusyDone.call(this,this.remote.put(e,t,n)):this.local?this.local.put(e,t,n):o._wrapBusyDone.call(this,this.remote.put(e,t,n))},delete:function(e,t){return this.local?this.local.delete(e,t):o._wrapBusyDone.call(this,this.remote.delete(e,t))},_wrapBusyDone:function(e){return r(this,void 0,void 0,function*(){return this._emit("wire-busy"),e.then(e=>(this._emit("wire-done",{success:!0}),Promise.resolve(e)),e=>(this._emit("wire-done",{success:!1}),Promise.reject(e)))})}};e.exports=o},613:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.BaseClientTypes=void 0;class n{constructor(){this.uris={},this.schemas={},this.aliases={}}declare(e,t,n,r){const i=e+"/"+t;if(r.extends){const t=r.extends.split("/"),n=1===t.length?e+"/"+t.shift():t.join("/"),s=this.uris[n];if(!s)throw"Type '"+i+"' tries to extend unknown schema '"+n+"'";r.extends=this.schemas[s]}this.uris[i]=n,this.aliases[n]=i,this.schemas[n]=r}resolveAlias(e){return this.uris[e]}getSchema(e){return this.schemas[e]}inScope(e){const t=e.length,n={};for(const r in this.uris)if(r.substr(0,t+1)===e+"/"){const e=this.uris[r];n[e]=this.schemas[e]}return n}}t.BaseClientTypes=n,t.default=new n},503:function(e){class t extends Error{constructor(e,t={}){super(),this.name="Unauthorized",this.message=void 0===e?"App authorization expired or revoked.":e,void 0!==t.code&&(this.code=t.code),this.stack=(new Error).stack}}e.exports=t},746:function(e,t,n){var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,s){function o(e){try{l(r.next(e))}catch(e){s(e)}}function a(e){try{l(r.throw(e))}catch(e){s(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,a)}l((r=r.apply(e,t||[])).next())})};Object.defineProperty(t,"__esModule",{value:!0}),t.toBase64=t.getTextFromArrayBuffer=t.stripLegacyCharsetBinary=t.shouldBeTreatedAsBinary=t.getJSONFromLocalStorage=t.localStorageAvailable=t.pathsFromRoot=t.deepClone=t.equal=t.bindAll=t.cleanPath=t.baseName=t.isDocument=t.isFolder=t.containingFolder=t.extend=t.getGlobalContext=t.globalContext=t.logError=void 0,t.generateCodeVerifier=function(){return r(this,arguments,void 0,function*(e=128){const t=new Uint8Array(e);crypto.getRandomValues(t);const n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~",r=Array.from(t).map(e=>n[e%66]),i=r.join(""),s=Uint8Array.from(r.map(e=>e.charCodeAt(0))),o=(a=yield crypto.subtle.digest("SHA-256",s),btoa(String.fromCharCode.apply(null,new Uint8Array(a))).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""));var a;return crypto.getRandomValues(t),{codeVerifier:i,codeChallenge:o,state:Array.from(t).map(e=>n[e%66]).join("")}})},t.applyMixins=function(e,t){t.forEach(t=>{Object.getOwnPropertyNames(t.prototype).forEach(n=>{Object.defineProperty(e.prototype,n,Object.getOwnPropertyDescriptor(t.prototype,n))})})},t.logError=e=>{"string"==typeof e?console.error(e):console.error(e.message,e.stack)},t.globalContext="undefined"!=typeof window?window:"object"==typeof self?self:n.g,t.getGlobalContext=()=>"undefined"!=typeof window?window:"object"==typeof self?self:n.g,t.extend=(...e)=>{const t=e[0];return Array.prototype.slice.call(e,1).forEach(function(e){for(const n in e)t[n]=e[n]}),t},t.containingFolder=e=>{if(""===e)return"/";if(!e)throw"Path not given!";return e.replace(/\/+/g,"/").replace(/[^\/]+\/?$/,"")},t.isFolder=e=>"/"===e.slice(-1),t.isDocument=e=>!(0,t.isFolder)(e),t.baseName=e=>{const n=e.split("/");return(0,t.isFolder)(e)?n[n.length-2]+"/":n[n.length-1]},t.cleanPath=e=>e.replace(/\/+/g,"/").split("/").map(encodeURIComponent).join("/").replace(/'/g,"%27"),t.bindAll=e=>{for(const t in this)"function"==typeof e[t]&&(e[t]=e[t].bind(e))},t.equal=(e,n,r=[])=>{let i;if(typeof e!=typeof n)return!1;if("number"==typeof e||"boolean"==typeof e||"string"==typeof e)return e===n;if("function"==typeof e)return e.toString()===n.toString();if(e instanceof ArrayBuffer&&n instanceof ArrayBuffer&&(e=new Uint8Array(e),n=new Uint8Array(n)),null===e||null===n)return e===n;if(e instanceof Array){if(e.length!==n.length)return!1;for(let i=0,s=e.length;i=0)continue;s=r.slice(),s.push(n[i])}if(!(0,t.equal)(e[i],n[i],s))return!1}}return!0},t.deepClone=e=>void 0===e?void 0:"function"==typeof structuredClone?structuredClone(e):JSON.parse(JSON.stringify(e)),t.pathsFromRoot=e=>{const t=[e],n=e.replace(/\/$/,"").split("/");for(;n.length>1;)n.pop(),t.push(n.join("/")+"/");return t},t.localStorageAvailable=()=>{const e=(0,t.getGlobalContext)();if(!("localStorage"in e))return!1;try{return e.localStorage.setItem("rs-check","1"),e.localStorage.removeItem("rs-check"),!0}catch(e){return!1}},t.getJSONFromLocalStorage=e=>{const n=(0,t.getGlobalContext)();try{return JSON.parse(n.localStorage.getItem(e))}catch(e){}},t.shouldBeTreatedAsBinary=(e,t)=>!!(t&&t.match(/charset=binary/)||/[\x00-\x08\x0E-\x1F\x80-\x9F\uFFFD]/.test(e)),t.stripLegacyCharsetBinary=e=>e?e.replace(/\s*;\s*charset=binary\b/i,""):e,t.getTextFromArrayBuffer=(e,n)=>new Promise(r=>{if("undefined"==typeof Blob||"undefined"==typeof FileReader)r(Buffer.from(e).toString(n));else{let i;const s=t.globalContext;if(s.BlobBuilder=s.BlobBuilder||s.WebKitBlobBuilder,void 0!==s.BlobBuilder){const t=new s.BlobBuilder;t.append(e),i=t.getBlob()}else i=new Blob([e]);const o=new FileReader;"function"==typeof o.addEventListener?o.addEventListener("loadend",function(e){r(e.target.result)}):o.onloadend=function(e){r(e.target.result)},o.readAsText(i,n)}}),t.toBase64=e=>{const n=(0,t.getGlobalContext)();return"btoa"in n?n.btoa(e):Buffer.from(e).toString("base64")}},600:function(e,t,n){var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,s){function o(e){try{l(r.next(e))}catch(e){s(e)}}function a(e){try{l(r.throw(e))}catch(e){s(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,a)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};const s=i(n(275)),o=i(n(93)),a=i(n(503)),l=i(n(334)),c=n(746),u=n(368),h=n(684);let d;const p="remotestorage:wireclient",f={"draft-dejong-remotestorage-00":2,"draft-dejong-remotestorage-01":3,"draft-dejong-remotestorage-02":4,"https://www.w3.org/community/rww/wiki/read-write-web-00#simple":1};class g extends h.RemoteBase{constructor(e){if(super(e),this._revisionCache={},d=(0,c.localStorageAvailable)(),this.addEvents(["connected","not-connected"]),d){const e=function(){const{userAddress:e,href:t,storageApi:n,token:r,properties:i}=(0,c.getJSONFromLocalStorage)(p)||{};return{userAddress:e,href:t,storageApi:n,token:r,properties:i}}();e&&setTimeout(()=>{this.configure(e)},0)}this.connected&&setTimeout(this._emit.bind(this),0,"connected")}_request(e,t,n,i,o,h,d){return r(this,void 0,void 0,function*(){if(this.isForbiddenRequestMethod(e,t))return Promise.reject(`Don't use ${e} on directories!`);let r;return n!==s.default.IMPLIED_FAKE_TOKEN&&(i.Authorization="Bearer "+n),this.rs._emit("wire-busy",{method:e,isFolder:(0,c.isFolder)(t)}),(0,u.requestWithTimeout)(e,t,{body:o,headers:i,responseType:"arraybuffer"}).then(n=>{if(this.online||(this.online=!0,this.rs._emit("network-online")),this.rs._emit("wire-done",{method:e,isFolder:(0,c.isFolder)(t),success:!0}),i=n.status,[401,403,404,412].indexOf(i)>=0)return(0,l.default)("[WireClient] Error response status",n.status),r=h?this.stripQuotes(n.getResponseHeader("ETag")):void 0,401===n.status&&this.rs._emit("error",new a.default),Promise.resolve({statusCode:n.status,revision:r});if(function(e){return[201,204,304].indexOf(e)>=0}(n.status)||200===n.status&&"GET"!==e)return r=this.stripQuotes(n.getResponseHeader("ETag")),(0,l.default)("[WireClient] Successful request",r),Promise.resolve({statusCode:n.status,revision:r});{const e=n.getResponseHeader("Content-Type");r=h?this.stripQuotes(n.getResponseHeader("ETag")):200===n.status?d:void 0;const t=function(e){let t,n="utf-8";return e&&(t=e.match(/charset=(.+)$/),t&&(n=t[1])),n}(e);return(0,c.shouldBeTreatedAsBinary)(n.response,e)?((0,l.default)("[WireClient] Successful request with unknown or binary mime-type",r),Promise.resolve({statusCode:n.status,body:n.response,contentType:(0,c.stripLegacyCharsetBinary)(e),revision:r})):(0,c.getTextFromArrayBuffer)(n.response,t).then(t=>((0,l.default)("[WireClient] Successful request",r),Promise.resolve({statusCode:n.status,body:t,contentType:(0,c.stripLegacyCharsetBinary)(e),revision:r})))}var i},n=>(this.online&&(this.online=!1,this.rs._emit("network-offline")),this.rs._emit("wire-done",{method:e,isFolder:(0,c.isFolder)(t),success:!1}),Promise.reject(n)))})}configure(e){if("object"!=typeof e)throw new Error("WireClient configure settings parameter should be an object");if(void 0!==e.userAddress&&(this.userAddress=e.userAddress),void 0!==e.href&&(this.href=e.href),void 0!==e.storageApi&&(this.storageApi=e.storageApi),void 0!==e.token&&(this.token=e.token),void 0!==e.properties&&(this.properties=e.properties),"string"==typeof this.storageApi){const e=f[this.storageApi]||5;this.supportsRevs=e>=2}this.href&&this.token?(this.connected=!0,this.online=!0,this._emit("connected")):this.connected=!1,d&&localStorage.setItem(p,JSON.stringify({userAddress:this.userAddress,href:this.href,storageApi:this.storageApi,token:this.token,properties:this.properties}))}get(e,t={}){if(!this.connected)return Promise.reject("not connected (path: "+e+")");const n={};return this.supportsRevs&&t.ifNoneMatch&&(n["If-None-Match"]=this.addQuotes(t.ifNoneMatch)),this._request("GET",this.href+(0,c.cleanPath)(e),this.token,n,void 0,this.supportsRevs,this._revisionCache[e]).then(t=>{if(!(0,c.isFolder)(e))return Promise.resolve(t);let n={};if(void 0!==t.body)try{t.body=JSON.parse(t.body)}catch(t){return Promise.reject("Folder description at "+this.href+(0,c.cleanPath)(e)+" is not JSON")}if(200===t.statusCode&&"object"==typeof t.body){if(0===Object.keys(t.body).length)t.statusCode=404;else if("http://remotestorage.io/spec/folder-description"===(r=t.body)["@context"]&&"object"==typeof r.items){for(const n in t.body.items)this._revisionCache[e+n]=t.body.items[n].ETag;n=t.body.items}else Object.keys(t.body).forEach(r=>{this._revisionCache[e+r]=t.body[r],n[r]={ETag:t.body[r]}});return t.body=n,Promise.resolve(t)}return Promise.resolve(t);var r})}put(e,t,n,r={}){if(!this.connected)return Promise.reject("not connected (path: "+e+")");const i={"Content-Type":n};return this.supportsRevs&&(r.ifMatch&&(i["If-Match"]=this.addQuotes(r.ifMatch)),r.ifNoneMatch&&(i["If-None-Match"]=this.addQuotes(r.ifNoneMatch))),this._request("PUT",this.href+(0,c.cleanPath)(e),this.token,i,t,this.supportsRevs)}delete(e,t={}){if(!this.connected)throw new Error("not connected (path: "+e+")");t||(t={});const n={};return this.supportsRevs&&t.ifMatch&&(n["If-Match"]=this.addQuotes(t.ifMatch)),this._request("DELETE",this.href+(0,c.cleanPath)(e),this.token,n,void 0,this.supportsRevs)}static _rs_init(e){e.remote=new g(e),e.remote.online=!0}static _rs_supported(){return"function"==typeof fetch||"function"==typeof XMLHttpRequest}static _rs_cleanup(){d&&delete localStorage[p]}}(0,c.applyMixins)(g,[o.default]),e.exports=g},439:function(e,t){var n;void 0===(n=function(){var e,t,n,r;Object.keys||(Object.keys=(e=Object.prototype.hasOwnProperty,t=!{toString:null}.propertyIsEnumerable("toString"),r=(n=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"]).length,function(i){if("object"!=typeof i&&"function"!=typeof i||null===i)throw new TypeError("Object.keys called on non-object");var s=[];for(var o in i)e.call(i,o)&&s.push(o);if(t)for(var a=0;a>>0;if(0===n)return-1;var r=0;if(arguments.length>1&&((r=Number(arguments[1]))!=r?r=0:0!==r&&r!==1/0&&r!==-1/0&&(r=(r>0||-1)*Math.floor(Math.abs(r)))),r>=n)return-1;for(var i=r>=0?r:Math.max(n-Math.abs(r),0);i0&&(t+=u.suffices["*"]&&n||",",u.suffices["*"]&&l&&(t+=u.name+"=")),t+=a?encodeURIComponent(h[p]).replace(/!/g,"%21"):o(h[p])}else if("object"==typeof h){l&&!u.suffices["*"]&&(t+=u.name+"=");var f=!0;for(var g in h)f||(t+=u.suffices["*"]&&n||","),f=!1,t+=a?encodeURIComponent(g).replace(/!/g,"%21"):o(g),t+=u.suffices["*"]?"=":",",t+=a?encodeURIComponent(h[g]).replace(/!/g,"%21"):o(h[g])}else l&&(t+=u.name,c&&""===h||(t+="=")),null!=u.truncate&&(h=h.substring(0,u.truncate)),t+=a?encodeURIComponent(h).replace(/!/g,"%21"):o(h)}return t};return w.varNames=u,{prefix:r,substitution:w}}function l(e){if(!(this instanceof l))return new l(e);for(var t=e.split("{"),n=[t.shift()],r=[],i=[],s=[];t.length>0;){var o=t.shift(),c=o.split("}")[0],u=o.substring(c.length+1),h=a(c);i.push(h.substitution),r.push(h.prefix),n.push(u),s=s.concat(h.substitution.varNames)}this.fill=function(e){for(var t=n[0],r=0;r0&&"/"===t.charAt(e.length-1)||"#"===n.charAt(0)||"?"===n.charAt(0))return!0}return!1}(t,e.id)&&void 0===this.schemas[e.id]&&(this.schemas[e.id]=e),e)if("enum"!==r)if("object"==typeof e[r])this.searchSchemas(e[r],t);else if("$ref"===r){var i=g(e[r]);i&&void 0===this.schemas[i]&&void 0===this.missingMap[i]&&(this.missingMap[i]=i)}},c.prototype.addSchema=function(e,t){if("string"!=typeof e||void 0===t){if("object"!=typeof e||"string"!=typeof e.id)return;e=(t=e).id}e===g(e)+"#"&&(e=g(e)),this.schemas[e]=t,delete this.missingMap[e],m(t,e),this.searchSchemas(t,e)},c.prototype.getSchemaMap=function(){var e={};for(var t in this.schemas)e[t]=this.schemas[t];return e},c.prototype.getSchemaUris=function(e){var t=[];for(var n in this.schemas)e&&!e.test(n)||t.push(n);return t},c.prototype.getMissingUris=function(e){var t=[];for(var n in this.missingMap)e&&!e.test(n)||t.push(n);return t},c.prototype.dropSchemas=function(){this.schemas={},this.reset()},c.prototype.reset=function(){this.missing=[],this.missingMap={},this.errors=[]},c.prototype.validateAll=function(e,t,n,r,i){var s;if(!(t=this.resolveRefs(t)))return null;if(t instanceof x)return this.errors.push(t),t;var o,a=this.errors.length,l=null,c=null;if(this.checkRecursive&&e&&"object"==typeof e){if(s=!this.scanned.length,e[this.validatedSchemasKey]){var u=e[this.validatedSchemasKey].indexOf(t);if(-1!==u)return this.errors=this.errors.concat(e[this.validationErrorsKey][u]),null}if(Object.isFrozen(e)&&-1!==(o=this.scannedFrozen.indexOf(e))){var h=this.scannedFrozenSchemas[o].indexOf(t);if(-1!==h)return this.errors=this.errors.concat(this.scannedFrozenValidationErrors[o][h]),null}if(this.scanned.push(e),Object.isFrozen(e))-1===o&&(o=this.scannedFrozen.length,this.scannedFrozen.push(e),this.scannedFrozenSchemas.push([])),l=this.scannedFrozenSchemas[o].length,this.scannedFrozenSchemas[o][l]=t,this.scannedFrozenValidationErrors[o][l]=[];else{if(!e[this.validatedSchemasKey])try{Object.defineProperty(e,this.validatedSchemasKey,{value:[],configurable:!0}),Object.defineProperty(e,this.validationErrorsKey,{value:[],configurable:!0})}catch(t){e[this.validatedSchemasKey]=[],e[this.validationErrorsKey]=[]}c=e[this.validatedSchemasKey].length,e[this.validatedSchemasKey][c]=t,e[this.validationErrorsKey][c]=[]}}var d=this.errors.length,p=this.validateBasic(e,t,i)||this.validateNumeric(e,t,i)||this.validateString(e,t,i)||this.validateArray(e,t,i)||this.validateObject(e,t,i)||this.validateCombinations(e,t,i)||this.validateHypermedia(e,t,i)||this.validateFormat(e,t,i)||this.validateDefinedKeywords(e,t,i)||null;if(s){for(;this.scanned.length;)delete this.scanned.pop()[this.validatedSchemasKey];this.scannedFrozen=[],this.scannedFrozenSchemas=[]}if(p||d!==this.errors.length)for(;n&&n.length||r&&r.length;){var f=n&&n.length?""+n.pop():null,g=r&&r.length?""+r.pop():null;p&&(p=p.prefixWith(f,g)),this.prefixErrors(d,f,g)}return null!==l?this.scannedFrozenValidationErrors[o][l]=this.errors.slice(a):null!==c&&(e[this.validationErrorsKey][c]=this.errors.slice(a)),this.handleError(p)},c.prototype.validateFormat=function(e,t){if("string"!=typeof t.format||!this.formatValidators[t.format])return null;var n=this.formatValidators[t.format].call(null,e,t);return"string"==typeof n||"number"==typeof n?this.createError(v.FORMAT_CUSTOM,{message:n},"","/format",null,e,t):n&&"object"==typeof n?this.createError(v.FORMAT_CUSTOM,{message:n.message||"?"},n.dataPath||"",n.schemaPath||"/format",null,e,t):null},c.prototype.validateDefinedKeywords=function(e,t,n){for(var r in this.definedKeywords)if(void 0!==t[r])for(var i=this.definedKeywords[r],s=0;s=h&&rt.maximum)return this.createError(v.NUMBER_MAXIMUM,{value:e,maximum:t.maximum},"","/maximum",null,e,t);if(t.exclusiveMaximum&&e===t.maximum)return this.createError(v.NUMBER_MAXIMUM_EXCLUSIVE,{value:e,maximum:t.maximum},"","/exclusiveMaximum",null,e,t)}return null},c.prototype.validateNaN=function(e,t){return"number"!=typeof e?null:!0===isNaN(e)||e===1/0||e===-1/0?this.createError(v.NUMBER_NOT_A_NUMBER,{value:e},"","/type",null,e,t):null},c.prototype.validateString=function(e,t,n){return this.validateStringLength(e,t,n)||this.validateStringPattern(e,t,n)||null},c.prototype.validateStringLength=function(e,t){return"string"!=typeof e?null:void 0!==t.minLength&&e.lengtht.maxLength?this.createError(v.STRING_LENGTH_LONG,{length:e.length,maximum:t.maxLength},"","/maxLength",null,e,t):null},c.prototype.validateStringPattern=function(e,t){if("string"!=typeof e||"string"!=typeof t.pattern&&!(t.pattern instanceof RegExp))return null;var n;if(t.pattern instanceof RegExp)n=t.pattern;else{var r,i="",s=t.pattern.match(/^\/(.+)\/([img]*)$/);s?(r=s[1],i=s[2]):r=t.pattern,n=new RegExp(r,i)}return n.test(e)?null:this.createError(v.STRING_PATTERN,{pattern:t.pattern},"","/pattern",null,e,t)},c.prototype.validateArray=function(e,t,n){return Array.isArray(e)&&(this.validateArrayLength(e,t,n)||this.validateArrayUniqueItems(e,t,n)||this.validateArrayItems(e,t,n))||null},c.prototype.validateArrayLength=function(e,t){var n;return void 0!==t.minItems&&e.lengtht.maxItems&&(n=this.createError(v.ARRAY_LENGTH_LONG,{length:e.length,maximum:t.maxItems},"","/maxItems",null,e,t),this.handleError(n))?n:null},c.prototype.validateArrayUniqueItems=function(e,t){if(t.uniqueItems)for(var n=0;nt.maxProperties&&(n=this.createError(v.OBJECT_PROPERTIES_MAXIMUM,{propertyCount:r.length,maximum:t.maxProperties},"","/maxProperties",null,e,t),this.handleError(n))?n:null},c.prototype.validateObjectRequiredProperties=function(e,t){if(void 0!==t.required)for(var n=0;n 10000");if(void 0!==v[e])throw new Error("Error already defined: "+e+" as "+v[e]);if(void 0!==b[t])throw new Error("Error code already used: "+b[t]+" as "+t);for(var r in v[e]=t,b[t]=e,_[e]=_[t]=n,C){var i=C[r];i[e]&&(i[t]=i[t]||i[e])}},reset:function(){i.reset(),this.error=null,this.missing=[],this.valid=!0},missing:[],error:null,valid:!0,normSchema:m,resolveUrl:f,getDocumentUri:g,errorCodes:v};return s.language(t||"en"),s}();return S.addLanguage("en-gb",_),S.tv4=S,S}.apply(t,[]))||(e.exports=n)},713:function(e){!function(){{const t=function(){var e={"http://webfinger.net/rel/avatar":"avatar",remotestorage:"remotestorage","http://tools.ietf.org/id/draft-dejong-remotestorage":"remotestorage",remoteStorage:"remotestorage","http://www.packetizer.com/rel/share":"share","http://webfinger.net/rel/profile-page":"profile",me:"profile",vcard:"vcard",blog:"blog","http://packetizer.com/rel/blog":"blog","http://schemas.google.com/g/2010#updates-from":"updates","https://camlistore.org/rel/server":"camilstore"},t={avatar:[],remotestorage:[],blog:[],vcard:[],updates:[],share:[],profile:[],camlistore:[]},n=["webfinger","host-meta","host-meta.json"],r="(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]?\\d)",i=new RegExp(`^(?:${r}\\.){3}${r}$`),s=new RegExp(`^(${r})\\.(${r})\\.(${r})\\.(${r})$`),o=/^localhost(?:\.localdomain)?(?::\d+)?$/,a=/^\d+$/,l=/^[a-zA-Z0-9.-]+$/,c=/^127\.(?:\d{1,3}\.){2}\d{1,3}$/;function u(e){const t=e.match(s);return t?t.slice(1).map(Number):null}function h(e){const[t,n]=e;return 0===t||10===t||127===t||172===t&&n>=16&&n<=31||192===t&&168===n||169===t&&254===n||t>=224&&t<=239||t>=240}class d extends Error{status;constructor(e,t){super(e),this.name="WebFingerError",this.status=t}}class p{static default;config;constructor(e={}){this.config={tls_only:void 0===e.tls_only||e.tls_only,uri_fallback:void 0!==e.uri_fallback&&e.uri_fallback,request_timeout:void 0!==e.request_timeout?e.request_timeout:1e4,allow_private_addresses:void 0!==e.allow_private_addresses&&e.allow_private_addresses}}async fetchJRD(e,t=0){if(t>3)throw new d("too many redirects");const n=new AbortController,r=setTimeout(()=>{n.abort()},this.config.request_timeout);try{const i=await fetch(e,{headers:{Accept:"application/jrd+json, application/json"},redirect:"manual",signal:n.signal});if(i.status>=300&&i.status<400){const n=i.headers.get("location");if(!n)throw new d("redirect without location header");let s;try{s=new URL(n,e)}catch{throw new d("invalid redirect URL")}try{await this.resolveAndValidateHost(s.host)}catch(e){if(e instanceof d)throw new d("redirect to private or internal address blocked");throw e}return clearTimeout(r),this.fetchJRD(s.toString(),t+1)}if(404===i.status)throw new d("resource not found",404);if(!i.ok)throw new d("error during request",i.status);const s=i.headers.get("content-type")||"",o=s.toLowerCase().split(";")[0].trim();"application/jrd+json"===o||("application/json"===o?console.debug('WebFinger: Server uses "application/json" instead of RFC 7033 recommended "application/jrd+json".'):console.warn(`WebFinger: Server returned unexpected content-type "${s}". Expected "application/jrd+json" per RFC 7033.`));const a=await i.text();if(p.isValidJSON(a))return a;throw new d("invalid json")}catch(e){if(n.signal.aborted)throw new d("request timed out");throw e}finally{clearTimeout(r)}}static isValidJSON(e){try{JSON.parse(e)}catch{return!1}return!0}static isLocalhost(e){return o.test(e)}static isPrivateAddress(e){let t=e;if(t.startsWith("[")&&t.includes("]:"))t=t.substring(1,t.lastIndexOf("]:"));else if(t.startsWith("[")&&t.endsWith("]"))t=t.substring(1,t.length-1);else if(t.includes(":")&&1===(t.match(/:/g)||[]).length){const e=t.split(":"),n=e[0],r=e[1];if(r&&!a.test(r))throw new d("invalid host format");(n.match(i)||n.match(l))&&(t=n)}if("localhost"===t||"127.0.0.1"===t||t.match(c)||"::1"===t||"localhost.localdomain"===t)return!0;const n=u(t);if(n)return h(n);const r=function(e){let t=e.toLowerCase();const n=u(t.substring(t.lastIndexOf(":")+1));if(n&&(t=`${t.substring(0,t.lastIndexOf(":"))}:${(n[0]<<8|n[1]).toString(16)}:${(n[2]<<8|n[3]).toString(16)}`),!/^[0-9a-f:]+$/.test(t)||t.indexOf("::")!==t.lastIndexOf("::"))return null;const r=t.includes("::"),[i="",s=""]=t.split("::"),o=i?i.split(":"):[],a=r&&s?s.split(":"):[],l=8-o.length-a.length;if(!r&&8!==o.length||r&&l<1)return null;const c=(r?[...o,...Array(l).fill("0"),...a]:o).map(e=>Number.parseInt(e,16));return 8===c.length&&c.every(e=>e>=0&&e<=65535)?c:null}(t);if(r){const e=r.slice(0,5).every(e=>0===e)&&65535===r[5],t=r.slice(0,6).every(e=>0===e);if(e||t)return h([r[6]>>8,255&r[6],r[7]>>8,255&r[7]]);const n=r[0];return 64512==(65024&n)||65152==(65472&n)||!(65280&~n)}return!1}static getExplicitPort(e){if(e.startsWith("[")){const t=e.lastIndexOf("]:");if(-1!==t){const n=e.substring(t+2);if(!a.test(n))throw new d("invalid host format");return n}return}if(1===(e.match(/:/g)||[]).length){const[,t=""]=e.split(":");if(!t||!a.test(t))throw new d("invalid host format");return t}}static parseAddress(e){const t=e.replace(/ /g,"");if(t.includes("://")){let e;try{e=new URL(t)}catch{throw new d("invalid URI format")}if(!e.hostname)throw new d("could not determine host from address");return{host:e.host}}const n=t.split("@");if(2!==n.length||!n[1])throw new d("invalid useraddress format");return{host:n[1]}}async resolveAndValidateHost(e){const t=p.normalizeHost(e);if(!this.config.allow_private_addresses){if(p.isPrivateAddress(t.host))throw new d("private or internal addresses are not allowed");await this.validateDNSResolution(t.hostname)}return t}static normalizeHost(e){const t=e.split("/")[0];if(!t||0===t.length)throw new d("invalid host format");if(/[?# @]/.test(t))throw new d("invalid characters in host");const n=p.getExplicitPort(t);let r;try{r=new URL(`http://${t}`)}catch{throw new d("invalid host format")}const i=r.hostname;return{host:n?`${i}:${n}`:r.host||i,hostname:i}}static async processJRD(n,r){const i=JSON.parse(r);if("object"!=typeof i||"object"!=typeof i.links)throw void 0!==i.error?new d(i.error):new d("unknown response from server");const s={object:i,idx:{properties:{name:void 0},links:JSON.parse(JSON.stringify(t))}};(Array.isArray(i.links)?i.links:[]).map(function(t){if(Object.prototype.hasOwnProperty.call(e,String(t.rel))){const n=e[String(t.rel)];if(s.idx.links[n]){const e={href:String(t.href||""),rel:String(t.rel||"")};Object.keys(t).map(function(n){"object"==typeof t[n]&&null!==t[n]?e[n]=t[n]:e[n]=String(t[n])}),s.idx.links[n].push(e)}}});const o=i.properties||{};for(const e in o)Object.prototype.hasOwnProperty.call(o,e)&&"http://packetizer.com/ns/name"===e&&(s.idx.properties.name=o[e]);return s}async validateDNSResolution(e){if(!e.match(i)&&!e.includes(":")&&"localhost"!==e&&"undefined"!=typeof process&&process.versions?.node){const t="function"==typeof process.getBuiltinModule?process.getBuiltinModule("node:dns")?.promises:null;if(t)try{const[n,r]=await Promise.allSettled([t.resolve4(e).catch(()=>[]),t.resolve6(e).catch(()=>[])]),i="fulfilled"===n.status?n.value:[],s="fulfilled"===r.status?r.value:[];for(const t of[...i,...s])if(p.isPrivateAddress(t))throw new d(`hostname ${e} resolves to private address ${t}`)}catch(e){if(e instanceof d)throw e}}}async lookup(e){if(!e)throw new d("address is required");const{host:t}=p.parseAddress(e),{host:r}=await this.resolveAndValidateHost(t);let i=0,s="https";p.isLocalhost(r)&&(s="http");const o=async e=>{if(this.config.uri_fallback&&i!==n.length-1)return i+=1,a();if(this.config.tls_only||"https"!==s)throw e instanceof Error?e:new d(String(e));return i=0,s="http",a()},a=async()=>{const t=(()=>{let t="";return e.split("://")[1]||(t="acct:"),s+"://"+r+"/.well-known/"+n[i]+"?resource="+t+e})();try{const e=await this.fetchJRD(t);return p.processJRD(t,e)}catch(e){return await o(e)}};return a()}async lookupLink(e,n){if(Object.prototype.hasOwnProperty.call(t,n)){const t=(await this.lookup(e)).idx.links[n];return 0===t.length?Promise.reject('no links found with rel="'+n+'"'):Promise.resolve(t[0])}return Promise.reject("unsupported rel "+n)}}return p.default=p,p}();e.exports=t,e.exports.default=t}}("undefined"!=typeof self&&self)}},t={};function n(r){var i=t[r];if(void 0!==i)return i.exports;var s=t[r]={exports:{}};return e[r].call(s.exports,s,s.exports,n),s.exports}return n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n(423).default}()},"object"==typeof e&&"object"==typeof t?t.exports=r():"function"==typeof define&&define.amd?define("RemoteStorage",[],r):"object"==typeof e?e.RemoteStorage=r():n.RemoteStorage=r()}),tB=l(eB(),1),nB="0123456789ABCDEFGHJKMNPQRSTVWXYZ";!function(e){e.Base32IncorrectEncoding="B32_ENC_INVALID",e.DecodeTimeInvalidCharacter="DEC_TIME_CHAR",e.DecodeTimeValueMalformed="DEC_TIME_MALFORMED",e.EncodeTimeNegative="ENC_TIME_NEG",e.EncodeTimeSizeExceeded="ENC_TIME_SIZE_EXCEED",e.EncodeTimeValueMalformed="ENC_TIME_MALFORMED",e.PRNGDetectFailure="PRNG_DETECT",e.ULIDInvalid="ULID_INVALID",e.Unexpected="UNEXPECTED",e.UUIDInvalid="UUID_INVALID"}(HU||(HU={}));var rB=class extends Error{constructor(e,t){super(`${t} (${e})`),this.name="ULIDError",this.code=e}};function iB(e){const t=Math.floor(32*e())%32;return nB.charAt(t)}var sB={type:"object",properties:{id:{type:"string"},title:{type:"string"},lat:{type:"number"},lon:{type:"number"},geohash:{type:"string"},zoom:{type:"number"},url:{type:"string"},osmId:{type:"string"},osmType:{type:"string"},osmTags:{type:"object",additionalProperties:{type:"string"}},description:{type:"string"},tags:{type:"array",items:{type:"string"},default:[]},createdAt:{type:"string",format:"date-time"},updatedAt:{type:"string",format:"date-time"}},required:["id","title","lat","lon","geohash","createdAt"]},oB={type:"object",properties:{id:{type:"string"},title:{type:"string"},color:{type:"string"},placeRefs:{type:"array",items:{type:"object",properties:{id:{type:"string"},geohash:{type:"string"}},required:["id","geohash"]},default:[]},createdAt:{type:"string",format:"date-time"},updatedAt:{type:"string",format:"date-time"}},required:["id","title","placeRefs","createdAt"]},aB={name:"places",builder:function(e){function t(e,t){return`${e.substring(0,2)}/${e.substring(2,4)}/${t}`}e.declareType("place",sB),e.declareType("list",oB);const n={async getAll(){const t=await e.getAll("_lists/");return t?Object.values(t):[]},async get(t){const n=`_lists/${t}`;return e.getObject(n)},async getPlaces(n){const r=await this.get(n);if(!r)throw new Error(`List not found: ${n}`);if(!r.placeRefs||!Array.isArray(r.placeRefs))return[];const i=r.placeRefs.map(async n=>{if(!n.id||!n.geohash)return null;const r=t(n.geohash,n.id);return await e.getObject(r)});return(await Promise.all(i)).filter(e=>!!e)},async create(t,n,r){const i=`_lists/${t}`;let s=await e.getObject(i);const o=(new Date).toISOString();return s?(s.title=n,r&&(s.color=r),s.updatedAt=o):s={id:t,title:n,color:r,placeRefs:[],createdAt:o,updatedAt:o},await e.storeObject("list",i,s),s},async delete(t){await e.remove(`_lists/${t}`)},async addPlace(t,n,r){const i=`_lists/${t}`,s=await e.getObject(i);if(!s)throw new Error(`List not found: ${t}`);return-1===s.placeRefs.findIndex(e=>e.id===n)&&(s.placeRefs.push({id:n,geohash:r}),s.updatedAt=(new Date).toISOString(),await e.storeObject("list",i,s)),s},async removePlace(t,n){const r=`_lists/${t}`,i=await e.getObject(r);if(!i)throw new Error(`List not found: ${t}`);const s=i.placeRefs.findIndex(e=>e.id===n);return-1!==s&&(i.placeRefs.splice(s,1),i.updatedAt=(new Date).toISOString(),await e.storeObject("list",r,i)),i},async initDefaults(){for(const e of[{id:"to-go",title:"Want to go",color:"#2e9e4f"},{id:"to-do",title:"To do",color:"#2a7fff"}])await this.get(e.id)||await this.create(e.id,e.title,e.color)}};return{exports:{lists:n,store:async function(n){const r=function(e){const t=(new Date).toISOString(),n=e.id||function(e,t){const n=t||function(){const e="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:null,t=e&&(e.crypto||e.msCrypto)||null;if("function"==typeof t?.getRandomValues)return()=>{const e=new Uint8Array(1);return t.getRandomValues(e),e[0]/256};if("function"==typeof t?.randomBytes)return()=>t.randomBytes(1).readUInt8()/256;throw new rB(HU.PRNGDetectFailure,"Failed to find a reliable PRNG")}();return function(e,t=10){if(isNaN(e))throw new rB(HU.EncodeTimeValueMalformed,`Time must be a number: ${e}`);if(e>0xffffffffffff)throw new rB(HU.EncodeTimeSizeExceeded,`Cannot encode a time larger than 281474976710655: ${e}`);if(e<0)throw new rB(HU.EncodeTimeNegative,`Time must be positive: ${e}`);if(!1===Number.isInteger(e))throw new rB(HU.EncodeTimeValueMalformed,`Time must be an integer: ${e}`);let n,r="";for(let i=t;i>0;i--)n=e%32,r=nB.charAt(n)+r,e=(e-n)/32;return r}(!e||isNaN(e)?Date.now():e,10)+function(e,t){let n="";for(;e>0;e--)n=iB(t)+n;return n}(16,n)}(),r="number"==typeof e.lat?e.lat:0,i="number"==typeof e.lon?e.lon:0,s=e.title||"Untitled Place",o=e.geohash||Bj.encode(r,i,10),a={...e,id:n,lat:r,lon:i,geohash:o,title:s,tags:e.tags||[],createdAt:e.createdAt||t,updatedAt:e.id?t:void 0};return Object.keys(a).forEach(e=>{void 0===a[e]&&delete a[e]}),a}(n),i=t(r.geohash,r.id);return await e.storeObject("place",i,r),r},remove:async function(r,i){if(!r||!i)throw new Error("Both id and geohash are required to remove a place");const s=await n.getAll();await Promise.all(s.map(async t=>{const n=t.placeRefs.findIndex(e=>e.id===r);-1!==n&&(t.placeRefs.splice(n,1),t.updatedAt=(new Date).toISOString(),await e.storeObject("list",`_lists/${t.id}`,t))}));const o=t(i,r);return e.remove(o)},get:async function(n,r){if(!n||!r)throw new Error("Both id and geohash are required to get a place");const i=t(r,n);return e.getObject(i)},listByPrefix:async function(t){let n="";return t.length>=2&&(n+=t.substring(0,2)+"/"),t.length>=4&&(n+=t.substring(2,4)+"/"),e.getAll(n)},getPlaces:async function(t){const n=[],r=async t=>{const r=await e.getAll(t,!1);r&&Object.values(r).forEach(e=>{e&&"object"==typeof e&&!e.toString().endsWith("/")&&n.push(e)})};if(t&&t.length>0){const e=t.map(async e=>{if(e.length<4)return;const t=e.substring(0,2),n=e.substring(2,4);await r(`${t}/${n}/`)});await Promise.all(e)}else{const t=e=>{if(!e||"object"!=typeof e)return[];let t=e;return e.items&&"object"==typeof e.items&&(t=e.items),Object.keys(t).filter(e=>e.endsWith("/")&&!e.startsWith("@"))},n=t(await e.getListing("",!1));await Promise.all(n.map(async n=>{const i=await e.getListing(n,!1),s=t(i);await Promise.all(s.map(async e=>{await r(n+e)}))}))}return n}}}}},lB=o((e,t)=>{var n,r;n=self,r=()=>(()=>{var e={d:(t,n)=>{for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},t={};function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function r(e){var t=function(e){if("object"!=n(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=n(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==n(t)?t:t+""}e.d(t,{default:()=>i});const i=function(){return e=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.rs=t,this.leaveOpen=!!n.leaveOpen&&n.leaveOpen,this.autoCloseAfter=n.autoCloseAfter?n.autoCloseAfter:1500,this.skipInitial=!!n.skipInitial&&n.skipInitial,this.logging=!!n.logging&&n.logging,this.parentContainerEl=null,n.hasOwnProperty("modalBackdrop")){if("boolean"!=typeof n.modalBackdrop&&"onlySmallScreens"!==n.modalBackdrop)throw'options.modalBackdrop has to be true/false or "onlySmallScreens"';this.modalBackdrop=n.modalBackdrop}else this.modalBackdrop="onlySmallScreens";this.active=!1,this.online=!1,this.closed=!1,this.lastSynced=null,this.lastSyncedUpdateLoop=null},t=[{key:"log",value:function(){if(this.logging){for(var e,t=arguments.length,n=new Array(t),r=0;r

Connect your storage

To sync data with your account
';var t=document.createElement("style");return t.innerHTML='#remotestorage-widget {\n z-index: 21000000;\n}\n\n.rs-widget {\n box-sizing: border-box;\n overflow: hidden;\n max-width: 350px;\n padding: 10px;\n margin: 10px;\n border-radius: 3px;\n background-color: #fff;\n box-shadow: 0 1px 2px 0 rgba(0,0,0,0.1), 0 3px 8px 0 rgba(0,0,0,0.2);\n font-family: arial, sans-serif;\n font-size: 16px;\n color: #333;\n will-change: max-height, height, width, opacity, max-width, background, box-shadow;\n transition-property: width, height, opacity, max-width, max-height, background, box-shadow;\n transition-duration: 300ms;\n}\n\n.rs-widget * {\n box-sizing: border-box;\n}\n\n.rs-widget .rs-hidden {\n display: none;\n}\n\n.rs-box {\n overflow: hidden;\n will-change: height;\n transition-property: height, width, max-height;\n transition-duration: 300ms;\n transition-timing-function: ease-in;\n opacity: 0;\n max-height: 0px;\n}\n\n.rs-box.rs-selected:not([aria-hidden=true]) {\n opacity: 1;\n max-height: 420px;\n}\n\n/* Main logo */\n.rs-main-logo {\n float: left;\n height: 36px;\n width: 36px;\n margin-top: 1px;\n margin-right: 0.625em;\n transition: margin-left 300ms ease-out, transform 300ms ease-out;\n cursor: pointer;\n}\n.rs-widget .rs-backend-remotestorage svg#rs-main-logo-remotestorage {\n display: block;\n}\n.rs-widget[class*="rs-backend-"]:not(.rs-backend-remotestorage) svg#rs-main-logo-remotestorage {\n display: none;\n}\n.rs-widget.rs-backend-dropbox svg#rs-main-logo-dropbox {\n display: block;\n}\n.rs-widget:not(.rs-backend-dropbox) svg#rs-main-logo-dropbox {\n display: none;\n}\n.rs-widget.rs-backend-googledrive svg#rs-main-logo-googledrive {\n display: block;\n}\n.rs-widget:not(.rs-backend-googledrive) svg#rs-main-logo-googledrive {\n display: none;\n}\n\npolygon.rs-logo-shape {\n fill: #FF4B03;\n}\n\npolygon.rs-logo-shape,\n#rs-main-logo-dropbox path,\n#rs-main-logo-googledrive path {\n transition-property: fill;\n transition-duration: 0.5s;\n}\n\n.rs-offline polygon.rs-logo-shape,\n.rs-offline #rs-main-logo-dropbox path,\n.rs-offline #rs-main-logo-googledrive path {\n fill: #888;\n transition-property: fill;\n transition-duration: 0.5s;\n}\n\n/* Hide everything except logo when connected and clicked outside of box */\n.rs-closed {\n max-width: 56px;\n background-color: transparent;\n box-shadow: none;\n opacity: 0.5;\n\n transition: max-height 100ms ease-out 0ms, max-width 300ms ease-out 300ms, background 300ms ease-in 200ms, opacity 300ms ease 200ms;\n}\n\n.rs-closed:hover {\n cursor: pointer;\n opacity: 1;\n}\n\n.rs-box-initial {\n transition-duration: 0ms;\n}\n\n.rs-box-initial:hover {\n cursor: pointer;\n}\n\n.rs-widget a {\n color: #0093cc;\n}\n\n/* HEADLINE */\n.rs-small-headline {\n font-size: 1em;\n font-weight: bold;\n margin: 0;\n margin-bottom: 2px;\n height: 1.2em;\n word-break: break-all;\n overflow: hidden;\n line-height: 1em;\n}\n\n.rs-sub-headline {\n word-break: break-all;\n overflow: hidden;\n color: #666;\n font-size: 0.92em;\n height: 1.2em;\n}\n.rs-big-headline {\n font-size: 1.625em;\n font-weight: normal;\n text-align: center;\n margin-top: 20px;\n margin-bottom: 20px;\n}\n\n/* BUTTONS */\n.rs-button {\n font: inherit;\n color: inherit;\n background-color: transparent;\n border: 1px solid #dcdcdc;\n border-radius: 3px;\n cursor: pointer;\n}\n.rs-button-small {\n padding: 0.6em 0.7em;\n margin-left: 0.2em;\n transition: border-color 300ms ease-out;\n}\n.rs-button-small svg {\n vertical-align: top;\n}\n.rs-button-wrap {\n margin-top: 10px;\n}\n\n.rs-button-wrap img,\n.rs-button-wrap svg {\n float: left;\n margin-right: 0.6em;\n width: 40px;\n height: 40px;\n}\n\n.rs-button-big {\n padding: 15px 10px;\n margin-bottom: 10px;\n display: block;\n width: 100%;\n text-align: left;\n transition: box-shadow 200ms;\n}\n.rs-button-big > div {\n font-size: 1.125em;\n padding: 10px 0;\n}\n.rs-button-big:hover {\n box-shadow: 0 1px 2px 0 rgba(0,0,0,0.1), 0 3px 8px 0 rgba(0,0,0,0.2);\n}\n.rs-button-big:active {\n background-color: #eee;\n box-shadow: 0 1px 2px 0 rgba(0,0,0,0.1), 0 3px 8px 0 rgba(0,0,0,0.2);\n}\n.rs-button-big:last-child {\n margin-bottom: 0;\n}\n\n.rs-content {\n padding: 0 10px 10px 10px;\n}\n\n\n.rs-state-choose .rs-main-logo,\n.rs-state-sign-in .rs-main-logo {\n margin-left: 45%;\n float: none;\n}\n\n.rs-sign-in-form input[type=text] {\n padding: 15px 10px;\n display: block;\n width: 100%;\n font: inherit;\n height: 52px;\n border: 1px solid #aaa;\n border-radius: 0;\n box-shadow: none;\n}\n.rs-sign-in-form button.rs-connect {\n padding: 15px 10px;\n margin-top: 20px;\n margin-bottom: 15px;\n display: block;\n width: 100%;\n border: none;\n border-radius: 3px;\n background-color: #3fb34f;\n font: inherit;\n color: #fff;\n transition: box-shadow 200ms, background-color 200ms;\n}\n\n.rs-sign-in-form button.rs-connect:hover {\n cursor: pointer;\n background-color: #4BCB5D;\n box-shadow: 0 1px 2px 0 rgba(0,0,0,0.1), 0 3px 8px 0 rgba(0,0,0,0.2);\n}\n\n.rs-sign-in-form button.rs-connect:active {\n background-color: #3fb34f;\n}\n\n.rs-sign-in-form button.rs-connect:disabled,\n.rs-sign-in-form button.rs-connect:disabled:hover {\n background-color: #aaa;\n}\n\n.rs-sign-in-form button.rs-connecting svg {\n height: 1em;\n width: auto;\n vertical-align: middle;\n margin-left: 0.5em;\n animation: rs-spin 1s linear infinite;\n}\n\n.rs-sign-in-error.rs-hidden,\n.rs-box-error.rs-hidden {\n height: 0;\n}\n\n.rs-sign-in-error.rs-visible,\n.rs-box-error.rs-visible {\n height: auto;\n border-radius: 3px;\n padding: 0.5em 0.5em;\n margin-top: 0.5em;\n text-align: center;\n background-color: rgba(255,0,0,0.1);\n color: darkred;\n}\n\n.rs-box-error {\n display: flex;\n flex-direction: row;\n}\n\n.rs-box-error .rs-error-message {\n flex: auto;\n}\n\n /*Choose provider box */\n.rs-box-choose {\n text-align: center;\n overflow: hidden;\n}\n\n.rs-box-choose p {\n margin-top: 0;\n margin-bottom: 20px;\n line-height: 1.4em;\n}\n\n/*Connected box */\n.rs-box-connected {\n display: flex;\n flex-direction: row;\n height: 40px;\n transition: height 0s;\n}\n.rs-connected-text {\n flex: auto;\n min-width: 0;\n}\n.rs-box-connected .rs-user {\n font-weight: bold;\n text-overflow: ellipsis;\n overflow: hidden;\n word-break: keep-all;\n}\n.rs-connected-buttons, .rs-error-buttons {\n flex: none;\n}\n.rs-disconnect:hover {\n border-color: #FF2D2D;\n}\n.rs-disconnect:hover .rs-icon{\n fill: #FF2D2D;\n}\n.rs-sync:hover {\n border-color: #FFBB0C;\n}\n.rs-sync:hover .rs-icon {\n fill: #FFBB0C;\n}\n.rs-sync.rs-rotate {\n border-color: #FFBB0C;\n}\n.rs-sync.rs-rotate .rs-icon {\n fill: #FFBB0C;\n animation: rs-spin 1s linear infinite;\n}\n\n/* Floating widget styles (top right corner) */\n.rs-floating {\n position: fixed;\n top: 0;\n right: 0;\n}\n\n@keyframes rs-spin {\n 100% {\n transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n/* Small/mobile screens */\n@media screen and (max-width: 420px) {\n .rs-widget {\n font-size: 100%;\n transition: all 300ms ease-out;\n max-width: 400px;\n }\n .rs-floating {\n position: relative;\n top: auto;\n right: auto\n }\n .rs-closed {\n max-width: 56px;\n }\n .rs-state-choose,\n .rs-state-sign-in {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n max-width: 100%;\n }\n}\n\n/* remove dotted outline border on Firefox */\n.rs-widget a:focus,\n.rs-widget a:active,\n.rs-widget button:focus,\n.rs-widget input:focus {\n outline:none;\n}\n.rs-widget button::-moz-focus-inner,\n.rs-widget input[type="button"]::-moz-focus-inner {\n border:0;\n}\n\n/* prevent rounded buttons on mobile Safari */\n.rs-widget button,\n.rs-widget input[type="button"] {\n -webkit-appearance: none;\n}\n\n.remotestorage-widget-modal-backdrop {\n display: none;\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n background-color: rgba(0, 0, 0, 0.5);\n opacity: 0;\n transition: opacity 0.3s linear;\n}\n\n.remotestorage-widget-modal-backdrop.visible {\n opacity: 1;\n transition: opacity 0.3s linear;\n}\n',e.appendChild(t),e}},{key:"setModalClass",value:function(){if(this.modalBackdrop){if("onlySmallScreens"===this.modalBackdrop&&!this.isSmallScreen())return;this.rsWidget.classList.add("rs-modal")}}},{key:"setupElements",value:function(){if(!this.parentContainerEl)throw new Error("Parent container element not found");this.rsWidget=this.parentContainerEl.querySelector(".rs-widget"),this.rsBackdrop=this.parentContainerEl.querySelector(".remotestorage-widget-modal-backdrop"),this.rsInitial=this.parentContainerEl.querySelector(".rs-box-initial"),this.rsChoose=this.parentContainerEl.querySelector(".rs-box-choose"),this.rsConnected=this.parentContainerEl.querySelector(".rs-box-connected"),this.rsSignIn=this.parentContainerEl.querySelector(".rs-box-sign-in"),this.rsConnectedLabel=this.parentContainerEl.querySelector(".rs-box-connected .rs-sub-headline"),this.rsChooseRemoteStorageButton=this.parentContainerEl.querySelector("button.rs-choose-rs"),this.rsChooseDropboxButton=this.parentContainerEl.querySelector("button.rs-choose-dropbox"),this.rsChooseGoogleDriveButton=this.parentContainerEl.querySelector("button.rs-choose-googledrive"),this.rsErrorBox=this.parentContainerEl.querySelector(".rs-box-error .rs-error-message"),this.rs.apiKeys.hasOwnProperty("googledrive")||this.rsChooseGoogleDriveButton.parentNode.removeChild(this.rsChooseGoogleDriveButton),this.rs.apiKeys.hasOwnProperty("dropbox")||this.rsChooseDropboxButton.parentNode.removeChild(this.rsChooseDropboxButton),this.rsSignInForm=this.parentContainerEl.querySelector(".rs-sign-in-form"),this.rsAddressInput=this.rsSignInForm.querySelector("input[name=rs-user-address]"),this.rsConnectButton=this.parentContainerEl.querySelector(".rs-connect"),this.rsDisconnectButton=this.parentContainerEl.querySelector(".rs-disconnect"),this.rsSyncButton=this.parentContainerEl.querySelector(".rs-sync"),this.rsLogo=this.parentContainerEl.querySelector(".rs-widget-icon"),this.rsErrorReconnectLink=this.parentContainerEl.querySelector(".rs-box-error a.rs-reconnect"),this.rsErrorDisconnectButton=this.parentContainerEl.querySelector(".rs-box-error button.rs-disconnect"),this.rsConnectedUser=this.parentContainerEl.querySelector(".rs-connected-text h1.rs-user")}},{key:"setupHandlers",value:function(){var e=this;this.rs.on("connected",function(){return e.eventHandler("connected")}),this.rs.on("ready",function(){return e.eventHandler("ready")}),this.rs.on("disconnected",function(){return e.eventHandler("disconnected")}),this.rs.on("network-online",function(){return e.eventHandler("network-online")}),this.rs.on("network-offline",function(){return e.eventHandler("network-offline")}),this.rs.on("error",function(t){return e.eventHandler("error",t)}),this.setEventListeners(),this.setClickHandlers()}},{key:"attach",value:function(e){var t=this.createHtmlTemplate(e);if(this.parentContainerEl,e instanceof HTMLElement)this.parentContainerEl=e;else if("string"==typeof e){if(this.parentContainerEl=document.getElementById(e),!this.parentContainerEl)throw new Error('Failed to find target DOM element with id="'+e+'"')}else{if(e)throw new Error("Unknown element type. Expected instance of HTMLElement or type of string.");this.parentContainerEl=document.body}this.parentContainerEl.appendChild(t),this.setupElements(),this.setupHandlers(),this.setInitialState(),this.setModalClass()}},{key:"setEventListeners",value:function(){var e=this;this.rsSignInForm.addEventListener("submit",function(t){t.preventDefault();var n=e.parentContainerEl.querySelector("input[name=rs-user-address]").value.trim();e.disableConnectButton(),e.rs.connect(n)})}},{key:"showChooseOrSignIn",value:function(){this.rsWidget.classList.contains("rs-modal")&&(this.rsBackdrop.style.display="block",this.rsBackdrop.classList.add("visible")),this.rs.apiKeys&&Object.keys(this.rs.apiKeys).length>0?this.setState("choose"):this.setState("sign-in")}},{key:"setClickHandlers",value:function(){var e=this;this.rsInitial.addEventListener("click",function(){return e.showChooseOrSignIn()}),this.rsChooseRemoteStorageButton.addEventListener("click",function(){e.setState("sign-in"),e.rsAddressInput.focus()}),this.rsChooseDropboxButton.addEventListener("click",function(){return e.rs.dropbox.connect()}),this.rsChooseGoogleDriveButton.addEventListener("click",function(){return e.rs.googledrive.connect()}),this.rsDisconnectButton.addEventListener("click",function(){return e.rs.disconnect()}),this.rsErrorReconnectLink.addEventListener("click",function(){return e.rs.reconnect()}),this.rsErrorDisconnectButton.addEventListener("click",function(){return e.rs.disconnect()}),this.rs.hasFeature("Sync")&&this.rsSyncButton.addEventListener("click",function(){e.rsSyncButton.classList.contains("rs-rotate")?(e.rs.stopSync(),e.rsSyncButton.classList.remove("rs-rotate")):(e.rsConnectedLabel.textContent="Synchronizing",e.rs.startSync(),e.rsSyncButton.classList.add("rs-rotate"))}),document.addEventListener("click",function(){return e.close()}),this.rsWidget.addEventListener("click",function(e){return e.stopPropagation()}),this.rsLogo.addEventListener("click",function(){return e.toggle()})}},{key:"toggle",value:function(){this.closed?this.open():"initial"===this.state?this.showChooseOrSignIn():this.close()}},{key:"open",value:function(){this.closed=!1,this.rsWidget.classList.remove("rs-closed"),this.shouldCloseWhenSyncDone=!1;var e=this.parentContainerEl.querySelector(".rs-box.rs-selected");e&&e.setAttribute("aria-hidden","false")}},{key:"close",value:function(){var e=this;if("error"!==this.state){if(!this.leaveOpen&&this.active){this.closed=!0,this.rsWidget.classList.add("rs-closed");var t=this.parentContainerEl.querySelector(".rs-box.rs-selected");t&&t.setAttribute("aria-hidden","true")}else this.active?this.setState("connected"):this.setInitialState();this.rsWidget.classList.contains("rs-modal")&&(this.rsBackdrop.classList.remove("visible"),setTimeout(function(){e.rsBackdrop.style.display="none"},300))}}},{key:"disableConnectButton",value:function(){this.rsConnectButton.disabled=!0,this.rsConnectButton.classList.add("rs-connecting"),this.rsConnectButton.innerHTML="Connecting ".concat('\n \n \n \n \n \n \n\n')}},{key:"enableConnectButton",value:function(){this.rsConnectButton.disabled=!1,this.rsConnectButton.textContent="Connect",this.rsConnectButton.classList.remove("rs-connecting")}},{key:"setOffline",value:function(){this.online&&(this.rsWidget.classList.add("rs-offline"),this.rsConnectedLabel.textContent="Offline",this.online=!1)}},{key:"setOnline",value:function(){this.online||(this.rsWidget.classList.remove("rs-offline"),this.active&&(this.rsConnectedLabel.textContent="Connected")),this.online=!0}},{key:"setBackendClass",value:function(e){this.rsWidget.classList.remove("rs-backend-remotestorage"),this.rsWidget.classList.remove("rs-backend-dropbox"),this.rsWidget.classList.remove("rs-backend-googledrive"),e&&this.rsWidget.classList.add("rs-backend-".concat(e))}},{key:"showErrorBox",value:function(e){this.rsErrorBox.innerHTML=e,this.setState("error")}},{key:"hideErrorBox",value:function(){this.rsErrorBox.innerHTML="",this.close()}},{key:"handleSyncStarted",value:function(){var e=this;this.syncInProgress=!0,this.rsSyncButton.classList.add("rs-rotate"),setTimeout(function(){e.syncInProgress&&(e.rsConnectedLabel.textContent="Synchronizing")},1e3)}},{key:"handleDiscoveryError",value:function(e){var t=this.parentContainerEl.querySelector(".rs-sign-in-error");t.innerHTML=e.message,t.classList.remove("rs-hidden"),t.classList.add("rs-visible"),this.enableConnectButton()}},{key:"handleSyncError",value:function(){this.setOffline()}},{key:"handleUnauthorized",value:function(e){e.code&&"access_denied"===e.code?this.rs.disconnect():(this.open(),this.showErrorBox(e.message+" "),this.rsErrorBox.appendChild(this.rsErrorReconnectLink),this.rsErrorReconnectLink.classList.remove("rs-hidden"))}},{key:"updateLastSyncedStatus",value:function(){var e=new Date;this.online?(this.lastSynced=e,this.rsConnectedLabel.textContent="Synced"):this.rsWidget.classList.contains("rs-state-unauthorized")||(this.rsConnectedLabel.textContent="Offline")}},{key:"isSmallScreen",value:function(){return window.innerWidth<421}}],t&&function(e,t){for(var n=0;nMs(e.cancelId))}))),s=r.has(t)?r.get(t).debouncedTask:(...n)=>{r.delete(t),e[t](...n)};let o=As(e,s,...n);r.set(t,{debouncedTask:s,cancelId:o})}var dB=a({default:()=>pB}),pB=class extends pp{static{dF(this.prototype,"osm",[dp])}#B=void fF(this,"osm");static{dF(this.prototype,"toast",[dp])}#Ie=void fF(this,"toast");rs;widget;static{dF(this.prototype,"placesInView",[Vr],function(){return[]})}#Pe=void fF(this,"placesInView");static{dF(this.prototype,"savedPlaces",[Vr],function(){return[]})}#Me=void fF(this,"savedPlaces");static{dF(this.prototype,"loadedPrefixes",[Vr],function(){return[]})}#Ae=void fF(this,"loadedPrefixes");static{dF(this.prototype,"currentBbox",[Vr],function(){return null})}#Oe=void fF(this,"currentBbox");static{dF(this.prototype,"lists",[Vr],function(){return[]})}#Ne=void fF(this,"lists");static{dF(this.prototype,"version",[Vr],function(){return 0})}#Fe=void fF(this,"version");static{dF(this.prototype,"initialSyncDone",[Vr],function(){return!1})}#De=void fF(this,"initialSyncDone");static{dF(this.prototype,"connected",[Vr],function(){return!1})}#ze=void fF(this,"connected");static{dF(this.prototype,"userAddress",[Vr],function(){return null})}#je=void fF(this,"userAddress");static{dF(this.prototype,"isWidgetOpen",[Vr],function(){return!1})}#Ue=void fF(this,"isWidgetOpen");isNewConnection=!0;constructor(){super(...arguments),this.checkInitialConnectionState(),this.rs=new tB.default({modules:[aB]}),this.rs.access.claim("places","rw"),this.rs.caching.enable("/places/"),window.remoteStorage=this.rs,this.widget=new cB.default(this.rs,{leaveOpen:!0,skipInitial:!0}),this.rs.on("ready",()=>{}),this.rs.on("error",e=>{e&&(console.info("[rs] Error —",`${e.name}: ${e.message}`),"Unauthorized"===e.name&&this.showConnectWidget())}),this.rs.on("connected",()=>{this.connected=!0,this.userAddress=this.rs.remote.userAddress,this.isNewConnection&&(this.toast.show("Remote storage connected",3e3),this.isNewConnection=!1),this.loadLists()}),this.rs.on("not-connected",()=>{this.loadLists()}),this.rs.on("disconnected",()=>{this.connected=!1,this.userAddress=null,this.placesInView=[],this.savedPlaces=[],this.loadedPrefixes=[],this.lists=[],this.initialSyncDone=!1,this.isNewConnection=!0}),this.rs.on("sync-done",()=>{this.initialSyncDone||(this.initialSyncDone=!0,this.loadLists())}),this.rs.scope("/places/").on("change",e=>{e.relativePath.startsWith("_lists/")?this.loadLists():(this.handlePlaceChange(e),hB(this,"reloadCurrentView",200))})}checkInitialConnectionState(){this.isNewConnection=!0;try{if(window.localStorage)for(const e of["remotestorage:wireclient","remotestorage:dropbox","remotestorage:googledrive"]){const t=window.localStorage.getItem(e);if(t){const e=JSON.parse(t);if(e&&e.token){this.isNewConnection=!1;break}}}}catch(e){console.warn("Failed to check localStorage for existing connection:",e)}}handlePlaceChange(e){const{newValue:t,relativePath:n}=e,r=n.split("/"),i=r[r.length-1];if(t){const e={...t,id:i},n=this.savedPlaces.findIndex(e=>e.id===i);if(-1!==n){const t=[...this.savedPlaces];t[n]=e,this.savedPlaces=t}else this.savedPlaces=[...this.savedPlaces,e]}else this.savedPlaces=this.savedPlaces.filter(e=>e.id!==i)}get places(){return this.rs.places}notifyChange(){this.version++,hB(this,"reloadCurrentView",200)}reloadCurrentView(){if(!this.currentBbox)return;const e=qj(this.currentBbox);console.debug("Reloading view due to changes, prefixes:",e),this.loadAllPlaces(e)}async loadLists(){try{if(!this.places.lists)return;await this.places.lists.initDefaults();const e=await this.places.lists.getAll();this.lists=e||[],this.lists.forEach(e=>{"to-go"===e.id?e.icon="bookmark":"to-do"===e.id&&(e.icon="check-square")}),this.refreshPlaceListAssociations()}catch(e){console.error("Failed to load lists:",e)}}refreshPlaceListAssociations(){const e=new Map;this.lists.forEach(t=>{t.placeRefs&&Array.isArray(t.placeRefs)&&t.placeRefs.forEach(n=>{n.id&&(e.has(n.id)||e.set(n.id,[]),e.get(n.id).push(t.id))})});const t=t=>(t._listIds=e.get(t.id)||[],t);this.savedPlaces=this.savedPlaces.map(e=>t({...e})),this.placesInView=this.placesInView.map(e=>t({...e}))}async togglePlaceList(e,t,n){if(!e)return;let r=e;if(!e.id||!e.geohash){if(!n)return;r=await this.storePlace(e)}try{return n?await this.places.lists.addPlace(t,r.id,r.geohash):await this.places.lists.removePlace(t,r.id),await this.loadLists(),this.findPlaceById(r.id)}catch(i){throw console.error("Failed to toggle place in list:",i),i}}async getPlacesInList(e){return this.places&&this.places.lists?this.places.lists.getPlaces(e):[]}async loadPlacesInBounds(e){const t=qj(e).filter(e=>!this.loadedPrefixes.includes(e));0!==t.length&&(console.debug("Loading new prefixes:",t),await this.loadAllPlaces(t),this.loadedPrefixes=[...this.loadedPrefixes,...t],this.currentBbox=e)}async loadAllPlaces(e=null){try{const t=await this.places.getPlaces(e);if(t&&Array.isArray(t)){if(e){const n=new Set(e),r=this.placesInView.filter(e=>{if(!e.lat||!e.lon)return!1;try{const t=Bj.encode(e.lat,e.lon,4);return!n.has(t)}catch{return!0}});this.placesInView=[...r,...t]}else this.placesInView=t;this.refreshPlaceListAssociations()}else e||(this.placesInView=[]);console.debug("Loaded saved places:",this.placesInView.length)}catch(t){console.error("Failed to load places:",t)}}findPlaceById(e){if(!e)return;const t=String(e);let n=this.savedPlaces.find(e=>e.id&&String(e.id)===t);return n||(n=this.placesInView.find(e=>e.id&&String(e.id)===t),n||(n=this.savedPlaces.find(e=>e.osmId&&String(e.osmId)===t),n||(n=this.placesInView.find(e=>e.osmId&&String(e.osmId)===t),n)))}isPlaceSaved(e){return!!this.findPlaceById(e)}async storePlace(e){const t=await this.places.store(e);return this.savedPlaces.some(e=>e.id===t.id)?this.savedPlaces=this.savedPlaces.map(e=>e.id===t.id?t:e):this.savedPlaces=[...this.savedPlaces,t],this.placesInView.some(e=>e.id===t.id)?this.placesInView=this.placesInView.map(e=>e.id===t.id?t:e):this.placesInView=[...this.placesInView,t],t}async updatePlace(e){const t=await this.places.store(e),n=this.savedPlaces.findIndex(e=>e.id===t.id);if(-1!==n){const e=[...this.savedPlaces];e[n]=t,this.savedPlaces=e}return this.placesInView=this.placesInView.map(e=>e.id===t.id?t:e),t}async removePlace(e){await this.places.remove(e.id,e.geohash),this.savedPlaces=this.savedPlaces.filter(t=>t.id!==e.id),this.placesInView.length>0&&(this.placesInView=this.placesInView.filter(t=>t.id!==e.id))}async refreshPlace(e){if(!(e&&e.id&&e.osmId&&e.osmType))return null;try{console.debug(`Checking for updates for ${e.title} (${e.osmId})`);const t=await this.osm.fetchOsmObject(e.osmId,e.osmType,{forceFresh:!0});if(!t)return console.warn("Could not fetch fresh data for",e.osmId),null;let n=!1;const r={},i=Math.abs(e.lat-t.lat),s=Math.abs(e.lon-t.lon);(i>1e-5||s>1e-5)&&(n=!0,r.lat=t.lat,r.lon=t.lon);const o=e.osmTags||{},a=t.osmTags||{},l=new Set([...Object.keys(o),...Object.keys(a)]);for(const e of l)if(o[e]!==a[e]){n=!0,r.osmTags=a;break}if(!n)return console.debug("No changes detected for",e.title),null;console.debug("Changes detected:",r);const c={...e,...r},u=UU(o),h=UU(a);return e.title===u&&u!==h&&(c.title=h),await this.updatePlace(c)}catch(t){return console.error("Failed to refresh place:",t),null}}showConnectWidget(){this.isWidgetOpen=!0,document.querySelector(".rs-widget")||this.widget.attach("rs-widget-container")}static{pF(this.prototype,"showConnectWidget",[ql])}closeWidget(){this.isWidgetOpen=!1}static{pF(this.prototype,"closeWidget",[ql])}disconnect(){this.rs.disconnect(),this.isWidgetOpen=!1}static{pF(this.prototype,"disconnect",[ql])}},fB=a({default:()=>gB}),gB=class extends pp{static{dF(this.prototype,"message",[Vr],function(){return null})}#Be=void fF(this,"message");static{dF(this.prototype,"isVisible",[Vr],function(){return!1})}#$e=void fF(this,"isVisible");timeoutId=null;show(e,t=3e3){this.message=e,this.isVisible=!0,this.timeoutId&&clearTimeout(this.timeoutId),this.timeoutId=setTimeout(()=>{this.isVisible=!1},t)}},mB=a({getDistance:()=>yB});function yB(e,t,n,r){const i=e*Math.PI/180,s=n*Math.PI/180,o=(n-e)*Math.PI/180,a=(r-t)*Math.PI/180,l=Math.sin(o/2)*Math.sin(o/2)+Math.cos(i)*Math.cos(s)*Math.sin(a/2)*Math.sin(a/2);return 2*Math.atan2(Math.sqrt(l),Math.sqrt(1-l))*6371e3}var vB=a({getIcon:()=>_B,isIconFilled:()=>xB}),bB={activity:'',angelfish:'\n \n',"arrow-left":'',barbell:'\n \n',banknote:'\n \n',"badge-shield-with-fire":'\n \n',"beach-umbrella-in-ground":'\n \n',"beer-mug-with-foam":'\n \n',bookmark:'',"boxing-glove-up":'\n \n',"burger-and-drink-cup-with-straw":'\n \n',bridge:'\n \n',bus:'\n \n',camera:'\n \n',"feather-camera":'',"check-square":'',"chevron-left":'',"chevron-right":'',"cigarette-with-smoke-curl":'\n \n',"city-gate":'\n \n',climbing_wall:'\n \n',check:'',"alert-circle":'',"alert-triangle":'',"classical-building":'\n \n',"classical-building-with-clock":'\n \n',"classical-building-with-dome-and-flag":'\n \n',"classical-building-with-flag":'\n \n',"commercial-building":'\n \n',"clothes-hanger":'\n \n',cleaver:'\n \n',cloth:'\n \n',cocktail:'\n \n',clock:'',"coffee-bean":'\n \n',"comedy-mask-and-tragedy-mask":'\n \n',croissant:'\n \n',"cup-and-saucer":'\n \n',database:'',donut:'\n \n',edit:'',eyeglasses:'\n \n',facebook:'',"fancy-mirror-with-reflection-and-stars":'\n \n',"family-restroom-symbol":'\n \n',film:'\n \n',"fingernail-polished":'\n \n',fish:'\n \n',"flag-checkered":'\n \n',"flower-bouquet":'\n \n',"fork-and-knife":'\n \n',fort:'\n \n',gift:'',globe:'',gravestone:'\n \n',"grecian-vase":'\n \n',"greek-cross":'\n \n',heart:'',home:'',"ice-cream-on-cone":'\n \n',"industrial-building":'\n \n',info:'',"info-i":'\n \n',instagram:'',jewel:'\n \n',"log-in":'',"log-out":'',"lowrise-building":'\n \n',mail:'',map:'',"map-pin":'',"market-stall":'\n \n',"memorial-stone-with-inscription":'\n \n',menu:'',"mobile-phone-with-keypad-and-antenna":'\n \n',"molar-tooth":'\n \n',"more-horizontal":'',"more-vertical":'',navigation:'',"needle-and-spool-of-thread":'\n \n',nostrich:'\n \n\n',"open-book":'\n \n',palace:'\n \n',"person-cricket-batting-at-cricket-ball":'\n \n',"person-boarding-tram-with-destination-display-and-pantograph-on-tram-track":'\n \n',"person-jockeying-racehorse":'\n \n',"person-playing-tennis":'\n \n',"person-running":'\n \n',"person-sleeping-in-bed":'\n \n',"person-swimming-in-water":'\n \n',"person-swinging-golf-club":'\n \n',phone:'',"plane-top-right":'\n \n',"plant-in-raised-planter":'\n \n',"place-of-worship-building":'\n \n',"play-structure-with-slide":'\n \n',"police-officer-with-stop-arm":'\n \n',plus:'',"round-structure-with-flag":'\n \n',remotestorage:'\n\x3c!-- Creator: CorelDRAW X7 --\x3e\n\n \n',"sailing-ship-in-water":'\n \n',"scissors-open":'\n \n',"shipwreck-in-water":'\n \n',"steam-train-on-railway-track":'\n \n',"shopping-bag":'\n \n',search:'',server:'',settings:'',"shopping-basket":'\n \n',"shopping-cart":'\n \n',"table-tennis-paddle":'\n \n',"tattoo-machine":'\n \n',toolbox:'\n \n',target:'',"trash-2":'',"upload-cloud":'',"tree-and-bench-with-backrest":'\n \n',user:'',"village-buildings":'\n \n',"wall-hanging-with-mountains-and-sun":'\n \n',"womens-and-mens-restroom-symbol":'\n \n',whatsapp:'\n\n \n\n',wikipedia:'\n\n\n',winding_way_wide:'\n \n',parking_p:'\n \n',car:'\n \n',"car-and-wrench":'\n \n',"castle-keep":'\n \n',x:'',zap:'',"loading-ring":''},wB=["fork-and-knife","wikipedia","whatsapp","cup-and-saucer","coffee-bean","shopping-basket","person-sleeping-in-bed","loading-ring","nostrich"];function _B(e){return bB[e]}function xB(e){return wB.includes(e)}var CB=a({POI_ICON_RULES:()=>SB,getIconNameForTags:()=>kB,getIconSvgForTags:()=>EB}),SB=[{tags:{cuisine:"donut"},icon:"donut"},{tags:{cuisine:"doughnut"},icon:"donut"},{tags:{cuisine:"coffee_shop"},icon:"coffee-bean"},{tags:{cuisine:"coffee"},icon:"coffee-bean"},{tags:{amenity:"ice_cream"},icon:"ice-cream-on-cone"},{tags:{cuisine:"ice_cream"},icon:"ice-cream-on-cone"},{tags:{shop:"ice_cream"},icon:"ice-cream-on-cone"},{tags:{amenity:"cafe"},icon:"cup-and-saucer"},{tags:{amenity:"restaurant"},icon:"fork-and-knife"},{tags:{amenity:"fast_food"},icon:"burger-and-drink-cup-with-straw"},{tags:{amenity:"pub"},icon:"beer-mug-with-foam"},{tags:{amenity:"bar"},icon:"cocktail"},{tags:{amenity:"food_court"},icon:"fork-and-knife"},{tags:{amenity:"childcare"},icon:"family-restroom-symbol"},{tags:{amenity:"community_centre"},icon:"family-restroom-symbol"},{tags:{amenity:"social_centre"},icon:"family-restroom-symbol"},{tags:{amenity:"social_facility"},icon:"family-restroom-symbol"},{tags:{amenity:"bank"},icon:"banknote"},{tags:{amenity:"place_of_worship"},icon:"place-of-worship-building"},{tags:{amenity:"townhall"},icon:"classical-building-with-clock"},{tags:{building:"townhall"},icon:"classical-building-with-clock"},{tags:{amenity:"fire_station"},icon:"badge-shield-with-fire"},{tags:{amenity:"police"},icon:"police-officer-with-stop-arm"},{tags:{amenity:"toilets"},icon:"womens-and-mens-restroom-symbol"},{tags:{amenity:"school"},icon:"open-book"},{tags:{amenity:"driving_school"},icon:"car"},{tags:{shop:"coffee"},icon:"coffee-bean"},{tags:{shop:"tea"},icon:"coffee-bean"},{tags:{shop:"pastry"},icon:"donut"},{tags:{shop:"supermarket"},icon:"shopping-cart"},{tags:{shop:"convenience"},icon:"shopping-basket"},{tags:{shop:"grocery"},icon:"shopping-basket"},{tags:{shop:"greengrocer"},icon:"shopping-basket"},{tags:{shop:"bakery"},icon:"croissant"},{tags:{shop:"butcher"},icon:"cleaver"},{tags:{shop:"seafood"},icon:"fish"},{tags:{shop:"deli"},icon:"shopping-basket"},{tags:{shop:"clothes"},icon:"clothes-hanger"},{tags:{shop:"clothing"},icon:"clothes-hanger"},{tags:{shop:"hairdresser"},icon:"scissors-open"},{tags:{shop:"optician"},icon:"eyeglasses"},{tags:{shop:"fabric"},icon:"cloth"},{tags:{shop:"flea_market"},icon:"market-stall"},{tags:{shop:"kiosk"},icon:"shopping-basket"},{tags:{shop:"leather"},icon:"shopping-bag"},{tags:{shop:"tailor"},icon:"needle-and-spool-of-thread"},{tags:{shop:"jewelry"},icon:"jewel"},{tags:{shop:"jewellery"},icon:"jewel"},{tags:{shop:"tobacco"},icon:"cigarette-with-smoke-curl"},{tags:{shop:"cannabis"},icon:"cigarette-with-smoke-curl"},{tags:{shop:"florist"},icon:"flower-bouquet"},{tags:{shop:"garden_centre"},icon:"plant-in-raised-planter"},{tags:{shop:"estate_agent"},icon:"village-buildings"},{tags:{shop:"mobile_phone"},icon:"mobile-phone-with-keypad-and-antenna"},{tags:{beauty:"nails"},icon:"fingernail-polished"},{tags:{shop:"tattoo"},icon:"tattoo-machine"},{tags:{shop:"beauty"},icon:"fancy-mirror-with-reflection-and-stars"},{tags:{shop:"car_repair"},icon:"car-and-wrench"},{tags:{craft:"tailor"},icon:"needle-and-spool-of-thread"},{tags:{office:"estate_agent"},icon:"village-buildings"},{tags:{office:!0},icon:"commercial-building"},{tags:{craft:!0},icon:"toolbox"},{tags:{shop:!0},icon:"shopping-bag"},{tags:{natural:"beach"},icon:"beach-umbrella-in-ground"},{tags:{leisure:"park"},icon:"tree-and-bench-with-backrest"},{tags:{leisure:"playground"},icon:"play-structure-with-slide"},{tags:{aeroway:"aerodrome"},icon:"plane-top-right"},{tags:{aeroway:"heliport"},icon:"plane-top-right"},{tags:{aeroway:"helipad"},icon:"plane-top-right"},{tags:{highway:"bus_stop"},icon:"bus"},{tags:{bus:!0},icon:"bus"},{tags:{railway:"tram_stop"},icon:"person-boarding-tram-with-destination-display-and-pantograph-on-tram-track"},{tags:{tourism:"museum"},icon:"classical-building"},{tags:{tourism:"gallery"},icon:"wall-hanging-with-mountains-and-sun"},{tags:{tourism:"aquarium"},icon:"angelfish"},{tags:{tourism:"theme_park"},icon:"camera"},{tags:{tourism:"attraction"},icon:"camera"},{tags:{tourism:"viewpoint"},icon:"camera"},{tags:{tourism:"zoo"},icon:"camera"},{tags:{tourism:"artwork"},icon:"camera"},{tags:{tourism:"information"},icon:"info-i"},{tags:{amenity:"cinema"},icon:"film"},{tags:{amenity:"theatre"},icon:"camera"},{tags:{amenity:"arts_centre"},icon:"comedy-mask-and-tragedy-mask"},{tags:{amenity:"arts_center"},icon:"comedy-mask-and-tragedy-mask"},{tags:{historic:"canal"},icon:"winding_way_wide"},{tags:{historic:"bridge"},icon:"bridge"},{tags:{historic:"bridge_site"},icon:"bridge"},{tags:{historic:"fort"},icon:"fort"},{tags:{historic:"city_gate"},icon:"city-gate"},{tags:{historic:"castle"},icon:"palace"},{tags:{building:"tower",historic:"yes"},icon:"castle-keep"},{tags:{historic:"building"},icon:"classical-building-with-flag"},{tags:{historic:"archaeological_site"},icon:"grecian-vase"},{tags:{historic:"memorial"},icon:"memorial-stone-with-inscription"},{tags:{historic:"tomb"},icon:"gravestone"},{tags:{historic:"monument"},icon:"classical-building-with-dome-and-flag"},{tags:{historic:"folly"},icon:"classical-building"},{tags:{historic:"industrial"},icon:"industrial-building"},{tags:{historic:"railway_station"},icon:"steam-train-on-railway-track"},{tags:{historic:"ship"},icon:"sailing-ship-in-water"},{tags:{historic:"wreck"},icon:"shipwreck-in-water"},{tags:{historic:"ruins"},icon:"camera"},{tags:{historic:"ruin"},icon:"camera"},{tags:{historic:"yes"},icon:"camera"},{tags:{tourism:"hotel"},icon:"person-sleeping-in-bed"},{tags:{tourism:"hostel"},icon:"person-sleeping-in-bed"},{tags:{tourism:"motel"},icon:"person-sleeping-in-bed"},{tags:{tourism:"guest_house"},icon:"person-sleeping-in-bed"},{tags:{sport:"motor"},icon:"flag-checkered"},{tags:{sport:"karting"},icon:"flag-checkered"},{tags:{sport:"motocross"},icon:"flag-checkered"},{tags:{sport:"cricket"},icon:"person-cricket-batting-at-cricket-ball"},{tags:{sport:"boxing"},icon:"boxing-glove-up"},{tags:{sport:"martial_arts"},icon:"boxing-glove-up"},{tags:{sport:"tennis"},icon:"person-playing-tennis"},{tags:{sport:"squash"},icon:"person-playing-tennis"},{tags:{sport:"padel"},icon:"person-playing-tennis"},{tags:{sport:"table_tennis"},icon:"table-tennis-paddle"},{tags:{sport:"climbing"},icon:"climbing_wall"},{tags:{leisure:"water_park"},icon:"person-swimming-in-water"},{tags:{sport:"swimming"},icon:"person-swimming-in-water"},{tags:{sport:"golf"},icon:"person-swinging-golf-club"},{tags:{leisure:"golf_course"},icon:"person-swinging-golf-club"},{tags:{sport:"horse_racing"},icon:"person-jockeying-racehorse"},{tags:{sport:"fitness"},icon:"barbell"},{tags:{sport:"fitness_centre"},icon:"barbell"},{tags:{leisure:"fitness_centre"},icon:"barbell"},{tags:{sport:"stadium"},icon:"round-structure-with-flag"},{tags:{leisure:"stadium"},icon:"round-structure-with-flag"},{tags:{leisure:"sports_centre"},icon:"person-running"},{tags:{leisure:"pitch"},icon:"person-running"},{tags:{sport:!0},icon:"person-running"},{tags:{amenity:"dentist"},icon:"molar-tooth"},{tags:{healthcare:"dentist"},icon:"molar-tooth"},{tags:{healthcare:!0},icon:"greek-cross"},{tags:{amenity:"parking"},icon:"parking_p"},{tags:{building:"commercial"},icon:"commercial-building"},{tags:{building:"apartments"},icon:"lowrise-building"}];function kB(e){if(!e)return null;for(const t of SB){let n=!0;for(const[r,i]of Object.entries(t.tags)){const t=e[r];if(!t){n=!1;break}const s=t.split(";").map(e=>e.trim());if(!0!==i&&!s.includes(i)){n=!1;break}}if(n)return t.icon}return null}function EB(e){const t=kB(e);return t?_B(t):null}var RB=a({getMatchingPoiCategories:()=>TB,getMatchingPoiCategoryIds:()=>LB});function TB(e,t){return Array.isArray(t)&&e?t.filter(t=>!!Array.isArray(t.filter)&&t.filter.some(t=>function(e,t){const n=function(e){if(!e)return[];const t=e.match(/\[[^\]]+\]/g);return t?t.map(e=>function(e){const t=e.match(/^"([^"]+)"$/);if(t)return{type:"presence",key:t[1]};const n=e.match(/^"([^"]+)"\s*=\s*"([^"]*)"$/);if(n)return{type:"equals",key:n[1],value:n[2]};const r=e.match(/^"([^"]+)"\s*~\s*"([^"]*)"$/);if(r)return{type:"regex",key:r[1],pattern:r[2],regex:new RegExp(r[2])};const i=e.match(/^"([^"]+)"\s*!~\s*"([^"]*)"$/);return i?{type:"not-regex",key:i[1],pattern:i[2],regex:new RegExp(i[2])}:null}(e.slice(1,-1).trim())).filter(Boolean):[]}(t);return 0!==n.length&&n.every(t=>function(e,t){const n=function(e,t){if(!e||!t)return[];const n=e[t];return null==n?[]:String(n).split(";").map(e=>e.trim()).filter(Boolean)}(e,t.key);switch(t.type){case"presence":return n.length>0;case"equals":return n.some(e=>e===t.value);case"regex":return n.some(e=>t.regex.test(e));case"not-regex":return 0===n.length||!n.some(e=>t.regex.test(e));default:return!1}}(e,t))}(e,t))):[]}function LB(e,t){return TB(e,t).map(e=>e.id)}var IB=a({CATEGORY_TAGS:()=>PB,getSuggestedPhotoTags:()=>MB}),PB={restaurants:["food","menu","vibe","front"],coffee:["food","menu","vibe","front"],groceries:["front","food"],"things-to-do":["architecture","amenities","vibe","front"],accommodation:["rooms","amenities","food","vibe","front"]};function MB(e){const t=LB(e?.osmTags||e?.tags||{},VU),n=[];for(const r of t){const e=PB[r];if(Array.isArray(e))for(const t of e)n.includes(t)||n.push(t)}return 0===n.length?[]:n}var AB=a({mapToStorageSchema:()=>OB});function OB(e){return{title:e.title||UU(e.osmTags,"Untitled Place"),lat:e.lat,lon:e.lon,tags:[],url:e.osmTags?.website,osmId:String(e.osmId||e.id),osmType:e.osmType,osmTags:e.osmTags||{},description:e.description}}var NB=a({getSocialInfo:()=>DB}),FB=(e,...t)=>{for(const n of t)if(e[n])return e[n];return null};function DB(e,t){if(!e)return null;const n=`${t}.com`,r=FB(e,`contact:${t}`,t);if(!r)return null;if(r.startsWith("http"))try{const e=new URL(r);return"facebook"===t&&"/profile.php"===e.pathname&&e.searchParams.has("id")?{url:r,username:e.searchParams.get("id")}:{url:r,username:e.pathname.replace(/^\/|\/$/g,"")||r}}catch{return{url:r,username:r}}const i=r.replace(/^@/,"");return{url:`https://${n}/${i}`,username:i}}var zB,jB,UB,BB,$B,qB=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","#","$","%","*","+",",","-",".",":",";","=","?","@","[","]","^","_","{","|","}","~"],VB=e=>{let t=0;for(let n=0;n{var n="";for(let r=1;r<=t;r++){let i=Math.floor(e)/Math.pow(83,t-r)%83;n+=qB[Math.floor(i)]}return n},HB=e=>{let t=e/255;return t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)},GB=e=>{let t=Math.max(0,Math.min(1,e));return t<=.0031308?Math.trunc(12.92*t*255+.5):Math.trunc(255*(1.055*Math.pow(t,.4166666666666667)-.055)+.5)},KB=(e,t)=>(e=>e<0?-1:1)(e)*Math.pow(Math.abs(e),t),ZB=class extends Error{constructor(e){super(e),this.name="ValidationError",this.message=e}},YB=e=>{let t=e>>8&255,n=255&e;return[HB(e>>16),HB(t),HB(n)]},XB=(e,t)=>{let n=Math.floor(e/361),r=Math.floor(e/19)%19,i=e%19;return[KB((n-9)/9,2)*t,KB((r-9)/9,2)*t,KB((i-9)/9,2)*t]},JB=(e,t,n,r)=>{let i=0,s=0,o=0,a=4*t;for(let c=0;c{if("PROCESS_IMAGE"!==e.data?.type)return;const{id:t,file:n,targetWidth:r,targetHeight:i,quality:s,computeBlurhash:o}=e.data;try{let e,c;try{const t=await createImageBitmap(n,{resizeWidth:r,resizeHeight:i,resizeQuality:"high"});if(e=new OffscreenCanvas(r,i),c=e.getContext("2d"),!c)throw new Error("Failed to get 2d context from OffscreenCanvas");c.drawImage(t,0,0,r,i),t.close()}catch(a){console.warn("Hardware resize failed, falling back to stepped software scaling:",a);const t=await n.arrayBuffer(),s=new Blob([t],{type:n.type}),o=await createImageBitmap(s);let l=o.width,u=o.height,h=new OffscreenCanvas(l,u),d=h.getContext("2d");for(d.imageSmoothingEnabled=!0,d.imageSmoothingQuality="high",d.drawImage(o,0,0);.5*h.width>r&&.5*h.height>i;){const e=new OffscreenCanvas(Math.floor(.5*h.width),Math.floor(.5*h.height)),t=e.getContext("2d");t.imageSmoothingEnabled=!0,t.imageSmoothingQuality="high",t.drawImage(h,0,0,e.width,e.height),h=e}e=new OffscreenCanvas(r,i),c=e.getContext("2d"),c.imageSmoothingEnabled=!0,c.imageSmoothingQuality="high",c.drawImage(h,0,0,r,i),o.close()}let u=null;if(o)try{u=((e,t,n)=>{if(t*n*4!==e.length)throw new ZB("Width and height must match the pixels array");let r=[];for(let l=0;l<3;l++)for(let i=0;i<4;i++){let s=0==i&&0==l?1:2,o=JB(e,t,n,(e,r)=>s*Math.cos(Math.PI*i*e/t)*Math.cos(Math.PI*l*r/n));r.push(o)}let i,s=r[0],o=r.slice(1),a="";if(a+=WB(21,1),o.length>0){let e=Math.max(...o.map(e=>Math.max(...e))),t=Math.floor(Math.max(0,Math.min(82,Math.floor(166*e-.5))));i=(t+1)/166,a+=WB(t,1)}else i=1,a+=WB(0,1);return a+=WB((e=>(GB(e[0])<<16)+(GB(e[1])<<8)+GB(e[2]))(s),4),o.forEach(e=>{a+=WB(((e,t)=>19*Math.floor(Math.max(0,Math.min(18,Math.floor(9*KB(e[0]/t,.5)+9.5))))*19+19*Math.floor(Math.max(0,Math.min(18,Math.floor(9*KB(e[1]/t,.5)+9.5))))+Math.floor(Math.max(0,Math.min(18,Math.floor(9*KB(e[2]/t,.5)+9.5)))))(e,i),2)}),a})(c.getImageData(0,0,r,i).data,r,i)}catch(l){console.warn("Could not generate blurhash (possible canvas fingerprinting protection):",l)}const h=await e.convertToBlob({type:"image/jpeg",quality:s}),d=`${r}x${i}`;self.postMessage({id:t,success:!0,blob:h,dim:d,blurhash:u})}catch(_6){self.postMessage({id:t,success:!1,error:_6.message})}};var r$="undefined"!=typeof FastBoot,i$="routeDidChange",s$=["separator","prepend","replace"],o$=(zB=dp("router"),jB=dp("-document"),UB=class extends pp{constructor(e){if(super(e),t$(this,"router",BB,this),t$(this,"document",$B,this),e$(this,"tokens",[]),e$(this,"_defaultConfig",{separator:" | ",prepend:!0,replace:null}),e$(this,"scheduleTitleUpdate",()=>{Is("afterRender",this,this._updateTitle)}),this._validateExistingTitleElement(),function(e){return"resolveRegistration"in e}(e)){const n=e.resolveRegistration("config:environment");"object"==typeof(t=n)&&null!==t&&"pageTitle"in t&&s$.forEach(e=>{if(!function(e){if(null==e)return!0;if(!cr(e)&&"number"==typeof e.size)return!e.size;if("object"==typeof e){let t=ur(e,"size");if("number"==typeof t)return!t;let n=ur(e,"length");if("number"==typeof n)return!n}return"number"==typeof e.length&&"function"!=typeof e&&!e.length}(n.pageTitle[e])){const t=n.pageTitle[e];this._defaultConfig[e]=t}})}var t;this.router.on(i$,this.scheduleTitleUpdate)}applyTokenDefaults(e){const t=this._defaultConfig.separator,n=this._defaultConfig.prepend,r=this._defaultConfig.replace;e.previous??=null,e.next??=null,null==e.separator&&(e.separator=t),null==e.prepend&&null!=n&&(e.prepend=n),null==e.replace&&null!=r&&(e.replace=r)}inheritFromPrevious(e){const t=e.previous;t&&(null==e.separator&&(e.separator=t.separator),null==e.prepend&&(e.prepend=t.prepend))}push(e){const t=this._findTokenById(e.id);if(t){const n=this.tokens.indexOf(t),r=[...this.tokens];return e.previous=t.previous,e.next=t.next,this.inheritFromPrevious(e),this.applyTokenDefaults(e),r.splice(n,1,e),void(this.tokens=r)}const n=this.tokens.slice(-1)[0];n&&(e.previous=n??null,n.next=e,this.inheritFromPrevious(e)),this.applyTokenDefaults(e),this.tokens=[...this.tokens,e]}remove(e){const t=this._findTokenById(e);if(!t)return;const{next:n,previous:r}=t;n&&(n.previous=r),r&&(r.next=n),t.previous=t.next=null;const i=[...this.tokens];i.splice(i.indexOf(t),1),this.tokens=i}get visibleTokens(){const e=this.tokens;let t=e?e.length:0;const n=[];for(;t--;){const r=e[t];if(r){if(r.replace){n.unshift(r);break}n.unshift(r)}}return n}get sortedTokens(){const e=this.visibleTokens;if(!e)return[];let t=!0,n=[];const r=[n],i=[];return e.forEach(e=>{e.front?i.unshift(e):e.prepend?(t&&(t=!1,n=[],r.push(n)),n.unshift(e)):(t||(t=!0,n=[],r.push(n)),n.push(e))}),i.concat(r.reduce((e,t)=>e.concat(t),[]))}toString(){const e=this.sortedTokens,t=[];for(let n=0,r=e.length;nt.id===e)}updateFastbootTitle(e){if(!r$)return;const t=this.document.head,n=t.childNodes;for(let s=0;so$}),l$=wl.create({target:null,action:null,actionContext:null,actionContextObject:Yn("actionContext",function(){let e=ur(this,"actionContext");if("string"==typeof e){let t=ur(this,e);return void 0===t&&(t=ur(Xr.lookup,e)),t}return e}),triggerAction(e={}){let{action:t,target:n,actionContext:r}=e;t=t||ur(this,"action"),n=n||function(e){let t=ur(e,"target");if(t){if("string"==typeof t){let n=ur(e,t);return void 0===n&&(n=ur(Xr.lookup,t)),n}return t}return e._target?e._target:null}(this),void 0===r&&(r=ur(this,"actionContextObject")||this);let i=Array.isArray(r)?r:[r];if(n&&t){let e;if(e=null!=(s=n)&&"object"==typeof s&&"function"==typeof s.send?n.send(t,...i):n[t](...i),!1!==e)return!0}var s;return!1}}),c$=wl.create({send(e,...t){let n=this.actions&&this.actions[e];if(n&&!0!==n.apply(this,t))return;let r=ur(this,"target");r&&r.send(...arguments)}}),u$=Object.freeze({appendChild(){throw new Error("You can't use appendChild outside of the rendering process")},handleEvent:()=>!0,rerender(){},destroy(){}}),h$=Object.freeze({...u$}),d$=Object.freeze({...u$,rerender(e){e.renderer.rerender()},destroy(e){e.renderer.remove(e)},handleEvent:(e,t,n)=>!e.has(t)||cv(0,0,()=>_s(e,e.trigger,t,n))}),p$=Object.freeze({...d$,enter(e){e.renderer.register(e)}}),f$=Object.freeze({...u$,appendChild(){throw new Error("You can't call appendChild on a view being destroyed")},rerender(){throw new Error("You can't call rerender on a view being destroyed")}}),g$=Object.freeze({preRender:h$,inDOM:p$,hasElement:d$,destroying:f$}),m$=class extends(Yc.extend(vc,Sl)){isView=!0;_superTrigger;_superHas;init(e){super.init(e),this._superTrigger=this.trigger,this.trigger=this._trigger,this._superHas=this.has,this.has=this._has,this.parentView??=null,this._state="preRender",this._currentState=this._states.preRender}static{Gh(this.prototype,"renderer",[$r("renderer","-dom")])}#qe=void Zh(this,"renderer");instrumentDetails(e){return e.object=this.toString(),e.containerKey=this._debugContainerKey,e.view=this,e}_trigger(e,...t){this._superTrigger(e,...t);let n=this[e];if("function"==typeof n)return n.apply(this,t)}_has(e){return"function"==typeof this[e]||this._superHas(e)}static isViewFactory=!0};m$.prototype._states=g$;var y$=a({Input:()=>l_,Textarea:()=>h_,capabilities:()=>lb,default:()=>w$,getComponentTemplate:()=>Op,setComponentManager:()=>_$,setComponentTemplate:()=>Ap}),v$=new WeakMap,b$=Object.freeze([]),w$=class extends(m$.extend(l$,c$,{didReceiveAttrs(){},didRender(){},didUpdate(){},didUpdateAttrs(){},willRender(){},willUpdate(){}},{concatenatedProperties:["attributeBindings","classNames","classNameBindings"],classNames:b$,classNameBindings:b$})){isComponent=!0;init(e){super.init(e),this._superRerender=this.rerender,this.rerender=this._rerender,this[Tv]=!1,this[Rv]=fe(),this[Lv]=null;const t=this._dispatcher;if(t){let e=v$.get(t);e||(e=new WeakSet,v$.set(t,e));let n=Object.getPrototypeOf(this);e.has(n)||(t.lazyEvents.forEach((e,n)=>{null!==e&&"function"==typeof this[e]&&t.setupHandlerForBrowserEvent(n)}),e.add(n))}this.elementId||""===this.tagName||(this.elementId=al(this))}__dispatcher;get _dispatcher(){if(void 0===this.__dispatcher){let e=Ur(this);if(e.lookup("-environment:main").isInteractive){let t=e.lookup("event_dispatcher:main");this.__dispatcher=t}else this.__dispatcher=null}return this.__dispatcher}on(e,t,n){return this._dispatcher?.setupHandlerForEmberEvent(e),super.on(e,t,n)}_rerender(){de(this[Rv]),this._superRerender()}[Un](e,t){if(this[Tv])return;let n=Ev.get(this),r=void 0!==n?n[e]:void 0;void 0!==r&&bt(r)&&_t(r,2===arguments.length?t:ur(this,e))}getAttr(e){return this.get(e)}readDOMAttr(e){let t=Jl(this),n="http://www.w3.org/2000/svg"===t.namespaceURI,{type:r,normalized:i}=Cg(t,e);return n||"attr"===r?t.getAttribute(i):t[i]}get childViews(){return ic(this)}static{Kh(this.prototype,"childViews",[C({configurable:!1,enumerable:!1})])}appendChild(e){sc(this,e)}_transitionTo(e){let t=this._currentState,n=this._currentState=this._states[e];this._state=e,t&&t.exit&&t.exit(this),n.enter&&n.enter(this)}nearestOfType(e){let t=this.parentView;for(;t;){if(e.detect(t.constructor))return t;t=t.parentView}}nearestWithProperty(e){let t=this.parentView;for(;t;){if(e in t)return t;t=t.parentView}}rerender(){return this._currentState.rerender(this)}get element(){return this.renderer.getElement(this)}static{Kh(this.prototype,"element",[C({configurable:!1,enumerable:!1})])}appendTo(e){let t;return t=Mo&&"string"==typeof e?document.querySelector(e):e,this.renderer.appendTo(this,t),this}append(){return this.appendTo(document.body)}willInsertElement(){return this}didInsertElement(){return this}willClearRender(){return this}destroy(){return super.destroy(),this._currentState.destroy(this),this}willDestroyElement(){return this}didDestroyElement(){return this}parentViewDidChange(){return this}handleEvent(e,t){return this._currentState.handleEvent(this,e,t)}static isComponentFactory=!0;static toString(){return"@ember/component"}};function _$(e,t){return gb(e,t)}w$.reopenClass({positionalParams:[]}),Nu(Nv,w$);var x$=a({default:()=>I$}),C$=new WeakMap,S$=new WeakMap,k$=class{constructor(e,t){this.args=t,C$.set(this,!1),S$.set(this,!1)}args;get isDestroying(){return C$.get(this)||!1}get isDestroyed(){return S$.get(this)||!1}willDestroy(){}},E$=class{owner;constructor(e){this.owner=e}createComponent(e,t){return new e(this.owner,t.named)}getContext(e){return e}},R$=lb(0,{destructor:!0,asyncLifecycleCallbacks:!1,updateHook:!1});function T$(e){e.isDestroyed||(te(e),function(e){S$.set(e,!0)}(e))}var L$=class extends E${capabilities=R$;destroyComponent(e){e.isDestroying||(function(e){C$.set(e,!0)}(e),ks("actions",e,e.willDestroy),ks("destroy",this,T$,e))}},I$=class extends k${constructor(e,t){super(e,t),Br(this,e)}};_$(e=>new L$(e),I$);var P$=mb,M$=class extends I${get svg(){return _B(this.args.name)}get size(){return this.args.size||16}get color(){return this.args.color||"#898989"}get style(){return $v(`width:${this.size}px;height:${this.size}px;color:${this.color}`)}get title(){return this.args.title||""}get isFilled(){return this.args.filled||xB(this.args.name)}static{Ap(rg({id:null,block:'[[[41,[30,0,["svg"]],[[[1," "],[10,1],[15,0,[29,["icon ",[52,[30,0,["isFilled"]],"icon-filled"]]]],[15,5,[30,0,["style"]]],[15,"title",[30,0,["title"]]],[12],[1,"\\n "],[1,[28,[32,0],[[30,0,["svg"]]],null]],[1,"\\n "],[13],[1,"\\n"]],[]],null]],[],["if"]]',moduleName:"(unknown template module)",scope:()=>({htmlSafe:$v}),isStrictMode:!0}),this)}};function A$(e){return Be(e.argsCache)}var O$=class{argsCache;constructor(e,t=()=>ay){let n=Ue(()=>t(e));this.argsCache=n}get named(){return A$(this).named||sy}get positional(){return A$(this).positional||oy}};function N$(e,t,n){const r=jr(e),i=Ou(t).getDelegateFor(r);let s,o=new O$(e,n),a=i.createHelper(t,o);if(!wu(i))throw new Error("TODO: unreachable, to be implemented with hasScheduledEffect");return s=Ue(()=>i.getValue(a)),Q(e,s),_u(i)&&Q(s,i.getDestroyable(a)),s}function F$(e,t){return e===t}function D$(e,t){return e!==t}function z$(e,t){return e>t}function j$(e,t){return e>=t}function U$(e,t){return eft(()=>{let t;for(let n=0;nft(()=>{let t;for(let n=0;n!U(e[0]),W$={createInstance:!0,wrapped:!0},H$=new class{getCapabilities(){return W$}getDebugName(e){return`(element "${e.tagName}")`}getSelf(){return ct}getDestroyable(){return null}didCreateElement(){}create(e,t){return t.tagName||null}getTagName(e){return e}didRenderLayout(){}didUpdateLayout(){}didCreate(){}didUpdate(){}},G$=class{constructor(e){this.tagName=e}toString(){return`(element "${this.tagName}")`}};Nu(H$,G$.prototype);var K$=new Map;Uv(({positional:e,named:t})=>ft(()=>function(e){let t=K$.get(e);return void 0===t&&(t=new G$(e),K$.set(e,t)),t}(wt(e[0])),null));var Z$=Wv,Y$=z$;function X$(e){return"object"==typeof e&&e&&"isTruthy"in e&&"boolean"==typeof e.isTruthy?e.isTruthy:Ic(e)?0!==e.length:!!e}var J$=class extends wb{compute(e){for(let t=0,n=e.length;te.tags||[]);return[...new Set(e)]}static{Ap(rg({id:null,block:'[[[10,"li"],[12],[1,"\\n "],[11,"button"],[24,0,"contribution-item"],[24,4,"button"],[4,[32,0],["click",[28,[32,1],[[30,1],[30,2]],null]],null],[12],[1,"\\n "],[10,0],[14,0,"contribution-thumb"],[12],[1,"\\n"],[41,[30,0,["primaryPhoto"]],[[[1," "],[10,"img"],[15,"src",[28,[32,2],[[30,0,["primaryPhoto","thumbUrl"]],[30,0,["primaryPhoto","url"]]],null]],[15,"alt",[28,[32,2],[[30,0,["primaryPhoto","alt"]],"Place photo"],null]],[14,"loading","lazy"],[12],[13],[1,"\\n"]],[]],null],[41,[28,[32,3],[[30,0,["extraPhotoCount"]],0],null],[[[1," "],[10,1],[14,0,"contribution-thumb-badge"],[12],[1,"+"],[1,[30,0,["extraPhotoCount"]]],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n "],[10,0],[14,0,"contribution-info"],[12],[1,"\\n "],[10,0],[14,0,"contribution-place"],[12],[1,"\\n"],[41,[30,0,["placeName"]],[[[1," "],[1,[30,0,["placeName"]]],[1,"\\n"]],[]],[[[41,[30,0,["isNameLoading"]],[[[1," "],[10,1],[14,0,"contribution-name-loading"],[12],[1,"Loading…"],[13],[1,"\\n"]],[]],[[[1," "],[10,1],[14,0,"contribution-name-loading"],[12],[1,"Unnamed place"],[13],[1,"\\n "]],[]]]],[]]],[1," "],[13],[1,"\\n "],[10,0],[14,0,"contribution-meta"],[12],[1,"\\n "],[1,[28,[32,4],[[30,2,["createdAt"]]],null]],[1,"\\n"],[41,[28,[32,3],[[30,0,["item","photos","length"]],1],null],[[[1," ·\\n "],[1,[30,0,["item","photos","length"]]],[1,"\\n photos\\n"]],[]],[[[1," · 1 photo\\n"]],[]]],[1," "],[13],[1,"\\n"],[41,[30,0,["tags","length"]],[[[1," "],[10,0],[14,0,"contribution-tags"],[12],[1,"\\n"],[42,[28,[31,2],[[28,[31,2],[[30,0,["tags"]]],null]],null],null,[[[1," "],[10,1],[14,0,"contribution-tag"],[12],[1,[30,3]],[13],[1,"\\n"]],[3]],null],[1," "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n "],[13],[1,"\\n"],[13]],["@onSelect","@item","tag"],["if","each","-track-array"]]',moduleName:"(unknown template module)",scope:()=>({on:Ww,fn:Z$,or:J$,__keyword__gt:Y$,formatRelativeDate:Q$}),isStrictMode:!0}),this)}},tq=ob,nq=Ap(rg({id:null,block:'[[[11,0],[24,0,"modal-overlay"],[24,"role","dialog"],[24,"tabindex","-1"],[4,[32,0],["click",[30,1]],null],[12],[1,"\\n "],[11,0],[24,0,"modal-content"],[24,"role","document"],[24,"tabindex","0"],[4,[32,0],["click",[30,2]],null],[12],[1,"\\n "],[11,"button"],[16,0,[29,["close-modal-btn btn-text ",[52,[30,3],"disabled"]]]],[16,"disabled",[30,3]],[24,4,"button"],[4,[32,0],["click",[30,1]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["x",24,"currentColor"]],null],[1,"\\n "],[13],[1,"\\n "],[18,4,null],[1,"\\n "],[13],[1,"\\n"],[13]],["@close","@stopProp","@disableClose","&default"],["if","yield"]]',moduleName:"(unknown template module)",scope:()=>({on:Ww,Icon:M$}),isStrictMode:!0}),tq()),rq=class extends I${get isTesting(){return"test"===rx.environment}get destinationElement(){return document.getElementById("modal-portal")||document.body}stopProp(e){e.stopPropagation()}static{pF(this.prototype,"stopProp",[ql])}close(){this.args.disableClose||this.args.onClose&&this.args.onClose()}static{pF(this.prototype,"close",[ql])}static{Ap(rg({id:null,block:'[[[41,[30,0,["isTesting"]],[[[1," "],[8,[32,0],null,[["@close","@stopProp","@disableClose"],[[30,0,["close"]],[30,0,["stopProp"]],[30,1]]],[["default"],[[[[1,"\\n "],[18,2,null],[1,"\\n "]],[]]]]],[1,"\\n"]],[]],[[[40,[[[1," "],[8,[32,0],null,[["@close","@stopProp","@disableClose"],[[30,0,["close"]],[30,0,["stopProp"]],[30,1]]],[["default"],[[[[1,"\\n "],[18,2,null],[1,"\\n "]],[]]]]],[1,"\\n"]],[]],"%cursor:0%",[28,[31,3],[[30,0,["destinationElement"]]],null]]],[]]]],["@disableClose","&default"],["if","yield","in-element","-in-el-null"]]',moduleName:"(unknown template module)",scope:()=>({ModalContent:nq}),isStrictMode:!0}),this)}},iq=class extends wb{compute(e){for(let t=0,n=e.length;t!X$(e))}var aq=class{capabilities=pb();constructor(e){this.owner=e}createModifier(e,t){return{instance:new e(this.owner,t),element:null}}installModifier(e,t,n){(function(e,t){const n=e;return n.element=t,n})(e,t).instance.modify(t,n.positional,n.named)}updateModifier(e,t){e.instance.modify(e.element,t.positional,t.named)}destroyModifier({instance:e}){te(e)}};P$(e=>new aq(e),class{constructor(e,t){Y_(this,e)}modify(e,t,n){}});var lq=new class{capabilities=pb();createModifier(e){return{element:null,instance:e}}installModifier(e,t,n){const r=function(e,t){const n=e;return n.element=t,n}(e,t),{positional:i,named:s}=n,o=e.instance(t,i,s);"function"==typeof o&&(r.teardown=o)}updateModifier(e,t){"function"==typeof e.teardown&&e.teardown();const n=e.instance(e.element,t.positional,t.named);"function"==typeof n&&(e.teardown=n)}destroyModifier(e){"function"==typeof e.teardown&&e.teardown()}getDebugName(e){return e.instance.toString()}getDebugInstance(e){return e}};function cq(e,t){return e.toString=()=>t?.name||e.name,P$(()=>lq,e)}var uq=o((e,t)=>{t.exports=function(){return"function"==typeof Promise&&Promise.prototype&&Promise.prototype.then}}),hq=o(e=>{var t,n=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];e.getSymbolSize=function(e){if(!e)throw new Error('"version" cannot be null or undefined');if(e<1||e>40)throw new Error('"version" should be in range from 1 to 40');return 4*e+17},e.getSymbolTotalCodewords=function(e){return n[e]},e.getBCHDigit=function(e){let t=0;for(;0!==e;)t++,e>>>=1;return t},e.setToSJISFunction=function(e){if("function"!=typeof e)throw new Error('"toSJISFunc" is not a valid function.');t=e},e.isKanjiModeEnabled=function(){return void 0!==t},e.toSJIS=function(e){return t(e)}}),dq=o(e=>{e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2},e.isValid=function(e){return e&&void 0!==e.bit&&e.bit>=0&&e.bit<4},e.from=function(t,n){if(e.isValid(t))return t;try{return function(t){if("string"!=typeof t)throw new Error("Param is not a string");switch(t.toLowerCase()){case"l":case"low":return e.L;case"m":case"medium":return e.M;case"q":case"quartile":return e.Q;case"h":case"high":return e.H;default:throw new Error("Unknown EC Level: "+t)}}(t)}catch(r){return n}}}),pq=o((e,t)=>{function n(){this.buffer=[],this.length=0}n.prototype={get:function(e){const t=Math.floor(e/8);return 1==(this.buffer[t]>>>7-e%8&1)},put:function(e,t){for(let n=0;n>>t-n-1&1))},getLengthInBits:function(){return this.length},putBit:function(e){const t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}},t.exports=n}),fq=o((e,t)=>{function n(e){if(!e||e<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=e,this.data=new Uint8Array(e*e),this.reservedBit=new Uint8Array(e*e)}n.prototype.set=function(e,t,n,r){const i=e*this.size+t;this.data[i]=n,r&&(this.reservedBit[i]=!0)},n.prototype.get=function(e,t){return this.data[e*this.size+t]},n.prototype.xor=function(e,t,n){this.data[e*this.size+t]^=n},n.prototype.isReserved=function(e,t){return this.reservedBit[e*this.size+t]},t.exports=n}),gq=o(e=>{var t=hq().getSymbolSize;e.getRowColCoords=function(e){if(1===e)return[];const n=Math.floor(e/7)+2,r=t(e),i=145===r?26:2*Math.ceil((r-13)/(2*n-2)),s=[r-7];for(let t=1;t{var t=hq().getSymbolSize;e.getPositions=function(e){const n=t(e);return[[0,0],[n-7,0],[0,n-7]]}}),yq=o(e=>{function t(t,n,r){switch(t){case e.Patterns.PATTERN000:return(n+r)%2==0;case e.Patterns.PATTERN001:return n%2==0;case e.Patterns.PATTERN010:return r%3==0;case e.Patterns.PATTERN011:return(n+r)%3==0;case e.Patterns.PATTERN100:return(Math.floor(n/2)+Math.floor(r/3))%2==0;case e.Patterns.PATTERN101:return n*r%2+n*r%3==0;case e.Patterns.PATTERN110:return(n*r%2+n*r%3)%2==0;case e.Patterns.PATTERN111:return(n*r%3+(n+r)%2)%2==0;default:throw new Error("bad maskPattern:"+t)}}e.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7},e.isValid=function(e){return null!=e&&""!==e&&!isNaN(e)&&e>=0&&e<=7},e.from=function(t){return e.isValid(t)?parseInt(t,10):void 0},e.getPenaltyN1=function(e){const t=e.size;let n=0,r=0,i=0,s=null,o=null;for(let a=0;a=5&&(n+=r-5+3),s=t,r=1),t=e.get(l,a),t===o?i++:(i>=5&&(n+=i-5+3),o=t,i=1)}r>=5&&(n+=r-5+3),i>=5&&(n+=i-5+3)}return n},e.getPenaltyN2=function(e){const t=e.size;let n=0;for(let r=0;r=10&&(1488===r||93===r)&&n++,i=i<<1&2047|e.get(o,s),o>=10&&(1488===i||93===i)&&n++}return 40*n},e.getPenaltyN4=function(e){let t=0;const n=e.data.length;for(let r=0;r{var t=dq(),n=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],r=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];e.getBlocksCount=function(e,r){switch(r){case t.L:return n[4*(e-1)+0];case t.M:return n[4*(e-1)+1];case t.Q:return n[4*(e-1)+2];case t.H:return n[4*(e-1)+3];default:return}},e.getTotalCodewordsCount=function(e,n){switch(n){case t.L:return r[4*(e-1)+0];case t.M:return r[4*(e-1)+1];case t.Q:return r[4*(e-1)+2];case t.H:return r[4*(e-1)+3];default:return}}}),bq=o(e=>{var t=new Uint8Array(512),n=new Uint8Array(256);!function(){let e=1;for(let r=0;r<255;r++)t[r]=e,n[e]=r,e<<=1,256&e&&(e^=285);for(let n=255;n<512;n++)t[n]=t[n-255]}(),e.log=function(e){if(e<1)throw new Error("log("+e+")");return n[e]},e.exp=function(e){return t[e]},e.mul=function(e,r){return 0===e||0===r?0:t[n[e]+n[r]]}}),wq=o(e=>{var t=bq();e.mul=function(e,n){const r=new Uint8Array(e.length+n.length-1);for(let i=0;i=0;){const e=r[0];for(let s=0;s{var n=wq();function r(e){this.genPoly=void 0,this.degree=e,this.degree&&this.initialize(this.degree)}r.prototype.initialize=function(e){this.degree=e,this.genPoly=n.generateECPolynomial(this.degree)},r.prototype.encode=function(e){if(!this.genPoly)throw new Error("Encoder not initialized");const t=new Uint8Array(e.length+this.degree);t.set(e);const r=n.mod(t,this.genPoly),i=this.degree-r.length;if(i>0){const e=new Uint8Array(this.degree);return e.set(r,i),e}return r},t.exports=r}),xq=o(e=>{e.isValid=function(e){return!isNaN(e)&&e>=1&&e<=40}}),Cq=o(e=>{var t="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+",n="(?:(?![A-Z0-9 $%*+\\-./:]|"+(t=t.replace(/u/g,"\\u"))+")(?:.|[\r\n]))+";e.KANJI=new RegExp(t,"g"),e.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),e.BYTE=new RegExp(n,"g"),e.NUMERIC=new RegExp("[0-9]+","g"),e.ALPHANUMERIC=new RegExp("[A-Z $%*+\\-./:]+","g");var r=new RegExp("^"+t+"$"),i=new RegExp("^[0-9]+$"),s=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");e.testKanji=function(e){return r.test(e)},e.testNumeric=function(e){return i.test(e)},e.testAlphanumeric=function(e){return s.test(e)}}),Sq=o(e=>{var t=xq(),n=Cq();e.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},e.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},e.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},e.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},e.MIXED={bit:-1},e.getCharCountIndicator=function(e,n){if(!e.ccBits)throw new Error("Invalid mode: "+e);if(!t.isValid(n))throw new Error("Invalid version: "+n);return n>=1&&n<10?e.ccBits[0]:n<27?e.ccBits[1]:e.ccBits[2]},e.getBestModeForData=function(t){return n.testNumeric(t)?e.NUMERIC:n.testAlphanumeric(t)?e.ALPHANUMERIC:n.testKanji(t)?e.KANJI:e.BYTE},e.toString=function(e){if(e&&e.id)return e.id;throw new Error("Invalid mode")},e.isValid=function(e){return e&&e.bit&&e.ccBits},e.from=function(t,n){if(e.isValid(t))return t;try{return function(t){if("string"!=typeof t)throw new Error("Param is not a string");switch(t.toLowerCase()){case"numeric":return e.NUMERIC;case"alphanumeric":return e.ALPHANUMERIC;case"kanji":return e.KANJI;case"byte":return e.BYTE;default:throw new Error("Unknown mode: "+t)}}(t)}catch(r){return n}}}),kq=o(e=>{var t=hq(),n=vq(),r=dq(),i=Sq(),s=xq(),o=t.getBCHDigit(7973);function a(e,t){return i.getCharCountIndicator(e,t)+4}function l(e,t){let n=0;return e.forEach(function(e){const r=a(e.mode,t);n+=r+e.getBitsLength()}),n}e.from=function(e,t){return s.isValid(e)?parseInt(e,10):t},e.getCapacity=function(e,r,o){if(!s.isValid(e))throw new Error("Invalid QR Code version");void 0===o&&(o=i.BYTE);const l=8*(t.getSymbolTotalCodewords(e)-n.getTotalCodewordsCount(e,r));if(o===i.MIXED)return l;const c=l-a(o,e);switch(o){case i.NUMERIC:return Math.floor(c/10*3);case i.ALPHANUMERIC:return Math.floor(c/11*2);case i.KANJI:return Math.floor(c/13);case i.BYTE:default:return Math.floor(c/8)}},e.getBestVersionForData=function(t,n){let s;const o=r.from(n,r.M);if(Array.isArray(t)){if(t.length>1)return function(t,n){for(let r=1;r<=40;r++)if(l(t,r)<=e.getCapacity(r,n,i.MIXED))return r}(t,o);if(0===t.length)return 1;s=t[0]}else s=t;return function(t,n,r){for(let i=1;i<=40;i++)if(n<=e.getCapacity(i,r,t))return i}(s.mode,s.getLength(),o)},e.getEncodedBits=function(e){if(!s.isValid(e)||e<7)throw new Error("Invalid QR Code version");let n=e<<12;for(;t.getBCHDigit(n)-o>=0;)n^=7973<{var t=hq(),n=t.getBCHDigit(1335);e.getEncodedBits=function(e,r){const i=e.bit<<3|r;let s=i<<10;for(;t.getBCHDigit(s)-n>=0;)s^=1335<{var n=Sq();function r(e){this.mode=n.NUMERIC,this.data=e.toString()}r.getBitsLength=function(e){return 10*Math.floor(e/3)+(e%3?e%3*3+1:0)},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(e){let t,n,r;for(t=0;t+3<=this.data.length;t+=3)n=this.data.substr(t,3),r=parseInt(n,10),e.put(r,10);const i=this.data.length-t;i>0&&(n=this.data.substr(t),r=parseInt(n,10),e.put(r,3*i+1))},t.exports=r}),Tq=o((e,t)=>{var n=Sq(),r=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function i(e){this.mode=n.ALPHANUMERIC,this.data=e}i.getBitsLength=function(e){return 11*Math.floor(e/2)+e%2*6},i.prototype.getLength=function(){return this.data.length},i.prototype.getBitsLength=function(){return i.getBitsLength(this.data.length)},i.prototype.write=function(e){let t;for(t=0;t+2<=this.data.length;t+=2){let n=45*r.indexOf(this.data[t]);n+=r.indexOf(this.data[t+1]),e.put(n,11)}this.data.length%2&&e.put(r.indexOf(this.data[t]),6)},t.exports=i}),Lq=o((e,t)=>{var n=Sq();function r(e){this.mode=n.BYTE,this.data="string"==typeof e?(new TextEncoder).encode(e):new Uint8Array(e)}r.getBitsLength=function(e){return 8*e},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(e){for(let t=0,n=this.data.length;t{var n=Sq(),r=hq();function i(e){this.mode=n.KANJI,this.data=e}i.getBitsLength=function(e){return 13*e},i.prototype.getLength=function(){return this.data.length},i.prototype.getBitsLength=function(){return i.getBitsLength(this.data.length)},i.prototype.write=function(e){let t;for(t=0;t=33088&&n<=40956)n-=33088;else{if(!(n>=57408&&n<=60351))throw new Error("Invalid SJIS character: "+this.data[t]+"\nMake sure your charset is UTF-8");n-=49472}n=192*(n>>>8&255)+(255&n),e.put(n,13)}},t.exports=i}),Pq=o((e,t)=>{var n={single_source_shortest_paths:function(e,t,r){var i={},s={};s[t]=0;var o,a,l,c,u,h,d,p=n.PriorityQueue.make();for(p.push(t,0);!p.empty();)for(l in a=(o=p.pop()).value,c=o.cost,u=e[a]||{})u.hasOwnProperty(l)&&(h=c+u[l],d=s[l],(void 0===s[l]||d>h)&&(s[l]=h,p.push(l,h),i[l]=a));if(void 0!==r&&void 0===s[r]){var f=["Could not find a path from ",t," to ",r,"."].join("");throw new Error(f)}return i},extract_shortest_path_from_predecessor_list:function(e,t){for(var n=[],r=t;r;)n.push(r),e[r],r=e[r];return n.reverse(),n},find_path:function(e,t,r){var i=n.single_source_shortest_paths(e,t,r);return n.extract_shortest_path_from_predecessor_list(i,r)},PriorityQueue:{make:function(e){var t,r=n.PriorityQueue,i={};for(t in e=e||{},r)r.hasOwnProperty(t)&&(i[t]=r[t]);return i.queue=[],i.sorter=e.sorter||r.default_sorter,i},default_sorter:function(e,t){return e.cost-t.cost},push:function(e,t){var n={value:e,cost:t};this.queue.push(n),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return 0===this.queue.length}}};void 0!==t&&(t.exports=n)}),Mq=o(e=>{var t=Sq(),n=Rq(),r=Tq(),i=Lq(),s=Iq(),o=Cq(),a=hq(),l=Pq();function c(e){return unescape(encodeURIComponent(e)).length}function u(e,t,n){const r=[];let i;for(;null!==(i=e.exec(n));)r.push({data:i[0],index:i.index,mode:t,length:i[0].length});return r}function h(e){const n=u(o.NUMERIC,t.NUMERIC,e),r=u(o.ALPHANUMERIC,t.ALPHANUMERIC,e);let i,s;return a.isKanjiModeEnabled()?(i=u(o.BYTE,t.BYTE,e),s=u(o.KANJI,t.KANJI,e)):(i=u(o.BYTE_KANJI,t.BYTE,e),s=[]),n.concat(r,i,s).sort(function(e,t){return e.index-t.index}).map(function(e){return{data:e.data,mode:e.mode,length:e.length}})}function d(e,o){switch(o){case t.NUMERIC:return n.getBitsLength(e);case t.ALPHANUMERIC:return r.getBitsLength(e);case t.KANJI:return s.getBitsLength(e);case t.BYTE:return i.getBitsLength(e)}}function p(e,o){let l;const c=t.getBestModeForData(e);if(l=t.from(o,c),l!==t.BYTE&&l.bit=0?e[e.length-1]:null;return n&&n.mode===t.mode?(e[e.length-1].data+=t.data,e):(e.push(t),e)},[]))},e.rawSplit=function(t){return e.fromArray(h(t,a.isKanjiModeEnabled()))}}),Aq=o(e=>{var t=hq(),n=dq(),r=pq(),i=fq(),s=gq(),o=mq(),a=yq(),l=vq(),c=_q(),u=kq(),h=Eq(),d=Sq(),p=Mq();function f(e,t,n){const r=e.size,i=h.getEncodedBits(t,n);let s,o;for(s=0;s<15;s++)o=1==(i>>s&1),s<6?e.set(s,8,o,!0):s<8?e.set(s+1,8,o,!0):e.set(r-15+s,8,o,!0),s<8?e.set(8,r-s-1,o,!0):s<9?e.set(8,15-s-1+1,o,!0):e.set(8,15-s-1,o,!0);e.set(r-8,8,1,!0)}e.create=function(e,h){if(void 0===e||""===e)throw new Error("No input text");let g,m,y=n.M;return void 0!==h&&(y=n.from(h.errorCorrectionLevel,n.M),g=u.from(h.version),m=a.from(h.maskPattern),h.toSJISFunc&&t.setToSJISFunction(h.toSJISFunc)),function(e,n,h,g){let m;if(Array.isArray(e))m=p.fromArray(e);else{if("string"!=typeof e)throw new Error("Invalid data");{let t=n;if(!t){const n=p.rawSplit(e);t=u.getBestVersionForData(n,h)}m=p.fromString(e,t||40)}}const y=u.getBestVersionForData(m,h);if(!y)throw new Error("The amount of data is too big to be stored in a QR Code");if(n){if(n=0&&r<=6&&(0===i||6===i)||i>=0&&i<=6&&(0===r||6===r)||r>=2&&r<=4&&i>=2&&i<=4?e.set(t+r,s+i,!0,!0):e.set(t+r,s+i,!1,!0))}}(w,n),function(e){const t=e.size;for(let n=8;n=7&&function(e,t){const n=e.size,r=u.getEncodedBits(t);let i,s,o;for(let a=0;a<18;a++)i=Math.floor(a/3),s=a%3+n-8-3,o=1==(r>>a&1),e.set(i,s,o,!0),e.set(s,i,o,!0)}(w,n),function(e,t){const n=e.size;let r=-1,i=n-1,s=7,o=0;for(let a=n-1;a>0;a-=2)for(6===a&&a--;;){for(let n=0;n<2;n++)if(!e.isReserved(i,a-n)){let r=!1;o>>s&1)),e.set(i,a-n,r),s--,-1===s&&(o++,s=7)}if(i+=r,i<0||n<=i){i-=r,r=-r;break}}}(w,v),isNaN(g)&&(g=a.getBestMask(w,f.bind(null,w,h))),a.applyMask(g,w),f(w,h,g),{modules:w,version:n,errorCorrectionLevel:h,maskPattern:g,segments:m}}(e,g,y,m)}}),Oq=o(e=>{function t(e){if("number"==typeof e&&(e=e.toString()),"string"!=typeof e)throw new Error("Color should be defined as hex string");let t=e.slice().replace("#","").split("");if(t.length<3||5===t.length||t.length>8)throw new Error("Invalid hex color: "+e);3!==t.length&&4!==t.length||(t=Array.prototype.concat.apply([],t.map(function(e){return[e,e]}))),6===t.length&&t.push("F","F");const n=parseInt(t.join(""),16);return{r:n>>24&255,g:n>>16&255,b:n>>8&255,a:255&n,hex:"#"+t.slice(0,6).join("")}}e.getOptions=function(e){e||(e={}),e.color||(e.color={});const n=void 0===e.margin||null===e.margin||e.margin<0?4:e.margin,r=e.width&&e.width>=21?e.width:void 0,i=e.scale||4;return{width:r,scale:r?4:i,margin:n,color:{dark:t(e.color.dark||"#000000ff"),light:t(e.color.light||"#ffffffff")},type:e.type,rendererOpts:e.rendererOpts||{}}},e.getScale=function(e,t){return t.width&&t.width>=e+2*t.margin?t.width/(e+2*t.margin):t.scale},e.getImageWidth=function(t,n){const r=e.getScale(t,n);return Math.floor((t+2*n.margin)*r)},e.qrToImageData=function(t,n,r){const i=n.modules.size,s=n.modules.data,o=e.getScale(i,r),a=Math.floor((i+2*r.margin)*o),l=r.margin*o,c=[r.color.light,r.color.dark];for(let e=0;e=l&&n>=l&&e{var t=Oq();e.render=function(e,n,r){let i=r,s=n;void 0!==i||n&&n.getContext||(i=n,n=void 0),n||(s=function(){try{return document.createElement("canvas")}catch(e){throw new Error("You need to specify a canvas element")}}()),i=t.getOptions(i);const o=t.getImageWidth(e.modules.size,i),a=s.getContext("2d"),l=a.createImageData(o,o);return t.qrToImageData(l.data,e,i),function(e,t,n){e.clearRect(0,0,t.width,t.height),t.style||(t.style={}),t.height=n,t.width=n,t.style.height=n+"px",t.style.width=n+"px"}(a,s,o),a.putImageData(l,0,0),s},e.renderToDataURL=function(t,n,r){let i=r;void 0!==i||n&&n.getContext||(i=n,n=void 0),i||(i={});const s=e.render(t,n,i),o=i.type||"image/png",a=i.rendererOpts||{};return s.toDataURL(o,a.quality)}}),Fq=o(e=>{var t=Oq();function n(e,t){const n=e.a/255,r=t+'="'+e.hex+'"';return n<1?r+" "+t+'-opacity="'+n.toFixed(2).slice(1)+'"':r}function r(e,t,n){let r=e+t;return void 0!==n&&(r+=" "+n),r}e.render=function(e,i,s){const o=t.getOptions(i),a=e.modules.size,l=e.modules.data,c=a+2*o.margin,u=o.color.light.a?"':"",h="0&&c>0&&e[l-1]||(i+=o?r("M",c+n,.5+u+n):r("m",s,0),s=0,o=!1),c+1',d='viewBox="0 0 '+c+" "+c+'"',p=''+u+h+"\n";return"function"==typeof s&&s(null,p),p}}),Dq=o(e=>{var t=uq(),n=Aq(),r=Nq(),i=Fq();function s(e,r,i,s,o){const a=[].slice.call(arguments,1),l=a.length,c="function"==typeof a[l-1];if(!c&&!t())throw new Error("Callback required as last argument");if(!c){if(l<1)throw new Error("Too few arguments provided");return 1===l?(i=r,r=s=void 0):2!==l||r.getContext||(s=i,i=r,r=void 0),new Promise(function(t,o){try{t(e(n.create(i,s),r,s))}catch(a){o(a)}})}if(l<2)throw new Error("Too few arguments provided");2===l?(o=i,i=r,r=s=void 0):3===l&&(r.getContext&&void 0===o?(o=s,s=void 0):(o=s,s=i,i=r,r=void 0));try{const t=n.create(i,s);o(null,e(t,r,s))}catch(u){o(u)}}e.create=n.create,e.toCanvas=s.bind(null,r.render),e.toDataURL=s.bind(null,r.renderToDataURL),e.toString=s.bind(null,function(e,t,n){return i.render(e,n)})}),zq=l(Dq(),1),jq=cq((e,[t])=>{t&&zq.toCanvas(e,t,{width:256,margin:2,color:{dark:"#000000",light:"#ffffff"}}).catch(e=>{console.error("Failed to generate QR code",e)})}),Uq=class extends I${static{dF(this.prototype,"nostrAuth",[dp])}#N=void fF(this,"nostrAuth");static{dF(this.prototype,"toast",[dp])}#Ie=void fF(this,"toast");get hasExtension(){return"undefined"!=typeof window&&void 0!==window.nostr}async connectExtension(){try{await this.nostrAuth.connectWithExtension(),this.toast.show("Nostr connected successfully"),this.args.onConnect&&this.args.onConnect()}catch(e){console.error(e),alert(e.message)}}static{pF(this.prototype,"connectExtension",[ql])}async connectApp(){try{await this.nostrAuth.connectWithApp(),this.toast.show("Nostr connected successfully"),this.args.onConnect&&this.args.onConnect()}catch(e){console.error(e),alert(e.message)}}static{pF(this.prototype,"connectApp",[ql])}async copyConnectUri(){const e=this.nostrAuth.connectUri;try{if(navigator.clipboard&&window.isSecureContext)await navigator.clipboard.writeText(e);else{const t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.top="0",t.style.left="0",t.style.opacity="0",document.body.appendChild(t),t.focus(),t.select();const n=document.execCommand("copy");if(document.body.removeChild(t),!n)throw new Error("Fallback copy failed")}this.toast.show("Connection link copied to clipboard")}catch(RD){console.error("Failed to copy text: ",RD),alert("Failed to copy link")}}static{pF(this.prototype,"copyConnectUri",[ql])}static{Ap(rg({id:null,block:'[[[10,0],[14,0,"nostr-connect-modal"],[12],[1,"\\n "],[10,"h2"],[12],[1,"Connect with Nostr"],[13],[1,"\\n\\n "],[10,0],[14,0,"nostr-connect-options"],[12],[1,"\\n"],[41,[30,0,["hasExtension"]],[[[1," "],[11,"button"],[24,0,"btn btn-primary"],[24,4,"button"],[4,[32,0],["click",[30,0,["connectExtension"]]],null],[12],[1,"\\n Browser Extension (nos2x, Alby)\\n "],[13],[1,"\\n"]],[]],[[[1," "],[10,"button"],[14,0,"btn btn-outline"],[14,"disabled",""],[14,"title","No Nostr extension found in your browser"],[14,4,"button"],[12],[1,"\\n Browser Extension (Not Found)\\n "],[13],[1,"\\n"]],[]]],[1,"\\n "],[11,"button"],[24,0,"btn btn-primary"],[24,4,"button"],[4,[32,0],["click",[30,0,["connectApp"]]],null],[12],[1,"\\n Mobile Signer App (Amber, etc.)\\n "],[13],[1,"\\n "],[13],[1,"\\n\\n"],[41,[28,[32,1],[[30,0,["nostrAuth","connectStatus"]],"waiting"],null],[[[1," "],[10,0],[14,0,"nostr-connect-status"],[12],[1,"\\n"],[41,[30,0,["nostrAuth","isMobile"]],[[[1," "],[10,2],[12],[1,"Waiting for you to approve the connection in your mobile signer\\n app..."],[13],[1,"\\n "],[10,0],[14,0,"mobile-connect-actions"],[12],[1,"\\n "],[10,3],[15,6,[30,0,["nostrAuth","connectUri"]]],[14,0,"btn btn-primary"],[12],[1,"\\n Open Signer App\\n "],[13],[1,"\\n "],[11,"button"],[24,0,"btn btn-outline"],[24,4,"button"],[4,[32,0],["click",[30,0,["copyConnectUri"]]],null],[12],[1,"\\n Copy Connection Link\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],[[[1," "],[10,2],[12],[1,"Scan this QR code with a Nostr signer app (like Amber):"],[13],[1,"\\n "],[10,0],[14,0,"qr-code-container"],[12],[1,"\\n "],[11,"canvas"],[4,[32,2],[[30,0,["nostrAuth","connectUri"]]],null],[12],[13],[1,"\\n "],[13],[1,"\\n"]],[]]],[1," "],[13],[1,"\\n"]],[]],null],[13]],[],["if"]]',moduleName:"(unknown template module)",scope:()=>({on:Ww,eq:sq,qrCode:jq}),isStrictMode:!0}),this)}},Bq=cq((e,[t])=>{e&&"number"==typeof t&&t>0&&requestAnimationFrame(()=>{e.scrollTop=t})}),$q=class extends I${static{dF(this.prototype,"isNostrConnectModalOpen",[Vr],function(){return!1})}#Ve=void fF(this,"isNostrConnectModalOpen");openNostrConnectModal(e){e.preventDefault(),this.isNostrConnectModalOpen=!0}static{pF(this.prototype,"openNostrConnectModal",[ql])}closeNostrConnectModal(){this.isNostrConnectModalOpen=!1}static{pF(this.prototype,"closeNostrConnectModal",[ql])}onNostrConnected(){this.closeNostrConnectModal(),this.args.onNostrConnected?.()}static{pF(this.prototype,"onNostrConnected",[ql])}static{Ap(rg({id:null,block:'[[[10,0],[14,0,"sidebar"],[12],[1,"\\n "],[10,0],[14,0,"sidebar-header has-back-btn"],[12],[1,"\\n "],[11,"button"],[24,0,"back-btn"],[24,4,"button"],[4,[32,0],["click",[30,1]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["arrow-left",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n "],[10,"h2"],[14,0,"sidebar-header-text-centered"],[12],[1,"\\n "],[10,1],[14,0,"sidebar-header-icon-wrapper"],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["activity",20,"#898989"]],null],[1,"\\n "],[13],[1,"\\n My Contributions\\n "],[13],[1,"\\n "],[11,"button"],[24,0,"close-btn"],[24,4,"button"],[4,[32,0],["click",[30,2]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["x",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n\\n "],[11,0],[24,0,"sidebar-content"],[4,[32,2],[[30,3]],null],[12],[1,"\\n"],[41,[30,4],[[[1," "],[10,0],[14,0,"sidebar-loading"],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["loading-ring",24,"#898989"]],null],[1,"\\n "],[13],[1,"\\n"]],[]],[[[41,[28,[32,3],[[30,5]],null],[[[1," "],[10,2],[14,0,"empty-state"],[12],[1,"\\n "],[11,3],[24,6,"#"],[24,"role","button"],[24,"tabindex","0"],[4,[32,0],["click",[30,0,["openNostrConnectModal"]]],null],[12],[1,"Connect your Nostr account"],[13],[1,"\\n to see your contributions.\\n "],[13],[1,"\\n"]],[]],[[[41,[28,[32,3],[[30,6,["length"]]],null],[[[1," "],[10,2],[14,0,"empty-state"],[12],[1,"No contributions yet. Start by adding photos to\\n places."],[13],[1,"\\n"]],[]],[[[1," "],[10,"ul"],[14,0,"contributions-list"],[12],[1,"\\n"],[42,[28,[31,2],[[28,[31,2],[[30,6]],null]],null],null,[[[41,[28,[32,4],[[30,7,["type"]],"photo"],null],[[[1," "],[8,[32,5],null,[["@item","@onSelect"],[[30,7],[30,8]]],null],[1,"\\n"]],[]],null]],[7]],null],[1," "],[13],[1,"\\n "]],[]]]],[]]]],[]]],[1," "],[13],[1,"\\n"],[13],[1,"\\n\\n"],[41,[30,0,["isNostrConnectModalOpen"]],[[[1," "],[8,[32,6],null,[["@onClose"],[[30,0,["closeNostrConnectModal"]]]],[["default"],[[[[1,"\\n "],[8,[32,7],null,[["@onConnect"],[[30,0,["onNostrConnected"]]]],null],[1,"\\n "]],[]]]]],[1,"\\n"]],[]],null]],["@onBack","@onClose","@scrollTop","@isLoading","@isConnected","@items","item","@onSelect"],["if","each","-track-array"]]',moduleName:"(unknown template module)",scope:()=>({on:Ww,Icon:M$,restoreScroll:Bq,not:oq,eq:sq,ContributionPhoto:eq,Modal:rq,NostrConnect:Uq}),isStrictMode:!0}),this)}},qq=a({default:()=>Vq}),Vq=Ap(rg({id:null,block:'[[[41,[30,1,["mapUi","isSidebarVisible"]],[[[1," "],[8,[32,0],null,[["@items","@isLoading","@isConnected","@scrollTop","@onSelect","@onBack","@onClose","@onNostrConnected"],[[30,1,["items"]],[30,1,["loadContributionsTask","isRunning"]],[30,1,["isConnected"]],[30,1,["scrollTop"]],[30,1,["selectContribution"]],[30,1,["backToMenu"]],[30,1,["close"]],[30,1,["onNostrConnected"]]]],null],[1,"\\n"]],[]],null]],["@controller"],["if"]]',moduleName:"(unknown template module)",scope:()=>({ContributionsTimeline:$q}),isStrictMode:!0}),tq()),Wq=class{assert(){}async(e){Promise.resolve().then(e)}reportUncaughtRejection(){this.async(e=>{throw e})}defer(){let e={promise:null,resolve:null,reject:null};return e.promise=new Promise((t,n)=>{e.resolve=t,e.reject=n}),e}globalDebuggingEnabled(){return!1}},Hq=new Wq,Gq=class{constructor(e){this.maxConcurrency=e||1}},Kq="CANCELLED",Zq="STARTED",Yq="QUEUED",Xq={type:Zq},Jq={type:Yq},Qq=e=>({type:Kq,reason:e}),eV=Qq("it belongs to a 'drop' Task that was already running"),tV=class{constructor(e){this.remainingSlots=e}step(){return this.remainingSlots>0?(this.remainingSlots--,Xq):eV}},nV=class extends Gq{makeReducer(){return new tV(this.maxConcurrency)}},rV=class{constructor(e){this.remainingSlots=e}step(){return this.remainingSlots>0?(this.remainingSlots--,Xq):Jq}},iV=class extends Gq{makeReducer(){return new rV(this.maxConcurrency)}},sV=Qq("it belongs to a 'keepLatest' Task that was already running"),oV=class{constructor(e,t){this.remainingSlots=e,this.numToCancel=t}step(){return this.remainingSlots>0?(this.remainingSlots--,Xq):this.numToCancel>0?(this.numToCancel--,sV):Jq}},aV=class extends Gq{makeReducer(e,t){let n=e+t;return new oV(this.maxConcurrency,n-this.maxConcurrency-1)}},lV=Qq("it belongs to a 'restartable' Task that was .perform()ed again"),cV=class{constructor(e){this.numToCancel=e}step(){return this.numToCancel>0?(this.numToCancel--,lV):Xq}},uV=class extends Gq{makeReducer(e,t){return new cV(e+t-this.maxConcurrency)}},hV=new class{step(){return Xq}},dV=class{makeReducer(){return hV}},pV=new Map,fV=class{constructor(e,t,n){this.stateTracker=t,this.schedulerPolicy=e,this.initialTaskInstances=n,this.startingInstances=[]}process(){let[e,t,n]=this.filterFinishedTaskInstances(),r=this.schedulerPolicy.makeReducer(t,n),i=e.filter(e=>this.setTaskInstanceExecutionState(e,r.step()));return this.stateTracker.computeFinalStates(e=>this.applyState(e)),this.startingInstances.forEach(e=>e.start()),i}filterFinishedTaskInstances(){let e=0,t=0;return[this.initialTaskInstances.filter(n=>{let r=this.stateTracker.stateFor(n.task),i=n.executor.state;return i.isFinished?(r.onCompletion(n),!1):(i.hasStarted?e+=1:t+=1,!0)}),e,t]}setTaskInstanceExecutionState(e,t){let n=this.stateTracker.stateFor(e.task);switch(e.executor.counted||(e.executor.counted=!0,n.onPerformed(e)),t.type){case Kq:return e.cancel(t.reason),!1;case Zq:return e.executor.state.hasStarted||(this.startingInstances.push(e),n.onStart(e)),n.onRunning(e),!0;case Yq:return n.onQueued(e),!0}}applyState(e){let{taskable:t}=e;if(!t.onState)return;const{guid:n}=t;if(pV.has(n)&&e.tage(t))}forEachState(e){this.states.forEach(t=>e(t))}},vV=new class{onCompletion(){}onPerformed(){}onStart(){}onRunning(){}onQueued(){}},bV=class{stateFor(){return vV}computeFinalStates(){}},wV=class{constructor(e,t){this.schedulerPolicy=e,this.stateTrackingEnabled=t,this.taskInstances=[]}cancelAll(e,t){let n=this.taskInstances.map(n=>{n.task.guids[e]&&n.executor.cancel(t)}).filter(e=>!!e);return Promise.all(n)}perform(e){e.onFinalize(()=>this.scheduleRefresh()),this.taskInstances.push(e),this.refresh()}scheduleRefresh(){Promise.resolve().then(()=>this.refresh())}refresh(){let e=this.stateTrackingEnabled?new yV:new bV,t=new fV(this.schedulerPolicy,e,this.taskInstances);this.taskInstances=t.process()}},_V=class{constructor(e,t,n){this.value=e,this.done=t,this.errored=n}},xV=class{constructor(e){this.done=!1,this.generatorFactory=e,this.iterator=null}step(e,t){try{let{value:n,done:r}=this.getIterator()[t](e);return r?this.finalize(n,!1):new _V(n,!1,!1)}catch(n){return this.finalize(n,!0)}}getIterator(){return this.iterator||this.done||(this.iterator=this.generatorFactory()),this.iterator}finalize(e,t){return this.done=!0,this.iterator=null,new _V(e,!0,t)}},CV="__ec_cancel__",SV="__ec_yieldable__",kV="next",EV="throw",RV="return",TV="cancel",LV=class{constructor(e,t){this._taskInstance=e,this._resumeIndex=t}getTaskInstance(){return this._taskInstance}cancel(){let e=this._taskInstance;e.proceed.call(e,this._resumeIndex,TV)}next(e){let t=this._taskInstance;t.proceed.call(t,this._resumeIndex,kV,e)}return(e){let t=this._taskInstance;t.proceed.call(t,this._resumeIndex,RV,e)}throw(e){let t=this._taskInstance;t.proceed.call(t,this._resumeIndex,EV,e)}},IV=class{constructor(){this[SV]=this[SV].bind(this)}onYield(){}_deferable(){let e={resolve:void 0,reject:void 0};return e.promise=new Promise((t,n)=>{e.resolve=t,e.reject=n}),e}_toPromise(){let e=this._deferable(),t=this[SV]({proceed(t,n,r){"next"==n||"return"==n?e.resolve(r):e.reject(r)}},0);return e.promise[CV]=t,e.promise}then(...e){return this._toPromise().then(...e)}catch(...e){return this._toPromise().catch(...e)}finally(...e){return this._toPromise().finally(...e)}[SV](e,t){let n=new LV(e,t);return this.onYield(n)}},PV=(new class extends IV{onYield(){}},{completionState:0,value:null,error:null,isSuccessful:!1,isError:!1,isCanceled:!1,hasStarted:!1,isFinished:!1}),MV=class{constructor(e,t){this.kind=e,this.reason=t,this.promise=new Promise(e=>{this.finalize=e})}},AV={},OV=[],NV=class{constructor({generatorFactory:e,env:t,debug:n}){this.generatorState=new xV(e),this.state=Object.assign({},PV),this.index=1,this.disposers=[],this.finalizeCallbacks=[],this.env=t,this.debug=n,this.cancelRequest=null}start(){this.state.hasStarted||this.cancelRequest||(this.setState({hasStarted:!0}),this.proceedSync(kV,void 0))}cancel(e){return this.requestCancel(e)?(this.state.hasStarted?this.proceedWithCancelAsync():this.finalizeWithCancel(),this.cancelRequest.promise):(e.finalize(),e.promise)}setState(e){Object.assign(this.state,e),this.taskInstance.setState(this.state)}proceedChecked(e,t,n){this.state.isFinished||this.advanceIndex(e)&&("cancel"===t?(this.requestCancel(new MV("yielded"),n),this.proceedWithCancelAsync()):this.proceedAsync(t,n))}proceedWithCancelAsync(){this.proceedAsync(RV,AV)}proceedAsync(e,t){this.advanceIndex(this.index),this.env.async(()=>this.proceedSync(e,t))}proceedSync(e,t){this.state.isFinished||(this.dispose(),this.generatorState.done?this.handleResolvedReturnedValue(e,t):this.handleResolvedContinueValue(e,t))}handleResolvedContinueValue(e,t){let n=this.index,r=this.generatorStep(t,e);this.advanceIndex(n)&&(r.errored?this.finalize(r.value,2):this.handleYieldedValue(r))}handleResolvedReturnedValue(e,t){switch(e){case kV:case RV:this.finalize(t,1);break;case EV:this.finalize(t,2)}}handleYieldedUnknownThenable(e){let t=this.index;e.then(e=>{this.proceedChecked(t,kV,e)},e=>{this.proceedChecked(t,EV,e)})}advanceIndex(e){if(this.index===e)return++this.index}handleYieldedValue(e){let t=e.value;t?(this.addDisposer(t[CV]),t.__ec_yieldable__?this.invokeYieldable(t):"function"==typeof t.then?this.handleYieldedUnknownThenable(t):this.proceedWithSimpleValue(t)):this.proceedWithSimpleValue(t)}proceedWithSimpleValue(e){this.proceedAsync(kV,e)}addDisposer(e){"function"==typeof e&&this.disposers.push(e)}dispose(){let e=this.disposers;0!==e.length&&(this.disposers=[],e.forEach(e=>e()))}generatorStep(e,t){OV.push(this);let n=this.generatorState.step(e,t);if(OV.pop(),this._expectsLinkedYield){let e=n.value;e&&"PERFORM_TYPE_LINKED"===e.performType||console.warn("You performed a .linked() task without immediately yielding/returning it. This is currently unsupported (but might be supported in future version of ember-concurrency)."),this._expectsLinkedYield=!1}return n}maybeResolveDefer(){this.defer&&this.state.isFinished&&(1===this.state.completionState?this.defer.resolve(this.state.value):this.defer.reject(this.state.error))}onFinalize(e){this.finalizeCallbacks.push(e),this.state.isFinished&&this.runFinalizeCallbacks()}runFinalizeCallbacks(){this.finalizeCallbacks.forEach(e=>e()),this.finalizeCallbacks=[],this.maybeResolveDefer(),this.maybeThrowUnhandledTaskErrorLater()}promise(){return this.defer||(this.defer=this.env.defer(),this.asyncErrorsHandled=!0,this.maybeResolveDefer()),this.defer.promise}maybeThrowUnhandledTaskErrorLater(){var e;this.asyncErrorsHandled||2!==this.state.completionState||(e=this.state.error)&&"TaskCancelation"===e.name||this.env.async(()=>{this.asyncErrorsHandled||this.env.reportUncaughtRejection(this.state.error)})}requestCancel(e){return!this.cancelRequest&&!this.state.isFinished&&(this.cancelRequest=e,!0)}finalize(e,t){if(this.cancelRequest)return this.finalizeWithCancel();let n={completionState:t};1===t?(n.isSuccessful=!0,n.value=e):2===t?(n.isError=!0,n.error=e):3===t&&(n.error=e),this.finalizeShared(n)}finalizeWithCancel(){let e=this.taskInstance.formatCancelReason(this.cancelRequest.reason),t=new Error(e);this.debugEnabled()&&console.log(e),t.name="TaskCancelation",this.finalizeShared({isCanceled:!0,completionState:3,error:t,cancelReason:e}),this.cancelRequest.finalize()}debugEnabled(){return this.debug||this.env.globalDebuggingEnabled()}finalizeShared(e){this.index++,e.isFinished=!0,this.setState(e),this.runFinalizeCallbacks()}invokeYieldable(e){try{let t=e[SV](this.taskInstance,this.index);this.addDisposer(t)}catch(t){this.env.reportUncaughtRejection(t)}}onYielded(e,t){this.asyncErrorsHandled=!0,this.onFinalize(()=>{let n=this.state.completionState;1===n?e.proceed(t,kV,this.state.value):2===n?e.proceed(t,EV,this.state.error):3===n&&e.proceed(t,TV,null)});let n=this.getPerformType();if("PERFORM_TYPE_UNLINKED"!==n)return()=>{this.detectSelfCancelLoop(n,e),this.cancel(new MV("parent_cancel"))}}getPerformType(){return this.taskInstance.performType||"PERFORM_TYPE_DEFAULT"}detectSelfCancelLoop(e,t){if("PERFORM_TYPE_DEFAULT"!==e)return;let n=t.executor&&t.executor.cancelRequest;!n||"lifespan_end"!==n.kind||this.cancelRequest||this.state.isFinished||this.taskInstance.selfCancelLoopWarning(t)}},FV={last:null,lastRunning:null,lastPerformed:null,lastSuccessful:null,lastComplete:null,lastErrored:null,lastCanceled:null,lastIncomplete:null,performCount:0};Object.freeze(FV);var DV=0,zV=class{constructor(e){this.context=e.context,this.debug=e.debug||!1,this.enabledModifiers=e.enabledModifiers,this.env=e.env,this.group=e.group,this.hasEnabledEvents=e.hasEnabledEvents,this.modifierOptions=e.modifierOptions,this.name=e.name,this.onStateCallback=e.onStateCallback,this.scheduler=e.scheduler,this.guid="ec_"+DV++,this.guids={},this.guids[this.guid]=!0,this.group&&Object.assign(this.guids,this.group.guids)}cancelAll(e){let{reason:t,cancelRequestKind:n,resetState:r}=e||{};t=t||".cancelAll() was explicitly called on the Task";let i=new MV(n||"explicit",t);return this.scheduler.cancelAll(this.guid,i).then(()=>{r&&this._resetState()})}get _isAlive(){return!0}_resetState(){this.setState(FV)}setState(){}};Object.assign(zV.prototype,FV),Object.assign(zV.prototype,{numRunning:0,numQueued:0,isRunning:!1,isQueued:!1,isIdle:!0,state:"idle"});var jV,UV,BV=class{constructor(e,t,n){this.task=e,this.performType=t,this.linkedObject=n}perform(...e){return this.task._performShared(e,this.performType,this.linkedObject)}},$V=class e extends zV{constructor(e){super(e),this.generatorFactory=e.generatorFactory,this.perform=this._perform.bind(this)}linked(){let e=OV[OV.length-1];if(!e)throw new Error("You can only call .linked() from within a task.");return new BV(this,"PERFORM_TYPE_LINKED",e)}unlinked(){return new BV(this,"PERFORM_TYPE_UNLINKED",null)}toString(){return``}_clone(){return new e({context:this.context,debug:this.debug,env:this.env,generatorFactory:this.generatorFactory,group:this.group,hasEnabledEvents:this.hasEnabledEvents,name:this.name,onStateCallback:this.onStateCallback,scheduler:this.scheduler})}_curry(...e){let t=this._clone();return t._curryArgs=[...this._curryArgs||[],...e],t}_perform(...e){return this._performShared(e,"PERFORM_TYPE_DEFAULT",null)}_performShared(e,t,n){let r=this._curryArgs?[...this._curryArgs,...e]:e,i=this._taskInstanceFactory(r,t,n);return"PERFORM_TYPE_LINKED"===t&&(n._expectsLinkedYield=!0),this._isAlive||i.cancel(),this.scheduler.perform(i),i}_taskInstanceOptions(e,t,n){return{args:e,executor:new NV({generatorFactory:()=>this.generatorFactory(e),env:this.env,debug:this.debug}),performType:t,hasEnabledEvents:this.hasEnabledEvents}}},qV={enqueue:(e,t)=>t&&e.setBufferPolicy(iV),debug:(e,t)=>t&&e.setDebug(t),drop:(e,t)=>t&&e.setBufferPolicy(nV),keepLatest:(e,t)=>t&&e.setBufferPolicy(aV),maxConcurrency:(e,t)=>e.setMaxConcurrency(t),onState:(e,t)=>e.setOnState(t),restartable:(e,t)=>t&&e.setBufferPolicy(uV)},VV=class{env=Hq;_debug=null;_enabledModifiers=[];_hasSetConcurrencyConstraint=!1;_hasSetBufferPolicy=!1;_hasEnabledEvents=!1;_maxConcurrency=null;_onStateCallback=(e,t)=>t.setState(e);_schedulerPolicyClass=dV;constructor(e="",t=null,n={}){this.name=e,this.taskDefinition=t,this.options=n,this._processModifierOptions(n)}createTask(e){let t=this.getTaskOptions(e);return new $V(Object.assign({generatorFactory:t=>this.taskDefinition.apply(e,t)},t))}getModifier(e){if(function(e){return e in qV}(e))return qV[e].bind(null,this)}getOptions(){return this.options}getScheduler(e,t){return new wV(e,t)}getTaskOptions(e){let t,n=this._onStateCallback,r=new this._schedulerPolicyClass(this._maxConcurrency);return t=this.getScheduler(r,n&&"function"==typeof n),{context:e,debug:this._debug,env:this.env,name:this.name,group:void 0,scheduler:t,hasEnabledEvents:this._hasEnabledEvents,onStateCallback:n,enabledModifiers:this._enabledModifiers,modifierOptions:this.getOptions()}}setBufferPolicy(e){return function(e){if(e._hasSetBufferPolicy)throw new Error(`Cannot set multiple buffer policies on a task. ${e._schedulerPolicyClass} has already been set for task '${e.name}'`)}(this),this._hasSetBufferPolicy=!0,this._hasSetConcurrencyConstraint=!0,this._schedulerPolicyClass=e,this}setDebug(e){return this._debug=e,this}setEvented(e){return this._hasEnabledEvents=e,this}setMaxConcurrency(e){return this._hasSetConcurrencyConstraint=!0,this._maxConcurrency=e,this}setName(e){return this.name=e,this}setOnState(e){return this._onStateCallback=e,this}setTaskDefinition(e){return this.taskDefinition=e,this}_processModifierOptions(e){if(e)for(let t of Object.keys(e)){let n=e[t],r=this.getModifier(t);"function"==typeof r&&r(n)&&this._enabledModifiers.push(t)}}},WV=a({EventTarget:()=>Oo,Promise:()=>ra,all:()=>aa,allSettled:()=>ca,asap:()=>Ea,async:()=>Da,cast:()=>Fa,configure:()=>Fo,default:()=>Ua,defer:()=>ma,denodeify:()=>sa,filter:()=>Ca,hash:()=>da,hashSettled:()=>fa,map:()=>va,off:()=>ja,on:()=>za,race:()=>ua,reject:()=>wa,resolve:()=>ba,rethrow:()=>ga}),HV=new class extends Wq{assert(...e){}async(e){_s(()=>ks("actions",e))}reportUncaughtRejection(e){Ps(null,function(){throw e})}defer(){return ma()}globalDebuggingEnabled(){return!1}},GV=class extends wV{scheduleRefresh(){Ls(this,this.refresh)}},KV=class{constructor({task:e,args:t,executor:n,performType:r,hasEnabledEvents:i}){this.task=e,this.args=t,this.performType=r,this.executor=n,this.executor.taskInstance=this,this.hasEnabledEvents=i}setState(){}formatCancelReason(){}selfCancelLoopWarning(){}onFinalize(e){this.executor.onFinalize(e)}proceed(e,t,n){this.executor.proceedChecked(e,t,n)}[SV](e,t){return this.executor.onYielded(e,t)}cancel(e=".cancel() was explicitly called"){this.executor.cancel(new MV("explicit",e))}then(...e){return this.executor.promise().then(...e)}catch(...e){return this.executor.promise().catch(...e)}finally(...e){return this.executor.promise().finally(...e)}toString(){return`${this.task} TaskInstance`}start(){return this.executor.start(),this}};function ZV(e,t){return Object.keys(e).reduce((t,n)=>function(e,t,n){const r=Object.getOwnPropertyDescriptor(e,n);return r.initializer=r.initializer||(()=>e[n]),delete r.value,t[n]=Vr(t,n,r),t}(e,t,n),t)}Object.assign(KV.prototype,PV),Object.assign(KV.prototype,{state:"waiting",isDropped:!1,isRunning:!0}),jV=ZV(FV,{}),jV=ZV({numRunning:0,numQueued:0,isRunning:!1,isQueued:!1,isIdle:!0,state:"idle"},jV),UV=ZV(PV,{}),UV=ZV({state:"waiting",isDropped:!1,isRunning:!1},UV),Object.freeze(jV),Object.freeze(UV);var YV=class extends KV{setState(e){let t=this._recomputeState(e);Object.assign(this,{...e,isRunning:!e.isFinished,isDropped:"dropped"===t,state:t})}_recomputeState(e){return e.isDropped?"dropped":e.isCanceled?e.hasStarted?"canceled":"dropped":e.isFinished?"finished":e.hasStarted?"running":"waiting"}formatCancelReason(e){return`TaskInstance '${this.getName()}' was canceled because ${e}. For more information, see: http://ember-concurrency.com/docs/task-cancelation-help`}getName(){return this.name||(this.name=this.task&&this.task.name||""),this.name}selfCancelLoopWarning(e){let t=`\`${e.getName()}\``,n=`\`${this.getName()}\``;console.warn(`ember-concurrency detected a potentially hazardous "self-cancel loop" between parent task ${t} and child task ${n}. If you want child task ${n} to be canceled when parent task ${t} is canceled, please change \`.perform()\` to \`.linked().perform()\`. If you want child task ${n} to keep running after parent task ${t} is canceled, change it to \`.unlinked().perform()\``)}triggerEvent(...e){if(!this.hasEnabledEvents)return;let t=this.task,n=t.context,r=t&&t.name;if(n&&n.trigger&&r){let[t,...i]=e;n.trigger(`${r}:${t}`,...i)}}};UV&&Object.defineProperties(YV.prototype,UV);var XV={_performCount:0,setState(e){this._performCount=this._performCount+(e.numPerformedInc||0);let t=e.numRunning>0,n=e.numQueued>0,r=Object.assign({},e,{performCount:this._performCount,isRunning:t,isQueued:n,isIdle:!t&&!n,state:t?"running":"idle"});Object.assign(this,r)},onState(e,t){t.onStateCallback&&t.onStateCallback(e,t)}},JV=class e extends $V{constructor(e){super(e),re(this.context)||Ex(this.context,()=>{this.cancelAll({reason:"the object it lives on was destroyed or unrendered",cancelRequestKind:"lifespan_end"})})}get _isAlive(){return!re(this.context)}_taskInstanceFactory(e,t,n){let r=this._taskInstanceOptions(e,t,n);return r.task=this,new YV(r)}_clone(){return new e({context:this.context,debug:this.debug,env:this.env,generatorFactory:this.generatorFactory,group:this.group,hasEnabledEvents:this.hasEnabledEvents,name:this.name,onStateCallback:this.onStateCallback,scheduler:this.scheduler})}};jV&&Object.defineProperties(JV.prototype,jV),Object.assign(JV.prototype,XV);var QV=class extends VV{env=HV;createTask(e){this.taskDefinition;let t=this.getTaskOptions(e);return new JV(Object.assign({generatorFactory:t=>this.taskDefinition.apply(e,t)},t))}getModifier(e){return super.getModifier(e)}getScheduler(e,t){return new GV(e,t)}get taskFn(){return this.taskDefinition}set taskFn(e){this.setTaskDefinition(e)}};function eW(e,t,n,r){let i=t;r&&(i=Object.assign({},i),i[r]=!0);const s=e();return new QV(n||"",s.generator,i).createTask(s.context)}var tW=a({default:()=>nW}),nW=class extends eu{static{dF(this.prototype,"router",[dp])}#We=void fF(this,"router");static{dF(this.prototype,"mapUi",[dp])}#He=void fF(this,"mapUi");static{dF(this.prototype,"nostrAuth",[dp])}#N=void fF(this,"nostrAuth");static{dF(this.prototype,"contributions",[dp])}#Ge=void fF(this,"contributions");static{dF(this.prototype,"storage",[dp])}#U=void fF(this,"storage");loadContributionsTask=eW(()=>({context:this,generator:function*(e){e&&(yield this.contributions.load(e))}}),{restartable:!0},"loadContributionsTask",null);get scrollTop(){return this.mapUi.getScrollPosition("contributions")}get items(){return this.contributions.items}get isConnected(){return this.nostrAuth.isConnected}selectContribution(e){if(!e)return;const t=document.querySelector(".sidebar-content");t&&this.mapUi.saveScrollPosition("contributions",t.scrollTop),this.mapUi.returnToRoute={name:"contributions"},this.mapUi.showSidebar(),this.mapUi.preventNextZoom=!0,this.router.transitionTo(`/place/${e.placeIdentifier}`)}static{pF(this.prototype,"selectContribution",[ql])}onNostrConnected(){this.loadContributionsTask.perform(this.nostrAuth.pubkey)}static{pF(this.prototype,"onNostrConnected",[ql])}backToMenu(){this.router.transitionTo("menu")}static{pF(this.prototype,"backToMenu",[ql])}close(){this.router.transitionTo("index")}static{pF(this.prototype,"close",[ql])}},rW=a({default:()=>iW}),iW=class extends Jh{static{dF(this.prototype,"mapUi",[dp])}#He=void fF(this,"mapUi");static{dF(this.prototype,"nostrAuth",[dp])}#N=void fF(this,"nostrAuth");static{dF(this.prototype,"contributions",[dp])}#Ge=void fF(this,"contributions");activate(){this.mapUi.showSidebar()}setupController(e,t){super.setupController(e,t),e&&e.loadContributionsTask&&e.loadContributionsTask.perform(this.nostrAuth.pubkey)}deactivate(){this.contributions.stop()}},sW=a({default:()=>oW}),oW=Ap(rg({id:null,block:'[[[46,[28,[31,1],null,null],null,null,null]],[],["component","-outlet"]]',moduleName:"(unknown template module)",isStrictMode:!0}),tq()),aW=a({default:()=>lW}),lW=class extends Jh{static{dF(this.prototype,"mapUi",[dp])}#He=void fF(this,"mapUi");activate(){this.mapUi.showSidebar()}},cW=class extends I${static{dF(this.prototype,"title",[Vr],function(){return""})}#Ke=void fF(this,"title");static{dF(this.prototype,"description",[Vr],function(){return""})}#Ze=void fF(this,"description");constructor(){super(...arguments),this.title=this.args.place?.title||"",this.description=this.args.place?.description||""}get shouldAutofocus(){return"undefined"!=typeof window&&window.innerWidth>768}handleSubmit(e){e.preventDefault(),this.args.onSave&&this.args.onSave({title:this.title,description:this.description})}static{pF(this.prototype,"handleSubmit",[ql])}updateTitle(e){this.title=e.target.value}static{pF(this.prototype,"updateTitle",[ql])}updateDescription(e){this.description=e.target.value}static{pF(this.prototype,"updateDescription",[ql])}static{Ap(rg({id:null,block:'[[[11,"form"],[24,0,"edit-form"],[4,[32,0],["submit",[30,0,["handleSubmit"]]],null],[12],[1,"\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","edit-title"],[12],[1,"Title"],[13],[1,"\\n"],[1," "],[11,"input"],[24,1,"edit-title"],[16,2,[30,0,["title"]]],[24,0,"form-control"],[24,"placeholder","Name of the place"],[16,"autofocus",[30,0,["shouldAutofocus"]]],[24,4,"text"],[4,[32,0],["input",[30,0,["updateTitle"]]],null],[12],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","edit-desc"],[12],[1,"Description"],[13],[1,"\\n "],[11,"textarea"],[24,1,"edit-desc"],[16,2,[30,0,["description"]]],[24,0,"form-control"],[24,"rows","3"],[24,"placeholder","Add some details..."],[4,[32,0],["input",[30,0,["updateDescription"]]],null],[12],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"edit-actions"],[12],[1,"\\n "],[10,"button"],[14,0,"btn btn-blue"],[14,4,"submit"],[12],[1,"Save"],[13],[1,"\\n "],[11,"button"],[24,0,"btn btn-outline"],[24,4,"button"],[4,[32,0],["click",[30,1]],null],[12],[1,"Cancel"],[13],[1,"\\n "],[13],[1,"\\n"],[13]],["@onCancel"],[]]',moduleName:"(unknown template module)",scope:()=>({on:Ww}),isStrictMode:!0}),this)}},uW=cq((e,[t])=>{const n=n=>{e&&!e.contains(n.target)&&t(n)},r=setTimeout(()=>{document.addEventListener("click",n)},0);return()=>{clearTimeout(r),document.removeEventListener("click",n)}}),hW=class extends I${static{dF(this.prototype,"storage",[dp])}#U=void fF(this,"storage");static{dF(this.prototype,"router",[dp])}#We=void fF(this,"router");static{dF(this.prototype,"_forceClear",[Vr],function(){return!1})}#Ye=void fF(this,"_forceClear");get isSaved(){return this.args.isSaved}get placeListIds(){return this._forceClear?[]:this.args.place._listIds||[]}styleFor(e){return $v(`background-color: ${e}`)}isInList(e){return!!this.placeListIds&&this.placeListIds.includes(e.id)}static{pF(this.prototype,"isInList",[ql])}async toggleSaved(){if(this.isSaved){const{osmId:e,osmType:t}=this.args.place;if(await this.storage.removePlace(this.args.place),this.args.place&&(this.args.place.id=null,this.args.place.createdAt=null,this.args.place._listIds=[],this._forceClear=!0),e&&t){const e={...this.args.place};delete e.id,delete e.createdAt,delete e._listIds,this.router.transitionTo("place",e)}else this.router.transitionTo("index");this.args.onClose&&this.args.onClose()}else await this.storage.storePlace(this.args.place)}static{pF(this.prototype,"toggleSaved",[ql])}async toggleList(e){const t=!this.placeListIds.includes(e.id);t&&!this.isSaved&&await this.storage.storePlace(this.args.place);try{await this.storage.togglePlaceList(this.args.place,e.id,t)}catch(n){console.error(n),alert("Failed to update list: "+n.message)}}static{pF(this.prototype,"toggleList",[ql])}static{Ap(rg({id:null,block:'[[[11,0],[24,0,"place-lists-manager"],[4,[32,0],[[30,1]],null],[12],[1,"\\n "],[10,0],[14,0,"list-item master-toggle"],[12],[1,"\\n "],[10,"label"],[12],[1,"\\n "],[11,"input"],[16,"checked",[30,0,["isSaved"]]],[24,4,"checkbox"],[4,[32,1],["change",[30,0,["toggleSaved"]]],null],[12],[13],[1,"\\n "],[10,1],[14,0,"list-color-dot"],[12],[13],[1,"\\n "],[10,1],[14,0,"list-name"],[12],[1,"Saved places"],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n\\n "],[10,0],[14,0,"divider"],[12],[13],[1,"\\n\\n "],[10,0],[14,0,"lists-container"],[12],[1,"\\n"],[42,[28,[31,1],[[28,[31,1],[[30,0,["storage","lists"]]],null]],null],null,[[[1," "],[10,0],[14,0,"list-item"],[12],[1,"\\n "],[10,"label"],[12],[1,"\\n "],[11,"input"],[16,"checked",[28,[30,0,["isInList"]],[[30,2]],null]],[16,"disabled",[52,[51,[30,0,["isSaved"]]],true]],[24,4,"checkbox"],[4,[32,1],["change",[28,[32,2],[[30,0,["toggleList"]],[30,2]],null]],null],[12],[13],[1,"\\n"],[1," "],[10,1],[14,0,"list-color-dot"],[15,5,[28,[30,0,["styleFor"]],[[30,2,["color"]]],null]],[12],[13],[1,"\\n "],[10,1],[14,0,"list-name"],[12],[1,[30,2,["title"]]],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[2]],null],[1," "],[13],[1,"\\n"],[13]],["@onClose","list"],["each","-track-array","unless"]]',moduleName:"(unknown template module)",scope:()=>({onClickOutside:uW,on:Ww,fn:Z$}),isStrictMode:!0}),this)}},dW=class extends I${renderBlurhash=cq((e,[t,n,r])=>{if(!t||!e)return;const i=n||32,s=r||18;e.width=i,e.height=s;const o=e.getContext("2d");if(o)try{const e=((e,t,n)=>{(e=>{if(!e||e.length<6)throw new ZB("The blurhash string must be at least 6 characters");let t=VB(e[0]),n=Math.floor(t/9)+1,r=t%9+1;if(e.length!==4+2*r*n)throw new ZB(`blurhash length mismatch: length is ${e.length} but it should be ${4+2*r*n}`)})(e);let r=VB(e[0]),i=Math.floor(r/9)+1,s=r%9+1,o=(VB(e[1])+1)/166,a=new Array(s*i);for(let u=0;u({context:this,generator:function*(e){this.error="",this.statusText="Processing";try{const t=yield this.imageProcessor.process(e,1920,.9,!0);this.blurhash=t.blurhash;const n=yield this.imageProcessor.process(e,350,.9,!1);let r,i;const s=oz(),o=e=>{"signing"===e&&(this.statusText="Signing photo upload"),"uploading"===e&&(this.statusText="Uploading photo")},a=e=>{"signing"===e&&(this.statusText="Signing thumbnail upload"),"uploading"===e&&(this.statusText="Uploading thumbnail")};if(s)r=yield this.blossom.upload(t.blob,{sequential:!0,onProgress:o}),i=yield this.blossom.upload(n.blob,{sequential:!0,onProgress:a});else{const e=this.blossom.upload(t.blob,{onProgress:o}),s=this.blossom.upload(n.blob,{onProgress:a});[r,i]=yield Promise.all([e,s])}this.args.onSuccess&&this.args.onSuccess({file:e,url:r.url,fallbackUrls:r.fallbackUrls,thumbUrl:i.url,blurhash:t.blurhash,type:"image/jpeg",dim:t.dim,hash:r.hash,thumbHash:i.hash})}catch(t){this.error=t.message}}}),null,"uploadTask",null);static{Ap(rg({id:null,block:'[[[10,0],[15,0,[29,["photo-upload-item\\n ",[52,[30,0,["uploadTask","isRunning"]],"is-uploading"],"\\n ",[52,[30,0,["error"]],"has-error"]]]],[12],[1,"\\n"],[41,[30,0,["blurhash"]],[[[1," "],[8,[32,0],[[24,0,"place-header-photo-blur"]],[["@hash"],[[30,0,["blurhash"]]]],null],[1,"\\n"]],[]],null],[1," "],[10,"img"],[15,"src",[30,0,["thumbnailUrl"]]],[14,"alt","thumbnail"],[12],[13],[1,"\\n\\n"],[41,[30,0,["uploadTask","isRunning"]],[[[1," "],[10,0],[14,0,"overlay"],[12],[1,"\\n "],[8,[32,1],[[24,0,"spin-animation"]],[["@name","@size","@color"],["loading-ring",24,"white"]],null],[1,"\\n"],[41,[30,0,["statusText"]],[[[1," "],[10,1],[14,0,"upload-status-text"],[12],[1,[30,0,["statusText"]]],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["error"]],[[[1," "],[11,"button"],[24,0,"overlay error-overlay"],[16,"title",[30,0,["error"]]],[24,4,"button"],[4,[32,2],["click",[30,0,["showErrorToast"]]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["alert-circle",24,"white"]],null],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n "],[11,"button"],[24,0,"btn-remove-photo"],[24,"title","Remove photo"],[24,4,"button"],[4,[32,2],["click",[28,[32,3],[[30,1],[30,2]],null]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["x",16,"white"]],null],[1,"\\n "],[13],[1,"\\n"],[13]],["@onRemove","@file"],["if"]]',moduleName:"(unknown template module)",scope:()=>({Blurhash:dW,Icon:M$,on:Ww,fn:Z$}),isStrictMode:!0}),this)}},fW=kb(function([e]){return DU(e)}),gW=kb(function([e,t]){return!!Array.isArray(e)&&e.includes(t)}),mW=class extends I${static{dF(this.prototype,"nostrAuth",[dp])}#N=void fF(this,"nostrAuth");static{dF(this.prototype,"nostrRelay",[dp])}#ae=void fF(this,"nostrRelay");static{dF(this.prototype,"nostrData",[dp])}#F=void fF(this,"nostrData");static{dF(this.prototype,"blossom",[dp])}#Xe=void fF(this,"blossom");static{dF(this.prototype,"toast",[dp])}#Ie=void fF(this,"toast");static{dF(this.prototype,"file",[Vr],function(){return null})}#rt=void fF(this,"file");static{dF(this.prototype,"uploadedPhoto",[Vr],function(){return null})}#it=void fF(this,"uploadedPhoto");static{dF(this.prototype,"error",[Vr],function(){return""})}#tt=void fF(this,"error");static{dF(this.prototype,"isPublishing",[Vr],function(){return!1})}#st=void fF(this,"isPublishing");static{dF(this.prototype,"isDragging",[Vr],function(){return!1})}#ot=void fF(this,"isDragging");static{dF(this.prototype,"selectedTags",[Vr],function(){return[]})}#at=void fF(this,"selectedTags");static{dF(this.prototype,"altText",[Vr],function(){return""})}#lt=void fF(this,"altText");get place(){return this.args.place||{}}get title(){return this.place.title||"this place"}get allUploaded(){return this.file&&this.uploadedPhoto&&this.file===this.uploadedPhoto.file}get suggestedTags(){return MB(this.place)}handleFileSelect(e){this.addFile(e.target.files[0]),e.target.value=""}static{pF(this.prototype,"handleFileSelect",[ql])}handleDragOver(e){e.preventDefault(),this.isDragging=!0}static{pF(this.prototype,"handleDragOver",[ql])}handleDragLeave(e){e.preventDefault(),this.isDragging=!1}static{pF(this.prototype,"handleDragLeave",[ql])}handleDrop(e){e.preventDefault(),this.isDragging=!1,e.dataTransfer.files.length>0&&this.addFile(e.dataTransfer.files[0])}static{pF(this.prototype,"handleDrop",[ql])}addFile(e){e&&e.type.startsWith("image/")?(this.error="",this.uploadedPhoto&&this.deletePhotoTask.perform(this.uploadedPhoto),this.file=e,this.uploadedPhoto=null,this.args.onUploadStateChange&&this.args.onUploadStateChange(!0)):this.error="Please select a valid image file."}handleUploadSuccess(e){this.uploadedPhoto=e}static{pF(this.prototype,"handleUploadSuccess",[ql])}removeFile(){this.uploadedPhoto&&this.deletePhotoTask.perform(this.uploadedPhoto),this.file=null,this.uploadedPhoto=null,this.selectedTags=[],this.altText="",this.args.onUploadStateChange&&this.args.onUploadStateChange(!1)}static{pF(this.prototype,"removeFile",[ql])}toggleTag(e){this.selectedTags.includes(e)?this.selectedTags=[]:this.selectedTags=[e]}static{pF(this.prototype,"toggleTag",[ql])}updateAltText(e){this.altText=e.target.value}static{pF(this.prototype,"updateAltText",[ql])}deletePhotoTask=eW(()=>({context:this,generator:function*(e){try{e.hash&&(yield this.blossom.delete(e.hash)),e.thumbHash&&(yield this.blossom.delete(e.thumbHash))}catch(t){this.toast.show(`Failed to delete photo from server: ${t.message}`,5e3)}}}),null,"deletePhotoTask",null);async publish(){if(!this.nostrAuth.isConnected)return void(this.error="You must connect Nostr first.");if(!this.allUploaded)return void(this.error="Please wait for all photos to finish uploading.");const{osmId:e,lat:t,lon:n}=this.place,r=this.place.osmType||"node";if(e){this.error="",this.isPublishing=!0;try{const i=[["i",`osm:${r}:${e}`]];for(const e of this.selectedTags)i.push(["t",e]);t&&n&&(i.push(["g",Bj.encode(t,n,4)]),i.push(["g",Bj.encode(t,n,6)]),i.push(["g",Bj.encode(t,n,7)]),i.push(["g",Bj.encode(t,n,9)]));const s=this.uploadedPhoto,o=["imeta",`url ${s.url}`];o.push(`m ${s.type}`),s.dim&&o.push(`dim ${s.dim}`);const a=this.altText.trim();if(a&&o.push(`alt ${a}`),s.fallbackUrls&&s.fallbackUrls.length>0)for(const e of s.fallbackUrls)o.push(`fallback ${e}`);s.thumbUrl&&o.push(`thumb ${s.thumbUrl}`),s.blurhash&&o.push(`blurhash ${s.blurhash}`),i.push(o);const l=await SN.fromKind(360).content("").modifyPublicTags(()=>i).as(this.nostrAuth.signer).sign();await this.nostrRelay.publish(this.nostrData.activeWriteRelays,l),this.nostrData.store.add(l),this.toast.show("Photo published successfully"),this.file=null,this.uploadedPhoto=null,this.altText="",this.args.onUploadStateChange&&this.args.onUploadStateChange(!1),this.args.onClose&&this.args.onClose(l.id)}catch(i){this.error="Failed to publish: "+i.message}finally{this.isPublishing=!1}}else this.error="This place does not have a valid OSM ID."}static{pF(this.prototype,"publish",[ql])}static{Ap(rg({id:null,block:'[[[10,0],[14,0,"place-photo-upload"],[12],[1,"\\n "],[10,"h2"],[12],[1,"Add Photo for "],[1,[30,0,["title"]]],[13],[1,"\\n\\n"],[41,[30,0,["error"]],[[[1," "],[10,0],[14,0,"alert alert-error"],[12],[1,"\\n "],[1,[30,0,["error"]]],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["file"]],[[[1," "],[8,[32,0],null,[["@file","@onSuccess","@onRemove"],[[30,0,["file"]],[30,0,["handleUploadSuccess"]],[30,0,["removeFile"]]]],null],[1,"\\n\\n"],[41,[30,0,["suggestedTags","length"]],[[[1," "],[10,0],[14,0,"photo-tag-suggestions"],[12],[1,"\\n "],[10,2],[14,0,"photo-tag-suggestions-title"],[12],[1,"\\n Choose a tag/category (optional):\\n "],[13],[1,"\\n "],[10,0],[14,0,"photo-tag-suggestions-list"],[12],[1,"\\n"],[42,[28,[31,2],[[28,[31,2],[[30,0,["suggestedTags"]]],null]],null],null,[[[1," "],[11,"button"],[16,0,[29,["photo-tag-chip\\n ",[52,[28,[32,1],[[30,0,["selectedTags"]],[30,1]],null],"is-selected"]]]],[24,4,"button"],[4,[32,2],["click",[28,[32,3],[[30,0,["toggleTag"]],[30,1]],null]],null],[12],[1,"\\n "],[1,[28,[32,4],[[30,1]],null]],[1,"\\n "],[13],[1,"\\n"]],[1]],null],[1," "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","photo-alt-input"],[12],[1,"Description (optional):"],[13],[1,"\\n "],[11,"input"],[24,1,"photo-alt-input"],[24,0,"form-control"],[24,"placeholder","Describe this photo"],[16,2,[30,0,["altText"]]],[16,"disabled",[30,0,["isPublishing"]]],[24,4,"text"],[4,[32,2],["input",[30,0,["updateAltText"]]],null],[12],[13],[1,"\\n "],[13],[1,"\\n\\n "],[11,"button"],[24,0,"btn btn-primary btn-publish"],[16,"disabled",[28,[32,5],[[28,[32,6],[[30,0,["allUploaded"]]],null],[30,0,["isPublishing"]]],null]],[24,4,"button"],[4,[32,2],["click",[30,0,["publish"]]],null],[12],[1,"\\n"],[41,[30,0,["isPublishing"]],[[[1," Publishing...\\n"]],[]],[[[1," Publish Photo\\n"]],[]]],[1," "],[13],[1,"\\n"]],[]],[[[1," "],[11,0],[16,0,[29,["dropzone ",[52,[30,0,["isDragging"]],"is-dragging"]]]],[4,[32,2],["dragover",[30,0,["handleDragOver"]]],null],[4,[32,2],["dragleave",[30,0,["handleDragLeave"]]],null],[4,[32,2],["drop",[30,0,["handleDrop"]]],null],[12],[1,"\\n "],[10,"label"],[14,"for","photo-upload-input"],[14,0,"dropzone-label"],[12],[1,"\\n "],[8,[32,7],null,[["@name","@size","@color"],["upload-cloud",48,"#ccc"]],null],[1,"\\n "],[10,2],[12],[1,"Drag and drop a photo here, or click to browse"],[13],[1,"\\n "],[13],[1,"\\n "],[11,"input"],[24,1,"photo-upload-input"],[24,"accept","image/*"],[24,0,"file-input-hidden"],[16,"disabled",[30,0,["isPublishing"]]],[24,4,"file"],[4,[32,2],["change",[30,0,["handleFileSelect"]]],null],[12],[13],[1,"\\n "],[13],[1,"\\n"]],[]]],[13]],["tag"],["if","each","-track-array"]]',moduleName:"(unknown template module)",scope:()=>({PlacePhotoUploadItem:pW,includes:gW,on:Ww,fn:Z$,capitalize:fW,or:J$,not:oq,Icon:M$}),isStrictMode:!0}),this)}},yW=cq((e,[t])=>{if(!t)return;let n;e.classList.remove("loaded"),e.classList.remove("loaded-instant");const r=()=>{const t=e.parentElement,n=t&&"PICTURE"===t.tagName?t.parentElement:t;if(n&&n.closest(".photo-carousel.gallery-main")){const e=n.querySelector(".place-header-photo-blur");e&&(e.style.opacity="0")}},i=()=>{e.classList.contains("loaded-instant")||e.classList.add("loaded"),r()};return e.addEventListener("load",i),n=new IntersectionObserver((n,i)=>{n.forEach(n=>{if(n.isIntersecting){i.unobserve(e);const n=new Image;n.src=t,n.complete&&(e.classList.add("loaded-instant"),r());const s=e.parentElement;s&&"PICTURE"===s.tagName&&s.querySelectorAll("source").forEach(e=>{e.dataset.srcset&&(e.srcset=e.dataset.srcset)}),e.dataset.src?e.src=e.dataset.src:e.src=t}})},{root:null,rootMargin:"100px 100%",threshold:0}),n.observe(e),()=>{e.removeEventListener("load",i),n&&n.disconnect()}}),vW=class extends I${static{dF(this.prototype,"canScrollLeft",[Vr],function(){return!1})}#ct=void fF(this,"canScrollLeft");static{dF(this.prototype,"canScrollRight",[Vr],function(){return!1})}#ut=void fF(this,"canScrollRight");internalEventId=null;carouselElement=null;get photos(){return this.args.photos||[]}get showChevrons(){return this.photos.length>1}get cannotScrollLeft(){return!this.canScrollLeft}get cannotScrollRight(){return!this.canScrollRight}get isGalleryMain(){return"gallery-main"===this.args.variant}get isGalleryThumbnails(){return"gallery-thumbnails"===this.args.variant}get variantClass(){return this.args.variant||"inline"}lastResetKey=null;resetScrollPosition=cq((e,[t])=>{void 0!==t&&t!==this.lastResetKey&&(this.lastResetKey=t,e.scrollLeft=0,setTimeout(()=>this.updateScrollState(),50))});isProgrammaticScroll=!1;scrollToNewPhoto=cq((e,[t])=>{if(t&&t!==this.lastEventId){const n=!this.lastEventId;if(this.lastEventId=t,this.internalEventId===t)return;this.internalEventId=t,this.isProgrammaticScroll=!0;const r=()=>{const r=e.querySelector(`[data-event-id="${t}"]`);if(r)if(n){const t=e.style.scrollBehavior;e.style.scrollBehavior="auto",e.scrollLeft=r.offsetLeft,setTimeout(()=>{e.style.scrollBehavior=t,this.isProgrammaticScroll=!1},50)}else e.scrollLeft=r.offsetLeft,setTimeout(()=>{this.isProgrammaticScroll=!1},500);else this.isProgrammaticScroll=!1};n?r():setTimeout(r,100)}});setupCarousel=cq(e=>{let t,n;return this.carouselElement=e,setTimeout(()=>{this.updateScrollState()},50),window.ResizeObserver&&(t=new ResizeObserver(()=>this.updateScrollState()),t.observe(e)),this.args.onVisiblePhotoChange&&window.IntersectionObserver&&"test"!==rx.environment&&(n=new IntersectionObserver(e=>{if(!this.isProgrammaticScroll)for(let t of e)if(t.isIntersecting&&t.intersectionRatio>=.5){const e=t.target.dataset.eventId;this.internalEventId=e;const n=this.photos.find(t=>t.eventId===e);n&&this.args.onVisiblePhotoChange(n)}},{root:e,threshold:.5}),e.querySelectorAll(".carousel-slide").forEach(e=>n.observe(e))),()=>{t&&t.unobserve(e),n&&n.disconnect()}});updateScrollState(){if(!this.carouselElement)return;const{scrollLeft:e,scrollWidth:t,clientWidth:n}=this.carouselElement;this.canScrollLeft=e>1,this.canScrollRight=e+n({on:Ww,and:iq,eq:sq,fn:Z$,Blurhash:dW,fadeInImage:yW,Icon:M$}),isStrictMode:!0}),this)}},bW=class extends I${static{dF(this.prototype,"isOpen",[Vr],function(){return!1})}#ht=void fF(this,"isOpen");toggleMenu(e){e?.stopPropagation(),this.isOpen=!this.isOpen}static{pF(this.prototype,"toggleMenu",[ql])}closeMenu(e){e?.stopPropagation(),this.isOpen=!1}static{pF(this.prototype,"closeMenu",[ql])}get triggerIcon(){return this.args.triggerIcon||"more-vertical"}static{Ap(rg({id:null,block:'[[[10,0],[14,0,"dropdown-menu-container"],[12],[1,"\\n "],[11,"button"],[24,0,"dropdown-trigger-btn btn-press"],[16,"title",[30,1]],[24,4,"button"],[4,[32,0],["click",[30,0,["toggleMenu"]]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],[[30,0,["triggerIcon"]],[30,2],[30,3]]],null],[1,"\\n "],[13],[1,"\\n\\n"],[41,[30,0,["isOpen"]],[[[1," "],[10,0],[15,0,[29,["dropdown-popover ",[30,4]]]],[12],[1,"\\n "],[18,5,[[30,0,["closeMenu"]]]],[1,"\\n "],[13],[1,"\\n "],[11,0],[24,0,"menu-backdrop"],[24,"role","button"],[4,[32,0],["click",[30,0,["closeMenu"]]],null],[12],[13],[1,"\\n"]],[]],null],[13]],["@triggerTitle","@iconSize","@iconColor","@popoverClass","&default"],["if","yield"]]',moduleName:"(unknown template module)",scope:()=>({on:Ww,Icon:M$}),isStrictMode:!0}),this)}},wW=Ap(rg({id:null,block:'[[[11,0],[24,0,"photo-gallery-overlay"],[24,"role","dialog"],[24,"tabindex","-1"],[4,[32,0],["click",[30,1]],null],[4,[30,2],[[30,3]],null],[12],[1,"\\n"],[1," "],[10,0],[14,0,"photo-gallery-content"],[15,"data-current-event-id",[30,4,["eventId"]]],[12],[1,"\\n "],[10,0],[14,0,"photo-gallery-header"],[12],[1,"\\n "],[10,0],[14,0,"actions-btn-container"],[12],[1,"\\n "],[8,[32,1],null,[["@iconSize","@triggerIcon","@iconColor"],[24,[30,5],"white"]],[["default"],[[[[1,"\\n "],[11,"button"],[24,0,"dropdown-item"],[24,4,"button"],[4,[32,0],["click",[28,[32,2],[[30,7],[30,6]],null]],null],[12],[1,"Copy Photo Event ID"],[13],[1,"\\n"],[41,[30,8],[[[1," "],[11,"button"],[24,0,"dropdown-item text-danger"],[24,4,"button"],[4,[32,0],["click",[28,[32,2],[[30,9,["perform"]],[30,6]],null]],null],[12],[1,"Delete Photo"],[13],[1,"\\n"]],[]],null],[1," "]],[6]]]]],[1,"\\n "],[13],[1,"\\n\\n"],[41,[28,[32,3],[[30,10],[30,11]],null],[[[1," "],[10,0],[14,0,"photo-gallery-uploader-info"],[12],[1,"\\n"],[41,[30,10],[[[1," "],[10,1],[14,0,"photo-gallery-uploader-name"],[12],[1,[30,10]],[13],[1,"\\n"]],[]],null],[41,[30,11],[[[1," "],[10,1],[14,0,"photo-gallery-uploader-date"],[12],[1,"\\n "],[1,[28,[32,4],[[30,11]],null]],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n\\n "],[11,"button"],[24,0,"close-btn btn-text"],[24,"aria-label","Close gallery"],[24,"title","Close"],[24,4,"button"],[4,[32,0],["click",[30,12]],null],[12],[1,"\\n "],[8,[32,5],null,[["@name","@size","@color"],["x",24,"white"]],null],[1,"\\n "],[13],[1,"\\n\\n "],[10,0],[14,0,"main-photo-container"],[12],[1,"\\n "],[8,[32,6],null,[["@variant","@photos","@scrollToEventId","@onVisiblePhotoChange","@name"],["gallery-main",[30,13],[30,4,["eventId"]],[30,14],[30,15]]],null],[1,"\\n "],[13],[1,"\\n\\n "],[10,0],[14,0,"thumbnail-strip-container"],[12],[1,"\\n "],[8,[32,6],null,[["@variant","@photos","@scrollToEventId","@onPhotoClick","@name"],["gallery-thumbnails",[30,13],[30,4,["eventId"]],[30,16],[30,15]]],null],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"],[13]],["@handleBackgroundClick","@bindKeyboard","@handleKeydown","@currentPhoto","@triggerIcon","closeMenu","@copyEventId","@canDeletePhoto","@deletePhotoTask","@uploaderName","@photoDate","@handleClose","@photos","@handleVisiblePhotoChange","@placeName","@selectPhoto"],["if"]]',moduleName:"(unknown template module)",scope:()=>({on:Ww,DropdownMenu:bW,fn:Z$,or:J$,formatRelativeDate:Q$,Icon:M$,PhotoCarousel:vW}),isStrictMode:!0}),tq()),_W=class extends I${get isTesting(){return"test"===rx.environment}get destinationElement(){return document.getElementById("modal-portal")||document.body}static{dF(this.prototype,"toast",[dp])}#Ie=void fF(this,"toast");static{dF(this.prototype,"nostrAuth",[dp])}#N=void fF(this,"nostrAuth");static{dF(this.prototype,"nostrData",[dp])}#F=void fF(this,"nostrData");static{dF(this.prototype,"nostrRelay",[dp])}#ae=void fF(this,"nostrRelay");static{dF(this.prototype,"blossom",[dp])}#Xe=void fF(this,"blossom");static{dF(this.prototype,"settings",[dp])}#D=void fF(this,"settings");static{dF(this.prototype,"currentPhoto",[Vr],function(){return this.args.selectedPhoto||this.args.photos?.[0]})}#dt=void fF(this,"currentPhoto");get triggerIcon(){return"undefined"!=typeof window&&window.innerWidth<=768?"more-vertical":"more-horizontal"}get isCreator(){return this.currentPhoto?.pubkey&&this.nostrAuth.pubkey&&this.currentPhoto.pubkey===this.nostrAuth.pubkey}get canDeletePhoto(){return this.isCreator&&!0===this.settings.experimentalEnablePhotoDeletion}get uploaderName(){const e=this.currentPhoto?.pubkey;if(!e)return null;const t=this.nostrData.getProfile?.(e);return t&&(t.displayName||t.display_name||t.name)||null}get photoDate(){return this.currentPhoto?.publishedAt||this.currentPhoto?.createdAt||null}bindKeyboard=cq((e,[t])=>(document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)));handleClose(){this.args.onClose&&this.args.onClose()}static{pF(this.prototype,"handleClose",[ql])}handleBackgroundClick(e){e.target.closest(".thumbnail-strip-container")||e.target.closest(".carousel-nav-btn")||e.target.closest(".close-btn")||e.target.closest(".photo-gallery-header")||this.handleClose()}static{pF(this.prototype,"handleBackgroundClick",[ql])}selectPhoto(e){this.currentPhoto=e}static{pF(this.prototype,"selectPhoto",[ql])}handleVisiblePhotoChange(e){this.currentPhoto!==e&&(this.currentPhoto=e)}static{pF(this.prototype,"handleVisiblePhotoChange",[ql])}handleKeydown(e){if(!this.args.photos||0===this.args.photos.length)return;if("Escape"===e.key)return void this.handleClose();const t=this.args.photos.indexOf(this.currentPhoto);-1!==t&&("ArrowLeft"===e.key&&t>0?this.currentPhoto=this.args.photos[t-1]:"ArrowRight"===e.key&&t({context:this,generator:function*(e){if(confirm("Are you sure you want to delete this photo? This cannot be undone."))try{const n=[["e",this.currentPhoto.eventId]];this.currentPhoto.placeIdentifier&&n.push(["i",this.currentPhoto.placeIdentifier]);const r=yield SN.fromKind(5).content("Deleted photo").modifyPublicTags(()=>n).as(this.nostrAuth.signer).sign();yield this.nostrRelay.publish(this.nostrData.activeWriteRelays,r),this.nostrData.store.add(r);const i=/[0-9a-f]{64}/i;if(this.currentPhoto.url){const e=this.currentPhoto.url.match(i);if(e)try{yield this.blossom.delete(e[0])}catch(t){console.warn("Failed to delete main image from blossom:",t)}}if(this.currentPhoto.thumbUrl){const e=this.currentPhoto.thumbUrl.match(i);if(e)try{yield this.blossom.delete(e[0])}catch(t){console.warn("Failed to delete thumb image from blossom:",t)}}this.toast.show("Photo deleted successfully"),e&&e(),this.handleClose()}catch(t){console.error("Failed to delete photo:",t),this.toast.show("Failed to delete photo: "+t.message),e&&e()}else e&&e()}}),null,"deletePhotoTask",null);static{Ap(rg({id:null,block:'[[[41,[30,0,["isTesting"]],[[[1," "],[8,[32,0],null,[["@handleBackgroundClick","@bindKeyboard","@handleKeydown","@copyEventId","@canDeletePhoto","@deletePhotoTask","@handleClose","@photos","@currentPhoto","@handleVisiblePhotoChange","@placeName","@selectPhoto","@uploaderName","@photoDate","@triggerIcon"],[[30,0,["handleBackgroundClick"]],[30,0,["bindKeyboard"]],[30,0,["handleKeydown"]],[30,0,["copyEventId"]],[30,0,["canDeletePhoto"]],[30,0,["deletePhotoTask"]],[30,0,["handleClose"]],[30,1],[30,0,["currentPhoto"]],[30,0,["handleVisiblePhotoChange"]],[30,2],[30,0,["selectPhoto"]],[30,0,["uploaderName"]],[30,0,["photoDate"]],[30,0,["triggerIcon"]]]],null],[1,"\\n"]],[]],[[[40,[[[1," "],[8,[32,0],null,[["@handleBackgroundClick","@bindKeyboard","@handleKeydown","@copyEventId","@canDeletePhoto","@deletePhotoTask","@handleClose","@photos","@currentPhoto","@handleVisiblePhotoChange","@placeName","@selectPhoto","@uploaderName","@photoDate","@triggerIcon"],[[30,0,["handleBackgroundClick"]],[30,0,["bindKeyboard"]],[30,0,["handleKeydown"]],[30,0,["copyEventId"]],[30,0,["canDeletePhoto"]],[30,0,["deletePhotoTask"]],[30,0,["handleClose"]],[30,1],[30,0,["currentPhoto"]],[30,0,["handleVisiblePhotoChange"]],[30,2],[30,0,["selectPhoto"]],[30,0,["uploaderName"]],[30,0,["photoDate"]],[30,0,["triggerIcon"]]]],null],[1,"\\n"]],[]],"%cursor:0%",[28,[31,2],[[30,0,["destinationElement"]]],null]]],[]]]],["@photos","@placeName"],["if","in-element","-in-el-null"]]',moduleName:"(unknown template module)",scope:()=>({GalleryContent:wW}),isStrictMode:!0}),this)}},xW=class extends I${static{dF(this.prototype,"storage",[dp])}#U=void fF(this,"storage");static{dF(this.prototype,"nostrAuth",[dp])}#N=void fF(this,"nostrAuth");static{dF(this.prototype,"nostrData",[dp])}#F=void fF(this,"nostrData");static{dF(this.prototype,"mapUi",[dp])}#He=void fF(this,"mapUi");static{dF(this.prototype,"isEditing",[Vr],function(){return!1})}#pt=void fF(this,"isEditing");static{dF(this.prototype,"showLists",[Vr],function(){return!1})}#ft=void fF(this,"showLists");static{dF(this.prototype,"isPhotoUploadActive",[Vr],function(){return!1})}#gt=void fF(this,"isPhotoUploadActive");static{dF(this.prototype,"isConnectingNostr",[Vr],function(){return!1})}#mt=void fF(this,"isConnectingNostr");static{dF(this.prototype,"isGalleryOpen",[Vr],function(){return!1})}#yt=void fF(this,"isGalleryOpen");static{dF(this.prototype,"selectedGalleryPhoto",[Vr],function(){return null})}#vt=void fF(this,"selectedGalleryPhoto");static{dF(this.prototype,"isPhotoUploadModalOpen",[Vr],function(){return!1})}#bt=void fF(this,"isPhotoUploadModalOpen");static{dF(this.prototype,"isNostrConnectModalOpen",[Vr],function(){return!1})}#Ve=void fF(this,"isNostrConnectModalOpen");static{dF(this.prototype,"newlyUploadedPhotoId",[Vr],function(){return null})}#wt=void fF(this,"newlyUploadedPhotoId");handleUploadStateChange(e){this.isPhotoUploadActive=e}static{pF(this.prototype,"handleUploadStateChange",[ql])}openPhotoUploadModal(e){e&&e.preventDefault(),this.nostrAuth.isConnected?this.isPhotoUploadModalOpen=!0:this.isNostrConnectModalOpen=!0}static{pF(this.prototype,"openPhotoUploadModal",[ql])}closePhotoUploadModal(e){this.isPhotoUploadActive||(this.isPhotoUploadModalOpen=!1,"string"==typeof e&&(this.newlyUploadedPhotoId=e,setTimeout(()=>{const e=document.querySelector(".sidebar-content");e&&(e.scrollTop=0)},50)))}static{pF(this.prototype,"closePhotoUploadModal",[ql])}closeNostrConnectModal(){this.isNostrConnectModalOpen=!1}static{pF(this.prototype,"closeNostrConnectModal",[ql])}onNostrConnected(){this.isNostrConnectModalOpen=!1,this.isPhotoUploadModalOpen=!0}static{pF(this.prototype,"onNostrConnected",[ql])}get isSaved(){return this.storage.isPlaceSaved(this.place.id||this.place.osmId)}get place(){return this.args.place||{}}get saveablePlace(){return this.place.createdAt?this.place:OB(this.place)}get tags(){return this.place.osmTags||{}}get name(){return this.place.title||UU(this.tags)||"Unnamed Place"}get photos(){return jj(this.nostrData.placePhotos).map(e=>({...e,style:$v(`--slide-ratio: ${e.aspectRatio};`)}))}startEditing(){this.isSaved&&(this.isEditing=!0)}static{pF(this.prototype,"startEditing",[ql])}cancelEditing(){this.isEditing=!1}static{pF(this.prototype,"cancelEditing",[ql])}toggleLists(e){e&&e.stopPropagation(),this.showLists=!this.showLists}static{pF(this.prototype,"toggleLists",[ql])}closeLists(){this.showLists=!1}static{pF(this.prototype,"closeLists",[ql])}async saveChanges(e){this.args.onSave&&await this.args.onSave({...this.place,...e}),this.isEditing=!1}static{pF(this.prototype,"saveChanges",[ql])}get type(){return $U(this.tags)}get address(){const e=this.tags,t=[],n=(...t)=>{for(const n of t)if(e[n])return e[n];return null};let r=n("addr:street","street");const i=n("addr:housenumber","housenumber");r&&(i&&(r=`${r} ${i}`),t.push(r));let s=n("addr:city","city");const o=n("addr:postcode","postcode");s&&(o&&(s=`${o} ${s}`),t.push(s));const a=n("addr:state","state"),l=n("addr:country","country");return a&&a!==s&&t.push(a),l&&t.push(l),0===t.length?null:t.join(", ")}formatMultiLine(e,t){if(!e)return null;const n=[...new Set(e.split(";").map(e=>e.trim()).filter(Boolean))];return 0===n.length?null:$v("phone"===t?n.map(e=>`${e}`).join("
"):"email"===t?n.map(e=>`${e}`).join("
"):"whatsapp"===t?n.map(e=>`${e}`).join("
"):"url"===t?n.map(e=>`${this.getDomain(e)}`).join("
"):n.join("
"))}get phone(){const e=[this.tags.phone,this.tags["contact:phone"],this.tags.mobile,this.tags["contact:mobile"]].filter(Boolean);return 0===e.length?null:this.formatMultiLine(e.join(";"),"phone")}get whatsapp(){const e=[this.tags.whatsapp,this.tags["contact:whatsapp"]].filter(Boolean);return 0===e.length?null:this.formatMultiLine(e.join(";"),"whatsapp")}get email(){const e=this.tags.email||this.tags["contact:email"];return this.formatMultiLine(e,"email")}get website(){const e=this.place.url||this.tags.website||this.tags["contact:website"];return this.formatMultiLine(e,"url")}getDomain(e){try{return new URL(e).hostname}catch{return e}}get openingHours(){const e=this.tags.opening_hours;return this.formatMultiLine(e)}get cuisine(){return this.tags.cuisine?this.tags.cuisine.split(";").map(e=>FU(e)).join(", "):null}get facebook(){return DB(this.tags,"facebook")}get instagram(){return DB(this.tags,"instagram")}get wikipedia(){const e=this.tags.wikipedia;return e?e.split(";").map(e=>e.trim()).filter(Boolean)[0]:null}get geoLink(){const e=this.place.lat,t=this.place.lon;return e&&t?`geo:${e},${t}?q=${e},${t}(${encodeURIComponent(this.name)})`:"#"}get visibleGeoLink(){const e=this.place.lat,t=this.place.lon;return e&&t?`${Number(e).toFixed(6)}, ${Number(t).toFixed(6)}`:""}get osmUrl(){const e=this.place.osmId;if(e)return`https://www.openstreetmap.org/${this.place.osmType||"node"}/${e}`;const t=this.place.lat,n=this.place.lon;if(!t||!n)return null;const r=this.mapUi.currentCenter?.lat??t,i=this.mapUi.currentCenter?.lon??n,s=this.mapUi.currentZoom??17,o=Math.round(s);return`https://www.openstreetmap.org/search?lat=${t}&lon=${n}&zoom=${o}#map=${o}/${Number(r).toFixed(5)}/${Number(i).toFixed(5)}`}get gmapsUrl(){return this.place.gmapsId||this.place.osmId?`https://www.google.com/maps/search/?api=1&query=${this.name}&query=${this.place.lat},${this.place.lon}`:null}get showDescription(){return"photon"!==this.place.source&&!!this.place.description}openGallery(e){this.selectedGalleryPhoto=e,this.isGalleryOpen=!0}static{pF(this.prototype,"openGallery",[ql])}closeGallery(){this.isGalleryOpen=!1,this.selectedGalleryPhoto=null}static{pF(this.prototype,"closeGallery",[ql])}static{Ap(rg({id:null,block:'[[[10,0],[14,0,"place-details"],[12],[1,"\\n"],[41,[30,0,["isEditing"]],[[[1," "],[8,[32,0],null,[["@place","@onSave","@onCancel"],[[30,0,["place"]],[30,0,["saveChanges"]],[30,0,["cancelEditing"]]]],null],[1,"\\n"]],[]],[[[1," "],[8,[32,1],null,[["@variant","@photos","@name","@resetKey","@scrollToEventId","@onPhotoClick"],["inline",[30,0,["photos"]],[30,0,["name"]],[30,0,["place","osmId"]],[30,0,["newlyUploadedPhotoId"]],[30,0,["openGallery"]]]],null],[1,"\\n "],[10,"h3"],[12],[1,[30,0,["name"]]],[13],[1,"\\n "],[10,2],[14,0,"place-type"],[12],[1,"\\n "],[1,[30,0,["type"]]],[1,"\\n "],[13],[1,"\\n"],[41,[30,0,["showDescription"]],[[[1," "],[10,2],[14,0,"place-description"],[12],[1,"\\n "],[1,[30,0,["place","description"]]],[1,"\\n "],[13],[1,"\\n"]],[]],null]],[]]],[1,"\\n "],[10,0],[14,0,"actions"],[12],[1,"\\n "],[10,0],[14,0,"save-button-wrapper"],[12],[1,"\\n "],[11,"button"],[16,0,[52,[30,0,["isSaved"]],"btn btn-secondary","btn btn-outline"]],[24,4,"button"],[4,[32,2],["click",[30,0,["toggleLists"]]],null],[12],[1,"\\n "],[8,[32,3],null,[["@name","@color"],["bookmark",[52,[30,0,["isSaved"]],"currentColor","var(--link-color)"]]],null],[1,"\\n "],[1,[52,[30,0,["isSaved"]],"Saved","Save"]],[1,"\\n "],[13],[1,"\\n\\n"],[41,[30,0,["showLists"]],[[[1," "],[8,[32,4],null,[["@place","@onClose","@isSaved"],[[30,0,["saveablePlace"]],[30,0,["closeLists"]],[30,0,["isSaved"]]]],null],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n\\n"],[41,[30,0,["isSaved"]],[[[1," "],[11,"button"],[24,0,"btn btn-outline"],[24,"title","Edit"],[16,"disabled",[30,0,["isEditing"]]],[24,4,"button"],[4,[32,2],["click",[30,0,["startEditing"]]],null],[12],[1,"\\n "],[8,[32,3],null,[["@name","@color"],["edit","var(--link-color)"]],null],[1,"\\n Edit\\n "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n\\n "],[10,0],[14,0,"meta-info"],[12],[1,"\\n\\n"],[41,[30,0,["cuisine"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["fork-and-knife","Cuisine"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[1,[30,0,["cuisine"]]],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["openingHours"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["clock","Opening hours"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[1,[30,0,["openingHours"]]],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["phone"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["phone","Phone"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[1,[30,0,["phone"]]],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["whatsapp"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["whatsapp","WhatsApp"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[1,[30,0,["whatsapp"]]],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["website"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["globe","Website"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[1,[30,0,["website"]]],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["email"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["mail","Email"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[1,[30,0,["email"]]],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["facebook"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["facebook","Facebook"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[10,3],[15,6,[30,0,["facebook","url"]]],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[1,"\\n "],[1,[30,0,["facebook","username"]]],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["instagram"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["instagram","Instagram"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[10,3],[15,6,[30,0,["instagram","url"]]],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[1,"\\n "],[1,[30,0,["instagram","username"]]],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["wikipedia"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["wikipedia","Wikipedia"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[10,3],[15,6,[29,["https://wikipedia.org/wiki/",[30,0,["wikipedia"]]]]],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[1,"\\n Wikipedia\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"meta-info"],[12],[1,"\\n\\n"],[41,[30,0,["address"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["home","Address"]],null],[1,"\\n "],[10,1],[12],[1,[30,0,["address"]]],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["map-pin","Geo link"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[10,3],[15,6,[30,0,["geoLink"]]],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[1,"\\n "],[1,[30,0,["visibleGeoLink"]]],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n\\n"],[41,[30,0,["osmUrl"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name"],["map"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[10,3],[15,6,[30,0,["osmUrl"]]],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[1,"\\n OpenStreetMap\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["gmapsUrl"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name"],["map"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[10,3],[15,6,[30,0,["gmapsUrl"]]],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[1,"\\n Google Maps\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n "],[13],[1,"\\n\\n"],[41,[30,0,["place","osmId"]],[[[1," "],[10,0],[14,0,"meta-info"],[12],[1,"\\n "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name"],["feather-camera"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[11,"button"],[24,0,"btn-link"],[24,4,"button"],[4,[32,2],["click",[30,0,["openPhotoUploadModal"]]],null],[12],[1,"\\n Add a photo\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[13],[1,"\\n\\n"],[41,[30,0,["isPhotoUploadModalOpen"]],[[[1," "],[8,[32,5],null,[["@onClose","@disableClose"],[[30,0,["closePhotoUploadModal"]],[30,0,["isPhotoUploadActive"]]]],[["default"],[[[[1,"\\n "],[8,[32,6],null,[["@place","@onClose","@onUploadStateChange"],[[30,0,["saveablePlace"]],[30,0,["closePhotoUploadModal"]],[30,0,["handleUploadStateChange"]]]],null],[1,"\\n "]],[]]]]],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["isNostrConnectModalOpen"]],[[[1," "],[8,[32,5],null,[["@onClose"],[[30,0,["closeNostrConnectModal"]]]],[["default"],[[[[1,"\\n "],[8,[32,7],null,[["@onConnect"],[[30,0,["onNostrConnected"]]]],null],[1,"\\n "]],[]]]]],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["isGalleryOpen"]],[[[1," "],[8,[32,8],null,[["@photos","@selectedPhoto","@placeName","@onClose"],[[30,0,["photos"]],[30,0,["selectedGalleryPhoto"]],[30,0,["name"]],[30,0,["closeGallery"]]]],null],[1,"\\n"]],[]],null]],[],["if"]]',moduleName:"(unknown template module)",scope:()=>({PlaceEditForm:cW,PhotoCarousel:vW,on:Ww,Icon:M$,PlaceListsManager:hW,Modal:rq,PlacePhotoUpload:mW,NostrConnect:Uq,PhotoGallery:_W}),isStrictMode:!0}),this)}},CW=kb(function([e]){return FU(e)}),SW=class extends I${static{dF(this.prototype,"storage",[dp])}#U=void fF(this,"storage");static{dF(this.prototype,"router",[dp])}#We=void fF(this,"router");static{dF(this.prototype,"mapUi",[dp])}#He=void fF(this,"mapUi");static{dF(this.prototype,"nostrData",[dp])}#F=void fF(this,"nostrData");createNewPlace(){const e=this.router.currentRoute.queryParams,t=e.lat,n=e.lon;t&&n?this.router.transitionTo("place.new",{queryParams:{lat:t,lon:n}}):this.router.transitionTo("place.new",{queryParams:{lat:0,lon:0}})}static{pF(this.prototype,"createNewPlace",[ql])}selectPlace(e){this.args.onSelect&&this.args.onSelect(e)}static{pF(this.prototype,"selectPlace",[ql])}clearSelection(){this.args.onSelect&&this.args.onSelect(null)}static{pF(this.prototype,"clearSelection",[ql])}async toggleSave(e){if(e)if(e.createdAt)try{if(await this.storage.removePlace(e),console.debug("Place deleted:",e.title),this.args.onBookmarkChange&&this.args.onBookmarkChange(),this.args.onUpdate){const t={...e,id:void 0,geohash:void 0,createdAt:void 0};this.args.onUpdate(t)}this.args.onSelect&&this.args.onSelect(null),this.args.onClose&&this.args.onClose()}catch(t){console.error("Failed to delete:",t),alert("Failed to delete: "+t.message)}else{const t={title:UU(e.osmTags,"Untitled Place"),lat:e.lat,lon:e.lon,tags:[],url:e.osmTags.website,osmId:String(e.osmId||e.id),osmType:e.osmType,osmTags:e.osmTags};try{const e=await this.storage.storePlace(t);console.debug("Place saved:",t.title),this.args.onBookmarkChange&&this.args.onBookmarkChange(),this.args.onUpdate&&this.args.onUpdate(e),this.args.onSelect&&this.args.onSelect(e)}catch(_6){console.error("Failed to save place:",_6),alert("Failed to save place: "+_6.message)}}}static{pF(this.prototype,"toggleSave",[ql])}async updateBookmark(e){try{const t=await this.storage.updatePlace(e);console.debug("Place updated:",t.title),this.args.onBookmarkChange&&this.args.onBookmarkChange(),this.args.onUpdate&&this.args.onUpdate(t)}catch(t){console.error("Failed to update place:",t),alert("Failed to update place: "+t.message)}}static{pF(this.prototype,"updateBookmark",[ql])}get isNearbySearch(){const e=this.router.currentRoute.queryParams;return!e.q&&!e.category&&e.lat&&e.lon}get hasHeaderPhoto(){return this.args.selectedPlace&&this.nostrData.placePhotos&&this.nostrData.placePhotos.length>0}static{Ap(rg({id:null,block:'[[[10,0],[14,0,"sidebar"],[12],[1,"\\n "],[10,0],[15,0,[29,["sidebar-header\\n ",[52,[30,0,["hasHeaderPhoto"]],"no-border"],"\\n ",[52,[28,[32,0],[[28,[32,1],[[30,1]],null],[30,2]],null],"has-back-btn"]]]],[12],[1,"\\n"],[41,[30,1],[[[1," "],[11,"button"],[24,0,"back-btn"],[24,4,"button"],[4,[32,2],["click",[30,0,["clearSelection"]]],null],[12],[8,[32,3],null,[["@name","@size","@color"],["arrow-left",20,"#333"]],null],[13],[1,"\\n"]],[]],[[[41,[30,2],[[[1," "],[11,"button"],[24,0,"back-btn"],[24,4,"button"],[4,[32,2],["click",[30,2]],null],[12],[8,[32,3],null,[["@name","@size","@color"],["arrow-left",20,"#333"]],null],[13],[1,"\\n"]],[]],null],[41,[30,2],[[[1," "],[10,"h2"],[14,0,"sidebar-header-text-centered"],[12],[1,"\\n "],[10,1],[14,0,"sidebar-header-icon-wrapper"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@size","@color"],["bookmark",20,[28,[32,4],[[30,3],"#898989"],null]]],null],[1,"\\n "],[13],[1,"\\n "],[1,[30,4]],[1,"\\n "],[13],[1,"\\n"]],[]],[[[41,[30,0,["isNearbySearch"]],[[[1," "],[10,"h2"],[12],[8,[32,3],null,[["@name","@size","@color"],["target",20,"#ea4335"]],null],[1,"\\n Nearby"],[13],[1,"\\n"]],[]],[[[1," "],[10,"h2"],[12],[8,[32,3],null,[["@name","@size","@color"],["search",20,"#333"]],null],[1,"\\n Results"],[13],[1,"\\n"]],[]]]],[]]]],[]]],[1," "],[11,"button"],[24,0,"close-btn"],[24,4,"button"],[4,[32,2],["click",[30,5]],null],[12],[8,[32,3],null,[["@name","@size","@color"],["x",20,"#333"]],null],[13],[1,"\\n "],[13],[1,"\\n\\n "],[11,0],[24,0,"sidebar-content"],[4,[32,5],[[30,6]],null],[12],[1,"\\n"],[41,[30,1],[[[1," "],[8,[32,6],null,[["@place","@onToggleSave","@onSave"],[[30,1],[30,0,["toggleSave"]],[30,0,["updateBookmark"]]]],null],[1,"\\n"]],[]],[[[41,[30,7],[[[1," "],[10,0],[14,0,"sidebar-loading"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@size","@color"],["loading-ring",24,"#898989"]],null],[1,"\\n "],[13],[1,"\\n"]],[]],[[[41,[30,8],[[[1," "],[10,"ul"],[14,0,"places-list"],[12],[1,"\\n"],[42,[28,[31,2],[[28,[31,2],[[30,8]],null]],null],null,[[[1," "],[10,"li"],[12],[1,"\\n "],[11,"button"],[24,0,"place-item"],[24,4,"button"],[4,[32,2],["click",[28,[32,7],[[30,0,["selectPlace"]],[30,9]],null]],null],[12],[1,"\\n "],[10,0],[14,0,"place-name"],[12],[1,[28,[32,4],[[30,9,["title"]],[30,9,["osmTags","name"]],[30,9,["osmTags","name:en"]],"Unnamed Place"],null]],[13],[1,"\\n "],[10,0],[14,0,"place-type"],[12],[1,"\\n"],[41,[28,[32,8],[[30,9,["source"]],"osm"],null],[[[1," "],[1,[28,[32,9],[[30,9,["type"]]],null]],[1,"\\n"]],[]],[[[41,[28,[32,8],[[30,9,["source"]],"photon"],null],[[[1," "],[1,[30,9,["description"]]],[1,"\\n"]],[]],[[[41,[28,[32,10],[[30,9,["osmTags"]]],null],[[[1," "],[1,[28,[32,10],[[30,9,["osmTags"]]],null]],[1,"\\n"]],[]],[[[1," Saved place\\n "]],[]]]],[]]]],[]]],[1," "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[9]],null],[1," "],[13],[1,"\\n"]],[]],[[[41,[30,0,["isNearbySearch"]],[[[1," "],[10,2],[14,0,"empty-state"],[12],[1,"No places found nearby."],[13],[1,"\\n"]],[]],[[[1," "],[10,2],[14,0,"empty-state"],[12],[1,"No results found."],[13],[1,"\\n"]],[]]]],[]]],[1,"\\n "],[11,"button"],[24,0,"btn btn-outline create-place"],[24,4,"button"],[4,[32,2],["click",[30,0,["createNewPlace"]]],null],[12],[1,"\\n "],[8,[32,3],null,[["@name","@size","@color"],["plus",18,"var(--link-color)"]],null],[1,"\\n Create new place\\n "],[13],[1,"\\n"]],[]]]],[]]],[1," "],[13],[1,"\\n"],[13]],["@selectedPlace","@onBack","@color","@title","@onClose","@scrollTop","@isLoading","@places","place"],["if","each","-track-array"]]',moduleName:"(unknown template module)",scope:()=>({and:iq,not:oq,on:Ww,Icon:M$,or:J$,restoreScroll:Bq,PlaceDetails:xW,fn:Z$,eq:sq,humanizeOsmTag:CW,getPlaceType:$U}),isStrictMode:!0}),this)}},kW=a({default:()=>EW}),EW=Ap(rg({id:null,block:'[[[41,[30,1,["mapUi","isSidebarVisible"]],[[[1," "],[8,[32,0],null,[["@places","@title","@color","@scrollTop","@isLoading","@onSelect","@onClose","@onBack"],[[30,1,["places"]],[30,1,["listTitle"]],[30,1,["listColor"]],[30,1,["scrollTop"]],[30,1,["loadPlacesTask","isRunning"]],[30,1,["selectPlace"]],[30,1,["close"]],[30,1,["backToLists"]]]],null],[1,"\\n"]],[]],null]],["@controller"],["if"]]',moduleName:"(unknown template module)",scope:()=>({PlacesSidebar:SW}),isStrictMode:!0}),tq()),RW=a({default:()=>MW});function TW(e){const t=e.createdAt;if(!t)return 0;if("number"==typeof t)return t;const n=Date.parse(t);return isNaN(n)?0:n}var LW,IW,PW,MW=class extends eu{static{dF(this.prototype,"router",[dp])}#We=void fF(this,"router");static{dF(this.prototype,"mapUi",[dp])}#He=void fF(this,"mapUi");static{dF(this.prototype,"storage",[dp])}#U=void fF(this,"storage");static{dF(this.prototype,"model",[Vr])}#_t=void fF(this,"model");static{dF(this.prototype,"loadedPlaces",[Vr],function(){return[]})}#xt=void fF(this,"loadedPlaces");get listId(){return this.model?.list_id}loadPlacesTask=eW(()=>({context:this,generator:function*(e){this.loadedPlaces=[];try{this.loadedPlaces=yield this.storage.getPlacesInList(e)}catch(t){console.error("Failed to load places in list",e,t),this.loadedPlaces=[]}}}),{restartable:!0},"loadPlacesTask",null);get scrollTop(){return this.mapUi.getScrollPosition(`list-${this.listId}`)}get listColor(){const e=this.storage.lists.find(e=>e.id===this.listId);return e&&e.color?e.color:getComputedStyle(document.documentElement).getPropertyValue("--default-list-color").trim()}get listTitle(){const e=this.storage.lists.find(e=>e.id===this.listId);return e?e.title:"Collections"}get places(){const e=this.storage.lists.find(e=>e.id===this.listId),t=new Set(e?.placeRefs?.map(e=>e.id)||[]),n=this.storage.savedPlaces.filter(e=>t.has(e.id)),r=[],i=new Set;return n.forEach(e=>{r.push(e),i.add(e.id)}),this.loadedPlaces.forEach(e=>{t.has(e.id)&&!i.has(e.id)&&(r.push(e),i.add(e.id))}),r.sort((e,t)=>TW(t)-TW(e))}selectPlace(e){if(e){const t=document.querySelector(".sidebar-content");t&&this.mapUi.saveScrollPosition(`list-${this.listId}`,t.scrollTop),this.mapUi.returnToRoute={name:"lists.list",model:this.listId},this.mapUi.showSidebar(),this.mapUi.preventNextZoom=!0,this.router.transitionTo("place",e)}}static{pF(this.prototype,"selectPlace",[ql])}close(){this.router.transitionTo("index")}static{pF(this.prototype,"close",[ql])}backToLists(){this.router.transitionTo("lists.index")}static{pF(this.prototype,"backToLists",[ql])}},AW=a({default:()=>OW}),OW=class extends Jh{static{dF(this.prototype,"storage",[dp])}#U=void fF(this,"storage");model(e){return{list_id:e.list_id}}setupController(e,t){console.debug("DEBUG: setupController controller is:",e),console.debug("DEBUG: controller.loadPlacesTask is:",e?.loadPlacesTask),e.model=t,super.setupController(e,t),e&&e.loadPlacesTask?e.loadPlacesTask.perform(t.list_id):console.error("DEBUG: ERROR! controller.loadPlacesTask is undefined!")}},NW=a({default:()=>FW}),FW=class extends I${static{dF(this.prototype,"storage",[dp])}#U=void fF(this,"storage");static{dF(this.prototype,"router",[dp])}#We=void fF(this,"router");static{dF(this.prototype,"mapUi",[dp])}#He=void fF(this,"mapUi");styleFor(e){const t=e||getComputedStyle(document.documentElement).getPropertyValue("--default-list-color").trim();return $v(`background-color: ${t}`)}selectList(e){this.router.transitionTo("lists.list",e)}static{pF(this.prototype,"selectList",[ql])}close(){this.router.transitionTo("index")}static{pF(this.prototype,"close",[ql])}backToMenu(){this.router.transitionTo("menu")}static{pF(this.prototype,"backToMenu",[ql])}static{Ap(rg({id:null,block:'[[[41,[30,0,["mapUi","isSidebarVisible"]],[[[1," "],[10,0],[14,0,"sidebar"],[12],[1,"\\n "],[10,0],[14,0,"sidebar-header has-back-btn"],[12],[1,"\\n "],[11,"button"],[24,0,"back-btn"],[24,4,"button"],[4,[32,0],["click",[30,0,["backToMenu"]]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["arrow-left",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n "],[10,"h2"],[14,0,"sidebar-header-text-centered"],[12],[1,"\\n "],[10,1],[14,0,"sidebar-header-icon-wrapper"],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["bookmark",20,"#898989"]],null],[1,"\\n "],[13],[1,"\\n Collections\\n "],[13],[1,"\\n "],[11,"button"],[24,0,"close-btn"],[24,4,"button"],[4,[32,0],["click",[30,0,["close"]]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["x",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n\\n "],[10,0],[14,0,"sidebar-content"],[12],[1,"\\n "],[10,"ul"],[14,0,"places-list"],[12],[1,"\\n"],[42,[28,[31,2],[[28,[31,2],[[30,0,["storage","lists"]]],null]],null],null,[[[1," "],[10,"li"],[12],[1,"\\n "],[11,"button"],[24,0,"lists-index-item"],[24,4,"button"],[4,[32,0],["click",[28,[32,2],[[30,0,["selectList"]],[30,1,["id"]]],null]],null],[12],[1,"\\n "],[10,0],[14,0,"lists-index-item-left"],[12],[1,"\\n"],[1," "],[10,1],[14,0,"list-color-dot"],[15,5,[28,[30,0,["styleFor"]],[[30,1,["color"]]],null]],[12],[13],[1,"\\n "],[10,0],[14,0,"lists-index-name"],[12],[1,[30,1,["title"]]],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"lists-index-count"],[12],[1,"\\n"],[41,[30,1,["placeRefs","length"]],[[[1," "],[1,[30,1,["placeRefs","length"]]],[1,"\\n places\\n"]],[]],[[[1," empty\\n"]],[]]],[1," "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[1]],null],[1," "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null]],["list"],["if","each","-track-array"]]',moduleName:"(unknown template module)",scope:()=>({on:Ww,Icon:M$,fn:Z$}),isStrictMode:!0}),this)}},DW=a({default:()=>zW}),zW=class extends Jh{},jW=a({default:()=>UW}),UW=class extends I${static{dF(this.prototype,"router",[dp])}#We=void fF(this,"router");static{dF(this.prototype,"mapUi",[dp])}#He=void fF(this,"mapUi");selectPlace(e){if(e){const t=document.querySelector(".sidebar-content");t&&this.mapUi.saveScrollPosition("search",t.scrollTop),this.mapUi.returnToSearch=!0,this.mapUi.showSidebar(),this.mapUi.preventNextZoom=!0,this.router.transitionTo("place",e)}}static{pF(this.prototype,"selectPlace",[ql])}close(){this.mapUi.hideSidebar()}static{pF(this.prototype,"close",[ql])}static{Ap(rg({id:null,block:'[[[41,[30,0,["mapUi","isSidebarVisible"]],[[[1," "],[8,[32,0],null,[["@places","@scrollTop","@onSelect","@onClose"],[[30,0,["mapUi","searchResults"]],[28,[30,0,["mapUi","getScrollPosition"]],["search"],null],[30,0,["selectPlace"]],[30,0,["close"]]]],null],[1,"\\n"]],[]],null]],[],["if"]]',moduleName:"(unknown template module)",scope:()=>({PlacesSidebar:SW}),isStrictMode:!0}),this)}},BW=a({default:()=>$W}),$W=class extends eu{static{dF(this.prototype,"osm",[dp])}#B=void fF(this,"osm");static{dF(this.prototype,"photon",[dp])}#Ct=void fF(this,"photon");static{dF(this.prototype,"mapUi",[dp])}#He=void fF(this,"mapUi");static{dF(this.prototype,"storage",[dp])}#U=void fF(this,"storage");static{dF(this.prototype,"router",[dp])}#We=void fF(this,"router");static{dF(this.prototype,"toast",[dp])}#Ie=void fF(this,"toast");queryParams=["lat","lon","q","selected","category"];lat=null;lon=null;q=null;selected=null;category=null;fetchResultsTask=eW(()=>({context:this,generator:function*(e){const t=this.mapUi.currentSearch&&e.q===this.mapUi.currentSearch.q&&e.category===this.mapUi.currentSearch.category&&e.lat===this.mapUi.currentSearch.lat&&e.lon===this.mapUi.currentSearch.lon,n=this.mapUi.searchResults&&this.mapUi.searchResults.length>0;if(t&&n)return void(this.mapUi.isSidebarVisible&&this.mapUi.showSidebar());this.mapUi.hideSidebar(),this.mapUi.clearSearchResults();const r=e.lat?parseFloat(e.lat):null,i=e.lon?parseFloat(e.lon):null;let s=[],o=null,a=null;try{if(e.category&&r&&i){o="category",a=e.category,this.mapUi.startLoading(o,a);let t=this.mapUi.currentBounds;if(!t){const e=.01;t={minLat:r-e,maxLat:r+e,minLon:i-e,maxLon:i+e}}s=yield this.osm.getCategoryPois(t,e.category,r,i),s=s.map(e=>({...e,_distance:yB(r,i,e.lat,e.lon)})).sort((e,t)=>e._distance-t._distance)}else if(e.q){o="text",a=e.q,this.mapUi.startLoading(o,a),s=yield this.photon.search(e.q,r,i);const t=e.q.toLowerCase();let n=[];t.length>=3&&(n=this.storage.savedPlaces.filter(e=>e.title?.toLowerCase().includes(t)||e.description?.toLowerCase().includes(t))),n.forEach(e=>{s.find(t=>e.osmId&&t.osmId===e.osmId||t.id&&t.id===e.id)||s.push(e)})}else if(r&&i){const e=50;s=yield this.osm.getNearbyPois(r,i,e),this.storage.savedPlaces.filter(t=>yB(r,i,t.lat,t.lon)<=e).forEach(e=>{s.find(t=>e.osmId&&t.osmId===e.osmId||t.id&&t.id===e.id)||s.push(e)}),s=s.map(e=>({...e,_distance:yB(r,i,e.lat,e.lon)})).sort((e,t)=>e._distance-t._distance)}}catch(_6){return console.error("Search request failed.",_6),this.toast.show("Search request failed. Please try again."),void this.mapUi.stopSearch()}finally{o&&a&&this.mapUi.stopLoading(o,a)}s=s.map(e=>this.storage.findPlaceById(e.osmId)||e);const l=e.selected||e.q;if(l&&s.length>0){let e=s.find(e=>e.osmTags&&(e.osmTags.name===l||e.osmTags["name:en"]===l));if(!e){const t=s[0];t._distance<=10&&(e=t)}if(e)return this.router.replaceWith("place",e),void this.mapUi.stopSearch()}this.mapUi.setSearchResults(s),this.mapUi.showSidebar(),this.mapUi.stopSearch()}}),{restartable:!0},"fetchResultsTask",null)},qW=a({default:()=>VW}),VW=class extends Jh{static{dF(this.prototype,"mapUi",[dp])}#He=void fF(this,"mapUi");static{dF(this.prototype,"toast",[dp])}#Ie=void fF(this,"toast");queryParams={lat:{refreshModel:!0},lon:{refreshModel:!0},q:{refreshModel:!0},selected:{refreshModel:!0},category:{refreshModel:!0}};model(e){return e}setupController(e,t){super.setupController(e,t),e.fetchResultsTask.perform(t);const{q:n,category:r,lat:i,lon:s}=this.paramsFor("search");this.mapUi.currentSearch={q:n,category:r,lat:i,lon:s}}resetController(e,t){t&&(e.fetchResultsTask.cancelAll(),this.mapUi.stopSearch())}error(e,t){return this.mapUi.stopSearch(),this.toast.show("Search request failed. Please try again."),t&&t.abort(),!1}static{pF(this.prototype,"error",[ql])}},WW=a({cacheFor:()=>Qn,guidFor:()=>al}),HW=(LW=dp("page-title"),PW=n$((IW=class extends wb{constructor(e){super(e),t$(this,"tokens",PW,this),e$(this,"tokenId",al(this)),this.tokens.push({id:this.tokenId})}compute(e,t){const n={...t,id:this.tokenId,title:e.join("")};return this.tokens.push(n),this.tokens.scheduleTitleUpdate(),""}willDestroy(){super.willDestroy(),this.tokens.remove(this.tokenId),this.tokens.scheduleTitleUpdate()}}).prototype,"tokens",[LW],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),IW),GW="add",KW="remove",ZW="propertychange";function YW(e){for(const t in e)delete e[t]}function XW(e){let t;for(t in e)return!1;return!t}function JW(e,t,n,r,i){if(i){const i=n;n=function(s){return e.removeEventListener(t,n),i.call(r??this,s)}}else r&&r!==e&&(n=n.bind(r));const s={target:e,type:t,listener:n};return e.addEventListener(t,n),s}function QW(e,t,n,r){return JW(e,t,n,r,!0)}function eH(e){e&&e.target&&(e.target.removeEventListener(e.type,e.listener),YW(e))}var tH="change",nH="contextmenu",rH="click",iH="keydown",sH="keypress",oH="touchmove",aH="wheel",lH=class{constructor(){this.disposed=!1}dispose(){this.disposed||(this.disposed=!0,this.disposeInternal())}disposeInternal(){}};function cH(e,t){return e>t?1:et?-1:0}function hH(e,t,n){if(e[0]<=t)return 0;const r=e.length;if(t<=e[r-1])return r-1;if("function"==typeof n){for(let i=1;i0?i-1:i}return r-1}if(n>0){for(let n=1;n0)}removeEventListener(e,t){if(!this.listeners_)return;const n=this.listeners_[e];if(!n)return;const r=n.indexOf(t);-1!==r&&(this.pendingRemovals_&&e in this.pendingRemovals_?(n[r]=yH,++this.pendingRemovals_[e]):(n.splice(r,1),0===n.length&&delete this.listeners_[e]))}},xH=class extends _H{constructor(){super(),this.on=this.onInternal,this.once=this.onceInternal,this.un=this.unInternal,this.revision_=0}changed(){++this.revision_,this.dispatchEvent(tH)}getRevision(){return this.revision_}onInternal(e,t){if(Array.isArray(e)){const n=e.length,r=new Array(n);for(let i=0;i0;)this.pop()}extend(e){for(let t=0,n=e.length;tthis.getLength())throw new Error("Index out of bounds: "+e);this.unique_&&this.assertUnique_(t),this.array_.splice(e,0,t),this.updateLength_(),this.dispatchEvent(new LH(GW,t,e))}pop(){return this.removeAt(this.getLength()-1)}push(e){const t=this.getLength();return this.insertAt(t,e),this.getLength()}remove(e){const t=this.array_;for(let n=0,r=t.length;n=this.getLength())return;const t=this.array_[e];return this.array_.splice(e,1),this.updateLength_(),this.dispatchEvent(new LH(KW,t,e)),t}setAt(e,t){if(e>=this.getLength())return void this.insertAt(e,t);if(e<0)throw new Error("Index out of bounds: "+e);this.unique_&&this.assertUnique_(t,e);const n=this.array_[e];this.array_[e]=t,this.dispatchEvent(new LH(KW,n,e)),this.dispatchEvent(new LH(GW,t,e))}updateLength_(){this.set(TH,this.array_.length)}assertUnique_(e,t){const n=this.array_;for(let r=0,i=n.length;r{this.clickTimeoutId_=void 0;const t=new MH(AH.SINGLECLICK,this.map_,e);this.dispatchEvent(t)},250)}updateActivePointers_(e){const t=e,n=t.pointerId;if(t.type==AH.POINTERUP||t.type==AH.POINTERCANCEL){delete this.trackedTouches_[n];for(const e in this.trackedTouches_)if(this.trackedTouches_[e].target!==t.target){delete this.trackedTouches_[e];break}}else t.type!=AH.POINTERDOWN&&t.type!=AH.POINTERMOVE||(this.trackedTouches_[n]=t);this.activePointers_=Object.values(this.trackedTouches_)}handlePointerUp_(e){this.updateActivePointers_(e);const t=new MH(AH.POINTERUP,this.map_,e,void 0,void 0,this.activePointers_);this.dispatchEvent(t),this.emulateClicks_&&!t.defaultPrevented&&!this.dragging_&&this.isMouseActionButton_(e)&&this.emulateClick_(this.down_),0===this.activePointers_.length&&(this.dragListenerKeys_.forEach(eH),this.dragListenerKeys_.length=0,this.dragging_=!1,this.down_=null)}isMouseActionButton_(e){return 0===e.button}handlePointerDown_(e){this.emulateClicks_=0===this.activePointers_.length,this.updateActivePointers_(e);const t=new MH(AH.POINTERDOWN,this.map_,e,void 0,void 0,this.activePointers_);if(this.dispatchEvent(t),this.down_=new PointerEvent(e.type,e),Object.defineProperty(this.down_,"target",{writable:!1,value:e.target}),0===this.dragListenerKeys_.length){const e=this.map_.getOwnerDocument();this.dragListenerKeys_.push(JW(e,AH.POINTERMOVE,this.handlePointerMove_,this),JW(e,AH.POINTERUP,this.handlePointerUp_,this),JW(this.element_,AH.POINTERCANCEL,this.handlePointerUp_,this)),this.element_.getRootNode&&this.element_.getRootNode()!==e&&this.dragListenerKeys_.push(JW(this.element_.getRootNode(),AH.POINTERUP,this.handlePointerUp_,this))}}handlePointerMove_(e){if(this.isMoving_(e)){this.updateActivePointers_(e),this.dragging_=!0;const t=new MH(AH.POINTERDRAG,this.map_,e,this.dragging_,void 0,this.activePointers_);this.dispatchEvent(t)}}relayMoveEvent_(e){this.originalPointerMoveEvent_=e;const t=!(!this.down_||!this.isMoving_(e));this.dispatchEvent(new MH(AH.POINTERMOVE,this.map_,e,t))}handleTouchMove_(e){const t=this.originalPointerMoveEvent_;t&&!t.defaultPrevented||"boolean"==typeof e.cancelable&&!0!==e.cancelable||e.preventDefault()}isMoving_(e){return this.dragging_||Math.abs(e.clientX-this.down_.clientX)>this.moveTolerance_||Math.abs(e.clientY-this.down_.clientY)>this.moveTolerance_}disposeInternal(){this.relayedListenerKey_&&(eH(this.relayedListenerKey_),this.relayedListenerKey_=null),this.element_.removeEventListener(oH,this.boundHandleTouchMove_),this.pointerdownListenerKey_&&(eH(this.pointerdownListenerKey_),this.pointerdownListenerKey_=null),this.dragListenerKeys_.forEach(eH),this.dragListenerKeys_.length=0,this.element_=null,super.disposeInternal()}},VH="postrender",WH="loadstart",HH="loadend",GH="layergroup",KH="size",ZH="target",YH="view";function XH(e,t){if(!e)throw new Error(t)}var JH=1/0,QH=class{constructor(e,t){this.priorityFunction_=e,this.keyFunction_=t,this.elements_=[],this.priorities_=[],this.queuedElements_={}}clear(){this.elements_.length=0,this.priorities_.length=0,YW(this.queuedElements_)}dequeue(){const e=this.elements_,t=this.priorities_,n=e[0];1==e.length?(e.length=0,t.length=0):(e[0]=e.pop(),t[0]=t.pop(),this.siftUp_(0));const r=this.keyFunction_(n);return delete this.queuedElements_[r],n}enqueue(e){XH(!(this.keyFunction_(e)in this.queuedElements_),"Tried to enqueue an `element` that was already added to the queue");const t=this.priorityFunction_(e);return t!=1/0&&(this.elements_.push(e),this.priorities_.push(t),this.queuedElements_[this.keyFunction_(e)]=!0,this.siftDown_(0,this.elements_.length-1),!0)}getCount(){return this.elements_.length}getLeftChildIndex_(e){return 2*e+1}getRightChildIndex_(e){return 2*e+2}getParentIndex_(e){return e-1>>1}heapify_(){let e;for(e=(this.elements_.length>>1)-1;e>=0;e--)this.siftUp_(e)}isEmpty(){return 0===this.elements_.length}isKeyQueued(e){return e in this.queuedElements_}isQueued(e){return this.isKeyQueued(this.keyFunction_(e))}siftUp_(e){const t=this.elements_,n=this.priorities_,r=t.length,i=t[e],s=n[e],o=e;for(;e>1;){const i=this.getLeftChildIndex_(e),s=this.getRightChildIndex_(e),o=se;){const e=this.getParentIndex_(t);if(!(r[e]>s))break;n[t]=n[e],r[t]=r[e],t=e}n[t]=i,r[t]=s}reprioritize(){const e=this.priorityFunction_,t=this.elements_,n=this.priorities_;let r=0;const i=t.length;let s,o,a;for(o=0;oe.apply(null,t),e=>e[0].getKey()),this.boundHandleTileChange_=this.handleTileChange.bind(this),this.tileChangeCallback_=t,this.tilesLoading_=0,this.tilesLoadingKeys_={}}enqueue(e){const t=super.enqueue(e);return t&&e[0].addEventListener(tH,this.boundHandleTileChange_),t}getTilesLoading(){return this.tilesLoading_}handleTileChange(e){const t=e.target,n=t.getState();if(2===n||3===n||4===n){3!==n&&t.removeEventListener(tH,this.boundHandleTileChange_);const e=t.getKey();e in this.tilesLoadingKeys_&&(delete this.tilesLoadingKeys_[e],--this.tilesLoading_),this.tileChangeCallback_()}}loadMoreTiles(e,t){let n=0;for(;this.tilesLoading_0;){const e=this.dequeue()[0],t=e.getKey();0!==e.getState()||t in this.tilesLoadingKeys_||(this.tilesLoadingKeys_[t]=!0,++this.tilesLoading_,++n,e.load())}}},tG={CENTER:"center",RESOLUTION:"resolution",ROTATION:"rotation"};function nG(e,t,n){return Math.min(Math.max(e,t),n)}function rG(e,t,n,r,i,s){const o=i-n,a=s-r;if(0!==o||0!==a){const l=((e-n)*o+(t-r)*a)/(o*o+a*a);l>1?(n=i,r=s):l>0&&(n+=o*l,r+=a*l)}return iG(e,t,n,r)}function iG(e,t,n,r){const i=n-e,s=r-t;return i*i+s*s}function sG(e){return 180*e/Math.PI}function oG(e){return e*Math.PI/180}function aG(e,t){const n=e%t;return n*t<0?n+t:n}function lG(e,t,n){return e+n*(t-e)}function cG(e,t){const n=Math.pow(10,t);return Math.round(e*n)/n}function uG(e,t){return Math.floor(cG(e,t))}function hG(e,t){return Math.ceil(cG(e,t))}function dG(e,t,n){if(e>=t&&ep&&(d=(p+d)/2,p=d),f>g&&(f=(g+f)/2,g=f);let m=nG(r[0],d,p),y=nG(r[1],f,g);if(o&&n&&i){const e=30*i;m+=-e*Math.log(1+Math.max(0,d-r[0])/e)+e*Math.log(1+Math.max(0,r[0]-p)/e),y+=-e*Math.log(1+Math.max(0,f-r[1])/e)+e*Math.log(1+Math.max(0,r[1]-g)/e)}return[m,y]}}function fG(e){return e}function gG(e){const t=[1/0,1/0,-1/0,-1/0];for(let n=0,r=e.length;ni&&(l|=4),as&&(l|=2),0===l&&(l=1),l}function CG(e,t,n,r,i){return i?(i[0]=e,i[1]=t,i[2]=n,i[3]=r,i):[e,t,n,r]}function SG(e){return CG(1/0,1/0,-1/0,-1/0,e)}function kG(e,t){const n=e[0],r=e[1];return CG(n,r,n,r,t)}function EG(e,t,n,r,i){return IG(SG(i),e,t,n,r)}function RG(e,t){return e[0]==t[0]&&e[2]==t[2]&&e[1]==t[1]&&e[3]==t[3]}function TG(e,t){return t[0]e[2]&&(e[2]=t[2]),t[1]e[3]&&(e[3]=t[3]),e}function LG(e,t){t[0]e[2]&&(e[2]=t[0]),t[1]e[3]&&(e[3]=t[1])}function IG(e,t,n,r,i){for(;nt[0]?r[0]=e[0]:r[0]=t[0],e[1]>t[1]?r[1]=e[1]:r[1]=t[1],e[2]n&&u.push([n,r,o,s]),lr&&u.push([o,r,l,a]),c=t[0]&&e[1]<=t[3]&&e[3]>=t[1]}function GG(e){return e[2]1){const t=e[2]-e[0],n=e[3]-e[1];for(let s=0;s=n[2])){const t=WG(n),i=Math.floor((r[0]-n[0])/t)*t;e[0]-=i,e[2]-=i}return e}function YG(e,t,n){if(t.canWrapX()){const r=t.getExtent();if(!isFinite(e[0])||!isFinite(e[2]))return[[r[0],e[1],r[2],e[3]]];ZG(e,t);const i=WG(r);if(WG(e)>i&&!n)return[[r[0],e[1],r[2],e[3]]];if(e[0]r[2])return[[e[0],e[1],r[2],e[3]],[r[0],e[1],e[2]-i,e[3]]]}return[e]}function XG(e,t){let n=[e];for(let r=0,i=t.length;r0;++r){const e=[];for(let i=0,s=n.length;i=0;--r)if(e[r]!=t[r]){n=!1;break}return n}function QG(e,t){const n=Math.cos(t),r=Math.sin(t),i=e[0]*n-e[1]*r,s=e[1]*n+e[0]*r;return e[0]=i,e[1]=s,e}function eK(e,t){if(t.canWrapX()){const n=WG(t.getExtent()),r=function(e,t,n){const r=t.getExtent();let i=0;return t.canWrapX()&&(e[0]r[2])&&(n=n||WG(r),i=Math.floor((e[0]-r[0])/n)),i}(e,t,n);r&&(e[0]-=r*n)}return e}function tK(e){return Math.pow(e,3)}function nK(e){return 1-tK(1-e)}function rK(e){return 3*e*e-2*e*e*e}function iK(e){return e}function sK(e,t,n){n=n||6371008.8;const r=oG(e[1]),i=oG(t[1]),s=(i-r)/2,o=oG(t[0]-e[0])/2,a=Math.sin(s)*Math.sin(s)+Math.sin(o)*Math.sin(o)*Math.cos(r)*Math.cos(i);return 2*n*Math.atan2(Math.sqrt(a),Math.sqrt(1-a))}function oK(e,t,n,r){r=r||6371008.8;const i=oG(e[1]),s=oG(e[0]),o=t/r,a=Math.asin(Math.sin(i)*Math.cos(o)+Math.cos(i)*Math.sin(o)*Math.cos(n));return[sG(s+Math.atan2(Math.sin(n)*Math.sin(o)*Math.cos(i),Math.cos(o)-Math.sin(i)*Math.sin(a))),sG(a)]}function aK(...e){console.warn(...e)}var lK={radians:6370997/(2*Math.PI),degrees:2*Math.PI*6370997/360,ft:.3048,m:1,"us-ft":1200/3937},cK=class{constructor(e){this.code_=e.code,this.units_=e.units,this.extent_=void 0!==e.extent?e.extent:null,this.worldExtent_=void 0!==e.worldExtent?e.worldExtent:null,this.axisOrientation_=void 0!==e.axisOrientation?e.axisOrientation:"enu",this.global_=void 0!==e.global&&e.global,this.canWrapX_=!(!this.global_||!this.extent_),this.getPointResolutionFunc_=e.getPointResolution,this.defaultTileGrid_=null,this.metersPerUnit_=e.metersPerUnit}canWrapX(){return this.canWrapX_}getCode(){return this.code_}getExtent(){return this.extent_}getUnits(){return this.units_}getMetersPerUnit(){return this.metersPerUnit_||lK[this.units_]}getWorldExtent(){return this.worldExtent_}getAxisOrientation(){return this.axisOrientation_}isGlobal(){return this.global_}setGlobal(e){this.global_=e,this.canWrapX_=!(!e||!this.extent_)}getDefaultTileGrid(){return this.defaultTileGrid_}setDefaultTileGrid(e){this.defaultTileGrid_=e}setExtent(e){this.extent_=e,this.canWrapX_=!(!this.global_||!e)}setWorldExtent(e){this.worldExtent_=e}setGetPointResolution(e){this.getPointResolutionFunc_=e}getPointResolutionFunc(){return this.getPointResolutionFunc_}},uK=6378137,hK=Math.PI*uK,dK=[-hK,-hK,hK,hK],pK=[-180,-85,180,85],fK=uK*Math.log(Math.tan(Math.PI/2)),gK=class extends cK{constructor(e){super({code:e,units:"m",extent:dK,global:!0,worldExtent:pK,getPointResolution:function(e,t){return e/Math.cosh(t[1]/uK)}})}},mK=[new gK("EPSG:3857"),new gK("EPSG:102100"),new gK("EPSG:102113"),new gK("EPSG:900913"),new gK("http://www.opengis.net/def/crs/EPSG/0/3857"),new gK("http://www.opengis.net/gml/srs/epsg.xml#3857")],yK=[-180,-90,180,90],vK=6378137*Math.PI/180,bK=class extends cK{constructor(e,t){super({code:e,units:"degrees",extent:yK,axisOrientation:t,global:!0,metersPerUnit:vK,worldExtent:yK})}},wK=[new bK("CRS:84"),new bK("EPSG:4326","neu"),new bK("urn:ogc:def:crs:OGC:1.3:CRS84"),new bK("urn:ogc:def:crs:OGC:2:84"),new bK("http://www.opengis.net/def/crs/OGC/1.3/CRS84"),new bK("http://www.opengis.net/gml/srs/epsg.xml#4326","neu"),new bK("http://www.opengis.net/def/crs/EPSG/0/4326","neu")],_K={},xK={};function CK(e,t,n){const r=e.getCode(),i=t.getCode();r in xK||(xK[r]={}),xK[r][i]=n}function SK(e,t){return e in xK&&t in xK[e]?xK[e][t]:null}var kK=.9996,EK=.00669438,RK=EK*EK*EK,TK=EK/.99330562,LK=Math.sqrt(.99330562),IK=(1-LK)/(1+LK),PK=IK*IK,MK=PK*IK,AK=MK*IK,OK=AK*IK,NK=.9983242984503243,FK=35*RK/3072,DK=1.5*IK-27/32*MK+269/512*OK,zK=21/16*PK-55/32*AK,jK=151/96*MK-417/128*OK,UK=1097/512*AK,BK=6378137;function $K(e,t,n){const r=e-5e5,i=(n.north?t:t-1e7)/kK/(BK*NK),s=i+DK*Math.sin(2*i)+zK*Math.sin(4*i)+jK*Math.sin(6*i)+UK*Math.sin(8*i),o=Math.sin(s),a=o*o,l=Math.cos(s),c=o/l,u=c*c,h=u*u,d=1-EK*a,p=Math.sqrt(1-EK*a),f=TK*l**2,g=f*f,m=r/(BK/p*kK),y=m*m,v=y*m,b=v*m,w=b*m,_=s-c/(.99330562/d)*(y/2-b/24*(5+3*u+10*f-4*g-9*TK))+w*m/720*(61+90*u+298*f+45*h-252*TK-3*g);let x=(m-v/6*(1+2*u+f)+w/120*(5-2*f+28*u-3*g+8*TK+24*h))/l;return x=dG(x+oG(VK(n.number)),-Math.PI,Math.PI),[sG(x),sG(_)]}function qK(e,t,n){e=dG(e,-180,180),t<-80?t=-80:t>84&&(t=84);const r=oG(t),i=Math.sin(r),s=Math.cos(r),o=i/s,a=o*o,l=a*a,c=oG(e),u=oG(VK(n.number)),h=BK/Math.sqrt(1-EK*i**2),d=TK*s**2,p=s*dG(c-u,-Math.PI,Math.PI),f=p*p,g=f*p,m=g*p,y=m*p,v=y*p,b=BK*(NK*r-.002514607064228144*Math.sin(2*r)+26390466021299826e-22*Math.sin(4*r)-FK*Math.sin(6*r)),w=kK*h*(p+g/6*(1-a+d)+y/120*(5-18*a+l+72*d-58*TK))+5e5;let _=kK*(b+h*o*(f/2+m/24*(5-a+9*d+4*d**2)+v/720*(61-58*a+l+600*d-330*TK)));return n.north||(_+=1e7),[w,_]}function VK(e){return 6*(e-1)-180+3}var WK=[/^EPSG:(\d+)$/,/^urn:ogc:def:crs:EPSG::(\d+)$/,/^http:\/\/www\.opengis\.net\/def\/crs\/EPSG\/0\/(\d+)$/];function HK(e){let t=0;for(const i of WK){const n=e.match(i);if(n){t=parseInt(n[1]);break}}if(!t)return null;let n=0,r=!1;return t>32700&&t<32761?n=t-32700:t>32600&&t<32661&&(r=!0,n=t-32600),n?{number:n,north:r}:null}function GK(e,t){return function(n,r,i,s){const o=n.length;i=i>1?i:2,s=s??i,r||(r=i>2?n.slice():new Array(o));for(let a=0;a180)&&(n[0]=aG(r+180,360)-180),n}function uZ(e,t){if(e===t)return!0;const n=e.getUnits()===t.getUnits();return(e.getCode()===t.getCode()||hZ(e,t)===tZ)&&n}function hZ(e,t){const n=e.getCode(),r=t.getCode();let i=SK(n,r);if(i)return i;let s=null,o=null;for(const l of XK)s||(s=l(e)),o||(o=l(t));if(!s&&!o)return null;const a="EPSG:4326";if(o)if(s)i=dZ(s.inverse,o.forward);else{const e=SK(n,a);e&&(i=dZ(e,o.forward))}else{const e=SK(a,r);e&&(i=dZ(s.inverse,e))}return i&&(rZ(e),rZ(t),CK(e,t,i)),i}function dZ(e,t){return function(n,r,i,s){return r=e(n,r,i,s),t(r,r,i,s)}}function pZ(e,t){return hZ(iZ(e),iZ(t))}function fZ(e,t,n){const r=pZ(t,n);if(!r){const e=iZ(t).getCode(),r=iZ(n).getCode();throw new Error(`No transform available between ${e} and ${r}`)}return r(e,void 0,e.length)}function gZ(e,t,n,r){return KG(e,pZ(t,n),void 0,r)}function mZ(e){return e}function yZ(e){return QK&&!JG(e,[0,0])&&e[0]>=-180&&e[0]<=180&&e[1]>=-90&&e[1]<=90&&(QK=!1,aK("Call useGeographic() from ol/proj once to work with [longitude, latitude] coordinates.")),e}function vZ(e){return e}oZ(mK),oZ(wK),KK=mK,ZK=function(e,t,n,r){const i=e.length;n=n>1?n:2,r=r??n,void 0===t&&(t=n>2?e.slice():new Array(i));for(let s=0;sfK?n=fK:n<-fK&&(n=-fK),t[s+1]=n}return t},YK=function(e,t,n,r){const i=e.length;n=n>1?n:2,r=r??n,void 0===t&&(t=n>2?e.slice():new Array(i));for(let s=0;s{if(!n)return this.getSimplifiedGeometry(t);const r=this.clone();return r.applyTransform(n),r.getSimplifiedGeometry(t)})}simplifyTransformed(e,t){return this.simplifyTransformedInternal(this.getRevision(),e,t)}clone(){return CH()}closestPointXY(e,t,n,r){return CH()}containsXY(e,t){return 0===this.closestPointXY(e,t,OZ,Number.MIN_VALUE)}getClosestPoint(e,t){return t=t||[NaN,NaN],this.closestPointXY(e[0],e[1],t,1/0),t}intersectsCoordinate(e){return this.containsXY(e[0],e[1])}computeExtent(e){return CH()}getExtent(e){if(this.extentRevision_!=this.getRevision()){const e=this.computeExtent(this.extent_);(isNaN(e[0])||isNaN(e[1]))&&SG(e),this.extentRevision_=this.getRevision()}return function(e,t){return t?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):e}(this.extent_,e)}rotate(e,t){CH()}scale(e,t,n){CH()}simplify(e){return this.getSimplifiedGeometry(e*e)}getSimplifiedGeometry(e){return CH()}getType(){return CH()}applyTransform(e){CH()}intersectsExtent(e){return CH()}translate(e,t){CH()}transform(e,t){const n=iZ(e),r="tile-pixels"==n.getUnits()?function(e,r,i){const s=n.getExtent(),o=n.getWorldExtent(),a=UG(o)/UG(s);RZ(AZ,o[0],o[3],a,-a,0,0,0);const l=PZ(e,0,e.length,i,AZ,r),c=pZ(n,t);return c?c(l,l,i):l}:pZ(n,t);return this.applyTransform(r),this}},FZ=class extends NZ{constructor(){super(),this.layout="XY",this.stride=2,this.flatCoordinates}computeExtent(e){return EG(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,e)}getCoordinates(){return CH()}getFirstCoordinate(){return this.flatCoordinates.slice(0,this.stride)}getFlatCoordinates(){return this.flatCoordinates}getLastCoordinate(){return this.flatCoordinates.slice(this.flatCoordinates.length-this.stride)}getLayout(){return this.layout}getSimplifiedGeometry(e){if(this.simplifiedGeometryRevision!==this.getRevision()&&(this.simplifiedGeometryMaxMinSquaredTolerance=0,this.simplifiedGeometryRevision=this.getRevision()),e<0||0!==this.simplifiedGeometryMaxMinSquaredTolerance&&e<=this.simplifiedGeometryMaxMinSquaredTolerance)return this;const t=this.getSimplifiedGeometryInternal(e);return t.getFlatCoordinates().length1)h=n;else{if(d>0){for(let i=0;ii&&(i=a),s=n,o=r}return i}function qZ(e,t,n,r,i){for(let s=0,o=n.length;ss&&(n-a)*(s-l)-(i-a)*(r-l)>0&&o++:r<=s&&(n-a)*(s-l)-(i-a)*(r-l)<0&&o--,a=n,l=r}return 0!==o}function eY(e,t,n,r,i,s){if(0===n.length)return!1;if(!QZ(e,t,n[0],r,i,s))return!1;for(let o=1,a=n.length;o=i[0]&&s[2]<=i[2]||s[1]>=i[1]&&s[3]<=i[3]||tY(e,t,n,r,function(e,t){return function(e,t,n){let r=!1;const i=xG(e,t),s=xG(e,n);if(1===i||1===s)r=!0;else{const o=e[0],a=e[1],l=e[2],c=e[3],u=t[0],h=t[1],d=n[0],p=n[1],f=(p-h)/(d-u);let g,m;2&s&&!(2&i)&&(g=d-(p-c)/f,r=g>=o&&g<=l),r||!(4&s)||4&i||(m=p-(d-l)*f,r=m>=a&&m<=c),r||!(8&s)||8&i||(g=d-(p-a)/f,r=g>=o&&g<=l),r||!(16&s)||16&i||(m=p-(d-o)*f,r=m>=a&&m<=c)}return r}(i,e,t)}))}function rY(e,t,n,r,i){return!!(nY(e,t,n,r,i)||QZ(e,t,n,r,i[0],i[1])||QZ(e,t,n,r,i[0],i[3])||QZ(e,t,n,r,i[2],i[1])||QZ(e,t,n,r,i[2],i[3]))}function iY(e,t,n,r,i){if(!rY(e,t,n[0],r,i))return!1;if(1===n.length)return!0;for(let s=1,o=n.length;s0;){const n=c.pop(),s=c.pop();let o=0;const a=e[s],h=e[s+1],d=e[n],p=e[n+1];for(let t=s+r;to&&(u=t,o=n)}o>i&&(l[(u-t)/r]=1,s+r0&&f>d)&&(p<0&&g0&&g>p)?(a=n,l=h):(s[o++]=a,s[o++]=l,c=a,u=l,a=n,l=h)}return s[o++]=a,s[o++]=l,o}function cY(e,t,n,r,i,s,o,a){for(let l=0,c=n.length;ly&&(c=(u+h)/2,eY(e,t,n,r,c,f)&&(m=c,y=i)),u=h}return isNaN(m)&&(m=i[s]),o?(o.push(m,f,y),o):[m,f,y]}function pY(e,t,n,r,i){let s=[];for(let o=0,a=n.length;o0}function mY(e,t,n,r,i){i=void 0!==i&&i;for(let s=0,o=n.length;su&&h1&&"function"==typeof arguments[n-1]&&(t=arguments[n-1],--n);let r=0;for(;r0}getInteracting(){return this.hints_[1]>0}cancelAnimations(){let e;this.setHint(0,-this.hints_[0]);for(let t=0,n=this.animations_.length;t=0;--n){const r=this.animations_[n];let i=!0;for(let n=0,s=r.length;n0?o/s.duration:1;a>=1?(s.complete=!0,a=1):i=!1;const l=s.easing(a);if(s.sourceCenter){const e=s.sourceCenter[0],t=s.sourceCenter[1],n=s.targetCenter[0],r=s.targetCenter[1];this.nextCenter_=s.targetCenter;const i=e+l*(n-e),o=t+l*(r-t);this.targetCenter_=[i,o]}if(s.sourceResolution&&s.targetResolution){const e=1===l?s.targetResolution:s.sourceResolution+l*(s.targetResolution-s.sourceResolution);if(s.anchor){const t=this.getViewportSize_(this.getRotation()),n=this.constraints_.resolution(e,0,t,!0);this.targetCenter_=this.calculateCenterZoom(n,s.anchor)}this.nextResolution_=s.targetResolution,this.targetResolution_=e,this.applyTargetState_(!0)}if(void 0!==s.sourceRotation&&void 0!==s.targetRotation){const e=1===l?aG(s.targetRotation+Math.PI,2*Math.PI)-Math.PI:s.sourceRotation+l*(s.targetRotation-s.sourceRotation);if(s.anchor){const t=this.constraints_.rotation(e,!0);this.targetCenter_=this.calculateCenterRotate(t,s.anchor)}this.nextRotation_=s.targetRotation,this.targetRotation_=e}if(this.applyTargetState_(!0),t=!0,!s.complete)break}if(i){this.animations_[n]=null,this.setHint(0,-1),this.nextCenter_=null,this.nextResolution_=NaN,this.nextRotation_=NaN;const e=r[0].callback;e&&LY(e,!0)}}this.animations_=this.animations_.filter(Boolean),t&&void 0===this.updateAnimationKey_&&(this.updateAnimationKey_=requestAnimationFrame(this.updateAnimations_.bind(this)))}calculateCenterRotate(e,t){let n;const r=this.getCenterInternal();var i,s;return void 0!==r&&(n=[r[0]-t[0],r[1]-t[1]],QG(n,e-this.getRotation()),s=t,(i=n)[0]+=+s[0],i[1]+=+s[1]),n}calculateCenterZoom(e,t){let n;const r=this.getCenterInternal(),i=this.getResolution();return void 0!==r&&void 0!==i&&(n=[t[0]-e*(t[0]-r[0])/i,t[1]-e*(t[1]-r[1])/i]),n}getViewportSize_(e){const t=this.viewportSize_;if(e){const n=t[0],r=t[1];return[Math.abs(n*Math.cos(e))+Math.abs(r*Math.sin(e)),Math.abs(n*Math.sin(e))+Math.abs(r*Math.cos(e))]}return t}setViewportSize(e){this.viewportSize_=Array.isArray(e)?e.slice():[100,100],this.getAnimating()||this.resolveConstraints(0)}getCenter(){const e=this.getCenterInternal();return e?mZ(e,this.getProjection()):e}getCenterInternal(){return this.get(tG.CENTER)}getConstraints(){return this.constraints_}getConstrainResolution(){return this.get("constrainResolution")}getHints(e){return void 0!==e?(e[0]=this.hints_[0],e[1]=this.hints_[1],e):this.hints_.slice()}calculateExtent(e){return t=this.calculateExtentInternal(e),this.getProjection(),t;var t}calculateExtentInternal(e){e=e||this.getViewportSizeMinusPadding_();const t=this.getCenterInternal();XH(t,"The view center is not defined");const n=this.getResolution();XH(void 0!==n,"The view resolution is not defined");const r=this.getRotation();return XH(void 0!==r,"The view rotation is not defined"),zG(t,n,r,e)}getMaxResolution(){return this.maxResolution_}getMinResolution(){return this.minResolution_}getMaxZoom(){return this.getZoomForResolution(this.minResolution_)}setMaxZoom(e){this.applyOptions_(this.getUpdatedOptions_({maxZoom:e}))}getMinZoom(){return this.getZoomForResolution(this.maxResolution_)}setMinZoom(e){this.applyOptions_(this.getUpdatedOptions_({minZoom:e}))}setConstrainResolution(e){this.applyOptions_(this.getUpdatedOptions_({constrainResolution:e}))}getProjection(){return this.projection_}getResolution(){return this.get(tG.RESOLUTION)}getResolutions(){return this.resolutions_}getResolutionForExtent(e,t){return this.getResolutionForExtentInternal(vZ(e,this.getProjection()),t)}getResolutionForExtentInternal(e,t){t=t||this.getViewportSizeMinusPadding_();const n=WG(e)/t[0],r=UG(e)/t[1];return Math.max(n,r)}getResolutionForValueFunction(e){e=e||2;const t=this.getConstrainedResolution(this.maxResolution_),n=this.minResolution_,r=Math.log(t/n)/Math.log(e);return function(n){return t/Math.pow(e,n*r)}}getRotation(){return this.get(tG.ROTATION)}getValueForResolutionFunction(e){const t=Math.log(e||2),n=this.getConstrainedResolution(this.maxResolution_),r=this.minResolution_,i=Math.log(n/r)/t;return function(e){return Math.log(n/e)/t/i}}getViewportSizeMinusPadding_(e){let t=this.getViewportSize_(e);const n=this.padding_;return n&&(t=[t[0]-n[1]-n[3],t[1]-n[0]-n[2]]),t}getState(){const e=this.getProjection(),t=this.getResolution(),n=this.getRotation();let r=this.getCenterInternal();const i=this.padding_;if(i){const e=this.getViewportSizeMinusPadding_();r=PY(r,this.getViewportSize_(),[e[0]/2+i[3],e[1]/2+i[0]],t,n)}return{center:r.slice(0),projection:void 0!==e?e:null,resolution:t,nextCenter:this.nextCenter_,nextResolution:this.nextResolution_,nextRotation:this.nextRotation_,rotation:n,zoom:this.getZoom()}}getViewStateAndExtent(){return{viewState:this.getState(),extent:this.calculateExtent()}}getZoom(){let e;const t=this.getResolution();return void 0!==t&&(e=this.getZoomForResolution(t)),e}getZoomForResolution(e){let t,n,r=this.minZoom_||0;if(this.resolutions_){const i=hH(this.resolutions_,e,1);r=i,t=this.resolutions_[i],n=i==this.resolutions_.length-1?2:t/this.resolutions_[i+1]}else t=this.maxResolution_,n=this.zoomFactor_;return r+Math.log(t/e)/Math.log(n)}getResolutionForZoom(e){if(this.resolutions_?.length){if(1===this.resolutions_.length)return this.resolutions_[0];const t=nG(Math.floor(e),0,this.resolutions_.length-2),n=this.resolutions_[t]/this.resolutions_[t+1];return this.resolutions_[t]/Math.pow(n,nG(e-t,0,1))}return this.maxResolution_/Math.pow(this.zoomFactor_,e-this.minZoom_)}fit(e,t){let n;if(XH(Array.isArray(e)||"function"==typeof e.getSimplifiedGeometry,"Invalid extent or geometry provided as `geometry`"),Array.isArray(e))XH(!GG(e),"Cannot fit empty extent provided as `geometry`"),n=xY(vZ(e,this.getProjection()));else if("Circle"===e.getType()){const t=vZ(e.getExtent(),this.getProjection());n=xY(t),n.rotate(this.getRotation(),FG(t))}else{const t=null;n=t?e.clone().transform(t,this.getProjection()):e}this.fitInternal(n,t)}rotatedExtentForGeometry(e){const t=this.getRotation(),n=Math.cos(t),r=Math.sin(-t),i=e.getFlatCoordinates(),s=e.getStride();let o=1/0,a=1/0,l=-1/0,c=-1/0;for(let u=0,h=i.length;ue.trim().replace(/^['"]|['"]$/g,"")),n};function BY(e,t,n,r){let i;return i=n&&n.length?n.shift():zH?new class extends OffscreenCanvas{style={}}(e??300,t??150):document.createElement("canvas"),e&&(i.width=e),t&&(i.height=t),i.getContext("2d",r)}function $Y(){return MY||(MY=BY(1,1)),MY}function qY(e){const t=e.canvas;t.width=1,t.height=1,e.clearRect(0,0,1,1)}function VY(e){let t=e.offsetWidth;const n=getComputedStyle(e);return t+=parseInt(n.marginLeft,10)+parseInt(n.marginRight,10),t}function WY(e){let t=e.offsetHeight;const n=getComputedStyle(e);return t+=parseInt(n.marginTop,10)+parseInt(n.marginBottom,10),t}function HY(e,t){const n=t.parentNode;n&&n.replaceChild(e,t)}function GY(e){for(;e.lastChild;)e.lastChild.remove()}function KY(){return new Proxy({childNodes:[],appendChild:function(e){return this.childNodes.push(e),e},remove:function(){},removeChild:function(e){const t=this.childNodes.indexOf(e);if(-1===t)throw new Error("Node to remove was not found");return this.childNodes.splice(t,1),e},insertBefore:function(e,t){const n=this.childNodes.indexOf(t);if(-1===n)throw new Error("Reference node not found");return this.childNodes.splice(n,0,e),e},style:{}},{get:(e,t,n)=>"firstElementChild"===t?e.childNodes.length>0?e.childNodes[0]:null:Reflect.get(e,t,n)})}function ZY(e){return"undefined"!=typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"undefined"!=typeof OffscreenCanvas&&e instanceof OffscreenCanvas}var YY=class extends RH{constructor(e){super();const t=e.element;!t||e.target||t.style.pointerEvents||(t.style.pointerEvents="auto"),this.element=t||null,this.target_=null,this.map_=null,this.listenerKeys=[],e.render&&(this.render=e.render),e.target&&this.setTarget(e.target)}disposeInternal(){this.element?.remove(),super.disposeInternal()}getMap(){return this.map_}setMap(e){this.map_&&this.element?.remove();for(let t=0,n=this.listenerKeys.length;tt.getAttributions(e)));if(void 0!==this.attributions_&&(Array.isArray(this.attributions_)?this.attributions_.forEach(e=>n.add(e)):n.add(this.attributions_)),!this.overrideCollapsible_){const e=!t.some(e=>!1===e.getSource()?.getAttributionsCollapsible());this.setCollapsible(e)}return Array.from(n)}async updateElement_(e){if(!e)return void(this.renderedVisible_&&(this.element.style.display="none",this.renderedVisible_=!1));const t=await Promise.all(this.collectSourceAttributions_(e).map(e=>bH(()=>e))),n=t.length>0;if(this.renderedVisible_!=n&&(this.element.style.display=n?"":"none",this.renderedVisible_=n),!fH(t,this.renderedAttributions_)){GY(this.ulElement_);for(let e=0,n=t.length;e0&&t%(2*Math.PI)!=0?e.animate({rotation:0,duration:this.duration_,easing:nK}):e.setRotation(0))}render(e){const t=e.frameState;if(!t)return;const n=t.viewState.rotation;if(n!=this.rotation_){const e="rotate("+n+"rad)";if(this.autoHide_){const e=this.element.classList.contains(AY);e||0!==n?e&&0!==n&&this.element.classList.remove(AY):this.element.classList.add(AY)}this.label_.style.transform=e}this.rotation_=n}},QY=class extends YY{constructor(e){e=e||{},super({element:document.createElement("div"),target:e.target});const t=void 0!==e.className?e.className:"ol-zoom",n=void 0!==e.delta?e.delta:1,r=void 0!==e.zoomInClassName?e.zoomInClassName:t+"-in",i=void 0!==e.zoomOutClassName?e.zoomOutClassName:t+"-out",s=void 0!==e.zoomInLabel?e.zoomInLabel:"+",o=void 0!==e.zoomOutLabel?e.zoomOutLabel:"–",a=void 0!==e.zoomInTipLabel?e.zoomInTipLabel:"Zoom in",l=void 0!==e.zoomOutTipLabel?e.zoomOutTipLabel:"Zoom out",c=document.createElement("button");c.className=r,c.setAttribute("type","button"),c.title=a,c.appendChild("string"==typeof s?document.createTextNode(s):s),c.addEventListener(rH,this.handleClick_.bind(this,n),!1);const u=document.createElement("button");u.className=i,u.setAttribute("type","button"),u.title=l,u.appendChild("string"==typeof o?document.createTextNode(o):o),u.addEventListener(rH,this.handleClick_.bind(this,-n),!1);const h=t+" "+OY+" "+NY,d=this.element;d.className=h,d.appendChild(c),d.appendChild(u),this.duration_=void 0!==e.duration?e.duration:250}handleClick_(e,t){t.preventDefault(),this.zoomByDelta_(e)}zoomByDelta_(e){const t=this.getMap().getView();if(!t)return;const n=t.getZoom();if(void 0!==n){const r=t.getConstrainedZoom(n+e);this.duration_>0?(t.getAnimating()&&t.cancelAnimations(),t.animate({zoom:r,duration:this.duration_,easing:nK})):t.setZoom(r)}}};function eX(e){e=e||{};const t=new IH;return(void 0===e.zoom||e.zoom)&&t.push(new QY(e.zoomOptions)),(void 0===e.rotate||e.rotate)&&t.push(new JY(e.rotateOptions)),(void 0===e.attribution||e.attribution)&&t.push(new XY(e.attributionOptions)),t}var tX=class{constructor(e,t,n){this.decay_=e,this.minVelocity_=t,this.delay_=n,this.points_=[],this.angle_=0,this.initialVelocity_=0}begin(){this.points_.length=0,this.angle_=0,this.initialVelocity_=0}update(e,t){this.points_.push(e,t,Date.now())}end(){if(this.points_.length<6)return!1;const e=Date.now()-this.delay_,t=this.points_.length-3;if(this.points_[t+2]0&&this.points_[n+2]>e;)n-=3;const r=this.points_[t+2]-this.points_[n+2];if(r<1e3/60)return!1;const i=this.points_[t]-this.points_[n],s=this.points_[t+1]-this.points_[n+1];return this.angle_=Math.atan2(s,i),this.initialVelocity_=Math.sqrt(i*i+s*s)/r,this.initialVelocity_>this.minVelocity_}getDistance(){return(this.minVelocity_-this.initialVelocity_)/this.decay_}getAngle(){return this.angle_}},nX="active",rX=class extends RH{constructor(e){super(),this.on,this.once,this.un,e&&e.handleEvent&&(this.handleEvent=e.handleEvent),this.map_=null,this.setActive(!0)}getActive(){return this.get(nX)}getMap(){return this.map_}handleEvent(e){return!0}setActive(e){this.set(nX,e)}setMap(e){this.map_=e}};function iX(e,t,n,r){const i=e.getZoom();if(void 0===i)return;const s=e.getConstrainedZoom(i+t),o=e.getResolutionForZoom(s);e.getAnimating()&&e.cancelAnimations(),e.animate({resolution:o,anchor:n,duration:void 0!==r?r:250,easing:nK})}var sX=class extends rX{constructor(e){super(),e=e||{},this.delta_=e.delta?e.delta:1,this.duration_=void 0!==e.duration?e.duration:250}handleEvent(e){let t=!1;if(e.type==AH.DBLCLICK){const n=e.originalEvent,r=e.map,i=e.coordinate,s=n.shiftKey?-this.delta_:this.delta_;iX(r.getView(),s,i,this.duration_),n.preventDefault(),t=!0}return!t}};function oX(e){const t=arguments;return function(e){let n=!0;for(let r=0,i=t.length;r0}}else if(e.type==AH.POINTERDOWN){const n=this.handleDownEvent(e);this.handlingDownUpSequence=n,t=this.stopDown(n)}else e.type==AH.POINTERMOVE&&this.handleMoveEvent(e);return!t}handleMoveEvent(e){}handleUpEvent(e){return!1}stopDown(e){return e}updateTrackedPointers_(e){e.activePointers&&(this.targetPointers=e.activePointers)}};function yX(e){const t=e.length;let n=0,r=0;for(let i=0;i0&&this.condition_(e)){const t=e.map.getView();return this.lastCentroid=null,t.getAnimating()&&t.cancelAnimations(),this.kinetic_&&this.kinetic_.begin(),this.noKinetic_=this.targetPointers.length>1,!0}return!1}},bX=class extends mX{constructor(e){e=e||{},super({stopDown:mH}),this.condition_=e.condition?e.condition:aX,this.lastAngle_=void 0,this.duration_=void 0!==e.duration?e.duration:250}handleDragEvent(e){if(!fX(e))return;const t=e.map,n=t.getView();if(n.getConstraints().rotation===EY)return;const r=t.getSize(),i=e.pixel,s=Math.atan2(r[1]/2-i[1],i[0]-r[0]/2);if(void 0!==this.lastAngle_){const e=s-this.lastAngle_;n.adjustRotationInternal(-e)}this.lastAngle_=s}handleUpEvent(e){return!fX(e)||(e.map.getView().endInteraction(this.duration_),!1)}handleDownEvent(e){return!(!fX(e)||!uX(e)||!this.condition_(e)||(e.map.getView().beginInteraction(),this.lastAngle_=void 0,0))}},wX=class extends lH{constructor(e){super(),this.geometry_=null,this.element_=document.createElement("div"),this.element_.style.position="absolute",this.element_.style.pointerEvents="auto",this.element_.className="ol-box "+e,this.map_=null,this.startPixel_=null,this.endPixel_=null}disposeInternal(){this.setMap(null)}render_(){const e=this.startPixel_,t=this.endPixel_,n="px",r=this.element_.style;r.left=Math.min(e[0],t[0])+n,r.top=Math.min(e[1],t[1])+n,r.width=Math.abs(t[0]-e[0])+n,r.height=Math.abs(t[1]-e[1])+n}setMap(e){if(this.map_){this.map_.getOverlayContainer().removeChild(this.element_);const e=this.element_.style;e.left="inherit",e.top="inherit",e.width="inherit",e.height="inherit"}this.map_=e,this.map_&&this.map_.getOverlayContainer().appendChild(this.element_)}setPixels(e,t){this.startPixel_=e,this.endPixel_=t,this.createOrUpdateGeometry(),this.render_()}createOrUpdateGeometry(){if(!this.map_)return;const e=this.startPixel_,t=this.endPixel_,n=[e,[e[0],t[1]],t,[t[0],e[1]]].map(this.map_.getCoordinateFromPixelInternal,this.map_);n[4]=n[0].slice(),this.geometry_?this.geometry_.setCoordinates([n]):this.geometry_=new _Y([n])}getGeometry(){return this.geometry_}},_X="boxcancel",xX=class extends wH{constructor(e,t,n){super(e),this.coordinate=t,this.mapBrowserEvent=n}},CX=class extends mX{constructor(e){super(),this.on,this.once,this.un,e=e??{},this.box_=new wX(e.className||"ol-dragbox"),this.minArea_=e.minArea??64,e.onBoxEnd&&(this.onBoxEnd=e.onBoxEnd),this.startPixel_=null,this.condition_=e.condition??uX,this.boxEndCondition_=e.boxEndCondition??this.defaultBoxEndCondition}defaultBoxEndCondition(e,t,n){const r=n[0]-t[0],i=n[1]-t[1];return r*r+i*i>=this.minArea_}getGeometry(){return this.box_.getGeometry()}handleDragEvent(e){this.startPixel_&&(this.box_.setPixels(this.startPixel_,e.pixel),this.dispatchEvent(new xX("boxdrag",e.coordinate,e)))}handleUpEvent(e){if(!this.startPixel_)return!1;const t=this.boxEndCondition_(e,this.startPixel_,e.pixel);return t&&this.onBoxEnd(e),this.dispatchEvent(new xX(t?"boxend":_X,e.coordinate,e)),this.box_.setMap(null),this.startPixel_=null,!1}handleDownEvent(e){return!!this.condition_(e)&&(this.startPixel_=e.pixel,this.box_.setMap(e.map),this.box_.setPixels(this.startPixel_,this.startPixel_),this.dispatchEvent(new xX("boxstart",e.coordinate,e)),!0)}onBoxEnd(e){}setActive(e){e||(this.box_.setMap(null),this.startPixel_&&(this.dispatchEvent(new xX(_X,this.startPixel_,null)),this.startPixel_=null)),super.setActive(e)}setMap(e){this.getMap()&&(this.box_.setMap(null),this.startPixel_&&(this.dispatchEvent(new xX(_X,this.startPixel_,null)),this.startPixel_=null)),super.setMap(e)}},SX=class extends CX{constructor(e){super({condition:(e=e||{}).condition?e.condition:dX,className:e.className||"ol-dragzoom",minArea:e.minArea}),this.duration_=void 0!==e.duration?e.duration:200,this.out_=void 0!==e.out&&e.out}onBoxEnd(e){const t=this.getMap().getView();let n=this.getGeometry();if(this.out_){const e=t.rotatedExtentForGeometry(n),r=t.getResolutionForExtentInternal(e),i=t.getResolution()/r;n=n.clone(),n.scale(i*i)}t.fitInternal(n,{duration:this.duration_,easing:nK})}},kX="ArrowLeft",EX="ArrowRight",RX="ArrowDown",TX=class extends rX{constructor(e){super(),e=e||{},this.defaultCondition_=function(e){return hX(e)&&pX(e)},this.condition_=void 0!==e.condition?e.condition:this.defaultCondition_,this.duration_=void 0!==e.duration?e.duration:100,this.pixelDelta_=void 0!==e.pixelDelta?e.pixelDelta:128}handleEvent(e){let t=!1;if(e.type==iH){const n=e.originalEvent,r=n.key;if(this.condition_(e)&&(r==RX||r==kX||r==EX||"ArrowUp"==r)){const i=e.map.getView(),s=i.getResolution()*this.pixelDelta_;let o=0,a=0;r==RX?a=-s:r==kX?o=-s:r==EX?o=s:a=s;const l=[o,a];QG(l,i.getRotation()),function(e,t,n){const r=e.getCenterInternal();if(r){const i=[r[0]+t[0],r[1]+t[1]];e.animateInternal({duration:void 0!==n?n:250,easing:iK,center:e.getConstrainedCenter(i)})}}(i,l,this.duration_),n.preventDefault(),t=!0}}return!t}},LX=class extends rX{constructor(e){super(),e=e||{},this.condition_=e.condition?e.condition:function(e){return!function(e){const t=e.originalEvent;return FH?t.metaKey:t.ctrlKey}(e)&&pX(e)},this.delta_=e.delta?e.delta:1,this.duration_=void 0!==e.duration?e.duration:100}handleEvent(e){let t=!1;if(e.type==iH||e.type==sH){const n=e.originalEvent,r=n.key;if(this.condition_(e)&&("+"===r||"-"===r)){const i=e.map,s="+"===r?this.delta_:-this.delta_;iX(i.getView(),s,void 0,this.duration_),n.preventDefault(),t=!0}}return!t}},IX=class extends rX{constructor(e){super(e=e||{}),this.totalDelta_=0,this.lastDelta_=0,this.maxDelta_=void 0!==e.maxDelta?e.maxDelta:1,this.duration_=void 0!==e.duration?e.duration:250,this.timeout_=void 0!==e.timeout?e.timeout:80,this.useAnchor_=void 0===e.useAnchor||e.useAnchor,this.constrainResolution_=void 0!==e.constrainResolution&&e.constrainResolution;const t=e.condition?e.condition:cX;this.condition_=e.onFocusOnly?oX(lX,t):t,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_,this.mode_=void 0,this.trackpadEventGap_=400,this.trackpadTimeoutId_,this.deltaPerZoom_=300,this.ctrlKeyPressed_=!1,this.ctrlKeyListenerKeys_=[]}setMap(e){if(this.ctrlKeyListenerKeys_.forEach(eH),this.ctrlKeyListenerKeys_.length=0,this.ctrlKeyPressed_=!1,super.setMap(e),e){const t=e.getOwnerDocument();this.ctrlKeyListenerKeys_.push(JW(t,"keydown",e=>{"Control"===e.key&&(this.ctrlKeyPressed_=!0)}),JW(t,"keyup",e=>{"Control"===e.key&&(this.ctrlKeyPressed_=!1)}))}}endInteraction_(){this.trackpadTimeoutId_=void 0;const e=this.getMap();if(!e)return;const t=e.getView(),n=this.lastDelta_?this.lastDelta_>0?1:-1:0;t.endInteraction(this.constrainResolution_||t.getConstrainResolution()?100:void 0,n,this.lastAnchor_?e.getCoordinateFromPixel(this.lastAnchor_):null)}handleEvent(e){if(!this.condition_(e))return!0;if(e.type!==aH)return!0;const t=e.map,n=e.originalEvent;n.preventDefault();const r=n.ctrlKey&&!this.ctrlKeyPressed_;n.ctrlKey||(this.ctrlKeyPressed_=!1),this.useAnchor_&&(this.lastAnchor_=e.pixel);let i=n.deltaY;switch(n.deltaMode){case WheelEvent.DOM_DELTA_LINE:i*=40;break;case WheelEvent.DOM_DELTA_PAGE:i*=300}if(0===i)return!1;this.lastDelta_=i;const s=Date.now();void 0===this.startTime_&&(this.startTime_=s),(!this.mode_||s-this.startTime_>this.trackpadEventGap_)&&(this.mode_=Math.abs(i)<4?"trackpad":"wheel");const o=t.getView();if("trackpad"===this.mode_)return this.trackpadTimeoutId_?clearTimeout(this.trackpadTimeoutId_):(o.getAnimating()&&o.cancelAnimations(),o.beginInteraction()),this.trackpadTimeoutId_=setTimeout(this.endInteraction_.bind(this),this.timeout_),r&&(i*=3),o.adjustZoom(-i/this.deltaPerZoom_,this.lastAnchor_?t.getCoordinateFromPixel(this.lastAnchor_):null),this.startTime_=s,!1;this.totalDelta_+=i;const a=Math.max(this.timeout_-(s-this.startTime_),0);return clearTimeout(this.timeoutId_),this.timeoutId_=setTimeout(this.handleWheelZoom_.bind(this,t),a),!1}handleWheelZoom_(e){const t=e.getView();t.getAnimating()&&t.cancelAnimations();let n=-nG(this.totalDelta_,-this.maxDelta_*this.deltaPerZoom_,this.maxDelta_*this.deltaPerZoom_)/this.deltaPerZoom_;(t.getConstrainResolution()||this.constrainResolution_)&&(n=n?n>0?1:-1:0),iX(t,n,this.lastAnchor_?e.getCoordinateFromPixel(this.lastAnchor_):null,this.duration_),this.mode_=void 0,this.totalDelta_=0,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_=void 0}setMouseAnchor(e){this.useAnchor_=e,e||(this.lastAnchor_=null)}},PX=class extends mX{constructor(e){const t=e=e||{};t.stopDown||(t.stopDown=mH),super(t),this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.threshold_=void 0!==e.threshold?e.threshold:.3,this.duration_=void 0!==e.duration?e.duration:250}handleDragEvent(e){let t=0;const n=this.targetPointers[0],r=this.targetPointers[1],i=Math.atan2(r.clientY-n.clientY,r.clientX-n.clientX);if(void 0!==this.lastAngle_){const e=i-this.lastAngle_;this.rotationDelta_+=e,!this.rotating_&&Math.abs(this.rotationDelta_)>this.threshold_&&(this.rotating_=!0),t=e}this.lastAngle_=i;const s=e.map,o=s.getView();o.getConstraints().rotation!==EY&&(this.anchor_=s.getCoordinateFromPixelInternal(s.getEventPixel(yX(this.targetPointers))),this.rotating_&&(s.render(),o.adjustRotationInternal(t,this.anchor_)))}handleUpEvent(e){return!(this.targetPointers.length<2&&(e.map.getView().endInteraction(this.duration_),1))}handleDownEvent(e){if(this.targetPointers.length>=2){const t=e.map;return this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.handlingDownUpSequence||t.getView().beginInteraction(),!0}return!1}},MX=class extends mX{constructor(e){const t=e=e||{};t.stopDown||(t.stopDown=mH),super(t),this.anchor_=null,this.duration_=void 0!==e.duration?e.duration:400,this.lastDistance_=void 0,this.lastScaleDelta_=1}handleDragEvent(e){let t=1;const n=this.targetPointers[0],r=this.targetPointers[1],i=n.clientX-r.clientX,s=n.clientY-r.clientY,o=Math.sqrt(i*i+s*s);void 0!==this.lastDistance_&&(t=this.lastDistance_/o),this.lastDistance_=o;const a=e.map,l=a.getView();1!=t&&(this.lastScaleDelta_=t),this.anchor_=a.getCoordinateFromPixelInternal(a.getEventPixel(yX(this.targetPointers))),a.render(),l.adjustResolutionInternal(t,this.anchor_)}handleUpEvent(e){if(this.targetPointers.length<2){const t=e.map.getView(),n=this.lastScaleDelta_>1?1:-1;return t.endInteraction(this.duration_,n),!1}return!0}handleDownEvent(e){if(this.targetPointers.length>=2){const t=e.map;return this.anchor_=null,this.lastDistance_=void 0,this.lastScaleDelta_=1,this.handlingDownUpSequence||t.getView().beginInteraction(),!0}return!1}};function AX(e){e=e||{};const t=new IH,n=new tX(-.005,.05,100);return(void 0===e.altShiftDragRotate||e.altShiftDragRotate)&&t.push(new bX),(void 0===e.doubleClickZoom||e.doubleClickZoom)&&t.push(new sX({delta:e.zoomDelta,duration:e.zoomDuration})),(void 0===e.dragPan||e.dragPan)&&t.push(new vX({onFocusOnly:e.onFocusOnly,kinetic:n})),(void 0===e.pinchRotate||e.pinchRotate)&&t.push(new PX),(void 0===e.pinchZoom||e.pinchZoom)&&t.push(new MX({duration:e.zoomDuration})),(void 0===e.keyboard||e.keyboard)&&(t.push(new TX),t.push(new LX({delta:e.zoomDelta,duration:e.zoomDuration}))),(void 0===e.mouseWheelZoom||e.mouseWheelZoom)&&t.push(new IX({onFocusOnly:e.onFocusOnly,duration:e.zoomDuration})),(void 0===e.shiftDragZoom||e.shiftDragZoom)&&t.push(new SX({duration:e.zoomDuration})),t}var OX="opacity",NX="visible",FX="extent",DX="zIndex",zX="maxResolution",jX="minResolution",UX="maxZoom",BX="minZoom",$X="source",qX=class extends RH{constructor(e){super(),this.on,this.once,this.un,this.background_=e.background;const t=Object.assign({},e);"object"==typeof e.properties&&(delete t.properties,Object.assign(t,e.properties)),t[OX]=void 0!==e.opacity?e.opacity:1,XH("number"==typeof t[OX],"Layer opacity must be a number"),t[NX]=void 0===e.visible||e.visible,t[DX]=e.zIndex,t[zX]=void 0!==e.maxResolution?e.maxResolution:1/0,t[jX]=void 0!==e.minResolution?e.minResolution:0,t[BX]=void 0!==e.minZoom?e.minZoom:-1/0,t[UX]=void 0!==e.maxZoom?e.maxZoom:1/0,this.className_=void 0!==t.className?t.className:"ol-layer",delete t.className,this.setProperties(t),this.state_=null}getBackground(){return this.background_}getClassName(){return this.className_}getLayerState(e){const t=this.state_||{layer:this,managed:void 0===e||e},n=this.getZIndex();return t.opacity=nG(Math.round(100*this.getOpacity())/100,0,1),t.visible=this.getVisible(),t.extent=this.getExtent(),t.zIndex=void 0!==n||t.managed?n:1/0,t.maxResolution=this.getMaxResolution(),t.minResolution=Math.max(this.getMinResolution(),0),t.minZoom=this.getMinZoom(),t.maxZoom=this.getMaxZoom(),this.state_=t,t}getLayersArray(e){return CH()}getLayerStatesArray(e){return CH()}getExtent(){return this.get(FX)}getMaxResolution(){return this.get(zX)}getMinResolution(){return this.get(jX)}getMinZoom(){return this.get(BX)}getMaxZoom(){return this.get(UX)}getOpacity(){return this.get(OX)}getSourceState(){return CH()}getVisible(){return this.get(NX)}getZIndex(){return this.get(DX)}setBackground(e){this.background_=e,this.changed()}setExtent(e){this.set(FX,e)}setMaxResolution(e){this.set(zX,e)}setMinResolution(e){this.set(jX,e)}setMaxZoom(e){this.set(UX,e)}setMinZoom(e){this.set(BX,e)}setOpacity(e){XH("number"==typeof e,"Layer opacity must be a number"),this.set(OX,e)}setVisible(e){this.set(NX,e)}setZIndex(e){this.set(DX,e)}disposeInternal(){this.state_&&(this.state_.layer=null,this.state_=null),super.disposeInternal()}},VX="addlayer",WX="removelayer",HX=class extends wH{constructor(e,t){super(e),this.layer=t}},GX="layers",KX=class e extends qX{constructor(e){e=e||{};const t=Object.assign({},e);delete t.layers;let n=e.layers;super(t),this.on,this.once,this.un,this.layersListenerKeys_=[],this.listenerKeys_={},this.addChangeListener(GX,this.handleLayersChanged_),n?Array.isArray(n)?n=new IH(n.slice(),{unique:!0}):XH("function"==typeof n.getArray,"Expected `layers` to be an array or a `Collection`"):n=new IH(void 0,{unique:!0}),this.setLayers(n)}handleLayerChange_(){this.changed()}handleLayersChanged_(){this.layersListenerKeys_.forEach(eH),this.layersListenerKeys_.length=0;const e=this.getLayers();this.layersListenerKeys_.push(JW(e,GW,this.handleLayersAdd_,this),JW(e,KW,this.handleLayersRemove_,this));for(const n in this.listenerKeys_)this.listenerKeys_[n].forEach(eH);YW(this.listenerKeys_);const t=e.getArray();for(let n=0,r=t.length;n{this.dispatchEvent("sourceready")},0))),this.changed()}getFeatures(e){return this.renderer_?this.renderer_.getFeatures(e):Promise.resolve([])}getData(e){return this.renderer_&&this.rendered?this.renderer_.getData(e):null}isVisible(e){let t;const n=this.getMapInternal();let r;if(!e&&n&&(e=n.getView()),t=e instanceof TY?{viewState:e.getState(),extent:e.calculateExtent()}:e,!t.layerStatesArray&&n&&(t.layerStatesArray=n.getLayerGroup().getLayerStatesArray()),t.layerStatesArray){if(r=t.layerStatesArray.find(e=>e.layer===this),!r)return!1}else r=this.getLayerState();const i=this.getExtent();return eJ(r,t.viewState)&&(!i||HG(i,t.extent))}getAttributions(e){if(!this.isVisible(e))return[];const t=this.getSource()?.getAttributions();if(!t)return[];let n=t(e instanceof TY?e.getViewStateAndExtent():e);return Array.isArray(n)||(n=[n]),n}render(e,t){const n=this.getRenderer();return n.prepareFrame(e)?(this.rendered=!0,n.renderFrame(e,t)):null}unrender(){this.rendered=!1}getDeclutter(){}renderDeclutter(e,t){}renderDeferred(e){const t=this.getRenderer();t&&t.renderDeferred(e)}setMapInternal(e){e||this.unrender(),this.set("map",e)}getMapInternal(){return this.get("map")}setMap(e){this.mapPrecomposeKey_&&(eH(this.mapPrecomposeKey_),this.mapPrecomposeKey_=null),e||this.changed(),this.mapRenderKey_&&(eH(this.mapRenderKey_),this.mapRenderKey_=null),e&&(this.mapPrecomposeKey_=JW(e,XX,this.handlePrecompose_,this),this.mapRenderKey_=JW(this,tH,e.render,e),this.changed())}handlePrecompose_(e){const t=e.frameState.layerStatesArray,n=this.getLayerState(!1);XH(!t.some(e=>e.layer===n.layer),"A layer can only be added to the map once. Use either `layer.setMap()` or `map.addLayer()`, not both."),t.push(n)}setSource(e){this.set($X,e)}getRenderer(){return this.renderer_||(this.renderer_=this.createRenderer()),this.renderer_}hasRenderer(){return!!this.renderer_}createRenderer(){return null}clearRenderer(){this.renderer_&&(this.renderer_.dispose(),delete this.renderer_)}disposeInternal(){this.clearRenderer(),this.setSource(null),super.disposeInternal()}};function eJ(e,t){if(!e.visible)return!1;const n=t.resolution;if(n=e.maxResolution)return!1;const r=t.zoom;return r>e.minZoom&&r<=e.maxZoom}function tJ(e,t,n=0,r=e.length-1,i=rJ){for(;r>n;){if(r-n>600){const s=r-n+1,o=t-n+1,a=Math.log(s),l=.5*Math.exp(2*a/3),c=.5*Math.sqrt(a*l*(s-l)/s)*(o-s/2<0?-1:1);tJ(e,t,Math.max(n,Math.floor(t-o*l/s+c)),Math.min(r,Math.floor(t+(s-o)*l/s+c)),i)}const s=e[t];let o=n,a=r;for(nJ(e,n,t),i(e[r],s)>0&&nJ(e,n,r);o0;)a--}0===i(e[n],s)?nJ(e,n,a):(a++,nJ(e,a,r)),a<=t&&(n=a+1),t<=a&&(r=a-1)}}function nJ(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function rJ(e,t){return et?1:0}var iJ=class{constructor(e=9){this._maxEntries=Math.max(4,e),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()}all(){return this._all(this.data,[])}search(e){let t=this.data;const n=[];if(!mJ(e,t))return n;const r=this.toBBox,i=[];for(;t;){for(let s=0;s=0&&i[t].children.length>this._maxEntries;)this._split(i,t),t--;this._adjustParentBBoxes(r,i,t)}_split(e,t){const n=e[t],r=n.children.length,i=this._minEntries;this._chooseSplitAxis(n,i,r);const s=this._chooseSplitIndex(n,i,r),o=yJ(n.children.splice(s,n.children.length-s));o.height=n.height,o.leaf=n.leaf,oJ(n,this.toBBox),oJ(o,this.toBBox),t?e[t-1].children.push(o):this._splitRoot(n,o)}_splitRoot(e,t){this.data=yJ([e,t]),this.data.height=e.height+1,this.data.leaf=!1,oJ(this.data,this.toBBox)}_chooseSplitIndex(e,t,n){let r,i=1/0,s=1/0;for(let o=t;o<=n-t;o++){const t=aJ(e,0,o,this.toBBox),a=aJ(e,o,n,this.toBBox),l=fJ(t,a),c=hJ(t)+hJ(a);l=t;l--){const t=e.children[l];lJ(o,e.leaf?i(t):t),a+=dJ(o)}return a}_adjustParentBBoxes(e,t,n){for(let r=n;r>=0;r--)lJ(t[r],e)}_condense(e){for(let t,n=e.length-1;n>=0;n--)0===e[n].children.length?n>0?(t=e[n-1].children,t.splice(t.indexOf(e[n]),1)):this.clear():oJ(e[n],this.toBBox)}};function sJ(e,t,n){if(!n)return t.indexOf(e);for(let r=0;r=e.minX&&t.maxY>=e.minY}function yJ(e){return{children:e,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function vJ(e,t,n,r,i){const s=[t,n];for(;s.length;){if((n=s.pop())-(t=s.pop())<=r)continue;const o=t+Math.ceil((n-t)/r/2)*r;tJ(e,o,t,n,i),s.push(t,o,o,n)}}var bJ,wJ=[NaN,NaN,NaN,0],_J=/^rgba?\(\s*(\d+%?)\s+(\d+%?)\s+(\d+%?)(?:\s*\/\s*(\d+%|\d*\.\d+|[01]))?\s*\)$/i,xJ=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)(?:\s*,\s*(\d+%|\d*\.\d+|[01]))?\s*\)$/i,CJ=/^rgba?\(\s*(\d+%)\s*,\s*(\d+%)\s*,\s*(\d+%)(?:\s*,\s*(\d+%|\d*\.\d+|[01]))?\s*\)$/i,SJ=/^#([\da-f]{3,4}|[\da-f]{6}|[\da-f]{8})$/i;function kJ(e,t){return e.endsWith("%")?Number(e.substring(0,e.length-1))/t:Number(e)}function EJ(e){throw new Error('failed to parse "'+e+'" as color')}function RJ(e){if(e.toLowerCase().startsWith("rgb")){const t=e.match(xJ)||e.match(_J)||e.match(CJ);if(t){const e=t[4],n=100/255;return[nG(kJ(t[1],n)+.5|0,0,255),nG(kJ(t[2],n)+.5|0,0,255),nG(kJ(t[3],n)+.5|0,0,255),void 0!==e?nG(kJ(e,100),0,1):1]}EJ(e)}if(e.startsWith("#")){if(SJ.test(e)){const t=e.substring(1),n=t.length<=4?1:2,r=[0,0,0,255];for(let e=0,i=t.length;e.0031308?269.025*Math.pow(e,1/2.4)-14.025:3294.6*e}function MJ(e){return e>.2068965?Math.pow(e,3):108/841*(e-4/29)}function AJ(e){return e>10.314724?Math.pow((e+14.025)/269.025,2.4):e/3294.6}function OJ(e){return e>.0088564?Math.pow(e,1/3):e/(108/841)+4/29}function NJ(e){const t=AJ(e[0]),n=AJ(e[1]),r=AJ(e[2]),i=OJ(.222488403*t+.716873169*n+.06060791*r),s=500*(OJ(.452247074*t+.399439023*n+.148375274*r)-i),o=200*(i-OJ(.016863605*t+.117638439*n+.865350722*r)),a=Math.atan2(o,s)*(180/Math.PI);return[116*i-16,Math.sqrt(s*s+o*o),a<0?a+360:a,e[3]]}function FJ(e){if("none"===e)return wJ;if(TJ.hasOwnProperty(e))return TJ[e];if(LJ>=1024){let e=0;for(const t in TJ)3&e++||(delete TJ[t],--LJ)}const t=RJ(e);4!==t.length&&EJ(e);for(const n of t)isNaN(n)&&EJ(e);return TJ[e]=t,++LJ,t}function DJ(e){return Array.isArray(e)?e:FJ(e)}function zJ(e){let t=e[0];t!=(0|t)&&(t=t+.5|0);let n=e[1];n!=(0|n)&&(n=n+.5|0);let r=e[2];return r!=(0|r)&&(r=r+.5|0),"rgba("+t+","+n+","+r+","+(void 0===e[3]?1:Math.round(1e3*e[3])/1e3)+")"}function jJ(e){return e[0]>0&&e[1]>0}function UJ(e,t){return Array.isArray(e)?e:(void 0===t?t=[e,e]:(t[0]=e,t[1]=e),t)}var BJ=0,$J=1<t)throw new Error(`expected ${t===1/0?`${e} or more`:`${e} to ${t}`} arguments for ${r}, got ${i}`)}}function r0(e,t,n){const r=e.length-1,i=new Array(r);for(let s=0;s{for(let t=0;t{for(let t=0;t{const r=e.args;let i=n.properties[t];for(let e=1,t=r.length;ee.variables[t];case XQ:return n=>{const r=e.args;if(!(t in n.properties))return!1;let i=n.properties[t];for(let e=1,t=r.length;ee.featureId;case lQ:return e=>e.geometryType;case aQ:{const n=e.args.map(e=>u0(e,t));return e=>"".concat(...n.map(t=>t(e).toString()))}case pQ:return e=>e.resolution;case uQ:case hQ:case zQ:case $Q:case"!":return function(e,t){const n=e.operator,r=e.args.length,i=new Array(r);for(let s=0;s{for(let t=0;t{for(let t=0;t{const t=i[0](e),n=i[1](e),r=i[2](e);return t>=n&&t<=r};case $Q:return e=>{const t=i[0](e);for(let n=1;n!i[0](e);default:throw new Error(`Unsupported logical operator ${n}`)}}(e,t);case mQ:case yQ:case"<":case _Q:case">":case bQ:return function(e,t){const n=e.operator,r=u0(e.args[0],t),i=u0(e.args[1],t);switch(n){case mQ:return e=>r(e)===i(e);case yQ:return e=>r(e)!==i(e);case"<":return e=>r(e)r(e)<=i(e);case">":return e=>r(e)>i(e);case bQ:return e=>r(e)>=i(e);default:throw new Error(`Unsupported comparison operator ${n}`)}}(e,t);case"*":case"/":case"+":case"-":case EQ:case"%":case"^":case LQ:case IQ:case PQ:case MQ:case AQ:case OQ:case NQ:case FQ:return function(e,t){const n=e.operator,r=e.args.length,i=new Array(r);for(let s=0;s{let t=1;for(let n=0;ni[0](e)/i[1](e);case"+":return e=>{let t=0;for(let n=0;ni[0](e)-i[1](e);case EQ:return e=>{const t=i[0](e),n=i[1](e);if(tr?r:t};case"%":return e=>i[0](e)%i[1](e);case"^":return e=>Math.pow(i[0](e),i[1](e));case LQ:return e=>Math.abs(i[0](e));case IQ:return e=>Math.floor(i[0](e));case PQ:return e=>Math.ceil(i[0](e));case MQ:return e=>Math.round(i[0](e));case AQ:return e=>Math.sin(i[0](e));case OQ:return e=>Math.cos(i[0](e));case NQ:return 2===r?e=>Math.atan2(i[0](e),i[1](e)):e=>Math.atan(i[0](e));case FQ:return e=>Math.sqrt(i[0](e));default:throw new Error(`Unsupported numeric operator ${n}`)}}(e,t);case BQ:return function(e,t){const n=e.args.length,r=new Array(n);for(let i=0;i{for(let t=0;t{const t=r[0](e);for(let i=1;i{const t=r[0](e),i=r[1](e);let s,o;for(let a=2;a=i)return 2===a?l:c?d0(t,i,s,o,n,l):h0(t,i,s,o,n,l);s=n,o=l}return o}}(e,t);case YQ:return function(e,t){const n=e.operator,r=e.args.length,i=new Array(r);for(let s=0;s{const n=i[0](t);return e.args[0].type===WJ?zJ(n):n.toString()};throw new Error(`Unsupported convert operator ${n}`)}(e,t);default:throw new Error(`Unsupported operator ${n}`)}}function h0(e,t,n,r,i,s){const o=i-n;if(0===o)return r;const a=t-n;return r+(1===e?a/o:(Math.pow(e,a)-1)/(Math.pow(e,o)-1))*(s-r)}function d0(e,t,n,r,i,s){if(i-n===0)return r;const o=NJ(r),a=NJ(s);let l=a[2]-o[2];return l>180?l-=360:l<-180&&(l+=360),function(e){const t=(e[0]+16)/116,n=e[1],r=e[2]*Math.PI/180,i=MJ(t),s=MJ(t+n/500*Math.cos(r)),o=MJ(t-n/200*Math.sin(r)),a=PJ(3.021973625*s-1.617392459*i-.404875592*o),l=PJ(-.943766287*s+1.916279586*i+.027607165*o),c=PJ(.069407491*s-.22898585*i+1.159737864*o);return[nG(a+.5|0,0,255),nG(l+.5|0,0,255),nG(c+.5|0,0,255),e[3]]}([h0(e,t,n,o[0],i,a[0]),h0(e,t,n,o[1],i,a[1]),o[2]+h0(e,t,n,0,i,l),h0(e,t,n,r[3],i,s[3])])}var p0=class extends _H{constructor(e,t,n,r){super(),this.extent=e,this.pixelRatio_=n,this.resolution=t,this.state="function"==typeof r?0:r,this.image_=null,this.loader="function"==typeof r?r:null}changed(){this.dispatchEvent(tH)}getExtent(){return this.extent}getImage(){return this.image_}getPixelRatio(){return this.pixelRatio_}getResolution(){return this.resolution}getState(){return this.state}load(){if(0==this.state&&this.loader){this.state=1,this.changed();const e=this.getResolution(),t=Array.isArray(e)?e[0]:e;bH(()=>this.loader(this.getExtent(),t,this.getPixelRatio())).then(e=>{"image"in e&&(this.image_=e.image),"extent"in e&&(this.extent=e.extent),"resolution"in e&&(this.resolution=e.resolution),"pixelRatio"in e&&(this.pixelRatio_=e.pixelRatio),(e instanceof HTMLImageElement||UH&&e instanceof ImageBitmap||e instanceof HTMLCanvasElement||e instanceof HTMLVideoElement)&&(this.image_=e),this.state=2}).catch(e=>{this.state=3,console.error(e)}).finally(()=>this.changed())}}setImage(e){this.image_=e}setResolution(e){this.resolution=e}};function f0(e,t){return e+":"+(t?DJ(t):"null")}var g0=new class{constructor(){this.cache_={},this.patternCache_={},this.cacheSize_=0,this.maxCacheSize_=1024}clear(){this.cache_={},this.patternCache_={},this.cacheSize_=0}canExpireCache(){return this.cacheSize_>this.maxCacheSize_}expire(){if(this.canExpireCache()){let e=0;for(const t in this.cache_){const n=this.cache_[t];3&e++||n.hasListener()||(delete this.cache_[t],delete this.patternCache_[t],--this.cacheSize_)}}}get(e,t){const n=f0(e,t);return n in this.cache_?this.cache_[n]:null}getPattern(e,t){const n=f0(e,t);return n in this.patternCache_?this.patternCache_[n]:null}set(e,t,n,r){const i=f0(e,t),s=i in this.cache_;this.cache_[i]=n,r&&(0===n.getImageState()&&n.load(),1===n.getImageState()?n.ready().then(()=>{this.patternCache_[i]=$Y().createPattern(n.getImage(1),"repeat")}):this.patternCache_[i]=$Y().createPattern(n.getImage(1),"repeat")),s||++this.cacheSize_}setSize(e){this.maxCacheSize_=e,this.expire()}},m0=null,y0=class extends _H{constructor(e,t,n,r,i){super(),this.hitDetectionImage_=null,this.image_=e,this.crossOrigin_=n?.crossOrigin,this.referrerPolicy_=n?.referrerPolicy,this.canvas_={},this.color_=i,this.imageState_=void 0===r?0:r,this.size_=e&&e.width&&e.height?[e.width,e.height]:null,this.src_=t,this.tainted_,this.ready_=null}initializeImage_(){this.image_=new Image,null!==this.crossOrigin_&&(this.image_.crossOrigin=this.crossOrigin_),void 0!==this.referrerPolicy_&&(this.image_.referrerPolicy=this.referrerPolicy_)}isTainted_(){if(void 0===this.tainted_&&2===this.imageState_){m0||(m0=BY(1,1,void 0,{willReadFrequently:!0})),m0.drawImage(this.image_,0,0);try{m0.getImageData(0,0,1,1),this.tainted_=!1}catch{m0=null,this.tainted_=!0}}return!0===this.tainted_}dispatchChangeEvent_(){this.dispatchEvent(tH)}handleImageError_(){this.imageState_=3,this.dispatchChangeEvent_()}handleImageLoad_(){this.imageState_=2,this.size_=[this.image_.width,this.image_.height],this.dispatchChangeEvent_()}getImage(e){return this.image_||this.initializeImage_(),this.replaceColor_(e),this.canvas_[e]?this.canvas_[e]:this.image_}setImage(e){this.image_=e}getPixelRatio(e){return this.replaceColor_(e),this.canvas_[e]?e:1}getImageState(){return this.imageState_}getHitDetectionImage(){if(this.image_||this.initializeImage_(),!this.hitDetectionImage_)if(this.isTainted_()){const e=this.size_[0],t=this.size_[1],n=BY(e,t);n.fillRect(0,0,e,t),this.hitDetectionImage_=n.canvas}else this.hitDetectionImage_=this.image_;return this.hitDetectionImage_}getSize(){return this.size_}getSrc(){return this.src_}load(){if(0===this.imageState_){this.image_||this.initializeImage_(),this.imageState_=1;try{void 0!==this.src_&&(this.image_.src=this.src_)}catch{this.handleImageError_()}this.image_ instanceof HTMLImageElement&&(e=this.image_,t=this.src_,t&&(e.src=t),e.src&&jH?new Promise((t,n)=>e.decode().then(()=>t(e)).catch(r=>e.complete&&e.width?t(e):n(r))):function(e){return new Promise((t,n)=>{function r(){s(),t(e)}function i(){s(),n(new Error("Image load error"))}function s(){e.removeEventListener("load",r),e.removeEventListener("error",i)}e.addEventListener("load",r),e.addEventListener("error",i)})}(e)).then(e=>{this.image_=e,this.handleImageLoad_()}).catch(this.handleImageError_.bind(this))}var e,t}replaceColor_(e){if(!this.color_||this.canvas_[e]||2!==this.imageState_)return;const t=this.image_,n=BY(Math.ceil(t.width*e),Math.ceil(t.height*e)),r=n.canvas;var i;n.scale(e,e),n.drawImage(t,0,0),n.globalCompositeOperation="multiply",n.fillStyle="string"==typeof(i=this.color_)?i:zJ(i),n.fillRect(0,0,r.width/e,r.height/e),n.globalCompositeOperation="destination-in",n.drawImage(t,0,0),this.canvas_[e]=r}ready(){return this.ready_||(this.ready_=new Promise(e=>{if(2===this.imageState_||3===this.imageState_)e();else{const t=()=>{2!==this.imageState_&&3!==this.imageState_||(this.removeEventListener(tH,t),e())};this.addEventListener(tH,t)}})),this.ready_}};function v0(e,t,n,r,i,s){let o=void 0===t?void 0:g0.get(t,i);return o||(o=new y0(e,e&&"src"in e?e.src||void 0:t,n,r,i),g0.set(t,i,o,s)),s&&o&&!g0.getPattern(t,i)&&g0.set(t,i,o,s),o}function b0(e){return e?Array.isArray(e)?zJ(e):"object"==typeof e&&"src"in e?function(e){if(!e.offset||!e.size)return g0.getPattern(e.src,e.color);const t=e.src+":"+e.offset,n=g0.getPattern(t,e.color);if(n)return n;const r=g0.get(e.src,null);if(2!==r.getImageState())return null;const i=BY(e.size[0],e.size[1]);return i.drawImage(r.getImage(1),e.offset[0],e.offset[1],e.size[0],e.size[1],0,0,e.size[0],e.size[1]),v0(i.canvas,t,void 0,2,e.color,!0),g0.getPattern(t,e.color)}(e):e:null}var w0,_0="#000",x0="round",C0=[],S0="round",k0="#000",E0="center",R0=[0,0,0,0],T0=new RH,L0=null,I0={},P0=new Set(["serif","sans-serif","monospace","cursive","fantasy","system-ui","ui-serif","ui-sans-serif","ui-monospace","ui-rounded","emoji","math","fangsong"]);function M0(e,t,n){return`${e} ${t} 16px "${n}"`}var A0=function(){const e=100;let t,n;async function r(e){await n.ready;const t=UY(e),r=t.families[0].toLowerCase(),i=t.weight,s=[];return n.forEach(e=>{const n=e.family.replace(/^['"]|['"]$/g,"").toLowerCase(),o=jY[e.weight]||e.weight;n===r&&e.style===t.style&&o==i&&s.push(e)}),0!==s.length&&(await Promise.all(s.map(e=>e.load().then(()=>!0,()=>!1)))).some(e=>e)}async function i(){await n.ready;let s=!0;const o=T0.getProperties(),a=Object.keys(o).filter(t=>o[t]=0;--t){const n=a[t];let i=o[n];iMath.max(t,F0(e,n)),0);return n[t]=r,r}var z0=class e{constructor(e){this.opacity_=e.opacity,this.rotateWithView_=e.rotateWithView,this.rotation_=e.rotation,this.scale_=e.scale,this.scaleArray_=UJ(e.scale),this.displacement_=e.displacement,this.declutterMode_=e.declutterMode}clone(){const t=this.getScale();return new e({opacity:this.getOpacity(),scale:Array.isArray(t)?t.slice():t,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()})}getOpacity(){return this.opacity_}getRotateWithView(){return this.rotateWithView_}getRotation(){return this.rotation_}getScale(){return this.scale_}getScaleArray(){return this.scaleArray_}getDisplacement(){return this.displacement_}getDeclutterMode(){return this.declutterMode_}getAnchor(){return CH()}getImage(e){return CH()}getHitDetectionImage(){return CH()}getPixelRatio(e){return 1}getImageState(){return CH()}getImageSize(){return CH()}getOrigin(){return CH()}getSize(){return CH()}setDisplacement(e){this.displacement_=e}setOpacity(e){this.opacity_=e}setRotateWithView(e){this.rotateWithView_=e}setRotation(e){this.rotation_=e}setScale(e){this.scale_=e,this.scaleArray_=UJ(e)}listenImageChange(e){CH()}load(){CH()}unlistenImageChange(e){CH()}ready(){return Promise.resolve()}},j0=class e extends z0{constructor(e){super({opacity:1,rotateWithView:void 0!==e.rotateWithView&&e.rotateWithView,rotation:void 0!==e.rotation?e.rotation:0,scale:void 0!==e.scale?e.scale:1,displacement:void 0!==e.displacement?e.displacement:[0,0],declutterMode:e.declutterMode}),this.hitDetectionCanvas_=null,this.fill_=void 0!==e.fill?e.fill:null,this.origin_=[0,0],this.points_=e.points,this.radius=e.radius,this.radius2_=e.radius2,this.angle_=void 0!==e.angle?e.angle:0,this.stroke_=void 0!==e.stroke?e.stroke:null,this.size_,this.renderOptions_,this.imageState_=this.fill_&&this.fill_.loading()?1:2,1===this.imageState_&&this.ready().then(()=>this.imageState_=2),this.render()}clone(){const t=this.getScale(),n=new e({fill:this.getFill()?this.getFill().clone():void 0,points:this.getPoints(),radius:this.getRadius(),radius2:this.getRadius2(),angle:this.getAngle(),stroke:this.getStroke()?this.getStroke().clone():void 0,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),scale:Array.isArray(t)?t.slice():t,displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()});return n.setOpacity(this.getOpacity()),n}getAnchor(){const e=this.size_,t=this.getDisplacement(),n=this.getScaleArray();return[e[0]/2-t[0]/n[0],e[1]/2+t[1]/n[1]]}getAngle(){return this.angle_}getFill(){return this.fill_}setFill(e){this.fill_=e,this.render()}getHitDetectionImage(){return this.hitDetectionCanvas_||(this.hitDetectionCanvas_=this.createHitDetectionCanvas_(this.renderOptions_)),this.hitDetectionCanvas_}getImage(e){const t=this.fill_?.getKey(),n=`${e},${this.angle_},${this.radius},${this.radius2_},${this.points_},${t}`+Object.values(this.renderOptions_).join(",");let r=g0.get(n,null)?.getImage(1);if(!r){const t=this.renderOptions_,i=Math.ceil(t.size*e),s=BY(i,i);this.draw_(t,s,e),r=s.canvas;const o=new y0(r,void 0,null,2,null);g0.set(n,null,o),createImageBitmap(r).then(e=>{o.setImage(e)})}return r}getPixelRatio(e){return e}getImageSize(){return this.size_}getImageState(){return this.imageState_}getOrigin(){return this.origin_}getPoints(){return this.points_}getRadius(){return this.radius}setRadius(e){this.radius!==e&&(this.radius=e,this.render())}getRadius2(){return this.radius2_}setRadius2(e){this.radius2_!==e&&(this.radius2_=e,this.render())}getSize(){return this.size_}getStroke(){return this.stroke_}setStroke(e){this.stroke_=e,this.render()}listenImageChange(e){}load(){}unlistenImageChange(e){}calculateLineJoinSize_(e,t,n){if(0===t||this.points_===1/0||"bevel"!==e&&"miter"!==e)return t;let r=this.radius,i=void 0===this.radius2_?r:this.radius2_;if(r{this.patternImage_=null}),0===t.getImageState()&&t.load(),1===t.getImageState()&&(this.patternImage_=t)}this.color_=e}getKey(){const e=this.getColor();return e?e instanceof CanvasPattern||e instanceof CanvasGradient?kH(e):"object"==typeof e&&"src"in e?e.src+":"+e.offset:DJ(e).toString():""}loading(){return!!this.patternImage_}ready(){return this.patternImage_?this.patternImage_.ready():Promise.resolve()}};function $0(e,t,n,r){return void 0!==n&&void 0!==r?[n/e,r/t]:void 0!==n?n/e:void 0!==r?r/t:1}var q0=class e extends z0{constructor(e){const t=void 0!==(e=e||{}).opacity?e.opacity:1,n=void 0!==e.rotation?e.rotation:0,r=void 0!==e.scale?e.scale:1,i=void 0!==e.rotateWithView&&e.rotateWithView;super({opacity:t,rotation:n,scale:r,displacement:void 0!==e.displacement?e.displacement:[0,0],rotateWithView:i,declutterMode:e.declutterMode}),this.anchor_=void 0!==e.anchor?e.anchor:[.5,.5],this.normalizedAnchor_=null,this.anchorOrigin_=void 0!==e.anchorOrigin?e.anchorOrigin:"top-left",this.anchorXUnits_=void 0!==e.anchorXUnits?e.anchorXUnits:"fraction",this.anchorYUnits_=void 0!==e.anchorYUnits?e.anchorYUnits:"fraction",this.crossOrigin_=void 0!==e.crossOrigin?e.crossOrigin:null,this.referrerPolicy_=e.referrerPolicy;const s=void 0!==e.img?e.img:null;let o,a=e.src;if(XH(!(void 0!==a&&s),"`image` and `src` cannot be provided at the same time"),void 0!==a&&0!==a.length||!s||(a=s.src||kH(s)),XH(void 0!==a&&a.length>0,"A defined and non-empty `src` or `image` must be provided"),XH(!((void 0!==e.width||void 0!==e.height)&&void 0!==e.scale),"`width` or `height` cannot be provided together with `scale`"),void 0!==e.src?o=0:void 0!==s&&(o="complete"in s?s.complete?s.src?2:0:1:2),this.color_=void 0!==e.color?DJ(e.color):null,this.iconImage_=v0(s,a,{crossOrigin:this.crossOrigin_,referrerPolicy:this.referrerPolicy_},o,this.color_),this.offset_=void 0!==e.offset?e.offset:[0,0],this.offsetOrigin_=void 0!==e.offsetOrigin?e.offsetOrigin:"top-left",this.origin_=null,this.size_=void 0!==e.size?e.size:null,this.initialOptions_,void 0!==e.width||void 0!==e.height){let t,n;if(e.size)[t,n]=e.size;else{const r=this.getImage(1);if(r.width&&r.height)t=r.width,n=r.height;else if(r instanceof HTMLImageElement){this.initialOptions_=e;const t=()=>{if(this.unlistenImageChange(t),!this.initialOptions_)return;const n=this.iconImage_.getSize();this.setScale($0(n[0],n[1],e.width,e.height))};return void this.listenImageChange(t)}}void 0!==t&&this.setScale($0(t,n,e.width,e.height))}}clone(){let t,n,r;return this.initialOptions_?(n=this.initialOptions_.width,r=this.initialOptions_.height):(t=this.getScale(),t=Array.isArray(t)?t.slice():t),new e({anchor:this.anchor_.slice(),anchorOrigin:this.anchorOrigin_,anchorXUnits:this.anchorXUnits_,anchorYUnits:this.anchorYUnits_,color:this.color_&&this.color_.slice?this.color_.slice():this.color_||void 0,crossOrigin:this.crossOrigin_,referrerPolicy:this.referrerPolicy_,offset:this.offset_.slice(),offsetOrigin:this.offsetOrigin_,opacity:this.getOpacity(),rotateWithView:this.getRotateWithView(),rotation:this.getRotation(),scale:t,width:n,height:r,size:null!==this.size_?this.size_.slice():void 0,src:this.getSrc(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()})}getAnchor(){let e=this.normalizedAnchor_;if(!e){e=this.anchor_;const t=this.getSize();if("fraction"==this.anchorXUnits_||"fraction"==this.anchorYUnits_){if(!t)return null;e=this.anchor_.slice(),"fraction"==this.anchorXUnits_&&(e[0]*=t[0]),"fraction"==this.anchorYUnits_&&(e[1]*=t[1])}if("top-left"!=this.anchorOrigin_){if(!t)return null;e===this.anchor_&&(e=this.anchor_.slice()),"top-right"!=this.anchorOrigin_&&"bottom-right"!=this.anchorOrigin_||(e[0]=-e[0]+t[0]),"bottom-left"!=this.anchorOrigin_&&"bottom-right"!=this.anchorOrigin_||(e[1]=-e[1]+t[1])}this.normalizedAnchor_=e}const t=this.getDisplacement(),n=this.getScaleArray();return[e[0]-t[0]/n[0],e[1]+t[1]/n[1]]}setAnchor(e){this.anchor_=e,this.normalizedAnchor_=null}getColor(){return this.color_}setColor(e){const t=e?DJ(e):null;if(this.color_===t||this.color_&&t&&this.color_.length===t.length&&this.color_.every((e,n)=>e===t[n]))return;this.color_=t;const n=this.getSrc(),r=void 0!==n?null:this.getHitDetectionImage(),i=void 0!==n?0:this.iconImage_.getImageState();this.iconImage_=v0(r,n,{crossOrigin:this.crossOrigin_,referrerPolicy:this.referrerPolicy_},i,this.color_)}getImage(e){return this.iconImage_.getImage(e)}getPixelRatio(e){return this.iconImage_.getPixelRatio(e)}getImageSize(){return this.iconImage_.getSize()}getImageState(){return this.iconImage_.getImageState()}getHitDetectionImage(){return this.iconImage_.getHitDetectionImage()}getOrigin(){if(this.origin_)return this.origin_;let e=this.offset_;if("top-left"!=this.offsetOrigin_){const t=this.getSize(),n=this.iconImage_.getSize();if(!t||!n)return null;e=e.slice(),"top-right"!=this.offsetOrigin_&&"bottom-right"!=this.offsetOrigin_||(e[0]=n[0]-t[0]-e[0]),"bottom-left"!=this.offsetOrigin_&&"bottom-right"!=this.offsetOrigin_||(e[1]=n[1]-t[1]-e[1])}return this.origin_=e,this.origin_}getSrc(){return this.iconImage_.getSrc()}setSrc(e){this.iconImage_=v0(null,e,{crossOrigin:this.crossOrigin_,referrerPolicy:this.referrerPolicy_},0,this.color_)}getSize(){return this.size_?this.size_:this.iconImage_.getSize()}getWidth(){const e=this.getScaleArray();return this.size_?this.size_[0]*e[0]:2==this.iconImage_.getImageState()?this.iconImage_.getSize()[0]*e[0]:void 0}getHeight(){const e=this.getScaleArray();return this.size_?this.size_[1]*e[1]:2==this.iconImage_.getImageState()?this.iconImage_.getSize()[1]*e[1]:void 0}setScale(e){delete this.initialOptions_,super.setScale(e)}listenImageChange(e){this.iconImage_.addEventListener(tH,e)}load(){this.iconImage_.load()}unlistenImageChange(e){this.iconImage_.removeEventListener(tH,e)}ready(){return this.iconImage_.ready()}},V0=class e{constructor(e){e=e||{},this.color_=void 0!==e.color?e.color:null,this.lineCap_=e.lineCap,this.lineDash_=void 0!==e.lineDash?e.lineDash:null,this.lineDashOffset_=e.lineDashOffset,this.lineJoin_=e.lineJoin,this.miterLimit_=e.miterLimit,this.offset_=e.offset,this.width_=e.width}clone(){const t=this.getColor();return new e({color:Array.isArray(t)?t.slice():t||void 0,lineCap:this.getLineCap(),lineDash:this.getLineDash()?this.getLineDash().slice():void 0,lineDashOffset:this.getLineDashOffset(),lineJoin:this.getLineJoin(),miterLimit:this.getMiterLimit(),offset:this.getOffset(),width:this.getWidth()})}getColor(){return this.color_}getLineCap(){return this.lineCap_}getLineDash(){return this.lineDash_}getLineDashOffset(){return this.lineDashOffset_}getLineJoin(){return this.lineJoin_}getMiterLimit(){return this.miterLimit_}getOffset(){return this.offset_}getWidth(){return this.width_}setColor(e){this.color_=e}setLineCap(e){this.lineCap_=e}setLineDash(e){this.lineDash_=e}setLineDashOffset(e){this.lineDashOffset_=e}setLineJoin(e){this.lineJoin_=e}setMiterLimit(e){this.miterLimit_=e}setOffset(e){this.offset_=e}setWidth(e){this.width_=e}},W0=class e{constructor(e){e=e||{},this.geometry_=null,this.geometryFunction_=K0,void 0!==e.geometry&&this.setGeometry(e.geometry),this.fill_=void 0!==e.fill?e.fill:null,this.image_=void 0!==e.image?e.image:null,this.renderer_=void 0!==e.renderer?e.renderer:null,this.hitDetectionRenderer_=void 0!==e.hitDetectionRenderer?e.hitDetectionRenderer:null,this.stroke_=void 0!==e.stroke?e.stroke:null,this.text_=void 0!==e.text?e.text:null,this.zIndex_=e.zIndex}clone(){let t=this.getGeometry();return t&&"object"==typeof t&&(t=t.clone()),new e({geometry:t??void 0,fill:this.getFill()?this.getFill().clone():void 0,image:this.getImage()?this.getImage().clone():void 0,renderer:this.getRenderer()??void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,text:this.getText()?this.getText().clone():void 0,zIndex:this.getZIndex()})}getRenderer(){return this.renderer_}setRenderer(e){this.renderer_=e}setHitDetectionRenderer(e){this.hitDetectionRenderer_=e}getHitDetectionRenderer(){return this.hitDetectionRenderer_}getGeometry(){return this.geometry_}getGeometryFunction(){return this.geometryFunction_}getFill(){return this.fill_}setFill(e){this.fill_=e}getImage(){return this.image_}setImage(e){this.image_=e}getStroke(){return this.stroke_}setStroke(e){this.stroke_=e}getText(){return this.text_}setText(e){this.text_=e}getZIndex(){return this.zIndex_}setGeometry(e){"function"==typeof e?this.geometryFunction_=e:"string"==typeof e?this.geometryFunction_=function(t){return t.get(e)}:e?void 0!==e&&(this.geometryFunction_=function(){return e}):this.geometryFunction_=K0,this.geometry_=e}setZIndex(e){this.zIndex_=e}},H0=null;function G0(){if(!H0){const e=new B0({color:"rgba(255,255,255,0.4)"}),t=new V0({color:"#3399CC",width:1.25});H0=[new W0({image:new U0({fill:e,stroke:t,radius:5}),fill:e,stroke:t})]}return H0}function K0(e){return e.getGeometry()}var Z0=class e{constructor(e){e=e||{},this.font_=e.font,this.rotation_=e.rotation,this.rotateWithView_=e.rotateWithView,this.keepUpright_=e.keepUpright,this.scale_=e.scale,this.scaleArray_=UJ(void 0!==e.scale?e.scale:1),this.text_=e.text,this.textAlign_=e.textAlign,this.justify_=e.justify,this.repeat_=e.repeat,this.textBaseline_=e.textBaseline,this.fill_=void 0!==e.fill?e.fill:new B0({color:"#333"}),this.maxAngle_=void 0!==e.maxAngle?e.maxAngle:Math.PI/4,this.placement_=void 0!==e.placement?e.placement:"point",this.overflow_=!!e.overflow,this.stroke_=void 0!==e.stroke?e.stroke:null,this.offsetX_=void 0!==e.offsetX?e.offsetX:0,this.offsetY_=void 0!==e.offsetY?e.offsetY:0,this.backgroundFill_=e.backgroundFill?e.backgroundFill:null,this.backgroundStroke_=e.backgroundStroke?e.backgroundStroke:null,this.padding_=void 0===e.padding?null:e.padding,this.declutterMode_=e.declutterMode}clone(){const t=this.getScale();return new e({font:this.getFont(),placement:this.getPlacement(),repeat:this.getRepeat(),maxAngle:this.getMaxAngle(),overflow:this.getOverflow(),rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),keepUpright:this.getKeepUpright(),scale:Array.isArray(t)?t.slice():t,text:this.getText(),textAlign:this.getTextAlign(),justify:this.getJustify(),textBaseline:this.getTextBaseline(),fill:this.getFill()instanceof B0?this.getFill().clone():this.getFill(),stroke:this.getStroke()?this.getStroke().clone():void 0,offsetX:this.getOffsetX(),offsetY:this.getOffsetY(),backgroundFill:this.getBackgroundFill()?this.getBackgroundFill().clone():void 0,backgroundStroke:this.getBackgroundStroke()?this.getBackgroundStroke().clone():void 0,padding:this.getPadding()||void 0,declutterMode:this.getDeclutterMode()})}getOverflow(){return this.overflow_}getFont(){return this.font_}getMaxAngle(){return this.maxAngle_}getPlacement(){return this.placement_}getRepeat(){return this.repeat_}getOffsetX(){return this.offsetX_}getOffsetY(){return this.offsetY_}getFill(){return this.fill_}getRotateWithView(){return this.rotateWithView_}getKeepUpright(){return this.keepUpright_}getRotation(){return this.rotation_}getScale(){return this.scale_}getScaleArray(){return this.scaleArray_}getStroke(){return this.stroke_}getText(){return this.text_}getTextAlign(){return this.textAlign_}getJustify(){return this.justify_}getTextBaseline(){return this.textBaseline_}getBackgroundFill(){return this.backgroundFill_}getBackgroundStroke(){return this.backgroundStroke_}getPadding(){return this.padding_}getDeclutterMode(){return this.declutterMode_}setOverflow(e){this.overflow_=e}setFont(e){this.font_=e}setMaxAngle(e){this.maxAngle_=e}setOffsetX(e){this.offsetX_=e}setOffsetY(e){this.offsetY_=e}setPlacement(e){this.placement_=e}setRepeat(e){this.repeat_=e}setRotateWithView(e){this.rotateWithView_=e}setKeepUpright(e){this.keepUpright_=e}setFill(e){this.fill_=e}setRotation(e){this.rotation_=e}setScale(e){this.scale_=e,this.scaleArray_=UJ(void 0!==e?e:1)}setStroke(e){this.stroke_=e}setText(e){this.text_=e}setTextAlign(e){this.textAlign_=e}setJustify(e){this.justify_=e}setTextBaseline(e){this.textBaseline_=e}setBackgroundFill(e){this.backgroundFill_=e}setBackgroundStroke(e){this.backgroundStroke_=e}setPadding(e){this.padding_=e}};function Y0(){return!0}function X0(e,t){t=t??rQ();const n=e.length,r=new Array(n);for(let o=0;o0&&"string"==typeof p[0]?g=s1(e,"icon-color",t):f=v1(p,"icon-color"));const m=function(e,t){const n=e[t];if(void 0!==n){if("string"!=typeof n)throw new Error(`Expected a string for ${t}`);return n}}(e,"icon-cross-origin"),y=function(e,t){const n=e[t];if(void 0!==n)return g1(n,t)}(e,"icon-offset"),v=d1(e,"icon-offset-origin"),b=u1(e,"icon-width"),w={src:r,anchorOrigin:u,anchorXUnits:h,anchorYUnits:d,crossOrigin:m,offset:y,offsetOrigin:v,height:u1(e,"icon-height"),width:b,size:h1(e,"icon-size"),declutterMode:f1(e,"icon-declutter-mode")};let _=null;return function(e){if(_)g&&_.setColor(g(e));else{const t=g?g(e):f;_=new q0(void 0!==t?Object.assign({},w,{color:t}):Object.assign({},w))}return o&&_.setOpacity(o(e)),a&&_.setDisplacement(a(e)),l&&_.setRotation(l(e)),c&&_.setRotateWithView(c(e)),s&&_.setScale(s(e)),i&&_.setAnchor(i(e)),_}}(e,t):"shape-points"in e?function(e,t){const n="shape-",r="shape-points",i="shape-radius",s=y1(e[r],r);if(!(i in e))throw new Error(`Expected a number for ${i}`);const o=n1(e,i,t),a="number"==typeof e[i]?e[i]:5,l="shape-radius2",c=n1(e,l,t),u="number"==typeof e[l]?e[l]:void 0,h=Q0(e,n,t),d=e1(e,n,t),p=c1(e,"shape-scale",t),f=a1(e,"shape-displacement",t),g=n1(e,"shape-rotation",t),m=i1(e,"shape-rotate-with-view",t),y=u1(e,"shape-angle"),v=f1(e,"shape-declutter-mode"),b=new j0({points:s,radius:a,radius2:u,angle:y,declutterMode:v});return function(e){return o&&b.setRadius(o(e)),c&&b.setRadius2(c(e)),h&&b.setFill(h(e)),d&&b.setStroke(d(e)),f&&b.setDisplacement(f(e)),g&&b.setRotation(g(e)),m&&b.setRotateWithView(m(e)),p&&b.setScale(p(e)),b}}(e,t):"circle-radius"in e?function(e,t){const n="circle-",r=Q0(e,n,t),i=e1(e,n,t),s=n1(e,"circle-radius",t),o=c1(e,"circle-scale",t),a=a1(e,"circle-displacement",t),l=n1(e,"circle-rotation",t),c=i1(e,"circle-rotate-with-view",t),u=f1(e,"circle-declutter-mode"),h=new U0({radius:5,declutterMode:u});return function(e){return s&&h.setRadius(s(e)),r&&h.setFill(r(e)),i&&h.setStroke(i(e)),a&&h.setDisplacement(a(e)),l&&h.setRotation(l(e)),c&&h.setRotateWithView(c(e)),o&&h.setScale(o(e)),h}}(e,t):null}(e,t),o=n1(e,"z-index",t);if(!(n||r||i||s||XW(e)))throw new Error("No fill, stroke, point, or text symbolizer properties in style: "+JSON.stringify(e));const a=new W0;return function(e){let t=!0;if(n){const r=n(e);r&&(t=!1),a.setFill(r)}if(r){const n=r(e);n&&(t=!1),a.setStroke(n)}if(i){const n=i(e);n&&(t=!1),a.setText(n)}if(s){const n=s(e);n&&(t=!1),a.setImage(n)}return o&&a.setZIndex(o(e)),t?null:a}}function Q0(e,t,n){let r;if(t+"fill-pattern-src"in e)r=function(e,t,n){const r=r1(e,t+"pattern-src",n),i=l1(e,t+"pattern-offset",n),s=l1(e,t+"pattern-size",n),o=s1(e,t+"color",n);return function(e){return{src:r(e),offset:i&&i(e),size:s&&s(e),color:o&&o(e)}}}(e,t+"fill-",n);else{if("none"===e[t+"fill-color"])return()=>null;r=s1(e,t+"fill-color",n)}if(!r)return null;const i=new B0;return function(e){const t=r(e);return t===wJ?null:(i.setColor(t),i)}}function e1(e,t,n){const r=n1(e,t+"stroke-width",n),i=s1(e,t+"stroke-color",n);if(!r&&!i)return null;const s=r1(e,t+"stroke-line-cap",n),o=r1(e,t+"stroke-line-join",n),a=o1(e,t+"stroke-line-dash",n),l=n1(e,t+"stroke-line-dash-offset",n),c=n1(e,t+"stroke-miter-limit",n),u=n1(e,t+"stroke-offset",n),h=new V0;return function(e){if(i){const t=i(e);if(t===wJ)return null;h.setColor(t)}if(r&&h.setWidth(r(e)),s){const t=s(e);if("butt"!==t&&"round"!==t&&"square"!==t)throw new Error("Expected butt, round, or square line cap");h.setLineCap(t)}if(o){const t=o(e);if("bevel"!==t&&"round"!==t&&"miter"!==t)throw new Error("Expected bevel, round, or miter line join");h.setLineJoin(t)}return a&&h.setLineDash(a(e)),l&&h.setLineDashOffset(l(e)),c&&h.setMiterLimit(c(e)),u&&h.setOffset(u(e)),h}}function t1(e,t){if(!(t in e))return;const n=e[t];return void 0===n?void 0:n}function n1(e,t,n){const r=t1(e,t);if(void 0===r)return;const i=c0(r,qJ,n);return function(e){return y1(i(e),t)}}function r1(e,t,n){const r=t1(e,t);if(void 0===r)return null;const i=c0(r,VJ,n);return function(e){return m1(i(e),t)}}function i1(e,t,n){const r=t1(e,t);if(void 0===r)return null;const i=c0(r,$J,n);return function(e){const n=i(e);if("boolean"!=typeof n)throw new Error(`Expected a boolean for ${t}`);return n}}function s1(e,t,n){const r=t1(e,t);if(void 0===r)return null;const i=c0(r,WJ,n);return function(e){return v1(i(e),t)}}function o1(e,t,n){const r=t1(e,t);if(void 0===r)return null;if(Array.isArray(r)&&(0===r.length||"string"!=typeof r[0])){const e=r.map((e,r)=>{if("number"==typeof e)return()=>e;const i=c0(e,qJ,n);return function(e){return y1(i(e),`${t}[${r}]`)}});return function(t){const n=new Array(e.length);for(let r=0;r4)throw new Error(`Expected a color with 3 or 4 values for ${t}`);return n}function b1(e,t){const n=g1(e,t);if(2!==n.length)throw new Error(`Expected an array of two numbers for ${t}`);return n}var w1="renderOrder",_1=class extends QX{constructor(e){e=e||{};const t=Object.assign({},e);delete t.style,delete t.renderBuffer,delete t.updateWhileAnimating,delete t.updateWhileInteracting,super(t),this.declutter_=e.declutter?String(e.declutter):void 0,this.renderBuffer_=void 0!==e.renderBuffer?e.renderBuffer:100,this.style_=null,this.styleFunction_=void 0,this.setStyle(e.style),this.updateWhileAnimating_=void 0!==e.updateWhileAnimating&&e.updateWhileAnimating,this.updateWhileInteracting_=void 0!==e.updateWhileInteracting&&e.updateWhileInteracting}getDeclutter(){return this.declutter_}getFeatures(e){return super.getFeatures(e)}getRenderBuffer(){return this.renderBuffer_}getRenderOrder(){return this.get(w1)}getStyle(){return this.style_}getStyleFunction(){return this.styleFunction_}getUpdateWhileAnimating(){return this.updateWhileAnimating_}getUpdateWhileInteracting(){return this.updateWhileInteracting_}renderDeclutter(e,t){const n=this.getDeclutter();n in e.declutter==0&&(e.declutter[n]=new iJ(9)),this.getRenderer().renderDeclutter(e,t)}setRenderOrder(e){this.set(w1,e)}setStyle(e){this.style_=void 0===e?G0:e;const t=function(e){if(void 0===e)return G0;if(!e)return null;if("function"==typeof e)return e;if(e instanceof W0)return e;if(Array.isArray(e)&&0===e.length)return[];if(Array.isArray(e)&&e[0]instanceof W0){const t=e.length,n=new Array(t);for(let r=0;r=0;--r){const i=f[r],s=i.layer;if(s.hasRenderer()&&eJ(i,c)&&o.call(a,s)){const r=s.getRenderer(),o=s.getSource();if(r&&o){const s=o.getWrapX()?d:e,a=u.bind(null,i.managed);y[0]=s[0]+p[b][0],y[1]=s[1]+p[b][1],l=r.forEachFeatureAtCoordinate(y,t,n,a,m)}if(l)return l}}if(0===m.length)return;const v=1/m.length;return m.forEach((e,t)=>e.distanceSq+=t*v),m.sort((e,t)=>e.distanceSq-t.distanceSq),m.some(e=>l=e.callback(e.feature,e.layer,e.geometry)),l}hasFeatureAtCoordinate(e,t,n,r,i,s){return void 0!==this.forEachFeatureAtCoordinate(e,t,n,r,gH,this,i,s)}getMap(){return this.map_}renderFrame(e){CH()}scheduleExpireIconCache(e){g0.canExpireCache()&&e.postRenderFunctions.push(S1)}};function S1(){g0.expire()}var k1=class extends C1{constructor(e){super(e),this.fontChangeListenerKey_=JW(T0,ZW,e.redrawText,e),this.element_=zH?KY():document.createElement("div");const t=this.element_.style;t.position="absolute",t.width="100%",t.height="100%",t.zIndex="0",this.element_.className=OY+" ol-layers";const n=e.getViewport();n&&n.insertBefore(this.element_,n.firstChild||null),this.children_=[],this.renderedVisible_=!0}dispatchRenderEvent(e,t){const n=this.getMap();if(n.hasListener(e)){const r=new x1(e,void 0,t);n.dispatchEvent(r)}}disposeInternal(){eH(this.fontChangeListenerKey_),this.element_.remove(),super.disposeInternal()}renderFrame(e){if(!e)return void(this.renderedVisible_&&(this.element_.style.display="none",this.renderedVisible_=!1));this.calculateMatrices2D(e),this.dispatchRenderEvent(XX,e);const t=e.layerStatesArray.sort((e,t)=>e.zIndex-t.zIndex);t.some(e=>e.layer instanceof _1&&e.layer.getDeclutter())&&(e.declutter={});const n=e.viewState;this.children_.length=0;const r=this.getMap().getTargetElement();let i;ZY(r)&&(i=r.getContext("2d"),i.setTransform(1,0,0,1,0,0),i.clearRect(0,0,r.width,r.height));const s=[];let o=i?r:null;for(let a=0,l=t.length;a0)&&(i.fillStyle=t,i.fillRect(0,0,i.canvas.width,i.canvas.height)),!ZY(e)||0===e.width)continue;i.save();const n=a.style.opacity||e.style.opacity;i.globalAlpha=""===n?1:Number(n);const r=e.style.transform;if(r)i.transform(...IZ(r));else{const t=parseFloat(e.style.width)/e.width,n=parseFloat(e.style.height)/e.height;i.transform(t,0,0,n,0,0)}i.drawImage(e,0,0),i.restore()}this.dispatchRenderEvent("postcompose",e),this.renderedVisible_||(this.element_.style.display="",this.renderedVisible_=!0),this.scheduleExpireIconCache(e)}declutter(e,t){if(e.declutter){for(let n=t.length-1;n>=0;--n){const r=t[n],i=r.layer;i.getDeclutter()&&i.renderDeclutter(e,r)}t.forEach(t=>t.layer.renderDeferred(e))}}};function E1(e){e instanceof QX?e.setMapInternal(null):e instanceof KX&&e.getLayers().forEach(E1)}function R1(e,t){if(e instanceof QX)e.setMapInternal(t);else if(e instanceof KX){const n=e.getLayers().getArray();for(let e=0,r=n.length;ethis.updateSize())),this.controls=t.controls||(zH?new IH:eX()),this.interactions=t.interactions||(zH?new IH:AX({onFocusOnly:!0})),this.overlays_=t.overlays,this.overlayIdIndex_={},this.renderer_=null,this.postRenderFunctions_=[],this.tileQueue_=new eG(this.getTilePriority.bind(this),this.handleTileChange_.bind(this)),this.addChangeListener(GH,this.handleLayerGroupChanged_),this.addChangeListener(YH,this.handleViewChanged_),this.addChangeListener(KH,this.handleSizeChanged_),this.addChangeListener(ZH,this.handleTargetChanged_),this.setProperties(t.values);const n=this;!e.view||e.view instanceof TY||e.view.then(function(e){n.setView(new TY(e))}),this.controls.addEventListener(GW,e=>{e.element.setMap(this)}),this.controls.addEventListener(KW,e=>{e.element.setMap(null)}),this.interactions.addEventListener(GW,e=>{e.element.setMap(this)}),this.interactions.addEventListener(KW,e=>{e.element.setMap(null)}),this.overlays_.addEventListener(GW,e=>{this.addOverlayInternal_(e.element)}),this.overlays_.addEventListener(KW,e=>{const t=e.element.getId();void 0!==t&&delete this.overlayIdIndex_[t.toString()],e.element.setMap(null)}),this.controls.forEach(e=>{e.setMap(this)}),this.interactions.forEach(e=>{e.setMap(this)}),this.overlays_.forEach(this.addOverlayInternal_.bind(this))}addControl(e){this.getControls().push(e)}addInteraction(e){this.getInteractions().push(e)}addLayer(e){this.getLayerGroup().getLayers().push(e)}handleLayerAdd_(e){R1(e.layer,this)}addOverlay(e){this.getOverlays().push(e)}addOverlayInternal_(e){const t=e.getId();void 0!==t&&(this.overlayIdIndex_[t.toString()]=e),e.setMap(this)}disposeInternal(){this.controls.clear(),this.interactions.clear(),this.overlays_.clear(),this.resizeObserver_?.disconnect(),this.setTarget(null),super.disposeInternal()}forEachFeatureAtPixel(e,t,n){if(!this.frameState_||!this.renderer_)return;const r=this.getCoordinateFromPixelInternal(e),i=void 0!==(n=void 0!==n?n:{}).hitTolerance?n.hitTolerance:0,s=void 0!==n.layerFilter?n.layerFilter:gH,o=!1!==n.checkWrapped;return this.renderer_.forEachFeatureAtCoordinate(r,this.frameState_,i,o,t,null,s,null)}getFeaturesAtPixel(e,t){const n=[];return this.forEachFeatureAtPixel(e,function(e){n.push(e)},t),n}getAllLayers(){const e=[];return function t(n){n.forEach(function(n){n instanceof KX?t(n.getLayers()):e.push(n)})}(this.getLayers()),e}hasFeatureAtPixel(e,t){if(!this.frameState_||!this.renderer_)return!1;const n=this.getCoordinateFromPixelInternal(e),r=void 0!==(t=void 0!==t?t:{}).layerFilter?t.layerFilter:gH,i=void 0!==t.hitTolerance?t.hitTolerance:0,s=!1!==t.checkWrapped;return this.renderer_.hasFeatureAtCoordinate(n,this.frameState_,i,s,r,null)}getEventCoordinate(e){return this.getCoordinateFromPixel(this.getEventPixel(e))}getEventCoordinateInternal(e){return this.getCoordinateFromPixelInternal(this.getEventPixel(e))}getEventPixel(e){const t=this.viewport_.getBoundingClientRect(),n=this.getSize(),r=t.width/n[0],i=t.height/n[1],s="changedTouches"in e?e.changedTouches[0]:e;return[(s.clientX-t.left)/r,(s.clientY-t.top)/i]}getTarget(){return this.get(ZH)}getTargetElement(){return this.targetElement_}getCoordinateFromPixel(e){return mZ(this.getCoordinateFromPixelInternal(e),this.getView().getProjection())}getCoordinateFromPixelInternal(e){const t=this.frameState_;return t?kZ(t.pixelToCoordinateTransform,e.slice()):null}getControls(){return this.controls}getOverlays(){return this.overlays_}getOverlayById(e){const t=this.overlayIdIndex_[e.toString()];return void 0!==t?t:null}getInteractions(){return this.interactions}getLayerGroup(){return this.get(GH)}setLayers(e){const t=this.getLayerGroup();if(e instanceof IH)return void t.setLayers(e);const n=t.getLayers();n.clear(),n.extend(e)}getLayers(){return this.getLayerGroup().getLayers()}getLoadingOrNotReady(){const e=this.getLayerGroup().getLayerStatesArray();for(let t=0,n=e.length;t=0;n--){const r=t[n];if(r.getMap()===this&&r.getActive()&&this.getTargetElement()&&(!r.handleEvent(e)||e.propagationStopped))break}}}handlePostRender(){const e=this.frameState_,t=this.tileQueue_;if(!t.isEmpty()){let n=this.maxTilesLoading_,r=n;const i=e?e.viewHints:void 0,s=!!i&&(i[0]||i[1]);if(s){const t=Date.now()-e.time>8;n=t?0:8,r=t?0:2}t.getTilesLoading(){this.postRenderTimeoutHandle_=void 0,this.handlePostRender()},0))}setLayerGroup(e){const t=this.getLayerGroup();t&&this.handleLayerRemove_(new HX("removelayer",t)),this.set(GH,e)}setSize(e){this.set(KH,e)}setTarget(e){this.set(ZH,e)}setView(e){if(!e||e instanceof TY)return void this.set(YH,e);this.set(YH,new TY);const t=this;e.then(function(e){t.setView(new TY(e))})}updateSize(){const e=this.getTargetElement();let t;if(e){let n,r;if(ZY(e)){const t=e.getContext("2d").getTransform();n=e.width/t.a,r=e.height/t.d}else{const t=getComputedStyle(e);n=e.offsetWidth-parseFloat(t.borderLeftWidth)-parseFloat(t.paddingLeft)-parseFloat(t.paddingRight)-parseFloat(t.borderRightWidth),r=e.offsetHeight-parseFloat(t.borderTopWidth)-parseFloat(t.paddingTop)-parseFloat(t.paddingBottom)-parseFloat(t.borderBottomWidth)}isNaN(n)||isNaN(r)||(t=[Math.max(0,n),Math.max(0,r)],!jJ(t)&&(e.offsetWidth||e.offsetHeight||e.getClientRects().length)&&aK("No map visible because the map container's width or height are 0."))}const n=this.getSize();!t||n&&fH(t,n)||(this.updateViewportSize_(t),this.setSize(t))}updateViewportSize_(e){const t=this.getView();t&&t.setViewportSize(e)}},L1="element",I1="map",P1="offset",M1="position",A1="positioning",O1=class extends RH{constructor(e){super(),this.on,this.once,this.un,this.options=e,this.id=e.id,this.insertFirst=void 0===e.insertFirst||e.insertFirst,this.stopEvent=void 0===e.stopEvent||e.stopEvent,this.element=document.createElement("div"),this.element.className=void 0!==e.className?e.className:"ol-overlay-container ol-selectable",this.element.style.position="absolute",this.element.style.pointerEvents="auto",this.autoPan=!0===e.autoPan?{}:e.autoPan||void 0,this.rendered={transform_:"",visible:!0},this.mapPostrenderListenerKey=null,this.addChangeListener(L1,this.handleElementChanged),this.addChangeListener(I1,this.handleMapChanged),this.addChangeListener(P1,this.handleOffsetChanged),this.addChangeListener(M1,this.handlePositionChanged),this.addChangeListener(A1,this.handlePositioningChanged),void 0!==e.element&&this.setElement(e.element),this.setOffset(void 0!==e.offset?e.offset:[0,0]),this.setPositioning(e.positioning||"top-left"),void 0!==e.position&&this.setPosition(e.position)}getElement(){return this.get(L1)}getId(){return this.id}getMap(){return this.get(I1)||null}getOffset(){return this.get(P1)}getPosition(){return this.get(M1)}getPositioning(){return this.get(A1)}handleElementChanged(){GY(this.element);const e=this.getElement();e&&this.element.appendChild(e)}handleMapChanged(){this.mapPostrenderListenerKey&&(this.element?.remove(),eH(this.mapPostrenderListenerKey),this.mapPostrenderListenerKey=null);const e=this.getMap();if(e){this.mapPostrenderListenerKey=JW(e,VH,this.render,this),this.updatePixelPosition();const t=this.stopEvent?e.getOverlayContainerStopEvent():e.getOverlayContainer();this.insertFirst?t.insertBefore(this.element,t.childNodes[0]||null):t.appendChild(this.element),this.performAutoPan()}}render(){this.updatePixelPosition()}handleOffsetChanged(){this.updatePixelPosition()}handlePositionChanged(){this.updatePixelPosition(),this.performAutoPan()}handlePositioningChanged(){this.updatePixelPosition()}setElement(e){this.set(L1,e)}setMap(e){this.set(I1,e)}setOffset(e){this.set(P1,e)}setPosition(e){this.set(M1,e)}performAutoPan(){this.autoPan&&this.panIntoView(this.autoPan)}panIntoView(e){const t=this.getMap();if(!t||!t.getTargetElement()||!this.get(M1))return;const n=this.getRect(t.getTargetElement(),t.getSize()),r=this.getElement(),i=this.getRect(r,[VY(r),WY(r)]),s=void 0===(e=e||{}).margin?20:e.margin;if(!wG(n,i)){const r=i[0]-n[0],o=n[2]-i[2],a=i[1]-n[1],l=n[3]-i[3],c=[0,0];if(r<0?c[0]=r-s:o<0&&(c[0]=Math.abs(o)+s),a<0?c[1]=a-s:l<0&&(c[1]=Math.abs(l)+s),0!==c[0]||0!==c[1]){const n=t.getView().getCenterInternal(),r=t.getPixelFromCoordinateInternal(n);if(!r)return;const i=[r[0]+c[0],r[1]+c[1]],s=e.animation||{};t.getView().animateInternal({center:t.getCoordinateFromPixelInternal(i),duration:s.duration,easing:s.easing})}}}getRect(e,t){const n=e.getBoundingClientRect(),r=n.left+window.pageXOffset,i=n.top+window.pageYOffset;return[r,i,r+t[0],i+t[1]]}setPositioning(e){this.set(A1,e)}setVisible(e){this.rendered.visible!==e&&(this.element.style.display=e?"":"none",this.rendered.visible=e)}updatePixelPosition(){const e=this.getMap(),t=this.getPosition();if(!e||!e.isRendered()||!t)return void this.setVisible(!1);const n=e.getPixelFromCoordinate(t),r=e.getSize();this.updateRenderedPosition(n,r)}updateRenderedPosition(e,t){const n=this.element.style,r=this.getOffset(),i=this.getPositioning();this.setVisible(!0);let s="0%",o="0%";"bottom-right"==i||"center-right"==i||"top-right"==i?s="-100%":"bottom-center"!=i&&"center-center"!=i&&"top-center"!=i||(s="-50%"),"bottom-left"==i||"bottom-center"==i||"bottom-right"==i?o="-100%":"center-left"!=i&&"center-center"!=i&&"center-right"!=i||(o="-50%");const a=`translate(${s}, ${o}) translate(${e[0]+r[0]}px, ${e[1]+r[1]}px)`;this.rendered.transform_!=a&&(this.rendered.transform_=a,n.transform=a)}getOptions(){return this.options}},N1=class e extends RH{constructor(e){if(super(),this.on,this.once,this.un,this.id_=void 0,this.geometryName_="geometry",this.style_=null,this.styleFunction_=void 0,this.geometryChangeKey_=null,this.addChangeListener(this.geometryName_,this.handleGeometryChanged_),e)if("function"==typeof e.getSimplifiedGeometry){const t=e;this.setGeometry(t)}else{const t=e;this.setProperties(t)}}clone(){const t=new e,n=this.geometryName_;t.setGeometryName(n);const r=this.getPropertiesInternal();if(r){const e=this.getGeometry();for(const i in r)i===n&&e?t.set(i,e.clone()):t.set(i,r[i],!0)}const i=this.getStyle();return i&&t.setStyle(i),t}getGeometry(){return this.get(this.geometryName_)}getId(){return this.id_}getGeometryName(){return this.geometryName_}getStyle(){return this.style_}getStyleFunction(){return this.styleFunction_}handleGeometryChange_(){this.changed()}handleGeometryChanged_(){this.geometryChangeKey_&&(eH(this.geometryChangeKey_),this.geometryChangeKey_=null);const e=this.getGeometry();e&&(this.geometryChangeKey_=JW(e,tH,this.handleGeometryChange_,this)),this.changed()}setGeometry(e){this.set(this.geometryName_,e)}setStyle(e){this.style_=e,this.styleFunction_=e?function(e){if("function"==typeof e)return e;let t;return Array.isArray(e)?t=e:(XH("function"==typeof e.getZIndex,"Expected an `ol/style/Style` or an array of `ol/style/Style.js`"),t=[e]),function(){return t}}(e):void 0,this.changed()}setId(e){this.id_=e,this.changed()}setGeometryName(e){e!==this.geometryName_&&(this.removeChangeListener(this.geometryName_,this.handleGeometryChanged_),this.geometryName_=e,this.addChangeListener(this.geometryName_,this.handleGeometryChanged_),this.handleGeometryChanged_())}};function F1(e,t,n,r,i,s,o){let a,l;const c=(n-t)/r;if(1===c)a=t;else if(2===c)a=t,l=i;else if(0!==c){let s=e[t],o=e[t+1],c=0;const u=[0];for(let i=t+r;i>1),i=+n(e[r],t),i<0?s=r+1:(o=r,a=!i);return a?s:~s}(u,h);d<0?(l=(h-u[-d-2])/(u[-d-1]-u[-d-2]),a=t+(-d-2)*r):a=t+d*r}o=o>1?o:2,s=s||new Array(o);for(let u=0;u>1;ia&&(this.instructions.push([4,a,c,e,n,ZZ,i]),this.hitDetectionInstructions.push([4,a,c,e,r||n,ZZ,i]));break;case"Point":l=e.getFlatCoordinates(),this.coordinates.push(l[0],l[1]),c=this.coordinates.length,this.instructions.push([4,a,c,e,n,void 0,i]),this.hitDetectionInstructions.push([4,a,c,e,r||n,void 0,i])}this.endGeometry(t)}beginGeometry(e,t,n){this.beginGeometryInstruction1_=[0,t,0,e,n],this.instructions.push(this.beginGeometryInstruction1_),this.beginGeometryInstruction2_=[0,t,0,e,n],this.hitDetectionInstructions.push(this.beginGeometryInstruction2_)}finish(){return{instructions:this.instructions,hitDetectionInstructions:this.hitDetectionInstructions,coordinates:this.coordinates}}reverseHitDetectionInstructions(){const e=this.hitDetectionInstructions;let t;e.reverse();const n=e.length;let r,i,s=-1;for(t=0;tthis.maxLineWidth&&(this.maxLineWidth=t.lineWidth,this.bufferedMaxExtent_=null)}else t.strokeStyle=void 0,t.lineCap=void 0,t.lineDash=null,t.lineDashOffset=void 0,t.lineJoin=void 0,t.lineWidth=void 0,t.miterLimit=void 0,t.strokeOffset=void 0;return t}setFillStrokeStyle(e,t){const n=this.state;this.fillStyleToState(e,n),this.strokeStyleToState(t,n)}createFill(e){const t=e.fillStyle,n=[10,t];return"string"!=typeof t&&n.push(e.fillPatternScale),n}applyStroke(e){this.instructions.push(this.createStroke(e))}createStroke(e){return[W1,e.strokeStyle,e.lineWidth*this.pixelRatio,e.lineCap,e.lineJoin,e.miterLimit,e.lineDash?this.applyPixelRatio(e.lineDash):null,e.lineDashOffset*this.pixelRatio]}updateFillStyle(e,t){const n=e.fillStyle;(void 0!==n&&"string"!=typeof n||e.currentFillStyle!=n)&&(this.instructions.push(t.call(this,e)),e.currentFillStyle=n)}updateStrokeStyle(e,t){const n=e.strokeStyle,r=e.lineCap,i=e.lineDash,s=e.lineDashOffset,o=e.lineJoin,a=e.lineWidth,l=e.miterLimit,c=e.strokeOffset;(e.currentStrokeStyle!=n||e.currentLineCap!=r||i!=e.currentLineDash&&!fH(e.currentLineDash,i)||e.currentLineDashOffset!=s||e.currentLineJoin!=o||e.currentLineWidth!=a||e.currentMiterLimit!=l||e.currentStrokeOffset!=c)&&(t.call(this,e),e.currentStrokeStyle=n,e.currentLineCap=r,e.currentLineDash=i,e.currentLineDashOffset=s,e.currentLineJoin=o,e.currentLineWidth=a,e.currentMiterLimit=l,e.currentStrokeOffset=c)}endGeometry(e){this.beginGeometryInstruction1_[2]=this.instructions.length,this.beginGeometryInstruction1_=null,this.beginGeometryInstruction2_[2]=this.hitDetectionInstructions.length,this.beginGeometryInstruction2_=null;const t=[7,e];this.instructions.push(t),this.hitDetectionInstructions.push(t)}getBufferedMaxExtent(){if(!this.bufferedMaxExtent_&&(this.bufferedMaxExtent_=yG(this.maxExtent),this.maxLineWidth>0)){const e=this.resolution*(this.maxLineWidth+1)/2;mG(this.bufferedMaxExtent_,e,this.bufferedMaxExtent_)}return this.bufferedMaxExtent_}},X1=class extends Y1{constructor(e,t,n,r){super(e,t,n,r)}drawFlatCoordinatess_(e,t,n,r,i){const s=this.state,o=void 0!==s.fillStyle,a=void 0!==s.strokeStyle,l=n.length;this.instructions.push(K1),this.hitDetectionInstructions.push(K1);for(let c=0;cthis.drawCircle(e,t,n)))return;this.setFillStrokeStyles_(),this.beginGeometry(e,t,n),void 0!==r.fillStyle&&this.hitDetectionInstructions.push([10,_0]),void 0!==r.strokeStyle&&this.hitDetectionInstructions.push([W1,k0,r.lineWidth,r.lineCap,r.lineJoin,r.miterLimit,C0,0]);const a=e.getFlatCoordinates(),l=e.getStride(),c=this.coordinates.length;this.appendFlatLineCoordinates(a,0,a.length,l,!1,!1);const u=[2,c,o];this.instructions.push(K1,u),this.hitDetectionInstructions.push(K1,u),void 0!==r.fillStyle&&(this.instructions.push(H1),this.hitDetectionInstructions.push(H1)),void 0!==r.strokeStyle&&(this.instructions.push(G1),this.hitDetectionInstructions.push(G1)),this.endGeometry(t)}drawPolygon(e,t,n){const r=this.state,i=r.fillStyle,s=r.strokeStyle,o=r.strokeOffset;if(void 0===i&&void 0===s)return;if(this.handleStrokeOffset_(()=>this.drawPolygon(e,t,n)))return;this.setFillStrokeStyles_(),this.beginGeometry(e,t,n),void 0!==r.fillStyle&&this.hitDetectionInstructions.push([10,_0]),void 0!==r.strokeStyle&&this.hitDetectionInstructions.push([W1,k0,r.lineWidth,r.lineCap,r.lineJoin,r.miterLimit,C0,0]);const a=e.getEnds(),l=e.getOrientedFlatCoordinates(),c=e.getStride();this.drawFlatCoordinatess_(l,0,a,c,o),this.endGeometry(t)}drawMultiPolygon(e,t,n){const r=this.state,i=r.fillStyle,s=r.strokeStyle,o=r.strokeOffset;if(void 0===i&&void 0===s)return;if(this.handleStrokeOffset_(()=>this.drawMultiPolygon(e,t,n)))return;this.setFillStrokeStyles_(),this.beginGeometry(e,t,n),void 0!==r.fillStyle&&this.hitDetectionInstructions.push([10,_0]),void 0!==r.strokeStyle&&this.hitDetectionInstructions.push([W1,k0,r.lineWidth,r.lineCap,r.lineJoin,r.miterLimit,C0,0]);const a=e.getEndss(),l=e.getOrientedFlatCoordinates(),c=e.getStride();let u=0;for(let h=0,d=a.length;h0&&void 0!==n&&void 0!==r&&(t.strokeStyle=void 0,t.strokeOffset=0,e(),t.fillStyle=void 0,t.strokeStyle=r,t.strokeOffset=i,e(),t.fillStyle=n,!0)}},J1=0,Q1=1;function e2(e,t,n,r,i,s,o,a){const l=o-i,c=a-s;let u=0,h=1;if(0===l){if(in)return!1}else{let t=(e-i)/l,r=(n-i)/l;if(t>r){const e=t;t=r,r=e}if(t>u&&(u=t),rh)return!1}if(0===c){if(sr)return!1}else{let e=(t-s)/c,n=(r-s)/c;if(e>n){const t=e;e=n,n=t}if(e>u&&(u=e),nh)return!1}return J1=u,Q1=h,!0}function t2(e,t,n,r,i){const s=[];let o=n,a=0,l=t.slice(n,2);for(;a=e){const t=(e-a+h)/h,d=lG(n,c,t),p=lG(r,u,t);l.push(d,p),s.push(l),l=[d,p],a==e&&(o+=i),a=0}else if(a0&&s.push(l),s}function n2(e,t,n,r,i){let s,o,a,l,c,u,h,d,p,f,g=n,m=n,y=0,v=0,b=n;for(o=n;oe&&(v>y&&(y=v,g=b,m=o),v=0,b=o-i)),a=l,h=p,d=f),c=n,u=r}return v+=l,v>y?[b,o]:[g,m]}var r2,i2={left:0,center:.5,right:1,top:0,middle:.5,hanging:.2,alphabetic:.8,ideographic:.8,bottom:1},s2={Circle:X1,Default:Y1,Image:class extends Y1{constructor(e,t,n,r){super(e,t,n,r),this.hitDetectionImage_=null,this.image_=null,this.imagePixelRatio_=void 0,this.anchorX_=void 0,this.anchorY_=void 0,this.height_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.scale_=void 0,this.width_=void 0,this.declutterMode_=void 0,this.declutterImageWithText_=void 0}drawPoint(e,t,n){if(!this.image_||this.maxExtent&&!bG(this.maxExtent,e.getFlatCoordinates()))return;this.beginGeometry(e,t,n);const r=e.getFlatCoordinates(),i=e.getStride(),s=this.coordinates.length,o=this.appendFlatPointCoordinates(r,i);this.instructions.push([6,s,o,this.image_,this.anchorX_*this.imagePixelRatio_,this.anchorY_*this.imagePixelRatio_,Math.ceil(this.height_*this.imagePixelRatio_),this.opacity_,this.originX_*this.imagePixelRatio_,this.originY_*this.imagePixelRatio_,this.rotateWithView_,this.rotation_,[this.scale_[0]*this.pixelRatio/this.imagePixelRatio_,this.scale_[1]*this.pixelRatio/this.imagePixelRatio_],Math.ceil(this.width_*this.imagePixelRatio_),this.declutterMode_,this.declutterImageWithText_]),this.hitDetectionInstructions.push([6,s,o,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.height_,1,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_,this.declutterMode_,this.declutterImageWithText_]),this.endGeometry(t)}drawMultiPoint(e,t,n){if(!this.image_)return;this.beginGeometry(e,t,n);const r=e.getFlatCoordinates(),i=[];for(let a=0,l=r.length;a{const r=o[2*(e+n)]===c[n*u]&&o[2*(e+n)+1]===c[n*u+1];return r||--e,r})}this.saveTextStates_();const h=s.backgroundFill?this.createFill(this.fillStyleToState(s.backgroundFill)):null,d=s.backgroundStroke?this.createStroke(this.strokeStyleToState(s.backgroundStroke)):null;this.beginGeometry(e,t,n);let p=s.padding;if(p!=R0&&(s.scale[0]<0||s.scale[1]<0)){let e=s.padding[0],t=s.padding[1],n=s.padding[2],r=s.padding[3];s.scale[0]<0&&(t=-t,r=-r),s.scale[1]<0&&(e=-e,n=-n),p=[e,t,n,r]}const f=this.pixelRatio;this.instructions.push([6,a,i,null,NaN,NaN,NaN,1,0,0,this.textRotateWithView_,this.textRotation_,[1,1],NaN,this.declutterMode_,this.declutterImageWithText_,p==R0?R0:p.map(function(e){return e*f}),h,d,this.text_,this.textKey_,this.strokeKey_,this.fillKey_,this.textOffsetX_,this.textOffsetY_,r]);const g=1/f,m=h?h.slice(0):null;m&&(m[1]=_0),this.hitDetectionInstructions.push([6,a,i,null,NaN,NaN,NaN,1,0,0,this.textRotateWithView_,this.textRotation_,[g,g],NaN,this.declutterMode_,this.declutterImageWithText_,p,m,d,this.text_,this.textKey_,this.strokeKey_,this.fillKey_?_0:this.fillKey_,this.textOffsetX_,this.textOffsetY_,r]),this.endGeometry(t)}else{const r=e.getExtent();if(!HG(this.maxExtent,r))return;let i;if(c=e.getFlatCoordinates(),"LineString"==l)i=[c.length];else if("MultiLineString"==l)i=e.getEnds();else if("Polygon"==l)i=e.getEnds().slice(0,1);else if("MultiPolygon"==l){const t=e.getEndss();i=[];for(let e=0,n=t.length;e0?l:2*Math.PI-l}([e,t],[n,r],[i,s]);if(Math.cos(d)>.998)return[e+u*o,t+h*o];const p=Math.cos(d/2),f=Math.sin(d/2);return[e+1/f*(f*a+p*l)*o,t+1/f*(-p*a+f*l)*o]}function c2(e,t,n=!1){for(let r=0,i=e.length-2;rr+t;s-=t){const n=e[r],i=e[r+1],o=e[r+t],a=e[r+t+1],l=e[s],c=e[s+1],u=e[s+t],h=e[s+t+1],d=(h-c)*(o-n)-(u-l)*(a-i);if(0===d)continue;const p=((u-l)*(i-c)-(h-c)*(n-l))/d,f=((o-n)*(i-c)-(a-i)*(n-l))/d;if(p>0&&p<1&&f>0&&f<1){const l=n+p*(o-n),c=i+p*(a-i);e[r+t]=l,e[r+t+1]=c,e.splice(r+2*t,s-r-t);break}}return e}function u2(e,t,n,r,i,s,o,a,l,c,u,h,d=!0){let p=e[t],f=e[t+1],g=0,m=0,y=0,v=0;function b(){g=p,m=f,p=e[t+=r],f=e[t+1],v+=y,y=Math.sqrt((p-g)*(p-g)+(f-m)*(f-m))}do{b()}while(te[2]}else T=_>E;const L=Math.PI,I=[],P=C+r===t;let M;if(y=0,v=S,p=e[t=C],f=e[t+1],P)return b(),M=Math.atan2(f-m,p-g),T&&(M+=M>0?-L:L),I[0]=[(E+_)/2,(R+x)/2,(k-s)/2,M,i],I;i=i.replace(/\n/g," ");const A=Array.from((r2||(r2=new Intl.Segmenter(void 0,{granularity:"grapheme"})),r2).segment(i),e=>e.segment);for(let O=0,N=A.length;O0?-L:L),void 0!==M){let t=e-M;if(t+=t>L?-2*L:t<-L?2*L:0,Math.abs(t)>o)return null}M=e;const i=O;let h=0;for(;O{if("function"==typeof e[t])return this.pendingMethod_=t,this.pushMethodArgs_},set:(e,t,n)=>(this.push_(t,n),!0)})}push_(...e){const t=this.instructions_,n=this.zIndex+this.offset_;t[n]||(t[n]=[]),t[n].push(...e)}pushMethodArgs_=(...e)=>{this.push_(this.pendingMethod_,e)};pushFunction(e){this.push_(e)}getContext(){return this.context_}draw(e){this.instructions_.forEach(t=>{for(let n=0,r=t.length;n0&&e.push("\n",""),e.push(t,""),e}function _2(e,t,n){return n%2==0&&(e+=t),e}var x2=class{constructor(e,t,n,r,i){this.overlaps=n,this.pixelRatio=t,this.resolution=e,this.alignAndScaleFill_,this.instructions=r.instructions,this.coordinates=r.coordinates,this.coordinateCache_={},this.renderedTransform_=_Z(),this.hitDetectionInstructions=r.hitDetectionInstructions,this.pixelCoordinates_=null,this.viewRotation_=0,this.fillStates=r.fillStates||{},this.strokeStates=r.strokeStates||{},this.textStates=r.textStates||{},this.widths_={},this.labels_={},this.zIndexContext_=i?new h2:null}getZIndexContext(){return this.zIndexContext_}createLabel(e,t,n,r){const i=e+t+n+r;if(this.labels_[i])return this.labels_[i];const s=r?this.strokeStates[r]:null,o=n?this.fillStates[n]:null,a=this.textStates[t],l=this.pixelRatio,c=[a.scale[0]*l,a.scale[1]*l],u=a.justify?i2[a.justify]:b2(Array.isArray(e)?e[0]:e,a.textAlign||"center"),h=r&&s.lineWidth?s.lineWidth:0,d=Array.isArray(e)?e:String(e).split("\n").reduce(w2,[]),{width:p,height:f,widths:g,heights:m,lineWidths:y}=function(e,t){const n=[],r=[],i=[];let s=0,o=0,a=0,l=0;for(let c=0,u=t.length;c<=u;c+=2){const h=t[c];if("\n"===h||c===u){s=Math.max(s,o),i.push(o),o=0,a+=l,l=0;continue}const d=t[c+1]||e.font,p=F0(d,h);n.push(p),o+=p;const f=O0(d);r.push(f),l=Math.max(l,f)}return{width:s,height:a,widths:n,heights:r,lineWidths:i}}(a,d),v=p+h,b=[],w=(v+2)*c[0],_=(f+h)*c[1],x={width:w<0?Math.floor(w):Math.ceil(w),height:_<0?Math.floor(_):Math.ceil(_),contextInstructions:b};1==c[0]&&1==c[1]||b.push("scale",c),r&&(b.push("strokeStyle",s.strokeStyle),b.push("lineWidth",h),b.push("lineCap",s.lineCap),b.push("lineJoin",s.lineJoin),b.push("miterLimit",s.miterLimit),b.push("setLineDash",[s.lineDash]),b.push("lineDashOffset",s.lineDashOffset)),n&&b.push("fillStyle",o.fillStyle),b.push("textBaseline","middle"),b.push("textAlign","center");const C=.5-u;let S=u*v+C*h;const k=[],E=[];let R,T=0,L=0,I=0,P=0;for(let M=0,A=d.length;Me?e-l:i,b=s+c>t?t-c:s,w=p[3]+v*h[0]+p[1],_=p[0]+b*h[1]+p[2],x=m-p[3],C=y-p[0];let S;return(f||0!==u)&&(p2[0]=x,m2[0]=x,p2[1]=C,f2[1]=C,f2[0]=x+w,g2[0]=f2[0],g2[1]=C+_,m2[1]=g2[1]),0!==u?(S=RZ(_Z(),n,r,1,1,u,-n,-r),kZ(S,p2),kZ(S,f2),kZ(S,g2),kZ(S,m2),CG(Math.min(p2[0],f2[0],g2[0],m2[0]),Math.min(p2[1],f2[1],g2[1],m2[1]),Math.max(p2[0],f2[0],g2[0],m2[0]),Math.max(p2[1],f2[1],g2[1],m2[1]),d2)):CG(Math.min(x,x+w),Math.min(C,C+_),Math.max(x,x+w),Math.max(C,C+_),d2),d&&(m=Math.round(m),y=Math.round(y)),{drawImageX:m,drawImageY:y,drawImageW:v,drawImageH:b,originX:l,originY:c,declutterBox:{minX:d2[0],minY:d2[1],maxX:d2[2],maxY:d2[3],value:g},canvasTransform:S,scale:h}}replayImageOrLabel_(e,t,n,r,i,s,o){const a=!(!s&&!o),l=r.declutterBox,c=o?o[2]*r.scale[0]/2:0;return l.minX-c<=t[0]&&l.maxX+c>=0&&l.minY-c<=t[1]&&l.maxY+c>=0&&(a&&this.replayTextBackground_(e,p2,f2,g2,m2,s,o),function(e,t,n,r,i,s,o,a,l,c,u){e.save(),1!==n&&(void 0===e.globalAlpha?e.globalAlpha=e=>e.globalAlpha*=n:e.globalAlpha*=n),t&&e.transform.apply(e,t),r.contextInstructions?(e.translate(l,c),e.scale(u[0],u[1]),function(e,t){const n=e.contextInstructions;for(let r=0,i=n.length;rF&&(this.fill_(e),I=0),P>F&&(e.stroke(),P=0),I||P||(e.beginPath(),_=NaN,x=NaN),++d;break;case 2:g=n[1],b=n[2]??0;const r=c[g],u=c[g+1],h=c[g+2]-b-r,p=c[g+3]-b-u,B=Math.sqrt(h*h+p*p);e.moveTo(r+B,u),e.arc(r,u,B,0,2*Math.PI,!0),++d;break;case 3:e.closePath(),++d;break;case 4:g=n[1],f=n[2];const $=n[3],q=n[4],V=n[5];N.geometry=$,N.feature=D,d in M||(M[d]=[]);const W=M[d];V?V(c,g,f,2,W):(W[0]=c[g],W[1]=c[g+1],W.length=2),l&&(l.zIndex=n[6]),q(W,N),++d;break;case 6:g=n[1],f=n[2],k=n[3],y=n[4],v=n[5];let H=n[6];const G=n[7],K=n[8],Z=n[9],Y=n[10];let X=n[11];const J=n[12];let Q=n[13];w=n[14]||"declutter";const ee=n[15];if(!k&&n.length>=20){E=n[19],R=n[20],T=n[21],L=n[22];const e=this.drawLabelWithPointPlacement_(E,R,T,L);k=e.label,n[3]=k;const t=n[23];y=(e.anchorX-t)*this.pixelRatio,n[4]=y;const r=n[24];v=(e.anchorY-r)*this.pixelRatio,n[5]=v,H=k.height,n[6]=H,Q=k.width,n[13]=Q}let te,ne,re,ie;n.length>25&&(te=n[25]),n.length>17?(ne=n[16],re=n[17],ie=n[18]):(ne=R0,re=null,ie=null),Y&&O?X+=A:Y||O||(X-=A);let se=0;for(;g!S2.includes(e)),E2=!1,R2=!1,T2=class{constructor(e,t,n,r,i,s,o){this.maxExtent_=e,this.overlaps_=r,this.pixelRatio_=n,this.resolution_=t,this.renderBuffer_=s,this.executorsByZIndex_={},this.hitDetectionContext_=null,this.hitDetectionTransform_=_Z(),this.renderedContext_=null,this.deferredZIndexContexts_={},this.createExecutors_(i,o)}clip(e,t){const n=this.getClipCoords(t);e.beginPath(),e.moveTo(n[0],n[1]),e.lineTo(n[2],n[3]),e.lineTo(n[4],n[5]),e.lineTo(n[6],n[7]),e.clip()}createExecutors_(e,t){for(const n in e){let r=this.executorsByZIndex_[n];void 0===r&&(r={},this.executorsByZIndex_[n]=r);const i=e[n];for(const e in i){const n=i[e];r[e]=new x2(this.resolution_,this.pixelRatio_,this.overlaps_,n,t)}}}hasExecutors(e){for(const t in this.executorsByZIndex_){const n=this.executorsByZIndex_[t];for(let t=0,r=e.length;t{const n=BY(1,1,null,{willReadFrequently:t});let r=0;const i=performance.now();for(;performance.now()-i<50;++r)n.fillStyle=`rgba(255,0,${r%256},1)`,n.fillRect(0,0,1,1),n.getImageData(0,0,1,1);return e=r>e?r:e,r};E2={[t(!0)]:!0,[t(!1)]:!1,[t(void 0)]:void 0}[e],R2=!0}();const o=2*(r=Math.round(r))+1,a=RZ(this.hitDetectionTransform_,r+.5,r+.5,1/t,-1/t,-n,-e[0],-e[1]),l=!this.hitDetectionContext_;l&&(this.hitDetectionContext_=BY(o,o,null,{willReadFrequently:E2}));const c=this.hitDetectionContext_;let u;c.canvas.width!==o||c.canvas.height!==o?(c.canvas.width=o,c.canvas.height=o):l||c.clearRect(0,0,o,o),void 0!==this.renderBuffer_&&(u=[1/0,1/0,-1/0,-1/0],LG(u,e),mG(u,t*(this.renderBuffer_+r),u));const h=function(e){if(void 0!==L2[e])return L2[e];const t=2*e+1,n=e*e,r=new Array(n+1);for(let s=0;s<=e;++s)for(let i=0;i<=e;++i){const o=s*s+i*i;if(o>n)break;let a=r[o];a||(a=[],r[o]=a),a.push(4*((e+s)*t+(e+i))+3),s>0&&a.push(4*((e-s)*t+(e+i))+3),i>0&&(a.push(4*((e+s)*t+(e-i))+3),s>0&&a.push(4*((e-s)*t+(e-i))+3))}const i=[];for(let s=0,o=r.length;s0){if(!s||"none"===n||"Image"!==d&&"Text"!==d||s.includes(e)){const n=(h[l]-3)/4,s=r-n%o,a=r-(n/o|0),c=i(e,t,s*s+a*a);if(c)return c}c.clearRect(0,0,o,o);break}}const f=Object.keys(this.executorsByZIndex_).map(Number);let g,m,y,v,b;for(f.sort(cH),g=f.length-1;g>=0;--g){const e=f[g].toString();for(y=this.executorsByZIndex_[e],m=C2.length-1;m>=0;--m)if(d=C2[m],v=y[d],void 0!==v&&(b=v.executeHitDetection(c,a,n,p,u),b))return b}}getClipCoords(e){const t=this.maxExtent_;if(!t)return null;const n=t[0],r=t[1],i=t[2],s=t[3],o=[n,r,n,s,i,s,i,r];return PZ(o,0,8,2,e,o),o}isEmpty(){return XW(this.executorsByZIndex_)}execute(e,t,n,r,i,s,o){const a=Object.keys(this.executorsByZIndex_).map(Number);a.sort(o?uH:cH),s=s||C2;const l=C2.length;for(let c=0,u=a.length;cp.execute(e,t,n,r,i,o)):p.execute(h,t,n,r,i,o),d&&h.restore(),s){s.offset();const e=a[c]*l+C2.indexOf(u);this.deferredZIndexContexts_[e]||(this.deferredZIndexContexts_[e]=[]),this.deferredZIndexContexts_[e].push(s)}}}}this.renderedContext_=e}getDeferredZIndexContexts(){return this.deferredZIndexContexts_}getRenderedContext(){return this.renderedContext_}renderDeferred(){const e=this.deferredZIndexContexts_,t=Object.keys(e).map(Number).sort(cH);for(let n=0,r=t.length;n{e.draw(this.renderedContext_),e.clear()}),e[t[n]].length=0}},L2={},I2=class extends V1{constructor(e,t,n,r,i,s,o){super(),this.context_=e,this.pixelRatio_=t,this.extent_=n,this.transform_=r,this.transformRotation_=r?cG(Math.atan2(r[1],r[0]),10):0,this.viewRotation_=i,this.squaredTolerance_=s,this.userTransform_=o,this.contextFillState_=null,this.contextStrokeState_=null,this.contextTextState_=null,this.fillState_=null,this.strokeState_=null,this.image_=null,this.imageAnchorX_=0,this.imageAnchorY_=0,this.imageHeight_=0,this.imageOpacity_=0,this.imageOriginX_=0,this.imageOriginY_=0,this.imageRotateWithView_=!1,this.imageRotation_=0,this.imageScale_=[0,0],this.imageWidth_=0,this.text_="",this.textOffsetX_=0,this.textOffsetY_=0,this.textRotateWithView_=!1,this.textRotation_=0,this.textScale_=[0,0],this.textFillState_=null,this.textStrokeState_=null,this.textState_=null,this.pixelCoordinates_=[],this.tmpLocalTransform_=_Z()}drawImages_(e,t,n,r){if(!this.image_)return;const i=PZ(e,t,n,r,this.transform_,this.pixelCoordinates_),s=this.context_,o=this.tmpLocalTransform_,a=s.globalAlpha;1!=this.imageOpacity_&&(s.globalAlpha=a*this.imageOpacity_);let l=this.imageRotation_;0===this.transformRotation_&&(l-=this.viewRotation_),this.imageRotateWithView_&&(l+=this.viewRotation_);for(let c=0,u=i.length;c0){const e=a.length,t=i||Math.abs(a[0]-a[e-2])<1e-6&&Math.abs(a[1]-a[e-1])<1e-6;a=a2(a,0,e,2,s,t,a),c2(a,2,t)}o.moveTo(a[0],a[1]);let l=a.length;i&&(l-=2);for(let c=2;ce*this.pixelRatio_),lineDashOffset:(i||0)*this.pixelRatio_,lineJoin:void 0!==s?s:S0,lineWidth:(void 0!==o?o:1)*this.pixelRatio_,miterLimit:void 0!==a?a:10,strokeStyle:b0(e||k0),strokeOffset:(c??0)*this.pixelRatio_}}else this.strokeState_=null}setImageStyle(e){let t;if(!e||!(t=e.getSize()))return void(this.image_=null);const n=e.getPixelRatio(this.pixelRatio_),r=e.getAnchor(),i=e.getOrigin();this.image_=e.getImage(this.pixelRatio_),this.imageAnchorX_=r[0]*n,this.imageAnchorY_=r[1]*n,this.imageHeight_=t[1]*n,this.imageOpacity_=e.getOpacity(),this.imageOriginX_=i[0],this.imageOriginY_=i[1],this.imageRotateWithView_=e.getRotateWithView(),this.imageRotation_=e.getRotation();const s=e.getScaleArray();this.imageScale_=[s[0]*this.pixelRatio_/n,s[1]*this.pixelRatio_/n],this.imageWidth_=t[0]*n}setTextStyle(e){if(e){const t=e.getFill();if(t){const e=t.getColor();this.textFillState_={fillStyle:b0(e||_0)}}else this.textFillState_=null;const n=e.getStroke();if(n){const e=n.getColor(),t=n.getLineCap(),r=n.getLineDash(),i=n.getLineDashOffset(),s=n.getLineJoin(),o=n.getWidth(),a=n.getMiterLimit();this.textStrokeState_={lineCap:void 0!==t?t:x0,lineDash:r||C0,lineDashOffset:i||0,lineJoin:void 0!==s?s:S0,lineWidth:void 0!==o?o:1,miterLimit:void 0!==a?a:10,strokeStyle:b0(e||k0)}}else this.textStrokeState_=null;const r=e.getFont(),i=e.getOffsetX(),s=e.getOffsetY(),o=e.getRotateWithView(),a=e.getRotation(),l=e.getScaleArray(),c=e.getText(),u=e.getTextAlign(),h=e.getTextBaseline();this.textState_={font:void 0!==r?r:"10px sans-serif",textAlign:void 0!==u?u:E0,textBaseline:void 0!==h?h:"middle"},this.text_=void 0!==c?Array.isArray(c)?c.reduce((e,t,n)=>e+(n%2?" ":t),""):c:"",this.textOffsetX_=void 0!==i?this.pixelRatio_*i:0,this.textOffsetY_=void 0!==s?this.pixelRatio_*s:0,this.textRotateWithView_=void 0!==o&&o,this.textRotation_=void 0!==a?a:0,this.textScale_=[this.pixelRatio_*l[0],this.pixelRatio_*l[1]]}else this.text_=""}},P2=.5;function M2(e,t,n,r,i,s,o,a,l){const c=i,u=BY(e[0]*P2,e[1]*P2);u.imageSmoothingEnabled=!1;const h=u.canvas,d=new I2(u,P2,i,null,o,a,l?hZ(null,l):null),p=n.length,f=Math.floor(16777215/p),g={};for(let y=1;y<=p;++y){const e=n[y-1],t=e.getStyleFunction()||r;if(!t)continue;let i=t(e,s);if(!i)continue;Array.isArray(i)||(i=[i]);const o=(y*f).toString(16).padStart(7,"#00000");for(let n=0,r=i.length;n0;return h&&Promise.all(l).then(()=>i(null)),function(e,t,n,r,i,s,o){const a=n.getGeometryFunction()(t);if(!a)return;const l=a.simplifyTransformed(r,i);n.getRenderer()?j2(e,l,n,t,o):(0,O2[l.getType()])(e,l,n,t,o,s)}(e,t,n,r,s,o,a),h}function j2(e,t,n,r,i){if("GeometryCollection"==t.getType()){const s=t.getGeometries();for(let t=0,o=s.length;tthis.maxStaleKeys&&(this.staleKeys_.length=this.maxStaleKeys)}updateStaleKeys(e){this.renderedSourceKey_?this.renderedSourceKey_!==e&&(this.prependStaleKey(this.renderedSourceKey_),this.renderedSourceKey_=e):this.renderedSourceKey_=e}getFeatures(e){return CH()}getData(e){return null}prepareFrame(e){return CH()}renderFrame(e,t){return CH()}forEachFeatureAtCoordinate(e,t,n,r,i){}getLayer(){return this.layer_}handleFontsChanged(){}handleImageChange_(e){const t=e.target;2!==t.getState()&&3!==t.getState()||this.renderIfReadyAndVisible()}loadImage(e){let t=e.getState();return 2!=t&&3!=t&&e.addEventListener(tH,this.boundHandleImageChange_),0==t&&(e.load(),t=e.getState()),2==t}renderIfReadyAndVisible(){const e=this.getLayer();e&&e.getVisible()&&"ready"===e.getSourceState()&&e.changed()}renderDeferred(e){}disposeInternal(){delete this.layer_,super.disposeInternal()}},B2=[],$2=null,q2=class extends U2{constructor(e){super(e),this.container=null,this.renderedResolution,this.tempTransform=_Z(),this.pixelTransform=_Z(),this.inversePixelTransform=_Z(),this.context=null,this.deferredContext_=null,this.containerReused=!1,this.frameState=null}getImageData(e,t,n){let r;$2||($2=BY(1,1,void 0,{willReadFrequently:!0})),$2.clearRect(0,0,1,1);try{$2.drawImage(e,t,n,1,1,0,0,1,1),r=$2.getImageData(0,0,1,1).data}catch{return $2=null,null}return r}getBackground(e){let t=this.getLayer().getBackground();return"function"==typeof t&&(t=t(e.viewState.resolution)),t||void 0}useContainer(e,t,n,r,i){if(ZY(e)&&0===this.pixelTransform[1]&&0===this.pixelTransform[2]&&0===this.pixelTransform[4]&&0===this.pixelTransform[5]&&e.width===r&&e.height===i){const t=e,r=t.getContext("2d");if(r)return this.container=e,this.context=r,this.containerReused=!0,void(n&&(r.fillStyle=n,r.fillRect(0,0,t.width,t.height)))}const s=this.getLayer().getClassName();let o,a;if(e&&e.className===s&&(!n||e&&e.style.backgroundColor&&fH(DJ(e.style.backgroundColor),DJ(n)))){const t=e.firstElementChild;ZY(t)&&(a=t.getContext("2d"))}if(a&&function(e,t){const n=IZ(e),r=IZ(t);for(let i=0;i<6;++i)if(0!==Math.round((n[i]-r[i])*LZ[i]))return!1;return!0}(a.canvas.style.transform,t)?(this.container=e,this.context=a,this.containerReused=!0):this.containerReused?(this.container=null,this.context=null,this.containerReused=!1):this.container&&(this.container.style.backgroundColor=null),!this.container){o=zH?KY():document.createElement("div"),o.className=s;let e=o.style;e.position="absolute",e.width="100%",e.height="100%",a=BY();const t=a.canvas;o.appendChild(t),e=t.style,e.position="absolute",e.left="0",e.transformOrigin="top left",this.container=o,this.context=a}this.containerReused||!n||this.container.style.backgroundColor||(this.container.style.backgroundColor=n)}clipUnrotated(e,t,n){const r=qG(n),i=VG(n),s=NG(n),o=OG(n);kZ(t.coordinateToPixelTransform,r),kZ(t.coordinateToPixelTransform,i),kZ(t.coordinateToPixelTransform,s),kZ(t.coordinateToPixelTransform,o);const a=this.inversePixelTransform;kZ(a,r),kZ(a,i),kZ(a,s),kZ(a,o),e.save(),e.beginPath(),e.moveTo(Math.round(r[0]),Math.round(r[1])),e.lineTo(Math.round(i[0]),Math.round(i[1])),e.lineTo(Math.round(s[0]),Math.round(s[1])),e.lineTo(Math.round(o[0]),Math.round(o[1])),e.clip()}prepareContainer(e,t){const n=e.extent,r=e.viewState.resolution,i=e.viewState.rotation,s=e.pixelRatio,o=Math.round(WG(n)/r*s),a=Math.round(UG(n)/r*s);RZ(this.pixelTransform,e.size[0]/2,e.size[1]/2,1/s,1/s,i,-o/2,-a/2),TZ(this.inversePixelTransform,this.pixelTransform);const l="matrix("+this.pixelTransform.join(", ")+")",c=this.getBackground(e);if(this.useContainer(t,l,c,o,a),!this.containerReused){const e=this.context.canvas;e.width!=o||e.height!=a?(e.width=o,e.height=a):this.context.clearRect(0,0,o,a),l!==e.style.transform&&(e.style.transform=l)}}dispatchRenderEvent_(e,t,n){const r=this.getLayer();if(r.hasListener(e)){const i=new x1(e,this.inversePixelTransform,n,t);r.dispatchEvent(i)}}preRender(e,t){this.frameState=t,t.declutter||this.dispatchRenderEvent_(ZX,e,t)}postRender(e,t){t.declutter||this.dispatchRenderEvent_(YX,e,t)}renderDeferredInternal(e){}getRenderContext(e){return e.declutter&&!this.deferredContext_&&(this.deferredContext_=new h2),e.declutter?this.deferredContext_.getContext():this.context}renderDeferred(e){e.declutter&&(this.dispatchRenderEvent_(ZX,this.context,e),e.declutter&&this.deferredContext_&&(this.deferredContext_.draw(this.context),this.deferredContext_.clear()),this.renderDeferredInternal(e),this.dispatchRenderEvent_(YX,this.context,e))}getRenderTransform(e,t,n,r,i,s,o){const a=i/2,l=s/2,c=r/t,u=-c,h=-e[0]+o,d=-e[1];return RZ(this.tempTransform,a,l,c,u,-n,h,d)}disposeInternal(){delete this.frameState,super.disposeInternal()}},V2=class extends q2{constructor(e){super(e),this.boundHandleStyleImageChange_=this.handleStyleImageChange_.bind(this),this.animatingOrInteracting_,this.hitDetectionImageData_=null,this.clipExtent_=null,this.extendX_=!1,this.renderedFeatures_=null,this.renderedRevision_=-1,this.renderedResolution_=NaN,this.renderedExtent_=[1/0,1/0,-1/0,-1/0],this.wrappedRenderedExtent_=[1/0,1/0,-1/0,-1/0],this.renderedRotation_,this.renderedCenter_=null,this.renderedProjection_=null,this.renderedPixelRatio_=1,this.renderedRenderOrder_=null,this.renderedFrameDeclutter_,this.replayGroup_=null,this.replayGroupChanged=!0,this.clipping=!0,this.targetContext_=null,this.opacity_=1}renderWorlds(e,t,n){const r=t.extent,i=t.viewState,s=i.center,o=i.resolution,a=i.projection,l=i.rotation,c=a.getExtent(),u=this.getLayer().getSource(),h=this.getLayer().getDeclutter(),d=t.pixelRatio,p=t.viewHints,f=!(p[0]||p[1]),g=this.context,m=Math.round(WG(r)/o*d),y=Math.round(UG(r)/o*d),v=u.getWrapX()&&a.canWrapX(),b=v?WG(c):null,w=v?Math.ceil((r[2]-c[2])/b)+(this.extendX_?2:1):1;let _=v?Math.floor((r[0]-c[0])/b)-(this.extendX_?1:0):0;do{let r=this.getRenderTransform(s,o,0,d,m,y,_*b);t.declutter&&(r=r.slice(0)),e.execute(g,[g.canvas.width,g.canvas.height],r,l,f,void 0===n?C2:n?S2:k2,n?h&&t.declutter[h]:void 0)}while(++_{if(this.frameState&&!this.hitDetectionImageData_&&!this.animatingOrInteracting_){const e=this.frameState.size.slice(),t=this.renderedCenter_,n=this.renderedResolution_,r=this.renderedRotation_,i=this.renderedProjection_,s=this.wrappedRenderedExtent_,o=this.getLayer(),a=[],l=e[0]*P2,c=e[1]*P2;a.push(this.getRenderTransform(t,n,r,P2,l,c,0).slice());const u=o.getSource(),h=i.getExtent();if(u.getWrapX()&&i.canWrapX()&&!wG(h,s)){let e=s[0];const i=WG(h);let o,u=0;for(;eh[2];)++u,o=i*u,a.push(this.getRenderTransform(t,n,r,P2,l,c,o).slice()),e-=i}const d=null;this.hitDetectionImageData_=M2(e,a,this.renderedFeatures_,o.getStyleFunction(),s,n,r,F2(n,this.renderedPixelRatio_),d?i:null)}t(A2(e,this.renderedFeatures_,this.hitDetectionImageData_))})}forEachFeatureAtCoordinate(e,t,n,r,i){if(!this.replayGroup_)return;const s=t.viewState.resolution,o=t.viewState.rotation,a=this.getLayer(),l={},c=this.getLayer().getDeclutter();return this.replayGroup_.forEachFeatureAtCoordinate(e,s,o,n,function(e,t,n){const s=kH(e),o=l[s];if(o){if(!0!==o&&ne.value):null)}handleFontsChanged(){const e=this.getLayer();e.getVisible()&&this.replayGroup_&&e.changed()}handleStyleImageChange_(e){this.renderIfReadyAndVisible()}prepareFrame(e){const t=this.getLayer(),n=t.getSource();if(!n)return!1;const r=e.viewHints[0],i=e.viewHints[1],s=t.getUpdateWhileAnimating(),o=t.getUpdateWhileInteracting();if(this.ready&&!s&&r||!o&&i)return this.animatingOrInteracting_=!0,!0;this.animatingOrInteracting_=!1;const a=e.extent,l=e.viewState,c=l.projection,u=l.resolution,h=e.pixelRatio,d=t.getRevision(),p=t.getRenderBuffer();let f=t.getRenderOrder();void 0===f&&(f=N2);const g=l.center.slice(),m=mG(a,p*u),y=m.slice(),v=[m.slice()],b=c.getExtent(),w=n.getWrapX()&&c.canWrapX();if(this.extendX_=!1,w){const e=n.getExtent();e&&!GG(e)&&(this.extendX_=e[0]b[2])}if(w&&(!wG(b,e.extent)||this.extendX_)){const e=WG(b),t=Math.max(WG(m)/2,e);let n=b[0],r=b[2];this.extendX_&&(n-=e,r+=e),m[0]=n-t,m[2]=r+t,eK(g,c);const i=ZG(v[0],c);i[0]b[0]&&i[2]>b[2]&&v.push([i[0]-e,i[1],i[2]-e,i[3]])}if(this.ready&&this.renderedResolution_==u&&this.renderedPixelRatio_===h&&this.renderedRevision_==d&&this.renderedRenderOrder_==f&&this.renderedFrameDeclutter_===!!e.declutter&&wG(this.wrappedRenderedExtent_,m))return fH(this.renderedExtent_,y)||(this.hitDetectionImageData_=null,this.renderedExtent_=y),this.renderedCenter_=g,this.replayGroupChanged=!1,!0;this.replayGroup_=null;const _=new o2(D2(u,h),m,u,h);for(let L=0,I=v.length;L{let r;const i=e.getStyleFunction()||t.getStyleFunction();if(i&&(r=i(e,u)),r){const t=this.renderFeature(e,x,r,_,undefined,this.getLayer().getDeclutter(),n);C=C&&!t}},k=m,E=n.getFeaturesInExtent(k);f&&E.sort(f);for(let L=0,I=E.length;L=200&&a.status<300){const e=t.getType();try{let r;"text"==e||"json"==e?r=a.responseText:"xml"==e?r=a.responseXML||a.responseText:"arraybuffer"==e&&(r=a.response),r?s(t.readFeatures(r,{extent:n,featureProjection:i}),t.readProjection(r)):o()}catch{o()}}else o()},a.onerror=o,a.send()}function G2(e,t){return function(n,r,i,s,o){H2(e,t,n,r,i,e=>{this.addFeatures(e),void 0!==s&&s(e)},()=>{this.changed(),void 0!==o&&o()})}}function K2(){return[[-1/0,-1/0,1/0,1/0]]}function Z2(e){return[e]}var Y2=_Z(),X2=class e{constructor(e,t,n,r,i,s){this.styleFunction,this.extent_,this.id_=s,this.type_=e,this.flatCoordinates_=t,this.flatInteriorPoints_=null,this.flatMidpoints_=null,this.ends_=n||null,this.properties_=i,this.squaredTolerance_,this.stride_=r,this.simplifiedGeometry_}get(e){return this.properties_[e]}getExtent(){return this.extent_||(this.extent_="Point"===this.type_?kG(this.flatCoordinates_):EG(this.flatCoordinates_,0,this.flatCoordinates_.length,this.stride_)),this.extent_}getFlatInteriorPoint(){if(!this.flatInteriorPoints_){const e=FG(this.getExtent());this.flatInteriorPoints_=dY(this.flatCoordinates_,0,this.ends_,this.stride_,e,0)}return this.flatInteriorPoints_}getFlatInteriorPoints(){if(!this.flatInteriorPoints_){const e=wY(this.flatCoordinates_,this.ends_),t=$1(this.flatCoordinates_,0,e,this.stride_);this.flatInteriorPoints_=pY(this.flatCoordinates_,0,e,this.stride_,t)}return this.flatInteriorPoints_}getFlatMidpoint(){return this.flatMidpoints_||(this.flatMidpoints_=F1(this.flatCoordinates_,0,this.flatCoordinates_.length,this.stride_,.5)),this.flatMidpoints_}getFlatMidpoints(){if(!this.flatMidpoints_){this.flatMidpoints_=[];const e=this.flatCoordinates_;let t=0;const n=this.ends_;for(let r=0,i=n.length;r{if(t===this.squaredTolerance_)return this.simplifiedGeometry_;this.simplifiedGeometry_=this.clone(),n&&this.simplifiedGeometry_.applyTransform(n);const r=this.simplifiedGeometry_.getFlatCoordinates();let i;switch(this.type_){case"LineString":r.length=sY(r,0,this.simplifiedGeometry_.flatCoordinates_.length,this.simplifiedGeometry_.stride_,t,r,0),i=[r.length];break;case"MultiLineString":i=[],r.length=oY(r,0,this.simplifiedGeometry_.ends_,this.simplifiedGeometry_.stride_,t,r,0,i);break;case"Polygon":i=[],r.length=cY(r,0,this.simplifiedGeometry_.ends_,this.simplifiedGeometry_.stride_,Math.sqrt(t),r,0,i)}return i&&(this.simplifiedGeometry_=new e(this.type_,r,i,this.stride_,this.properties_,this.id_)),this.squaredTolerance_=t,this.simplifiedGeometry_}),this}};X2.prototype.getFlatCoordinates=X2.prototype.getOrientedFlatCoordinates;var J2=class{constructor(e){this.rbush_=new iJ(e),this.items_={}}insert(e,t){const n={minX:e[0],minY:e[1],maxX:e[2],maxY:e[3],value:t};this.rbush_.insert(n),this.items_[kH(t)]=n}load(e,t){const n=new Array(t.length);for(let r=0,i=t.length;r{const n=()=>{const r=this.getState();"ready"===r?(this.un("change",n),e()):"error"===r&&(this.un("change",n),t(new Error("Source failed to load")))};this.on("change",n)})}getState(){return this.state_}getWrapX(){return this.wrapX_}getInterpolate(){return this.interpolate_}refresh(){this.changed()}setAttributions(e){this.attributions_=e3(e),this.changed()}setState(e){this.state_=e,this.changed()}};function e3(e){return e?"function"==typeof e?e:(Array.isArray(e)||(e=[e]),()=>e):null}var t3="addfeature",n3="removefeature",r3=class extends wH{constructor(e,t,n){super(e),this.feature=t,this.features=n}},i3=class extends Q2{constructor(e){super({attributions:(e=e||{}).attributions,interpolate:!0,projection:void 0,state:"ready",wrapX:void 0===e.wrapX||e.wrapX}),this.on,this.once,this.un,this.loader_=yH,this.format_=e.format||null,this.overlaps_=void 0===e.overlaps||e.overlaps,this.url_=e.url,void 0!==e.loader?this.loader_=e.loader:void 0!==this.url_&&(XH(this.format_,"`format` must be set when `url` is set"),this.loader_=G2(this.url_,this.format_)),this.strategy_=void 0!==e.strategy?e.strategy:K2;const t=void 0===e.useSpatialIndex||e.useSpatialIndex;let n,r;this.featuresRtree_=t?new J2:null,this.loadedExtentsRtree_=new J2,this.nullGeometryFeatures_={},this.idIndex_={},this.uidIndex_={},this.featureChangeKeys_={},this.featuresCollection_=null,Array.isArray(e.features)?r=e.features:e.features&&(n=e.features,r=n.getArray()),t||void 0!==n||(n=new IH(r)),void 0!==r&&this.addFeaturesInternal(r),void 0!==n&&this.bindFeaturesCollection_(n)}addFeature(e){this.addFeatureInternal(e),this.changed()}addFeatureInternal(e){const t=kH(e);if(!this.addToIndex_(t,e))return void(this.featuresCollection_&&this.featuresCollection_.remove(e));this.setupChangeEvents_(t,e);const n=e.getGeometry();if(n){const t=n.getExtent();this.featuresRtree_&&this.featuresRtree_.insert(t,e)}else this.nullGeometryFeatures_[t]=e;this.dispatchEvent(new r3(t3,e))}setupChangeEvents_(e,t){t instanceof X2||(this.featureChangeKeys_[e]=[JW(t,tH,this.handleFeatureChange_,this),JW(t,ZW,this.handleFeatureChange_,this)])}addToIndex_(e,t){let n=!0;if(void 0!==t.getId()){const e=String(t.getId());if(e in this.idIndex_)if(t instanceof X2){const r=this.idIndex_[e];r instanceof X2?Array.isArray(r)?r.push(t):this.idIndex_[e]=[r,t]:n=!1}else n=!1;else this.idIndex_[e]=t}return n&&(XH(!(e in this.uidIndex_),"The passed `feature` was already added to the source"),this.uidIndex_[e]=t),n}addFeatures(e){this.addFeaturesInternal(e),this.changed()}addFeaturesInternal(e){const t=[],n=[],r=[];for(let i=0,s=e.length;i{t||(t=!0,this.addFeature(e.element),t=!1)}),e.addEventListener(KW,e=>{t||(t=!0,this.removeFeature(e.element),t=!1)}),this.featuresCollection_=e}clear(e){if(e){for(const e in this.featureChangeKeys_)this.featureChangeKeys_[e].forEach(eH);this.featuresCollection_||(this.featureChangeKeys_={},this.idIndex_={},this.uidIndex_={})}else if(this.featuresRtree_){this.featuresRtree_.forEach(e=>{this.removeFeatureInternal(e)});for(const e in this.nullGeometryFeatures_)this.removeFeatureInternal(this.nullGeometryFeatures_[e])}this.featuresCollection_&&this.featuresCollection_.clear(),this.featuresRtree_&&this.featuresRtree_.clear(),this.nullGeometryFeatures_={};const t=new r3("clear");this.dispatchEvent(t),this.changed()}forEachFeature(e){if(this.featuresRtree_)return this.featuresRtree_.forEach(e);this.featuresCollection_&&this.featuresCollection_.forEach(e)}forEachFeatureAtCoordinateDirect(e,t){const n=[e[0],e[1],e[0],e[1]];return this.forEachFeatureInExtent(n,function(n){const r=n.getGeometry();if(r instanceof X2||r.intersectsCoordinate(e))return t(n)})}forEachFeatureInExtent(e,t){if(this.featuresRtree_)return this.featuresRtree_.forEachInExtent(e,t);this.featuresCollection_&&this.featuresCollection_.forEach(t)}forEachFeatureIntersectingExtent(e,t){return this.forEachFeatureInExtent(e,function(n){const r=n.getGeometry();if(r instanceof X2||r.intersectsExtent(e)){const e=t(n);if(e)return e}})}getFeaturesCollection(){return this.featuresCollection_}getFeatures(){let e;return this.featuresCollection_?e=this.featuresCollection_.getArray().slice(0):this.featuresRtree_&&(e=this.featuresRtree_.getAll(),XW(this.nullGeometryFeatures_)||pH(e,Object.values(this.nullGeometryFeatures_))),e}getFeaturesAtCoordinate(e){const t=[];return this.forEachFeatureAtCoordinateDirect(e,function(e){t.push(e)}),t}getFeaturesInExtent(e,t){if(this.featuresRtree_){if(!(t&&t.canWrapX()&&this.getWrapX()))return this.featuresRtree_.getInExtent(e);const n=YG(e,t);return[].concat(...n.map(e=>this.featuresRtree_.getInExtent(e)))}return this.featuresCollection_?this.featuresCollection_.getArray().slice(0):[]}getClosestFeatureToCoordinate(e,t){const n=e[0],r=e[1];let i=null;const s=[NaN,NaN];let o=1/0;const a=[-1/0,-1/0,1/0,1/0];return t=t||gH,this.featuresRtree_.forEachInExtent(a,function(e){if(t(e)){const t=e.getGeometry(),l=o;if(o=t instanceof X2?0:t.closestPointXY(n,r,s,o),o{this.loading=Number(this.loading)-1,this.dispatchEvent(new r3("featuresloadend",void 0,e))},s=()=>{this.changed(),this.loading=Number(this.loading)-1,this.dispatchEvent(new r3("featuresloaderror"))};let o=!1;const a=this.loader_.call(this,e,t,n,e=>o||i(e),()=>o||s());a instanceof Promise?(o=!0,a.then(e=>{this.addFeatures(e),i(e)}).catch(s)):this.loader_.length<4&&(this.loading=!1),r.insert(e,{extent:e.slice()})}}}refresh(){this.clear(!0),this.loadedExtentsRtree_.clear(),super.refresh()}removeLoadedExtent(e){const t=this.loadedExtentsRtree_,n=[];t.forEachInExtent(e,function(e){n.push(e)}),n.forEach(n=>{t.remove(n);const r=$G(n.extent,e);for(const e of r)t.insert(e,{extent:e})})}removeFeatures(e){let t=!1;for(let n=0,r=e.length;ne.clone())}var a3=class{constructor(){this.dataProjection=void 0,this.defaultFeatureProjection=void 0,this.featureClass=N1,this.supportedMediaTypes=null}getReadOptions(e,t){if(t){let n=t.dataProjection?iZ(t.dataProjection):this.readProjection(e);t.extent&&n&&"tile-pixels"===n.getUnits()&&(n=iZ(n),n.setWorldExtent(t.extent)),t={dataProjection:n,featureProjection:t.featureProjection}}return this.adaptOptions(t)}adaptOptions(e){return Object.assign({dataProjection:this.dataProjection,featureProjection:this.defaultFeatureProjection,featureClass:this.featureClass},e)}getType(){return CH()}readFeature(e,t){return CH()}readFeatures(e,t){return CH()}readGeometry(e,t){return CH()}readProjection(e){return CH()}writeFeature(e,t){return CH()}writeFeatures(e,t){return CH()}writeGeometry(e,t){return CH()}};function l3(e,t,n){const r=n?iZ(n.featureProjection):null,i=n?iZ(n.dataProjection):null;let s=e;if(r&&i&&!uZ(r,i)){t&&(s=e.clone());const n=t?r:i,o=t?i:r;"tile-pixels"===n.getUnits()?s.transform(n,o):s.applyTransform(pZ(n,o))}if(t&&n&&void 0!==n.decimals){const t=Math.pow(10,n.decimals),r=function(e){for(let n=0,r=e.length;nu3({...e,geometry:t})).flat();const r="MultiPolygon"===n.type?"Polygon":n.type;if("GeometryCollection"===r||"Circle"===r)throw new Error("Unsupported geometry type: "+r);const i=n.layout.length;return l3(new X2(r,"Polygon"===r?function(e,t,n){return Array.isArray(t[0])?(yY(e,0,t,n)||bY(e=e.slice(),0,t,n),e):(mY(e,0,t,n)||vY(e=e.slice(),0,t,n),e)}(n.flatCoordinates,n.ends,i):n.flatCoordinates,n.ends?.flat(),i,e.properties||{},e.id).enableSimplifyTransformed(),!1,t)}function h3(e,t){if(!e)return null;if(Array.isArray(e)){const n=e.map(e=>h3(e,t));return new s3(n)}return l3(new(0,c3[e.type])(e.flatCoordinates,e.layout||"XY",e.ends),!1,t)}var d3=class extends a3{constructor(){super()}getType(){return"json"}readFeature(e,t){return this.readFeatureFromObject(p3(e),this.getReadOptions(e,t))}readFeatures(e,t){return this.readFeaturesFromObject(p3(e),this.getReadOptions(e,t))}readFeatureFromObject(e,t){return CH()}readFeaturesFromObject(e,t){return CH()}readGeometry(e,t){return this.readGeometryFromObject(p3(e),this.getReadOptions(e,t))}readGeometryFromObject(e,t){return CH()}readProjection(e){return this.readProjectionFromObject(p3(e))}readProjectionFromObject(e){return CH()}writeFeature(e,t){return JSON.stringify(this.writeFeatureObject(e,t))}writeFeatureObject(e,t){return CH()}writeFeatures(e,t){return JSON.stringify(this.writeFeaturesObject(e,t))}writeFeaturesObject(e,t){return CH()}writeGeometry(e,t){return JSON.stringify(this.writeGeometryObject(e,t))}writeGeometryObject(e,t){return CH()}};function p3(e){return"string"==typeof e?JSON.parse(e)||null:null!==e?e:null}var f3=class extends d3{constructor(e){e=e||{},super(),this.dataProjection=iZ(e.dataProjection?e.dataProjection:"EPSG:4326"),e.featureProjection&&(this.defaultFeatureProjection=iZ(e.featureProjection)),e.featureClass&&(this.featureClass=e.featureClass),this.geometryName_=e.geometryName,this.extractGeometryName_=e.extractGeometryName,this.supportedMediaTypes=["application/geo+json","application/vnd.geo+json"]}readFeatureFromObject(e,t){let n=null;n="Feature"===e.type?e:{type:"Feature",geometry:e,properties:null};const r=g3(n.geometry);if(this.featureClass===X2)return u3({geometry:r,id:n.id,properties:n.properties},t);const i=new(0,this.featureClass);return this.geometryName_?i.setGeometryName(this.geometryName_):this.extractGeometryName_&&n.geometry_name&&i.setGeometryName(n.geometry_name),i.setGeometry(h3(r,t)),"id"in n&&i.setId(n.id),n.properties&&i.setProperties(n.properties,!0),i}readFeaturesFromObject(e,t){let n=null;if("FeatureCollection"===e.type){n=[];const r=e.features;for(let e=0,i=r.length;e":{},">=":{},"<":{},"<=":{},in:{},"!in":{},all:{},any:{},none:{},has:{},"!has":{}}},geometry_type:{type:"enum",values:{Point:{},LineString:{},Polygon:{}}},function:{expression:{type:"expression"},stops:{type:"array",value:"function_stop"},base:{type:"number",default:1,minimum:0},property:{type:"string",default:"$zoom"},type:{type:"enum",values:{identity:{},exponential:{},interval:{},categorical:{}},default:"exponential"},colorSpace:{type:"enum",values:{rgb:{},lab:{},hcl:{}},default:"rgb"},default:{type:"*",required:!1}},function_stop:{type:"array",minimum:0,maximum:24,value:["number","color"],length:2},expression:{type:"array",value:"expression_name",minimum:1},light:{anchor:{type:"enum",default:"viewport",values:{map:{},viewport:{}},"property-type":"data-constant",transition:!1,expression:{interpolated:!1,parameters:["zoom"]}},position:{type:"array",default:[1.15,210,30],length:3,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom"]}},color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},intensity:{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},sky:{"sky-color":{type:"color","property-type":"data-constant",default:"#88C6FC",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"horizon-color":{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"fog-color":{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"fog-ground-blend":{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"horizon-fog-blend":{type:"number","property-type":"data-constant",default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"sky-horizon-blend":{type:"number","property-type":"data-constant",default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"atmosphere-blend":{type:"number","property-type":"data-constant",default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},terrain:{source:{type:"string",required:!0},exaggeration:{type:"number",minimum:0,default:1}},projection:{type:{type:"projectionDefinition",default:"mercator","property-type":"data-constant",transition:!1,expression:{interpolated:!0,parameters:["zoom"]}}},paint:["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_color-relief","paint_background"],paint_fill:{"fill-antialias":{type:"boolean",default:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-layer-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-outline-color":{type:"color",transition:!0,requires:[{"!":"fill-pattern"},{"fill-antialias":!0}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-extrusion-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-extrusion-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"fill-extrusion-height":{type:"number",default:0,minimum:0,units:"meters",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{type:"number",default:0,minimum:0,units:"meters",transition:!0,requires:["fill-extrusion-height"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-vertical-gradient":{type:"boolean",default:!0,transition:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_line:{"line-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-layer-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"line-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["line-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-width":{type:"number",default:1,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-gap-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-offset":{type:"number",default:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-dasharray":{type:"array",value:"number",minimum:0,transition:!0,units:"line widths",requires:[{"!":"line-pattern"}],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-gradient":{type:"color",transition:!1,requires:[{"!":"line-dasharray"},{"!":"line-pattern"},{source:"geojson",has:{lineMetrics:!0}}],expression:{interpolated:!0,parameters:["line-progress"]},"property-type":"color-ramp"}},paint_circle:{"circle-radius":{type:"number",default:5,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-blur":{type:"number",default:0,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["circle-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{type:"enum",values:{map:{},viewport:{}},default:"map",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"}},paint_heatmap:{"heatmap-radius":{type:"number",default:30,minimum:1,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-weight":{type:"number",default:1,minimum:0,transition:!1,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-intensity":{type:"number",default:1,minimum:0,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"heatmap-color":{type:"color",default:["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",.1,"royalblue",.3,"cyan",.5,"lime",.7,"yellow",1,"red"],transition:!1,expression:{interpolated:!0,parameters:["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_symbol:{"icon-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-color":{type:"color",default:"#000000",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["icon-image","icon-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-color":{type:"color",default:"#000000",transition:!0,overridable:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["text-field","text-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_raster:{"raster-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-hue-rotate":{type:"number",default:0,period:360,transition:!0,units:"degrees",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{type:"number",default:0,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-saturation":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-contrast":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},resampling:{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"raster-resampling":{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{type:"number",default:300,minimum:0,transition:!1,units:"milliseconds",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_hillshade:{"hillshade-illumination-direction":{type:"numberArray",default:335,minimum:0,maximum:359,transition:!1,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-altitude":{type:"numberArray",default:45,minimum:0,maximum:90,transition:!1,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{type:"number",default:.5,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{type:"colorArray",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{type:"colorArray",default:"#FFFFFF",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-method":{type:"enum",values:{standard:{},basic:{},combined:{},igor:{},multidirectional:{}},default:"standard",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},resampling:{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},"paint_color-relief":{"color-relief-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"color-relief-color":{type:"color",transition:!1,expression:{interpolated:!0,parameters:["elevation"]},"property-type":"color-ramp"},resampling:{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_background:{"background-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"background-pattern"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"background-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"background-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},transition:{duration:{type:"number",default:300,minimum:0,units:"milliseconds"},delay:{type:"number",default:0,minimum:0,units:"milliseconds"}},"property-type":{"data-driven":{type:"property-type"},"cross-faded":{type:"property-type"},"cross-faded-data-driven":{type:"property-type"},"color-ramp":{type:"property-type"},"data-constant":{type:"property-type"},constant:{type:"property-type"}},promoteId:{"*":{type:"string"}},interpolation:{type:"array",value:"interpolation_name",minimum:1},interpolation_name:{type:"enum",values:{linear:{syntax:{overloads:[{parameters:[],"output-type":"interpolation"}],parameters:[]}},exponential:{syntax:{overloads:[{parameters:["base"],"output-type":"interpolation"}],parameters:[{name:"base",type:"number literal"}]}},"cubic-bezier":{syntax:{overloads:[{parameters:["x1","y1","x2","y2"],"output-type":"interpolation"}],parameters:[{name:"x1",type:"number literal"},{name:"y1",type:"number literal"},{name:"x2",type:"number literal"},{name:"y2",type:"number literal"}]}}}}},I3=["type","source","source-layer","minzoom","maxzoom","filter","layout"];function P3(e,t){const n={};for(const r in e)"ref"!==r&&(n[r]=e[r]);return I3.forEach(e=>{e in t&&(n[e]=t[e])}),n}function M3(e){e=e.slice();const t=Object.create(null);for(let n=0;n`:"value"===e.itemType.kind?"array":`array<${t}>`}return e.kind}var e5=[D3,z3,j3,U3,B3,$3,H3,q3,J3(V3),G3,Z3,K3,Y3,X3];function t5(e,t){if("error"===t.kind)return null;if("array"===e.kind){if("array"===t.kind&&(0===t.N&&"value"===t.itemType.kind||!t5(e.itemType,t.itemType))&&("number"!=typeof e.N||e.N===t.N))return null}else{if(e.kind===t.kind)return null;if("value"===e.kind)for(const e of e5)if(!t5(e,t))return null}return`Expected ${Q3(e)} but found ${Q3(t)} instead.`}function n5(e,t){return t.some(t=>t.kind===e.kind)}function r5(e,t){return t.some(t=>"null"===t?null===e:"array"===t?Array.isArray(e):"object"===t?e&&!Array.isArray(e)&&"object"==typeof e:t===typeof e)}function i5(e,t){return"array"===e.kind&&"array"===t.kind?e.itemType.kind===t.itemType.kind&&"number"==typeof e.N:e.kind===t.kind}var s5=.96422,o5=.82521,a5=4/29,l5=6/29,c5=3*l5*l5,u5=l5*l5*l5,h5=Math.PI/180,d5=180/Math.PI;function p5(e){return(e%=360)<0&&(e+=360),e}function f5([e,t,n,r]){let i,s;const o=m5((.2225045*(e=g5(e))+.7168786*(t=g5(t))+.0606169*(n=g5(n)))/1);e===t&&t===n?i=s=o:(i=m5((.4360747*e+.3850649*t+.1430804*n)/s5),s=m5((.0139322*e+.0971045*t+.7141733*n)/o5));const a=116*o-16;return[a<0?0:a,500*(i-o),200*(o-s),r]}function g5(e){return e<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function m5(e){return e>u5?Math.pow(e,1/3):e/c5+a5}function y5([e,t,n,r]){let i=(e+16)/116,s=isNaN(t)?i:i+t/500,o=isNaN(n)?i:i-n/200;return i=1*b5(i),s=s5*b5(s),o=o5*b5(o),[v5(3.1338561*s-1.6168667*i-.4906146*o),v5(-.9787684*s+1.9161415*i+.033454*o),v5(.0719453*s-.2289914*i+1.4052427*o),r]}function v5(e){return(e=e<=.00304?12.92*e:1.055*Math.pow(e,1/2.4)-.055)<0?0:e>1?1:e}function b5(e){return e>l5?e*e*e:c5*(e-a5)}var w5=Object.hasOwn||function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};function _5(e,t){return w5(e,t)?e[t]:void 0}function x5(e){return parseInt(e.padEnd(2,e),16)/255}function C5(e,t){return S5(t?e/100:e,0,1)}function S5(e,t,n){return Math.min(Math.max(t,e),n)}function k5(e){return!e.some(Number.isNaN)}var E5={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};function R5(e,t,n){return e+n*(t-e)}function T5(e,t,n){return e.map((e,r)=>R5(e,t[r],n))}var L5=class e{constructor(e,t,n,r=1,i=!0){this.r=e,this.g=t,this.b=n,this.a=r,i||(this.r*=r,this.g*=r,this.b*=r,r||this.overwriteGetter("rgb",[e,t,n,r]))}static{this.black=new e(0,0,0,1)}static{this.white=new e(1,1,1,1)}static{this.transparent=new e(0,0,0,0)}static{this.red=new e(1,0,0,1)}static parse(t){if(t instanceof e)return t;if("string"!=typeof t)return;const n=function(e){if("transparent"===(e=e.toLowerCase().trim()))return[0,0,0,0];const t=_5(E5,e);if(t){const[e,n,r]=t;return[e/255,n/255,r/255,1]}if(e.startsWith("#")&&/^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.test(e)){const t=e.length<6?1:2;let n=1;return[x5(e.slice(n,n+=t)),x5(e.slice(n,n+=t)),x5(e.slice(n,n+=t)),x5(e.slice(n,n+t)||"ff")]}if(e.startsWith("rgb")){const t=e.match(/^rgba?\(\s*([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(t){const[e,n,r,i,s,o,a,l,c,u,h,d]=t,p=[i||" ",a||" ",u].join("");if(" "===p||" /"===p||",,"===p||",,,"===p){const e=[r,o,c].join(""),t="%%%"===e?100:""===e?255:0;if(t){const e=[S5(+n/t,0,1),S5(+s/t,0,1),S5(+l/t,0,1),h?C5(+h,d):1];if(k5(e))return e}}return}}const n=e.match(/^hsla?\(\s*([\de.+-]+)(?:deg)?(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(n){const[e,t,r,i,s,o,a,l,c]=n,u=[r||" ",s||" ",a].join("");if(" "===u||" /"===u||",,"===u||",,,"===u){const e=[+t,S5(+i,0,100),S5(+o,0,100),l?C5(+l,c):1];if(k5(e))return function([e,t,n,r]){function i(r){const i=(r+e/30)%12,s=t*Math.min(n,1-n);return n-s*Math.max(-1,Math.min(i-3,9-i,1))}return e=p5(e),t/=100,n/=100,[i(0),i(8),i(4),r]}(e)}}}(t);return n?new e(...n,!1):void 0}get rgb(){const{r:e,g:t,b:n,a:r}=this,i=r||1/0;return this.overwriteGetter("rgb",[e/i,t/i,n/i,r])}get hcl(){return this.overwriteGetter("hcl",function(e){const[t,n,r,i]=f5(e),s=Math.sqrt(n*n+r*r);return[Math.round(1e4*s)?p5(Math.atan2(r,n)*d5):NaN,s,t,i]}(this.rgb))}get lab(){return this.overwriteGetter("lab",f5(this.rgb))}overwriteGetter(e,t){return Object.defineProperty(this,e,{value:t}),t}toString(){const[e,t,n,r]=this.rgb;return`rgba(${[e,t,n].map(e=>Math.round(255*e)).join(",")},${r})`}static interpolate(t,n,r,i="rgb"){switch(i){case"rgb":{const[i,s,o,a]=T5(t.rgb,n.rgb,r);return new e(i,s,o,a,!1)}case"hcl":{const[i,s,o,a]=t.hcl,[l,c,u,h]=n.hcl;let d,p;if(isNaN(i)||isNaN(l))isNaN(i)?isNaN(l)?d=NaN:(d=l,1!==o&&0!==o||(p=c)):(d=i,1!==u&&0!==u||(p=s));else{let e=l-i;l>i&&e>180?e-=360:l180&&(e+=360),d=i+r*e}const[f,g,m,y]=function([e,t,n,r]){return e=isNaN(e)?0:e*h5,y5([n,Math.cos(e)*t,Math.sin(e)*t,r])}([d,p??R5(s,c,r),R5(o,u,r),R5(a,h,r)]);return new e(f,g,m,y,!1)}case"lab":{const[i,s,o,a]=y5(T5(t.lab,n.lab,r));return new e(i,s,o,a,!1)}}}},I5=class{constructor(e,t,n){this.sensitivity=e?t?"variant":"case":t?"accent":"base",this.locale=n,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})}compare(e,t){return this.collator.compare(e,t)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}},P5=["bottom","center","top"],M5=class{constructor(e,t,n,r,i,s){this.text=e,this.image=t,this.scale=n,this.fontStack=r,this.textColor=i,this.verticalAlign=s}},A5=class e{constructor(e){this.sections=e}static fromString(t){return new e([new M5(t,null,null,null,null,null)])}isEmpty(){return 0===this.sections.length||!this.sections.some(e=>0!==e.text.length||e.image&&0!==e.image.name.length)}static factory(t){return t instanceof e?t:e.fromString(t)}toString(){return 0===this.sections.length?"":this.sections.map(e=>e.text).join("")}},O5=class e{constructor(e){this.values=e.slice()}static parse(t){if(t instanceof e)return t;if("number"==typeof t)return new e([t,t,t,t]);if(Array.isArray(t)&&!(t.length<1||t.length>4)){for(const e of t)if("number"!=typeof e)return;switch(t.length){case 1:t=[t[0],t[0],t[0],t[0]];break;case 2:t=[t[0],t[1],t[0],t[1]];break;case 3:t=[t[0],t[1],t[2],t[1]]}return new e(t)}}toString(){return JSON.stringify(this.values)}static interpolate(t,n,r){return new e(T5(t.values,n.values,r))}},N5=class e{constructor(e){this.values=e.slice()}static parse(t){if(t instanceof e)return t;if("number"==typeof t)return new e([t]);if(Array.isArray(t)){for(const e of t)if("number"!=typeof e)return;return new e(t)}}toString(){return JSON.stringify(this.values)}static interpolate(t,n,r){return new e(T5(t.values,n.values,r))}},F5=class e{constructor(e){this.values=e.slice()}static parse(t){if(t instanceof e)return t;if("string"==typeof t){const n=L5.parse(t);if(!n)return;return new e([n])}if(!Array.isArray(t))return;const n=[];for(const e of t){if("string"!=typeof e)return;const t=L5.parse(e);if(!t)return;n.push(t)}return new e(n)}toString(){return JSON.stringify(this.values)}static interpolate(t,n,r,i="rgb"){const s=[];if(t.values.length!=n.values.length)throw new Error(`colorArray: Arrays have mismatched length (${t.values.length} vs. ${n.values.length}), cannot interpolate.`);for(let e=0;e=0&&e<=255&&"number"==typeof t&&t>=0&&t<=255&&"number"==typeof n&&n>=0&&n<=255?void 0===r||"number"==typeof r&&r>=0&&r<=1?null:`Invalid rgba value [${[e,t,n,r].join(", ")}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${("number"==typeof r?[e,t,n,r]:[e,t,n]).join(", ")}]: 'r', 'g', and 'b' must be between 0 and 255.`}function q5(e){if(null===e||"string"==typeof e||"boolean"==typeof e||"number"==typeof e||e instanceof B5||e instanceof L5||e instanceof I5||e instanceof A5||e instanceof O5||e instanceof N5||e instanceof F5||e instanceof j5||e instanceof U5)return!0;if(Array.isArray(e)){for(const t of e)if(!q5(t))return!1;return!0}if("object"==typeof e){for(const t in e)if(!q5(e[t]))return!1;return!0}return!1}function V5(e){if(null===e)return D3;if("string"==typeof e)return j3;if("boolean"==typeof e)return U3;if("number"==typeof e)return z3;if(e instanceof L5)return B3;if(e instanceof B5)return $3;if(e instanceof I5)return W3;if(e instanceof A5)return H3;if(e instanceof O5)return G3;if(e instanceof N5)return Z3;if(e instanceof F5)return K3;if(e instanceof j5)return X3;if(e instanceof U5)return Y3;if(Array.isArray(e)){const t=e.length;let n;for(const r of e){const e=V5(r);if(n){if(n===e)continue;n=V3;break}n=e}return J3(n||V3,t)}return q3}function W5(e){const t=typeof e;return null===e?"":"string"===t||"number"===t||"boolean"===t?String(e):e instanceof L5||e instanceof B5||e instanceof A5||e instanceof O5||e instanceof N5||e instanceof F5||e instanceof j5||e instanceof U5?e.toString():JSON.stringify(e)}var H5=class e{constructor(e,t){this.type=e,this.value=t}static parse(t,n){if(2!==t.length)return n.error(`'literal' expression requires exactly one argument, but found ${t.length-1} instead.`);if(!q5(t[1]))return n.error("invalid value");const r=t[1];let i=V5(r);const s=n.expectedType;return"array"!==i.kind||0!==i.N||!s||"array"!==s.kind||"number"==typeof s.N&&0!==s.N||(i=s),new e(i,r)}evaluate(){return this.value}eachChild(){}outputDefined(){return!0}},G5={string:j3,number:z3,boolean:U3,object:q3},K5=class e{constructor(e,t){this.type=e,this.args=t}static parse(t,n){if(t.length<2)return n.error("Expected at least one argument.");let r,i=1;const s=t[0];if("array"===s){let e,s;if(t.length>2){const r=t[1];if("string"!=typeof r||!(r in G5)||"object"===r)return n.error('The item type argument of "array" must be one of string, number, boolean',1);e=G5[r],i++}else e=V3;if(t.length>3){if(null!==t[2]&&("number"!=typeof t[2]||t[2]<0||t[2]!==Math.floor(t[2])))return n.error('The length argument to "array" must be a positive integer literal',2);s=t[2],i++}r=J3(e,s)}else{if(!G5[s])throw new Error(`Types doesn't contain name = ${s}`);r=G5[s]}const o=[];for(;ie.outputDefined())}},Z5={"to-boolean":U3,"to-color":B3,"to-number":z3,"to-string":j3},Y5=class e{constructor(e,t){this.type=e,this.args=t}static parse(t,n){if(t.length<2)return n.error("Expected at least one argument.");const r=t[0];if(!Z5[r])throw new Error(`Can't parse ${r} as it is not part of the known types`);if(("to-boolean"===r||"to-string"===r)&&2!==t.length)return n.error("Expected one argument.");const i=Z5[r],s=[];for(let e=1;e4?`Invalid rgba value ${JSON.stringify(t)}: expected an array containing either three or four numeric values.`:$5(t[0],t[1],t[2],t[3]),!n))return new L5(t[0]/255,t[1]/255,t[2]/255,t[3])}throw new D5(n||`Could not parse color from value '${"string"==typeof t?t:JSON.stringify(t)}'`)}case"padding":{let t;for(const n of this.args){t=n.evaluate(e);const r=O5.parse(t);if(r)return r}throw new D5(`Could not parse padding from value '${"string"==typeof t?t:JSON.stringify(t)}'`)}case"numberArray":{let t;for(const n of this.args){t=n.evaluate(e);const r=N5.parse(t);if(r)return r}throw new D5(`Could not parse numberArray from value '${"string"==typeof t?t:JSON.stringify(t)}'`)}case"colorArray":{let t;for(const n of this.args){t=n.evaluate(e);const r=F5.parse(t);if(r)return r}throw new D5(`Could not parse colorArray from value '${"string"==typeof t?t:JSON.stringify(t)}'`)}case"variableAnchorOffsetCollection":{let t;for(const n of this.args){t=n.evaluate(e);const r=j5.parse(t);if(r)return r}throw new D5(`Could not parse variableAnchorOffsetCollection from value '${"string"==typeof t?t:JSON.stringify(t)}'`)}case"number":{let t=null;for(const n of this.args){if(t=n.evaluate(e),null===t)return 0;const r=Number(t);if(!isNaN(r))return r}throw new D5(`Could not convert ${JSON.stringify(t)} to number.`)}case"formatted":return A5.fromString(W5(this.args[0].evaluate(e)));case"resolvedImage":return U5.fromString(W5(this.args[0].evaluate(e)));case"projectionDefinition":return this.args[0].evaluate(e);default:return W5(this.args[0].evaluate(e))}}eachChild(e){this.args.forEach(e)}outputDefined(){return this.args.every(e=>e.outputDefined())}},X5=["Unknown","Point","LineString","Polygon"],J5=class{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache=new Map,this.availableImages=null,this.canonical=null}id(){return this.feature&&"id"in this.feature?this.feature.id:null}geometryType(){return this.feature?"number"==typeof this.feature.type?X5[this.feature.type]:this.feature.type:null}geometry(){return this.feature&&"geometry"in this.feature?this.feature.geometry:null}canonicalID(){return this.canonical}properties(){return this.feature&&this.feature.properties||{}}parseColor(e){let t=this._parseColorCache.get(e);return t||(t=L5.parse(e),this._parseColorCache.set(e,t)),t}},Q5=class e{constructor(e,t,n=[],r,i=new F3,s=[]){this.registry=e,this.path=n,this.key=n.map(e=>`[${e}]`).join(""),this.scope=i,this.errors=s,this.expectedType=r,this._isConstant=t}parse(e,t,n,r,i={}){return t?this.concat(t,n,r)._parse(e,i):this._parse(e,i)}_parse(e,t){function n(e,t,n){return"assert"===n?new K5(t,[e]):"coerce"===n?new Y5(t,[e]):e}if(null!==e&&"string"!=typeof e&&"boolean"!=typeof e&&"number"!=typeof e||(e=["literal",e]),Array.isArray(e)){if(0===e.length)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');const i=e[0];if("string"!=typeof i)return this.error(`Expression name must be a string, but found ${typeof i} instead. If you wanted a literal array, use ["literal", [...]].`,0),null;const s=this.registry[i];if(s){let i=s.parse(e,this);if(!i)return null;if(this.expectedType){const e=this.expectedType,r=i.type;if("string"!==e.kind&&"number"!==e.kind&&"boolean"!==e.kind&&"object"!==e.kind&&"array"!==e.kind||"value"!==r.kind){if("projectionDefinition"===e.kind&&["string","array"].includes(r.kind)||["color","formatted","resolvedImage"].includes(e.kind)&&["value","string"].includes(r.kind)||["padding","numberArray"].includes(e.kind)&&["value","number","array"].includes(r.kind)||"colorArray"===e.kind&&["value","string","array"].includes(r.kind)||"variableAnchorOffsetCollection"===e.kind&&["value","array"].includes(r.kind))i=n(i,e,t.typeAnnotation||"coerce");else if(this.checkSubtype(e,r))return null}else i=n(i,e,t.typeAnnotation||"assert")}if(!(i instanceof H5)&&"resolvedImage"!==i.type.kind&&this._isConstant(i)){const e=new J5;try{i=new H5(i.type,i.evaluate(e))}catch(r){return this.error(r.message),null}}return i}return this.error(`Unknown expression "${i}". If you wanted a literal array, use ["literal", [...]].`,0)}return void 0===e?this.error("'undefined' value invalid. Use null instead."):"object"==typeof e?this.error('Bare objects invalid. Use ["literal", {...}] instead.'):this.error(`Expected an array, but found ${typeof e} instead.`)}concat(t,n,r){const i="number"==typeof t?this.path.concat(t):this.path,s=r?this.scope.concat(r):this.scope;return new e(this.registry,this._isConstant,i,n||null,s,this.errors)}error(e,...t){const n=`${this.key}${t.map(e=>`[${e}]`).join("")}`;this.errors.push(new N3(n,e))}checkSubtype(e,t){const n=t5(e,t);return n&&this.error(n),n}},e4=class e{constructor(e,t){this.type=t.type,this.bindings=[].concat(e),this.result=t}evaluate(e){return this.result.evaluate(e)}eachChild(e){for(const t of this.bindings)e(t[1]);e(this.result)}static parse(t,n){if(t.length<4)return n.error(`Expected at least 3 arguments, but found ${t.length-1} instead.`);const r=[];for(let e=1;et))throw new D5("Input is not a number.");o=a-1}return 0}var r4=class e{constructor(e,t,n){this.type=e,this.input=t,this.labels=[],this.outputs=[];for(const[r,i]of n)this.labels.push(r),this.outputs.push(i)}static parse(t,n){if(t.length-1<4)return n.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return n.error("Expected an even number of arguments.");const r=n.parse(t[1],1,z3);if(!r)return null;const i=[];let s=null;n.expectedType&&"value"!==n.expectedType.kind&&(s=n.expectedType);for(let e=1;e=r)return n.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',a);const c=n.parse(o,l,s);if(!c)return null;s=s||c.type,i.push([r,c])}return new e(s,r,i)}evaluate(e){const t=this.labels,n=this.outputs;if(1===t.length)return n[0].evaluate(e);const r=this.input.evaluate(e);if(r<=t[0])return n[0].evaluate(e);const i=t.length;return r>=t[i-1]?n[i-1].evaluate(e):n[n4(t,r)].evaluate(e)}eachChild(e){e(this.input);for(const t of this.outputs)e(t)}outputDefined(){return this.outputs.every(e=>e.outputDefined())}},i4=class e{constructor(e,t,n,r,i){this.type=e,this.operator=t,this.interpolation=n,this.input=r,this.labels=[],this.outputs=[];for(const[s,o]of i)this.labels.push(s),this.outputs.push(o)}static interpolationFactor(e,t,n,r){let i=0;if("exponential"===e.name)i=s4(t,e.base,n,r);else if("linear"===e.name)i=s4(t,1,n,r);else if("cubic-bezier"===e.name){const s=e.controlPoints;i=function(e,t,n,r){const i=3*e,s=3*(n-e)-i,o=1-i-s,a=3*t,l=3*(r-t)-a,c=1-a-l;return function(e,t=1e-6){if(e<=0)return 0;if(e>=1)return 1;let n=e;for(let h=0;h<8;h++){const r=((o*n+s)*n+i)*n-e;if(Math.abs(r)a?r=n:u=n,n=.5*(r+u)}return((c*n+l)*n+a)*n}}(s[0],s[1],s[2],s[3])(s4(t,1,n,r))}return i}static parse(t,n){let[r,i,s,...o]=t;if(!Array.isArray(i)||0===i.length)return n.error("Expected an interpolation type expression.",1);if("linear"===i[0])i={name:"linear"};else if("exponential"===i[0]){const e=i[1];if("number"!=typeof e)return n.error("Exponential interpolation requires a numeric base.",1,1);i={name:"exponential",base:e}}else{if("cubic-bezier"!==i[0])return n.error(`Unknown interpolation type ${String(i[0])}`,1,0);{const e=i.slice(1);if(4!==e.length||e.some(e=>"number"!=typeof e||e<0||e>1))return n.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);i={name:"cubic-bezier",controlPoints:e}}}if(t.length-1<4)return n.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return n.error("Expected an even number of arguments.");if(s=n.parse(s,2,z3),!s)return null;const a=[];let l=null;"interpolate-hcl"!==r&&"interpolate-lab"!==r||n.expectedType==K3?n.expectedType&&"value"!==n.expectedType.kind&&(l=n.expectedType):l=B3;for(let e=0;e=t)return n.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',i);const c=n.parse(r,s,l);if(!c)return null;l=l||c.type,a.push([t,c])}return i5(l,z3)||i5(l,$3)||i5(l,B3)||i5(l,G3)||i5(l,Z3)||i5(l,K3)||i5(l,X3)||i5(l,J3(z3))?new e(l,r,i,s,a):n.error(`Type ${Q3(l)} is not interpolatable.`)}evaluate(t){const n=this.labels,r=this.outputs;if(1===n.length)return r[0].evaluate(t);const i=this.input.evaluate(t);if(i<=n[0])return r[0].evaluate(t);const s=n.length;if(i>=n[s-1])return r[s-1].evaluate(t);const o=n4(n,i),a=n[o],l=n[o+1],c=e.interpolationFactor(this.interpolation,i,a,l),u=r[o].evaluate(t),h=r[o+1].evaluate(t);switch(this.operator){case"interpolate":switch(this.type.kind){case"number":return R5(u,h,c);case"color":return L5.interpolate(u,h,c);case"padding":return O5.interpolate(u,h,c);case"colorArray":return F5.interpolate(u,h,c);case"numberArray":return N5.interpolate(u,h,c);case"variableAnchorOffsetCollection":return j5.interpolate(u,h,c);case"array":return T5(u,h,c);case"projectionDefinition":return B5.interpolate(u,h,c)}case"interpolate-hcl":switch(this.type.kind){case"color":return L5.interpolate(u,h,c,"hcl");case"colorArray":return F5.interpolate(u,h,c,"hcl")}case"interpolate-lab":switch(this.type.kind){case"color":return L5.interpolate(u,h,c,"lab");case"colorArray":return F5.interpolate(u,h,c,"lab")}}}eachChild(e){e(this.input);for(const t of this.outputs)e(t)}outputDefined(){return this.outputs.every(e=>e.outputDefined())}};function s4(e,t,n,r){const i=r-n,s=e-n;return 0===i?0:1===t?s/i:(Math.pow(t,s)-1)/(Math.pow(t,i)-1)}L5.interpolate,O5.interpolate,N5.interpolate,F5.interpolate,j5.interpolate;var o4=class e{constructor(e,t){this.type=e,this.args=t}static parse(t,n){if(t.length<2)return n.error("Expected at least one argument.");let r=null;const i=n.expectedType;i&&"value"!==i.kind&&(r=i);const s=[];for(const e of t.slice(1)){const t=n.parse(e,1+s.length,r,void 0,{typeAnnotation:"omit"});if(!t)return null;r=r||t.type,s.push(t)}if(!r)throw new Error("No output type");return i&&s.some(e=>t5(i,e.type))?new e(V3,s):new e(r,s)}evaluate(e){let t,n=null,r=0;for(const i of this.args)if(r++,n=i.evaluate(e),n&&n instanceof U5&&!n.available&&(t||(t=n.name),n=null,r===this.args.length&&(n=t)),null!==n)break;return n}eachChild(e){this.args.forEach(e)}outputDefined(){return this.args.every(e=>e.outputDefined())}};function a4(e,t){return"=="===e||"!="===e?"boolean"===t.kind||"string"===t.kind||"number"===t.kind||"null"===t.kind||"value"===t.kind:"string"===t.kind||"number"===t.kind||"value"===t.kind}function l4(e,t,n,r){return 0===r.compare(t,n)}function c4(e,t,n){const r="=="!==e&&"!="!==e;return class i{constructor(e,t,n){this.type=U3,this.lhs=e,this.rhs=t,this.collator=n,this.hasUntypedArgument="value"===e.type.kind||"value"===t.type.kind}static parse(e,t){if(3!==e.length&&4!==e.length)return t.error("Expected two or three arguments.");const n=e[0];let s=t.parse(e[1],1,V3);if(!s)return null;if(!a4(n,s.type))return t.concat(1).error(`"${n}" comparisons are not supported for type '${Q3(s.type)}'.`);let o=t.parse(e[2],2,V3);if(!o)return null;if(!a4(n,o.type))return t.concat(2).error(`"${n}" comparisons are not supported for type '${Q3(o.type)}'.`);if(s.type.kind!==o.type.kind&&"value"!==s.type.kind&&"value"!==o.type.kind)return t.error(`Cannot compare types '${Q3(s.type)}' and '${Q3(o.type)}'.`);r&&("value"===s.type.kind&&"value"!==o.type.kind?s=new K5(o.type,[s]):"value"!==s.type.kind&&"value"===o.type.kind&&(o=new K5(s.type,[o])));let a=null;if(4===e.length){if("string"!==s.type.kind&&"string"!==o.type.kind&&"value"!==s.type.kind&&"value"!==o.type.kind)return t.error("Cannot use collator to compare non-string types.");if(a=t.parse(e[3],3,W3),!a)return null}return new i(s,o,a)}evaluate(i){const s=this.lhs.evaluate(i),o=this.rhs.evaluate(i);if(r&&this.hasUntypedArgument){const t=V5(s),n=V5(o);if(t.kind!==n.kind||"string"!==t.kind&&"number"!==t.kind)throw new D5(`Expected arguments for "${e}" to be (string, string) or (number, number), but found (${t.kind}, ${n.kind}) instead.`)}if(this.collator&&!r&&this.hasUntypedArgument){const e=V5(s),n=V5(o);if("string"!==e.kind||"string"!==n.kind)return t(i,s,o)}return this.collator?n(i,s,o,this.collator.evaluate(i)):t(i,s,o)}eachChild(e){e(this.lhs),e(this.rhs),this.collator&&e(this.collator)}outputDefined(){return!0}}}var u4=c4("==",function(e,t,n){return t===n},l4),h4=c4("!=",function(e,t,n){return t!==n},function(e,t,n,r){return!l4(0,t,n,r)}),d4=c4("<",function(e,t,n){return t",function(e,t,n){return t>n},function(e,t,n,r){return r.compare(t,n)>0}),f4=c4("<=",function(e,t,n){return t<=n},function(e,t,n,r){return r.compare(t,n)<=0}),g4=c4(">=",function(e,t,n){return t>=n},function(e,t,n,r){return r.compare(t,n)>=0}),m4=class e{constructor(e,t,n){this.type=W3,this.locale=n,this.caseSensitive=e,this.diacriticSensitive=t}static parse(t,n){if(2!==t.length)return n.error("Expected one argument.");const r=t[1];if("object"!=typeof r||Array.isArray(r))return n.error("Collator options argument must be an object.");const i=n.parse(void 0!==r["case-sensitive"]&&r["case-sensitive"],1,U3);if(!i)return null;const s=n.parse(void 0!==r["diacritic-sensitive"]&&r["diacritic-sensitive"],1,U3);if(!s)return null;let o=null;return r.locale&&(o=n.parse(r.locale,1,j3),!o)?null:new e(i,s,o)}evaluate(e){return new I5(this.caseSensitive.evaluate(e),this.diacriticSensitive.evaluate(e),this.locale?this.locale.evaluate(e):null)}eachChild(e){e(this.caseSensitive),e(this.diacriticSensitive),this.locale&&e(this.locale)}outputDefined(){return!1}},y4=8192;function v4(e,t){const n=(180+e[0])/360,r=(i=e[1],(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+i*Math.PI/360)))/360);var i;const s=Math.pow(2,t.z);return[Math.round(n*s*y4),Math.round(r*s*y4)]}function b4(e,t){const n=Math.pow(2,t.z);return[(i=(e[0]/y4+t.x)/n,360*i-180),(r=(e[1]/y4+t.y)/n,360/Math.PI*Math.atan(Math.exp((180-360*r)*Math.PI/180))-90)];var r,i}function w4(e,t){e[0]=Math.min(e[0],t[0]),e[1]=Math.min(e[1],t[1]),e[2]=Math.max(e[2],t[0]),e[3]=Math.max(e[3],t[1])}function _4(e,t){return!(e[0]<=t[0]||e[2]>=t[2]||e[1]<=t[1]||e[3]>=t[3])}function x4(e,t,n){return t[1]>e[1]!=n[1]>e[1]&&e[0]<(n[0]-t[0])*(e[1]-t[1])/(n[1]-t[1])+t[0]}function C4(e,t,n){const r=e[0]-t[0],i=e[1]-t[1],s=e[0]-n[0],o=e[1]-n[1];return r*o-s*i===0&&r*s<=0&&i*o<=0}function S4(e,t,n,r){const i=[t[0]-e[0],t[1]-e[1]];return 0!==function(e,t){return e[0]*t[1]-e[1]*t[0]}([r[0]-n[0],r[1]-n[1]],i)&&!(!I4(e,t,n,r)||!I4(n,r,e,t))}function k4(e,t,n){for(const r of n)for(let n=0;n0&&h<0||u<0&&h>0}function P4(e,t,n){const r=[];for(let i=0;in[2]){const t=.5*r;let i=e[0]-n[0]>t?-r:n[0]-e[0]>t?r:0;0===i&&(i=e[0]-n[2]>t?-r:n[2]-e[0]>t?r:0),e[0]+=i}w4(t,e)}function O4(e,t,n,r){const i=Math.pow(2,r.z)*y4,s=[r.x*y4,r.y*y4],o=[];for(const a of e)for(const e of a){const r=[e.x+s[0],e.y+s[1]];A4(r,t,n,i),o.push(r)}return o}function N4(e,t,n,r){const i=Math.pow(2,r.z)*y4,s=[r.x*y4,r.y*y4],o=[];for(const a of e){const e=[];for(const n of a){const r=[n.x+s[0],n.y+s[1]];w4(t,r),e.push(r)}o.push(e)}if(t[2]-t[0]<=i/2){!function(e){e[0]=e[1]=1/0,e[2]=e[3]=-1/0}(t);for(const e of o)for(const r of e)A4(r,t,n,i)}return o}var F4=class e{constructor(e,t){this.type=U3,this.geojson=e,this.geometries=t}static parse(t,n){if(2!==t.length)return n.error(`'within' expression requires exactly one argument, but found ${t.length-1} instead.`);if(q5(t[1])){const n=t[1];if("FeatureCollection"===n.type){const t=[];for(const e of n.features){const{type:n,coordinates:r}=e.geometry;"Polygon"===n&&t.push(r),"MultiPolygon"===n&&t.push(...r)}if(t.length)return new e(n,{type:"MultiPolygon",coordinates:t})}else if("Feature"===n.type){const t=n.geometry.type;if("Polygon"===t||"MultiPolygon"===t)return new e(n,n.geometry)}else if("Polygon"===n.type||"MultiPolygon"===n.type)return new e(n,n)}return n.error("'within' expression requires valid geojson object that contains polygon geometry type.")}evaluate(e){if(null!=e.geometry()&&null!=e.canonicalID()){if("Point"===e.geometryType())return function(e,t){const n=[1/0,1/0,-1/0,-1/0],r=[1/0,1/0,-1/0,-1/0],i=e.canonicalID();if("Polygon"===t.type){const s=P4(t.coordinates,r,i),o=O4(e.geometry(),n,r,i);if(!_4(n,r))return!1;for(const e of o)if(!E4(e,s))return!1}if("MultiPolygon"===t.type){const s=M4(t.coordinates,r,i),o=O4(e.geometry(),n,r,i);if(!_4(n,r))return!1;for(const e of o)if(!R4(e,s))return!1}return!0}(e,this.geometries);if("LineString"===e.geometryType())return function(e,t){const n=[1/0,1/0,-1/0,-1/0],r=[1/0,1/0,-1/0,-1/0],i=e.canonicalID();if("Polygon"===t.type){const s=P4(t.coordinates,r,i),o=N4(e.geometry(),n,r,i);if(!_4(n,r))return!1;for(const e of o)if(!T4(e,s))return!1}if("MultiPolygon"===t.type){const s=M4(t.coordinates,r,i),o=N4(e.geometry(),n,r,i);if(!_4(n,r))return!1;for(const e of o)if(!L4(e,s))return!1}return!0}(e,this.geometries)}return!1}eachChild(){}outputDefined(){return!0}},D4=class{constructor(e=[],t=(e,t)=>et?1:0){if(this.data=e,this.length=this.data.length,this.compare=t,this.length>0)for(let n=(this.length>>1)-1;n>=0;n--)this._down(n)}push(e){this.data.push(e),this._up(this.length++)}pop(){if(0===this.length)return;const e=this.data[0],t=this.data.pop();return--this.length>0&&(this.data[0]=t,this._down(0)),e}peek(){return this.data[0]}_up(e){const{data:t,compare:n}=this,r=t[e];for(;e>0;){const i=e-1>>1,s=t[i];if(n(r,s)>=0)break;t[e]=s,e=i}t[e]=r}_down(e){const{data:t,compare:n}=this,r=this.length>>1,i=t[e];for(;e=0)break;t[e]=t[r],e=r}t[e]=i}};function z4(e){let t=0;for(let n,r,i=0,s=e.length,o=s-1;i1?(l=e[a+1][0],c=e[a+1][1]):d>0&&(l+=u/this.kx*d,c+=h/this.ky*d)),u=this.wrap(t[0]-l)*this.kx,h=(t[1]-c)*this.ky;const p=u*u+h*h;p180;)e-=360;return e}};function B4(e,t){return t[0]-e[0]}function $4(e){return e[1]-e[0]+1}function q4(e,t){return e[1]>=e[0]&&e[1]e[1])return[null,null];const n=$4(e);if(t){if(2===n)return[e,null];const t=Math.floor(n/2);return[[e[0],e[0]+t],[e[0]+t,e[1]]]}if(1===n)return[e,null];const r=Math.floor(n/2)-1;return[[e[0],e[0]+r],[e[0]+r+1,e[1]]]}function W4(e,t){if(!q4(t,e.length))return[1/0,1/0,-1/0,-1/0];const n=[1/0,1/0,-1/0,-1/0];for(let r=t[0];r<=t[1];++r)w4(n,e[r]);return n}function H4(e){const t=[1/0,1/0,-1/0,-1/0];for(const n of e)for(const e of n)w4(t,e);return t}function G4(e){return e[0]!==-1/0&&e[1]!==-1/0&&e[2]!==1/0&&e[3]!==1/0}function K4(e,t,n){if(!G4(e)||!G4(t))return NaN;let r=0,i=0;return e[2]t[2]&&(r=e[0]-t[2]),e[1]>t[3]&&(i=e[1]-t[3]),e[3]=r)return r;if(_4(i,s)){if(t6(e,t))return 0}else if(t6(t,e))return 0;let o=1/0;for(const a of e)for(let e=0,r=a.length,i=r-1;e0;){const i=o.pop();if(i[0]>=s)continue;const l=i[1],c=t?50:100;if($4(l)<=c){if(!q4(l,e.length))return NaN;if(t){const t=e6(e,l,n,r);if(isNaN(t)||0===t)return t;s=Math.min(s,t)}else for(let t=l[0];t<=l[1];++t){const i=Q4(e[t],n,r);if(s=Math.min(s,i),0===s)return 0}}else{const n=V4(l,t);r6(o,s,r,e,a,n[0]),r6(o,s,r,e,a,n[1])}}return s}function o6(e,t,n,r,i,s=1/0){let o=Math.min(s,i.distance(e[0],n[0]));if(0===o)return o;const a=new D4([[0,[0,e.length-1],[0,n.length-1]]],B4);for(;a.length>0;){const s=a.pop();if(s[0]>=o)continue;const l=s[1],c=s[2],u=t?50:100,h=r?50:100;if($4(l)<=u&&$4(c)<=h){if(!q4(l,e.length)&&q4(c,n.length))return NaN;let s;if(t&&r)s=X4(e,l,n,c,i),o=Math.min(o,s);else if(t&&!r){const t=e.slice(l[0],l[1]+1);for(let e=c[0];e<=c[1];++e)if(s=Z4(n[e],t,i),o=Math.min(o,s),0===o)return o}else if(!t&&r){const t=n.slice(c[0],c[1]+1);for(let n=l[0];n<=l[1];++n)if(s=Z4(e[n],t,i),o=Math.min(o,s),0===o)return o}else s=J4(e,l,n,c,i),o=Math.min(o,s)}else{const s=V4(l,t),u=V4(c,r);i6(a,o,i,e,n,s[0],u[0]),i6(a,o,i,e,n,s[0],u[1]),i6(a,o,i,e,n,s[1],u[0]),i6(a,o,i,e,n,s[1],u[1])}}return o}function a6(e){return"MultiPolygon"===e.type?e.coordinates.map(e=>({type:"Polygon",coordinates:e})):"MultiLineString"===e.type?e.coordinates.map(e=>({type:"LineString",coordinates:e})):"MultiPoint"===e.type?e.coordinates.map(e=>({type:"Point",coordinates:e})):[e]}var l6=class e{constructor(e,t){this.type=z3,this.geojson=e,this.geometries=t}static parse(t,n){if(2!==t.length)return n.error(`'distance' expression requires exactly one argument, but found ${t.length-1} instead.`);if(q5(t[1])){const n=t[1];if("FeatureCollection"===n.type)return new e(n,n.features.map(e=>a6(e.geometry)).flat());if("Feature"===n.type)return new e(n,a6(n.geometry));if("type"in n&&"coordinates"in n)return new e(n,a6(n))}return n.error("'distance' expression requires valid geojson object that contains polygon geometry type.")}evaluate(e){if(null!=e.geometry()&&null!=e.canonicalID()){if("Point"===e.geometryType())return function(e,t){const n=e.geometry(),r=n.flat().map(t=>b4([t.x,t.y],e.canonical));if(0===n.length)return NaN;const i=new U4(r[0][1]);let s=1/0;for(const o of t){switch(o.type){case"Point":s=Math.min(s,o6(r,!1,[o.coordinates],!1,i,s));break;case"LineString":s=Math.min(s,o6(r,!1,o.coordinates,!0,i,s));break;case"Polygon":s=Math.min(s,s6(r,!1,o.coordinates,i,s))}if(0===s)return s}return s}(e,this.geometries);if("LineString"===e.geometryType())return function(e,t){const n=e.geometry(),r=n.flat().map(t=>b4([t.x,t.y],e.canonical));if(0===n.length)return NaN;const i=new U4(r[0][1]);let s=1/0;for(const o of t){switch(o.type){case"Point":s=Math.min(s,o6(r,!0,[o.coordinates],!1,i,s));break;case"LineString":s=Math.min(s,o6(r,!0,o.coordinates,!0,i,s));break;case"Polygon":s=Math.min(s,s6(r,!0,o.coordinates,i,s))}if(0===s)return s}return s}(e,this.geometries);if("Polygon"===e.geometryType())return function(e,t){const n=e.geometry();if(0===n.length||0===n[0].length)return NaN;const r=function(e){if(e.length<=1)return[e];const t=[];let n,r;for(const i of e){const e=z4(i);0!==e&&(i.area=Math.abs(e),void 0===r&&(r=e<0),r===e<0?(n&&t.push(n),n=[i]):n.push(i))}return n&&t.push(n),t}(n).map(t=>t.map(t=>t.map(t=>b4([t.x,t.y],e.canonical)))),i=new U4(r[0][0][0][1]);let s=1/0;for(const o of t)for(const e of r){switch(o.type){case"Point":s=Math.min(s,s6([o.coordinates],!1,e,i,s));break;case"LineString":s=Math.min(s,s6(o.coordinates,!0,e,i,s));break;case"Polygon":s=Math.min(s,n6(e,o.coordinates,i,s))}if(0===s)return s}return s}(e,this.geometries)}return NaN}eachChild(){}outputDefined(){return!0}},c6=class e{constructor(e){this.type=V3,this.key=e}static parse(t,n){if(2!==t.length)return n.error(`Expected 1 argument, but found ${t.length-1} instead.`);const r=t[1];return null==r?n.error("Global state property must be defined."):"string"!=typeof r?n.error(`Global state property must be string, but found ${typeof t[1]} instead.`):new e(r)}evaluate(e){const t=e.globals?.globalState;return t&&0!==Object.keys(t).length?_5(t,this.key)??null:null}eachChild(){}outputDefined(){return!1}},u6={"==":u4,"!=":h4,">":p4,"<":d4,">=":g4,"<=":f4,array:K5,at:class e{constructor(e,t,n){this.type=e,this.index=t,this.input=n}static parse(t,n){if(3!==t.length)return n.error(`Expected 2 arguments, but found ${t.length-1} instead.`);const r=n.parse(t[1],1,z3),i=n.parse(t[2],2,J3(n.expectedType||V3));if(!r||!i)return null;const s=i.type;return new e(s.itemType,r,i)}evaluate(e){const t=this.index.evaluate(e),n=this.input.evaluate(e);if(t<0)throw new D5(`Array index out of bounds: ${t} < 0.`);if(t>=n.length)throw new D5(`Array index out of bounds: ${t} > ${n.length-1}.`);if(t!==Math.floor(t))throw new D5(`Array index must be an integer, but found ${t} instead.`);return n[t]}eachChild(e){e(this.index),e(this.input)}outputDefined(){return!1}},boolean:K5,case:class e{constructor(e,t,n){this.type=e,this.branches=t,this.otherwise=n}static parse(t,n){if(t.length<4)return n.error(`Expected at least 3 arguments, but found only ${t.length-1}.`);if(t.length%2!=0)return n.error("Expected an odd number of arguments.");let r;n.expectedType&&"value"!==n.expectedType.kind&&(r=n.expectedType);const i=[];for(let e=1;et.outputDefined())&&this.otherwise.outputDefined()}},coalesce:o4,collator:m4,format:class e{constructor(e){this.type=H3,this.sections=e}static parse(t,n){if(t.length<2)return n.error("Expected at least one argument.");const r=t[1];if(!Array.isArray(r)&&"object"==typeof r)return n.error("First argument must be an image or text section.");const i=[];let s=!1;for(let e=1;e<=t.length-1;++e){const r=t[e];if(s&&"object"==typeof r&&!Array.isArray(r)){s=!1;let e=null;if(r["font-scale"]&&(e=n.parse(r["font-scale"],1,z3),!e))return null;let t=null;if(r["text-font"]&&(t=n.parse(r["text-font"],1,J3(j3)),!t))return null;let o=null;if(r["text-color"]&&(o=n.parse(r["text-color"],1,B3),!o))return null;let a=null;if(r["vertical-align"]){if("string"==typeof r["vertical-align"]&&!P5.includes(r["vertical-align"]))return n.error(`'vertical-align' must be one of: 'bottom', 'center', 'top' but found '${r["vertical-align"]}' instead.`);if(a=n.parse(r["vertical-align"],1,j3),!a)return null}const l=i[i.length-1];l.scale=e,l.font=t,l.textColor=o,l.verticalAlign=a}else{const r=n.parse(t[e],1,V3);if(!r)return null;const o=r.type.kind;if("string"!==o&&"value"!==o&&"null"!==o&&"resolvedImage"!==o)return n.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");s=!0,i.push({content:r,scale:null,font:null,textColor:null,verticalAlign:null})}}return new e(i)}evaluate(e){return new A5(this.sections.map(t=>{const n=t.content.evaluate(e);return V5(n)===Y3?new M5("",n,null,null,null,t.verticalAlign?t.verticalAlign.evaluate(e):null):new M5(W5(n),null,t.scale?t.scale.evaluate(e):null,t.font?t.font.evaluate(e).join(","):null,t.textColor?t.textColor.evaluate(e):null,t.verticalAlign?t.verticalAlign.evaluate(e):null)}))}eachChild(e){for(const t of this.sections)e(t.content),t.scale&&e(t.scale),t.font&&e(t.font),t.textColor&&e(t.textColor),t.verticalAlign&&e(t.verticalAlign)}outputDefined(){return!1}},image:class e{constructor(e){this.type=Y3,this.input=e}static parse(t,n){if(2!==t.length)return n.error("Expected two arguments.");const r=n.parse(t[1],1,j3);return r?new e(r):n.error("No image name provided.")}evaluate(e){const t=this.input.evaluate(e),n=U5.fromString(t);return n&&e.availableImages&&(n.available=e.availableImages.indexOf(t)>-1),n}eachChild(e){e(this.input)}outputDefined(){return!1}},in:class e{constructor(e,t){this.type=U3,this.needle=e,this.haystack=t}static parse(t,n){if(3!==t.length)return n.error(`Expected 2 arguments, but found ${t.length-1} instead.`);const r=n.parse(t[1],1,V3),i=n.parse(t[2],2,V3);return r&&i?n5(r.type,[U3,j3,z3,D3,V3])?new e(r,i):n.error(`Expected first argument to be of type boolean, string, number or null, but found ${Q3(r.type)} instead`):null}evaluate(e){const t=this.needle.evaluate(e),n=this.haystack.evaluate(e);if(!n)return!1;if(!r5(t,["boolean","string","number","null"]))throw new D5(`Expected first argument to be of type boolean, string, number or null, but found ${Q3(V5(t))} instead.`);if(!r5(n,["string","array"]))throw new D5(`Expected second argument to be of type array or string, but found ${Q3(V5(n))} instead.`);return n.indexOf(t)>=0}eachChild(e){e(this.needle),e(this.haystack)}outputDefined(){return!0}},"index-of":class e{constructor(e,t,n){this.type=z3,this.needle=e,this.haystack=t,this.fromIndex=n}static parse(t,n){if(t.length<=2||t.length>=5)return n.error(`Expected 2 or 3 arguments, but found ${t.length-1} instead.`);const r=n.parse(t[1],1,V3),i=n.parse(t[2],2,V3);if(!r||!i)return null;if(!n5(r.type,[U3,j3,z3,D3,V3]))return n.error(`Expected first argument to be of type boolean, string, number or null, but found ${Q3(r.type)} instead`);if(4===t.length){const s=n.parse(t[3],3,z3);return s?new e(r,i,s):null}return new e(r,i)}evaluate(e){const t=this.needle.evaluate(e),n=this.haystack.evaluate(e);if(!r5(t,["boolean","string","number","null"]))throw new D5(`Expected first argument to be of type boolean, string, number or null, but found ${Q3(V5(t))} instead.`);let r;if(this.fromIndex&&(r=this.fromIndex.evaluate(e)),r5(n,["string"])){const e=n.indexOf(t,r);return-1===e?-1:[...n.slice(0,e)].length}if(r5(n,["array"]))return n.indexOf(t,r);throw new D5(`Expected second argument to be of type array or string, but found ${Q3(V5(n))} instead.`)}eachChild(e){e(this.needle),e(this.haystack),this.fromIndex&&e(this.fromIndex)}outputDefined(){return!1}},interpolate:i4,"interpolate-hcl":i4,"interpolate-lab":i4,length:class e{constructor(e){this.type=z3,this.input=e}static parse(t,n){if(2!==t.length)return n.error(`Expected 1 argument, but found ${t.length-1} instead.`);const r=n.parse(t[1],1);return r?"array"!==r.type.kind&&"string"!==r.type.kind&&"value"!==r.type.kind?n.error(`Expected argument of type string or array, but found ${Q3(r.type)} instead.`):new e(r):null}evaluate(e){const t=this.input.evaluate(e);if("string"==typeof t)return[...t].length;if(Array.isArray(t))return t.length;throw new D5(`Expected value to be of type string or array, but found ${Q3(V5(t))} instead.`)}eachChild(e){e(this.input)}outputDefined(){return!1}},let:e4,literal:H5,match:class e{constructor(e,t,n,r,i,s){this.inputType=e,this.type=t,this.input=n,this.cases=r,this.outputs=i,this.otherwise=s}static parse(t,n){if(t.length<5)return n.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if(t.length%2!=1)return n.error("Expected an even number of arguments.");let r,i;n.expectedType&&"value"!==n.expectedType.kind&&(i=n.expectedType);const s={},o=[];for(let e=2;eNumber.MAX_SAFE_INTEGER)return c.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if("number"==typeof e&&Math.floor(e)!==e)return c.error("Numeric branch labels must be integer values.");if(r){if(c.checkSubtype(r,V5(e)))return null}else r=V5(e);if(void 0!==s[String(e)])return c.error("Branch labels must be unique.");s[String(e)]=o.length}const u=n.parse(l,e,i);if(!u)return null;i=i||u.type,o.push(u)}const a=n.parse(t[1],1,V3);if(!a)return null;const l=n.parse(t[t.length-1],t.length-1,i);return l?"value"!==a.type.kind&&n.concat(1).checkSubtype(r,a.type)?null:new e(r,i,a,s,o,l):null}evaluate(e){const t=this.input.evaluate(e);return(V5(t)===this.inputType&&this.outputs[this.cases[t]]||this.otherwise).evaluate(e)}eachChild(e){e(this.input),this.outputs.forEach(e),e(this.otherwise)}outputDefined(){return this.outputs.every(e=>e.outputDefined())&&this.otherwise.outputDefined()}},number:K5,"number-format":class e{constructor(e,t,n,r,i,s){this.type=j3,this.number=e,this.locale=t,this.currency=n,this.unit=r,this.minFractionDigits=i,this.maxFractionDigits=s}static parse(t,n){if(3!==t.length)return n.error("Expected two arguments.");const r=n.parse(t[1],1,z3);if(!r)return null;const i=t[2];if("object"!=typeof i||Array.isArray(i))return n.error("NumberFormat options argument must be an object.");let s=null;if(i.locale&&(s=n.parse(i.locale,1,j3),!s))return null;let o=null;if(i.currency&&(o=n.parse(i.currency,1,j3),!o))return null;let a=null;if(i.unit&&(a=n.parse(i.unit,1,j3),!a))return null;if(o&&a)return n.error("NumberFormat options `currency` and `unit` are mutually exclusive");let l=null;if(i["min-fraction-digits"]&&(l=n.parse(i["min-fraction-digits"],1,z3),!l))return null;let c=null;return i["max-fraction-digits"]&&(c=n.parse(i["max-fraction-digits"],1,z3),!c)?null:new e(r,s,o,a,l,c)}evaluate(e){return new Intl.NumberFormat(this.locale?this.locale.evaluate(e):[],{style:this.currency?"currency":this.unit?"unit":"decimal",currency:this.currency?this.currency.evaluate(e):void 0,unit:this.unit?this.unit.evaluate(e):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(e):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(e):void 0}).format(this.number.evaluate(e))}eachChild(e){e(this.number),this.locale&&e(this.locale),this.currency&&e(this.currency),this.unit&&e(this.unit),this.minFractionDigits&&e(this.minFractionDigits),this.maxFractionDigits&&e(this.maxFractionDigits)}outputDefined(){return!1}},object:K5,slice:class e{constructor(e,t,n,r){this.type=e,this.input=t,this.beginIndex=n,this.endIndex=r}static parse(t,n){if(t.length<=2||t.length>=5)return n.error(`Expected 2 or 3 arguments, but found ${t.length-1} instead.`);const r=n.parse(t[1],1,V3),i=n.parse(t[2],2,z3);if(!r||!i)return null;if(!n5(r.type,[J3(V3),j3,V3]))return n.error(`Expected first argument to be of type array or string, but found ${Q3(r.type)} instead`);if(4===t.length){const s=n.parse(t[3],3,z3);return s?new e(r.type,r,i,s):null}return new e(r.type,r,i)}evaluate(e){const t=this.input.evaluate(e),n=this.beginIndex.evaluate(e);let r;if(this.endIndex&&(r=this.endIndex.evaluate(e)),r5(t,["string"]))return[...t].slice(n,r).join("");if(r5(t,["array"]))return t.slice(n,r);throw new D5(`Expected first argument to be of type array or string, but found ${Q3(V5(t))} instead.`)}eachChild(e){e(this.input),e(this.beginIndex),this.endIndex&&e(this.endIndex)}outputDefined(){return!1}},step:r4,string:K5,"to-boolean":Y5,"to-color":Y5,"to-number":Y5,"to-string":Y5,var:t4,within:F4,distance:l6,"global-state":c6},h6=class e{constructor(e,t,n,r){this.name=e,this.type=t,this._evaluate=n,this.args=r}evaluate(e){return this._evaluate(e,this.args)}eachChild(e){this.args.forEach(e)}outputDefined(){return!1}static parse(t,n){const r=t[0],i=e.definitions[r];if(!i)return n.error(`Unknown expression "${r}". If you wanted a literal array, use ["literal", [...]].`,0);const s=Array.isArray(i)?i[0]:i.type,o=Array.isArray(i)?[[i[1],i[2]]]:i.overloads,a=o.filter(([e])=>!Array.isArray(e)||e.length===t.length-1);let l=null;for(const[c,u]of a){l=new Q5(n.registry,m6,n.path,null,n.scope);const i=[];let o=!1;for(let e=1;e{return t=e,Array.isArray(t)?`(${t.map(Q3).join(", ")})`:`(${Q3(t.type)}...)`;var t}).join(" | "),r=[];for(let i=1;i{n=t?n&&m6(e):n&&e instanceof H5}),!!n&&y6(e)&&b6(e,["zoom","heatmap-density","elevation","line-progress","accumulated","is-supported-script"])}function y6(e){if(e instanceof h6){if("get"===e.name&&1===e.args.length)return!1;if("feature-state"===e.name)return!1;if("has"===e.name&&1===e.args.length)return!1;if("properties"===e.name||"geometry-type"===e.name||"id"===e.name)return!1;if(/^filter-/.test(e.name))return!1}if(e instanceof F4)return!1;if(e instanceof l6)return!1;let t=!0;return e.eachChild(e=>{t&&!y6(e)&&(t=!1)}),t}function v6(e){if(e instanceof h6&&"feature-state"===e.name)return!1;let t=!0;return e.eachChild(e=>{t&&!v6(e)&&(t=!1)}),t}function b6(e,t){if(e instanceof h6&&t.indexOf(e.name)>=0)return!1;let n=!0;return e.eachChild(e=>{n&&!b6(e,t)&&(n=!1)}),n}function w6(e){return{result:"success",value:e}}function _6(e){return{result:"error",value:e}}function x6(e){return"data-driven"===e["property-type"]||"cross-faded-data-driven"===e["property-type"]}function C6(e){return!!e.expression&&e.expression.parameters.indexOf("zoom")>-1}function S6(e){return!!e.expression&&e.expression.interpolated}function k6(e){return e instanceof Number?"number":e instanceof String?"string":e instanceof Boolean?"boolean":Array.isArray(e)?"array":null===e?"null":typeof e}function E6(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)&&V5(e)===q3}h6.register(u6,{error:[{kind:"error"},[j3],(e,[t])=>{throw new D5(t.evaluate(e))}],typeof:[j3,[V3],(e,[t])=>Q3(V5(t.evaluate(e)))],"to-rgba":[J3(z3,4),[B3],(e,[t])=>{const[n,r,i,s]=t.evaluate(e).rgb;return[255*n,255*r,255*i,s]}],rgb:[B3,[z3,z3,z3],d6],rgba:[B3,[z3,z3,z3,z3],d6],has:{type:U3,overloads:[[[j3],(e,[t])=>p6(t.evaluate(e),e.properties())],[[j3,q3],(e,[t,n])=>p6(t.evaluate(e),n.evaluate(e))]]},get:{type:V3,overloads:[[[j3],(e,[t])=>f6(t.evaluate(e),e.properties())],[[j3,q3],(e,[t,n])=>f6(t.evaluate(e),n.evaluate(e))]]},"feature-state":[V3,[j3],(e,[t])=>f6(t.evaluate(e),e.featureState||{})],properties:[q3,[],e=>e.properties()],"geometry-type":[j3,[],e=>e.geometryType()],id:[V3,[],e=>e.id()],zoom:[z3,[],e=>e.globals.zoom],"heatmap-density":[z3,[],e=>e.globals.heatmapDensity||0],elevation:[z3,[],e=>e.globals.elevation||0],"line-progress":[z3,[],e=>e.globals.lineProgress||0],accumulated:[V3,[],e=>void 0===e.globals.accumulated?null:e.globals.accumulated],"+":[z3,g6(z3),(e,t)=>{let n=0;for(const r of t)n+=r.evaluate(e);return n}],"*":[z3,g6(z3),(e,t)=>{let n=1;for(const r of t)n*=r.evaluate(e);return n}],"-":{type:z3,overloads:[[[z3,z3],(e,[t,n])=>t.evaluate(e)-n.evaluate(e)],[[z3],(e,[t])=>-t.evaluate(e)]]},"/":[z3,[z3,z3],(e,[t,n])=>t.evaluate(e)/n.evaluate(e)],"%":[z3,[z3,z3],(e,[t,n])=>t.evaluate(e)%n.evaluate(e)],ln2:[z3,[],()=>Math.LN2],pi:[z3,[],()=>Math.PI],e:[z3,[],()=>Math.E],"^":[z3,[z3,z3],(e,[t,n])=>Math.pow(t.evaluate(e),n.evaluate(e))],sqrt:[z3,[z3],(e,[t])=>Math.sqrt(t.evaluate(e))],log10:[z3,[z3],(e,[t])=>Math.log(t.evaluate(e))/Math.LN10],ln:[z3,[z3],(e,[t])=>Math.log(t.evaluate(e))],log2:[z3,[z3],(e,[t])=>Math.log(t.evaluate(e))/Math.LN2],sin:[z3,[z3],(e,[t])=>Math.sin(t.evaluate(e))],cos:[z3,[z3],(e,[t])=>Math.cos(t.evaluate(e))],tan:[z3,[z3],(e,[t])=>Math.tan(t.evaluate(e))],asin:[z3,[z3],(e,[t])=>Math.asin(t.evaluate(e))],acos:[z3,[z3],(e,[t])=>Math.acos(t.evaluate(e))],atan:[z3,[z3],(e,[t])=>Math.atan(t.evaluate(e))],min:[z3,g6(z3),(e,t)=>Math.min(...t.map(t=>t.evaluate(e)))],max:[z3,g6(z3),(e,t)=>Math.max(...t.map(t=>t.evaluate(e)))],abs:[z3,[z3],(e,[t])=>Math.abs(t.evaluate(e))],round:[z3,[z3],(e,[t])=>{const n=t.evaluate(e);return n<0?-Math.round(-n):Math.round(n)}],floor:[z3,[z3],(e,[t])=>Math.floor(t.evaluate(e))],ceil:[z3,[z3],(e,[t])=>Math.ceil(t.evaluate(e))],"filter-==":[U3,[j3,V3],(e,[t,n])=>e.properties()[t.value]===n.value],"filter-id-==":[U3,[V3],(e,[t])=>e.id()===t.value],"filter-type-==":[U3,[j3],(e,[t])=>e.geometryType()===t.value],"filter-<":[U3,[j3,V3],(e,[t,n])=>{const r=e.properties()[t.value],i=n.value;return typeof r==typeof i&&r{const n=e.id(),r=t.value;return typeof n==typeof r&&n":[U3,[j3,V3],(e,[t,n])=>{const r=e.properties()[t.value],i=n.value;return typeof r==typeof i&&r>i}],"filter-id->":[U3,[V3],(e,[t])=>{const n=e.id(),r=t.value;return typeof n==typeof r&&n>r}],"filter-<=":[U3,[j3,V3],(e,[t,n])=>{const r=e.properties()[t.value],i=n.value;return typeof r==typeof i&&r<=i}],"filter-id-<=":[U3,[V3],(e,[t])=>{const n=e.id(),r=t.value;return typeof n==typeof r&&n<=r}],"filter->=":[U3,[j3,V3],(e,[t,n])=>{const r=e.properties()[t.value],i=n.value;return typeof r==typeof i&&r>=i}],"filter-id->=":[U3,[V3],(e,[t])=>{const n=e.id(),r=t.value;return typeof n==typeof r&&n>=r}],"filter-has":[U3,[V3],(e,[t])=>t.value in e.properties()],"filter-has-id":[U3,[],e=>null!==e.id()&&void 0!==e.id()],"filter-type-in":[U3,[J3(j3)],(e,[t])=>t.value.indexOf(e.geometryType())>=0],"filter-id-in":[U3,[J3(V3)],(e,[t])=>t.value.indexOf(e.id())>=0],"filter-in-small":[U3,[j3,J3(V3)],(e,[t,n])=>n.value.indexOf(e.properties()[t.value])>=0],"filter-in-large":[U3,[j3,J3(V3)],(e,[t,n])=>function(e,t,n,r){for(;n<=r;){const i=n+r>>1;if(t[i]===e)return!0;t[i]>e?r=i-1:n=i+1}return!1}(e.properties()[t.value],n.value,0,n.value.length-1)],all:{type:U3,overloads:[[[U3,U3],(e,[t,n])=>t.evaluate(e)&&n.evaluate(e)],[g6(U3),(e,t)=>{for(const n of t)if(!n.evaluate(e))return!1;return!0}]]},any:{type:U3,overloads:[[[U3,U3],(e,[t,n])=>t.evaluate(e)||n.evaluate(e)],[g6(U3),(e,t)=>{for(const n of t)if(n.evaluate(e))return!0;return!1}]]},"!":[U3,[U3],(e,[t])=>!t.evaluate(e)],"is-supported-script":[U3,[j3],(e,[t])=>{const n=e.globals&&e.globals.isSupportedScript;return!n||n(t.evaluate(e))}],upcase:[j3,[j3],(e,[t])=>t.evaluate(e).toUpperCase()],downcase:[j3,[j3],(e,[t])=>t.evaluate(e).toLowerCase()],concat:[j3,g6(V3),(e,t)=>t.map(t=>W5(t.evaluate(e))).join("")],split:[J3(j3),[j3,j3],(e,[t,n])=>t.evaluate(e).split(n.evaluate(e))],join:[j3,[J3(j3),j3],(e,[t,n])=>t.evaluate(e).join(n.evaluate(e))],"resolved-locale":[j3,[W3],(e,[t])=>t.evaluate(e).resolvedLocale()]});var R6=class{constructor(e,t,n){this.expression=e,this._warningHistory={},this._evaluator=new J5,this._defaultValue=t?function(e){if("color"===e.type&&E6(e.default))return new L5(0,0,0,0);switch(e.type){case"color":return L5.parse(e.default)||null;case"padding":return O5.parse(e.default)||null;case"numberArray":return N5.parse(e.default)||null;case"colorArray":return F5.parse(e.default)||null;case"variableAnchorOffsetCollection":return j5.parse(e.default)||null;case"projectionDefinition":return B5.parse(e.default)||null;default:return void 0===e.default?null:e.default}}(t):null,this._enumValues=t&&"enum"===t.type?t.values:null,this._globalState=n}evaluateWithoutErrorHandling(e,t,n,r,i,s){return this._globalState&&(e=N6(e,this._globalState)),this._evaluator.globals=e,this._evaluator.feature=t,this._evaluator.featureState=n,this._evaluator.canonical=r,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=s,this.expression.evaluate(this._evaluator)}evaluate(e,t,n,r,i,s){this._globalState&&(e=N6(e,this._globalState)),this._evaluator.globals=e,this._evaluator.feature=t||null,this._evaluator.featureState=n||null,this._evaluator.canonical=r,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=s||null;try{const e=this.expression.evaluate(this._evaluator);if(null==e||"number"==typeof e&&e!=e)return this._defaultValue;if(this._enumValues&&!(e in this._enumValues))throw new D5(`Expected value to be one of ${Object.keys(this._enumValues).map(e=>JSON.stringify(e)).join(", ")}, but found ${JSON.stringify(e)} instead.`);return e}catch(o){return this._warningHistory[o.message]||(this._warningHistory[o.message]=!0,"undefined"!=typeof console&&console.warn(o.message)),this._defaultValue}}};function T6(e){return Array.isArray(e)&&e.length>0&&"string"==typeof e[0]&&e[0]in u6}function L6(e,t,n){const r=new Q5(u6,m6,[],t?function(e){const t={color:B3,string:j3,number:z3,enum:j3,boolean:U3,formatted:H3,padding:G3,numberArray:Z3,colorArray:K3,projectionDefinition:$3,resolvedImage:Y3,variableAnchorOffsetCollection:X3};return"array"===e.type?J3(t[e.value]||V3,e.length):t[e.type]}(t):void 0),i=r.parse(e,void 0,void 0,void 0,t&&"string"===t.type?{typeAnnotation:"coerce"}:void 0);return i?w6(new R6(i,t,n)):_6(r.errors)}var I6=class{constructor(e,t,n){this.kind=e,this._styleExpression=t,this.isStateDependent="constant"!==e&&!v6(t.expression),this.globalStateRefs=O6(t.expression),this._globalState=n}evaluateWithoutErrorHandling(e,t,n,r,i,s){return this._globalState&&(e=N6(e,this._globalState)),this._styleExpression.evaluateWithoutErrorHandling(e,t,n,r,i,s)}evaluate(e,t,n,r,i,s){return this._globalState&&(e=N6(e,this._globalState)),this._styleExpression.evaluate(e,t,n,r,i,s)}},P6=class{constructor(e,t,n,r,i){this.kind=e,this.zoomStops=n,this._styleExpression=t,this.isStateDependent="camera"!==e&&!v6(t.expression),this.globalStateRefs=O6(t.expression),this.interpolationType=r,this._globalState=i}evaluateWithoutErrorHandling(e,t,n,r,i,s){return this._globalState&&(e=N6(e,this._globalState)),this._styleExpression.evaluateWithoutErrorHandling(e,t,n,r,i,s)}evaluate(e,t,n,r,i,s){return this._globalState&&(e=N6(e,this._globalState)),this._styleExpression.evaluate(e,t,n,r,i,s)}interpolationFactor(e,t,n){return this.interpolationType?i4.interpolationFactor(this.interpolationType,e,t,n):0}};function M6(e,t,n){const r=L6(e,t,n);if("error"===r.result)return r;const i=r.value.expression,s=y6(i);if(!s&&!x6(t))return _6([new N3("","data expressions not supported")]);const o=b6(i,["zoom"]);if(!o&&!C6(t))return _6([new N3("","zoom expressions not supported")]);const a=A6(i);if(!a&&!o)return _6([new N3("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')]);if(a instanceof N3)return _6([a]);if(a instanceof i4&&!S6(t))return _6([new N3("",'"interpolate" expressions cannot be used with this property')]);if(!a)return w6(new I6(s?"constant":"source",r.value,n));const l=a instanceof i4?a.interpolation:void 0;return w6(new P6(s?"camera":"composite",r.value,a.labels,l,n))}function A6(e){let t=null;if(e instanceof e4)t=A6(e.result);else if(e instanceof o4){for(const n of e.args)if(t=A6(n),t)break}else(e instanceof r4||e instanceof i4)&&e.input instanceof h6&&"zoom"===e.input.name&&(t=e);return t instanceof N3||e.eachChild(e=>{const n=A6(e);n instanceof N3?t=n:!t&&n?t=new N3("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.'):t&&n&&t!==n&&(t=new N3("",'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'))}),t}function O6(e,t=new Set){return e instanceof c6&&t.add(e.key),e.eachChild(e=>{O6(e,t)}),t}function N6(e,t){const{zoom:n,heatmapDensity:r,elevation:i,lineProgress:s,isSupportedScript:o,accumulated:a}=e??{};return{zoom:n,heatmapDensity:r,elevation:i,lineProgress:s,isSupportedScript:o,accumulated:a,globalState:t}}function F6(e){if(!0===e||!1===e)return!0;if(!Array.isArray(e)||0===e.length)return!1;switch(e[0]){case"has":return e.length>=2&&"$id"!==e[1]&&"$type"!==e[1];case"in":return e.length>=3&&("string"!=typeof e[1]||Array.isArray(e[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return 3!==e.length||Array.isArray(e[1])||Array.isArray(e[2]);case"any":case"all":for(const t of e.slice(1))if(!F6(t)&&"boolean"!=typeof t)return!1;return!0;default:return!0}}var D6={type:"boolean",default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}};function z6(e,t){return et?1:0}function j6(e){if(!Array.isArray(e))return!1;if("within"===e[0]||"distance"===e[0])return!0;for(let t=1;t"===t||"<="===t||">="===t?B6(e[1],e[2],t):"any"===t?(n=e.slice(1),["any"].concat(n.map(U6))):"all"===t?["all"].concat(e.slice(1).map(U6)):"none"===t?["all"].concat(e.slice(1).map(U6).map(V6)):"in"===t?$6(e[1],e.slice(2)):"!in"===t?V6($6(e[1],e.slice(2))):"has"===t?q6(e[1]):"!has"!==t||V6(q6(e[1]));var n}function B6(e,t,n){switch(e){case"$type":return[`filter-type-${n}`,t];case"$id":return[`filter-id-${n}`,t];default:return[`filter-${n}`,e,t]}}function $6(e,t){if(0===t.length)return!1;switch(e){case"$type":return["filter-type-in",["literal",t]];case"$id":return["filter-id-in",["literal",t]];default:return t.length>200&&!t.some(e=>typeof e!=typeof t[0])?["filter-in-large",e,["literal",t.sort(z6)]]:["filter-in-small",e,["literal",t]]}}function q6(e){switch(e){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",e]}}function V6(e){return["!",e]}function W6(e){return"object"==typeof e?["literal",e]:e}function H6(e,t){let n=e.stops;if(!n)return function(e,t){const n=["get",e.property];if(void 0===e.default)return"string"===t.type?["string",n]:n;if("enum"===t.type)return["match",n,Object.keys(t.values),n,e.default];{const r=["color"===t.type?"to-color":t.type,n,W6(e.default)];return"array"===t.type&&r.splice(1,0,t.value,t.length||null),r}}(e,t);const r=n&&"object"==typeof n[0][0],i=r||void 0!==e.property,s=r||!i;return n=n.map(e=>!i&&t.tokens&&"string"==typeof e[1]?[e[0],Q6(e[1])]:[e[0],W6(e[1])]),r?function(e,t,n){const r={},i={},s=[];for(let o=0;o3&&t===e[e.length-2]||(r&&2===e.length||e.push(t),e.push(n))}function J6(e,t){return e.type?e.type:t.expression.interpolated?"exponential":"interval"}function Q6(e){const t=["concat"],n=/{([^{}]+)}/g;let r=0;for(let i=n.exec(e);null!==i;i=n.exec(e)){const s=e.slice(r,n.lastIndex-i[0].length);r=n.lastIndex,s.length>0&&t.push(s),t.push(["get",i[1]])}if(1===t.length)return e;if(rr.maximum?[new A3(t,n,`${n} is greater than the maximum value ${r.maximum}`)]:[]}function o8(e){const t=e.valueSpec,n=t8(e.value.type);let r,i,s,o={};const a="categorical"!==n&&void 0===e.value.property,l=!a,c="array"===k6(e.value.stops)&&"array"===k6(e.value.stops[0])&&"object"===k6(e.value.stops[0][0]),u=r8({key:e.key,value:e.value,valueSpec:e.styleSpec.function,validateSpec:e.validateSpec,style:e.style,styleSpec:e.styleSpec,objectElementValidators:{stops:function(e){if("identity"===n)return[new A3(e.key,e.value,'identity function may not have a "stops" property')];let t=[];const r=e.value;return t=t.concat(i8({key:e.key,value:r,valueSpec:e.valueSpec,validateSpec:e.validateSpec,style:e.style,styleSpec:e.styleSpec,arrayElementValidator:h})),"array"===k6(r)&&0===r.length&&t.push(new A3(e.key,r,"array must have at least one stop")),t},default:function(e){return e.validateSpec({key:e.key,value:e.value,valueSpec:t,validateSpec:e.validateSpec,style:e.style,styleSpec:e.styleSpec})}}});return"identity"===n&&a&&u.push(new A3(e.key,e.value,'missing required property "property"')),"identity"===n||e.value.stops||u.push(new A3(e.key,e.value,'missing required property "stops"')),"exponential"===n&&e.valueSpec.expression&&!S6(e.valueSpec)&&u.push(new A3(e.key,e.value,"exponential functions not supported")),e.styleSpec.$version>=8&&(l&&!x6(e.valueSpec)?u.push(new A3(e.key,e.value,"property functions not supported")):a&&!C6(e.valueSpec)&&u.push(new A3(e.key,e.value,"zoom functions not supported"))),"categorical"!==n&&!c||void 0!==e.value.property||u.push(new A3(e.key,e.value,'"property" property is required')),u;function h(e){let n=[];const r=e.value,a=e.key;if("array"!==k6(r))return[new A3(a,r,`array expected, ${k6(r)} found`)];if(2!==r.length)return[new A3(a,r,`array length 2 expected, length ${r.length} found`)];if(c){if("object"!==k6(r[0]))return[new A3(a,r,`object expected, ${k6(r[0])} found`)];if(void 0===r[0].zoom)return[new A3(a,r,"object stop key must have zoom")];if(void 0===r[0].value)return[new A3(a,r,"object stop key must have value")];if(s&&s>t8(r[0].zoom))return[new A3(a,r[0].zoom,"stop zoom values must appear in ascending order")];t8(r[0].zoom)!==s&&(s=t8(r[0].zoom),i=void 0,o={}),n=n.concat(r8({key:`${a}[0]`,value:r[0],valueSpec:{zoom:{}},validateSpec:e.validateSpec,style:e.style,styleSpec:e.styleSpec,objectElementValidators:{zoom:s8,value:d}}))}else n=n.concat(d({key:`${a}[0]`,value:r[0],valueSpec:{},validateSpec:e.validateSpec,style:e.style,styleSpec:e.styleSpec},r));return T6(n8(r[1]))?n.concat([new A3(`${a}[1]`,r[1],"expressions are not allowed in function stops.")]):n.concat(e.validateSpec({key:`${a}[1]`,value:r[1],valueSpec:t,validateSpec:e.validateSpec,style:e.style,styleSpec:e.styleSpec}))}function d(e,s){const a=k6(e.value),l=t8(e.value),c=null!==e.value?e.value:s;if(r){if(a!==r)return[new A3(e.key,c,`${a} stop domain type must match previous stop domain type ${r}`)]}else r=a;if("number"!==a&&"string"!==a&&"boolean"!==a)return[new A3(e.key,c,"stop domain value must be a number, string, or boolean")];if("number"!==a&&"categorical"!==n){let r=`number expected, ${a} found`;return x6(t)&&void 0===n&&(r+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new A3(e.key,c,r)]}return"categorical"!==n||"number"!==a||isFinite(l)&&Math.floor(l)===l?"categorical"!==n&&"number"===a&&void 0!==i&&lnew A3(`${e.key}${t.key}`,e.value,t.message));const n=t.value.expression||t.value._styleExpression.expression;if("property"===e.expressionContext&&"text-font"===e.propertyKey&&!n.outputDefined())return[new A3(e.key,e.value,`Invalid data expression for "${e.propertyKey}". Output values must be contained as literals within the expression.`)];if("property"===e.expressionContext&&"layout"===e.propertyType&&!v6(n))return[new A3(e.key,e.value,'"feature-state" data expressions are not supported with layout properties.')];if("filter"===e.expressionContext&&!v6(n))return[new A3(e.key,e.value,'"feature-state" data expressions are not supported with filters.')];if(e.expressionContext&&0===e.expressionContext.indexOf("cluster")){if(!b6(n,["zoom","feature-state"]))return[new A3(e.key,e.value,'"zoom" and "feature-state" expressions are not supported with cluster properties.')];if("cluster-initial"===e.expressionContext&&!y6(n))return[new A3(e.key,e.value,"Feature data expressions are not supported with initial expression part of cluster properties.")]}return[]}function l8(e){const t=e.key,n=e.value,r=k6(n);return"string"!==r?[new A3(t,n,`color expected, ${r} found`)]:L5.parse(String(n))?[]:[new A3(t,n,`color expected, "${n}" found`)]}function c8(e){const t=e.key,n=e.value,r=e.valueSpec,i=[];return Array.isArray(r.values)?-1===r.values.indexOf(t8(n))&&i.push(new A3(t,n,`expected one of [${r.values.join(", ")}], ${JSON.stringify(n)} found`)):-1===Object.keys(r.values).indexOf(t8(n))&&i.push(new A3(t,n,`expected one of [${Object.keys(r.values).join(", ")}], ${JSON.stringify(n)} found`)),i}function u8(e){return F6(n8(e.value))?a8(O3({},e,{expressionContext:"filter",valueSpec:{value:"boolean"}})):h8(e)}function h8(e){const t=e.value,n=e.key;if("array"!==k6(t))return[new A3(n,t,`array expected, ${k6(t)} found`)];const r=e.styleSpec;let i,s=[];if(t.length<1)return[new A3(n,t,"filter array must have at least 1 element")];switch(s=s.concat(c8({key:`${n}[0]`,value:t[0],valueSpec:r.filter_operator,style:e.style,styleSpec:e.styleSpec})),t8(t[0])){case"<":case"<=":case">":case">=":t.length>=2&&"$type"===t8(t[1])&&s.push(new A3(n,t,`"$type" cannot be use with operator "${t[0]}"`));case"==":case"!=":3!==t.length&&s.push(new A3(n,t,`filter array for operator "${t[0]}" must have 3 elements`));case"in":case"!in":t.length>=2&&(i=k6(t[1]),"string"!==i&&s.push(new A3(`${n}[1]`,t[1],`string expected, ${i} found`)));for(let o=2;o{e in n&&t.push(new A3(r,n[e],`"${e}" is prohibited for ref layers`))}),i.layers.forEach(t=>{t8(t.id)===a&&(e=t)}),e?e.ref?t.push(new A3(r,n.ref,"ref cannot reference another ref layer")):o=t8(e.type):t.push(new A3(r,n.ref,`ref layer "${a}" not found`))}else if("background"!==o)if(n.source){const e=i.sources&&i.sources[n.source],s=e&&t8(e.type);e?"vector"===s&&"raster"===o?t.push(new A3(r,n.source,`layer "${n.id}" requires a raster source`)):"raster-dem"!==s&&"hillshade"===o||"raster-dem"!==s&&"color-relief"===o?t.push(new A3(r,n.source,`layer "${n.id}" requires a raster-dem source`)):"raster"===s&&"raster"!==o?t.push(new A3(r,n.source,`layer "${n.id}" requires a vector source`)):"vector"!==s||n["source-layer"]?"raster-dem"===s&&"hillshade"!==o&&"color-relief"!==o?t.push(new A3(r,n.source,"raster-dem source can only be used with layer type 'hillshade' or 'color-relief'.")):"line"!==o||!n.paint||!n.paint["line-gradient"]||"geojson"===s&&e.lineMetrics||t.push(new A3(r,n,`layer "${n.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)):t.push(new A3(r,n,`layer "${n.id}" must specify a "source-layer"`)):t.push(new A3(r,n.source,`source "${n.source}" not found`))}else t.push(new A3(r,n,'missing required property "source"'));return"raster"===o&&n.paint?.resampling&&n.paint?.["raster-resampling"]&&t.push(new A3(r,n.paint,`layer "${n.id}" redundantly specifies "resampling" and "raster-resampling" paint properties, but only one is allowed. It is advised to use "resampling".`)),t=t.concat(r8({key:r,value:n,valueSpec:s.layer,style:e.style,styleSpec:e.styleSpec,validateSpec:e.validateSpec,objectElementValidators:{"*":()=>[],type:()=>e.validateSpec({key:`${r}.type`,value:n.type,valueSpec:s.layer.type,style:e.style,styleSpec:e.styleSpec,validateSpec:e.validateSpec,object:n,objectKey:"type"}),filter:u8,layout:e=>r8({layer:n,key:e.key,value:e.value,style:e.style,styleSpec:e.styleSpec,validateSpec:e.validateSpec,objectElementValidators:{"*":e=>f8(O3({layerType:o},e))}}),paint:e=>r8({layer:n,key:e.key,value:e.value,style:e.style,styleSpec:e.styleSpec,validateSpec:e.validateSpec,objectElementValidators:{"*":e=>p8(O3({layerType:o},e))}})}})),t}function m8(e){const t=e.value,n=e.key,r=k6(t);return"string"!==r?[new A3(n,t,`string expected, ${r} found`)]:[]}var y8={promoteId:function({key:e,value:t}){if("string"===k6(t))return m8({key:e,value:t});{const n=[];for(const r in t)n.push(...m8({key:`${e}.${r}`,value:t[r]}));return n}}};function v8(e){const t=e.value,n=e.key,r=e.styleSpec,i=e.style,s=e.validateSpec;if(!t.type)return[new A3(n,t,'"type" is required')];const o=t8(t.type);let a;switch(o){case"vector":case"raster":return a=r8({key:n,value:t,valueSpec:r[`source_${o.replace("-","_")}`],style:e.style,styleSpec:r,objectElementValidators:y8,validateSpec:s}),a;case"raster-dem":return a=function(e){const t=e.sourceName??"",n=e.value,r=e.styleSpec,i=r.source_raster_dem,s=e.style;let o=[];const a=k6(n);if(void 0===n)return o;if("object"!==a)return o.push(new A3("source_raster_dem",n,`object expected, ${a} found`)),o;const l="custom"===t8(n.encoding),c=["redFactor","greenFactor","blueFactor","baseShift"],u=e.value.encoding?`"${e.value.encoding}"`:"Default";for(const h in n)!l&&c.includes(h)?o.push(new A3(h,n[h],`In "${t}": "${h}" is only valid when "encoding" is set to "custom". ${u} encoding found`)):i[h]?o=o.concat(e.validateSpec({key:h,value:n[h],valueSpec:i[h],validateSpec:e.validateSpec,style:s,styleSpec:r})):o.push(new A3(h,n[h],`unknown property "${h}"`));return o}({sourceName:n,value:t,style:e.style,styleSpec:r,validateSpec:s}),a;case"geojson":if(a=r8({key:n,value:t,valueSpec:r.source_geojson,style:i,styleSpec:r,validateSpec:s,objectElementValidators:y8}),t.cluster)for(const e in t.clusterProperties){const[r,i]=t.clusterProperties[e],o="string"==typeof r?[r,["accumulated"],["get",e]]:r;a.push(...a8({key:`${n}.${e}.map`,value:i,validateSpec:s,expressionContext:"cluster-map"})),a.push(...a8({key:`${n}.${e}.reduce`,value:o,validateSpec:s,expressionContext:"cluster-reduce"}))}return a;case"video":return r8({key:n,value:t,valueSpec:r.source_video,style:i,validateSpec:s,styleSpec:r});case"image":return r8({key:n,value:t,valueSpec:r.source_image,style:i,validateSpec:s,styleSpec:r});case"canvas":return[new A3(n,null,"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.","source.canvas")];default:return c8({key:`${n}.type`,value:t.type,valueSpec:{values:["vector","raster","raster-dem","geojson","video","image"]},style:i,validateSpec:s,styleSpec:r})}}function b8(e){const t=e.value,n=e.styleSpec,r=n.light,i=e.style;let s=[];const o=k6(t);if(void 0===t)return s;if("object"!==o)return s=s.concat([new A3("light",t,`object expected, ${o} found`)]),s;for(const a in t){const o=a.match(/^(.*)-transition$/);s=o&&r[o[1]]&&r[o[1]].transition?s.concat(e.validateSpec({key:a,value:t[a],valueSpec:n.transition,validateSpec:e.validateSpec,style:i,styleSpec:n})):r[a]?s.concat(e.validateSpec({key:a,value:t[a],valueSpec:r[a],validateSpec:e.validateSpec,style:i,styleSpec:n})):s.concat([new A3(a,t[a],`unknown property "${a}"`)])}return s}function w8(e){const t=e.value,n=e.styleSpec,r=n.sky,i=e.style,s=k6(t);if(void 0===t)return[];if("object"!==s)return[new A3("sky",t,`object expected, ${s} found`)];let o=[];for(const a in t)o=r[a]?o.concat(e.validateSpec({key:a,value:t[a],valueSpec:r[a],style:i,styleSpec:n})):o.concat([new A3(a,t[a],`unknown property "${a}"`)]);return o}function _8(e){const t=e.value,n=e.styleSpec,r=n.terrain,i=e.style;let s=[];const o=k6(t);if(void 0===t)return s;if("object"!==o)return s=s.concat([new A3("terrain",t,`object expected, ${o} found`)]),s;for(const a in t)s=r[a]?s.concat(e.validateSpec({key:a,value:t[a],valueSpec:r[a],validateSpec:e.validateSpec,style:i,styleSpec:n})):s.concat([new A3(a,t[a],`unknown property "${a}"`)]);return s}function x8(e){let t=[];const n=e.value,r=e.key;if(Array.isArray(n)){const i=[],s=[];for(const o in n)n[o].id&&i.includes(n[o].id)&&t.push(new A3(r,n,`all the sprites' ids must be unique, but ${n[o].id} is duplicated`)),i.push(n[o].id),n[o].url&&s.includes(n[o].url)&&t.push(new A3(r,n,`all the sprites' URLs must be unique, but ${n[o].url} is duplicated`)),s.push(n[o].url),t=t.concat(r8({key:`${r}[${o}]`,value:n[o],valueSpec:{id:{type:"string",required:!0},url:{type:"string",required:!0}},validateSpec:e.validateSpec}));return t}return m8({key:r,value:n})}function C8(e){return Boolean(e)&&e.constructor===Object}function S8(e){return C8(e.value)?[]:[new A3(e.key,e.value,`object expected, ${k6(e.value)} found`)]}var k8={"*":()=>[],array:i8,boolean:function(e){const t=e.value,n=e.key,r=k6(t);return"boolean"!==r?[new A3(n,t,`boolean expected, ${r} found`)]:[]},number:s8,color:l8,constants:e8,enum:c8,filter:u8,function:o8,layer:g8,object:r8,source:v8,light:b8,sky:w8,terrain:_8,projection:function(e){const t=e.value,n=e.styleSpec,r=n.projection,i=e.style,s=k6(t);if(void 0===t)return[];if("object"!==s)return[new A3("projection",t,`object expected, ${s} found`)];let o=[];for(const a in t)o=r[a]?o.concat(e.validateSpec({key:a,value:t[a],valueSpec:r[a],style:i,styleSpec:n})):o.concat([new A3(a,t[a],`unknown property "${a}"`)]);return o},projectionDefinition:function(e){const t=e.key;let n=e.value;n=n instanceof String?n.valueOf():n;const r=k6(n);return"array"!==r||function(e){return Array.isArray(e)&&3===e.length&&"string"==typeof e[0]&&"string"==typeof e[1]&&"number"==typeof e[2]}(n)||function(e){return!!["interpolate","step","literal"].includes(e[0])}(n)?["array","string"].includes(r)?[]:[new A3(t,n,`projection expected, invalid type "${r}" found`)]:[new A3(t,n,`projection expected, invalid array ${JSON.stringify(n)} found`)]},string:m8,formatted:function(e){return 0===m8(e).length?[]:a8(e)},resolvedImage:function(e){return 0===m8(e).length?[]:a8(e)},padding:function(e){const t=e.key,n=e.value;if("array"===k6(n)){if(n.length<1||n.length>4)return[new A3(t,n,`padding requires 1 to 4 values; ${n.length} values found`)];const r={type:"number"};let i=[];for(let s=0;s[]}})),e.constants&&(n=n.concat(e8({key:"constants",value:e.constants,style:e,styleSpec:t,validateSpec:E8}))),I8(n)}function L8(e){return function(t){return e(Object.assign({},t,{validateSpec:E8}))}}function I8(e){return[].concat(e).sort((e,t)=>e.line-t.line)}function P8(e){return function(...t){return I8(e.apply(this,t))}}T8.source=P8(L8(v8)),T8.sprite=P8(L8(x8)),T8.glyphs=P8(L8(R8)),T8.light=P8(L8(b8)),T8.sky=P8(L8(w8)),T8.terrain=P8(L8(_8)),T8.state=P8(L8(S8)),T8.layer=P8(L8(g8)),T8.filter=P8(L8(u8)),T8.paintProperty=P8(L8(p8)),T8.layoutProperty=P8(L8(f8));var M8=L3,A8=4294967296,O8="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8"),N8=class{constructor(e){this.buf=ArrayBuffer.isView(e)?e:new Uint8Array(e),this.dataView=new DataView(this.buf.buffer,this.buf.byteOffset,this.buf.byteLength),this.pos=0,this.type=0,this._valueStart=-1,this.length=this.buf.length}readFields(e,t,n=this.length){let r;for(;r=this.nextField(n);)e(r,t,this);return t}readMessage(e,t){return this.readFields(e,t,this.readVarint()+this.pos)}readFixed32(){const e=this.dataView.getUint32(this.pos,!0);return this.pos+=4,e}readSFixed32(){const e=this.dataView.getInt32(this.pos,!0);return this.pos+=4,e}readFixed64(){const e=this.dataView.getUint32(this.pos,!0)+this.dataView.getUint32(this.pos+4,!0)*A8;return this.pos+=8,e}readSFixed64(){const e=this.dataView.getUint32(this.pos,!0)+this.dataView.getInt32(this.pos+4,!0)*A8;return this.pos+=8,e}readFloat(){const e=this.dataView.getFloat32(this.pos,!0);return this.pos+=4,e}readDouble(){const e=this.dataView.getFloat64(this.pos,!0);return this.pos+=8,e}readVarint(e){const t=this.buf,n=t[this.pos++];if(n<128)return n;let r,i=127&n;return r=t[this.pos++],i|=(127&r)<<7,r<128?i:(r=t[this.pos++],i|=(127&r)<<14,r<128?i:(r=t[this.pos++],i|=(127&r)<<21,r<128?i:(r=t[this.pos],i|=(15&r)<<28,function(e,t,n){const r=n.buf;let i,s;if(s=r[n.pos++],i=(112&s)>>4,s<128)return F8(e,i,t);if(s=r[n.pos++],i|=(127&s)<<3,s<128)return F8(e,i,t);if(s=r[n.pos++],i|=(127&s)<<10,s<128)return F8(e,i,t);if(s=r[n.pos++],i|=(127&s)<<17,s<128)return F8(e,i,t);if(s=r[n.pos++],i|=(127&s)<<24,s<128)return F8(e,i,t);if(s=r[n.pos++],i|=(1&s)<<31,s<128)return F8(e,i,t);throw new Error("Expected varint not more than 10 bytes")}(i,e,this))))}readSVarint(){const e=this.readVarint();return e%2==1?(e+1)/-2:e/2}readBoolean(){return Boolean(this.readVarint())}readString(){const e=this.readVarint()+this.pos,t=this.pos;return this.pos=e,e-t>=12&&O8?O8.decode(this.buf.subarray(t,e)):function(e,t,n){let r="",i=t;for(;i239?4:t>223?3:t>191?2:1;if(i+c>n)break;1===c?t<128&&(l=t):2===c?(s=e[i+1],128==(192&s)&&(l=(31&t)<<6|63&s,l<=127&&(l=null))):3===c?(s=e[i+1],o=e[i+2],128==(192&s)&&128==(192&o)&&(l=(15&t)<<12|(63&s)<<6|63&o,(l<=2047||l>=55296&&l<=57343)&&(l=null))):4===c&&(s=e[i+1],o=e[i+2],a=e[i+3],128==(192&s)&&128==(192&o)&&128==(192&a)&&(l=(15&t)<<18|(63&s)<<12|(63&o)<<6|63&a,(l<=65535||l>=1114112)&&(l=null))),null===l?(l=65533,c=1):l>65535&&(l-=65536,r+=String.fromCharCode(l>>>10&1023|55296),l=56320|1023&l),r+=String.fromCharCode(l),i+=c}return r}(this.buf,t,e)}readBytes(){const e=this.readVarint()+this.pos,t=this.buf.subarray(this.pos,e);return this.pos=e,t}readPackedVarint(e=[],t){const n=this.readPackedEnd();for(;this.pos=e)return 0;const t=this.readVarint();return this.type=7&t,this._valueStart=this.pos,t>>>3}skip(e){const t=7&e;if(0===t)for(;this.buf[this.pos++]>127;);else if(2===t)this.pos=this.readVarint()+this.pos;else if(5===t)this.pos+=4;else{if(1!==t)throw new Error(`Unimplemented type: ${t}`);this.pos+=8}}};function F8(e,t,n){return n?4294967296*t+(e>>>0):4294967296*(t>>>0)+(e>>>0)}var D8=class extends a3{constructor(e){super(),e=e||{},this.dataProjection=new cK({code:"",units:"tile-pixels"}),this.featureClass=e.featureClass?e.featureClass:X2,this.geometryName_=e.geometryName,this.layerName_=e.layerName?e.layerName:"layer",this.layers_=e.layers?e.layers:null,this.idProperty_=e.idProperty,this.supportedMediaTypes=["application/vnd.mapbox-vector-tile","application/x-protobuf"]}readRawGeometry_(e,t,n,r){e.pos=t.geometry;const i=e.readVarint()+e.pos;let s=1,o=0,a=0,l=0,c=0,u=0;for(;e.pos>3}if(o--,1===s||2===s)a+=e.readSVarint(),l+=e.readSVarint(),1===s&&c>u&&(r.push(c),u=c),n.push(a,l),c+=2;else{if(7!==s)throw new Error("Invalid command found in the PBF");c>u&&(n.push(n[u],n[u+1]),c+=2)}}c>u&&(r.push(c),u=c)}createFeature_(e,t,n){const r=t.type;if(0===r)return null;let i;const s=t.properties;let o;this.idProperty_?(o=s[this.idProperty_],delete s[this.idProperty_]):o=t.id,s[this.layerName_]=t.layer.name;const a=[],l=[];this.readRawGeometry_(e,t,a,l);const c=function(e,t){let n;return 1===e?n=1===t?"Point":"MultiPoint":2===e?n=1===t?"LineString":"MultiLineString":3===e&&(n="Polygon"),n}(r,l.length);if(this.featureClass===X2)i=new this.featureClass(c,a,l,2,s,o),i.transform(n.dataProjection);else{let e;if("Polygon"==c){const t=wY(a,l);e=t.length>1?new q1(a,"XY",t):new _Y(a,"XY",l)}else e="Point"===c?new hY(a,"XY"):"LineString"===c?new j1(a,"XY"):"MultiPoint"===c?new B1(a,"XY"):"MultiLineString"===c?new U1(a,"XY",l):null;i=new(0,this.featureClass),this.geometryName_&&i.setGeometryName(this.geometryName_);const t=l3(e,!1,n);i.setGeometry(t),void 0!==o&&i.setId(o),i.setProperties(s,!0)}return i}getType(){return"arraybuffer"}readFeatures(e,t){const n=this.layers_,r=iZ((t=this.adaptOptions(t)).dataProjection);r.setWorldExtent(t.extent),t.dataProjection=r;const i=new N8(e),s=i.readFields(z8,{}),o=[];for(const a in s){if(n&&!n.includes(a))continue;const e=s[a],l=e?[0,0,e.extent,e.extent]:null;r.setExtent(l);for(let n=0,r=e.length;n>3)?n.readString():2===e?n.readFloat():3===e?n.readDouble():4===e?n.readVarint(!0):5===e?n.readVarint():6===e?n.readSVarint():7===e?n.readBoolean():null;t.values.push(r)}}function U8(e,t,n){if(1==e)t.id=n.readVarint();else if(2==e){const e=n.readVarint()+n.pos;for(;n.pose)throw new Error("Tile load sequence violation");this.state=e,this.changed()}}load(){CH()}getAlpha(e,t){if(!this.transition_)return 1;let n=this.transitionStarts_[e];if(n){if(-1===n)return 1}else n=t,this.transitionStarts_[e]=n;const r=t-n+1e3/60;return r>=this.transition_?1:tK(r/this.transition_)}inTransition(e){return!!this.transition_&&-1!==this.transitionStarts_[e]}endTransition(e){this.transition_&&(this.transitionStarts_[e]=-1)}disposeInternal(){this.release(),super.disposeInternal()}};function q8(e){return e instanceof Image||e instanceof HTMLCanvasElement||e instanceof HTMLVideoElement||e instanceof ImageBitmap?e:null}var V8,W8=new Error("disposed"),H8=[256,256],G8=class extends $8{constructor(e){super(e.tileCoord,0,{transition:e.transition,interpolate:e.interpolate}),this.loader_=e.loader,this.data_=null,this.error_=null,this.size_=e.size||null,this.controller_=e.controller||null}getSize(){if(this.size_)return this.size_;const e=q8(this.data_);return e?[e.width,e.height]:H8}getData(){return this.data_}getError(){return this.error_}load(){if(0!==this.state&&3!==this.state)return;this.state=1,this.changed();const e=this;this.loader_().then(function(t){e.data_=t,e.state=2,e.changed()}).catch(function(t){e.error_=t,e.state=3,e.changed()})}disposeInternal(){this.controller_&&(this.controller_.abort(W8),this.controller_=null),super.disposeInternal()}},K8=class extends $8{constructor(e,t,n,r,i,s){super(e,t,s),this.crossOrigin_=r?.crossOrigin,this.referrerPolicy_=r?.referrerPolicy,this.src_=n,this.key=n,this.image_,zH?this.image_=new OffscreenCanvas(1,1):(this.image_=new Image,null!==this.crossOrigin_&&(this.image_.crossOrigin=this.crossOrigin_),void 0!==this.referrerPolicy_&&(this.image_.referrerPolicy=this.referrerPolicy_)),this.unlisten_=null,this.tileLoadFunction_=i}getImage(){return this.image_}setImage(e){this.image_=e,this.state=2,this.unlistenImage_(),this.changed()}getCrossOrigin(){return this.crossOrigin_}getReferrerPolicy(){return this.referrerPolicy_}handleImageError_(){this.state=3,this.unlistenImage_(),this.image_=function(){const e=BY(1,1);return e.fillStyle="rgba(0,0,0,0)",e.fillRect(0,0,1,1),e.canvas}(),this.changed()}handleImageLoad_(){if(zH)this.state=2;else{const e=this.image_;e.naturalWidth&&e.naturalHeight?this.state=2:this.state=4}this.unlistenImage_(),this.changed()}load(){3==this.state&&(this.state=0,this.image_=new Image,null!==this.crossOrigin_&&(this.image_.crossOrigin=this.crossOrigin_),void 0!==this.referrerPolicy_&&(this.image_.referrerPolicy=this.referrerPolicy_)),0==this.state&&(this.state=1,this.changed(),this.tileLoadFunction_(this,this.src_),this.unlisten_=function(e,t,n){const r=e;let i=!0,s=!1,o=!1;const a=[QW(r,"load",function(){o=!0,s||t()})];return r.src&&jH?(s=!0,r.decode().then(function(){i&&t()}).catch(function(){i&&(o?t():n())})):a.push(QW(r,"error",n)),function(){i=!1,a.forEach(eH)}}(this.image_,this.handleImageLoad_.bind(this),this.handleImageError_.bind(this)))}unlistenImage_(){this.unlisten_&&(this.unlisten_(),this.unlisten_=null)}disposeInternal(){this.unlistenImage_(),this.image_=null,super.disposeInternal()}},Z8=class{constructor(e,t,n,r){this.minX=e,this.maxX=t,this.minY=n,this.maxY=r}contains(e){return this.containsXY(e[1],e[2])}containsTileRange(e){return this.minX<=e.minX&&e.maxX<=this.maxX&&this.minY<=e.minY&&e.maxY<=this.maxY}containsXY(e,t){return this.minX<=e&&e<=this.maxX&&this.minY<=t&&t<=this.maxY}equals(e){return this.minX==e.minX&&this.minY==e.minY&&this.maxX==e.maxX&&this.maxY==e.maxY}extend(e){e.minXthis.maxX&&(this.maxX=e.maxX),e.minYthis.maxY&&(this.maxY=e.maxY)}getHeight(){return this.maxY-this.minY+1}getSize(){return[this.getWidth(),this.getHeight()]}getWidth(){return this.maxX-this.minX+1}intersects(e){return this.minX<=e.maxX&&this.maxX>=e.minX&&this.minY<=e.maxY&&this.maxY>=e.minY}};function Y8(e,t,n,r,i){return void 0!==i?(i.minX=e,i.maxX=t,i.minY=n,i.maxY=r,i):new Z8(e,t,n,r)}var X8=[];function J8(e,t,n,r,i){e.beginPath(),e.moveTo(0,0),e.lineTo(t,n),e.lineTo(r,i),e.closePath(),e.save(),e.clip(),e.fillRect(0,0,Math.max(t,r)+1,Math.max(n,i)),e.restore()}function Q8(e,t){return Math.abs(e[4*t]-210)>2||Math.abs(e[4*t+3]-191.25)>2}function e7(e,t,n,r){const i=fZ(n,t,e);let s=sZ(t,r,n);const o=t.getMetersPerUnit();void 0!==o&&(s*=o);const a=e.getMetersPerUnit();void 0!==a&&(s/=a);const l=e.getExtent();if(!l||bG(l,i)){const t=sZ(e,s,i)/s;isFinite(t)&&t>0&&(s/=t)}return s}function t7(e,t,n,r,i,s,o,a,l,c,u,h,d,p){const f=BY(Math.round(n*e),Math.round(n*t),X8);if(h||(f.imageSmoothingEnabled=!1),0===l.length)return f.canvas;function g(e){return Math.round(e*n)/n}f.scale(n,n),f.globalCompositeOperation="lighter";const m=[1/0,1/0,-1/0,-1/0];let y;l.forEach(function(e){TG(m,e.extent)});const v=n/r,b=(h?1:1+Math.pow(2,-24))/v;if(!d||1!==l.length||0!==c){if(y=BY(Math.round(WG(m)*v),Math.round(UG(m)*v),X8),h||(y.imageSmoothingEnabled=!1),i&&p){const e=(i[0]-m[0])*v,t=-(i[3]-m[3])*v,n=WG(i)*v,r=UG(i)*v;y.rect(e,t,n,r),y.clip()}l.forEach(function(e){if(e.image.width>0&&e.image.height>0){if(e.clipExtent){y.save();const t=(e.clipExtent[0]-m[0])*v,n=-(e.clipExtent[3]-m[3])*v,r=WG(e.clipExtent)*v,i=UG(e.clipExtent)*v;y.rect(h?t:Math.round(t),h?n:Math.round(n),h?r:Math.round(t+r)-Math.round(t),h?i:Math.round(n+i)-Math.round(n)),y.clip()}const t=(e.extent[0]-m[0])*v,n=-(e.extent[3]-m[3])*v,r=WG(e.extent)*v,i=UG(e.extent)*v;y.drawImage(e.image,c,c,e.image.width-2*c,e.image.height-2*c,h?t:Math.round(t),h?n:Math.round(n),h?r:Math.round(t+r)-Math.round(t),h?i:Math.round(n+i)-Math.round(n)),e.clipExtent&&y.restore()}})}const w=qG(o);return a.getTriangles().forEach(function(e){const t=e.source,n=e.target;let r=t[0][0],i=t[0][1],o=t[1][0],a=t[1][1],c=t[2][0],u=t[2][1];const d=g((n[0][0]-w[0])/s),p=g(-(n[0][1]-w[1])/s),v=g((n[1][0]-w[0])/s),_=g(-(n[1][1]-w[1])/s),x=g((n[2][0]-w[0])/s),C=g(-(n[2][1]-w[1])/s),S=r,k=i;r=0,i=0,o-=S,a-=k,c-=S,u-=k;const E=function(e){const t=e.length;for(let r=0;ri&&(i=t,n=o)}if(0===i)return null;const s=e[n];e[n]=e[r],e[r]=s;for(let o=r+1;o=0;r--){n[r]=e[r][t]/e[r][r];for(let i=r-1;i>=0;i--)e[i][t]-=e[i][r]*n[r]}return n}([[o,a,0,0,v-d],[c,u,0,0,x-d],[0,0,o,a,_-p],[0,0,c,u,C-p]]);if(!E)return;if(f.save(),f.beginPath(),function(){if(void 0===V8){const e=BY(6,6,X8);e.globalCompositeOperation="lighter",e.fillStyle="rgba(210, 0, 0, 0.75)",J8(e,4,5,4,0),J8(e,4,5,0,5);const t=e.getImageData(0,0,3,3).data;V8=Q8(t,0)||Q8(t,4)||Q8(t,8),qY(e),X8.push(e.canvas)}return V8}()||!h){f.moveTo(v,_);const e=4,t=d-v,n=p-_;for(let r=0;rkZ(o,fZ(e,this.targetProj_,this.sourceProj_)),function(e,t,n,r){const i=e.length;n=void 0!==n?n:2,r=r??n,t=void 0!==t?t:new Array(i);for(let s=0;s=o?e[s+n]:i[n]}return t}):pZ(this.targetProj_,this.sourceProj_);var c;this.transformInv_=function(e){const t=e[0]+"/"+e[1];return a[t]||(a[t]=l(e)),a[t]},this.maxSourceExtent_=r,this.errorThresholdSquared_=i*i,this.triangles_=[],this.wrapsXInSource_=!1,this.canWrapXInSource_=this.sourceProj_.canWrapX()&&!!r&&!!this.sourceProj_.getExtent()&&WG(r)>=WG(this.sourceProj_.getExtent()),this.sourceWorldWidth_=this.sourceProj_.getExtent()?WG(this.sourceProj_.getExtent()):null,this.targetWorldWidth_=this.targetProj_.getExtent()?WG(this.targetProj_.getExtent()):null;const u=qG(n),h=VG(n),d=NG(n),p=OG(n),f=this.transformInv_(u),g=this.transformInv_(h),m=this.transformInv_(d),y=this.transformInv_(p),v=10+(s?Math.max(0,Math.ceil(Math.log2(AG(n)/(s*s*256*256)))):0);if(this.addQuad_(u,h,d,p,f,g,m,y,v),this.wrapsXInSource_){let e=1/0;this.triangles_.forEach(function(t){e=Math.min(e,t.source[0][0],t.source[1][0],t.source[2][0])}),this.triangles_.forEach(t=>{if(Math.max(t.source[0][0],t.source[1][0],t.source[2][0])-e>this.sourceWorldWidth_/2){const n=[[t.source[0][0],t.source[0][1]],[t.source[1][0],t.source[1][1]],[t.source[2][0],t.source[2][1]]];n[0][0]-e>this.sourceWorldWidth_/2&&(n[0][0]-=this.sourceWorldWidth_),n[1][0]-e>this.sourceWorldWidth_/2&&(n[1][0]-=this.sourceWorldWidth_),n[2][0]-e>this.sourceWorldWidth_/2&&(n[2][0]-=this.sourceWorldWidth_);const r=Math.min(n[0][0],n[1][0],n[2][0]);Math.max(n[0][0],n[1][0],n[2][0])-r.5&&u<1;let p=!1;if(l>0&&(this.targetProj_.isGlobal()&&this.targetWorldWidth_&&(p=WG(gG([e,t,n,r]))/this.targetWorldWidth_>.25||p),!d&&this.sourceProj_.isGlobal()&&u&&(p=u>.25||p)),!p&&this.maxSourceExtent_&&isFinite(c[0])&&isFinite(c[1])&&isFinite(c[2])&&isFinite(c[3])&&!HG(c,this.maxSourceExtent_))return;let f=0;if(!(p||isFinite(i[0])&&isFinite(i[1])&&isFinite(s[0])&&isFinite(s[1])&&isFinite(o[0])&&isFinite(o[1])&&isFinite(a[0])&&isFinite(a[1])))if(l>0)p=!0;else if(f=(isFinite(i[0])&&isFinite(i[1])?0:8)+(isFinite(s[0])&&isFinite(s[1])?0:4)+(isFinite(o[0])&&isFinite(o[1])?0:2)+(isFinite(a[0])&&isFinite(a[1])?0:1),1!=f&&2!=f&&4!=f&&8!=f)return;if(l>0){if(!p){const t=[(e[0]+n[0])/2,(e[1]+n[1])/2],r=this.transformInv_(t);let s;s=d?(aG(i[0],h)+aG(o[0],h))/2-aG(r[0],h):(i[0]+o[0])/2-r[0];const a=(i[1]+o[1])/2-r[1];p=s*s+a*a>this.errorThresholdSquared_}if(p){if(Math.abs(e[0]-n[0])<=Math.abs(e[1]-n[1])){const c=[(t[0]+n[0])/2,(t[1]+n[1])/2],u=this.transformInv_(c),h=[(r[0]+e[0])/2,(r[1]+e[1])/2],d=this.transformInv_(h);this.addQuad_(e,t,c,h,i,s,u,d,l-1),this.addQuad_(h,c,n,r,d,u,o,a,l-1)}else{const c=[(e[0]+t[0])/2,(e[1]+t[1])/2],u=this.transformInv_(c),h=[(n[0]+r[0])/2,(n[1]+r[1])/2],d=this.transformInv_(h);this.addQuad_(e,c,h,r,i,u,d,a,l-1),this.addQuad_(c,t,n,h,u,s,o,d,l-1)}return}}if(d){if(!this.canWrapXInSource_)return;this.wrapsXInSource_=!0}11&f||this.addTriangle_(e,n,r,i,o,a),14&f||this.addTriangle_(e,n,t,i,o,s),f&&(13&f||this.addTriangle_(t,r,e,s,a,i),7&f||this.addTriangle_(t,r,n,s,a,o))}calculateSourceExtent(){const e=[1/0,1/0,-1/0,-1/0];return this.triangles_.forEach(function(t){const n=t.source;LG(e,n[0]),LG(e,n[1]),LG(e,n[2])}),e}getTriangles(){return this.triangles_}},r7=class extends $8{constructor(e,t,n,r,i,s,o,a,l,c,u,h){super(i,0,h),this.renderEdges_=void 0!==u&&u,this.pixelRatio_=o,this.gutter_=a,this.canvas_=null,this.sourceTileGrid_=t,this.targetTileGrid_=r,this.wrappedTileCoord_=s||i,this.sourceTiles_=[],this.sourcesListenerKeys_=null,this.sourceZ_=0,this.clipExtent_=e.canWrapX()?e.getExtent():void 0;const d=r.getTileCoordExtent(this.wrappedTileCoord_),p=this.targetTileGrid_.getExtent();let f=this.sourceTileGrid_.getExtent();const g=p?BG(d,p):d;if(0===AG(g))return void(this.state=4);const m=e.getExtent();m&&(f=f?BG(f,m):m);const y=r.getResolution(this.wrappedTileCoord_[0]),v=function(e,t,n,r){let i=e7(e,t,FG(n),r);return(!isFinite(i)||i<=0)&&MG(n,function(n){return i=e7(e,t,n,r),isFinite(i)&&i>0}),i}(e,n,g,y);if(!isFinite(v)||v<=0)return void(this.state=4);const b=void 0!==c?c:.5;if(this.triangulation_=new n7(e,n,g,f,v*b,y),0===this.triangulation_.getTriangles().length)return void(this.state=4);this.sourceZ_=t.getZForResolution(v);let w=this.triangulation_.calculateSourceExtent();if(f&&(e.canWrapX()?(w[1]=nG(w[1],f[1],f[3]),w[3]=nG(w[3],f[1],f[3])):w=BG(w,f)),AG(w)){let n=0,r=0;e.canWrapX()&&(n=WG(m),r=Math.floor((w[0]-m[0])/n)),YG(w.slice(),e,!0).forEach(e=>{const i=t.getTileRangeForExtentAndZ(e,this.sourceZ_);for(let t=i.minX;t<=i.maxX;t++)for(let e=i.minY;e<=i.maxY;e++){const i=r*n;this.sourceTiles_.push({getTile:()=>l(this.sourceZ_,t,e,o),offset:i})}++r}),0===this.sourceTiles_.length&&(this.state=4)}else this.state=4}getImage(){return this.canvas_}reproject_(){const e=[];if(this.sourceTiles_.forEach(t=>{const n=t.tile;if(n&&2==n.getState()){const r=this.sourceTileGrid_.getTileCoordExtent(n.tileCoord);r[0]+=t.offset,r[2]+=t.offset;const i=this.clipExtent_?.slice();i&&(i[0]+=t.offset,i[2]+=t.offset),e.push({extent:r,clipExtent:i,image:n.getImage()})}}),this.sourceTiles_.length=0,0===e.length)this.state=3;else{const t=this.wrappedTileCoord_[0],n=this.targetTileGrid_.getTileSize(t),r="number"==typeof n?n:n[0],i="number"==typeof n?n:n[1],s=this.targetTileGrid_.getResolution(t),o=this.sourceTileGrid_.getResolution(this.sourceZ_),a=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_);this.canvas_=t7(r,i,this.pixelRatio_,o,this.sourceTileGrid_.getExtent(),s,a,this.triangulation_,e,this.gutter_,this.renderEdges_,this.interpolate),this.state=2}this.changed()}load(){for(const e of this.sourceTiles_)e.tile=e.getTile();if(0==this.state){this.state=1,this.changed();let e=0;this.sourcesListenerKeys_=[],this.sourceTiles_.forEach(({tile:t})=>{const n=t.getState();if(0==n||1==n){e++;const n=JW(t,tH,()=>{const r=t.getState();2!=r&&3!=r&&4!=r||(eH(n),e--,0===e&&(this.unlistenSources_(),this.reproject_()))});this.sourcesListenerKeys_.push(n)}}),0===e?setTimeout(this.reproject_.bind(this),0):this.sourceTiles_.forEach(function({tile:e}){0==e.getState()&&e.load()})}}unlistenSources_(){this.sourcesListenerKeys_.forEach(eH),this.sourcesListenerKeys_=null}release(){this.canvas_&&(qY(this.canvas_.getContext("2d")),X8.push(this.canvas_),this.canvas_=null),this.sourceTiles_.length=0,super.release()}},i7=class{constructor(e){this.highWaterMark=void 0!==e?e:2048,this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null}deleteOldest(){const e=this.pop();e instanceof lH&&e.dispose()}canExpireCache(){return this.highWaterMark>0&&this.getCount()>this.highWaterMark}expireCache(e){for(;this.canExpireCache();)this.deleteOldest()}clear(){for(;this.oldest_;)this.deleteOldest()}containsKey(e){return this.entries_.hasOwnProperty(e)}forEach(e){let t=this.oldest_;for(;t;)e(t.value_,t.key_,this),t=t.newer}get(e,t){const n=this.entries_[e];return XH(void 0!==n,"Tried to get a value for a key that does not exist in the cache"),n===this.newest_||(n===this.oldest_?(this.oldest_=this.oldest_.newer,this.oldest_.older=null):(n.newer.older=n.older,n.older.newer=n.newer),n.newer=null,n.older=this.newest_,this.newest_.newer=n,this.newest_=n),n.value_}remove(e){const t=this.entries_[e];return XH(void 0!==t,"Tried to get a value for a key that does not exist in the cache"),t===this.newest_?(this.newest_=t.older,this.newest_&&(this.newest_.newer=null)):t===this.oldest_?(this.oldest_=t.newer,this.oldest_&&(this.oldest_.older=null)):(t.newer.older=t.older,t.older.newer=t.newer),delete this.entries_[e],--this.count_,t.value_}getCount(){return this.count_}getKeys(){const e=new Array(this.count_);let t,n=0;for(t=this.newest_;t;t=t.older)e[n++]=t.key_;return e}getValues(){const e=new Array(this.count_);let t,n=0;for(t=this.newest_;t;t=t.older)e[n++]=t.value_;return e}peekLast(){return this.oldest_.value_}peekLastKey(){return this.oldest_.key_}peekFirstKey(){return this.newest_.key_}peek(e){return this.entries_[e]?.value_}pop(){const e=this.oldest_;return delete this.entries_[e.key_],e.newer&&(e.newer.older=null),this.oldest_=e.newer,this.oldest_||(this.newest_=null),--this.count_,e.value_}replace(e,t){this.get(e),this.entries_[e].value_=t}set(e,t){XH(!(e in this.entries_),"Tried to set a value for a key that is used already");const n={key_:e,newer:null,older:this.newest_,value_:t};this.newest_?this.newest_.newer=n:this.oldest_=n,this.newest_=n,this.entries_[e]=n,++this.count_}setSize(e){this.highWaterMark=e}};function s7(e,t,n,r){return void 0!==r?(r[0]=e,r[1]=t,r[2]=n,r):[e,t,n]}function o7(e,t,n,r,i){return`${kH(e)},${t},${function(e,t,n){return e+"/"+t+"/"+n}(n,r,i)}`}function a7(e,t,n){if(!(n in e))return e[n]=new Set([t]),!0;const r=e[n],i=r.has(t);return i||r.add(t),!i}function l7(e,t,n){const r=e[n];return!!r&&r.delete(t)}function c7(e,t){const n=e.layerStatesArray[e.layerIndex];n.extent&&(t=BG(t,vZ(n.extent,e.viewState.projection)));const r=n.layer.getRenderSource();if(!r.getWrapX()){const n=r.getTileGridForProjection(e.viewState.projection).getExtent();n&&(t=BG(t,n))}return t}var u7=class extends q2{constructor(e,t){super(e),t=t||{},this.extentChanged=!0,this.renderComplete=!1,this.renderedExtent_=null,this.renderedPixelRatio,this.renderedProjection=null,this.renderedTiles=[],this.renderedSourceRevision_,this.tempExtent=[1/0,1/0,-1/0,-1/0],this.tempTileRange_=new Z8(0,0,0,0),this.tempTileCoord_=s7(0,0,0);const n=void 0!==t.cacheSize?t.cacheSize:512;this.tileCache_=new i7(n),this.sourceTileCache_=null,this.layerExtent=null,this.maxStaleKeys=.5*n}getTileCache(){return this.tileCache_}getSourceTileCache(){return this.sourceTileCache_||(this.sourceTileCache_=new i7(512)),this.sourceTileCache_}getOrCreateTile(e,t,n,r){const i=this.tileCache_,s=this.getLayer().getSource(),o=o7(s,s.getKey(),e,t,n);let a;if(i.containsKey(o))a=i.get(o);else{const l=r.viewState.projection,c=s.getProjection();if(a=s.getTile(e,t,n,r.pixelRatio,l,!c||uZ(c,l)?void 0:this.getSourceTileCache()),!a)return null;i.set(o,a)}return a}getTile(e,t,n,r){return this.getOrCreateTile(e,t,n,r)||null}getData(e){const t=this.frameState;if(!t)return null;const n=this.getLayer(),r=kZ(t.pixelToCoordinateTransform,e.slice()),i=n.getExtent();if(i&&!bG(i,r))return null;const s=t.viewState,o=n.getRenderSource(),a=o.getTileGridForProjection(s.projection),l=o.getTilePixelRatio(t.pixelRatio);for(let c=a.getZForResolution(s.resolution);c>=a.getMinZoom();--c){const e=a.getTileCoordForCoordAndZ(r,c),n=this.getTile(c,e[1],e[2],t);if(!n||2!==n.getState())continue;const i=a.getOrigin(c),u=UJ(a.getTileSize(c)),h=a.getResolution(c);let d;if(n instanceof K8||n instanceof r7)d=n.getImage();else{if(!(n instanceof G8))continue;if(d=q8(n.getData()),!d)continue}const p=Math.floor(l*((r[0]-i[0])/h-e[1]*u[0])),f=Math.floor(l*((i[1]-r[1])/h-e[2]*u[1])),g=Math.round(l*o.getGutterForProjection(s.projection));return this.getImageData(d,p+g,f+g)}return null}prepareFrame(e){this.renderedProjection?e.viewState.projection!==this.renderedProjection&&(this.tileCache_.clear(),this.renderedProjection=e.viewState.projection):this.renderedProjection=e.viewState.projection;const t=this.getLayer().getSource();if(!t)return!1;const n=t.getRevision();return this.renderedSourceRevision_?this.renderedSourceRevision_!==n&&(this.renderedSourceRevision_=n,this.renderedSourceKey_===t.getKey()&&(this.tileCache_.clear(),this.sourceTileCache_?.clear())):this.renderedSourceRevision_=n,!0}enqueueTilesForNextExtent(){return!0}enqueueTiles(e,t,n,r,i){const s=e.viewState,o=this.getLayer(),a=o.getRenderSource(),l=a.getTileGridForProjection(s.projection),c=kH(a);c in e.wantedTiles||(e.wantedTiles[c]={});const u=e.wantedTiles[c],h=o.getMapInternal(),d=Math.max(n-i,l.getMinZoom(),l.getZForResolution(Math.min(o.getMaxResolution(),h?h.getView().getResolutionForZoom(Math.max(o.getMinZoom(),0)):l.getResolution(0)),a.zDirection)),p=s.rotation,f=p?jG(s.center,s.resolution,p,e.size):void 0;for(let g=n;g>=d;--g){const n=l.getTileRangeForExtentAndZ(t,g,this.tempTileRange_),i=l.getResolution(g);for(let t=n.minX;t<=n.maxX;++t)for(let s=n.minY;s<=n.maxY;++s){if(p&&!l.tileCoordIntersectsViewport([g,t,s],f))continue;const n=this.getTile(g,t,s,e);if(!n)continue;if(!a7(r,n,g))continue;const o=n.getKey();if(u[o]=!0,0===n.getState()&&!e.tileQueue.isKeyQueued(o)){const r=s7(g,t,s,this.tempTileCoord_);e.tileQueue.enqueue([n,c,l.getTileCoordCenter(r),i])}}}}findStaleTile_(e,t){const n=this.tileCache_,r=e[0],i=e[1],s=e[2],o=this.getStaleKeys();for(let a=0;a0&&setTimeout(()=>{this.enqueueTiles(e,x,h-1,w,_-1)},0),!(h in w))return this.container;const C=kH(this),S=e.time;for(const P of w[h]){const t=P.getState();if(4===t)continue;const n=P.tileCoord;if(2===t&&1===P.getAlpha(C,S)){P.endTransition(C);continue}if(3!==t&&(this.renderComplete=!1),this.findStaleTile_(n,w)){l7(w,P,h),e.animate=!0;continue}if(this.findAltTiles_(u,n,h+1,w))continue;const r=u.getMinZoom();for(let e=h-1;e>=r&&!this.findAltTiles_(u,n,e,w);--e);}const k=d/s*a/f,E=this.getRenderContext(e);RZ(this.tempTransform,g/2,m/2,k,k,0,-g/2,-m/2),this.layerExtent&&this.clipUnrotated(E,e,this.layerExtent),c.getInterpolate()||(E.imageSmoothingEnabled=!1),this.preRender(E,e);const R=Object.keys(w).map(Number);R.sort(cH);const T=[],L=[],I=[];for(let P=R.length-1;P>=0;--P){const t=R[P],n=c.getTilePixelSize(t,a,i),r=u.getResolution(t)/d,s=n[0]*r*k,o=n[1]*r*k,l=u.getTileCoordForCoordAndZ(qG(b),t),p=u.getTileCoordExtent(l),g=kZ(this.tempTransform,[f*(p[0]-b[0])/d,f*(b[3]-p[3])/d]),m=f*c.getGutterForProjection(i);for(const i of w[t]){if(2!==i.getState())continue;const n=i.tileCoord,r=l[1]-n[1],a=Math.round(g[0]-(r-1)*s),u=l[2]-n[2],d=Math.round(g[1]-(u-1)*o),p=Math.round(g[0]-r*s),f=Math.round(g[1]-u*o),y=a-p,v=d-f,b=t===h;if(b&&i.inTransition(C)){I.push({tile:i,x:p,y:f,w:y,h:v,gutter:m}),this.renderedTiles.unshift(i),this.updateUsedTiles(e.usedTiles,c,i);continue}const w=[p,f,p+y,f+v],_=[];for(let e=0,i=T.length;e0&&(x=XG(w,_)),T.push(w),L.push(t),this.drawTile(i,e,p,f,y,v,m,b,x),this.renderedTiles.unshift(i),this.updateUsedTiles(e.usedTiles,c,i)}}for(let P=0,M=I.length;P{const n=kH(c),r=t.wantedTiles[n],i=r?Object.keys(r).length:0;this.updateCacheSize(i),this.tileCache_.expireCache(),this.sourceTileCache_?.expireCache()};e.postRenderFunctions.push(t)}return this.container}updateCacheSize(e){this.tileCache_.highWaterMark=Math.max(this.tileCache_.highWaterMark,2*e)}drawTile(e,t,n,r,i,s,o,a,l){let c;if(e instanceof G8){if(c=q8(e.getData()),!c)throw new Error("Rendering array data is not yet supported")}else c=this.getTileImage(e);if(!c)return;const u=this.getRenderContext(t),h=kH(this),d=t.layerStatesArray[t.layerIndex],p=d.opacity*(a?e.getAlpha(h,t.time):1),f=p!==u.globalAlpha;f&&(u.save(),u.globalAlpha=p);const g=c.width-2*o,m=c.height-2*o;if(l){const e=g/i,t=m/s;for(let i=0,s=l.length;ie.value):null;let y;e:for(let v=p.length-1;v>=0;--v){const t=p[v];if(!HG(l.getTileCoordExtent(t.wrappedTileCoord),u))continue;const r=t.executorGroups[f];for(let i=0,a=r.length;i{const n=this.getLayer(),r=n.getSource(),i=this.renderedProjection,s=i.getExtent(),o=this.renderedResolution,a=r.getTileGridForProjection(i),l=kZ(this.renderedPixelToCoordinateTransform_,e.slice()),c=a.getTileCoordForCoordAndResolution(l,o).toString(),u=this.renderedTiles.find(e=>e.tileCoord.toString()===c&&2===e.getState());if(!u||u.loadingSourceTiles>0)return void t([]);r.getWrapX()&&i.canWrapX()&&!wG(s,a.getTileCoordExtent(u.tileCoord))&&eK(l,i);const h=kH(n),d=qG(a.getTileCoordExtent(u.wrappedTileCoord)),p=[(l[0]-d[0])/o,(d[1]-l[1])/o],f=u.getSourceTiles().reduce((e,t)=>e.concat(t.getFeatures()),[]);let g=u.hitDetectionImageData[h];if(!g){const e=UJ(a.getTileSize(a.getZForResolution(o,r.zDirection))),t=this.renderedRotation_;g=M2(e,[this.getRenderTransform(a.getTileCoordCenter(u.wrappedTileCoord),o,0,P2,e[0]*P2,e[1]*P2,0)],f,n.getStyleFunction(),a.getTileCoordExtent(u.wrappedTileCoord),u.getReplayState(n).renderedResolution,t),u.hitDetectionImageData[h]=g}t(A2(p,f,g))})}getFeaturesInExtent(e){const t=[],n=this.getTileCache();if(0===n.getCount())return t;const r=this.getLayer().getSource().getTileGridForProjection(this.frameState.viewState.projection),i=r.getZForResolution(this.renderedResolution),s={};return n.forEach(n=>{if(n.tileCoord[0]!==i||2!==n.getState())return;const o=n.getSourceTiles();for(let i=0,a=o.length;i=0;--r)n[r].execute(this.context,o,this.getTileRenderTransform(t,e),e.viewState.rotation,s,S2,l)}n.globalAlpha=r}renderDeferredInternal(e){const t=this.renderedTiles,n=kH(this.getLayer()),r=t.reduce((e,t,r)=>(t.executorGroups[n].forEach(t=>e.push({executorGroup:t,index:r})),e),[]),i=r.map(({executorGroup:e})=>e.getDeferredZIndexContexts()),s={};for(let a=0,l=r.length;a{i.forEach((t,n)=>{t[e]&&(t[e].forEach(e=>{const{executorGroup:t,index:i}=r[n],s=t.getRenderedContext(),o=s.globalAlpha;s.globalAlpha=this.renderedOpacity_;const a=this.tileClipContexts_[i];a&&a.draw(s),e.draw(s),a&&s.restore(),s.globalAlpha=o,e.clear()}),t[e].length=0)})}),this.layerExtent&&this.context.restore()}getTileRenderTransform(e,t){const n=t.pixelRatio,r=t.viewState,i=r.center,s=r.resolution,o=r.rotation,a=t.size,l=Math.round(a[0]*n),c=Math.round(a[1]*n),u=this.getLayer().getSource().getTileGridForProjection(t.viewState.projection),h=e.tileCoord,d=u.getTileCoordExtent(e.wrappedTileCoord),p=u.getTileCoordExtent(h,this.tempExtent)[0]-d[0];return CZ(EZ(this.inversePixelTransform.slice(),1/n,1/n),this.getRenderTransform(i,s,o,n,l,c,p))}clipTileContext_(e,t,n,r,i,s){const o=[];for(let l=0,c=n.length;l!S2.includes(e)):m7[s],c=t.viewState,u=c.rotation;this.layerExtent&&this.clipUnrotated(e,t,this.layerExtent);const h=i.getSource(),d=h.getTileGridForProjection(c.projection).getZForResolution(c.resolution,h.zDirection),p=this.renderedTiles,f=[],g=[],m=[],y=kH(i);let v=!0;for(let b=p.length-1;b>=0;--b){const n=p[b];v=v&&!n.getReplayState(i).dirty;const s=n.executorGroups[y].filter(e=>e.hasExecutors(l));if(0===s.length)continue;const o=this.getTileRenderTransform(n,t),c=n.tileCoord[0];let h=!1;const w=s[0].getClipCoords(bZ);let _,x=e;if(w){const e=[w[0],w[1],w[4],w[5]];_=new h2,x=_.getContext(),d!==c&&(h=this.clipTileContext_(x,e,f,g,c,o)),f.push(e),g.push(c)}for(let i=0,d=s.length;ivoid 0!==e)),this.minZoom=void 0!==t?t:0,this.resolutions_=n,XH(function(e){const t=((e,t)=>t-e)||cH;return e.every(function(n,r){if(0===r)return!0;const i=t(e[r-1],n);return!(i>0||0===i)})}(this.resolutions_),"`resolutions` must be sorted in descending order"),!e.origins)for(let s=0,o=this.resolutions_.length-1;s{const n=new Z8(Math.min(0,e[0]),Math.max(e[0]-1,-1),Math.min(0,e[1]),Math.max(e[1]-1,-1));if(i){const e=this.getTileRangeForExtentAndZ(i,t);n.minX=Math.max(e.minX,n.minX),n.maxX=Math.min(e.maxX,n.maxX),n.minY=Math.max(e.minY,n.minY),n.maxY=Math.min(e.maxY,n.maxY)}return n}):i&&this.calculateTileRanges_(i)}forEachTileCoord(e,t,n){const r=this.getTileRangeForExtentAndZ(e,t);for(let i=r.minX,s=r.maxX;i<=s;++i)for(let e=r.minY,o=r.maxY;e<=o;++e)n([t,i,e])}forEachTileCoordParentTileRange(e,t,n,r){let i,s,o,a=null,l=e[0]-1;for(2===this.zoomFactor_?(s=e[1],o=e[2]):a=this.getTileCoordExtent(e,r);l>=this.minZoom;){if(void 0!==s&&void 0!==o?(s=Math.floor(s/2),o=Math.floor(o/2),i=Y8(s,s,o,o,n)):i=this.getTileRangeForExtentAndZ(a,l,n),t(l,i))return!0;--l}return!1}getExtent(){return this.extent_}getMaxZoom(){return this.maxZoom}getMinZoom(){return this.minZoom}getOrigin(e){return this.origin_?this.origin_:this.origins_[e]}getOrigins(){return this.origins_}getResolution(e){return this.resolutions_[e]}getResolutions(){return this.resolutions_}getTileCoordChildTileRange(e,t,n){if(e[0]this.maxZoom||t0?r:Math.max(s/n[0],i/n[1]);const o=t+1,a=new Array(o);for(let l=0;ln||n>t.getMaxZoom())return!1;const s=t.getFullTileRange(n);return!s||s.containsXY(r,i)}(e,r)?e:null}clear(){}refresh(){this.clear(),super.refresh()}},M7=class extends wH{constructor(e,t){super(e),this.tile=t}},A7=class e extends P7{constructor(t){super({attributions:t.attributions,cacheSize:t.cacheSize,projection:t.projection,state:t.state,tileGrid:t.tileGrid,tilePixelRatio:t.tilePixelRatio,wrapX:t.wrapX,transition:t.transition,interpolate:t.interpolate,key:t.key,attributionsCollapsible:t.attributionsCollapsible,zDirection:t.zDirection}),this.generateTileUrlFunction_=this.tileUrlFunction===e.prototype.tileUrlFunction,this.tileLoadFunction=t.tileLoadFunction,t.tileUrlFunction&&(this.tileUrlFunction=t.tileUrlFunction),this.urls=null,t.urls?this.setUrls(t.urls):t.url&&this.setUrl(t.url),this.tileLoadingKeys_={}}getTileLoadFunction(){return this.tileLoadFunction}getTileUrlFunction(){return Object.getPrototypeOf(this).tileUrlFunction===this.tileUrlFunction?this.tileUrlFunction.bind(this):this.tileUrlFunction}getUrls(){return this.urls}handleTileChange(e){const t=e.target,n=kH(t),r=t.getState();let i;1==r?(this.tileLoadingKeys_[n]=!0,i="tileloadstart"):n in this.tileLoadingKeys_&&(delete this.tileLoadingKeys_[n],i=3==r?"tileloaderror":2==r?"tileloadend":void 0),null!=i&&this.dispatchEvent(new M7(i,t))}setTileLoadFunction(e){this.tileLoadFunction=e,this.changed()}setTileUrlFunction(e,t){this.tileUrlFunction=e,void 0!==t?this.setKey(t):this.changed()}setUrl(e){const t=function(e){const t=[];let n=/\{([a-z])-([a-z])\}/.exec(e);if(n){const r=n[1].charCodeAt(0),i=n[2].charCodeAt(0);let s;for(s=r;s<=i;++s)t.push(e.replace(n[0],String.fromCharCode(s)));return t}if(n=/\{(\d+)-(\d+)\}/.exec(e),n){const r=parseInt(n[2],10);for(let i=parseInt(n[1],10);i<=r;i++)t.push(e.replace(n[0],i.toString()));return t}return t.push(e),t}(e);this.urls=t,this.setUrls(t)}setUrls(e){this.urls=e;const t=e.join("\n");this.generateTileUrlFunction_?this.setTileUrlFunction(I7(e,this.tileGrid),t):this.setKey(t)}tileUrlFunction(e,t,n){}},O7=class extends A7{constructor(e){super({attributions:e.attributions,cacheSize:e.cacheSize,projection:e.projection,state:e.state,tileGrid:e.tileGrid,tileLoadFunction:e.tileLoadFunction?e.tileLoadFunction:N7,tilePixelRatio:e.tilePixelRatio,tileUrlFunction:e.tileUrlFunction,url:e.url,urls:e.urls,wrapX:e.wrapX,transition:e.transition,interpolate:void 0===e.interpolate||e.interpolate,key:e.key,attributionsCollapsible:e.attributionsCollapsible,zDirection:e.zDirection}),this.crossOrigin=void 0!==e.crossOrigin?e.crossOrigin:null,this.referrerPolicy=e.referrerPolicy,this.tileClass=void 0!==e.tileClass?e.tileClass:K8,this.tileGridForProjection={},this.reprojectionErrorThreshold_=e.reprojectionErrorThreshold,this.renderReprojectionEdges_=!1}getGutterForProjection(e){return this.getProjection()&&e&&!uZ(this.getProjection(),e)?0:this.getGutter()}getGutter(){return 0}getKey(){let e=super.getKey();return this.getInterpolate()||(e+=":disable-interpolation"),e}getTileGridForProjection(e){const t=this.getProjection();if(this.tileGrid&&(!t||uZ(t,e)))return this.tileGrid;const n=kH(e);return n in this.tileGridForProjection||(this.tileGridForProjection[n]=_7(e)),this.tileGridForProjection[n]}createTile_(e,t,n,r,i,s){const o=[e,t,n],a=this.getTileCoordForTileUrlFunction(o,i),l=a?this.tileUrlFunction(a,r,i):void 0,c=new this.tileClass(o,void 0!==l?0:4,void 0!==l?l:"",{crossOrigin:this.crossOrigin,referrerPolicy:this.referrerPolicy},this.tileLoadFunction,this.tileOptions);return c.key=s,c.addEventListener(tH,this.handleTileChange.bind(this)),c}getTile(e,t,n,r,i,s){const o=this.getProjection();if(!o||!i||uZ(o,i))return this.getTileInternal(e,t,n,r,o||i);const a=[e,t,n],l=this.getKey(),c=this.getTileGridForProjection(o),u=this.getTileGridForProjection(i),h=this.getTileCoordForTileUrlFunction(a,i),d=new r7(o,c,i,u,a,h,this.getTilePixelRatio(r),this.getGutter(),(e,t,n,r)=>this.getTileInternal(e,t,n,r,o,s),this.reprojectionErrorThreshold_,this.renderReprojectionEdges_,this.tileOptions);return d.key=l,d}getTileInternal(e,t,n,r,i,s){const o=this.getKey(),a=o7(this,o,e,t,n);if(s&&s.containsKey(a))return s.get(a);const l=this.createTile_(e,t,n,r,i,o);return s?.set(a,l),l}setRenderReprojectionEdges(e){this.renderReprojectionEdges_!=e&&(this.renderReprojectionEdges_=e,this.changed())}setTileGridForProjection(e,t){const n=iZ(e);if(n){const e=kH(n);e in this.tileGridForProjection||(this.tileGridForProjection[e]=t)}}};function N7(e,t){if(zH){const n=e.getCrossOrigin();let r="same-origin",i="same-origin";"anonymous"===n||""===n?(r="cors",i="omit"):"use-credentials"===n&&(r="cors",i="include");const s={mode:r,credentials:i,referrerPolicy:e.getReferrerPolicy()};return void fetch(t,s).then(e=>{if(!e.ok)throw new Error(`HTTP ${e.status}`);return e.blob()}).then(e=>createImageBitmap(e)).then(t=>{const n=e.getImage();n.width=t.width,n.height=t.height,n.getContext("2d").drawImage(t,0,0),t.close?.(),n.dispatchEvent(new Event("load"))}).catch(()=>{e.getImage().dispatchEvent(new Event("error"))})}e.getImage().src=t}var F7=class extends O7{constructor(e){if(super({attributions:e.attributions,cacheSize:e.cacheSize,crossOrigin:e.crossOrigin,interpolate:e.interpolate,projection:iZ("EPSG:3857"),reprojectionErrorThreshold:e.reprojectionErrorThreshold,state:"loading",tileLoadFunction:e.tileLoadFunction,wrapX:void 0===e.wrapX||e.wrapX,transition:e.transition,zDirection:e.zDirection}),this.tileJSON_=null,this.tileSize_=e.tileSize,e.url)if(e.jsonp)!function(e,t,n){const r=document.createElement("script"),i="olc_"+kH(t);function s(){delete window[i],r.parentNode.removeChild(r)}r.async=!0,r.src=e+(e.includes("?")?"&":"?")+"callback="+i;const o=setTimeout(function(){s(),n&&n()},1e4);window[i]=function(e){clearTimeout(o),s(),t(e)},document.head.appendChild(r)}(e.url,this.handleTileJSONResponse.bind(this),this.handleTileJSONError.bind(this));else{const t=new XMLHttpRequest;t.addEventListener("load",this.onXHRLoad_.bind(this)),t.addEventListener("error",this.onXHRError_.bind(this)),t.open("GET",e.url),t.send()}else{if(!e.tileJSON)throw new Error("Either `url` or `tileJSON` options must be provided");this.handleTileJSONResponse(e.tileJSON)}}onXHRLoad_(e){const t=e.target;if(!t.status||t.status>=200&&t.status<300){let e;try{e=JSON.parse(t.responseText)}catch{return void this.handleTileJSONError()}this.handleTileJSONResponse(e)}else this.handleTileJSONError()}onXHRError_(e){this.handleTileJSONError()}getTileJSON(){return this.tileJSON_}handleTileJSONResponse(e){const t=iZ("EPSG:4326"),n=this.getProjection();let r;if(void 0!==e.bounds){const i=hZ(t,n);r=KG(e.bounds,i)}const i=S7(n),s=e.minzoom||0,o=x7({extent:i,maxZoom:e.maxzoom||22,minZoom:s,tileSize:this.tileSize_});if(this.tileGrid=o,this.tileUrlFunction=I7(e.tiles,o),e.attribution&&!this.getAttributions()){const t=void 0!==r?r:i;this.setAttributions(function(n){return HG(t,n.extent)?[e.attribution]:null})}this.tileJSON_=e,this.setState("ready")}handleTileJSONError(){this.setState("error")}},D7=[],z7=class extends $8{constructor(e,t,n,r,i){super(e,t,{transition:0}),this.context_=null,this.executorGroups={},this.loadingSourceTiles=0,this.hitDetectionImageData={},this.replayState_={},this.sourceTiles=[],this.errorTileKeys={},this.wantedResolution,this.getSourceTiles=r.bind(void 0,this),this.removeSourceTiles_=i,this.wrappedTileCoord=n}getContext(){return this.context_||(this.context_=BY(1,1,D7)),this.context_}hasContext(){return!!this.context_}getImage(){return this.hasContext()?this.getContext().canvas:null}getReplayState(e){const t=kH(e);return t in this.replayState_||(this.replayState_[t]={dirty:!1,renderedRenderOrder:null,renderedResolution:NaN,renderedPixelRatio:NaN,renderedRevision:-1,renderedTileResolution:NaN,renderedTileRevision:-1,renderedTileZ:-1}),this.replayState_[t]}load(){this.getSourceTiles()}release(){this.context_&&(qY(this.context_),D7.push(this.context_.canvas),this.context_=null),this.removeSourceTiles_(this),this.sourceTiles.length=0,super.release()}},j7=class extends $8{constructor(e,t,n,r,i,s){super(e,t,s),this.extent=null,this.format_=r,this.features_=null,this.loader_,this.projection=null,this.resolution,this.tileLoadFunction_=i,this.url_=n,this.key=n}getTileUrl(){return this.url_}getFormat(){return this.format_}getFeatures(){return this.features_}load(){0==this.state&&(this.setState(1),this.tileLoadFunction_(this,this.url_),this.loader_&&this.loader_(this.extent,this.resolution,this.projection))}onLoad(e,t){this.setFeatures(e)}onError(){this.setState(3)}setFeatures(e){this.features_=e,this.setState(2)}setLoader(e){this.loader_=e}},U7=class extends A7{constructor(e){const t=e.projection||"EPSG:3857",n=e.extent||S7(t),r=e.tileGrid||x7({extent:n,maxResolution:e.maxResolution,maxZoom:void 0!==e.maxZoom?e.maxZoom:22,minZoom:e.minZoom,tileSize:e.tileSize||512});super({attributions:e.attributions,attributionsCollapsible:e.attributionsCollapsible,cacheSize:e.cacheSize,interpolate:!0,projection:t,state:e.state,tileGrid:r,tileLoadFunction:e.tileLoadFunction?e.tileLoadFunction:B7,tileUrlFunction:e.tileUrlFunction,url:e.url,urls:e.urls,wrapX:void 0===e.wrapX||e.wrapX,transition:e.transition,zDirection:void 0===e.zDirection?1:e.zDirection}),this.format_=e.format?e.format:null,this.tileKeysBySourceTileUrl_={},this.sourceTiles_={},this.overlaps_=null==e.overlaps||e.overlaps,this.tileClass=e.tileClass?e.tileClass:j7,this.tileGrids_={}}getOverlaps(){return this.overlaps_}getSourceZ_(e,t,n){const r=this.projection,i=t&&r&&!uZ(t,r)?e/r.getMetersPerUnit()*t.getMetersPerUnit():e;return this.tileGrid.getZForResolution(i,n)}getSourceTiles(e,t,n,r){if(0===n.getState()){n.setState(1);const i=n.wrappedTileCoord,s=this.getTileGridForProjection(t);let o=s.getTileCoordExtent(i);const a=i[0],l=s.getResolution(a);mG(o,-l,o);const c=this.projection;t&&this.projection&&!uZ(t,c)&&(o=gZ(o,t,c));const u=this.tileGrid,h=u.getExtent();h&&BG(o,h,o);const d=this.getSourceZ_(l,t,this.zDirection),p=r||this.tileUrlFunction;u.forEachTileCoord(o,d,r=>{const i=p(r,e,t);this.sourceTiles_[i]||(this.sourceTiles_[i]=new this.tileClass(r,i?0:4,i,this.format_,this.tileLoadFunction));const s=this.sourceTiles_[i];n.sourceTiles.push(s),this.tileKeysBySourceTileUrl_[i]||(this.tileKeysBySourceTileUrl_[i]=[]),this.tileKeysBySourceTileUrl_[i].push(n.getKey());const o=s.getState();if(o<2){const e=t=>{this.handleTileChange(t);const r=s.getState();if(2===r||3===r){const t=s.getKey();t in n.errorTileKeys?2===s.getState()&&delete n.errorTileKeys[t]:n.loadingSourceTiles--,3===r?n.errorTileKeys[t]=!0:s.removeEventListener(tH,e),0===n.loadingSourceTiles&&n.setState(XW(n.errorTileKeys)?2:3)}};s.addEventListener(tH,e),n.loadingSourceTiles++}0===o&&(s.extent=u.getTileCoordExtent(r),s.projection=this.projection,s.resolution=u.getResolution(r[0]),s.load())}),n.loadingSourceTiles||n.setState(n.sourceTiles.some(e=>3===e.getState())?3:2)}return n.sourceTiles}removeSourceTiles(e){const t=e.getKey(),n=e.sourceTiles;for(let r=0,i=n.length;r{u=u&&!this.tileUrlFunction(e,r,l)})}const h=this.tileUrlFunction,d=new z7(s,u?4:0,o,e=>this.getSourceTiles(r,i,e,h),this.removeSourceTiles.bind(this));return d.key=this.getKey(),d}getTileGridForProjection(e){const t=e.getCode();let n=this.tileGrids_[t];if(!n){const r=this.projection;if(null!==r&&!uZ(r,e))return _7(e);const i=this.tileGrid,s=i.getResolutions().slice(),o=s.map(function(e,t){return i.getOrigin(t)}),a=s.map(function(e,t){return i.getTileSize(t)}),l=43;for(let e=s.length;eW7.pitch||0],"distance-from-center":[{kind:"number"},[],()=>W7.distanceFromCenter||0],"to-hsla":[{kind:"array",itemType:{kind:"number"},N:4},[{kind:"string"}],(e,[t])=>function(e){const t=e[0]/255,n=e[1]/255,r=e[2]/255,i=e[3],s=Math.max(t,n,r),o=Math.min(t,n,r),a=(s+o)/2;let l,c;if(s===o)l=0,c=0;else{const e=s-o;switch(c=a>.5?e/(2-s-o):e/(s+o),s){case t:l=(n-r)/e+(nt.evaluate(e)],"measure-light":[{kind:"number"},[{kind:"value"}],()=>1],config:[{kind:"value"},[{kind:"string"}],(e,[t])=>{const n=V7[t.evaluate(e)];return void 0===n?{}:n}]});var H7="https://api.mapbox.com";function G7(e){return 0!==e.indexOf("mapbox://")?"":e.slice(9)}function K7(e,t,n){const r=G7(e);if(!t||!r)return decodeURI(new URL(e,n).href);if(0!==r.indexOf("sprites/"))throw new Error(`unexpected sprites url: ${e}`);const i=r.slice(8);return`${H7}/styles/v1/${i}/sprite?access_token=${t}`}function Z7(e,t){const n=G7(e);if(!n||!t)return decodeURI(new URL(e,location.href).href);if(0!==n.indexOf("styles/"))throw new Error(`unexpected style url: ${e}`);const r=n.slice(7);return`${H7}/styles/v1/${r}?&access_token=${t}`}var Y7=["a","b","c","d"];function X7(e,t,n,r){const i=new URL(e,r||location.href),s=G7(e);return s?"mapbox.satellite"===s?[`https://api.mapbox.com/v4/${s}/{z}/{x}/{y}${window.devicePixelRatio>=1.5?"@2x":""}.webp?access_token=${t}`]:Y7.map(e=>`https://${e}.tiles.mapbox.com/v4/${s}/{z}/{x}/{y}.vector.pbf?access_token=${t}`):t?(i.searchParams.has(n)||i.searchParams.set(n,t),[decodeURI(i.href)]):[decodeURI(i.href)]}var J7=class extends q2{constructor(e){super(e),this.image=null,this.renderedSourceRevision_=0}getImage(){return this.image?this.image.getImage():null}prepareFrame(e){const t=e.layerStatesArray[e.layerIndex],n=e.pixelRatio,r=e.viewState,i=r.resolution,s=this.getLayer().getSource(),o=e.viewHints;let a=e.extent;if(void 0!==t.extent&&(a=BG(a,vZ(t.extent,r.projection))),!o[0]&&!o[1]&&!GG(a))if(s){this.getLayer().rendered||this.renderedSourceRevision_===s.getRevision()||(this.image=null),this.renderedSourceRevision_=s.getRevision();const e=r.projection,t=s.getImage(a,i,n,e);t&&(this.loadImage(t)?this.image=t:4===t.getState()&&(this.image=null))}else this.image=null;return!!this.image}getData(e){const t=this.frameState;if(!t)return null;const n=this.getLayer(),r=kZ(t.pixelToCoordinateTransform,e.slice()),i=n.getExtent();if(i&&!bG(i,r))return null;const s=this.image.getExtent(),o=this.image.getImage(),a=WG(s),l=Math.floor(o.width*((r[0]-s[0])/a));if(l<0||l>=o.width)return null;const c=UG(s),u=Math.floor(o.height*((s[3]-r[1])/c));return u<0||u>=o.height?null:this.getImageData(o,l,u)}renderFrame(e,t){const n=this.image,r=n.getExtent(),i=n.getResolution(),[s,o]=Array.isArray(i)?i:[i,i],a=n.getPixelRatio(),l=e.layerStatesArray[e.layerIndex],c=e.pixelRatio,u=e.viewState,h=u.center,d=u.resolution,p=c*s/(d*a),f=c*o/(d*a);this.prepareContainer(e,t);const g=this.context.canvas.width,m=this.context.canvas.height,y=this.getRenderContext(e);let v=!1,b=!0;if(l.extent){const t=vZ(l.extent,u.projection);b=HG(t,e.extent),v=b&&!wG(t,e.extent),v&&this.clipUnrotated(y,e,t)}const w=n.getImage(),_=RZ(this.tempTransform,g/2,m/2,p,f,0,a*(r[0]-h[0])/s,a*(h[1]-r[3])/o);this.renderedResolution=o*c/a;const x=w.width*_[0],C=w.height*_[3];if(this.getLayer().getSource().getInterpolate()||(y.imageSmoothingEnabled=!1),this.preRender(y,e),b&&x>=.5&&C>=.5){const e=_[4],t=_[5],n=l.opacity;1!==n&&(y.save(),y.globalAlpha=n),y.drawImage(w,0,0,+w.width,+w.height,e,t,x,C),1!==n&&y.restore()}return this.postRender(this.context,e),v&&y.restore(),y.imageSmoothingEnabled=!0,this.container}},Q7=class extends QX{constructor(e){super(e=e||{})}},e9=class extends Q7{constructor(e){super(e)}createRenderer(){return new J7(this)}getData(e){return super.getData(e)}},t9=class extends p0{constructor(e,t,n,r,i){super(e,t,n,void 0!==i?0:2),this.loader_=void 0!==i?i:null,this.canvas_=r,this.error_=null}getError(){return this.error_}handleLoad_(e){e?(this.error_=e,this.state=3):this.state=2,this.changed()}load(){0==this.state&&(this.state=1,this.changed(),this.loader_(this.handleLoad_.bind(this)))}getImage(){return this.canvas_}};function n9(e){return Array.isArray(e)?Math.min(...e):e}var r9=class extends p0{constructor(e,t,n,r,i,s,o){let a=e.getExtent();a&&e.canWrapX()&&(a=a.slice(),a[0]=-1/0,a[2]=1/0);let l=t.getExtent();l&&t.canWrapX()&&(l=l.slice(),l[0]=-1/0,l[2]=1/0);const c=l?BG(n,l):n,u=e7(e,t,FG(c),r),h=new n7(e,t,c,a,.5*u,r),d=h.calculateSourceExtent(),p=GG(d)?null:s(d,u,i),f=p?0:4,g=p?p.getPixelRatio():1;super(n,r,g,f),this.targetProj_=t,this.maxSourceExtent_=a,this.triangulation_=h,this.targetResolution_=r,this.targetExtent_=n,this.sourceImage_=p,this.sourcePixelRatio_=g,this.interpolate_=o,this.canvas_=null,this.sourceListenerKey_=null}disposeInternal(){1==this.state&&this.unlistenSource_(),super.disposeInternal()}getImage(){return this.canvas_}getProjection(){return this.targetProj_}reproject_(){const e=this.sourceImage_.getState();if(2==e){const e=WG(this.targetExtent_)/this.targetResolution_,t=UG(this.targetExtent_)/this.targetResolution_;this.canvas_=t7(e,t,this.sourcePixelRatio_,n9(this.sourceImage_.getResolution()),this.maxSourceExtent_,this.targetResolution_,this.targetExtent_,this.triangulation_,[{extent:this.sourceImage_.getExtent(),image:this.sourceImage_.getImage()}],0,void 0,this.interpolate_,!0)}this.state=e,this.changed()}load(){if(0==this.state){this.state=1,this.changed();const e=this.sourceImage_.getState();2==e||3==e?this.reproject_():(this.sourceListenerKey_=JW(this.sourceImage_,tH,()=>{const e=this.sourceImage_.getState();2!=e&&3!=e||(this.unlistenSource_(),this.reproject_())}),this.sourceImage_.load())}}unlistenSource_(){eH(this.sourceListenerKey_),this.sourceListenerKey_=null}},i9=class extends wH{constructor(e,t){super(e),this.image=t}},s9=class extends Q2{constructor(e){super({attributions:e.attributions,projection:e.projection,state:e.state,interpolate:void 0===e.interpolate||e.interpolate}),this.on,this.once,this.un,this.loader=e.loader||null,this.resolutions_=void 0!==e.resolutions?e.resolutions:null,this.reprojectedImage_=null,this.reprojectedRevision_=0,this.image=null,this.wantedExtent_,this.wantedResolution_,this.static_=!!e.loader&&0===e.loader.length,this.wantedProjection_=null}getResolutions(){return this.resolutions_}setResolutions(e){this.resolutions_=e}findNearestResolution(e){const t=this.getResolutions();return t&&(e=t[hH(t,e,0)]),e}getImage(e,t,n,r){const i=this.getProjection();if(!i||!r||uZ(i,r))return i&&(r=i),this.getImageInternal(e,t,n,r);if(this.reprojectedImage_){if(this.reprojectedRevision_==this.getRevision()&&uZ(this.reprojectedImage_.getProjection(),r)&&this.reprojectedImage_.getResolution()==t&&RG(this.reprojectedImage_.getExtent(),e))return this.reprojectedImage_;this.reprojectedImage_.dispose(),this.reprojectedImage_=null}return this.reprojectedImage_=new r9(i,r,e,t,n,(e,t,n)=>this.getImageInternal(e,t,n,i),this.getInterpolate()),this.reprojectedRevision_=this.getRevision(),this.reprojectedImage_}getImageInternal(e,t,n,r){if(this.loader){const i=function(e,t,n){const r=t/n,i=FG(e),s=hG(WG(e)/r,4),o=hG(UG(e)/r,4);return zG(i,r,0,[s+2*hG(0*s/2,4),o+2*hG(0*o/2,4)])}(e,t,n),s=this.findNearestResolution(t);if(this.image&&(this.static_||this.wantedProjection_===r&&(this.wantedExtent_&&wG(this.wantedExtent_,i)||wG(this.image.getExtent(),i))&&(this.wantedResolution_&&n9(this.wantedResolution_)===s||n9(this.image.getResolution())===s)))return this.image;this.wantedProjection_=r,this.wantedExtent_=i,this.wantedResolution_=s,this.image=new p0(i,s,n,this.loader),this.image.addEventListener(tH,this.handleImageChange.bind(this))}return this.image}handleImageChange(e){const t=e.target;let n;switch(t.getState()){case 1:this.loading=!0,n="imageloadstart";break;case 2:this.loading=!1,n="imageloadend";break;case 3:this.loading=!1,n="imageloaderror";break;default:return}this.hasListener(n)&&this.dispatchEvent(new i9(n,t))}};function o9(e){return function(t){const n=t.buffers,r=t.meta,i=t.imageOps,s=t.width,o=t.height,a=n.length,l=n[0].byteLength;if(i){const t=new Array(a);for(let e=0;ethis.maxQueueLength_;)this.queue_.shift().callback(null,null)}dispatch_(){if(this.running_||0===this.queue_.length)return;const e=this.queue_.shift();this.job_=e;const t=e.inputs[0].width,n=e.inputs[0].height,r=e.inputs.map(function(e){return e.data.buffer}),i=this.workers_.length;if(this.running_=i,1===i)return void this.workers_[0].postMessage({buffers:r,meta:e.meta,imageOps:this.imageOps_,width:t,height:n},r);const s=e.inputs[0].data.length,o=4*Math.ceil(s/4/i);for(let a=0;ae*h/180),w=(t.altitudes||[45]).map(e=>e*h/180),_=Math.min(b.length,w.length,y.length,v.length,4),x=f<2?.4:f<4.5?.35:.3,C=f<15?Math.pow(2,(15-f)*x):1;function S(e,t="mapbox"){return"mapbox"===t?.1*(256*e[0]*256+256*e[1]+e[2])-1e4:"terrarium"===t?256*e[0]+e[1]+e[2]/256-32768:0}function k(e,t){return 0!==e?Math.atan2(t,-e):h/2*(t>0?1:-1)}const E="igor"===g?function(e,t){const n=k(e*=2*p,t*=2*p),r=b[0]+h,i=Math.atan(Math.sqrt(e*e+t*t))*(2/h);let s=(n+r)/h+.5;s%=2,s<0&&(s+=2);const o=1-Math.abs(s-1),a=i*o,l=i*(1-o),c=y[0],u=v[0];return[c.r*a+u.r*l,c.g*a+u.g*l,c.b*a+u.b*l,c.a*a+u.a*l]}:"basic"===g?function(e,t){e*=2*p,t*=2*p;const n=b[0]+h,r=Math.cos(n),i=Math.sin(n),s=Math.cos(w[0]),o=(Math.sin(w[0])-(t*r*s-e*i*s))/Math.sqrt(1+e*e+t*t),a=Math.max(0,Math.min(1,o));if(a>.5){const e=2*a-1,t=v[0];return[t.r*e,t.g*e,t.b*e,t.a*e]}const l=1-2*a,c=y[0];return[c.r*l,c.g*l,c.b*l,c.a*l]}:"combined"===g?function(e,t){e*=2*p,t*=2*p;const n=b[0]+h,r=Math.cos(n),i=Math.sin(n),s=Math.cos(w[0]),o=Math.sin(w[0]);let a=Math.acos((o-(t*r*s-e*i*s))/Math.sqrt(1+e*e+t*t));a=Math.max(0,Math.min(h/2,a));const l=Math.atan(Math.sqrt(e*e+t*t))*(4/h/h),c=a*l,u=(h/2-a)*l,d=y[0],f=v[0];return[d.r*c+f.r*u,d.g*c+f.g*u,d.b*c+f.b*u,d.a*c+f.a*u]}:"multidirectional"===g?function(e,t){const n=(e*=2*p)*e+(t*=2*p)*t,r=Math.sqrt(1+n);let i=0,s=0,o=0,a=0;for(let l=0;l<_;l++){const n=Math.cos(w[l]),c=(Math.sin(w[l])-(t*-Math.cos(b[l])*n-e*-Math.sin(b[l])*n))/r,u=Math.max(0,Math.min(1,c)),h=y[Math.min(l,y.length-1)],d=v[Math.min(l,v.length-1)];if(u>.5){const e=(2*u-1)/_;i+=d.r*e,s+=d.g*e,o+=d.b*e,a+=d.a*e}else{const e=(1-2*u)/_;i+=h.r*e,s+=h.g*e,o+=h.b*e,a+=h.a*e}}return[i,s,o,a]}:function(e,t){const n=b[0]+h,r=Math.atan(.625*Math.sqrt(e*e+t*t)),i=k(e,t),s=1.875-1.75*p,o=.5*h,a=.5!==p?(Math.pow(s,r)-1)/(Math.pow(s,o)-1)*o:r,l=Math.cos(a),c=Math.min(Math.max(2*p,0),1),u=(1-l)*c,d=m,f=d.r*u,g=d.g*u,w=d.b*u,_=d.a*u;let x=(i+n)/h+.5;x%=2,x<0&&(x+=2);const C=Math.abs(x-1),S=Math.sin(a)*c,E=y[0],R=v[0],T=(E.r*(1-C)+R.r*C)*S,L=(E.g*(1-C)+R.g*C)*S,I=(E.b*(1-C)+R.b*C)*S,P=(E.a*(1-C)+R.a*C)*S;return[f*(1-P)+T,g*(1-P)+L,w*(1-P)+I,_*(1-P)+P]};let R,T,L,I,P,M,A,O,N,F,D;for(T=0;T<=c;++T)for(P=0===T?0:T-1,M=T===c?c:T+1,R=0;R<=l;++R){L=0===R?0:R-1,I=R===l?l:R+1,A=4*(T*r+L),u[0]=s[A],u[1]=s[A+1],u[2]=s[A+2],u[3]=s[A+3],O=S(u,d),A=4*(T*r+I),u[0]=s[A],u[1]=s[A+1],u[2]=s[A+2],u[3]=s[A+3],N=S(u,d),F=(N-O)/a*C,A=4*(P*r+R),u[0]=s[A],u[1]=s[A+1],u[2]=s[A+2],u[3]=s[A+3],O=S(u,d),A=4*(M*r+R),u[0]=s[A],u[1]=s[A+1],u[2]=s[A+2],u[3]=s[A+3],N=S(u,d),D=(N-O)/a*C;const e=E(F,D),t=e[3];A=4*(T*r+R),t>0&&(o[A]=e[0]/t*255,o[A+1]=e[1]/t*255,o[A+2]=e[2]/t*255),o[A+3]=255*t}return new ImageData(o,r,i)}function g9(e,t){const n=e[0],r=n.width,i=n.height,s=n.data,o=new Uint8ClampedArray(s.length),a=r-1,l=i-1,c=[0,0,0,0];let u,h,d;const p=(f=t.saturation)>0?1-1/(1.001-f):-f;var f;const g=(m=t.contrast)>0?1/(1-m):1+m;var m;const y=function(e){e*=Math.PI/180;const t=Math.sin(e),n=Math.cos(e);return[(2*n+1)/3,(-Math.sqrt(3)*t-n+1)/3,(Math.sqrt(3)*t-n+1)/3]}(t.hueRotate),v=y,b=[y[2],y[0],y[1]],w=[y[1],y[2],y[0]],_=t.brightnessLow,x=t.brightnessHigh;for(h=0;h<=l;++h)for(u=0;u<=a;++u){d=4*(h*r+u),c[0]=s[d],c[1]=s[d+1],c[2]=s[d+2],c[3]=s[d+3];const e=c[0],t=c[1],n=c[2],i=(e,t)=>{let n=0;for(let r=0;r1?h[h.length-2].toLowerCase():"";if(d==p||d==p.replace("-","")||f+"-"+d==p){o=i?o:m9[p],h.pop(),f&&p.startsWith(f)&&h.pop();break}}i||"number"!=typeof d||(o=d,i=!0);var g=h.join(y9).replace("Klokantech Noto Sans","Noto Sans").replace("DIN Pro","Barlow").replace("Arial Unicode MS","Arial");-1!==g.indexOf(y9)&&(g='"'+g+'"'),l.push(g)}r=b9[e]=[a,o,l]}return r[0]+y9+r[1]+y9+t+"px"+(n?"/"+n:"")+y9+r[2]}var _9=Object.freeze({}),x9={},C9={},S9=0;function k9(e){return e.id||(e.id=S9++),e.id}function E9(e){let t=x9[e.id];return t||(t={},x9[k9(e)]=t),t}function R9(e){return e*Math.PI/180}var T9=function(){const e=[];for(let t=78271.51696402048;e.length<=24;t/=2)e.push(t);return e}();function L9(e,t){if("undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"undefined"!=typeof OffscreenCanvas)return new OffscreenCanvas(e,t);const n=document.createElement("canvas");return n.width=e,n.height=t,n}function I9(e,t){let n=0;const r=t.length;for(;ni).then(e=>e instanceof Response?(r&&(r.url=e.url),o(e)):(e instanceof Request||(e=new Request(e)),e.headers.get("Accept")||e.headers.set("Accept","application/json"),r&&(r.url=e.url),fetch(e).then(o).catch(s))).catch(s);return M9[t]=[i,a],a}function O9(e,t){if("string"!=typeof e)return Promise.resolve(e);if(!e.trim().startsWith("{"))return A9("Style",e=Z7(e,t.accessToken),t);try{const t=JSON.parse(e);return Promise.resolve(t)}catch(_6){return Promise.reject(_6)}}var N9={};function F9(e,t,n={}){const r=[t,JSON.stringify(e)].toString();let i=N9[r];if(!i||n.transformRequest){let s;n.transformRequest&&(s=(e,t)=>{const r=n.transformRequest&&n.transformRequest(t,"Tiles")||t;if(e instanceof j7)e.setLoader((t,n,i)=>{const s=function(n){n.arrayBuffer().then(n=>{const r=e.getFormat().readFeatures(n,{extent:t,featureProjection:i});e.setFeatures(r)})};bH(()=>r).then(t=>{if(t instanceof Response)return s(t);fetch(t).then(s).catch(()=>e.setState(3))}).catch(()=>e.setState(3))});else{const t=e.getImage();bH(()=>r).then(n=>{if("string"==typeof n)return void(t.src=n);const r=e=>e.blob().then(e=>{const n=URL.createObjectURL(e);t.addEventListener("load",()=>URL.revokeObjectURL(n)),t.addEventListener("error",()=>URL.revokeObjectURL(n)),t.src=n});if(n instanceof Response)return r(n);fetch(n).then(r).catch(()=>e.setState(3))}).catch(()=>e.setState(3))}});const o=e.url;if(o&&!e.tiles){const r=X7(o,n.accessToken,n.accessTokenParam||"access_token",t||location.href);if(o.startsWith("mapbox://"))i=Promise.resolve({tileJson:Object.assign({},e,{url:void 0,tiles:r}),tileLoadFunction:s});else{const e={};i=A9("Source",r[0],n,e).then(function(t){return t.tiles=t.tiles.map(function(r){return"tms"===t.scheme&&(r=r.replace("{y}","{-y}")),X7(r,n.accessToken,n.accessTokenParam||"access_token",e.url)[0]}),Promise.resolve({tileJson:t,tileLoadFunction:s})})}}else e.tiles?(e=Object.assign({},e,{tiles:e.tiles.map(function(r){return"tms"===e.scheme&&(r=r.replace("{y}","{-y}")),X7(r,n.accessToken,n.accessTokenParam||"access_token",t||location.href)[0]})}),i=Promise.resolve({tileJson:Object.assign({},e),tileLoadFunction:s})):i=Promise.reject(new Error("source has no `tiles` nor `url`"));N9[r]=i}return i}function D9(e,t,n,r){const i=[2*n*t.pixelRatio+t.width,2*n*t.pixelRatio+t.height],s=L9(i[0],i[1]),o=s.getContext("2d");o.drawImage(e,t.x,t.y,t.width,t.height,n*t.pixelRatio,n*t.pixelRatio,t.width,t.height);const a=o.getImageData(0,0,i[0],i[1]);o.globalCompositeOperation="destination-over",o.fillStyle=`rgba(${255*r.r},${255*r.g},${255*r.b},${r.a})`;const l=a.data;for(let c=0,u=a.width;c0&&o.arc(c,e,n*t.pixelRatio,0,2*Math.PI);return o.fill(),s}function z9(e,t,n){const r=Math.max(0,Math.min(1,(n-e)/(t-e)));return r*r*(3-2*r)}function j9(e,t,n){const r=L9(t.width,t.height),i=r.getContext("2d");i.drawImage(e,t.x,t.y,t.width,t.height,0,0,t.width,t.height);const s=i.getImageData(0,0,t.width,t.height),o=s.data;for(let a=0,l=s.width;a0?(o[t+0]=Math.round(255*n.r*r),o[t+1]=Math.round(255*n.g*r),o[t+2]=Math.round(255*n.b*r),o[t+3]=Math.round(255*r)):o[t+3]=0}return i.putImageData(s,0,0),r}var U9,B9=Array(256).join(" ");function $9(e,t){if(t>=.05){let n="";const r=e.split("\n"),i=B9.slice(0,Math.round(t/.1));for(let e=0,t=r.length;e0&&(n+="\n"),n+=r[e].split("").join(i);return n}return e}function q9(){return U9||(U9=L9(1,1).getContext("2d")),U9}function V9(e,t){if(/\d+ \d+/.test(e)){const[n,r]=e.split(" ").map(Number);return n<=t&&t<=r}return e==t}function W9(e,t){return q9().measureText(e).width+(e.length-1)*t}var H9={};function G9(e,t,n,r){if(-1!==e.indexOf("\n")){const i=e.split("\n"),s=[];for(let e=0,o=i.length;e1){const e=q9();e.font=t;const i=e.measureText("M").width*n;let a="";const l=[];for(let t=0,n=o.length;t1;++t){const e=l[t];if(W9(e,r)<.35*i){const i=t>0?W9(l[t-1],r):1/0,s=t.7*i&&W9(s,r)<.6*i){const o=e.split(" "),a=o.pop();W9(a,r)<.2*i&&(l[t]=o.join(" "),l[t+1]=a+" "+s),n-=1}}s=l.join("\n")}else s=e;s=$9(s,r),H9[i]=s}return s}T0.on("propertychange",()=>{for(const e in H9)delete H9[e]});var K9,Z9,Y9=["Arial","Courier New","Times New Roman","Verdana","sans-serif","serif","monospace","cursive","fantasy"],X9={},J9={Point:1,MultiPoint:1,LineString:2,MultiLineString:2,Polygon:3,MultiPolygon:3},Q9={center:[.5,.5],left:[0,.5],right:[1,.5],top:[.5,0],bottom:[.5,1],"top-left":[0,0],"top-right":[1,0],"bottom-left":[0,1],"bottom-right":[1,1]},eee=function(e,t){let n=M6(e,t);if("error"===n.result){const r=q7(e);r!==e&&(n=M6(r,t))}if("error"===n.result){const r=n.value[0];return console.error("Error parsing expression:",e,r.key,r.message),{evaluate:()=>t.default}}return n.value};function tee(e,t,n,r,i,s){const o=e.id;i||(i={},console.warn("No functionCache provided to getValue()")),i[o]||(i[o]={});const a=i[o];if(!a[n]){let r=(e[t]||_9)[n];const i=M8[`${t}_${e.type}`]&&M8[`${t}_${e.type}`][n];void 0===r&&i&&(r=i.default);let s=T6(r);if(!s&&E6(r)&&(r=H6(r,i),s=!0),s){const e=eee(r,i);a[n]=e.evaluate.bind(e)}else{const e=i?i.type:typeof r;"color"!==e&&"colorArray"!==e||(r=L5.parse(r));let t=!1;if("array"===e)for(let n=0;n!0,needGeometry:!1,getGlobalStateRefs:()=>new Set};F6(e)||(e=U6(e));const t=L6(e,D6,void 0);if("error"===t.result)throw new Error(t.value.map(e=>`${e.key}: ${e.message}`).join(", "));return{filter:(e,n,r)=>t.value.evaluate(e,n,{},r),needGeometry:j6(e),getGlobalStateRefs:()=>O6(t.value.expression)}}(t).filter}catch(i){console.warn("Filter will evaluate to false: "+i.message),r[e]=function(){return!1}}return r[e](W7,n)}function iee(e,t){if(e){if(0===e.a||0===t)return;const n=e.a;return t=void 0===t?1:t,0===n?"transparent":"rgba("+Math.round(255*e.r/n)+","+Math.round(255*e.g/n)+","+Math.round(255*e.b/n)+","+n*t+")"}return e}var see=/\{[^{}}]*\}/g;function oee(e,t){return e.replace(see,function(e){return t[e.slice(1,-1)]||""})}function aee(e,t){let n=e.split(":")[0];return n===e&&(n="default"),t[n]}var lee={},cee=L5.parse("#000000"),uee=L5.parse("#FFFFFF"),hee=L5.parse("#000000"),dee=["raster-saturation","raster-contrast","raster-brightness-max","raster-brightness-min","raster-hue-rotate"],pee=["background","circle","fill","fill-extrusion","line","symbol","raster","hillshade"];function fee(e,t=512){return e.getExtent()?x7({extent:e.getExtent(),tileSize:t,maxZoom:22}).getResolutions():T9}function gee(e,t){return t.accessToken||(t=Object.assign({},t),new URL(e).searchParams.forEach((e,n)=>{t.accessToken=e,t.accessTokenParam=n})),t}var mee=["type","source","source-layer","minzoom","maxzoom","filter","layout"];function yee(e,t){if(!t.ref)return t;const n=e.find(e=>e.id===t.ref);if(!n)return t;const r=Object.assign({},t);for(const i of mee)!(i in r)&&i in n&&(r[i]=n[i]);return r}function vee(e,t,n){const r=new F7({tileJSON:t,tileSize:e.tileSize||t.tileSize||512}),i=r.getTileJSON(),s=r.getTileGrid(),o=iZ(n.projection||"EPSG:3857"),a=function(e,t){const n=e.bounds;if(n){const e=lZ([n[0],n[1]],t),r=lZ([n[2],n[3]],t);return[e[0],e[1],r[0],r[1]]}return iZ(t).getExtent()}(i,o),l=o.getExtent(),c=i.minzoom||0,u=i.maxzoom||22,h={attributions:r.getAttributions(),projection:o,tileGrid:new w7({origin:l?qG(l):s.getOrigin(0),extent:a||s.getExtent(),minZoom:c,resolutions:fee(o,t.tileSize).slice(0,u+1),tileSize:s.getTileSize(0)})};return Array.isArray(i.tiles)?h.urls=i.tiles:h.url=i.tiles,h}function bee(e,t,n){return new Promise(function(r,i){F9(e,t,n).then(function({tileJson:t,tileLoadFunction:i}){const s=vee(e,t,n);s.tileLoadFunction=i,s.format=new D8({layerName:"mvt:layer"});const o=new U7(s);o.set("mapbox-source",e),r(o)}).catch(i)})}function wee(e){return`{bbox-${(e?e.getCode():"EPSG:3857").toLowerCase().replace(/[^a-z0-9]/g,"-")}}`}function _ee(e,t,n){const r=new f7;return function(e,t,n){return new Promise(function(r,i){F9(e,t,n).then(function({tileJson:t,tileLoadFunction:i}){const s=new F7({interpolate:void 0===n.interpolate||n.interpolate,transition:0,crossOrigin:"anonymous",tileJSON:t});s.tileGrid=vee(e,t,n).tileGrid,n.projection&&(s.projection=iZ(n.projection));const o=s.getTileUrlFunction();i&&s.setTileLoadFunction(i),s.setTileUrlFunction(function(e,t,n){const r=wee(n);let i=o(e,t,n);if(-1!=i.indexOf(r)){const t=s.getTileGrid().getTileCoordExtent(e);i=i.replace(r,t.toString())}return i}),s.set("mapbox-source",e),r(s)}).catch(function(e){i(e)})})}(e,t,n).then(function(e){r.setSource(e)}).catch(function(){r.setSource(void 0)}),r}function xee(e,t,n){const r=n.projection?new f3({dataProjection:n.projection}):new f3,i=e.data,s={};if("string"==typeof i){const[s]=X7(i,n.accessToken,n.accessTokenParam||"access_token",t||location.href);if(/\{bbox-[0-9a-z-]+\}/.test(s)){const t=(e,t,n)=>{const r=wee(n);return s.replace(r,`${e.join(",")}`)},i=new i3({attributions:e.attribution,format:r,loader:(e,r,s,o,a)=>{A9("GeoJSON","function"==typeof t?t(e,r,s):t,n).then(e=>{const t=i.getFormat().readFeatures(e,{featureProjection:s});i.addFeatures(t),o(t)}).catch(()=>{i.removeLoadedExtent(e),a()})},strategy:Z2});return i.set("mapbox-source",e),i}const o=new i3({attributions:e.attribution,format:r,url:s,loader:(e,t,r,i,a)=>{A9("GeoJSON",s,n).then(e=>{const t=o.getFormat().readFeatures(e,{featureProjection:r});o.addFeatures(t),i(t)}).catch(()=>{o.removeLoadedExtent(e),a()})}});return o}s.features=r.readFeatures(i,{featureProjection:"EPSG:3857"});const o=new i3(Object.assign({attributions:e.attribution,format:r},s));return o.set("mapbox-source",e),o}function Cee(e,t,n,r){n=yee(e.layers,n);const i=E9(e),s=n.type;let o=n.source;const a=e.sources[o];let l;var c;return"background"==s?(l=function(e,t,n){const r=zH?{style:{}}:document.createElement("div");return r.className="ol-mapbox-style-background",r.style.position="absolute",r.style.width="100%",r.style.height="100%",new QX({source:new Q2({}),render(i){const s=function(e,t,n,r){const i={id:e.id,type:e.type},s=e.paint||{};let o;i.paint=s,W7.zoom=I9(t,n.resolutions||T9),W7.distanceFromCenter=0;const a=tee(i,"paint","background-color",_9,r);return void 0!==s["background-opacity"]&&(o=tee(i,"paint","background-opacity",_9,r)),"none"===tee(i,"layout","visibility",_9,r)?void 0:iee(a,o)}(e,i.viewState.resolution,t,n);return r.style.backgroundColor=s,r}})}(n,r,i),o=void 0):"vector"==a.type?l=function(e,t,n){const r=new v7({declutter:!0,visible:!1});return bee(e,t,n).then(function(e){r.setSource(e)}).catch(function(){r.setSource(void 0)}),r}(a,t,r):"raster"==a.type?(Object.keys(n.paint||{}).find(e=>dee.includes(e))?(c=_ee(a,t,r),l=new e9({source:new u9({operationType:"image",operation:g9,sources:[c]})}),function(e,t,n,r){e.getSource().on("beforeoperations",function(e){W7.zoom=I9(e.resolution,n.resolutions||T9),W7.distanceFromCenter=0;const i=e.data;i.saturation=tee(t,"paint","raster-saturation",_9,r),i.contrast=tee(t,"paint","raster-contrast",_9,r),i.brightnessHigh=tee(t,"paint","raster-brightness-max",_9,r),i.brightnessLow=tee(t,"paint","raster-brightness-min",_9,r),i.hueRotate=tee(t,"paint","raster-hue-rotate",_9,r)})}(l,n,r,i)):l=_ee(a,t,r),l.setVisible(!n.layout||"none"!==tee(n,"layout","visibility",_9,i)),l.on("prerender",function(e,t,n){let r=null;return function(i){e.paint&&"raster-opacity"in e.paint&&i.frameState.viewState.zoom!==r&&(r=i.frameState.viewState.zoom,delete n[e.id],function(e,t,n,r){W7.zoom=n,W7.distanceFromCenter=0;const i=tee(e,"paint","raster-opacity",_9,r);t.setOpacity(i)}(e,t,r,n))}}(n,l,i))):"geojson"==a.type?l=function(e,t,n){return new W2({declutter:!0,source:xee(e,t,n),visible:!1})}(a,t,r):"raster-dem"==a.type&&"hillshade"==n.type&&(l=function(e){return new e9({source:new u9({operationType:"image",operation:f9,sources:[e]})})}(_ee(a,t,r)),function(e,t,n,r,i){e.getSource().on("beforeoperations",function(e){const s=e.data;s.resolution=sZ(r.projection||"EPSG:3857",e.resolution,FG(e.extent),"m");const o=I9(e.resolution,r.resolutions||T9);W7.zoom=o,W7.distanceFromCenter=0,s.zoom=o,s.encoding=t.encoding,s.method=tee(n,"paint","hillshade-method",_9,i)||"standard",s.exaggeration=tee(n,"paint","hillshade-exaggeration",_9,i);let a=tee(n,"paint","hillshade-illumination-direction",_9,i);null==a&&(a=335),s.azimuths=Array.isArray(a)?a:[a],s.sunAz=s.azimuths[0];let l=tee(n,"paint","hillshade-illumination-altitude",_9,i);function c(e){return e&&e.values?e.values[0]:e}function u(e){const t=n.paint?.[e];if(Array.isArray(t)&&t.length>0&&"string"==typeof t[0]&&void 0!==L5.parse(t[0]))return t.map(e=>L5.parse(e));let r=tee(n,"paint",e,_9,i);return r=c(r),r?[r]:void 0}null==l&&(l=45),s.altitudes=Array.isArray(l)?l:[l],s.highlightColors=u("hillshade-highlight-color"),s.highlightColor=s.highlightColors?.[0]||uee,s.highlightColors||(s.highlightColors=[s.highlightColor]),s.shadowColors=u("hillshade-shadow-color"),s.shadowColor=s.shadowColors?.[0]||cee,s.shadowColors||(s.shadowColors=[s.shadowColor]),s.accentColor=c(tee(n,"paint","hillshade-accent-color",_9,i))||hee})}(l,a,n,r,i),l.setVisible(!n.layout||"none"!==tee(n,"layout","visibility",_9,i))),l&&l.set("mapbox-source",o),l}function See(e,t,n,r){e.schema&&Object.assign(V7,Object.keys(e.schema).reduce((t,n)=>(t[n]=e.schema[n]?.default,t),{}));const i=[];let s=null;if(t instanceof T1){if(s=t.getView(),!s.isDef()&&!s.getRotation()&&!s.getResolutions()){const e=r.projection?iZ(r.projection):s.getProjection();s=new TY(Object.assign(s.getProperties(),{maxResolution:T9[0]/lK[e.getUnits()],projection:r.projection||s.getProjection()})),t.setView(s)}"center"in e&&!s.getCenter()&&s.setCenter(lZ(e.center,s.getProjection())),"zoom"in e&&void 0===s.getZoom()&&s.setResolution(T9[0]/lK[s.getProjection().getUnits()]/Math.pow(2,e.zoom)),s.getCenter()&&void 0!==s.getZoom()||s.fit(s.getProjection().getExtent(),{nearest:!0,size:t.getSize()})}t.set("mapbox-style",e),t.set("mapbox-metadata",{styleUrl:n,options:r});const o=e.layers;let a,l,c,u=[];for(let h=0,d=o.length;h0||n>0)&&e.setMaxResolution(Math.min(P9(Math.max(0,o-1e-12),T9),P9(Math.max(0,n-1e-12),t.getResolutions()))),a<24&&e.setMinResolution(P9(a,T9))}}else o>0&&e.setMaxResolution(P9(Math.max(0,o-1e-12),T9));u instanceof i3||u instanceof U7?function(e,t,n="",r={},i){let s,o,a,l,c=!0;return"string"==typeof n||Array.isArray(n)?l=n:(a=n,l=a.source||a.layers,r=a),"string"==typeof r?(s=r,a={}):(s=r.styleUrl,a=r),!1===a.updateSource&&(c=!1),i||(i=a.resolutions),s||"string"!=typeof t||t.trim().startsWith("{")||(s=t),s&&(s=s.startsWith("data:")?location.href:Z7(s,a.accessToken),a=gee(s,a)),new Promise(function(n,r){O9(t,a).then(function(t){if(8!=t.version)return r(new Error("glStyle version 8 required."));if(!(e instanceof W2||e instanceof v7))return r(new Error("Can only apply to VectorLayer or VectorTileLayer"));const u=e instanceof v7?"vector":"geojson";if(l?o=Array.isArray(l)?t.layers.find(function(e){return e.id===l[0]}).source:l:(o=t.layers.find(function(e){return e.source&&t.sources[e.source].type===u}).source,l=o),!o)return r(new Error(`No ${u} source found in the glStyle.`));function h(){if(!c)return Promise.resolve();if(e instanceof v7)return bee(t.sources[o],s,a).then(function(t){const n=e.getSource();n?t!==n&&(n.setTileUrlFunction(t.getTileUrlFunction()),"function"==typeof n.setUrls&&"function"==typeof t.getUrls&&n.setUrls(t.getUrls()),n.format_||(n.format_=t.format_),n.getAttributions()||n.setAttributions(t.getAttributions()),n.getTileLoadFunction()===B7&&n.setTileLoadFunction(t.getTileLoadFunction()),uZ(n.getProjection(),t.getProjection())&&(n.tileGrid=t.getTileGrid())):e.setSource(t);const r=e.getSource().getTileGrid();!isFinite(e.getMaxResolution())&&!isFinite(e.getMinZoom())&&r.getMinZoom()>0&&e.setMaxResolution(P9(Math.max(0,r.getMinZoom()-1e-12),r.getResolutions()))});const n=t.sources[o];let r=e.getSource();r&&r.get("mapbox-source")===n||(r=xee(n,s,a));const i=e.getSource();return i?r!==i&&(i.getAttributions()||i.setAttributions(r.getAttributions()),i.format_||(i.format_=r.getFormat()),i.url_=r.getUrl()):e.setSource(r),Promise.resolve()}let d,p;const f={},g={};function m(){if(p||t.sprite&&!f)p?(e.setStyle(p),h().then(n).catch(r)):r(new Error("Something went wrong trying to apply style."));else{if(a.projection&&!i){const e=iZ(a.projection).getUnits();"m"!==e&&(i=T9.map(t=>t/lK[e]))}let s;const c=e.getSource();c instanceof U7&&c.format_ instanceof D8&&(s=c.format_.layerName_),p=function(e,t,n,r=T9,i,s,o,a){if("string"==typeof t&&(t=JSON.parse(t)),t.schema)for(const b in t.schema){const e=t.schema[b];"default"in e&&(V7[b]=e.default)}if(8!=t.version)throw new Error("glStyle version 8 required.");lee[function(e,t){return k9(e)+"."+kH(t)}(t,e)]=Array.from(arguments);const l={};("string"==typeof s||s instanceof Request||s instanceof Response||s instanceof Promise)&&(s={default:s});for(const b in s){const t=s[b];bH(()=>t).then(async t=>{let n;if("undefined"!=typeof Image){const r=new Image;if("string"==typeof t)r.crossOrigin="anonymous",r.src=t;else{let e;t instanceof Request?e=await fetch(t):t instanceof Response&&(e=t);const i=await e.blob();n=URL.createObjectURL(i),r.src=n}r.addEventListener("load",function t(){r.removeEventListener("load",t),l[b]={image:r,size:[r.width,r.height]},e.changed(),n&&URL.revokeObjectURL(n)}),r.addEventListener("error",function e(){URL.revokeObjectURL(n),r.removeEventListener("error",e)})}else if("undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope){const e=self;e.postMessage({action:"loadImage",src:t}),e.addEventListener("message",function(e){"imageLoaded"===e.data.action&&e.data.src===t&&(l[b]={image:e.data.image,size:[e.data.image.width,e.data.image.height]})})}})}const c=M3(t.layers),u={},h=[],d={},p={},f=E9(t),g=function(e){let t=C9[e.id];return t||(t={},C9[k9(e)]=t),t}(t);let m;for(let b=0,w=c.length;b=h.maxzoom)continue;const S=h.filter;if(!S||ree(w,S,k,g)){let r,c,g,v,b,w;R=h;const S=u.index;if(3==_&&("fill"==h.type||"fill-extrusion"==h.type))if(c=tee(h,"paint",h.type+"-opacity",k,f,E),h.type+"-pattern"in C){const e=tee(h,"paint",h.type+"-pattern",k,f,E);if(e){const t="string"==typeof e?oee(e,m):e.toString(),n=aee(t,l);if(i&&i[t]&&n){++T,w=y[T],w&&w.getFill()&&!w.getStroke()&&!w.getText()||(w=new W0({fill:new B0}),y[T]=w),g=w.getFill(),w.setZIndex(S);const e=t+"."+c;let r=p[e];if(!r){const s=i[t],o=L9(s.width,s.height),a=o.getContext("2d");a.globalAlpha=c,a.drawImage(n.image,s.x,s.y,s.width,s.height,0,0,s.width,s.height),r=a.createPattern(o,"repeat"),p[e]=r}g.setColor(r)}}}else if(r=iee(tee(h,"paint",h.type+"-color",k,f,E),c),h.type+"-outline-color"in C&&(b=iee(tee(h,"paint",h.type+"-outline-color",k,f,E),c)),b||(b=r),r||b){if(++T,w=y[T],(!w||r&&!w.getFill()||!r&&w.getFill()||b&&!w.getStroke()||!b&&w.getStroke()||w.getText())&&(w=new W0({fill:r?new B0:void 0,stroke:b?new V0:void 0}),y[T]=w),r&&(g=w.getFill(),g.setColor(r)),"fill-extrusion"===h.type){const e=tee(h,"paint","fill-extrusion-height",k,f,E);if(e>0){const t=Math.max(.1,.9-Math.min(e,225)/280);if(b&&"transparent"!==b){const e=L5.parse(b);b=`rgba(${Math.round(255*e.r*t)},${Math.round(255*e.g*t)},${Math.round(255*e.b*t)},${e.a})`}}}b&&(v=w.getStroke(),v.setColor(b),v.setWidth(.5)),w.setZIndex(S)}if(1!=_&&"line"==h.type){r="line-pattern"in C?void 0:iee(tee(h,"paint","line-color",k,f,E),tee(h,"paint","line-opacity",k,f,E));const e=tee(h,"paint","line-width",k,f,E);r&&e>0&&(++T,w=y[T],w&&w.getStroke()&&!w.getFill()&&!w.getText()||(w=new W0({stroke:new V0}),y[T]=w),v=w.getStroke(),v.setLineCap(tee(h,"layout","line-cap",k,f,E)),v.setLineJoin(tee(h,"layout","line-join",k,f,E)),v.setMiterLimit(tee(h,"layout","line-miter-limit",k,f,E)),v.setColor(r),v.setWidth(e),v.setLineDash(C["line-dasharray"]?tee(h,"paint","line-dasharray",k,f,E).map(function(t){return t*e}):null),"function"==typeof v.setOffset&&v.setOffset(tee(h,"paint","line-offset",k,f,E)),w.setZIndex(S))}let L,I,P,M,A,O,N,F,D,z=!1,j=null,U=0;if((1==_||2==_)&&"icon-image"in x){const t=tee(h,"layout","icon-image",k,f,E);if(t){let r;L="string"==typeof t?oee(t,m):t.toString();const o=a?a(e,L):void 0,c=aee(L,l);if(i&&i[L]&&c||o){const e=tee(h,"layout","icon-rotation-alignment",k,f,E);if(2==_){const t=n.getGeometry();if(t.getFlatMidpoint||t.getFlatMidpoints){const n=t.getExtent();if(Math.sqrt(Math.max(Math.pow((n[2]-n[0])/s,2),Math.pow((n[3]-n[1])/s,2)))>150){const n="MultiLineString"===t.getType()?t.getFlatMidpoints():t.getFlatMidpoint();if(Z9||(Z9=new X2("Point",K9=[NaN,NaN],[],2,{},void 0)),r=Z9,K9[0]=n[0],K9[1]=n[1],"line"===tee(h,"layout","symbol-placement",k,f,E)&&"map"===e){const e=t.getStride(),r=t.getFlatCoordinates();for(let t=0,i=r.length-e;t=l){U=Math.atan2(s-a,o-i);break}}}}}}if(2!==_||r){const t=tee(h,"layout","icon-size",k,f,E),n=void 0!==C["icon-color"]?tee(h,"paint","icon-color",k,f,E):null;if(!n||0!==n.a){const r=tee(h,"paint","icon-halo-color",k,f,E),s=tee(h,"paint","icon-halo-width",k,f,E);let a=`${L}.${t}.${s}.${r}`;if(null!==n&&(a+=`.${n}`),I=d[a],!I){const l=nee(h,k,"icon",f);let u;"icon-offset"in x&&(u=tee(h,"layout","icon-offset",k,f,E).slice(0),u[0]*=t,u[1]*=-t);let p=n?[255*n.r,255*n.g,255*n.b,n.a]:void 0;if(o){const n={color:p,rotateWithView:"map"===e,displacement:u,declutterMode:l,scale:t};"string"==typeof o?n.src=o:(n.img=o,n.imgSize=[o.width,o.height]),I=new q0(n)}else{const o=i[L];let a,h,d;s?o.sdf?(a=D9(j9(c.image,o,n||[0,0,0,1]),{x:0,y:0,width:o.width,height:o.height,pixelRatio:o.pixelRatio},s,r),p=void 0):a=D9(c.image,o,s,r):(o.sdf&&(c.unSDFed||(c.image=j9(c.image,{x:0,y:0,width:c.size[0],height:c.size[1]},{r:1,g:1,b:1,a:1}),c.unSDFed=!0)),a=c.image,h=[o.width,o.height],d=[o.x,o.y]),I=new q0({color:p,img:a,imgSize:c.size,size:h,offset:d,rotateWithView:"map"===e,scale:t/o.pixelRatio,displacement:u,declutterMode:l})}d[a]=I}}I&&(++T,w=y[T],w&&w.getImage()&&!w.getFill()&&!w.getStroke()||(w=new W0,y[T]=w),w.setGeometry(r),I.setRotation(U+R9(tee(h,"layout","icon-rotate",k,f,E))),I.setOpacity(tee(h,"paint","icon-opacity",k,f,E)),I.setAnchor(Q9[tee(h,"layout","icon-anchor",k,f,E)]),w.setImage(I),j=w.getText(),w.setText(void 0),w.setZIndex(S),z=!0,P=!1)}else P=!0}}}if(1==_&&"circle"===h.type){++T,w=y[T],w&&w.getImage()&&!w.getFill()&&!w.getStroke()||(w=new W0,y[T]=w);const e="circle-radius"in C?tee(h,"paint","circle-radius",k,f,E):5,t=iee(tee(h,"paint","circle-stroke-color",k,f,E),tee(h,"paint","circle-stroke-opacity",k,f,E)),n=tee(h,"paint","circle-translate",k,f,E),r=iee(tee(h,"paint","circle-color",k,f,E),tee(h,"paint","circle-opacity",k,f,E)),i=tee(h,"paint","circle-stroke-width",k,f,E),s=e+"."+t+"."+r+"."+i+"."+n[0]+"."+n[1];I=d[s],I||(I=new U0({radius:e,displacement:[n[0],-n[1]],stroke:t&&i>0?new V0({width:i,color:t}):void 0,fill:r?new B0({color:r}):void 0,declutterMode:"none"}),d[s]=I),w.setImage(I),j=w.getText(),w.setText(void 0),w.setGeometry(void 0),w.setZIndex(S),z=!0}if("text-field"in x){N=Math.round(tee(h,"layout","text-size",k,f,E));const e=tee(h,"layout","text-font",k,f,E);O=tee(h,"layout","text-line-height",k,f,E),A=w9(o?o(e,t.metadata?t.metadata["ol:webfonts"]:void 0):e,N,O),A.includes("sans-serif")||(A+=",sans-serif"),F=tee(h,"layout","text-letter-spacing",k,f,E),D=tee(h,"layout","text-max-width",k,f,E);const n=tee(h,"layout","text-field",k,f,E);M="object"==typeof n&&n.sections?1===n.sections.length?n.toString():n.sections.reduce((t,n)=>{const r=n.fontStack?n.fontStack.split(","):e,i=w9(o?o(r):r,N*(n.scale||1),O);let s=n.text;if("\n"===s)return t.push("\n",""),t;if(2==_)return t.push($9(s,F),i),t;s=G9(s,i,D,F).split("\n");for(let e=0,o=s.length;e0&&t.push("\n",""),t.push(s[e],i);return t},[]):oee(n,m).trim(),c=tee(h,"paint","text-opacity",k,f,E)}if(M&&c&&!P){z||(++T,w=y[T],w&&w.getText()&&!w.getFill()&&!w.getStroke()||(w=new W0,y[T]=w),w.setImage(void 0),w.setGeometry(void 0));const e=nee(h,k,"text",f);w.getText()||w.setText(j),j=w.getText(),(!j||"getDeclutterMode"in j&&j.getDeclutterMode()!==e)&&(j=new Z0({padding:[2,2,2,2],declutterMode:e}),w.setText(j));const t=tee(h,"layout","text-transform",k,f,E);"uppercase"==t?M=Array.isArray(M)?M.map((e,t)=>t%2?e:e.toUpperCase()):M.toUpperCase():"lowercase"==t&&(M=Array.isArray(M)?M.map((e,t)=>t%2?e:e.toLowerCase()):M.toLowerCase());const n=Array.isArray(M)?M:2==_?$9(M,F):G9(M,A,D,F);if(j.setText(n),j.setFont(A),j.setRotation(R9(tee(h,"layout","text-rotate",k,f,E))),"function"==typeof j.setKeepUpright){const e=tee(h,"layout","text-keep-upright",k,f,E);j.setKeepUpright(e)}const r=tee(h,"layout","text-anchor",k,f,E),i=z||1==_?"point":tee(h,"layout","symbol-placement",k,f,E);let s;if("line-center"===i?(j.setPlacement("line"),s="center"):j.setPlacement(i),"line"===i&&"function"==typeof j.setRepeat){const e=tee(h,"layout","symbol-spacing",k,f,E);j.setRepeat(2*e)}j.setOverflow("point"===i);let o=tee(h,"paint","text-halo-width",k,f,E);const a=tee(h,"layout","text-offset",k,f,E),l=tee(h,"paint","text-translate",k,f,E);let u=0,d=0;if("point"==i){s="center",-1!==r.indexOf("left")?(s="left",d=o):-1!==r.indexOf("right")&&(s="right",d=-o);const e=tee(h,"layout","text-rotation-alignment",k,f,E);j.setRotateWithView("map"==e)}else j.setMaxAngle(R9(tee(h,"layout","text-max-angle",k,f,E))*M.length/n.length),j.setRotateWithView(!1);j.setTextAlign(s);let p="middle";0==r.indexOf("bottom")?(p="bottom",u=-o-.5*(O-1)*N):0==r.indexOf("top")&&(p="top",u=o+.5*(O-1)*N),j.setTextBaseline(p);const g=tee(h,"layout","text-justify",k,f,E);j.setJustify("auto"===g?void 0:g),j.setOffsetX(a[0]*N+d+l[0]),j.setOffsetY(a[1]*N+u+l[1]);const m=j.getFill()||new B0;m.setColor(iee(tee(h,"paint","text-color",k,f,E),c)),j.setFill(m);const v=iee(tee(h,"paint","text-halo-color",k,f,E),c);if(v&&o>0){const e=j.getStroke()||new V0;e.setColor(v),o*=2;const t=.5*N;e.setWidth(o<=t?o:t),j.setStroke(e)}else j.setStroke(void 0);const b=tee(h,"layout","text-padding",k,f,E),x=j.getPadding();b!==x[0]&&(x[0]=b,x[1]=b,x[2]=b,x[3]=b),w.setZIndex(S)}}}return T>-1?(y.length=T+1,y):void 0};return e.setStyle(v),e.set("mapbox-layers",h),e.set("mapbox-source",m),e.set("mapbox-featurestate",e.get("mapbox-featurestate")||{}),v}(e,t,l,i,f,g,(e,t=a.webfonts)=>function(e,t="https://cdn.jsdelivr.net/npm/@fontsource/{font-family}/{fontweight}{-fontstyle}.css"){if(zH)return e;let n;for(let r=0,i=e.length;r{await document.fonts.ready;for(let e=0,r=n.length;ee.family.replace(/^['"]|['"]$/g,"").toLowerCase()===i.toLowerCase()&&V9(e.weight,s)&&e.style===o)){const e=t.replace("{font-family}",i.replace(/ /g,"-").toLowerCase()).replace("{Font+Family}",i.replace(/ /g,"+")).replace("{fontweight}",s).replace("{-fontstyle}",o.replace("normal","").replace(/(.+)/,"-$1")).replace("{fontstyle}",o);if(!document.querySelector('link[href="'+e+'"]')){const t=document.createElement("link");t.href=e,t.rel="stylesheet",document.head.appendChild(t)}}}})(),e):e}(e,t),a.getImage,s),e.getStyle()?h().then(n).catch(r):r(new Error(`Nothing to show for source [${o}]`))}}if(t.sprite){const e=function(e,t,n){if("string"==typeof e)return[{id:"default",url:K7(e,t,n)}];for(const r of e)r.url=K7(r.url,t,n);return e}(t.sprite,a.accessToken,s||location.href);d=zH?1:window.devicePixelRatio>=1.5?.5:1;const n=.5==d?"@2x":"";Promise.all(e.map(function(e){const t=new URL(e.url);let i=t.origin+t.pathname+n+".json"+t.search;return new Promise(function(e,n){A9("Sprite",i,a).then(e).catch(function(){i=t.origin+t.pathname+".json"+t.search,A9("Sprite",i,a).then(e).catch(n)})}).then(function(i){let s;if(void 0===i&&r(new Error("No sprites found.")),s=t.origin+t.pathname+n+".png"+t.search,a.transformRequest){const e=a.transformRequest(s,"SpriteImage")||s;(e instanceof Request||e instanceof Promise)&&(s=e)}g[e.id]=s;for(const t in i){const n="default"==e.id?t:`${e.id}:${t}`;f[n]=i[t]}}).catch(function(e){r(new Error(`Sprites cannot be loaded: ${i}: ${e.message}`))})})).then(m).catch(r)}else m()}).catch(r)})}(e,n,t,Object.assign({styleUrl:r},s)).then(function(){!function(e,t,n){function r(){const r=t.get("mapbox-style");if(!r)return;const i=M3(r.layers),s=e.get("mapbox-layers"),o=i.filter(function(e){return s.includes(e.id)}).some(function(e){return!e.layout||"visible"===tee(e,"layout","visibility",_9,n)});e.get("visible")!==o&&e.setVisible(o)}e.on("change",r),r()}(e,i,E9(n)),l()}).catch(c):l()}else c(new Error("Error accessing data for source "+e.get("mapbox-source")))};e.set("mapbox-layers",t);const h=i.getLayers();-1===h.getArray().indexOf(e)&&h.push(e),e.getSource()?u():e.once("change:source",u)})}var Eee=class extends I${static{dF(this.prototype,"osm",[dp])}#B=void fF(this,"osm");static{dF(this.prototype,"storage",[dp])}#U=void fF(this,"storage");static{dF(this.prototype,"mapUi",[dp])}#He=void fF(this,"mapUi");static{dF(this.prototype,"router",[dp])}#We=void fF(this,"router");static{dF(this.prototype,"settings",[dp])}#D=void fF(this,"settings");static{dF(this.prototype,"nostrData",[dp])}#F=void fF(this,"nostrData");mapInstance;bookmarkSource;searchResultsSource;selectedShapeSource;searchOverlay;searchOverlayElement;selectedPinOverlay;selectedPinElement;crosshairElement;crosshairOverlay;ignoreNextMapClick=!1;setupMap=cq(e=>{if(this.mapInstance)return;const t=new KX;this.selectedShapeSource=new i3;const n=new W2({source:this.selectedShapeSource,style:new W0({stroke:new V0({color:"#3388ff",width:4}),fill:new B0({color:"rgba(51, 136, 255, 0.1)"})}),zIndex:5});this.bookmarkSource=new i3;const r=new W2({source:this.bookmarkSource,style:e=>{const t=e.get("originalPlace");let n=getComputedStyle(document.documentElement).getPropertyValue("--default-list-color").trim()||"#000000";if(t&&t._listIds&&t._listIds.length>0){const e=t._listIds[0],r=this.storage.lists.find(t=>t.id===e);r&&r.color&&(n=r.color)}return[new W0({image:new U0({radius:10,fill:new B0({color:"rgba(0, 0, 0, 0.2)"}),displacement:[0,-2]})}),new W0({image:new U0({radius:9,fill:new B0({color:n}),stroke:new V0({color:"#fff",width:2})})})]},zIndex:10});this.searchResultsSource=new i3;const i=new Map,s=new W2({source:this.searchResultsSource,style:e=>{const t=e.get("originalPlace"),n=this.mapUi.selectedPlace;if(n){const e=t.osmId&&n.osmId&&t.osmId===n.osmId,r=t.id&&n.id&&t.id===n.id,i=t.lat===n.lat&&t.lon===n.lon;if(e||r||i)return new W0({})}const r=kB(t.osmTags||t),s=r||"default";if(!i.has(s)){const e=getComputedStyle(document.documentElement).getPropertyValue("--marker-color-primary").trim()||"#ea4335";let t=``;if(r){const n=_B(r);if(n){let r=n.trim();const i=r.indexOf("",i)+1,o=r.lastIndexOf("");-1!==i&&-1!==o&&(r=r.substring(s,o)),t=`\n \n \n ${r}\n \n `}}const n=`\n \n \n \n \n \n \n \n ${t}\n \n `;i.set(s,"data:image/svg+xml;charset=utf-8,"+encodeURIComponent(n.trim()))}return new W0({image:new q0({src:i.get(s),anchor:[.5,.65],scale:1})})},zIndex:11});let o=[14.21683569,27.060114248],a=2.661,l=!1;try{const e=localStorage.getItem("marco:map-view");if(e){const t=JSON.parse(e);t.center&&Array.isArray(t.center)&&2===t.center.length&&"number"==typeof t.zoom&&(o=t.center,a=t.zoom,l=!0)}}catch(k){console.warn("Failed to restore map view:",k)}const c=new TY({center:lZ(o),zoom:a,projection:"EPSG:3857"});this.mapInstance=new T1({target:e,layers:[t,n,s,r],view:c,controls:eX({zoom:!0,rotate:!0,attribution:!0}),interactions:AX({dragPan:!1})});const u=cZ(c.getCenter());this.mapUi.updateCenter(u[1],u[0]),this.mapUi.updateZoom(c.getZoom()),function(e,t,n={}){let r,i;if(zH){if(!(e instanceof T1||e instanceof KX))throw new Error("ol-mapbox-style in a web worker requires a Map or a LayerGroup as first argument");i=e}else i="string"==typeof e||e instanceof HTMLElement?new T1({target:e}):e;if("string"==typeof t){const e=t.startsWith("data:")?location.href:Z7(t,n.accessToken);n=gee(e,n),r=new Promise(function(r,s){O9(t,n).then(function(t){See(t,i,e,n).then(function(){r(i)}).catch(s)}).catch(function(e){s(new Error(`Could not load ${t}: ${e.message}`))})})}else r=new Promise(function(e,r){See(t,i,!n.styleUrl||n.styleUrl.startsWith("data:")?location.href:Z7(n.styleUrl,n.accessToken),n).then(function(){e(i)}).catch(r)})}(this.mapInstance,"https://tiles.openfreemap.org/styles/liberty",{webfonts:"data:text/css,"}),this.searchOverlayElement=document.createElement("div"),this.searchOverlayElement.className="search-pulse",this.searchOverlay=new O1({element:this.searchOverlayElement,positioning:"center-center",stopEvent:!1}),this.mapInstance.addOverlay(this.searchOverlay),this.selectedPinElement=document.createElement("div"),this.selectedPinElement.className="selected-pin-container";const h=document.createElement("div");h.className="selected-pin",h.innerHTML='';const d=document.createElement("div");d.className="selected-pin-shadow",this.selectedPinElement.appendChild(h),this.selectedPinElement.appendChild(d),this.selectedPinOverlay=new O1({element:this.selectedPinElement,positioning:"bottom-center",stopEvent:!1}),this.mapInstance.addOverlay(this.selectedPinOverlay),this.crosshairElement=document.createElement("div"),this.crosshairElement.className="map-crosshair",this.crosshairElement.innerHTML='\n \n \n \n \n ',e.appendChild(this.crosshairElement),this.locationOverlayElement=document.createElement("div"),this.locationOverlayElement.className="search-pulse blue",this.locationOverlay=new O1({element:this.locationOverlayElement,positioning:"center-center",stopEvent:!1}),this.mapInstance.addOverlay(this.locationOverlay),e.addEventListener("pointerdown",()=>{this.mapUi.searchBoxHasFocus&&(this.ignoreNextMapClick=!0)},!0);const p=new T3({trackingOptions:{enableHighAccuracy:!0},projection:c.getProjection()}),f=new N1;f.setStyle(new W0({image:new U0({radius:6,fill:new B0({color:"#3399CC"}),stroke:new V0({color:"#fff",width:2})})}));const g=new i3({features:[f]}),m=new W2({source:g,zIndex:15});p.on("change:position",function(){const e=p.getPosition();f.setGeometry(e?new hY(e):null)});const y=document.createElement("div");y.className="ol-control ol-locate";const v=document.createElement("button");let b,w;v.style.display="flex",v.style.alignItems="center",v.style.justifyContent="center",v.innerHTML=`${_B("navigation")}`,v.title="Locate Me",y.appendChild(v);const _=()=>{b&&(clearTimeout(b),b=null);try{w&&(p.un("change:position",x),w=null)}catch{}this.locationOverlayElement&&this.locationOverlayElement.classList.remove("active")},x=()=>{const e=p.getPosition(),t=p.getAccuracyGeometry(),n=p.getAccuracy();if(console.debug("Geolocation change:",{coordinates:e,accuracy:n}),!e)return;const r=this.mapInstance.getSize(),i=this.mapInstance.getView();let s=null;if(this.locationOverlayElement){const t=i.getResolution(),r=2*(n||50)/sZ(i.getProjection(),t,e);this.locationOverlayElement.style.width=`${r}px`,this.locationOverlayElement.style.height=`${r}px`,this.locationOverlay.setPosition(e)}if(n&&n<=20&&_(),t){const e=t.getExtent();s=3.162*i.getResolutionForExtent(e,r)}else n&&(s=6.325*n/Math.min(r[0],r[1])/sZ(i.getProjection(),1,e));let o={center:e,duration:1e3};if(s){const e=i.getResolutionForZoom(17);o.resolution=Math.max(s,e)}else o.zoom=16;this.mapInstance.getView().animate(o)},C=()=>{console.debug("Getting current geolocation..."),_(),p.setTracking(!0);const e=p.getPosition();this.locationOverlayElement&&this.locationOverlayElement.classList.add("active"),e&&x(),w=p.on("change:position",x),b=setTimeout(()=>{_()},1e4)};v.addEventListener("click",C);const S=new YY({element:y});this.mapInstance.addLayer(m),this.mapInstance.addControl(S),l||"index"!==this.router.currentRouteName||C(),this.mapInstance.on("singleclick",this.handleMapClick),this.mapInstance.on("moveend",this.handleMapMove),this.mapInstance.on("pointermove",e=>{const t=this.mapInstance.getEventPixel(e.originalEvent),n=this.mapInstance.hasFeatureAtPixel(t,{hitTolerance:10});this.mapInstance.getTarget().style.cursor=n?"pointer":""}),this.storage.rs.on("ready",()=>{this.handleMapMove()})});updateInteractions=cq(()=>{if(!this.mapInstance)return;this.mapInstance.getInteractions().getArray().slice().forEach(e=>{e instanceof vX&&this.mapInstance.removeInteraction(e)});const e=!!this.settings.mapKinetic&&new tX(-.005,.05,100);this.settings.mapKinetic&&window.innerWidth<=768&&(e.minVelocity_=.25),this.mapInstance.addInteraction(new vX({kinetic:e}))});updateSearchResults=cq(()=>{if(!this.searchResultsSource)return;this.searchResultsSource.clear();const e=this.mapUi.searchResults;if(!e||0===e.length)return;const t=[];e.forEach(e=>{if(e.lat&&e.lon){const n=new N1({geometry:new hY(lZ([e.lon,e.lat])),name:e.title,id:e.id,isSearchResult:!0,originalPlace:e});t.push(n)}}),t.length>0&&this.searchResultsSource.addFeatures(t)});updateSelectedPin=cq(()=>{const e=this.mapUi.selectedPlace,t=this.mapUi.selectionOptions||{};if(this.searchResultsSource&&this.searchResultsSource.changed(),this.selectedPinOverlay&&this.selectedPinElement)if(this.selectedShapeSource&&this.selectedShapeSource.clear(),e&&e.lat&&e.lon){const r=lZ([e.lon,e.lat]);if(this.selectedPinOverlay.setPosition(r),this.selectedPinElement.classList.remove("active"),this.selectedPinElement.offsetWidth,this.selectedPinElement.classList.add("active"),e.geojson&&this.selectedShapeSource)try{const t=(new f3).readFeature(e.geojson,{featureProjection:"EPSG:3857"});this.selectedShapeSource.addFeature(t)}catch(n){console.warn("Failed to render selected place shape:",n)}t.preventZoom?e.bbox&&!this.bboxFitsInView(e.bbox)?this.zoomToBbox(e.bbox):this.handlePinVisibility(r,{maintainZoom:!0}):e.bbox?this.zoomToBbox(e.bbox):this.handlePinVisibility(r)}else this.selectedPinElement.classList.remove("active"),this.selectedPinOverlay.setPosition(void 0)});bboxFitsInView(e){if(!this.mapInstance||!e)return!0;const t=this.mapInstance.getView(),n=this.mapInstance.getSize();return wG(t.calculateExtent(n),[...lZ([e.minLon,e.minLat]),...lZ([e.maxLon,e.maxLat])])}zoomToBbox(e){if(!this.mapInstance||!e)return;const t=this.mapInstance.getView(),n=this.mapInstance.getSize(),r=[...lZ([e.minLon,e.minLat]),...lZ([e.maxLon,e.maxLat])];let i=[.15*n[1],.15*n[0],.15*n[1],.15*n[0]];if(n[0]<=768){const e=.5*n[1],t=.15*e,r=.5*n[1]+.15*e;i[0]=t,i[2]=r}else if(this.args.isSidebarOpen){const e=getComputedStyle(document.documentElement).getPropertyValue("--sidebar-width").trim(),t=parseInt(e,10)||360,r=n[0]-t;i[3]=t+.15*r,i[1]=.15*r}const s=t.getZoom();t.fit(r,{padding:i,duration:1e3,easing:e=>e*(2-e),maxZoom:Math.max(s,18)})}handlePinVisibility(e,t={}){if(!this.mapInstance)return;const n=this.mapInstance.getView().getZoom();if(!t.maintainZoom&&n<16)return void this.animateToSmartCenter(e,16);const r=this.mapInstance.getPixelFromCoordinate(e),i=this.mapInstance.getSize();if(!r||r[0]<0||r[0]>i[0]||r[1]<0||r[1]>i[1]){const n=t.maintainZoom?null:16;this.animateToSmartCenter(e,n)}else this.panIfObscured(e)}animateToSmartCenter(e,t=null){if(!this.mapInstance)return;const n=this.mapInstance.getSize(),r=this.mapInstance.getView();let i=r.getResolution();null!==t&&(i=r.getResolutionForZoom(t));let s=e;if(n[0]<=768){const t=n[1],r=document.querySelector(".app-header"),o=r?r.offsetHeight:60,a=(t/2-(o+(t/2-o)/2))*i;s=[e[0],e[1]-a]}else if(this.args.isSidebarOpen){const t=getComputedStyle(document.documentElement).getPropertyValue("--sidebar-width").trim(),n=(parseInt(t,10)||360)/2*i;s=[e[0]-n,e[1]]}const o={center:s,duration:1e3,easing:e=>e*(2-e)};null!==t&&(o.zoom=t),r.animate(o)}panIfObscured(e){if(!this.mapInstance)return;const t=this.mapInstance.getSize(),n=this.mapInstance.getPixelFromCoordinate(e);if(!n)return;const r=this.mapInstance.getView(),i=r.getCenter(),s=r.getResolution();let o=n[0],a=n[1],l=!1;const c=document.querySelector(".app-header"),u=c?c.offsetHeight:60;if(t[0]<=768){const e=t[1],r=e/2;n[1]>r&&(a=u+(e/2-u)/2,l=!0)}else if(this.args.isSidebarOpen){const e=getComputedStyle(document.documentElement).getPropertyValue("--sidebar-width").trim(),r=parseInt(e,10)||360;n[0]e*(2-e)})}}updateBookmarks=cq(()=>{const e=this.storage.placesInView;this.loadBookmarks(e)});async loadBookmarks(e=[]){try{if(!this.bookmarkSource)return;e&&0!==e.length||(e=this.storage.placesInView),this.bookmarkSource.clear(),e&&Array.isArray(e)&&e.forEach(e=>{if(e.lat&&e.lon){const t=new N1({geometry:new hY(lZ([e.lon,e.lat])),name:e.title,id:e.id,isBookmark:!0,originalPlace:e});this.bookmarkSource.addFeature(t)}})}catch(t){console.error("Failed to load bookmarks:",t)}}syncPulse=cq(()=>{this.searchOverlayElement&&(this.mapUi.isSearching?this.searchOverlayElement.classList.add("active"):this.searchOverlayElement.classList.remove("active"))});syncCreationMode=cq(()=>{if(this.crosshairElement&&this.mapInstance)if(this.mapUi.isCreating){this.crosshairElement.classList.add("visible");const e=this.mapUi.creationCoordinates;if(e&&e.lat&&e.lon){const t=lZ([e.lon,e.lat]);this.animateToCrosshair(t)}}else this.crosshairElement.classList.remove("visible")});animateToCrosshair(e){if(!this.mapInstance||!this.crosshairElement)return;const t=this.mapInstance.getTargetElement().getBoundingClientRect(),n=this.crosshairElement.getBoundingClientRect(),r=n.left+n.width/2-t.left,i=n.top+n.height/2-t.top,s=this.mapInstance.getSize(),o=r-s[0]/2,a=i-s[1]/2,l=this.mapInstance.getView(),c=l.getResolution(),u=o*c,h=-a*c,d=e[0]-u,p=e[1]-h,f=l.getCenter();Math.sqrt(Math.pow(f[0]-d,2)+Math.pow(f[1]-p,2))>5*c&&l.animate({center:[d,p],duration:800,easing:e=>e*(2-e)})}handleMapMove=async()=>{if(!this.mapInstance||this.isDestroying||this.isDestroyed)return;const e=this.mapInstance.getView(),t=cZ(e.getCenter());if(this.mapUi.updateCenter(t[1],t[0]),this.mapUi.updateZoom(e.getZoom()),this.mapUi.isCreating){const e=this.mapInstance.getTargetElement().getBoundingClientRect(),t=this.crosshairElement.getBoundingClientRect(),n=t.left+t.width/2-e.left,r=t.top+t.height/2-e.top,i=cZ(this.mapInstance.getCoordinateFromPixel([n,r])),s=parseFloat(i[1].toFixed(6)),o=parseFloat(i[0].toFixed(6));this.mapUi.updateCreationCoordinates(s,o),this.router.replaceWith("place.new",{queryParams:{lat:s,lon:o}})}const n=this.mapInstance.getSize(),r=this.mapInstance.getView().calculateExtent(n),[i,s]=cZ([r[0],r[1]]),[o,a]=cZ([r[2],r[3]]),l={minLat:s,minLon:i,maxLat:a,maxLon:o};if(this.mapUi.updateBounds(l),await this.storage.loadPlacesInBounds(l),!this.isDestroying&&!this.isDestroyed){this.nostrData.loadPlacesInBounds(l),this.loadBookmarks(this.storage.placesInView);try{const e=this.mapInstance.getView(),t={center:cZ(e.getCenter()),zoom:e.getZoom()};localStorage.setItem("marco:map-view",JSON.stringify(t))}catch(c){console.warn("Failed to save map view:",c)}}};handleMapClick=async e=>{if(this.ignoreNextMapClick)return void(this.ignoreNextMapClick=!1);const t=this.mapInstance.getFeaturesAtPixel(e.pixel,{hitTolerance:10});let n=null,r=null,i=null;if(t&&t.length>0){console.debug(`Found ${t.length} features in map layer:`);for(const n of t)console.debug(n);const e=t.find(e=>e.get("isBookmark")),s=t.find(e=>e.get("isSearchResult"));e?n=e.get("originalPlace"):s&&(r=s.get("originalPlace"));const o=t[0].getProperties();o.name&&(i=o.name)}const s=e=>{("search"===this.router.currentRouteName||this.mapUi.currentSearch&&this.mapUi.searchResults.length>0)&&(this.mapUi.returnToSearch=!0),this.mapUi.preventNextZoom=!0,this.mapUi.selectPlace(e,{preventZoom:!0}),this.mapUi.showSidebar(),this.router.transitionTo("place",e)};if(this.args.isSidebarOpen){const e=n||r;return e?(console.debug("Clicked feature while sidebar open (switching):",e),void s(e)):void(this.args.onOutsideClick&&this.args.onOutsideClick())}if(n)return console.debug("Clicked bookmark:",n),void s(n);if(r)return console.debug("Clicked search result:",r),void s(r);if(this.mapUi.searchResults&&this.mapUi.searchResults.length>0)return console.debug("Clearing active search and markers on map click"),void this.router.transitionTo("index");if(this.mapInstance.getView().getZoom()<16)return;const[o,a]=cZ(e.coordinate),l=i?30:50;if(this.searchOverlayElement){const t=this.mapInstance.getView(),n=2*l/sZ(t.getProjection(),t.getResolution(),e.coordinate);this.searchOverlayElement.style.width=`${n}px`,this.searchOverlayElement.style.height=`${n}px`,this.searchOverlay.setPosition(e.coordinate)}this.mapUi.startSearch();const c={lat:a.toFixed(6),lon:o.toFixed(6),q:null,category:null,selected:i||null};this.router.transitionTo("search",{queryParams:c})};static{Ap(rg({id:null,block:'[[[11,0],[16,0,[29,["map-container ",[52,[30,1],"sidebar-open"]]]],[4,[30,0,["setupMap"]],null,null],[4,[30,0,["updateInteractions"]],null,null],[4,[30,0,["updateBookmarks"]],null,null],[4,[30,0,["updateSearchResults"]],null,null],[4,[30,0,["updateSelectedPin"]],null,null],[4,[30,0,["syncPulse"]],null,null],[4,[30,0,["syncCreationMode"]],null,null],[12],[13]],["@isSidebarOpen"],["if"]]',moduleName:"(unknown template module)",isStrictMode:!0}),this)}},Ree=class extends I${static{dF(this.prototype,"storage",[dp])}#U=void fF(this,"storage");static{dF(this.prototype,"osmAuth",[dp])}#St=void fF(this,"osmAuth");static{dF(this.prototype,"nostrAuth",[dp])}#N=void fF(this,"nostrAuth");static{dF(this.prototype,"nostrData",[dp])}#F=void fF(this,"nostrData");static{dF(this.prototype,"isNostrConnectModalOpen",[Vr],function(){return!1})}#Ve=void fF(this,"isNostrConnectModalOpen");connectRS(){this.args.onClose(),this.args.storage.showConnectWidget()}static{pF(this.prototype,"connectRS",[ql])}disconnectRS(){this.args.storage.disconnect()}static{pF(this.prototype,"disconnectRS",[ql])}connectOsm(){this.args.onClose(),this.osmAuth.login()}static{pF(this.prototype,"connectOsm",[ql])}disconnectOsm(){this.osmAuth.logout()}static{pF(this.prototype,"disconnectOsm",[ql])}openNostrConnectModal(){this.isNostrConnectModalOpen=!0}static{pF(this.prototype,"openNostrConnectModal",[ql])}closeNostrConnectModal(){this.isNostrConnectModalOpen=!1}static{pF(this.prototype,"closeNostrConnectModal",[ql])}disconnectNostr(){this.nostrAuth.disconnect()}static{pF(this.prototype,"disconnectNostr",[ql])}static{Ap(rg({id:null,block:'[[[10,0],[14,0,"user-menu-popover"],[12],[1,"\\n "],[10,"ul"],[14,0,"account-list"],[12],[1,"\\n "],[10,"li"],[14,0,"account-item"],[12],[1,"\\n "],[10,0],[14,0,"account-header"],[12],[1,"\\n "],[10,0],[14,0,"account-info"],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size"],["remotestorage",18]],null],[1,"\\n "],[10,1],[12],[1,"RemoteStorage"],[13],[1,"\\n "],[13],[1,"\\n"],[41,[30,1,["connected"]],[[[1," "],[11,"button"],[24,0,"btn-text text-danger"],[24,4,"button"],[4,[32,1],["click",[30,0,["disconnectRS"]]],null],[12],[1,"Disconnect"],[13],[1,"\\n"]],[]],[[[1," "],[11,"button"],[24,0,"btn-text text-primary"],[24,4,"button"],[4,[32,1],["click",[30,0,["connectRS"]]],null],[12],[1,"Connect"],[13],[1,"\\n"]],[]]],[1," "],[13],[1,"\\n "],[10,0],[14,0,"account-status"],[12],[1,"\\n"],[41,[30,1,["connected"]],[[[1," "],[10,"strong"],[12],[1,[30,1,["userAddress"]]],[13],[1,"\\n"]],[]],[[[1," Not connected\\n"]],[]]],[1," "],[13],[1,"\\n "],[13],[1,"\\n\\n "],[10,"li"],[14,0,"account-item"],[12],[1,"\\n "],[10,0],[14,0,"account-header"],[12],[1,"\\n "],[10,0],[14,0,"account-info"],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size"],["map",18]],null],[1,"\\n "],[10,1],[12],[1,"OpenStreetMap"],[13],[1,"\\n "],[13],[1,"\\n"],[41,[30,0,["osmAuth","isConnected"]],[[[1," "],[11,"button"],[24,0,"btn-text text-danger"],[24,4,"button"],[4,[32,1],["click",[30,0,["disconnectOsm"]]],null],[12],[1,"Disconnect"],[13],[1,"\\n"]],[]],[[[1," "],[11,"button"],[24,0,"btn-text text-primary"],[24,4,"button"],[4,[32,1],["click",[30,0,["connectOsm"]]],null],[12],[1,"Connect"],[13],[1,"\\n"]],[]]],[1," "],[13],[1,"\\n "],[10,0],[14,0,"account-status"],[12],[1,"\\n"],[41,[30,0,["osmAuth","isConnected"]],[[[1," "],[10,"strong"],[12],[1,[30,0,["osmAuth","userDisplayName"]]],[13],[1,"\\n"]],[]],[[[1," Not connected\\n"]],[]]],[1," "],[13],[1,"\\n "],[13],[1,"\\n\\n "],[10,"li"],[14,0,"account-item"],[12],[1,"\\n "],[10,0],[14,0,"account-header"],[12],[1,"\\n "],[10,0],[14,0,"account-info"],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size"],["zap",18]],null],[1,"\\n "],[10,1],[12],[1,"Nostr"],[13],[1,"\\n "],[13],[1,"\\n"],[41,[30,0,["nostrAuth","isConnected"]],[[[1," "],[11,"button"],[24,0,"btn-text text-danger"],[24,4,"button"],[4,[32,1],["click",[30,0,["disconnectNostr"]]],null],[12],[1,"Disconnect"],[13],[1,"\\n"]],[]],[[[1," "],[11,"button"],[24,0,"btn-text text-primary"],[24,4,"button"],[4,[32,1],["click",[30,0,["openNostrConnectModal"]]],null],[12],[1,"Connect"],[13],[1,"\\n"]],[]]],[1," "],[13],[1,"\\n "],[10,0],[14,0,"account-status"],[12],[1,"\\n"],[41,[30,0,["nostrAuth","isConnected"]],[[[1," "],[10,"strong"],[15,"title",[30,0,["nostrAuth","pubkey"]]],[12],[1,"\\n "],[1,[30,0,["nostrData","userDisplayName"]]],[1,"\\n "],[13],[1,"\\n"]],[]],[[[1," Not connected\\n"]],[]]],[1," "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"],[13],[1,"\\n\\n"],[41,[30,0,["isNostrConnectModalOpen"]],[[[1," "],[8,[32,2],null,[["@onClose"],[[30,0,["closeNostrConnectModal"]]]],[["default"],[[[[1,"\\n "],[8,[32,3],null,[["@onConnect"],[[30,0,["closeNostrConnectModal"]]]],null],[1,"\\n "]],[]]]]],[1,"\\n"]],[]],null]],["@storage"],["if"]]',moduleName:"(unknown template module)",scope:()=>({Icon:M$,on:Ww,Modal:rq,NostrConnect:Uq}),isStrictMode:!0}),this)}};function Tee(e){return e}function Lee(e){return Object.keys(e).map(t=>e[t])}function Iee(e){if(e)if(e instanceof YV)e.executor.asyncErrorsHandled=!0;else if(e instanceof IV)return e._toPromise();return e}function Pee(e,t,n){return function(r){let i=function(e,t){if(Array.isArray(e))return e.map(t);if("object"==typeof e&&null!==e){let n={};return Object.keys(e).forEach(r=>{n[r]=t(e[r])}),n}return e}(r,Iee),s=n(i);Array.isArray(s);let o=Ua.defer();e[t](i).then(o.resolve,o.reject);let a=!1,l=()=>{a||(a=!0,s.forEach(e=>{e&&(e instanceof YV?e.cancel():"function"==typeof e.__ec_cancel__&&e[CV]())}))},c=o.promise.finally(l);return c[CV]=l,c}}Pee(Ua.Promise,"all",Tee),Pee(Ua,"allSettled",Tee),Pee(ra,"race",Tee),Pee(Ua,"hash",Lee),Pee(Ua,"hashSettled",Lee);var Mee=class extends IV{_deferable(){return HV.defer()}},Aee=class extends Mee{constructor(e){super(),this.ms=e}onYield(e){let t=Ts(()=>e.next(),this.ms);return()=>Ms(t)}},Oee=class extends I${static{dF(this.prototype,"photon",[dp])}#Ct=void fF(this,"photon");static{dF(this.prototype,"osm",[dp])}#B=void fF(this,"osm");static{dF(this.prototype,"storage",[dp])}#U=void fF(this,"storage");static{dF(this.prototype,"router",[dp])}#We=void fF(this,"router");static{dF(this.prototype,"mapUi",[dp])}#He=void fF(this,"mapUi");static{dF(this.prototype,"map",[dp])}#kt=void fF(this,"map");static{dF(this.prototype,"_internalQuery",[Vr],function(){return""})}#Et=void fF(this,"_internalQuery");static{dF(this.prototype,"results",[Vr],function(){return[]})}#Rt=void fF(this,"results");static{dF(this.prototype,"isFocused",[Vr],function(){return!1})}#Tt=void fF(this,"isFocused");static{dF(this.prototype,"isLoading",[Vr],function(){return!1})}#Lt=void fF(this,"isLoading");get query(){return this.args.query??this._internalQuery}set query(e){this._internalQuery=e}get showPopover(){return this.isFocused&&this.results.length>0}handleInput(e){const t=e.target.value;this.query=t,this.args.onQueryChange&&this.args.onQueryChange(t),t.length<2?this.results=[]:this.searchTask.perform(t)}static{pF(this.prototype,"handleInput",[ql])}formatSavedPlace(e){const t=(e._listIds||[]).map(e=>this.storage.lists?.find(t=>t.id===e)?.title).filter(Boolean).join(", "),n=t?`Saved place (${t})`:"Saved place";return{source:"saved",id:e.id,title:e.title,icon:"bookmark",description:n,osmId:e.osmId,osmType:e.osmType,lat:e.lat,lon:e.lon}}searchTask=eW(()=>({context:this,generator:function*(e){yield new Aee(300);const t="string"==typeof e?e:this.query;if(!(t.length<2)){this.isLoading=!0;try{let e,n;this.mapUi.currentCenter&&({lat:e,lon:n}=this.mapUi.currentCenter);const r=t.toLowerCase(),i=VU.filter(e=>e.label.toLowerCase().includes(r)).map(e=>({source:"category",title:e.label,id:e.id,icon:"search"}));let s=[];r.length>=3&&(s=this.storage.savedPlaces.filter(e=>e.title&&e.title.toLowerCase().includes(r)).map(e=>this.formatSavedPlace(e)));const o=yield this.photon.search(t,e,n),a=new Set(s.map(e=>e.osmId).filter(Boolean)),l=o.filter(e=>!a.has(e.osmId));this.results=[...i,...s,...l]}catch(n){console.error("Search failed",n),this.results=[]}finally{this.isLoading=!1}}}}),{restartable:!0},"searchTask",null);handleFocus(){this.isFocused=!0,this.mapUi.setSearchBoxFocus(!0),this.query.length>=2&&0===this.results.length&&this.searchTask.perform()}static{pF(this.prototype,"handleFocus",[ql])}handleBlur(){setTimeout(()=>{this.isFocused=!1,this.mapUi.setSearchBoxFocus(!1)},300)}static{pF(this.prototype,"handleBlur",[ql])}handleSubmit(e){if(e.preventDefault(),!this.query)return;let t={q:this.query,selected:null,category:null};if(this.mapUi.currentCenter){const{lat:e,lon:n}=this.mapUi.currentCenter;t.lat=parseFloat(e).toFixed(4),t.lon=parseFloat(n).toFixed(4)}this.router.transitionTo("search",{queryParams:t}),this.isFocused=!1}static{pF(this.prototype,"handleSubmit",[ql])}selectResult(e){if("category"===e.source){this.query=e.title,this.args.onQueryChange&&this.args.onQueryChange(e.title),this.results=[];let t=null,n=null;return this.mapUi.currentCenter&&(({lat:t,lon:n}=this.mapUi.currentCenter),t=t?.toString(),n=n?.toString()),void this.router.transitionTo("search",{queryParams:{q:e.title,category:e.id,selected:null,lat:t,lon:n}})}if(this.query=e.title,this.args.onQueryChange&&this.args.onQueryChange(e.title),this.results=[],"saved"===e.source&&e.id&&!e.osmId)this.router.transitionTo("place",e.id);else if(e.osmId){const t=`osm:${e.osmType}:${e.osmId}`;this.router.transitionTo("place",t)}else this.router.transitionTo("search",{queryParams:{q:e.title,lat:e.lat,lon:e.lon,selected:null,category:null}})}static{pF(this.prototype,"selectResult",[ql])}clear(){this.searchTask.cancelAll(),this.mapUi.stopLoading(),this.osm.cancelAll(),this.photon.cancelAll(),this.query="",this.results=[],this.args.onQueryChange&&this.args.onQueryChange(""),this.router.transitionTo("index")}static{pF(this.prototype,"clear",[ql])}static{Ap(rg({id:null,block:'[[[10,0],[14,0,"search-box"],[12],[1,"\\n "],[11,"form"],[24,0,"search-form"],[4,[32,0],["submit",[30,0,["handleSubmit"]]],null],[12],[1,"\\n "],[11,"button"],[24,0,"menu-btn-integrated"],[24,"aria-label","Menu"],[24,4,"button"],[4,[32,0],["click",[30,1]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["menu",20,"#5f6368"]],null],[1,"\\n "],[13],[1,"\\n\\n "],[11,"input"],[24,0,"search-input"],[24,"placeholder","Search places..."],[24,"aria-label","Search places"],[16,2,[30,0,["query"]]],[24,"autocomplete","off"],[24,4,"search"],[4,[32,0],["input",[30,0,["handleInput"]]],null],[4,[32,0],["focus",[30,0,["handleFocus"]]],null],[4,[32,0],["blur",[30,0,["handleBlur"]]],null],[12],[13],[1,"\\n\\n "],[10,"button"],[14,0,"search-submit-btn"],[14,"aria-label","Search"],[14,4,"submit"],[12],[1,"\\n"],[41,[28,[32,2],[[28,[32,3],[[30,0,["mapUi","loadingState","type"]],"text"],null],[28,[32,3],[[30,0,["mapUi","loadingState","type"]],"category"],null]],null],[[[1," "],[8,[32,1],null,[["@name","@size"],["loading-ring",20]],null],[1,"\\n"]],[]],[[[1," "],[8,[32,1],null,[["@name","@size","@color"],["search",20,"#5f6368"]],null],[1,"\\n"]],[]]],[1," "],[13],[1,"\\n\\n"],[41,[30,0,["query"]],[[[1," "],[11,"button"],[24,0,"search-clear-btn"],[24,"aria-label","Clear"],[24,4,"button"],[4,[32,0],["click",[30,0,["clear"]]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["x",20,"#5f6368"]],null],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n\\n"],[41,[30,0,["showPopover"]],[[[1," "],[10,0],[14,0,"search-results-popover"],[12],[1,"\\n "],[10,"ul"],[14,0,"search-results-list"],[12],[1,"\\n"],[42,[28,[31,2],[[28,[31,2],[[30,0,["results"]]],null]],null],null,[[[1," "],[10,"li"],[12],[1,"\\n "],[11,"button"],[24,0,"search-result-item"],[24,4,"button"],[4,[32,0],["click",[28,[32,4],[[30,0,["selectResult"]],[30,2]],null]],null],[12],[1,"\\n "],[10,0],[14,0,"result-icon"],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],[[52,[30,2,["icon"]],[30,2,["icon"]],"map-pin"],16,"#666"]],null],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"result-info"],[12],[1,"\\n "],[10,1],[14,0,"result-title"],[12],[1,[30,2,["title"]]],[13],[1,"\\n"],[41,[28,[32,3],[[30,2,["source"]],"osm"],null],[[[1," "],[10,1],[14,0,"result-desc"],[12],[1,[28,[32,5],[[30,2,["type"]]],null]],[13],[1,"\\n"]],[]],[[[41,[30,2,["description"]],[[[1," "],[10,1],[14,0,"result-desc"],[12],[1,[30,2,["description"]]],[13],[1,"\\n"]],[]],null]],[]]],[1," "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[2]],null],[1," "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[13]],["@onToggleMenu","result"],["if","each","-track-array"]]',moduleName:"(unknown template module)",scope:()=>({on:Ww,Icon:M$,or:J$,eq:sq,fn:Z$,humanizeOsmTag:CW}),isStrictMode:!0}),this)}},Nee=class extends I${static{dF(this.prototype,"router",[dp])}#We=void fF(this,"router");static{dF(this.prototype,"mapUi",[dp])}#He=void fF(this,"mapUi");get categories(){return VU}searchCategory(e){this.args.onSelect&&this.args.onSelect(e);let t={category:e.id,q:null};if(this.mapUi.currentCenter){const{lat:e,lon:n}=this.mapUi.currentCenter;t.lat=parseFloat(e).toFixed(4),t.lon=parseFloat(n).toFixed(4)}this.router.transitionTo("search",{queryParams:t})}static{pF(this.prototype,"searchCategory",[ql])}static{Ap(rg({id:null,block:'[[[10,0],[14,0,"category-chips-scroll"],[12],[1,"\\n "],[10,0],[14,0,"category-chips-container"],[12],[1,"\\n"],[42,[28,[31,1],[[28,[31,1],[[30,0,["categories"]]],null]],null],null,[[[1," "],[11,"button"],[24,0,"category-chip"],[16,"aria-label",[30,1,["label"]]],[16,"disabled",[28,[32,0],[[28,[32,1],[[30,0,["mapUi","loadingState","type"]],"category"],null],[28,[32,1],[[30,0,["mapUi","loadingState","value"]],[30,1,["id"]]],null]],null]],[24,4,"button"],[4,[32,2],["click",[28,[32,3],[[30,0,["searchCategory"]],[30,1]],null]],null],[12],[1,"\\n "],[8,[32,4],null,[["@name","@size"],[[30,1,["icon"]],16]],null],[1,"\\n "],[10,1],[12],[1,[30,1,["label"]]],[13],[1,"\\n "],[13],[1,"\\n"]],[1]],null],[1," "],[13],[1,"\\n"],[13]],["category"],["each","-track-array"]]',moduleName:"(unknown template module)",scope:()=>({and:iq,eq:sq,on:Ww,fn:Z$,Icon:M$}),isStrictMode:!0}),this)}},Fee=cq((e,[t])=>{let n=null;return async function(){if(t)try{const r=await caches.open("nostr-image-cache-v1"),i=await r.match(t);if(i){const t=await i.blob();return n=URL.createObjectURL(t),void(e.src=n)}const s=await fetch(t,{mode:"cors",credentials:"omit"});if(s.ok){const i=s.clone();await r.put(t,i);const o=await s.blob();n=URL.createObjectURL(o),e.src=n}else e.src=t}catch(_6){console.warn(`Failed to cache image ${t}, falling back to standard src`,_6),e.src=t}else e.src=""}(),()=>{n&&(URL.revokeObjectURL(n),n=null)}}),Dee=class extends I${static{dF(this.prototype,"storage",[dp])}#U=void fF(this,"storage");static{dF(this.prototype,"settings",[dp])}#D=void fF(this,"settings");static{dF(this.prototype,"nostrAuth",[dp])}#N=void fF(this,"nostrAuth");static{dF(this.prototype,"nostrData",[dp])}#F=void fF(this,"nostrData");static{dF(this.prototype,"mapUi",[dp])}#He=void fF(this,"mapUi");static{dF(this.prototype,"router",[dp])}#We=void fF(this,"router");static{dF(this.prototype,"isUserMenuOpen",[Vr],function(){return!1})}#It=void fF(this,"isUserMenuOpen");static{dF(this.prototype,"searchQuery",[Vr],function(){return""})}#Pt=void fF(this,"searchQuery");constructor(){super(...arguments),this.router&&"function"==typeof this.router.on&&this.router.on("routeDidChange",this.syncSearchQuery),this.syncSearchQuery()}willDestroy(){this.router&&"function"==typeof this.router.off&&this.router.off("routeDidChange",this.syncSearchQuery),super.willDestroy(...arguments)}syncSearchQuery(){const e=this.mapUi.currentSearch||this.router?.currentRoute?.queryParams;if(e?.q)this.searchQuery=e.q;else if(e?.category){const t=VU.find(t=>t.id===e.category);this.searchQuery=t?t.label:e.category}else this.searchQuery=""}static{pF(this.prototype,"syncSearchQuery",[ql])}get isSearching(){return!(!this.mapUi.searchBoxHasFocus||!this.searchQuery)||("search"===this.router?.currentRouteName?!this.mapUi.loadingState&&this.mapUi.searchResults&&this.mapUi.searchResults.length>0:!("search"===this.router?.currentRouteName||!this.searchQuery))}get showQuickSearch(){const e=this.mapUi.currentZoom??13;return this.settings.showQuickSearchButtons&&e>=12}toggleUserMenu(){this.isUserMenuOpen=!this.isUserMenuOpen}static{pF(this.prototype,"toggleUserMenu",[ql])}closeUserMenu(){this.isUserMenuOpen=!1}static{pF(this.prototype,"closeUserMenu",[ql])}handleQueryChange(e){this.searchQuery=e}static{pF(this.prototype,"handleQueryChange",[ql])}handleChipSelect(e){this.searchQuery=e.label}static{pF(this.prototype,"handleChipSelect",[ql])}static{Ap(rg({id:null,block:'[[[10,"header"],[14,0,"app-header"],[12],[1,"\\n "],[10,0],[14,0,"header-left"],[12],[1,"\\n "],[8,[32,0],null,[["@query","@onToggleMenu","@onQueryChange"],[[30,0,["searchQuery"]],[30,1],[30,0,["handleQueryChange"]]]],null],[1,"\\n "],[13],[1,"\\n\\n"],[41,[30,0,["showQuickSearch"]],[[[1," "],[10,0],[15,0,[29,["header-center ",[52,[30,0,["isSearching"]],"searching"]]]],[12],[1,"\\n "],[8,[32,1],null,[["@onSelect"],[[30,0,["handleChipSelect"]]]],null],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n "],[10,0],[14,0,"header-right"],[12],[1,"\\n "],[10,0],[14,0,"user-menu-container"],[12],[1,"\\n "],[11,"button"],[24,0,"user-btn btn-press"],[24,"aria-label","User Menu"],[24,4,"button"],[4,[32,2],["click",[30,0,["toggleUserMenu"]]],null],[12],[1,"\\n"],[41,[28,[32,3],[[30,0,["nostrAuth","isConnected"]],[30,0,["nostrData","profile","picture"]]],null],[[[1," "],[11,"img"],[24,0,"user-avatar"],[24,"alt","User Avatar"],[4,[32,4],[[30,0,["nostrData","profile","picture"]]],null],[12],[13],[1,"\\n"]],[]],[[[1," "],[10,0],[14,0,"user-avatar-placeholder"],[12],[1,"\\n "],[8,[32,5],null,[["@name","@size","@color"],["user",20,"white"]],null],[1,"\\n "],[13],[1,"\\n"]],[]]],[1," "],[13],[1,"\\n\\n"],[41,[30,0,["isUserMenuOpen"]],[[[1," "],[8,[32,6],null,[["@storage","@onClose"],[[30,0,["storage"]],[30,0,["closeUserMenu"]]]],null],[1,"\\n "],[11,0],[24,0,"menu-backdrop"],[24,"role","button"],[4,[32,2],["click",[30,0,["closeUserMenu"]]],null],[12],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n "],[13],[1,"\\n"],[13]],["@onToggleMenu"],["if"]]',moduleName:"(unknown template module)",scope:()=>({SearchBox:Oee,CategoryChips:Nee,on:Ww,and:iq,cachedImage:Fee,Icon:M$,UserMenu:Ree}),isStrictMode:!0}),this)}},zee=class extends I${static{dF(this.prototype,"toast",[dp])}#Ie=void fF(this,"toast");static{Ap(rg({id:null,block:'[[[41,[30,0,["toast","isVisible"]],[[[1," "],[10,0],[14,0,"toast-notification"],[12],[1,"\\n "],[1,[30,0,["toast","message"]]],[1,"\\n "],[13],[1,"\\n"]],[]],null]],[],["if"]]',moduleName:"(unknown template module)",isStrictMode:!0}),this)}},jee=a({default:()=>Uee}),Uee=class extends I${static{dF(this.prototype,"storage",[dp])}#U=void fF(this,"storage");static{dF(this.prototype,"mapUi",[dp])}#He=void fF(this,"mapUi");static{dF(this.prototype,"router",[dp])}#We=void fF(this,"router");get isSidebarOpen(){const e=this.router.currentRouteName;return this.mapUi.isSidebarVisible&&("place"===e||"place.new"===e||"search"===e||"menu"===e||"contributions"===e||e.startsWith("lists"))}constructor(){super(...arguments),console.debug("Application component constructed"),this.storage}toggleAppMenu(){"menu"===this.router.currentRouteName?this.router.transitionTo("index"):this.router.transitionTo("menu")}static{pF(this.prototype,"toggleAppMenu",[ql])}handleOutsideClick(){const e=this.router.currentRouteName;("search"===e||"place"===e||"menu"===e||"contributions"===e||e.startsWith("lists"))&&(this.mapUi.clearSelection(),this.mapUi.hideSidebar(),"menu"===e||"contributions"===e||e.startsWith("lists")?this.router.transitionTo("index"):"place"===e&&(this.mapUi.returnToSearch&&this.mapUi.currentSearch?this.router.transitionTo("search",{queryParams:this.mapUi.currentSearch}):this.router.transitionTo("index")))}static{pF(this.prototype,"handleOutsideClick",[ql])}refreshBookmarks(){this.storage.notifyChange()}static{pF(this.prototype,"refreshBookmarks",[ql])}static{Ap(rg({id:null,block:'[[[1,[28,[32,0],["Marco"],null]],[1,"\\n\\n"],[10,0],[15,0,[52,[30,0,["mapUi","isSidebarOpening"]],"sidebar-opening"]],[12],[1,"\\n "],[8,[32,1],null,[["@onToggleMenu"],[[30,0,["toggleAppMenu"]]]],null],[1,"\\n\\n "],[10,0],[14,1,"rs-widget-container"],[15,0,[52,[30,0,["storage","isWidgetOpen"]],"visible"]],[12],[13],[1,"\\n\\n"],[41,[30,0,["storage","isWidgetOpen"]],[[[1," "],[11,0],[24,0,"rs-backdrop"],[24,"role","button"],[4,[32,2],["click",[30,0,["storage","closeWidget"]]],null],[12],[13],[1,"\\n"]],[]],null],[1,"\\n "],[8,[32,3],null,[["@isSidebarOpen","@onOutsideClick"],[[30,0,["isSidebarOpen"]],[30,0,["handleOutsideClick"]]]],null],[1,"\\n\\n "],[8,[32,4],null,null,null],[1,"\\n\\n "],[46,[28,[31,2],null,null],null,null,null],[1,"\\n"],[13]],[],["if","component","-outlet"]]',moduleName:"(unknown template module)",scope:()=>({pageTitle:HW,AppHeader:Dee,on:Ww,Map:Eee,Toast:zee}),isStrictMode:!0}),this)}},Bee=a({default:()=>$ee}),$ee=class extends Jh{static{dF(this.prototype,"osm",[dp])}#B=void fF(this,"osm");static{dF(this.prototype,"storage",[dp])}#U=void fF(this,"storage")},qee=a({default:()=>Vee}),Vee=class extends Jh{static{dF(this.prototype,"mapUi",[dp])}#He=void fF(this,"mapUi");activate(){this.mapUi.clearSearchResults(),this.mapUi.hideSidebar()}},Wee=Ap(rg({id:null,block:'[[[10,0],[14,0,"sidebar-header"],[12],[1,"\\n "],[10,"h2"],[12],[1,"\\n "],[10,1],[14,0,"app-logo-icon"],[12],[1,"\\n "],[1,[28,[32,0],[[32,1]],null]],[1,"\\n "],[13],[1,"\\n Marco\\n "],[13],[1,"\\n "],[11,"button"],[24,0,"close-btn"],[24,4,"button"],[4,[32,2],["click",[30,1]],null],[12],[1,"\\n "],[8,[32,3],null,[["@name","@size","@color"],["x",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n"],[13],[1,"\\n\\n"],[10,0],[14,0,"sidebar-content"],[12],[1,"\\n "],[10,"ul"],[14,0,"app-menu"],[12],[1,"\\n "],[10,"li"],[12],[1,"\\n "],[11,"button"],[24,4,"button"],[4,[32,2],["click",[30,2]],null],[12],[1,"\\n "],[8,[32,3],null,[["@name","@size"],["bookmark",20]],null],[1,"\\n "],[10,1],[12],[1,"Collections"],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"li"],[12],[1,"\\n "],[11,"button"],[24,4,"button"],[4,[32,2],["click",[30,3]],null],[12],[1,"\\n "],[8,[32,3],null,[["@name","@size"],["activity",20]],null],[1,"\\n "],[10,1],[12],[1,"My Contributions"],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"li"],[12],[1,"\\n "],[11,"button"],[24,4,"button"],[4,[32,2],["click",[28,[32,4],[[30,4],"settings"],null]],null],[12],[1,"\\n "],[8,[32,3],null,[["@name","@size"],["settings",20]],null],[1,"\\n "],[10,1],[12],[1,"Settings"],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"li"],[12],[1,"\\n "],[11,"button"],[24,4,"button"],[4,[32,2],["click",[28,[32,4],[[30,4],"about"],null]],null],[12],[1,"\\n "],[8,[32,3],null,[["@name","@size"],["info",20]],null],[1,"\\n "],[10,1],[12],[1,"About"],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"],[13]],["@onClose","@onSavedPlaces","@onContributions","@onNavigate"],[]]',moduleName:"(unknown template module)",scope:()=>({htmlSafe:$v,iconRounded:'\n \x3c!-- Background --\x3e\n \n\n \x3c!-- Subtle map grid (kept well outside safe zone) --\x3e\n \n \n \n \n\n \n \n \n \n\n \x3c!-- Location pin (exact app shape, larger, centered, safe-zone compliant) --\x3e\n \x3c!-- Safe zone target: ~680px diameter --\x3e\n \n \n \n \n\n',on:Ww,Icon:M$,fn:Z$}),isStrictMode:!0}),tq()),Hee=class extends I${static{dF(this.prototype,"settings",[dp])}#D=void fF(this,"settings");static{Ap(rg({id:null,block:'[[[10,"details"],[12],[1,"\\n "],[10,"summary"],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size"],["map",20]],null],[1,"\\n "],[10,1],[12],[1,"Map & UI"],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"details-content form-layout"],[12],[1,"\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","show-quick-search"],[12],[1,"Quick search buttons visible"],[13],[1,"\\n "],[11,"select"],[24,1,"show-quick-search"],[24,0,"form-control"],[4,[32,1],["change",[28,[32,2],[[30,1],"showQuickSearchButtons"],null]],null],[12],[1,"\\n "],[10,"option"],[14,2,"true"],[15,"selected",[52,[30,0,["settings","showQuickSearchButtons"]],"selected"]],[12],[1,"\\n Yes\\n "],[13],[1,"\\n "],[10,"option"],[14,2,"false"],[15,"selected",[52,[51,[30,0,["settings","showQuickSearchButtons"]]],"selected"]],[12],[1,"\\n No\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","map-kinetic"],[12],[1,"Map Inertia (Kinetic Panning)"],[13],[1,"\\n "],[11,"select"],[24,1,"map-kinetic"],[24,0,"form-control"],[4,[32,1],["change",[28,[32,2],[[30,1],"mapKinetic"],null]],null],[12],[1,"\\n "],[10,"option"],[14,2,"true"],[15,"selected",[52,[30,0,["settings","mapKinetic"]],"selected"]],[12],[1,"\\n On\\n "],[13],[1,"\\n "],[10,"option"],[14,2,"false"],[15,"selected",[52,[51,[30,0,["settings","mapKinetic"]]],"selected"]],[12],[1,"\\n Off\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"],[13]],["@onChange"],["if","unless"]]',moduleName:"(unknown template module)",scope:()=>({Icon:M$,on:Ww,fn:Z$}),isStrictMode:!0}),this)}},Gee=class extends I${static{dF(this.prototype,"settings",[dp])}#D=void fF(this,"settings");static{Ap(rg({id:null,block:'[[[10,"details"],[12],[1,"\\n "],[10,"summary"],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size"],["server",20]],null],[1,"\\n "],[10,1],[12],[1,"API Providers"],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"details-content form-layout"],[12],[1,"\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","overpass-api"],[12],[1,"Overpass API Provider"],[13],[1,"\\n "],[11,"select"],[24,1,"overpass-api"],[24,0,"form-control"],[4,[32,1],["change",[28,[32,2],[[30,1],"overpassApi"],null]],null],[12],[1,"\\n"],[42,[28,[31,1],[[28,[31,1],[[30,0,["settings","overpassApis"]]],null]],null],null,[[[1," "],[10,"option"],[15,2,[30,2,["url"]]],[15,"selected",[52,[28,[32,3],[[30,2,["url"]],[30,0,["settings","overpassApi"]]],null],"selected"]],[12],[1,"\\n "],[1,[30,2,["name"]]],[1,"\\n "],[13],[1,"\\n"]],[2]],null],[1," "],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","photon-api"],[12],[1,"Photon API Provider"],[13],[1,"\\n "],[11,"select"],[24,1,"photon-api"],[24,0,"form-control"],[4,[32,1],["change",[28,[32,2],[[30,1],"photonApi"],null]],null],[12],[1,"\\n"],[42,[28,[31,1],[[28,[31,1],[[30,0,["settings","photonApis"]]],null]],null],null,[[[1," "],[10,"option"],[15,2,[30,3,["url"]]],[15,"selected",[52,[28,[32,3],[[30,3,["url"]],[30,0,["settings","photonApi"]]],null],"selected"]],[12],[1,"\\n "],[1,[30,3,["name"]]],[1,"\\n "],[13],[1,"\\n"]],[3]],null],[1," "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"],[13]],["@onChange","api","api"],["each","-track-array","if"]]',moduleName:"(unknown template module)",scope:()=>({Icon:M$,on:Ww,fn:Z$,eq:sq}),isStrictMode:!0}),this)}},Kee=e=>e?e.replace(/^wss?:\/\//,""):"",Zee=class extends I${static{dF(this.prototype,"settings",[dp])}#D=void fF(this,"settings");static{dF(this.prototype,"nostrData",[dp])}#F=void fF(this,"nostrData");static{dF(this.prototype,"toast",[dp])}#Ie=void fF(this,"toast");static{dF(this.prototype,"newReadRelay",[Vr],function(){return""})}#Mt=void fF(this,"newReadRelay");static{dF(this.prototype,"newWriteRelay",[Vr],function(){return""})}#At=void fF(this,"newWriteRelay");get customReadRelays(){return zj(this.settings.nostrReadRelays||[],this.nostrData.requiredReadRelays)}get customWriteRelays(){return zj(this.settings.nostrWriteRelays||[],this.nostrData.requiredWriteRelays)}get readRelayExclusions(){return this.settings.nostrReadRelayExclusions||[]}get writeRelayExclusions(){return this.settings.nostrWriteRelayExclusions||[]}get requiredReadRelaySet(){return new Set(this.nostrData.requiredReadRelays.filter(Boolean))}get requiredWriteRelaySet(){return new Set(this.nostrData.requiredWriteRelays.filter(Boolean))}get mailboxReadRelaySet(){return new Set(this.nostrData.mailboxReadRelays)}get mailboxWriteRelaySet(){return new Set(this.nostrData.mailboxWriteRelays)}get hasReadOverrides(){return this.customReadRelays.length>0||this.readRelayExclusions.length>0}get hasWriteOverrides(){return this.customWriteRelays.length>0||this.writeRelayExclusions.length>0}get readRelaysForDisplay(){return this.nostrData.activeReadRelays.map(e=>({url:e,isRequired:this.requiredReadRelaySet.has(e)}))}get writeRelaysForDisplay(){return this.nostrData.activeWriteRelays.map(e=>({url:e,isRequired:this.requiredWriteRelaySet.has(e)}))}updateNewReadRelay(e){this.newReadRelay=e.target.value}static{pF(this.prototype,"updateNewReadRelay",[ql])}updateNewWriteRelay(e){this.newWriteRelay=e.target.value}static{pF(this.prototype,"updateNewWriteRelay",[ql])}addReadRelay(){const e=Nj(this.newReadRelay);if(!e)return;const t=zj(Dj(this.nostrData.requiredReadRelays,[...this.customReadRelays,e]),this.nostrData.requiredReadRelays),n=this.readRelayExclusions.filter(t=>Nj(t)!==e);this.settings.update("nostrReadRelays",t.length>0?t:null),this.settings.update("nostrReadRelayExclusions",n.length>0?n:null),this.newReadRelay=""}static{pF(this.prototype,"addReadRelay",[ql])}removeReadRelay(e){if(this.requiredReadRelaySet.has(e))return;const t=Nj(e),n=this.customReadRelays.filter(e=>Nj(e)!==t),r=this.mailboxReadRelaySet.has(t)?Array.from(new Set([...this.readRelayExclusions,t])):this.readRelayExclusions;this.settings.update("nostrReadRelays",n.length>0?n:null),this.settings.update("nostrReadRelayExclusions",r.length>0?r:null)}static{pF(this.prototype,"removeReadRelay",[ql])}handleReadRelayKeydown(e){"Enter"===e.key&&this.addReadRelay()}static{pF(this.prototype,"handleReadRelayKeydown",[ql])}handleWriteRelayKeydown(e){"Enter"===e.key&&this.addWriteRelay()}static{pF(this.prototype,"handleWriteRelayKeydown",[ql])}resetReadRelays(){this.settings.update("nostrReadRelays",null),this.settings.update("nostrReadRelayExclusions",null)}static{pF(this.prototype,"resetReadRelays",[ql])}addWriteRelay(){const e=Nj(this.newWriteRelay);if(!e)return;const t=zj(Dj(this.nostrData.requiredWriteRelays,[...this.customWriteRelays,e]),this.nostrData.requiredWriteRelays),n=this.writeRelayExclusions.filter(t=>Nj(t)!==e);this.settings.update("nostrWriteRelays",t.length>0?t:null),this.settings.update("nostrWriteRelayExclusions",n.length>0?n:null),this.newWriteRelay=""}static{pF(this.prototype,"addWriteRelay",[ql])}removeWriteRelay(e){if(this.requiredWriteRelaySet.has(e))return;const t=Nj(e),n=this.customWriteRelays.filter(e=>Nj(e)!==t),r=this.mailboxWriteRelaySet.has(t)?Array.from(new Set([...this.writeRelayExclusions,t])):this.writeRelayExclusions;this.settings.update("nostrWriteRelays",n.length>0?n:null),this.settings.update("nostrWriteRelayExclusions",r.length>0?r:null)}static{pF(this.prototype,"removeWriteRelay",[ql])}resetWriteRelays(){this.settings.update("nostrWriteRelays",null),this.settings.update("nostrWriteRelayExclusions",null)}static{pF(this.prototype,"resetWriteRelays",[ql])}async clearCache(){try{await this.nostrData.clearCache(),this.toast.show("Nostr cache cleared")}catch(e){this.toast.show(`Failed to clear Nostr cache: ${e.message}`)}}static{pF(this.prototype,"clearCache",[ql])}static{Ap(rg({id:null,block:'[[[10,"details"],[12],[1,"\\n "],[10,"summary"],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size"],["zap",20]],null],[1,"\\n "],[10,1],[12],[1,"Nostr"],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"details-content form-layout"],[12],[1,"\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","new-read-relay"],[12],[1,"Read Relays"],[13],[1,"\\n "],[10,"ul"],[14,0,"relay-list"],[12],[1,"\\n"],[42,[28,[31,1],[[28,[31,1],[[30,0,["readRelaysForDisplay"]]],null]],null],null,[[[1," "],[10,"li"],[12],[1,"\\n "],[10,1],[12],[1,[28,[32,1],[[30,1,["url"]]],null]],[13],[1,"\\n"],[41,[51,[30,1,["isRequired"]]],[[[1," "],[11,"button"],[24,0,"btn-remove-relay"],[24,"title","Remove relay"],[24,"aria-label","Remove"],[24,4,"button"],[4,[32,2],["click",[28,[32,3],[[30,0,["removeReadRelay"]],[30,1,["url"]]],null]],null],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size","@color"],["x",14,"currentColor"]],null],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n"]],[1]],null],[1," "],[13],[1,"\\n "],[10,0],[14,0,"add-relay-input"],[12],[1,"\\n "],[11,"input"],[24,1,"new-read-relay"],[24,0,"form-control"],[24,"placeholder","relay.example.com"],[16,2,[30,0,["newReadRelay"]]],[24,4,"text"],[4,[32,2],["input",[30,0,["updateNewReadRelay"]]],null],[4,[32,2],["keydown",[30,0,["handleReadRelayKeydown"]]],null],[12],[13],[1,"\\n "],[11,"button"],[24,0,"btn btn-secondary"],[24,4,"button"],[4,[32,2],["click",[30,0,["addReadRelay"]]],null],[12],[1,"Add"],[13],[1,"\\n "],[13],[1,"\\n"],[41,[30,0,["hasReadOverrides"]],[[[1," "],[11,"button"],[24,0,"btn-link reset-relays"],[24,4,"button"],[4,[32,2],["click",[30,0,["resetReadRelays"]]],null],[12],[1,"\\n Reset to Defaults\\n "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","new-write-relay"],[12],[1,"Write Relays"],[13],[1,"\\n "],[10,"ul"],[14,0,"relay-list"],[12],[1,"\\n"],[42,[28,[31,1],[[28,[31,1],[[30,0,["writeRelaysForDisplay"]]],null]],null],null,[[[1," "],[10,"li"],[12],[1,"\\n "],[10,1],[12],[1,[28,[32,1],[[30,2,["url"]]],null]],[13],[1,"\\n"],[41,[51,[30,2,["isRequired"]]],[[[1," "],[11,"button"],[24,0,"btn-remove-relay"],[24,"title","Remove relay"],[24,"aria-label","Remove"],[24,4,"button"],[4,[32,2],["click",[28,[32,3],[[30,0,["removeWriteRelay"]],[30,2,["url"]]],null]],null],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size","@color"],["x",14,"currentColor"]],null],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n"]],[2]],null],[1," "],[13],[1,"\\n "],[10,0],[14,0,"add-relay-input"],[12],[1,"\\n "],[11,"input"],[24,1,"new-write-relay"],[24,0,"form-control"],[24,"placeholder","relay.example.com"],[16,2,[30,0,["newWriteRelay"]]],[24,4,"text"],[4,[32,2],["input",[30,0,["updateNewWriteRelay"]]],null],[4,[32,2],["keydown",[30,0,["handleWriteRelayKeydown"]]],null],[12],[13],[1,"\\n "],[11,"button"],[24,0,"btn btn-secondary"],[24,4,"button"],[4,[32,2],["click",[30,0,["addWriteRelay"]]],null],[12],[1,"Add"],[13],[1,"\\n "],[13],[1,"\\n"],[41,[30,0,["hasWriteOverrides"]],[[[1," "],[11,"button"],[24,0,"btn-link reset-relays"],[24,4,"button"],[4,[32,2],["click",[30,0,["resetWriteRelays"]]],null],[12],[1,"\\n Reset to Defaults\\n "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","nostr-photo-fallback-uploads"],[12],[1,"Upload photos to fallback\\n servers"],[13],[1,"\\n "],[11,"select"],[24,1,"nostr-photo-fallback-uploads"],[24,0,"form-control"],[4,[32,2],["change",[28,[32,3],[[30,3],"nostrPhotoFallbackUploads"],null]],null],[12],[1,"\\n "],[10,"option"],[14,2,"true"],[15,"selected",[52,[30,0,["settings","nostrPhotoFallbackUploads"]],"selected"]],[12],[1,"\\n Yes\\n "],[13],[1,"\\n "],[10,"option"],[14,2,"false"],[15,"selected",[52,[51,[30,0,["settings","nostrPhotoFallbackUploads"]]],"selected"]],[12],[1,"\\n No\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[12],[1,"Cached data"],[13],[1,"\\n "],[11,"button"],[24,0,"btn btn-outline btn-full"],[24,4,"button"],[4,[32,2],["click",[30,0,["clearCache"]]],null],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size","@color"],["database",18,"var(--danger-color)"]],null],[1,"\\n Clear profiles, photos, and reviews\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"],[13]],["relay","relay","@onChange"],["each","-track-array","unless","if"]]',moduleName:"(unknown template module)",scope:()=>({Icon:M$,stripProtocol:Kee,on:Ww,fn:Z$}),isStrictMode:!0}),this)}},Yee=class extends I${static{dF(this.prototype,"settings",[dp])}#D=void fF(this,"settings");static{Ap(rg({id:null,block:'[[[10,"details"],[12],[1,"\\n "],[10,"summary"],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size"],["alert-triangle",20]],null],[1,"\\n "],[10,1],[12],[1,"Experimental"],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"details-content form-layout"],[12],[1,"\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","experimental-enable-photo-deletion"],[12],[1,"Enable photo deletion\\n (own photos)"],[13],[1,"\\n "],[11,"select"],[24,1,"experimental-enable-photo-deletion"],[24,0,"form-control"],[4,[32,1],["change",[28,[32,2],[[30,1],"experimentalEnablePhotoDeletion"],null]],null],[12],[1,"\\n "],[10,"option"],[14,2,"true"],[15,"selected",[52,[30,0,["settings","experimentalEnablePhotoDeletion"]],"selected"]],[12],[1,"\\n On\\n "],[13],[1,"\\n "],[10,"option"],[14,2,"false"],[15,"selected",[52,[51,[30,0,["settings","experimentalEnablePhotoDeletion"]]],"selected"]],[12],[1,"\\n Off\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"],[13]],["@onChange"],["if","unless"]]',moduleName:"(unknown template module)",scope:()=>({Icon:M$,on:Ww,fn:Z$}),isStrictMode:!0}),this)}},Xee=class extends I${static{dF(this.prototype,"settings",[dp])}#D=void fF(this,"settings");updateSetting(e,t){let n=t.target.value;"true"===n&&(n=!0),"false"===n&&(n=!1),this.settings.update(e,n)}static{pF(this.prototype,"updateSetting",[ql])}static{Ap(rg({id:null,block:'[[[10,0],[14,0,"sidebar-header has-back-btn"],[12],[1,"\\n "],[11,"button"],[24,0,"back-btn"],[24,4,"button"],[4,[32,0],["click",[30,1]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["arrow-left",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n "],[10,"h2"],[14,0,"sidebar-header-text-centered"],[12],[1,"Settings"],[13],[1,"\\n "],[11,"button"],[24,0,"close-btn"],[24,4,"button"],[4,[32,0],["click",[30,2]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["x",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n"],[13],[1,"\\n\\n"],[10,0],[14,0,"sidebar-content"],[12],[1,"\\n "],[10,"section"],[14,0,"settings-section"],[12],[1,"\\n "],[8,[32,2],null,[["@onChange"],[[30,0,["updateSetting"]]]],null],[1,"\\n "],[8,[32,3],null,[["@onChange"],[[30,0,["updateSetting"]]]],null],[1,"\\n "],[8,[32,4],null,[["@onChange"],[[30,0,["updateSetting"]]]],null],[1,"\\n "],[8,[32,5],null,[["@onChange"],[[30,0,["updateSetting"]]]],null],[1,"\\n "],[13],[1,"\\n"],[13]],["@onBack","@onClose"],[]]',moduleName:"(unknown template module)",scope:()=>({on:Ww,Icon:M$,AppMenuSettingsMapUi:Hee,AppMenuSettingsApis:Gee,AppMenuSettingsNostr:Zee,AppMenuSettingsExperimental:Yee}),isStrictMode:!0}),this)}},Jee=Ap(rg({id:null,block:'[[[10,0],[14,0,"sidebar-header has-back-btn"],[12],[1,"\\n "],[11,"button"],[24,0,"back-btn"],[24,4,"button"],[4,[32,0],["click",[30,1]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["arrow-left",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n "],[10,"h2"],[14,0,"sidebar-header-text-centered"],[12],[1,"About"],[13],[1,"\\n "],[11,"button"],[24,0,"close-btn"],[24,4,"button"],[4,[32,0],["click",[30,2]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["x",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n"],[13],[1,"\\n\\n"],[10,0],[14,0,"sidebar-content"],[12],[1,"\\n "],[10,"section"],[14,0,"about-section"],[12],[1,"\\n "],[10,2],[12],[1,"\\n "],[10,"strong"],[12],[1,"Marco"],[13],[1,"\\n (as in\\n "],[10,3],[14,6,"https://en.wikipedia.org/wiki/Marco_Polo"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"Marco Polo"],[13],[1,") is an unhosted maps application that respects your\\n privacy and choices.\\n "],[13],[1,"\\n "],[10,2],[12],[1,"\\n Connect your own\\n "],[10,3],[14,6,"https://remotestorage.io/"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"remote storage"],[13],[1,"\\n to sync place bookmarks across apps and devices.\\n "],[13],[1,"\\n "],[10,2],[12],[1,"\\n Connect your\\n "],[10,3],[14,6,"https://start.nostr.net"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"Nostr"],[13],[1,"\\n identity to publish photos of places.\\n "],[13],[1,"\\n\\n "],[10,"details"],[12],[1,"\\n "],[10,"summary"],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size"],["gift",20]],null],[1,"\\n "],[10,1],[12],[1,"Open Source"],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"details-content"],[12],[1,"\\n "],[10,"table"],[12],[1,"\\n "],[10,"thead"],[12],[1,"\\n "],[10,"tr"],[12],[1,"\\n "],[10,"th"],[12],[1,"Source"],[13],[1,"\\n "],[10,"th"],[12],[1,"License"],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"tbody"],[12],[1,"\\n "],[10,"tr"],[12],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://gitea.kosmos.org/raucao/marco"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n Marco App\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://en.wikipedia.org/wiki/GNU_Affero_General_Public_License"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n "],[10,"abbr"],[14,"title","GNU Affero General Public License"],[12],[1,"AGPL"],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"tr"],[12],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://openstreetmap.org/copyright"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n Map Data\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://opendatacommons.org/licenses/odbl/"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n "],[10,"abbr"],[14,"title","Open Data Commons Open Database License"],[12],[1,"ODbL"],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"tr"],[12],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://openfreemap.org"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n Map tiles\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://github.com/hyperknot/openfreemap/blob/main/LICENSE.md"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n Various\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"tr"],[12],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://github.com/feathericons/feather"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n Feather Icons\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://en.wikipedia.org/wiki/MIT_License"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n "],[10,"abbr"],[14,"title","MIT License"],[12],[1,"MIT"],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"tr"],[12],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://pinhead.ink/"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n Pinhead Icons\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://github.com/waysidemapping/pinhead?tab=readme-ov-file#where-the-icons-are-from"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n Various\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"details"],[12],[1,"\\n "],[10,"summary"],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["heart",20,"#e5533d"]],null],[1,"\\n "],[10,1],[12],[1,"Contribute"],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"details-content"],[12],[1,"\\n "],[10,2],[12],[1,"\\n "],[10,"strong"],[12],[1,"Most impactful:"],[13],[1,"\\n "],[13],[1,"\\n "],[10,"ul"],[12],[1,"\\n "],[10,"li"],[12],[1,"\\n Add and improve data for points of interest in\\n "],[10,3],[14,6,"https://www.openstreetmap.org"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"OpenStreetMap"],[13],[1,".\\n "],[13],[1,"\\n "],[10,"li"],[12],[1,"\\n Add place photos with your Nostr account.\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,2],[12],[1,"\\n "],[10,"strong"],[12],[1,"Most appreciated:"],[13],[1,"\\n Use this app as much as you can and\\n "],[10,3],[14,6,"https://community.remotestorage.io/t/marco-an-unhosted-maps-app/941"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"submit feedback"],[13],[1,"\\n about your experience, problems, feature wishes, etc.\\n "],[13],[1,"\\n "],[10,2],[12],[1,"\\n "],[10,"strong"],[12],[1,"Most supportive:"],[13],[1,"\\n Tell others about this app, on social media, in blog posts,\\n educational videos, etc.\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"],[13]],["@onBack","@onClose"],[]]',moduleName:"(unknown template module)",scope:()=>({on:Ww,Icon:M$}),isStrictMode:!0}),tq()),Qee=class extends I${static{dF(this.prototype,"router",[dp])}#We=void fF(this,"router");static{dF(this.prototype,"currentView",[Vr],function(){return"menu"})}#Ot=void fF(this,"currentView");setView(e){this.currentView=e}static{pF(this.prototype,"setView",[ql])}goToSavedPlaces(){this.router.transitionTo("lists.index")}static{pF(this.prototype,"goToSavedPlaces",[ql])}goToContributions(){this.router.transitionTo("contributions")}static{pF(this.prototype,"goToContributions",[ql])}static{Ap(rg({id:null,block:'[[[10,0],[14,0,"sidebar app-menu-pane"],[12],[1,"\\n"],[41,[28,[32,0],[[30,0,["currentView"]],"menu"],null],[[[1," "],[8,[32,1],null,[["@onNavigate","@onClose","@onSavedPlaces","@onContributions"],[[30,0,["setView"]],[30,1],[30,0,["goToSavedPlaces"]],[30,0,["goToContributions"]]]],null],[1,"\\n\\n"]],[]],[[[41,[28,[32,0],[[30,0,["currentView"]],"settings"],null],[[[1," "],[8,[32,2],null,[["@onBack","@onClose"],[[28,[32,3],[[30,0,["setView"]],"menu"],null],[30,1]]],null],[1,"\\n\\n"]],[]],[[[41,[28,[32,0],[[30,0,["currentView"]],"about"],null],[[[1," "],[8,[32,4],null,[["@onBack","@onClose"],[[28,[32,3],[[30,0,["setView"]],"menu"],null],[30,1]]],null],[1,"\\n "]],[]],null]],[]]]],[]]],[13]],["@onClose"],["if"]]',moduleName:"(unknown template module)",scope:()=>({eq:sq,AppMenuHome:Wee,AppMenuSettings:Xee,fn:Z$,AppMenuAbout:Jee}),isStrictMode:!0}),this)}},ete=a({default:()=>tte}),tte=class extends I${static{dF(this.prototype,"router",[dp])}#We=void fF(this,"router");close(){this.router.transitionTo("index")}static{pF(this.prototype,"close",[ql])}static{Ap(rg({id:null,block:'[[[8,[32,0],null,[["@onClose"],[[30,0,["close"]]]],null]],[],[]]',moduleName:"(unknown template module)",scope:()=>({AppMenu:Qee}),isStrictMode:!0}),this)}},nte=a({default:()=>rte}),rte=class extends Jh{static{dF(this.prototype,"mapUi",[dp])}#He=void fF(this,"mapUi");activate(){this.mapUi.showSidebar()}},ite=a({default:()=>ste}),ste=class extends Jh{static{dF(this.prototype,"osmAuth",[dp])}#St=void fF(this,"osmAuth");static{dF(this.prototype,"router",[dp])}#We=void fF(this,"router");async model(){try{await this.osmAuth.handleCallback()}catch(e){console.error("Failed to handle OSM OAuth callback",e)}finally{this.router.transitionTo("index")}}},ote=a({default:()=>ate}),ate=class extends I${static{dF(this.prototype,"router",[dp])}#We=void fF(this,"router");static{dF(this.prototype,"storage",[dp])}#U=void fF(this,"storage");static{dF(this.prototype,"mapUi",[dp])}#He=void fF(this,"mapUi");static{dF(this.prototype,"localPlace",[Vr],function(){return null})}#Nt=void fF(this,"localPlace");constructor(){super(...arguments),this.localPlace=this.args.model}get place(){const e=this.args.model,t=e.osmId||e.id;return this.storage.findPlaceById(t)||(!this.localPlace||this.localPlace.osmId!==t&&this.localPlace.id!==t?e.createdAt?{...e,id:void 0,createdAt:void 0,geohash:void 0}:e:this.localPlace)}handleUpdate(e){console.debug("Updating local place state:",e),this.localPlace=e,this.storage.notifyChange()}static{pF(this.prototype,"handleUpdate",[ql])}refreshMap(){this.storage.notifyChange()}static{pF(this.prototype,"refreshMap",[ql])}navigateBack(e){if(null===e)if(this.mapUi.returnToRoute){this.mapUi.showSidebar();const{name:e,model:t}=this.mapUi.returnToRoute;void 0!==t?this.router.transitionTo(e,t):this.router.transitionTo(e)}else this.mapUi.returnToSearch&&this.mapUi.currentSearch?(this.mapUi.showSidebar(),this.router.transitionTo("search",{queryParams:this.mapUi.currentSearch})):this.router.transitionTo("index");else this.mapUi.showSidebar(),this.router.transitionTo("place",e)}static{pF(this.prototype,"navigateBack",[ql])}close(){this.mapUi.clearSelection(),this.mapUi.hideSidebar(),this.mapUi.returnToSearch&&this.mapUi.currentSearch?this.router.transitionTo("search",{queryParams:this.mapUi.currentSearch}):this.router.transitionTo("index")}static{pF(this.prototype,"close",[ql])}static{Ap(rg({id:null,block:'[[[41,[30,0,["mapUi","isSidebarVisible"]],[[[1," "],[8,[32,0],null,[["@selectedPlace","@onClose","@onSelect","@onBookmarkChange","@onUpdate"],[[30,0,["place"]],[30,0,["close"]],[30,0,["navigateBack"]],[30,0,["refreshMap"]],[30,0,["handleUpdate"]]]],null],[1,"\\n"]],[]],null]],[],["if"]]',moduleName:"(unknown template module)",scope:()=>({PlacesSidebar:SW}),isStrictMode:!0}),this)}},lte=a({default:()=>cte}),cte=class extends Jh{static{dF(this.prototype,"storage",[dp])}#U=void fF(this,"storage");static{dF(this.prototype,"osm",[dp])}#B=void fF(this,"osm");static{dF(this.prototype,"mapUi",[dp])}#He=void fF(this,"mapUi");async model(e){const t=e.place_id;let n,r,i=!1;(t.startsWith("osm:node:")||t.startsWith("osm:way:")||t.startsWith("osm:relation:"))&&(i=!0,[,n,r]=t.split(":"),console.debug(`Fetching explicit OSM ${n}:`,r));let s=null;i&&(s=this.loadOsmPlace(r,n)),await this.waitForSync();let o=i?r:t,a=this.storage.findPlaceById(o);return a&&i&&a.osmType!==n&&(a=null),a?(console.debug("Found in bookmarks:",a.title),a):i?(console.debug(`Not in bookmarks, using explicitly fetched OSM ${n}:`,r),await s):(console.warn("Not in bookmarks:",t),null)}async waitForSync(){if(this.storage.initialSyncDone)return;console.debug("Waiting for initial storage sync...");const e=Date.now();for(;!this.storage.initialSyncDone;){if(Date.now()-e>5e3){console.warn("Timed out waiting for initial sync");break}await new Promise(e=>setTimeout(e,100))}}async afterModel(e){if(e&&e.osmId&&e.osmType&&"node"!==e.osmType&&!e.geojson){console.debug("Model missing geometry, fetching full OSM details...");const t=await this.loadOsmPlace(e.osmId,e.osmType);t&&(Object.assign(e,t),console.debug("Enriched model with full OSM details",e))}if(e){const t={preventZoom:this.mapUi.preventNextZoom};this.mapUi.selectPlace(e,t),this.mapUi.showSidebar(),this.mapUi.preventNextZoom=!1}this.mapUi.stopSearch()}deactivate(){this.mapUi.clearSelection(),this.mapUi.returnToSearch=!1,this.mapUi.returnToRoute=null}async loadOsmPlace(e,t=null){try{const n=await this.osm.fetchOsmObject(e,t);if(n)return console.debug("Found OSM POI:",n),n}catch(n){console.error("Failed to fetch POI",n)}return null}setupController(e,t){super.setupController(e,t),this.checkUpdates(t)}async checkUpdates(e){if(e&&e.osmId&&e.osmType){if(e.id){const t=await this.storage.refreshPlace(e);return void(t&&this.mapUi.selectPlace(t,{preventZoom:!0}))}try{const t=await this.osm.fetchOsmObject(e.osmId,e.osmType,{forceFresh:!0});t&&function(e,t){const n=Math.abs((e.lat??0)-(t.lat??0)),r=Math.abs((e.lon??0)-(t.lon??0));if(n>1e-5||r>1e-5)return!0;const i=e.osmTags||{},s=t.osmTags||{},o=new Set([...Object.keys(i),...Object.keys(s)]);for(const a of o)if(i[a]!==s[a])return!0;return!1}(e,t)&&(Object.assign(e,t),this.mapUi.selectPlace(e,{preventZoom:!0}))}catch(t){console.debug("[place] Fresh fetch failed for",e.osmId,t)}}}serialize(e){return e.osmId&&e.osmType?{place_id:`osm:${e.osmType}:${e.osmId}`}:e.id?{place_id:e.id}:{place_id:e.osmId}}},ute=a({default:()=>hte}),hte=class extends I${static{dF(this.prototype,"router",[dp])}#We=void fF(this,"router");static{dF(this.prototype,"storage",[dp])}#U=void fF(this,"storage");static{dF(this.prototype,"mapUi",[dp])}#He=void fF(this,"mapUi");get initialPlace(){return{title:"",description:""}}close(){this.router.transitionTo("index")}static{pF(this.prototype,"close",[ql])}async savePlace(e){try{const t=this.mapUi.creationCoordinates||{lat:this.args.model.lat,lon:this.args.model.lon},n=parseFloat(t.lat.toFixed(6)),r=parseFloat(t.lon.toFixed(6)),i={title:e.title||"Untitled Place",description:e.description,lat:n,lon:r,tags:[],osmTags:{}},s=await this.storage.storePlace(i);console.debug("Created private place:",s.title),this.router.replaceWith("place",s)}catch(t){console.error("Failed to create place:",t),alert("Failed to create place: "+t.message)}}static{pF(this.prototype,"savePlace",[ql])}static{Ap(rg({id:null,block:'[[[41,[30,0,["mapUi","isSidebarVisible"]],[[[1," "],[10,0],[14,0,"sidebar"],[12],[1,"\\n "],[10,0],[14,0,"sidebar-header"],[12],[1,"\\n "],[10,"h2"],[12],[8,[32,0],null,[["@name","@size","@color"],["plus-circle",20,"#ea4335"]],null],[1,"\\n New Place"],[13],[1,"\\n "],[11,"button"],[24,0,"close-btn"],[24,4,"button"],[4,[32,1],["click",[30,0,["close"]]],null],[12],[8,[32,0],null,[["@name","@size","@color"],["x",20,"#333"]],null],[13],[1,"\\n "],[13],[1,"\\n\\n "],[10,0],[14,0,"sidebar-content"],[12],[1,"\\n "],[10,2],[14,0,"helper-text"],[12],[1,"\\n Drag the map to position the crosshair.\\n "],[13],[1,"\\n\\n "],[8,[32,2],null,[["@place","@onSave","@onCancel"],[[30,0,["initialPlace"]],[30,0,["savePlace"]],[30,0,["close"]]]],null],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null]],[],["if"]]',moduleName:"(unknown template module)",scope:()=>({Icon:M$,on:Ww,PlaceEditForm:cW}),isStrictMode:!0}),this)}},dte=a({default:()=>pte}),pte=class extends Jh{static{dF(this.prototype,"mapUi",[dp])}#He=void fF(this,"mapUi");queryParams={lat:{refreshModel:!0},lon:{refreshModel:!0}};model(e){return{lat:parseFloat(e.lat),lon:parseFloat(e.lon)}}setupController(e,t){super.setupController(e,t),t.lat&&t.lon&&this.mapUi.updateCreationCoordinates(t.lat,t.lon),this.mapUi.startCreating(),this.mapUi.showSidebar()}deactivate(){this.mapUi.stopCreating()}},fte=Object.assign({},J_,{"marco/config/environment":nx,"marco/deprecation-workflow":_x,"marco/router":Lx,"marco/services/blossom":gF,"marco/services/contributions":kF,"marco/services/image-processor":LF,"marco/services/local-forage":MF,"marco/services/map-ui":NF,"marco/services/nostr-auth":lz,"marco/services/nostr-data":Vj,"marco/services/nostr-relay":hU,"marco/services/osm-auth":MU,"marco/services/osm":GU,"marco/services/photon":ZU,"marco/services/settings":XU,"marco/services/storage":dB,"marco/services/toast":fB,"marco/utils/contributions":bF,"marco/utils/device":sz,"marco/utils/format-text":NU,"marco/utils/geo":mB,"marco/utils/geohash-coverage":$j,"marco/utils/icons":vB,"marco/utils/nostr":Oj,"marco/utils/osm-icons":CB,"marco/utils/osm":jU,"marco/utils/photo-tag-suggestions":IB,"marco/utils/place-mapping":AB,"marco/utils/poi-categories":qU,"marco/utils/poi-category-matcher":RB,"marco/utils/social-links":NB,"marco/workers/image-processor":QB,"marco/services/page-title":a$,"marco/templates/contributions":qq,"marco/controllers/contributions":tW,"marco/routes/contributions":rW,"marco/templates/lists":sW,"marco/routes/lists":aW,"marco/templates/lists/list":kW,"marco/controllers/lists/list":RW,"marco/routes/lists/list":AW,"marco/templates/lists/index":NW,"marco/routes/lists/index":DW,"marco/templates/search":jW,"marco/controllers/search":BW,"marco/routes/search":qW,"marco/templates/application":jee,"marco/routes/application":Bee,"marco/routes/index":qee,"marco/templates/menu":ete,"marco/routes/menu":nte,"marco/routes/oauth/osm-callback":ite,"marco/templates/place":ote,"marco/routes/place":lte,"marco/templates/place/new":ute,"marco/routes/place/new":dte},{}),gte=class{constructor(e,t,n){this.limit=e,this.func=t,this.store=n,this.size=0,this.misses=0,this.hits=0,this.store=n||new Map}get(e){let t=this.store.get(e);return this.store.has(e)?(this.hits++,this.store.get(e)):(this.misses++,t=this.set(e,this.func(e)),t)}set(e,t){return this.limit>this.size&&(this.size++,this.store.set(e,t)),t}purge(){this.store.clear(),this.size=0,this.hits=0,this.misses=0}},mte=/[ _]/g,yte=new gte(1e3,e=>{return(t=e,Ete.get(t)).replace(mte,"-");var t}),vte=/^(\-|_)+(.)?/,bte=/(.)(\-|\_|\.|\s)+(.)?/g,wte=/(^|\/|\.)([a-z])/g,_te=new gte(1e3,e=>{const t=(e,t,n)=>n?`_${n.toUpperCase()}`:"",n=(e,t,n,r)=>t+(r?r.toUpperCase():""),r=e.split("/");for(let i=0;ie.toUpperCase())}),xte=/([a-z\d])([A-Z]+)/g,Cte=/\-|\s+/g,Ste=new gte(1e3,e=>e.replace(xte,"$1_$2").replace(Cte,"_").toLowerCase()),kte=/([a-z\d])([A-Z])/g,Ete=new gte(1e3,e=>e.replace(kte,"$1_$2").toLowerCase()),Rte=class{constructor(e){this._entries=e||globalThis.requirejs.entries}moduleNames(){return Object.keys(this._entries)}has(e){return e in this._entries}get(...e){return globalThis.require(...e)}},Tte=class{static moduleBasedResolver=!0;moduleBasedResolver=!0;_deprecatedPodModulePrefix=!1;_normalizeCache=Object.create(null);static create(e){return new this(e)}moduleNameLookupPatterns=[this.podBasedModuleName,this.podBasedComponentsInSubdir,this.mainModuleName,this.defaultModuleName,this.nestedColocationComponentModuleName];static withModules(e){return class extends(this){static explicitModules=e}}constructor(e){if(Object.assign(this,e),!this._moduleRegistry){let e=this.constructor.explicitModules;e?this._moduleRegistry={moduleNames:()=>Object.keys(e),has:t=>Boolean(e[t]),get:t=>e[t],addModules(t){e=Object.assign({},e,t)}}:(void 0===globalThis.requirejs.entries&&(globalThis.requirejs.entries=globalThis.requirejs._eak_seen),this._moduleRegistry=new Rte)}this.pluralizedTypes=this.pluralizedTypes||Object.create(null),this.pluralizedTypes.config||(this.pluralizedTypes.config="config")}makeToString(e,t){return this.namespace.modulePrefix+"@"+t+":"}shouldWrapInClassFactory(){return!1}parseName(e){if(!0===e.parsedName)return e;let t,n,r,i=e.split("@");if(3===i.length){if(0===i[0].length){t=`@${i[1]}`;let e=i[2].split(":");n=e[0],r=e[1]}else t=`@${i[1]}`,n=i[0].slice(0,-1),r=i[2];"template:components"===n&&(r=`components/${r}`,n="template")}else if(2===i.length){let e=i[0].split(":");if(2===e.length)0===e[1].length?(n=e[0],r=`@${i[1]}`):(t=e[1],n=e[0],r=i[1]);else{let e=i[1].split(":");t=i[0],n=e[0],r=e[1]}"template"===n&&0===t.lastIndexOf("components/",0)&&(r=`components/${r}`,t=t.slice(11))}else i=e.split(":"),n=i[0],r=i[1];let s=r,o=this.namespace;return{parsedName:!0,fullName:e,prefix:t||this.prefix({type:n}),type:n,fullNameWithoutType:s,name:r,root:o,resolveMethodName:"resolve"+(a=n,_te.get(a))};var a}resolveOther(e){Lte("`modulePrefix` must be defined",this.namespace.modulePrefix);let t=this.findModuleName(e);if(t){let r=this._extractDefaultExport(t,e);if(void 0===r)throw new Error(` Expected to find: '${e.fullName}' within '${t}' but got 'undefined'. Did you forget to 'export default' within '${t}'?`);return this.shouldWrapInClassFactory(r,e)&&(n=r,r={create:e=>"function"==typeof n.extend?n.extend(e):n}),r}var n}normalize(e){return this._normalizeCache[e]||(this._normalizeCache[e]=this._normalize(e))}resolve(e){if("resolver:current"===e)return{create:()=>this};let t,n=this.parseName(e),r=n.resolveMethodName;return"function"==typeof this[r]&&(t=this[r](n)),null==t&&(t=this.resolveOther(n)),t}addModules(e){if(!this._moduleRegistry.addModules)throw new Error("addModules is only supported when your Resolver has been configured to use static modules via Resolver.withModules()");this._moduleRegistry.addModules(e)}_normalize(e){let t=e.split(":");if(t.length>1){let e=t[0];return"component"===e||"helper"===e||"modifier"===e||"template"===e&&0===t[1].indexOf("components/")?e+":"+t[1].replace(/_/g,"-"):e+":"+(n=t[1].replace(/\./g,"/"),yte.get(n))}return e;var n}pluralize(e){return this.pluralizedTypes[e]||(this.pluralizedTypes[e]=e+"s")}podBasedLookupWithPrefix(e,t){let n=t.fullNameWithoutType;return"template"===t.type&&(n=n.replace(/^components\//,"")),e+"/"+n+"/"+t.type}podBasedModuleName(e){let t=this.namespace.podModulePrefix||this.namespace.modulePrefix;return this.podBasedLookupWithPrefix(t,e)}podBasedComponentsInSubdir(e){let t=this.namespace.podModulePrefix||this.namespace.modulePrefix;if(t+="/components","component"===e.type||/^components/.test(e.fullNameWithoutType))return this.podBasedLookupWithPrefix(t,e)}resolveEngine(e){let t=e.fullNameWithoutType+"/engine";if(this._moduleRegistry.has(t))return this._extractDefaultExport(t)}resolveRouteMap(e){let t=e.fullNameWithoutType,n=t+"/routes";if(this._moduleRegistry.has(n)){let e=this._extractDefaultExport(n);return Lte(`The route map for ${t} should be wrapped by 'buildRoutes' before exporting.`,e.isRouteMap),e}}resolveTemplate(e){return this.resolveOther(e)}mainModuleName(e){if("main"===e.fullNameWithoutType)return e.prefix+"/"+e.type}defaultModuleName(e){return e.prefix+"/"+this.pluralize(e.type)+"/"+e.fullNameWithoutType}nestedColocationComponentModuleName(e){if("component"===e.type)return e.prefix+"/"+this.pluralize(e.type)+"/"+e.fullNameWithoutType+"/index"}prefix(e){let t=this.namespace.modulePrefix;return this.namespace[e.type+"Prefix"]&&(t=this.namespace[e.type+"Prefix"]),t}findModuleName(e){let t,n=this.moduleNameLookupPatterns;for(let r=0,i=n.length;rr.length+i.length)return e+":"+t.slice(s+r.length,o);let a=n+"/"+this.pluralize(e)+"/";return 0===t.indexOf(a)&&t.length>a.length?e+":"+t.slice(a.length):void 0}_extractDefaultExport(e){let t=this._moduleRegistry.get(e,null,null,!0);return t&&t.default&&(t=t.default),t}};function Lte(e,t){if(!t)throw new Error(e)}(class extends X_{modulePrefix=rx.modulePrefix;podModulePrefix=rx.podModulePrefix;Resolver=Tte.withModules(fte);inspector=function(e){!function(e){globalThis.emberInspectorApps||(globalThis.emberInspectorApps=[]),globalThis.emberInspectorApps.push({app:e,name:`app-${globalThis.emberInspectorApps.length}`,loadCompatInspector:()=>Ij(()=>import("./modules-4-12-DSaOCg7W.js"),[])}),globalThis.dispatchEvent&&globalThis.dispatchEvent(new Event("Ember"))}(e)}(this)}).create(rx.APP);export{Wv as $,ol as $n,re as $r,zp as $t,lx as A,hc as An,Yt as Ar,lm as At,pb as B,lc as Bn,et as Br,fg as Bt,tO as C,Yc as Cn,sr as Cr,sy as Ct,oA as D,_c as Dn,Yn as Dr,Qm as Dt,cA as E,kc as En,Un as Er,_m as Et,A_ as F,ic as Fn,At as Fr,Vg as Ft,ib as G,ec as Gn,Ze as Gr,Up as Gt,yb as H,Kl as Hn,nt as Hr,jp as Ht,jw as I,Xl as In,kt as Ir,im as It,ob as J,Dl as Jn,Ne as Jr,Vp as Jt,sb as K,Ul as Kn,Ke as Kr,Wp as Kt,hb as L,Gl as Ln,Et as Lr,Bg as Lt,S_ as M,tc as Mn,Xt as Mr,Qg as Mt,__ as N,nc as Nn,en as Nr,tm as Nt,WP as O,wc as On,Wt as Or,Xm as Ot,x_ as P,Hl as Pn,Pt as Pr,nm as Pt,Vv as Q,sl as Qn,ie as Qr,Dp as Qt,fb as R,cc as Rn,it as Rr,Cg as Rt,yO as S,Xc as Sn,ur as Sr,ay as St,zA as T,Pc as Tn,nr as Tr,Ym as Tt,mb as U,Wl as Un,rt as Ur,$p as Ut,gb as V,Jl as Vn,Qe as Vr,yg as Vt,eb as W,Ql as Wn,Je as Wr,Bp as Wt,Kv as X,Sl as Xn,le as Xr,Hp as Xt,tb as Y,Rl as Yn,ce as Yr,Gp as Yt,Zv as Z,wl as Zn,te as Zr,Np as Zt,c$ as _,gu as _n,Cr as _r,Uy as _t,z$ as a,b as ai,Fu as an,Po as ar,ky as at,KO as b,lu as bn,vr as br,ly as bt,B$ as c,_u as cn,fs as cr,Ty as ct,q$ as d,ju as dn,ti as dr,qy as dt,ee as ei,Fp as en,al as er,Hv as et,N$ as f,wu as fn,Kr as fr,Iy as ft,g$ as g,Iu as gn,Sr as gr,tv as gt,m$ as h,Mu as hn,Ir as hr,nv as ht,F$ as i,w as ii,xu as in,Ba as ir,iv as it,K_ as j,sc as jn,Jt as jr,qg as jt,kx as k,yc as kn,qt as kr,Jm as kt,D$ as l,Du as ln,xi as lr,$y as lt,y$ as m,Nu as mn,Mr as mr,rv as mt,WV as n,d as ni,Ap as nn,Qa as nr,Dv as nt,j$ as o,v as oi,Ou as on,Lo as or,Sy as ot,x$ as p,bu as pn,Dr as pr,Cy as pt,rb as q,jl as qn,xe as qr,qp as qt,$$ as r,u as ri,up as rn,$a as rr,gv as rt,U$ as s,a as si,Pu as sn,Hs as sr,wy as st,WW as t,g as ti,Op as tn,tl as tr,jv as tt,V$ as u,zu as un,ni as ur,_y as ut,l$ as v,vu as vn,Pr as vr,Ly as vt,YA as w,Hc as wn,tr as wr,oy as wt,FO as x,au as xn,fr as xr,bm as xt,uF as y,yu as yn,Er as yr,jy as yt,lb as z,oc as zn,tt as zr,gg as zt}; \ No newline at end of file diff --git a/release/assets/main-Cal_p7lY.css b/release/assets/main-CHNrhL7t.css similarity index 74% rename from release/assets/main-Cal_p7lY.css rename to release/assets/main-CHNrhL7t.css index fb5bf4b..7528fea 100644 --- a/release/assets/main-Cal_p7lY.css +++ b/release/assets/main-CHNrhL7t.css @@ -1 +1 @@ -:root{--body-text-color:#333;--primary-background-color:#fff;--hover-bg:#f8f9fa;--divider-color:#eee;--sidebar-width:350px;--link-color:#2a7fff;--link-color-visited:#6a4fbf;--marker-color-primary:#ea4335;--marker-color-dark:#b31412;--danger-color:var(--marker-color-primary);--danger-color-dark:var(--marker-color-dark);--default-list-color:#fc3}html,body{overscroll-behavior:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;height:100%}button{-webkit-tap-highlight-color:transparent}body{color:var(--body-text-color);margin:0;font-family:Noto Sans,sans-serif;font-size:16px;font-weight:400}#root,#ember-testing{height:100%}.map-container{-webkit-tap-highlight-color:transparent;background:#f8f9fa;outline:none;position:absolute;inset:0}#rs-widget-container{z-index:4000;display:none;position:absolute;top:60px;right:10px}#rs-widget-container.visible{display:block}.rs-backdrop{z-index:3999;position:fixed;inset:0}.app-header{z-index:3000;pointer-events:none;grid-template-columns:1fr auto 1fr;grid-template-areas:"search chips user";align-items:center;gap:1rem;height:60px;padding:.5rem 1rem;display:grid;position:absolute;top:0;left:0;right:0}@media (width<=768px){.app-header{grid-template-columns:1fr auto;grid-template-areas:"search user""chips chips";row-gap:8px;height:auto;padding:.5rem .5rem 0}}.header-left,.header-right,.header-center{pointer-events:auto}.header-left{grid-area:search;justify-self:start;align-items:center;width:100%;display:flex}@media (width>768px){.header-left{min-width:300px;max-width:350px}}.header-right{grid-area:user;justify-self:end}.header-center{grid-area:chips;justify-content:center;min-width:0;display:flex}@media (width>768px){.header-center .category-chips-scroll{width:auto;max-width:100%}}@media (width<=768px){.header-center{justify-content:start;width:100%;overflow:hidden}.header-center.searching{display:none}}.btn-press{transition:transform .1s}.btn-press:active{transform:scale(.95)}.user-btn{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.user-avatar-placeholder{background:#2a3743;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.user-avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:40px;height:40px;display:block}.photo-preview-img{max-width:100%;height:auto}.dropzone{text-align:center;cursor:pointer;aspect-ratio:4/3;background-color:#ffffff05;border:2px dashed #ccc;border-radius:8px;margin:1.5rem 0 1rem;transition:all .2s}.dropzone.is-dragging{background-color:#61afef0d;border-color:#61afef}.dropzone-label{cursor:pointer;color:#898989;flex-direction:column;justify-content:center;align-items:center;gap:1rem;width:100%;height:100%;display:flex}.dropzone-label p{margin:0}.file-input-hidden{display:none}.photo-upload-item{aspect-ratio:4/3;background:#1e262e;border-radius:6px;width:100%;margin-bottom:1.25rem;position:relative;overflow:hidden}.photo-upload-item img{object-fit:contain;z-index:1;width:100%;height:100%;display:block;position:absolute;top:0;left:0}.photo-upload-item .overlay,.photo-upload-item .btn-remove-photo{z-index:2}.photo-upload-item .overlay{background:#0009;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.upload-status-text{color:#fff;text-shadow:0 1px 3px #000c;text-align:center;margin-top:1rem;padding:0 1rem;font-size:.9rem}.photo-upload-item .error-overlay{cursor:pointer;background:#e06c75cc;border:none;width:100%;margin:0;padding:0}.photo-upload-item .btn-remove-photo{cursor:pointer;color:#fff;background:#000000b3;border:none;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;padding:0;display:flex;position:absolute;top:4px;right:4px}.photo-upload-item .btn-remove-photo:hover{background:var(--danger-color)}.spin-animation{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.btn-publish{width:100%}.user-menu-container{position:relative}.user-menu-popover{z-index:3001;background:#fff;border-radius:8px;width:280px;margin-top:10px;padding:1rem;position:absolute;top:100%;right:0;box-shadow:0 4px 12px #00000026}.menu-backdrop{z-index:3000;position:fixed;inset:0}.account-list{margin:0;padding:0;list-style:none}.account-item{border-bottom:1px solid var(--divider-color);flex-direction:column;padding:1rem 0;display:flex}.account-item:last-child{border-bottom:none;padding-bottom:0}.account-item:first-child{padding-top:0}.account-header{justify-content:space-between;align-items:center;display:flex}.account-status{color:#898989;white-space:nowrap;text-overflow:ellipsis;margin-top:.35rem;margin-left:calc(18px + .75rem);font-size:.85rem;overflow:hidden}.account-status strong{font-weight:600}.account-item.disabled{opacity:.5;pointer-events:none}.account-info{align-items:center;gap:.75rem;display:flex}.btn-text{cursor:pointer;background:0 0;border:none;padding:0;font-size:.9rem;font-weight:600}.text-primary{color:var(--link-color)}.text-danger{color:#dc3545}.btn-text:hover{text-decoration:underline}.sidebar{width:var(--sidebar-width);z-index:3100;will-change:transform;background:#fff;flex-direction:column;display:flex;position:absolute;top:0;bottom:0;left:0;overflow:hidden;box-shadow:2px 0 5px #0000001a}.sidebar-opening .sidebar{animation:.18s cubic-bezier(.16,1,.3,1) forwards sidebar-slide-in-left}.sidebar.app-menu-pane{z-index:3200}@media (width<=768px){.sidebar.app-menu-pane{border-radius:16px 16px 0 0;width:100%;height:66vh;top:auto;bottom:0;right:0}}.sidebar-header{border-bottom:1px solid var(--divider-color);box-sizing:border-box;justify-content:space-between;align-items:center;height:56px;padding:0 1rem;display:flex}.sidebar-header.no-border{border-bottom-color:#0000}.sidebar-header h2{align-items:center;gap:.5rem;margin:0;font-size:1.1rem;display:flex}.sidebar-content{-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior:contain;flex:1;min-height:0;padding:1rem;overflow-y:auto}.app-menu-pane .sidebar-content{padding-top:.5rem}.app-menu{margin:0 -1rem;padding:0;list-style:none}.app-menu button{width:100%;color:var(--body-text-color);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:.8rem;padding:1rem 1rem 1rem 1.4rem;font-family:inherit;font-size:.95rem;transition:background-color .2s;display:flex}.app-menu button:hover{background-color:var(--hover-bg)}.app-menu .icon{color:#666;width:20px;height:20px}.sidebar-content details{margin:0 -1rem}.sidebar-content details summary{cursor:pointer;color:var(--body-text-color);align-items:center;gap:.8rem;padding:1rem 1rem 1rem 1.4rem;font-size:.95rem;list-style:none;transition:background-color .2s;display:flex}.sidebar-content details summary::-webkit-details-marker{display:none}.sidebar-content details summary:hover{background-color:var(--hover-bg)}.sidebar-content details summary .icon{width:20px;height:20px}.sidebar-content details summary:after{content:"";background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 18 15 12 9 6'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:20px 20px;width:20px;height:20px;margin-left:auto;transition:transform .2s}.sidebar-content details[open] summary:after{transform:rotate(90deg)}.sidebar-content details .details-content{padding:0 1.4rem 1rem;font-size:.9rem;animation:.2s ease-out details-slide-down}.sidebar-content details .details-content.form-layout{flex-direction:column;gap:16px;display:flex}.relay-list{flex-direction:column;gap:4px;margin:0 0 .75rem;padding:0;list-style:none;display:flex}.relay-list li{word-break:break-all;border-radius:4px;justify-content:space-between;align-items:center;padding:.25rem 0;font-size:.9rem;display:flex}.btn-remove-relay{background-color:var(--primary-background-color);border:1px solid var(--danger-color);width:24px;height:24px;color:var(--danger-color);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:all .1s;display:flex}.btn-remove-relay svg{stroke:currentColor}.btn-remove-relay:hover,.btn-remove-relay:active{background-color:var(--danger-color);color:var(--primary-background-color)}.add-relay-input{gap:.5rem;display:flex}.btn-link.reset-relays{margin-top:.75rem;font-size:.85rem}@keyframes details-slide-down{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.edit-form{background:var(--hover-bg);border-bottom:1px solid var(--divider-color);margin:-1rem -1rem 1rem;padding:1rem}.form-group{margin-bottom:.75rem}.form-group label{color:#666;margin-bottom:.5rem;font-size:.85rem;display:block}.form-control{box-sizing:border-box;width:100%;color:var(--body-text-color);background-color:var(--primary-background-color);border:1px solid #ddd;border-radius:4px;padding:.5rem;font-family:inherit;font-size:1rem}.form-control:focus{border-color:var(--link-color);outline:none;box-shadow:0 0 0 2px #2a7fff1a}select.form-control{appearance:none;background-color:var(--primary-background-color);cursor:pointer;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;background-size:16px 16px;padding-right:2.5rem}.edit-actions{justify-content:flex-end;gap:.5rem;display:flex}.settings-section{margin-bottom:2rem;font-size:.95rem}.settings-section .form-group{margin-top:.5rem;margin-bottom:0}.settings-section .form-group:first-of-type{margin-top:1rem}.about-section{margin-bottom:2rem}.about-section a{color:var(--link-color);text-decoration:none}.about-section a:visited{color:var(--link-color-visited)}.about-section a:hover{text-decoration:underline}.about-section p+ul{margin-top:.25rem}.about-section ul{margin:.5rem 0 0;padding-inline-start:1.2em}.about-section li{margin-block:.15rem;padding-inline-start:.5rem}.about-section li::marker{content:"♥";color:#898989}.btn-full{width:100%}.btn-primary{background:var(--link-color);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:.75rem;font-weight:500}.btn-primary:hover{background:#0069d9}.meta-info{font-size:.9rem}.meta-info p{margin-top:1rem;margin-bottom:1rem}.meta-info p:first-child{border-top:1px solid var(--divider-color);margin-top:1.2rem;padding-top:1.2rem}.meta-info a,.meta-info .btn-link{color:var(--link-color);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:none}.meta-info a:hover,.meta-info .btn-link:hover{text-decoration:underline}.sidebar-content table{border-collapse:collapse;width:100%}.sidebar-content table th,.sidebar-content table td{text-align:left;padding:.5rem 0}.sidebar-content table th{text-transform:uppercase;color:#898989;font-size:.75rem;font-weight:700}.sidebar-content table td{border-bottom:1px solid #f9f9f9}.sidebar-content table tr:last-child td{border-bottom:none}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.places-list{margin:-1rem -1rem 0;padding:0;list-style:none}.place-item{text-align:left;border:none;border-bottom:1px solid var(--divider-color);background:var(--primary-background-color);width:100%;color:var(--body-text-color);cursor:pointer;padding:1rem;font-family:inherit;transition:background .2s}.place-item:hover{background:var(--hover-bg)}.place-name{margin-bottom:.25rem;font-size:1rem;font-weight:700}.place-type{color:#666;font-size:.85rem}.back-btn{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;margin-left:-.5rem;padding:0 .5rem;display:flex}.close-btn{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;margin-right:-.5rem;padding:0 .5rem;display:flex}.place-details{padding-bottom:2rem}.photo-carousel{position:relative}.photo-carousel.inline{margin:-1rem -1rem 1rem}.photo-carousel-track{scroll-behavior:smooth;scroll-snap-type:x mandatory;scrollbar-width:none;background-color:var(--hover-bg);display:flex;overflow-x:auto}.photo-carousel-track::-webkit-scrollbar{display:none}.carousel-slide{cursor:pointer;scroll-snap-align:start;aspect-ratio:16/9;flex:0 0 100%;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.carousel-placeholder{display:none}.place-header-photo-blur{object-fit:cover;width:100%;height:100%;display:block;position:absolute;top:0;left:0}.place-header-photo{opacity:0;z-index:1;width:100%;height:100%;transition:opacity .3s ease-in-out;display:block;position:absolute;top:0;left:0}.place-header-photo.landscape{object-fit:cover}.place-header-photo.portrait{object-fit:contain}.place-header-photo.loaded{opacity:1}.place-header-photo.loaded-instant{opacity:1;transition:none}.carousel-nav-btn{color:#fff;cursor:pointer;z-index:2;opacity:0;background:#00000080;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;padding:0;transition:opacity .2s,background-color .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.photo-carousel:hover .carousel-nav-btn:not(.disabled){opacity:1}.carousel-nav-btn:not(.disabled):hover{background:#000c}.carousel-nav-btn.disabled{opacity:0;pointer-events:none}.carousel-nav-btn.prev{left:.5rem}.carousel-nav-btn.next{right:.5rem}@media (width<=768px){.photo-carousel.inline .photo-carousel-track{scroll-snap-type:none;background-color:var(--primary-background-color);gap:2px}.photo-carousel.inline .carousel-slide{scroll-snap-align:none;flex:none;width:auto;height:100px}.photo-carousel.inline .carousel-slide.landscape{aspect-ratio:var(--slide-ratio,16 / 9)}.photo-carousel.inline .carousel-slide.portrait{aspect-ratio:1}.photo-carousel.inline .carousel-placeholder{background-color:var(--hover-bg);flex:1;min-width:0;display:block}.photo-carousel.inline .place-header-photo.landscape,.photo-carousel.inline .place-header-photo.portrait{object-fit:cover}.photo-carousel.inline .carousel-nav-btn{display:none}}.place-details h3{margin-top:0;margin-bottom:.5rem;font-size:1.2rem}.place-details .place-type{color:#666;margin:0 0 1rem;font-size:.9rem}.place-details p.place-description{line-height:1.4}.place-details .actions{flex-direction:row;gap:1rem;margin-top:1.5rem;padding-bottom:.3rem;display:flex}.btn{cursor:pointer;border-radius:4px;justify-content:center;align-items:center;gap:.5rem;padding:.6rem 1.2rem;font-size:.9rem;text-decoration:none;display:flex}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-outline{color:var(--body-text-color);background:0 0;border:1px solid #ccc}.btn-outline:hover{border:1px solid #898989}.btn-secondary{color:var(--body-text-color);background:#ffcc334d;border:1px solid #fc33}.btn-secondary:hover{background:#fc36}.btn-blue{background:var(--link-color);color:#fff;border:none}.btn-blue:hover{background:#0056b3}.btn-green{color:#fff;background:#198754;border:none}.btn-green:hover{background:#157347}.search-pulse{pointer-events:none;box-sizing:border-box;will-change:transform, opacity;backface-visibility:hidden;background:#fc33;border:2px solid #fc3c;border-radius:50%;animation:1.5s ease-out infinite pulse;display:none;position:absolute;transform:translate(-50%,-50%)}.search-pulse.active{display:block}.search-pulse.blue{background:#39c3;border-color:#39cc}@keyframes pulse{0%{opacity:.8;transform:translate(-50%,-50%)scale(.8)}to{opacity:0;transform:translate(-50%,-50%)scale(1.4)}}.ol-control.ol-attribution{bottom:1rem}.ol-touch .ol-control.ol-attribution{bottom:.5rem}.ol-control.ol-zoom{bottom:3rem}.ol-touch .ol-control.ol-zoom{bottom:3.5rem}.ol-control.ol-locate{bottom:6.5rem}.ol-touch .ol-control.ol-locate{bottom:8.5rem}.ol-control.ol-rotate{bottom:9rem}.ol-touch .ol-control.ol-rotate{bottom:11.5rem}.ol-control.ol-attribution,.ol-control.ol-zoom,.ol-control.ol-locate,.ol-control.ol-rotate{top:auto;left:auto;right:1rem}.ol-touch .ol-control.ol-attribution,.ol-touch .ol-control.ol-zoom,.ol-touch .ol-control.ol-locate,.ol-touch .ol-control.ol-rotate{right:.5rem}.app-logo-icon{width:32px;height:32px;margin:-6px 0;display:inline-flex}.app-logo-icon svg{width:100%;height:100%}span.icon{display:inline-block}.icon{flex-shrink:0}.icon svg{stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:100%;height:100%}.icon-filled svg{stroke:none;fill:currentColor}.content-with-icon{flex-direction:row;align-items:flex-start;gap:.5rem;display:flex}.content-with-icon>span:not(.icon){flex:1;min-width:0}.content-with-icon>span:not(.icon) a{text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;max-width:100%;display:inline-block;overflow:hidden}.content-with-icon .icon{margin-top:.15rem}.selected-pin-container{pointer-events:none;display:none;position:absolute;transform:translate(-50%,-100%)}.selected-pin-container.active{animation:.5s cubic-bezier(.175,.885,.32,1.275) forwards drop-in;display:block}.selected-pin{width:40px;height:40px;color:var(--marker-color-primary);filter:drop-shadow(0 4px 6px #0000004d)}.selected-pin svg{width:100%;height:100%;fill:var(--marker-color-primary);stroke:var(--marker-color-dark);stroke-width:1px}.selected-pin-shadow{z-index:-1;opacity:0;background:#0000004d;border-radius:50%;width:10px;height:4px;animation:.5s .2s forwards shadow-fade;position:absolute;bottom:0;left:50%;transform:translate(-50%)}@keyframes drop-in{0%{opacity:0;transform:translate(-50%,-200%)scale(0)}60%{opacity:1}to{opacity:1;transform:translate(-50%,-100%)scale(1)}}@keyframes shadow-fade{to{opacity:1}}.map-crosshair{width:24px;height:24px;color:var(--body-text-color);pointer-events:none;z-index:2000;transition:top .3s,left .3s;display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.map-crosshair.visible{display:block}.map-container.sidebar-open .map-crosshair{left:calc(50% + var(--sidebar-width) / 2)}@media (width<=768px){.map-container.sidebar-open .map-crosshair{top:calc(25% + 30px);left:50%}}.helper-text{color:#1a5c9b;background:#eef4fc;border-radius:4px;align-items:center;gap:.5rem;margin-top:0;margin-bottom:1rem;padding:.75rem;font-size:.9rem;display:flex}button.create-place{width:100%;margin:1.5rem auto}@media (width<=768px){.sidebar{border-top-left-radius:16px;border-top-right-radius:16px;width:100%;height:50vh;inset:auto 0 0;box-shadow:0 -2px 10px #0000001a}.sidebar-opening .sidebar{animation:.18s cubic-bezier(.16,1,.3,1) forwards sidebar-slide-up-bottom}.sidebar-content{padding-bottom:env(safe-area-inset-bottom,20px);overflow-y:auto}}.search-box{z-index:3002;width:100%;max-width:400px;margin-left:0;position:relative}@media (width<=768px){.search-box{max-width:calc(100vw - 65px)}}.search-form{background:#fff;border-radius:24px;align-items:center;height:48px;padding:0 .5rem;transition:box-shadow .2s;display:flex;box-shadow:0 2px 5px #00000026}.search-form:focus-within{box-shadow:0 4px 12px #00000026}.menu-btn-integrated{cursor:pointer;color:#5f6368;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;margin-right:4px;padding:8px;display:flex}.menu-btn-integrated:hover{background:#0000000d}.search-icon{color:#5f6368;justify-content:center;align-items:center;margin-right:.5rem;padding:8px;display:flex}.search-input{min-width:0;height:100%;color:var(--body-text-color);-webkit-appearance:none;background:0 0;border:none;outline:none;flex:1;width:100%;padding:0 4px;font-size:1rem}.search-input::-webkit-search-cancel-button{-webkit-appearance:none}.search-submit-btn{cursor:pointer;color:#5f6368;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;margin-left:4px;padding:8px;display:flex}.search-submit-btn:hover{color:var(--body-text-color);background:#0000000d}.search-clear-btn{cursor:pointer;color:#5f6368;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;margin-left:2px;padding:8px;display:flex}.search-clear-btn:hover{color:var(--body-text-color);background:#0000000d}.search-results-popover{z-index:3002;background:#fff;border-radius:8px;max-height:400px;margin-top:8px;position:absolute;top:100%;left:0;right:0;overflow:hidden auto;box-shadow:0 4px 12px #00000026}.search-results-list{margin:0;padding:0;list-style:none}.search-result-item{text-align:left;cursor:pointer;background:#fff;border:none;border-bottom:1px solid #f0f0f0;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;transition:background .1s;display:flex}.search-result-item:last-child{border-bottom:none}.search-result-item:hover,.search-result-item:focus{background:var(--hover-bg);outline:none}.result-icon{color:#666;background:#f0f0f0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.result-info{flex-direction:column;display:flex;overflow:hidden}.result-title{color:var(--body-text-color);white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:500;overflow:hidden}.result-desc{color:#777;white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:.8rem;overflow:hidden}.save-button-wrapper{position:relative}.place-lists-manager{z-index:10;background:#fff;border-radius:8px;width:220px;margin-top:.5rem;padding:.5rem 0;position:absolute;top:100%;left:0;box-shadow:0 4px 12px #00000026}.place-lists-manager .list-item{align-items:center;padding:.5rem 1rem;display:flex}.place-lists-manager .list-item:hover{background:var(--hover-bg)}.place-lists-manager label{cursor:pointer;width:100%;color:var(--body-text-color);align-items:center;gap:.75rem;margin:0;font-size:.95rem;display:flex}.place-lists-manager input[type=checkbox]{accent-color:var(--link-color);cursor:pointer;width:16px;height:16px}.list-color-dot{background-color:var(--default-list-color);border:1px solid #0000001a;border-radius:50%;flex-shrink:0;width:12px;height:12px}.place-lists-manager .divider{background:var(--divider-color);height:1px;margin:.5rem 0}.category-chips-scroll{-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;width:100%;margin-top:0;padding:4px 0;overflow-x:auto}.category-chips-scroll::-webkit-scrollbar{display:none}.category-chips-container{gap:8px;width:max-content;padding:0 4px;display:flex}.category-chip{color:var(--body-text-color);cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #ddd;border-radius:16px;align-items:center;gap:6px;padding:6px 12px;font-size:.9rem;transition:background-color .2s;display:flex;box-shadow:0 1px 3px #0000001a}.category-chip:hover{background:var(--hover-bg)}.category-chip:active{background:var(--divider-color)}.category-chip:disabled{opacity:.75;cursor:not-allowed;pointer-events:none}.toast-notification{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;z-index:9999;text-align:center;pointer-events:none;background-color:#333333d9;border-radius:999px;max-width:90%;padding:.75rem 1.5rem;font-size:.9rem;font-weight:500;animation:.3s ease-out forwards fade-in-up;position:fixed;bottom:2rem;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #00000026}@keyframes fade-in-up{0%{opacity:0;transform:translate(-50%,1rem)}to{opacity:1;transform:translate(-50%)}}.nostr-connect-modal h2{margin-top:0}.nostr-connect-options{flex-direction:column;gap:1rem;margin-top:1.5rem;display:flex}.mobile-connect-actions{flex-direction:column;gap:.5rem;margin-top:1rem;display:flex}.nostr-connect-status{text-align:center;margin-top:1.5rem}.qr-code-container{justify-content:center;margin-top:1rem;display:flex}.qr-code-container canvas{background:#fff;border-radius:8px}.modal-overlay{z-index:9999;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:#fff;border-radius:8px;width:450px;max-width:90vw;padding:1.5rem;position:relative;box-shadow:0 4px 12px #00000026}.close-modal-btn{cursor:pointer;color:#898989;position:absolute;top:1rem;right:1rem}.close-modal-btn.disabled{color:#ccc;cursor:not-allowed}.place-photo-upload h2{margin-top:0;font-size:1.2rem}.place-photo-upload .form-group{margin-bottom:1.5rem}.photo-tag-suggestions{margin-bottom:1.25rem}.photo-tag-suggestions-title{color:#898989;margin:0 0 .75rem;font-size:.9rem;font-weight:400}.photo-tag-suggestions-list{flex-wrap:wrap;gap:.5rem;display:flex}.photo-tag-chip{color:var(--body-text-color);cursor:pointer;background:#f8f9fa;border:none;border-radius:16px;padding:6px 12px;font-size:.9rem;transition:background-color .1s}.photo-tag-chip:hover{background:var(--divider-color)}.photo-tag-chip.is-selected{background:#ffcc334d}.alert{border-radius:.25rem;margin-bottom:1rem;padding:.5rem}.alert-error{color:#c00;background:#fee}.preview-group{margin-bottom:1rem}.preview-group p{margin-bottom:.25rem;font-weight:700}.preview-group img{border-radius:.25rem;max-width:100%}.btn-link{color:var(--link-color);cursor:pointer;font:inherit;background:0 0;border:none;padding:0;text-decoration:none}.btn-link:hover{text-decoration:underline}.photo-gallery-overlay{z-index:9999;background:#000000e6;flex-direction:column;display:flex;position:fixed;inset:0}.photo-gallery-overlay .photo-gallery-content{flex-direction:column;width:100%;height:100%;display:flex;position:relative}.photo-gallery-overlay .close-btn{z-index:10;color:#fff;background:0 0;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;transition:background-color .2s;display:flex;position:absolute;top:.5rem;right:1rem}@media (width<=768px){.photo-gallery-overlay .close-btn{right:.5rem}}.photo-gallery-overlay .main-photo-container{flex:1;justify-content:center;align-items:center;padding:2rem;display:flex;overflow:hidden}@media (width<=768px){.photo-gallery-overlay .main-photo-container{padding:2rem 0}}.photo-gallery-overlay .main-photo-container img{object-fit:contain;max-width:100%;max-height:100%}.photo-carousel.gallery-main{flex-direction:column;width:100%;height:100%;display:flex}.photo-carousel.gallery-main .photo-carousel-track{background:0 0;height:100%}.photo-carousel.gallery-main .carousel-slide{aspect-ratio:auto;cursor:default;flex:0 0 100%;height:100%}.photo-carousel.gallery-main .carousel-nav-btn{width:48px;height:48px}.photo-carousel.gallery-main .place-header-photo-blur,.photo-carousel.gallery-main .place-header-photo.landscape,.photo-carousel.gallery-main .place-header-photo.portrait{object-fit:contain}@media (width<=768px){.photo-carousel.gallery-main .carousel-nav-btn{display:none}}.photo-carousel.gallery-thumbnails{width:100%;height:100px;padding-bottom:env(safe-area-inset-bottom,0);background:#00000080}.photo-carousel.gallery-thumbnails .photo-carousel-track{scroll-snap-type:none;background:0 0;gap:4px;height:100%;padding:0}.photo-carousel.gallery-thumbnails .carousel-slide{scroll-snap-align:none;opacity:.6;flex:none;width:auto;height:100%;transition:opacity .2s}.photo-carousel.gallery-thumbnails .carousel-slide.landscape{aspect-ratio:var(--slide-ratio,16 / 9)}.photo-carousel.gallery-thumbnails .carousel-slide.portrait{aspect-ratio:1}.photo-carousel.gallery-thumbnails .carousel-slide:hover,.photo-carousel.gallery-thumbnails .carousel-slide.active{opacity:1}.photo-carousel.gallery-thumbnails .place-header-photo.landscape,.photo-carousel.gallery-thumbnails .place-header-photo.portrait{object-fit:cover;height:100%}.photo-carousel.gallery-thumbnails .carousel-nav-btn{display:none}.dropdown-menu-container{display:inline-block;position:relative}.dropdown-trigger-btn{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.dropdown-popover{z-index:3001;background:#fff;border-radius:8px;flex-direction:column;gap:.25rem;min-width:150px;margin-top:5px;padding:.5rem 0;display:flex;position:absolute;top:100%;left:0;box-shadow:0 4px 12px #00000026}.dropdown-item{text-align:left;cursor:pointer;color:var(--body-text-color);white-space:nowrap;background:0 0;border:none;padding:.5rem 1rem;font-size:.95rem}.dropdown-item:hover{background:#f0f0f0}.photo-gallery-overlay .photo-gallery-header{z-index:10;flex-direction:column;align-items:flex-start;gap:.25rem;display:flex;position:absolute;top:.5rem;left:1rem}.photo-gallery-overlay .photo-gallery-header .actions-btn-container{z-index:2;flex-shrink:0;justify-content:flex-start;align-items:center;height:48px;display:flex;position:relative}.photo-gallery-overlay .photo-gallery-uploader-info{color:#ffffffe6;pointer-events:none;text-shadow:0 1px 2px #0009;flex-direction:column;gap:.1rem;max-width:calc(100vw - 4rem);display:flex;overflow:hidden}.photo-gallery-overlay .photo-gallery-uploader-name{white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:600;overflow:hidden}.photo-gallery-overlay .photo-gallery-uploader-date{color:#ffffffb3;white-space:nowrap;font-size:.8rem}@media (width<=768px){.photo-gallery-overlay .photo-gallery-header{flex-direction:row;align-items:flex-start;gap:.5rem;left:.5rem}.photo-gallery-overlay .photo-gallery-header .actions-btn-container{justify-content:center;width:48px}.photo-gallery-overlay .photo-gallery-uploader-info{flex-direction:row;align-self:center;align-items:center;gap:.35rem}}@keyframes sidebar-slide-in-left{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes sidebar-slide-up-bottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}.lists-index-item{text-align:left;border:none;border-bottom:1px solid var(--divider-color);background:var(--primary-background-color);width:100%;color:var(--body-text-color);cursor:pointer;justify-content:space-between;align-items:center;padding:1rem;font-family:inherit;transition:background .2s;display:flex}.lists-index-item:hover{background:var(--hover-bg)}.lists-index-item-left{align-items:center;gap:12px;min-width:0;display:flex}.lists-index-name{text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;font-weight:400;overflow:hidden}.lists-index-count{color:#666;white-space:nowrap;flex-shrink:0;margin:0;font-size:.85rem}.sidebar-header.has-back-btn{justify-content:center;position:relative}.sidebar-header.has-back-btn .back-btn{z-index:10;position:absolute;left:1rem}.sidebar-header.has-back-btn .close-btn{z-index:10;position:absolute;right:1rem}.sidebar-header-text-centered{text-align:center;justify-content:center;align-items:center;max-width:60%;margin:0;font-size:1.2rem;font-weight:700;display:inline-flex;position:relative}.sidebar-header-icon-wrapper{align-items:center;margin-right:.5rem;display:flex;position:absolute;right:100%}.sidebar-loading{justify-content:center;align-items:center;padding:4rem 1rem;display:flex}.contributions-list{margin:-1rem -1rem 0;padding:0;list-style:none}.contribution-item{text-align:left;border:none;border-bottom:1px solid var(--divider-color);background:var(--primary-background-color);width:100%;color:var(--body-text-color);cursor:pointer;align-items:flex-start;gap:12px;padding:.75rem 1rem;font-family:inherit;transition:background .2s;display:flex}.contribution-item:hover{background:var(--hover-bg)}.contribution-thumb{background:#f0f0f0;border-radius:6px;flex-shrink:0;width:56px;height:56px;position:relative;overflow:hidden}.contribution-thumb img{object-fit:cover;width:100%;height:100%;display:block}.contribution-thumb-badge{color:#fff;background:#000000a6;border-radius:4px;padding:1px 4px;font-size:.7rem;font-weight:700;position:absolute;bottom:2px;right:2px}.contribution-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.contribution-place{text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:700;overflow:hidden}.contribution-name-loading{color:#999;font-style:italic;font-weight:400}.contribution-meta{color:#666;font-size:.85rem}.contribution-tags{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.contribution-tag{color:#555;background:#f0f0f0;border-radius:10px;padding:2px 6px;font-size:.72rem}:root,:host{--ol-background-color:white;--ol-accent-background-color:#f5f5f5;--ol-subtle-background-color:#80808040;--ol-partial-background-color:#ffffffbf;--ol-foreground-color:#333;--ol-subtle-foreground-color:#666;--ol-brand-color:#0af}.ol-box{box-sizing:border-box;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color);border-radius:2px}.ol-mouse-position{position:absolute;top:8px;right:8px}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;padding:2px;position:absolute;bottom:8px;left:8px}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color);text-align:center;will-change:contents, width;border-top:none;margin:1px;font-size:10px;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{background-color:var(--ol-foreground-color);float:right;z-index:10;width:1px;height:15px}.ol-scale-step-text{z-index:11;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color), 0 1.5px var(--ol-partial-background-color), 1.5px 0 var(--ol-partial-background-color), 0 -1.5px var(--ol-partial-background-color);font-size:10px;position:absolute;bottom:-5px}.ol-scale-text{text-align:center;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color), 0 1.5px var(--ol-partial-background-color), 1.5px 0 var(--ol-partial-background-color), 0 -1.5px var(--ol-partial-background-color);font-size:12px;position:absolute;bottom:25px}.ol-scale-singlebar{z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color);height:10px;position:relative}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-viewport,.ol-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;user-select:text}.ol-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.ol-grab{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.ol-control{background-color:var(--ol-subtle-background-color);border-radius:4px;position:absolute}.ol-zoom{top:.5em;left:.5em}.ol-rotate{transition:opacity .25s linear,visibility linear;top:.5em;right:.5em}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{top:.5em;right:.5em}.ol-control button{color:var(--ol-subtle-foreground-color);font-weight:700;font-size:inherit;text-align:center;background-color:var(--ol-background-color);border:none;border-radius:2px;width:1.375em;height:1.375em;margin:1px;padding:0;line-height:.4em;text-decoration:none;display:block}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{will-change:transform;font-weight:400;display:block}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:hover,.ol-control button:focus{outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color);text-decoration:none}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;flex-flow:row-reverse;align-items:center;max-width:calc(100% - 1.3em);display:flex;bottom:.5em;right:.5em}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);margin:0;padding:1px .5em;font-size:12px}.ol-attribution li{list-style:none;display:inline}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{border-radius:4px 0 0;bottom:0;right:0}.ol-attribution.ol-uncollapsible img{max-height:1.6em;margin-top:-.2em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{height:200px;top:4.5em;left:.5em}.ol-zoomslider button{height:10px;position:relative}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{bottom:.5em;left:.5em}.ol-overviewmap.ol-uncollapsible{border-radius:0 4px 0 0;bottom:0;left:0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);width:150px;height:150px}.ol-overviewmap:not(.ol-collapsed) button{position:absolute;bottom:0;left:0}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-overviewmap .ol-viewport:hover{cursor:pointer} +:root{--body-text-color:#333;--primary-background-color:#fff;--hover-bg:#f8f9fa;--divider-color:#eee;--sidebar-width:350px;--link-color:#2a7fff;--link-color-visited:#6a4fbf;--marker-color-primary:#ea4335;--marker-color-dark:#b31412;--danger-color:var(--marker-color-primary);--danger-color-dark:var(--marker-color-dark);--default-list-color:#fc3}html,body{overscroll-behavior:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;height:100%}button{-webkit-tap-highlight-color:transparent}body{color:var(--body-text-color);margin:0;font-family:Noto Sans,sans-serif;font-size:16px;font-weight:400}#root,#ember-testing{height:100%}.map-container{-webkit-tap-highlight-color:transparent;background:#f8f9fa;outline:none;position:absolute;inset:0}#rs-widget-container{z-index:4000;display:none;position:absolute;top:60px;right:10px}#rs-widget-container.visible{display:block}.rs-backdrop{z-index:3999;position:fixed;inset:0}.app-header{z-index:3000;pointer-events:none;grid-template-columns:1fr auto 1fr;grid-template-areas:"search chips user";align-items:center;gap:1rem;height:60px;padding:.5rem 1rem;display:grid;position:absolute;top:0;left:0;right:0}@media (width<=768px){.app-header{grid-template-columns:1fr auto;grid-template-areas:"search user""chips chips";row-gap:8px;height:auto;padding:.5rem .5rem 0}}.header-left,.header-right,.header-center{pointer-events:auto}.header-left{grid-area:search;justify-self:start;align-items:center;width:100%;display:flex}@media (width>768px){.header-left{min-width:300px;max-width:350px}}.header-right{grid-area:user;justify-self:end}.header-center{grid-area:chips;justify-content:center;min-width:0;display:flex}@media (width>768px){.header-center .category-chips-scroll{width:auto;max-width:100%}}@media (width<=768px){.header-center{justify-content:start;width:100%;overflow:hidden}.header-center.searching{display:none}}.btn-press{transition:transform .1s}.btn-press:active{transform:scale(.95)}.user-btn{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.user-avatar-placeholder{background:#2a3743;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.user-avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:40px;height:40px;display:block}.photo-preview-img{max-width:100%;height:auto}.dropzone{text-align:center;cursor:pointer;aspect-ratio:4/3;background-color:#ffffff05;border:2px dashed #ccc;border-radius:8px;margin:1.5rem 0 1rem;transition:all .2s}.dropzone.is-dragging{background-color:#61afef0d;border-color:#61afef}.dropzone-label{cursor:pointer;color:#898989;flex-direction:column;justify-content:center;align-items:center;gap:1rem;width:100%;height:100%;display:flex}.dropzone-label p{margin:0}.file-input-hidden{display:none}.photo-upload-item{aspect-ratio:4/3;background:#1e262e;border-radius:6px;width:100%;margin-bottom:1.25rem;position:relative;overflow:hidden}.photo-upload-item img{object-fit:contain;z-index:1;width:100%;height:100%;display:block;position:absolute;top:0;left:0}.photo-upload-item .overlay,.photo-upload-item .btn-remove-photo{z-index:2}.photo-upload-item .overlay{background:#0009;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.upload-status-text{color:#fff;text-shadow:0 1px 3px #000c;text-align:center;margin-top:1rem;padding:0 1rem;font-size:.9rem}.photo-upload-item .error-overlay{cursor:pointer;background:#e06c75cc;border:none;width:100%;margin:0;padding:0}.photo-upload-item .btn-remove-photo{cursor:pointer;color:#fff;background:#000000b3;border:none;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;padding:0;display:flex;position:absolute;top:4px;right:4px}.photo-upload-item .btn-remove-photo:hover{background:var(--danger-color)}.spin-animation{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.btn-publish{width:100%}.user-menu-container{position:relative}.user-menu-popover{z-index:3001;background:#fff;border-radius:8px;width:280px;margin-top:10px;padding:1rem;position:absolute;top:100%;right:0;box-shadow:0 4px 12px #00000026}.menu-backdrop{z-index:3000;position:fixed;inset:0}.account-list{margin:0;padding:0;list-style:none}.account-item{border-bottom:1px solid var(--divider-color);flex-direction:column;padding:1rem 0;display:flex}.account-item:last-child{border-bottom:none;padding-bottom:0}.account-item:first-child{padding-top:0}.account-header{justify-content:space-between;align-items:center;display:flex}.account-status{color:#898989;white-space:nowrap;text-overflow:ellipsis;margin-top:.35rem;margin-left:calc(18px + .75rem);font-size:.85rem;overflow:hidden}.account-status strong{font-weight:600}.account-item.disabled{opacity:.5;pointer-events:none}.account-info{align-items:center;gap:.75rem;display:flex}.btn-text{cursor:pointer;background:0 0;border:none;padding:0;font-size:.9rem;font-weight:600}.text-primary{color:var(--link-color)}.text-danger{color:#dc3545}.btn-text:hover{text-decoration:underline}.sidebar{width:var(--sidebar-width);z-index:3100;will-change:transform;background:#fff;flex-direction:column;display:flex;position:absolute;top:0;bottom:0;left:0;overflow:hidden;box-shadow:2px 0 5px #0000001a}.sidebar-opening .sidebar{animation:.18s cubic-bezier(.16,1,.3,1) forwards sidebar-slide-in-left}.sidebar.app-menu-pane{z-index:3200}@media (width<=768px){.sidebar.app-menu-pane{border-radius:16px 16px 0 0;width:100%;height:66vh;top:auto;bottom:0;right:0}}.sidebar-header{border-bottom:1px solid var(--divider-color);box-sizing:border-box;justify-content:space-between;align-items:center;height:56px;padding:0 1rem;display:flex}.sidebar-header.no-border{border-bottom-color:#0000}.sidebar-header h2{align-items:center;gap:.5rem;margin:0;font-size:1.1rem;display:flex}.sidebar-content{-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior:contain;flex:1;min-height:0;padding:1rem;overflow-y:auto}.app-menu-pane .sidebar-content{padding-top:.5rem}.app-menu{margin:0 -1rem;padding:0;list-style:none}.app-menu button{width:100%;color:var(--body-text-color);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:.8rem;padding:1rem 1rem 1rem 1.4rem;font-family:inherit;font-size:.95rem;transition:background-color .2s;display:flex}.app-menu button:hover{background-color:var(--hover-bg)}.app-menu .icon{color:#666;width:20px;height:20px}.sidebar-content details{margin:0 -1rem}.sidebar-content details summary{cursor:pointer;color:var(--body-text-color);align-items:center;gap:.8rem;padding:1rem 1rem 1rem 1.4rem;font-size:.95rem;list-style:none;transition:background-color .2s;display:flex}.sidebar-content details summary::-webkit-details-marker{display:none}.sidebar-content details summary:hover{background-color:var(--hover-bg)}.sidebar-content details summary .icon{width:20px;height:20px}.sidebar-content details summary:after{content:"";background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 18 15 12 9 6'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:20px 20px;width:20px;height:20px;margin-left:auto;transition:transform .2s}.sidebar-content details[open] summary:after{transform:rotate(90deg)}.sidebar-content details .details-content{padding:0 1.4rem 1rem;font-size:.9rem;animation:.2s ease-out details-slide-down}.sidebar-content details .details-content.form-layout{flex-direction:column;gap:16px;display:flex}.relay-list{flex-direction:column;gap:4px;margin:0 0 .75rem;padding:0;list-style:none;display:flex}.relay-list li{word-break:break-all;border-radius:4px;justify-content:space-between;align-items:center;padding:.25rem 0;font-size:.9rem;display:flex}.btn-remove-relay{background-color:var(--primary-background-color);border:1px solid var(--danger-color);width:24px;height:24px;color:var(--danger-color);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:all .1s;display:flex}.btn-remove-relay svg{stroke:currentColor}.btn-remove-relay:hover,.btn-remove-relay:active{background-color:var(--danger-color);color:var(--primary-background-color)}.add-relay-input{gap:.5rem;display:flex}.btn-link.reset-relays{margin-top:.75rem;font-size:.85rem}@keyframes details-slide-down{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.edit-form{background:var(--hover-bg);border-bottom:1px solid var(--divider-color);margin:-1rem -1rem 1rem;padding:1rem}.form-group{margin-bottom:.75rem}.form-group label{color:#666;margin-bottom:.5rem;font-size:.85rem;display:block}.form-control{box-sizing:border-box;width:100%;color:var(--body-text-color);background-color:var(--primary-background-color);border:1px solid #ddd;border-radius:4px;padding:.5rem;font-family:inherit;font-size:1rem}.form-control:focus{border-color:var(--link-color);outline:none;box-shadow:0 0 0 2px #2a7fff1a}select.form-control{appearance:none;background-color:var(--primary-background-color);cursor:pointer;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;background-size:16px 16px;padding-right:2.5rem}.edit-actions{justify-content:flex-end;gap:.5rem;display:flex}.settings-section{margin-bottom:2rem;font-size:.95rem}.settings-section .form-group{margin-top:.5rem;margin-bottom:0}.settings-section .form-group:first-of-type{margin-top:1rem}.about-section{margin-bottom:2rem}.about-section a{color:var(--link-color);text-decoration:none}.about-section a:visited{color:var(--link-color-visited)}.about-section a:hover{text-decoration:underline}.about-section p+ul{margin-top:.25rem}.about-section ul{margin:.5rem 0 0;padding-inline-start:1.2em}.about-section li{margin-block:.15rem;padding-inline-start:.5rem}.about-section li::marker{content:"♥";color:#898989}.btn-full{width:100%}.btn-primary{background:var(--link-color);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:.75rem;font-weight:500}.btn-primary:hover{background:#0069d9}.meta-info{font-size:.9rem}.meta-info p{margin-top:1rem;margin-bottom:1rem}.meta-info p:first-child{border-top:1px solid var(--divider-color);margin-top:1.2rem;padding-top:1.2rem}.meta-info a,.meta-info .btn-link{color:var(--link-color);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:none}.meta-info a:hover,.meta-info .btn-link:hover{text-decoration:underline}.sidebar-content table{border-collapse:collapse;width:100%}.sidebar-content table th,.sidebar-content table td{text-align:left;padding:.5rem 0}.sidebar-content table th{text-transform:uppercase;color:#898989;font-size:.75rem;font-weight:700}.sidebar-content table td{border-bottom:1px solid #f9f9f9}.sidebar-content table tr:last-child td{border-bottom:none}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.places-list{margin:-1rem -1rem 0;padding:0;list-style:none}.place-item{text-align:left;border:none;border-bottom:1px solid var(--divider-color);background:var(--primary-background-color);width:100%;color:var(--body-text-color);cursor:pointer;padding:1rem;font-family:inherit;transition:background .2s}.place-item:hover{background:var(--hover-bg)}.place-name{margin-bottom:.25rem;font-size:1rem;font-weight:700}.place-type{color:#666;font-size:.85rem}.back-btn{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;margin-left:-.5rem;padding:0 .5rem;display:flex}.close-btn{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;margin-right:-.5rem;padding:0 .5rem;display:flex}.place-details{padding-bottom:2rem}.photo-carousel{position:relative}.photo-carousel.inline{margin:-1rem -1rem 1rem}.photo-carousel-track{scroll-behavior:smooth;scroll-snap-type:x mandatory;scrollbar-width:none;background-color:var(--hover-bg);display:flex;overflow-x:auto}.photo-carousel-track::-webkit-scrollbar{display:none}.carousel-slide{cursor:pointer;scroll-snap-align:start;aspect-ratio:16/9;flex:0 0 100%;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.carousel-placeholder{display:none}.place-header-photo-blur{object-fit:cover;width:100%;height:100%;display:block;position:absolute;top:0;left:0}.place-header-photo{opacity:0;z-index:1;width:100%;height:100%;transition:opacity .3s ease-in-out;display:block;position:absolute;top:0;left:0}.place-header-photo.landscape{object-fit:cover}.place-header-photo.portrait{object-fit:contain}.place-header-photo.loaded{opacity:1}.place-header-photo.loaded-instant{opacity:1;transition:none}.carousel-nav-btn{color:#fff;cursor:pointer;z-index:2;opacity:0;background:#00000080;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;padding:0;transition:opacity .2s,background-color .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.photo-carousel:hover .carousel-nav-btn:not(.disabled){opacity:1}.carousel-nav-btn:not(.disabled):hover{background:#000c}.carousel-nav-btn.disabled{opacity:0;pointer-events:none}.carousel-nav-btn.prev{left:.5rem}.carousel-nav-btn.next{right:.5rem}@media (width<=768px){.photo-carousel.inline .photo-carousel-track{scroll-snap-type:none;background-color:var(--primary-background-color);gap:2px}.photo-carousel.inline .carousel-slide{scroll-snap-align:none;flex:none;width:auto;height:100px}.photo-carousel.inline .carousel-slide.landscape{aspect-ratio:var(--slide-ratio,16 / 9)}.photo-carousel.inline .carousel-slide.portrait{aspect-ratio:1}.photo-carousel.inline .carousel-placeholder{background-color:var(--hover-bg);flex:1;min-width:0;display:block}.photo-carousel.inline .place-header-photo.landscape,.photo-carousel.inline .place-header-photo.portrait{object-fit:cover}.photo-carousel.inline .carousel-nav-btn{display:none}}.place-details h3{margin-top:0;margin-bottom:.5rem;font-size:1.2rem}.place-details .place-type{color:#666;margin:0 0 1rem;font-size:.9rem}.place-details p.place-description{line-height:1.4}.place-details .actions{flex-direction:row;gap:1rem;margin-top:1.5rem;padding-bottom:.3rem;display:flex}.btn{cursor:pointer;border-radius:4px;justify-content:center;align-items:center;gap:.5rem;padding:.6rem 1.2rem;font-size:.9rem;text-decoration:none;display:flex}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-outline{color:var(--body-text-color);background:0 0;border:1px solid #ccc}.btn-outline:hover{border:1px solid #898989}.btn-secondary{color:var(--body-text-color);background:#ffcc334d;border:1px solid #fc33}.btn-secondary:hover{background:#fc36}.btn-blue{background:var(--link-color);color:#fff;border:none}.btn-blue:hover{background:#0056b3}.btn-green{color:#fff;background:#198754;border:none}.btn-green:hover{background:#157347}.search-pulse{pointer-events:none;box-sizing:border-box;will-change:transform, opacity;backface-visibility:hidden;background:#fc33;border:2px solid #fc3c;border-radius:50%;animation:1.5s ease-out infinite pulse;display:none;position:absolute;transform:translate(-50%,-50%)}.search-pulse.active{display:block}.search-pulse.blue{background:#39c3;border-color:#39cc}@keyframes pulse{0%{opacity:.8;transform:translate(-50%,-50%)scale(.8)}to{opacity:0;transform:translate(-50%,-50%)scale(1.4)}}.ol-control.ol-attribution{bottom:1rem}.ol-touch .ol-control.ol-attribution{bottom:.5rem}.ol-control.ol-zoom{bottom:3rem}.ol-touch .ol-control.ol-zoom{bottom:3.5rem}.ol-control.ol-locate{bottom:6.5rem}.ol-touch .ol-control.ol-locate{bottom:8.5rem}.ol-control.ol-rotate{bottom:9rem}.ol-touch .ol-control.ol-rotate{bottom:11.5rem}.ol-control.ol-attribution,.ol-control.ol-zoom,.ol-control.ol-locate,.ol-control.ol-rotate{top:auto;left:auto;right:1rem}.ol-touch .ol-control.ol-attribution,.ol-touch .ol-control.ol-zoom,.ol-touch .ol-control.ol-locate,.ol-touch .ol-control.ol-rotate{right:.5rem}.app-logo-icon{width:32px;height:32px;margin:-6px 0;display:inline-flex}.app-logo-icon svg{width:100%;height:100%}span.icon{display:inline-block}.icon{flex-shrink:0}.icon svg{stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:100%;height:100%}.icon-filled svg{stroke:none;fill:currentColor}.content-with-icon{flex-direction:row;align-items:flex-start;gap:.5rem;display:flex}.content-with-icon>span:not(.icon){flex:1;min-width:0}.content-with-icon>span:not(.icon) a{text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;max-width:100%;display:inline-block;overflow:hidden}.content-with-icon .icon{margin-top:.15rem}.selected-pin-container{pointer-events:none;display:none;position:absolute;transform:translate(-50%,-100%)}.selected-pin-container.active{animation:.5s cubic-bezier(.175,.885,.32,1.275) forwards drop-in;display:block}.selected-pin{width:40px;height:40px;color:var(--marker-color-primary);filter:drop-shadow(0 4px 6px #0000004d)}.selected-pin svg{width:100%;height:100%;fill:var(--marker-color-primary);stroke:var(--marker-color-dark);stroke-width:1px}.selected-pin-shadow{z-index:-1;opacity:0;background:#0000004d;border-radius:50%;width:10px;height:4px;animation:.5s .2s forwards shadow-fade;position:absolute;bottom:0;left:50%;transform:translate(-50%)}@keyframes drop-in{0%{opacity:0;transform:translate(-50%,-200%)scale(0)}60%{opacity:1}to{opacity:1;transform:translate(-50%,-100%)scale(1)}}@keyframes shadow-fade{to{opacity:1}}.map-crosshair{width:24px;height:24px;color:var(--body-text-color);pointer-events:none;z-index:2000;transition:top .3s,left .3s;display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.map-crosshair.visible{display:block}.map-container.sidebar-open .map-crosshair{left:calc(50% + var(--sidebar-width) / 2)}@media (width<=768px){.map-container.sidebar-open .map-crosshair{top:calc(25% + 30px);left:50%}}.helper-text{color:#1a5c9b;background:#eef4fc;border-radius:4px;align-items:center;gap:.5rem;margin-top:0;margin-bottom:1rem;padding:.75rem;font-size:.9rem;display:flex}button.create-place{width:100%;margin:1.5rem auto}@media (width<=768px){.sidebar{border-top-left-radius:16px;border-top-right-radius:16px;width:100%;height:50vh;inset:auto 0 0;box-shadow:0 -2px 10px #0000001a}.sidebar-opening .sidebar{animation:.18s cubic-bezier(.16,1,.3,1) forwards sidebar-slide-up-bottom}.sidebar-content{padding-bottom:env(safe-area-inset-bottom,20px);overflow-y:auto}}.search-box{z-index:3002;width:100%;max-width:400px;margin-left:0;position:relative}@media (width<=768px){.search-box{max-width:calc(100vw - 65px)}}.search-form{background:#fff;border-radius:24px;align-items:center;height:48px;padding:0 .5rem;transition:box-shadow .2s;display:flex;box-shadow:0 2px 5px #00000026}.search-form:focus-within{box-shadow:0 4px 12px #00000026}.menu-btn-integrated{cursor:pointer;color:#5f6368;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;margin-right:4px;padding:8px;display:flex}.menu-btn-integrated:hover{background:#0000000d}.search-icon{color:#5f6368;justify-content:center;align-items:center;margin-right:.5rem;padding:8px;display:flex}.search-input{min-width:0;height:100%;color:var(--body-text-color);-webkit-appearance:none;background:0 0;border:none;outline:none;flex:1;width:100%;padding:0 4px;font-size:1rem}.search-input::-webkit-search-cancel-button{-webkit-appearance:none}.search-submit-btn{cursor:pointer;color:#5f6368;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;margin-left:4px;padding:8px;display:flex}.search-submit-btn:hover{color:var(--body-text-color);background:#0000000d}.search-clear-btn{cursor:pointer;color:#5f6368;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;margin-left:2px;padding:8px;display:flex}.search-clear-btn:hover{color:var(--body-text-color);background:#0000000d}.search-results-popover{z-index:3002;background:#fff;border-radius:8px;max-height:400px;margin-top:8px;position:absolute;top:100%;left:0;right:0;overflow:hidden auto;box-shadow:0 4px 12px #00000026}.search-results-list{margin:0;padding:0;list-style:none}.search-result-item{text-align:left;cursor:pointer;background:#fff;border:none;border-bottom:1px solid #f0f0f0;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;transition:background .1s;display:flex}.search-result-item:last-child{border-bottom:none}.search-result-item:hover,.search-result-item:focus{background:var(--hover-bg);outline:none}.result-icon{color:#666;background:#f0f0f0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.result-info{flex-direction:column;display:flex;overflow:hidden}.result-title{color:var(--body-text-color);white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:500;overflow:hidden}.result-desc{color:#777;white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:.8rem;overflow:hidden}.save-button-wrapper{position:relative}.place-lists-manager{z-index:10;background:#fff;border-radius:8px;width:220px;margin-top:.5rem;padding:.5rem 0;position:absolute;top:100%;left:0;box-shadow:0 4px 12px #00000026}.place-lists-manager .list-item{align-items:center;padding:.5rem 1rem;display:flex}.place-lists-manager .list-item:hover{background:var(--hover-bg)}.place-lists-manager label{cursor:pointer;width:100%;color:var(--body-text-color);align-items:center;gap:.75rem;margin:0;font-size:.95rem;display:flex}.place-lists-manager input[type=checkbox]{accent-color:var(--link-color);cursor:pointer;width:16px;height:16px}.list-color-dot{background-color:var(--default-list-color);border:1px solid #0000001a;border-radius:50%;flex-shrink:0;width:12px;height:12px}.place-lists-manager .divider{background:var(--divider-color);height:1px;margin:.5rem 0}.category-chips-scroll{-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;width:100%;margin-top:0;padding:4px 0;overflow-x:auto}.category-chips-scroll::-webkit-scrollbar{display:none}.category-chips-container{gap:8px;width:max-content;padding:0 4px;display:flex}.category-chip{color:var(--body-text-color);cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #ddd;border-radius:16px;align-items:center;gap:6px;padding:6px 12px;font-size:.9rem;transition:background-color .2s;display:flex;box-shadow:0 1px 3px #0000001a}.category-chip:hover{background:var(--hover-bg)}.category-chip:active{background:var(--divider-color)}.category-chip:disabled{opacity:.75;cursor:not-allowed;pointer-events:none}.toast-notification{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;z-index:9999;text-align:center;pointer-events:none;background-color:#333333d9;border-radius:999px;max-width:90%;padding:.75rem 1.5rem;font-size:.9rem;font-weight:500;animation:.3s ease-out forwards fade-in-up;position:fixed;bottom:2rem;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #00000026}@keyframes fade-in-up{0%{opacity:0;transform:translate(-50%,1rem)}to{opacity:1;transform:translate(-50%)}}.nostr-connect-modal h2{margin-top:0}.nostr-connect-options{flex-direction:column;gap:1rem;margin-top:1.5rem;display:flex}.mobile-connect-actions{flex-direction:column;gap:.5rem;margin-top:1rem;display:flex}.nostr-connect-status{text-align:center;margin-top:1.5rem}.qr-code-container{justify-content:center;margin-top:1rem;display:flex}.qr-code-container canvas{background:#fff;border-radius:8px}.modal-overlay{z-index:9999;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:#fff;border-radius:8px;width:450px;max-width:90vw;padding:1.5rem;position:relative;box-shadow:0 4px 12px #00000026}.close-modal-btn{cursor:pointer;color:#898989;position:absolute;top:1rem;right:1rem}.close-modal-btn.disabled{color:#ccc;cursor:not-allowed}.place-photo-upload h2{margin-top:0;font-size:1.2rem}.place-photo-upload .form-group{margin-bottom:1.5rem}.photo-tag-suggestions{margin-bottom:1.25rem}.photo-tag-suggestions-title{color:#898989;margin:0 0 .75rem;font-size:.9rem;font-weight:400}.photo-tag-suggestions-list{flex-wrap:wrap;gap:.5rem;display:flex}.photo-tag-chip{color:var(--body-text-color);cursor:pointer;background:#f8f9fa;border:none;border-radius:16px;padding:6px 12px;font-size:.9rem;transition:background-color .1s}.photo-tag-chip:hover{background:var(--divider-color)}.photo-tag-chip.is-selected{background:#ffcc334d}.alert{border-radius:.25rem;margin-bottom:1rem;padding:.5rem}.alert-error{color:#c00;background:#fee}.preview-group{margin-bottom:1rem}.preview-group p{margin-bottom:.25rem;font-weight:700}.preview-group img{border-radius:.25rem;max-width:100%}.btn-link{color:var(--link-color);cursor:pointer;font:inherit;background:0 0;border:none;padding:0;text-decoration:none}.btn-link:hover{text-decoration:underline}.photo-gallery-overlay{z-index:9999;background:#000000e6;flex-direction:column;display:flex;position:fixed;inset:0}.photo-gallery-overlay .photo-gallery-content{flex-direction:column;width:100%;height:100%;display:flex;position:relative}.photo-gallery-overlay .close-btn{z-index:10;color:#fff;background:0 0;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;transition:background-color .2s;display:flex;position:absolute;top:.5rem;right:1rem}@media (width<=768px){.photo-gallery-overlay .close-btn{right:.5rem}}.photo-gallery-overlay .main-photo-container{flex:1;justify-content:center;align-items:center;padding:2rem;display:flex;overflow:hidden}@media (width<=768px){.photo-gallery-overlay .main-photo-container{padding:2rem 0}}.photo-gallery-overlay .main-photo-container img{object-fit:contain;max-width:100%;max-height:100%}.photo-carousel.gallery-main{flex-direction:column;width:100%;height:100%;display:flex}.photo-carousel.gallery-main .photo-carousel-track{background:0 0;height:100%}.photo-carousel.gallery-main .carousel-slide{aspect-ratio:auto;cursor:default;flex:0 0 100%;height:100%}.photo-carousel.gallery-main .carousel-nav-btn{width:48px;height:48px}.photo-carousel.gallery-main .place-header-photo-blur,.photo-carousel.gallery-main .place-header-photo.landscape,.photo-carousel.gallery-main .place-header-photo.portrait{object-fit:contain}@media (width<=768px){.photo-carousel.gallery-main .carousel-nav-btn{display:none}}.photo-carousel.gallery-thumbnails{width:100%;height:100px;padding-bottom:env(safe-area-inset-bottom,0);background:#00000080}.photo-carousel.gallery-thumbnails .photo-carousel-track{scroll-snap-type:none;background:0 0;gap:4px;height:100%;padding:0}.photo-carousel.gallery-thumbnails .carousel-slide{scroll-snap-align:none;opacity:.6;flex:none;width:auto;height:100%;transition:opacity .2s}.photo-carousel.gallery-thumbnails .carousel-slide.landscape{aspect-ratio:var(--slide-ratio,16 / 9)}.photo-carousel.gallery-thumbnails .carousel-slide.portrait{aspect-ratio:1}.photo-carousel.gallery-thumbnails .carousel-slide:hover,.photo-carousel.gallery-thumbnails .carousel-slide.active{opacity:1}.photo-carousel.gallery-thumbnails .place-header-photo.landscape,.photo-carousel.gallery-thumbnails .place-header-photo.portrait{object-fit:cover;height:100%}.photo-carousel.gallery-thumbnails .carousel-nav-btn{display:none}.dropdown-menu-container{display:inline-block;position:relative}.dropdown-trigger-btn{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.dropdown-popover{z-index:3001;background:#fff;border-radius:8px;flex-direction:column;gap:.25rem;min-width:150px;margin-top:5px;padding:.5rem 0;display:flex;position:absolute;top:100%;left:0;box-shadow:0 4px 12px #00000026}.dropdown-item{text-align:left;cursor:pointer;color:var(--body-text-color);white-space:nowrap;background:0 0;border:none;padding:.5rem 1rem;font-size:.95rem}.dropdown-item:hover{background:#f0f0f0}.photo-gallery-overlay .photo-gallery-header{z-index:10;flex-direction:column;align-items:flex-start;gap:.25rem;display:flex;position:absolute;top:.5rem;left:1rem}.photo-gallery-overlay .photo-gallery-header .actions-btn-container{z-index:2;flex-shrink:0;justify-content:flex-start;align-items:center;height:48px;display:flex;position:relative}.photo-gallery-overlay .photo-gallery-uploader-info{color:#ffffffe6;pointer-events:none;text-shadow:0 1px 2px #0009;flex-direction:column;gap:.1rem;max-width:calc(100vw - 4rem);display:flex;overflow:hidden}.photo-gallery-overlay .photo-gallery-uploader-name{white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:600;overflow:hidden}.photo-gallery-overlay .photo-gallery-uploader-date{color:#ffffffb3;white-space:nowrap;font-size:.8rem}@media (width<=768px){.photo-gallery-overlay .photo-gallery-header{flex-direction:row;align-items:flex-start;gap:.5rem;left:.5rem}.photo-gallery-overlay .photo-gallery-uploader-info{flex-direction:row;align-self:center;align-items:center;gap:.35rem}}@keyframes sidebar-slide-in-left{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes sidebar-slide-up-bottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}.lists-index-item{text-align:left;border:none;border-bottom:1px solid var(--divider-color);background:var(--primary-background-color);width:100%;color:var(--body-text-color);cursor:pointer;justify-content:space-between;align-items:center;padding:1rem;font-family:inherit;transition:background .2s;display:flex}.lists-index-item:hover{background:var(--hover-bg)}.lists-index-item-left{align-items:center;gap:12px;min-width:0;display:flex}.lists-index-name{text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;font-weight:400;overflow:hidden}.lists-index-count{color:#666;white-space:nowrap;flex-shrink:0;margin:0;font-size:.85rem}.sidebar-header.has-back-btn{justify-content:center;position:relative}.sidebar-header.has-back-btn .back-btn{z-index:10;position:absolute;left:1rem}.sidebar-header.has-back-btn .close-btn{z-index:10;position:absolute;right:1rem}.sidebar-header-text-centered{text-align:center;justify-content:center;align-items:center;max-width:60%;margin:0;font-size:1.2rem;font-weight:700;display:inline-flex;position:relative}.sidebar-header-icon-wrapper{align-items:center;margin-right:.5rem;display:flex;position:absolute;right:100%}.sidebar-loading{justify-content:center;align-items:center;padding:4rem 1rem;display:flex}.contributions-list{margin:-1rem -1rem 0;padding:0;list-style:none}.contribution-item{text-align:left;border:none;border-bottom:1px solid var(--divider-color);background:var(--primary-background-color);width:100%;color:var(--body-text-color);cursor:pointer;align-items:flex-start;gap:12px;padding:.75rem 1rem;font-family:inherit;transition:background .2s;display:flex}.contribution-item:hover{background:var(--hover-bg)}.contribution-thumb{background:#f0f0f0;border-radius:6px;flex-shrink:0;width:56px;height:56px;position:relative;overflow:hidden}.contribution-thumb img{object-fit:cover;width:100%;height:100%;display:block}.contribution-thumb-badge{color:#fff;background:#000000a6;border-radius:4px;padding:1px 4px;font-size:.7rem;font-weight:700;position:absolute;bottom:2px;right:2px}.contribution-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.contribution-place{text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:700;overflow:hidden}.contribution-name-loading{color:#999;font-style:italic;font-weight:400}.contribution-meta{color:#666;font-size:.85rem}.contribution-tags{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.contribution-tag{color:#555;background:#f0f0f0;border-radius:10px;padding:2px 6px;font-size:.72rem}.modal-content h2,.modal-content h3{margin-top:0}.zap-photo-modal{text-align:left}.zap-photo-modal h2{border-bottom:1px solid var(--divider-color);margin-bottom:1rem;padding-bottom:.75rem}.zap-photo-modal section.status{border-bottom:1px solid var(--divider-color);margin-bottom:1.5rem;padding-bottom:.75rem}.zap-photo-modal section.slider{text-align:center;margin-bottom:1.5rem}.zap-photo-modal .amount-display{justify-content:center;align-items:baseline;gap:.4rem;margin-bottom:.75rem;display:flex}.zap-photo-modal .amount-value{color:var(--default-list-color);font-size:2rem;font-weight:700}.zap-photo-modal .amount-unit{color:var(--body-text-color);opacity:.7;font-size:.9rem}.zap-photo-modal .zap-slider{width:100%;accent-color:var(--default-list-color);cursor:pointer}.zap-photo-modal .slider-ticks{color:var(--body-text-color);opacity:.5;justify-content:space-between;padding:0 .25rem;font-size:.85rem;display:flex}.zap-photo-modal .form-group{margin-bottom:1.5rem}.zap-photo-modal .lightning-address{align-items:center;gap:.5rem;display:flex}.zap-photo-modal .lightning-badge{background:var(--default-list-color);color:#fff;text-transform:uppercase;letter-spacing:.5px;border-radius:10px;padding:2px 8px;font-size:.7rem;font-weight:600}.zap-photo-modal .lightning-address-text{color:var(--body-text-color);text-overflow:ellipsis;white-space:nowrap;font-family:monospace;font-size:.9rem;overflow:hidden}.zap-photo-modal .zap-pay-prompt{text-align:center}.zap-photo-modal .qr-code-container{margin-bottom:1.5rem}.zap-photo-modal .btn-full+.btn-full{margin-top:.75rem}.zap-photo-modal .alert-error,.zap-photo-modal .meta-info{font-size:.95rem}.zap-photo-modal .centered{text-align:center;flex-direction:column;align-items:center;gap:1rem;padding-top:1.5rem;display:flex}.zap-photo-modal .success{text-align:center;flex-direction:column;align-items:center;gap:.5rem;display:flex}.zap-photo-modal .success-icon{font-size:3rem}.zap-photo-modal .success h4{margin:0;font-size:1.2rem}.zap-photo-modal .success p{color:var(--body-text-color);margin:0 0 1.5rem;font-size:.9rem}:root,:host{--ol-background-color:white;--ol-accent-background-color:#f5f5f5;--ol-subtle-background-color:#80808040;--ol-partial-background-color:#ffffffbf;--ol-foreground-color:#333;--ol-subtle-foreground-color:#666;--ol-brand-color:#0af}.ol-box{box-sizing:border-box;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color);border-radius:2px}.ol-mouse-position{position:absolute;top:8px;right:8px}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;padding:2px;position:absolute;bottom:8px;left:8px}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color);text-align:center;will-change:contents, width;border-top:none;margin:1px;font-size:10px;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{background-color:var(--ol-foreground-color);float:right;z-index:10;width:1px;height:15px}.ol-scale-step-text{z-index:11;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color), 0 1.5px var(--ol-partial-background-color), 1.5px 0 var(--ol-partial-background-color), 0 -1.5px var(--ol-partial-background-color);font-size:10px;position:absolute;bottom:-5px}.ol-scale-text{text-align:center;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color), 0 1.5px var(--ol-partial-background-color), 1.5px 0 var(--ol-partial-background-color), 0 -1.5px var(--ol-partial-background-color);font-size:12px;position:absolute;bottom:25px}.ol-scale-singlebar{z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color);height:10px;position:relative}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-viewport,.ol-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;user-select:text}.ol-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.ol-grab{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.ol-control{background-color:var(--ol-subtle-background-color);border-radius:4px;position:absolute}.ol-zoom{top:.5em;left:.5em}.ol-rotate{transition:opacity .25s linear,visibility linear;top:.5em;right:.5em}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{top:.5em;right:.5em}.ol-control button{color:var(--ol-subtle-foreground-color);font-weight:700;font-size:inherit;text-align:center;background-color:var(--ol-background-color);border:none;border-radius:2px;width:1.375em;height:1.375em;margin:1px;padding:0;line-height:.4em;text-decoration:none;display:block}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{will-change:transform;font-weight:400;display:block}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:hover,.ol-control button:focus{outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color);text-decoration:none}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;flex-flow:row-reverse;align-items:center;max-width:calc(100% - 1.3em);display:flex;bottom:.5em;right:.5em}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);margin:0;padding:1px .5em;font-size:12px}.ol-attribution li{list-style:none;display:inline}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{border-radius:4px 0 0;bottom:0;right:0}.ol-attribution.ol-uncollapsible img{max-height:1.6em;margin-top:-.2em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{height:200px;top:4.5em;left:.5em}.ol-zoomslider button{height:10px;position:relative}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{bottom:.5em;left:.5em}.ol-overviewmap.ol-uncollapsible{border-radius:0 4px 0 0;bottom:0;left:0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);width:150px;height:150px}.ol-overviewmap:not(.ol-collapsed) button{position:absolute;bottom:0;left:0}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-overviewmap .ol-viewport:hover{cursor:pointer} diff --git a/release/assets/main-Cx0KJENk.js b/release/assets/main-Cx0KJENk.js new file mode 100644 index 0000000..64d22dc --- /dev/null +++ b/release/assets/main-Cx0KJENk.js @@ -0,0 +1 @@ +var t=Object.create,e=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,o=(t,e)=>()=>(e||(t((e={exports:{}}).exports,e),t=null),e.exports),a=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:"Module"}),r},l=(t,i,o,a)=>{if(i&&"object"==typeof i||"function"==typeof i)for(var l,c=r(i),u=0,h=c.length;ui[t]).bind(null,l),enumerable:!(a=n(i,l))||a.enumerable});return t},c=(n,r,o)=>(o=null!=n?t(i(n)):{},l(!r&&n&&n.__esModule&&s.call(n,"default")?o:e(o,"default",{value:n,enumerable:!0}),n)),u=(t=>"undefined"!=typeof require?require:"undefined"!=typeof Proxy?new Proxy(t,{get:(t,e)=>("undefined"!=typeof require?require:t)[e]}):t)(function(t){if("undefined"!=typeof require)return require.apply(this,arguments);throw Error('Calling `require` for "'+t+"\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.")});!function(){const t=document.createElement("link").relList;if(!(t&&t.supports&&t.supports("modulepreload"))){for(const t of document.querySelectorAll('link[rel="modulepreload"]'))e(t);new MutationObserver(t=>{for(const n of t)if("childList"===n.type)for(const t of n.addedNodes)"LINK"===t.tagName&&"modulepreload"===t.rel&&e(t)}).observe(document,{childList:!0,subtree:!0})}function e(t){if(t.ep)return;t.ep=!0;const e=function(t){const e={};return t.integrity&&(e.integrity=t.integrity),t.referrerPolicy&&(e.referrerPolicy=t.referrerPolicy),"use-credentials"===t.crossOrigin?e.credentials="include":"anonymous"===t.crossOrigin?e.credentials="omit":e.credentials="same-origin",e}(t);fetch(t.href,e)}}();var h,d=Object.prototype,p=Symbol("undefined"),f=function(t){return t[t.ADD=0]="ADD",t[t.ONCE=1]="ONCE",t[t.REMOVE=2]="REMOVE",t}(f||{}),g=1,m=class{_descriptors;_mixins;_isInit;_lazyChains;_values;_revisions;source;proto;_parent;_listeners;_listenersVersion=1;_inheritedEnd=-1;_flattenedVersion=0;constructor(t){this._parent=void 0,this._descriptors=void 0,this._mixins=void 0,this._lazyChains=void 0,this._values=void 0,this._revisions=void 0,this._isInit=!1,this.source=t,this.proto=void 0===t.constructor?void 0:t.constructor.prototype,this._listeners=void 0}get parent(){let t=this._parent;if(void 0===t){let e=y(this.source);this._parent=t=null===e||e===d?null:_(e)}return t}setInitializing(){this._isInit=!0}unsetInitializing(){this._isInit=!1}isInitializing(){return this._isInit}isPrototypeMeta(t){return this.proto===this.source&&this.source===t}_getOrCreateOwnMap(t){return this[t]||(this[t]=Object.create(null))}_getOrCreateOwnSet(t){return this[t]||(this[t]=new Set)}_findInheritedMap(t,e){let n=this;for(;null!==n;){let r=n[t];if(void 0!==r){let t=r.get(e);if(void 0!==t)return t}n=n.parent}}_hasInInheritedSet(t,e){let n=this;for(;null!==n;){let r=n[t];if(void 0!==r&&r.has(e))return!0;n=n.parent}return!1}valueFor(t){let e=this._values;return void 0!==e?e[t]:void 0}setValueFor(t,e){this._getOrCreateOwnMap("_values")[t]=e}revisionFor(t){let e=this._revisions;return void 0!==e?e[t]:void 0}setRevisionFor(t,e){this._getOrCreateOwnMap("_revisions")[t]=e}writableLazyChainsFor(t){let e=this._getOrCreateOwnMap("_lazyChains"),n=e[t];return void 0===n&&(n=e[t]=[]),n}readableLazyChainsFor(t){let e=this._lazyChains;if(void 0!==e)return e[t]}addMixin(t){this._getOrCreateOwnSet("_mixins").add(t)}hasMixin(t){return this._hasInInheritedSet("_mixins",t)}forEachMixins(t){let e,n=this;for(;null!==n;){let r=n._mixins;void 0!==r&&(e=void 0===e?new Set:e,r.forEach(n=>{e.has(n)||(e.add(n),t(n))})),n=n.parent}}writeDescriptors(t,e){(this._descriptors||(this._descriptors=new Map)).set(t,e)}peekDescriptors(t){let e=this._findInheritedMap("_descriptors",t);return e===p?void 0:e}removeDescriptors(t){this.writeDescriptors(t,p)}forEachDescriptors(t){let e,n=this;for(;null!==n;){let r=n._descriptors;void 0!==r&&(e=void 0===e?new Set:e,r.forEach((n,r)=>{e.has(r)||(e.add(r),n!==p&&t(r,n))})),n=n.parent}}addToListeners(t,e,n,r,i){this.pushListener(t,e,n,r?f.ONCE:f.ADD,i)}removeFromListeners(t,e,n){this.pushListener(t,e,n,f.REMOVE)}pushListener(t,e,n,r,i=!1){let s=this.writableListeners(),o=x(s,t,e,n);if(-1!==o&&o0&&(t.splice(0,this._inheritedEnd),this._inheritedEnd=0);for(let n of e)-1===x(t,n.event,n.target,n.method)&&(t.unshift(n),this._inheritedEnd++)}}this._flattenedVersion=g}return this._listeners}matchingListeners(t){let e,n=this.flattenedListeners();if(void 0!==n)for(let r of n)r.event!==t||r.kind!==f.ADD&&r.kind!==f.ONCE||(void 0===e&&(e=[]),e.push(r.target,r.method,r.kind===f.ONCE));return e}observerEvents(){let t,e=this.flattenedListeners();if(void 0!==e)for(let n of e)n.kind!==f.ADD&&n.kind!==f.ONCE||-1===n.event.indexOf(":change")||(void 0===t&&(t=[]),t.push(n));return t}},y=Object.getPrototypeOf,v=new WeakMap;function b(t,e){v.set(t,e)}function w(t){let e=v.get(t);if(void 0!==e)return e;let n=y(t);for(;null!==n;){if(e=v.get(n),void 0!==e)return e.proto!==n&&(e.proto=n),e;n=y(n)}return null}var _=function(t){let e=w(t);if(null!==e&&e.source===t)return e;let n=new m(t);return b(t,n),n};function x(t,e,n,r){for(let i=t.length-1;i>=0;i--){let s=t[i];if(s.event===e&&s.target===n&&s.method===r)return i}return-1}function C(t){let[e,n,r]=t;return 3===t.length&&("function"==typeof e||"object"==typeof e&&null!==e)&&"string"==typeof n&&("object"==typeof r&&null!==r||void 0===r)}function S(t){let e=function(){return t};return O(e),e}var k=class{enumerable=!0;configurable=!0;_dependentKeys=void 0;_meta=void 0;setup(t,e,n,r){r.writeDescriptors(e,this)}teardown(t,e,n){n.removeDescriptors(e)}};function E(t,e){return function(){return e.get(this,t)}}function R(t,e){let n=function(n){return e.set(this,t,n)};return T.add(n),n}var T=new WeakSet;function L(t,e){let n=function(e,n,r,i){let s=3===arguments.length?_(e):i;return t.setup(e,n,r,s),{enumerable:t.enumerable,configurable:t.configurable,get:E(n,t),set:R(n,t)}};return O(n,t),Object.setPrototypeOf(n,e.prototype),n}var I=new WeakMap;function P(t,e,n){let r=void 0===n?w(t):n;if(null!==r)return r.peekDescriptors(e)}function M(t){return I.get(t)}function A(t){return"function"==typeof t&&I.has(t)}function O(t,e=!0){I.set(t,e)}var N={ENABLE_OPTIONAL_FEATURES:!1,EXTEND_PROTOTYPES:{Array:!1},LOG_STACKTRACE_ON_DEPRECATION:!0,LOG_VERSION:!0,LOG_INSPECTOR_HINT:!0,RAISE_ON_DEPRECATION:!1,STRUCTURED_PROFILE:!1,_DEBUG_RENDER_TREE:!1,_ALL_DEPRECATIONS_ENABLED:!1,_OVERRIDE_DEPRECATION_VERSION:null,_DEFAULT_ASYNC_OBSERVERS:!1,_RERENDER_LOOP_LIMIT:1e3,FEATURES:{}},F=globalThis.EmberENV;if("object"==typeof F&&null!==F){for(let e in F){if(!Object.prototype.hasOwnProperty.call(F,e)||"EXTEND_PROTOTYPES"===e||"EMBER_LOAD_HOOKS"===e)continue;let t=N[e];N[e]=!0===t?!1!==F[e]:!1===t?!0===F[e]:F[e]}let{FEATURES:t}=F;if("object"==typeof t&&null!==t)for(let e in t)Object.prototype.hasOwnProperty.call(t,e)&&(N.FEATURES[e]=!0===t[e])}function z(){return N}var D,j,U,B,$,q,V,W,H=()=>{},G=new WeakMap,Z=Symbol("BrandedArray");function K(t){return Array.isArray(t)&&Z in t}function Y(t,e){if(null===t)return e;if(K(t))return t.push(e),t;{const n=[t,e];return n[Z]=!0,n}}function X(t,e){K(t)?t.forEach(e):null!==t&&e(t)}function J(t,e){if(K(t)&&t.length>1){let n=t.indexOf(e),r=t.length-1;return n!==r&&(t[n]=t[r]),t.length=r,t}return null}function Q(t){let e=G.get(t);return void 0===e&&(e={parents:null,children:null,eagerDestructors:null,destructors:null,state:0},G.set(t,e)),e}function tt(t,e){let n=Q(t),r=Q(e);return n.children=Y(n.children,e),r.parents=Y(r.parents,t),e}function et(t,e,n=!1){let r=Q(t),i=n?"eagerDestructors":"destructors";return r[i]=Y(r[i],e),e}function nt(t){let e=Q(t);if(e.state>=1)return;let{parents:n,children:r,eagerDestructors:i,destructors:s}=e;e.state=1,X(r,nt),X(i,e=>{e(t)}),X(s,e=>{D(t,e)}),j(()=>{X(n,e=>{!function(t,e){let n=Q(e);2!==n.state&&(n.children=J(n.children,t))}(t,e)}),e.state=2})}function rt(t){let e=G.get(t);return void 0!==e&&null!==e.children}function it(t){let e=G.get(t);return void 0!==e&&e.state>=1}function st(t){let e=G.get(t);return void 0!==e&&e.state>=2}var ot=1;function at(){ot++}var lt=Symbol("TAG_COMPUTE");function ct(t){return t[lt]()}function ut(t,e){return e>=t[lt]()}var ht=Symbol("TAG_TYPE"),dt=class t{static combine(e){switch(e.length){case 0:return yt;case 1:return e[0];default:{let n=new t(2);return n.subtag=e,n}}}revision=1;lastChecked=1;lastValue=1;isUpdating=!1;subtag=null;subtagBufferCache=null;constructor(t){this[ht]=t}[lt](){let{lastChecked:t}=this;if(this.isUpdating)this.lastChecked=++ot;else if(t!==ot){this.isUpdating=!0,this.lastChecked=ot;try{let{subtag:t,revision:e}=this;if(null!==t)if(Array.isArray(t))for(const n of t){let t=n[lt]();e=Math.max(t,e)}else{let n=t[lt]();n===this.subtagBufferCache?e=Math.max(e,this.lastValue):(this.subtagBufferCache=null,e=Math.max(e,n))}this.lastValue=e}finally{this.isUpdating=!1}}return this.lastValue}static updateTag(t,e){let n=t,r=e;r===yt?n.subtag=null:(n.subtagBufferCache=r[lt](),n.subtag=r)}static dirtyTag(t,e){t.revision=++ot,H()}},pt=dt.dirtyTag,ft=dt.updateTag;function gt(){return new dt(0)}function mt(){return new dt(1)}var yt=new dt(3);function vt(t){return t===yt}var bt=class{[ht]=100;[lt](){return NaN}},wt=new bt,_t=class{[ht]=101;[lt](){return ot}},xt=new _t,Ct=dt.combine,St=mt(),kt=mt(),Et=mt();ct(St),pt(St),ct(St),ft(St,Ct([kt,Et])),ct(St),pt(kt),ct(St),pt(Et),ct(St),ft(St,Et),ct(St),pt(Et),ct(St);var Rt=class{tags=new Set;last=null;add(t){t!==yt&&(this.tags.add(t),this.last=t)}combine(){let{tags:t}=this;return 0===t.size?yt:1===t.size?this.last:Ct(Array.from(this.tags))}},Tt=null,Lt=[];function It(){Lt.push(Tt),Tt=new Rt}function Pt(){let t=Tt;return Tt=Lt.pop()||null,function(t){if(null==t)throw new Error("Expected value to be present");return t}(t).combine()}function Mt(){Lt.push(Tt),Tt=null}function At(){Tt=Lt.pop()||null}function Ot(){for(;Lt.length>0;)Lt.pop();Tt=null}function Nt(){return null!==Tt}function Ft(t){null!==Tt&&Tt.add(t)}var zt=Symbol("FN"),Dt=Symbol("LAST_VALUE"),jt=Symbol("TAG"),Ut=Symbol("SNAPSHOT");function Bt(t){return{[zt]:t,[Dt]:void 0,[jt]:void 0,[Ut]:-1}}function $t(t){let e=t[zt],n=t[jt],r=t[Ut];if(void 0!==n&&ut(n,r))Ft(n);else{It();try{t[Dt]=e()}finally{n=Pt(),t[jt]=n,t[Ut]=ct(n),Ft(n)}}return t[Dt]}function qt(t){return vt(t[jt])}function Vt(t){let e;It();try{t()}finally{e=Pt()}return e}function Wt(t){Mt();try{return t()}finally{At()}}var Ht=new WeakMap;function Gt(t,e,n){let r=void 0===n?Ht.get(t):n;if(void 0===r)return;let i=r.get(e);void 0!==i&&pt(i,!0)}function Zt(t){let e=Ht.get(t);return void 0===e&&(e=new Map,Ht.set(t,e)),e}function Kt(t,e,n){let r=void 0===n?Zt(t):n,i=r.get(e);return void 0===i&&(i=mt(),r.set(e,i)),i}function Yt(t){return null!==t&&("object"==typeof t||"function"==typeof t)}function Xt(t){return t}function Jt(t){return t}function Qt(t){return!!t&&t.length>0}function te(t){return 0===t.length?void 0:t[t.length-1]}function ee(t){return 0===t.length?void 0:t[0]}function ne(){return Object.create(null)}function re(t){return null!=t}function ie(t){return"function"==typeof t||"object"==typeof t&&null!==t}var se=class{stack;current=null;constructor(t=[]){this.stack=t}get size(){return this.stack.length}push(t){this.current=t,this.stack.push(t)}pop(){let t=this.stack.pop();return this.current=te(this.stack)??null,void 0===t?null:t}nth(t){let e=this.stack.length;return e_e(t),null,t.debugLabel):t}function ye(t){return 3===t[oe]}function ve(t){const e=ge(()=>_e(t),e=>xe(t,e));return e.debugLabel=t.debugLabel,e[oe]=3,e}function be(t){return t.tag===yt}function we(t){return null!==t.update}function _e(t){const e=t;let{tag:n}=e;if(n===yt)return e.lastValue;const{lastRevision:r}=e;let i;if(null!==n&&ut(n,r))i=e.lastValue;else{const{compute:t}=e,r=Vt(()=>{i=e.lastValue=t()});n=e.tag=r,e.lastRevision=ct(r)}return Ft(n),i}function xe(t,e){(0,t.update)(e)}function Ce(t,e){const n=t,r=n[oe];let i,s=n.children;if(null===s)s=n.children=new Map;else{const t=s.get(e);if(t)return t}if(2===r){const t=_e(n);i=re(t)?fe(t[e]):ce}else i=ge(()=>{const t=_e(n);if(re(t))return $(t,e)},t=>{const r=_e(n);if(re(r))return q(r,e,t)});return s.set(e,i),i}function Se(t,e){let n=t;for(const r of e)n=Ce(n,r);return n}var ke=new WeakMap;function Ee(t){return ke.get(t)}function Re(t,e){ke.set(t,e)}function Te(t){if("symbol"==typeof t)return null;const e=Number(t);return isNaN(e)?null:e%1==0?e:null}var Le=class{constructor(t){this.named=t}get(t,e){const n=this.named[e];if(void 0!==n)return _e(n)}has(t,e){return e in this.named}ownKeys(){return Object.keys(this.named)}isExtensible(){return!1}getOwnPropertyDescriptor(t,e){return{enumerable:!0,configurable:!0}}},Ie=class{constructor(t){this.positional=t}get(t,e){let{positional:n}=this;if("length"===e)return n.length;const r=Te(e);return null!==r&&r>=0&&r=0&&n{const{named:e,positional:n}=t,r=new Le(e),i=new Ie(n),s=Object.create(null),o=new Proxy(s,r),a=new Proxy([],i);return Re(o,(t,n)=>function(t,e){return Vt(()=>{e in t&&_e(t[e])})}(e,n)),Re(a,(t,e)=>function(t,e){return Vt(()=>{"[]"===e&&t.forEach(_e);const n=Te(e);null!==n&&n>=0&&n-1?function(t){return $e.test(qe.call(t))}:function(){return!0},We=new WeakMap,He=Object.freeze(function(){});function Ge(t){let e=We.get(t);return void 0===e&&(e=Ve(t),We.set(t,e)),e}We.set(He,!1);var Ze=class{listeners=void 0;observers=void 0},Ke=new WeakMap;function Ye(t){let e=Ke.get(t);return void 0===e&&(e=new Ze,Ke.set(t,e)),e}function Xe(t){return Ke.get(t)}function Je(t,e){Ye(t).observers=e}function Qe(t,e){Ye(t).listeners=e}var tn=new WeakSet;function en(t,e){return Ge(t)?!tn.has(e)&&Ge(e)?nn(t,nn(e,He)):nn(t,e):t}function nn(t,e){function n(){let n=this._super;this._super=e;let r=t.apply(this,arguments);return this._super=n,r}tn.add(n);let r=Ke.get(t);return void 0!==r&&Ke.set(n,r),n}function rn(t,e,n,r,i,s=!0){r||"function"!=typeof n||(r=n,n=null),_(t).addToListeners(e,n,r,!0===i,s)}function sn(t,e,n,r){let i,s;"object"==typeof n?(i=n,s=r):(i=null,s=n),_(t).removeFromListeners(e,i,s)}function on(t,e,n,r,i){if(void 0===r){let n=void 0===i?w(t):i;r=null!==n?n.matchingListeners(e):void 0}if(void 0===r||0===r.length)return!1;for(let s=r.length-3;s>=0;s-=3){let i=r[s],o=r[s+1],a=r[s+2];if(!o)continue;a&&sn(t,e,i,o),i||(i=t);let l=typeof o;"string"!==l&&"symbol"!==l||(o=i[o]),o.apply(i,n)}return!0}function an(t,e){let n=w(t);if(null===n)return!1;let r=n.matchingListeners(e);return void 0!==r&&r.length>0}function ln(...t){let e=t.pop();return Qe(e,t),e}function cn(t){return t+":change"}var un=!N._DEFAULT_ASYNC_OBSERVERS,hn=new Map,dn=new Map;function pn(t,e,n,r,i=un){let s=cn(e);rn(t,s,n,r,!1,i);let o=w(t);null!==o&&(o.isPrototypeMeta(t)||o.isInitializing())||gn(t,s,i)}function fn(t,e,n,r,i=un){let s=cn(e),o=w(t);null!==o&&(o.isPrototypeMeta(t)||o.isInitializing())||vn(t,s,i),sn(t,s,n,r)}function gn(t,e,n=!1){let r=function(t,e){let n=!0===e?hn:dn;return n.has(t)||(n.set(t,new Map),et(t,()=>function(t){hn.size>0&&hn.delete(t),dn.size>0&&dn.delete(t)}(t),!0)),n.get(t)}(t,n);if(r.has(e))r.get(e).count++;else{let n=e.substring(0,e.lastIndexOf(":")),i=Ue(t,n,Zt(t),w(t));r.set(e,{count:1,path:n,tag:i,lastRevision:ct(i),suspended:!1})}}var mn=!1,yn=[];function vn(t,e,n=!1){if(!0===mn)return void yn.push([t,e,n]);let r=!0===n?hn:dn,i=r.get(t);if(void 0!==i){let n=i.get(e);n.count--,0===n.count&&(i.delete(e),0===i.size&&r.delete(t))}}function bn(t){dn.has(t)&&dn.get(t).forEach(e=>{e.tag=Ue(t,e.path,Zt(t),w(t)),e.lastRevision=ct(e.tag)}),hn.has(t)&&hn.get(t).forEach(e=>{e.tag=Ue(t,e.path,Zt(t),w(t)),e.lastRevision=ct(e.tag)})}var wn=0;function _n(t){let e=ct(xt);wn!==e&&(wn=e,dn.forEach((e,n)=>{let r=w(n);e.forEach((e,i)=>{if(!ut(e.tag,e.lastRevision)){let s=()=>{try{on(n,i,[n,e.path],void 0,r)}finally{e.tag=Ue(n,e.path,Zt(n),w(n)),e.lastRevision=ct(e.tag)}};t?t("actions",s):s()}})}))}function xn(){hn.forEach((t,e)=>{let n=w(e);t.forEach((t,r)=>{if(!t.suspended&&!ut(t.tag,t.lastRevision))try{t.suspended=!0,on(e,r,[e,t.path],void 0,n)}finally{t.tag=Ue(e,t.path,Zt(e),w(e)),t.lastRevision=ct(t.tag),t.suspended=!1}})})}function Cn(t,e,n){let r=hn.get(t);if(!r)return;let i=r.get(cn(e));i&&(i.suspended=n)}var Sn=()=>{},{toString:kn}=Object.prototype,{toString:En}=Function.prototype,{isArray:Rn}=Array,{keys:Tn}=Object,{stringify:Ln}=JSON,In=100,Pn=/^[\w$]+$/;function Mn(t){return"number"==typeof t&&2===arguments.length?this:An(t,0)}function An(t,e,n){let r=!1;switch(typeof t){case"undefined":return"undefined";case"object":if(null===t)return"null";if(Rn(t)){r=!0;break}if(t.toString===kn||void 0===t.toString)break;return t.toString();case"function":return t.toString===En?t.name?`[Function:${t.name}]`:"[Function]":t.toString();case"string":return Ln(t);default:return t.toString()}if(void 0===n)n=new WeakSet;else if(n.has(t))return"[Circular]";return n.add(t),r?function(t,e,n){if(e>4)return"[Array]";let r="[";for(let i=0;i=In){r+=`... ${t.length-In} more items`;break}r+=An(t[i],e,n)}return r+=" ]",r}(t,e+1,n):function(t,e,n){if(e>4)return"[Object]";let r="{",i=Tn(t);for(let s=0;s=In){r+=`... ${i.length-In} more keys`;break}let o=i[s];Sn(),r+=`${On(String(o))}: ${An(t[o],e,n)}`}return r+=" }",r}(t,e+1,n)}function On(t){return Pn.test(t)?t:Ln(t)}var Nn=/\.@each$/;function Fn(t,e){let n=t.indexOf("{");n<0?e(t.replace(Nn,".[]")):zn("",t,n,e)}function zn(t,e,n,r){let i,s,o=e.indexOf("}"),a=0,l=e.substring(n+1,o).split(","),c=e.substring(o+1);for(t+=e.substring(0,n),s=l.length;a0&&this._property(...t)}setup(t,e,n,r){if(super.setup(t,e,n,r),!1===this._hasConfig){let{get:t,set:e}=n;void 0!==t&&(this._getter=t),void 0!==e&&(this._setter=function(n,r){let i=e.call(this,r);return void 0!==t&&void 0===i?t.call(this):i})}}_property(...t){let e=[];function n(t){e.push(t)}for(let r of t)Fn(r,n);this._dependentKeys=e}get(t,e){let n,r=_(t),i=Zt(t),s=Kt(t,e,i),o=r.revisionFor(e);if(void 0!==o&&ut(s,o))n=r.valueFor(e);else{let{_getter:o,_dependentKeys:a}=this;Wt(()=>{n=o.call(t,e)}),void 0!==a&&ft(s,je(t,a,i,r)),r.setValueFor(e,n),r.setRevisionFor(e,ct(s)),De(r,e,n)}return Ft(s),Array.isArray(n)&&Ft(Kt(n,"[]")),n}set(t,e,n){this._readOnly&&this._throwReadOnlyError(t,e);let r,i=_(t);i.isInitializing()&&void 0!==this._dependentKeys&&this._dependentKeys.length>0&&"function"==typeof t[Bn]&&t.isComponent&&pn(t,e,()=>{t[Bn](e)},void 0,!0);try{Vn(),r=this._set(t,e,n,i),De(i,e,r);let s=Zt(t),o=Kt(t,e,s),{_dependentKeys:a}=this;void 0!==a&&ft(o,je(t,a,s,i)),i.setRevisionFor(e,ct(o))}finally{Wn()}return r}_throwReadOnlyError(t,e){throw new Error(`Cannot set read-only property "${e}" on object: ${Mn(t)}`)}_set(t,e,n,r){let i,s=void 0!==r.revisionFor(e),o=r.valueFor(e),{_setter:a}=this;Cn(t,e,!0);try{i=a.call(t,e,n,o)}finally{Cn(t,e,!1)}return s&&o===i||(r.setValueFor(e,i),qn(t,e,r,n)),i}teardown(t,e,n){void 0!==n.revisionFor(e)&&(n.setRevisionFor(e,void 0),n.setValueFor(e,void 0)),super.teardown(t,e,n)}},Kn=class extends Zn{get(t,e){let n,r=_(t),i=Zt(t),s=Kt(t,e,i),o=r.revisionFor(e);if(void 0!==o&&ut(s,o))n=r.valueFor(e);else{let{_getter:i}=this,o=Vt(()=>{n=i.call(t,e)});ft(s,o),r.setValueFor(e,n),r.setRevisionFor(e,ct(s)),De(r,e,n)}return Ft(s),Array.isArray(n)&&Ft(Kt(n,"[]",i)),n}},Yn=class extends Function{readOnly(){return M(this)._readOnly=!0,this}meta(t){let e=M(this);return 0===arguments.length?e._meta||{}:(e._meta=t,this)}get _getter(){return M(this)._getter}set enumerable(t){M(this).enumerable=t}};function Xn(...t){return C(t)?L(new Zn([]),Yn)(t[0],t[1],t[2]):L(new Zn(t),Yn)}function Jn(...t){return L(new Kn(t),Yn)}function Qn(t,e){return Boolean(P(t,e))}function tr(t,e){let n=w(t);return n?n.valueFor(e):void 0}var er=new WeakSet;function nr(t){return!!Yt(t)&&er.has(t)}function rr(t){Yt(t)&&er.add(t)}var ir=new WeakSet;function sr(t){return ir.has(t)}var or=class{size=0;misses=0;hits=0;constructor(t,e,n=new Map){this.limit=t,this.func=e,this.store=n}get(t){return this.store.has(t)?(this.hits++,this.store.get(t)):(this.misses++,this.set(t,this.func(t)))}set(t,e){return this.limit>this.size&&(this.size++,this.store.set(t,e)),e}purge(){this.store.clear(),this.size=0,this.hits=0,this.misses=0}},ar=new or(1e3,t=>t.indexOf("."));function lr(t){return"string"==typeof t&&-1!==ar.get(t)}var cr=Symbol("PROXY_CONTENT");function ur(t){return"object"==typeof t&&null!==t&&"function"==typeof t.unknownProperty}function hr(t,e){return lr(e)?pr(t,e):dr(t,e)}function dr(t,e){if(null==t)return;let n;return"object"==typeof t||"function"==typeof t?(n=t[e],void 0===n&&"object"==typeof t&&!(e in t)&&ur(t)&&(n=t.unknownProperty(e)),Nt()&&(Ft(Kt(t,e)),(Array.isArray(n)||sr(n))&&Ft(Kt(n,"[]")))):n=t[e],n}function pr(t,e,n){let r="string"==typeof e?e.split("."):e;for(let i of r){if(null==t||t.isDestroyed)return;if(n&&("__proto__"===i||"constructor"===i))return;t=dr(t,i)}return t}dr("foo","a"),dr("foo",1),dr({},"a"),dr({},1),dr({unknownProperty(){}},"a"),dr({unknownProperty(){}},1),hr({},"foo"),hr({},"foo.bar");var fr={};function gr(t,e){let n=t;do{let t=Object.getOwnPropertyDescriptor(n,e);if(void 0!==t)return t;n=Object.getPrototypeOf(n)}while(null!==n);return null}function mr(t,e,n,r){return t.isDestroyed?n:lr(e)?function(t,e,n,r){let i=e.split("."),s=i.pop(),o=pr(t,i,!0);if(null!=o)return mr(o,s,n);if(!r)throw new Error(`Property set failed: object in path "${i.join(".")}" could not be found.`)}(t,e,n,r):yr(t,e,n)}function yr(t,e,n){let r,i=gr(t,e);return null!==i&&T.has(i.set)?(t[e]=n,n):(r=t[e],void 0!==r||"object"!=typeof t||e in t||"function"!=typeof t.setUnknownProperty?(t[e]=n,r!==n&&qn(t,e)):t.setUnknownProperty(e,n),n)}function vr(t,e,n){return mr(t,e,n,!0)}function br(t){return L(new _r(t),wr)}rr(fr),Vt(()=>dr({},"a")),Vt(()=>dr({},1)),Vt(()=>dr({a:[]},"a")),Vt(()=>dr({a:fr},"a"));var wr=class extends Function{readOnly(){return M(this).readOnly(),this}oneWay(){return M(this).oneWay(),this}meta(t){let e=M(this);if(0===arguments.length)return e._meta||{};e._meta=t}},_r=class extends k{altKey;constructor(t){super(),this.altKey=t}setup(t,e,n,r){super.setup(t,e,n,r),ze.add(this)}get(t,e){let n,r=_(t),i=Zt(t),s=Kt(t,e,i);Wt(()=>{n=hr(t,this.altKey)});let o=r.revisionFor(e);return void 0!==o&&ut(s,o)||(ft(s,Ue(t,this.altKey,i,r)),r.setRevisionFor(e,ct(s)),De(r,e,n)),Ft(s),n}set(t,e,n){return mr(t,this.altKey,n)}readOnly(){this.set=xr}oneWay(){this.set=Cr}};function xr(t,e){throw new Error(`Cannot set read-only property '${e}' on object: ${Mn(t)}`)}function Cr(t,e,n){return Dn(t,e,null),mr(t,e,n)}function Sr(t,e,n,r){return void 0===e?(e=0,n=r=-1):(void 0===n&&(n=-1),void 0===r&&(r=-1)),on(t,"@array:before",[t,e,n,r]),t}function kr(t,e,n,r,i=!0){void 0===e?(e=0,n=r=-1):(void 0===n&&(n=-1),void 0===r&&(r=-1));let s=w(t);if(i&&((r<0||n<0||r-n!==0)&&qn(t,"length",s),qn(t,"[]",s)),on(t,"@array:change",[t,e,n,r]),null!==s){let i=-1===n?0:n,o=t.length-((-1===r?0:r)-i),a=e<0?o+e:e;void 0!==s.revisionFor("firstObject")&&0===a&&qn(t,"firstObject",s),void 0!==s.revisionFor("lastObject")&&o-1Or}),Or="7.2.0",Nr=class{_registry;_coreLibIndex;constructor(){this._registry=[],this._coreLibIndex=0}_getLibraryByName(t){let e=this._registry;for(let n of e)if(n.name===t)return n}register(t,e,n){let r=this._registry.length;this._getLibraryByName(t)||(n&&(r=this._coreLibIndex++),this._registry.splice(r,0,{name:t,version:e}))}registerCoreLibrary(t,e){this.register(t,e,!0)}deRegister(t){let e,n=this._getLibraryByName(t);n&&(e=this._registry.indexOf(n),this._registry.splice(e,1))}},Fr=new Nr;function zr(t,e){let n,r={},i=1;for(2===arguments.length&&Array.isArray(e)?(i=0,n=arguments[1]):n=Array.from(arguments);i{let n=Object.keys(e);for(let r of n)mr(t,r,e[r])}),e}Fr.registerCoreLibrary("Ember",Or);var jr=Symbol("OWNER");function Ur(t){return t[jr]}function Br(t){return Ur(t)}function $r(t,e){!function(t,e){t[jr]=e}(t,e)}function qr(t,...e){let n,r;C(e)?n=e:"string"==typeof e[0]&&(r=e[0]);let i=Xn({get:function(e){return(Br(this)||this.container).lookup(`${t}:${r||e}`)},set(t,e){Dn(this,t,null,e)}});return n?i(n[0],n[1],n[2]):i}function Vr(t,e){let n=new WeakMap,r="function"==typeof e;return{getter:function(i){let s;return Ft(Kt(i,t)),r&&!n.has(i)?(s=e.call(i),n.set(i,s)):s=n.get(i),s},setter:function(e,r){Gt(e,t),n.set(e,r)}}}function Wr(...t){if(!C(t)){let e=t[0],n=e?e.initializer:void 0,r=e?e.value:void 0,i=function(t,e){return Hr([t,e,{initializer:n||(()=>r)}])};return O(i),i}return Hr(t)}function Hr([t,e,n]){let{getter:r,setter:i}=Vr(e,n?n.initializer:void 0);function s(){let t=r(this);return(Array.isArray(t)||sr(t))&&Ft(Kt(t,"[]")),t}function o(t){i(this,t),Gt(this,Ae)}let a={enumerable:!0,configurable:!0,isTracked:!0,get:s,set:o};return T.add(o),_(t).writeDescriptors(e,new Gr(s,o)),a}var Gr=class{constructor(t,e){this._get=t,this._set=e,ze.add(this)}get(t){return this._get.call(t)}set(t,e,n){this._set.call(t,n)}},Zr=(...t)=>{const[e,n,r]=t,i=new WeakMap,s=r.get;r.get=function(){return i.has(this)||i.set(this,Bt(s.bind(this))),$t(i.get(this))}},Kr=a({ENV:()=>N,context:()=>Jr,getENV:()=>z,getLookup:()=>Qr,setLookup:()=>ti}),Yr=globalThis,Xr=Yr.Ember,Jr=void 0===Xr?{imports:Yr,exports:Yr,lookup:Yr}:{imports:Xr.imports||Yr,exports:Xr.exports||Yr,lookup:Xr.lookup||Yr};function Qr(){return Jr.lookup}function ti(t){Jr.lookup=t}var ei=new WeakMap;function ni(t,e){Yt(t)&&ei.set(t,e)}function ri(t){return ei.get(t)}var ii=Object.prototype.hasOwnProperty,si=!1,oi={_set:0,_unprocessedNamespaces:!1,get unprocessedNamespaces(){return this._unprocessedNamespaces},set unprocessedNamespaces(t){this._set++,this._unprocessedNamespaces=t}},ai=!1,li=[],ci=Object.create(null);function ui(t){oi.unprocessedNamespaces=!0,li.push(t)}function hi(t){let e=ri(t);delete ci[e],li.splice(li.indexOf(t),1),e in Jr.lookup&&t===Jr.lookup[e]&&(Jr.lookup[e]=void 0)}function di(){if(!oi.unprocessedNamespaces)return;let t=Jr.lookup,e=Object.keys(t);for(let n of e){if(!_i(n.charCodeAt(0)))continue;let e=xi(t,n);e&&ni(e,n)}}function pi(t){return si||gi(),ci[t]}function fi(t){bi([t.toString()],t,new Set)}function gi(){let t=oi.unprocessedNamespaces;if(t&&(di(),oi.unprocessedNamespaces=!1),t||ai){let t=li;for(let e of t)fi(e);ai=!1}}function mi(){return si}function yi(t){si=Boolean(t)}function vi(){ai=!0}function bi(t,e,n){let r=t.length,i=t.join(".");ci[i]=e,ni(e,i);for(let s in e){if(!ii.call(e,s))continue;let i=e[s];if(t[r]=s,i&&void 0===ri(i))ni(i,t.join("."));else if(i&&wi(i)){if(n.has(i))continue;n.add(i),bi(t,i,n)}}t.length=r}function wi(t){return null!=t&&"object"==typeof t&&t.isNamespace}function _i(t){return t>=65&&t<=90}function xi(t,e){try{let n=t[e];return(null!==n&&"object"==typeof n||"function"==typeof n)&&n.isNamespace&&n}catch(n){}}var Ci=a({ASYNC_OBSERVERS:()=>dn,ComputedDescriptor:()=>k,ComputedProperty:()=>Zn,DEBUG_INJECTION_FUNCTIONS:()=>{},Libraries:()=>Nr,NAMESPACES:()=>li,NAMESPACES_BY_ID:()=>ci,PROPERTY_DID_CHANGE:()=>Bn,PROXY_CONTENT:()=>cr,SYNC_OBSERVERS:()=>hn,TrackedDescriptor:()=>Gr,_getPath:()=>pr,_getProp:()=>dr,_setProp:()=>yr,activateObserver:()=>gn,addArrayObserver:()=>Pr,addListener:()=>rn,addNamespace:()=>ui,addObserver:()=>pn,alias:()=>br,arrayContentDidChange:()=>kr,arrayContentWillChange:()=>Sr,autoComputed:()=>Jn,beginPropertyChanges:()=>Vn,cached:()=>Zr,changeProperties:()=>Hn,computed:()=>Xn,createCache:()=>Bt,defineDecorator:()=>jn,defineProperty:()=>Dn,defineValue:()=>Un,deprecateProperty:()=>Si,descriptorForDecorator:()=>M,descriptorForProperty:()=>P,eachProxyArrayDidChange:()=>Ri,eachProxyArrayWillChange:()=>Ei,endPropertyChanges:()=>Wn,expandProperties:()=>Fn,findNamespace:()=>pi,findNamespaces:()=>di,flushAsyncObservers:()=>_n,get:()=>hr,getCachedValueFor:()=>tr,getProperties:()=>zr,getValue:()=>$t,hasListeners:()=>an,hasUnknownProperty:()=>ur,inject:()=>qr,isClassicDecorator:()=>A,isComputed:()=>Qn,isConst:()=>qt,isElementDescriptor:()=>C,isNamespaceSearchDisabled:()=>mi,libraries:()=>Fr,makeComputedDecorator:()=>L,markObjectAsDirty:()=>Fe,nativeDescDecorator:()=>S,notifyPropertyChange:()=>qn,objectAt:()=>Me,on:()=>ln,processAllNamespaces:()=>gi,processNamespace:()=>fi,removeArrayObserver:()=>Mr,removeListener:()=>sn,removeNamespace:()=>hi,removeObserver:()=>fn,replace:()=>Rr,replaceInNativeArray:()=>Lr,revalidateObservers:()=>bn,sendEvent:()=>on,set:()=>mr,setClassicDecorator:()=>O,setNamespaceSearchDisabled:()=>yi,setProperties:()=>Dr,setUnprocessedMixins:()=>vi,tagForObject:()=>Ne,tagForProperty:()=>Oe,tracked:()=>Wr,trySet:()=>vr});function Si(t,e,n){Object.defineProperty(t,e,{configurable:!0,enumerable:!1,set(t){mr(this,n,t)},get(){return hr(this,n)}})}var ki=new WeakMap;function Ei(t,e,n,r){let i=ki.get(t);void 0!==i&&i.arrayWillChange(t,e,n,r)}function Ri(t,e,n,r){let i=ki.get(t);void 0!==i&&i.arrayDidChange(t,e,n,r)}var Ti={get onerror(){}},Li=setTimeout,Ii=()=>{};function Pi(t){if("function"==typeof Promise){const e=Promise.resolve();return()=>e.then(t)}if("function"==typeof MutationObserver){let e=0,n=new MutationObserver(t),r=document.createTextNode("");return n.observe(r,{characterData:!0}),()=>(e=++e%2,r.data=""+e,e)}return()=>Li(t,0)}function Mi(t){let e=Ii;return{setTimeout:(t,e)=>setTimeout(t,e),clearTimeout:t=>clearTimeout(t),now:()=>Date.now(),next:Pi(t),clearNext:e}}var Ai=/\d+/;function Oi(t){let e=typeof t;return"number"===e&&t==t||"string"===e&&Ai.test(t)}function Ni(t){return t.onError||t.onErrorTarget&&t.onErrorTarget[t.onErrorMethod]}function Fi(t,e,n){let r=-1;for(let i=0,s=n.length;i=e[n]?i=n+6:s=n;return t>=e[i]?i+6:i}var Ui=class{constructor(t,e={},n={}){this._queueBeingFlushed=[],this.targetQueues=new Map,this.index=0,this._queue=[],this.name=t,this.options=e,this.globalOptions=n}stackFor(t){if(t0){let t=Ni(this.globalOptions);s=t?this.invokeWithOnError:this.invoke;for(let o=this.index;o0&&this.flush(!0)}hasWork(){return this._queueBeingFlushed.length>0||this._queue.length>0}cancel({target:t,method:e}){let n=this._queue,r=this.targetQueues.get(t);void 0!==r&&r.delete(e);let i=Fi(t,e,n);return i>-1?(n[i+1]=null,!0):(n=this._queueBeingFlushed,i=Fi(t,e,n),i>-1&&(n[i+1]=null,!0))}push(t,e,n,r){return this._queue.push(t,e,n,r),{queue:this,target:t,method:e}}pushUnique(t,e,n,r){let i=this.targetQueues.get(t);void 0===i&&(i=new Map,this.targetQueues.set(t,i));let s=i.get(e);if(void 0===s){let s=this._queue.push(t,e,n,r)-4;i.set(e,s)}else{let t=this._queue;t[s+2]=n,t[s+3]=r}return{queue:this,target:t,method:e}}_getDebugInfo(t){if(t)return Di(this._queue,4)}invoke(t,e,n){void 0===n?e.call(t):e.apply(t,n)}invokeWithOnError(t,e,n,r,i){try{void 0===n?e.call(t):e.apply(t,n)}catch(d8){r(d8,i)}}},Bi=class{constructor(t=[],e){this.queues={},this.queueNameIndex=0,this.queueNames=t,t.reduce(function(t,n){return t[n]=new Ui(n,e[n],e),t},this.queues)}schedule(t,e,n,r,i,s){let o=this.queues[t];if(void 0===o)throw new Error(`You attempted to schedule an action in a queue (${t}) that doesn't exist`);if(null==n)throw new Error(`You attempted to schedule an action in a queue (${t}) for a method that doesn't exist`);return this.queueNameIndex=0,i?o.pushUnique(e,n,r,s):o.push(e,n,r,s)}flush(t=!1){let e,n,r=this.queueNames.length;for(;this.queueNameIndexi){let e=r-i;t=new Array(e);for(let n=0;n{hs++,!1!==this._autorun&&(this._autorun=!1,this._autorunStack=null,this._end(!0))};let n=this.options._buildPlatform||Mi;this._platform=n(this._boundAutorunEnd)}get counters(){return{begin:Zi,end:Ki,events:{begin:Yi,end:0},autoruns:{created:us,completed:hs},run:Xi,join:Ji,defer:Qi,schedule:ts,scheduleIterable:es,deferOnce:ns,scheduleOnce:rs,setTimeout:is,later:ss,throttle:os,debounce:as,cancelTimers:ls,cancel:cs,loops:{total:ds,nested:ps}}}get defaultQueue(){return this._defaultQueue}begin(){Zi++;let t,e=this.options,n=this.currentInstance;return!1!==this._autorun?(t=n,this._cancelAutorun()):(null!==n&&(ps++,this.instanceStack.push(n)),ds++,t=this.currentInstance=new Bi(this.queueNames,e),Yi++,this._trigger("begin",t,n)),this._onBegin(t,n),t}end(){Ki++,this._end(!1)}on(t,e){if("function"!=typeof e)throw new TypeError("Callback must be a function");let n=this._eventCallbacks[t];if(void 0===n)throw new TypeError(`Cannot on() event ${t} because it does not exist`);n.push(e)}off(t,e){let n=this._eventCallbacks[t];if(!t||void 0===n)throw new TypeError(`Cannot off() event ${t} because it does not exist`);let r=!1;if(e)for(let i=0;i0&&Oi(n[i-1])&&(r=parseInt(n.pop(),10)),[t,e,n,r]}(...arguments);return this._later(t,e,n,r)}throttle(){os++;let t,[e,n,r,i,s=!0]=Hi(...arguments),o=zi(e,n,this._timers);if(-1===o)t=this._later(e,n,s?Vi:r,i),s&&this._join(e,n,r);else{t=this._timers[o+1];let e=o+4;this._timers[e]!==Vi&&(this._timers[e]=r)}return t}debounce(){as++;let t,[e,n,r,i,s=!1]=Hi(...arguments),o=this._timers,a=zi(e,n,o);if(-1===a)t=this._later(e,n,s?Vi:r,i),s&&this._join(e,n,r);else{let s=this._platform.now()+i,l=a+4;o[l]===Vi&&(r=Vi),t=o[a+1];let c=ji(s,o);if(a+6===c)o[a]=s,o[l]=r;else{let i=this._timers[a+5];this._timers.splice(c,0,s,t,e,n,r,i),this._timers.splice(a,6)}0===a&&this._reinstallTimerTimeout()}return t}cancelTimers(){ls++,this._clearTimerTimeout(),this._timers=[],this._cancelAutorun()}hasTimers(){return this._timers.length>0||this._autorun}cancel(t){if(cs++,null==t)return!1;let e=typeof t;return"number"===e?this._cancelLaterTimer(t):!("object"!==e||!t.queue||!t.method)&&t.queue.cancel(t)}ensureInstance(){this._ensureInstance()}getDebugInfo(){if(this.DEBUG)return{autorun:this._autorunStack,counters:this.counters,timers:Di(this._timers,6,2),instanceStack:[this.currentInstance,...this.instanceStack].map(t=>t&&t._getDebugInfo(this.DEBUG))}}_end(t){let e=this.currentInstance,n=null;if(null===e)throw new Error("end called without begin");let r,i=!1;try{r=e.flush(t)}finally{if(!i)if(i=!0,1===r){const t=this.queueNames[e.queueNameIndex];this._scheduleAutorun(t)}else this.currentInstance=null,this.instanceStack.length>0&&(n=this.instanceStack.pop(),this.currentInstance=n),this._trigger("end",e,n),this._onEnd(e,n)}}_join(t,e,n){return null===this.currentInstance?this._run(t,e,n):void 0===t&&void 0===n?e():e.apply(t,n)}_run(t,e,n){let r=Ni(this.options);if(this.begin(),r)try{return e.apply(t,n)}catch(d8){r(d8)}finally{this.end()}else try{return e.apply(t,n)}finally{this.end()}}_cancelAutorun(){this._autorun&&(this._platform.clearNext(),this._autorun=!1,this._autorunStack=null)}_later(t,e,n,r){let i=this.DEBUG?new Error:void 0,s=this._platform.now()+r,o=Gi++;if(0===this._timers.length)this._timers.push(s,o,t,e,n,i),this._installTimerTimeout();else{let r=ji(s,this._timers);this._timers.splice(r,0,s,o,t,e,n,i),this._reinstallTimerTimeout()}return o}_cancelLaterTimer(t){for(let e=1;e0&&(this.begin(),this._scheduleExpiredTimers(),this.end())}_scheduleExpiredTimers(){let t=this._timers,e=0,n=t.length,r=this._defaultQueue,i=this._platform.now();for(;ei);e+=6){let n=t[e+4];if(n!==Vi){let i=t[e+2],s=t[e+3],o=t[e+5];this.currentInstance.schedule(r,i,s,n,!1,o)}}t.splice(0,e),this._installTimerTimeout()}_reinstallTimerTimeout(){this._clearTimerTimeout(),this._installTimerTimeout()}_clearTimerTimeout(){null!==this._timerTimeoutId&&(this._platform.clearTimeout(this._timerTimeoutId),this._timerTimeoutId=null)}_installTimerTimeout(){if(0===this._timers.length)return;let t=this._timers[0],e=this._platform.now(),n=Math.max(0,t-e);this._timerTimeoutId=this._platform.setTimeout(this._boundRunExpiredTimers,n)}_ensureInstance(){let t=this.currentInstance;return null===t&&(this._autorunStack=this.DEBUG?new Error:void 0,t=this.begin(),this._scheduleAutorun(this.queueNames[0])),t}_scheduleAutorun(t){us++;const e=this._platform.next,n=this.options.flush;n?n(t,e):e(),this._autorun=!0}};fs.Queue=Ui,fs.buildPlatform=Mi,fs.buildNext=Pi;var gs=a({_backburner:()=>ws,_cancelTimers:()=>Ts,_getCurrentRunLoop:()=>ys,_hasScheduledTimers:()=>Rs,_queues:()=>bs,_rsvpErrorQueue:()=>vs,begin:()=>Ss,bind:()=>Cs,cancel:()=>As,debounce:()=>Os,end:()=>ks,join:()=>xs,later:()=>Ls,next:()=>Ms,once:()=>Is,run:()=>_s,schedule:()=>Es,scheduleOnce:()=>Ps,throttle:()=>Ns}),ms=null;function ys(){return ms}var vs=`${Math.random()}${Date.now()}`.replace(".",""),bs=["actions","routerTransitions","render","afterRender","destroy",vs],ws=new fs(bs,{defaultQueue:"actions",onBegin:function(t){ms=t},onEnd:function(t,e){ms=e,_n(Es)},onErrorTarget:Ti,onErrorMethod:"onerror",flush:function(t,e){"render"!==t&&t!==vs||_n(Es),e()}});function _s(...t){return ws.run(...t)}function xs(t,e,...n){return ws.join(t,e,...n)}function Cs(...t){return(...e)=>xs(...t.concat(e))}function Ss(){ws.begin()}function ks(){ws.end()}function Es(...t){return ws.schedule(...t)}function Rs(){return ws.hasTimers()}function Ts(){ws.cancelTimers()}function Ls(...t){return ws.later(...t)}function Is(...t){return ws.scheduleOnce("actions",...t)}function Ps(...t){return ws.scheduleOnce(...t)}function Ms(...t){return ws.later(...t,1)}function As(t){return ws.cancel(t)}function Os(...t){return ws.debounce(...t)}function Ns(...t){return ws.throttle(...t)}var Fs=new Set([Symbol.iterator,"concat","entries","every","filter","find","findIndex","flat","flatMap","forEach","includes","indexOf","join","keys","lastIndexOf","map","reduce","reduceRight","slice","some","values"]),zs=new Set(["fill","push","unshift"]);function Ds(t){if("symbol"==typeof t)return null;const e=Number(t);return isNaN(e)?null:e%1==0?e:null}var js=class t{#t;constructor(e,n){this.#t=n;const r=e.slice(),i=this,s=new Map;let o=!1;return new Proxy(r,{get(t,e){const n=Ds(e);if(null!==n)return i.#e(n),Ft(i.#n),t[n];if("length"===e)return o?o=!1:Ft(i.#n),t[e];if(zs.has(e)&&(o=!0),Fs.has(e)){let n=s.get(e);return void 0===n&&(n=(...n)=>(Ft(i.#n),t[e](...n)),s.set(e,n)),n}return t[e]},set(t,e,n){if(i.#t.equals(t[e],n))return!0;t[e]=n;const r=Ds(e);return null!==r?(i.#r(r),i.#i()):"length"===e&&i.#i(),!0},getPrototypeOf:()=>t.prototype})}#n=mt();#s=new Map;#e(t){let e=this.#s.get(t);void 0===e&&(e=mt(),this.#s.set(t,e)),Ft(e)}#r(t){const e=this.#s.get(t);e&&pt(e)}#i(){pt(this.#n),this.#s.clear()}};function Us(t,e){return new js(t??[],{equals:e?.equals??Object.is,description:e?.description})}Object.setPrototypeOf(js.prototype,Array.prototype);var Bs=class t{#t;#s=new Map;#n=mt();#e(t){let e=this.#s.get(t);void 0===e&&(e=mt(),this.#s.set(t,e)),Ft(e)}#r(t){const e=this.#s.get(t);e&&pt(e)}#i(){pt(this.#n)}constructor(e,n){this.#t=n;const r=Object.getPrototypeOf(e),i=Object.getOwnPropertyDescriptors(e),s=Object.create(r);for(const t in i)Object.defineProperty(s,t,i[t]);const o=this;return new Proxy(s,{get:(t,e)=>(o.#e(e),t[e]),has:(t,e)=>(o.#e(e),e in t),ownKeys:t=>(Ft(o.#n),Reflect.ownKeys(t)),set:(t,e,n)=>(o.#t.equals(t[e],n)||(t[e]=n,o.#r(e),o.#i()),!0),deleteProperty:(t,e)=>(e in t&&(delete t[e],o.#r(e),o.#s.delete(e),o.#i()),!0),getPrototypeOf:()=>t.prototype})}};function $s(t,e){return new Bs(t??{},{equals:e?.equals??Object.is,description:e?.description})}function qs(t,e){const n=e?.equals??Object.is,r=new Set(t??[]),i=mt(),s=new Map;function o(t){const e=s.get(t);e&&pt(e)}const a=new Proxy(r,{get(t,e,r){if("add"===e)return function(e){if(t.has(e)){if(n(e,e))return a}else pt(i);return o(e),t.add(e),a};if("delete"===e)return function(e){return!!t.has(e)&&(o(e),pt(i),s.delete(e),t.delete(e))};if("clear"===e)return function(){0!==t.size&&(s.forEach(t=>pt(t)),pt(i),s.clear(),t.clear())};if("has"===e)return function(e){return Ft(function(t){let e=s.get(t);return void 0===e&&(e=mt(),s.set(t,e)),e}(e)),t.has(e)};if("size"===e)return Ft(i),t.size;const l=Reflect.get(t,e,r);return"function"==typeof l?function(...e){return Ft(i),l.apply(t,e)}:l}});return a}function Vs(t,e){const n=e?.equals??Object.is,r=new WeakSet(t??[]),i=new WeakMap;function s(t){const e=i.get(t);e&&pt(e)}const o=new Proxy(r,{get(t,e,r){if("add"===e)return function(e){return t.has(e)&&n(e,e)||(t.add(e),s(e)),o};if("delete"===e)return function(e){return!!t.has(e)&&(s(e),i.delete(e),t.delete(e))};if("has"===e)return function(e){return Ft(function(t){let e=i.get(t);return void 0===e&&(e=mt(),i.set(t,e)),e}(e)),t.has(e)};const a=Reflect.get(t,e,r);return"function"==typeof a?a.bind(t):a}});return o}function Ws(t,e){const n=e?.equals??Object.is,r=t instanceof Map?new Map(t.entries()):new Map(t??[]),i=mt(),s=new Map;function o(t){let e=s.get(t);return void 0===e&&(e=mt(),s.set(t,e)),e}function a(t){const e=s.get(t);e&&pt(e)}const l=new Proxy(r,{get(t,e,r){if("set"===e)return function(e,r){return t.has(e)&&n(t.get(e),r)||(a(e),pt(i),t.set(e,r)),l};if("delete"===e)return function(e){return!!t.has(e)&&(a(e),pt(i),s.delete(e),t.delete(e))};if("clear"===e)return function(){0!==t.size&&(s.forEach(t=>pt(t)),s.clear(),pt(i),t.clear())};if("get"===e)return function(e){return Ft(o(e)),t.get(e)};if("has"===e)return function(e){return Ft(o(e)),t.has(e)};if("size"===e)return Ft(i),t.size;const c=Reflect.get(t,e,r);return"function"==typeof c?function(...e){return Ft(i),c.apply(t,e)}:c}});return l}function Hs(t,e){const n=e?.equals??Object.is,r=t??[],i=r instanceof WeakMap?r:new WeakMap(r),s=new WeakMap;function o(t){let e=s.get(t);return void 0===e&&(e=mt(),s.set(t,e)),e}function a(t){const e=s.get(t);e&&pt(e)}const l=new Proxy(i,{get(t,e,r){if("set"===e)return function(e,r){return t.has(e)&&n(t.get(e),r)||(a(e),t.set(e,r)),l};if("delete"===e)return function(e){return!!t.has(e)&&(a(e),s.delete(e),t.delete(e))};if("get"===e)return function(e){return Ft(o(e)),t.get(e)};if("has"===e)return function(e){return Ft(o(e)),t.has(e)};const i=Reflect.get(t,e,r);return"function"==typeof i?i.bind(t):i}});return l}var Gs=a({ALLOW_CYCLES:()=>{},COMPUTE:()=>lt,CONSTANT:()=>0,CONSTANT_TAG:()=>yt,CURRENT_TAG:()=>xt,CurrentTag:()=>_t,INITIAL:()=>1,VOLATILE:()=>NaN,VOLATILE_TAG:()=>wt,VolatileTag:()=>bt,beginTrackFrame:()=>It,beginUntrackFrame:()=>Mt,bump:()=>at,combine:()=>Ct,consumeTag:()=>Ft,createCache:()=>Bt,createTag:()=>gt,createUpdatableTag:()=>mt,debug:()=>Zs,dirtyTag:()=>pt,dirtyTagFor:()=>Gt,endTrackFrame:()=>Pt,endUntrackFrame:()=>At,getValue:()=>$t,isConst:()=>qt,isConstTag:()=>vt,isTracking:()=>Nt,resetTracking:()=>Ot,tagFor:()=>Kt,tagMetaFor:()=>Zt,track:()=>Vt,trackedArray:()=>Us,trackedData:()=>Vr,trackedMap:()=>Ws,trackedObject:()=>$s,trackedSet:()=>qs,trackedWeakMap:()=>Hs,trackedWeakSet:()=>Vs,untrack:()=>Wt,updateTag:()=>ft,validateTag:()=>ut,valueForTag:()=>ct}),Zs={},Ks=Symbol("GLIMMER_VALIDATOR_REGISTRATION");if(Reflect.has(globalThis,Ks))throw new Error("The `@glimmer/validator` library has been included twice in this application. It could be different versions of the package, or the same version included twice by mistake. `@glimmer/validator` depends on having a single copy of the package in use at any time in an application, even if they are the same version. You must dedupe your build to remove the duplicate packages in order to prevent this error.");Reflect.set(globalThis,Ks,!0);var Ys="@warp-drive/core",Xs=globalThis;Xs.__warpDrive_universalCache=Xs.__warpDrive_universalCache??{},Xs[Ys]=Xs[Ys]??{__version:"5.8.2"};var Js=Xs[Ys],Qs=Js.__warpDrive_ModuleScopedCaches??{};if(Js.__warpDrive_hasOtherCopy)throw new Error("Multiple copies of WarpDrive detected, the application will malfunction.");function to(t,e){return e}function eo(t){return Qs[`(transient) ${t}`]??null}function no(t,e){return e}Js.__warpDrive_hasOtherCopy=!0,no(0,Symbol.for("wd:skip-cache")),no(0,Symbol.for("wd:enable-hydration")),to(0,Symbol("IS_FUTURE")),to(0,Symbol("DOC")),to(0,Symbol("FROZEN")),to(0,Symbol.for("Collection"));var ro=no(0,new WeakMap);function io(t,e){ro.set(t,e)}no(0,new Map),to(0,Symbol("IS_CACHE_HANDLER"));var so=to(0,Symbol("#[]"));function oo(t,e){return eo("signalHooks").createSignal(t,e)}to(0,Symbol("#{}"));var ao={isInitializer:!0};function lo(t){return"object"==typeof t&&null!==t&&Object.getPrototypeOf(t)===ao}var co=to(0,Symbol("Signals"));function uo(t){return t[co]||function(t){t[co]=new Map}(t),t[co]}function ho(t,e,n,r){const i={key:n,context:e,signal:oo(e,n),value:lo(r)?r.value.call(e):r,isStale:!1};return t.set(n,i),i}function po(t,e){return t?.get(e)}function fo(t,e){return{enumerable:!0,configurable:!1,get(){const n=function(t,e,n,r){let i=po(t,n);return i||(i=ho(t,e,n,r)),function(t){eo("signalHooks").consumeSignal(t)}(i.signal),i}(uo(this),this,t,e);return n.isStale=!1,n.value},set(n){const r=function(t,e,n,r){let i=po(t,n);return i||(i=ho(t,e,n,r)),i}(uo(this),this,t,e);var i;r.value!==n&&(r.value=n,(i=r)&&(i.isStale=!0,function(t){eo("signalHooks").notifySignal(t)}(i.signal)))}}}function go(t,e,n){Object.defineProperty(t,e,fo(e,n))}function mo(t,e,n){const r=fo(e,n);r.enumerable=!1,Object.defineProperty(t,e,r)}function yo(t,e,n){const r=n.get;return n.get=function(){const t=uo(this);let n=t.get(e);return n||(n=function(t,e,n,r){{const i=function(t,e,n){return eo("signalHooks").createMemo(t,e,n)}(e,n,r);return t.set(n,i),i}}(t,this,e,r.bind(this))),n()},n}var vo=new WeakMap;function bo(t){return t instanceof DOMException&&"AbortError"===t.name}var wo=class{_stream=null;_future;_triggered=!1;_trigger(){if(this._triggered)return;this._triggered=!0;const t=this._future.getStream();t.sizeHint&&(this._sizeHint=t.sizeHint),this.promise=t.then(t=>t?async function(t,e){const n=e,r=t.getReader();let i=0,s=null!==n._stream&&n._stream.readable.locked,o=s,a=n._stream?.writable.getWriter();const l=[];for(n._isPending=!1,n._isStarted=!0,n._startTime=performance.now();;){const{value:t,done:e}=await r.read();if(e)break;if(i+=t.byteLength,n._bytesLoaded=i,n._lastPacketTime=performance.now(),s=s||null!==n._stream&&n._stream.readable.locked,s){if(!o){o=!0,a=n._stream.writable.getWriter();for(const t of l)await a.ready,await a.write(t);l.length=0}await a.ready,await a.write(t)}else l.push(t)}o?(await a.ready,await a.close()):n._stream&&(await n._stream.readable.cancel("The Stream Has Already Ended"),n._stream=null),n._endTime=performance.now(),n._isComplete=!0,n._isStarted=!1}(t,this):(this._isPending=!1,void(this._isComplete=!0)),t=>{this._isPending=!1,this._isStarted=!1,bo(t)&&(this._isCancelled=!0,this._isComplete=!0),this._isErrored=!0,this._error=t})}promise=null;get isPending(){return this._trigger(),this._isPending}get sizeHint(){return this._trigger(),this._sizeHint}get stream(){if(this._trigger(),!this._stream){if(this._isComplete||this._isCancelled||this._isErrored)return null;this._stream=new TransformStream}return this._stream.readable}get isStarted(){return this._trigger(),this._isStarted}get bytesLoaded(){return this._trigger(),this._bytesLoaded}get startTime(){return this._trigger(),this._startTime}get endTime(){return this._trigger(),this._endTime}get lastPacketTime(){return this._trigger(),this._lastPacketTime}get isComplete(){return this._trigger(),this._isComplete}get isCancelled(){return this._trigger(),this._isCancelled}get isErrored(){return this._trigger(),this._isErrored}get error(){return this._trigger(),this._error}get elapsedTime(){return(this.endTime||this.lastPacketTime)-this.startTime}get completedRatio(){return this.sizeHint?this.bytesLoaded/this.sizeHint:0}get remainingRatio(){return 1-this.completedRatio}get duration(){return this.endTime-this.startTime}get speed(){return this.bytesLoaded/(this.elapsedTime/1e3)}constructor(t){this._future=t}abort=()=>{this._future.abort()}};mo(wo.prototype,"_isPending",!0),mo(wo.prototype,"_isStarted",!1),mo(wo.prototype,"_isComplete",!1),mo(wo.prototype,"_isCancelled",!1),mo(wo.prototype,"_isErrored",!1),mo(wo.prototype,"_error",null),mo(wo.prototype,"_sizeHint",0),mo(wo.prototype,"_bytesLoaded",0),mo(wo.prototype,"_startTime",0),mo(wo.prototype,"_endTime",0),mo(wo.prototype,"_lastPacketTime",0);var _o={};function xo(t,e,n){const r=Object.assign({},e),i=Object.assign({},r.cacheOptions);return n?i.reload=!0:!1===n?(delete i.reload,i.backgroundReload=!0):(delete i.backgroundReload,delete i.reload),r.cacheOptions=i,t.request(r)}function Co(t,e,n){let r={...Object.getOwnPropertyDescriptor(t,e)};for(let i of n)r=i(t,e,r)||r;void 0!==r.initializer&&(r.value=r.initializer?r.initializer.call(t):void 0,r.initializer=void 0),Object.defineProperty(t,e,r)}go(_o,"reason",null),go(_o,"value",null),go(_o,"result",null),go(_o,"error",null),go(_o,"status","pending"),go(_o,"isPending",!0),go(_o,"isLoading",!0),go(_o,"isSuccess",!1),go(_o,"isError",!1),go(_o,"request",null),go(_o,"response",null),Object.defineProperty(_o,"isCancelled",{get(){return this.isError&&bo(this.reason)}}),Object.defineProperty(_o,"loadingState",{get(){return this._loadingState||(this._loadingState=new wo(this._request)),this._loadingState}});var So=Symbol.dispose||Symbol.for("dispose"),ko=class{_requester;constructor(t,e){this._args=e,this.store=t,this._subscribedTo=null,this._subscription=null,this._intervalStart=null,this._invalidated=!1,this._nextInterval=null,this._requester=null,this.isDestroyed=!1,this[So]=Ro,this._installListeners(),this._beginPolling()}async _beginPolling(){try{this.isIdle||await this.request}catch{}finally{this.isDestroyed||this._scheduleInterval()}}get isIdle(){const{request:t,query:e}=this._args;return Boolean(!t&&!e)}static{Co(this.prototype,"isIdle",[yo])}get autorefreshTypes(){const{autorefresh:t}=this._args;let e;return e=!0===t?["online","invalid"]:"string"==typeof t?t.split(","):[],new Set(e)}static{Co(this.prototype,"autorefreshTypes",[yo])}async _scheduleInterval(){const{autorefreshThreshold:t}=this._args;if("undefined"!=typeof window&&"number"==typeof t&&t>0&&this.autorefreshTypes.has("interval")&&null===this._intervalStart){if(this._latestRequest){try{await this._latestRequest}catch{}if(this.isDestroyed)return}this._intervalStart=Date.now(),this._nextInterval=setTimeout(()=>{this._maybeUpdate()},t)}}_clearInterval(){this._nextInterval&&(clearTimeout(this._nextInterval),this._intervalStart=null)}_updateSubscriptions(){if(this.isIdle)return;const t=this._request.lid;if(this._subscribedTo===t)return;this._removeSubscriptions();const e=this._getRequester();this._requester=e,t&&Eo(e)&&(this._subscribedTo=t,this._subscription=e.notifications.subscribe(t,(n,r)=>{if(!this._isUpdating)switch(r){case"invalidated":this.autorefreshTypes.has("invalid")&&(this._invalidated=!0,this._maybeUpdate());break;case"state":{const n=e.requestManager._deduped.get(t)?.priority,r=this.reqState;n?n.blocking&&!r.isLoading?(this.isRefreshing=!1,this._maybeUpdate("policy",!0)):this.isRefreshing=!0:this.isRefreshing=!1}}}))}_removeSubscriptions(){const t=this._requester;this._subscription&&t&&Eo(t)&&(t.notifications.unsubscribe(this._subscription),this._subscribedTo=null,this._subscription=null,this._requester=null)}_installListeners(){"undefined"!=typeof window&&(this.isOnline=window.navigator.onLine,this._unavailableStart=this.isOnline?null:Date.now(),this.isHidden="hidden"===document.visibilityState,this._onlineChanged=t=>{this.isOnline="online"===t.type,"offline"===t.type&&null===this._unavailableStart&&(this._unavailableStart=Date.now()),this._maybeUpdate()},this._backgroundChanged=()=>{const t="hidden"===document.visibilityState;this.isHidden=t,t&&null===this._unavailableStart&&(this._unavailableStart=Date.now()),this._maybeUpdate()},window.addEventListener("online",this._onlineChanged,{passive:!0,capture:!0}),window.addEventListener("offline",this._onlineChanged,{passive:!0,capture:!0}),document.addEventListener("visibilitychange",this._backgroundChanged,{passive:!0,capture:!0}))}_maybeUpdate(t,e){if(this.isIdle)return;const{reqState:n}=this;if(n.isPending)return;if(!Boolean(this.isOnline&&!this.isHidden&&(t||this.autorefreshTypes.size))){if(!e&&t&&"_invalidated"!==t)throw new Error("Reload not available: the network is not online or the tab is hidden");return}const{autorefreshTypes:r}=this;let i=this._invalidated||Boolean(t);if(!i&&r.has("online")){const{_unavailableStart:t}=this,{autorefreshThreshold:e}=this._args,n="number"==typeof e?e:3e4;i=Boolean(t&&Date.now()-t>n)}if(!i&&r.has("interval")){const{_intervalStart:t}=this,{autorefreshThreshold:e}=this._args;t&&"number"==typeof e&&e>0&&(i=Boolean(Date.now()-t>=e))}if(this._unavailableStart=null,this._invalidated=!1,i){this._clearInterval(),this._isUpdating=!0;const e=("_invalidated"===t?null:t)??this._args.autorefreshBehavior??"policy",r=this._getRequester();switch(n._request.requester||(n._request.requester=r),e){case"reload":this._latestRequest=n.reload();break;case"refresh":this._latestRequest=n.refresh();break;case"policy":this._latestRequest=n.refresh(!0)}"refresh"!==e&&(this._localRequest=this._latestRequest),this._scheduleInterval(),this._latestRequest.finally(()=>{this._isUpdating=!1})}}_getRequester(){return this._args.request?.requester?this._args.request.requester:this.store}retry=async()=>{this._maybeUpdate("reload"),await this._localRequest};refresh=async()=>{this._maybeUpdate("refresh"),await this._latestRequest};get errorFeatures(){return{isHidden:this.isHidden,isOnline:this.isOnline,retry:this.retry}}static{Co(this.prototype,"errorFeatures",[yo])}get contentFeatures(){const t={isHidden:this.isHidden,isOnline:this.isOnline,reload:this.retry,refresh:this.refresh,isRefreshing:this.isRefreshing,latestRequest:this._latestRequest};return t.isRefreshing&&(t.abort=()=>{this._latestRequest?.abort()}),t}static{Co(this.prototype,"contentFeatures",[yo])}get _request(){const{request:t,query:e}=this._args,{_localRequest:n,_originalRequest:r,_originalQuery:i}=this;return n&&t===r&&e===i?n:(this._originalQuery=e,this._originalRequest=t,t||this.store.request(e))}static{Co(this.prototype,"_request",[yo])}get request(){{const t=this._request;return this._updateSubscriptions(),t}}static{Co(this.prototype,"request",[yo])}get reqState(){return function(t){let e=vo.get(t);return e||(e=function(t){const e=(n=t,ro.get(n));var n;const r=Object.create(_o);return r._request=t,r.reload=()=>xo(t.requester,r.request,!0),r.refresh=(e=!1)=>xo(t.requester,r.request,!0===e&&null),e?e.isError?(r.error=e.result,r.reason=e.result,r.status="rejected",r.isError=!0,r.isPending=!1,r.isLoading=!1,r.request=e.result.request,r.response=e.result.response):(r.result=e.result.content,r.value=e.result.content,r.status="fulfilled",r.isSuccess=!0,r.isPending=!1,r.isLoading=!1,r.request=e.result.request,r.response=e.result.response):t.then(e=>{io(t,{isError:!1,result:e}),r.result=e.content,r.value=e.content,r.status="fulfilled",r.isSuccess=!0,r.isPending=!1,r.isLoading=!1,r.request=e.request,r.response=e.response},e=>{io(t,{isError:!0,result:e}),r.error=e,r.reason=e,r.status="rejected",r.isError=!0,r.isPending=!1,r.isLoading=!1,r.request=e.request,r.response=e.response}),r}(t),vo.set(t,e)),e}(this.request)}get result(){return this.reqState.result}};function Eo(t){return"requestManager"in t}function Ro(){const t=this;t.isDestroyed=!0,t._removeSubscriptions(),"undefined"!=typeof window&&(t._clearInterval(),window.removeEventListener("online",t._onlineChanged,{passive:!0,capture:!0}),window.removeEventListener("offline",t._onlineChanged,{passive:!0,capture:!0}),document.removeEventListener("visibilitychange",t._backgroundChanged,{passive:!0,capture:!0}))}go(ko.prototype,"isOnline",!0),go(ko.prototype,"isHidden",!1),go(ko.prototype,"isRefreshing",!1),go(ko.prototype,"_localRequest",void 0),go(ko.prototype,"_latestRequest",void 0);var To={};go(To,"reason",null),go(To,"value",null),go(To,"result",null),go(To,"error",null),go(To,"status","pending"),go(To,"isPending",!0),go(To,"isLoading",!0),go(To,"isSuccess",!1),go(To,"isError",!1);var Lo=pt;!function(){const t=function(t){const e=t.wellknown.Array;return{createSignal:(t,n)=>n===e?[Oe(t,n),Oe(t,"length"),Oe(t,"[]")]:Oe(t,n),consumeSignal(t){if(Array.isArray(t))return Ft(t[0]),Ft(t[1]),void Ft(t[2]);Ft(t)},notifySignal(t){if(Array.isArray(t))return Lo(t[0]),Lo(t[1]),void Lo(t[2]);Lo(t)},createMemo:(t,e,n)=>{{const r=Oe(t,e),i=Bt(n);let s;const o=()=>{s=$t(i)};return()=>{const t=Vt(o);return ft(r,t),Ft(t),s}}},willSyncFlushWatchers:()=>!!ws.currentInstance&&!0!==ws._autorun,waitFor:async t=>t}}({wellknown:{Array:so}});var e;e=t,Qs["(transient) signalHooks"]=e}();var Io=a({getOwner:()=>Po,setOwner:()=>$r}),Po=Br;function Mo(t){let e=Object.create(t);return e._dict=null,delete e._dict,e}var Ao="object"==typeof self&&null!==self&&self.Object===Object&&"undefined"!=typeof Window&&self.constructor===Window&&"object"==typeof document&&null!==document&&self.document===document&&"object"==typeof location&&null!==location&&self.location===location&&"object"==typeof history&&null!==history&&self.history===history&&"object"==typeof navigator&&null!==navigator&&self.navigator===navigator&&"string"==typeof navigator.userAgent;function Oo(t){let e=t._promiseCallbacks;return e||(e=t._promiseCallbacks={}),e}var No={mixin(t){return t.on=this.on,t.off=this.off,t.trigger=this.trigger,t._promiseCallbacks=void 0,t},on(t,e){if("function"!=typeof e)throw new TypeError("Callback must be a function");let n=Oo(this),r=n[t];r||(r=n[t]=[]),-1===r.indexOf(e)&&r.push(e)},off(t,e){let n=Oo(this);if(!e)return void(n[t]=[]);let r=n[t],i=r.indexOf(e);-1!==i&&r.splice(i,1)},trigger(t,e,n){let r=Oo(this)[t];if(r){let t;for(let i=0;i{for(let t=0;t{e===n?Zo(t,n):Ho(t,n)},e=>Ko(t,e))}(t,e):"function"==typeof n?function(t,e,n){Fo.async(t=>{let r=!1,i=function(n,i){try{n.call(i,n=>{r||(r=!0,e===n?Zo(t,n):Ho(t,n))},e=>{r||(r=!0,Ko(t,e))})}catch(s){return s}}(n,e,t._label);!r&&i&&(r=!0,Ko(t,i))},t)}(t,e,n):Zo(t,e)}function Ho(t,e){if(t===e)Zo(t,e);else if(function(t){let e=typeof t;return null!==t&&("object"===e||"function"===e)}(e)){let n;try{n=e.then}catch(d8){return void Ko(t,d8)}Wo(t,e,n)}else Zo(t,e)}function Go(t){t._onError&&t._onError(t._result),Xo(t)}function Zo(t,e){t._state===$o&&(t._result=e,t._state=qo,0===t._subscribers.length?Fo.instrument&&jo("fulfilled",t):Fo.async(Xo,t))}function Ko(t,e){t._state===$o&&(t._state=Vo,t._result=e,Fo.async(Go,t))}function Yo(t,e,n,r){let i=t._subscribers,s=i.length;t._onError=null,i[s]=e,i[s+qo]=n,i[s+Vo]=r,0===s&&t._state&&Fo.async(Xo,t)}function Xo(t){let e=t._subscribers,n=t._state;if(Fo.instrument&&jo(n===qo?"fulfilled":"rejected",t),0===e.length)return;let r,i,s=t._result;for(let o=0;oJo(i,s,n,o))}return s}var ta=class{constructor(t,e,n,r){this._instanceConstructor=t,this.promise=new t(Bo,r),this._abortOnReject=n,this._isUsingOwnPromise=t===ia,this._isUsingOwnResolve=t.resolve===Uo,this._init(...arguments)}_init(t,e){let n=e.length||0;this.length=n,this._remaining=n,this._result=new Array(n),this._enumerate(e)}_enumerate(t){let e=this.length,n=this.promise;for(let r=0;n._state===$o&&re(t)),e,n)}else this._willSettleAt(r.resolve(t),e,n)}_eachEntry(t,e,n){null!==t&&"object"==typeof t?this._settleMaybeThenable(t,e,n):this._setResultAt(qo,e,t,n)}_settledAt(t,e,n,r){let i=this.promise;i._state===$o&&(this._abortOnReject&&t===Vo?Ko(i,n):(this._setResultAt(t,e,n,r),this._checkFullfillment()))}_setResultAt(t,e,n,r){this._remaining--,this._result[e]=n}_willSettleAt(t,e,n){Yo(t,void 0,t=>this._settledAt(qo,e,t,n),t=>this._settledAt(Vo,e,t,n))}};function ea(t,e,n){this._remaining--,this._result[e]=t===qo?{state:"fulfilled",value:n}:{state:"rejected",reason:n}}var na="rsvp_"+Date.now()+"-",ra=0,ia=class t{constructor(e,n){this._id=ra++,this._label=n,this._state=void 0,this._result=void 0,this._subscribers=[],Fo.instrument&&jo("created",this),Bo!==e&&("function"!=typeof e&&function(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}(),this instanceof t?function(t,e){let n=!1;try{e(e=>{n||(n=!0,Ho(t,e))},e=>{n||(n=!0,Ko(t,e))})}catch(r){Ko(t,r)}}(this,e):function(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}())}_onError(t){Fo.after(()=>{this._onError&&Fo.trigger("error",t,this._label)})}catch(t,e){return this.then(void 0,t,e)}finally(t,e){let n=this,r=n.constructor;return"function"==typeof t?n.then(e=>r.resolve(t()).then(()=>e),e=>r.resolve(t()).then(()=>{throw e})):n.then(t,t)}};function sa(t,e){return{then:(n,r)=>t.call(e,n,r)}}function oa(t,e){let n=function(){let n=arguments.length,r=new Array(n+1),i=!1;for(let t=0;taa(t,e,n,r))}(s,r,t,this):aa(s,r,t,this)};return n.__proto__=t,n}function aa(t,e,n,r){try{n.apply(r,e)}catch(d8){Ko(t,d8)}return t}function la(t,e){return ia.all(t,e)}ia.cast=Uo,ia.all=function(t,e){return Array.isArray(t)?new ta(this,t,!0,e).promise:this.reject(new TypeError("Promise.all must be called with an array"),e)},ia.race=function(t,e){let n=this,r=new n(Bo,e);if(!Array.isArray(t))return Ko(r,new TypeError("Promise.race must be called with an array")),r;for(let i=0;r._state===$o&&iHo(r,t),t=>Ko(r,t));return r},ia.resolve=Uo,ia.reject=function(t,e){let n=new this(Bo,e);return Ko(n,t),n},ia.prototype._guidKey=na,ia.prototype.then=Qo;var ca=class extends ta{constructor(t,e,n){super(t,e,!1,n)}};function ua(t,e){return Array.isArray(t)?new ca(ia,t,e).promise:ia.reject(new TypeError("Promise.allSettled must be called with an array"),e)}function ha(t,e){return ia.race(t,e)}ca.prototype._setResultAt=ea;var da=class extends ta{constructor(t,e,n=!0,r){super(t,e,n,r)}_init(t,e){this._result={},this._enumerate(e)}_enumerate(t){let e,n,r=Object.keys(t),i=r.length,s=this.promise;this._remaining=i;for(let o=0;s._state===$o&&o{throw t}),t}function ya(t){let e={resolve:void 0,reject:void 0};return e.promise=new ia((t,n)=>{e.resolve=t,e.reject=n},t),e}fa.prototype._setResultAt=ea;var va=class extends ta{constructor(t,e,n,r){super(t,e,!0,r,n)}_init(t,e,n,r,i){let s=e.length||0;this.length=s,this._remaining=s,this._result=new Array(s),this._mapFn=i,this._enumerate(e)}_setResultAt(t,e,n,r){if(r)try{this._eachEntry(this._mapFn(n,e),e,!1)}catch(d8){this._settledAt(Vo,e,d8,!1)}else this._remaining--,this._result[e]=n}};function ba(t,e,n){return"function"!=typeof e?ia.reject(new TypeError("map expects a function as a second argument"),n):ia.resolve(t,n).then(function(t){if(!Array.isArray(t))throw new TypeError("map must be called with an array");return new va(ia,t,e,n).promise})}function wa(t,e){return ia.resolve(t,e)}function _a(t,e){return ia.reject(t,e)}var xa={},Ca=class extends va{_checkFullfillment(){if(0===this._remaining&&null!==this._result){let t=this._result.filter(t=>t!==xa);Zo(this.promise,t),this._result=null}}_setResultAt(t,e,n,r){if(r){this._result[e]=n;let t,r=!0;try{t=this._mapFn(n,e)}catch(d8){r=!1,this._settledAt(Vo,e,d8,!1)}r&&this._eachEntry(t,e,!1)}else this._remaining--,n||(this._result[e]=xa)}};function Sa(t,e,n){return"function"!=typeof e?ia.reject(new TypeError("filter expects function as a second argument"),n):ia.resolve(t,n).then(function(t){if(!Array.isArray(t))throw new TypeError("filter must be called with an array");return new Ca(ia,t,e,n).promise})}var ka,Ea=0;function Ra(t,e){Na[Ea]=t,Na[Ea+1]=e,2===(Ea+=2)&&Oa()}var Ta="undefined"!=typeof window?window:void 0,La=Ta||{},Ia=La.MutationObserver||La.WebKitMutationObserver,Pa="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),Ma="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel;function Aa(){return()=>setTimeout(Fa,1)}var Oa,Na=new Array(1e3);function Fa(){for(let t=0;tt(Fa)}():Ia?function(){let t=0,e=new Ia(Fa),n=document.createTextNode("");return e.observe(n,{characterData:!0}),()=>n.data=t=++t%2}():Ma?function(){let t=new MessageChannel;return t.port1.onmessage=Fa,()=>t.port2.postMessage(0)}():void 0===Ta&&"function"==typeof window.require?function(){try{const t=Function("return this")().require("vertx");return void 0!==(ka=t.runOnLoop||t.runOnContext)?function(){ka(Fa)}:Aa()}catch(t){return Aa()}}():Aa(),Fo.async=Ra,Fo.after=t=>setTimeout(t,0);var za=wa,Da=(t,e)=>Fo.async(t,e);function ja(){Fo.on(...arguments)}function Ua(){Fo.off(...arguments)}if("undefined"!=typeof window&&"object"==typeof window.__PROMISE_INSTRUMENTATION__){let t=window.__PROMISE_INSTRUMENTATION__;zo("instrument",!0);for(let e in t)t.hasOwnProperty(e)&&ja(e,t[e])}var Ba={asap:Ra,cast:za,Promise:ia,EventTarget:No,all:la,allSettled:ua,race:ha,hash:pa,hashSettled:ga,rethrow:ma,defer:ya,denodeify:oa,configure:zo,on:ja,off:Ua,resolve:wa,reject:_a,map:ba,async:Da,filter:Sa},$a=Object.freeze(Object.defineProperty({__proto__:null,EventTarget:No,Promise:ia,all:la,allSettled:ua,asap:Ra,async:Da,cast:za,configure:zo,default:Ba,defer:ya,denodeify:oa,filter:Sa,hash:pa,hashSettled:ga,map:ba,off:Ua,on:ja,race:ha,reject:_a,resolve:wa,rethrow:ma},Symbol.toStringTag,{value:"Module"}));function qa(t){let e=function(t){if(!t)return;let e=t;return e.errorThrown?function(t){let e=t.errorThrown;return"string"==typeof e&&(e=new Error(e)),Object.defineProperty(e,"__reason_with_error_thrown__",{value:t,enumerable:!1}),e}(e):"UnrecognizedURLError"!==t.name&&"TransitionAborted"!==t.name?t:void 0}(t);if(e){let t=null;if(!t)throw e;t(e)}}zo("async",(t,e)=>{ws.schedule("actions",null,t,e)}),zo("after",t=>{ws.schedule(vs,null,t)}),ja("error",qa);var Va=class{static _leakTracking;owner;registry;cache;factoryManagerCache;validationCache;isDestroyed;isDestroying;constructor(t,e={}){this.registry=t,this.owner=e.owner||null,this.cache=Mo(e.cache||null),this.factoryManagerCache=Mo(e.factoryManagerCache||null),this.isDestroyed=!1,this.isDestroying=!1}lookup(t,e){if(this.isDestroyed)throw new Error(`Cannot call \`.lookup('${t}')\` after the owner has been destroyed`);return function(t,e,n={}){let r=e;if(!0===n.singleton||void 0===n.singleton&&Wa(t,e)){let e=t.cache[r];if(void 0!==e)return e}return function(t,e,n,r){let i=Ga(t,e,n);if(void 0!==i){if(function(t,e,{instantiate:n,singleton:r}){return!1!==r&&!1!==n&&(!0===r||Wa(t,e))&&Ha(t,e)}(t,n,r)){let n=t.cache[e]=i.create();return t.isDestroying&&"function"==typeof n.destroy&&n.destroy(),n}if(function(t,e,{instantiate:n,singleton:r}){return!1!==n&&(!1===r||!Wa(t,e))&&Ha(t,e)}(t,n,r))return i.create();if(function(t,e,{instantiate:n,singleton:r}){return!1!==r&&!n&&Wa(t,e)&&!Ha(t,e)}(t,n,r)||function(t,e,{instantiate:n,singleton:r}){return!(!1!==n||!1!==r&&Wa(t,e)||Ha(t,e))}(t,n,r))return i.class;throw new Error("Could not create factory")}}(t,r,e,n)}(this,this.registry.normalize(t),e)}destroy(){this.isDestroying=!0,Za(this)}finalizeDestroy(){Ka(this),this.isDestroyed=!0}reset(t){this.isDestroyed||(void 0===t?(Za(this),Ka(this)):function(t,e){let n=t.cache[e];delete t.factoryManagerCache[e],n&&(delete t.cache[e],n.destroy&&n.destroy())}(this,this.registry.normalize(t)))}ownerInjection(){let t={};return $r(t,this.owner),t}factoryFor(t){if(this.isDestroyed)throw new Error(`Cannot call \`.factoryFor('${t}')\` after the owner has been destroyed`);return Ga(this,this.registry.normalize(t),t)}};function Wa(t,e){return!1!==t.registry.getOption(e,"singleton")}function Ha(t,e){return!1!==t.registry.getOption(e,"instantiate")}function Ga(t,e,n){let r=t.factoryManagerCache[e];if(void 0!==r)return r;let i=t.registry.resolve(e);if(void 0===i)return;let s=new Qa(t,i,n,e);return t.factoryManagerCache[e]=s,s}function Za(t){let e=t.cache,n=Object.keys(e);for(let r of n){let t=e[r];t.destroy&&t.destroy()}}function Ka(t){t.cache=Mo(null),t.factoryManagerCache=Mo(null)}var Ya=Symbol("INIT_FACTORY");function Xa(t){return t[Ya]}function Ja(t,e){t[Ya]=e}var Qa=class{container;owner;class;fullName;normalizedName;madeToString;injections;constructor(t,e,n,r){this.container=t,this.owner=t.owner,this.class=e,this.fullName=n,this.normalizedName=r,this.madeToString=void 0,this.injections=void 0}toString(){return void 0===this.madeToString&&(this.madeToString=this.container.registry.makeToString(this.class,this.fullName)),this.madeToString}create(t){let{container:e}=this;if(e.isDestroyed)throw new Error(`Cannot create new instances after the owner has been destroyed (you attempted to create ${this.fullName})`);let n=t?{...t}:{};return $r(n,e.owner),Ja(n,this),this.class.create(n)}};function tl(t){let e=Object.create(null);e[t]=1;for(let n in e)if(n===t)return n;return t}var el=0;function nl(){return++el}var rl="ember",il=new WeakMap,sl=new Map,ol=tl(`__ember${Date.now()}`);function al(t,e=rl){let n=e+nl().toString();return Yt(t)&&il.set(t,n),n}function ll(t){let e;if(Yt(t))e=il.get(t),void 0===e&&(e=`${rl}${nl()}`,il.set(t,e));else if(e=sl.get(t),void 0===e){let n=typeof t;e="string"===n?`st${nl()}`:"number"===n?`nu${nl()}`:"symbol"===n?`sy${nl()}`:`(${t})`,sl.set(t,e)}return e}var cl=Array.prototype.concat;function ul(t,e,n,r){let i=n[t]||r[t];return e[t]&&(i=i?cl.call(i,e[t]):e[t]),i}function hl(t,e,n,r){if(!0===n)return e;let i=n._getter;if(void 0===i)return e;let s=r[t],o="function"==typeof s?M(s):s;if(void 0===o||!0===o)return e;let a=o._getter;if(void 0===a)return e;let l,c=en(i,a),u=n._setter,h=o._setter;if(l=void 0!==h?void 0!==u?en(u,h):h:u,c!==i||l!==u){let t=n._dependentKeys||[],e=new Zn([...t,{get:c,set:l}]);return e._readOnly=n._readOnly,e._meta=n._meta,e.enumerable=n.enumerable,L(e,Zn)}return e}function dl(t,e,n,r){if(void 0!==r[t])return e;let i=n[t];return"function"==typeof i?en(e,i):e}function pl(t){return t?Array.isArray(t)?t:[t]:[]}function fl(t,e,n){return pl(n[t]).concat(pl(e))}function gl(t,e,n){let r=n[t];if(!r)return e;let i=Object.assign({},r),s=!1,o=Object.keys(e);for(let a of o){let t=e[a];"function"==typeof t?(s=!0,i[a]=dl(a,t,r,{})):i[a]=t}return s&&(i._super=He),i}function ml(t,e,n,r,i,s,o){let a;for(let l=0;l{let e=s.indexOf(t);-1!==e&&s.splice(e,1)}))}else yl(e,a,n,r,i,s,o)}function yl(t,e,n,r,i,s,o){let a=ul("concatenatedProperties",e,r,i),l=ul("mergedProperties",e,r,i),c=Object.keys(e);for(let u of c){let c=e[u];if(void 0===c)continue;if(-1===s.indexOf(u)){s.push(u);let e=t.peekDescriptors(u);if(void 0===e){if(!A(c)){let t=r[u]=i[u];"function"==typeof t&&vl(i,u,t,!1)}}else n[u]=e,o.push(u),e.teardown(i,u,t)}let h="function"==typeof c;if(h){let t=M(c);if(void 0!==t){n[u]=hl(u,c,t,n),r[u]=void 0;continue}}a&&a.indexOf(u)>=0||"concatenatedProperties"===u||"mergedProperties"===u?c=fl(u,c,r):l&&l.indexOf(u)>-1?c=gl(u,c,r):h&&(c=dl(u,c,r,n)),r[u]=c,n[u]=void 0}}function vl(t,e,n,r){let i=Xe(n);if(void 0===i)return;let{observers:s,listeners:o}=i;if(void 0!==s){let n=r?pn:fn;for(let r of s.paths)n(t,r,null,e,s.sync)}if(void 0!==o){let n=r?rn:sn;for(let r of o)n(t,r,null,e)}}function bl(t,e,n=!1){let r=Object.create(null),i=Object.create(null),s=_(t),o=[],a=[];t._super=He,ml(e,s,r,i,t,o,a);for(let l of o){let e=i[l],o=r[l];void 0!==e?("function"==typeof e&&vl(t,l,e,!0),Un(t,l,e,-1!==a.indexOf(l),!n)):void 0!==o&&jn(t,l,o,s)}return s.isPrototypeMeta(t)||bn(t),t}var wl=new WeakSet,_l=class t{mixins;properties;ownerConstructor;_without;constructor(t,e){wl.add(this),this.properties=function(t){if(void 0!==t)for(let e of Object.keys(t)){let n=Object.getOwnPropertyDescriptor(t,e);void 0===n.get&&void 0===n.set||Object.defineProperty(t,e,{value:S(n)})}return t}(e),this.mixins=xl(t),this.ownerConstructor=void 0,this._without=void 0}static create(...t){return vi(),new this(t,void 0)}static mixins(t){let e=w(t),n=[];return null===e||e.forEachMixins(t=>{t.properties||n.push(t)}),n}reopen(...e){if(0===e.length)return this;if(this.properties){let e=new t(void 0,this.properties);this.properties=void 0,this.mixins=[e]}else this.mixins||(this.mixins=[]);return this.mixins=this.mixins.concat(xl(e)),this}apply(t,e=!1){return bl(t,[this],e)}applyPartial(t){return bl(t,[this])}detect(t){if("object"!=typeof t||null===t)return!1;if(wl.has(t))return Cl(t,this);let e=w(t);return null!==e&&e.hasMixin(this)}without(...e){let n=new t([this]);return n._without=e,n}keys(){return Sl(this)}toString(){return"(unknown mixin)"}};function xl(t){let e,n=t&&t.length||0;if(n>0){e=new Array(n);for(let r=0;rCl(t,e,n))}function Sl(t,e=new Set,n=new Set){if(!n.has(t)){if(n.add(t),t.properties){let n=Object.keys(t.properties);for(let t of n)e.add(t)}else t.mixins&&t.mixins.forEach(t=>Sl(t,e,n));return e}}var kl=_l.create({mergedProperties:["actions"],send(t,...e){if(this.actions&&this.actions[t]&&!0!==this.actions[t].apply(this,e))return;let n=hr(this,"target");n&&n.send(...arguments)}}),{isArray:El}=Array;function Rl(t){return null==t?[]:El(t)?t:[t]}var Tl=a({default:()=>Fl});function Ll(t){return"object"==typeof t&&null!==t&&"function"==typeof t.setUnknownProperty}var Il=_l.prototype.reopen,Pl=new WeakSet,Ml=new WeakMap,Al=new Set;function Ol(t){Al.has(t)||t.destroy()}function Nl(t,e){let n=_(t);if(void 0!==e){let r=t.concatenatedProperties,i=t.mergedProperties,s=Object.keys(e);for(let o of s){let s=e[o],a=P(t,o,n),l=void 0!==a;if(!l){if(void 0!==r&&r.length>0&&r.includes(o)){let e=t[o];s=e?Rl(e).concat(s):Rl(s)}if(void 0!==i&&i.length>0&&i.includes(o)){let e=t[o];s=Object.assign({},e,s)}}l?a.set(t,o,s):Ll(t)&&!(o in t)?t.setUnknownProperty(o,s):t[o]=s}}t.init(e),n.unsetInitializing();let r=n.observerEvents();if(void 0!==r)for(let i=0;in.willDestroy()),_(e).setInitializing()}reopen(...t){return bl(this,t),this}init(t){}get isDestroyed(){return st(this)}set isDestroyed(t){}get isDestroying(){return it(this)}set isDestroying(t){}destroy(){Al.add(this);try{nt(this)}finally{Al.delete(this)}return this}willDestroy(){}toString(){let t="object"==typeof this&&null!==this&&"function"==typeof this.toStringExtension?`:${this.toStringExtension()}`:"";return`<${Xa(this)||"(unknown)"}:${ll(this)}${t}>`}static extend(...t){let e=class extends(this){};return Il.apply(e.PrototypeMixin,t),e}static create(...t){let e,n=t[0];return void 0!==n?(e=new this(Br(n)),Ja(e,Xa(n))):e=new this,t.length<=1?Nl(e,n):Nl(e,zl.apply(this,t)),e}static reopen(...t){return this.willReopen(),Il.apply(this.PrototypeMixin,t),this}static willReopen(){let t=this.prototype;Pl.has(t)&&(Pl.delete(t),Ml.has(this)&&Ml.set(this,_l.create(this.PrototypeMixin)))}static reopenClass(...t){return bl(this,t),this}static detect(t){if("function"!=typeof t)return!1;for(;t;){if(t===this)return!0;t=t.superclass}return!1}static detectInstance(t){return t instanceof this}static metaForProperty(t){return P(this.proto(),t)._meta||{}}static eachComputedProperty(t,e=this){this.proto();let n={};_(this.prototype).forEachDescriptors((r,i)=>{if(i.enumerable){let s=i._meta||n;t.call(e,r,s)}})}static get PrototypeMixin(){let t=Ml.get(this);return void 0===t&&(t=_l.create(),t.ownerConstructor=this,Ml.set(this,t)),t}static get superclass(){let t=Object.getPrototypeOf(this);return t!==Function.prototype?t:void 0}static proto(){let t=this.prototype;if(!Pl.has(t)){Pl.add(t);let e=this.superclass;e&&e.proto(),Ml.has(this)&&this.PrototypeMixin.apply(t)}return t}static toString(){return`<${Xa(this)||"(unknown)"}:constructor>`}static isClass=!0;static isMethod=!1;static _onLookup;static _lazyInjections};function zl(...t){let e={};for(let n of t){let t=Object.keys(n);for(let r=0,i=t.length;rjl}),jl=_l.create({get(t){return hr(this,t)},getProperties(...t){return zr(this,...t)},set(t,e){return mr(this,t,e)},setProperties(t){return Dr(this,t)},beginPropertyChanges(){return Vn(),this},endPropertyChanges(){return Wn(),this},notifyPropertyChange(t){return qn(this,t),this},addObserver(t,e,n,r){return pn(this,t,e,n,r),this},removeObserver(t,e,n,r){return fn(this,t,e,n,r),this},hasObserverFor(t){return an(this,`${t}:change`)},incrementProperty(t,e=1){return mr(this,t,(parseFloat(hr(this,t))||0)+e)},decrementProperty(t,e=1){return mr(this,t,(hr(this,t)||0)-e)},toggleProperty(t){return mr(this,t,!hr(this,t))},cacheFor(t){let e=w(this);return null!==e?e.valueFor(t):void 0}}),Ul=a({action:()=>Vl,computed:()=>Xn,default:()=>Bl,defineProperty:()=>Dn,get:()=>hr,getProperties:()=>zr,notifyPropertyChange:()=>qn,observer:()=>Wl,set:()=>mr,setProperties:()=>Dr,trySet:()=>vr}),Bl=class extends(Fl.extend(jl)){get _debugContainerKey(){let t=Xa(this);return void 0!==t&&t.fullName}},$l=new WeakMap;function ql(t,e,n){var r;if(null!=(r=t)&&void 0!==r.constructor&&"function"==typeof r.constructor.proto&&t.constructor.proto(),!Object.prototype.hasOwnProperty.call(t,"actions")){let e=t.actions;t.actions=e?Object.assign({},e):{}}return t.actions[e]=n,{get(){let t=$l.get(this);void 0===t&&(t=new Map,$l.set(this,t));let e=t.get(n);return void 0===e&&(e=n.bind(this),t.set(n,e)),e}}}function Vl(...t){let e;if(!C(t)){e=t[0];let n=function(t,n){return ql(t,n,e)};return O(n),n}let[n,r,i]=t;return e=i?.value,ql(n,r,e)}function Wl(...t){let e,n,r,i=t.pop();"function"==typeof i?(e=i,n=t,r=!N._DEFAULT_ASYNC_OBSERVERS):(e=i.fn,n=i.dependentKeys,r=i.sync);let s=[];for(let o of n)Fn(o,t=>s.push(t));return Je(e,{paths:s,sync:r}),e}function Hl(t){if(!(t instanceof MouseEvent))return!1;let e=t.shiftKey||t.metaKey||t.altKey||t.ctrlKey,n=0!==t.button;return!e&&!n}function Gl(t){return'Binding style attributes may introduce cross-site scripting vulnerabilities; please ensure that values being bound are properly escaped. For more information, including how to disable this warning, see https://deprecations.emberjs.com/v1.x/#toc_binding-style-attributes. Style affected: "'+t+'"'}function Zl(t){let e=t.lookup("-view-registry:main"),n=[];return Object.keys(e).forEach(t=>{let r=e[t];null===r.parentView&&n.push(r)}),n}function Kl(t){return""!==t.tagName&&t.elementId?t.elementId:ll(t)}O(Vl);var Yl=new WeakMap,Xl=new WeakMap;function Jl(t){return Yl.get(t)||null}function Ql(t){return Xl.get(t)||null}function tc(t,e){Yl.set(t,e)}function ec(t,e){Xl.set(t,e)}function nc(t){Yl.delete(t)}function rc(t){Xl.delete(t)}var ic=new WeakMap;function sc(t){return function(t,e){let n=[],r=ic.get(t);return void 0!==r&&r.forEach(t=>{let r=e[t];!r||r.isDestroying||r.isDestroyed||n.push(r)}),n}(t,Br(t).lookup("-view-registry:main"))}function oc(t,e){let n=ic.get(t);void 0===n&&(n=function(t){let e=new Set;return ic.set(t,e),e}(t)),n.add(Kl(e))}function ac(t){return t.renderer.getBounds(t)}function lc(t){let e=ac(t),n=document.createRange();return n.setStartBefore(e.firstNode),n.setEndAfter(e.lastNode),n}function cc(t){return lc(t).getClientRects()}function uc(t){return lc(t).getBoundingClientRect()}var hc="ember-application",dc=class extends Bl{events={touchstart:"touchStart",touchmove:"touchMove",touchend:"touchEnd",touchcancel:"touchCancel",keydown:"keyDown",keyup:"keyUp",keypress:"keyPress",mousedown:"mouseDown",mouseup:"mouseUp",contextmenu:"contextMenu",click:"click",dblclick:"doubleClick",focusin:"focusIn",focusout:"focusOut",submit:"submit",input:"input",change:"change",dragstart:"dragStart",drag:"drag",dragenter:"dragEnter",dragleave:"dragLeave",dragover:"dragOver",drop:"drop",dragend:"dragEnd"};rootElement="body";_eventHandlers=Object.create(null);_didSetup=!1;finalEventNameMapping=null;_sanitizedRootElement=null;lazyEvents=new Map;_reverseEventNameMapping=null;setup(t,e){let n=this.finalEventNameMapping={...hr(this,"events"),...t};this._reverseEventNameMapping=Object.keys(n).reduce((t,e)=>{let r=n[e];return r?{...t,[r]:e}:t},{});let r=this.lazyEvents;null!=e&&mr(this,"rootElement",e);let i=hr(this,"rootElement"),s="string"!=typeof i?i:document.querySelector(i);s.classList.add(hc),this._sanitizedRootElement=s;for(let o in n)Object.prototype.hasOwnProperty.call(n,o)&&r.set(o,n[o]??null);this._didSetup=!0}setupHandlerForBrowserEvent(t){this.setupHandler(this._sanitizedRootElement,t,this.finalEventNameMapping[t]??null)}setupHandlerForEmberEvent(t){let e=this._reverseEventNameMapping?.[t];e&&this.setupHandler(this._sanitizedRootElement,e,t)}setupHandler(t,e,n){if(null===n||!this.lazyEvents.has(e))return;let r=(t,e)=>{let r=Jl(t),i=!0;return r&&(i=r.handleEvent(n,e)),i},i=this._eventHandlers[e]=t=>{let e=t.target;do{if(Jl(e)){if(!1===r(e,t)){t.preventDefault(),t.stopPropagation();break}if(!0===t.cancelBubble)break}e=e.parentNode}while(e instanceof Element)};t.addEventListener(e,i),this.lazyEvents.delete(e)}destroy(){if(!1===this._didSetup)return;let t=this._sanitizedRootElement;if(t){for(let e in this._eventHandlers)t.removeEventListener(e,this._eventHandlers[e]);return t.classList.remove(hc),this._super(...arguments)}}toString(){return"(EventDispatcher)"}},pc=/^[^:]+:[^:]+$/,fc=class{_failSet;resolver;fallback;registrations;_normalizeCache;_options;_resolveCache;_typeOptions;constructor(t={}){this.fallback=t.fallback||null,this.resolver=t.resolver||null,this.registrations=Mo(t.registrations||null),this._normalizeCache=Mo(null),this._resolveCache=Mo(null),this._failSet=new Set,this._options=Mo(null),this._typeOptions=Mo(null)}container(t){return new Va(this,t)}register(t,e,n={}){let r=this.normalize(t);this._failSet.delete(r),this.registrations[r]=e,this._options[r]=n}unregister(t){let e=this.normalize(t);delete this.registrations[e],delete this._resolveCache[e],delete this._options[e],this._failSet.delete(e)}resolve(t){let e=function(t,e){let n,r=e,i=t._resolveCache[r];return void 0!==i?i:t._failSet.has(r)?void 0:(t.resolver&&(n=t.resolver.resolve(r)),void 0===n&&(n=t.registrations[r]),void 0===n?t._failSet.add(r):t._resolveCache[r]=n,n)}(this,this.normalize(t));return void 0===e&&null!==this.fallback&&(e=this.fallback.resolve(t)),e}describe(t){return null!==this.resolver&&this.resolver.lookupDescription?this.resolver.lookupDescription(t):null!==this.fallback?this.fallback.describe(t):t}normalizeFullName(t){return null!==this.resolver&&this.resolver.normalize?this.resolver.normalize(t):null!==this.fallback?this.fallback.normalizeFullName(t):t}normalize(t){return this._normalizeCache[t]||(this._normalizeCache[t]=this.normalizeFullName(t))}makeToString(t,e){return null!==this.resolver&&this.resolver.makeToString?this.resolver.makeToString(t,e):null!==this.fallback?this.fallback.makeToString(t,e):"string"==typeof t?t:t.name??"(unknown class)"}has(t){return!!this.isValidFullName(t)&&function(t,e){return void 0!==t.resolve(e)}(this,this.normalize(t))}optionsForType(t,e){this._typeOptions[t]=e}getOptionsForType(t){let e=this._typeOptions[t];return void 0===e&&null!==this.fallback&&(e=this.fallback.getOptionsForType(t)),e}options(t,e){let n=this.normalize(t);this._options[n]=e}getOptions(t){let e=this.normalize(t),n=this._options[e];return void 0===n&&null!==this.fallback&&(n=this.fallback.getOptions(t)),n}getOption(t,e){let n=this._options[t];if(void 0!==n&&void 0!==n[e])return n[e];let r=t.split(":")[0];return n=this._typeOptions[r],n&&void 0!==n[e]?n[e]:null!==this.fallback?this.fallback.getOption(t,e):void 0}knownForType(t){let e,n,r=Mo(null),i=Object.keys(this.registrations);for(let s of i)s.split(":")[0]===t&&(r[s]=!0);return null!==this.fallback&&(e=this.fallback.knownForType(t)),null!==this.resolver&&this.resolver.knownForType&&(n=this.resolver.knownForType(t)),Object.assign({},e,r,n)}isValidFullName(t){return pc.test(t)}},gc=Mo(null),mc=`${Math.random()}${Date.now()}`.replace(".","");function yc([t]){let e=gc[t];if(e)return e;let[n,r]=t.split(":");return gc[t]=tl(`${n}:${r}-${mc}`)}var vc=a({default:()=>bc,on:()=>ln}),bc=_l.create({on(t,e,n){return rn(this,t,e,n),this},one(t,e,n){return rn(this,t,e,n,!0),this},trigger(t,...e){on(this,t,e)},off(t,e,n){return sn(this,t,e,n),this},has(t){return an(this,t)}}),wc=_l.create(),_c=a({default:()=>xc}),xc=_l.create(wc),Cc={"[object Boolean]":"boolean","[object Number]":"number","[object String]":"string","[object Function]":"function","[object AsyncFunction]":"function","[object Array]":"array","[object Date]":"date","[object RegExp]":"regexp","[object Object]":"object","[object FileList]":"filelist"},{toString:Sc}=Object.prototype;function kc(t){if(null===t)return"null";if(void 0===t)return"undefined";let e=Cc[Sc.call(t)]||"object";return"function"===e?Fl.detect(t)&&(e="class"):"object"===e&&(t instanceof Error?e="error":t instanceof Fl?e="instance":t instanceof Date&&(e="date")),e}var Ec=_l.create({compare:null}),Rc={undefined:0,null:1,boolean:2,number:3,string:4,array:5,object:6,instance:7,function:8,class:9,date:10,regexp:11,filelist:12,error:13};function Tc(t,e){return Math.sign(t-e)}function Lc(t,e){if(t===e)return 0;let n=kc(t),r=kc(e);if("instance"===n&&Ic(t)&&t.constructor.compare)return t.constructor.compare(t,e);if("instance"===r&&Ic(e)&&e.constructor.compare)return-1*e.constructor.compare(e,t);let i=Tc(Rc[n],Rc[r]);if(0!==i)return i;switch(n){case"boolean":return Tc(Number(t),Number(e));case"number":return Tc(t,e);case"string":return Tc(t.localeCompare(e),0);case"array":{let n=t.length,r=e.length,i=Math.min(n,r);for(let s=0;sYc,MutableArray:()=>Gc,NativeArray:()=>Zc,default:()=>Hc,isArray:()=>Pc,makeArray:()=>Rl,removeAt:()=>$c,uniqBy:()=>Nc}),Ac=Object.freeze([]),Oc=t=>t;function Nc(t,e=Oc){let n=Yc(),r=new Set,i="function"==typeof e?e:t=>hr(t,e);return t.forEach(t=>{let e=i(t);r.has(e)||(r.add(e),n.push(t))}),n}function Fc(...t){let e=2===t.length,[n,r]=t;return e?t=>r===hr(t,n):t=>Boolean(hr(t,n))}function zc(t,e,n){let r=t.length;for(let i=n;i!r(t,e,n),0)}function Bc(t,e,n=0,r){let i=t.length;return n<0&&(n+=i),zc(t,r&&e!=e?t=>t!=t:t=>t===e,n)}function $c(t,e,n){return Rr(t,e,n??1,Ac),t}function qc(t,e,n){return Rr(t,e,0,[n]),n}function Vc(t){let e=Xn(t);return e.enumerable=!1,e}function Wc(t){return this.map(e=>hr(e,t))}var Hc=_l.create(wc,{init(){this._super(...arguments),ir.add(this)},objectsAt(t){return t.map(t=>Me(this,t))},"[]":Vc({get(){return this},set(t,e){return this.replace(0,this.length,e),this}}),firstObject:Vc(function(){return Me(this,0)}).readOnly(),lastObject:Vc(function(){return Me(this,this.length-1)}).readOnly(),slice(t=0,e){let n,r=Yc(),i=this.length;for(t<0&&(t=i+t),n=void 0===e||e>i?i:e<0?i+e:e;t=n)&&(e=n-1),e<0&&(e+=n);for(let r=e;r>=0;r--)if(Me(this,r)===t)return r;return-1},forEach(t,e=null){let n=this.length;for(let r=0;rmr(n,t,e))},map(t,e=null){let n=Yc();return this.forEach((r,i,s)=>n[i]=t.call(e,r,i,s)),n},mapBy:Wc,filter(t,e=null){let n=Yc();return this.forEach((r,i,s)=>{t.call(e,r,i,s)&&n.push(r)}),n},reject(t,e=null){return this.filter(function(){return!t.apply(e,arguments)})},filterBy(){return this.filter(Fc(...arguments))},rejectBy(){return this.reject(Fc(...arguments))},find(t,e=null){return Dc(this,t,e)},findBy(){return Dc(this,Fc(...arguments))},every(t,e=null){return Uc(this,t,e)},isEvery(){return Uc(this,Fc(...arguments))},any(t,e=null){return jc(this,t,e)},isAny(){return jc(this,Fc(...arguments))},reduce(t,e){let n=e,r=0;if(!(arguments.length>1)){if(0===this.length)throw new TypeError("Reduce of empty array with no initial value");n=this.objectAt(0),r=1}for(let i=r;in.push(r[t]?.(...e))),n},toArray(){return this.map(t=>t)},compact(){return this.filter(t=>null!=t)},includes(t,e){return-1!==Bc(this,t,e,!0)},sortBy(){let t=arguments;return this.toArray().sort((e,n)=>{for(let r=0;re!==t:t=>t==t;return this.filter(e)}}),Gc=_l.create(Hc,xc,{clear(){let t=this.length;return 0===t||this.replace(0,t,Ac),this},insertAt(t,e){return qc(this,t,e),this},removeAt(t,e){return $c(this,t,e)},pushObject(t){return qc(this,this.length,t)},pushObjects(t){return this.replace(this.length,0,t),this},popObject(){let t=this.length;if(0===t)return null;let e=Me(this,t-1);return this.removeAt(t-1,1),e},shiftObject(){if(0===this.length)return null;let t=Me(this,0);return this.removeAt(0),t},unshiftObject(t){return qc(this,0,t)},unshiftObjects(t){return this.replace(0,0,t),this},reverseObjects(){let t=this.length;if(0===t)return this;let e=this.toArray().reverse();return this.replace(0,t,e),this},setObjects(t){if(0===t.length)return this.clear();let e=this.length;return this.replace(0,e,t),this},removeObject(t){let e=this.length||0;for(;--e>=0;)Me(this,e)===t&&this.removeAt(e);return this},removeObjects(t){Vn();for(let e=t.length-1;e>=0;e--)this.removeObject(t[e]);return Wn(),this},addObject(t){return this.includes(t)||this.pushObject(t),this},addObjects(t){return Vn(),t.forEach(t=>this.addObject(t)),Wn(),this}}),Zc=_l.create(Gc,jl,{objectAt(t){return this[t]},replace(t,e,n=Ac){return Lr(this,t,e,n),this}}),Kc=["length"];Zc.keys().forEach(t=>{Array.prototype[t]&&Kc.push(t)}),Zc=Zc.without(...Kc);var Yc=function(t){return sr(t)?t:Zc.apply(t??[])},Xc=class extends Bl{},Jc=a({ControllerMixin:()=>tu,default:()=>eu,inject:()=>nu}),Qc=Symbol("MODEL"),tu=_l.create(kl,{isController:!0,concatenatedProperties:["queryParams"],target:null,store:null,init(){this._super(...arguments);let t=Br(this);t&&(this.namespace=t.lookup("application:main"),this.target=t.lookup("router:main"))},model:Xn({get(){return this[Qc]},set(t,e){return this[Qc]=e}}),queryParams:null,_qpDelegate:null,_qpChanged(t,e){let n=e.indexOf(".[]"),r=-1===n?e:e.slice(0,n);(0,t._qpDelegate)(r,hr(t,r))}}),eu=class extends(Xc.extend(tu)){};function nu(...t){return qr("controller",...t)}var ru=!1;function iu(){return ru}function su(t){ru=Boolean(t)}var ou=Symbol("ENGINE_PARENT");function au(t){return t[ou]}var lu=_l.create({__container__:null,ownerInjection(){return this.__container__.ownerInjection()},lookup(t,e){return this.__container__.lookup(t,e)},destroy(){let t=this.__container__;t&&xs(()=>{t.destroy(),Es("destroy",t,"finalizeDestroy")}),this._super()},factoryFor(t){return this.__container__.factoryFor(t)}}),cu=_l.create({__registry__:null,resolveRegistration(t){return this.__registry__.resolve(t)},register:uu("register"),unregister:uu("unregister"),hasRegistration:uu("has"),registeredOption:uu("getOption"),registerOptions:uu("options"),registeredOptions:uu("getOptions"),registerOptionsForType:uu("optionsForType"),registeredOptionsForType:uu("getOptionsForType")});function uu(t){return function(...e){return this.__registry__[t](...e)}}var hu=class extends(Bl.extend(cu,lu)){static setupRegistry(t,e){}[ou];_booted=!1;init(t){super.init(t),ll(this),this.base??=this.application;let e=this.__registry__=new fc({fallback:this.base.__registry__});this.__container__=e.container({owner:this}),this._booted=!1}_bootPromise=null;boot(t){return this._bootPromise||(this._bootPromise=new $a.Promise(e=>{e(this._bootSync(t))})),this._bootPromise}_bootSync(t){return this._booted||(this.cloneParentDependencies(),this.setupRegistry(t),this.base.runInstanceInitializers(this),this._booted=!0),this}setupRegistry(t=this.__container__.lookup("-environment:main")){this.constructor.setupRegistry(this.__registry__,t)}unregister(t){this.__container__.reset(t),this.__registry__.unregister(t)}buildChildEngineInstance(t,e={}){let n=this.lookup(`engine:${t}`);if(!n)throw new Error(`You attempted to mount the engine '${t}', but it is not registered with its parent.`);let r=n.buildInstance(e);return r[ou]=this,r}cloneParentDependencies(){const t=au(this);["route:basic","service:-routing"].forEach(e=>{let n=t.resolveRegistration(e);this.register(e,n)});let e=t.lookup("-environment:main");this.register("-environment:main",e,{instantiate:!1});let n=["router:main",yc`-bucket-cache:main`,"-view-registry:main","renderer:-dom","service:-document"];e.isInteractive&&n.push("event_dispatcher:main"),n.forEach(e=>{let n=t.lookup(e);this.register(e,n,{instantiate:!1})})}},du=function(t,e,n){let{get:r}=n;return void 0!==r&&(n.get=function(){let t,n=Kt(this,e),i=Vt(()=>{t=r.call(this)});return ft(n,i),Ft(i),t}),n};function pu(...t){if(C(t)){let[e,n,r]=t;return du(0,n,r)}{const e=t[0];let n=function(t,n){return du(0,n,e)};return O(n),n}}O(pu);var fu={Empty:0,dynamicLayout:1,dynamicTag:2,prepareArgs:4,createArgs:8,attributeHook:16,elementHook:32,dynamicScope:64,createCaller:128,updateHook:256,createInstance:512,wrapped:1024,willDestroy:2048,hasSubOwner:4096},gu=fu.Empty;function mu(t){return gu|yu(t,"dynamicLayout")|yu(t,"dynamicTag")|yu(t,"prepareArgs")|yu(t,"createArgs")|yu(t,"attributeHook")|yu(t,"elementHook")|yu(t,"dynamicScope")|yu(t,"createCaller")|yu(t,"updateHook")|yu(t,"createInstance")|yu(t,"wrapped")|yu(t,"willDestroy")|yu(t,"hasSubOwner")}function yu(t,e){return t[e]?fu[e]:gu}function vu(t,e,n){return!!(e&n)}function bu(t,e){return!!(t&e)}function wu(t,e={}){return{hasValue:Boolean(e.hasValue),hasDestroyable:Boolean(e.hasDestroyable),hasScheduledEffect:Boolean(e.hasScheduledEffect)}}function _u(t){return t.capabilities.hasValue}function xu(t){return t.capabilities.hasDestroyable}var Cu=class{constructor(t){this.factory=t}helperManagerDelegates=new WeakMap;undefinedDelegate=null;getDelegateForOwner(t){let e=this.helperManagerDelegates.get(t);if(void 0===e){let{factory:n}=this;e=n(t),this.helperManagerDelegates.set(t,e)}return e}getDelegateFor(t){if(void 0===t){let{undefinedDelegate:t}=this;if(null===t){let{factory:e}=this;this.undefinedDelegate=t=e(void 0)}return t}return this.getDelegateForOwner(t)}getHelper(t){return(e,n)=>{let r=this.getDelegateFor(n);const i=Pe(e),s=r.createHelper(t,i);if(_u(r)){let t=ge(()=>r.getValue(s),null);return xu(r)&&tt(t,r.getDestroyable(s)),t}if(xu(r)){let t=pe(void 0);return tt(t,r.getDestroyable(s)),t}return ce}}},Su=class{capabilities={hasValue:!0,hasDestroyable:!1,hasScheduledEffect:!1};createHelper(t,e){return{fn:t,args:e}}getValue({fn:t,args:e}){return Object.keys(e.named).length>0?t(...e.positional,e.named):t(...e.positional)}getDebugName(t){return t.name?`(helper function ${t.name})`:"(anonymous helper function)"}},ku=new WeakMap,Eu=new WeakMap,Ru=new WeakMap,Tu=Object.getPrototypeOf;function Lu(t,e,n){return t.set(n,e),n}function Iu(t,e){let n=e;for(;null!==n;){const e=t.get(n);if(void 0!==e)return e;n=Tu(n)}}function Pu(t,e){return Lu(Eu,t,e)}function Mu(t){const e=Iu(Eu,t);return void 0===e?null:e}function Au(t,e){return Lu(Ru,t,e)}var Ou=new Cu(()=>new Su);function Nu(t){let e=Iu(Ru,t);return void 0===e&&"function"==typeof t&&(e=Ou),e||null}function Fu(t,e){return Lu(ku,t,e)}function zu(t){const e=Iu(ku,t);return void 0===e?null:e}function Du(t){return void 0!==Iu(ku,t)}function ju(t){return function(t){return"function"==typeof t}(t)||void 0!==Iu(Ru,t)}function Uu(t){return void 0!==Iu(Eu,t)}var Bu=Object.create;function $u(){var t=Bu(null);return t.__=void 0,delete t.__,t}var qu=function(t,e,n){this.path=t,this.matcher=e,this.delegate=n};qu.prototype.to=function(t,e){var n=this.delegate;if(n&&n.willAddRoute&&(t=n.willAddRoute(this.matcher.target,t)),this.matcher.add(this.path,t),e){if(0===e.length)throw new Error("You must have an argument in the function passed to `to`");this.matcher.addChild(this.path,t,e,this.delegate)}};var Vu=function(t){this.routes=$u(),this.children=$u(),this.target=t};function Wu(t,e,n){return function(r,i){var s=t+r;if(!i)return new qu(s,e,n);i(Wu(s,e,n))}}function Hu(t,e,n){for(var r=0,i=0;i0&&47===e.charCodeAt(0)&&(e=e.substr(1));for(var r=e.split("/"),i=void 0,s=void 0,o=0;o2&&"[]"===s.slice(o-2)&&(a=!0,n[s=s.slice(0,o-2)]||(n[s]=[])),l=i[1]?fh(i[1]):""),a?n[s].push(l):n[s]=l}return n},gh.prototype.recognize=function(t){var e,n=[this.rootState],r={},i=!1,s=t.indexOf("#");-1!==s&&(t=t.substr(0,s));var o=t.indexOf("?");if(-1!==o){var a=t.substr(o+1,t.length);t=t.substr(0,o),r=this.parseQueryString(a)}"/"!==t.charAt(0)&&(t="/"+t);var l=t;gh.ENCODE_AND_DECODE_PATH_SEGMENTS?t=Zu(t):(t=decodeURI(t),l=decodeURI(l));var c=t.length;c>1&&"/"===t.charAt(c-1)&&(t=t.substr(0,c-1),l=l.substr(0,l.length-1),i=!0);for(var u=0;u0){let i=t[r-1];if(function(t){if(t&&"object"==typeof t){let e=t;return"queryParams"in e&&Object.keys(e.queryParams).every(t=>"string"==typeof t)}return!1}(i))return n=i.queryParams,e=vh.call(t,0,r-1),[e,n]}return[t,null]}function xh(t){for(let e in t){let n=t[e];if("number"==typeof n)t[e]=String(n);else if(Array.isArray(n))for(let t=0,e=n.length;t{throw this.router.transitionDidError(t,this)},Th("Handle Abort"))}else this.promise=ia.resolve(this[Lh]),this[Ih]={}}then(t,e,n){return this.promise.then(t,e,n)}catch(t,e){return this.promise.catch(t,e)}finally(t,e){return this.promise.finally(t,e)}abort(){this.rollback();let e=new t(this.router,void 0,void 0,void 0);return e.to=this.from,e.from=this.from,e.isAborted=!0,this.router.routeWillChange(e),this.router.routeDidChange(e),this}rollback(){this.isAborted||(Ch(this.router,this.sequence,this.targetName+": transition was aborted"),void 0!==this.intent&&null!==this.intent&&(this.intent.preTransitionState=this.router.state),this.isAborted=!0,this.isActive=!1,this.router.activeTransition=void 0)}redirect(t){this[Mh]=t,this.rollback(),this.router.routeWillChange(t)}retry(){this.abort();let t=this.router.transitionByIntent(this.intent,!1);return null!==this.urlMethod&&t.method(this.urlMethod),t}method(t){return this.urlMethod=t,this}send(t=!1,e,n,r,i){this.trigger(t,e,n,r,i)}trigger(t=!1,e,...n){"string"==typeof t&&(e=t,t=!1),this.router.triggerEvent(this[Lh].routeInfos.slice(0,this.resolveIndex+1),t,e,n)}followRedirects(){return this.promise.catch(t=>this[Mh]?this[Mh].followRedirects():ia.reject(t))}toString(){return"Transition (sequence "+this.sequence+")"}log(t){Ch(this.router,this.sequence,t)}};function Oh(t){return Ch(t.router,t.sequence,"detected abort."),mh()}function Nh(t){return"object"==typeof t&&t instanceof Ah&&t.isTransition}var Fh=function(){function t(e){let n=Error.call(this,e);this.name="UnrecognizedURLError",this.message=e||"UnrecognizedURL",Error.captureStackTrace?Error.captureStackTrace(this,t):this.stack=n.stack}return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t}();function zh(t,e){let n=t.factoryFor("controller:basic").class;n=class extends n{toString(){return`(generated ${e} controller)`}};let r=`controller:${e}`;return t.register(r,n),t.factoryFor(r)}function Dh(t,e){zh(t,e);let n=`controller:${e}`;return t.lookup(n)}var jh=/\./g;function Uh(t){let e,n,r=(t=t.slice())[t.length-1];return function(t){if(t&&"object"==typeof t){let e=t.queryParams;if(e&&"object"==typeof e)return Object.keys(e).every(t=>"string"==typeof t)}return!1}(r)?(t.pop(),e=r.queryParams):e={},"string"==typeof t[0]&&(n=t.shift()),{routeName:n,models:t,queryParams:e}}function Bh(t,e){if(e._namesStashed)return;let n,r=e[e.length-1].name,i=t._routerMicrolib.recognizer.handlersFor(r);for(let s=0;s(t[e]=n,t),s)}serializeQueryParamKey(t){return t}serializeQueryParam(t,e,n){return this._router._serializeQueryParam(t,n)}deserializeQueryParam(t,e,n){return this._router._deserializeQueryParam(t,n)}_optionsForQueryParam(t){const e=hr(this,"queryParams");return hr(e,t.urlKey)||hr(e,t.prop)||e[t.urlKey]||e[t.prop]||{}}resetController(t,e,n){return this}exit(t){this.deactivate(t),this.trigger("deactivate",t),this.teardownViews()}_internalReset(t,e){let n=this.controller;n._qpDelegate=hr(this,"_qp").states.inactive,this.resetController(n,t,e)}enter(t){this[Jh]=void 0,this.activate(t),this.trigger("activate",t)}deactivate(t){}activate(t){}intermediateTransitionTo(...t){let[e,...n]=function(t,e){let n,r=Br(t),i=r.mountPoint;if(r.routable&&"string"==typeof e[0]){if(n=e[0],Wh(n))throw new Error("Programmatic transitions by URL cannot be used within an Engine. Please use the route name instead.");n=`${i}.${n}`,e[0]=n}return e}(this,t);this._router.intermediateTransitionTo(e,...n)}refresh(){return this._router._routerMicrolib.refresh(this)}setup(t,e){let n=this.controllerName||this.routeName,r=this.controllerFor(n,!0)??this.generateController(n),i=hr(this,"_qp");if(!this.controller){let t=i.propertyNames;!function(t,e){e.forEach(e=>{if(void 0===P(t,e)){let n=gr(t,e);null===n||"function"!=typeof n.get&&"function"!=typeof n.set||Dn(t,e,pu({get:n.get,set:n.set}))}pn(t,`${e}.[]`,t,t._qpChanged,!1)})}(r,t),this.controller=r}if(r._qpDelegate=i.states.allowOverrides,e){Bh(this._router,e[Lh].routeInfos);let t=this._bucketCache,n=e[Ih];i.propertyNames.forEach(e=>{let s=i.map[e];s.values=n;let o=qh(s.route.fullRouteName,s.parts,s.values),a=t.lookup(o,e,s.undecoratedDefaultValue);mr(r,e,a)});let s=nd(this,e[Lh]);Dr(r,s)}this.setupController(r,t,e),this._environment.options.shouldRender&&this[Xh](),_n(!1)}_qpChanged(t,e,n){if(!n)return;let r=this._bucketCache,i=qh(n.route.fullRouteName,n.parts,n.values);r.stash(i,t,e)}beforeModel(t){}afterModel(t,e){}redirect(t,e){}contextDidChange(){this.currentModel=this.context}model(t,e){let n,r,i=hr(this,"_qp").map;for(let s in t){if("queryParams"===s||i&&s in i)continue;let t=s.match(/^(.*)_id$/);null!==t&&(n=t[1]),r=!0}if(!n){if(r)return Object.assign({},t);if(e.resolveIndex<1)return;return e[Lh].routeInfos[e.resolveIndex-1].context}}deserialize(t,e){return this.model(this._paramsFor(this.routeName,t),e)}setupController(t,e,n){t&&void 0!==e&&mr(t,"model",e)}controllerFor(t,e=!1){let n=Br(this),r=n.lookup(`route:${t}`);return r&&r.controllerName&&(t=r.controllerName),n.lookup(`controller:${t}`)}generateController(t){return Dh(Br(this),t)}modelFor(t){let e,n=Br(this),r=this._router&&this._router._routerMicrolib?this._router._routerMicrolib.activeTransition:void 0;e=n.routable&&void 0!==r?id(n,t):t;let i=n.lookup(`route:${e}`);if(null!=r){let t=i&&i.routeName||e;if(Object.prototype.hasOwnProperty.call(r.resolvedModels,t))return r.resolvedModels[t]}return i?.currentModel}[Jh]=void 0;[Xh](){this[Jh]=function(t){let e,n=Br(t),r=t.routeName,i=n.lookup(`controller:${t.controllerName||r}`),s=t.currentModel,o=n.lookup(`template:${t.templateName||r}`);return e=o?Du(o)?o:o(n):t._topLevelViewTemplate(n),{owner:n,name:r,controller:i,model:s,template:e}}(this),Is(this._router,"_setOutlets")}willDestroy(){this.teardownViews()}teardownViews(){this[Jh]&&(this[Jh]=void 0,Is(this._router,"_setOutlets"))}buildRouteInfoMetadata(){}_paramsFor(t,e){return void 0!==this._router._routerMicrolib.activeTransition?this.paramsFor(t):e}get _store(){const t=Br(this);return this.routeName,{find(e,n){let r=t.factoryFor(`model:${e}`);if(r)return r=r.class,r.find(n)}}}static{Kh(this.prototype,"_store",[Xn])}get _qp(){let t={},e=this.controllerName||this.routeName,n=Br(this),r=n.lookup(`controller:${e}`),i=hr(this,"queryParams"),s=Object.keys(i).length>0;r?t=function(t,e){let n={},r={defaultValue:!0,type:!0,scope:!0,as:!0};for(let i in t)Object.prototype.hasOwnProperty.call(t,i)&&(n[i]={...t[i],...e[i]},r[i]=!0);for(let i in e)Object.prototype.hasOwnProperty.call(e,i)&&!r[i]&&(n[i]={...e[i],...t[i]});return n}(function(t){let e={};for(let n of t)Vh(n,e);return e}(hr(r,"queryParams")||[]),i):s&&(r=Dh(n,e),t=i);let o=[],a={},l=[];for(let c in t){if(!Object.prototype.hasOwnProperty.call(t,c))continue;if("unknownProperty"===c||"_super"===c)continue;let n,i=t[c],s=i.scope||"model";"controller"===s&&(n=[]);let u=i.as||this.serializeQueryParamKey(c),h=hr(r,c);h=rd(h);let d=i.type||kc(h),p=this.serializeQueryParam(h,u,d),f=`${e}:${c}`,g={undecoratedDefaultValue:hr(r,c),defaultValue:h,serializedDefaultValue:p,serializedValue:p,type:d,urlKey:u,prop:c,scopedPropertyName:f,controllerName:e,route:this,parts:n,values:null,scope:s};a[c]=a[u]=a[f]=g,o.push(g),l.push(c)}return{qps:o,map:a,propertyNames:l,states:{inactive:(t,e)=>{let n=a[t];this._qpChanged(t,e,n)},active:(t,e)=>{let n=a[t];return this._qpChanged(t,e,n),this._activeQPChanged(n,e)},allowOverrides:(t,e)=>{let n=a[t];return this._qpChanged(t,e,n),this._updatingQPChanged(n)}}}}static{Kh(this.prototype,"_qp",[Xn])}};function td(t){return t[Jh]}function ed(t,e){if(e.fullQueryParams)return e.fullQueryParams;let n=e.routeInfos.every(t=>t.route),r={...e.queryParams};return t._deserializeQueryParams(e.routeInfos,r),n&&(e.fullQueryParams=r),r}function nd(t,e){e.queryParamsFor=e.queryParamsFor||{};let n=t.fullRouteName,r=e.queryParamsFor[n];if(r)return r;let i=ed(t._router,e),s=e.queryParamsFor[n]={},o=hr(t,"_qp").qps;for(let a of o){let t=a.prop in i;s[a.prop]=t?i[a.prop]:rd(a.defaultValue)}return s}function rd(t){return Array.isArray(t)?Yc(t.slice()):t}function id(t,e){if(t.routable){let n=t.mountPoint;return"application"===e?n:`${n}.${e}`}return e}var sd=Qh.prototype.serialize;Qh.reopen({mergedProperties:["queryParams"],queryParams:{},templateName:null,controllerName:null,send(...t){if(this._router&&this._router._routerMicrolib||!iu())this._router.send(...t);else{let e=t.shift(),n=this.actions[e];if(n)return n.apply(this,t)}},actions:{queryParamsDidChange(t,e,n){let r=hr(this,"_qp").map,i=Object.keys(t).concat(Object.keys(n));for(let s of i){let t=r[s];if(t&&hr(this._optionsForQueryParam(t),"refreshModel")&&this._router.currentState){this.refresh();break}}return!0},finalizeQueryParamChange(t,e,n){if("application"!==this.fullRouteName)return!0;if(!n)return;let r,i=n[Lh].routeInfos,s=this._router,o=s._queryParamsFor(i),a=s._qpUpdates,l=!1;Bh(s,i);for(let c of o.qps){let i,s,o=c.route,u=o.controller,h=c.urlKey in t&&c.urlKey;if(a.has(c.urlKey)?(i=hr(u,c.prop),s=o.serializeQueryParam(i,c.urlKey,c.type)):h?(s=t[h],void 0!==s&&(i=o.deserializeQueryParam(s,c.urlKey,c.type))):(s=c.serializedDefaultValue,i=rd(c.defaultValue)),u._qpDelegate=hr(o,"_qp").states.inactive,s!==c.serializedValue){if(n.queryParamsOnly&&!1!==r){let t=hr(o._optionsForQueryParam(c),"replace");t?r=!0:!1===t&&(r=!1)}mr(u,c.prop,i),l=!0}c.serializedValue=s,c.serializedDefaultValue!==s&&e.push({value:s,visible:!0,key:h||c.urlKey})}!0===l&&_n(!1),r&&n.method("replace"),o.qps.forEach(t=>{let e=hr(t.route,"_qp");t.route.controller._qpDelegate=hr(e,"states.active")}),s._qpUpdates.clear()}}});var od=0;function ad(t){return"function"==typeof t}var ld=class t{parent;matches;enableLoadingSubstates;explicitIndex=!1;options;constructor(t=null,e){this.parent=t,this.enableLoadingSubstates=Boolean(e&&e.enableLoadingSubstates),this.matches=[],this.options=e}route(e,n,r){let i,s=null,o=`/_unused_dummy_error_path_route_${e}/:error`;if(ad(n)?(i={},s=n):ad(r)?(i=n,s=r):i=n||{},this.enableLoadingSubstates&&(ud(this,`${e}_loading`,{resetNamespace:i.resetNamespace}),ud(this,`${e}_error`,{resetNamespace:i.resetNamespace,path:o})),s){let n=cd(this,e,i.resetNamespace),r=new t(n,this.options);ud(r,"loading"),ud(r,"error",{path:o}),s.call(r),ud(this,e,i,r.generate())}else ud(this,e,i)}push(t,e,n,r){let i=e.split(".");if(this.options.engineInfo){let t=e.slice(this.options.engineInfo.fullName.length+1),n=Object.assign({localFullName:t},this.options.engineInfo);r&&(n.serializeMethod=r),this.options.addRouteForEngine(e,n)}else if(r)throw new Error(`Defining a route serializer on route '${e}' outside an Engine is not allowed.`);""!==t&&"/"!==t&&"index"!==i[i.length-1]||(this.explicitIndex=!0),this.matches.push(t,e,n)}generate(){let t=this.matches;return this.explicitIndex||this.route("index",{path:"/"}),e=>{for(let n=0;n0){let i=Object.assign({},n);return this.emberRouter._prepareQueryParams(t,e,i),Hh(i,r.queryParams)}return!0}},dd=new WeakMap;function pd(t,e={},n={includeAttributes:!1,localizeMapUpdates:!1}){const r=new WeakMap;return t.map((i,s)=>{let{name:o,params:a,paramNames:l,context:c,route:u}=i,h=i;if(dd.has(h)&&n.includeAttributes){let t=dd.get(h);t=function(t,e){let n={get metadata(){return gd(t)}};return!Object.isExtensible(e)||e.hasOwnProperty("metadata")?Object.freeze(Object.assign({},e,n)):Object.assign(e,n)}(u,t);let e=fd(t,c);return r.set(h,t),n.localizeMapUpdates||dd.set(h,e),e}const d=n.localizeMapUpdates?r:dd;let p={find(e,n){let r,i=[];3===e.length&&(i=t.map(t=>d.get(t)));for(let s=0;t.length>s;s++)if(r=d.get(t[s]),e.call(n,r,s,i))return r},get name(){return o},get paramNames(){return l},get metadata(){return gd(i.route)},get parent(){let e=t[s-1];return void 0===e?null:d.get(e)},get child(){let e=t[s+1];return void 0===e?null:d.get(e)},get localName(){let t=this.name.split(".");return t[t.length-1]},get params(){return a},get queryParams(){return e}};return n.includeAttributes&&(p=fd(p,c)),r.set(i,p),n.localizeMapUpdates||dd.set(i,p),p})}function fd(t,e){let n={get attributes(){return e}};return!Object.isExtensible(t)||t.hasOwnProperty("attributes")?Object.freeze(Object.assign({},t,n)):Object.assign(t,n)}function gd(t){return null!=t&&void 0!==t.buildRouteInfoMetadata?t.buildRouteInfoMetadata():null}var md=class{_routePromise=void 0;_route=null;router;params={};isResolved=!1;constructor(t,e,n,r){this.name=e,this.paramNames=n,this.router=t,r&&this._processRoute(r)}getModel(t){return ia.resolve(this.context)}serialize(t){return this.params||{}}resolve(t){return ia.resolve(this.routePromise).then(e=>(yh(t),e)).then(()=>this.runBeforeModelHook(t)).then(()=>yh(t)).then(()=>this.getModel(t)).then(e=>(yh(t),e)).then(e=>this.runAfterModelHook(t,e)).then(e=>this.becomeResolved(t,e))}becomeResolved(t,e){let n,r=this.serialize(e);t&&(this.stashResolvedModel(t,e),t[Ih]=t[Ih]||{},t[Ih][this.name]=r);let i=e===this.context;!("context"in this)&&i||(n=e);let s=dd.get(this),o=new yd(this.router,this.name,this.paramNames,r,this.route,n);return void 0!==s&&dd.set(o,s),o}shouldSupersede(t){if(!t)return!0;let e=t.context===this.context;return t.name!==this.name||"context"in this&&!e||this.hasOwnProperty("params")&&!function(t,e){if(t===e)return!0;if(!t||!e)return!1;for(let n in t)if(t.hasOwnProperty(n)&&t[n]!==e[n])return!1;return!0}(this.params,t.params)}get route(){return null!==this._route?this._route:this.fetchRoute()}set route(t){this._route=t}get routePromise(){return this._routePromise||this.fetchRoute(),this._routePromise}set routePromise(t){this._routePromise=t}log(t,e){t.log&&t.log(this.name+": "+e)}updateRoute(t){return t._internalName=this.name,this.route=t}runBeforeModelHook(t){let e;return t.trigger&&t.trigger(!0,"willResolveModel",t,this.route),this.route&&void 0!==this.route.beforeModel&&(e=this.route.beforeModel(t)),Nh(e)&&(e=null),ia.resolve(e)}runAfterModelHook(t,e){let n,r=this.name;var i;return this.stashResolvedModel(t,e),void 0!==this.route&&void 0!==this.route.afterModel&&(n=this.route.afterModel(e,t)),n=Nh(i=n)?null:i,ia.resolve(n).then(()=>t.resolvedModels[r])}stashResolvedModel(t,e){t.resolvedModels=t.resolvedModels||{},t.resolvedModels[this.name]=e}fetchRoute(){let t=this.router.getRoute(this.name);return this._processRoute(t)}_processRoute(t){return this.routePromise=ia.resolve(t),function(t){return null!==t&&"object"==typeof t&&"function"==typeof t.then}(t)?(this.routePromise=this.routePromise.then(t=>this.updateRoute(t)),void(this.route=void 0)):t?this.updateRoute(t):void 0}},yd=class extends md{isResolved;context;constructor(t,e,n,r,i,s){super(t,e,n,i),this.params=r,this.isResolved=!0,this.context=s}resolve(t){return t&&t.resolvedModels&&(t.resolvedModels[this.name]=this.context),ia.resolve(this)}},vd=class extends md{params={};constructor(t,e,n,r,i){super(t,e,n,i),r&&(this.params=r)}getModel(t){let e=this.params;t&&t[Ph]&&(e={},wh(e,this.params),e.queryParams=t[Ph]);let n,r=this.route;return r.deserialize?n=r.deserialize(e,t):r.model&&(n=r.model(e,t)),n&&Nh(n)&&(n=void 0),ia.resolve(n)}},bd=class extends md{serializer;constructor(t,e,n,r){super(t,e,n),this.context=r,this.serializer=this.router.getSerializer(e)}getModel(t){return void 0!==this.router.log&&this.router.log(this.name+": resolving provided model"),super.getModel(t)}serialize(t){let{paramNames:e,context:n}=this;t||(t=n);let r={};if(Sh(t))return r[e[0]]=t,r;if(this.serializer)return this.serializer.call(null,t,e);if(void 0!==this.route&&this.route.serialize)return this.route.serialize(t,e);if(1!==e.length)return;let i=e[0];return/_id$/.test(i)?r[i]=t.id:r[i]=t,r}},wd=class{data;router;constructor(t,e={}){this.router=t,this.data=e}preTransitionState};function _d(t,e,n){let r=t.routeInfos,i=e.resolveIndex>=r.length?r.length-1:e.resolveIndex,s=e.isAborted;throw new kd(n,t.routeInfos[i].route,s,t)}function xd(t,e){if(e.resolveIndex===t.routeInfos.length)return;let n=t.routeInfos[e.resolveIndex],r=Cd.bind(null,t,e);return n.resolve(e).then(r,null,t.promiseLabel("Proceed"))}function Cd(t,e,n){let r=t.routeInfos[e.resolveIndex].isResolved;if(t.routeInfos[e.resolveIndex++]=n,!r){let{route:t}=n;void 0!==t&&t.redirect&&t.redirect(n.context,e)}return yh(e),xd(t,e)}var Sd=class{routeInfos=[];queryParams={};params={};promiseLabel(t){let e="";return kh(this.routeInfos,function(t){return""!==e&&(e+="."),e+=t.name,!0}),Th("'"+e+"': "+t)}resolve(t){let e=this.params;kh(this.routeInfos,t=>(e[t.name]=t.params||{},!0)),t.resolveIndex=0;let n=xd.bind(null,this,t),r=_d.bind(null,this,t);return ia.resolve(null,this.promiseLabel("Start transition")).then(n,null,this.promiseLabel("Resolve route")).catch(r,this.promiseLabel("Handle error")).then(()=>this)}},kd=class{constructor(t,e,n,r){this.error=t,this.route=e,this.wasAborted=n,this.state=r}},Ed=class extends wd{name;pivotHandler;contexts;queryParams;preTransitionState=void 0;constructor(t,e,n,r=[],i={},s){super(t,s),this.name=e,this.pivotHandler=n,this.contexts=r,this.queryParams=i}applyToState(t,e){let n=this.router.recognizer.handlersFor(this.name),r=n[n.length-1].handler;return this.applyToHandlers(t,n,r,e,!1)}applyToHandlers(t,e,n,r,i){let s,o,a=new Sd,l=this.contexts.slice(0),c=e.length;if(this.pivotHandler)for(s=0,o=e.length;s=0;--s){let o=e[s],u=o.handler,h=t.routeInfos[s],d=null;if(d=o.names.length>0?s>=c?this.createParamHandlerInfo(u,o.names,l,h):this.getHandlerInfoForDynamicSegment(u,o.names,l,h,n,s):this.createParamHandlerInfo(u,o.names,l,h),i){d=d.becomeResolved(null,d.context);let t=h&&h.context;o.names.length>0&&void 0!==h.context&&d.context===t&&(d.params=h&&h.params),d.context=t}let p=h;(s>=c||d.shouldSupersede(h))&&(c=Math.min(s,c),p=d),r&&!i&&(p=p.becomeResolved(null,p.context)),a.routeInfos.unshift(p)}if(l.length>0)throw new Error("More context objects were passed than there are dynamic segments for the route: "+n);return r||this.invalidateChildren(a.routeInfos,c),wh(a.queryParams,this.queryParams||{}),r&&t.queryParams&&wh(a.queryParams,t.queryParams),a}invalidateChildren(t,e){for(let n=e,r=t.length;n0){if(o=n[n.length-1],Sh(o))return this.createParamHandlerInfo(t,e,n,r);n.pop()}else{if(r&&r.name===t)return r;if(!this.preTransitionState)return r;o=this.preTransitionState.routeInfos[s]?.context}return new bd(this.router,t,e,o)}createParamHandlerInfo(t,e,n,r){let i={},s=e.length,o=[];for(;s--;){let a=r&&t===r.name&&r.params||{},l=n[n.length-1],c=e[s];Sh(l)?i[c]=String(n.pop()):a.hasOwnProperty(c)?i[c]=a[c]:o.push(c)}if(o.length>0)throw new Error(`You didn't provide enough string/numeric parameters to satisfy all of the dynamic segments for route ${t}. Missing params: ${o}`);return new vd(this.router,t,e,i)}},Rd=class extends wd{preTransitionState;url;constructor(t,e,n){super(t,n),this.url=e,this.preTransitionState=void 0}applyToState(t){let e,n,r=new Sd,i=this.router.recognizer.recognize(this.url);if(!i)throw new Fh(this.url);let s=!1,o=this.url;function a(t){if(t&&t.inaccessibleByURL)throw new Fh(o);return t}for(e=0,n=i.length;e=0&&r;--n){let i=e[n],s=i.handler;t.add(e,{as:s}),r="/"===i.path||""===i.path||".index"===s.slice(-6)}})}hasRoute(t){return this.recognizer.hasRoute(t)}queryParamsTransition(t,e,n,r){if(this.fireQueryParamDidChange(r,t),!e&&this.activeTransition)return this.activeTransition;{let t=new Ah(this,void 0,void 0);return t.queryParamsOnly=!0,n.queryParams=this.finalizeQueryParamChange(r.routeInfos,r.queryParams,t),t[Ph]=r.queryParams,this.toReadOnlyInfos(t,r),this.routeWillChange(t),t.promise=t.promise.then(e=>(t.isAborted||(this._updateURL(t,n),this.didTransition(this.currentRouteInfos),this.toInfos(t,r.routeInfos,!0),this.routeDidChange(t)),e),null,Th("Transition complete")),t}}transitionByIntent(t,e){try{return this.getTransitionByIntent(t,e)}catch(n){return new Ah(this,t,void 0,n,void 0)}}recognize(t){let e=new Rd(this,t),n=this.generateNewState(e);if(null===n)return n;let r=pd(n.routeInfos,n.queryParams,{includeAttributes:!1,localizeMapUpdates:!0});return r[r.length-1]}recognizeAndLoad(t){let e=new Rd(this,t),n=this.generateNewState(e);if(null===n)return ia.reject(`URL ${t} was not recognized`);let r=new Ah(this,e,n,void 0);return r.then(()=>{let t=pd(n.routeInfos,r[Ph],{includeAttributes:!0,localizeMapUpdates:!1});return t[t.length-1]})}generateNewState(t){try{return t.applyToState(this.state,!1)}catch(e){return null}}getTransitionByIntent(t,e){let n,r=Boolean(this.activeTransition),i=r?this.activeTransition[Lh]:this.state,s=t.applyToState(i,e),o=Eh(i.queryParams,s.queryParams);if(Ld(s.routeInfos,i.routeInfos)){if(o){let t=this.queryParamsTransition(o,r,i,s);return t.queryParamsOnly=!0,t}return this.activeTransition||new Ah(this,void 0,void 0)}if(e){let t=new Ah(this,void 0,s);return t.isIntermediate=!0,this.toReadOnlyInfos(t,s),this.setupContexts(s,t),this.routeWillChange(t),this.activeTransition}return n=new Ah(this,t,s,void 0,this.activeTransition),function(t,e){if(t.length!==e.length)return!1;for(let n=0,r=t.length;nthis.finalizeTransition(n,t),null,Th("Settle transition promise when transition is finalized")),r||this.notifyExistingHandlers(s,n),this.fireQueryParamDidChange(s,o),n}doTransition(t,e=[],n=!1){let r,i=e[e.length-1],s={};if(i&&Object.prototype.hasOwnProperty.call(i,"queryParams")&&(s=e.pop().queryParams),void 0===t){Ch(this,"Updating query params");let{routeInfos:t}=this.state;r=new Ed(this,t[t.length-1].name,void 0,[],s)}else"/"===t.charAt(0)?(Ch(this,"Attempting URL transition to "+t),r=new Rd(this,t)):(Ch(this,"Attempting transition to "+t),r=new Ed(this,t,void 0,e,s));return this.transitionByIntent(r,n)}finalizeTransition(t,e){try{Ch(t.router,t.sequence,"Resolved all models on destination route; finalizing transition.");let n=e.routeInfos;return this.setupContexts(e,t),t.isAborted?(this.state.routeInfos=this.currentRouteInfos,ia.reject(Oh(t))):(this._updateURL(t,e),t.isActive=!1,this.activeTransition=void 0,this.triggerEvent(this.currentRouteInfos,!0,"didTransition",[]),this.didTransition(this.currentRouteInfos),this.toInfos(t,e.routeInfos,!0),this.routeDidChange(t),Ch(this,t.sequence,"TRANSITION COMPLETE."),n[n.length-1].route)}catch(r){if("object"!=typeof(n=r)||null===n||"TRANSITION_ABORTED"!==n.code){let e=t[Lh].routeInfos;t.trigger(!0,"error",r,t,e[e.length-1].route),t.abort()}throw r}var n}setupContexts(t,e){let n,r,i,s=this.partitionRoutes(this.state,t);for(n=0,r=s.exited.length;n=0;--o){let t=r[o];wh(s,t.params),t.route.inaccessibleByURL&&(n=null)}if(n){s.queryParams=t._visibleQueryParams||e.queryParams;let r=this.recognizer.generate(i,s),o=t.isCausedByInitialTransition,a="replace"===n&&!t.isCausedByAbortingTransition,l=t.queryParamsOnly&&"replace"===n,c="replace"===n&&t.isCausedByAbortingReplaceTransition;o||a||l||c?this.replaceURL(r):this.updateURL(r)}}finalizeQueryParamChange(t,e,n){for(let s in e)e.hasOwnProperty(s)&&null===e[s]&&delete e[s];let r=[];this.triggerEvent(t,!0,"finalizeQueryParamChange",[e,r,n]),n&&(n._visibleQueryParams={});let i={};for(let s=0,o=r.length;s0){let n=pd(e,Object.assign({},this._lastQueryParams),{includeAttributes:!0,localizeMapUpdates:!1});t.from=n[n.length-1]||null}}toInfos(t,e,n=!1){if(void 0!==t&&e.length>0){let r=pd(e,Object.assign({},t[Ph]),{includeAttributes:n,localizeMapUpdates:!1});t.to=r[r.length-1]||null}}notifyExistingHandlers(t,e){let n,r,i,s,o=this.state.routeInfos;for(r=o.length,n=0;n{t.setURL(n),mr(e,"currentURL",n)})}didTransition(t){e.didTransition(t)}willTransition(t,n){e.willTransition(t,n)}triggerEvent(t,n,r,i){return jd.bind(e)(t,n,r,i)}routeWillChange(t){e.trigger("routeWillChange",t),e._routerService.trigger("routeWillChange",t),t.isIntermediate&&e.set("currentRoute",t.to)}routeDidChange(t){e.set("currentRoute",t.to),Is(()=>{e.trigger("routeDidChange",t),e._routerService.trigger("routeDidChange",t)})}transitionDidError(t,n){return t.wasAborted||n.isAborted?Oh(n):(n.trigger(!1,"error",t.error,n,t.route),e._isErrorHandled(t.error)?(n.rollback(),this.routeDidChange(n),t.error):(n.abort(),t.error))}replaceURL(n){t.replaceURL?Is(()=>{t.replaceURL(n),mr(e,"currentURL",n)}):this.updateURL(n)}},s=this.constructor.dslCallbacks||[Pd],o=this._buildDSL();o.route("application",{path:"/",resetNamespace:!0,overrideNameAssertion:!0},function(){for(let t=0;tn.factoryFor(`route-map:${t}`),addRouteForEngine(t,n){e._engineInfoByRoute[t]||(e._engineInfoByRoute[t]=n)}})}_resetQueuedQueryParameterChanges(){this._queuedQPChanges={}}_hasModuleBasedResolver(){let t=hr(Po(this),"application.__registry__.resolver.moduleBasedResolver");return Boolean(t)}startRouting(){if(this.setupRouter()){let t=hr(this,"initialURL");void 0===t&&(t=hr(this,"location").getURL());let e=this.handleURL(t);if(e&&e.error)throw e.error}}setupRouter(){if(this._didSetupRouter)return!1;this._didSetupRouter=!0,this._setupLocation();let t=hr(this,"location");return!hr(t,"cancelRouterSetup")&&(this._initRouterJs(),t.onUpdateURL(t=>{this.handleURL(t)}),!0)}_setOutlets(){if(this.isDestroying||this.isDestroyed)return;let t=this._routerMicrolib.currentRouteInfos;if(!t)return;let e=null,n=null;for(let r of t){let t=td(r.route);if(!t)break;{let r={render:t,outlets:{main:void 0}};n?n.outlets.main=r:e=r,n=r}}if(null!==e)if(this._toplevelView)this._toplevelView.setOutletState(e);else{let t=Po(this),n=t.factoryFor("view:-outlet"),r=t.lookup("application:main"),i=t.lookup("-environment:main"),s=t.lookup("template:-outlet");this._toplevelView=n.create({environment:i,template:s,application:r}),this._toplevelView.setOutletState(e),t.lookup("-application-instance:main").didCreateRootView(this._toplevelView)}}handleURL(t){let e=t.split(/#(.+)?/)[0];return this._doURLTransition("handleURL",e)}_doURLTransition(t,e){this._initialTransitionStarted=!0;let n=this._routerMicrolib[t](e||"/");return $d(n,this),n}transitionTo(...t){if(Wh(t[0]))return this._doURLTransition("transitionTo",t[0]);let{routeName:e,models:n,queryParams:r}=Uh(t);return this._doTransition(e,n,r)}intermediateTransitionTo(t,...e){this._routerMicrolib.intermediateTransitionTo(t,...e),Bd(this)}replaceWith(...t){return this.transitionTo(...t).method("replace")}generate(t,...e){let n=this._routerMicrolib.generate(t,...e);return this.location.formatURL(n)}isActive(t){return this._routerMicrolib.isActive(t)}isActiveIntent(t,e,n){return this.currentState.isActiveIntent(t,e,n)}send(t,...e){this._routerMicrolib.trigger(t,...e)}hasRoute(t){return this._routerMicrolib.hasRoute(t)}reset(){this._didSetupRouter=!1,this._initialTransitionStarted=!1,this._routerMicrolib&&this._routerMicrolib.reset()}willDestroy(){this._toplevelView&&(this._toplevelView.destroy(),this._toplevelView=null),super.willDestroy(),this.reset();let t=this._engineInstances;for(let e in t){let n=t[e];for(let t in n)_s(n[t],"destroy")}}_activeQPChanged(t,e){this._queuedQPChanges[t]=e,Is(this,this._fireQueryParamTransition)}_updatingQPChanged(t){this._qpUpdates.add(t)}_fireQueryParamTransition(){this.transitionTo({queryParams:this._queuedQPChanges}),this._resetQueuedQueryParameterChanges()}_setupLocation(){let t=this.location,e=this.rootURL,n=Po(this);"string"==typeof t&&(t=mr(this,"location",n.lookup(`location:${t}`))),null!==t&&"object"==typeof t&&(e&&mr(t,"rootURL",e),"function"==typeof t.initState&&t.initState())}_serializeQueryParams(t,e){qd(this,t,e,(t,n,r)=>{if(r)delete e[t],e[r.urlKey]=r.route.serializeQueryParam(n,r.urlKey,r.type);else{if(void 0===n)return;e[t]=this._serializeQueryParam(n,kc(n))}})}_serializeQueryParam(t,e){return null==t?t:"array"===e?JSON.stringify(t):`${t}`}_deserializeQueryParams(t,e){qd(this,t,e,(t,n,r)=>{r&&(delete e[t],e[r.prop]=r.route.deserializeQueryParam(n,r.urlKey,r.type))})}_deserializeQueryParam(t,e){return null==t?t:"boolean"===e?"true"===t:"number"===e?Number(t).valueOf():"array"===e?Yc(JSON.parse(t)):t}_pruneDefaultQueryParamValues(t,e){let n=this._queryParamsFor(t);for(let r in e){let t=n.map[r];t&&t.serializedDefaultValue===e[r]&&delete e[r]}}_doTransition(t,e,n,r){let i=t||function(t){let e=t.activeTransition?t.activeTransition[Lh].routeInfos:t.state.routeInfos;return e[e.length-1].name}(this._routerMicrolib);this._initialTransitionStarted=!0;let s={};this._processActiveTransitionQueryParams(i,e,s,n),Object.assign(s,n),this._prepareQueryParams(i,e,s,Boolean(r));let o=this._routerMicrolib.transitionTo(i,...e,{queryParams:s});return $d(o,this),o}_processActiveTransitionQueryParams(t,e,n,r){if(!this._routerMicrolib.activeTransition)return;let i={},s=this._qpUpdates,o=ed(this,this._routerMicrolib.activeTransition[Lh]);for(let a in o)s.has(a)||(i[a]=o[a]);this._fullyScopeQueryParams(t,e,r),this._fullyScopeQueryParams(t,e,i),Object.assign(n,i)}_prepareQueryParams(t,e,n,r){let i=Ud(this,t,e);this._hydrateUnsuppliedQueryParams(i,n,Boolean(r)),this._serializeQueryParams(i.routeInfos,n),r||this._pruneDefaultQueryParamValues(i.routeInfos,n)}_getQPMeta(t){let e=t.route;return e&&hr(e,"_qp")}_queryParamsFor(t){let e=t[t.length-1].name,n=this._qpCache[e];if(void 0!==n)return n;let r,i=!0,s={},o=[];for(let l of t)if(r=this._getQPMeta(l),r){for(let t of r.qps)o.push(t);Object.assign(s,r.map)}else i=!1;let a={qps:o,map:s};return i&&(this._qpCache[e]=a),a}_fullyScopeQueryParams(t,e,n){let r,i=Ud(this,t,e).routeInfos;for(let s of i)if(r=this._getQPMeta(s),r)for(let t of r.qps){let e=t.prop in n&&t.prop||t.scopedPropertyName in n&&t.scopedPropertyName||t.urlKey in n&&t.urlKey;e&&e!==t.scopedPropertyName&&(n[t.scopedPropertyName]=n[e],delete n[e])}}_hydrateUnsuppliedQueryParams(t,e,n){let r,i,s,o=t.routeInfos,a=this._bucketCache;for(let l of o)if(r=this._getQPMeta(l),r)for(let n=0,o=r.qps.length;n=0;--n){let r=t[n],i=r.route;if(void 0!==i&&!0!==e(i,r))return}}var Nd={willResolveModel(t,e,n){this._scheduleLoadingEvent(e,n)},error(t,e,n){let r=this,i=t[t.length-1];Od(t,(t,n)=>{if(n!==i){let n=zd(t,"error");if(n)return r._markErrorAsHandled(e),r.intermediateTransitionTo(n,e),!1}let s=Fd(t,"error");return!s||(r._markErrorAsHandled(e),r.intermediateTransitionTo(s,e),!1)}),function(t,e){let n,r=[];n=t&&"object"==typeof t&&"object"==typeof t.errorThrown?t.errorThrown:t,e&&r.push(e),n&&(n.message&&r.push(n.message),n.stack&&r.push(n.stack),"string"==typeof n&&r.push(n)),console.error(...r)}(e,`Error while processing route: ${n.targetName}`)},loading(t,e){let n=this,r=t[t.length-1];Od(t,(t,i)=>{if(i!==r){let e=zd(t,"loading");if(e)return n.intermediateTransitionTo(e),!1}let s=Fd(t,"loading");return s?(n.intermediateTransitionTo(s),!1):e.pivotHandler!==t})}};function Fd(t,e){let n=Po(t),{routeName:r,fullRouteName:i,_router:s}=t,o=`${i}_${e}`;return Dd(n,s,`${r}_${e}`,o)?o:""}function zd(t,e){let n=Po(t),{routeName:r,fullRouteName:i,_router:s}=t,o="application"===i?e:`${i}.${e}`;return Dd(n,s,"application"===r?e:`${r}.${e}`,o)?o:""}function Dd(t,e,n,r){let i=e.hasRoute(r),s=t.factoryFor(`template:${n}`)||t.factoryFor(`route:${n}`);return i&&s}function jd(t,e,n,r){if(!t){if(e)return;throw new Error(`Can't trigger action '${n}' because your app hasn't finished transitioning into its first route. To trigger an action on destination routes during a transition, you can call \`.send()\` on the \`Transition\` object passed to the \`model/beforeModel/afterModel\` hooks.`)}let i,s,o,a=!1;for(let c=t.length-1;c>=0;c--)if(i=t[c],s=i.route,o=s&&s.actions&&s.actions[n],o){if(!0!==o.apply(s,r))return void("error"===n&&s._router._markErrorAsHandled(r[0]));a=!0}let l=Nd[n];if(l)l.call(this,t,...r);else if(!a&&!e)throw new Error(`Nothing handled the action '${n}'. If you did handle the action, this error can be caused by returning true from an action handler in a controller, causing the action to bubble.`)}function Ud(t,e,n){let r=t._routerMicrolib.applyIntent(e,n),{routeInfos:i,params:s}=r;for(let o of i)o.isResolved?s[o.name]=o.params:s[o.name]=o.serialize(o.context);return r}function Bd(t){let e=t._routerMicrolib.currentRouteInfos;if(0===e.length)return;let n=Ad._routePath(e),r=e[e.length-1].name,i=t.location.getURL();mr(t,"currentPath",n),mr(t,"currentRouteName",r),mr(t,"currentURL",i)}function $d(t,e){let n=new hd(e,e._routerMicrolib,t[Lh]);e.currentState||e.set("currentState",n),e.set("targetState",n),t.promise=t.catch(t=>{if(!e._isErrorHandled(t))throw t;e._clearHandledError(t)},"Transition Error")}function qd(t,e,n,r){let i=t._queryParamsFor(e);for(let s in n)Object.prototype.hasOwnProperty.call(n,s)&&r(s,n[s],i.map[s])}function Vd(t){return void 0!==t.hash?t.hash.substring(0):""}Ad.reopen({didTransition:function(){Bd(this),this._cancelSlowTransitionTimer(),this.notifyPropertyChange("url"),this.set("currentState",this.targetState)},willTransition:function(){},rootURL:"/",location:"hash",url:Xn(function(){let t=hr(this,"location");if("string"!=typeof t)return t.getURL()})});var Wd=class extends Bl{_hashchangeHandler;_location;init(){this.location=this._location??window.location,this._hashchangeHandler=void 0}getHash(){return Vd(this.location)}getURL(){let t=this.getHash().substring(1),e=t;return"/"!==e[0]&&(e="/",t&&(e+=`#${t}`)),e}setURL(t){this.location.hash=t,this.lastSetURL=t}replaceURL(t){this.location.replace(`#${t}`),this.lastSetURL=t}lastSetURL=null;onUpdateURL(t){this._removeEventListener(),this._hashchangeHandler=Cs(this,function(){let e=this.getURL();this.lastSetURL!==e&&(this.lastSetURL=null,t(e))}),window.addEventListener("hashchange",this._hashchangeHandler)}formatURL(t){return`#${t}`}willDestroy(){this._removeEventListener()}_removeEventListener(){this._hashchangeHandler&&window.removeEventListener("hashchange",this._hashchangeHandler)}};function Hd(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){let e,n;return e=16*Math.random()|0,n="x"===t?e:3&e|8,n.toString(16)})}var Gd=class extends Bl{history;_popstateHandler;rootURL="/";getHash(){return Vd(this.location)}init(){this._super(...arguments);let t=document.querySelector("base"),e="";null!==t&&t.hasAttribute("href")&&(e=t.getAttribute("href")??""),this.baseURL=e,this.location=this.location??window.location,this._popstateHandler=void 0}initState(){let t=this.history??window.history;this.history=t;let{state:e}=t,n=this.formatURL(this.getURL());e&&e.path===n||this.replaceState(n)}getURL(){let{location:t,rootURL:e,baseURL:n}=this,r=t.pathname;e=e.replace(/\/$/,""),n=n.replace(/\/$/,"");let i=r.replace(new RegExp(`^${n}(?=/|$)`),"").replace(new RegExp(`^${e}(?=/|$)`),"").replace(/\/\//g,"/");return i+=(t.search||"")+this.getHash(),i}setURL(t){let{state:e}=this.history;t=this.formatURL(t),e&&e.path===t||this.pushState(t)}replaceURL(t){let{state:e}=this.history;t=this.formatURL(t),e&&e.path===t||this.replaceState(t)}pushState(t){let e={path:t,uuid:Hd()};this.history.pushState(e,"",t)}replaceState(t){let e={path:t,uuid:Hd()};this.history.replaceState(e,"",t)}onUpdateURL(t){this._removeEventListener(),this._popstateHandler=()=>{t(this.getURL())},window.addEventListener("popstate",this._popstateHandler)}formatURL(t){let{rootURL:e,baseURL:n}=this;return""!==t?(e=e.replace(/\/$/,""),n=n.replace(/\/$/,"")):"/"===n[0]&&"/"===e[0]&&(n=n.replace(/\/$/,"")),n+e+t}willDestroy(){this._removeEventListener()}_removeEventListener(){this._popstateHandler&&window.removeEventListener("popstate",this._popstateHandler)}},Zd=class extends Bl{updateCallback;initState(){this._super(...arguments);let{rootURL:t}=this}getURL(){let{path:t,rootURL:e}=this;return e=e.replace(/\/$/,""),t.replace(new RegExp(`^${e}(?=/|$)`),"")}setURL(t){this.path=t}onUpdateURL(t){this.updateCallback=t}handleURL(t){this.path=t,this.updateCallback&&this.updateCallback(t)}formatURL(t){let{rootURL:e}=this;return""!==t&&(e=e.replace(/\/$/,"")),e+t}};function Kd(t,e){return(t,...n)=>{let r=function(t,e){let n=[];function r(t){n.push(t)}for(let i of e)Fn(i,r);return n}(0,[t,...n]);return Xn(...r,function(){let t=r.length-1;for(let n=0;nt),Kd(0,t=>!t);var Xd=/[ _]/g,Jd=new or(1e3,t=>function(t){return ip.get(t)}(t).replace(Xd,"-")),Qd=/^(-|_)+(.)?/,tp=/(.)(-|_|\.|\s)+(.)?/g,ep=/(^|\/|\.)([a-z])/g,np=new or(1e3,t=>{let e=(t,e,n)=>n?`_${n.toUpperCase()}`:"",n=(t,e,n,r)=>e+(r?r.toUpperCase():""),r=t.split("/");for(let i=0;it.toUpperCase())}),rp=/([a-z\d])([A-Z])/g,ip=new or(1e3,t=>t.replace(rp,"$1_$2").toLowerCase());function sp(t){return Jd.get(t)}function op(t){return Object.hasOwnProperty.call(t.since,"enabled")||N._ALL_DEPRECATIONS_ENABLED}var ap=parseFloat(N._OVERRIDE_DEPRECATION_VERSION??"7.2.0");function lp(t){return function(t,e=ap){let n=t.replace(/(\.0+)/g,"");return e>=parseFloat(n)}(t.until)}function cp(t){return{options:t,test:!op(t),isEnabled:op(t)||lp(t),isRemoved:lp(t)}}var up={DEPRECATE_IMPORT_EMBER:t=>cp({id:`deprecate-import-${sp(t).toLowerCase()}-from-ember`,for:"ember-source",since:{available:"5.10.0",enabled:"6.5.0"},until:"7.0.0",url:`https://deprecations.emberjs.com/id/import-${sp(t).toLowerCase()}-from-ember`}),DEPRECATE_IMPORT_INJECT:cp({for:"ember-source",id:"importing-inject-from-ember-service",since:{available:"6.2.0",enabled:"6.3.0"},until:"7.0.0",url:"https://deprecations.emberjs.com/id/importing-inject-from-ember-service"})},hp=a({default:()=>fp,inject:()=>dp,service:()=>pp});function dp(...t){return function(t,e){const{options:n}=e;if(e.isRemoved)throw new Error(`The API deprecated by ${n.id} was removed in ember-source ${n.until}. The message was: Importing \`inject\` from \`@ember/service\` is deprecated. Please import \`service\` instead.. Please see ${n.url} for more details.`)}(0,up.DEPRECATE_IMPORT_INJECT),qr("service",...t)}function pp(...t){return qr("service",...t)}var fp=class extends Xc{static isServiceFactory=!0},gp=Symbol("ROUTER");function mp(t,e){return"/"===e?t:t.substring(e.length)}var yp=class extends(fp.extend(bc)){[gp];get _router(){let t=this[gp];if(void 0!==t)return t;let e=Br(this).lookup("router:main");return this[gp]=e}willDestroy(){super.willDestroy(),this[gp]=void 0}transitionTo(...t){if(Wh(t[0]))return this._router._doURLTransition("transitionTo",t[0]);let{routeName:e,models:n,queryParams:r}=Uh(t);return this._router._doTransition(e,n,r,!0)}replaceWith(...t){return this.transitionTo(...t).method("replace")}urlFor(t,...e){return this._router.setupRouter(),this._router.generate(t,...e)}isActive(...t){let{routeName:e,models:n,queryParams:r}=Uh(t);this._router.setupRouter();let i=this._router._routerMicrolib;if(Ft(Kt(this._router,"currentURL")),!i.isActiveIntent(e,n))return!1;if(Object.keys(r).length>0){let t=e;r=Object.assign({},r),this._router._prepareQueryParams(t,n,r,!0);let s=Object.assign({},i.state.queryParams);return this._router._prepareQueryParams(t,n,s,!0),Hh(r,s)}return!0}recognize(t){this._router.setupRouter();let e=mp(t,this.rootURL);return this._router._routerMicrolib.recognize(e)}recognizeAndLoad(t){this._router.setupRouter();let e=mp(t,this.rootURL);return this._router._routerMicrolib.recognizeAndLoad(e)}refresh(t){if(!t)return this._router._routerMicrolib.refresh();let e=Br(this).lookup(`route:${t}`);return this._router._routerMicrolib.refresh(e)}static{Zh(this.prototype,"currentRouteName",[Yd("_router.currentRouteName")])}#o=void Yh(this,"currentRouteName");static{Zh(this.prototype,"currentURL",[Yd("_router.currentURL")])}#a=void Yh(this,"currentURL");static{Zh(this.prototype,"location",[Yd("_router.location")])}#l=void Yh(this,"location");static{Zh(this.prototype,"rootURL",[Yd("_router.rootURL")])}#c=void Yh(this,"rootURL");static{Zh(this.prototype,"currentRoute",[Yd("_router.currentRoute")])}#u=void Yh(this,"currentRoute")},vp=class extends fp{[gp];get router(){let t=this[gp];if(void 0!==t)return t;let e=Br(this).lookup("router:main");return e.setupRouter(),this[gp]=e}hasRoute(t){return this.router.hasRoute(t)}transitionTo(t,e,n,r){let i=this.router._doTransition(t,e,n);return r&&i.method("replace"),i}normalizeQueryParams(t,e,n){this.router._prepareQueryParams(t,e,n)}_generateURL(t,e,n){let r={};return n&&(Object.assign(r,n),this.normalizeQueryParams(t,e,r)),this.router.generate(t,...e,{queryParams:r})}generateURL(t,e,n){if(this.router._initialTransitionStarted)return this._generateURL(t,e,n);try{return this._generateURL(t,e,n)}catch(r){return}}isActiveForRoute(t,e,n,r){let i=this.router._routerMicrolib.recognizer.handlersFor(n),s=i[i.length-1].handler,o=function(t,e){let n=0;for(let r=0;ro&&(n=s),r.isActiveIntent(n,t,e)}};vp.reopen({targetState:Yd("router.targetState"),currentState:Yd("router.currentState"),currentRouteName:Yd("router.currentRouteName"),currentPath:Yd("router.currentPath")});var bp=class{cache;constructor(){this.cache=new Map}has(t){return this.cache.has(t)}stash(t,e,n){let r=this.cache.get(t);void 0===r&&(r=new Map,this.cache.set(t,r)),r.set(e,n)}lookup(t,e,n){if(!this.has(t))return n;let r=this.cache.get(t);return r.has(e)?r.get(e):n}},wp=Ao?self:null,_p=Ao?self.location:null,xp=Ao?self.history:null,Cp=Ao?self.navigator.userAgent:"Lynx (textmode)",Sp=!(!Ao||"object"!=typeof chrome||"object"==typeof opera),kp=!!Ao&&/Firefox|FxiOS/.test(Cp),Ep=Object.freeze(Object.defineProperty({__proto__:null,hasDOM:Ao,history:xp,isChrome:Sp,isFirefox:kp,location:_p,userAgent:Cp,window:wp},Symbol.toStringTag,{value:"Module"})),Rp=-536870913;function Tp(t){return(t|=0)<0?function(t){return t&Rp}(t):function(t){return~t}(t)}function Lp(t){return(t|=0)>Rp?function(t){return~t}(t):function(t){return 536870912|t}(t)}function Ip(t){if("number"==typeof t)return t;{let e=t.errors[0];throw new Error(`Compile Error: ${e.problem} @ ${e.span.start}..${e.span.end}`)}}function Pp(t){if("error"===t.result)throw new Error(`Compile Error: ${t.problem} @ ${t.span.start}..${t.span.end}`);return t}[1,-1].forEach(t=>Lp(Tp(t)));var Mp=new WeakMap,Ap=Reflect.getPrototypeOf;function Op(t,e){return Mp.set(e,t),e}function Np(t){let e=t;for(;null!==e;){let t=Mp.get(e);if(void 0!==t)return t;e=Ap(e)}}var Fp=Object.assign;function zp(t){return Object.values(t)}function Dp(t){return Object.entries(t)}function jp(t){return Object.keys(t)}var Up=Object.freeze([]);function Bp(){return Up}var $p=Bp(),qp=Bp();function Vp(t){return t===Up}function*Wp(t){for(let e=t.length-1;e>=0;e--)yield t[e]}function*Hp(t){let e=0;for(const n of t)yield[e++,n]}function*Gp(t,e){for(let n=0;n255)throw new Error(`Opcode type over 8-bits. Got ${t}.`);let r=t|e|arguments.length-2<<8;this.buffer.push(r);for(const i of n)this.buffer.push(i);this.size=this.buffer.length}patch(t,e){if(-1!==this.buffer[t+1])throw new Error("Trying to patch operand in populated slot instead of a reserved slot.");this.buffer[t+1]=e}},Xp=32,Jp=31;function Qp(t){return e=>{if(!function(t){return Array.isArray(t)&&2===t.length}(e))return!1;let n=e[0];return n===Jp||n===Xp||n===t}}var tf=Qp(39),ef=Qp(38),nf=Qp(37),rf=Qp(35);function sf(t,e,n,r){let{symbols:{upvars:i}}=n,s=i[t[1]],o=e?.lookupBuiltInHelper?.(s)??null;return r.helper(o,s)}var of=1004,af=1005,lf=1010,cf=1e3,uf=1001,hf=1002;function df(t){return{type:1,value:t}}function pf(t){return{type:5,value:t}}function ff(t){return{type:7,value:t}}function gf(t){return{type:8,value:t}}var mf=class{labels=ne();targets=[];label(t,e){this.labels[t]=e}target(t,e){this.targets.push({at:t,target:e})}patch(t){let{targets:e,labels:n}=this;for(const{at:r,target:i}of e){let e=n[i]-r;Kp(t.getbyaddr(r)),t.setbyaddr(r,e)}}};function yf(t,e,n,r){let{program:{constants:i},resolver:s}=e;if(function(t){return t<1e3}(r[0])){let[e,...n]=r;t.push(i,e,...n)}else switch(r[0]){case cf:return t.label(r[1]);case uf:return t.startLabels();case hf:return t.stopLabels();case of:return function(t,e,n,[,r,i]){if(tf(r),r[0]===Xp){let{scopeValues:t,owner:s,symbols:{lexical:o}}=n,a=t[r[1]];i(e.component(a,s,!1,o?.at(r[1])))}else{let{symbols:{upvars:s},owner:o}=n,a=s[r[1]],l=t?.lookupComponent?.(a,o)??null;i(e.resolvedComponent(l,a))}}(s,i,n,r);case 1003:return function(t,e,n,[,r,i]){ef(r);let s=r[0];if(s===Xp){let{scopeValues:t,symbols:{lexical:s}}=n,o=t[r[1]];i(e.modifier(o,s?.at(r[1])??void 0))}else if(s===Jp){let{symbols:{upvars:s}}=n,o=s[r[1]],a=t?.lookupBuiltInModifier?.(o)??null;i(e.modifier(a,o))}else{let{symbols:{upvars:s},owner:o}=n,a=s[r[1]],l=t?.lookupModifier?.(a,o)??null;i(e.modifier(l))}}(s,i,n,r);case af:return function(t,e,n,[,r,i]){nf(r);let s=r[0];if(s===Xp){let{scopeValues:t}=n,s=t[r[1]];i(e.helper(s))}else if(s===Jp)i(sf(r,t,n,e));else{let{symbols:{upvars:s},owner:o}=n,a=s[r[1]],l=t?.lookupHelper?.(a,o)??null;i(e.helper(l,a))}}(s,i,n,r);case 1007:return function(t,e,n,[,r,{ifComponent:i,ifHelper:s}]){rf(r);let o=r[0];if(o===Xp){let{scopeValues:t,owner:o,symbols:{lexical:a}}=n,l=t[r[1]],c=e.component(l,o,!0,a?.at(r[1]));if(null!==c)return void i(c);s(e.helper(l,null,!0))}else if(o===Jp)s(sf(r,t,n,e));else{let{symbols:{upvars:o},owner:a}=n,l=o[r[1]],c=t?.lookupComponent?.(l,a)??null;if(null!==c)i(e.resolvedComponent(c,l));else{let n=t?.lookupHelper?.(l,a)??null;s(e.helper(n,l))}}}(s,i,n,r);case 1008:return function(t,e,n,[,r,{ifComponent:i,ifHelper:s,ifValue:o}]){rf(r);let a=r[0];if(a===Xp){let{scopeValues:t,owner:a,symbols:{lexical:l}}=n,c=t[r[1]];if("function"!=typeof c&&("object"!=typeof c||null===c))return void o(e.value(c));let u=e.component(c,a,!0,l?.at(r[1]));if(null!==u)return void i(u);let h=e.helper(c,null,!0);if(null!==h)return void s(h);o(e.value(c))}else if(a===Jp)s(sf(r,t,n,e));else{let{symbols:{upvars:o},owner:a}=n,l=o[r[1]],c=t?.lookupComponent?.(l,a)??null;if(null!==c)return void i(e.resolvedComponent(c,l));let u=t?.lookupHelper?.(l,a)??null;null!==u&&s(e.helper(u,l))}}(s,i,n,r);case lf:{let[,t,e]=r;e(n.symbols.upvars[t],n.moduleName);break}case 1011:{let[,t,e]=r,s=n.scopeValues[t];e(i.value(s));break}default:throw new Error(`Unexpected high level opcode ${r[0]}`)}}var vf=class{labelsStack=new se;encoder=new Yp([]);errors=[];handle;constructor(t,e,n){this.heap=t,this.meta=e,this.stdlib=n,this.handle=t.malloc()}error(t){this.encoder.encode(30,0),this.errors.push(t)}commit(t){let e=this.handle;return this.heap.pushMachine(5),this.heap.finishMalloc(e,t),Qt(this.errors)?{errors:this.errors,handle:e}:e}push(t,e,...n){let{heap:r}=this,i=e|((s=e)>=0&&s<=15?1024:0)|n.length<<8;var s;r.pushRaw(i);for(let o=0;o=-536870912?Tp(n):function(t){return{type:6,value:t}}(n)),t(30,n)}function Ef(t,e,n,r){t(0),Of(t,n,r,!1),t(16,e),t(1),t(36,8)}function Rf(t,e,n,r){t(0),Of(t,e,n,!1),t(33,2,1),t(107),r?(t(36,8),r(),t(1),t(34,1)):(t(1),t(34,1),t(36,8))}function Tf(t,e,n,r,i){t(0),Of(t,r,i,!1),t(86),Cf(t,n),t(77,e,{type:2,value:void 0}),t(1),t(36,8)}function Lf(t,e,n){Of(t,n,null,!0),t(23,e),t(24),t(61),t(64),t(40),t(1)}function If(t,e){!function(t,e){null!==e?t(63,ff({parameters:e})):kf(t,null)}(t,e&&e[1]),t(62),Af(t,e)}function Pf(t,e){t(0),Af(t,e),t(61),t(2),t(1)}function Mf(t,e,n){let r=e[1],i=r.length,s=Math.min(n,i);if(0!==s){if(t(0),s){t(39);for(let e=0;e{for(let n of e)Cf(t,n);t(27,e.length)}),_f.add(28,(t,[,e,n,r])=>{nf(e)?t(af,e,e=>{Ef(t,e,n,r)}):(Cf(t,e),Rf(t,n,r))}),_f.add(50,(t,[,e,n,r,i])=>{Tf(t,n,e,r,i)}),_f.add(30,(t,[,e,n])=>{t(21,e),xf(t,n)}),_f.add(Xp,(t,[,e,n])=>{t(1011,e,e=>{t(29,e),xf(t,n)})}),_f.add(Jp,(t,e)=>{t(lf,e[1],()=>{t(af,e,e=>{Ef(t,e,null,null)})})}),_f.add(37,(t,e)=>{t(lf,e[1],()=>{t(af,e,e=>{Ef(t,e,null,null)})})}),_f.add(27,t=>Sf(t,void 0)),_f.add(48,(t,[,e])=>{Cf(t,e),t(25)}),_f.add(49,(t,[,e])=>{Cf(t,e),t(24),t(61),t(26)}),_f.add(52,(t,[,e,n,r])=>{Cf(t,r),Cf(t,n),Cf(t,e),t(109)}),_f.add(51,(t,[,e])=>{Cf(t,e),t(110)}),_f.add(53,(t,[,e])=>{Cf(t,e),t(111)}),_f.add(54,(t,[,e])=>{t(0),Of(t,e,null,!1),t(112),t(1),t(36,8)});var zf=class t{names;constructor(t){this.blocks=t,this.names=t?Object.keys(t):[]}get(t){return this.blocks&&this.blocks[t]||null}has(t){let{blocks:e}=this;return null!==e&&t in e}with(e,n){let{blocks:r}=this;return new t(r?Fp({},r,{[e]:n}):{[e]:n})}get hasAny(){return null!==this.blocks}},Df=new zf(null);function jf(t){if(null===t)return Df;let e=ne(),[n,r]=t;for(const[i,s]of Hp(n))e[s]=Xt(r[i]);return new zf(e)}function Uf(t,e,n){let r=[],i=0;n(function(t,e){r.push({match:t,callback:e,label:"CLAUSE"+i++})}),t(69,1),e(),t(uf);for(let s of r.slice(0,-1))t(67,df(s.label),s.match);for(let s=r.length-1;s>=0;s--){let e=Xt(r[s]);t(cf,e.label),t(34,1),e.callback(),0!==s&&t(4,df("END"))}t(cf,"END"),t(hf),t(70)}function Bf(t,e,n){t(uf),t(0),t(6,df("ENDINITIAL")),t(69,e()),n(),t(cf,"FINALLY"),t(70),t(5),t(cf,"ENDINITIAL"),t(1),t(hf)}function $f(t,e,n,r){return Bf(t,e,()=>{t(66,df("ELSE")),n(),t(4,df("FINALLY")),t(cf,"ELSE"),void 0!==r&&r()})}var qf="&attrs";function Vf(t,e,n,r,i,s){let{compilable:o,capabilities:a,handle:l}=e,c=n?[n,[]]:null,u=jf(s);o?(t(78,l),function(t,{capabilities:e,layout:n,elementBlock:r,positional:i,named:s,blocks:o}){let{symbolTable:a}=n;if(bu(e,fu.prepareArgs))return void Hf(t,{capabilities:e,elementBlock:r,positional:i,named:s,atNames:!0,blocks:o,layout:n});t(36,4),t(33,3,1),t(35,4),t(0);let{symbols:l}=a,c=[],u=[],h=[],d=o.names;if(null!==r){let e=l.indexOf(qf);-1!==e&&(If(t,r),c.push(e))}for(const p of d){let e=l.indexOf(`&${p}`);-1!==e&&(If(t,o.get(p)),c.push(e))}if(bu(e,fu.createArgs)){let e=Nf(t,i)<<4;e|=8;let n=$p;if(null!==s){n=s[0];let e=s[1];for(let r=0;r0?1:0),t(19,0);for(const p of Wp(u))-1===p?t(34,1):t(19,p+1);null!==i&&t(34,i.length);for(const p of Wp(c))t(20,p+1);t(28,gf(n)),t(61),t(2),t(100,4),t(1),t(40),bu(e,fu.dynamicScope)&&t(60),t(98),t(35,4)}(t,{capabilities:a,layout:o,elementBlock:c,positional:r,named:i,blocks:u})):(t(78,l),Hf(t,{capabilities:a,elementBlock:c,positional:r,named:i,atNames:!0,blocks:u}))}function Wf(t,e,n,r,i,s,o,a){let l=n?[n,[]]:null,c=jf(s);Bf(t,()=>(Cf(t,e),t(33,3,0),2),()=>{t(66,df("ELSE")),a?t(81):t(80,{type:2,value:void 0}),t(79),Hf(t,{capabilities:!0,elementBlock:l,positional:r,named:i,atNames:o,blocks:c}),t(cf,"ELSE")})}function Hf(t,{capabilities:e,elementBlock:n,positional:r,named:i,atNames:s,blocks:o,layout:a}){let l=Boolean(o),c=!0===e||bu(e,fu.prepareArgs)||0!==i?.[0].length,u=o.with("attrs",n);t(36,4),t(33,3,1),t(35,4),t(0),function(t,e,n,r,i){let s=r.names;for(const l of s)If(t,r.get(l));let o=Nf(t,e)<<4;i&&(o|=8),r.hasAny&&(o|=7);let a=Up;if(n){a=n[0];let e=n[1];for(let n=0;n{a?(t(63,ff(a.symbolTable)),t(28,gf(a)),t(61)):t(92,4),t(95,4)}),t(35,4)}function Gf(t,e,n,r,i=null){t(97,4),t(59),t(87,0|e),i&&i(),t(88,4),t(90,4),t(38,4),t(19,0),r&&t(17,4),n&&t(18,4),t(34,1),t(96,4),t(100,4),t(1),t(40),t(60),t(98)}var Zf=new wf,Kf=["class","id","value","name","type","style","href"],Yf=["div","span","p","a"];function Xf(t){return"string"==typeof t?t:Yf[t]}function Jf(t){return"string"==typeof t?t:Kf[t]}function Qf(t){return null===t?null:[t[0].map(t=>`@${t}`),t[1]]}Zf.add(3,(t,e)=>t(42,e[1])),Zf.add(13,t=>t(55)),Zf.add(12,t=>t(54)),Zf.add(4,(t,[,e,n,r])=>{ef(e)?t(1003,e,e=>{t(0),Of(t,n,r,!1),t(57,e),t(1)}):(Cf(t,e),t(0),Of(t,n,r,!1),t(33,2,1),t(108),t(1))}),Zf.add(14,(t,[,e,n,r])=>{t(51,Jf(e),n,r??null)}),Zf.add(24,(t,[,e,n,r])=>{t(105,Jf(e),n,r??null)}),Zf.add(15,(t,[,e,n,r])=>{Cf(t,n),t(52,Jf(e),!1,r??null)}),Zf.add(22,(t,[,e,n,r])=>{Cf(t,n),t(52,Jf(e),!0,r??null)}),Zf.add(16,(t,[,e,n,r])=>{Cf(t,n),t(53,Jf(e),!1,r??null)}),Zf.add(23,(t,[,e,n,r])=>{Cf(t,n),t(53,Jf(e),!0,r??null)}),Zf.add(10,(t,[,e])=>{t(48,Xf(e))}),Zf.add(11,(t,[,e])=>{t(89),t(48,Xf(e))}),Zf.add(8,(t,[,e,n,r,i])=>{tf(e)?t(of,e,e=>{Vf(t,e,n,null,r,i)}):Wf(t,e,n,null,r,i,!0,!0)}),Zf.add(18,(t,[,e,n])=>Lf(t,e,n)),Zf.add(17,(t,[,e])=>Lf(t,e,null)),Zf.add(26,(t,[,e,n,r])=>{t(103,function(t,e,n){return{type:3,value:{locals:t,upvars:e,lexical:n}}}(e,n,r))}),Zf.add(1,(t,[,e])=>{if(Array.isArray(e))if(rf(e))t(1008,e,{ifComponent(e){Vf(t,e,null,null,null,null)},ifHelper(e){t(0),Ef(t,e,null,null),t(3,pf("cautious-non-dynamic-append")),t(1)},ifValue(e){t(0),t(29,e),t(3,pf("cautious-non-dynamic-append")),t(1)}});else if(28===e[0]){let[,n,r,i]=e;rf(n)?t(1007,n,{ifComponent(e){Vf(t,e,null,r,Qf(i),null)},ifHelper(e){t(0),Ef(t,e,r,i),t(3,pf("cautious-non-dynamic-append")),t(1)}}):Uf(t,()=>{Cf(t,n),t(106)},e=>{e(0,()=>{t(68),t(81),t(79),Hf(t,{capabilities:!0,elementBlock:null,positional:r,named:i,atNames:!1,blocks:jf(null)})}),e(1,()=>{Rf(t,r,i,()=>{t(3,pf("cautious-non-dynamic-append"))})})})}else t(0),Cf(t,e),t(3,pf("cautious-append")),t(1);else t(41,null==e?"":String(e))}),Zf.add(2,(t,[,e])=>{Array.isArray(e)?(t(0),Cf(t,e),t(3,pf("trusting-append")),t(1)):t(41,null==e?"":String(e))}),Zf.add(6,(t,[,e,n,r,i])=>{tf(e)?t(of,e,e=>{Vf(t,e,null,n,Qf(r),i)}):Wf(t,e,null,n,r,i,!1,!1)}),Zf.add(40,(t,[,e,n,r,i])=>{$f(t,()=>(Cf(t,n),void 0===i?Sf(t,void 0):Cf(t,i),Cf(t,r),t(33,3,0),4),()=>{t(50),Pf(t,e),t(56)})}),Zf.add(41,(t,[,e,n,r])=>$f(t,()=>(Cf(t,e),t(71),1),()=>{Pf(t,n)},r?()=>{Pf(t,r)}:void 0)),Zf.add(42,(t,[,e,n,r,i])=>Bf(t,()=>(n?Cf(t,n):Sf(t,null),Cf(t,e),2),()=>{t(72,df("BODY"),df("ELSE")),t(0),t(33,2,1),t(6,df("ITER")),t(cf,"ITER"),t(74,df("BREAK")),t(cf,"BODY"),Mf(t,r,2),t(34,2),t(4,df("FINALLY")),t(cf,"BREAK"),t(1),t(73),t(4,df("FINALLY")),t(cf,"ELSE"),i&&Pf(t,i)})),Zf.add(44,(t,[,e,n])=>{Mf(t,n,Nf(t,e))}),Zf.add(45,(t,[,e,n])=>{if(e){let[r,i]=e;Nf(t,i),function(t,e,n){t(59),t(58,e),n(),t(60)}(t,r,()=>{Pf(t,n)})}else Pf(t,n)}),Zf.add(46,(t,[,e,n,r,i])=>{tf(e)?t(of,e,e=>{Vf(t,e,null,n,Qf(r),i)}):Wf(t,e,null,n,r,i,!1,!1)});var tg=class{compiled=new WeakMap;constructor(t,e,n,r="plain block"){this.statements=t,this.meta=e,this.symbolTable=n,this.moduleName=r}compile(t){return function(t,e){if(t.compiled.has(e))return t.compiled.get(e);t.compiled.set(e,-1);let{statements:n,meta:r}=t,i=function(t,e,n){let r=Zf,i=bf(n,e),{encoder:s,evaluation:o}=i;function a(...t){yf(s,o,e,t)}for(const l of t)r.compile(a,l);return i.encoder.commit(e.size)}(n,r,e);return t.compiled.set(e,i),i}(this,t)}},eg=class{symbolTable;compiled=null;attrsBlockNumber;meta;constructor(t,e){this.layout=t,this.moduleName=e;let{block:n}=t,[,r]=n;r=r.slice();let i=r.indexOf(qf);this.attrsBlockNumber=-1===i?r.push(qf):i+1,this.symbolTable={symbols:r},this.meta=Ff(t)}compile(t){if(null!==this.compiled)return this.compiled;let e=Ff(this.layout),n=bf(t,e),{encoder:r,evaluation:i}=n;var s,o,a;s=function(...t){yf(r,i,e,t)},o=this.layout,a=this.attrsBlockNumber,s(uf),function(t,e,n){t(36,5),n(),t(35,5)}(s,0,()=>{s(91,4),s(31),s(33,3,0)}),s(66,df("BODY")),s(36,5),s(89),s(49),s(99,4),Lf(s,a,null),s(54),s(cf,"BODY"),Pf(s,[o.block[0],[]]),s(36,5),s(66,df("END")),s(55),s(cf,"END"),s(35,5),s(hf);let l=n.encoder.commit(e.size);return"number"!=typeof l||(this.compiled=l),l}},ng=0,rg={cacheHit:0,cacheMiss:0};function ig({id:t,moduleName:e,block:n,scope:r,isStrictMode:i}){let s,o=t||"client-"+ng++,a=null,l=new WeakMap,c=t=>{if(void 0===s&&(s=JSON.parse(n)),void 0===t)return null===a?(rg.cacheMiss++,a=new sg({id:o,block:s,moduleName:e,owner:null,scope:r,isStrictMode:i})):rg.cacheHit++,a;let c=l.get(t);return void 0===c?(rg.cacheMiss++,c=new sg({id:o,block:s,moduleName:e,owner:t,scope:r,isStrictMode:i}),l.set(t,c)):rg.cacheHit++,c};return c.__id=o,c.__meta={moduleName:e},c}var sg=class{result="ok";layout=null;wrappedLayout=null;constructor(t){this.parsedLayout=t}get moduleName(){return this.parsedLayout.moduleName}get id(){return this.parsedLayout.id}get referrer(){return{moduleName:this.parsedLayout.moduleName,owner:this.parsedLayout.owner}}asLayout(){return this.layout?this.layout:this.layout=function(t,e){let[n,r]=t.block;return new tg(n,Ff(t),{symbols:r},e)}(Fp({},this.parsedLayout),this.moduleName)}asWrappedLayout(){return this.wrappedLayout?this.wrappedLayout:this.wrappedLayout=new eg(Fp({},this.parsedLayout),this.moduleName)}},og=class{offset=0;constructor(t){this.heap=t}get size(){return 1+((768&this.heap.getbyaddr(this.offset))>>8)}get isMachine(){return 1024&this.heap.getbyaddr(this.offset)?1:0}get type(){return 255&this.heap.getbyaddr(this.offset)}get op1(){return this.heap.getbyaddr(this.offset+1)}get op2(){return this.heap.getbyaddr(this.offset+2)}get op3(){return this.heap.getbyaddr(this.offset+3)}},ag=1048576,lg=class{offset=0;heap;handleTable;handleState;constructor(){this.heap=new Int32Array(ag),this.handleTable=[],this.handleState=[]}entries(){return this.offset}pushRaw(t){this.sizeCheck(),this.heap[this.offset++]=t}pushOp(t){this.pushRaw(t)}pushMachine(t){this.pushRaw(1024|t)}sizeCheck(){let{heap:t}=this;if(this.offset===this.heap.length){let e=new Int32Array(t.length+ag);e.set(t,0),this.heap=e}}getbyaddr(t){return this.heap[t]}setbyaddr(t,e){this.heap[t]=e}malloc(){return this.handleTable.push(this.offset),this.handleTable.length-1}finishMalloc(t){}size(){return this.offset}getaddr(t){return this.handleTable[t]}sizeof(t){return this.handleTable,-1}free(t){this.handleState[t]=1}compact(){let t=0,{handleTable:e,handleState:n,heap:r}=this;for(let i=0;i[t,e]));helperDefinitionCache=new WeakMap;modifierDefinitionCache=new WeakMap;componentDefinitionCache=new WeakMap;value(t){let e=this.indexMap,n=e.get(t);return void 0===n&&(n=this.values.push(t)-1,e.set(t,n)),n}array(t){if(0===t.length)return pg;let e=new Array(t.length);for(let n=0;nt}helper(t,e=null,n){let r=this.helperDefinitionCache.get(t);if(void 0===r){let e=Nu(t);if(null===e)return this.helperDefinitionCache.set(t,null),null;let n="function"==typeof e?e:e.getHelper(t);r=this.value(n),this.helperDefinitionCache.set(t,r),this.helperDefinitionCount++}return r}modifier(t,e=null,n){let r=this.modifierDefinitionCache.get(t);if(void 0===r){let n=Mu(t);if(null===n)return this.modifierDefinitionCache.set(t,null),null;let i={resolvedName:e,manager:n,state:t};r=this.value(i),this.modifierDefinitionCache.set(t,r),this.modifierDefinitionCount++}return r}component(t,e,n,r){let i=this.componentDefinitionCache.get(t);if(void 0===i){let n=zu(t);if(null===n)return this.componentDefinitionCache.set(t,null),null;let s,o=mu(n.getCapabilities(t)),a=Np(t),l=null;s=vu(0,o,fu.dynamicLayout)?a?.(e):a?.(e)??this.defaultTemplate,void 0!==s&&(s=Pp(s),l=vu(0,o,fu.wrapped)?s.asWrappedLayout():s.asLayout()),i={resolvedName:null,handle:-1,manager:n,capabilities:o,state:t,compilable:l},i.handle=this.value(i),r&&(i.debugName=r),this.componentDefinitionCache.set(t,i),this.componentDefinitionCount++}return i}resolvedComponent(t,e){let n=this.componentDefinitionCache.get(t);if(void 0===n){let{manager:r,state:i,template:s}=t,o=mu(r.getCapabilities(t)),a=null;vu(0,o,fu.dynamicLayout)||(s=s??this.defaultTemplate),null!==s&&(s=Pp(s),a=vu(0,o,fu.wrapped)?s.asWrappedLayout():s.asLayout()),n={resolvedName:e,handle:-1,manager:r,capabilities:o,state:i,compilable:a},n.handle=this.value(n),this.componentDefinitionCache.set(t,n),this.componentDefinitionCount++}return n}getValue(t){return this.values[t]}getArray(t){let e=this.reifiedArrs,n=e[t];if(void 0===n){let r=this.getValue(t);n=new Array(r.length);for(const[t,e]of Hp(r))n[t]=this.getValue(e);e[t]=n}return n}},gg=class{constructor(t,e){this.element=t,this.nextSibling=e}},mg=class{constructor(t,e,n){this.parentNode=t,this.first=e,this.last=n}parentElement(){return this.parentNode}firstNode(){return this.first}lastNode(){return this.last}};function yg(t,e){let n=t.parentElement(),r=t.firstNode(),i=t.lastNode(),s=r;for(;;){let t=s.nextSibling;if(n.insertBefore(s,e),s===i)return t;s=Jt(t)}}function vg(t){let e=t.parentElement(),n=t.firstNode(),r=t.lastNode(),i=n;for(;;){let t=i.nextSibling;if(e.removeChild(i),i===r)return t;i=Jt(t)}}function bg(t){return wg(t)?"":String(t)}function wg(t){return null==t||"function"!=typeof t.toString}function _g(t){return null!==t&&"object"==typeof t}function xg(t){return _g(t)&&"function"==typeof t.toHTML}function Cg(t){return"string"==typeof t}function Sg(t,e){let n,r;if(e in t)r=e,n="prop";else{let i=e.toLowerCase();i in t?(n="prop",r=i):(n="attr",r=e)}return"prop"!==n||"style"!==r.toLowerCase()&&!function(t,e){let n=Eg[t.toUpperCase()];return!(!n||!n[e.toLowerCase()])}(t.tagName,r)||(n="attr"),{normalized:r,type:n}}var kg,Eg={INPUT:{form:!0,autocorrect:!0,list:!0},SELECT:{form:!0},OPTION:{form:!0},TEXTAREA:{form:!0},LABEL:{form:!0},FIELDSET:{form:!0},LEGEND:{form:!0},OBJECT:{form:!0},OUTPUT:{form:!0},BUTTON:{form:!0}},Rg="http://www.w3.org/1998/Math/MathML",Tg=["javascript:","vbscript:"],Lg=["A","AREA","BODY","LINK","IMG","IFRAME","BASE","FORM","BUTTON","INPUT"],Ig=["EMBED"],Pg=["IFRAME","OBJECT"],Mg=["href","src","background","action","formaction","xlink:href"],Ag=["src"],Og=["src","data"];function Ng(t,e){return-1!==t.indexOf(e)}function Fg(t,e){return(null===t||Ng(Lg,t.toUpperCase()))&&Ng(Mg,e)}function zg(t,e){return null!==t&&Ng(Ig,t.toUpperCase())&&Ng(Ag,e)}function Dg(t,e){return null!==t&&Ng(Pg,t.toUpperCase())&&Ng(Og,e)}function jg(t,e){return Fg(t,e)||zg(t,e)||Dg(t,e)}function Ug(t){return kg||(kg=function(){const t=URL;if("object"==typeof t&&null!==t&&"function"==typeof t.parse){let e=t;return t=>{let n=null;return"string"==typeof t&&(n=e.parse(t.replace(/[\t\n\r]/gu,"")).protocol),null===n?":":n}}if("function"==typeof t)return e=>{try{return new t(e).protocol}catch{return":"}};throw new Error('@glimmer/runtime needs a valid "globalThis.URL"')}()),kg(t)}function Bg(t,e,n){if(null==n)return n;if(xg(n))return n.toHTML();const r=t.tagName;let i=bg(n);if(Fg(r,e)){let t=Ug(i);if(Ng(Tg,t))return`unsafe:${i}`}if(Dg(r,e)){let t=Ug(i);if("data:"===t||Ng(Tg,t))return`unsafe:${i}`}return zg(r,e)?`unsafe:${i}`:i}function $g(t,e,n){const{tagName:r,namespaceURI:i}=t,s={element:t,name:e,namespace:n};if("http://www.w3.org/2000/svg"===i)return qg(r,e,s);const{type:o,normalized:a}=Sg(t,e);return"attr"===o?qg(r,a,s):function(t,e,n){return jg(t,e)?new Gg(e,n):function(t,e){return("INPUT"===t||"TEXTAREA"===t)&&"value"===e}(t,e)?new Kg(e,n):function(t,e){return"OPTION"===t&&"selected"===e}(t,e)?new Yg(e,n):new Hg(e,n)}(r,a,s)}function qg(t,e,n){return jg(t,e)?new Zg(n):new Wg(n)}var Vg=class{constructor(t){this.attribute=t}},Wg=class extends Vg{set(t,e,n){const r=Xg(e);if(null!==r){const{name:e,namespace:n}=this.attribute;t.__setAttribute(e,r,n)}}update(t,e){const n=Xg(t),{element:r,name:i}=this.attribute;null===n?r.removeAttribute(i):r.setAttribute(i,n)}},Hg=class extends Vg{constructor(t,e){super(e),this.normalizedName=t}value;set(t,e,n){null!=e&&(this.value=e,t.__setProperty(this.normalizedName,e))}update(t,e){const{element:n}=this.attribute;this.value!==t&&(n[this.normalizedName]=this.value=t,null==t&&this.removeAttribute())}removeAttribute(){const{element:t,namespace:e}=this.attribute;e?t.removeAttributeNS(e,this.normalizedName):t.removeAttribute(this.normalizedName)}},Gg=class extends Hg{set(t,e,n){const{element:r,name:i}=this.attribute,s=Bg(r,i,e);super.set(t,s,n)}update(t,e){const{element:n,name:r}=this.attribute,i=Bg(n,r,t);super.update(i,e)}},Zg=class extends Wg{set(t,e,n){const{element:r,name:i}=this.attribute,s=Bg(r,i,e);super.set(t,s,n)}update(t,e){const{element:n,name:r}=this.attribute,i=Bg(n,r,t);super.update(i,e)}},Kg=class extends Hg{set(t,e){const n=bg(e);t.__setProperty("value",n),""===e&&"INPUT"===this.attribute.element.tagName&&t.__setAttribute("value","",null)}update(t){const e=this.attribute.element,n=e.value,r=bg(t);n!==r&&(e.value=r)}},Yg=class extends Hg{set(t,e){null!=e&&!1!==e&&t.__setProperty("selected",!0)}update(t){this.attribute.element.selected=!!t}};function Xg(t){return!1===t||null==t||void 0===t.toString?null:!0===t?"":"function"==typeof t?null:String(t)}var Jg=class{constructor(t){this.node=t}firstNode(){return this.node}},Qg=class{constructor(t){this.node=t}lastNode(){return this.node}},tm=class{dom;updateOperations;constructing=null;operations=null;env;cursors=new se;modifierStack=new se;blockStack=new se;static forInitialRender(t,e){return new this(t,e.element,e.nextSibling).initialize()}static resume(t,e){let n=new this(t,e.parentElement(),e.reset(t)).initialize();return n.pushBlock(e),n}constructor(t,e,n){this.pushElement(e,n),this.env=t,this.dom=t.getAppendOperations(),this.updateOperations=t.getDOM()}initialize(){return this.pushAppendingBlock(),this}debugBlocks(){return this.blockStack.toArray()}get element(){return this.cursors.current.element}get nextSibling(){return this.cursors.current.nextSibling}get hasBlocks(){return this.blockStack.size>0}block(){return this.blockStack.current}popElement(){this.cursors.pop(),this.cursors.current}pushAppendingBlock(){return this.pushBlock(new em(this.element))}pushResettableBlock(){return this.pushBlock(new rm(this.element))}pushBlockList(t){return this.pushBlock(new im(this.element,t))}pushBlock(t,e=!1){let n=this.blockStack.current;return null!==n&&(e||n.didAppendBounds(t)),this.__openBlock(),this.blockStack.push(t),t}popBlock(){return this.block().finalize(this),this.__closeBlock(),this.blockStack.pop()}__openBlock(){}__closeBlock(){}openElement(t){let e=this.__openElement(t);return this.constructing=e,e}__openElement(t){return this.dom.createElement(t,this.element)}flushElement(t){let e=this.element,n=this.constructing;this.__flushElement(e,n),this.constructing=null,this.operations=null,this.pushModifiers(t),this.pushElement(n,null),this.didOpenElement(n)}__flushElement(t,e){this.dom.insertBefore(t,e,this.nextSibling)}closeElement(){return this.willCloseElement(),this.popElement(),this.popModifiers()}pushRemoteElement(t,e,n){return this.__pushRemoteElement(t,e,n)}__pushRemoteElement(t,e,n){if(this.pushElement(t,n),void 0===n)for(;t.lastChild;)t.removeChild(t.lastChild);let r=new nm(t);return this.pushBlock(r,!0)}popRemoteElement(){const t=this.popBlock();return this.popElement(),t}pushElement(t,e=null){this.cursors.push(new gg(t,e))}pushModifiers(t){this.modifierStack.push(t)}popModifiers(){return this.modifierStack.pop()}didAppendBounds(t){return this.block().didAppendBounds(t),t}didAppendNode(t){return this.block().didAppendNode(t),t}didOpenElement(t){return this.block().openElement(t),t}willCloseElement(){this.block().closeElement()}appendText(t){return this.didAppendNode(this.__appendText(t))}__appendText(t){let{dom:e,element:n,nextSibling:r}=this,i=e.createTextNode(t);return e.insertBefore(n,i,r),i}__appendNode(t){return this.dom.insertBefore(this.element,t,this.nextSibling),t}__appendFragment(t){let e=t.firstChild;if(e){let n=new mg(this.element,e,t.lastChild);return this.dom.insertBefore(this.element,t,this.nextSibling),n}{const t=this.__appendComment("");return new mg(this.element,t,t)}}__appendHTML(t){return this.dom.insertHTMLBefore(this.element,this.nextSibling,t)}appendDynamicHTML(t){let e=this.trustedContent(t);this.didAppendBounds(e)}appendDynamicText(t){let e=this.untrustedContent(t);return this.didAppendNode(e),e}appendDynamicFragment(t){let e=this.__appendFragment(t);this.didAppendBounds(e)}appendDynamicNode(t){let e=this.__appendNode(t),n=new mg(this.element,e,e);this.didAppendBounds(n)}trustedContent(t){return this.__appendHTML(t)}untrustedContent(t){return this.__appendText(t)}appendComment(t){return this.didAppendNode(this.__appendComment(t))}__appendComment(t){let{dom:e,element:n,nextSibling:r}=this,i=e.createComment(t);return e.insertBefore(n,i,r),i}__setAttribute(t,e,n){this.dom.setAttribute(this.constructing,t,e,n)}__setProperty(t,e){this.constructing[t]=e}setStaticAttribute(t,e,n){this.__setAttribute(t,e,n)}setDynamicAttribute(t,e,n,r){let i=$g(this.constructing,t,r);return i.set(this,e,this.env),i}},em=class{first=null;last=null;nesting=0;constructor(t){this.parent=t}parentElement(){return this.parent}firstNode(){return this.first.firstNode()}lastNode(){return this.last.lastNode()}openElement(t){this.didAppendNode(t),this.nesting++}closeElement(){this.nesting--}didAppendNode(t){0===this.nesting&&(this.first||(this.first=new Jg(t)),this.last=new Qg(t))}didAppendBounds(t){0===this.nesting&&(this.first||(this.first=t),this.last=t)}finalize(t){null===this.first&&t.appendComment("")}},nm=class extends em{constructor(t){super(t),et(this,()=>{this.parentElement()===this.firstNode().parentNode&&vg(this)})}},rm=class extends em{constructor(t){super(t)}reset(){nt(this);let t=vg(this);return this.first=null,this.last=null,this.nesting=0,t}},im=class{constructor(t,e){this.parent=t,this.boundList=e,this.parent=t,this.boundList=e}parentElement(){return this.parent}firstNode(){return this.boundList[0].firstNode()}lastNode(){let t=this.boundList;return t[t.length-1].lastNode()}openElement(t){}closeElement(){}didAppendNode(t){}didAppendBounds(t){}finalize(t){this.boundList.length}};function sm(t,e){return tm.forInitialRender(t,e)}var om={foreignObject:1,desc:1,title:1},am=Object.create(null),lm=class{constructor(t){this.document=t,this.setupUselessElement()}setupUselessElement(){this.uselessElement=this.document.createElement("div")}createElement(t,e){let n,r,i,s;if(e?(n="http://www.w3.org/2000/svg"===e.namespaceURI||"svg"===t,i=e.namespaceURI===Rg||"math"===t,r=!!om[e.tagName]):(n="svg"===t,i="math"===t,r=!1),!i&&!n||r)return this.document.createElement(t);if(am[t])throw new Error(`Cannot create a ${t} inside an SVG context`);return s=i?Rg:"http://www.w3.org/2000/svg",this.document.createElementNS(s,t)}insertBefore(t,e,n){t.insertBefore(e,n)}insertHTMLBefore(t,e,n){if(""===n){const n=this.createComment("");return t.insertBefore(n,e),new mg(t,n,n)}const r=e?e.previousSibling:t.lastChild;let i;if(null===e)t.insertAdjacentHTML("beforeend",n),i=t.lastChild;else if(e instanceof HTMLElement)e.insertAdjacentHTML("beforebegin",n),i=e.previousSibling;else{const{uselessElement:r}=this;t.insertBefore(r,e),r.insertAdjacentHTML("beforebegin",n),i=r.previousSibling,t.removeChild(r)}const s=r?r.nextSibling:t.firstChild;return new mg(t,s,i)}createTextNode(t){return this.document.createTextNode(t)}createComment(t){return this.document.createComment(t)}},cm=class extends lm{createElementNS(t,e){return this.document.createElementNS(t,e)}setAttribute(t,e,n,r=null){r?t.setAttributeNS(r,e,n):t.setAttribute(e,n)}};function um(t){return t}function hm(t){return"getDebugCustomRenderTree"in t}new class{validate(t){switch(t){case 4:case 5:case 3:case 2:case 1:case 0:case 6:case 7:case 8:return!0;default:return!1}}expected(){return"Register"}};var dm=Symbol("TYPE"),pm=Symbol("INNER"),fm=Symbol("OWNER"),gm=Symbol("ARGS"),mm=Symbol("RESOLVED"),ym=new WeakSet;function vm(t){return ym.has(t)}function bm(t,e){return vm(t)&&t[dm]===e}var wm=class{[dm];[pm];[fm];[gm];[mm];constructor(t,e,n,r,i=!1){ym.add(this),this[dm]=t,this[pm]=e,this[fm]=n,this[gm]=r,this[mm]=i}};function _m(t){let e,n,r,i,s,o=t;for(;;){let{[gm]:t,[pm]:a}=o;if(null!==t){let{named:r,positional:i}=t;i.length>0&&(e=void 0===e?i:i.concat(e)),void 0===n&&(n=[]),n.unshift(r)}if(!vm(a)){r=a,i=o[fm],s=o[mm];break}o=a}return{definition:r,owner:i,resolved:s,positional:e,named:n}}function xm(t,e,n,r,i=!1){return new wm(t,e,n,r,i)}var Cm=0,Sm=class{id=Cm++;value;constructor(t){this.value=t}get(){return this.value}release(){this.value=null}toString(){let t=`Ref ${this.id}`;if(null===this.value)return`${t} (released)`;try{return`${t}: ${this.value}`}catch{return t}}},km=class{stack=new se;refs=new WeakMap;roots=new Set;nodes=new WeakMap;begin(){this.reset()}create(t,e){let n=Fp({},e,{bounds:null,refs:new Set});this.nodes.set(t,n),this.appendChild(n,t),this.enter(t)}update(t){this.enter(t)}didRender(t,e){this.nodeFor(t).bounds=e,this.exit()}willDestroy(t){this.refs.get(t).release()}commit(){this.reset()}capture(){return this.captureRefs(this.roots)}reset(){if(0!==this.stack.size){let t=this.stack.toArray()[0],e=this.refs.get(t);for(void 0!==e&&this.roots.delete(e);!this.stack.isEmpty();)this.stack.pop()}}enter(t){this.stack.push(t)}exit(){this.stack.pop()}nodeFor(t){return this.nodes.get(t)}appendChild(t,e){let n=this.stack.current,r=new Sm(e);if(this.refs.set(e,r),n){let e=this.nodeFor(n);e.refs.add(r),t.parent=e}else this.roots.add(r)}captureRefs(t){let e=[];return t.forEach(n=>{let r=n.get();r?e.push(this.captureNode(`render-node:${n.id}`,r)):t.delete(n)}),e}captureNode(t,e){let n=this.nodeFor(e),{type:r,name:i,args:s,instance:o,refs:a}=n,l=this.captureBounds(n),c=this.captureRefs(a);return{id:t,type:r,name:i,args:sy(s),instance:o,bounds:l,children:c}}captureBounds(t){let e=t.bounds;return{parentElement:e.parentElement(),firstNode:e.firstNode(),lastNode:e.lastNode()}}},Em=new class{evaluateOpcode=new Array(113).fill(null);constructor(){}add(t,e,n="syscall"){this.evaluateOpcode[t]={syscall:"machine"!==n,evaluate:e}}evaluate(t,e,n){let r=this.evaluateOpcode[n];r.syscall?(e.isMachine,r.syscall,e.isMachine,e.type,r.evaluate(t,e)):(e.isMachine,r.syscall,e.isMachine,e.type,r.evaluate(t.lowlevel,e))}};Em.add(39,t=>t.pushChildScope()),Em.add(40,t=>t.popScope()),Em.add(59,t=>t.pushDynamicScope()),Em.add(60,t=>t.popDynamicScope()),Em.add(28,(t,{op1:e})=>{t.stack.push(t.constants.getValue(e))}),Em.add(29,(t,{op1:e})=>{t.stack.push(pe(t.constants.getValue(e)))}),Em.add(30,(t,{op1:e})=>{let n=t.stack;if(e>=0){let r=t.constants.getValue(e);n.push(r)}else n.push(Lp(e))}),Em.add(31,t=>{let e,n=t.stack,r=um(n.pop());e=void 0===r?ce:null===r?ue:!0===r?he:!1===r?de:le(r),n.push(e)}),Em.add(33,(t,{op1:e,op2:n})=>{let r=um(t.fetchValue(um(e)))-n;t.stack.dup(r)}),Em.add(34,(t,{op1:e})=>{t.stack.pop(e)}),Em.add(35,(t,{op1:e})=>{t.load(um(e))}),Em.add(36,(t,{op1:e})=>{t.fetch(um(e))}),Em.add(58,(t,{op1:e})=>{let n=t.constants.getArray(e);t.bindDynamicScope(n)}),Em.add(69,(t,{op1:e})=>{t.enter(e)}),Em.add(70,t=>{t.exit()}),Em.add(63,(t,{op1:e})=>{t.stack.push(t.constants.getValue(e))}),Em.add(62,t=>{t.stack.push(t.scope())}),Em.add(61,t=>{let e=t.stack,n=e.pop();n?e.push(t.compile(n)):e.push(null)}),Em.add(64,t=>{let{stack:e}=t,n=um(e.pop()),r=um(e.pop()),i=um(e.pop()),s=um(e.pop());if(null===i||null===n)return t.lowlevel.pushFrame(),void t.pushScope(r??t.scope());let o=r;{let t=i.parameters,e=t.length;if(e>0){o=o.child();for(let n=0;n{let n=um(t.stack.pop()),r=Boolean(_e(n));be(n)?r&&t.lowlevel.goto(e):(r&&t.lowlevel.goto(e),t.updateWith(new Rm(n)))}),Em.add(66,(t,{op1:e})=>{let n=um(t.stack.pop()),r=Boolean(_e(n));be(n)?r||t.lowlevel.goto(e):(r||t.lowlevel.goto(e),t.updateWith(new Rm(n)))}),Em.add(67,(t,{op1:e,op2:n})=>{um(t.stack.peek())===n&&t.lowlevel.goto(e)}),Em.add(68,t=>{let e=um(t.stack.peek());be(e)||t.updateWith(new Rm(e))}),Em.add(71,t=>{let{stack:e}=t,n=um(e.pop());e.push(ge(()=>B(_e(n))))});var Rm=class{last;constructor(t){this.ref=t,this.last=_e(t)}evaluate(t){let{last:e,ref:n}=this;e!==_e(n)&&t.throw()}},Tm=class{last;constructor(t,e){this.ref=t,this.filter=e,this.last=e(_e(t))}evaluate(t){let{last:e,ref:n,filter:r}=this;e!==r(_e(n))&&t.throw()}},Lm=class{tag=yt;lastRevision=1;target;finalize(t,e){this.target=e,this.didModify(t)}evaluate(t){let{tag:e,target:n,lastRevision:r}=this;!t.alwaysRevalidate&&ut(e,r)&&(Ft(e),t.goto(n))}didModify(t){this.tag=t,this.lastRevision=ct(this.tag),Ft(t)}},Im=class{constructor(t){this.debugLabel=t}evaluate(){It(this.debugLabel)}},Pm=class{constructor(t){this.target=t}evaluate(){let t=Pt();this.target.didModify(t)}};Em.add(41,(t,{op1:e})=>{t.tree().appendText(t.constants.getValue(e))}),Em.add(42,(t,{op1:e})=>{t.tree().appendComment(t.constants.getValue(e))}),Em.add(48,(t,{op1:e})=>{t.tree().openElement(t.constants.getValue(e))}),Em.add(49,t=>{let e=um(_e(um(t.stack.pop())));t.tree().openElement(e)}),Em.add(50,t=>{let e=um(t.stack.pop()),n=um(t.stack.pop()),r=um(t.stack.pop()),i=um(_e(e)),s=um(_e(n)),o=_e(r);be(e)||t.updateWith(new Rm(e)),void 0===s||be(n)||t.updateWith(new Rm(n));let a=t.tree().pushRemoteElement(i,o,s);if(t.associateDestroyable(a),void 0!==t.env.debugRenderTree){let r=Xm(void 0===s?{}:{insertBefore:n},[e]);t.env.debugRenderTree.create(a,{type:"keyword",name:"in-element",args:r,instance:null}),et(a,()=>{t.env.debugRenderTree?.willDestroy(a)})}}),Em.add(56,t=>{let e=t.tree().popRemoteElement();void 0!==t.env.debugRenderTree&&t.env.debugRenderTree.didRender(e,e)}),Em.add(54,t=>{let e=um(t.fetchValue(6)),n=null;e&&(n=e.flush(t),t.loadValue(6,null)),t.tree().flushElement(n)}),Em.add(55,t=>{let e=t.tree().closeElement();null!==e&&e.forEach(e=>{t.env.scheduleInstallModifier(e);const n=e.manager.getDestroyable(e.state);null!==n&&t.associateDestroyable(n)})}),Em.add(57,(t,{op1:e})=>{let n=um(t.stack.pop());if(!t.env.isInteractive)return;let r=t.getOwner(),i=t.constants.getValue(e),{manager:s}=i,{constructing:o}=t.tree(),a=n.capture(),l=s.create(r,o,i.state,a),c={manager:s,state:l,definition:i};um(t.fetchValue(6)).addModifier(t,c,a);let u=s.getTag(l);return null!==u?(Ft(u),t.updateWith(new Mm(u,c))):void 0}),Em.add(108,t=>{let{stack:e}=t,n=um(e.pop()),r=um(e.pop());if(!t.env.isInteractive)return;let i=r.capture(),{positional:s,named:o}=i,{constructing:a}=t.tree(),l=t.getOwner(),c=ge(()=>{let t,e,r=_e(n);if(!ie(r))return;if(bm(r,2)){let{definition:n,owner:a,positional:l,named:c}=_m(r);e=n,t=a,void 0!==l&&(i.positional=l.concat(s)),void 0!==c&&(i.named=Object.assign({},...c,o))}else e=r,t=l;let c=Mu(e);if(null===c)throw new Error("BUG: modifier manager expected");let u={resolvedName:null,manager:c,state:e};return{manager:c,state:c.create(t,a,u.state,i),definition:u}}),u=_e(c),h=null;return void 0!==u&&(um(t.fetchValue(6)).addModifier(t,u,i),h=u.manager.getTag(u.state),null!==h&&Ft(h)),!be(n)||h?t.updateWith(new Am(h,u,c)):void 0});var Mm=class{lastUpdated;constructor(t,e){this.tag=t,this.modifier=e,this.lastUpdated=ct(t)}evaluate(t){let{modifier:e,tag:n,lastUpdated:r}=this;Ft(n),ut(n,r)||(t.env.scheduleUpdateModifier(e),this.lastUpdated=ct(n))}},Am=class{lastUpdated;constructor(t,e,n){this.tag=t,this.instance=e,this.instanceRef=n,this.lastUpdated=ct(t??xt)}evaluate(t){let{tag:e,lastUpdated:n,instance:r,instanceRef:i}=this,s=_e(i);if(s!==r){if(void 0!==r){let t=r.manager.getDestroyable(r.state);null!==t&&nt(t)}if(void 0!==s){let{manager:n,state:r}=s,i=n.getDestroyable(r);null!==i&&tt(this,i),e=n.getTag(r),null!==e&&(this.lastUpdated=ct(e)),this.tag=e,t.env.scheduleInstallModifier(s)}this.instance=s}else null===e||ut(e,n)||(t.env.scheduleUpdateModifier(r),this.lastUpdated=ct(e));null!==e&&Ft(e)}};Em.add(51,(t,{op1:e,op2:n,op3:r})=>{let i=t.constants.getValue(e),s=t.constants.getValue(n),o=r?t.constants.getValue(r):null;t.tree().setStaticAttribute(i,s,o)}),Em.add(52,(t,{op1:e,op2:n,op3:r})=>{let i=t.constants.getValue(e),s=t.constants.getValue(n),o=um(t.stack.pop()),a=_e(o),l=r?t.constants.getValue(r):null,c=t.tree().setDynamicAttribute(i,a,s,l);be(o)||t.updateWith(new Om(o,c,t.env))});var Om=class{updateRef;constructor(t,e,n){let r=!1;this.updateRef=ge(()=>{let i=_e(t);r?e.update(i,n):r=!0}),_e(this.updateRef)}evaluate(){_e(this.updateRef)}};Em.add(78,(t,{op1:e})=>{let n=t.constants.getValue(e),{manager:r,capabilities:i}=n,s={definition:n,manager:r,capabilities:i,state:null,handle:null,table:null,lookup:null};t.stack.push(s)}),Em.add(80,(t,{op1:e})=>{let n,r=t.stack,i=um(_e(um(r.pop()))),s=t.constants,o=t.getOwner();if(s.getValue(e),t.loadValue(7,null),"string"==typeof i){let e=function(t,e,n,r){let i=t?.lookupComponent?.(n,r)??null;return e.resolvedComponent(i,n)}(t.context.resolver,s,i,o);n=e}else n=vm(i)?i:s.component(i,o);r.push(n)}),Em.add(81,t=>{let e,n=t.stack,r=_e(um(n.pop())),i=t.constants;e=vm(r)?r:i.component(r,t.getOwner(),!0),n.push(e)}),Em.add(79,t=>{let e,n,{stack:r}=t,i=r.pop();vm(i)?n=e=null:(n=i.manager,e=i.capabilities),r.push({definition:i,capabilities:e,manager:n,state:null,handle:null,table:null})}),Em.add(82,(t,{op1:e,op2:n,op3:r})=>{let i=t.stack,s=t.constants.getArray(e),o=r>>4,a=8&r,l=7&r?t.constants.getArray(n):$p;t.args.setup(i,s,l,o,!!a),i.push(t.args)}),Em.add(83,t=>{let{stack:e}=t;e.push(t.args.empty(e))}),Em.add(86,t=>{let e=t.stack,n=um(e.pop()).capture();e.push(n)}),Em.add(85,(t,{op1:e})=>{let n=t.stack,r=t.fetchValue(um(e)),i=um(n.pop()),{definition:s}=r;if(bm(s,0)){s.manager;let e=t.constants,{definition:n,owner:o,resolved:a,positional:l,named:c}=_m(s);if(a)s=n;else if("string"==typeof n){let r=t.context.resolver?.lookupComponent?.(n,o)??null;s=e.resolvedComponent(r,n)}else s=e.component(n,o);void 0!==c&&i.named.merge(Fp({},...c)),void 0!==l&&(i.realloc(l.length),i.positional.prepend(l));let{manager:u}=s;r.definition=s,r.manager=u,r.capabilities=s.capabilities,t.loadValue(7,o)}let{manager:o,state:a}=s;if(!vu(0,r.capabilities,fu.prepareArgs))return void n.push(i);let l=i.blocks.values,c=i.blocks.names,u=o.prepareArgs(a,i);if(u){i.clear();for(let i=0;i{let n=um(t.fetchValue(4)),{definition:r,manager:i,capabilities:s}=n;if(!vu(0,s,fu.createInstance))return;let o=null;vu(0,s,fu.dynamicScope)&&(o=t.dynamicScope());let a=1&e,l=null;vu(0,s,fu.createArgs)&&(l=um(t.stack.peek()));let c=null;vu(0,s,fu.createCaller)&&(c=t.getSelf());let u=i.create(t.getOwner(),r.state,l,t.env,o,c,!!a);n.state=u,vu(0,s,fu.updateHook)&&t.updateWith(new jm(u,i,o))}),Em.add(88,(t,{op1:e})=>{let{manager:n,state:r,capabilities:i}=um(t.fetchValue(um(e))),s=n.getDestroyable(r);s&&t.associateDestroyable(s)}),Em.add(97,(t,{op1:e})=>{t.beginCacheGroup(void 0),t.tree().pushAppendingBlock()}),Em.add(89,t=>{t.loadValue(6,new Nm)}),Em.add(53,(t,{op1:e,op2:n,op3:r})=>{let i=t.constants.getValue(e),s=t.constants.getValue(n),o=um(t.stack.pop()),a=r?t.constants.getValue(r):null;um(t.fetchValue(6)).setAttribute(i,o,s,a)}),Em.add(105,(t,{op1:e,op2:n,op3:r})=>{let i=t.constants.getValue(e),s=t.constants.getValue(n),o=r?t.constants.getValue(r):null;um(t.fetchValue(6)).setStaticAttribute(i,s,o)});var Nm=class{attributes=ne();classes=[];modifiers=[];setAttribute(t,e,n,r){let i={value:e,namespace:r,trusting:n};"class"===t&&this.classes.push(e),this.attributes[t]=i}setStaticAttribute(t,e,n){let r={value:e,namespace:n};"class"===t&&this.classes.push(e),this.attributes[t]=r}addModifier(t,e,n){if(this.modifiers.push(e),void 0!==t.env.debugRenderTree){const{manager:r,definition:i,state:s}=e;if(null===s||"object"!=typeof s&&"function"!=typeof s)return;let{element:o,constructing:a}=t.tree(),l=i.resolvedName??r.getDebugName(i.state),c=r.getDebugInstance(s),u=new mg(o,a,a);t.env.debugRenderTree.create(s,{type:"modifier",name:l,args:n,instance:c}),t.env.debugRenderTree.didRender(s,u),t.associateDestroyable(s),t.updateWith(new Bm(s)),t.updateWith(new $m(s,u)),et(s,()=>{t.env.debugRenderTree?.willDestroy(s)})}}flush(t){let e,n=this.attributes;for(let r in this.attributes){if("type"===r){e=n[r];continue}let i=Xt(this.attributes[r]);"class"===r?zm(t,"class",Fm(this.classes),i.namespace,i.trusting):zm(t,r,i.value,i.namespace,i.trusting)}return void 0!==e&&zm(t,"type",e.value,e.namespace,e.trusting),this.modifiers}};function Fm(t){return 0===t.length?"":1===t.length?t[0]:function(t){return t.every(t=>"string"==typeof t)}(t)?t.join(" "):(e=t,ge(()=>{let t=[];for(const n of e){let e=bg("string"==typeof n?n:_e(n));e&&t.push(e)}return 0===t.length?null:t.join(" ")}));var e}function zm(t,e,n,r,i=!1){if("string"==typeof n)t.tree().setStaticAttribute(e,n,r);else{let s=t.tree().setDynamicAttribute(e,_e(n),i,r);be(n)||t.updateWith(new Om(n,s,t.env))}}function Dm(t,e,n,r,i){let s=n.table.symbols.indexOf(t),o=r.get(e);-1!==s&&i.scope().bindBlock(s+1,o),n.lookup&&(n.lookup[t]=o)}Em.add(99,(t,{op1:e})=>{let{definition:n,state:r}=um(t.fetchValue(um(e))),{manager:i}=n,s=um(t.fetchValue(6));i.didCreateElement(r,t.tree().constructing,s)}),Em.add(90,(t,{op1:e,op2:n})=>{let{definition:r,state:i}=um(t.fetchValue(um(e))),{manager:s}=r,o=s.getSelf(i);if(void 0!==t.env.debugRenderTree){let r,s=um(t.fetchValue(um(e))),{definition:a,manager:l}=s;if(t.stack.peek()===t.args)r=t.args.capture();else{let e=t.constants.getArray(n);t.args.setup(t.stack,e,[],0,!0),r=t.args.capture()}let c=a.compilable;if(null===c){vu(0,s.capabilities,fu.dynamicLayout);let e=t.context.resolver;c=null===e?null:l.getDynamicLayout(i,e)}if(t.associateDestroyable(s),hm(l))l.getDebugCustomRenderTree(s.definition.state,s.state,r).forEach(e=>{let{bucket:n}=e;t.env.debugRenderTree.create(n,e),et(s,()=>{t.env.debugRenderTree?.willDestroy(n)}),t.updateWith(new Bm(n))});else{let e=function(t,e=t.manager){return t.resolvedName??t.debugName??e.getDebugName(t.state)}(a,l);t.env.debugRenderTree.create(s,{type:"component",name:e,args:r,instance:_e(o)}),et(s,()=>{t.env.debugRenderTree?.willDestroy(s)}),t.updateWith(new Bm(s))}}t.stack.push(o)}),Em.add(91,(t,{op1:e})=>{let{definition:n,state:r}=um(t.fetchValue(um(e))),{manager:i}=n,s=i.getTagName(r);t.stack.push(s)}),Em.add(92,(t,{op1:e})=>{let n=um(t.fetchValue(um(e))),{manager:r,definition:i}=n,{stack:s}=t,{compilable:o}=i;if(null===o){let{capabilities:e}=n;vu(0,e,fu.dynamicLayout);let i=t.context.resolver;o=null===i?null:r.getDynamicLayout(n.state,i),null===o&&(o=vu(0,e,fu.wrapped)?Pp(t.constants.defaultTemplate).asWrappedLayout():Pp(t.constants.defaultTemplate).asLayout())}let a=o.compile(t.context);s.push(o.symbolTable),s.push(a)}),Em.add(75,(t,{op1:e})=>{let n=um(t.stack.pop()),r=um(t.stack.pop()),{manager:i,capabilities:s}=n,o={definition:n,manager:i,capabilities:s,state:null,handle:r.handle,table:r.symbolTable,lookup:null};t.loadValue(um(e),o)}),Em.add(95,(t,{op1:e})=>{let{stack:n}=t,r=um(n.pop()),i=um(n.pop()),s=um(t.fetchValue(um(e)));s.handle=r,s.table=i}),Em.add(38,(t,{op1:e})=>{let n,{table:r,manager:i,capabilities:s,state:o}=um(t.fetchValue(um(e)));vu(0,s,fu.hasSubOwner)?(n=i.getOwner(o),t.loadValue(7,null)):(n=t.fetchValue(7),null===n?n=t.getOwner():t.loadValue(7,null)),t.pushRootScope(r.symbols.length+1,n)}),Em.add(17,(t,{op1:e})=>{let n=um(t.fetchValue(um(e))),r=t.scope(),i=um(t.stack.peek()),s=i.named.atNames;for(let o=s.length-1;o>=0;o--){let t=Xt(s[o]),e=n.table.symbols.indexOf(t),a=i.named.get(t,!0);-1!==e&&r.bindSymbol(e+1,a),n.lookup&&(n.lookup[t]=a)}}),Em.add(18,(t,{op1:e})=>{let n=um(t.fetchValue(um(e))),{blocks:r}=um(t.stack.peek());for(const[i]of Hp(r.names))Dm(Xt(r.symbolNames[i]),Xt(r.names[i]),n,r,t)}),Em.add(96,(t,{op1:e})=>{let n=um(t.fetchValue(um(e)));t.call(n.handle)}),Em.add(100,(t,{op1:e})=>{let n=um(t.fetchValue(um(e))),{manager:r,state:i,capabilities:s}=n,o=t.tree().popBlock();void 0!==t.env.debugRenderTree&&(hm(r)?r.getDebugCustomRenderTree(n.definition.state,i,ly).reverse().forEach(e=>{let{bucket:n}=e;t.env.debugRenderTree.didRender(n,o),t.updateWith(new $m(n,o))}):(t.env.debugRenderTree.didRender(n,o),t.updateWith(new $m(n,o)))),vu(0,s,fu.createInstance)&&(um(r).didRenderLayout(i,o),t.env.didCreate(n),t.updateWith(new Um(n,o)))}),Em.add(98,t=>{t.commitCacheGroup()});var jm=class{constructor(t,e,n){this.component=t,this.manager=e,this.dynamicScope=n}evaluate(t){let{component:e,manager:n,dynamicScope:r}=this;n.update(e,r)}},Um=class{constructor(t,e){this.component=t,this.bounds=e}evaluate(t){let{component:e,bounds:n}=this,{manager:r,state:i}=e;r.didUpdateLayout(i,n),t.env.didUpdate(e)}},Bm=class{constructor(t){this.bucket=t}evaluate(t){t.env.debugRenderTree?.update(this.bucket)}},$m=class{constructor(t,e){this.bucket=t,this.bounds=e}evaluate(t){t.env.debugRenderTree?.didRender(this.bucket,this.bounds)}},qm=(new class{validate(t){return"object"==typeof t&&null!==t&&oe in t}expected(){return"Reference"}},class{stack=null;positional=new Wm;named=new Hm;blocks=new Km;constructor(){}empty(t){let e=t.registers[3]+1;return this.named.empty(t,e),this.positional.empty(t,e),this.blocks.empty(t,e),this}setup(t,e,n,r,i){this.stack=t;let s=this.named,o=e.length,a=t.registers[3]-o+1;s.setup(t,a,o,e,i);let l=a-r;this.positional.setup(t,l,r);let c=this.blocks,u=n.length,h=l-3*u;c.setup(t,h,u,n)}get base(){return this.blocks.base}get length(){return this.positional.length+this.named.length+3*this.blocks.length}at(t){return this.positional.at(t)}realloc(t){let{stack:e}=this;if(t>0&&null!==e){let{positional:n,named:r}=this,i=n.base+t;for(let t=n.length+r.length-1;t>=0;t--)e.copy(t+n.base,t+i);n.base+=t,r.base+=t,e.registers[3]+=t}}capture(){let t=0===this.positional.length?ay:this.positional.capture();return{named:0===this.named.length?oy:this.named.capture(),positional:t}}clear(){let{stack:t,length:e}=this;e>0&&null!==t&&t.pop(e)}}),Vm=Bp(),Wm=class{base=0;length=0;stack=null;_references=null;constructor(){}empty(t,e){this.stack=t,this.base=e,this.length=0,this._references=Vm}setup(t,e,n){this.stack=t,this.base=e,this.length=n,this._references=0===n?Vm:null}at(t){let{base:e,length:n,stack:r}=this;return t<0||t>=n?ce:um(r.get(t,e))}capture(){return this.references}prepend(t){let e=t.length;if(e>0){let{base:n,length:r,stack:i}=this;this.base=n-=e,this.length=r+e;for(let s=0;s0){let{names:n,length:r,stack:i}=this,s=n.slice();for(const o of e)-1===s.indexOf(o)&&(r=s.push(o),i.push(t[o]));this.length=r,this._references=null,this._names=s,this._atNames=null}}get references(){let t=this._references;if(!t){let{base:e,length:n,stack:r}=this;t=this._references=r.slice(e,e+n)}return t}toSyntheticName(t){return t.slice(1)}toAtName(t){return`@${t}`}};function Gm(t){return`&${t}`}var Zm=Bp(),Km=class{internalValues=null;_symbolNames=null;internalTag=null;names=$p;length=0;base=0;constructor(){}empty(t,e){this.stack=t,this.names=$p,this.base=e,this.length=0,this._symbolNames=null,this.internalTag=yt,this.internalValues=Zm}setup(t,e,n,r){this.stack=t,this.names=r,this.base=e,this.length=n,this._symbolNames=null,0===n?(this.internalTag=yt,this.internalValues=Zm):(this.internalTag=null,this.internalValues=null)}get values(){let t=this.internalValues;if(!t){let{base:e,length:n,stack:r}=this;t=this.internalValues=r.slice(e,e+3*n)}return t}has(t){return-1!==this.names.indexOf(t)}get(t){let e=this.names.indexOf(t);if(-1===e)return null;let{base:n,stack:r}=this,i=um(r.get(3*e,n)),s=um(r.get(3*e+1,n)),o=um(r.get(3*e+2,n));return null===o?null:[o,s,i]}capture(){return new Ym(this.names,this.values)}get symbolNames(){let t=this._symbolNames;return null===t&&(t=this._symbolNames=this.names.map(Gm)),t}},Ym=class{length;constructor(t,e){this.names=t,this.values=e,this.length=t.length}has(t){return-1!==this.names.indexOf(t)}get(t){let e=this.names.indexOf(t);return-1===e?null:[this.values[3*e+2],this.values[3*e+1],this.values[3*e]]}};function Xm(t,e){return{named:t,positional:e}}function Jm(t){let e=ne();for(const[n,r]of Object.entries(t))e[n]=_e(r);return e}function Qm(t){return t.map(_e)}function ty(t){return{named:Jm(t.named),positional:Qm(t.positional)}}var ey=Symbol("ARGUMENT_ERROR");function ny(t){return null!==t&&"object"==typeof t&&t[ey]}function ry(t){return{[ey]:!0,error:t}}function iy(t){let e=ne();for(const[r,i]of Object.entries(t))try{e[r]=_e(i)}catch(n){e[r]=ry(n)}return e}function sy(t){return{named:iy(t.named),positional:(e=t.positional,e.map(t=>{try{return _e(t)}catch(e){return ry(e)}}))};var e}var oy=Object.freeze(Object.create(null)),ay=Vm,ly=Xm(oy,ay),cy=a({FALSE_REFERENCE:()=>de,NULL_REFERENCE:()=>ue,REFERENCE:()=>oe,TRUE_REFERENCE:()=>he,UNDEFINED_REFERENCE:()=>ce,childRefFor:()=>Ce,childRefFromParts:()=>Se,createComputeRef:()=>ge,createConstRef:()=>pe,createDebugAliasRef:()=>{},createInvokableRef:()=>ve,createIteratorItemRef:()=>vy,createIteratorRef:()=>yy,createPrimitiveRef:()=>le,createReadOnlyRef:()=>me,createUnboundRef:()=>fe,isConstRef:()=>be,isInvokableRef:()=>ye,isUpdatableRef:()=>we,updateRef:()=>xe,valueForRef:()=>_e}),uy={},hy=(t,e)=>e,dy=(t,e)=>String(e),py=t=>null===t?uy:t,fy=class{_weakMap;_primitiveMap;get weakMap(){return void 0===this._weakMap&&(this._weakMap=new WeakMap),this._weakMap}get primitiveMap(){return void 0===this._primitiveMap&&(this._primitiveMap=new Map),this._primitiveMap}set(t,e){ie(t)?this.weakMap.set(t,e):this.primitiveMap.set(t,e)}get(t){return ie(t)?this.weakMap.get(t):this.primitiveMap.get(t)}},gy=new fy;function my(t){let e=new fy;return(n,r)=>{let i=t(n,r),s=e.get(i)||0;return e.set(i,s+1),0===s?i:function(t,e){let n=gy.get(t);void 0===n&&(n=[],gy.set(t,n));let r=n[e];return void 0===r&&(r={value:t,count:e},n[e]=r),r}(i,s)}}function yy(t,e){return ge(()=>{let n=_e(t),r=function(t){switch(t){case"@key":return my(hy);case"@index":return my(dy);case"@identity":return my(py);default:return e=t,my(t=>null==t?t:V(t,e))}var e}(e);if(Array.isArray(n))return new wy(n,r);let i=U(n);return null===i?new wy(Up,()=>null):new by(i,r)})}function vy(t){let e=t,n=gt();return ge(()=>(Ft(n),e),t=>{e!==t&&(e=t,pt(n))})}var by=class{constructor(t,e){this.inner=t,this.keyFor=e}isEmpty(){return this.inner.isEmpty()}next(){let t=this.inner.next();return null!==t&&(t.key=this.keyFor(t.value,t.memo)),t}},wy=class{current;pos=0;constructor(t,e){this.iterator=t,this.keyFor=e,0===t.length?this.current={kind:"empty"}:this.current={kind:"first",value:t[this.pos]}}isEmpty(){return"empty"===this.current.kind}next(){let t,e=this.current;if("first"===e.kind)this.current={kind:"progress"},t=e.value;else{if(this.pos>=this.iterator.length-1)return null;t=this.iterator[++this.pos]}let{keyFor:n}=this;return{key:n(t,this.pos),value:t,memo:this.pos}}},_y=class t{bucket;constructor(t){this.bucket=t?Fp({},t):{}}get(t){return this.bucket[t]}set(t,e){return this.bucket[t]=e}child(){return new t(this.bucket)}},xy=class t{static root(e,{self:n,size:r=0}){let i=new Array(r+1).fill(ce);return new t(e,i,null).init({self:n})}static sized(e,n=0){let r=new Array(n+1).fill(ce);return new t(e,r,null)}owner;slots;callerScope;constructor(t,e,n){this.owner=t,this.slots=e,this.callerScope=n}init({self:t}){return this.slots[0]=t,this}snapshot(){return this.slots.slice()}getSelf(){return this.get(0)}getSymbol(t){return this.get(t)}getBlock(t){let e=this.get(t);return e===ce?null:e}bind(t,e){this.set(t,e)}bindSelf(t){this.set(0,t)}bindSymbol(t,e){this.set(t,e)}bindBlock(t,e){this.set(t,e)}bindCallerScope(t){this.callerScope=t}getCallerScope(){return this.callerScope}child(){return new t(this.owner,this.slots.slice(),this.callerScope)}get(t){if(t>=this.slots.length)throw new RangeError(`BUG: cannot get $${t} from scope; length=${this.slots.length}`);return this.slots[t]}set(t,e){if(t>=this.slots.length)throw new RangeError(`BUG: cannot get $${t} from scope; length=${this.slots.length}`);this.slots[t]=e}};["b","big","blockquote","body","br","center","code","dd","div","dl","dt","em","embed","h1","h2","h3","h4","h5","h6","head","hr","i","img","li","listing","main","meta","nobr","ol","p","pre","ruby","s","small","span","strong","strike","sub","sup","table","tt","u","ul","var"].forEach(t=>am[t]=1);var Cy=/[\t\n\v\f\r \xa0\u{1680}\u{180e}\u{2000}-\u{200a}\u{2028}\u{2029}\u{202f}\u{205f}\u{3000}\u{feff}]/u;function Sy(t){return Cy.test(t)}var ky=class extends lm{namespace;constructor(t){super(t),this.document=t,this.namespace=null}setAttribute(t,e,n){t.setAttribute(e,n)}removeAttribute(t,e){t.removeAttribute(e)}insertAfter(t,e,n){this.insertBefore(t,e,n.nextSibling)}},Ey=ky,Ry=Symbol("TRANSACTION"),Ty=class{scheduledInstallModifiers=[];scheduledUpdateModifiers=[];createdComponents=[];updatedComponents=[];didCreate(t){this.createdComponents.push(t)}didUpdate(t){this.updatedComponents.push(t)}scheduleInstallModifier(t){this.scheduledInstallModifiers.push(t)}scheduleUpdateModifier(t){this.scheduledUpdateModifiers.push(t)}commit(){let{createdComponents:t,updatedComponents:e}=this;for(const{manager:i,state:s}of t)i.didCreate(s);for(const{manager:i,state:s}of e)i.didUpdate(s);let{scheduledInstallModifiers:n,scheduledUpdateModifiers:r}=this;for(const{manager:i,state:s,definition:o}of n){let t=i.getTag(s);if(null!==t){let e=Vt(()=>i.install(s));ft(t,e)}else i.install(s)}for(const{manager:i,state:s,definition:o}of r){let t=i.getTag(s);if(null!==t){let e=Vt(()=>i.update(s));ft(t,e)}else i.update(s)}}},Ly=class{[Ry]=null;updateOperations;isInteractive;isArgumentCaptureError;debugRenderTree;constructor(t,e){this.delegate=e,this.isInteractive=e.isInteractive,this.debugRenderTree=this.delegate.enableDebugTooling?new km:void 0,this.isArgumentCaptureError=this.delegate.enableDebugTooling?ny:void 0,t.appendOperations?(this.appendOperations=t.appendOperations,this.updateOperations=t.updateOperations):t.document&&(this.appendOperations=new cm(t.document),this.updateOperations=new ky(t.document))}getAppendOperations(){return this.appendOperations}getDOM(){return this.updateOperations}begin(){this[Ry],this.debugRenderTree?.begin(),this[Ry]=new Ty}get transaction(){return this[Ry]}didCreate(t){this.transaction.didCreate(t)}didUpdate(t){this.transaction.didUpdate(t)}scheduleInstallModifier(t){this.isInteractive&&this.transaction.scheduleInstallModifier(t)}scheduleUpdateModifier(t){this.isInteractive&&this.transaction.scheduleUpdateModifier(t)}commit(){let t=this.transaction;this[Ry]=null,t.commit(),this.debugRenderTree?.commit(),this.delegate.onTransactionCommit()}};function Iy(t,e,n,r){return{env:new Ly(t,e),program:new cg(n.constants,n.heap),resolver:r}}function Py(t,e){if(t[Ry])e();else{t.begin();try{e()}finally{t.commit()}}}function My(t){return"string"==typeof t?t:"function"!=typeof t.toString?"":String(t)}function Ay(t){let e,n=Nu(t);return e=null===n?null:"function"==typeof n?n:n.getHelper(t),e}function Oy(t){return t===ce}Em.add(77,(t,{op1:e,op2:n})=>{let r=t.stack,i=r.pop(),s=r.pop(),o=t.getOwner();t.context.resolver,t.loadValue(8,function(t,e,n,r){let i,s;return ge(()=>{let o=_e(e);return o===i||(s=bm(o,t)?r?xm(t,o,n,r):r:0===t&&"string"==typeof o&&o||ie(o)?xm(t,o,n,r):null,i=o),s})}(e,i,o,s))}),Em.add(107,t=>{let e,n=t.stack,r=n.pop(),i=n.pop().capture(),s=t.getOwner(),o=ge(()=>{void 0!==e&&nt(e);let t=_e(r);if(bm(t,1)){let{definition:n,owner:r,positional:s,named:a}=_m(t),l=Ay(n);void 0!==a&&(i.named=Fp({},...a,i.named)),void 0!==s&&(i.positional=s.concat(i.positional)),e=l(i,r),tt(o,e)}else ie(t)?(e=Ay(t)(i,s),rt(e)&&tt(o,e)):e=ce}),a=ge(()=>(_e(o),_e(e)));t.associateDestroyable(o),t.loadValue(8,a)}),Em.add(16,(t,{op1:e})=>{let n=t.stack,r=t.constants.getValue(e)(n.pop().capture(),t.getOwner(),t.dynamicScope());rt(r)&&t.associateDestroyable(r),t.loadValue(8,r)}),Em.add(21,(t,{op1:e})=>{let n=t.referenceForSymbol(e);t.stack.push(n)}),Em.add(19,(t,{op1:e})=>{let n=t.stack.pop();t.scope().bindSymbol(e,n)}),Em.add(20,(t,{op1:e})=>{let n=t.stack.pop(),r=t.stack.pop(),i=t.stack.pop();t.scope().bindBlock(e,[n,r,i])}),Em.add(37,(t,{op1:e})=>{t.pushRootScope(e,t.getOwner())}),Em.add(22,(t,{op1:e})=>{let n=t.constants.getValue(e),r=t.stack.pop();t.stack.push(Ce(r,n))}),Em.add(23,(t,{op1:e})=>{let{stack:n}=t,r=t.scope().getBlock(e);n.push(r)}),Em.add(24,t=>{let{stack:e}=t,n=e.pop();if(n&&!Oy(n)){let[t,r,i]=n;e.push(i),e.push(r),e.push(t)}else e.push(null),e.push(null),e.push(null)}),Em.add(25,t=>{let{stack:e}=t,n=e.pop();n&&!Oy(n)?e.push(he):e.push(de)}),Em.add(26,t=>{t.stack.pop(),t.stack.pop();let e=t.stack.pop(),n=e&&e.parameters.length;t.stack.push(n?he:de)}),Em.add(27,(t,{op1:e})=>{let n=new Array(e);for(let i=e;i>0;i--)n[i-1]=um(t.stack.pop());var r;t.stack.push((r=n,ge(()=>{const t=[];for(const e of r){const n=_e(e);null!=n&&t.push(My(n))}return t.length>0?t.join(""):null})))}),Em.add(109,t=>{let e=t.stack.pop(),n=t.stack.pop(),r=t.stack.pop();t.stack.push(ge(()=>B(_e(e))?_e(n):_e(r)))}),Em.add(110,t=>{let e=t.stack.pop();t.stack.push(ge(()=>!B(_e(e))))}),Em.add(111,t=>{let e=t.dynamicScope(),n=t.stack,r=n.pop();n.push(ge(()=>{let t=String(_e(r));return _e(e.get(t))}))}),Em.add(112,t=>{let{positional:e}=t.stack.pop().capture();t.loadValue(8,ge(()=>{console.log(...Qm(e))}))});var Ny=class{constructor(t,e,n){this.node=t,this.reference=e,this.lastValue=n}evaluate(){let t,e=_e(this.reference),{lastValue:n}=this;e!==n&&(t=wg(e)?"":Cg(e)?e:String(e),t!==n)&&(this.node.nodeValue=this.lastValue=t)}};function Fy(t){return function(t){return Cg(t)||wg(t)||"boolean"==typeof t||"number"==typeof t}(t)?2:bm(t,0)||Du(t)?0:bm(t,1)||ju(t)?1:xg(t)?4:function(t){return _g(t)&&11===t.nodeType}(t)?5:function(t){return _g(t)&&"number"==typeof t.nodeType}(t)?6:2}function zy(t){return ie(t)?bm(t,0)||Du(t)?0:1:2}function Dy(t,e){console.info("Use `context`, and `get()` to debug this template."),e("this")}Em.add(76,t=>{let e=t.stack.peek();t.stack.push(Fy(_e(e))),be(e)||t.updateWith(new Tm(e,Fy))}),Em.add(106,t=>{let e=t.stack.peek();t.stack.push(zy(_e(e))),be(e)||t.updateWith(new Tm(e,zy))}),Em.add(43,t=>{let e=_e(t.stack.pop()),n=wg(e)?"":String(e);t.tree().appendDynamicHTML(n)}),Em.add(44,t=>{let e=_e(t.stack.pop()).toHTML(),n=wg(e)?"":e;t.tree().appendDynamicHTML(n)}),Em.add(47,t=>{let e=t.stack.pop(),n=_e(e),r=wg(n)?"":String(n),i=t.tree().appendDynamicText(r);be(e)||t.updateWith(new Ny(i,e,r))}),Em.add(45,t=>{let e=_e(t.stack.pop());t.tree().appendDynamicFragment(e)}),Em.add(46,t=>{let e=_e(t.stack.pop());t.tree().appendDynamicNode(e)});var jy=Dy;function Uy(t){jy=t}function By(){jy=Dy}var $y=class{#h;constructor(t,e){this.scope=t,this.#h=e}get(t){let e,{scope:n}=this,r=this.#h,i=t.split("."),[s,...o]=t.split(".");return"this"===s?e=n.getSelf():r.locals[s]?e=n.getSymbol(r.locals[s]):(e=this.scope.getSelf(),o=i),o.reduce((t,e)=>Ce(t,e),e)}};Em.add(103,(t,{op1:e})=>{let n=t.constants.getValue(e),r=new $y(t.scope(),n);jy(_e(t.getSelf()),t=>_e(r.get(t)))}),Em.add(72,(t,{op1:e,op2:n})=>{let r=t.stack,i=r.pop(),s=_e(r.pop()),o=yy(i,null===s?"@identity":String(s)),a=_e(o);t.updateWith(new Tm(o,t=>t.isEmpty())),a.isEmpty()?t.lowlevel.goto(n+1):(t.enterList(o,e),t.stack.push(a))}),Em.add(73,t=>{t.exitList()}),Em.add(74,(t,{op1:e})=>{let n=t.stack.peek().next();null!==n?t.registerItem(t.enterItem(n)):t.lowlevel.goto(e)});var qy=class{currentOpSize=0;registers;context;constructor(t,e,n,r){this.stack=t,this.externs=n,this.context=e,this.registers=r}fetchRegister(t){return this.registers[t]}loadRegister(t,e){this.registers[t]=e}setPc(t){this.registers[0]=t}pushFrame(){this.stack.push(this.registers[1]),this.stack.push(this.registers[2]),this.registers[2]=this.registers[3]-1}popFrame(){this.registers[3]=this.registers[2]-1,this.registers[1]=this.stack.get(0),this.registers[2]=this.stack.get(1)}pushSmallFrame(){this.stack.push(this.registers[1])}popSmallFrame(){this.registers[1]=this.stack.pop()}goto(t){this.setPc(this.target(t))}target(t){return this.registers[0]+t-this.currentOpSize}call(t){this.registers[1]=this.registers[0],this.setPc(this.context.program.heap.getaddr(t))}returnTo(t){this.registers[1]=this.target(t)}return(){this.setPc(this.registers[1])}nextStatement(){let{registers:t,context:e}=this,n=t[0];if(-1===n)return null;let r=e.program.opcode(n),i=this.currentOpSize=r.size;return this.registers[0]+=i,r}evaluateOuter(t,e){this.evaluateInner(t,e)}evaluateInner(t,e){t.isMachine?this.evaluateMachine(t,e):this.evaluateSyscall(t,e)}evaluateMachine(t,e){switch(t.type){case 0:return void this.pushFrame();case 1:return void this.popFrame();case 3:return void this.call(t.op1);case 2:return void e.call(this.stack.pop());case 4:return void this.goto(t.op1);case 5:return void e.return();case 6:return void this.returnTo(t.op1)}}evaluateSyscall(t,e){Em.evaluate(e,t,t.type)}},Vy=class{env;dom;alwaysRevalidate;frameStack=new se;constructor(t,{alwaysRevalidate:e=!1}){this.env=t,this.dom=t.getDOM(),this.alwaysRevalidate=e}execute(t,e){this._execute(t,e)}_execute(t,e){let{frameStack:n}=this;for(this.try(t,e);!n.isEmpty();){let t=this.frame.nextStatement();void 0!==t?t.evaluate(this):n.pop()}}get frame(){return this.frameStack.current}goto(t){this.frame.goto(t)}try(t,e){this.frameStack.push(new Ky(t,e))}throw(){this.frame.handleException(),this.frameStack.pop()}},Wy=class{children;bounds;constructor(t,e,n,r){this.state=t,this.context=e,this.children=r,this.bounds=n}parentElement(){return this.bounds.parentElement()}firstNode(){return this.bounds.firstNode()}lastNode(){return this.bounds.lastNode()}evaluate(t){t.try(this.children,null)}},Hy=class extends Wy{type="try";evaluate(t){t.try(this.children,this)}handleException(){let{state:t,bounds:e,context:{env:n}}=this;!function(t){let{children:e}=Q(t);X(e,nt)}(this);let r=tm.resume(n,e),i=t.evaluate(r),s=this.children=[],o=i.execute(t=>{t.updateWith(this),t.pushUpdating(s)});tt(this,o.drop)}},Gy=class extends Hy{retained=!1;index=-1;constructor(t,e,n,r,i,s){super(t,e,n,[]),this.key=r,this.memo=i,this.value=s}shouldRemove(){return!this.retained}reset(){this.retained=!1}},Zy=class extends Wy{type="list-block";opcodeMap=new Map;marker=null;lastIterator;constructor(t,e,n,r,i){super(t,e,n,r),this.iterableRef=i,this.lastIterator=_e(i)}initializeChild(t){t.index=this.children.length-1,this.opcodeMap.set(t.key,t)}evaluate(t){let e=_e(this.iterableRef);if(this.lastIterator!==e){let{bounds:n}=this,{dom:r}=t,i=this.marker=r.createComment("");r.insertAfter(n.parentElement(),i,n.lastNode()),this.sync(e),this.parentElement().removeChild(i),this.marker=null,this.lastIterator=e}super.evaluate(t)}sync(t){let{opcodeMap:e,children:n}=this,r=0,i=0;for(this.children=this.bounds.boundList=[];;){let s=t.next();if(null===s)break;let o=n[r],{key:a}=s;for(;void 0!==o&&o.retained;)o=n[++r];if(void 0!==o&&o.key===a)this.retainItem(o,s),r++;else if(e.has(a)){let t=e.get(a);if(t.index{let r=e.enterItem(t);r.index=s.length,s.push(r),n.set(a,r),tt(this,r)})}moveItem(t,e,n){let r,i,{children:s}=this;xe(t.memo,e.memo),xe(t.value,e.value),t.retained=!0,void 0===n?yg(t,this.marker):(r=t.lastNode().nextSibling,i=n.firstNode(),r!==i&&yg(t,i)),t.index=s.length,s.push(t)}deleteItem(t){nt(t),vg(t),this.opcodeMap.delete(t.key)}},Ky=class{current=0;constructor(t,e){this.ops=t,this.exceptionHandler=e}goto(t){this.current=t}nextStatement(){return this.ops[this.current++]}handleException(){this.exceptionHandler&&this.exceptionHandler.handleException()}},Yy=class{constructor(t,e,n,r){this.env=t,this.updating=e,this.bounds=n,this.drop=r,tt(this,r),et(this,()=>vg(this.bounds))}rerender({alwaysRevalidate:t=!1}={alwaysRevalidate:!1}){let{env:e,updating:n}=this;new Vy(e,{alwaysRevalidate:t}).execute(n,this)}parentElement(){return this.bounds.parentElement()}firstNode(){return this.bounds.firstNode()}lastNode(){return this.bounds.lastNode()}handleException(){}},Xy=class{static restore(t,e){const n=new this(t.slice(),function(t){return[0,-1,t,0]}(t.length-1));return n.registers[0]=e,n.registers[3]=t.length-1,n.registers[2]=-1,n}registers;constructor(t=[],e){this.stack=t,this.registers=e}push(t){this.stack[++this.registers[3]]=t}dup(t=this.registers[3]){this.stack[++this.registers[3]]=this.stack[t]}copy(t,e){this.stack[e]=this.stack[t]}pop(t=1){let e=this.stack[this.registers[3]];return this.registers[3]-=t,e}peek(t=0){return this.stack[this.registers[3]-t]}get(t,e=this.registers[2]){return this.stack[e+t]}set(t,e,n=this.registers[2]){this.stack[n+e]=t}slice(t,e){return this.stack.slice(t,e)}capture(t){let e=this.registers[3]+1,n=e-t;return this.stack.slice(n,e)}reset(){this.stack.length=0}},Jy=class{drop={};scope=new se;dynamicScope=new se;updating=new se;cache=new se;list=new se;destroyable=new se;constructor(t,e){this.scope.push(t),this.dynamicScope.push(e),this.destroyable.push(this.drop)}},Qy=class t{#d;args;lowlevel;debug;trace;get stack(){return this.lowlevel.stack}get pc(){return this.lowlevel.fetchRegister(0)}#p=[null,null,null,null,null,null,null,null,null];fetch(t){let e=this.fetchValue(t);this.stack.push(e)}load(t){let e=this.stack.pop();this.loadValue(t,e)}loadValue(t,e){this.#p[t]=e}fetchValue(t){return function(t){return t<=3}(t)?this.lowlevel.fetchRegister(t):this.#p[t]}call(t){null!==t&&this.lowlevel.call(t)}return(){this.lowlevel.return()}#f;context;constructor({scope:t,dynamicScope:e,stack:n,pc:r},i,s){let o=Xy.restore(n,r);this.#f=s,this.context=i,this.#d=new Jy(t,e),this.args=new qm,this.lowlevel=new qy(o,i,void 0,o.registers),this.pushUpdating()}static initial(e,n){let r=xy.root(n.owner,n.scope??{self:ce,size:0});const i=function(t,e,n){return{pc:t,scope:e,dynamicScope:n,stack:[]}}(e.program.heap.getaddr(n.handle),r,n.dynamicScope);return new t(i,e,n.tree)}compile(t){return Ip(t.compile(this.context))}get constants(){return this.context.program.constants}get program(){return this.context.program}get env(){return this.context.env}captureClosure(t,e=this.lowlevel.fetchRegister(0)){return{pc:e,scope:this.scope(),dynamicScope:this.dynamicScope(),stack:this.stack.capture(t)}}capture(t,e=this.lowlevel.fetchRegister(0)){return new tv(this.captureClosure(t,e),this.context)}beginCacheGroup(t){let e=this.updating(),n=new Lm;e.push(n),e.push(new Im(t)),this.#d.cache.push(n),It()}commitCacheGroup(){let t=this.updating(),e=this.#d.cache.pop(),n=Pt();t.push(new Pm(e)),e.finalize(n,t.length)}enter(t){let e=this.capture(t),n=this.tree().pushResettableBlock(),r=new Hy(e,this.context,n,[]);this.didEnter(r)}enterItem({key:t,value:e,memo:n}){let{stack:r}=this,i=vy(e),s=vy(n);r.push(i),r.push(s);let o=this.capture(2),a=this.tree().pushResettableBlock(),l=new Gy(o,this.context,a,t,s,i);return this.didEnter(l),l}registerItem(t){this.listBlock().initializeChild(t)}enterList(t,e){let n=[],r=this.lowlevel.target(e),i=this.capture(0,r),s=this.tree().pushBlockList(n),o=new Zy(i,this.context,s,n,t);this.#d.list.push(o),this.didEnter(o)}didEnter(t){this.associateDestroyable(t),this.#d.destroyable.push(t),this.updateWith(t),this.pushUpdating(t.children)}exit(){this.#d.destroyable.pop(),this.#f.popBlock(),this.popUpdating()}exitList(){this.exit(),this.#d.list.pop()}pushRootScope(t,e){let n=xy.sized(e,t);return this.#d.scope.push(n),n}pushChildScope(){this.#d.scope.push(this.scope().child())}pushScope(t){this.#d.scope.push(t)}popScope(){this.#d.scope.pop()}pushDynamicScope(){let t=this.dynamicScope().child();return this.#d.dynamicScope.push(t),t}bindDynamicScope(t){let e=this.dynamicScope();for(const n of Wp(t))e.set(n,this.stack.pop())}pushUpdating(t=[]){this.#d.updating.push(t)}popUpdating(){return this.#d.updating.pop()}updateWith(t){this.updating().push(t)}listBlock(){return this.#d.list.current}associateDestroyable(t){tt(this.#d.destroyable.current,t)}updating(){return this.#d.updating.current}tree(){return this.#f}scope(){return this.#d.scope.current}dynamicScope(){return this.#d.dynamicScope.current}popDynamicScope(){this.#d.dynamicScope.pop()}getOwner(){return this.scope().owner}getSelf(){return this.scope().getSelf()}referenceForSymbol(t){return this.scope().getSymbol(t)}execute(t){return this._execute(t)}_execute(t){let e;t&&t(this);do{e=this.next()}while(!e.done);return e.value}next(){let t,{env:e}=this,n=this.lowlevel.nextStatement();return null!==n?(this.lowlevel.evaluateOuter(n,this),t={done:!1,value:null}):(this.stack.reset(),t={done:!0,value:new Yy(e,this.popUpdating(),this.#f.popBlock(),this.#d.drop)}),t}},tv=class{state;context;constructor(t,e){this.state=t,this.context=e}evaluate(t){return new Qy(this.state,this.context,t)}},ev=class{constructor(t){this.vm=t}next(){return this.vm.next()}sync(){return this.vm.execute()}};function nv(t,e){let n;return Py(t,()=>n=e.sync()),n}function rv(t,e,n,r,i,s=new _y){let o=Ip(i.compile(t)),a=i.symbolTable.symbols.length,l=Qy.initial(t,{scope:{self:n,size:a},dynamicScope:s,tree:r,handle:o,owner:e});return new ev(l)}function iv(t,e,n,r,i={},s=new _y){return function(t,e,n,r,i){const s=Object.keys(i).map(t=>[t,i[t]]),o=["main","else","attrs"],a=s.map(([t])=>`@${t}`);let l=t.constants.component(r,n,void 0,"{ROOT}");t.lowlevel.pushFrame();for(let h=0;h<3*o.length;h++)t.stack.push(null);t.stack.push(null),s.forEach(([,e])=>{t.stack.push(e)}),t.args.setup(t.stack,a,o,0,!0);const c=l.compilable,u={handle:Ip(c.compile(e)),symbolTable:c.symbolTable};return t.stack.push(t.args),t.stack.push(u),t.stack.push(l),new ev(t)}(Qy.initial(t,{tree:e,handle:t.stdlib.main,dynamicScope:s,owner:n}),t,n,r,function(t){const e=pe(t);return Object.keys(t).reduce((t,n)=>(t[n]=Ce(e,n),t),{})}(i))}var sv=a({_instrumentStart:()=>dv,flaggedInstrument:()=>uv,instrument:()=>cv,reset:()=>gv,subscribe:()=>pv,subscribers:()=>ov,unsubscribe:()=>fv}),ov=[],av={},lv=()=>performance.now();function cv(t,e,n,r){let i,s,o;if(arguments.length<=3&&"function"==typeof e?(s=e,o=n):(i=e,s=n,o=r),0===ov.length)return s.call(o);let a=i||{},l=dv(t,()=>a);return l===hv?s.call(o):function(t,e,n,r){try{return t.call(r)}catch(i){throw n.exception=i,i}finally{e()}}(s,l,a,o)}function uv(t,e,n){return n()}function hv(){}function dv(t,e,n){if(0===ov.length)return hv;let r=av[t];if(r||(r=function(t){let e=[];for(let n of ov)n.regex.test(t)&&e.push(n.object);return av[t]=e,e}(t)),0===r.length)return hv;let i,s=e(n),o=N.STRUCTURED_PROFILE;o&&(i=`${t}: ${s.object}`,console.time(i));let a=[],l=lv();for(let u of r)a.push(u.before(t,l,s));const c=r;return function(){let e=lv();for(let n=0;n-1?vv(e,i.split(".")):Ce(e,i);r.setAttribute(s,a,!1,null)}function _v(t,e){let n;return ge(()=>{let r=_e(t);return!0===r?n||(n=sp(e)):r||0===r?String(r):null})}function xv(){}var Cv=class{classRef=null;rootRef;argsRevision;constructor(t,e,n,r,i,s){this.component=t,this.args=e,this.argsTag=n,this.finalizer=r,this.hasWrappedElement=i,this.isInteractive=s,this.classRef=null,this.argsRevision=null===e?0:ct(n),this.rootRef=pe(t),et(this,()=>this.willDestroy(),!0),et(this,()=>this.component.destroy())}willDestroy(){let{component:t,isInteractive:e}=this;if(e){Mt(),t.trigger("willDestroyElement"),t.trigger("willClearRender"),At();let e=Ql(t);e&&(nc(e),rc(t))}t.renderer.unregister(t)}finalize(){let{finalizer:t}=this;t(),this.finalizer=xv}};function Sv(t){let e=Object.create(null),n=Object.create(null);for(let r in t){let i=t[r],s=_e(i);we(i)?e[r]=new Ev(i,s):e[r]=s,n[r]=s}return n.attrs=e,n}var kv=Symbol("REF"),Ev=class{value;[mv];[kv];constructor(t,e){this[mv]=!0,this[kv]=t,this.value=e}update(t){xe(this[kv],t)}},Rv=new WeakMap,Tv=Symbol("DIRTY_TAG"),Lv=Symbol("IS_DISPATCHING_ATTRS"),Iv=Symbol("BOUNDS"),Pv=le("ember-view"),Mv=class{templateFor(t){let e,{layout:n,layoutName:r}=t,i=Br(t);if(void 0===n){if(void 0===r)return null;e=i.lookup(`template:${r}`)}else{if("function"!=typeof n)return null;e=n}return yv(e(i)).asWrappedLayout()}getDynamicLayout(t){return this.templateFor(t.component)}getTagName(t){let{component:e,hasWrappedElement:n}=t;return n?e&&e.tagName||"div":null}getCapabilities(){return Nv}prepareArgs(t,e){if(e.named.has("__ARGS__")){let{__ARGS__:t,...n}=e.named.capture(),r=_e(t);return{positional:r.positional,named:{...n,...r.named}}}const{positionalParams:n}=t.class??t;if(null==n||0===e.positional.length)return null;let r;if("string"==typeof n){let t=e.positional.capture();r={[n]:ge(()=>Qm(t))},Object.assign(r,e.named.capture())}else{if(!(Array.isArray(n)&&n.length>0))return null;{const t=Math.min(n.length,e.positional.length);r={},Object.assign(r,e.named.capture());for(let i=0;i{s.setAttribute("class",le(t),!1,null)}),l&&l.length&&l.forEach(t=>{!function(t,e,n){let[r,i,s]=e.split(":");if(""===r)n.setAttribute("class",le(i),!0,null);else{let e,o=r.indexOf(".")>-1,a=o?r.split("."):[],l=o?vv(t,a):Ce(t,r);e=void 0===i?_v(l,o?a[a.length-1]:r):function(t,e,n){return ge(()=>_e(t)?e:n)}(l,i,s),n.setAttribute("class",e,!1,null)}}(r,t,s)}),s.setAttribute("class",Pv,!1,null),"ariaRole"in t&&s.setAttribute("role",Ce(r,"ariaRole"),!1,null),t._transitionTo("hasElement"),n&&(Mt(),t.trigger("willInsertElement"),At())}didRenderLayout(t,e){t.component[Iv]=e,t.finalize()}didCreate({component:t,isInteractive:e}){e&&(t._transitionTo("inDOM"),t.trigger("didInsertElement"),t.trigger("didRender"))}update(t){let{component:e,args:n,argsTag:r,argsRevision:i,isInteractive:s}=t;if(t.finalizer=dv("render.component",Ov,e),Mt(),null!==n&&!ut(r,i)){It();let i=Sv(n);r=t.argsTag=Pt(),t.argsRevision=ct(r),e[Lv]=!0,e.setProperties(i),e[Lv]=!1,e.trigger("didUpdateAttrs"),e.trigger("didReceiveAttrs")}s&&(e.trigger("willUpdate"),e.trigger("willRender")),At(),Ft(r),Ft(e[Tv])}didUpdateLayout(t){t.finalize()}didUpdate({component:t,isInteractive:e}){e&&(t.trigger("didUpdate"),t.trigger("didRender"))}getDestroyable(t){return t}};function Av(t){return t.instrumentDetails({initialRender:!0})}function Ov(t){return t.instrumentDetails({initialRender:!1})}var Nv={dynamicLayout:!0,dynamicTag:!0,prepareArgs:!0,createArgs:!0,attributeHook:!0,elementHook:!0,createCaller:!0,dynamicScope:!0,updateHook:!0,createInstance:!0,wrapped:!0,willDestroy:!0,hasSubOwner:!1},Fv=new Mv;function zv(t){return t===Fv}function Dv(t){let e=hr(t,"content");return ft(Ne(t),Ne(e)),e}function jv(t,e,n){let r=Zt(t),i=Kt(t,e,r);if(e in t)return i;{let s=[i,Kt(t,"content",r)],o=Dv(t);return Yt(o)&&s.push(Oe(o,e,n)),Ct(s)}}var Uv=_l.create({content:null,init(){this._super(...arguments),rr(this),Ne(this),Re(this,jv)},willDestroy(){this.set("content",null),this._super(...arguments)},isTruthy:Xn("content",function(){return Boolean(hr(this,"content"))}),unknownProperty(t){let e=Dv(this);return e?hr(e,t):void 0},setUnknownProperty(t,e){let n=_(this);return n.isInitializing()||n.isPrototypeMeta(this)?(Dn(this,t,null,e),e):mr(Dv(this),t,e)}});function Bv(t){return Au(t,{})}var $v=class{__string;constructor(t){this.__string=t}toString(){return`${this.__string}`}toHTML(){return this.toString()}},qv=function(t){return null==t?t="":"string"!=typeof t&&(t=String(t)),new $v(t)};function Vv(t){return Au(t,{})}var Wv=Vv(({positional:t})=>ge(()=>Qm(t),null)),Hv=Vv(({positional:t})=>{let e=t[0];return ge(()=>(...n)=>{let[r,...i]=Qm(t);if(ye(e)){let t=i.length>0?i[0]:n[0];return void xe(e,t)}return r.call(null,...i,...n)},null)}),Gv=Vv(({named:t})=>{let e=ge(()=>Jm(t),null),n=new Map;for(let r in t)n.set(r,t[r]);return e.children=n,e}),Zv=t=>(t=>null==t||"function"!=typeof t.toString)(t)?"":String(t),Kv=Vv(({positional:t})=>ge(()=>Qm(t).map(Zv).join(""),null)),Yv=Vv(({positional:t})=>{let e=t[0]??ce,n=t[1]??ce;return ge(()=>{let t=_e(e);if(re(t))return V(t,String(_e(n)))},t=>{let r=_e(e);if(re(r))return W(r,String(_e(n)),t)})}),Xv=class{tag=mt();element;args;listener=null;constructor(t,e){this.element=t,this.args=e,et(this,()=>{let{element:t,listener:e}=this;if(e){let{eventName:n,callback:r,options:i}=e;tb(t,n,r,i)}})}updateListener(){let t,e,n,{element:r,args:i,listener:s}=this,o=i.positional[0],a=o?_e(o):void 0,l=i.positional[1],c=l?_e(l):void 0;{let{once:r,passive:s,capture:o}=i.named;r&&(t=_e(r)),s&&(e=_e(s)),o&&(n=_e(o))}let u,h=!1;if(h=null===s||a!==s.eventName||c!==s.userProvidedCallback||t!==s.once||e!==s.passive||n!==s.capture,h&&(void 0===t&&void 0===e&&void 0===n||(u={once:t,passive:e,capture:n})),h){let i=c;this.listener={eventName:a,callback:i,userProvidedCallback:c,once:t,passive:e,capture:n,options:u},s&&tb(r,s.eventName,s.callback,s.options),function(t,e,n,r){Jv++,t.addEventListener(e,n,r)}(r,a,i,u)}}},Jv=0,Qv=0;function tb(t,e,n,r){Qv++,t.removeEventListener(e,n,r)}var eb,nb=Pu(new class{getDebugName(){return"on"}getDebugInstance(){return null}get counters(){return{adds:Jv,removes:Qv}}create(t,e,n,r){return new Xv(e,r)}getTag({tag:t}){return t}install(t){t.updateListener()}update(t){t.updateListener()}getDestroyable(t){return t}},{}),rb={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!1,attributeHook:!1,elementHook:!1,createCaller:!1,dynamicScope:!1,updateHook:!1,createInstance:!1,wrapped:!1,willDestroy:!1,hasSubOwner:!1},ib=class{getCapabilities(){return rb}getDebugName({name:t}){return t}getSelf(){return ue}getDestroyable(){return null}},sb=new ib,ob=class{constructor(t="@glimmer/component/template-only",e="(unknown template-only component)"){this.moduleName=t,this.name=e}toString(){return this.moduleName}};function ab(t,e){return new ob(t,e)}Fu(sb,ob.prototype);var lb={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!0,attributeHook:!1,elementHook:!1,createCaller:!1,dynamicScope:!0,updateHook:!0,createInstance:!0,wrapped:!1,willDestroy:!1,hasSubOwner:!1};function cb(t,e={}){let n=Boolean(e.updateHook);return{asyncLifeCycleCallbacks:Boolean(e.asyncLifecycleCallbacks),destructor:Boolean(e.destructor),updateHook:n}}function ub(t){return t.capabilities.asyncLifeCycleCallbacks}function hb(t){return t.capabilities.updateHook}var db=class{componentManagerDelegates=new WeakMap;constructor(t){this.factory=t}getDelegateFor(t){let{componentManagerDelegates:e}=this,n=e.get(t);if(void 0===n){let{factory:r}=this;n=r(t),e.set(t,n)}return n}create(t,e,n){let r=this.getDelegateFor(t),i=Pe(n.capture()),s=r.createComponent(e,i);return new pb(s,r,i)}getDebugName(t){return"function"==typeof t?t.name:t.toString()}update(t){let{delegate:e}=t;if(hb(e)){let{component:n,args:r}=t;e.updateComponent(n,r)}}didCreate({component:t,delegate:e}){ub(e)&&e.didCreateComponent(t)}didUpdate({component:t,delegate:e}){(function(t){return ub(t)&&hb(t)})(e)&&e.didUpdateComponent(t)}didRenderLayout(){}didUpdateLayout(){}getSelf({component:t,delegate:e}){return pe(e.getContext(t))}getDestroyable(t){const{delegate:e}=t;if(function(t){return t.capabilities.destructor}(e)){const{component:n}=t;return et(t,()=>e.destroyComponent(n)),t}return null}getCapabilities(){return lb}},pb=class{constructor(t,e,n){this.component=t,this.delegate=e,this.args=n}};function fb(t,e={}){return{disableAutoTracking:Boolean(e.disableAutoTracking)}}var gb=class{componentManagerDelegates=new WeakMap;constructor(t){this.factory=t}getDelegateFor(t){let{componentManagerDelegates:e}=this,n=e.get(t);if(void 0===n){let{factory:r}=this;n=r(t),e.set(t,n)}return n}create(t,e,n,r){let i,s=this.getDelegateFor(t),o=Pe(r),a=s.createModifier(n,o);return i={tag:mt(),element:e,delegate:s,args:o,modifier:a},et(i,()=>s.destroyModifier(a,o)),i}getDebugName(t){return"function"==typeof t?t.name||t.toString():""}getDebugInstance({modifier:t}){return t}getTag({tag:t}){return t}install({element:t,args:e,modifier:n,delegate:r}){let{capabilities:i}=r;i.disableAutoTracking?Wt(()=>r.installModifier(n,t,e)):r.installModifier(n,t,e)}update({args:t,modifier:e,delegate:n}){let{capabilities:r}=n;r.disableAutoTracking?Wt(()=>n.updateModifier(e,t)):n.updateModifier(e,t)}getDestroyable(t){return t}};function mb(t,e){return Fu(new db(t),e)}function yb(t,e){return Pu(new gb(t),e)}function vb(t,e){return Au(new Cu(t),e)}var bb=Symbol("RECOMPUTE_TAG"),wb=Symbol("IS_CLASSIC_HELPER"),_b=class extends Xc{static isHelperFactory=!0;static[wb]=!0;static helper=Eb;init(t){super.init(t),this[bb]=gt()}recompute(){xs(()=>pt(this[bb]))}},xb=class{capabilities=wu(0,{hasValue:!0,hasDestroyable:!0});ownerInjection;constructor(t){let e={};$r(e,t),this.ownerInjection=e}createHelper(t,e){return{instance:(n=t,null!=n&&"class"in n?t.create():t.create(this.ownerInjection)),args:e};var n}getDestroyable({instance:t}){return t}getValue({instance:t,args:e}){let{positional:n,named:r}=e,i=t.compute(n,r);return Ft(t[bb]),i}getDebugName(t){return eb((t.class||t).prototype)}};vb(t=>new xb(t),_b);var Cb=Nu(_b),Sb=class{isHelperFactory=!0;constructor(t){this.compute=t}create(){return{compute:this.compute}}},kb=new class{capabilities=wu(0,{hasValue:!0});createHelper(t,e){return()=>t.compute.call(null,e.positional,e.named)}getValue(t){return t()}getDebugName(t){return eb(t.compute)}};function Eb(t){return new Sb(t)}vb(()=>kb,Sb.prototype);var Rb=Bv(()=>pe("30000000-1000-4000-2000-100000000000".replace(/[0-3]/g,t=>(4*t^16*Math.random()>>(2&t)).toString(16)))),Tb=class{constructor(t,e,n,r,i){this.main=t,this.trustingGuardedAppend=e,this.cautiousGuardedAppend=n,this.trustingNonDynamicAppend=r,this.cautiousNonDynamicAppend=i}get"trusting-append"(){return this.trustingGuardedAppend}get"cautious-append"(){return this.cautiousGuardedAppend}get"trusting-non-dynamic-append"(){return this.trustingNonDynamicAppend}get"cautious-non-dynamic-append"(){return this.cautiousNonDynamicAppend}getAppend(t){return t?this.trustingGuardedAppend:this.cautiousGuardedAppend}};function Lb(t,e,n){Uf(t,()=>t(76),r=>{r(2,()=>{e?(t(68),t(43)):t(47)}),"number"==typeof n?(r(0,()=>{t(68),t(81),t(79),function(t){t(36,4),t(33,3,1),t(35,4),t(0),t(83),t(85,4),Gf(t,!1,!1,!0,()=>{t(92,4),t(95,4)}),t(35,4)}(t)}),r(1,()=>{Rf(t,null,null,()=>{t(3,n)})})):(r(0,()=>{t(47)}),r(1,()=>{t(47)})),r(4,()=>{t(68),t(44)}),r(5,()=>{t(68),t(45)}),r(6,()=>{t(68),t(46)})})}var Ib={symbols:{locals:null,upvars:null},moduleName:"stdlib",scopeValues:null,isStrictMode:!0,owner:null,size:0};function Pb(t,e){let n=new vf(t.program.heap,Ib);e(function(...e){yf(n,t,Ib,e)});let r=n.commit(0);if("number"!=typeof r)throw new Error("Unexpected errors compiling std");return r}var Mb=class{constants;heap;resolver;stdlib;createOp;env;program;constructor({constants:t,heap:e},n,r){this.constants=t,this.heap=e,this.resolver=r.resolver,this.createOp=n,this.env=r.env,this.program=r.program,this.stdlib=function(t){let e=Pb(t,t=>function(t){t(75,4),Gf(t,!1,!1,!0)}(t)),n=Pb(t,t=>Lb(t,!0,null)),r=Pb(t,t=>Lb(t,!1,null)),i=Pb(t,t=>Lb(t,!0,n)),s=Pb(t,t=>Lb(t,!1,r));return new Tb(e,i,s,n,r)}(this)}};function Ab(t){return{object:`${t.name}:main`}}var Ob,Nb={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!1,attributeHook:!1,elementHook:!1,createCaller:!1,dynamicScope:!0,updateHook:!1,createInstance:!0,wrapped:!1,willDestroy:!1,hasSubOwner:!1},Fb=mu(Nb),zb=new class{create(t,e,n,r,i){let s=i.get("outletState"),o=e.ref;i.set("outletState",o);let a={finalize:dv("render.outlet",Ab,e)};if(void 0!==r.debugRenderTree){let t=_e(s)?.render?.owner,e=_e(o)?.render?.owner;if(t&&t!==e){let t=e,{mountPoint:n}=t;n&&(a.engine={mountPoint:n,instance:t})}}return a}getDebugName({name:t}){return`{{outlet}} for ${t}`}getDebugCustomRenderTree(t,e){let n=[];return n.push({bucket:e,type:"outlet",name:"main",args:ly,instance:void 0}),e.engine&&n.push({bucket:e.engine,type:"engine",name:e.engine.mountPoint,args:ly,instance:e.engine.instance}),n}getCapabilities(){return Nb}getSelf(){return ce}didCreate(){}didUpdate(){}didRenderLayout(t){t.finalize()}didUpdateLayout(){}getDestroyable(){return null}},Db=ig({id:null,block:'[[[8,[30,1],null,[["@controller","@model"],[[30,2],[30,3]]],null]],["@Component","@controller","@model"],[]]',moduleName:"(unknown template module)",isStrictMode:!0}),jb=class{handle=-1;resolvedName=null;manager=zb;capabilities=Fb;compilable;constructor(t,e){this.state=e,this.compilable=yv(Db(t)).asLayout()}},Ub=class extends Mv{component;constructor(t){super(),this.component=t}create(t,e,n,{isInteractive:r},i){let s=this.component,o=dv("render.component",Av,s);i.view=s;let a=""!==s.tagName;a||(r&&s.trigger("willRender"),s._transitionTo("hasElement"),r&&s.trigger("willInsertElement"));let l=new Cv(s,null,yt,o,a,r);return Ft(s[Tv]),l}},Bb={dynamicLayout:!0,dynamicTag:!0,prepareArgs:!1,createArgs:!1,attributeHook:!0,elementHook:!0,createCaller:!0,dynamicScope:!0,updateHook:!0,createInstance:!0,wrapped:!0,willDestroy:!1,hasSubOwner:!1},$b=class{handle=-1;resolvedName="-top-level";state;manager;capabilities=mu(Bb);compilable=null;constructor(t){this.manager=new Ub(t);let e=Xa(t);this.state=e}},qb=class{constructor(t){this.inner=t}},Vb=Bv(({positional:t})=>{const e=t[0];return ge(()=>{let t=_e(e);return Ft(Ne(t)),nr(t)&&(t=Dv(t)),new qb(t)})}),Wb=class{position=0;constructor(t){this.length=t}isEmpty(){return!1}memoFor(t){return t}next(){let{length:t,position:e}=this;if(e>=t)return null;let n=this.valueFor(e),r=this.memoFor(e);return this.position++,{value:n,memo:r}}},Hb=class extends Wb{static from(t){return t.length>0?new this(t):null}static fromForEachable(t){let e=[];return t.forEach(t=>e.push(t)),this.from(e)}constructor(t){super(t.length),this.array=t}valueFor(t){return this.array[t]}},Gb=class extends Wb{static from(t){return t.length>0?new this(t):null}constructor(t){super(t.length),this.array=t}valueFor(t){return Me(this.array,t)}},Zb=class extends Wb{static fromIndexable(t){let e=Object.keys(t);if(0===e.length)return null;{let n=[];for(let r of e){let e;e=t[r],Nt()&&(Ft(Kt(t,r)),Array.isArray(e)&&Ft(Kt(e,"[]"))),n.push(e)}return new this(e,n)}}static fromForEachable(t){let e=[],n=[],r=0,i=!1;return t.forEach(function(t,s){i=i||arguments.length>=2,i&&e.push(s),n.push(t),r++}),0===r?null:i?new this(e,n):new Hb(n)}constructor(t,e){super(e.length),this.keys=t,this.values=e}valueFor(t){return this.values[t]}memoFor(t){return this.keys[t]}},Kb=class{static from(t){let e=t[Symbol.iterator](),n=e.next(),{done:r}=n;return r?null:new this(e,n)}position=0;constructor(t,e){this.iterable=t,this.result=e}isEmpty(){return!1}next(){let{iterable:t,result:e,position:n}=this;if(e.done)return null;let r=this.valueFor(e,n),i=this.memoFor(e,n);return this.position++,this.result=t.next(),{value:r,memo:i}}},Yb=class extends Kb{valueFor(t){return t.value}memoFor(t,e){return e}},Xb=class extends Kb{valueFor(t){return t.value[1]}memoFor(t){return t.value[0]}};function Jb(t){return null!=t&&"function"==typeof t.forEach}function Qb(t){return null!=t&&"function"==typeof t[Symbol.iterator]}Ob={scheduleRevalidate(){ws.ensureInstance()},toBool:function(t){return nr(t)?(Ft(Oe(t,"content")),Boolean(hr(t,"isTruthy"))):Pc(t)?(Ft(Oe(t,"[]")),0!==t.length):function(t){return null!==t&&"object"==typeof t&&"function"==typeof t.toHTML}(t)?Boolean(t.toString()):Boolean(t)},toIterator:function(t){return t instanceof qb?function(t){return null===(e=t)||"object"!=typeof e&&"function"!=typeof e?null:Array.isArray(t)||sr(t)?Zb.fromIndexable(t):Qb(t)?Xb.from(t):Jb(t)?Zb.fromForEachable(t):Zb.fromIndexable(t);var e}(t.inner):function(t){return Yt(t)?Array.isArray(t)?Hb.from(t):sr(t)?Gb.from(t):Qb(t)?Yb.from(t):Jb(t)?Hb.fromForEachable(t):null:null}(t)},getProp:dr,setProp:yr,getPath:hr,setPath:mr,scheduleDestroy(t,e){Es("actions",null,e,t)},scheduleDestroyed(t){Es("destroy",null,t)},warnIfStyleNotTrusted(t){},assert(t,e,n){},deprecate(t,e,n){}},H=Ob.scheduleRevalidate,D=Ob.scheduleDestroy,j=Ob.scheduleDestroyed,U=Ob.toIterator,B=Ob.toBool,$=Ob.getProp,q=Ob.setProp,V=Ob.getPath,W=Ob.setPath;var tw=class{enableDebugTooling=N._DEBUG_RENDER_TREE;constructor(t,e){this.owner=t,this.isInteractive=e}onTransactionCommit(){}},ew=Bv(({positional:t,named:e})=>{const n=t[0];let r=e.type,i=e.loc,s=e.original;return _e(r),_e(i),_e(s),ge(()=>_e(n))}),nw=Bv(t=>t.positional[0]),rw=Bv(({positional:t})=>ge(()=>{let e=t[0],n=t[1],r=_e(e).split("."),i=r[r.length-1],s=_e(n);return!0===s?sp(i):s||0===s?String(s):""})),iw=Bv(({positional:t},e)=>{let n=_e(t[0]);return pe(e.factoryFor(n)?.class)}),sw=Bv(({positional:t})=>{const e=t[0];return ge(()=>{let t=_e(e);return Yt(t)&&Ft(Oe(t,"[]")),t})}),ow=Bv(({positional:t})=>ve(t[0])),aw=Bv(({positional:t})=>me(t[0])),lw=Bv(({positional:t,named:e})=>fe(_e(t[0]))),cw={dynamicLayout:!0,dynamicTag:!1,prepareArgs:!1,createArgs:!0,attributeHook:!1,elementHook:!1,createCaller:!0,dynamicScope:!0,updateHook:!0,createInstance:!0,wrapped:!1,willDestroy:!1,hasSubOwner:!0},uw=new class{getDynamicLayout(t){return yv(t.engine.lookup("template:application")(t.engine)).asLayout()}getCapabilities(){return cw}getOwner(t){return t.engine}create(t,{name:e},n,r){let i=t.buildChildEngineInstance(e);i.boot();let s,o,a,l,c=i.factoryFor("controller:application")||zh(i,"application");if(n.named.has("model")&&(l=n.named.get("model")),void 0===l)s=c.create(),o=pe(s),a={engine:i,controller:s,self:o,modelRef:l};else{let t=_e(l);s=c.create({model:t}),o=pe(s),a={engine:i,controller:s,self:o,modelRef:l}}return r.debugRenderTree&&tt(i,s),a}getDebugName({name:t}){return t}getDebugCustomRenderTree(t,e,n){return[{bucket:e.engine,instance:e.engine,type:"engine",name:t.name,args:n},{bucket:e.controller,instance:e.controller,type:"route-template",name:"application",args:n}]}getSelf({self:t}){return t}getDestroyable(t){return t.engine}didCreate(){}didUpdate(){}didRenderLayout(){}didUpdateLayout(){}update(t){let{controller:e,modelRef:n}=t;void 0!==n&&e.set("model",_e(n))}},hw=class{handle=-1;state;manager=uw;compilable=null;capabilities=mu(cw);constructor(t){this.resolvedName=t,this.state={name:t}}},dw=Bv((t,e)=>{let n,r,i,s=t.positional[0];return n=Xm(t.named,ay),ge(()=>{let t=_e(s);return"string"==typeof t?(r===t||(r=t,i=xm(0,new hw(t),e,n,!0)),i):(i=null,r=null,null)})}),pw={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!0,attributeHook:!1,elementHook:!1,createCaller:!1,dynamicScope:!1,updateHook:!1,createInstance:!0,wrapped:!1,willDestroy:!1,hasSubOwner:!1},fw=mu(pw),gw=new class{create(t,e,n){let r=n.named.get("controller");return{self:r,controller:_e(r)}}getSelf({self:t}){return t}getDebugName({name:t}){return`route-template (${t})`}getDebugCustomRenderTree({name:t},e,n){return[{bucket:e,type:"route-template",name:t,args:n,instance:e.controller}]}getCapabilities(){return pw}didRenderLayout(){}didUpdateLayout(){}didCreate(){}didUpdate(){}getDestroyable(){return null}},mw=class{handle=-1;resolvedName;state;manager=gw;capabilities=fw;compilable;constructor(t,e){let n=yv(e);this.resolvedName=t,this.state={name:t},this.compilable=n.asLayout()}};function yw(t,e,n){return xm(0,new mw(e,n),t,null,!0)}var vw=Bv((t,e,n)=>{let r=ge(()=>_e(n.get("outletState"))?.outlets?.main),i=null,s=null;return ge(()=>{let t=_e(r),n=function(t,e){if(void 0===e)return null;let n=e.render;if(void 0===n)return null;let r=n.template;return null==r?null:{ref:t,name:n.name,template:r,controller:n.controller}}(r,t);if(!function(t,e){return null!==t&&null!==e&&t.template===e.template&&t.controller===e.controller}(n,i))if(i=n,null!==n){let o,a=t?.render?.owner??e,l=ne(),c=n.template;o=Du(c)?c:yw(a,n.name,c),l.Component=pe(o),l.controller=pe(n.controller);let u=Se(r,["render","model"]),h=_e(u);l.model=ge(()=>(i===n&&(h=_e(u)),h));let d=Xm(l,ay);s=xm(0,new jb(e,n),a,d,!0)}else s=null;return s})});function bw(t){return{object:`component:${t}`}}var ww={mut:ow,readonly:aw,unbound:lw,"-hash":Gv,"-each-in":Vb,"-normalize-class":rw,"-resolve":iw,"-track-array":sw,"-mount":dw,"-outlet":vw,"-in-el-null":nw},_w={...ww,array:Wv,concat:Kv,fn:Hv,get:Yv,hash:Gv,"unique-id":Rb};_w["-disallow-dynamic-resolution"]=ew;var xw={},Cw={...xw,on:nb},Sw=class{componentDefinitionCache=new Map;lookupPartial(){return null}lookupHelper(t,e){let n=_w[t];if(void 0!==n)return n;let r=e.factoryFor(`helper:${t}`);if(void 0===r)return null;let i=r.class;return void 0===i?null:"function"==typeof i&&!0===i[wb]?(Au(Cb,r),r):i}lookupBuiltInHelper(t){return ww[t]??null}lookupModifier(t,e){let n=Cw[t];if(void 0!==n)return n;let r=e.factoryFor(`modifier:${t}`);return void 0===r?null:r.class||null}lookupBuiltInModifier(t){return xw[t]??null}lookupComponent(t,e){let n=function(t,e){let n=function(t,e){let n=`component:${t}`;return e.factoryFor(n)||null}(e,t);if(null!=(r=n)&&"function"==typeof r.create&&n.class){let t=Np(n.class);if(void 0!==t)return{component:n,layout:t}}var r;return null===n?null:{component:n,layout:null}}(e,t);if(null===n)return null;let r,i=null;r=null===n.component?i=n.layout(e):n.component;let s=this.componentDefinitionCache.get(r);if(void 0!==s)return s;null===i&&null!==n.layout&&(i=n.layout(e));let o=dv("render.getComponentDefinition",bw,t),a=null;if(null===n.component)a={state:ab(void 0,t),manager:sb,template:i};else{let t=n.component,e=t.class,r=zu(e);a={state:zv(r)?t:e,manager:r,template:i}}return o(),this.componentDefinitionCache.set(r,a),a}},kw="-top-level",Ew=class t{static extend(e){return class extends t{static create(t){return t?super.create(Object.assign({},e,t)):super.create(e)}}}static reopenClass(t){Object.assign(this,t)}static create(e){let{environment:n,application:r,template:i}=e,s=Br(e),o=i(s);return new t(n,s,o,r)}ref;state;constructor(t,e,n,r){this._environment=t,this.owner=e,this.template=n,this.namespace=r;let i=gt(),s={outlets:{main:void 0},render:{owner:e,name:kw,controller:void 0,model:void 0,template:n}},o=this.ref=ge(()=>(Ft(i),s),t=>{pt(i),s.outlets.main=t});this.state={ref:o,name:kw,template:n,controller:void 0}}appendTo(t){let e;e=this._environment.hasDOM&&"string"==typeof t?document.querySelector(t):t,Es("render",this.owner.lookup("renderer:-dom"),"appendOutletView",this,e)}rerender(){}setOutletState(t){xe(this.ref,t)}destroy(){}},Rw=class t{constructor(t,e){this.view=t,this.outletState=e}child(){return new t(this.view,this.outletState)}get(t){return this.outletState}set(t,e){return this.outletState=e,e}},Tw=()=>{},Lw=class{type="component";#g;#m;constructor(t,e,n){this.#m=()=>{let r=iv(t.context,t.builder(t.env,n.into),t.owner,e,n?.args),i=this.#g=r.sync();tt(this,this.#g),this.#m=()=>{if(!it(i)&&!st(i))return i.rerender({alwaysRevalidate:!1})}}}isFor(t){return!1}render(){this.#m()}destroy(){nt(this)}get destroyed(){return st(this)}get result(){return this.#g}},Iw=class{type="classic";id;result;destroyed;render;env;constructor(t,e,n,r,i,s,o,a){this.root=t,this.id=t instanceof Ew?ll(t):Kl(t),this.result=void 0,this.destroyed=!1,this.env=e.env,this.render=()=>{let t=yv(r).asLayout(),l=rv(e,n,i,a(e.env,{element:s,nextSibling:null}),t,o),c=this.result=l.sync();tt(this,c),this.render=()=>{if(!it(c)&&!st(c))return c.rerender({alwaysRevalidate:!1})}}}isFor(t){return this.root===t}destroy(){let{result:t,env:e}=this;this.destroyed=!0,this.root=null,this.result=void 0,this.render=void 0,void 0!==t&&Py(e,()=>nt(t))}},Pw=[];function Mw(t){let e=Pw.indexOf(t);Pw.splice(e,1)}var Aw=null,Ow=0;ws.on("begin",function(){for(let t of Pw)t.rerender()}),ws.on("end",function(){for(let t of Pw)if(!t.isValid()){if(Ow>N._RERENDER_LOOP_LIMIT)throw Ow=0,t.destroy(),new Error("infinite rendering invalidation detected");return Ow++,ws.join(null,Tw)}Ow=0,function(){if(null!==Aw){let t=Aw.resolve;Aw=null,ws.join(null,t)}}()});var Nw=class t{static create(e,n){const r=new t(e,n);return tt(n,r),r}#y;#v=-1;#b=!1;#w=!1;#_=[];#x=[];constructor(t,e){this.#y=t,et(this,()=>{this.clearAllRoots(e)})}get debug(){return{roots:this.#_,inRenderTransaction:this.#b,isInteractive:this.isInteractive}}get roots(){return this.#_}get owner(){return this.#y.owner}get builder(){return this.#y.builder}get context(){return this.#y.context}get env(){return this.context.env}get isInteractive(){return this.#y.context.env.isInteractive}renderRoot(t,e){let n=this.#_;return n.push(t),tt(this,t),1===n.length&&function(t){Pw.push(t)}(e),this.#C(e),t}#C(t){if(this.#b)return;this.#b=!0;let e=!1;try{this.renderRoots(t),e=!0}finally{e||(this.#v=ct(xt)),this.#b=!1}}renderRoots(t){let e,n=this.#_,r=this.#x;do{e=n.length,Py(this.context.env,()=>{for(let t=0;t=e||i.render()}this.#v=ct(xt)})}while(n.length>e);for(;r.length;){let t=r.pop(),e=n.indexOf(t);n.splice(e,1)}0===this.#_.length&&Mw(t)}scheduleRevalidate(t){ws.scheduleOnce("render",this,this.revalidate,t)}isValid(){return this.#w||0===this.#_.length||ut(xt,this.#v)}revalidate(t){this.isValid()||this.#C(t)}clearAllRoots(t){let e=this.#_;for(let n of e)nt(n);this.#x.length=0,this.#_=[],e.length&&Mw(t)}},Fw=class t{static strict(e,n,r){return new t(e,{hasDOM:Ao,...r},n,new Sw,sm)}state;constructor(t,e,n,r,i){let s={constants:new fg,heap:new lg},o=Iy({document:n},new tw(t,e.isInteractive),s,r),a=new Mb(s,t=>new og(t),o);this.state=Nw.create({owner:t,context:a,builder:i},this)}get debugRenderTree(){let{debugRenderTree:t}=this.state.env;return t}isValid(){return this.state.isValid()}destroy(){nt(this)}render(t,e){const n=new Lw(this.state,t,{args:e.args,into:(r=e.into,"element"in r?r:{element:r,nextSibling:null})});var r;return this.state.renderRoot(n,this)}rerender(){this.state.scheduleRevalidate(this)}},zw=class extends Fw{static strict(t,e,n){return new Fw(t,{hasDOM:Ao,...n},e,new Sw,sm)}_rootTemplate;_viewRegistry;static create(t){let{_viewRegistry:e}=t,n=Br(t),r=n.lookup("service:-document"),i=n.lookup("-environment:main"),s=n.lookup(yc`template:-root`),o=n.lookup("service:-dom-builder");return new this(n,r,i,s,e,o)}constructor(t,e,n,r,i,s=sm,o=new Sw){super(t,n,e,o,s),this._rootTemplate=r(t),this._viewRegistry=i||t.lookup("-view-registry:main")}appendOutletView(t,e){let n=new jb((r=t).owner,r.state);var r;let{name:i,template:s}=t.state,o=ne();o.Component=pe(yw(t.owner,i,s)),o.controller=ce,o.model=ce;let a=Xm(o,ay);this._appendDefinition(t,xm(0,n,t.owner,a,!0),e)}appendTo(t,e){let n=new $b(t);this._appendDefinition(t,xm(0,n,this.state.owner,null,!0),e)}_appendDefinition(t,e,n){let r=pe(e),i=new Rw(null,ce),s=new Iw(t,this.state.context,this.state.owner,this._rootTemplate,r,n,i,this.state.builder);this.state.renderRoot(s,this)}cleanupRootFor(t){if(st(this))return;let e=this.state.roots,n=e.length;for(;n--;){let r=e[n];"classic"===r.type&&r.isFor(t)&&(r.destroy(),e.splice(n,1))}}remove(t){t._transitionTo("destroying"),this.cleanupRootFor(t),this.state.isInteractive&&t.trigger("didDestroyElement")}get _roots(){return this.state.debug.roots}get _inRenderTransaction(){return this.state.debug.inRenderTransaction}get _isInteractive(){return this.state.debug.isInteractive}get _context(){return this.state.context}register(t){let e=Kl(t);this._viewRegistry[e]=t}unregister(t){delete this._viewRegistry[Kl(t)]}getElement(t){if(this._isInteractive)return Ql(t);throw new Error("Accessing `this.element` is not allowed in non-interactive environments (such as FastBoot).")}getBounds(t){let e=t[Iv];return{parentElement:e.parentElement(),firstNode:e.firstNode(),lastNode:e.lastNode()}}},Dw=class extends hu{rootElement=null;init(t){super.init(t),this.application._watchInstance(this),this.register("-application-instance:main",this,{instantiate:!1})}_bootSync(t){return this._booted||(t=new jw(t),this.setupRegistry(t),t.rootElement?this.rootElement=t.rootElement:this.rootElement=this.application.rootElement,t.location&&mr(this.router,"location",t.location),this.application.runInstanceInitializers(this),t.isInteractive&&this.setupEventDispatcher(),this._booted=!0),this}setupRegistry(t){this.constructor.setupRegistry(this.__registry__,t)}_router;get router(){if(!this._router){let t=this.lookup("router:main");this._router=t}return this._router}didCreateRootView(t){t.appendTo(this.rootElement)}startRouting(){this.router.startRouting()}setupRouter(){this.router.setupRouter()}handleURL(t){return this.setupRouter(),this.router.handleURL(t)}setupEventDispatcher(){let t=this.lookup("event_dispatcher:main"),e=hr(this.application,"customEvents"),n=hr(this,"customEvents"),r=Object.assign({},e,n);return t.setup(r,this.rootElement),t}getURL(){return this.router.url}visit(t){this.setupRouter();let e=this.__container__.lookup("-environment:main"),n=this.router,r=hr(n,"location");return r.setURL(t),n.handleURL(r.getURL()).followRedirects().then(()=>e.options.shouldRender?function(){if(null===Aw){let t;Aw={promise:new Promise(e=>t=e),resolve:t},ys()||ws.schedule("actions",null,Tw)}return Aw.promise}().then(()=>this):this,t=>{throw t.error&&t.error instanceof Error?t.error:"TransitionAborted"===t.name?new Error(t.message):t})}willDestroy(){super.willDestroy(),this.application._unwatchInstance(this)}static setupRegistry(t,e={}){let n=e instanceof jw?e:new jw(e);t.register("-environment:main",n.toEnvironment(),{instantiate:!1}),t.register("service:-document",n.document,{instantiate:!1}),super.setupRegistry(t,n)}},jw=class{isInteractive;_renderMode;isBrowser;location=null;shouldRender;document;rootElement;constructor(t={}){this.isInteractive=Boolean(Ao),this._renderMode=t._renderMode,void 0!==t.isBrowser?this.isBrowser=Boolean(t.isBrowser):this.isBrowser=Boolean(Ao),this.isBrowser||(this.isInteractive=!1,this.location="none"),void 0!==t.shouldRender?this.shouldRender=Boolean(t.shouldRender):this.shouldRender=!0,this.shouldRender||(this.isInteractive=!1),t.document?this.document=t.document:this.document="undefined"!=typeof document?document:null,t.rootElement&&(this.rootElement=t.rootElement),void 0!==t.location&&(this.location=t.location),void 0!==t.isInteractive&&(this.isInteractive=Boolean(t.isInteractive))}toEnvironment(){return{...Ep,hasDOM:this.isBrowser,isInteractive:this.isInteractive,_renderMode:this._renderMode,options:this}}},Uw=a({default:()=>Bw}),Bw=class extends Bl{static NAMESPACES=li;static NAMESPACES_BY_ID=ci;static processAll=gi;static byName=pi;init(t){super.init(t),ui(this)}toString(){let t=hr(this,"name")||hr(this,"modulePrefix");if(t)return t;di();let e=ri(this);return void 0===e&&(e=ll(this),ni(this,e)),e}nameClasses(){fi(this)}destroy(){return hi(this),super.destroy()}};Bw.prototype.isNamespace=!0;var $w=function(){function t(){this._vertices=new qw}return t.prototype.add=function(t,e,n,r){if(!t)throw new Error("argument `key` is required");var i=this._vertices,s=i.add(t);if(s.val=e,n)if("string"==typeof n)i.addEdge(s,i.add(n));else for(var o=0;o0){var r="cycle detected: "+e;throw this.each(this.path,function(t){r+=" <- "+t}),new Error(r)}}},t.prototype.reset=function(){this.stack.length=0,this.path.length=0,this.result.length=0;for(var t=0,e=this.length;t=0){var a=this[o];if(a.flag)continue;if(a.flag=!0,i.push(o),e===a.key)break;r.push(~o),this.pushIncoming(a)}else i.pop(),s.push(~o)}},t.prototype.pushIncoming=function(t){for(var e=this.stack,n=t.length-1;n>=0;n--){var r=t[n];this[r].flag||e.push(r)}},t.prototype.each=function(t,e){for(var n=0,r=t.length;n{for(let e in t)Object.prototype.hasOwnProperty.call(t,e)&&r.test(e)&&"class"===kc(t[e])&&n.push(sp(e.replace(r,"")))}),n}},Hw=nb;function Gw(){}var Zw=class{static toString(){return"internal component"}constructor(t,e,n){this.owner=t,this.args=e,this.caller=n,$r(this,t)}get id(){return ll(this)}get class(){return"ember-view"}validateArguments(){for(let t of Object.keys(this.args.named))this.isSupportedArgument(t)||this.onUnsupportedArgument(t)}named(t){let e=this.args.named[t];return e?_e(e):void 0}positional(t){let e=this.args.positional[t];return e?_e(e):void 0}listenerFor(t){return this.named(t)||Gw}isSupportedArgument(t){return!1}onUnsupportedArgument(t){}toString(){return`<${this.constructor}:${ll(this)}>`}},Kw=new WeakMap;function Yw(t,e){let n={create(){throw void 0},toString:()=>t.toString()};return Kw.set(n,t),Fu(Jw,n),Op(e,n),n}var Xw={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!0,attributeHook:!1,elementHook:!1,createCaller:!0,dynamicScope:!1,updateHook:!1,createInstance:!0,wrapped:!1,willDestroy:!1,hasSubOwner:!1},Jw=new class{getCapabilities(){return Xw}create(t,e,n,r,i,s){let o=new(a=e,Kw.get(a))(t,n.capture(),_e(s));var a;return Wt(o.validateArguments.bind(o)),o}didCreate(){}didUpdate(){}didRenderLayout(){}didUpdateLayout(){}getDebugName(t){return t.toString()}getSelf(t){return pe(t)}getDestroyable(t){return t}},Qw=ig({id:null,block:'[[[11,"input"],[16,1,[30,0,["id"]]],[16,0,[30,0,["class"]]],[17,1],[16,4,[30,0,["type"]]],[16,"checked",[30,0,["checked"]]],[16,2,[30,0,["value"]]],[4,[32,0],["change",[30,0,["change"]]],null],[4,[32,0],["input",[30,0,["input"]]],null],[4,[32,0],["keyup",[30,0,["keyUp"]]],null],[4,[32,0],["paste",[30,0,["valueDidChange"]]],null],[4,[32,0],["cut",[30,0,["valueDidChange"]]],null],[12],[13]],["&attrs"],[]]',moduleName:"packages/@ember/-internals/glimmer/lib/templates/input.hbs",scope:()=>({on:Hw}),isStrictMode:!0}),t_=Object.freeze({});function e_(t){return function(t){return t.target}(t).value}function n_(t){return void 0===t?new i_(void 0):be(t)?new i_(_e(t)):we(t)?new s_(t):new o_(t)}var r_,i_=class{static{Zh(this.prototype,"value",[Wr])}#S=void Yh(this,"value");constructor(t){this.value=t}get(){return this.value}set(t){this.value=t}},s_=class{constructor(t){this.reference=t}get(){return _e(this.reference)}set(t){xe(this.reference,t)}},o_=class{local;upstream;lastUpstreamValue=t_;constructor(t){this.upstream=new s_(t)}get(){let t=this.upstream.get();return t!==this.lastUpstreamValue&&(this.lastUpstreamValue=t,this.local=new i_(t)),this.local.get()}set(t){this.local.set(t)}},a_=class extends Zw{validateArguments(){super.validateArguments()}_value=n_(this.args.named.value);get value(){return this._value.get()}set value(t){this._value.set(t)}valueDidChange(t){this.value=e_(t)}static{Kh(this.prototype,"valueDidChange",[Vl])}change(t){this.valueDidChange(t)}input(t){this.valueDidChange(t)}keyUp(t){switch(t.key){case"Enter":this.listenerFor("enter")(t),this.listenerFor("insert-newline")(t);break;case"Escape":this.listenerFor("escape-press")(t)}}static{Kh(this.prototype,"keyUp",[Vl])}listenerFor(t){let e=super.listenerFor(t);return this.isVirtualEventListener(t,e)?function(t){return e=>t(e_(e),e)}(e):e}isVirtualEventListener(t,e){return-1!==["enter","insert-newline","escape-press"].indexOf(t)}};if(Ao){const t=Object.create(null),e=document.createElement("input");t[""]=!1,t.text=!0,t.checkbox=!0,r_=n=>{let r=t[n];if(void 0===r){try{e.type=n,r=e.type===n}catch(i){r=!1}finally{e.type="text"}t[n]=r}return r}}else r_=t=>""!==t;var l_=class extends a_{static toString(){return"Input"}get class(){return this.isCheckbox?"ember-checkbox ember-view":"ember-text-field ember-view"}get type(){let t=this.named("type");return null==t?"text":r_(t)?t:"text"}get isCheckbox(){return"checkbox"===this.named("type")}_checked=n_(this.args.named.checked);get checked(){return this.isCheckbox?this._checked.get():void 0}set checked(t){this._checked.set(t)}change(t){this.isCheckbox?this.checkedDidChange(t):super.change(t)}static{Kh(this.prototype,"change",[Vl])}input(t){this.isCheckbox||super.input(t)}static{Kh(this.prototype,"input",[Vl])}checkedDidChange(t){let e=t.target;this.checked=e.checked}static{Kh(this.prototype,"checkedDidChange",[Vl])}isSupportedArgument(t){return-1!==["type","value","checked","enter","insert-newline","escape-press"].indexOf(t)||super.isSupportedArgument(t)}},c_=Yw(l_,Qw),u_=ig({id:null,block:'[[[11,"textarea"],[16,1,[30,0,["id"]]],[16,0,[30,0,["class"]]],[17,1],[16,2,[30,0,["value"]]],[4,[32,0],["change",[30,0,["change"]]],null],[4,[32,0],["input",[30,0,["input"]]],null],[4,[32,0],["keyup",[30,0,["keyUp"]]],null],[4,[32,0],["paste",[30,0,["valueDidChange"]]],null],[4,[32,0],["cut",[30,0,["valueDidChange"]]],null],[12],[13]],["&attrs"],[]]',moduleName:"packages/@ember/-internals/glimmer/lib/templates/textarea.hbs",scope:()=>({on:Hw}),isStrictMode:!0}),h_=class extends a_{static toString(){return"Textarea"}get class(){return"ember-text-area ember-view"}change(t){super.change(t)}static{Kh(this.prototype,"change",[Vl])}input(t){super.input(t)}static{Kh(this.prototype,"input",[Vl])}isSupportedArgument(t){return-1!==["type","value","enter","insert-newline","escape-press"].indexOf(t)||super.isSupportedArgument(t)}},d_=Yw(h_,u_),p_=ig({id:null,block:'[[[11,3],[16,1,[30,0,["id"]]],[16,0,[30,0,["class"]]],[16,"role",[30,0,["role"]]],[16,"title",[30,0,["title"]]],[16,"rel",[30,0,["rel"]]],[16,"tabindex",[30,0,["tabindex"]]],[16,"target",[30,0,["target"]]],[17,1],[16,6,[30,0,["href"]]],[4,[32,0],["click",[30,0,["click"]]],null],[12],[18,2,null],[13]],["&attrs","&default"],["yield"]]',moduleName:"packages/@ember/-internals/glimmer/lib/templates/link-to.hbs",scope:()=>({on:Hw}),isStrictMode:!0}),f_=[],g_={};function m_(t){return null==t}function y_(t){return"object"==typeof t&&null!==t&&!0===t.isQueryParams}var v_=class extends Zw{static toString(){return"LinkTo"}static{Zh(this.prototype,"routing",[pp("-routing")])}#k=void Yh(this,"routing");validateArguments(){super.validateArguments()}get class(){let t="ember-view";return this.isActive?(t+=this.classFor("active"),!1===this.willBeActive&&(t+=" ember-transitioning-out")):this.willBeActive&&(t+=" ember-transitioning-in"),this.isLoading&&(t+=this.classFor("loading")),this.isDisabled&&(t+=this.classFor("disabled")),t}get href(){if(this.isLoading)return"#";let{routing:t,route:e,models:n,query:r}=this;return Ft(Kt(t,"currentState")),t.generateURL(e,n,r)}click(t){if(!Hl(t))return;let e=t.currentTarget,n=e instanceof SVGAElement?e.target.baseVal:e.target;if(""!==n&&"_self"!==n)return;if(this.preventDefault(t),this.isDisabled)return;if(this.isLoading)return;let{routing:r,route:i,models:s,query:o,replace:a}=this,l={transition:void 0};uv(0,0,()=>{l.transition=r.transitionTo(i,s,o,a)})}static{Kh(this.prototype,"click",[Vl])}get route(){if("route"in this.args.named){let t=this.named("route");return t&&this.namespaceRoute(t)}return this.currentRoute}currentRouteCache=Bt(()=>(Ft(Kt(this.routing,"currentState")),Wt(()=>this.routing.currentRouteName)));get currentRoute(){return $t(this.currentRouteCache)}get models(){return"models"in this.args.named?this.named("models"):"model"in this.args.named?[this.named("model")]:f_}get query(){return"query"in this.args.named?{...this.named("query")}:g_}get replace(){return!0===this.named("replace")}get isActive(){return this.isActiveForState(this.routing.currentState)}get willBeActive(){let t=this.routing.currentState,e=this.routing.targetState;return t===e?null:this.isActiveForState(e)}get isLoading(){return m_(this.route)||this.models.some(t=>m_(t))}get isDisabled(){return Boolean(this.named("disabled"))}get isEngine(){return void 0!==au(this.owner)}get engineMountPoint(){return this.owner.mountPoint}classFor(t){let e=this.named(`${t}Class`);return!0===e||m_(e)?` ${t}`:e?` ${e}`:""}namespaceRoute(t){let{engineMountPoint:e}=this;return void 0===e?t:"application"===t?e:`${e}.${t}`}isActiveForState(t){if(m_(t))return!1;if(this.isLoading)return!1;let e=this.named("current-when");if("boolean"==typeof e)return e;if("string"==typeof e){let{routing:n}=this;return e.split(" ").some(e=>n.isActiveForRoute([],void 0,this.namespaceRoute(e),t))}{let{route:e,models:n,query:r,routing:i}=this;return i.isActiveForRoute(n,r,e,t)}}preventDefault(t){t.preventDefault()}isSupportedArgument(t){return-1!==["route","model","models","query","replace","disabled","current-when","activeClass","loadingClass","disabledClass"].indexOf(t)||super.isSupportedArgument(t)}},{prototype:b_}=v_,w_=(t,e)=>t?Object.getOwnPropertyDescriptor(t,e)||w_(Object.getPrototypeOf(t),e):null;{let t=b_.onUnsupportedArgument;Object.defineProperty(b_,"onUnsupportedArgument",{configurable:!0,enumerable:!1,value:function(e){"href"===e||t.call(this,e)}})}{let t=w_(b_,"models").get;Object.defineProperty(b_,"models",{configurable:!0,enumerable:!1,get:function(){let e=t.call(this);return e.length>0&&!("query"in this.args.named)&&y_(e[e.length-1])&&(e=e.slice(0,-1)),e}});let e=w_(b_,"query").get;Object.defineProperty(b_,"query",{configurable:!0,enumerable:!1,get:function(){if("query"in this.args.named){let t=e.call(this);return y_(t)?t.values??g_:t}{let e=t.call(this);if(e.length>0){let t=e[e.length-1];if(y_(t)&&null!==t.values)return t.values}return g_}}})}{let t=b_.onUnsupportedArgument;Object.defineProperty(b_,"onUnsupportedArgument",{configurable:!0,enumerable:!1,value:function(e){"params"!==e&&t.call(this,e)}})}var __=Yw(v_,p_),x_="%+b:0%";function C_(t){return t.nodeValue===x_}var S_=class extends gg{candidate=null;openBlockDepth;injectedOmittedNode=!1;constructor(t,e,n){super(t,e),this.startingBlockDepth=n,this.openBlockDepth=n-1}},k_=class extends tm{unmatchedAttributes=null;blockDepth=0;startingBlockOffset;constructor(t,e,n){if(super(t,e,n),n)throw new Error("Rehydration with nextSibling not supported");let r=this.currentCursor.element.firstChild;for(;null!==r&&!E_(r);)r=r.nextSibling;this.candidate=r;const i=T_(r);if(0!==i){const t=i-1,e=this.dom.createComment(`%+b:${t}%`);r.parentNode.insertBefore(e,this.candidate);let n=r.nextSibling;for(;null!==n&&(!R_(n)||T_(n)!==i);)n=n.nextSibling;const s=this.dom.createComment(`%-b:${t}%`);r.parentNode.insertBefore(s,n.nextSibling),this.candidate=e,this.startingBlockOffset=t}else this.startingBlockOffset=0}get currentCursor(){return this.cursors.current}get candidate(){return this.currentCursor?this.currentCursor.candidate:null}set candidate(t){this.currentCursor.candidate=t}disableRehydration(t){const e=this.currentCursor;e.candidate=null,e.nextSibling=t}enableRehydration(t){const e=this.currentCursor;e.candidate=t,e.nextSibling=null}pushElement(t,e=null){const n=new S_(t,e,this.blockDepth||0);null!==this.candidate&&(n.candidate=t.firstChild,this.candidate=t.nextSibling),this.cursors.push(n)}clearMismatch(t){let e=t;const n=this.currentCursor;if(null!==n){const t=n.openBlockDepth;if(t>=n.startingBlockDepth)for(;e&&!(R_(e)&&t>=L_(e,this.startingBlockOffset));)e=this.remove(e);else for(;null!==e;)e=this.remove(e);this.disableRehydration(e)}}__openBlock(){const{currentCursor:t}=this;if(null===t)return;const e=this.blockDepth;this.blockDepth++;const{candidate:n}=t;if(null===n)return;const{tagName:r}=t.element;E_(n)&&L_(n,this.startingBlockOffset)===e?(this.candidate=this.remove(n),t.openBlockDepth=e):"TITLE"!==r&&"SCRIPT"!==r&&"STYLE"!==r&&this.clearMismatch(n)}__closeBlock(){const{currentCursor:t}=this;if(null===t)return;const e=t.openBlockDepth;this.blockDepth--;const{candidate:n}=t;let r=!1;if(null!==n)if(r=!0,R_(n)&&L_(n,this.startingBlockOffset)===e){const e=this.remove(n);this.candidate=e,t.openBlockDepth--}else this.clearMismatch(n),r=!1;if(!r){const e=t.nextSibling;if(null!==e&&R_(e)&&L_(e,this.startingBlockOffset)===this.blockDepth){const n=this.remove(e);this.enableRehydration(n),t.openBlockDepth--}}}__appendNode(t){const{candidate:e}=this;return e||super.__appendNode(t)}__appendHTML(t){const e=this.markerBounds();if(e){const t=e.firstNode(),n=e.lastNode(),r=new mg(this.element,t.nextSibling,n.previousSibling),i=this.remove(t);return this.remove(n),null!==i&&M_(i)&&(this.candidate=this.remove(i),null!==this.candidate&&this.clearMismatch(this.candidate)),r}return super.__appendHTML(t)}remove(t){const e=t.parentNode,n=t.nextSibling;return e.removeChild(t),n}markerBounds(){const t=this.candidate;if(t&&P_(t)){const e=t;let n=e.nextSibling;for(;!P_(n);)n=Jt(n.nextSibling);return new mg(this.element,e,n)}return null}__appendText(t){const{candidate:e}=this;return e?3===e.nodeType?(e.nodeValue!==t&&(e.nodeValue=t),this.candidate=e.nextSibling,e):8===(n=e).nodeType&&"%|%"===n.nodeValue||M_(e)&&""===t?(this.candidate=this.remove(e),this.__appendText(t)):(this.clearMismatch(e),super.__appendText(t)):super.__appendText(t);var n}__appendComment(t){const e=this.candidate;return e&&8===e.nodeType?(e.nodeValue!==t&&(e.nodeValue=t),this.candidate=e.nextSibling,e):(e&&this.clearMismatch(e),super.__appendComment(t))}__openElement(t){const e=this.candidate;if(e&&I_(e)&&function(t,e){return"http://www.w3.org/2000/svg"===t.namespaceURI?t.tagName===e:t.tagName===e.toUpperCase()}(e,t))return this.unmatchedAttributes=[].slice.call(e.attributes),e;if(e){if(I_(e)&&"TBODY"===e.tagName)return this.pushElement(e,null),this.currentCursor.injectedOmittedNode=!0,this.__openElement(t);this.clearMismatch(e)}return super.__openElement(t)}__setAttribute(t,e,n){const r=this.unmatchedAttributes;if(r){const n=A_(r,t);if(n)return n.value!==e&&(n.value=e),void r.splice(r.indexOf(n),1)}return super.__setAttribute(t,e,n)}__setProperty(t,e){const n=this.unmatchedAttributes;if(n){const r=A_(n,t);if(r)return r.value!==e&&(r.value=e),void n.splice(n.indexOf(r),1)}return super.__setProperty(t,e)}__flushElement(t,e){const{unmatchedAttributes:n}=this;if(n){for(const t of n)this.constructing.removeAttribute(t.name);this.unmatchedAttributes=null}else super.__flushElement(t,e)}willCloseElement(){const{candidate:t,currentCursor:e}=this;null!==t&&this.clearMismatch(t),e&&e.injectedOmittedNode&&this.popElement(),super.willCloseElement()}getMarker(t,e){const n=t.querySelector(`script[glmr="${e}"]`);return n?(function(t){t.nodeType}(r=n),r):null;var r}__pushRemoteElement(t,e,n){const r=this.getMarker(t,e);if(!r||r.parentNode,void 0===n){for(;null!==t.firstChild&&t.firstChild!==r;)this.remove(t.firstChild);n=null}const i=new S_(t,null,this.blockDepth);this.cursors.push(i),null===r?this.disableRehydration(n):this.candidate=this.remove(r);const s=new nm(t);return this.pushBlock(s,!0)}didAppendBounds(t){if(super.didAppendBounds(t),this.candidate){const e=t.lastNode();this.candidate=e.nextSibling}return t}};function E_(t){return 8===t.nodeType&&0===t.nodeValue.lastIndexOf("%+b:",0)}function R_(t){return 8===t.nodeType&&0===t.nodeValue.lastIndexOf("%-b:",0)}function T_(t){return parseInt(t.nodeValue.slice(4),10)}function L_(t,e){return T_(t)-e}function I_(t){return 1===t.nodeType}function P_(t){return 8===t.nodeType&&"%glmr%"===t.nodeValue}function M_(t){return 8===t.nodeType&&"% %"===t.nodeValue}function A_(t,e){for(const n of t)if(n.name===e)return n}function O_(t,e){return k_.forInitialRender(t,e)}var N_=new WeakMap,F_=class extends tm{serializeBlockDepth=0;__openBlock(){let{tagName:t}=this.element;if("TITLE"!==t&&"SCRIPT"!==t&&"STYLE"!==t){let t=this.serializeBlockDepth++;this.__appendComment(`%+b:${t}%`)}super.__openBlock()}__closeBlock(){let{tagName:t}=this.element;if(super.__closeBlock(),"TITLE"!==t&&"SCRIPT"!==t&&"STYLE"!==t){let t=--this.serializeBlockDepth;this.__appendComment(`%-b:${t}%`)}}__appendHTML(t){let{tagName:e}=this.element;if("TITLE"===e||"SCRIPT"===e||"STYLE"===e)return super.__appendHTML(t);let n=this.__appendComment("%glmr%");if("TABLE"===e){let e=t.indexOf("<");e>-1&&"tr"===t.slice(e+1,e+3)&&(t=`${t}`)}""===t?this.__appendComment("% %"):super.__appendHTML(t);let r=this.__appendComment("%glmr%");return new mg(this.element,n,r)}__appendText(t){let{tagName:e}=this.element,n=function(t){let{element:e,nextSibling:n}=t;return null===n?e.lastChild:n.previousSibling}(this);return"TITLE"===e||"SCRIPT"===e||"STYLE"===e?super.__appendText(t):""===t?this.__appendComment("% %"):(n&&3===n.nodeType&&this.__appendComment("%|%"),super.__appendText(t))}closeElement(){return N_.has(this.element)&&(N_.delete(this.element),super.closeElement()),super.closeElement()}openElement(t){return"tr"===t&&"TBODY"!==this.element.tagName&&"THEAD"!==this.element.tagName&&"TFOOT"!==this.element.tagName&&(this.openElement("tbody"),N_.set(this.constructing,!0),this.flushElement(null)),super.openElement(t)}pushRemoteElement(t,e,n=null){let{dom:r}=this,i=r.createElement("script");return i.setAttribute("glmr",e),r.insertBefore(t,i,n),super.pushRemoteElement(t,e,n)}};function z_(t,e){return F_.forInitialRender(t,e)}var D_=ig({id:null,block:'[[[46,[30,0],null,null,null]],[],["component"]]',moduleName:"packages/@ember/-internals/glimmer/lib/templates/root.hbs",isStrictMode:!0}),j_=ig({id:null,block:'[[[46,[28,[32,0],null,null],null,null,null]],[],["component"]]',moduleName:"packages/@ember/-internals/glimmer/lib/templates/outlet.hbs",scope:()=>({outletHelper:vw}),isStrictMode:!0});function U_(t){t.register("service:-dom-builder",{create(t){switch(Br(t).lookup("-environment:main")._renderMode){case"serialize":return z_.bind(null);case"rehydrate":return O_.bind(null);default:return sm.bind(null)}}}),t.register(yc`template:-root`,D_),t.register("renderer:-dom",zw)}var B_=class t{moduleBasedResolver=!0;#E=new Map;original;static create({namespace:e}){return new t(e.modules)}constructor(t){this.addModules(t)}addModules(t){for(let[e,n]of Object.entries(t))this.#E.set(this.#R(e),n)}#R(t){return t.replace($_,"").replace(q_,"")}#T(t){return"config"===t?t:t+"s"}resolve(t){let[e,n]=t.split(":");n=this.#L(e,n);for(let r of[this.#I,this.#P,this.#M,this.#A]){let t=r.call(this,e,n);if(t)return this.#O(t.hit)}}#O(t){return t&&t.default&&(t=t.default),t}normalize(t){let[e,n]=t.split(":");return n=this.#L(e,n),`${e}:${n}`}#L(t,e){return"component"===t||"helper"===t||"modifier"===t||"template"===t&&0===e.indexOf("components/")?e.replace(/_/g,"-"):function(t){return t.replace(V_,"$1_$2").toLowerCase().replace(W_,"-")}(e.replace(/\./g,"/"))}#I(t,e){if("resolver"===t&&"current"===e)return{hit:{create:()=>this}}}#P(t,e){if("main"===e){let e=this.#E.get(t);if(e)return{hit:e}}}#M(t,e){let n=`${this.#T(t)}/${e}`,r=this.#E.get(n);if(r)return{hit:r}}#A(t,e){if("component"!==t)return;let n=`${this.#T(t)}/${e}/index`,r=this.#E.get(n);return r?{hit:r}:void 0}},$_=/\.\w{1,4}$/,q_=/^\.\//,V_=/([a-z\d])([A-Z])/g,W_=/[ _]/g,H_=class extends(Bw.extend(cu)){static initializers=Object.create(null);static instanceInitializers=Object.create(null);static initializer=Z_("initializers");static instanceInitializer=Z_("instanceInitializers");static buildRegistry(t){let e=new fc({resolver:G_(t)});return e.set=mr,e.register("application:main",t,{instantiate:!1}),function(t){t.optionsForType("component",{singleton:!1}),t.optionsForType("view",{singleton:!1}),t.register("controller:basic",eu,{instantiate:!1}),t.register("service:-routing",vp),t.register("resolver-for-debugging:main",t.resolver,{instantiate:!1}),t.register("container-debug-adapter:main",Ww)}(e),function(t){t.optionsForType("template",{instantiate:!1}),t.register("view:-outlet",Ew),t.register("template:-outlet",j_),t.optionsForType("helper",{instantiate:!1}),t.register("component:input",c_),t.register("component:link-to",__),t.register("component:textarea",d_)}(e),e}Resolver=B_;init(t){super.init(t),this.buildRegistry()}_initializersRan=!1;ensureInitializers(){this._initializersRan||(this.runInitializers(),this._initializersRan=!0)}buildInstance(t={}){return this.ensureInitializers(),hu.create({...t,base:this})}buildRegistry(){return this.__registry__=this.constructor.buildRegistry(this)}initializer(t){this.constructor.initializer(t)}instanceInitializer(t){this.constructor.instanceInitializer(t)}runInitializers(){this._runInitializer("initializers",(t,e)=>{e.initialize(this)})}runInstanceInitializers(t){this._runInitializer("instanceInitializers",(e,n)=>{n.initialize(t)})}_runInitializer(t,e){let n,r=hr(this.constructor,t),i=function(t){let e=[];for(let n in t)e.push(n);return e}(r),s=new $w;for(let o of i)n=r[o],s.add(n.name,n,n.before,n.after);s.topsort(e)}};function G_(t){let e={namespace:t};return t.Resolver.create(e)}function Z_(t){return function(e){let n=this.superclass;if(void 0!==n[t]&&n[t]===this[t]){let e={[t]:Object.create(this[t])};this.reopenClass(e)}this[t][e.name]=e}}var K_=a({default:()=>J_,getOwner:()=>Y_,setOwner:()=>X_}),Y_=Po,X_=$r,J_=class extends H_{static buildRegistry(t){let e=super.buildRegistry(t);return function(t){t.register("router:main",Ad),t.register("-view-registry:main",{create:()=>Mo(null)}),t.register("route:basic",Qh),t.register("event_dispatcher:main",dc),t.register("location:hash",Wd),t.register("location:history",Gd),t.register("location:none",Zd),t.register(yc`-bucket-cache:main`,{create:()=>new bp}),t.register("service:router",yp)}(e),U_(e),e}static initializer=Z_("initializers");static instanceInitializer=Z_("instanceInitializers");init(t){super.init(t),this.rootElement??="body",this._document??=null,this.eventDispatcher??=null,this.customEvents??=null,this.autoboot??=!0,this._document??=Ao?window.document:null,this._readinessDeferrals=1,this._booted=!1,this._applicationInstances=new Set,this.autoboot=Boolean(this.autoboot),this.autoboot&&(this.Router=(this.Router||Ad).extend(),this._buildDeprecatedInstance(),this.waitForDOMReady())}buildInstance(t={}){return Dw.create({...t,base:this,application:this})}_watchInstance(t){this._applicationInstances.add(t)}_unwatchInstance(t){return this._applicationInstances.delete(t)}Router;__deprecatedInstance__;__container__;_buildDeprecatedInstance(){let t=this.buildInstance();this.__deprecatedInstance__=t,this.__container__=t.__container__}waitForDOMReady(){const t=this._document;if(null===t||"loading"!==t.readyState)Es("actions",this,this.domReady);else{let e=()=>{t.removeEventListener("DOMContentLoaded",e),_s(this,this.domReady)};t.addEventListener("DOMContentLoaded",e)}}domReady(){this.isDestroying||this.isDestroyed||this._bootSync()}deferReadiness(){this._readinessDeferrals++}advanceReadiness(){this._readinessDeferrals--,0===this._readinessDeferrals&&Is(this,this.didBecomeReady)}_bootPromise=null;boot(){if(this._bootPromise)return this._bootPromise;try{this._bootSync()}catch(t){}return this._bootPromise}_bootResolver=null;_bootSync(){if(this._booted||this.isDestroying||this.isDestroyed)return;let t=this._bootResolver=$a.defer();this._bootPromise=t.promise;try{this.runInitializers(),this.advanceReadiness()}catch(d8){throw t.reject(d8),d8}}reset(){let t=this.__deprecatedInstance__;this._readinessDeferrals=1,this._bootPromise=null,this._bootResolver=null,this._booted=!1,xs(this,function(){_s(t,"destroy"),this._buildDeprecatedInstance(),Es("actions",this,"_bootSync")})}didBecomeReady(){if(!this.isDestroying&&!this.isDestroyed)try{if(this.autoboot){let t=this.__deprecatedInstance__;t._bootSync(),this.ready(),t.startRouting()}this._bootResolver.resolve(this),this._booted=!0}catch(d8){throw this._bootResolver.reject(d8),d8}}ready(){return this}willDestroy(){super.willDestroy(),this._applicationInstances.size&&(this._applicationInstances.forEach(t=>t.destroy()),this._applicationInstances.clear())}visit(t,e){return this.boot().then(()=>{let n=this.buildInstance();return n.boot(e).then(()=>n.visit(t)).catch(t=>{throw _s(n,"destroy"),t})})}},Q_=Object.assign({},{});function tx(){return ex.global}var ex=globalThis.__embroider_macros__runtime_config__||={};ex.packages||={},ex.global||={};Object.assign(ex.packages,{}),Object.assign(ex.global,{});var nx="undefined"!=typeof window?window._embroider_macros_runtime_config:void 0;if(nx){let t={config:function(t){return ex.packages[t]},getGlobalConfig:tx,setConfig(t,e){ex.packages[t]=e},setGlobalConfig(t,e){ex.global[t]=e}};for(let e of nx)e(t)}var rx=a({default:()=>ix,enterTestMode:()=>sx}),ix={modulePrefix:"marco",environment:"production",rootURL:"/",locationType:"history",EmberENV:{},APP:{}};function sx(){ix.locationType="none",ix.APP.rootElement="#ember-testing",ix.APP.autoboot=!1;const t=tx()["@embroider/macros"];t&&(t.isTesting=!0)}var ox=()=>{},ax=()=>{};function lx(t){let e=t.lookup("renderer:-dom");if(!e)throw new Error("BUG: owner is missing renderer");return e.debugRenderTree.capture()}var cx=a({_warnIfUsingStrippedFeatureFlags:()=>{},assert:()=>Sn,captureRenderTree:()=>lx,debug:()=>px,debugFreeze:()=>gx,debugSeal:()=>fx,deprecate:()=>wx,deprecateFunc:()=>bx,getDebugFunction:()=>vx,info:()=>hx,inspect:()=>Mn,isTesting:()=>iu,registerDeprecationHandler:()=>ox,registerWarnHandler:()=>ax,runInDebug:()=>mx,setDebugFunction:()=>yx,setTesting:()=>su,warn:()=>dx}),ux=()=>{},hx=ux,dx=ux,px=ux,fx=ux,gx=ux,mx=ux,yx=ux,vx=ux,bx=function(){return arguments[arguments.length-1]};function wx(){}var _x,xx=a({});_x={throwOnUnhandled:!1,workflow:[]},self.deprecationWorkflow=self.deprecationWorkflow||{},self.deprecationWorkflow.deprecationLog={messages:new Set},self.deprecationWorkflow.flushDeprecations=t=>function({handler:t="silence",config:e={}}={}){let n=self.deprecationWorkflow.deprecationLog.messages,r=e.workflow??[],i=n.values().filter(t=>!r.some(e=>e.matchId===t)).map(e=>({handler:t,matchId:e})),s={...e,workflow:[...r,...i]};return`import setupDeprecationWorkflow from 'ember-cli-deprecation-workflow';\n\nsetupDeprecationWorkflow(${JSON.stringify(s,void 0,2)});`}({config:_x,...t}),function(){const t="TEST_WAITERS",e="undefined"!=typeof Symbol?Symbol.for(t):t,n=function(){if("undefined"!=typeof globalThis)return globalThis;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;throw new Error("unable to locate global object")}();let r=n[e];void 0===r&&(r=n[e]=new Map)}();var Cx=class{name;constructor(t){this.name=t}beginAsync(){return this}endAsync(){}waitUntil(){return!0}debugInfo(){return[]}reset(){}};function Sx(t){return new Cx(t)}Sx("@ember/test-waiters:promise-waiter"),Sx("@ember/test-waiters:generator-waiter");var kx,Ex=a({assertDestroyablesDestroyed:()=>{},associateDestroyableChild:()=>tt,destroy:()=>nt,enableDestroyableTracking:()=>{},isDestroyed:()=>st,isDestroying:()=>it,registerDestructor:()=>Rx,unregisterDestructor:()=>Tx});function Rx(t,e){return et(t,e)}function Tx(t,e){return function(t,e,n=!1){let r=Q(t),i=n?"eagerDestructors":"destructors";r[i]=J(r[i],e)}(t,e)}(kx=Io,kx?.__esModule?kx:{default:kx,...kx}).getOwner;var Lx=Ad,Ix=a({default:()=>Px}),Px=class extends Lx{location=ix.locationType;rootURL=ix.rootURL};function Mx(t){return 0===t||3===t||1e4<=t&&t<2e4}function Ax(t){return 3e4<=t&&t<4e4}function Ox(t,e){const n=e instanceof Array?e:[e];return function(t){if(!(t instanceof Object))return!1;if("number"!=typeof t.kind)return!1;if("string"!=typeof t.content)return!1;if("number"!=typeof t.created_at)return!1;if("string"!=typeof t.pubkey)return!1;if(!t.pubkey.match(/^[a-f0-9]{64}$/))return!1;if(!Array.isArray(t.tags))return!1;for(let e=0;e0&&!e.includes(t.length))throw new Error(`Expected Uint8Array of length ${e}, not of length=${t.length}`)}function zx(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}Px.map(function(){this.route("place",{path:"/place/:place_id"}),this.route("place.new",{path:"/place/new"}),this.route("search"),this.route("menu"),this.route("lists",function(){this.route("list",{path:"/:list_id"})}),this.route("contributions"),this.route("oauth",function(){this.route("osm-callback",{path:"/osm/callback"})})});var Dx="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0,jx=t=>t instanceof Uint8Array,Ux=t=>new DataView(t.buffer,t.byteOffset,t.byteLength),Bx=(t,e)=>t<<32-e|t>>>e;if(68!==new Uint8Array(new Uint32Array([287454020]).buffer)[0])throw new Error("Non little-endian hardware is not supported");function $x(t){if("string"==typeof t&&(t=function(t){if("string"!=typeof t)throw new Error("utf8ToBytes expected string, got "+typeof t);return new Uint8Array((new TextEncoder).encode(t))}(t)),!jx(t))throw new Error("expected Uint8Array, got "+typeof t);return t}var qx=class{clone(){return this._cloneInto()}};function Vx(t){const e=e=>t().update($x(e)).digest(),n=t();return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=()=>t(),e}function Wx(t=32){if(Dx&&"function"==typeof Dx.getRandomValues)return Dx.getRandomValues(new Uint8Array(t));throw new Error("crypto.getRandomValues must be defined")}var Hx=class extends qx{constructor(t,e,n,r){super(),this.blockLen=t,this.outputLen=e,this.padOffset=n,this.isLE=r,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=Ux(this.buffer)}update(t){zx(this);const{view:e,buffer:n,blockLen:r}=this,i=(t=$x(t)).length;for(let s=0;sr-s&&(this.process(n,0),s=0);for(let u=s;u>i&s),a=Number(n&s),l=r?4:0,c=r?0:4;t.setUint32(e+l,o,r),t.setUint32(e+c,a,r)}(n,r-8,BigInt(8*this.length),i),this.process(n,0);const o=Ux(t),a=this.outputLen;if(a%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const l=a/4,c=this.get();if(l>c.length)throw new Error("_sha2: outputLen bigger than state");for(let u=0;ut&e^~t&n,Zx=(t,e,n)=>t&e^t&n^e&n,Kx=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Yx=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Xx=new Uint32Array(64),Jx=class extends Hx{constructor(){super(64,32,8,!1),this.A=0|Yx[0],this.B=0|Yx[1],this.C=0|Yx[2],this.D=0|Yx[3],this.E=0|Yx[4],this.F=0|Yx[5],this.G=0|Yx[6],this.H=0|Yx[7]}get(){const{A:t,B:e,C:n,D:r,E:i,F:s,G:o,H:a}=this;return[t,e,n,r,i,s,o,a]}set(t,e,n,r,i,s,o,a){this.A=0|t,this.B=0|e,this.C=0|n,this.D=0|r,this.E=0|i,this.F=0|s,this.G=0|o,this.H=0|a}process(t,e){for(let u=0;u<16;u++,e+=4)Xx[u]=t.getUint32(e,!1);for(let u=16;u<64;u++){const t=Xx[u-15],e=Xx[u-2],n=Bx(t,7)^Bx(t,18)^t>>>3,r=Bx(e,17)^Bx(e,19)^e>>>10;Xx[u]=r+Xx[u-7]+n+Xx[u-16]|0}let{A:n,B:r,C:i,D:s,E:o,F:a,G:l,H:c}=this;for(let u=0;u<64;u++){const t=c+(Bx(o,6)^Bx(o,11)^Bx(o,25))+Gx(o,a,l)+Kx[u]+Xx[u]|0,e=(Bx(n,2)^Bx(n,13)^Bx(n,22))+Zx(n,r,i)|0;c=l,l=a,a=o,o=s+t|0,s=i,i=r,r=n,n=t+e|0}n=n+this.A|0,r=r+this.B|0,i=i+this.C|0,s=s+this.D|0,o=o+this.E|0,a=a+this.F|0,l=l+this.G|0,c=c+this.H|0,this.set(n,r,i,s,o,a,l,c)}roundClean(){Xx.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}},Qx=Vx(()=>new Jx),tC=a({bitGet:()=>wC,bitLen:()=>bC,bitMask:()=>xC,bitSet:()=>_C,bytesToHex:()=>oC,bytesToNumberBE:()=>uC,bytesToNumberLE:()=>hC,concatBytes:()=>mC,createHmacDrbg:()=>kC,ensureBytes:()=>gC,equalBytes:()=>yC,hexToBytes:()=>cC,hexToNumber:()=>lC,numberToBytesBE:()=>dC,numberToBytesLE:()=>pC,numberToHexUnpadded:()=>aC,numberToVarBytesBE:()=>fC,utf8ToBytes:()=>vC,validateObject:()=>RC}),eC=BigInt(0),nC=BigInt(1),rC=BigInt(2),iC=t=>t instanceof Uint8Array,sC=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function oC(t){if(!iC(t))throw new Error("Uint8Array expected");let e="";for(let n=0;nt+e.length,0));let n=0;return t.forEach(t=>{if(!iC(t))throw new Error("Uint8Array expected");e.set(t,n),n+=t.length}),e}function yC(t,e){if(t.length!==e.length)return!1;for(let n=0;neC;t>>=nC,e+=1);return e}function wC(t,e){return t>>BigInt(e)&nC}var _C=(t,e,n)=>t|(n?nC:eC)<(rC<new Uint8Array(t),SC=t=>Uint8Array.from(t);function kC(t,e,n){if("number"!=typeof t||t<2)throw new Error("hashLen must be a number");if("number"!=typeof e||e<2)throw new Error("qByteLen must be a number");if("function"!=typeof n)throw new Error("hmacFn must be a function");let r=CC(t),i=CC(t),s=0;const o=()=>{r.fill(1),i.fill(0),s=0},a=(...t)=>n(i,r,...t),l=(t=CC())=>{i=a(SC([0]),t),r=a(),0!==t.length&&(i=a(SC([1]),t),r=a())},c=()=>{if(s++>=1e3)throw new Error("drbg: tried 1000 values");let t=0;const n=[];for(;t{let n;for(o(),l(t);!(n=e(c()));)l();return o(),n}}var EC={bigint:t=>"bigint"==typeof t,function:t=>"function"==typeof t,boolean:t=>"boolean"==typeof t,string:t=>"string"==typeof t,stringOrUint8Array:t=>"string"==typeof t||t instanceof Uint8Array,isSafeInteger:t=>Number.isSafeInteger(t),array:t=>Array.isArray(t),field:(t,e)=>e.Fp.isValid(t),hash:t=>"function"==typeof t&&Number.isSafeInteger(t.outputLen)};function RC(t,e,n={}){const r=(e,n,r)=>{const i=EC[n];if("function"!=typeof i)throw new Error(`Invalid validator "${n}", expected function`);const s=t[e];if(!(r&&void 0===s||i(s,t)))throw new Error(`Invalid param ${String(e)}=${s} (${typeof s}), expected ${n}`)};for(const[i,s]of Object.entries(e))r(i,s,!1);for(const[i,s]of Object.entries(n))r(i,s,!0);return t}var TC=BigInt(0),LC=BigInt(1),IC=BigInt(2),PC=BigInt(3),MC=BigInt(4),AC=BigInt(5),OC=BigInt(8);function NC(t,e){const n=t%e;return n>=TC?n:e+n}function FC(t,e,n){if(n<=TC||e 0");if(n===LC)return TC;let r=LC;for(;e>TC;)e&LC&&(r=r*t%n),t=t*t%n,e>>=LC;return r}function zC(t,e,n){let r=t;for(;e-- >TC;)r*=r,r%=n;return r}function DC(t,e){if(t===TC||e<=TC)throw new Error(`invert: expected positive integers, got n=${t} mod=${e}`);let n=NC(t,e),r=e,i=TC,s=LC,o=LC,a=TC;for(;n!==TC;){const t=r/n,e=r%n,l=i-o*t,c=s-a*t;r=n,n=e,i=o,s=a,o=l,a=c}if(r!==LC)throw new Error("invert: does not exist");return NC(i,e)}BigInt(9),BigInt(16);var jC=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function UC(t,e){const n=void 0!==e?e:t.toString(2).length;return{nBitLength:n,nByteLength:Math.ceil(n/8)}}function BC(t){if("bigint"!=typeof t)throw new Error("field order must be bigint");const e=t.toString(2).length;return Math.ceil(e/8)}function $C(t){const e=BC(t);return e+Math.ceil(e/2)}var qC=BigInt(0),VC=BigInt(1);function WC(t){return function(t){const e=jC.reduce((t,e)=>(t[e]="function",t),{ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"});RC(t,e)}(t.Fp),RC(t,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...UC(t.n,t.nBitLength),...t,p:t.Fp.ORDER})}var{bytesToNumberBE:HC,hexToBytes:GC}=tC,ZC={Err:class extends Error{constructor(t=""){super(t)}},_parseInt(t){const{Err:e}=ZC;if(t.length<2||2!==t[0])throw new e("Invalid signature integer tag");const n=t[1],r=t.subarray(2,n+2);if(!n||r.length!==n)throw new e("Invalid signature integer: wrong length");if(128&r[0])throw new e("Invalid signature integer: negative");if(0===r[0]&&!(128&r[1]))throw new e("Invalid signature integer: unnecessary leading zero");return{d:HC(r),l:t.subarray(n+2)}},toSig(t){const{Err:e}=ZC,n="string"==typeof t?GC(t):t;if(!(n instanceof Uint8Array))throw new Error("ui8a expected");let r=n.length;if(r<2||48!=n[0])throw new e("Invalid signature tag");if(n[1]!==r-2)throw new e("Invalid signature: incorrect length");const{d:i,l:s}=ZC._parseInt(n.subarray(2)),{d:o,l:a}=ZC._parseInt(s);if(a.length)throw new e("Invalid signature: left bytes after parsing");return{r:i,s:o}},hexFromSig(t){const e=t=>8&Number.parseInt(t[0],16)?"00"+t:t,n=t=>{const e=t.toString(16);return 1&e.length?`0${e}`:e},r=e(n(t.s)),i=e(n(t.r)),s=r.length/2,o=i.length/2,a=n(s),l=n(o);return`30${n(o+s+4)}02${l}${i}02${a}${r}`}},KC=BigInt(0),YC=BigInt(1),XC=BigInt(3);var JC=class extends qx{constructor(t,e){super(),this.finished=!1,this.destroyed=!1,function(t){if("function"!=typeof t||"function"!=typeof t.create)throw new Error("Hash should be wrapped by utils.wrapConstructor");Nx(t.outputLen),Nx(t.blockLen)}(t);const n=$x(e);if(this.iHash=t.create(),"function"!=typeof this.iHash.update)throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const r=this.blockLen,i=new Uint8Array(r);i.set(n.length>r?t.create().update(n).digest():n);for(let s=0;snew JC(t,e).update(n).digest();function tS(t){return{hash:t,hmac:(e,...n)=>QC(t,e,function(...t){const e=new Uint8Array(t.reduce((t,e)=>t+e.length,0));let n=0;return t.forEach(t=>{if(!jx(t))throw new Error("Uint8Array expected");e.set(t,n),n+=t.length}),e}(...n)),randomBytes:Wx}}QC.create=(t,e)=>new JC(t,e);var eS=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),nS=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),rS=BigInt(1),iS=BigInt(2),sS=(t,e)=>(t+e/iS)/e;function oS(t){const e=eS,n=BigInt(3),r=BigInt(6),i=BigInt(11),s=BigInt(22),o=BigInt(23),a=BigInt(44),l=BigInt(88),c=t*t*t%e,u=c*c*t%e,h=zC(u,n,e)*u%e,d=zC(h,n,e)*u%e,p=zC(d,iS,e)*c%e,f=zC(p,i,e)*p%e,g=zC(f,s,e)*f%e,m=zC(g,a,e)*g%e,y=zC(m,l,e)*m%e,v=zC(y,a,e)*g%e,b=zC(v,n,e)*u%e,w=zC(b,o,e)*f%e,_=zC(w,r,e)*c%e,x=zC(_,iS,e);if(!aS.eql(aS.sqr(x),t))throw new Error("Cannot find square root");return x}var aS=function(t,e,n=!1,r={}){if(t<=TC)throw new Error(`Expected Field ORDER > 0, got ${t}`);const{nBitLength:i,nByteLength:s}=UC(t,e);if(s>2048)throw new Error("Field lengths over 2048 bytes are not supported");const o=function(t){if(t%MC===PC){const e=(t+LC)/MC;return function(t,n){const r=t.pow(n,e);if(!t.eql(t.sqr(r),n))throw new Error("Cannot find square root");return r}}if(t%OC===AC){const e=(t-AC)/OC;return function(t,n){const r=t.mul(n,IC),i=t.pow(r,e),s=t.mul(n,i),o=t.mul(t.mul(s,IC),i),a=t.mul(s,t.sub(o,t.ONE));if(!t.eql(t.sqr(a),n))throw new Error("Cannot find square root");return a}}return function(t){const e=(t-LC)/IC;let n,r,i;for(n=t-LC,r=0;n%IC===TC;n/=IC,r++);for(i=IC;iNC(e,t),isValid:e=>{if("bigint"!=typeof e)throw new Error("Invalid field element: expected bigint, got "+typeof e);return TC<=e&&et===TC,isOdd:t=>(t&LC)===LC,neg:e=>NC(-e,t),eql:(t,e)=>t===e,sqr:e=>NC(e*e,t),add:(e,n)=>NC(e+n,t),sub:(e,n)=>NC(e-n,t),mul:(e,n)=>NC(e*n,t),pow:(t,e)=>function(t,e,n){if(n 0");if(n===TC)return t.ONE;if(n===LC)return e;let r=t.ONE,i=e;for(;n>TC;)n&LC&&(r=t.mul(r,i)),i=t.sqr(i),n>>=LC;return r}(a,t,e),div:(e,n)=>NC(e*DC(n,t),t),sqrN:t=>t*t,addN:(t,e)=>t+e,subN:(t,e)=>t-e,mulN:(t,e)=>t*e,inv:e=>DC(e,t),sqrt:r.sqrt||(t=>o(a,t)),invertBatch:t=>function(t,e){const n=new Array(e.length),r=e.reduce((e,r,i)=>t.is0(r)?e:(n[i]=e,t.mul(e,r)),t.ONE),i=t.inv(r);return e.reduceRight((e,r,i)=>t.is0(r)?e:(n[i]=t.mul(e,n[i]),t.mul(e,r)),i),n}(a,t),cmov:(t,e,n)=>n?e:t,toBytes:t=>n?pC(t,s):dC(t,s),fromBytes:t=>{if(t.length!==s)throw new Error(`Fp.fromBytes: expected ${s}, got ${t.length}`);return n?hC(t):uC(t)}});return Object.freeze(a)}(eS,void 0,void 0,{sqrt:oS}),lS=function(t,e){const n=e=>function(t){const e=function(t){const e=WC(t);return RC(e,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...e})}(t),{Fp:n,n:r}=e,i=n.BYTES+1,s=2*n.BYTES+1;function o(t){return NC(t,r)}function a(t){return DC(t,r)}const{ProjectivePoint:l,normPrivateKeyToScalar:c,weierstrassEquation:u,isWithinCurveOrder:h}=function(t){const e=function(t){const e=WC(t);RC(e,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:n,Fp:r,a:i}=e;if(n){if(!r.eql(i,r.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if("object"!=typeof n||"bigint"!=typeof n.beta||"function"!=typeof n.splitScalar)throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...e})}(t),{Fp:n}=e,r=e.toBytes||((t,e)=>{const r=e.toAffine();return mC(Uint8Array.from([4]),n.toBytes(r.x),n.toBytes(r.y))}),i=e.fromBytes||(t=>{const e=t.subarray(1);return{x:n.fromBytes(e.subarray(0,n.BYTES)),y:n.fromBytes(e.subarray(n.BYTES,2*n.BYTES))}});function s(t){const{a:r,b:i}=e,s=n.sqr(t),o=n.mul(s,t);return n.add(n.add(o,n.mul(t,r)),i)}if(!n.eql(n.sqr(e.Gy),s(e.Gx)))throw new Error("bad generator point: equation left != right");function o(t){return"bigint"==typeof t&&KCn.eql(t,n.ZERO);return i(e)&&i(r)?h.ZERO:new h(e,r,n.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(t){const e=n.invertBatch(t.map(t=>t.pz));return t.map((t,n)=>t.toAffine(e[n])).map(h.fromAffine)}static fromHex(t){const e=h.fromAffine(i(gC("pointHex",t)));return e.assertValidity(),e}static fromPrivateKey(t){return h.BASE.multiply(l(t))}_setWindowSize(t){this._WINDOW_SIZE=t,c.delete(this)}assertValidity(){if(this.is0()){if(e.allowInfinityPoint&&!n.is0(this.py))return;throw new Error("bad point: ZERO")}const{x:t,y:r}=this.toAffine();if(!n.isValid(t)||!n.isValid(r))throw new Error("bad point: x or y not FE");const i=n.sqr(r),o=s(t);if(!n.eql(i,o))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){const{y:t}=this.toAffine();if(n.isOdd)return!n.isOdd(t);throw new Error("Field doesn't support isOdd")}equals(t){u(t);const{px:e,py:r,pz:i}=this,{px:s,py:o,pz:a}=t,l=n.eql(n.mul(e,a),n.mul(s,i)),c=n.eql(n.mul(r,a),n.mul(o,i));return l&&c}negate(){return new h(this.px,n.neg(this.py),this.pz)}double(){const{a:t,b:r}=e,i=n.mul(r,XC),{px:s,py:o,pz:a}=this;let l=n.ZERO,c=n.ZERO,u=n.ZERO,d=n.mul(s,s),p=n.mul(o,o),f=n.mul(a,a),g=n.mul(s,o);return g=n.add(g,g),u=n.mul(s,a),u=n.add(u,u),l=n.mul(t,u),c=n.mul(i,f),c=n.add(l,c),l=n.sub(p,c),c=n.add(p,c),c=n.mul(l,c),l=n.mul(g,l),u=n.mul(i,u),f=n.mul(t,f),g=n.sub(d,f),g=n.mul(t,g),g=n.add(g,u),u=n.add(d,d),d=n.add(u,d),d=n.add(d,f),d=n.mul(d,g),c=n.add(c,d),f=n.mul(o,a),f=n.add(f,f),d=n.mul(f,g),l=n.sub(l,d),u=n.mul(f,p),u=n.add(u,u),u=n.add(u,u),new h(l,c,u)}add(t){u(t);const{px:r,py:i,pz:s}=this,{px:o,py:a,pz:l}=t;let c=n.ZERO,d=n.ZERO,p=n.ZERO;const f=e.a,g=n.mul(e.b,XC);let m=n.mul(r,o),y=n.mul(i,a),v=n.mul(s,l),b=n.add(r,i),w=n.add(o,a);b=n.mul(b,w),w=n.add(m,y),b=n.sub(b,w),w=n.add(r,s);let _=n.add(o,l);return w=n.mul(w,_),_=n.add(m,v),w=n.sub(w,_),_=n.add(i,s),c=n.add(a,l),_=n.mul(_,c),c=n.add(y,v),_=n.sub(_,c),p=n.mul(f,w),c=n.mul(g,v),p=n.add(c,p),c=n.sub(y,p),p=n.add(y,p),d=n.mul(c,p),y=n.add(m,m),y=n.add(y,m),v=n.mul(f,v),w=n.mul(g,w),y=n.add(y,v),v=n.sub(m,v),v=n.mul(f,v),w=n.add(w,v),m=n.mul(y,w),d=n.add(d,m),m=n.mul(_,w),c=n.mul(b,c),c=n.sub(c,m),m=n.mul(b,y),p=n.mul(_,p),p=n.add(p,m),new h(c,d,p)}subtract(t){return this.add(t.negate())}is0(){return this.equals(h.ZERO)}wNAF(t){return p.wNAFCached(this,c,t,t=>{const e=n.invertBatch(t.map(t=>t.pz));return t.map((t,n)=>t.toAffine(e[n])).map(h.fromAffine)})}multiplyUnsafe(t){const r=h.ZERO;if(t===KC)return r;if(a(t),t===YC)return this;const{endo:i}=e;if(!i)return p.unsafeLadder(this,t);let{k1neg:s,k1:o,k2neg:l,k2:c}=i.splitScalar(t),u=r,d=r,f=this;for(;o>KC||c>KC;)o&YC&&(u=u.add(f)),c&YC&&(d=d.add(f)),f=f.double(),o>>=YC,c>>=YC;return s&&(u=u.negate()),l&&(d=d.negate()),d=new h(n.mul(d.px,i.beta),d.py,d.pz),u.add(d)}multiply(t){a(t);let r,i,s=t;const{endo:o}=e;if(o){const{k1neg:t,k1:e,k2neg:a,k2:l}=o.splitScalar(s);let{p:c,f:u}=this.wNAF(e),{p:d,f:f}=this.wNAF(l);c=p.constTimeNegate(t,c),d=p.constTimeNegate(a,d),d=new h(n.mul(d.px,o.beta),d.py,d.pz),r=c.add(d),i=u.add(f)}else{const{p:t,f:e}=this.wNAF(s);r=t,i=e}return h.normalizeZ([r,i])[0]}multiplyAndAddUnsafe(t,e,n){const r=h.BASE,i=(t,e)=>e!==KC&&e!==YC&&t.equals(r)?t.multiply(e):t.multiplyUnsafe(e),s=i(this,e).add(i(t,n));return s.is0()?void 0:s}toAffine(t){const{px:e,py:r,pz:i}=this,s=this.is0();null==t&&(t=s?n.ONE:n.inv(i));const o=n.mul(e,t),a=n.mul(r,t),l=n.mul(i,t);if(s)return{x:n.ZERO,y:n.ZERO};if(!n.eql(l,n.ONE))throw new Error("invZ was invalid");return{x:o,y:a}}isTorsionFree(){const{h:t,isTorsionFree:n}=e;if(t===YC)return!0;if(n)return n(h,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:t,clearCofactor:n}=e;return t===YC?this:n?n(h,this):this.multiplyUnsafe(e.h)}toRawBytes(t=!0){return this.assertValidity(),r(h,this,t)}toHex(t=!0){return oC(this.toRawBytes(t))}}h.BASE=new h(e.Gx,e.Gy,n.ONE),h.ZERO=new h(n.ZERO,n.ONE,n.ZERO);const d=e.nBitLength,p=function(t,e){const n=(t,e)=>{const n=e.negate();return t?n:e},r=t=>({windows:Math.ceil(e/t)+1,windowSize:2**(t-1)});return{constTimeNegate:n,unsafeLadder(e,n){let r=t.ZERO,i=e;for(;n>qC;)n&VC&&(r=r.add(i)),i=i.double(),n>>=VC;return r},precomputeWindow(t,e){const{windows:n,windowSize:i}=r(e),s=[];let o=t,a=o;for(let r=0;r>=d,r>a&&(r-=h,s+=VC);const o=e,p=e+Math.abs(r)-1,f=t%2!=0,g=r<0;0===r?c=c.add(n(f,i[o])):l=l.add(n(g,i[p]))}return{p:l,f:c}},wNAFCached(t,e,n,r){const i=t._WINDOW_SIZE||1;let s=e.get(t);return s||(s=this.precomputeWindow(t,i),1!==i&&e.set(t,r(s))),this.wNAF(i,s,n)}}}(h,e.endo?Math.ceil(d/2):d);return{CURVE:e,ProjectivePoint:h,normPrivateKeyToScalar:l,weierstrassEquation:s,isWithinCurveOrder:o}}({...e,toBytes(t,e,r){const i=e.toAffine(),s=n.toBytes(i.x),o=mC;return r?o(Uint8Array.from([e.hasEvenY()?2:3]),s):o(Uint8Array.from([4]),s,n.toBytes(i.y))},fromBytes(t){const e=t.length,r=t[0],o=t.subarray(1);if(e!==i||2!==r&&3!==r){if(e===s&&4===r)return{x:n.fromBytes(o.subarray(0,n.BYTES)),y:n.fromBytes(o.subarray(n.BYTES,2*n.BYTES))};throw new Error(`Point of length ${e} was invalid. Expected ${i} compressed bytes or ${s} uncompressed bytes`)}{const t=uC(o);if(!(KC<(a=t)&&aoC(dC(t,e.nByteLength));function p(t){return t>r>>YC}const f=(t,e,n)=>uC(t.slice(e,n));class g{constructor(t,e,n){this.r=t,this.s=e,this.recovery=n,this.assertValidity()}static fromCompact(t){const n=e.nByteLength;return t=gC("compactSignature",t,2*n),new g(f(t,0,n),f(t,n,2*n))}static fromDER(t){const{r:e,s:n}=ZC.toSig(gC("DER",t));return new g(e,n)}assertValidity(){if(!h(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!h(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(t){return new g(this.r,this.s,t)}recoverPublicKey(t){const{r:r,s:i,recovery:s}=this,c=b(gC("msgHash",t));if(null==s||![0,1,2,3].includes(s))throw new Error("recovery id invalid");const u=2===s||3===s?r+e.n:r;if(u>=n.ORDER)throw new Error("recovery id 2 or 3 invalid");const h=1&s?"03":"02",p=l.fromHex(h+d(u)),f=a(u),g=o(-c*f),m=o(i*f),y=l.BASE.multiplyAndAddUnsafe(p,g,m);if(!y)throw new Error("point at infinify");return y.assertValidity(),y}hasHighS(){return p(this.s)}normalizeS(){return this.hasHighS()?new g(this.r,o(-this.s),this.recovery):this}toDERRawBytes(){return cC(this.toDERHex())}toDERHex(){return ZC.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return cC(this.toCompactHex())}toCompactHex(){return d(this.r)+d(this.s)}}const m={isValidPrivateKey(t){try{return c(t),!0}catch(d8){return!1}},normPrivateKeyToScalar:c,randomPrivateKey:()=>{const t=$C(e.n);return function(t,e,n=!1){const r=t.length,i=BC(e),s=$C(e);if(r<16||r1024)throw new Error(`expected ${s}-1024 bytes of input, got ${r}`);const o=NC(n?uC(t):hC(t),e-LC)+LC;return n?pC(o,i):dC(o,i)}(e.randomBytes(t),e.n)},precompute:(t=8,e=l.BASE)=>(e._setWindowSize(t),e.multiply(BigInt(3)),e)};function y(t){const e=t instanceof Uint8Array,n="string"==typeof t,r=(e||n)&&t.length;return e?r===i||r===s:n?r===2*i||r===2*s:t instanceof l}const v=e.bits2int||function(t){const n=uC(t),r=8*t.length-e.nBitLength;return r>0?n>>BigInt(r):n},b=e.bits2int_modN||function(t){return o(v(t))},w=xC(e.nBitLength);function _(t){if("bigint"!=typeof t)throw new Error("bigint expected");if(!(KC<=t&&tt in i))throw new Error("sign() legacy options not supported");const{hash:s,randomBytes:u}=e;let{lowS:d,prehash:f,extraEntropy:m}=i;null==d&&(d=!0),t=gC("msgHash",t),f&&(t=gC("prehashed msgHash",s(t)));const y=b(t),w=c(r),C=[_(w),_(y)];if(null!=m){const t=!0===m?u(n.BYTES):m;C.push(gC("extraEntropy",t))}const S=mC(...C),k=y;return{seed:S,k2sig:function(t){const e=v(t);if(!h(e))return;const n=a(e),r=l.BASE.multiply(e).toAffine(),i=o(r.x);if(i===KC)return;const s=o(n*o(k+i*w));if(s===KC)return;let c=(r.x===i?0:2)|Number(r.y&YC),u=s;return d&&p(s)&&(u=function(t){return p(t)?o(-t):t}(s),c^=1),new g(i,u,c)}}}(t,r,i),d=e;return kC(d.hash.outputLen,d.nByteLength,d.hmac)(s,u)},verify:function(t,n,r,i=C){const s=t;if(n=gC("msgHash",n),r=gC("publicKey",r),"strict"in i)throw new Error("options.strict was renamed to lowS");const{lowS:c,prehash:u}=i;let h,d;try{if("string"==typeof s||s instanceof Uint8Array)try{h=g.fromDER(s)}catch(x){if(!(x instanceof ZC.Err))throw x;h=g.fromCompact(s)}else{if("object"!=typeof s||"bigint"!=typeof s.r||"bigint"!=typeof s.s)throw new Error("PARSE");{const{r:t,s:e}=s;h=new g(t,e)}}d=l.fromHex(r)}catch(d8){if("PARSE"===d8.message)throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(c&&h.hasHighS())return!1;u&&(n=e.hash(n));const{r:p,s:f}=h,m=b(n),y=a(f),v=o(m*y),w=o(p*y),_=l.BASE.multiplyAndAddUnsafe(d,v,w)?.toAffine();return!!_&&o(_.x)===p},ProjectivePoint:l,Signature:g,utils:m}}({...t,...tS(e)});return Object.freeze({...n(e),create:n})}({a:BigInt(0),b:BigInt(7),Fp:aS,n:nS,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:t=>{const e=nS,n=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),r=-rS*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),s=n,o=BigInt("0x100000000000000000000000000000000"),a=sS(s*t,e),l=sS(-r*t,e);let c=NC(t-a*n-l*i,e),u=NC(-a*r-l*s,e);const h=c>o,d=u>o;if(h&&(c=e-c),d&&(u=e-u),c>o||u>o)throw new Error("splitScalar: Endomorphism failed, k="+t);return{k1neg:h,k1:c,k2neg:d,k2:u}}}},Qx),cS=BigInt(0),uS=t=>"bigint"==typeof t&&cSt.charCodeAt(0)));n=mC(e,e),hS[t]=n}return Qx(mC(n,...e))}var pS=t=>t.toRawBytes(!0).slice(1),fS=t=>dC(t,32),gS=t=>NC(t,eS),mS=t=>NC(t,nS),yS=lS.ProjectivePoint;function vS(t){let e=lS.utils.normPrivateKeyToScalar(t),n=yS.fromPrivateKey(e);return{scalar:n.hasEvenY()?e:mS(-e),bytes:pS(n)}}function bS(t){if(!uS(t))throw new Error("bad x: need 0 < x < p");const e=gS(t*t);let n=oS(gS(e*t+BigInt(7)));n%iS!==cS&&(n=gS(-n));const r=new yS(t,n,rS);return r.assertValidity(),r}function wS(...t){return mS(uC(dS("BIP0340/challenge",...t)))}function _S(t){return vS(t).bytes}function xS(t,e,n=Wx(32)){const r=gC("message",t),{bytes:i,scalar:s}=vS(e),o=gC("auxRand",n,32),a=dS("BIP0340/nonce",fS(s^uC(dS("BIP0340/aux",o))),i,r),l=mS(uC(a));if(l===cS)throw new Error("sign failed: k is zero");const{bytes:c,scalar:u}=vS(l),h=wS(c,i,r),d=new Uint8Array(64);if(d.set(c,0),d.set(fS(mS(u+h*s)),32),!CS(d,r,i))throw new Error("sign: Invalid signature produced");return d}function CS(t,e,n){const r=gC("signature",t,64),i=gC("message",e),s=gC("publicKey",n,32);try{const t=bS(uC(s)),e=uC(r.subarray(0,32));if(!uS(e))return!1;const n=uC(r.subarray(32,64));if(!(t=>"bigint"==typeof t&&cS({getPublicKey:_S,sign:xS,verify:CS,utils:{randomPrivateKey:lS.utils.randomPrivateKey,lift_x:bS,pointToBytes:pS,numberToBytesBE:dC,bytesToNumberBE:uC,taggedHash:dS,mod:NC}}))(),kS="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0,ES=t=>t instanceof Uint8Array,RS=t=>new DataView(t.buffer,t.byteOffset,t.byteLength),TS=(t,e)=>t<<32-e|t>>>e;if(68!==new Uint8Array(new Uint32Array([287454020]).buffer)[0])throw new Error("Non little-endian hardware is not supported");var LS=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function IS(t){if(!ES(t))throw new Error("Uint8Array expected");let e="";for(let n=0;nt+e.length,0));let n=0;return t.forEach(t=>{if(!ES(t))throw new Error("Uint8Array expected");e.set(t,n),n+=t.length}),e}var OS=class{clone(){return this._cloneInto()}};function NS(t){const e=e=>t().update(MS(e)).digest(),n=t();return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=()=>t(),e}function FS(t=32){if(kS&&"function"==typeof kS.getRandomValues)return kS.getRandomValues(new Uint8Array(t));throw new Error("crypto.getRandomValues must be defined")}function zS(t){if(!Number.isSafeInteger(t)||t<0)throw new Error(`Wrong positive integer: ${t}`)}function DS(t,...e){if(!(t instanceof Uint8Array))throw new Error("Expected Uint8Array");if(e.length>0&&!e.includes(t.length))throw new Error(`Expected Uint8Array of length ${e}, not of length=${t.length}`)}var jS,US,BS,$S,qS,VS,WS,HS,GS,ZS,KS,YS,XS,JS,QS,tk,ek,nk,rk,ik,sk,ok,ak,lk,ck,uk,hk,dk,pk={number:zS,bool:function(t){if("boolean"!=typeof t)throw new Error(`Expected boolean, not ${t}`)},bytes:DS,hash:function(t){if("function"!=typeof t||"function"!=typeof t.create)throw new Error("Hash should be wrapped by utils.wrapConstructor");zS(t.outputLen),zS(t.blockLen)},exists:function(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")},output:function(t,e){DS(t);const n=e.outputLen;if(t.lengthr-s&&(this.process(n,0),s=0);for(let u=s;u>i&s),a=Number(n&s),l=r?4:0,c=r?0:4;t.setUint32(e+l,o,r),t.setUint32(e+c,a,r)}(n,r-8,BigInt(8*this.length),i),this.process(n,0);const o=RS(t),a=this.outputLen;if(a%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const l=a/4,c=this.get();if(l>c.length)throw new Error("_sha2: outputLen bigger than state");for(let u=0;ut&e^~t&n,mk=(t,e,n)=>t&e^t&n^e&n,yk=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),vk=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),bk=new Uint32Array(64),wk=class extends fk{constructor(){super(64,32,8,!1),this.A=0|vk[0],this.B=0|vk[1],this.C=0|vk[2],this.D=0|vk[3],this.E=0|vk[4],this.F=0|vk[5],this.G=0|vk[6],this.H=0|vk[7]}get(){const{A:t,B:e,C:n,D:r,E:i,F:s,G:o,H:a}=this;return[t,e,n,r,i,s,o,a]}set(t,e,n,r,i,s,o,a){this.A=0|t,this.B=0|e,this.C=0|n,this.D=0|r,this.E=0|i,this.F=0|s,this.G=0|o,this.H=0|a}process(t,e){for(let u=0;u<16;u++,e+=4)bk[u]=t.getUint32(e,!1);for(let u=16;u<64;u++){const t=bk[u-15],e=bk[u-2],n=TS(t,7)^TS(t,18)^t>>>3,r=TS(e,17)^TS(e,19)^e>>>10;bk[u]=r+bk[u-7]+n+bk[u-16]|0}let{A:n,B:r,C:i,D:s,E:o,F:a,G:l,H:c}=this;for(let u=0;u<64;u++){const t=c+(TS(o,6)^TS(o,11)^TS(o,25))+gk(o,a,l)+yk[u]+bk[u]|0,e=(TS(n,2)^TS(n,13)^TS(n,22))+mk(n,r,i)|0;c=l,l=a,a=o,o=s+t|0,s=i,i=r,r=n,n=t+e|0}n=n+this.A|0,r=r+this.B|0,i=i+this.C|0,s=s+this.D|0,o=o+this.E|0,a=a+this.F|0,l=l+this.G|0,c=c+this.H|0,this.set(n,r,i,s,o,a,l,c)}roundClean(){bk.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}},_k=class extends wk{constructor(){super(),this.A=-1056596264,this.B=914150663,this.C=812702999,this.D=-150054599,this.E=-4191439,this.F=1750603025,this.G=1694076839,this.H=-1090891868,this.outputLen=28}},xk=NS(()=>new wk),Ck=(NS(()=>new _k),a({assertNumber:()=>Sk,base16:()=>$S,base32:()=>qS,base32crockford:()=>WS,base32hex:()=>VS,base58:()=>KS,base58check:()=>tk,base58flickr:()=>YS,base58xmr:()=>QS,base58xrp:()=>XS,base64:()=>HS,base64url:()=>GS,bech32:()=>rk,bech32m:()=>ik,bytes:()=>dk,bytesToString:()=>ck,hex:()=>ok,str:()=>uk,stringToBytes:()=>hk,utf8:()=>sk,utils:()=>BS}));function Sk(t){if(!Number.isSafeInteger(t))throw new Error(`Wrong integer: ${t}`)}function kk(...t){const e=(t,e)=>n=>t(e(n));return{encode:Array.from(t).reverse().reduce((t,n)=>t?e(t,n.encode):n.encode,void 0),decode:t.reduce((t,n)=>t?e(t,n.decode):n.decode,void 0)}}function Ek(t){return{encode:e=>{if(!Array.isArray(e)||e.length&&"number"!=typeof e[0])throw new Error("alphabet.encode input should be an array of numbers");return e.map(e=>{if(Sk(e),e<0||e>=t.length)throw new Error(`Digit index outside alphabet: ${e} (alphabet: ${t.length})`);return t[e]})},decode:e=>{if(!Array.isArray(e)||e.length&&"string"!=typeof e[0])throw new Error("alphabet.decode input should be array of strings");return e.map(e=>{if("string"!=typeof e)throw new Error(`alphabet.decode: not string element=${e}`);const n=t.indexOf(e);if(-1===n)throw new Error(`Unknown letter: "${e}". Allowed: ${t}`);return n})}}}function Rk(t=""){if("string"!=typeof t)throw new Error("join separator should be string");return{encode:e=>{if(!Array.isArray(e)||e.length&&"string"!=typeof e[0])throw new Error("join.encode input should be array of strings");for(let t of e)if("string"!=typeof t)throw new Error(`join.encode: non-string input=${t}`);return e.join(t)},decode:e=>{if("string"!=typeof e)throw new Error("join.decode input should be string");return e.split(t)}}}function Tk(t,e="="){if(Sk(t),"string"!=typeof e)throw new Error("padding chr should be string");return{encode(n){if(!Array.isArray(n)||n.length&&"string"!=typeof n[0])throw new Error("padding.encode input should be array of strings");for(let t of n)if("string"!=typeof t)throw new Error(`padding.encode: non-string input=${t}`);for(;n.length*t%8;)n.push(e);return n},decode(n){if(!Array.isArray(n)||n.length&&"string"!=typeof n[0])throw new Error("padding.encode input should be array of strings");for(let t of n)if("string"!=typeof t)throw new Error(`padding.decode: non-string input=${t}`);let r=n.length;if(r*t%8)throw new Error("Invalid padding: string should have whole number of bytes");for(;r>0&&n[r-1]===e;r--)if(!((r-1)*t%8))throw new Error("Invalid padding: string has too much padding");return n.slice(0,r)}}}function Lk(t){if("function"!=typeof t)throw new Error("normalize fn should be function");return{encode:t=>t,decode:e=>t(e)}}function Ik(t,e,n){if(e<2)throw new Error(`convertRadix: wrong from=${e}, base cannot be less than 2`);if(n<2)throw new Error(`convertRadix: wrong to=${n}, base cannot be less than 2`);if(!Array.isArray(t))throw new Error("convertRadix: data should be array");if(!t.length)return[];let r=0;const i=[],s=Array.from(t);for(s.forEach(t=>{if(Sk(t),t<0||t>=e)throw new Error(`Wrong integer: ${t}`)});;){let t=0,o=!0;for(let i=r;i32)throw new Error(`convertRadix2: wrong from=${e}`);if(n<=0||n>32)throw new Error(`convertRadix2: wrong to=${n}`);if(US(e,n)>32)throw new Error(`convertRadix2: carry overflow from=${e} to=${n} carryBits=${US(e,n)}`);let i=0,s=0;const o=2**n-1,a=[];for(const l of t){if(Sk(l),l>=2**e)throw new Error(`convertRadix2: invalid data word=${l} from=${e}`);if(i=i<32)throw new Error(`convertRadix2: carry overflow pos=${s} from=${e}`);for(s+=e;s>=n;s-=n)a.push((i>>s-n&o)>>>0);i&=2**s-1}if(i=i<=e)throw new Error("Excess padding");if(!r&&i)throw new Error(`Non-zero padding: ${i}`);return r&&s>0&&a.push(i>>>0),a}function Mk(t){return Sk(t),{encode:e=>{if(!(e instanceof Uint8Array))throw new Error("radix.encode input should be Uint8Array");return Ik(Array.from(e),256,t)},decode:e=>{if(!Array.isArray(e)||e.length&&"number"!=typeof e[0])throw new Error("radix.decode input should be array of strings");return Uint8Array.from(Ik(e,t,256))}}}function Ak(t,e=!1){if(Sk(t),t<=0||t>32)throw new Error("radix2: bits should be in (0..32]");if(US(8,t)>32||US(t,8)>32)throw new Error("radix2: carry overflow");return{encode:n=>{if(!(n instanceof Uint8Array))throw new Error("radix2.encode input should be Uint8Array");return Pk(Array.from(n),8,t,!e)},decode:n=>{if(!Array.isArray(n)||n.length&&"number"!=typeof n[0])throw new Error("radix2.decode input should be array of strings");return Uint8Array.from(Pk(n,t,8,e))}}}function Ok(t){if("function"!=typeof t)throw new Error("unsafeWrapper fn should be function");return function(...e){try{return t.apply(null,e)}catch(n){}}}function Nk(t,e){if(Sk(t),"function"!=typeof e)throw new Error("checksum fn should be function");return{encode(n){if(!(n instanceof Uint8Array))throw new Error("checksum.encode: input should be Uint8Array");const r=e(n).slice(0,t),i=new Uint8Array(n.length+t);return i.set(n),i.set(r,n.length),i},decode(n){if(!(n instanceof Uint8Array))throw new Error("checksum.decode: input should be Uint8Array");const r=n.slice(0,-t),i=e(r).slice(0,t),s=n.slice(-t);for(let e=0;e>25;let n=(33554431&t)<<5;for(let r=0;r>r&1)&&(n^=nk[r]);return n}function zk(t,e,n=1){const r=t.length;let i=1;for(let s=0;s126)throw new Error(`Invalid prefix (${t})`);i=Fk(i)^e>>5}i=Fk(i);for(let s=0;sn)throw new TypeError(`Wrong string length: ${t.length} (${t}). Expected (8..${n})`);const r=t.toLowerCase();if(t!==r&&t!==t.toUpperCase())throw new Error("String must be lowercase or uppercase");const i=(t=r).lastIndexOf("1");if(0===i||-1===i)throw new Error('Letter "1" must be present between prefix and data only');const s=t.slice(0,i),o=t.slice(i+1);if(o.length<6)throw new Error("Data must be at least 6 characters long");const a=ek.decode(o).slice(0,-6),l=zk(s,a,e);if(!o.endsWith(l))throw new Error(`Invalid checksum in ${t}: expected "${l}"`);return{prefix:s,words:a}}return{encode:function(t,n,r=90){if("string"!=typeof t)throw new Error("bech32.encode prefix should be string, not "+typeof t);if(!Array.isArray(n)||n.length&&"number"!=typeof n[0])throw new Error("bech32.encode words should be array of numbers, not "+typeof n);const i=t.length+7+n.length;if(!1!==r&&i>r)throw new TypeError(`Length ${i} exceeds limit ${r}`);return`${t=t.toLowerCase()}1${ek.encode(n)}${zk(t,n,e)}`},decode:o,decodeToBytes:function(t){const{prefix:e,words:n}=o(t,!1);return{prefix:e,words:n,bytes:r(n)}},decodeUnsafe:Ok(o),fromWords:r,fromWordsUnsafe:s,toWords:i}}var jk=((t,e,n)=>()=>{if(n)throw n[0];try{return t&&(e=t(t=0)),e}catch(r){throw n=[r],r}})(()=>{jS=(t,e)=>e?jS(e,t%e):t,US=(t,e)=>t+(e-jS(t,e)),BS={alphabet:Ek,chain:kk,checksum:Nk,radix:Mk,radix2:Ak,join:Rk,padding:Tk},$S=kk(Ak(4),Ek("0123456789ABCDEF"),Rk("")),qS=kk(Ak(5),Ek("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),Tk(5),Rk("")),VS=kk(Ak(5),Ek("0123456789ABCDEFGHIJKLMNOPQRSTUV"),Tk(5),Rk("")),WS=kk(Ak(5),Ek("0123456789ABCDEFGHJKMNPQRSTVWXYZ"),Rk(""),Lk(t=>t.toUpperCase().replace(/O/g,"0").replace(/[IL]/g,"1"))),HS=kk(Ak(6),Ek("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),Tk(6),Rk("")),GS=kk(Ak(6),Ek("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),Tk(6),Rk("")),KS=(ZS=t=>kk(Mk(58),Ek(t),Rk("")))("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),YS=ZS("123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"),XS=ZS("rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz"),JS=[0,2,3,5,6,7,9,10,11],QS={encode(t){let e="";for(let n=0;nkk(Nk(4,e=>t(t(e))),KS),ek=kk(Ek("qpzry9x8gf2tvdw0s3jn54khce6mua7l"),Rk("")),nk=[996825010,642813549,513874426,1027748829,705979059],rk=Dk("bech32"),ik=Dk("bech32m"),sk={encode:t=>(new TextDecoder).decode(t),decode:t=>(new TextEncoder).encode(t)},ok=kk(Ak(4),Ek("0123456789abcdef"),Rk(""),Lk(t=>{if("string"!=typeof t||t.length%2)throw new TypeError(`hex.decode: expected string, got ${typeof t} with length ${t.length}`);return t.toLowerCase()})),ak={utf8:sk,hex:ok,base16:$S,base32:qS,base64:HS,base64url:GS,base58:KS,base58xmr:QS},lk=`Invalid encoding type. Available types: ${Object.keys(ak).join(", ")}`,ck=(t,e)=>{if("string"!=typeof t||!ak.hasOwnProperty(t))throw new TypeError(lk);if(!(e instanceof Uint8Array))throw new TypeError("bytesToString() expects Uint8Array");return ak[t].encode(e)},uk=ck,hk=(t,e)=>{if(!ak.hasOwnProperty(t))throw new TypeError(lk);if("string"!=typeof e)throw new TypeError("stringToBytes() expects string");return ak[t].decode(e)},dk=hk});function Uk(t){if(!Number.isSafeInteger(t)||t<0)throw new Error(`positive integer expected, not ${t}`)}function Bk(t){if("boolean"!=typeof t)throw new Error(`boolean expected, not ${t}`)}function $k(t){return t instanceof Uint8Array||null!=t&&"object"==typeof t&&"Uint8Array"===t.constructor.name}function qk(t,...e){if(!$k(t))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(t.length))throw new Error(`Uint8Array expected of length ${e}, not of length=${t.length}`)}function Vk(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function Wk(t,e){qk(t);const n=e.outputLen;if(t.lengthnew Uint8Array(t.buffer,t.byteOffset,t.byteLength),Gk=t=>new Uint32Array(t.buffer,t.byteOffset,Math.floor(t.byteLength/4)),Zk=t=>new DataView(t.buffer,t.byteOffset,t.byteLength);if(68!==new Uint8Array(new Uint32Array([287454020]).buffer)[0])throw new Error("Non little-endian hardware is not supported");var Kk=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function Yk(t){qk(t);let e="";for(let n=0;n=48&&t<=57?t-48:t>=65&&t<=70?t-55:t>=97&&t<=102?t-87:void 0}function Jk(t){if("string"!=typeof t)throw new Error("hex string expected, got "+typeof t);const e=t.length,n=e/2;if(e%2)throw new Error("padded hex string expected, got unpadded hex of length "+e);const r=new Uint8Array(n);for(let i=0,s=0;i(Object.assign(e,t),e);function nE(t,e,n,r){if("function"==typeof t.setBigUint64)return t.setBigUint64(e,n,r);const i=BigInt(32),s=BigInt(4294967295),o=Number(n>>i&s),a=Number(n&s),l=r?4:0,c=r?0:4;t.setUint32(e+l,o,r),t.setUint32(e+c,a,r)}var rE=16,iE=new Uint8Array(16),sE=Gk(iE),oE=(t,e,n,r)=>({s3:n<<31|r>>>1,s2:e<<31|n>>>1,s1:t<<31|e>>>1,s0:t>>>1^225<<24&-(1&r)}),aE=t=>(t>>>0&255)<<24|(t>>>8&255)<<16|(t>>>16&255)<<8|t>>>24&255,lE=class{constructor(t,e){this.blockLen=rE,this.outputLen=rE,this.s0=0,this.s1=0,this.s2=0,this.s3=0,this.finished=!1,qk(t=Qk(t),16);const n=Zk(t);let r=n.getUint32(0,!1),i=n.getUint32(4,!1),s=n.getUint32(8,!1),o=n.getUint32(12,!1);const a=[];for(let d=0;d<128;d++)a.push({s0:aE(r),s1:aE(i),s2:aE(s),s3:aE(o)}),({s0:r,s1:i,s2:s,s3:o}=oE(r,i,s,o));const l=(t=>t>65536?8:t>1024?4:2)(e||1024);if(![1,2,4,8].includes(l))throw new Error(`ghash: wrong window size=${l}, should be 2, 4 or 8`);this.W=l;const c=128/l,u=this.windowSize=2**l,h=[];for(let d=0;d>>l-s-1&1))continue;const{s0:o,s1:c,s2:u,s3:h}=a[l*d+s];e^=o,n^=c,r^=u,i^=h}h.push({s0:e,s1:n,s2:r,s3:i})}this.t=h}_updateBlock(t,e,n,r){t^=this.s0,e^=this.s1,n^=this.s2,r^=this.s3;const{W:i,t:s,windowSize:o}=this;let a=0,l=0,c=0,u=0;const h=(1<>>8*t&255;for(let t=8/i-1;t>=0;t--){const n=e>>>i*t&h,{s0:r,s1:p,s2:f,s3:g}=s[d*o+n];a^=r,l^=p,c^=f,u^=g,d+=1}}this.s0=a,this.s1=l,this.s2=c,this.s3=u}update(t){t=Qk(t),Vk(this);const e=Gk(t),n=Math.floor(t.length/rE),r=t.length%rE;for(let i=0;i>>1|n,n=(1&e)<<7}return t[0]^=225&-e,t}((t=Qk(t)).slice());super(n,e),n.fill(0)}update(t){t=Qk(t),Vk(this);const e=Gk(t),n=t.length%rE,r=Math.floor(t.length/rE);for(let i=0;it(n,e.length).update(Qk(e)).digest(),n=t(new Uint8Array(16),0);return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=(e,n)=>t(e,n),e}var hE=uE((t,e)=>new lE(t,e)),dE=uE((t,e)=>new cE(t,e)),pE=16,fE=new Uint8Array(pE);function gE(t){return t<<1^283&-(t>>7)}function mE(t,e){let n=0;for(;e>0;e>>=1)n^=t&-(1&e),t=gE(t);return n}var yE=(()=>{let t=new Uint8Array(256);for(let n=0,r=1;n<256;n++,r^=gE(r))t[n]=r;const e=new Uint8Array(256);e[0]=99;for(let n=0;n<255;n++){let r=t[255-n];r|=r<<8,e[t[n]]=255&(r^r>>4^r>>5^r>>6^r>>7^99)}return e})(),vE=yE.map((t,e)=>yE.indexOf(e)),bE=t=>t<<24|t>>>8,wE=t=>t<<8|t>>>24;function _E(t,e){if(256!==t.length)throw new Error("Wrong sbox length");const n=new Uint32Array(256).map((n,r)=>e(t[r])),r=n.map(wE),i=r.map(wE),s=i.map(wE),o=new Uint32Array(65536),a=new Uint32Array(65536),l=new Uint16Array(65536);for(let c=0;c<256;c++)for(let e=0;e<256;e++){const u=256*c+e;o[u]=n[c]^r[e],a[u]=i[c]^s[e],l[u]=t[c]<<8|t[e]}return{sbox:t,sbox2:l,T0:n,T1:r,T2:i,T3:s,T01:o,T23:a}}var xE=_E(yE,t=>mE(t,3)<<24|t<<16|t<<8|mE(t,2)),CE=_E(vE,t=>mE(t,11)<<24|mE(t,13)<<16|mE(t,9)<<8|mE(t,14)),SE=(()=>{const t=new Uint8Array(16);for(let e=0,n=1;e<16;e++,n=gE(n))t[e]=n;return t})();function kE(t){qk(t);const e=t.length;if(![16,24,32].includes(e))throw new Error(`aes: wrong key size: should be 16, 24 or 32, got: ${e}`);const{sbox2:n}=xE,r=Gk(t),i=r.length,s=t=>TE(n,t,t,t,t),o=new Uint32Array(e+28);o.set(r);for(let a=i;a6&&a%i===4&&(t=s(t)),o[a]=o[a-i]^t}return o}function EE(t){const e=kE(t),n=e.slice(),r=e.length,{sbox2:i}=xE,{T0:s,T1:o,T2:a,T3:l}=CE;for(let c=0;c>>8&255]^a[e>>>16&255]^l[e>>>24]}return n}function RE(t,e,n,r,i,s){return t[n<<8&65280|r>>>8&255]^e[i>>>8&65280|s>>>24&255]}function TE(t,e,n,r,i){return t[255&e|65280&n]|t[r>>>16&255|i>>>16&65280]<<16}function LE(t,e,n,r,i){const{sbox2:s,T01:o,T23:a}=xE;let l=0;e^=t[l++],n^=t[l++],r^=t[l++],i^=t[l++];const c=t.length/4-2;for(let u=0;u>>0,a.setUint32(u,d,e),({s0:p,s1:f,s2:g,s3:m}=LE(t,o[0],o[1],o[2],o[3]));const y=pE*Math.floor(l.length/4);if(y16)throw new Error(`aes/pcks5: wrong padding byte: ${r}`);const i=t.subarray(0,-r);for(let s=0;s=0;t--)e=e+(255&s[t])|0,s[t]=255&e,e>>>=8;({s0:a,s1:l,s2:c,s3:u}=LE(t,o[0],o[1],o[2],o[3]))}const p=pE*Math.floor(h.length/4);if(pn(t,e),decrypt:(t,e)=>n(t,e)}}),eE({blockSize:16},function(t,e={}){qk(t);const n=!e.disablePadding;return{encrypt:(e,r)=>{qk(e);const{b:i,o:s,out:o}=OE(e,n,r),a=kE(t);let l=0;for(;l+4<=i.length;){const{s0:t,s1:e,s2:n,s3:r}=LE(a,i[l+0],i[l+1],i[l+2],i[l+3]);s[l++]=t,s[l++]=e,s[l++]=n,s[l++]=r}if(n){const t=FE(e.subarray(4*l)),{s0:n,s1:r,s2:i,s3:o}=LE(a,t[0],t[1],t[2],t[3]);s[l++]=n,s[l++]=r,s[l++]=i,s[l++]=o}return a.fill(0),o},decrypt:(e,r)=>{AE(e);const i=EE(t),s=PE(e.length,r),o=Gk(e),a=Gk(s);for(let t=0;t+4<=o.length;){const{s0:e,s1:n,s2:r,s3:s}=IE(i,o[t+0],o[t+1],o[t+2],o[t+3]);a[t++]=e,a[t++]=n,a[t++]=r,a[t++]=s}return i.fill(0),NE(s,n)}}});var zE=eE({blockSize:16,nonceLength:16},function(t,e,n={}){qk(t),qk(e,16);const r=!n.disablePadding;return{encrypt:(n,i)=>{const s=kE(t),{b:o,o:a,out:l}=OE(n,r,i),c=Gk(e);let u=c[0],h=c[1],d=c[2],p=c[3],f=0;for(;f+4<=o.length;)u^=o[f+0],h^=o[f+1],d^=o[f+2],p^=o[f+3],({s0:u,s1:h,s2:d,s3:p}=LE(s,u,h,d,p)),a[f++]=u,a[f++]=h,a[f++]=d,a[f++]=p;if(r){const t=FE(n.subarray(4*f));u^=t[0],h^=t[1],d^=t[2],p^=t[3],({s0:u,s1:h,s2:d,s3:p}=LE(s,u,h,d,p)),a[f++]=u,a[f++]=h,a[f++]=d,a[f++]=p}return s.fill(0),l},decrypt:(n,i)=>{AE(n);const s=EE(t),o=Gk(e),a=PE(n.length,i),l=Gk(n),c=Gk(a);let u=o[0],h=o[1],d=o[2],p=o[3];for(let t=0;t+4<=l.length;){const e=u,n=h,r=d,i=p;u=l[t+0],h=l[t+1],d=l[t+2],p=l[t+3];const{s0:o,s1:a,s2:f,s3:g}=IE(s,u,h,d,p);c[t++]=o^e,c[t++]=a^n,c[t++]=f^r,c[t++]=g^i}return s.fill(0),NE(a,r)}}});function DE(t,e,n,r,i){const s=t.create(n,r.length+(i?.length||0));i&&s.update(i),s.update(r);const o=new Uint8Array(16),a=Zk(o);return i&&nE(a,0,BigInt(8*i.length),e),nE(a,8,BigInt(8*r.length),e),s.update(o),s.digest()}eE({blockSize:16,nonceLength:16},function(t,e){function n(n,r,i){const s=kE(t),o=n.length;i=PE(o,i);const a=Gk(n),l=Gk(i),c=r?l:a,u=Gk(e);let h=u[0],d=u[1],p=u[2],f=u[3];for(let t=0;t+4<=a.length;){const{s0:e,s1:n,s2:r,s3:i}=LE(s,h,d,p,f);l[t+0]=a[t+0]^e,l[t+1]=a[t+1]^n,l[t+2]=a[t+2]^r,l[t+3]=a[t+3]^i,h=c[t++],d=c[t++],p=c[t++],f=c[t++]}const g=pE*Math.floor(a.length/4);if(gn(t,!0,e),decrypt:(t,e)=>n(t,!1,e)}}),eE({blockSize:16,nonceLength:12,tagLength:16},function(t,e,n){if(qk(e),0===e.length)throw new Error("aes/gcm: empty nonce");function r(t,e,r){const i=DE(hE,!1,t,r,n);for(let n=0;n{qk(t);const{xk:e,authKey:n,counter:s,tagMask:o}=i(),a=new Uint8Array(t.length+16);ME(e,!1,s,t,a);const l=r(n,o,a.subarray(0,a.length-16));return a.set(l,t.length),e.fill(0),a},decrypt:t=>{if(qk(t),t.length<16)throw new Error("aes/gcm: ciphertext less than tagLen (16)");const{xk:e,authKey:n,counter:s,tagMask:o}=i(),a=t.subarray(0,-16),l=t.subarray(-16);if(!tE(r(n,o,a),l))throw new Error("aes/gcm: invalid ghash tag");const c=ME(e,!1,s,a);return n.fill(0),o.fill(0),e.fill(0),c}}});var jE=(t,e,n)=>r=>{if(!Number.isSafeInteger(r)||e>r||r>n)throw new Error(`${t}: invalid value=${r}, must be [${e}..${n}]`)},UE=(eE({blockSize:16,nonceLength:12,tagLength:16},function(t,e,n){const r=jE("AAD",0,2**36),i=jE("plaintext",0,2**36),s=jE("nonce",12,12),o=jE("ciphertext",16,2**36+16);function a(){const n=t.length;if(16!==n&&24!==n&&32!==n)throw new Error(`key length must be 16, 24 or 32 bytes, got: ${n} bytes`);const r=kE(t),i=new Uint8Array(n),s=new Uint8Array(16),o=Gk(e);let a=0,l=o[0],c=o[1],u=o[2],h=0;for(const t of[s,i].map(Gk)){const e=Gk(t);for(let t=0;t{qk(t),i(t.length);const{encKey:e,authKey:n}=a(),r=l(e,n,t),s=new Uint8Array(t.length+16);return s.set(r,t.length),s.set(c(e,r,t)),e.fill(0),n.fill(0),s},decrypt:t=>{qk(t),o(t.length);const e=t.subarray(-16),{encKey:n,authKey:r}=a(),i=c(n,e,t.subarray(0,-16)),s=l(n,r,i);if(n.fill(0),r.fill(0),!tE(e,s))throw new Error("invalid polyval tag");return i}}}),(t,e)=>255&t[e++]|(255&t[e++])<<8),BE=class{constructor(t){this.blockLen=16,this.outputLen=16,this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.pos=0,this.finished=!1,qk(t=Qk(t),32);const e=UE(t,0),n=UE(t,2),r=UE(t,4),i=UE(t,6),s=UE(t,8),o=UE(t,10),a=UE(t,12),l=UE(t,14);this.r[0]=8191&e,this.r[1]=8191&(e>>>13|n<<3),this.r[2]=7939&(n>>>10|r<<6),this.r[3]=8191&(r>>>7|i<<9),this.r[4]=255&(i>>>4|s<<12),this.r[5]=s>>>1&8190,this.r[6]=8191&(s>>>14|o<<2),this.r[7]=8065&(o>>>11|a<<5),this.r[8]=8191&(a>>>8|l<<8),this.r[9]=l>>>5&127;for(let c=0;c<8;c++)this.pad[c]=UE(t,16+2*c)}process(t,e,n=!1){const r=n?0:2048,{h:i,r:s}=this,o=s[0],a=s[1],l=s[2],c=s[3],u=s[4],h=s[5],d=s[6],p=s[7],f=s[8],g=s[9],m=UE(t,e+0),y=UE(t,e+2),v=UE(t,e+4),b=UE(t,e+6),w=UE(t,e+8),_=UE(t,e+10),x=UE(t,e+12),C=UE(t,e+14);let S=i[0]+(8191&m),k=i[1]+(8191&(m>>>13|y<<3)),E=i[2]+(8191&(y>>>10|v<<6)),R=i[3]+(8191&(v>>>7|b<<9)),T=i[4]+(8191&(b>>>4|w<<12)),L=i[5]+(w>>>1&8191),I=i[6]+(8191&(w>>>14|_<<2)),P=i[7]+(8191&(_>>>11|x<<5)),M=i[8]+(8191&(x>>>8|C<<8)),A=i[9]+(C>>>5|r),O=0,N=O+S*o+k*(5*g)+E*(5*f)+R*(5*p)+T*(5*d);O=N>>>13,N&=8191,N+=L*(5*h)+I*(5*u)+P*(5*c)+M*(5*l)+A*(5*a),O+=N>>>13,N&=8191;let F=O+S*a+k*o+E*(5*g)+R*(5*f)+T*(5*p);O=F>>>13,F&=8191,F+=L*(5*d)+I*(5*h)+P*(5*u)+M*(5*c)+A*(5*l),O+=F>>>13,F&=8191;let z=O+S*l+k*a+E*o+R*(5*g)+T*(5*f);O=z>>>13,z&=8191,z+=L*(5*p)+I*(5*d)+P*(5*h)+M*(5*u)+A*(5*c),O+=z>>>13,z&=8191;let D=O+S*c+k*l+E*a+R*o+T*(5*g);O=D>>>13,D&=8191,D+=L*(5*f)+I*(5*p)+P*(5*d)+M*(5*h)+A*(5*u),O+=D>>>13,D&=8191;let j=O+S*u+k*c+E*l+R*a+T*o;O=j>>>13,j&=8191,j+=L*(5*g)+I*(5*f)+P*(5*p)+M*(5*d)+A*(5*h),O+=j>>>13,j&=8191;let U=O+S*h+k*u+E*c+R*l+T*a;O=U>>>13,U&=8191,U+=L*o+I*(5*g)+P*(5*f)+M*(5*p)+A*(5*d),O+=U>>>13,U&=8191;let B=O+S*d+k*h+E*u+R*c+T*l;O=B>>>13,B&=8191,B+=L*a+I*o+P*(5*g)+M*(5*f)+A*(5*p),O+=B>>>13,B&=8191;let $=O+S*p+k*d+E*h+R*u+T*c;O=$>>>13,$&=8191,$+=L*l+I*a+P*o+M*(5*g)+A*(5*f),O+=$>>>13,$&=8191;let q=O+S*f+k*p+E*d+R*h+T*u;O=q>>>13,q&=8191,q+=L*c+I*l+P*a+M*o+A*(5*g),O+=q>>>13,q&=8191;let V=O+S*g+k*f+E*p+R*d+T*h;O=V>>>13,V&=8191,V+=L*u+I*c+P*l+M*a+A*o,O+=V>>>13,V&=8191,O=(O<<2)+O|0,O=O+N|0,N=8191&O,O>>>=13,F+=O,i[0]=N,i[1]=F,i[2]=z,i[3]=D,i[4]=j,i[5]=U,i[6]=B,i[7]=$,i[8]=q,i[9]=V}finalize(){const{h:t,pad:e}=this,n=new Uint16Array(10);let r=t[1]>>>13;t[1]&=8191;for(let o=2;o<10;o++)t[o]+=r,r=t[o]>>>13,t[o]&=8191;t[0]+=5*r,r=t[0]>>>13,t[0]&=8191,t[1]+=r,r=t[1]>>>13,t[1]&=8191,t[2]+=r,n[0]=t[0]+5,r=n[0]>>>13,n[0]&=8191;for(let o=1;o<10;o++)n[o]=t[o]+r,r=n[o]>>>13,n[o]&=8191;n[9]-=8192;let i=(1^r)-1;for(let o=0;o<10;o++)n[o]&=i;i=~i;for(let o=0;o<10;o++)t[o]=t[o]&i|n[o];t[0]=65535&(t[0]|t[1]<<13),t[1]=65535&(t[1]>>>3|t[2]<<10),t[2]=65535&(t[2]>>>6|t[3]<<7),t[3]=65535&(t[3]>>>9|t[4]<<4),t[4]=65535&(t[4]>>>12|t[5]<<1|t[6]<<14),t[5]=65535&(t[6]>>>2|t[7]<<11),t[6]=65535&(t[7]>>>5|t[8]<<8),t[7]=65535&(t[8]>>>8|t[9]<<5);let s=t[0]+e[0];t[0]=65535&s;for(let o=1;o<8;o++)s=(t[o]+e[o]|0)+(s>>>16)|0,t[o]=65535&s}update(t){Vk(this);const{buffer:e,blockLen:n}=this,r=(t=Qk(t)).length;for(let i=0;i>>0,t[i++]=n[s]>>>8;return t}digest(){const{buffer:t,outputLen:e}=this;this.digestInto(t);const n=t.slice(0,e);return this.destroy(),n}},$E=function(t){const e=(e,n)=>t(n).update(Qk(e)).digest(),n=t(new Uint8Array(32));return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=e=>t(e),e}(t=>new BE(t)),qE=t=>Uint8Array.from(t.split("").map(t=>t.charCodeAt(0))),VE=qE("expand 16-byte k"),WE=qE("expand 32-byte k"),HE=Gk(VE),GE=Gk(WE);function ZE(t,e){return t<>>32-e}function KE(t){return t.byteOffset%4==0}GE.slice();var YE=2**32-1,XE=new Uint32Array;function JE(t,e){const{allowShortKeys:n,extendNonceFn:r,counterLength:i,counterRight:s,rounds:o}=function(t,e){if(null==e||"object"!=typeof e)throw new Error("options must be defined");return Object.assign({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},e)}(0,e);if("function"!=typeof t)throw new Error("core must be a function");return Uk(i),Uk(o),Bk(s),Bk(n),(e,a,l,c,u=0)=>{qk(e),qk(a),qk(l);const h=l.length;if(c||(c=new Uint8Array(h)),qk(c),Uk(u),u<0||u>=YE)throw new Error("arx: counter overflow");if(c.length=YE)throw new Error("arx: counter overflow");const g=Math.min(64,l-f);if(h&&64===g){const t=f/4;if(f%4!=0)throw new Error("arx: invalid block position");for(let e,n=0;n<16;n++)e=t+n,p[e]=d[e]^u[n];f+=64;continue}for(let t,e=0;e0;)d.pop().fill(0);return c}}function QE(t,e,n,r,i,s=20){let o=t[0],a=t[1],l=t[2],c=t[3],u=e[0],h=e[1],d=e[2],p=e[3],f=e[4],g=e[5],m=e[6],y=e[7],v=i,b=n[0],w=n[1],_=n[2],x=o,C=a,S=l,k=c,E=u,R=h,T=d,L=p,I=f,P=g,M=m,A=y,O=v,N=b,F=w,z=_;for(let j=0;j{t.update(e);const n=e.length%16;n&&t.update(nR.subarray(n))},iR=new Uint8Array(32);function sR(t,e,n,r,i){const s=t(e,n,iR),o=$E.create(s);i&&rR(o,i),rR(o,r);const a=new Uint8Array(16),l=Zk(a);nE(l,0,BigInt(i?i.length:0),!0),nE(l,8,BigInt(r.length),!0),o.update(a);const c=o.digest();return s.fill(0),c}var oR=t=>(e,n,r)=>(qk(e,32),qk(n),{encrypt:(i,s)=>{const o=i.length,a=o+16;s?qk(s,a):s=new Uint8Array(a),t(e,n,i,s,1);const l=sR(t,e,n,s.subarray(0,-16),r);return s.set(l,o),s},decrypt:(i,s)=>{const o=i.length,a=o-16;if(o<16)throw new Error("encrypted data must be at least 16 bytes");s?qk(s,a):s=new Uint8Array(a);const l=i.subarray(0,-16);if(!tE(i.subarray(-16),sR(t,e,n,l,r)))throw new Error("invalid tag");return t(e,n,l,s,1),s}}),aR=(oR(tR),oR(eR),class extends OS{constructor(t,e){super(),this.finished=!1,this.destroyed=!1,pk.hash(t);const n=MS(e);if(this.iHash=t.create(),"function"!=typeof this.iHash.update)throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const r=this.blockLen,i=new Uint8Array(r);i.set(n.length>r?t.create().update(n).digest():n);for(let s=0;snew aR(t,e).update(n).digest();lR.create=(t,e)=>new aR(t,e);var cR=new Uint8Array([0]),uR=new Uint8Array,hR=Object.defineProperty,dR=(t,e)=>{for(var n in e)hR(t,n,{get:e[n],enumerable:!0})},pR=Symbol("verified");function fR(t){if(!(t instanceof Object))return!1;if("number"!=typeof t.kind)return!1;if("string"!=typeof t.content)return!1;if("number"!=typeof t.created_at)return!1;if("string"!=typeof t.pubkey)return!1;if(!t.pubkey.match(/^[a-f0-9]{64}$/))return!1;if(!Array.isArray(t.tags))return!1;for(let e=0;exR,QueueNode:()=>_R,binarySearch:()=>wR,bytesToHex:()=>IS,hexToBytes:()=>PS,insertEventIntoAscendingList:()=>bR,insertEventIntoDescendingList:()=>vR,normalizeURL:()=>yR,utf8Decoder:()=>gR,utf8Encoder:()=>mR});var gR=new TextDecoder("utf-8"),mR=new TextEncoder;function yR(t){try{-1===t.indexOf("://")&&(t="wss://"+t);let e=new URL(t);return"http:"===e.protocol?e.protocol="ws:":"https:"===e.protocol&&(e.protocol="wss:"),e.pathname=e.pathname.replace(/\/+/g,"/"),e.pathname.endsWith("/")&&(e.pathname=e.pathname.slice(0,-1)),("80"===e.port&&"ws:"===e.protocol||"443"===e.port&&"wss:"===e.protocol)&&(e.port=""),e.searchParams.sort(),e.hash="",e.toString()}catch(e){throw new Error(`Invalid URL: ${t}`)}}function vR(t,e){const[n,r]=wR(t,t=>e.id===t.id?0:e.created_at===t.created_at?-1:t.created_at-e.created_at);return r||t.splice(n,0,e),t}function bR(t,e){const[n,r]=wR(t,t=>e.id===t.id?0:e.created_at===t.created_at?-1:e.created_at-t.created_at);return r||t.splice(n,0,e),t}function wR(t,e){let n=0,r=t.length-1;for(;n<=r;){const i=Math.floor((n+r)/2),s=e(t[i]);if(0===s)return[i,!0];s<0?r=i-1:n=i+1}return[n,!1]}var _R=class{value;next=null;prev=null;constructor(t){this.value=t}},xR=class{first;last;constructor(){this.first=null,this.last=null}enqueue(t){const e=new _R(t);return this.last?this.last===this.first?(this.last=e,this.last.prev=this.first,this.first.next=e):(e.prev=this.last,this.last.next=e,this.last=e):(this.first=e,this.last=e),!0}dequeue(){if(!this.first)return null;if(this.first===this.last){const t=this.first;return this.first=null,this.last=null,t.value}const t=this.first;return this.first=t.next,this.first&&(this.first.prev=null),t.value}};function CR(t){return IS(xk(mR.encode(function(t){if(!fR(t))throw new Error("can't serialize event with wrong or missing properties");return JSON.stringify([0,t.pubkey,t.created_at,t.kind,t.tags,t.content])}(t))))}var SR=new class{generateSecretKey(){return SS.utils.randomPrivateKey()}getPublicKey(t){return IS(SS.getPublicKey(t))}finalizeEvent(t,e){const n=t;return n.pubkey=IS(SS.getPublicKey(e)),n.id=CR(n),n.sig=IS(SS.sign(CR(n),e)),n[pR]=!0,n}verifyEvent(t){if("boolean"==typeof t[pR])return t[pR];const e=CR(t);if(e!==t.id)return t[pR]=!1,!1;try{const n=SS.verify(t.sig,e,t.pubkey);return t[pR]=n,n}catch(nD){return t[pR]=!1,!1}}},kR=SR.generateSecretKey,ER=SR.getPublicKey,RR=SR.finalizeEvent,TR=SR.verifyEvent,LR={};function IR(t){return t<1e4&&0!==t&&3!==t}function PR(t){return 0===t||3===t||1e4<=t&&t<2e4}function MR(t){return 2e4<=t&&t<3e4}function AR(t){return 3e4<=t&&t<4e4}function OR(t){return IR(t)?"regular":PR(t)?"replaceable":MR(t)?"ephemeral":AR(t)?"parameterized":"unknown"}function NR(t,e){const n=e instanceof Array?e:[e];return fR(t)&&n.includes(t.kind)||!1}dR(LR,{Application:()=>oL,BadgeAward:()=>VR,BadgeDefinition:()=>QT,BlockedRelaysList:()=>MT,BlossomServerList:()=>jT,BookmarkList:()=>LT,Bookmarksets:()=>YT,Calendar:()=>pL,CalendarEventRSVP:()=>fL,ChannelCreation:()=>tT,ChannelHideMessage:()=>rT,ChannelMessage:()=>nT,ChannelMetadata:()=>eT,ChannelMuteUser:()=>iT,ChatMessage:()=>WR,ClassifiedListing:()=>cL,ClientAuth:()=>$T,Comment:()=>cT,CommunitiesList:()=>IT,CommunityDefinition:()=>vL,CommunityPostApproval:()=>yT,Contacts:()=>jR,CreateOrUpdateProduct:()=>nL,CreateOrUpdateStall:()=>eL,Curationsets:()=>XT,Date:()=>hL,DirectMessageRelaysList:()=>zT,DraftClassifiedListing:()=>uL,DraftLong:()=>iL,Emojisets:()=>sL,EncryptedDirectMessage:()=>UR,EventDeletion:()=>BR,FavoriteRelays:()=>OT,FileMessage:()=>KR,FileMetadata:()=>lT,FileServerPreference:()=>DT,Followsets:()=>GT,ForumThread:()=>HR,GenericRepost:()=>YR,Genericlists:()=>ZT,GiftWrap:()=>oT,GroupMetadata:()=>bL,HTTPAuth:()=>HT,Handlerinformation:()=>yL,Handlerrecommendation:()=>mL,Highlights:()=>ST,InterestsList:()=>NT,Interestsets:()=>tL,JobFeedback:()=>wT,JobRequest:()=>vT,JobResult:()=>bT,Label:()=>mT,LightningPubRPC:()=>BT,LiveChatMessage:()=>uT,LiveEvent:()=>aL,LongFormArticle:()=>rL,Metadata:()=>FR,Mutelist:()=>ET,NWCWalletInfo:()=>UT,NWCWalletRequest:()=>qT,NWCWalletResponse:()=>VT,NormalVideo:()=>JR,NostrConnect:()=>WT,OpenTimestamps:()=>sT,Photo:()=>XR,Pinlist:()=>RT,Poll:()=>aT,PollResponse:()=>kT,PrivateDirectMessage:()=>ZR,ProblemTracker:()=>pT,ProfileBadges:()=>JT,PublicChatsList:()=>PT,Reaction:()=>qR,RecommendRelay:()=>DR,RelayList:()=>TT,RelayReview:()=>gL,Relaysets:()=>KT,Report:()=>fT,Reporting:()=>gT,Repost:()=>$R,Seal:()=>GR,SearchRelaysList:()=>AT,ShortTextNote:()=>zR,ShortVideo:()=>QR,Time:()=>dL,UserEmojiList:()=>FT,UserStatuses:()=>lL,Voice:()=>hT,VoiceComment:()=>dT,Zap:()=>CT,ZapGoal:()=>_T,ZapRequest:()=>xT,classifyKind:()=>OR,isAddressableKind:()=>AR,isEphemeralKind:()=>MR,isKind:()=>NR,isRegularKind:()=>IR,isReplaceableKind:()=>PR});var FR=0,zR=1,DR=2,jR=3,UR=4,BR=5,$R=6,qR=7,VR=8,WR=9,HR=11,GR=13,ZR=14,KR=15,YR=16,XR=20,JR=21,QR=22,tT=40,eT=41,nT=42,rT=43,iT=44,sT=1040,oT=1059,aT=1068,lT=1063,cT=1111,uT=1311,hT=1222,dT=1244,pT=1971,fT=1984,gT=1984,mT=1985,yT=4550,vT=5999,bT=6999,wT=7e3,_T=9041,xT=9734,CT=9735,ST=9802,kT=1018,ET=1e4,RT=10001,TT=10002,LT=10003,IT=10004,PT=10005,MT=10006,AT=10007,OT=10012,NT=10015,FT=10030,zT=10050,DT=10096,jT=10063,UT=13194,BT=21e3,$T=22242,qT=23194,VT=23195,WT=24133,HT=27235,GT=3e4,ZT=30001,KT=30002,YT=30003,XT=30004,JT=30008,QT=30009,tL=30015,eL=30017,nL=30018,rL=30023,iL=30024,sL=30030,oL=30078,aL=30311,lL=30315,cL=30402,uL=30403,hL=31922,dL=31923,pL=31924,fL=31925,gL=31987,mL=31989,yL=31990,vL=34550,bL=39e3;function wL(t,e){let n=e.length+3,r=t.indexOf(`"${e}":`)+n,i=t.slice(r).indexOf('"')+r+1;return t.slice(i,i+64)}function _L(t,e){let n=e.length,r=t.indexOf(`"${e}":`)+n+3,i=t.slice(r),s=Math.min(i.indexOf(","),i.indexOf("}"));return parseInt(i.slice(0,s),10)}function xL(t){let e=t.slice(0,22).indexOf('"EVENT"');if(-1===e)return null;let n=t.slice(e+7+1).indexOf('"');if(-1===n)return null;let r=e+7+1+n,i=t.slice(r+1,80).indexOf('"');if(-1===i)return null;let s=r+1+i;return t.slice(r+1,s)}function CL(t,e){return e===wL(t,"id")}function SL(t,e){return e===wL(t,"pubkey")}function kL(t,e){return e===_L(t,"kind")}function EL(t,e){return{kind:$T,created_at:Math.floor(Date.now()/1e3),tags:[["relay",t],["challenge",e]],content:""}}dR({},{getHex64:()=>wL,getInt:()=>_L,getSubscriptionId:()=>xL,matchEventId:()=>CL,matchEventKind:()=>kL,matchEventPubkey:()=>SL}),dR({},{makeAuthEvent:()=>EL});try{WebSocket}catch{}try{WebSocket}catch{}dR({},{BECH32_REGEX:()=>LL,Bech32MaxSize:()=>TL,NostrTypeGuard:()=>RL,decode:()=>PL,decodeNostrURI:()=>IL,encodeBytes:()=>zL,naddrEncode:()=>UL,neventEncode:()=>jL,noteEncode:()=>NL,nprofileEncode:()=>DL,npubEncode:()=>OL,nsecEncode:()=>AL});var RL={isNProfile:t=>/^nprofile1[a-z\d]+$/.test(t||""),isNEvent:t=>/^nevent1[a-z\d]+$/.test(t||""),isNAddr:t=>/^naddr1[a-z\d]+$/.test(t||""),isNSec:t=>/^nsec1[a-z\d]{58}$/.test(t||""),isNPub:t=>/^npub1[a-z\d]{58}$/.test(t||""),isNote:t=>/^note1[a-z\d]+$/.test(t||""),isNcryptsec:t=>/^ncryptsec1[a-z\d]+$/.test(t||"")},TL=5e3,LL=/[\x21-\x7E]{1,83}1[023456789acdefghjklmnpqrstuvwxyz]{6,}/;function IL(t){try{return t.startsWith("nostr:")&&(t=t.substring(6)),PL(t)}catch(e){return{type:"invalid",data:null}}}function PL(t){let{prefix:e,words:n}=rk.decode(t,TL),r=new Uint8Array(rk.fromWords(n));switch(e){case"nprofile":{let t=ML(r);if(!t[0]?.[0])throw new Error("missing TLV 0 for nprofile");if(32!==t[0][0].length)throw new Error("TLV 0 should be 32 bytes");return{type:"nprofile",data:{pubkey:IS(t[0][0]),relays:t[1]?t[1].map(t=>gR.decode(t)):[]}}}case"nevent":{let t=ML(r);if(!t[0]?.[0])throw new Error("missing TLV 0 for nevent");if(32!==t[0][0].length)throw new Error("TLV 0 should be 32 bytes");if(t[2]&&32!==t[2][0].length)throw new Error("TLV 2 should be 32 bytes");if(t[3]&&4!==t[3][0].length)throw new Error("TLV 3 should be 4 bytes");return{type:"nevent",data:{id:IS(t[0][0]),relays:t[1]?t[1].map(t=>gR.decode(t)):[],author:t[2]?.[0]?IS(t[2][0]):void 0,kind:t[3]?.[0]?parseInt(IS(t[3][0]),16):void 0}}}case"naddr":{let t=ML(r);if(!t[0]?.[0])throw new Error("missing TLV 0 for naddr");if(!t[2]?.[0])throw new Error("missing TLV 2 for naddr");if(32!==t[2][0].length)throw new Error("TLV 2 should be 32 bytes");if(!t[3]?.[0])throw new Error("missing TLV 3 for naddr");if(4!==t[3][0].length)throw new Error("TLV 3 should be 4 bytes");return{type:"naddr",data:{identifier:gR.decode(t[0][0]),pubkey:IS(t[2][0]),kind:parseInt(IS(t[3][0]),16),relays:t[1]?t[1].map(t=>gR.decode(t)):[]}}}case"nsec":return{type:e,data:r};case"npub":case"note":return{type:e,data:IS(r)};default:throw new Error(`unknown prefix ${e}`)}}function ML(t){let e={},n=t;for(;n.length>0;){let t=n[0],r=n[1],i=n.slice(2,2+r);if(n=n.slice(2+r),i.lengthmR.encode(t))}))}function jL(t){let e;return void 0!==t.kind&&(e=function(t){const e=new Uint8Array(4);return e[0]=t>>24&255,e[1]=t>>16&255,e[2]=t>>8&255,e[3]=255&t,e}(t.kind)),FL("nevent",BL({0:[PS(t.id)],1:(t.relays||[]).map(t=>mR.encode(t)),2:t.author?[PS(t.author)]:[],3:e?[new Uint8Array(e)]:[]}))}function UL(t){let e=new ArrayBuffer(4);return new DataView(e).setUint32(0,t.kind,!1),FL("naddr",BL({0:[mR.encode(t.identifier)],1:(t.relays||[]).map(t=>mR.encode(t)),2:[PS(t.pubkey)],3:[new Uint8Array(e)]}))}function BL(t){let e=[];return Object.entries(t).reverse().forEach(([t,n])=>{n.forEach(n=>{let r=new Uint8Array(n.length+2);r.set([parseInt(t)],0),r.set([n.length],1),r.set(n,2),e.push(r)})}),AS(...e)}var $L={};function qL(t,e,n){const r=t instanceof Uint8Array?IS(t):t,i=WL(lS.getSharedSecret(r,"02"+e));let s=Uint8Array.from(FS(16)),o=mR.encode(n),a=zE(i,s).encrypt(o);return`${HS.encode(new Uint8Array(a))}?iv=${HS.encode(new Uint8Array(s.buffer))}`}function VL(t,e,n){const r=t instanceof Uint8Array?IS(t):t;let[i,s]=n.split("?iv="),o=WL(lS.getSharedSecret(r,"02"+e)),a=HS.decode(s),l=HS.decode(i),c=zE(o,a).decrypt(l);return gR.decode(c)}function WL(t){return t.slice(1,33)}dR($L,{decrypt:()=>VL,encrypt:()=>qL}),dR({},{NIP05_REGEX:()=>GL,isNip05:()=>ZL,isValid:()=>JL,queryProfile:()=>XL,searchDomain:()=>YL,useFetchImplementation:()=>KL});var HL,GL=/^(?:([\w.+-]+)@)?([\w_-]+(\.[\w_-]+)+)$/,ZL=t=>GL.test(t||"");try{HL=fetch}catch(Snt){}function KL(t){HL=t}async function YL(t,e=""){try{const n=`https://${t}/.well-known/nostr.json?name=${e}`,r=await HL(n,{redirect:"manual"});if(200!==r.status)throw Error("Wrong response code");return(await r.json()).names}catch(Snt){return{}}}async function XL(t){const e=t.match(GL);if(!e)return null;const[,n="_",r]=e;try{const t=`https://${r}/.well-known/nostr.json?name=${n}`,e=await HL(t,{redirect:"manual"});if(200!==e.status)throw Error("Wrong response code");const i=await e.json(),s=i.names[n];return s?{pubkey:s,relays:i.relays?.[s]}:null}catch(i){return null}}async function JL(t,e){const n=await XL(e);return!!n&&n.pubkey===t}function QL(t){const e={reply:void 0,root:void 0,mentions:[],profiles:[],quotes:[]};let n,r;for(let i=t.tags.length-1;i>=0;i--){const s=t.tags[i];if("e"===s[0]&&s[1]){const[t,i,o,a,l]=s,c={id:i,relays:o?[o]:[],author:l};if("root"===a){e.root=c;continue}if("reply"===a){e.reply=c;continue}if("mention"===a){e.mentions.push(c);continue}n?r=c:n=c,e.mentions.push(c);continue}if("q"===s[0]&&s[1]){const[t,n,r]=s;e.quotes.push({id:n,relays:r?[r]:[]})}"p"===s[0]&&s[1]&&e.profiles.push({pubkey:s[1],relays:s[2]?[s[2]]:[]})}return e.root||(e.root=r||n||e.reply),e.reply||(e.reply=n||e.root),[e.reply,e.root].forEach(t=>{if(!t)return;let n=e.mentions.indexOf(t);if(-1!==n&&e.mentions.splice(n,1),t.author){let n=e.profiles.find(e=>e.pubkey===t.author);n&&n.relays&&(t.relays||(t.relays=[]),n.relays.forEach(e=>{-1===t.relays?.indexOf(e)&&t.relays.push(e)}),n.relays=t.relays)}}),e.mentions.forEach(t=>{if(t.author){let n=e.profiles.find(e=>e.pubkey===t.author);n&&n.relays&&(t.relays||(t.relays=[]),n.relays.forEach(e=>{-1===t.relays.indexOf(e)&&t.relays.push(e)}),n.relays=t.relays)}}),e}function tI(){}async function eI(t){return await(await fetch(t.replace("ws://","http://").replace("wss://","https://"),{headers:{Accept:"application/nostr+json"}})).json()}function nI(t){let e=0;for(let n=0;n<64;n+=8){const r=parseInt(t.substring(n,n+8),16);if(0!==r){e+=Math.clz32(r);break}e+=32}return e}function rI(t,e){let n=0;const r=t,i=["nonce",n.toString(),e.toString()];for(r.tags.push(i);;){const t=Math.floor((new Date).getTime()/1e3);if(t!==r.created_at&&(n=0,r.created_at=t),i[1]=(++n).toString(),r.id=iI(r),nI(r.id)>=e)break}return r}function iI(t){return IS(xk(mR.encode(JSON.stringify([0,t.pubkey,t.created_at,t.kind,t.tags,t.content]))))}dR({},{parse:()=>QL}),dR({},{fetchRelayInformation:()=>eI,useFetchImplementation:()=>tI}),dR({},{fastEventHash:()=>iI,getPow:()=>nI,minePow:()=>rI}),dR({},{unwrapEvent:()=>LI,unwrapManyEvents:()=>II,wrapEvent:()=>RI,wrapManyEvents:()=>TI}),dR({},{createRumor:()=>wI,createSeal:()=>_I,createWrap:()=>xI,unwrapEvent:()=>kI,unwrapManyEvents:()=>EI,wrapEvent:()=>CI,wrapManyEvents:()=>SI});var sI={};dR(sI,{decrypt:()=>pI,encrypt:()=>dI,getConversationKey:()=>lI,v2:()=>fI});var oI=1,aI=65535;function lI(t,e){const n=lS.getSharedSecret(t,"02"+e).subarray(1,33);return r=xk,i=n,s="nip44-v2",pk.hash(r),void 0===s&&(s=new Uint8Array(r.outputLen)),lR(r,MS(s),MS(i));var r,i,s}function cI(t,e){const n=function(t,e,n,r=32){if(pk.hash(t),pk.number(r),r>255*t.outputLen)throw new Error("Length should be <= 255*HashLen");const i=Math.ceil(r/t.outputLen);void 0===n&&(n=uR);const s=new Uint8Array(i*t.outputLen),o=lR.create(t,e),a=o._cloneInto(),l=new Uint8Array(o.outputLen);for(let c=0;caI)throw new Error("invalid plaintext size: must be between 1 and 65535 bytes");const e=new Uint8Array(2);return new DataView(e.buffer).setUint16(0,t,!1),e}(n),e,new Uint8Array(uI(n)-n))}(t),a=tR(r,i,o),l=hI(s,a,n);return HS.encode(AS(new Uint8Array([2]),n,a,l))}function pI(t,e){const{nonce:n,ciphertext:r,mac:i}=function(t){if("string"!=typeof t)throw new Error("payload must be a valid string");const e=t.length;if(e<132||e>87472)throw new Error("invalid payload length: "+e);if("#"===t[0])throw new Error("unknown encryption version");let n;try{n=HS.decode(t)}catch(d8){throw new Error("invalid base64: "+d8.message)}const r=n.length;if(r<99||r>65603)throw new Error("invalid data length: "+r);const i=n[0];if(2!==i)throw new Error("unknown encryption version "+i);return{nonce:n.subarray(1,33),ciphertext:n.subarray(33,-32),mac:n.subarray(-32)}}(t),{chacha_key:s,chacha_nonce:o,hmac_key:a}=cI(e,n);if(!tE(hI(a,r,n),i))throw new Error("invalid MAC");return function(t){const e=new DataView(t.buffer).getUint16(0),n=t.subarray(2,2+e);if(eaI||n.length!==e||t.length!==2+uI(e))throw new Error("invalid padding");return gR.decode(n)}(tR(s,o,r))}var fI={utils:{getConversationKey:lI,calcPaddedLen:uI},encrypt:dI,decrypt:pI},gI=()=>Math.round(Date.now()/1e3),mI=()=>Math.round(gI()-172800*Math.random()),yI=(t,e)=>lI(t,e),vI=(t,e,n)=>dI(JSON.stringify(t),yI(e,n)),bI=(t,e)=>JSON.parse(pI(t.content,yI(e,t.pubkey)));function wI(t,e){const n={created_at:gI(),content:"",tags:[],...t,pubkey:ER(e)};return n.id=CR(n),n}function _I(t,e,n){return RR({kind:GR,content:vI(t,e,n),created_at:mI(),tags:[]},e)}function xI(t,e){const n=kR();return RR({kind:oT,content:vI(t,n,e),created_at:mI(),tags:[["p",e]]},n)}function CI(t,e,n){return xI(_I(wI(t,e),e,n),n)}function SI(t,e,n){if(!n||0===n.length)throw new Error("At least one recipient is required.");const r=[CI(t,e,ER(e))];return n.forEach(n=>{r.push(CI(t,e,n))}),r}function kI(t,e){return bI(bI(t,e),e)}function EI(t,e){let n=[];return t.forEach(t=>{n.push(kI(t,e))}),n.sort((t,e)=>t.created_at-e.created_at),n}function RI(t,e,n,r,i){return CI(function(t,e,n,r){const i={created_at:Math.ceil(Date.now()/1e3),kind:ZR,tags:[],content:e};return(Array.isArray(t)?t:[t]).forEach(({publicKey:t,relayUrl:e})=>{i.tags.push(e?["p",t,e]:["p",t])}),r&&i.tags.push(["e",r.eventId,r.relayUrl||"","reply"]),n&&i.tags.push(["subject",n]),i}(e,n,r,i),t,e.publicKey)}function TI(t,e,n,r,i){if(!e||0===e.length)throw new Error("At least one recipient is required.");return[{publicKey:ER(t)},...e].map(e=>RI(t,e,n,r,i))}var LI=kI,II=EI;function PI(t,e,n,r){let i;const s=[...t.tags??[],["e",e.id,n],["p",e.pubkey]];return e.kind===zR?i=$R:(i=YR,s.push(["k",String(e.kind)])),RR({kind:i,tags:s,content:""===t.content||e.tags?.find(t=>"-"===t[0])?"":JSON.stringify(e),created_at:t.created_at},r)}function MI(t){if(![$R,YR].includes(t.kind))return;let e,n;for(let r=t.tags.length-1;r>=0&&(void 0===e||void 0===n);r--){const i=t.tags[r];i.length>=2&&("e"===i[0]&&void 0===e?e=i:"p"===i[0]&&void 0===n&&(n=i))}return void 0!==e?{id:e[1],relays:[e[2],n?.[2]].filter(t=>"string"==typeof t),author:n?.[1]}:void 0}function AI(t,{skipVerification:e}={}){const n=MI(t);if(void 0===n||""===t.content)return;let r;try{r=JSON.parse(t.content)}catch(d8){return}return r.id===n.id&&(e||TR(r))?r:void 0}dR({},{finishRepostEvent:()=>PI,getRepostedEvent:()=>AI,getRepostedEventPointer:()=>MI}),dR({},{NOSTR_URI_REGEX:()=>OI,parse:()=>FI,test:()=>NI});var OI=new RegExp(`nostr:(${LL.source})`);function NI(t){return"string"==typeof t&&new RegExp(`^${OI.source}$`).test(t)}function FI(t){const e=t.match(new RegExp(`^${OI.source}$`));if(!e)throw new Error(`Invalid Nostr URI: ${t}`);return{uri:e[0],value:e[1],decoded:PL(e[1])}}function zI(t,e,n){const r=e.tags.filter(t=>t.length>=2&&("e"===t[0]||"p"===t[0]));return RR({...t,kind:qR,tags:[...t.tags??[],...r,["e",e.id],["p",e.pubkey]],content:t.content??"+"},n)}function DI(t){if(t.kind!==qR)return;let e,n;for(let r=t.tags.length-1;r>=0&&(void 0===e||void 0===n);r--){const i=t.tags[r];i.length>=2&&("e"===i[0]&&void 0===e?e=i:"p"===i[0]&&void 0===n&&(n=i))}return void 0!==e&&void 0!==n?{id:e[1],relays:[e[2],n[2]].filter(t=>void 0!==t),author:n[1]}:void 0}dR({},{finishReactionEvent:()=>zI,getReactedEventPointer:()=>DI}),dR({},{parse:()=>$I});var jI=/\W/m,UI=/[^\w\/] |[^\w\/]$|$|,| /m,BI=42;function*$I(t){let e=[];if("string"!=typeof t){for(let n=0;n=3&&e.push({type:"emoji",shortcode:r[1],url:r[2]})}t=t.content}const n=t.length;let r=0,i=0;t:for(;i=0&&aqI,channelHideMessageEvent:()=>HI,channelMessageEvent:()=>WI,channelMetadataEvent:()=>VI,channelMuteUserEvent:()=>GI});var qI=(t,e)=>{let n;if("object"==typeof t.content)n=JSON.stringify(t.content);else{if("string"!=typeof t.content)return;n=t.content}return RR({kind:tT,tags:[...t.tags??[]],content:n,created_at:t.created_at},e)},VI=(t,e)=>{let n;if("object"==typeof t.content)n=JSON.stringify(t.content);else{if("string"!=typeof t.content)return;n=t.content}return RR({kind:eT,tags:[["e",t.channel_create_event_id],...t.tags??[]],content:n,created_at:t.created_at},e)},WI=(t,e)=>{const n=[["e",t.channel_create_event_id,t.relay_url,"root"]];return t.reply_to_channel_message_event_id&&n.push(["e",t.reply_to_channel_message_event_id,t.relay_url,"reply"]),RR({kind:nT,tags:[...n,...t.tags??[]],content:t.content,created_at:t.created_at},e)},HI=(t,e)=>{let n;if("object"==typeof t.content)n=JSON.stringify(t.content);else{if("string"!=typeof t.content)return;n=t.content}return RR({kind:rT,tags:[["e",t.channel_message_event_id],...t.tags??[]],content:n,created_at:t.created_at},e)},GI=(t,e)=>{let n;if("object"==typeof t.content)n=JSON.stringify(t.content);else{if("string"!=typeof t.content)return;n=t.content}return RR({kind:iT,tags:[["p",t.pubkey_to_mute],...t.tags??[]],content:n,created_at:t.created_at},e)};dR({},{EMOJI_SHORTCODE_REGEX:()=>YI,matchAll:()=>JI,regex:()=>XI,replaceAll:()=>QI});var ZI,KI,YI=/:(\w+):/,XI=()=>new RegExp(`\\B${YI.source}\\B`,"g");function*JI(t){const e=t.matchAll(XI());for(const r of e)try{const[t,e]=r;yield{shortcode:t,name:e,start:r.index,end:r.index+t.length}}catch(n){}}function QI(t,e){return t.replaceAll(XI(),(t,n)=>e({shortcode:t,name:n}))}dR({},{useFetchImplementation:()=>tP,validateGithub:()=>eP});try{ZI=fetch}catch{}function tP(t){ZI=t}async function eP(t,e,n){try{return await(await ZI(`https://gist.github.com/${e}/${n}/raw`)).text()===`Verifying that I control the following Nostr public key: ${t}`}catch(Snt){return!1}}function nP(t){const{host:e,pathname:n,searchParams:r}=new URL(t),i=n||e,s=r.get("relay"),o=r.get("secret");if(!i||!s||!o)throw new Error("invalid connection string");return{pubkey:i,relay:s,secret:o}}async function rP(t,e,n){const r=qL(e,t,JSON.stringify({method:"pay_invoice",params:{invoice:n}}));return RR({kind:qT,created_at:Math.round(Date.now()/1e3),content:r,tags:[["p",t]]},e)}function iP(t){return t=(t=t.trim().toLowerCase()).normalize("NFKC"),Array.from(t).map(t=>/\p{Letter}/u.test(t)||/\p{Number}/u.test(t)?t:"-").join("")}dR({},{makeNwcRequestEvent:()=>rP,parseConnectionString:()=>nP}),dR({},{normalizeIdentifier:()=>iP}),dR({},{getSatoshisAmountFromBolt11:()=>uP,getZapEndpoint:()=>oP,makeZapReceipt:()=>cP,makeZapRequest:()=>aP,useFetchImplementation:()=>sP,validateZapRequest:()=>lP});try{KI=fetch}catch{}function sP(t){KI=t}async function oP(t){try{let e="",{lud06:n,lud16:r}=JSON.parse(t.content);if(r){let[t,n]=r.split("@");e=new URL(`/.well-known/lnurlp/${t}`,`https://${n}`).toString()}else{if(!n)return null;{let{words:t}=rk.decode(n,1e3),r=rk.fromWords(t);e=gR.decode(r)}}let i=await(await KI(e)).json();if(i.allowsNostr&&i.nostrPubkey)return i.callback}catch(nD){}return null}function aP(t){let e={kind:9734,created_at:Math.round(Date.now()/1e3),content:t.comment||"",tags:[["p","pubkey"in t?t.pubkey:t.event.pubkey],["amount",t.amount.toString()],["relays",...t.relays]]};if("event"in t){if(e.tags.push(["e",t.event.id]),PR(t.event.kind)){const n=["a",`${t.event.kind}:${t.event.pubkey}:`];e.tags.push(n)}else if(AR(t.event.kind)){let n=t.event.tags.find(([t,e])=>"d"===t&&e);if(!n)throw new Error("d tag not found or is empty");const r=["a",`${t.event.kind}:${t.event.pubkey}:${n[1]}`];e.tags.push(r)}e.tags.push(["k",t.event.kind.toString()])}return e}function lP(t){let e;try{e=JSON.parse(t)}catch(nD){return"Invalid zap request JSON."}if(!fR(e))return"Zap request is not a valid Nostr event.";if(!TR(e))return"Invalid signature on zap request.";let n=e.tags.find(([t,e])=>"p"===t&&e);if(!n)return"Zap request doesn't have a 'p' tag.";if(!n[1].match(/^[a-f0-9]{64}$/))return"Zap request 'p' tag is not valid hex.";let r=e.tags.find(([t,e])=>"e"===t&&e);return r&&!r[1].match(/^[a-f0-9]{64}$/)?"Zap request 'e' tag is not valid hex.":e.tags.find(([t,e])=>"relays"===t&&e)?null:"Zap request doesn't have a 'relays' tag."}function cP({zapRequest:t,preimage:e,bolt11:n,paidAt:r}){let i=JSON.parse(t),s=i.tags.filter(([t])=>"e"===t||"p"===t||"a"===t),o={kind:9735,created_at:Math.round(r.getTime()/1e3),content:"",tags:[...s,["P",i.pubkey],["bolt11",n],["description",t]]};return e&&o.tags.push(["preimage",e]),o}function uP(t){if(t.length<50)return 0;const e=(t=t.substring(0,50)).lastIndexOf("1");if(-1===e)return 0;const n=t.substring(0,e);if(!n.startsWith("lnbc"))return 0;const r=n.substring(4);if(r.length<1)return 0;const i=r[r.length-1],s=i.charCodeAt(0)-"0".charCodeAt(0),o=s>=0&&s<=9;let a=r.length-1;if(o&&a++,a<1)return 0;const l=parseInt(r.substring(0,a));switch(i){case"m":return 1e5*l;case"u":return 100*l;case"n":return l/10;case"p":return l/1e4;default:return 1e8*l}}dR({},{Negentropy:()=>vP,NegentropyStorageVector:()=>yP,NegentropySync:()=>_P});var hP=32,dP=class{_raw;length;constructor(t){"number"==typeof t?(this._raw=new Uint8Array(t),this.length=0):t instanceof Uint8Array?(this._raw=new Uint8Array(t),this.length=t.length):(this._raw=new Uint8Array(512),this.length=0)}unwrap(){return this._raw.subarray(0,this.length)}get capacity(){return this._raw.byteLength}extend(t){if(t instanceof dP&&(t=t.unwrap()),"number"!=typeof t.length)throw Error("bad length");const e=t.length+this.length;if(this.capacity>>=7;e.reverse();for(let n=0;n4294967295&&(n=1),r.setUint32(t,4294967295&o,!0),e=n,n=0}}negate(){let t=new DataView(this.buf.buffer);for(let n=0;n<8;n++){let e=4*n;t.setUint32(e,~t.getUint32(e,!0))}let e=new Uint8Array(hP);e[0]=1,this.add(e)}getFingerprint(t){let e=new dP;return e.extend(this.buf),e.extend(fP(t)),xk(e.unwrap()).subarray(0,16)}},yP=class{items;sealed;constructor(){this.items=[],this.sealed=!1}insert(t,e){if(this.sealed)throw Error("already sealed");const n=Jk(e);if(n.byteLength!==hP)throw Error("bad id size for added item");this.items.push({timestamp:t,id:n})}seal(){if(this.sealed)throw Error("already sealed");this.sealed=!0,this.items.sort(wP);for(let t=1;t=this.items.length)throw Error("out of range");return this.items[t]}iterate(t,e,n){this._checkSealed(),this._checkBounds(t,e);for(let r=t;rwP(t,n)<0)}fingerprint(t,e){let n=new mP;return n.setToZero(),this.iterate(t,e,t=>(n.add(t.id),!0)),n.getFingerprint(e-t)}_checkSealed(){if(!this.sealed)throw Error("not sealed")}_checkBounds(t,e){if(t>e||e>this.items.length)throw Error("bad range")}_binarySearch(t,e,n,r){let i=n-e;for(;i>0;){let n=e,s=Math.floor(i/2);n+=s,r(t[n])?(e=++n,i-=s+1):i=s}return e}},vP=class{storage;frameSizeLimit;lastTimestampIn;lastTimestampOut;constructor(t,e=6e4){if(e<4096)throw Error("frameSizeLimit too small");this.storage=t,this.frameSizeLimit=e,this.lastTimestampIn=0,this.lastTimestampOut=0}_bound(t,e){return{timestamp:t,id:e||new Uint8Array(0)}}initiate(){let t=new dP;return t.extend(new Uint8Array([97])),this.splitRange(0,this.storage.size(),this._bound(Number.MAX_VALUE),t),Yk(t.unwrap())}reconcile(t,e,n){const r=new dP(Jk(t));this.lastTimestampIn=this.lastTimestampOut=0;let i=new dP;i.extend(new Uint8Array([97]));let s=gP(r,1)[0];if(s<96||s>111)throw Error("invalid negentropy protocol version byte");if(97!==s)throw Error("unsupported negentropy protocol version requested: "+(s-96));let o=this.storage.size(),a=this._bound(0),l=0,c=!1;for(;0!==r.length;){let t=new dP,s=()=>{c&&(c=!1,t.extend(this.encodeBound(a)),t.extend(fP(0)))},u=this.decodeBound(r),h=pP(r),d=l,p=this.storage.findLowerBound(l,o,u);if(0===h)c=!0;else if(1===h)0!==bP(gP(r,16),this.storage.fingerprint(d,p))?(s(),this.splitRange(d,p,u,t)):c=!0;else{if(2!==h)throw Error("unexpected mode");{let t=pP(r),i={};for(let e=0;e{let n=t.id;const r=Yk(n);return i[r]?delete i[Yk(n)]:e?.(r),!0}),n)for(let e of Object.values(i))n(Yk(e))}}if(this.exceededFrameSizeLimit(i.length+t.length)){let t=this.storage.fingerprint(p,o);i.extend(this.encodeBound(this._bound(Number.MAX_VALUE))),i.extend(fP(1)),i.extend(t);break}i.extend(t),l=p,a=u}return 1===i.length?null:Yk(i.unwrap())}splitRange(t,e,n,r){let i=e-t;if(i<32)r.extend(this.encodeBound(n)),r.extend(fP(2)),r.extend(fP(i)),this.storage.iterate(t,e,t=>(r.extend(t.id),!0));else{let s=Math.floor(i/16),o=i%16,a=t;for(let t=0;t<16;t++){let i,l=s+(t(r===a-1?t=n:e=n,!0)),i=this.getMinimalBound(t,e)}r.extend(this.encodeBound(i)),r.extend(fP(1)),r.extend(c)}}}exceededFrameSizeLimit(t){return t>this.frameSizeLimit-200}decodeTimestampIn(t){let e=pP(t);return e=0===e?Number.MAX_VALUE:e-1,this.lastTimestampIn===Number.MAX_VALUE||e===Number.MAX_VALUE?(this.lastTimestampIn=Number.MAX_VALUE,Number.MAX_VALUE):(e+=this.lastTimestampIn,this.lastTimestampIn=e,e)}decodeBound(t){let e=this.decodeTimestampIn(t),n=pP(t);if(n>hP)throw Error("bound key too long");return{timestamp:e,id:gP(t,n)}}encodeTimestampOut(t){if(t===Number.MAX_VALUE)return this.lastTimestampOut=Number.MAX_VALUE,fP(0);let e=t;return t-=this.lastTimestampOut,this.lastTimestampOut=e,fP(t+1)}encodeBound(t){let e=new dP;return e.extend(this.encodeTimestampOut(t.timestamp)),e.extend(fP(t.id.length)),e.extend(t.id),e}getMinimalBound(t,e){if(e.timestamp!==t.timestamp)return this._bound(e.timestamp);{let n=0,r=e.id,i=t.id;for(let t=0;te[n])return 1}return t.byteLength>e.byteLength?1:t.byteLength{switch(t[0]){case"NEG-MSG":t.length<3&&console.warn(`got invalid NEG-MSG from ${this.relay.url}: ${t}`);try{const e=this.neg.reconcile(t[2],this.onhave,this.onneed);e?this.relay.send(`["NEG-MSG", "${this.subscription.id}", "${e}"]`):(this.close(),r.onclose?.())}catch(d8){console.error("negentropy reconcile error:",d8),r?.onclose?.(`reconcile error: ${d8}`)}break;case"NEG-CLOSE":{const e=t[2];console.warn("negentropy error:",e),r.onclose?.(e);break}case"NEG-ERR":r.onclose?.()}}}async start(){const t=this.neg.initiate();this.relay.send(`["NEG-OPEN","${this.subscription.id}",${JSON.stringify(this.filter)},"${t}"]`)}close(){this.relay.send(`["NEG-CLOSE","${this.subscription.id}"]`),this.subscription.close()}};dR({},{getToken:()=>CP,hashPayload:()=>IP,unpackEventFromToken:()=>kP,validateEvent:()=>MP,validateEventKind:()=>RP,validateEventMethodTag:()=>LP,validateEventPayloadTag:()=>PP,validateEventTimestamp:()=>EP,validateEventUrlTag:()=>TP,validateToken:()=>SP});var xP="Nostr ";async function CP(t,e,n,r=!1,i){const s={kind:HT,tags:[["u",t],["method",e]],created_at:Math.round((new Date).getTime()/1e3),content:""};i&&s.tags.push(["payload",IP(i)]);const o=await n(s);return(r?xP:"")+HS.encode(mR.encode(JSON.stringify(o)))}async function SP(t,e,n){return await MP(await kP(t).catch(t=>{throw t}),e,n).catch(t=>{throw t})}async function kP(t){if(!t)throw new Error("Missing token");t=t.replace(xP,"");const e=gR.decode(HS.decode(t));if(!e||0===e.length||!e.startsWith("{"))throw new Error("Invalid token");return JSON.parse(e)}function EP(t){return!!t.created_at&&Math.round((new Date).getTime()/1e3)-t.created_at<60}function RP(t){return t.kind===HT}function TP(t,e){const n=t.tags.find(t=>"u"===t[0]);return!!n&&n.length>0&&n[1]===e}function LP(t,e){const n=t.tags.find(t=>"method"===t[0]);return!!n&&n.length>0&&n[1].toLowerCase()===e.toLowerCase()}function IP(t){return IS(xk(mR.encode(JSON.stringify(t))))}function PP(t,e){const n=t.tags.find(t=>"payload"===t[0]);if(!n)return!1;const r=IP(e);return n.length>0&&n[1]===r}async function MP(t,e,n,r){if(!TR(t))throw new Error("Invalid nostr event, signature invalid");if(!RP(t))throw new Error("Invalid nostr event, kind invalid");if(!EP(t))throw new Error("Invalid nostr event, created_at timestamp invalid");if(!TP(t,e))throw new Error("Invalid nostr event, url tag invalid");if(!LP(t,n))throw new Error("Invalid nostr event, method tag invalid");if(Boolean(r)&&"object"==typeof r&&Object.keys(r).length>0&&!PP(t,r))throw new Error("Invalid nostr event, payload tag does not match request body hash");return!0}var AP=Symbol("verified");new TextDecoder("utf-8");var OP=new TextEncoder;function NP(t){return IS(xk(OP.encode(function(t){if(!function(t){if(!(t instanceof Object))return!1;if("number"!=typeof t.kind)return!1;if("string"!=typeof t.content)return!1;if("number"!=typeof t.created_at)return!1;if("string"!=typeof t.pubkey)return!1;if(!t.pubkey.match(/^[a-f0-9]{64}$/))return!1;if(!Array.isArray(t.tags))return!1;for(let e=0;ee.id===t.id?0:e.created_at===t.created_at?-1:t.created_at-e.created_at);return r||t.splice(n,0,e),t}function qP(t,e){let n=0,r=t.length-1;for(;n<=r;){const i=Math.floor((n+r)/2),s=e(t[i]);if(0===s)return[i,!0];s<0?r=i-1:n=i+1}return[n,!1]}new TextDecoder("utf-8"),new TextEncoder;var VP=Symbol.for("event-store"),WP=Symbol.for("event-uid"),HP=Symbol.for("replaceable-address"),GP=Symbol.for("from-cache"),ZP=Symbol.for("replaceable-identifier");function KP(t){return null!=t&&64===t.id?.length&&"string"==typeof t.sig&&"string"==typeof t.pubkey&&64===t.pubkey.length&&"string"==typeof t.content&&Array.isArray(t.tags)&&"number"==typeof t.created_at&&t.created_at>0}function YP(t){return Mx(t)||Ax(t)}function XP(t){return YP(t.kind)?BP(t,HP,()=>JP(t.kind,t.pubkey,tM(t))):null}function JP(t,e,n){return t+":"+e+":"+(n??"")}function QP(t){Reflect.set(t,GP,!0)}function tM(t){return BP(t,ZP,()=>t.tags.find(t=>"d"===t[0])?.[1]??"")}var eM=Symbol.for("encrypted-content"),nM={[LR.EncryptedDirectMessage]:"nip04",[LR.Seal]:"nip44",[LR.GiftWrap]:"nip44"};function rM(t,e){return nM[t]=e,t}function iM(t,e,n){const r=n??nM[t];if(!r)throw new Error(`Event kind ${t} does not support encrypted content`);const i=e[r];if(!i)throw new Error(`Signer does not support ${r} encryption`);return i}var sM=new Set([eM]);function oM(t){return t}function aM(...t){return cM(t.filter(t=>!!t),sM)}function lM(...t){return cM(t.filter(t=>!!t))}function cM(t,e){return 0===t.length?oM:async function(n){return t.reduce(async(t,n)=>{const r=await n(await t);if(e&&"object"==typeof r&&null!==r&&"object"==typeof t&&null!==t){const t=Reflect.ownKeys(r).filter(t=>"symbol"==typeof t);for(const n of t)e.has(n)||Reflect.deleteProperty(r,n)}return r},n)}}function uM(){return Math.round(Date.now()/1e3)}var hM=(t=21)=>{let e="",n=crypto.getRandomValues(new Uint8Array(t|=0));for(;t--;)e+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[63&n[t]];return e};function dM(t,e){return void 0!==t[0]&&void 0!==t[1]&&(!e||t[0]===e)}function pM(t){return dM(t,"e")}function fM(t){return dM(t,"p")}function gM(t){return dM(t,"r")}function mM(t){return dM(t,"a")}var yM=(t,...e)=>e.reduce((t,e)=>{const n=[];for(const r of t)try{const t=e(r);if(void 0===t)continue;n.push(t)}catch(d8){}return n},t);function vM(t,e=2){for(let n=(t=t.slice()).length-1;n>=0;n--)void 0!==t[n]&&null!==t[n]&&""!==t[n]||(n+1===t.length&&n>=e?t.pop():t[n]="");return t}jk();var bM=new TextDecoder("utf-8"),wM=(new TextEncoder,5e3);function _M(t){let e={},n=t;for(;n.length>0;){let t=n[0],r=n[1],i=n.slice(2,2+r);if(n=n.slice(2+r),i.length=8&&TM.test(t)}function IM(...t){const e=new Set;for(const n of t)if(n)if("string"==typeof n)try{e.add(EM(n))}catch(d8){}else if(Reflect.has(n,Symbol.iterator))for(const t of n)try{e.add(EM(t))}catch(d8){}return Array.from(e)}function PM(t){return!!t&&64===t.length&&!!t.toLowerCase().match(/^[0-9a-f]{64}$/)}function MM(t,e=!1){const n=t.split(":"),r=n[0]?parseInt(n[0]):void 0,i=n[1];if(void 0===r)return null;if(void 0===i||""===i||!PM(i))return null;const s=n.slice(2).join(":");return e&&""===s?null:{kind:r,pubkey:i,identifier:s}}function AM(t){const e=t[1];if(!e||!PM(e))return null;const n={id:e};return t[2]&&LM(t[2])&&(n.relays=[SM(t[2])]),n}function OM(t){if(!t[1])return null;const e=MM(t[1]);return e?(t[2]&&LM(t[2])&&(e.relays=[SM(t[2])]),e):null}function NM(t){const e=t[1];if(!e||!PM(e))return null;const n={pubkey:e};return t[2]&&LM(t[2])&&(n.relays=[SM(t[2])]),n}function FM(t){return"object"==typeof t&&null!==t&&"id"in t&&"string"==typeof t.id}function zM(t){return t.kind+":"+t.pubkey+":"+t.identifier}function DM(t,e){return FM(e)?t.id===e.id&&(!e.author||t.pubkey===e.author):t.kind===e.kind&&t.pubkey===e.pubkey&&tM(t)===(e.identifier??"")}function jM(t){return vM(["a",zM(t),t.relays?.[0]])}function UM(t){return vM(["e",t.id,t.relays?.[0]])}function BM(t){return vM(["p",t.pubkey,t.relays?.[0]])}var $M=eM,qM=iM,VM=new Set([rM(LR.DraftLong,"nip04")]);function WM(t,e){return VM.add(rM(t,e)),t}function HM(t){return function(t){return void 0!==nM[t]}(t)&&VM.has(t)}function GM(t){if(HM(t.kind))return $M in t?Reflect.get(t,$M):function(t){return Reflect.get(t,eM)}(t)}function ZM(t,e){if(!HM(t.kind))throw new Error("Event kind does not support hidden content");!function(t,e){Reflect.set(t,eM,e),function(t){if(!KP(t))return;const e=function(t){return Reflect.get(t,VP)}(t);e&&e.update(t)}(t)}(t,e)}var KM=Symbol.for("hidden-tags"),YM=new Set([WM(LR.BookmarkList,"nip04"),WM(LR.InterestsList,"nip04"),WM(LR.Mutelist,"nip04"),WM(LR.CommunitiesList,"nip04"),WM(LR.PublicChatsList,"nip04"),WM(LR.SearchRelaysList,"nip04"),WM(10009,"nip04"),WM(LR.Bookmarksets,"nip04"),WM(LR.Relaysets,"nip04"),WM(LR.Followsets,"nip04"),WM(LR.Curationsets,"nip04"),WM(LR.Interestsets,"nip04")]);function XM(t){return HM(t)&&YM.has(t)}function JM(t,e){return YM.add(WM(t,e)),t}function QM(t){return XM(t.kind)&&function(t){return HM(t.kind)&&function(t){return t.content.length>0}(t)}(t)}function tA(t){if(!XM(t.kind))return;if(KM in t)return t[KM];const e=GM(t);if(void 0===e)return;const n=JSON.parse(e);if(!Array.isArray(n))throw new Error("Content is not an array of tags");const r=n.filter(t=>Array.isArray(t)).map(t=>t.map(t=>String(t)));return Reflect.set(t,KM,r),r}var eA=Symbol.for("public-contacts"),nA=Symbol.for("hidden-contacts"),rA=function(t,e){return rA=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},rA(t,e)};function iA(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}rA(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var sA=function(){return sA=Object.assign||function(t){for(var e,n=1,r=arguments.length;n0&&i[i.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function lA(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var r,i,s=n.call(t),o=[];try{for(;(void 0===e||e-- >0)&&!(r=s.next()).done;)o.push(r.value)}catch(d8){i={error:d8}}finally{try{r&&!r.done&&(n=s.return)&&n.call(s)}finally{if(i)throw i.error}}return o}function cA(t,e,n){if(n||2===arguments.length)for(var r,i=0,s=e.length;i0},enumerable:!1,configurable:!0}),e.prototype._trySubscribe=function(e){return this._throwIfClosed(),t.prototype._trySubscribe.call(this,e)},e.prototype._subscribe=function(t){return this._throwIfClosed(),this._checkFinalizedStatuses(t),this._innerSubscribe(t)},e.prototype._innerSubscribe=function(t){var e=this,n=this,r=n.hasError,i=n.isStopped,s=n.observers;return r||i?mA:(this.currentObservers=null,s.push(t),new gA(function(){e.currentObservers=null,fA(s,t)}))},e.prototype._checkFinalizedStatuses=function(t){var e=this,n=e.hasError,r=e.thrownError,i=e.isStopped;n?t.error(r):i&&t.complete()},e.prototype.asObservable=function(){var t=new AA;return t.source=this,t},e.create=function(t,e){return new UA(t,e)},e}(AA),UA=function(t){function e(e,n){var r=t.call(this)||this;return r.destination=e,r.source=n,r}return iA(e,t),e.prototype.next=function(t){var e,n;null===(n=null===(e=this.destination)||void 0===e?void 0:e.next)||void 0===n||n.call(e,t)},e.prototype.error=function(t){var e,n;null===(n=null===(e=this.destination)||void 0===e?void 0:e.error)||void 0===n||n.call(e,t)},e.prototype.complete=function(){var t,e;null===(e=null===(t=this.destination)||void 0===t?void 0:t.complete)||void 0===e||e.call(t)},e.prototype._subscribe=function(t){var e,n;return null!==(n=null===(e=this.source)||void 0===e?void 0:e.subscribe(t))&&void 0!==n?n:mA},e}(jA),BA=function(t){function e(e){var n=t.call(this)||this;return n._value=e,n}return iA(e,t),Object.defineProperty(e.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),e.prototype._subscribe=function(e){var n=t.prototype._subscribe.call(this,e);return!n.closed&&e.next(this._value),n},e.prototype.getValue=function(){var t=this,e=t.hasError,n=t.thrownError,r=t._value;if(e)throw n;return this._throwIfClosed(),r},e.prototype.next=function(e){t.prototype.next.call(this,this._value=e)},e}(jA),$A={now:function(){return($A.delegate||Date).now()},delegate:void 0},qA=function(t){function e(e,n,r){void 0===e&&(e=1/0),void 0===n&&(n=1/0),void 0===r&&(r=$A);var i=t.call(this)||this;return i._bufferSize=e,i._windowTime=n,i._timestampProvider=r,i._buffer=[],i._infiniteTimeWindow=!0,i._infiniteTimeWindow=n===1/0,i._bufferSize=Math.max(1,e),i._windowTime=Math.max(1,n),i}return iA(e,t),e.prototype.next=function(e){var n=this,r=n.isStopped,i=n._buffer,s=n._infiniteTimeWindow,o=n._timestampProvider,a=n._windowTime;r||(i.push(e),!s&&i.push(o.now()+a)),this._trimBuffer(),t.prototype.next.call(this,e)},e.prototype._subscribe=function(t){this._throwIfClosed(),this._trimBuffer();for(var e=this._innerSubscribe(t),n=this._infiniteTimeWindow,r=this._buffer.slice(),i=0;i1||a(t,e)})},e&&(r[t]=e(r[t])))}function a(t,e){try{(n=i[t](e)).value instanceof uA?Promise.resolve(n.value.v).then(l,c):u(s[0][2],n)}catch(r){u(s[0][3],r)}var n}function l(t){a("next",t)}function c(t){a("throw",t)}function u(t,e){t(e),s.shift(),s.length&&a(s[0][0],s[0][1])}}(this,arguments)}function uO(t){return hA(null==t?void 0:t.getReader)}function hO(t){if(t instanceof AA)return t;if(null!=t){if(iO(t))return r=t,new AA(function(t){var e=r[PA]();if(hA(e.subscribe))return e.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")});if(nO(t))return function(t){return new AA(function(e){for(var n=0;n0&&h(i)},void 0,void 0,function(){(null==s?void 0:s.closed)||null==s||s.unsubscribe(),a=null})),!c&&h(null!=r?"number"==typeof r?r:+r-l.now():i)})}function RO(t){throw new kO(t)}function TO(t,e){return NA(function(n,r){var i=0;n.subscribe(FA(r,function(n){r.next(t.call(e,n,i++))}))})}var LO=Array.isArray,IO=Array.isArray,PO=Object.getPrototypeOf,MO=Object.prototype,AO=Object.keys;function OO(){for(var t=[],e=0;e=0?pO(n,s,c,o,!0):i=!0,c();var u=FA(n,function(t){var e,n,i=r.slice();try{for(var s=aA(i),o=s.next();!o.done;o=s.next()){var c=o.value,u=c.buffer;u.push(t),a<=u.length&&l(c)}}catch(h){e={error:h}}finally{try{o&&!o.done&&(n=s.return)&&n.call(s)}finally{if(e)throw e.error}}},function(){for(;null==r?void 0:r.length;)n.next(r.shift().buffer);null==u||u.unsubscribe(),n.complete(),n.unsubscribe()},void 0,function(){return r=null});e.subscribe(u)})}function GO(t){return NA(function(e,n){var r,i=null,s=!1;i=e.subscribe(FA(n,void 0,void 0,function(o){r=hO(t(o,GO(t)(e))),i?(i.unsubscribe(),i=null,r.subscribe(n)):s=!0})),s&&(i.unsubscribe(),i=null,r.subscribe(n))})}function ZO(t,e,n,r,i){return function(s,o){var a=n,l=e,c=0;s.subscribe(FA(o,function(e){var n=c++;l=a?t(l,e,n):(a=!0,e),r&&o.next(l)},i&&function(){a&&o.next(l),o.complete()}))}}var KO=function(t,e){return t.push(e),t},YO={connector:function(){return new jA}};function XO(t,e){void 0===e&&(e=YO);var n=e.connector;return NA(function(e,r){var i,s=n();hO(t((i=s,new AA(function(t){return i.subscribe(t)})))).subscribe(r),r.add(e.subscribe(s))})}function JO(t){return t<=0?function(){return XA}:NA(function(e,n){var r=0;e.subscribe(FA(n,function(e){++r<=t&&(n.next(e),t<=r&&n.complete())}))})}function QO(){return NA(function(t,e){t.subscribe(FA(e,_A))})}function tN(t,e){return void 0===e&&(e=MA),t=null!=t?t:eN,NA(function(n,r){var i,s=!0;n.subscribe(FA(r,function(n){var o=e(n);!s&&t(i,o)||(s=!1,i=o,r.next(n))}))})}function eN(t,e){return t===e}function nN(){for(var t=[],e=0;e=2,!0))}function cN(t){void 0===t&&(t={});var e=t.connector,n=void 0===e?function(){return new jA}:e,r=t.resetOnError,i=void 0===r||r,s=t.resetOnComplete,o=void 0===s||s,a=t.resetOnRefCountZero,l=void 0===a||a;return function(t){var e,r,s,a=0,c=!1,u=!1,h=function(){null==r||r.unsubscribe(),r=void 0},d=function(){h(),e=s=void 0,c=u=!1},p=function(){var t=e;d(),null==t||t.unsubscribe()};return NA(function(t,f){a++,u||c||h();var g=s=null!=s?s:n();f.add(function(){0!==--a||u||c||(r=uN(p,l))}),g.subscribe(f),!e&&a>0&&(e=new RA({next:function(t){return g.next(t)},error:function(t){u=!0,h(),r=uN(d,i,t),g.error(t)},complete:function(){c=!0,h(),r=uN(d,o),g.complete()}}),hO(t).subscribe(e))})(t)}}function uN(t,e){for(var n=[],r=2;r{var n=1e3,r=60*n,i=60*r,s=24*i,o=7*s;function a(t,e,n,r){var i=e>=1.5*n;return Math.round(t/n)+" "+r+(i?"s":"")}e.exports=function(t,e){e=e||{};var l,c,u=typeof t;if("string"===u&&t.length>0)return function(t){if(!((t=String(t)).length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var a=parseFloat(e[1]);switch((e[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*a;case"weeks":case"week":case"w":return a*o;case"days":case"day":case"d":return a*s;case"hours":case"hour":case"hrs":case"hr":case"h":return a*i;case"minutes":case"minute":case"mins":case"min":case"m":return a*r;case"seconds":case"second":case"secs":case"sec":case"s":return a*n;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return a;default:return}}}}(t);if("number"===u&&isFinite(t))return e.long?(l=t,(c=Math.abs(l))>=s?a(l,c,s,"day"):c>=i?a(l,c,i,"hour"):c>=r?a(l,c,r,"minute"):c>=n?a(l,c,n,"second"):l+" ms"):function(t){var e=Math.abs(t);return e>=s?Math.round(t/s)+"d":e>=i?Math.round(t/i)+"h":e>=r?Math.round(t/r)+"m":e>=n?Math.round(t/n)+"s":t+"ms"}(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))}}),vN=o((t,e)=>{e.exports=function(t){function e(t){let r,i,s,o=null;function a(...t){if(!a.enabled)return;const n=a,i=Number(new Date);n.diff=i-(r||i),n.prev=r,n.curr=i,r=i,t[0]=e.coerce(t[0]),"string"!=typeof t[0]&&t.unshift("%O");let s=0;t[0]=t[0].replace(/%([a-zA-Z%])/g,(r,i)=>{if("%%"===r)return"%";s++;const o=e.formatters[i];if("function"==typeof o){const e=t[s];r=o.call(n,e),t.splice(s,1),s--}return r}),e.formatArgs.call(n,t),(n.log||e.log).apply(n,t)}return a.namespace=t,a.useColors=e.useColors(),a.color=e.selectColor(t),a.extend=n,a.destroy=e.destroy,Object.defineProperty(a,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==o?o:(i!==e.namespaces&&(i=e.namespaces,s=e.enabled(t)),s),set:t=>{o=t}}),"function"==typeof e.init&&e.init(a),a}function n(t,n){const r=e(this.namespace+(void 0===n?":":n)+t);return r.log=this.log,r}function r(t,e){let n=0,r=0,i=-1,s=0;for(;n"-"+t)].join(",");return e.enable(""),t},e.enable=function(t){e.save(t),e.namespaces=t,e.names=[],e.skips=[];const n=("string"==typeof t?t:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(const r of n)"-"===r[0]?e.skips.push(r.slice(1)):e.names.push(r)},e.enabled=function(t){for(const n of e.skips)if(r(t,n))return!1;for(const n of e.names)if(r(t,n))return!0;return!1},e.humanize=yN(),e.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(t).forEach(n=>{e[n]=t[n]}),e.names=[],e.skips=[],e.formatters={},e.selectColor=function(t){let n=0;for(let e=0;e{t.formatArgs=function(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!this.useColors)return;const n="color: "+this.color;t.splice(1,0,n,"color: inherit");let r=0,i=0;t[0].replace(/%[a-zA-Z%]/g,t=>{"%%"!==t&&(r++,"%c"===t&&(i=r))}),t.splice(i,0,n)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(d8){}},t.load=function(){let e;try{e=t.storage.getItem("debug")||t.storage.getItem("DEBUG")}catch(d8){}return!e&&"undefined"!=typeof process&&"env"in process&&(e={}.DEBUG),e},t.useColors=function(){if("undefined"!=typeof window&&window.process&&("renderer"===window.process.type||window.process.__nwjs))return!0;if("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let t;return"undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&(t=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(t[1],10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},t.storage=function(){try{return localStorage}catch(d8){}}(),t.destroy=(()=>{let t=!1;return()=>{t||(t=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.log=console.debug||console.log||(()=>{}),e.exports=vN()(t);var{formatters:n}=e.exports;n.j=function(t){try{return JSON.stringify(t)}catch(d8){return"[UnexpectedJSONParseError]: "+d8.message}}}),wN=c(bN(),1),_N=(0,wN.default)("applesauce"),xN=_N.extend("event-cache"),CN=Symbol("expiration-timestamp");function SN(t){return BP(t,CN,()=>{const e=t.tags.find(t=>"expiration"===t[0])?.[1];return e?parseInt(e):void 0})}var kN=o((t,e)=>{e.exports=function t(e,n){if(e===n)return!0;if(e&&n&&"object"==typeof e&&"object"==typeof n){if(e.constructor!==n.constructor)return!1;var r,i,s;if(Array.isArray(e)){if((r=e.length)!=n.length)return!1;for(i=r;0!==i--;)if(!t(e[i],n[i]))return!1;return!0}if(e.constructor===RegExp)return e.source===n.source&&e.flags===n.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===n.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===n.toString();if((r=(s=Object.keys(e)).length)!==Object.keys(n).length)return!1;for(i=r;0!==i--;)if(!Object.prototype.hasOwnProperty.call(n,s[i]))return!1;for(i=r;0!==i--;){var o=s[i];if(!t(e[o],n[o]))return!1}return!0}return e!=e&&n!=n}}),EN=c(kN(),1),RN="abcdefghijklmnopqrstuvwxyz",TN=new Set((RN+RN.toUpperCase()).split("")),LN=Symbol.for("indexable-tags");function IN(t){let e=Reflect.get(t,LN);if(!e){const n=new Set;for(const e of t.tags)e.length>=2&&1===e[0].length&&TN.has(e[0])&&n.add(e[0]+":"+e[1]);e=n,Reflect.set(t,LN,n)}return e}function PN(t,e){if(t.ids&&-1===t.ids.indexOf(e.id))return!1;if(t.kinds&&-1===t.kinds.indexOf(e.kind))return!1;if(t.authors&&-1===t.authors.indexOf(e.pubkey))return!1;if(t.since&&e.created_att.until)return!1;for(let n in t)if("&"===n[0]){let r=n.slice(1),i=t[n];if(i&&i.length>0){const t=IN(e);for(const e of i)if(!t.has(r+":"+e))return!1}}for(let n in t)if("#"===n[0]){let r=n.slice(1),i=t[n];if(i){const n=t[`&${r}`],s=n?i.filter(t=>!n.includes(t)):i;if(0===s.length)continue;const o=IN(e);if(!1===s.some(t=>o.has(r+":"+t)))return!1}}return!0}function MN(t,e){for(let n=0;n[t,this.get(t)])}evict(t=!1){if(t||this.size>0){const t=this.first;delete this.items[t.key],0===--this.size?(this.first=null,this.last=null):(this.first=t.next,this.first.prev=null)}return this}expiresAt(t){let e;return this.has(t)&&(e=this.items[t].expiry),e}get(t){let e;if(this.has(t)){const n=this.items[t];this.ttl>0&&n.expiry<=Date.now()?this.delete(t):(e=n.value,this.set(t,e,!0))}return e}has(t){return t in this.items}keys(){const t=[];let e=this.first;for(;null!==e;)t.push(e.key),e=e.next;return t}set(t,e,n=!1,r=this.resetTtl){let i;if(n||this.has(t)){if(i=this.items[t],i.value=e,!1===n&&r&&(i.expiry=this.ttl>0?Date.now()+this.ttl:this.ttl),this.last!==i){const t=this.last,e=i.next,n=i.prev;this.first===i&&(this.first=i.next),i.next=null,i.prev=this.last,t.next=i,null!==n&&(n.next=e),null!==e&&(e.prev=n)}}else this.max>0&&this.size===this.max&&this.evict(!0),i=this.items[t]={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:t,prev:this.last,next:null,value:e},1===++this.size?this.first=i:this.last.next=i;return this.last=i,this}values(t=this.keys()){return t.map(t=>this.get(t))}},NN=Symbol.for("mailboxes-inboxes"),FN=Symbol.for("mailboxes-outboxes");function zN(t){return BP(t,NN,()=>{const e=[];for(const n of t.tags)if(gM(n))try{const[,t,r]=n;!t||!LM(t)||e.includes(t)||"read"!==r&&void 0!==r||e.push(SM(t))}catch{}return e})}function DN(t){return BP(t,FN,()=>{const e=[];for(const n of t.tags)if(gM(n))try{const[t,r,i]=n;"r"!==t||!LM(r)||e.includes(r)||"write"!==i&&void 0!==i||e.push(SM(r))}catch{}return e})}var jN=Symbol.for("profile-content");function UN(t){return BP(t,jN,()=>{const e=function(t){try{return JSON.parse(t)}catch(d8){return}}(t.content);if(e)return e.nip05&&"string"!=typeof e.nip05&&(e.nip05=String(e.nip05)),e.website&&e.website?.length>0&&!1===e.website?.startsWith("http")&&(e.website="https://"+e.website),e})}function BN(t){return!(!t||t.kind!==LR.Metadata&&t.kind!==LR.Handlerinformation||!UN(t))}function $N(t,e){return Object.fromEntries(Array.from(Object.entries(t)).map(([t,n])=>[t,{authors:n.map(t=>t.pubkey),...e}]))}function qN(t,e,n=!0){return async r=>{const i="string"==typeof t?{pubkey:t}:{...t};if(!i.relays?.[0]&&e){const t="string"==typeof e?e:await e(i.pubkey);t&&(i.relays=[t])}return n&&(r=r.filter(t=>!("p"===t[0]&&t[1]===i.pubkey))),[...r,BM(i)]}}function VN(t,e=!0){return n=>function(t,e,n=!0){const r=t.find(t=>t[0]===e[0]);return r?n?t.map(t=>t===r?e:t):t:[...t,e]}(n,t,e)}function WN(t,e=!0){return HN(VN(t,e))}function HN(...t){return async e=>({...e,tags:await lM(...t)(Array.from(e.tags))})}function GN(t,...e){return 0===(e=e.filter(t=>!!t)).length?t=>t:async n=>{if(!t)throw new Error("Missing signer for hidden tags");if(!XM(n.kind))throw new Error("Event kind does not support hidden tags");let r,i;if(QM(n)?(i=tA(n),void 0===i&&(QM(n)?(r=await t.getPublicKey(),i=await async function(t,e,n){if(!XM(t.kind))throw new Error("Event kind does not support hidden tags");if(function(t){if(!XM(t.kind))return!1;try{return KM in t||function(t){return!!HM(t.kind)&&function(t){return!0===Reflect.has(t,eM)}(t)&&!0===Reflect.has(t,$M)}(t)&&void 0!==tA(t)}catch{}return!1}(t))return t[KM];await async function(t,e,n){if(!HM(t.kind))throw new Error("Event kind does not support hidden content");if($M in t)return Reflect.get(t,$M);const r=await iM(t.kind,e,n).decrypt(t.pubkey,t.content);return ZM(t,r),r}(t,e,n);const r=tA(t);if(void 0===r)throw new Error("Failed to unlock hidden tags");return function(t,e){if(!XM(t.kind))throw new Error("Event kind does not support hidden tags");Reflect.set(t,KM,e),ZM(t,JSON.stringify(e))}(t,r),r}({...n,pubkey:r},t)):i=[])):i=[],void 0===i)throw new Error("Failed to find hidden tags");const s=await lM(...e)(i),o=function(t,e){return qM(t,e)}(n.kind,t);r||(r=await t.getPublicKey());const a=JSON.stringify(s),l=await o.encrypt(r,a);return{...n,content:l,[eM]:a}}}function ZN(t){return WN(["alt",t])}function KN(t){return WN(["expiration",t.toString()],!0)}function YN(t=!0){return HN(t?VN(["-"]):t=>t.filter(t=>!("-"===t[0])))}function XN(t){return async e=>{if(!t)throw new Error("Missing signer");Reflect.deleteProperty(e,"id"),Reflect.deleteProperty(e,"sig");const n=await t.getPublicKey(),r={...e,pubkey:n};return Reflect.has(e,eM)&&Reflect.set(r,eM,Reflect.get(e,eM)),r}}function JN(t){const e=Ax(t)?[["d",hM()]]:[];return{kind:t,created_at:uM(),tags:e,content:""}}var QN=class t extends Promise{static fromKind(e){return new t(t=>t({kind:e,created_at:uM(),tags:[],content:""}))}static fromEvent(e){return new t(t=>t(function(t){return{kind:t.kind,created_at:uM(),tags:Array.from(t.tags),content:t.content}}(e)))}_signerRef={};get signer(){return this._signerRef.signer}set signer(t){this._signerRef.signer=t}chain(t){const e=new(0,this.constructor)(e=>e(this.then(async e=>{const n=await t(e);for(const t of Reflect.ownKeys(n))"symbol"!=typeof t||sM.has(t)||Reflect.deleteProperty(n,t);return n})));return e._signerRef=this._signerRef,e}as(t){return this._signerRef.signer=t,this}strip(){return new t(t=>t(this.then(t=>({content:t.content,tags:t.tags,created_at:t.created_at,kind:t.kind}))))}stamp(e=this.signer){return new t((t,n)=>{if(!e)return n(new Error("Signer required for stamping"));t(this.then(t=>XN(e)(t)))})}async sign(t=this.signer){if(!t)throw new Error("Missing signer");this.signer||(this.signer=t);const e=await(this),n=await function(t){return async e=>{if(!t)throw new Error("Missing signer");const n=await XN(t)(e),r=await t.signEvent(n);if(Reflect.has(e,"pubkey")&&Reflect.get(e,"pubkey")!==r.pubkey)throw new Error("Signer modified pubkey");if(!Ox(r,e.kind))throw new Error("Signer modified event kind");return Reflect.has(e,eM)&&Reflect.set(r,eM,Reflect.get(e,eM)),r}}(t)(e);if(Reflect.has(e,"pubkey")&&Reflect.get(e,"pubkey")!==n.pubkey)throw new Error("Signer modified pubkey");if(Ox(n,e.kind))return n;throw new Error("Signer modified event kind")}kind(e){return new t(t=>({...t,kind:e}))}content(t){return this.chain(e=>({...e,content:t}))}created(t=uM()){return t instanceof Date&&(t=Math.floor(t.getTime()/1e3)),this.chain(e=>({...e,created_at:t}))}meta(t){return this.chain(function(t){return aM(t?.protected?YN(!0):t=>t,t?.expiration?KN(t.expiration):t=>t,t?.alt?ZN(t.alt):t=>t)}(t))}alt(t){return this.chain(ZN(t))}expiration(t){return this.chain(KN(t))}contentWarning(t){return this.chain(function(t){return e=>{let n=Array.from(e.tags);return n=n.filter(t=>"content-warning"!==t[0]),"string"==typeof t?n.push(["content-warning",t]):!0===t&&n.push(["content-warning"]),{...e,tags:n}}}(t))}protected(t){return this.chain(YN(t))}modifyTags(...t){let e;return e=this.chain(n=>function(t,e){let n=[],r=[];return void 0===t?n=r=[]:Array.isArray(t)?n=t:"function"==typeof t?n=[t]:("function"==typeof t.public?n=[t.public]:t.public&&(n=t.public),"function"==typeof t.hidden?r=[t.hidden]:t.hidden&&(r=t.hidden)),aM(n.length>0?HN(...n):void 0,r.length>0?GN(e,...r):void 0)}(t[0],e.signer)(n)),e}modifyPublicTags(...t){return this.chain(HN(...t))}modifyHiddenTags(...t){let e;return e=this.chain(n=>GN(e.signer,...t)(n)),e}encryptedContent(t,e,n){let r;return r=this.chain(i=>{const s=r.signer;if(!s)throw new Error("Signer required for encrypted content");return function(t,e,n,r){return async i=>{if(!n)throw new Error("Signer required for encrypted content");const s=await iM(i.kind,n,r).encrypt(t,e);return{...i,content:s,[eM]:e}}}(t,e,s,n)(i)}),r}},tF=o((t,e)=>{function n(t,e){var n,r;if(0===e.length)return t;for(n=0,r=e.length;nnull!==t).map(e=>(e.author=t.pubkey,e))}(t);if(r.length>0){let i=this.deletedIds.get(e);i||(i=new Set,this.deletedIds.set(e,i));for(const e of r){i.add(e.id);const r={pointer:e,until:t.created_at};n.push(r),this.deletedSubject.next(r)}}const i=function(t){return t.tags.filter(mM).map(OM).filter(t=>null!==t).filter(e=>e.pubkey===t.pubkey)}(t);if(i.length>0){let r=this.deletedIdentifiers.get(e);r||(r=new Map,this.deletedIdentifiers.set(e,r));for(const e of i){const i=e.kind+"|"+e.identifier;r.set(i,t.created_at);const s={pointer:e,until:t.created_at};n.push(s),this.deletedSubject.next(s)}}return n}check(t){const e=t.pubkey;if(Mx(t.kind)||Ax(t.kind)){const n=this.deletedIdentifiers.get(e);if(!n)return!1;const r=tM(t),i=t.kind+"|"+r,s=n.get(i);return void 0!==s&&s>=t.created_at}{const n=this.deletedIds.get(e);return!!n&&n.has(t.id)}}filter(t){return t.filter(t=>!1===this.check(t))}},rF=class{log=_N.extend("EventMemory");kinds=new Map;authors=new Map;tags=new ON;created_at=[];kindAuthor=new Map;events=new ON;replaceable=new Map;get size(){return this.events.size}hasEvent(t){return this.events.has(t)}getEvent(t){return this.events.get(t)}hasReplaceable(t,e,n){const r=this.replaceable.get(JP(t,e,n));return!!r&&r.length>0}getReplaceable(t,e,n){const r=JP(t,e,n);return this.replaceable.get(r)?.[0]}getReplaceableHistory(t,e,n){const r=JP(t,e,n);return this.replaceable.get(r)}getByFilters(t){return Array.from(this.getEventsForFilters(Array.isArray(t)?t:[t]))}getTimeline(t){const e=[],n=this.getByFilters(t);for(const r of n)$P(e,r);return e}add(t){const e=t.id,n=this.events.get(e);if(n)return n;this.events.set(e,t),this.getKindIndex(t.kind).add(t),this.getAuthorsIndex(t.pubkey).add(t),this.getKindAuthorIndex(t.kind,t.pubkey).add(t);for(const r of IN(t))this.tags.has(r)&&this.getTagIndex(r).add(t);if($P(this.created_at,t),YP(t.kind)){const e=t.tags.find(t=>"d"===t[0])?.[1],n=JP(t.kind,t.pubkey,e);let r=this.replaceable.get(n);this.replaceable.has(n)||(r=[],this.replaceable.set(n,r)),$P(r,t)}return t}remove(t){let e="string"==typeof t?this.events.get(t):t;if(!e)return!1;const n=e.id;if(!this.events.has(n))return!1;const r=this.authors.get(e.pubkey);r&&(r.delete(e),0===r.size&&this.authors.delete(e.pubkey));const i=this.kinds.get(e.kind);i&&(i.delete(e),0===i.size&&this.kinds.delete(e.kind));const s=`${e.kind}:${e.pubkey}`,o=this.kindAuthor.get(s);o&&(o.delete(e),0===o.size&&this.kindAuthor.delete(s));for(const a of IN(e))if(this.tags.has(a)){const t=this.getTagIndex(a);t.delete(e),0===t.size&&this.tags.delete(a)}if(this.removeFromSortedArray(this.created_at,e),this.events.delete(n),YP(e.kind)){const t=e.tags.find(t=>"d"===t[0])?.[1],n=JP(e.kind,e.pubkey,t),r=this.replaceable.get(n);r&&(this.removeFromSortedArray(r,e),0===r.length&&this.replaceable.delete(n))}return this.claims.delete(e),!0}removeByFilters(t){const e=this.getByFilters(t);let n=0;for(const r of e)this.remove(r)&&n++;return n}update(t){}claims=new WeakMap;touch(t){this.events.has(t.id)&&this.events.set(t.id,t)}claim(t){const e=this.claims.get(t)||0;this.claims.set(t,e+1),this.touch(t)}isClaimed(t){const e=this.claims.get(t);return void 0!==e&&e>0}removeClaim(t){const e=this.claims.get(t);if(void 0!==e&&e>0){const n=e-1;0===n?this.claims.delete(t):this.claims.set(t,n)}}clearClaim(t){this.claims.delete(t)}*unclaimed(){let t=this.events.first;for(;t;){const e=t.value;this.isClaimed(e)||(yield e),t=t.next}return 0}prune(t){let e=0;const n=this.unclaimed();for(const r of n)if(this.remove(r),e++,t&&e>=t)break;return e}getKindIndex(t){return this.kinds.has(t)||this.kinds.set(t,new Set),this.kinds.get(t)}getAuthorsIndex(t){return this.authors.has(t)||this.authors.set(t,new Set),this.authors.get(t)}getKindAuthorIndex(t,e){const n=`${t}:${e}`;return this.kindAuthor.has(n)||this.kindAuthor.set(n,new Set),this.kindAuthor.get(n)}getTagIndex(t){if(!this.tags.has(t)){const e=new Set,n=Date.now();for(const i of this.events.values())IN(i).has(t)&&e.add(i);const r=Date.now()-n;r>100&&this.log(`Built index ${t} took ${r}ms`),this.tags.set(t,e)}return this.tags.get(t)}removeFromSortedArray(t,e){if(0===t.length)return;const n=qP(t,t=>t.created_at-e.created_at);if(n){let r=n[0],i=!1;if(t[r]===e)return void t.splice(r,1);for(let n=r-1;n>=0&&t[n].created_at===e.created_at;n--)if(t[n]===e){t.splice(n,1),i=!0;break}if(i)return;for(let n=r+1;nt.created_at-e):void 0;i&&(n=Math.max(0,Math.min(i[0],this.created_at.length-1)));const s=t?qP(this.created_at,e=>e.created_at-t):void 0;if(s&&(r=Math.max(0,Math.min(s[0],this.created_at.length-1))),!(n>r))for(let o=n;o<=r;o++){const n=this.created_at[o];if(!(void 0!==e&&n.created_at>e)){if(void 0!==t&&n.created_at{const r=t instanceof Set?t:new Set(t);if(e)n=r,e=!1;else for(const e of n)r.has(e)||n.delete(e);return n};t.ids&&r(this.iterateIds(t.ids));let i=null;void 0!==t.since&&(i=Array.from(this.iterateTime(t.since,t.until)),r(i));for(const s of TN){const e=t[`&${s}`];if(e?.length)for(const t of e)r(this.iterateTag(s,[t]))}for(const s of TN){const e=t[`#${s}`];if(e?.length){const n=t[`&${s}`],i=n?e.filter(t=>!n.includes(t)):e;i.length>0&&r(this.iterateTag(s,i))}}if(t.authors&&t.kinds&&t.authors.length*t.kinds.length<=20){const e=new Set;for(const n of t.kinds)for(const r of t.authors){const t=`${n}:${r}`,i=this.kindAuthor.get(t);if(i)for(const n of i)e.add(n)}r(e)}else t.authors&&r(this.iterateAuthors(t.authors)),t.kinds&&r(this.iterateKinds(t.kinds));if(void 0===t.since&&void 0!==t.until&&(i=Array.from(this.iterateTime(t.since,t.until)),r(i)),e)return new Set(this.events.values());if(t.limit&&i){const e=new Set;for(const r of i){if(e.size>=t.limit)break;n.has(r)&&e.add(r)}return e}return n}getEventsForFilters(t){if(0===t.length)return new Set;let e=new Set;for(const n of t){const t=this.getEventsForFilter(n);for(const n of t)e.add(n)}return e}reset(){this.events.clear(),this.kinds.clear(),this.authors.clear(),this.kindAuthor.clear(),this.tags.clear(),this.created_at=[],this.replaceable.clear(),this.claims=new WeakMap}};function iF(t){return e=>{const n=new Set;return e.pipe(mN(e=>{if(void 0!==e)if(Array.isArray(e))for(const r of e)n.has(r)||(n.add(r),t.claim(r));else n.has(e)||(n.add(e),t.claim(e))}),rN(()=>{for(const e of n)t.removeClaim(e)}))}}function sF(t){return e=>{let n;return e.pipe(mN(e=>{n!==e&&(n&&t.removeClaim(n),e&&t.claim(e),n=e)}),rN(()=>{n&&t.removeClaim(n)}))}}function oF(t,e){return pN(n=>n?vO(n):t.eventLoader?yO(t.eventLoader(e)).pipe(dN(void 0)):vO(n))}function aF(t){return"string"==typeof t&&(t={id:t}),e=>BO(jO(()=>function(t,e){const n=t.getEvent(e.id);return n instanceof Promise?yO(n):vO(n)}(e,t)).pipe(e.eventLoader?oF(e,t):MA),e.insert$.pipe(WO(e=>e.id===t.id)),e.remove$.pipe(WO(e=>e.id===t.id),JO(1),TO(()=>{}))).pipe(tN((t,e)=>t?.id===e?.id),sF(e))}function lF(t){return e=>{let n;return BO(jO(()=>function(t,e){const n=t.getReplaceable(e.kind,e.pubkey,e.identifier);return n instanceof Promise?yO(n):vO(n)}(e,t)).pipe(e.eventLoader?oF(e,t):MA),e.insert$.pipe(WO(e=>e.pubkey==t.pubkey&&e.kind===t.kind&&(void 0===t.identifier||tM(e)===t.identifier)))).pipe(mN(t=>n=t),sN(e.remove$.pipe(WO(t=>t.id===n?.id),TO(()=>{}))),tN((t,e)=>void 0===t||void 0===e?t===e:e.created_at{const r=new Map,i=t=>e?t.id:function(t){let e=Reflect.get(t,WP);return e||(e=YP(t.kind)?XP(t)??t.id:t.id,Reflect.set(t,WP,e)),e}(t);return jO(()=>{const e=n.getTimeline(t);return e instanceof Promise?yO(e):vO(e)}).pipe(iF(n),sN(n.insert$.pipe(WO(e=>MN(t,e)),iF(n))),sN(n.remove$.pipe(WO(e=>MN(t,e)),TO(t=>t.id))),lN((t,n)=>{if("string"==typeof n){const e=t.find(t=>t.id===n);if(e){const t=i(e);r.get(t)?.id===n&&r.delete(t)}return t.filter(t=>t.id!==n)}if(Array.isArray(n)){r.clear();for(const t of n)r.set(i(t),t);return[...n]}let s=[...t];const o=i(n),a=r.get(o);if(a&&(!YP(n.kind)||!e&&n.created_atr.clear()))}}function uF(t,e=!1){return t=Array.isArray(t)?t:[t],n=>{const r=e?XA:jO(()=>function(t,e){const n=t.getByFilters(e);return n instanceof Promise?yO(n).pipe(FO(t=>yO(t))):yO(n)}(n,t));return BO(r,n.insert$.pipe(WO(e=>MN(t,e))))}}function hF(t){return"string"==typeof t&&(t={pubkey:t}),e=>{return e.replaceable({kind:LR.Contacts,pubkey:t.pubkey,relays:t.relays}).pipe((n=e,t=>{let e;return BO(t.pipe(mN(t=>e=t)),n.update$.pipe(WO(t=>t.id===e?.id)))}),TO(t=>{return t?function(...t){const e=new Map;for(const n of t)if(Array.isArray(n))for(const t of n)t&&e.set(t.pubkey,t);else n&&e.set(n.pubkey,n);return Array.from(e.values())}(function(t){return BP(t,eA,()=>yM(t.tags,t=>fM(t)?t:void 0,t=>NM(t)??void 0))}(e=t),function(t){if(nA in t)return t[nA];const e=tA(t);if(!e)return;const n=yM(e,t=>fM(t)?t:void 0,t=>NM(t)??void 0);return Reflect.set(t,nA,n),n}(e)):[];var e}));var n}}function dF(t){return"string"==typeof t&&(t={pubkey:t}),e=>e.replaceable({kind:LR.RelayList,pubkey:t.pubkey,relays:t.relays}).pipe(TO(t=>t&&{inboxes:zN(t),outboxes:DN(t)}))}function pF(t){return"string"==typeof t&&(t={pubkey:t}),e=>e.replaceable({kind:LR.Metadata,pubkey:t.pubkey,relays:t.relays}).pipe(WO(BN),TO(t=>t&&UN(t)))}var fF=class{models=new Map;modelKeepWarm=6e4;destroy$=new qA(1);model(t,...e){let n=this.models.get(t);n||(n=new Map,this.models.set(t,n));const r=t.getKey?t.getKey(...e):(0,eF.default)(e);let i=n.get(r);if(!i){const s=()=>{n.get(r)===i&&n.delete(r)};i=t(...e)(this).pipe(rN(s),cN({connector:()=>new qA(1),resetOnComplete:()=>BO(UO(this.modelKeepWarm),this.destroy$),resetOnRefCountZero:()=>BO(UO(this.modelKeepWarm),this.destroy$)}),fN(this.destroy$)),n.set(r,i)}return i}filters(t,e=!1){return Array.isArray(t)||(t=[t]),this.model(uF,t,e)}event(t){return"string"==typeof t||FM(t)?this.model(aF,t):this.replaceable(t)}replaceable(...t){let e;if(1===t.length)e=t[0];else if(3===t.length||2===t.length){let[n,r,i]=t;e={kind:n,pubkey:r,identifier:i}}if(!e)throw new Error("Invalid arguments, expected address pointer or kind, pubkey, identifier");return this.model(lF,e)}addressable(t){return this.replaceable(t)}timeline(t,e=!1){return this.model(cF,t,e)}profile(t){return this.model(pF,t)}contacts(t){return"string"==typeof t&&(t={pubkey:t}),this.model(hF,t)}mailboxes(t){return"string"==typeof t&&(t={pubkey:t}),this.model(dF,t)}dispose(){this.destroy$.next(),this.destroy$.complete()}},gF=class{expired$;expiredSubject;expirations=new Map;timer=null;nextCheck=null;constructor(){this.expiredSubject=new jA,this.expired$=this.expiredSubject.asObservable()}track(t){const e=SN(t);if(!e||!Number.isFinite(e))return;const n=uM();if(e<=n)return;if(this.expirations.set(t.id,e),this.timer&&this.nextCheck&&this.nextCheck<=e)return;this.timer&&clearTimeout(this.timer);const r=e-n;r>0&&(this.timer=setTimeout(this.emitNotifications.bind(this),1e3*r+10),this.nextCheck=e)}forget(t){this.expirations.delete(t)}check(t){const e=SN(t);return!!e&&e<=uM()}dispose(){this.timer&&clearTimeout(this.timer),this.timer=null,this.nextCheck=null,this.expirations.clear(),this.expiredSubject.complete()}[Symbol.dispose](){this.dispose()}emitNotifications(){const t=uM();let e=1/0;for(const[n,r]of this.expirations)r<=t?(this.expirations.delete(n),this.expiredSubject.next(n)):r0&&(this.timer=setTimeout(this.emitNotifications.bind(this),1e3*n+10),this.nextCheck=e)}}},mF=class t extends fF{database;memory;deletes;expiration;keepOldVersions=!1;keepExpired=!1;keepDeleted=!1;_verifyEventMethod=UP;get verifyEvent(){return this._verifyEventMethod}set verifyEvent(t){this._verifyEventMethod=t,void 0===t&&console.warn("[applesauce-core] EventStore.verifyEvent is undefined; signature checks are disabled.")}insert$=new jA;update$=new jA;remove$=new jA;eventLoader;internalSubscriptions=new gA;constructor(t){super(),t?.database?(this.database=t.database,this.memory=new rF):this.database=this.memory=new rF,void 0!==t?.keepDeleted&&(this.keepDeleted=t.keepDeleted),void 0!==t?.keepExpired&&(this.keepExpired=t.keepExpired),void 0!==t?.keepOldVersions&&(this.keepOldVersions=t.keepOldVersions),t?.verifyEvent&&(this.verifyEvent=t.verifyEvent),this.deletes=t?.deleteManager??new nF,this.internalSubscriptions.add(this.deletes.deleted$.subscribe(this.handleDeleteNotification.bind(this))),this.expiration=t?.expirationManager??new gF,this.internalSubscriptions.add(this.expiration.expired$.subscribe(this.handleExpiredNotification.bind(this)))}mapToMemory(t){if(void 0!==t)return this.memory?this.memory.add(t):t}handleDeleteNotification({pointer:t,until:e}){if(!this.keepDeleted)if(FM(t)){const n=this.getEvent(t.id);n&&e>=n.created_at&&DM(n,t)&&this.remove(n)}else if(function(t){return"object"==typeof t&&null!==t&&"identifier"in t&&"pubkey"in t&&"kind"in t&&"string"==typeof t.identifier&&"string"==typeof t.pubkey&&"number"==typeof t.kind}(t)){const n=this.getReplaceableHistory(t.kind,t.pubkey,t.identifier);if(n)for(const r of n)e>=r.created_at&&DM(r,t)&&this.remove(r)}}handleExpiredNotification(t){this.keepExpired||this.remove(t)}static copySymbolsToDuplicateEvent(t,e){if(t.kind!==e.kind)throw new Error("Source and destination events must have the same kind");if((n=t.kind)<1e4&&0!==n&&3!==n&&t.id!==e.id)throw new Error("Source and destination events must have the same ID");var n;if(YP(t.kind)&&t.pubkey!==e.pubkey&&tM(t)!==tM(e))throw new Error("Source and destination events must have the same pubkey and replaceable identifier");let r=!1;const i=(s=t,Reflect.get(s,kM));var s;if(i){for(const t of i)RM(e,t);r=!0}const o=[GP,AP,eM];for(const a of o)a in t&&!(a in e)&&(Reflect.set(e,a,Reflect.get(t,a)),r=!0);return r}add(e,n){if(e.kind===LR.EventDeletion)return this.deletes.add(e),e;if(this.deletes.check(e))return e;const r=SN(e);if(!1===this.keepExpired&&r&&r<=uM())return null;n&&RM(e,n);const i=YP(e.kind)?tM(e):void 0;if(!1===this.keepOldVersions&&YP(e.kind)){const n=this.database.getReplaceableHistory(e.kind,e.pubkey,i);if(n&&n.length>0){let r=n[0];for(const t of n)(t.created_at>r.created_at||t.created_at===r.created_at&&t.idr.created_at||e.created_at===r.created_at&&e.id0){let e=t[0];for(const r of t)(r.created_at>e.created_at||r.created_at===e.created_at&&r.idt!==e);for(const t of n)this.remove(t);if(n.length>0)return e}}return!1===this.keepExpired&&void 0!==r&&this.expiration.track(o),o}remove(t){const e="string"==typeof t?t:t.id;let n=this.memory.getEvent(e);this.expiration.forget(e),n&&Reflect.deleteProperty(n,VP),this.memory!==this.database&&this.memory.remove(t);const r=this.database.remove(t);return r&&n&&this.remove$.next(n),r}removeByFilters(t){const e=this.getByFilters(t);for(const r of e)this.expiration.forget(r.id);this.memory!==this.database&&this.memory.removeByFilters(t);const n=this.database.removeByFilters(t);for(const r of e)this.remove$.next(r);return n}update(t){return!!this.database.add(t)&&(this.database.update?.(t),this.update$.next(t),!0)}hasEvent(t){return"string"==typeof t?this.memory.hasEvent(t)||this.database.hasEvent(t):FM(t)?this.memory.hasEvent(t.id)||this.database.hasEvent(t.id):this.hasReplaceable(t.kind,t.pubkey,t.identifier)}getEvent(t){return"string"==typeof t?this.memory.getEvent(t)??this.mapToMemory(this.database.getEvent(t)):FM(t)?this.memory.getEvent(t.id)??this.mapToMemory(this.database.getEvent(t.id)):this.getReplaceable(t.kind,t.pubkey,t.identifier)}hasReplaceable(t,e,n){return this.memory.hasReplaceable(t,e,n)||this.database.hasReplaceable(t,e,n)}getReplaceable(t,e,n){return this.memory.getReplaceable(t,e,n)??this.mapToMemory(this.database.getReplaceable(t,e,n))}getReplaceableHistory(t,e,n){return this.memory.getReplaceableHistory(t,e,n)??this.database.getReplaceableHistory(t,e,n)?.map(t=>this.mapToMemory(t)??t)}getByFilters(t){const e=this.database.getByFilters(t);return this.memory?e.map(t=>this.mapToMemory(t)):e}getTimeline(t){const e=this.database.getTimeline(t);return this.memory?e.map(t=>this.mapToMemory(t)):e}touch(t){return this.memory.touch(t)}claim(t){return this.memory.claim(t)}isClaimed(t){return this.memory.isClaimed(t)??!1}removeClaim(t){return this.memory.removeClaim(t)}clearClaim(t){return this.memory.clearClaim(t)}unclaimed(){return this.memory.unclaimed()||function*(){}()}prune(t){return this.memory.prune(t)??0}dispose(){const t=this.eventLoader;t&&"function"==typeof t[Symbol.dispose]&&t[Symbol.dispose](),this.eventLoader=void 0,super.dispose(),this.internalSubscriptions.unsubscribe(),this.expiration.dispose?.(),this.insert$.complete(),this.update$.complete(),this.remove$.complete()}[Symbol.dispose](){this.dispose()}};function yF(t,e=!0){return n=>{const r=n.pipe(cN());return r.pipe(FO(e=>{if("string"==typeof e)return XA;const n=t.add(e);return n instanceof Promise?yO(n):vO(n)}),GO(()=>vO(null)),WO(t=>null!==t),e?NA(function(t,e){var n=new Set;t.subscribe(FA(e,function(t){var r=t;n.has(r)||(n.add(r),e.next(t))}))}):MA,sN(r.pipe(WO(t=>"string"==typeof t))))}}function vF(t){return yF(t,!0)}var bF=class extends Error{};function wF(t,e){return EO({first:t,with:()=>bO(()=>new bF(e??"Timeout"))})}function _F(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&"Uint8Array"===t.constructor.name&&"BYTES_PER_ELEMENT"in t&&1===t.BYTES_PER_ELEMENT}var xF=t=>t?`"${t}" `:"";function CF(t,e,n=""){if(_F(t)&&(void 0===e||t.length===e))return t;void 0!==e&&function(t,e=""){if("number"!=typeof t)throw new TypeError(xF(e)+"expected number, got "+typeof t);if(!Number.isSafeInteger(t)||t<0)throw new RangeError(xF(e)+"expected integer >= 0, got "+t)}(e,"length");const r=_F(t),i=void 0!==e?` of length ${e}`:"",s=r?`length=${t.length}`:"type="+typeof t,o=xF(n)+"expected Uint8Array"+i+", got "+s;if(!r)throw new TypeError(o);throw new RangeError(o)}var SF=(t,e)=>{if(null===t||"object"!=typeof t||Array.isArray(t))throw new TypeError(("object"===e?"":`"${e}" `)+"expected object, got type="+typeof t)};function kF(t,e=!0){if(t.destroyed)throw new Error("hash was destroyed");if(e&&t.finished)throw new Error("digest() was already called")}function EF(...t){for(let e=0;e>>e}function LF(t,e={}){if("function"!=typeof t)throw new TypeError('"hashCons" expected function, got type='+typeof t);e=function(t,e,n="opts"){return SF(t,"defaults"),void 0!==e&&SF(e,n),Object.assign(t,e)}({},e,"info");const n=(e,n)=>t(n).update(e).digest(),r=t(void 0);return n.outputLen=r.outputLen,n.blockLen=r.blockLen,n.canXOF=r.canXOF,n.create=e=>t(e),Object.assign(n,e),Object.freeze(n)}var IF=t=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,t])});function PF(t,e,n){return t&e^~t&n}function MF(t,e,n){return t&e^t&n^e&n}var AF=class{blockLen;outputLen;canXOF=!1;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(t,e,n,r){this.blockLen=t,this.outputLen=e,this.padOffset=n,this.isLE=r,this.buffer=new Uint8Array(t),this.view=RF(this.buffer)}update(t){kF(this),CF(t);const{view:e,buffer:n,blockLen:r}=this,i=t.length;let s=!1;for(let o=0;o=n))throw new RangeError('"output" expected length >= '+n)}(t,this),this.finished=!0;const{buffer:e,view:n,blockLen:r,isLE:i}=this;let{pos:s}=this;e[s++]=128,e.fill(0,s),this.padOffset>r-s&&(this.process(n,0),e.fill(0)),function(t,e,n,r){const i=(t=>t/2**32|0)(n),s=(t=>t>>>0)(n);t.setUint32(e,r?s:i,r),t.setUint32(e+4,r?i:s,r)}(n,r-8,8*this.length,i),this.process(n,0),this.roundClean();const o=t===e?n:RF(t),a=this.outputLen,l=a/4,c=this.get();if(a%4||l>c.length)throw new Error("invalid outputLen");for(let u=0;u>>3,r=TF(e,17)^TF(e,19)^e>>>10;FF[u]=r+FF[u-7]+n+FF[u-16]|0}let{A:n,B:r,C:i,D:s,E:o,F:a,G:l,H:c}=this;for(let u=0;u<64;u++){const t=c+(TF(o,6)^TF(o,11)^TF(o,25))+PF(o,a,l)+NF[u]+FF[u]|0,e=(TF(n,2)^TF(n,13)^TF(n,22))+MF(n,r,i)|0;c=l,l=a,a=o,o=s+t|0,s=i,i=r,r=n,n=t+e|0}n=n+this.A|0,r=r+this.B|0,i=i+this.C|0,s=s+this.D|0,o=o+this.E|0,a=a+this.F|0,l=l+this.G|0,c=c+this.H|0,this.set(n,r,i,s,o,a,l,c)}roundClean(){EF(FF)}destroy(){this.destroyed=!0,this.set(0,0,0,0,0,0,0,0),EF(this.buffer)}},DF=class extends zF{constructor(){super(32,OF)}},jF=LF(()=>new DF,IF(1)),UF=new WeakMap;function BF(t,e,n,r){let i={configurable:!0,enumerable:!0,writable:!0,initializer:null};r&&(i.initializer=r);for(let s of n)i=s(t,e,i)||i;void 0===i.initializer?Object.defineProperty(t,e,i):function(t,e,n){let r=UF.get(t);r||(r=new Map,UF.set(t,r)),r.set(e,n)}(t,e,i)}function $F(t,e,n){let r={...Object.getOwnPropertyDescriptor(t,e)};for(let i of n)r=i(t,e,r)||r;void 0!==r.initializer&&(r.value=r.initializer?r.initializer.call(t):void 0,r.initializer=void 0),Object.defineProperty(t,e,r)}function qF(t,e){let n=function(t,e){var n;let r=t.prototype;for(;r;){let t=null==(n=UF.get(r))?void 0:n.get(e);if(t)return t;r=Object.getPrototypeOf(r)}}(t.constructor,e);n&&Object.defineProperty(t,e,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(t):void 0})}var VF=a({DEFAULT_BLOSSOM_SERVER:()=>WF,default:()=>GF}),WF="https://blossom.nostr.build";function HF(t,e){let n=t||"https://blossom.nostr.build";return n.endsWith("/")&&(n=n.slice(0,-1)),e.startsWith("/")?`${n}${e}`:`${n}/${e}`}var GF=class extends fp{static{BF(this.prototype,"nostrAuth",[pp])}#N=void qF(this,"nostrAuth");static{BF(this.prototype,"nostrData",[pp])}#F=void qF(this,"nostrData");static{BF(this.prototype,"settings",[pp])}#z=void qF(this,"settings");get servers(){const t=this.nostrData.blossomServers,e=t.length?t:[WF];return this.settings.nostrPhotoFallbackUploads?e:[e[0]]}async _getAuthHeader(t,e,n){const r=Math.floor(Date.now()/1e3),i=new URL(n).hostname,s=await QN.fromKind(24242).content("upload"===t?"Upload photo for place":"Delete photo").modifyPublicTags(()=>[["t",t],["x",e],["expiration",String(r+3600)],["server",i]]).created(r).as(this.nostrAuth.signer).sign();return`Nostr ${btoa(JSON.stringify(s)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}`}async _uploadToServer(t,e,n,r){const i=HF(n,"upload");r&&r("signing");const s=await this._getAuthHeader("upload",e,n);r&&r("uploading");const o=await fetch(i,{method:"PUT",headers:{Authorization:s,"X-SHA-256":e},body:t});if(!o.ok){const t=await o.text();throw new Error(`Upload failed (${o.status}): ${t}`)}return o.json()}async upload(t,e={sequential:!1}){if(!this.nostrAuth.isConnected)throw new Error("Not connected");const n=await t.arrayBuffer();let r;r="undefined"!=typeof crypto&&crypto.subtle&&crypto.subtle.digest?await crypto.subtle.digest("SHA-256",n):jF(new Uint8Array(n));const i=function(t){return Array.from(new Uint8Array(t)).map(t=>t.toString(16).padStart(2,"0")).join("")}(r),s=this.servers,o=s[0],a=s.slice(1),l=[];let c;if(e.sequential){c=await this._uploadToServer(t,i,o,e.onProgress);for(const n of a)try{const r=await this._uploadToServer(t,i,n,e.onProgress);l.push(r.url)}catch(d8){console.warn(`Fallback upload to ${n} failed:`,d8)}}else{const n=this._uploadToServer(t,i,o,e.onProgress),r=a.map(n=>this._uploadToServer(t,i,n,e.onProgress));c=await n;const s=await Promise.allSettled(r);for(let t=0;tthis._deleteFromServer(t,e));await i;const o=await Promise.allSettled(s);for(let a=0;aYF,groupPhotoContributions:()=>JF}),KF=3600,YF=class{type="photo";placeIdentifier;osmType;osmId;photos;createdAt;eventCount;static{BF(this.prototype,"placeName",[Wr],function(){return null})}#D=void qF(this,"placeName");static{BF(this.prototype,"placeNameLoading",[Wr],function(){return!0})}#j=void qF(this,"placeNameLoading");constructor({placeIdentifier:t,osmType:e,osmId:n,photos:r,createdAt:i,eventCount:s}){this.placeIdentifier=t,this.osmType=e,this.osmId=n,this.photos=r,this.createdAt=i,this.eventCount=s}};function XF(t){const e=t.tags||[],n=e.filter(t=>"t"===t[0]).map(t=>t[1]).filter(Boolean),r=e.find(t=>"imeta"===t[0]);if(!r)return null;let i=null,s=null,o=null,a=!1,l=16/9,c=null;for(const p of r.slice(1))if(p.startsWith("url "))i=p.substring(4);else if(p.startsWith("thumb "))s=p.substring(6);else if(p.startsWith("blurhash "))o=p.substring(9);else if(p.startsWith("dim ")){const[t,e]=p.substring(4).split("x").map(Number);t&&e&&(l=t/e,t>e&&(a=!0))}else if(p.startsWith("alt ")){const t=p.substring(4).trim();c="A photo of a place"===t?null:t||null}if(!i)return null;const u=e.find(t=>"i"===t[0])?.[1],h=e.find(t=>"published_at"===t[0])?.[1],d=h?Number(h):null;return{eventId:t.id,pubkey:t.pubkey,createdAt:t.created_at,publishedAt:d&&d>0?d:null,url:i,thumbUrl:s,blurhash:o,isLandscape:a,aspectRatio:l,placeIdentifier:u,tags:n,alt:c}}function JF(t,e=3){if(!t||0===t.length)return[];const n=function(t){const e=new Set;for(const n of t)if(5===n.kind)for(const t of n.tags||[])"e"===t[0]&&t[1]&&e.add(t[1]);return t.filter(t=>360===t.kind&&!e.has(t.id))}(t);if(0===n.length)return[];const r=new Map;for(const o of n){const t=(o.tags||[]).find(t=>"i"===t[0])?.[1];t&&(r.has(t)||r.set(t,[]),r.get(t).push(o))}const i=e*KF,s=[];for(const[o,a]of r){const t=[...a].sort((t,e)=>e.created_at-t.created_at);let e=[],n=null;for(const r of t)null!==n&&n-r.created_at>i&&(s.push(QF(o,e)),e=[]),e.push(r),n=r.created_at;e.length>0&&s.push(QF(o,e))}return s.filter(t=>t.photos.length>0).sort((t,e)=>e.createdAt-t.createdAt)}function QF(t,e){const n=e.map(XF).filter(Boolean).sort((t,e)=>t.createdAt-e.createdAt),r=e.reduce((t,e)=>e.created_at>t?e.created_at:t,0),[,i,s]=t.split(":");return new YF({placeIdentifier:t,osmType:i,osmId:s,photos:n,createdAt:r,eventCount:e.length})}var tz=a({default:()=>nz}),ez="contributions-name-cache",nz=class extends fp{static{BF(this.prototype,"nostrData",[pp])}#F=void qF(this,"nostrData");static{BF(this.prototype,"nostrAuth",[pp])}#N=void qF(this,"nostrAuth");static{BF(this.prototype,"storage",[pp])}#U=void qF(this,"storage");static{BF(this.prototype,"osm",[pp])}#B=void qF(this,"osm");static{BF(this.prototype,"localForage",[pp])}#$=void qF(this,"localForage");static{BF(this.prototype,"items",[Wr],function(){return[]})}#q=void qF(this,"items");_sub=null;_pendingBatchPromise=null;_lastBatchSignature="";_unresolvable=new Set;async _resolveCachedName(t){const e=this.storage.findPlaceById(t.osmId);return e?.title?e.title:await this.localForage.get(ez,t.placeIdentifier)||(await this.osm.getCachedOsmObject(t.osmType,t.osmId))?.title||null}async _resolveFromCache(t){const e=t.filter(t=>t.placeNameLoading);0!==e.length?(await Promise.all(e.map(async t=>{const e=await this._resolveCachedName(t);e&&(t.placeName=e,t.placeNameLoading=!1)})),this.items=[...this.items],this._maybeBatchFetchNames(this.items)):this._maybeBatchFetchNames(this.items)}async load(t){t?(this._sub=this.nostrData.store.timeline([{kinds:[360,5],authors:[t]}]).subscribe(t=>{this._updateItems(t)}),await this.nostrData.loadMyContributions(t)):this.items=[]}stop(){this._sub&&(this._sub.unsubscribe(),this._sub=null),this.items=[],this._lastBatchSignature="",this._pendingBatchPromise=null,this._unresolvable.clear()}willDestroy(){this.stop(),super.willDestroy(...arguments)}_updateItems(t){const e=JF(t);for(const n of e){const t=this.storage.findPlaceById(n.osmId);t?.title&&(n.placeName=t.title,n.placeNameLoading=!1)}this.items=e,this._resolveFromCache(e)}_isUnresolvable(t){return this._unresolvable.has(t.placeIdentifier)}_maybeBatchFetchNames(t){const e=t.filter(t=>t.placeNameLoading&&!this._isUnresolvable(t));for(const r of t)r.placeNameLoading&&this._isUnresolvable(r)&&(r.placeName=this._fallbackName(r),r.placeNameLoading=!1);if(0===e.length)return void(this.items.some(t=>!t.placeNameLoading)&&(this.items=[...this.items]));const n=e.map(t=>t.placeIdentifier).sort().join("|");n===this._lastBatchSignature&&this._pendingBatchPromise||(this._lastBatchSignature=n,this._pendingBatchPromise=this._batchResolveNames(e).then(t=>{for(const e of this.items)e.placeNameLoading&&(t.has(e.placeIdentifier)?(e.placeName=t.get(e.placeIdentifier),e.placeNameLoading=!1):(this._unresolvable.add(e.placeIdentifier),e.placeName=this._fallbackName(e),e.placeNameLoading=!1));this.items=[...this.items]}).catch(t=>{console.error("[contributions] Batch name resolution failed",t);for(const e of this.items)e.placeNameLoading&&(this._unresolvable.add(e.placeIdentifier),e.placeName=this._fallbackName(e),e.placeNameLoading=!1);this.items=[...this.items]}).finally(()=>{this._pendingBatchPromise=null}))}_fallbackName(t){return`OSM ${t.osmType} ${t.osmId}`}async _batchResolveNames(t){const e=new Map,n=[];for(const s of t){const t=await this._resolveCachedName(s);t?e.set(s.placeIdentifier,t):n.push({osmType:s.osmType,osmId:s.osmId})}if(0===n.length)return e;const r=await this.osm.fetchOsmObjectsBatch(n),i=[];for(const s of t){if(e.has(s.placeIdentifier))continue;const t=`${s.osmType}:${s.osmId}`,n=r.get(t);n?.title&&(e.set(s.placeIdentifier,n.title),i.push(this.localForage.set(ez,s.placeIdentifier,n.title)))}return await Promise.all(i),e}};function rz(t){return new Worker("/assets/image-processor-TE4QOxly.js",{name:t?.name})}var iz=a({default:()=>sz}),sz=class extends fp{_worker=null;_callbacks=new Map;_msgId=0;constructor(){super(...arguments),this._initWorker()}_initWorker(){if(!this._worker&&void 0!==rz)try{this._worker=new rz,this._worker.onmessage=this._handleMessage.bind(this),this._worker.onerror=this._handleError.bind(this)}catch(t){console.warn("Failed to initialize image-processor worker:",t)}}_handleMessage(t){const{id:e,success:n,blob:r,dim:i,blurhash:s,error:o}=t.data,a=this._callbacks.get(e);a&&(this._callbacks.delete(e),n?a.resolve({blob:r,dim:i,blurhash:s}):a.reject(new Error(o)))}_handleError(t){console.error("Image Processor Worker Error:",t);for(const[,e]of this._callbacks.entries())e.reject(new Error("Worker crashed"));this._callbacks.clear(),this._worker.terminate(),this._worker=null,this._initWorker()}_getImageDimensions(t){return new Promise((e,n)=>{const r=new Image,i=URL.createObjectURL(t);r.onload=()=>{const t={width:r.width,height:r.height};URL.revokeObjectURL(i),e(t)},r.onerror=()=>{URL.revokeObjectURL(i),n(new Error("Could not read image dimensions"))},r.src=i})}async process(t,e,n,r=!1){if(!this._worker)throw new Error("Image processor worker is not available.");try{const{width:i,height:s}=await this._getImageDimensions(t);let o=i,a=s;return i>s?i>e&&(a=Math.round(s*(e/i)),o=e):s>e&&(o=Math.round(i*(e/s)),a=e),new Promise((e,i)=>{const s=++this._msgId;this._callbacks.set(s,{resolve:e,reject:i}),this._worker.postMessage({type:"PROCESS_IMAGE",id:s,file:t,targetWidth:o,targetHeight:a,quality:n,computeBlurhash:r})})}catch(i){throw new Error(`Failed to process image: ${i.message}`,{cause:i})}}willDestroy(){super.willDestroy(...arguments),this._worker&&(this._worker.terminate(),this._worker=null),this._callbacks.clear()}},oz=o((t,e)=>{!function(n){"object"==typeof t&&void 0!==e?e.exports=n():"function"==typeof define&&define.amd?define([],n):("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).localforage=n()}(function(){return function t(e,n,r){function i(o,a){if(!n[o]){if(!e[o]){var l="function"==typeof u&&u;if(!a&&l)return l(o,!0);if(s)return s(o,!0);var c=new Error("Cannot find module '"+o+"'");throw c.code="MODULE_NOT_FOUND",c}var h=n[o]={exports:{}};e[o][0].call(h.exports,function(t){return i(e[o][1][t]||t)},h,h.exports,t,e,n,r)}return n[o].exports}for(var s="function"==typeof u&&u,o=0;ot.db.version;if(r&&(t.version!==e&&console.warn('The database "'+t.name+"\" can't be downgraded from version "+t.db.version+" to version "+t.version+"."),t.version=t.db.version),i||n){if(n){var s=t.db.version+1;s>t.version&&(t.version=s)}return!0}return!1}function S(t){return i([m(atob(t.data))],{type:t.type})}function k(t){return t&&t.__local_forage_encoded_blob}function E(t){var e=this,n=e._initReady().then(function(){var t=d[e._dbInfo.name];if(t&&t.dbReady)return t.dbReady});return a(n,t,t),n}function R(t,e,n,r){void 0===r&&(r=1);try{n(null,t.db.transaction(t.storeName,e))}catch(nD){if(r>0&&(!t.db||"InvalidStateError"===nD.name||"NotFoundError"===nD.name))return s.resolve().then(function(){if(!t.db||"NotFoundError"===nD.name&&!t.db.objectStoreNames.contains(t.storeName)&&t.version<=t.db.version)return t.db&&(t.version=t.db.version+1),x(t)}).then(function(){return function(t){y(t);for(var e=d[t.name],n=e.forages,r=0;r=43)}}).catch(function(){return!1})}(t).then(function(t){return h=t})}(a.db).then(function(t){return t?e:(n=e,new s(function(t,e){var r=new FileReader;r.onerror=e,r.onloadend=function(e){t({__local_forage_encoded_blob:!0,data:btoa(e.target.result||""),type:n.type})},r.readAsBinaryString(n)}));var n}):e}).then(function(e){R(r._dbInfo,g,function(i,s){if(i)return o(i);try{var a=s.objectStore(r._dbInfo.storeName);null===e&&(e=void 0);var l=a.put(e,t);s.oncomplete=function(){void 0===e&&(e=null),n(e)},s.onabort=s.onerror=function(){o(l.error?l.error:l.transaction.error)}}catch(c){o(c)}})}).catch(o)});return o(a,n),a},removeItem:function(t,e){var n=this;t=l(t);var r=new s(function(e,r){n.ready().then(function(){R(n._dbInfo,g,function(i,s){if(i)return r(i);try{var o=s.objectStore(n._dbInfo.storeName).delete(t);s.oncomplete=function(){e()},s.onerror=function(){r(o.error)},s.onabort=function(){r(o.error?o.error:o.transaction.error)}}catch(a){r(a)}})}).catch(r)});return o(r,e),r},clear:function(t){var e=this,n=new s(function(t,n){e.ready().then(function(){R(e._dbInfo,g,function(r,i){if(r)return n(r);try{var s=i.objectStore(e._dbInfo.storeName).clear();i.oncomplete=function(){t()},i.onabort=i.onerror=function(){n(s.error?s.error:s.transaction.error)}}catch(o){n(o)}})}).catch(n)});return o(n,t),n},length:function(t){var e=this,n=new s(function(t,n){e.ready().then(function(){R(e._dbInfo,f,function(r,i){if(r)return n(r);try{var s=i.objectStore(e._dbInfo.storeName).count();s.onsuccess=function(){t(s.result)},s.onerror=function(){n(s.error)}}catch(o){n(o)}})}).catch(n)});return o(n,t),n},key:function(t,e){var n=this,r=new s(function(e,r){t<0?e(null):n.ready().then(function(){R(n._dbInfo,f,function(i,s){if(i)return r(i);try{var o=s.objectStore(n._dbInfo.storeName),a=!1,l=o.openKeyCursor();l.onsuccess=function(){var n=l.result;n?0===t||a?e(n.key):(a=!0,n.advance(t)):e(null)},l.onerror=function(){r(l.error)}}catch(c){r(c)}})}).catch(r)});return o(r,e),r},keys:function(t){var e=this,n=new s(function(t,n){e.ready().then(function(){R(e._dbInfo,f,function(r,i){if(r)return n(r);try{var s=i.objectStore(e._dbInfo.storeName).openKeyCursor(),o=[];s.onsuccess=function(){var e=s.result;e?(o.push(e.key),e.continue()):t(o)},s.onerror=function(){n(s.error)}}catch(a){n(a)}})}).catch(n)});return o(n,t),n},dropInstance:function(t,e){e=c.apply(this,arguments);var n,i=this.config();if((t="function"!=typeof t&&t||{}).name||(t.name=t.name||i.name,t.storeName=t.storeName||i.storeName),t.name){var a=t.name===i.name&&this._dbInfo.db?s.resolve(this._dbInfo.db):_(t).then(function(e){var n=d[t.name],r=n.forages;n.db=e;for(var i=0;i>4,u[l++]=(15&r)<<4|i>>2,u[l++]=(3&i)<<6|63&s;return c}function W(t){var e,n=new Uint8Array(t),r="";for(e=0;e>2],r+=L[(3&n[e])<<4|n[e+1]>>4],r+=L[(15&n[e+1])<<2|n[e+2]>>6],r+=L[63&n[e+2]];return n.length%3==2?r=r.substring(0,r.length-1)+"=":n.length%3==1&&(r=r.substring(0,r.length-2)+"=="),r}var H={serialize:function(t,e){var n="";if(t&&(n=q.call(t)),t&&("[object ArrayBuffer]"===n||t.buffer&&"[object ArrayBuffer]"===q.call(t.buffer))){var r,i=P;t instanceof ArrayBuffer?(r=t,i+=M):(r=t.buffer,"[object Int8Array]"===n?i+=O:"[object Uint8Array]"===n?i+=N:"[object Uint8ClampedArray]"===n?i+=F:"[object Int16Array]"===n?i+=z:"[object Uint16Array]"===n?i+=j:"[object Int32Array]"===n?i+=D:"[object Uint32Array]"===n?i+=U:"[object Float32Array]"===n?i+=B:"[object Float64Array]"===n?i+=$:e(new Error("Failed to get type for BinaryArray"))),e(i+W(r))}else if("[object Blob]"===n){var s=new FileReader;s.onload=function(){var n="~~local_forage_type~"+t.type+"~"+W(this.result);e(P+A+n)},s.readAsArrayBuffer(t)}else try{e(JSON.stringify(t))}catch(o){console.error("Couldn't convert value into a JSON string: ",t),e(null,o)}},deserialize:function(t){if(t.substring(0,9)!==P)return JSON.parse(t);var e,n=t.substring(13),r=t.substring(9,13);if(r===A&&I.test(n)){var s=n.match(I);e=s[1],n=n.substring(s[0].length)}var o=V(n);switch(r){case M:return o;case A:return i([o],{type:e});case O:return new Int8Array(o);case N:return new Uint8Array(o);case F:return new Uint8ClampedArray(o);case z:return new Int16Array(o);case j:return new Uint16Array(o);case D:return new Int32Array(o);case U:return new Uint32Array(o);case B:return new Float32Array(o);case $:return new Float64Array(o);default:throw new Error("Unkown type: "+r)}},stringToBuffer:V,bufferToString:W};function G(t,e,n,r){t.executeSql("CREATE TABLE IF NOT EXISTS "+e.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],n,r)}function Z(t,e,n,r,i,s){t.executeSql(n,r,i,function(t,o){o.code===o.SYNTAX_ERR?t.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[e.storeName],function(t,a){a.rows.length?s(t,o):G(t,e,function(){t.executeSql(n,r,i,s)},s)},s):s(t,o)},s)}function K(t,e,n,r){var i=this;t=l(t);var a=new s(function(s,o){i.ready().then(function(){void 0===e&&(e=null);var a=e,l=i._dbInfo;l.serializer.serialize(e,function(e,c){c?o(c):l.db.transaction(function(n){Z(n,l,"INSERT OR REPLACE INTO "+l.storeName+" (key, value) VALUES (?, ?)",[t,e],function(){s(a)},function(t,e){o(e)})},function(e){if(e.code===e.QUOTA_ERR){if(r>0)return void s(K.apply(i,[t,a,n,r-1]));o(e)}})})}).catch(o)});return o(a,n),a}var Y={_driver:"webSQLStorage",_initStorage:function(t){var e=this,n={db:null};if(t)for(var r in t)n[r]="string"!=typeof t[r]?t[r].toString():t[r];var i=new s(function(t,r){try{n.db=openDatabase(n.name,String(n.version),n.description,n.size)}catch(i){return r(i)}n.db.transaction(function(i){G(i,n,function(){e._dbInfo=n,t()},function(t,e){r(e)})},r)});return n.serializer=H,i},_support:"function"==typeof openDatabase,iterate:function(t,e){var n=this,r=new s(function(e,r){n.ready().then(function(){var i=n._dbInfo;i.db.transaction(function(n){Z(n,i,"SELECT * FROM "+i.storeName,[],function(n,r){for(var s=r.rows,o=s.length,a=0;a '__WebKitDatabaseInfoTable__'",[],function(n,r){for(var i=[],s=0;s0?(this._dbInfo=e,e.serializer=H,s.resolve()):s.reject()},_support:function(){try{return"undefined"!=typeof localStorage&&"setItem"in localStorage&&!!localStorage.setItem}catch(t){return!1}}(),iterate:function(t,e){var n=this,r=n.ready().then(function(){for(var e=n._dbInfo,r=e.keyPrefix,i=r.length,s=localStorage.length,o=1,a=0;a=0;n--){var r=localStorage.key(n);0===r.indexOf(t)&&localStorage.removeItem(r)}});return o(n,t),n},length:function(t){var e=this.keys().then(function(t){return t.length});return o(e,t),e},key:function(t,e){var n=this,r=n.ready().then(function(){var e,r=n._dbInfo;try{e=localStorage.key(t)}catch(d8){e=null}return e&&(e=e.substring(r.keyPrefix.length)),e});return o(r,e),r},keys:function(t){var e=this,n=e.ready().then(function(){for(var t=e._dbInfo,n=localStorage.length,r=[],i=0;i=0;e--){var n=localStorage.key(e);0===n.indexOf(t)&&localStorage.removeItem(n)}}):s.reject("Invalid arguments"),o(r,e),r}},Q=function(t,e){return t===e||"number"==typeof t&&"number"==typeof e&&isNaN(t)&&isNaN(e)},tt=function(t,e){for(var n=t.length,r=0;rcz}),lz=c(oz(),1),cz=class extends fp{_instances=new Map;_instance(t){let e=this._instances.get(t);return e||(e=lz.default.createInstance({name:"marco",storeName:t}),this._instances.set(t,e)),e}async get(t,e){return this._instance(t).getItem(e)}async set(t,e,n){return this._instance(t).setItem(e,n)}async remove(t,e){return this._instance(t).removeItem(e)}async keys(t){return this._instance(t).keys()}async clear(t){return this._instance(t).clear()}async iterate(t,e){return this._instance(t).iterate(e)}},uz=a({default:()=>hz}),hz=class extends fp{static{BF(this.prototype,"nostrData",[pp])}#F=void qF(this,"nostrData");static{BF(this.prototype,"selectedPlace",[Wr],function(){return null})}#V=void qF(this,"selectedPlace");static{BF(this.prototype,"isSearching",[Wr],function(){return!1})}#W=void qF(this,"isSearching");static{BF(this.prototype,"isCreating",[Wr],function(){return!1})}#H=void qF(this,"isCreating");static{BF(this.prototype,"creationCoordinates",[Wr],function(){return null})}#G=void qF(this,"creationCoordinates");static{BF(this.prototype,"returnToSearch",[Wr],function(){return!1})}#Z=void qF(this,"returnToSearch");static{BF(this.prototype,"returnToRoute",[Wr],function(){return null})}#K=void qF(this,"returnToRoute");static{BF(this.prototype,"currentCenter",[Wr],function(){return null})}#Y=void qF(this,"currentCenter");static{BF(this.prototype,"currentBounds",[Wr],function(){return null})}#X=void qF(this,"currentBounds");static{BF(this.prototype,"currentZoom",[Wr],function(){return null})}#J=void qF(this,"currentZoom");static{BF(this.prototype,"searchBoxHasFocus",[Wr],function(){return!1})}#Q=void qF(this,"searchBoxHasFocus");static{BF(this.prototype,"selectionOptions",[Wr],function(){return{}})}#tt=void qF(this,"selectionOptions");static{BF(this.prototype,"preventNextZoom",[Wr],function(){return!1})}#et=void qF(this,"preventNextZoom");static{BF(this.prototype,"searchResults",[Wr],function(){return[]})}#nt=void qF(this,"searchResults");static{BF(this.prototype,"currentSearch",[Wr],function(){return null})}#rt=void qF(this,"currentSearch");static{BF(this.prototype,"loadingState",[Wr],function(){return null})}#it=void qF(this,"loadingState");static{BF(this.prototype,"isSidebarVisible",[Wr],function(){return!1})}#st=void qF(this,"isSidebarVisible");static{BF(this.prototype,"isSidebarOpening",[Wr],function(){return!1})}#ot=void qF(this,"isSidebarOpening");scrollPositions={};saveScrollPosition(t,e){this.scrollPositions[t]=e}static{$F(this.prototype,"saveScrollPosition",[Vl])}getScrollPosition(t){return this.scrollPositions[t]||0}static{$F(this.prototype,"getScrollPosition",[Vl])}showSidebar(){this.isSidebarVisible||(this.isSidebarVisible=!0,this.isSidebarOpening=!0,setTimeout(()=>{this.isSidebarOpening=!1},250))}hideSidebar(){this.isSidebarVisible=!1,this.isSidebarOpening=!1}selectPlace(t,e={}){this.selectedPlace=t,this.selectionOptions=e,this.nostrData.loadPhotosForPlace(t)}clearSelection(){this.selectedPlace=null,this.selectionOptions={},this.preventNextZoom=!1,this.nostrData.loadPhotosForPlace(null)}setSearchResults(t){this.searchResults=t||[]}clearSearchResults(){this.searchResults=[],this.currentSearch=null}startSearch(){this.isSearching=!0,this.isCreating=!1,this.preventNextZoom=!1}stopSearch(){this.isSearching=!1}startCreating(){this.isCreating=!0,this.isSearching=!1}stopCreating(){this.isCreating=!1,this.creationCoordinates=null}updateCreationCoordinates(t,e){this.creationCoordinates={lat:t,lon:e}}setSearchBoxFocus(t){this.searchBoxHasFocus=t}updateCenter(t,e){this.currentCenter={lat:t,lon:e}}updateZoom(t){this.currentZoom=t}updateBounds(t){this.currentBounds=t}startLoading(t,e){this.loadingState={type:t,value:e}}stopLoading(t=null,e=null){t||e?this.loadingState&&this.loadingState.type===t&&this.loadingState.value===e&&(this.loadingState=null):this.loadingState=null}};function dz(){let t,e;const n=new Promise((n,r)=>{t=n,e=r});return n.resolve=t,n.reject=e,n}"navigator"in globalThis&&navigator.userAgent.includes("Android")&&navigator.clipboard&&navigator.clipboard.readText;var pz=class extends Error{},fz=class{get nip04(){return window.nostr?.nip04}get nip44(){return window.nostr?.nip44}pubkey=void 0;async getPublicKey(){if(!window.nostr)throw new pz("Signer extension missing");if(this.pubkey)return this.pubkey;const t=await window.nostr.getPublicKey();if(!PM(t))throw new Error("Extension returned an invalid public key");return this.pubkey=t,this.pubkey}async signEvent(t){if(!window.nostr)throw new pz("Signer extension missing");const e=await window.nostr.signEvent(t);if(!UP(e))throw new Error("Extension returned an invalid event");return e}};function gz(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&"Uint8Array"===t.constructor.name&&"BYTES_PER_ELEMENT"in t&&1===t.BYTES_PER_ELEMENT}function mz(t,e){return!!Array.isArray(e)&&(0===e.length||(t?e.every(t=>"string"==typeof t):e.every(t=>Number.isSafeInteger(t))))}function yz(t){if("function"!=typeof t)throw new TypeError("function expected");return!0}function vz(t,e){if("string"!=typeof e)throw new TypeError(`${t}: string expected`);return!0}function bz(t){if("number"!=typeof t)throw new TypeError("number expected, got "+typeof t);if(!Number.isSafeInteger(t))throw new RangeError(`invalid integer: ${t}`)}function wz(t){if(!Array.isArray(t))throw new TypeError("array expected")}function _z(t,e){if(!mz(!0,e))throw new TypeError(`${t}: array of strings expected`)}function xz(t,e){if(!mz(!1,e))throw new TypeError(`${t}: array of numbers expected`)}function Cz(...t){const e=t=>t,n=(t,e)=>n=>t(e(n));return{encode:t.map(t=>t.encode).reduceRight(n,e),decode:t.map(t=>t.decode).reduce(n,e)}}function Sz(t){const e="string"==typeof t?t.split(""):t,n=e.length;_z("alphabet",e);const r=new Map(e.map((t,e)=>[t,e]));return{encode:r=>(wz(r),r.map(r=>{if(!Number.isSafeInteger(r)||r<0||r>=n)throw new Error(`alphabet.encode: digit index outside alphabet "${r}". Allowed: ${t}`);return e[r]})),decode:e=>(wz(e),e.map(e=>{vz("alphabet.decode",e);const n=r.get(e);if(void 0===n)throw new Error(`Unknown letter: "${e}". Allowed: ${t}`);return n}))}}function kz(t=""){return vz("join",t),{encode:e=>(_z("join.decode",e),e.join(t)),decode:e=>(vz("join.decode",e),e.split(t))}}function Ez(t,e="="){return bz(t),vz("padding",e),{encode(n){for(_z("padding.encode",n);n.length*t%8;)n.push(e);return n},decode(n){_z("padding.decode",n);let r=n.length;if(r*t%8)throw new Error("padding: invalid, string should have whole number of bytes");for(;r>0&&n[r-1]===e;r--)if((r-1)*t%8==0)throw new Error("padding: invalid, string has too much padding");return n.slice(0,r)}}}function Rz(t){return yz(t),{encode:t=>t,decode:e=>t(e)}}var Tz=(t,e)=>0===e?t:Tz(e,t%e),Lz=(t,e)=>t+(e-Tz(t,e)),Iz=(()=>{let t=[];for(let e=0;e<40;e++)t.push(2**e);return t})();function Pz(t,e,n,r){if(wz(t),e<=0||e>32)throw new RangeError(`convertRadix2: wrong from=${e}`);if(n<=0||n>32)throw new RangeError(`convertRadix2: wrong to=${n}`);if(Lz(e,n)>32)throw new Error(`convertRadix2: carry overflow from=${e} to=${n} carryBits=${Lz(e,n)}`);let i=0,s=0;const o=Iz[e],a=Iz[n]-1,l=[];for(const c of t){if(bz(c),c>=o)throw new Error(`convertRadix2: invalid data word=${c} from=${e}`);if(i=i<32)throw new Error(`convertRadix2: carry overflow pos=${s} from=${e}`);for(s+=e;s>=n;s-=n)l.push((i>>s-n&a)>>>0);const t=Iz[s];if(void 0===t)throw new Error("invalid carry");i&=t-1}if(i=i<=e)throw new Error("Excess padding");if(!r&&i>0)throw new Error(`Non-zero padding: ${i}`);return r&&s>0&&l.push(i>>>0),l}function Mz(t,e=!1){if(bz(t),t<=0||t>32)throw new RangeError("radix2: bits should be in (0..32]");if(Lz(8,t)>32||Lz(t,8)>32)throw new RangeError("radix2: carry overflow");return{encode:n=>{if(!gz(n))throw new TypeError("radix2.encode input should be Uint8Array");return Pz(Array.from(n),8,t,!e)},decode:n=>(xz("radix2.decode",n),Uint8Array.from(Pz(n,t,8,e)))}}function Az(t){return yz(t),function(...e){try{return t.apply(null,e)}catch(n){}}}Cz(Mz(4),Sz("0123456789ABCDEF"),kz("")),Cz(Mz(5),Sz("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),Ez(5),kz("")),Cz(Mz(5),Sz("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),kz("")),Cz(Mz(5),Sz("0123456789ABCDEFGHIJKLMNOPQRSTUV"),Ez(5),kz("")),Cz(Mz(5),Sz("0123456789ABCDEFGHIJKLMNOPQRSTUV"),kz("")),Cz(Mz(5),Sz("0123456789ABCDEFGHJKMNPQRSTVWXYZ"),kz(""),Rz(t=>t.toUpperCase().replace(/O/g,"0").replace(/[IL]/g,"1")));var Oz=(()=>"function"==typeof Uint8Array.from([]).toBase64&&"function"==typeof Uint8Array.fromBase64)(),Nz=(Oz||Cz(Mz(6),Sz("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),Ez(6),kz("")),Cz(Mz(6),Sz("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),kz("")),Oz||Cz(Mz(6),Sz("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),Ez(6),kz("")),Cz(Mz(6),Sz("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),kz("")),Cz(Sz("qpzry9x8gf2tvdw0s3jn54khce6mua7l"),kz(""))),Fz=[996825010,642813549,513874426,1027748829,705979059];function zz(t){const e=t>>25;let n=(33554431&t)<<5;for(let r=0;r>r&1)&&(n^=Fz[r]);return n}function Dz(t,e,n=1){const r=t.length;let i=1;for(let s=0;s126)throw new Error(`Invalid prefix (${t})`);i=zz(i)^e>>5}i=zz(i);for(let s=0;sr)throw new TypeError(`Length ${s} exceeds limit ${r}`);const o=t.toLowerCase(),a=Dz(o,n,e);return`${o}1${Nz.encode(n)}${a}`}function a(t,n=90){vz("bech32.decode input",t);const r=t.length;if(r<8||!1!==n&&r>n)throw new TypeError(`invalid string length: ${r} (${t}). Expected (8..${n})`);const i=t.toLowerCase();if(t!==i&&t!==t.toUpperCase())throw new Error("String must be lowercase or uppercase");const s=i.lastIndexOf("1");if(0===s||-1===s)throw new Error('Letter "1" must be present between prefix and data only');const o=i.slice(0,s),a=i.slice(s+1);if(a.length<6)throw new Error("Data must be at least 6 characters long");const l=Nz.decode(a).slice(0,-6),c=Dz(o,l,e);if(!a.endsWith(c))throw new Error(`Invalid checksum in ${t}: expected "${c}"`);return{prefix:o,words:l}}return{encode:o,decode:a,encodeFromBytes:function(t,e){return o(t,i(e))},decodeToBytes:function(t){const{prefix:e,words:n}=a(t,!1);return{prefix:e,words:n,bytes:r(n)}},decodeUnsafe:Az(a),fromWords:r,fromWordsUnsafe:s,toWords:i}}var Uz,Bz,$z=Object.freeze(jz("bech32")),qz=(jz("bech32m"),(()=>"function"==typeof Uint8Array.from([]).toHex&&"function"==typeof Uint8Array.fromHex)()||Cz(Mz(4),Sz("0123456789abcdef"),kz(""),Rz(t=>{if("string"!=typeof t||t.length%2!=0)throw new TypeError(`hex.decode: expected string, got ${typeof t} with length ${t.length}`);return t.toLowerCase()})),new TextEncoder),Vz=new TextDecoder;function Wz(t){if(!PM(t.remote))throw new Error("Invalid nbunksec: remote is not a valid hex key");if(!PM(t.clientKey))throw new Error("Invalid nbunksec: clientKey is not a valid hex key");if(0===t.relays.length)throw new Error("Invalid nbunksec: missing relays");return function(t){try{const e=[],n=PS(t.pubkey);e.push(new Uint8Array([0,n.length]),n);const r=PS(t.local_key);e.push(new Uint8Array([1,r.length]),r);for(const a of t.relays){const t=qz.encode(a);e.push(new Uint8Array([2,t.length]),t)}if(t.secret){const n=qz.encode(t.secret);e.push(new Uint8Array([3,n.length]),n)}const i=e.reduce((t,e)=>t+e.length,0),s=new Uint8Array(i);let o=0;for(const t of e)s.set(t,o),o+=t.length;return $z.encode("nbunksec",$z.toWords(s),!1)}catch(d8){throw new Error(`Failed to encode bunker info: ${d8}`)}}({pubkey:t.remote,local_key:t.clientKey,relays:t.relays,secret:t.bunkerSecret??t.secret})}WM(LR.NostrConnect,"nip44"),function(t){t.GetPublicKey="get_public_key",t.SignEvent="sign_event",t.Ping="ping",t.Nip04Encrypt="nip04_encrypt",t.Nip04Decrypt="nip04_decrypt",t.Nip44Encrypt="nip44_encrypt",t.Nip44Decrypt="nip44_decrypt",t.SwitchRelays="switch_relays"}(Uz||(Uz={})),function(t){t.Connect="connect",t.CreateAccount="create_account",t.GetPublicKey="get_public_key",t.SignEvent="sign_event",t.Ping="ping",t.Nip04Encrypt="nip04_encrypt",t.Nip04Decrypt="nip04_decrypt",t.Nip44Encrypt="nip44_encrypt",t.Nip44Decrypt="nip44_decrypt",t.SwitchRelays="switch_relays",t.Logout="logout"}(Bz||(Bz={}));var Hz=class t{key;constructor(t){this.key=t||zP()}async getPublicKey(){return DP(this.key)}async signEvent(t){return jP(t,this.key)}nip04={encrypt:async(t,e)=>$L.encrypt(this.key,t,e),decrypt:async(t,e)=>$L.decrypt(this.key,t,e)};nip44={encrypt:async(t,e)=>sI.v2.encrypt(e,sI.v2.utils.getConversationKey(this.key,t)),decrypt:async(t,e)=>sI.v2.decrypt(e,sI.v2.utils.getConversationKey(this.key,t))};static fromKey(e){const n=function(t){if(t instanceof Uint8Array)return 32!==t.length?null:t;if(PM(t))return PS(t);try{const e=function(t){let{prefix:e,words:n}=rk.decode(t,5e3),r=new Uint8Array(rk.fromWords(n));switch(e){case"nprofile":{let t=_M(r);if(!t[0]?.[0])throw new Error("missing TLV 0 for nprofile");if(32!==t[0][0].length)throw new Error("TLV 0 should be 32 bytes");return{type:"nprofile",data:{pubkey:IS(t[0][0]),relays:t[1]?t[1].map(t=>bM.decode(t)):[]}}}case"nevent":{let t=_M(r);if(!t[0]?.[0])throw new Error("missing TLV 0 for nevent");if(32!==t[0][0].length)throw new Error("TLV 0 should be 32 bytes");if(t[2]&&32!==t[2][0].length)throw new Error("TLV 2 should be 32 bytes");if(t[3]&&4!==t[3][0].length)throw new Error("TLV 3 should be 4 bytes");return{type:"nevent",data:{id:IS(t[0][0]),relays:t[1]?t[1].map(t=>bM.decode(t)):[],author:t[2]?.[0]?IS(t[2][0]):void 0,kind:t[3]?.[0]?parseInt(IS(t[3][0]),16):void 0}}}case"naddr":{let t=_M(r);if(!t[0]?.[0])throw new Error("missing TLV 0 for naddr");if(!t[2]?.[0])throw new Error("missing TLV 2 for naddr");if(32!==t[2][0].length)throw new Error("TLV 2 should be 32 bytes");if(!t[3]?.[0])throw new Error("missing TLV 3 for naddr");if(4!==t[3][0].length)throw new Error("TLV 3 should be 4 bytes");return{type:"naddr",data:{identifier:bM.decode(t[0][0]),pubkey:IS(t[2][0]),kind:parseInt(IS(t[3][0]),16),relays:t[1]?t[1].map(t=>bM.decode(t)):[]}}}case"nsec":return{type:e,data:r};case"npub":case"note":return{type:e,data:IS(r)};default:throw new Error(`unknown prefix ${e}`)}}(t);return"nsec"!==e.type?null:e.data}catch{return null}}(e);if(!n)throw new Error("Invalid private key");return new t(n)}};async function Gz(t){window.open(t,"auth","width=400,height=600,resizable=no,status=no,location=no,toolbar=no,menubar=no")}var Zz=class t{static subscriptionMethod=void 0;static publishMethod=void 0;static pool=void 0;publishMethod;subscriptionMethod;log=_N.extend("NostrConnectSigner");signer;listening=!1;isConnected=!1;pubkey;relays;remote;get clientPubkey(){return DP(this.signer.key)}onAuth=Gz;verifyEvent=UP;connectSecret;bunkerSecret;get secret(){return this.connectSecret}set secret(t){this.connectSecret=t}nip04;nip44;constructor(e){this.relays=e.relays,this.pubkey=e.pubkey,this.remote=e.remote,this.connectSecret=e.connectSecret||e.secret||hM(12),this.bunkerSecret=e.bunkerSecret;const{subscriptionMethod:n,publishMethod:r}=function(t,e){const n=t.subscriptionMethod||t.pool?.subscription.bind(t.pool)||e?.subscriptionMethod||e?.pool?.subscription.bind(e.pool);if(!n)throw new Error("Missing subscriptionMethod, either pass a method or set subscriptionMethod globally on the class");const r=t.publishMethod||t.pool?.publish.bind(t.pool)||e?.publishMethod||e?.pool?.publish.bind(e.pool);if(!r)throw new Error("Missing publishMethod, either pass a method or set publishMethod globally on the class");return{subscriptionMethod:n,publishMethod:r}}(e,t);this.subscriptionMethod=(t,e)=>n(t,e),this.publishMethod=(t,e)=>r(t,e),e.onAuth&&(this.onAuth=e.onAuth),this.signer=e?.signer||new Hz,this.nip04={encrypt:this.nip04Encrypt.bind(this),decrypt:this.nip04Decrypt.bind(this)},this.nip44={encrypt:this.nip44Encrypt.bind(this),decrypt:this.nip44Decrypt.bind(this)}}req;async open(){if(this.listening)return;this.listening=!0;const t=await this.signer.getPublicKey();this.req=yO(this.subscriptionMethod(this.relays,[{kinds:[LR.NostrConnect],"#p":[t]}])).pipe(oN(),aN(),WO(t=>"string"!=typeof t)).subscribe(this.handleEvent.bind(this)),this.log("Opened",this.relays)}async close(){this.listening=!1,this.isConnected=!1,this.req&&(this.req.unsubscribe(),this.req=void 0),this.waitingPromise&&(this.waitingPromise.reject(new Error("Closed")),this.waitingPromise=null),this.log("Closed")}requests=new Map;auths=new Set;async handleEvent(t){if(this.verifyEvent(t)&&(!this.remote||t.pubkey===this.remote))try{const n=GM(t)??(function(t){const e=t.length;return!(e<28)&&"?"==t[e-28]&&"i"==t[e-27]&&"v"==t[e-26]&&"="==t[e-25]}(t.content)?await this.signer.nip04.decrypt(t.pubkey,t.content):await this.signer.nip44.decrypt(t.pubkey,t.content));if(!n)return;const r=JSON.parse(n);if(!this.remote&&("ack"===r.result||this.connectSecret&&r.result===this.connectSecret))return this.log("Got ack response from",t.pubkey,r.result),this.isConnected=!0,this.remote=t.pubkey,this.waitingPromise?.resolve(),void(this.waitingPromise=null);if(r.id){const t=this.requests.get(r.id);if(!t)return;if(r.error)if(this.log("Got Error",r.id,r.result,r.error),"auth_url"===r.result){if(!this.auths.has(r.id)&&(this.auths.add(r.id),this.onAuth))try{await this.onAuth(r.error)}catch(e){t.reject(e)}}else t.reject(new Error(r.error));else r.result&&(this.log("Got Response",r.id,r.result),t.resolve(r.result))}}catch(e){}}async createRequestEvent(t,e=this.remote,n=LR.NostrConnect){if(!e)throw new Error("Missing target pubkey");return await this.signer.signEvent({kind:n,created_at:uM(),tags:[["p",e]],content:t})}async makeRequest(t,e,n=LR.NostrConnect){if(!this.remote)throw new Error("Missing remote signer pubkey");const r=hM(8),i={id:r,method:t,params:e},s=await this.signer.nip44.encrypt(this.remote,JSON.stringify(i)),o=await this.createRequestEvent(s,this.remote,n);this.log(`Sending ${r} (${t}) ${JSON.stringify(e)}`);const a=dz();this.requests.set(r,a);const l=this.publishMethod?.(this.relays,o);return l instanceof Promise?await l:"subscribe"in l&&await new Promise(t=>l.subscribe({complete:t})),this.log(`Sent ${r} (${t})`),a}async connect(t,e){if(!this.remote&&this.pubkey&&(this.remote=this.pubkey),!this.remote)throw new Error("Missing remote signer pubkey");await this.open();try{void 0!==t&&(this.bunkerSecret=t);const n=await this.makeRequest(Bz.Connect,[this.remote,this.bunkerSecret||"",e?.join(",")??""]);return this.isConnected=!0,n}catch(n){throw this.isConnected=!1,this.close(),n}}waitingPromise=null;waitForSigner(t){return this.isConnected?Promise.resolve():(this.open(),this.waitingPromise=dz(),t?.addEventListener("abort",()=>{this.waitingPromise?.reject(new Error("Aborted")),this.waitingPromise=null,this.close()},!0),this.waitingPromise)}async createAccount(t,e,n,r){if(!this.remote)throw new Error("Remote pubkey must be set");await this.open();try{const i=await this.makeRequest(Bz.CreateAccount,[t,e,n??"",r?.join(",")??""]);return this.pubkey=i,this.isConnected=!0,i}catch(i){throw this.isConnected=!1,this.close(),i}}async requireConnection(){this.isConnected||await this.connect()}async getPublicKey(){if(this.pubkey)return this.pubkey;await this.requireConnection();const t=await this.makeRequest(Bz.GetPublicKey,[]);if(!PM(t))throw new Error("Remote signer returned an invalid public key");return t}async signEvent(t){await this.requireConnection();const e=await this.makeRequest(Bz.SignEvent,[JSON.stringify(t)]),n=JSON.parse(e);if(!this.verifyEvent(n))throw new Error("Invalid event");return n}async nip04Encrypt(t,e){return await this.requireConnection(),this.makeRequest(Bz.Nip04Encrypt,[t,e])}async nip04Decrypt(t,e){await this.requireConnection();const n=await this.makeRequest(Bz.Nip04Decrypt,[t,e]);return n.startsWith('["')&&n.endsWith('"]')?JSON.parse(n)[0]:n}async nip44Encrypt(t,e){return await this.requireConnection(),this.makeRequest(Bz.Nip44Encrypt,[t,e])}async nip44Decrypt(t,e){await this.requireConnection();const n=await this.makeRequest(Bz.Nip44Decrypt,[t,e]);return n.startsWith('["')&&n.endsWith('"]')?JSON.parse(n)[0]:n}async ping(){return await this.requireConnection(),this.makeRequest(Bz.Ping,[])}async switchRelays(){await this.requireConnection();const t=await this.makeRequest(Bz.SwitchRelays,[]);return null!==t&&Array.isArray(t)&&t.length>0&&(this.log("Switching relays from",this.relays,"to",t),this.relays=t,this.listening&&(await this.close(),await this.open())),t}async logout(){try{this.isConnected&&this.remote&&await this.makeRequest(Bz.Logout,[])}catch(d8){this.log("Failed to send logout request",d8)}finally{this.isConnected=!1,await this.close()}}getNostrConnectURI(t){return function(t){const e=new URLSearchParams,n=t.connectSecret??t.secret;if(!n)throw new Error("Invalid nostrconnect URI: missing secret");e.set("secret",n),t.metadata?.name&&e.set("name",t.metadata.name),t.metadata?.url&&e.set("url",String(t.metadata.url)),t.metadata?.image&&e.set("image",t.metadata.image),t.metadata?.permissions&&e.set("perms",t.metadata.permissions.join(","));for(const r of t.relays)e.append("relay",r);return`nostrconnect://${t.client}?`+e.toString()}({client:DP(this.signer.key),connectSecret:this.connectSecret,relays:this.relays,metadata:t})}getNbunksec(){if(!this.remote)throw new Error("Cant create nbunksec when remote signer is not set");return Wz({remote:this.remote,clientKey:IS(this.signer.key),relays:this.relays,bunkerSecret:this.bunkerSecret})}static parseBunkerURI(t){return function(t){const e=new URL(t),n=e.host||e.pathname.replace("//","");if(!PM(n))throw new Error("Invalid bunker URI: remote is not a valid hex key");const r=e.searchParams.getAll("relay");if(0===r.length)throw new Error("Invalid bunker URI: missing relays");const i=e.searchParams.get("secret")??void 0;return{remote:n,relays:r,secret:i,bunkerSecret:i}}(t)}static parseNbunksec(t){return function(t){const e=function(t){try{const{prefix:e,words:n}=$z.decode(t,!1);if("nbunksec"!==e)throw new Error(`Invalid prefix: ${e}`);const r=$z.fromWords(n);let i=0;const s={pubkey:"",local_key:"",relays:[]};for(;i`${Uz.SignEvent}:${t}`)]}(t)}static async fromBunkerURI(e,n){const{remote:r,relays:i,bunkerSecret:s}=t.parseBunkerURI(e),o=new t({relays:i,remote:r,bunkerSecret:s,...n});return await o.connect(s,n?.permissions),o}static async fromNbunksec(e,n){const{remote:r,clientKey:i,relays:s,bunkerSecret:o}=t.parseNbunksec(e),a=new t({relays:s,remote:r,signer:new Hz(PS(i)),bunkerSecret:o,...n});return await a.connect(o,n?.permissions),a}},Kz=Object.freeze({p:115792089237316195423570985008687907853269984665640564039457584007908834671663n,n:115792089237316195423570985008687907852837564279074904382605163141518161494337n,h:1n,a:0n,b:7n,Gx:55066263022277343669578718895168534326250603453777594175500187360389116729240n,Gy:32670510020758816978083085130507043184471273380659243275938904335757337482424n}),{p:Yz,n:Xz,Gx:Jz,Gy:Qz,b:tD}=Kz,eD={publicKey:33,publicKeyUncompressed:65,signature:64,seed:48},nD=(t="",e=Error)=>{const n=new e(t),{captureStackTrace:r}=Error;throw"function"==typeof r&&r(n,nD),n},rD=(t,e,n="")=>{const r=(i=t)instanceof Uint8Array||ArrayBuffer.isView(i)&&"Uint8Array"===i.constructor.name&&1===i.BYTES_PER_ELEMENT;var i;const s=t?.length,o=void 0!==e;return!r||o&&s!==e?nD((n&&`"${n}" `)+"expected Uint8Array"+(o?` of length ${e}`:"")+", got "+(r?`length=${s}`:"type="+typeof t),r?RangeError:TypeError):t},iD=t=>new Uint8Array(t),sD=(t,e)=>t.toString(16).padStart(e,"0"),oD=t=>{let e="";for(const n of rD(t))e+=sD(n,2);return e},aD=t=>t>=48&&t<=57?t-48:t>=65&&t<=70?t-55:t>=97&&t<=102?t-87:void 0,lD=t=>{const e="hex invalid";if("string"!=typeof t)return nD(e);const n=t.length,r=n/2;if(n%2)return nD(e);const i=iD(r);for(let s=0,o=0;s{let e=0;for(const i of t)e+=rD(i).length;const n=iD(e);let r=0;for(const i of t)n.set(i,r),r+=i.length;return n},uD=BigInt,hD=(t,e,n,r="bad number: out of range")=>"bigint"!=typeof t?nD(r,TypeError):e<=t&&t{const n=t%e;return n>=0n?n:e+n},pD=t=>t instanceof bD?t:nD("Point expected"),fD=t=>dD(dD(t*t)*t+tD),gD=t=>hD(t,0n,Yz),mD=t=>hD(t,1n,Yz),yD=t=>!(1n&t),vD=t=>Uint8Array.of(t),bD=class t{static BASE;static ZERO;X;Y;Z;constructor(t,e,n){this.X=gD(t),this.Y=mD(e),this.Z=gD(n),Object.freeze(this)}static CURVE(){return Kz}static fromAffine(e){const{x:n,y:r}=e;return 0n===n&&0n===r?_D:new t(n,r,1n)}static fromBytes(e){rD(e);const{publicKey:n,publicKeyUncompressed:r}=eD;let i;const s=e.length,o=e[0],a=e.subarray(1),l=xD(a,0,32);if(s===n&&(2===o||3===o)){let e=(t=>{const e=fD(mD(t));let n=1n;for(let r=e,i=(Yz+1n)/4n;i>0n;i>>=1n)1n&i&&(n=n*r%Yz),r=r*r%Yz;return dD(n*n)!==e&&nD("sqrt invalid"),yD(n)?n:dD(-n)})(l);3===o&&(e=dD(-e)),i=new t(l,e,1n)}return s===r&&4===o&&(i=new t(l,xD(a,32,64),1n)),i?i.assertValidity():nD("bad point: not on curve")}static fromHex(e){return t.fromBytes(lD(e))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}equals(t){const{X:e,Y:n,Z:r}=this,{X:i,Y:s,Z:o}=pD(t),a=dD(e*o),l=dD(i*r),c=dD(n*o),u=dD(s*r);return a===l&&c===u}is0(){return this.equals(_D)}negate(){return new t(this.X,dD(-this.Y),this.Z)}double(){return this.add(this)}add(e){const{X:n,Y:r,Z:i}=this,{X:s,Y:o,Z:a}=pD(e);let l=0n,c=0n,u=0n;const h=dD(3n*tD);let d=dD(n*s),p=dD(r*o),f=dD(i*a),g=dD(n+r),m=dD(s+o);g=dD(g*m),m=dD(d+p),g=dD(g-m),m=dD(n+i);let y=dD(s+a);return m=dD(m*y),y=dD(d+f),m=dD(m-y),y=dD(r+i),l=dD(o+a),y=dD(y*l),l=dD(p+f),y=dD(y-l),u=dD(0n*m),l=dD(h*f),u=dD(l+u),l=dD(p-u),u=dD(p+u),c=dD(l*u),p=dD(d+d),p=dD(p+d),f=dD(0n*f),m=dD(h*m),p=dD(p+f),f=dD(d-f),f=dD(0n*f),m=dD(m+f),d=dD(p*m),c=dD(c+d),d=dD(y*m),l=dD(g*l),l=dD(l-d),d=dD(g*p),u=dD(y*u),u=dD(u+d),new t(l,c,u)}subtract(t){return this.add(pD(t).negate())}multiply(t,e=!0){if(!e&&0n===t)return _D;if((t=>{hD(t,1n,Xz)})(t),1n===t)return this;if(this.equals(wD))return TD(t).p;let n=_D,r=wD;for(let i=this;t>0n;i=i.double(),t>>=1n)1n&t?n=n.add(i):e&&(r=r.add(i));return n}multiplyUnsafe(t){return this.multiply(t,!1)}toAffine(){const{X:t,Y:e,Z:n}=this;if(this.equals(_D))return{x:0n,y:0n};if(1n===n)return{x:t,y:e};const r=((t,e)=>{(0n===t||e<=0n)&&nD("no inverse n="+t+" mod="+e);let n=dD(t,e),r=e,i=0n,s=1n,o=1n,a=0n;for(;0n!==n;){const t=r/n,e=r%n,l=i-o*t,c=s-a*t;r=n,n=e,i=o,s=a,o=l,a=c}return 1n===r?dD(i,e):nD("no inverse")})(n,Yz);return 1n!==dD(n*r)&&nD("inverse invalid"),{x:dD(t*r),y:dD(e*r)}}assertValidity(){const{x:t,y:e}=this.toAffine();return mD(t),mD(e),dD(e*e)===fD(t)?this:nD("bad point: not on curve")}toBytes(t=!0){const{x:e,y:n}=this.assertValidity().toAffine(),r=SD(e);return t?cD((t=>vD(yD(t)?2:3))(n),r):cD(vD(4),r,SD(n))}toHex(t){return oD(this.toBytes(t))}},wD=new bD(Jz,Qz,1n),_D=new bD(0n,1n,0n);bD.BASE=wD,bD.ZERO=_D;var xD=(t,e,n)=>(t=>uD("0x"+(oD(t)||"0")))(t.subarray(e,n)),CD=2n**256n,SD=t=>lD(sD(hD(t,0n,CD),64)),kD=Math.ceil(32)+1,ED=void 0,RD=(t,e)=>{const n=e.negate();return t?n:e},TD=t=>{const e=ED||(ED=(()=>{const t=[];let e=wD,n=e;for(let r=0;r>=s,a>128&&(a-=256,t+=1n);const l=128*o,c=l,u=l+Math.abs(a)-1,h=o%2!=0,d=a<0;0===a?r=r.add(RD(h,e[c])):n=n.add(RD(d,e[u]))}return 0n!==t&&nD("invalid wnaf"),{p:n,f:r}};function LD(t){return bD.fromHex(t).toHex().substring(2)}var ID=new TextDecoder("utf-8"),PD=new TextEncoder;function MD(t){return btoa(String.fromCharCode(...t))}function AD(t){return new Uint8Array(atob(t).split("").map(t=>t.charCodeAt(0)))}(class t{log=_N.extend("SerialPortSigner");writer=null;pubkey;get isConnected(){return!!this.writer}verifyEvent=UP;nip04;constructor(){this.nip04={encrypt:this.nip04Encrypt.bind(this),decrypt:this.nip04Decrypt.bind(this)}}lastCommand=null;async callMethodOnDevice(e,n,r={}){if(!t.SUPPORTED)throw new Error("Serial devices are not supported");if(this.writer||await this.connectToDevice(r),this.lastCommand)throw new Error("Previous command to device still pending!");const i=dz();return this.lastCommand=i,this.sendCommand(e,n),setTimeout(()=>{i.reject(new Error("Device timeout")),this.lastCommand===i&&(this.lastCommand=null)},6e3),this.lastCommand}async connectToDevice({onConnect:e,onDisconnect:n,onError:r,onDone:i}){let s,o=await window.navigator.serial.requestPort();await o.open({baudRate:9600}),await new Promise(t=>setTimeout(t,1e3)),(async()=>{for(;o&&o.readable;){const e=new window.TextDecoderStream;o.readable.pipeTo(e.writable),s=e.readable.getReader();const n=this.readFromSerialPort(s);try{for(;;){const{value:e,done:r}=await n("\n");if(e){const{method:n,data:r}=this.parseResponse(e);if("/ping"===n&&this.log("Pong"),-1===t.PUBLIC_METHODS.indexOf(n))continue;this.log("Received: ",n,r),this.lastCommand&&(this.lastCommand.resolve(r),this.lastCommand=null)}if(r)return this.lastCommand=null,this.writer=null,void(i&&i())}}catch(d8){if(d8 instanceof Error)throw this.writer=null,r&&r(d8),this.lastCommand&&(this.lastCommand.reject(d8),this.lastCommand=null),d8}}})();const a=new window.TextEncoderStream;a.readable.pipeTo(o.writable),this.writer=a.writable.getWriter(),await this.sendCommand(t.METHOD_PING),await this.sendCommand(t.METHOD_PING,[window.location.host]),e&&e(),o.addEventListener("disconnect",()=>{this.log("Disconnected"),this.lastCommand=null,this.writer=null,n&&n()})}async sendCommand(t,e=[]){if(!this.writer)return;this.log("Send command",t,e);const n=[t].concat(e).join(" ");await this.writer.write(n+"\n")}readFromSerialPort(t){let e,n=[];return async(r="\n")=>{if(n.length)return{value:n.shift().trim(),done:!1};const i=[];for(e&&(i.push(e),e=void 0);;){const{value:s,done:o}=await t.read();if(s){const t=s.split(r);if(t.length>1)return i.push(t.shift()),e=t.pop(),n=t,{value:i.join("").trim(),done:!1};i.push(s)}if(o)return{value:i.join("").trim(),done:!0}}}}parseResponse(t){const e=t.split(" ")[0];return{method:e,data:t.substring(e.length).trim()}}async nip04Encrypt(e,n){const r=PS(await this.callMethodOnDevice(t.METHOD_SHARED_SECRET,[LD(e)]));let i=Uint8Array.from(window.crypto.getRandomValues(new Uint8Array(16))),s=PD.encode(n),o=await crypto.subtle.importKey("raw",r,{name:"AES-CBC"},!1,["encrypt"]),a=await crypto.subtle.encrypt({name:"AES-CBC",iv:i},o,s);return`${MD(new Uint8Array(a))}?iv=${MD(new Uint8Array(i.buffer))}`}async nip04Decrypt(e,n){let[r,i]=n.split("?iv=");const s=PS(await this.callMethodOnDevice(t.METHOD_SHARED_SECRET,[LD(e)]));let o=await crypto.subtle.importKey("raw",s,{name:"AES-CBC"},!1,["decrypt"]),a=AD(r),l=AD(i),c=await crypto.subtle.decrypt({name:"AES-CBC",iv:l},o,a);return ID.decode(c)}async getPublicKey(){const e=await this.callMethodOnDevice(t.METHOD_PUBLIC_KEY,[]);return this.pubkey=e,e}async restore(e){await this.callMethodOnDevice(t.METHOD_RESTORE,[IS(e)])}async signEvent(e){const n=e.pubkey||this.pubkey;if(!n)throw new Error("Unknown signer pubkey");const r={...e,id:NP({...e,pubkey:n})},i=await this.callMethodOnDevice(t.METHOD_SIGN_MESSAGE,[r.id]),s={...r,sig:i,pubkey:n};if(!this.verifyEvent(s))throw new Error("Invalid signature");return s}ping(){this.sendCommand(t.METHOD_PING,[window.location.host])}static SUPPORTED="navigator"in globalThis&&!!navigator.serial;static METHOD_PING="/ping";static METHOD_LOG="/log";static METHOD_SIGN_MESSAGE="/sign-message";static METHOD_SHARED_SECRET="/shared-secret";static METHOD_PUBLIC_KEY="/public-key";static METHOD_RESTORE="/restore";static PUBLIC_METHODS=[t.METHOD_PUBLIC_KEY,t.METHOD_SIGN_MESSAGE,t.METHOD_SHARED_SECRET,t.METHOD_RESTORE]});var OD=a({isMobile:()=>ND});function ND(){return"undefined"!=typeof navigator&&/Mobi|Android|iPhone|iPad/i.test(navigator.userAgent)}var FD,zD=a({default:()=>VD}),DD="marco:nostr_pubkey",jD="marco:nostr_signer_type",UD="marco:nostr_connect_local_key",BD="marco:nostr_connect_remote_pubkey",$D="marco:nostr_connect_relay",qD="wss://nostr.kosmos.org",VD=class extends fp{static{BF(this.prototype,"nostrRelay",[pp])}#at=void qF(this,"nostrRelay");static{BF(this.prototype,"nostrData",[pp])}#F=void qF(this,"nostrData");static{BF(this.prototype,"pubkey",[Wr],function(){return null})}#lt=void qF(this,"pubkey");static{BF(this.prototype,"signerType",[Wr],function(){return null})}#ct=void qF(this,"signerType");static{BF(this.prototype,"connectStatus",[Wr],function(){return null})}#ut=void qF(this,"connectStatus");static{BF(this.prototype,"connectUri",[Wr],function(){return null})}#ht=void qF(this,"connectUri");_signerInstance=null;constructor(){super(...arguments),"undefined"!=typeof localStorage&&(localStorage.debug="applesauce:*");const t=localStorage.getItem(DD),e=localStorage.getItem(jD);t&&(this.pubkey=t,this.signerType=e||"extension",this._verifyPubkey())}async _verifyPubkey(){if("extension"===this.signerType){if(void 0===window.nostr)return void this.disconnect();try{const t=await(new fz).getPublicKey();t!==this.pubkey&&(this.pubkey=t,localStorage.setItem(DD,this.pubkey)),this.nostrData.loadProfile(this.pubkey)}catch(t){console.warn("Failed to verify extension nostr pubkey, logging out",t),this.disconnect()}}else if("connect"===this.signerType)try{await this._initConnectSigner()}catch(t){console.warn("Failed to verify connect nostr pubkey, logging out",t),this.disconnect()}}get isMobile(){return ND()}get isConnected(){return!!this.pubkey&&("extension"!==this.signerType||void 0!==window.nostr)}get signer(){return this._signerInstance?this._signerInstance:"extension"===this.signerType&&void 0!==window.nostr?new fz:(this.signerType,null)}async connectWithExtension(){if(void 0===window.nostr)throw new Error("No NIP-07 Nostr extension found (e.g., Alby, nos2x).");try{return this._signerInstance=new fz,this.pubkey=await this._signerInstance.getPublicKey(),this.signerType="extension",localStorage.setItem(DD,this.pubkey),localStorage.setItem(jD,"extension"),this.nostrData.loadProfile(this.pubkey),this.pubkey}catch(d8){throw console.error("Failed to get public key from extension:",d8),d8}}_getLocalSigner(){let t,e=localStorage.getItem(UD);return e?t=Hz.fromKey(e):(t=new Hz,e=Array.from(t.key).map(t=>t.toString(16).padStart(2,"0")).join(""),localStorage.setItem(UD,e)),t}async connectWithApp(){this.connectStatus="waiting";try{const e=this._getLocalSigner(),n=qD;localStorage.setItem($D,n),this._signerInstance=new Zz({pool:this.nostrRelay.pool,relays:[n],signer:e,onAuth:async t=>{confirm(`Your signer app requests authentication via a web page. Open it now?\n\nURL: ${t}`)&&window.open(t,"_blank")}}),this.connectUri=this._signerInstance.getNostrConnectURI({name:"Marco",url:window.location.origin,description:"An unhosted maps application.",icons:[]}),this.isMobile&&(console.debug("Mobile detected, triggering deep link intent."),window.location.href=this.connectUri),console.debug("Opening signer connection to relay..."),await this._signerInstance.open(),console.debug("Signer connection opened successfully."),console.debug("Waiting for remote signer to ack via relay...");try{await this._signerInstance.waitForSigner(),console.debug("Remote signer ack received!")}catch(t){throw console.error("Error while waiting for remote signer ack:",t),t}return this.pubkey=await this._signerInstance.getPublicKey(),this.signerType="connect",this.connectStatus="connected",localStorage.setItem(DD,this.pubkey),localStorage.setItem(jD,"connect"),localStorage.setItem(BD,this._signerInstance.remote),this.nostrData.loadProfile(this.pubkey),this.pubkey}catch(d8){throw this.connectStatus=null,console.error("Failed to connect via Nostr Connect:",d8),d8}}async _initConnectSigner(){const t=localStorage.getItem(BD),e=localStorage.getItem($D)||qD;if(!t)throw new Error("Missing Nostr Connect remote pubkey.");const n=this._getLocalSigner();if(this._signerInstance=new Zz({pool:this.nostrRelay.pool,relays:[e],signer:n,remote:t,onAuth:async t=>{confirm(`Your signer app requests authentication via a web page. Open it now?\n\nURL: ${t}`)&&window.open(t,"_blank")}}),await this._signerInstance.open(),await this._signerInstance.getPublicKey()!==this.pubkey)throw new Error("Remote signer pubkey mismatch");this.nostrData.loadProfile(this.pubkey)}async signEvent(t){if(!this.signer)throw new Error("Not connected or extension missing. Please connect Nostr again.");return await this.signer.signEvent(t)}async disconnect(){this.pubkey=null,this.nostrData?.loadProfile(null),this.signerType=null,this.connectStatus=null,this.connectUri=null,this._signerInstance&&"function"==typeof this._signerInstance.close&&await this._signerInstance.close(),this._signerInstance=null,localStorage.removeItem(DD),localStorage.removeItem(jD),localStorage.removeItem(UD),localStorage.removeItem(BD),localStorage.removeItem($D)}};function WD(t){return Array.from(new Set(t))}function HD(t){const e={};e.kinds=WD(t.map(t=>t.kind)),e.authors=WD(t.map(t=>t.pubkey));const n=WD(t.map(t=>t.identifier).filter(t=>void 0!==t));return n.length>0&&(e["#d"]=n),e}function GD(t){const e=t.filter(t=>Mx(t.kind)),n=t.filter(t=>Ax(t.kind)),r=[],i=t=>{if(0===t.length)return;const e=function(t){const e=new Set(t.map(t=>t.kind));return new Set(t.map(t=>t.pubkey)).sizeArray.isArray(t)?yO(t):vO(t)),mN(t=>QP(t)));if(Array.isArray(n)){for(const t of n)QP(t);return yO(n)}return QP(n),vO(n)}(t,e)}function YD(t,e){return wO(t)?t.pipe(JO(1),pN(e)):e(t)}function XD(t,e,n,r,i){const s=new jA,o=new jA,a=s.pipe(t,WO(t=>t.length>0),TO(t=>e(t).pipe(fN(o),cN({resetOnRefCountZero:!1,resetOnComplete:!1,resetOnError:!1}))),fN(o),cN()),l=()=>{o.next(),o.complete(),s.complete()};return i?.signal&&(i.signal.aborted?l():i.signal.addEventListener("abort",l,{once:!0})),Object.assign(t=>new AA(e=>{const i=a.pipe(JO(1),zO(),WO(e=>n(t,e)),r??MA).subscribe(e);return s.next(t),i}),{stop:l,[Symbol.dispose]:l})}function JD(t){return(e,n)=>function(t,e,n){if("function"==typeof t)return t(e,n);if("object"==typeof t&&"request"in t)return t.request(e,n);throw new Error("Invalid upstream pool")}(t,e,n)}function QD(t){return(...e)=>{return n=t(...e),new AA(t=>{let e;const r=i=>{const s=i?n.next(i):n.next(),o=n=>{if(n.done)return t.complete();const i=[];wO(n.value)?e=n.value.subscribe({next:e=>{i.push(e),t.next(e)},error:e=>{t.error(e)},complete:()=>{r(i)}}):(i.push(n.value),t.next(n.value),r(i))};s instanceof Promise?s.then(o,e=>t.error(e)):o(s)};return r(),()=>e?.unsubscribe()}).pipe(cN());var n}}function tj(t,e){return n=>YD(e,e=>0===e.length?XA:t(e,GD(n)))}function ej(t){const e={...t};return t.relays&&(e.relays=[...t.relays]),e}function nj(t,e){return n=>YD(e,e=>t(e,[{ids:n.map(t=>t.id)}]))}function rj(t,e){return nj(t,[e])}function ij(t,e=rj){const n=new Map;return r=>{const i=function(t){let e=new Map;for(const n of t){let t=IM(n.relays,void 0);for(const r of t)e.has(r)?e.get(r)?.push(n):e.set(r,[n])}return e}(r);return BO(...Array.from(i).map(([r,i])=>(r=>{let i=n.get(r);return i||(i=e(t,r),n.set(r,i)),i})(r)(i)))}}!function(t){t.Error="error",t.Missing="missing",t.Found="found"}(FD||(FD={}));var sj,oj,aj=(t,e)=>e.some(e=>t instanceof e),lj=new WeakMap,cj=new WeakMap,uj=new WeakMap,hj={get(t,e,n){if(t instanceof IDBTransaction){if("done"===e)return lj.get(t);if("store"===e)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return pj(t[e])},set:(t,e,n)=>(t[e]=n,!0),has:(t,e)=>t instanceof IDBTransaction&&("done"===e||"store"===e)||e in t};function dj(t){hj=t(hj)}function pj(t){if(t instanceof IDBRequest)return function(t){const e=new Promise((e,n)=>{const r=()=>{t.removeEventListener("success",i),t.removeEventListener("error",s)},i=()=>{e(pj(t.result)),r()},s=()=>{n(t.error),r()};t.addEventListener("success",i),t.addEventListener("error",s)});return uj.set(e,t),e}(t);if(cj.has(t))return cj.get(t);const e=function(t){return"function"==typeof t?(e=t,(oj||(oj=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(e)?function(...t){return e.apply(fj(this),t),pj(this.request)}:function(...t){return pj(e.apply(fj(this),t))}):(t instanceof IDBTransaction&&function(t){if(lj.has(t))return;const e=new Promise((e,n)=>{const r=()=>{t.removeEventListener("complete",i),t.removeEventListener("error",s),t.removeEventListener("abort",s)},i=()=>{e(),r()},s=()=>{n(t.error||new DOMException("AbortError","AbortError")),r()};t.addEventListener("complete",i),t.addEventListener("error",s),t.addEventListener("abort",s)});lj.set(t,e)}(t),aj(t,sj||(sj=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]))?new Proxy(t,hj):t);var e}(t);return e!==t&&(cj.set(t,e),uj.set(e,t)),e}var fj=t=>uj.get(t),gj=["get","getKey","getAll","getAllKeys","count"],mj=["put","add","delete","clear"],yj=new Map;function vj(t,e){if(!(t instanceof IDBDatabase)||e in t||"string"!=typeof e)return;if(yj.get(e))return yj.get(e);const n=e.replace(/FromIndex$/,""),r=e!==n,i=mj.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!i&&!gj.includes(n))return;const s=async function(t,...e){const s=this.transaction(t,i?"readwrite":"readonly");let o=s.store;return r&&(o=o.index(e.shift())),(await Promise.all([o[n](...e),i&&s.done]))[0]};return yj.set(e,s),s}dj(t=>({...t,get:(e,n,r)=>vj(e,n)||t.get(e,n,r),has:(e,n)=>!!vj(e,n)||t.has(e,n)}));var bj=["continue","continuePrimaryKey","advance"],wj={},_j=new WeakMap,xj=new WeakMap,Cj={get(t,e){if(!bj.includes(e))return t[e];let n=wj[e];return n||(n=wj[e]=function(...t){_j.set(this,xj.get(this)[e](...t))}),n}};async function*Sj(...t){let e=this;if(e instanceof IDBCursor||(e=await e.openCursor(...t)),!e)return;const n=new Proxy(e,Cj);for(xj.set(n,e),uj.set(n,fj(e));e;)yield n,e=await(_j.get(n)||e.continue()),_j.delete(n)}function kj(t,e){return e===Symbol.asyncIterator&&aj(t,[IDBIndex,IDBObjectStore,IDBCursor])||"iterate"===e&&aj(t,[IDBIndex,IDBObjectStore])}function Ej(t){return 0===t||3===t||t>=1e4&&t<2e4}function Rj(t){return t>=3e4&&t<4e4}function Tj(t){return t>=2e4&&t<3e4}dj(t=>({...t,get:(e,n,r)=>kj(e,n)?Sj:t.get(e,n,r),has:(e,n)=>kj(e,n)||t.has(e,n)}));var Lj=Symbol.for("indexable-tags");function Ij(t,e){if(t.ids&&-1===t.ids.indexOf(e.id))return!1;if(t.kinds&&-1===t.kinds.indexOf(e.kind))return!1;if(t.authors&&-1===t.authors.indexOf(e.pubkey))return!1;if(t.since&&e.created_att.until)return!1;const n=function(t){let e=Reflect.get(t,Lj);if(!e){e=new Set;for(const n of t.tags)n.length>=2&&1===n[0].length&&e.add(n[0]+":"+n[1]);Reflect.set(t,Lj,e)}return e}(e);for(const r in t)if("&"===r[0]){const e=r.slice(1),i=t[r];if(i&&i.length>0)for(const t of i)if(!n.has(e+":"+t))return!1}for(const r in t)if("#"===r[0]){const e=r.slice(1),i=t[r];if(i){const r=t[`&${e}`],s=r?i.filter(t=>!r.includes(t)):i;if(0===s.length)continue;if(!s.some(t=>n.has(e+":"+t)))return!1}}return!0}function Pj(t,e){for(let n=0;nt.length>=2&&1===t[0].length&&Aj.includes(t[0])).map(t=>t[0]+t[1])}function Fj(t){if(Reflect.has(t,Oj))return Reflect.get(t,Oj);let e;if(Ej(t.kind)||Rj(t.kind)){const n=t.tags.find(t=>"d"===t[0])?.[1];e=t.kind+":"+t.pubkey+":"+(n??"")}else e=t.id;return Reflect.set(t,Oj,e),e}async function zj(t="nostr-idb",e){return await function(t,e,{blocked:n,upgrade:r,blocking:i,terminated:s}={}){const o=indexedDB.open(t,e),a=pj(o);return r&&o.addEventListener("upgradeneeded",t=>{r(pj(o.result),t.oldVersion,t.newVersion,pj(o.transaction),t)}),n&&o.addEventListener("blocked",t=>n(t.oldVersion,t.newVersion,t)),a.then(t=>{s&&t.addEventListener("close",()=>s()),i&&t.addEventListener("versionchange",t=>i(t.oldVersion,t.newVersion,t))}).catch(()=>{}),a}(t,3,{...e,async upgrade(t,n,r,i,s){if(0===n){const e=t.createObjectStore("events");e.createIndex("id","event.id",{unique:!0}),e.createIndex("pubkey","event.pubkey"),e.createIndex("kind","event.kind"),e.createIndex("created_at","event.created_at"),e.createIndex("tags","tags",{multiEntry:!0}),t.createObjectStore("used",{keyPath:"uid"}).createIndex("date","date")}1===n&&(t.deleteObjectStore("events"),t.deleteObjectStore("used"),t.deleteObjectStore("seen")),n<=2&&await async function(t){const e=t.objectStore("events");let n=await e.openCursor();const r=[];for(;n;){const t=n.primaryKey,e=n.value,i=e.event;if(Ej(i.kind)||Rj(i.kind)){const n=Fj(i);t!==n&&r.push({oldKey:t,newKey:n,value:e})}n=await n.continue()}for(const{oldKey:i,newKey:s,value:o}of r)await e.delete(i),await e.put(o,s)}(i),e?.upgrade&&e.upgrade(t,n,r,i,s)}})}function Dj(t,e){return e.created_at-t.created_at}var jj=a({countEventsForFilters:()=>Kj,getEventsForFilters:()=>Zj,getIdsForFilter:()=>Hj,getIdsForFilters:()=>Gj,queryForKinds:()=>Vj,queryForPubkeys:()=>Uj,queryForTag:()=>Bj,queryForTagAnd:()=>$j,queryForTime:()=>Wj});function Uj(t,e=[],n){const r=[],i=new Set;if(n)for(const l of e){const t=n.getPubkeyIndex(l);if(t){for(const e of t)i.add(e);r.push(l)}}if(r.length===e.length)return Promise.resolve(i);const s=t.transaction("events","readonly"),o=s.objectStore("events").index("pubkey"),a=e.filter(t=>!r.includes(t)).map(t=>o.getAllKeys(t).then(e=>((t,e)=>{for(const n of e)i.add(n);n&&n.setPubkeyIndex(t,new Set(e))})(t,e)));return s.commit(),Promise.all(a).then(()=>i)}function Bj(t,e,n,r){const i=[],s=new Set;if(r)for(const c of n){const t=r.getTagIndex(e+c);if(t){for(const e of t)s.add(e);i.push(c)}}if(i.length===n.length)return Promise.resolve(s);const o=t.transaction("events","readonly"),a=o.objectStore("events").index("tags"),l=n.map(t=>a.getAllKeys(e+t).then(n=>((t,n)=>{for(const e of n)s.add(e);r&&r.setTagIndex(e+t,new Set(n))})(t,n)));return o.commit(),Promise.all(l).then(()=>s)}function $j(t,e,n,r){if(0===n.length)return Promise.resolve(new Set);if(1===n.length)return Bj(t,e,n,r);const i=[],s=[];if(r)for(const c of n){const t=r.getTagIndex(e+c);t&&(s.push(t),i.push(c))}if(i.length===n.length)return Promise.resolve(qj(s));const o=t.transaction("events","readonly"),a=o.objectStore("events").index("tags"),l=n.filter(t=>!i.includes(t)).map(t=>a.getAllKeys(e+t).then(n=>((t,n)=>{const i=new Set(n);s.push(i),r&&r.setTagIndex(e+t,i)})(t,n)));return o.commit(),Promise.all(l).then(()=>qj(s))}function qj(t){if(0===t.length)return new Set;const e=t.slice().sort((t,e)=>t.size-e.size);let n=e[0];for(let r=1;r!r.includes(t)).map(t=>o.getAllKeys(t).then(e=>((t,e)=>{for(const n of e)i.add(n);n&&n.setKindIndex(t,new Set(e))})(t,e)));return s.commit(),Promise.all(a).then(()=>i)}async function Wj(t,e,n){let r;if(void 0!==e&&void 0!==n)r=IDBKeyRange.bound(e,n);else if(void 0!==e)r=IDBKeyRange.lowerBound(e);else{if(void 0===n)throw new Error("Missing since or until");r=IDBKeyRange.upperBound(n)}return(await t.getAllKeysFromIndex("events","created_at",r)).reverse()}async function Hj(t,e,n){if(e.search)return new Set;if(e.ids)return new Set(e.ids);let r=null;const i=t=>{const e=t instanceof Set?t:new Set(t);if(r)for(const n of r)e.has(n)||r.delete(n);else r=e;return r};let s=null;void 0!==e.since&&(s=await Wj(t,e.since,e.until),i(s));for(const o of Aj){const r=e[`&${o}`],s=e[`#${o}`];if(r?.length&&i(await $j(t,o,r,n)),s?.length){const e=r?.length?s.filter(t=>!r.includes(t)):s;e.length>0&&i(await Bj(t,o,e,n))}}if(e.authors&&i(await Uj(t,e.authors,n)),e.kinds&&i(await Vj(t,e.kinds,n)),void 0===e.since&&void 0!==e.until&&(s=await Wj(t,e.since,e.until),i(s)),e.limit&&s){const t=new Set;for(const n of s){if(t.size>=e.limit)break;r.has(n)&&t.add(n)}return t}if(null===r)throw new Error("Empty filter");return r}async function Gj(t,e,n){if(0===e.length)throw new Error("No Filters");let r=new Set;for(const i of e){const e=await Hj(t,i,n);for(const t of e)r.add(t)}return r}async function Zj(t,e,n,r){const i=await Gj(t,e,n);return await async function(t,e,n,r){const i=[];let s=[];if(r)for(const d of e){const t=r.get(d);t?i.push(t):s.push(d)}else s=e;const o=t.transaction("events","readonly"),a=o.objectStore("events"),l=t=>t&&i.push(t.event),c=Array.from(s).map(t=>a.get(t).then(l));o.commit();const u=await Promise.all(c).then(()=>i.sort(Dj));let h=1/0;for(const d of n)d.limit&&d.limith&&(u.length=h),u}(t,Array.from(i),e,r)}async function Kj(t,e,n){return(await Gj(t,e,n)).size}var Yj=wN.default("nostr-idb"),Xj=Yj.extend("prune");async function Jj(t,e,n){const r=t.transaction("events","readwrite"),i=r.objectStore("events"),s=await i.get(e);if(!s)return await r.commit(),!1;if(await i.delete(e),await r.commit(),n){const t=s.event;n.removeEvent(t)}return!0}var Qj=Yj.extend("WriteQueue"),tU=class{db;queuedIds=new Set;eventQueue=[];lastUsedQueue=new Set;processEvents=null;constructor(t){this.db=t}addEvent(t){const e=Fj(t);this.queuedIds.has(e)||(this.eventQueue.push(t),this.queuedIds.add(e),this.touch(t))}addEvents(t){const e=t.filter(t=>!this.queuedIds.has(Fj(t)));if(0!==e.length){this.eventQueue.push(...e);for(const t of e)this.queuedIds.add(Fj(t));this.touch(e)}}touch(t){if(Array.isArray(t))for(const e of t)this.lastUsedQueue.add(Fj(e));else this.lastUsedQueue.add(Fj(t))}matchPending(t){return this.eventQueue.filter(e=>Pj(t,e))}async flush(t=1e3){if(this.eventQueue.length>0){let e=[];for(let n=0;nfunction(t){if("object"!=typeof t||null===t)return!1;if("number"!=typeof t.kind)return!1;if("string"!=typeof t.content)return!1;if("number"!=typeof t.created_at)return!1;if("string"!=typeof t.id)return!1;if(!/^[a-f0-9]{64}$/.test(t.id))return!1;if("string"!=typeof t.pubkey)return!1;if(!/^[a-f0-9]{64}$/.test(t.pubkey))return!1;if(!Array.isArray(t.tags))return!1;for(const e of t.tags){if(!Array.isArray(e))return!1;for(const t of e)if("string"!=typeof t)return!1}return!0}(t))).filter(t=>Ej(t.kind)||Rj(t.kind)),r={};if(n.length>0){const e=t.transaction("events","readonly"),i=n.map(t=>{const n=Fj(t);return e.store.get(n).then(t=>t&&(r[n]=t.event.created_at))});e.commit(),await Promise.all(i)}const i=t.transaction("events","readwrite");for(const s of e){const t=Fj(s);(!r[t]||s.created_at>r[t])&&i.objectStore("events").put({event:s,tags:Nj(s)},t)}await i.commit()}(this.db,e),Qj(`Wrote ${e.length} to database`),this.eventQueue.length>0&&Qj(`${this.eventQueue.length} left`)}this.lastUsedQueue.size>0&&(await async function(t,e){const n=t.transaction("used","readwrite"),r=Math.floor((new Date).valueOf()/1e3);for(const i of e)n.objectStore("used").put({uid:i,date:r});await n.commit()}(this.db,this.lastUsedQueue),this.lastUsedQueue.clear())}clear(){this.eventQueue=[]}},eU=Yj.extend("cache:indexes"),nU=class extends Set{type;key;constructor(t,e,n){super(t),this.type=e,this.key=n}},rU=class{kinds=new Map;pubkeys=new Map;tags=new Map;get count(){return this.kinds.size+this.pubkeys.size+this.tags.size}max=1e3;lastUsed=[];useIndex(t){const e=this.lastUsed.indexOf(t);-1!==e&&this.lastUsed.splice(e,e+1),this.lastUsed.push(t)}getKindIndex(t){const e=this.kinds.get(t);return e&&this.useIndex(e),e}setKindIndex(t,e){const n=new nU(e,"kind",t);this.kinds.set(t,n),this.useIndex(n),this.pruneIndexes()}getPubkeyIndex(t){const e=this.pubkeys.get(t);return e&&this.useIndex(e),e}setPubkeyIndex(t,e){const n=new nU(e,"pubkey",t);this.pubkeys.set(t,n),this.useIndex(n),this.pruneIndexes()}getTagIndex(t){const e=this.tags.get(t);return e&&this.useIndex(e),e}setTagIndex(t,e){const n=new nU(e,"tag",t);this.tags.set(t,n),this.useIndex(n),this.pruneIndexes()}addEventToIndexes(t){const e=Fj(t);this.getKindIndex(t.kind)?.add(e),this.getPubkeyIndex(t.pubkey)?.add(e);const n=Nj(t);for(const r of n)this.getTagIndex(r)?.add(e)}removeEvent(t){const e=Fj(t);this.getKindIndex(t.kind)?.delete(e),this.getPubkeyIndex(t.pubkey)?.delete(e);const n=Nj(t);for(const r of n)this.getTagIndex(r)?.delete(e)}clear(){this.kinds.clear(),this.pubkeys.clear(),this.tags.clear(),this.lastUsed=[]}pruneIndexes(){for(;this.lastUsed.length>0&&this.lastUsed.length>this.max;){const t=this.lastUsed.shift();if(!t)return;switch(eU(`Forgetting ${t.type}:${t.key}`),t.type){case"kind":this.kinds.delete(t.key);break;case"pubkey":this.pubkeys.delete(t.key);break;case"tag":this.tags.delete(t.key)}}}},iU={},sU=function(t,e){let n=Promise.resolve();if(e&&e.length>0){const t=document.getElementsByTagName("link"),i=document.querySelector("meta[property=csp-nonce]"),s=i?.nonce||i?.getAttribute("nonce");r=e.map(e=>{var n;if(n=e=function(t){return"/"+t}(e),(e=import.meta.resolve?import.meta.resolve(n):new URL(n,import.meta.url).href)in iU)return;iU[e]=!0;const r=e.endsWith(".css");for(let s=t.length-1;s>=0;s--){const n=t[s];if(n.href===e&&(!r||"stylesheet"===n.rel))return}const i=document.createElement("link");return i.rel=r?"stylesheet":"modulepreload",r||(i.as="script"),i.crossOrigin="",i.href=e,s&&i.setAttribute("nonce",s),document.head.appendChild(i),r?new Promise((t,n)=>{i.addEventListener("load",t),i.addEventListener("error",()=>n(new Error(`Unable to preload CSS for ${e}`)))}):void 0}),n=Promise.all(r.map(t=>Promise.resolve(t).then(t=>({status:"fulfilled",value:t}),t=>({status:"rejected",reason:t}))))}var r;function i(t){const e=new Event("vite:preloadError",{cancelable:!0});if(e.payload=t,window.dispatchEvent(e),!e.defaultPrevented)throw t}return n.then(e=>{for(const t of e||[])"rejected"===t.status&&i(t.reason);return t().catch(i)})},oU={batchWrite:1e3,writeInterval:100,cacheIndexes:1e3,pruneInterval:6e4,maxEvents:1e4},aU=Yj.extend("nostridb"),lU=class{options;running=!1;writeInterval;pruneInterval;eventMap=new Map;writeQueue=null;indexCache;db=null;baseEoseTimeout=4400;subscriptions=new Map;constructor(t,e={}){this.options={...oU,...e},t&&(this.db=t,this.writeQueue=new tU(t)),this.indexCache=new rU,this.indexCache.max=this.options.cacheIndexes,this.start()}async getDb(){return this.db||(this.db=await zj()),this.db}async getWriteQueue(){if(this.writeQueue)return this.writeQueue;const t=await this.getDb();return this.writeQueue=new tU(t),this.writeQueue}async flush(){await(await this.getWriteQueue()).flush(),this.writeInterval=setTimeout(this.flush.bind(this),this.options.writeInterval)}async start(){if(this.running)return;aU("Starting"),this.running=!0;const t=await this.getDb();await this.flush(),this.pruneInterval=setInterval(()=>{!async function(t,e){const n=await function(t){return t.transaction("events","readonly").store.count()}(t);if(n<=e)return;const r=n-e;if(r<=0)return;Xj(`Pruning database to ${e}`);const i=(await t.getAll("used")).sort((t,e)=>t.date-e.date),s=[];let o=r;for(const u of i){if(o<=0)break;const t=u.uid;s.push(t),o--}if(0===s.length)return;const a=t.transaction("events","readwrite"),l=t.transaction("used","readwrite"),c=[];for(const u of s)c.push(a.store.delete(u)),c.push(l.store.delete(u));a.commit(),l.commit(),await Promise.all(c),Xj(`Removed ${s.length} old events`)}(t,this.options.maxEvents)},this.options.pruneInterval)}async stop(){this.running&&(this.writeInterval&&(clearTimeout(this.writeInterval),this.writeInterval=void 0),this.pruneInterval&&(clearInterval(this.pruneInterval),this.pruneInterval=void 0),this.running=!1,aU("Stopped"))}async add(t){Tj(t.kind)||((await this.getWriteQueue()).addEvent(t),this.indexCache.addEventToIndexes(t));const e=Fj(t);if(!this.eventMap.has(e)){Tj(t.kind)||this.eventMap.set(e,t);for(const[e,n]of this.subscriptions)n.event&&Pj(n.filters,t)&&n.event(t)}return!0}async event(t){return(await(await this.getDb()).get("events",t))?.event}async replaceable(t,e,n){return this.event([t,e,n??""].join(":"))}async count(t){const e=Array.isArray(t)?t:[t],n=await this.getDb();return await Kj(n,e)}async query(t){const e=Array.isArray(t)?t:[t],n=await this.getDb(),r=(await this.getWriteQueue()).matchPending(e),i=await Zj(n,e,this.indexCache,this.eventMap);this.addToEventMaps(i);const s=new Set(r.map(t=>Fj(t)));return r.length>0?[...i.filter(t=>!s.has(Fj(t))),...r].sort(Dj):i}async*subscribe(t){const e=Array.isArray(t)?t:[t],n=[],r=new Set;let i=null,s=!1;const o=this.subscribeInternal(e,{event:t=>{const e=Fj(t);if(!r.has(e)&&(r.add(e),n.push(t),i)){const t=i;i=null,t()}},complete:()=>{if(s=!0,i){const t=i;i=null,t()}}});try{for(;;){for(;n.length>0;)yield n.shift();if(s)break;await new Promise(t=>{i=t})}}finally{o.close()}}async supports(){return[]}async deleteEvent(t){const e=await this.getDb(),n=await Jj(e,t,this.indexCache);return this.eventMap.delete(t),n}async deleteReplaceable(t,e,n){const r=await this.getDb(),i=await async function(t,e,n,r,i){if(!Ej(n)&&!Rj(n))throw new Error(`Kind ${n} is not replaceable`);return await Jj(t,`${n}:${e}:${r??""}`,i)}(r,t,e,n,this.indexCache);if(i){const r=`${e}:${t}:${n??""}`;this.eventMap.delete(r)}return i}async deleteByFilters(t){const e=Array.isArray(t)?t:[t],n=await this.getDb(),r=await this.getEventIdsForFilters(e),i=await async function(t,e,n){const r=await Gj(t,e,n);return await async function(t,e,n){if(0===e.length)return 0;const r=t.transaction("events","readwrite"),i=r.objectStore("events");let s=0;const o=[];for(const a of e){const t=await i.get(a);t&&(o.push(t.event),await i.delete(a),s++)}if(await r.commit(),n&&o.length>0)for(const a of o)n.removeEvent(a);return s}(t,Array.from(r),n)}(n,e,this.indexCache);if(i>0)for(const s of r)this.eventMap.delete(s);return i}async deleteAllEvents(){const t=await this.getDb();await async function(t,e){const n=t.transaction("events","readwrite");await n.objectStore("events").clear(),await n.commit(),e&&e.clear()}(t,this.indexCache),this.eventMap.clear()}async getEventIdsForFilters(t){const e=await this.getDb(),{getIdsForFilters:n}=await sU(async()=>{const{getIdsForFilters:t}=await Promise.resolve().then(()=>jj);return{getIdsForFilters:t}},void 0),r=await n(e,t,this.indexCache);return Array.from(r)}addToEventMaps(t){for(const e of t)this.eventMap.set(Fj(e),e)}subscribeInternal(t,e){const n=((t=21)=>crypto.getRandomValues(new Uint8Array(t)).reduce((t,e)=>t+((e&=63)<36?e.toString(36):e<62?(e-26).toString(36).toUpperCase():e>62?"-":"_"),""))(),r={id:n,filters:t,closed:!1,close:()=>this.unsubscribe(n),...e};return this.subscriptions.set(n,r),this.executeSubscription(r),r}async executeSubscription(t){const e=(new Date).valueOf();aU(`Running ${t.id}`,t.filters);const n=(await this.getWriteQueue()).matchPending(t.filters);return new Promise(async r=>{const i=await this.getDb(),s=setTimeout(()=>{t.eose&&!t.closed&&t.eose(),r()},this.baseEoseTimeout);Zj(i,t.filters,this.indexCache,this.eventMap).then(i=>{if(clearTimeout(s),this.addToEventMaps(i),t.event&&!t.closed){const r=new Set(n.map(t=>Fj(t))),s=n.length>0?[...i.filter(t=>!r.has(Fj(t))),...n].sort(Dj):i;for(const e of s)try{t.event(e)}catch(d8){aU("event handler failed with error",d8)}const o=(new Date).valueOf()-e;aU(`Finished ${t.id} took ${o}ms and got ${s.length} events`)}t.eose&&!t.closed&&t.eose(),r()})})}unsubscribe(t){const e=this.subscriptions.get(t);e&&(aU(`Closing ${t}`),e.closed=!0,e.complete?.(),this.subscriptions.delete(t))}},cU=a({excludeRequiredRelays:()=>pU,mergeRequiredRelays:()=>dU,normalizeRelayUrl:()=>uU,parsePlacePhotos:()=>fU,uniqNormalizedRelays:()=>hU});function uU(t){if(!t)return"";let e=t.trim().toLowerCase();if(!e)return"";for(e.startsWith("ws://")||e.startsWith("wss://")||(e="wss://"+e);e.endsWith("/");)e=e.slice(0,-1);return e}function hU(t=[]){return Array.from(new Set(t.map(uU).filter(Boolean)))}function dU(t=[],e=[]){const n=new Set(t.filter(Boolean)),r=[...t.filter(Boolean)];for(const i of hU(e))n.has(i)||r.push(i);return r}function pU(t=[],e=[]){const n=new Set(e.filter(Boolean));return hU(t).filter(t=>!n.has(t))}function fU(t){if(!t||0===t.length)return[];const e=[...t].sort((t,e)=>t.created_at-e.created_at),n=[];for(const i of e){const t=i.tags.filter(t=>"t"===t[0]).map(t=>t[1]).filter(Boolean),e=i.tags.filter(t=>"imeta"===t[0]);for(const r of e){let e=null,s=null,o=null,a=!1,l=16/9,c=null,u=i.tags.find(t=>"i"===t[0])?.[1];const h=i.tags.find(t=>"published_at"===t[0])?.[1],d=h?Number(h):null;for(const t of r.slice(1))if(t.startsWith("url "))e=t.substring(4);else if(t.startsWith("thumb "))s=t.substring(6);else if(t.startsWith("blurhash "))o=t.substring(9);else if(t.startsWith("dim ")){const[e,n]=t.substring(4).split("x").map(Number);e&&n&&(l=e/n,e>n&&(a=!0))}else if(t.startsWith("alt ")){const e=t.substring(4).trim();c="A photo of a place"===e?null:e||null}e&&n.push({eventId:i.id,pubkey:i.pubkey,createdAt:i.created_at,publishedAt:d&&d>0?d:null,url:e,thumbUrl:s,blurhash:o,isLandscape:a,aspectRatio:l,placeIdentifier:u,tags:t,alt:c})}}if(0===n.length)return[];const r=n.findIndex(t=>t.isLandscape);if(r>0){const[t]=n.splice(r,1);n.unshift(t)}return n}var gU="0123456789bcdefghjkmnpqrstuvwxyz",mU=class t{static encode(e,n,r){if(void 0===r){for(let r=1;r<=12;r++){const i=t.encode(e,n,r),s=t.decode(i);if(s.lat==e&&s.lon==n)return i}r=12}if(e=Number(e),n=Number(n),r=Number(r),isNaN(e)||isNaN(n)||isNaN(r))throw new Error("Invalid geohash");let i=0,s=0,o=!0,a="",l=-90,c=90,u=-180,h=180;for(;a.length=t?(i=2*i+1,u=t):(i*=2,h=t)}else{const t=(l+c)/2;e>=t?(i=2*i+1,l=t):(i*=2,c=t)}o=!o,5==++s&&(a+=gU.charAt(i),s=0,i=0)}return a}static decode(e){const n=t.bounds(e),r=n.sw.lat,i=n.sw.lon,s=n.ne.lat,o=n.ne.lon;let a=(r+s)/2,l=(i+o)/2;return a=a.toFixed(Math.floor(2-Math.log(s-r)/Math.LN10)),l=l.toFixed(Math.floor(2-Math.log(o-i)/Math.LN10)),{lat:Number(a),lon:Number(l)}}static bounds(t){if(0==t.length)throw new Error("Invalid geohash");t=t.toLowerCase();let e=!0,n=-90,r=90,i=-180,s=180;for(let o=0;o=0;t--){const o=l>>t&1;if(e){const t=(i+s)/2;1==o?i=t:s=t}else{const t=(n+r)/2;1==o?n=t:r=t}e=!e}}return{sw:{lat:n,lon:i},ne:{lat:r,lon:s}}}static adjacent(e,n){if(e=e.toLowerCase(),n=n.toLowerCase(),0==e.length)throw new Error("Invalid geohash");if(-1=="nsew".indexOf(n))throw new Error("Invalid direction");const r=e.slice(-1);let i=e.slice(0,-1);const s=e.length%2;return-1!={n:["prxz","bcfguvyz"],s:["028b","0145hjnp"],e:["bcfguvyz","prxz"],w:["0145hjnp","028b"]}[n][s].indexOf(r)&&""!=i&&(i=t.adjacent(i,n)),i+gU.charAt({n:["p0r21436x8zb9dcf5h7kjnmqesgutwvy","bc01fg45238967deuvhjyznpkmstqrwx"],s:["14365h7k9dcfesgujnmqp0r2twvyx8zb","238967debc01fg45kmstqrwxuvhjyznp"],e:["bc01fg45238967deuvhjyznpkmstqrwx","p0r21436x8zb9dcf5h7kjnmqesgutwvy"],w:["238967debc01fg45kmstqrwxuvhjyznp","14365h7k9dcfesgujnmqp0r2twvyx8zb"]}[n][s].indexOf(r))}static neighbours(e){return{n:t.adjacent(e,"n"),ne:t.adjacent(t.adjacent(e,"n"),"e"),e:t.adjacent(e,"e"),se:t.adjacent(t.adjacent(e,"s"),"e"),s:t.adjacent(e,"s"),sw:t.adjacent(t.adjacent(e,"s"),"w"),w:t.adjacent(e,"w"),nw:t.adjacent(t.adjacent(e,"n"),"w")}}},yU=a({getGeohashPrefixesInBbox:()=>vU});function vU(t){const{minLat:e,minLon:n,maxLat:r,maxLon:i}=t,s=new Set;if(Math.abs(r-e)>20||Math.abs(i-n)>20)return console.debug("BBox too large for 4-char geohash scanning, aborting fine scan."),[];for(let a=e;a<=r+.1;a+=.1)for(let t=n;t<=i+.1;t+=.1){const e=Math.min(a,r),n=Math.min(t,i);try{const t=mU.encode(e,n,4);s.add(t)}catch(o){}}try{s.add(mU.encode(e,n,4))}catch(o){}try{s.add(mU.encode(r,i,4))}catch(o){}try{s.add(mU.encode(e,i,4))}catch(o){}try{s.add(mU.encode(r,n,4))}catch(o){}return Array.from(s)}var bU=a({default:()=>CU}),wU=["wss://relay.primal.net","wss://nos.lol","wss://relay.damus.io"],_U=["wss://nostr.kosmos.org"],xU=[],CU=class extends fp{static{BF(this.prototype,"nostrRelay",[pp])}#at=void qF(this,"nostrRelay");static{BF(this.prototype,"nostrAuth",[pp])}#N=void qF(this,"nostrAuth");static{BF(this.prototype,"settings",[pp])}#z=void qF(this,"settings");store=new mF;static{BF(this.prototype,"profile",[Wr],function(){return null})}#dt=void qF(this,"profile");static{BF(this.prototype,"mailboxes",[Wr],function(){return null})}#pt=void qF(this,"mailboxes");static{BF(this.prototype,"blossomServers",[Wr],function(){return[]})}#ft=void qF(this,"blossomServers");static{BF(this.prototype,"placePhotos",[Wr],function(){return[]})}#gt=void qF(this,"placePhotos");static{BF(this.prototype,"myContributionEvents",[Wr],function(){return[]})}#mt=void qF(this,"myContributionEvents");static{BF(this.prototype,"profiles",[Wr],function(){return{}})}#yt=void qF(this,"profiles");static{BF(this.prototype,"zapReceipts",[Wr],function(){return{}})}#vt=void qF(this,"zapReceipts");_profileSub=null;_mailboxesSub=null;_blossomSub=null;_photosSub=null;_contributionsSub=null;_profileModelSubs=new Map;_zapReceiptsSub=null;_zapReceiptsNetworkSub=null;_zapRefreshTimer=null;_lastPhotoIds=new Set;_requestSub=null;_cachePromise=null;_currentPlaceEntityId=null;loadedGeohashPrefixes=new Set;constructor(){super(...arguments),function(t,e,n){const r=function(t,e){const n=function(t,e){const n=JD(t);return XD(HO(e?.bufferTime??1e3,void 0,e?.bufferSize??200),function(...t){return QD(function*(e){if(0===(e=function(t){let e=new Map;for(let n of t){let t=e.get(n.id);t&&n.relays?t.relays?t.relays=[...t.relays,...n.relays.filter(e=>!t.relays.includes(e))]:t.relays=[...n.relays]:t||e.set(n.id,{...n})}return Array.from(e.values())}(e)).length)return;const n=new Set;let r=Array.from(e);for(const i of t)if(void 0!==i&&(yield i(r).pipe(GO(()=>XA),mN(t=>n.add(t.id))),r=r.filter(t=>!n.has(t.id)),0===r.length))return})}(e?.cacheRequest?function(t){return e=>(e=e.filter(t=>!1!==t.cache),0===e.length?XA:KD(t,[{ids:e.map(t=>t.id)}]))}(e.cacheRequest):void 0,!1!==e?.followRelayHints?ij(n):void 0,e?.extraRelays?nj(n,e.extraRelays):void 0),(t,e)=>e.id===t.id,null===e?.eventStore?MA:vF(e?.eventStore||new rF),{signal:e?.signal})}(t,{bufferTime:e?.bufferTime,bufferSize:e?.bufferSize,eventStore:e?.eventStore,cacheRequest:e?.cacheRequest,followRelayHints:e?.followRelayHints,extraRelays:e?.extraRelays,signal:e?.signal}),r=function(t,e){const n=JD(t);return XD(HO(e?.bufferTime??1e3,void 0,e?.bufferSize??200),function(...t){return QD(function*(e){if(0===(e=function(t){const e=new Map;for(const n of t){const t=JP(n.kind,n.pubkey,n.identifier);if(e.has(t)){const r=e.get(t);n.relays&&n.relays.length>0&&(r.relays?r.relays=IM(r.relays,n.relays):r.relays=n.relays),!1===n.cache&&(r.cache=!1)}else e.set(t,ej(n))}return Array.from(e.values())}(e.filter(ZD))).length)return;let n=Array.from(e);for(const r of t){if(void 0===r)continue;const t=yield r(n).pipe(GO(()=>XA)),e=new Set(t.filter(t=>YP(t.kind)).map(t=>XP(t)));if(n=n.filter(t=>!e.has(JP(t.kind,t.pubkey,t.identifier))),0===n.length)return}})}(e?.cacheRequest?function(t){return e=>(e=e.filter(t=>!1!==t.cache),0===e.length?XA:KD(t,GD(e)))}(e.cacheRequest):void 0,!1!==e?.followRelayHints?function(t){return e=>{const n=IM(...e.map(t=>t.relays));return 0===n.length?XA:t(n,GD(e))}}(n):void 0,e?.extraRelays?tj(n,e.extraRelays):void 0,e?.lookupRelays?tj(n,e.lookupRelays):void 0),(t,e)=>e.kind===t.kind&&e.pubkey===t.pubkey&&(void 0===t.identifier||tM(e)===t.identifier),null===e?.eventStore?MA:vF(e?.eventStore||new rF),{signal:e?.signal})}(t,{bufferTime:e?.bufferTime,bufferSize:e?.bufferSize,eventStore:e?.eventStore,cacheRequest:e?.cacheRequest,followRelayHints:e?.followRelayHints,extraRelays:e?.extraRelays,lookupRelays:e?.lookupRelays,signal:e?.signal}),i=()=>{n.stop(),r.stop()};return Object.assign(t=>FM(t)?n(t):r(t),{stop:i,[Symbol.dispose]:i})}(e,{...n,eventStore:t});t.eventLoader=r}(this.store,this.nostrRelay.pool,{cacheRequest:t=>this.cache?yO(this.cache.query(t)):XA,lookupRelays:wU}),this._cachePromise=zj("applesauce-events").then(async t=>{this.cache=new lU(t,{cacheIndexes:1e3,maxEvents:1e4}),await this.cache.start(),this._stopPersisting=function(t,e,n){const r=n?.batchTime??5e3,i=t.insert$.pipe(WO(t=>{return e=t,!(!0===Reflect.get(e,GP));var e}),n?.maxBatchSize?HO(r,void 0,n?.maxBatchSize??100):HO(r),WO(t=>t.length>0)).subscribe(t=>{e(t).then(()=>xN(`Saved ${t.length} events to cache`)).catch(e=>xN(`Failed to save ${t.length} events to cache`,e))});return()=>i.unsubscribe()}(this.store,async t=>{const e=t.filter(t=>0===t.kind||5===t.kind||10002===t.kind||10063===t.kind||360===t.kind||9735===t.kind);e.length>0&&await Promise.all(e.map(t=>this.cache.add(t)))},{batchTime:1e3,maxBatchSize:100})}),this.nostrRelay.pool.relays$.subscribe(()=>{})}get requiredReadRelays(){return _U}get requiredWriteRelays(){return xU}get mailboxReadRelays(){return(this.mailboxes?.inboxes||[]).map(uU).filter(Boolean)}get mailboxWriteRelays(){return(this.mailboxes?.outboxes||[]).map(uU).filter(Boolean)}get configuredReadRelays(){return pU(hU([...this.mailboxReadRelays,...this.settings.nostrReadRelays||[]]),this.settings.nostrReadRelayExclusions||[])}get configuredWriteRelays(){return pU(hU([...this.mailboxWriteRelays,...this.settings.nostrWriteRelays||[]]),this.settings.nostrWriteRelayExclusions||[])}get activeReadRelays(){return dU(this.requiredReadRelays,this.configuredReadRelays)}get activeWriteRelays(){return dU(this.requiredWriteRelays,this.configuredWriteRelays)}async loadPlacesInBounds(t){const e=vU(t).filter(t=>!this.loadedGeohashPrefixes.has(t));if(0!==e.length){console.debug("[nostr-data] Loading place photos for prefixes:",e);try{await this._cachePromise;const t=await this.cache.query([{kinds:[360],"#g":e}]);if(t&&t.length>0)for(const e of t)this.store.add(e)}catch(n){console.warn("[nostr-data] Failed to read photos from local Nostr IDB cache",n)}this.nostrRelay.pool.request(this.activeReadRelays,[{kinds:[360],"#g":e}]).subscribe({next:t=>{this.store.add(t)},error:t=>{console.error("[nostr-data] Error fetching place photos by geohash:",t)}});for(const t of e)this.loadedGeohashPrefixes.add(t)}}async loadPhotosForPlace(t){const e=t&&t.osmId&&t.osmType?`osm:${t.osmType}:${t.osmId}`:null;if((!e||e!==this._currentPlaceEntityId)&&(this._photosSub&&(this._photosSub.unsubscribe(),this._photosSub=null),this._cleanupZapReceiptSubs(),this._clearZapRefreshTimer(),this.placePhotos=[],this.zapReceipts={},this._lastPhotoIds=new Set,this._clearProfileSubs(),this._currentPlaceEntityId=e,e)){this._photosSub=this.store.timeline([{kinds:[360],"#i":[e]}]).subscribe(t=>{this.placePhotos=t;const e=[...new Set(t.map(t=>t.pubkey))];this.loadProfiles(e),this._scheduleZapReceiptRefresh(t)});try{await this._cachePromise;const t=await this.cache.query([{kinds:[360,5],"#i":[e]}]);if(t&&t.length>0)for(const e of t)this.store.add(e)}catch(n){console.warn("[nostr-data] Failed to read photos for place from local Nostr IDB cache",n)}this.nostrRelay.pool.request(this.activeReadRelays,[{kinds:[360,5],"#i":[e]}]).subscribe({next:t=>{this.store.add(t)},error:t=>{console.error("[nostr-data] Error fetching place photos for place:",t)}})}}async loadMyContributions(t){if(!t)return;this.myContributionEvents=[],this._contributionsSub&&(this._contributionsSub.unsubscribe(),this._contributionsSub=null);const e=[{kinds:[360,5],authors:[t]}];this._contributionsSub=this.store.timeline(e).subscribe(t=>{this.myContributionEvents=t});try{await this._cachePromise;const t=await this.cache.query(e);if(t&&t.length>0)for(const e of t)this.store.add(e)}catch(n){console.warn("[nostr-data] Failed to read my contributions from local Nostr IDB cache",n)}this.nostrRelay.pool.request(this.activeReadRelays,e).subscribe({next:t=>{this.store.add(t)},error:t=>{console.error("[nostr-data] Error fetching my contribution events:",t)}})}loadProfiles(t){const e=t.filter(t=>t&&!this._profileModelSubs.has(t));for(const n of e){const t=this.store.model(pF,n).subscribe(t=>{this.profiles={...this.profiles,[n]:t}});this._profileModelSubs.set(n,t)}}getProfile(t){return this.profiles[t]}_clearProfileSubs(){for(const t of this._profileModelSubs.values())t.unsubscribe();this._profileModelSubs.clear(),this.profiles={}}async loadProfile(t){if(!t)return;this.profile=null,this.mailboxes=null,this.blossomServers=[],this._cleanupSubscriptions(),this._profileSub=this.store.model(pF,t).subscribe(t=>{this.profile=t}),this._mailboxesSub=this.store.model(dF,t).subscribe(t=>{this.mailboxes=t}),this._blossomSub=this.store.replaceable(10063,t).subscribe(t=>{t&&t.tags?this.blossomServers=t.tags.filter(t=>"server"===t[0]&&t[1]).map(t=>t[1]):this.blossomServers=[]});try{await this._cachePromise;const e=await this.cache.query([{authors:[t],kinds:[0,10002,10063]}]);if(e&&e.length>0)for(const t of e)this.store.add(t)}catch(n){console.warn("Failed to read from local Nostr IDB cache",n)}const e=Array.from(new Set([...wU,...this.activeWriteRelays]));this._requestSub=this.nostrRelay.pool.request(e,[{authors:[t],kinds:[0,10002,10063]}]).subscribe({next:t=>{this.store.add(t)},error:t=>{console.error("Error fetching profile events:",t)}})}get userDisplayName(){if(this.profile){if(this.profile.nip05)return this.profile.nip05;if(this.profile.displayName||this.profile.display_name)return this.profile.displayName||this.profile.display_name;if(this.profile.name)return this.profile.name}if(this.nostrAuth.pubkey)try{const t=function(t,e){return function(t,e){let n=rk.toWords(e);return rk.encode("npub",n,wM)}(0,e)}(0,PS(this.nostrAuth.pubkey));return`${t.slice(0,9)}...${t.slice(-4)}`}catch{return this.nostrAuth.pubkey}return"Not connected"}async clearCache(){await this._cachePromise,this.cache&&await this.cache.deleteAllEvents()}_scheduleZapReceiptRefresh(t){const e=new Set(t.map(t=>t.id));let n=!1;if(e.size!==this._lastPhotoIds.size)n=!0;else for(const r of e)if(!this._lastPhotoIds.has(r)){n=!0;break}n&&(this._lastPhotoIds=e,this._clearZapRefreshTimer(),this._zapRefreshTimer=setTimeout(()=>{this._zapRefreshTimer=null,this._refreshZapReceiptSubscription([...e])},100))}_clearZapRefreshTimer(){this._zapRefreshTimer&&(clearTimeout(this._zapRefreshTimer),this._zapRefreshTimer=null)}_refreshZapReceiptSubscription(t){if(this._cleanupZapReceiptSubs(),!t||0===t.length)return;const e=[];for(let n=0;n{this._updateZapReceipts(t)}),this._cachePromise.then(()=>this.cache.query(e)).then(t=>{if(t&&t.length>0)for(const e of t)this.store.add(e)}).catch(t=>{console.warn("[nostr-data] Failed to read zap receipts from cache",t)}),this._zapReceiptsNetworkSub=this.nostrRelay.pool.request(this.activeReadRelays,e).subscribe({next:t=>{this.store.add(t)},error:t=>{console.error("[nostr-data] Error fetching zap receipts:",t)}})}_updateZapReceipts(t){const e={};for(const n of t)for(const t of n.tags)"e"===t[0]&&t[1]&&(e[t[1]]||(e[t[1]]=[]),e[t[1]].push(n));this.zapReceipts={...this.zapReceipts,...e}}_cleanupZapReceiptSubs(){this._zapReceiptsSub&&(this._zapReceiptsSub.unsubscribe(),this._zapReceiptsSub=null),this._zapReceiptsNetworkSub&&(this._zapReceiptsNetworkSub.unsubscribe(),this._zapReceiptsNetworkSub=null)}_cleanupSubscriptions(){this._requestSub&&(this._requestSub.unsubscribe(),this._requestSub=null),this._profileSub&&(this._profileSub.unsubscribe(),this._profileSub=null),this._mailboxesSub&&(this._mailboxesSub.unsubscribe(),this._mailboxesSub=null),this._blossomSub&&(this._blossomSub.unsubscribe(),this._blossomSub=null),this._photosSub&&(this._photosSub.unsubscribe(),this._photosSub=null),this._contributionsSub&&(this._contributionsSub.unsubscribe(),this._contributionsSub=null),this._cleanupZapReceiptSubs(),this._clearZapRefreshTimer()}willDestroy(){super.willDestroy(...arguments),this._cleanupSubscriptions(),this._clearProfileSubs(),this._stopPersisting&&this._stopPersisting(),this.cache&&this.cache.stop()}};function SU(t,e=t=>!!t){return XO(n=>{const r=e?n.pipe(t,WO(e),JO(1)):n.pipe(t,JO(1));return n.pipe(fN(r))})}function kU(t){return GO(e=>vO({ok:!1,from:t.url,message:e?.message||"Unknown error"}))}var EU,RU=class t{relays$=new BA([]);status$;get relays(){if(this.relays$ instanceof BA)return this.relays$.value;throw new Error("This group was created with an observable, relays are not available")}constructor(t){this.relays$=Array.isArray(t)?new BA(t):t,this.status$=this.relays$.pipe(pN(t=>0===t.length?vO({}):BO(...t.map(t=>t.status$)).pipe(lN((t,e)=>({...t,[e.url]:e}),{}),dN({}))),hN(1))}get controlled(){return this.relays$ instanceof BA==0}has(t){if(this.controlled)throw new Error("This group was created with an observable, relays are not available");return"string"==typeof t?this.relays.some(e=>e.url===t):this.relays.includes(t)}add(t){this.has(t)||this.relays$.next([...this.relays,t])}remove(t){this.has(t)&&this.relays$.next(this.relays.filter(e=>e!==t))}internalSubscription(t){const e=new WeakMap;return this.relays$.pipe(function(t){return NA((e,n)=>{let r=null,i=!1;const s=()=>{i&&!r&&n.complete()};e.subscribe(FA(n,e=>{const i=r,o=r=FA(n,t=>n.next(t),()=>{r!==o&&null!==r||(r=null,s())});yO(t(e)).subscribe(r),i?.unsubscribe()},()=>{i=!0,s()}))})}(n=>{const r=[];for(const i of n){if(e.has(i)){r.push(e.get(i));continue}const n=t(i).pipe(GO(t=>vO({type:"ERROR",from:i.url,error:t})));r.push(n),e.set(i,n)}return BO(...r)}),cN())}internalPublish(t){const e=new WeakMap;return this.relays$.pipe(JO(1),pN(n=>{const r=[];for(const i of n){if(e.has(i)){r.push(e.get(i));continue}const n=t(i).pipe(kU(i));r.push(n),e.set(i,n)}return BO(...r)}),cN())}req(t,e){return this.internalSubscription(n=>n.req(t,e))}event(t){return this.internalPublish(e=>e.event(t))}async negentropy(t,e,n,r){const i=(await Promise.all(this.relays.map(async t=>[t,await t.getSupported()]))).filter(([t,e])=>e?.includes(77)).map(([t])=>t);if(0===i.length)throw new Error("No relays support NIP-77 negentropy sync");if(!r?.parallel)throw new Error("Negentropy sync must be parallel (for now)");return await Promise.allSettled(i.map(i=>i.negentropy(t,e,n,r))),!0}publish(t,e){return xO(this.internalPublish(n=>yO(n.publish(t,e))).pipe(NA(function(t,e){(function(t,e){return NA(ZO(t,e,arguments.length>=2,!1,!0))})(KO,[])(t).subscribe(e)}),(n=[],NA(function(t,e){var r=!1;t.subscribe(FA(e,function(t){r=!0,e.next(t)},function(){r||e.next(n),e.complete()}))}))));var n}request(e,n){const r=n?.complete??t.completeOnAny(t.completeAfterFirstRelay(5e3),t.completeOnAllEose());return this.internalSubscription(t=>t.req(e,{...n,reconnect:n?.reconnect??t.requestReconnect})).pipe(r?SU(r):MA,EO({first:n?.timeout??3e4}),WO(t=>"EVENT"===t.type),TO(t=>t.event),null===n?.eventStore?MA:vF(n?.eventStore??new rF),cN())}subscription(t,e){return this.internalSubscription(n=>n.req(t,{...e,reconnect:e?.reconnect??n.subscriptionReconnect})).pipe(WO(t=>"EVENT"===t.type),TO(t=>t.event),null===e?.eventStore?MA:vF(e?.eventStore??new rF),cN())}count(t,e=hM()){return this.relays$.pipe(pN(n=>OO(Object.fromEntries(n.map(n=>[n.url,n.count(t,e)])))),cN())}sync(t,e,n){return jO(async()=>{const t=(await Promise.all(this.relays.map(async t=>[t,await t.getSupported()]))).filter(([t,e])=>e?.includes(77)).map(([t])=>t);if(0===t.length)throw new Error("No relays support NIP-77 negentropy sync");return t}).pipe(pN(r=>BO(...r.map(r=>r.sync(t,e,n)))),cN())}static completeAfterFirstRelay(t=5e3){return e=>e.pipe(WO(t=>"EOSE"===t.type)).pipe(JO(1),pN(()=>UO(t)),TO(()=>!0))}static completeOnAllEose(){return t=>t.pipe(WO(t=>"OPEN"===t.type||"EOSE"===t.type||"ERROR"===t.type),lN((t,e)=>t.set(e.from,e.type),new Map),TO(t=>Array.from(t.values()).every(t=>"OPEN"!==t)))}static completeOnAny(...t){return XO(e=>BO(...t.map(t=>e.pipe(t))))}static completeOnAll(...t){return XO(e=>OO(t.map(t=>e.pipe(t))).pipe(TO(t=>t.every(t=>!!t))))}},TU={url:"",deserializer:function(t){return JSON.parse(t.data)},serializer:function(t){return JSON.stringify(t)}},LU=function(t){function e(e,n){var r=t.call(this)||this;if(r._socket=null,e instanceof AA)r.destination=n,r.source=e;else{var i=r._config=sA({},TU);if(r._output=new jA,"string"==typeof e)i.url=e;else for(var s in e)e.hasOwnProperty(s)&&(i[s]=e[s]);if(!i.WebSocketCtor&&WebSocket)i.WebSocketCtor=WebSocket;else if(!i.WebSocketCtor)throw new Error("no WebSocket constructor can be found");r.destination=new qA}return r}return iA(e,t),e.prototype.lift=function(t){var n=new e(this._config,this.destination);return n.operator=t,n.source=this,n},e.prototype._resetState=function(){this._socket=null,this.source||(this.destination=new qA),this._output=new jA},e.prototype.multiplex=function(t,e,n){var r=this;return new AA(function(i){try{r.next(t())}catch(nD){i.error(nD)}var s=r.subscribe({next:function(t){try{n(t)&&i.next(t)}catch(nD){i.error(nD)}},error:function(t){return i.error(t)},complete:function(){return i.complete()}});return function(){try{r.next(e())}catch(nD){i.error(nD)}s.unsubscribe()}})},e.prototype._connectSocket=function(){var t=this,e=this._config,n=e.WebSocketCtor,r=e.protocol,i=e.url,s=e.binaryType,o=this._output,a=null;try{a=r?new n(i,r):new n(i),this._socket=a,s&&(this._socket.binaryType=s)}catch(c){return void o.error(c)}var l=new gA(function(){t._socket=null,a&&1===a.readyState&&a.close()});a.onopen=function(e){if(!t._socket)return a.close(),void t._resetState();var n=t._config.openObserver;n&&n.next(e);var r=t.destination;t.destination=kA.create(function(e){if(1===a.readyState)try{var n=t._config.serializer;a.send(n(e))}catch(c){t.destination.error(c)}},function(e){var n=t._config.closingObserver;n&&n.next(void 0),e&&e.code?a.close(e.code,e.reason):o.error(new TypeError("WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }")),t._resetState()},function(){var e=t._config.closingObserver;e&&e.next(void 0),a.close(),t._resetState()}),r&&r instanceof qA&&l.add(r.subscribe(t.destination))},a.onerror=function(e){t._resetState(),o.error(e)},a.onclose=function(e){a===t._socket&&t._resetState();var n=t._config.closeObserver;n&&n.next(e),e.wasClean?o.complete():o.error(e)},a.onmessage=function(e){try{var n=t._config.deserializer;o.next(n(e))}catch(nD){o.error(nD)}}},e.prototype._subscribe=function(t){var e=this,n=this.source;return n?n.subscribe(t):(this._socket||this._connectSocket(),this._output.subscribe(t),t.add(function(){var t=e._socket;0===e._output.observers.length&&(!t||1!==t.readyState&&0!==t.readyState||t.close(),e._resetState())}),t)},e.prototype.unsubscribe=function(){var e=this._socket;!e||1!==e.readyState&&0!==e.readyState||e.close(),this._resetState(),t.prototype.unsubscribe.call(this)},e}(UA),IU="auth-required:",PU={count:3,delay:(t,e)=>UO(1e3*e),resetOnSuccess:!0};function MU(t){return"number"==typeof t?{...PU,count:t}:{...PU,...t??{}}}!function(t){t[t.RECEIVE=1]="RECEIVE",t[t.SEND=2]="SEND",t[t.BOTH=3]="BOTH"}(EU||(EU={}));var AU=class extends Error{reason;constructor(t){super(t),this.reason=t,this.name="RelayClosedError"}},OU=class extends AU{constructor(t){super(t),this.name="AuthRequiredError"}},NU={"auth-required":OU,unsupported:AU,error:AU,blocked:AU,restricted:AU,"rate-limited":AU,pow:AU,invalid:AU,duplicate:AU,mute:AU};function FU(t){const e=NU[t.split(":")[0]];return e?new e(t):null}var zU={ids:["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],limit:0},DU=class t{url;log=_N.extend("Relay");socket;_ready$=new BA(!0);ready$=this._ready$.asObservable();reconnectTimer;attempts$=new BA(0);connected$=new BA(!1);challenge$=new BA(null);authenticated$;authenticatedAs$;authentication$=new BA(null);authenticationResponse$=new BA(null);notices$=new BA([]);error$=new BA(null);message$;notice$;lastMessageReceivedAt=0;_lastMessageAt$=new BA(0);lastMessageAt$=this._lastMessageAt$.asObservable();status$;information$;_nip11=null;icon$;limitations$;supported$;open$=new jA;close$=new jA;closing$=new jA;reqs$=new BA({});get ready(){return this._ready$.value}get connected(){return this.connected$.value}get challenge(){return this.challenge$.value}get notices(){return this.notices$.value}get authenticated(){return!0===this.authenticationResponse?.ok}get authentication(){return this.authentication$.value}get authenticatedAs(){return this.authenticated?this.authentication?.pubkey??null:null}get authenticationResponse(){return this.authenticationResponse$.value}get information(){return this._nip11}get lastMessageAt(){return this._lastMessageAt$.value}get reqs(){return this.reqs$.value}eventTimeout=1e4;publishTimeout=3e4;keepAlive=3e4;enablePing=!1;pingFrequency=29e3;pingTimeout=2e4;subscriptionReconnect;requestReconnect;publishRetry;onUnresponsive;receivedAuthRequiredForReq=new BA(!1);receivedAuthRequiredForEvent=new BA(!1);authRequiredForRead$;authRequiredForPublish$;resetState(){null!==this.challenge$.value&&this.challenge$.next(null),this.authenticationResponse$.value&&this.authenticationResponse$.next(null),null!==this.authentication$.value&&this.authentication$.next(null),this.notices$.value.length>0&&this.notices$.next([]),this.receivedAuthRequiredForReq.value&&this.receivedAuthRequiredForReq.next(!1),this.receivedAuthRequiredForEvent.value&&this.receivedAuthRequiredForEvent.next(!1)}watchTower;internalSubscriptions=new gA;reconnectSubscription=null;destroy$=new qA(1);constructor(e,n){var r;this.url=e,this.log=this.log.extend(e),void 0!==n?.eventTimeout&&(this.eventTimeout=n.eventTimeout),void 0!==n?.publishTimeout&&(this.publishTimeout=n.publishTimeout),void 0!==n?.keepAlive&&(this.keepAlive=n.keepAlive),void 0!==n?.enablePing&&(this.enablePing=n.enablePing),void 0!==n?.pingFrequency&&(this.pingFrequency=n.pingFrequency),void 0!==n?.pingTimeout&&(this.pingTimeout=n.pingTimeout),void 0!==n?.onUnresponsive&&(this.onUnresponsive=n.onUnresponsive),this.subscriptionReconnect=MU(n?.subscriptionReconnect),this.requestReconnect=MU(n?.requestReconnect),this.publishRetry={...PU,...n?.publishRetry??{}},this.authenticated$=this.authenticationResponse$.pipe(TO(t=>!0===t?.ok)),this.authenticatedAs$=OO([this.authenticated$,this.authentication$]).pipe(TO(([t,e])=>t&&e?e.pubkey:null)),this.reconnectTimer=t.createReconnectTimer(e),this.internalSubscriptions.add(this.open$.subscribe(()=>{this.log("Connected"),this.connected$.next(!0),this.attempts$.next(0),this.error$.next(null),this.resetState()})),this.internalSubscriptions.add(this.close$.subscribe(t=>{this.connected$.value?this.log("Disconnected"):this.log("Failed to connect"),this.connected$.value&&this.connected$.next(!1),this.attempts$.next(this.attempts$.value+1),this.resetState(),t.wasClean||this.startReconnectTimer(t)})),this.socket=(r={url:e,openObserver:this.open$,closeObserver:this.close$,closingObserver:this.closing$,WebSocketCtor:n?.WebSocket},new LU(r)),this.information$=jO(()=>(this.log("Fetching NIP-11 information document"),t.fetchInformationDocument(this.url))).pipe(GO(()=>vO(null)),mN(t=>this._nip11=t),hN(1)),this.limitations$=this.information$.pipe(TO(t=>t?t.limitation:null)),this.supported$=this.information$.pipe(TO(t=>t&&Array.isArray(t.supported_nips)?t.supported_nips.filter(t=>"number"==typeof t):null)),this.icon$=this.information$.pipe(TO(t=>t?.icon||new URL("/favicon.ico",CM(this.url)).toString())),this.authRequiredForRead$=this.receivedAuthRequiredForReq,this.authRequiredForPublish$=this.receivedAuthRequiredForEvent,this.internalSubscriptions.add(this.authRequiredForRead$.pipe(WO(t=>!0===t),JO(1)).subscribe(()=>this.log("Auth required for REQ"))),this.internalSubscriptions.add(this.authRequiredForPublish$.pipe(WO(t=>!0===t),JO(1)).subscribe(()=>this.log("Auth required for EVENT"))),this.status$=OO({url:vO(this.url),connected:this.connected$,authenticated:this.authenticated$,authenticatedAs:this.authenticatedAs$,ready:this._ready$,authRequiredForRead:this.authRequiredForRead$,authRequiredForPublish:this.authRequiredForPublish$,challenge:this.challenge$.asObservable()}).pipe(hN(1));const i=this.socket.pipe(WO(t=>Array.isArray(t)&&"NOTICE"===t[0]),TO(t=>t[1]),lN((t,e)=>[...t,e],[]),mN(t=>this.notices$.next(t))),s=this.socket.pipe(WO(t=>"AUTH"===t[0]),TO(t=>t[1]),mN(t=>{this.log("Received AUTH challenge",t),this.challenge$.next(t)})),o=new jA,a=this.socket.pipe(mN(t=>{const e=Date.now();this.lastMessageReceivedAt=e,this._lastMessageAt$.next(e),o.next(t)}));this.message$=o.asObservable(),this.notice$=this.message$.pipe(WO(t=>Array.isArray(t)&&"NOTICE"===t[0]),TO(t=>t[1]));const l=this.connected$.pipe(pN(t=>t&&this.enablePing?UO(this.pingFrequency,this.pingFrequency).pipe(FO(()=>{if(Date.now()-this.lastMessageReceivedAtArray.isArray(e)&&("EOSE"===e[0]||"CLOSED"===e[0])&&e[1]===t),JO(1),EO({first:this.pingTimeout,with:()=>{const t=Date.now(),e=this.onUnresponsive?.({url:this.url,lastMessageAt:this.lastMessageReceivedAt,now:t,attempts:this.attempts$.value})??"reconnect",n=new Error(`Relay ping timeout after ${this.pingTimeout}ms`);return"reconnect"===e?(this.log("Relay connection has become unresponsive, triggering reconnect"),this.startReconnectTimer(n)):"close"===e?(this.log("Relay connection has become unresponsive, closing connection"),this.error$.next(n),this.socket.complete()):this.log("Relay connection has become unresponsive (ignoring per policy)"),$O}}),rN(()=>this.send(["CLOSE",t])))})):$O),GO(()=>$O));this.watchTower=this.ready$.pipe(pN(t=>t?BO(a,i,s,l).pipe(QO(),GO(t=>(this.startReconnectTimer(t instanceof Error?t:new Error("Connection error")),$O)),cN({resetOnRefCountZero:()=>UO(this.keepAlive).pipe(fN(this.destroy$))})):$O),cN())}startReconnectTimer(t){this.ready&&(this.error$.next(t instanceof Error?t:new Error("Connection error")),this._ready$.next(!1),this.reconnectSubscription?.unsubscribe(),this.reconnectSubscription=this.reconnectTimer(t,this.attempts$.value).pipe(JO(1)).subscribe(()=>{this.reconnectSubscription=null,this._ready$.next(!0)}))}waitForAuth(t,e){return OO([t,this.authenticated$]).pipe(sN(this.watchTower),WO(([t,e])=>!t||e),JO(1),pN(()=>e))}waitForReady(t){return this.ready?t:this.ready$.pipe(WO(t=>t),JO(1),pN(()=>t))}multiplex(t,e,n){return this.socket.multiplex(t,e,n)}send(t){this.socket.next(t)}req(t,e){const n=e?.id??hM(),r=e?.waitForAuth??!0;let i;if("function"==typeof t){const e=t(this);i=(wO(e)?e:BO(vO(e),$O)).pipe(TO(t=>Array.isArray(t)?t:[t]))}else i=(wO(t)?t:BO(vO(t),$O)).pipe(TO(t=>Array.isArray(t)?t:[t]));const s=i.pipe(QO(),nN(!0));let o=!1,a=!1;const l=this.socket.pipe(WO(t=>Array.isArray(t)&&("EVENT"===t[0]||"CLOSED"===t[0]||"EOSE"===t[0])&&t[1]===n),TO(t=>"EVENT"===t[0]&&"object"==typeof t[2]?{type:"EVENT",from:this.url,id:t[1],event:t[2]}:"CLOSED"===t[0]?{type:"CLOSED",from:this.url,id:t[1],reason:t[2]??""}:{type:"EOSE",from:this.url,id:t[1]}),mN(t=>{if("CLOSED"===t.type){o=!0;const e=FU(t.reason);if(e)throw e;a=!0}}),gN(t=>"CLOSED"!==t.type,!0),cN()),c=i.pipe(TO(t=>(o=!1,a=!1,this.socket.next(["REQ",n,...t]),this.reqs$.next({...this.reqs$.value,[n]:t}),{type:"OPEN",id:n,filters:t,from:this.url})),rN(()=>{o||this.socket.next(["CLOSE",n]);const{[n]:t,...e}=this.reqs$.value;this.reqs$.next(e)}),pN(t=>l.pipe(dN(t)))),u=BO(this.watchTower,c).pipe(fN(l.pipe(QO(),nN(!0))),fN(s),mN(t=>{"EVENT"===t.type&&RM(t.event,this.url)}),cN()),h=r?this.waitForAuth(this.authRequiredForRead$,u):u;return jO(()=>this.waitForReady(h)).pipe(aN({delay:t=>t instanceof OU?(this.log("Auth required for REQ"),this.receivedAuthRequiredForReq.next(!0),r?this.authenticated$.pipe(WO(t=>t),JO(1)):bO(()=>t)):bO(()=>t)}),this.customConnectionRetryOperator(e?.reconnect),this.customRepeatOperator(e?.resubscribe,()=>a),cN())}count(t,e=hM()){let n=!1;const r=this.socket.pipe(WO(t=>Array.isArray(t)&&("COUNT"===t[0]||"CLOSED"===t[0])&&t[1]===e),TO(t=>{if("COUNT"===t[0])return t[2];if("CLOSED"===t[0]){n=!0;const e=FU(t[2]??"");if(e)throw e}return null}),gN(t=>null!==t,!0),WO(t=>null!==t),cN()),i=jO(()=>(n=!1,this.socket.next(Array.isArray(t)?["COUNT",e,...t]:["COUNT",e,t]),r)).pipe(rN(()=>{n||this.socket.next(["CLOSE",e])})),s=BO(this.watchTower,i).pipe(fN(r.pipe(QO(),nN(!0))),JO(1),GO(t=>(t instanceof OU&&!this.receivedAuthRequiredForReq.value&&(this.log("Auth required for COUNT"),this.receivedAuthRequiredForReq.next(!0)),bO(()=>t))),EO({first:1e4,with:()=>bO(()=>new Error("COUNT timeout"))}));return this.waitForReady(this.waitForAuth(this.authRequiredForRead$,s)).pipe(cN())}event(t,e="EVENT"){const n=jO(()=>(this.socket.next([e,t]),this.socket.pipe(WO(e=>"OK"===e[0]&&e[1]===t.id),TO(t=>({ok:t[2],message:t[3],from:this.url}))))).pipe(cN()),r=BO(this.watchTower,n).pipe(fN(n.pipe(QO(),nN(!0))),JO(1),mN(({ok:t,message:e})=>{!1===t&&e?.startsWith(IU)&&!this.receivedAuthRequiredForEvent.value&&(this.log("Auth required for publish"),this.receivedAuthRequiredForEvent.next(!0))}),EO({first:this.eventTimeout,with:()=>vO({ok:!1,from:this.url,message:"Timeout"})}));return"AUTH"===e?this.waitForReady(r).pipe(cN()):this.waitForReady(this.waitForAuth(this.authRequiredForPublish$,r)).pipe(cN())}auth(t){return this.authentication$.next(t),xO(this.event(t,"AUTH").pipe(mN(t=>this.authenticationResponse$.next(t))))}async negentropy(t,e,n,r){if(!1===(await this.getSupported())?.includes(77))throw new Error("Relay does not support NIP-77");const{buildStorageVector:i,buildStorageFromFilter:s,negentropySync:o}=await sU(async()=>{const{buildStorageVector:t,buildStorageFromFilter:e,negentropySync:n}=await import("./negentropy-vHp2OmZI.js");return{buildStorageVector:t,buildStorageFromFilter:e,negentropySync:n}},[]);return o(Array.isArray(t)?i(t):await s(t,e),this.socket,e,n,r)}authenticate(t){if(!this.challenge)throw new Error("Have not received authentication challenge");const e=t.signEvent(function(t,e){return{kind:22242,created_at:Math.floor(Date.now()/1e3),tags:[["relay",t],["challenge",e]],content:""}}(this.url,this.challenge));return xO((e instanceof Promise?yO(e):vO(e)).pipe(pN(t=>this.auth(t))))}customRetryOperator(t,e){return!1===t||void 0===t?MA:"number"==typeof t?aN({...e,count:t}):!0===t?e?aN(e):aN():aN({...e,...t})}customConnectionRetryOperator(t,e){if(!1===t||void 0===t)return MA;const n="number"==typeof t?{...e,count:t}:!0===t?e??{}:{...e,...t};return aN({...n,delay:(t,e)=>t instanceof AU?bO(()=>t):"number"==typeof n.delay?UO(n.delay):"function"==typeof n.delay?n.delay(t,e):vO(null)})}customRepeatOperator(t,e){if(!1===t||void 0===t)return MA;const n=n=>{if(e&&!e())return XA;if("object"==typeof t){if("number"==typeof t.delay)return UO(t.delay);if("function"==typeof t.delay)return t.delay(n)}return vO(null)};return oN(!0===t?{delay:n}:"number"==typeof t?{count:t,delay:n}:{...t,delay:n})}customTimeoutOperator(t,e){return!1===t?MA:wF(!0===t?e:t??e)}subscription(t,e){return this.req(t,{...e,reconnect:e?.reconnect??this.subscriptionReconnect}).pipe(WO(t=>"EOSE"===t.type||"EVENT"===t.type),TO(t=>"EOSE"===t.type?"EOSE":t.event),cN())}request(t,e){return this.req(t,{...e,reconnect:e?.reconnect??this.requestReconnect}).pipe(e?.complete?SU(e?.complete):MA,EO({first:e?.timeout??3e4}),gN(t=>"EOSE"!==t.type),WO(t=>"EVENT"===t.type),TO(t=>t.event),cN())}publish(t,e){return xO(this.event(t).pipe(FO(t=>!1===t.ok&&t.message?.startsWith(IU)?bO(()=>new OU(t.message??"")):vO(t)),this.customRetryOperator(e?.retries??e?.reconnect??!0,this.publishRetry),this.customTimeoutOperator(e?.timeout,this.publishTimeout)))}sync(t,e,n=EU.RECEIVE){return new AA(r=>{const i=new AbortController;let s=!1;return this.negentropy(t,e,async(e,i)=>{if(n&EU.SEND&&e.length>0){const n=await(async e=>Array.isArray(t)?t.filter(t=>e.includes(t.id)):t.getByFilters({ids:e}))(e);await Promise.allSettled(n.map(async t=>{const e=await xO(this.event(t));return e.ok&&RM(t,this.url),e}))}n&EU.RECEIVE&&i.length>0&&await xO(this.req({ids:i}).pipe(gN(t=>"EOSE"!==t.type),WO(t=>"EVENT"===t.type),TO(t=>t.event),Reflect.has(t,"add")?yF(t):MA,mN(t=>r.next(t))))},{signal:i.signal}).then(()=>{s||r.complete()}).catch(t=>{s||r.error(t)}),()=>{s||(s=!0,i.abort())}}).pipe(cN())}close(){this.destroy$.next(),this.destroy$.complete(),this.reconnectSubscription?.unsubscribe(),this.reconnectSubscription=null,this.internalSubscriptions.unsubscribe(),this.connected$.value&&this.connected$.next(!1),this._ready$.next(!1),this._ready$.complete(),this.socket.unsubscribe()}async getInformation(){return CO(this.information$)}async getLimitations(){return CO(this.limitations$)}async getSupported(){return CO(this.supported$)}static fetchInformationDocument(t){return yO(fetch(CM(t),{headers:{Accept:"application/nostr+json"}}).then(t=>t.json())).pipe(GO(()=>vO(null)),wF(1e4))}static createReconnectTimer(t){return(t,e=0)=>UO(Math.min(1e3*Math.pow(1.5,e),3e5))}static afterOpen(t){return e=>e.pipe(WO(t=>"OPEN"===t.type),pN(()=>e.pipe(t)))}static completeOr(...t){return e=>OO(t.map(t=>e.pipe(t,dN(!1)))).pipe(TO(t=>t.some(t=>!!t)))}static completeAnd(...t){return e=>OO(t.map(t=>e.pipe(t,dN(!1)))).pipe(TO(t=>t.every(t=>!!t)))}static defaultComplete(t,e=1e4){return this.completeOr(()=>UO(t),this.afterOpen(()=>UO(e)))}},jU=class{options;relays$=new BA(new Map);get relays(){return this.relays$.value}status$;ignoreOffline=!1;add$=new jA;remove$=new jA;constructor(t){this.options=t,this.status$=this.relays$.pipe(TO(t=>Array.from(t.values())),pN(t=>0===t.length?vO({}):BO(...t.map(t=>t.status$)).pipe(lN((t,e)=>({...t,[e.url]:e}),{}),dN({}))),hN(1))}relay(t){t=SM(t);let e=this.relays.get(t);return e||(e=new DU(t,this.options),this.relays.set(t,e),this.relays$.next(this.relays),this.add$.next(e),e)}group(t,e=this.ignoreOffline){let n=Array.isArray(t)?t.map(t=>this.relay(t)):t.pipe(TO(t=>t.map(t=>this.relay(t))));return e&&(n=(Array.isArray(n)?vO(n):n).pipe(pN(t=>0===t.length?vO([]):OO(t.map(t=>t.ready$.pipe(WO(t=>t),JO(1),TO(()=>t),dN(null)))).pipe(TO(t=>t.filter(t=>null!==t)))))),new RU(n)}remove(t,e=!0){let n;if("string"==typeof t){if(n=this.relays.get(t),!n)return}else{if(!Array.from(this.relays.values()).some(e=>e===t))return;n=t}e&&n?.close(),this.relays.delete(n.url),this.relays$.next(this.relays),this.remove$.next(n)}close(){for(const t of[...this.relays.values()])this.remove(t,!0)}req(t,e,n){return this.group(t).req(e,n)}event(t,e){return this.group(t).event(e)}negentropy(t,e,n,r,i){return this.group(t).negentropy(e,n,r,i)}publish(t,e,n){return this.group(t).publish(e,n)}request(t,e,n){return this.group(t).request(e,n)}subscription(t,e,n){return this.group(t).subscription(e,n)}subscriptionMap(t,e){const n=wO(t)?t:vO(t);return this.group(n.pipe(TO(t=>Object.keys(t)))).subscription(t=>n.pipe(TO(e=>e[t.url]),tN(AN)),e)}outboxSubscription(t,e,n){const r=wO(t)?t.pipe(TO(t=>$N(t,e))):$N(t,e);return this.subscriptionMap(r,n)}count(t,e,n){return this.group(t,!1).count(e,n)}sync(t,e,n,r){return this.group(t,!1).sync(e,n,r)}},UU=a({default:()=>BU}),BU=class extends fp{pool=new jU({enablePing:!0});async publish(t,e){if(!t||0===t.length)throw new Error("No relays provided to publish the event.");const n=await this.pool.publish(t,e);if(!n.some(t=>t.ok))throw new Error(`Failed to publish event. Responses: ${JSON.stringify(n)}`);return n}},$U=(new rF,Symbol.for("seal")),qU=Symbol.for("rumor"),VU=Symbol.for("gift-wrap");sM.add(VU),sM.add($U),sM.add(qU),WM(30078,"nip44");var WU=o((t,n)=>{var{bech32:r,hex:i,utf8:o}=(jk(),(t=>s.call(t,"module.exports")?t["module.exports"]:l(e({},"__esModule",{value:!0}),t))(Ck)),a={bech32:"bc",pubKeyHash:0,scriptHash:5,validWitnessVersions:[0]},c={bech32:"tb",pubKeyHash:111,scriptHash:196,validWitnessVersions:[0]},u={bech32:"tbs",pubKeyHash:111,scriptHash:196,validWitnessVersions:[0]},h={bech32:"bcrt",pubKeyHash:111,scriptHash:196,validWitnessVersions:[0]},d={bech32:"sb",pubKeyHash:63,scriptHash:123,validWitnessVersions:[0]},p=["option_data_loss_protect","initial_routing_sync","option_upfront_shutdown_script","gossip_queries","var_onion_optin","gossip_queries_ex","option_static_remotekey","payment_secret","basic_mpp","option_support_large_channel"],f={m:BigInt(1e3),u:BigInt(1e6),n:BigInt(1e9),p:BigInt(1e12)},g=BigInt("2100000000000000000"),m=BigInt(1e11),y={payment_hash:1,payment_secret:16,description:13,payee:19,description_hash:23,expiry:6,min_final_cltv_expiry:24,fallback_address:9,route_hint:3,feature_bits:5,metadata:27},v={};for(let e=0,s=Object.keys(y);ei.encode(r.fromWordsUnsafe(t)),16:t=>i.encode(r.fromWordsUnsafe(t)),13:t=>o.encode(r.fromWordsUnsafe(t)),19:t=>i.encode(r.fromWordsUnsafe(t)),23:t=>i.encode(r.fromWordsUnsafe(t)),27:t=>i.encode(r.fromWordsUnsafe(t)),6:_,24:_,3:function(t){const e=[];let n,s,o,a,l,c=r.fromWordsUnsafe(t);for(;c.length>0;)n=i.encode(c.slice(0,33)),s=i.encode(c.slice(33,41)),o=parseInt(i.encode(c.slice(41,45)),16),a=parseInt(i.encode(c.slice(45,49)),16),l=parseInt(i.encode(c.slice(49,51)),16),c=c.slice(51),e.push({pubkey:n,short_channel_id:s,fee_base_msat:o,fee_proportional_millionths:a,cltv_expiry_delta:l});return e},5:function(t){const e=t.slice().reverse().map(t=>[!!(1&t),!!(2&t),!!(4&t),!!(8&t),!!(16&t)]).reduce((t,e)=>t.concat(e),[]);for(;e.length<2*p.length;)e.push(!1);const n={};p.forEach((t,r)=>{let i;i=e[2*r]?"required":e[2*r+1]?"supported":"unsupported",n[t]=i});const r=e.slice(2*p.length);return n.extra_bits={start_bit:2*p.length,bits:r,has_required:r.reduce((t,e,n)=>n%2!=0?t||!1:t||e,!1)},n}};function w(t){return e=>({tagCode:parseInt(t),words:r.encode("unknown",e,Number.MAX_SAFE_INTEGER)})}function _(t){return t.reverse().reduce((t,e,n)=>t+e*Math.pow(32,n),0)}function x(t,e){let n,r;if(t.slice(-1).match(/^[munp]$/))n=t.slice(-1),r=t.slice(0,-1);else{if(t.slice(-1).match(/^[^munp0-9]$/))throw new Error("Not a valid multiplier for the amount");r=t}if(!r.match(/^\d+$/))throw new Error("Not a valid human readable amount");const i=BigInt(r),s=n?i*m/f[n]:i*m;if("p"===n&&i%BigInt(10)!==BigInt(0)||s>g)throw new Error("Amount is outside of valid range");return e?s.toString():s}n.exports={decode:function(t,e){if("string"!=typeof t)throw new Error("Lightning Payment Request must be string");if("ln"!==t.slice(0,2).toLowerCase())throw new Error("Not a proper lightning payment request");const n=[],s=r.decode(t,Number.MAX_SAFE_INTEGER);t=t.toLowerCase();const o=s.prefix;let l=s.words,p=t.slice(o.length+1),f=l.slice(-104);l=l.slice(0,-104);let g=o.match(/^ln(\S+?)(\d*)([a-zA-Z]?)$/);if(g&&!g[2]&&(g=o.match(/^ln(\S+)$/)),!g)throw new Error("Not a proper lightning payment request");n.push({name:"lightning_network",letters:"ln"});const m=g[1];let C;if(e){if(void 0===e.bech32||void 0===e.pubKeyHash||void 0===e.scriptHash||!Array.isArray(e.validWitnessVersions))throw new Error("Invalid network");C=e}else switch(m){case a.bech32:C=a;break;case c.bech32:C=c;break;case u.bech32:C=u;break;case h.bech32:C=h;break;case d.bech32:C=d}if(!C||C.bech32!==m)throw new Error("Unknown coin bech32 prefix");n.push({name:"coin_network",letters:m,value:C});const S=g[2];let k;S?(k=x(S+g[3],!0),n.push({name:"amount",letters:g[2]+g[3],value:k})):k=null,n.push({name:"separator",letters:"1"});const E=_(l.slice(0,7));let R,T,L,I;for(l=l.slice(7),n.push({name:"timestamp",letters:p.slice(0,7),value:E}),p=p.slice(7);l.length>0;){const t=l[0].toString();R=v[t]||"unknown_tag",T=b[t]||w(t),l=l.slice(1),L=_(l.slice(0,2)),l=l.slice(2),I=l.slice(0,L),l=l.slice(L),n.push({name:R,tag:p[0],letters:p.slice(0,3+L),value:T(I)}),p=p.slice(3+L)}n.push({name:"signature",letters:p.slice(0,104),value:i.encode(r.fromWordsUnsafe(f))}),p=p.slice(104),n.push({name:"checksum",letters:p});let P={paymentRequest:t,sections:n,get expiry(){let t=n.find(t=>"expiry"===t.name);if(t)return M("timestamp")+t.value},get route_hints(){return n.filter(t=>"route_hint"===t.name).map(t=>t.value)}};for(let r in y)"route_hint"!==r&&Object.defineProperty(P,r,{get:()=>M(r)});return P;function M(t){let e=n.find(e=>e.name===t);return e?e.value:void 0}},hrpToMillisat:x}}),HU=WU();function GU(t){const e=(0,HU.decode)(t),n=e.sections.find(t=>"timestamp"===t.name)?.value??0,r=e.sections.find(t=>"description"===t.name)?.value??"",i=parseInt(e.sections.find(t=>"amount"===t.name)?.value??"0"),s=e.sections.find(t=>"payment_hash"===t.name);return{paymentRequest:e.paymentRequest,description:r,amount:i,timestamp:n,expiry:n+e.expiry,paymentHash:s?.value}}var ZU=class t extends QN{static create(e,n,r){return new t(t=>t(JN(LR.ZapRequest))).eventTarget(e).amount(n).relays(r)}static profile(e,n,r,i){return new t(t=>t(JN(LR.ZapRequest))).amount(n).relays(r).profileTarget(e,i)}static event(e,n,r,i){return new t(t=>t(JN(LR.ZapRequest))).amount(n).relays(r).eventTarget(e,i)}relays(t){return this.chain((e=t,WN(["relays",...e],!0)));var e}eventTarget(t,e){return this.chain(function(t,e){return HN(lM(VN(["k",String(t.kind)],!0),function(t,e,n=!0){return async r=>{const i="string"==typeof t?{id:t}:KP(t)?{id:(s=t).id,kind:s.kind,author:s.pubkey,relays:void 0}:t;var s;if(!i.relays?.[0]&&e){const t="string"==typeof e?e:await e(i.id);t&&(i.relays=[t])}return n&&(r=r.filter(t=>!("e"===t[0]&&t[1]===i.id))),[...r,UM(i)]}}(t,e,!0),YP(t.kind)?function(t,e,n=!0){const r="string"==typeof t?MM(t):KP(t)?Ax((i=t).kind)||Mx(i.kind)?{identifier:tM(i),kind:i.kind,pubkey:i.pubkey,relays:void 0}:null:t;var i;if(!r)throw new Error("Unable to resolve address pointer");return async i=>{const s="string"==typeof t?t:zM(r);if(!r.relays?.[0]&&e){const t="string"==typeof e?e:await e(r.pubkey);t&&(r.relays=[t])}return n&&(i=i.filter(t=>!("a"===t[0]&&t[1]===s))),[...i,jM(r)]}}(t,e,!0):t=>t,qN({pubkey:t.pubkey},e,!0)))}(t,e))}profileTarget(t,e){return this.chain(function(t,e){return HN(qN(t,e,!0))}(t,e))}amount(t){return this.chain(function(t){return WN(["amount",t.toString()],!0)}(t))}lnurl(t){return this.chain(function(t){return WN(["lnurl",t],!0)}(t))}message(t){return this.content(t)}};JM(10086,"nip04"),JM(10017,"nip44"),JM(10018,"nip44"),JM(LR.UserEmojiList,"nip44"),_N.extend("EncryptedContentCache");var KU,YU=new TextDecoder;!function(t){t.nudity="nudity",t.malware="malware",t.profanity="profanity",t.illegal="illegal",t.spam="spam",t.impersonation="impersonation",t.other="other"}(KU||(KU={})),JM(10040,"nip44");var XU=a({default:()=>tB}),JU=["wss://relay.damus.io","wss://nos.lol","wss://relay.primal.net"],QU=["wss://relay.primal.net","wss://nos.lol","wss://relay.damus.io"],tB=class extends fp{static{BF(this.prototype,"nostrAuth",[pp])}#N=void qF(this,"nostrAuth");static{BF(this.prototype,"nostrData",[pp])}#F=void qF(this,"nostrData");static{BF(this.prototype,"nostrRelay",[pp])}#at=void qF(this,"nostrRelay");static{BF(this.prototype,"recipientRelays",[Wr],function(){return null})}#bt=void qF(this,"recipientRelays");getLightningAddress(t){const e=this.nostrData.getProfile(t);return e?.lud16||e?.lud06||null}async resolveLnurl(t){const e=(n=t).includes("@")?function(t){let[e,n]=t.split("@");if(e&&n)return new URL(`https://${n}/.well-known/lnurlp/${e}`)}(n):function(t){try{const{words:e,prefix:n}=$z.decode(t);if("lnurl"!==n)return;const r=YU.decode($z.fromWords(e));return new URL(r)}catch(d8){}}(n);var n;if(!e)throw new Error("Invalid lightning address or LNURL");const r=await fetch(e.toString());if(!r.ok)throw new Error(`Failed to fetch LNURL pay endpoint: ${r.statusText}`);const i=await r.json();if(!i.callback)throw new Error("Invalid LNURL pay endpoint: missing callback");if(!i.allowsNostr)throw new Error("This lightning address does not support Nostr zaps");return{callback:i.callback,minSendable:i.minSendable??1e3,maxSendable:i.maxSendable??1e11,allowsNostr:!!i.allowsNostr,nostrPubkey:i.nostrPubkey}}async loadRecipientRelays(t){if(!t)return this._fallbackRelays();const e=await this._getMailboxesFromStore(t);if(e?.length)return this.recipientRelays=e,e;const n=await this._fetchMailboxesFromNetwork(t);if(n?.length)return this.recipientRelays=n,n;const r=this._fallbackRelays();return this.recipientRelays=r,r}async _getMailboxesFromStore(t){try{const e=await CO(this.nostrData.store.replaceable(10002,t).pipe(EO(500),GO(()=>vO(null))));if(e)return zN(e)}catch{}return null}async _fetchMailboxesFromNetwork(t){const e=this.nostrData.activeReadRelays?.length?this.nostrData.activeReadRelays:QU;try{const n=await CO(this.nostrRelay.pool.request(e,[{kinds:[10002],authors:[t]}]).pipe(EO(1e4),GO(()=>vO(null))));if(n)return this.nostrData.store.add(n),zN(n)}catch{}return null}_fallbackRelays(){const t=this.nostrData.mailboxReadRelays||[];return[...new Set([...t,...JU])].slice(0,5)}getZapRelays(){return this.recipientRelays?.length?this.recipientRelays.slice(0,5):this._fallbackRelays()}async createZapRequest(t,e,n){const r=this.nostrData.store.getEvent(t.eventId);if(!r)throw new Error("Photo event not found in store");const i=this.getZapRelays(),s=this.nostrAuth.signer;if(!s)throw new Error("Nostr signer not available. Please connect Nostr.");return await ZU.event(r,e,i).message(n||"").as(s).sign()}async fetchInvoice(t,e,n){const r=new URL(t);return r.searchParams.set("amount",n.toString()),r.searchParams.set("nostr",JSON.stringify(e)),await async function(t){const{pr:e}=await fetch(t).then(t=>t.json()),n=t.searchParams.get("amount");if(!n)throw new Error("Missing amount");if(e){if(GU(e).amount!==parseInt(n))throw new Error("Incorrect amount");return e}throw new Error("Failed to get invoice")}(r)}parseInvoice(t){return GU(t)}subscribeForZapReceipt(t,e,n){const r=e.eventId,i=this.getZapRelays(),s=Math.floor(Date.now()/1e3)-10;return this.nostrRelay.pool.subscription(i,{kinds:[9735],"#e":[r],since:s}).subscribe({next:e=>{this.nostrData.store.add(e);const r=e.tags.find(t=>"description"===t[0]);if(r)try{JSON.parse(r[1]).id===t.id&&n(e)}catch{}},error:t=>{console.error("[nostr-zap] Receipt subscription error:",t)}})}hasWebLN(){return"undefined"!=typeof window&&void 0!==window.webln}async payWithWebln(t){if(!this.hasWebLN())throw new Error("WebLN not available");return await window.webln.enable(),await window.webln.sendPayment(t)}async zap(t,e,n){const r=t?.pubkey;if(!r)throw new Error("Photo has no pubkey");this.recipientRelays||await this.loadRecipientRelays(r);const i=this.getLightningAddress(r);if(!i)throw new Error("This user has no lightning address set in their profile");const s=await this.resolveLnurl(i);if(es.maxSendable)throw new Error(`Amount must be between ${s.minSendable} and ${s.maxSendable} millisats`);const o=await this.createZapRequest(t,e,n);return{invoice:await this.fetchInvoice(s.callback,o,e),zapRequest:o}}},eB=class{},nB=class extends eB{constructor(t){super(),this.message=t}},rB=class extends eB{},iB=class extends eB{},sB=class extends eB{},oB=class extends eB{},aB=class extends eB{},lB=class extends eB{},cB={invalid_request:class extends eB{},invalid_grant:class extends aB{},unauthorized_client:class extends oB{},access_denied:class extends oB{},unsupported_response_type:class extends oB{},invalid_scope:class extends eB{},server_error:class extends oB{},temporarily_unavailable:class extends oB{},invalid_client:class extends aB{},unsupported_grant_type:class extends aB{},invalid_token:class extends eB{}},uB=t=>{const e=cB[t];return e?new e:new nB(t)},hB="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~",dB=t=>{const e=t.slice(7).replace(/"/g,"").split(",").map(t=>{const[e,n]=t.trim().split("=");return{[e]:n}}).reduce((t,e)=>({...t,...e}),{});return{realm:e.realm,error:e.error,errorDescription:e.error_description,errorUri:e.error_uri}},pB=t=>{let e=btoa(t);return e=e.replace(/\+/g,"-"),e=e.replace(/\//g,"_"),e=e.replace(/=/g,""),e},fB=(t,e)=>{let n=e.split("?");if(n.length<2)return;n=n[1].split("#");const r=n[0].split("&");for(const i of r){const[e,n]=i.split("=");if(e===t)return decodeURIComponent(n)}},gB=t=>Object.entries(t).map(([t,e])=>`${t}=${encodeURIComponent(e)}`).join("&"),mB="WWW-Authenticate",yB=class{constructor(t,e){this.state={},this.config=t,this.storage=e||bB,this.ready=new Promise(t=>this.setReady=t),this.recoverState()}async reset(){this.state={},await this.saveState(),this.authCodeForAccessTokenPromise=void 0,this.refreshTokenForAccessTokenPromise=void 0}async requestAuthorizationCode(t){const{clientId:e,extraAuthorizationParams:n,redirectUrl:r,scopes:i}=this.config,{codeChallenge:s,codeVerifier:o}=await(async()=>{const t=new Uint32Array(96);crypto.getRandomValues(t);const e=pB(Array.from(t).map(t=>hB[t%66]).join("")),n=await crypto.subtle.digest("SHA-256",(new TextEncoder).encode(e)),r=new Uint8Array(n);let i="";const s=r.byteLength;for(let o=0;o{const t=new Uint32Array(32);return crypto.getRandomValues(t),Array.from(t).map(t=>hB[t%66]).join("")})();this.state={...this.state,codeChallenge:s,codeVerifier:o,stateQueryParam:a},await this.saveState();let l=this.config.authorizationUrl+`?response_type=code&client_id=${encodeURIComponent(e)}&redirect_uri=${encodeURIComponent(r)}&state=${a}&code_challenge=${encodeURIComponent(s)}&code_challenge_method=S256`;if(i&&(l+=`&scope=${encodeURIComponent(i.join(" "))}`),n||t){const e={...n,...t};l+=`&${gB(e)}`}location.replace(l)}isReturningFromAuthServer(){return!!fB("code",location.href)}async receiveCode(){await this.ready;const t=fB("error",location.href);if(t)throw uB(t);if(fB("state",location.href)!==this.state.stateQueryParam)throw console.warn('"state" parameter doesn\'t match the one sent! Possible malicious activity.'),new sB;if(this.state.authorizationCode=fB("code",location.href),!this.state.authorizationCode)throw new iB;this.saveState()}async getTokens(t){const{accessToken:e,authorizationCode:n,idToken:r,refreshToken:i,scopes:s}=this.state;if(n)return this.exchangeAuthCodeForAccessToken(t);if(!e)throw new rB;if(this.isAccessTokenExpired()){if(this.config.onAccessTokenExpiry)return this.config.onAccessTokenExpiry();throw new lB}return Promise.resolve({accessToken:e,idToken:r,refreshToken:i,scopes:s})}async exchangeAuthCodeForAccessToken(t){this.authCodeForAccessTokenPromise||(this.authCodeForAccessTokenPromise=this.fetchAccessTokenUsingCode(t));const e=await this.authCodeForAccessTokenPromise;return this.authCodeForAccessTokenPromise=void 0,this.state.authorizationCode=void 0,this.setTokens(e)}async exchangeRefreshTokenForAccessToken(){this.refreshTokenForAccessTokenPromise||(this.refreshTokenForAccessTokenPromise=this.fetchAccessTokenUsingRefreshToken());const t=await this.refreshTokenForAccessTokenPromise;return this.refreshTokenForAccessTokenPromise=void 0,this.setTokens(t)}makeRetryFetchFunction(t){return async(e,...n)=>{const r=await t(e,...n);if(401===r.status){const i=r.headers.get(mB.toLowerCase());if(i&&"invalid_token"===dB(i).error)return await this.exchangeRefreshTokenForAccessToken(),e=await this.requestInterceptor(e),t(e,...n)}return r}}decorateFetchWithInterceptors(t){return async(e,...n)=>{"string"==typeof e&&(e=new Request(e)),e=await this.requestInterceptor(e);const r=await t(e,...n);return this.responseInterceptor(r)}}async requestInterceptor(t){const e=await this.getTokens();return t.headers.set("Authorization",`Bearer ${e.accessToken}`),t}async responseInterceptor(t){if(401!==t.status)return t;const e=t.headers.get(mB.toLowerCase());if(e){const t=dB(e).error;throw"invalid_grant"===t&&this.config.onInvalidGrant&&await this.config.onInvalidGrant(),"invalid_token"===t&&this.config.onInvalidToken&&await this.config.onInvalidToken(),uB(t)}return t}getGrantedScopes(){return this.state.scopes}isAuthorized(){return!!this.state.accessToken}isAccessTokenExpired(){const{accessTokenExpiry:t}=this.state;return Boolean(t&&new Date>=new Date(t))}async fetchAccessTokenUsingCode(t){const{authorizationCode:e,codeVerifier:n=""}=this.state,{clientId:r,redirectUrl:i}=this.config;n?e||console.warn("No authorization grant code is being passed."):console.warn("No code verifier is being sent.");const s=this.config.tokenUrl,o={grant_type:"authorization_code",code:e,redirect_uri:i,client_id:r,code_verifier:n,...t},a=new URLSearchParams(o).toString();return this.makeTokenRequest(s,a)}fetchAccessTokenUsingRefreshToken(){const{extraRefreshParams:t,clientId:e,tokenUrl:n}=this.config,{refreshToken:r}=this.state;r||console.warn("No refresh token is present.");const i=n;let s=`grant_type=refresh_token&refresh_token=${r}&client_id=${e}`;return t&&(s=`${s}&${gB(t)}`),this.makeTokenRequest(i,s)}async makeTokenRequest(t,e){const n=await fetch(t,{method:"POST",body:e,headers:{"Content-Type":"application/x-www-form-urlencoded"}}),r=await n.json();if(!n.ok)throw"invalid_grant"===r.error&&this.config.onInvalidGrant&&await this.config.onInvalidGrant(),uB(r.error);const{access_token:i,expires_in:s,id_token:o,refresh_token:a,scope:l}=r;return{accessToken:i,expiresIn:s,idToken:o,refreshToken:a,scope:l}}async setTokens(t){const{accessToken:e,expiresIn:n,idToken:r,refreshToken:i,scope:s}=t;return this.state.accessToken=e,n&&(this.state.accessTokenExpiry=new Date(Date.now()+1e3*parseInt(n,10)).toString()),r&&(this.state.idToken=r),i&&(this.state.refreshToken=i),s&&(this.state.scopes=s.split(" ")),await this.saveState(),{accessToken:this.state.accessToken,idToken:this.state.idToken,refreshToken:this.state.refreshToken,scopes:s?this.state.scopes:[]}}async recoverState(){this.state=JSON.parse(await this.storage.loadState()||"{}"),this.setReady(),this.config.storeRefreshToken||(this.state.refreshToken=this.refreshToken)}async saveState(){this.refreshToken=this.state.refreshToken;const t={...this.state};this.config.storeRefreshToken||delete t.refreshToken,await this.storage.saveState(JSON.stringify(t))}},vB="oauth2authcodepkce-state",bB={saveState:t=>localStorage.setItem(vB,t),loadState:()=>localStorage.getItem(vB)},wB=a({default:()=>xB}),_B=class{saveState(t){localStorage.setItem("marco:osm_auth_state",t)}loadState(){const t=localStorage.getItem("marco:osm_auth_state");if(!t)return!1;try{return JSON.parse(t),t}catch(e){return console.warn("Failed to parse OSM auth state",e),!1}}},xB=class extends fp{static{BF(this.prototype,"isConnected",[Wr],function(){return!1})}#wt=void qF(this,"isConnected");static{BF(this.prototype,"userDisplayName",[Wr],function(){return null})}#_t=void qF(this,"userDisplayName");oauthClient;constructor(){super(...arguments);const t="https://www.openstreetmap.org",e=`${window.location.origin}/oauth/osm/callback`;this.oauthClient=new yB({scopes:["read_prefs","write_api"],authorizationUrl:`${t}/oauth2/authorize`,tokenUrl:`${t}/oauth2/token`,clientId:"jIn8l5mT8FZOGYiIYXG1Yvj_2FZKB9TJ1edZwOJPsRU",redirectUrl:e,storeRefreshToken:!0,onAccessTokenExpiry(){return this.exchangeRefreshTokenForAccessToken()}},new _B),this.restoreSession()}async restoreSession(){try{await this.oauthClient.ready}catch(t){console.warn("oauthClient.ready failed",t)}if(await this.oauthClient.isAuthorized()){this.isConnected=!0;const t=localStorage.getItem("marco:osm_user_display_name");t?this.userDisplayName=t:await this.fetchUserInfo()}}async login(){await this.oauthClient.requestAuthorizationCode()}async handleCallback(){await this.oauthClient.receiveCode(),await this.oauthClient.getTokens(),this.isConnected=!0,await this.fetchUserInfo()}async logout(){await this.oauthClient.reset(),this.isConnected=!1,this.userDisplayName=null,localStorage.removeItem("marco:osm_user_display_name")}async fetchUserInfo(){try{const t=await this.oauthClient.getTokens(),e=await fetch("https://api.openstreetmap.org/api/0.6/user/details.json",{headers:{Authorization:`Bearer ${t.accessToken}`}});if(e.ok){const t=await e.json();console.debug("OSM data:",t);const n=t.user.display_name;this.userDisplayName=n,localStorage.setItem("marco:osm_user_display_name",n)}else console.error("Failed to fetch OSM user info",e.status)}catch(t){console.error("Error fetching OSM user info",t)}}},CB=a({capitalize:()=>kB,formatRelativeDate:()=>EB,humanizeOsmTag:()=>SB});function SB(t){return"string"==typeof t&&t?t.replace(/[_-]/g," ").replace(/\w\S*/g,t=>t.replace(/^\w/,t=>t.toUpperCase())):""}function kB(t){return"string"==typeof t&&t?t.charAt(0).toUpperCase()+t.slice(1):""}function EB(t){if(!t)return"";const e=new Date(1e3*t),n=new Date-e,r=Math.floor(n/6e4),i=Math.floor(r/60),s=Math.floor(i/24);return r<1?"just now":r<60?`${r} min ago`:i<24?`${i} hr ago`:s<7?`${s} day${1===s?"":"s"} ago`:e.toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}var RB=a({getLocalizedName:()=>TB,getPlaceType:()=>IB});function TB(t,e="Untitled Place"){if(!t)return e;const n=navigator.languages||[navigator.language||"en"];for(const r of n){if(!r)continue;const e=`name:${r.split("-")[0]}`;if(t[e])return t[e]}return t.name?t.name:t["name:en"]?t["name:en"]:e}var LB=["amenity","shop","tourism","historic","leisure","office","craft","building","landuse","public_transport","highway","aeroway","waterway","natural","place","border_type","admin_title"];function IB(t){if(!t)return null;let e=null;for(const n of LB){const r=t[n];if(r){if("yes"===r){e||(e=n);continue}return SB(r)}}return e?SB(e):null}var PB=a({POI_CATEGORIES:()=>MB,getCategoryById:()=>AB}),MB=[{id:"restaurants",label:"Restaurants",icon:"fork-and-knife",filter:['["amenity"~"^(restaurant|fast_food|food_court|pub|cafe)$"]["cuisine"!~"coffee"]'],types:["node","way"]},{id:"coffee",label:"Coffee",icon:"cup-and-saucer",filter:['["amenity"~"^(cafe|ice_cream)$"]','["shop"~"^(coffee|tea)$"]','["cuisine"~"coffee_shop"]'],types:["node","way"]},{id:"groceries",label:"Groceries",icon:"shopping-basket",filter:['["shop"~"^(supermarket|convenience|grocery|greengrocer|bakery|butcher|deli|farm|seafood)$"]'],types:["node","way"]},{id:"things-to-do",label:"Things to do",icon:"feather-camera",filter:['["tourism"~"^(museum|gallery|attraction|viewpoint|zoo|theme_park|aquarium|artwork|information)$"]','["amenity"~"^(cinema|theatre|arts_centre|planetarium)$"]','["leisure"~"^(sports_centre|stadium|water_park)$"]','["historic"]','["shop"="flea_market"]'],types:["node","way","relation"]},{id:"accommodation",label:"Hotels",icon:"person-sleeping-in-bed",filter:['["tourism"~"^(hotel|hostel|motel|chalet|guest_house)$"]'],types:["node","way","relation"]}];function AB(t){return MB.find(e=>e.id===t)}var OB,NB=a({default:()=>FB}),FB=class t extends fp{static{BF(this.prototype,"settings",[pp])}#z=void qF(this,"settings");static{BF(this.prototype,"localForage",[pp])}#$=void qF(this,"localForage");controller=null;cachedResults=null;lastQueryKey=null;cachedPlaces=new Map;static STORE_NAME="osm-cache";static CACHE_TTL_MS=6048e5;static IN_MEMORY_TTL_MS=1e4;_buildCacheKey(t,e){return`${t}:${e}`}async _readLocalCache(e,n){const r=this._buildCacheKey(e,n);try{const e=await this.localForage.get(t.STORE_NAME,r);if(!e)return null;const n="string"==typeof e?JSON.parse(e):e;return!n||"number"!=typeof n.timestamp||Date.now()-n.timestamp>t.CACHE_TTL_MS?(await this.localForage.remove(t.STORE_NAME,r),null):n.data}catch{try{await this.localForage.remove(t.STORE_NAME,r)}catch{}return null}}async _writeLocalCache(e,n,r){if(!r)return;const i=this._buildCacheKey(e,n);try{await this.localForage.set(t.STORE_NAME,i,{data:r,timestamp:Date.now()})}catch(s){console.debug("[osm] Failed to write IndexedDB cache entry",s)}}async getCachedOsmObject(e,n){if(!e||!n)return null;const r=this._buildCacheKey(e,n),i=this.cachedPlaces.get(r);return i&&Date.now()-i.timestamp{this.cachedPlaces.delete(e)},t.IN_MEMORY_TTL_MS),this._writeLocalCache(n,r,i)):console.debug(`[osm] Skipping cache write for ${e}: data has no title`)}cancelAll(){this.controller&&(this.controller.abort(),this.controller=null)}async getNearbyPois(t,e,n=50){const r=`${t},${e},${n}`;if(this.lastQueryKey===r&&this.cachedResults)return console.debug("Returning cached Overpass results for:",r),this.cachedResults;this.controller&&this.controller.abort(),this.controller=new AbortController;const i=this.controller.signal,s=[`~"^(${["amenity","shop","tourism","historic","leisure","office","craft","building","landuse","public_transport","aeroway"].join("|")})$"~".*"`],o=Object.entries({public_transport:["stop_area","platform"]}).map(([t,e])=>`["${t}"!~"^(${e.join("|")})$"]`).join(""),a=`\n[out:json][timeout:25];\n(\n node(around:${n},${t},${e})\n [${s}]${o}[~"^name"~"."];\n way(around:${n},${t},${e})\n [${s}]${o}[~"^name"~"."];\n relation(around:${n},${t},${e})\n [${s}]${o}[~"^name"~"."];\n);\nout center;\n `.trim(),l=`${this.settings.overpassApi}?data=${encodeURIComponent(a)}`;try{const t=await this.fetchWithRetry(l,{signal:i});if(!t.ok)throw new Error("Overpass request failed");const e=(await t.json()).elements.map(this.normalizePoi);return this.lastQueryKey=r,this.cachedResults=e,e}catch(c){if("AbortError"===c.name)return console.debug("Overpass request aborted"),[];throw c}}async getCategoryPois(t,e,n,r){const i=AB(e);if(!i||!t)return[];const s=n&&r?`cat:${e}:${n}:${r}`:null;if(s&&this.lastQueryKey===s&&this.cachedResults)return console.debug("Returning cached category results for:",s),this.cachedResults;this.controller&&this.controller.abort(),this.controller=new AbortController;const o=this.controller.signal,{minLat:a,minLon:l,maxLat:c,maxLon:u}=t,h=[],d=i.types||["node","way","relation"];i.filter.forEach(t=>{d.forEach(e=>{h.push(`${e}${t}[~"^name"~"."];`)})});const p=`\n[out:json][timeout:25][bbox:${a},${l},${c},${u}];\n(\n ${h.join("\n ")}\n);\nout center;\n `.trim(),f=`${this.settings.overpassApi}?data=${encodeURIComponent(p)}`;try{const t=await this.fetchWithRetry(f,{signal:o});if(!t.ok)throw new Error("Overpass request failed");const e=(await t.json()).elements.map(this.normalizePoi);return s&&(this.lastQueryKey=s,this.cachedResults=e),e}catch(g){if("AbortError"===g.name)return console.debug("Category search aborted"),[];throw console.error("Category search failed",g),g}}normalizePoi(t){const e=t.tags||{},n=IB(e)||"Point of Interest";return{title:TB(e),lat:t.lat||t.center?.lat,lon:t.lon||t.center?.lon,url:e.website,osmId:String(t.id),osmType:t.type,osmTags:e,description:e.description,source:"osm",type:n}}async fetchWithRetry(t,e={},n=3){try{const r=await fetch(t,e);return!r.ok&&n>0&&[502,503,504,429].includes(r.status)?(console.warn(`Overpass request failed with ${r.status}. Retrying... (${n} left)`),await new Promise(t=>setTimeout(t,1e3)),this.fetchWithRetry(t,e,n-1)):r}catch(r){if(n>0&&"AbortError"!==r.name)return console.debug(`Retrying Overpass request... (${n} left)`),await new Promise(t=>setTimeout(t,1e3)),this.fetchWithRetry(t,e,n-1);throw r}}async getPoiById(t,e=null){let n;n="node"===e?`[out:json][timeout:25];node(${t});out center;`:"way"===e?`[out:json][timeout:25];way(${t});out center;`:`\n[out:json][timeout:25];\n(\n node(${t});\n way(${t});\n);\nout center;\n `.trim();const r=`${this.settings.overpassApi}?data=${encodeURIComponent(n)}`,i=await this.fetchWithRetry(r);if(!i.ok)throw new Error("Overpass request failed");const s=await i.json();return s.elements[0]?this.normalizePoi(s.elements[0]):null}async fetchOsmObject(e,n,{forceFresh:r=!1}={}){if(!e||!n)return null;const i=this._buildCacheKey(n,e);if(r)return this._fetchAndCacheOsmObject(e,n,i);const s=this.cachedPlaces.get(i);if(s&&Date.now()-s.timestamp{console.debug("[osm] Background refresh failed for",i,t)}),o):this._fetchAndCacheOsmObject(e,n,i)}async _refreshOsmObject(t,e,n){const r=await this._fetchOsmObjectFromApi(t,e);return r&&this._storeInMemoryAndLocalStorage(n,e,t,r),r}async _fetchAndCacheOsmObject(t,e,n){const r=await this._fetchOsmObjectFromApi(t,e);return r&&this._storeInMemoryAndLocalStorage(n,e,t,r),r}async _fetchOsmObjectFromApi(t,e){let n;if("node"===e)n=`https://www.openstreetmap.org/api/0.6/node/${t}.json`;else if("way"===e)n=`https://www.openstreetmap.org/api/0.6/way/${t}/full.json`;else{if("relation"!==e)return console.error("Unknown OSM type:",e),null;n=`https://www.openstreetmap.org/api/0.6/relation/${t}/full.json`}try{const r=await this.fetchWithRetry(n);if(!r.ok){if(410===r.status)return console.warn("OSM object has been deleted"),null;throw new Error(`OSM API request failed: ${r.status}`)}const i=await r.json();return this.normalizeOsmApiData(i.elements,t,e)}catch(r){return console.error("Failed to fetch OSM object:",r),null}}async fetchOsmObjectsBatch(t){const e=new Map;if(!t||0===t.length)return e;const n=[];for(const{osmType:s,osmId:o}of t){if(!s||!o)continue;const t=this._buildCacheKey(s,o),r=await this.getCachedOsmObject(s,o);r?e.set(t,r):n.push({osmType:s,osmId:o,cacheKey:t})}if(0===n.length)return e;const r=new Map;for(const s of n)r.has(s.osmType)||r.set(s.osmType,[]),r.get(s.osmType).push(s);const i=[];for(const[s,o]of r)i.push(this._fetchOsmObjectsByType(s,o,e));return await Promise.allSettled(i),e}async _fetchOsmObjectsByType(t,e,n){for(let i=0;it.osmId).join(","),a="way"===t?"ways":t+"s",l=`https://www.openstreetmap.org/api/0.6/${a}.json?${a}=${o}`;try{const e=await this.fetchWithRetry(l);if(!e.ok){console.warn(`[osm] Batch fetch failed for ${t} (${e.status})`,o);continue}const r=await e.json();for(const i of s){const e=this.normalizeOsmApiData(r.elements,i.osmId,t);e&&n.set(i.cacheKey,e)}}catch(r){console.error(`[osm] Batch fetch error for ${t}:`,r)}}}normalizeOsmApiData(t,e,n){if(!t||0===t.length)return null;let r=t.find(t=>String(t.id)===String(e)&&t.type===n);if(!r)return null;let i=r;if("relation"===n&&r.members){const e=r.members.find(t=>"label"===t.role&&"node"===t.type),n=r.members.find(t=>"admin_centre"===t.role&&"node"===t.type),s=e||n;if(s){const e=t.find(t=>String(t.id)===String(s.ref)&&"node"===t.type);e&&(i=e)}}let s=i.lat,o=i.lon,a=null,l=null;if("way"===n&&r.nodes){const e=new Map;t.forEach(t=>{"node"===t.type&&e.set(t.id,[t.lon,t.lat])});const n=r.nodes.map(t=>e.get(t)).filter(Boolean);if(n.length>0){if(i===r){const t=n.reduce((t,e)=>t+e[1],0),e=n.reduce((t,e)=>t+e[0],0);s=t/n.length,o=e/n.length}const t=n.map(t=>t[1]),e=n.map(t=>t[0]);if(a={minLat:Math.min(...t),maxLat:Math.max(...t),minLon:Math.min(...e),maxLon:Math.max(...e)},n.length>1){const t=n[0],e=n[n.length-1];l=t[0]===e[0]&&t[1]===e[1]?{type:"Polygon",coordinates:[n]}:{type:"LineString",coordinates:n}}}}else if("relation"===n&&r.members){const e=[],n=new Map;t.forEach(t=>{"node"===t.type&&n.set(t.id,t)});const c=[];if(r.members.forEach(r=>{if("node"===r.type){const t=n.get(r.ref);t&&e.push(t)}else if("way"===r.type){const i=t.find(t=>"way"===t.type&&t.id===r.ref);if(i&&i.nodes){const t=[];i.nodes.forEach(r=>{const i=n.get(r);i&&(e.push(i),t.push([i.lon,i.lat]))}),t.length>1&&c.push(t)}}}),e.length>0){if(i===r){const t=e.reduce((t,e)=>t+e.lat,0),n=e.reduce((t,e)=>t+e.lon,0);s=t/e.length,o=n/e.length}const t=e.map(t=>t.lat),n=e.map(t=>t.lon);a={minLat:Math.min(...t),maxLat:Math.max(...t),minLon:Math.min(...n),maxLon:Math.max(...n)}}c.length>0&&(l={type:"MultiLineString",coordinates:c})}const c=i.tags||{},u=IB(c)||"Point of Interest";return{title:TB(c),lat:s,lon:o,bbox:a,geojson:l,url:c.website,osmId:String(i.id),osmType:i.type,osmTags:c,description:c.description,source:"osm",type:u}}},zB=a({default:()=>DB}),DB=class extends fp{static{BF(this.prototype,"settings",[pp])}#z=void qF(this,"settings");controller=null;cancelAll(){this.controller&&(this.controller.abort(),this.controller=null)}get baseUrl(){return this.settings.photonApi}async search(t,e,n,r=10){if(!t||t.length<2)return[];this.controller&&this.controller.abort(),this.controller=new AbortController;const i=this.controller.signal,s=new URLSearchParams({q:t,limit:String(r)});e&&n&&(s.append("lat",parseFloat(e).toFixed(4)),s.append("lon",parseFloat(n).toFixed(4)));const o=`${this.baseUrl}?${s.toString()}`;try{const t=await this.fetchWithRetry(o,{signal:i});if(!t.ok)throw new Error(`Photon request failed with status ${t.status}`);const e=await t.json();return e.features?e.features.map(t=>this.normalizeFeature(t)):[]}catch(a){return"AbortError"===a.name||console.error("Photon search error:",a),[]}}normalizeFeature(t){const e=t.properties||{},n=(t.geometry||{}).coordinates||[],r=n[0],i=n[1],s=[];e.street&&s.push(e.housenumber?`${e.street} ${e.housenumber}`:e.street),e.city&&e.city!==e.name&&s.push(e.city),e.state&&e.state!==e.city&&s.push(e.state),e.country&&s.push(e.country);const o=s.join(", "),a=e.name||o||"Unknown Place",l={...e};e.osm_key&&e.osm_value&&(l[e.osm_key]=e.osm_value);const c=IB(l)||SB(e.osm_value);return{title:a,lat:i,lon:r,osmId:e.osm_id,osmType:{N:"node",W:"way",R:"relation"}[e.osm_type]||e.osm_type,osmTags:l,description:e.name?o:s.slice(1).join(", "),source:"photon",type:c}}async fetchWithRetry(t,e={},n=3){try{const r=await fetch(t,e);return!r.ok&&n>0&&[502,503,504,429].includes(r.status)?(console.warn(`Photon request failed with ${r.status}. Retrying... (${n} left)`),await new Promise(t=>setTimeout(t,1e3)),this.fetchWithRetry(t,e,n-1)):r}catch(r){if(n>0&&"AbortError"!==r.name)return console.debug(`Retrying Photon request... (${n} left)`,r),await new Promise(t=>setTimeout(t,1e3)),this.fetchWithRetry(t,e,n-1);throw r}}},jB=a({default:()=>BB}),UB={overpassApi:"https://overpass-api.de/api/interpreter",mapKinetic:!0,photonApi:"https://photon.komoot.io/api/",showQuickSearchButtons:!0,nostrPhotoFallbackUploads:!1,nostrReadRelays:null,nostrWriteRelays:null,nostrReadRelayExclusions:null,nostrWriteRelayExclusions:null,experimentalEnablePhotoDeletion:!1},BB=class extends fp{static{BF(this.prototype,"overpassApi",[Wr],function(){return UB.overpassApi})}#xt=void qF(this,"overpassApi");static{BF(this.prototype,"mapKinetic",[Wr],function(){return UB.mapKinetic})}#Ct=void qF(this,"mapKinetic");static{BF(this.prototype,"photonApi",[Wr],function(){return UB.photonApi})}#St=void qF(this,"photonApi");static{BF(this.prototype,"showQuickSearchButtons",[Wr],function(){return UB.showQuickSearchButtons})}#kt=void qF(this,"showQuickSearchButtons");static{BF(this.prototype,"nostrPhotoFallbackUploads",[Wr],function(){return UB.nostrPhotoFallbackUploads})}#Et=void qF(this,"nostrPhotoFallbackUploads");static{BF(this.prototype,"nostrReadRelays",[Wr],function(){return UB.nostrReadRelays})}#Rt=void qF(this,"nostrReadRelays");static{BF(this.prototype,"nostrWriteRelays",[Wr],function(){return UB.nostrWriteRelays})}#Tt=void qF(this,"nostrWriteRelays");static{BF(this.prototype,"nostrReadRelayExclusions",[Wr],function(){return UB.nostrReadRelayExclusions})}#Lt=void qF(this,"nostrReadRelayExclusions");static{BF(this.prototype,"nostrWriteRelayExclusions",[Wr],function(){return UB.nostrWriteRelayExclusions})}#It=void qF(this,"nostrWriteRelayExclusions");static{BF(this.prototype,"experimentalEnablePhotoDeletion",[Wr],function(){return UB.experimentalEnablePhotoDeletion})}#Pt=void qF(this,"experimentalEnablePhotoDeletion");overpassApis=[{name:"overpass-api.de (DE)",url:"https://overpass-api.de/api/interpreter"},{name:"private.coffee (AT)",url:"https://overpass.private.coffee/api/interpreter"}];photonApis=[{name:"photon.komoot.io",url:"https://photon.komoot.io/api/"}];constructor(){super(...arguments),this.loadSettings()}loadSettings(){let t={};const e=localStorage.getItem("marco:settings");if(e)try{t=JSON.parse(e)}catch(r){console.error("Failed to parse settings from localStorage",r)}else{const e=localStorage.getItem("marco:overpass-api");e&&(t.overpassApi=e);const n=localStorage.getItem("marco:map-kinetic");null!==n&&(t.mapKinetic="true"===n);const r=localStorage.getItem("marco:show-quick-search");null!==r&&(t.showQuickSearchButtons="true"===r);const i=localStorage.getItem("marco:nostr-photo-fallback-uploads");null!==i&&(t.nostrPhotoFallbackUploads="true"===i);const s=localStorage.getItem("marco:photon-api");s&&(t.photonApi=s)}const n={...UB,...t};this.overpassApis.some(t=>t.url===n.overpassApi)||(n.overpassApi=UB.overpassApi),this.overpassApi=n.overpassApi,this.mapKinetic=n.mapKinetic,this.photonApi=n.photonApi,this.showQuickSearchButtons=n.showQuickSearchButtons,this.nostrPhotoFallbackUploads=n.nostrPhotoFallbackUploads,this.nostrReadRelays=n.nostrReadRelays,this.nostrWriteRelays=n.nostrWriteRelays,this.nostrReadRelayExclusions=n.nostrReadRelayExclusions,this.nostrWriteRelayExclusions=n.nostrWriteRelayExclusions,this.experimentalEnablePhotoDeletion=n.experimentalEnablePhotoDeletion,this.saveSettings()}saveSettings(){const t={overpassApi:this.overpassApi,mapKinetic:this.mapKinetic,photonApi:this.photonApi,showQuickSearchButtons:this.showQuickSearchButtons,nostrPhotoFallbackUploads:this.nostrPhotoFallbackUploads,nostrReadRelays:this.nostrReadRelays,nostrWriteRelays:this.nostrWriteRelays,nostrReadRelayExclusions:this.nostrReadRelayExclusions,nostrWriteRelayExclusions:this.nostrWriteRelayExclusions,experimentalEnablePhotoDeletion:this.experimentalEnablePhotoDeletion};localStorage.setItem("marco:settings",JSON.stringify(t))}update(t,e){t in UB&&(this[t]=e,this.saveSettings())}},$B=o((t,e)=>{var n,r;n=t,r=function(){return function(){var t={548:function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.Access=void 0;class n{constructor(t){this.rs=t,this.reset(!1)}get scopes(){return Object.keys(this.scopeModeMap).map(t=>({name:t,mode:this.scopeModeMap[t]}))}get scopeParameter(){return this.scopes.map(t=>`${this._scopeNameForParameter(t)}:${t.mode}`).join(" ")}claim(t,e){if("string"!=typeof t||-1!==t.indexOf("/")||0===t.length)throw new Error("Scope should be a non-empty string without forward slashes");if("string"!=typeof e||!e.match(/^rw?$/))throw new Error("Mode should be either 'r' or 'rw'");this._adjustRootPaths(t),this.scopeModeMap[t]=e,this._notifyChange()}get(t){return this.scopeModeMap[t]}remove(t){const e={};for(const n in this.scopeModeMap)e[n]=this.scopeModeMap[n];this.reset(!1),delete e[t];for(const n in e)this._adjustRootPaths(n),this.scopeModeMap[n]=e[n];this._notifyChange()}checkPermission(t,e){const n=this.get(t);return n&&("r"===e||"rw"===n)}checkPathPermission(t,e){if(this.checkPermission("*",e))return!0;const n=this._getModuleName(t);return!!this.checkPermission(n,e)}reset(t=!0){this.rootPaths=[],this.scopeModeMap={},t&&this._notifyChange()}_getModuleName(t){if("/"!==t[0])throw new Error("Path should start with a slash");const e=t.replace(/^\/public/,"").match(/^\/([^/]*)\//);return e?e[1]:"*"}_adjustRootPaths(t){"*"in this.scopeModeMap||"*"===t?this.rootPaths=["/"]:t in this.scopeModeMap||(this.rootPaths.push("/"+t+"/"),this.rootPaths.push("/public/"+t+"/"))}_scopeNameForParameter(t){if("*"===t.name&&this.storageType){if("2012.04"===this.storageType)return"";if(this.storageType.match(/remotestorage-0[01]/))return"root"}return t.name}setStorageType(t){this.storageType=t}_notifyChange(){this.rs&&"function"==typeof this.rs._checkScopeChange&&this.rs._checkScopeChange()}static _rs_init(){}}e.Access=n,e.default=n},275:function(t,e,n){var r=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))(function(i,s){function o(t){try{l(r.next(t))}catch(t){s(t)}}function a(t){try{l(r.throw(t))}catch(t){s(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(o,a)}l((r=r.apply(t,e||[])).next())})},i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.Authorize=void 0;const s=i(n(28)),o=i(n(334)),a=n(746),l=i(n(503)),c=n(368);let u;function h(t){const e=t||d.getLocation().href,n={};for(const[s,o]of new URL(e).searchParams)n[s]=o;const r=e.indexOf("#");if(-1===r)return n;const i=e.substring(r+1);return i.includes("=")?i.split("&").reduce(function(t,e){const n=e.split("=");if("state"===n[0]&&n[1].match(/rsDiscovery/)){let e=decodeURIComponent(n[1]);const r=e.substr(e.indexOf("rsDiscovery=")).split("&")[0].split("=")[1];t.rsDiscovery=JSON.parse(atob(r)),e=e.replace(new RegExp("&?rsDiscovery="+r),""),e.length>0&&(t.state=e)}else t[decodeURIComponent(n[0])]=decodeURIComponent(n[1]);return t},n):n}class d{static authorize(t,e){if((0,o.default)("[Authorize] authURL = ",e.authURL,"scope = ",e.scope,"redirectUri = ",e.redirectUri,"clientId = ",e.clientId,"response_type =",e.response_type),!e.scope)throw new Error("Cannot authorize due to undefined or empty scope; did you forget to access.claim()?");if("function"==typeof t._rememberPendingScope&&t._rememberPendingScope(e.scope),!(0,a.localStorageAvailable)()&&"remotestorage"===t.backend){e.redirectUri+=e.redirectUri.indexOf("#")>0?"&":"#";const n={userAddress:t.remote.userAddress,href:t.remote.href,storageApi:t.remote.storageApi,properties:t.remote.properties};e.redirectUri+="rsDiscovery="+(0,a.toBase64)(JSON.stringify(n))}const n=function(t){const e=new URL(t.redirectUri);t.state||(t.state=e.hash?e.hash.substring(1):""),t.response_type||(t.response_type="token");const n=new URL(t.authURL);n.searchParams.set("redirect_uri",t.redirectUri.replace(/#.*$/,"")),n.searchParams.set("scope",t.scope),n.searchParams.set("client_id",t.clientId);for(const r of["state","response_type","code_challenge","code_challenge_method","token_access_type"]){const e=t[r];e&&n.searchParams.set(r,e)}return n.href}(e);a.globalContext.cordova&&(d.getLocation().href.startsWith("file:")||"string"==typeof s.default.cordovaRedirectUri&&e.redirectUri===s.default.cordovaRedirectUri)?d.openWindow(n,e.redirectUri,"location=yes,clearsessioncache=yes,clearcache=yes").then(n=>{t.remote.configure({token:n.access_token}),"function"==typeof t._completeAuthorization&&t._completeAuthorization(n.scope||e.scope)}):d.setLocation(n)}static refreshAccessToken(t,e,n){return r(this,void 0,void 0,function*(){var t,r,i;yield e.configure({token:null,tokenType:null});const s=new URLSearchParams({grant_type:"refresh_token",client_id:e.clientId,refresh_token:n}),a=yield(0,c.requestWithTimeout)("POST",e.TOKEN_URL,{headers:{"Content-Type":"application/x-www-form-urlencoded"},body:s.toString(),responseType:"json"});if(200!==(null==a?void 0:a.status))throw yield e.configure({refreshToken:null}),new l.default("refresh token rejected:"+JSON.stringify(a.response));{(0,o.default)(`[Authorize] access token good for ${null===(t=null==a?void 0:a.response)||void 0===t?void 0:t.expires_in} seconds`);const n={token:null===(r=null==a?void 0:a.response)||void 0===r?void 0:r.access_token,tokenType:null===(i=null==a?void 0:a.response)||void 0===i?void 0:i.token_type};if(!n.token)throw new Error(`no access_token in "successful" refresh: ${a.response}`);yield e.configure(n)}})}static setLocation(t){if("string"==typeof t)document.location.href=t;else{if("object"!=typeof t)throw"Invalid location "+t;document.location.href=t.href}}static _rs_supported(){return"undefined"!=typeof document}static _rs_cleanup(t){t.removeEventListener("features-loaded",u)}}e.Authorize=d,d.IMPLIED_FAKE_TOKEN=!1,d.getLocation=function(){return document.location},d.openWindow=function(t,e,n){return new Promise((r,i)=>{const s=open(t,"_blank",n);function o(){i("Authorization was canceled")}s&&!s.closed?(s.addEventListener("loadstart",function(t){if(0!==t.url.indexOf(e))return;s.removeEventListener("exit",o),s.close();const n=h(t.url);n?r(n):i("Authorization error")}),s.addEventListener("exit",o)):i("Authorization popup was blocked")})},d._rs_init=function(t){const e=h(),n=function(t){return"string"==typeof t.access_token||"string"==typeof t.code||"string"==typeof t.error||"string"==typeof t.remotestorage||"object"==typeof t.rsDiscovery}(e);let i;n&&(i=d.getLocation(),i.hash=""),u=function(){let s=!1;if(n){if(e.error)throw"function"==typeof t._forgetPendingScope&&t._forgetPendingScope(),"access_denied"===e.error?new l.default("Authorization failed: access denied",{code:"access_denied"}):new l.default(`Authorization failed: ${e.error}`);e.rsDiscovery&&t.remote.configure(e.rsDiscovery),e.access_token&&(t.remote.configure({token:e.access_token}),"function"==typeof t._completeAuthorization&&t._completeAuthorization(e.scope),s=!0),e.remotestorage&&(t.connect(e.remotestorage),s=!0),e.state&&(i=d.getLocation(),d.setLocation(i.href.split("#")[0]+"#"+e.state)),e.code&&(function(e){r(this,void 0,void 0,function*(){var n,r,s,a,l;const u=sessionStorage.getItem("remotestorage:codeVerifier");if(!u)return void(0,o.default)("[Authorize] Ignoring OAuth code parameter, because no PKCE code verifier found in sessionStorage");i=d.getLocation();let h=i.origin;"/"!==i.pathname&&(h+=i.pathname);const p=new URLSearchParams({code:e,grant_type:"authorization_code",client_id:t.remote.clientId,redirect_uri:h,code_verifier:u}),f=yield(0,c.requestWithTimeout)("POST",t.remote.TOKEN_URL,{headers:{"Content-Type":"application/x-www-form-urlencoded"},body:p.toString(),responseType:"json"});switch(f.status){case 200:{(0,o.default)(`[Authorize] access token good for ${null===(n=null==f?void 0:f.response)||void 0===n?void 0:n.expires_in} seconds`);const e={token:null===(r=null==f?void 0:f.response)||void 0===r?void 0:r.access_token,refreshToken:null===(s=null==f?void 0:f.response)||void 0===s?void 0:s.refresh_token,tokenType:null===(a=null==f?void 0:f.response)||void 0===a?void 0:a.token_type};e.token?(t.remote.configure(e),"function"==typeof t._completeAuthorization&&t._completeAuthorization(null===(l=null==f?void 0:f.response)||void 0===l?void 0:l.scope)):t._emit("error",new Error(`no access_token in "successful" response: ${f.response}`)),sessionStorage.removeItem("remotestorage:codeVerifier");break}default:"function"==typeof t._forgetPendingScope&&t._forgetPendingScope(),t._emit("error",new Error(`${f.statusText}: ${f.response}`))}})}(e.code),s=!0),s||t.remote.stopWaitingForToken()}else t.remote.stopWaitingForToken()},t.on("features-loaded",u)},e.default=d},424:function(t,e,n){var r=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))(function(i,s){function o(t){try{l(r.next(t))}catch(t){s(t)}}function a(t){try{l(r.throw(t))}catch(t){s(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(o,a)}l((r=r.apply(t,e||[])).next())})},i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.BaseClient=void 0;const s=i(n(439)),o=i(n(613)),a=i(n(491)),l=i(n(93)),c=i(n(28)),u=n(746);class h{constructor(t,e){if(this.schemas={configurable:!0,get(){return h.Types.inScope(this.moduleName)}},"/"!==e[e.length-1])throw"Not a folder: "+e;"/"===e&&(this.makePath=t=>("/"===t[0]?"":"/")+t),this.storage=t,this.base=e,this.moduleName=function(t){const e=t.split("/");return t.length>2?e[1]:"root"}(this.base),this.addEvents(["change"]),this.on=this.on.bind(this),t.onChange(this.base,this._fireChange.bind(this))}scope(t){return new h(this.storage,this.makePath(t))}getListing(t,e){return r(this,void 0,void 0,function*(){if("string"!=typeof t)t="";else if(t.length>0&&!(0,u.isFolder)(t))return Promise.reject("Not a folder: "+t);return this.storage.get(this.makePath(t),e).then(t=>404===t.statusCode?{}:t.body)})}getAll(t,e){return r(this,void 0,void 0,function*(){if("string"!=typeof t)t="";else if(t.length>0&&!(0,u.isFolder)(t))return Promise.reject("Not a folder: "+t);return this.storage.get(this.makePath(t),e).then(n=>{if(404===n.statusCode)return{};if("object"==typeof n.body){const r=Object.keys(n.body);if(0===r.length)return{};const i=r.map(r=>this.storage.get(this.makePath(t+r),e).then(t=>{if("string"==typeof t.body)try{t.body=JSON.parse(t.body)}catch(t){}"object"==typeof t.body&&(n.body[r]=t.body)}));return Promise.all(i).then(()=>n.body)}})})}getFile(t,e){return r(this,void 0,void 0,function*(){return"string"!=typeof t?Promise.reject("Argument 'path' of baseClient.getFile must be a string"):this.storage.get(this.makePath(t),e).then(t=>({data:t.body,contentType:t.contentType,revision:t.revision}))})}storeFile(t,e,n){return r(this,void 0,void 0,function*(){return"string"!=typeof t?Promise.reject("Argument 'contentType' of baseClient.storeFile must be a string"):"string"!=typeof e?Promise.reject("Argument 'path' of baseClient.storeFile must be a string"):"string"!=typeof n&&"object"!=typeof n?Promise.reject("Argument 'body' of baseClient.storeFile must be a string, ArrayBuffer, or ArrayBufferView"):(this.storage.access.checkPathPermission(this.makePath(e),"rw")||console.warn("WARNING: Editing a document to which only read access ('r') was claimed"),this.storage.put(this.makePath(e),n,t).then(t=>200===t.statusCode||201===t.statusCode?t.revision:Promise.reject("Request (PUT "+this.makePath(e)+") failed with status: "+t.statusCode)))})}getObject(t,e){return r(this,void 0,void 0,function*(){return"string"!=typeof t?Promise.reject("Argument 'path' of baseClient.getObject must be a string"):this.storage.get(this.makePath(t),e).then(e=>{if("object"==typeof e.body)return e.body;if("string"==typeof e.body)try{return JSON.parse(e.body)}catch(e){throw new Error("Not valid JSON: "+this.makePath(t))}else if(void 0!==e.body&&200===e.statusCode)return Promise.reject("Not an object: "+this.makePath(t))})})}storeObject(t,e,n){return r(this,void 0,void 0,function*(){if("string"!=typeof t)return Promise.reject("Argument 'typeAlias' of baseClient.storeObject must be a string");if("string"!=typeof e)return Promise.reject("Argument 'path' of baseClient.storeObject must be a string");if("object"!=typeof n)return Promise.reject("Argument 'object' of baseClient.storeObject must be an object");this._attachType(n,t);try{const t=this.validate(n);if(!t.valid)return Promise.reject(t)}catch(t){return Promise.reject(t)}return this.storage.put(this.makePath(e),JSON.stringify(n),"application/json; charset=UTF-8").then(t=>200===t.statusCode||201===t.statusCode?t.revision:Promise.reject("Request (PUT "+this.makePath(e)+") failed with status: "+t.statusCode))})}remove(t){return r(this,void 0,void 0,function*(){return"string"!=typeof t?Promise.reject("Argument 'path' of baseClient.remove must be a string"):(this.storage.access.checkPathPermission(this.makePath(t),"rw")||console.warn("WARNING: Removing a document to which only read access ('r') was claimed"),this.storage.delete(this.makePath(t),this.storage.connected))})}getItemURL(t){return r(this,void 0,void 0,function*(){if("string"!=typeof t)throw"Argument 'path' of baseClient.getItemURL must be a string";if(this.storage.connected)return"function"==typeof this.storage.remote.getItemURL?this.storage.remote.getItemURL(this.makePath(t)):this.storage.remote.href+(0,u.cleanPath)(this.makePath(t))})}cache(t,e="ALL"){if("string"!=typeof t)throw"Argument 'path' of baseClient.cache must be a string";if("string"!=typeof e)throw"Argument 'strategy' of baseClient.cache must be a string or undefined";if("FLUSH"!==e&&"SEEN"!==e&&"ALL"!==e)throw'Argument \'strategy\' of baseclient.cache must be one of ["FLUSH", "SEEN", "ALL"]';return this.storage.caching.set(this.makePath(t),e),this}declareType(t,e,n){let r;if(n&&"string"==typeof e)r=e;else if(n||"string"==typeof e){if(!n&&"string"==typeof e)throw new Error("declareType() requires a JSON Schema object to be passed, in order to validate object types/formats")}else n=e,r=this._defaultTypeURI(t);h.Types.declare(this.moduleName,t,r,n)}validate(t){const e=h.Types.getSchema(t["@context"]);if(e)return s.default.validateResult(t,e);throw new a.default(t["@context"])}_defaultTypeURI(t){return"http://remotestorage.io/spec/modules/"+encodeURIComponent(this.moduleName)+"/"+encodeURIComponent(t)}_attachType(t,e){t["@context"]=h.Types.resolveAlias(this.moduleName+"/"+e)||this._defaultTypeURI(e)}makePath(t){return this.base+(t||"")}_fireChange(t){c.default.changeEvents[t.origin]&&(["new","old","lastCommon"].forEach(function(e){if((!t[e+"ContentType"]||/^application\/(.*)json(.*)/.exec(t[e+"ContentType"]))&&"string"==typeof t[e+"Value"])try{t[e+"Value"]=JSON.parse(t[e+"Value"])}catch(t){}}),this._emit("change",t))}static _rs_init(){}}e.BaseClient=h,h.Types=o.default,(0,u.applyMixins)(h,[l.default]),e.default=h},285:function(t,e,n){var r=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.Caching=void 0;const i=n(746),s=r(n(334));class o{constructor(t){this.pendingActivations=[],this._access=t.access,this.reset()}set(t,e){if("string"!=typeof t)throw new Error("path should be a string");if(!(0,i.isFolder)(t))throw new Error("path should be a folder");if(!this._access.checkPathPermission(t,"r"))throw new Error('No access to path "'+t+'". You must claim access to it first.');if(void 0===e||!e.match(/^(FLUSH|SEEN|ALL)$/))throw new Error("strategy should be 'FLUSH', 'SEEN', or 'ALL'");this._rootPaths[t]=e,"ALL"===e&&(this.activateHandler?this.activateHandler(t):this.pendingActivations.push(t))}enable(t){this.set(t,"ALL")}disable(t){this.set(t,"FLUSH")}onActivate(t){(0,s.default)("[Caching] Setting activate handler",t,this.pendingActivations),this.activateHandler=t;for(let e=0;e{this.emitChange(t.data)})}get(t,e,n){return r(this,void 0,void 0,function*(){return"number"==typeof e?this.getNodes((0,c.pathsFromRoot)(t)).then(r=>{const i=u(r[t]);return h(r,e)?n(t):i?{statusCode:200,body:i.body||i.itemsMap,contentType:(0,c.stripLegacyCharsetBinary)(i.contentType||null)}:{statusCode:404}}):this.getNodes([t]).then(e=>{const n=u(e[t]);if(n){if((0,c.isFolder)(t))for(const t in n.itemsMap)n.itemsMap.hasOwnProperty(t)&&!1===n.itemsMap[t]&&delete n.itemsMap[t];return{statusCode:200,body:n.body||n.itemsMap,contentType:(0,c.stripLegacyCharsetBinary)(n.contentType||null)}}return{statusCode:404}})})}put(t,e,n){return r(this,void 0,void 0,function*(){const r=(0,c.pathsFromRoot)(t);return this._updateNodes(r,function(t,r){try{for(let i=0,s=t.length;i0)break}else console.error("Cannot delete non-existing node "+i)}return n})})}flush(t){return this._getAllDescendentPaths(t).then(t=>this.getNodes(t)).then(t=>{for(const e in t){const n=t[e];n&&n.common&&n.local&&this.emitChange({path:n.path,origin:"local",oldValue:!1===n.local.body?void 0:n.local.body,newValue:!1===n.common.body?void 0:n.common.body}),t[e]=void 0}return this.setNodes(t)})}emitChange(t){a.default.changeEvents[t.origin]&&this._emit("change",t)}fireInitial(){a.default.changeEvents.local&&this.forAllNodes(t=>{if((0,c.isDocument)(t.path)){const e=u(t);e&&this.emitChange({path:t.path,origin:"local",oldValue:void 0,oldContentType:void 0,newValue:e.body,newContentType:e.contentType})}}).then(()=>{this._emit("local-events-done")})}onDiff(t){this.diffHandler=t}_updateNodes(t,e){return new Promise((n,r)=>{this._doUpdateNodes(t,e,{resolve:n,reject:r})})}_doUpdateNodes(t,e,n){return r(this,void 0,void 0,function*(){if(this._updateNodesRunning)return void this._updateNodesQueued.push({paths:t,cb:e,promise:n});this._updateNodesRunning=!0;try{let r=yield this.getNodes(t);const i=(0,c.deepClone)(r),s=[];r=e(t,r);for(const t in r){const e=r[t];(0,c.equal)(e,i[t])?delete r[t]:(0,c.isDocument)(t)&&((0,c.equal)(e.local.body,e.local.previousBody)&&e.local.contentType===e.local.previousContentType||s.push({path:t,origin:"window",oldValue:e.local.previousBody,newValue:!1===e.local.body?void 0:e.local.body,oldContentType:e.local.previousContentType,newContentType:e.local.contentType}),void 0===e.local.body?r[t]=void 0:(delete e.local.previousBody,delete e.local.previousContentType))}yield this.setNodes(r),this._emitChangeEvents(s),n.resolve({statusCode:200})}catch(t){n.reject(t)}this._updateNodesRunning=!1;const r=this._updateNodesQueued.shift();r&&(yield this._doUpdateNodes(r.paths,r.cb,r.promise))})}_emitChangeEvents(t){for(let e=0,n=t.length;e{const n=[t],r=u(e[t]),i=Object.keys(r.itemsMap).map(e=>this._getAllDescendentPaths(t+e).then(t=>{for(let e=0,r=t.length;en)}):Promise.resolve([t])}_getInternals(){return{getLatest:u,makeNode:d,isOutdated:h}}}(0,c.applyMixins)(f,[o.default]),t.exports=f},28:function(t){t.exports={cache:!0,changeEvents:{local:!0,window:!1,remote:!0,conflict:!0},cordovaRedirectUri:void 0,discovery:{allowPrivateAddresses:!0,timeout:5e3},logging:!1,modules:[],backgroundSyncInterval:6e4,disableFeatures:[],isBackground:!1,requestTimeout:3e4,syncInterval:1e4}},373:function(t,e,n){var r=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};const i=r(n(713)),s=r(n(28)),o=r(n(334)),a=n(746);let l;const c="remotestorage:discover";let u={};const h=function(t){if(t in u)return Promise.resolve(u[t]);const e=new i.default({tls_only:!1,uri_fallback:!0,request_timeout:s.default.discovery.timeout,allow_private_addresses:s.default.discovery.allowPrivateAddresses});let n;const r=new Promise((t,e)=>{n=setTimeout(()=>{e(new Error("timed out"))},s.default.discovery.timeout)});return Promise.race([e.lookup(t),r]).then(e=>{if(clearTimeout(n),"object"!=typeof e.idx.links.remotestorage||"number"!=typeof e.idx.links.remotestorage.length||e.idx.links.remotestorage.length<=0)throw(0,o.default)("[Discover] WebFinger record for "+t+" does not have remotestorage defined in the links section ",JSON.stringify(e.object)),new Error("WebFinger record for "+t+" does not have remotestorage defined in the links section.");const r=e.idx.links.remotestorage[0],i=r.properties||{},s=i["http://tools.ietf.org/html/rfc6749#section-4.2"]||i["auth-endpoint"],a=i["http://remotestorage.io/spec/version"]||r.type;return u[t]={href:r.href,storageApi:a,authURL:s,properties:i},l&&localStorage.setItem(c,JSON.stringify({cache:u})),u[t]}).catch(t=>{throw clearTimeout(n),t})};(h.DiscoveryError=function(t){this.name="DiscoveryError",this.message=t,this.stack=(new Error).stack}).prototype=Object.create(Error.prototype),h.DiscoveryError.prototype.constructor=h.DiscoveryError,h._rs_init=function(){if(l=(0,a.localStorageAvailable)(),l){const t=JSON.parse(localStorage.getItem(c));t&&(u=t.cache)}},h._rs_supported=function(){return Object.prototype.hasOwnProperty.call(a.globalContext,"fetch")||Object.prototype.hasOwnProperty.call(a.globalContext,"XMLHttpRequest")},h._rs_cleanup=function(){l&&localStorage.removeItem(c)},t.exports=h},706:function(t,e,n){var r=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))(function(i,s){function o(t){try{l(r.next(t))}catch(t){s(t)}}function a(t){try{l(r.throw(t))}catch(t){s(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(o,a)}l((r=r.apply(t,e||[])).next())})},i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};const s=i(n(93)),o=i(n(941)),a=i(n(982)),l=i(n(503)),c=n(746),u=n(368),h=n(684),d=i(n(275));let p;const f="remotestorage:dropbox",g="https://api.dropboxapi.com/2/files/list_folder",m="https://api.dropboxapi.com/2/files/list_folder/continue";function y(t){return("/remotestorage/"+t).replace(/\/+$/,"").replace(/\/+/g,"/")}const v=/[\u007f-\uffff]/g;function b(t){return JSON.stringify(t).replace(v,function(t){return"\\u"+("000"+t.charCodeAt(0).toString(16)).slice(-4)})}function w(t,e){return new RegExp("^"+e.join("\\/")+"(\\/|$)").test(t.error_summary)}class _ extends h.RemoteBase{constructor(t){if(super(t),this.online=!0,this.storageApi="draft-dejong-remotestorage-19",this._initialFetchDone=!1,this.addEvents(["connected","not-connected"]),this.clientId=t.apiKeys.dropbox.appKey,this.TOKEN_URL="https://api.dropboxapi.com/oauth2/token",this._revCache=new o.default("rev"),this._fetchDeltaCursor=null,this._fetchDeltaPromise=null,this._itemRefs={},p=(0,c.localStorageAvailable)(),p){const t=(0,c.getJSONFromLocalStorage)(f);t&&this.configure(t),this._itemRefs=(0,c.getJSONFromLocalStorage)(`${f}:shares`)||{}}this.connected&&setTimeout(this._emit.bind(this),0,"connected")}connect(){return r(this,void 0,void 0,function*(){try{if(this.rs.setBackend("dropbox"),this.token)S(this.rs);else{const{codeVerifier:t,codeChallenge:e,state:n}=yield(0,c.generateCodeVerifier)();sessionStorage.setItem("remotestorage:codeVerifier",t),sessionStorage.setItem("remotestorage:state",n),this.rs.authorize({authURL:"https://www.dropbox.com/oauth2/authorize",scope:"account_info.read files.content.read files.content.write files.metadata.read files.metadata.write sharing.read sharing.write",clientId:this.clientId,response_type:"code",state:n,code_challenge:e,code_challenge_method:"S256",token_access_type:"offline"})}}catch(t){throw this.rs._emit("error",t),this.rs.setBackend(void 0),t}})}configure(t){return r(this,void 0,void 0,function*(){void 0!==t.userAddress&&(this.userAddress=t.userAddress),void 0!==t.token&&(this.token=t.token),void 0!==t.refreshToken&&(this.refreshToken=t.refreshToken),void 0!==t.tokenType&&(this.tokenType=t.tokenType);const e=()=>{p&&localStorage.setItem(f,JSON.stringify({userAddress:this.userAddress,token:this.token,refreshToken:this.refreshToken,tokenType:this.tokenType}))};if(this.refreshToken||this.token)if(this.connected=!0,this.userAddress)this._emit("connected"),e();else try{const t=yield this.info();this.userAddress=t.email,this._emit("connected"),e()}catch(t){this.connected=!1,this.rs._emit("error",new Error("Could not fetch user info.")),e.apply(this)}else(()=>{this.connected=!1,p&&(localStorage.removeItem(f),localStorage.removeItem(`${f}:shares`)),this.rs.setBackend(void 0)})()})}_getFolder(t){const e=this._revCache,n=n=>{let i;if(200!==n.status&&409!==n.status)return Promise.reject("Unexpected response status: "+n.status);try{i=JSON.parse(n.responseText)}catch(t){return Promise.reject(t)}if(409===n.status)return w(i,["path","not_found"])?Promise.resolve({}):Promise.reject(new Error("API returned an error: "+i.error_summary));const s=i.entries.reduce((n,r)=>{try{const i="folder"===r[".tag"],s=r.path_display.split("/").slice(-1)[0]+(i?"/":"");if(i)n[s]={ETag:e.get(t+s)};else{const e=new Date(r.server_modified);n[s]={ETag:r.rev,"Content-Length":r.size,"Last-Modified":e.toUTCString()},this._revCache.set(t+s,r.rev)}}catch(e){console.error(`[Dropbox] folder “${t}” has entry ${JSON.stringify(r)}:`,e)}return n},{});return i.has_more?r(i.cursor).then(function(t){return Object.assign(s,t)}):Promise.resolve(s)},r=t=>{const e={body:{cursor:t}};return this._request("POST",m,e).then(n)};return this._request("POST",g,{body:{path:y(t)}}).then(n).then(function(n){return Promise.resolve({statusCode:200,body:n,contentType:"application/json; charset=UTF-8",revision:e.get(t)})})}get(t,e={}){if(!this.connected)return Promise.reject("not connected (path: "+t+")");const n=this._revCache.get(t);if(null===n)return Promise.resolve({statusCode:404});if(e&&e.ifNoneMatch){if(!this._initialFetchDone)return this.fetchDelta().then(()=>this.get(t,e));if(n&&n===e.ifNoneMatch)return Promise.resolve({statusCode:304})}if("/"===t.slice(-1))return this._getFolder(t);const r={headers:{"Dropbox-API-Arg":b({path:y(t)})},responseType:"arraybuffer"};return e&&e.ifNoneMatch&&(r.headers["If-None-Match"]=e.ifNoneMatch),this._request("GET","https://content.dropboxapi.com/2/files/download",r).then(e=>{const n=e.status;let r,i,s,o;return 200!==n&&409!==n?Promise.resolve({statusCode:n}):(r=e.getResponseHeader("Dropbox-API-Result"),(0,c.getTextFromArrayBuffer)(e.response,"UTF-8").then(a=>{i=a,409===n&&(r=i);try{r=JSON.parse(r)}catch(t){return Promise.reject(t)}if(409===n)return w(r,["path","not_found"])?{statusCode:404}:Promise.reject(new Error('API error while downloading file ("'+t+'"): '+r.error_summary));if(s=e.getResponseHeader("Content-Type"),o=r.rev,this._revCache.set(t,o),this._shareIfNeeded(t),(0,c.shouldBeTreatedAsBinary)(a,s))i=e.response;else try{i=JSON.parse(i),s="application/json; charset=UTF-8"}catch(t){}return{statusCode:n,body:i,contentType:(0,c.stripLegacyCharsetBinary)(s),revision:o}}))})}put(t,e,n){return r(this,arguments,void 0,function*(t,e,n,r={}){if(!this.connected)throw new Error("not connected (path: "+t+")");const i=this._revCache.get(t);if(r&&r.ifMatch&&i&&i!==r.ifMatch)return{statusCode:412,revision:i};if(r&&"*"===r.ifNoneMatch&&i&&"rev"!==i)return{statusCode:412,revision:i};if(e.length>157286400)throw new Error("Cannot upload file larger than 150MB");const s={body:e,contentType:n,path:t};if(r&&(r.ifMatch||"*"===r.ifNoneMatch)){const e=yield this._getMetadata(t);if(r&&"*"===r.ifNoneMatch&&e)return{statusCode:412,revision:e.rev};if(r&&r.ifMatch&&e&&e.rev!==r.ifMatch)return{statusCode:412,revision:e.rev}}const o=yield this._uploadSimple(s);return this._shareIfNeeded(t),o})}delete(t){return r(this,arguments,void 0,function*(t,e={}){if(!this.connected)throw new Error("not connected (path: "+t+")");const n=this._revCache.get(t);if((null==e?void 0:e.ifMatch)&&n&&e.ifMatch!==n)return{statusCode:412,revision:n};if(null==e?void 0:e.ifMatch){const n=yield this._getMetadata(t);if((null==e?void 0:e.ifMatch)&&n&&n.rev!==e.ifMatch)return{statusCode:412,revision:n.rev}}return this._deleteSimple(t)})}_shareIfNeeded(t){if(t.match(/^\/public\/.*[^/]$/)&&void 0===this._itemRefs[t])return this.share(t)}getItemURL(t){return r(this,void 0,void 0,function*(){if(t.match(/^\/public\/.*[^/]$/))return this._itemRefs[t]?this._itemRefs[t]:this.share(t)})}share(t){const e={body:{path:y(t)}};return this._request("POST","https://api.dropboxapi.com/2/sharing/create_shared_link_with_settings",e).then(e=>{if(200!==e.status&&409!==e.status)return Promise.reject(new Error("Invalid response status:"+e.status));let n;try{n=JSON.parse(e.responseText)}catch(t){return Promise.reject(new Error("Invalid response body: "+e.responseText))}return 409===e.status?w(n,["shared_link_already_exists"])?this._getSharedLink(t):Promise.reject(new Error("API error: "+n.error_summary)):Promise.resolve(n.url)}).then(e=>(this._itemRefs[t]=e,p&&localStorage.setItem("remotestorage:dropbox:shares",JSON.stringify(this._itemRefs)),Promise.resolve(e)),e=>(e.message='Sharing Dropbox file or folder ("'+t+'") failed: '+e.message,Promise.reject(e)))}info(){return this._request("POST","https://api.dropboxapi.com/2/users/get_current_account",{}).then(function(t){let e;try{const n=JSON.parse(t.responseText);e=null==n?void 0:n.email}catch(e){return Promise.reject(new Error("Could not query current account info: Invalid API response: "+t.responseText))}return Promise.resolve({email:e})})}_request(t,e,n){return r(this,arguments,void 0,function*(t,e,n,r=1){if(this.isForbiddenRequestMethod(t,e))throw`Don't use ${t} on directories!`;if(!this.token)throw new l.default("No access token");var i;n.headers||(n.headers={}),n.headers.Authorization="Bearer "+this.token,"object"!=typeof n.body||(i=n.body)instanceof ArrayBuffer||(0,u.isArrayBufferView)(i)||(n.body=JSON.stringify(n.body),n.headers["Content-Type"]="application/json; charset=UTF-8"),this.rs._emit("wire-busy",{method:t,isFolder:(0,c.isFolder)(e)});try{const i=yield(0,u.requestWithTimeout)(t,e,n);return this.online||(this.online=!0,this.rs._emit("network-online")),this.rs._emit("wire-done",{method:t,isFolder:(0,c.isFolder)(e),success:!0}),401===(null==i?void 0:i.status)&&this.refreshToken?r>=3?(console.error(`Abandoned after ${r} attempts: ${t} ${e}`),i):(this.rs._emit("wire-busy",{method:t,isFolder:(0,c.isFolder)(e)}),yield d.default.refreshAccessToken(this.rs,this,this.refreshToken),this.rs._emit("wire-done",{method:t,isFolder:(0,c.isFolder)(e),success:!0}),this._request(t,e,n,r+1)):[503,429].includes(null==i?void 0:i.status)?(this.online&&(this.online=!1,this.rs._emit("network-offline")),r>=3?(console.warn(`Abandoned after ${r} attempts: ${t} ${e}`),i):(yield new Promise(t=>setTimeout(t,(0,u.retryAfterMs)(i))),this._request(t,e,n,r+1))):i}catch(n){throw this.online&&(this.online=!1,this.rs._emit("network-offline")),this.rs._emit("wire-done",{method:t,isFolder:(0,c.isFolder)(e),success:!1}),n}})}fetchDelta(...t){if(this._fetchDeltaPromise)return this._fetchDeltaPromise;const e=t=>r(this,void 0,void 0,function*(){let n,r;"string"==typeof t?(n=m,r={cursor:t}):(n=g,r={path:"/remotestorage",recursive:!0,include_deleted:!0});try{const i=yield this._request("POST",n,{body:r});if(401===i.status)throw new l.default;if(200!==i.status&&409!==i.status)throw new Error("Invalid response status: "+i.status);let s;try{s=JSON.parse(i.responseText)}catch(t){throw new Error("Invalid response body: "+i.responseText)}if(409===i.status){if(!w(s,["path","not_found"]))throw new Error("API returned an error: "+s.error_summary);s={cursor:null,entries:[],has_more:!1}}if(t||this._revCache.deactivatePropagation(),s.entries.forEach(t=>{const e=t.path_display.slice(14);"deleted"===t[".tag"]?(this._revCache.delete(e),this._revCache.delete(e+"/")):"file"===t[".tag"]&&this._revCache.set(e,t.rev)}),this._fetchDeltaCursor=s.cursor,s.has_more)return e(s.cursor);this._revCache.activatePropagation(),this._initialFetchDone=!0}catch(t){if("timeout"===t)return;throw t}});return this._fetchDeltaPromise=e(this._fetchDeltaCursor).catch(t=>("object"==typeof t&&"message"in t?t.message="Dropbox: fetchDelta: "+t.message:t=`Dropbox: fetchDelta: ${t}`,this.rs._emit("error",t),this._fetchDeltaPromise=null,Promise.reject(t))).then(()=>(this._fetchDeltaPromise=null,Promise.resolve(t))),this._fetchDeltaPromise}_getMetadata(t){const e={path:y(t)};return this._request("POST","https://api.dropboxapi.com/2/files/get_metadata",{body:e}).then(t=>{if(200!==t.status&&409!==t.status)return Promise.reject(new Error("Invalid response status:"+t.status));let e;try{e=JSON.parse(t.responseText)}catch(e){return Promise.reject(new Error("Invalid response body: "+t.responseText))}return 409===t.status?w(e,["path","not_found"])?Promise.resolve():Promise.reject(new Error("API error: "+e.error_summary)):Promise.resolve(e)}).then(void 0,e=>(e.message='Could not load metadata for file or folder ("'+t+'"): '+e.message,Promise.reject(e)))}_uploadSimple(t){const e={path:y(t.path),mode:{".tag":"overwrite",update:void 0},mute:!0};return t.ifMatch&&(e.mode={".tag":"update",update:t.ifMatch}),this._request("POST","https://content.dropboxapi.com/2/files/upload",{body:t.body,headers:{"Content-Type":"application/octet-stream","Dropbox-API-Arg":b(e)}}).then(e=>{if(200!==e.status&&409!==e.status)return Promise.resolve({statusCode:e.status});let n;try{n=JSON.parse(e.responseText)}catch(t){return Promise.reject(new Error("Invalid API result: "+e.responseText))}return 409===e.status?w(n,["path","conflict"])?this._getMetadata(t.path).then(function(t){return Promise.resolve({statusCode:412,revision:t.rev})}):(this.rs._emit("error",new Error(n.error_summary)),Promise.resolve({statusCode:e.status})):(this._revCache.set(t.path,n.rev),Promise.resolve({statusCode:e.status,revision:n.rev}))})}_deleteSimple(t){const e={path:y(t)};return this._request("POST","https://api.dropboxapi.com/2/files/delete",{body:e}).then(t=>{if(200!==t.status&&409!==t.status)return Promise.resolve({statusCode:t.status});let e;try{e=JSON.parse(t.responseText)}catch(e){return Promise.reject(new Error("Invalid response body: "+t.responseText))}if(409===t.status){if(w(e,["path_lookup","not_found"]))return Promise.resolve({statusCode:404});this.rs._emit("error",new Error(e.error_summary))}return Promise.resolve({statusCode:t.status,revision:200===t.status?e.rev:void 0})}).then(e=>(200!==e.statusCode&&404!==e.statusCode||(this._revCache.delete(t),delete this._itemRefs[t]),Promise.resolve(e)),e=>(e.message='Could not delete Dropbox file or folder ("'+t+'"): '+e.message,Promise.reject(e)))}_getSharedLink(t){return r(this,void 0,void 0,function*(){const e={body:{path:y(t),direct_only:!0}};return this._request("POST","https://api.dropboxapi.com/2/sharing/list_shared_links",e).then(t=>{if(200!==t.status&&409!==t.status)return Promise.reject(new Error("Invalid response status: "+t.status));let e;try{e=JSON.parse(t.responseText)}catch(e){return Promise.reject(new Error("Invalid response body: "+t.responseText))}return 409===t.status?Promise.reject(new Error("API error: "+(null==e?void 0:e.error_summary)||0)):e.links.length?Promise.resolve(e.links[0].url):Promise.reject(new Error("No links returned"))},e=>(e.message='Could not get link to a shared file or folder ("'+t+'"): '+e.message,Promise.reject(e)))})}static _rs_init(t){p=(0,c.localStorageAvailable)(),t.apiKeys.dropbox&&(t.dropbox=new _(t)),"dropbox"===t.backend&&S(t)}static _rs_supported(){return!0}static _rs_cleanup(t){(function(t){(function(t){t._origRemote&&(t.remote=t._origRemote,delete t._origRemote)})(t),function(t){t._dropboxOrigSync&&(t.sync.sync=t._dropboxOrigSync,delete t._dropboxOrigSync)}(t),C(t)})(t),p&&localStorage.removeItem(f),t.setBackend(void 0)}}function x(t,...e){t._dropboxOrigSync||(t._dropboxOrigSync=t.sync.sync.bind(t.sync),t.sync.sync=function(){return this.dropbox.fetchDelta(t,...e).then(t._dropboxOrigSync,function(e){t._emit("error",new a.default(e)),t._emit("sync-done",{completed:!1})})}.bind(t))}function C(t){t._dropboxOrigSyncCycle&&(t.syncCycle=t._dropboxOrigSyncCycle,delete t._dropboxOrigSyncCycle)}function S(t){(function(t){t._origRemote||(t._origRemote=t.remote,t.remote=t.dropbox)})(t),t.sync?x(t):function(t,...e){t._dropboxOrigSyncCycle||(t._dropboxOrigSyncCycle=t.syncCycle,t.syncCycle=()=>{if(!t.sync)throw new Error("expected sync to be initialized by now");x(t),t._dropboxOrigSyncCycle(t,...e),C(t)})}(t)}(0,c.applyMixins)(_,[s.default]),t.exports=_},451:function(t,e,n){var r=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};const i=r(n(93)),s=n(746),o=r(n(334));class a{constructor(){this.addEvents(["background","foreground"]),this.mode="undefined"!=typeof window?"browser":"node","browser"===this.mode&&(this.setBrowserPrefixedNames(),document.addEventListener(this.visibilityChangeEvent,this.setVisibility.bind(this),!1),this.setVisibility())}setBrowserPrefixedNames(){"browser"===this.mode&&(void 0!==document.hidden?(this.hiddenProperty="hidden",this.visibilityChangeEvent="visibilitychange"):void 0!==document.mozHidden?(this.hiddenProperty="mozHidden",this.visibilityChangeEvent="mozvisibilitychange"):void 0!==document.msHidden?(this.hiddenProperty="msHidden",this.visibilityChangeEvent="msvisibilitychange"):void 0!==document.webkitHidden&&(this.hiddenProperty="webkitHidden",this.visibilityChangeEvent="webkitvisibilitychange"))}setVisibility(){document[this.hiddenProperty]?((0,o.default)("[Env] Going into background mode"),this.goBackground()):((0,o.default)("[Env] Going into foreground mode"),this.goForeground())}isBrowser(){return"browser"===this.mode}isNode(){return"node"===this.mode}goBackground(){this._emit("background")}goForeground(){this._emit("foreground")}static _rs_init(){}static _rs_cleanup(){}}(0,s.applyMixins)(a,[i.default]),t.exports=a},93:function(t,e,n){var r=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.EventHandling=void 0;const i=r(n(334));class s{addEvents(t){t.forEach(t=>this._addEvent(t))}addEventListener(t,e){if("string"!=typeof t)throw new Error("Argument eventName should be a string");if("function"!=typeof e)throw new Error("Argument handler should be a function");(0,i.default)("[EventHandling] Adding event listener",t),this._validateEvent(t),this._handlers[t].push(e)}on(t,e){return this.addEventListener(t,e)}removeEventListener(t,e){this._validateEvent(t);const n=this._handlers[t].length;for(let r=0;r{t(...e)})}_validateEvent(t){if(!(t in this._handlers))throw new Error("Unknown event: "+t)}_delegateEvent(t,e){e.on(t,e=>{this._emit(t,e)})}_addEvent(t){void 0===this._handlers&&(this._handlers={}),this._handlers[t]=[]}}e.EventHandling=s,e.default=s},545:function(t,e,n){var r=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};const i=r(n(28)),s=r(n(451)),o=r(n(334)),a=n(746),l=r(n(370)),c=r(n(548)),u=r(n(275)),h=r(n(373)),d=r(n(424)),p=r(n(801)),f=r(n(706)),g=r(n(600)),m=r(n(313)),y=r(n(285)),v=r(n(567)),b=r(n(794)),w=r(n(365));t.exports={features:[],featuresDone:0,readyFired:!1,loadFeatures(){this.features=[],this.featuresDone=0,this.readyFired=!1,this.featureModules={WireClient:g.default,Dropbox:f.default,GoogleDrive:p.default,Access:c.default,Discover:h.default,Authorize:u.default,BaseClient:d.default,Env:s.default},i.default.cache&&(0,a.extend)(this.featureModules,{Caching:y.default,IndexedDB:v.default,LocalStorage:b.default,InMemoryStorage:w.default,Sync:m.default}),i.default.disableFeatures.forEach(t=>{this.featureModules[t]&&delete this.featureModules[t]}),this._allLoaded=!1;for(const t in this.featureModules)this.loadFeature(t)},hasFeature(t){for(let e=this.features.length-1;e>=0;e--)if(this.features[e].name===t)return this.features[e].supported;return!1},loadFeature(t){const e=this.featureModules[t],n=!e._rs_supported||e._rs_supported();(0,o.default)(`[RemoteStorage] [FEATURE ${t}] initializing ...`),"object"==typeof n?n.then(()=>{this.featureSupported(t,!0),this.initFeature(t)},()=>{this.featureSupported(t,!1)}):"boolean"==typeof n?(this.featureSupported(t,n),n&&this.initFeature(t)):this.featureSupported(t,!1)},initFeature(t){const e=this.featureModules[t];let n;try{n=e._rs_init(this)}catch(e){return void this.featureFailed(t,e)}"object"==typeof n&&"function"==typeof n.then?n.then(()=>{this.featureInitialized(t)},e=>{this.featureFailed(t,e)}):this.featureInitialized(t)},featureFailed(t,e){(0,o.default)(`[RemoteStorage] [FEATURE ${t}] initialization failed (${e})`),this.featureDone()},featureSupported(t,e){(0,o.default)(`[RemoteStorage] [FEATURE ${t}]${e?"":"not "} supported`),e||this.featureDone()},featureInitialized(t){(0,o.default)(`[RemoteStorage] [FEATURE ${t}] initialized`),this.features.push({name:t,init:this.featureModules[t]._rs_init,supported:!0,cleanup:this.featureModules[t]._rs_cleanup}),this.featureDone()},featureDone(){this.featuresDone++,this.featuresDone===Object.keys(this.featureModules).length&&setTimeout(this.featuresLoaded.bind(this),0)},_setCachingModule(){["IndexedDB","LocalStorage","InMemoryStorage"].some(t=>{if(this.features.some(e=>e.name===t))return this.features.local=this.featureModules[t],!0})},_fireReady(){try{this.readyFired||(this._emit("ready"),this.readyFired=!0)}catch(t){console.error("'ready' failed: ",t,t.stack),this._emit("error",t)}},featuresLoaded(){(0,o.default)("[RemoteStorage] All features loaded"),this._setCachingModule(),this.local=i.default.cache&&this.features.local&&new this.features.local,this.local&&this.remote?(this._setGPD(l.default,this),this._bindChange(this.local)):this.remote&&this._setGPD(this.remote,this.remote),this.remote&&(this.remote.on("connected",()=>{this._fireReady(),this._emit("connected")}),this.remote.on("not-connected",()=>{this._fireReady(),this._emit("not-connected")}),this.remote.connected&&(this._fireReady(),this._emit("connected")),this.hasFeature("Authorize")||this.remote.stopWaitingForToken()),this._collectCleanupFunctions();try{this._allLoaded=!0,this._emit("features-loaded")}catch(t){(0,a.logError)(t),this._emit("error",t)}this._processPending()},_collectCleanupFunctions(){this._cleanups=[];for(let t=0;t=n-this.maxAge?e.v:void 0}set(t,e){this._items[t]={v:e,t:(new Date).getTime()}}}class m extends a.RemoteBase{constructor(t,e){if(super(t),this.online=!0,this.storageApi="draft-dejong-remotestorage-19",this.addEvents(["connected","not-connected"]),this.clientId=e,this._fileIdCache=new g(300),u=(0,s.localStorageAvailable)(),u){const t=(0,s.getJSONFromLocalStorage)(l);t&&this.configure(t)}}configure(t){void 0!==t.userAddress&&(this.userAddress=t.userAddress),void 0!==t.token&&(this.token=t.token);const e=function(){u&&localStorage.setItem(l,JSON.stringify({userAddress:this.userAddress,token:this.token}))},n=function(){this.connected=!1,delete this.token,u&&localStorage.removeItem(l)};this.token?(this.connected=!0,this.userAddress?(this._emit("connected"),e.apply(this)):this.info().then(t=>{this.userAddress=t.user.emailAddress,this._emit("connected"),e.apply(this)}).catch(()=>{n.apply(this),this.rs._emit("error",new Error("Could not fetch user info."))})):n.apply(this)}connect(){this.rs.setBackend("googledrive"),this.rs.authorize({authURL:"https://accounts.google.com/o/oauth2/auth",scope:"https://www.googleapis.com/auth/drive",clientId:this.clientId})}get(t,e={}){return(0,s.isFolder)(t)?this._getFolder(f(t)):this._getFile(f(t),e)}put(t,e,n,r={}){const i=f(t);function s(t){if(t.status>=200&&t.status<300){const e=JSON.parse(t.responseText),n=this.stripQuotes(e.etag);return Promise.resolve({statusCode:200,contentType:e.mimeType,revision:n})}return 412===t.status?Promise.resolve({statusCode:412,revision:"conflict"}):Promise.reject("PUT failed with status "+t.status+" ("+t.responseText+")")}return this._getFileId(i).then(t=>t?r&&"*"===r.ifNoneMatch?s({status:412}):this._updateFile(t,i,e,n,r).then(s):this._createFile(i,e,n).then(s))}delete(t,e={}){const n=f(t);return this._getFileId(n).then(t=>t?this._getMeta(t).then(n=>{let r;return"object"==typeof n&&"string"==typeof n.etag&&(r=this.stripQuotes(n.etag)),e&&e.ifMatch&&e.ifMatch!==r?{statusCode:412,revision:r}:this._request("DELETE","https://www.googleapis.com/drive/v2/files/"+t,{}).then(t=>200===t.status||204===t.status?{statusCode:200}:Promise.reject("Delete failed: "+t.status+" ("+t.responseText+")"))}):Promise.resolve({statusCode:200}))}info(){return this._request("GET","https://www.googleapis.com/drive/v2/about?fields=user",{}).then(function(t){try{const e=JSON.parse(t.responseText);return Promise.resolve(e)}catch(t){return Promise.reject(t)}})}_updateFile(t,e,n,r,i){const s={mimeType:r},o={"Content-Type":"application/json; charset=UTF-8"};return i&&i.ifMatch&&(o["If-Match"]=this.addQuotes(i.ifMatch)),this._request("PUT","https://www.googleapis.com/upload/drive/v2/files/"+t+"?uploadType=resumable",{body:JSON.stringify(s),headers:o}).then(t=>412===t.status?t:this._request("PUT",t.getResponseHeader("Location"),{body:r.match(/^application\/json/)?JSON.stringify(n):n}))}_createFile(t,e,n){return this._getParentId(t).then(r=>{const i={title:h(p(t)),mimeType:n,parents:[{kind:"drive#fileLink",id:r}]};return this._request("POST","https://www.googleapis.com/upload/drive/v2/files?uploadType=resumable",{body:JSON.stringify(i),headers:{"Content-Type":"application/json; charset=UTF-8"}}).then(t=>this._request("POST",t.getResponseHeader("Location"),{body:n.match(/^application\/json/)?JSON.stringify(e):e}))})}_getFile(t,e){return this._getFileId(t).then(t=>this._getMeta(t).then(t=>{let n;if("object"==typeof t&&"string"==typeof t.etag&&(n=this.stripQuotes(t.etag)),e&&e.ifNoneMatch&&n===e.ifNoneMatch)return Promise.resolve({statusCode:304});if(!t.downloadUrl){if(!t.exportLinks||!t.exportLinks["text/html"])return Promise.resolve({statusCode:200,body:"",contentType:t.mimeType,revision:n});t.mimeType+=";export=text/html",t.downloadUrl=t.exportLinks["text/html"]}return this._request("GET",t.downloadUrl,{responseType:"arraybuffer"}).then(e=>(0,s.getTextFromArrayBuffer)(e.response,"UTF-8").then(function(r){let i=r;if(t.mimeType.match(/^application\/json/))try{i=JSON.parse(i)}catch(t){}else(0,s.shouldBeTreatedAsBinary)(r,t.mimeType)&&(i=e.response);return{statusCode:200,body:i,contentType:(0,s.stripLegacyCharsetBinary)(t.mimeType),revision:n}}))}))}_getFolder(t){return this._getFileId(t).then(e=>{let n,r,i;if(!e)return Promise.resolve({statusCode:404});const o="'"+e+"' in parents";return this._request("GET","https://www.googleapis.com/drive/v2/files?q="+encodeURIComponent(o)+"&fields=items(downloadUrl%2Cetag%2CfileSize%2Cid%2CmimeType%2Ctitle%2Clabels)&maxResults=1000&trashed=false",{}).then(e=>{var o;if(200!==e.status)return Promise.reject("request failed or something: "+e.status);try{n=JSON.parse(e.responseText)}catch(t){return Promise.reject("non-JSON response from GoogleDrive")}i={};for(const a of n.items)null!==(o=a.labels)&&void 0!==o&&o.trashed||(r=this.stripQuotes(a.etag),a.mimeType===c?(this._fileIdCache.set(t+(0,s.cleanPath)(a.title)+"/",a.id),i[a.title+"/"]={ETag:r}):(this._fileIdCache.set(t+(0,s.cleanPath)(a.title),a.id),i[a.title]={ETag:r,"Content-Type":a.mimeType,"Content-Length":a.fileSize}));return Promise.resolve({statusCode:200,body:i,contentType:"application/json; charset=UTF-8",revision:void 0})})})}_getParentId(t){const e=d(t);return this._getFileId(e).then(t=>t?Promise.resolve(t):this._createFolder(e))}_createFolder(t){return this._getParentId(t).then(e=>this._request("POST","https://www.googleapis.com/drive/v2/files",{body:JSON.stringify({title:h(p(t)),mimeType:c,parents:[{id:e}]}),headers:{"Content-Type":"application/json; charset=UTF-8"}}).then(t=>{const e=JSON.parse(t.responseText);return Promise.resolve(e.id)}))}_getFileId(t){let e;return"/"===t?Promise.resolve("root"):(e=this._fileIdCache.get(t))?Promise.resolve(e):this._getFolder(d(t)).then(()=>(e=this._fileIdCache.get(t),e?Promise.resolve(e):"/"===t.substr(-1)?this._createFolder(t).then(()=>this._getFileId(t)):Promise.resolve()))}_getMeta(t){return this._request("GET","https://www.googleapis.com/drive/v2/files/"+t,{}).then(function(e){return 200===e.status?Promise.resolve(JSON.parse(e.responseText)):Promise.reject("request (getting metadata for "+t+") failed with status: "+e.status)})}_request(t,e,n){return this.isForbiddenRequestMethod(t,e)?Promise.reject(`Don't use ${t} on directories!`):(n.headers||(n.headers={}),n.headers.Authorization="Bearer "+this.token,this.rs._emit("wire-busy",{method:t,isFolder:(0,s.isFolder)(e)}),(0,o.requestWithTimeout)(t,e,n).then(n=>n&&401===n.status?void this.connect():(this.online||(this.online=!0,this.rs._emit("network-online")),this.rs._emit("wire-done",{method:t,isFolder:(0,s.isFolder)(e),success:!0}),Promise.resolve(n)),n=>(this.online&&(this.online=!1,this.rs._emit("network-offline")),this.rs._emit("wire-done",{method:t,isFolder:(0,s.isFolder)(e),success:!1}),Promise.reject(n))))}getItemURL(t){return r(this,void 0,void 0,function*(){throw new Error("getItemURL is not implemented for Google Drive yet")})}static _rs_init(t){const e=t.apiKeys.googledrive;e&&(t.googledrive=new m(t,e.clientId),"googledrive"===t.backend&&(t._origRemote=t.remote,t.remote=t.googledrive))}static _rs_supported(){return!0}static _rs_cleanup(t){t.setBackend(void 0),t._origRemote&&(t.remote=t._origRemote,delete t._origRemote)}}(0,s.applyMixins)(m,[i.default]),t.exports=m},567:function(t,e,n){var r=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))(function(i,s){function o(t){try{l(r.next(t))}catch(t){s(t)}}function a(t){try{l(r.throw(t))}catch(t){s(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(o,a)}l((r=r.apply(t,e||[])).next())})},i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};const s=i(n(93)),o=i(n(496)),a=i(n(334)),l=n(746),c="remotestorage";let u;class h extends o.default{constructor(t){super(),this.addEvents(["change","local-events-done"]),this.db=t||u,this.db?(this.getsRunning=0,this.putsRunning=0,this.changesQueued={},this.changesRunning={},this.commitSlownessWarning=null):(0,a.default)("[IndexedDB] Failed to open DB")}getNodes(t){return r(this,void 0,void 0,function*(){const e=[],n={};for(let r=0,i=t.length;r0?this.getNodesFromDb(e).then(function(t){for(const e in n)t[e]=n[e];return t}):n})}setNodes(t){return r(this,void 0,void 0,function*(){for(const e in t)this.changesQueued[e]=t[e]||!1;this.maybeFlush()})}maybeFlush(){0===this.putsRunning?this.flushChangesQueued():this.commitSlownessWarning||(this.commitSlownessWarning=n.g.setInterval(function(){console.warn("WARNING: waited more than 10 seconds for previous commit to finish")},1e4))}flushChangesQueued(){this.commitSlownessWarning&&(clearInterval(this.commitSlownessWarning),this.commitSlownessWarning=null),Object.keys(this.changesQueued).length>0&&(this.changesRunning=this.changesQueued,this.changesQueued={},this.setNodesInDb(this.changesRunning).then(this.flushChangesQueued.bind(this)))}getNodesFromDb(t){return new Promise((e,n)=>{const r=this.db.transaction(["nodes"],"readonly"),i=r.objectStore("nodes"),s={};this.getsRunning++,t.map(t=>{i.get(t).onsuccess=e=>{s[t]=e.target.result}}),r.oncomplete=()=>{e(s),this.getsRunning--},r.onerror=r.onabort=()=>{n("get transaction error/abort"),this.getsRunning--}})}setNodesInDb(t){return r(this,void 0,void 0,function*(){return new Promise((e,n)=>{const r=this.db.transaction(["nodes"],"readwrite"),i=r.objectStore("nodes"),s=(new Date).getTime();this.putsRunning++,(0,a.default)("[IndexedDB] Starting puts",t,this.putsRunning);for(const o in t){const e=t[o];if("object"==typeof e)try{i.put(e)}catch(t){throw(0,a.default)("[IndexedDB] Error while putting",e,t),t}else try{i.delete(o)}catch(t){throw(0,a.default)("[IndexedDB] Error while removing",i,e,t),t}}r.oncomplete=()=>{this.putsRunning--,(0,a.default)("[IndexedDB] Finished puts",t,this.putsRunning,(new Date).getTime()-s+"ms"),e()},r.onerror=()=>{this.putsRunning--,n("transaction error")},r.onabort=()=>{n("transaction abort"),this.putsRunning--}})})}reset(t){const e=this.db.name;this.db.close(),h.clean(e,()=>{h.open(e,(n,r)=>{n?(0,a.default)(`[IndexedDB] Error while resetting database ${e}:`,n):this.db=r,"function"==typeof t&&t(self)})})}forAllNodes(t){return r(this,void 0,void 0,function*(){return new Promise(e=>{this.db.transaction(["nodes"],"readonly").objectStore("nodes").openCursor().onsuccess=n=>{const r=n.target.result;r?(t(r.value),r.continue()):e()}})})}closeDB(){0===this.putsRunning?this.db.close():setTimeout(this.closeDB.bind(this),100)}static open(t,e){const n=setTimeout(function(){e("timeout trying to open db")},1e4);try{const r=indexedDB.open(t,2);r.onerror=function(){(0,a.default)("[IndexedDB] Opening DB failed",r),clearTimeout(n),e(r.error)},r.onupgradeneeded=function(t){const e=r.result;(0,a.default)("[IndexedDB] Upgrade: from ",t.oldVersion," to ",t.newVersion),e.objectStoreNames.contains("nodes")||((0,a.default)("[IndexedDB] Creating object store: nodes"),e.createObjectStore("nodes",{keyPath:"path"})),e.objectStoreNames.contains("changes")||((0,a.default)("[IndexedDB] Creating object store: changes"),e.createObjectStore("changes",{keyPath:"path"}))},r.onsuccess=function(){clearTimeout(n);const i=r.result;if(!i.objectStoreNames.contains("nodes")||!i.objectStoreNames.contains("changes"))return(0,a.default)("[IndexedDB] Missing object store. Resetting the database."),i.close(),void h.clean(t,function(){h.open(t,e)});e(null,r.result)}}catch(r){(0,a.default)("[IndexedDB] Failed to open database: "+r),(0,a.default)("[IndexedDB] Resetting database and trying again."),clearTimeout(n),h.clean(t,function(){h.open(t,e)})}}static clean(t,e){const n=indexedDB.deleteDatabase(t);n.onblocked=function(e){console.warn(`Deleting IndexedDB database "${t}" is blocked by another open connection`,e)},n.onsuccess=function(){(0,a.default)(`[IndexedDB] Deleted database "${t}"`),e()},n.onerror=n.onabort=function(e){console.error('Failed to remove database "'+t+'"',e)}}static _rs_init(t){return new Promise((e,n)=>{h.open(c,function(r,i){if(r)n(r);else{if(!i)return void n(new Error("IndexedDB opened without a database instance"));u=i,i.onerror=e=>{t._emit("error",h.eventToError(e))},e()}})})}static _rs_supported(){return new Promise((t,e)=>{const n=(0,l.getGlobalContext)();let r=!1;if("undefined"!=typeof navigator&&navigator.userAgent.match(/Android (2|3|4\.[0-3])/)&&(navigator.userAgent.match(/Chrome|Firefox/)||(r=!0)),"indexedDB"in n&&!r)try{const n=indexedDB.open("rs-check");n.onerror=function(){e()},n.onsuccess=function(){n.result.close(),indexedDB.deleteDatabase("rs-check"),t()}}catch(t){e()}else e()})}static _rs_cleanup(t){return new Promise(e=>{t.local instanceof h&&t.local.closeDB(),h.clean(c,e)})}static eventToError(t){var e;const n=null==t?void 0:t.target,r=null==n?void 0:n.error;if(r)return r;if(null===(e=null==n?void 0:n.db)||void 0===e?void 0:e.name){const t=n.objectStoreNames,e=t?Array.from(t).join(", "):"";return new Error(`Error in store(s) “${e}” in database “${n.db.name}”`)}return new Error("Unknown IndexedDB error")}diffHandler(){}}(0,l.applyMixins)(h,[s.default]),t.exports=h},365:function(t,e,n){var r=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};const i=r(n(93)),s=r(n(496)),o=n(746);class a extends s.default{constructor(){super(),this._storage={},this.addEvents(["change","local-events-done"])}getNodes(t){const e={};for(let n=0,r=t.length;n=2e3&&t<=36e5}var M;!function(t){t.GOOGLE="googledrive",t.DROPBOX="dropbox"}(M||(M={}));class A{constructor(t){if(this._pending=[],this._cleanups=[],this._pathHandlers={change:{}},this.apiKeys={},this._init=x.default.loadFeatures,this.features=x.default.features,this.loadFeature=x.default.loadFeature,this.featureSupported=x.default.featureSupported,this.featureDone=x.default.featureDone,this.featuresDone=x.default.featuresDone,this.featuresLoaded=x.default.featuresLoaded,this.featureInitialized=x.default.featureInitialized,this.featureFailed=x.default.featureFailed,this.hasFeature=x.default.hasFeature,this._setCachingModule=x.default._setCachingModule,this._collectCleanupFunctions=x.default._collectCleanupFunctions,this._fireReady=x.default._fireReady,this.initFeature=x.default.initFeature,"object"==typeof t&&null!==t){const e=t,{discovery:n}=e,r=a(e,["discovery"]);Object.assign(c.default,r),n&&"object"==typeof n&&Object.assign(c.default.discovery,n)}if(this.addEvents(["ready","authing","connecting","connected","disconnected","not-connected","conflict","error","features-loaded","scope-change-required","sync-interval-change","sync-started","sync-req-done","sync-done","wire-busy","wire-done","network-offline","network-online"]),this._setGPD({get:this._pendingGPD("get"),put:this._pendingGPD("put"),delete:this._pendingGPD("delete")}),k=(0,h.localStorageAvailable)(),k){this.apiKeys=(0,h.getJSONFromLocalStorage)("remotestorage:api-keys")||{};const t=localStorage.getItem("remotestorage:backend");"dropbox"===t||"googledrive"===t?this.setBackend(t):this.setBackend("remotestorage")}this._authorizedScope=this._loadAuthorizedScope(),this._scopeChangeRequired=!1,this._scopeChangeEvent=null;const e=this.on;this.on=function(t,n){const r=e.call(this,t,n);if("scope-change-required"===t&&this._scopeChangeRequired&&this._scopeChangeEvent&&setTimeout(()=>{n(this._scopeChangeEvent)},0),this._allLoaded)switch(t){case"features-loaded":setTimeout(n,0);break;case"ready":this.remote&&setTimeout(n,0);break;case"connected":this.remote&&this.remote.connected&&setTimeout(n,0);break;case"not-connected":this.remote&&!this.remote.connected&&setTimeout(n,0)}return r},this._init(),this.fireInitial=function(){this.local&&setTimeout(this.local.fireInitial.bind(this.local),0)}.bind(this),this.on("ready",this.fireInitial.bind(this)),this.loadModules()}get connected(){return this.remote.connected}get scopeChangeRequired(){return this._scopeChangeRequired}loadModules(){c.default.modules.forEach(this.addModule.bind(this))}authorize(t){if(this.access.setStorageType(this.remote.storageApi),void 0===t.scope&&(t.scope=this.access.scopeParameter),S.cordova&&"string"==typeof c.default.cordovaRedirectUri)t.redirectUri=c.default.cordovaRedirectUri;else{const e=p.default.getLocation();let n=e.origin;"/"!==e.pathname&&(n+=e.pathname),t.redirectUri=n}void 0===t.clientId&&(t.clientId=t.redirectUri.match(/^(https?:\/\/[^/]+)/)[0]),p.default.authorize(this,t)}impliedauth(t,e){t=t||this.remote.storageApi,e=e||String(document.location),(0,u.default)("ImpliedAuth proceeding due to absent authURL; storageApi = "+t+" redirectUri = "+e),this.remote.configure({token:p.default.IMPLIED_FAKE_TOKEN}),document.location.href=e}connect(t,e){if(this.setBackend("remotestorage"),t.indexOf("@")<0&&!t.match(/^(https?:\/\/)?[^\s\/$\.?#]+\.[^\s]*$/))this._emit("error",new A.DiscoveryError("Not a valid user address or URL."));else{if(t.indexOf("@")<0&&!t.match(/^https?:\/\//)&&(t=`https://${t}`),S.cordova){if("string"!=typeof c.default.cordovaRedirectUri)return void this._emit("error",new A.DiscoveryError("Please supply a custom HTTPS redirect URI for your Cordova app"));if(!S.cordova.InAppBrowser)return void this._emit("error",new A.DiscoveryError("Please include the InAppBrowser Cordova plugin to enable OAuth"))}this.remote.configure({userAddress:t}),this._emit("connecting"),A.Discover(t).then(n=>{if(this._emit("authing"),n.userAddress=t,this.remote.configure(n),!this.remote.connected)if(n.authURL)if(void 0===e)this.authorize({authURL:n.authURL});else{if("string"!=typeof e)throw new Error("Supplied bearer token must be a string");(0,u.default)("Skipping authorization sequence and connecting with known token"),this.remote.configure({token:e}),this._rememberAuthorizedScope(this.access.scopeParameter)}else this.impliedauth()},()=>{this._emit("error",new A.DiscoveryError("No storage information found for this user address."))})}}reconnect(){this.remote.configure({token:null}),"remotestorage"===this.backend?this.connect(this.remote.userAddress):this.remote.connect()}reauthorize(){this.reconnect()}disconnect(){this.remote&&this.remote.configure({userAddress:null,href:null,storageApi:null,token:null,refreshToken:null,properties:null}),this._forgetPendingScope(),this._rememberAuthorizedScope(null),this._setGPD({get:this._pendingGPD("get"),put:this._pendingGPD("put"),delete:this._pendingGPD("delete")});const t=this._cleanups.length;let e=0;const n=()=>{e++,e>=t&&(this._init(),(0,u.default)('Cleanups done, emitting "disconnected" event'),this._emit("disconnected"))};t>0?this._cleanups.forEach(t=>{const e=t(this);"object"==typeof e&&"function"==typeof e.then?e.then(n):n()}):n()}setBackend(t){if(this.backend=t,k&&(void 0!==t?localStorage.setItem("remotestorage:backend",t):localStorage.removeItem("remotestorage:backend")),void 0===t)return this._authorizedScope=null,this._scopeChangeRequired=!1,void(this._scopeChangeEvent=null);this._authorizedScope=this._loadAuthorizedScope(),this._checkScopeChange()}_rememberPendingScope(t){const e=T(t);k&&(e&&this.backend?localStorage.setItem(R,JSON.stringify({backend:this.backend,scope:e})):localStorage.removeItem(R))}_forgetPendingScope(){k&&localStorage.removeItem(R)}_rememberAuthorizedScope(t){const e=T(t);k?e&&this.backend?(localStorage.setItem(E,JSON.stringify({backend:this.backend,scope:e})),this._authorizedScope=e,this._checkScopeChange()):(localStorage.removeItem(E),this._authorizedScope=null,this._checkScopeChange()):(this._authorizedScope=e,this._checkScopeChange())}_completeAuthorization(t){const e=this._loadPendingScope()||T(t);this._forgetPendingScope(),e?this._rememberAuthorizedScope(e):this._checkScopeChange()}_checkScopeChange(){const t=T(this.access.scopeParameter),e=this._authorizedScope||this._loadAuthorizedScope(),n=!(!t||!e||t===e),r=n&&(!this._scopeChangeRequired||!this._scopeChangeEvent||this._scopeChangeEvent.requestedScope!==t||this._scopeChangeEvent.authorizedScope!==e);this._scopeChangeRequired=n,n?(this._scopeChangeEvent=this._buildScopeChangeEvent(t,e),r&&this._emit("scope-change-required",this._scopeChangeEvent)):this._scopeChangeEvent=null}_loadAuthorizedScope(){if(!k||!this.backend)return null;const t=L(E);return t&&t.backend===this.backend?T(t.scope):null}_loadPendingScope(){if(!k||!this.backend)return null;const t=L(R);return t&&t.backend===this.backend?T(t.scope):null}_buildScopeChangeEvent(t=T(this.access.scopeParameter),e=this._authorizedScope){return{requestedScope:t||"",authorizedScope:e||"",reauthorize:this.reauthorize.bind(this)}}onChange(t,e){this._pathHandlers.change[t]||(this._pathHandlers.change[t]=[]),this._pathHandlers.change[t].push(e)}enableLog(){c.default.logging=!0}disableLog(){c.default.logging=!1}log(...t){u.default.apply(A,t)}setApiKeys(t){const e=[M.GOOGLE,M.DROPBOX];if("object"!=typeof t||!Object.keys(t).every(t=>e.includes(t)))return console.error("setApiKeys() was called with invalid arguments"),!1;Object.keys(t).forEach(e=>{const n=t[e];if(n){switch(e){case M.DROPBOX:this.apiKeys[M.DROPBOX]={appKey:n},void 0!==this.dropbox&&this.dropbox.clientId===n||v.default._rs_init(this);break;case M.GOOGLE:this.apiKeys[M.GOOGLE]={clientId:n},void 0!==this.googledrive&&this.googledrive.clientId===n||y.default._rs_init(this)}return!0}delete this.apiKeys[e]}),k&&localStorage.setItem("remotestorage:api-keys",JSON.stringify(this.apiKeys))}setCordovaRedirectUri(t){if("string"!=typeof t||!t.match(/http(s)?:\/\//))throw new Error("Cordova redirect URI must be a URI string");c.default.cordovaRedirectUri=t}_setGPD(t,e){function n(t){return function(...n){return t.apply(e,n).then(I.bind(this))}}this.get=n(t.get),this.put=n(t.put),this.delete=n(t.delete)}_pendingGPD(t){return(...e)=>{const n=Array.prototype.slice.call(e);return new Promise((e,r)=>{this._pending.push({method:t,args:n,promise:{resolve:e,reject:r}})})}}_processPending(){this._pending.forEach(t=>{try{this[t.method](...t.args).then(t.promise.resolve,t.promise.reject)}catch(e){t.promise.reject(e)}}),this._pending=[]}_bindChange(t){t.on("change",this._dispatchEvent.bind(this,"change"))}_dispatchEvent(t,e){Object.keys(this._pathHandlers[t]).forEach(n=>{const r=n.length;e.path.substr(0,r)===n&&this._pathHandlers[t][n].forEach(t=>{const r={};for(const n in e)r[n]=e[n];r.relativePath=e.path.replace(new RegExp("^"+n),"");try{t(r)}catch(t){console.error("'change' handler failed: ",t,t.stack),this._emit("error",t)}})})}scope(t){if("string"!=typeof t)throw"Argument 'path' of baseClient.scope must be a string";return this.access.checkPathPermission(t,"r")||console.warn("WARNING: Please use remoteStorage.access.claim() to ask for access permissions first: https://remotestorage.io/rs.js/docs/api/access/classes/Access.html#claim"),new f.default(this,t)}getSyncInterval(){return c.default.syncInterval}setSyncInterval(t){if(!P(t))throw t+" is not a valid sync interval";const e=c.default.syncInterval;c.default.syncInterval=t,this._emit("sync-interval-change",{oldValue:e,newValue:t})}getBackgroundSyncInterval(){return c.default.backgroundSyncInterval}setBackgroundSyncInterval(t){if(!P(t))throw t+" is not a valid sync interval";const e=c.default.backgroundSyncInterval;c.default.backgroundSyncInterval=t,this._emit("sync-interval-change",{oldValue:e,newValue:t})}getCurrentSyncInterval(){return c.default.isBackground?c.default.backgroundSyncInterval:c.default.syncInterval}getRequestTimeout(){return c.default.requestTimeout}setRequestTimeout(t){if("number"!=typeof t)throw t+" is not a valid request timeout";c.default.requestTimeout=t}setupSyncCycle(){this.sync&&!this.sync.stopped&&((0,u.default)("[Sync] Setting up sync cycle"),this.on("sync-done",()=>{(0,u.default)("[Sync] Sync done. Setting timer to",this.getCurrentSyncInterval()),this.sync&&!this.sync.stopped&&(this._syncTimer&&clearTimeout(this._syncTimer),this._syncTimer=setTimeout(this.sync.sync.bind(this.sync),this.getCurrentSyncInterval()))}),this.sync.sync())}startSync(){return c.default.cache?(this.sync.stopped=!1,this.syncStopped=!1,this.sync.sync()):(console.warn("Nothing to sync, because caching is disabled."),Promise.resolve())}stopSync(){clearTimeout(this._syncTimer),this._syncTimer=void 0,this.sync?((0,u.default)("[Sync] Stopping sync"),this.sync.stopped=!0):((0,u.default)("[Sync] Will instantiate sync stopped"),this.syncStopped=!0)}addModule(t){const e=t.name,n=t.builder;if(Object.defineProperty(this,e,{configurable:!0,get:function(){const t=this._loadModule(e,n);return Object.defineProperty(this,e,{value:t}),t}}),-1!==e.indexOf("-")){const t=e.replace(/\-[a-z]/g,function(t){return t[1].toUpperCase()});Object.defineProperty(this,t,{get:function(){return this[e]}})}}_loadModule(t,e){if(e)return e(new f.default(this,"/"+t+"/"),new f.default(this,"/public/"+t+"/")).exports;throw"Unknown module: "+t}}e.RemoteStorage=A,A.SyncError=w.default,A.Unauthorized=_.default,A.Discover=b.default,A.DiscoveryError=b.default.DiscoveryError,A.util=C,Object.defineProperty(A.prototype,"access",{configurable:!0,get:function(){const t=new d.default(this);return Object.defineProperty(this,"access",{value:t,writable:!0,configurable:!0}),t}}),Object.defineProperty(A.prototype,"caching",{configurable:!0,get:function(){const t=new g.default(this);return Object.defineProperty(this,"caching",{value:t,writable:!0,configurable:!0}),t}}),(0,h.applyMixins)(A,[m.EventHandling]),e.default=A},368:function(t,e,n){var r=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))(function(i,s){function o(t){try{l(r.next(t))}catch(t){s(t)}}function a(t){try{l(r.throw(t))}catch(t){s(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(o,a)}l((r=r.apply(t,e||[])).next())})},i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.isArrayBufferView=void 0,e.retryAfterMs=function(t){const e=1e3*parseInt(t.getResponseHeader("Retry-After"));return e>=1e3?e:Math.max(1500,Math.min(6e4,Math.round(o.default.syncInterval/(2.9+.2*Math.random()))))},e.requestWithTimeout=function(t,n,i){return r(this,void 0,void 0,function*(){return"function"==typeof fetch?function(t,e,n){return r(this,void 0,void 0,function*(){const r="function"==typeof AbortController?new AbortController:null;let i;const a=new Promise((t,e)=>{i=setTimeout(()=>{r&&r.abort(),e("timeout")},o.default.requestTimeout)});let l;const c={},u=fetch(e,{method:t,headers:n.headers,body:n.body,signal:r?r.signal:void 0}).then(t=>{switch((0,s.default)("[requests fetch]",t),t.headers.forEach((t,e)=>{c[e.toUpperCase()]=t}),l={readyState:4,status:t.status,statusText:t.statusText,response:void 0,getResponseHeader:t=>c[t.toUpperCase()]||null,responseType:n.responseType,responseURL:e},n.responseType){case"arraybuffer":return t.arrayBuffer();case"blob":return t.blob();case"json":return t.json();case void 0:case"":case"text":return t.text();default:throw new Error("responseType 'document' is not currently supported using fetch")}}).then(t=>(l.response=t,n.responseType&&"text"!==n.responseType||(l.responseText=t),l)).finally(()=>{clearTimeout(i)});return Promise.race([u,a])})}(t,n,i):"function"==typeof XMLHttpRequest?function(t,n,i){return r(this,void 0,void 0,function*(){return new Promise((r,a)=>{(0,s.default)("[requests XHR]",t,n);let l=!1;const c=setTimeout(()=>{l=!0,a("timeout")},o.default.requestTimeout),u=new XMLHttpRequest;if(u.open(t,n,!0),i.responseType&&(u.responseType=i.responseType),i.headers)for(const t in i.headers)u.setRequestHeader(t,i.headers[t]);u.onload=()=>{l||(clearTimeout(c),r(u))},u.onerror=t=>{l||(clearTimeout(c),a(t))};let h=i.body;"object"==typeof h&&!(0,e.isArrayBufferView)(h)&&h instanceof ArrayBuffer&&(h=new Uint8Array(h)),u.send(h)})})}(t,n,i):Promise.reject("[Requests] You need to add a polyfill for fetch or XMLHttpRequest")})};const s=i(n(334)),o=i(n(28));if("function"==typeof(n.g||window).ArrayBufferView)e.isArrayBufferView=function(t){return t&&t instanceof(n.g||window).ArrayBufferView};else{const t=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];e.isArrayBufferView=function(e){for(let n=0;n<8;n++)if(e instanceof t[n])return!0;return!1}}},941:function(t){t.exports=class{constructor(t){this._itemsRev={},this._storage={},this._canPropagate=!1,this.defaultValue=t,this.activatePropagation()}get(t){t=t.toLowerCase();let e=this._storage[t];return void 0===e&&(e=this.defaultValue,this._storage[t]=e),e}set(t,e){return t=t.toLowerCase(),this._storage[t]===e||(this._storage[t]=e,e||delete this._itemsRev[t],this._updateParentFolderItemRev(t,e),this._canPropagate&&this._propagate(t)),e}delete(t){return this.set(t,null)}deactivatePropagation(){return this._canPropagate=!1,!0}activatePropagation(){return this._canPropagate||(this._generateFolderRev("/"),this._canPropagate=!0),!0}_hashCode(t){let e=0;if(0===t.length)return e;for(let n=0;n0&&(n=this._generateHash(t))}return this.set(t,n),n}}},491:function(t){class e extends Error{constructor(t){super();const e=new Error("Schema not found: "+t);return e.name="SchemaNotFound",e}}t.exports=e},982:function(t){class e extends Error{constructor(t){super(),this.name="SyncError",this.message="Sync failed: ","string"==typeof t?this.message+=t:(this.message+=t.message,this.stack=t.stack,this.originalError=t)}}t.exports=e},313:function(t,e,n){var r=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))(function(i,s){function o(t){try{l(r.next(t))}catch(t){s(t)}}function a(t){try{l(r.throw(t))}catch(t){s(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(o,a)}l((r=r.apply(t,e||[])).next())})},i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.Sync=void 0;const s=i(n(28)),o=i(n(451)),a=i(n(93)),l=i(n(334)),c=i(n(275)),u=i(n(982)),h=i(n(503)),d=n(746);let p,f;function g(t,e,n){return{action:t,path:e,promise:n}}function m(t,e){return t.common.revision!==e&&(!t.remote||t.remote.revision!==e)}function y(t){return!!t.common&&!!t.common.revision}class v{constructor(t){this.numThreads=10,this._tasks={},this._running={},this._timeStarted={},this._finishedTasks=[],this.rs=t,this.rs.local.onDiff(t=>{this.addTask(t),this.doTasks()}),this.rs.caching.onActivate(t=>{this.addTask(t),this.doTasks()}),this.addEvents(["done","req-done"])}now(){return(new Date).getTime()}queueGetRequest(t){return r(this,void 0,void 0,function*(){return new Promise((e,n)=>{this.rs.remote.connected?this.rs.remote.online?(this.addTask(t,function(){this.rs.local.get(t).then(t=>e(t))}.bind(this)),this.doTasks()):n("cannot fulfill maxAge requirement - remote is not online"):n("cannot fulfill maxAge requirement - remote is not connected")})})}corruptServerItemsMap(t){if("object"!=typeof t||Array.isArray(t))return!0;for(const e in t){const n=t[e];if("object"!=typeof n)return!0;if("string"!=typeof n.ETag)return!0;if((0,d.isFolder)(e)){if(-1!==e.substring(0,e.length-1).indexOf("/"))return!0}else if(-1!==e.indexOf("/"))return!0}return!1}corruptItemsMap(t){if("object"!=typeof t||Array.isArray(t))return!0;for(const e in t)if("boolean"!=typeof t[e])return!0;return!1}corruptRevision(t){return"object"!=typeof t||Array.isArray(t)||t.revision&&"string"!=typeof t.revision||t.body&&"string"!=typeof t.body&&"object"!=typeof t.body||t.contentType&&"string"!=typeof t.contentType||t.contentLength&&"number"!=typeof t.contentLength||t.timestamp&&"number"!=typeof t.timestamp||t.itemsMap&&this.corruptItemsMap(t.itemsMap)}isCorrupt(t){return"object"!=typeof t||Array.isArray(t)||"string"!=typeof t.path||this.corruptRevision(t.common)||t.local&&this.corruptRevision(t.local)||t.remote&&this.corruptRevision(t.remote)||t.push&&this.corruptRevision(t.push)}hasTasks(){return Object.keys(this._tasks).length>0}collectDiffTasks(){return r(this,void 0,void 0,function*(){let t=0;return this.rs.local.forAllNodes(e=>{t>100||(this.isCorrupt(e)?((0,l.default)("[Sync] WARNING: corrupt node in local cache",e),"object"==typeof e&&e.path&&(this.addTask(e.path),t++)):(this.needsFetch(e)&&this.rs.access.checkPathPermission(e.path,"r")||(0,d.isDocument)(e.path)&&this.needsPush(e)&&this.rs.access.checkPathPermission(e.path,"rw"))&&(this.addTask(e.path),t++))}).then(()=>t)})}inConflict(t){return!(!t.local||!t.remote||void 0===t.remote.body&&!t.remote.itemsMap)}needsRefresh(t){return!!t.common&&(!t.common.timestamp||this.now()-t.common.timestamp>s.default.syncInterval)}needsFetch(t){return!!this.inConflict(t)||!(!t.common||void 0!==t.common.itemsMap||void 0!==t.common.body)||!(!t.remote||void 0!==t.remote.itemsMap||void 0!==t.remote.body)}needsPush(t){return!this.inConflict(t)&&(!(!t.local||t.push)||void 0)}needsRemotePut(t){return!(!t.local||void 0===t.local.body||!1===t.local.body)}needsRemoteDelete(t){return t.local&&!1===t.local.body}getParentPath(t){const e=t.match(/^(.*\/)([^\/]+\/?)$/);if(e)return e[1];throw new Error('Not a valid path: "'+t+'"')}deleteChildPathsFromTasks(){for(const t in this._tasks){const e=(0,d.pathsFromRoot)(t);for(let n=1;n{let e;if(this.needsRefresh(t)){try{e=this.getParentPath(t.path)}catch(t){}e&&this.rs.access.checkPathPermission(e,"r")?this.addTask(e):this.rs.access.checkPathPermission(t.path,"r")&&this.addTask(t.path)}}),this.deleteChildPathsFromTasks()})}flush(t){for(const e in t)"FLUSH"===this.rs.caching.checkPath(e)&&t[e]&&!t[e].local&&((0,l.default)("[Sync] Flushing",e),t[e]=void 0);return t}doTask(t){return r(this,void 0,void 0,function*(){return this.rs.local.getNodes([t]).then(e=>{const n=e[t];return void 0===n||function(t){return!(!t.remote||!t.remote.revision||t.remote.itemsMap||t.remote.body)}(n)?g("get",t,this.rs.remote.get(t)):this.needsRemotePut(n)?(n.push=(0,d.deepClone)(n.local),n.push.timestamp=this.now(),this.rs.local.setNodes(this.flush(e)).then(()=>{let e;return e=y(n)?{ifMatch:n.common.revision}:{ifNoneMatch:"*"},g("put",t,this.rs.remote.put(t,n.push.body,n.push.contentType,e))})):this.needsRemoteDelete(n)?(n.push={body:!1,timestamp:this.now()},this.rs.local.setNodes(this.flush(e)).then(()=>y(n)?g("delete",t,this.rs.remote.delete(t,{ifMatch:n.common.revision})):g("get",t,this.rs.remote.get(t)))):y(n)?g("get",t,this.rs.remote.get(t,{ifNoneMatch:n.common.revision})):g("get",t,this.rs.remote.get(t))})})}autoMergeFolder(t){if(t.remote.itemsMap&&(t.common=t.remote,delete t.remote,t.common.itemsMap)){for(const e in t.common.itemsMap)t.local.itemsMap[e]||(t.local.itemsMap[e]=!1);for(const e in t.local.itemsMap)t.common.itemsMap[e]||this.addTask(t.path+e);(0,d.equal)(t.local.itemsMap,t.common.itemsMap)&&delete t.local}return t}autoMergeDocument(t){var e;return function(t){return(!t.remote||!t.remote.revision||t.remote.revision===t.common.revision)&&(void 0===t.common.body&&!1===t.remote.body||t.remote.body===t.common.body&&t.remote.contentType===t.common.contentType)}(t)?delete(t=function(t){return t.remote&&!1===t.remote.body&&t.local&&!1===t.local.body&&delete t.local,t}(t)).remote:void 0!==t.remote.body&&(!1===t.remote.body&&!1===(null===(e=t.local)||void 0===e?void 0:e.body)||((0,l.default)("[Sync] Emitting conflict event"),setTimeout(this.rs.local.emitChange.bind(this.rs.local),10,{origin:"conflict",path:t.path,oldValue:t.local.body,newValue:t.remote.body,lastCommonValue:t.common.body,oldContentType:t.local.contentType,newContentType:t.remote.contentType,lastCommonContentType:t.common.contentType})),!1===t.remote.body?t.common={}:t.common=t.remote,delete t.remote,delete t.local),t}autoMerge(t){if(t.remote){if(t.local)return(0,d.isFolder)(t.path)?this.autoMergeFolder(t):this.autoMergeDocument(t);if((0,d.isFolder)(t.path))void 0!==t.remote.itemsMap&&(t.common=t.remote,delete t.remote);else if(void 0!==t.remote.body){const e={origin:"remote",path:t.path,oldValue:!1===t.common.body?void 0:t.common.body,newValue:!1===t.remote.body?void 0:t.remote.body,oldContentType:t.common.contentType,newContentType:t.remote.contentType};if(void 0===e.oldValue&&void 0===e.newValue||this.rs.local.emitChange(e),!1===t.remote.body)return;t.common=t.remote,delete t.remote}return t}t.common.body&&this.rs.local.emitChange({origin:"remote",path:t.path,oldValue:t.common.body,newValue:void 0,oldContentType:t.common.contentType,newContentType:void 0})}updateCommonTimestamp(t,e){return r(this,void 0,void 0,function*(){return this.rs.local.getNodes([t]).then(n=>(n[t]&&n[t].common&&n[t].common.revision===e&&(n[t].common.timestamp=this.now()),this.rs.local.setNodes(this.flush(n))))})}markChildren(t,e,n,i){return r(this,void 0,void 0,function*(){const r=[],s={},o={};for(const n in e)r.push(t+n),s[t+n]=e[n];for(const e in i)r.push(t+e);const a=yield this.rs.local.getNodes(r);let l,c;for(const e in a)if(c=a[e],s[e])c&&c.common?m(c,s[e].ETag)&&(n[e]=(0,d.deepClone)(c),n[e].remote={revision:s[e].ETag,timestamp:this.now()},n[e]=this.autoMerge(n[e])):(l=this.rs.caching.checkPath(e),"ALL"===l&&(n[e]={path:e,common:{timestamp:this.now()},remote:{revision:s[e].ETag,timestamp:this.now()}})),n[e]&&s[e]["Content-Type"]&&(n[e].remote.contentType=s[e]["Content-Type"]),n[e]&&s[e]["Content-Length"]&&(n[e].remote.contentLength=s[e]["Content-Length"]);else if(i[e.substring(t.length)]&&c&&c.common){if(c.common.itemsMap)for(const t in c.common.itemsMap)o[e+t]=!0;if(c.local&&c.local.itemsMap)for(const t in c.local.itemsMap)o[e+t]=!0;if(c.remote||(0,d.isFolder)(e))n[e]=void 0;else if(n[e]=this.autoMerge(c),void 0===n[e]){const r=n[this.getParentPath(e)],i=e.substring(t.length);r&&r.local&&(delete r.local.itemsMap[i],(0,d.equal)(r.local.itemsMap,r.common.itemsMap)&&delete r.local)}}const u=yield this.markRemoteDeletions(Object.keys(o),n);u&&(yield this.rs.local.setNodes(this.flush(u)))})}markRemoteDeletions(t,e){return r(this,void 0,void 0,function*(){if(0===t.length)return e;const n=yield this.rs.local.getNodes(t),r={};function i(t,e){if(t&&t.itemsMap)for(const n in t.itemsMap)r[e+n]=!0}for(const t in n){const r=n[t];r&&((0,d.isFolder)(t)?(i(r.common,t),i(r.local,t)):r.common&&void 0!==r.common.body&&(e[t]=(0,d.deepClone)(r),e[t].remote={body:!1,timestamp:this.now()},e[t]=this.autoMerge(e[t])))}const s=yield this.markRemoteDeletions(Object.keys(r),e);s&&(yield this.rs.local.setNodes(this.flush(s)))})}completeFetch(t,e,n,i){return r(this,void 0,void 0,function*(){let r,s;const o=(0,d.pathsFromRoot)(t);(0,d.isFolder)(t)?r=[t]:(s=o[1],r=[t,s]);const a=yield this.rs.local.getNodes(r),l=a[s],c={};let u,h=a[t];function p(t){if(t&&t.itemsMap)for(u in t.itemsMap)e[u]||(c[u]=!0)}if("object"==typeof h&&h.path===t&&"object"==typeof h.common||(h={path:t,common:{}},a[t]=h),h.remote={revision:i,timestamp:this.now()},(0,d.isFolder)(t))for(u in p(h.common),p(h.remote),h.remote.itemsMap={},e)h.remote.itemsMap[u]=!0;else h.remote.body=e,h.remote.contentType=n,l&&l.local&&l.local.itemsMap&&(u=t.substring(s.length),!1!==e?l.local.itemsMap[u]=!0:l.local.itemsMap[u]&&delete l.local.itemsMap[u],(0,d.equal)(l.local.itemsMap,l.common.itemsMap)&&delete l.local);return a[t]=this.autoMerge(h),{toBeSaved:a,missingChildren:c}})}completePush(t,e,n,i){return r(this,void 0,void 0,function*(){const r=yield this.rs.local.getNodes([t]),s=r[t];if(!s.push)throw this.stopped=!0,new Error("completePush called but no push version!");n?((0,l.default)("[Sync] We have a conflict"),s.remote&&s.remote.revision===i||(s.remote={revision:i||"conflict",timestamp:this.now()},delete s.push),r[t]=this.autoMerge(s)):(s.common={revision:i,timestamp:this.now()},"put"===e?(s.common.body=s.push.body,s.common.contentType=s.push.contentType,(0,d.equal)(s.local.body,s.push.body)&&s.local.contentType===s.push.contentType&&delete s.local,delete s.push):"delete"===e&&(!1===s.local.body?r[t]=void 0:delete s.push)),yield this.rs.local.setNodes(this.flush(r))})}dealWithFailure(t){return r(this,void 0,void 0,function*(){const e=yield this.rs.local.getNodes([t]);if(e[t])return delete e[t].push,this.rs.local.setNodes(this.flush(e))})}interpretStatus(t){const e={statusCode:t,successful:void 0,conflict:void 0,unAuth:void 0,notFound:void 0,changed:void 0,networkProblems:void 0};return"string"!=typeof t||"offline"!==t&&"timeout"!==t?"number"==typeof t?(e.successful=2===Math.floor(t/100)||304===t||412===t||404===t,e.conflict=412===t,e.unAuth=401===t&&this.rs.remote.token!==c.default.IMPLIED_FAKE_TOKEN||402===t||403===t,e.notFound=404===t,e.changed=304!==t,e):void 0:(e.successful=!1,e.networkProblems=!0,e)}handleGetResponse(t,e,n,i,s){return r(this,void 0,void 0,function*(){if(e.notFound&&(n=!!(0,d.isFolder)(t)&&{}),e.changed){const e=yield this.completeFetch(t,n,i,s);if((0,d.isFolder)(t)){if(this.corruptServerItemsMap(n))return(0,l.default)("[Sync] WARNING: Discarding corrupt folder description from server for "+t),!1;yield this.markChildren(t,n,e.toBeSaved,e.missingChildren)}else yield this.rs.local.setNodes(this.flush(e.toBeSaved))}else yield this.updateCommonTimestamp(t,s);return!0})}handleResponse(t,e,n){return r(this,void 0,void 0,function*(){const r=this.interpretStatus(n.statusCode);if(r.successful){if("get"===e)return this.handleGetResponse(t,r,n.body,n.contentType,n.revision);if("put"===e||"delete"===e)return this.completePush(t,e,r.conflict,n.revision).then(function(){return!0});throw new Error(`cannot handle response for unknown action ${e}`)}{let e;return e=r.unAuth?new h.default:r.networkProblems?new u.default("Network request failed."):new Error("HTTP response code "+r.statusCode+" received."),this.dealWithFailure(t).then(()=>{throw this.rs._emit("error",e),e})}})}finishTask(t){return r(this,arguments,void 0,function*(t,e=!0){if(void 0===t.action)return void delete this._running[t.path];if(e&&((0,l.default)("[Sync] queue finished task:",t.path),this._finishedTasks.push(t),this._finishedTasks.length>1))return void(0,l.default)("[Sync] delaying finished task:",t.path);let n;(0,l.default)("[Sync] run task:",t.path);try{n=yield t.promise}catch(e){(0,l.default)("[Sync] wire client rejects its promise",t.path,t.action,e),n={statusCode:"offline"}}try{const e=yield this.handleResponse(t.path,t.action,n);this.finishSuccessfulTask(t,e)}catch(e){this.finishUnsuccessfulTask(t,e)}})}finishSuccessfulTask(t,e){return r(this,void 0,void 0,function*(){if(this._finishedTasks.shift(),delete this._timeStarted[t.path],delete this._running[t.path],e&&this._tasks[t.path]){for(let e=0;e0?yield this.finishTask(this._finishedTasks[0],!1):yield this.collectTasks(!1).then(()=>{!this.hasTasks()||this.stopped?(this.done||(this.done=!0),this.rs._emit("sync-done",{completed:!0})):setTimeout(()=>{this.doTasks()},10)})})}finishUnsuccessfulTask(t,e){return r(this,void 0,void 0,function*(){(0,l.default)("[Sync]",e.message),this._finishedTasks.shift(),delete this._timeStarted[t.path],delete this._running[t.path],this.rs._emit("sync-req-done",{tasksRemaining:Object.keys(this._tasks).length}),this._finishedTasks.length>0?yield this.finishTask(this._finishedTasks[0],!1):this.done||(this.done=!0,this.rs._emit("sync-done",{completed:!1}))})}tasksWanted(){return this.rs.remote.connected?this.rs.remote.online?this.numThreads:1:0}doTasks(){const t=this.tasksWanted()-Object.keys(this._running).length;if(t<=0)return!0;this.hasTasks()&&!this.done&&this.rs._emit("sync-started");let e,n=0;for(e in this._tasks)if(!this._running[e]&&(this._timeStarted[e]=this.now(),this._running[e]=this.doTask(e).then(this.finishTask.bind(this)),n++,n>=t))break;return n>=t}collectTasks(){return r(this,arguments,void 0,function*(t=!0){if(!this.hasTasks()&&!this.stopped)return(yield this.collectDiffTasks())>0?void 0:t?this.collectRefreshTasks():void 0})}addTask(t,e){this._tasks[t]||(this._tasks[t]=[]),"function"==typeof e&&this._tasks[t].push(e)}sync(){return r(this,void 0,void 0,function*(){if(this.done=!1,!this.doTasks()){try{yield this.collectTasks()}catch(t){throw(0,l.default)("[Sync] Sync error",t),new Error("Local cache unavailable")}this.doTasks()}})}static _rs_init(t){p=function(){const e=new o.default;e.isBrowser()&&function(t,e){function n(t){const n=e.getCurrentSyncInterval();s.default.isBackground=!t;const r=e.getCurrentSyncInterval();e._emit("sync-interval-change",{oldValue:n,newValue:r})}t.on("background",()=>n(!1)),t.on("foreground",()=>n(!0))}(e,t),t.sync||(t.sync=new v(t),t.syncStopped&&((0,l.default)("[Sync] Initializing with sync stopped"),t.sync.stopped=!0,delete t.syncStopped)),t.setupSyncCycle()},f=function(){t.removeEventListener("connected",f),t.startSync()},t.on("ready",p),t.on("connected",f)}static _rs_cleanup(t){t.stopSync(),t.removeEventListener("ready",p),t.removeEventListener("connected",f),t.caching.resetActivationHandler(),t.sync=void 0,delete t.sync}}e.Sync=v,(0,d.applyMixins)(v,[a.default]),e.default=v},370:function(t,e,n){var r=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))(function(i,s){function o(t){try{l(r.next(t))}catch(t){s(t)}}function a(t){try{l(r.throw(t))}catch(t){s(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(o,a)}l((r=r.apply(t,e||[])).next())})};const i=(this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}})(n(334));function s(t){return"dropbox"===this.backend&&!!t.match(/^\/public\/.*[^\/]$/)}const o={get:function(t,e){if(this.local){if(void 0===e)e="object"==typeof(n=this).remote&&n.remote.connected&&n.remote.online?2*n.getSyncInterval():((0,i.default)("Not setting default maxAge, because remote is offline or not connected"),!1);else if("number"!=typeof e&&!1!==e)return Promise.reject("Argument 'maxAge' must be 'false' or a number");return this.local.get(t,e,this.sync.queueGetRequest.bind(this.sync))}return this.remote.get(t);var n},put:function(t,e,n){return s.bind(this)(t)?o._wrapBusyDone.call(this,this.remote.put(t,e,n)):this.local?this.local.put(t,e,n):o._wrapBusyDone.call(this,this.remote.put(t,e,n))},delete:function(t,e){return this.local?this.local.delete(t,e):o._wrapBusyDone.call(this,this.remote.delete(t,e))},_wrapBusyDone:function(t){return r(this,void 0,void 0,function*(){return this._emit("wire-busy"),t.then(t=>(this._emit("wire-done",{success:!0}),Promise.resolve(t)),t=>(this._emit("wire-done",{success:!1}),Promise.reject(t)))})}};t.exports=o},613:function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.BaseClientTypes=void 0;class n{constructor(){this.uris={},this.schemas={},this.aliases={}}declare(t,e,n,r){const i=t+"/"+e;if(r.extends){const e=r.extends.split("/"),n=1===e.length?t+"/"+e.shift():e.join("/"),s=this.uris[n];if(!s)throw"Type '"+i+"' tries to extend unknown schema '"+n+"'";r.extends=this.schemas[s]}this.uris[i]=n,this.aliases[n]=i,this.schemas[n]=r}resolveAlias(t){return this.uris[t]}getSchema(t){return this.schemas[t]}inScope(t){const e=t.length,n={};for(const r in this.uris)if(r.substr(0,e+1)===t+"/"){const t=this.uris[r];n[t]=this.schemas[t]}return n}}e.BaseClientTypes=n,e.default=new n},503:function(t){class e extends Error{constructor(t,e={}){super(),this.name="Unauthorized",this.message=void 0===t?"App authorization expired or revoked.":t,void 0!==e.code&&(this.code=e.code),this.stack=(new Error).stack}}t.exports=e},746:function(t,e,n){var r=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))(function(i,s){function o(t){try{l(r.next(t))}catch(t){s(t)}}function a(t){try{l(r.throw(t))}catch(t){s(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(o,a)}l((r=r.apply(t,e||[])).next())})};Object.defineProperty(e,"__esModule",{value:!0}),e.toBase64=e.getTextFromArrayBuffer=e.stripLegacyCharsetBinary=e.shouldBeTreatedAsBinary=e.getJSONFromLocalStorage=e.localStorageAvailable=e.pathsFromRoot=e.deepClone=e.equal=e.bindAll=e.cleanPath=e.baseName=e.isDocument=e.isFolder=e.containingFolder=e.extend=e.getGlobalContext=e.globalContext=e.logError=void 0,e.generateCodeVerifier=function(){return r(this,arguments,void 0,function*(t=128){const e=new Uint8Array(t);crypto.getRandomValues(e);const n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~",r=Array.from(e).map(t=>n[t%66]),i=r.join(""),s=Uint8Array.from(r.map(t=>t.charCodeAt(0))),o=(a=yield crypto.subtle.digest("SHA-256",s),btoa(String.fromCharCode.apply(null,new Uint8Array(a))).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""));var a;return crypto.getRandomValues(e),{codeVerifier:i,codeChallenge:o,state:Array.from(e).map(t=>n[t%66]).join("")}})},e.applyMixins=function(t,e){e.forEach(e=>{Object.getOwnPropertyNames(e.prototype).forEach(n=>{Object.defineProperty(t.prototype,n,Object.getOwnPropertyDescriptor(e.prototype,n))})})},e.logError=t=>{"string"==typeof t?console.error(t):console.error(t.message,t.stack)},e.globalContext="undefined"!=typeof window?window:"object"==typeof self?self:n.g,e.getGlobalContext=()=>"undefined"!=typeof window?window:"object"==typeof self?self:n.g,e.extend=(...t)=>{const e=t[0];return Array.prototype.slice.call(t,1).forEach(function(t){for(const n in t)e[n]=t[n]}),e},e.containingFolder=t=>{if(""===t)return"/";if(!t)throw"Path not given!";return t.replace(/\/+/g,"/").replace(/[^\/]+\/?$/,"")},e.isFolder=t=>"/"===t.slice(-1),e.isDocument=t=>!(0,e.isFolder)(t),e.baseName=t=>{const n=t.split("/");return(0,e.isFolder)(t)?n[n.length-2]+"/":n[n.length-1]},e.cleanPath=t=>t.replace(/\/+/g,"/").split("/").map(encodeURIComponent).join("/").replace(/'/g,"%27"),e.bindAll=t=>{for(const e in this)"function"==typeof t[e]&&(t[e]=t[e].bind(t))},e.equal=(t,n,r=[])=>{let i;if(typeof t!=typeof n)return!1;if("number"==typeof t||"boolean"==typeof t||"string"==typeof t)return t===n;if("function"==typeof t)return t.toString()===n.toString();if(t instanceof ArrayBuffer&&n instanceof ArrayBuffer&&(t=new Uint8Array(t),n=new Uint8Array(n)),null===t||null===n)return t===n;if(t instanceof Array){if(t.length!==n.length)return!1;for(let i=0,s=t.length;i=0)continue;s=r.slice(),s.push(n[i])}if(!(0,e.equal)(t[i],n[i],s))return!1}}return!0},e.deepClone=t=>void 0===t?void 0:"function"==typeof structuredClone?structuredClone(t):JSON.parse(JSON.stringify(t)),e.pathsFromRoot=t=>{const e=[t],n=t.replace(/\/$/,"").split("/");for(;n.length>1;)n.pop(),e.push(n.join("/")+"/");return e},e.localStorageAvailable=()=>{const t=(0,e.getGlobalContext)();if(!("localStorage"in t))return!1;try{return t.localStorage.setItem("rs-check","1"),t.localStorage.removeItem("rs-check"),!0}catch(t){return!1}},e.getJSONFromLocalStorage=t=>{const n=(0,e.getGlobalContext)();try{return JSON.parse(n.localStorage.getItem(t))}catch(t){}},e.shouldBeTreatedAsBinary=(t,e)=>!!(e&&e.match(/charset=binary/)||/[\x00-\x08\x0E-\x1F\x80-\x9F\uFFFD]/.test(t)),e.stripLegacyCharsetBinary=t=>t?t.replace(/\s*;\s*charset=binary\b/i,""):t,e.getTextFromArrayBuffer=(t,n)=>new Promise(r=>{if("undefined"==typeof Blob||"undefined"==typeof FileReader)r(Buffer.from(t).toString(n));else{let i;const s=e.globalContext;if(s.BlobBuilder=s.BlobBuilder||s.WebKitBlobBuilder,void 0!==s.BlobBuilder){const e=new s.BlobBuilder;e.append(t),i=e.getBlob()}else i=new Blob([t]);const o=new FileReader;"function"==typeof o.addEventListener?o.addEventListener("loadend",function(t){r(t.target.result)}):o.onloadend=function(t){r(t.target.result)},o.readAsText(i,n)}}),e.toBase64=t=>{const n=(0,e.getGlobalContext)();return"btoa"in n?n.btoa(t):Buffer.from(t).toString("base64")}},600:function(t,e,n){var r=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))(function(i,s){function o(t){try{l(r.next(t))}catch(t){s(t)}}function a(t){try{l(r.throw(t))}catch(t){s(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(o,a)}l((r=r.apply(t,e||[])).next())})},i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};const s=i(n(275)),o=i(n(93)),a=i(n(503)),l=i(n(334)),c=n(746),u=n(368),h=n(684);let d;const p="remotestorage:wireclient",f={"draft-dejong-remotestorage-00":2,"draft-dejong-remotestorage-01":3,"draft-dejong-remotestorage-02":4,"https://www.w3.org/community/rww/wiki/read-write-web-00#simple":1};class g extends h.RemoteBase{constructor(t){if(super(t),this._revisionCache={},d=(0,c.localStorageAvailable)(),this.addEvents(["connected","not-connected"]),d){const t=function(){const{userAddress:t,href:e,storageApi:n,token:r,properties:i}=(0,c.getJSONFromLocalStorage)(p)||{};return{userAddress:t,href:e,storageApi:n,token:r,properties:i}}();t&&setTimeout(()=>{this.configure(t)},0)}this.connected&&setTimeout(this._emit.bind(this),0,"connected")}_request(t,e,n,i,o,h,d){return r(this,void 0,void 0,function*(){if(this.isForbiddenRequestMethod(t,e))return Promise.reject(`Don't use ${t} on directories!`);let r;return n!==s.default.IMPLIED_FAKE_TOKEN&&(i.Authorization="Bearer "+n),this.rs._emit("wire-busy",{method:t,isFolder:(0,c.isFolder)(e)}),(0,u.requestWithTimeout)(t,e,{body:o,headers:i,responseType:"arraybuffer"}).then(n=>{if(this.online||(this.online=!0,this.rs._emit("network-online")),this.rs._emit("wire-done",{method:t,isFolder:(0,c.isFolder)(e),success:!0}),i=n.status,[401,403,404,412].indexOf(i)>=0)return(0,l.default)("[WireClient] Error response status",n.status),r=h?this.stripQuotes(n.getResponseHeader("ETag")):void 0,401===n.status&&this.rs._emit("error",new a.default),Promise.resolve({statusCode:n.status,revision:r});if(function(t){return[201,204,304].indexOf(t)>=0}(n.status)||200===n.status&&"GET"!==t)return r=this.stripQuotes(n.getResponseHeader("ETag")),(0,l.default)("[WireClient] Successful request",r),Promise.resolve({statusCode:n.status,revision:r});{const t=n.getResponseHeader("Content-Type");r=h?this.stripQuotes(n.getResponseHeader("ETag")):200===n.status?d:void 0;const e=function(t){let e,n="utf-8";return t&&(e=t.match(/charset=(.+)$/),e&&(n=e[1])),n}(t);return(0,c.shouldBeTreatedAsBinary)(n.response,t)?((0,l.default)("[WireClient] Successful request with unknown or binary mime-type",r),Promise.resolve({statusCode:n.status,body:n.response,contentType:(0,c.stripLegacyCharsetBinary)(t),revision:r})):(0,c.getTextFromArrayBuffer)(n.response,e).then(e=>((0,l.default)("[WireClient] Successful request",r),Promise.resolve({statusCode:n.status,body:e,contentType:(0,c.stripLegacyCharsetBinary)(t),revision:r})))}var i},n=>(this.online&&(this.online=!1,this.rs._emit("network-offline")),this.rs._emit("wire-done",{method:t,isFolder:(0,c.isFolder)(e),success:!1}),Promise.reject(n)))})}configure(t){if("object"!=typeof t)throw new Error("WireClient configure settings parameter should be an object");if(void 0!==t.userAddress&&(this.userAddress=t.userAddress),void 0!==t.href&&(this.href=t.href),void 0!==t.storageApi&&(this.storageApi=t.storageApi),void 0!==t.token&&(this.token=t.token),void 0!==t.properties&&(this.properties=t.properties),"string"==typeof this.storageApi){const t=f[this.storageApi]||5;this.supportsRevs=t>=2}this.href&&this.token?(this.connected=!0,this.online=!0,this._emit("connected")):this.connected=!1,d&&localStorage.setItem(p,JSON.stringify({userAddress:this.userAddress,href:this.href,storageApi:this.storageApi,token:this.token,properties:this.properties}))}get(t,e={}){if(!this.connected)return Promise.reject("not connected (path: "+t+")");const n={};return this.supportsRevs&&e.ifNoneMatch&&(n["If-None-Match"]=this.addQuotes(e.ifNoneMatch)),this._request("GET",this.href+(0,c.cleanPath)(t),this.token,n,void 0,this.supportsRevs,this._revisionCache[t]).then(e=>{if(!(0,c.isFolder)(t))return Promise.resolve(e);let n={};if(void 0!==e.body)try{e.body=JSON.parse(e.body)}catch(e){return Promise.reject("Folder description at "+this.href+(0,c.cleanPath)(t)+" is not JSON")}if(200===e.statusCode&&"object"==typeof e.body){if(0===Object.keys(e.body).length)e.statusCode=404;else if("http://remotestorage.io/spec/folder-description"===(r=e.body)["@context"]&&"object"==typeof r.items){for(const n in e.body.items)this._revisionCache[t+n]=e.body.items[n].ETag;n=e.body.items}else Object.keys(e.body).forEach(r=>{this._revisionCache[t+r]=e.body[r],n[r]={ETag:e.body[r]}});return e.body=n,Promise.resolve(e)}return Promise.resolve(e);var r})}put(t,e,n,r={}){if(!this.connected)return Promise.reject("not connected (path: "+t+")");const i={"Content-Type":n};return this.supportsRevs&&(r.ifMatch&&(i["If-Match"]=this.addQuotes(r.ifMatch)),r.ifNoneMatch&&(i["If-None-Match"]=this.addQuotes(r.ifNoneMatch))),this._request("PUT",this.href+(0,c.cleanPath)(t),this.token,i,e,this.supportsRevs)}delete(t,e={}){if(!this.connected)throw new Error("not connected (path: "+t+")");e||(e={});const n={};return this.supportsRevs&&e.ifMatch&&(n["If-Match"]=this.addQuotes(e.ifMatch)),this._request("DELETE",this.href+(0,c.cleanPath)(t),this.token,n,void 0,this.supportsRevs)}static _rs_init(t){t.remote=new g(t),t.remote.online=!0}static _rs_supported(){return"function"==typeof fetch||"function"==typeof XMLHttpRequest}static _rs_cleanup(){d&&delete localStorage[p]}}(0,c.applyMixins)(g,[o.default]),t.exports=g},439:function(t,e){var n;void 0===(n=function(){var t,e,n,r;Object.keys||(Object.keys=(t=Object.prototype.hasOwnProperty,e=!{toString:null}.propertyIsEnumerable("toString"),r=(n=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"]).length,function(i){if("object"!=typeof i&&"function"!=typeof i||null===i)throw new TypeError("Object.keys called on non-object");var s=[];for(var o in i)t.call(i,o)&&s.push(o);if(e)for(var a=0;a>>0;if(0===n)return-1;var r=0;if(arguments.length>1&&((r=Number(arguments[1]))!=r?r=0:0!==r&&r!==1/0&&r!==-1/0&&(r=(r>0||-1)*Math.floor(Math.abs(r)))),r>=n)return-1;for(var i=r>=0?r:Math.max(n-Math.abs(r),0);i0&&(e+=u.suffices["*"]&&n||",",u.suffices["*"]&&l&&(e+=u.name+"=")),e+=a?encodeURIComponent(h[p]).replace(/!/g,"%21"):o(h[p])}else if("object"==typeof h){l&&!u.suffices["*"]&&(e+=u.name+"=");var f=!0;for(var g in h)f||(e+=u.suffices["*"]&&n||","),f=!1,e+=a?encodeURIComponent(g).replace(/!/g,"%21"):o(g),e+=u.suffices["*"]?"=":",",e+=a?encodeURIComponent(h[g]).replace(/!/g,"%21"):o(h[g])}else l&&(e+=u.name,c&&""===h||(e+="=")),null!=u.truncate&&(h=h.substring(0,u.truncate)),e+=a?encodeURIComponent(h).replace(/!/g,"%21"):o(h)}return e};return w.varNames=u,{prefix:r,substitution:w}}function l(t){if(!(this instanceof l))return new l(t);for(var e=t.split("{"),n=[e.shift()],r=[],i=[],s=[];e.length>0;){var o=e.shift(),c=o.split("}")[0],u=o.substring(c.length+1),h=a(c);i.push(h.substitution),r.push(h.prefix),n.push(u),s=s.concat(h.substitution.varNames)}this.fill=function(t){for(var e=n[0],r=0;r0&&"/"===e.charAt(t.length-1)||"#"===n.charAt(0)||"?"===n.charAt(0))return!0}return!1}(e,t.id)&&void 0===this.schemas[t.id]&&(this.schemas[t.id]=t),t)if("enum"!==r)if("object"==typeof t[r])this.searchSchemas(t[r],e);else if("$ref"===r){var i=g(t[r]);i&&void 0===this.schemas[i]&&void 0===this.missingMap[i]&&(this.missingMap[i]=i)}},c.prototype.addSchema=function(t,e){if("string"!=typeof t||void 0===e){if("object"!=typeof t||"string"!=typeof t.id)return;t=(e=t).id}t===g(t)+"#"&&(t=g(t)),this.schemas[t]=e,delete this.missingMap[t],m(e,t),this.searchSchemas(e,t)},c.prototype.getSchemaMap=function(){var t={};for(var e in this.schemas)t[e]=this.schemas[e];return t},c.prototype.getSchemaUris=function(t){var e=[];for(var n in this.schemas)t&&!t.test(n)||e.push(n);return e},c.prototype.getMissingUris=function(t){var e=[];for(var n in this.missingMap)t&&!t.test(n)||e.push(n);return e},c.prototype.dropSchemas=function(){this.schemas={},this.reset()},c.prototype.reset=function(){this.missing=[],this.missingMap={},this.errors=[]},c.prototype.validateAll=function(t,e,n,r,i){var s;if(!(e=this.resolveRefs(e)))return null;if(e instanceof x)return this.errors.push(e),e;var o,a=this.errors.length,l=null,c=null;if(this.checkRecursive&&t&&"object"==typeof t){if(s=!this.scanned.length,t[this.validatedSchemasKey]){var u=t[this.validatedSchemasKey].indexOf(e);if(-1!==u)return this.errors=this.errors.concat(t[this.validationErrorsKey][u]),null}if(Object.isFrozen(t)&&-1!==(o=this.scannedFrozen.indexOf(t))){var h=this.scannedFrozenSchemas[o].indexOf(e);if(-1!==h)return this.errors=this.errors.concat(this.scannedFrozenValidationErrors[o][h]),null}if(this.scanned.push(t),Object.isFrozen(t))-1===o&&(o=this.scannedFrozen.length,this.scannedFrozen.push(t),this.scannedFrozenSchemas.push([])),l=this.scannedFrozenSchemas[o].length,this.scannedFrozenSchemas[o][l]=e,this.scannedFrozenValidationErrors[o][l]=[];else{if(!t[this.validatedSchemasKey])try{Object.defineProperty(t,this.validatedSchemasKey,{value:[],configurable:!0}),Object.defineProperty(t,this.validationErrorsKey,{value:[],configurable:!0})}catch(e){t[this.validatedSchemasKey]=[],t[this.validationErrorsKey]=[]}c=t[this.validatedSchemasKey].length,t[this.validatedSchemasKey][c]=e,t[this.validationErrorsKey][c]=[]}}var d=this.errors.length,p=this.validateBasic(t,e,i)||this.validateNumeric(t,e,i)||this.validateString(t,e,i)||this.validateArray(t,e,i)||this.validateObject(t,e,i)||this.validateCombinations(t,e,i)||this.validateHypermedia(t,e,i)||this.validateFormat(t,e,i)||this.validateDefinedKeywords(t,e,i)||null;if(s){for(;this.scanned.length;)delete this.scanned.pop()[this.validatedSchemasKey];this.scannedFrozen=[],this.scannedFrozenSchemas=[]}if(p||d!==this.errors.length)for(;n&&n.length||r&&r.length;){var f=n&&n.length?""+n.pop():null,g=r&&r.length?""+r.pop():null;p&&(p=p.prefixWith(f,g)),this.prefixErrors(d,f,g)}return null!==l?this.scannedFrozenValidationErrors[o][l]=this.errors.slice(a):null!==c&&(t[this.validationErrorsKey][c]=this.errors.slice(a)),this.handleError(p)},c.prototype.validateFormat=function(t,e){if("string"!=typeof e.format||!this.formatValidators[e.format])return null;var n=this.formatValidators[e.format].call(null,t,e);return"string"==typeof n||"number"==typeof n?this.createError(v.FORMAT_CUSTOM,{message:n},"","/format",null,t,e):n&&"object"==typeof n?this.createError(v.FORMAT_CUSTOM,{message:n.message||"?"},n.dataPath||"",n.schemaPath||"/format",null,t,e):null},c.prototype.validateDefinedKeywords=function(t,e,n){for(var r in this.definedKeywords)if(void 0!==e[r])for(var i=this.definedKeywords[r],s=0;s=h&&re.maximum)return this.createError(v.NUMBER_MAXIMUM,{value:t,maximum:e.maximum},"","/maximum",null,t,e);if(e.exclusiveMaximum&&t===e.maximum)return this.createError(v.NUMBER_MAXIMUM_EXCLUSIVE,{value:t,maximum:e.maximum},"","/exclusiveMaximum",null,t,e)}return null},c.prototype.validateNaN=function(t,e){return"number"!=typeof t?null:!0===isNaN(t)||t===1/0||t===-1/0?this.createError(v.NUMBER_NOT_A_NUMBER,{value:t},"","/type",null,t,e):null},c.prototype.validateString=function(t,e,n){return this.validateStringLength(t,e,n)||this.validateStringPattern(t,e,n)||null},c.prototype.validateStringLength=function(t,e){return"string"!=typeof t?null:void 0!==e.minLength&&t.lengthe.maxLength?this.createError(v.STRING_LENGTH_LONG,{length:t.length,maximum:e.maxLength},"","/maxLength",null,t,e):null},c.prototype.validateStringPattern=function(t,e){if("string"!=typeof t||"string"!=typeof e.pattern&&!(e.pattern instanceof RegExp))return null;var n;if(e.pattern instanceof RegExp)n=e.pattern;else{var r,i="",s=e.pattern.match(/^\/(.+)\/([img]*)$/);s?(r=s[1],i=s[2]):r=e.pattern,n=new RegExp(r,i)}return n.test(t)?null:this.createError(v.STRING_PATTERN,{pattern:e.pattern},"","/pattern",null,t,e)},c.prototype.validateArray=function(t,e,n){return Array.isArray(t)&&(this.validateArrayLength(t,e,n)||this.validateArrayUniqueItems(t,e,n)||this.validateArrayItems(t,e,n))||null},c.prototype.validateArrayLength=function(t,e){var n;return void 0!==e.minItems&&t.lengthe.maxItems&&(n=this.createError(v.ARRAY_LENGTH_LONG,{length:t.length,maximum:e.maxItems},"","/maxItems",null,t,e),this.handleError(n))?n:null},c.prototype.validateArrayUniqueItems=function(t,e){if(e.uniqueItems)for(var n=0;ne.maxProperties&&(n=this.createError(v.OBJECT_PROPERTIES_MAXIMUM,{propertyCount:r.length,maximum:e.maxProperties},"","/maxProperties",null,t,e),this.handleError(n))?n:null},c.prototype.validateObjectRequiredProperties=function(t,e){if(void 0!==e.required)for(var n=0;n 10000");if(void 0!==v[t])throw new Error("Error already defined: "+t+" as "+v[t]);if(void 0!==b[e])throw new Error("Error code already used: "+b[e]+" as "+e);for(var r in v[t]=e,b[e]=t,_[t]=_[e]=n,C){var i=C[r];i[t]&&(i[e]=i[e]||i[t])}},reset:function(){i.reset(),this.error=null,this.missing=[],this.valid=!0},missing:[],error:null,valid:!0,normSchema:m,resolveUrl:f,getDocumentUri:g,errorCodes:v};return s.language(e||"en"),s}();return S.addLanguage("en-gb",_),S.tv4=S,S}.apply(e,[]))||(t.exports=n)},713:function(t){!function(){{const e=function(){var t={"http://webfinger.net/rel/avatar":"avatar",remotestorage:"remotestorage","http://tools.ietf.org/id/draft-dejong-remotestorage":"remotestorage",remoteStorage:"remotestorage","http://www.packetizer.com/rel/share":"share","http://webfinger.net/rel/profile-page":"profile",me:"profile",vcard:"vcard",blog:"blog","http://packetizer.com/rel/blog":"blog","http://schemas.google.com/g/2010#updates-from":"updates","https://camlistore.org/rel/server":"camilstore"},e={avatar:[],remotestorage:[],blog:[],vcard:[],updates:[],share:[],profile:[],camlistore:[]},n=["webfinger","host-meta","host-meta.json"],r="(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]?\\d)",i=new RegExp(`^(?:${r}\\.){3}${r}$`),s=new RegExp(`^(${r})\\.(${r})\\.(${r})\\.(${r})$`),o=/^localhost(?:\.localdomain)?(?::\d+)?$/,a=/^\d+$/,l=/^[a-zA-Z0-9.-]+$/,c=/^127\.(?:\d{1,3}\.){2}\d{1,3}$/;function u(t){const e=t.match(s);return e?e.slice(1).map(Number):null}function h(t){const[e,n]=t;return 0===e||10===e||127===e||172===e&&n>=16&&n<=31||192===e&&168===n||169===e&&254===n||e>=224&&e<=239||e>=240}class d extends Error{status;constructor(t,e){super(t),this.name="WebFingerError",this.status=e}}class p{static default;config;constructor(t={}){this.config={tls_only:void 0===t.tls_only||t.tls_only,uri_fallback:void 0!==t.uri_fallback&&t.uri_fallback,request_timeout:void 0!==t.request_timeout?t.request_timeout:1e4,allow_private_addresses:void 0!==t.allow_private_addresses&&t.allow_private_addresses}}async fetchJRD(t,e=0){if(e>3)throw new d("too many redirects");const n=new AbortController,r=setTimeout(()=>{n.abort()},this.config.request_timeout);try{const i=await fetch(t,{headers:{Accept:"application/jrd+json, application/json"},redirect:"manual",signal:n.signal});if(i.status>=300&&i.status<400){const n=i.headers.get("location");if(!n)throw new d("redirect without location header");let s;try{s=new URL(n,t)}catch{throw new d("invalid redirect URL")}try{await this.resolveAndValidateHost(s.host)}catch(t){if(t instanceof d)throw new d("redirect to private or internal address blocked");throw t}return clearTimeout(r),this.fetchJRD(s.toString(),e+1)}if(404===i.status)throw new d("resource not found",404);if(!i.ok)throw new d("error during request",i.status);const s=i.headers.get("content-type")||"",o=s.toLowerCase().split(";")[0].trim();"application/jrd+json"===o||("application/json"===o?console.debug('WebFinger: Server uses "application/json" instead of RFC 7033 recommended "application/jrd+json".'):console.warn(`WebFinger: Server returned unexpected content-type "${s}". Expected "application/jrd+json" per RFC 7033.`));const a=await i.text();if(p.isValidJSON(a))return a;throw new d("invalid json")}catch(t){if(n.signal.aborted)throw new d("request timed out");throw t}finally{clearTimeout(r)}}static isValidJSON(t){try{JSON.parse(t)}catch{return!1}return!0}static isLocalhost(t){return o.test(t)}static isPrivateAddress(t){let e=t;if(e.startsWith("[")&&e.includes("]:"))e=e.substring(1,e.lastIndexOf("]:"));else if(e.startsWith("[")&&e.endsWith("]"))e=e.substring(1,e.length-1);else if(e.includes(":")&&1===(e.match(/:/g)||[]).length){const t=e.split(":"),n=t[0],r=t[1];if(r&&!a.test(r))throw new d("invalid host format");(n.match(i)||n.match(l))&&(e=n)}if("localhost"===e||"127.0.0.1"===e||e.match(c)||"::1"===e||"localhost.localdomain"===e)return!0;const n=u(e);if(n)return h(n);const r=function(t){let e=t.toLowerCase();const n=u(e.substring(e.lastIndexOf(":")+1));if(n&&(e=`${e.substring(0,e.lastIndexOf(":"))}:${(n[0]<<8|n[1]).toString(16)}:${(n[2]<<8|n[3]).toString(16)}`),!/^[0-9a-f:]+$/.test(e)||e.indexOf("::")!==e.lastIndexOf("::"))return null;const r=e.includes("::"),[i="",s=""]=e.split("::"),o=i?i.split(":"):[],a=r&&s?s.split(":"):[],l=8-o.length-a.length;if(!r&&8!==o.length||r&&l<1)return null;const c=(r?[...o,...Array(l).fill("0"),...a]:o).map(t=>Number.parseInt(t,16));return 8===c.length&&c.every(t=>t>=0&&t<=65535)?c:null}(e);if(r){const t=r.slice(0,5).every(t=>0===t)&&65535===r[5],e=r.slice(0,6).every(t=>0===t);if(t||e)return h([r[6]>>8,255&r[6],r[7]>>8,255&r[7]]);const n=r[0];return 64512==(65024&n)||65152==(65472&n)||!(65280&~n)}return!1}static getExplicitPort(t){if(t.startsWith("[")){const e=t.lastIndexOf("]:");if(-1!==e){const n=t.substring(e+2);if(!a.test(n))throw new d("invalid host format");return n}return}if(1===(t.match(/:/g)||[]).length){const[,e=""]=t.split(":");if(!e||!a.test(e))throw new d("invalid host format");return e}}static parseAddress(t){const e=t.replace(/ /g,"");if(e.includes("://")){let t;try{t=new URL(e)}catch{throw new d("invalid URI format")}if(!t.hostname)throw new d("could not determine host from address");return{host:t.host}}const n=e.split("@");if(2!==n.length||!n[1])throw new d("invalid useraddress format");return{host:n[1]}}async resolveAndValidateHost(t){const e=p.normalizeHost(t);if(!this.config.allow_private_addresses){if(p.isPrivateAddress(e.host))throw new d("private or internal addresses are not allowed");await this.validateDNSResolution(e.hostname)}return e}static normalizeHost(t){const e=t.split("/")[0];if(!e||0===e.length)throw new d("invalid host format");if(/[?# @]/.test(e))throw new d("invalid characters in host");const n=p.getExplicitPort(e);let r;try{r=new URL(`http://${e}`)}catch{throw new d("invalid host format")}const i=r.hostname;return{host:n?`${i}:${n}`:r.host||i,hostname:i}}static async processJRD(n,r){const i=JSON.parse(r);if("object"!=typeof i||"object"!=typeof i.links)throw void 0!==i.error?new d(i.error):new d("unknown response from server");const s={object:i,idx:{properties:{name:void 0},links:JSON.parse(JSON.stringify(e))}};(Array.isArray(i.links)?i.links:[]).map(function(e){if(Object.prototype.hasOwnProperty.call(t,String(e.rel))){const n=t[String(e.rel)];if(s.idx.links[n]){const t={href:String(e.href||""),rel:String(e.rel||"")};Object.keys(e).map(function(n){"object"==typeof e[n]&&null!==e[n]?t[n]=e[n]:t[n]=String(e[n])}),s.idx.links[n].push(t)}}});const o=i.properties||{};for(const t in o)Object.prototype.hasOwnProperty.call(o,t)&&"http://packetizer.com/ns/name"===t&&(s.idx.properties.name=o[t]);return s}async validateDNSResolution(t){if(!t.match(i)&&!t.includes(":")&&"localhost"!==t&&"undefined"!=typeof process&&process.versions?.node){const e="function"==typeof process.getBuiltinModule?process.getBuiltinModule("node:dns")?.promises:null;if(e)try{const[n,r]=await Promise.allSettled([e.resolve4(t).catch(()=>[]),e.resolve6(t).catch(()=>[])]),i="fulfilled"===n.status?n.value:[],s="fulfilled"===r.status?r.value:[];for(const e of[...i,...s])if(p.isPrivateAddress(e))throw new d(`hostname ${t} resolves to private address ${e}`)}catch(t){if(t instanceof d)throw t}}}async lookup(t){if(!t)throw new d("address is required");const{host:e}=p.parseAddress(t),{host:r}=await this.resolveAndValidateHost(e);let i=0,s="https";p.isLocalhost(r)&&(s="http");const o=async t=>{if(this.config.uri_fallback&&i!==n.length-1)return i+=1,a();if(this.config.tls_only||"https"!==s)throw t instanceof Error?t:new d(String(t));return i=0,s="http",a()},a=async()=>{const e=(()=>{let e="";return t.split("://")[1]||(e="acct:"),s+"://"+r+"/.well-known/"+n[i]+"?resource="+e+t})();try{const t=await this.fetchJRD(e);return p.processJRD(e,t)}catch(t){return await o(t)}};return a()}async lookupLink(t,n){if(Object.prototype.hasOwnProperty.call(e,n)){const e=(await this.lookup(t)).idx.links[n];return 0===e.length?Promise.reject('no links found with rel="'+n+'"'):Promise.resolve(e[0])}return Promise.reject("unsupported rel "+n)}}return p.default=p,p}();t.exports=e,t.exports.default=e}}("undefined"!=typeof self&&self)}},e={};function n(r){var i=e[r];if(void 0!==i)return i.exports;var s=e[r]={exports:{}};return t[r].call(s.exports,s,s.exports,n),s.exports}return n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n(423).default}()},"object"==typeof t&&"object"==typeof e?e.exports=r():"function"==typeof define&&define.amd?define("RemoteStorage",[],r):"object"==typeof t?t.RemoteStorage=r():n.RemoteStorage=r()}),qB=c($B(),1),VB="0123456789ABCDEFGHJKMNPQRSTVWXYZ";!function(t){t.Base32IncorrectEncoding="B32_ENC_INVALID",t.DecodeTimeInvalidCharacter="DEC_TIME_CHAR",t.DecodeTimeValueMalformed="DEC_TIME_MALFORMED",t.EncodeTimeNegative="ENC_TIME_NEG",t.EncodeTimeSizeExceeded="ENC_TIME_SIZE_EXCEED",t.EncodeTimeValueMalformed="ENC_TIME_MALFORMED",t.PRNGDetectFailure="PRNG_DETECT",t.ULIDInvalid="ULID_INVALID",t.Unexpected="UNEXPECTED",t.UUIDInvalid="UUID_INVALID"}(OB||(OB={}));var WB=class extends Error{constructor(t,e){super(`${e} (${t})`),this.name="ULIDError",this.code=t}};function HB(t){const e=Math.floor(32*t())%32;return VB.charAt(e)}var GB={type:"object",properties:{id:{type:"string"},title:{type:"string"},lat:{type:"number"},lon:{type:"number"},geohash:{type:"string"},zoom:{type:"number"},url:{type:"string"},osmId:{type:"string"},osmType:{type:"string"},osmTags:{type:"object",additionalProperties:{type:"string"}},description:{type:"string"},tags:{type:"array",items:{type:"string"},default:[]},createdAt:{type:"string",format:"date-time"},updatedAt:{type:"string",format:"date-time"}},required:["id","title","lat","lon","geohash","createdAt"]},ZB={type:"object",properties:{id:{type:"string"},title:{type:"string"},color:{type:"string"},placeRefs:{type:"array",items:{type:"object",properties:{id:{type:"string"},geohash:{type:"string"}},required:["id","geohash"]},default:[]},createdAt:{type:"string",format:"date-time"},updatedAt:{type:"string",format:"date-time"}},required:["id","title","placeRefs","createdAt"]},KB={name:"places",builder:function(t){function e(t,e){return`${t.substring(0,2)}/${t.substring(2,4)}/${e}`}t.declareType("place",GB),t.declareType("list",ZB);const n={async getAll(){const e=await t.getAll("_lists/");return e?Object.values(e):[]},async get(e){const n=`_lists/${e}`;return t.getObject(n)},async getPlaces(n){const r=await this.get(n);if(!r)throw new Error(`List not found: ${n}`);if(!r.placeRefs||!Array.isArray(r.placeRefs))return[];const i=r.placeRefs.map(async n=>{if(!n.id||!n.geohash)return null;const r=e(n.geohash,n.id);return await t.getObject(r)});return(await Promise.all(i)).filter(t=>!!t)},async create(e,n,r){const i=`_lists/${e}`;let s=await t.getObject(i);const o=(new Date).toISOString();return s?(s.title=n,r&&(s.color=r),s.updatedAt=o):s={id:e,title:n,color:r,placeRefs:[],createdAt:o,updatedAt:o},await t.storeObject("list",i,s),s},async delete(e){await t.remove(`_lists/${e}`)},async addPlace(e,n,r){const i=`_lists/${e}`,s=await t.getObject(i);if(!s)throw new Error(`List not found: ${e}`);return-1===s.placeRefs.findIndex(t=>t.id===n)&&(s.placeRefs.push({id:n,geohash:r}),s.updatedAt=(new Date).toISOString(),await t.storeObject("list",i,s)),s},async removePlace(e,n){const r=`_lists/${e}`,i=await t.getObject(r);if(!i)throw new Error(`List not found: ${e}`);const s=i.placeRefs.findIndex(t=>t.id===n);return-1!==s&&(i.placeRefs.splice(s,1),i.updatedAt=(new Date).toISOString(),await t.storeObject("list",r,i)),i},async initDefaults(){for(const t of[{id:"to-go",title:"Want to go",color:"#2e9e4f"},{id:"to-do",title:"To do",color:"#2a7fff"}])await this.get(t.id)||await this.create(t.id,t.title,t.color)}};return{exports:{lists:n,store:async function(n){const r=function(t){const e=(new Date).toISOString(),n=t.id||function(t,e){const n=e||function(){const t="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:null,e=t&&(t.crypto||t.msCrypto)||null;if("function"==typeof e?.getRandomValues)return()=>{const t=new Uint8Array(1);return e.getRandomValues(t),t[0]/256};if("function"==typeof e?.randomBytes)return()=>e.randomBytes(1).readUInt8()/256;throw new WB(OB.PRNGDetectFailure,"Failed to find a reliable PRNG")}();return function(t,e=10){if(isNaN(t))throw new WB(OB.EncodeTimeValueMalformed,`Time must be a number: ${t}`);if(t>0xffffffffffff)throw new WB(OB.EncodeTimeSizeExceeded,`Cannot encode a time larger than 281474976710655: ${t}`);if(t<0)throw new WB(OB.EncodeTimeNegative,`Time must be positive: ${t}`);if(!1===Number.isInteger(t))throw new WB(OB.EncodeTimeValueMalformed,`Time must be an integer: ${t}`);let n,r="";for(let i=e;i>0;i--)n=t%32,r=VB.charAt(n)+r,t=(t-n)/32;return r}(!t||isNaN(t)?Date.now():t,10)+function(t,e){let n="";for(;t>0;t--)n=HB(e)+n;return n}(16,n)}(),r="number"==typeof t.lat?t.lat:0,i="number"==typeof t.lon?t.lon:0,s=t.title||"Untitled Place",o=t.geohash||mU.encode(r,i,10),a={...t,id:n,lat:r,lon:i,geohash:o,title:s,tags:t.tags||[],createdAt:t.createdAt||e,updatedAt:t.id?e:void 0};return Object.keys(a).forEach(t=>{void 0===a[t]&&delete a[t]}),a}(n),i=e(r.geohash,r.id);return await t.storeObject("place",i,r),r},remove:async function(r,i){if(!r||!i)throw new Error("Both id and geohash are required to remove a place");const s=await n.getAll();await Promise.all(s.map(async e=>{const n=e.placeRefs.findIndex(t=>t.id===r);-1!==n&&(e.placeRefs.splice(n,1),e.updatedAt=(new Date).toISOString(),await t.storeObject("list",`_lists/${e.id}`,e))}));const o=e(i,r);return t.remove(o)},get:async function(n,r){if(!n||!r)throw new Error("Both id and geohash are required to get a place");const i=e(r,n);return t.getObject(i)},listByPrefix:async function(e){let n="";return e.length>=2&&(n+=e.substring(0,2)+"/"),e.length>=4&&(n+=e.substring(2,4)+"/"),t.getAll(n)},getPlaces:async function(e){const n=[],r=async e=>{const r=await t.getAll(e,!1);r&&Object.values(r).forEach(t=>{t&&"object"==typeof t&&!t.toString().endsWith("/")&&n.push(t)})};if(e&&e.length>0){const t=e.map(async t=>{if(t.length<4)return;const e=t.substring(0,2),n=t.substring(2,4);await r(`${e}/${n}/`)});await Promise.all(t)}else{const e=t=>{if(!t||"object"!=typeof t)return[];let e=t;return t.items&&"object"==typeof t.items&&(e=t.items),Object.keys(e).filter(t=>t.endsWith("/")&&!t.startsWith("@"))},n=e(await t.getListing("",!1));await Promise.all(n.map(async n=>{const i=await t.getListing(n,!1),s=e(i);await Promise.all(s.map(async t=>{await r(n+t)}))}))}return n}}}}},YB=o((t,e)=>{var n,r;n=self,r=()=>(()=>{var t={d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e)},e={};function n(t){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(t)}function r(t){var e=function(t){if("object"!=n(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=n(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==n(e)?e:e+""}t.d(e,{default:()=>i});const i=function(){return t=function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.rs=e,this.leaveOpen=!!n.leaveOpen&&n.leaveOpen,this.autoCloseAfter=n.autoCloseAfter?n.autoCloseAfter:1500,this.skipInitial=!!n.skipInitial&&n.skipInitial,this.logging=!!n.logging&&n.logging,this.parentContainerEl=null,n.hasOwnProperty("modalBackdrop")){if("boolean"!=typeof n.modalBackdrop&&"onlySmallScreens"!==n.modalBackdrop)throw'options.modalBackdrop has to be true/false or "onlySmallScreens"';this.modalBackdrop=n.modalBackdrop}else this.modalBackdrop="onlySmallScreens";this.active=!1,this.online=!1,this.closed=!1,this.lastSynced=null,this.lastSyncedUpdateLoop=null},e=[{key:"log",value:function(){if(this.logging){for(var t,e=arguments.length,n=new Array(e),r=0;r

Connect your storage

To sync data with your account
';var e=document.createElement("style");return e.innerHTML='#remotestorage-widget {\n z-index: 21000000;\n}\n\n.rs-widget {\n box-sizing: border-box;\n overflow: hidden;\n max-width: 350px;\n padding: 10px;\n margin: 10px;\n border-radius: 3px;\n background-color: #fff;\n box-shadow: 0 1px 2px 0 rgba(0,0,0,0.1), 0 3px 8px 0 rgba(0,0,0,0.2);\n font-family: arial, sans-serif;\n font-size: 16px;\n color: #333;\n will-change: max-height, height, width, opacity, max-width, background, box-shadow;\n transition-property: width, height, opacity, max-width, max-height, background, box-shadow;\n transition-duration: 300ms;\n}\n\n.rs-widget * {\n box-sizing: border-box;\n}\n\n.rs-widget .rs-hidden {\n display: none;\n}\n\n.rs-box {\n overflow: hidden;\n will-change: height;\n transition-property: height, width, max-height;\n transition-duration: 300ms;\n transition-timing-function: ease-in;\n opacity: 0;\n max-height: 0px;\n}\n\n.rs-box.rs-selected:not([aria-hidden=true]) {\n opacity: 1;\n max-height: 420px;\n}\n\n/* Main logo */\n.rs-main-logo {\n float: left;\n height: 36px;\n width: 36px;\n margin-top: 1px;\n margin-right: 0.625em;\n transition: margin-left 300ms ease-out, transform 300ms ease-out;\n cursor: pointer;\n}\n.rs-widget .rs-backend-remotestorage svg#rs-main-logo-remotestorage {\n display: block;\n}\n.rs-widget[class*="rs-backend-"]:not(.rs-backend-remotestorage) svg#rs-main-logo-remotestorage {\n display: none;\n}\n.rs-widget.rs-backend-dropbox svg#rs-main-logo-dropbox {\n display: block;\n}\n.rs-widget:not(.rs-backend-dropbox) svg#rs-main-logo-dropbox {\n display: none;\n}\n.rs-widget.rs-backend-googledrive svg#rs-main-logo-googledrive {\n display: block;\n}\n.rs-widget:not(.rs-backend-googledrive) svg#rs-main-logo-googledrive {\n display: none;\n}\n\npolygon.rs-logo-shape {\n fill: #FF4B03;\n}\n\npolygon.rs-logo-shape,\n#rs-main-logo-dropbox path,\n#rs-main-logo-googledrive path {\n transition-property: fill;\n transition-duration: 0.5s;\n}\n\n.rs-offline polygon.rs-logo-shape,\n.rs-offline #rs-main-logo-dropbox path,\n.rs-offline #rs-main-logo-googledrive path {\n fill: #888;\n transition-property: fill;\n transition-duration: 0.5s;\n}\n\n/* Hide everything except logo when connected and clicked outside of box */\n.rs-closed {\n max-width: 56px;\n background-color: transparent;\n box-shadow: none;\n opacity: 0.5;\n\n transition: max-height 100ms ease-out 0ms, max-width 300ms ease-out 300ms, background 300ms ease-in 200ms, opacity 300ms ease 200ms;\n}\n\n.rs-closed:hover {\n cursor: pointer;\n opacity: 1;\n}\n\n.rs-box-initial {\n transition-duration: 0ms;\n}\n\n.rs-box-initial:hover {\n cursor: pointer;\n}\n\n.rs-widget a {\n color: #0093cc;\n}\n\n/* HEADLINE */\n.rs-small-headline {\n font-size: 1em;\n font-weight: bold;\n margin: 0;\n margin-bottom: 2px;\n height: 1.2em;\n word-break: break-all;\n overflow: hidden;\n line-height: 1em;\n}\n\n.rs-sub-headline {\n word-break: break-all;\n overflow: hidden;\n color: #666;\n font-size: 0.92em;\n height: 1.2em;\n}\n.rs-big-headline {\n font-size: 1.625em;\n font-weight: normal;\n text-align: center;\n margin-top: 20px;\n margin-bottom: 20px;\n}\n\n/* BUTTONS */\n.rs-button {\n font: inherit;\n color: inherit;\n background-color: transparent;\n border: 1px solid #dcdcdc;\n border-radius: 3px;\n cursor: pointer;\n}\n.rs-button-small {\n padding: 0.6em 0.7em;\n margin-left: 0.2em;\n transition: border-color 300ms ease-out;\n}\n.rs-button-small svg {\n vertical-align: top;\n}\n.rs-button-wrap {\n margin-top: 10px;\n}\n\n.rs-button-wrap img,\n.rs-button-wrap svg {\n float: left;\n margin-right: 0.6em;\n width: 40px;\n height: 40px;\n}\n\n.rs-button-big {\n padding: 15px 10px;\n margin-bottom: 10px;\n display: block;\n width: 100%;\n text-align: left;\n transition: box-shadow 200ms;\n}\n.rs-button-big > div {\n font-size: 1.125em;\n padding: 10px 0;\n}\n.rs-button-big:hover {\n box-shadow: 0 1px 2px 0 rgba(0,0,0,0.1), 0 3px 8px 0 rgba(0,0,0,0.2);\n}\n.rs-button-big:active {\n background-color: #eee;\n box-shadow: 0 1px 2px 0 rgba(0,0,0,0.1), 0 3px 8px 0 rgba(0,0,0,0.2);\n}\n.rs-button-big:last-child {\n margin-bottom: 0;\n}\n\n.rs-content {\n padding: 0 10px 10px 10px;\n}\n\n\n.rs-state-choose .rs-main-logo,\n.rs-state-sign-in .rs-main-logo {\n margin-left: 45%;\n float: none;\n}\n\n.rs-sign-in-form input[type=text] {\n padding: 15px 10px;\n display: block;\n width: 100%;\n font: inherit;\n height: 52px;\n border: 1px solid #aaa;\n border-radius: 0;\n box-shadow: none;\n}\n.rs-sign-in-form button.rs-connect {\n padding: 15px 10px;\n margin-top: 20px;\n margin-bottom: 15px;\n display: block;\n width: 100%;\n border: none;\n border-radius: 3px;\n background-color: #3fb34f;\n font: inherit;\n color: #fff;\n transition: box-shadow 200ms, background-color 200ms;\n}\n\n.rs-sign-in-form button.rs-connect:hover {\n cursor: pointer;\n background-color: #4BCB5D;\n box-shadow: 0 1px 2px 0 rgba(0,0,0,0.1), 0 3px 8px 0 rgba(0,0,0,0.2);\n}\n\n.rs-sign-in-form button.rs-connect:active {\n background-color: #3fb34f;\n}\n\n.rs-sign-in-form button.rs-connect:disabled,\n.rs-sign-in-form button.rs-connect:disabled:hover {\n background-color: #aaa;\n}\n\n.rs-sign-in-form button.rs-connecting svg {\n height: 1em;\n width: auto;\n vertical-align: middle;\n margin-left: 0.5em;\n animation: rs-spin 1s linear infinite;\n}\n\n.rs-sign-in-error.rs-hidden,\n.rs-box-error.rs-hidden {\n height: 0;\n}\n\n.rs-sign-in-error.rs-visible,\n.rs-box-error.rs-visible {\n height: auto;\n border-radius: 3px;\n padding: 0.5em 0.5em;\n margin-top: 0.5em;\n text-align: center;\n background-color: rgba(255,0,0,0.1);\n color: darkred;\n}\n\n.rs-box-error {\n display: flex;\n flex-direction: row;\n}\n\n.rs-box-error .rs-error-message {\n flex: auto;\n}\n\n /*Choose provider box */\n.rs-box-choose {\n text-align: center;\n overflow: hidden;\n}\n\n.rs-box-choose p {\n margin-top: 0;\n margin-bottom: 20px;\n line-height: 1.4em;\n}\n\n/*Connected box */\n.rs-box-connected {\n display: flex;\n flex-direction: row;\n height: 40px;\n transition: height 0s;\n}\n.rs-connected-text {\n flex: auto;\n min-width: 0;\n}\n.rs-box-connected .rs-user {\n font-weight: bold;\n text-overflow: ellipsis;\n overflow: hidden;\n word-break: keep-all;\n}\n.rs-connected-buttons, .rs-error-buttons {\n flex: none;\n}\n.rs-disconnect:hover {\n border-color: #FF2D2D;\n}\n.rs-disconnect:hover .rs-icon{\n fill: #FF2D2D;\n}\n.rs-sync:hover {\n border-color: #FFBB0C;\n}\n.rs-sync:hover .rs-icon {\n fill: #FFBB0C;\n}\n.rs-sync.rs-rotate {\n border-color: #FFBB0C;\n}\n.rs-sync.rs-rotate .rs-icon {\n fill: #FFBB0C;\n animation: rs-spin 1s linear infinite;\n}\n\n/* Floating widget styles (top right corner) */\n.rs-floating {\n position: fixed;\n top: 0;\n right: 0;\n}\n\n@keyframes rs-spin {\n 100% {\n transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n/* Small/mobile screens */\n@media screen and (max-width: 420px) {\n .rs-widget {\n font-size: 100%;\n transition: all 300ms ease-out;\n max-width: 400px;\n }\n .rs-floating {\n position: relative;\n top: auto;\n right: auto\n }\n .rs-closed {\n max-width: 56px;\n }\n .rs-state-choose,\n .rs-state-sign-in {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n max-width: 100%;\n }\n}\n\n/* remove dotted outline border on Firefox */\n.rs-widget a:focus,\n.rs-widget a:active,\n.rs-widget button:focus,\n.rs-widget input:focus {\n outline:none;\n}\n.rs-widget button::-moz-focus-inner,\n.rs-widget input[type="button"]::-moz-focus-inner {\n border:0;\n}\n\n/* prevent rounded buttons on mobile Safari */\n.rs-widget button,\n.rs-widget input[type="button"] {\n -webkit-appearance: none;\n}\n\n.remotestorage-widget-modal-backdrop {\n display: none;\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n background-color: rgba(0, 0, 0, 0.5);\n opacity: 0;\n transition: opacity 0.3s linear;\n}\n\n.remotestorage-widget-modal-backdrop.visible {\n opacity: 1;\n transition: opacity 0.3s linear;\n}\n',t.appendChild(e),t}},{key:"setModalClass",value:function(){if(this.modalBackdrop){if("onlySmallScreens"===this.modalBackdrop&&!this.isSmallScreen())return;this.rsWidget.classList.add("rs-modal")}}},{key:"setupElements",value:function(){if(!this.parentContainerEl)throw new Error("Parent container element not found");this.rsWidget=this.parentContainerEl.querySelector(".rs-widget"),this.rsBackdrop=this.parentContainerEl.querySelector(".remotestorage-widget-modal-backdrop"),this.rsInitial=this.parentContainerEl.querySelector(".rs-box-initial"),this.rsChoose=this.parentContainerEl.querySelector(".rs-box-choose"),this.rsConnected=this.parentContainerEl.querySelector(".rs-box-connected"),this.rsSignIn=this.parentContainerEl.querySelector(".rs-box-sign-in"),this.rsConnectedLabel=this.parentContainerEl.querySelector(".rs-box-connected .rs-sub-headline"),this.rsChooseRemoteStorageButton=this.parentContainerEl.querySelector("button.rs-choose-rs"),this.rsChooseDropboxButton=this.parentContainerEl.querySelector("button.rs-choose-dropbox"),this.rsChooseGoogleDriveButton=this.parentContainerEl.querySelector("button.rs-choose-googledrive"),this.rsErrorBox=this.parentContainerEl.querySelector(".rs-box-error .rs-error-message"),this.rs.apiKeys.hasOwnProperty("googledrive")||this.rsChooseGoogleDriveButton.parentNode.removeChild(this.rsChooseGoogleDriveButton),this.rs.apiKeys.hasOwnProperty("dropbox")||this.rsChooseDropboxButton.parentNode.removeChild(this.rsChooseDropboxButton),this.rsSignInForm=this.parentContainerEl.querySelector(".rs-sign-in-form"),this.rsAddressInput=this.rsSignInForm.querySelector("input[name=rs-user-address]"),this.rsConnectButton=this.parentContainerEl.querySelector(".rs-connect"),this.rsDisconnectButton=this.parentContainerEl.querySelector(".rs-disconnect"),this.rsSyncButton=this.parentContainerEl.querySelector(".rs-sync"),this.rsLogo=this.parentContainerEl.querySelector(".rs-widget-icon"),this.rsErrorReconnectLink=this.parentContainerEl.querySelector(".rs-box-error a.rs-reconnect"),this.rsErrorDisconnectButton=this.parentContainerEl.querySelector(".rs-box-error button.rs-disconnect"),this.rsConnectedUser=this.parentContainerEl.querySelector(".rs-connected-text h1.rs-user")}},{key:"setupHandlers",value:function(){var t=this;this.rs.on("connected",function(){return t.eventHandler("connected")}),this.rs.on("ready",function(){return t.eventHandler("ready")}),this.rs.on("disconnected",function(){return t.eventHandler("disconnected")}),this.rs.on("network-online",function(){return t.eventHandler("network-online")}),this.rs.on("network-offline",function(){return t.eventHandler("network-offline")}),this.rs.on("error",function(e){return t.eventHandler("error",e)}),this.setEventListeners(),this.setClickHandlers()}},{key:"attach",value:function(t){var e=this.createHtmlTemplate(t);if(this.parentContainerEl,t instanceof HTMLElement)this.parentContainerEl=t;else if("string"==typeof t){if(this.parentContainerEl=document.getElementById(t),!this.parentContainerEl)throw new Error('Failed to find target DOM element with id="'+t+'"')}else{if(t)throw new Error("Unknown element type. Expected instance of HTMLElement or type of string.");this.parentContainerEl=document.body}this.parentContainerEl.appendChild(e),this.setupElements(),this.setupHandlers(),this.setInitialState(),this.setModalClass()}},{key:"setEventListeners",value:function(){var t=this;this.rsSignInForm.addEventListener("submit",function(e){e.preventDefault();var n=t.parentContainerEl.querySelector("input[name=rs-user-address]").value.trim();t.disableConnectButton(),t.rs.connect(n)})}},{key:"showChooseOrSignIn",value:function(){this.rsWidget.classList.contains("rs-modal")&&(this.rsBackdrop.style.display="block",this.rsBackdrop.classList.add("visible")),this.rs.apiKeys&&Object.keys(this.rs.apiKeys).length>0?this.setState("choose"):this.setState("sign-in")}},{key:"setClickHandlers",value:function(){var t=this;this.rsInitial.addEventListener("click",function(){return t.showChooseOrSignIn()}),this.rsChooseRemoteStorageButton.addEventListener("click",function(){t.setState("sign-in"),t.rsAddressInput.focus()}),this.rsChooseDropboxButton.addEventListener("click",function(){return t.rs.dropbox.connect()}),this.rsChooseGoogleDriveButton.addEventListener("click",function(){return t.rs.googledrive.connect()}),this.rsDisconnectButton.addEventListener("click",function(){return t.rs.disconnect()}),this.rsErrorReconnectLink.addEventListener("click",function(){return t.rs.reconnect()}),this.rsErrorDisconnectButton.addEventListener("click",function(){return t.rs.disconnect()}),this.rs.hasFeature("Sync")&&this.rsSyncButton.addEventListener("click",function(){t.rsSyncButton.classList.contains("rs-rotate")?(t.rs.stopSync(),t.rsSyncButton.classList.remove("rs-rotate")):(t.rsConnectedLabel.textContent="Synchronizing",t.rs.startSync(),t.rsSyncButton.classList.add("rs-rotate"))}),document.addEventListener("click",function(){return t.close()}),this.rsWidget.addEventListener("click",function(t){return t.stopPropagation()}),this.rsLogo.addEventListener("click",function(){return t.toggle()})}},{key:"toggle",value:function(){this.closed?this.open():"initial"===this.state?this.showChooseOrSignIn():this.close()}},{key:"open",value:function(){this.closed=!1,this.rsWidget.classList.remove("rs-closed"),this.shouldCloseWhenSyncDone=!1;var t=this.parentContainerEl.querySelector(".rs-box.rs-selected");t&&t.setAttribute("aria-hidden","false")}},{key:"close",value:function(){var t=this;if("error"!==this.state){if(!this.leaveOpen&&this.active){this.closed=!0,this.rsWidget.classList.add("rs-closed");var e=this.parentContainerEl.querySelector(".rs-box.rs-selected");e&&e.setAttribute("aria-hidden","true")}else this.active?this.setState("connected"):this.setInitialState();this.rsWidget.classList.contains("rs-modal")&&(this.rsBackdrop.classList.remove("visible"),setTimeout(function(){t.rsBackdrop.style.display="none"},300))}}},{key:"disableConnectButton",value:function(){this.rsConnectButton.disabled=!0,this.rsConnectButton.classList.add("rs-connecting"),this.rsConnectButton.innerHTML="Connecting ".concat('\n \n \n \n \n \n \n\n')}},{key:"enableConnectButton",value:function(){this.rsConnectButton.disabled=!1,this.rsConnectButton.textContent="Connect",this.rsConnectButton.classList.remove("rs-connecting")}},{key:"setOffline",value:function(){this.online&&(this.rsWidget.classList.add("rs-offline"),this.rsConnectedLabel.textContent="Offline",this.online=!1)}},{key:"setOnline",value:function(){this.online||(this.rsWidget.classList.remove("rs-offline"),this.active&&(this.rsConnectedLabel.textContent="Connected")),this.online=!0}},{key:"setBackendClass",value:function(t){this.rsWidget.classList.remove("rs-backend-remotestorage"),this.rsWidget.classList.remove("rs-backend-dropbox"),this.rsWidget.classList.remove("rs-backend-googledrive"),t&&this.rsWidget.classList.add("rs-backend-".concat(t))}},{key:"showErrorBox",value:function(t){this.rsErrorBox.innerHTML=t,this.setState("error")}},{key:"hideErrorBox",value:function(){this.rsErrorBox.innerHTML="",this.close()}},{key:"handleSyncStarted",value:function(){var t=this;this.syncInProgress=!0,this.rsSyncButton.classList.add("rs-rotate"),setTimeout(function(){t.syncInProgress&&(t.rsConnectedLabel.textContent="Synchronizing")},1e3)}},{key:"handleDiscoveryError",value:function(t){var e=this.parentContainerEl.querySelector(".rs-sign-in-error");e.innerHTML=t.message,e.classList.remove("rs-hidden"),e.classList.add("rs-visible"),this.enableConnectButton()}},{key:"handleSyncError",value:function(){this.setOffline()}},{key:"handleUnauthorized",value:function(t){t.code&&"access_denied"===t.code?this.rs.disconnect():(this.open(),this.showErrorBox(t.message+" "),this.rsErrorBox.appendChild(this.rsErrorReconnectLink),this.rsErrorReconnectLink.classList.remove("rs-hidden"))}},{key:"updateLastSyncedStatus",value:function(){var t=new Date;this.online?(this.lastSynced=t,this.rsConnectedLabel.textContent="Synced"):this.rsWidget.classList.contains("rs-state-unauthorized")||(this.rsConnectedLabel.textContent="Offline")}},{key:"isSmallScreen",value:function(){return window.innerWidth<421}}],e&&function(t,e){for(var n=0;nAs(t.cancelId))}))),s=r.has(e)?r.get(e).debouncedTask:(...n)=>{r.delete(e),t[e](...n)};let o=Os(t,s,...n);r.set(e,{debouncedTask:s,cancelId:o})}var t$=a({default:()=>e$}),e$=class extends fp{static{BF(this.prototype,"osm",[pp])}#B=void qF(this,"osm");static{BF(this.prototype,"toast",[pp])}#Mt=void qF(this,"toast");rs;widget;static{BF(this.prototype,"placesInView",[Wr],function(){return[]})}#At=void qF(this,"placesInView");static{BF(this.prototype,"savedPlaces",[Wr],function(){return[]})}#Ot=void qF(this,"savedPlaces");static{BF(this.prototype,"loadedPrefixes",[Wr],function(){return[]})}#Nt=void qF(this,"loadedPrefixes");static{BF(this.prototype,"currentBbox",[Wr],function(){return null})}#Ft=void qF(this,"currentBbox");static{BF(this.prototype,"lists",[Wr],function(){return[]})}#zt=void qF(this,"lists");static{BF(this.prototype,"version",[Wr],function(){return 0})}#Dt=void qF(this,"version");static{BF(this.prototype,"initialSyncDone",[Wr],function(){return!1})}#jt=void qF(this,"initialSyncDone");static{BF(this.prototype,"connected",[Wr],function(){return!1})}#Ut=void qF(this,"connected");static{BF(this.prototype,"userAddress",[Wr],function(){return null})}#Bt=void qF(this,"userAddress");static{BF(this.prototype,"isWidgetOpen",[Wr],function(){return!1})}#$t=void qF(this,"isWidgetOpen");isNewConnection=!0;constructor(){super(...arguments),this.checkInitialConnectionState(),this.rs=new qB.default({modules:[KB]}),this.rs.access.claim("places","rw"),this.rs.caching.enable("/places/"),window.remoteStorage=this.rs,this.widget=new XB.default(this.rs,{leaveOpen:!0,skipInitial:!0}),this.rs.on("ready",()=>{}),this.rs.on("error",t=>{t&&(console.info("[rs] Error —",`${t.name}: ${t.message}`),"Unauthorized"===t.name&&this.showConnectWidget())}),this.rs.on("connected",()=>{this.connected=!0,this.userAddress=this.rs.remote.userAddress,this.isNewConnection&&(this.toast.show("Remote storage connected",3e3),this.isNewConnection=!1),this.loadLists()}),this.rs.on("not-connected",()=>{this.loadLists()}),this.rs.on("disconnected",()=>{this.connected=!1,this.userAddress=null,this.placesInView=[],this.savedPlaces=[],this.loadedPrefixes=[],this.lists=[],this.initialSyncDone=!1,this.isNewConnection=!0}),this.rs.on("sync-done",()=>{this.initialSyncDone||(this.initialSyncDone=!0,this.loadLists())}),this.rs.scope("/places/").on("change",t=>{t.relativePath.startsWith("_lists/")?this.loadLists():(this.handlePlaceChange(t),QB(this,"reloadCurrentView",200))})}checkInitialConnectionState(){this.isNewConnection=!0;try{if(window.localStorage)for(const t of["remotestorage:wireclient","remotestorage:dropbox","remotestorage:googledrive"]){const e=window.localStorage.getItem(t);if(e){const t=JSON.parse(e);if(t&&t.token){this.isNewConnection=!1;break}}}}catch(t){console.warn("Failed to check localStorage for existing connection:",t)}}handlePlaceChange(t){const{newValue:e,relativePath:n}=t,r=n.split("/"),i=r[r.length-1];if(e){const t={...e,id:i},n=this.savedPlaces.findIndex(t=>t.id===i);if(-1!==n){const e=[...this.savedPlaces];e[n]=t,this.savedPlaces=e}else this.savedPlaces=[...this.savedPlaces,t]}else this.savedPlaces=this.savedPlaces.filter(t=>t.id!==i)}get places(){return this.rs.places}notifyChange(){this.version++,QB(this,"reloadCurrentView",200)}reloadCurrentView(){if(!this.currentBbox)return;const t=vU(this.currentBbox);console.debug("Reloading view due to changes, prefixes:",t),this.loadAllPlaces(t)}async loadLists(){try{if(!this.places.lists)return;await this.places.lists.initDefaults();const t=await this.places.lists.getAll();this.lists=t||[],this.lists.forEach(t=>{"to-go"===t.id?t.icon="bookmark":"to-do"===t.id&&(t.icon="check-square")}),this.refreshPlaceListAssociations()}catch(t){console.error("Failed to load lists:",t)}}refreshPlaceListAssociations(){const t=new Map;this.lists.forEach(e=>{e.placeRefs&&Array.isArray(e.placeRefs)&&e.placeRefs.forEach(n=>{n.id&&(t.has(n.id)||t.set(n.id,[]),t.get(n.id).push(e.id))})});const e=e=>(e._listIds=t.get(e.id)||[],e);this.savedPlaces=this.savedPlaces.map(t=>e({...t})),this.placesInView=this.placesInView.map(t=>e({...t}))}async togglePlaceList(t,e,n){if(!t)return;let r=t;if(!t.id||!t.geohash){if(!n)return;r=await this.storePlace(t)}try{return n?await this.places.lists.addPlace(e,r.id,r.geohash):await this.places.lists.removePlace(e,r.id),await this.loadLists(),this.findPlaceById(r.id)}catch(i){throw console.error("Failed to toggle place in list:",i),i}}async getPlacesInList(t){return this.places&&this.places.lists?this.places.lists.getPlaces(t):[]}async loadPlacesInBounds(t){const e=vU(t).filter(t=>!this.loadedPrefixes.includes(t));0!==e.length&&(console.debug("Loading new prefixes:",e),await this.loadAllPlaces(e),this.loadedPrefixes=[...this.loadedPrefixes,...e],this.currentBbox=t)}async loadAllPlaces(t=null){try{const e=await this.places.getPlaces(t);if(e&&Array.isArray(e)){if(t){const n=new Set(t),r=this.placesInView.filter(t=>{if(!t.lat||!t.lon)return!1;try{const e=mU.encode(t.lat,t.lon,4);return!n.has(e)}catch{return!0}});this.placesInView=[...r,...e]}else this.placesInView=e;this.refreshPlaceListAssociations()}else t||(this.placesInView=[]);console.debug("Loaded saved places:",this.placesInView.length)}catch(e){console.error("Failed to load places:",e)}}findPlaceById(t){if(!t)return;const e=String(t);let n=this.savedPlaces.find(t=>t.id&&String(t.id)===e);return n||(n=this.placesInView.find(t=>t.id&&String(t.id)===e),n||(n=this.savedPlaces.find(t=>t.osmId&&String(t.osmId)===e),n||(n=this.placesInView.find(t=>t.osmId&&String(t.osmId)===e),n)))}isPlaceSaved(t){return!!this.findPlaceById(t)}async storePlace(t){const e=await this.places.store(t);return this.savedPlaces.some(t=>t.id===e.id)?this.savedPlaces=this.savedPlaces.map(t=>t.id===e.id?e:t):this.savedPlaces=[...this.savedPlaces,e],this.placesInView.some(t=>t.id===e.id)?this.placesInView=this.placesInView.map(t=>t.id===e.id?e:t):this.placesInView=[...this.placesInView,e],e}async updatePlace(t){const e=await this.places.store(t),n=this.savedPlaces.findIndex(t=>t.id===e.id);if(-1!==n){const t=[...this.savedPlaces];t[n]=e,this.savedPlaces=t}return this.placesInView=this.placesInView.map(t=>t.id===e.id?e:t),e}async removePlace(t){await this.places.remove(t.id,t.geohash),this.savedPlaces=this.savedPlaces.filter(e=>e.id!==t.id),this.placesInView.length>0&&(this.placesInView=this.placesInView.filter(e=>e.id!==t.id))}async refreshPlace(t){if(!(t&&t.id&&t.osmId&&t.osmType))return null;try{console.debug(`Checking for updates for ${t.title} (${t.osmId})`);const e=await this.osm.fetchOsmObject(t.osmId,t.osmType,{forceFresh:!0});if(!e)return console.warn("Could not fetch fresh data for",t.osmId),null;let n=!1;const r={},i=Math.abs(t.lat-e.lat),s=Math.abs(t.lon-e.lon);(i>1e-5||s>1e-5)&&(n=!0,r.lat=e.lat,r.lon=e.lon);const o=t.osmTags||{},a=e.osmTags||{},l=new Set([...Object.keys(o),...Object.keys(a)]);for(const t of l)if(o[t]!==a[t]){n=!0,r.osmTags=a;break}if(!n)return console.debug("No changes detected for",t.title),null;console.debug("Changes detected:",r);const c={...t,...r},u=TB(o),h=TB(a);return t.title===u&&u!==h&&(c.title=h),await this.updatePlace(c)}catch(e){return console.error("Failed to refresh place:",e),null}}showConnectWidget(){this.isWidgetOpen=!0,document.querySelector(".rs-widget")||this.widget.attach("rs-widget-container")}static{$F(this.prototype,"showConnectWidget",[Vl])}closeWidget(){this.isWidgetOpen=!1}static{$F(this.prototype,"closeWidget",[Vl])}disconnect(){this.rs.disconnect(),this.isWidgetOpen=!1}static{$F(this.prototype,"disconnect",[Vl])}},n$=a({default:()=>r$}),r$=class extends fp{static{BF(this.prototype,"message",[Wr],function(){return null})}#qt=void qF(this,"message");static{BF(this.prototype,"isVisible",[Wr],function(){return!1})}#Vt=void qF(this,"isVisible");timeoutId=null;show(t,e=3e3){this.message=t,this.isVisible=!0,this.timeoutId&&clearTimeout(this.timeoutId),this.timeoutId=setTimeout(()=>{this.isVisible=!1},e)}},i$=a({getDistance:()=>s$});function s$(t,e,n,r){const i=t*Math.PI/180,s=n*Math.PI/180,o=(n-t)*Math.PI/180,a=(r-e)*Math.PI/180,l=Math.sin(o/2)*Math.sin(o/2)+Math.cos(i)*Math.cos(s)*Math.sin(a/2)*Math.sin(a/2);return 2*Math.atan2(Math.sqrt(l),Math.sqrt(1-l))*6371e3}var o$=a({getIcon:()=>c$,isIconFilled:()=>u$}),a$={activity:'',angelfish:'\n \n',"arrow-left":'',barbell:'\n \n',banknote:'\n \n',"badge-shield-with-fire":'\n \n',"beach-umbrella-in-ground":'\n \n',"beer-mug-with-foam":'\n \n',bookmark:'',"boxing-glove-up":'\n \n',"burger-and-drink-cup-with-straw":'\n \n',bridge:'\n \n',bus:'\n \n',camera:'\n \n',"feather-camera":'',"check-square":'',"chevron-left":'',"chevron-right":'',"cigarette-with-smoke-curl":'\n \n',"city-gate":'\n \n',climbing_wall:'\n \n',check:'',"alert-circle":'',"alert-triangle":'',"classical-building":'\n \n',"classical-building-with-clock":'\n \n',"classical-building-with-dome-and-flag":'\n \n',"classical-building-with-flag":'\n \n',"commercial-building":'\n \n',"clothes-hanger":'\n \n',cleaver:'\n \n',cloth:'\n \n',cocktail:'\n \n',clock:'',"coffee-bean":'\n \n',"comedy-mask-and-tragedy-mask":'\n \n',croissant:'\n \n',"cup-and-saucer":'\n \n',database:'',donut:'\n \n',edit:'',eyeglasses:'\n \n',facebook:'',"fancy-mirror-with-reflection-and-stars":'\n \n',"family-restroom-symbol":'\n \n',film:'\n \n',"fingernail-polished":'\n \n',fish:'\n \n',"flag-checkered":'\n \n',"flower-bouquet":'\n \n',"fork-and-knife":'\n \n',fort:'\n \n',gift:'',globe:'',gravestone:'\n \n',"grecian-vase":'\n \n',"greek-cross":'\n \n',heart:'',home:'',"ice-cream-on-cone":'\n \n',"industrial-building":'\n \n',info:'',"info-i":'\n \n',instagram:'',jewel:'\n \n',"log-in":'',"log-out":'',"lowrise-building":'\n \n',mail:'',map:'',"map-pin":'',"market-stall":'\n \n',"memorial-stone-with-inscription":'\n \n',menu:'',"mobile-phone-with-keypad-and-antenna":'\n \n',"molar-tooth":'\n \n',"more-horizontal":'',"more-vertical":'',navigation:'',"needle-and-spool-of-thread":'\n \n',nostrich:'\n \n\n',"open-book":'\n \n',palace:'\n \n',"person-cricket-batting-at-cricket-ball":'\n \n',"person-boarding-tram-with-destination-display-and-pantograph-on-tram-track":'\n \n',"person-jockeying-racehorse":'\n \n',"person-playing-tennis":'\n \n',"person-running":'\n \n',"person-sleeping-in-bed":'\n \n',"person-swimming-in-water":'\n \n',"person-swinging-golf-club":'\n \n',phone:'',"plane-top-right":'\n \n',"plant-in-raised-planter":'\n \n',"place-of-worship-building":'\n \n',"play-structure-with-slide":'\n \n',"police-officer-with-stop-arm":'\n \n',plus:'',"round-structure-with-flag":'\n \n',remotestorage:'\n\x3c!-- Creator: CorelDRAW X7 --\x3e\n\n \n',"sailing-ship-in-water":'\n \n',"scissors-open":'\n \n',"shipwreck-in-water":'\n \n',"steam-train-on-railway-track":'\n \n',"shopping-bag":'\n \n',search:'',server:'',settings:'',"shopping-basket":'\n \n',"shopping-cart":'\n \n',"table-tennis-paddle":'\n \n',"tattoo-machine":'\n \n',toolbox:'\n \n',target:'',"trash-2":'',"upload-cloud":'',"tree-and-bench-with-backrest":'\n \n',user:'',"village-buildings":'\n \n',"wall-hanging-with-mountains-and-sun":'\n \n',"womens-and-mens-restroom-symbol":'\n \n',whatsapp:'\n\n \n\n',wikipedia:'\n\n\n',winding_way_wide:'\n \n',parking_p:'\n \n',car:'\n \n',"car-and-wrench":'\n \n',"castle-keep":'\n \n',x:'',zap:'',"loading-ring":''},l$=["fork-and-knife","wikipedia","whatsapp","cup-and-saucer","coffee-bean","shopping-basket","person-sleeping-in-bed","loading-ring","nostrich"];function c$(t){return a$[t]}function u$(t){return l$.includes(t)}var h$=a({POI_ICON_RULES:()=>d$,getIconNameForTags:()=>p$,getIconSvgForTags:()=>f$}),d$=[{tags:{cuisine:"donut"},icon:"donut"},{tags:{cuisine:"doughnut"},icon:"donut"},{tags:{cuisine:"coffee_shop"},icon:"coffee-bean"},{tags:{cuisine:"coffee"},icon:"coffee-bean"},{tags:{amenity:"ice_cream"},icon:"ice-cream-on-cone"},{tags:{cuisine:"ice_cream"},icon:"ice-cream-on-cone"},{tags:{shop:"ice_cream"},icon:"ice-cream-on-cone"},{tags:{amenity:"cafe"},icon:"cup-and-saucer"},{tags:{amenity:"restaurant"},icon:"fork-and-knife"},{tags:{amenity:"fast_food"},icon:"burger-and-drink-cup-with-straw"},{tags:{amenity:"pub"},icon:"beer-mug-with-foam"},{tags:{amenity:"bar"},icon:"cocktail"},{tags:{amenity:"food_court"},icon:"fork-and-knife"},{tags:{amenity:"childcare"},icon:"family-restroom-symbol"},{tags:{amenity:"community_centre"},icon:"family-restroom-symbol"},{tags:{amenity:"social_centre"},icon:"family-restroom-symbol"},{tags:{amenity:"social_facility"},icon:"family-restroom-symbol"},{tags:{amenity:"bank"},icon:"banknote"},{tags:{amenity:"place_of_worship"},icon:"place-of-worship-building"},{tags:{amenity:"townhall"},icon:"classical-building-with-clock"},{tags:{building:"townhall"},icon:"classical-building-with-clock"},{tags:{amenity:"fire_station"},icon:"badge-shield-with-fire"},{tags:{amenity:"police"},icon:"police-officer-with-stop-arm"},{tags:{amenity:"toilets"},icon:"womens-and-mens-restroom-symbol"},{tags:{amenity:"school"},icon:"open-book"},{tags:{amenity:"driving_school"},icon:"car"},{tags:{shop:"coffee"},icon:"coffee-bean"},{tags:{shop:"tea"},icon:"coffee-bean"},{tags:{shop:"pastry"},icon:"donut"},{tags:{shop:"supermarket"},icon:"shopping-cart"},{tags:{shop:"convenience"},icon:"shopping-basket"},{tags:{shop:"grocery"},icon:"shopping-basket"},{tags:{shop:"greengrocer"},icon:"shopping-basket"},{tags:{shop:"bakery"},icon:"croissant"},{tags:{shop:"butcher"},icon:"cleaver"},{tags:{shop:"seafood"},icon:"fish"},{tags:{shop:"deli"},icon:"shopping-basket"},{tags:{shop:"clothes"},icon:"clothes-hanger"},{tags:{shop:"clothing"},icon:"clothes-hanger"},{tags:{shop:"hairdresser"},icon:"scissors-open"},{tags:{shop:"optician"},icon:"eyeglasses"},{tags:{shop:"fabric"},icon:"cloth"},{tags:{shop:"flea_market"},icon:"market-stall"},{tags:{shop:"kiosk"},icon:"shopping-basket"},{tags:{shop:"leather"},icon:"shopping-bag"},{tags:{shop:"tailor"},icon:"needle-and-spool-of-thread"},{tags:{shop:"jewelry"},icon:"jewel"},{tags:{shop:"jewellery"},icon:"jewel"},{tags:{shop:"tobacco"},icon:"cigarette-with-smoke-curl"},{tags:{shop:"cannabis"},icon:"cigarette-with-smoke-curl"},{tags:{shop:"florist"},icon:"flower-bouquet"},{tags:{shop:"garden_centre"},icon:"plant-in-raised-planter"},{tags:{shop:"estate_agent"},icon:"village-buildings"},{tags:{shop:"mobile_phone"},icon:"mobile-phone-with-keypad-and-antenna"},{tags:{beauty:"nails"},icon:"fingernail-polished"},{tags:{shop:"tattoo"},icon:"tattoo-machine"},{tags:{shop:"beauty"},icon:"fancy-mirror-with-reflection-and-stars"},{tags:{shop:"car_repair"},icon:"car-and-wrench"},{tags:{craft:"tailor"},icon:"needle-and-spool-of-thread"},{tags:{office:"estate_agent"},icon:"village-buildings"},{tags:{office:!0},icon:"commercial-building"},{tags:{craft:!0},icon:"toolbox"},{tags:{shop:!0},icon:"shopping-bag"},{tags:{natural:"beach"},icon:"beach-umbrella-in-ground"},{tags:{leisure:"park"},icon:"tree-and-bench-with-backrest"},{tags:{leisure:"playground"},icon:"play-structure-with-slide"},{tags:{aeroway:"aerodrome"},icon:"plane-top-right"},{tags:{aeroway:"heliport"},icon:"plane-top-right"},{tags:{aeroway:"helipad"},icon:"plane-top-right"},{tags:{highway:"bus_stop"},icon:"bus"},{tags:{bus:!0},icon:"bus"},{tags:{railway:"tram_stop"},icon:"person-boarding-tram-with-destination-display-and-pantograph-on-tram-track"},{tags:{tourism:"museum"},icon:"classical-building"},{tags:{tourism:"gallery"},icon:"wall-hanging-with-mountains-and-sun"},{tags:{tourism:"aquarium"},icon:"angelfish"},{tags:{tourism:"theme_park"},icon:"camera"},{tags:{tourism:"attraction"},icon:"camera"},{tags:{tourism:"viewpoint"},icon:"camera"},{tags:{tourism:"zoo"},icon:"camera"},{tags:{tourism:"artwork"},icon:"camera"},{tags:{tourism:"information"},icon:"info-i"},{tags:{amenity:"cinema"},icon:"film"},{tags:{amenity:"theatre"},icon:"camera"},{tags:{amenity:"arts_centre"},icon:"comedy-mask-and-tragedy-mask"},{tags:{amenity:"arts_center"},icon:"comedy-mask-and-tragedy-mask"},{tags:{historic:"canal"},icon:"winding_way_wide"},{tags:{historic:"bridge"},icon:"bridge"},{tags:{historic:"bridge_site"},icon:"bridge"},{tags:{historic:"fort"},icon:"fort"},{tags:{historic:"city_gate"},icon:"city-gate"},{tags:{historic:"castle"},icon:"palace"},{tags:{building:"tower",historic:"yes"},icon:"castle-keep"},{tags:{historic:"building"},icon:"classical-building-with-flag"},{tags:{historic:"archaeological_site"},icon:"grecian-vase"},{tags:{historic:"memorial"},icon:"memorial-stone-with-inscription"},{tags:{historic:"tomb"},icon:"gravestone"},{tags:{historic:"monument"},icon:"classical-building-with-dome-and-flag"},{tags:{historic:"folly"},icon:"classical-building"},{tags:{historic:"industrial"},icon:"industrial-building"},{tags:{historic:"railway_station"},icon:"steam-train-on-railway-track"},{tags:{historic:"ship"},icon:"sailing-ship-in-water"},{tags:{historic:"wreck"},icon:"shipwreck-in-water"},{tags:{historic:"ruins"},icon:"camera"},{tags:{historic:"ruin"},icon:"camera"},{tags:{historic:"yes"},icon:"camera"},{tags:{tourism:"hotel"},icon:"person-sleeping-in-bed"},{tags:{tourism:"hostel"},icon:"person-sleeping-in-bed"},{tags:{tourism:"motel"},icon:"person-sleeping-in-bed"},{tags:{tourism:"guest_house"},icon:"person-sleeping-in-bed"},{tags:{sport:"motor"},icon:"flag-checkered"},{tags:{sport:"karting"},icon:"flag-checkered"},{tags:{sport:"motocross"},icon:"flag-checkered"},{tags:{sport:"cricket"},icon:"person-cricket-batting-at-cricket-ball"},{tags:{sport:"boxing"},icon:"boxing-glove-up"},{tags:{sport:"martial_arts"},icon:"boxing-glove-up"},{tags:{sport:"tennis"},icon:"person-playing-tennis"},{tags:{sport:"squash"},icon:"person-playing-tennis"},{tags:{sport:"padel"},icon:"person-playing-tennis"},{tags:{sport:"table_tennis"},icon:"table-tennis-paddle"},{tags:{sport:"climbing"},icon:"climbing_wall"},{tags:{leisure:"water_park"},icon:"person-swimming-in-water"},{tags:{sport:"swimming"},icon:"person-swimming-in-water"},{tags:{sport:"golf"},icon:"person-swinging-golf-club"},{tags:{leisure:"golf_course"},icon:"person-swinging-golf-club"},{tags:{sport:"horse_racing"},icon:"person-jockeying-racehorse"},{tags:{sport:"fitness"},icon:"barbell"},{tags:{sport:"fitness_centre"},icon:"barbell"},{tags:{leisure:"fitness_centre"},icon:"barbell"},{tags:{sport:"stadium"},icon:"round-structure-with-flag"},{tags:{leisure:"stadium"},icon:"round-structure-with-flag"},{tags:{leisure:"sports_centre"},icon:"person-running"},{tags:{leisure:"pitch"},icon:"person-running"},{tags:{sport:!0},icon:"person-running"},{tags:{amenity:"dentist"},icon:"molar-tooth"},{tags:{healthcare:"dentist"},icon:"molar-tooth"},{tags:{healthcare:!0},icon:"greek-cross"},{tags:{amenity:"parking"},icon:"parking_p"},{tags:{building:"commercial"},icon:"commercial-building"},{tags:{building:"apartments"},icon:"lowrise-building"}];function p$(t){if(!t)return null;for(const e of d$){let n=!0;for(const[r,i]of Object.entries(e.tags)){const e=t[r];if(!e){n=!1;break}const s=e.split(";").map(t=>t.trim());if(!0!==i&&!s.includes(i)){n=!1;break}}if(n)return e.icon}return null}function f$(t){const e=p$(t);return e?c$(e):null}var g$=a({getMatchingPoiCategories:()=>m$,getMatchingPoiCategoryIds:()=>y$});function m$(t,e){return Array.isArray(e)&&t?e.filter(e=>!!Array.isArray(e.filter)&&e.filter.some(e=>function(t,e){const n=function(t){if(!t)return[];const e=t.match(/\[[^\]]+\]/g);return e?e.map(t=>function(t){const e=t.match(/^"([^"]+)"$/);if(e)return{type:"presence",key:e[1]};const n=t.match(/^"([^"]+)"\s*=\s*"([^"]*)"$/);if(n)return{type:"equals",key:n[1],value:n[2]};const r=t.match(/^"([^"]+)"\s*~\s*"([^"]*)"$/);if(r)return{type:"regex",key:r[1],pattern:r[2],regex:new RegExp(r[2])};const i=t.match(/^"([^"]+)"\s*!~\s*"([^"]*)"$/);return i?{type:"not-regex",key:i[1],pattern:i[2],regex:new RegExp(i[2])}:null}(t.slice(1,-1).trim())).filter(Boolean):[]}(e);return 0!==n.length&&n.every(e=>function(t,e){const n=function(t,e){if(!t||!e)return[];const n=t[e];return null==n?[]:String(n).split(";").map(t=>t.trim()).filter(Boolean)}(t,e.key);switch(e.type){case"presence":return n.length>0;case"equals":return n.some(t=>t===e.value);case"regex":return n.some(t=>e.regex.test(t));case"not-regex":return 0===n.length||!n.some(t=>e.regex.test(t));default:return!1}}(t,e))}(t,e))):[]}function y$(t,e){return m$(t,e).map(t=>t.id)}var v$=a({CATEGORY_TAGS:()=>b$,getSuggestedPhotoTags:()=>w$}),b$={restaurants:["food","menu","vibe","front"],coffee:["food","menu","vibe","front"],groceries:["front","food"],"things-to-do":["architecture","amenities","vibe","front"],accommodation:["rooms","amenities","food","vibe","front"]};function w$(t){const e=y$(t?.osmTags||t?.tags||{},MB),n=[];for(const r of e){const t=b$[r];if(Array.isArray(t))for(const e of t)n.includes(e)||n.push(e)}return 0===n.length?[]:n}var _$=a({mapToStorageSchema:()=>x$});function x$(t){return{title:t.title||TB(t.osmTags,"Untitled Place"),lat:t.lat,lon:t.lon,tags:[],url:t.osmTags?.website,osmId:String(t.osmId||t.id),osmType:t.osmType,osmTags:t.osmTags||{},description:t.description}}var C$=a({getSocialInfo:()=>k$}),S$=(t,...e)=>{for(const n of e)if(t[n])return t[n];return null};function k$(t,e){if(!t)return null;const n=`${e}.com`,r=S$(t,`contact:${e}`,e);if(!r)return null;if(r.startsWith("http"))try{const t=new URL(r);return"facebook"===e&&"/profile.php"===t.pathname&&t.searchParams.has("id")?{url:r,username:t.searchParams.get("id")}:{url:r,username:t.pathname.replace(/^\/|\/$/g,"")||r}}catch{return{url:r,username:r}}const i=r.replace(/^@/,"");return{url:`https://${n}/${i}`,username:i}}var E$,R$,T$,L$,I$,P$=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","#","$","%","*","+",",","-",".",":",";","=","?","@","[","]","^","_","{","|","}","~"],M$=t=>{let e=0;for(let n=0;n{var n="";for(let r=1;r<=e;r++){let i=Math.floor(t)/Math.pow(83,e-r)%83;n+=P$[Math.floor(i)]}return n},O$=t=>{let e=t/255;return e<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)},N$=t=>{let e=Math.max(0,Math.min(1,t));return e<=.0031308?Math.trunc(12.92*e*255+.5):Math.trunc(255*(1.055*Math.pow(e,.4166666666666667)-.055)+.5)},F$=(t,e)=>(t=>t<0?-1:1)(t)*Math.pow(Math.abs(t),e),z$=class extends Error{constructor(t){super(t),this.name="ValidationError",this.message=t}},D$=t=>{let e=t>>8&255,n=255&t;return[O$(t>>16),O$(e),O$(n)]},j$=(t,e)=>{let n=Math.floor(t/361),r=Math.floor(t/19)%19,i=t%19;return[F$((n-9)/9,2)*e,F$((r-9)/9,2)*e,F$((i-9)/9,2)*e]},U$=(t,e,n,r)=>{let i=0,s=0,o=0,a=4*e;for(let c=0;c{if("PROCESS_IMAGE"!==t.data?.type)return;const{id:e,file:n,targetWidth:r,targetHeight:i,quality:s,computeBlurhash:o}=t.data;try{let t,c;try{const e=await createImageBitmap(n,{resizeWidth:r,resizeHeight:i,resizeQuality:"high"});if(t=new OffscreenCanvas(r,i),c=t.getContext("2d"),!c)throw new Error("Failed to get 2d context from OffscreenCanvas");c.drawImage(e,0,0,r,i),e.close()}catch(a){console.warn("Hardware resize failed, falling back to stepped software scaling:",a);const e=await n.arrayBuffer(),s=new Blob([e],{type:n.type}),o=await createImageBitmap(s);let l=o.width,u=o.height,h=new OffscreenCanvas(l,u),d=h.getContext("2d");for(d.imageSmoothingEnabled=!0,d.imageSmoothingQuality="high",d.drawImage(o,0,0);.5*h.width>r&&.5*h.height>i;){const t=new OffscreenCanvas(Math.floor(.5*h.width),Math.floor(.5*h.height)),e=t.getContext("2d");e.imageSmoothingEnabled=!0,e.imageSmoothingQuality="high",e.drawImage(h,0,0,t.width,t.height),h=t}t=new OffscreenCanvas(r,i),c=t.getContext("2d"),c.imageSmoothingEnabled=!0,c.imageSmoothingQuality="high",c.drawImage(h,0,0,r,i),o.close()}let u=null;if(o)try{u=((t,e,n)=>{if(e*n*4!==t.length)throw new z$("Width and height must match the pixels array");let r=[];for(let l=0;l<3;l++)for(let i=0;i<4;i++){let s=0==i&&0==l?1:2,o=U$(t,e,n,(t,r)=>s*Math.cos(Math.PI*i*t/e)*Math.cos(Math.PI*l*r/n));r.push(o)}let i,s=r[0],o=r.slice(1),a="";if(a+=A$(21,1),o.length>0){let t=Math.max(...o.map(t=>Math.max(...t))),e=Math.floor(Math.max(0,Math.min(82,Math.floor(166*t-.5))));i=(e+1)/166,a+=A$(e,1)}else i=1,a+=A$(0,1);return a+=A$((t=>(N$(t[0])<<16)+(N$(t[1])<<8)+N$(t[2]))(s),4),o.forEach(t=>{a+=A$(((t,e)=>19*Math.floor(Math.max(0,Math.min(18,Math.floor(9*F$(t[0]/e,.5)+9.5))))*19+19*Math.floor(Math.max(0,Math.min(18,Math.floor(9*F$(t[1]/e,.5)+9.5))))+Math.floor(Math.max(0,Math.min(18,Math.floor(9*F$(t[2]/e,.5)+9.5)))))(t,i),2)}),a})(c.getImageData(0,0,r,i).data,r,i)}catch(l){console.warn("Could not generate blurhash (possible canvas fingerprinting protection):",l)}const h=await t.convertToBlob({type:"image/jpeg",quality:s}),d=`${r}x${i}`;self.postMessage({id:e,success:!0,blob:h,dim:d,blurhash:u})}catch(d8){self.postMessage({id:e,success:!1,error:d8.message})}};var W$="undefined"!=typeof FastBoot,H$="routeDidChange",G$=["separator","prepend","replace"],Z$=(E$=pp("router"),R$=pp("-document"),T$=class extends fp{constructor(t){if(super(t),q$(this,"router",L$,this),q$(this,"document",I$,this),$$(this,"tokens",[]),$$(this,"_defaultConfig",{separator:" | ",prepend:!0,replace:null}),$$(this,"scheduleTitleUpdate",()=>{Ps("afterRender",this,this._updateTitle)}),this._validateExistingTitleElement(),function(t){return"resolveRegistration"in t}(t)){const n=t.resolveRegistration("config:environment");"object"==typeof(e=n)&&null!==e&&"pageTitle"in e&&G$.forEach(t=>{if(!function(t){if(null==t)return!0;if(!ur(t)&&"number"==typeof t.size)return!t.size;if("object"==typeof t){let e=hr(t,"size");if("number"==typeof e)return!e;let n=hr(t,"length");if("number"==typeof n)return!n}return"number"==typeof t.length&&"function"!=typeof t&&!t.length}(n.pageTitle[t])){const e=n.pageTitle[t];this._defaultConfig[t]=e}})}var e;this.router.on(H$,this.scheduleTitleUpdate)}applyTokenDefaults(t){const e=this._defaultConfig.separator,n=this._defaultConfig.prepend,r=this._defaultConfig.replace;t.previous??=null,t.next??=null,null==t.separator&&(t.separator=e),null==t.prepend&&null!=n&&(t.prepend=n),null==t.replace&&null!=r&&(t.replace=r)}inheritFromPrevious(t){const e=t.previous;e&&(null==t.separator&&(t.separator=e.separator),null==t.prepend&&(t.prepend=e.prepend))}push(t){const e=this._findTokenById(t.id);if(e){const n=this.tokens.indexOf(e),r=[...this.tokens];return t.previous=e.previous,t.next=e.next,this.inheritFromPrevious(t),this.applyTokenDefaults(t),r.splice(n,1,t),void(this.tokens=r)}const n=this.tokens.slice(-1)[0];n&&(t.previous=n??null,n.next=t,this.inheritFromPrevious(t)),this.applyTokenDefaults(t),this.tokens=[...this.tokens,t]}remove(t){const e=this._findTokenById(t);if(!e)return;const{next:n,previous:r}=e;n&&(n.previous=r),r&&(r.next=n),e.previous=e.next=null;const i=[...this.tokens];i.splice(i.indexOf(e),1),this.tokens=i}get visibleTokens(){const t=this.tokens;let e=t?t.length:0;const n=[];for(;e--;){const r=t[e];if(r){if(r.replace){n.unshift(r);break}n.unshift(r)}}return n}get sortedTokens(){const t=this.visibleTokens;if(!t)return[];let e=!0,n=[];const r=[n],i=[];return t.forEach(t=>{t.front?i.unshift(t):t.prepend?(e&&(e=!1,n=[],r.push(n)),n.unshift(t)):(e||(e=!0,n=[],r.push(n)),n.push(t))}),i.concat(r.reduce((t,e)=>t.concat(e),[]))}toString(){const t=this.sortedTokens,e=[];for(let n=0,r=t.length;ne.id===t)}updateFastbootTitle(t){if(!W$)return;const e=this.document.head,n=e.childNodes;for(let s=0;sZ$}),Y$=_l.create({target:null,action:null,actionContext:null,actionContextObject:Xn("actionContext",function(){let t=hr(this,"actionContext");if("string"==typeof t){let e=hr(this,t);return void 0===e&&(e=hr(Jr.lookup,t)),e}return t}),triggerAction(t={}){let{action:e,target:n,actionContext:r}=t;e=e||hr(this,"action"),n=n||function(t){let e=hr(t,"target");if(e){if("string"==typeof e){let n=hr(t,e);return void 0===n&&(n=hr(Jr.lookup,e)),n}return e}return t._target?t._target:null}(this),void 0===r&&(r=hr(this,"actionContextObject")||this);let i=Array.isArray(r)?r:[r];if(n&&e){let t;if(t=null!=(s=n)&&"object"==typeof s&&"function"==typeof s.send?n.send(e,...i):n[e](...i),!1!==t)return!0}var s;return!1}}),X$=_l.create({send(t,...e){let n=this.actions&&this.actions[t];if(n&&!0!==n.apply(this,e))return;let r=hr(this,"target");r&&r.send(...arguments)}}),J$=Object.freeze({appendChild(){throw new Error("You can't use appendChild outside of the rendering process")},handleEvent:()=>!0,rerender(){},destroy(){}}),Q$=Object.freeze({...J$}),tq=Object.freeze({...J$,rerender(t){t.renderer.rerender()},destroy(t){t.renderer.remove(t)},handleEvent:(t,e,n)=>!t.has(e)||uv(0,0,()=>xs(t,t.trigger,e,n))}),eq=Object.freeze({...tq,enter(t){t.renderer.register(t)}}),nq=Object.freeze({...J$,appendChild(){throw new Error("You can't call appendChild on a view being destroyed")},rerender(){throw new Error("You can't call rerender on a view being destroyed")}}),rq=Object.freeze({preRender:Q$,inDOM:eq,hasElement:tq,destroying:nq}),iq=class extends(Xc.extend(bc,kl)){isView=!0;_superTrigger;_superHas;init(t){super.init(t),this._superTrigger=this.trigger,this.trigger=this._trigger,this._superHas=this.has,this.has=this._has,this.parentView??=null,this._state="preRender",this._currentState=this._states.preRender}static{Zh(this.prototype,"renderer",[qr("renderer","-dom")])}#Wt=void Yh(this,"renderer");instrumentDetails(t){return t.object=this.toString(),t.containerKey=this._debugContainerKey,t.view=this,t}_trigger(t,...e){this._superTrigger(t,...e);let n=this[t];if("function"==typeof n)return n.apply(this,e)}_has(t){return"function"==typeof this[t]||this._superHas(t)}static isViewFactory=!0};iq.prototype._states=rq;var sq=a({Input:()=>c_,Textarea:()=>d_,capabilities:()=>cb,default:()=>lq,getComponentTemplate:()=>Np,setComponentManager:()=>cq,setComponentTemplate:()=>Op}),oq=new WeakMap,aq=Object.freeze([]),lq=class extends(iq.extend(Y$,X$,{didReceiveAttrs(){},didRender(){},didUpdate(){},didUpdateAttrs(){},willRender(){},willUpdate(){}},{concatenatedProperties:["attributeBindings","classNames","classNameBindings"],classNames:aq,classNameBindings:aq})){isComponent=!0;init(t){super.init(t),this._superRerender=this.rerender,this.rerender=this._rerender,this[Lv]=!1,this[Tv]=gt(),this[Iv]=null;const e=this._dispatcher;if(e){let t=oq.get(e);t||(t=new WeakSet,oq.set(e,t));let n=Object.getPrototypeOf(this);t.has(n)||(e.lazyEvents.forEach((t,n)=>{null!==t&&"function"==typeof this[t]&&e.setupHandlerForBrowserEvent(n)}),t.add(n))}this.elementId||""===this.tagName||(this.elementId=ll(this))}__dispatcher;get _dispatcher(){if(void 0===this.__dispatcher){let t=Br(this);if(t.lookup("-environment:main").isInteractive){let e=t.lookup("event_dispatcher:main");this.__dispatcher=e}else this.__dispatcher=null}return this.__dispatcher}on(t,e,n){return this._dispatcher?.setupHandlerForEmberEvent(t),super.on(t,e,n)}_rerender(){pt(this[Tv]),this._superRerender()}[Bn](t,e){if(this[Lv])return;let n=Rv.get(this),r=void 0!==n?n[t]:void 0;void 0!==r&&we(r)&&xe(r,2===arguments.length?e:hr(this,t))}getAttr(t){return this.get(t)}readDOMAttr(t){let e=Ql(this),n="http://www.w3.org/2000/svg"===e.namespaceURI,{type:r,normalized:i}=Sg(e,t);return n||"attr"===r?e.getAttribute(i):e[i]}get childViews(){return sc(this)}static{Kh(this.prototype,"childViews",[S({configurable:!1,enumerable:!1})])}appendChild(t){oc(this,t)}_transitionTo(t){let e=this._currentState,n=this._currentState=this._states[t];this._state=t,e&&e.exit&&e.exit(this),n.enter&&n.enter(this)}nearestOfType(t){let e=this.parentView;for(;e;){if(t.detect(e.constructor))return e;e=e.parentView}}nearestWithProperty(t){let e=this.parentView;for(;e;){if(t in e)return e;e=e.parentView}}rerender(){return this._currentState.rerender(this)}get element(){return this.renderer.getElement(this)}static{Kh(this.prototype,"element",[S({configurable:!1,enumerable:!1})])}appendTo(t){let e;return e=Ao&&"string"==typeof t?document.querySelector(t):t,this.renderer.appendTo(this,e),this}append(){return this.appendTo(document.body)}willInsertElement(){return this}didInsertElement(){return this}willClearRender(){return this}destroy(){return super.destroy(),this._currentState.destroy(this),this}willDestroyElement(){return this}didDestroyElement(){return this}parentViewDidChange(){return this}handleEvent(t,e){return this._currentState.handleEvent(this,t,e)}static isComponentFactory=!0;static toString(){return"@ember/component"}};function cq(t,e){return mb(t,e)}lq.reopenClass({positionalParams:[]}),Fu(Fv,lq);var uq=a({default:()=>vq}),hq=new WeakMap,dq=new WeakMap,pq=class{constructor(t,e){this.args=e,hq.set(this,!1),dq.set(this,!1)}args;get isDestroying(){return hq.get(this)||!1}get isDestroyed(){return dq.get(this)||!1}willDestroy(){}},fq=class{owner;constructor(t){this.owner=t}createComponent(t,e){return new t(this.owner,e.named)}getContext(t){return t}},gq=cb(0,{destructor:!0,asyncLifecycleCallbacks:!1,updateHook:!1});function mq(t){t.isDestroyed||(nt(t),function(t){dq.set(t,!0)}(t))}var yq=class extends fq{capabilities=gq;destroyComponent(t){t.isDestroying||(function(t){hq.set(t,!0)}(t),Es("actions",t,t.willDestroy),Es("destroy",this,mq,t))}},vq=class extends pq{constructor(t,e){super(t,e),$r(this,t)}};cq(t=>new yq(t),vq);var bq=yb,wq=class extends vq{get svg(){return c$(this.args.name)}get size(){return this.args.size||16}get color(){return this.args.color||"#898989"}get style(){return qv(`width:${this.size}px;height:${this.size}px;color:${this.color}`)}get title(){return this.args.title||""}get isFilled(){return this.args.filled||u$(this.args.name)}static{Op(ig({id:null,block:'[[[41,[30,0,["svg"]],[[[1," "],[10,1],[15,0,[29,["icon ",[52,[30,0,["isFilled"]],"icon-filled"]]]],[15,5,[30,0,["style"]]],[15,"title",[30,0,["title"]]],[12],[1,"\\n "],[1,[28,[32,0],[[30,0,["svg"]]],null]],[1,"\\n "],[13],[1,"\\n"]],[]],null]],[],["if"]]',moduleName:"(unknown template module)",scope:()=>({htmlSafe:qv}),isStrictMode:!0}),this)}};function _q(t){return $t(t.argsCache)}var xq=class{argsCache;constructor(t,e=()=>ly){let n=Bt(()=>e(t));this.argsCache=n}get named(){return _q(this).named||oy}get positional(){return _q(this).positional||ay}};function Cq(t,e,n){const r=Ur(t),i=Nu(e).getDelegateFor(r);let s,o=new xq(t,n),a=i.createHelper(e,o);if(!_u(i))throw new Error("TODO: unreachable, to be implemented with hasScheduledEffect");return s=Bt(()=>i.getValue(a)),tt(t,s),xu(i)&&tt(s,i.getDestroyable(a)),s}function Sq(t,e){return t===e}function kq(t,e){return t!==e}function Eq(t,e){return t>e}function Rq(t,e){return t>=e}function Tq(t,e){return tge(()=>{let e;for(let n=0;nge(()=>{let e;for(let n=0;n!B(t[0]),Aq={createInstance:!0,wrapped:!0},Oq=new class{getCapabilities(){return Aq}getDebugName(t){return`(element "${t.tagName}")`}getSelf(){return ue}getDestroyable(){return null}didCreateElement(){}create(t,e){return e.tagName||null}getTagName(t){return t}didRenderLayout(){}didUpdateLayout(){}didCreate(){}didUpdate(){}},Nq=class{constructor(t){this.tagName=t}toString(){return`(element "${this.tagName}")`}};Fu(Oq,Nq.prototype);var Fq=new Map;Bv(({positional:t,named:e})=>ge(()=>function(t){let e=Fq.get(t);return void 0===e&&(e=new Nq(t),Fq.set(t,e)),e}(_e(t[0])),null));var zq=Hv,Dq=Eq;function jq(t){return"object"==typeof t&&t&&"isTruthy"in t&&"boolean"==typeof t.isTruthy?t.isTruthy:Pc(t)?0!==t.length:!!t}var Uq=class extends _b{compute(t){for(let e=0,n=t.length;et.tags||[]);return[...new Set(t)]}static{Op(ig({id:null,block:'[[[10,"li"],[12],[1,"\\n "],[11,"button"],[24,0,"contribution-item"],[24,4,"button"],[4,[32,0],["click",[28,[32,1],[[30,1],[30,2]],null]],null],[12],[1,"\\n "],[10,0],[14,0,"contribution-thumb"],[12],[1,"\\n"],[41,[30,0,["primaryPhoto"]],[[[1," "],[10,"img"],[15,"src",[28,[32,2],[[30,0,["primaryPhoto","thumbUrl"]],[30,0,["primaryPhoto","url"]]],null]],[15,"alt",[28,[32,2],[[30,0,["primaryPhoto","alt"]],"Place photo"],null]],[14,"loading","lazy"],[12],[13],[1,"\\n"]],[]],null],[41,[28,[32,3],[[30,0,["extraPhotoCount"]],0],null],[[[1," "],[10,1],[14,0,"contribution-thumb-badge"],[12],[1,"+"],[1,[30,0,["extraPhotoCount"]]],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n "],[10,0],[14,0,"contribution-info"],[12],[1,"\\n "],[10,0],[14,0,"contribution-place"],[12],[1,"\\n"],[41,[30,0,["placeName"]],[[[1," "],[1,[30,0,["placeName"]]],[1,"\\n"]],[]],[[[41,[30,0,["isNameLoading"]],[[[1," "],[10,1],[14,0,"contribution-name-loading"],[12],[1,"Loading…"],[13],[1,"\\n"]],[]],[[[1," "],[10,1],[14,0,"contribution-name-loading"],[12],[1,"Unnamed place"],[13],[1,"\\n "]],[]]]],[]]],[1," "],[13],[1,"\\n "],[10,0],[14,0,"contribution-meta"],[12],[1,"\\n "],[1,[28,[32,4],[[30,2,["createdAt"]]],null]],[1,"\\n"],[41,[28,[32,3],[[30,0,["item","photos","length"]],1],null],[[[1," ·\\n "],[1,[30,0,["item","photos","length"]]],[1,"\\n photos\\n"]],[]],[[[1," · 1 photo\\n"]],[]]],[1," "],[13],[1,"\\n"],[41,[30,0,["tags","length"]],[[[1," "],[10,0],[14,0,"contribution-tags"],[12],[1,"\\n"],[42,[28,[31,2],[[28,[31,2],[[30,0,["tags"]]],null]],null],null,[[[1," "],[10,1],[14,0,"contribution-tag"],[12],[1,[30,3]],[13],[1,"\\n"]],[3]],null],[1," "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n "],[13],[1,"\\n"],[13]],["@onSelect","@item","tag"],["if","each","-track-array"]]',moduleName:"(unknown template module)",scope:()=>({on:Hw,fn:zq,or:Uq,__keyword__gt:Dq,formatRelativeDate:Bq}),isStrictMode:!0}),this)}},qq=ab,Vq=Op(ig({id:null,block:'[[[11,0],[24,0,"modal-overlay"],[24,"role","dialog"],[24,"tabindex","-1"],[4,[32,0],["click",[30,1]],null],[12],[1,"\\n "],[11,0],[24,0,"modal-content"],[24,"role","document"],[24,"tabindex","0"],[4,[32,0],["click",[30,2]],null],[12],[1,"\\n "],[11,"button"],[16,0,[29,["close-modal-btn btn-text ",[52,[30,3],"disabled"]]]],[16,"disabled",[30,3]],[24,4,"button"],[4,[32,0],["click",[30,1]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["x",24,"currentColor"]],null],[1,"\\n "],[13],[1,"\\n "],[18,4,null],[1,"\\n "],[13],[1,"\\n"],[13]],["@close","@stopProp","@disableClose","&default"],["if","yield"]]',moduleName:"(unknown template module)",scope:()=>({on:Hw,Icon:wq}),isStrictMode:!0}),qq()),Wq=class extends vq{get isTesting(){return"test"===ix.environment}get shouldPortal(){return!this.isTesting&&!this.args.inline}get destinationElement(){return document.getElementById("modal-portal")||document.body}stopProp(t){t.stopPropagation()}static{$F(this.prototype,"stopProp",[Vl])}close(){this.args.disableClose||this.args.onClose&&this.args.onClose()}static{$F(this.prototype,"close",[Vl])}static{Op(ig({id:null,block:'[[[41,[30,0,["shouldPortal"]],[[[40,[[[1," "],[8,[32,0],null,[["@close","@stopProp","@disableClose"],[[30,0,["close"]],[30,0,["stopProp"]],[30,1]]],[["default"],[[[[1,"\\n "],[18,2,null],[1,"\\n "]],[]]]]],[1,"\\n"]],[]],"%cursor:0%",[28,[31,2],[[30,0,["destinationElement"]]],null]]],[]],[[[1," "],[8,[32,0],null,[["@close","@stopProp","@disableClose"],[[30,0,["close"]],[30,0,["stopProp"]],[30,1]]],[["default"],[[[[1,"\\n "],[18,2,null],[1,"\\n "]],[]]]]],[1,"\\n"]],[]]]],["@disableClose","&default"],["if","in-element","-in-el-null","yield"]]',moduleName:"(unknown template module)",scope:()=>({ModalContent:Vq}),isStrictMode:!0}),this)}},Hq=class extends _b{compute(t){for(let e=0,n=t.length;e!jq(t))}var Kq=class{capabilities=fb();constructor(t){this.owner=t}createModifier(t,e){return{instance:new t(this.owner,e),element:null}}installModifier(t,e,n){(function(t,e){const n=t;return n.element=e,n})(t,e).instance.modify(e,n.positional,n.named)}updateModifier(t,e){t.instance.modify(t.element,e.positional,e.named)}destroyModifier({instance:t}){nt(t)}};bq(t=>new Kq(t),class{constructor(t,e){X_(this,t)}modify(t,e,n){}});var Yq=new class{capabilities=fb();createModifier(t){return{element:null,instance:t}}installModifier(t,e,n){const r=function(t,e){const n=t;return n.element=e,n}(t,e),{positional:i,named:s}=n,o=t.instance(e,i,s);"function"==typeof o&&(r.teardown=o)}updateModifier(t,e){"function"==typeof t.teardown&&t.teardown();const n=t.instance(t.element,e.positional,e.named);"function"==typeof n&&(t.teardown=n)}destroyModifier(t){"function"==typeof t.teardown&&t.teardown()}getDebugName(t){return t.instance.toString()}getDebugInstance(t){return t}};function Xq(t,e){return t.toString=()=>e?.name||t.name,bq(()=>Yq,t)}var Jq=o((t,e)=>{e.exports=function(){return"function"==typeof Promise&&Promise.prototype&&Promise.prototype.then}}),Qq=o(t=>{var e,n=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];t.getSymbolSize=function(t){if(!t)throw new Error('"version" cannot be null or undefined');if(t<1||t>40)throw new Error('"version" should be in range from 1 to 40');return 4*t+17},t.getSymbolTotalCodewords=function(t){return n[t]},t.getBCHDigit=function(t){let e=0;for(;0!==t;)e++,t>>>=1;return e},t.setToSJISFunction=function(t){if("function"!=typeof t)throw new Error('"toSJISFunc" is not a valid function.');e=t},t.isKanjiModeEnabled=function(){return void 0!==e},t.toSJIS=function(t){return e(t)}}),tV=o(t=>{t.L={bit:1},t.M={bit:0},t.Q={bit:3},t.H={bit:2},t.isValid=function(t){return t&&void 0!==t.bit&&t.bit>=0&&t.bit<4},t.from=function(e,n){if(t.isValid(e))return e;try{return function(e){if("string"!=typeof e)throw new Error("Param is not a string");switch(e.toLowerCase()){case"l":case"low":return t.L;case"m":case"medium":return t.M;case"q":case"quartile":return t.Q;case"h":case"high":return t.H;default:throw new Error("Unknown EC Level: "+e)}}(e)}catch(r){return n}}}),eV=o((t,e)=>{function n(){this.buffer=[],this.length=0}n.prototype={get:function(t){const e=Math.floor(t/8);return 1==(this.buffer[e]>>>7-t%8&1)},put:function(t,e){for(let n=0;n>>e-n-1&1))},getLengthInBits:function(){return this.length},putBit:function(t){const e=Math.floor(this.length/8);this.buffer.length<=e&&this.buffer.push(0),t&&(this.buffer[e]|=128>>>this.length%8),this.length++}},e.exports=n}),nV=o((t,e)=>{function n(t){if(!t||t<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=t,this.data=new Uint8Array(t*t),this.reservedBit=new Uint8Array(t*t)}n.prototype.set=function(t,e,n,r){const i=t*this.size+e;this.data[i]=n,r&&(this.reservedBit[i]=!0)},n.prototype.get=function(t,e){return this.data[t*this.size+e]},n.prototype.xor=function(t,e,n){this.data[t*this.size+e]^=n},n.prototype.isReserved=function(t,e){return this.reservedBit[t*this.size+e]},e.exports=n}),rV=o(t=>{var e=Qq().getSymbolSize;t.getRowColCoords=function(t){if(1===t)return[];const n=Math.floor(t/7)+2,r=e(t),i=145===r?26:2*Math.ceil((r-13)/(2*n-2)),s=[r-7];for(let e=1;e{var e=Qq().getSymbolSize;t.getPositions=function(t){const n=e(t);return[[0,0],[n-7,0],[0,n-7]]}}),sV=o(t=>{function e(e,n,r){switch(e){case t.Patterns.PATTERN000:return(n+r)%2==0;case t.Patterns.PATTERN001:return n%2==0;case t.Patterns.PATTERN010:return r%3==0;case t.Patterns.PATTERN011:return(n+r)%3==0;case t.Patterns.PATTERN100:return(Math.floor(n/2)+Math.floor(r/3))%2==0;case t.Patterns.PATTERN101:return n*r%2+n*r%3==0;case t.Patterns.PATTERN110:return(n*r%2+n*r%3)%2==0;case t.Patterns.PATTERN111:return(n*r%3+(n+r)%2)%2==0;default:throw new Error("bad maskPattern:"+e)}}t.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7},t.isValid=function(t){return null!=t&&""!==t&&!isNaN(t)&&t>=0&&t<=7},t.from=function(e){return t.isValid(e)?parseInt(e,10):void 0},t.getPenaltyN1=function(t){const e=t.size;let n=0,r=0,i=0,s=null,o=null;for(let a=0;a=5&&(n+=r-5+3),s=e,r=1),e=t.get(l,a),e===o?i++:(i>=5&&(n+=i-5+3),o=e,i=1)}r>=5&&(n+=r-5+3),i>=5&&(n+=i-5+3)}return n},t.getPenaltyN2=function(t){const e=t.size;let n=0;for(let r=0;r=10&&(1488===r||93===r)&&n++,i=i<<1&2047|t.get(o,s),o>=10&&(1488===i||93===i)&&n++}return 40*n},t.getPenaltyN4=function(t){let e=0;const n=t.data.length;for(let r=0;r{var e=tV(),n=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],r=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];t.getBlocksCount=function(t,r){switch(r){case e.L:return n[4*(t-1)+0];case e.M:return n[4*(t-1)+1];case e.Q:return n[4*(t-1)+2];case e.H:return n[4*(t-1)+3];default:return}},t.getTotalCodewordsCount=function(t,n){switch(n){case e.L:return r[4*(t-1)+0];case e.M:return r[4*(t-1)+1];case e.Q:return r[4*(t-1)+2];case e.H:return r[4*(t-1)+3];default:return}}}),aV=o(t=>{var e=new Uint8Array(512),n=new Uint8Array(256);!function(){let t=1;for(let r=0;r<255;r++)e[r]=t,n[t]=r,t<<=1,256&t&&(t^=285);for(let n=255;n<512;n++)e[n]=e[n-255]}(),t.log=function(t){if(t<1)throw new Error("log("+t+")");return n[t]},t.exp=function(t){return e[t]},t.mul=function(t,r){return 0===t||0===r?0:e[n[t]+n[r]]}}),lV=o(t=>{var e=aV();t.mul=function(t,n){const r=new Uint8Array(t.length+n.length-1);for(let i=0;i=0;){const t=r[0];for(let s=0;s{var n=lV();function r(t){this.genPoly=void 0,this.degree=t,this.degree&&this.initialize(this.degree)}r.prototype.initialize=function(t){this.degree=t,this.genPoly=n.generateECPolynomial(this.degree)},r.prototype.encode=function(t){if(!this.genPoly)throw new Error("Encoder not initialized");const e=new Uint8Array(t.length+this.degree);e.set(t);const r=n.mod(e,this.genPoly),i=this.degree-r.length;if(i>0){const t=new Uint8Array(this.degree);return t.set(r,i),t}return r},e.exports=r}),uV=o(t=>{t.isValid=function(t){return!isNaN(t)&&t>=1&&t<=40}}),hV=o(t=>{var e="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+",n="(?:(?![A-Z0-9 $%*+\\-./:]|"+(e=e.replace(/u/g,"\\u"))+")(?:.|[\r\n]))+";t.KANJI=new RegExp(e,"g"),t.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),t.BYTE=new RegExp(n,"g"),t.NUMERIC=new RegExp("[0-9]+","g"),t.ALPHANUMERIC=new RegExp("[A-Z $%*+\\-./:]+","g");var r=new RegExp("^"+e+"$"),i=new RegExp("^[0-9]+$"),s=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");t.testKanji=function(t){return r.test(t)},t.testNumeric=function(t){return i.test(t)},t.testAlphanumeric=function(t){return s.test(t)}}),dV=o(t=>{var e=uV(),n=hV();t.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},t.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},t.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},t.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},t.MIXED={bit:-1},t.getCharCountIndicator=function(t,n){if(!t.ccBits)throw new Error("Invalid mode: "+t);if(!e.isValid(n))throw new Error("Invalid version: "+n);return n>=1&&n<10?t.ccBits[0]:n<27?t.ccBits[1]:t.ccBits[2]},t.getBestModeForData=function(e){return n.testNumeric(e)?t.NUMERIC:n.testAlphanumeric(e)?t.ALPHANUMERIC:n.testKanji(e)?t.KANJI:t.BYTE},t.toString=function(t){if(t&&t.id)return t.id;throw new Error("Invalid mode")},t.isValid=function(t){return t&&t.bit&&t.ccBits},t.from=function(e,n){if(t.isValid(e))return e;try{return function(e){if("string"!=typeof e)throw new Error("Param is not a string");switch(e.toLowerCase()){case"numeric":return t.NUMERIC;case"alphanumeric":return t.ALPHANUMERIC;case"kanji":return t.KANJI;case"byte":return t.BYTE;default:throw new Error("Unknown mode: "+e)}}(e)}catch(r){return n}}}),pV=o(t=>{var e=Qq(),n=oV(),r=tV(),i=dV(),s=uV(),o=e.getBCHDigit(7973);function a(t,e){return i.getCharCountIndicator(t,e)+4}function l(t,e){let n=0;return t.forEach(function(t){const r=a(t.mode,e);n+=r+t.getBitsLength()}),n}t.from=function(t,e){return s.isValid(t)?parseInt(t,10):e},t.getCapacity=function(t,r,o){if(!s.isValid(t))throw new Error("Invalid QR Code version");void 0===o&&(o=i.BYTE);const l=8*(e.getSymbolTotalCodewords(t)-n.getTotalCodewordsCount(t,r));if(o===i.MIXED)return l;const c=l-a(o,t);switch(o){case i.NUMERIC:return Math.floor(c/10*3);case i.ALPHANUMERIC:return Math.floor(c/11*2);case i.KANJI:return Math.floor(c/13);case i.BYTE:default:return Math.floor(c/8)}},t.getBestVersionForData=function(e,n){let s;const o=r.from(n,r.M);if(Array.isArray(e)){if(e.length>1)return function(e,n){for(let r=1;r<=40;r++)if(l(e,r)<=t.getCapacity(r,n,i.MIXED))return r}(e,o);if(0===e.length)return 1;s=e[0]}else s=e;return function(e,n,r){for(let i=1;i<=40;i++)if(n<=t.getCapacity(i,r,e))return i}(s.mode,s.getLength(),o)},t.getEncodedBits=function(t){if(!s.isValid(t)||t<7)throw new Error("Invalid QR Code version");let n=t<<12;for(;e.getBCHDigit(n)-o>=0;)n^=7973<{var e=Qq(),n=e.getBCHDigit(1335);t.getEncodedBits=function(t,r){const i=t.bit<<3|r;let s=i<<10;for(;e.getBCHDigit(s)-n>=0;)s^=1335<{var n=dV();function r(t){this.mode=n.NUMERIC,this.data=t.toString()}r.getBitsLength=function(t){return 10*Math.floor(t/3)+(t%3?t%3*3+1:0)},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(t){let e,n,r;for(e=0;e+3<=this.data.length;e+=3)n=this.data.substr(e,3),r=parseInt(n,10),t.put(r,10);const i=this.data.length-e;i>0&&(n=this.data.substr(e),r=parseInt(n,10),t.put(r,3*i+1))},e.exports=r}),mV=o((t,e)=>{var n=dV(),r=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function i(t){this.mode=n.ALPHANUMERIC,this.data=t}i.getBitsLength=function(t){return 11*Math.floor(t/2)+t%2*6},i.prototype.getLength=function(){return this.data.length},i.prototype.getBitsLength=function(){return i.getBitsLength(this.data.length)},i.prototype.write=function(t){let e;for(e=0;e+2<=this.data.length;e+=2){let n=45*r.indexOf(this.data[e]);n+=r.indexOf(this.data[e+1]),t.put(n,11)}this.data.length%2&&t.put(r.indexOf(this.data[e]),6)},e.exports=i}),yV=o((t,e)=>{var n=dV();function r(t){this.mode=n.BYTE,this.data="string"==typeof t?(new TextEncoder).encode(t):new Uint8Array(t)}r.getBitsLength=function(t){return 8*t},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(t){for(let e=0,n=this.data.length;e{var n=dV(),r=Qq();function i(t){this.mode=n.KANJI,this.data=t}i.getBitsLength=function(t){return 13*t},i.prototype.getLength=function(){return this.data.length},i.prototype.getBitsLength=function(){return i.getBitsLength(this.data.length)},i.prototype.write=function(t){let e;for(e=0;e=33088&&n<=40956)n-=33088;else{if(!(n>=57408&&n<=60351))throw new Error("Invalid SJIS character: "+this.data[e]+"\nMake sure your charset is UTF-8");n-=49472}n=192*(n>>>8&255)+(255&n),t.put(n,13)}},e.exports=i}),bV=o((t,e)=>{var n={single_source_shortest_paths:function(t,e,r){var i={},s={};s[e]=0;var o,a,l,c,u,h,d,p=n.PriorityQueue.make();for(p.push(e,0);!p.empty();)for(l in a=(o=p.pop()).value,c=o.cost,u=t[a]||{})u.hasOwnProperty(l)&&(h=c+u[l],d=s[l],(void 0===s[l]||d>h)&&(s[l]=h,p.push(l,h),i[l]=a));if(void 0!==r&&void 0===s[r]){var f=["Could not find a path from ",e," to ",r,"."].join("");throw new Error(f)}return i},extract_shortest_path_from_predecessor_list:function(t,e){for(var n=[],r=e;r;)n.push(r),t[r],r=t[r];return n.reverse(),n},find_path:function(t,e,r){var i=n.single_source_shortest_paths(t,e,r);return n.extract_shortest_path_from_predecessor_list(i,r)},PriorityQueue:{make:function(t){var e,r=n.PriorityQueue,i={};for(e in t=t||{},r)r.hasOwnProperty(e)&&(i[e]=r[e]);return i.queue=[],i.sorter=t.sorter||r.default_sorter,i},default_sorter:function(t,e){return t.cost-e.cost},push:function(t,e){var n={value:t,cost:e};this.queue.push(n),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return 0===this.queue.length}}};void 0!==e&&(e.exports=n)}),wV=o(t=>{var e=dV(),n=gV(),r=mV(),i=yV(),s=vV(),o=hV(),a=Qq(),l=bV();function c(t){return unescape(encodeURIComponent(t)).length}function u(t,e,n){const r=[];let i;for(;null!==(i=t.exec(n));)r.push({data:i[0],index:i.index,mode:e,length:i[0].length});return r}function h(t){const n=u(o.NUMERIC,e.NUMERIC,t),r=u(o.ALPHANUMERIC,e.ALPHANUMERIC,t);let i,s;return a.isKanjiModeEnabled()?(i=u(o.BYTE,e.BYTE,t),s=u(o.KANJI,e.KANJI,t)):(i=u(o.BYTE_KANJI,e.BYTE,t),s=[]),n.concat(r,i,s).sort(function(t,e){return t.index-e.index}).map(function(t){return{data:t.data,mode:t.mode,length:t.length}})}function d(t,o){switch(o){case e.NUMERIC:return n.getBitsLength(t);case e.ALPHANUMERIC:return r.getBitsLength(t);case e.KANJI:return s.getBitsLength(t);case e.BYTE:return i.getBitsLength(t)}}function p(t,o){let l;const c=e.getBestModeForData(t);if(l=e.from(o,c),l!==e.BYTE&&l.bit=0?t[t.length-1]:null;return n&&n.mode===e.mode?(t[t.length-1].data+=e.data,t):(t.push(e),t)},[]))},t.rawSplit=function(e){return t.fromArray(h(e,a.isKanjiModeEnabled()))}}),_V=o(t=>{var e=Qq(),n=tV(),r=eV(),i=nV(),s=rV(),o=iV(),a=sV(),l=oV(),c=cV(),u=pV(),h=fV(),d=dV(),p=wV();function f(t,e,n){const r=t.size,i=h.getEncodedBits(e,n);let s,o;for(s=0;s<15;s++)o=1==(i>>s&1),s<6?t.set(s,8,o,!0):s<8?t.set(s+1,8,o,!0):t.set(r-15+s,8,o,!0),s<8?t.set(8,r-s-1,o,!0):s<9?t.set(8,15-s-1+1,o,!0):t.set(8,15-s-1,o,!0);t.set(r-8,8,1,!0)}t.create=function(t,h){if(void 0===t||""===t)throw new Error("No input text");let g,m,y=n.M;return void 0!==h&&(y=n.from(h.errorCorrectionLevel,n.M),g=u.from(h.version),m=a.from(h.maskPattern),h.toSJISFunc&&e.setToSJISFunction(h.toSJISFunc)),function(t,n,h,g){let m;if(Array.isArray(t))m=p.fromArray(t);else{if("string"!=typeof t)throw new Error("Invalid data");{let e=n;if(!e){const n=p.rawSplit(t);e=u.getBestVersionForData(n,h)}m=p.fromString(t,e||40)}}const y=u.getBestVersionForData(m,h);if(!y)throw new Error("The amount of data is too big to be stored in a QR Code");if(n){if(n=0&&r<=6&&(0===i||6===i)||i>=0&&i<=6&&(0===r||6===r)||r>=2&&r<=4&&i>=2&&i<=4?t.set(e+r,s+i,!0,!0):t.set(e+r,s+i,!1,!0))}}(w,n),function(t){const e=t.size;for(let n=8;n=7&&function(t,e){const n=t.size,r=u.getEncodedBits(e);let i,s,o;for(let a=0;a<18;a++)i=Math.floor(a/3),s=a%3+n-8-3,o=1==(r>>a&1),t.set(i,s,o,!0),t.set(s,i,o,!0)}(w,n),function(t,e){const n=t.size;let r=-1,i=n-1,s=7,o=0;for(let a=n-1;a>0;a-=2)for(6===a&&a--;;){for(let n=0;n<2;n++)if(!t.isReserved(i,a-n)){let r=!1;o>>s&1)),t.set(i,a-n,r),s--,-1===s&&(o++,s=7)}if(i+=r,i<0||n<=i){i-=r,r=-r;break}}}(w,v),isNaN(g)&&(g=a.getBestMask(w,f.bind(null,w,h))),a.applyMask(g,w),f(w,h,g),{modules:w,version:n,errorCorrectionLevel:h,maskPattern:g,segments:m}}(t,g,y,m)}}),xV=o(t=>{function e(t){if("number"==typeof t&&(t=t.toString()),"string"!=typeof t)throw new Error("Color should be defined as hex string");let e=t.slice().replace("#","").split("");if(e.length<3||5===e.length||e.length>8)throw new Error("Invalid hex color: "+t);3!==e.length&&4!==e.length||(e=Array.prototype.concat.apply([],e.map(function(t){return[t,t]}))),6===e.length&&e.push("F","F");const n=parseInt(e.join(""),16);return{r:n>>24&255,g:n>>16&255,b:n>>8&255,a:255&n,hex:"#"+e.slice(0,6).join("")}}t.getOptions=function(t){t||(t={}),t.color||(t.color={});const n=void 0===t.margin||null===t.margin||t.margin<0?4:t.margin,r=t.width&&t.width>=21?t.width:void 0,i=t.scale||4;return{width:r,scale:r?4:i,margin:n,color:{dark:e(t.color.dark||"#000000ff"),light:e(t.color.light||"#ffffffff")},type:t.type,rendererOpts:t.rendererOpts||{}}},t.getScale=function(t,e){return e.width&&e.width>=t+2*e.margin?e.width/(t+2*e.margin):e.scale},t.getImageWidth=function(e,n){const r=t.getScale(e,n);return Math.floor((e+2*n.margin)*r)},t.qrToImageData=function(e,n,r){const i=n.modules.size,s=n.modules.data,o=t.getScale(i,r),a=Math.floor((i+2*r.margin)*o),l=r.margin*o,c=[r.color.light,r.color.dark];for(let t=0;t=l&&n>=l&&t{var e=xV();t.render=function(t,n,r){let i=r,s=n;void 0!==i||n&&n.getContext||(i=n,n=void 0),n||(s=function(){try{return document.createElement("canvas")}catch(t){throw new Error("You need to specify a canvas element")}}()),i=e.getOptions(i);const o=e.getImageWidth(t.modules.size,i),a=s.getContext("2d"),l=a.createImageData(o,o);return e.qrToImageData(l.data,t,i),function(t,e,n){t.clearRect(0,0,e.width,e.height),e.style||(e.style={}),e.height=n,e.width=n,e.style.height=n+"px",e.style.width=n+"px"}(a,s,o),a.putImageData(l,0,0),s},t.renderToDataURL=function(e,n,r){let i=r;void 0!==i||n&&n.getContext||(i=n,n=void 0),i||(i={});const s=t.render(e,n,i),o=i.type||"image/png",a=i.rendererOpts||{};return s.toDataURL(o,a.quality)}}),SV=o(t=>{var e=xV();function n(t,e){const n=t.a/255,r=e+'="'+t.hex+'"';return n<1?r+" "+e+'-opacity="'+n.toFixed(2).slice(1)+'"':r}function r(t,e,n){let r=t+e;return void 0!==n&&(r+=" "+n),r}t.render=function(t,i,s){const o=e.getOptions(i),a=t.modules.size,l=t.modules.data,c=a+2*o.margin,u=o.color.light.a?"':"",h="0&&c>0&&t[l-1]||(i+=o?r("M",c+n,.5+u+n):r("m",s,0),s=0,o=!1),c+1',d='viewBox="0 0 '+c+" "+c+'"',p=''+u+h+"\n";return"function"==typeof s&&s(null,p),p}}),kV=o(t=>{var e=Jq(),n=_V(),r=CV(),i=SV();function s(t,r,i,s,o){const a=[].slice.call(arguments,1),l=a.length,c="function"==typeof a[l-1];if(!c&&!e())throw new Error("Callback required as last argument");if(!c){if(l<1)throw new Error("Too few arguments provided");return 1===l?(i=r,r=s=void 0):2!==l||r.getContext||(s=i,i=r,r=void 0),new Promise(function(e,o){try{e(t(n.create(i,s),r,s))}catch(a){o(a)}})}if(l<2)throw new Error("Too few arguments provided");2===l?(o=i,i=r,r=s=void 0):3===l&&(r.getContext&&void 0===o?(o=s,s=void 0):(o=s,s=i,i=r,r=void 0));try{const e=n.create(i,s);o(null,t(e,r,s))}catch(u){o(u)}}t.create=n.create,t.toCanvas=s.bind(null,r.render),t.toDataURL=s.bind(null,r.renderToDataURL),t.toString=s.bind(null,function(t,e,n){return i.render(t,n)})}),EV=c(kV(),1),RV=Xq((t,[e])=>{e&&EV.toCanvas(t,e,{width:256,margin:2,color:{dark:"#000000",light:"#ffffff"}}).catch(t=>{console.error("Failed to generate QR code",t)})}),TV=class extends vq{static{BF(this.prototype,"nostrAuth",[pp])}#N=void qF(this,"nostrAuth");static{BF(this.prototype,"toast",[pp])}#Mt=void qF(this,"toast");get hasExtension(){return"undefined"!=typeof window&&void 0!==window.nostr}async connectExtension(){try{await this.nostrAuth.connectWithExtension(),this.toast.show("Nostr connected successfully"),this.args.onConnect&&this.args.onConnect()}catch(t){console.error(t),alert(t.message)}}static{$F(this.prototype,"connectExtension",[Vl])}async connectApp(){try{await this.nostrAuth.connectWithApp(),this.toast.show("Nostr connected successfully"),this.args.onConnect&&this.args.onConnect()}catch(t){console.error(t),alert(t.message)}}static{$F(this.prototype,"connectApp",[Vl])}async copyConnectUri(){const t=this.nostrAuth.connectUri;try{if(navigator.clipboard&&window.isSecureContext)await navigator.clipboard.writeText(t);else{const e=document.createElement("textarea");e.value=t,e.style.position="fixed",e.style.top="0",e.style.left="0",e.style.opacity="0",document.body.appendChild(e),e.focus(),e.select();const n=document.execCommand("copy");if(document.body.removeChild(e),!n)throw new Error("Fallback copy failed")}this.toast.show("Connection link copied to clipboard")}catch(nD){console.error("Failed to copy text: ",nD),alert("Failed to copy link")}}static{$F(this.prototype,"copyConnectUri",[Vl])}static{Op(ig({id:null,block:'[[[10,0],[14,0,"nostr-connect-modal"],[12],[1,"\\n "],[10,"h2"],[12],[1,"Connect with Nostr"],[13],[1,"\\n\\n "],[10,0],[14,0,"nostr-connect-options"],[12],[1,"\\n"],[41,[30,0,["hasExtension"]],[[[1," "],[11,"button"],[24,0,"btn btn-primary"],[24,4,"button"],[4,[32,0],["click",[30,0,["connectExtension"]]],null],[12],[1,"\\n Browser Extension (nos2x, Alby)\\n "],[13],[1,"\\n"]],[]],[[[1," "],[10,"button"],[14,0,"btn btn-outline"],[14,"disabled",""],[14,"title","No Nostr extension found in your browser"],[14,4,"button"],[12],[1,"\\n Browser Extension (Not Found)\\n "],[13],[1,"\\n"]],[]]],[1,"\\n "],[11,"button"],[24,0,"btn btn-primary"],[24,4,"button"],[4,[32,0],["click",[30,0,["connectApp"]]],null],[12],[1,"\\n Mobile Signer App (Amber, etc.)\\n "],[13],[1,"\\n "],[13],[1,"\\n\\n"],[41,[28,[32,1],[[30,0,["nostrAuth","connectStatus"]],"waiting"],null],[[[1," "],[10,0],[14,0,"nostr-connect-status"],[12],[1,"\\n"],[41,[30,0,["nostrAuth","isMobile"]],[[[1," "],[10,2],[12],[1,"Waiting for you to approve the connection in your mobile signer\\n app..."],[13],[1,"\\n "],[10,0],[14,0,"mobile-connect-actions"],[12],[1,"\\n "],[10,3],[15,6,[30,0,["nostrAuth","connectUri"]]],[14,0,"btn btn-primary"],[12],[1,"\\n Open Signer App\\n "],[13],[1,"\\n "],[11,"button"],[24,0,"btn btn-outline"],[24,4,"button"],[4,[32,0],["click",[30,0,["copyConnectUri"]]],null],[12],[1,"\\n Copy Connection Link\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],[[[1," "],[10,2],[12],[1,"Scan this QR code with a Nostr signer app (like Amber):"],[13],[1,"\\n "],[10,0],[14,0,"qr-code-container"],[12],[1,"\\n "],[11,"canvas"],[4,[32,2],[[30,0,["nostrAuth","connectUri"]]],null],[12],[13],[1,"\\n "],[13],[1,"\\n"]],[]]],[1," "],[13],[1,"\\n"]],[]],null],[13]],[],["if"]]',moduleName:"(unknown template module)",scope:()=>({on:Hw,eq:Gq,qrCode:RV}),isStrictMode:!0}),this)}},LV=Xq((t,[e])=>{t&&"number"==typeof e&&e>0&&requestAnimationFrame(()=>{t.scrollTop=e})}),IV=class extends vq{static{BF(this.prototype,"isNostrConnectModalOpen",[Wr],function(){return!1})}#Ht=void qF(this,"isNostrConnectModalOpen");openNostrConnectModal(t){t.preventDefault(),this.isNostrConnectModalOpen=!0}static{$F(this.prototype,"openNostrConnectModal",[Vl])}closeNostrConnectModal(){this.isNostrConnectModalOpen=!1}static{$F(this.prototype,"closeNostrConnectModal",[Vl])}onNostrConnected(){this.closeNostrConnectModal(),this.args.onNostrConnected?.()}static{$F(this.prototype,"onNostrConnected",[Vl])}static{Op(ig({id:null,block:'[[[10,0],[14,0,"sidebar"],[12],[1,"\\n "],[10,0],[14,0,"sidebar-header has-back-btn"],[12],[1,"\\n "],[11,"button"],[24,0,"back-btn"],[24,4,"button"],[4,[32,0],["click",[30,1]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["arrow-left",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n "],[10,"h2"],[14,0,"sidebar-header-text-centered"],[12],[1,"\\n "],[10,1],[14,0,"sidebar-header-icon-wrapper"],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["activity",20,"#898989"]],null],[1,"\\n "],[13],[1,"\\n My Contributions\\n "],[13],[1,"\\n "],[11,"button"],[24,0,"close-btn"],[24,4,"button"],[4,[32,0],["click",[30,2]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["x",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n\\n "],[11,0],[24,0,"sidebar-content"],[4,[32,2],[[30,3]],null],[12],[1,"\\n"],[41,[30,4],[[[1," "],[10,0],[14,0,"sidebar-loading"],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["loading-ring",24,"#898989"]],null],[1,"\\n "],[13],[1,"\\n"]],[]],[[[41,[28,[32,3],[[30,5]],null],[[[1," "],[10,2],[14,0,"empty-state"],[12],[1,"\\n "],[11,3],[24,6,"#"],[24,"role","button"],[24,"tabindex","0"],[4,[32,0],["click",[30,0,["openNostrConnectModal"]]],null],[12],[1,"Connect your Nostr account"],[13],[1,"\\n to see your contributions.\\n "],[13],[1,"\\n"]],[]],[[[41,[28,[32,3],[[30,6,["length"]]],null],[[[1," "],[10,2],[14,0,"empty-state"],[12],[1,"No contributions yet. Start by adding photos to\\n places."],[13],[1,"\\n"]],[]],[[[1," "],[10,"ul"],[14,0,"contributions-list"],[12],[1,"\\n"],[42,[28,[31,2],[[28,[31,2],[[30,6]],null]],null],null,[[[41,[28,[32,4],[[30,7,["type"]],"photo"],null],[[[1," "],[8,[32,5],null,[["@item","@onSelect"],[[30,7],[30,8]]],null],[1,"\\n"]],[]],null]],[7]],null],[1," "],[13],[1,"\\n "]],[]]]],[]]]],[]]],[1," "],[13],[1,"\\n"],[13],[1,"\\n\\n"],[41,[30,0,["isNostrConnectModalOpen"]],[[[1," "],[8,[32,6],null,[["@onClose"],[[30,0,["closeNostrConnectModal"]]]],[["default"],[[[[1,"\\n "],[8,[32,7],null,[["@onConnect"],[[30,0,["onNostrConnected"]]]],null],[1,"\\n "]],[]]]]],[1,"\\n"]],[]],null]],["@onBack","@onClose","@scrollTop","@isLoading","@isConnected","@items","item","@onSelect"],["if","each","-track-array"]]',moduleName:"(unknown template module)",scope:()=>({on:Hw,Icon:wq,restoreScroll:LV,not:Zq,eq:Gq,ContributionPhoto:$q,Modal:Wq,NostrConnect:TV}),isStrictMode:!0}),this)}},PV=a({default:()=>MV}),MV=Op(ig({id:null,block:'[[[41,[30,1,["mapUi","isSidebarVisible"]],[[[1," "],[8,[32,0],null,[["@items","@isLoading","@isConnected","@scrollTop","@onSelect","@onBack","@onClose","@onNostrConnected"],[[30,1,["items"]],[30,1,["loadContributionsTask","isRunning"]],[30,1,["isConnected"]],[30,1,["scrollTop"]],[30,1,["selectContribution"]],[30,1,["backToMenu"]],[30,1,["close"]],[30,1,["onNostrConnected"]]]],null],[1,"\\n"]],[]],null]],["@controller"],["if"]]',moduleName:"(unknown template module)",scope:()=>({ContributionsTimeline:IV}),isStrictMode:!0}),qq()),AV=class{assert(){}async(t){Promise.resolve().then(t)}reportUncaughtRejection(){this.async(t=>{throw t})}defer(){let t={promise:null,resolve:null,reject:null};return t.promise=new Promise((e,n)=>{t.resolve=e,t.reject=n}),t}globalDebuggingEnabled(){return!1}},OV=new AV,NV=class{constructor(t){this.maxConcurrency=t||1}},FV="CANCELLED",zV="STARTED",DV="QUEUED",jV={type:zV},UV={type:DV},BV=t=>({type:FV,reason:t}),$V=BV("it belongs to a 'drop' Task that was already running"),qV=class{constructor(t){this.remainingSlots=t}step(){return this.remainingSlots>0?(this.remainingSlots--,jV):$V}},VV=class extends NV{makeReducer(){return new qV(this.maxConcurrency)}},WV=class{constructor(t){this.remainingSlots=t}step(){return this.remainingSlots>0?(this.remainingSlots--,jV):UV}},HV=class extends NV{makeReducer(){return new WV(this.maxConcurrency)}},GV=BV("it belongs to a 'keepLatest' Task that was already running"),ZV=class{constructor(t,e){this.remainingSlots=t,this.numToCancel=e}step(){return this.remainingSlots>0?(this.remainingSlots--,jV):this.numToCancel>0?(this.numToCancel--,GV):UV}},KV=class extends NV{makeReducer(t,e){let n=t+e;return new ZV(this.maxConcurrency,n-this.maxConcurrency-1)}},YV=BV("it belongs to a 'restartable' Task that was .perform()ed again"),XV=class{constructor(t){this.numToCancel=t}step(){return this.numToCancel>0?(this.numToCancel--,YV):jV}},JV=class extends NV{makeReducer(t,e){return new XV(t+e-this.maxConcurrency)}},QV=new class{step(){return jV}},tW=class{makeReducer(){return QV}},eW=new Map,nW=class{constructor(t,e,n){this.stateTracker=e,this.schedulerPolicy=t,this.initialTaskInstances=n,this.startingInstances=[]}process(){let[t,e,n]=this.filterFinishedTaskInstances(),r=this.schedulerPolicy.makeReducer(e,n),i=t.filter(t=>this.setTaskInstanceExecutionState(t,r.step()));return this.stateTracker.computeFinalStates(t=>this.applyState(t)),this.startingInstances.forEach(t=>t.start()),i}filterFinishedTaskInstances(){let t=0,e=0;return[this.initialTaskInstances.filter(n=>{let r=this.stateTracker.stateFor(n.task),i=n.executor.state;return i.isFinished?(r.onCompletion(n),!1):(i.hasStarted?t+=1:e+=1,!0)}),t,e]}setTaskInstanceExecutionState(t,e){let n=this.stateTracker.stateFor(t.task);switch(t.executor.counted||(t.executor.counted=!0,n.onPerformed(t)),e.type){case FV:return t.cancel(e.reason),!1;case zV:return t.executor.state.hasStarted||(this.startingInstances.push(t),n.onStart(t)),n.onRunning(t),!0;case DV:return n.onQueued(t),!0}}applyState(t){let{taskable:e}=t;if(!e.onState)return;const{guid:n}=e;if(eW.has(n)&&t.tagt(e))}forEachState(t){this.states.forEach(e=>t(e))}},oW=new class{onCompletion(){}onPerformed(){}onStart(){}onRunning(){}onQueued(){}},aW=class{stateFor(){return oW}computeFinalStates(){}},lW=class{constructor(t,e){this.schedulerPolicy=t,this.stateTrackingEnabled=e,this.taskInstances=[]}cancelAll(t,e){let n=this.taskInstances.map(n=>{n.task.guids[t]&&n.executor.cancel(e)}).filter(t=>!!t);return Promise.all(n)}perform(t){t.onFinalize(()=>this.scheduleRefresh()),this.taskInstances.push(t),this.refresh()}scheduleRefresh(){Promise.resolve().then(()=>this.refresh())}refresh(){let t=this.stateTrackingEnabled?new sW:new aW,e=new nW(this.schedulerPolicy,t,this.taskInstances);this.taskInstances=e.process()}},cW=class{constructor(t,e,n){this.value=t,this.done=e,this.errored=n}},uW=class{constructor(t){this.done=!1,this.generatorFactory=t,this.iterator=null}step(t,e){try{let{value:n,done:r}=this.getIterator()[e](t);return r?this.finalize(n,!1):new cW(n,!1,!1)}catch(n){return this.finalize(n,!0)}}getIterator(){return this.iterator||this.done||(this.iterator=this.generatorFactory()),this.iterator}finalize(t,e){return this.done=!0,this.iterator=null,new cW(t,!0,e)}},hW="__ec_cancel__",dW="__ec_yieldable__",pW="next",fW="throw",gW="return",mW="cancel",yW=class{constructor(t,e){this._taskInstance=t,this._resumeIndex=e}getTaskInstance(){return this._taskInstance}cancel(){let t=this._taskInstance;t.proceed.call(t,this._resumeIndex,mW)}next(t){let e=this._taskInstance;e.proceed.call(e,this._resumeIndex,pW,t)}return(t){let e=this._taskInstance;e.proceed.call(e,this._resumeIndex,gW,t)}throw(t){let e=this._taskInstance;e.proceed.call(e,this._resumeIndex,fW,t)}},vW=class{constructor(){this[dW]=this[dW].bind(this)}onYield(){}_deferable(){let t={resolve:void 0,reject:void 0};return t.promise=new Promise((e,n)=>{t.resolve=e,t.reject=n}),t}_toPromise(){let t=this._deferable(),e=this[dW]({proceed(e,n,r){"next"==n||"return"==n?t.resolve(r):t.reject(r)}},0);return t.promise[hW]=e,t.promise}then(...t){return this._toPromise().then(...t)}catch(...t){return this._toPromise().catch(...t)}finally(...t){return this._toPromise().finally(...t)}[dW](t,e){let n=new yW(t,e);return this.onYield(n)}},bW=(new class extends vW{onYield(){}},{completionState:0,value:null,error:null,isSuccessful:!1,isError:!1,isCanceled:!1,hasStarted:!1,isFinished:!1}),wW=class{constructor(t,e){this.kind=t,this.reason=e,this.promise=new Promise(t=>{this.finalize=t})}},_W={},xW=[],CW=class{constructor({generatorFactory:t,env:e,debug:n}){this.generatorState=new uW(t),this.state=Object.assign({},bW),this.index=1,this.disposers=[],this.finalizeCallbacks=[],this.env=e,this.debug=n,this.cancelRequest=null}start(){this.state.hasStarted||this.cancelRequest||(this.setState({hasStarted:!0}),this.proceedSync(pW,void 0))}cancel(t){return this.requestCancel(t)?(this.state.hasStarted?this.proceedWithCancelAsync():this.finalizeWithCancel(),this.cancelRequest.promise):(t.finalize(),t.promise)}setState(t){Object.assign(this.state,t),this.taskInstance.setState(this.state)}proceedChecked(t,e,n){this.state.isFinished||this.advanceIndex(t)&&("cancel"===e?(this.requestCancel(new wW("yielded"),n),this.proceedWithCancelAsync()):this.proceedAsync(e,n))}proceedWithCancelAsync(){this.proceedAsync(gW,_W)}proceedAsync(t,e){this.advanceIndex(this.index),this.env.async(()=>this.proceedSync(t,e))}proceedSync(t,e){this.state.isFinished||(this.dispose(),this.generatorState.done?this.handleResolvedReturnedValue(t,e):this.handleResolvedContinueValue(t,e))}handleResolvedContinueValue(t,e){let n=this.index,r=this.generatorStep(e,t);this.advanceIndex(n)&&(r.errored?this.finalize(r.value,2):this.handleYieldedValue(r))}handleResolvedReturnedValue(t,e){switch(t){case pW:case gW:this.finalize(e,1);break;case fW:this.finalize(e,2)}}handleYieldedUnknownThenable(t){let e=this.index;t.then(t=>{this.proceedChecked(e,pW,t)},t=>{this.proceedChecked(e,fW,t)})}advanceIndex(t){if(this.index===t)return++this.index}handleYieldedValue(t){let e=t.value;e?(this.addDisposer(e[hW]),e.__ec_yieldable__?this.invokeYieldable(e):"function"==typeof e.then?this.handleYieldedUnknownThenable(e):this.proceedWithSimpleValue(e)):this.proceedWithSimpleValue(e)}proceedWithSimpleValue(t){this.proceedAsync(pW,t)}addDisposer(t){"function"==typeof t&&this.disposers.push(t)}dispose(){let t=this.disposers;0!==t.length&&(this.disposers=[],t.forEach(t=>t()))}generatorStep(t,e){xW.push(this);let n=this.generatorState.step(t,e);if(xW.pop(),this._expectsLinkedYield){let t=n.value;t&&"PERFORM_TYPE_LINKED"===t.performType||console.warn("You performed a .linked() task without immediately yielding/returning it. This is currently unsupported (but might be supported in future version of ember-concurrency)."),this._expectsLinkedYield=!1}return n}maybeResolveDefer(){this.defer&&this.state.isFinished&&(1===this.state.completionState?this.defer.resolve(this.state.value):this.defer.reject(this.state.error))}onFinalize(t){this.finalizeCallbacks.push(t),this.state.isFinished&&this.runFinalizeCallbacks()}runFinalizeCallbacks(){this.finalizeCallbacks.forEach(t=>t()),this.finalizeCallbacks=[],this.maybeResolveDefer(),this.maybeThrowUnhandledTaskErrorLater()}promise(){return this.defer||(this.defer=this.env.defer(),this.asyncErrorsHandled=!0,this.maybeResolveDefer()),this.defer.promise}maybeThrowUnhandledTaskErrorLater(){var t;this.asyncErrorsHandled||2!==this.state.completionState||(t=this.state.error)&&"TaskCancelation"===t.name||this.env.async(()=>{this.asyncErrorsHandled||this.env.reportUncaughtRejection(this.state.error)})}requestCancel(t){return!this.cancelRequest&&!this.state.isFinished&&(this.cancelRequest=t,!0)}finalize(t,e){if(this.cancelRequest)return this.finalizeWithCancel();let n={completionState:e};1===e?(n.isSuccessful=!0,n.value=t):2===e?(n.isError=!0,n.error=t):3===e&&(n.error=t),this.finalizeShared(n)}finalizeWithCancel(){let t=this.taskInstance.formatCancelReason(this.cancelRequest.reason),e=new Error(t);this.debugEnabled()&&console.log(t),e.name="TaskCancelation",this.finalizeShared({isCanceled:!0,completionState:3,error:e,cancelReason:t}),this.cancelRequest.finalize()}debugEnabled(){return this.debug||this.env.globalDebuggingEnabled()}finalizeShared(t){this.index++,t.isFinished=!0,this.setState(t),this.runFinalizeCallbacks()}invokeYieldable(t){try{let e=t[dW](this.taskInstance,this.index);this.addDisposer(e)}catch(e){this.env.reportUncaughtRejection(e)}}onYielded(t,e){this.asyncErrorsHandled=!0,this.onFinalize(()=>{let n=this.state.completionState;1===n?t.proceed(e,pW,this.state.value):2===n?t.proceed(e,fW,this.state.error):3===n&&t.proceed(e,mW,null)});let n=this.getPerformType();if("PERFORM_TYPE_UNLINKED"!==n)return()=>{this.detectSelfCancelLoop(n,t),this.cancel(new wW("parent_cancel"))}}getPerformType(){return this.taskInstance.performType||"PERFORM_TYPE_DEFAULT"}detectSelfCancelLoop(t,e){if("PERFORM_TYPE_DEFAULT"!==t)return;let n=e.executor&&e.executor.cancelRequest;!n||"lifespan_end"!==n.kind||this.cancelRequest||this.state.isFinished||this.taskInstance.selfCancelLoopWarning(e)}},SW={last:null,lastRunning:null,lastPerformed:null,lastSuccessful:null,lastComplete:null,lastErrored:null,lastCanceled:null,lastIncomplete:null,performCount:0};Object.freeze(SW);var kW=0,EW=class{constructor(t){this.context=t.context,this.debug=t.debug||!1,this.enabledModifiers=t.enabledModifiers,this.env=t.env,this.group=t.group,this.hasEnabledEvents=t.hasEnabledEvents,this.modifierOptions=t.modifierOptions,this.name=t.name,this.onStateCallback=t.onStateCallback,this.scheduler=t.scheduler,this.guid="ec_"+kW++,this.guids={},this.guids[this.guid]=!0,this.group&&Object.assign(this.guids,this.group.guids)}cancelAll(t){let{reason:e,cancelRequestKind:n,resetState:r}=t||{};e=e||".cancelAll() was explicitly called on the Task";let i=new wW(n||"explicit",e);return this.scheduler.cancelAll(this.guid,i).then(()=>{r&&this._resetState()})}get _isAlive(){return!0}_resetState(){this.setState(SW)}setState(){}};Object.assign(EW.prototype,SW),Object.assign(EW.prototype,{numRunning:0,numQueued:0,isRunning:!1,isQueued:!1,isIdle:!0,state:"idle"});var RW,TW,LW=class{constructor(t,e,n){this.task=t,this.performType=e,this.linkedObject=n}perform(...t){return this.task._performShared(t,this.performType,this.linkedObject)}},IW=class t extends EW{constructor(t){super(t),this.generatorFactory=t.generatorFactory,this.perform=this._perform.bind(this)}linked(){let t=xW[xW.length-1];if(!t)throw new Error("You can only call .linked() from within a task.");return new LW(this,"PERFORM_TYPE_LINKED",t)}unlinked(){return new LW(this,"PERFORM_TYPE_UNLINKED",null)}toString(){return``}_clone(){return new t({context:this.context,debug:this.debug,env:this.env,generatorFactory:this.generatorFactory,group:this.group,hasEnabledEvents:this.hasEnabledEvents,name:this.name,onStateCallback:this.onStateCallback,scheduler:this.scheduler})}_curry(...t){let e=this._clone();return e._curryArgs=[...this._curryArgs||[],...t],e}_perform(...t){return this._performShared(t,"PERFORM_TYPE_DEFAULT",null)}_performShared(t,e,n){let r=this._curryArgs?[...this._curryArgs,...t]:t,i=this._taskInstanceFactory(r,e,n);return"PERFORM_TYPE_LINKED"===e&&(n._expectsLinkedYield=!0),this._isAlive||i.cancel(),this.scheduler.perform(i),i}_taskInstanceOptions(t,e,n){return{args:t,executor:new CW({generatorFactory:()=>this.generatorFactory(t),env:this.env,debug:this.debug}),performType:e,hasEnabledEvents:this.hasEnabledEvents}}},PW={enqueue:(t,e)=>e&&t.setBufferPolicy(HV),debug:(t,e)=>e&&t.setDebug(e),drop:(t,e)=>e&&t.setBufferPolicy(VV),keepLatest:(t,e)=>e&&t.setBufferPolicy(KV),maxConcurrency:(t,e)=>t.setMaxConcurrency(e),onState:(t,e)=>t.setOnState(e),restartable:(t,e)=>e&&t.setBufferPolicy(JV)},MW=class{env=OV;_debug=null;_enabledModifiers=[];_hasSetConcurrencyConstraint=!1;_hasSetBufferPolicy=!1;_hasEnabledEvents=!1;_maxConcurrency=null;_onStateCallback=(t,e)=>e.setState(t);_schedulerPolicyClass=tW;constructor(t="",e=null,n={}){this.name=t,this.taskDefinition=e,this.options=n,this._processModifierOptions(n)}createTask(t){let e=this.getTaskOptions(t);return new IW(Object.assign({generatorFactory:e=>this.taskDefinition.apply(t,e)},e))}getModifier(t){if(function(t){return t in PW}(t))return PW[t].bind(null,this)}getOptions(){return this.options}getScheduler(t,e){return new lW(t,e)}getTaskOptions(t){let e,n=this._onStateCallback,r=new this._schedulerPolicyClass(this._maxConcurrency);return e=this.getScheduler(r,n&&"function"==typeof n),{context:t,debug:this._debug,env:this.env,name:this.name,group:void 0,scheduler:e,hasEnabledEvents:this._hasEnabledEvents,onStateCallback:n,enabledModifiers:this._enabledModifiers,modifierOptions:this.getOptions()}}setBufferPolicy(t){return function(t){if(t._hasSetBufferPolicy)throw new Error(`Cannot set multiple buffer policies on a task. ${t._schedulerPolicyClass} has already been set for task '${t.name}'`)}(this),this._hasSetBufferPolicy=!0,this._hasSetConcurrencyConstraint=!0,this._schedulerPolicyClass=t,this}setDebug(t){return this._debug=t,this}setEvented(t){return this._hasEnabledEvents=t,this}setMaxConcurrency(t){return this._hasSetConcurrencyConstraint=!0,this._maxConcurrency=t,this}setName(t){return this.name=t,this}setOnState(t){return this._onStateCallback=t,this}setTaskDefinition(t){return this.taskDefinition=t,this}_processModifierOptions(t){if(t)for(let e of Object.keys(t)){let n=t[e],r=this.getModifier(e);"function"==typeof r&&r(n)&&this._enabledModifiers.push(e)}}},AW=a({EventTarget:()=>No,Promise:()=>ia,all:()=>la,allSettled:()=>ua,asap:()=>Ra,async:()=>Da,cast:()=>za,configure:()=>zo,default:()=>Ba,defer:()=>ya,denodeify:()=>oa,filter:()=>Sa,hash:()=>pa,hashSettled:()=>ga,map:()=>ba,off:()=>Ua,on:()=>ja,race:()=>ha,reject:()=>_a,resolve:()=>wa,rethrow:()=>ma}),OW=new class extends AV{assert(...t){}async(t){xs(()=>Es("actions",t))}reportUncaughtRejection(t){Ms(null,function(){throw t})}defer(){return ya()}globalDebuggingEnabled(){return!1}},NW=class extends lW{scheduleRefresh(){Is(this,this.refresh)}},FW=class{constructor({task:t,args:e,executor:n,performType:r,hasEnabledEvents:i}){this.task=t,this.args=e,this.performType=r,this.executor=n,this.executor.taskInstance=this,this.hasEnabledEvents=i}setState(){}formatCancelReason(){}selfCancelLoopWarning(){}onFinalize(t){this.executor.onFinalize(t)}proceed(t,e,n){this.executor.proceedChecked(t,e,n)}[dW](t,e){return this.executor.onYielded(t,e)}cancel(t=".cancel() was explicitly called"){this.executor.cancel(new wW("explicit",t))}then(...t){return this.executor.promise().then(...t)}catch(...t){return this.executor.promise().catch(...t)}finally(...t){return this.executor.promise().finally(...t)}toString(){return`${this.task} TaskInstance`}start(){return this.executor.start(),this}};function zW(t,e){return Object.keys(t).reduce((e,n)=>function(t,e,n){const r=Object.getOwnPropertyDescriptor(t,n);return r.initializer=r.initializer||(()=>t[n]),delete r.value,e[n]=Wr(e,n,r),e}(t,e,n),e)}Object.assign(FW.prototype,bW),Object.assign(FW.prototype,{state:"waiting",isDropped:!1,isRunning:!0}),RW=zW(SW,{}),RW=zW({numRunning:0,numQueued:0,isRunning:!1,isQueued:!1,isIdle:!0,state:"idle"},RW),TW=zW(bW,{}),TW=zW({state:"waiting",isDropped:!1,isRunning:!1},TW),Object.freeze(RW),Object.freeze(TW);var DW=class extends FW{setState(t){let e=this._recomputeState(t);Object.assign(this,{...t,isRunning:!t.isFinished,isDropped:"dropped"===e,state:e})}_recomputeState(t){return t.isDropped?"dropped":t.isCanceled?t.hasStarted?"canceled":"dropped":t.isFinished?"finished":t.hasStarted?"running":"waiting"}formatCancelReason(t){return`TaskInstance '${this.getName()}' was canceled because ${t}. For more information, see: http://ember-concurrency.com/docs/task-cancelation-help`}getName(){return this.name||(this.name=this.task&&this.task.name||""),this.name}selfCancelLoopWarning(t){let e=`\`${t.getName()}\``,n=`\`${this.getName()}\``;console.warn(`ember-concurrency detected a potentially hazardous "self-cancel loop" between parent task ${e} and child task ${n}. If you want child task ${n} to be canceled when parent task ${e} is canceled, please change \`.perform()\` to \`.linked().perform()\`. If you want child task ${n} to keep running after parent task ${e} is canceled, change it to \`.unlinked().perform()\``)}triggerEvent(...t){if(!this.hasEnabledEvents)return;let e=this.task,n=e.context,r=e&&e.name;if(n&&n.trigger&&r){let[e,...i]=t;n.trigger(`${r}:${e}`,...i)}}};TW&&Object.defineProperties(DW.prototype,TW);var jW={_performCount:0,setState(t){this._performCount=this._performCount+(t.numPerformedInc||0);let e=t.numRunning>0,n=t.numQueued>0,r=Object.assign({},t,{performCount:this._performCount,isRunning:e,isQueued:n,isIdle:!e&&!n,state:e?"running":"idle"});Object.assign(this,r)},onState(t,e){e.onStateCallback&&e.onStateCallback(t,e)}},UW=class t extends IW{constructor(t){super(t),it(this.context)||Rx(this.context,()=>{this.cancelAll({reason:"the object it lives on was destroyed or unrendered",cancelRequestKind:"lifespan_end"})})}get _isAlive(){return!it(this.context)}_taskInstanceFactory(t,e,n){let r=this._taskInstanceOptions(t,e,n);return r.task=this,new DW(r)}_clone(){return new t({context:this.context,debug:this.debug,env:this.env,generatorFactory:this.generatorFactory,group:this.group,hasEnabledEvents:this.hasEnabledEvents,name:this.name,onStateCallback:this.onStateCallback,scheduler:this.scheduler})}};RW&&Object.defineProperties(UW.prototype,RW),Object.assign(UW.prototype,jW);var BW=class extends MW{env=OW;createTask(t){this.taskDefinition;let e=this.getTaskOptions(t);return new UW(Object.assign({generatorFactory:e=>this.taskDefinition.apply(t,e)},e))}getModifier(t){return super.getModifier(t)}getScheduler(t,e){return new NW(t,e)}get taskFn(){return this.taskDefinition}set taskFn(t){this.setTaskDefinition(t)}};function $W(t,e,n,r){let i=e;r&&(i=Object.assign({},i),i[r]=!0);const s=t();return new BW(n||"",s.generator,i).createTask(s.context)}var qW=a({default:()=>VW}),VW=class extends eu{static{BF(this.prototype,"router",[pp])}#Gt=void qF(this,"router");static{BF(this.prototype,"mapUi",[pp])}#Zt=void qF(this,"mapUi");static{BF(this.prototype,"nostrAuth",[pp])}#N=void qF(this,"nostrAuth");static{BF(this.prototype,"contributions",[pp])}#Kt=void qF(this,"contributions");static{BF(this.prototype,"storage",[pp])}#U=void qF(this,"storage");loadContributionsTask=$W(()=>({context:this,generator:function*(t){t&&(yield this.contributions.load(t))}}),{restartable:!0},"loadContributionsTask",null);get scrollTop(){return this.mapUi.getScrollPosition("contributions")}get items(){return this.contributions.items}get isConnected(){return this.nostrAuth.isConnected}selectContribution(t){if(!t)return;const e=document.querySelector(".sidebar-content");e&&this.mapUi.saveScrollPosition("contributions",e.scrollTop),this.mapUi.returnToRoute={name:"contributions"},this.mapUi.showSidebar(),this.mapUi.preventNextZoom=!0,this.router.transitionTo(`/place/${t.placeIdentifier}`)}static{$F(this.prototype,"selectContribution",[Vl])}onNostrConnected(){this.loadContributionsTask.perform(this.nostrAuth.pubkey)}static{$F(this.prototype,"onNostrConnected",[Vl])}backToMenu(){this.router.transitionTo("menu")}static{$F(this.prototype,"backToMenu",[Vl])}close(){this.router.transitionTo("index")}static{$F(this.prototype,"close",[Vl])}},WW=a({default:()=>HW}),HW=class extends Qh{static{BF(this.prototype,"mapUi",[pp])}#Zt=void qF(this,"mapUi");static{BF(this.prototype,"nostrAuth",[pp])}#N=void qF(this,"nostrAuth");static{BF(this.prototype,"contributions",[pp])}#Kt=void qF(this,"contributions");activate(){this.mapUi.showSidebar()}setupController(t,e){super.setupController(t,e),t&&t.loadContributionsTask&&t.loadContributionsTask.perform(this.nostrAuth.pubkey)}deactivate(){this.contributions.stop()}},GW=a({default:()=>ZW}),ZW=Op(ig({id:null,block:'[[[46,[28,[31,1],null,null],null,null,null]],[],["component","-outlet"]]',moduleName:"(unknown template module)",isStrictMode:!0}),qq()),KW=a({default:()=>YW}),YW=class extends Qh{static{BF(this.prototype,"mapUi",[pp])}#Zt=void qF(this,"mapUi");activate(){this.mapUi.showSidebar()}},XW=class extends vq{static{BF(this.prototype,"title",[Wr],function(){return""})}#Yt=void qF(this,"title");static{BF(this.prototype,"description",[Wr],function(){return""})}#Xt=void qF(this,"description");constructor(){super(...arguments),this.title=this.args.place?.title||"",this.description=this.args.place?.description||""}get shouldAutofocus(){return"undefined"!=typeof window&&window.innerWidth>768}handleSubmit(t){t.preventDefault(),this.args.onSave&&this.args.onSave({title:this.title,description:this.description})}static{$F(this.prototype,"handleSubmit",[Vl])}updateTitle(t){this.title=t.target.value}static{$F(this.prototype,"updateTitle",[Vl])}updateDescription(t){this.description=t.target.value}static{$F(this.prototype,"updateDescription",[Vl])}static{Op(ig({id:null,block:'[[[11,"form"],[24,0,"edit-form"],[4,[32,0],["submit",[30,0,["handleSubmit"]]],null],[12],[1,"\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","edit-title"],[12],[1,"Title"],[13],[1,"\\n"],[1," "],[11,"input"],[24,1,"edit-title"],[16,2,[30,0,["title"]]],[24,0,"form-control"],[24,"placeholder","Name of the place"],[16,"autofocus",[30,0,["shouldAutofocus"]]],[24,4,"text"],[4,[32,0],["input",[30,0,["updateTitle"]]],null],[12],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","edit-desc"],[12],[1,"Description"],[13],[1,"\\n "],[11,"textarea"],[24,1,"edit-desc"],[16,2,[30,0,["description"]]],[24,0,"form-control"],[24,"rows","3"],[24,"placeholder","Add some details..."],[4,[32,0],["input",[30,0,["updateDescription"]]],null],[12],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"edit-actions"],[12],[1,"\\n "],[10,"button"],[14,0,"btn btn-blue"],[14,4,"submit"],[12],[1,"Save"],[13],[1,"\\n "],[11,"button"],[24,0,"btn btn-outline"],[24,4,"button"],[4,[32,0],["click",[30,1]],null],[12],[1,"Cancel"],[13],[1,"\\n "],[13],[1,"\\n"],[13]],["@onCancel"],[]]',moduleName:"(unknown template module)",scope:()=>({on:Hw}),isStrictMode:!0}),this)}},JW=Xq((t,[e])=>{const n=n=>{t&&!t.contains(n.target)&&e(n)},r=setTimeout(()=>{document.addEventListener("click",n)},0);return()=>{clearTimeout(r),document.removeEventListener("click",n)}}),QW=class extends vq{static{BF(this.prototype,"storage",[pp])}#U=void qF(this,"storage");static{BF(this.prototype,"router",[pp])}#Gt=void qF(this,"router");static{BF(this.prototype,"_forceClear",[Wr],function(){return!1})}#Jt=void qF(this,"_forceClear");get isSaved(){return this.args.isSaved}get placeListIds(){return this._forceClear?[]:this.args.place._listIds||[]}styleFor(t){return qv(`background-color: ${t}`)}isInList(t){return!!this.placeListIds&&this.placeListIds.includes(t.id)}static{$F(this.prototype,"isInList",[Vl])}async toggleSaved(){if(this.isSaved){const{osmId:t,osmType:e}=this.args.place;if(await this.storage.removePlace(this.args.place),this.args.place&&(this.args.place.id=null,this.args.place.createdAt=null,this.args.place._listIds=[],this._forceClear=!0),t&&e){const t={...this.args.place};delete t.id,delete t.createdAt,delete t._listIds,this.router.transitionTo("place",t)}else this.router.transitionTo("index");this.args.onClose&&this.args.onClose()}else await this.storage.storePlace(this.args.place)}static{$F(this.prototype,"toggleSaved",[Vl])}async toggleList(t){const e=!this.placeListIds.includes(t.id);e&&!this.isSaved&&await this.storage.storePlace(this.args.place);try{await this.storage.togglePlaceList(this.args.place,t.id,e)}catch(n){console.error(n),alert("Failed to update list: "+n.message)}}static{$F(this.prototype,"toggleList",[Vl])}static{Op(ig({id:null,block:'[[[11,0],[24,0,"place-lists-manager"],[4,[32,0],[[30,1]],null],[12],[1,"\\n "],[10,0],[14,0,"list-item master-toggle"],[12],[1,"\\n "],[10,"label"],[12],[1,"\\n "],[11,"input"],[16,"checked",[30,0,["isSaved"]]],[24,4,"checkbox"],[4,[32,1],["change",[30,0,["toggleSaved"]]],null],[12],[13],[1,"\\n "],[10,1],[14,0,"list-color-dot"],[12],[13],[1,"\\n "],[10,1],[14,0,"list-name"],[12],[1,"Saved places"],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n\\n "],[10,0],[14,0,"divider"],[12],[13],[1,"\\n\\n "],[10,0],[14,0,"lists-container"],[12],[1,"\\n"],[42,[28,[31,1],[[28,[31,1],[[30,0,["storage","lists"]]],null]],null],null,[[[1," "],[10,0],[14,0,"list-item"],[12],[1,"\\n "],[10,"label"],[12],[1,"\\n "],[11,"input"],[16,"checked",[28,[30,0,["isInList"]],[[30,2]],null]],[16,"disabled",[52,[51,[30,0,["isSaved"]]],true]],[24,4,"checkbox"],[4,[32,1],["change",[28,[32,2],[[30,0,["toggleList"]],[30,2]],null]],null],[12],[13],[1,"\\n"],[1," "],[10,1],[14,0,"list-color-dot"],[15,5,[28,[30,0,["styleFor"]],[[30,2,["color"]]],null]],[12],[13],[1,"\\n "],[10,1],[14,0,"list-name"],[12],[1,[30,2,["title"]]],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[2]],null],[1," "],[13],[1,"\\n"],[13]],["@onClose","list"],["each","-track-array","unless"]]',moduleName:"(unknown template module)",scope:()=>({onClickOutside:JW,on:Hw,fn:zq}),isStrictMode:!0}),this)}},tH=class extends vq{renderBlurhash=Xq((t,[e,n,r])=>{if(!e||!t)return;const i=n||32,s=r||18;t.width=i,t.height=s;const o=t.getContext("2d");if(o)try{const t=((t,e,n)=>{(t=>{if(!t||t.length<6)throw new z$("The blurhash string must be at least 6 characters");let e=M$(t[0]),n=Math.floor(e/9)+1,r=e%9+1;if(t.length!==4+2*r*n)throw new z$(`blurhash length mismatch: length is ${t.length} but it should be ${4+2*r*n}`)})(t);let r=M$(t[0]),i=Math.floor(r/9)+1,s=r%9+1,o=(M$(t[1])+1)/166,a=new Array(s*i);for(let u=0;u({context:this,generator:function*(t){this.error="",this.statusText="Processing";try{const e=yield this.imageProcessor.process(t,1920,.9,!0);this.blurhash=e.blurhash;const n=yield this.imageProcessor.process(t,350,.9,!1);let r,i;const s=ND(),o=t=>{"signing"===t&&(this.statusText="Signing photo upload"),"uploading"===t&&(this.statusText="Uploading photo")},a=t=>{"signing"===t&&(this.statusText="Signing thumbnail upload"),"uploading"===t&&(this.statusText="Uploading thumbnail")};if(s)r=yield this.blossom.upload(e.blob,{sequential:!0,onProgress:o}),i=yield this.blossom.upload(n.blob,{sequential:!0,onProgress:a});else{const t=this.blossom.upload(e.blob,{onProgress:o}),s=this.blossom.upload(n.blob,{onProgress:a});[r,i]=yield Promise.all([t,s])}this.args.onSuccess&&this.args.onSuccess({file:t,url:r.url,fallbackUrls:r.fallbackUrls,thumbUrl:i.url,blurhash:e.blurhash,type:"image/jpeg",dim:e.dim,hash:r.hash,thumbHash:i.hash})}catch(e){this.error=e.message}}}),null,"uploadTask",null);static{Op(ig({id:null,block:'[[[10,0],[15,0,[29,["photo-upload-item\\n ",[52,[30,0,["uploadTask","isRunning"]],"is-uploading"],"\\n ",[52,[30,0,["error"]],"has-error"]]]],[12],[1,"\\n"],[41,[30,0,["blurhash"]],[[[1," "],[8,[32,0],[[24,0,"place-header-photo-blur"]],[["@hash"],[[30,0,["blurhash"]]]],null],[1,"\\n"]],[]],null],[1," "],[10,"img"],[15,"src",[30,0,["thumbnailUrl"]]],[14,"alt","thumbnail"],[12],[13],[1,"\\n\\n"],[41,[30,0,["uploadTask","isRunning"]],[[[1," "],[10,0],[14,0,"overlay"],[12],[1,"\\n "],[8,[32,1],[[24,0,"spin-animation"]],[["@name","@size","@color"],["loading-ring",24,"white"]],null],[1,"\\n"],[41,[30,0,["statusText"]],[[[1," "],[10,1],[14,0,"upload-status-text"],[12],[1,[30,0,["statusText"]]],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["error"]],[[[1," "],[11,"button"],[24,0,"overlay error-overlay"],[16,"title",[30,0,["error"]]],[24,4,"button"],[4,[32,2],["click",[30,0,["showErrorToast"]]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["alert-circle",24,"white"]],null],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n "],[11,"button"],[24,0,"btn-remove-photo"],[24,"title","Remove photo"],[24,4,"button"],[4,[32,2],["click",[28,[32,3],[[30,1],[30,2]],null]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["x",16,"white"]],null],[1,"\\n "],[13],[1,"\\n"],[13]],["@onRemove","@file"],["if"]]',moduleName:"(unknown template module)",scope:()=>({Blurhash:tH,Icon:wq,on:Hw,fn:zq}),isStrictMode:!0}),this)}},nH=Eb(function([t]){return kB(t)}),rH=Eb(function([t,e]){return!!Array.isArray(t)&&t.includes(e)}),iH=class extends vq{static{BF(this.prototype,"nostrAuth",[pp])}#N=void qF(this,"nostrAuth");static{BF(this.prototype,"nostrRelay",[pp])}#at=void qF(this,"nostrRelay");static{BF(this.prototype,"nostrData",[pp])}#F=void qF(this,"nostrData");static{BF(this.prototype,"blossom",[pp])}#Qt=void qF(this,"blossom");static{BF(this.prototype,"toast",[pp])}#Mt=void qF(this,"toast");static{BF(this.prototype,"file",[Wr],function(){return null})}#se=void qF(this,"file");static{BF(this.prototype,"uploadedPhoto",[Wr],function(){return null})}#oe=void qF(this,"uploadedPhoto");static{BF(this.prototype,"error",[Wr],function(){return""})}#re=void qF(this,"error");static{BF(this.prototype,"isPublishing",[Wr],function(){return!1})}#ae=void qF(this,"isPublishing");static{BF(this.prototype,"isDragging",[Wr],function(){return!1})}#le=void qF(this,"isDragging");static{BF(this.prototype,"selectedTags",[Wr],function(){return[]})}#ce=void qF(this,"selectedTags");static{BF(this.prototype,"altText",[Wr],function(){return""})}#ue=void qF(this,"altText");get place(){return this.args.place||{}}get title(){return this.place.title||"this place"}get allUploaded(){return this.file&&this.uploadedPhoto&&this.file===this.uploadedPhoto.file}get suggestedTags(){return w$(this.place)}handleFileSelect(t){this.addFile(t.target.files[0]),t.target.value=""}static{$F(this.prototype,"handleFileSelect",[Vl])}handleDragOver(t){t.preventDefault(),this.isDragging=!0}static{$F(this.prototype,"handleDragOver",[Vl])}handleDragLeave(t){t.preventDefault(),this.isDragging=!1}static{$F(this.prototype,"handleDragLeave",[Vl])}handleDrop(t){t.preventDefault(),this.isDragging=!1,t.dataTransfer.files.length>0&&this.addFile(t.dataTransfer.files[0])}static{$F(this.prototype,"handleDrop",[Vl])}addFile(t){t&&t.type.startsWith("image/")?(this.error="",this.uploadedPhoto&&this.deletePhotoTask.perform(this.uploadedPhoto),this.file=t,this.uploadedPhoto=null,this.args.onUploadStateChange&&this.args.onUploadStateChange(!0)):this.error="Please select a valid image file."}handleUploadSuccess(t){this.uploadedPhoto=t}static{$F(this.prototype,"handleUploadSuccess",[Vl])}removeFile(){this.uploadedPhoto&&this.deletePhotoTask.perform(this.uploadedPhoto),this.file=null,this.uploadedPhoto=null,this.selectedTags=[],this.altText="",this.args.onUploadStateChange&&this.args.onUploadStateChange(!1)}static{$F(this.prototype,"removeFile",[Vl])}toggleTag(t){this.selectedTags.includes(t)?this.selectedTags=[]:this.selectedTags=[t]}static{$F(this.prototype,"toggleTag",[Vl])}updateAltText(t){this.altText=t.target.value}static{$F(this.prototype,"updateAltText",[Vl])}deletePhotoTask=$W(()=>({context:this,generator:function*(t){try{t.hash&&(yield this.blossom.delete(t.hash)),t.thumbHash&&(yield this.blossom.delete(t.thumbHash))}catch(e){this.toast.show(`Failed to delete photo from server: ${e.message}`,5e3)}}}),null,"deletePhotoTask",null);async publish(){if(!this.nostrAuth.isConnected)return void(this.error="You must connect Nostr first.");if(!this.allUploaded)return void(this.error="Please wait for all photos to finish uploading.");const{osmId:t,lat:e,lon:n}=this.place,r=this.place.osmType||"node";if(t){this.error="",this.isPublishing=!0;try{const i=[["i",`osm:${r}:${t}`]];for(const t of this.selectedTags)i.push(["t",t]);e&&n&&(i.push(["g",mU.encode(e,n,4)]),i.push(["g",mU.encode(e,n,6)]),i.push(["g",mU.encode(e,n,7)]),i.push(["g",mU.encode(e,n,9)]));const s=this.uploadedPhoto,o=["imeta",`url ${s.url}`];o.push(`m ${s.type}`),s.dim&&o.push(`dim ${s.dim}`);const a=this.altText.trim();if(a&&o.push(`alt ${a}`),s.fallbackUrls&&s.fallbackUrls.length>0)for(const t of s.fallbackUrls)o.push(`fallback ${t}`);s.thumbUrl&&o.push(`thumb ${s.thumbUrl}`),s.blurhash&&o.push(`blurhash ${s.blurhash}`),i.push(o);const l=await QN.fromKind(360).content("").modifyPublicTags(()=>i).as(this.nostrAuth.signer).sign();await this.nostrRelay.publish(this.nostrData.activeWriteRelays,l),this.nostrData.store.add(l),this.toast.show("Photo published successfully"),this.file=null,this.uploadedPhoto=null,this.altText="",this.args.onUploadStateChange&&this.args.onUploadStateChange(!1),this.args.onClose&&this.args.onClose(l.id)}catch(i){this.error="Failed to publish: "+i.message}finally{this.isPublishing=!1}}else this.error="This place does not have a valid OSM ID."}static{$F(this.prototype,"publish",[Vl])}static{Op(ig({id:null,block:'[[[10,0],[14,0,"place-photo-upload"],[12],[1,"\\n "],[10,"h2"],[12],[1,"Add Photo for "],[1,[30,0,["title"]]],[13],[1,"\\n\\n"],[41,[30,0,["error"]],[[[1," "],[10,0],[14,0,"alert alert-error"],[12],[1,"\\n "],[1,[30,0,["error"]]],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["file"]],[[[1," "],[8,[32,0],null,[["@file","@onSuccess","@onRemove"],[[30,0,["file"]],[30,0,["handleUploadSuccess"]],[30,0,["removeFile"]]]],null],[1,"\\n\\n"],[41,[30,0,["suggestedTags","length"]],[[[1," "],[10,0],[14,0,"photo-tag-suggestions"],[12],[1,"\\n "],[10,2],[14,0,"photo-tag-suggestions-title"],[12],[1,"\\n Choose a tag/category (optional):\\n "],[13],[1,"\\n "],[10,0],[14,0,"photo-tag-suggestions-list"],[12],[1,"\\n"],[42,[28,[31,2],[[28,[31,2],[[30,0,["suggestedTags"]]],null]],null],null,[[[1," "],[11,"button"],[16,0,[29,["photo-tag-chip\\n ",[52,[28,[32,1],[[30,0,["selectedTags"]],[30,1]],null],"is-selected"]]]],[24,4,"button"],[4,[32,2],["click",[28,[32,3],[[30,0,["toggleTag"]],[30,1]],null]],null],[12],[1,"\\n "],[1,[28,[32,4],[[30,1]],null]],[1,"\\n "],[13],[1,"\\n"]],[1]],null],[1," "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","photo-alt-input"],[12],[1,"Description (optional):"],[13],[1,"\\n "],[11,"input"],[24,1,"photo-alt-input"],[24,0,"form-control"],[24,"placeholder","Describe this photo"],[16,2,[30,0,["altText"]]],[16,"disabled",[30,0,["isPublishing"]]],[24,4,"text"],[4,[32,2],["input",[30,0,["updateAltText"]]],null],[12],[13],[1,"\\n "],[13],[1,"\\n\\n "],[11,"button"],[24,0,"btn btn-primary btn-publish"],[16,"disabled",[28,[32,5],[[28,[32,6],[[30,0,["allUploaded"]]],null],[30,0,["isPublishing"]]],null]],[24,4,"button"],[4,[32,2],["click",[30,0,["publish"]]],null],[12],[1,"\\n"],[41,[30,0,["isPublishing"]],[[[1," Publishing...\\n"]],[]],[[[1," Publish Photo\\n"]],[]]],[1," "],[13],[1,"\\n"]],[]],[[[1," "],[11,0],[16,0,[29,["dropzone ",[52,[30,0,["isDragging"]],"is-dragging"]]]],[4,[32,2],["dragover",[30,0,["handleDragOver"]]],null],[4,[32,2],["dragleave",[30,0,["handleDragLeave"]]],null],[4,[32,2],["drop",[30,0,["handleDrop"]]],null],[12],[1,"\\n "],[10,"label"],[14,"for","photo-upload-input"],[14,0,"dropzone-label"],[12],[1,"\\n "],[8,[32,7],null,[["@name","@size","@color"],["upload-cloud",48,"#ccc"]],null],[1,"\\n "],[10,2],[12],[1,"Drag and drop a photo here, or click to browse"],[13],[1,"\\n "],[13],[1,"\\n "],[11,"input"],[24,1,"photo-upload-input"],[24,"accept","image/*"],[24,0,"file-input-hidden"],[16,"disabled",[30,0,["isPublishing"]]],[24,4,"file"],[4,[32,2],["change",[30,0,["handleFileSelect"]]],null],[12],[13],[1,"\\n "],[13],[1,"\\n"]],[]]],[13]],["tag"],["if","each","-track-array"]]',moduleName:"(unknown template module)",scope:()=>({PlacePhotoUploadItem:eH,includes:rH,on:Hw,fn:zq,capitalize:nH,or:Uq,not:Zq,Icon:wq}),isStrictMode:!0}),this)}},sH=Xq((t,[e])=>{if(!e)return;let n;t.classList.remove("loaded"),t.classList.remove("loaded-instant");const r=()=>{const e=t.parentElement,n=e&&"PICTURE"===e.tagName?e.parentElement:e;if(n&&n.closest(".photo-carousel.gallery-main")){const t=n.querySelector(".place-header-photo-blur");t&&(t.style.opacity="0")}},i=()=>{t.classList.contains("loaded-instant")||t.classList.add("loaded"),r()};return t.addEventListener("load",i),n=new IntersectionObserver((n,i)=>{n.forEach(n=>{if(n.isIntersecting){i.unobserve(t);const n=new Image;n.src=e,n.complete&&(t.classList.add("loaded-instant"),r());const s=t.parentElement;s&&"PICTURE"===s.tagName&&s.querySelectorAll("source").forEach(t=>{t.dataset.srcset&&(t.srcset=t.dataset.srcset)}),t.dataset.src?t.src=t.dataset.src:t.src=e}})},{root:null,rootMargin:"100px 100%",threshold:0}),n.observe(t),()=>{t.removeEventListener("load",i),n&&n.disconnect()}}),oH=class extends vq{static{BF(this.prototype,"canScrollLeft",[Wr],function(){return!1})}#he=void qF(this,"canScrollLeft");static{BF(this.prototype,"canScrollRight",[Wr],function(){return!1})}#de=void qF(this,"canScrollRight");internalEventId=null;carouselElement=null;get photos(){return this.args.photos||[]}get showChevrons(){return this.photos.length>1}get cannotScrollLeft(){return!this.canScrollLeft}get cannotScrollRight(){return!this.canScrollRight}get isGalleryMain(){return"gallery-main"===this.args.variant}get isGalleryThumbnails(){return"gallery-thumbnails"===this.args.variant}get variantClass(){return this.args.variant||"inline"}lastResetKey=null;resetScrollPosition=Xq((t,[e])=>{void 0!==e&&e!==this.lastResetKey&&(this.lastResetKey=e,t.scrollLeft=0,setTimeout(()=>this.updateScrollState(),50))});isProgrammaticScroll=!1;scrollToNewPhoto=Xq((t,[e])=>{if(e&&e!==this.lastEventId){const n=!this.lastEventId;if(this.lastEventId=e,this.internalEventId===e)return;this.internalEventId=e,this.isProgrammaticScroll=!0;const r=()=>{const r=t.querySelector(`[data-event-id="${e}"]`);if(r)if(n){const e=t.style.scrollBehavior;t.style.scrollBehavior="auto",t.scrollLeft=r.offsetLeft,setTimeout(()=>{t.style.scrollBehavior=e,this.isProgrammaticScroll=!1},50)}else t.scrollLeft=r.offsetLeft,setTimeout(()=>{this.isProgrammaticScroll=!1},500);else this.isProgrammaticScroll=!1};n?r():setTimeout(r,100)}});setupCarousel=Xq(t=>{let e,n;return this.carouselElement=t,setTimeout(()=>{this.updateScrollState()},50),window.ResizeObserver&&(e=new ResizeObserver(()=>this.updateScrollState()),e.observe(t)),this.args.onVisiblePhotoChange&&window.IntersectionObserver&&"test"!==ix.environment&&(n=new IntersectionObserver(t=>{if(!this.isProgrammaticScroll)for(let e of t)if(e.isIntersecting&&e.intersectionRatio>=.5){const t=e.target.dataset.eventId;this.internalEventId=t;const n=this.photos.find(e=>e.eventId===t);n&&this.args.onVisiblePhotoChange(n)}},{root:t,threshold:.5}),t.querySelectorAll(".carousel-slide").forEach(t=>n.observe(t))),()=>{e&&e.unobserve(t),n&&n.disconnect()}});updateScrollState(){if(!this.carouselElement)return;const{scrollLeft:t,scrollWidth:e,clientWidth:n}=this.carouselElement;this.canScrollLeft=t>1,this.canScrollRight=t+n({on:Hw,and:Hq,eq:Gq,fn:zq,Blurhash:tH,fadeInImage:sH,Icon:wq}),isStrictMode:!0}),this)}},aH=class extends vq{static{BF(this.prototype,"isOpen",[Wr],function(){return!1})}#pe=void qF(this,"isOpen");toggleMenu(t){t?.stopPropagation(),this.isOpen=!this.isOpen}static{$F(this.prototype,"toggleMenu",[Vl])}closeMenu(t){t?.stopPropagation(),this.isOpen=!1}static{$F(this.prototype,"closeMenu",[Vl])}get triggerIcon(){return this.args.triggerIcon||"more-vertical"}static{Op(ig({id:null,block:'[[[10,0],[14,0,"dropdown-menu-container"],[12],[1,"\\n "],[11,"button"],[24,0,"dropdown-trigger-btn btn-press"],[16,"title",[30,1]],[24,4,"button"],[4,[32,0],["click",[30,0,["toggleMenu"]]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],[[30,0,["triggerIcon"]],[30,2],[30,3]]],null],[1,"\\n "],[13],[1,"\\n\\n"],[41,[30,0,["isOpen"]],[[[1," "],[10,0],[15,0,[29,["dropdown-popover ",[30,4]]]],[12],[1,"\\n "],[18,5,[[30,0,["closeMenu"]]]],[1,"\\n "],[13],[1,"\\n "],[11,0],[24,0,"menu-backdrop"],[24,"role","button"],[4,[32,0],["click",[30,0,["closeMenu"]]],null],[12],[13],[1,"\\n"]],[]],null],[13]],["@triggerTitle","@iconSize","@iconColor","@popoverClass","&default"],["if","yield"]]',moduleName:"(unknown template module)",scope:()=>({on:Hw,Icon:wq}),isStrictMode:!0}),this)}},lH=1e5,cH=Math.round((Math.log(100)-Math.log(10))/(Math.log(lH)-Math.log(10))*200),uH=class extends vq{static{BF(this.prototype,"nostrZap",[pp])}#fe=void qF(this,"nostrZap");static{BF(this.prototype,"nostrAuth",[pp])}#N=void qF(this,"nostrAuth");static{BF(this.prototype,"nostrData",[pp])}#F=void qF(this,"nostrData");static{BF(this.prototype,"toast",[pp])}#Mt=void qF(this,"toast");static{BF(this.prototype,"step",[Wr],function(){return"select-amount"})}#ge=void qF(this,"step");static{BF(this.prototype,"sliderPosition",[Wr],function(){return cH})}#me=void qF(this,"sliderPosition");static{BF(this.prototype,"message",[Wr],function(){return""})}#qt=void qF(this,"message");static{BF(this.prototype,"error",[Wr],function(){return null})}#re=void qF(this,"error");static{BF(this.prototype,"invoice",[Wr],function(){return null})}#ye=void qF(this,"invoice");static{BF(this.prototype,"lightningAddress",[Wr],function(){return null})}#ve=void qF(this,"lightningAddress");static{BF(this.prototype,"lnurlEndpoint",[Wr],function(){return null})}#be=void qF(this,"lnurlEndpoint");static{BF(this.prototype,"lnurlLoading",[Wr],function(){return!1})}#we=void qF(this,"lnurlLoading");static{BF(this.prototype,"lnurlError",[Wr],function(){return null})}#_e=void qF(this,"lnurlError");static{BF(this.prototype,"paymentNotDetected",[Wr],function(){return!1})}#xe=void qF(this,"paymentNotDetected");sliderSteps=200;sliderTicks=["10","100","1k","10k","100k"];_receiptSub=null;_receiptTimeout=null;_zapRequest=null;RECEIPT_TIMEOUT_MS=3e5;constructor(){super(...arguments),this._loadLightningInfo()}get photo(){return this.args.photo}get hasWebLN(){return this.nostrZap.hasWebLN()}get effectiveAmount(){return function(t){const e=t/200;return Math.round(Math.exp(Math.log(10)+(Math.log(lH)-Math.log(10))*e))}(this.sliderPosition)}get amountMsats(){return 1e3*this.effectiveAmount}get formattedAmount(){return this.effectiveAmount.toLocaleString()}get cannotZap(){return!this.canZap}get canZap(){return!!this.lnurlEndpoint&&!this.lnurlError&&!(this.effectiveAmount<=0)&&this.amountMsats>=this.lnurlEndpoint.minSendable&&this.amountMsats<=this.lnurlEndpoint.maxSendable}get minSats(){return this.lnurlEndpoint?Math.ceil(this.lnurlEndpoint.minSendable/1e3):1}get maxSats(){return this.lnurlEndpoint?Math.floor(this.lnurlEndpoint.maxSendable/1e3):lH}get lightningUri(){return this.invoice?`lightning:${this.invoice}`:""}get parsedInvoice(){if(!this.invoice)return null;try{return this.nostrZap.parseInvoice(this.invoice)}catch{return null}}async _loadLightningInfo(){const t=this.photo?.pubkey;if(!t)return;this.nostrZap.loadRecipientRelays(t).catch(()=>{});const e=this.nostrZap.getLightningAddress(t);if(e){this.lightningAddress=e,this.lnurlLoading=!0,this.lnurlError=null;try{this.lnurlEndpoint=await this.nostrZap.resolveLnurl(e)}catch(nD){this.lnurlError=nD instanceof Error?nD.message:"Failed to fetch lightning info"}finally{this.lnurlLoading=!1}}else this.lnurlError="This user has no lightning address set in their profile"}updateSlider(t){this.sliderPosition=Number(t.target.value)}static{$F(this.prototype,"updateSlider",[Vl])}updateMessage(t){this.message=t.target.value}static{$F(this.prototype,"updateMessage",[Vl])}handleClose(){this.args.onClose&&this.args.onClose()}static{$F(this.prototype,"handleClose",[Vl])}resetAndClose(){this._cleanupReceiptSub(),this.step="select-amount",this.error=null,this.invoice=null,this.paymentNotDetected=!1,this.handleClose()}static{$F(this.prototype,"resetAndClose",[Vl])}retry(){this.step="select-amount",this.error=null}static{$F(this.prototype,"retry",[Vl])}showInvoice(){this.step="awaiting-payment",this.error=null}static{$F(this.prototype,"showInvoice",[Vl])}performZap(){this.zapTask.perform()}static{$F(this.prototype,"performZap",[Vl])}performWebLNPay(){this.webLNPayTask.perform()}static{$F(this.prototype,"performWebLNPay",[Vl])}copyInvoice(){if(this.invoice)try{navigator.clipboard.writeText(this.invoice),this.toast.show("Invoice copied to clipboard")}catch{}}static{$F(this.prototype,"copyInvoice",[Vl])}_startReceiptSubscription(t){this._cleanupReceiptSub(),this._zapRequest=t,this.paymentNotDetected=!1,this._receiptSub=this.nostrZap.subscribeForZapReceipt(t,this.photo,()=>{this.step="success",this._cleanupReceiptSub()}),this._receiptTimeout=setTimeout(()=>{this.paymentNotDetected=!0},this.RECEIPT_TIMEOUT_MS)}_cleanupReceiptSub(){this._receiptSub&&(this._receiptSub.unsubscribe(),this._receiptSub=null),this._receiptTimeout&&(clearTimeout(this._receiptTimeout),this._receiptTimeout=null)}zapTask=$W(()=>({context:this,generator:function*(){if(this.canZap){this.step="fetching-invoice",this.error=null;try{const{invoice:t,zapRequest:e}=yield this.nostrZap.zap(this.photo,this.amountMsats,this.message);this.invoice=t,this.step="awaiting-payment",this._startReceiptSubscription(e)}catch(nD){console.error("Zap failed:",nD),this.error=nD instanceof Error?nD.message:"Failed to create zap",this.step="error"}}}}),null,"zapTask",null);webLNPayTask=$W(()=>({context:this,generator:function*(){if(this.invoice){this.step="paying-with-wallet",this.error=null;try{yield this.nostrZap.payWithWebln(this.invoice),this._cleanupReceiptSub(),this.step="success"}catch(nD){console.error("WebLN pay failed:",nD),this.error=nD instanceof Error?nD.message:"Failed to pay with wallet",this.step="wallet-pay-error"}}}}),null,"webLNPayTask",null);willDestroy(){this._cleanupReceiptSub(),super.willDestroy(...arguments)}static{Op(ig({id:null,block:'[[[8,[32,0],null,[["@inline","@onClose"],[true,[30,0,["resetAndClose"]]]],[["default"],[[[[1,"\\n "],[10,0],[14,0,"zap-photo-modal"],[12],[1,"\\n "],[10,"h2"],[12],[1,"Zap Photo"],[13],[1,"\\n\\n"],[1," "],[10,"section"],[14,0,"status"],[12],[1,"\\n"],[41,[30,0,["lnurlLoading"]],[[[1," "],[10,2],[14,0,"meta-info"],[12],[1,"Loading lightning address..."],[13],[1,"\\n"]],[]],[[[41,[30,0,["lightningAddress"]],[[[1," "],[10,0],[14,0,"lightning-address"],[12],[1,"\\n "],[10,1],[14,0,"lightning-badge"],[12],[1,"Lightning"],[13],[1,"\\n "],[10,1],[14,0,"lightning-address-text"],[12],[1,[30,0,["lightningAddress"]]],[13],[1,"\\n "],[13],[1,"\\n "]],[]],null]],[]]],[41,[30,0,["lnurlError"]],[[[1," "],[10,0],[14,0,"alert alert-error"],[12],[1,[30,0,["lnurlError"]]],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n\\n"],[41,[28,[32,1],[[30,0,["step"]],"select-amount"],null],[[[1," "],[10,"section"],[14,0,"slider"],[12],[1,"\\n "],[10,0],[14,0,"amount-display"],[12],[1,"\\n "],[10,1],[14,0,"amount-value zap-amount"],[12],[1,[30,0,["formattedAmount"]]],[13],[1,"\\n "],[10,1],[14,0,"amount-unit"],[12],[1,"sats"],[13],[1,"\\n "],[13],[1,"\\n\\n "],[11,"input"],[24,0,"zap-slider"],[24,"min","0"],[16,"max",[30,0,["sliderSteps"]]],[16,2,[30,0,["sliderPosition"]]],[24,"aria-label","Zap amount in sats"],[24,4,"range"],[4,[32,2],["input",[30,0,["updateSlider"]]],null],[12],[13],[1,"\\n\\n "],[10,0],[14,0,"slider-ticks"],[12],[1,"\\n"],[42,[28,[31,2],[[28,[31,2],[[30,0,["sliderTicks"]]],null]],null],null,[[[1," "],[10,1],[12],[1,[30,1]],[13],[1,"\\n"]],[1]],null],[1," "],[13],[1,"\\n\\n "],[13],[1,"\\n\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[12],[1,"Message (optional)"],[13],[1,"\\n "],[11,"input"],[24,0,"form-control"],[24,"placeholder","Say something nice..."],[24,"aria-label","Zap message"],[16,2,[30,0,["message"]]],[24,4,"text"],[4,[32,2],["input",[30,0,["updateMessage"]]],null],[12],[13],[1,"\\n "],[13],[1,"\\n\\n "],[10,0],[14,0,"edit-actions"],[12],[1,"\\n "],[11,"button"],[24,0,"btn btn-outline"],[24,4,"button"],[4,[32,2],["click",[30,0,["resetAndClose"]]],null],[12],[1,"\\n Cancel\\n "],[13],[1,"\\n "],[11,"button"],[24,0,"btn btn-primary"],[16,"disabled",[30,0,["cannotZap"]]],[24,4,"button"],[4,[32,2],["click",[30,0,["performZap"]]],null],[12],[1,"\\n Zap\\n "],[1,[30,0,["formattedAmount"]]],[1,"\\n sats\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[28,[32,1],[[30,0,["step"]],"fetching-invoice"],null],[[[1," "],[10,0],[14,0,"centered"],[12],[1,"\\n "],[8,[32,3],[[24,0,"spin-animation"]],[["@name","@size"],["loading-ring",32]],null],[1,"\\n "],[10,2],[12],[1,"Creating zap request and fetching invoice..."],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[28,[32,1],[[30,0,["step"]],"awaiting-payment"],null],[[[1," "],[10,2],[14,0,"zap-pay-prompt"],[12],[1,"\\n Scan to pay\\n "],[10,"strong"],[12],[1,[30,0,["formattedAmount"]]],[1," sats"],[13],[1,"\\n "],[13],[1,"\\n\\n "],[10,0],[14,0,"qr-code-container"],[12],[1,"\\n "],[11,"canvas"],[4,[32,4],[[30,0,["invoice"]]],null],[12],[13],[1,"\\n "],[13],[1,"\\n\\n"],[41,[30,0,["hasWebLN"]],[[[1," "],[11,"button"],[24,0,"btn btn-primary btn-full webln-pay-btn"],[24,4,"button"],[4,[32,2],["click",[30,0,["performWebLNPay"]]],null],[12],[1,"\\n Open in Lightning wallet\\n "],[13],[1,"\\n"]],[]],[[[1," "],[10,3],[15,6,[30,0,["lightningUri"]]],[14,0,"btn btn-primary btn-full"],[12],[1,"\\n Open in Lightning wallet\\n "],[13],[1,"\\n"]],[]]],[1,"\\n "],[11,"button"],[24,0,"btn btn-outline btn-full copy-invoice-btn"],[24,4,"button"],[4,[32,2],["click",[30,0,["copyInvoice"]]],null],[12],[1,"\\n Copy payment request\\n "],[13],[1,"\\n\\n"],[41,[30,0,["paymentNotDetected"]],[[[1," "],[10,2],[14,0,"meta-info"],[12],[1,"\\n Payment not detected yet. Keep the QR code open and try paying\\n again, or use a different Lightning wallet.\\n "],[13],[1,"\\n"]],[]],null]],[]],null],[1,"\\n"],[41,[28,[32,1],[[30,0,["step"]],"paying-with-wallet"],null],[[[1," "],[10,0],[14,0,"centered"],[12],[1,"\\n "],[8,[32,3],[[24,0,"spin-animation"]],[["@name","@size"],["loading-ring",32]],null],[1,"\\n "],[10,2],[12],[1,"Paying invoice with WebLN..."],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[28,[32,1],[[30,0,["step"]],"wallet-pay-error"],null],[[[1," "],[10,0],[14,0,"alert alert-error"],[12],[1,[30,0,["error"]]],[13],[1,"\\n "],[10,2],[14,0,"meta-info"],[12],[1,"\\n The WebLN payment failed. You can still scan the QR code with a\\n Lightning wallet.\\n "],[13],[1,"\\n "],[10,0],[14,0,"edit-actions"],[12],[1,"\\n "],[11,"button"],[24,0,"btn btn-outline"],[24,4,"button"],[4,[32,2],["click",[30,0,["resetAndClose"]]],null],[12],[1,"\\n Cancel\\n "],[13],[1,"\\n "],[11,"button"],[24,0,"btn btn-primary"],[24,4,"button"],[4,[32,2],["click",[30,0,["showInvoice"]]],null],[12],[1,"\\n Show Invoice\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[28,[32,1],[[30,0,["step"]],"success"],null],[[[1," "],[10,0],[14,0,"success zap-success"],[12],[1,"\\n "],[10,0],[14,0,"success-icon"],[12],[1,"⚡"],[13],[1,"\\n "],[10,"h4"],[12],[1,"Zap Sent!"],[13],[1,"\\n "],[10,2],[12],[1,"\\n You zapped\\n "],[10,"strong"],[12],[1,[30,0,["formattedAmount"]]],[1," sats"],[13],[1,"\\n"],[41,[30,0,["message"]],[[[1," with message: \\""],[1,[30,0,["message"]]],[1,"\\"\\n"]],[]],null],[1," "],[13],[1,"\\n "],[11,"button"],[24,0,"btn btn-primary"],[24,4,"button"],[4,[32,2],["click",[30,0,["resetAndClose"]]],null],[12],[1,"\\n Done\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[28,[32,1],[[30,0,["step"]],"error"],null],[[[1," "],[10,0],[14,0,"alert alert-error"],[12],[1,[30,0,["error"]]],[13],[1,"\\n "],[10,0],[14,0,"edit-actions"],[12],[1,"\\n "],[11,"button"],[24,0,"btn btn-outline"],[24,4,"button"],[4,[32,2],["click",[30,0,["resetAndClose"]]],null],[12],[1,"\\n Close\\n "],[13],[1,"\\n "],[11,"button"],[24,0,"btn btn-primary"],[24,4,"button"],[4,[32,2],["click",[30,0,["retry"]]],null],[12],[1,"\\n Try Again\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n"]],[]]]]]],["label"],["if","each","-track-array"]]',moduleName:"(unknown template module)",scope:()=>({Modal:Wq,eq:Gq,on:Hw,Icon:wq,qrCode:RV}),isStrictMode:!0}),this)}},hH=Op(ig({id:null,block:'[[[11,0],[24,0,"photo-gallery-overlay"],[24,"role","dialog"],[24,"tabindex","-1"],[4,[32,0],["click",[30,1]],null],[4,[30,2],[[30,3]],null],[12],[1,"\\n"],[1," "],[10,0],[14,0,"photo-gallery-content"],[15,"data-current-event-id",[30,4,["eventId"]]],[12],[1,"\\n "],[10,0],[14,0,"photo-gallery-header"],[12],[1,"\\n "],[10,0],[14,0,"actions-btn-container"],[12],[1,"\\n "],[8,[32,1],null,[["@iconSize","@triggerIcon","@iconColor"],[24,[30,5],"white"]],[["default"],[[[[1,"\\n "],[11,"button"],[24,0,"dropdown-item"],[24,4,"button"],[4,[32,0],["click",[28,[32,2],[[30,7],[30,6]],null]],null],[12],[1,"Copy Photo Event ID"],[13],[1,"\\n"],[41,[30,8],[[[1," "],[11,"button"],[24,0,"dropdown-item"],[24,4,"button"],[4,[32,0],["click",[28,[32,2],[[30,9],[30,6]],null]],null],[12],[1,"Zap this photo"],[13],[1,"\\n"]],[]],null],[41,[30,10],[[[1," "],[11,"button"],[24,0,"dropdown-item text-danger"],[24,4,"button"],[4,[32,0],["click",[28,[32,2],[[30,11,["perform"]],[30,6]],null]],null],[12],[1,"Delete Photo"],[13],[1,"\\n"]],[]],null],[1," "]],[6]]]]],[1,"\\n "],[13],[1,"\\n\\n"],[41,[28,[32,3],[[30,12],[30,13]],null],[[[1," "],[10,0],[14,0,"photo-gallery-uploader-info"],[12],[1,"\\n"],[41,[30,12],[[[1," "],[10,1],[14,0,"photo-gallery-uploader-name"],[12],[1,[30,12]],[13],[1,"\\n"]],[]],null],[41,[30,13],[[[1," "],[10,1],[14,0,"photo-gallery-uploader-date"],[12],[1,"\\n "],[1,[28,[32,4],[[30,13]],null]],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n\\n "],[11,"button"],[24,0,"close-btn btn-text"],[24,"aria-label","Close gallery"],[24,"title","Close"],[24,4,"button"],[4,[32,0],["click",[30,14]],null],[12],[1,"\\n "],[8,[32,5],null,[["@name","@size","@color"],["x",24,"white"]],null],[1,"\\n "],[13],[1,"\\n\\n "],[10,0],[14,0,"main-photo-container"],[12],[1,"\\n "],[8,[32,6],null,[["@variant","@photos","@scrollToEventId","@onVisiblePhotoChange","@name"],["gallery-main",[30,15],[30,4,["eventId"]],[30,16],[30,17]]],null],[1,"\\n "],[13],[1,"\\n\\n "],[10,0],[14,0,"thumbnail-strip-container"],[12],[1,"\\n "],[8,[32,6],null,[["@variant","@photos","@scrollToEventId","@onPhotoClick","@name"],["gallery-thumbnails",[30,15],[30,4,["eventId"]],[30,18],[30,17]]],null],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n\\n"],[41,[30,19],[[[1," "],[8,[32,7],null,[["@photo","@onClose"],[[30,4],[30,20]]],null],[1,"\\n"]],[]],null],[13]],["@handleBackgroundClick","@bindKeyboard","@handleKeydown","@currentPhoto","@triggerIcon","closeMenu","@copyEventId","@canZapPhoto","@openZap","@canDeletePhoto","@deletePhotoTask","@uploaderName","@photoDate","@handleClose","@photos","@handleVisiblePhotoChange","@placeName","@selectPhoto","@zapModalOpen","@closeZap"],["if"]]',moduleName:"(unknown template module)",scope:()=>({on:Hw,DropdownMenu:aH,fn:zq,or:Uq,formatRelativeDate:Bq,Icon:wq,PhotoCarousel:oH,ZapPhotoModal:uH}),isStrictMode:!0}),qq()),dH=class extends vq{get isTesting(){return"test"===ix.environment}get destinationElement(){return document.getElementById("modal-portal")||document.body}static{BF(this.prototype,"toast",[pp])}#Mt=void qF(this,"toast");static{BF(this.prototype,"nostrAuth",[pp])}#N=void qF(this,"nostrAuth");static{BF(this.prototype,"nostrData",[pp])}#F=void qF(this,"nostrData");static{BF(this.prototype,"nostrRelay",[pp])}#at=void qF(this,"nostrRelay");static{BF(this.prototype,"nostrZap",[pp])}#fe=void qF(this,"nostrZap");static{BF(this.prototype,"blossom",[pp])}#Qt=void qF(this,"blossom");static{BF(this.prototype,"settings",[pp])}#z=void qF(this,"settings");static{BF(this.prototype,"currentPhoto",[Wr],function(){return this.args.selectedPhoto||this.args.photos?.[0]})}#Ce=void qF(this,"currentPhoto");static{BF(this.prototype,"zapModalOpen",[Wr],function(){return!1})}#Se=void qF(this,"zapModalOpen");get triggerIcon(){return"undefined"!=typeof window&&window.innerWidth<=768?"more-vertical":"more-horizontal"}get isCreator(){return this.currentPhoto?.pubkey&&this.nostrAuth.pubkey&&this.currentPhoto.pubkey===this.nostrAuth.pubkey}get canDeletePhoto(){return this.isCreator&&!0===this.settings.experimentalEnablePhotoDeletion}get canZapPhoto(){return!this.isCreator&&this.nostrAuth.isConnected&&!!this.nostrZap.getLightningAddress(this.currentPhoto?.pubkey)}get uploaderName(){const t=this.currentPhoto?.pubkey;if(!t)return null;const e=this.nostrData.getProfile?.(t);return e&&(e.displayName||e.display_name||e.name)||null}get photoDate(){return this.currentPhoto?.publishedAt||this.currentPhoto?.createdAt||null}bindKeyboard=Xq((t,[e])=>(document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)));handleClose(){this.args.onClose&&this.args.onClose()}static{$F(this.prototype,"handleClose",[Vl])}handleBackgroundClick(t){t.target.closest(".thumbnail-strip-container")||t.target.closest(".carousel-nav-btn")||t.target.closest(".close-btn")||t.target.closest(".photo-gallery-header")||t.target.closest(".modal-overlay")||this.handleClose()}static{$F(this.prototype,"handleBackgroundClick",[Vl])}selectPhoto(t){this.currentPhoto=t}static{$F(this.prototype,"selectPhoto",[Vl])}handleVisiblePhotoChange(t){this.currentPhoto!==t&&(this.currentPhoto=t)}static{$F(this.prototype,"handleVisiblePhotoChange",[Vl])}handleKeydown(t){if(!this.args.photos||0===this.args.photos.length)return;if("Escape"===t.key)return void this.handleClose();const e=this.args.photos.indexOf(this.currentPhoto);-1!==e&&("ArrowLeft"===t.key&&e>0?this.currentPhoto=this.args.photos[e-1]:"ArrowRight"===t.key&&e({context:this,generator:function*(t){if(confirm("Are you sure you want to delete this photo? This cannot be undone."))try{const n=[["e",this.currentPhoto.eventId]];this.currentPhoto.placeIdentifier&&n.push(["i",this.currentPhoto.placeIdentifier]);const r=yield QN.fromKind(5).content("Deleted photo").modifyPublicTags(()=>n).as(this.nostrAuth.signer).sign();yield this.nostrRelay.publish(this.nostrData.activeWriteRelays,r),this.nostrData.store.add(r);const i=/[0-9a-f]{64}/i;if(this.currentPhoto.url){const t=this.currentPhoto.url.match(i);if(t)try{yield this.blossom.delete(t[0])}catch(e){console.warn("Failed to delete main image from blossom:",e)}}if(this.currentPhoto.thumbUrl){const t=this.currentPhoto.thumbUrl.match(i);if(t)try{yield this.blossom.delete(t[0])}catch(e){console.warn("Failed to delete thumb image from blossom:",e)}}this.toast.show("Photo deleted successfully"),t&&t(),this.handleClose()}catch(e){console.error("Failed to delete photo:",e),this.toast.show("Failed to delete photo: "+e.message),t&&t()}else t&&t()}}),null,"deletePhotoTask",null);static{Op(ig({id:null,block:'[[[41,[30,0,["isTesting"]],[[[1," "],[8,[32,0],null,[["@handleBackgroundClick","@bindKeyboard","@handleKeydown","@copyEventId","@canDeletePhoto","@deletePhotoTask","@handleClose","@photos","@currentPhoto","@handleVisiblePhotoChange","@placeName","@selectPhoto","@uploaderName","@photoDate","@triggerIcon","@openZap","@closeZap","@zapModalOpen","@canZapPhoto"],[[30,0,["handleBackgroundClick"]],[30,0,["bindKeyboard"]],[30,0,["handleKeydown"]],[30,0,["copyEventId"]],[30,0,["canDeletePhoto"]],[30,0,["deletePhotoTask"]],[30,0,["handleClose"]],[30,1],[30,0,["currentPhoto"]],[30,0,["handleVisiblePhotoChange"]],[30,2],[30,0,["selectPhoto"]],[30,0,["uploaderName"]],[30,0,["photoDate"]],[30,0,["triggerIcon"]],[30,0,["openZap"]],[30,0,["closeZap"]],[30,0,["zapModalOpen"]],[30,0,["canZapPhoto"]]]],null],[1,"\\n"]],[]],[[[40,[[[1," "],[8,[32,0],null,[["@handleBackgroundClick","@bindKeyboard","@handleKeydown","@copyEventId","@canDeletePhoto","@deletePhotoTask","@handleClose","@photos","@currentPhoto","@handleVisiblePhotoChange","@placeName","@selectPhoto","@uploaderName","@photoDate","@triggerIcon","@openZap","@closeZap","@zapModalOpen","@canZapPhoto"],[[30,0,["handleBackgroundClick"]],[30,0,["bindKeyboard"]],[30,0,["handleKeydown"]],[30,0,["copyEventId"]],[30,0,["canDeletePhoto"]],[30,0,["deletePhotoTask"]],[30,0,["handleClose"]],[30,1],[30,0,["currentPhoto"]],[30,0,["handleVisiblePhotoChange"]],[30,2],[30,0,["selectPhoto"]],[30,0,["uploaderName"]],[30,0,["photoDate"]],[30,0,["triggerIcon"]],[30,0,["openZap"]],[30,0,["closeZap"]],[30,0,["zapModalOpen"]],[30,0,["canZapPhoto"]]]],null],[1,"\\n"]],[]],"%cursor:0%",[28,[31,2],[[30,0,["destinationElement"]]],null]]],[]]]],["@photos","@placeName"],["if","in-element","-in-el-null"]]',moduleName:"(unknown template module)",scope:()=>({GalleryContent:hH}),isStrictMode:!0}),this)}},pH=class extends vq{static{BF(this.prototype,"storage",[pp])}#U=void qF(this,"storage");static{BF(this.prototype,"nostrAuth",[pp])}#N=void qF(this,"nostrAuth");static{BF(this.prototype,"nostrData",[pp])}#F=void qF(this,"nostrData");static{BF(this.prototype,"mapUi",[pp])}#Zt=void qF(this,"mapUi");static{BF(this.prototype,"isEditing",[Wr],function(){return!1})}#ke=void qF(this,"isEditing");static{BF(this.prototype,"showLists",[Wr],function(){return!1})}#Ee=void qF(this,"showLists");static{BF(this.prototype,"isPhotoUploadActive",[Wr],function(){return!1})}#Re=void qF(this,"isPhotoUploadActive");static{BF(this.prototype,"isConnectingNostr",[Wr],function(){return!1})}#Te=void qF(this,"isConnectingNostr");static{BF(this.prototype,"isGalleryOpen",[Wr],function(){return!1})}#Le=void qF(this,"isGalleryOpen");static{BF(this.prototype,"selectedGalleryPhoto",[Wr],function(){return null})}#Ie=void qF(this,"selectedGalleryPhoto");static{BF(this.prototype,"isPhotoUploadModalOpen",[Wr],function(){return!1})}#Pe=void qF(this,"isPhotoUploadModalOpen");static{BF(this.prototype,"isNostrConnectModalOpen",[Wr],function(){return!1})}#Ht=void qF(this,"isNostrConnectModalOpen");static{BF(this.prototype,"newlyUploadedPhotoId",[Wr],function(){return null})}#Me=void qF(this,"newlyUploadedPhotoId");handleUploadStateChange(t){this.isPhotoUploadActive=t}static{$F(this.prototype,"handleUploadStateChange",[Vl])}openPhotoUploadModal(t){t&&t.preventDefault(),this.nostrAuth.isConnected?this.isPhotoUploadModalOpen=!0:this.isNostrConnectModalOpen=!0}static{$F(this.prototype,"openPhotoUploadModal",[Vl])}closePhotoUploadModal(t){this.isPhotoUploadActive||(this.isPhotoUploadModalOpen=!1,"string"==typeof t&&(this.newlyUploadedPhotoId=t,setTimeout(()=>{const t=document.querySelector(".sidebar-content");t&&(t.scrollTop=0)},50)))}static{$F(this.prototype,"closePhotoUploadModal",[Vl])}closeNostrConnectModal(){this.isNostrConnectModalOpen=!1}static{$F(this.prototype,"closeNostrConnectModal",[Vl])}onNostrConnected(){this.isNostrConnectModalOpen=!1,this.isPhotoUploadModalOpen=!0}static{$F(this.prototype,"onNostrConnected",[Vl])}get isSaved(){return this.storage.isPlaceSaved(this.place.id||this.place.osmId)}get place(){return this.args.place||{}}get saveablePlace(){return this.place.createdAt?this.place:x$(this.place)}get tags(){return this.place.osmTags||{}}get name(){return this.place.title||TB(this.tags)||"Unnamed Place"}get photos(){return fU(this.nostrData.placePhotos).map(t=>({...t,style:qv(`--slide-ratio: ${t.aspectRatio};`)}))}startEditing(){this.isSaved&&(this.isEditing=!0)}static{$F(this.prototype,"startEditing",[Vl])}cancelEditing(){this.isEditing=!1}static{$F(this.prototype,"cancelEditing",[Vl])}toggleLists(t){t&&t.stopPropagation(),this.showLists=!this.showLists}static{$F(this.prototype,"toggleLists",[Vl])}closeLists(){this.showLists=!1}static{$F(this.prototype,"closeLists",[Vl])}async saveChanges(t){this.args.onSave&&await this.args.onSave({...this.place,...t}),this.isEditing=!1}static{$F(this.prototype,"saveChanges",[Vl])}get type(){return IB(this.tags)}get address(){const t=this.tags,e=[],n=(...e)=>{for(const n of e)if(t[n])return t[n];return null};let r=n("addr:street","street");const i=n("addr:housenumber","housenumber");r&&(i&&(r=`${r} ${i}`),e.push(r));let s=n("addr:city","city");const o=n("addr:postcode","postcode");s&&(o&&(s=`${o} ${s}`),e.push(s));const a=n("addr:state","state"),l=n("addr:country","country");return a&&a!==s&&e.push(a),l&&e.push(l),0===e.length?null:e.join(", ")}formatMultiLine(t,e){if(!t)return null;const n=[...new Set(t.split(";").map(t=>t.trim()).filter(Boolean))];return 0===n.length?null:qv("phone"===e?n.map(t=>`${t}`).join("
"):"email"===e?n.map(t=>`${t}`).join("
"):"whatsapp"===e?n.map(t=>`${t}`).join("
"):"url"===e?n.map(t=>`${this.getDomain(t)}`).join("
"):n.join("
"))}get phone(){const t=[this.tags.phone,this.tags["contact:phone"],this.tags.mobile,this.tags["contact:mobile"]].filter(Boolean);return 0===t.length?null:this.formatMultiLine(t.join(";"),"phone")}get whatsapp(){const t=[this.tags.whatsapp,this.tags["contact:whatsapp"]].filter(Boolean);return 0===t.length?null:this.formatMultiLine(t.join(";"),"whatsapp")}get email(){const t=this.tags.email||this.tags["contact:email"];return this.formatMultiLine(t,"email")}get website(){const t=this.place.url||this.tags.website||this.tags["contact:website"];return this.formatMultiLine(t,"url")}getDomain(t){try{return new URL(t).hostname}catch{return t}}get openingHours(){const t=this.tags.opening_hours;return this.formatMultiLine(t)}get cuisine(){return this.tags.cuisine?this.tags.cuisine.split(";").map(t=>SB(t)).join(", "):null}get facebook(){return k$(this.tags,"facebook")}get instagram(){return k$(this.tags,"instagram")}get wikipedia(){const t=this.tags.wikipedia;return t?t.split(";").map(t=>t.trim()).filter(Boolean)[0]:null}get geoLink(){const t=this.place.lat,e=this.place.lon;return t&&e?`geo:${t},${e}?q=${t},${e}(${encodeURIComponent(this.name)})`:"#"}get visibleGeoLink(){const t=this.place.lat,e=this.place.lon;return t&&e?`${Number(t).toFixed(6)}, ${Number(e).toFixed(6)}`:""}get osmUrl(){const t=this.place.osmId;if(t)return`https://www.openstreetmap.org/${this.place.osmType||"node"}/${t}`;const e=this.place.lat,n=this.place.lon;if(!e||!n)return null;const r=this.mapUi.currentCenter?.lat??e,i=this.mapUi.currentCenter?.lon??n,s=this.mapUi.currentZoom??17,o=Math.round(s);return`https://www.openstreetmap.org/search?lat=${e}&lon=${n}&zoom=${o}#map=${o}/${Number(r).toFixed(5)}/${Number(i).toFixed(5)}`}get gmapsUrl(){return this.place.gmapsId||this.place.osmId?`https://www.google.com/maps/search/?api=1&query=${this.name}&query=${this.place.lat},${this.place.lon}`:null}get showDescription(){return"photon"!==this.place.source&&!!this.place.description}openGallery(t){this.selectedGalleryPhoto=t,this.isGalleryOpen=!0}static{$F(this.prototype,"openGallery",[Vl])}closeGallery(){this.isGalleryOpen=!1,this.selectedGalleryPhoto=null}static{$F(this.prototype,"closeGallery",[Vl])}static{Op(ig({id:null,block:'[[[10,0],[14,0,"place-details"],[12],[1,"\\n"],[41,[30,0,["isEditing"]],[[[1," "],[8,[32,0],null,[["@place","@onSave","@onCancel"],[[30,0,["place"]],[30,0,["saveChanges"]],[30,0,["cancelEditing"]]]],null],[1,"\\n"]],[]],[[[1," "],[8,[32,1],null,[["@variant","@photos","@name","@resetKey","@scrollToEventId","@onPhotoClick"],["inline",[30,0,["photos"]],[30,0,["name"]],[30,0,["place","osmId"]],[30,0,["newlyUploadedPhotoId"]],[30,0,["openGallery"]]]],null],[1,"\\n "],[10,"h3"],[12],[1,[30,0,["name"]]],[13],[1,"\\n "],[10,2],[14,0,"place-type"],[12],[1,"\\n "],[1,[30,0,["type"]]],[1,"\\n "],[13],[1,"\\n"],[41,[30,0,["showDescription"]],[[[1," "],[10,2],[14,0,"place-description"],[12],[1,"\\n "],[1,[30,0,["place","description"]]],[1,"\\n "],[13],[1,"\\n"]],[]],null]],[]]],[1,"\\n "],[10,0],[14,0,"actions"],[12],[1,"\\n "],[10,0],[14,0,"save-button-wrapper"],[12],[1,"\\n "],[11,"button"],[16,0,[52,[30,0,["isSaved"]],"btn btn-secondary","btn btn-outline"]],[24,4,"button"],[4,[32,2],["click",[30,0,["toggleLists"]]],null],[12],[1,"\\n "],[8,[32,3],null,[["@name","@color"],["bookmark",[52,[30,0,["isSaved"]],"currentColor","var(--link-color)"]]],null],[1,"\\n "],[1,[52,[30,0,["isSaved"]],"Saved","Save"]],[1,"\\n "],[13],[1,"\\n\\n"],[41,[30,0,["showLists"]],[[[1," "],[8,[32,4],null,[["@place","@onClose","@isSaved"],[[30,0,["saveablePlace"]],[30,0,["closeLists"]],[30,0,["isSaved"]]]],null],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n\\n"],[41,[30,0,["isSaved"]],[[[1," "],[11,"button"],[24,0,"btn btn-outline"],[24,"title","Edit"],[16,"disabled",[30,0,["isEditing"]]],[24,4,"button"],[4,[32,2],["click",[30,0,["startEditing"]]],null],[12],[1,"\\n "],[8,[32,3],null,[["@name","@color"],["edit","var(--link-color)"]],null],[1,"\\n Edit\\n "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n\\n "],[10,0],[14,0,"meta-info"],[12],[1,"\\n\\n"],[41,[30,0,["cuisine"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["fork-and-knife","Cuisine"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[1,[30,0,["cuisine"]]],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["openingHours"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["clock","Opening hours"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[1,[30,0,["openingHours"]]],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["phone"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["phone","Phone"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[1,[30,0,["phone"]]],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["whatsapp"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["whatsapp","WhatsApp"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[1,[30,0,["whatsapp"]]],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["website"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["globe","Website"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[1,[30,0,["website"]]],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["email"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["mail","Email"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[1,[30,0,["email"]]],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["facebook"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["facebook","Facebook"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[10,3],[15,6,[30,0,["facebook","url"]]],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[1,"\\n "],[1,[30,0,["facebook","username"]]],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["instagram"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["instagram","Instagram"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[10,3],[15,6,[30,0,["instagram","url"]]],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[1,"\\n "],[1,[30,0,["instagram","username"]]],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["wikipedia"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["wikipedia","Wikipedia"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[10,3],[15,6,[29,["https://wikipedia.org/wiki/",[30,0,["wikipedia"]]]]],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[1,"\\n Wikipedia\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"meta-info"],[12],[1,"\\n\\n"],[41,[30,0,["address"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["home","Address"]],null],[1,"\\n "],[10,1],[12],[1,[30,0,["address"]]],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["map-pin","Geo link"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[10,3],[15,6,[30,0,["geoLink"]]],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[1,"\\n "],[1,[30,0,["visibleGeoLink"]]],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n\\n"],[41,[30,0,["osmUrl"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name"],["map"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[10,3],[15,6,[30,0,["osmUrl"]]],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[1,"\\n OpenStreetMap\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["gmapsUrl"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name"],["map"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[10,3],[15,6,[30,0,["gmapsUrl"]]],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[1,"\\n Google Maps\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n "],[13],[1,"\\n\\n"],[41,[30,0,["place","osmId"]],[[[1," "],[10,0],[14,0,"meta-info"],[12],[1,"\\n "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name"],["feather-camera"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[11,"button"],[24,0,"btn-link"],[24,4,"button"],[4,[32,2],["click",[30,0,["openPhotoUploadModal"]]],null],[12],[1,"\\n Add a photo\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[13],[1,"\\n\\n"],[41,[30,0,["isPhotoUploadModalOpen"]],[[[1," "],[8,[32,5],null,[["@onClose","@disableClose"],[[30,0,["closePhotoUploadModal"]],[30,0,["isPhotoUploadActive"]]]],[["default"],[[[[1,"\\n "],[8,[32,6],null,[["@place","@onClose","@onUploadStateChange"],[[30,0,["saveablePlace"]],[30,0,["closePhotoUploadModal"]],[30,0,["handleUploadStateChange"]]]],null],[1,"\\n "]],[]]]]],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["isNostrConnectModalOpen"]],[[[1," "],[8,[32,5],null,[["@onClose"],[[30,0,["closeNostrConnectModal"]]]],[["default"],[[[[1,"\\n "],[8,[32,7],null,[["@onConnect"],[[30,0,["onNostrConnected"]]]],null],[1,"\\n "]],[]]]]],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["isGalleryOpen"]],[[[1," "],[8,[32,8],null,[["@photos","@selectedPhoto","@placeName","@onClose"],[[30,0,["photos"]],[30,0,["selectedGalleryPhoto"]],[30,0,["name"]],[30,0,["closeGallery"]]]],null],[1,"\\n"]],[]],null]],[],["if"]]',moduleName:"(unknown template module)",scope:()=>({PlaceEditForm:XW,PhotoCarousel:oH,on:Hw,Icon:wq,PlaceListsManager:QW,Modal:Wq,PlacePhotoUpload:iH,NostrConnect:TV,PhotoGallery:dH}),isStrictMode:!0}),this)}},fH=Eb(function([t]){return SB(t)}),gH=class extends vq{static{BF(this.prototype,"storage",[pp])}#U=void qF(this,"storage");static{BF(this.prototype,"router",[pp])}#Gt=void qF(this,"router");static{BF(this.prototype,"mapUi",[pp])}#Zt=void qF(this,"mapUi");static{BF(this.prototype,"nostrData",[pp])}#F=void qF(this,"nostrData");createNewPlace(){const t=this.router.currentRoute.queryParams,e=t.lat,n=t.lon;e&&n?this.router.transitionTo("place.new",{queryParams:{lat:e,lon:n}}):this.router.transitionTo("place.new",{queryParams:{lat:0,lon:0}})}static{$F(this.prototype,"createNewPlace",[Vl])}selectPlace(t){this.args.onSelect&&this.args.onSelect(t)}static{$F(this.prototype,"selectPlace",[Vl])}clearSelection(){this.args.onSelect&&this.args.onSelect(null)}static{$F(this.prototype,"clearSelection",[Vl])}async toggleSave(t){if(t)if(t.createdAt)try{if(await this.storage.removePlace(t),console.debug("Place deleted:",t.title),this.args.onBookmarkChange&&this.args.onBookmarkChange(),this.args.onUpdate){const e={...t,id:void 0,geohash:void 0,createdAt:void 0};this.args.onUpdate(e)}this.args.onSelect&&this.args.onSelect(null),this.args.onClose&&this.args.onClose()}catch(e){console.error("Failed to delete:",e),alert("Failed to delete: "+e.message)}else{const e={title:TB(t.osmTags,"Untitled Place"),lat:t.lat,lon:t.lon,tags:[],url:t.osmTags.website,osmId:String(t.osmId||t.id),osmType:t.osmType,osmTags:t.osmTags};try{const t=await this.storage.storePlace(e);console.debug("Place saved:",e.title),this.args.onBookmarkChange&&this.args.onBookmarkChange(),this.args.onUpdate&&this.args.onUpdate(t),this.args.onSelect&&this.args.onSelect(t)}catch(d8){console.error("Failed to save place:",d8),alert("Failed to save place: "+d8.message)}}}static{$F(this.prototype,"toggleSave",[Vl])}async updateBookmark(t){try{const e=await this.storage.updatePlace(t);console.debug("Place updated:",e.title),this.args.onBookmarkChange&&this.args.onBookmarkChange(),this.args.onUpdate&&this.args.onUpdate(e)}catch(e){console.error("Failed to update place:",e),alert("Failed to update place: "+e.message)}}static{$F(this.prototype,"updateBookmark",[Vl])}get isNearbySearch(){const t=this.router.currentRoute.queryParams;return!t.q&&!t.category&&t.lat&&t.lon}get hasHeaderPhoto(){return this.args.selectedPlace&&this.nostrData.placePhotos&&this.nostrData.placePhotos.length>0}static{Op(ig({id:null,block:'[[[10,0],[14,0,"sidebar"],[12],[1,"\\n "],[10,0],[15,0,[29,["sidebar-header\\n ",[52,[30,0,["hasHeaderPhoto"]],"no-border"],"\\n ",[52,[28,[32,0],[[28,[32,1],[[30,1]],null],[30,2]],null],"has-back-btn"]]]],[12],[1,"\\n"],[41,[30,1],[[[1," "],[11,"button"],[24,0,"back-btn"],[24,4,"button"],[4,[32,2],["click",[30,0,["clearSelection"]]],null],[12],[8,[32,3],null,[["@name","@size","@color"],["arrow-left",20,"#333"]],null],[13],[1,"\\n"]],[]],[[[41,[30,2],[[[1," "],[11,"button"],[24,0,"back-btn"],[24,4,"button"],[4,[32,2],["click",[30,2]],null],[12],[8,[32,3],null,[["@name","@size","@color"],["arrow-left",20,"#333"]],null],[13],[1,"\\n"]],[]],null],[41,[30,2],[[[1," "],[10,"h2"],[14,0,"sidebar-header-text-centered"],[12],[1,"\\n "],[10,1],[14,0,"sidebar-header-icon-wrapper"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@size","@color"],["bookmark",20,[28,[32,4],[[30,3],"#898989"],null]]],null],[1,"\\n "],[13],[1,"\\n "],[1,[30,4]],[1,"\\n "],[13],[1,"\\n"]],[]],[[[41,[30,0,["isNearbySearch"]],[[[1," "],[10,"h2"],[12],[8,[32,3],null,[["@name","@size","@color"],["target",20,"#ea4335"]],null],[1,"\\n Nearby"],[13],[1,"\\n"]],[]],[[[1," "],[10,"h2"],[12],[8,[32,3],null,[["@name","@size","@color"],["search",20,"#333"]],null],[1,"\\n Results"],[13],[1,"\\n"]],[]]]],[]]]],[]]],[1," "],[11,"button"],[24,0,"close-btn"],[24,4,"button"],[4,[32,2],["click",[30,5]],null],[12],[8,[32,3],null,[["@name","@size","@color"],["x",20,"#333"]],null],[13],[1,"\\n "],[13],[1,"\\n\\n "],[11,0],[24,0,"sidebar-content"],[4,[32,5],[[30,6]],null],[12],[1,"\\n"],[41,[30,1],[[[1," "],[8,[32,6],null,[["@place","@onToggleSave","@onSave"],[[30,1],[30,0,["toggleSave"]],[30,0,["updateBookmark"]]]],null],[1,"\\n"]],[]],[[[41,[30,7],[[[1," "],[10,0],[14,0,"sidebar-loading"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@size","@color"],["loading-ring",24,"#898989"]],null],[1,"\\n "],[13],[1,"\\n"]],[]],[[[41,[30,8],[[[1," "],[10,"ul"],[14,0,"places-list"],[12],[1,"\\n"],[42,[28,[31,2],[[28,[31,2],[[30,8]],null]],null],null,[[[1," "],[10,"li"],[12],[1,"\\n "],[11,"button"],[24,0,"place-item"],[24,4,"button"],[4,[32,2],["click",[28,[32,7],[[30,0,["selectPlace"]],[30,9]],null]],null],[12],[1,"\\n "],[10,0],[14,0,"place-name"],[12],[1,[28,[32,4],[[30,9,["title"]],[30,9,["osmTags","name"]],[30,9,["osmTags","name:en"]],"Unnamed Place"],null]],[13],[1,"\\n "],[10,0],[14,0,"place-type"],[12],[1,"\\n"],[41,[28,[32,8],[[30,9,["source"]],"osm"],null],[[[1," "],[1,[28,[32,9],[[30,9,["type"]]],null]],[1,"\\n"]],[]],[[[41,[28,[32,8],[[30,9,["source"]],"photon"],null],[[[1," "],[1,[30,9,["description"]]],[1,"\\n"]],[]],[[[41,[28,[32,10],[[30,9,["osmTags"]]],null],[[[1," "],[1,[28,[32,10],[[30,9,["osmTags"]]],null]],[1,"\\n"]],[]],[[[1," Saved place\\n "]],[]]]],[]]]],[]]],[1," "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[9]],null],[1," "],[13],[1,"\\n"]],[]],[[[41,[30,0,["isNearbySearch"]],[[[1," "],[10,2],[14,0,"empty-state"],[12],[1,"No places found nearby."],[13],[1,"\\n"]],[]],[[[1," "],[10,2],[14,0,"empty-state"],[12],[1,"No results found."],[13],[1,"\\n"]],[]]]],[]]],[1,"\\n "],[11,"button"],[24,0,"btn btn-outline create-place"],[24,4,"button"],[4,[32,2],["click",[30,0,["createNewPlace"]]],null],[12],[1,"\\n "],[8,[32,3],null,[["@name","@size","@color"],["plus",18,"var(--link-color)"]],null],[1,"\\n Create new place\\n "],[13],[1,"\\n"]],[]]]],[]]],[1," "],[13],[1,"\\n"],[13]],["@selectedPlace","@onBack","@color","@title","@onClose","@scrollTop","@isLoading","@places","place"],["if","each","-track-array"]]',moduleName:"(unknown template module)",scope:()=>({and:Hq,not:Zq,on:Hw,Icon:wq,or:Uq,restoreScroll:LV,PlaceDetails:pH,fn:zq,eq:Gq,humanizeOsmTag:fH,getPlaceType:IB}),isStrictMode:!0}),this)}},mH=a({default:()=>yH}),yH=Op(ig({id:null,block:'[[[41,[30,1,["mapUi","isSidebarVisible"]],[[[1," "],[8,[32,0],null,[["@places","@title","@color","@scrollTop","@isLoading","@onSelect","@onClose","@onBack"],[[30,1,["places"]],[30,1,["listTitle"]],[30,1,["listColor"]],[30,1,["scrollTop"]],[30,1,["loadPlacesTask","isRunning"]],[30,1,["selectPlace"]],[30,1,["close"]],[30,1,["backToLists"]]]],null],[1,"\\n"]],[]],null]],["@controller"],["if"]]',moduleName:"(unknown template module)",scope:()=>({PlacesSidebar:gH}),isStrictMode:!0}),qq()),vH=a({default:()=>CH});function bH(t){const e=t.createdAt;if(!e)return 0;if("number"==typeof e)return e;const n=Date.parse(e);return isNaN(n)?0:n}var wH,_H,xH,CH=class extends eu{static{BF(this.prototype,"router",[pp])}#Gt=void qF(this,"router");static{BF(this.prototype,"mapUi",[pp])}#Zt=void qF(this,"mapUi");static{BF(this.prototype,"storage",[pp])}#U=void qF(this,"storage");static{BF(this.prototype,"model",[Wr])}#Ae=void qF(this,"model");static{BF(this.prototype,"loadedPlaces",[Wr],function(){return[]})}#Oe=void qF(this,"loadedPlaces");get listId(){return this.model?.list_id}loadPlacesTask=$W(()=>({context:this,generator:function*(t){this.loadedPlaces=[];try{this.loadedPlaces=yield this.storage.getPlacesInList(t)}catch(e){console.error("Failed to load places in list",t,e),this.loadedPlaces=[]}}}),{restartable:!0},"loadPlacesTask",null);get scrollTop(){return this.mapUi.getScrollPosition(`list-${this.listId}`)}get listColor(){const t=this.storage.lists.find(t=>t.id===this.listId);return t&&t.color?t.color:getComputedStyle(document.documentElement).getPropertyValue("--default-list-color").trim()}get listTitle(){const t=this.storage.lists.find(t=>t.id===this.listId);return t?t.title:"Collections"}get places(){const t=this.storage.lists.find(t=>t.id===this.listId),e=new Set(t?.placeRefs?.map(t=>t.id)||[]),n=this.storage.savedPlaces.filter(t=>e.has(t.id)),r=[],i=new Set;return n.forEach(t=>{r.push(t),i.add(t.id)}),this.loadedPlaces.forEach(t=>{e.has(t.id)&&!i.has(t.id)&&(r.push(t),i.add(t.id))}),r.sort((t,e)=>bH(e)-bH(t))}selectPlace(t){if(t){const e=document.querySelector(".sidebar-content");e&&this.mapUi.saveScrollPosition(`list-${this.listId}`,e.scrollTop),this.mapUi.returnToRoute={name:"lists.list",model:this.listId},this.mapUi.showSidebar(),this.mapUi.preventNextZoom=!0,this.router.transitionTo("place",t)}}static{$F(this.prototype,"selectPlace",[Vl])}close(){this.router.transitionTo("index")}static{$F(this.prototype,"close",[Vl])}backToLists(){this.router.transitionTo("lists.index")}static{$F(this.prototype,"backToLists",[Vl])}},SH=a({default:()=>kH}),kH=class extends Qh{static{BF(this.prototype,"storage",[pp])}#U=void qF(this,"storage");model(t){return{list_id:t.list_id}}setupController(t,e){console.debug("DEBUG: setupController controller is:",t),console.debug("DEBUG: controller.loadPlacesTask is:",t?.loadPlacesTask),t.model=e,super.setupController(t,e),t&&t.loadPlacesTask?t.loadPlacesTask.perform(e.list_id):console.error("DEBUG: ERROR! controller.loadPlacesTask is undefined!")}},EH=a({default:()=>RH}),RH=class extends vq{static{BF(this.prototype,"storage",[pp])}#U=void qF(this,"storage");static{BF(this.prototype,"router",[pp])}#Gt=void qF(this,"router");static{BF(this.prototype,"mapUi",[pp])}#Zt=void qF(this,"mapUi");styleFor(t){const e=t||getComputedStyle(document.documentElement).getPropertyValue("--default-list-color").trim();return qv(`background-color: ${e}`)}selectList(t){this.router.transitionTo("lists.list",t)}static{$F(this.prototype,"selectList",[Vl])}close(){this.router.transitionTo("index")}static{$F(this.prototype,"close",[Vl])}backToMenu(){this.router.transitionTo("menu")}static{$F(this.prototype,"backToMenu",[Vl])}static{Op(ig({id:null,block:'[[[41,[30,0,["mapUi","isSidebarVisible"]],[[[1," "],[10,0],[14,0,"sidebar"],[12],[1,"\\n "],[10,0],[14,0,"sidebar-header has-back-btn"],[12],[1,"\\n "],[11,"button"],[24,0,"back-btn"],[24,4,"button"],[4,[32,0],["click",[30,0,["backToMenu"]]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["arrow-left",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n "],[10,"h2"],[14,0,"sidebar-header-text-centered"],[12],[1,"\\n "],[10,1],[14,0,"sidebar-header-icon-wrapper"],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["bookmark",20,"#898989"]],null],[1,"\\n "],[13],[1,"\\n Collections\\n "],[13],[1,"\\n "],[11,"button"],[24,0,"close-btn"],[24,4,"button"],[4,[32,0],["click",[30,0,["close"]]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["x",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n\\n "],[10,0],[14,0,"sidebar-content"],[12],[1,"\\n "],[10,"ul"],[14,0,"places-list"],[12],[1,"\\n"],[42,[28,[31,2],[[28,[31,2],[[30,0,["storage","lists"]]],null]],null],null,[[[1," "],[10,"li"],[12],[1,"\\n "],[11,"button"],[24,0,"lists-index-item"],[24,4,"button"],[4,[32,0],["click",[28,[32,2],[[30,0,["selectList"]],[30,1,["id"]]],null]],null],[12],[1,"\\n "],[10,0],[14,0,"lists-index-item-left"],[12],[1,"\\n"],[1," "],[10,1],[14,0,"list-color-dot"],[15,5,[28,[30,0,["styleFor"]],[[30,1,["color"]]],null]],[12],[13],[1,"\\n "],[10,0],[14,0,"lists-index-name"],[12],[1,[30,1,["title"]]],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"lists-index-count"],[12],[1,"\\n"],[41,[30,1,["placeRefs","length"]],[[[1," "],[1,[30,1,["placeRefs","length"]]],[1,"\\n places\\n"]],[]],[[[1," empty\\n"]],[]]],[1," "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[1]],null],[1," "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null]],["list"],["if","each","-track-array"]]',moduleName:"(unknown template module)",scope:()=>({on:Hw,Icon:wq,fn:zq}),isStrictMode:!0}),this)}},TH=a({default:()=>LH}),LH=class extends Qh{},IH=a({default:()=>PH}),PH=class extends vq{static{BF(this.prototype,"router",[pp])}#Gt=void qF(this,"router");static{BF(this.prototype,"mapUi",[pp])}#Zt=void qF(this,"mapUi");selectPlace(t){if(t){const e=document.querySelector(".sidebar-content");e&&this.mapUi.saveScrollPosition("search",e.scrollTop),this.mapUi.returnToSearch=!0,this.mapUi.showSidebar(),this.mapUi.preventNextZoom=!0,this.router.transitionTo("place",t)}}static{$F(this.prototype,"selectPlace",[Vl])}close(){this.mapUi.hideSidebar()}static{$F(this.prototype,"close",[Vl])}static{Op(ig({id:null,block:'[[[41,[30,0,["mapUi","isSidebarVisible"]],[[[1," "],[8,[32,0],null,[["@places","@scrollTop","@onSelect","@onClose"],[[30,0,["mapUi","searchResults"]],[28,[30,0,["mapUi","getScrollPosition"]],["search"],null],[30,0,["selectPlace"]],[30,0,["close"]]]],null],[1,"\\n"]],[]],null]],[],["if"]]',moduleName:"(unknown template module)",scope:()=>({PlacesSidebar:gH}),isStrictMode:!0}),this)}},MH=a({default:()=>AH}),AH=class extends eu{static{BF(this.prototype,"osm",[pp])}#B=void qF(this,"osm");static{BF(this.prototype,"photon",[pp])}#Ne=void qF(this,"photon");static{BF(this.prototype,"mapUi",[pp])}#Zt=void qF(this,"mapUi");static{BF(this.prototype,"storage",[pp])}#U=void qF(this,"storage");static{BF(this.prototype,"router",[pp])}#Gt=void qF(this,"router");static{BF(this.prototype,"toast",[pp])}#Mt=void qF(this,"toast");queryParams=["lat","lon","q","selected","category"];lat=null;lon=null;q=null;selected=null;category=null;fetchResultsTask=$W(()=>({context:this,generator:function*(t){const e=this.mapUi.currentSearch&&t.q===this.mapUi.currentSearch.q&&t.category===this.mapUi.currentSearch.category&&t.lat===this.mapUi.currentSearch.lat&&t.lon===this.mapUi.currentSearch.lon,n=this.mapUi.searchResults&&this.mapUi.searchResults.length>0;if(e&&n)return void(this.mapUi.isSidebarVisible&&this.mapUi.showSidebar());this.mapUi.hideSidebar(),this.mapUi.clearSearchResults();const r=t.lat?parseFloat(t.lat):null,i=t.lon?parseFloat(t.lon):null;let s=[],o=null,a=null;try{if(t.category&&r&&i){o="category",a=t.category,this.mapUi.startLoading(o,a);let e=this.mapUi.currentBounds;if(!e){const t=.01;e={minLat:r-t,maxLat:r+t,minLon:i-t,maxLon:i+t}}s=yield this.osm.getCategoryPois(e,t.category,r,i),s=s.map(t=>({...t,_distance:s$(r,i,t.lat,t.lon)})).sort((t,e)=>t._distance-e._distance)}else if(t.q){o="text",a=t.q,this.mapUi.startLoading(o,a),s=yield this.photon.search(t.q,r,i);const e=t.q.toLowerCase();let n=[];e.length>=3&&(n=this.storage.savedPlaces.filter(t=>t.title?.toLowerCase().includes(e)||t.description?.toLowerCase().includes(e))),n.forEach(t=>{s.find(e=>t.osmId&&e.osmId===t.osmId||e.id&&e.id===t.id)||s.push(t)})}else if(r&&i){const t=50;s=yield this.osm.getNearbyPois(r,i,t),this.storage.savedPlaces.filter(e=>s$(r,i,e.lat,e.lon)<=t).forEach(t=>{s.find(e=>t.osmId&&e.osmId===t.osmId||e.id&&e.id===t.id)||s.push(t)}),s=s.map(t=>({...t,_distance:s$(r,i,t.lat,t.lon)})).sort((t,e)=>t._distance-e._distance)}}catch(d8){return console.error("Search request failed.",d8),this.toast.show("Search request failed. Please try again."),void this.mapUi.stopSearch()}finally{o&&a&&this.mapUi.stopLoading(o,a)}s=s.map(t=>this.storage.findPlaceById(t.osmId)||t);const l=t.selected||t.q;if(l&&s.length>0){let t=s.find(t=>t.osmTags&&(t.osmTags.name===l||t.osmTags["name:en"]===l));if(!t){const e=s[0];e._distance<=10&&(t=e)}if(t)return this.router.replaceWith("place",t),void this.mapUi.stopSearch()}this.mapUi.setSearchResults(s),this.mapUi.showSidebar(),this.mapUi.stopSearch()}}),{restartable:!0},"fetchResultsTask",null)},OH=a({default:()=>NH}),NH=class extends Qh{static{BF(this.prototype,"mapUi",[pp])}#Zt=void qF(this,"mapUi");static{BF(this.prototype,"toast",[pp])}#Mt=void qF(this,"toast");queryParams={lat:{refreshModel:!0},lon:{refreshModel:!0},q:{refreshModel:!0},selected:{refreshModel:!0},category:{refreshModel:!0}};model(t){return t}setupController(t,e){super.setupController(t,e),t.fetchResultsTask.perform(e);const{q:n,category:r,lat:i,lon:s}=this.paramsFor("search");this.mapUi.currentSearch={q:n,category:r,lat:i,lon:s}}resetController(t,e){e&&(t.fetchResultsTask.cancelAll(),this.mapUi.stopSearch())}error(t,e){return this.mapUi.stopSearch(),this.toast.show("Search request failed. Please try again."),e&&e.abort(),!1}static{$F(this.prototype,"error",[Vl])}},FH=a({cacheFor:()=>tr,guidFor:()=>ll}),zH=(wH=pp("page-title"),xH=V$((_H=class extends _b{constructor(t){super(t),q$(this,"tokens",xH,this),$$(this,"tokenId",ll(this)),this.tokens.push({id:this.tokenId})}compute(t,e){const n={...e,id:this.tokenId,title:t.join("")};return this.tokens.push(n),this.tokens.scheduleTitleUpdate(),""}willDestroy(){super.willDestroy(),this.tokens.remove(this.tokenId),this.tokens.scheduleTitleUpdate()}}).prototype,"tokens",[wH],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),_H),DH="add",jH="remove",UH="propertychange";function BH(t){for(const e in t)delete t[e]}function $H(t){let e;for(e in t)return!1;return!e}function qH(t,e,n,r,i){if(i){const i=n;n=function(s){return t.removeEventListener(e,n),i.call(r??this,s)}}else r&&r!==t&&(n=n.bind(r));const s={target:t,type:e,listener:n};return t.addEventListener(e,n),s}function VH(t,e,n,r){return qH(t,e,n,r,!0)}function WH(t){t&&t.target&&(t.target.removeEventListener(t.type,t.listener),BH(t))}var HH="change",GH="contextmenu",ZH="click",KH="keydown",YH="keypress",XH="touchmove",JH="wheel",QH=class{constructor(){this.disposed=!1}dispose(){this.disposed||(this.disposed=!0,this.disposeInternal())}disposeInternal(){}};function tG(t,e){return t>e?1:te?-1:0}function nG(t,e,n){if(t[0]<=e)return 0;const r=t.length;if(e<=t[r-1])return r-1;if("function"==typeof n){for(let i=1;i0?i-1:i}return r-1}if(n>0){for(let n=1;n0)}removeEventListener(t,e){if(!this.listeners_)return;const n=this.listeners_[t];if(!n)return;const r=n.indexOf(e);-1!==r&&(this.pendingRemovals_&&t in this.pendingRemovals_?(n[r]=lG,++this.pendingRemovals_[t]):(n.splice(r,1),0===n.length&&delete this.listeners_[t]))}},pG=class extends dG{constructor(){super(),this.on=this.onInternal,this.once=this.onceInternal,this.un=this.unInternal,this.revision_=0}changed(){++this.revision_,this.dispatchEvent(HH)}getRevision(){return this.revision_}onInternal(t,e){if(Array.isArray(t)){const n=t.length,r=new Array(n);for(let i=0;i0;)this.pop()}extend(t){for(let e=0,n=t.length;ethis.getLength())throw new Error("Index out of bounds: "+t);this.unique_&&this.assertUnique_(e),this.array_.splice(t,0,e),this.updateLength_(),this.dispatchEvent(new wG(DH,e,t))}pop(){return this.removeAt(this.getLength()-1)}push(t){const e=this.getLength();return this.insertAt(e,t),this.getLength()}remove(t){const e=this.array_;for(let n=0,r=e.length;n=this.getLength())return;const e=this.array_[t];return this.array_.splice(t,1),this.updateLength_(),this.dispatchEvent(new wG(jH,e,t)),e}setAt(t,e){if(t>=this.getLength())return void this.insertAt(t,e);if(t<0)throw new Error("Index out of bounds: "+t);this.unique_&&this.assertUnique_(e,t);const n=this.array_[t];this.array_[t]=e,this.dispatchEvent(new wG(jH,n,t)),this.dispatchEvent(new wG(DH,e,t))}updateLength_(){this.set(bG,this.array_.length)}assertUnique_(t,e){const n=this.array_;for(let r=0,i=n.length;r{this.clickTimeoutId_=void 0;const e=new CG(SG.SINGLECLICK,this.map_,t);this.dispatchEvent(e)},250)}updateActivePointers_(t){const e=t,n=e.pointerId;if(e.type==SG.POINTERUP||e.type==SG.POINTERCANCEL){delete this.trackedTouches_[n];for(const t in this.trackedTouches_)if(this.trackedTouches_[t].target!==e.target){delete this.trackedTouches_[t];break}}else e.type!=SG.POINTERDOWN&&e.type!=SG.POINTERMOVE||(this.trackedTouches_[n]=e);this.activePointers_=Object.values(this.trackedTouches_)}handlePointerUp_(t){this.updateActivePointers_(t);const e=new CG(SG.POINTERUP,this.map_,t,void 0,void 0,this.activePointers_);this.dispatchEvent(e),this.emulateClicks_&&!e.defaultPrevented&&!this.dragging_&&this.isMouseActionButton_(t)&&this.emulateClick_(this.down_),0===this.activePointers_.length&&(this.dragListenerKeys_.forEach(WH),this.dragListenerKeys_.length=0,this.dragging_=!1,this.down_=null)}isMouseActionButton_(t){return 0===t.button}handlePointerDown_(t){this.emulateClicks_=0===this.activePointers_.length,this.updateActivePointers_(t);const e=new CG(SG.POINTERDOWN,this.map_,t,void 0,void 0,this.activePointers_);if(this.dispatchEvent(e),this.down_=new PointerEvent(t.type,t),Object.defineProperty(this.down_,"target",{writable:!1,value:t.target}),0===this.dragListenerKeys_.length){const t=this.map_.getOwnerDocument();this.dragListenerKeys_.push(qH(t,SG.POINTERMOVE,this.handlePointerMove_,this),qH(t,SG.POINTERUP,this.handlePointerUp_,this),qH(this.element_,SG.POINTERCANCEL,this.handlePointerUp_,this)),this.element_.getRootNode&&this.element_.getRootNode()!==t&&this.dragListenerKeys_.push(qH(this.element_.getRootNode(),SG.POINTERUP,this.handlePointerUp_,this))}}handlePointerMove_(t){if(this.isMoving_(t)){this.updateActivePointers_(t),this.dragging_=!0;const e=new CG(SG.POINTERDRAG,this.map_,t,this.dragging_,void 0,this.activePointers_);this.dispatchEvent(e)}}relayMoveEvent_(t){this.originalPointerMoveEvent_=t;const e=!(!this.down_||!this.isMoving_(t));this.dispatchEvent(new CG(SG.POINTERMOVE,this.map_,t,e))}handleTouchMove_(t){const e=this.originalPointerMoveEvent_;e&&!e.defaultPrevented||"boolean"==typeof t.cancelable&&!0!==t.cancelable||t.preventDefault()}isMoving_(t){return this.dragging_||Math.abs(t.clientX-this.down_.clientX)>this.moveTolerance_||Math.abs(t.clientY-this.down_.clientY)>this.moveTolerance_}disposeInternal(){this.relayedListenerKey_&&(WH(this.relayedListenerKey_),this.relayedListenerKey_=null),this.element_.removeEventListener(XH,this.boundHandleTouchMove_),this.pointerdownListenerKey_&&(WH(this.pointerdownListenerKey_),this.pointerdownListenerKey_=null),this.dragListenerKeys_.forEach(WH),this.dragListenerKeys_.length=0,this.element_=null,super.disposeInternal()}},NG="postrender",FG="loadstart",zG="loadend",DG="layergroup",jG="size",UG="target",BG="view";function $G(t,e){if(!t)throw new Error(e)}var qG=1/0,VG=class{constructor(t,e){this.priorityFunction_=t,this.keyFunction_=e,this.elements_=[],this.priorities_=[],this.queuedElements_={}}clear(){this.elements_.length=0,this.priorities_.length=0,BH(this.queuedElements_)}dequeue(){const t=this.elements_,e=this.priorities_,n=t[0];1==t.length?(t.length=0,e.length=0):(t[0]=t.pop(),e[0]=e.pop(),this.siftUp_(0));const r=this.keyFunction_(n);return delete this.queuedElements_[r],n}enqueue(t){$G(!(this.keyFunction_(t)in this.queuedElements_),"Tried to enqueue an `element` that was already added to the queue");const e=this.priorityFunction_(t);return e!=1/0&&(this.elements_.push(t),this.priorities_.push(e),this.queuedElements_[this.keyFunction_(t)]=!0,this.siftDown_(0,this.elements_.length-1),!0)}getCount(){return this.elements_.length}getLeftChildIndex_(t){return 2*t+1}getRightChildIndex_(t){return 2*t+2}getParentIndex_(t){return t-1>>1}heapify_(){let t;for(t=(this.elements_.length>>1)-1;t>=0;t--)this.siftUp_(t)}isEmpty(){return 0===this.elements_.length}isKeyQueued(t){return t in this.queuedElements_}isQueued(t){return this.isKeyQueued(this.keyFunction_(t))}siftUp_(t){const e=this.elements_,n=this.priorities_,r=e.length,i=e[t],s=n[t],o=t;for(;t>1;){const i=this.getLeftChildIndex_(t),s=this.getRightChildIndex_(t),o=st;){const t=this.getParentIndex_(e);if(!(r[t]>s))break;n[e]=n[t],r[e]=r[t],e=t}n[e]=i,r[e]=s}reprioritize(){const t=this.priorityFunction_,e=this.elements_,n=this.priorities_;let r=0;const i=e.length;let s,o,a;for(o=0;ot.apply(null,e),t=>t[0].getKey()),this.boundHandleTileChange_=this.handleTileChange.bind(this),this.tileChangeCallback_=e,this.tilesLoading_=0,this.tilesLoadingKeys_={}}enqueue(t){const e=super.enqueue(t);return e&&t[0].addEventListener(HH,this.boundHandleTileChange_),e}getTilesLoading(){return this.tilesLoading_}handleTileChange(t){const e=t.target,n=e.getState();if(2===n||3===n||4===n){3!==n&&e.removeEventListener(HH,this.boundHandleTileChange_);const t=e.getKey();t in this.tilesLoadingKeys_&&(delete this.tilesLoadingKeys_[t],--this.tilesLoading_),this.tileChangeCallback_()}}loadMoreTiles(t,e){let n=0;for(;this.tilesLoading_0;){const t=this.dequeue()[0],e=t.getKey();0!==t.getState()||e in this.tilesLoadingKeys_||(this.tilesLoadingKeys_[e]=!0,++this.tilesLoading_,++n,t.load())}}},HG={CENTER:"center",RESOLUTION:"resolution",ROTATION:"rotation"};function GG(t,e,n){return Math.min(Math.max(t,e),n)}function ZG(t,e,n,r,i,s){const o=i-n,a=s-r;if(0!==o||0!==a){const l=((t-n)*o+(e-r)*a)/(o*o+a*a);l>1?(n=i,r=s):l>0&&(n+=o*l,r+=a*l)}return KG(t,e,n,r)}function KG(t,e,n,r){const i=n-t,s=r-e;return i*i+s*s}function YG(t){return 180*t/Math.PI}function XG(t){return t*Math.PI/180}function JG(t,e){const n=t%e;return n*e<0?n+e:n}function QG(t,e,n){return t+n*(e-t)}function tZ(t,e){const n=Math.pow(10,e);return Math.round(t*n)/n}function eZ(t,e){return Math.floor(tZ(t,e))}function nZ(t,e){return Math.ceil(tZ(t,e))}function rZ(t,e,n){if(t>=e&&tp&&(d=(p+d)/2,p=d),f>g&&(f=(g+f)/2,g=f);let m=GG(r[0],d,p),y=GG(r[1],f,g);if(o&&n&&i){const t=30*i;m+=-t*Math.log(1+Math.max(0,d-r[0])/t)+t*Math.log(1+Math.max(0,r[0]-p)/t),y+=-t*Math.log(1+Math.max(0,f-r[1])/t)+t*Math.log(1+Math.max(0,r[1]-g)/t)}return[m,y]}}function sZ(t){return t}function oZ(t){const e=[1/0,1/0,-1/0,-1/0];for(let n=0,r=t.length;ni&&(l|=4),as&&(l|=2),0===l&&(l=1),l}function fZ(t,e,n,r,i){return i?(i[0]=t,i[1]=e,i[2]=n,i[3]=r,i):[t,e,n,r]}function gZ(t){return fZ(1/0,1/0,-1/0,-1/0,t)}function mZ(t,e){const n=t[0],r=t[1];return fZ(n,r,n,r,e)}function yZ(t,e,n,r,i){return _Z(gZ(i),t,e,n,r)}function vZ(t,e){return t[0]==e[0]&&t[2]==e[2]&&t[1]==e[1]&&t[3]==e[3]}function bZ(t,e){return e[0]t[2]&&(t[2]=e[2]),e[1]t[3]&&(t[3]=e[3]),t}function wZ(t,e){e[0]t[2]&&(t[2]=e[0]),e[1]t[3]&&(t[3]=e[1])}function _Z(t,e,n,r,i){for(;ne[0]?r[0]=t[0]:r[0]=e[0],t[1]>e[1]?r[1]=t[1]:r[1]=e[1],t[2]n&&u.push([n,r,o,s]),lr&&u.push([o,r,l,a]),c=e[0]&&t[1]<=e[3]&&t[3]>=e[1]}function DZ(t){return t[2]1){const e=t[2]-t[0],n=t[3]-t[1];for(let s=0;s=n[2])){const e=FZ(n),i=Math.floor((r[0]-n[0])/e)*e;t[0]-=i,t[2]-=i}return t}function BZ(t,e,n){if(e.canWrapX()){const r=e.getExtent();if(!isFinite(t[0])||!isFinite(t[2]))return[[r[0],t[1],r[2],t[3]]];UZ(t,e);const i=FZ(r);if(FZ(t)>i&&!n)return[[r[0],t[1],r[2],t[3]]];if(t[0]r[2])return[[t[0],t[1],r[2],t[3]],[r[0],t[1],t[2]-i,t[3]]]}return[t]}function $Z(t,e){let n=[t];for(let r=0,i=e.length;r0;++r){const t=[];for(let i=0,s=n.length;i=0;--r)if(t[r]!=e[r]){n=!1;break}return n}function VZ(t,e){const n=Math.cos(e),r=Math.sin(e),i=t[0]*n-t[1]*r,s=t[1]*n+t[0]*r;return t[0]=i,t[1]=s,t}function WZ(t,e){if(e.canWrapX()){const n=FZ(e.getExtent()),r=function(t,e,n){const r=e.getExtent();let i=0;return e.canWrapX()&&(t[0]r[2])&&(n=n||FZ(r),i=Math.floor((t[0]-r[0])/n)),i}(t,e,n);r&&(t[0]-=r*n)}return t}function HZ(t){return Math.pow(t,3)}function GZ(t){return 1-HZ(1-t)}function ZZ(t){return 3*t*t-2*t*t*t}function KZ(t){return t}function YZ(t,e,n){n=n||6371008.8;const r=XG(t[1]),i=XG(e[1]),s=(i-r)/2,o=XG(e[0]-t[0])/2,a=Math.sin(s)*Math.sin(s)+Math.sin(o)*Math.sin(o)*Math.cos(r)*Math.cos(i);return 2*n*Math.atan2(Math.sqrt(a),Math.sqrt(1-a))}function XZ(t,e,n,r){r=r||6371008.8;const i=XG(t[1]),s=XG(t[0]),o=e/r,a=Math.asin(Math.sin(i)*Math.cos(o)+Math.cos(i)*Math.sin(o)*Math.cos(n));return[YG(s+Math.atan2(Math.sin(n)*Math.sin(o)*Math.cos(i),Math.cos(o)-Math.sin(i)*Math.sin(a))),YG(a)]}function JZ(...t){console.warn(...t)}var QZ={radians:6370997/(2*Math.PI),degrees:2*Math.PI*6370997/360,ft:.3048,m:1,"us-ft":1200/3937},tK=class{constructor(t){this.code_=t.code,this.units_=t.units,this.extent_=void 0!==t.extent?t.extent:null,this.worldExtent_=void 0!==t.worldExtent?t.worldExtent:null,this.axisOrientation_=void 0!==t.axisOrientation?t.axisOrientation:"enu",this.global_=void 0!==t.global&&t.global,this.canWrapX_=!(!this.global_||!this.extent_),this.getPointResolutionFunc_=t.getPointResolution,this.defaultTileGrid_=null,this.metersPerUnit_=t.metersPerUnit}canWrapX(){return this.canWrapX_}getCode(){return this.code_}getExtent(){return this.extent_}getUnits(){return this.units_}getMetersPerUnit(){return this.metersPerUnit_||QZ[this.units_]}getWorldExtent(){return this.worldExtent_}getAxisOrientation(){return this.axisOrientation_}isGlobal(){return this.global_}setGlobal(t){this.global_=t,this.canWrapX_=!(!t||!this.extent_)}getDefaultTileGrid(){return this.defaultTileGrid_}setDefaultTileGrid(t){this.defaultTileGrid_=t}setExtent(t){this.extent_=t,this.canWrapX_=!(!this.global_||!t)}setWorldExtent(t){this.worldExtent_=t}setGetPointResolution(t){this.getPointResolutionFunc_=t}getPointResolutionFunc(){return this.getPointResolutionFunc_}},eK=6378137,nK=Math.PI*eK,rK=[-nK,-nK,nK,nK],iK=[-180,-85,180,85],sK=eK*Math.log(Math.tan(Math.PI/2)),oK=class extends tK{constructor(t){super({code:t,units:"m",extent:rK,global:!0,worldExtent:iK,getPointResolution:function(t,e){return t/Math.cosh(e[1]/eK)}})}},aK=[new oK("EPSG:3857"),new oK("EPSG:102100"),new oK("EPSG:102113"),new oK("EPSG:900913"),new oK("http://www.opengis.net/def/crs/EPSG/0/3857"),new oK("http://www.opengis.net/gml/srs/epsg.xml#3857")],lK=[-180,-90,180,90],cK=6378137*Math.PI/180,uK=class extends tK{constructor(t,e){super({code:t,units:"degrees",extent:lK,axisOrientation:e,global:!0,metersPerUnit:cK,worldExtent:lK})}},hK=[new uK("CRS:84"),new uK("EPSG:4326","neu"),new uK("urn:ogc:def:crs:OGC:1.3:CRS84"),new uK("urn:ogc:def:crs:OGC:2:84"),new uK("http://www.opengis.net/def/crs/OGC/1.3/CRS84"),new uK("http://www.opengis.net/gml/srs/epsg.xml#4326","neu"),new uK("http://www.opengis.net/def/crs/EPSG/0/4326","neu")],dK={},pK={};function fK(t,e,n){const r=t.getCode(),i=e.getCode();r in pK||(pK[r]={}),pK[r][i]=n}function gK(t,e){return t in pK&&e in pK[t]?pK[t][e]:null}var mK=.9996,yK=.00669438,vK=yK*yK*yK,bK=yK/.99330562,wK=Math.sqrt(.99330562),_K=(1-wK)/(1+wK),xK=_K*_K,CK=xK*_K,SK=CK*_K,kK=SK*_K,EK=.9983242984503243,RK=35*vK/3072,TK=1.5*_K-27/32*CK+269/512*kK,LK=21/16*xK-55/32*SK,IK=151/96*CK-417/128*kK,PK=1097/512*SK,MK=6378137;function AK(t,e,n){const r=t-5e5,i=(n.north?e:e-1e7)/mK/(MK*EK),s=i+TK*Math.sin(2*i)+LK*Math.sin(4*i)+IK*Math.sin(6*i)+PK*Math.sin(8*i),o=Math.sin(s),a=o*o,l=Math.cos(s),c=o/l,u=c*c,h=u*u,d=1-yK*a,p=Math.sqrt(1-yK*a),f=bK*l**2,g=f*f,m=r/(MK/p*mK),y=m*m,v=y*m,b=v*m,w=b*m,_=s-c/(.99330562/d)*(y/2-b/24*(5+3*u+10*f-4*g-9*bK))+w*m/720*(61+90*u+298*f+45*h-252*bK-3*g);let x=(m-v/6*(1+2*u+f)+w/120*(5-2*f+28*u-3*g+8*bK+24*h))/l;return x=rZ(x+XG(NK(n.number)),-Math.PI,Math.PI),[YG(x),YG(_)]}function OK(t,e,n){t=rZ(t,-180,180),e<-80?e=-80:e>84&&(e=84);const r=XG(e),i=Math.sin(r),s=Math.cos(r),o=i/s,a=o*o,l=a*a,c=XG(t),u=XG(NK(n.number)),h=MK/Math.sqrt(1-yK*i**2),d=bK*s**2,p=s*rZ(c-u,-Math.PI,Math.PI),f=p*p,g=f*p,m=g*p,y=m*p,v=y*p,b=MK*(EK*r-.002514607064228144*Math.sin(2*r)+26390466021299826e-22*Math.sin(4*r)-RK*Math.sin(6*r)),w=mK*h*(p+g/6*(1-a+d)+y/120*(5-18*a+l+72*d-58*bK))+5e5;let _=mK*(b+h*o*(f/2+m/24*(5-a+9*d+4*d**2)+v/720*(61-58*a+l+600*d-330*bK)));return n.north||(_+=1e7),[w,_]}function NK(t){return 6*(t-1)-180+3}var FK=[/^EPSG:(\d+)$/,/^urn:ogc:def:crs:EPSG::(\d+)$/,/^http:\/\/www\.opengis\.net\/def\/crs\/EPSG\/0\/(\d+)$/];function zK(t){let e=0;for(const i of FK){const n=t.match(i);if(n){e=parseInt(n[1]);break}}if(!e)return null;let n=0,r=!1;return e>32700&&e<32761?n=e-32700:e>32600&&e<32661&&(r=!0,n=e-32600),n?{number:n,north:r}:null}function DK(t,e){return function(n,r,i,s){const o=n.length;i=i>1?i:2,s=s??i,r||(r=i>2?n.slice():new Array(o));for(let a=0;a180)&&(n[0]=JG(r+180,360)-180),n}function eY(t,e){if(t===e)return!0;const n=t.getUnits()===e.getUnits();return(t.getCode()===e.getCode()||nY(t,e)===HK)&&n}function nY(t,e){const n=t.getCode(),r=e.getCode();let i=gK(n,r);if(i)return i;let s=null,o=null;for(const l of $K)s||(s=l(t)),o||(o=l(e));if(!s&&!o)return null;const a="EPSG:4326";if(o)if(s)i=rY(s.inverse,o.forward);else{const t=gK(n,a);t&&(i=rY(t,o.forward))}else{const t=gK(a,r);t&&(i=rY(s.inverse,t))}return i&&(ZK(t),ZK(e),fK(t,e,i)),i}function rY(t,e){return function(n,r,i,s){return r=t(n,r,i,s),e(r,r,i,s)}}function iY(t,e){return nY(KK(t),KK(e))}function sY(t,e,n){const r=iY(e,n);if(!r){const t=KK(e).getCode(),r=KK(n).getCode();throw new Error(`No transform available between ${t} and ${r}`)}return r(t,void 0,t.length)}function oY(t,e,n,r){return jZ(t,iY(e,n),void 0,r)}function aY(t){return t}function lY(t){return VK&&!qZ(t,[0,0])&&t[0]>=-180&&t[0]<=180&&t[1]>=-90&&t[1]<=90&&(VK=!1,JZ("Call useGeographic() from ol/proj once to work with [longitude, latitude] coordinates.")),t}function cY(t){return t}XK(aK),XK(hK),jK=aK,UK=function(t,e,n,r){const i=t.length;n=n>1?n:2,r=r??n,void 0===e&&(e=n>2?t.slice():new Array(i));for(let s=0;ssK?n=sK:n<-sK&&(n=-sK),e[s+1]=n}return e},BK=function(t,e,n,r){const i=t.length;n=n>1?n:2,r=r??n,void 0===e&&(e=n>2?t.slice():new Array(i));for(let s=0;s{if(!n)return this.getSimplifiedGeometry(e);const r=this.clone();return r.applyTransform(n),r.getSimplifiedGeometry(e)})}simplifyTransformed(t,e){return this.simplifyTransformedInternal(this.getRevision(),t,e)}clone(){return fG()}closestPointXY(t,e,n,r){return fG()}containsXY(t,e){return 0===this.closestPointXY(t,e,kY,Number.MIN_VALUE)}getClosestPoint(t,e){return e=e||[NaN,NaN],this.closestPointXY(t[0],t[1],e,1/0),e}intersectsCoordinate(t){return this.containsXY(t[0],t[1])}computeExtent(t){return fG()}getExtent(t){if(this.extentRevision_!=this.getRevision()){const t=this.computeExtent(this.extent_);(isNaN(t[0])||isNaN(t[1]))&&gZ(t),this.extentRevision_=this.getRevision()}return function(t,e){return e?(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e):t}(this.extent_,t)}rotate(t,e){fG()}scale(t,e,n){fG()}simplify(t){return this.getSimplifiedGeometry(t*t)}getSimplifiedGeometry(t){return fG()}getType(){return fG()}applyTransform(t){fG()}intersectsExtent(t){return fG()}translate(t,e){fG()}transform(t,e){const n=KK(t),r="tile-pixels"==n.getUnits()?function(t,r,i){const s=n.getExtent(),o=n.getWorldExtent(),a=PZ(o)/PZ(s);vY(SY,o[0],o[3],a,-a,0,0,0);const l=xY(t,0,t.length,i,SY,r),c=iY(n,e);return c?c(l,l,i):l}:iY(n,e);return this.applyTransform(r),this}},RY=class extends EY{constructor(){super(),this.layout="XY",this.stride=2,this.flatCoordinates}computeExtent(t){return yZ(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,t)}getCoordinates(){return fG()}getFirstCoordinate(){return this.flatCoordinates.slice(0,this.stride)}getFlatCoordinates(){return this.flatCoordinates}getLastCoordinate(){return this.flatCoordinates.slice(this.flatCoordinates.length-this.stride)}getLayout(){return this.layout}getSimplifiedGeometry(t){if(this.simplifiedGeometryRevision!==this.getRevision()&&(this.simplifiedGeometryMaxMinSquaredTolerance=0,this.simplifiedGeometryRevision=this.getRevision()),t<0||0!==this.simplifiedGeometryMaxMinSquaredTolerance&&t<=this.simplifiedGeometryMaxMinSquaredTolerance)return this;const e=this.getSimplifiedGeometryInternal(t);return e.getFlatCoordinates().length1)h=n;else{if(d>0){for(let i=0;ii&&(i=a),s=n,o=r}return i}function OY(t,e,n,r,i){for(let s=0,o=n.length;ss&&(n-a)*(s-l)-(i-a)*(r-l)>0&&o++:r<=s&&(n-a)*(s-l)-(i-a)*(r-l)<0&&o--,a=n,l=r}return 0!==o}function WY(t,e,n,r,i,s){if(0===n.length)return!1;if(!VY(t,e,n[0],r,i,s))return!1;for(let o=1,a=n.length;o=i[0]&&s[2]<=i[2]||s[1]>=i[1]&&s[3]<=i[3]||HY(t,e,n,r,function(t,e){return function(t,e,n){let r=!1;const i=pZ(t,e),s=pZ(t,n);if(1===i||1===s)r=!0;else{const o=t[0],a=t[1],l=t[2],c=t[3],u=e[0],h=e[1],d=n[0],p=n[1],f=(p-h)/(d-u);let g,m;2&s&&!(2&i)&&(g=d-(p-c)/f,r=g>=o&&g<=l),r||!(4&s)||4&i||(m=p-(d-l)*f,r=m>=a&&m<=c),r||!(8&s)||8&i||(g=d-(p-a)/f,r=g>=o&&g<=l),r||!(16&s)||16&i||(m=p-(d-o)*f,r=m>=a&&m<=c)}return r}(i,t,e)}))}function ZY(t,e,n,r,i){return!!(GY(t,e,n,r,i)||VY(t,e,n,r,i[0],i[1])||VY(t,e,n,r,i[0],i[3])||VY(t,e,n,r,i[2],i[1])||VY(t,e,n,r,i[2],i[3]))}function KY(t,e,n,r,i){if(!ZY(t,e,n[0],r,i))return!1;if(1===n.length)return!0;for(let s=1,o=n.length;s0;){const n=c.pop(),s=c.pop();let o=0;const a=t[s],h=t[s+1],d=t[n],p=t[n+1];for(let e=s+r;eo&&(u=e,o=n)}o>i&&(l[(u-e)/r]=1,s+r0&&f>d)&&(p<0&&g0&&g>p)?(a=n,l=h):(s[o++]=a,s[o++]=l,c=a,u=l,a=n,l=h)}return s[o++]=a,s[o++]=l,o}function tX(t,e,n,r,i,s,o,a){for(let l=0,c=n.length;ly&&(c=(u+h)/2,WY(t,e,n,r,c,f)&&(m=c,y=i)),u=h}return isNaN(m)&&(m=i[s]),o?(o.push(m,f,y),o):[m,f,y]}function iX(t,e,n,r,i){let s=[];for(let o=0,a=n.length;o0}function aX(t,e,n,r,i){i=void 0!==i&&i;for(let s=0,o=n.length;su&&h1&&"function"==typeof arguments[n-1]&&(e=arguments[n-1],--n);let r=0;for(;r0}getInteracting(){return this.hints_[1]>0}cancelAnimations(){let t;this.setHint(0,-this.hints_[0]);for(let e=0,n=this.animations_.length;e=0;--n){const r=this.animations_[n];let i=!0;for(let n=0,s=r.length;n0?o/s.duration:1;a>=1?(s.complete=!0,a=1):i=!1;const l=s.easing(a);if(s.sourceCenter){const t=s.sourceCenter[0],e=s.sourceCenter[1],n=s.targetCenter[0],r=s.targetCenter[1];this.nextCenter_=s.targetCenter;const i=t+l*(n-t),o=e+l*(r-e);this.targetCenter_=[i,o]}if(s.sourceResolution&&s.targetResolution){const t=1===l?s.targetResolution:s.sourceResolution+l*(s.targetResolution-s.sourceResolution);if(s.anchor){const e=this.getViewportSize_(this.getRotation()),n=this.constraints_.resolution(t,0,e,!0);this.targetCenter_=this.calculateCenterZoom(n,s.anchor)}this.nextResolution_=s.targetResolution,this.targetResolution_=t,this.applyTargetState_(!0)}if(void 0!==s.sourceRotation&&void 0!==s.targetRotation){const t=1===l?JG(s.targetRotation+Math.PI,2*Math.PI)-Math.PI:s.sourceRotation+l*(s.targetRotation-s.sourceRotation);if(s.anchor){const e=this.constraints_.rotation(t,!0);this.targetCenter_=this.calculateCenterRotate(e,s.anchor)}this.nextRotation_=s.targetRotation,this.targetRotation_=t}if(this.applyTargetState_(!0),e=!0,!s.complete)break}if(i){this.animations_[n]=null,this.setHint(0,-1),this.nextCenter_=null,this.nextResolution_=NaN,this.nextRotation_=NaN;const t=r[0].callback;t&&wX(t,!0)}}this.animations_=this.animations_.filter(Boolean),e&&void 0===this.updateAnimationKey_&&(this.updateAnimationKey_=requestAnimationFrame(this.updateAnimations_.bind(this)))}calculateCenterRotate(t,e){let n;const r=this.getCenterInternal();var i,s;return void 0!==r&&(n=[r[0]-e[0],r[1]-e[1]],VZ(n,t-this.getRotation()),s=e,(i=n)[0]+=+s[0],i[1]+=+s[1]),n}calculateCenterZoom(t,e){let n;const r=this.getCenterInternal(),i=this.getResolution();return void 0!==r&&void 0!==i&&(n=[e[0]-t*(e[0]-r[0])/i,e[1]-t*(e[1]-r[1])/i]),n}getViewportSize_(t){const e=this.viewportSize_;if(t){const n=e[0],r=e[1];return[Math.abs(n*Math.cos(t))+Math.abs(r*Math.sin(t)),Math.abs(n*Math.sin(t))+Math.abs(r*Math.cos(t))]}return e}setViewportSize(t){this.viewportSize_=Array.isArray(t)?t.slice():[100,100],this.getAnimating()||this.resolveConstraints(0)}getCenter(){const t=this.getCenterInternal();return t?aY(t,this.getProjection()):t}getCenterInternal(){return this.get(HG.CENTER)}getConstraints(){return this.constraints_}getConstrainResolution(){return this.get("constrainResolution")}getHints(t){return void 0!==t?(t[0]=this.hints_[0],t[1]=this.hints_[1],t):this.hints_.slice()}calculateExtent(t){return e=this.calculateExtentInternal(t),this.getProjection(),e;var e}calculateExtentInternal(t){t=t||this.getViewportSizeMinusPadding_();const e=this.getCenterInternal();$G(e,"The view center is not defined");const n=this.getResolution();$G(void 0!==n,"The view resolution is not defined");const r=this.getRotation();return $G(void 0!==r,"The view rotation is not defined"),LZ(e,n,r,t)}getMaxResolution(){return this.maxResolution_}getMinResolution(){return this.minResolution_}getMaxZoom(){return this.getZoomForResolution(this.minResolution_)}setMaxZoom(t){this.applyOptions_(this.getUpdatedOptions_({maxZoom:t}))}getMinZoom(){return this.getZoomForResolution(this.maxResolution_)}setMinZoom(t){this.applyOptions_(this.getUpdatedOptions_({minZoom:t}))}setConstrainResolution(t){this.applyOptions_(this.getUpdatedOptions_({constrainResolution:t}))}getProjection(){return this.projection_}getResolution(){return this.get(HG.RESOLUTION)}getResolutions(){return this.resolutions_}getResolutionForExtent(t,e){return this.getResolutionForExtentInternal(cY(t,this.getProjection()),e)}getResolutionForExtentInternal(t,e){e=e||this.getViewportSizeMinusPadding_();const n=FZ(t)/e[0],r=PZ(t)/e[1];return Math.max(n,r)}getResolutionForValueFunction(t){t=t||2;const e=this.getConstrainedResolution(this.maxResolution_),n=this.minResolution_,r=Math.log(e/n)/Math.log(t);return function(n){return e/Math.pow(t,n*r)}}getRotation(){return this.get(HG.ROTATION)}getValueForResolutionFunction(t){const e=Math.log(t||2),n=this.getConstrainedResolution(this.maxResolution_),r=this.minResolution_,i=Math.log(n/r)/e;return function(t){return Math.log(n/t)/e/i}}getViewportSizeMinusPadding_(t){let e=this.getViewportSize_(t);const n=this.padding_;return n&&(e=[e[0]-n[1]-n[3],e[1]-n[0]-n[2]]),e}getState(){const t=this.getProjection(),e=this.getResolution(),n=this.getRotation();let r=this.getCenterInternal();const i=this.padding_;if(i){const t=this.getViewportSizeMinusPadding_();r=xX(r,this.getViewportSize_(),[t[0]/2+i[3],t[1]/2+i[0]],e,n)}return{center:r.slice(0),projection:void 0!==t?t:null,resolution:e,nextCenter:this.nextCenter_,nextResolution:this.nextResolution_,nextRotation:this.nextRotation_,rotation:n,zoom:this.getZoom()}}getViewStateAndExtent(){return{viewState:this.getState(),extent:this.calculateExtent()}}getZoom(){let t;const e=this.getResolution();return void 0!==e&&(t=this.getZoomForResolution(e)),t}getZoomForResolution(t){let e,n,r=this.minZoom_||0;if(this.resolutions_){const i=nG(this.resolutions_,t,1);r=i,e=this.resolutions_[i],n=i==this.resolutions_.length-1?2:e/this.resolutions_[i+1]}else e=this.maxResolution_,n=this.zoomFactor_;return r+Math.log(e/t)/Math.log(n)}getResolutionForZoom(t){if(this.resolutions_?.length){if(1===this.resolutions_.length)return this.resolutions_[0];const e=GG(Math.floor(t),0,this.resolutions_.length-2),n=this.resolutions_[e]/this.resolutions_[e+1];return this.resolutions_[e]/Math.pow(n,GG(t-e,0,1))}return this.maxResolution_/Math.pow(this.zoomFactor_,t-this.minZoom_)}fit(t,e){let n;if($G(Array.isArray(t)||"function"==typeof t.getSimplifiedGeometry,"Invalid extent or geometry provided as `geometry`"),Array.isArray(t))$G(!DZ(t),"Cannot fit empty extent provided as `geometry`"),n=pX(cY(t,this.getProjection()));else if("Circle"===t.getType()){const e=cY(t.getExtent(),this.getProjection());n=pX(e),n.rotate(this.getRotation(),RZ(e))}else{const e=null;n=e?t.clone().transform(e,this.getProjection()):t}this.fitInternal(n,e)}rotatedExtentForGeometry(t){const e=this.getRotation(),n=Math.cos(e),r=Math.sin(-e),i=t.getFlatCoordinates(),s=t.getStride();let o=1/0,a=1/0,l=-1/0,c=-1/0;for(let u=0,h=i.length;ut.trim().replace(/^['"]|['"]$/g,"")),n};function MX(t,e,n,r){let i;return i=n&&n.length?n.shift():LG?new class extends OffscreenCanvas{style={}}(t??300,e??150):document.createElement("canvas"),t&&(i.width=t),e&&(i.height=e),i.getContext("2d",r)}function AX(){return CX||(CX=MX(1,1)),CX}function OX(t){const e=t.canvas;e.width=1,e.height=1,t.clearRect(0,0,1,1)}function NX(t){let e=t.offsetWidth;const n=getComputedStyle(t);return e+=parseInt(n.marginLeft,10)+parseInt(n.marginRight,10),e}function FX(t){let e=t.offsetHeight;const n=getComputedStyle(t);return e+=parseInt(n.marginTop,10)+parseInt(n.marginBottom,10),e}function zX(t,e){const n=e.parentNode;n&&n.replaceChild(t,e)}function DX(t){for(;t.lastChild;)t.lastChild.remove()}function jX(){return new Proxy({childNodes:[],appendChild:function(t){return this.childNodes.push(t),t},remove:function(){},removeChild:function(t){const e=this.childNodes.indexOf(t);if(-1===e)throw new Error("Node to remove was not found");return this.childNodes.splice(e,1),t},insertBefore:function(t,e){const n=this.childNodes.indexOf(e);if(-1===n)throw new Error("Reference node not found");return this.childNodes.splice(n,0,t),t},style:{}},{get:(t,e,n)=>"firstElementChild"===e?t.childNodes.length>0?t.childNodes[0]:null:Reflect.get(t,e,n)})}function UX(t){return"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof OffscreenCanvas&&t instanceof OffscreenCanvas}var BX=class extends vG{constructor(t){super();const e=t.element;!e||t.target||e.style.pointerEvents||(e.style.pointerEvents="auto"),this.element=e||null,this.target_=null,this.map_=null,this.listenerKeys=[],t.render&&(this.render=t.render),t.target&&this.setTarget(t.target)}disposeInternal(){this.element?.remove(),super.disposeInternal()}getMap(){return this.map_}setMap(t){this.map_&&this.element?.remove();for(let e=0,n=this.listenerKeys.length;ee.getAttributions(t)));if(void 0!==this.attributions_&&(Array.isArray(this.attributions_)?this.attributions_.forEach(t=>n.add(t)):n.add(this.attributions_)),!this.overrideCollapsible_){const t=!e.some(t=>!1===t.getSource()?.getAttributionsCollapsible());this.setCollapsible(t)}return Array.from(n)}async updateElement_(t){if(!t)return void(this.renderedVisible_&&(this.element.style.display="none",this.renderedVisible_=!1));const e=await Promise.all(this.collectSourceAttributions_(t).map(t=>uG(()=>t))),n=e.length>0;if(this.renderedVisible_!=n&&(this.element.style.display=n?"":"none",this.renderedVisible_=n),!sG(e,this.renderedAttributions_)){DX(this.ulElement_);for(let t=0,n=e.length;t0&&e%(2*Math.PI)!=0?t.animate({rotation:0,duration:this.duration_,easing:GZ}):t.setRotation(0))}render(t){const e=t.frameState;if(!e)return;const n=e.viewState.rotation;if(n!=this.rotation_){const t="rotate("+n+"rad)";if(this.autoHide_){const t=this.element.classList.contains(SX);t||0!==n?t&&0!==n&&this.element.classList.remove(SX):this.element.classList.add(SX)}this.label_.style.transform=t}this.rotation_=n}},VX=class extends BX{constructor(t){t=t||{},super({element:document.createElement("div"),target:t.target});const e=void 0!==t.className?t.className:"ol-zoom",n=void 0!==t.delta?t.delta:1,r=void 0!==t.zoomInClassName?t.zoomInClassName:e+"-in",i=void 0!==t.zoomOutClassName?t.zoomOutClassName:e+"-out",s=void 0!==t.zoomInLabel?t.zoomInLabel:"+",o=void 0!==t.zoomOutLabel?t.zoomOutLabel:"–",a=void 0!==t.zoomInTipLabel?t.zoomInTipLabel:"Zoom in",l=void 0!==t.zoomOutTipLabel?t.zoomOutTipLabel:"Zoom out",c=document.createElement("button");c.className=r,c.setAttribute("type","button"),c.title=a,c.appendChild("string"==typeof s?document.createTextNode(s):s),c.addEventListener(ZH,this.handleClick_.bind(this,n),!1);const u=document.createElement("button");u.className=i,u.setAttribute("type","button"),u.title=l,u.appendChild("string"==typeof o?document.createTextNode(o):o),u.addEventListener(ZH,this.handleClick_.bind(this,-n),!1);const h=e+" "+kX+" "+EX,d=this.element;d.className=h,d.appendChild(c),d.appendChild(u),this.duration_=void 0!==t.duration?t.duration:250}handleClick_(t,e){e.preventDefault(),this.zoomByDelta_(t)}zoomByDelta_(t){const e=this.getMap().getView();if(!e)return;const n=e.getZoom();if(void 0!==n){const r=e.getConstrainedZoom(n+t);this.duration_>0?(e.getAnimating()&&e.cancelAnimations(),e.animate({zoom:r,duration:this.duration_,easing:GZ})):e.setZoom(r)}}};function WX(t){t=t||{};const e=new _G;return(void 0===t.zoom||t.zoom)&&e.push(new VX(t.zoomOptions)),(void 0===t.rotate||t.rotate)&&e.push(new qX(t.rotateOptions)),(void 0===t.attribution||t.attribution)&&e.push(new $X(t.attributionOptions)),e}var HX=class{constructor(t,e,n){this.decay_=t,this.minVelocity_=e,this.delay_=n,this.points_=[],this.angle_=0,this.initialVelocity_=0}begin(){this.points_.length=0,this.angle_=0,this.initialVelocity_=0}update(t,e){this.points_.push(t,e,Date.now())}end(){if(this.points_.length<6)return!1;const t=Date.now()-this.delay_,e=this.points_.length-3;if(this.points_[e+2]0&&this.points_[n+2]>t;)n-=3;const r=this.points_[e+2]-this.points_[n+2];if(r<1e3/60)return!1;const i=this.points_[e]-this.points_[n],s=this.points_[e+1]-this.points_[n+1];return this.angle_=Math.atan2(s,i),this.initialVelocity_=Math.sqrt(i*i+s*s)/r,this.initialVelocity_>this.minVelocity_}getDistance(){return(this.minVelocity_-this.initialVelocity_)/this.decay_}getAngle(){return this.angle_}},GX="active",ZX=class extends vG{constructor(t){super(),this.on,this.once,this.un,t&&t.handleEvent&&(this.handleEvent=t.handleEvent),this.map_=null,this.setActive(!0)}getActive(){return this.get(GX)}getMap(){return this.map_}handleEvent(t){return!0}setActive(t){this.set(GX,t)}setMap(t){this.map_=t}};function KX(t,e,n,r){const i=t.getZoom();if(void 0===i)return;const s=t.getConstrainedZoom(i+e),o=t.getResolutionForZoom(s);t.getAnimating()&&t.cancelAnimations(),t.animate({resolution:o,anchor:n,duration:void 0!==r?r:250,easing:GZ})}var YX=class extends ZX{constructor(t){super(),t=t||{},this.delta_=t.delta?t.delta:1,this.duration_=void 0!==t.duration?t.duration:250}handleEvent(t){let e=!1;if(t.type==SG.DBLCLICK){const n=t.originalEvent,r=t.map,i=t.coordinate,s=n.shiftKey?-this.delta_:this.delta_;KX(r.getView(),s,i,this.duration_),n.preventDefault(),e=!0}return!e}};function XX(t){const e=arguments;return function(t){let n=!0;for(let r=0,i=e.length;r0}}else if(t.type==SG.POINTERDOWN){const n=this.handleDownEvent(t);this.handlingDownUpSequence=n,e=this.stopDown(n)}else t.type==SG.POINTERMOVE&&this.handleMoveEvent(t);return!e}handleMoveEvent(t){}handleUpEvent(t){return!1}stopDown(t){return t}updateTrackedPointers_(t){t.activePointers&&(this.targetPointers=t.activePointers)}};function lJ(t){const e=t.length;let n=0,r=0;for(let i=0;i0&&this.condition_(t)){const e=t.map.getView();return this.lastCentroid=null,e.getAnimating()&&e.cancelAnimations(),this.kinetic_&&this.kinetic_.begin(),this.noKinetic_=this.targetPointers.length>1,!0}return!1}},uJ=class extends aJ{constructor(t){t=t||{},super({stopDown:aG}),this.condition_=t.condition?t.condition:JX,this.lastAngle_=void 0,this.duration_=void 0!==t.duration?t.duration:250}handleDragEvent(t){if(!sJ(t))return;const e=t.map,n=e.getView();if(n.getConstraints().rotation===yX)return;const r=e.getSize(),i=t.pixel,s=Math.atan2(r[1]/2-i[1],i[0]-r[0]/2);if(void 0!==this.lastAngle_){const t=s-this.lastAngle_;n.adjustRotationInternal(-t)}this.lastAngle_=s}handleUpEvent(t){return!sJ(t)||(t.map.getView().endInteraction(this.duration_),!1)}handleDownEvent(t){return!(!sJ(t)||!eJ(t)||!this.condition_(t)||(t.map.getView().beginInteraction(),this.lastAngle_=void 0,0))}},hJ=class extends QH{constructor(t){super(),this.geometry_=null,this.element_=document.createElement("div"),this.element_.style.position="absolute",this.element_.style.pointerEvents="auto",this.element_.className="ol-box "+t,this.map_=null,this.startPixel_=null,this.endPixel_=null}disposeInternal(){this.setMap(null)}render_(){const t=this.startPixel_,e=this.endPixel_,n="px",r=this.element_.style;r.left=Math.min(t[0],e[0])+n,r.top=Math.min(t[1],e[1])+n,r.width=Math.abs(e[0]-t[0])+n,r.height=Math.abs(e[1]-t[1])+n}setMap(t){if(this.map_){this.map_.getOverlayContainer().removeChild(this.element_);const t=this.element_.style;t.left="inherit",t.top="inherit",t.width="inherit",t.height="inherit"}this.map_=t,this.map_&&this.map_.getOverlayContainer().appendChild(this.element_)}setPixels(t,e){this.startPixel_=t,this.endPixel_=e,this.createOrUpdateGeometry(),this.render_()}createOrUpdateGeometry(){if(!this.map_)return;const t=this.startPixel_,e=this.endPixel_,n=[t,[t[0],e[1]],e,[e[0],t[1]]].map(this.map_.getCoordinateFromPixelInternal,this.map_);n[4]=n[0].slice(),this.geometry_?this.geometry_.setCoordinates([n]):this.geometry_=new dX([n])}getGeometry(){return this.geometry_}},dJ="boxcancel",pJ=class extends hG{constructor(t,e,n){super(t),this.coordinate=e,this.mapBrowserEvent=n}},fJ=class extends aJ{constructor(t){super(),this.on,this.once,this.un,t=t??{},this.box_=new hJ(t.className||"ol-dragbox"),this.minArea_=t.minArea??64,t.onBoxEnd&&(this.onBoxEnd=t.onBoxEnd),this.startPixel_=null,this.condition_=t.condition??eJ,this.boxEndCondition_=t.boxEndCondition??this.defaultBoxEndCondition}defaultBoxEndCondition(t,e,n){const r=n[0]-e[0],i=n[1]-e[1];return r*r+i*i>=this.minArea_}getGeometry(){return this.box_.getGeometry()}handleDragEvent(t){this.startPixel_&&(this.box_.setPixels(this.startPixel_,t.pixel),this.dispatchEvent(new pJ("boxdrag",t.coordinate,t)))}handleUpEvent(t){if(!this.startPixel_)return!1;const e=this.boxEndCondition_(t,this.startPixel_,t.pixel);return e&&this.onBoxEnd(t),this.dispatchEvent(new pJ(e?"boxend":dJ,t.coordinate,t)),this.box_.setMap(null),this.startPixel_=null,!1}handleDownEvent(t){return!!this.condition_(t)&&(this.startPixel_=t.pixel,this.box_.setMap(t.map),this.box_.setPixels(this.startPixel_,this.startPixel_),this.dispatchEvent(new pJ("boxstart",t.coordinate,t)),!0)}onBoxEnd(t){}setActive(t){t||(this.box_.setMap(null),this.startPixel_&&(this.dispatchEvent(new pJ(dJ,this.startPixel_,null)),this.startPixel_=null)),super.setActive(t)}setMap(t){this.getMap()&&(this.box_.setMap(null),this.startPixel_&&(this.dispatchEvent(new pJ(dJ,this.startPixel_,null)),this.startPixel_=null)),super.setMap(t)}},gJ=class extends fJ{constructor(t){super({condition:(t=t||{}).condition?t.condition:rJ,className:t.className||"ol-dragzoom",minArea:t.minArea}),this.duration_=void 0!==t.duration?t.duration:200,this.out_=void 0!==t.out&&t.out}onBoxEnd(t){const e=this.getMap().getView();let n=this.getGeometry();if(this.out_){const t=e.rotatedExtentForGeometry(n),r=e.getResolutionForExtentInternal(t),i=e.getResolution()/r;n=n.clone(),n.scale(i*i)}e.fitInternal(n,{duration:this.duration_,easing:GZ})}},mJ="ArrowLeft",yJ="ArrowRight",vJ="ArrowDown",bJ=class extends ZX{constructor(t){super(),t=t||{},this.defaultCondition_=function(t){return nJ(t)&&iJ(t)},this.condition_=void 0!==t.condition?t.condition:this.defaultCondition_,this.duration_=void 0!==t.duration?t.duration:100,this.pixelDelta_=void 0!==t.pixelDelta?t.pixelDelta:128}handleEvent(t){let e=!1;if(t.type==KH){const n=t.originalEvent,r=n.key;if(this.condition_(t)&&(r==vJ||r==mJ||r==yJ||"ArrowUp"==r)){const i=t.map.getView(),s=i.getResolution()*this.pixelDelta_;let o=0,a=0;r==vJ?a=-s:r==mJ?o=-s:r==yJ?o=s:a=s;const l=[o,a];VZ(l,i.getRotation()),function(t,e,n){const r=t.getCenterInternal();if(r){const i=[r[0]+e[0],r[1]+e[1]];t.animateInternal({duration:void 0!==n?n:250,easing:KZ,center:t.getConstrainedCenter(i)})}}(i,l,this.duration_),n.preventDefault(),e=!0}}return!e}},wJ=class extends ZX{constructor(t){super(),t=t||{},this.condition_=t.condition?t.condition:function(t){return!function(t){const e=t.originalEvent;return RG?e.metaKey:e.ctrlKey}(t)&&iJ(t)},this.delta_=t.delta?t.delta:1,this.duration_=void 0!==t.duration?t.duration:100}handleEvent(t){let e=!1;if(t.type==KH||t.type==YH){const n=t.originalEvent,r=n.key;if(this.condition_(t)&&("+"===r||"-"===r)){const i=t.map,s="+"===r?this.delta_:-this.delta_;KX(i.getView(),s,void 0,this.duration_),n.preventDefault(),e=!0}}return!e}},_J=class extends ZX{constructor(t){super(t=t||{}),this.totalDelta_=0,this.lastDelta_=0,this.maxDelta_=void 0!==t.maxDelta?t.maxDelta:1,this.duration_=void 0!==t.duration?t.duration:250,this.timeout_=void 0!==t.timeout?t.timeout:80,this.useAnchor_=void 0===t.useAnchor||t.useAnchor,this.constrainResolution_=void 0!==t.constrainResolution&&t.constrainResolution;const e=t.condition?t.condition:tJ;this.condition_=t.onFocusOnly?XX(QX,e):e,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_,this.mode_=void 0,this.trackpadEventGap_=400,this.trackpadTimeoutId_,this.deltaPerZoom_=300,this.ctrlKeyPressed_=!1,this.ctrlKeyListenerKeys_=[]}setMap(t){if(this.ctrlKeyListenerKeys_.forEach(WH),this.ctrlKeyListenerKeys_.length=0,this.ctrlKeyPressed_=!1,super.setMap(t),t){const e=t.getOwnerDocument();this.ctrlKeyListenerKeys_.push(qH(e,"keydown",t=>{"Control"===t.key&&(this.ctrlKeyPressed_=!0)}),qH(e,"keyup",t=>{"Control"===t.key&&(this.ctrlKeyPressed_=!1)}))}}endInteraction_(){this.trackpadTimeoutId_=void 0;const t=this.getMap();if(!t)return;const e=t.getView(),n=this.lastDelta_?this.lastDelta_>0?1:-1:0;e.endInteraction(this.constrainResolution_||e.getConstrainResolution()?100:void 0,n,this.lastAnchor_?t.getCoordinateFromPixel(this.lastAnchor_):null)}handleEvent(t){if(!this.condition_(t))return!0;if(t.type!==JH)return!0;const e=t.map,n=t.originalEvent;n.preventDefault();const r=n.ctrlKey&&!this.ctrlKeyPressed_;n.ctrlKey||(this.ctrlKeyPressed_=!1),this.useAnchor_&&(this.lastAnchor_=t.pixel);let i=n.deltaY;switch(n.deltaMode){case WheelEvent.DOM_DELTA_LINE:i*=40;break;case WheelEvent.DOM_DELTA_PAGE:i*=300}if(0===i)return!1;this.lastDelta_=i;const s=Date.now();void 0===this.startTime_&&(this.startTime_=s),(!this.mode_||s-this.startTime_>this.trackpadEventGap_)&&(this.mode_=Math.abs(i)<4?"trackpad":"wheel");const o=e.getView();if("trackpad"===this.mode_)return this.trackpadTimeoutId_?clearTimeout(this.trackpadTimeoutId_):(o.getAnimating()&&o.cancelAnimations(),o.beginInteraction()),this.trackpadTimeoutId_=setTimeout(this.endInteraction_.bind(this),this.timeout_),r&&(i*=3),o.adjustZoom(-i/this.deltaPerZoom_,this.lastAnchor_?e.getCoordinateFromPixel(this.lastAnchor_):null),this.startTime_=s,!1;this.totalDelta_+=i;const a=Math.max(this.timeout_-(s-this.startTime_),0);return clearTimeout(this.timeoutId_),this.timeoutId_=setTimeout(this.handleWheelZoom_.bind(this,e),a),!1}handleWheelZoom_(t){const e=t.getView();e.getAnimating()&&e.cancelAnimations();let n=-GG(this.totalDelta_,-this.maxDelta_*this.deltaPerZoom_,this.maxDelta_*this.deltaPerZoom_)/this.deltaPerZoom_;(e.getConstrainResolution()||this.constrainResolution_)&&(n=n?n>0?1:-1:0),KX(e,n,this.lastAnchor_?t.getCoordinateFromPixel(this.lastAnchor_):null,this.duration_),this.mode_=void 0,this.totalDelta_=0,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_=void 0}setMouseAnchor(t){this.useAnchor_=t,t||(this.lastAnchor_=null)}},xJ=class extends aJ{constructor(t){const e=t=t||{};e.stopDown||(e.stopDown=aG),super(e),this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.threshold_=void 0!==t.threshold?t.threshold:.3,this.duration_=void 0!==t.duration?t.duration:250}handleDragEvent(t){let e=0;const n=this.targetPointers[0],r=this.targetPointers[1],i=Math.atan2(r.clientY-n.clientY,r.clientX-n.clientX);if(void 0!==this.lastAngle_){const t=i-this.lastAngle_;this.rotationDelta_+=t,!this.rotating_&&Math.abs(this.rotationDelta_)>this.threshold_&&(this.rotating_=!0),e=t}this.lastAngle_=i;const s=t.map,o=s.getView();o.getConstraints().rotation!==yX&&(this.anchor_=s.getCoordinateFromPixelInternal(s.getEventPixel(lJ(this.targetPointers))),this.rotating_&&(s.render(),o.adjustRotationInternal(e,this.anchor_)))}handleUpEvent(t){return!(this.targetPointers.length<2&&(t.map.getView().endInteraction(this.duration_),1))}handleDownEvent(t){if(this.targetPointers.length>=2){const e=t.map;return this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.handlingDownUpSequence||e.getView().beginInteraction(),!0}return!1}},CJ=class extends aJ{constructor(t){const e=t=t||{};e.stopDown||(e.stopDown=aG),super(e),this.anchor_=null,this.duration_=void 0!==t.duration?t.duration:400,this.lastDistance_=void 0,this.lastScaleDelta_=1}handleDragEvent(t){let e=1;const n=this.targetPointers[0],r=this.targetPointers[1],i=n.clientX-r.clientX,s=n.clientY-r.clientY,o=Math.sqrt(i*i+s*s);void 0!==this.lastDistance_&&(e=this.lastDistance_/o),this.lastDistance_=o;const a=t.map,l=a.getView();1!=e&&(this.lastScaleDelta_=e),this.anchor_=a.getCoordinateFromPixelInternal(a.getEventPixel(lJ(this.targetPointers))),a.render(),l.adjustResolutionInternal(e,this.anchor_)}handleUpEvent(t){if(this.targetPointers.length<2){const e=t.map.getView(),n=this.lastScaleDelta_>1?1:-1;return e.endInteraction(this.duration_,n),!1}return!0}handleDownEvent(t){if(this.targetPointers.length>=2){const e=t.map;return this.anchor_=null,this.lastDistance_=void 0,this.lastScaleDelta_=1,this.handlingDownUpSequence||e.getView().beginInteraction(),!0}return!1}};function SJ(t){t=t||{};const e=new _G,n=new HX(-.005,.05,100);return(void 0===t.altShiftDragRotate||t.altShiftDragRotate)&&e.push(new uJ),(void 0===t.doubleClickZoom||t.doubleClickZoom)&&e.push(new YX({delta:t.zoomDelta,duration:t.zoomDuration})),(void 0===t.dragPan||t.dragPan)&&e.push(new cJ({onFocusOnly:t.onFocusOnly,kinetic:n})),(void 0===t.pinchRotate||t.pinchRotate)&&e.push(new xJ),(void 0===t.pinchZoom||t.pinchZoom)&&e.push(new CJ({duration:t.zoomDuration})),(void 0===t.keyboard||t.keyboard)&&(e.push(new bJ),e.push(new wJ({delta:t.zoomDelta,duration:t.zoomDuration}))),(void 0===t.mouseWheelZoom||t.mouseWheelZoom)&&e.push(new _J({onFocusOnly:t.onFocusOnly,duration:t.zoomDuration})),(void 0===t.shiftDragZoom||t.shiftDragZoom)&&e.push(new gJ({duration:t.zoomDuration})),e}var kJ="opacity",EJ="visible",RJ="extent",TJ="zIndex",LJ="maxResolution",IJ="minResolution",PJ="maxZoom",MJ="minZoom",AJ="source",OJ=class extends vG{constructor(t){super(),this.on,this.once,this.un,this.background_=t.background;const e=Object.assign({},t);"object"==typeof t.properties&&(delete e.properties,Object.assign(e,t.properties)),e[kJ]=void 0!==t.opacity?t.opacity:1,$G("number"==typeof e[kJ],"Layer opacity must be a number"),e[EJ]=void 0===t.visible||t.visible,e[TJ]=t.zIndex,e[LJ]=void 0!==t.maxResolution?t.maxResolution:1/0,e[IJ]=void 0!==t.minResolution?t.minResolution:0,e[MJ]=void 0!==t.minZoom?t.minZoom:-1/0,e[PJ]=void 0!==t.maxZoom?t.maxZoom:1/0,this.className_=void 0!==e.className?e.className:"ol-layer",delete e.className,this.setProperties(e),this.state_=null}getBackground(){return this.background_}getClassName(){return this.className_}getLayerState(t){const e=this.state_||{layer:this,managed:void 0===t||t},n=this.getZIndex();return e.opacity=GG(Math.round(100*this.getOpacity())/100,0,1),e.visible=this.getVisible(),e.extent=this.getExtent(),e.zIndex=void 0!==n||e.managed?n:1/0,e.maxResolution=this.getMaxResolution(),e.minResolution=Math.max(this.getMinResolution(),0),e.minZoom=this.getMinZoom(),e.maxZoom=this.getMaxZoom(),this.state_=e,e}getLayersArray(t){return fG()}getLayerStatesArray(t){return fG()}getExtent(){return this.get(RJ)}getMaxResolution(){return this.get(LJ)}getMinResolution(){return this.get(IJ)}getMinZoom(){return this.get(MJ)}getMaxZoom(){return this.get(PJ)}getOpacity(){return this.get(kJ)}getSourceState(){return fG()}getVisible(){return this.get(EJ)}getZIndex(){return this.get(TJ)}setBackground(t){this.background_=t,this.changed()}setExtent(t){this.set(RJ,t)}setMaxResolution(t){this.set(LJ,t)}setMinResolution(t){this.set(IJ,t)}setMaxZoom(t){this.set(PJ,t)}setMinZoom(t){this.set(MJ,t)}setOpacity(t){$G("number"==typeof t,"Layer opacity must be a number"),this.set(kJ,t)}setVisible(t){this.set(EJ,t)}setZIndex(t){this.set(TJ,t)}disposeInternal(){this.state_&&(this.state_.layer=null,this.state_=null),super.disposeInternal()}},NJ="addlayer",FJ="removelayer",zJ=class extends hG{constructor(t,e){super(t),this.layer=e}},DJ="layers",jJ=class t extends OJ{constructor(t){t=t||{};const e=Object.assign({},t);delete e.layers;let n=t.layers;super(e),this.on,this.once,this.un,this.layersListenerKeys_=[],this.listenerKeys_={},this.addChangeListener(DJ,this.handleLayersChanged_),n?Array.isArray(n)?n=new _G(n.slice(),{unique:!0}):$G("function"==typeof n.getArray,"Expected `layers` to be an array or a `Collection`"):n=new _G(void 0,{unique:!0}),this.setLayers(n)}handleLayerChange_(){this.changed()}handleLayersChanged_(){this.layersListenerKeys_.forEach(WH),this.layersListenerKeys_.length=0;const t=this.getLayers();this.layersListenerKeys_.push(qH(t,DH,this.handleLayersAdd_,this),qH(t,jH,this.handleLayersRemove_,this));for(const n in this.listenerKeys_)this.listenerKeys_[n].forEach(WH);BH(this.listenerKeys_);const e=t.getArray();for(let n=0,r=e.length;n{this.dispatchEvent("sourceready")},0))),this.changed()}getFeatures(t){return this.renderer_?this.renderer_.getFeatures(t):Promise.resolve([])}getData(t){return this.renderer_&&this.rendered?this.renderer_.getData(t):null}isVisible(t){let e;const n=this.getMapInternal();let r;if(!t&&n&&(t=n.getView()),e=t instanceof bX?{viewState:t.getState(),extent:t.calculateExtent()}:t,!e.layerStatesArray&&n&&(e.layerStatesArray=n.getLayerGroup().getLayerStatesArray()),e.layerStatesArray){if(r=e.layerStatesArray.find(t=>t.layer===this),!r)return!1}else r=this.getLayerState();const i=this.getExtent();return WJ(r,e.viewState)&&(!i||zZ(i,e.extent))}getAttributions(t){if(!this.isVisible(t))return[];const e=this.getSource()?.getAttributions();if(!e)return[];let n=e(t instanceof bX?t.getViewStateAndExtent():t);return Array.isArray(n)||(n=[n]),n}render(t,e){const n=this.getRenderer();return n.prepareFrame(t)?(this.rendered=!0,n.renderFrame(t,e)):null}unrender(){this.rendered=!1}getDeclutter(){}renderDeclutter(t,e){}renderDeferred(t){const e=this.getRenderer();e&&e.renderDeferred(t)}setMapInternal(t){t||this.unrender(),this.set("map",t)}getMapInternal(){return this.get("map")}setMap(t){this.mapPrecomposeKey_&&(WH(this.mapPrecomposeKey_),this.mapPrecomposeKey_=null),t||this.changed(),this.mapRenderKey_&&(WH(this.mapRenderKey_),this.mapRenderKey_=null),t&&(this.mapPrecomposeKey_=qH(t,$J,this.handlePrecompose_,this),this.mapRenderKey_=qH(this,HH,t.render,t),this.changed())}handlePrecompose_(t){const e=t.frameState.layerStatesArray,n=this.getLayerState(!1);$G(!e.some(t=>t.layer===n.layer),"A layer can only be added to the map once. Use either `layer.setMap()` or `map.addLayer()`, not both."),e.push(n)}setSource(t){this.set(AJ,t)}getRenderer(){return this.renderer_||(this.renderer_=this.createRenderer()),this.renderer_}hasRenderer(){return!!this.renderer_}createRenderer(){return null}clearRenderer(){this.renderer_&&(this.renderer_.dispose(),delete this.renderer_)}disposeInternal(){this.clearRenderer(),this.setSource(null),super.disposeInternal()}};function WJ(t,e){if(!t.visible)return!1;const n=e.resolution;if(n=t.maxResolution)return!1;const r=e.zoom;return r>t.minZoom&&r<=t.maxZoom}function HJ(t,e,n=0,r=t.length-1,i=ZJ){for(;r>n;){if(r-n>600){const s=r-n+1,o=e-n+1,a=Math.log(s),l=.5*Math.exp(2*a/3),c=.5*Math.sqrt(a*l*(s-l)/s)*(o-s/2<0?-1:1);HJ(t,e,Math.max(n,Math.floor(e-o*l/s+c)),Math.min(r,Math.floor(e+(s-o)*l/s+c)),i)}const s=t[e];let o=n,a=r;for(GJ(t,n,e),i(t[r],s)>0&&GJ(t,n,r);o0;)a--}0===i(t[n],s)?GJ(t,n,a):(a++,GJ(t,a,r)),a<=e&&(n=a+1),e<=a&&(r=a-1)}}function GJ(t,e,n){const r=t[e];t[e]=t[n],t[n]=r}function ZJ(t,e){return te?1:0}var KJ=class{constructor(t=9){this._maxEntries=Math.max(4,t),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()}all(){return this._all(this.data,[])}search(t){let e=this.data;const n=[];if(!aQ(t,e))return n;const r=this.toBBox,i=[];for(;e;){for(let s=0;s=0&&i[e].children.length>this._maxEntries;)this._split(i,e),e--;this._adjustParentBBoxes(r,i,e)}_split(t,e){const n=t[e],r=n.children.length,i=this._minEntries;this._chooseSplitAxis(n,i,r);const s=this._chooseSplitIndex(n,i,r),o=lQ(n.children.splice(s,n.children.length-s));o.height=n.height,o.leaf=n.leaf,XJ(n,this.toBBox),XJ(o,this.toBBox),e?t[e-1].children.push(o):this._splitRoot(n,o)}_splitRoot(t,e){this.data=lQ([t,e]),this.data.height=t.height+1,this.data.leaf=!1,XJ(this.data,this.toBBox)}_chooseSplitIndex(t,e,n){let r,i=1/0,s=1/0;for(let o=e;o<=n-e;o++){const e=JJ(t,0,o,this.toBBox),a=JJ(t,o,n,this.toBBox),l=sQ(e,a),c=nQ(e)+nQ(a);l=e;l--){const e=t.children[l];QJ(o,t.leaf?i(e):e),a+=rQ(o)}return a}_adjustParentBBoxes(t,e,n){for(let r=n;r>=0;r--)QJ(e[r],t)}_condense(t){for(let e,n=t.length-1;n>=0;n--)0===t[n].children.length?n>0?(e=t[n-1].children,e.splice(e.indexOf(t[n]),1)):this.clear():XJ(t[n],this.toBBox)}};function YJ(t,e,n){if(!n)return e.indexOf(t);for(let r=0;r=t.minX&&e.maxY>=t.minY}function lQ(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function cQ(t,e,n,r,i){const s=[e,n];for(;s.length;){if((n=s.pop())-(e=s.pop())<=r)continue;const o=e+Math.ceil((n-e)/r/2)*r;HJ(t,o,e,n,i),s.push(e,o,o,n)}}var uQ,hQ=[NaN,NaN,NaN,0],dQ=/^rgba?\(\s*(\d+%?)\s+(\d+%?)\s+(\d+%?)(?:\s*\/\s*(\d+%|\d*\.\d+|[01]))?\s*\)$/i,pQ=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)(?:\s*,\s*(\d+%|\d*\.\d+|[01]))?\s*\)$/i,fQ=/^rgba?\(\s*(\d+%)\s*,\s*(\d+%)\s*,\s*(\d+%)(?:\s*,\s*(\d+%|\d*\.\d+|[01]))?\s*\)$/i,gQ=/^#([\da-f]{3,4}|[\da-f]{6}|[\da-f]{8})$/i;function mQ(t,e){return t.endsWith("%")?Number(t.substring(0,t.length-1))/e:Number(t)}function yQ(t){throw new Error('failed to parse "'+t+'" as color')}function vQ(t){if(t.toLowerCase().startsWith("rgb")){const e=t.match(pQ)||t.match(dQ)||t.match(fQ);if(e){const t=e[4],n=100/255;return[GG(mQ(e[1],n)+.5|0,0,255),GG(mQ(e[2],n)+.5|0,0,255),GG(mQ(e[3],n)+.5|0,0,255),void 0!==t?GG(mQ(t,100),0,1):1]}yQ(t)}if(t.startsWith("#")){if(gQ.test(t)){const e=t.substring(1),n=e.length<=4?1:2,r=[0,0,0,255];for(let t=0,i=e.length;t.0031308?269.025*Math.pow(t,1/2.4)-14.025:3294.6*t}function CQ(t){return t>.2068965?Math.pow(t,3):108/841*(t-4/29)}function SQ(t){return t>10.314724?Math.pow((t+14.025)/269.025,2.4):t/3294.6}function kQ(t){return t>.0088564?Math.pow(t,1/3):t/(108/841)+4/29}function EQ(t){const e=SQ(t[0]),n=SQ(t[1]),r=SQ(t[2]),i=kQ(.222488403*e+.716873169*n+.06060791*r),s=500*(kQ(.452247074*e+.399439023*n+.148375274*r)-i),o=200*(i-kQ(.016863605*e+.117638439*n+.865350722*r)),a=Math.atan2(o,s)*(180/Math.PI);return[116*i-16,Math.sqrt(s*s+o*o),a<0?a+360:a,t[3]]}function RQ(t){if("none"===t)return hQ;if(bQ.hasOwnProperty(t))return bQ[t];if(wQ>=1024){let t=0;for(const e in bQ)3&t++||(delete bQ[e],--wQ)}const e=vQ(t);4!==e.length&&yQ(t);for(const n of e)isNaN(n)&&yQ(t);return bQ[t]=e,++wQ,e}function TQ(t){return Array.isArray(t)?t:RQ(t)}function LQ(t){let e=t[0];e!=(0|e)&&(e=e+.5|0);let n=t[1];n!=(0|n)&&(n=n+.5|0);let r=t[2];return r!=(0|r)&&(r=r+.5|0),"rgba("+e+","+n+","+r+","+(void 0===t[3]?1:Math.round(1e3*t[3])/1e3)+")"}function IQ(t){return t[0]>0&&t[1]>0}function PQ(t,e){return Array.isArray(t)?t:(void 0===e?e=[t,t]:(e[0]=t,e[1]=t),e)}var MQ=0,AQ=1<e)throw new Error(`expected ${e===1/0?`${t} or more`:`${t} to ${e}`} arguments for ${r}, got ${i}`)}}function Z0(t,e,n){const r=t.length-1,i=new Array(r);for(let s=0;s{for(let e=0;e{for(let e=0;e{const r=t.args;let i=n.properties[e];for(let t=1,e=r.length;tt.variables[e];case $0:return n=>{const r=t.args;if(!(e in n.properties))return!1;let i=n.properties[e];for(let t=1,e=r.length;tt.featureId;case QQ:return t=>t.geometryType;case JQ:{const n=t.args.map(t=>e1(t,e));return t=>"".concat(...n.map(e=>e(t).toString()))}case i0:return t=>t.resolution;case e0:case n0:case L0:case A0:case"!":return function(t,e){const n=t.operator,r=t.args.length,i=new Array(r);for(let s=0;s{for(let e=0;e{for(let e=0;e{const e=i[0](t),n=i[1](t),r=i[2](t);return e>=n&&e<=r};case A0:return t=>{const e=i[0](t);for(let n=1;n!i[0](t);default:throw new Error(`Unsupported logical operator ${n}`)}}(t,e);case a0:case l0:case"<":case d0:case">":case u0:return function(t,e){const n=t.operator,r=e1(t.args[0],e),i=e1(t.args[1],e);switch(n){case a0:return t=>r(t)===i(t);case l0:return t=>r(t)!==i(t);case"<":return t=>r(t)r(t)<=i(t);case">":return t=>r(t)>i(t);case u0:return t=>r(t)>=i(t);default:throw new Error(`Unsupported comparison operator ${n}`)}}(t,e);case"*":case"/":case"+":case"-":case y0:case"%":case"^":case w0:case _0:case x0:case C0:case S0:case k0:case E0:case R0:return function(t,e){const n=t.operator,r=t.args.length,i=new Array(r);for(let s=0;s{let e=1;for(let n=0;ni[0](t)/i[1](t);case"+":return t=>{let e=0;for(let n=0;ni[0](t)-i[1](t);case y0:return t=>{const e=i[0](t),n=i[1](t);if(er?r:e};case"%":return t=>i[0](t)%i[1](t);case"^":return t=>Math.pow(i[0](t),i[1](t));case w0:return t=>Math.abs(i[0](t));case _0:return t=>Math.floor(i[0](t));case x0:return t=>Math.ceil(i[0](t));case C0:return t=>Math.round(i[0](t));case S0:return t=>Math.sin(i[0](t));case k0:return t=>Math.cos(i[0](t));case E0:return 2===r?t=>Math.atan2(i[0](t),i[1](t)):t=>Math.atan(i[0](t));case R0:return t=>Math.sqrt(i[0](t));default:throw new Error(`Unsupported numeric operator ${n}`)}}(t,e);case M0:return function(t,e){const n=t.args.length,r=new Array(n);for(let i=0;i{for(let e=0;e{const e=r[0](t);for(let i=1;i{const e=r[0](t),i=r[1](t);let s,o;for(let a=2;a=i)return 2===a?l:c?r1(e,i,s,o,n,l):n1(e,i,s,o,n,l);s=n,o=l}return o}}(t,e);case B0:return function(t,e){const n=t.operator,r=t.args.length,i=new Array(r);for(let s=0;s{const n=i[0](e);return t.args[0].type===FQ?LQ(n):n.toString()};throw new Error(`Unsupported convert operator ${n}`)}(t,e);default:throw new Error(`Unsupported operator ${n}`)}}function n1(t,e,n,r,i,s){const o=i-n;if(0===o)return r;const a=e-n;return r+(1===t?a/o:(Math.pow(t,a)-1)/(Math.pow(t,o)-1))*(s-r)}function r1(t,e,n,r,i,s){if(i-n===0)return r;const o=EQ(r),a=EQ(s);let l=a[2]-o[2];return l>180?l-=360:l<-180&&(l+=360),function(t){const e=(t[0]+16)/116,n=t[1],r=t[2]*Math.PI/180,i=CQ(e),s=CQ(e+n/500*Math.cos(r)),o=CQ(e-n/200*Math.sin(r)),a=xQ(3.021973625*s-1.617392459*i-.404875592*o),l=xQ(-.943766287*s+1.916279586*i+.027607165*o),c=xQ(.069407491*s-.22898585*i+1.159737864*o);return[GG(a+.5|0,0,255),GG(l+.5|0,0,255),GG(c+.5|0,0,255),t[3]]}([n1(t,e,n,o[0],i,a[0]),n1(t,e,n,o[1],i,a[1]),o[2]+n1(t,e,n,0,i,l),n1(t,e,n,r[3],i,s[3])])}var i1=class extends dG{constructor(t,e,n,r){super(),this.extent=t,this.pixelRatio_=n,this.resolution=e,this.state="function"==typeof r?0:r,this.image_=null,this.loader="function"==typeof r?r:null}changed(){this.dispatchEvent(HH)}getExtent(){return this.extent}getImage(){return this.image_}getPixelRatio(){return this.pixelRatio_}getResolution(){return this.resolution}getState(){return this.state}load(){if(0==this.state&&this.loader){this.state=1,this.changed();const t=this.getResolution(),e=Array.isArray(t)?t[0]:t;uG(()=>this.loader(this.getExtent(),e,this.getPixelRatio())).then(t=>{"image"in t&&(this.image_=t.image),"extent"in t&&(this.extent=t.extent),"resolution"in t&&(this.resolution=t.resolution),"pixelRatio"in t&&(this.pixelRatio_=t.pixelRatio),(t instanceof HTMLImageElement||PG&&t instanceof ImageBitmap||t instanceof HTMLCanvasElement||t instanceof HTMLVideoElement)&&(this.image_=t),this.state=2}).catch(t=>{this.state=3,console.error(t)}).finally(()=>this.changed())}}setImage(t){this.image_=t}setResolution(t){this.resolution=t}};function s1(t,e){return t+":"+(e?TQ(e):"null")}var o1=new class{constructor(){this.cache_={},this.patternCache_={},this.cacheSize_=0,this.maxCacheSize_=1024}clear(){this.cache_={},this.patternCache_={},this.cacheSize_=0}canExpireCache(){return this.cacheSize_>this.maxCacheSize_}expire(){if(this.canExpireCache()){let t=0;for(const e in this.cache_){const n=this.cache_[e];3&t++||n.hasListener()||(delete this.cache_[e],delete this.patternCache_[e],--this.cacheSize_)}}}get(t,e){const n=s1(t,e);return n in this.cache_?this.cache_[n]:null}getPattern(t,e){const n=s1(t,e);return n in this.patternCache_?this.patternCache_[n]:null}set(t,e,n,r){const i=s1(t,e),s=i in this.cache_;this.cache_[i]=n,r&&(0===n.getImageState()&&n.load(),1===n.getImageState()?n.ready().then(()=>{this.patternCache_[i]=AX().createPattern(n.getImage(1),"repeat")}):this.patternCache_[i]=AX().createPattern(n.getImage(1),"repeat")),s||++this.cacheSize_}setSize(t){this.maxCacheSize_=t,this.expire()}},a1=null,l1=class extends dG{constructor(t,e,n,r,i){super(),this.hitDetectionImage_=null,this.image_=t,this.crossOrigin_=n?.crossOrigin,this.referrerPolicy_=n?.referrerPolicy,this.canvas_={},this.color_=i,this.imageState_=void 0===r?0:r,this.size_=t&&t.width&&t.height?[t.width,t.height]:null,this.src_=e,this.tainted_,this.ready_=null}initializeImage_(){this.image_=new Image,null!==this.crossOrigin_&&(this.image_.crossOrigin=this.crossOrigin_),void 0!==this.referrerPolicy_&&(this.image_.referrerPolicy=this.referrerPolicy_)}isTainted_(){if(void 0===this.tainted_&&2===this.imageState_){a1||(a1=MX(1,1,void 0,{willReadFrequently:!0})),a1.drawImage(this.image_,0,0);try{a1.getImageData(0,0,1,1),this.tainted_=!1}catch{a1=null,this.tainted_=!0}}return!0===this.tainted_}dispatchChangeEvent_(){this.dispatchEvent(HH)}handleImageError_(){this.imageState_=3,this.dispatchChangeEvent_()}handleImageLoad_(){this.imageState_=2,this.size_=[this.image_.width,this.image_.height],this.dispatchChangeEvent_()}getImage(t){return this.image_||this.initializeImage_(),this.replaceColor_(t),this.canvas_[t]?this.canvas_[t]:this.image_}setImage(t){this.image_=t}getPixelRatio(t){return this.replaceColor_(t),this.canvas_[t]?t:1}getImageState(){return this.imageState_}getHitDetectionImage(){if(this.image_||this.initializeImage_(),!this.hitDetectionImage_)if(this.isTainted_()){const t=this.size_[0],e=this.size_[1],n=MX(t,e);n.fillRect(0,0,t,e),this.hitDetectionImage_=n.canvas}else this.hitDetectionImage_=this.image_;return this.hitDetectionImage_}getSize(){return this.size_}getSrc(){return this.src_}load(){if(0===this.imageState_){this.image_||this.initializeImage_(),this.imageState_=1;try{void 0!==this.src_&&(this.image_.src=this.src_)}catch{this.handleImageError_()}this.image_ instanceof HTMLImageElement&&(t=this.image_,e=this.src_,e&&(t.src=e),t.src&&IG?new Promise((e,n)=>t.decode().then(()=>e(t)).catch(r=>t.complete&&t.width?e(t):n(r))):function(t){return new Promise((e,n)=>{function r(){s(),e(t)}function i(){s(),n(new Error("Image load error"))}function s(){t.removeEventListener("load",r),t.removeEventListener("error",i)}t.addEventListener("load",r),t.addEventListener("error",i)})}(t)).then(t=>{this.image_=t,this.handleImageLoad_()}).catch(this.handleImageError_.bind(this))}var t,e}replaceColor_(t){if(!this.color_||this.canvas_[t]||2!==this.imageState_)return;const e=this.image_,n=MX(Math.ceil(e.width*t),Math.ceil(e.height*t)),r=n.canvas;var i;n.scale(t,t),n.drawImage(e,0,0),n.globalCompositeOperation="multiply",n.fillStyle="string"==typeof(i=this.color_)?i:LQ(i),n.fillRect(0,0,r.width/t,r.height/t),n.globalCompositeOperation="destination-in",n.drawImage(e,0,0),this.canvas_[t]=r}ready(){return this.ready_||(this.ready_=new Promise(t=>{if(2===this.imageState_||3===this.imageState_)t();else{const e=()=>{2!==this.imageState_&&3!==this.imageState_||(this.removeEventListener(HH,e),t())};this.addEventListener(HH,e)}})),this.ready_}};function c1(t,e,n,r,i,s){let o=void 0===e?void 0:o1.get(e,i);return o||(o=new l1(t,t&&"src"in t?t.src||void 0:e,n,r,i),o1.set(e,i,o,s)),s&&o&&!o1.getPattern(e,i)&&o1.set(e,i,o,s),o}function u1(t){return t?Array.isArray(t)?LQ(t):"object"==typeof t&&"src"in t?function(t){if(!t.offset||!t.size)return o1.getPattern(t.src,t.color);const e=t.src+":"+t.offset,n=o1.getPattern(e,t.color);if(n)return n;const r=o1.get(t.src,null);if(2!==r.getImageState())return null;const i=MX(t.size[0],t.size[1]);return i.drawImage(r.getImage(1),t.offset[0],t.offset[1],t.size[0],t.size[1],0,0,t.size[0],t.size[1]),c1(i.canvas,e,void 0,2,t.color,!0),o1.getPattern(e,t.color)}(t):t:null}var h1,d1="#000",p1="round",f1=[],g1="round",m1="#000",y1="center",v1=[0,0,0,0],b1=new vG,w1=null,_1={},x1=new Set(["serif","sans-serif","monospace","cursive","fantasy","system-ui","ui-serif","ui-sans-serif","ui-monospace","ui-rounded","emoji","math","fangsong"]);function C1(t,e,n){return`${t} ${e} 16px "${n}"`}var S1=function(){const t=100;let e,n;async function r(t){await n.ready;const e=PX(t),r=e.families[0].toLowerCase(),i=e.weight,s=[];return n.forEach(t=>{const n=t.family.replace(/^['"]|['"]$/g,"").toLowerCase(),o=IX[t.weight]||t.weight;n===r&&t.style===e.style&&o==i&&s.push(t)}),0!==s.length&&(await Promise.all(s.map(t=>t.load().then(()=>!0,()=>!1)))).some(t=>t)}async function i(){await n.ready;let s=!0;const o=b1.getProperties(),a=Object.keys(o).filter(e=>o[e]=0;--e){const n=a[e];let i=o[n];iMath.max(e,R1(t,n)),0);return n[e]=r,r}var L1=class t{constructor(t){this.opacity_=t.opacity,this.rotateWithView_=t.rotateWithView,this.rotation_=t.rotation,this.scale_=t.scale,this.scaleArray_=PQ(t.scale),this.displacement_=t.displacement,this.declutterMode_=t.declutterMode}clone(){const e=this.getScale();return new t({opacity:this.getOpacity(),scale:Array.isArray(e)?e.slice():e,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()})}getOpacity(){return this.opacity_}getRotateWithView(){return this.rotateWithView_}getRotation(){return this.rotation_}getScale(){return this.scale_}getScaleArray(){return this.scaleArray_}getDisplacement(){return this.displacement_}getDeclutterMode(){return this.declutterMode_}getAnchor(){return fG()}getImage(t){return fG()}getHitDetectionImage(){return fG()}getPixelRatio(t){return 1}getImageState(){return fG()}getImageSize(){return fG()}getOrigin(){return fG()}getSize(){return fG()}setDisplacement(t){this.displacement_=t}setOpacity(t){this.opacity_=t}setRotateWithView(t){this.rotateWithView_=t}setRotation(t){this.rotation_=t}setScale(t){this.scale_=t,this.scaleArray_=PQ(t)}listenImageChange(t){fG()}load(){fG()}unlistenImageChange(t){fG()}ready(){return Promise.resolve()}},I1=class t extends L1{constructor(t){super({opacity:1,rotateWithView:void 0!==t.rotateWithView&&t.rotateWithView,rotation:void 0!==t.rotation?t.rotation:0,scale:void 0!==t.scale?t.scale:1,displacement:void 0!==t.displacement?t.displacement:[0,0],declutterMode:t.declutterMode}),this.hitDetectionCanvas_=null,this.fill_=void 0!==t.fill?t.fill:null,this.origin_=[0,0],this.points_=t.points,this.radius=t.radius,this.radius2_=t.radius2,this.angle_=void 0!==t.angle?t.angle:0,this.stroke_=void 0!==t.stroke?t.stroke:null,this.size_,this.renderOptions_,this.imageState_=this.fill_&&this.fill_.loading()?1:2,1===this.imageState_&&this.ready().then(()=>this.imageState_=2),this.render()}clone(){const e=this.getScale(),n=new t({fill:this.getFill()?this.getFill().clone():void 0,points:this.getPoints(),radius:this.getRadius(),radius2:this.getRadius2(),angle:this.getAngle(),stroke:this.getStroke()?this.getStroke().clone():void 0,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),scale:Array.isArray(e)?e.slice():e,displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()});return n.setOpacity(this.getOpacity()),n}getAnchor(){const t=this.size_,e=this.getDisplacement(),n=this.getScaleArray();return[t[0]/2-e[0]/n[0],t[1]/2+e[1]/n[1]]}getAngle(){return this.angle_}getFill(){return this.fill_}setFill(t){this.fill_=t,this.render()}getHitDetectionImage(){return this.hitDetectionCanvas_||(this.hitDetectionCanvas_=this.createHitDetectionCanvas_(this.renderOptions_)),this.hitDetectionCanvas_}getImage(t){const e=this.fill_?.getKey(),n=`${t},${this.angle_},${this.radius},${this.radius2_},${this.points_},${e}`+Object.values(this.renderOptions_).join(",");let r=o1.get(n,null)?.getImage(1);if(!r){const e=this.renderOptions_,i=Math.ceil(e.size*t),s=MX(i,i);this.draw_(e,s,t),r=s.canvas;const o=new l1(r,void 0,null,2,null);o1.set(n,null,o),createImageBitmap(r).then(t=>{o.setImage(t)})}return r}getPixelRatio(t){return t}getImageSize(){return this.size_}getImageState(){return this.imageState_}getOrigin(){return this.origin_}getPoints(){return this.points_}getRadius(){return this.radius}setRadius(t){this.radius!==t&&(this.radius=t,this.render())}getRadius2(){return this.radius2_}setRadius2(t){this.radius2_!==t&&(this.radius2_=t,this.render())}getSize(){return this.size_}getStroke(){return this.stroke_}setStroke(t){this.stroke_=t,this.render()}listenImageChange(t){}load(){}unlistenImageChange(t){}calculateLineJoinSize_(t,e,n){if(0===e||this.points_===1/0||"bevel"!==t&&"miter"!==t)return e;let r=this.radius,i=void 0===this.radius2_?r:this.radius2_;if(r{this.patternImage_=null}),0===e.getImageState()&&e.load(),1===e.getImageState()&&(this.patternImage_=e)}this.color_=t}getKey(){const t=this.getColor();return t?t instanceof CanvasPattern||t instanceof CanvasGradient?mG(t):"object"==typeof t&&"src"in t?t.src+":"+t.offset:TQ(t).toString():""}loading(){return!!this.patternImage_}ready(){return this.patternImage_?this.patternImage_.ready():Promise.resolve()}};function A1(t,e,n,r){return void 0!==n&&void 0!==r?[n/t,r/e]:void 0!==n?n/t:void 0!==r?r/e:1}var O1=class t extends L1{constructor(t){const e=void 0!==(t=t||{}).opacity?t.opacity:1,n=void 0!==t.rotation?t.rotation:0,r=void 0!==t.scale?t.scale:1,i=void 0!==t.rotateWithView&&t.rotateWithView;super({opacity:e,rotation:n,scale:r,displacement:void 0!==t.displacement?t.displacement:[0,0],rotateWithView:i,declutterMode:t.declutterMode}),this.anchor_=void 0!==t.anchor?t.anchor:[.5,.5],this.normalizedAnchor_=null,this.anchorOrigin_=void 0!==t.anchorOrigin?t.anchorOrigin:"top-left",this.anchorXUnits_=void 0!==t.anchorXUnits?t.anchorXUnits:"fraction",this.anchorYUnits_=void 0!==t.anchorYUnits?t.anchorYUnits:"fraction",this.crossOrigin_=void 0!==t.crossOrigin?t.crossOrigin:null,this.referrerPolicy_=t.referrerPolicy;const s=void 0!==t.img?t.img:null;let o,a=t.src;if($G(!(void 0!==a&&s),"`image` and `src` cannot be provided at the same time"),void 0!==a&&0!==a.length||!s||(a=s.src||mG(s)),$G(void 0!==a&&a.length>0,"A defined and non-empty `src` or `image` must be provided"),$G(!((void 0!==t.width||void 0!==t.height)&&void 0!==t.scale),"`width` or `height` cannot be provided together with `scale`"),void 0!==t.src?o=0:void 0!==s&&(o="complete"in s?s.complete?s.src?2:0:1:2),this.color_=void 0!==t.color?TQ(t.color):null,this.iconImage_=c1(s,a,{crossOrigin:this.crossOrigin_,referrerPolicy:this.referrerPolicy_},o,this.color_),this.offset_=void 0!==t.offset?t.offset:[0,0],this.offsetOrigin_=void 0!==t.offsetOrigin?t.offsetOrigin:"top-left",this.origin_=null,this.size_=void 0!==t.size?t.size:null,this.initialOptions_,void 0!==t.width||void 0!==t.height){let e,n;if(t.size)[e,n]=t.size;else{const r=this.getImage(1);if(r.width&&r.height)e=r.width,n=r.height;else if(r instanceof HTMLImageElement){this.initialOptions_=t;const e=()=>{if(this.unlistenImageChange(e),!this.initialOptions_)return;const n=this.iconImage_.getSize();this.setScale(A1(n[0],n[1],t.width,t.height))};return void this.listenImageChange(e)}}void 0!==e&&this.setScale(A1(e,n,t.width,t.height))}}clone(){let e,n,r;return this.initialOptions_?(n=this.initialOptions_.width,r=this.initialOptions_.height):(e=this.getScale(),e=Array.isArray(e)?e.slice():e),new t({anchor:this.anchor_.slice(),anchorOrigin:this.anchorOrigin_,anchorXUnits:this.anchorXUnits_,anchorYUnits:this.anchorYUnits_,color:this.color_&&this.color_.slice?this.color_.slice():this.color_||void 0,crossOrigin:this.crossOrigin_,referrerPolicy:this.referrerPolicy_,offset:this.offset_.slice(),offsetOrigin:this.offsetOrigin_,opacity:this.getOpacity(),rotateWithView:this.getRotateWithView(),rotation:this.getRotation(),scale:e,width:n,height:r,size:null!==this.size_?this.size_.slice():void 0,src:this.getSrc(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()})}getAnchor(){let t=this.normalizedAnchor_;if(!t){t=this.anchor_;const e=this.getSize();if("fraction"==this.anchorXUnits_||"fraction"==this.anchorYUnits_){if(!e)return null;t=this.anchor_.slice(),"fraction"==this.anchorXUnits_&&(t[0]*=e[0]),"fraction"==this.anchorYUnits_&&(t[1]*=e[1])}if("top-left"!=this.anchorOrigin_){if(!e)return null;t===this.anchor_&&(t=this.anchor_.slice()),"top-right"!=this.anchorOrigin_&&"bottom-right"!=this.anchorOrigin_||(t[0]=-t[0]+e[0]),"bottom-left"!=this.anchorOrigin_&&"bottom-right"!=this.anchorOrigin_||(t[1]=-t[1]+e[1])}this.normalizedAnchor_=t}const e=this.getDisplacement(),n=this.getScaleArray();return[t[0]-e[0]/n[0],t[1]+e[1]/n[1]]}setAnchor(t){this.anchor_=t,this.normalizedAnchor_=null}getColor(){return this.color_}setColor(t){const e=t?TQ(t):null;if(this.color_===e||this.color_&&e&&this.color_.length===e.length&&this.color_.every((t,n)=>t===e[n]))return;this.color_=e;const n=this.getSrc(),r=void 0!==n?null:this.getHitDetectionImage(),i=void 0!==n?0:this.iconImage_.getImageState();this.iconImage_=c1(r,n,{crossOrigin:this.crossOrigin_,referrerPolicy:this.referrerPolicy_},i,this.color_)}getImage(t){return this.iconImage_.getImage(t)}getPixelRatio(t){return this.iconImage_.getPixelRatio(t)}getImageSize(){return this.iconImage_.getSize()}getImageState(){return this.iconImage_.getImageState()}getHitDetectionImage(){return this.iconImage_.getHitDetectionImage()}getOrigin(){if(this.origin_)return this.origin_;let t=this.offset_;if("top-left"!=this.offsetOrigin_){const e=this.getSize(),n=this.iconImage_.getSize();if(!e||!n)return null;t=t.slice(),"top-right"!=this.offsetOrigin_&&"bottom-right"!=this.offsetOrigin_||(t[0]=n[0]-e[0]-t[0]),"bottom-left"!=this.offsetOrigin_&&"bottom-right"!=this.offsetOrigin_||(t[1]=n[1]-e[1]-t[1])}return this.origin_=t,this.origin_}getSrc(){return this.iconImage_.getSrc()}setSrc(t){this.iconImage_=c1(null,t,{crossOrigin:this.crossOrigin_,referrerPolicy:this.referrerPolicy_},0,this.color_)}getSize(){return this.size_?this.size_:this.iconImage_.getSize()}getWidth(){const t=this.getScaleArray();return this.size_?this.size_[0]*t[0]:2==this.iconImage_.getImageState()?this.iconImage_.getSize()[0]*t[0]:void 0}getHeight(){const t=this.getScaleArray();return this.size_?this.size_[1]*t[1]:2==this.iconImage_.getImageState()?this.iconImage_.getSize()[1]*t[1]:void 0}setScale(t){delete this.initialOptions_,super.setScale(t)}listenImageChange(t){this.iconImage_.addEventListener(HH,t)}load(){this.iconImage_.load()}unlistenImageChange(t){this.iconImage_.removeEventListener(HH,t)}ready(){return this.iconImage_.ready()}},N1=class t{constructor(t){t=t||{},this.color_=void 0!==t.color?t.color:null,this.lineCap_=t.lineCap,this.lineDash_=void 0!==t.lineDash?t.lineDash:null,this.lineDashOffset_=t.lineDashOffset,this.lineJoin_=t.lineJoin,this.miterLimit_=t.miterLimit,this.offset_=t.offset,this.width_=t.width}clone(){const e=this.getColor();return new t({color:Array.isArray(e)?e.slice():e||void 0,lineCap:this.getLineCap(),lineDash:this.getLineDash()?this.getLineDash().slice():void 0,lineDashOffset:this.getLineDashOffset(),lineJoin:this.getLineJoin(),miterLimit:this.getMiterLimit(),offset:this.getOffset(),width:this.getWidth()})}getColor(){return this.color_}getLineCap(){return this.lineCap_}getLineDash(){return this.lineDash_}getLineDashOffset(){return this.lineDashOffset_}getLineJoin(){return this.lineJoin_}getMiterLimit(){return this.miterLimit_}getOffset(){return this.offset_}getWidth(){return this.width_}setColor(t){this.color_=t}setLineCap(t){this.lineCap_=t}setLineDash(t){this.lineDash_=t}setLineDashOffset(t){this.lineDashOffset_=t}setLineJoin(t){this.lineJoin_=t}setMiterLimit(t){this.miterLimit_=t}setOffset(t){this.offset_=t}setWidth(t){this.width_=t}},F1=class t{constructor(t){t=t||{},this.geometry_=null,this.geometryFunction_=j1,void 0!==t.geometry&&this.setGeometry(t.geometry),this.fill_=void 0!==t.fill?t.fill:null,this.image_=void 0!==t.image?t.image:null,this.renderer_=void 0!==t.renderer?t.renderer:null,this.hitDetectionRenderer_=void 0!==t.hitDetectionRenderer?t.hitDetectionRenderer:null,this.stroke_=void 0!==t.stroke?t.stroke:null,this.text_=void 0!==t.text?t.text:null,this.zIndex_=t.zIndex}clone(){let e=this.getGeometry();return e&&"object"==typeof e&&(e=e.clone()),new t({geometry:e??void 0,fill:this.getFill()?this.getFill().clone():void 0,image:this.getImage()?this.getImage().clone():void 0,renderer:this.getRenderer()??void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,text:this.getText()?this.getText().clone():void 0,zIndex:this.getZIndex()})}getRenderer(){return this.renderer_}setRenderer(t){this.renderer_=t}setHitDetectionRenderer(t){this.hitDetectionRenderer_=t}getHitDetectionRenderer(){return this.hitDetectionRenderer_}getGeometry(){return this.geometry_}getGeometryFunction(){return this.geometryFunction_}getFill(){return this.fill_}setFill(t){this.fill_=t}getImage(){return this.image_}setImage(t){this.image_=t}getStroke(){return this.stroke_}setStroke(t){this.stroke_=t}getText(){return this.text_}setText(t){this.text_=t}getZIndex(){return this.zIndex_}setGeometry(t){"function"==typeof t?this.geometryFunction_=t:"string"==typeof t?this.geometryFunction_=function(e){return e.get(t)}:t?void 0!==t&&(this.geometryFunction_=function(){return t}):this.geometryFunction_=j1,this.geometry_=t}setZIndex(t){this.zIndex_=t}},z1=null;function D1(){if(!z1){const t=new M1({color:"rgba(255,255,255,0.4)"}),e=new N1({color:"#3399CC",width:1.25});z1=[new F1({image:new P1({fill:t,stroke:e,radius:5}),fill:t,stroke:e})]}return z1}function j1(t){return t.getGeometry()}var U1=class t{constructor(t){t=t||{},this.font_=t.font,this.rotation_=t.rotation,this.rotateWithView_=t.rotateWithView,this.keepUpright_=t.keepUpright,this.scale_=t.scale,this.scaleArray_=PQ(void 0!==t.scale?t.scale:1),this.text_=t.text,this.textAlign_=t.textAlign,this.justify_=t.justify,this.repeat_=t.repeat,this.textBaseline_=t.textBaseline,this.fill_=void 0!==t.fill?t.fill:new M1({color:"#333"}),this.maxAngle_=void 0!==t.maxAngle?t.maxAngle:Math.PI/4,this.placement_=void 0!==t.placement?t.placement:"point",this.overflow_=!!t.overflow,this.stroke_=void 0!==t.stroke?t.stroke:null,this.offsetX_=void 0!==t.offsetX?t.offsetX:0,this.offsetY_=void 0!==t.offsetY?t.offsetY:0,this.backgroundFill_=t.backgroundFill?t.backgroundFill:null,this.backgroundStroke_=t.backgroundStroke?t.backgroundStroke:null,this.padding_=void 0===t.padding?null:t.padding,this.declutterMode_=t.declutterMode}clone(){const e=this.getScale();return new t({font:this.getFont(),placement:this.getPlacement(),repeat:this.getRepeat(),maxAngle:this.getMaxAngle(),overflow:this.getOverflow(),rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),keepUpright:this.getKeepUpright(),scale:Array.isArray(e)?e.slice():e,text:this.getText(),textAlign:this.getTextAlign(),justify:this.getJustify(),textBaseline:this.getTextBaseline(),fill:this.getFill()instanceof M1?this.getFill().clone():this.getFill(),stroke:this.getStroke()?this.getStroke().clone():void 0,offsetX:this.getOffsetX(),offsetY:this.getOffsetY(),backgroundFill:this.getBackgroundFill()?this.getBackgroundFill().clone():void 0,backgroundStroke:this.getBackgroundStroke()?this.getBackgroundStroke().clone():void 0,padding:this.getPadding()||void 0,declutterMode:this.getDeclutterMode()})}getOverflow(){return this.overflow_}getFont(){return this.font_}getMaxAngle(){return this.maxAngle_}getPlacement(){return this.placement_}getRepeat(){return this.repeat_}getOffsetX(){return this.offsetX_}getOffsetY(){return this.offsetY_}getFill(){return this.fill_}getRotateWithView(){return this.rotateWithView_}getKeepUpright(){return this.keepUpright_}getRotation(){return this.rotation_}getScale(){return this.scale_}getScaleArray(){return this.scaleArray_}getStroke(){return this.stroke_}getText(){return this.text_}getTextAlign(){return this.textAlign_}getJustify(){return this.justify_}getTextBaseline(){return this.textBaseline_}getBackgroundFill(){return this.backgroundFill_}getBackgroundStroke(){return this.backgroundStroke_}getPadding(){return this.padding_}getDeclutterMode(){return this.declutterMode_}setOverflow(t){this.overflow_=t}setFont(t){this.font_=t}setMaxAngle(t){this.maxAngle_=t}setOffsetX(t){this.offsetX_=t}setOffsetY(t){this.offsetY_=t}setPlacement(t){this.placement_=t}setRepeat(t){this.repeat_=t}setRotateWithView(t){this.rotateWithView_=t}setKeepUpright(t){this.keepUpright_=t}setFill(t){this.fill_=t}setRotation(t){this.rotation_=t}setScale(t){this.scale_=t,this.scaleArray_=PQ(void 0!==t?t:1)}setStroke(t){this.stroke_=t}setText(t){this.text_=t}setTextAlign(t){this.textAlign_=t}setJustify(t){this.justify_=t}setTextBaseline(t){this.textBaseline_=t}setBackgroundFill(t){this.backgroundFill_=t}setBackgroundStroke(t){this.backgroundStroke_=t}setPadding(t){this.padding_=t}};function B1(){return!0}function $1(t,e){e=e??ZQ();const n=t.length,r=new Array(n);for(let o=0;o0&&"string"==typeof p[0]?g=Y1(t,"icon-color",e):f=c2(p,"icon-color"));const m=function(t,e){const n=t[e];if(void 0!==n){if("string"!=typeof n)throw new Error(`Expected a string for ${e}`);return n}}(t,"icon-cross-origin"),y=function(t,e){const n=t[e];if(void 0!==n)return o2(n,e)}(t,"icon-offset"),v=r2(t,"icon-offset-origin"),b=e2(t,"icon-width"),w={src:r,anchorOrigin:u,anchorXUnits:h,anchorYUnits:d,crossOrigin:m,offset:y,offsetOrigin:v,height:e2(t,"icon-height"),width:b,size:n2(t,"icon-size"),declutterMode:s2(t,"icon-declutter-mode")};let _=null;return function(t){if(_)g&&_.setColor(g(t));else{const e=g?g(t):f;_=new O1(void 0!==e?Object.assign({},w,{color:e}):Object.assign({},w))}return o&&_.setOpacity(o(t)),a&&_.setDisplacement(a(t)),l&&_.setRotation(l(t)),c&&_.setRotateWithView(c(t)),s&&_.setScale(s(t)),i&&_.setAnchor(i(t)),_}}(t,e):"shape-points"in t?function(t,e){const n="shape-",r="shape-points",i="shape-radius",s=l2(t[r],r);if(!(i in t))throw new Error(`Expected a number for ${i}`);const o=G1(t,i,e),a="number"==typeof t[i]?t[i]:5,l="shape-radius2",c=G1(t,l,e),u="number"==typeof t[l]?t[l]:void 0,h=V1(t,n,e),d=W1(t,n,e),p=t2(t,"shape-scale",e),f=J1(t,"shape-displacement",e),g=G1(t,"shape-rotation",e),m=K1(t,"shape-rotate-with-view",e),y=e2(t,"shape-angle"),v=s2(t,"shape-declutter-mode"),b=new I1({points:s,radius:a,radius2:u,angle:y,declutterMode:v});return function(t){return o&&b.setRadius(o(t)),c&&b.setRadius2(c(t)),h&&b.setFill(h(t)),d&&b.setStroke(d(t)),f&&b.setDisplacement(f(t)),g&&b.setRotation(g(t)),m&&b.setRotateWithView(m(t)),p&&b.setScale(p(t)),b}}(t,e):"circle-radius"in t?function(t,e){const n="circle-",r=V1(t,n,e),i=W1(t,n,e),s=G1(t,"circle-radius",e),o=t2(t,"circle-scale",e),a=J1(t,"circle-displacement",e),l=G1(t,"circle-rotation",e),c=K1(t,"circle-rotate-with-view",e),u=s2(t,"circle-declutter-mode"),h=new P1({radius:5,declutterMode:u});return function(t){return s&&h.setRadius(s(t)),r&&h.setFill(r(t)),i&&h.setStroke(i(t)),a&&h.setDisplacement(a(t)),l&&h.setRotation(l(t)),c&&h.setRotateWithView(c(t)),o&&h.setScale(o(t)),h}}(t,e):null}(t,e),o=G1(t,"z-index",e);if(!(n||r||i||s||$H(t)))throw new Error("No fill, stroke, point, or text symbolizer properties in style: "+JSON.stringify(t));const a=new F1;return function(t){let e=!0;if(n){const r=n(t);r&&(e=!1),a.setFill(r)}if(r){const n=r(t);n&&(e=!1),a.setStroke(n)}if(i){const n=i(t);n&&(e=!1),a.setText(n)}if(s){const n=s(t);n&&(e=!1),a.setImage(n)}return o&&a.setZIndex(o(t)),e?null:a}}function V1(t,e,n){let r;if(e+"fill-pattern-src"in t)r=function(t,e,n){const r=Z1(t,e+"pattern-src",n),i=Q1(t,e+"pattern-offset",n),s=Q1(t,e+"pattern-size",n),o=Y1(t,e+"color",n);return function(t){return{src:r(t),offset:i&&i(t),size:s&&s(t),color:o&&o(t)}}}(t,e+"fill-",n);else{if("none"===t[e+"fill-color"])return()=>null;r=Y1(t,e+"fill-color",n)}if(!r)return null;const i=new M1;return function(t){const e=r(t);return e===hQ?null:(i.setColor(e),i)}}function W1(t,e,n){const r=G1(t,e+"stroke-width",n),i=Y1(t,e+"stroke-color",n);if(!r&&!i)return null;const s=Z1(t,e+"stroke-line-cap",n),o=Z1(t,e+"stroke-line-join",n),a=X1(t,e+"stroke-line-dash",n),l=G1(t,e+"stroke-line-dash-offset",n),c=G1(t,e+"stroke-miter-limit",n),u=G1(t,e+"stroke-offset",n),h=new N1;return function(t){if(i){const e=i(t);if(e===hQ)return null;h.setColor(e)}if(r&&h.setWidth(r(t)),s){const e=s(t);if("butt"!==e&&"round"!==e&&"square"!==e)throw new Error("Expected butt, round, or square line cap");h.setLineCap(e)}if(o){const e=o(t);if("bevel"!==e&&"round"!==e&&"miter"!==e)throw new Error("Expected bevel, round, or miter line join");h.setLineJoin(e)}return a&&h.setLineDash(a(t)),l&&h.setLineDashOffset(l(t)),c&&h.setMiterLimit(c(t)),u&&h.setOffset(u(t)),h}}function H1(t,e){if(!(e in t))return;const n=t[e];return void 0===n?void 0:n}function G1(t,e,n){const r=H1(t,e);if(void 0===r)return;const i=t1(r,OQ,n);return function(t){return l2(i(t),e)}}function Z1(t,e,n){const r=H1(t,e);if(void 0===r)return null;const i=t1(r,NQ,n);return function(t){return a2(i(t),e)}}function K1(t,e,n){const r=H1(t,e);if(void 0===r)return null;const i=t1(r,AQ,n);return function(t){const n=i(t);if("boolean"!=typeof n)throw new Error(`Expected a boolean for ${e}`);return n}}function Y1(t,e,n){const r=H1(t,e);if(void 0===r)return null;const i=t1(r,FQ,n);return function(t){return c2(i(t),e)}}function X1(t,e,n){const r=H1(t,e);if(void 0===r)return null;if(Array.isArray(r)&&(0===r.length||"string"!=typeof r[0])){const t=r.map((t,r)=>{if("number"==typeof t)return()=>t;const i=t1(t,OQ,n);return function(t){return l2(i(t),`${e}[${r}]`)}});return function(e){const n=new Array(t.length);for(let r=0;r4)throw new Error(`Expected a color with 3 or 4 values for ${e}`);return n}function u2(t,e){const n=o2(t,e);if(2!==n.length)throw new Error(`Expected an array of two numbers for ${e}`);return n}var h2="renderOrder",d2=class extends VJ{constructor(t){t=t||{};const e=Object.assign({},t);delete e.style,delete e.renderBuffer,delete e.updateWhileAnimating,delete e.updateWhileInteracting,super(e),this.declutter_=t.declutter?String(t.declutter):void 0,this.renderBuffer_=void 0!==t.renderBuffer?t.renderBuffer:100,this.style_=null,this.styleFunction_=void 0,this.setStyle(t.style),this.updateWhileAnimating_=void 0!==t.updateWhileAnimating&&t.updateWhileAnimating,this.updateWhileInteracting_=void 0!==t.updateWhileInteracting&&t.updateWhileInteracting}getDeclutter(){return this.declutter_}getFeatures(t){return super.getFeatures(t)}getRenderBuffer(){return this.renderBuffer_}getRenderOrder(){return this.get(h2)}getStyle(){return this.style_}getStyleFunction(){return this.styleFunction_}getUpdateWhileAnimating(){return this.updateWhileAnimating_}getUpdateWhileInteracting(){return this.updateWhileInteracting_}renderDeclutter(t,e){const n=this.getDeclutter();n in t.declutter==0&&(t.declutter[n]=new KJ(9)),this.getRenderer().renderDeclutter(t,e)}setRenderOrder(t){this.set(h2,t)}setStyle(t){this.style_=void 0===t?D1:t;const e=function(t){if(void 0===t)return D1;if(!t)return null;if("function"==typeof t)return t;if(t instanceof F1)return t;if(Array.isArray(t)&&0===t.length)return[];if(Array.isArray(t)&&t[0]instanceof F1){const e=t.length,n=new Array(e);for(let r=0;r=0;--r){const i=f[r],s=i.layer;if(s.hasRenderer()&&WJ(i,c)&&o.call(a,s)){const r=s.getRenderer(),o=s.getSource();if(r&&o){const s=o.getWrapX()?d:t,a=u.bind(null,i.managed);y[0]=s[0]+p[b][0],y[1]=s[1]+p[b][1],l=r.forEachFeatureAtCoordinate(y,e,n,a,m)}if(l)return l}}if(0===m.length)return;const v=1/m.length;return m.forEach((t,e)=>t.distanceSq+=e*v),m.sort((t,e)=>t.distanceSq-e.distanceSq),m.some(t=>l=t.callback(t.feature,t.layer,t.geometry)),l}hasFeatureAtCoordinate(t,e,n,r,i,s){return void 0!==this.forEachFeatureAtCoordinate(t,e,n,r,oG,this,i,s)}getMap(){return this.map_}renderFrame(t){fG()}scheduleExpireIconCache(t){o1.canExpireCache()&&t.postRenderFunctions.push(g2)}};function g2(){o1.expire()}var m2=class extends f2{constructor(t){super(t),this.fontChangeListenerKey_=qH(b1,UH,t.redrawText,t),this.element_=LG?jX():document.createElement("div");const e=this.element_.style;e.position="absolute",e.width="100%",e.height="100%",e.zIndex="0",this.element_.className=kX+" ol-layers";const n=t.getViewport();n&&n.insertBefore(this.element_,n.firstChild||null),this.children_=[],this.renderedVisible_=!0}dispatchRenderEvent(t,e){const n=this.getMap();if(n.hasListener(t)){const r=new p2(t,void 0,e);n.dispatchEvent(r)}}disposeInternal(){WH(this.fontChangeListenerKey_),this.element_.remove(),super.disposeInternal()}renderFrame(t){if(!t)return void(this.renderedVisible_&&(this.element_.style.display="none",this.renderedVisible_=!1));this.calculateMatrices2D(t),this.dispatchRenderEvent($J,t);const e=t.layerStatesArray.sort((t,e)=>t.zIndex-e.zIndex);e.some(t=>t.layer instanceof d2&&t.layer.getDeclutter())&&(t.declutter={});const n=t.viewState;this.children_.length=0;const r=this.getMap().getTargetElement();let i;UX(r)&&(i=r.getContext("2d"),i.setTransform(1,0,0,1,0,0),i.clearRect(0,0,r.width,r.height));const s=[];let o=i?r:null;for(let a=0,l=e.length;a0)&&(i.fillStyle=e,i.fillRect(0,0,i.canvas.width,i.canvas.height)),!UX(t)||0===t.width)continue;i.save();const n=a.style.opacity||t.style.opacity;i.globalAlpha=""===n?1:Number(n);const r=t.style.transform;if(r)i.transform(..._Y(r));else{const e=parseFloat(t.style.width)/t.width,n=parseFloat(t.style.height)/t.height;i.transform(e,0,0,n,0,0)}i.drawImage(t,0,0),i.restore()}this.dispatchRenderEvent("postcompose",t),this.renderedVisible_||(this.element_.style.display="",this.renderedVisible_=!0),this.scheduleExpireIconCache(t)}declutter(t,e){if(t.declutter){for(let n=e.length-1;n>=0;--n){const r=e[n],i=r.layer;i.getDeclutter()&&i.renderDeclutter(t,r)}e.forEach(e=>e.layer.renderDeferred(t))}}};function y2(t){t instanceof VJ?t.setMapInternal(null):t instanceof jJ&&t.getLayers().forEach(y2)}function v2(t,e){if(t instanceof VJ)t.setMapInternal(e);else if(t instanceof jJ){const n=t.getLayers().getArray();for(let t=0,r=n.length;tthis.updateSize())),this.controls=e.controls||(LG?new _G:WX()),this.interactions=e.interactions||(LG?new _G:SJ({onFocusOnly:!0})),this.overlays_=e.overlays,this.overlayIdIndex_={},this.renderer_=null,this.postRenderFunctions_=[],this.tileQueue_=new WG(this.getTilePriority.bind(this),this.handleTileChange_.bind(this)),this.addChangeListener(DG,this.handleLayerGroupChanged_),this.addChangeListener(BG,this.handleViewChanged_),this.addChangeListener(jG,this.handleSizeChanged_),this.addChangeListener(UG,this.handleTargetChanged_),this.setProperties(e.values);const n=this;!t.view||t.view instanceof bX||t.view.then(function(t){n.setView(new bX(t))}),this.controls.addEventListener(DH,t=>{t.element.setMap(this)}),this.controls.addEventListener(jH,t=>{t.element.setMap(null)}),this.interactions.addEventListener(DH,t=>{t.element.setMap(this)}),this.interactions.addEventListener(jH,t=>{t.element.setMap(null)}),this.overlays_.addEventListener(DH,t=>{this.addOverlayInternal_(t.element)}),this.overlays_.addEventListener(jH,t=>{const e=t.element.getId();void 0!==e&&delete this.overlayIdIndex_[e.toString()],t.element.setMap(null)}),this.controls.forEach(t=>{t.setMap(this)}),this.interactions.forEach(t=>{t.setMap(this)}),this.overlays_.forEach(this.addOverlayInternal_.bind(this))}addControl(t){this.getControls().push(t)}addInteraction(t){this.getInteractions().push(t)}addLayer(t){this.getLayerGroup().getLayers().push(t)}handleLayerAdd_(t){v2(t.layer,this)}addOverlay(t){this.getOverlays().push(t)}addOverlayInternal_(t){const e=t.getId();void 0!==e&&(this.overlayIdIndex_[e.toString()]=t),t.setMap(this)}disposeInternal(){this.controls.clear(),this.interactions.clear(),this.overlays_.clear(),this.resizeObserver_?.disconnect(),this.setTarget(null),super.disposeInternal()}forEachFeatureAtPixel(t,e,n){if(!this.frameState_||!this.renderer_)return;const r=this.getCoordinateFromPixelInternal(t),i=void 0!==(n=void 0!==n?n:{}).hitTolerance?n.hitTolerance:0,s=void 0!==n.layerFilter?n.layerFilter:oG,o=!1!==n.checkWrapped;return this.renderer_.forEachFeatureAtCoordinate(r,this.frameState_,i,o,e,null,s,null)}getFeaturesAtPixel(t,e){const n=[];return this.forEachFeatureAtPixel(t,function(t){n.push(t)},e),n}getAllLayers(){const t=[];return function e(n){n.forEach(function(n){n instanceof jJ?e(n.getLayers()):t.push(n)})}(this.getLayers()),t}hasFeatureAtPixel(t,e){if(!this.frameState_||!this.renderer_)return!1;const n=this.getCoordinateFromPixelInternal(t),r=void 0!==(e=void 0!==e?e:{}).layerFilter?e.layerFilter:oG,i=void 0!==e.hitTolerance?e.hitTolerance:0,s=!1!==e.checkWrapped;return this.renderer_.hasFeatureAtCoordinate(n,this.frameState_,i,s,r,null)}getEventCoordinate(t){return this.getCoordinateFromPixel(this.getEventPixel(t))}getEventCoordinateInternal(t){return this.getCoordinateFromPixelInternal(this.getEventPixel(t))}getEventPixel(t){const e=this.viewport_.getBoundingClientRect(),n=this.getSize(),r=e.width/n[0],i=e.height/n[1],s="changedTouches"in t?t.changedTouches[0]:t;return[(s.clientX-e.left)/r,(s.clientY-e.top)/i]}getTarget(){return this.get(UG)}getTargetElement(){return this.targetElement_}getCoordinateFromPixel(t){return aY(this.getCoordinateFromPixelInternal(t),this.getView().getProjection())}getCoordinateFromPixelInternal(t){const e=this.frameState_;return e?mY(e.pixelToCoordinateTransform,t.slice()):null}getControls(){return this.controls}getOverlays(){return this.overlays_}getOverlayById(t){const e=this.overlayIdIndex_[t.toString()];return void 0!==e?e:null}getInteractions(){return this.interactions}getLayerGroup(){return this.get(DG)}setLayers(t){const e=this.getLayerGroup();if(t instanceof _G)return void e.setLayers(t);const n=e.getLayers();n.clear(),n.extend(t)}getLayers(){return this.getLayerGroup().getLayers()}getLoadingOrNotReady(){const t=this.getLayerGroup().getLayerStatesArray();for(let e=0,n=t.length;e=0;n--){const r=e[n];if(r.getMap()===this&&r.getActive()&&this.getTargetElement()&&(!r.handleEvent(t)||t.propagationStopped))break}}}handlePostRender(){const t=this.frameState_,e=this.tileQueue_;if(!e.isEmpty()){let n=this.maxTilesLoading_,r=n;const i=t?t.viewHints:void 0,s=!!i&&(i[0]||i[1]);if(s){const e=Date.now()-t.time>8;n=e?0:8,r=e?0:2}e.getTilesLoading(){this.postRenderTimeoutHandle_=void 0,this.handlePostRender()},0))}setLayerGroup(t){const e=this.getLayerGroup();e&&this.handleLayerRemove_(new zJ("removelayer",e)),this.set(DG,t)}setSize(t){this.set(jG,t)}setTarget(t){this.set(UG,t)}setView(t){if(!t||t instanceof bX)return void this.set(BG,t);this.set(BG,new bX);const e=this;t.then(function(t){e.setView(new bX(t))})}updateSize(){const t=this.getTargetElement();let e;if(t){let n,r;if(UX(t)){const e=t.getContext("2d").getTransform();n=t.width/e.a,r=t.height/e.d}else{const e=getComputedStyle(t);n=t.offsetWidth-parseFloat(e.borderLeftWidth)-parseFloat(e.paddingLeft)-parseFloat(e.paddingRight)-parseFloat(e.borderRightWidth),r=t.offsetHeight-parseFloat(e.borderTopWidth)-parseFloat(e.paddingTop)-parseFloat(e.paddingBottom)-parseFloat(e.borderBottomWidth)}isNaN(n)||isNaN(r)||(e=[Math.max(0,n),Math.max(0,r)],!IQ(e)&&(t.offsetWidth||t.offsetHeight||t.getClientRects().length)&&JZ("No map visible because the map container's width or height are 0."))}const n=this.getSize();!e||n&&sG(e,n)||(this.updateViewportSize_(e),this.setSize(e))}updateViewportSize_(t){const e=this.getView();e&&e.setViewportSize(t)}},w2="element",_2="map",x2="offset",C2="position",S2="positioning",k2=class extends vG{constructor(t){super(),this.on,this.once,this.un,this.options=t,this.id=t.id,this.insertFirst=void 0===t.insertFirst||t.insertFirst,this.stopEvent=void 0===t.stopEvent||t.stopEvent,this.element=document.createElement("div"),this.element.className=void 0!==t.className?t.className:"ol-overlay-container ol-selectable",this.element.style.position="absolute",this.element.style.pointerEvents="auto",this.autoPan=!0===t.autoPan?{}:t.autoPan||void 0,this.rendered={transform_:"",visible:!0},this.mapPostrenderListenerKey=null,this.addChangeListener(w2,this.handleElementChanged),this.addChangeListener(_2,this.handleMapChanged),this.addChangeListener(x2,this.handleOffsetChanged),this.addChangeListener(C2,this.handlePositionChanged),this.addChangeListener(S2,this.handlePositioningChanged),void 0!==t.element&&this.setElement(t.element),this.setOffset(void 0!==t.offset?t.offset:[0,0]),this.setPositioning(t.positioning||"top-left"),void 0!==t.position&&this.setPosition(t.position)}getElement(){return this.get(w2)}getId(){return this.id}getMap(){return this.get(_2)||null}getOffset(){return this.get(x2)}getPosition(){return this.get(C2)}getPositioning(){return this.get(S2)}handleElementChanged(){DX(this.element);const t=this.getElement();t&&this.element.appendChild(t)}handleMapChanged(){this.mapPostrenderListenerKey&&(this.element?.remove(),WH(this.mapPostrenderListenerKey),this.mapPostrenderListenerKey=null);const t=this.getMap();if(t){this.mapPostrenderListenerKey=qH(t,NG,this.render,this),this.updatePixelPosition();const e=this.stopEvent?t.getOverlayContainerStopEvent():t.getOverlayContainer();this.insertFirst?e.insertBefore(this.element,e.childNodes[0]||null):e.appendChild(this.element),this.performAutoPan()}}render(){this.updatePixelPosition()}handleOffsetChanged(){this.updatePixelPosition()}handlePositionChanged(){this.updatePixelPosition(),this.performAutoPan()}handlePositioningChanged(){this.updatePixelPosition()}setElement(t){this.set(w2,t)}setMap(t){this.set(_2,t)}setOffset(t){this.set(x2,t)}setPosition(t){this.set(C2,t)}performAutoPan(){this.autoPan&&this.panIntoView(this.autoPan)}panIntoView(t){const e=this.getMap();if(!e||!e.getTargetElement()||!this.get(C2))return;const n=this.getRect(e.getTargetElement(),e.getSize()),r=this.getElement(),i=this.getRect(r,[NX(r),FX(r)]),s=void 0===(t=t||{}).margin?20:t.margin;if(!hZ(n,i)){const r=i[0]-n[0],o=n[2]-i[2],a=i[1]-n[1],l=n[3]-i[3],c=[0,0];if(r<0?c[0]=r-s:o<0&&(c[0]=Math.abs(o)+s),a<0?c[1]=a-s:l<0&&(c[1]=Math.abs(l)+s),0!==c[0]||0!==c[1]){const n=e.getView().getCenterInternal(),r=e.getPixelFromCoordinateInternal(n);if(!r)return;const i=[r[0]+c[0],r[1]+c[1]],s=t.animation||{};e.getView().animateInternal({center:e.getCoordinateFromPixelInternal(i),duration:s.duration,easing:s.easing})}}}getRect(t,e){const n=t.getBoundingClientRect(),r=n.left+window.pageXOffset,i=n.top+window.pageYOffset;return[r,i,r+e[0],i+e[1]]}setPositioning(t){this.set(S2,t)}setVisible(t){this.rendered.visible!==t&&(this.element.style.display=t?"":"none",this.rendered.visible=t)}updatePixelPosition(){const t=this.getMap(),e=this.getPosition();if(!t||!t.isRendered()||!e)return void this.setVisible(!1);const n=t.getPixelFromCoordinate(e),r=t.getSize();this.updateRenderedPosition(n,r)}updateRenderedPosition(t,e){const n=this.element.style,r=this.getOffset(),i=this.getPositioning();this.setVisible(!0);let s="0%",o="0%";"bottom-right"==i||"center-right"==i||"top-right"==i?s="-100%":"bottom-center"!=i&&"center-center"!=i&&"top-center"!=i||(s="-50%"),"bottom-left"==i||"bottom-center"==i||"bottom-right"==i?o="-100%":"center-left"!=i&&"center-center"!=i&&"center-right"!=i||(o="-50%");const a=`translate(${s}, ${o}) translate(${t[0]+r[0]}px, ${t[1]+r[1]}px)`;this.rendered.transform_!=a&&(this.rendered.transform_=a,n.transform=a)}getOptions(){return this.options}},E2=class t extends vG{constructor(t){if(super(),this.on,this.once,this.un,this.id_=void 0,this.geometryName_="geometry",this.style_=null,this.styleFunction_=void 0,this.geometryChangeKey_=null,this.addChangeListener(this.geometryName_,this.handleGeometryChanged_),t)if("function"==typeof t.getSimplifiedGeometry){const e=t;this.setGeometry(e)}else{const e=t;this.setProperties(e)}}clone(){const e=new t,n=this.geometryName_;e.setGeometryName(n);const r=this.getPropertiesInternal();if(r){const t=this.getGeometry();for(const i in r)i===n&&t?e.set(i,t.clone()):e.set(i,r[i],!0)}const i=this.getStyle();return i&&e.setStyle(i),e}getGeometry(){return this.get(this.geometryName_)}getId(){return this.id_}getGeometryName(){return this.geometryName_}getStyle(){return this.style_}getStyleFunction(){return this.styleFunction_}handleGeometryChange_(){this.changed()}handleGeometryChanged_(){this.geometryChangeKey_&&(WH(this.geometryChangeKey_),this.geometryChangeKey_=null);const t=this.getGeometry();t&&(this.geometryChangeKey_=qH(t,HH,this.handleGeometryChange_,this)),this.changed()}setGeometry(t){this.set(this.geometryName_,t)}setStyle(t){this.style_=t,this.styleFunction_=t?function(t){if("function"==typeof t)return t;let e;return Array.isArray(t)?e=t:($G("function"==typeof t.getZIndex,"Expected an `ol/style/Style` or an array of `ol/style/Style.js`"),e=[t]),function(){return e}}(t):void 0,this.changed()}setId(t){this.id_=t,this.changed()}setGeometryName(t){t!==this.geometryName_&&(this.removeChangeListener(this.geometryName_,this.handleGeometryChanged_),this.geometryName_=t,this.addChangeListener(this.geometryName_,this.handleGeometryChanged_),this.handleGeometryChanged_())}};function R2(t,e,n,r,i,s,o){let a,l;const c=(n-e)/r;if(1===c)a=e;else if(2===c)a=e,l=i;else if(0!==c){let s=t[e],o=t[e+1],c=0;const u=[0];for(let i=e+r;i>1),i=+n(t[r],e),i<0?s=r+1:(o=r,a=!i);return a?s:~s}(u,h);d<0?(l=(h-u[-d-2])/(u[-d-1]-u[-d-2]),a=e+(-d-2)*r):a=e+d*r}o=o>1?o:2,s=s||new Array(o);for(let u=0;u>1;ia&&(this.instructions.push([4,a,c,t,n,UY,i]),this.hitDetectionInstructions.push([4,a,c,t,r||n,UY,i]));break;case"Point":l=t.getFlatCoordinates(),this.coordinates.push(l[0],l[1]),c=this.coordinates.length,this.instructions.push([4,a,c,t,n,void 0,i]),this.hitDetectionInstructions.push([4,a,c,t,r||n,void 0,i])}this.endGeometry(e)}beginGeometry(t,e,n){this.beginGeometryInstruction1_=[0,e,0,t,n],this.instructions.push(this.beginGeometryInstruction1_),this.beginGeometryInstruction2_=[0,e,0,t,n],this.hitDetectionInstructions.push(this.beginGeometryInstruction2_)}finish(){return{instructions:this.instructions,hitDetectionInstructions:this.hitDetectionInstructions,coordinates:this.coordinates}}reverseHitDetectionInstructions(){const t=this.hitDetectionInstructions;let e;t.reverse();const n=t.length;let r,i,s=-1;for(e=0;ethis.maxLineWidth&&(this.maxLineWidth=e.lineWidth,this.bufferedMaxExtent_=null)}else e.strokeStyle=void 0,e.lineCap=void 0,e.lineDash=null,e.lineDashOffset=void 0,e.lineJoin=void 0,e.lineWidth=void 0,e.miterLimit=void 0,e.strokeOffset=void 0;return e}setFillStrokeStyle(t,e){const n=this.state;this.fillStyleToState(t,n),this.strokeStyleToState(e,n)}createFill(t){const e=t.fillStyle,n=[10,e];return"string"!=typeof e&&n.push(t.fillPatternScale),n}applyStroke(t){this.instructions.push(this.createStroke(t))}createStroke(t){return[F2,t.strokeStyle,t.lineWidth*this.pixelRatio,t.lineCap,t.lineJoin,t.miterLimit,t.lineDash?this.applyPixelRatio(t.lineDash):null,t.lineDashOffset*this.pixelRatio]}updateFillStyle(t,e){const n=t.fillStyle;(void 0!==n&&"string"!=typeof n||t.currentFillStyle!=n)&&(this.instructions.push(e.call(this,t)),t.currentFillStyle=n)}updateStrokeStyle(t,e){const n=t.strokeStyle,r=t.lineCap,i=t.lineDash,s=t.lineDashOffset,o=t.lineJoin,a=t.lineWidth,l=t.miterLimit,c=t.strokeOffset;(t.currentStrokeStyle!=n||t.currentLineCap!=r||i!=t.currentLineDash&&!sG(t.currentLineDash,i)||t.currentLineDashOffset!=s||t.currentLineJoin!=o||t.currentLineWidth!=a||t.currentMiterLimit!=l||t.currentStrokeOffset!=c)&&(e.call(this,t),t.currentStrokeStyle=n,t.currentLineCap=r,t.currentLineDash=i,t.currentLineDashOffset=s,t.currentLineJoin=o,t.currentLineWidth=a,t.currentMiterLimit=l,t.currentStrokeOffset=c)}endGeometry(t){this.beginGeometryInstruction1_[2]=this.instructions.length,this.beginGeometryInstruction1_=null,this.beginGeometryInstruction2_[2]=this.hitDetectionInstructions.length,this.beginGeometryInstruction2_=null;const e=[7,t];this.instructions.push(e),this.hitDetectionInstructions.push(e)}getBufferedMaxExtent(){if(!this.bufferedMaxExtent_&&(this.bufferedMaxExtent_=lZ(this.maxExtent),this.maxLineWidth>0)){const t=this.resolution*(this.maxLineWidth+1)/2;aZ(this.bufferedMaxExtent_,t,this.bufferedMaxExtent_)}return this.bufferedMaxExtent_}},$2=class extends B2{constructor(t,e,n,r){super(t,e,n,r)}drawFlatCoordinatess_(t,e,n,r,i){const s=this.state,o=void 0!==s.fillStyle,a=void 0!==s.strokeStyle,l=n.length;this.instructions.push(j2),this.hitDetectionInstructions.push(j2);for(let c=0;cthis.drawCircle(t,e,n)))return;this.setFillStrokeStyles_(),this.beginGeometry(t,e,n),void 0!==r.fillStyle&&this.hitDetectionInstructions.push([10,d1]),void 0!==r.strokeStyle&&this.hitDetectionInstructions.push([F2,m1,r.lineWidth,r.lineCap,r.lineJoin,r.miterLimit,f1,0]);const a=t.getFlatCoordinates(),l=t.getStride(),c=this.coordinates.length;this.appendFlatLineCoordinates(a,0,a.length,l,!1,!1);const u=[2,c,o];this.instructions.push(j2,u),this.hitDetectionInstructions.push(j2,u),void 0!==r.fillStyle&&(this.instructions.push(z2),this.hitDetectionInstructions.push(z2)),void 0!==r.strokeStyle&&(this.instructions.push(D2),this.hitDetectionInstructions.push(D2)),this.endGeometry(e)}drawPolygon(t,e,n){const r=this.state,i=r.fillStyle,s=r.strokeStyle,o=r.strokeOffset;if(void 0===i&&void 0===s)return;if(this.handleStrokeOffset_(()=>this.drawPolygon(t,e,n)))return;this.setFillStrokeStyles_(),this.beginGeometry(t,e,n),void 0!==r.fillStyle&&this.hitDetectionInstructions.push([10,d1]),void 0!==r.strokeStyle&&this.hitDetectionInstructions.push([F2,m1,r.lineWidth,r.lineCap,r.lineJoin,r.miterLimit,f1,0]);const a=t.getEnds(),l=t.getOrientedFlatCoordinates(),c=t.getStride();this.drawFlatCoordinatess_(l,0,a,c,o),this.endGeometry(e)}drawMultiPolygon(t,e,n){const r=this.state,i=r.fillStyle,s=r.strokeStyle,o=r.strokeOffset;if(void 0===i&&void 0===s)return;if(this.handleStrokeOffset_(()=>this.drawMultiPolygon(t,e,n)))return;this.setFillStrokeStyles_(),this.beginGeometry(t,e,n),void 0!==r.fillStyle&&this.hitDetectionInstructions.push([10,d1]),void 0!==r.strokeStyle&&this.hitDetectionInstructions.push([F2,m1,r.lineWidth,r.lineCap,r.lineJoin,r.miterLimit,f1,0]);const a=t.getEndss(),l=t.getOrientedFlatCoordinates(),c=t.getStride();let u=0;for(let h=0,d=a.length;h0&&void 0!==n&&void 0!==r&&(e.strokeStyle=void 0,e.strokeOffset=0,t(),e.fillStyle=void 0,e.strokeStyle=r,e.strokeOffset=i,t(),e.fillStyle=n,!0)}},q2=0,V2=1;function W2(t,e,n,r,i,s,o,a){const l=o-i,c=a-s;let u=0,h=1;if(0===l){if(in)return!1}else{let e=(t-i)/l,r=(n-i)/l;if(e>r){const t=e;e=r,r=t}if(e>u&&(u=e),rh)return!1}if(0===c){if(sr)return!1}else{let t=(e-s)/c,n=(r-s)/c;if(t>n){const e=t;t=n,n=e}if(t>u&&(u=t),nh)return!1}return q2=u,V2=h,!0}function H2(t,e,n,r,i){const s=[];let o=n,a=0,l=e.slice(n,2);for(;a=t){const e=(t-a+h)/h,d=QG(n,c,e),p=QG(r,u,e);l.push(d,p),s.push(l),l=[d,p],a==t&&(o+=i),a=0}else if(a0&&s.push(l),s}function G2(t,e,n,r,i){let s,o,a,l,c,u,h,d,p,f,g=n,m=n,y=0,v=0,b=n;for(o=n;ot&&(v>y&&(y=v,g=b,m=o),v=0,b=o-i)),a=l,h=p,d=f),c=n,u=r}return v+=l,v>y?[b,o]:[g,m]}var Z2,K2={left:0,center:.5,right:1,top:0,middle:.5,hanging:.2,alphabetic:.8,ideographic:.8,bottom:1},Y2={Circle:$2,Default:B2,Image:class extends B2{constructor(t,e,n,r){super(t,e,n,r),this.hitDetectionImage_=null,this.image_=null,this.imagePixelRatio_=void 0,this.anchorX_=void 0,this.anchorY_=void 0,this.height_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.scale_=void 0,this.width_=void 0,this.declutterMode_=void 0,this.declutterImageWithText_=void 0}drawPoint(t,e,n){if(!this.image_||this.maxExtent&&!uZ(this.maxExtent,t.getFlatCoordinates()))return;this.beginGeometry(t,e,n);const r=t.getFlatCoordinates(),i=t.getStride(),s=this.coordinates.length,o=this.appendFlatPointCoordinates(r,i);this.instructions.push([6,s,o,this.image_,this.anchorX_*this.imagePixelRatio_,this.anchorY_*this.imagePixelRatio_,Math.ceil(this.height_*this.imagePixelRatio_),this.opacity_,this.originX_*this.imagePixelRatio_,this.originY_*this.imagePixelRatio_,this.rotateWithView_,this.rotation_,[this.scale_[0]*this.pixelRatio/this.imagePixelRatio_,this.scale_[1]*this.pixelRatio/this.imagePixelRatio_],Math.ceil(this.width_*this.imagePixelRatio_),this.declutterMode_,this.declutterImageWithText_]),this.hitDetectionInstructions.push([6,s,o,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.height_,1,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_,this.declutterMode_,this.declutterImageWithText_]),this.endGeometry(e)}drawMultiPoint(t,e,n){if(!this.image_)return;this.beginGeometry(t,e,n);const r=t.getFlatCoordinates(),i=[];for(let a=0,l=r.length;a{const r=o[2*(t+n)]===c[n*u]&&o[2*(t+n)+1]===c[n*u+1];return r||--t,r})}this.saveTextStates_();const h=s.backgroundFill?this.createFill(this.fillStyleToState(s.backgroundFill)):null,d=s.backgroundStroke?this.createStroke(this.strokeStyleToState(s.backgroundStroke)):null;this.beginGeometry(t,e,n);let p=s.padding;if(p!=v1&&(s.scale[0]<0||s.scale[1]<0)){let t=s.padding[0],e=s.padding[1],n=s.padding[2],r=s.padding[3];s.scale[0]<0&&(e=-e,r=-r),s.scale[1]<0&&(t=-t,n=-n),p=[t,e,n,r]}const f=this.pixelRatio;this.instructions.push([6,a,i,null,NaN,NaN,NaN,1,0,0,this.textRotateWithView_,this.textRotation_,[1,1],NaN,this.declutterMode_,this.declutterImageWithText_,p==v1?v1:p.map(function(t){return t*f}),h,d,this.text_,this.textKey_,this.strokeKey_,this.fillKey_,this.textOffsetX_,this.textOffsetY_,r]);const g=1/f,m=h?h.slice(0):null;m&&(m[1]=d1),this.hitDetectionInstructions.push([6,a,i,null,NaN,NaN,NaN,1,0,0,this.textRotateWithView_,this.textRotation_,[g,g],NaN,this.declutterMode_,this.declutterImageWithText_,p,m,d,this.text_,this.textKey_,this.strokeKey_,this.fillKey_?d1:this.fillKey_,this.textOffsetX_,this.textOffsetY_,r]),this.endGeometry(e)}else{const r=t.getExtent();if(!zZ(this.maxExtent,r))return;let i;if(c=t.getFlatCoordinates(),"LineString"==l)i=[c.length];else if("MultiLineString"==l)i=t.getEnds();else if("Polygon"==l)i=t.getEnds().slice(0,1);else if("MultiPolygon"==l){const e=t.getEndss();i=[];for(let t=0,n=e.length;t0?l:2*Math.PI-l}([t,e],[n,r],[i,s]);if(Math.cos(d)>.998)return[t+u*o,e+h*o];const p=Math.cos(d/2),f=Math.sin(d/2);return[t+1/f*(f*a+p*l)*o,e+1/f*(-p*a+f*l)*o]}function t3(t,e,n=!1){for(let r=0,i=t.length-2;rr+e;s-=e){const n=t[r],i=t[r+1],o=t[r+e],a=t[r+e+1],l=t[s],c=t[s+1],u=t[s+e],h=t[s+e+1],d=(h-c)*(o-n)-(u-l)*(a-i);if(0===d)continue;const p=((u-l)*(i-c)-(h-c)*(n-l))/d,f=((o-n)*(i-c)-(a-i)*(n-l))/d;if(p>0&&p<1&&f>0&&f<1){const l=n+p*(o-n),c=i+p*(a-i);t[r+e]=l,t[r+e+1]=c,t.splice(r+2*e,s-r-e);break}}return t}function e3(t,e,n,r,i,s,o,a,l,c,u,h,d=!0){let p=t[e],f=t[e+1],g=0,m=0,y=0,v=0;function b(){g=p,m=f,p=t[e+=r],f=t[e+1],v+=y,y=Math.sqrt((p-g)*(p-g)+(f-m)*(f-m))}do{b()}while(et[2]}else T=_>E;const L=Math.PI,I=[],P=C+r===e;let M;if(y=0,v=S,p=t[e=C],f=t[e+1],P)return b(),M=Math.atan2(f-m,p-g),T&&(M+=M>0?-L:L),I[0]=[(E+_)/2,(R+x)/2,(k-s)/2,M,i],I;i=i.replace(/\n/g," ");const A=Array.from((Z2||(Z2=new Intl.Segmenter(void 0,{granularity:"grapheme"})),Z2).segment(i),t=>t.segment);for(let O=0,N=A.length;O0?-L:L),void 0!==M){let e=t-M;if(e+=e>L?-2*L:e<-L?2*L:0,Math.abs(e)>o)return null}M=t;const i=O;let h=0;for(;O{if("function"==typeof t[e])return this.pendingMethod_=e,this.pushMethodArgs_},set:(t,e,n)=>(this.push_(e,n),!0)})}push_(...t){const e=this.instructions_,n=this.zIndex+this.offset_;e[n]||(e[n]=[]),e[n].push(...t)}pushMethodArgs_=(...t)=>{this.push_(this.pendingMethod_,t)};pushFunction(t){this.push_(t)}getContext(){return this.context_}draw(t){this.instructions_.forEach(e=>{for(let n=0,r=e.length;n0&&t.push("\n",""),t.push(e,""),t}function d3(t,e,n){return n%2==0&&(t+=e),t}var p3=class{constructor(t,e,n,r,i){this.overlaps=n,this.pixelRatio=e,this.resolution=t,this.alignAndScaleFill_,this.instructions=r.instructions,this.coordinates=r.coordinates,this.coordinateCache_={},this.renderedTransform_=dY(),this.hitDetectionInstructions=r.hitDetectionInstructions,this.pixelCoordinates_=null,this.viewRotation_=0,this.fillStates=r.fillStates||{},this.strokeStates=r.strokeStates||{},this.textStates=r.textStates||{},this.widths_={},this.labels_={},this.zIndexContext_=i?new n3:null}getZIndexContext(){return this.zIndexContext_}createLabel(t,e,n,r){const i=t+e+n+r;if(this.labels_[i])return this.labels_[i];const s=r?this.strokeStates[r]:null,o=n?this.fillStates[n]:null,a=this.textStates[e],l=this.pixelRatio,c=[a.scale[0]*l,a.scale[1]*l],u=a.justify?K2[a.justify]:u3(Array.isArray(t)?t[0]:t,a.textAlign||"center"),h=r&&s.lineWidth?s.lineWidth:0,d=Array.isArray(t)?t:String(t).split("\n").reduce(h3,[]),{width:p,height:f,widths:g,heights:m,lineWidths:y}=function(t,e){const n=[],r=[],i=[];let s=0,o=0,a=0,l=0;for(let c=0,u=e.length;c<=u;c+=2){const h=e[c];if("\n"===h||c===u){s=Math.max(s,o),i.push(o),o=0,a+=l,l=0;continue}const d=e[c+1]||t.font,p=R1(d,h);n.push(p),o+=p;const f=k1(d);r.push(f),l=Math.max(l,f)}return{width:s,height:a,widths:n,heights:r,lineWidths:i}}(a,d),v=p+h,b=[],w=(v+2)*c[0],_=(f+h)*c[1],x={width:w<0?Math.floor(w):Math.ceil(w),height:_<0?Math.floor(_):Math.ceil(_),contextInstructions:b};1==c[0]&&1==c[1]||b.push("scale",c),r&&(b.push("strokeStyle",s.strokeStyle),b.push("lineWidth",h),b.push("lineCap",s.lineCap),b.push("lineJoin",s.lineJoin),b.push("miterLimit",s.miterLimit),b.push("setLineDash",[s.lineDash]),b.push("lineDashOffset",s.lineDashOffset)),n&&b.push("fillStyle",o.fillStyle),b.push("textBaseline","middle"),b.push("textAlign","center");const C=.5-u;let S=u*v+C*h;const k=[],E=[];let R,T=0,L=0,I=0,P=0;for(let M=0,A=d.length;Mt?t-l:i,b=s+c>e?e-c:s,w=p[3]+v*h[0]+p[1],_=p[0]+b*h[1]+p[2],x=m-p[3],C=y-p[0];let S;return(f||0!==u)&&(i3[0]=x,a3[0]=x,i3[1]=C,s3[1]=C,s3[0]=x+w,o3[0]=s3[0],o3[1]=C+_,a3[1]=o3[1]),0!==u?(S=vY(dY(),n,r,1,1,u,-n,-r),mY(S,i3),mY(S,s3),mY(S,o3),mY(S,a3),fZ(Math.min(i3[0],s3[0],o3[0],a3[0]),Math.min(i3[1],s3[1],o3[1],a3[1]),Math.max(i3[0],s3[0],o3[0],a3[0]),Math.max(i3[1],s3[1],o3[1],a3[1]),r3)):fZ(Math.min(x,x+w),Math.min(C,C+_),Math.max(x,x+w),Math.max(C,C+_),r3),d&&(m=Math.round(m),y=Math.round(y)),{drawImageX:m,drawImageY:y,drawImageW:v,drawImageH:b,originX:l,originY:c,declutterBox:{minX:r3[0],minY:r3[1],maxX:r3[2],maxY:r3[3],value:g},canvasTransform:S,scale:h}}replayImageOrLabel_(t,e,n,r,i,s,o){const a=!(!s&&!o),l=r.declutterBox,c=o?o[2]*r.scale[0]/2:0;return l.minX-c<=e[0]&&l.maxX+c>=0&&l.minY-c<=e[1]&&l.maxY+c>=0&&(a&&this.replayTextBackground_(t,i3,s3,o3,a3,s,o),function(t,e,n,r,i,s,o,a,l,c,u){t.save(),1!==n&&(void 0===t.globalAlpha?t.globalAlpha=t=>t.globalAlpha*=n:t.globalAlpha*=n),e&&t.transform.apply(t,e),r.contextInstructions?(t.translate(l,c),t.scale(u[0],u[1]),function(t,e){const n=t.contextInstructions;for(let r=0,i=n.length;rF&&(this.fill_(t),I=0),P>F&&(t.stroke(),P=0),I||P||(t.beginPath(),_=NaN,x=NaN),++d;break;case 2:g=n[1],b=n[2]??0;const r=c[g],u=c[g+1],h=c[g+2]-b-r,p=c[g+3]-b-u,B=Math.sqrt(h*h+p*p);t.moveTo(r+B,u),t.arc(r,u,B,0,2*Math.PI,!0),++d;break;case 3:t.closePath(),++d;break;case 4:g=n[1],f=n[2];const $=n[3],q=n[4],V=n[5];N.geometry=$,N.feature=z,d in M||(M[d]=[]);const W=M[d];V?V(c,g,f,2,W):(W[0]=c[g],W[1]=c[g+1],W.length=2),l&&(l.zIndex=n[6]),q(W,N),++d;break;case 6:g=n[1],f=n[2],k=n[3],y=n[4],v=n[5];let H=n[6];const G=n[7],Z=n[8],K=n[9],Y=n[10];let X=n[11];const J=n[12];let Q=n[13];w=n[14]||"declutter";const tt=n[15];if(!k&&n.length>=20){E=n[19],R=n[20],T=n[21],L=n[22];const t=this.drawLabelWithPointPlacement_(E,R,T,L);k=t.label,n[3]=k;const e=n[23];y=(t.anchorX-e)*this.pixelRatio,n[4]=y;const r=n[24];v=(t.anchorY-r)*this.pixelRatio,n[5]=v,H=k.height,n[6]=H,Q=k.width,n[13]=Q}let et,nt,rt,it;n.length>25&&(et=n[25]),n.length>17?(nt=n[16],rt=n[17],it=n[18]):(nt=v1,rt=null,it=null),Y&&O?X+=A:Y||O||(X-=A);let st=0;for(;g!g3.includes(t)),y3=!1,v3=!1,b3=class{constructor(t,e,n,r,i,s,o){this.maxExtent_=t,this.overlaps_=r,this.pixelRatio_=n,this.resolution_=e,this.renderBuffer_=s,this.executorsByZIndex_={},this.hitDetectionContext_=null,this.hitDetectionTransform_=dY(),this.renderedContext_=null,this.deferredZIndexContexts_={},this.createExecutors_(i,o)}clip(t,e){const n=this.getClipCoords(e);t.beginPath(),t.moveTo(n[0],n[1]),t.lineTo(n[2],n[3]),t.lineTo(n[4],n[5]),t.lineTo(n[6],n[7]),t.clip()}createExecutors_(t,e){for(const n in t){let r=this.executorsByZIndex_[n];void 0===r&&(r={},this.executorsByZIndex_[n]=r);const i=t[n];for(const t in i){const n=i[t];r[t]=new p3(this.resolution_,this.pixelRatio_,this.overlaps_,n,e)}}}hasExecutors(t){for(const e in this.executorsByZIndex_){const n=this.executorsByZIndex_[e];for(let e=0,r=t.length;e{const n=MX(1,1,null,{willReadFrequently:e});let r=0;const i=performance.now();for(;performance.now()-i<50;++r)n.fillStyle=`rgba(255,0,${r%256},1)`,n.fillRect(0,0,1,1),n.getImageData(0,0,1,1);return t=r>t?r:t,r};y3={[e(!0)]:!0,[e(!1)]:!1,[e(void 0)]:void 0}[t],v3=!0}();const o=2*(r=Math.round(r))+1,a=vY(this.hitDetectionTransform_,r+.5,r+.5,1/e,-1/e,-n,-t[0],-t[1]),l=!this.hitDetectionContext_;l&&(this.hitDetectionContext_=MX(o,o,null,{willReadFrequently:y3}));const c=this.hitDetectionContext_;let u;c.canvas.width!==o||c.canvas.height!==o?(c.canvas.width=o,c.canvas.height=o):l||c.clearRect(0,0,o,o),void 0!==this.renderBuffer_&&(u=[1/0,1/0,-1/0,-1/0],wZ(u,t),aZ(u,e*(this.renderBuffer_+r),u));const h=function(t){if(void 0!==w3[t])return w3[t];const e=2*t+1,n=t*t,r=new Array(n+1);for(let s=0;s<=t;++s)for(let i=0;i<=t;++i){const o=s*s+i*i;if(o>n)break;let a=r[o];a||(a=[],r[o]=a),a.push(4*((t+s)*e+(t+i))+3),s>0&&a.push(4*((t-s)*e+(t+i))+3),i>0&&(a.push(4*((t+s)*e+(t-i))+3),s>0&&a.push(4*((t-s)*e+(t-i))+3))}const i=[];for(let s=0,o=r.length;s0){if(!s||"none"===n||"Image"!==d&&"Text"!==d||s.includes(t)){const n=(h[l]-3)/4,s=r-n%o,a=r-(n/o|0),c=i(t,e,s*s+a*a);if(c)return c}c.clearRect(0,0,o,o);break}}const f=Object.keys(this.executorsByZIndex_).map(Number);let g,m,y,v,b;for(f.sort(tG),g=f.length-1;g>=0;--g){const t=f[g].toString();for(y=this.executorsByZIndex_[t],m=f3.length-1;m>=0;--m)if(d=f3[m],v=y[d],void 0!==v&&(b=v.executeHitDetection(c,a,n,p,u),b))return b}}getClipCoords(t){const e=this.maxExtent_;if(!e)return null;const n=e[0],r=e[1],i=e[2],s=e[3],o=[n,r,n,s,i,s,i,r];return xY(o,0,8,2,t,o),o}isEmpty(){return $H(this.executorsByZIndex_)}execute(t,e,n,r,i,s,o){const a=Object.keys(this.executorsByZIndex_).map(Number);a.sort(o?eG:tG),s=s||f3;const l=f3.length;for(let c=0,u=a.length;cp.execute(t,e,n,r,i,o)):p.execute(h,e,n,r,i,o),d&&h.restore(),s){s.offset();const t=a[c]*l+f3.indexOf(u);this.deferredZIndexContexts_[t]||(this.deferredZIndexContexts_[t]=[]),this.deferredZIndexContexts_[t].push(s)}}}}this.renderedContext_=t}getDeferredZIndexContexts(){return this.deferredZIndexContexts_}getRenderedContext(){return this.renderedContext_}renderDeferred(){const t=this.deferredZIndexContexts_,e=Object.keys(t).map(Number).sort(tG);for(let n=0,r=e.length;n{t.draw(this.renderedContext_),t.clear()}),t[e[n]].length=0}},w3={},_3=class extends N2{constructor(t,e,n,r,i,s,o){super(),this.context_=t,this.pixelRatio_=e,this.extent_=n,this.transform_=r,this.transformRotation_=r?tZ(Math.atan2(r[1],r[0]),10):0,this.viewRotation_=i,this.squaredTolerance_=s,this.userTransform_=o,this.contextFillState_=null,this.contextStrokeState_=null,this.contextTextState_=null,this.fillState_=null,this.strokeState_=null,this.image_=null,this.imageAnchorX_=0,this.imageAnchorY_=0,this.imageHeight_=0,this.imageOpacity_=0,this.imageOriginX_=0,this.imageOriginY_=0,this.imageRotateWithView_=!1,this.imageRotation_=0,this.imageScale_=[0,0],this.imageWidth_=0,this.text_="",this.textOffsetX_=0,this.textOffsetY_=0,this.textRotateWithView_=!1,this.textRotation_=0,this.textScale_=[0,0],this.textFillState_=null,this.textStrokeState_=null,this.textState_=null,this.pixelCoordinates_=[],this.tmpLocalTransform_=dY()}drawImages_(t,e,n,r){if(!this.image_)return;const i=xY(t,e,n,r,this.transform_,this.pixelCoordinates_),s=this.context_,o=this.tmpLocalTransform_,a=s.globalAlpha;1!=this.imageOpacity_&&(s.globalAlpha=a*this.imageOpacity_);let l=this.imageRotation_;0===this.transformRotation_&&(l-=this.viewRotation_),this.imageRotateWithView_&&(l+=this.viewRotation_);for(let c=0,u=i.length;c0){const t=a.length,e=i||Math.abs(a[0]-a[t-2])<1e-6&&Math.abs(a[1]-a[t-1])<1e-6;a=J2(a,0,t,2,s,e,a),t3(a,2,e)}o.moveTo(a[0],a[1]);let l=a.length;i&&(l-=2);for(let c=2;ct*this.pixelRatio_),lineDashOffset:(i||0)*this.pixelRatio_,lineJoin:void 0!==s?s:g1,lineWidth:(void 0!==o?o:1)*this.pixelRatio_,miterLimit:void 0!==a?a:10,strokeStyle:u1(t||m1),strokeOffset:(c??0)*this.pixelRatio_}}else this.strokeState_=null}setImageStyle(t){let e;if(!t||!(e=t.getSize()))return void(this.image_=null);const n=t.getPixelRatio(this.pixelRatio_),r=t.getAnchor(),i=t.getOrigin();this.image_=t.getImage(this.pixelRatio_),this.imageAnchorX_=r[0]*n,this.imageAnchorY_=r[1]*n,this.imageHeight_=e[1]*n,this.imageOpacity_=t.getOpacity(),this.imageOriginX_=i[0],this.imageOriginY_=i[1],this.imageRotateWithView_=t.getRotateWithView(),this.imageRotation_=t.getRotation();const s=t.getScaleArray();this.imageScale_=[s[0]*this.pixelRatio_/n,s[1]*this.pixelRatio_/n],this.imageWidth_=e[0]*n}setTextStyle(t){if(t){const e=t.getFill();if(e){const t=e.getColor();this.textFillState_={fillStyle:u1(t||d1)}}else this.textFillState_=null;const n=t.getStroke();if(n){const t=n.getColor(),e=n.getLineCap(),r=n.getLineDash(),i=n.getLineDashOffset(),s=n.getLineJoin(),o=n.getWidth(),a=n.getMiterLimit();this.textStrokeState_={lineCap:void 0!==e?e:p1,lineDash:r||f1,lineDashOffset:i||0,lineJoin:void 0!==s?s:g1,lineWidth:void 0!==o?o:1,miterLimit:void 0!==a?a:10,strokeStyle:u1(t||m1)}}else this.textStrokeState_=null;const r=t.getFont(),i=t.getOffsetX(),s=t.getOffsetY(),o=t.getRotateWithView(),a=t.getRotation(),l=t.getScaleArray(),c=t.getText(),u=t.getTextAlign(),h=t.getTextBaseline();this.textState_={font:void 0!==r?r:"10px sans-serif",textAlign:void 0!==u?u:y1,textBaseline:void 0!==h?h:"middle"},this.text_=void 0!==c?Array.isArray(c)?c.reduce((t,e,n)=>t+(n%2?" ":e),""):c:"",this.textOffsetX_=void 0!==i?this.pixelRatio_*i:0,this.textOffsetY_=void 0!==s?this.pixelRatio_*s:0,this.textRotateWithView_=void 0!==o&&o,this.textRotation_=void 0!==a?a:0,this.textScale_=[this.pixelRatio_*l[0],this.pixelRatio_*l[1]]}else this.text_=""}},x3=.5;function C3(t,e,n,r,i,s,o,a,l){const c=i,u=MX(t[0]*x3,t[1]*x3);u.imageSmoothingEnabled=!1;const h=u.canvas,d=new _3(u,x3,i,null,o,a,l?nY(null,l):null),p=n.length,f=Math.floor(16777215/p),g={};for(let y=1;y<=p;++y){const t=n[y-1],e=t.getStyleFunction()||r;if(!e)continue;let i=e(t,s);if(!i)continue;Array.isArray(i)||(i=[i]);const o=(y*f).toString(16).padStart(7,"#00000");for(let n=0,r=i.length;n0;return h&&Promise.all(l).then(()=>i(null)),function(t,e,n,r,i,s,o){const a=n.getGeometryFunction()(e);if(!a)return;const l=a.simplifyTransformed(r,i);n.getRenderer()?I3(t,l,n,e,o):(0,k3[l.getType()])(t,l,n,e,o,s)}(t,e,n,r,s,o,a),h}function I3(t,e,n,r,i){if("GeometryCollection"==e.getType()){const s=e.getGeometries();for(let e=0,o=s.length;ethis.maxStaleKeys&&(this.staleKeys_.length=this.maxStaleKeys)}updateStaleKeys(t){this.renderedSourceKey_?this.renderedSourceKey_!==t&&(this.prependStaleKey(this.renderedSourceKey_),this.renderedSourceKey_=t):this.renderedSourceKey_=t}getFeatures(t){return fG()}getData(t){return null}prepareFrame(t){return fG()}renderFrame(t,e){return fG()}forEachFeatureAtCoordinate(t,e,n,r,i){}getLayer(){return this.layer_}handleFontsChanged(){}handleImageChange_(t){const e=t.target;2!==e.getState()&&3!==e.getState()||this.renderIfReadyAndVisible()}loadImage(t){let e=t.getState();return 2!=e&&3!=e&&t.addEventListener(HH,this.boundHandleImageChange_),0==e&&(t.load(),e=t.getState()),2==e}renderIfReadyAndVisible(){const t=this.getLayer();t&&t.getVisible()&&"ready"===t.getSourceState()&&t.changed()}renderDeferred(t){}disposeInternal(){delete this.layer_,super.disposeInternal()}},M3=[],A3=null,O3=class extends P3{constructor(t){super(t),this.container=null,this.renderedResolution,this.tempTransform=dY(),this.pixelTransform=dY(),this.inversePixelTransform=dY(),this.context=null,this.deferredContext_=null,this.containerReused=!1,this.frameState=null}getImageData(t,e,n){let r;A3||(A3=MX(1,1,void 0,{willReadFrequently:!0})),A3.clearRect(0,0,1,1);try{A3.drawImage(t,e,n,1,1,0,0,1,1),r=A3.getImageData(0,0,1,1).data}catch{return A3=null,null}return r}getBackground(t){let e=this.getLayer().getBackground();return"function"==typeof e&&(e=e(t.viewState.resolution)),e||void 0}useContainer(t,e,n,r,i){if(UX(t)&&0===this.pixelTransform[1]&&0===this.pixelTransform[2]&&0===this.pixelTransform[4]&&0===this.pixelTransform[5]&&t.width===r&&t.height===i){const e=t,r=e.getContext("2d");if(r)return this.container=t,this.context=r,this.containerReused=!0,void(n&&(r.fillStyle=n,r.fillRect(0,0,e.width,e.height)))}const s=this.getLayer().getClassName();let o,a;if(t&&t.className===s&&(!n||t&&t.style.backgroundColor&&sG(TQ(t.style.backgroundColor),TQ(n)))){const e=t.firstElementChild;UX(e)&&(a=e.getContext("2d"))}if(a&&function(t,e){const n=_Y(t),r=_Y(e);for(let i=0;i<6;++i)if(0!==Math.round((n[i]-r[i])*wY[i]))return!1;return!0}(a.canvas.style.transform,e)?(this.container=t,this.context=a,this.containerReused=!0):this.containerReused?(this.container=null,this.context=null,this.containerReused=!1):this.container&&(this.container.style.backgroundColor=null),!this.container){o=LG?jX():document.createElement("div"),o.className=s;let t=o.style;t.position="absolute",t.width="100%",t.height="100%",a=MX();const e=a.canvas;o.appendChild(e),t=e.style,t.position="absolute",t.left="0",t.transformOrigin="top left",this.container=o,this.context=a}this.containerReused||!n||this.container.style.backgroundColor||(this.container.style.backgroundColor=n)}clipUnrotated(t,e,n){const r=OZ(n),i=NZ(n),s=EZ(n),o=kZ(n);mY(e.coordinateToPixelTransform,r),mY(e.coordinateToPixelTransform,i),mY(e.coordinateToPixelTransform,s),mY(e.coordinateToPixelTransform,o);const a=this.inversePixelTransform;mY(a,r),mY(a,i),mY(a,s),mY(a,o),t.save(),t.beginPath(),t.moveTo(Math.round(r[0]),Math.round(r[1])),t.lineTo(Math.round(i[0]),Math.round(i[1])),t.lineTo(Math.round(s[0]),Math.round(s[1])),t.lineTo(Math.round(o[0]),Math.round(o[1])),t.clip()}prepareContainer(t,e){const n=t.extent,r=t.viewState.resolution,i=t.viewState.rotation,s=t.pixelRatio,o=Math.round(FZ(n)/r*s),a=Math.round(PZ(n)/r*s);vY(this.pixelTransform,t.size[0]/2,t.size[1]/2,1/s,1/s,i,-o/2,-a/2),bY(this.inversePixelTransform,this.pixelTransform);const l="matrix("+this.pixelTransform.join(", ")+")",c=this.getBackground(t);if(this.useContainer(e,l,c,o,a),!this.containerReused){const t=this.context.canvas;t.width!=o||t.height!=a?(t.width=o,t.height=a):this.context.clearRect(0,0,o,a),l!==t.style.transform&&(t.style.transform=l)}}dispatchRenderEvent_(t,e,n){const r=this.getLayer();if(r.hasListener(t)){const i=new p2(t,this.inversePixelTransform,n,e);r.dispatchEvent(i)}}preRender(t,e){this.frameState=e,e.declutter||this.dispatchRenderEvent_(UJ,t,e)}postRender(t,e){e.declutter||this.dispatchRenderEvent_(BJ,t,e)}renderDeferredInternal(t){}getRenderContext(t){return t.declutter&&!this.deferredContext_&&(this.deferredContext_=new n3),t.declutter?this.deferredContext_.getContext():this.context}renderDeferred(t){t.declutter&&(this.dispatchRenderEvent_(UJ,this.context,t),t.declutter&&this.deferredContext_&&(this.deferredContext_.draw(this.context),this.deferredContext_.clear()),this.renderDeferredInternal(t),this.dispatchRenderEvent_(BJ,this.context,t))}getRenderTransform(t,e,n,r,i,s,o){const a=i/2,l=s/2,c=r/e,u=-c,h=-t[0]+o,d=-t[1];return vY(this.tempTransform,a,l,c,u,-n,h,d)}disposeInternal(){delete this.frameState,super.disposeInternal()}},N3=class extends O3{constructor(t){super(t),this.boundHandleStyleImageChange_=this.handleStyleImageChange_.bind(this),this.animatingOrInteracting_,this.hitDetectionImageData_=null,this.clipExtent_=null,this.extendX_=!1,this.renderedFeatures_=null,this.renderedRevision_=-1,this.renderedResolution_=NaN,this.renderedExtent_=[1/0,1/0,-1/0,-1/0],this.wrappedRenderedExtent_=[1/0,1/0,-1/0,-1/0],this.renderedRotation_,this.renderedCenter_=null,this.renderedProjection_=null,this.renderedPixelRatio_=1,this.renderedRenderOrder_=null,this.renderedFrameDeclutter_,this.replayGroup_=null,this.replayGroupChanged=!0,this.clipping=!0,this.targetContext_=null,this.opacity_=1}renderWorlds(t,e,n){const r=e.extent,i=e.viewState,s=i.center,o=i.resolution,a=i.projection,l=i.rotation,c=a.getExtent(),u=this.getLayer().getSource(),h=this.getLayer().getDeclutter(),d=e.pixelRatio,p=e.viewHints,f=!(p[0]||p[1]),g=this.context,m=Math.round(FZ(r)/o*d),y=Math.round(PZ(r)/o*d),v=u.getWrapX()&&a.canWrapX(),b=v?FZ(c):null,w=v?Math.ceil((r[2]-c[2])/b)+(this.extendX_?2:1):1;let _=v?Math.floor((r[0]-c[0])/b)-(this.extendX_?1:0):0;do{let r=this.getRenderTransform(s,o,0,d,m,y,_*b);e.declutter&&(r=r.slice(0)),t.execute(g,[g.canvas.width,g.canvas.height],r,l,f,void 0===n?f3:n?g3:m3,n?h&&e.declutter[h]:void 0)}while(++_{if(this.frameState&&!this.hitDetectionImageData_&&!this.animatingOrInteracting_){const t=this.frameState.size.slice(),e=this.renderedCenter_,n=this.renderedResolution_,r=this.renderedRotation_,i=this.renderedProjection_,s=this.wrappedRenderedExtent_,o=this.getLayer(),a=[],l=t[0]*x3,c=t[1]*x3;a.push(this.getRenderTransform(e,n,r,x3,l,c,0).slice());const u=o.getSource(),h=i.getExtent();if(u.getWrapX()&&i.canWrapX()&&!hZ(h,s)){let t=s[0];const i=FZ(h);let o,u=0;for(;th[2];)++u,o=i*u,a.push(this.getRenderTransform(e,n,r,x3,l,c,o).slice()),t-=i}const d=null;this.hitDetectionImageData_=C3(t,a,this.renderedFeatures_,o.getStyleFunction(),s,n,r,R3(n,this.renderedPixelRatio_),d?i:null)}e(S3(t,this.renderedFeatures_,this.hitDetectionImageData_))})}forEachFeatureAtCoordinate(t,e,n,r,i){if(!this.replayGroup_)return;const s=e.viewState.resolution,o=e.viewState.rotation,a=this.getLayer(),l={},c=this.getLayer().getDeclutter();return this.replayGroup_.forEachFeatureAtCoordinate(t,s,o,n,function(t,e,n){const s=mG(t),o=l[s];if(o){if(!0!==o&&nt.value):null)}handleFontsChanged(){const t=this.getLayer();t.getVisible()&&this.replayGroup_&&t.changed()}handleStyleImageChange_(t){this.renderIfReadyAndVisible()}prepareFrame(t){const e=this.getLayer(),n=e.getSource();if(!n)return!1;const r=t.viewHints[0],i=t.viewHints[1],s=e.getUpdateWhileAnimating(),o=e.getUpdateWhileInteracting();if(this.ready&&!s&&r||!o&&i)return this.animatingOrInteracting_=!0,!0;this.animatingOrInteracting_=!1;const a=t.extent,l=t.viewState,c=l.projection,u=l.resolution,h=t.pixelRatio,d=e.getRevision(),p=e.getRenderBuffer();let f=e.getRenderOrder();void 0===f&&(f=E3);const g=l.center.slice(),m=aZ(a,p*u),y=m.slice(),v=[m.slice()],b=c.getExtent(),w=n.getWrapX()&&c.canWrapX();if(this.extendX_=!1,w){const t=n.getExtent();t&&!DZ(t)&&(this.extendX_=t[0]b[2])}if(w&&(!hZ(b,t.extent)||this.extendX_)){const t=FZ(b),e=Math.max(FZ(m)/2,t);let n=b[0],r=b[2];this.extendX_&&(n-=t,r+=t),m[0]=n-e,m[2]=r+e,WZ(g,c);const i=UZ(v[0],c);i[0]b[0]&&i[2]>b[2]&&v.push([i[0]-t,i[1],i[2]-t,i[3]])}if(this.ready&&this.renderedResolution_==u&&this.renderedPixelRatio_===h&&this.renderedRevision_==d&&this.renderedRenderOrder_==f&&this.renderedFrameDeclutter_===!!t.declutter&&hZ(this.wrappedRenderedExtent_,m))return sG(this.renderedExtent_,y)||(this.hitDetectionImageData_=null,this.renderedExtent_=y),this.renderedCenter_=g,this.replayGroupChanged=!1,!0;this.replayGroup_=null;const _=new X2(T3(u,h),m,u,h);for(let L=0,I=v.length;L{let r;const i=t.getStyleFunction()||e.getStyleFunction();if(i&&(r=i(t,u)),r){const e=this.renderFeature(t,x,r,_,undefined,this.getLayer().getDeclutter(),n);C=C&&!e}},k=m,E=n.getFeaturesInExtent(k);f&&E.sort(f);for(let L=0,I=E.length;L=200&&a.status<300){const t=e.getType();try{let r;"text"==t||"json"==t?r=a.responseText:"xml"==t?r=a.responseXML||a.responseText:"arraybuffer"==t&&(r=a.response),r?s(e.readFeatures(r,{extent:n,featureProjection:i}),e.readProjection(r)):o()}catch{o()}}else o()},a.onerror=o,a.send()}function D3(t,e){return function(n,r,i,s,o){z3(t,e,n,r,i,t=>{this.addFeatures(t),void 0!==s&&s(t)},()=>{this.changed(),void 0!==o&&o()})}}function j3(){return[[-1/0,-1/0,1/0,1/0]]}function U3(t){return[t]}var B3=dY(),$3=class t{constructor(t,e,n,r,i,s){this.styleFunction,this.extent_,this.id_=s,this.type_=t,this.flatCoordinates_=e,this.flatInteriorPoints_=null,this.flatMidpoints_=null,this.ends_=n||null,this.properties_=i,this.squaredTolerance_,this.stride_=r,this.simplifiedGeometry_}get(t){return this.properties_[t]}getExtent(){return this.extent_||(this.extent_="Point"===this.type_?mZ(this.flatCoordinates_):yZ(this.flatCoordinates_,0,this.flatCoordinates_.length,this.stride_)),this.extent_}getFlatInteriorPoint(){if(!this.flatInteriorPoints_){const t=RZ(this.getExtent());this.flatInteriorPoints_=rX(this.flatCoordinates_,0,this.ends_,this.stride_,t,0)}return this.flatInteriorPoints_}getFlatInteriorPoints(){if(!this.flatInteriorPoints_){const t=hX(this.flatCoordinates_,this.ends_),e=A2(this.flatCoordinates_,0,t,this.stride_);this.flatInteriorPoints_=iX(this.flatCoordinates_,0,t,this.stride_,e)}return this.flatInteriorPoints_}getFlatMidpoint(){return this.flatMidpoints_||(this.flatMidpoints_=R2(this.flatCoordinates_,0,this.flatCoordinates_.length,this.stride_,.5)),this.flatMidpoints_}getFlatMidpoints(){if(!this.flatMidpoints_){this.flatMidpoints_=[];const t=this.flatCoordinates_;let e=0;const n=this.ends_;for(let r=0,i=n.length;r{if(e===this.squaredTolerance_)return this.simplifiedGeometry_;this.simplifiedGeometry_=this.clone(),n&&this.simplifiedGeometry_.applyTransform(n);const r=this.simplifiedGeometry_.getFlatCoordinates();let i;switch(this.type_){case"LineString":r.length=YY(r,0,this.simplifiedGeometry_.flatCoordinates_.length,this.simplifiedGeometry_.stride_,e,r,0),i=[r.length];break;case"MultiLineString":i=[],r.length=XY(r,0,this.simplifiedGeometry_.ends_,this.simplifiedGeometry_.stride_,e,r,0,i);break;case"Polygon":i=[],r.length=tX(r,0,this.simplifiedGeometry_.ends_,this.simplifiedGeometry_.stride_,Math.sqrt(e),r,0,i)}return i&&(this.simplifiedGeometry_=new t(this.type_,r,i,this.stride_,this.properties_,this.id_)),this.squaredTolerance_=e,this.simplifiedGeometry_}),this}};$3.prototype.getFlatCoordinates=$3.prototype.getOrientedFlatCoordinates;var q3=class{constructor(t){this.rbush_=new KJ(t),this.items_={}}insert(t,e){const n={minX:t[0],minY:t[1],maxX:t[2],maxY:t[3],value:e};this.rbush_.insert(n),this.items_[mG(e)]=n}load(t,e){const n=new Array(e.length);for(let r=0,i=e.length;r{const n=()=>{const r=this.getState();"ready"===r?(this.un("change",n),t()):"error"===r&&(this.un("change",n),e(new Error("Source failed to load")))};this.on("change",n)})}getState(){return this.state_}getWrapX(){return this.wrapX_}getInterpolate(){return this.interpolate_}refresh(){this.changed()}setAttributions(t){this.attributions_=W3(t),this.changed()}setState(t){this.state_=t,this.changed()}};function W3(t){return t?"function"==typeof t?t:(Array.isArray(t)||(t=[t]),()=>t):null}var H3="addfeature",G3="removefeature",Z3=class extends hG{constructor(t,e,n){super(t),this.feature=e,this.features=n}},K3=class extends V3{constructor(t){super({attributions:(t=t||{}).attributions,interpolate:!0,projection:void 0,state:"ready",wrapX:void 0===t.wrapX||t.wrapX}),this.on,this.once,this.un,this.loader_=lG,this.format_=t.format||null,this.overlaps_=void 0===t.overlaps||t.overlaps,this.url_=t.url,void 0!==t.loader?this.loader_=t.loader:void 0!==this.url_&&($G(this.format_,"`format` must be set when `url` is set"),this.loader_=D3(this.url_,this.format_)),this.strategy_=void 0!==t.strategy?t.strategy:j3;const e=void 0===t.useSpatialIndex||t.useSpatialIndex;let n,r;this.featuresRtree_=e?new q3:null,this.loadedExtentsRtree_=new q3,this.nullGeometryFeatures_={},this.idIndex_={},this.uidIndex_={},this.featureChangeKeys_={},this.featuresCollection_=null,Array.isArray(t.features)?r=t.features:t.features&&(n=t.features,r=n.getArray()),e||void 0!==n||(n=new _G(r)),void 0!==r&&this.addFeaturesInternal(r),void 0!==n&&this.bindFeaturesCollection_(n)}addFeature(t){this.addFeatureInternal(t),this.changed()}addFeatureInternal(t){const e=mG(t);if(!this.addToIndex_(e,t))return void(this.featuresCollection_&&this.featuresCollection_.remove(t));this.setupChangeEvents_(e,t);const n=t.getGeometry();if(n){const e=n.getExtent();this.featuresRtree_&&this.featuresRtree_.insert(e,t)}else this.nullGeometryFeatures_[e]=t;this.dispatchEvent(new Z3(H3,t))}setupChangeEvents_(t,e){e instanceof $3||(this.featureChangeKeys_[t]=[qH(e,HH,this.handleFeatureChange_,this),qH(e,UH,this.handleFeatureChange_,this)])}addToIndex_(t,e){let n=!0;if(void 0!==e.getId()){const t=String(e.getId());if(t in this.idIndex_)if(e instanceof $3){const r=this.idIndex_[t];r instanceof $3?Array.isArray(r)?r.push(e):this.idIndex_[t]=[r,e]:n=!1}else n=!1;else this.idIndex_[t]=e}return n&&($G(!(t in this.uidIndex_),"The passed `feature` was already added to the source"),this.uidIndex_[t]=e),n}addFeatures(t){this.addFeaturesInternal(t),this.changed()}addFeaturesInternal(t){const e=[],n=[],r=[];for(let i=0,s=t.length;i{e||(e=!0,this.addFeature(t.element),e=!1)}),t.addEventListener(jH,t=>{e||(e=!0,this.removeFeature(t.element),e=!1)}),this.featuresCollection_=t}clear(t){if(t){for(const t in this.featureChangeKeys_)this.featureChangeKeys_[t].forEach(WH);this.featuresCollection_||(this.featureChangeKeys_={},this.idIndex_={},this.uidIndex_={})}else if(this.featuresRtree_){this.featuresRtree_.forEach(t=>{this.removeFeatureInternal(t)});for(const t in this.nullGeometryFeatures_)this.removeFeatureInternal(this.nullGeometryFeatures_[t])}this.featuresCollection_&&this.featuresCollection_.clear(),this.featuresRtree_&&this.featuresRtree_.clear(),this.nullGeometryFeatures_={};const e=new Z3("clear");this.dispatchEvent(e),this.changed()}forEachFeature(t){if(this.featuresRtree_)return this.featuresRtree_.forEach(t);this.featuresCollection_&&this.featuresCollection_.forEach(t)}forEachFeatureAtCoordinateDirect(t,e){const n=[t[0],t[1],t[0],t[1]];return this.forEachFeatureInExtent(n,function(n){const r=n.getGeometry();if(r instanceof $3||r.intersectsCoordinate(t))return e(n)})}forEachFeatureInExtent(t,e){if(this.featuresRtree_)return this.featuresRtree_.forEachInExtent(t,e);this.featuresCollection_&&this.featuresCollection_.forEach(e)}forEachFeatureIntersectingExtent(t,e){return this.forEachFeatureInExtent(t,function(n){const r=n.getGeometry();if(r instanceof $3||r.intersectsExtent(t)){const t=e(n);if(t)return t}})}getFeaturesCollection(){return this.featuresCollection_}getFeatures(){let t;return this.featuresCollection_?t=this.featuresCollection_.getArray().slice(0):this.featuresRtree_&&(t=this.featuresRtree_.getAll(),$H(this.nullGeometryFeatures_)||iG(t,Object.values(this.nullGeometryFeatures_))),t}getFeaturesAtCoordinate(t){const e=[];return this.forEachFeatureAtCoordinateDirect(t,function(t){e.push(t)}),e}getFeaturesInExtent(t,e){if(this.featuresRtree_){if(!(e&&e.canWrapX()&&this.getWrapX()))return this.featuresRtree_.getInExtent(t);const n=BZ(t,e);return[].concat(...n.map(t=>this.featuresRtree_.getInExtent(t)))}return this.featuresCollection_?this.featuresCollection_.getArray().slice(0):[]}getClosestFeatureToCoordinate(t,e){const n=t[0],r=t[1];let i=null;const s=[NaN,NaN];let o=1/0;const a=[-1/0,-1/0,1/0,1/0];return e=e||oG,this.featuresRtree_.forEachInExtent(a,function(t){if(e(t)){const e=t.getGeometry(),l=o;if(o=e instanceof $3?0:e.closestPointXY(n,r,s,o),o{this.loading=Number(this.loading)-1,this.dispatchEvent(new Z3("featuresloadend",void 0,t))},s=()=>{this.changed(),this.loading=Number(this.loading)-1,this.dispatchEvent(new Z3("featuresloaderror"))};let o=!1;const a=this.loader_.call(this,t,e,n,t=>o||i(t),()=>o||s());a instanceof Promise?(o=!0,a.then(t=>{this.addFeatures(t),i(t)}).catch(s)):this.loader_.length<4&&(this.loading=!1),r.insert(t,{extent:t.slice()})}}}refresh(){this.clear(!0),this.loadedExtentsRtree_.clear(),super.refresh()}removeLoadedExtent(t){const e=this.loadedExtentsRtree_,n=[];e.forEachInExtent(t,function(t){n.push(t)}),n.forEach(n=>{e.remove(n);const r=AZ(n.extent,t);for(const t of r)e.insert(t,{extent:t})})}removeFeatures(t){let e=!1;for(let n=0,r=t.length;nt.clone())}var J3=class{constructor(){this.dataProjection=void 0,this.defaultFeatureProjection=void 0,this.featureClass=E2,this.supportedMediaTypes=null}getReadOptions(t,e){if(e){let n=e.dataProjection?KK(e.dataProjection):this.readProjection(t);e.extent&&n&&"tile-pixels"===n.getUnits()&&(n=KK(n),n.setWorldExtent(e.extent)),e={dataProjection:n,featureProjection:e.featureProjection}}return this.adaptOptions(e)}adaptOptions(t){return Object.assign({dataProjection:this.dataProjection,featureProjection:this.defaultFeatureProjection,featureClass:this.featureClass},t)}getType(){return fG()}readFeature(t,e){return fG()}readFeatures(t,e){return fG()}readGeometry(t,e){return fG()}readProjection(t){return fG()}writeFeature(t,e){return fG()}writeFeatures(t,e){return fG()}writeGeometry(t,e){return fG()}};function Q3(t,e,n){const r=n?KK(n.featureProjection):null,i=n?KK(n.dataProjection):null;let s=t;if(r&&i&&!eY(r,i)){e&&(s=t.clone());const n=e?r:i,o=e?i:r;"tile-pixels"===n.getUnits()?s.transform(n,o):s.applyTransform(iY(n,o))}if(e&&n&&void 0!==n.decimals){const e=Math.pow(10,n.decimals),r=function(t){for(let n=0,r=t.length;ne5({...t,geometry:e})).flat();const r="MultiPolygon"===n.type?"Polygon":n.type;if("GeometryCollection"===r||"Circle"===r)throw new Error("Unsupported geometry type: "+r);const i=n.layout.length;return Q3(new $3(r,"Polygon"===r?function(t,e,n){return Array.isArray(e[0])?(lX(t,0,e,n)||uX(t=t.slice(),0,e,n),t):(aX(t,0,e,n)||cX(t=t.slice(),0,e,n),t)}(n.flatCoordinates,n.ends,i):n.flatCoordinates,n.ends?.flat(),i,t.properties||{},t.id).enableSimplifyTransformed(),!1,e)}function n5(t,e){if(!t)return null;if(Array.isArray(t)){const n=t.map(t=>n5(t,e));return new Y3(n)}return Q3(new(0,t5[t.type])(t.flatCoordinates,t.layout||"XY",t.ends),!1,e)}var r5=class extends J3{constructor(){super()}getType(){return"json"}readFeature(t,e){return this.readFeatureFromObject(i5(t),this.getReadOptions(t,e))}readFeatures(t,e){return this.readFeaturesFromObject(i5(t),this.getReadOptions(t,e))}readFeatureFromObject(t,e){return fG()}readFeaturesFromObject(t,e){return fG()}readGeometry(t,e){return this.readGeometryFromObject(i5(t),this.getReadOptions(t,e))}readGeometryFromObject(t,e){return fG()}readProjection(t){return this.readProjectionFromObject(i5(t))}readProjectionFromObject(t){return fG()}writeFeature(t,e){return JSON.stringify(this.writeFeatureObject(t,e))}writeFeatureObject(t,e){return fG()}writeFeatures(t,e){return JSON.stringify(this.writeFeaturesObject(t,e))}writeFeaturesObject(t,e){return fG()}writeGeometry(t,e){return JSON.stringify(this.writeGeometryObject(t,e))}writeGeometryObject(t,e){return fG()}};function i5(t){return"string"==typeof t?JSON.parse(t)||null:null!==t?t:null}var s5=class extends r5{constructor(t){t=t||{},super(),this.dataProjection=KK(t.dataProjection?t.dataProjection:"EPSG:4326"),t.featureProjection&&(this.defaultFeatureProjection=KK(t.featureProjection)),t.featureClass&&(this.featureClass=t.featureClass),this.geometryName_=t.geometryName,this.extractGeometryName_=t.extractGeometryName,this.supportedMediaTypes=["application/geo+json","application/vnd.geo+json"]}readFeatureFromObject(t,e){let n=null;n="Feature"===t.type?t:{type:"Feature",geometry:t,properties:null};const r=o5(n.geometry);if(this.featureClass===$3)return e5({geometry:r,id:n.id,properties:n.properties},e);const i=new(0,this.featureClass);return this.geometryName_?i.setGeometryName(this.geometryName_):this.extractGeometryName_&&n.geometry_name&&i.setGeometryName(n.geometry_name),i.setGeometry(n5(r,e)),"id"in n&&i.setId(n.id),n.properties&&i.setProperties(n.properties,!0),i}readFeaturesFromObject(t,e){let n=null;if("FeatureCollection"===t.type){n=[];const r=t.features;for(let t=0,i=r.length;t":{},">=":{},"<":{},"<=":{},in:{},"!in":{},all:{},any:{},none:{},has:{},"!has":{}}},geometry_type:{type:"enum",values:{Point:{},LineString:{},Polygon:{}}},function:{expression:{type:"expression"},stops:{type:"array",value:"function_stop"},base:{type:"number",default:1,minimum:0},property:{type:"string",default:"$zoom"},type:{type:"enum",values:{identity:{},exponential:{},interval:{},categorical:{}},default:"exponential"},colorSpace:{type:"enum",values:{rgb:{},lab:{},hcl:{}},default:"rgb"},default:{type:"*",required:!1}},function_stop:{type:"array",minimum:0,maximum:24,value:["number","color"],length:2},expression:{type:"array",value:"expression_name",minimum:1},light:{anchor:{type:"enum",default:"viewport",values:{map:{},viewport:{}},"property-type":"data-constant",transition:!1,expression:{interpolated:!1,parameters:["zoom"]}},position:{type:"array",default:[1.15,210,30],length:3,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom"]}},color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},intensity:{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},sky:{"sky-color":{type:"color","property-type":"data-constant",default:"#88C6FC",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"horizon-color":{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"fog-color":{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"fog-ground-blend":{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"horizon-fog-blend":{type:"number","property-type":"data-constant",default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"sky-horizon-blend":{type:"number","property-type":"data-constant",default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"atmosphere-blend":{type:"number","property-type":"data-constant",default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},terrain:{source:{type:"string",required:!0},exaggeration:{type:"number",minimum:0,default:1}},projection:{type:{type:"projectionDefinition",default:"mercator","property-type":"data-constant",transition:!1,expression:{interpolated:!0,parameters:["zoom"]}}},paint:["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_color-relief","paint_background"],paint_fill:{"fill-antialias":{type:"boolean",default:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-layer-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-outline-color":{type:"color",transition:!0,requires:[{"!":"fill-pattern"},{"fill-antialias":!0}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-extrusion-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-extrusion-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"fill-extrusion-height":{type:"number",default:0,minimum:0,units:"meters",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{type:"number",default:0,minimum:0,units:"meters",transition:!0,requires:["fill-extrusion-height"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-vertical-gradient":{type:"boolean",default:!0,transition:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_line:{"line-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-layer-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"line-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["line-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-width":{type:"number",default:1,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-gap-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-offset":{type:"number",default:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-dasharray":{type:"array",value:"number",minimum:0,transition:!0,units:"line widths",requires:[{"!":"line-pattern"}],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-gradient":{type:"color",transition:!1,requires:[{"!":"line-dasharray"},{"!":"line-pattern"},{source:"geojson",has:{lineMetrics:!0}}],expression:{interpolated:!0,parameters:["line-progress"]},"property-type":"color-ramp"}},paint_circle:{"circle-radius":{type:"number",default:5,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-blur":{type:"number",default:0,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["circle-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{type:"enum",values:{map:{},viewport:{}},default:"map",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"}},paint_heatmap:{"heatmap-radius":{type:"number",default:30,minimum:1,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-weight":{type:"number",default:1,minimum:0,transition:!1,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-intensity":{type:"number",default:1,minimum:0,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"heatmap-color":{type:"color",default:["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",.1,"royalblue",.3,"cyan",.5,"lime",.7,"yellow",1,"red"],transition:!1,expression:{interpolated:!0,parameters:["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_symbol:{"icon-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-color":{type:"color",default:"#000000",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["icon-image","icon-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-color":{type:"color",default:"#000000",transition:!0,overridable:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["text-field","text-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_raster:{"raster-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-hue-rotate":{type:"number",default:0,period:360,transition:!0,units:"degrees",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{type:"number",default:0,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-saturation":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-contrast":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},resampling:{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"raster-resampling":{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{type:"number",default:300,minimum:0,transition:!1,units:"milliseconds",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_hillshade:{"hillshade-illumination-direction":{type:"numberArray",default:335,minimum:0,maximum:359,transition:!1,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-altitude":{type:"numberArray",default:45,minimum:0,maximum:90,transition:!1,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{type:"number",default:.5,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{type:"colorArray",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{type:"colorArray",default:"#FFFFFF",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-method":{type:"enum",values:{standard:{},basic:{},combined:{},igor:{},multidirectional:{}},default:"standard",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},resampling:{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},"paint_color-relief":{"color-relief-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"color-relief-color":{type:"color",transition:!1,expression:{interpolated:!0,parameters:["elevation"]},"property-type":"color-ramp"},resampling:{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_background:{"background-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"background-pattern"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"background-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"background-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},transition:{duration:{type:"number",default:300,minimum:0,units:"milliseconds"},delay:{type:"number",default:0,minimum:0,units:"milliseconds"}},"property-type":{"data-driven":{type:"property-type"},"cross-faded":{type:"property-type"},"cross-faded-data-driven":{type:"property-type"},"color-ramp":{type:"property-type"},"data-constant":{type:"property-type"},constant:{type:"property-type"}},promoteId:{"*":{type:"string"}},interpolation:{type:"array",value:"interpolation_name",minimum:1},interpolation_name:{type:"enum",values:{linear:{syntax:{overloads:[{parameters:[],"output-type":"interpolation"}],parameters:[]}},exponential:{syntax:{overloads:[{parameters:["base"],"output-type":"interpolation"}],parameters:[{name:"base",type:"number literal"}]}},"cubic-bezier":{syntax:{overloads:[{parameters:["x1","y1","x2","y2"],"output-type":"interpolation"}],parameters:[{name:"x1",type:"number literal"},{name:"y1",type:"number literal"},{name:"x2",type:"number literal"},{name:"y2",type:"number literal"}]}}}}},_5=["type","source","source-layer","minzoom","maxzoom","filter","layout"];function x5(t,e){const n={};for(const r in t)"ref"!==r&&(n[r]=t[r]);return _5.forEach(t=>{t in e&&(n[t]=e[t])}),n}function C5(t){t=t.slice();const e=Object.create(null);for(let n=0;n`:"value"===t.itemType.kind?"array":`array<${e}>`}return t.kind}var W5=[T5,L5,I5,P5,M5,A5,z5,O5,q5(N5),D5,U5,j5,B5,$5];function H5(t,e){if("error"===e.kind)return null;if("array"===t.kind){if("array"===e.kind&&(0===e.N&&"value"===e.itemType.kind||!H5(t.itemType,e.itemType))&&("number"!=typeof t.N||t.N===e.N))return null}else{if(t.kind===e.kind)return null;if("value"===t.kind)for(const t of W5)if(!H5(t,e))return null}return`Expected ${V5(t)} but found ${V5(e)} instead.`}function G5(t,e){return e.some(e=>e.kind===t.kind)}function Z5(t,e){return e.some(e=>"null"===e?null===t:"array"===e?Array.isArray(t):"object"===e?t&&!Array.isArray(t)&&"object"==typeof t:e===typeof t)}function K5(t,e){return"array"===t.kind&&"array"===e.kind?t.itemType.kind===e.itemType.kind&&"number"==typeof t.N:t.kind===e.kind}var Y5=.96422,X5=.82521,J5=4/29,Q5=6/29,t4=3*Q5*Q5,e4=Q5*Q5*Q5,n4=Math.PI/180,r4=180/Math.PI;function i4(t){return(t%=360)<0&&(t+=360),t}function s4([t,e,n,r]){let i,s;const o=a4((.2225045*(t=o4(t))+.7168786*(e=o4(e))+.0606169*(n=o4(n)))/1);t===e&&e===n?i=s=o:(i=a4((.4360747*t+.3850649*e+.1430804*n)/Y5),s=a4((.0139322*t+.0971045*e+.7141733*n)/X5));const a=116*o-16;return[a<0?0:a,500*(i-o),200*(o-s),r]}function o4(t){return t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function a4(t){return t>e4?Math.pow(t,1/3):t/t4+J5}function l4([t,e,n,r]){let i=(t+16)/116,s=isNaN(e)?i:i+e/500,o=isNaN(n)?i:i-n/200;return i=1*u4(i),s=Y5*u4(s),o=X5*u4(o),[c4(3.1338561*s-1.6168667*i-.4906146*o),c4(-.9787684*s+1.9161415*i+.033454*o),c4(.0719453*s-.2289914*i+1.4052427*o),r]}function c4(t){return(t=t<=.00304?12.92*t:1.055*Math.pow(t,1/2.4)-.055)<0?0:t>1?1:t}function u4(t){return t>Q5?t*t*t:t4*(t-J5)}var h4=Object.hasOwn||function(t,e){return Object.prototype.hasOwnProperty.call(t,e)};function d4(t,e){return h4(t,e)?t[e]:void 0}function p4(t){return parseInt(t.padEnd(2,t),16)/255}function f4(t,e){return g4(e?t/100:t,0,1)}function g4(t,e,n){return Math.min(Math.max(e,t),n)}function m4(t){return!t.some(Number.isNaN)}var y4={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};function v4(t,e,n){return t+n*(e-t)}function b4(t,e,n){return t.map((t,r)=>v4(t,e[r],n))}var w4=class t{constructor(t,e,n,r=1,i=!0){this.r=t,this.g=e,this.b=n,this.a=r,i||(this.r*=r,this.g*=r,this.b*=r,r||this.overwriteGetter("rgb",[t,e,n,r]))}static{this.black=new t(0,0,0,1)}static{this.white=new t(1,1,1,1)}static{this.transparent=new t(0,0,0,0)}static{this.red=new t(1,0,0,1)}static parse(e){if(e instanceof t)return e;if("string"!=typeof e)return;const n=function(t){if("transparent"===(t=t.toLowerCase().trim()))return[0,0,0,0];const e=d4(y4,t);if(e){const[t,n,r]=e;return[t/255,n/255,r/255,1]}if(t.startsWith("#")&&/^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.test(t)){const e=t.length<6?1:2;let n=1;return[p4(t.slice(n,n+=e)),p4(t.slice(n,n+=e)),p4(t.slice(n,n+=e)),p4(t.slice(n,n+e)||"ff")]}if(t.startsWith("rgb")){const e=t.match(/^rgba?\(\s*([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(e){const[t,n,r,i,s,o,a,l,c,u,h,d]=e,p=[i||" ",a||" ",u].join("");if(" "===p||" /"===p||",,"===p||",,,"===p){const t=[r,o,c].join(""),e="%%%"===t?100:""===t?255:0;if(e){const t=[g4(+n/e,0,1),g4(+s/e,0,1),g4(+l/e,0,1),h?f4(+h,d):1];if(m4(t))return t}}return}}const n=t.match(/^hsla?\(\s*([\de.+-]+)(?:deg)?(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(n){const[t,e,r,i,s,o,a,l,c]=n,u=[r||" ",s||" ",a].join("");if(" "===u||" /"===u||",,"===u||",,,"===u){const t=[+e,g4(+i,0,100),g4(+o,0,100),l?f4(+l,c):1];if(m4(t))return function([t,e,n,r]){function i(r){const i=(r+t/30)%12,s=e*Math.min(n,1-n);return n-s*Math.max(-1,Math.min(i-3,9-i,1))}return t=i4(t),e/=100,n/=100,[i(0),i(8),i(4),r]}(t)}}}(e);return n?new t(...n,!1):void 0}get rgb(){const{r:t,g:e,b:n,a:r}=this,i=r||1/0;return this.overwriteGetter("rgb",[t/i,e/i,n/i,r])}get hcl(){return this.overwriteGetter("hcl",function(t){const[e,n,r,i]=s4(t),s=Math.sqrt(n*n+r*r);return[Math.round(1e4*s)?i4(Math.atan2(r,n)*r4):NaN,s,e,i]}(this.rgb))}get lab(){return this.overwriteGetter("lab",s4(this.rgb))}overwriteGetter(t,e){return Object.defineProperty(this,t,{value:e}),e}toString(){const[t,e,n,r]=this.rgb;return`rgba(${[t,e,n].map(t=>Math.round(255*t)).join(",")},${r})`}static interpolate(e,n,r,i="rgb"){switch(i){case"rgb":{const[i,s,o,a]=b4(e.rgb,n.rgb,r);return new t(i,s,o,a,!1)}case"hcl":{const[i,s,o,a]=e.hcl,[l,c,u,h]=n.hcl;let d,p;if(isNaN(i)||isNaN(l))isNaN(i)?isNaN(l)?d=NaN:(d=l,1!==o&&0!==o||(p=c)):(d=i,1!==u&&0!==u||(p=s));else{let t=l-i;l>i&&t>180?t-=360:l180&&(t+=360),d=i+r*t}const[f,g,m,y]=function([t,e,n,r]){return t=isNaN(t)?0:t*n4,l4([n,Math.cos(t)*e,Math.sin(t)*e,r])}([d,p??v4(s,c,r),v4(o,u,r),v4(a,h,r)]);return new t(f,g,m,y,!1)}case"lab":{const[i,s,o,a]=l4(b4(e.lab,n.lab,r));return new t(i,s,o,a,!1)}}}},_4=class{constructor(t,e,n){this.sensitivity=t?e?"variant":"case":e?"accent":"base",this.locale=n,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})}compare(t,e){return this.collator.compare(t,e)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}},x4=["bottom","center","top"],C4=class{constructor(t,e,n,r,i,s){this.text=t,this.image=e,this.scale=n,this.fontStack=r,this.textColor=i,this.verticalAlign=s}},S4=class t{constructor(t){this.sections=t}static fromString(e){return new t([new C4(e,null,null,null,null,null)])}isEmpty(){return 0===this.sections.length||!this.sections.some(t=>0!==t.text.length||t.image&&0!==t.image.name.length)}static factory(e){return e instanceof t?e:t.fromString(e)}toString(){return 0===this.sections.length?"":this.sections.map(t=>t.text).join("")}},k4=class t{constructor(t){this.values=t.slice()}static parse(e){if(e instanceof t)return e;if("number"==typeof e)return new t([e,e,e,e]);if(Array.isArray(e)&&!(e.length<1||e.length>4)){for(const t of e)if("number"!=typeof t)return;switch(e.length){case 1:e=[e[0],e[0],e[0],e[0]];break;case 2:e=[e[0],e[1],e[0],e[1]];break;case 3:e=[e[0],e[1],e[2],e[1]]}return new t(e)}}toString(){return JSON.stringify(this.values)}static interpolate(e,n,r){return new t(b4(e.values,n.values,r))}},E4=class t{constructor(t){this.values=t.slice()}static parse(e){if(e instanceof t)return e;if("number"==typeof e)return new t([e]);if(Array.isArray(e)){for(const t of e)if("number"!=typeof t)return;return new t(e)}}toString(){return JSON.stringify(this.values)}static interpolate(e,n,r){return new t(b4(e.values,n.values,r))}},R4=class t{constructor(t){this.values=t.slice()}static parse(e){if(e instanceof t)return e;if("string"==typeof e){const n=w4.parse(e);if(!n)return;return new t([n])}if(!Array.isArray(e))return;const n=[];for(const t of e){if("string"!=typeof t)return;const e=w4.parse(t);if(!e)return;n.push(e)}return new t(n)}toString(){return JSON.stringify(this.values)}static interpolate(e,n,r,i="rgb"){const s=[];if(e.values.length!=n.values.length)throw new Error(`colorArray: Arrays have mismatched length (${e.values.length} vs. ${n.values.length}), cannot interpolate.`);for(let t=0;t=0&&t<=255&&"number"==typeof e&&e>=0&&e<=255&&"number"==typeof n&&n>=0&&n<=255?void 0===r||"number"==typeof r&&r>=0&&r<=1?null:`Invalid rgba value [${[t,e,n,r].join(", ")}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${("number"==typeof r?[t,e,n,r]:[t,e,n]).join(", ")}]: 'r', 'g', and 'b' must be between 0 and 255.`}function O4(t){if(null===t||"string"==typeof t||"boolean"==typeof t||"number"==typeof t||t instanceof M4||t instanceof w4||t instanceof _4||t instanceof S4||t instanceof k4||t instanceof E4||t instanceof R4||t instanceof I4||t instanceof P4)return!0;if(Array.isArray(t)){for(const e of t)if(!O4(e))return!1;return!0}if("object"==typeof t){for(const e in t)if(!O4(t[e]))return!1;return!0}return!1}function N4(t){if(null===t)return T5;if("string"==typeof t)return I5;if("boolean"==typeof t)return P5;if("number"==typeof t)return L5;if(t instanceof w4)return M5;if(t instanceof M4)return A5;if(t instanceof _4)return F5;if(t instanceof S4)return z5;if(t instanceof k4)return D5;if(t instanceof E4)return U5;if(t instanceof R4)return j5;if(t instanceof I4)return $5;if(t instanceof P4)return B5;if(Array.isArray(t)){const e=t.length;let n;for(const r of t){const t=N4(r);if(n){if(n===t)continue;n=N5;break}n=t}return q5(n||N5,e)}return O5}function F4(t){const e=typeof t;return null===t?"":"string"===e||"number"===e||"boolean"===e?String(t):t instanceof w4||t instanceof M4||t instanceof S4||t instanceof k4||t instanceof E4||t instanceof R4||t instanceof I4||t instanceof P4?t.toString():JSON.stringify(t)}var z4=class t{constructor(t,e){this.type=t,this.value=e}static parse(e,n){if(2!==e.length)return n.error(`'literal' expression requires exactly one argument, but found ${e.length-1} instead.`);if(!O4(e[1]))return n.error("invalid value");const r=e[1];let i=N4(r);const s=n.expectedType;return"array"!==i.kind||0!==i.N||!s||"array"!==s.kind||"number"==typeof s.N&&0!==s.N||(i=s),new t(i,r)}evaluate(){return this.value}eachChild(){}outputDefined(){return!0}},D4={string:I5,number:L5,boolean:P5,object:O5},j4=class t{constructor(t,e){this.type=t,this.args=e}static parse(e,n){if(e.length<2)return n.error("Expected at least one argument.");let r,i=1;const s=e[0];if("array"===s){let t,s;if(e.length>2){const r=e[1];if("string"!=typeof r||!(r in D4)||"object"===r)return n.error('The item type argument of "array" must be one of string, number, boolean',1);t=D4[r],i++}else t=N5;if(e.length>3){if(null!==e[2]&&("number"!=typeof e[2]||e[2]<0||e[2]!==Math.floor(e[2])))return n.error('The length argument to "array" must be a positive integer literal',2);s=e[2],i++}r=q5(t,s)}else{if(!D4[s])throw new Error(`Types doesn't contain name = ${s}`);r=D4[s]}const o=[];for(;it.outputDefined())}},U4={"to-boolean":P5,"to-color":M5,"to-number":L5,"to-string":I5},B4=class t{constructor(t,e){this.type=t,this.args=e}static parse(e,n){if(e.length<2)return n.error("Expected at least one argument.");const r=e[0];if(!U4[r])throw new Error(`Can't parse ${r} as it is not part of the known types`);if(("to-boolean"===r||"to-string"===r)&&2!==e.length)return n.error("Expected one argument.");const i=U4[r],s=[];for(let t=1;t4?`Invalid rgba value ${JSON.stringify(e)}: expected an array containing either three or four numeric values.`:A4(e[0],e[1],e[2],e[3]),!n))return new w4(e[0]/255,e[1]/255,e[2]/255,e[3])}throw new T4(n||`Could not parse color from value '${"string"==typeof e?e:JSON.stringify(e)}'`)}case"padding":{let e;for(const n of this.args){e=n.evaluate(t);const r=k4.parse(e);if(r)return r}throw new T4(`Could not parse padding from value '${"string"==typeof e?e:JSON.stringify(e)}'`)}case"numberArray":{let e;for(const n of this.args){e=n.evaluate(t);const r=E4.parse(e);if(r)return r}throw new T4(`Could not parse numberArray from value '${"string"==typeof e?e:JSON.stringify(e)}'`)}case"colorArray":{let e;for(const n of this.args){e=n.evaluate(t);const r=R4.parse(e);if(r)return r}throw new T4(`Could not parse colorArray from value '${"string"==typeof e?e:JSON.stringify(e)}'`)}case"variableAnchorOffsetCollection":{let e;for(const n of this.args){e=n.evaluate(t);const r=I4.parse(e);if(r)return r}throw new T4(`Could not parse variableAnchorOffsetCollection from value '${"string"==typeof e?e:JSON.stringify(e)}'`)}case"number":{let e=null;for(const n of this.args){if(e=n.evaluate(t),null===e)return 0;const r=Number(e);if(!isNaN(r))return r}throw new T4(`Could not convert ${JSON.stringify(e)} to number.`)}case"formatted":return S4.fromString(F4(this.args[0].evaluate(t)));case"resolvedImage":return P4.fromString(F4(this.args[0].evaluate(t)));case"projectionDefinition":return this.args[0].evaluate(t);default:return F4(this.args[0].evaluate(t))}}eachChild(t){this.args.forEach(t)}outputDefined(){return this.args.every(t=>t.outputDefined())}},$4=["Unknown","Point","LineString","Polygon"],q4=class{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache=new Map,this.availableImages=null,this.canonical=null}id(){return this.feature&&"id"in this.feature?this.feature.id:null}geometryType(){return this.feature?"number"==typeof this.feature.type?$4[this.feature.type]:this.feature.type:null}geometry(){return this.feature&&"geometry"in this.feature?this.feature.geometry:null}canonicalID(){return this.canonical}properties(){return this.feature&&this.feature.properties||{}}parseColor(t){let e=this._parseColorCache.get(t);return e||(e=w4.parse(t),this._parseColorCache.set(t,e)),e}},V4=class t{constructor(t,e,n=[],r,i=new R5,s=[]){this.registry=t,this.path=n,this.key=n.map(t=>`[${t}]`).join(""),this.scope=i,this.errors=s,this.expectedType=r,this._isConstant=e}parse(t,e,n,r,i={}){return e?this.concat(e,n,r)._parse(t,i):this._parse(t,i)}_parse(t,e){function n(t,e,n){return"assert"===n?new j4(e,[t]):"coerce"===n?new B4(e,[t]):t}if(null!==t&&"string"!=typeof t&&"boolean"!=typeof t&&"number"!=typeof t||(t=["literal",t]),Array.isArray(t)){if(0===t.length)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');const i=t[0];if("string"!=typeof i)return this.error(`Expression name must be a string, but found ${typeof i} instead. If you wanted a literal array, use ["literal", [...]].`,0),null;const s=this.registry[i];if(s){let i=s.parse(t,this);if(!i)return null;if(this.expectedType){const t=this.expectedType,r=i.type;if("string"!==t.kind&&"number"!==t.kind&&"boolean"!==t.kind&&"object"!==t.kind&&"array"!==t.kind||"value"!==r.kind){if("projectionDefinition"===t.kind&&["string","array"].includes(r.kind)||["color","formatted","resolvedImage"].includes(t.kind)&&["value","string"].includes(r.kind)||["padding","numberArray"].includes(t.kind)&&["value","number","array"].includes(r.kind)||"colorArray"===t.kind&&["value","string","array"].includes(r.kind)||"variableAnchorOffsetCollection"===t.kind&&["value","array"].includes(r.kind))i=n(i,t,e.typeAnnotation||"coerce");else if(this.checkSubtype(t,r))return null}else i=n(i,t,e.typeAnnotation||"assert")}if(!(i instanceof z4)&&"resolvedImage"!==i.type.kind&&this._isConstant(i)){const t=new q4;try{i=new z4(i.type,i.evaluate(t))}catch(r){return this.error(r.message),null}}return i}return this.error(`Unknown expression "${i}". If you wanted a literal array, use ["literal", [...]].`,0)}return void 0===t?this.error("'undefined' value invalid. Use null instead."):"object"==typeof t?this.error('Bare objects invalid. Use ["literal", {...}] instead.'):this.error(`Expected an array, but found ${typeof t} instead.`)}concat(e,n,r){const i="number"==typeof e?this.path.concat(e):this.path,s=r?this.scope.concat(r):this.scope;return new t(this.registry,this._isConstant,i,n||null,s,this.errors)}error(t,...e){const n=`${this.key}${e.map(t=>`[${t}]`).join("")}`;this.errors.push(new E5(n,t))}checkSubtype(t,e){const n=H5(t,e);return n&&this.error(n),n}},W4=class t{constructor(t,e){this.type=e.type,this.bindings=[].concat(t),this.result=e}evaluate(t){return this.result.evaluate(t)}eachChild(t){for(const e of this.bindings)t(e[1]);t(this.result)}static parse(e,n){if(e.length<4)return n.error(`Expected at least 3 arguments, but found ${e.length-1} instead.`);const r=[];for(let t=1;te))throw new T4("Input is not a number.");o=a-1}return 0}var Z4=class t{constructor(t,e,n){this.type=t,this.input=e,this.labels=[],this.outputs=[];for(const[r,i]of n)this.labels.push(r),this.outputs.push(i)}static parse(e,n){if(e.length-1<4)return n.error(`Expected at least 4 arguments, but found only ${e.length-1}.`);if((e.length-1)%2!=0)return n.error("Expected an even number of arguments.");const r=n.parse(e[1],1,L5);if(!r)return null;const i=[];let s=null;n.expectedType&&"value"!==n.expectedType.kind&&(s=n.expectedType);for(let t=1;t=r)return n.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',a);const c=n.parse(o,l,s);if(!c)return null;s=s||c.type,i.push([r,c])}return new t(s,r,i)}evaluate(t){const e=this.labels,n=this.outputs;if(1===e.length)return n[0].evaluate(t);const r=this.input.evaluate(t);if(r<=e[0])return n[0].evaluate(t);const i=e.length;return r>=e[i-1]?n[i-1].evaluate(t):n[G4(e,r)].evaluate(t)}eachChild(t){t(this.input);for(const e of this.outputs)t(e)}outputDefined(){return this.outputs.every(t=>t.outputDefined())}},K4=class t{constructor(t,e,n,r,i){this.type=t,this.operator=e,this.interpolation=n,this.input=r,this.labels=[],this.outputs=[];for(const[s,o]of i)this.labels.push(s),this.outputs.push(o)}static interpolationFactor(t,e,n,r){let i=0;if("exponential"===t.name)i=Y4(e,t.base,n,r);else if("linear"===t.name)i=Y4(e,1,n,r);else if("cubic-bezier"===t.name){const s=t.controlPoints;i=function(t,e,n,r){const i=3*t,s=3*(n-t)-i,o=1-i-s,a=3*e,l=3*(r-e)-a,c=1-a-l;return function(t,e=1e-6){if(t<=0)return 0;if(t>=1)return 1;let n=t;for(let h=0;h<8;h++){const r=((o*n+s)*n+i)*n-t;if(Math.abs(r)a?r=n:u=n,n=.5*(r+u)}return((c*n+l)*n+a)*n}}(s[0],s[1],s[2],s[3])(Y4(e,1,n,r))}return i}static parse(e,n){let[r,i,s,...o]=e;if(!Array.isArray(i)||0===i.length)return n.error("Expected an interpolation type expression.",1);if("linear"===i[0])i={name:"linear"};else if("exponential"===i[0]){const t=i[1];if("number"!=typeof t)return n.error("Exponential interpolation requires a numeric base.",1,1);i={name:"exponential",base:t}}else{if("cubic-bezier"!==i[0])return n.error(`Unknown interpolation type ${String(i[0])}`,1,0);{const t=i.slice(1);if(4!==t.length||t.some(t=>"number"!=typeof t||t<0||t>1))return n.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);i={name:"cubic-bezier",controlPoints:t}}}if(e.length-1<4)return n.error(`Expected at least 4 arguments, but found only ${e.length-1}.`);if((e.length-1)%2!=0)return n.error("Expected an even number of arguments.");if(s=n.parse(s,2,L5),!s)return null;const a=[];let l=null;"interpolate-hcl"!==r&&"interpolate-lab"!==r||n.expectedType==j5?n.expectedType&&"value"!==n.expectedType.kind&&(l=n.expectedType):l=M5;for(let t=0;t=e)return n.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',i);const c=n.parse(r,s,l);if(!c)return null;l=l||c.type,a.push([e,c])}return K5(l,L5)||K5(l,A5)||K5(l,M5)||K5(l,D5)||K5(l,U5)||K5(l,j5)||K5(l,$5)||K5(l,q5(L5))?new t(l,r,i,s,a):n.error(`Type ${V5(l)} is not interpolatable.`)}evaluate(e){const n=this.labels,r=this.outputs;if(1===n.length)return r[0].evaluate(e);const i=this.input.evaluate(e);if(i<=n[0])return r[0].evaluate(e);const s=n.length;if(i>=n[s-1])return r[s-1].evaluate(e);const o=G4(n,i),a=n[o],l=n[o+1],c=t.interpolationFactor(this.interpolation,i,a,l),u=r[o].evaluate(e),h=r[o+1].evaluate(e);switch(this.operator){case"interpolate":switch(this.type.kind){case"number":return v4(u,h,c);case"color":return w4.interpolate(u,h,c);case"padding":return k4.interpolate(u,h,c);case"colorArray":return R4.interpolate(u,h,c);case"numberArray":return E4.interpolate(u,h,c);case"variableAnchorOffsetCollection":return I4.interpolate(u,h,c);case"array":return b4(u,h,c);case"projectionDefinition":return M4.interpolate(u,h,c)}case"interpolate-hcl":switch(this.type.kind){case"color":return w4.interpolate(u,h,c,"hcl");case"colorArray":return R4.interpolate(u,h,c,"hcl")}case"interpolate-lab":switch(this.type.kind){case"color":return w4.interpolate(u,h,c,"lab");case"colorArray":return R4.interpolate(u,h,c,"lab")}}}eachChild(t){t(this.input);for(const e of this.outputs)t(e)}outputDefined(){return this.outputs.every(t=>t.outputDefined())}};function Y4(t,e,n,r){const i=r-n,s=t-n;return 0===i?0:1===e?s/i:(Math.pow(e,s)-1)/(Math.pow(e,i)-1)}w4.interpolate,k4.interpolate,E4.interpolate,R4.interpolate,I4.interpolate;var X4=class t{constructor(t,e){this.type=t,this.args=e}static parse(e,n){if(e.length<2)return n.error("Expected at least one argument.");let r=null;const i=n.expectedType;i&&"value"!==i.kind&&(r=i);const s=[];for(const t of e.slice(1)){const e=n.parse(t,1+s.length,r,void 0,{typeAnnotation:"omit"});if(!e)return null;r=r||e.type,s.push(e)}if(!r)throw new Error("No output type");return i&&s.some(t=>H5(i,t.type))?new t(N5,s):new t(r,s)}evaluate(t){let e,n=null,r=0;for(const i of this.args)if(r++,n=i.evaluate(t),n&&n instanceof P4&&!n.available&&(e||(e=n.name),n=null,r===this.args.length&&(n=e)),null!==n)break;return n}eachChild(t){this.args.forEach(t)}outputDefined(){return this.args.every(t=>t.outputDefined())}};function J4(t,e){return"=="===t||"!="===t?"boolean"===e.kind||"string"===e.kind||"number"===e.kind||"null"===e.kind||"value"===e.kind:"string"===e.kind||"number"===e.kind||"value"===e.kind}function Q4(t,e,n,r){return 0===r.compare(e,n)}function t6(t,e,n){const r="=="!==t&&"!="!==t;return class i{constructor(t,e,n){this.type=P5,this.lhs=t,this.rhs=e,this.collator=n,this.hasUntypedArgument="value"===t.type.kind||"value"===e.type.kind}static parse(t,e){if(3!==t.length&&4!==t.length)return e.error("Expected two or three arguments.");const n=t[0];let s=e.parse(t[1],1,N5);if(!s)return null;if(!J4(n,s.type))return e.concat(1).error(`"${n}" comparisons are not supported for type '${V5(s.type)}'.`);let o=e.parse(t[2],2,N5);if(!o)return null;if(!J4(n,o.type))return e.concat(2).error(`"${n}" comparisons are not supported for type '${V5(o.type)}'.`);if(s.type.kind!==o.type.kind&&"value"!==s.type.kind&&"value"!==o.type.kind)return e.error(`Cannot compare types '${V5(s.type)}' and '${V5(o.type)}'.`);r&&("value"===s.type.kind&&"value"!==o.type.kind?s=new j4(o.type,[s]):"value"!==s.type.kind&&"value"===o.type.kind&&(o=new j4(s.type,[o])));let a=null;if(4===t.length){if("string"!==s.type.kind&&"string"!==o.type.kind&&"value"!==s.type.kind&&"value"!==o.type.kind)return e.error("Cannot use collator to compare non-string types.");if(a=e.parse(t[3],3,F5),!a)return null}return new i(s,o,a)}evaluate(i){const s=this.lhs.evaluate(i),o=this.rhs.evaluate(i);if(r&&this.hasUntypedArgument){const e=N4(s),n=N4(o);if(e.kind!==n.kind||"string"!==e.kind&&"number"!==e.kind)throw new T4(`Expected arguments for "${t}" to be (string, string) or (number, number), but found (${e.kind}, ${n.kind}) instead.`)}if(this.collator&&!r&&this.hasUntypedArgument){const t=N4(s),n=N4(o);if("string"!==t.kind||"string"!==n.kind)return e(i,s,o)}return this.collator?n(i,s,o,this.collator.evaluate(i)):e(i,s,o)}eachChild(t){t(this.lhs),t(this.rhs),this.collator&&t(this.collator)}outputDefined(){return!0}}}var e6=t6("==",function(t,e,n){return e===n},Q4),n6=t6("!=",function(t,e,n){return e!==n},function(t,e,n,r){return!Q4(0,e,n,r)}),r6=t6("<",function(t,e,n){return e",function(t,e,n){return e>n},function(t,e,n,r){return r.compare(e,n)>0}),s6=t6("<=",function(t,e,n){return e<=n},function(t,e,n,r){return r.compare(e,n)<=0}),o6=t6(">=",function(t,e,n){return e>=n},function(t,e,n,r){return r.compare(e,n)>=0}),a6=class t{constructor(t,e,n){this.type=F5,this.locale=n,this.caseSensitive=t,this.diacriticSensitive=e}static parse(e,n){if(2!==e.length)return n.error("Expected one argument.");const r=e[1];if("object"!=typeof r||Array.isArray(r))return n.error("Collator options argument must be an object.");const i=n.parse(void 0!==r["case-sensitive"]&&r["case-sensitive"],1,P5);if(!i)return null;const s=n.parse(void 0!==r["diacritic-sensitive"]&&r["diacritic-sensitive"],1,P5);if(!s)return null;let o=null;return r.locale&&(o=n.parse(r.locale,1,I5),!o)?null:new t(i,s,o)}evaluate(t){return new _4(this.caseSensitive.evaluate(t),this.diacriticSensitive.evaluate(t),this.locale?this.locale.evaluate(t):null)}eachChild(t){t(this.caseSensitive),t(this.diacriticSensitive),this.locale&&t(this.locale)}outputDefined(){return!1}},l6=8192;function c6(t,e){const n=(180+t[0])/360,r=(i=t[1],(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+i*Math.PI/360)))/360);var i;const s=Math.pow(2,e.z);return[Math.round(n*s*l6),Math.round(r*s*l6)]}function u6(t,e){const n=Math.pow(2,e.z);return[(i=(t[0]/l6+e.x)/n,360*i-180),(r=(t[1]/l6+e.y)/n,360/Math.PI*Math.atan(Math.exp((180-360*r)*Math.PI/180))-90)];var r,i}function h6(t,e){t[0]=Math.min(t[0],e[0]),t[1]=Math.min(t[1],e[1]),t[2]=Math.max(t[2],e[0]),t[3]=Math.max(t[3],e[1])}function d6(t,e){return!(t[0]<=e[0]||t[2]>=e[2]||t[1]<=e[1]||t[3]>=e[3])}function p6(t,e,n){return e[1]>t[1]!=n[1]>t[1]&&t[0]<(n[0]-e[0])*(t[1]-e[1])/(n[1]-e[1])+e[0]}function f6(t,e,n){const r=t[0]-e[0],i=t[1]-e[1],s=t[0]-n[0],o=t[1]-n[1];return r*o-s*i===0&&r*s<=0&&i*o<=0}function g6(t,e,n,r){const i=[e[0]-t[0],e[1]-t[1]];return 0!==function(t,e){return t[0]*e[1]-t[1]*e[0]}([r[0]-n[0],r[1]-n[1]],i)&&!(!_6(t,e,n,r)||!_6(n,r,t,e))}function m6(t,e,n){for(const r of n)for(let n=0;n0&&h<0||u<0&&h>0}function x6(t,e,n){const r=[];for(let i=0;in[2]){const e=.5*r;let i=t[0]-n[0]>e?-r:n[0]-t[0]>e?r:0;0===i&&(i=t[0]-n[2]>e?-r:n[2]-t[0]>e?r:0),t[0]+=i}h6(e,t)}function k6(t,e,n,r){const i=Math.pow(2,r.z)*l6,s=[r.x*l6,r.y*l6],o=[];for(const a of t)for(const t of a){const r=[t.x+s[0],t.y+s[1]];S6(r,e,n,i),o.push(r)}return o}function E6(t,e,n,r){const i=Math.pow(2,r.z)*l6,s=[r.x*l6,r.y*l6],o=[];for(const a of t){const t=[];for(const n of a){const r=[n.x+s[0],n.y+s[1]];h6(e,r),t.push(r)}o.push(t)}if(e[2]-e[0]<=i/2){!function(t){t[0]=t[1]=1/0,t[2]=t[3]=-1/0}(e);for(const t of o)for(const r of t)S6(r,e,n,i)}return o}var R6=class t{constructor(t,e){this.type=P5,this.geojson=t,this.geometries=e}static parse(e,n){if(2!==e.length)return n.error(`'within' expression requires exactly one argument, but found ${e.length-1} instead.`);if(O4(e[1])){const n=e[1];if("FeatureCollection"===n.type){const e=[];for(const t of n.features){const{type:n,coordinates:r}=t.geometry;"Polygon"===n&&e.push(r),"MultiPolygon"===n&&e.push(...r)}if(e.length)return new t(n,{type:"MultiPolygon",coordinates:e})}else if("Feature"===n.type){const e=n.geometry.type;if("Polygon"===e||"MultiPolygon"===e)return new t(n,n.geometry)}else if("Polygon"===n.type||"MultiPolygon"===n.type)return new t(n,n)}return n.error("'within' expression requires valid geojson object that contains polygon geometry type.")}evaluate(t){if(null!=t.geometry()&&null!=t.canonicalID()){if("Point"===t.geometryType())return function(t,e){const n=[1/0,1/0,-1/0,-1/0],r=[1/0,1/0,-1/0,-1/0],i=t.canonicalID();if("Polygon"===e.type){const s=x6(e.coordinates,r,i),o=k6(t.geometry(),n,r,i);if(!d6(n,r))return!1;for(const t of o)if(!y6(t,s))return!1}if("MultiPolygon"===e.type){const s=C6(e.coordinates,r,i),o=k6(t.geometry(),n,r,i);if(!d6(n,r))return!1;for(const t of o)if(!v6(t,s))return!1}return!0}(t,this.geometries);if("LineString"===t.geometryType())return function(t,e){const n=[1/0,1/0,-1/0,-1/0],r=[1/0,1/0,-1/0,-1/0],i=t.canonicalID();if("Polygon"===e.type){const s=x6(e.coordinates,r,i),o=E6(t.geometry(),n,r,i);if(!d6(n,r))return!1;for(const t of o)if(!b6(t,s))return!1}if("MultiPolygon"===e.type){const s=C6(e.coordinates,r,i),o=E6(t.geometry(),n,r,i);if(!d6(n,r))return!1;for(const t of o)if(!w6(t,s))return!1}return!0}(t,this.geometries)}return!1}eachChild(){}outputDefined(){return!0}},T6=class{constructor(t=[],e=(t,e)=>te?1:0){if(this.data=t,this.length=this.data.length,this.compare=e,this.length>0)for(let n=(this.length>>1)-1;n>=0;n--)this._down(n)}push(t){this.data.push(t),this._up(this.length++)}pop(){if(0===this.length)return;const t=this.data[0],e=this.data.pop();return--this.length>0&&(this.data[0]=e,this._down(0)),t}peek(){return this.data[0]}_up(t){const{data:e,compare:n}=this,r=e[t];for(;t>0;){const i=t-1>>1,s=e[i];if(n(r,s)>=0)break;e[t]=s,t=i}e[t]=r}_down(t){const{data:e,compare:n}=this,r=this.length>>1,i=e[t];for(;t=0)break;e[t]=e[r],t=r}e[t]=i}};function L6(t){let e=0;for(let n,r,i=0,s=t.length,o=s-1;i1?(l=t[a+1][0],c=t[a+1][1]):d>0&&(l+=u/this.kx*d,c+=h/this.ky*d)),u=this.wrap(e[0]-l)*this.kx,h=(e[1]-c)*this.ky;const p=u*u+h*h;p180;)t-=360;return t}};function M6(t,e){return e[0]-t[0]}function A6(t){return t[1]-t[0]+1}function O6(t,e){return t[1]>=t[0]&&t[1]t[1])return[null,null];const n=A6(t);if(e){if(2===n)return[t,null];const e=Math.floor(n/2);return[[t[0],t[0]+e],[t[0]+e,t[1]]]}if(1===n)return[t,null];const r=Math.floor(n/2)-1;return[[t[0],t[0]+r],[t[0]+r+1,t[1]]]}function F6(t,e){if(!O6(e,t.length))return[1/0,1/0,-1/0,-1/0];const n=[1/0,1/0,-1/0,-1/0];for(let r=e[0];r<=e[1];++r)h6(n,t[r]);return n}function z6(t){const e=[1/0,1/0,-1/0,-1/0];for(const n of t)for(const t of n)h6(e,t);return e}function D6(t){return t[0]!==-1/0&&t[1]!==-1/0&&t[2]!==1/0&&t[3]!==1/0}function j6(t,e,n){if(!D6(t)||!D6(e))return NaN;let r=0,i=0;return t[2]e[2]&&(r=t[0]-e[2]),t[1]>e[3]&&(i=t[1]-e[3]),t[3]=r)return r;if(d6(i,s)){if(H6(t,e))return 0}else if(H6(e,t))return 0;let o=1/0;for(const a of t)for(let t=0,r=a.length,i=r-1;t0;){const i=o.pop();if(i[0]>=s)continue;const l=i[1],c=e?50:100;if(A6(l)<=c){if(!O6(l,t.length))return NaN;if(e){const e=W6(t,l,n,r);if(isNaN(e)||0===e)return e;s=Math.min(s,e)}else for(let e=l[0];e<=l[1];++e){const i=V6(t[e],n,r);if(s=Math.min(s,i),0===s)return 0}}else{const n=N6(l,e);Z6(o,s,r,t,a,n[0]),Z6(o,s,r,t,a,n[1])}}return s}function X6(t,e,n,r,i,s=1/0){let o=Math.min(s,i.distance(t[0],n[0]));if(0===o)return o;const a=new T6([[0,[0,t.length-1],[0,n.length-1]]],M6);for(;a.length>0;){const s=a.pop();if(s[0]>=o)continue;const l=s[1],c=s[2],u=e?50:100,h=r?50:100;if(A6(l)<=u&&A6(c)<=h){if(!O6(l,t.length)&&O6(c,n.length))return NaN;let s;if(e&&r)s=$6(t,l,n,c,i),o=Math.min(o,s);else if(e&&!r){const e=t.slice(l[0],l[1]+1);for(let t=c[0];t<=c[1];++t)if(s=U6(n[t],e,i),o=Math.min(o,s),0===o)return o}else if(!e&&r){const e=n.slice(c[0],c[1]+1);for(let n=l[0];n<=l[1];++n)if(s=U6(t[n],e,i),o=Math.min(o,s),0===o)return o}else s=q6(t,l,n,c,i),o=Math.min(o,s)}else{const s=N6(l,e),u=N6(c,r);K6(a,o,i,t,n,s[0],u[0]),K6(a,o,i,t,n,s[0],u[1]),K6(a,o,i,t,n,s[1],u[0]),K6(a,o,i,t,n,s[1],u[1])}}return o}function J6(t){return"MultiPolygon"===t.type?t.coordinates.map(t=>({type:"Polygon",coordinates:t})):"MultiLineString"===t.type?t.coordinates.map(t=>({type:"LineString",coordinates:t})):"MultiPoint"===t.type?t.coordinates.map(t=>({type:"Point",coordinates:t})):[t]}var Q6=class t{constructor(t,e){this.type=L5,this.geojson=t,this.geometries=e}static parse(e,n){if(2!==e.length)return n.error(`'distance' expression requires exactly one argument, but found ${e.length-1} instead.`);if(O4(e[1])){const n=e[1];if("FeatureCollection"===n.type)return new t(n,n.features.map(t=>J6(t.geometry)).flat());if("Feature"===n.type)return new t(n,J6(n.geometry));if("type"in n&&"coordinates"in n)return new t(n,J6(n))}return n.error("'distance' expression requires valid geojson object that contains polygon geometry type.")}evaluate(t){if(null!=t.geometry()&&null!=t.canonicalID()){if("Point"===t.geometryType())return function(t,e){const n=t.geometry(),r=n.flat().map(e=>u6([e.x,e.y],t.canonical));if(0===n.length)return NaN;const i=new P6(r[0][1]);let s=1/0;for(const o of e){switch(o.type){case"Point":s=Math.min(s,X6(r,!1,[o.coordinates],!1,i,s));break;case"LineString":s=Math.min(s,X6(r,!1,o.coordinates,!0,i,s));break;case"Polygon":s=Math.min(s,Y6(r,!1,o.coordinates,i,s))}if(0===s)return s}return s}(t,this.geometries);if("LineString"===t.geometryType())return function(t,e){const n=t.geometry(),r=n.flat().map(e=>u6([e.x,e.y],t.canonical));if(0===n.length)return NaN;const i=new P6(r[0][1]);let s=1/0;for(const o of e){switch(o.type){case"Point":s=Math.min(s,X6(r,!0,[o.coordinates],!1,i,s));break;case"LineString":s=Math.min(s,X6(r,!0,o.coordinates,!0,i,s));break;case"Polygon":s=Math.min(s,Y6(r,!0,o.coordinates,i,s))}if(0===s)return s}return s}(t,this.geometries);if("Polygon"===t.geometryType())return function(t,e){const n=t.geometry();if(0===n.length||0===n[0].length)return NaN;const r=function(t){if(t.length<=1)return[t];const e=[];let n,r;for(const i of t){const t=L6(i);0!==t&&(i.area=Math.abs(t),void 0===r&&(r=t<0),r===t<0?(n&&e.push(n),n=[i]):n.push(i))}return n&&e.push(n),e}(n).map(e=>e.map(e=>e.map(e=>u6([e.x,e.y],t.canonical)))),i=new P6(r[0][0][0][1]);let s=1/0;for(const o of e)for(const t of r){switch(o.type){case"Point":s=Math.min(s,Y6([o.coordinates],!1,t,i,s));break;case"LineString":s=Math.min(s,Y6(o.coordinates,!0,t,i,s));break;case"Polygon":s=Math.min(s,G6(t,o.coordinates,i,s))}if(0===s)return s}return s}(t,this.geometries)}return NaN}eachChild(){}outputDefined(){return!0}},t8=class t{constructor(t){this.type=N5,this.key=t}static parse(e,n){if(2!==e.length)return n.error(`Expected 1 argument, but found ${e.length-1} instead.`);const r=e[1];return null==r?n.error("Global state property must be defined."):"string"!=typeof r?n.error(`Global state property must be string, but found ${typeof e[1]} instead.`):new t(r)}evaluate(t){const e=t.globals?.globalState;return e&&0!==Object.keys(e).length?d4(e,this.key)??null:null}eachChild(){}outputDefined(){return!1}},e8={"==":e6,"!=":n6,">":i6,"<":r6,">=":o6,"<=":s6,array:j4,at:class t{constructor(t,e,n){this.type=t,this.index=e,this.input=n}static parse(e,n){if(3!==e.length)return n.error(`Expected 2 arguments, but found ${e.length-1} instead.`);const r=n.parse(e[1],1,L5),i=n.parse(e[2],2,q5(n.expectedType||N5));if(!r||!i)return null;const s=i.type;return new t(s.itemType,r,i)}evaluate(t){const e=this.index.evaluate(t),n=this.input.evaluate(t);if(e<0)throw new T4(`Array index out of bounds: ${e} < 0.`);if(e>=n.length)throw new T4(`Array index out of bounds: ${e} > ${n.length-1}.`);if(e!==Math.floor(e))throw new T4(`Array index must be an integer, but found ${e} instead.`);return n[e]}eachChild(t){t(this.index),t(this.input)}outputDefined(){return!1}},boolean:j4,case:class t{constructor(t,e,n){this.type=t,this.branches=e,this.otherwise=n}static parse(e,n){if(e.length<4)return n.error(`Expected at least 3 arguments, but found only ${e.length-1}.`);if(e.length%2!=0)return n.error("Expected an odd number of arguments.");let r;n.expectedType&&"value"!==n.expectedType.kind&&(r=n.expectedType);const i=[];for(let t=1;te.outputDefined())&&this.otherwise.outputDefined()}},coalesce:X4,collator:a6,format:class t{constructor(t){this.type=z5,this.sections=t}static parse(e,n){if(e.length<2)return n.error("Expected at least one argument.");const r=e[1];if(!Array.isArray(r)&&"object"==typeof r)return n.error("First argument must be an image or text section.");const i=[];let s=!1;for(let t=1;t<=e.length-1;++t){const r=e[t];if(s&&"object"==typeof r&&!Array.isArray(r)){s=!1;let t=null;if(r["font-scale"]&&(t=n.parse(r["font-scale"],1,L5),!t))return null;let e=null;if(r["text-font"]&&(e=n.parse(r["text-font"],1,q5(I5)),!e))return null;let o=null;if(r["text-color"]&&(o=n.parse(r["text-color"],1,M5),!o))return null;let a=null;if(r["vertical-align"]){if("string"==typeof r["vertical-align"]&&!x4.includes(r["vertical-align"]))return n.error(`'vertical-align' must be one of: 'bottom', 'center', 'top' but found '${r["vertical-align"]}' instead.`);if(a=n.parse(r["vertical-align"],1,I5),!a)return null}const l=i[i.length-1];l.scale=t,l.font=e,l.textColor=o,l.verticalAlign=a}else{const r=n.parse(e[t],1,N5);if(!r)return null;const o=r.type.kind;if("string"!==o&&"value"!==o&&"null"!==o&&"resolvedImage"!==o)return n.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");s=!0,i.push({content:r,scale:null,font:null,textColor:null,verticalAlign:null})}}return new t(i)}evaluate(t){return new S4(this.sections.map(e=>{const n=e.content.evaluate(t);return N4(n)===B5?new C4("",n,null,null,null,e.verticalAlign?e.verticalAlign.evaluate(t):null):new C4(F4(n),null,e.scale?e.scale.evaluate(t):null,e.font?e.font.evaluate(t).join(","):null,e.textColor?e.textColor.evaluate(t):null,e.verticalAlign?e.verticalAlign.evaluate(t):null)}))}eachChild(t){for(const e of this.sections)t(e.content),e.scale&&t(e.scale),e.font&&t(e.font),e.textColor&&t(e.textColor),e.verticalAlign&&t(e.verticalAlign)}outputDefined(){return!1}},image:class t{constructor(t){this.type=B5,this.input=t}static parse(e,n){if(2!==e.length)return n.error("Expected two arguments.");const r=n.parse(e[1],1,I5);return r?new t(r):n.error("No image name provided.")}evaluate(t){const e=this.input.evaluate(t),n=P4.fromString(e);return n&&t.availableImages&&(n.available=t.availableImages.indexOf(e)>-1),n}eachChild(t){t(this.input)}outputDefined(){return!1}},in:class t{constructor(t,e){this.type=P5,this.needle=t,this.haystack=e}static parse(e,n){if(3!==e.length)return n.error(`Expected 2 arguments, but found ${e.length-1} instead.`);const r=n.parse(e[1],1,N5),i=n.parse(e[2],2,N5);return r&&i?G5(r.type,[P5,I5,L5,T5,N5])?new t(r,i):n.error(`Expected first argument to be of type boolean, string, number or null, but found ${V5(r.type)} instead`):null}evaluate(t){const e=this.needle.evaluate(t),n=this.haystack.evaluate(t);if(!n)return!1;if(!Z5(e,["boolean","string","number","null"]))throw new T4(`Expected first argument to be of type boolean, string, number or null, but found ${V5(N4(e))} instead.`);if(!Z5(n,["string","array"]))throw new T4(`Expected second argument to be of type array or string, but found ${V5(N4(n))} instead.`);return n.indexOf(e)>=0}eachChild(t){t(this.needle),t(this.haystack)}outputDefined(){return!0}},"index-of":class t{constructor(t,e,n){this.type=L5,this.needle=t,this.haystack=e,this.fromIndex=n}static parse(e,n){if(e.length<=2||e.length>=5)return n.error(`Expected 2 or 3 arguments, but found ${e.length-1} instead.`);const r=n.parse(e[1],1,N5),i=n.parse(e[2],2,N5);if(!r||!i)return null;if(!G5(r.type,[P5,I5,L5,T5,N5]))return n.error(`Expected first argument to be of type boolean, string, number or null, but found ${V5(r.type)} instead`);if(4===e.length){const s=n.parse(e[3],3,L5);return s?new t(r,i,s):null}return new t(r,i)}evaluate(t){const e=this.needle.evaluate(t),n=this.haystack.evaluate(t);if(!Z5(e,["boolean","string","number","null"]))throw new T4(`Expected first argument to be of type boolean, string, number or null, but found ${V5(N4(e))} instead.`);let r;if(this.fromIndex&&(r=this.fromIndex.evaluate(t)),Z5(n,["string"])){const t=n.indexOf(e,r);return-1===t?-1:[...n.slice(0,t)].length}if(Z5(n,["array"]))return n.indexOf(e,r);throw new T4(`Expected second argument to be of type array or string, but found ${V5(N4(n))} instead.`)}eachChild(t){t(this.needle),t(this.haystack),this.fromIndex&&t(this.fromIndex)}outputDefined(){return!1}},interpolate:K4,"interpolate-hcl":K4,"interpolate-lab":K4,length:class t{constructor(t){this.type=L5,this.input=t}static parse(e,n){if(2!==e.length)return n.error(`Expected 1 argument, but found ${e.length-1} instead.`);const r=n.parse(e[1],1);return r?"array"!==r.type.kind&&"string"!==r.type.kind&&"value"!==r.type.kind?n.error(`Expected argument of type string or array, but found ${V5(r.type)} instead.`):new t(r):null}evaluate(t){const e=this.input.evaluate(t);if("string"==typeof e)return[...e].length;if(Array.isArray(e))return e.length;throw new T4(`Expected value to be of type string or array, but found ${V5(N4(e))} instead.`)}eachChild(t){t(this.input)}outputDefined(){return!1}},let:W4,literal:z4,match:class t{constructor(t,e,n,r,i,s){this.inputType=t,this.type=e,this.input=n,this.cases=r,this.outputs=i,this.otherwise=s}static parse(e,n){if(e.length<5)return n.error(`Expected at least 4 arguments, but found only ${e.length-1}.`);if(e.length%2!=1)return n.error("Expected an even number of arguments.");let r,i;n.expectedType&&"value"!==n.expectedType.kind&&(i=n.expectedType);const s={},o=[];for(let t=2;tNumber.MAX_SAFE_INTEGER)return c.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if("number"==typeof t&&Math.floor(t)!==t)return c.error("Numeric branch labels must be integer values.");if(r){if(c.checkSubtype(r,N4(t)))return null}else r=N4(t);if(void 0!==s[String(t)])return c.error("Branch labels must be unique.");s[String(t)]=o.length}const u=n.parse(l,t,i);if(!u)return null;i=i||u.type,o.push(u)}const a=n.parse(e[1],1,N5);if(!a)return null;const l=n.parse(e[e.length-1],e.length-1,i);return l?"value"!==a.type.kind&&n.concat(1).checkSubtype(r,a.type)?null:new t(r,i,a,s,o,l):null}evaluate(t){const e=this.input.evaluate(t);return(N4(e)===this.inputType&&this.outputs[this.cases[e]]||this.otherwise).evaluate(t)}eachChild(t){t(this.input),this.outputs.forEach(t),t(this.otherwise)}outputDefined(){return this.outputs.every(t=>t.outputDefined())&&this.otherwise.outputDefined()}},number:j4,"number-format":class t{constructor(t,e,n,r,i,s){this.type=I5,this.number=t,this.locale=e,this.currency=n,this.unit=r,this.minFractionDigits=i,this.maxFractionDigits=s}static parse(e,n){if(3!==e.length)return n.error("Expected two arguments.");const r=n.parse(e[1],1,L5);if(!r)return null;const i=e[2];if("object"!=typeof i||Array.isArray(i))return n.error("NumberFormat options argument must be an object.");let s=null;if(i.locale&&(s=n.parse(i.locale,1,I5),!s))return null;let o=null;if(i.currency&&(o=n.parse(i.currency,1,I5),!o))return null;let a=null;if(i.unit&&(a=n.parse(i.unit,1,I5),!a))return null;if(o&&a)return n.error("NumberFormat options `currency` and `unit` are mutually exclusive");let l=null;if(i["min-fraction-digits"]&&(l=n.parse(i["min-fraction-digits"],1,L5),!l))return null;let c=null;return i["max-fraction-digits"]&&(c=n.parse(i["max-fraction-digits"],1,L5),!c)?null:new t(r,s,o,a,l,c)}evaluate(t){return new Intl.NumberFormat(this.locale?this.locale.evaluate(t):[],{style:this.currency?"currency":this.unit?"unit":"decimal",currency:this.currency?this.currency.evaluate(t):void 0,unit:this.unit?this.unit.evaluate(t):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(t):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(t):void 0}).format(this.number.evaluate(t))}eachChild(t){t(this.number),this.locale&&t(this.locale),this.currency&&t(this.currency),this.unit&&t(this.unit),this.minFractionDigits&&t(this.minFractionDigits),this.maxFractionDigits&&t(this.maxFractionDigits)}outputDefined(){return!1}},object:j4,slice:class t{constructor(t,e,n,r){this.type=t,this.input=e,this.beginIndex=n,this.endIndex=r}static parse(e,n){if(e.length<=2||e.length>=5)return n.error(`Expected 2 or 3 arguments, but found ${e.length-1} instead.`);const r=n.parse(e[1],1,N5),i=n.parse(e[2],2,L5);if(!r||!i)return null;if(!G5(r.type,[q5(N5),I5,N5]))return n.error(`Expected first argument to be of type array or string, but found ${V5(r.type)} instead`);if(4===e.length){const s=n.parse(e[3],3,L5);return s?new t(r.type,r,i,s):null}return new t(r.type,r,i)}evaluate(t){const e=this.input.evaluate(t),n=this.beginIndex.evaluate(t);let r;if(this.endIndex&&(r=this.endIndex.evaluate(t)),Z5(e,["string"]))return[...e].slice(n,r).join("");if(Z5(e,["array"]))return e.slice(n,r);throw new T4(`Expected first argument to be of type array or string, but found ${V5(N4(e))} instead.`)}eachChild(t){t(this.input),t(this.beginIndex),this.endIndex&&t(this.endIndex)}outputDefined(){return!1}},step:Z4,string:j4,"to-boolean":B4,"to-color":B4,"to-number":B4,"to-string":B4,var:H4,within:R6,distance:Q6,"global-state":t8},n8=class t{constructor(t,e,n,r){this.name=t,this.type=e,this._evaluate=n,this.args=r}evaluate(t){return this._evaluate(t,this.args)}eachChild(t){this.args.forEach(t)}outputDefined(){return!1}static parse(e,n){const r=e[0],i=t.definitions[r];if(!i)return n.error(`Unknown expression "${r}". If you wanted a literal array, use ["literal", [...]].`,0);const s=Array.isArray(i)?i[0]:i.type,o=Array.isArray(i)?[[i[1],i[2]]]:i.overloads,a=o.filter(([t])=>!Array.isArray(t)||t.length===e.length-1);let l=null;for(const[c,u]of a){l=new V4(n.registry,a8,n.path,null,n.scope);const i=[];let o=!1;for(let t=1;t{return e=t,Array.isArray(e)?`(${e.map(V5).join(", ")})`:`(${V5(e.type)}...)`;var e}).join(" | "),r=[];for(let i=1;i{n=e?n&&a8(t):n&&t instanceof z4}),!!n&&l8(t)&&u8(t,["zoom","heatmap-density","elevation","line-progress","accumulated","is-supported-script"])}function l8(t){if(t instanceof n8){if("get"===t.name&&1===t.args.length)return!1;if("feature-state"===t.name)return!1;if("has"===t.name&&1===t.args.length)return!1;if("properties"===t.name||"geometry-type"===t.name||"id"===t.name)return!1;if(/^filter-/.test(t.name))return!1}if(t instanceof R6)return!1;if(t instanceof Q6)return!1;let e=!0;return t.eachChild(t=>{e&&!l8(t)&&(e=!1)}),e}function c8(t){if(t instanceof n8&&"feature-state"===t.name)return!1;let e=!0;return t.eachChild(t=>{e&&!c8(t)&&(e=!1)}),e}function u8(t,e){if(t instanceof n8&&e.indexOf(t.name)>=0)return!1;let n=!0;return t.eachChild(t=>{n&&!u8(t,e)&&(n=!1)}),n}function h8(t){return{result:"success",value:t}}function d8(t){return{result:"error",value:t}}function p8(t){return"data-driven"===t["property-type"]||"cross-faded-data-driven"===t["property-type"]}function f8(t){return!!t.expression&&t.expression.parameters.indexOf("zoom")>-1}function g8(t){return!!t.expression&&t.expression.interpolated}function m8(t){return t instanceof Number?"number":t instanceof String?"string":t instanceof Boolean?"boolean":Array.isArray(t)?"array":null===t?"null":typeof t}function y8(t){return"object"==typeof t&&null!==t&&!Array.isArray(t)&&N4(t)===O5}n8.register(e8,{error:[{kind:"error"},[I5],(t,[e])=>{throw new T4(e.evaluate(t))}],typeof:[I5,[N5],(t,[e])=>V5(N4(e.evaluate(t)))],"to-rgba":[q5(L5,4),[M5],(t,[e])=>{const[n,r,i,s]=e.evaluate(t).rgb;return[255*n,255*r,255*i,s]}],rgb:[M5,[L5,L5,L5],r8],rgba:[M5,[L5,L5,L5,L5],r8],has:{type:P5,overloads:[[[I5],(t,[e])=>i8(e.evaluate(t),t.properties())],[[I5,O5],(t,[e,n])=>i8(e.evaluate(t),n.evaluate(t))]]},get:{type:N5,overloads:[[[I5],(t,[e])=>s8(e.evaluate(t),t.properties())],[[I5,O5],(t,[e,n])=>s8(e.evaluate(t),n.evaluate(t))]]},"feature-state":[N5,[I5],(t,[e])=>s8(e.evaluate(t),t.featureState||{})],properties:[O5,[],t=>t.properties()],"geometry-type":[I5,[],t=>t.geometryType()],id:[N5,[],t=>t.id()],zoom:[L5,[],t=>t.globals.zoom],"heatmap-density":[L5,[],t=>t.globals.heatmapDensity||0],elevation:[L5,[],t=>t.globals.elevation||0],"line-progress":[L5,[],t=>t.globals.lineProgress||0],accumulated:[N5,[],t=>void 0===t.globals.accumulated?null:t.globals.accumulated],"+":[L5,o8(L5),(t,e)=>{let n=0;for(const r of e)n+=r.evaluate(t);return n}],"*":[L5,o8(L5),(t,e)=>{let n=1;for(const r of e)n*=r.evaluate(t);return n}],"-":{type:L5,overloads:[[[L5,L5],(t,[e,n])=>e.evaluate(t)-n.evaluate(t)],[[L5],(t,[e])=>-e.evaluate(t)]]},"/":[L5,[L5,L5],(t,[e,n])=>e.evaluate(t)/n.evaluate(t)],"%":[L5,[L5,L5],(t,[e,n])=>e.evaluate(t)%n.evaluate(t)],ln2:[L5,[],()=>Math.LN2],pi:[L5,[],()=>Math.PI],e:[L5,[],()=>Math.E],"^":[L5,[L5,L5],(t,[e,n])=>Math.pow(e.evaluate(t),n.evaluate(t))],sqrt:[L5,[L5],(t,[e])=>Math.sqrt(e.evaluate(t))],log10:[L5,[L5],(t,[e])=>Math.log(e.evaluate(t))/Math.LN10],ln:[L5,[L5],(t,[e])=>Math.log(e.evaluate(t))],log2:[L5,[L5],(t,[e])=>Math.log(e.evaluate(t))/Math.LN2],sin:[L5,[L5],(t,[e])=>Math.sin(e.evaluate(t))],cos:[L5,[L5],(t,[e])=>Math.cos(e.evaluate(t))],tan:[L5,[L5],(t,[e])=>Math.tan(e.evaluate(t))],asin:[L5,[L5],(t,[e])=>Math.asin(e.evaluate(t))],acos:[L5,[L5],(t,[e])=>Math.acos(e.evaluate(t))],atan:[L5,[L5],(t,[e])=>Math.atan(e.evaluate(t))],min:[L5,o8(L5),(t,e)=>Math.min(...e.map(e=>e.evaluate(t)))],max:[L5,o8(L5),(t,e)=>Math.max(...e.map(e=>e.evaluate(t)))],abs:[L5,[L5],(t,[e])=>Math.abs(e.evaluate(t))],round:[L5,[L5],(t,[e])=>{const n=e.evaluate(t);return n<0?-Math.round(-n):Math.round(n)}],floor:[L5,[L5],(t,[e])=>Math.floor(e.evaluate(t))],ceil:[L5,[L5],(t,[e])=>Math.ceil(e.evaluate(t))],"filter-==":[P5,[I5,N5],(t,[e,n])=>t.properties()[e.value]===n.value],"filter-id-==":[P5,[N5],(t,[e])=>t.id()===e.value],"filter-type-==":[P5,[I5],(t,[e])=>t.geometryType()===e.value],"filter-<":[P5,[I5,N5],(t,[e,n])=>{const r=t.properties()[e.value],i=n.value;return typeof r==typeof i&&r{const n=t.id(),r=e.value;return typeof n==typeof r&&n":[P5,[I5,N5],(t,[e,n])=>{const r=t.properties()[e.value],i=n.value;return typeof r==typeof i&&r>i}],"filter-id->":[P5,[N5],(t,[e])=>{const n=t.id(),r=e.value;return typeof n==typeof r&&n>r}],"filter-<=":[P5,[I5,N5],(t,[e,n])=>{const r=t.properties()[e.value],i=n.value;return typeof r==typeof i&&r<=i}],"filter-id-<=":[P5,[N5],(t,[e])=>{const n=t.id(),r=e.value;return typeof n==typeof r&&n<=r}],"filter->=":[P5,[I5,N5],(t,[e,n])=>{const r=t.properties()[e.value],i=n.value;return typeof r==typeof i&&r>=i}],"filter-id->=":[P5,[N5],(t,[e])=>{const n=t.id(),r=e.value;return typeof n==typeof r&&n>=r}],"filter-has":[P5,[N5],(t,[e])=>e.value in t.properties()],"filter-has-id":[P5,[],t=>null!==t.id()&&void 0!==t.id()],"filter-type-in":[P5,[q5(I5)],(t,[e])=>e.value.indexOf(t.geometryType())>=0],"filter-id-in":[P5,[q5(N5)],(t,[e])=>e.value.indexOf(t.id())>=0],"filter-in-small":[P5,[I5,q5(N5)],(t,[e,n])=>n.value.indexOf(t.properties()[e.value])>=0],"filter-in-large":[P5,[I5,q5(N5)],(t,[e,n])=>function(t,e,n,r){for(;n<=r;){const i=n+r>>1;if(e[i]===t)return!0;e[i]>t?r=i-1:n=i+1}return!1}(t.properties()[e.value],n.value,0,n.value.length-1)],all:{type:P5,overloads:[[[P5,P5],(t,[e,n])=>e.evaluate(t)&&n.evaluate(t)],[o8(P5),(t,e)=>{for(const n of e)if(!n.evaluate(t))return!1;return!0}]]},any:{type:P5,overloads:[[[P5,P5],(t,[e,n])=>e.evaluate(t)||n.evaluate(t)],[o8(P5),(t,e)=>{for(const n of e)if(n.evaluate(t))return!0;return!1}]]},"!":[P5,[P5],(t,[e])=>!e.evaluate(t)],"is-supported-script":[P5,[I5],(t,[e])=>{const n=t.globals&&t.globals.isSupportedScript;return!n||n(e.evaluate(t))}],upcase:[I5,[I5],(t,[e])=>e.evaluate(t).toUpperCase()],downcase:[I5,[I5],(t,[e])=>e.evaluate(t).toLowerCase()],concat:[I5,o8(N5),(t,e)=>e.map(e=>F4(e.evaluate(t))).join("")],split:[q5(I5),[I5,I5],(t,[e,n])=>e.evaluate(t).split(n.evaluate(t))],join:[I5,[q5(I5),I5],(t,[e,n])=>e.evaluate(t).join(n.evaluate(t))],"resolved-locale":[I5,[F5],(t,[e])=>e.evaluate(t).resolvedLocale()]});var v8=class{constructor(t,e,n){this.expression=t,this._warningHistory={},this._evaluator=new q4,this._defaultValue=e?function(t){if("color"===t.type&&y8(t.default))return new w4(0,0,0,0);switch(t.type){case"color":return w4.parse(t.default)||null;case"padding":return k4.parse(t.default)||null;case"numberArray":return E4.parse(t.default)||null;case"colorArray":return R4.parse(t.default)||null;case"variableAnchorOffsetCollection":return I4.parse(t.default)||null;case"projectionDefinition":return M4.parse(t.default)||null;default:return void 0===t.default?null:t.default}}(e):null,this._enumValues=e&&"enum"===e.type?e.values:null,this._globalState=n}evaluateWithoutErrorHandling(t,e,n,r,i,s){return this._globalState&&(t=E8(t,this._globalState)),this._evaluator.globals=t,this._evaluator.feature=e,this._evaluator.featureState=n,this._evaluator.canonical=r,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=s,this.expression.evaluate(this._evaluator)}evaluate(t,e,n,r,i,s){this._globalState&&(t=E8(t,this._globalState)),this._evaluator.globals=t,this._evaluator.feature=e||null,this._evaluator.featureState=n||null,this._evaluator.canonical=r,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=s||null;try{const t=this.expression.evaluate(this._evaluator);if(null==t||"number"==typeof t&&t!=t)return this._defaultValue;if(this._enumValues&&!(t in this._enumValues))throw new T4(`Expected value to be one of ${Object.keys(this._enumValues).map(t=>JSON.stringify(t)).join(", ")}, but found ${JSON.stringify(t)} instead.`);return t}catch(o){return this._warningHistory[o.message]||(this._warningHistory[o.message]=!0,"undefined"!=typeof console&&console.warn(o.message)),this._defaultValue}}};function b8(t){return Array.isArray(t)&&t.length>0&&"string"==typeof t[0]&&t[0]in e8}function w8(t,e,n){const r=new V4(e8,a8,[],e?function(t){const e={color:M5,string:I5,number:L5,enum:I5,boolean:P5,formatted:z5,padding:D5,numberArray:U5,colorArray:j5,projectionDefinition:A5,resolvedImage:B5,variableAnchorOffsetCollection:$5};return"array"===t.type?q5(e[t.value]||N5,t.length):e[t.type]}(e):void 0),i=r.parse(t,void 0,void 0,void 0,e&&"string"===e.type?{typeAnnotation:"coerce"}:void 0);return i?h8(new v8(i,e,n)):d8(r.errors)}var _8=class{constructor(t,e,n){this.kind=t,this._styleExpression=e,this.isStateDependent="constant"!==t&&!c8(e.expression),this.globalStateRefs=k8(e.expression),this._globalState=n}evaluateWithoutErrorHandling(t,e,n,r,i,s){return this._globalState&&(t=E8(t,this._globalState)),this._styleExpression.evaluateWithoutErrorHandling(t,e,n,r,i,s)}evaluate(t,e,n,r,i,s){return this._globalState&&(t=E8(t,this._globalState)),this._styleExpression.evaluate(t,e,n,r,i,s)}},x8=class{constructor(t,e,n,r,i){this.kind=t,this.zoomStops=n,this._styleExpression=e,this.isStateDependent="camera"!==t&&!c8(e.expression),this.globalStateRefs=k8(e.expression),this.interpolationType=r,this._globalState=i}evaluateWithoutErrorHandling(t,e,n,r,i,s){return this._globalState&&(t=E8(t,this._globalState)),this._styleExpression.evaluateWithoutErrorHandling(t,e,n,r,i,s)}evaluate(t,e,n,r,i,s){return this._globalState&&(t=E8(t,this._globalState)),this._styleExpression.evaluate(t,e,n,r,i,s)}interpolationFactor(t,e,n){return this.interpolationType?K4.interpolationFactor(this.interpolationType,t,e,n):0}};function C8(t,e,n){const r=w8(t,e,n);if("error"===r.result)return r;const i=r.value.expression,s=l8(i);if(!s&&!p8(e))return d8([new E5("","data expressions not supported")]);const o=u8(i,["zoom"]);if(!o&&!f8(e))return d8([new E5("","zoom expressions not supported")]);const a=S8(i);if(!a&&!o)return d8([new E5("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')]);if(a instanceof E5)return d8([a]);if(a instanceof K4&&!g8(e))return d8([new E5("",'"interpolate" expressions cannot be used with this property')]);if(!a)return h8(new _8(s?"constant":"source",r.value,n));const l=a instanceof K4?a.interpolation:void 0;return h8(new x8(s?"camera":"composite",r.value,a.labels,l,n))}function S8(t){let e=null;if(t instanceof W4)e=S8(t.result);else if(t instanceof X4){for(const n of t.args)if(e=S8(n),e)break}else(t instanceof Z4||t instanceof K4)&&t.input instanceof n8&&"zoom"===t.input.name&&(e=t);return e instanceof E5||t.eachChild(t=>{const n=S8(t);n instanceof E5?e=n:!e&&n?e=new E5("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.'):e&&n&&e!==n&&(e=new E5("",'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'))}),e}function k8(t,e=new Set){return t instanceof t8&&e.add(t.key),t.eachChild(t=>{k8(t,e)}),e}function E8(t,e){const{zoom:n,heatmapDensity:r,elevation:i,lineProgress:s,isSupportedScript:o,accumulated:a}=t??{};return{zoom:n,heatmapDensity:r,elevation:i,lineProgress:s,isSupportedScript:o,accumulated:a,globalState:e}}function R8(t){if(!0===t||!1===t)return!0;if(!Array.isArray(t)||0===t.length)return!1;switch(t[0]){case"has":return t.length>=2&&"$id"!==t[1]&&"$type"!==t[1];case"in":return t.length>=3&&("string"!=typeof t[1]||Array.isArray(t[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return 3!==t.length||Array.isArray(t[1])||Array.isArray(t[2]);case"any":case"all":for(const e of t.slice(1))if(!R8(e)&&"boolean"!=typeof e)return!1;return!0;default:return!0}}var T8={type:"boolean",default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}};function L8(t,e){return te?1:0}function I8(t){if(!Array.isArray(t))return!1;if("within"===t[0]||"distance"===t[0])return!0;for(let e=1;e"===e||"<="===e||">="===e?M8(t[1],t[2],e):"any"===e?(n=t.slice(1),["any"].concat(n.map(P8))):"all"===e?["all"].concat(t.slice(1).map(P8)):"none"===e?["all"].concat(t.slice(1).map(P8).map(N8)):"in"===e?A8(t[1],t.slice(2)):"!in"===e?N8(A8(t[1],t.slice(2))):"has"===e?O8(t[1]):"!has"!==e||N8(O8(t[1]));var n}function M8(t,e,n){switch(t){case"$type":return[`filter-type-${n}`,e];case"$id":return[`filter-id-${n}`,e];default:return[`filter-${n}`,t,e]}}function A8(t,e){if(0===e.length)return!1;switch(t){case"$type":return["filter-type-in",["literal",e]];case"$id":return["filter-id-in",["literal",e]];default:return e.length>200&&!e.some(t=>typeof t!=typeof e[0])?["filter-in-large",t,["literal",e.sort(L8)]]:["filter-in-small",t,["literal",e]]}}function O8(t){switch(t){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",t]}}function N8(t){return["!",t]}function F8(t){return"object"==typeof t?["literal",t]:t}function z8(t,e){let n=t.stops;if(!n)return function(t,e){const n=["get",t.property];if(void 0===t.default)return"string"===e.type?["string",n]:n;if("enum"===e.type)return["match",n,Object.keys(e.values),n,t.default];{const r=["color"===e.type?"to-color":e.type,n,F8(t.default)];return"array"===e.type&&r.splice(1,0,e.value,e.length||null),r}}(t,e);const r=n&&"object"==typeof n[0][0],i=r||void 0!==t.property,s=r||!i;return n=n.map(t=>!i&&e.tokens&&"string"==typeof t[1]?[t[0],V8(t[1])]:[t[0],F8(t[1])]),r?function(t,e,n){const r={},i={},s=[];for(let o=0;o3&&e===t[t.length-2]||(r&&2===t.length||t.push(e),t.push(n))}function q8(t,e){return t.type?t.type:e.expression.interpolated?"exponential":"interval"}function V8(t){const e=["concat"],n=/{([^{}]+)}/g;let r=0;for(let i=n.exec(t);null!==i;i=n.exec(t)){const s=t.slice(r,n.lastIndex-i[0].length);r=n.lastIndex,s.length>0&&e.push(s),e.push(["get",i[1]])}if(1===e.length)return t;if(rr.maximum?[new S5(e,n,`${n} is greater than the maximum value ${r.maximum}`)]:[]}function X8(t){const e=t.valueSpec,n=H8(t.value.type);let r,i,s,o={};const a="categorical"!==n&&void 0===t.value.property,l=!a,c="array"===m8(t.value.stops)&&"array"===m8(t.value.stops[0])&&"object"===m8(t.value.stops[0][0]),u=Z8({key:t.key,value:t.value,valueSpec:t.styleSpec.function,validateSpec:t.validateSpec,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{stops:function(t){if("identity"===n)return[new S5(t.key,t.value,'identity function may not have a "stops" property')];let e=[];const r=t.value;return e=e.concat(K8({key:t.key,value:r,valueSpec:t.valueSpec,validateSpec:t.validateSpec,style:t.style,styleSpec:t.styleSpec,arrayElementValidator:h})),"array"===m8(r)&&0===r.length&&e.push(new S5(t.key,r,"array must have at least one stop")),e},default:function(t){return t.validateSpec({key:t.key,value:t.value,valueSpec:e,validateSpec:t.validateSpec,style:t.style,styleSpec:t.styleSpec})}}});return"identity"===n&&a&&u.push(new S5(t.key,t.value,'missing required property "property"')),"identity"===n||t.value.stops||u.push(new S5(t.key,t.value,'missing required property "stops"')),"exponential"===n&&t.valueSpec.expression&&!g8(t.valueSpec)&&u.push(new S5(t.key,t.value,"exponential functions not supported")),t.styleSpec.$version>=8&&(l&&!p8(t.valueSpec)?u.push(new S5(t.key,t.value,"property functions not supported")):a&&!f8(t.valueSpec)&&u.push(new S5(t.key,t.value,"zoom functions not supported"))),"categorical"!==n&&!c||void 0!==t.value.property||u.push(new S5(t.key,t.value,'"property" property is required')),u;function h(t){let n=[];const r=t.value,a=t.key;if("array"!==m8(r))return[new S5(a,r,`array expected, ${m8(r)} found`)];if(2!==r.length)return[new S5(a,r,`array length 2 expected, length ${r.length} found`)];if(c){if("object"!==m8(r[0]))return[new S5(a,r,`object expected, ${m8(r[0])} found`)];if(void 0===r[0].zoom)return[new S5(a,r,"object stop key must have zoom")];if(void 0===r[0].value)return[new S5(a,r,"object stop key must have value")];if(s&&s>H8(r[0].zoom))return[new S5(a,r[0].zoom,"stop zoom values must appear in ascending order")];H8(r[0].zoom)!==s&&(s=H8(r[0].zoom),i=void 0,o={}),n=n.concat(Z8({key:`${a}[0]`,value:r[0],valueSpec:{zoom:{}},validateSpec:t.validateSpec,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{zoom:Y8,value:d}}))}else n=n.concat(d({key:`${a}[0]`,value:r[0],valueSpec:{},validateSpec:t.validateSpec,style:t.style,styleSpec:t.styleSpec},r));return b8(G8(r[1]))?n.concat([new S5(`${a}[1]`,r[1],"expressions are not allowed in function stops.")]):n.concat(t.validateSpec({key:`${a}[1]`,value:r[1],valueSpec:e,validateSpec:t.validateSpec,style:t.style,styleSpec:t.styleSpec}))}function d(t,s){const a=m8(t.value),l=H8(t.value),c=null!==t.value?t.value:s;if(r){if(a!==r)return[new S5(t.key,c,`${a} stop domain type must match previous stop domain type ${r}`)]}else r=a;if("number"!==a&&"string"!==a&&"boolean"!==a)return[new S5(t.key,c,"stop domain value must be a number, string, or boolean")];if("number"!==a&&"categorical"!==n){let r=`number expected, ${a} found`;return p8(e)&&void 0===n&&(r+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new S5(t.key,c,r)]}return"categorical"!==n||"number"!==a||isFinite(l)&&Math.floor(l)===l?"categorical"!==n&&"number"===a&&void 0!==i&&lnew S5(`${t.key}${e.key}`,t.value,e.message));const n=e.value.expression||e.value._styleExpression.expression;if("property"===t.expressionContext&&"text-font"===t.propertyKey&&!n.outputDefined())return[new S5(t.key,t.value,`Invalid data expression for "${t.propertyKey}". Output values must be contained as literals within the expression.`)];if("property"===t.expressionContext&&"layout"===t.propertyType&&!c8(n))return[new S5(t.key,t.value,'"feature-state" data expressions are not supported with layout properties.')];if("filter"===t.expressionContext&&!c8(n))return[new S5(t.key,t.value,'"feature-state" data expressions are not supported with filters.')];if(t.expressionContext&&0===t.expressionContext.indexOf("cluster")){if(!u8(n,["zoom","feature-state"]))return[new S5(t.key,t.value,'"zoom" and "feature-state" expressions are not supported with cluster properties.')];if("cluster-initial"===t.expressionContext&&!l8(n))return[new S5(t.key,t.value,"Feature data expressions are not supported with initial expression part of cluster properties.")]}return[]}function Q8(t){const e=t.key,n=t.value,r=m8(n);return"string"!==r?[new S5(e,n,`color expected, ${r} found`)]:w4.parse(String(n))?[]:[new S5(e,n,`color expected, "${n}" found`)]}function t7(t){const e=t.key,n=t.value,r=t.valueSpec,i=[];return Array.isArray(r.values)?-1===r.values.indexOf(H8(n))&&i.push(new S5(e,n,`expected one of [${r.values.join(", ")}], ${JSON.stringify(n)} found`)):-1===Object.keys(r.values).indexOf(H8(n))&&i.push(new S5(e,n,`expected one of [${Object.keys(r.values).join(", ")}], ${JSON.stringify(n)} found`)),i}function e7(t){return R8(G8(t.value))?J8(k5({},t,{expressionContext:"filter",valueSpec:{value:"boolean"}})):n7(t)}function n7(t){const e=t.value,n=t.key;if("array"!==m8(e))return[new S5(n,e,`array expected, ${m8(e)} found`)];const r=t.styleSpec;let i,s=[];if(e.length<1)return[new S5(n,e,"filter array must have at least 1 element")];switch(s=s.concat(t7({key:`${n}[0]`,value:e[0],valueSpec:r.filter_operator,style:t.style,styleSpec:t.styleSpec})),H8(e[0])){case"<":case"<=":case">":case">=":e.length>=2&&"$type"===H8(e[1])&&s.push(new S5(n,e,`"$type" cannot be use with operator "${e[0]}"`));case"==":case"!=":3!==e.length&&s.push(new S5(n,e,`filter array for operator "${e[0]}" must have 3 elements`));case"in":case"!in":e.length>=2&&(i=m8(e[1]),"string"!==i&&s.push(new S5(`${n}[1]`,e[1],`string expected, ${i} found`)));for(let o=2;o{t in n&&e.push(new S5(r,n[t],`"${t}" is prohibited for ref layers`))}),i.layers.forEach(e=>{H8(e.id)===a&&(t=e)}),t?t.ref?e.push(new S5(r,n.ref,"ref cannot reference another ref layer")):o=H8(t.type):e.push(new S5(r,n.ref,`ref layer "${a}" not found`))}else if("background"!==o)if(n.source){const t=i.sources&&i.sources[n.source],s=t&&H8(t.type);t?"vector"===s&&"raster"===o?e.push(new S5(r,n.source,`layer "${n.id}" requires a raster source`)):"raster-dem"!==s&&"hillshade"===o||"raster-dem"!==s&&"color-relief"===o?e.push(new S5(r,n.source,`layer "${n.id}" requires a raster-dem source`)):"raster"===s&&"raster"!==o?e.push(new S5(r,n.source,`layer "${n.id}" requires a vector source`)):"vector"!==s||n["source-layer"]?"raster-dem"===s&&"hillshade"!==o&&"color-relief"!==o?e.push(new S5(r,n.source,"raster-dem source can only be used with layer type 'hillshade' or 'color-relief'.")):"line"!==o||!n.paint||!n.paint["line-gradient"]||"geojson"===s&&t.lineMetrics||e.push(new S5(r,n,`layer "${n.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)):e.push(new S5(r,n,`layer "${n.id}" must specify a "source-layer"`)):e.push(new S5(r,n.source,`source "${n.source}" not found`))}else e.push(new S5(r,n,'missing required property "source"'));return"raster"===o&&n.paint?.resampling&&n.paint?.["raster-resampling"]&&e.push(new S5(r,n.paint,`layer "${n.id}" redundantly specifies "resampling" and "raster-resampling" paint properties, but only one is allowed. It is advised to use "resampling".`)),e=e.concat(Z8({key:r,value:n,valueSpec:s.layer,style:t.style,styleSpec:t.styleSpec,validateSpec:t.validateSpec,objectElementValidators:{"*":()=>[],type:()=>t.validateSpec({key:`${r}.type`,value:n.type,valueSpec:s.layer.type,style:t.style,styleSpec:t.styleSpec,validateSpec:t.validateSpec,object:n,objectKey:"type"}),filter:e7,layout:t=>Z8({layer:n,key:t.key,value:t.value,style:t.style,styleSpec:t.styleSpec,validateSpec:t.validateSpec,objectElementValidators:{"*":t=>s7(k5({layerType:o},t))}}),paint:t=>Z8({layer:n,key:t.key,value:t.value,style:t.style,styleSpec:t.styleSpec,validateSpec:t.validateSpec,objectElementValidators:{"*":t=>i7(k5({layerType:o},t))}})}})),e}function a7(t){const e=t.value,n=t.key,r=m8(e);return"string"!==r?[new S5(n,e,`string expected, ${r} found`)]:[]}var l7={promoteId:function({key:t,value:e}){if("string"===m8(e))return a7({key:t,value:e});{const n=[];for(const r in e)n.push(...a7({key:`${t}.${r}`,value:e[r]}));return n}}};function c7(t){const e=t.value,n=t.key,r=t.styleSpec,i=t.style,s=t.validateSpec;if(!e.type)return[new S5(n,e,'"type" is required')];const o=H8(e.type);let a;switch(o){case"vector":case"raster":return a=Z8({key:n,value:e,valueSpec:r[`source_${o.replace("-","_")}`],style:t.style,styleSpec:r,objectElementValidators:l7,validateSpec:s}),a;case"raster-dem":return a=function(t){const e=t.sourceName??"",n=t.value,r=t.styleSpec,i=r.source_raster_dem,s=t.style;let o=[];const a=m8(n);if(void 0===n)return o;if("object"!==a)return o.push(new S5("source_raster_dem",n,`object expected, ${a} found`)),o;const l="custom"===H8(n.encoding),c=["redFactor","greenFactor","blueFactor","baseShift"],u=t.value.encoding?`"${t.value.encoding}"`:"Default";for(const h in n)!l&&c.includes(h)?o.push(new S5(h,n[h],`In "${e}": "${h}" is only valid when "encoding" is set to "custom". ${u} encoding found`)):i[h]?o=o.concat(t.validateSpec({key:h,value:n[h],valueSpec:i[h],validateSpec:t.validateSpec,style:s,styleSpec:r})):o.push(new S5(h,n[h],`unknown property "${h}"`));return o}({sourceName:n,value:e,style:t.style,styleSpec:r,validateSpec:s}),a;case"geojson":if(a=Z8({key:n,value:e,valueSpec:r.source_geojson,style:i,styleSpec:r,validateSpec:s,objectElementValidators:l7}),e.cluster)for(const t in e.clusterProperties){const[r,i]=e.clusterProperties[t],o="string"==typeof r?[r,["accumulated"],["get",t]]:r;a.push(...J8({key:`${n}.${t}.map`,value:i,validateSpec:s,expressionContext:"cluster-map"})),a.push(...J8({key:`${n}.${t}.reduce`,value:o,validateSpec:s,expressionContext:"cluster-reduce"}))}return a;case"video":return Z8({key:n,value:e,valueSpec:r.source_video,style:i,validateSpec:s,styleSpec:r});case"image":return Z8({key:n,value:e,valueSpec:r.source_image,style:i,validateSpec:s,styleSpec:r});case"canvas":return[new S5(n,null,"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.","source.canvas")];default:return t7({key:`${n}.type`,value:e.type,valueSpec:{values:["vector","raster","raster-dem","geojson","video","image"]},style:i,validateSpec:s,styleSpec:r})}}function u7(t){const e=t.value,n=t.styleSpec,r=n.light,i=t.style;let s=[];const o=m8(e);if(void 0===e)return s;if("object"!==o)return s=s.concat([new S5("light",e,`object expected, ${o} found`)]),s;for(const a in e){const o=a.match(/^(.*)-transition$/);s=o&&r[o[1]]&&r[o[1]].transition?s.concat(t.validateSpec({key:a,value:e[a],valueSpec:n.transition,validateSpec:t.validateSpec,style:i,styleSpec:n})):r[a]?s.concat(t.validateSpec({key:a,value:e[a],valueSpec:r[a],validateSpec:t.validateSpec,style:i,styleSpec:n})):s.concat([new S5(a,e[a],`unknown property "${a}"`)])}return s}function h7(t){const e=t.value,n=t.styleSpec,r=n.sky,i=t.style,s=m8(e);if(void 0===e)return[];if("object"!==s)return[new S5("sky",e,`object expected, ${s} found`)];let o=[];for(const a in e)o=r[a]?o.concat(t.validateSpec({key:a,value:e[a],valueSpec:r[a],style:i,styleSpec:n})):o.concat([new S5(a,e[a],`unknown property "${a}"`)]);return o}function d7(t){const e=t.value,n=t.styleSpec,r=n.terrain,i=t.style;let s=[];const o=m8(e);if(void 0===e)return s;if("object"!==o)return s=s.concat([new S5("terrain",e,`object expected, ${o} found`)]),s;for(const a in e)s=r[a]?s.concat(t.validateSpec({key:a,value:e[a],valueSpec:r[a],validateSpec:t.validateSpec,style:i,styleSpec:n})):s.concat([new S5(a,e[a],`unknown property "${a}"`)]);return s}function p7(t){let e=[];const n=t.value,r=t.key;if(Array.isArray(n)){const i=[],s=[];for(const o in n)n[o].id&&i.includes(n[o].id)&&e.push(new S5(r,n,`all the sprites' ids must be unique, but ${n[o].id} is duplicated`)),i.push(n[o].id),n[o].url&&s.includes(n[o].url)&&e.push(new S5(r,n,`all the sprites' URLs must be unique, but ${n[o].url} is duplicated`)),s.push(n[o].url),e=e.concat(Z8({key:`${r}[${o}]`,value:n[o],valueSpec:{id:{type:"string",required:!0},url:{type:"string",required:!0}},validateSpec:t.validateSpec}));return e}return a7({key:r,value:n})}function f7(t){return Boolean(t)&&t.constructor===Object}function g7(t){return f7(t.value)?[]:[new S5(t.key,t.value,`object expected, ${m8(t.value)} found`)]}var m7={"*":()=>[],array:K8,boolean:function(t){const e=t.value,n=t.key,r=m8(e);return"boolean"!==r?[new S5(n,e,`boolean expected, ${r} found`)]:[]},number:Y8,color:Q8,constants:W8,enum:t7,filter:e7,function:X8,layer:o7,object:Z8,source:c7,light:u7,sky:h7,terrain:d7,projection:function(t){const e=t.value,n=t.styleSpec,r=n.projection,i=t.style,s=m8(e);if(void 0===e)return[];if("object"!==s)return[new S5("projection",e,`object expected, ${s} found`)];let o=[];for(const a in e)o=r[a]?o.concat(t.validateSpec({key:a,value:e[a],valueSpec:r[a],style:i,styleSpec:n})):o.concat([new S5(a,e[a],`unknown property "${a}"`)]);return o},projectionDefinition:function(t){const e=t.key;let n=t.value;n=n instanceof String?n.valueOf():n;const r=m8(n);return"array"!==r||function(t){return Array.isArray(t)&&3===t.length&&"string"==typeof t[0]&&"string"==typeof t[1]&&"number"==typeof t[2]}(n)||function(t){return!!["interpolate","step","literal"].includes(t[0])}(n)?["array","string"].includes(r)?[]:[new S5(e,n,`projection expected, invalid type "${r}" found`)]:[new S5(e,n,`projection expected, invalid array ${JSON.stringify(n)} found`)]},string:a7,formatted:function(t){return 0===a7(t).length?[]:J8(t)},resolvedImage:function(t){return 0===a7(t).length?[]:J8(t)},padding:function(t){const e=t.key,n=t.value;if("array"===m8(n)){if(n.length<1||n.length>4)return[new S5(e,n,`padding requires 1 to 4 values; ${n.length} values found`)];const r={type:"number"};let i=[];for(let s=0;s[]}})),t.constants&&(n=n.concat(W8({key:"constants",value:t.constants,style:t,styleSpec:e,validateSpec:y7}))),_7(n)}function w7(t){return function(e){return t(Object.assign({},e,{validateSpec:y7}))}}function _7(t){return[].concat(t).sort((t,e)=>t.line-e.line)}function x7(t){return function(...e){return _7(t.apply(this,e))}}b7.source=x7(w7(c7)),b7.sprite=x7(w7(p7)),b7.glyphs=x7(w7(v7)),b7.light=x7(w7(u7)),b7.sky=x7(w7(h7)),b7.terrain=x7(w7(d7)),b7.state=x7(w7(g7)),b7.layer=x7(w7(o7)),b7.filter=x7(w7(e7)),b7.paintProperty=x7(w7(i7)),b7.layoutProperty=x7(w7(s7));var C7=w5,S7=4294967296,k7="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8"),E7=class{constructor(t){this.buf=ArrayBuffer.isView(t)?t:new Uint8Array(t),this.dataView=new DataView(this.buf.buffer,this.buf.byteOffset,this.buf.byteLength),this.pos=0,this.type=0,this._valueStart=-1,this.length=this.buf.length}readFields(t,e,n=this.length){let r;for(;r=this.nextField(n);)t(r,e,this);return e}readMessage(t,e){return this.readFields(t,e,this.readVarint()+this.pos)}readFixed32(){const t=this.dataView.getUint32(this.pos,!0);return this.pos+=4,t}readSFixed32(){const t=this.dataView.getInt32(this.pos,!0);return this.pos+=4,t}readFixed64(){const t=this.dataView.getUint32(this.pos,!0)+this.dataView.getUint32(this.pos+4,!0)*S7;return this.pos+=8,t}readSFixed64(){const t=this.dataView.getUint32(this.pos,!0)+this.dataView.getInt32(this.pos+4,!0)*S7;return this.pos+=8,t}readFloat(){const t=this.dataView.getFloat32(this.pos,!0);return this.pos+=4,t}readDouble(){const t=this.dataView.getFloat64(this.pos,!0);return this.pos+=8,t}readVarint(t){const e=this.buf,n=e[this.pos++];if(n<128)return n;let r,i=127&n;return r=e[this.pos++],i|=(127&r)<<7,r<128?i:(r=e[this.pos++],i|=(127&r)<<14,r<128?i:(r=e[this.pos++],i|=(127&r)<<21,r<128?i:(r=e[this.pos],i|=(15&r)<<28,function(t,e,n){const r=n.buf;let i,s;if(s=r[n.pos++],i=(112&s)>>4,s<128)return R7(t,i,e);if(s=r[n.pos++],i|=(127&s)<<3,s<128)return R7(t,i,e);if(s=r[n.pos++],i|=(127&s)<<10,s<128)return R7(t,i,e);if(s=r[n.pos++],i|=(127&s)<<17,s<128)return R7(t,i,e);if(s=r[n.pos++],i|=(127&s)<<24,s<128)return R7(t,i,e);if(s=r[n.pos++],i|=(1&s)<<31,s<128)return R7(t,i,e);throw new Error("Expected varint not more than 10 bytes")}(i,t,this))))}readSVarint(){const t=this.readVarint();return t%2==1?(t+1)/-2:t/2}readBoolean(){return Boolean(this.readVarint())}readString(){const t=this.readVarint()+this.pos,e=this.pos;return this.pos=t,t-e>=12&&k7?k7.decode(this.buf.subarray(e,t)):function(t,e,n){let r="",i=e;for(;i239?4:e>223?3:e>191?2:1;if(i+c>n)break;1===c?e<128&&(l=e):2===c?(s=t[i+1],128==(192&s)&&(l=(31&e)<<6|63&s,l<=127&&(l=null))):3===c?(s=t[i+1],o=t[i+2],128==(192&s)&&128==(192&o)&&(l=(15&e)<<12|(63&s)<<6|63&o,(l<=2047||l>=55296&&l<=57343)&&(l=null))):4===c&&(s=t[i+1],o=t[i+2],a=t[i+3],128==(192&s)&&128==(192&o)&&128==(192&a)&&(l=(15&e)<<18|(63&s)<<12|(63&o)<<6|63&a,(l<=65535||l>=1114112)&&(l=null))),null===l?(l=65533,c=1):l>65535&&(l-=65536,r+=String.fromCharCode(l>>>10&1023|55296),l=56320|1023&l),r+=String.fromCharCode(l),i+=c}return r}(this.buf,e,t)}readBytes(){const t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e}readPackedVarint(t=[],e){const n=this.readPackedEnd();for(;this.pos=t)return 0;const e=this.readVarint();return this.type=7&e,this._valueStart=this.pos,e>>>3}skip(t){const e=7&t;if(0===e)for(;this.buf[this.pos++]>127;);else if(2===e)this.pos=this.readVarint()+this.pos;else if(5===e)this.pos+=4;else{if(1!==e)throw new Error(`Unimplemented type: ${e}`);this.pos+=8}}};function R7(t,e,n){return n?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}var T7=class extends J3{constructor(t){super(),t=t||{},this.dataProjection=new tK({code:"",units:"tile-pixels"}),this.featureClass=t.featureClass?t.featureClass:$3,this.geometryName_=t.geometryName,this.layerName_=t.layerName?t.layerName:"layer",this.layers_=t.layers?t.layers:null,this.idProperty_=t.idProperty,this.supportedMediaTypes=["application/vnd.mapbox-vector-tile","application/x-protobuf"]}readRawGeometry_(t,e,n,r){t.pos=e.geometry;const i=t.readVarint()+t.pos;let s=1,o=0,a=0,l=0,c=0,u=0;for(;t.pos>3}if(o--,1===s||2===s)a+=t.readSVarint(),l+=t.readSVarint(),1===s&&c>u&&(r.push(c),u=c),n.push(a,l),c+=2;else{if(7!==s)throw new Error("Invalid command found in the PBF");c>u&&(n.push(n[u],n[u+1]),c+=2)}}c>u&&(r.push(c),u=c)}createFeature_(t,e,n){const r=e.type;if(0===r)return null;let i;const s=e.properties;let o;this.idProperty_?(o=s[this.idProperty_],delete s[this.idProperty_]):o=e.id,s[this.layerName_]=e.layer.name;const a=[],l=[];this.readRawGeometry_(t,e,a,l);const c=function(t,e){let n;return 1===t?n=1===e?"Point":"MultiPoint":2===t?n=1===e?"LineString":"MultiLineString":3===t&&(n="Polygon"),n}(r,l.length);if(this.featureClass===$3)i=new this.featureClass(c,a,l,2,s,o),i.transform(n.dataProjection);else{let t;if("Polygon"==c){const e=hX(a,l);t=e.length>1?new O2(a,"XY",e):new dX(a,"XY",l)}else t="Point"===c?new nX(a,"XY"):"LineString"===c?new I2(a,"XY"):"MultiPoint"===c?new M2(a,"XY"):"MultiLineString"===c?new P2(a,"XY",l):null;i=new(0,this.featureClass),this.geometryName_&&i.setGeometryName(this.geometryName_);const e=Q3(t,!1,n);i.setGeometry(e),void 0!==o&&i.setId(o),i.setProperties(s,!0)}return i}getType(){return"arraybuffer"}readFeatures(t,e){const n=this.layers_,r=KK((e=this.adaptOptions(e)).dataProjection);r.setWorldExtent(e.extent),e.dataProjection=r;const i=new E7(t),s=i.readFields(L7,{}),o=[];for(const a in s){if(n&&!n.includes(a))continue;const t=s[a],l=t?[0,0,t.extent,t.extent]:null;r.setExtent(l);for(let n=0,r=t.length;n>3)?n.readString():2===t?n.readFloat():3===t?n.readDouble():4===t?n.readVarint(!0):5===t?n.readVarint():6===t?n.readSVarint():7===t?n.readBoolean():null;e.values.push(r)}}function P7(t,e,n){if(1==t)e.id=n.readVarint();else if(2==t){const t=n.readVarint()+n.pos;for(;n.post)throw new Error("Tile load sequence violation");this.state=t,this.changed()}}load(){fG()}getAlpha(t,e){if(!this.transition_)return 1;let n=this.transitionStarts_[t];if(n){if(-1===n)return 1}else n=e,this.transitionStarts_[t]=n;const r=e-n+1e3/60;return r>=this.transition_?1:HZ(r/this.transition_)}inTransition(t){return!!this.transition_&&-1!==this.transitionStarts_[t]}endTransition(t){this.transition_&&(this.transitionStarts_[t]=-1)}disposeInternal(){this.release(),super.disposeInternal()}};function O7(t){return t instanceof Image||t instanceof HTMLCanvasElement||t instanceof HTMLVideoElement||t instanceof ImageBitmap?t:null}var N7,F7=new Error("disposed"),z7=[256,256],D7=class extends A7{constructor(t){super(t.tileCoord,0,{transition:t.transition,interpolate:t.interpolate}),this.loader_=t.loader,this.data_=null,this.error_=null,this.size_=t.size||null,this.controller_=t.controller||null}getSize(){if(this.size_)return this.size_;const t=O7(this.data_);return t?[t.width,t.height]:z7}getData(){return this.data_}getError(){return this.error_}load(){if(0!==this.state&&3!==this.state)return;this.state=1,this.changed();const t=this;this.loader_().then(function(e){t.data_=e,t.state=2,t.changed()}).catch(function(e){t.error_=e,t.state=3,t.changed()})}disposeInternal(){this.controller_&&(this.controller_.abort(F7),this.controller_=null),super.disposeInternal()}},j7=class extends A7{constructor(t,e,n,r,i,s){super(t,e,s),this.crossOrigin_=r?.crossOrigin,this.referrerPolicy_=r?.referrerPolicy,this.src_=n,this.key=n,this.image_,LG?this.image_=new OffscreenCanvas(1,1):(this.image_=new Image,null!==this.crossOrigin_&&(this.image_.crossOrigin=this.crossOrigin_),void 0!==this.referrerPolicy_&&(this.image_.referrerPolicy=this.referrerPolicy_)),this.unlisten_=null,this.tileLoadFunction_=i}getImage(){return this.image_}setImage(t){this.image_=t,this.state=2,this.unlistenImage_(),this.changed()}getCrossOrigin(){return this.crossOrigin_}getReferrerPolicy(){return this.referrerPolicy_}handleImageError_(){this.state=3,this.unlistenImage_(),this.image_=function(){const t=MX(1,1);return t.fillStyle="rgba(0,0,0,0)",t.fillRect(0,0,1,1),t.canvas}(),this.changed()}handleImageLoad_(){if(LG)this.state=2;else{const t=this.image_;t.naturalWidth&&t.naturalHeight?this.state=2:this.state=4}this.unlistenImage_(),this.changed()}load(){3==this.state&&(this.state=0,this.image_=new Image,null!==this.crossOrigin_&&(this.image_.crossOrigin=this.crossOrigin_),void 0!==this.referrerPolicy_&&(this.image_.referrerPolicy=this.referrerPolicy_)),0==this.state&&(this.state=1,this.changed(),this.tileLoadFunction_(this,this.src_),this.unlisten_=function(t,e,n){const r=t;let i=!0,s=!1,o=!1;const a=[VH(r,"load",function(){o=!0,s||e()})];return r.src&&IG?(s=!0,r.decode().then(function(){i&&e()}).catch(function(){i&&(o?e():n())})):a.push(VH(r,"error",n)),function(){i=!1,a.forEach(WH)}}(this.image_,this.handleImageLoad_.bind(this),this.handleImageError_.bind(this)))}unlistenImage_(){this.unlisten_&&(this.unlisten_(),this.unlisten_=null)}disposeInternal(){this.unlistenImage_(),this.image_=null,super.disposeInternal()}},U7=class{constructor(t,e,n,r){this.minX=t,this.maxX=e,this.minY=n,this.maxY=r}contains(t){return this.containsXY(t[1],t[2])}containsTileRange(t){return this.minX<=t.minX&&t.maxX<=this.maxX&&this.minY<=t.minY&&t.maxY<=this.maxY}containsXY(t,e){return this.minX<=t&&t<=this.maxX&&this.minY<=e&&e<=this.maxY}equals(t){return this.minX==t.minX&&this.minY==t.minY&&this.maxX==t.maxX&&this.maxY==t.maxY}extend(t){t.minXthis.maxX&&(this.maxX=t.maxX),t.minYthis.maxY&&(this.maxY=t.maxY)}getHeight(){return this.maxY-this.minY+1}getSize(){return[this.getWidth(),this.getHeight()]}getWidth(){return this.maxX-this.minX+1}intersects(t){return this.minX<=t.maxX&&this.maxX>=t.minX&&this.minY<=t.maxY&&this.maxY>=t.minY}};function B7(t,e,n,r,i){return void 0!==i?(i.minX=t,i.maxX=e,i.minY=n,i.maxY=r,i):new U7(t,e,n,r)}var $7=[];function q7(t,e,n,r,i){t.beginPath(),t.moveTo(0,0),t.lineTo(e,n),t.lineTo(r,i),t.closePath(),t.save(),t.clip(),t.fillRect(0,0,Math.max(e,r)+1,Math.max(n,i)),t.restore()}function V7(t,e){return Math.abs(t[4*e]-210)>2||Math.abs(t[4*e+3]-191.25)>2}function W7(t,e,n,r){const i=sY(n,e,t);let s=YK(e,r,n);const o=e.getMetersPerUnit();void 0!==o&&(s*=o);const a=t.getMetersPerUnit();void 0!==a&&(s/=a);const l=t.getExtent();if(!l||uZ(l,i)){const e=YK(t,s,i)/s;isFinite(e)&&e>0&&(s/=e)}return s}function H7(t,e,n,r,i,s,o,a,l,c,u,h,d,p){const f=MX(Math.round(n*t),Math.round(n*e),$7);if(h||(f.imageSmoothingEnabled=!1),0===l.length)return f.canvas;function g(t){return Math.round(t*n)/n}f.scale(n,n),f.globalCompositeOperation="lighter";const m=[1/0,1/0,-1/0,-1/0];let y;l.forEach(function(t){bZ(m,t.extent)});const v=n/r,b=(h?1:1+Math.pow(2,-24))/v;if(!d||1!==l.length||0!==c){if(y=MX(Math.round(FZ(m)*v),Math.round(PZ(m)*v),$7),h||(y.imageSmoothingEnabled=!1),i&&p){const t=(i[0]-m[0])*v,e=-(i[3]-m[3])*v,n=FZ(i)*v,r=PZ(i)*v;y.rect(t,e,n,r),y.clip()}l.forEach(function(t){if(t.image.width>0&&t.image.height>0){if(t.clipExtent){y.save();const e=(t.clipExtent[0]-m[0])*v,n=-(t.clipExtent[3]-m[3])*v,r=FZ(t.clipExtent)*v,i=PZ(t.clipExtent)*v;y.rect(h?e:Math.round(e),h?n:Math.round(n),h?r:Math.round(e+r)-Math.round(e),h?i:Math.round(n+i)-Math.round(n)),y.clip()}const e=(t.extent[0]-m[0])*v,n=-(t.extent[3]-m[3])*v,r=FZ(t.extent)*v,i=PZ(t.extent)*v;y.drawImage(t.image,c,c,t.image.width-2*c,t.image.height-2*c,h?e:Math.round(e),h?n:Math.round(n),h?r:Math.round(e+r)-Math.round(e),h?i:Math.round(n+i)-Math.round(n)),t.clipExtent&&y.restore()}})}const w=OZ(o);return a.getTriangles().forEach(function(t){const e=t.source,n=t.target;let r=e[0][0],i=e[0][1],o=e[1][0],a=e[1][1],c=e[2][0],u=e[2][1];const d=g((n[0][0]-w[0])/s),p=g(-(n[0][1]-w[1])/s),v=g((n[1][0]-w[0])/s),_=g(-(n[1][1]-w[1])/s),x=g((n[2][0]-w[0])/s),C=g(-(n[2][1]-w[1])/s),S=r,k=i;r=0,i=0,o-=S,a-=k,c-=S,u-=k;const E=function(t){const e=t.length;for(let r=0;ri&&(i=e,n=o)}if(0===i)return null;const s=t[n];t[n]=t[r],t[r]=s;for(let o=r+1;o=0;r--){n[r]=t[r][e]/t[r][r];for(let i=r-1;i>=0;i--)t[i][e]-=t[i][r]*n[r]}return n}([[o,a,0,0,v-d],[c,u,0,0,x-d],[0,0,o,a,_-p],[0,0,c,u,C-p]]);if(!E)return;if(f.save(),f.beginPath(),function(){if(void 0===N7){const t=MX(6,6,$7);t.globalCompositeOperation="lighter",t.fillStyle="rgba(210, 0, 0, 0.75)",q7(t,4,5,4,0),q7(t,4,5,0,5);const e=t.getImageData(0,0,3,3).data;N7=V7(e,0)||V7(e,4)||V7(e,8),OX(t),$7.push(t.canvas)}return N7}()||!h){f.moveTo(v,_);const t=4,e=d-v,n=p-_;for(let r=0;rmY(o,sY(t,this.targetProj_,this.sourceProj_)),function(t,e,n,r){const i=t.length;n=void 0!==n?n:2,r=r??n,e=void 0!==e?e:new Array(i);for(let s=0;s=o?t[s+n]:i[n]}return e}):iY(this.targetProj_,this.sourceProj_);var c;this.transformInv_=function(t){const e=t[0]+"/"+t[1];return a[e]||(a[e]=l(t)),a[e]},this.maxSourceExtent_=r,this.errorThresholdSquared_=i*i,this.triangles_=[],this.wrapsXInSource_=!1,this.canWrapXInSource_=this.sourceProj_.canWrapX()&&!!r&&!!this.sourceProj_.getExtent()&&FZ(r)>=FZ(this.sourceProj_.getExtent()),this.sourceWorldWidth_=this.sourceProj_.getExtent()?FZ(this.sourceProj_.getExtent()):null,this.targetWorldWidth_=this.targetProj_.getExtent()?FZ(this.targetProj_.getExtent()):null;const u=OZ(n),h=NZ(n),d=EZ(n),p=kZ(n),f=this.transformInv_(u),g=this.transformInv_(h),m=this.transformInv_(d),y=this.transformInv_(p),v=10+(s?Math.max(0,Math.ceil(Math.log2(SZ(n)/(s*s*256*256)))):0);if(this.addQuad_(u,h,d,p,f,g,m,y,v),this.wrapsXInSource_){let t=1/0;this.triangles_.forEach(function(e){t=Math.min(t,e.source[0][0],e.source[1][0],e.source[2][0])}),this.triangles_.forEach(e=>{if(Math.max(e.source[0][0],e.source[1][0],e.source[2][0])-t>this.sourceWorldWidth_/2){const n=[[e.source[0][0],e.source[0][1]],[e.source[1][0],e.source[1][1]],[e.source[2][0],e.source[2][1]]];n[0][0]-t>this.sourceWorldWidth_/2&&(n[0][0]-=this.sourceWorldWidth_),n[1][0]-t>this.sourceWorldWidth_/2&&(n[1][0]-=this.sourceWorldWidth_),n[2][0]-t>this.sourceWorldWidth_/2&&(n[2][0]-=this.sourceWorldWidth_);const r=Math.min(n[0][0],n[1][0],n[2][0]);Math.max(n[0][0],n[1][0],n[2][0])-r.5&&u<1;let p=!1;if(l>0&&(this.targetProj_.isGlobal()&&this.targetWorldWidth_&&(p=FZ(oZ([t,e,n,r]))/this.targetWorldWidth_>.25||p),!d&&this.sourceProj_.isGlobal()&&u&&(p=u>.25||p)),!p&&this.maxSourceExtent_&&isFinite(c[0])&&isFinite(c[1])&&isFinite(c[2])&&isFinite(c[3])&&!zZ(c,this.maxSourceExtent_))return;let f=0;if(!(p||isFinite(i[0])&&isFinite(i[1])&&isFinite(s[0])&&isFinite(s[1])&&isFinite(o[0])&&isFinite(o[1])&&isFinite(a[0])&&isFinite(a[1])))if(l>0)p=!0;else if(f=(isFinite(i[0])&&isFinite(i[1])?0:8)+(isFinite(s[0])&&isFinite(s[1])?0:4)+(isFinite(o[0])&&isFinite(o[1])?0:2)+(isFinite(a[0])&&isFinite(a[1])?0:1),1!=f&&2!=f&&4!=f&&8!=f)return;if(l>0){if(!p){const e=[(t[0]+n[0])/2,(t[1]+n[1])/2],r=this.transformInv_(e);let s;s=d?(JG(i[0],h)+JG(o[0],h))/2-JG(r[0],h):(i[0]+o[0])/2-r[0];const a=(i[1]+o[1])/2-r[1];p=s*s+a*a>this.errorThresholdSquared_}if(p){if(Math.abs(t[0]-n[0])<=Math.abs(t[1]-n[1])){const c=[(e[0]+n[0])/2,(e[1]+n[1])/2],u=this.transformInv_(c),h=[(r[0]+t[0])/2,(r[1]+t[1])/2],d=this.transformInv_(h);this.addQuad_(t,e,c,h,i,s,u,d,l-1),this.addQuad_(h,c,n,r,d,u,o,a,l-1)}else{const c=[(t[0]+e[0])/2,(t[1]+e[1])/2],u=this.transformInv_(c),h=[(n[0]+r[0])/2,(n[1]+r[1])/2],d=this.transformInv_(h);this.addQuad_(t,c,h,r,i,u,d,a,l-1),this.addQuad_(c,e,n,h,u,s,o,d,l-1)}return}}if(d){if(!this.canWrapXInSource_)return;this.wrapsXInSource_=!0}11&f||this.addTriangle_(t,n,r,i,o,a),14&f||this.addTriangle_(t,n,e,i,o,s),f&&(13&f||this.addTriangle_(e,r,t,s,a,i),7&f||this.addTriangle_(e,r,n,s,a,o))}calculateSourceExtent(){const t=[1/0,1/0,-1/0,-1/0];return this.triangles_.forEach(function(e){const n=e.source;wZ(t,n[0]),wZ(t,n[1]),wZ(t,n[2])}),t}getTriangles(){return this.triangles_}},Z7=class extends A7{constructor(t,e,n,r,i,s,o,a,l,c,u,h){super(i,0,h),this.renderEdges_=void 0!==u&&u,this.pixelRatio_=o,this.gutter_=a,this.canvas_=null,this.sourceTileGrid_=e,this.targetTileGrid_=r,this.wrappedTileCoord_=s||i,this.sourceTiles_=[],this.sourcesListenerKeys_=null,this.sourceZ_=0,this.clipExtent_=t.canWrapX()?t.getExtent():void 0;const d=r.getTileCoordExtent(this.wrappedTileCoord_),p=this.targetTileGrid_.getExtent();let f=this.sourceTileGrid_.getExtent();const g=p?MZ(d,p):d;if(0===SZ(g))return void(this.state=4);const m=t.getExtent();m&&(f=f?MZ(f,m):m);const y=r.getResolution(this.wrappedTileCoord_[0]),v=function(t,e,n,r){let i=W7(t,e,RZ(n),r);return(!isFinite(i)||i<=0)&&CZ(n,function(n){return i=W7(t,e,n,r),isFinite(i)&&i>0}),i}(t,n,g,y);if(!isFinite(v)||v<=0)return void(this.state=4);const b=void 0!==c?c:.5;if(this.triangulation_=new G7(t,n,g,f,v*b,y),0===this.triangulation_.getTriangles().length)return void(this.state=4);this.sourceZ_=e.getZForResolution(v);let w=this.triangulation_.calculateSourceExtent();if(f&&(t.canWrapX()?(w[1]=GG(w[1],f[1],f[3]),w[3]=GG(w[3],f[1],f[3])):w=MZ(w,f)),SZ(w)){let n=0,r=0;t.canWrapX()&&(n=FZ(m),r=Math.floor((w[0]-m[0])/n)),BZ(w.slice(),t,!0).forEach(t=>{const i=e.getTileRangeForExtentAndZ(t,this.sourceZ_);for(let e=i.minX;e<=i.maxX;e++)for(let t=i.minY;t<=i.maxY;t++){const i=r*n;this.sourceTiles_.push({getTile:()=>l(this.sourceZ_,e,t,o),offset:i})}++r}),0===this.sourceTiles_.length&&(this.state=4)}else this.state=4}getImage(){return this.canvas_}reproject_(){const t=[];if(this.sourceTiles_.forEach(e=>{const n=e.tile;if(n&&2==n.getState()){const r=this.sourceTileGrid_.getTileCoordExtent(n.tileCoord);r[0]+=e.offset,r[2]+=e.offset;const i=this.clipExtent_?.slice();i&&(i[0]+=e.offset,i[2]+=e.offset),t.push({extent:r,clipExtent:i,image:n.getImage()})}}),this.sourceTiles_.length=0,0===t.length)this.state=3;else{const e=this.wrappedTileCoord_[0],n=this.targetTileGrid_.getTileSize(e),r="number"==typeof n?n:n[0],i="number"==typeof n?n:n[1],s=this.targetTileGrid_.getResolution(e),o=this.sourceTileGrid_.getResolution(this.sourceZ_),a=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_);this.canvas_=H7(r,i,this.pixelRatio_,o,this.sourceTileGrid_.getExtent(),s,a,this.triangulation_,t,this.gutter_,this.renderEdges_,this.interpolate),this.state=2}this.changed()}load(){for(const t of this.sourceTiles_)t.tile=t.getTile();if(0==this.state){this.state=1,this.changed();let t=0;this.sourcesListenerKeys_=[],this.sourceTiles_.forEach(({tile:e})=>{const n=e.getState();if(0==n||1==n){t++;const n=qH(e,HH,()=>{const r=e.getState();2!=r&&3!=r&&4!=r||(WH(n),t--,0===t&&(this.unlistenSources_(),this.reproject_()))});this.sourcesListenerKeys_.push(n)}}),0===t?setTimeout(this.reproject_.bind(this),0):this.sourceTiles_.forEach(function({tile:t}){0==t.getState()&&t.load()})}}unlistenSources_(){this.sourcesListenerKeys_.forEach(WH),this.sourcesListenerKeys_=null}release(){this.canvas_&&(OX(this.canvas_.getContext("2d")),$7.push(this.canvas_),this.canvas_=null),this.sourceTiles_.length=0,super.release()}},K7=class{constructor(t){this.highWaterMark=void 0!==t?t:2048,this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null}deleteOldest(){const t=this.pop();t instanceof QH&&t.dispose()}canExpireCache(){return this.highWaterMark>0&&this.getCount()>this.highWaterMark}expireCache(t){for(;this.canExpireCache();)this.deleteOldest()}clear(){for(;this.oldest_;)this.deleteOldest()}containsKey(t){return this.entries_.hasOwnProperty(t)}forEach(t){let e=this.oldest_;for(;e;)t(e.value_,e.key_,this),e=e.newer}get(t,e){const n=this.entries_[t];return $G(void 0!==n,"Tried to get a value for a key that does not exist in the cache"),n===this.newest_||(n===this.oldest_?(this.oldest_=this.oldest_.newer,this.oldest_.older=null):(n.newer.older=n.older,n.older.newer=n.newer),n.newer=null,n.older=this.newest_,this.newest_.newer=n,this.newest_=n),n.value_}remove(t){const e=this.entries_[t];return $G(void 0!==e,"Tried to get a value for a key that does not exist in the cache"),e===this.newest_?(this.newest_=e.older,this.newest_&&(this.newest_.newer=null)):e===this.oldest_?(this.oldest_=e.newer,this.oldest_&&(this.oldest_.older=null)):(e.newer.older=e.older,e.older.newer=e.newer),delete this.entries_[t],--this.count_,e.value_}getCount(){return this.count_}getKeys(){const t=new Array(this.count_);let e,n=0;for(e=this.newest_;e;e=e.older)t[n++]=e.key_;return t}getValues(){const t=new Array(this.count_);let e,n=0;for(e=this.newest_;e;e=e.older)t[n++]=e.value_;return t}peekLast(){return this.oldest_.value_}peekLastKey(){return this.oldest_.key_}peekFirstKey(){return this.newest_.key_}peek(t){return this.entries_[t]?.value_}pop(){const t=this.oldest_;return delete this.entries_[t.key_],t.newer&&(t.newer.older=null),this.oldest_=t.newer,this.oldest_||(this.newest_=null),--this.count_,t.value_}replace(t,e){this.get(t),this.entries_[t].value_=e}set(t,e){$G(!(t in this.entries_),"Tried to set a value for a key that is used already");const n={key_:t,newer:null,older:this.newest_,value_:e};this.newest_?this.newest_.newer=n:this.oldest_=n,this.newest_=n,this.entries_[t]=n,++this.count_}setSize(t){this.highWaterMark=t}};function Y7(t,e,n,r){return void 0!==r?(r[0]=t,r[1]=e,r[2]=n,r):[t,e,n]}function X7(t,e,n,r,i){return`${mG(t)},${e},${function(t,e,n){return t+"/"+e+"/"+n}(n,r,i)}`}function J7(t,e,n){if(!(n in t))return t[n]=new Set([e]),!0;const r=t[n],i=r.has(e);return i||r.add(e),!i}function Q7(t,e,n){const r=t[n];return!!r&&r.delete(e)}function t9(t,e){const n=t.layerStatesArray[t.layerIndex];n.extent&&(e=MZ(e,cY(n.extent,t.viewState.projection)));const r=n.layer.getRenderSource();if(!r.getWrapX()){const n=r.getTileGridForProjection(t.viewState.projection).getExtent();n&&(e=MZ(e,n))}return e}var e9=class extends O3{constructor(t,e){super(t),e=e||{},this.extentChanged=!0,this.renderComplete=!1,this.renderedExtent_=null,this.renderedPixelRatio,this.renderedProjection=null,this.renderedTiles=[],this.renderedSourceRevision_,this.tempExtent=[1/0,1/0,-1/0,-1/0],this.tempTileRange_=new U7(0,0,0,0),this.tempTileCoord_=Y7(0,0,0);const n=void 0!==e.cacheSize?e.cacheSize:512;this.tileCache_=new K7(n),this.sourceTileCache_=null,this.layerExtent=null,this.maxStaleKeys=.5*n}getTileCache(){return this.tileCache_}getSourceTileCache(){return this.sourceTileCache_||(this.sourceTileCache_=new K7(512)),this.sourceTileCache_}getOrCreateTile(t,e,n,r){const i=this.tileCache_,s=this.getLayer().getSource(),o=X7(s,s.getKey(),t,e,n);let a;if(i.containsKey(o))a=i.get(o);else{const l=r.viewState.projection,c=s.getProjection();if(a=s.getTile(t,e,n,r.pixelRatio,l,!c||eY(c,l)?void 0:this.getSourceTileCache()),!a)return null;i.set(o,a)}return a}getTile(t,e,n,r){return this.getOrCreateTile(t,e,n,r)||null}getData(t){const e=this.frameState;if(!e)return null;const n=this.getLayer(),r=mY(e.pixelToCoordinateTransform,t.slice()),i=n.getExtent();if(i&&!uZ(i,r))return null;const s=e.viewState,o=n.getRenderSource(),a=o.getTileGridForProjection(s.projection),l=o.getTilePixelRatio(e.pixelRatio);for(let c=a.getZForResolution(s.resolution);c>=a.getMinZoom();--c){const t=a.getTileCoordForCoordAndZ(r,c),n=this.getTile(c,t[1],t[2],e);if(!n||2!==n.getState())continue;const i=a.getOrigin(c),u=PQ(a.getTileSize(c)),h=a.getResolution(c);let d;if(n instanceof j7||n instanceof Z7)d=n.getImage();else{if(!(n instanceof D7))continue;if(d=O7(n.getData()),!d)continue}const p=Math.floor(l*((r[0]-i[0])/h-t[1]*u[0])),f=Math.floor(l*((i[1]-r[1])/h-t[2]*u[1])),g=Math.round(l*o.getGutterForProjection(s.projection));return this.getImageData(d,p+g,f+g)}return null}prepareFrame(t){this.renderedProjection?t.viewState.projection!==this.renderedProjection&&(this.tileCache_.clear(),this.renderedProjection=t.viewState.projection):this.renderedProjection=t.viewState.projection;const e=this.getLayer().getSource();if(!e)return!1;const n=e.getRevision();return this.renderedSourceRevision_?this.renderedSourceRevision_!==n&&(this.renderedSourceRevision_=n,this.renderedSourceKey_===e.getKey()&&(this.tileCache_.clear(),this.sourceTileCache_?.clear())):this.renderedSourceRevision_=n,!0}enqueueTilesForNextExtent(){return!0}enqueueTiles(t,e,n,r,i){const s=t.viewState,o=this.getLayer(),a=o.getRenderSource(),l=a.getTileGridForProjection(s.projection),c=mG(a);c in t.wantedTiles||(t.wantedTiles[c]={});const u=t.wantedTiles[c],h=o.getMapInternal(),d=Math.max(n-i,l.getMinZoom(),l.getZForResolution(Math.min(o.getMaxResolution(),h?h.getView().getResolutionForZoom(Math.max(o.getMinZoom(),0)):l.getResolution(0)),a.zDirection)),p=s.rotation,f=p?IZ(s.center,s.resolution,p,t.size):void 0;for(let g=n;g>=d;--g){const n=l.getTileRangeForExtentAndZ(e,g,this.tempTileRange_),i=l.getResolution(g);for(let e=n.minX;e<=n.maxX;++e)for(let s=n.minY;s<=n.maxY;++s){if(p&&!l.tileCoordIntersectsViewport([g,e,s],f))continue;const n=this.getTile(g,e,s,t);if(!n)continue;if(!J7(r,n,g))continue;const o=n.getKey();if(u[o]=!0,0===n.getState()&&!t.tileQueue.isKeyQueued(o)){const r=Y7(g,e,s,this.tempTileCoord_);t.tileQueue.enqueue([n,c,l.getTileCoordCenter(r),i])}}}}findStaleTile_(t,e){const n=this.tileCache_,r=t[0],i=t[1],s=t[2],o=this.getStaleKeys();for(let a=0;a0&&setTimeout(()=>{this.enqueueTiles(t,x,h-1,w,_-1)},0),!(h in w))return this.container;const C=mG(this),S=t.time;for(const P of w[h]){const e=P.getState();if(4===e)continue;const n=P.tileCoord;if(2===e&&1===P.getAlpha(C,S)){P.endTransition(C);continue}if(3!==e&&(this.renderComplete=!1),this.findStaleTile_(n,w)){Q7(w,P,h),t.animate=!0;continue}if(this.findAltTiles_(u,n,h+1,w))continue;const r=u.getMinZoom();for(let t=h-1;t>=r&&!this.findAltTiles_(u,n,t,w);--t);}const k=d/s*a/f,E=this.getRenderContext(t);vY(this.tempTransform,g/2,m/2,k,k,0,-g/2,-m/2),this.layerExtent&&this.clipUnrotated(E,t,this.layerExtent),c.getInterpolate()||(E.imageSmoothingEnabled=!1),this.preRender(E,t);const R=Object.keys(w).map(Number);R.sort(tG);const T=[],L=[],I=[];for(let P=R.length-1;P>=0;--P){const e=R[P],n=c.getTilePixelSize(e,a,i),r=u.getResolution(e)/d,s=n[0]*r*k,o=n[1]*r*k,l=u.getTileCoordForCoordAndZ(OZ(b),e),p=u.getTileCoordExtent(l),g=mY(this.tempTransform,[f*(p[0]-b[0])/d,f*(b[3]-p[3])/d]),m=f*c.getGutterForProjection(i);for(const i of w[e]){if(2!==i.getState())continue;const n=i.tileCoord,r=l[1]-n[1],a=Math.round(g[0]-(r-1)*s),u=l[2]-n[2],d=Math.round(g[1]-(u-1)*o),p=Math.round(g[0]-r*s),f=Math.round(g[1]-u*o),y=a-p,v=d-f,b=e===h;if(b&&i.inTransition(C)){I.push({tile:i,x:p,y:f,w:y,h:v,gutter:m}),this.renderedTiles.unshift(i),this.updateUsedTiles(t.usedTiles,c,i);continue}const w=[p,f,p+y,f+v],_=[];for(let t=0,i=T.length;t0&&(x=$Z(w,_)),T.push(w),L.push(e),this.drawTile(i,t,p,f,y,v,m,b,x),this.renderedTiles.unshift(i),this.updateUsedTiles(t.usedTiles,c,i)}}for(let P=0,M=I.length;P{const n=mG(c),r=e.wantedTiles[n],i=r?Object.keys(r).length:0;this.updateCacheSize(i),this.tileCache_.expireCache(),this.sourceTileCache_?.expireCache()};t.postRenderFunctions.push(e)}return this.container}updateCacheSize(t){this.tileCache_.highWaterMark=Math.max(this.tileCache_.highWaterMark,2*t)}drawTile(t,e,n,r,i,s,o,a,l){let c;if(t instanceof D7){if(c=O7(t.getData()),!c)throw new Error("Rendering array data is not yet supported")}else c=this.getTileImage(t);if(!c)return;const u=this.getRenderContext(e),h=mG(this),d=e.layerStatesArray[e.layerIndex],p=d.opacity*(a?t.getAlpha(h,e.time):1),f=p!==u.globalAlpha;f&&(u.save(),u.globalAlpha=p);const g=c.width-2*o,m=c.height-2*o;if(l){const t=g/i,e=m/s;for(let i=0,s=l.length;it.value):null;let y;t:for(let v=p.length-1;v>=0;--v){const e=p[v];if(!zZ(l.getTileCoordExtent(e.wrappedTileCoord),u))continue;const r=e.executorGroups[f];for(let i=0,a=r.length;i{const n=this.getLayer(),r=n.getSource(),i=this.renderedProjection,s=i.getExtent(),o=this.renderedResolution,a=r.getTileGridForProjection(i),l=mY(this.renderedPixelToCoordinateTransform_,t.slice()),c=a.getTileCoordForCoordAndResolution(l,o).toString(),u=this.renderedTiles.find(t=>t.tileCoord.toString()===c&&2===t.getState());if(!u||u.loadingSourceTiles>0)return void e([]);r.getWrapX()&&i.canWrapX()&&!hZ(s,a.getTileCoordExtent(u.tileCoord))&&WZ(l,i);const h=mG(n),d=OZ(a.getTileCoordExtent(u.wrappedTileCoord)),p=[(l[0]-d[0])/o,(d[1]-l[1])/o],f=u.getSourceTiles().reduce((t,e)=>t.concat(e.getFeatures()),[]);let g=u.hitDetectionImageData[h];if(!g){const t=PQ(a.getTileSize(a.getZForResolution(o,r.zDirection))),e=this.renderedRotation_;g=C3(t,[this.getRenderTransform(a.getTileCoordCenter(u.wrappedTileCoord),o,0,x3,t[0]*x3,t[1]*x3,0)],f,n.getStyleFunction(),a.getTileCoordExtent(u.wrappedTileCoord),u.getReplayState(n).renderedResolution,e),u.hitDetectionImageData[h]=g}e(S3(p,f,g))})}getFeaturesInExtent(t){const e=[],n=this.getTileCache();if(0===n.getCount())return e;const r=this.getLayer().getSource().getTileGridForProjection(this.frameState.viewState.projection),i=r.getZForResolution(this.renderedResolution),s={};return n.forEach(n=>{if(n.tileCoord[0]!==i||2!==n.getState())return;const o=n.getSourceTiles();for(let i=0,a=o.length;i=0;--r)n[r].execute(this.context,o,this.getTileRenderTransform(e,t),t.viewState.rotation,s,g3,l)}n.globalAlpha=r}renderDeferredInternal(t){const e=this.renderedTiles,n=mG(this.getLayer()),r=e.reduce((t,e,r)=>(e.executorGroups[n].forEach(e=>t.push({executorGroup:e,index:r})),t),[]),i=r.map(({executorGroup:t})=>t.getDeferredZIndexContexts()),s={};for(let a=0,l=r.length;a{i.forEach((e,n)=>{e[t]&&(e[t].forEach(t=>{const{executorGroup:e,index:i}=r[n],s=e.getRenderedContext(),o=s.globalAlpha;s.globalAlpha=this.renderedOpacity_;const a=this.tileClipContexts_[i];a&&a.draw(s),t.draw(s),a&&s.restore(),s.globalAlpha=o,t.clear()}),e[t].length=0)})}),this.layerExtent&&this.context.restore()}getTileRenderTransform(t,e){const n=e.pixelRatio,r=e.viewState,i=r.center,s=r.resolution,o=r.rotation,a=e.size,l=Math.round(a[0]*n),c=Math.round(a[1]*n),u=this.getLayer().getSource().getTileGridForProjection(e.viewState.projection),h=t.tileCoord,d=u.getTileCoordExtent(t.wrappedTileCoord),p=u.getTileCoordExtent(h,this.tempExtent)[0]-d[0];return fY(yY(this.inversePixelTransform.slice(),1/n,1/n),this.getRenderTransform(i,s,o,n,l,c,p))}clipTileContext_(t,e,n,r,i,s){const o=[];for(let l=0,c=n.length;l!g3.includes(t)):a9[s],c=e.viewState,u=c.rotation;this.layerExtent&&this.clipUnrotated(t,e,this.layerExtent);const h=i.getSource(),d=h.getTileGridForProjection(c.projection).getZForResolution(c.resolution,h.zDirection),p=this.renderedTiles,f=[],g=[],m=[],y=mG(i);let v=!0;for(let b=p.length-1;b>=0;--b){const n=p[b];v=v&&!n.getReplayState(i).dirty;const s=n.executorGroups[y].filter(t=>t.hasExecutors(l));if(0===s.length)continue;const o=this.getTileRenderTransform(n,e),c=n.tileCoord[0];let h=!1;const w=s[0].getClipCoords(uY);let _,x=t;if(w){const t=[w[0],w[1],w[4],w[5]];_=new n3,x=_.getContext(),d!==c&&(h=this.clipTileContext_(x,t,f,g,c,o)),f.push(t),g.push(c)}for(let i=0,d=s.length;ivoid 0!==t)),this.minZoom=void 0!==e?e:0,this.resolutions_=n,$G(function(t){const e=((t,e)=>e-t)||tG;return t.every(function(n,r){if(0===r)return!0;const i=e(t[r-1],n);return!(i>0||0===i)})}(this.resolutions_),"`resolutions` must be sorted in descending order"),!t.origins)for(let s=0,o=this.resolutions_.length-1;s{const n=new U7(Math.min(0,t[0]),Math.max(t[0]-1,-1),Math.min(0,t[1]),Math.max(t[1]-1,-1));if(i){const t=this.getTileRangeForExtentAndZ(i,e);n.minX=Math.max(t.minX,n.minX),n.maxX=Math.min(t.maxX,n.maxX),n.minY=Math.max(t.minY,n.minY),n.maxY=Math.min(t.maxY,n.maxY)}return n}):i&&this.calculateTileRanges_(i)}forEachTileCoord(t,e,n){const r=this.getTileRangeForExtentAndZ(t,e);for(let i=r.minX,s=r.maxX;i<=s;++i)for(let t=r.minY,o=r.maxY;t<=o;++t)n([e,i,t])}forEachTileCoordParentTileRange(t,e,n,r){let i,s,o,a=null,l=t[0]-1;for(2===this.zoomFactor_?(s=t[1],o=t[2]):a=this.getTileCoordExtent(t,r);l>=this.minZoom;){if(void 0!==s&&void 0!==o?(s=Math.floor(s/2),o=Math.floor(o/2),i=B7(s,s,o,o,n)):i=this.getTileRangeForExtentAndZ(a,l,n),e(l,i))return!0;--l}return!1}getExtent(){return this.extent_}getMaxZoom(){return this.maxZoom}getMinZoom(){return this.minZoom}getOrigin(t){return this.origin_?this.origin_:this.origins_[t]}getOrigins(){return this.origins_}getResolution(t){return this.resolutions_[t]}getResolutions(){return this.resolutions_}getTileCoordChildTileRange(t,e,n){if(t[0]this.maxZoom||e0?r:Math.max(s/n[0],i/n[1]);const o=e+1,a=new Array(o);for(let l=0;ln||n>e.getMaxZoom())return!1;const s=e.getFullTileRange(n);return!s||s.containsXY(r,i)}(t,r)?t:null}clear(){}refresh(){this.clear(),super.refresh()}},C9=class extends hG{constructor(t,e){super(t),this.tile=e}},S9=class t extends x9{constructor(e){super({attributions:e.attributions,cacheSize:e.cacheSize,projection:e.projection,state:e.state,tileGrid:e.tileGrid,tilePixelRatio:e.tilePixelRatio,wrapX:e.wrapX,transition:e.transition,interpolate:e.interpolate,key:e.key,attributionsCollapsible:e.attributionsCollapsible,zDirection:e.zDirection}),this.generateTileUrlFunction_=this.tileUrlFunction===t.prototype.tileUrlFunction,this.tileLoadFunction=e.tileLoadFunction,e.tileUrlFunction&&(this.tileUrlFunction=e.tileUrlFunction),this.urls=null,e.urls?this.setUrls(e.urls):e.url&&this.setUrl(e.url),this.tileLoadingKeys_={}}getTileLoadFunction(){return this.tileLoadFunction}getTileUrlFunction(){return Object.getPrototypeOf(this).tileUrlFunction===this.tileUrlFunction?this.tileUrlFunction.bind(this):this.tileUrlFunction}getUrls(){return this.urls}handleTileChange(t){const e=t.target,n=mG(e),r=e.getState();let i;1==r?(this.tileLoadingKeys_[n]=!0,i="tileloadstart"):n in this.tileLoadingKeys_&&(delete this.tileLoadingKeys_[n],i=3==r?"tileloaderror":2==r?"tileloadend":void 0),null!=i&&this.dispatchEvent(new C9(i,e))}setTileLoadFunction(t){this.tileLoadFunction=t,this.changed()}setTileUrlFunction(t,e){this.tileUrlFunction=t,void 0!==e?this.setKey(e):this.changed()}setUrl(t){const e=function(t){const e=[];let n=/\{([a-z])-([a-z])\}/.exec(t);if(n){const r=n[1].charCodeAt(0),i=n[2].charCodeAt(0);let s;for(s=r;s<=i;++s)e.push(t.replace(n[0],String.fromCharCode(s)));return e}if(n=/\{(\d+)-(\d+)\}/.exec(t),n){const r=parseInt(n[2],10);for(let i=parseInt(n[1],10);i<=r;i++)e.push(t.replace(n[0],i.toString()));return e}return e.push(t),e}(t);this.urls=e,this.setUrls(e)}setUrls(t){this.urls=t;const e=t.join("\n");this.generateTileUrlFunction_?this.setTileUrlFunction(_9(t,this.tileGrid),e):this.setKey(e)}tileUrlFunction(t,e,n){}},k9=class extends S9{constructor(t){super({attributions:t.attributions,cacheSize:t.cacheSize,projection:t.projection,state:t.state,tileGrid:t.tileGrid,tileLoadFunction:t.tileLoadFunction?t.tileLoadFunction:E9,tilePixelRatio:t.tilePixelRatio,tileUrlFunction:t.tileUrlFunction,url:t.url,urls:t.urls,wrapX:t.wrapX,transition:t.transition,interpolate:void 0===t.interpolate||t.interpolate,key:t.key,attributionsCollapsible:t.attributionsCollapsible,zDirection:t.zDirection}),this.crossOrigin=void 0!==t.crossOrigin?t.crossOrigin:null,this.referrerPolicy=t.referrerPolicy,this.tileClass=void 0!==t.tileClass?t.tileClass:j7,this.tileGridForProjection={},this.reprojectionErrorThreshold_=t.reprojectionErrorThreshold,this.renderReprojectionEdges_=!1}getGutterForProjection(t){return this.getProjection()&&t&&!eY(this.getProjection(),t)?0:this.getGutter()}getGutter(){return 0}getKey(){let t=super.getKey();return this.getInterpolate()||(t+=":disable-interpolation"),t}getTileGridForProjection(t){const e=this.getProjection();if(this.tileGrid&&(!e||eY(e,t)))return this.tileGrid;const n=mG(t);return n in this.tileGridForProjection||(this.tileGridForProjection[n]=d9(t)),this.tileGridForProjection[n]}createTile_(t,e,n,r,i,s){const o=[t,e,n],a=this.getTileCoordForTileUrlFunction(o,i),l=a?this.tileUrlFunction(a,r,i):void 0,c=new this.tileClass(o,void 0!==l?0:4,void 0!==l?l:"",{crossOrigin:this.crossOrigin,referrerPolicy:this.referrerPolicy},this.tileLoadFunction,this.tileOptions);return c.key=s,c.addEventListener(HH,this.handleTileChange.bind(this)),c}getTile(t,e,n,r,i,s){const o=this.getProjection();if(!o||!i||eY(o,i))return this.getTileInternal(t,e,n,r,o||i);const a=[t,e,n],l=this.getKey(),c=this.getTileGridForProjection(o),u=this.getTileGridForProjection(i),h=this.getTileCoordForTileUrlFunction(a,i),d=new Z7(o,c,i,u,a,h,this.getTilePixelRatio(r),this.getGutter(),(t,e,n,r)=>this.getTileInternal(t,e,n,r,o,s),this.reprojectionErrorThreshold_,this.renderReprojectionEdges_,this.tileOptions);return d.key=l,d}getTileInternal(t,e,n,r,i,s){const o=this.getKey(),a=X7(this,o,t,e,n);if(s&&s.containsKey(a))return s.get(a);const l=this.createTile_(t,e,n,r,i,o);return s?.set(a,l),l}setRenderReprojectionEdges(t){this.renderReprojectionEdges_!=t&&(this.renderReprojectionEdges_=t,this.changed())}setTileGridForProjection(t,e){const n=KK(t);if(n){const t=mG(n);t in this.tileGridForProjection||(this.tileGridForProjection[t]=e)}}};function E9(t,e){if(LG){const n=t.getCrossOrigin();let r="same-origin",i="same-origin";"anonymous"===n||""===n?(r="cors",i="omit"):"use-credentials"===n&&(r="cors",i="include");const s={mode:r,credentials:i,referrerPolicy:t.getReferrerPolicy()};return void fetch(e,s).then(t=>{if(!t.ok)throw new Error(`HTTP ${t.status}`);return t.blob()}).then(t=>createImageBitmap(t)).then(e=>{const n=t.getImage();n.width=e.width,n.height=e.height,n.getContext("2d").drawImage(e,0,0),e.close?.(),n.dispatchEvent(new Event("load"))}).catch(()=>{t.getImage().dispatchEvent(new Event("error"))})}t.getImage().src=e}var R9=class extends k9{constructor(t){if(super({attributions:t.attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,projection:KK("EPSG:3857"),reprojectionErrorThreshold:t.reprojectionErrorThreshold,state:"loading",tileLoadFunction:t.tileLoadFunction,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,zDirection:t.zDirection}),this.tileJSON_=null,this.tileSize_=t.tileSize,t.url)if(t.jsonp)!function(t,e,n){const r=document.createElement("script"),i="olc_"+mG(e);function s(){delete window[i],r.parentNode.removeChild(r)}r.async=!0,r.src=t+(t.includes("?")?"&":"?")+"callback="+i;const o=setTimeout(function(){s(),n&&n()},1e4);window[i]=function(t){clearTimeout(o),s(),e(t)},document.head.appendChild(r)}(t.url,this.handleTileJSONResponse.bind(this),this.handleTileJSONError.bind(this));else{const e=new XMLHttpRequest;e.addEventListener("load",this.onXHRLoad_.bind(this)),e.addEventListener("error",this.onXHRError_.bind(this)),e.open("GET",t.url),e.send()}else{if(!t.tileJSON)throw new Error("Either `url` or `tileJSON` options must be provided");this.handleTileJSONResponse(t.tileJSON)}}onXHRLoad_(t){const e=t.target;if(!e.status||e.status>=200&&e.status<300){let t;try{t=JSON.parse(e.responseText)}catch{return void this.handleTileJSONError()}this.handleTileJSONResponse(t)}else this.handleTileJSONError()}onXHRError_(t){this.handleTileJSONError()}getTileJSON(){return this.tileJSON_}handleTileJSONResponse(t){const e=KK("EPSG:4326"),n=this.getProjection();let r;if(void 0!==t.bounds){const i=nY(e,n);r=jZ(t.bounds,i)}const i=g9(n),s=t.minzoom||0,o=p9({extent:i,maxZoom:t.maxzoom||22,minZoom:s,tileSize:this.tileSize_});if(this.tileGrid=o,this.tileUrlFunction=_9(t.tiles,o),t.attribution&&!this.getAttributions()){const e=void 0!==r?r:i;this.setAttributions(function(n){return zZ(e,n.extent)?[t.attribution]:null})}this.tileJSON_=t,this.setState("ready")}handleTileJSONError(){this.setState("error")}},T9=[],L9=class extends A7{constructor(t,e,n,r,i){super(t,e,{transition:0}),this.context_=null,this.executorGroups={},this.loadingSourceTiles=0,this.hitDetectionImageData={},this.replayState_={},this.sourceTiles=[],this.errorTileKeys={},this.wantedResolution,this.getSourceTiles=r.bind(void 0,this),this.removeSourceTiles_=i,this.wrappedTileCoord=n}getContext(){return this.context_||(this.context_=MX(1,1,T9)),this.context_}hasContext(){return!!this.context_}getImage(){return this.hasContext()?this.getContext().canvas:null}getReplayState(t){const e=mG(t);return e in this.replayState_||(this.replayState_[e]={dirty:!1,renderedRenderOrder:null,renderedResolution:NaN,renderedPixelRatio:NaN,renderedRevision:-1,renderedTileResolution:NaN,renderedTileRevision:-1,renderedTileZ:-1}),this.replayState_[e]}load(){this.getSourceTiles()}release(){this.context_&&(OX(this.context_),T9.push(this.context_.canvas),this.context_=null),this.removeSourceTiles_(this),this.sourceTiles.length=0,super.release()}},I9=class extends A7{constructor(t,e,n,r,i,s){super(t,e,s),this.extent=null,this.format_=r,this.features_=null,this.loader_,this.projection=null,this.resolution,this.tileLoadFunction_=i,this.url_=n,this.key=n}getTileUrl(){return this.url_}getFormat(){return this.format_}getFeatures(){return this.features_}load(){0==this.state&&(this.setState(1),this.tileLoadFunction_(this,this.url_),this.loader_&&this.loader_(this.extent,this.resolution,this.projection))}onLoad(t,e){this.setFeatures(t)}onError(){this.setState(3)}setFeatures(t){this.features_=t,this.setState(2)}setLoader(t){this.loader_=t}},P9=class extends S9{constructor(t){const e=t.projection||"EPSG:3857",n=t.extent||g9(e),r=t.tileGrid||p9({extent:n,maxResolution:t.maxResolution,maxZoom:void 0!==t.maxZoom?t.maxZoom:22,minZoom:t.minZoom,tileSize:t.tileSize||512});super({attributions:t.attributions,attributionsCollapsible:t.attributionsCollapsible,cacheSize:t.cacheSize,interpolate:!0,projection:e,state:t.state,tileGrid:r,tileLoadFunction:t.tileLoadFunction?t.tileLoadFunction:M9,tileUrlFunction:t.tileUrlFunction,url:t.url,urls:t.urls,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,zDirection:void 0===t.zDirection?1:t.zDirection}),this.format_=t.format?t.format:null,this.tileKeysBySourceTileUrl_={},this.sourceTiles_={},this.overlaps_=null==t.overlaps||t.overlaps,this.tileClass=t.tileClass?t.tileClass:I9,this.tileGrids_={}}getOverlaps(){return this.overlaps_}getSourceZ_(t,e,n){const r=this.projection,i=e&&r&&!eY(e,r)?t/r.getMetersPerUnit()*e.getMetersPerUnit():t;return this.tileGrid.getZForResolution(i,n)}getSourceTiles(t,e,n,r){if(0===n.getState()){n.setState(1);const i=n.wrappedTileCoord,s=this.getTileGridForProjection(e);let o=s.getTileCoordExtent(i);const a=i[0],l=s.getResolution(a);aZ(o,-l,o);const c=this.projection;e&&this.projection&&!eY(e,c)&&(o=oY(o,e,c));const u=this.tileGrid,h=u.getExtent();h&&MZ(o,h,o);const d=this.getSourceZ_(l,e,this.zDirection),p=r||this.tileUrlFunction;u.forEachTileCoord(o,d,r=>{const i=p(r,t,e);this.sourceTiles_[i]||(this.sourceTiles_[i]=new this.tileClass(r,i?0:4,i,this.format_,this.tileLoadFunction));const s=this.sourceTiles_[i];n.sourceTiles.push(s),this.tileKeysBySourceTileUrl_[i]||(this.tileKeysBySourceTileUrl_[i]=[]),this.tileKeysBySourceTileUrl_[i].push(n.getKey());const o=s.getState();if(o<2){const t=e=>{this.handleTileChange(e);const r=s.getState();if(2===r||3===r){const e=s.getKey();e in n.errorTileKeys?2===s.getState()&&delete n.errorTileKeys[e]:n.loadingSourceTiles--,3===r?n.errorTileKeys[e]=!0:s.removeEventListener(HH,t),0===n.loadingSourceTiles&&n.setState($H(n.errorTileKeys)?2:3)}};s.addEventListener(HH,t),n.loadingSourceTiles++}0===o&&(s.extent=u.getTileCoordExtent(r),s.projection=this.projection,s.resolution=u.getResolution(r[0]),s.load())}),n.loadingSourceTiles||n.setState(n.sourceTiles.some(t=>3===t.getState())?3:2)}return n.sourceTiles}removeSourceTiles(t){const e=t.getKey(),n=t.sourceTiles;for(let r=0,i=n.length;r{u=u&&!this.tileUrlFunction(t,r,l)})}const h=this.tileUrlFunction,d=new L9(s,u?4:0,o,t=>this.getSourceTiles(r,i,t,h),this.removeSourceTiles.bind(this));return d.key=this.getKey(),d}getTileGridForProjection(t){const e=t.getCode();let n=this.tileGrids_[e];if(!n){const r=this.projection;if(null!==r&&!eY(r,t))return d9(t);const i=this.tileGrid,s=i.getResolutions().slice(),o=s.map(function(t,e){return i.getOrigin(e)}),a=s.map(function(t,e){return i.getTileSize(e)}),l=43;for(let t=s.length;tF9.pitch||0],"distance-from-center":[{kind:"number"},[],()=>F9.distanceFromCenter||0],"to-hsla":[{kind:"array",itemType:{kind:"number"},N:4},[{kind:"string"}],(t,[e])=>function(t){const e=t[0]/255,n=t[1]/255,r=t[2]/255,i=t[3],s=Math.max(e,n,r),o=Math.min(e,n,r),a=(s+o)/2;let l,c;if(s===o)l=0,c=0;else{const t=s-o;switch(c=a>.5?t/(2-s-o):t/(s+o),s){case e:l=(n-r)/t+(ne.evaluate(t)],"measure-light":[{kind:"number"},[{kind:"value"}],()=>1],config:[{kind:"value"},[{kind:"string"}],(t,[e])=>{const n=N9[e.evaluate(t)];return void 0===n?{}:n}]});var z9="https://api.mapbox.com";function D9(t){return 0!==t.indexOf("mapbox://")?"":t.slice(9)}function j9(t,e,n){const r=D9(t);if(!e||!r)return decodeURI(new URL(t,n).href);if(0!==r.indexOf("sprites/"))throw new Error(`unexpected sprites url: ${t}`);const i=r.slice(8);return`${z9}/styles/v1/${i}/sprite?access_token=${e}`}function U9(t,e){const n=D9(t);if(!n||!e)return decodeURI(new URL(t,location.href).href);if(0!==n.indexOf("styles/"))throw new Error(`unexpected style url: ${t}`);const r=n.slice(7);return`${z9}/styles/v1/${r}?&access_token=${e}`}var B9=["a","b","c","d"];function $9(t,e,n,r){const i=new URL(t,r||location.href),s=D9(t);return s?"mapbox.satellite"===s?[`https://api.mapbox.com/v4/${s}/{z}/{x}/{y}${window.devicePixelRatio>=1.5?"@2x":""}.webp?access_token=${e}`]:B9.map(t=>`https://${t}.tiles.mapbox.com/v4/${s}/{z}/{x}/{y}.vector.pbf?access_token=${e}`):e?(i.searchParams.has(n)||i.searchParams.set(n,e),[decodeURI(i.href)]):[decodeURI(i.href)]}var q9=class extends O3{constructor(t){super(t),this.image=null,this.renderedSourceRevision_=0}getImage(){return this.image?this.image.getImage():null}prepareFrame(t){const e=t.layerStatesArray[t.layerIndex],n=t.pixelRatio,r=t.viewState,i=r.resolution,s=this.getLayer().getSource(),o=t.viewHints;let a=t.extent;if(void 0!==e.extent&&(a=MZ(a,cY(e.extent,r.projection))),!o[0]&&!o[1]&&!DZ(a))if(s){this.getLayer().rendered||this.renderedSourceRevision_===s.getRevision()||(this.image=null),this.renderedSourceRevision_=s.getRevision();const t=r.projection,e=s.getImage(a,i,n,t);e&&(this.loadImage(e)?this.image=e:4===e.getState()&&(this.image=null))}else this.image=null;return!!this.image}getData(t){const e=this.frameState;if(!e)return null;const n=this.getLayer(),r=mY(e.pixelToCoordinateTransform,t.slice()),i=n.getExtent();if(i&&!uZ(i,r))return null;const s=this.image.getExtent(),o=this.image.getImage(),a=FZ(s),l=Math.floor(o.width*((r[0]-s[0])/a));if(l<0||l>=o.width)return null;const c=PZ(s),u=Math.floor(o.height*((s[3]-r[1])/c));return u<0||u>=o.height?null:this.getImageData(o,l,u)}renderFrame(t,e){const n=this.image,r=n.getExtent(),i=n.getResolution(),[s,o]=Array.isArray(i)?i:[i,i],a=n.getPixelRatio(),l=t.layerStatesArray[t.layerIndex],c=t.pixelRatio,u=t.viewState,h=u.center,d=u.resolution,p=c*s/(d*a),f=c*o/(d*a);this.prepareContainer(t,e);const g=this.context.canvas.width,m=this.context.canvas.height,y=this.getRenderContext(t);let v=!1,b=!0;if(l.extent){const e=cY(l.extent,u.projection);b=zZ(e,t.extent),v=b&&!hZ(e,t.extent),v&&this.clipUnrotated(y,t,e)}const w=n.getImage(),_=vY(this.tempTransform,g/2,m/2,p,f,0,a*(r[0]-h[0])/s,a*(h[1]-r[3])/o);this.renderedResolution=o*c/a;const x=w.width*_[0],C=w.height*_[3];if(this.getLayer().getSource().getInterpolate()||(y.imageSmoothingEnabled=!1),this.preRender(y,t),b&&x>=.5&&C>=.5){const t=_[4],e=_[5],n=l.opacity;1!==n&&(y.save(),y.globalAlpha=n),y.drawImage(w,0,0,+w.width,+w.height,t,e,x,C),1!==n&&y.restore()}return this.postRender(this.context,t),v&&y.restore(),y.imageSmoothingEnabled=!0,this.container}},V9=class extends VJ{constructor(t){super(t=t||{})}},W9=class extends V9{constructor(t){super(t)}createRenderer(){return new q9(this)}getData(t){return super.getData(t)}},H9=class extends i1{constructor(t,e,n,r,i){super(t,e,n,void 0!==i?0:2),this.loader_=void 0!==i?i:null,this.canvas_=r,this.error_=null}getError(){return this.error_}handleLoad_(t){t?(this.error_=t,this.state=3):this.state=2,this.changed()}load(){0==this.state&&(this.state=1,this.changed(),this.loader_(this.handleLoad_.bind(this)))}getImage(){return this.canvas_}};function G9(t){return Array.isArray(t)?Math.min(...t):t}var Z9=class extends i1{constructor(t,e,n,r,i,s,o){let a=t.getExtent();a&&t.canWrapX()&&(a=a.slice(),a[0]=-1/0,a[2]=1/0);let l=e.getExtent();l&&e.canWrapX()&&(l=l.slice(),l[0]=-1/0,l[2]=1/0);const c=l?MZ(n,l):n,u=W7(t,e,RZ(c),r),h=new G7(t,e,c,a,.5*u,r),d=h.calculateSourceExtent(),p=DZ(d)?null:s(d,u,i),f=p?0:4,g=p?p.getPixelRatio():1;super(n,r,g,f),this.targetProj_=e,this.maxSourceExtent_=a,this.triangulation_=h,this.targetResolution_=r,this.targetExtent_=n,this.sourceImage_=p,this.sourcePixelRatio_=g,this.interpolate_=o,this.canvas_=null,this.sourceListenerKey_=null}disposeInternal(){1==this.state&&this.unlistenSource_(),super.disposeInternal()}getImage(){return this.canvas_}getProjection(){return this.targetProj_}reproject_(){const t=this.sourceImage_.getState();if(2==t){const t=FZ(this.targetExtent_)/this.targetResolution_,e=PZ(this.targetExtent_)/this.targetResolution_;this.canvas_=H7(t,e,this.sourcePixelRatio_,G9(this.sourceImage_.getResolution()),this.maxSourceExtent_,this.targetResolution_,this.targetExtent_,this.triangulation_,[{extent:this.sourceImage_.getExtent(),image:this.sourceImage_.getImage()}],0,void 0,this.interpolate_,!0)}this.state=t,this.changed()}load(){if(0==this.state){this.state=1,this.changed();const t=this.sourceImage_.getState();2==t||3==t?this.reproject_():(this.sourceListenerKey_=qH(this.sourceImage_,HH,()=>{const t=this.sourceImage_.getState();2!=t&&3!=t||(this.unlistenSource_(),this.reproject_())}),this.sourceImage_.load())}}unlistenSource_(){WH(this.sourceListenerKey_),this.sourceListenerKey_=null}},K9=class extends hG{constructor(t,e){super(t),this.image=e}},Y9=class extends V3{constructor(t){super({attributions:t.attributions,projection:t.projection,state:t.state,interpolate:void 0===t.interpolate||t.interpolate}),this.on,this.once,this.un,this.loader=t.loader||null,this.resolutions_=void 0!==t.resolutions?t.resolutions:null,this.reprojectedImage_=null,this.reprojectedRevision_=0,this.image=null,this.wantedExtent_,this.wantedResolution_,this.static_=!!t.loader&&0===t.loader.length,this.wantedProjection_=null}getResolutions(){return this.resolutions_}setResolutions(t){this.resolutions_=t}findNearestResolution(t){const e=this.getResolutions();return e&&(t=e[nG(e,t,0)]),t}getImage(t,e,n,r){const i=this.getProjection();if(!i||!r||eY(i,r))return i&&(r=i),this.getImageInternal(t,e,n,r);if(this.reprojectedImage_){if(this.reprojectedRevision_==this.getRevision()&&eY(this.reprojectedImage_.getProjection(),r)&&this.reprojectedImage_.getResolution()==e&&vZ(this.reprojectedImage_.getExtent(),t))return this.reprojectedImage_;this.reprojectedImage_.dispose(),this.reprojectedImage_=null}return this.reprojectedImage_=new Z9(i,r,t,e,n,(t,e,n)=>this.getImageInternal(t,e,n,i),this.getInterpolate()),this.reprojectedRevision_=this.getRevision(),this.reprojectedImage_}getImageInternal(t,e,n,r){if(this.loader){const i=function(t,e,n){const r=e/n,i=RZ(t),s=nZ(FZ(t)/r,4),o=nZ(PZ(t)/r,4);return LZ(i,r,0,[s+2*nZ(0*s/2,4),o+2*nZ(0*o/2,4)])}(t,e,n),s=this.findNearestResolution(e);if(this.image&&(this.static_||this.wantedProjection_===r&&(this.wantedExtent_&&hZ(this.wantedExtent_,i)||hZ(this.image.getExtent(),i))&&(this.wantedResolution_&&G9(this.wantedResolution_)===s||G9(this.image.getResolution())===s)))return this.image;this.wantedProjection_=r,this.wantedExtent_=i,this.wantedResolution_=s,this.image=new i1(i,s,n,this.loader),this.image.addEventListener(HH,this.handleImageChange.bind(this))}return this.image}handleImageChange(t){const e=t.target;let n;switch(e.getState()){case 1:this.loading=!0,n="imageloadstart";break;case 2:this.loading=!1,n="imageloadend";break;case 3:this.loading=!1,n="imageloaderror";break;default:return}this.hasListener(n)&&this.dispatchEvent(new K9(n,e))}};function X9(t){return function(e){const n=e.buffers,r=e.meta,i=e.imageOps,s=e.width,o=e.height,a=n.length,l=n[0].byteLength;if(i){const e=new Array(a);for(let t=0;tthis.maxQueueLength_;)this.queue_.shift().callback(null,null)}dispatch_(){if(this.running_||0===this.queue_.length)return;const t=this.queue_.shift();this.job_=t;const e=t.inputs[0].width,n=t.inputs[0].height,r=t.inputs.map(function(t){return t.data.buffer}),i=this.workers_.length;if(this.running_=i,1===i)return void this.workers_[0].postMessage({buffers:r,meta:t.meta,imageOps:this.imageOps_,width:e,height:n},r);const s=t.inputs[0].data.length,o=4*Math.ceil(s/4/i);for(let a=0;at*h/180),w=(e.altitudes||[45]).map(t=>t*h/180),_=Math.min(b.length,w.length,y.length,v.length,4),x=f<2?.4:f<4.5?.35:.3,C=f<15?Math.pow(2,(15-f)*x):1;function S(t,e="mapbox"){return"mapbox"===e?.1*(256*t[0]*256+256*t[1]+t[2])-1e4:"terrarium"===e?256*t[0]+t[1]+t[2]/256-32768:0}function k(t,e){return 0!==t?Math.atan2(e,-t):h/2*(e>0?1:-1)}const E="igor"===g?function(t,e){const n=k(t*=2*p,e*=2*p),r=b[0]+h,i=Math.atan(Math.sqrt(t*t+e*e))*(2/h);let s=(n+r)/h+.5;s%=2,s<0&&(s+=2);const o=1-Math.abs(s-1),a=i*o,l=i*(1-o),c=y[0],u=v[0];return[c.r*a+u.r*l,c.g*a+u.g*l,c.b*a+u.b*l,c.a*a+u.a*l]}:"basic"===g?function(t,e){t*=2*p,e*=2*p;const n=b[0]+h,r=Math.cos(n),i=Math.sin(n),s=Math.cos(w[0]),o=(Math.sin(w[0])-(e*r*s-t*i*s))/Math.sqrt(1+t*t+e*e),a=Math.max(0,Math.min(1,o));if(a>.5){const t=2*a-1,e=v[0];return[e.r*t,e.g*t,e.b*t,e.a*t]}const l=1-2*a,c=y[0];return[c.r*l,c.g*l,c.b*l,c.a*l]}:"combined"===g?function(t,e){t*=2*p,e*=2*p;const n=b[0]+h,r=Math.cos(n),i=Math.sin(n),s=Math.cos(w[0]),o=Math.sin(w[0]);let a=Math.acos((o-(e*r*s-t*i*s))/Math.sqrt(1+t*t+e*e));a=Math.max(0,Math.min(h/2,a));const l=Math.atan(Math.sqrt(t*t+e*e))*(4/h/h),c=a*l,u=(h/2-a)*l,d=y[0],f=v[0];return[d.r*c+f.r*u,d.g*c+f.g*u,d.b*c+f.b*u,d.a*c+f.a*u]}:"multidirectional"===g?function(t,e){const n=(t*=2*p)*t+(e*=2*p)*e,r=Math.sqrt(1+n);let i=0,s=0,o=0,a=0;for(let l=0;l<_;l++){const n=Math.cos(w[l]),c=(Math.sin(w[l])-(e*-Math.cos(b[l])*n-t*-Math.sin(b[l])*n))/r,u=Math.max(0,Math.min(1,c)),h=y[Math.min(l,y.length-1)],d=v[Math.min(l,v.length-1)];if(u>.5){const t=(2*u-1)/_;i+=d.r*t,s+=d.g*t,o+=d.b*t,a+=d.a*t}else{const t=(1-2*u)/_;i+=h.r*t,s+=h.g*t,o+=h.b*t,a+=h.a*t}}return[i,s,o,a]}:function(t,e){const n=b[0]+h,r=Math.atan(.625*Math.sqrt(t*t+e*e)),i=k(t,e),s=1.875-1.75*p,o=.5*h,a=.5!==p?(Math.pow(s,r)-1)/(Math.pow(s,o)-1)*o:r,l=Math.cos(a),c=Math.min(Math.max(2*p,0),1),u=(1-l)*c,d=m,f=d.r*u,g=d.g*u,w=d.b*u,_=d.a*u;let x=(i+n)/h+.5;x%=2,x<0&&(x+=2);const C=Math.abs(x-1),S=Math.sin(a)*c,E=y[0],R=v[0],T=(E.r*(1-C)+R.r*C)*S,L=(E.g*(1-C)+R.g*C)*S,I=(E.b*(1-C)+R.b*C)*S,P=(E.a*(1-C)+R.a*C)*S;return[f*(1-P)+T,g*(1-P)+L,w*(1-P)+I,_*(1-P)+P]};let R,T,L,I,P,M,A,O,N,F,z;for(T=0;T<=c;++T)for(P=0===T?0:T-1,M=T===c?c:T+1,R=0;R<=l;++R){L=0===R?0:R-1,I=R===l?l:R+1,A=4*(T*r+L),u[0]=s[A],u[1]=s[A+1],u[2]=s[A+2],u[3]=s[A+3],O=S(u,d),A=4*(T*r+I),u[0]=s[A],u[1]=s[A+1],u[2]=s[A+2],u[3]=s[A+3],N=S(u,d),F=(N-O)/a*C,A=4*(P*r+R),u[0]=s[A],u[1]=s[A+1],u[2]=s[A+2],u[3]=s[A+3],O=S(u,d),A=4*(M*r+R),u[0]=s[A],u[1]=s[A+1],u[2]=s[A+2],u[3]=s[A+3],N=S(u,d),z=(N-O)/a*C;const t=E(F,z),e=t[3];A=4*(T*r+R),e>0&&(o[A]=t[0]/e*255,o[A+1]=t[1]/e*255,o[A+2]=t[2]/e*255),o[A+3]=255*e}return new ImageData(o,r,i)}function ott(t,e){const n=t[0],r=n.width,i=n.height,s=n.data,o=new Uint8ClampedArray(s.length),a=r-1,l=i-1,c=[0,0,0,0];let u,h,d;const p=(f=e.saturation)>0?1-1/(1.001-f):-f;var f;const g=(m=e.contrast)>0?1/(1-m):1+m;var m;const y=function(t){t*=Math.PI/180;const e=Math.sin(t),n=Math.cos(t);return[(2*n+1)/3,(-Math.sqrt(3)*e-n+1)/3,(Math.sqrt(3)*e-n+1)/3]}(e.hueRotate),v=y,b=[y[2],y[0],y[1]],w=[y[1],y[2],y[0]],_=e.brightnessLow,x=e.brightnessHigh;for(h=0;h<=l;++h)for(u=0;u<=a;++u){d=4*(h*r+u),c[0]=s[d],c[1]=s[d+1],c[2]=s[d+2],c[3]=s[d+3];const t=c[0],e=c[1],n=c[2],i=(t,e)=>{let n=0;for(let r=0;r1?h[h.length-2].toLowerCase():"";if(d==p||d==p.replace("-","")||f+"-"+d==p){o=i?o:att[p],h.pop(),f&&p.startsWith(f)&&h.pop();break}}i||"number"!=typeof d||(o=d,i=!0);var g=h.join(ltt).replace("Klokantech Noto Sans","Noto Sans").replace("DIN Pro","Barlow").replace("Arial Unicode MS","Arial");-1!==g.indexOf(ltt)&&(g='"'+g+'"'),l.push(g)}r=utt[t]=[a,o,l]}return r[0]+ltt+r[1]+ltt+e+"px"+(n?"/"+n:"")+ltt+r[2]}var dtt=Object.freeze({}),ptt={},ftt={},gtt=0;function mtt(t){return t.id||(t.id=gtt++),t.id}function ytt(t){let e=ptt[t.id];return e||(e={},ptt[mtt(t)]=e),e}function vtt(t){return t*Math.PI/180}var btt=function(){const t=[];for(let e=78271.51696402048;t.length<=24;e/=2)t.push(e);return t}();function wtt(t,e){if("undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"undefined"!=typeof OffscreenCanvas)return new OffscreenCanvas(t,e);const n=document.createElement("canvas");return n.width=t,n.height=e,n}function _tt(t,e){let n=0;const r=e.length;for(;ni).then(t=>t instanceof Response?(r&&(r.url=t.url),o(t)):(t instanceof Request||(t=new Request(t)),t.headers.get("Accept")||t.headers.set("Accept","application/json"),r&&(r.url=t.url),fetch(t).then(o).catch(s))).catch(s);return Ctt[e]=[i,a],a}function ktt(t,e){if("string"!=typeof t)return Promise.resolve(t);if(!t.trim().startsWith("{"))return Stt("Style",t=U9(t,e.accessToken),e);try{const e=JSON.parse(t);return Promise.resolve(e)}catch(d8){return Promise.reject(d8)}}var Ett={};function Rtt(t,e,n={}){const r=[e,JSON.stringify(t)].toString();let i=Ett[r];if(!i||n.transformRequest){let s;n.transformRequest&&(s=(t,e)=>{const r=n.transformRequest&&n.transformRequest(e,"Tiles")||e;if(t instanceof I9)t.setLoader((e,n,i)=>{const s=function(n){n.arrayBuffer().then(n=>{const r=t.getFormat().readFeatures(n,{extent:e,featureProjection:i});t.setFeatures(r)})};uG(()=>r).then(e=>{if(e instanceof Response)return s(e);fetch(e).then(s).catch(()=>t.setState(3))}).catch(()=>t.setState(3))});else{const e=t.getImage();uG(()=>r).then(n=>{if("string"==typeof n)return void(e.src=n);const r=t=>t.blob().then(t=>{const n=URL.createObjectURL(t);e.addEventListener("load",()=>URL.revokeObjectURL(n)),e.addEventListener("error",()=>URL.revokeObjectURL(n)),e.src=n});if(n instanceof Response)return r(n);fetch(n).then(r).catch(()=>t.setState(3))}).catch(()=>t.setState(3))}});const o=t.url;if(o&&!t.tiles){const r=$9(o,n.accessToken,n.accessTokenParam||"access_token",e||location.href);if(o.startsWith("mapbox://"))i=Promise.resolve({tileJson:Object.assign({},t,{url:void 0,tiles:r}),tileLoadFunction:s});else{const t={};i=Stt("Source",r[0],n,t).then(function(e){return e.tiles=e.tiles.map(function(r){return"tms"===e.scheme&&(r=r.replace("{y}","{-y}")),$9(r,n.accessToken,n.accessTokenParam||"access_token",t.url)[0]}),Promise.resolve({tileJson:e,tileLoadFunction:s})})}}else t.tiles?(t=Object.assign({},t,{tiles:t.tiles.map(function(r){return"tms"===t.scheme&&(r=r.replace("{y}","{-y}")),$9(r,n.accessToken,n.accessTokenParam||"access_token",e||location.href)[0]})}),i=Promise.resolve({tileJson:Object.assign({},t),tileLoadFunction:s})):i=Promise.reject(new Error("source has no `tiles` nor `url`"));Ett[r]=i}return i}function Ttt(t,e,n,r){const i=[2*n*e.pixelRatio+e.width,2*n*e.pixelRatio+e.height],s=wtt(i[0],i[1]),o=s.getContext("2d");o.drawImage(t,e.x,e.y,e.width,e.height,n*e.pixelRatio,n*e.pixelRatio,e.width,e.height);const a=o.getImageData(0,0,i[0],i[1]);o.globalCompositeOperation="destination-over",o.fillStyle=`rgba(${255*r.r},${255*r.g},${255*r.b},${r.a})`;const l=a.data;for(let c=0,u=a.width;c0&&o.arc(c,t,n*e.pixelRatio,0,2*Math.PI);return o.fill(),s}function Ltt(t,e,n){const r=Math.max(0,Math.min(1,(n-t)/(e-t)));return r*r*(3-2*r)}function Itt(t,e,n){const r=wtt(e.width,e.height),i=r.getContext("2d");i.drawImage(t,e.x,e.y,e.width,e.height,0,0,e.width,e.height);const s=i.getImageData(0,0,e.width,e.height),o=s.data;for(let a=0,l=s.width;a0?(o[e+0]=Math.round(255*n.r*r),o[e+1]=Math.round(255*n.g*r),o[e+2]=Math.round(255*n.b*r),o[e+3]=Math.round(255*r)):o[e+3]=0}return i.putImageData(s,0,0),r}var Ptt,Mtt=Array(256).join(" ");function Att(t,e){if(e>=.05){let n="";const r=t.split("\n"),i=Mtt.slice(0,Math.round(e/.1));for(let t=0,e=r.length;t0&&(n+="\n"),n+=r[t].split("").join(i);return n}return t}function Ott(){return Ptt||(Ptt=wtt(1,1).getContext("2d")),Ptt}function Ntt(t,e){if(/\d+ \d+/.test(t)){const[n,r]=t.split(" ").map(Number);return n<=e&&e<=r}return t==e}function Ftt(t,e){return Ott().measureText(t).width+(t.length-1)*e}var ztt={};function Dtt(t,e,n,r){if(-1!==t.indexOf("\n")){const i=t.split("\n"),s=[];for(let t=0,o=i.length;t1){const t=Ott();t.font=e;const i=t.measureText("M").width*n;let a="";const l=[];for(let e=0,n=o.length;e1;++e){const t=l[e];if(Ftt(t,r)<.35*i){const i=e>0?Ftt(l[e-1],r):1/0,s=e.7*i&&Ftt(s,r)<.6*i){const o=t.split(" "),a=o.pop();Ftt(a,r)<.2*i&&(l[e]=o.join(" "),l[e+1]=a+" "+s),n-=1}}s=l.join("\n")}else s=t;s=Att(s,r),ztt[i]=s}return s}b1.on("propertychange",()=>{for(const t in ztt)delete ztt[t]});var jtt,Utt,Btt=["Arial","Courier New","Times New Roman","Verdana","sans-serif","serif","monospace","cursive","fantasy"],$tt={},qtt={Point:1,MultiPoint:1,LineString:2,MultiLineString:2,Polygon:3,MultiPolygon:3},Vtt={center:[.5,.5],left:[0,.5],right:[1,.5],top:[.5,0],bottom:[.5,1],"top-left":[0,0],"top-right":[1,0],"bottom-left":[0,1],"bottom-right":[1,1]},Wtt=function(t,e){let n=C8(t,e);if("error"===n.result){const r=O9(t);r!==t&&(n=C8(r,e))}if("error"===n.result){const r=n.value[0];return console.error("Error parsing expression:",t,r.key,r.message),{evaluate:()=>e.default}}return n.value};function Htt(t,e,n,r,i,s){const o=t.id;i||(i={},console.warn("No functionCache provided to getValue()")),i[o]||(i[o]={});const a=i[o];if(!a[n]){let r=(t[e]||dtt)[n];const i=C7[`${e}_${t.type}`]&&C7[`${e}_${t.type}`][n];void 0===r&&i&&(r=i.default);let s=b8(r);if(!s&&y8(r)&&(r=z8(r,i),s=!0),s){const t=Wtt(r,i);a[n]=t.evaluate.bind(t)}else{const t=i?i.type:typeof r;"color"!==t&&"colorArray"!==t||(r=w4.parse(r));let e=!1;if("array"===t)for(let n=0;n!0,needGeometry:!1,getGlobalStateRefs:()=>new Set};R8(t)||(t=P8(t));const e=w8(t,T8,void 0);if("error"===e.result)throw new Error(e.value.map(t=>`${t.key}: ${t.message}`).join(", "));return{filter:(t,n,r)=>e.value.evaluate(t,n,{},r),needGeometry:I8(t),getGlobalStateRefs:()=>k8(e.value.expression)}}(e).filter}catch(i){console.warn("Filter will evaluate to false: "+i.message),r[t]=function(){return!1}}return r[t](F9,n)}function Ktt(t,e){if(t){if(0===t.a||0===e)return;const n=t.a;return e=void 0===e?1:e,0===n?"transparent":"rgba("+Math.round(255*t.r/n)+","+Math.round(255*t.g/n)+","+Math.round(255*t.b/n)+","+n*e+")"}return t}var Ytt=/\{[^{}}]*\}/g;function Xtt(t,e){return t.replace(Ytt,function(t){return e[t.slice(1,-1)]||""})}function Jtt(t,e){let n=t.split(":")[0];return n===t&&(n="default"),e[n]}var Qtt={},tet=w4.parse("#000000"),eet=w4.parse("#FFFFFF"),net=w4.parse("#000000"),ret=["raster-saturation","raster-contrast","raster-brightness-max","raster-brightness-min","raster-hue-rotate"],iet=["background","circle","fill","fill-extrusion","line","symbol","raster","hillshade"];function set(t,e=512){return t.getExtent()?p9({extent:t.getExtent(),tileSize:e,maxZoom:22}).getResolutions():btt}function oet(t,e){return e.accessToken||(e=Object.assign({},e),new URL(t).searchParams.forEach((t,n)=>{e.accessToken=t,e.accessTokenParam=n})),e}var aet=["type","source","source-layer","minzoom","maxzoom","filter","layout"];function cet(t,e){if(!e.ref)return e;const n=t.find(t=>t.id===e.ref);if(!n)return e;const r=Object.assign({},e);for(const i of aet)!(i in r)&&i in n&&(r[i]=n[i]);return r}function uet(t,e,n){const r=new R9({tileJSON:e,tileSize:t.tileSize||e.tileSize||512}),i=r.getTileJSON(),s=r.getTileGrid(),o=KK(n.projection||"EPSG:3857"),a=function(t,e){const n=t.bounds;if(n){const t=QK([n[0],n[1]],e),r=QK([n[2],n[3]],e);return[t[0],t[1],r[0],r[1]]}return KK(e).getExtent()}(i,o),l=o.getExtent(),c=i.minzoom||0,u=i.maxzoom||22,h={attributions:r.getAttributions(),projection:o,tileGrid:new h9({origin:l?OZ(l):s.getOrigin(0),extent:a||s.getExtent(),minZoom:c,resolutions:set(o,e.tileSize).slice(0,u+1),tileSize:s.getTileSize(0)})};return Array.isArray(i.tiles)?h.urls=i.tiles:h.url=i.tiles,h}function het(t,e,n){return new Promise(function(r,i){Rtt(t,e,n).then(function({tileJson:e,tileLoadFunction:i}){const s=uet(t,e,n);s.tileLoadFunction=i,s.format=new T7({layerName:"mvt:layer"});const o=new P9(s);o.set("mapbox-source",t),r(o)}).catch(i)})}function det(t){return`{bbox-${(t?t.getCode():"EPSG:3857").toLowerCase().replace(/[^a-z0-9]/g,"-")}}`}function pet(t,e,n){const r=new s9;return function(t,e,n){return new Promise(function(r,i){Rtt(t,e,n).then(function({tileJson:e,tileLoadFunction:i}){const s=new R9({interpolate:void 0===n.interpolate||n.interpolate,transition:0,crossOrigin:"anonymous",tileJSON:e});s.tileGrid=uet(t,e,n).tileGrid,n.projection&&(s.projection=KK(n.projection));const o=s.getTileUrlFunction();i&&s.setTileLoadFunction(i),s.setTileUrlFunction(function(t,e,n){const r=det(n);let i=o(t,e,n);if(-1!=i.indexOf(r)){const e=s.getTileGrid().getTileCoordExtent(t);i=i.replace(r,e.toString())}return i}),s.set("mapbox-source",t),r(s)}).catch(function(t){i(t)})})}(t,e,n).then(function(t){r.setSource(t)}).catch(function(){r.setSource(void 0)}),r}function fet(t,e,n){const r=n.projection?new s5({dataProjection:n.projection}):new s5,i=t.data,s={};if("string"==typeof i){const[s]=$9(i,n.accessToken,n.accessTokenParam||"access_token",e||location.href);if(/\{bbox-[0-9a-z-]+\}/.test(s)){const e=(t,e,n)=>{const r=det(n);return s.replace(r,`${t.join(",")}`)},i=new K3({attributions:t.attribution,format:r,loader:(t,r,s,o,a)=>{Stt("GeoJSON","function"==typeof e?e(t,r,s):e,n).then(t=>{const e=i.getFormat().readFeatures(t,{featureProjection:s});i.addFeatures(e),o(e)}).catch(()=>{i.removeLoadedExtent(t),a()})},strategy:U3});return i.set("mapbox-source",t),i}const o=new K3({attributions:t.attribution,format:r,url:s,loader:(t,e,r,i,a)=>{Stt("GeoJSON",s,n).then(t=>{const e=o.getFormat().readFeatures(t,{featureProjection:r});o.addFeatures(e),i(e)}).catch(()=>{o.removeLoadedExtent(t),a()})}});return o}s.features=r.readFeatures(i,{featureProjection:"EPSG:3857"});const o=new K3(Object.assign({attributions:t.attribution,format:r},s));return o.set("mapbox-source",t),o}function get(t,e,n,r){n=cet(t.layers,n);const i=ytt(t),s=n.type;let o=n.source;const a=t.sources[o];let l;var c;return"background"==s?(l=function(t,e,n){const r=LG?{style:{}}:document.createElement("div");return r.className="ol-mapbox-style-background",r.style.position="absolute",r.style.width="100%",r.style.height="100%",new VJ({source:new V3({}),render(i){const s=function(t,e,n,r){const i={id:t.id,type:t.type},s=t.paint||{};let o;i.paint=s,F9.zoom=_tt(e,n.resolutions||btt),F9.distanceFromCenter=0;const a=Htt(i,"paint","background-color",dtt,r);return void 0!==s["background-opacity"]&&(o=Htt(i,"paint","background-opacity",dtt,r)),"none"===Htt(i,"layout","visibility",dtt,r)?void 0:Ktt(a,o)}(t,i.viewState.resolution,e,n);return r.style.backgroundColor=s,r}})}(n,r,i),o=void 0):"vector"==a.type?l=function(t,e,n){const r=new c9({declutter:!0,visible:!1});return het(t,e,n).then(function(t){r.setSource(t)}).catch(function(){r.setSource(void 0)}),r}(a,e,r):"raster"==a.type?(Object.keys(n.paint||{}).find(t=>ret.includes(t))?(c=pet(a,e,r),l=new W9({source:new ett({operationType:"image",operation:ott,sources:[c]})}),function(t,e,n,r){t.getSource().on("beforeoperations",function(t){F9.zoom=_tt(t.resolution,n.resolutions||btt),F9.distanceFromCenter=0;const i=t.data;i.saturation=Htt(e,"paint","raster-saturation",dtt,r),i.contrast=Htt(e,"paint","raster-contrast",dtt,r),i.brightnessHigh=Htt(e,"paint","raster-brightness-max",dtt,r),i.brightnessLow=Htt(e,"paint","raster-brightness-min",dtt,r),i.hueRotate=Htt(e,"paint","raster-hue-rotate",dtt,r)})}(l,n,r,i)):l=pet(a,e,r),l.setVisible(!n.layout||"none"!==Htt(n,"layout","visibility",dtt,i)),l.on("prerender",function(t,e,n){let r=null;return function(i){t.paint&&"raster-opacity"in t.paint&&i.frameState.viewState.zoom!==r&&(r=i.frameState.viewState.zoom,delete n[t.id],function(t,e,n,r){F9.zoom=n,F9.distanceFromCenter=0;const i=Htt(t,"paint","raster-opacity",dtt,r);e.setOpacity(i)}(t,e,r,n))}}(n,l,i))):"geojson"==a.type?l=function(t,e,n){return new F3({declutter:!0,source:fet(t,e,n),visible:!1})}(a,e,r):"raster-dem"==a.type&&"hillshade"==n.type&&(l=function(t){return new W9({source:new ett({operationType:"image",operation:stt,sources:[t]})})}(pet(a,e,r)),function(t,e,n,r,i){t.getSource().on("beforeoperations",function(t){const s=t.data;s.resolution=YK(r.projection||"EPSG:3857",t.resolution,RZ(t.extent),"m");const o=_tt(t.resolution,r.resolutions||btt);F9.zoom=o,F9.distanceFromCenter=0,s.zoom=o,s.encoding=e.encoding,s.method=Htt(n,"paint","hillshade-method",dtt,i)||"standard",s.exaggeration=Htt(n,"paint","hillshade-exaggeration",dtt,i);let a=Htt(n,"paint","hillshade-illumination-direction",dtt,i);null==a&&(a=335),s.azimuths=Array.isArray(a)?a:[a],s.sunAz=s.azimuths[0];let l=Htt(n,"paint","hillshade-illumination-altitude",dtt,i);function c(t){return t&&t.values?t.values[0]:t}function u(t){const e=n.paint?.[t];if(Array.isArray(e)&&e.length>0&&"string"==typeof e[0]&&void 0!==w4.parse(e[0]))return e.map(t=>w4.parse(t));let r=Htt(n,"paint",t,dtt,i);return r=c(r),r?[r]:void 0}null==l&&(l=45),s.altitudes=Array.isArray(l)?l:[l],s.highlightColors=u("hillshade-highlight-color"),s.highlightColor=s.highlightColors?.[0]||eet,s.highlightColors||(s.highlightColors=[s.highlightColor]),s.shadowColors=u("hillshade-shadow-color"),s.shadowColor=s.shadowColors?.[0]||tet,s.shadowColors||(s.shadowColors=[s.shadowColor]),s.accentColor=c(Htt(n,"paint","hillshade-accent-color",dtt,i))||net})}(l,a,n,r,i),l.setVisible(!n.layout||"none"!==Htt(n,"layout","visibility",dtt,i))),l&&l.set("mapbox-source",o),l}function met(t,e,n,r){t.schema&&Object.assign(N9,Object.keys(t.schema).reduce((e,n)=>(e[n]=t.schema[n]?.default,e),{}));const i=[];let s=null;if(e instanceof b2){if(s=e.getView(),!s.isDef()&&!s.getRotation()&&!s.getResolutions()){const t=r.projection?KK(r.projection):s.getProjection();s=new bX(Object.assign(s.getProperties(),{maxResolution:btt[0]/QZ[t.getUnits()],projection:r.projection||s.getProjection()})),e.setView(s)}"center"in t&&!s.getCenter()&&s.setCenter(QK(t.center,s.getProjection())),"zoom"in t&&void 0===s.getZoom()&&s.setResolution(btt[0]/QZ[s.getProjection().getUnits()]/Math.pow(2,t.zoom)),s.getCenter()&&void 0!==s.getZoom()||s.fit(s.getProjection().getExtent(),{nearest:!0,size:e.getSize()})}e.set("mapbox-style",t),e.set("mapbox-metadata",{styleUrl:n,options:r});const o=t.layers;let a,l,c,u=[];for(let h=0,d=o.length;h0||n>0)&&t.setMaxResolution(Math.min(xtt(Math.max(0,o-1e-12),btt),xtt(Math.max(0,n-1e-12),e.getResolutions()))),a<24&&t.setMinResolution(xtt(a,btt))}}else o>0&&t.setMaxResolution(xtt(Math.max(0,o-1e-12),btt));u instanceof K3||u instanceof P9?function(t,e,n="",r={},i){let s,o,a,l,c=!0;return"string"==typeof n||Array.isArray(n)?l=n:(a=n,l=a.source||a.layers,r=a),"string"==typeof r?(s=r,a={}):(s=r.styleUrl,a=r),!1===a.updateSource&&(c=!1),i||(i=a.resolutions),s||"string"!=typeof e||e.trim().startsWith("{")||(s=e),s&&(s=s.startsWith("data:")?location.href:U9(s,a.accessToken),a=oet(s,a)),new Promise(function(n,r){ktt(e,a).then(function(e){if(8!=e.version)return r(new Error("glStyle version 8 required."));if(!(t instanceof F3||t instanceof c9))return r(new Error("Can only apply to VectorLayer or VectorTileLayer"));const u=t instanceof c9?"vector":"geojson";if(l?o=Array.isArray(l)?e.layers.find(function(t){return t.id===l[0]}).source:l:(o=e.layers.find(function(t){return t.source&&e.sources[t.source].type===u}).source,l=o),!o)return r(new Error(`No ${u} source found in the glStyle.`));function h(){if(!c)return Promise.resolve();if(t instanceof c9)return het(e.sources[o],s,a).then(function(e){const n=t.getSource();n?e!==n&&(n.setTileUrlFunction(e.getTileUrlFunction()),"function"==typeof n.setUrls&&"function"==typeof e.getUrls&&n.setUrls(e.getUrls()),n.format_||(n.format_=e.format_),n.getAttributions()||n.setAttributions(e.getAttributions()),n.getTileLoadFunction()===M9&&n.setTileLoadFunction(e.getTileLoadFunction()),eY(n.getProjection(),e.getProjection())&&(n.tileGrid=e.getTileGrid())):t.setSource(e);const r=t.getSource().getTileGrid();!isFinite(t.getMaxResolution())&&!isFinite(t.getMinZoom())&&r.getMinZoom()>0&&t.setMaxResolution(xtt(Math.max(0,r.getMinZoom()-1e-12),r.getResolutions()))});const n=e.sources[o];let r=t.getSource();r&&r.get("mapbox-source")===n||(r=fet(n,s,a));const i=t.getSource();return i?r!==i&&(i.getAttributions()||i.setAttributions(r.getAttributions()),i.format_||(i.format_=r.getFormat()),i.url_=r.getUrl()):t.setSource(r),Promise.resolve()}let d,p;const f={},g={};function m(){if(p||e.sprite&&!f)p?(t.setStyle(p),h().then(n).catch(r)):r(new Error("Something went wrong trying to apply style."));else{if(a.projection&&!i){const t=KK(a.projection).getUnits();"m"!==t&&(i=btt.map(e=>e/QZ[t]))}let s;const c=t.getSource();c instanceof P9&&c.format_ instanceof T7&&(s=c.format_.layerName_),p=function(t,e,n,r=btt,i,s,o,a){if("string"==typeof e&&(e=JSON.parse(e)),e.schema)for(const b in e.schema){const t=e.schema[b];"default"in t&&(N9[b]=t.default)}if(8!=e.version)throw new Error("glStyle version 8 required.");Qtt[function(t,e){return mtt(t)+"."+mG(e)}(e,t)]=Array.from(arguments);const l={};("string"==typeof s||s instanceof Request||s instanceof Response||s instanceof Promise)&&(s={default:s});for(const b in s){const e=s[b];uG(()=>e).then(async e=>{let n;if("undefined"!=typeof Image){const r=new Image;if("string"==typeof e)r.crossOrigin="anonymous",r.src=e;else{let t;e instanceof Request?t=await fetch(e):e instanceof Response&&(t=e);const i=await t.blob();n=URL.createObjectURL(i),r.src=n}r.addEventListener("load",function e(){r.removeEventListener("load",e),l[b]={image:r,size:[r.width,r.height]},t.changed(),n&&URL.revokeObjectURL(n)}),r.addEventListener("error",function t(){URL.revokeObjectURL(n),r.removeEventListener("error",t)})}else if("undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope){const t=self;t.postMessage({action:"loadImage",src:e}),t.addEventListener("message",function(t){"imageLoaded"===t.data.action&&t.data.src===e&&(l[b]={image:t.data.image,size:[t.data.image.width,t.data.image.height]})})}})}const c=C5(e.layers),u={},h=[],d={},p={},f=ytt(e),g=function(t){let e=ftt[t.id];return e||(e={},ftt[mtt(t)]=e),e}(e);let m;for(let b=0,w=c.length;b=h.maxzoom)continue;const S=h.filter;if(!S||Ztt(w,S,k,g)){let r,c,g,v,b,w;R=h;const S=u.index;if(3==_&&("fill"==h.type||"fill-extrusion"==h.type))if(c=Htt(h,"paint",h.type+"-opacity",k,f,E),h.type+"-pattern"in C){const t=Htt(h,"paint",h.type+"-pattern",k,f,E);if(t){const e="string"==typeof t?Xtt(t,m):t.toString(),n=Jtt(e,l);if(i&&i[e]&&n){++T,w=y[T],w&&w.getFill()&&!w.getStroke()&&!w.getText()||(w=new F1({fill:new M1}),y[T]=w),g=w.getFill(),w.setZIndex(S);const t=e+"."+c;let r=p[t];if(!r){const s=i[e],o=wtt(s.width,s.height),a=o.getContext("2d");a.globalAlpha=c,a.drawImage(n.image,s.x,s.y,s.width,s.height,0,0,s.width,s.height),r=a.createPattern(o,"repeat"),p[t]=r}g.setColor(r)}}}else if(r=Ktt(Htt(h,"paint",h.type+"-color",k,f,E),c),h.type+"-outline-color"in C&&(b=Ktt(Htt(h,"paint",h.type+"-outline-color",k,f,E),c)),b||(b=r),r||b){if(++T,w=y[T],(!w||r&&!w.getFill()||!r&&w.getFill()||b&&!w.getStroke()||!b&&w.getStroke()||w.getText())&&(w=new F1({fill:r?new M1:void 0,stroke:b?new N1:void 0}),y[T]=w),r&&(g=w.getFill(),g.setColor(r)),"fill-extrusion"===h.type){const t=Htt(h,"paint","fill-extrusion-height",k,f,E);if(t>0){const e=Math.max(.1,.9-Math.min(t,225)/280);if(b&&"transparent"!==b){const t=w4.parse(b);b=`rgba(${Math.round(255*t.r*e)},${Math.round(255*t.g*e)},${Math.round(255*t.b*e)},${t.a})`}}}b&&(v=w.getStroke(),v.setColor(b),v.setWidth(.5)),w.setZIndex(S)}if(1!=_&&"line"==h.type){r="line-pattern"in C?void 0:Ktt(Htt(h,"paint","line-color",k,f,E),Htt(h,"paint","line-opacity",k,f,E));const t=Htt(h,"paint","line-width",k,f,E);r&&t>0&&(++T,w=y[T],w&&w.getStroke()&&!w.getFill()&&!w.getText()||(w=new F1({stroke:new N1}),y[T]=w),v=w.getStroke(),v.setLineCap(Htt(h,"layout","line-cap",k,f,E)),v.setLineJoin(Htt(h,"layout","line-join",k,f,E)),v.setMiterLimit(Htt(h,"layout","line-miter-limit",k,f,E)),v.setColor(r),v.setWidth(t),v.setLineDash(C["line-dasharray"]?Htt(h,"paint","line-dasharray",k,f,E).map(function(e){return e*t}):null),"function"==typeof v.setOffset&&v.setOffset(Htt(h,"paint","line-offset",k,f,E)),w.setZIndex(S))}let L,I,P,M,A,O,N,F,z,D=!1,j=null,U=0;if((1==_||2==_)&&"icon-image"in x){const e=Htt(h,"layout","icon-image",k,f,E);if(e){let r;L="string"==typeof e?Xtt(e,m):e.toString();const o=a?a(t,L):void 0,c=Jtt(L,l);if(i&&i[L]&&c||o){const t=Htt(h,"layout","icon-rotation-alignment",k,f,E);if(2==_){const e=n.getGeometry();if(e.getFlatMidpoint||e.getFlatMidpoints){const n=e.getExtent();if(Math.sqrt(Math.max(Math.pow((n[2]-n[0])/s,2),Math.pow((n[3]-n[1])/s,2)))>150){const n="MultiLineString"===e.getType()?e.getFlatMidpoints():e.getFlatMidpoint();if(Utt||(Utt=new $3("Point",jtt=[NaN,NaN],[],2,{},void 0)),r=Utt,jtt[0]=n[0],jtt[1]=n[1],"line"===Htt(h,"layout","symbol-placement",k,f,E)&&"map"===t){const t=e.getStride(),r=e.getFlatCoordinates();for(let e=0,i=r.length-t;e=l){U=Math.atan2(s-a,o-i);break}}}}}}if(2!==_||r){const e=Htt(h,"layout","icon-size",k,f,E),n=void 0!==C["icon-color"]?Htt(h,"paint","icon-color",k,f,E):null;if(!n||0!==n.a){const r=Htt(h,"paint","icon-halo-color",k,f,E),s=Htt(h,"paint","icon-halo-width",k,f,E);let a=`${L}.${e}.${s}.${r}`;if(null!==n&&(a+=`.${n}`),I=d[a],!I){const l=Gtt(h,k,"icon",f);let u;"icon-offset"in x&&(u=Htt(h,"layout","icon-offset",k,f,E).slice(0),u[0]*=e,u[1]*=-e);let p=n?[255*n.r,255*n.g,255*n.b,n.a]:void 0;if(o){const n={color:p,rotateWithView:"map"===t,displacement:u,declutterMode:l,scale:e};"string"==typeof o?n.src=o:(n.img=o,n.imgSize=[o.width,o.height]),I=new O1(n)}else{const o=i[L];let a,h,d;s?o.sdf?(a=Ttt(Itt(c.image,o,n||[0,0,0,1]),{x:0,y:0,width:o.width,height:o.height,pixelRatio:o.pixelRatio},s,r),p=void 0):a=Ttt(c.image,o,s,r):(o.sdf&&(c.unSDFed||(c.image=Itt(c.image,{x:0,y:0,width:c.size[0],height:c.size[1]},{r:1,g:1,b:1,a:1}),c.unSDFed=!0)),a=c.image,h=[o.width,o.height],d=[o.x,o.y]),I=new O1({color:p,img:a,imgSize:c.size,size:h,offset:d,rotateWithView:"map"===t,scale:e/o.pixelRatio,displacement:u,declutterMode:l})}d[a]=I}}I&&(++T,w=y[T],w&&w.getImage()&&!w.getFill()&&!w.getStroke()||(w=new F1,y[T]=w),w.setGeometry(r),I.setRotation(U+vtt(Htt(h,"layout","icon-rotate",k,f,E))),I.setOpacity(Htt(h,"paint","icon-opacity",k,f,E)),I.setAnchor(Vtt[Htt(h,"layout","icon-anchor",k,f,E)]),w.setImage(I),j=w.getText(),w.setText(void 0),w.setZIndex(S),D=!0,P=!1)}else P=!0}}}if(1==_&&"circle"===h.type){++T,w=y[T],w&&w.getImage()&&!w.getFill()&&!w.getStroke()||(w=new F1,y[T]=w);const t="circle-radius"in C?Htt(h,"paint","circle-radius",k,f,E):5,e=Ktt(Htt(h,"paint","circle-stroke-color",k,f,E),Htt(h,"paint","circle-stroke-opacity",k,f,E)),n=Htt(h,"paint","circle-translate",k,f,E),r=Ktt(Htt(h,"paint","circle-color",k,f,E),Htt(h,"paint","circle-opacity",k,f,E)),i=Htt(h,"paint","circle-stroke-width",k,f,E),s=t+"."+e+"."+r+"."+i+"."+n[0]+"."+n[1];I=d[s],I||(I=new P1({radius:t,displacement:[n[0],-n[1]],stroke:e&&i>0?new N1({width:i,color:e}):void 0,fill:r?new M1({color:r}):void 0,declutterMode:"none"}),d[s]=I),w.setImage(I),j=w.getText(),w.setText(void 0),w.setGeometry(void 0),w.setZIndex(S),D=!0}if("text-field"in x){N=Math.round(Htt(h,"layout","text-size",k,f,E));const t=Htt(h,"layout","text-font",k,f,E);O=Htt(h,"layout","text-line-height",k,f,E),A=htt(o?o(t,e.metadata?e.metadata["ol:webfonts"]:void 0):t,N,O),A.includes("sans-serif")||(A+=",sans-serif"),F=Htt(h,"layout","text-letter-spacing",k,f,E),z=Htt(h,"layout","text-max-width",k,f,E);const n=Htt(h,"layout","text-field",k,f,E);M="object"==typeof n&&n.sections?1===n.sections.length?n.toString():n.sections.reduce((e,n)=>{const r=n.fontStack?n.fontStack.split(","):t,i=htt(o?o(r):r,N*(n.scale||1),O);let s=n.text;if("\n"===s)return e.push("\n",""),e;if(2==_)return e.push(Att(s,F),i),e;s=Dtt(s,i,z,F).split("\n");for(let t=0,o=s.length;t0&&e.push("\n",""),e.push(s[t],i);return e},[]):Xtt(n,m).trim(),c=Htt(h,"paint","text-opacity",k,f,E)}if(M&&c&&!P){D||(++T,w=y[T],w&&w.getText()&&!w.getFill()&&!w.getStroke()||(w=new F1,y[T]=w),w.setImage(void 0),w.setGeometry(void 0));const t=Gtt(h,k,"text",f);w.getText()||w.setText(j),j=w.getText(),(!j||"getDeclutterMode"in j&&j.getDeclutterMode()!==t)&&(j=new U1({padding:[2,2,2,2],declutterMode:t}),w.setText(j));const e=Htt(h,"layout","text-transform",k,f,E);"uppercase"==e?M=Array.isArray(M)?M.map((t,e)=>e%2?t:t.toUpperCase()):M.toUpperCase():"lowercase"==e&&(M=Array.isArray(M)?M.map((t,e)=>e%2?t:t.toLowerCase()):M.toLowerCase());const n=Array.isArray(M)?M:2==_?Att(M,F):Dtt(M,A,z,F);if(j.setText(n),j.setFont(A),j.setRotation(vtt(Htt(h,"layout","text-rotate",k,f,E))),"function"==typeof j.setKeepUpright){const t=Htt(h,"layout","text-keep-upright",k,f,E);j.setKeepUpright(t)}const r=Htt(h,"layout","text-anchor",k,f,E),i=D||1==_?"point":Htt(h,"layout","symbol-placement",k,f,E);let s;if("line-center"===i?(j.setPlacement("line"),s="center"):j.setPlacement(i),"line"===i&&"function"==typeof j.setRepeat){const t=Htt(h,"layout","symbol-spacing",k,f,E);j.setRepeat(2*t)}j.setOverflow("point"===i);let o=Htt(h,"paint","text-halo-width",k,f,E);const a=Htt(h,"layout","text-offset",k,f,E),l=Htt(h,"paint","text-translate",k,f,E);let u=0,d=0;if("point"==i){s="center",-1!==r.indexOf("left")?(s="left",d=o):-1!==r.indexOf("right")&&(s="right",d=-o);const t=Htt(h,"layout","text-rotation-alignment",k,f,E);j.setRotateWithView("map"==t)}else j.setMaxAngle(vtt(Htt(h,"layout","text-max-angle",k,f,E))*M.length/n.length),j.setRotateWithView(!1);j.setTextAlign(s);let p="middle";0==r.indexOf("bottom")?(p="bottom",u=-o-.5*(O-1)*N):0==r.indexOf("top")&&(p="top",u=o+.5*(O-1)*N),j.setTextBaseline(p);const g=Htt(h,"layout","text-justify",k,f,E);j.setJustify("auto"===g?void 0:g),j.setOffsetX(a[0]*N+d+l[0]),j.setOffsetY(a[1]*N+u+l[1]);const m=j.getFill()||new M1;m.setColor(Ktt(Htt(h,"paint","text-color",k,f,E),c)),j.setFill(m);const v=Ktt(Htt(h,"paint","text-halo-color",k,f,E),c);if(v&&o>0){const t=j.getStroke()||new N1;t.setColor(v),o*=2;const e=.5*N;t.setWidth(o<=e?o:e),j.setStroke(t)}else j.setStroke(void 0);const b=Htt(h,"layout","text-padding",k,f,E),x=j.getPadding();b!==x[0]&&(x[0]=b,x[1]=b,x[2]=b,x[3]=b),w.setZIndex(S)}}}return T>-1?(y.length=T+1,y):void 0};return t.setStyle(v),t.set("mapbox-layers",h),t.set("mapbox-source",m),t.set("mapbox-featurestate",t.get("mapbox-featurestate")||{}),v}(t,e,l,i,f,g,(t,e=a.webfonts)=>function(t,e="https://cdn.jsdelivr.net/npm/@fontsource/{font-family}/{fontweight}{-fontstyle}.css"){if(LG)return t;let n;for(let r=0,i=t.length;r{await document.fonts.ready;for(let t=0,r=n.length;tt.family.replace(/^['"]|['"]$/g,"").toLowerCase()===i.toLowerCase()&&Ntt(t.weight,s)&&t.style===o)){const t=e.replace("{font-family}",i.replace(/ /g,"-").toLowerCase()).replace("{Font+Family}",i.replace(/ /g,"+")).replace("{fontweight}",s).replace("{-fontstyle}",o.replace("normal","").replace(/(.+)/,"-$1")).replace("{fontstyle}",o);if(!document.querySelector('link[href="'+t+'"]')){const e=document.createElement("link");e.href=t,e.rel="stylesheet",document.head.appendChild(e)}}}})(),t):t}(t,e),a.getImage,s),t.getStyle()?h().then(n).catch(r):r(new Error(`Nothing to show for source [${o}]`))}}if(e.sprite){const t=function(t,e,n){if("string"==typeof t)return[{id:"default",url:j9(t,e,n)}];for(const r of t)r.url=j9(r.url,e,n);return t}(e.sprite,a.accessToken,s||location.href);d=LG?1:window.devicePixelRatio>=1.5?.5:1;const n=.5==d?"@2x":"";Promise.all(t.map(function(t){const e=new URL(t.url);let i=e.origin+e.pathname+n+".json"+e.search;return new Promise(function(t,n){Stt("Sprite",i,a).then(t).catch(function(){i=e.origin+e.pathname+".json"+e.search,Stt("Sprite",i,a).then(t).catch(n)})}).then(function(i){let s;if(void 0===i&&r(new Error("No sprites found.")),s=e.origin+e.pathname+n+".png"+e.search,a.transformRequest){const t=a.transformRequest(s,"SpriteImage")||s;(t instanceof Request||t instanceof Promise)&&(s=t)}g[t.id]=s;for(const e in i){const n="default"==t.id?e:`${t.id}:${e}`;f[n]=i[e]}}).catch(function(t){r(new Error(`Sprites cannot be loaded: ${i}: ${t.message}`))})})).then(m).catch(r)}else m()}).catch(r)})}(t,n,e,Object.assign({styleUrl:r},s)).then(function(){!function(t,e,n){function r(){const r=e.get("mapbox-style");if(!r)return;const i=C5(r.layers),s=t.get("mapbox-layers"),o=i.filter(function(t){return s.includes(t.id)}).some(function(t){return!t.layout||"visible"===Htt(t,"layout","visibility",dtt,n)});t.get("visible")!==o&&t.setVisible(o)}t.on("change",r),r()}(t,i,ytt(n)),l()}).catch(c):l()}else c(new Error("Error accessing data for source "+t.get("mapbox-source")))};t.set("mapbox-layers",e);const h=i.getLayers();-1===h.getArray().indexOf(t)&&h.push(t),t.getSource()?u():t.once("change:source",u)})}var vet=class extends vq{static{BF(this.prototype,"osm",[pp])}#B=void qF(this,"osm");static{BF(this.prototype,"storage",[pp])}#U=void qF(this,"storage");static{BF(this.prototype,"mapUi",[pp])}#Zt=void qF(this,"mapUi");static{BF(this.prototype,"router",[pp])}#Gt=void qF(this,"router");static{BF(this.prototype,"settings",[pp])}#z=void qF(this,"settings");static{BF(this.prototype,"nostrData",[pp])}#F=void qF(this,"nostrData");mapInstance;bookmarkSource;searchResultsSource;selectedShapeSource;searchOverlay;searchOverlayElement;selectedPinOverlay;selectedPinElement;crosshairElement;crosshairOverlay;ignoreNextMapClick=!1;setupMap=Xq(t=>{if(this.mapInstance)return;const e=new jJ;this.selectedShapeSource=new K3;const n=new F3({source:this.selectedShapeSource,style:new F1({stroke:new N1({color:"#3388ff",width:4}),fill:new M1({color:"rgba(51, 136, 255, 0.1)"})}),zIndex:5});this.bookmarkSource=new K3;const r=new F3({source:this.bookmarkSource,style:t=>{const e=t.get("originalPlace");let n=getComputedStyle(document.documentElement).getPropertyValue("--default-list-color").trim()||"#000000";if(e&&e._listIds&&e._listIds.length>0){const t=e._listIds[0],r=this.storage.lists.find(e=>e.id===t);r&&r.color&&(n=r.color)}return[new F1({image:new P1({radius:10,fill:new M1({color:"rgba(0, 0, 0, 0.2)"}),displacement:[0,-2]})}),new F1({image:new P1({radius:9,fill:new M1({color:n}),stroke:new N1({color:"#fff",width:2})})})]},zIndex:10});this.searchResultsSource=new K3;const i=new Map,s=new F3({source:this.searchResultsSource,style:t=>{const e=t.get("originalPlace"),n=this.mapUi.selectedPlace;if(n){const t=e.osmId&&n.osmId&&e.osmId===n.osmId,r=e.id&&n.id&&e.id===n.id,i=e.lat===n.lat&&e.lon===n.lon;if(t||r||i)return new F1({})}const r=p$(e.osmTags||e),s=r||"default";if(!i.has(s)){const t=getComputedStyle(document.documentElement).getPropertyValue("--marker-color-primary").trim()||"#ea4335";let e=``;if(r){const n=c$(r);if(n){let r=n.trim();const i=r.indexOf("",i)+1,o=r.lastIndexOf("");-1!==i&&-1!==o&&(r=r.substring(s,o)),e=`\n \n \n ${r}\n \n `}}const n=`\n \n \n \n \n \n \n \n ${e}\n \n `;i.set(s,"data:image/svg+xml;charset=utf-8,"+encodeURIComponent(n.trim()))}return new F1({image:new O1({src:i.get(s),anchor:[.5,.65],scale:1})})},zIndex:11});let o=[14.21683569,27.060114248],a=2.661,l=!1;try{const t=localStorage.getItem("marco:map-view");if(t){const e=JSON.parse(t);e.center&&Array.isArray(e.center)&&2===e.center.length&&"number"==typeof e.zoom&&(o=e.center,a=e.zoom,l=!0)}}catch(k){console.warn("Failed to restore map view:",k)}const c=new bX({center:QK(o),zoom:a,projection:"EPSG:3857"});this.mapInstance=new b2({target:t,layers:[e,n,s,r],view:c,controls:WX({zoom:!0,rotate:!0,attribution:!0}),interactions:SJ({dragPan:!1})});const u=tY(c.getCenter());this.mapUi.updateCenter(u[1],u[0]),this.mapUi.updateZoom(c.getZoom()),function(t,e,n={}){let r,i;if(LG){if(!(t instanceof b2||t instanceof jJ))throw new Error("ol-mapbox-style in a web worker requires a Map or a LayerGroup as first argument");i=t}else i="string"==typeof t||t instanceof HTMLElement?new b2({target:t}):t;if("string"==typeof e){const t=e.startsWith("data:")?location.href:U9(e,n.accessToken);n=oet(t,n),r=new Promise(function(r,s){ktt(e,n).then(function(e){met(e,i,t,n).then(function(){r(i)}).catch(s)}).catch(function(t){s(new Error(`Could not load ${e}: ${t.message}`))})})}else r=new Promise(function(t,r){met(e,i,!n.styleUrl||n.styleUrl.startsWith("data:")?location.href:U9(n.styleUrl,n.accessToken),n).then(function(){t(i)}).catch(r)})}(this.mapInstance,"https://tiles.openfreemap.org/styles/liberty",{webfonts:"data:text/css,"}),this.searchOverlayElement=document.createElement("div"),this.searchOverlayElement.className="search-pulse",this.searchOverlay=new k2({element:this.searchOverlayElement,positioning:"center-center",stopEvent:!1}),this.mapInstance.addOverlay(this.searchOverlay),this.selectedPinElement=document.createElement("div"),this.selectedPinElement.className="selected-pin-container";const h=document.createElement("div");h.className="selected-pin",h.innerHTML='';const d=document.createElement("div");d.className="selected-pin-shadow",this.selectedPinElement.appendChild(h),this.selectedPinElement.appendChild(d),this.selectedPinOverlay=new k2({element:this.selectedPinElement,positioning:"bottom-center",stopEvent:!1}),this.mapInstance.addOverlay(this.selectedPinOverlay),this.crosshairElement=document.createElement("div"),this.crosshairElement.className="map-crosshair",this.crosshairElement.innerHTML='\n \n \n \n \n ',t.appendChild(this.crosshairElement),this.locationOverlayElement=document.createElement("div"),this.locationOverlayElement.className="search-pulse blue",this.locationOverlay=new k2({element:this.locationOverlayElement,positioning:"center-center",stopEvent:!1}),this.mapInstance.addOverlay(this.locationOverlay),t.addEventListener("pointerdown",()=>{this.mapUi.searchBoxHasFocus&&(this.ignoreNextMapClick=!0)},!0);const p=new b5({trackingOptions:{enableHighAccuracy:!0},projection:c.getProjection()}),f=new E2;f.setStyle(new F1({image:new P1({radius:6,fill:new M1({color:"#3399CC"}),stroke:new N1({color:"#fff",width:2})})}));const g=new K3({features:[f]}),m=new F3({source:g,zIndex:15});p.on("change:position",function(){const t=p.getPosition();f.setGeometry(t?new nX(t):null)});const y=document.createElement("div");y.className="ol-control ol-locate";const v=document.createElement("button");let b,w;v.style.display="flex",v.style.alignItems="center",v.style.justifyContent="center",v.innerHTML=`${c$("navigation")}`,v.title="Locate Me",y.appendChild(v);const _=()=>{b&&(clearTimeout(b),b=null);try{w&&(p.un("change:position",x),w=null)}catch{}this.locationOverlayElement&&this.locationOverlayElement.classList.remove("active")},x=()=>{const t=p.getPosition(),e=p.getAccuracyGeometry(),n=p.getAccuracy();if(console.debug("Geolocation change:",{coordinates:t,accuracy:n}),!t)return;const r=this.mapInstance.getSize(),i=this.mapInstance.getView();let s=null;if(this.locationOverlayElement){const e=i.getResolution(),r=2*(n||50)/YK(i.getProjection(),e,t);this.locationOverlayElement.style.width=`${r}px`,this.locationOverlayElement.style.height=`${r}px`,this.locationOverlay.setPosition(t)}if(n&&n<=20&&_(),e){const t=e.getExtent();s=3.162*i.getResolutionForExtent(t,r)}else n&&(s=6.325*n/Math.min(r[0],r[1])/YK(i.getProjection(),1,t));let o={center:t,duration:1e3};if(s){const t=i.getResolutionForZoom(17);o.resolution=Math.max(s,t)}else o.zoom=16;this.mapInstance.getView().animate(o)},C=()=>{console.debug("Getting current geolocation..."),_(),p.setTracking(!0);const t=p.getPosition();this.locationOverlayElement&&this.locationOverlayElement.classList.add("active"),t&&x(),w=p.on("change:position",x),b=setTimeout(()=>{_()},1e4)};v.addEventListener("click",C);const S=new BX({element:y});this.mapInstance.addLayer(m),this.mapInstance.addControl(S),l||"index"!==this.router.currentRouteName||C(),this.mapInstance.on("singleclick",this.handleMapClick),this.mapInstance.on("moveend",this.handleMapMove),this.mapInstance.on("pointermove",t=>{const e=this.mapInstance.getEventPixel(t.originalEvent),n=this.mapInstance.hasFeatureAtPixel(e,{hitTolerance:10});this.mapInstance.getTarget().style.cursor=n?"pointer":""}),this.storage.rs.on("ready",()=>{this.handleMapMove()})});updateInteractions=Xq(()=>{if(!this.mapInstance)return;this.mapInstance.getInteractions().getArray().slice().forEach(t=>{t instanceof cJ&&this.mapInstance.removeInteraction(t)});const t=!!this.settings.mapKinetic&&new HX(-.005,.05,100);this.settings.mapKinetic&&window.innerWidth<=768&&(t.minVelocity_=.25),this.mapInstance.addInteraction(new cJ({kinetic:t}))});updateSearchResults=Xq(()=>{if(!this.searchResultsSource)return;this.searchResultsSource.clear();const t=this.mapUi.searchResults;if(!t||0===t.length)return;const e=[];t.forEach(t=>{if(t.lat&&t.lon){const n=new E2({geometry:new nX(QK([t.lon,t.lat])),name:t.title,id:t.id,isSearchResult:!0,originalPlace:t});e.push(n)}}),e.length>0&&this.searchResultsSource.addFeatures(e)});updateSelectedPin=Xq(()=>{const t=this.mapUi.selectedPlace,e=this.mapUi.selectionOptions||{};if(this.searchResultsSource&&this.searchResultsSource.changed(),this.selectedPinOverlay&&this.selectedPinElement)if(this.selectedShapeSource&&this.selectedShapeSource.clear(),t&&t.lat&&t.lon){const r=QK([t.lon,t.lat]);if(this.selectedPinOverlay.setPosition(r),this.selectedPinElement.classList.remove("active"),this.selectedPinElement.offsetWidth,this.selectedPinElement.classList.add("active"),t.geojson&&this.selectedShapeSource)try{const e=(new s5).readFeature(t.geojson,{featureProjection:"EPSG:3857"});this.selectedShapeSource.addFeature(e)}catch(n){console.warn("Failed to render selected place shape:",n)}e.preventZoom?t.bbox&&!this.bboxFitsInView(t.bbox)?this.zoomToBbox(t.bbox):this.handlePinVisibility(r,{maintainZoom:!0}):t.bbox?this.zoomToBbox(t.bbox):this.handlePinVisibility(r)}else this.selectedPinElement.classList.remove("active"),this.selectedPinOverlay.setPosition(void 0)});bboxFitsInView(t){if(!this.mapInstance||!t)return!0;const e=this.mapInstance.getView(),n=this.mapInstance.getSize();return hZ(e.calculateExtent(n),[...QK([t.minLon,t.minLat]),...QK([t.maxLon,t.maxLat])])}zoomToBbox(t){if(!this.mapInstance||!t)return;const e=this.mapInstance.getView(),n=this.mapInstance.getSize(),r=[...QK([t.minLon,t.minLat]),...QK([t.maxLon,t.maxLat])];let i=[.15*n[1],.15*n[0],.15*n[1],.15*n[0]];if(n[0]<=768){const t=.5*n[1],e=.15*t,r=.5*n[1]+.15*t;i[0]=e,i[2]=r}else if(this.args.isSidebarOpen){const t=getComputedStyle(document.documentElement).getPropertyValue("--sidebar-width").trim(),e=parseInt(t,10)||360,r=n[0]-e;i[3]=e+.15*r,i[1]=.15*r}const s=e.getZoom();e.fit(r,{padding:i,duration:1e3,easing:t=>t*(2-t),maxZoom:Math.max(s,18)})}handlePinVisibility(t,e={}){if(!this.mapInstance)return;const n=this.mapInstance.getView().getZoom();if(!e.maintainZoom&&n<16)return void this.animateToSmartCenter(t,16);const r=this.mapInstance.getPixelFromCoordinate(t),i=this.mapInstance.getSize();if(!r||r[0]<0||r[0]>i[0]||r[1]<0||r[1]>i[1]){const n=e.maintainZoom?null:16;this.animateToSmartCenter(t,n)}else this.panIfObscured(t)}animateToSmartCenter(t,e=null){if(!this.mapInstance)return;const n=this.mapInstance.getSize(),r=this.mapInstance.getView();let i=r.getResolution();null!==e&&(i=r.getResolutionForZoom(e));let s=t;if(n[0]<=768){const e=n[1],r=document.querySelector(".app-header"),o=r?r.offsetHeight:60,a=(e/2-(o+(e/2-o)/2))*i;s=[t[0],t[1]-a]}else if(this.args.isSidebarOpen){const e=getComputedStyle(document.documentElement).getPropertyValue("--sidebar-width").trim(),n=(parseInt(e,10)||360)/2*i;s=[t[0]-n,t[1]]}const o={center:s,duration:1e3,easing:t=>t*(2-t)};null!==e&&(o.zoom=e),r.animate(o)}panIfObscured(t){if(!this.mapInstance)return;const e=this.mapInstance.getSize(),n=this.mapInstance.getPixelFromCoordinate(t);if(!n)return;const r=this.mapInstance.getView(),i=r.getCenter(),s=r.getResolution();let o=n[0],a=n[1],l=!1;const c=document.querySelector(".app-header"),u=c?c.offsetHeight:60;if(e[0]<=768){const t=e[1],r=t/2;n[1]>r&&(a=u+(t/2-u)/2,l=!0)}else if(this.args.isSidebarOpen){const t=getComputedStyle(document.documentElement).getPropertyValue("--sidebar-width").trim(),r=parseInt(t,10)||360;n[0]t*(2-t)})}}updateBookmarks=Xq(()=>{const t=this.storage.placesInView;this.loadBookmarks(t)});async loadBookmarks(t=[]){try{if(!this.bookmarkSource)return;t&&0!==t.length||(t=this.storage.placesInView),this.bookmarkSource.clear(),t&&Array.isArray(t)&&t.forEach(t=>{if(t.lat&&t.lon){const e=new E2({geometry:new nX(QK([t.lon,t.lat])),name:t.title,id:t.id,isBookmark:!0,originalPlace:t});this.bookmarkSource.addFeature(e)}})}catch(e){console.error("Failed to load bookmarks:",e)}}syncPulse=Xq(()=>{this.searchOverlayElement&&(this.mapUi.isSearching?this.searchOverlayElement.classList.add("active"):this.searchOverlayElement.classList.remove("active"))});syncCreationMode=Xq(()=>{if(this.crosshairElement&&this.mapInstance)if(this.mapUi.isCreating){this.crosshairElement.classList.add("visible");const t=this.mapUi.creationCoordinates;if(t&&t.lat&&t.lon){const e=QK([t.lon,t.lat]);this.animateToCrosshair(e)}}else this.crosshairElement.classList.remove("visible")});animateToCrosshair(t){if(!this.mapInstance||!this.crosshairElement)return;const e=this.mapInstance.getTargetElement().getBoundingClientRect(),n=this.crosshairElement.getBoundingClientRect(),r=n.left+n.width/2-e.left,i=n.top+n.height/2-e.top,s=this.mapInstance.getSize(),o=r-s[0]/2,a=i-s[1]/2,l=this.mapInstance.getView(),c=l.getResolution(),u=o*c,h=-a*c,d=t[0]-u,p=t[1]-h,f=l.getCenter();Math.sqrt(Math.pow(f[0]-d,2)+Math.pow(f[1]-p,2))>5*c&&l.animate({center:[d,p],duration:800,easing:t=>t*(2-t)})}handleMapMove=async()=>{if(!this.mapInstance||this.isDestroying||this.isDestroyed)return;const t=this.mapInstance.getView(),e=tY(t.getCenter());if(this.mapUi.updateCenter(e[1],e[0]),this.mapUi.updateZoom(t.getZoom()),this.mapUi.isCreating){const t=this.mapInstance.getTargetElement().getBoundingClientRect(),e=this.crosshairElement.getBoundingClientRect(),n=e.left+e.width/2-t.left,r=e.top+e.height/2-t.top,i=tY(this.mapInstance.getCoordinateFromPixel([n,r])),s=parseFloat(i[1].toFixed(6)),o=parseFloat(i[0].toFixed(6));this.mapUi.updateCreationCoordinates(s,o),this.router.replaceWith("place.new",{queryParams:{lat:s,lon:o}})}const n=this.mapInstance.getSize(),r=this.mapInstance.getView().calculateExtent(n),[i,s]=tY([r[0],r[1]]),[o,a]=tY([r[2],r[3]]),l={minLat:s,minLon:i,maxLat:a,maxLon:o};if(this.mapUi.updateBounds(l),await this.storage.loadPlacesInBounds(l),!this.isDestroying&&!this.isDestroyed){this.nostrData.loadPlacesInBounds(l),this.loadBookmarks(this.storage.placesInView);try{const t=this.mapInstance.getView(),e={center:tY(t.getCenter()),zoom:t.getZoom()};localStorage.setItem("marco:map-view",JSON.stringify(e))}catch(c){console.warn("Failed to save map view:",c)}}};handleMapClick=async t=>{if(this.ignoreNextMapClick)return void(this.ignoreNextMapClick=!1);const e=this.mapInstance.getFeaturesAtPixel(t.pixel,{hitTolerance:10});let n=null,r=null,i=null;if(e&&e.length>0){console.debug(`Found ${e.length} features in map layer:`);for(const n of e)console.debug(n);const t=e.find(t=>t.get("isBookmark")),s=e.find(t=>t.get("isSearchResult"));t?n=t.get("originalPlace"):s&&(r=s.get("originalPlace"));const o=e[0].getProperties();o.name&&(i=o.name)}const s=t=>{("search"===this.router.currentRouteName||this.mapUi.currentSearch&&this.mapUi.searchResults.length>0)&&(this.mapUi.returnToSearch=!0),this.mapUi.preventNextZoom=!0,this.mapUi.selectPlace(t,{preventZoom:!0}),this.mapUi.showSidebar(),this.router.transitionTo("place",t)};if(this.args.isSidebarOpen){const t=n||r;return t?(console.debug("Clicked feature while sidebar open (switching):",t),void s(t)):void(this.args.onOutsideClick&&this.args.onOutsideClick())}if(n)return console.debug("Clicked bookmark:",n),void s(n);if(r)return console.debug("Clicked search result:",r),void s(r);if(this.mapUi.searchResults&&this.mapUi.searchResults.length>0)return console.debug("Clearing active search and markers on map click"),void this.router.transitionTo("index");if(this.mapInstance.getView().getZoom()<16)return;const[o,a]=tY(t.coordinate),l=i?30:50;if(this.searchOverlayElement){const e=this.mapInstance.getView(),n=2*l/YK(e.getProjection(),e.getResolution(),t.coordinate);this.searchOverlayElement.style.width=`${n}px`,this.searchOverlayElement.style.height=`${n}px`,this.searchOverlay.setPosition(t.coordinate)}this.mapUi.startSearch();const c={lat:a.toFixed(6),lon:o.toFixed(6),q:null,category:null,selected:i||null};this.router.transitionTo("search",{queryParams:c})};static{Op(ig({id:null,block:'[[[11,0],[16,0,[29,["map-container ",[52,[30,1],"sidebar-open"]]]],[4,[30,0,["setupMap"]],null,null],[4,[30,0,["updateInteractions"]],null,null],[4,[30,0,["updateBookmarks"]],null,null],[4,[30,0,["updateSearchResults"]],null,null],[4,[30,0,["updateSelectedPin"]],null,null],[4,[30,0,["syncPulse"]],null,null],[4,[30,0,["syncCreationMode"]],null,null],[12],[13]],["@isSidebarOpen"],["if"]]',moduleName:"(unknown template module)",isStrictMode:!0}),this)}},bet=class extends vq{static{BF(this.prototype,"storage",[pp])}#U=void qF(this,"storage");static{BF(this.prototype,"osmAuth",[pp])}#Fe=void qF(this,"osmAuth");static{BF(this.prototype,"nostrAuth",[pp])}#N=void qF(this,"nostrAuth");static{BF(this.prototype,"nostrData",[pp])}#F=void qF(this,"nostrData");static{BF(this.prototype,"isNostrConnectModalOpen",[Wr],function(){return!1})}#Ht=void qF(this,"isNostrConnectModalOpen");connectRS(){this.args.onClose(),this.args.storage.showConnectWidget()}static{$F(this.prototype,"connectRS",[Vl])}disconnectRS(){this.args.storage.disconnect()}static{$F(this.prototype,"disconnectRS",[Vl])}connectOsm(){this.args.onClose(),this.osmAuth.login()}static{$F(this.prototype,"connectOsm",[Vl])}disconnectOsm(){this.osmAuth.logout()}static{$F(this.prototype,"disconnectOsm",[Vl])}openNostrConnectModal(){this.isNostrConnectModalOpen=!0}static{$F(this.prototype,"openNostrConnectModal",[Vl])}closeNostrConnectModal(){this.isNostrConnectModalOpen=!1}static{$F(this.prototype,"closeNostrConnectModal",[Vl])}disconnectNostr(){this.nostrAuth.disconnect()}static{$F(this.prototype,"disconnectNostr",[Vl])}static{Op(ig({id:null,block:'[[[10,0],[14,0,"user-menu-popover"],[12],[1,"\\n "],[10,"ul"],[14,0,"account-list"],[12],[1,"\\n "],[10,"li"],[14,0,"account-item"],[12],[1,"\\n "],[10,0],[14,0,"account-header"],[12],[1,"\\n "],[10,0],[14,0,"account-info"],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size"],["remotestorage",18]],null],[1,"\\n "],[10,1],[12],[1,"RemoteStorage"],[13],[1,"\\n "],[13],[1,"\\n"],[41,[30,1,["connected"]],[[[1," "],[11,"button"],[24,0,"btn-text text-danger"],[24,4,"button"],[4,[32,1],["click",[30,0,["disconnectRS"]]],null],[12],[1,"Disconnect"],[13],[1,"\\n"]],[]],[[[1," "],[11,"button"],[24,0,"btn-text text-primary"],[24,4,"button"],[4,[32,1],["click",[30,0,["connectRS"]]],null],[12],[1,"Connect"],[13],[1,"\\n"]],[]]],[1," "],[13],[1,"\\n "],[10,0],[14,0,"account-status"],[12],[1,"\\n"],[41,[30,1,["connected"]],[[[1," "],[10,"strong"],[12],[1,[30,1,["userAddress"]]],[13],[1,"\\n"]],[]],[[[1," Not connected\\n"]],[]]],[1," "],[13],[1,"\\n "],[13],[1,"\\n\\n "],[10,"li"],[14,0,"account-item"],[12],[1,"\\n "],[10,0],[14,0,"account-header"],[12],[1,"\\n "],[10,0],[14,0,"account-info"],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size"],["map",18]],null],[1,"\\n "],[10,1],[12],[1,"OpenStreetMap"],[13],[1,"\\n "],[13],[1,"\\n"],[41,[30,0,["osmAuth","isConnected"]],[[[1," "],[11,"button"],[24,0,"btn-text text-danger"],[24,4,"button"],[4,[32,1],["click",[30,0,["disconnectOsm"]]],null],[12],[1,"Disconnect"],[13],[1,"\\n"]],[]],[[[1," "],[11,"button"],[24,0,"btn-text text-primary"],[24,4,"button"],[4,[32,1],["click",[30,0,["connectOsm"]]],null],[12],[1,"Connect"],[13],[1,"\\n"]],[]]],[1," "],[13],[1,"\\n "],[10,0],[14,0,"account-status"],[12],[1,"\\n"],[41,[30,0,["osmAuth","isConnected"]],[[[1," "],[10,"strong"],[12],[1,[30,0,["osmAuth","userDisplayName"]]],[13],[1,"\\n"]],[]],[[[1," Not connected\\n"]],[]]],[1," "],[13],[1,"\\n "],[13],[1,"\\n\\n "],[10,"li"],[14,0,"account-item"],[12],[1,"\\n "],[10,0],[14,0,"account-header"],[12],[1,"\\n "],[10,0],[14,0,"account-info"],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size"],["zap",18]],null],[1,"\\n "],[10,1],[12],[1,"Nostr"],[13],[1,"\\n "],[13],[1,"\\n"],[41,[30,0,["nostrAuth","isConnected"]],[[[1," "],[11,"button"],[24,0,"btn-text text-danger"],[24,4,"button"],[4,[32,1],["click",[30,0,["disconnectNostr"]]],null],[12],[1,"Disconnect"],[13],[1,"\\n"]],[]],[[[1," "],[11,"button"],[24,0,"btn-text text-primary"],[24,4,"button"],[4,[32,1],["click",[30,0,["openNostrConnectModal"]]],null],[12],[1,"Connect"],[13],[1,"\\n"]],[]]],[1," "],[13],[1,"\\n "],[10,0],[14,0,"account-status"],[12],[1,"\\n"],[41,[30,0,["nostrAuth","isConnected"]],[[[1," "],[10,"strong"],[15,"title",[30,0,["nostrAuth","pubkey"]]],[12],[1,"\\n "],[1,[30,0,["nostrData","userDisplayName"]]],[1,"\\n "],[13],[1,"\\n"]],[]],[[[1," Not connected\\n"]],[]]],[1," "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"],[13],[1,"\\n\\n"],[41,[30,0,["isNostrConnectModalOpen"]],[[[1," "],[8,[32,2],null,[["@onClose"],[[30,0,["closeNostrConnectModal"]]]],[["default"],[[[[1,"\\n "],[8,[32,3],null,[["@onConnect"],[[30,0,["closeNostrConnectModal"]]]],null],[1,"\\n "]],[]]]]],[1,"\\n"]],[]],null]],["@storage"],["if"]]',moduleName:"(unknown template module)",scope:()=>({Icon:wq,on:Hw,Modal:Wq,NostrConnect:TV}),isStrictMode:!0}),this)}};function wet(t){return t}function _et(t){return Object.keys(t).map(e=>t[e])}function xet(t){if(t)if(t instanceof DW)t.executor.asyncErrorsHandled=!0;else if(t instanceof vW)return t._toPromise();return t}function Cet(t,e,n){return function(r){let i=function(t,e){if(Array.isArray(t))return t.map(e);if("object"==typeof t&&null!==t){let n={};return Object.keys(t).forEach(r=>{n[r]=e(t[r])}),n}return t}(r,xet),s=n(i);Array.isArray(s);let o=Ba.defer();t[e](i).then(o.resolve,o.reject);let a=!1,l=()=>{a||(a=!0,s.forEach(t=>{t&&(t instanceof DW?t.cancel():"function"==typeof t.__ec_cancel__&&t[hW]())}))},c=o.promise.finally(l);return c[hW]=l,c}}Cet(Ba.Promise,"all",wet),Cet(Ba,"allSettled",wet),Cet(ia,"race",wet),Cet(Ba,"hash",_et),Cet(Ba,"hashSettled",_et);var ket=class extends vW{_deferable(){return OW.defer()}},Eet=class extends ket{constructor(t){super(),this.ms=t}onYield(t){let e=Ls(()=>t.next(),this.ms);return()=>As(e)}},Ret=class extends vq{static{BF(this.prototype,"photon",[pp])}#Ne=void qF(this,"photon");static{BF(this.prototype,"osm",[pp])}#B=void qF(this,"osm");static{BF(this.prototype,"storage",[pp])}#U=void qF(this,"storage");static{BF(this.prototype,"router",[pp])}#Gt=void qF(this,"router");static{BF(this.prototype,"mapUi",[pp])}#Zt=void qF(this,"mapUi");static{BF(this.prototype,"map",[pp])}#ze=void qF(this,"map");static{BF(this.prototype,"_internalQuery",[Wr],function(){return""})}#De=void qF(this,"_internalQuery");static{BF(this.prototype,"results",[Wr],function(){return[]})}#je=void qF(this,"results");static{BF(this.prototype,"isFocused",[Wr],function(){return!1})}#Ue=void qF(this,"isFocused");static{BF(this.prototype,"isLoading",[Wr],function(){return!1})}#Be=void qF(this,"isLoading");get query(){return this.args.query??this._internalQuery}set query(t){this._internalQuery=t}get showPopover(){return this.isFocused&&this.results.length>0}handleInput(t){const e=t.target.value;this.query=e,this.args.onQueryChange&&this.args.onQueryChange(e),e.length<2?this.results=[]:this.searchTask.perform(e)}static{$F(this.prototype,"handleInput",[Vl])}formatSavedPlace(t){const e=(t._listIds||[]).map(t=>this.storage.lists?.find(e=>e.id===t)?.title).filter(Boolean).join(", "),n=e?`Saved place (${e})`:"Saved place";return{source:"saved",id:t.id,title:t.title,icon:"bookmark",description:n,osmId:t.osmId,osmType:t.osmType,lat:t.lat,lon:t.lon}}searchTask=$W(()=>({context:this,generator:function*(t){yield new Eet(300);const e="string"==typeof t?t:this.query;if(!(e.length<2)){this.isLoading=!0;try{let t,n;this.mapUi.currentCenter&&({lat:t,lon:n}=this.mapUi.currentCenter);const r=e.toLowerCase(),i=MB.filter(t=>t.label.toLowerCase().includes(r)).map(t=>({source:"category",title:t.label,id:t.id,icon:"search"}));let s=[];r.length>=3&&(s=this.storage.savedPlaces.filter(t=>t.title&&t.title.toLowerCase().includes(r)).map(t=>this.formatSavedPlace(t)));const o=yield this.photon.search(e,t,n),a=new Set(s.map(t=>t.osmId).filter(Boolean)),l=o.filter(t=>!a.has(t.osmId));this.results=[...i,...s,...l]}catch(n){console.error("Search failed",n),this.results=[]}finally{this.isLoading=!1}}}}),{restartable:!0},"searchTask",null);handleFocus(){this.isFocused=!0,this.mapUi.setSearchBoxFocus(!0),this.query.length>=2&&0===this.results.length&&this.searchTask.perform()}static{$F(this.prototype,"handleFocus",[Vl])}handleBlur(){setTimeout(()=>{this.isFocused=!1,this.mapUi.setSearchBoxFocus(!1)},300)}static{$F(this.prototype,"handleBlur",[Vl])}handleSubmit(t){if(t.preventDefault(),!this.query)return;let e={q:this.query,selected:null,category:null};if(this.mapUi.currentCenter){const{lat:t,lon:n}=this.mapUi.currentCenter;e.lat=parseFloat(t).toFixed(4),e.lon=parseFloat(n).toFixed(4)}this.router.transitionTo("search",{queryParams:e}),this.isFocused=!1}static{$F(this.prototype,"handleSubmit",[Vl])}selectResult(t){if("category"===t.source){this.query=t.title,this.args.onQueryChange&&this.args.onQueryChange(t.title),this.results=[];let e=null,n=null;return this.mapUi.currentCenter&&(({lat:e,lon:n}=this.mapUi.currentCenter),e=e?.toString(),n=n?.toString()),void this.router.transitionTo("search",{queryParams:{q:t.title,category:t.id,selected:null,lat:e,lon:n}})}if(this.query=t.title,this.args.onQueryChange&&this.args.onQueryChange(t.title),this.results=[],"saved"===t.source&&t.id&&!t.osmId)this.router.transitionTo("place",t.id);else if(t.osmId){const e=`osm:${t.osmType}:${t.osmId}`;this.router.transitionTo("place",e)}else this.router.transitionTo("search",{queryParams:{q:t.title,lat:t.lat,lon:t.lon,selected:null,category:null}})}static{$F(this.prototype,"selectResult",[Vl])}clear(){this.searchTask.cancelAll(),this.mapUi.stopLoading(),this.osm.cancelAll(),this.photon.cancelAll(),this.query="",this.results=[],this.args.onQueryChange&&this.args.onQueryChange(""),this.router.transitionTo("index")}static{$F(this.prototype,"clear",[Vl])}static{Op(ig({id:null,block:'[[[10,0],[14,0,"search-box"],[12],[1,"\\n "],[11,"form"],[24,0,"search-form"],[4,[32,0],["submit",[30,0,["handleSubmit"]]],null],[12],[1,"\\n "],[11,"button"],[24,0,"menu-btn-integrated"],[24,"aria-label","Menu"],[24,4,"button"],[4,[32,0],["click",[30,1]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["menu",20,"#5f6368"]],null],[1,"\\n "],[13],[1,"\\n\\n "],[11,"input"],[24,0,"search-input"],[24,"placeholder","Search places..."],[24,"aria-label","Search places"],[16,2,[30,0,["query"]]],[24,"autocomplete","off"],[24,4,"search"],[4,[32,0],["input",[30,0,["handleInput"]]],null],[4,[32,0],["focus",[30,0,["handleFocus"]]],null],[4,[32,0],["blur",[30,0,["handleBlur"]]],null],[12],[13],[1,"\\n\\n "],[10,"button"],[14,0,"search-submit-btn"],[14,"aria-label","Search"],[14,4,"submit"],[12],[1,"\\n"],[41,[28,[32,2],[[28,[32,3],[[30,0,["mapUi","loadingState","type"]],"text"],null],[28,[32,3],[[30,0,["mapUi","loadingState","type"]],"category"],null]],null],[[[1," "],[8,[32,1],null,[["@name","@size"],["loading-ring",20]],null],[1,"\\n"]],[]],[[[1," "],[8,[32,1],null,[["@name","@size","@color"],["search",20,"#5f6368"]],null],[1,"\\n"]],[]]],[1," "],[13],[1,"\\n\\n"],[41,[30,0,["query"]],[[[1," "],[11,"button"],[24,0,"search-clear-btn"],[24,"aria-label","Clear"],[24,4,"button"],[4,[32,0],["click",[30,0,["clear"]]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["x",20,"#5f6368"]],null],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n\\n"],[41,[30,0,["showPopover"]],[[[1," "],[10,0],[14,0,"search-results-popover"],[12],[1,"\\n "],[10,"ul"],[14,0,"search-results-list"],[12],[1,"\\n"],[42,[28,[31,2],[[28,[31,2],[[30,0,["results"]]],null]],null],null,[[[1," "],[10,"li"],[12],[1,"\\n "],[11,"button"],[24,0,"search-result-item"],[24,4,"button"],[4,[32,0],["click",[28,[32,4],[[30,0,["selectResult"]],[30,2]],null]],null],[12],[1,"\\n "],[10,0],[14,0,"result-icon"],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],[[52,[30,2,["icon"]],[30,2,["icon"]],"map-pin"],16,"#666"]],null],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"result-info"],[12],[1,"\\n "],[10,1],[14,0,"result-title"],[12],[1,[30,2,["title"]]],[13],[1,"\\n"],[41,[28,[32,3],[[30,2,["source"]],"osm"],null],[[[1," "],[10,1],[14,0,"result-desc"],[12],[1,[28,[32,5],[[30,2,["type"]]],null]],[13],[1,"\\n"]],[]],[[[41,[30,2,["description"]],[[[1," "],[10,1],[14,0,"result-desc"],[12],[1,[30,2,["description"]]],[13],[1,"\\n"]],[]],null]],[]]],[1," "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[2]],null],[1," "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[13]],["@onToggleMenu","result"],["if","each","-track-array"]]',moduleName:"(unknown template module)",scope:()=>({on:Hw,Icon:wq,or:Uq,eq:Gq,fn:zq,humanizeOsmTag:fH}),isStrictMode:!0}),this)}},Tet=class extends vq{static{BF(this.prototype,"router",[pp])}#Gt=void qF(this,"router");static{BF(this.prototype,"mapUi",[pp])}#Zt=void qF(this,"mapUi");get categories(){return MB}searchCategory(t){this.args.onSelect&&this.args.onSelect(t);let e={category:t.id,q:null};if(this.mapUi.currentCenter){const{lat:t,lon:n}=this.mapUi.currentCenter;e.lat=parseFloat(t).toFixed(4),e.lon=parseFloat(n).toFixed(4)}this.router.transitionTo("search",{queryParams:e})}static{$F(this.prototype,"searchCategory",[Vl])}static{Op(ig({id:null,block:'[[[10,0],[14,0,"category-chips-scroll"],[12],[1,"\\n "],[10,0],[14,0,"category-chips-container"],[12],[1,"\\n"],[42,[28,[31,1],[[28,[31,1],[[30,0,["categories"]]],null]],null],null,[[[1," "],[11,"button"],[24,0,"category-chip"],[16,"aria-label",[30,1,["label"]]],[16,"disabled",[28,[32,0],[[28,[32,1],[[30,0,["mapUi","loadingState","type"]],"category"],null],[28,[32,1],[[30,0,["mapUi","loadingState","value"]],[30,1,["id"]]],null]],null]],[24,4,"button"],[4,[32,2],["click",[28,[32,3],[[30,0,["searchCategory"]],[30,1]],null]],null],[12],[1,"\\n "],[8,[32,4],null,[["@name","@size"],[[30,1,["icon"]],16]],null],[1,"\\n "],[10,1],[12],[1,[30,1,["label"]]],[13],[1,"\\n "],[13],[1,"\\n"]],[1]],null],[1," "],[13],[1,"\\n"],[13]],["category"],["each","-track-array"]]',moduleName:"(unknown template module)",scope:()=>({and:Hq,eq:Gq,on:Hw,fn:zq,Icon:wq}),isStrictMode:!0}),this)}},Let=Xq((t,[e])=>{let n=null;return async function(){if(e)try{const r=await caches.open("nostr-image-cache-v1"),i=await r.match(e);if(i){const e=await i.blob();return n=URL.createObjectURL(e),void(t.src=n)}const s=await fetch(e,{mode:"cors",credentials:"omit"});if(s.ok){const i=s.clone();await r.put(e,i);const o=await s.blob();n=URL.createObjectURL(o),t.src=n}else t.src=e}catch(d8){console.warn(`Failed to cache image ${e}, falling back to standard src`,d8),t.src=e}else t.src=""}(),()=>{n&&(URL.revokeObjectURL(n),n=null)}}),Iet=class extends vq{static{BF(this.prototype,"storage",[pp])}#U=void qF(this,"storage");static{BF(this.prototype,"settings",[pp])}#z=void qF(this,"settings");static{BF(this.prototype,"nostrAuth",[pp])}#N=void qF(this,"nostrAuth");static{BF(this.prototype,"nostrData",[pp])}#F=void qF(this,"nostrData");static{BF(this.prototype,"mapUi",[pp])}#Zt=void qF(this,"mapUi");static{BF(this.prototype,"router",[pp])}#Gt=void qF(this,"router");static{BF(this.prototype,"isUserMenuOpen",[Wr],function(){return!1})}#$e=void qF(this,"isUserMenuOpen");static{BF(this.prototype,"searchQuery",[Wr],function(){return""})}#qe=void qF(this,"searchQuery");constructor(){super(...arguments),this.router&&"function"==typeof this.router.on&&this.router.on("routeDidChange",this.syncSearchQuery),this.syncSearchQuery()}willDestroy(){this.router&&"function"==typeof this.router.off&&this.router.off("routeDidChange",this.syncSearchQuery),super.willDestroy(...arguments)}syncSearchQuery(){const t=this.mapUi.currentSearch||this.router?.currentRoute?.queryParams;if(t?.q)this.searchQuery=t.q;else if(t?.category){const e=MB.find(e=>e.id===t.category);this.searchQuery=e?e.label:t.category}else this.searchQuery=""}static{$F(this.prototype,"syncSearchQuery",[Vl])}get isSearching(){return!(!this.mapUi.searchBoxHasFocus||!this.searchQuery)||("search"===this.router?.currentRouteName?!this.mapUi.loadingState&&this.mapUi.searchResults&&this.mapUi.searchResults.length>0:!("search"===this.router?.currentRouteName||!this.searchQuery))}get showQuickSearch(){const t=this.mapUi.currentZoom??13;return this.settings.showQuickSearchButtons&&t>=12}toggleUserMenu(){this.isUserMenuOpen=!this.isUserMenuOpen}static{$F(this.prototype,"toggleUserMenu",[Vl])}closeUserMenu(){this.isUserMenuOpen=!1}static{$F(this.prototype,"closeUserMenu",[Vl])}handleQueryChange(t){this.searchQuery=t}static{$F(this.prototype,"handleQueryChange",[Vl])}handleChipSelect(t){this.searchQuery=t.label}static{$F(this.prototype,"handleChipSelect",[Vl])}static{Op(ig({id:null,block:'[[[10,"header"],[14,0,"app-header"],[12],[1,"\\n "],[10,0],[14,0,"header-left"],[12],[1,"\\n "],[8,[32,0],null,[["@query","@onToggleMenu","@onQueryChange"],[[30,0,["searchQuery"]],[30,1],[30,0,["handleQueryChange"]]]],null],[1,"\\n "],[13],[1,"\\n\\n"],[41,[30,0,["showQuickSearch"]],[[[1," "],[10,0],[15,0,[29,["header-center ",[52,[30,0,["isSearching"]],"searching"]]]],[12],[1,"\\n "],[8,[32,1],null,[["@onSelect"],[[30,0,["handleChipSelect"]]]],null],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n "],[10,0],[14,0,"header-right"],[12],[1,"\\n "],[10,0],[14,0,"user-menu-container"],[12],[1,"\\n "],[11,"button"],[24,0,"user-btn btn-press"],[24,"aria-label","User Menu"],[24,4,"button"],[4,[32,2],["click",[30,0,["toggleUserMenu"]]],null],[12],[1,"\\n"],[41,[28,[32,3],[[30,0,["nostrAuth","isConnected"]],[30,0,["nostrData","profile","picture"]]],null],[[[1," "],[11,"img"],[24,0,"user-avatar"],[24,"alt","User Avatar"],[4,[32,4],[[30,0,["nostrData","profile","picture"]]],null],[12],[13],[1,"\\n"]],[]],[[[1," "],[10,0],[14,0,"user-avatar-placeholder"],[12],[1,"\\n "],[8,[32,5],null,[["@name","@size","@color"],["user",20,"white"]],null],[1,"\\n "],[13],[1,"\\n"]],[]]],[1," "],[13],[1,"\\n\\n"],[41,[30,0,["isUserMenuOpen"]],[[[1," "],[8,[32,6],null,[["@storage","@onClose"],[[30,0,["storage"]],[30,0,["closeUserMenu"]]]],null],[1,"\\n "],[11,0],[24,0,"menu-backdrop"],[24,"role","button"],[4,[32,2],["click",[30,0,["closeUserMenu"]]],null],[12],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n "],[13],[1,"\\n"],[13]],["@onToggleMenu"],["if"]]',moduleName:"(unknown template module)",scope:()=>({SearchBox:Ret,CategoryChips:Tet,on:Hw,and:Hq,cachedImage:Let,Icon:wq,UserMenu:bet}),isStrictMode:!0}),this)}},Pet=class extends vq{static{BF(this.prototype,"toast",[pp])}#Mt=void qF(this,"toast");static{Op(ig({id:null,block:'[[[41,[30,0,["toast","isVisible"]],[[[1," "],[10,0],[14,0,"toast-notification"],[12],[1,"\\n "],[1,[30,0,["toast","message"]]],[1,"\\n "],[13],[1,"\\n"]],[]],null]],[],["if"]]',moduleName:"(unknown template module)",isStrictMode:!0}),this)}},Met=a({default:()=>Aet}),Aet=class extends vq{static{BF(this.prototype,"storage",[pp])}#U=void qF(this,"storage");static{BF(this.prototype,"mapUi",[pp])}#Zt=void qF(this,"mapUi");static{BF(this.prototype,"router",[pp])}#Gt=void qF(this,"router");get isSidebarOpen(){const t=this.router.currentRouteName;return this.mapUi.isSidebarVisible&&("place"===t||"place.new"===t||"search"===t||"menu"===t||"contributions"===t||t.startsWith("lists"))}constructor(){super(...arguments),console.debug("Application component constructed"),this.storage}toggleAppMenu(){"menu"===this.router.currentRouteName?this.router.transitionTo("index"):this.router.transitionTo("menu")}static{$F(this.prototype,"toggleAppMenu",[Vl])}handleOutsideClick(){const t=this.router.currentRouteName;("search"===t||"place"===t||"menu"===t||"contributions"===t||t.startsWith("lists"))&&(this.mapUi.clearSelection(),this.mapUi.hideSidebar(),"menu"===t||"contributions"===t||t.startsWith("lists")?this.router.transitionTo("index"):"place"===t&&(this.mapUi.returnToSearch&&this.mapUi.currentSearch?this.router.transitionTo("search",{queryParams:this.mapUi.currentSearch}):this.router.transitionTo("index")))}static{$F(this.prototype,"handleOutsideClick",[Vl])}refreshBookmarks(){this.storage.notifyChange()}static{$F(this.prototype,"refreshBookmarks",[Vl])}static{Op(ig({id:null,block:'[[[1,[28,[32,0],["Marco"],null]],[1,"\\n\\n"],[10,0],[15,0,[52,[30,0,["mapUi","isSidebarOpening"]],"sidebar-opening"]],[12],[1,"\\n "],[8,[32,1],null,[["@onToggleMenu"],[[30,0,["toggleAppMenu"]]]],null],[1,"\\n\\n "],[10,0],[14,1,"rs-widget-container"],[15,0,[52,[30,0,["storage","isWidgetOpen"]],"visible"]],[12],[13],[1,"\\n\\n"],[41,[30,0,["storage","isWidgetOpen"]],[[[1," "],[11,0],[24,0,"rs-backdrop"],[24,"role","button"],[4,[32,2],["click",[30,0,["storage","closeWidget"]]],null],[12],[13],[1,"\\n"]],[]],null],[1,"\\n "],[8,[32,3],null,[["@isSidebarOpen","@onOutsideClick"],[[30,0,["isSidebarOpen"]],[30,0,["handleOutsideClick"]]]],null],[1,"\\n\\n "],[8,[32,4],null,null,null],[1,"\\n\\n "],[46,[28,[31,2],null,null],null,null,null],[1,"\\n"],[13]],[],["if","component","-outlet"]]',moduleName:"(unknown template module)",scope:()=>({pageTitle:zH,AppHeader:Iet,on:Hw,Map:vet,Toast:Pet}),isStrictMode:!0}),this)}},Oet=a({default:()=>Net}),Net=class extends Qh{static{BF(this.prototype,"osm",[pp])}#B=void qF(this,"osm");static{BF(this.prototype,"storage",[pp])}#U=void qF(this,"storage")},Fet=a({default:()=>zet}),zet=class extends Qh{static{BF(this.prototype,"mapUi",[pp])}#Zt=void qF(this,"mapUi");activate(){this.mapUi.clearSearchResults(),this.mapUi.hideSidebar()}},Det=Op(ig({id:null,block:'[[[10,0],[14,0,"sidebar-header"],[12],[1,"\\n "],[10,"h2"],[12],[1,"\\n "],[10,1],[14,0,"app-logo-icon"],[12],[1,"\\n "],[1,[28,[32,0],[[32,1]],null]],[1,"\\n "],[13],[1,"\\n Marco\\n "],[13],[1,"\\n "],[11,"button"],[24,0,"close-btn"],[24,4,"button"],[4,[32,2],["click",[30,1]],null],[12],[1,"\\n "],[8,[32,3],null,[["@name","@size","@color"],["x",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n"],[13],[1,"\\n\\n"],[10,0],[14,0,"sidebar-content"],[12],[1,"\\n "],[10,"ul"],[14,0,"app-menu"],[12],[1,"\\n "],[10,"li"],[12],[1,"\\n "],[11,"button"],[24,4,"button"],[4,[32,2],["click",[30,2]],null],[12],[1,"\\n "],[8,[32,3],null,[["@name","@size"],["bookmark",20]],null],[1,"\\n "],[10,1],[12],[1,"Collections"],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"li"],[12],[1,"\\n "],[11,"button"],[24,4,"button"],[4,[32,2],["click",[30,3]],null],[12],[1,"\\n "],[8,[32,3],null,[["@name","@size"],["activity",20]],null],[1,"\\n "],[10,1],[12],[1,"My Contributions"],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"li"],[12],[1,"\\n "],[11,"button"],[24,4,"button"],[4,[32,2],["click",[28,[32,4],[[30,4],"settings"],null]],null],[12],[1,"\\n "],[8,[32,3],null,[["@name","@size"],["settings",20]],null],[1,"\\n "],[10,1],[12],[1,"Settings"],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"li"],[12],[1,"\\n "],[11,"button"],[24,4,"button"],[4,[32,2],["click",[28,[32,4],[[30,4],"about"],null]],null],[12],[1,"\\n "],[8,[32,3],null,[["@name","@size"],["info",20]],null],[1,"\\n "],[10,1],[12],[1,"About"],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"],[13]],["@onClose","@onSavedPlaces","@onContributions","@onNavigate"],[]]',moduleName:"(unknown template module)",scope:()=>({htmlSafe:qv,iconRounded:'\n \x3c!-- Background --\x3e\n \n\n \x3c!-- Subtle map grid (kept well outside safe zone) --\x3e\n \n \n \n \n\n \n \n \n \n\n \x3c!-- Location pin (exact app shape, larger, centered, safe-zone compliant) --\x3e\n \x3c!-- Safe zone target: ~680px diameter --\x3e\n \n \n \n \n\n',on:Hw,Icon:wq,fn:zq}),isStrictMode:!0}),qq()),jet=class extends vq{static{BF(this.prototype,"settings",[pp])}#z=void qF(this,"settings");static{Op(ig({id:null,block:'[[[10,"details"],[12],[1,"\\n "],[10,"summary"],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size"],["map",20]],null],[1,"\\n "],[10,1],[12],[1,"Map & UI"],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"details-content form-layout"],[12],[1,"\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","show-quick-search"],[12],[1,"Quick search buttons visible"],[13],[1,"\\n "],[11,"select"],[24,1,"show-quick-search"],[24,0,"form-control"],[4,[32,1],["change",[28,[32,2],[[30,1],"showQuickSearchButtons"],null]],null],[12],[1,"\\n "],[10,"option"],[14,2,"true"],[15,"selected",[52,[30,0,["settings","showQuickSearchButtons"]],"selected"]],[12],[1,"\\n Yes\\n "],[13],[1,"\\n "],[10,"option"],[14,2,"false"],[15,"selected",[52,[51,[30,0,["settings","showQuickSearchButtons"]]],"selected"]],[12],[1,"\\n No\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","map-kinetic"],[12],[1,"Map Inertia (Kinetic Panning)"],[13],[1,"\\n "],[11,"select"],[24,1,"map-kinetic"],[24,0,"form-control"],[4,[32,1],["change",[28,[32,2],[[30,1],"mapKinetic"],null]],null],[12],[1,"\\n "],[10,"option"],[14,2,"true"],[15,"selected",[52,[30,0,["settings","mapKinetic"]],"selected"]],[12],[1,"\\n On\\n "],[13],[1,"\\n "],[10,"option"],[14,2,"false"],[15,"selected",[52,[51,[30,0,["settings","mapKinetic"]]],"selected"]],[12],[1,"\\n Off\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"],[13]],["@onChange"],["if","unless"]]',moduleName:"(unknown template module)",scope:()=>({Icon:wq,on:Hw,fn:zq}),isStrictMode:!0}),this)}},Uet=class extends vq{static{BF(this.prototype,"settings",[pp])}#z=void qF(this,"settings");static{Op(ig({id:null,block:'[[[10,"details"],[12],[1,"\\n "],[10,"summary"],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size"],["server",20]],null],[1,"\\n "],[10,1],[12],[1,"API Providers"],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"details-content form-layout"],[12],[1,"\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","overpass-api"],[12],[1,"Overpass API Provider"],[13],[1,"\\n "],[11,"select"],[24,1,"overpass-api"],[24,0,"form-control"],[4,[32,1],["change",[28,[32,2],[[30,1],"overpassApi"],null]],null],[12],[1,"\\n"],[42,[28,[31,1],[[28,[31,1],[[30,0,["settings","overpassApis"]]],null]],null],null,[[[1," "],[10,"option"],[15,2,[30,2,["url"]]],[15,"selected",[52,[28,[32,3],[[30,2,["url"]],[30,0,["settings","overpassApi"]]],null],"selected"]],[12],[1,"\\n "],[1,[30,2,["name"]]],[1,"\\n "],[13],[1,"\\n"]],[2]],null],[1," "],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","photon-api"],[12],[1,"Photon API Provider"],[13],[1,"\\n "],[11,"select"],[24,1,"photon-api"],[24,0,"form-control"],[4,[32,1],["change",[28,[32,2],[[30,1],"photonApi"],null]],null],[12],[1,"\\n"],[42,[28,[31,1],[[28,[31,1],[[30,0,["settings","photonApis"]]],null]],null],null,[[[1," "],[10,"option"],[15,2,[30,3,["url"]]],[15,"selected",[52,[28,[32,3],[[30,3,["url"]],[30,0,["settings","photonApi"]]],null],"selected"]],[12],[1,"\\n "],[1,[30,3,["name"]]],[1,"\\n "],[13],[1,"\\n"]],[3]],null],[1," "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"],[13]],["@onChange","api","api"],["each","-track-array","if"]]',moduleName:"(unknown template module)",scope:()=>({Icon:wq,on:Hw,fn:zq,eq:Gq}),isStrictMode:!0}),this)}},Bet=t=>t?t.replace(/^wss?:\/\//,""):"",$et=class extends vq{static{BF(this.prototype,"settings",[pp])}#z=void qF(this,"settings");static{BF(this.prototype,"nostrData",[pp])}#F=void qF(this,"nostrData");static{BF(this.prototype,"toast",[pp])}#Mt=void qF(this,"toast");static{BF(this.prototype,"newReadRelay",[Wr],function(){return""})}#Ve=void qF(this,"newReadRelay");static{BF(this.prototype,"newWriteRelay",[Wr],function(){return""})}#We=void qF(this,"newWriteRelay");get customReadRelays(){return pU(this.settings.nostrReadRelays||[],this.nostrData.requiredReadRelays)}get customWriteRelays(){return pU(this.settings.nostrWriteRelays||[],this.nostrData.requiredWriteRelays)}get readRelayExclusions(){return this.settings.nostrReadRelayExclusions||[]}get writeRelayExclusions(){return this.settings.nostrWriteRelayExclusions||[]}get requiredReadRelaySet(){return new Set(this.nostrData.requiredReadRelays.filter(Boolean))}get requiredWriteRelaySet(){return new Set(this.nostrData.requiredWriteRelays.filter(Boolean))}get mailboxReadRelaySet(){return new Set(this.nostrData.mailboxReadRelays)}get mailboxWriteRelaySet(){return new Set(this.nostrData.mailboxWriteRelays)}get hasReadOverrides(){return this.customReadRelays.length>0||this.readRelayExclusions.length>0}get hasWriteOverrides(){return this.customWriteRelays.length>0||this.writeRelayExclusions.length>0}get readRelaysForDisplay(){return this.nostrData.activeReadRelays.map(t=>({url:t,isRequired:this.requiredReadRelaySet.has(t)}))}get writeRelaysForDisplay(){return this.nostrData.activeWriteRelays.map(t=>({url:t,isRequired:this.requiredWriteRelaySet.has(t)}))}updateNewReadRelay(t){this.newReadRelay=t.target.value}static{$F(this.prototype,"updateNewReadRelay",[Vl])}updateNewWriteRelay(t){this.newWriteRelay=t.target.value}static{$F(this.prototype,"updateNewWriteRelay",[Vl])}addReadRelay(){const t=uU(this.newReadRelay);if(!t)return;const e=pU(dU(this.nostrData.requiredReadRelays,[...this.customReadRelays,t]),this.nostrData.requiredReadRelays),n=this.readRelayExclusions.filter(e=>uU(e)!==t);this.settings.update("nostrReadRelays",e.length>0?e:null),this.settings.update("nostrReadRelayExclusions",n.length>0?n:null),this.newReadRelay=""}static{$F(this.prototype,"addReadRelay",[Vl])}removeReadRelay(t){if(this.requiredReadRelaySet.has(t))return;const e=uU(t),n=this.customReadRelays.filter(t=>uU(t)!==e),r=this.mailboxReadRelaySet.has(e)?Array.from(new Set([...this.readRelayExclusions,e])):this.readRelayExclusions;this.settings.update("nostrReadRelays",n.length>0?n:null),this.settings.update("nostrReadRelayExclusions",r.length>0?r:null)}static{$F(this.prototype,"removeReadRelay",[Vl])}handleReadRelayKeydown(t){"Enter"===t.key&&this.addReadRelay()}static{$F(this.prototype,"handleReadRelayKeydown",[Vl])}handleWriteRelayKeydown(t){"Enter"===t.key&&this.addWriteRelay()}static{$F(this.prototype,"handleWriteRelayKeydown",[Vl])}resetReadRelays(){this.settings.update("nostrReadRelays",null),this.settings.update("nostrReadRelayExclusions",null)}static{$F(this.prototype,"resetReadRelays",[Vl])}addWriteRelay(){const t=uU(this.newWriteRelay);if(!t)return;const e=pU(dU(this.nostrData.requiredWriteRelays,[...this.customWriteRelays,t]),this.nostrData.requiredWriteRelays),n=this.writeRelayExclusions.filter(e=>uU(e)!==t);this.settings.update("nostrWriteRelays",e.length>0?e:null),this.settings.update("nostrWriteRelayExclusions",n.length>0?n:null),this.newWriteRelay=""}static{$F(this.prototype,"addWriteRelay",[Vl])}removeWriteRelay(t){if(this.requiredWriteRelaySet.has(t))return;const e=uU(t),n=this.customWriteRelays.filter(t=>uU(t)!==e),r=this.mailboxWriteRelaySet.has(e)?Array.from(new Set([...this.writeRelayExclusions,e])):this.writeRelayExclusions;this.settings.update("nostrWriteRelays",n.length>0?n:null),this.settings.update("nostrWriteRelayExclusions",r.length>0?r:null)}static{$F(this.prototype,"removeWriteRelay",[Vl])}resetWriteRelays(){this.settings.update("nostrWriteRelays",null),this.settings.update("nostrWriteRelayExclusions",null)}static{$F(this.prototype,"resetWriteRelays",[Vl])}async clearCache(){try{await this.nostrData.clearCache(),this.toast.show("Nostr cache cleared")}catch(t){this.toast.show(`Failed to clear Nostr cache: ${t.message}`)}}static{$F(this.prototype,"clearCache",[Vl])}static{Op(ig({id:null,block:'[[[10,"details"],[12],[1,"\\n "],[10,"summary"],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size"],["zap",20]],null],[1,"\\n "],[10,1],[12],[1,"Nostr"],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"details-content form-layout"],[12],[1,"\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","new-read-relay"],[12],[1,"Read Relays"],[13],[1,"\\n "],[10,"ul"],[14,0,"relay-list"],[12],[1,"\\n"],[42,[28,[31,1],[[28,[31,1],[[30,0,["readRelaysForDisplay"]]],null]],null],null,[[[1," "],[10,"li"],[12],[1,"\\n "],[10,1],[12],[1,[28,[32,1],[[30,1,["url"]]],null]],[13],[1,"\\n"],[41,[51,[30,1,["isRequired"]]],[[[1," "],[11,"button"],[24,0,"btn-remove-relay"],[24,"title","Remove relay"],[24,"aria-label","Remove"],[24,4,"button"],[4,[32,2],["click",[28,[32,3],[[30,0,["removeReadRelay"]],[30,1,["url"]]],null]],null],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size","@color"],["x",14,"currentColor"]],null],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n"]],[1]],null],[1," "],[13],[1,"\\n "],[10,0],[14,0,"add-relay-input"],[12],[1,"\\n "],[11,"input"],[24,1,"new-read-relay"],[24,0,"form-control"],[24,"placeholder","relay.example.com"],[16,2,[30,0,["newReadRelay"]]],[24,4,"text"],[4,[32,2],["input",[30,0,["updateNewReadRelay"]]],null],[4,[32,2],["keydown",[30,0,["handleReadRelayKeydown"]]],null],[12],[13],[1,"\\n "],[11,"button"],[24,0,"btn btn-secondary"],[24,4,"button"],[4,[32,2],["click",[30,0,["addReadRelay"]]],null],[12],[1,"Add"],[13],[1,"\\n "],[13],[1,"\\n"],[41,[30,0,["hasReadOverrides"]],[[[1," "],[11,"button"],[24,0,"btn-link reset-relays"],[24,4,"button"],[4,[32,2],["click",[30,0,["resetReadRelays"]]],null],[12],[1,"\\n Reset to Defaults\\n "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","new-write-relay"],[12],[1,"Write Relays"],[13],[1,"\\n "],[10,"ul"],[14,0,"relay-list"],[12],[1,"\\n"],[42,[28,[31,1],[[28,[31,1],[[30,0,["writeRelaysForDisplay"]]],null]],null],null,[[[1," "],[10,"li"],[12],[1,"\\n "],[10,1],[12],[1,[28,[32,1],[[30,2,["url"]]],null]],[13],[1,"\\n"],[41,[51,[30,2,["isRequired"]]],[[[1," "],[11,"button"],[24,0,"btn-remove-relay"],[24,"title","Remove relay"],[24,"aria-label","Remove"],[24,4,"button"],[4,[32,2],["click",[28,[32,3],[[30,0,["removeWriteRelay"]],[30,2,["url"]]],null]],null],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size","@color"],["x",14,"currentColor"]],null],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n"]],[2]],null],[1," "],[13],[1,"\\n "],[10,0],[14,0,"add-relay-input"],[12],[1,"\\n "],[11,"input"],[24,1,"new-write-relay"],[24,0,"form-control"],[24,"placeholder","relay.example.com"],[16,2,[30,0,["newWriteRelay"]]],[24,4,"text"],[4,[32,2],["input",[30,0,["updateNewWriteRelay"]]],null],[4,[32,2],["keydown",[30,0,["handleWriteRelayKeydown"]]],null],[12],[13],[1,"\\n "],[11,"button"],[24,0,"btn btn-secondary"],[24,4,"button"],[4,[32,2],["click",[30,0,["addWriteRelay"]]],null],[12],[1,"Add"],[13],[1,"\\n "],[13],[1,"\\n"],[41,[30,0,["hasWriteOverrides"]],[[[1," "],[11,"button"],[24,0,"btn-link reset-relays"],[24,4,"button"],[4,[32,2],["click",[30,0,["resetWriteRelays"]]],null],[12],[1,"\\n Reset to Defaults\\n "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","nostr-photo-fallback-uploads"],[12],[1,"Upload photos to fallback\\n servers"],[13],[1,"\\n "],[11,"select"],[24,1,"nostr-photo-fallback-uploads"],[24,0,"form-control"],[4,[32,2],["change",[28,[32,3],[[30,3],"nostrPhotoFallbackUploads"],null]],null],[12],[1,"\\n "],[10,"option"],[14,2,"true"],[15,"selected",[52,[30,0,["settings","nostrPhotoFallbackUploads"]],"selected"]],[12],[1,"\\n Yes\\n "],[13],[1,"\\n "],[10,"option"],[14,2,"false"],[15,"selected",[52,[51,[30,0,["settings","nostrPhotoFallbackUploads"]]],"selected"]],[12],[1,"\\n No\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[12],[1,"Cached data"],[13],[1,"\\n "],[11,"button"],[24,0,"btn btn-outline btn-full"],[24,4,"button"],[4,[32,2],["click",[30,0,["clearCache"]]],null],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size","@color"],["database",18,"var(--danger-color)"]],null],[1,"\\n Clear profiles, photos, and reviews\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"],[13]],["relay","relay","@onChange"],["each","-track-array","unless","if"]]',moduleName:"(unknown template module)",scope:()=>({Icon:wq,stripProtocol:Bet,on:Hw,fn:zq}),isStrictMode:!0}),this)}},qet=class extends vq{static{BF(this.prototype,"settings",[pp])}#z=void qF(this,"settings");static{Op(ig({id:null,block:'[[[10,"details"],[12],[1,"\\n "],[10,"summary"],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size"],["alert-triangle",20]],null],[1,"\\n "],[10,1],[12],[1,"Experimental"],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"details-content form-layout"],[12],[1,"\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","experimental-enable-photo-deletion"],[12],[1,"Enable photo deletion\\n (own photos)"],[13],[1,"\\n "],[11,"select"],[24,1,"experimental-enable-photo-deletion"],[24,0,"form-control"],[4,[32,1],["change",[28,[32,2],[[30,1],"experimentalEnablePhotoDeletion"],null]],null],[12],[1,"\\n "],[10,"option"],[14,2,"true"],[15,"selected",[52,[30,0,["settings","experimentalEnablePhotoDeletion"]],"selected"]],[12],[1,"\\n On\\n "],[13],[1,"\\n "],[10,"option"],[14,2,"false"],[15,"selected",[52,[51,[30,0,["settings","experimentalEnablePhotoDeletion"]]],"selected"]],[12],[1,"\\n Off\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"],[13]],["@onChange"],["if","unless"]]',moduleName:"(unknown template module)",scope:()=>({Icon:wq,on:Hw,fn:zq}),isStrictMode:!0}),this)}},Vet=class extends vq{static{BF(this.prototype,"settings",[pp])}#z=void qF(this,"settings");updateSetting(t,e){let n=e.target.value;"true"===n&&(n=!0),"false"===n&&(n=!1),this.settings.update(t,n)}static{$F(this.prototype,"updateSetting",[Vl])}static{Op(ig({id:null,block:'[[[10,0],[14,0,"sidebar-header has-back-btn"],[12],[1,"\\n "],[11,"button"],[24,0,"back-btn"],[24,4,"button"],[4,[32,0],["click",[30,1]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["arrow-left",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n "],[10,"h2"],[14,0,"sidebar-header-text-centered"],[12],[1,"Settings"],[13],[1,"\\n "],[11,"button"],[24,0,"close-btn"],[24,4,"button"],[4,[32,0],["click",[30,2]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["x",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n"],[13],[1,"\\n\\n"],[10,0],[14,0,"sidebar-content"],[12],[1,"\\n "],[10,"section"],[14,0,"settings-section"],[12],[1,"\\n "],[8,[32,2],null,[["@onChange"],[[30,0,["updateSetting"]]]],null],[1,"\\n "],[8,[32,3],null,[["@onChange"],[[30,0,["updateSetting"]]]],null],[1,"\\n "],[8,[32,4],null,[["@onChange"],[[30,0,["updateSetting"]]]],null],[1,"\\n "],[8,[32,5],null,[["@onChange"],[[30,0,["updateSetting"]]]],null],[1,"\\n "],[13],[1,"\\n"],[13]],["@onBack","@onClose"],[]]',moduleName:"(unknown template module)",scope:()=>({on:Hw,Icon:wq,AppMenuSettingsMapUi:jet,AppMenuSettingsApis:Uet,AppMenuSettingsNostr:$et,AppMenuSettingsExperimental:qet}),isStrictMode:!0}),this)}},Wet=Op(ig({id:null,block:'[[[10,0],[14,0,"sidebar-header has-back-btn"],[12],[1,"\\n "],[11,"button"],[24,0,"back-btn"],[24,4,"button"],[4,[32,0],["click",[30,1]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["arrow-left",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n "],[10,"h2"],[14,0,"sidebar-header-text-centered"],[12],[1,"About"],[13],[1,"\\n "],[11,"button"],[24,0,"close-btn"],[24,4,"button"],[4,[32,0],["click",[30,2]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["x",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n"],[13],[1,"\\n\\n"],[10,0],[14,0,"sidebar-content"],[12],[1,"\\n "],[10,"section"],[14,0,"about-section"],[12],[1,"\\n "],[10,2],[12],[1,"\\n "],[10,"strong"],[12],[1,"Marco"],[13],[1,"\\n (as in\\n "],[10,3],[14,6,"https://en.wikipedia.org/wiki/Marco_Polo"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"Marco Polo"],[13],[1,") is an unhosted maps application that respects your\\n privacy and choices.\\n "],[13],[1,"\\n "],[10,2],[12],[1,"\\n Connect your own\\n "],[10,3],[14,6,"https://remotestorage.io/"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"remote storage"],[13],[1,"\\n to sync place bookmarks across apps and devices.\\n "],[13],[1,"\\n "],[10,2],[12],[1,"\\n Connect your\\n "],[10,3],[14,6,"https://start.nostr.net"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"Nostr"],[13],[1,"\\n identity to publish photos of places.\\n "],[13],[1,"\\n\\n "],[10,"details"],[12],[1,"\\n "],[10,"summary"],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size"],["gift",20]],null],[1,"\\n "],[10,1],[12],[1,"Open Source"],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"details-content"],[12],[1,"\\n "],[10,"table"],[12],[1,"\\n "],[10,"thead"],[12],[1,"\\n "],[10,"tr"],[12],[1,"\\n "],[10,"th"],[12],[1,"Source"],[13],[1,"\\n "],[10,"th"],[12],[1,"License"],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"tbody"],[12],[1,"\\n "],[10,"tr"],[12],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://gitea.kosmos.org/raucao/marco"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n Marco App\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://en.wikipedia.org/wiki/GNU_Affero_General_Public_License"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n "],[10,"abbr"],[14,"title","GNU Affero General Public License"],[12],[1,"AGPL"],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"tr"],[12],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://openstreetmap.org/copyright"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n Map Data\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://opendatacommons.org/licenses/odbl/"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n "],[10,"abbr"],[14,"title","Open Data Commons Open Database License"],[12],[1,"ODbL"],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"tr"],[12],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://openfreemap.org"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n Map tiles\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://github.com/hyperknot/openfreemap/blob/main/LICENSE.md"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n Various\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"tr"],[12],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://github.com/feathericons/feather"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n Feather Icons\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://en.wikipedia.org/wiki/MIT_License"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n "],[10,"abbr"],[14,"title","MIT License"],[12],[1,"MIT"],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"tr"],[12],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://pinhead.ink/"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n Pinhead Icons\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://github.com/waysidemapping/pinhead?tab=readme-ov-file#where-the-icons-are-from"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n Various\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"details"],[12],[1,"\\n "],[10,"summary"],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["heart",20,"#e5533d"]],null],[1,"\\n "],[10,1],[12],[1,"Contribute"],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"details-content"],[12],[1,"\\n "],[10,2],[12],[1,"\\n "],[10,"strong"],[12],[1,"Most impactful:"],[13],[1,"\\n "],[13],[1,"\\n "],[10,"ul"],[12],[1,"\\n "],[10,"li"],[12],[1,"\\n Add and improve data for points of interest in\\n "],[10,3],[14,6,"https://www.openstreetmap.org"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"OpenStreetMap"],[13],[1,".\\n "],[13],[1,"\\n "],[10,"li"],[12],[1,"\\n Add place photos with your Nostr account.\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,2],[12],[1,"\\n "],[10,"strong"],[12],[1,"Most appreciated:"],[13],[1,"\\n Use this app as much as you can and\\n "],[10,3],[14,6,"https://community.remotestorage.io/t/marco-an-unhosted-maps-app/941"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"submit feedback"],[13],[1,"\\n about your experience, problems, feature wishes, etc.\\n "],[13],[1,"\\n "],[10,2],[12],[1,"\\n "],[10,"strong"],[12],[1,"Most supportive:"],[13],[1,"\\n Tell others about this app, on social media, in blog posts,\\n educational videos, etc.\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"],[13]],["@onBack","@onClose"],[]]',moduleName:"(unknown template module)",scope:()=>({on:Hw,Icon:wq}),isStrictMode:!0}),qq()),Het=class extends vq{static{BF(this.prototype,"router",[pp])}#Gt=void qF(this,"router");static{BF(this.prototype,"currentView",[Wr],function(){return"menu"})}#He=void qF(this,"currentView");setView(t){this.currentView=t}static{$F(this.prototype,"setView",[Vl])}goToSavedPlaces(){this.router.transitionTo("lists.index")}static{$F(this.prototype,"goToSavedPlaces",[Vl])}goToContributions(){this.router.transitionTo("contributions")}static{$F(this.prototype,"goToContributions",[Vl])}static{Op(ig({id:null,block:'[[[10,0],[14,0,"sidebar app-menu-pane"],[12],[1,"\\n"],[41,[28,[32,0],[[30,0,["currentView"]],"menu"],null],[[[1," "],[8,[32,1],null,[["@onNavigate","@onClose","@onSavedPlaces","@onContributions"],[[30,0,["setView"]],[30,1],[30,0,["goToSavedPlaces"]],[30,0,["goToContributions"]]]],null],[1,"\\n\\n"]],[]],[[[41,[28,[32,0],[[30,0,["currentView"]],"settings"],null],[[[1," "],[8,[32,2],null,[["@onBack","@onClose"],[[28,[32,3],[[30,0,["setView"]],"menu"],null],[30,1]]],null],[1,"\\n\\n"]],[]],[[[41,[28,[32,0],[[30,0,["currentView"]],"about"],null],[[[1," "],[8,[32,4],null,[["@onBack","@onClose"],[[28,[32,3],[[30,0,["setView"]],"menu"],null],[30,1]]],null],[1,"\\n "]],[]],null]],[]]]],[]]],[13]],["@onClose"],["if"]]',moduleName:"(unknown template module)",scope:()=>({eq:Gq,AppMenuHome:Det,AppMenuSettings:Vet,fn:zq,AppMenuAbout:Wet}),isStrictMode:!0}),this)}},Get=a({default:()=>Zet}),Zet=class extends vq{static{BF(this.prototype,"router",[pp])}#Gt=void qF(this,"router");close(){this.router.transitionTo("index")}static{$F(this.prototype,"close",[Vl])}static{Op(ig({id:null,block:'[[[8,[32,0],null,[["@onClose"],[[30,0,["close"]]]],null]],[],[]]',moduleName:"(unknown template module)",scope:()=>({AppMenu:Het}),isStrictMode:!0}),this)}},Ket=a({default:()=>Yet}),Yet=class extends Qh{static{BF(this.prototype,"mapUi",[pp])}#Zt=void qF(this,"mapUi");activate(){this.mapUi.showSidebar()}},Xet=a({default:()=>Jet}),Jet=class extends Qh{static{BF(this.prototype,"osmAuth",[pp])}#Fe=void qF(this,"osmAuth");static{BF(this.prototype,"router",[pp])}#Gt=void qF(this,"router");async model(){try{await this.osmAuth.handleCallback()}catch(t){console.error("Failed to handle OSM OAuth callback",t)}finally{this.router.transitionTo("index")}}},Qet=a({default:()=>tnt}),tnt=class extends vq{static{BF(this.prototype,"router",[pp])}#Gt=void qF(this,"router");static{BF(this.prototype,"storage",[pp])}#U=void qF(this,"storage");static{BF(this.prototype,"mapUi",[pp])}#Zt=void qF(this,"mapUi");static{BF(this.prototype,"localPlace",[Wr],function(){return null})}#Ge=void qF(this,"localPlace");constructor(){super(...arguments),this.localPlace=this.args.model}get place(){const t=this.args.model,e=t.osmId||t.id;return this.storage.findPlaceById(e)||(!this.localPlace||this.localPlace.osmId!==e&&this.localPlace.id!==e?t.createdAt?{...t,id:void 0,createdAt:void 0,geohash:void 0}:t:this.localPlace)}handleUpdate(t){console.debug("Updating local place state:",t),this.localPlace=t,this.storage.notifyChange()}static{$F(this.prototype,"handleUpdate",[Vl])}refreshMap(){this.storage.notifyChange()}static{$F(this.prototype,"refreshMap",[Vl])}navigateBack(t){if(null===t)if(this.mapUi.returnToRoute){this.mapUi.showSidebar();const{name:t,model:e}=this.mapUi.returnToRoute;void 0!==e?this.router.transitionTo(t,e):this.router.transitionTo(t)}else this.mapUi.returnToSearch&&this.mapUi.currentSearch?(this.mapUi.showSidebar(),this.router.transitionTo("search",{queryParams:this.mapUi.currentSearch})):this.router.transitionTo("index");else this.mapUi.showSidebar(),this.router.transitionTo("place",t)}static{$F(this.prototype,"navigateBack",[Vl])}close(){this.mapUi.clearSelection(),this.mapUi.hideSidebar(),this.mapUi.returnToSearch&&this.mapUi.currentSearch?this.router.transitionTo("search",{queryParams:this.mapUi.currentSearch}):this.router.transitionTo("index")}static{$F(this.prototype,"close",[Vl])}static{Op(ig({id:null,block:'[[[41,[30,0,["mapUi","isSidebarVisible"]],[[[1," "],[8,[32,0],null,[["@selectedPlace","@onClose","@onSelect","@onBookmarkChange","@onUpdate"],[[30,0,["place"]],[30,0,["close"]],[30,0,["navigateBack"]],[30,0,["refreshMap"]],[30,0,["handleUpdate"]]]],null],[1,"\\n"]],[]],null]],[],["if"]]',moduleName:"(unknown template module)",scope:()=>({PlacesSidebar:gH}),isStrictMode:!0}),this)}},ent=a({default:()=>nnt}),nnt=class extends Qh{static{BF(this.prototype,"storage",[pp])}#U=void qF(this,"storage");static{BF(this.prototype,"osm",[pp])}#B=void qF(this,"osm");static{BF(this.prototype,"mapUi",[pp])}#Zt=void qF(this,"mapUi");async model(t){const e=t.place_id;let n,r,i=!1;(e.startsWith("osm:node:")||e.startsWith("osm:way:")||e.startsWith("osm:relation:"))&&(i=!0,[,n,r]=e.split(":"),console.debug(`Fetching explicit OSM ${n}:`,r));let s=null;i&&(s=this.loadOsmPlace(r,n)),await this.waitForSync();let o=i?r:e,a=this.storage.findPlaceById(o);return a&&i&&a.osmType!==n&&(a=null),a?(console.debug("Found in bookmarks:",a.title),a):i?(console.debug(`Not in bookmarks, using explicitly fetched OSM ${n}:`,r),await s):(console.warn("Not in bookmarks:",e),null)}async waitForSync(){if(this.storage.initialSyncDone)return;console.debug("Waiting for initial storage sync...");const t=Date.now();for(;!this.storage.initialSyncDone;){if(Date.now()-t>5e3){console.warn("Timed out waiting for initial sync");break}await new Promise(t=>setTimeout(t,100))}}async afterModel(t){if(t&&t.osmId&&t.osmType&&"node"!==t.osmType&&!t.geojson){console.debug("Model missing geometry, fetching full OSM details...");const e=await this.loadOsmPlace(t.osmId,t.osmType);e&&(Object.assign(t,e),console.debug("Enriched model with full OSM details",t))}if(t){const e={preventZoom:this.mapUi.preventNextZoom};this.mapUi.selectPlace(t,e),this.mapUi.showSidebar(),this.mapUi.preventNextZoom=!1}this.mapUi.stopSearch()}deactivate(){this.mapUi.clearSelection(),this.mapUi.returnToSearch=!1,this.mapUi.returnToRoute=null}async loadOsmPlace(t,e=null){try{const n=await this.osm.fetchOsmObject(t,e);if(n)return console.debug("Found OSM POI:",n),n}catch(n){console.error("Failed to fetch POI",n)}return null}setupController(t,e){super.setupController(t,e),this.checkUpdates(e)}async checkUpdates(t){if(t&&t.osmId&&t.osmType){if(t.id){const e=await this.storage.refreshPlace(t);return void(e&&this.mapUi.selectPlace(e,{preventZoom:!0}))}try{const e=await this.osm.fetchOsmObject(t.osmId,t.osmType,{forceFresh:!0});e&&function(t,e){const n=Math.abs((t.lat??0)-(e.lat??0)),r=Math.abs((t.lon??0)-(e.lon??0));if(n>1e-5||r>1e-5)return!0;const i=t.osmTags||{},s=e.osmTags||{},o=new Set([...Object.keys(i),...Object.keys(s)]);for(const a of o)if(i[a]!==s[a])return!0;return!1}(t,e)&&(Object.assign(t,e),this.mapUi.selectPlace(t,{preventZoom:!0}))}catch(e){console.debug("[place] Fresh fetch failed for",t.osmId,e)}}}serialize(t){return t.osmId&&t.osmType?{place_id:`osm:${t.osmType}:${t.osmId}`}:t.id?{place_id:t.id}:{place_id:t.osmId}}},rnt=a({default:()=>int}),int=class extends vq{static{BF(this.prototype,"router",[pp])}#Gt=void qF(this,"router");static{BF(this.prototype,"storage",[pp])}#U=void qF(this,"storage");static{BF(this.prototype,"mapUi",[pp])}#Zt=void qF(this,"mapUi");get initialPlace(){return{title:"",description:""}}close(){this.router.transitionTo("index")}static{$F(this.prototype,"close",[Vl])}async savePlace(t){try{const e=this.mapUi.creationCoordinates||{lat:this.args.model.lat,lon:this.args.model.lon},n=parseFloat(e.lat.toFixed(6)),r=parseFloat(e.lon.toFixed(6)),i={title:t.title||"Untitled Place",description:t.description,lat:n,lon:r,tags:[],osmTags:{}},s=await this.storage.storePlace(i);console.debug("Created private place:",s.title),this.router.replaceWith("place",s)}catch(e){console.error("Failed to create place:",e),alert("Failed to create place: "+e.message)}}static{$F(this.prototype,"savePlace",[Vl])}static{Op(ig({id:null,block:'[[[41,[30,0,["mapUi","isSidebarVisible"]],[[[1," "],[10,0],[14,0,"sidebar"],[12],[1,"\\n "],[10,0],[14,0,"sidebar-header"],[12],[1,"\\n "],[10,"h2"],[12],[8,[32,0],null,[["@name","@size","@color"],["plus-circle",20,"#ea4335"]],null],[1,"\\n New Place"],[13],[1,"\\n "],[11,"button"],[24,0,"close-btn"],[24,4,"button"],[4,[32,1],["click",[30,0,["close"]]],null],[12],[8,[32,0],null,[["@name","@size","@color"],["x",20,"#333"]],null],[13],[1,"\\n "],[13],[1,"\\n\\n "],[10,0],[14,0,"sidebar-content"],[12],[1,"\\n "],[10,2],[14,0,"helper-text"],[12],[1,"\\n Drag the map to position the crosshair.\\n "],[13],[1,"\\n\\n "],[8,[32,2],null,[["@place","@onSave","@onCancel"],[[30,0,["initialPlace"]],[30,0,["savePlace"]],[30,0,["close"]]]],null],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null]],[],["if"]]',moduleName:"(unknown template module)",scope:()=>({Icon:wq,on:Hw,PlaceEditForm:XW}),isStrictMode:!0}),this)}},snt=a({default:()=>ont}),ont=class extends Qh{static{BF(this.prototype,"mapUi",[pp])}#Zt=void qF(this,"mapUi");queryParams={lat:{refreshModel:!0},lon:{refreshModel:!0}};model(t){return{lat:parseFloat(t.lat),lon:parseFloat(t.lon)}}setupController(t,e){super.setupController(t,e),e.lat&&e.lon&&this.mapUi.updateCreationCoordinates(e.lat,e.lon),this.mapUi.startCreating(),this.mapUi.showSidebar()}deactivate(){this.mapUi.stopCreating()}},ant=Object.assign({},Q_,{"marco/config/environment":rx,"marco/deprecation-workflow":xx,"marco/router":Ix,"marco/services/blossom":VF,"marco/services/contributions":tz,"marco/services/image-processor":iz,"marco/services/local-forage":az,"marco/services/map-ui":uz,"marco/services/nostr-auth":zD,"marco/services/nostr-data":bU,"marco/services/nostr-relay":UU,"marco/services/nostr-zap":XU,"marco/services/osm-auth":wB,"marco/services/osm":NB,"marco/services/photon":zB,"marco/services/settings":jB,"marco/services/storage":t$,"marco/services/toast":n$,"marco/utils/contributions":ZF,"marco/utils/device":OD,"marco/utils/format-text":CB,"marco/utils/geo":i$,"marco/utils/geohash-coverage":yU,"marco/utils/icons":o$,"marco/utils/nostr":cU,"marco/utils/osm-icons":h$,"marco/utils/osm":RB,"marco/utils/photo-tag-suggestions":v$,"marco/utils/place-mapping":_$,"marco/utils/poi-categories":PB,"marco/utils/poi-category-matcher":g$,"marco/utils/social-links":C$,"marco/workers/image-processor":B$,"marco/services/page-title":K$,"marco/templates/contributions":PV,"marco/controllers/contributions":qW,"marco/routes/contributions":WW,"marco/templates/lists":GW,"marco/routes/lists":KW,"marco/templates/lists/list":mH,"marco/controllers/lists/list":vH,"marco/routes/lists/list":SH,"marco/templates/lists/index":EH,"marco/routes/lists/index":TH,"marco/templates/search":IH,"marco/controllers/search":MH,"marco/routes/search":OH,"marco/templates/application":Met,"marco/routes/application":Oet,"marco/routes/index":Fet,"marco/templates/menu":Get,"marco/routes/menu":Ket,"marco/routes/oauth/osm-callback":Xet,"marco/templates/place":Qet,"marco/routes/place":ent,"marco/templates/place/new":rnt,"marco/routes/place/new":snt},{}),lnt=class{constructor(t,e,n){this.limit=t,this.func=e,this.store=n,this.size=0,this.misses=0,this.hits=0,this.store=n||new Map}get(t){let e=this.store.get(t);return this.store.has(t)?(this.hits++,this.store.get(t)):(this.misses++,e=this.set(t,this.func(t)),e)}set(t,e){return this.limit>this.size&&(this.size++,this.store.set(t,e)),e}purge(){this.store.clear(),this.size=0,this.hits=0,this.misses=0}},cnt=/[ _]/g,unt=new lnt(1e3,t=>function(t){return bnt.get(t)}(t).replace(cnt,"-")),hnt=/^(\-|_)+(.)?/,dnt=/(.)(\-|\_|\.|\s)+(.)?/g,pnt=/(^|\/|\.)([a-z])/g,fnt=new lnt(1e3,t=>{const e=(t,e,n)=>n?`_${n.toUpperCase()}`:"",n=(t,e,n,r)=>e+(r?r.toUpperCase():""),r=t.split("/");for(let i=0;it.toUpperCase())}),gnt=/([a-z\d])([A-Z]+)/g,mnt=/\-|\s+/g,ynt=new lnt(1e3,t=>t.replace(gnt,"$1_$2").replace(mnt,"_").toLowerCase()),vnt=/([a-z\d])([A-Z])/g,bnt=new lnt(1e3,t=>t.replace(vnt,"$1_$2").toLowerCase());function wnt(t){return fnt.get(t)}var _nt=class{constructor(t){this._entries=t||globalThis.requirejs.entries}moduleNames(){return Object.keys(this._entries)}has(t){return t in this._entries}get(...t){return globalThis.require(...t)}},xnt=class{static moduleBasedResolver=!0;moduleBasedResolver=!0;_deprecatedPodModulePrefix=!1;_normalizeCache=Object.create(null);static create(t){return new this(t)}moduleNameLookupPatterns=[this.podBasedModuleName,this.podBasedComponentsInSubdir,this.mainModuleName,this.defaultModuleName,this.nestedColocationComponentModuleName];static withModules(t){return class extends(this){static explicitModules=t}}constructor(t){if(Object.assign(this,t),!this._moduleRegistry){let t=this.constructor.explicitModules;t?this._moduleRegistry={moduleNames:()=>Object.keys(t),has:e=>Boolean(t[e]),get:e=>t[e],addModules(e){t=Object.assign({},t,e)}}:(void 0===globalThis.requirejs.entries&&(globalThis.requirejs.entries=globalThis.requirejs._eak_seen),this._moduleRegistry=new _nt)}this.pluralizedTypes=this.pluralizedTypes||Object.create(null),this.pluralizedTypes.config||(this.pluralizedTypes.config="config")}makeToString(t,e){return this.namespace.modulePrefix+"@"+e+":"}shouldWrapInClassFactory(){return!1}parseName(t){if(!0===t.parsedName)return t;let e,n,r,i=t.split("@");if(3===i.length){if(0===i[0].length){e=`@${i[1]}`;let t=i[2].split(":");n=t[0],r=t[1]}else e=`@${i[1]}`,n=i[0].slice(0,-1),r=i[2];"template:components"===n&&(r=`components/${r}`,n="template")}else if(2===i.length){let t=i[0].split(":");if(2===t.length)0===t[1].length?(n=t[0],r=`@${i[1]}`):(e=t[1],n=t[0],r=i[1]);else{let t=i[1].split(":");e=i[0],n=t[0],r=t[1]}"template"===n&&0===e.lastIndexOf("components/",0)&&(r=`components/${r}`,e=e.slice(11))}else i=t.split(":"),n=i[0],r=i[1];let s=r,o=this.namespace;return{parsedName:!0,fullName:t,prefix:e||this.prefix({type:n}),type:n,fullNameWithoutType:s,name:r,root:o,resolveMethodName:"resolve"+wnt(n)}}resolveOther(t){Cnt("`modulePrefix` must be defined",this.namespace.modulePrefix);let e=this.findModuleName(t);if(e){let r=this._extractDefaultExport(e,t);if(void 0===r)throw new Error(` Expected to find: '${t.fullName}' within '${e}' but got 'undefined'. Did you forget to 'export default' within '${e}'?`);return this.shouldWrapInClassFactory(r,t)&&(n=r,r={create:t=>"function"==typeof n.extend?n.extend(t):n}),r}var n}normalize(t){return this._normalizeCache[t]||(this._normalizeCache[t]=this._normalize(t))}resolve(t){if("resolver:current"===t)return{create:()=>this};let e,n=this.parseName(t),r=n.resolveMethodName;return"function"==typeof this[r]&&(e=this[r](n)),null==e&&(e=this.resolveOther(n)),e}addModules(t){if(!this._moduleRegistry.addModules)throw new Error("addModules is only supported when your Resolver has been configured to use static modules via Resolver.withModules()");this._moduleRegistry.addModules(t)}_normalize(t){let e=t.split(":");if(e.length>1){let t=e[0];return"component"===t||"helper"===t||"modifier"===t||"template"===t&&0===e[1].indexOf("components/")?t+":"+e[1].replace(/_/g,"-"):t+":"+function(t){return unt.get(t)}(e[1].replace(/\./g,"/"))}return t}pluralize(t){return this.pluralizedTypes[t]||(this.pluralizedTypes[t]=t+"s")}podBasedLookupWithPrefix(t,e){let n=e.fullNameWithoutType;return"template"===e.type&&(n=n.replace(/^components\//,"")),t+"/"+n+"/"+e.type}podBasedModuleName(t){let e=this.namespace.podModulePrefix||this.namespace.modulePrefix;return this.podBasedLookupWithPrefix(e,t)}podBasedComponentsInSubdir(t){let e=this.namespace.podModulePrefix||this.namespace.modulePrefix;if(e+="/components","component"===t.type||/^components/.test(t.fullNameWithoutType))return this.podBasedLookupWithPrefix(e,t)}resolveEngine(t){let e=t.fullNameWithoutType+"/engine";if(this._moduleRegistry.has(e))return this._extractDefaultExport(e)}resolveRouteMap(t){let e=t.fullNameWithoutType,n=e+"/routes";if(this._moduleRegistry.has(n)){let t=this._extractDefaultExport(n);return Cnt(`The route map for ${e} should be wrapped by 'buildRoutes' before exporting.`,t.isRouteMap),t}}resolveTemplate(t){return this.resolveOther(t)}mainModuleName(t){if("main"===t.fullNameWithoutType)return t.prefix+"/"+t.type}defaultModuleName(t){return t.prefix+"/"+this.pluralize(t.type)+"/"+t.fullNameWithoutType}nestedColocationComponentModuleName(t){if("component"===t.type)return t.prefix+"/"+this.pluralize(t.type)+"/"+t.fullNameWithoutType+"/index"}prefix(t){let e=this.namespace.modulePrefix;return this.namespace[t.type+"Prefix"]&&(e=this.namespace[t.type+"Prefix"]),e}findModuleName(t){let e,n=this.moduleNameLookupPatterns;for(let r=0,i=n.length;rr.length+i.length)return t+":"+e.slice(s+r.length,o);let a=n+"/"+this.pluralize(t)+"/";return 0===e.indexOf(a)&&e.length>a.length?t+":"+e.slice(a.length):void 0}_extractDefaultExport(t){let e=this._moduleRegistry.get(t,null,null,!0);return e&&e.default&&(e=e.default),e}};function Cnt(t,e){if(!e)throw new Error(t)}(class extends J_{modulePrefix=ix.modulePrefix;podModulePrefix=ix.podModulePrefix;Resolver=xnt.withModules(ant);inspector=function(t){!function(t){globalThis.emberInspectorApps||(globalThis.emberInspectorApps=[]),globalThis.emberInspectorApps.push({app:t,name:`app-${globalThis.emberInspectorApps.length}`,loadCompatInspector:()=>sU(()=>import("./modules-4-12-Bd2khITt.js"),[])}),globalThis.dispatchEvent&&globalThis.dispatchEvent(new Event("Ember"))}(t)}(this)}).create(ix.APP);export{Hv as $,al as $n,it as $r,jp as $t,cx as A,dc as An,Xe as Ar,cm as At,fb as B,cc as Bn,ee as Br,gg as Bt,TO as C,Xc as Cn,or as Cr,oy as Ct,AA as D,xc as Dn,Xn as Dr,ty as Dt,FA as E,Ec as En,Bn as Er,xm as Et,O_ as F,sc as Fn,Oe as Fr,Wg as Ft,sb as G,ec as Gn,Yt as Gr,Bp as Gt,vb as H,Kl as Hn,re as Hr,Up as Ht,Uw as I,Jl as In,Ee as Ir,sm as It,ab as J,Dl as Jn,Ft as Jr,Wp as Jt,ob as K,Bl as Kn,Kt as Kr,Hp as Kt,db as L,Zl as Ln,Re as Lr,$g as Lt,k_ as M,nc as Mn,Je as Mr,tm as Mt,x_ as N,rc as Nn,en as Nr,nm as Nt,hM as O,_c as On,He as Or,Jm as Ot,C_ as P,Gl as Pn,Me as Pr,rm as Pt,Wv as Q,ol as Qn,st as Qr,Dp as Qt,gb as R,uc as Rn,se as Rr,Sg as Rt,VO as S,Jc as Sn,hr as Sr,ly as St,hO as T,Mc as Tn,rr as Tr,Xm as Tt,yb as U,Hl as Un,ie as Ur,qp as Ut,mb as V,Ql as Vn,te as Vr,vg as Vt,eb as W,tc as Wn,Qt as Wr,$p as Wt,Kv as X,kl as Xn,ct as Xr,Gp as Xt,nb as Y,Tl as Yn,ut as Yr,Zp as Yt,Yv as Z,_l as Zn,nt as Zr,Fp as Zt,X$ as _,mu as _n,Sr as _r,By as _t,Eq as a,w as ai,zu as an,Mo as ar,Ey as at,_N as b,cu as bn,br,cy as bt,Lq as c,xu as cn,gs as cr,Ly as ct,Pq as d,Uu as dn,ni as dr,Vy as dt,et as ei,zp as en,ll as er,Gv as et,Cq as f,_u as fn,Kr as fr,Py as ft,rq as g,Pu as gn,kr as gr,nv as gt,iq as h,Au as hn,Pr as hr,rv as ht,Sq as i,_ as ii,Cu as in,$a as ir,sv as it,K_ as j,oc as jn,Qe as jr,Vg as jt,Ex as k,vc as kn,Ve as kr,Qm as kt,kq as l,Du as ln,Ci as lr,qy as lt,sq as m,Fu as mn,Ar as mr,iv as mt,AW as n,p as ni,Op as nn,tl as nr,Dv as nt,Rq as o,b as oi,Nu as on,Io as or,ky as ot,uq as p,wu as pn,Dr as pr,Sy as pt,ib as q,Ul as qn,Ct as qr,Vp as qt,Iq as r,h as ri,hp as rn,qa as rr,mv as rt,Tq as s,a as si,Mu as sn,Gs as sr,_y as st,FH as t,m as ti,Np as tn,nl as tr,Uv as tt,Mq as u,ju as un,ri as ur,xy as ut,Y$ as v,bu as vn,Mr as vr,Iy as vt,CO as w,Gc as wn,nr as wr,ay as wt,cN as x,lu as xn,gr as xr,wm as xt,jF as y,vu as yn,Rr as yr,Uy as yt,cb as z,ac as zn,ne as zr,mg as zt}; \ No newline at end of file diff --git a/release/assets/modules-4-12-DSaOCg7W.js b/release/assets/modules-4-12-Bd2khITt.js similarity index 99% rename from release/assets/modules-4-12-DSaOCg7W.js rename to release/assets/modules-4-12-Bd2khITt.js index 559f9df..a22297b 100644 --- a/release/assets/modules-4-12-DSaOCg7W.js +++ b/release/assets/modules-4-12-Bd2khITt.js @@ -1 +1 @@ -import{$ as e,$n as t,$r as a,$t as n,A as s,An as r,Ar as i,At as o,B as l,Bn as g,Br as d,Bt as h,Cn as c,Cr as u,Ct as p,Dn as _,Dr as m,Dt as y,En as C,Er as b,Et as f,F as A,Fn as M,Fr as I,Ft as D,G as T,Gn as v,Gr as O,Gt as E,H as S,Hn as R,Hr as j,Ht as x,I as w,In as P,Ir as N,It as V,J as F,Jn as G,Jr as L,Jt as k,K as U,Kn as Y,Kr as B,Kt as H,L as $,Ln as z,Lr as W,Lt as q,M as Z,Mn as J,Mr as K,Mt as Q,N as X,Nn as ee,Nr as te,Nt as ae,On as ne,Or as se,Ot as re,P as ie,Pn as oe,Pr as le,Pt as ge,Q as de,Qn as he,Qr as ce,Qt as ue,R as pe,Rn as _e,Rr as me,Rt as ye,Sn as Ce,Sr as be,St as fe,Tn as Ae,Tr as Me,Tt as Ie,U as De,Un as Te,Ur as ve,Ut as Oe,V as Ee,Vn as Se,Vr as Re,Vt as je,W as xe,Wn as we,Wr as Pe,Wt as Ne,X as Ve,Xn as Fe,Xr as Ge,Xt as Le,Y as ke,Yn as Ue,Yr as Ye,Yt as Be,Z as He,Zn as $e,Zr as ze,Zt as We,_ as qe,_n as Ze,_r as Je,_t as Ke,a as Qe,ai as Xe,an as et,ar as tt,at,bn as nt,br as st,bt as rt,c as it,cn as ot,cr as lt,ct as gt,d as dt,dn as ht,dr as ct,dt as ut,ei as pt,en as _t,er as mt,et as yt,f as Ct,fn as bt,fr as ft,ft as At,g as Mt,gn as It,gr as Dt,gt as Tt,h as vt,hn as Ot,hr as Et,ht as St,i as Rt,ii as jt,in as xt,ir as wt,it as Pt,j as Nt,jn as Vt,jr as Ft,jt as Gt,k as Lt,kn as kt,kr as Ut,kt as Yt,l as Bt,ln as Ht,lr as $t,lt as zt,m as Wt,mn as qt,mr as Zt,mt as Jt,n as Kt,ni as Qt,nn as Xt,nr as ea,nt as ta,o as aa,oi as na,on as sa,or as ra,ot as ia,p as oa,pn as la,pr as ga,pt as da,q as ha,qn as ca,qr as ua,qt as pa,r as _a,ri as ma,rn as ya,rr as Ca,rt as ba,s as fa,si as Aa,sn as Ma,sr as Ia,st as Da,t as Ta,ti as va,tn as Oa,tr as Ea,tt as Sa,u as Ra,un as ja,ur as xa,ut as wa,v as Pa,vn as Na,vr as Va,vt as Fa,wn as Ga,wr as La,wt as ka,xn as Ua,xr as Ya,xt as Ba,yn as Ha,yr as $a,yt as za,z as Wa,zn as qa,zr as Za,zt as Ja}from"./main-C4QF_Hr3.js";var Ka=Aa({default:()=>Ga}),Qa=Aa({default:()=>tn}),Xa={willChange:"_arrangedContentArrayWillChange",didChange:"_arrangedContentArrayDidChange"};function en(e,t){return"[]"===t?(e._revalidate(),e._arrTag):"length"===t?(e._revalidate(),e._lengthTag):B(e,t)}var tn=class extends Y{_objectsDirtyIndex=0;_objects=null;_lengthDirty=!0;_length=0;_arrangedContent=null;_arrangedContentIsUpdating=!1;_arrangedContentTag=null;_arrangedContentRevision=null;_lengthTag=null;_arrTag=null;init(e){super.init(e),W(this,en)}[b](){this._revalidate()}willDestroy(){this._removeArrangedContentArrayObserver()}objectAtContent(e){let t=be(this,"arrangedContent");return le(t,e)}replace(e,t,a){this.replaceContent(e,t,a)}replaceContent(e,t,a){let n=be(this,"content");$a(n,e,t,a)}objectAt(e){if(this._revalidate(),null===this._objects&&(this._objects=[]),-1!==this._objectsDirtyIndex&&e>=this._objectsDirtyIndex){let e=be(this,"arrangedContent");if(e){let t=this._objects.length=be(e,"length");for(let e=this._objectsDirtyIndex;es)&&(this._objectsDirtyIndex=s),this._lengthDirty=!0,Dt(this,t,a,n,!1)}_invalidate(){this._objectsDirtyIndex=0,this._lengthDirty=!0}_revalidate(){if(!0!==this._arrangedContentIsUpdating&&(null===this._arrangedContentTag||!Ye(this._arrangedContentTag,this._arrangedContentRevision))){let e=this.get("arrangedContent");null===this._arrangedContentTag?this._addArrangedContentArrayObserver(e):(this._arrangedContentIsUpdating=!0,this._updateArrangedContentArray(e),this._arrangedContentIsUpdating=!1);let t=this._arrangedContentTag=B(this,"arrangedContent");this._arrangedContentRevision=Ge(this._arrangedContentTag),O(e)?(this._lengthTag=ua([t,I(e,"length")]),this._arrTag=ua([t,I(e,"[]")])):this._lengthTag=this._arrTag=t}}};tn.reopen(Ga,{arrangedContent:st("content")});var an=Aa({Meta:()=>va,UNDEFINED:()=>Qt,counters:()=>ma,meta:()=>jt,peekMeta:()=>Xe,setMeta:()=>na}),nn=Aa({ActionHandler:()=>Fe,Comparable:()=>C,ContainerProxyMixin:()=>Ua,MutableEnumerable:()=>_,RSVP:()=>wt,RegistryProxyMixin:()=>nt,TargetActionSupport:()=>Pa,_ProxyMixin:()=>Sa,_contentFor:()=>ta,onerrorDefault:()=>Ca}),sn=Aa({Cache:()=>u,GUID_KEY:()=>he,ROOT:()=>se,canInvoke:()=>gn,checkHasSuper:()=>Ut,dictionary:()=>tt,generateGuid:()=>t,getDebugName:()=>xe,getName:()=>xa,guidFor:()=>mt,intern:()=>ea,isObject:()=>O,isProxy:()=>La,lookupDescriptor:()=>Ya,observerListenerMetaFor:()=>i,setListeners:()=>Ft,setName:()=>ct,setObservers:()=>K,setProxy:()=>Me,setWithMandatorySetter:()=>{},setupMandatorySetter:()=>{},teardownMandatorySetter:()=>{},toString:()=>ln,uuid:()=>Ea,wrap:()=>te}),rn=Object.prototype.toString;function on(e){return null==e}function ln(e){if("string"==typeof e)return e;if(null===e)return"null";if(void 0===e)return"undefined";if(Array.isArray(e)){let t="";for(let a=0;a0&&(t+=","),on(e[a])||(t+=ln(e[a]));return t}return"function"==typeof e.toString?e.toString():rn.call(e)}function gn(e,t){return null!=e&&"function"==typeof e[t]}var dn=Aa({ActionSupport:()=>qe,CoreView:()=>vt,EventDispatcher:()=>r,MUTABLE_CELL:()=>ba,ViewStates:()=>Mt,addChildView:()=>Vt,clearElementView:()=>J,clearViewElement:()=>ee,constructStyleDeprecationMessage:()=>oe,getChildViews:()=>M,getElementView:()=>P,getRootViews:()=>z,getViewBoundingClientRect:()=>_e,getViewBounds:()=>qa,getViewClientRects:()=>g,getViewElement:()=>Se,getViewId:()=>R,isSimpleClick:()=>Te,setElementView:()=>we,setViewElement:()=>v}),hn=Aa({default:()=>cn}),cn=$e.create({reason:null,isPending:m("isSettled",function(){return!be(this,"isSettled")}).readOnly(),isSettled:m("isRejected","isFulfilled",function(){return be(this,"isRejected")||be(this,"isFulfilled")}).readOnly(),isRejected:!1,isFulfilled:!1,promise:m({get(){throw new Error("PromiseProxy's promise must be set")},set(e,t){return function(e,t){return ga(e,{isFulfilled:!1,isRejected:!1}),t.then(t=>(e.isDestroyed||e.isDestroying||ga(e,{content:t,isFulfilled:!0}),t),t=>{throw e.isDestroyed||e.isDestroying||ga(e,{reason:t,isRejected:!0}),t},"Ember: PromiseProxy")}(this,t)}}),then:un("then"),catch:un("catch"),finally:un("finally")});function un(e){return function(...t){return be(this,"promise")[e](...t)}}var pn=Aa({default:()=>_n}),_n=class extends c{};_n.PrototypeMixin.reopen(Sa);var mn=Aa({CustomComponentManager:()=>$,CustomHelperManager:()=>xt,CustomModifierManager:()=>pe,capabilityFlagsFrom:()=>Ze,componentCapabilities:()=>Wa,getComponentTemplate:()=>Oa,getCustomTagFor:()=>N,getInternalComponentManager:()=>et,getInternalHelperManager:()=>sa,getInternalModifierManager:()=>Ma,hasCapability:()=>Na,hasDestroyable:()=>ot,hasInternalComponentManager:()=>Ht,hasInternalHelperManager:()=>ja,hasInternalModifierManager:()=>ht,hasValue:()=>bt,helperCapabilities:()=>la,managerHasCapability:()=>Ha,modifierCapabilities:()=>l,setComponentManager:()=>Ee,setComponentTemplate:()=>Xt,setCustomTagFor:()=>W,setHelperManager:()=>S,setInternalComponentManager:()=>qt,setInternalHelperManager:()=>Ot,setInternalModifierManager:()=>It,setModifierManager:()=>De}),yn=Aa({ConcreteBounds:()=>Ja,CurriedValue:()=>Ba,CursorImpl:()=>h,DOMChanges:()=>at,DOMTreeConstruction:()=>o,DynamicAttribute:()=>Gt,DynamicScopeImpl:()=>Da,EMPTY_ARGS:()=>fe,EMPTY_NAMED:()=>p,EMPTY_POSITIONAL:()=>ka,EnvironmentImpl:()=>gt,IDOMChanges:()=>ia,LowLevelVM:()=>zt,NewTreeBuilder:()=>Q,RehydrateTree:()=>Z,RemoteBlock:()=>ae,ResettableBlockImpl:()=>ge,SERIALIZATION_FIRST_NODE_STRING:()=>X,ScopeImpl:()=>wa,SimpleDynamicAttribute:()=>D,TEMPLATE_ONLY_COMPONENT_MANAGER:()=>T,TemplateOnlyComponent:()=>U,TemplateOnlyComponentManager:()=>ha,UpdatingVM:()=>ut,and:()=>_a,array:()=>de,clear:()=>je,clientBuilder:()=>V,concat:()=>Ve,createCapturedArgs:()=>Ie,curry:()=>f,destroy:()=>ze,dynamicAttribute:()=>q,eq:()=>Rt,fn:()=>e,get:()=>He,gt:()=>Qe,gte:()=>aa,hash:()=>yt,inTransaction:()=>At,invokeHelper:()=>Ct,isDestroyed:()=>ce,isDestroying:()=>a,isSerializationFirstNode:()=>ie,isWhitespace:()=>da,lt:()=>fa,lte:()=>it,neq:()=>Bt,normalizeProperty:()=>ye,not:()=>Ra,on:()=>ke,or:()=>dt,registerDestructor:()=>pt,rehydrationBuilder:()=>A,reifyArgs:()=>y,reifyNamed:()=>re,reifyPositional:()=>Yt,renderComponent:()=>Jt,renderMain:()=>St,renderSync:()=>Tt,resetDebuggerCallback:()=>Ke,runtimeOptions:()=>Fa,setDebuggerCallback:()=>za,templateOnlyComponent:()=>F}),Cn=Aa({EMPTY_ARRAY:()=>x,EMPTY_NUMBER_ARRAY:()=>Oe,EMPTY_STRING_ARRAY:()=>Ne,LOCAL_LOGGER:()=>bn,LOGGER:()=>fn,SERIALIZATION_FIRST_NODE_STRING:()=>In,Stack:()=>me,assertNever:()=>vn,assign:()=>We,beginTestSteps:()=>{},clearElement:()=>An,dict:()=>Za,emptyArray:()=>E,endTestSteps:()=>{},entries:()=>ue,enumerate:()=>H,intern:()=>Mn,isDict:()=>j,isEmptyArray:()=>pa,isIndexable:()=>ve,isSerializationFirstNode:()=>Dn,keys:()=>n,logStep:()=>{},reverse:()=>k,strip:()=>Tn,values:()=>_t,verifySteps:()=>{},zipArrays:()=>Be,zipTuples:()=>Le}),bn=console,fn=console;function An(e){let t=e.firstChild;for(;t;){let a=t.nextSibling;e.removeChild(t),t=a}}function Mn(e){let t={};t[e]=1;for(let a in t)if(a===e)return a;return e}var In="%+b:0%";function Dn(e){return e.nodeValue===In}function Tn(e,...t){let a="";for(const[i,o]of H(e))a+=`${o}${void 0!==t[i]?String(t[i]):""}`;let n=a.split("\n");for(;Pe(n)&&/^\s*$/u.test(d(n));)n.shift();for(;Pe(n)&&/^\s*$/u.test(Re(n));)n.pop();let s=1/0;for(let i of n){let e=/^\s*/u.exec(i)[0].length;s=Math.min(s,e)}let r=[];for(let i of n)r.push(i.slice(s));return r.join("\n")}function vn(e,t="unexpected unreachable branch"){throw fn.log("unreachable",e),fn.log(`${t} :: ${JSON.stringify(e)} (${e})`),new Error("code reached unreachable")}export{Nt as Application,w as ApplicationNamespace,Ae as Array,Ka as ArrayMutable,Qa as ArrayProxy,Wt as Component,Ce as Controller,s as Debug,Lt as EmberDestroyable,ca as EmberObject,ca as Object,ne as EnumerableMutable,oa as GlimmerComponent,mn as GlimmerManager,rt as GlimmerReference,yn as GlimmerRuntime,Cn as GlimmerUtil,Ia as GlimmerValidator,Pt as Instrumentation,ft as InternalsEnvironment,an as InternalsMeta,$t as InternalsMetal,nn as InternalsRuntime,sn as InternalsUtils,dn as InternalsViews,Ue as ObjectCore,kt as ObjectEvented,Ta as ObjectInternals,G as ObjectObservable,hn as ObjectPromiseProxyMixin,pn as ObjectProxy,ra as Owner,Kt as RSVP,lt as Runloop,ya as Service,Zt as VERSION}; \ No newline at end of file +import{$ as e,$n as t,$r as a,$t as n,A as s,An as r,Ar as i,At as o,B as l,Bn as g,Br as d,Bt as h,Cn as c,Cr as u,Ct as p,Dn as _,Dr as m,Dt as y,En as C,Er as b,Et as f,F as A,Fn as M,Fr as I,Ft as D,G as T,Gn as v,Gr as O,Gt as E,H as S,Hn as R,Hr as j,Ht as x,I as w,In as P,Ir as N,It as V,J as F,Jn as G,Jr as L,Jt as k,K as U,Kn as Y,Kr as B,Kt as H,L as $,Ln as z,Lr as W,Lt as q,M as Z,Mn as J,Mr as K,Mt as Q,N as X,Nn as ee,Nr as te,Nt as ae,On as ne,Or as se,Ot as re,P as ie,Pn as oe,Pr as le,Pt as ge,Q as de,Qn as he,Qr as ce,Qt as ue,R as pe,Rn as _e,Rr as me,Rt as ye,Sn as Ce,Sr as be,St as fe,Tn as Ae,Tr as Me,Tt as Ie,U as De,Un as Te,Ur as ve,Ut as Oe,V as Ee,Vn as Se,Vr as Re,Vt as je,W as xe,Wn as we,Wr as Pe,Wt as Ne,X as Ve,Xn as Fe,Xr as Ge,Xt as Le,Y as ke,Yn as Ue,Yr as Ye,Yt as Be,Z as He,Zn as $e,Zr as ze,Zt as We,_ as qe,_n as Ze,_r as Je,_t as Ke,a as Qe,ai as Xe,an as et,ar as tt,at,bn as nt,br as st,bt as rt,c as it,cn as ot,cr as lt,ct as gt,d as dt,dn as ht,dr as ct,dt as ut,ei as pt,en as _t,er as mt,et as yt,f as Ct,fn as bt,fr as ft,ft as At,g as Mt,gn as It,gr as Dt,gt as Tt,h as vt,hn as Ot,hr as Et,ht as St,i as Rt,ii as jt,in as xt,ir as wt,it as Pt,j as Nt,jn as Vt,jr as Ft,jt as Gt,k as Lt,kn as kt,kr as Ut,kt as Yt,l as Bt,ln as Ht,lr as $t,lt as zt,m as Wt,mn as qt,mr as Zt,mt as Jt,n as Kt,ni as Qt,nn as Xt,nr as ea,nt as ta,o as aa,oi as na,on as sa,or as ra,ot as ia,p as oa,pn as la,pr as ga,pt as da,q as ha,qn as ca,qr as ua,qt as pa,r as _a,ri as ma,rn as ya,rr as Ca,rt as ba,s as fa,si as Aa,sn as Ma,sr as Ia,st as Da,t as Ta,ti as va,tn as Oa,tr as Ea,tt as Sa,u as Ra,un as ja,ur as xa,ut as wa,v as Pa,vn as Na,vr as Va,vt as Fa,wn as Ga,wr as La,wt as ka,xn as Ua,xr as Ya,xt as Ba,yn as Ha,yr as $a,yt as za,z as Wa,zn as qa,zr as Za,zt as Ja}from"./main-Cx0KJENk.js";var Ka=Aa({default:()=>Ga}),Qa=Aa({default:()=>tn}),Xa={willChange:"_arrangedContentArrayWillChange",didChange:"_arrangedContentArrayDidChange"};function en(e,t){return"[]"===t?(e._revalidate(),e._arrTag):"length"===t?(e._revalidate(),e._lengthTag):B(e,t)}var tn=class extends Y{_objectsDirtyIndex=0;_objects=null;_lengthDirty=!0;_length=0;_arrangedContent=null;_arrangedContentIsUpdating=!1;_arrangedContentTag=null;_arrangedContentRevision=null;_lengthTag=null;_arrTag=null;init(e){super.init(e),W(this,en)}[b](){this._revalidate()}willDestroy(){this._removeArrangedContentArrayObserver()}objectAtContent(e){let t=be(this,"arrangedContent");return le(t,e)}replace(e,t,a){this.replaceContent(e,t,a)}replaceContent(e,t,a){let n=be(this,"content");$a(n,e,t,a)}objectAt(e){if(this._revalidate(),null===this._objects&&(this._objects=[]),-1!==this._objectsDirtyIndex&&e>=this._objectsDirtyIndex){let e=be(this,"arrangedContent");if(e){let t=this._objects.length=be(e,"length");for(let e=this._objectsDirtyIndex;es)&&(this._objectsDirtyIndex=s),this._lengthDirty=!0,Dt(this,t,a,n,!1)}_invalidate(){this._objectsDirtyIndex=0,this._lengthDirty=!0}_revalidate(){if(!0!==this._arrangedContentIsUpdating&&(null===this._arrangedContentTag||!Ye(this._arrangedContentTag,this._arrangedContentRevision))){let e=this.get("arrangedContent");null===this._arrangedContentTag?this._addArrangedContentArrayObserver(e):(this._arrangedContentIsUpdating=!0,this._updateArrangedContentArray(e),this._arrangedContentIsUpdating=!1);let t=this._arrangedContentTag=B(this,"arrangedContent");this._arrangedContentRevision=Ge(this._arrangedContentTag),O(e)?(this._lengthTag=ua([t,I(e,"length")]),this._arrTag=ua([t,I(e,"[]")])):this._lengthTag=this._arrTag=t}}};tn.reopen(Ga,{arrangedContent:st("content")});var an=Aa({Meta:()=>va,UNDEFINED:()=>Qt,counters:()=>ma,meta:()=>jt,peekMeta:()=>Xe,setMeta:()=>na}),nn=Aa({ActionHandler:()=>Fe,Comparable:()=>C,ContainerProxyMixin:()=>Ua,MutableEnumerable:()=>_,RSVP:()=>wt,RegistryProxyMixin:()=>nt,TargetActionSupport:()=>Pa,_ProxyMixin:()=>Sa,_contentFor:()=>ta,onerrorDefault:()=>Ca}),sn=Aa({Cache:()=>u,GUID_KEY:()=>he,ROOT:()=>se,canInvoke:()=>gn,checkHasSuper:()=>Ut,dictionary:()=>tt,generateGuid:()=>t,getDebugName:()=>xe,getName:()=>xa,guidFor:()=>mt,intern:()=>ea,isObject:()=>O,isProxy:()=>La,lookupDescriptor:()=>Ya,observerListenerMetaFor:()=>i,setListeners:()=>Ft,setName:()=>ct,setObservers:()=>K,setProxy:()=>Me,setWithMandatorySetter:()=>{},setupMandatorySetter:()=>{},teardownMandatorySetter:()=>{},toString:()=>ln,uuid:()=>Ea,wrap:()=>te}),rn=Object.prototype.toString;function on(e){return null==e}function ln(e){if("string"==typeof e)return e;if(null===e)return"null";if(void 0===e)return"undefined";if(Array.isArray(e)){let t="";for(let a=0;a0&&(t+=","),on(e[a])||(t+=ln(e[a]));return t}return"function"==typeof e.toString?e.toString():rn.call(e)}function gn(e,t){return null!=e&&"function"==typeof e[t]}var dn=Aa({ActionSupport:()=>qe,CoreView:()=>vt,EventDispatcher:()=>r,MUTABLE_CELL:()=>ba,ViewStates:()=>Mt,addChildView:()=>Vt,clearElementView:()=>J,clearViewElement:()=>ee,constructStyleDeprecationMessage:()=>oe,getChildViews:()=>M,getElementView:()=>P,getRootViews:()=>z,getViewBoundingClientRect:()=>_e,getViewBounds:()=>qa,getViewClientRects:()=>g,getViewElement:()=>Se,getViewId:()=>R,isSimpleClick:()=>Te,setElementView:()=>we,setViewElement:()=>v}),hn=Aa({default:()=>cn}),cn=$e.create({reason:null,isPending:m("isSettled",function(){return!be(this,"isSettled")}).readOnly(),isSettled:m("isRejected","isFulfilled",function(){return be(this,"isRejected")||be(this,"isFulfilled")}).readOnly(),isRejected:!1,isFulfilled:!1,promise:m({get(){throw new Error("PromiseProxy's promise must be set")},set(e,t){return function(e,t){return ga(e,{isFulfilled:!1,isRejected:!1}),t.then(t=>(e.isDestroyed||e.isDestroying||ga(e,{content:t,isFulfilled:!0}),t),t=>{throw e.isDestroyed||e.isDestroying||ga(e,{reason:t,isRejected:!0}),t},"Ember: PromiseProxy")}(this,t)}}),then:un("then"),catch:un("catch"),finally:un("finally")});function un(e){return function(...t){return be(this,"promise")[e](...t)}}var pn=Aa({default:()=>_n}),_n=class extends c{};_n.PrototypeMixin.reopen(Sa);var mn=Aa({CustomComponentManager:()=>$,CustomHelperManager:()=>xt,CustomModifierManager:()=>pe,capabilityFlagsFrom:()=>Ze,componentCapabilities:()=>Wa,getComponentTemplate:()=>Oa,getCustomTagFor:()=>N,getInternalComponentManager:()=>et,getInternalHelperManager:()=>sa,getInternalModifierManager:()=>Ma,hasCapability:()=>Na,hasDestroyable:()=>ot,hasInternalComponentManager:()=>Ht,hasInternalHelperManager:()=>ja,hasInternalModifierManager:()=>ht,hasValue:()=>bt,helperCapabilities:()=>la,managerHasCapability:()=>Ha,modifierCapabilities:()=>l,setComponentManager:()=>Ee,setComponentTemplate:()=>Xt,setCustomTagFor:()=>W,setHelperManager:()=>S,setInternalComponentManager:()=>qt,setInternalHelperManager:()=>Ot,setInternalModifierManager:()=>It,setModifierManager:()=>De}),yn=Aa({ConcreteBounds:()=>Ja,CurriedValue:()=>Ba,CursorImpl:()=>h,DOMChanges:()=>at,DOMTreeConstruction:()=>o,DynamicAttribute:()=>Gt,DynamicScopeImpl:()=>Da,EMPTY_ARGS:()=>fe,EMPTY_NAMED:()=>p,EMPTY_POSITIONAL:()=>ka,EnvironmentImpl:()=>gt,IDOMChanges:()=>ia,LowLevelVM:()=>zt,NewTreeBuilder:()=>Q,RehydrateTree:()=>Z,RemoteBlock:()=>ae,ResettableBlockImpl:()=>ge,SERIALIZATION_FIRST_NODE_STRING:()=>X,ScopeImpl:()=>wa,SimpleDynamicAttribute:()=>D,TEMPLATE_ONLY_COMPONENT_MANAGER:()=>T,TemplateOnlyComponent:()=>U,TemplateOnlyComponentManager:()=>ha,UpdatingVM:()=>ut,and:()=>_a,array:()=>de,clear:()=>je,clientBuilder:()=>V,concat:()=>Ve,createCapturedArgs:()=>Ie,curry:()=>f,destroy:()=>ze,dynamicAttribute:()=>q,eq:()=>Rt,fn:()=>e,get:()=>He,gt:()=>Qe,gte:()=>aa,hash:()=>yt,inTransaction:()=>At,invokeHelper:()=>Ct,isDestroyed:()=>ce,isDestroying:()=>a,isSerializationFirstNode:()=>ie,isWhitespace:()=>da,lt:()=>fa,lte:()=>it,neq:()=>Bt,normalizeProperty:()=>ye,not:()=>Ra,on:()=>ke,or:()=>dt,registerDestructor:()=>pt,rehydrationBuilder:()=>A,reifyArgs:()=>y,reifyNamed:()=>re,reifyPositional:()=>Yt,renderComponent:()=>Jt,renderMain:()=>St,renderSync:()=>Tt,resetDebuggerCallback:()=>Ke,runtimeOptions:()=>Fa,setDebuggerCallback:()=>za,templateOnlyComponent:()=>F}),Cn=Aa({EMPTY_ARRAY:()=>x,EMPTY_NUMBER_ARRAY:()=>Oe,EMPTY_STRING_ARRAY:()=>Ne,LOCAL_LOGGER:()=>bn,LOGGER:()=>fn,SERIALIZATION_FIRST_NODE_STRING:()=>In,Stack:()=>me,assertNever:()=>vn,assign:()=>We,beginTestSteps:()=>{},clearElement:()=>An,dict:()=>Za,emptyArray:()=>E,endTestSteps:()=>{},entries:()=>ue,enumerate:()=>H,intern:()=>Mn,isDict:()=>j,isEmptyArray:()=>pa,isIndexable:()=>ve,isSerializationFirstNode:()=>Dn,keys:()=>n,logStep:()=>{},reverse:()=>k,strip:()=>Tn,values:()=>_t,verifySteps:()=>{},zipArrays:()=>Be,zipTuples:()=>Le}),bn=console,fn=console;function An(e){let t=e.firstChild;for(;t;){let a=t.nextSibling;e.removeChild(t),t=a}}function Mn(e){let t={};t[e]=1;for(let a in t)if(a===e)return a;return e}var In="%+b:0%";function Dn(e){return e.nodeValue===In}function Tn(e,...t){let a="";for(const[i,o]of H(e))a+=`${o}${void 0!==t[i]?String(t[i]):""}`;let n=a.split("\n");for(;Pe(n)&&/^\s*$/u.test(d(n));)n.shift();for(;Pe(n)&&/^\s*$/u.test(Re(n));)n.pop();let s=1/0;for(let i of n){let e=/^\s*/u.exec(i)[0].length;s=Math.min(s,e)}let r=[];for(let i of n)r.push(i.slice(s));return r.join("\n")}function vn(e,t="unexpected unreachable branch"){throw fn.log("unreachable",e),fn.log(`${t} :: ${JSON.stringify(e)} (${e})`),new Error("code reached unreachable")}export{Nt as Application,w as ApplicationNamespace,Ae as Array,Ka as ArrayMutable,Qa as ArrayProxy,Wt as Component,Ce as Controller,s as Debug,Lt as EmberDestroyable,ca as EmberObject,ca as Object,ne as EnumerableMutable,oa as GlimmerComponent,mn as GlimmerManager,rt as GlimmerReference,yn as GlimmerRuntime,Cn as GlimmerUtil,Ia as GlimmerValidator,Pt as Instrumentation,ft as InternalsEnvironment,an as InternalsMeta,$t as InternalsMetal,nn as InternalsRuntime,sn as InternalsUtils,dn as InternalsViews,Ue as ObjectCore,kt as ObjectEvented,Ta as ObjectInternals,G as ObjectObservable,hn as ObjectPromiseProxyMixin,pn as ObjectProxy,ra as Owner,Kt as RSVP,lt as Runloop,ya as Service,Zt as VERSION}; \ No newline at end of file diff --git a/release/assets/negentropy-YVHJ2Mgy.js b/release/assets/negentropy-vHp2OmZI.js similarity index 99% rename from release/assets/negentropy-YVHJ2Mgy.js rename to release/assets/negentropy-vHp2OmZI.js index 7768b6c..8c7930a 100644 --- a/release/assets/negentropy-YVHJ2Mgy.js +++ b/release/assets/negentropy-vHp2OmZI.js @@ -1 +1 @@ -import{C as t,D as e,E as i,O as r,S as n,T as s,b as a,w as o,x as h,y as u}from"./main-C4QF_Hr3.js";function l(){for(var t=[],r=0;r>>=7;e.reverse();for(let i=0;iu.create().update(t).digest()}setToZero(){this.buf=new Uint8Array(d)}add(t){let e=0,i=0,r=new DataView(this.buf.buffer),n=new DataView(t.buffer);for(let s=0;s<8;s++){let t=4*s,a=r.getUint32(t,!0);a+=e,a+=n.getUint32(t,!0),a>4294967295&&(i=1),r.setUint32(t,4294967295&a,!0),e=i,i=0}}negate(){let t=new DataView(this.buf.buffer);for(let i=0;i<8;i++){let e=4*i;t.setUint32(e,~t.getUint32(e,!0))}let e=new Uint8Array(d);e[0]=1,this.add(e)}async getFingerprint(t){let e=new c;return e.extend(this.buf),e.extend(m(t)),(await this.sha256(e.unwrap())).subarray(0,16)}},w=class{items;sealed;constructor(){this.items=[],this.sealed=!1}insert(t,e){if(this.sealed)throw Error("already sealed");if((e=y(e)).byteLength!==d)throw Error("bad id size for added item");this.items.push({timestamp:t,id:e})}seal(){if(this.sealed)throw Error("already sealed");this.sealed=!0,this.items.sort(A);for(let t=1;t=this.items.length)throw Error("out of range");return this.items[t]}iterate(t,e,i){this._checkSealed(),this._checkBounds(t,e);for(let r=t;rA(t,i)<0)}async fingerprint(t,e){let i=new p;return i.setToZero(),this.iterate(t,e,t=>(i.add(t.id),!0)),await i.getFingerprint(e-t)}_checkSealed(){if(!this.sealed)throw Error("not sealed")}_checkBounds(t,e){if(t>e||e>this.items.length)throw Error("bad range")}_binarySearch(t,e,i,r){let n=i-e;for(;n>0;){let i=e,s=Math.floor(n/2);i+=s,r(t[i])?(e=++i,n-=s+1):n=s}return e}},b=class{storage;frameSizeLimit;lastTimestampIn;lastTimestampOut;isInitiator;wantUint8ArrayOutput;constructor(t,e=0){if(0!==e&&e<4096)throw Error("frameSizeLimit too small");this.storage=t,this.frameSizeLimit=e,this.lastTimestampIn=0,this.lastTimestampOut=0}_bound(t,e){return{timestamp:t,id:e||new Uint8Array(0)}}async initiate(){if(this.isInitiator)throw Error("already initiated");this.isInitiator=!0;let t=new c;return t.extend([97]),await this.splitRange(0,this.storage.size(),this._bound(Number.MAX_VALUE),t),this._renderOutput(t)}setInitiator(){this.isInitiator=!0}async reconcile(t){let e=[],i=[],r=new c(y(t));this.lastTimestampIn=this.lastTimestampOut=0;let n=new c;n.extend([97]);let s=g(r,1)[0];if(s<96||s>111)throw Error("invalid negentropy protocol version byte");if(97!==s){if(this.isInitiator)throw Error("unsupported negentropy protocol version requested: "+(s-96));return[this._renderOutput(n),e,i]}let a=this.storage.size(),o=this._bound(0),h=0,u=!1;for(;0!==r.length;){let t=new c,s=()=>{u&&(u=!1,t.extend(this.encodeBound(o)),t.extend(m(0)))},l=this.decodeBound(r),p=f(r),w=h,b=this.storage.findLowerBound(h,a,l);if(0===p)u=!0;else if(1===p)0!==E(g(r,16),await this.storage.fingerprint(w,b))?(s(),await this.splitRange(w,b,l,t)):u=!0;else{if(2!==p)throw Error("unexpected mode");{let a=f(r),o={};for(let t=0;t{let i=t.id;return o[i]?delete o[i]:this.isInitiator&&e.push(this.wantUint8ArrayOutput?i:x(i)),!0});for(let t of Object.values(o))i.push(this.wantUint8ArrayOutput?t:x(t))}else{s();let e=new c,i=0,r=l;this.storage.iterate(w,b,(t,s)=>this.exceededFrameSizeLimit(n.length+e.length)?(r=t,b=s,!1):(e.extend(t.id),i++,!0)),t.extend(this.encodeBound(r)),t.extend(m(2)),t.extend(m(i)),t.extend(e),n.extend(t),t=new c}}}if(this.exceededFrameSizeLimit(n.length+t.length)){let t=await this.storage.fingerprint(b,a);n.extend(this.encodeBound(this._bound(Number.MAX_VALUE))),n.extend(m(1)),n.extend(t);break}n.extend(t),h=b,o=l}return[1===n.length&&this.isInitiator?null:this._renderOutput(n),e,i]}async splitRange(t,e,i,r){let n=e-t;if(n<32)r.extend(this.encodeBound(i)),r.extend(m(2)),r.extend(m(n)),this.storage.iterate(t,e,t=>(r.extend(t.id),!0));else{let s=Math.floor(n/16),a=n%16,o=t;for(let t=0;t<16;t++){let n,h=s+(t(r===o-1?t=i:e=i,!0)),n=this.getMinimalBound(t,e)}r.extend(this.encodeBound(n)),r.extend(m(1)),r.extend(u)}}}_renderOutput(t){let e=t.unwrap();return this.wantUint8ArrayOutput?e:x(e)}exceededFrameSizeLimit(t){return this.frameSizeLimit&&t>this.frameSizeLimit-200}decodeTimestampIn(t){let e=f(t);return e=0===e?Number.MAX_VALUE:e-1,this.lastTimestampIn===Number.MAX_VALUE||e===Number.MAX_VALUE?(this.lastTimestampIn=Number.MAX_VALUE,Number.MAX_VALUE):(e+=this.lastTimestampIn,this.lastTimestampIn=e,e)}decodeBound(t){let e=this.decodeTimestampIn(t),i=f(t);if(i>d)throw Error("bound key too long");return{timestamp:e,id:g(t,i)}}encodeTimestampOut(t){if(t===Number.MAX_VALUE)return this.lastTimestampOut=Number.MAX_VALUE,m(0);let e=t;return t-=this.lastTimestampOut,this.lastTimestampOut=e,m(t+1)}encodeBound(t){let e=new c;return e.extend(this.encodeTimestampOut(t.timestamp)),e.extend(m(t.id.length)),e.extend(t.id),e}getMinimalBound(t,e){if(e.timestamp!==t.timestamp)return this._bound(e.timestamp);{let i=0,r=e.id,n=t.id;for(let t=0;t>>4&15]+t[15&e]}function x(t){let e="";for(let i=0,r=t.length;ie[i])return 1}return t.byteLength>e.byteLength?1:t.byteLength(L("Sending initial message",d,s,f),["NEG-OPEN",d,s,f]),()=>(L("Closing sync",d),["NEG-CLOSE",d]),t=>("NEG-MSG"===t[0]||"NEG-ERR"===t[0])&&t[1]===d).pipe(t(t=>{if("NEG-ERR"===t[0])throw new Error(t[2]);return t[2]}),h());if(u?.signal?.aborted)return!1;const p=new e(t=>{if(u?.signal?.aborted)return t.next("abort"),void t.complete();const e=()=>{t.next("abort"),t.complete()};return u?.signal?.addEventListener("abort",e),()=>u?.signal?.removeEventListener("abort",e)}),w=g.subscribe({next:t=>L(t),error:()=>{}});try{for(;m&&!0!==u?.signal?.aborted;)try{const e=await o(l(g.pipe(t(t=>({type:"message",data:t}))),p.pipe(t(()=>({type:"abort"})))));if("abort"===e.type||u?.signal?.aborted)return w.unsubscribe(),!1;const[i,r,n]=await c.reconcile(e.data);await a(r,n),m=i}catch(y){if(u?.signal?.aborted)return w.unsubscribe(),!1;throw y}}catch(y){throw w.unsubscribe(),y}finally{w.unsubscribe()}return!0}export{U as buildStorageFromFilter,I as buildStorageVector,O as negentropySync}; \ No newline at end of file +import{C as t,D as e,E as i,O as r,S as n,T as s,b as a,w as o,x as h,y as u}from"./main-Cx0KJENk.js";function l(){for(var t=[],r=0;r>>=7;e.reverse();for(let i=0;iu.create().update(t).digest()}setToZero(){this.buf=new Uint8Array(d)}add(t){let e=0,i=0,r=new DataView(this.buf.buffer),n=new DataView(t.buffer);for(let s=0;s<8;s++){let t=4*s,a=r.getUint32(t,!0);a+=e,a+=n.getUint32(t,!0),a>4294967295&&(i=1),r.setUint32(t,4294967295&a,!0),e=i,i=0}}negate(){let t=new DataView(this.buf.buffer);for(let i=0;i<8;i++){let e=4*i;t.setUint32(e,~t.getUint32(e,!0))}let e=new Uint8Array(d);e[0]=1,this.add(e)}async getFingerprint(t){let e=new c;return e.extend(this.buf),e.extend(m(t)),(await this.sha256(e.unwrap())).subarray(0,16)}},w=class{items;sealed;constructor(){this.items=[],this.sealed=!1}insert(t,e){if(this.sealed)throw Error("already sealed");if((e=y(e)).byteLength!==d)throw Error("bad id size for added item");this.items.push({timestamp:t,id:e})}seal(){if(this.sealed)throw Error("already sealed");this.sealed=!0,this.items.sort(A);for(let t=1;t=this.items.length)throw Error("out of range");return this.items[t]}iterate(t,e,i){this._checkSealed(),this._checkBounds(t,e);for(let r=t;rA(t,i)<0)}async fingerprint(t,e){let i=new p;return i.setToZero(),this.iterate(t,e,t=>(i.add(t.id),!0)),await i.getFingerprint(e-t)}_checkSealed(){if(!this.sealed)throw Error("not sealed")}_checkBounds(t,e){if(t>e||e>this.items.length)throw Error("bad range")}_binarySearch(t,e,i,r){let n=i-e;for(;n>0;){let i=e,s=Math.floor(n/2);i+=s,r(t[i])?(e=++i,n-=s+1):n=s}return e}},b=class{storage;frameSizeLimit;lastTimestampIn;lastTimestampOut;isInitiator;wantUint8ArrayOutput;constructor(t,e=0){if(0!==e&&e<4096)throw Error("frameSizeLimit too small");this.storage=t,this.frameSizeLimit=e,this.lastTimestampIn=0,this.lastTimestampOut=0}_bound(t,e){return{timestamp:t,id:e||new Uint8Array(0)}}async initiate(){if(this.isInitiator)throw Error("already initiated");this.isInitiator=!0;let t=new c;return t.extend([97]),await this.splitRange(0,this.storage.size(),this._bound(Number.MAX_VALUE),t),this._renderOutput(t)}setInitiator(){this.isInitiator=!0}async reconcile(t){let e=[],i=[],r=new c(y(t));this.lastTimestampIn=this.lastTimestampOut=0;let n=new c;n.extend([97]);let s=g(r,1)[0];if(s<96||s>111)throw Error("invalid negentropy protocol version byte");if(97!==s){if(this.isInitiator)throw Error("unsupported negentropy protocol version requested: "+(s-96));return[this._renderOutput(n),e,i]}let a=this.storage.size(),o=this._bound(0),h=0,u=!1;for(;0!==r.length;){let t=new c,s=()=>{u&&(u=!1,t.extend(this.encodeBound(o)),t.extend(m(0)))},l=this.decodeBound(r),p=f(r),w=h,b=this.storage.findLowerBound(h,a,l);if(0===p)u=!0;else if(1===p)0!==E(g(r,16),await this.storage.fingerprint(w,b))?(s(),await this.splitRange(w,b,l,t)):u=!0;else{if(2!==p)throw Error("unexpected mode");{let a=f(r),o={};for(let t=0;t{let i=t.id;return o[i]?delete o[i]:this.isInitiator&&e.push(this.wantUint8ArrayOutput?i:x(i)),!0});for(let t of Object.values(o))i.push(this.wantUint8ArrayOutput?t:x(t))}else{s();let e=new c,i=0,r=l;this.storage.iterate(w,b,(t,s)=>this.exceededFrameSizeLimit(n.length+e.length)?(r=t,b=s,!1):(e.extend(t.id),i++,!0)),t.extend(this.encodeBound(r)),t.extend(m(2)),t.extend(m(i)),t.extend(e),n.extend(t),t=new c}}}if(this.exceededFrameSizeLimit(n.length+t.length)){let t=await this.storage.fingerprint(b,a);n.extend(this.encodeBound(this._bound(Number.MAX_VALUE))),n.extend(m(1)),n.extend(t);break}n.extend(t),h=b,o=l}return[1===n.length&&this.isInitiator?null:this._renderOutput(n),e,i]}async splitRange(t,e,i,r){let n=e-t;if(n<32)r.extend(this.encodeBound(i)),r.extend(m(2)),r.extend(m(n)),this.storage.iterate(t,e,t=>(r.extend(t.id),!0));else{let s=Math.floor(n/16),a=n%16,o=t;for(let t=0;t<16;t++){let n,h=s+(t(r===o-1?t=i:e=i,!0)),n=this.getMinimalBound(t,e)}r.extend(this.encodeBound(n)),r.extend(m(1)),r.extend(u)}}}_renderOutput(t){let e=t.unwrap();return this.wantUint8ArrayOutput?e:x(e)}exceededFrameSizeLimit(t){return this.frameSizeLimit&&t>this.frameSizeLimit-200}decodeTimestampIn(t){let e=f(t);return e=0===e?Number.MAX_VALUE:e-1,this.lastTimestampIn===Number.MAX_VALUE||e===Number.MAX_VALUE?(this.lastTimestampIn=Number.MAX_VALUE,Number.MAX_VALUE):(e+=this.lastTimestampIn,this.lastTimestampIn=e,e)}decodeBound(t){let e=this.decodeTimestampIn(t),i=f(t);if(i>d)throw Error("bound key too long");return{timestamp:e,id:g(t,i)}}encodeTimestampOut(t){if(t===Number.MAX_VALUE)return this.lastTimestampOut=Number.MAX_VALUE,m(0);let e=t;return t-=this.lastTimestampOut,this.lastTimestampOut=e,m(t+1)}encodeBound(t){let e=new c;return e.extend(this.encodeTimestampOut(t.timestamp)),e.extend(m(t.id.length)),e.extend(t.id),e}getMinimalBound(t,e){if(e.timestamp!==t.timestamp)return this._bound(e.timestamp);{let i=0,r=e.id,n=t.id;for(let t=0;t>>4&15]+t[15&e]}function x(t){let e="";for(let i=0,r=t.length;ie[i])return 1}return t.byteLength>e.byteLength?1:t.byteLength(L("Sending initial message",d,s,f),["NEG-OPEN",d,s,f]),()=>(L("Closing sync",d),["NEG-CLOSE",d]),t=>("NEG-MSG"===t[0]||"NEG-ERR"===t[0])&&t[1]===d).pipe(t(t=>{if("NEG-ERR"===t[0])throw new Error(t[2]);return t[2]}),h());if(u?.signal?.aborted)return!1;const p=new e(t=>{if(u?.signal?.aborted)return t.next("abort"),void t.complete();const e=()=>{t.next("abort"),t.complete()};return u?.signal?.addEventListener("abort",e),()=>u?.signal?.removeEventListener("abort",e)}),w=g.subscribe({next:t=>L(t),error:()=>{}});try{for(;m&&!0!==u?.signal?.aborted;)try{const e=await o(l(g.pipe(t(t=>({type:"message",data:t}))),p.pipe(t(()=>({type:"abort"})))));if("abort"===e.type||u?.signal?.aborted)return w.unsubscribe(),!1;const[i,r,n]=await c.reconcile(e.data);await a(r,n),m=i}catch(y){if(u?.signal?.aborted)return w.unsubscribe(),!1;throw y}}catch(y){throw w.unsubscribe(),y}finally{w.unsubscribe()}return!0}export{U as buildStorageFromFilter,I as buildStorageVector,O as negentropySync}; \ No newline at end of file diff --git a/release/index.html b/release/index.html index 7181389..12b1686 100644 --- a/release/index.html +++ b/release/index.html @@ -39,8 +39,8 @@ - - + +