From 490a0e928eae0fc9a37dbc50e5822345c82540d3 Mon Sep 17 00:00:00 2001 From: Doxa Maps Date: Thu, 1 Oct 2026 10:00:15 +0000 Subject: [PATCH] Rebuild posterverse for the language menu, and regenerate the tree BUNDLE=posterverse vite build, then bun run tree and fix:sri. Only the posterverse entry changes in the manifest (its integrity). --- public/dx-maps/doxa-maps-spa/manifest.json | 4 ++-- public/dx-maps/manifest.json | 4 ++-- public/dx-maps/posterverse/posterverse.js | 20 +++++++++---------- .../posterverse/posterverse/app/index.html | 2 +- .../posterverse/posterverse/index.html | 2 +- 5 files changed, 16 insertions(+), 16 deletions(-) diff --git a/public/dx-maps/doxa-maps-spa/manifest.json b/public/dx-maps/doxa-maps-spa/manifest.json index f91a87fd0..d1ba15fa6 100644 --- a/public/dx-maps/doxa-maps-spa/manifest.json +++ b/public/dx-maps/doxa-maps-spa/manifest.json @@ -1134,7 +1134,7 @@ "bundle": "posterverse", "scriptUrl": "./posterverse/posterverse.js", "output": "dx-maps/posterverse/posterverse.js", - "integrity": "sha384-4JtSJ3JzXdoM1lWlRDeXMk8o5rwS76yF8Q6vf4OYtAhDziW4ZBKBfqvU09h6BLDR", + "integrity": "sha384-+1IEWkJujDRDE7t/piXT6lq6T0QdhCYfT4pv4OURz6EKxDK8p8YcSZNZOv5uRi0W", "elements": [ "posterverse-app" ], @@ -1159,7 +1159,7 @@ "scriptUrl": "./posterverse/posterverse.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" }, "instances": [ { diff --git a/public/dx-maps/manifest.json b/public/dx-maps/manifest.json index f91a87fd0..d1ba15fa6 100644 --- a/public/dx-maps/manifest.json +++ b/public/dx-maps/manifest.json @@ -1134,7 +1134,7 @@ "bundle": "posterverse", "scriptUrl": "./posterverse/posterverse.js", "output": "dx-maps/posterverse/posterverse.js", - "integrity": "sha384-4JtSJ3JzXdoM1lWlRDeXMk8o5rwS76yF8Q6vf4OYtAhDziW4ZBKBfqvU09h6BLDR", + "integrity": "sha384-+1IEWkJujDRDE7t/piXT6lq6T0QdhCYfT4pv4OURz6EKxDK8p8YcSZNZOv5uRi0W", "elements": [ "posterverse-app" ], @@ -1159,7 +1159,7 @@ "scriptUrl": "./posterverse/posterverse.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" }, "instances": [ { diff --git a/public/dx-maps/posterverse/posterverse.js b/public/dx-maps/posterverse/posterverse.js index 1f4dc4e95..9c33e81b9 100644 --- a/public/dx-maps/posterverse/posterverse.js +++ b/public/dx-maps/posterverse/posterverse.js @@ -2,30 +2,30 @@ * @vue/shared v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/function So(e){const t=Object.create(null);for(const o of e.split(","))t[o]=1;return o=>o in t}const j={},it=[],xe=()=>{},Tn=()=>!1,Bt=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Ut=e=>e.startsWith("onUpdate:"),Z=Object.assign,Mo=(e,t)=>{const o=e.indexOf(t);o>-1&&e.splice(o,1)},Wr=Object.prototype.hasOwnProperty,W=(e,t)=>Wr.call(e,t),L=Array.isArray,qe=e=>mt(e)==="[object Map]",jt=e=>mt(e)==="[object Set]",Sn=e=>mt(e)==="[object Date]",P=e=>typeof e=="function",G=e=>typeof e=="string",ve=e=>typeof e=="symbol",z=e=>e!==null&&typeof e=="object",Mn=e=>(z(e)||P(e))&&P(e.then)&&P(e.catch),Ln=Object.prototype.toString,mt=e=>Ln.call(e),Dr=e=>mt(e).slice(8,-1),Vt=e=>mt(e)==="[object Object]",Lo=e=>G(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,$t=So(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),qt=e=>{const t=Object.create(null);return o=>t[o]||(t[o]=e(o))},zr=/-\w/g,te=qt(e=>e.replace(zr,t=>t.slice(1).toUpperCase())),Hr=/\B([A-Z])/g,me=qt(e=>e.replace(Hr,"-$1").toLowerCase()),Kt=qt(e=>e.charAt(0).toUpperCase()+e.slice(1)),Oo=qt(e=>e?`on${Kt(e)}`:""),ke=(e,t)=>!Object.is(e,t),Po=(e,...t)=>{for(let o=0;o{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:o})},Br=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Pn=e=>{const t=G(e)?Number(e):NaN;return isNaN(t)?e:t};let An;const Gt=()=>An||(An=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ao(e){if(L(e)){const t={};for(let o=0;o{if(o){const n=o.split(jr);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function Ke(e){let t="";if(G(e))t=e;else if(L(e))for(let o=0;o!!(e&&e.__v_isRef===!0),D=e=>G(e)?e:e==null?"":L(e)||z(e)&&(e.toString===Ln||!P(e.toString))?In(e)?D(e.value):JSON.stringify(e,Nn,2):String(e),Nn=(e,t)=>In(t)?Nn(e,t.value):qe(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((o,[n,s],r)=>(o[Co(n,r)+" =>"]=s,o),{})}:jt(t)?{[`Set(${t.size})`]:[...t.values()].map(o=>Co(o))}:ve(t)?Co(t):z(t)&&!L(t)&&!Vt(t)?String(t):t,Co=(e,t="")=>{var o;return ve(e)?`Symbol(${(o=e.description)!=null?o:t})`:e};/** +**/function Ao(e){const t=Object.create(null);for(const o of e.split(","))t[o]=1;return o=>o in t}const j={},rt=[],xe=()=>{},Ln=()=>!1,Ut=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),jt=e=>e.startsWith("onUpdate:"),Z=Object.assign,Po=(e,t)=>{const o=e.indexOf(t);o>-1&&e.splice(o,1)},Ba=Object.prototype.hasOwnProperty,D=(e,t)=>Ba.call(e,t),O=Array.isArray,Ke=e=>mt(e)==="[object Map]",Vt=e=>mt(e)==="[object Set]",On=e=>mt(e)==="[object Date]",P=e=>typeof e=="function",G=e=>typeof e=="string",be=e=>typeof e=="symbol",z=e=>e!==null&&typeof e=="object",An=e=>(z(e)||P(e))&&P(e.then)&&P(e.catch),Pn=Object.prototype.toString,mt=e=>Pn.call(e),Ua=e=>mt(e).slice(8,-1),qt=e=>mt(e)==="[object Object]",Co=e=>G(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,_t=Ao(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Kt=e=>{const t=Object.create(null);return o=>t[o]||(t[o]=e(o))},ja=/-\w/g,oe=Kt(e=>e.replace(ja,t=>t.slice(1).toUpperCase())),Va=/\B([A-Z])/g,me=Kt(e=>e.replace(Va,"-$1").toLowerCase()),Gt=Kt(e=>e.charAt(0).toUpperCase()+e.slice(1)),Fo=Kt(e=>e?`on${Gt(e)}`:""),ke=(e,t)=>!Object.is(e,t),Io=(e,...t)=>{for(let o=0;o{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:o})},qa=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Fn=e=>{const t=G(e)?Number(e):NaN;return isNaN(t)?e:t};let In;const Jt=()=>In||(In=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function No(e){if(O(e)){const t={};for(let o=0;o{if(o){const n=o.split(Ga);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function We(e){let t="";if(G(e))t=e;else if(O(e))for(let o=0;o!!(e&&e.__v_isRef===!0),E=e=>G(e)?e:e==null?"":O(e)||z(e)&&(e.toString===Pn||!P(e.toString))?Rn(e)?E(e.value):JSON.stringify(e,Wn,2):String(e),Wn=(e,t)=>Rn(t)?Wn(e,t.value):Ke(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((o,[n,s],a)=>(o[Eo(n,a)+" =>"]=s,o),{})}:Vt(t)?{[`Set(${t.size})`]:[...t.values()].map(o=>Eo(o))}:be(t)?Eo(t):z(t)&&!O(t)&&!qt(t)?String(t):t,Eo=(e,t="")=>{var o;return be(e)?`Symbol(${(o=e.description)!=null?o:t})`:e};/** * @vue/reactivity v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let ne;class Jr{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&ne&&(ne.active?(this.parent=ne,this.index=(ne.scopes||(ne.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,o;if(this.scopes){const n=this.scopes.slice();for(t=0,o=n.length;t0&&--this._on===0){if(ne===this)ne=this.prevScope;else{let t=ne;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let o,n;for(o=0,n=this.effects.length;o0)return;if(vt){let t=vt;for(vt=void 0;t;){const o=t.next;t.next=void 0,t.flags&=-9,t=o}}let e;for(;bt;){let t=bt;for(bt=void 0;t;){const o=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(n){e||(e=n)}t=o}}if(e)throw e}function Dn(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function zn(e){let t,o=e.depsTail,n=o;for(;n;){const s=n.prevDep;n.version===-1?(n===o&&(o=s),Ro(n),Zr(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=s}e.deps=t,e.depsTail=o}function Eo(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Hn(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Hn(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===_t)||(e.globalVersion=_t,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Eo(e))))return;e.flags|=2;const t=e.dep,o=q,n=_e;q=e,_e=!0;try{Dn(e);const s=e.fn(e._value);(t.version===0||ke(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{q=o,_e=n,zn(e),e.flags&=-3}}function Ro(e,t=!1){const{dep:o,prevSub:n,nextSub:s}=e;if(n&&(n.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=n,e.nextSub=void 0),o.subs===e&&(o.subs=n,!n&&o.computed)){o.computed.flags&=-5;for(let r=o.computed.deps;r;r=r.nextDep)Ro(r,!0)}!t&&!--o.sc&&o.map&&o.map.delete(o.key)}function Zr(e){const{prevDep:t,nextDep:o}=e;t&&(t.nextDep=o,e.prevDep=void 0),o&&(o.prevDep=t,e.nextDep=void 0)}let _e=!0;const Bn=[];function Te(){Bn.push(_e),_e=!1}function Se(){const e=Bn.pop();_e=e===void 0?!0:e}function Un(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const o=q;q=void 0;try{t()}finally{q=o}}}let _t=0;class Yr{constructor(t,o){this.sub=t,this.dep=o,this.version=o.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Wo{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!q||!_e||q===this.computed)return;let o=this.activeLink;if(o===void 0||o.sub!==q)o=this.activeLink=new Yr(q,this),q.deps?(o.prevDep=q.depsTail,q.depsTail.nextDep=o,q.depsTail=o):q.deps=q.depsTail=o,jn(o);else if(o.version===-1&&(o.version=this.version,o.nextDep)){const n=o.nextDep;n.prevDep=o.prevDep,o.prevDep&&(o.prevDep.nextDep=n),o.prevDep=q.depsTail,o.nextDep=void 0,q.depsTail.nextDep=o,q.depsTail=o,q.deps===o&&(q.deps=n)}return o}trigger(t){this.version++,_t++,this.notify(t)}notify(t){Io();try{for(let o=this.subs;o;o=o.prevSub)o.sub.notify()&&o.sub.dep.notify()}finally{No()}}}function jn(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let n=t.deps;n;n=n.nextDep)jn(n)}const o=e.dep.subs;o!==e&&(e.prevSub=o,o&&(o.nextSub=e)),e.dep.subs=e}}const Do=new WeakMap,Ze=Symbol(""),zo=Symbol(""),yt=Symbol("");function le(e,t,o){if(_e&&q){let n=Do.get(e);n||Do.set(e,n=new Map);let s=n.get(o);s||(n.set(o,s=new Wo),s.map=n,s.key=o),s.track()}}function We(e,t,o,n,s,r){const a=Do.get(e);if(!a){_t++;return}const i=l=>{l&&l.trigger()};if(Io(),t==="clear")a.forEach(i);else{const l=L(e),p=l&&Lo(o);if(l&&o==="length"){const d=Number(n);a.forEach((h,w)=>{(w==="length"||w===yt||!ve(w)&&w>=d)&&i(h)})}else switch((o!==void 0||a.has(void 0))&&i(a.get(o)),p&&i(a.get(yt)),t){case"add":l?p&&i(a.get("length")):(i(a.get(Ze)),qe(e)&&i(a.get(zo)));break;case"delete":l||(i(a.get(Ze)),qe(e)&&i(a.get(zo)));break;case"set":qe(e)&&i(a.get(Ze));break}}No()}function at(e){const t=E(e);return t===e?t:(le(t,"iterate",yt),$e(e)?t:t.map(ye))}function Xt(e){return le(e=E(e),"iterate",yt),e}function Me(e,t){return ze(e)?lt(Ye(e)?ye(t):t):ye(t)}const Qr={__proto__:null,[Symbol.iterator](){return Ho(this,Symbol.iterator,e=>Me(this,e))},concat(...e){return at(this).concat(...e.map(t=>L(t)?at(t):t))},entries(){return Ho(this,"entries",e=>(e[1]=Me(this,e[1]),e))},every(e,t){return De(this,"every",e,t,void 0,arguments)},filter(e,t){return De(this,"filter",e,t,o=>o.map(n=>Me(this,n)),arguments)},find(e,t){return De(this,"find",e,t,o=>Me(this,o),arguments)},findIndex(e,t){return De(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return De(this,"findLast",e,t,o=>Me(this,o),arguments)},findLastIndex(e,t){return De(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return De(this,"forEach",e,t,void 0,arguments)},includes(...e){return Bo(this,"includes",e)},indexOf(...e){return Bo(this,"indexOf",e)},join(e){return at(this).join(e)},lastIndexOf(...e){return Bo(this,"lastIndexOf",e)},map(e,t){return De(this,"map",e,t,void 0,arguments)},pop(){return wt(this,"pop")},push(...e){return wt(this,"push",e)},reduce(e,...t){return Vn(this,"reduce",e,t)},reduceRight(e,...t){return Vn(this,"reduceRight",e,t)},shift(){return wt(this,"shift")},some(e,t){return De(this,"some",e,t,void 0,arguments)},splice(...e){return wt(this,"splice",e)},toReversed(){return at(this).toReversed()},toSorted(e){return at(this).toSorted(e)},toSpliced(...e){return at(this).toSpliced(...e)},unshift(...e){return wt(this,"unshift",e)},values(){return Ho(this,"values",e=>Me(this,e))}};function Ho(e,t,o){const n=Xt(e),s=n[t]();return n!==e&&!$e(e)&&(s._next=s.next,s.next=()=>{const r=s._next();return r.done||(r.value=o(r.value)),r}),s}const ei=Array.prototype;function De(e,t,o,n,s,r){const a=Xt(e),i=a!==e&&!$e(e),l=a[t];if(l!==ei[t]){const h=l.apply(e,r);return i?ye(h):h}let p=o;a!==e&&(i?p=function(h,w){return o.call(this,Me(e,h),w,e)}:o.length>2&&(p=function(h,w){return o.call(this,h,w,e)}));const d=l.call(a,p,n);return i&&s?s(d):d}function Vn(e,t,o,n){const s=Xt(e),r=s!==e&&!$e(e);let a=o,i=!1;s!==e&&(r?(i=n.length===0,a=function(p,d,h){return i&&(i=!1,p=Me(e,p)),o.call(this,p,Me(e,d),h,e)}):o.length>3&&(a=function(p,d,h){return o.call(this,p,d,h,e)}));const l=s[t](a,...n);return i?Me(e,l):l}function Bo(e,t,o){const n=E(e);le(n,"iterate",yt);const s=n[t](...o);return(s===-1||s===!1)&&qo(o[0])?(o[0]=E(o[0]),n[t](...o)):s}function wt(e,t,o=[]){Te(),Io();const n=E(e)[t].apply(e,o);return No(),Se(),n}const ti=So("__proto__,__v_isRef,__isVue"),qn=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(ve));function oi(e){ve(e)||(e=String(e));const t=E(this);return le(t,"has",e),t.hasOwnProperty(e)}class Kn{constructor(t=!1,o=!1){this._isReadonly=t,this._isShallow=o}get(t,o,n){if(o==="__v_skip")return t.__v_skip;const s=this._isReadonly,r=this._isShallow;if(o==="__v_isReactive")return!s;if(o==="__v_isReadonly")return s;if(o==="__v_isShallow")return r;if(o==="__v_raw")return n===(s?r?Qn:Yn:r?Zn:Xn).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const a=L(t);if(!s){let l;if(a&&(l=Qr[o]))return l;if(o==="hasOwnProperty")return oi}const i=Reflect.get(t,o,se(t)?t:n);if((ve(o)?qn.has(o):ti(o))||(s||le(t,"get",o),r))return i;if(se(i)){const l=a&&Lo(o)?i:i.value;return s&&z(l)?Vo(l):l}return z(i)?s?Vo(i):jo(i):i}}class Gn extends Kn{constructor(t=!1){super(!1,t)}set(t,o,n,s){let r=t[o];const a=L(t)&&Lo(o);if(!this._isShallow){const p=ze(r);if(!$e(n)&&!ze(n)&&(r=E(r),n=E(n)),!a&&se(r)&&!se(n))return p||(r.value=n),!0}const i=a?Number(o)e,Zt=e=>Reflect.getPrototypeOf(e);function ai(e,t,o){return function(...n){const s=this.__v_raw,r=E(s),a=qe(r),i=e==="entries"||e===Symbol.iterator&&a,l=e==="keys"&&a,p=s[e](...n),d=o?Uo:t?lt:ye;return!t&&le(r,"iterate",l?zo:Ze),Z(Object.create(p),{next(){const{value:h,done:w}=p.next();return w?{value:h,done:w}:{value:i?[d(h[0]),d(h[1])]:d(h),done:w}}})}}function Yt(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function li(e,t){const o={get(s){const r=this.__v_raw,a=E(r),i=E(s);e||(ke(s,i)&&le(a,"get",s),le(a,"get",i));const{has:l}=Zt(a),p=t?Uo:e?lt:ye;if(l.call(a,s))return p(r.get(s));if(l.call(a,i))return p(r.get(i));r!==a&&r.get(s)},get size(){const s=this.__v_raw;return!e&&le(E(s),"iterate",Ze),s.size},has(s){const r=this.__v_raw,a=E(r),i=E(s);return e||(ke(s,i)&&le(a,"has",s),le(a,"has",i)),s===i?r.has(s):r.has(s)||r.has(i)},forEach(s,r){const a=this,i=a.__v_raw,l=E(i),p=t?Uo:e?lt:ye;return!e&&le(l,"iterate",Ze),i.forEach((d,h)=>s.call(r,p(d),p(h),a))}};return Z(o,e?{add:Yt("add"),set:Yt("set"),delete:Yt("delete"),clear:Yt("clear")}:{add(s){const r=E(this),a=Zt(r),i=E(s),l=!t&&!$e(s)&&!ze(s)?i:s;return a.has.call(r,l)||ke(s,l)&&a.has.call(r,s)||ke(i,l)&&a.has.call(r,i)||(r.add(l),We(r,"add",l,l)),this},set(s,r){!t&&!$e(r)&&!ze(r)&&(r=E(r));const a=E(this),{has:i,get:l}=Zt(a);let p=i.call(a,s);p||(s=E(s),p=i.call(a,s));const d=l.call(a,s);return a.set(s,r),p?ke(r,d)&&We(a,"set",s,r):We(a,"add",s,r),this},delete(s){const r=E(this),{has:a,get:i}=Zt(r);let l=a.call(r,s);l||(s=E(s),l=a.call(r,s)),i&&i.call(r,s);const p=r.delete(s);return l&&We(r,"delete",s,void 0),p},clear(){const s=E(this),r=s.size!==0,a=s.clear();return r&&We(s,"clear",void 0,void 0),a}}),["keys","values","entries",Symbol.iterator].forEach(s=>{o[s]=ai(s,e,t)}),o}function Qt(e,t){const o=li(e,t);return(n,s,r)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?n:Reflect.get(W(o,s)&&s in n?o:n,s,r)}const ci={get:Qt(!1,!1)},pi={get:Qt(!1,!0)},di={get:Qt(!0,!1)},ui={get:Qt(!0,!0)},Xn=new WeakMap,Zn=new WeakMap,Yn=new WeakMap,Qn=new WeakMap;function fi(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function jo(e){return ze(e)?e:eo(e,!1,ni,ci,Xn)}function hi(e){return eo(e,!1,ri,pi,Zn)}function Vo(e){return eo(e,!0,si,di,Yn)}function Gc(e){return eo(e,!0,ii,ui,Qn)}function eo(e,t,o,n,s){if(!z(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const r=s.get(e);if(r)return r;const a=fi(Dr(e));if(a===0)return e;const i=new Proxy(e,a===2?n:o);return s.set(e,i),i}function Ye(e){return ze(e)?Ye(e.__v_raw):!!(e&&e.__v_isReactive)}function ze(e){return!!(e&&e.__v_isReadonly)}function $e(e){return!!(e&&e.__v_isShallow)}function qo(e){return e?!!e.__v_raw:!1}function E(e){const t=e&&e.__v_raw;return t?E(t):e}function gi(e){return!W(e,"__v_skip")&&Object.isExtensible(e)&&On(e,"__v_skip",!0),e}const ye=e=>z(e)?jo(e):e,lt=e=>z(e)?Vo(e):e;function se(e){return e?e.__v_isRef===!0:!1}function es(e){return mi(e,!1)}function mi(e,t){return se(e)?e:new $i(e,t)}class $i{constructor(t,o){this.dep=new Wo,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=o?t:E(t),this._value=o?t:ye(t),this.__v_isShallow=o}get value(){return this.dep.track(),this._value}set value(t){const o=this._rawValue,n=this.__v_isShallow||$e(t)||ze(t);t=n?t:E(t),ke(t,o)&&(this._rawValue=t,this._value=n?t:ye(t),this.dep.trigger())}}function ts(e){return se(e)?e.value:e}const bi={get:(e,t,o)=>t==="__v_raw"?e:ts(Reflect.get(e,t,o)),set:(e,t,o,n)=>{const s=e[t];return se(s)&&!se(o)?(s.value=o,!0):Reflect.set(e,t,o,n)}};function os(e){return Ye(e)?e:new Proxy(e,bi)}class vi{constructor(t,o,n){this.fn=t,this.setter=o,this._value=void 0,this.dep=new Wo(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=_t-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!o,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&q!==this)return Wn(this,!0),!0}get value(){const t=this.dep.track();return Hn(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function _i(e,t,o=!1){let n,s;return P(e)?n=e:(n=e.get,s=e.set),new vi(n,s,o)}const to={},oo=new WeakMap;let Qe;function yi(e,t=!1,o=Qe){if(o){let n=oo.get(o);n||oo.set(o,n=[]),n.push(e)}}function wi(e,t,o=j){const{immediate:n,deep:s,once:r,scheduler:a,augmentJob:i,call:l}=o,p=M=>s?M:$e(M)||s===!1||s===0?He(M,1):He(M);let d,h,w,k,H=!1,C=!1;if(se(e)?(h=()=>e.value,H=$e(e)):Ye(e)?(h=()=>p(e),H=!0):L(e)?(C=!0,H=e.some(M=>Ye(M)||$e(M)),h=()=>e.map(M=>{if(se(M))return M.value;if(Ye(M))return p(M);if(P(M))return l?l(M,2):M()})):P(e)?t?h=l?()=>l(e,2):e:h=()=>{if(w){Te();try{w()}finally{Se()}}const M=Qe;Qe=d;try{return l?l(e,3,[k]):e(k)}finally{Qe=M}}:h=xe,t&&s){const M=h,ee=s===!0?1/0:s;h=()=>He(M(),ee)}const Y=Xr(),J=()=>{d.stop(),Y&&Y.active&&Mo(Y.effects,d)};if(r&&t){const M=t;t=(...ee)=>{const Ce=M(...ee);return J(),Ce}}let R=C?new Array(e.length).fill(to):to;const B=M=>{if(!(!(d.flags&1)||!d.dirty&&!M))if(t){const ee=d.run();if(M||s||H||(C?ee.some((Ce,Fe)=>ke(Ce,R[Fe])):ke(ee,R))){w&&w();const Ce=Qe;Qe=d;try{const Fe=[ee,R===to?void 0:C&&R[0]===to?[]:R,k];R=ee,l?l(t,3,Fe):t(...Fe)}finally{Qe=Ce}}}else d.run()};return i&&i(B),d=new En(h),d.scheduler=a?()=>a(B,!1):B,k=M=>yi(M,!1,d),w=d.onStop=()=>{const M=oo.get(d);if(M){if(l)l(M,4);else for(const ee of M)ee();oo.delete(d)}},t?n?B(!0):R=d.run():a?a(B.bind(null,!0),!0):d.run(),J.pause=d.pause.bind(d),J.resume=d.resume.bind(d),J.stop=J,J}function He(e,t=1/0,o){if(t<=0||!z(e)||e.__v_skip||(o=o||new Map,(o.get(e)||0)>=t))return e;if(o.set(e,t),t--,se(e))He(e.value,t,o);else if(L(e))for(let n=0;n{He(n,t,o)});else if(Vt(e)){for(const n in e)He(e[n],t,o);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&He(e[n],t,o)}return e}/** +**/let se;class Qa{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&se&&(se.active?(this.parent=se,this.index=(se.scopes||(se.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,o;if(this.scopes){const n=this.scopes.slice();for(t=0,o=n.length;t0&&--this._on===0){if(se===this)se=this.prevScope;else{let t=se;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let o,n;for(o=0,n=this.effects.length;o0)return;if(vt){let t=vt;for(vt=void 0;t;){const o=t.next;t.next=void 0,t.flags&=-9,t=o}}let e;for(;bt;){let t=bt;for(bt=void 0;t;){const o=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(n){e||(e=n)}t=o}}if(e)throw e}function Bn(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Un(e){let t,o=e.depsTail,n=o;for(;n;){const s=n.prevDep;n.version===-1?(n===o&&(o=s),Ho(n),tr(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=s}e.deps=t,e.depsTail=o}function zo(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(jn(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function jn(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===yt)||(e.globalVersion=yt,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!zo(e))))return;e.flags|=2;const t=e.dep,o=q,n=ve;q=e,ve=!0;try{Bn(e);const s=e.fn(e._value);(t.version===0||ke(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{q=o,ve=n,Un(e),e.flags&=-3}}function Ho(e,t=!1){const{dep:o,prevSub:n,nextSub:s}=e;if(n&&(n.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=n,e.nextSub=void 0),o.subs===e&&(o.subs=n,!n&&o.computed)){o.computed.flags&=-5;for(let a=o.computed.deps;a;a=a.nextDep)Ho(a,!0)}!t&&!--o.sc&&o.map&&o.map.delete(o.key)}function tr(e){const{prevDep:t,nextDep:o}=e;t&&(t.nextDep=o,e.prevDep=void 0),o&&(o.prevDep=t,e.nextDep=void 0)}let ve=!0;const Vn=[];function Te(){Vn.push(ve),ve=!1}function Se(){const e=Vn.pop();ve=e===void 0?!0:e}function qn(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const o=q;q=void 0;try{t()}finally{q=o}}}let yt=0;class or{constructor(t,o){this.sub=t,this.dep=o,this.version=o.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Bo{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!q||!ve||q===this.computed)return;let o=this.activeLink;if(o===void 0||o.sub!==q)o=this.activeLink=new or(q,this),q.deps?(o.prevDep=q.depsTail,q.depsTail.nextDep=o,q.depsTail=o):q.deps=q.depsTail=o,Kn(o);else if(o.version===-1&&(o.version=this.version,o.nextDep)){const n=o.nextDep;n.prevDep=o.prevDep,o.prevDep&&(o.prevDep.nextDep=n),o.prevDep=q.depsTail,o.nextDep=void 0,q.depsTail.nextDep=o,q.depsTail=o,q.deps===o&&(q.deps=n)}return o}trigger(t){this.version++,yt++,this.notify(t)}notify(t){Wo();try{for(let o=this.subs;o;o=o.prevSub)o.sub.notify()&&o.sub.dep.notify()}finally{Do()}}}function Kn(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let n=t.deps;n;n=n.nextDep)Kn(n)}const o=e.dep.subs;o!==e&&(e.prevSub=o,o&&(o.nextSub=e)),e.dep.subs=e}}const Uo=new WeakMap,Ze=Symbol(""),jo=Symbol(""),wt=Symbol("");function le(e,t,o){if(ve&&q){let n=Uo.get(e);n||Uo.set(e,n=new Map);let s=n.get(o);s||(n.set(o,s=new Bo),s.map=n,s.key=o),s.track()}}function De(e,t,o,n,s,a){const i=Uo.get(e);if(!i){yt++;return}const r=l=>{l&&l.trigger()};if(Wo(),t==="clear")i.forEach(r);else{const l=O(e),d=l&&Co(o);if(l&&o==="length"){const p=Number(n);i.forEach((f,w)=>{(w==="length"||w===wt||!be(w)&&w>=p)&&r(f)})}else switch((o!==void 0||i.has(void 0))&&r(i.get(o)),d&&r(i.get(wt)),t){case"add":l?d&&r(i.get("length")):(r(i.get(Ze)),Ke(e)&&r(i.get(jo)));break;case"delete":l||(r(i.get(Ze)),Ke(e)&&r(i.get(jo)));break;case"set":Ke(e)&&r(i.get(Ze));break}}Do()}function it(e){const t=R(e);return t===e?t:(le(t,"iterate",wt),_e(e)?t:t.map(ye))}function Zt(e){return le(e=R(e),"iterate",wt),e}function Me(e,t){return He(e)?lt(Ye(e)?ye(t):t):ye(t)}const nr={__proto__:null,[Symbol.iterator](){return Vo(this,Symbol.iterator,e=>Me(this,e))},concat(...e){return it(this).concat(...e.map(t=>O(t)?it(t):t))},entries(){return Vo(this,"entries",e=>(e[1]=Me(this,e[1]),e))},every(e,t){return ze(this,"every",e,t,void 0,arguments)},filter(e,t){return ze(this,"filter",e,t,o=>o.map(n=>Me(this,n)),arguments)},find(e,t){return ze(this,"find",e,t,o=>Me(this,o),arguments)},findIndex(e,t){return ze(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return ze(this,"findLast",e,t,o=>Me(this,o),arguments)},findLastIndex(e,t){return ze(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return ze(this,"forEach",e,t,void 0,arguments)},includes(...e){return qo(this,"includes",e)},indexOf(...e){return qo(this,"indexOf",e)},join(e){return it(this).join(e)},lastIndexOf(...e){return qo(this,"lastIndexOf",e)},map(e,t){return ze(this,"map",e,t,void 0,arguments)},pop(){return xt(this,"pop")},push(...e){return xt(this,"push",e)},reduce(e,...t){return Gn(this,"reduce",e,t)},reduceRight(e,...t){return Gn(this,"reduceRight",e,t)},shift(){return xt(this,"shift")},some(e,t){return ze(this,"some",e,t,void 0,arguments)},splice(...e){return xt(this,"splice",e)},toReversed(){return it(this).toReversed()},toSorted(e){return it(this).toSorted(e)},toSpliced(...e){return it(this).toSpliced(...e)},unshift(...e){return xt(this,"unshift",e)},values(){return Vo(this,"values",e=>Me(this,e))}};function Vo(e,t,o){const n=Zt(e),s=n[t]();return n!==e&&!_e(e)&&(s._next=s.next,s.next=()=>{const a=s._next();return a.done||(a.value=o(a.value)),a}),s}const sr=Array.prototype;function ze(e,t,o,n,s,a){const i=Zt(e),r=i!==e&&!_e(e),l=i[t];if(l!==sr[t]){const f=l.apply(e,a);return r?ye(f):f}let d=o;i!==e&&(r?d=function(f,w){return o.call(this,Me(e,f),w,e)}:o.length>2&&(d=function(f,w){return o.call(this,f,w,e)}));const p=l.call(i,d,n);return r&&s?s(p):p}function Gn(e,t,o,n){const s=Zt(e),a=s!==e&&!_e(e);let i=o,r=!1;s!==e&&(a?(r=n.length===0,i=function(d,p,f){return r&&(r=!1,d=Me(e,d)),o.call(this,d,Me(e,p),f,e)}):o.length>3&&(i=function(d,p,f){return o.call(this,d,p,f,e)}));const l=s[t](i,...n);return r?Me(e,l):l}function qo(e,t,o){const n=R(e);le(n,"iterate",wt);const s=n[t](...o);return(s===-1||s===!1)&&Xo(o[0])?(o[0]=R(o[0]),n[t](...o)):s}function xt(e,t,o=[]){Te(),Wo();const n=R(e)[t].apply(e,o);return Do(),Se(),n}const ar=Ao("__proto__,__v_isRef,__isVue"),Jn=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(be));function rr(e){be(e)||(e=String(e));const t=R(this);return le(t,"has",e),t.hasOwnProperty(e)}class Xn{constructor(t=!1,o=!1){this._isReadonly=t,this._isShallow=o}get(t,o,n){if(o==="__v_skip")return t.__v_skip;const s=this._isReadonly,a=this._isShallow;if(o==="__v_isReactive")return!s;if(o==="__v_isReadonly")return s;if(o==="__v_isShallow")return a;if(o==="__v_raw")return n===(s?a?os:ts:a?es:Qn).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const i=O(t);if(!s){let l;if(i&&(l=nr[o]))return l;if(o==="hasOwnProperty")return rr}const r=Reflect.get(t,o,ae(t)?t:n);if((be(o)?Jn.has(o):ar(o))||(s||le(t,"get",o),a))return r;if(ae(r)){const l=i&&Co(o)?r:r.value;return s&&z(l)?Jo(l):l}return z(r)?s?Jo(r):Go(r):r}}class Zn extends Xn{constructor(t=!1){super(!1,t)}set(t,o,n,s){let a=t[o];const i=O(t)&&Co(o);if(!this._isShallow){const d=He(a);if(!_e(n)&&!He(n)&&(a=R(a),n=R(n)),!i&&ae(a)&&!ae(n))return d||(a.value=n),!0}const r=i?Number(o)e,Yt=e=>Reflect.getPrototypeOf(e);function pr(e,t,o){return function(...n){const s=this.__v_raw,a=R(s),i=Ke(a),r=e==="entries"||e===Symbol.iterator&&i,l=e==="keys"&&i,d=s[e](...n),p=o?Ko:t?lt:ye;return!t&&le(a,"iterate",l?jo:Ze),Z(Object.create(d),{next(){const{value:f,done:w}=d.next();return w?{value:f,done:w}:{value:r?[p(f[0]),p(f[1])]:p(f),done:w}}})}}function Qt(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function ur(e,t){const o={get(s){const a=this.__v_raw,i=R(a),r=R(s);e||(ke(s,r)&&le(i,"get",s),le(i,"get",r));const{has:l}=Yt(i),d=t?Ko:e?lt:ye;if(l.call(i,s))return d(a.get(s));if(l.call(i,r))return d(a.get(r));a!==i&&a.get(s)},get size(){const s=this.__v_raw;return!e&&le(R(s),"iterate",Ze),s.size},has(s){const a=this.__v_raw,i=R(a),r=R(s);return e||(ke(s,r)&&le(i,"has",s),le(i,"has",r)),s===r?a.has(s):a.has(s)||a.has(r)},forEach(s,a){const i=this,r=i.__v_raw,l=R(r),d=t?Ko:e?lt:ye;return!e&&le(l,"iterate",Ze),r.forEach((p,f)=>s.call(a,d(p),d(f),i))}};return Z(o,e?{add:Qt("add"),set:Qt("set"),delete:Qt("delete"),clear:Qt("clear")}:{add(s){const a=R(this),i=Yt(a),r=R(s),l=!t&&!_e(s)&&!He(s)?r:s;return i.has.call(a,l)||ke(s,l)&&i.has.call(a,s)||ke(r,l)&&i.has.call(a,r)||(a.add(l),De(a,"add",l,l)),this},set(s,a){!t&&!_e(a)&&!He(a)&&(a=R(a));const i=R(this),{has:r,get:l}=Yt(i);let d=r.call(i,s);d||(s=R(s),d=r.call(i,s));const p=l.call(i,s);return i.set(s,a),d?ke(a,p)&&De(i,"set",s,a):De(i,"add",s,a),this},delete(s){const a=R(this),{has:i,get:r}=Yt(a);let l=i.call(a,s);l||(s=R(s),l=i.call(a,s)),r&&r.call(a,s);const d=a.delete(s);return l&&De(a,"delete",s,void 0),d},clear(){const s=R(this),a=s.size!==0,i=s.clear();return a&&De(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{o[s]=pr(s,e,t)}),o}function eo(e,t){const o=ur(e,t);return(n,s,a)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?n:Reflect.get(D(o,s)&&s in n?o:n,s,a)}const fr={get:eo(!1,!1)},gr={get:eo(!1,!0)},hr={get:eo(!0,!1)},$r={get:eo(!0,!0)},Qn=new WeakMap,es=new WeakMap,ts=new WeakMap,os=new WeakMap;function mr(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Go(e){return He(e)?e:to(e,!1,ir,fr,Qn)}function _r(e){return to(e,!1,cr,gr,es)}function Jo(e){return to(e,!0,lr,hr,ts)}function ud(e){return to(e,!0,dr,$r,os)}function to(e,t,o,n,s){if(!z(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const a=s.get(e);if(a)return a;const i=mr(Ua(e));if(i===0)return e;const r=new Proxy(e,i===2?n:o);return s.set(e,r),r}function Ye(e){return He(e)?Ye(e.__v_raw):!!(e&&e.__v_isReactive)}function He(e){return!!(e&&e.__v_isReadonly)}function _e(e){return!!(e&&e.__v_isShallow)}function Xo(e){return e?!!e.__v_raw:!1}function R(e){const t=e&&e.__v_raw;return t?R(t):e}function br(e){return!D(e,"__v_skip")&&Object.isExtensible(e)&&Cn(e,"__v_skip",!0),e}const ye=e=>z(e)?Go(e):e,lt=e=>z(e)?Jo(e):e;function ae(e){return e?e.__v_isRef===!0:!1}function ns(e){return vr(e,!1)}function vr(e,t){return ae(e)?e:new yr(e,t)}class yr{constructor(t,o){this.dep=new Bo,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=o?t:R(t),this._value=o?t:ye(t),this.__v_isShallow=o}get value(){return this.dep.track(),this._value}set value(t){const o=this._rawValue,n=this.__v_isShallow||_e(t)||He(t);t=n?t:R(t),ke(t,o)&&(this._rawValue=t,this._value=n?t:ye(t),this.dep.trigger())}}function Zo(e){return ae(e)?e.value:e}const wr={get:(e,t,o)=>t==="__v_raw"?e:Zo(Reflect.get(e,t,o)),set:(e,t,o,n)=>{const s=e[t];return ae(s)&&!ae(o)?(s.value=o,!0):Reflect.set(e,t,o,n)}};function ss(e){return Ye(e)?e:new Proxy(e,wr)}class xr{constructor(t,o,n){this.fn=t,this.setter=o,this._value=void 0,this.dep=new Bo(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=yt-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!o,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&q!==this)return Hn(this,!0),!0}get value(){const t=this.dep.track();return jn(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function kr(e,t,o=!1){let n,s;return P(e)?n=e:(n=e.get,s=e.set),new xr(n,s,o)}const oo={},no=new WeakMap;let Qe;function Tr(e,t=!1,o=Qe){if(o){let n=no.get(o);n||no.set(o,n=[]),n.push(e)}}function Sr(e,t,o=j){const{immediate:n,deep:s,once:a,scheduler:i,augmentJob:r,call:l}=o,d=L=>s?L:_e(L)||s===!1||s===0?Be(L,1):Be(L);let p,f,w,k,H=!1,F=!1;if(ae(e)?(f=()=>e.value,H=_e(e)):Ye(e)?(f=()=>d(e),H=!0):O(e)?(F=!0,H=e.some(L=>Ye(L)||_e(L)),f=()=>e.map(L=>{if(ae(L))return L.value;if(Ye(L))return d(L);if(P(L))return l?l(L,2):L()})):P(e)?t?f=l?()=>l(e,2):e:f=()=>{if(w){Te();try{w()}finally{Se()}}const L=Qe;Qe=p;try{return l?l(e,3,[k]):e(k)}finally{Qe=L}}:f=xe,t&&s){const L=f,te=s===!0?1/0:s;f=()=>Be(L(),te)}const Y=er(),J=()=>{p.stop(),Y&&Y.active&&Po(Y.effects,p)};if(a&&t){const L=t;t=(...te)=>{const Ce=L(...te);return J(),Ce}}let W=F?new Array(e.length).fill(oo):oo;const B=L=>{if(!(!(p.flags&1)||!p.dirty&&!L))if(t){const te=p.run();if(L||s||H||(F?te.some((Ce,Fe)=>ke(Ce,W[Fe])):ke(te,W))){w&&w();const Ce=Qe;Qe=p;try{const Fe=[te,W===oo?void 0:F&&W[0]===oo?[]:W,k];W=te,l?l(t,3,Fe):t(...Fe)}finally{Qe=Ce}}}else p.run()};return r&&r(B),p=new Dn(f),p.scheduler=i?()=>i(B,!1):B,k=L=>Tr(L,!1,p),w=p.onStop=()=>{const L=no.get(p);if(L){if(l)l(L,4);else for(const te of L)te();no.delete(p)}},t?n?B(!0):W=p.run():i?i(B.bind(null,!0),!0):p.run(),J.pause=p.pause.bind(p),J.resume=p.resume.bind(p),J.stop=J,J}function Be(e,t=1/0,o){if(t<=0||!z(e)||e.__v_skip||(o=o||new Map,(o.get(e)||0)>=t))return e;if(o.set(e,t),t--,ae(e))Be(e.value,t,o);else if(O(e))for(let n=0;n{Be(n,t,o)});else if(qt(e)){for(const n in e)Be(e[n],t,o);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&Be(e[n],t,o)}return e}/** * @vue/runtime-core v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/const xt=[];let Ko=!1;function Jc(e,...t){if(Ko)return;Ko=!0,Te();const o=xt.length?xt[xt.length-1].component:null,n=o&&o.appContext.config.warnHandler,s=xi();if(n)ct(n,o,11,[e+t.map(r=>{var a,i;return(i=(a=r.toString)==null?void 0:a.call(r))!=null?i:JSON.stringify(r)}).join(""),o&&o.proxy,s.map(({vnode:r})=>`at <${nr(o,r.type)}>`).join(` -`),s]);else{const r=[`[Vue warn]: ${e}`,...t];s.length&&r.push(` -`,...ki(s)),console.warn(...r)}Se(),Ko=!1}function xi(){let e=xt[xt.length-1];if(!e)return[];const t=[];for(;e;){const o=t[0];o&&o.vnode===e?o.recurseCount++:t.push({vnode:e,recurseCount:0});const n=e.component&&e.component.parent;e=n&&n.vnode}return t}function ki(e){const t=[];return e.forEach((o,n)=>{t.push(...n===0?[]:[` -`],...Ti(o))}),t}function Ti({vnode:e,recurseCount:t}){const o=t>0?`... (${t} recursive calls)`:"",n=e.component?e.component.parent==null:!1,s=` at <${nr(e.component,e.type,n)}`,r=">"+o;return e.props?[s,...Si(e.props),r]:[s+r]}function Si(e){const t=[],o=Object.keys(e);return o.slice(0,3).forEach(n=>{t.push(...ns(n,e[n]))}),o.length>3&&t.push(" ..."),t}function ns(e,t,o){return G(t)?(t=JSON.stringify(t),o?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?o?t:[`${e}=${t}`]:se(t)?(t=ns(e,E(t.value),!0),o?t:[`${e}=Ref<`,t,">"]):P(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=E(t),o?t:[`${e}=`,t])}function ct(e,t,o,n){try{return n?e(...n):e()}catch(s){no(s,t,o)}}function we(e,t,o,n){if(P(e)){const s=ct(e,t,o,n);return s&&Mn(s)&&s.catch(r=>{no(r,t,o)}),s}if(L(e)){const s=[];for(let r=0;r>>1,s=pe[n],r=kt(s);r=kt(o)?pe.push(e):pe.splice(Li(t),0,e),e.flags|=1,is()}}function is(){so||(so=ss.then(cs))}function Oi(e){if(!L(e))Ge&&e.id===-1?Ge.splice(dt+1,0,e):e.flags&1||(pt.push(e),e.flags|=1);else for(let t=0;tkt(o)-kt(n));if(pt.length=0,Ge){for(let o=0;oe.id==null?e.flags&2?-1:1/0:e.id;function cs(e){try{for(Le=0;Le{n._d&&Gs(-1);const r=ro(t),a=Ue.length;let i;try{i=e(...s)}finally{for(let l=Ue.length;l>a;l--)un();ro(r),n._d&&Gs(1)}return i};return n._n=!0,n._c=!0,n._d=!0,n}function Jo(e,t){if(re===null)return e;const o=$o(re),n=e.dirs||(e.dirs=[]);for(let s=0;s1)return o&&P(t)?t.call(n&&n.proxy):t}}const Ai=Symbol.for("v-scx"),Ci=()=>Tt(Ai);function io(e,t,o){return us(e,t,o)}function us(e,t,o=j){const{immediate:n,deep:s,flush:r,once:a}=o,i=Z({},o),l=t&&n||!t&&r!=="post";let p;if(Nt){if(r==="sync"){const k=Ci();p=k.__watcherHandles||(k.__watcherHandles=[])}else if(!l){const k=()=>{};return k.stop=xe,k.resume=xe,k.pause=xe,k}}const d=ce;i.call=(k,H,C)=>we(k,d,H,C);let h=!1;r==="post"?i.scheduler=k=>{fe(k,d&&d.suspense)}:r!=="sync"&&(h=!0,i.scheduler=(k,H)=>{H?k():Go(k)}),i.augmentJob=k=>{t&&(k.flags|=4),h&&(k.flags|=2,d&&(k.id=d.uid,k.i=d))};const w=wi(e,t,i);return Nt&&(p?p.push(w):l&&w()),w}function Fi(e,t,o){const n=this.proxy,s=G(e)?e.includes(".")?fs(n,e):()=>n[e]:e.bind(n,n);let r;P(t)?r=t:(r=t.handler,o=t);const a=It(this),i=us(s,r.bind(n),o);return a(),i}function fs(e,t){const o=t.split(".");return()=>{let n=e;for(let s=0;se.__isTeleport,Xo=Symbol("_leaveCb");function Ni(e){let t=e[0];if(e.length>1){for(const o of e)if(o.type!==Oe){t=o;break}}return t}function hs(e){if(!Qo(e))return ao(e.type)&&e.children?Ni(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:o}=e;if(o){if(t&16)return o[0];if(t&32&&P(o.default))return o.default()}}function Zo(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const o=e.component.subTree;Zo(ao(o.type)&&hs(o)||o,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Yo(e,t){return P(e)?Z({name:e.name},t,{setup:e}):e}function gs(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function ms(e,t){let o;return!!((o=Object.getOwnPropertyDescriptor(e,t))&&!o.configurable)}const lo=new WeakMap;function St(e,t,o,n,s=!1){if(L(e)){e.forEach((C,Y)=>St(C,t&&(L(t)?t[Y]:t),o,n,s));return}if(ut(n)&&!s){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&St(e,t,o,n.component.subTree);return}const r=n.shapeFlag&4?$o(n.component):n.el,a=s?null:r,{i,r:l}=e,p=t&&t.r,d=i.refs===j?i.refs={}:i.refs,h=i.setupState,w=E(h),k=h===j?Tn:C=>ms(d,C)?!1:W(w,C),H=(C,Y)=>!(Y&&ms(d,Y));if(p!=null&&p!==l){if($s(t),G(p))d[p]=null,k(p)&&(h[p]=null);else if(se(p)){const C=t;H(p,C.k)&&(p.value=null),C.k&&(d[C.k]=null)}}if(P(l))ct(l,i,12,[a,d]);else{const C=G(l),Y=se(l);if(C||Y){const J=()=>{if(e.f){const R=C?k(l)?h[l]:d[l]:H()||!e.k?l.value:d[e.k];if(s)L(R)&&Mo(R,r);else if(L(R))R.includes(r)||R.push(r);else if(C)d[l]=[r],k(l)&&(h[l]=d[l]);else{const B=[r];H(l,e.k)&&(l.value=B),e.k&&(d[e.k]=B)}}else C?(d[l]=a,k(l)&&(h[l]=a)):Y&&(H(l,e.k)&&(l.value=a),e.k&&(d[e.k]=a))};if(a){const R=()=>{J(),lo.delete(e)};R.id=-1,lo.set(e,R),fe(R,o)}else $s(e),J()}}}function $s(e){const t=lo.get(e);t&&(t.flags|=8,lo.delete(e))}Gt().requestIdleCallback,Gt().cancelIdleCallback;const ut=e=>!!e.type.__asyncLoader,Qo=e=>e.type.__isKeepAlive;function Ei(e,t){bs(e,"a",t)}function Ri(e,t){bs(e,"da",t)}function bs(e,t,o=ce){const n=e.__wdc||(e.__wdc=()=>{let s=o;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(co(t,n,o),o){let s=o.parent;for(;s&&s.parent;)Qo(s.parent.vnode)&&Wi(n,t,o,s),s=s.parent}}function Wi(e,t,o,n){const s=co(t,e,n,!0);_s(()=>{Mo(n[t],s)},o)}function co(e,t,o=ce,n=!1){if(o){const s=o[e]||(o[e]=[]),r=t.__weh||(t.__weh=(...a)=>{Te();const i=It(o),l=we(t,o,e,a);return i(),Se(),l});return n?s.unshift(r):s.push(r),r}}const Be=e=>(t,o=ce)=>{(!Nt||e==="sp")&&co(e,(...n)=>t(...n),o)},Di=Be("bm"),en=Be("m"),zi=Be("bu"),Hi=Be("u"),vs=Be("bum"),_s=Be("um"),Bi=Be("sp"),Ui=Be("rtg"),ji=Be("rtc");function Vi(e,t=ce){co("ec",e,t)}const qi="components";function tn(e,t){return Gi(qi,e,!0,t)||e}const Ki=Symbol.for("v-ndc");function Gi(e,t,o=!0,n=!1){const s=re||ce;if(s){const r=s.type;{const i=or(r,!1);if(i&&(i===t||i===te(t)||i===Kt(te(t))))return r}const a=ys(s[e]||r[e],t)||ys(s.appContext[e],t);return!a&&n?r:a}}function ys(e,t){return e&&(e[t]||e[te(t)]||e[Kt(te(t))])}function Mt(e,t,o,n){let s;const r=o,a=L(e);if(a||G(e)){const i=a&&Ye(e);let l=!1,p=!1;i&&(l=!$e(e),p=ze(e),e=Xt(e)),s=new Array(e.length);for(let d=0,h=e.length;dt(i,l,void 0,r));else{const i=Object.keys(e);s=new Array(i.length);for(let l=0,p=i.length;l0;return t!=="default"&&(p.name=t),A(),At(oe,null,[be("slot",p,n)],d?-2:64)}let a=e[t];a&&a._c&&(a._d=!1);const i=Ue.length;A();let l;try{const p=a&&ws(a(o)),d=o.key||r||p&&p.key;l=At(oe,{key:(d&&!ve(d)?d:`_${t}`)+(!p&&n?"_fb":"")},p||(n?n():[]),p&&e._===1?64:-2)}catch(p){for(let d=Ue.length;d>i;d--)un();throw p}finally{a&&a._c&&(a._d=!0)}return l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),l}function ws(e){return e.some(t=>fn(t)?!(t.type===Oe||t.type===oe&&!ws(t.children)):!0)?e:null}const on=e=>e?Qs(e)?$o(e):on(e.parent):null,Lt=Z(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>on(e.parent),$root:e=>on(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ss(e),$forceUpdate:e=>e.f||(e.f=()=>{Go(e.update)}),$nextTick:e=>e.n||(e.n=rs.bind(e.proxy)),$watch:e=>Fi.bind(e)}),nn=(e,t)=>e!==j&&!e.__isScriptSetup&&W(e,t),Ji={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:o,setupState:n,data:s,props:r,accessCache:a,type:i,appContext:l}=e;if(t[0]!=="$"){const w=a[t];if(w!==void 0)switch(w){case 1:return n[t];case 2:return s[t];case 4:return o[t];case 3:return r[t]}else{if(nn(n,t))return a[t]=1,n[t];if(s!==j&&W(s,t))return a[t]=2,s[t];if(W(r,t))return a[t]=3,r[t];if(o!==j&&W(o,t))return a[t]=4,o[t];sn&&(a[t]=0)}}const p=Lt[t];let d,h;if(p)return t==="$attrs"&&le(e.attrs,"get",""),p(e);if((d=i.__cssModules)&&(d=d[t]))return d;if(o!==j&&W(o,t))return a[t]=4,o[t];if(h=l.config.globalProperties,W(h,t))return h[t]},set({_:e},t,o){const{data:n,setupState:s,ctx:r}=e;return nn(s,t)?(s[t]=o,!0):n!==j&&W(n,t)?(n[t]=o,!0):W(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(r[t]=o,!0)},has({_:{data:e,setupState:t,accessCache:o,ctx:n,appContext:s,props:r,type:a}},i){let l;return!!(o[i]||e!==j&&i[0]!=="$"&&W(e,i)||nn(t,i)||W(r,i)||W(n,i)||W(Lt,i)||W(s.config.globalProperties,i)||(l=a.__cssModules)&&l[i])},defineProperty(e,t,o){return o.get!=null?e._.accessCache[t]=0:W(o,"value")&&this.set(e,t,o.value,null),Reflect.defineProperty(e,t,o)}};function xs(e){return L(e)?e.reduce((t,o)=>(t[o]=null,t),{}):e}let sn=!0;function Xi(e){const t=Ss(e),o=e.proxy,n=e.ctx;sn=!1,t.beforeCreate&&ks(t.beforeCreate,e,"bc");const{data:s,computed:r,methods:a,watch:i,provide:l,inject:p,created:d,beforeMount:h,mounted:w,beforeUpdate:k,updated:H,activated:C,deactivated:Y,beforeDestroy:J,beforeUnmount:R,destroyed:B,unmounted:M,render:ee,renderTracked:Ce,renderTriggered:Fe,errorCaptured:Xe,serverPrefetch:yo,expose:nt,inheritAttrs:Wt,components:wo,directives:xo,filters:xn}=t;if(p&&Zi(p,n,null),a)for(const X in a){const K=a[X];P(K)&&(n[X]=K.bind(o))}if(s){const X=s.call(o,o);z(X)&&(e.data=jo(X))}if(sn=!0,r)for(const X in r){const K=r[X],st=P(K)?K.bind(o,o):P(K.get)?K.get.bind(o,o):xe,ko=!P(K)&&P(K.set)?K.set.bind(o):xe,rt=sr({get:st,set:ko});Object.defineProperty(n,X,{enumerable:!0,configurable:!0,get:()=>rt.value,set:Ie=>rt.value=Ie})}if(i)for(const X in i)Ts(i[X],n,o,X);if(l){const X=P(l)?l.call(o):l;Reflect.ownKeys(X).forEach(K=>{Pi(K,X[K])})}d&&ks(d,e,"c");function ue(X,K){L(K)?K.forEach(st=>X(st.bind(o))):K&&X(K.bind(o))}if(ue(Di,h),ue(en,w),ue(zi,k),ue(Hi,H),ue(Ei,C),ue(Ri,Y),ue(Vi,Xe),ue(ji,Ce),ue(Ui,Fe),ue(vs,R),ue(_s,M),ue(Bi,yo),L(nt))if(nt.length){const X=e.exposed||(e.exposed={});nt.forEach(K=>{Object.defineProperty(X,K,{get:()=>o[K],set:st=>o[K]=st,enumerable:!0})})}else e.exposed||(e.exposed={});ee&&e.render===xe&&(e.render=ee),Wt!=null&&(e.inheritAttrs=Wt),wo&&(e.components=wo),xo&&(e.directives=xo),yo&&gs(e)}function Zi(e,t,o=xe){L(e)&&(e=rn(e));for(const n in e){const s=e[n];let r;z(s)?"default"in s?r=Tt(s.from||n,s.default,!0):r=Tt(s.from||n):r=Tt(s),se(r)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>r.value,set:a=>r.value=a}):t[n]=r}}function ks(e,t,o){we(L(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,o)}function Ts(e,t,o,n){let s=n.includes(".")?fs(o,n):()=>o[n];if(G(e)){const r=t[e];P(r)&&io(s,r)}else if(P(e))io(s,e.bind(o));else if(z(e))if(L(e))e.forEach(r=>Ts(r,t,o,n));else{const r=P(e.handler)?e.handler.bind(o):t[e.handler];P(r)&&io(s,r,e)}}function Ss(e){const t=e.type,{mixins:o,extends:n}=t,{mixins:s,optionsCache:r,config:{optionMergeStrategies:a}}=e.appContext,i=r.get(t);let l;return i?l=i:!s.length&&!o&&!n?l=t:(l={},s.length&&s.forEach(p=>po(l,p,a,!0)),po(l,t,a)),z(t)&&r.set(t,l),l}function po(e,t,o,n=!1){const{mixins:s,extends:r}=t;r&&po(e,r,o,!0),s&&s.forEach(a=>po(e,a,o,!0));for(const a in t)if(!(n&&a==="expose")){const i=Yi[a]||o&&o[a];e[a]=i?i(e[a],t[a]):t[a]}return e}const Yi={data:Ms,props:Ls,emits:Ls,methods:Ot,computed:Ot,beforeCreate:de,created:de,beforeMount:de,mounted:de,beforeUpdate:de,updated:de,beforeDestroy:de,beforeUnmount:de,destroyed:de,unmounted:de,activated:de,deactivated:de,errorCaptured:de,serverPrefetch:de,components:Ot,directives:Ot,watch:ea,provide:Ms,inject:Qi};function Ms(e,t){return t?e?function(){return Z(P(e)?e.call(this,this):e,P(t)?t.call(this,this):t)}:t:e}function Qi(e,t){return Ot(rn(e),rn(t))}function rn(e){if(L(e)){const t={};for(let o=0;ot==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${te(t)}Modifiers`]||e[`${me(t)}Modifiers`];function sa(e,t,...o){if(e.isUnmounted)return;const n=e.vnode.props||j;let s=o;const r=t.startsWith("update:"),a=r&&na(n,t.slice(7));a&&(a.trim&&(s=o.map(d=>G(d)?d.trim():d)),a.number&&(s=s.map(Br)));let i,l=n[i=Oo(t)]||n[i=Oo(te(t))];!l&&r&&(l=n[i=Oo(me(t))]),l&&we(l,e,6,s);const p=n[i+"Once"];if(p){if(!e.emitted)e.emitted={};else if(e.emitted[i])return;e.emitted[i]=!0,we(p,e,6,s)}}const ra=new WeakMap;function Ps(e,t,o=!1){const n=o?ra:t.emitsCache,s=n.get(e);if(s!==void 0)return s;const r=e.emits;let a={},i=!1;if(!P(e)){const l=p=>{const d=Ps(p,t,!0);d&&(i=!0,Z(a,d))};!o&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!r&&!i?(z(e)&&n.set(e,null),null):(L(r)?r.forEach(l=>a[l]=null):Z(a,r),z(e)&&n.set(e,a),a)}function uo(e,t){return!e||!Bt(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),W(e,t[0].toLowerCase()+t.slice(1))||W(e,me(t))||W(e,t))}function Xc(){}function As(e){const{type:t,vnode:o,proxy:n,withProxy:s,propsOptions:[r],slots:a,attrs:i,emit:l,render:p,renderCache:d,props:h,data:w,setupState:k,ctx:H,inheritAttrs:C}=e,Y=ro(e);let J,R;try{if(o.shapeFlag&4){const M=s||n,ee=M;J=Pe(p.call(ee,M,d,h,k,w,H)),R=i}else{const M=t;J=Pe(M.length>1?M(h,{attrs:i,slots:a,emit:l}):M(h,null)),R=t.props?i:ia(i)}}catch(M){Ue.length=0,no(M,e,1),J=be(Oe)}let B=J;if(R&&C!==!1){const M=Object.keys(R),{shapeFlag:ee}=B;M.length&&ee&7&&(r&&M.some(Ut)&&(R=aa(R,r)),B=ht(B,R,!1,!0))}if(o.dirs&&(B=ht(B,null,!1,!0),B.dirs=B.dirs?B.dirs.concat(o.dirs):o.dirs),o.transition){const M=ao(B.type)&&hs(B)||B;Zo(M,o.transition)}return J=B,ro(Y),J}const ia=e=>{let t;for(const o in e)(o==="class"||o==="style"||Bt(o))&&((t||(t={}))[o]=e[o]);return t},aa=(e,t)=>{const o={};for(const n in e)(!Ut(n)||!(n.slice(9)in t))&&(o[n]=e[n]);return o};function la(e,t,o){const{props:n,children:s,component:r}=e,{props:a,children:i,patchFlag:l}=t,p=r.emitsOptions;if(t.dirs||t.transition)return!0;if(o&&l>=0){if(l&1024)return!0;if(l&16)return n?Cs(n,a,p):!!a;if(l&8){const d=t.dynamicProps;for(let h=0;hObject.create(Is),Es=e=>Object.getPrototypeOf(e)===Is;function pa(e,t,o,n=!1){const s={},r=Ns();e.propsDefaults=Object.create(null),Rs(e,t,s,r);for(const a in e.propsOptions[0])a in s||(s[a]=void 0);o?e.props=n?s:hi(s):e.type.props?e.props=s:e.props=r,e.attrs=r}function da(e,t,o,n){const{props:s,attrs:r,vnode:{patchFlag:a}}=e,i=E(s),[l]=e.propsOptions;let p=!1;if((n||a>0)&&!(a&16)){if(a&8){const d=e.vnode.dynamicProps;for(let h=0;h{l=!0;const[w,k]=Ws(h,t,!0);Z(a,w),k&&i.push(...k)};!o&&t.mixins.length&&t.mixins.forEach(d),e.extends&&d(e.extends),e.mixins&&e.mixins.forEach(d)}if(!r&&!l)return z(e)&&n.set(e,it),it;if(L(r))for(let d=0;de==="_"||e==="_ctx"||e==="$stable",cn=e=>L(e)?e.map(Pe):[Pe(e)],fa=(e,t,o)=>{if(t._n)return t;const n=ds((...s)=>cn(t(...s)),o);return n._c=!1,n},zs=(e,t,o)=>{const n=e._ctx;for(const s in e){if(ln(s))continue;const r=e[s];if(P(r))t[s]=fa(s,r,n);else if(r!=null){const a=cn(r);t[s]=()=>a}}},Hs=(e,t)=>{const o=cn(t);e.slots.default=()=>o},Bs=(e,t,o)=>{for(const n in t)(o||!ln(n))&&(e[n]=t[n])},ha=(e,t,o)=>{const n=e.slots=Ns();if(e.vnode.shapeFlag&32){const s=t._;s?(Bs(n,t,o),o&&On(n,"_",s,!0)):zs(t,n)}else t&&Hs(e,t)},ga=(e,t,o)=>{const{vnode:n,slots:s}=e;let r=!0,a=j;if(n.shapeFlag&32){const i=t._;i?o&&i===1?r=!1:Bs(s,t,o):(r=!t.$stable,zs(t,s)),a=t}else t&&(Hs(e,t),a={default:1});if(r)for(const i in s)!ln(i)&&a[i]==null&&delete s[i]},fe=_a;function ma(e){return $a(e)}function $a(e,t){const o=Gt();o.__VUE__=!0;const{insert:n,remove:s,patchProp:r,createElement:a,createText:i,createComment:l,setText:p,setElementText:d,parentNode:h,nextSibling:w,setScopeId:k=xe,insertStaticContent:H}=e,C=(c,u,f,b=null,$=null,g=null,y=void 0,_=null,v=!!u.dynamicChildren)=>{if(c===u)return;c&&!Ct(c,u)&&(b=To(c),Ie(c,$,g,!0),c=null),u.patchFlag===-2&&(v=!1,u.dynamicChildren=null);const{type:m,ref:S,shapeFlag:x}=u;switch(m){case fo:Y(c,u,f,b);break;case Oe:J(c,u,f,b);break;case dn:c==null&&R(u,f,b,y);break;case oe:wo(c,u,f,b,$,g,y,_,v);break;default:x&1?ee(c,u,f,b,$,g,y,_,v):x&6?xo(c,u,f,b,$,g,y,_,v):(x&64||x&128)&&m.process(c,u,f,b,$,g,y,_,v,zt)}S!=null&&$?St(S,c&&c.ref,g,u||c,!u):S==null&&c&&c.ref!=null&&St(c.ref,null,g,c,!0)},Y=(c,u,f,b)=>{if(c==null)n(u.el=i(u.children),f,b);else{const $=u.el=c.el;u.children!==c.children&&p($,u.children)}},J=(c,u,f,b)=>{c==null?n(u.el=l(u.children||""),f,b):u.el=c.el},R=(c,u,f,b)=>{[c.el,c.anchor]=H(c.children,u,f,b,c.el,c.anchor)},B=({el:c,anchor:u},f,b)=>{let $;for(;c&&c!==u;)$=w(c),n(c,f,b),c=$;n(u,f,b)},M=({el:c,anchor:u})=>{let f;for(;c&&c!==u;)f=w(c),s(c),c=f;s(u)},ee=(c,u,f,b,$,g,y,_,v)=>{if(u.type==="svg"?y="svg":u.type==="math"&&(y="mathml"),c==null)Ce(u,f,b,$,g,y,_,v);else{const m=c.el&&c.el._isVueCE?c.el:null;try{m&&m._beginPatch(),yo(c,u,$,g,y,_,v)}finally{m&&m._endPatch()}}},Ce=(c,u,f,b,$,g,y,_)=>{let v,m;const{props:S,shapeFlag:x,transition:T,dirs:O}=c;if(v=c.el=a(c.type,g,S&&S.is,S),x&8?d(v,c.children):x&16&&Xe(c.children,v,null,b,$,pn(c,g),y,_),O&&et(c,null,b,"created"),Fe(v,c,c.scopeId,y,b),S){for(const V in S)V!=="value"&&!$t(V)&&r(v,V,null,S[V],g,b);"value"in S&&r(v,"value",null,S.value,g),(m=S.onVnodeBeforeMount)&&Ae(m,b,c)}O&&et(c,null,b,"beforeMount");const N=ba($,T);N&&T.beforeEnter(v),n(v,u,f),((m=S&&S.onVnodeMounted)||N||O)&&fe(()=>{try{m&&Ae(m,b,c),N&&T.enter(v),O&&et(c,null,b,"mounted")}finally{}},$)},Fe=(c,u,f,b,$)=>{if(f&&k(c,f),b)for(let g=0;g{for(let m=v;m{const _=u.el=c.el;let{patchFlag:v,dynamicChildren:m,dirs:S}=u;v|=c.patchFlag&16;const x=c.props||j,T=u.props||j;let O;if(f&&ot(f,!1),(O=T.onVnodeBeforeUpdate)&&Ae(O,f,u,c),S&&et(u,c,f,"beforeUpdate"),f&&ot(f,!0),m&&(!c.dynamicChildren||c.dynamicChildren.length!==m.length)&&(v=0,y=!1,m=null),(x.innerHTML&&T.innerHTML==null||x.textContent&&T.textContent==null)&&d(_,""),m?nt(c.dynamicChildren,m,_,f,b,pn(u,$),g):y||K(c,u,_,null,f,b,pn(u,$),g,!1),v>0){if(v&16)Wt(_,x,T,f,$);else if(v&2&&x.class!==T.class&&r(_,"class",null,T.class,$),v&4&&r(_,"style",x.style,T.style,$),v&8){const N=u.dynamicProps;for(let V=0;V{O&&Ae(O,f,u,c),S&&et(u,c,f,"updated")},b)},nt=(c,u,f,b,$,g,y)=>{for(let _=0;_{if(u!==f){if(u!==j)for(const g in u)!$t(g)&&!(g in f)&&r(c,g,u[g],null,$,b);for(const g in f){if($t(g))continue;const y=f[g],_=u[g];y!==_&&g!=="value"&&r(c,g,_,y,$,b)}"value"in f&&r(c,"value",u.value,f.value,$)}},wo=(c,u,f,b,$,g,y,_,v)=>{const m=u.el=c?c.el:i(""),S=u.anchor=c?c.anchor:i("");let{patchFlag:x,dynamicChildren:T,slotScopeIds:O}=u;O&&(_=_?_.concat(O):O),c==null?(n(m,f,b),n(S,f,b),Xe(u.children||[],f,S,$,g,y,_,v)):x>0&&x&64&&T&&c.dynamicChildren&&c.dynamicChildren.length===T.length?(nt(c.dynamicChildren,T,f,$,g,y,_),(u.key!=null||$&&u===$.subTree)&&Us(c,u,!0)):K(c,u,f,S,$,g,y,_,v)},xo=(c,u,f,b,$,g,y,_,v)=>{u.slotScopeIds=_,c==null?u.shapeFlag&512?$.ctx.activate(u,f,b,y,v):xn(u,f,b,$,g,y,v):Cr(c,u,v)},xn=(c,u,f,b,$,g,y)=>{const _=c.component=Sa(c,b,$);if(Qo(c)&&(_.ctx.renderer=zt),Ma(_,!1,y),_.asyncDep){if($&&$.registerDep(_,ue,y),!c.el){const v=_.subTree=be(Oe);J(null,v,u,f),c.placeholder=v.el}}else ue(_,c,u,f,$,g,y)},Cr=(c,u,f)=>{const b=u.component=c.component;if(la(c,u,f))if(b.asyncDep&&!b.asyncResolved){X(b,u,f);return}else b.next=u,b.update();else u.el=c.el,b.vnode=u},ue=(c,u,f,b,$,g,y)=>{const _=()=>{if(c.isMounted){let{next:x,bu:T,u:O,parent:N,vnode:V}=c;{const Ee=js(c);if(Ee){x&&(x.el=V.el,X(c,x,y)),Ee.asyncDep.then(()=>{fe(()=>{c.isUnmounted||m()},$)});return}}let U=x,Q;ot(c,!1),x?(x.el=V.el,X(c,x,y)):x=V,T&&Po(T),(Q=x.props&&x.props.onVnodeBeforeUpdate)&&Ae(Q,N,x,V),ot(c,!0);const ae=As(c),Ne=c.subTree;c.subTree=ae,C(Ne,ae,h(Ne.el),To(Ne),c,$,g),x.el=ae.el,U===null&&ca(c,ae.el),O&&fe(O,$),(Q=x.props&&x.props.onVnodeUpdated)&&fe(()=>Ae(Q,N,x,V),$)}else{let x;const{el:T,props:O}=u,{bm:N,m:V,parent:U,root:Q,type:ae}=c,Ne=ut(u);ot(c,!1),N&&Po(N),!Ne&&(x=O&&O.onVnodeBeforeMount)&&Ae(x,U,u),ot(c,!0);{Q.ce&&Q.ce._hasShadowRoot()&&Q.ce._injectChildStyle(ae,c.parent?c.parent.type:void 0);const Ee=c.subTree=As(c);C(null,Ee,f,b,c,$,g),u.el=Ee.el}if(V&&fe(V,$),!Ne&&(x=O&&O.onVnodeMounted)){const Ee=u;fe(()=>Ae(x,U,Ee),$)}(u.shapeFlag&256||U&&ut(U.vnode)&&U.vnode.shapeFlag&256)&&c.a&&fe(c.a,$),c.isMounted=!0,u=f=b=null}};c.scope.on();const v=c.effect=new En(_);c.scope.off();const m=c.update=v.run.bind(v),S=c.job=v.runIfDirty.bind(v);S.i=c,S.id=c.uid,v.scheduler=()=>Go(S),ot(c,!0),m()},X=(c,u,f)=>{u.component=c;const b=c.vnode.props;c.vnode=u,c.next=null,da(c,u.props,b,f),ga(c,u.children,f),Te(),as(c),Se()},K=(c,u,f,b,$,g,y,_,v=!1)=>{const m=c&&c.children,S=c?c.shapeFlag:0,x=u.children,{patchFlag:T,shapeFlag:O}=u;if(T>0){if(T&128){ko(m,x,f,b,$,g,y,_,v);return}else if(T&256){st(m,x,f,b,$,g,y,_,v);return}}O&8?(S&16&&Dt(m,$,g),x!==m&&d(f,x)):S&16?O&16?ko(m,x,f,b,$,g,y,_,v):Dt(m,$,g,!0):(S&8&&d(f,""),O&16&&Xe(x,f,b,$,g,y,_,v))},st=(c,u,f,b,$,g,y,_,v)=>{c=c||it,u=u||it;const m=c.length,S=u.length,x=Math.min(m,S);let T;for(T=0;TS?Dt(c,$,g,!0,!1,x):Xe(u,f,b,$,g,y,_,v,x)},ko=(c,u,f,b,$,g,y,_,v)=>{let m=0;const S=u.length;let x=c.length-1,T=S-1;for(;m<=x&&m<=T;){const O=c[m],N=u[m]=v?je(u[m]):Pe(u[m]);if(Ct(O,N))C(O,N,f,null,$,g,y,_,v);else break;m++}for(;m<=x&&m<=T;){const O=c[x],N=u[T]=v?je(u[T]):Pe(u[T]);if(Ct(O,N))C(O,N,f,null,$,g,y,_,v);else break;x--,T--}if(m>x){if(m<=T){const O=T+1,N=OT)for(;m<=x;)Ie(c[m],$,g,!0),m++;else{const O=m,N=m,V=new Map;for(m=N;m<=T;m++){const ge=u[m]=v?je(u[m]):Pe(u[m]);ge.key!=null&&V.set(ge.key,m)}let U,Q=0;const ae=T-N+1;let Ne=!1,Ee=0;const Ht=new Array(ae);for(m=0;m=ae){Ie(ge,$,g,!0);continue}let Re;if(ge.key!=null)Re=V.get(ge.key);else for(U=N;U<=T;U++)if(Ht[U-N]===0&&Ct(ge,u[U])){Re=U;break}Re===void 0?Ie(ge,$,g,!0):(Ht[Re-N]=m+1,Re>=Ee?Ee=Re:Ne=!0,C(ge,u[Re],f,null,$,g,y,_,v),Q++)}const Nr=Ne?va(Ht):it;for(U=Nr.length-1,m=ae-1;m>=0;m--){const ge=N+m,Re=u[ge],Er=u[ge+1],Rr=ge+1{const{el:g,type:y,transition:_,children:v,shapeFlag:m}=c;if(m&6){rt(c.component.subTree,u,f,b);return}if(m&128){c.suspense.move(u,f,b);return}if(m&64){y.move(c,u,f,zt);return}if(y===oe){n(g,u,f);for(let x=0;x_.enter(g),$));else{const{leave:x,delayLeave:T,afterLeave:O}=_,N=()=>{c.ctx.isUnmounted?s(g):n(g,u,f)},V=()=>{const U=g._isLeaving||!!g[Xo];g._isLeaving&&g[Xo](!0),_.persisted&&!U?N():x(g,()=>{N(),O&&O()})};T?T(g,N,V):V()}else n(g,u,f)},Ie=(c,u,f,b=!1,$=!1)=>{const{type:g,props:y,ref:_,children:v,dynamicChildren:m,shapeFlag:S,patchFlag:x,dirs:T,cacheIndex:O,memo:N}=c;if(x===-2&&($=!1),_!=null&&(Te(),St(_,null,f,c,!0),Se()),O!=null&&(u.renderCache[O]=void 0),S&256){u.ctx.deactivate(c);return}const V=S&1&&T,U=!ut(c);let Q;if(U&&(Q=y&&y.onVnodeBeforeUnmount)&&Ae(Q,u,c),S&6)qc(c.component,f,b);else{if(S&128){c.suspense.unmount(f,b);return}V&&et(c,null,u,"beforeUnmount"),S&64?c.type.remove(c,u,f,zt,b):m&&!m.hasOnce&&(g!==oe||x>0&&x&64)?Dt(m,u,f,!1,!0):(g===oe&&x&384||!$&&S&16)&&Dt(v,u,f),b&&Fr(c)}const ae=N!=null&&O==null;(U&&(Q=y&&y.onVnodeUnmounted)||V||ae)&&fe(()=>{Q&&Ae(Q,u,c),V&&et(c,null,u,"unmounted"),ae&&(c.el=null)},f)},Fr=c=>{const{type:u,el:f,anchor:b,transition:$}=c;if(u===oe){Vc(f,b);return}if(u===dn){M(c);return}const g=()=>{s(f),$&&!$.persisted&&$.afterLeave&&$.afterLeave()};if(c.shapeFlag&1&&$&&!$.persisted){const{leave:y,delayLeave:_}=$,v=()=>y(f,g);_?_(c.el,g,v):v()}else g()},Vc=(c,u)=>{let f;for(;c!==u;)f=w(c),s(c),c=f;s(u)},qc=(c,u,f)=>{const{bum:b,scope:$,job:g,subTree:y,um:_,m:v,a:m}=c;Vs(v),Vs(m),b&&Po(b),$.stop(),g&&(g.flags|=8,Ie(y,c,u,f)),_&&fe(_,u),fe(()=>{c.isUnmounted=!0},u)},Dt=(c,u,f,b=!1,$=!1,g=0)=>{for(let y=g;y{if(c.shapeFlag&6)return To(c.component.subTree);if(c.shapeFlag&128)return c.suspense.next();const u=w(c.anchor||c.el),f=u&&u[Ii];return f?w(f):u};let kn=!1;const Ir=(c,u,f)=>{let b;c==null?u._vnode&&(Ie(u._vnode,null,null,!0),b=u._vnode.component):C(u._vnode||null,c,u,null,null,null,f),u._vnode=c,kn||(kn=!0,as(b),ls(),kn=!1)},zt={p:C,um:Ie,m:rt,r:Fr,mt:xn,mc:Xe,pc:K,pbc:nt,n:To,o:e};return{render:Ir,hydrate:void 0,createApp:oa(Ir)}}function pn({type:e,props:t},o){return o==="svg"&&e==="foreignObject"||o==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:o}function ot({effect:e,job:t},o){o?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function ba(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Us(e,t,o=!1){const n=e.children,s=t.children;if(L(n)&&L(s))for(let r=0;r>1,e[o[i]]0&&(t[n]=o[r-1]),o[r]=n)}}for(r=o.length,a=o[r-1];r-- >0;)o[r]=a,a=t[a];return o}function js(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:js(t)}function Vs(e){if(e)for(let t=0;te.__isSuspense;function _a(e,t){t&&t.pendingBranch?L(e)?t.effects.push(...e):t.effects.push(e):Oi(e)}const oe=Symbol.for("v-fgt"),fo=Symbol.for("v-txt"),Oe=Symbol.for("v-cmt"),dn=Symbol.for("v-stc"),Ue=[];let he=null;function A(e=!1){Ue.push(he=e?null:[])}function un(){Ue.pop(),he=Ue[Ue.length-1]||null}let Pt=1;function Gs(e,t=!1){Pt+=e,e<0&&he&&t&&(he.hasOnce=!0)}function Js(e){return e.dynamicChildren=Pt>0?he||it:null,un(),Pt>0&&he&&he.push(e),e}function F(e,t,o,n,s,r){return Js(I(e,t,o,n,s,r,!0))}function At(e,t,o,n,s){return Js(be(e,t,o,n,s,!0))}function fn(e){return e?e.__v_isVNode===!0:!1}function Ct(e,t){return e.type===t.type&&e.key===t.key}const Xs=({key:e})=>e??null,ho=({ref:e,ref_key:t,ref_for:o})=>(typeof e=="number"&&(e=""+e),e!=null?G(e)||se(e)||P(e)?{i:re,r:e,k:t,f:!!o}:e:null);function I(e,t=null,o=null,n=0,s=null,r=e===oe?0:1,a=!1,i=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Xs(t),ref:t&&ho(t),scopeId:ps,slotScopeIds:null,children:o,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:r,patchFlag:n,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:re};return i?(go(l,o),r&128&&e.normalize(l)):o&&(l.shapeFlag|=G(o)?8:16),Pt>0&&!a&&he&&(l.patchFlag>0||r&6)&&l.patchFlag!==32&&he.push(l),l}const be=ya;function ya(e,t=null,o=null,n=0,s=null,r=!1){if((!e||e===Ki)&&(e=Oe),fn(e)){const i=ht(e,t,!0);return o&&go(i,o),Pt>0&&!r&&he&&(i.shapeFlag&6?he[he.indexOf(e)]=i:he.push(i)),i.patchFlag=-2,i}if(Fa(e)&&(e=e.__vccOpts),t){t=wa(t);let{class:i,style:l}=t;i&&!G(i)&&(t.class=Ke(i)),z(l)&&(qo(l)&&!L(l)&&(l=Z({},l)),t.style=Ao(l))}const a=G(e)?1:Ks(e)?128:ao(e)?64:z(e)?4:P(e)?2:0;return I(e,t,o,n,s,a,r,!0)}function wa(e){return e?qo(e)||Es(e)?Z({},e):e:null}function ht(e,t,o=!1,n=!1){const{props:s,ref:r,patchFlag:a,children:i,transition:l}=e,p=t?xa(s||{},t):s,d={__v_isVNode:!0,__v_skip:!0,type:e.type,props:p,key:p&&Xs(p),ref:t&&t.ref?o&&r?L(r)?r.concat(ho(t)):[r,ho(t)]:ho(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==oe?a===-1?16:a|16:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&ht(e.ssContent),ssFallback:e.ssFallback&&ht(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&n&&Zo(d,l.clone(d)),d}function gt(e=" ",t=0){return be(fo,null,e,t)}function ie(e="",t=!1){return t?(A(),At(Oe,null,e)):be(Oe,null,e)}function Pe(e){return e==null||typeof e=="boolean"?be(Oe):L(e)?be(oe,null,e.slice()):fn(e)?je(e):be(fo,null,String(e))}function je(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:ht(e)}function go(e,t){let o=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(L(t))o=16;else if(typeof t=="object")if(n&65){const s=t.default;s&&(s._c&&(s._d=!1),go(e,s()),s._c&&(s._d=!0));return}else{o=32;const s=t._;!s&&!Es(t)?t._ctx=re:s===3&&re&&(re.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(P(t)){if(n&65){go(e,{default:t});return}t={default:t,_ctx:re},o=32}else t=String(t),n&64?(o=16,t=[gt(t)]):o=8;e.children=t,e.shapeFlag|=o}function xa(...e){const t={};for(let o=0;oce||re;let mo,Ft;{const e=Gt(),t=(o,n)=>{let s;return(s=e[o])||(s=e[o]=[]),s.push(n),r=>{s.length>1?s.forEach(a=>a(r)):s[0](r)}};mo=t("__VUE_INSTANCE_SETTERS__",o=>ce=o),Ft=t("__VUE_SSR_SETTERS__",o=>Nt=o)}const It=e=>{const t=ce;return mo(e),e.scope.on(),()=>{e.scope.off(),mo(t)}},Ys=()=>{ce&&ce.scope.off(),mo(null)};function Qs(e){return e.vnode.shapeFlag&4}let Nt=!1;function Ma(e,t=!1,o=!1){t&&Ft(t);const{props:n,children:s}=e.vnode,r=Qs(e);pa(e,n,r,t),ha(e,s,o||t);const a=r?La(e,t):void 0;return t&&Ft(!1),a}function La(e,t){const o=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Ji);const{setup:n}=o;if(n){Te();const s=e.setupContext=n.length>1?Pa(e):null,r=It(e),a=ct(n,e,0,[e.props,s]),i=Mn(a);if(Se(),r(),(i||e.sp)&&!ut(e)&&gs(e),i){if(a.then(Ys,Ys),t)return a.then(l=>{Ft(!0);try{er(e,l,t)}finally{Ft(!1)}}).catch(l=>{no(l,e,0)});e.asyncDep=a}else er(e,a)}else tr(e)}function er(e,t,o){P(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:z(t)&&(e.setupState=os(t)),tr(e)}function tr(e,t,o){const n=e.type;e.render||(e.render=n.render||xe);{const s=It(e);Te();try{Xi(e)}finally{Se(),s()}}}const Oa={get(e,t){return le(e,"get",""),e[t]}};function Pa(e){const t=o=>{e.exposed=o||{}};return{attrs:new Proxy(e.attrs,Oa),slots:e.slots,emit:e.emit,expose:t}}function $o(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(os(gi(e.exposed)),{get(t,o){if(o in t)return t[o];if(o in Lt)return Lt[o](e)},has(t,o){return o in t||o in Lt}})):e.proxy}const Aa=/(?:^|[-_])\w/g,Ca=e=>e.replace(Aa,t=>t.toUpperCase()).replace(/[-_]/g,"");function or(e,t=!0){return P(e)?e.displayName||e.name:e.name||t&&e.__name}function nr(e,t,o=!1){let n=or(t);if(!n&&t.__file){const s=t.__file.match(/([^/\\]+)\.\w+$/);s&&(n=s[1])}if(!n&&e){const s=r=>{for(const a in r)if(r[a]===t)return a};n=s(e.components)||e.parent&&s(e.parent.type.components)||s(e.appContext.components)}return n?Ca(n):o?"App":"Anonymous"}function Fa(e){return P(e)&&"__vccOpts"in e}const sr=(e,t)=>_i(e,t,Nt),Ia="3.5.42";/** +**/const kt=[];let Yo=!1;function fd(e,...t){if(Yo)return;Yo=!0,Te();const o=kt.length?kt[kt.length-1].component:null,n=o&&o.appContext.config.warnHandler,s=Mr();if(n)ct(n,o,11,[e+t.map(a=>{var i,r;return(r=(i=a.toString)==null?void 0:i.call(a))!=null?r:JSON.stringify(a)}).join(""),o&&o.proxy,s.map(({vnode:a})=>`at <${sa(o,a.type)}>`).join(` +`),s]);else{const a=[`[Vue warn]: ${e}`,...t];s.length&&a.push(` +`,...Lr(s)),console.warn(...a)}Se(),Yo=!1}function Mr(){let e=kt[kt.length-1];if(!e)return[];const t=[];for(;e;){const o=t[0];o&&o.vnode===e?o.recurseCount++:t.push({vnode:e,recurseCount:0});const n=e.component&&e.component.parent;e=n&&n.vnode}return t}function Lr(e){const t=[];return e.forEach((o,n)=>{t.push(...n===0?[]:[` +`],...Or(o))}),t}function Or({vnode:e,recurseCount:t}){const o=t>0?`... (${t} recursive calls)`:"",n=e.component?e.component.parent==null:!1,s=` at <${sa(e.component,e.type,n)}`,a=">"+o;return e.props?[s,...Ar(e.props),a]:[s+a]}function Ar(e){const t=[],o=Object.keys(e);return o.slice(0,3).forEach(n=>{t.push(...as(n,e[n]))}),o.length>3&&t.push(" ..."),t}function as(e,t,o){return G(t)?(t=JSON.stringify(t),o?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?o?t:[`${e}=${t}`]:ae(t)?(t=as(e,R(t.value),!0),o?t:[`${e}=Ref<`,t,">"]):P(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=R(t),o?t:[`${e}=`,t])}function ct(e,t,o,n){try{return n?e(...n):e()}catch(s){so(s,t,o)}}function we(e,t,o,n){if(P(e)){const s=ct(e,t,o,n);return s&&An(s)&&s.catch(a=>{so(a,t,o)}),s}if(O(e)){const s=[];for(let a=0;a>>1,s=de[n],a=Tt(s);a=Tt(o)?de.push(e):de.splice(Cr(t),0,e),e.flags|=1,ls()}}function ls(){ao||(ao=rs.then(ps))}function Fr(e){if(!O(e))Ge&&e.id===-1?Ge.splice(pt+1,0,e):e.flags&1||(dt.push(e),e.flags|=1);else for(let t=0;tTt(o)-Tt(n));if(dt.length=0,Ge){for(let o=0;oe.id==null?e.flags&2?-1:1/0:e.id;function ps(e){try{for(Le=0;Le{n._d&&Js(-1);const a=ro(t),i=je.length;let r;try{r=e(...s)}finally{for(let l=je.length;l>i;l--)$n();ro(a),n._d&&Js(1)}return r};return n._n=!0,n._c=!0,n._d=!0,n}function en(e,t){if(re===null)return e;const o=vo(re),n=e.dirs||(e.dirs=[]);for(let s=0;s1)return o&&P(t)?t.call(n&&n.proxy):t}}const Nr=Symbol.for("v-scx"),Er=()=>St(Nr);function lo(e,t,o){return fs(e,t,o)}function fs(e,t,o=j){const{immediate:n,deep:s,flush:a,once:i}=o,r=Z({},o),l=t&&n||!t&&a!=="post";let d;if(Nt){if(a==="sync"){const k=Er();d=k.__watcherHandles||(k.__watcherHandles=[])}else if(!l){const k=()=>{};return k.stop=xe,k.resume=xe,k.pause=xe,k}}const p=ce;r.call=(k,H,F)=>we(k,p,H,F);let f=!1;a==="post"?r.scheduler=k=>{fe(k,p&&p.suspense)}:a!=="sync"&&(f=!0,r.scheduler=(k,H)=>{H?k():Qo(k)}),r.augmentJob=k=>{t&&(k.flags|=4),f&&(k.flags|=2,p&&(k.id=p.uid,k.i=p))};const w=Sr(e,t,r);return Nt&&(d?d.push(w):l&&w()),w}function Rr(e,t,o){const n=this.proxy,s=G(e)?e.includes(".")?gs(n,e):()=>n[e]:e.bind(n,n);let a;P(t)?a=t:(a=t.handler,o=t);const i=It(this),r=fs(s,a.bind(n),o);return i(),r}function gs(e,t){const o=t.split(".");return()=>{let n=e;for(let s=0;se.__isTeleport,tn=Symbol("_leaveCb");function Dr(e){let t=e[0];if(e.length>1){for(const o of e)if(o.type!==Oe){t=o;break}}return t}function hs(e){if(!sn(e))return co(e.type)&&e.children?Dr(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:o}=e;if(o){if(t&16)return o[0];if(t&32&&P(o.default))return o.default()}}function on(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const o=e.component.subTree;on(co(o.type)&&hs(o)||o,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function nn(e,t){return P(e)?Z({name:e.name},t,{setup:e}):e}function $s(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function ms(e,t){let o;return!!((o=Object.getOwnPropertyDescriptor(e,t))&&!o.configurable)}const po=new WeakMap;function Mt(e,t,o,n,s=!1){if(O(e)){e.forEach((F,Y)=>Mt(F,t&&(O(t)?t[Y]:t),o,n,s));return}if(ut(n)&&!s){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&Mt(e,t,o,n.component.subTree);return}const a=n.shapeFlag&4?vo(n.component):n.el,i=s?null:a,{i:r,r:l}=e,d=t&&t.r,p=r.refs===j?r.refs={}:r.refs,f=r.setupState,w=R(f),k=f===j?Ln:F=>ms(p,F)?!1:D(w,F),H=(F,Y)=>!(Y&&ms(p,Y));if(d!=null&&d!==l){if(_s(t),G(d))p[d]=null,k(d)&&(f[d]=null);else if(ae(d)){const F=t;H(d,F.k)&&(d.value=null),F.k&&(p[F.k]=null)}}if(P(l))ct(l,r,12,[i,p]);else{const F=G(l),Y=ae(l);if(F||Y){const J=()=>{if(e.f){const W=F?k(l)?f[l]:p[l]:H()||!e.k?l.value:p[e.k];if(s)O(W)&&Po(W,a);else if(O(W))W.includes(a)||W.push(a);else if(F)p[l]=[a],k(l)&&(f[l]=p[l]);else{const B=[a];H(l,e.k)&&(l.value=B),e.k&&(p[e.k]=B)}}else F?(p[l]=i,k(l)&&(f[l]=i)):Y&&(H(l,e.k)&&(l.value=i),e.k&&(p[e.k]=i))};if(i){const W=()=>{J(),po.delete(e)};W.id=-1,po.set(e,W),fe(W,o)}else _s(e),J()}}}function _s(e){const t=po.get(e);t&&(t.flags|=8,po.delete(e))}Jt().requestIdleCallback,Jt().cancelIdleCallback;const ut=e=>!!e.type.__asyncLoader,sn=e=>e.type.__isKeepAlive;function zr(e,t){bs(e,"a",t)}function Hr(e,t){bs(e,"da",t)}function bs(e,t,o=ce){const n=e.__wdc||(e.__wdc=()=>{let s=o;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(uo(t,n,o),o){let s=o.parent;for(;s&&s.parent;)sn(s.parent.vnode)&&Br(n,t,o,s),s=s.parent}}function Br(e,t,o,n){const s=uo(t,e,n,!0);ys(()=>{Po(n[t],s)},o)}function uo(e,t,o=ce,n=!1){if(o){const s=o[e]||(o[e]=[]),a=t.__weh||(t.__weh=(...i)=>{Te();const r=It(o),l=we(t,o,e,i);return r(),Se(),l});return n?s.unshift(a):s.push(a),a}}const Ue=e=>(t,o=ce)=>{(!Nt||e==="sp")&&uo(e,(...n)=>t(...n),o)},Ur=Ue("bm"),an=Ue("m"),jr=Ue("bu"),Vr=Ue("u"),vs=Ue("bum"),ys=Ue("um"),qr=Ue("sp"),Kr=Ue("rtg"),Gr=Ue("rtc");function Jr(e,t=ce){uo("ec",e,t)}const Xr="components";function fo(e,t){return Yr(Xr,e,!0,t)||e}const Zr=Symbol.for("v-ndc");function Yr(e,t,o=!0,n=!1){const s=re||ce;if(s){const a=s.type;{const r=na(a,!1);if(r&&(r===t||r===oe(t)||r===Gt(oe(t))))return a}const i=ws(s[e]||a[e],t)||ws(s.appContext[e],t);return!i&&n?a:i}}function ws(e,t){return e&&(e[t]||e[oe(t)]||e[Gt(oe(t))])}function ft(e,t,o,n){let s;const a=o,i=O(e);if(i||G(e)){const r=i&&Ye(e);let l=!1,d=!1;r&&(l=!_e(e),d=He(e),e=Zt(e)),s=new Array(e.length);for(let p=0,f=e.length;pt(r,l,void 0,a));else{const r=Object.keys(e);s=new Array(r.length);for(let l=0,d=r.length;l0;return t!=="default"&&(d.name=t),M(),Pt(ee,null,[ge("slot",d,n)],p?-2:64)}let i=e[t];i&&i._c&&(i._d=!1);const r=je.length;M();let l;try{const d=i&&xs(i(o)),p=o.key||a||d&&d.key;l=Pt(ee,{key:(p&&!be(p)?p:`_${t}`)+(!d&&n?"_fb":"")},d||(n?n():[]),d&&e._===1?64:-2)}catch(d){for(let p=je.length;p>r;p--)$n();throw d}finally{i&&i._c&&(i._d=!0)}return l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),l}function xs(e){return e.some(t=>mn(t)?!(t.type===Oe||t.type===ee&&!xs(t.children)):!0)?e:null}const rn=e=>e?ea(e)?vo(e):rn(e.parent):null,Lt=Z(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>rn(e.parent),$root:e=>rn(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ms(e),$forceUpdate:e=>e.f||(e.f=()=>{Qo(e.update)}),$nextTick:e=>e.n||(e.n=is.bind(e.proxy)),$watch:e=>Rr.bind(e)}),ln=(e,t)=>e!==j&&!e.__isScriptSetup&&D(e,t),Qr={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:o,setupState:n,data:s,props:a,accessCache:i,type:r,appContext:l}=e;if(t[0]!=="$"){const w=i[t];if(w!==void 0)switch(w){case 1:return n[t];case 2:return s[t];case 4:return o[t];case 3:return a[t]}else{if(ln(n,t))return i[t]=1,n[t];if(s!==j&&D(s,t))return i[t]=2,s[t];if(D(a,t))return i[t]=3,a[t];if(o!==j&&D(o,t))return i[t]=4,o[t];cn&&(i[t]=0)}}const d=Lt[t];let p,f;if(d)return t==="$attrs"&&le(e.attrs,"get",""),d(e);if((p=r.__cssModules)&&(p=p[t]))return p;if(o!==j&&D(o,t))return i[t]=4,o[t];if(f=l.config.globalProperties,D(f,t))return f[t]},set({_:e},t,o){const{data:n,setupState:s,ctx:a}=e;return ln(s,t)?(s[t]=o,!0):n!==j&&D(n,t)?(n[t]=o,!0):D(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(a[t]=o,!0)},has({_:{data:e,setupState:t,accessCache:o,ctx:n,appContext:s,props:a,type:i}},r){let l;return!!(o[r]||e!==j&&r[0]!=="$"&&D(e,r)||ln(t,r)||D(a,r)||D(n,r)||D(Lt,r)||D(s.config.globalProperties,r)||(l=i.__cssModules)&&l[r])},defineProperty(e,t,o){return o.get!=null?e._.accessCache[t]=0:D(o,"value")&&this.set(e,t,o.value,null),Reflect.defineProperty(e,t,o)}};function ks(e){return O(e)?e.reduce((t,o)=>(t[o]=null,t),{}):e}let cn=!0;function ei(e){const t=Ms(e),o=e.proxy,n=e.ctx;cn=!1,t.beforeCreate&&Ts(t.beforeCreate,e,"bc");const{data:s,computed:a,methods:i,watch:r,provide:l,inject:d,created:p,beforeMount:f,mounted:w,beforeUpdate:k,updated:H,activated:F,deactivated:Y,beforeDestroy:J,beforeUnmount:W,destroyed:B,unmounted:L,render:te,renderTracked:Ce,renderTriggered:Fe,errorCaptured:Xe,serverPrefetch:To,expose:nt,inheritAttrs:Dt,components:So,directives:Mo,filters:Sn}=t;if(d&&ti(d,n,null),i)for(const X in i){const K=i[X];P(K)&&(n[X]=K.bind(o))}if(s){const X=s.call(o,o);z(X)&&(e.data=Go(X))}if(cn=!0,a)for(const X in a){const K=a[X],st=P(K)?K.bind(o,o):P(K.get)?K.get.bind(o,o):xe,Lo=!P(K)&&P(K.set)?K.set.bind(o):xe,at=Et({get:st,set:Lo});Object.defineProperty(n,X,{enumerable:!0,configurable:!0,get:()=>at.value,set:Ie=>at.value=Ie})}if(r)for(const X in r)Ss(r[X],n,o,X);if(l){const X=P(l)?l.call(o):l;Reflect.ownKeys(X).forEach(K=>{Ir(K,X[K])})}p&&Ts(p,e,"c");function ue(X,K){O(K)?K.forEach(st=>X(st.bind(o))):K&&X(K.bind(o))}if(ue(Ur,f),ue(an,w),ue(jr,k),ue(Vr,H),ue(zr,F),ue(Hr,Y),ue(Jr,Xe),ue(Gr,Ce),ue(Kr,Fe),ue(vs,W),ue(ys,L),ue(qr,To),O(nt))if(nt.length){const X=e.exposed||(e.exposed={});nt.forEach(K=>{Object.defineProperty(X,K,{get:()=>o[K],set:st=>o[K]=st,enumerable:!0})})}else e.exposed||(e.exposed={});te&&e.render===xe&&(e.render=te),Dt!=null&&(e.inheritAttrs=Dt),So&&(e.components=So),Mo&&(e.directives=Mo),To&&$s(e)}function ti(e,t,o=xe){O(e)&&(e=dn(e));for(const n in e){const s=e[n];let a;z(s)?"default"in s?a=St(s.from||n,s.default,!0):a=St(s.from||n):a=St(s),ae(a)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>a.value,set:i=>a.value=i}):t[n]=a}}function Ts(e,t,o){we(O(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,o)}function Ss(e,t,o,n){let s=n.includes(".")?gs(o,n):()=>o[n];if(G(e)){const a=t[e];P(a)&&lo(s,a)}else if(P(e))lo(s,e.bind(o));else if(z(e))if(O(e))e.forEach(a=>Ss(a,t,o,n));else{const a=P(e.handler)?e.handler.bind(o):t[e.handler];P(a)&&lo(s,a,e)}}function Ms(e){const t=e.type,{mixins:o,extends:n}=t,{mixins:s,optionsCache:a,config:{optionMergeStrategies:i}}=e.appContext,r=a.get(t);let l;return r?l=r:!s.length&&!o&&!n?l=t:(l={},s.length&&s.forEach(d=>go(l,d,i,!0)),go(l,t,i)),z(t)&&a.set(t,l),l}function go(e,t,o,n=!1){const{mixins:s,extends:a}=t;a&&go(e,a,o,!0),s&&s.forEach(i=>go(e,i,o,!0));for(const i in t)if(!(n&&i==="expose")){const r=oi[i]||o&&o[i];e[i]=r?r(e[i],t[i]):t[i]}return e}const oi={data:Ls,props:Os,emits:Os,methods:Ot,computed:Ot,beforeCreate:pe,created:pe,beforeMount:pe,mounted:pe,beforeUpdate:pe,updated:pe,beforeDestroy:pe,beforeUnmount:pe,destroyed:pe,unmounted:pe,activated:pe,deactivated:pe,errorCaptured:pe,serverPrefetch:pe,components:Ot,directives:Ot,watch:si,provide:Ls,inject:ni};function Ls(e,t){return t?e?function(){return Z(P(e)?e.call(this,this):e,P(t)?t.call(this,this):t)}:t:e}function ni(e,t){return Ot(dn(e),dn(t))}function dn(e){if(O(e)){const t={};for(let o=0;ot==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${oe(t)}Modifiers`]||e[`${me(t)}Modifiers`];function li(e,t,...o){if(e.isUnmounted)return;const n=e.vnode.props||j;let s=o;const a=t.startsWith("update:"),i=a&&ii(n,t.slice(7));i&&(i.trim&&(s=o.map(p=>G(p)?p.trim():p)),i.number&&(s=s.map(qa)));let r,l=n[r=Fo(t)]||n[r=Fo(oe(t))];!l&&a&&(l=n[r=Fo(me(t))]),l&&we(l,e,6,s);const d=n[r+"Once"];if(d){if(!e.emitted)e.emitted={};else if(e.emitted[r])return;e.emitted[r]=!0,we(d,e,6,s)}}const ci=new WeakMap;function Ps(e,t,o=!1){const n=o?ci:t.emitsCache,s=n.get(e);if(s!==void 0)return s;const a=e.emits;let i={},r=!1;if(!P(e)){const l=d=>{const p=Ps(d,t,!0);p&&(r=!0,Z(i,p))};!o&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!a&&!r?(z(e)&&n.set(e,null),null):(O(a)?a.forEach(l=>i[l]=null):Z(i,a),z(e)&&n.set(e,i),i)}function ho(e,t){return!e||!Ut(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),D(e,t[0].toLowerCase()+t.slice(1))||D(e,me(t))||D(e,t))}function gd(){}function Cs(e){const{type:t,vnode:o,proxy:n,withProxy:s,propsOptions:[a],slots:i,attrs:r,emit:l,render:d,renderCache:p,props:f,data:w,setupState:k,ctx:H,inheritAttrs:F}=e,Y=ro(e);let J,W;try{if(o.shapeFlag&4){const L=s||n,te=L;J=Ae(d.call(te,L,p,f,k,w,H)),W=r}else{const L=t;J=Ae(L.length>1?L(f,{attrs:r,slots:i,emit:l}):L(f,null)),W=t.props?r:di(r)}}catch(L){je.length=0,so(L,e,1),J=ge(Oe)}let B=J;if(W&&F!==!1){const L=Object.keys(W),{shapeFlag:te}=B;L.length&&te&7&&(a&&L.some(jt)&&(W=pi(W,a)),B=ht(B,W,!1,!0))}if(o.dirs&&(B=ht(B,null,!1,!0),B.dirs=B.dirs?B.dirs.concat(o.dirs):o.dirs),o.transition){const L=co(B.type)&&hs(B)||B;on(L,o.transition)}return J=B,ro(Y),J}const di=e=>{let t;for(const o in e)(o==="class"||o==="style"||Ut(o))&&((t||(t={}))[o]=e[o]);return t},pi=(e,t)=>{const o={};for(const n in e)(!jt(n)||!(n.slice(9)in t))&&(o[n]=e[n]);return o};function ui(e,t,o){const{props:n,children:s,component:a}=e,{props:i,children:r,patchFlag:l}=t,d=a.emitsOptions;if(t.dirs||t.transition)return!0;if(o&&l>=0){if(l&1024)return!0;if(l&16)return n?Fs(n,i,d):!!i;if(l&8){const p=t.dynamicProps;for(let f=0;fObject.create(Ns),Rs=e=>Object.getPrototypeOf(e)===Ns;function gi(e,t,o,n=!1){const s={},a=Es();e.propsDefaults=Object.create(null),Ws(e,t,s,a);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);o?e.props=n?s:_r(s):e.type.props?e.props=s:e.props=a,e.attrs=a}function hi(e,t,o,n){const{props:s,attrs:a,vnode:{patchFlag:i}}=e,r=R(s),[l]=e.propsOptions;let d=!1;if((n||i>0)&&!(i&16)){if(i&8){const p=e.vnode.dynamicProps;for(let f=0;f{l=!0;const[w,k]=Ds(f,t,!0);Z(i,w),k&&r.push(...k)};!o&&t.mixins.length&&t.mixins.forEach(p),e.extends&&p(e.extends),e.mixins&&e.mixins.forEach(p)}if(!a&&!l)return z(e)&&n.set(e,rt),rt;if(O(a))for(let p=0;pe==="_"||e==="_ctx"||e==="$stable",fn=e=>O(e)?e.map(Ae):[Ae(e)],mi=(e,t,o)=>{if(t._n)return t;const n=io((...s)=>fn(t(...s)),o);return n._c=!1,n},Hs=(e,t,o)=>{const n=e._ctx;for(const s in e){if(un(s))continue;const a=e[s];if(P(a))t[s]=mi(s,a,n);else if(a!=null){const i=fn(a);t[s]=()=>i}}},Bs=(e,t)=>{const o=fn(t);e.slots.default=()=>o},Us=(e,t,o)=>{for(const n in t)(o||!un(n))&&(e[n]=t[n])},_i=(e,t,o)=>{const n=e.slots=Es();if(e.vnode.shapeFlag&32){const s=t._;s?(Us(n,t,o),o&&Cn(n,"_",s,!0)):Hs(t,n)}else t&&Bs(e,t)},bi=(e,t,o)=>{const{vnode:n,slots:s}=e;let a=!0,i=j;if(n.shapeFlag&32){const r=t._;r?o&&r===1?a=!1:Us(s,t,o):(a=!t.$stable,Hs(t,s)),i=t}else t&&(Bs(e,t),i={default:1});if(a)for(const r in s)!un(r)&&i[r]==null&&delete s[r]},fe=ki;function vi(e){return yi(e)}function yi(e,t){const o=Jt();o.__VUE__=!0;const{insert:n,remove:s,patchProp:a,createElement:i,createText:r,createComment:l,setText:d,setElementText:p,parentNode:f,nextSibling:w,setScopeId:k=xe,insertStaticContent:H}=e,F=(c,u,g,_=null,m=null,h=null,y=void 0,v=null,b=!!u.dynamicChildren)=>{if(c===u)return;c&&!Ct(c,u)&&(_=Oo(c),Ie(c,m,h,!0),c=null),u.patchFlag===-2&&(b=!1,u.dynamicChildren=null);const{type:$,ref:S,shapeFlag:x}=u;switch($){case $o:Y(c,u,g,_);break;case Oe:J(c,u,g,_);break;case hn:c==null&&W(u,g,_,y);break;case ee:So(c,u,g,_,m,h,y,v,b);break;default:x&1?te(c,u,g,_,m,h,y,v,b):x&6?Mo(c,u,g,_,m,h,y,v,b):(x&64||x&128)&&$.process(c,u,g,_,m,h,y,v,b,Ht)}S!=null&&m?Mt(S,c&&c.ref,h,u||c,!u):S==null&&c&&c.ref!=null&&Mt(c.ref,null,h,c,!0)},Y=(c,u,g,_)=>{if(c==null)n(u.el=r(u.children),g,_);else{const m=u.el=c.el;u.children!==c.children&&d(m,u.children)}},J=(c,u,g,_)=>{c==null?n(u.el=l(u.children||""),g,_):u.el=c.el},W=(c,u,g,_)=>{[c.el,c.anchor]=H(c.children,u,g,_,c.el,c.anchor)},B=({el:c,anchor:u},g,_)=>{let m;for(;c&&c!==u;)m=w(c),n(c,g,_),c=m;n(u,g,_)},L=({el:c,anchor:u})=>{let g;for(;c&&c!==u;)g=w(c),s(c),c=g;s(u)},te=(c,u,g,_,m,h,y,v,b)=>{if(u.type==="svg"?y="svg":u.type==="math"&&(y="mathml"),c==null)Ce(u,g,_,m,h,y,v,b);else{const $=c.el&&c.el._isVueCE?c.el:null;try{$&&$._beginPatch(),To(c,u,m,h,y,v,b)}finally{$&&$._endPatch()}}},Ce=(c,u,g,_,m,h,y,v)=>{let b,$;const{props:S,shapeFlag:x,transition:T,dirs:A}=c;if(b=c.el=i(c.type,h,S&&S.is,S),x&8?p(b,c.children):x&16&&Xe(c.children,b,null,_,m,gn(c,h),y,v),A&&et(c,null,_,"created"),Fe(b,c,c.scopeId,y,_),S){for(const V in S)V!=="value"&&!_t(V)&&a(b,V,null,S[V],h,_);"value"in S&&a(b,"value",null,S.value,h),($=S.onVnodeBeforeMount)&&Pe($,_,c)}A&&et(c,null,_,"beforeMount");const N=wi(m,T);N&&T.beforeEnter(b),n(b,u,g),(($=S&&S.onVnodeMounted)||N||A)&&fe(()=>{try{$&&Pe($,_,c),N&&T.enter(b),A&&et(c,null,_,"mounted")}finally{}},m)},Fe=(c,u,g,_,m)=>{if(g&&k(c,g),_)for(let h=0;h<_.length;h++)k(c,_[h]);if(m){let h=m.subTree;if(u===h||Gs(h.type)&&(h.ssContent===u||h.ssFallback===u)){const y=m.vnode;Fe(c,y,y.scopeId,y.slotScopeIds,m.parent)}}},Xe=(c,u,g,_,m,h,y,v,b=0)=>{for(let $=b;${const v=u.el=c.el;let{patchFlag:b,dynamicChildren:$,dirs:S}=u;b|=c.patchFlag&16;const x=c.props||j,T=u.props||j;let A;if(g&&ot(g,!1),(A=T.onVnodeBeforeUpdate)&&Pe(A,g,u,c),S&&et(u,c,g,"beforeUpdate"),g&&ot(g,!0),$&&(!c.dynamicChildren||c.dynamicChildren.length!==$.length)&&(b=0,y=!1,$=null),(x.innerHTML&&T.innerHTML==null||x.textContent&&T.textContent==null)&&p(v,""),$?nt(c.dynamicChildren,$,v,g,_,gn(u,m),h):y||K(c,u,v,null,g,_,gn(u,m),h,!1),b>0){if(b&16)Dt(v,x,T,g,m);else if(b&2&&x.class!==T.class&&a(v,"class",null,T.class,m),b&4&&a(v,"style",x.style,T.style,m),b&8){const N=u.dynamicProps;for(let V=0;V{A&&Pe(A,g,u,c),S&&et(u,c,g,"updated")},_)},nt=(c,u,g,_,m,h,y)=>{for(let v=0;v{if(u!==g){if(u!==j)for(const h in u)!_t(h)&&!(h in g)&&a(c,h,u[h],null,m,_);for(const h in g){if(_t(h))continue;const y=g[h],v=u[h];y!==v&&h!=="value"&&a(c,h,v,y,m,_)}"value"in g&&a(c,"value",u.value,g.value,m)}},So=(c,u,g,_,m,h,y,v,b)=>{const $=u.el=c?c.el:r(""),S=u.anchor=c?c.anchor:r("");let{patchFlag:x,dynamicChildren:T,slotScopeIds:A}=u;A&&(v=v?v.concat(A):A),c==null?(n($,g,_),n(S,g,_),Xe(u.children||[],g,S,m,h,y,v,b)):x>0&&x&64&&T&&c.dynamicChildren&&c.dynamicChildren.length===T.length?(nt(c.dynamicChildren,T,g,m,h,y,v),(u.key!=null||m&&u===m.subTree)&&js(c,u,!0)):K(c,u,g,S,m,h,y,v,b)},Mo=(c,u,g,_,m,h,y,v,b)=>{u.slotScopeIds=v,c==null?u.shapeFlag&512?m.ctx.activate(u,g,_,y,b):Sn(u,g,_,m,h,y,b):Ea(c,u,b)},Sn=(c,u,g,_,m,h,y)=>{const v=c.component=Ai(c,_,m);if(sn(c)&&(v.ctx.renderer=Ht),Pi(v,!1,y),v.asyncDep){if(m&&m.registerDep(v,ue,y),!c.el){const b=v.subTree=ge(Oe);J(null,b,u,g),c.placeholder=b.el}}else ue(v,c,u,g,m,h,y)},Ea=(c,u,g)=>{const _=u.component=c.component;if(ui(c,u,g))if(_.asyncDep&&!_.asyncResolved){X(_,u,g);return}else _.next=u,_.update();else u.el=c.el,_.vnode=u},ue=(c,u,g,_,m,h,y)=>{const v=()=>{if(c.isMounted){let{next:x,bu:T,u:A,parent:N,vnode:V}=c;{const Ee=Vs(c);if(Ee){x&&(x.el=V.el,X(c,x,y)),Ee.asyncDep.then(()=>{fe(()=>{c.isUnmounted||$()},m)});return}}let U=x,Q;ot(c,!1),x?(x.el=V.el,X(c,x,y)):x=V,T&&Io(T),(Q=x.props&&x.props.onVnodeBeforeUpdate)&&Pe(Q,N,x,V),ot(c,!0);const ie=Cs(c),Ne=c.subTree;c.subTree=ie,F(Ne,ie,f(Ne.el),Oo(Ne),c,m,h),x.el=ie.el,U===null&&fi(c,ie.el),A&&fe(A,m),(Q=x.props&&x.props.onVnodeUpdated)&&fe(()=>Pe(Q,N,x,V),m)}else{let x;const{el:T,props:A}=u,{bm:N,m:V,parent:U,root:Q,type:ie}=c,Ne=ut(u);ot(c,!1),N&&Io(N),!Ne&&(x=A&&A.onVnodeBeforeMount)&&Pe(x,U,u),ot(c,!0);{Q.ce&&Q.ce._hasShadowRoot()&&Q.ce._injectChildStyle(ie,c.parent?c.parent.type:void 0);const Ee=c.subTree=Cs(c);F(null,Ee,g,_,c,m,h),u.el=Ee.el}if(V&&fe(V,m),!Ne&&(x=A&&A.onVnodeMounted)){const Ee=u;fe(()=>Pe(x,U,Ee),m)}(u.shapeFlag&256||U&&ut(U.vnode)&&U.vnode.shapeFlag&256)&&c.a&&fe(c.a,m),c.isMounted=!0,u=g=_=null}};c.scope.on();const b=c.effect=new Dn(v);c.scope.off();const $=c.update=b.run.bind(b),S=c.job=b.runIfDirty.bind(b);S.i=c,S.id=c.uid,b.scheduler=()=>Qo(S),ot(c,!0),$()},X=(c,u,g)=>{u.component=c;const _=c.vnode.props;c.vnode=u,c.next=null,hi(c,u.props,_,g),bi(c,u.children,g),Te(),cs(c),Se()},K=(c,u,g,_,m,h,y,v,b=!1)=>{const $=c&&c.children,S=c?c.shapeFlag:0,x=u.children,{patchFlag:T,shapeFlag:A}=u;if(T>0){if(T&128){Lo($,x,g,_,m,h,y,v,b);return}else if(T&256){st($,x,g,_,m,h,y,v,b);return}}A&8?(S&16&&zt($,m,h),x!==$&&p(g,x)):S&16?A&16?Lo($,x,g,_,m,h,y,v,b):zt($,m,h,!0):(S&8&&p(g,""),A&16&&Xe(x,g,_,m,h,y,v,b))},st=(c,u,g,_,m,h,y,v,b)=>{c=c||rt,u=u||rt;const $=c.length,S=u.length,x=Math.min($,S);let T;for(T=0;TS?zt(c,m,h,!0,!1,x):Xe(u,g,_,m,h,y,v,b,x)},Lo=(c,u,g,_,m,h,y,v,b)=>{let $=0;const S=u.length;let x=c.length-1,T=S-1;for(;$<=x&&$<=T;){const A=c[$],N=u[$]=b?Ve(u[$]):Ae(u[$]);if(Ct(A,N))F(A,N,g,null,m,h,y,v,b);else break;$++}for(;$<=x&&$<=T;){const A=c[x],N=u[T]=b?Ve(u[T]):Ae(u[T]);if(Ct(A,N))F(A,N,g,null,m,h,y,v,b);else break;x--,T--}if($>x){if($<=T){const A=T+1,N=AT)for(;$<=x;)Ie(c[$],m,h,!0),$++;else{const A=$,N=$,V=new Map;for($=N;$<=T;$++){const $e=u[$]=b?Ve(u[$]):Ae(u[$]);$e.key!=null&&V.set($e.key,$)}let U,Q=0;const ie=T-N+1;let Ne=!1,Ee=0;const Bt=new Array(ie);for($=0;$=ie){Ie($e,m,h,!0);continue}let Re;if($e.key!=null)Re=V.get($e.key);else for(U=N;U<=T;U++)if(Bt[U-N]===0&&Ct($e,u[U])){Re=U;break}Re===void 0?Ie($e,m,h,!0):(Bt[Re-N]=$+1,Re>=Ee?Ee=Re:Ne=!0,F($e,u[Re],g,null,m,h,y,v,b),Q++)}const Da=Ne?xi(Bt):rt;for(U=Da.length-1,$=ie-1;$>=0;$--){const $e=N+$,Re=u[$e],za=u[$e+1],Ha=$e+1{const{el:h,type:y,transition:v,children:b,shapeFlag:$}=c;if($&6){at(c.component.subTree,u,g,_);return}if($&128){c.suspense.move(u,g,_);return}if($&64){y.move(c,u,g,Ht);return}if(y===ee){n(h,u,g);for(let x=0;xv.enter(h),m));else{const{leave:x,delayLeave:T,afterLeave:A}=v,N=()=>{c.ctx.isUnmounted?s(h):n(h,u,g)},V=()=>{const U=h._isLeaving||!!h[tn];h._isLeaving&&h[tn](!0),v.persisted&&!U?N():x(h,()=>{N(),A&&A()})};T?T(h,N,V):V()}else n(h,u,g)},Ie=(c,u,g,_=!1,m=!1)=>{const{type:h,props:y,ref:v,children:b,dynamicChildren:$,shapeFlag:S,patchFlag:x,dirs:T,cacheIndex:A,memo:N}=c;if(x===-2&&(m=!1),v!=null&&(Te(),Mt(v,null,g,c,!0),Se()),A!=null&&(u.renderCache[A]=void 0),S&256){u.ctx.deactivate(c);return}const V=S&1&&T,U=!ut(c);let Q;if(U&&(Q=y&&y.onVnodeBeforeUnmount)&&Pe(Q,u,c),S&6)dd(c.component,g,_);else{if(S&128){c.suspense.unmount(g,_);return}V&&et(c,null,u,"beforeUnmount"),S&64?c.type.remove(c,u,g,Ht,_):$&&!$.hasOnce&&(h!==ee||x>0&&x&64)?zt($,u,g,!1,!0):(h===ee&&x&384||!m&&S&16)&&zt(b,u,g),_&&Ra(c)}const ie=N!=null&&A==null;(U&&(Q=y&&y.onVnodeUnmounted)||V||ie)&&fe(()=>{Q&&Pe(Q,u,c),V&&et(c,null,u,"unmounted"),ie&&(c.el=null)},g)},Ra=c=>{const{type:u,el:g,anchor:_,transition:m}=c;if(u===ee){cd(g,_);return}if(u===hn){L(c);return}const h=()=>{s(g),m&&!m.persisted&&m.afterLeave&&m.afterLeave()};if(c.shapeFlag&1&&m&&!m.persisted){const{leave:y,delayLeave:v}=m,b=()=>y(g,h);v?v(c.el,h,b):b()}else h()},cd=(c,u)=>{let g;for(;c!==u;)g=w(c),s(c),c=g;s(u)},dd=(c,u,g)=>{const{bum:_,scope:m,job:h,subTree:y,um:v,m:b,a:$}=c;qs(b),qs($),_&&Io(_),m.stop(),h&&(h.flags|=8,Ie(y,c,u,g)),v&&fe(v,u),fe(()=>{c.isUnmounted=!0},u)},zt=(c,u,g,_=!1,m=!1,h=0)=>{for(let y=h;y{if(c.shapeFlag&6)return Oo(c.component.subTree);if(c.shapeFlag&128)return c.suspense.next();const u=w(c.anchor||c.el),g=u&&u[Wr];return g?w(g):u};let Mn=!1;const Wa=(c,u,g)=>{let _;c==null?u._vnode&&(Ie(u._vnode,null,null,!0),_=u._vnode.component):F(u._vnode||null,c,u,null,null,null,g),u._vnode=c,Mn||(Mn=!0,cs(_),ds(),Mn=!1)},Ht={p:F,um:Ie,m:at,r:Ra,mt:Sn,mc:Xe,pc:K,pbc:nt,n:Oo,o:e};return{render:Wa,hydrate:void 0,createApp:ri(Wa)}}function gn({type:e,props:t},o){return o==="svg"&&e==="foreignObject"||o==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:o}function ot({effect:e,job:t},o){o?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function wi(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function js(e,t,o=!1){const n=e.children,s=t.children;if(O(n)&&O(s))for(let a=0;a>1,e[o[r]]0&&(t[n]=o[a-1]),o[a]=n)}}for(a=o.length,i=o[a-1];a-- >0;)o[a]=i,i=t[i];return o}function Vs(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Vs(t)}function qs(e){if(e)for(let t=0;te.__isSuspense;function ki(e,t){t&&t.pendingBranch?O(e)?t.effects.push(...e):t.effects.push(e):Fr(e)}const ee=Symbol.for("v-fgt"),$o=Symbol.for("v-txt"),Oe=Symbol.for("v-cmt"),hn=Symbol.for("v-stc"),je=[];let he=null;function M(e=!1){je.push(he=e?null:[])}function $n(){je.pop(),he=je[je.length-1]||null}let At=1;function Js(e,t=!1){At+=e,e<0&&he&&t&&(he.hasOnce=!0)}function Xs(e){return e.dynamicChildren=At>0?he||rt:null,$n(),At>0&&he&&he.push(e),e}function C(e,t,o,n,s,a){return Xs(I(e,t,o,n,s,a,!0))}function Pt(e,t,o,n,s){return Xs(ge(e,t,o,n,s,!0))}function mn(e){return e?e.__v_isVNode===!0:!1}function Ct(e,t){return e.type===t.type&&e.key===t.key}const Zs=({key:e})=>e??null,mo=({ref:e,ref_key:t,ref_for:o})=>(typeof e=="number"&&(e=""+e),e!=null?G(e)||ae(e)||P(e)?{i:re,r:e,k:t,f:!!o}:e:null);function I(e,t=null,o=null,n=0,s=null,a=e===ee?0:1,i=!1,r=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Zs(t),ref:t&&mo(t),scopeId:us,slotScopeIds:null,children:o,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:n,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:re};return r?(_o(l,o),a&128&&e.normalize(l)):o&&(l.shapeFlag|=G(o)?8:16),At>0&&!i&&he&&(l.patchFlag>0||a&6)&&l.patchFlag!==32&&he.push(l),l}const ge=Ti;function Ti(e,t=null,o=null,n=0,s=null,a=!1){if((!e||e===Zr)&&(e=Oe),mn(e)){const r=ht(e,t,!0);return o&&_o(r,o),At>0&&!a&&he&&(r.shapeFlag&6?he[he.indexOf(e)]=r:he.push(r)),r.patchFlag=-2,r}if(Ri(e)&&(e=e.__vccOpts),t){t=Si(t);let{class:r,style:l}=t;r&&!G(r)&&(t.class=We(r)),z(l)&&(Xo(l)&&!O(l)&&(l=Z({},l)),t.style=No(l))}const i=G(e)?1:Gs(e)?128:co(e)?64:z(e)?4:P(e)?2:0;return I(e,t,o,n,s,i,a,!0)}function Si(e){return e?Xo(e)||Rs(e)?Z({},e):e:null}function ht(e,t,o=!1,n=!1){const{props:s,ref:a,patchFlag:i,children:r,transition:l}=e,d=t?Mi(s||{},t):s,p={__v_isVNode:!0,__v_skip:!0,type:e.type,props:d,key:d&&Zs(d),ref:t&&t.ref?o&&a?O(a)?a.concat(mo(t)):[a,mo(t)]:mo(t):a,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:r,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ee?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&ht(e.ssContent),ssFallback:e.ssFallback&&ht(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&n&&on(p,l.clone(p)),p}function $t(e=" ",t=0){return ge($o,null,e,t)}function ne(e="",t=!1){return t?(M(),Pt(Oe,null,e)):ge(Oe,null,e)}function Ae(e){return e==null||typeof e=="boolean"?ge(Oe):O(e)?ge(ee,null,e.slice()):mn(e)?Ve(e):ge($o,null,String(e))}function Ve(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:ht(e)}function _o(e,t){let o=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(O(t))o=16;else if(typeof t=="object")if(n&65){const s=t.default;s&&(s._c&&(s._d=!1),_o(e,s()),s._c&&(s._d=!0));return}else{o=32;const s=t._;!s&&!Rs(t)?t._ctx=re:s===3&&re&&(re.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(P(t)){if(n&65){_o(e,{default:t});return}t={default:t,_ctx:re},o=32}else t=String(t),n&64?(o=16,t=[$t(t)]):o=8;e.children=t,e.shapeFlag|=o}function Mi(...e){const t={};for(let o=0;oce||re;let bo,Ft;{const e=Jt(),t=(o,n)=>{let s;return(s=e[o])||(s=e[o]=[]),s.push(n),a=>{s.length>1?s.forEach(i=>i(a)):s[0](a)}};bo=t("__VUE_INSTANCE_SETTERS__",o=>ce=o),Ft=t("__VUE_SSR_SETTERS__",o=>Nt=o)}const It=e=>{const t=ce;return bo(e),e.scope.on(),()=>{e.scope.off(),bo(t)}},Qs=()=>{ce&&ce.scope.off(),bo(null)};function ea(e){return e.vnode.shapeFlag&4}let Nt=!1;function Pi(e,t=!1,o=!1){t&&Ft(t);const{props:n,children:s}=e.vnode,a=ea(e);gi(e,n,a,t),_i(e,s,o||t);const i=a?Ci(e,t):void 0;return t&&Ft(!1),i}function Ci(e,t){const o=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Qr);const{setup:n}=o;if(n){Te();const s=e.setupContext=n.length>1?Ii(e):null,a=It(e),i=ct(n,e,0,[e.props,s]),r=An(i);if(Se(),a(),(r||e.sp)&&!ut(e)&&$s(e),r){if(i.then(Qs,Qs),t)return i.then(l=>{Ft(!0);try{ta(e,l,t)}finally{Ft(!1)}}).catch(l=>{so(l,e,0)});e.asyncDep=i}else ta(e,i)}else oa(e)}function ta(e,t,o){P(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:z(t)&&(e.setupState=ss(t)),oa(e)}function oa(e,t,o){const n=e.type;e.render||(e.render=n.render||xe);{const s=It(e);Te();try{ei(e)}finally{Se(),s()}}}const Fi={get(e,t){return le(e,"get",""),e[t]}};function Ii(e){const t=o=>{e.exposed=o||{}};return{attrs:new Proxy(e.attrs,Fi),slots:e.slots,emit:e.emit,expose:t}}function vo(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(ss(br(e.exposed)),{get(t,o){if(o in t)return t[o];if(o in Lt)return Lt[o](e)},has(t,o){return o in t||o in Lt}})):e.proxy}const Ni=/(?:^|[-_])\w/g,Ei=e=>e.replace(Ni,t=>t.toUpperCase()).replace(/[-_]/g,"");function na(e,t=!0){return P(e)?e.displayName||e.name:e.name||t&&e.__name}function sa(e,t,o=!1){let n=na(t);if(!n&&t.__file){const s=t.__file.match(/([^/\\]+)\.\w+$/);s&&(n=s[1])}if(!n&&e){const s=a=>{for(const i in a)if(a[i]===t)return i};n=s(e.components)||e.parent&&s(e.parent.type.components)||s(e.appContext.components)}return n?Ei(n):o?"App":"Anonymous"}function Ri(e){return P(e)&&"__vccOpts"in e}const Et=(e,t)=>kr(e,t,Nt),Wi="3.5.42";/** * @vue/runtime-dom v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let hn;const rr=typeof window<"u"&&window.trustedTypes;if(rr)try{hn=rr.createPolicy("vue",{createHTML:e=>e})}catch{}const ir=hn?e=>hn.createHTML(e):e=>e,Na="http://www.w3.org/2000/svg",Ea="http://www.w3.org/1998/Math/MathML",Ve=typeof document<"u"?document:null,ar=Ve&&Ve.createElement("template"),Ra={insert:(e,t,o)=>{t.insertBefore(e,o||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,o,n)=>{const s=t==="svg"?Ve.createElementNS(Na,e):t==="mathml"?Ve.createElementNS(Ea,e):o?Ve.createElement(e,{is:o}):Ve.createElement(e);return e==="select"&&n&&n.multiple!=null&&s.setAttribute("multiple",n.multiple),s},createText:e=>Ve.createTextNode(e),createComment:e=>Ve.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ve.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,o,n,s,r){const a=o?o.previousSibling:t.lastChild;if(s&&(s===r||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),o),!(s===r||!(s=s.nextSibling)););else{ar.innerHTML=ir(n==="svg"?`${e}`:n==="mathml"?`${e}`:e);const i=ar.content;if(n==="svg"||n==="mathml"){const l=i.firstChild;for(;l.firstChild;)i.appendChild(l.firstChild);i.removeChild(l)}t.insertBefore(i,o)}return[a?a.nextSibling:t.firstChild,o?o.previousSibling:t.lastChild]}},Wa=Symbol("_vtc");function Da(e,t,o){const n=e[Wa];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):o?e.setAttribute("class",t):e.className=t}const bo=Symbol("_vod"),lr=Symbol("_vsh"),gn={name:"show",beforeMount(e,{value:t},{transition:o}){e[bo]=e.style.display==="none"?"":e.style.display,o&&t?o.beforeEnter(e):Et(e,t)},mounted(e,{value:t},{transition:o}){o&&t&&o.enter(e)},updated(e,{value:t,oldValue:o},{transition:n}){!t!=!o&&(n?t?(n.beforeEnter(e),Et(e,!0),n.enter(e)):n.leave(e,()=>{Et(e,!1)}):Et(e,t))},beforeUnmount(e,{value:t}){Et(e,t)}};function Et(e,t){e.style.display=t?e[bo]:"none",e[lr]=!t}const za=Symbol(""),Ha=/(?:^|;)\s*display\s*:/;function Ba(e,t,o){const n=e.style,s=G(o);let r=!1;if(o&&!s){if(t)if(G(t))for(const a of t.split(";")){const i=a.slice(0,a.indexOf(":")).trim();o[i]==null&&Rt(n,i,"")}else for(const a in t)o[a]==null&&Rt(n,a,"");for(const a in o){a==="display"&&(r=!0);const i=o[a];i!=null?ja(e,a,!G(t)&&t?t[a]:void 0,i)||Rt(n,a,i):Rt(n,a,"")}}else if(s){if(t!==o){const a=n[za];a&&(o+=";"+a),n.cssText=o,r=Ha.test(o)}}else t&&e.removeAttribute("style");bo in e&&(e[bo]=r?n.display:"",e[lr]&&(n.display="none"))}const vo=/\s*!important$/;function Rt(e,t,o){if(L(o))o.forEach(n=>Rt(e,t,n));else if(o==null&&(o=""),t.startsWith("--"))vo.test(o)?e.setProperty(t,o.replace(vo,""),"important"):e.setProperty(t,o);else{const n=Ua(e,t);vo.test(o)?e.setProperty(me(n),o.replace(vo,""),"important"):e[n]=o}}const cr=["Webkit","Moz","ms"],mn={};function Ua(e,t){const o=mn[t];if(o)return o;let n=te(t);if(n!=="filter"&&n in e)return mn[t]=n;n=Kt(n);for(let s=0;s$n||(Za.then(()=>$n=0),$n=Date.now());function Qa(e,t){const o=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=o.attached)return;const s=o.value;if(L(s)){const r=n.stopImmediatePropagation;n.stopImmediatePropagation=()=>{r.call(n),n._stopped=!0};const a=s.slice(),i=[n];for(let l=0;le.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,el=(e,t,o,n,s,r)=>{const a=s==="svg";t==="class"?Da(e,n,a):t==="style"?Ba(e,o,n):Bt(t)?Ut(t)||Ka(e,t,o,n,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):tl(e,t,n,a))?(ur(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&dr(e,t,n,a,r,t!=="value")):e._isVueCE&&(ol(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!G(n)))?ur(e,te(t),n,r,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),dr(e,t,n,a))};function tl(e,t,o,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&hr(t)&&P(o));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return hr(t)&&G(o)?!1:t in e}function ol(e,t){const o=e._def.props;if(!o)return!1;const n=te(t);return Array.isArray(o)?o.some(s=>te(s)===n):Object.keys(o).some(s=>te(s)===n)}const gr={};function nl(e,t,o){let n=Yo(e,t);Vt(n)&&(n=Z({},n,t));class s extends bn{constructor(a){super(n,a,o)}}return s.def=n,s}const sl=typeof HTMLElement<"u"?HTMLElement:class{};class bn extends sl{constructor(t,o={},n=br){super(),this._def=t,this._props=o,this._createApp=n,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._patching=!1,this._dirty=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._styleAnchors=new WeakMap,this._ob=null,this.shadowRoot&&n!==br?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(Z({},t.shadowRootOptions,{mode:"open"})),this._root=this.shadowRoot):this._root=this}connectedCallback(){if(!this.isConnected)return;!this.shadowRoot&&!this._resolved&&this._parseSlots(),this._connected=!0;let t=this;for(;t=t&&(t.assignedSlot||t.parentNode||t.host);)if(t instanceof bn){this._parent=t;break}this._instance||(this._resolved?this._mount(this._def):t&&t._pendingResolve?this._pendingResolve=t._pendingResolve.then(()=>{if(this._pendingResolve=void 0,this.isConnected)return this._resolveDef()}):this._resolveDef())}_setParent(t=this._parent){t&&(this._instance.parent=t._instance,this._inheritParentContext(t))}_inheritParentContext(t=this._parent){t&&this._app&&Object.setPrototypeOf(this._app._context.provides,t._instance.provides)}disconnectedCallback(){this._connected=!1,rs(()=>{this._connected||(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(t){for(const o of t)this._setAttr(o.attributeName)}_resolveDef(){if(this._pendingResolve)return this._pendingResolve;for(let n=0;n{this._resolved=!0,this._pendingResolve=void 0;const{props:r,styles:a}=n;let i;if(r&&!L(r))for(const l in r){const p=r[l];(p===Number||p&&p.type===Number)&&(l in this._props&&(this._props[l]=Pn(this._props[l])),(i||(i=Object.create(null)))[te(l)]=!0)}this._numberProps=i,this._resolveProps(n),this.shadowRoot&&this._applyStyles(a),this._mount(n)},o=this._def.__asyncLoader;if(o)return this._pendingResolve=o().then(n=>{n.configureApp=this._def.configureApp,t(this._def=n,!0)}),this._pendingResolve;t(this._def)}_mount(t){this._app=this._createApp(t),this._inheritParentContext(),t.configureApp&&t.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);const o=this._instance&&this._instance.exposed;if(o)for(const n in o)W(this,n)||Object.defineProperty(this,n,{get:()=>ts(o[n])})}_resolveProps(t){const{props:o}=t,n=L(o)?o:Object.keys(o||{});for(const s of Object.keys(this))s[0]!=="_"&&n.includes(s)&&this._setProp(s,this[s]);for(const s of n.map(te))Object.defineProperty(this,s,{get(){return this._getProp(s)},set(r){this._setProp(s,r,!0,!this._patching)}})}_setAttr(t){if(t.startsWith("data-v-"))return;const o=this.hasAttribute(t);let n=o?this.getAttribute(t):gr;const s=te(t);o&&this._numberProps&&this._numberProps[s]&&(n=Pn(n)),this._setProp(s,n,!1,!0)}_getProp(t){return this._props[t]}_setProp(t,o,n=!0,s=!1){if(o!==this._props[t]&&(this._dirty=!0,o===gr?delete this._props[t]:(this._props[t]=o,t==="key"&&this._app&&(this._app._ceVNode.key=o)),s&&this._instance&&this._update(),n)){const r=this._ob;r&&(this._processMutations(r.takeRecords()),r.disconnect()),o===!0?this.setAttribute(me(t),""):typeof o=="string"||typeof o=="number"?this.setAttribute(me(t),o+""):o||this.removeAttribute(me(t)),r&&r.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),il(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const o=be(this._def,Z(t,this._props));return this._instance||(o.ce=n=>{this._instance=n,n.ce=this,n.isCE=!0;const s=(r,a)=>{this.dispatchEvent(new CustomEvent(r,Vt(a[0])?Z({detail:a},a[0]):{detail:a}))};n.emit=(r,...a)=>{s(r,a),me(r)!==r&&s(me(r),a)},this._setParent()}),o}_applyStyles(t,o,n){if(!t)return;if(o){if(o===this._def||this._styleChildren.has(o))return;this._styleChildren.add(o)}const s=this._nonce,r=this.shadowRoot,a=n?this._getStyleAnchor(n)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(r);let i=null;for(let l=t.length-1;l>=0;l--){const p=document.createElement("style");s&&p.setAttribute("nonce",s),p.textContent=t[l],r.insertBefore(p,i||a),i=p,l===0&&(n||this._styleAnchors.set(this._def,p),o&&this._styleAnchors.set(o,p))}}_getStyleAnchor(t){if(!t)return null;const o=this._styleAnchors.get(t);return o&&o.parentNode===this.shadowRoot?o:(o&&this._styleAnchors.delete(t),null)}_getRootStyleInsertionAnchor(t){for(let o=0;o{$r().render(...e)},br=(...e)=>{const t=$r().createApp(...e),{mount:o}=t;return t.mount=n=>{const s=ll(n);if(!s)return;const r=t._component;!P(r)&&!r.render&&!r.template&&(r.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const a=o(s,!1,al(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),a},t};function al(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function ll(e){return G(e)?document.querySelector(e):e}const cl=".btt[data-v-6a25802e]{position:absolute;z-index:15;inset-inline-start:var(--map-fab-beside, calc(12px + env(safe-area-inset-left)) );bottom:calc(12px + env(safe-area-inset-bottom));width:44px;height:44px;display:flex;align-items:center;justify-content:center;font:18px/1 system-ui;color:#3b463d;background:#fff;border:1px solid var(--vtl-border, #d6d9d2);border-radius:50%;box-shadow:0 2px 10px #0000002e;cursor:pointer}.btt[data-v-6a25802e]:hover{background:#d1d4cd}.btt[data-v-6a25802e]:focus-visible{outline:2px solid var(--vtl-accent, #3b463d);outline-offset:2px}@media (prefers-reduced-motion: reduce){.btt[data-v-6a25802e]{transition:none}}",vn=(e,t)=>{const o=e.__vccOpts||e;for(const[n,s]of t)o[n]=s;return o},pl=["aria-label","title"],vr=vn({__name:"BackToTopButton",props:{target:{type:Object,default:null},threshold:{type:Number,default:400},labels:{type:Object,default:()=>({})}},setup(e){const t=e,o=es(0),n=es(!1);function s(){const p=t.target;if(!p){o.value=0,n.value=!1;return}o.value=p.scrollTop||0,n.value=(p.scrollHeight||0)-(p.clientHeight||0)>t.threshold}const r=sr(()=>n.value&&o.value>t.threshold);function a(){const p=t.target;if(!p)return;const d=typeof matchMedia=="function"&&matchMedia("(prefers-reduced-motion: reduce)").matches;p.scrollTo({top:0,behavior:d?"auto":"smooth"})}let i=null;function l(p){i&&(i.removeEventListener("scroll",s),i=null),p&&(p.addEventListener("scroll",s,{passive:!0}),i=p),s()}return en(()=>l(t.target)),io(()=>t.target,p=>l(p)),vs(()=>l(null)),(p,d)=>r.value?(A(),F("button",{key:0,class:"btt",type:"button","aria-label":e.labels.backToTop||"",title:e.labels.backToTop||"",onClick:a},"↑",8,pl)):ie("",!0)}},[["styles",[cl]],["__scopeId","data-v-6a25802e"]]),dl=Object.assign({"./locales/ar/buttons.json":{prayForThem:"صلِّ من أجلهم",adoptThem:"تبنَّهم",moreInfo:"مزيد من المعلومات",zoomIn:"تكبير",zoomOut:"تصغير",switchToLightMode:"التبديل إلى الوضع الفاتح",switchToDarkMode:"التبديل إلى الوضع الداكن",resetView:"إعادة تعيين العرض",toggleFullscreen:"تبديل ملء الشاشة",aboutThisMap:"حول هذه الخريطة",closeMenu:"إغلاق القائمة",reloadMap:"إعادة تحميل الخريطة",showClusters:"إظهار المجموعات",clusterSettings:"إعدادات المجموعات",startAutoFly:"بدء الطيران التلقائي",stopFlight:"إيقاف الطيران",speedLabel:"السرعة:",speedOption:{slow:"بطيء",normal:"عادي",fast:"سريع"},shareEmbed:"مشاركة وتضمين",posterMap:"خريطة الملصق",prayerList:"قائمة الصلاة",cardDeck:"مجموعة البطاقات",printOptions:"خيارات الطباعة",showOnMap:"أظهر على الخريطة",close:"إغلاق",showOnMapAria:"أظهر {label} على الخريطة",cardStockAria:"حجم بطاقة الصلاة",previewPrintPoster:"معاينة وطباعة ملصق {label}",share:"مشاركة",shareSteps:["ضع هذه الخريطة على موقعك","أعدّ قائمة بمواقع الويب في مدينتك","علّمهم أن يضعوها أيضًا","علّمهم أن يعلّموا غيرهم وضعها","لنكثر الخرائط في كل مكان ليسوع!"],clearSelection:"إلغاء التحديد",noOptions:"لا توجد نتائج",renderingLocal:"يتم إنشاء صورة بجودة الطباعة في متصفحك — لا يتم تحميل أي شيء.",postersPerRow:"الملصقات في كل صف",packetVariantAria:"تفاصيل حزمة الصلاة",packetFull:"تفاصيل كاملة",packetLightweight:"مختصرة",working:"جارٍ العمل…",postersPerRowAuto:"تلقائي"},"./locales/ar/grid.json":{search:"ابحث عن الشعوب…",hide_filters:"إخفاء عوامل التصفية",show_filters:"إظهار عوامل التصفية",total:"الإجمالي",showing:"المعروض",load_more:"عرض المزيد",full_profile:"الملف الكامل",wagf_region:"المنطقة",wagf_block:"كتلة التقارب",rop1:"الشعب",religion:"الدين",exact_filter:"تطابق تام",clear_all:"مسح الكل",loading:"جارٍ التحميل…",no_results:"لا توجد شعوب مطابقة لهذا التصفية.",type_to_search:"اكتب للبحث...",load_failed:"تعذّر تحميل بيانات الشعوب. هذه مشكلة اتصال، وليست مشكلة في التصفية.",search_people_or_countries:"ابحث عن الشعوب أو الدول…",cards_per_row:"البطاقات في كل صف",cards_per_row_auto:"تلقائي"},"./locales/ar/messages.json":{menuComingSoon:"القائمة قادمة قريباً",pinHint:{tapDot:"اضغط على نقطة ملوّنة — لا يزال هناك من يحتاج إلى الصلاة"},upg100WallHeading:"قائمتي UPG 100 — قوائم صلاة وملصقات",upg100WallTag:"تعبئة للصلاة",upg100WallIntroA:"كيف تُطعم جمعًا من خمسة آلاف؟ أجلسهم يسوع جماعاتٍ من خمسين ومن مئة، فصار المستحيل قابلًا للمشاركة (لوقا ٩:١٤). فعلنا المثل مع ٢١٠٦ شعوب غير مبلَّغة: ٢٧ قائمة من نحو خمسين إلى مئة. تُطبع كل قائمة حزمةَ صلاة وملصقًا، ليحمل ٢٧ تلميذًا أو كنيسة أو قائدًا محليًا كلٌّ واحدة — مصلّين لأجلهم ",upg100WallIntroEmph:"باسم شعبهم",upg100WallIntroB:".",loadingNamed:"جارٍ تحميل {name}…",couldNotLoadNamed:"تعذّر تحميل {name}.",engineMissing:"لم يتم تحميل محرك الخرائط {engine}.",packetFailed:"فشل إنشاء الكُتيّب: {reason}",selectionPacketFailed:"فشل إنشاء كُتيّب التحديد: {reason}",posterOneTerritory:"الملصق يطبع منطقة واحدة في كل مرة — {count} محددة.",selectionPosterFailed:"فشل إنشاء ملصق التحديد: {reason}",mapUnavailable:"الخريطة غير متاحة",copied:"تم النسخ!",copyFailed:"فشل النسخ — اضغط Ctrl/Cmd-C",engineNotLoaded:"لم يتم تحميل محرك الخريطة",engineNotLoadedDetail:"لم يتم تحميل محرك الخريطة {engine}. القائمة ووسيلة الإيضاح غير متأثرتين.",viewLoadFailed:"تعذّر تحميل هذا العرض.",retry:"إعادة المحاولة",noMapboxToken:"لا يوجد رمز Mapbox",noMapboxTokenDetail:"لم يُضبط أي رمز Mapbox. القائمة ووسيلة الإيضاح غير متأثرتين.",loadingBoundaries:"جارٍ تحميل الحدود…",fetchingUupgs:"جارٍ جلب {n} من UUPG…",mapStatusCounts:"المساحات: {polys} · المناطق: {zones}/{total} · الدبابيس: {pins}",tapTerritoriesHint:"انقر على الأقاليم في الخريطة أو صفوف وسيلة الإيضاح لإضافتها · انقر مجددًا لإزالتها",territoriesSelected:"الأقاليم: {count}",bandInRange:"✓ النطاق 50–100",bandOutOfRange:"النطاق 50–100",mapContextLost:"تم إلغاء تحميل هذه الخريطة لتحرير ذاكرة الرسوميات.",nOfTotal:"{n} من {total}",mapInitFailed:"تعذّر تهيئة الخريطة — تحقّق من الرمز والحاوية",countryWallIntroA:"ملصق لكل دولة، جاهز للصلاة والطباعة والتعليق على الحائط — نصلّي لأجلهم ",countryWallIntroB:". رُتّبت المناطق والدول بحسب عدد الشعوب غير المبلَّغة فيها، لتتقدّم الحاجة الأكبر.",countryWallSoon:"قريبًا: ستُنشأ قائمة صلاة لكل دولة، تسمّي كل شعب غير مبلَّغ فيها.",countryWallHeading:"ملصقات الدول — قوائم صلاة وملصقات",largerScreenNotice:"هذه الخريطة التجريبية مُعدّة للشاشات الكبيرة. تُفتح هنا، لكن بعض أجزائها قد لا يتّسع أو لا يعمل جيدًا على الهاتف.",desktopOnlyNotice:"{label} يعمل على الحاسوب فقط — افتح هذه الصفحة على حاسوب لاستخدامه.",noticeDismiss:"إغلاق",countryPosterTooMany:"عدد الشعوب أكبر من أن يتّسع له ملصق واحد بوضوح — ونعمل على حلّ لذلك."},"./locales/de/buttons.json":{prayForThem:"Für sie beten",adoptThem:"Sie adoptieren",moreInfo:"Mehr Infos",zoomIn:"Vergrößern",zoomOut:"Verkleinern",switchToLightMode:"Zum hellen Modus wechseln",switchToDarkMode:"Zum dunklen Modus wechseln",resetView:"Ansicht zurücksetzen",toggleFullscreen:"Vollbild umschalten",aboutThisMap:"Über diese Karte",closeMenu:"Menü schließen",reloadMap:"Karte neu laden",showClusters:"Cluster anzeigen",clusterSettings:"Cluster-Einstellungen",startAutoFly:"Auto-Flug starten",stopFlight:"Flug stoppen",speedLabel:"Geschwindigkeit:",speedOption:{slow:"Langsam",normal:"Normal",fast:"Schnell"},shareEmbed:"Teilen und einbetten",posterMap:"Posterkarte",prayerList:"Gebetsliste",cardDeck:"Kartenset",printOptions:"Druckoptionen",showOnMap:"Auf der Karte zeigen",close:"Schließen",showOnMapAria:"{label} auf der Karte zeigen",cardStockAria:"Größe der Gebetskarte",previewPrintPoster:"Vorschau und Druck des Posters {label}",share:"Teilen",shareSteps:["Binde diese Karte auf deiner Website ein","Erstelle eine Liste der Websites in deiner Stadt","Zeige ihnen, wie sie sie ebenfalls einbinden","Zeige ihnen, wie sie es anderen beibringen","Lasst uns Karten überall vermehren – für Jesus!"],clearSelection:"Auswahl aufheben",noOptions:"Keine Optionen gefunden",renderingLocal:"Ein druckfähiges Bild wird in deinem Browser erzeugt — es wird nichts hochgeladen.",postersPerRow:"Poster pro Zeile",packetVariantAria:"Detailgrad des Gebetspakets",packetFull:"Vollständig",packetLightweight:"Kompakt",working:"Wird bearbeitet…",postersPerRowAuto:"Automatisch"},"./locales/de/grid.json":{search:"Volksgruppen suchen…",hide_filters:"Filter ausblenden",show_filters:"Filter anzeigen",total:"Gesamt",showing:"Angezeigt",load_more:"Mehr laden",full_profile:"Vollständiges Profil",wagf_region:"Region",wagf_block:"Affinitätsblock",rop1:"Volk",religion:"Religion",exact_filter:"Exakt",clear_all:"Alle löschen",loading:"Wird geladen…",no_results:"Keine Volksgruppen entsprechen diesem Filter.",type_to_search:"Zum Suchen tippen...",load_failed:"Die Daten konnten nicht geladen werden. Das ist ein Verbindungsproblem, nicht Ihr Filter.",search_people_or_countries:"Volksgruppen oder Länder suchen…",cards_per_row:"Karten pro Zeile",cards_per_row_auto:"Automatisch"},"./locales/de/messages.json":{menuComingSoon:"Menü folgt in Kürze",pinHint:{tapDot:"Tippe auf einen farbigen Punkt — jemand braucht noch Gebet"},upg100WallHeading:"Meine UPG-100-Liste — Gebetslisten und Poster",upg100WallTag:"Gebetsmobilisierung",upg100WallIntroA:"Wie würden Sie eine Menge von fünftausend speisen? Jesus ließ sie in Gruppen zu fünfzig und hundert lagern, und das Unmögliche wurde teilbar (Lukas 9,14). Dasselbe haben wir mit den 2.106 unerreichten Volksgruppen getan: 27 Listen von etwa fünfzig bis hundert. Jede Liste druckt als Gebetspaket und als Poster, damit 27 Jünger, Gemeinden oder einheimische Leiter je eine tragen können — und für sie beten ",upg100WallIntroEmph:"mit dem Namen ihrer Volksgruppe",upg100WallIntroB:".",loadingNamed:"{name} wird geladen…",couldNotLoadNamed:"{name} konnte nicht geladen werden.",engineMissing:"Die Karten-Engine {engine} wurde nicht geladen.",packetFailed:"Heft fehlgeschlagen: {reason}",selectionPacketFailed:"Heft der Auswahl fehlgeschlagen: {reason}",posterOneTerritory:"Das Plakat druckt ein Gebiet auf einmal — {count} ausgewählt.",selectionPosterFailed:"Plakat der Auswahl fehlgeschlagen: {reason}",mapUnavailable:"Karte nicht verfügbar",copied:"Kopiert!",copyFailed:"Kopieren fehlgeschlagen — Strg/Cmd-C drücken",engineNotLoaded:"Karten-Engine nicht geladen",engineNotLoadedDetail:"Die Karten-Engine {engine} wurde nicht geladen. Liste und Legende sind nicht betroffen.",viewLoadFailed:"Diese Ansicht konnte nicht geladen werden.",retry:"Erneut versuchen",noMapboxToken:"Kein Mapbox-Token",noMapboxTokenDetail:"Kein Mapbox-Token konfiguriert. Liste und Legende sind nicht betroffen.",loadingBoundaries:"Grenzen werden geladen…",fetchingUupgs:"{n} UUPGs werden abgerufen…",mapStatusCounts:"Flächen: {polys} · Zonen: {zones}/{total} · Pins: {pins}",tapTerritoriesHint:"Tippen Sie auf Gebiete auf der Karte oder auf Legendenzeilen, um sie hinzuzufügen · erneut tippen zum Entfernen",territoriesSelected:"Gebiete: {count}",bandInRange:"✓ Bereich 50–100",bandOutOfRange:"Bereich 50–100",mapContextLost:"Diese Karte wurde entladen, um Grafikspeicher freizugeben.",nOfTotal:"{n} von {total}",mapInitFailed:"Karte konnte nicht initialisiert werden — Token und Container prüfen",countryWallIntroA:"Ein Poster pro Land, bereit zum Beten, Drucken und Aufhängen — und für sie beten ",countryWallIntroB:". Regionen und Länder sind danach geordnet, wie viele unerreichte Volksgruppen sie umfassen, damit der größte Bedarf vorne steht.",countryWallSoon:"Demnächst: Für jedes Land wird eine Gebetsliste erstellt, die jede unerreichte Volksgruppe darin mit Namen nennt.",countryWallHeading:"Länderposter — Gebetslisten und Poster",largerScreenNotice:"Diese experimentelle Karte ist für große Bildschirme gebaut. Sie öffnet sich hier, aber Teile passen oder funktionieren auf einem Telefon womöglich nicht gut.",desktopOnlyNotice:"{label} funktioniert nur am Desktop – öffnen Sie diese Seite an einem Computer.",noticeDismiss:"Schließen",countryPosterTooMany:"Zu viele Volksgruppen, um lesbar auf ein Plakat zu passen – an einer Lösung wird gearbeitet."},"./locales/en/buttons.json":{prayForThem:"Pray for them",adoptThem:"Adopt",moreInfo:"More info",zoomIn:"Zoom in",zoomOut:"Zoom out",switchToLightMode:"Switch to light mode",switchToDarkMode:"Switch to dark mode",resetView:"Reset view",toggleFullscreen:"Toggle fullscreen",aboutThisMap:"About this map",closeMenu:"Close menu",reloadMap:"Reload Map",showClusters:"Show Clusters",clusterSettings:"Cluster Settings",startAutoFly:"Start Auto Fly",stopFlight:"Stop Flight",speedLabel:"Speed:",speedOption:{slow:"Slow",normal:"Normal",fast:"Fast"},shareEmbed:"Share & embed",shareSteps:["Embed this map on your site","Create a list of the websites in your city","Train them to embed it too","Train them to train others to embed it too","Multiply maps everywhere for Jesus!"],share:"Share",posterMap:"Poster Map",prayerList:"Prayer List",cardDeck:"Card Deck",printOptions:"Print Options",showOnMap:"Show on map",close:"Close",showOnMapAria:"Show {label} on the map",cardStockAria:"Prayer card size",working:"Working…",packetVariantAria:"Prayer packet detail",packetFull:"Full detail",packetLightweight:"Lightweight",previewPrintPoster:"Preview & print the {label} poster",clearSelection:"Clear selection",noOptions:"No options found",renderingLocal:"Rendering a print-quality image in your browser — nothing is uploaded.",postersPerRow:"Posters per row",postersPerRowAuto:"Auto"},"./locales/en/grid.json":{search:"Search people groups…",hide_filters:"Hide Filters",show_filters:"Show Filters",total:"Total",showing:"Showing",load_more:"Load More",full_profile:"Full Profile",wagf_region:"Region",wagf_block:"Affinity Block",rop1:"People Group",religion:"Religion",exact_filter:"Exact",clear_all:"Clear All",loading:"Loading…",no_results:"No people groups match this filter.",type_to_search:"Type to search...",load_failed:"People-group data could not be loaded. This is a connection problem, not your filter.",search_people_or_countries:"Search people groups or countries…",cards_per_row:"Cards per row",cards_per_row_auto:"Auto"},"./locales/en/messages.json":{menuComingSoon:"Menu coming soon",pinHint:{tapDot:"Tap a coloured dot — someone still needs prayer"},upg100WallHeading:"My UPG 100 List — Prayer Lists & Posters",upg100WallTag:"Prayer Mobilization",upg100WallIntroA:"How would you feed a crowd of five thousand? Jesus sat them down in groups of fifty and a hundred, and the impossible became shareable (Luke 9:14). We did the same with the 2,106 unreached people groups: 27 lists of about fifty to a hundred. Each list prints as a prayer packet and a poster, so 27 disciples, churches or local leaders can each carry one — praying for them ",upg100WallIntroEmph:"by their people group name",upg100WallIntroB:".",loadingNamed:"Loading {name}…",couldNotLoadNamed:"Could not load {name}.",engineMissing:"The {engine} map engine did not load.",packetFailed:"Packet failed: {reason}",selectionPacketFailed:"Selection packet failed: {reason}",posterOneTerritory:"Poster prints one territory at a time — {count} selected.",selectionPosterFailed:"Selection poster failed: {reason}",mapUnavailable:"Map unavailable",copied:"Copied!",copyFailed:"Copy failed — press Ctrl/Cmd-C",engineNotLoaded:"map engine not loaded",engineNotLoadedDetail:"The {engine} map engine did not load. The list and legend are unaffected.",viewLoadFailed:"This view couldn't load.",retry:"Retry",noMapboxToken:"No Mapbox token",noMapboxTokenDetail:"No Mapbox token configured. The list and legend are unaffected.",loadingBoundaries:"Loading boundaries…",fetchingUupgs:"Fetching {n} UUPGs…",mapStatusCounts:"Areas: {polys} · zones: {zones}/{total} · pins: {pins}",tapTerritoriesHint:"Tap territories on the map or legend rows to add · tap again to remove",territoriesSelected:"Territories: {count}",bandInRange:"✓ 50–100 band",bandOutOfRange:"band 50–100",mapContextLost:"This map was unloaded to free graphics memory.",nOfTotal:"{n} of {total}",mapInitFailed:"Map failed to initialize — check token and container",countryWallIntroA:"One poster per country, ready to pray, print, and put on a wall — praying for them ",countryWallIntroB:". Regions and countries are ordered by how many unengaged people groups they hold, so the greatest need leads.",countryWallSoon:"Coming soon — a prayer list will be generated for each country, naming every unengaged people group within it.",countryWallHeading:"Country Posters — Prayer Lists & Posters",largerScreenNotice:"This experimental map is built for larger screens. It opens here, but parts of it may not fit or work well on a phone.",desktopOnlyNotice:"{label} only supports desktop — open this page on a desktop to use it.",noticeDismiss:"Dismiss",countryPosterTooMany:"Too many people groups to fit on one poster legibly — a solution is in progress."},"./locales/es/buttons.json":{prayForThem:"Ora por ellos",adoptThem:"Adóptalos",moreInfo:"Más información",zoomIn:"Acercar",zoomOut:"Alejar",switchToLightMode:"Cambiar a modo claro",switchToDarkMode:"Cambiar a modo oscuro",resetView:"Restablecer vista",toggleFullscreen:"Alternar pantalla completa",aboutThisMap:"Acerca de este mapa",closeMenu:"Cerrar menú",reloadMap:"Recargar mapa",showClusters:"Mostrar clústeres",clusterSettings:"Ajustes de clústeres",startAutoFly:"Iniciar vuelo automático",stopFlight:"Detener vuelo",speedLabel:"Velocidad:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Compartir e incrustar",posterMap:"Mapa del cartel",prayerList:"Lista de oración",cardDeck:"Baraja de tarjetas",printOptions:"Opciones de impresión",showOnMap:"Ver en el mapa",close:"Cerrar",showOnMapAria:"Ver {label} en el mapa",cardStockAria:"Tamaño de la tarjeta de oración",previewPrintPoster:"Previsualizar e imprimir el cartel de {label}",share:"Compartir",shareSteps:["Inserta este mapa en tu sitio","Haz una lista de los sitios web de tu ciudad","Enséñales a insertarlo también","Enséñales a enseñar a otros a insertarlo","¡Multiplica los mapas por todas partes para Jesús!"],clearSelection:"Borrar la selección",noOptions:"No se encontraron opciones",renderingLocal:"Se está generando una imagen con calidad de impresión en tu navegador: no se sube nada.",postersPerRow:"Pósteres por fila",packetVariantAria:"Detalle del paquete de oración",packetFull:"Detalle completo",packetLightweight:"Ligero",working:"Procesando…",postersPerRowAuto:"Automático"},"./locales/es/grid.json":{search:"Buscar pueblos…",hide_filters:"Ocultar filtros",show_filters:"Mostrar filtros",total:"Total",showing:"Mostrando",load_more:"Cargar más",full_profile:"Perfil completo",wagf_region:"Región",wagf_block:"Bloque de afinidad",rop1:"Pueblo",religion:"Religión",exact_filter:"Exacto",clear_all:"Borrar todo",loading:"Cargando…",no_results:"Ningún pueblo coincide con este filtro.",type_to_search:"Escribe para buscar...",load_failed:"No se pudieron cargar los datos de pueblos. Es un problema de conexión, no de tu filtro.",search_people_or_countries:"Buscar pueblos o países…",cards_per_row:"Tarjetas por fila",cards_per_row_auto:"Automático"},"./locales/es/messages.json":{menuComingSoon:"Menú próximamente",pinHint:{tapDot:"Toca un punto de color: alguien todavía necesita oración"},upg100WallHeading:"Mi lista UPG 100 — Listas de oración y carteles",upg100WallTag:"Movilización de oración",upg100WallIntroA:"¿Cómo alimentarías a una multitud de cinco mil? Jesús los sentó en grupos de cincuenta y de cien, y lo imposible se volvió compartible (Lucas 9:14). Hicimos lo mismo con los 2.106 pueblos no alcanzados: 27 listas de unos cincuenta a cien. Cada lista se imprime como paquete de oración y cartel, para que 27 discípulos, iglesias o líderes locales lleven una cada uno — orando por ellos ",upg100WallIntroEmph:"por el nombre de su pueblo",upg100WallIntroB:".",loadingNamed:"Cargando {name}…",couldNotLoadNamed:"No se pudo cargar {name}.",engineMissing:"El motor de mapas {engine} no se cargó.",packetFailed:"Error al generar el cuadernillo: {reason}",selectionPacketFailed:"Error al generar el cuadernillo de la selección: {reason}",posterOneTerritory:"El cartel imprime un territorio a la vez: {count} seleccionados.",selectionPosterFailed:"Error al generar el cartel de la selección: {reason}",mapUnavailable:"Mapa no disponible",copied:"¡Copiado!",copyFailed:"Error al copiar: pulsa Ctrl/Cmd-C",engineNotLoaded:"motor de mapas no cargado",engineNotLoadedDetail:"El motor de mapas {engine} no se cargó. La lista y la leyenda no se ven afectadas.",viewLoadFailed:"No se pudo cargar esta vista.",retry:"Reintentar",noMapboxToken:"No hay token de Mapbox",noMapboxTokenDetail:"No hay ningún token de Mapbox configurado. La lista y la leyenda no se ven afectadas.",loadingBoundaries:"Cargando límites…",fetchingUupgs:"Obteniendo {n} UUPG…",mapStatusCounts:"Áreas: {polys} · zonas: {zones}/{total} · marcadores: {pins}",tapTerritoriesHint:"Toque territorios en el mapa o filas de la leyenda para añadirlos · toque de nuevo para quitarlos",territoriesSelected:"Territorios: {count}",bandInRange:"✓ franja 50–100",bandOutOfRange:"franja 50–100",mapContextLost:"Este mapa se descargó para liberar memoria gráfica.",nOfTotal:"{n} de {total}",mapInitFailed:"No se pudo iniciar el mapa: revisa el token y el contenedor",countryWallIntroA:"Un cartel por país, listo para orar, imprimir y colgar en una pared — orando por ellos ",countryWallIntroB:". Las regiones y los países se ordenan según cuántos pueblos no comprometidos contienen, para que la mayor necesidad vaya primero.",countryWallSoon:"Próximamente: se generará una lista de oración para cada país, con el nombre de cada pueblo no alcanzado que hay en él.",countryWallHeading:"Carteles por país — Listas de oración y carteles",largerScreenNotice:"Este mapa experimental está pensado para pantallas grandes. Se abre aquí, pero algunas partes pueden no caber o no funcionar bien en un teléfono.",desktopOnlyNotice:"{label} solo funciona en escritorio: abra esta página en un ordenador para usarlo.",noticeDismiss:"Cerrar",countryPosterTooMany:"Demasiados pueblos para que quepan legiblemente en un solo cartel; estamos trabajando en una solución."},"./locales/fr/buttons.json":{prayForThem:"Priez pour eux",adoptThem:"Adoptez-les",moreInfo:"Plus d'infos",zoomIn:"Zoom avant",zoomOut:"Zoom arrière",switchToLightMode:"Passer au mode clair",switchToDarkMode:"Passer au mode sombre",resetView:"Réinitialiser la vue",toggleFullscreen:"Basculer en plein écran",aboutThisMap:"À propos de cette carte",closeMenu:"Fermer le menu",reloadMap:"Recharger la carte",showClusters:"Afficher les clusters",clusterSettings:"Paramètres des clusters",startAutoFly:"Démarrer le vol auto",stopFlight:"Arrêter le vol",speedLabel:"Vitesse :",speedOption:{slow:"Lente",normal:"Normale",fast:"Rapide"},shareEmbed:"Partager et intégrer",posterMap:"Carte de l'affiche",prayerList:"Liste de prière",cardDeck:"Jeu de cartes",printOptions:"Options d'impression",showOnMap:"Voir sur la carte",close:"Fermer",showOnMapAria:"Voir {label} sur la carte",cardStockAria:"Taille de la carte de prière",previewPrintPoster:"Aperçu et impression de l’affiche {label}",share:"Partager",shareSteps:["Intégrez cette carte à votre site","Dressez la liste des sites web de votre ville","Apprenez-leur à l’intégrer aussi","Apprenez-leur à former d’autres personnes à l’intégrer","Multiplions les cartes partout pour Jésus !"],clearSelection:"Effacer la sélection",noOptions:"Aucune option trouvée",renderingLocal:"Une image de qualité impression est générée dans votre navigateur — rien n’est envoyé.",postersPerRow:"Affiches par ligne",packetVariantAria:"Niveau de détail du dossier de prière",packetFull:"Détail complet",packetLightweight:"Allégé",working:"Traitement…",postersPerRowAuto:"Auto"},"./locales/fr/grid.json":{search:"Rechercher des peuples…",hide_filters:"Masquer les filtres",show_filters:"Afficher les filtres",total:"Total",showing:"Affichage",load_more:"Charger plus",full_profile:"Profil complet",wagf_region:"Région",wagf_block:"Bloc d'affinité",rop1:"Peuple",religion:"Religion",exact_filter:"Exact",clear_all:"Tout effacer",loading:"Chargement…",no_results:"Aucun peuple ne correspond à ce filtre.",type_to_search:"Tapez pour rechercher...",load_failed:"Les données n’ont pas pu être chargées. C’est un problème de connexion, pas votre filtre.",search_people_or_countries:"Rechercher des peuples ou des pays…",cards_per_row:"Cartes par ligne",cards_per_row_auto:"Automatique"},"./locales/fr/messages.json":{menuComingSoon:"Menu bientôt disponible",pinHint:{tapDot:"Touchez un point coloré — quelqu’un a encore besoin de prière"},upg100WallHeading:"Ma liste UPG 100 — Listes de prière et affiches",upg100WallTag:"Mobilisation pour la prière",upg100WallIntroA:"Comment nourririez-vous une foule de cinq mille personnes ? Jésus les a fait asseoir par groupes de cinquante et de cent, et l’impossible est devenu partageable (Luc 9.14). Nous avons fait de même avec les 2 106 peuples non atteints : 27 listes d’environ cinquante à cent. Chaque liste s’imprime en dossier de prière et en affiche, pour que 27 disciples, Églises ou responsables locaux en portent chacun une — en priant pour eux ",upg100WallIntroEmph:"par le nom de leur peuple",upg100WallIntroB:".",loadingNamed:"Chargement de {name}…",couldNotLoadNamed:"Impossible de charger {name}.",engineMissing:"Le moteur de carte {engine} ne s’est pas chargé.",packetFailed:"Échec du livret : {reason}",selectionPacketFailed:"Échec du livret de la sélection : {reason}",posterOneTerritory:"L’affiche imprime un territoire à la fois — {count} sélectionnés.",selectionPosterFailed:"Échec de l’affiche de la sélection : {reason}",mapUnavailable:"Carte indisponible",copied:"Copié !",copyFailed:"Échec de la copie — appuyez sur Ctrl/Cmd-C",engineNotLoaded:"moteur cartographique non chargé",engineNotLoadedDetail:"Le moteur cartographique {engine} ne s’est pas chargé. La liste et la légende ne sont pas affectées.",viewLoadFailed:"Impossible de charger cette vue.",retry:"Réessayer",noMapboxToken:"Aucun jeton Mapbox",noMapboxTokenDetail:"Aucun jeton Mapbox n’est configuré. La liste et la légende ne sont pas affectées.",loadingBoundaries:"Chargement des limites…",fetchingUupgs:"Récupération de {n} UUPG…",mapStatusCounts:"Surfaces : {polys} · zones : {zones}/{total} · repères : {pins}",tapTerritoriesHint:"Touchez des territoires sur la carte ou des lignes de la légende pour les ajouter · touchez à nouveau pour les retirer",territoriesSelected:"Territoires : {count}",bandInRange:"✓ tranche 50–100",bandOutOfRange:"tranche 50–100",mapContextLost:"Cette carte a été déchargée pour libérer de la mémoire graphique.",nOfTotal:"{n} sur {total}",mapInitFailed:"Échec de l’initialisation de la carte — vérifiez le jeton et le conteneur",countryWallIntroA:"Une affiche par pays, prête à prier, à imprimer et à accrocher au mur — en priant pour eux ",countryWallIntroB:". Les régions et les pays sont classés selon le nombre de peuples non engagés qu’ils comptent, pour que le plus grand besoin vienne en premier.",countryWallSoon:"Bientôt : une liste de prière sera générée pour chaque pays, nommant chaque peuple non atteint qui s’y trouve.",countryWallHeading:"Affiches par pays — Listes de prière et affiches",largerScreenNotice:"Cette carte expérimentale est conçue pour les grands écrans. Elle s’ouvre ici, mais certaines parties peuvent mal s’afficher ou mal fonctionner sur un téléphone.",desktopOnlyNotice:"{label} ne fonctionne que sur ordinateur : ouvrez cette page sur un ordinateur pour l’utiliser.",noticeDismiss:"Fermer",countryPosterTooMany:"Trop de peuples pour tenir lisiblement sur une seule affiche — une solution est en préparation."},"./locales/hi/buttons.json":{prayForThem:"उनके लिए प्रार्थना करें",adoptThem:"उन्हें गोद लें",moreInfo:"अधिक जानकारी",zoomIn:"ज़ूम इन",zoomOut:"ज़ूम आउट",switchToLightMode:"लाइट मोड पर जाएं",switchToDarkMode:"डार्क मोड पर जाएं",resetView:"दृश्य रीसेट करें",toggleFullscreen:"फ़ुलस्क्रीन टॉगल करें",aboutThisMap:"इस मानचित्र के बारे में",closeMenu:"मेनू बंद करें",reloadMap:"मानचित्र पुनः लोड करें",showClusters:"क्लस्टर दिखाएं",clusterSettings:"क्लस्टर सेटिंग्स",startAutoFly:"ऑटो फ्लाई शुरू करें",stopFlight:"उड़ान रोकें",speedLabel:"गति:",speedOption:{slow:"धीमी",normal:"सामान्य",fast:"तेज़"},shareEmbed:"साझा करें और एम्बेड करें",posterMap:"पोस्टर मानचित्र",prayerList:"प्रार्थना सूची",cardDeck:"कार्ड सेट",printOptions:"छपाई विकल्प",showOnMap:"मानचित्र पर देखें",close:"बंद करें",showOnMapAria:"{label} को मानचित्र पर देखें",cardStockAria:"प्रार्थना कार्ड का आकार",previewPrintPoster:"{label} पोस्टर देखें और प्रिंट करें",share:"साझा करें",shareSteps:["इस मानचित्र को अपनी वेबसाइट पर लगाएँ","अपने शहर की वेबसाइटों की सूची बनाएँ","उन्हें भी इसे लगाना सिखाएँ","उन्हें सिखाएँ कि वे औरों को लगाना सिखाएँ","यीशु के लिए हर जगह मानचित्र बढ़ाएँ!"],clearSelection:"चयन हटाएँ",noOptions:"कोई विकल्प नहीं मिला",renderingLocal:"आपके ब्राउज़र में प्रिंट-गुणवत्ता वाली छवि बन रही है — कुछ भी अपलोड नहीं किया जाता।",postersPerRow:"प्रति पंक्ति पोस्टर",packetVariantAria:"प्रार्थना पैकेट विवरण",packetFull:"पूर्ण विवरण",packetLightweight:"संक्षिप्त",working:"कार्य जारी…",postersPerRowAuto:"स्वतः"},"./locales/hi/grid.json":{search:"जनसमूह खोजें…",hide_filters:"फ़िल्टर छिपाएँ",show_filters:"फ़िल्टर दिखाएँ",total:"कुल",showing:"दिखा रहे हैं",load_more:"और देखें",full_profile:"पूरी प्रोफ़ाइल",wagf_region:"क्षेत्र",wagf_block:"समानता समूह",rop1:"जनसमूह",religion:"धर्म",exact_filter:"सटीक",clear_all:"सब हटाएँ",loading:"लोड हो रहा है…",no_results:"इस फ़िल्टर से कोई जनसमूह मेल नहीं खाता।",type_to_search:"खोजने के लिए लिखें...",load_failed:"जनसमूह डेटा लोड नहीं हो सका। यह कनेक्शन की समस्या है, आपके फ़िल्टर की नहीं।",search_people_or_countries:"जनसमूह या देश खोजें…",cards_per_row:"प्रति पंक्ति कार्ड",cards_per_row_auto:"स्वचालित"},"./locales/hi/messages.json":{menuComingSoon:"मेनू शीघ्र आ रहा है",pinHint:{tapDot:"किसी रंगीन बिंदु पर टैप करें — किसी को अभी भी प्रार्थना की आवश्यकता है"},upg100WallHeading:"मेरी UPG 100 सूची — प्रार्थना सूचियाँ और पोस्टर",upg100WallTag:"प्रार्थना संग्रहण",upg100WallIntroA:"पाँच हज़ार की भीड़ को आप कैसे खिलाते? यीशु ने उन्हें पचास-पचास और सौ-सौ के समूहों में बिठाया, और असंभव बाँटने योग्य हो गया (लूका 9:14). हमने 2,106 अनपहुँचे जनसमूहों के साथ वही किया: लगभग पचास से सौ तक की 27 सूचियाँ. हर सूची प्रार्थना पैकेट और पोस्टर के रूप में छपती है, ताकि 27 शिष्य, कलीसियाएँ या स्थानीय अगुवे एक-एक ले सकें — उनके लिए प्रार्थना करते हुए ",upg100WallIntroEmph:"उनके जन के नाम से",upg100WallIntroB:".",loadingNamed:"{name} लोड हो रहा है…",couldNotLoadNamed:"{name} लोड नहीं हो सका।",engineMissing:"{engine} नक्शा इंजन लोड नहीं हुआ।",packetFailed:"पुस्तिका विफल: {reason}",selectionPacketFailed:"चयन की पुस्तिका विफल: {reason}",posterOneTerritory:"पोस्टर एक समय में एक क्षेत्र छापता है — {count} चयनित।",selectionPosterFailed:"चयन का पोस्टर विफल: {reason}",mapUnavailable:"मानचित्र अनुपलब्ध",copied:"कॉपी हो गया!",copyFailed:"कॉपी विफल — Ctrl/Cmd-C दबाएँ",engineNotLoaded:"मानचित्र इंजन लोड नहीं हुआ",engineNotLoadedDetail:"{engine} मानचित्र इंजन लोड नहीं हुआ। सूची और लेजेंड अप्रभावित हैं।",viewLoadFailed:"यह दृश्य लोड नहीं हो सका।",retry:"फिर से कोशिश करें",noMapboxToken:"कोई Mapbox टोकन नहीं",noMapboxTokenDetail:"कोई Mapbox टोकन कॉन्फ़िगर नहीं है। सूची और लेजेंड पर कोई असर नहीं है।",loadingBoundaries:"सीमाएँ लोड हो रही हैं…",fetchingUupgs:"{n} UUPG लाए जा रहे हैं…",mapStatusCounts:"क्षेत्र: {polys} · ज़ोन: {zones}/{total} · पिन: {pins}",tapTerritoriesHint:"जोड़ने के लिए मानचित्र पर क्षेत्रों या लेजेंड की पंक्तियों पर टैप करें · हटाने के लिए फिर से टैप करें",territoriesSelected:"क्षेत्र: {count}",bandInRange:"✓ 50–100 दायरा",bandOutOfRange:"50–100 दायरा",mapContextLost:"ग्राफ़िक्स मेमोरी खाली करने के लिए यह मानचित्र अनलोड कर दिया गया।",nOfTotal:"{total} में से {n}",mapInitFailed:"मानचित्र आरंभ नहीं हो सका — टोकन और कंटेनर जाँचें",countryWallIntroA:"हर देश के लिए एक पोस्टर — प्रार्थना करने, छापने और दीवार पर लगाने के लिए तैयार, और उनके लिए प्रार्थना करते हुए ",countryWallIntroB:". क्षेत्र और देश इस क्रम में हैं कि उनमें कितने अनपहुँचे जनसमूह हैं, ताकि सबसे बड़ी ज़रूरत पहले आए।",countryWallSoon:"जल्द ही: हर देश के लिए एक प्रार्थना सूची बनाई जाएगी, जिसमें उसके हर अनपहुँचे जनसमूह का नाम होगा।",countryWallHeading:"देश पोस्टर — प्रार्थना सूचियाँ और पोस्टर",largerScreenNotice:"यह प्रायोगिक नक्शा बड़ी स्क्रीन के लिए बना है। यह यहाँ खुलता है, पर फ़ोन पर इसके कुछ हिस्से ठीक से न दिखें या न चलें।",desktopOnlyNotice:"{label} केवल डेस्कटॉप पर चलता है — इसे इस्तेमाल करने के लिए यह पेज कंप्यूटर पर खोलें।",noticeDismiss:"बंद करें",countryPosterTooMany:"एक पोस्टर पर साफ़-साफ़ आने के लिए जनसमूह बहुत अधिक हैं — समाधान पर काम चल रहा है।"},"./locales/it/buttons.json":{prayForThem:"Prega per loro",adoptThem:"Adottali",moreInfo:"Più informazioni",zoomIn:"Ingrandisci",zoomOut:"Riduci",switchToLightMode:"Passa alla modalità chiara",switchToDarkMode:"Passa alla modalità scura",resetView:"Reimposta vista",toggleFullscreen:"Attiva/disattiva schermo intero",aboutThisMap:"Informazioni su questa mappa",closeMenu:"Chiudi menu",reloadMap:"Ricarica mappa",showClusters:"Mostra cluster",clusterSettings:"Impostazioni cluster",startAutoFly:"Avvia volo automatico",stopFlight:"Ferma volo",speedLabel:"Velocità:",speedOption:{slow:"Lenta",normal:"Normale",fast:"Veloce"},shareEmbed:"Condividi e incorpora",posterMap:"Mappa del poster",prayerList:"Lista di preghiera",cardDeck:"Mazzo di carte",printOptions:"Opzioni di stampa",showOnMap:"Mostra sulla mappa",close:"Chiudi",showOnMapAria:"Mostra {label} sulla mappa",cardStockAria:"Formato della scheda di preghiera",previewPrintPoster:"Anteprima e stampa del poster {label}",share:"Condividi",shareSteps:["Incorpora questa mappa nel tuo sito","Fai un elenco dei siti web della tua città","Insegna loro a incorporarla a loro volta","Insegna loro a formare altri a incorporarla","Moltiplichiamo le mappe ovunque per Gesù!"],clearSelection:"Cancella la selezione",noOptions:"Nessuna opzione trovata",renderingLocal:"Un’immagine con qualità di stampa viene generata nel tuo browser: nulla viene caricato.",postersPerRow:"Poster per riga",packetVariantAria:"Dettaglio del pacchetto di preghiera",packetFull:"Dettaglio completo",packetLightweight:"Leggero",working:"Elaborazione…",postersPerRowAuto:"Automatico"},"./locales/it/grid.json":{search:"Cerca popoli…",hide_filters:"Nascondi filtri",show_filters:"Mostra filtri",total:"Totale",showing:"Mostrati",load_more:"Carica altro",full_profile:"Profilo completo",wagf_region:"Regione",wagf_block:"Blocco di affinità",rop1:"Popolo",religion:"Religione",exact_filter:"Esatto",clear_all:"Cancella tutto",loading:"Caricamento…",no_results:"Nessun popolo corrisponde a questo filtro.",type_to_search:"Digita per cercare...",load_failed:"Impossibile caricare i dati dei popoli. È un problema di connessione, non del filtro.",search_people_or_countries:"Cerca popoli o paesi…",cards_per_row:"Schede per riga",cards_per_row_auto:"Automatico"},"./locales/it/messages.json":{menuComingSoon:"Menu in arrivo",pinHint:{tapDot:"Tocca un punto colorato — qualcuno ha ancora bisogno di preghiera"},upg100WallHeading:"La mia lista UPG 100 — Liste di preghiera e manifesti",upg100WallTag:"Mobilitazione alla preghiera",upg100WallIntroA:"Come sfameresti una folla di cinquemila? Gesù li fece sedere a gruppi di cinquanta e di cento, e l’impossibile divenne condivisibile (Luca 9:14). Abbiamo fatto lo stesso con i 2.106 popoli non raggiunti: 27 liste di circa cinquanta-cento. Ogni lista si stampa come pacchetto di preghiera e manifesto, così 27 discepoli, chiese o responsabili locali ne portano una ciascuno — pregando per loro ",upg100WallIntroEmph:"con il nome del loro popolo",upg100WallIntroB:".",loadingNamed:"Caricamento di {name}…",couldNotLoadNamed:"Impossibile caricare {name}.",engineMissing:"Il motore di mappa {engine} non è stato caricato.",packetFailed:"Libretto non riuscito: {reason}",selectionPacketFailed:"Libretto della selezione non riuscito: {reason}",posterOneTerritory:"Il manifesto stampa un territorio alla volta — {count} selezionati.",selectionPosterFailed:"Manifesto della selezione non riuscito: {reason}",mapUnavailable:"Mappa non disponibile",copied:"Copiato!",copyFailed:"Copia non riuscita — premi Ctrl/Cmd-C",engineNotLoaded:"motore di mappe non caricato",engineNotLoadedDetail:"Il motore di mappe {engine} non si è caricato. L’elenco e la legenda non sono interessati.",viewLoadFailed:"Impossibile caricare questa vista.",retry:"Riprova",noMapboxToken:"Nessun token Mapbox",noMapboxTokenDetail:"Nessun token Mapbox configurato. L’elenco e la legenda non sono interessati.",loadingBoundaries:"Caricamento dei confini…",fetchingUupgs:"Recupero di {n} UUPG…",mapStatusCounts:"Aree: {polys} · zone: {zones}/{total} · segnaposto: {pins}",tapTerritoriesHint:"Tocca i territori sulla mappa o le righe della legenda per aggiungerli · tocca di nuovo per rimuoverli",territoriesSelected:"Territori: {count}",bandInRange:"✓ fascia 50–100",bandOutOfRange:"fascia 50–100",mapContextLost:"Questa mappa è stata scaricata per liberare memoria grafica.",nOfTotal:"{n} su {total}",mapInitFailed:"Impossibile inizializzare la mappa — controlla il token e il contenitore",countryWallIntroA:"Un poster per paese, pronto da pregare, stampare e appendere al muro — pregando per loro ",countryWallIntroB:". Regioni e paesi sono ordinati in base a quanti popoli non raggiunti contengono, perché il bisogno più grande venga per primo.",countryWallSoon:"Prossimamente: per ogni paese verrà generata una lista di preghiera con il nome di ogni popolo non raggiunto che vi abita.",countryWallHeading:"Poster per paese — Liste di preghiera e manifesti",largerScreenNotice:"Questa mappa sperimentale è pensata per schermi grandi. Si apre qui, ma alcune parti potrebbero non entrare o non funzionare bene su un telefono.",desktopOnlyNotice:"{label} funziona solo su desktop: apri questa pagina da un computer per usarlo.",noticeDismiss:"Chiudi",countryPosterTooMany:"Troppi popoli per stare in modo leggibile su un solo manifesto: una soluzione è in arrivo."},"./locales/pt/buttons.json":{prayForThem:"Ore por eles",adoptThem:"Adote-os",moreInfo:"Mais informações",zoomIn:"Ampliar",zoomOut:"Reduzir",switchToLightMode:"Mudar para modo claro",switchToDarkMode:"Mudar para modo escuro",resetView:"Repor vista",toggleFullscreen:"Alternar ecrã inteiro",aboutThisMap:"Sobre este mapa",closeMenu:"Fechar menu",reloadMap:"Recarregar mapa",showClusters:"Mostrar clusters",clusterSettings:"Definições de clusters",startAutoFly:"Iniciar voo automático",stopFlight:"Parar voo",speedLabel:"Velocidade:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Partilhar e incorporar",posterMap:"Mapa do cartaz",prayerList:"Lista de oração",cardDeck:"Baralho de cartões",printOptions:"Opções de impressão",showOnMap:"Ver no mapa",close:"Fechar",showOnMapAria:"Ver {label} no mapa",cardStockAria:"Tamanho do cartão de oração",previewPrintPoster:"Pré-visualizar e imprimir o cartaz de {label}",share:"Partilhar",shareSteps:["Incorpore este mapa no seu site","Faça uma lista dos sites da sua cidade","Ensine-os a incorporá-lo também","Ensine-os a ensinar outros a incorporá-lo","Multipliquemos mapas por toda a parte para Jesus!"],clearSelection:"Limpar a seleção",noOptions:"Nenhuma opção encontrada",renderingLocal:"Uma imagem com qualidade de impressão está a ser gerada no seu navegador — nada é enviado.",postersPerRow:"Cartazes por linha",packetVariantAria:"Detalhe do pacote de oração",packetFull:"Detalhe completo",packetLightweight:"Leve",working:"Processando…",postersPerRowAuto:"Automático"},"./locales/pt/grid.json":{search:"Pesquisar povos…",hide_filters:"Ocultar filtros",show_filters:"Mostrar filtros",total:"Total",showing:"Mostrando",load_more:"Carregar mais",full_profile:"Perfil completo",wagf_region:"Região",wagf_block:"Bloco de afinidade",rop1:"Povo",religion:"Religião",exact_filter:"Exato",clear_all:"Limpar tudo",loading:"A carregar…",no_results:"Nenhum povo corresponde a este filtro.",type_to_search:"Escreva para pesquisar...",load_failed:"Não foi possível carregar os dados dos povos. É um problema de ligação, não do seu filtro.",search_people_or_countries:"Pesquisar povos ou países…",cards_per_row:"Cartões por linha",cards_per_row_auto:"Automático"},"./locales/pt/messages.json":{menuComingSoon:"Menu em breve",pinHint:{tapDot:"Toque num ponto colorido — alguém ainda precisa de oração"},upg100WallHeading:"Minha lista UPG 100 — Listas de oração e cartazes",upg100WallTag:"Mobilização de oração",upg100WallIntroA:"Como você alimentaria uma multidão de cinco mil? Jesus os sentou em grupos de cinquenta e de cem, e o impossível tornou-se compartilhável (Lucas 9.14). Fizemos o mesmo com os 2.106 povos não alcançados: 27 listas de cerca de cinquenta a cem. Cada lista imprime como pacote de oração e cartaz, para que 27 discípulos, igrejas ou líderes locais levem uma cada um — orando por eles ",upg100WallIntroEmph:"pelo nome do seu povo",upg100WallIntroB:".",loadingNamed:"Carregando {name}…",couldNotLoadNamed:"Não foi possível carregar {name}.",engineMissing:"O motor de mapa {engine} não foi carregado.",packetFailed:"Falha ao gerar o caderno: {reason}",selectionPacketFailed:"Falha ao gerar o caderno da seleção: {reason}",posterOneTerritory:"O cartaz imprime um território de cada vez — {count} selecionados.",selectionPosterFailed:"Falha ao gerar o cartaz da seleção: {reason}",mapUnavailable:"Mapa indisponível",copied:"Copiado!",copyFailed:"Falha ao copiar — pressione Ctrl/Cmd-C",engineNotLoaded:"motor de mapas não carregado",engineNotLoadedDetail:"O motor de mapas {engine} não carregou. A lista e a legenda não são afetadas.",viewLoadFailed:"Não foi possível carregar esta visualização.",retry:"Tentar novamente",noMapboxToken:"Nenhum token do Mapbox",noMapboxTokenDetail:"Nenhum token do Mapbox configurado. A lista e a legenda não são afetadas.",loadingBoundaries:"Carregando limites…",fetchingUupgs:"Buscando {n} UUPGs…",mapStatusCounts:"Áreas: {polys} · zonas: {zones}/{total} · marcadores: {pins}",tapTerritoriesHint:"Toque em territórios no mapa ou em linhas da legenda para adicionar · toque de novo para remover",territoriesSelected:"Territórios: {count}",bandInRange:"✓ faixa 50–100",bandOutOfRange:"faixa 50–100",mapContextLost:"Este mapa foi descarregado para libertar memória gráfica.",nOfTotal:"{n} de {total}",mapInitFailed:"Falha ao iniciar o mapa — verifique o token e o contêiner",countryWallIntroA:"Um cartaz por país, pronto para orar, imprimir e pendurar na parede — orando por eles ",countryWallIntroB:". As regiões e os países são ordenados pelo número de povos não engajados que abrigam, para que a maior necessidade venha primeiro.",countryWallSoon:"Em breve: será gerada uma lista de oração para cada país, com o nome de cada povo não alcançado nele.",countryWallHeading:"Cartazes por país — Listas de oração e cartazes",largerScreenNotice:"Este mapa experimental foi feito para telas maiores. Ele abre aqui, mas algumas partes podem não caber ou não funcionar bem no celular.",desktopOnlyNotice:"{label} só funciona no computador — abra esta página num computador para usá-lo.",noticeDismiss:"Fechar",countryPosterTooMany:"Povos demais para caber de forma legível em um só cartaz — uma solução está a caminho."},"./locales/ro/buttons.json":{prayForThem:"Roagă-te pentru ei",adoptThem:"Adoptă-i",moreInfo:"Mai multe informații",zoomIn:"Mărește",zoomOut:"Micșorează",switchToLightMode:"Comută la modul luminos",switchToDarkMode:"Comută la modul întunecat",resetView:"Resetează vizualizarea",toggleFullscreen:"Comută ecran complet",aboutThisMap:"Despre această hartă",closeMenu:"Închide meniul",reloadMap:"Reîncarcă harta",showClusters:"Arată clusterele",clusterSettings:"Setări clustere",startAutoFly:"Pornește zborul automat",stopFlight:"Oprește zborul",speedLabel:"Viteză:",speedOption:{slow:"Lent",normal:"Normal",fast:"Rapid"},shareEmbed:"Partajează și încorporează",posterMap:"Harta afișului",prayerList:"Listă de rugăciune",cardDeck:"Pachet de cartonașe",printOptions:"Opțiuni de tipărire",showOnMap:"Arată pe hartă",close:"Închide",showOnMapAria:"Arată {label} pe hartă",cardStockAria:"Dimensiunea cardului de rugăciune",previewPrintPoster:"Previzualizează și tipărește posterul {label}",share:"Distribuie",shareSteps:["Încorporează această hartă pe site-ul tău","Fă o listă cu site-urile din orașul tău","Învață-i să o încorporeze și ei","Învață-i să îi formeze pe alții să o încorporeze","Să multiplicăm hărți pretutindeni pentru Isus!"],clearSelection:"Șterge selecția",noOptions:"Nicio opțiune găsită",renderingLocal:"O imagine de calitate pentru tipar este generată în browserul tău — nimic nu este încărcat.",postersPerRow:"Postere pe rând",packetVariantAria:"Nivelul de detaliu al pachetului de rugăciune",packetFull:"Detaliu complet",packetLightweight:"Redus",working:"Se procesează…",postersPerRowAuto:"Automat"},"./locales/ro/grid.json":{search:"Caută popoare…",hide_filters:"Ascunde filtrele",show_filters:"Arată filtrele",total:"Total",showing:"Se afișează",load_more:"Încarcă mai mult",full_profile:"Profil complet",wagf_region:"Regiune",wagf_block:"Bloc de afinitate",rop1:"Popor",religion:"Religie",exact_filter:"Exact",clear_all:"Șterge tot",loading:"Se încarcă…",no_results:"Niciun popor nu corespunde acestui filtru.",type_to_search:"Scrie pentru a căuta...",load_failed:"Datele despre popoare nu au putut fi încărcate. Este o problemă de conexiune, nu a filtrului.",search_people_or_countries:"Caută popoare sau țări…",cards_per_row:"Carduri pe rând",cards_per_row_auto:"Automat"},"./locales/ro/messages.json":{menuComingSoon:"Meniu în curând",pinHint:{tapDot:"Atinge un punct colorat — cineva are încă nevoie de rugăciune"},upg100WallHeading:"Lista mea UPG 100 — Liste de rugăciune și afișe",upg100WallTag:"Mobilizare pentru rugăciune",upg100WallIntroA:"Cum ai hrăni o mulțime de cinci mii? Isus i-a așezat în grupuri de cincizeci și de o sută, iar imposibilul a devenit împărțibil (Luca 9:14). Am făcut la fel cu cele 2.106 popoare neatinse: 27 de liste de aproximativ cincizeci până la o sută. Fiecare listă se tipărește ca pachet de rugăciune și afiș, ca 27 de ucenici, biserici sau lideri locali să poarte fiecare câte una — rugându-se pentru ei ",upg100WallIntroEmph:"pe numele poporului lor",upg100WallIntroB:".",loadingNamed:"Se încarcă {name}…",couldNotLoadNamed:"Nu s-a putut încărca {name}.",engineMissing:"Motorul de hartă {engine} nu s-a încărcat.",packetFailed:"Broșura a eșuat: {reason}",selectionPacketFailed:"Broșura selecției a eșuat: {reason}",posterOneTerritory:"Afișul tipărește un teritoriu pe rând — {count} selectate.",selectionPosterFailed:"Afișul selecției a eșuat: {reason}",mapUnavailable:"Harta indisponibilă",copied:"Copiat!",copyFailed:"Copierea a eșuat — apasă Ctrl/Cmd-C",engineNotLoaded:"motorul de hărți nu s-a încărcat",engineNotLoadedDetail:"Motorul de hărți {engine} nu s-a încărcat. Lista și legenda nu sunt afectate.",viewLoadFailed:"Această vizualizare nu s-a putut încărca.",retry:"Reîncearcă",noMapboxToken:"Niciun token Mapbox",noMapboxTokenDetail:"Nu este configurat niciun token Mapbox. Lista și legenda nu sunt afectate.",loadingBoundaries:"Se încarcă granițele…",fetchingUupgs:"Se preiau {n} UUPG…",mapStatusCounts:"Suprafețe: {polys} · zone: {zones}/{total} · repere: {pins}",tapTerritoriesHint:"Atingeți teritorii pe hartă sau rânduri din legendă pentru a le adăuga · atingeți din nou pentru a le elimina",territoriesSelected:"Teritorii: {count}",bandInRange:"✓ interval 50–100",bandOutOfRange:"interval 50–100",mapContextLost:"Această hartă a fost descărcată pentru a elibera memoria grafică.",nOfTotal:"{n} din {total}",mapInitFailed:"Harta nu a putut fi inițializată — verificați tokenul și containerul",countryWallIntroA:"Câte un afiș pentru fiecare țară, gata de rugăciune, de tipărit și de pus pe perete — rugându-ne pentru ei ",countryWallIntroB:". Regiunile și țările sunt ordonate după câte popoare neatinse cuprind, pentru ca nevoia cea mai mare să fie prima.",countryWallSoon:"În curând: pentru fiecare țară va fi generată o listă de rugăciune care numește fiecare popor neatins din ea.",countryWallHeading:"Afișe pe țări — Liste de rugăciune și afișe",largerScreenNotice:"Această hartă experimentală este făcută pentru ecrane mari. Se deschide aici, dar unele părți s-ar putea să nu încapă sau să nu funcționeze bine pe telefon.",desktopOnlyNotice:"{label} funcționează doar pe desktop — deschideți pagina pe un computer pentru a-l folosi.",noticeDismiss:"Închide",countryPosterTooMany:"Prea multe popoare pentru a încăpea lizibil pe un singur afiș — lucrăm la o soluție."},"./locales/ru/buttons.json":{prayForThem:"Молитесь о них",adoptThem:"Усыновите их",moreInfo:"Подробнее",zoomIn:"Приблизить",zoomOut:"Отдалить",switchToLightMode:"Переключить на светлый режим",switchToDarkMode:"Переключить на тёмный режим",resetView:"Сбросить вид",toggleFullscreen:"Полноэкранный режим",aboutThisMap:"Об этой карте",closeMenu:"Закрыть меню",reloadMap:"Перезагрузить карту",showClusters:"Показать кластеры",clusterSettings:"Настройки кластеров",startAutoFly:"Начать авто-полёт",stopFlight:"Остановить полёт",speedLabel:"Скорость:",speedOption:{slow:"Медленно",normal:"Нормально",fast:"Быстро"},shareEmbed:"Поделиться и встроить",posterMap:"Карта плаката",prayerList:"Молитвенный список",cardDeck:"Набор карточек",printOptions:"Параметры печати",showOnMap:"Показать на карте",close:"Закрыть",showOnMapAria:"Показать {label} на карте",cardStockAria:"Размер молитвенной карточки",previewPrintPoster:"Просмотр и печать плаката {label}",share:"Поделиться",shareSteps:["Разместите эту карту на своём сайте","Составьте список сайтов вашего города","Научите их тоже размещать её","Научите их учить других размещать её","Умножим карты повсюду для Иисуса!"],clearSelection:"Снять выделение",noOptions:"Ничего не найдено",renderingLocal:"Изображение типографского качества создаётся в вашем браузере — ничего не загружается на сервер.",postersPerRow:"Плакатов в ряду",packetVariantAria:"Детализация молитвенного пакета",packetFull:"Полная версия",packetLightweight:"Краткая версия",working:"Выполняется…",postersPerRowAuto:"Авто"},"./locales/ru/grid.json":{search:"Поиск народов…",hide_filters:"Скрыть фильтры",show_filters:"Показать фильтры",total:"Всего",showing:"Показано",load_more:"Показать ещё",full_profile:"Полный профиль",wagf_region:"Регион",wagf_block:"Блок родства",rop1:"Народ",religion:"Религия",exact_filter:"Точное совпадение",clear_all:"Очистить всё",loading:"Загрузка…",no_results:"Нет народов, соответствующих этому фильтру.",type_to_search:"Введите для поиска...",load_failed:"Не удалось загрузить данные о народах. Это проблема соединения, а не фильтра.",search_people_or_countries:"Поиск народов или стран…",cards_per_row:"Карточек в ряду",cards_per_row_auto:"Авто"},"./locales/ru/messages.json":{menuComingSoon:"Меню скоро появится",pinHint:{tapDot:"Нажмите на цветную точку — кому-то всё ещё нужна молитва"},upg100WallHeading:"Мой список UPG 100 — молитвенные списки и плакаты",upg100WallTag:"Молитвенная мобилизация",upg100WallIntroA:"Как накормить толпу в пять тысяч человек? Иисус рассадил их группами по пятьдесят и по сто, и невозможное стало посильным (Лк. 9:14). Мы поступили так же с 2 106 неохваченными народами: 27 списков примерно по пятьдесят-сто. Каждый список печатается как молитвенный пакет и плакат, чтобы 27 учеников, церквей или местных служителей взяли по одному — молясь о них ",upg100WallIntroEmph:"по имени их народа",upg100WallIntroB:".",loadingNamed:"Загрузка {name}…",couldNotLoadNamed:"Не удалось загрузить {name}.",engineMissing:"Картографический движок {engine} не загрузился.",packetFailed:"Не удалось создать буклет: {reason}",selectionPacketFailed:"Не удалось создать буклет выбора: {reason}",posterOneTerritory:"Плакат печатает по одной территории — выбрано {count}.",selectionPosterFailed:"Не удалось создать плакат выбора: {reason}",mapUnavailable:"Карта недоступна",copied:"Скопировано!",copyFailed:"Не удалось скопировать — нажмите Ctrl/Cmd-C",engineNotLoaded:"движок карты не загружен",engineNotLoadedDetail:"Движок карты {engine} не загрузился. Список и легенда не затронуты.",viewLoadFailed:"Не удалось загрузить этот раздел.",retry:"Повторить",noMapboxToken:"Нет токена Mapbox",noMapboxTokenDetail:"Токен Mapbox не настроен. Список и легенда не затронуты.",loadingBoundaries:"Загрузка границ…",fetchingUupgs:"Загрузка UUPG: {n}…",mapStatusCounts:"Области: {polys} · зоны: {zones}/{total} · метки: {pins}",tapTerritoriesHint:"Нажимайте на территории на карте или строки легенды, чтобы добавить · нажмите ещё раз, чтобы убрать",territoriesSelected:"Территории: {count}",bandInRange:"✓ диапазон 50–100",bandOutOfRange:"диапазон 50–100",mapContextLost:"Эта карта выгружена, чтобы освободить графическую память.",nOfTotal:"{n} из {total}",mapInitFailed:"Не удалось инициализировать карту — проверьте токен и контейнер",countryWallIntroA:"Один плакат на страну — чтобы молиться, распечатать и повесить на стену, молясь за них ",countryWallIntroB:". Регионы и страны упорядочены по числу неохваченных народов, чтобы самая большая нужда стояла первой.",countryWallSoon:"Скоро: для каждой страны будет создан молитвенный список с названием каждого неохваченного народа в ней.",countryWallHeading:"Плакаты по странам — молитвенные списки и плакаты",largerScreenNotice:"Эта экспериментальная карта рассчитана на большие экраны. Она откроется, но на телефоне часть элементов может не поместиться или работать плохо.",desktopOnlyNotice:"{label} работает только на компьютере — откройте эту страницу на компьютере.",noticeDismiss:"Закрыть",countryPosterTooMany:"Слишком много народов, чтобы разборчиво уместить их на одном плакате, — решение готовится."},"./locales/zh/buttons.json":{prayForThem:"为他们祷告",adoptThem:"认领他们",moreInfo:"更多信息",zoomIn:"放大",zoomOut:"缩小",switchToLightMode:"切换至浅色模式",switchToDarkMode:"切换至深色模式",resetView:"重置视图",toggleFullscreen:"切换全屏",aboutThisMap:"关于此地图",closeMenu:"关闭菜单",reloadMap:"重新加载地图",showClusters:"显示聚类",clusterSettings:"聚类设置",startAutoFly:"开始自动飞行",stopFlight:"停止飞行",speedLabel:"速度:",speedOption:{slow:"慢",normal:"正常",fast:"快"},shareEmbed:"分享与嵌入",posterMap:"海报地图",prayerList:"祷告名单",cardDeck:"祷告卡组",printOptions:"打印选项",showOnMap:"在地图上显示",close:"关闭",showOnMapAria:"在地图上显示 {label}",cardStockAria:"祷告卡片尺寸",previewPrintPoster:"预览并打印 {label} 海报",share:"分享",shareSteps:["把这张地图嵌入你的网站","列出你城市里的网站","教他们也嵌入这张地图","教他们去教别人嵌入","为耶稣让地图遍地繁增!"],clearSelection:"清除选择",noOptions:"未找到选项",renderingLocal:"正在您的浏览器中生成可打印质量的图片——不会上传任何内容。",postersPerRow:"每行海报数",packetVariantAria:"祷告手册详细程度",packetFull:"完整版",packetLightweight:"精简版",working:"处理中…",postersPerRowAuto:"自动"},"./locales/zh/grid.json":{search:"搜索民族…",hide_filters:"隐藏筛选",show_filters:"显示筛选",total:"总计",showing:"显示",load_more:"加载更多",full_profile:"完整档案",wagf_region:"区域",wagf_block:"亲缘板块",rop1:"民族",religion:"宗教",exact_filter:"精确",clear_all:"全部清除",loading:"加载中…",no_results:"没有符合此筛选条件的民族。",type_to_search:"输入以搜索...",load_failed:"无法加载民族数据。这是连接问题,而不是筛选问题。",search_people_or_countries:"搜索民族或国家…",cards_per_row:"每行卡片数",cards_per_row_auto:"自动"},"./locales/zh/messages.json":{menuComingSoon:"菜单即将推出",pinHint:{tapDot:"点按一个彩色圆点——仍有人需要祷告"},upg100WallHeading:"我的 UPG 100 名单 — 祷告名单与海报",upg100WallTag:"祷告动员",upg100WallIntroA:"你会怎样喂饱五千人的群众?耶稣让他们一排五十、一排一百地坐下,不可能的事就变得可以分担了(路加福音 9:14)。我们对 2,106 个未得之民做了同样的事:27 份名单,每份约五十到一百。每份名单都能印成祷告手册和海报,让 27 位门徒、教会或当地领袖各领一份 — 为他们祷告 ",upg100WallIntroEmph:"称呼他们族群的名字",upg100WallIntroB:"。",loadingNamed:"正在加载{name}…",couldNotLoadNamed:"无法加载{name}。",engineMissing:"{engine} 地图引擎未能加载。",packetFailed:"祷告册生成失败:{reason}",selectionPacketFailed:"所选内容的祷告册生成失败:{reason}",posterOneTerritory:"海报一次只能打印一个区域——已选 {count} 个。",selectionPosterFailed:"所选内容的海报生成失败:{reason}",mapUnavailable:"地图不可用",copied:"已复制!",copyFailed:"复制失败——请按 Ctrl/Cmd-C",engineNotLoaded:"地图引擎未加载",engineNotLoadedDetail:"{engine} 地图引擎未能加载。列表和图例不受影响。",viewLoadFailed:"此视图无法加载。",retry:"重试",noMapboxToken:"没有 Mapbox 令牌",noMapboxTokenDetail:"未配置 Mapbox 令牌。列表和图例不受影响。",loadingBoundaries:"正在加载边界…",fetchingUupgs:"正在获取 {n} 个 UUPG…",mapStatusCounts:"区域:{polys} · 分区:{zones}/{total} · 标记:{pins}",tapTerritoriesHint:"点按地图上的区域或图例行即可添加 · 再次点按即可移除",territoriesSelected:"区域:{count}",bandInRange:"✓ 50–100 区间",bandOutOfRange:"50–100 区间",mapContextLost:"已卸载此地图以释放显存。",nOfTotal:"{total} 个中的 {n} 个",mapInitFailed:"地图初始化失败——请检查令牌和容器",countryWallIntroA:"每个国家一张海报,可用来祷告、打印、贴在墙上——为他们祷告,",countryWallIntroB:"。各区域和国家按其中未得之民族群的数量排序,让最大的需要排在最前。",countryWallSoon:"即将推出:将为每个国家生成一份祷告名单,列出其中每一个未得之民族群的名字。",countryWallHeading:"国家海报 — 祷告名单与海报",largerScreenNotice:"这张实验性地图为大屏幕设计。它可以在这里打开,但部分内容在手机上可能显示不全或无法正常使用。",desktopOnlyNotice:"{label} 仅支持桌面端——请在电脑上打开此页面使用。",noticeDismiss:"关闭",countryPosterTooMany:"族群数量过多,无法清晰地放在一张海报上——我们正在制定解决方案。"}}),Je={};for(const[e,t]of Object.entries(dl)){const o=e.match(/\.\/locales\/([^/]+)\/([^/]+)\.json$/);if(!o)continue;const[,n,s]=o;Je[n]??(Je[n]={}),Je[n][s]=t}const _r=(()=>{try{const e=typeof document<"u"&&document.currentScript&&document.currentScript.src||"";return e?e.split(/[?#]/)[0].replace(/[^/]+$/,""):""}catch{return""}})(),yr=typeof __DX_LOCALE_SRI__<"u"?__DX_LOCALE_SRI__:{},_n=new Map;let wr=null;function ul(e,t){const o=String(t||"").split("-")[0].toLowerCase();if(!o||o==="en"||!yn.includes(o))return Promise.resolve(o==="en");if(Je[o])return Promise.resolve(!0);if(_n.has(o))return _n.get(o).then(s=>s);if(!yr[o])return Promise.resolve(!!Je[o]);const n=(async()=>{var s,r;try{if(!_r)return!1;const a=new URL(`locales/${o}.json`,_r).href,i=await fetch(a,{integrity:yr[o]});if(!i.ok)return!1;const l=await i.json();return!l||typeof l!="object"?!1:(Je[o]=l,(r=(s=e==null?void 0:e.global)==null?void 0:s.setLocaleMessage)==null||r.call(s,o,l),!0)}catch{return!1}})();return _n.set(o,n),n}const yn=["ar","de","en","es","fr","hi","it","pt","ro","ru","zh"];function fl(){try{const e=new URLSearchParams(window.location.search);return(e.get("lang")||e.get("locale")||"").split("-")[0].toLowerCase()}catch{return""}}function xr(){var n;const e=fl();if(yn.includes(e))return e;const o=(((n=document==null?void 0:document.documentElement)==null?void 0:n.lang)||"").split("-")[0].toLowerCase();return yn.includes(o)?o:"en"}try{wr=ul(null,xr())}catch{wr=null}const hl="__DOXA_PAGE_LOCALE",gl=["zero","one","two","few","many","other"];function ml(e,t,o){let n;try{n=new Intl.PluralRules(o)}catch{return e===1?0:1}const s=n.select(e),r=n.resolvedOptions().pluralCategories,a=gl.filter(l=>r.includes(l));let i=a.indexOf(s);if(i<0&&(i=a.indexOf("other")),i>=t){const l=a.indexOf("other");i=l>=0&&l[e,(t,o)=>ml(t,o,e)]));function $l(){try{return typeof window<"u"&&window[hl]||""}catch{return""}}function bl(e,t){const o=s=>{let r=Je[s];for(const a of String(e).split(".")){if(!r||typeof r!="object")return;r=r[a]}return typeof r=="string"?r:void 0},n=$l()||xr();return o(n)??o("en")}function vl(e,t){const o=Zs(),n=t;en(()=>{var l;if(!o)return;const s=(l=o.proxy)==null?void 0:l.$el;if(!s)return;const r=s.getRootNode();if(!(r instanceof ShadowRoot))return;if(!r.querySelector('style[data-shadow-styles="reduced-motion"]')){const p=document.createElement("style");p.setAttribute("data-shadow-styles","reduced-motion"),p.textContent=_l,r.appendChild(p)}const a=r.querySelector(`style[data-shadow-styles="${n}"]`);if(a){a.textContent!==e&&(a.textContent=e);return}const i=document.createElement("style");i.setAttribute("data-shadow-styles",n),i.textContent=e,r.appendChild(i)})}const _l=`@media (prefers-reduced-motion: reduce) { +**/let _n;const aa=typeof window<"u"&&window.trustedTypes;if(aa)try{_n=aa.createPolicy("vue",{createHTML:e=>e})}catch{}const ra=_n?e=>_n.createHTML(e):e=>e,Di="http://www.w3.org/2000/svg",zi="http://www.w3.org/1998/Math/MathML",qe=typeof document<"u"?document:null,ia=qe&&qe.createElement("template"),Hi={insert:(e,t,o)=>{t.insertBefore(e,o||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,o,n)=>{const s=t==="svg"?qe.createElementNS(Di,e):t==="mathml"?qe.createElementNS(zi,e):o?qe.createElement(e,{is:o}):qe.createElement(e);return e==="select"&&n&&n.multiple!=null&&s.setAttribute("multiple",n.multiple),s},createText:e=>qe.createTextNode(e),createComment:e=>qe.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>qe.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,o,n,s,a){const i=o?o.previousSibling:t.lastChild;if(s&&(s===a||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),o),!(s===a||!(s=s.nextSibling)););else{ia.innerHTML=ra(n==="svg"?`${e}`:n==="mathml"?`${e}`:e);const r=ia.content;if(n==="svg"||n==="mathml"){const l=r.firstChild;for(;l.firstChild;)r.appendChild(l.firstChild);r.removeChild(l)}t.insertBefore(r,o)}return[i?i.nextSibling:t.firstChild,o?o.previousSibling:t.lastChild]}},Bi=Symbol("_vtc");function Ui(e,t,o){const n=e[Bi];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):o?e.setAttribute("class",t):e.className=t}const yo=Symbol("_vod"),la=Symbol("_vsh"),bn={name:"show",beforeMount(e,{value:t},{transition:o}){e[yo]=e.style.display==="none"?"":e.style.display,o&&t?o.beforeEnter(e):Rt(e,t)},mounted(e,{value:t},{transition:o}){o&&t&&o.enter(e)},updated(e,{value:t,oldValue:o},{transition:n}){!t!=!o&&(n?t?(n.beforeEnter(e),Rt(e,!0),n.enter(e)):n.leave(e,()=>{Rt(e,!1)}):Rt(e,t))},beforeUnmount(e,{value:t}){Rt(e,t)}};function Rt(e,t){e.style.display=t?e[yo]:"none",e[la]=!t}const ji=Symbol(""),Vi=/(?:^|;)\s*display\s*:/;function qi(e,t,o){const n=e.style,s=G(o);let a=!1;if(o&&!s){if(t)if(G(t))for(const i of t.split(";")){const r=i.slice(0,i.indexOf(":")).trim();o[r]==null&&Wt(n,r,"")}else for(const i in t)o[i]==null&&Wt(n,i,"");for(const i in o){i==="display"&&(a=!0);const r=o[i];r!=null?Gi(e,i,!G(t)&&t?t[i]:void 0,r)||Wt(n,i,r):Wt(n,i,"")}}else if(s){if(t!==o){const i=n[ji];i&&(o+=";"+i),n.cssText=o,a=Vi.test(o)}}else t&&e.removeAttribute("style");yo in e&&(e[yo]=a?n.display:"",e[la]&&(n.display="none"))}const wo=/\s*!important$/;function Wt(e,t,o){if(O(o))o.forEach(n=>Wt(e,t,n));else if(o==null&&(o=""),t.startsWith("--"))wo.test(o)?e.setProperty(t,o.replace(wo,""),"important"):e.setProperty(t,o);else{const n=Ki(e,t);wo.test(o)?e.setProperty(me(n),o.replace(wo,""),"important"):e[n]=o}}const ca=["Webkit","Moz","ms"],vn={};function Ki(e,t){const o=vn[t];if(o)return o;let n=oe(t);if(n!=="filter"&&n in e)return vn[t]=n;n=Gt(n);for(let s=0;syn||(tl.then(()=>yn=0),yn=Date.now());function nl(e,t){const o=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=o.attached)return;const s=o.value;if(O(s)){const a=n.stopImmediatePropagation;n.stopImmediatePropagation=()=>{a.call(n),n._stopped=!0};const i=s.slice(),r=[n];for(let l=0;le.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,sl=(e,t,o,n,s,a)=>{const i=s==="svg";t==="class"?Ui(e,n,i):t==="style"?qi(e,o,n):Ut(t)?jt(t)||Zi(e,t,o,n,a):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):al(e,t,n,i))?(ua(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&pa(e,t,n,i,a,t!=="value")):e._isVueCE&&(rl(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!G(n)))?ua(e,oe(t),n,a,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),pa(e,t,n,i))};function al(e,t,o,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&ga(t)&&P(o));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return ga(t)&&G(o)?!1:t in e}function rl(e,t){const o=e._def.props;if(!o)return!1;const n=oe(t);return Array.isArray(o)?o.some(s=>oe(s)===n):Object.keys(o).some(s=>oe(s)===n)}const ha={};function il(e,t,o){let n=nn(e,t);qt(n)&&(n=Z({},n,t));class s extends wn{constructor(i){super(n,i,o)}}return s.def=n,s}const ll=typeof HTMLElement<"u"?HTMLElement:class{};class wn extends ll{constructor(t,o={},n=_a){super(),this._def=t,this._props=o,this._createApp=n,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._patching=!1,this._dirty=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._styleAnchors=new WeakMap,this._ob=null,this.shadowRoot&&n!==_a?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(Z({},t.shadowRootOptions,{mode:"open"})),this._root=this.shadowRoot):this._root=this}connectedCallback(){if(!this.isConnected)return;!this.shadowRoot&&!this._resolved&&this._parseSlots(),this._connected=!0;let t=this;for(;t=t&&(t.assignedSlot||t.parentNode||t.host);)if(t instanceof wn){this._parent=t;break}this._instance||(this._resolved?this._mount(this._def):t&&t._pendingResolve?this._pendingResolve=t._pendingResolve.then(()=>{if(this._pendingResolve=void 0,this.isConnected)return this._resolveDef()}):this._resolveDef())}_setParent(t=this._parent){t&&(this._instance.parent=t._instance,this._inheritParentContext(t))}_inheritParentContext(t=this._parent){t&&this._app&&Object.setPrototypeOf(this._app._context.provides,t._instance.provides)}disconnectedCallback(){this._connected=!1,is(()=>{this._connected||(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(t){for(const o of t)this._setAttr(o.attributeName)}_resolveDef(){if(this._pendingResolve)return this._pendingResolve;for(let n=0;n{this._resolved=!0,this._pendingResolve=void 0;const{props:a,styles:i}=n;let r;if(a&&!O(a))for(const l in a){const d=a[l];(d===Number||d&&d.type===Number)&&(l in this._props&&(this._props[l]=Fn(this._props[l])),(r||(r=Object.create(null)))[oe(l)]=!0)}this._numberProps=r,this._resolveProps(n),this.shadowRoot&&this._applyStyles(i),this._mount(n)},o=this._def.__asyncLoader;if(o)return this._pendingResolve=o().then(n=>{n.configureApp=this._def.configureApp,t(this._def=n,!0)}),this._pendingResolve;t(this._def)}_mount(t){this._app=this._createApp(t),this._inheritParentContext(),t.configureApp&&t.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);const o=this._instance&&this._instance.exposed;if(o)for(const n in o)D(this,n)||Object.defineProperty(this,n,{get:()=>Zo(o[n])})}_resolveProps(t){const{props:o}=t,n=O(o)?o:Object.keys(o||{});for(const s of Object.keys(this))s[0]!=="_"&&n.includes(s)&&this._setProp(s,this[s]);for(const s of n.map(oe))Object.defineProperty(this,s,{get(){return this._getProp(s)},set(a){this._setProp(s,a,!0,!this._patching)}})}_setAttr(t){if(t.startsWith("data-v-"))return;const o=this.hasAttribute(t);let n=o?this.getAttribute(t):ha;const s=oe(t);o&&this._numberProps&&this._numberProps[s]&&(n=Fn(n)),this._setProp(s,n,!1,!0)}_getProp(t){return this._props[t]}_setProp(t,o,n=!0,s=!1){if(o!==this._props[t]&&(this._dirty=!0,o===ha?delete this._props[t]:(this._props[t]=o,t==="key"&&this._app&&(this._app._ceVNode.key=o)),s&&this._instance&&this._update(),n)){const a=this._ob;a&&(this._processMutations(a.takeRecords()),a.disconnect()),o===!0?this.setAttribute(me(t),""):typeof o=="string"||typeof o=="number"?this.setAttribute(me(t),o+""):o||this.removeAttribute(me(t)),a&&a.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),dl(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const o=ge(this._def,Z(t,this._props));return this._instance||(o.ce=n=>{this._instance=n,n.ce=this,n.isCE=!0;const s=(a,i)=>{this.dispatchEvent(new CustomEvent(a,qt(i[0])?Z({detail:i},i[0]):{detail:i}))};n.emit=(a,...i)=>{s(a,i),me(a)!==a&&s(me(a),i)},this._setParent()}),o}_applyStyles(t,o,n){if(!t)return;if(o){if(o===this._def||this._styleChildren.has(o))return;this._styleChildren.add(o)}const s=this._nonce,a=this.shadowRoot,i=n?this._getStyleAnchor(n)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(a);let r=null;for(let l=t.length-1;l>=0;l--){const d=document.createElement("style");s&&d.setAttribute("nonce",s),d.textContent=t[l],a.insertBefore(d,r||i),r=d,l===0&&(n||this._styleAnchors.set(this._def,d),o&&this._styleAnchors.set(o,d))}}_getStyleAnchor(t){if(!t)return null;const o=this._styleAnchors.get(t);return o&&o.parentNode===this.shadowRoot?o:(o&&this._styleAnchors.delete(t),null)}_getRootStyleInsertionAnchor(t){for(let o=0;o{ma().render(...e)},_a=(...e)=>{const t=ma().createApp(...e),{mount:o}=t;return t.mount=n=>{const s=ul(n);if(!s)return;const a=t._component;!P(a)&&!a.render&&!a.template&&(a.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=o(s,!1,pl(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t};function pl(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function ul(e){return G(e)?document.querySelector(e):e}const fl=".btt[data-v-6a25802e]{position:absolute;z-index:15;inset-inline-start:var(--map-fab-beside, calc(12px + env(safe-area-inset-left)) );bottom:calc(12px + env(safe-area-inset-bottom));width:44px;height:44px;display:flex;align-items:center;justify-content:center;font:18px/1 system-ui;color:#3b463d;background:#fff;border:1px solid var(--vtl-border, #d6d9d2);border-radius:50%;box-shadow:0 2px 10px #0000002e;cursor:pointer}.btt[data-v-6a25802e]:hover{background:#d1d4cd}.btt[data-v-6a25802e]:focus-visible{outline:2px solid var(--vtl-accent, #3b463d);outline-offset:2px}@media (prefers-reduced-motion: reduce){.btt[data-v-6a25802e]{transition:none}}",xo=(e,t)=>{const o=e.__vccOpts||e;for(const[n,s]of t)o[n]=s;return o},gl=["aria-label","title"],ba=xo({__name:"BackToTopButton",props:{target:{type:Object,default:null},threshold:{type:Number,default:400},labels:{type:Object,default:()=>({})}},setup(e){const t=e,o=ns(0),n=ns(!1);function s(){const d=t.target;if(!d){o.value=0,n.value=!1;return}o.value=d.scrollTop||0,n.value=(d.scrollHeight||0)-(d.clientHeight||0)>t.threshold}const a=Et(()=>n.value&&o.value>t.threshold);function i(){const d=t.target;if(!d)return;const p=typeof matchMedia=="function"&&matchMedia("(prefers-reduced-motion: reduce)").matches;d.scrollTo({top:0,behavior:p?"auto":"smooth"})}let r=null;function l(d){r&&(r.removeEventListener("scroll",s),r=null),d&&(d.addEventListener("scroll",s,{passive:!0}),r=d),s()}return an(()=>l(t.target)),lo(()=>t.target,d=>l(d)),vs(()=>l(null)),(d,p)=>a.value?(M(),C("button",{key:0,class:"btt",type:"button","aria-label":e.labels.backToTop||"",title:e.labels.backToTop||"",onClick:i},"↑",8,gl)):ne("",!0)}},[["styles",[fl]],["__scopeId","data-v-6a25802e"]]),hl=Object.assign({"./locales/ar/buttons.json":{prayForThem:"صلِّ من أجلهم",adoptThem:"تبنَّهم",moreInfo:"مزيد من المعلومات",zoomIn:"تكبير",zoomOut:"تصغير",switchToLightMode:"التبديل إلى الوضع الفاتح",switchToDarkMode:"التبديل إلى الوضع الداكن",resetView:"إعادة تعيين العرض",toggleFullscreen:"تبديل ملء الشاشة",aboutThisMap:"حول هذه الخريطة",closeMenu:"إغلاق القائمة",reloadMap:"إعادة تحميل الخريطة",showClusters:"إظهار المجموعات",clusterSettings:"إعدادات المجموعات",startAutoFly:"بدء الطيران التلقائي",stopFlight:"إيقاف الطيران",speedLabel:"السرعة:",speedOption:{slow:"بطيء",normal:"عادي",fast:"سريع"},shareEmbed:"مشاركة وتضمين",posterMap:"خريطة الملصق",prayerList:"قائمة الصلاة",cardDeck:"مجموعة البطاقات",printOptions:"خيارات الطباعة",showOnMap:"أظهر على الخريطة",close:"إغلاق",showOnMapAria:"أظهر {label} على الخريطة",cardStockAria:"حجم بطاقة الصلاة",previewPrintPoster:"معاينة وطباعة ملصق {label}",share:"مشاركة",shareSteps:["ضع هذه الخريطة على موقعك","أعدّ قائمة بمواقع الويب في مدينتك","علّمهم أن يضعوها أيضًا","علّمهم أن يعلّموا غيرهم وضعها","لنكثر الخرائط في كل مكان ليسوع!"],clearSelection:"إلغاء التحديد",noOptions:"لا توجد نتائج",renderingLocal:"يتم إنشاء صورة بجودة الطباعة في متصفحك — لا يتم تحميل أي شيء.",postersPerRow:"الملصقات في كل صف",packetVariantAria:"تفاصيل حزمة الصلاة",packetFull:"تفاصيل كاملة",packetLightweight:"مختصرة",working:"جارٍ العمل…",postersPerRowAuto:"تلقائي"},"./locales/ar/controls.json":{research_controls:"أدوات البحث",clustering:"التجميع",filters:"عوامل التصفية",pin_dim:"خفوت النقاط",export_poster:"تصدير ملصق…",reload_data:"إعادة تحميل البيانات",off:"إيقاف",native:"أصلي",mst:"الشجرة الممتدة",network:"شبكة",off_desc:"إظهار كل نقطة على حدة",native_desc:"تجميع دوائر Mapbox (الأسرع)",mst_desc:"شبكات تقارب بالشجرة الممتدة الصغرى",network_desc:"خطوط ربط بأقرب جار",search_languages:"ابحث عن اللغات…",search_religions:"ابحث عن الأديان…",reset_all:"إعادة تعيين الكل",no_languages:"لم تُحمَّل أي لغات بعد",no_religions:"لم تُحمَّل أي أديان بعد",unadopted:"غير متبنّى",min:"الأدنى",max:"الأعلى",adopted:"متبنَّاة",adoption:"التبني",engaged:"مُخْدُومَة",engagement:"المشاركة",unengaged:"يحتاج إلى انخراط",language:"اللغة",religion:"الدين",population:"السكان",any:"الكل",active_count:"{n} نشط",prayer_status:"حالة الصلاة",close:"إغلاق",clear:"مسح",map_controls:"أدوات التحكم بالخريطة",clusters:"التجمّعات",mst_full_name:"الشجرة الممتدة الصغرى",mst_hint:"اضغط على صف في مفتاح الخريطة لتجميع تلك المجموعة وحدها"},"./locales/ar/grid.json":{search:"ابحث عن الشعوب…",hide_filters:"إخفاء عوامل التصفية",show_filters:"إظهار عوامل التصفية",total:"الإجمالي",showing:"المعروض",load_more:"عرض المزيد",full_profile:"الملف الكامل",wagf_region:"المنطقة",wagf_block:"كتلة التقارب",rop1:"الشعب",religion:"الدين",exact_filter:"تطابق تام",clear_all:"مسح الكل",loading:"جارٍ التحميل…",no_results:"لا توجد شعوب مطابقة لهذا التصفية.",type_to_search:"اكتب للبحث...",load_failed:"تعذّر تحميل بيانات الشعوب. هذه مشكلة اتصال، وليست مشكلة في التصفية.",search_people_or_countries:"ابحث عن الشعوب أو الدول…",cards_per_row:"البطاقات في كل صف",cards_per_row_auto:"تلقائي"},"./locales/ar/messages.json":{menuComingSoon:"القائمة قادمة قريباً",pinHint:{tapDot:"اضغط على نقطة ملوّنة — لا يزال هناك من يحتاج إلى الصلاة"},upg100WallHeading:"قائمتي UPG 100 — قوائم صلاة وملصقات",upg100WallTag:"تعبئة للصلاة",upg100WallIntroA:"كيف تُطعم جمعًا من خمسة آلاف؟ أجلسهم يسوع جماعاتٍ من خمسين ومن مئة، فصار المستحيل قابلًا للمشاركة (لوقا ٩:١٤). فعلنا المثل مع ٢١٠٦ شعوب غير مبلَّغة: ٢٧ قائمة من نحو خمسين إلى مئة. تُطبع كل قائمة حزمةَ صلاة وملصقًا، ليحمل ٢٧ تلميذًا أو كنيسة أو قائدًا محليًا كلٌّ واحدة — مصلّين لأجلهم ",upg100WallIntroEmph:"باسم شعبهم",upg100WallIntroB:".",loadingNamed:"جارٍ تحميل {name}…",couldNotLoadNamed:"تعذّر تحميل {name}.",engineMissing:"لم يتم تحميل محرك الخرائط {engine}.",packetFailed:"فشل إنشاء الكُتيّب: {reason}",selectionPacketFailed:"فشل إنشاء كُتيّب التحديد: {reason}",posterOneTerritory:"الملصق يطبع منطقة واحدة في كل مرة — {count} محددة.",selectionPosterFailed:"فشل إنشاء ملصق التحديد: {reason}",mapUnavailable:"الخريطة غير متاحة",copied:"تم النسخ!",copyFailed:"فشل النسخ — اضغط Ctrl/Cmd-C",engineNotLoaded:"لم يتم تحميل محرك الخريطة",engineNotLoadedDetail:"لم يتم تحميل محرك الخريطة {engine}. القائمة ووسيلة الإيضاح غير متأثرتين.",viewLoadFailed:"تعذّر تحميل هذا العرض.",retry:"إعادة المحاولة",noMapboxToken:"لا يوجد رمز Mapbox",noMapboxTokenDetail:"لم يُضبط أي رمز Mapbox. القائمة ووسيلة الإيضاح غير متأثرتين.",loadingBoundaries:"جارٍ تحميل الحدود…",fetchingUupgs:"جارٍ جلب {n} من UUPG…",mapStatusCounts:"المساحات: {polys} · المناطق: {zones}/{total} · الدبابيس: {pins}",tapTerritoriesHint:"انقر على الأقاليم في الخريطة أو صفوف وسيلة الإيضاح لإضافتها · انقر مجددًا لإزالتها",territoriesSelected:"الأقاليم: {count}",bandInRange:"✓ النطاق 50–100",bandOutOfRange:"النطاق 50–100",mapContextLost:"تم إلغاء تحميل هذه الخريطة لتحرير ذاكرة الرسوميات.",nOfTotal:"{n} من {total}",mapInitFailed:"تعذّر تهيئة الخريطة — تحقّق من الرمز والحاوية",countryWallIntroA:"ملصق لكل دولة، جاهز للصلاة والطباعة والتعليق على الحائط — نصلّي لأجلهم ",countryWallIntroB:". رُتّبت المناطق والدول بحسب عدد الشعوب غير المبلَّغة فيها، لتتقدّم الحاجة الأكبر.",countryWallSoon:"قريبًا: ستُنشأ قائمة صلاة لكل دولة، تسمّي كل شعب غير مبلَّغ فيها.",countryWallHeading:"ملصقات الدول — قوائم صلاة وملصقات",largerScreenNotice:"هذه الخريطة التجريبية مُعدّة للشاشات الكبيرة. تُفتح هنا، لكن بعض أجزائها قد لا يتّسع أو لا يعمل جيدًا على الهاتف.",desktopOnlyNotice:"{label} يعمل على الحاسوب فقط — افتح هذه الصفحة على حاسوب لاستخدامه.",noticeDismiss:"إغلاق",countryPosterTooMany:"عدد الشعوب أكبر من أن يتّسع له ملصق واحد بوضوح — ونعمل على حلّ لذلك."},"./locales/de/buttons.json":{prayForThem:"Für sie beten",adoptThem:"Sie adoptieren",moreInfo:"Mehr Infos",zoomIn:"Vergrößern",zoomOut:"Verkleinern",switchToLightMode:"Zum hellen Modus wechseln",switchToDarkMode:"Zum dunklen Modus wechseln",resetView:"Ansicht zurücksetzen",toggleFullscreen:"Vollbild umschalten",aboutThisMap:"Über diese Karte",closeMenu:"Menü schließen",reloadMap:"Karte neu laden",showClusters:"Cluster anzeigen",clusterSettings:"Cluster-Einstellungen",startAutoFly:"Auto-Flug starten",stopFlight:"Flug stoppen",speedLabel:"Geschwindigkeit:",speedOption:{slow:"Langsam",normal:"Normal",fast:"Schnell"},shareEmbed:"Teilen und einbetten",posterMap:"Posterkarte",prayerList:"Gebetsliste",cardDeck:"Kartenset",printOptions:"Druckoptionen",showOnMap:"Auf der Karte zeigen",close:"Schließen",showOnMapAria:"{label} auf der Karte zeigen",cardStockAria:"Größe der Gebetskarte",previewPrintPoster:"Vorschau und Druck des Posters {label}",share:"Teilen",shareSteps:["Binde diese Karte auf deiner Website ein","Erstelle eine Liste der Websites in deiner Stadt","Zeige ihnen, wie sie sie ebenfalls einbinden","Zeige ihnen, wie sie es anderen beibringen","Lasst uns Karten überall vermehren – für Jesus!"],clearSelection:"Auswahl aufheben",noOptions:"Keine Optionen gefunden",renderingLocal:"Ein druckfähiges Bild wird in deinem Browser erzeugt — es wird nichts hochgeladen.",postersPerRow:"Poster pro Zeile",packetVariantAria:"Detailgrad des Gebetspakets",packetFull:"Vollständig",packetLightweight:"Kompakt",working:"Wird bearbeitet…",postersPerRowAuto:"Automatisch"},"./locales/de/controls.json":{research_controls:"Forschungssteuerung",clustering:"Clustering",filters:"Filter",pin_dim:"Pin-Transparenz",export_poster:"Poster exportieren…",reload_data:"Daten neu laden",off:"Aus",native:"Nativ",mst:"MST",network:"Netzwerk",off_desc:"Jeden Pin einzeln anzeigen",native_desc:"Mapbox-Kreiscluster (am schnellsten)",mst_desc:"Affinitätsnetze über minimalen Spannbaum",network_desc:"Verbindungslinien zum nächsten Nachbarn",search_languages:"Sprachen suchen…",search_religions:"Religionen suchen…",reset_all:"Alles zurücksetzen",no_languages:"Noch keine Sprachen geladen",no_religions:"Noch keine Religionen geladen",unadopted:"Nicht adoptiert",min:"min",max:"max",adopted:"Adoptiert",adoption:"Adoption",engaged:"Engagiert",engagement:"Engagement",unengaged:"Braucht Engagement",language:"Sprache",religion:"Religion",population:"Bevölkerung",any:"Alle",active_count:"{n} aktiv",prayer_status:"Gebetsstatus",close:"Schließen",clear:"Zurücksetzen",map_controls:"Kartensteuerung",clusters:"Cluster",mst_full_name:"Minimaler Spannbaum",mst_hint:"Klicken Sie auf eine Legendenzeile, um nur diese Gruppe zu clustern"},"./locales/de/grid.json":{search:"Volksgruppen suchen…",hide_filters:"Filter ausblenden",show_filters:"Filter anzeigen",total:"Gesamt",showing:"Angezeigt",load_more:"Mehr laden",full_profile:"Vollständiges Profil",wagf_region:"Region",wagf_block:"Affinitätsblock",rop1:"Volk",religion:"Religion",exact_filter:"Exakt",clear_all:"Alle löschen",loading:"Wird geladen…",no_results:"Keine Volksgruppen entsprechen diesem Filter.",type_to_search:"Zum Suchen tippen...",load_failed:"Die Daten konnten nicht geladen werden. Das ist ein Verbindungsproblem, nicht Ihr Filter.",search_people_or_countries:"Volksgruppen oder Länder suchen…",cards_per_row:"Karten pro Zeile",cards_per_row_auto:"Automatisch"},"./locales/de/messages.json":{menuComingSoon:"Menü folgt in Kürze",pinHint:{tapDot:"Tippe auf einen farbigen Punkt — jemand braucht noch Gebet"},upg100WallHeading:"Meine UPG-100-Liste — Gebetslisten und Poster",upg100WallTag:"Gebetsmobilisierung",upg100WallIntroA:"Wie würden Sie eine Menge von fünftausend speisen? Jesus ließ sie in Gruppen zu fünfzig und hundert lagern, und das Unmögliche wurde teilbar (Lukas 9,14). Dasselbe haben wir mit den 2.106 unerreichten Volksgruppen getan: 27 Listen von etwa fünfzig bis hundert. Jede Liste druckt als Gebetspaket und als Poster, damit 27 Jünger, Gemeinden oder einheimische Leiter je eine tragen können — und für sie beten ",upg100WallIntroEmph:"mit dem Namen ihrer Volksgruppe",upg100WallIntroB:".",loadingNamed:"{name} wird geladen…",couldNotLoadNamed:"{name} konnte nicht geladen werden.",engineMissing:"Die Karten-Engine {engine} wurde nicht geladen.",packetFailed:"Heft fehlgeschlagen: {reason}",selectionPacketFailed:"Heft der Auswahl fehlgeschlagen: {reason}",posterOneTerritory:"Das Plakat druckt ein Gebiet auf einmal — {count} ausgewählt.",selectionPosterFailed:"Plakat der Auswahl fehlgeschlagen: {reason}",mapUnavailable:"Karte nicht verfügbar",copied:"Kopiert!",copyFailed:"Kopieren fehlgeschlagen — Strg/Cmd-C drücken",engineNotLoaded:"Karten-Engine nicht geladen",engineNotLoadedDetail:"Die Karten-Engine {engine} wurde nicht geladen. Liste und Legende sind nicht betroffen.",viewLoadFailed:"Diese Ansicht konnte nicht geladen werden.",retry:"Erneut versuchen",noMapboxToken:"Kein Mapbox-Token",noMapboxTokenDetail:"Kein Mapbox-Token konfiguriert. Liste und Legende sind nicht betroffen.",loadingBoundaries:"Grenzen werden geladen…",fetchingUupgs:"{n} UUPGs werden abgerufen…",mapStatusCounts:"Flächen: {polys} · Zonen: {zones}/{total} · Pins: {pins}",tapTerritoriesHint:"Tippen Sie auf Gebiete auf der Karte oder auf Legendenzeilen, um sie hinzuzufügen · erneut tippen zum Entfernen",territoriesSelected:"Gebiete: {count}",bandInRange:"✓ Bereich 50–100",bandOutOfRange:"Bereich 50–100",mapContextLost:"Diese Karte wurde entladen, um Grafikspeicher freizugeben.",nOfTotal:"{n} von {total}",mapInitFailed:"Karte konnte nicht initialisiert werden — Token und Container prüfen",countryWallIntroA:"Ein Poster pro Land, bereit zum Beten, Drucken und Aufhängen — und für sie beten ",countryWallIntroB:". Regionen und Länder sind danach geordnet, wie viele unerreichte Volksgruppen sie umfassen, damit der größte Bedarf vorne steht.",countryWallSoon:"Demnächst: Für jedes Land wird eine Gebetsliste erstellt, die jede unerreichte Volksgruppe darin mit Namen nennt.",countryWallHeading:"Länderposter — Gebetslisten und Poster",largerScreenNotice:"Diese experimentelle Karte ist für große Bildschirme gebaut. Sie öffnet sich hier, aber Teile passen oder funktionieren auf einem Telefon womöglich nicht gut.",desktopOnlyNotice:"{label} funktioniert nur am Desktop – öffnen Sie diese Seite an einem Computer.",noticeDismiss:"Schließen",countryPosterTooMany:"Zu viele Volksgruppen, um lesbar auf ein Plakat zu passen – an einer Lösung wird gearbeitet."},"./locales/en/buttons.json":{prayForThem:"Pray for them",adoptThem:"Adopt",moreInfo:"More info",zoomIn:"Zoom in",zoomOut:"Zoom out",switchToLightMode:"Switch to light mode",switchToDarkMode:"Switch to dark mode",resetView:"Reset view",toggleFullscreen:"Toggle fullscreen",aboutThisMap:"About this map",closeMenu:"Close menu",reloadMap:"Reload Map",showClusters:"Show Clusters",clusterSettings:"Cluster Settings",startAutoFly:"Start Auto Fly",stopFlight:"Stop Flight",speedLabel:"Speed:",speedOption:{slow:"Slow",normal:"Normal",fast:"Fast"},shareEmbed:"Share & embed",shareSteps:["Embed this map on your site","Create a list of the websites in your city","Train them to embed it too","Train them to train others to embed it too","Multiply maps everywhere for Jesus!"],share:"Share",posterMap:"Poster Map",prayerList:"Prayer List",cardDeck:"Card Deck",printOptions:"Print Options",showOnMap:"Show on map",close:"Close",showOnMapAria:"Show {label} on the map",cardStockAria:"Prayer card size",working:"Working…",packetVariantAria:"Prayer packet detail",packetFull:"Full detail",packetLightweight:"Lightweight",previewPrintPoster:"Preview & print the {label} poster",clearSelection:"Clear selection",noOptions:"No options found",renderingLocal:"Rendering a print-quality image in your browser — nothing is uploaded.",postersPerRow:"Posters per row",postersPerRowAuto:"Auto"},"./locales/en/controls.json":{research_controls:"Research controls",clustering:"Clustering",filters:"Filters",pin_dim:"Pin dim",export_poster:"Export poster…",reload_data:"Reload data",off:"Off",native:"Native",mst:"MST",network:"Network",off_desc:"Show every pin individually",native_desc:"Mapbox circle clusters (fastest)",mst_desc:"Minimum-spanning-tree affinity webs",network_desc:"Nearest-neighbor connection lines",search_languages:"Search languages…",search_religions:"Search religions…",reset_all:"Reset all",no_languages:"No languages loaded yet",no_religions:"No religions loaded yet",unadopted:"Unadopted",min:"min",max:"max",adopted:"Adopted",adoption:"Adoption",engaged:"Engaged",engagement:"Engagement",unengaged:"Unengaged",language:"Language",religion:"Religion",population:"Population",any:"Any",active_count:"{n} active",prayer_status:"Prayer Status",close:"Close",clear:"Clear",map_controls:"Research map controls",clusters:"Clusters",mst_full_name:"Minimum Spanning Tree",mst_hint:"click a legend row to cluster only that group"},"./locales/en/grid.json":{search:"Search people groups…",hide_filters:"Hide Filters",show_filters:"Show Filters",total:"Total",showing:"Showing",load_more:"Load More",full_profile:"Full Profile",wagf_region:"Region",wagf_block:"Affinity Block",rop1:"People Group",religion:"Religion",exact_filter:"Exact",clear_all:"Clear All",loading:"Loading…",no_results:"No people groups match this filter.",type_to_search:"Type to search...",load_failed:"People-group data could not be loaded. This is a connection problem, not your filter.",search_people_or_countries:"Search people groups or countries…",cards_per_row:"Cards per row",cards_per_row_auto:"Auto"},"./locales/en/messages.json":{menuComingSoon:"Menu coming soon",pinHint:{tapDot:"Tap a coloured dot — someone still needs prayer"},upg100WallHeading:"My UPG 100 List — Prayer Lists & Posters",upg100WallTag:"Prayer Mobilization",upg100WallIntroA:"How would you feed a crowd of five thousand? Jesus sat them down in groups of fifty and a hundred, and the impossible became shareable (Luke 9:14). We did the same with the 2,106 unreached people groups: 27 lists of about fifty to a hundred. Each list prints as a prayer packet and a poster, so 27 disciples, churches or local leaders can each carry one — praying for them ",upg100WallIntroEmph:"by their people group name",upg100WallIntroB:".",loadingNamed:"Loading {name}…",couldNotLoadNamed:"Could not load {name}.",engineMissing:"The {engine} map engine did not load.",packetFailed:"Packet failed: {reason}",selectionPacketFailed:"Selection packet failed: {reason}",posterOneTerritory:"Poster prints one territory at a time — {count} selected.",selectionPosterFailed:"Selection poster failed: {reason}",mapUnavailable:"Map unavailable",copied:"Copied!",copyFailed:"Copy failed — press Ctrl/Cmd-C",engineNotLoaded:"map engine not loaded",engineNotLoadedDetail:"The {engine} map engine did not load. The list and legend are unaffected.",viewLoadFailed:"This view couldn't load.",retry:"Retry",noMapboxToken:"No Mapbox token",noMapboxTokenDetail:"No Mapbox token configured. The list and legend are unaffected.",loadingBoundaries:"Loading boundaries…",fetchingUupgs:"Fetching {n} UUPGs…",mapStatusCounts:"Areas: {polys} · zones: {zones}/{total} · pins: {pins}",tapTerritoriesHint:"Tap territories on the map or legend rows to add · tap again to remove",territoriesSelected:"Territories: {count}",bandInRange:"✓ 50–100 band",bandOutOfRange:"band 50–100",mapContextLost:"This map was unloaded to free graphics memory.",nOfTotal:"{n} of {total}",mapInitFailed:"Map failed to initialize — check token and container",countryWallIntroA:"One poster per country, ready to pray, print, and put on a wall — praying for them ",countryWallIntroB:". Regions and countries are ordered by how many unengaged people groups they hold, so the greatest need leads.",countryWallSoon:"Coming soon — a prayer list will be generated for each country, naming every unengaged people group within it.",countryWallHeading:"Country Posters — Prayer Lists & Posters",largerScreenNotice:"This experimental map is built for larger screens. It opens here, but parts of it may not fit or work well on a phone.",desktopOnlyNotice:"{label} only supports desktop — open this page on a desktop to use it.",noticeDismiss:"Dismiss",countryPosterTooMany:"Too many people groups to fit on one poster legibly — a solution is in progress."},"./locales/es/buttons.json":{prayForThem:"Ora por ellos",adoptThem:"Adóptalos",moreInfo:"Más información",zoomIn:"Acercar",zoomOut:"Alejar",switchToLightMode:"Cambiar a modo claro",switchToDarkMode:"Cambiar a modo oscuro",resetView:"Restablecer vista",toggleFullscreen:"Alternar pantalla completa",aboutThisMap:"Acerca de este mapa",closeMenu:"Cerrar menú",reloadMap:"Recargar mapa",showClusters:"Mostrar clústeres",clusterSettings:"Ajustes de clústeres",startAutoFly:"Iniciar vuelo automático",stopFlight:"Detener vuelo",speedLabel:"Velocidad:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Compartir e incrustar",posterMap:"Mapa del cartel",prayerList:"Lista de oración",cardDeck:"Baraja de tarjetas",printOptions:"Opciones de impresión",showOnMap:"Ver en el mapa",close:"Cerrar",showOnMapAria:"Ver {label} en el mapa",cardStockAria:"Tamaño de la tarjeta de oración",previewPrintPoster:"Previsualizar e imprimir el cartel de {label}",share:"Compartir",shareSteps:["Inserta este mapa en tu sitio","Haz una lista de los sitios web de tu ciudad","Enséñales a insertarlo también","Enséñales a enseñar a otros a insertarlo","¡Multiplica los mapas por todas partes para Jesús!"],clearSelection:"Borrar la selección",noOptions:"No se encontraron opciones",renderingLocal:"Se está generando una imagen con calidad de impresión en tu navegador: no se sube nada.",postersPerRow:"Pósteres por fila",packetVariantAria:"Detalle del paquete de oración",packetFull:"Detalle completo",packetLightweight:"Ligero",working:"Procesando…",postersPerRowAuto:"Automático"},"./locales/es/controls.json":{research_controls:"Controles de investigación",clustering:"Agrupación",filters:"Filtros",pin_dim:"Atenuar puntos",export_poster:"Exportar póster…",reload_data:"Recargar datos",off:"Desactivado",native:"Nativo",mst:"MST",network:"Red",off_desc:"Mostrar cada punto por separado",native_desc:"Grupos circulares de Mapbox (lo más rápido)",mst_desc:"Redes de afinidad por árbol de expansión mínima",network_desc:"Líneas de conexión al vecino más cercano",search_languages:"Buscar idiomas…",search_religions:"Buscar religiones…",reset_all:"Restablecer todo",no_languages:"Aún no se han cargado idiomas",no_religions:"Aún no se han cargado religiones",unadopted:"No adoptado",min:"mín",max:"máx",adopted:"Adoptado",adoption:"Adopción",engaged:"Comprometido",engagement:"Compromiso",unengaged:"Necesita implicación",language:"Idioma",religion:"Religión",population:"Población",any:"Cualquiera",active_count:"{n} activos",prayer_status:"Estado de oración",close:"Cerrar",clear:"Borrar",map_controls:"Controles del mapa",clusters:"Clústeres",mst_full_name:"Árbol de expansión mínima",mst_hint:"haz clic en una fila de la leyenda para agrupar solo ese grupo"},"./locales/es/grid.json":{search:"Buscar pueblos…",hide_filters:"Ocultar filtros",show_filters:"Mostrar filtros",total:"Total",showing:"Mostrando",load_more:"Cargar más",full_profile:"Perfil completo",wagf_region:"Región",wagf_block:"Bloque de afinidad",rop1:"Pueblo",religion:"Religión",exact_filter:"Exacto",clear_all:"Borrar todo",loading:"Cargando…",no_results:"Ningún pueblo coincide con este filtro.",type_to_search:"Escribe para buscar...",load_failed:"No se pudieron cargar los datos de pueblos. Es un problema de conexión, no de tu filtro.",search_people_or_countries:"Buscar pueblos o países…",cards_per_row:"Tarjetas por fila",cards_per_row_auto:"Automático"},"./locales/es/messages.json":{menuComingSoon:"Menú próximamente",pinHint:{tapDot:"Toca un punto de color: alguien todavía necesita oración"},upg100WallHeading:"Mi lista UPG 100 — Listas de oración y carteles",upg100WallTag:"Movilización de oración",upg100WallIntroA:"¿Cómo alimentarías a una multitud de cinco mil? Jesús los sentó en grupos de cincuenta y de cien, y lo imposible se volvió compartible (Lucas 9:14). Hicimos lo mismo con los 2.106 pueblos no alcanzados: 27 listas de unos cincuenta a cien. Cada lista se imprime como paquete de oración y cartel, para que 27 discípulos, iglesias o líderes locales lleven una cada uno — orando por ellos ",upg100WallIntroEmph:"por el nombre de su pueblo",upg100WallIntroB:".",loadingNamed:"Cargando {name}…",couldNotLoadNamed:"No se pudo cargar {name}.",engineMissing:"El motor de mapas {engine} no se cargó.",packetFailed:"Error al generar el cuadernillo: {reason}",selectionPacketFailed:"Error al generar el cuadernillo de la selección: {reason}",posterOneTerritory:"El cartel imprime un territorio a la vez: {count} seleccionados.",selectionPosterFailed:"Error al generar el cartel de la selección: {reason}",mapUnavailable:"Mapa no disponible",copied:"¡Copiado!",copyFailed:"Error al copiar: pulsa Ctrl/Cmd-C",engineNotLoaded:"motor de mapas no cargado",engineNotLoadedDetail:"El motor de mapas {engine} no se cargó. La lista y la leyenda no se ven afectadas.",viewLoadFailed:"No se pudo cargar esta vista.",retry:"Reintentar",noMapboxToken:"No hay token de Mapbox",noMapboxTokenDetail:"No hay ningún token de Mapbox configurado. La lista y la leyenda no se ven afectadas.",loadingBoundaries:"Cargando límites…",fetchingUupgs:"Obteniendo {n} UUPG…",mapStatusCounts:"Áreas: {polys} · zonas: {zones}/{total} · marcadores: {pins}",tapTerritoriesHint:"Toque territorios en el mapa o filas de la leyenda para añadirlos · toque de nuevo para quitarlos",territoriesSelected:"Territorios: {count}",bandInRange:"✓ franja 50–100",bandOutOfRange:"franja 50–100",mapContextLost:"Este mapa se descargó para liberar memoria gráfica.",nOfTotal:"{n} de {total}",mapInitFailed:"No se pudo iniciar el mapa: revisa el token y el contenedor",countryWallIntroA:"Un cartel por país, listo para orar, imprimir y colgar en una pared — orando por ellos ",countryWallIntroB:". Las regiones y los países se ordenan según cuántos pueblos no comprometidos contienen, para que la mayor necesidad vaya primero.",countryWallSoon:"Próximamente: se generará una lista de oración para cada país, con el nombre de cada pueblo no alcanzado que hay en él.",countryWallHeading:"Carteles por país — Listas de oración y carteles",largerScreenNotice:"Este mapa experimental está pensado para pantallas grandes. Se abre aquí, pero algunas partes pueden no caber o no funcionar bien en un teléfono.",desktopOnlyNotice:"{label} solo funciona en escritorio: abra esta página en un ordenador para usarlo.",noticeDismiss:"Cerrar",countryPosterTooMany:"Demasiados pueblos para que quepan legiblemente en un solo cartel; estamos trabajando en una solución."},"./locales/fr/buttons.json":{prayForThem:"Priez pour eux",adoptThem:"Adoptez-les",moreInfo:"Plus d'infos",zoomIn:"Zoom avant",zoomOut:"Zoom arrière",switchToLightMode:"Passer au mode clair",switchToDarkMode:"Passer au mode sombre",resetView:"Réinitialiser la vue",toggleFullscreen:"Basculer en plein écran",aboutThisMap:"À propos de cette carte",closeMenu:"Fermer le menu",reloadMap:"Recharger la carte",showClusters:"Afficher les clusters",clusterSettings:"Paramètres des clusters",startAutoFly:"Démarrer le vol auto",stopFlight:"Arrêter le vol",speedLabel:"Vitesse :",speedOption:{slow:"Lente",normal:"Normale",fast:"Rapide"},shareEmbed:"Partager et intégrer",posterMap:"Carte de l'affiche",prayerList:"Liste de prière",cardDeck:"Jeu de cartes",printOptions:"Options d'impression",showOnMap:"Voir sur la carte",close:"Fermer",showOnMapAria:"Voir {label} sur la carte",cardStockAria:"Taille de la carte de prière",previewPrintPoster:"Aperçu et impression de l’affiche {label}",share:"Partager",shareSteps:["Intégrez cette carte à votre site","Dressez la liste des sites web de votre ville","Apprenez-leur à l’intégrer aussi","Apprenez-leur à former d’autres personnes à l’intégrer","Multiplions les cartes partout pour Jésus !"],clearSelection:"Effacer la sélection",noOptions:"Aucune option trouvée",renderingLocal:"Une image de qualité impression est générée dans votre navigateur — rien n’est envoyé.",postersPerRow:"Affiches par ligne",packetVariantAria:"Niveau de détail du dossier de prière",packetFull:"Détail complet",packetLightweight:"Allégé",working:"Traitement…",postersPerRowAuto:"Auto"},"./locales/fr/controls.json":{research_controls:"Commandes de recherche",clustering:"Regroupement",filters:"Filtres",pin_dim:"Atténuation des points",export_poster:"Exporter l’affiche…",reload_data:"Recharger les données",off:"Désactivé",native:"Natif",mst:"MST",network:"Réseau",off_desc:"Afficher chaque point séparément",native_desc:"Groupes circulaires Mapbox (le plus rapide)",mst_desc:"Réseaux d’affinité par arbre couvrant minimal",network_desc:"Lignes vers le plus proche voisin",search_languages:"Rechercher des langues…",search_religions:"Rechercher des religions…",reset_all:"Tout réinitialiser",no_languages:"Aucune langue chargée pour l’instant",no_religions:"Aucune religion chargée pour l’instant",unadopted:"Non adopté",min:"min",max:"max",adopted:"Adopté",adoption:"Adoption",engaged:"Engagé",engagement:"Engagement",unengaged:"Besoin d'engagement",language:"Langue",religion:"Religion",population:"Population",any:"Tous",active_count:"{n} actifs",prayer_status:"État de prière",close:"Fermer",clear:"Effacer",map_controls:"Commandes de la carte",clusters:"Groupes",mst_full_name:"Arbre couvrant minimal",mst_hint:"cliquez sur une ligne de la légende pour ne regrouper que ce groupe"},"./locales/fr/grid.json":{search:"Rechercher des peuples…",hide_filters:"Masquer les filtres",show_filters:"Afficher les filtres",total:"Total",showing:"Affichage",load_more:"Charger plus",full_profile:"Profil complet",wagf_region:"Région",wagf_block:"Bloc d'affinité",rop1:"Peuple",religion:"Religion",exact_filter:"Exact",clear_all:"Tout effacer",loading:"Chargement…",no_results:"Aucun peuple ne correspond à ce filtre.",type_to_search:"Tapez pour rechercher...",load_failed:"Les données n’ont pas pu être chargées. C’est un problème de connexion, pas votre filtre.",search_people_or_countries:"Rechercher des peuples ou des pays…",cards_per_row:"Cartes par ligne",cards_per_row_auto:"Automatique"},"./locales/fr/messages.json":{menuComingSoon:"Menu bientôt disponible",pinHint:{tapDot:"Touchez un point coloré — quelqu’un a encore besoin de prière"},upg100WallHeading:"Ma liste UPG 100 — Listes de prière et affiches",upg100WallTag:"Mobilisation pour la prière",upg100WallIntroA:"Comment nourririez-vous une foule de cinq mille personnes ? Jésus les a fait asseoir par groupes de cinquante et de cent, et l’impossible est devenu partageable (Luc 9.14). Nous avons fait de même avec les 2 106 peuples non atteints : 27 listes d’environ cinquante à cent. Chaque liste s’imprime en dossier de prière et en affiche, pour que 27 disciples, Églises ou responsables locaux en portent chacun une — en priant pour eux ",upg100WallIntroEmph:"par le nom de leur peuple",upg100WallIntroB:".",loadingNamed:"Chargement de {name}…",couldNotLoadNamed:"Impossible de charger {name}.",engineMissing:"Le moteur de carte {engine} ne s’est pas chargé.",packetFailed:"Échec du livret : {reason}",selectionPacketFailed:"Échec du livret de la sélection : {reason}",posterOneTerritory:"L’affiche imprime un territoire à la fois — {count} sélectionnés.",selectionPosterFailed:"Échec de l’affiche de la sélection : {reason}",mapUnavailable:"Carte indisponible",copied:"Copié !",copyFailed:"Échec de la copie — appuyez sur Ctrl/Cmd-C",engineNotLoaded:"moteur cartographique non chargé",engineNotLoadedDetail:"Le moteur cartographique {engine} ne s’est pas chargé. La liste et la légende ne sont pas affectées.",viewLoadFailed:"Impossible de charger cette vue.",retry:"Réessayer",noMapboxToken:"Aucun jeton Mapbox",noMapboxTokenDetail:"Aucun jeton Mapbox n’est configuré. La liste et la légende ne sont pas affectées.",loadingBoundaries:"Chargement des limites…",fetchingUupgs:"Récupération de {n} UUPG…",mapStatusCounts:"Surfaces : {polys} · zones : {zones}/{total} · repères : {pins}",tapTerritoriesHint:"Touchez des territoires sur la carte ou des lignes de la légende pour les ajouter · touchez à nouveau pour les retirer",territoriesSelected:"Territoires : {count}",bandInRange:"✓ tranche 50–100",bandOutOfRange:"tranche 50–100",mapContextLost:"Cette carte a été déchargée pour libérer de la mémoire graphique.",nOfTotal:"{n} sur {total}",mapInitFailed:"Échec de l’initialisation de la carte — vérifiez le jeton et le conteneur",countryWallIntroA:"Une affiche par pays, prête à prier, à imprimer et à accrocher au mur — en priant pour eux ",countryWallIntroB:". Les régions et les pays sont classés selon le nombre de peuples non engagés qu’ils comptent, pour que le plus grand besoin vienne en premier.",countryWallSoon:"Bientôt : une liste de prière sera générée pour chaque pays, nommant chaque peuple non atteint qui s’y trouve.",countryWallHeading:"Affiches par pays — Listes de prière et affiches",largerScreenNotice:"Cette carte expérimentale est conçue pour les grands écrans. Elle s’ouvre ici, mais certaines parties peuvent mal s’afficher ou mal fonctionner sur un téléphone.",desktopOnlyNotice:"{label} ne fonctionne que sur ordinateur : ouvrez cette page sur un ordinateur pour l’utiliser.",noticeDismiss:"Fermer",countryPosterTooMany:"Trop de peuples pour tenir lisiblement sur une seule affiche — une solution est en préparation."},"./locales/hi/buttons.json":{prayForThem:"उनके लिए प्रार्थना करें",adoptThem:"उन्हें गोद लें",moreInfo:"अधिक जानकारी",zoomIn:"ज़ूम इन",zoomOut:"ज़ूम आउट",switchToLightMode:"लाइट मोड पर जाएं",switchToDarkMode:"डार्क मोड पर जाएं",resetView:"दृश्य रीसेट करें",toggleFullscreen:"फ़ुलस्क्रीन टॉगल करें",aboutThisMap:"इस मानचित्र के बारे में",closeMenu:"मेनू बंद करें",reloadMap:"मानचित्र पुनः लोड करें",showClusters:"क्लस्टर दिखाएं",clusterSettings:"क्लस्टर सेटिंग्स",startAutoFly:"ऑटो फ्लाई शुरू करें",stopFlight:"उड़ान रोकें",speedLabel:"गति:",speedOption:{slow:"धीमी",normal:"सामान्य",fast:"तेज़"},shareEmbed:"साझा करें और एम्बेड करें",posterMap:"पोस्टर मानचित्र",prayerList:"प्रार्थना सूची",cardDeck:"कार्ड सेट",printOptions:"छपाई विकल्प",showOnMap:"मानचित्र पर देखें",close:"बंद करें",showOnMapAria:"{label} को मानचित्र पर देखें",cardStockAria:"प्रार्थना कार्ड का आकार",previewPrintPoster:"{label} पोस्टर देखें और प्रिंट करें",share:"साझा करें",shareSteps:["इस मानचित्र को अपनी वेबसाइट पर लगाएँ","अपने शहर की वेबसाइटों की सूची बनाएँ","उन्हें भी इसे लगाना सिखाएँ","उन्हें सिखाएँ कि वे औरों को लगाना सिखाएँ","यीशु के लिए हर जगह मानचित्र बढ़ाएँ!"],clearSelection:"चयन हटाएँ",noOptions:"कोई विकल्प नहीं मिला",renderingLocal:"आपके ब्राउज़र में प्रिंट-गुणवत्ता वाली छवि बन रही है — कुछ भी अपलोड नहीं किया जाता।",postersPerRow:"प्रति पंक्ति पोस्टर",packetVariantAria:"प्रार्थना पैकेट विवरण",packetFull:"पूर्ण विवरण",packetLightweight:"संक्षिप्त",working:"कार्य जारी…",postersPerRowAuto:"स्वतः"},"./locales/hi/controls.json":{research_controls:"शोध नियंत्रण",clustering:"क्लस्टरिंग",filters:"फ़िल्टर",pin_dim:"पिन धुंधलापन",export_poster:"पोस्टर निर्यात करें…",reload_data:"डेटा फिर से लोड करें",off:"बंद",native:"नेटिव",mst:"MST",network:"नेटवर्क",off_desc:"हर पिन अलग-अलग दिखाएँ",native_desc:"Mapbox वृत्त क्लस्टर (सबसे तेज़)",mst_desc:"न्यूनतम स्पैनिंग ट्री आधारित जाल",network_desc:"निकटतम पड़ोसी को जोड़ने वाली रेखाएँ",search_languages:"भाषाएँ खोजें…",search_religions:"धर्म खोजें…",reset_all:"सब रीसेट करें",no_languages:"अभी कोई भाषा लोड नहीं हुई",no_religions:"अभी कोई धर्म लोड नहीं हुआ",unadopted:"अ-गोद लिया",min:"न्यून",max:"अधि",adopted:"गोद लिया गया",adoption:"गोद लेना",engaged:"संपर्कित",engagement:"सहभागिता",unengaged:"सहभागिता चाहिए",language:"भाषा",religion:"धर्म",population:"जनसंख्या",any:"कोई भी",active_count:"{n} सक्रिय",prayer_status:"प्रार्थना स्थिति",close:"बंद करें",clear:"साफ़ करें",map_controls:"मानचित्र नियंत्रण",clusters:"क्लस्टर",mst_full_name:"न्यूनतम विस्तारित वृक्ष",mst_hint:"केवल उस समूह को क्लस्टर करने के लिए लेजेंड की पंक्ति पर क्लिक करें"},"./locales/hi/grid.json":{search:"जनसमूह खोजें…",hide_filters:"फ़िल्टर छिपाएँ",show_filters:"फ़िल्टर दिखाएँ",total:"कुल",showing:"दिखा रहे हैं",load_more:"और देखें",full_profile:"पूरी प्रोफ़ाइल",wagf_region:"क्षेत्र",wagf_block:"समानता समूह",rop1:"जनसमूह",religion:"धर्म",exact_filter:"सटीक",clear_all:"सब हटाएँ",loading:"लोड हो रहा है…",no_results:"इस फ़िल्टर से कोई जनसमूह मेल नहीं खाता।",type_to_search:"खोजने के लिए लिखें...",load_failed:"जनसमूह डेटा लोड नहीं हो सका। यह कनेक्शन की समस्या है, आपके फ़िल्टर की नहीं।",search_people_or_countries:"जनसमूह या देश खोजें…",cards_per_row:"प्रति पंक्ति कार्ड",cards_per_row_auto:"स्वचालित"},"./locales/hi/messages.json":{menuComingSoon:"मेनू शीघ्र आ रहा है",pinHint:{tapDot:"किसी रंगीन बिंदु पर टैप करें — किसी को अभी भी प्रार्थना की आवश्यकता है"},upg100WallHeading:"मेरी UPG 100 सूची — प्रार्थना सूचियाँ और पोस्टर",upg100WallTag:"प्रार्थना संग्रहण",upg100WallIntroA:"पाँच हज़ार की भीड़ को आप कैसे खिलाते? यीशु ने उन्हें पचास-पचास और सौ-सौ के समूहों में बिठाया, और असंभव बाँटने योग्य हो गया (लूका 9:14). हमने 2,106 अनपहुँचे जनसमूहों के साथ वही किया: लगभग पचास से सौ तक की 27 सूचियाँ. हर सूची प्रार्थना पैकेट और पोस्टर के रूप में छपती है, ताकि 27 शिष्य, कलीसियाएँ या स्थानीय अगुवे एक-एक ले सकें — उनके लिए प्रार्थना करते हुए ",upg100WallIntroEmph:"उनके जन के नाम से",upg100WallIntroB:".",loadingNamed:"{name} लोड हो रहा है…",couldNotLoadNamed:"{name} लोड नहीं हो सका।",engineMissing:"{engine} नक्शा इंजन लोड नहीं हुआ।",packetFailed:"पुस्तिका विफल: {reason}",selectionPacketFailed:"चयन की पुस्तिका विफल: {reason}",posterOneTerritory:"पोस्टर एक समय में एक क्षेत्र छापता है — {count} चयनित।",selectionPosterFailed:"चयन का पोस्टर विफल: {reason}",mapUnavailable:"मानचित्र अनुपलब्ध",copied:"कॉपी हो गया!",copyFailed:"कॉपी विफल — Ctrl/Cmd-C दबाएँ",engineNotLoaded:"मानचित्र इंजन लोड नहीं हुआ",engineNotLoadedDetail:"{engine} मानचित्र इंजन लोड नहीं हुआ। सूची और लेजेंड अप्रभावित हैं।",viewLoadFailed:"यह दृश्य लोड नहीं हो सका।",retry:"फिर से कोशिश करें",noMapboxToken:"कोई Mapbox टोकन नहीं",noMapboxTokenDetail:"कोई Mapbox टोकन कॉन्फ़िगर नहीं है। सूची और लेजेंड पर कोई असर नहीं है।",loadingBoundaries:"सीमाएँ लोड हो रही हैं…",fetchingUupgs:"{n} UUPG लाए जा रहे हैं…",mapStatusCounts:"क्षेत्र: {polys} · ज़ोन: {zones}/{total} · पिन: {pins}",tapTerritoriesHint:"जोड़ने के लिए मानचित्र पर क्षेत्रों या लेजेंड की पंक्तियों पर टैप करें · हटाने के लिए फिर से टैप करें",territoriesSelected:"क्षेत्र: {count}",bandInRange:"✓ 50–100 दायरा",bandOutOfRange:"50–100 दायरा",mapContextLost:"ग्राफ़िक्स मेमोरी खाली करने के लिए यह मानचित्र अनलोड कर दिया गया।",nOfTotal:"{total} में से {n}",mapInitFailed:"मानचित्र आरंभ नहीं हो सका — टोकन और कंटेनर जाँचें",countryWallIntroA:"हर देश के लिए एक पोस्टर — प्रार्थना करने, छापने और दीवार पर लगाने के लिए तैयार, और उनके लिए प्रार्थना करते हुए ",countryWallIntroB:". क्षेत्र और देश इस क्रम में हैं कि उनमें कितने अनपहुँचे जनसमूह हैं, ताकि सबसे बड़ी ज़रूरत पहले आए।",countryWallSoon:"जल्द ही: हर देश के लिए एक प्रार्थना सूची बनाई जाएगी, जिसमें उसके हर अनपहुँचे जनसमूह का नाम होगा।",countryWallHeading:"देश पोस्टर — प्रार्थना सूचियाँ और पोस्टर",largerScreenNotice:"यह प्रायोगिक नक्शा बड़ी स्क्रीन के लिए बना है। यह यहाँ खुलता है, पर फ़ोन पर इसके कुछ हिस्से ठीक से न दिखें या न चलें।",desktopOnlyNotice:"{label} केवल डेस्कटॉप पर चलता है — इसे इस्तेमाल करने के लिए यह पेज कंप्यूटर पर खोलें।",noticeDismiss:"बंद करें",countryPosterTooMany:"एक पोस्टर पर साफ़-साफ़ आने के लिए जनसमूह बहुत अधिक हैं — समाधान पर काम चल रहा है।"},"./locales/it/buttons.json":{prayForThem:"Prega per loro",adoptThem:"Adottali",moreInfo:"Più informazioni",zoomIn:"Ingrandisci",zoomOut:"Riduci",switchToLightMode:"Passa alla modalità chiara",switchToDarkMode:"Passa alla modalità scura",resetView:"Reimposta vista",toggleFullscreen:"Attiva/disattiva schermo intero",aboutThisMap:"Informazioni su questa mappa",closeMenu:"Chiudi menu",reloadMap:"Ricarica mappa",showClusters:"Mostra cluster",clusterSettings:"Impostazioni cluster",startAutoFly:"Avvia volo automatico",stopFlight:"Ferma volo",speedLabel:"Velocità:",speedOption:{slow:"Lenta",normal:"Normale",fast:"Veloce"},shareEmbed:"Condividi e incorpora",posterMap:"Mappa del poster",prayerList:"Lista di preghiera",cardDeck:"Mazzo di carte",printOptions:"Opzioni di stampa",showOnMap:"Mostra sulla mappa",close:"Chiudi",showOnMapAria:"Mostra {label} sulla mappa",cardStockAria:"Formato della scheda di preghiera",previewPrintPoster:"Anteprima e stampa del poster {label}",share:"Condividi",shareSteps:["Incorpora questa mappa nel tuo sito","Fai un elenco dei siti web della tua città","Insegna loro a incorporarla a loro volta","Insegna loro a formare altri a incorporarla","Moltiplichiamo le mappe ovunque per Gesù!"],clearSelection:"Cancella la selezione",noOptions:"Nessuna opzione trovata",renderingLocal:"Un’immagine con qualità di stampa viene generata nel tuo browser: nulla viene caricato.",postersPerRow:"Poster per riga",packetVariantAria:"Dettaglio del pacchetto di preghiera",packetFull:"Dettaglio completo",packetLightweight:"Leggero",working:"Elaborazione…",postersPerRowAuto:"Automatico"},"./locales/it/controls.json":{research_controls:"Controlli di ricerca",clustering:"Raggruppamento",filters:"Filtri",pin_dim:"Opacità dei punti",export_poster:"Esporta poster…",reload_data:"Ricarica i dati",off:"Disattivato",native:"Nativo",mst:"MST",network:"Rete",off_desc:"Mostra ogni punto singolarmente",native_desc:"Cluster circolari Mapbox (il più veloce)",mst_desc:"Reti di affinità ad albero ricoprente minimo",network_desc:"Linee verso il vicino più prossimo",search_languages:"Cerca lingue…",search_religions:"Cerca religioni…",reset_all:"Reimposta tutto",no_languages:"Nessuna lingua ancora caricata",no_religions:"Nessuna religione ancora caricata",unadopted:"Non adottato",min:"min",max:"max",adopted:"Adottato",adoption:"Adozione",engaged:"Coinvolto",engagement:"Impegno",unengaged:"Necessita impegno",language:"Lingua",religion:"Religione",population:"Popolazione",any:"Tutti",active_count:"{n} attivi",prayer_status:"Stato di preghiera",close:"Chiudi",clear:"Cancella",map_controls:"Controlli della mappa",clusters:"Cluster",mst_full_name:"Albero ricoprente minimo",mst_hint:"fai clic su una riga della legenda per raggruppare solo quel gruppo"},"./locales/it/grid.json":{search:"Cerca popoli…",hide_filters:"Nascondi filtri",show_filters:"Mostra filtri",total:"Totale",showing:"Mostrati",load_more:"Carica altro",full_profile:"Profilo completo",wagf_region:"Regione",wagf_block:"Blocco di affinità",rop1:"Popolo",religion:"Religione",exact_filter:"Esatto",clear_all:"Cancella tutto",loading:"Caricamento…",no_results:"Nessun popolo corrisponde a questo filtro.",type_to_search:"Digita per cercare...",load_failed:"Impossibile caricare i dati dei popoli. È un problema di connessione, non del filtro.",search_people_or_countries:"Cerca popoli o paesi…",cards_per_row:"Schede per riga",cards_per_row_auto:"Automatico"},"./locales/it/messages.json":{menuComingSoon:"Menu in arrivo",pinHint:{tapDot:"Tocca un punto colorato — qualcuno ha ancora bisogno di preghiera"},upg100WallHeading:"La mia lista UPG 100 — Liste di preghiera e manifesti",upg100WallTag:"Mobilitazione alla preghiera",upg100WallIntroA:"Come sfameresti una folla di cinquemila? Gesù li fece sedere a gruppi di cinquanta e di cento, e l’impossibile divenne condivisibile (Luca 9:14). Abbiamo fatto lo stesso con i 2.106 popoli non raggiunti: 27 liste di circa cinquanta-cento. Ogni lista si stampa come pacchetto di preghiera e manifesto, così 27 discepoli, chiese o responsabili locali ne portano una ciascuno — pregando per loro ",upg100WallIntroEmph:"con il nome del loro popolo",upg100WallIntroB:".",loadingNamed:"Caricamento di {name}…",couldNotLoadNamed:"Impossibile caricare {name}.",engineMissing:"Il motore di mappa {engine} non è stato caricato.",packetFailed:"Libretto non riuscito: {reason}",selectionPacketFailed:"Libretto della selezione non riuscito: {reason}",posterOneTerritory:"Il manifesto stampa un territorio alla volta — {count} selezionati.",selectionPosterFailed:"Manifesto della selezione non riuscito: {reason}",mapUnavailable:"Mappa non disponibile",copied:"Copiato!",copyFailed:"Copia non riuscita — premi Ctrl/Cmd-C",engineNotLoaded:"motore di mappe non caricato",engineNotLoadedDetail:"Il motore di mappe {engine} non si è caricato. L’elenco e la legenda non sono interessati.",viewLoadFailed:"Impossibile caricare questa vista.",retry:"Riprova",noMapboxToken:"Nessun token Mapbox",noMapboxTokenDetail:"Nessun token Mapbox configurato. L’elenco e la legenda non sono interessati.",loadingBoundaries:"Caricamento dei confini…",fetchingUupgs:"Recupero di {n} UUPG…",mapStatusCounts:"Aree: {polys} · zone: {zones}/{total} · segnaposto: {pins}",tapTerritoriesHint:"Tocca i territori sulla mappa o le righe della legenda per aggiungerli · tocca di nuovo per rimuoverli",territoriesSelected:"Territori: {count}",bandInRange:"✓ fascia 50–100",bandOutOfRange:"fascia 50–100",mapContextLost:"Questa mappa è stata scaricata per liberare memoria grafica.",nOfTotal:"{n} su {total}",mapInitFailed:"Impossibile inizializzare la mappa — controlla il token e il contenitore",countryWallIntroA:"Un poster per paese, pronto da pregare, stampare e appendere al muro — pregando per loro ",countryWallIntroB:". Regioni e paesi sono ordinati in base a quanti popoli non raggiunti contengono, perché il bisogno più grande venga per primo.",countryWallSoon:"Prossimamente: per ogni paese verrà generata una lista di preghiera con il nome di ogni popolo non raggiunto che vi abita.",countryWallHeading:"Poster per paese — Liste di preghiera e manifesti",largerScreenNotice:"Questa mappa sperimentale è pensata per schermi grandi. Si apre qui, ma alcune parti potrebbero non entrare o non funzionare bene su un telefono.",desktopOnlyNotice:"{label} funziona solo su desktop: apri questa pagina da un computer per usarlo.",noticeDismiss:"Chiudi",countryPosterTooMany:"Troppi popoli per stare in modo leggibile su un solo manifesto: una soluzione è in arrivo."},"./locales/pt/buttons.json":{prayForThem:"Ore por eles",adoptThem:"Adote-os",moreInfo:"Mais informações",zoomIn:"Ampliar",zoomOut:"Reduzir",switchToLightMode:"Mudar para modo claro",switchToDarkMode:"Mudar para modo escuro",resetView:"Repor vista",toggleFullscreen:"Alternar ecrã inteiro",aboutThisMap:"Sobre este mapa",closeMenu:"Fechar menu",reloadMap:"Recarregar mapa",showClusters:"Mostrar clusters",clusterSettings:"Definições de clusters",startAutoFly:"Iniciar voo automático",stopFlight:"Parar voo",speedLabel:"Velocidade:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Partilhar e incorporar",posterMap:"Mapa do cartaz",prayerList:"Lista de oração",cardDeck:"Baralho de cartões",printOptions:"Opções de impressão",showOnMap:"Ver no mapa",close:"Fechar",showOnMapAria:"Ver {label} no mapa",cardStockAria:"Tamanho do cartão de oração",previewPrintPoster:"Pré-visualizar e imprimir o cartaz de {label}",share:"Partilhar",shareSteps:["Incorpore este mapa no seu site","Faça uma lista dos sites da sua cidade","Ensine-os a incorporá-lo também","Ensine-os a ensinar outros a incorporá-lo","Multipliquemos mapas por toda a parte para Jesus!"],clearSelection:"Limpar a seleção",noOptions:"Nenhuma opção encontrada",renderingLocal:"Uma imagem com qualidade de impressão está a ser gerada no seu navegador — nada é enviado.",postersPerRow:"Cartazes por linha",packetVariantAria:"Detalhe do pacote de oração",packetFull:"Detalhe completo",packetLightweight:"Leve",working:"Processando…",postersPerRowAuto:"Automático"},"./locales/pt/controls.json":{research_controls:"Controlos de pesquisa",clustering:"Agrupamento",filters:"Filtros",pin_dim:"Esbater pontos",export_poster:"Exportar cartaz…",reload_data:"Recarregar dados",off:"Desligado",native:"Nativo",mst:"MST",network:"Rede",off_desc:"Mostrar cada ponto individualmente",native_desc:"Grupos circulares Mapbox (mais rápido)",mst_desc:"Redes de afinidade por árvore geradora mínima",network_desc:"Linhas para o vizinho mais próximo",search_languages:"Pesquisar idiomas…",search_religions:"Pesquisar religiões…",reset_all:"Repor tudo",no_languages:"Ainda não há idiomas carregados",no_religions:"Ainda não há religiões carregadas",unadopted:"Não adotado",min:"mín",max:"máx",adopted:"Adotado",adoption:"Adoção",engaged:"Engajado",engagement:"Engajamento",unengaged:"Precisa de envolvimento",language:"Idioma",religion:"Religião",population:"População",any:"Qualquer",active_count:"{n} ativos",prayer_status:"Estado de oração",close:"Fechar",clear:"Limpar",map_controls:"Controlos do mapa",clusters:"Agrupamentos",mst_full_name:"Árvore geradora mínima",mst_hint:"clique numa linha da legenda para agrupar apenas esse grupo"},"./locales/pt/grid.json":{search:"Pesquisar povos…",hide_filters:"Ocultar filtros",show_filters:"Mostrar filtros",total:"Total",showing:"Mostrando",load_more:"Carregar mais",full_profile:"Perfil completo",wagf_region:"Região",wagf_block:"Bloco de afinidade",rop1:"Povo",religion:"Religião",exact_filter:"Exato",clear_all:"Limpar tudo",loading:"A carregar…",no_results:"Nenhum povo corresponde a este filtro.",type_to_search:"Escreva para pesquisar...",load_failed:"Não foi possível carregar os dados dos povos. É um problema de ligação, não do seu filtro.",search_people_or_countries:"Pesquisar povos ou países…",cards_per_row:"Cartões por linha",cards_per_row_auto:"Automático"},"./locales/pt/messages.json":{menuComingSoon:"Menu em breve",pinHint:{tapDot:"Toque num ponto colorido — alguém ainda precisa de oração"},upg100WallHeading:"Minha lista UPG 100 — Listas de oração e cartazes",upg100WallTag:"Mobilização de oração",upg100WallIntroA:"Como você alimentaria uma multidão de cinco mil? Jesus os sentou em grupos de cinquenta e de cem, e o impossível tornou-se compartilhável (Lucas 9.14). Fizemos o mesmo com os 2.106 povos não alcançados: 27 listas de cerca de cinquenta a cem. Cada lista imprime como pacote de oração e cartaz, para que 27 discípulos, igrejas ou líderes locais levem uma cada um — orando por eles ",upg100WallIntroEmph:"pelo nome do seu povo",upg100WallIntroB:".",loadingNamed:"Carregando {name}…",couldNotLoadNamed:"Não foi possível carregar {name}.",engineMissing:"O motor de mapa {engine} não foi carregado.",packetFailed:"Falha ao gerar o caderno: {reason}",selectionPacketFailed:"Falha ao gerar o caderno da seleção: {reason}",posterOneTerritory:"O cartaz imprime um território de cada vez — {count} selecionados.",selectionPosterFailed:"Falha ao gerar o cartaz da seleção: {reason}",mapUnavailable:"Mapa indisponível",copied:"Copiado!",copyFailed:"Falha ao copiar — pressione Ctrl/Cmd-C",engineNotLoaded:"motor de mapas não carregado",engineNotLoadedDetail:"O motor de mapas {engine} não carregou. A lista e a legenda não são afetadas.",viewLoadFailed:"Não foi possível carregar esta visualização.",retry:"Tentar novamente",noMapboxToken:"Nenhum token do Mapbox",noMapboxTokenDetail:"Nenhum token do Mapbox configurado. A lista e a legenda não são afetadas.",loadingBoundaries:"Carregando limites…",fetchingUupgs:"Buscando {n} UUPGs…",mapStatusCounts:"Áreas: {polys} · zonas: {zones}/{total} · marcadores: {pins}",tapTerritoriesHint:"Toque em territórios no mapa ou em linhas da legenda para adicionar · toque de novo para remover",territoriesSelected:"Territórios: {count}",bandInRange:"✓ faixa 50–100",bandOutOfRange:"faixa 50–100",mapContextLost:"Este mapa foi descarregado para libertar memória gráfica.",nOfTotal:"{n} de {total}",mapInitFailed:"Falha ao iniciar o mapa — verifique o token e o contêiner",countryWallIntroA:"Um cartaz por país, pronto para orar, imprimir e pendurar na parede — orando por eles ",countryWallIntroB:". As regiões e os países são ordenados pelo número de povos não engajados que abrigam, para que a maior necessidade venha primeiro.",countryWallSoon:"Em breve: será gerada uma lista de oração para cada país, com o nome de cada povo não alcançado nele.",countryWallHeading:"Cartazes por país — Listas de oração e cartazes",largerScreenNotice:"Este mapa experimental foi feito para telas maiores. Ele abre aqui, mas algumas partes podem não caber ou não funcionar bem no celular.",desktopOnlyNotice:"{label} só funciona no computador — abra esta página num computador para usá-lo.",noticeDismiss:"Fechar",countryPosterTooMany:"Povos demais para caber de forma legível em um só cartaz — uma solução está a caminho."},"./locales/ro/buttons.json":{prayForThem:"Roagă-te pentru ei",adoptThem:"Adoptă-i",moreInfo:"Mai multe informații",zoomIn:"Mărește",zoomOut:"Micșorează",switchToLightMode:"Comută la modul luminos",switchToDarkMode:"Comută la modul întunecat",resetView:"Resetează vizualizarea",toggleFullscreen:"Comută ecran complet",aboutThisMap:"Despre această hartă",closeMenu:"Închide meniul",reloadMap:"Reîncarcă harta",showClusters:"Arată clusterele",clusterSettings:"Setări clustere",startAutoFly:"Pornește zborul automat",stopFlight:"Oprește zborul",speedLabel:"Viteză:",speedOption:{slow:"Lent",normal:"Normal",fast:"Rapid"},shareEmbed:"Partajează și încorporează",posterMap:"Harta afișului",prayerList:"Listă de rugăciune",cardDeck:"Pachet de cartonașe",printOptions:"Opțiuni de tipărire",showOnMap:"Arată pe hartă",close:"Închide",showOnMapAria:"Arată {label} pe hartă",cardStockAria:"Dimensiunea cardului de rugăciune",previewPrintPoster:"Previzualizează și tipărește posterul {label}",share:"Distribuie",shareSteps:["Încorporează această hartă pe site-ul tău","Fă o listă cu site-urile din orașul tău","Învață-i să o încorporeze și ei","Învață-i să îi formeze pe alții să o încorporeze","Să multiplicăm hărți pretutindeni pentru Isus!"],clearSelection:"Șterge selecția",noOptions:"Nicio opțiune găsită",renderingLocal:"O imagine de calitate pentru tipar este generată în browserul tău — nimic nu este încărcat.",postersPerRow:"Postere pe rând",packetVariantAria:"Nivelul de detaliu al pachetului de rugăciune",packetFull:"Detaliu complet",packetLightweight:"Redus",working:"Se procesează…",postersPerRowAuto:"Automat"},"./locales/ro/controls.json":{research_controls:"Comenzi de cercetare",clustering:"Grupare",filters:"Filtre",pin_dim:"Estompare puncte",export_poster:"Exportă posterul…",reload_data:"Reîncarcă datele",off:"Oprit",native:"Nativ",mst:"MST",network:"Rețea",off_desc:"Arată fiecare punct separat",native_desc:"Grupuri circulare Mapbox (cel mai rapid)",mst_desc:"Rețele de afinitate prin arbore minim de acoperire",network_desc:"Linii către cel mai apropiat vecin",search_languages:"Caută limbi…",search_religions:"Caută religii…",reset_all:"Resetează tot",no_languages:"Nicio limbă încărcată încă",no_religions:"Nicio religie încărcată încă",unadopted:"Neadoptat",min:"min",max:"max",adopted:"Adoptat",adoption:"Adopție",engaged:"Implicat",engagement:"Implicare",unengaged:"Necesită implicare",language:"Limbă",religion:"Religie",population:"Populație",any:"Oricare",active_count:"{n} active",prayer_status:"Stare de rugăciune",close:"Închide",clear:"Șterge",map_controls:"Comenzile hărții",clusters:"Grupuri",mst_full_name:"Arbore de acoperire minim",mst_hint:"dă clic pe un rând din legendă pentru a grupa doar acel grup"},"./locales/ro/grid.json":{search:"Caută popoare…",hide_filters:"Ascunde filtrele",show_filters:"Arată filtrele",total:"Total",showing:"Se afișează",load_more:"Încarcă mai mult",full_profile:"Profil complet",wagf_region:"Regiune",wagf_block:"Bloc de afinitate",rop1:"Popor",religion:"Religie",exact_filter:"Exact",clear_all:"Șterge tot",loading:"Se încarcă…",no_results:"Niciun popor nu corespunde acestui filtru.",type_to_search:"Scrie pentru a căuta...",load_failed:"Datele despre popoare nu au putut fi încărcate. Este o problemă de conexiune, nu a filtrului.",search_people_or_countries:"Caută popoare sau țări…",cards_per_row:"Carduri pe rând",cards_per_row_auto:"Automat"},"./locales/ro/messages.json":{menuComingSoon:"Meniu în curând",pinHint:{tapDot:"Atinge un punct colorat — cineva are încă nevoie de rugăciune"},upg100WallHeading:"Lista mea UPG 100 — Liste de rugăciune și afișe",upg100WallTag:"Mobilizare pentru rugăciune",upg100WallIntroA:"Cum ai hrăni o mulțime de cinci mii? Isus i-a așezat în grupuri de cincizeci și de o sută, iar imposibilul a devenit împărțibil (Luca 9:14). Am făcut la fel cu cele 2.106 popoare neatinse: 27 de liste de aproximativ cincizeci până la o sută. Fiecare listă se tipărește ca pachet de rugăciune și afiș, ca 27 de ucenici, biserici sau lideri locali să poarte fiecare câte una — rugându-se pentru ei ",upg100WallIntroEmph:"pe numele poporului lor",upg100WallIntroB:".",loadingNamed:"Se încarcă {name}…",couldNotLoadNamed:"Nu s-a putut încărca {name}.",engineMissing:"Motorul de hartă {engine} nu s-a încărcat.",packetFailed:"Broșura a eșuat: {reason}",selectionPacketFailed:"Broșura selecției a eșuat: {reason}",posterOneTerritory:"Afișul tipărește un teritoriu pe rând — {count} selectate.",selectionPosterFailed:"Afișul selecției a eșuat: {reason}",mapUnavailable:"Harta indisponibilă",copied:"Copiat!",copyFailed:"Copierea a eșuat — apasă Ctrl/Cmd-C",engineNotLoaded:"motorul de hărți nu s-a încărcat",engineNotLoadedDetail:"Motorul de hărți {engine} nu s-a încărcat. Lista și legenda nu sunt afectate.",viewLoadFailed:"Această vizualizare nu s-a putut încărca.",retry:"Reîncearcă",noMapboxToken:"Niciun token Mapbox",noMapboxTokenDetail:"Nu este configurat niciun token Mapbox. Lista și legenda nu sunt afectate.",loadingBoundaries:"Se încarcă granițele…",fetchingUupgs:"Se preiau {n} UUPG…",mapStatusCounts:"Suprafețe: {polys} · zone: {zones}/{total} · repere: {pins}",tapTerritoriesHint:"Atingeți teritorii pe hartă sau rânduri din legendă pentru a le adăuga · atingeți din nou pentru a le elimina",territoriesSelected:"Teritorii: {count}",bandInRange:"✓ interval 50–100",bandOutOfRange:"interval 50–100",mapContextLost:"Această hartă a fost descărcată pentru a elibera memoria grafică.",nOfTotal:"{n} din {total}",mapInitFailed:"Harta nu a putut fi inițializată — verificați tokenul și containerul",countryWallIntroA:"Câte un afiș pentru fiecare țară, gata de rugăciune, de tipărit și de pus pe perete — rugându-ne pentru ei ",countryWallIntroB:". Regiunile și țările sunt ordonate după câte popoare neatinse cuprind, pentru ca nevoia cea mai mare să fie prima.",countryWallSoon:"În curând: pentru fiecare țară va fi generată o listă de rugăciune care numește fiecare popor neatins din ea.",countryWallHeading:"Afișe pe țări — Liste de rugăciune și afișe",largerScreenNotice:"Această hartă experimentală este făcută pentru ecrane mari. Se deschide aici, dar unele părți s-ar putea să nu încapă sau să nu funcționeze bine pe telefon.",desktopOnlyNotice:"{label} funcționează doar pe desktop — deschideți pagina pe un computer pentru a-l folosi.",noticeDismiss:"Închide",countryPosterTooMany:"Prea multe popoare pentru a încăpea lizibil pe un singur afiș — lucrăm la o soluție."},"./locales/ru/buttons.json":{prayForThem:"Молитесь о них",adoptThem:"Усыновите их",moreInfo:"Подробнее",zoomIn:"Приблизить",zoomOut:"Отдалить",switchToLightMode:"Переключить на светлый режим",switchToDarkMode:"Переключить на тёмный режим",resetView:"Сбросить вид",toggleFullscreen:"Полноэкранный режим",aboutThisMap:"Об этой карте",closeMenu:"Закрыть меню",reloadMap:"Перезагрузить карту",showClusters:"Показать кластеры",clusterSettings:"Настройки кластеров",startAutoFly:"Начать авто-полёт",stopFlight:"Остановить полёт",speedLabel:"Скорость:",speedOption:{slow:"Медленно",normal:"Нормально",fast:"Быстро"},shareEmbed:"Поделиться и встроить",posterMap:"Карта плаката",prayerList:"Молитвенный список",cardDeck:"Набор карточек",printOptions:"Параметры печати",showOnMap:"Показать на карте",close:"Закрыть",showOnMapAria:"Показать {label} на карте",cardStockAria:"Размер молитвенной карточки",previewPrintPoster:"Просмотр и печать плаката {label}",share:"Поделиться",shareSteps:["Разместите эту карту на своём сайте","Составьте список сайтов вашего города","Научите их тоже размещать её","Научите их учить других размещать её","Умножим карты повсюду для Иисуса!"],clearSelection:"Снять выделение",noOptions:"Ничего не найдено",renderingLocal:"Изображение типографского качества создаётся в вашем браузере — ничего не загружается на сервер.",postersPerRow:"Плакатов в ряду",packetVariantAria:"Детализация молитвенного пакета",packetFull:"Полная версия",packetLightweight:"Краткая версия",working:"Выполняется…",postersPerRowAuto:"Авто"},"./locales/ru/controls.json":{research_controls:"Инструменты исследования",clustering:"Кластеризация",filters:"Фильтры",pin_dim:"Прозрачность точек",export_poster:"Экспорт постера…",reload_data:"Обновить данные",off:"Выкл.",native:"Встроенная",mst:"MST",network:"Сеть",off_desc:"Показывать каждую точку отдельно",native_desc:"Круговые кластеры Mapbox (быстрее всего)",mst_desc:"Сети родства по минимальному остовному дереву",network_desc:"Линии до ближайшего соседа",search_languages:"Поиск языков…",search_religions:"Поиск религий…",reset_all:"Сбросить всё",no_languages:"Языки ещё не загружены",no_religions:"Религии ещё не загружены",unadopted:"Не усыновлён",min:"мин",max:"макс",adopted:"Ответственность взята",adoption:"Усыновление",engaged:"Вовлечён",engagement:"Вовлечённость",unengaged:"Нуждается в вовлечённости",language:"Язык",religion:"Религия",population:"Население",any:"Любой",active_count:"{n} активно",prayer_status:"Статус молитвы",close:"Закрыть",clear:"Очистить",map_controls:"Элементы управления картой",clusters:"Кластеры",mst_full_name:"Минимальное остовное дерево",mst_hint:"нажмите строку легенды, чтобы сгруппировать только эту группу"},"./locales/ru/grid.json":{search:"Поиск народов…",hide_filters:"Скрыть фильтры",show_filters:"Показать фильтры",total:"Всего",showing:"Показано",load_more:"Показать ещё",full_profile:"Полный профиль",wagf_region:"Регион",wagf_block:"Блок родства",rop1:"Народ",religion:"Религия",exact_filter:"Точное совпадение",clear_all:"Очистить всё",loading:"Загрузка…",no_results:"Нет народов, соответствующих этому фильтру.",type_to_search:"Введите для поиска...",load_failed:"Не удалось загрузить данные о народах. Это проблема соединения, а не фильтра.",search_people_or_countries:"Поиск народов или стран…",cards_per_row:"Карточек в ряду",cards_per_row_auto:"Авто"},"./locales/ru/messages.json":{menuComingSoon:"Меню скоро появится",pinHint:{tapDot:"Нажмите на цветную точку — кому-то всё ещё нужна молитва"},upg100WallHeading:"Мой список UPG 100 — молитвенные списки и плакаты",upg100WallTag:"Молитвенная мобилизация",upg100WallIntroA:"Как накормить толпу в пять тысяч человек? Иисус рассадил их группами по пятьдесят и по сто, и невозможное стало посильным (Лк. 9:14). Мы поступили так же с 2 106 неохваченными народами: 27 списков примерно по пятьдесят-сто. Каждый список печатается как молитвенный пакет и плакат, чтобы 27 учеников, церквей или местных служителей взяли по одному — молясь о них ",upg100WallIntroEmph:"по имени их народа",upg100WallIntroB:".",loadingNamed:"Загрузка {name}…",couldNotLoadNamed:"Не удалось загрузить {name}.",engineMissing:"Картографический движок {engine} не загрузился.",packetFailed:"Не удалось создать буклет: {reason}",selectionPacketFailed:"Не удалось создать буклет выбора: {reason}",posterOneTerritory:"Плакат печатает по одной территории — выбрано {count}.",selectionPosterFailed:"Не удалось создать плакат выбора: {reason}",mapUnavailable:"Карта недоступна",copied:"Скопировано!",copyFailed:"Не удалось скопировать — нажмите Ctrl/Cmd-C",engineNotLoaded:"движок карты не загружен",engineNotLoadedDetail:"Движок карты {engine} не загрузился. Список и легенда не затронуты.",viewLoadFailed:"Не удалось загрузить этот раздел.",retry:"Повторить",noMapboxToken:"Нет токена Mapbox",noMapboxTokenDetail:"Токен Mapbox не настроен. Список и легенда не затронуты.",loadingBoundaries:"Загрузка границ…",fetchingUupgs:"Загрузка UUPG: {n}…",mapStatusCounts:"Области: {polys} · зоны: {zones}/{total} · метки: {pins}",tapTerritoriesHint:"Нажимайте на территории на карте или строки легенды, чтобы добавить · нажмите ещё раз, чтобы убрать",territoriesSelected:"Территории: {count}",bandInRange:"✓ диапазон 50–100",bandOutOfRange:"диапазон 50–100",mapContextLost:"Эта карта выгружена, чтобы освободить графическую память.",nOfTotal:"{n} из {total}",mapInitFailed:"Не удалось инициализировать карту — проверьте токен и контейнер",countryWallIntroA:"Один плакат на страну — чтобы молиться, распечатать и повесить на стену, молясь за них ",countryWallIntroB:". Регионы и страны упорядочены по числу неохваченных народов, чтобы самая большая нужда стояла первой.",countryWallSoon:"Скоро: для каждой страны будет создан молитвенный список с названием каждого неохваченного народа в ней.",countryWallHeading:"Плакаты по странам — молитвенные списки и плакаты",largerScreenNotice:"Эта экспериментальная карта рассчитана на большие экраны. Она откроется, но на телефоне часть элементов может не поместиться или работать плохо.",desktopOnlyNotice:"{label} работает только на компьютере — откройте эту страницу на компьютере.",noticeDismiss:"Закрыть",countryPosterTooMany:"Слишком много народов, чтобы разборчиво уместить их на одном плакате, — решение готовится."},"./locales/zh/buttons.json":{prayForThem:"为他们祷告",adoptThem:"认领他们",moreInfo:"更多信息",zoomIn:"放大",zoomOut:"缩小",switchToLightMode:"切换至浅色模式",switchToDarkMode:"切换至深色模式",resetView:"重置视图",toggleFullscreen:"切换全屏",aboutThisMap:"关于此地图",closeMenu:"关闭菜单",reloadMap:"重新加载地图",showClusters:"显示聚类",clusterSettings:"聚类设置",startAutoFly:"开始自动飞行",stopFlight:"停止飞行",speedLabel:"速度:",speedOption:{slow:"慢",normal:"正常",fast:"快"},shareEmbed:"分享与嵌入",posterMap:"海报地图",prayerList:"祷告名单",cardDeck:"祷告卡组",printOptions:"打印选项",showOnMap:"在地图上显示",close:"关闭",showOnMapAria:"在地图上显示 {label}",cardStockAria:"祷告卡片尺寸",previewPrintPoster:"预览并打印 {label} 海报",share:"分享",shareSteps:["把这张地图嵌入你的网站","列出你城市里的网站","教他们也嵌入这张地图","教他们去教别人嵌入","为耶稣让地图遍地繁增!"],clearSelection:"清除选择",noOptions:"未找到选项",renderingLocal:"正在您的浏览器中生成可打印质量的图片——不会上传任何内容。",postersPerRow:"每行海报数",packetVariantAria:"祷告手册详细程度",packetFull:"完整版",packetLightweight:"精简版",working:"处理中…",postersPerRowAuto:"自动"},"./locales/zh/controls.json":{research_controls:"研究控件",clustering:"聚类",filters:"筛选",pin_dim:"圆点淡化",export_poster:"导出海报…",reload_data:"重新加载数据",off:"关闭",native:"原生",mst:"MST",network:"网络",off_desc:"逐个显示每个圆点",native_desc:"Mapbox 圆形聚类(最快)",mst_desc:"最小生成树亲缘网络",network_desc:"最近邻连接线",search_languages:"搜索语言…",search_religions:"搜索宗教…",reset_all:"全部重置",no_languages:"尚未加载语言",no_religions:"尚未加载宗教",unadopted:"未认领",min:"最小",max:"最大",adopted:"已认领",adoption:"认领",engaged:"已参与",engagement:"参与",unengaged:"需要参与",language:"语言",religion:"宗教",population:"人口",any:"全部",active_count:"{n} 项启用",prayer_status:"代祷状态",close:"关闭",clear:"清除",map_controls:"地图控件",clusters:"聚类",mst_full_name:"最小生成树",mst_hint:"点击图例中的一行,仅对该组进行聚类"},"./locales/zh/grid.json":{search:"搜索民族…",hide_filters:"隐藏筛选",show_filters:"显示筛选",total:"总计",showing:"显示",load_more:"加载更多",full_profile:"完整档案",wagf_region:"区域",wagf_block:"亲缘板块",rop1:"民族",religion:"宗教",exact_filter:"精确",clear_all:"全部清除",loading:"加载中…",no_results:"没有符合此筛选条件的民族。",type_to_search:"输入以搜索...",load_failed:"无法加载民族数据。这是连接问题,而不是筛选问题。",search_people_or_countries:"搜索民族或国家…",cards_per_row:"每行卡片数",cards_per_row_auto:"自动"},"./locales/zh/messages.json":{menuComingSoon:"菜单即将推出",pinHint:{tapDot:"点按一个彩色圆点——仍有人需要祷告"},upg100WallHeading:"我的 UPG 100 名单 — 祷告名单与海报",upg100WallTag:"祷告动员",upg100WallIntroA:"你会怎样喂饱五千人的群众?耶稣让他们一排五十、一排一百地坐下,不可能的事就变得可以分担了(路加福音 9:14)。我们对 2,106 个未得之民做了同样的事:27 份名单,每份约五十到一百。每份名单都能印成祷告手册和海报,让 27 位门徒、教会或当地领袖各领一份 — 为他们祷告 ",upg100WallIntroEmph:"称呼他们族群的名字",upg100WallIntroB:"。",loadingNamed:"正在加载{name}…",couldNotLoadNamed:"无法加载{name}。",engineMissing:"{engine} 地图引擎未能加载。",packetFailed:"祷告册生成失败:{reason}",selectionPacketFailed:"所选内容的祷告册生成失败:{reason}",posterOneTerritory:"海报一次只能打印一个区域——已选 {count} 个。",selectionPosterFailed:"所选内容的海报生成失败:{reason}",mapUnavailable:"地图不可用",copied:"已复制!",copyFailed:"复制失败——请按 Ctrl/Cmd-C",engineNotLoaded:"地图引擎未加载",engineNotLoadedDetail:"{engine} 地图引擎未能加载。列表和图例不受影响。",viewLoadFailed:"此视图无法加载。",retry:"重试",noMapboxToken:"没有 Mapbox 令牌",noMapboxTokenDetail:"未配置 Mapbox 令牌。列表和图例不受影响。",loadingBoundaries:"正在加载边界…",fetchingUupgs:"正在获取 {n} 个 UUPG…",mapStatusCounts:"区域:{polys} · 分区:{zones}/{total} · 标记:{pins}",tapTerritoriesHint:"点按地图上的区域或图例行即可添加 · 再次点按即可移除",territoriesSelected:"区域:{count}",bandInRange:"✓ 50–100 区间",bandOutOfRange:"50–100 区间",mapContextLost:"已卸载此地图以释放显存。",nOfTotal:"{total} 个中的 {n} 个",mapInitFailed:"地图初始化失败——请检查令牌和容器",countryWallIntroA:"每个国家一张海报,可用来祷告、打印、贴在墙上——为他们祷告,",countryWallIntroB:"。各区域和国家按其中未得之民族群的数量排序,让最大的需要排在最前。",countryWallSoon:"即将推出:将为每个国家生成一份祷告名单,列出其中每一个未得之民族群的名字。",countryWallHeading:"国家海报 — 祷告名单与海报",largerScreenNotice:"这张实验性地图为大屏幕设计。它可以在这里打开,但部分内容在手机上可能显示不全或无法正常使用。",desktopOnlyNotice:"{label} 仅支持桌面端——请在电脑上打开此页面使用。",noticeDismiss:"关闭",countryPosterTooMany:"族群数量过多,无法清晰地放在一张海报上——我们正在制定解决方案。"}}),Je={};for(const[e,t]of Object.entries(hl)){const o=e.match(/\.\/locales\/([^/]+)\/([^/]+)\.json$/);if(!o)continue;const[,n,s]=o;Je[n]??(Je[n]={}),Je[n][s]=t}const va=(()=>{try{const e=typeof document<"u"&&document.currentScript&&document.currentScript.src||"";return e?e.split(/[?#]/)[0].replace(/[^/]+$/,""):""}catch{return""}})(),ya=typeof __DX_LOCALE_SRI__<"u"?__DX_LOCALE_SRI__:{},xn=new Map;let wa=null;function $l(e,t){const o=String(t||"").split("-")[0].toLowerCase();if(!o||o==="en"||!kn.includes(o))return Promise.resolve(o==="en");if(Je[o])return Promise.resolve(!0);if(xn.has(o))return xn.get(o).then(s=>s);if(!ya[o])return Promise.resolve(!!Je[o]);const n=(async()=>{var s,a;try{if(!va)return!1;const i=new URL(`locales/${o}.json`,va).href,r=await fetch(i,{integrity:ya[o]});if(!r.ok)return!1;const l=await r.json();return!l||typeof l!="object"?!1:(Je[o]=l,(a=(s=e==null?void 0:e.global)==null?void 0:s.setLocaleMessage)==null||a.call(s,o,l),!0)}catch{return!1}})();return xn.set(o,n),n}const kn=["ar","de","en","es","fr","hi","it","pt","ro","ru","zh"];function ml(){try{const e=new URLSearchParams(window.location.search);return(e.get("lang")||e.get("locale")||"").split("-")[0].toLowerCase()}catch{return""}}function xa(){var n;const e=ml();if(kn.includes(e))return e;const o=(((n=document==null?void 0:document.documentElement)==null?void 0:n.lang)||"").split("-")[0].toLowerCase();return kn.includes(o)?o:"en"}try{wa=$l(null,xa())}catch{wa=null}const _l="__DOXA_PAGE_LOCALE",bl=["zero","one","two","few","many","other"];function vl(e,t,o){let n;try{n=new Intl.PluralRules(o)}catch{return e===1?0:1}const s=n.select(e),a=n.resolvedOptions().pluralCategories,i=bl.filter(l=>a.includes(l));let r=i.indexOf(s);if(r<0&&(r=i.indexOf("other")),r>=t){const l=i.indexOf("other");r=l>=0&&l[e,(t,o)=>vl(t,o,e)]));function yl(){try{return typeof window<"u"&&window[_l]||""}catch{return""}}function ka(e,t){const o=s=>{let a=Je[s];for(const i of String(e).split(".")){if(!a||typeof a!="object")return;a=a[i]}return typeof a=="string"?a:void 0},n=t||yl()||xa();return o(n)??o("en")}function wl(e,t){const o=Ys(),n=t;an(()=>{var l;if(!o)return;const s=(l=o.proxy)==null?void 0:l.$el;if(!s)return;const a=s.getRootNode();if(!(a instanceof ShadowRoot))return;if(!a.querySelector('style[data-shadow-styles="reduced-motion"]')){const d=document.createElement("style");d.setAttribute("data-shadow-styles","reduced-motion"),d.textContent=xl,a.appendChild(d)}const i=a.querySelector(`style[data-shadow-styles="${n}"]`);if(i){i.textContent!==e&&(i.textContent=e);return}const r=document.createElement("style");r.setAttribute("data-shadow-styles",n),r.textContent=e,a.appendChild(r)})}const xl=`@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; } -}`,kr={menu:'',map:'',globe:'',heart:'',prayer:'',list:'',users:'',flag:'',target:'',pin:'',monitor:'',chart:'',folder:'',layers:'',flask:'',share:'',beaker:'',chevron:'',grid:'',tree:'',dots:'',embed:'',send:'',poster:'',search:'',book:'',home:'',wifi:''};function yl(e,t=""){const o=kr[e]||kr.map;return``}const Tr="__dxMapsScriptRegistry1";function Sr(){const e=typeof globalThis<"u"?globalThis:self;return e[Tr]||(e[Tr]={loaded:Object.create(null),owners:Object.create(null)})}function Mr(e){try{if(typeof document<"u"&&document.baseURI)return new URL(e,document.baseURI).href;if(typeof location<"u"&&location.href)return new URL(e,location.href).href}catch{}return e}function wl(e){if(typeof document>"u"||!document.querySelectorAll)return null;const t=document.querySelectorAll("script[src]");for(let o=0;o{const a=document.createElement("script");a.src=e,(/^\/plugin-designs\//.test(e)||/\/index\.js(\?|$)/.test(e))&&(a.type="module"),a.onload=()=>s(),a.onerror=()=>{delete o.loaded[n],r(new Error("failed to load "+e))},document.head.appendChild(a)}),o.loaded[n])}function xl(e,t){if(!e)return;const o=Sr(),n=t?Mr(t):"";if(!n)return;const s=o.owners[e];if(!s){o.owners[e]=n;return}s!==n&&typeof console<"u"&&console.warn&&console.warn("[dx-maps] <"+e+"> is shipped by two bundles on this page: "+s+" defined it, "+n+" executed and was discarded. The page is running the first one.")}function kl(e,t){return typeof customElements>"u"||customElements.get(e)?Promise.resolve():Promise.race([customElements.whenDefined(e),new Promise((o,n)=>setTimeout(()=>{customElements.get(e)||n(new Error("<"+e+"> never registered (bundle loaded but defined no element)"))},15e3))])}function Tl(){try{const e=typeof document<"u"&&document.currentScript&&document.currentScript.src||"";return e?e.replace(/[^/]+\/[^/]+$/,"").replace(/\/+$/,"")+"/":""}catch{return""}}const Sl=".vtl{position:absolute;top:0;right:0;bottom:0;left:0;display:grid!important;grid-template-rows:auto 1fr;height:100%;width:100%;min-height:420px;background:#f3f3f1;color:#3b463d;font-family:Public Sans,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;-webkit-font-smoothing:antialiased;--vtl-accent:#92b195;--vtl-border:#d1d4cd;--vtl-elevated:#ffffff;--vtl-accented:#d1d4cd;--vtl-muted:#6d766e;--vtl-rail:256px}.vtl.no-header{grid-template-rows:1fr}.vtl.no-header.has-phone-bar{grid-template-rows:auto 1fr}.vtl-top{flex:0 0 auto;display:flex;align-items:center;gap:10px;box-sizing:border-box;min-height:64px;padding:8px 16px;border-bottom:1px solid var(--vtl-border);background:#fff}.vtl-menu{display:none;font:16px/1 system-ui;color:#3b463d;background:#d1d4cd;border:1px solid #d1d4cd;border-radius:8px;padding:5px 10px;cursor:pointer}.vtl-pbar{display:flex;align-items:center;gap:8px;box-sizing:border-box;height:calc(44px + env(safe-area-inset-top));padding:env(safe-area-inset-top) calc(4px + env(safe-area-inset-right)) 0 calc(4px + env(safe-area-inset-left));background:#fff;box-shadow:inset 0 -1px 0 var(--vtl-border)}.vtl-phone-menu{flex:0 0 auto;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;padding:0;margin:0;font:20px/1 system-ui;color:#3b463d;background:transparent;border:0;border-radius:8px;cursor:pointer}.vtl-phone-menu:hover{background:var(--vtl-accented)}.vtl-phone-menu:focus-visible{outline:2px solid var(--vtl-accent);outline-offset:-2px}.vtl-pbar-end{margin-inline-start:auto;display:inline-flex;align-items:center;min-width:0}.vtl-menu:hover{background:#d1d4cd}.vtl-brand{display:inline-flex;align-items:center}.vtl-brand:empty{display:none}.vtl-title{font-size:15px;font-weight:600;letter-spacing:-.01em;color:#3b463d}.vtl-meta{color:var(--vtl-muted);font-size:12px;margin-left:auto;display:inline-flex;align-items:center;gap:8px}.vtl-body{min-height:0;position:relative;display:flex}.vtl-nav{position:absolute;top:0;bottom:0;left:0;z-index:5;width:256px;box-sizing:border-box;overflow-y:auto;overflow-x:hidden;border-right:1px solid var(--vtl-border);padding:12px 12px 20px;background:#fff;scrollbar-width:thin;scrollbar-color:#c4c8c0 transparent;contain:layout paint;transform:translate(0);transition:transform .2s cubic-bezier(.4,0,.2,1);will-change:transform}.vtl-nav::-webkit-scrollbar{width:8px;height:8px}.vtl-nav::-webkit-scrollbar-track{background:transparent}.vtl-nav::-webkit-scrollbar-thumb{background:#c4c8c0;border-radius:8px}.vtl-nav::-webkit-scrollbar-thumb:hover{background:#9aa197}.vtl-collapse,.vtl-home{display:flex;align-items:center;gap:8px;width:100%;box-sizing:border-box;margin:0 0 8px;padding:7px 10px;border:1px solid var(--vtl-border);border-radius:8px;background:#d1d4cd;color:var(--vtl-muted);font:inherit;font-size:12px;cursor:pointer}.vtl-collapse:hover,.vtl-home:hover{background:var(--vtl-accented);color:#3b463d}.vtl-collapse:focus-visible,.vtl-home:focus-visible{outline:2px solid var(--vtl-accent);outline-offset:-2px}.vtl-collapse-ic{flex:0 0 auto;display:inline-flex;transition:transform .16s ease;transform:rotate(180deg)}.vtl-collapse-ic svg{width:16px;height:16px}.vtl-collapse-tx{white-space:nowrap}.vtl-home{text-decoration:none}.vtl-home-ic{flex:0 0 auto;display:inline-flex}.vtl-home-ic svg{width:16px;height:16px}.vtl-home-tx{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vtl-nav.has-rail-end{display:flex;flex-direction:column;padding-bottom:0}.vtl-nav.has-rail-end>*{flex-shrink:0}.vtl-rail-end{margin-top:auto;position:sticky;bottom:0;padding:8px 0 12px;background:#fff;border-top:1px solid var(--vtl-border)}.vtl-grp{margin-bottom:2px}.vtl-grp+.vtl-grp{margin-top:8px;padding-top:8px;border-top:1px solid var(--vtl-border)}.vtl-tier{width:100%;padding:8px 8px 6px;display:flex;align-items:center;gap:8px;box-sizing:border-box}.vtl-tier-btn{border:0;background:none;color:inherit;font:inherit;cursor:pointer;text-align:left;border-radius:8px}.vtl-tier-btn:hover{background:var(--vtl-accented)}.vtl-tier-btn:focus-visible{outline:2px solid var(--vtl-accent);outline-offset:-2px}.vtl-tier-ic{flex:0 0 auto;display:inline-flex;color:var(--vtl-muted)}.vtl-tier-ic svg{width:15px;height:15px}.vtl-cap{font:700 10px/1 system-ui;letter-spacing:.4px;color:#052e16;background:var(--vtl-accent);border-radius:999px;padding:3px 7px}.vtl-tl{font-weight:600;font-size:11px;letter-spacing:.03em;text-transform:uppercase;color:var(--vtl-muted)}.vtl-td{color:#6b6b6b;font-size:11px;margin-left:auto}.vtl-chev{margin-left:auto;display:inline-flex;color:var(--vtl-muted);transition:transform .16s ease}.vtl-chev svg{width:15px;height:15px}.vtl-chev.open{transform:rotate(90deg)}.vtl-rows{display:flex;flex-direction:column;gap:1px}.vtl-tab{display:flex;align-items:center;gap:11px;width:100%;min-height:48px;text-align:left;border:0;background:none;color:var(--vtl-muted);padding:8px 12px;cursor:pointer;border-radius:var(--vtl-radius,8px);font:inherit;margin:0;transition:background .13s ease,color .13s ease}.vtl-tab:hover{background:var(--vtl-accented);color:#3b463d}.vtl-tab:focus-visible{outline:2px solid var(--vtl-accent);outline-offset:-2px}.vtl-tab.active{background:var(--vtl-accented);color:#3b463d;font-weight:500}.vtl-tab.disabled,.vtl-tab.disabled:hover{background:none;color:#a3a8a4;cursor:not-allowed}.vtl-tab.disabled .vtl-tab-ic,.vtl-tab.disabled .vtl-tab-emoji,.vtl-tab.disabled .vtl-tab-fallback{opacity:.45}.vtl-tab.active .vtl-tab-ic{color:var(--vtl-accent)}.vtl-tab-ic{flex:0 0 auto;display:inline-flex;color:var(--vtl-muted)}.vtl-tab-ic svg{width:20px;height:20px}.vtl-tab-emoji{font-size:17px;line-height:1;flex:0 0 auto}.vtl-tab-fallback{display:none;flex:0 0 auto;width:20px;height:20px;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:var(--vtl-muted);background:var(--vtl-accented);border-radius:6px}.vtl-tab.active .vtl-tab-fallback{color:var(--vtl-accent)}.vtl-tab-text{display:flex;flex-direction:column;min-width:0}.vtl-tab-label{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:6px}.vtl-tab-badge{font:600 9px/1 system-ui;letter-spacing:.3px;text-transform:uppercase;color:var(--vtl-accent);border:1px solid var(--vtl-accent);border-radius:var(--vtl-radius,8px);padding:2px 5px}.vtl-tab-sub{font-size:11px;color:#6b6b6b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vtl-tab-sub code{font-family:ui-monospace,Menlo,monospace}.vtl-tab.active .vtl-tab-sub{color:var(--vtl-muted)}.vtl-main{position:absolute;top:0;bottom:0;right:0;left:256px;min-width:0;display:flex;flex-direction:column}.vtl-content{flex:1 1 auto;position:relative;min-height:0}.vtl-host{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;--profile-min-h:0}.vtl-host-slot{position:relative;min-height:100%}.vtl-host-slot>*{min-height:0;max-height:none}.vtl-host-hint{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center;color:var(--dx-muted, #6d766e);font-size:13px;padding:20px}.vtl-host-hint.err{color:#f87171}.vtl-host-reload{margin-block-start:10px;font:inherit;padding:4px 12px;border-radius:6px;cursor:pointer;background:var(--vtl-accent, #3b463d);color:#fff;border:none}.vtl-host-hint small{color:var(--dx-muted, #6d766e)}.vtl.rail-collapsed .vtl-nav{transform:translate(-184px)}.vtl.rail-collapsed .vtl-main{left:72px}.vtl.rail-collapsed .vtl-collapse,.vtl.rail-collapsed .vtl-home{padding-left:184px;justify-content:flex-start}.vtl.rail-collapsed .vtl-collapse-ic{transform:rotate(0)}.vtl.rail-collapsed .vtl-rail-end{padding-left:184px}.vtl.rail-collapsed .vtl-collapse-tx,.vtl.rail-collapsed .vtl-home-tx{display:none}.vtl.rail-collapsed .vtl-tab{padding-left:188px;gap:0}.vtl.rail-collapsed .vtl-tab-text{display:none}.vtl.rail-collapsed .vtl-tab-emoji{font-size:19px}.vtl.rail-collapsed .vtl-tab-fallback{display:inline-flex}.vtl.rail-collapsed .vtl-tier{padding-left:196px}.vtl.rail-collapsed .vtl-tl,.vtl.rail-collapsed .vtl-td,.vtl.rail-collapsed .vtl-cap,.vtl.rail-collapsed .vtl-chev{display:none}.vtl.rail-collapsed .vtl-grp+.vtl-grp{margin-top:6px;padding-top:6px}@media (max-width: 760px){.vtl-top{min-height:56px}.vtl-menu{display:inline-block}.vtl-meta{display:none}.vtl-nav{z-index:20;width:256px;box-shadow:none;transform:translate(-100%)}.vtl.nav-open .vtl-nav{transform:translate(0);z-index:100000;box-shadow:0 0 28px #0000008c}.vtl-main{left:0}.vtl.rail-collapsed .vtl-nav{transform:translate(-100%)}.vtl.rail-collapsed.nav-open .vtl-nav{transform:translate(0)}.vtl.rail-collapsed .vtl-main{left:0}.vtl.rail-collapsed .vtl-collapse,.vtl.rail-collapsed .vtl-home{padding-left:10px;justify-content:flex-start}.vtl.rail-collapsed .vtl-collapse-ic{transform:rotate(180deg)}.vtl.rail-collapsed .vtl-collapse-tx,.vtl.rail-collapsed .vtl-home-tx{display:inline}.vtl.rail-collapsed .vtl-tab{padding-left:10px;gap:11px}.vtl.rail-collapsed .vtl-tab-text{display:flex}.vtl.rail-collapsed .vtl-tab-fallback{display:none}.vtl.rail-collapsed .vtl-tier{padding-left:8px}.vtl.rail-collapsed .vtl-tl,.vtl.rail-collapsed .vtl-td,.vtl.rail-collapsed .vtl-cap,.vtl.rail-collapsed .vtl-chev{display:inline}}.vtl:dir(rtl) .vtl-nav{left:auto;right:0;border-right:0;border-left:1px solid var(--vtl-border)}.vtl:dir(rtl) .vtl-main{left:0;right:256px}.vtl:dir(rtl) .vtl-tab,.vtl:dir(rtl) .vtl-tier-btn{text-align:right}.vtl:dir(rtl) .vtl-meta,.vtl:dir(rtl) .vtl-td,.vtl:dir(rtl) .vtl-chev{margin-left:0;margin-right:auto}.vtl:dir(rtl) .vtl-chev:not(.open){transform:scaleX(-1)}.vtl:dir(rtl) .vtl-collapse-ic svg{transform:scaleX(-1)}.vtl.rail-collapsed:dir(rtl) .vtl-nav{transform:translate(184px)}.vtl.rail-collapsed:dir(rtl) .vtl-main{left:0;right:72px}.vtl.rail-collapsed:dir(rtl) .vtl-collapse,.vtl.rail-collapsed:dir(rtl) .vtl-home{padding-left:10px;padding-right:184px}.vtl.rail-collapsed:dir(rtl) .vtl-tab{padding-left:12px;padding-right:188px}.vtl.rail-collapsed:dir(rtl) .vtl-tier{padding-left:8px;padding-right:196px}.vtl.rail-collapsed:dir(rtl) .vtl-rail-end{padding-left:0;padding-right:184px}@media (max-width: 760px){.vtl:dir(rtl) .vtl-nav{transform:translate(100%)}.vtl.nav-open:dir(rtl) .vtl-nav{transform:translate(0)}.vtl:dir(rtl) .vtl-main,.vtl.rail-collapsed:dir(rtl) .vtl-main{left:0;right:0}.vtl.rail-collapsed:dir(rtl) .vtl-nav{transform:translate(100%)}.vtl.rail-collapsed.nav-open:dir(rtl) .vtl-nav{transform:translate(0)}.vtl.rail-collapsed:dir(rtl) .vtl-collapse,.vtl.rail-collapsed:dir(rtl) .vtl-home{padding-left:10px;padding-right:10px}.vtl.rail-collapsed:dir(rtl) .vtl-tab{padding-left:12px;padding-right:10px}.vtl.rail-collapsed:dir(rtl) .vtl-tier{padding-left:8px;padding-right:8px}}@media (prefers-reduced-motion: reduce){.vtl-nav,.vtl-collapse-ic,.vtl-tab,.vtl-tier,.vtl-pbar,.vtl-phone-menu,.vtl-rail-end,.vtl-scrim{transition:none!important;animation:none!important}}",Ml=(e,t)=>bl(e)||t,Ll=e=>Lr(e);function Ol(e,t=5e3){return typeof customElements>"u"||customElements.get(e)?Promise.resolve():customElements.whenDefined?Promise.race([customElements.whenDefined(e),new Promise((o,n)=>setTimeout(()=>n(new Error("timeout waiting for <"+e+">")),t))]):Promise.resolve()}const Pl=` +}`,Ta={menu:'',map:'',globe:'',heart:'',prayer:'',list:'',users:'',flag:'',target:'',pin:'',monitor:'',chart:'',folder:'',layers:'',flask:'',share:'',beaker:'',chevron:'',grid:'',tree:'',dots:'',embed:'',send:'',poster:'',search:'',book:'',home:'',wifi:''};function Sa(e,t=""){const o=Ta[e]||Ta.map;return``}const Ma="__dxMapsScriptRegistry1";function La(){const e=typeof globalThis<"u"?globalThis:self;return e[Ma]||(e[Ma]={loaded:Object.create(null),owners:Object.create(null)})}function Oa(e){try{if(typeof document<"u"&&document.baseURI)return new URL(e,document.baseURI).href;if(typeof location<"u"&&location.href)return new URL(e,location.href).href}catch{}return e}function kl(e){if(typeof document>"u"||!document.querySelectorAll)return null;const t=document.querySelectorAll("script[src]");for(let o=0;o{const i=document.createElement("script");i.src=e,(/^\/plugin-designs\//.test(e)||/\/index\.js(\?|$)/.test(e))&&(i.type="module"),i.onload=()=>s(),i.onerror=()=>{delete o.loaded[n],a(new Error("failed to load "+e))},document.head.appendChild(i)}),o.loaded[n])}function Tl(e,t){if(!e)return;const o=La(),n=t?Oa(t):"";if(!n)return;const s=o.owners[e];if(!s){o.owners[e]=n;return}s!==n&&typeof console<"u"&&console.warn&&console.warn("[dx-maps] <"+e+"> is shipped by two bundles on this page: "+s+" defined it, "+n+" executed and was discarded. The page is running the first one.")}function Sl(e,t){return typeof customElements>"u"||customElements.get(e)?Promise.resolve():Promise.race([customElements.whenDefined(e),new Promise((o,n)=>setTimeout(()=>{customElements.get(e)||n(new Error("<"+e+"> never registered (bundle loaded but defined no element)"))},15e3))])}function Ml(){try{const e=typeof document<"u"&&document.currentScript&&document.currentScript.src||"";return e?e.replace(/[^/]+\/[^/]+$/,"").replace(/\/+$/,"")+"/":""}catch{return""}}const Ll=".vtl{position:absolute;top:0;right:0;bottom:0;left:0;display:grid!important;grid-template-rows:auto 1fr;height:100%;width:100%;min-height:420px;background:#f3f3f1;color:#3b463d;font-family:Public Sans,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;-webkit-font-smoothing:antialiased;--vtl-accent:#92b195;--vtl-border:#d1d4cd;--vtl-elevated:#ffffff;--vtl-accented:#d1d4cd;--vtl-muted:#6d766e;--vtl-rail:256px}.vtl.no-header{grid-template-rows:1fr}.vtl.no-header.has-phone-bar{grid-template-rows:auto 1fr}.vtl-top{flex:0 0 auto;display:flex;align-items:center;gap:10px;box-sizing:border-box;min-height:64px;padding:8px 16px;border-bottom:1px solid var(--vtl-border);background:#fff}.vtl-menu{display:none;font:16px/1 system-ui;color:#3b463d;background:#d1d4cd;border:1px solid #d1d4cd;border-radius:8px;padding:5px 10px;cursor:pointer}.vtl-pbar{display:flex;align-items:center;gap:8px;box-sizing:border-box;height:calc(44px + env(safe-area-inset-top));padding:env(safe-area-inset-top) calc(4px + env(safe-area-inset-right)) 0 calc(4px + env(safe-area-inset-left));background:#fff;box-shadow:inset 0 -1px 0 var(--vtl-border)}.vtl-phone-menu{flex:0 0 auto;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;padding:0;margin:0;font:20px/1 system-ui;color:#3b463d;background:transparent;border:0;border-radius:8px;cursor:pointer}.vtl-phone-menu:hover{background:var(--vtl-accented)}.vtl-phone-menu:focus-visible{outline:2px solid var(--vtl-accent);outline-offset:-2px}.vtl-pbar-end{margin-inline-start:auto;display:inline-flex;align-items:center;min-width:0}.vtl-menu:hover{background:#d1d4cd}.vtl-brand{display:inline-flex;align-items:center}.vtl-brand:empty{display:none}.vtl-title{font-size:15px;font-weight:600;letter-spacing:-.01em;color:#3b463d}.vtl-meta{color:var(--vtl-muted);font-size:12px;margin-left:auto;display:inline-flex;align-items:center;gap:8px}.vtl-body{min-height:0;position:relative;display:flex}.vtl-nav{position:absolute;top:0;bottom:0;left:0;z-index:5;width:256px;box-sizing:border-box;overflow-y:auto;overflow-x:hidden;border-right:1px solid var(--vtl-border);padding:12px 12px 20px;background:#fff;scrollbar-width:thin;scrollbar-color:#c4c8c0 transparent;contain:layout paint;transform:translate(0);transition:transform .2s cubic-bezier(.4,0,.2,1);will-change:transform}.vtl-nav::-webkit-scrollbar{width:8px;height:8px}.vtl-nav::-webkit-scrollbar-track{background:transparent}.vtl-nav::-webkit-scrollbar-thumb{background:#c4c8c0;border-radius:8px}.vtl-nav::-webkit-scrollbar-thumb:hover{background:#9aa197}.vtl-collapse,.vtl-home{display:flex;align-items:center;gap:8px;width:100%;box-sizing:border-box;margin:0 0 8px;padding:7px 10px;border:1px solid var(--vtl-border);border-radius:8px;background:#d1d4cd;color:var(--vtl-muted);font:inherit;font-size:12px;cursor:pointer}.vtl-collapse:hover,.vtl-home:hover{background:var(--vtl-accented);color:#3b463d}.vtl-collapse:focus-visible,.vtl-home:focus-visible{outline:2px solid var(--vtl-accent);outline-offset:-2px}.vtl-collapse-ic{flex:0 0 auto;display:inline-flex;transition:transform .16s ease;transform:rotate(180deg)}.vtl-collapse-ic svg{width:16px;height:16px}.vtl-collapse-tx{white-space:nowrap}.vtl-home{text-decoration:none}.vtl-home-ic{flex:0 0 auto;display:inline-flex}.vtl-home-ic svg{width:16px;height:16px}.vtl-home-tx{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vtl-nav.has-rail-end{display:flex;flex-direction:column;padding-bottom:0}.vtl-nav.has-rail-end>*{flex-shrink:0}.vtl-rail-end{margin-top:auto;position:sticky;bottom:0;padding:8px 0 12px;background:#fff;border-top:1px solid var(--vtl-border)}.vtl-grp{margin-bottom:2px}.vtl-grp+.vtl-grp{margin-top:8px;padding-top:8px;border-top:1px solid var(--vtl-border)}.vtl-tier{width:100%;padding:8px 8px 6px;display:flex;align-items:center;gap:8px;box-sizing:border-box}.vtl-tier-btn{border:0;background:none;color:inherit;font:inherit;cursor:pointer;text-align:left;border-radius:8px}.vtl-tier-btn:hover{background:var(--vtl-accented)}.vtl-tier-btn:focus-visible{outline:2px solid var(--vtl-accent);outline-offset:-2px}.vtl-tier-ic{flex:0 0 auto;display:inline-flex;color:var(--vtl-muted)}.vtl-tier-ic svg{width:15px;height:15px}.vtl-cap{font:700 10px/1 system-ui;letter-spacing:.4px;color:#052e16;background:var(--vtl-accent);border-radius:999px;padding:3px 7px}.vtl-tl{font-weight:600;font-size:11px;letter-spacing:.03em;text-transform:uppercase;color:var(--vtl-muted)}.vtl-td{color:#6b6b6b;font-size:11px;margin-left:auto}.vtl-chev{margin-left:auto;display:inline-flex;color:var(--vtl-muted);transition:transform .16s ease}.vtl-chev svg{width:15px;height:15px}.vtl-chev.open{transform:rotate(90deg)}.vtl-rows{display:flex;flex-direction:column;gap:1px}.vtl-tab{display:flex;align-items:center;gap:11px;width:100%;min-height:48px;text-align:left;border:0;background:none;color:var(--vtl-muted);padding:8px 12px;cursor:pointer;border-radius:var(--vtl-radius,8px);font:inherit;margin:0;transition:background .13s ease,color .13s ease}.vtl-tab:hover{background:var(--vtl-accented);color:#3b463d}.vtl-tab:focus-visible{outline:2px solid var(--vtl-accent);outline-offset:-2px}.vtl-tab.active{background:var(--vtl-accented);color:#3b463d;font-weight:500}.vtl-tab.disabled,.vtl-tab.disabled:hover{background:none;color:#a3a8a4;cursor:not-allowed}.vtl-tab.disabled .vtl-tab-ic,.vtl-tab.disabled .vtl-tab-emoji,.vtl-tab.disabled .vtl-tab-fallback{opacity:.45}.vtl-tab.active .vtl-tab-ic{color:var(--vtl-accent)}.vtl-tab-ic{flex:0 0 auto;display:inline-flex;color:var(--vtl-muted)}.vtl-tab-ic svg{width:20px;height:20px}.vtl-tab-emoji{font-size:17px;line-height:1;flex:0 0 auto}.vtl-tab-fallback{display:none;flex:0 0 auto;width:20px;height:20px;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:var(--vtl-muted);background:var(--vtl-accented);border-radius:6px}.vtl-tab.active .vtl-tab-fallback{color:var(--vtl-accent)}.vtl-tab-text{display:flex;flex-direction:column;min-width:0}.vtl-tab-label{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:6px}.vtl-tab-badge{font:600 9px/1 system-ui;letter-spacing:.3px;text-transform:uppercase;color:var(--vtl-accent);border:1px solid var(--vtl-accent);border-radius:var(--vtl-radius,8px);padding:2px 5px}.vtl-tab-sub{font-size:11px;color:#6b6b6b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vtl-tab-sub code{font-family:ui-monospace,Menlo,monospace}.vtl-tab.active .vtl-tab-sub{color:var(--vtl-muted)}.vtl-main{position:absolute;top:0;bottom:0;right:0;left:256px;min-width:0;display:flex;flex-direction:column}.vtl-content{flex:1 1 auto;position:relative;min-height:0}.vtl-host{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;--profile-min-h:0}.vtl-host-slot{position:relative;min-height:100%}.vtl-host-slot>*{min-height:0;max-height:none}.vtl-host-hint{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center;color:var(--dx-muted, #6d766e);font-size:13px;padding:20px}.vtl-host-hint.err{color:#f87171}.vtl-host-reload{margin-block-start:10px;font:inherit;padding:4px 12px;border-radius:6px;cursor:pointer;background:var(--vtl-accent, #3b463d);color:#fff;border:none}.vtl-host-hint small{color:var(--dx-muted, #6d766e)}.vtl.rail-collapsed .vtl-nav{transform:translate(-184px)}.vtl.rail-collapsed .vtl-main{left:72px}.vtl.rail-collapsed .vtl-collapse,.vtl.rail-collapsed .vtl-home{padding-left:184px;justify-content:flex-start}.vtl.rail-collapsed .vtl-collapse-ic{transform:rotate(0)}.vtl.rail-collapsed .vtl-rail-end{padding-left:184px}.vtl.rail-collapsed .vtl-collapse-tx,.vtl.rail-collapsed .vtl-home-tx{display:none}.vtl.rail-collapsed .vtl-tab{padding-left:188px;gap:0}.vtl.rail-collapsed .vtl-tab-text{display:none}.vtl.rail-collapsed .vtl-tab-emoji{font-size:19px}.vtl.rail-collapsed .vtl-tab-fallback{display:inline-flex}.vtl.rail-collapsed .vtl-tier{padding-left:196px}.vtl.rail-collapsed .vtl-tl,.vtl.rail-collapsed .vtl-td,.vtl.rail-collapsed .vtl-cap,.vtl.rail-collapsed .vtl-chev{display:none}.vtl.rail-collapsed .vtl-grp+.vtl-grp{margin-top:6px;padding-top:6px}@media (max-width: 760px){.vtl-top{min-height:56px}.vtl-menu{display:inline-block}.vtl-meta{display:none}.vtl-nav{z-index:20;width:256px;box-shadow:none;transform:translate(-100%)}.vtl.nav-open .vtl-nav{transform:translate(0);z-index:100000;box-shadow:0 0 28px #0000008c}.vtl-main{left:0}.vtl.rail-collapsed .vtl-nav{transform:translate(-100%)}.vtl.rail-collapsed.nav-open .vtl-nav{transform:translate(0)}.vtl.rail-collapsed .vtl-main{left:0}.vtl.rail-collapsed .vtl-collapse,.vtl.rail-collapsed .vtl-home{padding-left:10px;justify-content:flex-start}.vtl.rail-collapsed .vtl-collapse-ic{transform:rotate(180deg)}.vtl.rail-collapsed .vtl-collapse-tx,.vtl.rail-collapsed .vtl-home-tx{display:inline}.vtl.rail-collapsed .vtl-tab{padding-left:10px;gap:11px}.vtl.rail-collapsed .vtl-tab-text{display:flex}.vtl.rail-collapsed .vtl-tab-fallback{display:none}.vtl.rail-collapsed .vtl-tier{padding-left:8px}.vtl.rail-collapsed .vtl-tl,.vtl.rail-collapsed .vtl-td,.vtl.rail-collapsed .vtl-cap,.vtl.rail-collapsed .vtl-chev{display:inline}}.vtl:dir(rtl) .vtl-nav{left:auto;right:0;border-right:0;border-left:1px solid var(--vtl-border)}.vtl:dir(rtl) .vtl-main{left:0;right:256px}.vtl:dir(rtl) .vtl-tab,.vtl:dir(rtl) .vtl-tier-btn{text-align:right}.vtl:dir(rtl) .vtl-meta,.vtl:dir(rtl) .vtl-td,.vtl:dir(rtl) .vtl-chev{margin-left:0;margin-right:auto}.vtl:dir(rtl) .vtl-chev:not(.open){transform:scaleX(-1)}.vtl:dir(rtl) .vtl-collapse-ic svg{transform:scaleX(-1)}.vtl.rail-collapsed:dir(rtl) .vtl-nav{transform:translate(184px)}.vtl.rail-collapsed:dir(rtl) .vtl-main{left:0;right:72px}.vtl.rail-collapsed:dir(rtl) .vtl-collapse,.vtl.rail-collapsed:dir(rtl) .vtl-home{padding-left:10px;padding-right:184px}.vtl.rail-collapsed:dir(rtl) .vtl-tab{padding-left:12px;padding-right:188px}.vtl.rail-collapsed:dir(rtl) .vtl-tier{padding-left:8px;padding-right:196px}.vtl.rail-collapsed:dir(rtl) .vtl-rail-end{padding-left:0;padding-right:184px}@media (max-width: 760px){.vtl:dir(rtl) .vtl-nav{transform:translate(100%)}.vtl.nav-open:dir(rtl) .vtl-nav{transform:translate(0)}.vtl:dir(rtl) .vtl-main,.vtl.rail-collapsed:dir(rtl) .vtl-main{left:0;right:0}.vtl.rail-collapsed:dir(rtl) .vtl-nav{transform:translate(100%)}.vtl.rail-collapsed.nav-open:dir(rtl) .vtl-nav{transform:translate(0)}.vtl.rail-collapsed:dir(rtl) .vtl-collapse,.vtl.rail-collapsed:dir(rtl) .vtl-home{padding-left:10px;padding-right:10px}.vtl.rail-collapsed:dir(rtl) .vtl-tab{padding-left:12px;padding-right:10px}.vtl.rail-collapsed:dir(rtl) .vtl-tier{padding-left:8px;padding-right:8px}}@media (prefers-reduced-motion: reduce){.vtl-nav,.vtl-collapse-ic,.vtl-tab,.vtl-tier,.vtl-pbar,.vtl-phone-menu,.vtl-rail-end,.vtl-scrim{transition:none!important;animation:none!important}}",Ol=(e,t)=>ka(e)||t,Al=e=>Aa(e);function Pl(e,t=5e3){return typeof customElements>"u"||customElements.get(e)?Promise.resolve():customElements.whenDefined?Promise.race([customElements.whenDefined(e),new Promise((o,n)=>setTimeout(()=>n(new Error("timeout waiting for <"+e+">")),t))]):Promise.resolve()}const Cl=` .vtl { position:absolute; inset:0; display:grid !important; grid-template-rows:auto 1fr; height:100%; width:100%; min-height:420px; background:#f3f3f1; color:#3b463d; font-family:'Public Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif; -webkit-font-smoothing:antialiased; --vtl-accent:#92b195; --vtl-border:#d1d4cd; --vtl-elevated:#ffffff; --vtl-accented:#d1d4cd; --vtl-muted:#6d766e; --vtl-rail:256px; } .vtl.no-header { grid-template-rows:1fr; } .vtl.no-header.has-phone-bar { grid-template-rows:auto 1fr; } @@ -159,4 +159,4 @@ @media (prefers-reduced-motion: reduce) { .vtl-nav, .vtl-collapse-ic, .vtl-tab, .vtl-tier, .vtl-pbar, .vtl-phone-menu, .vtl-rail-end, .vtl-scrim { transition: none !important; animation: none !important; } } -`,Al=Yo({name:"VerticalTabsLayout",components:{BackToTopButton:vr},props:{active:{type:String,default:""},title:{type:String,default:""},items:{type:Array,default:()=>[]},groups:{type:Array,default:()=>[]},navLabel:{type:String,default:"Sections"},labels:{type:Object,default:()=>({})},initialNavOpen:{type:Boolean,default:!0},header:{type:Boolean,default:!0},initialRailCollapsed:{type:Boolean,default:!1},homeHref:{type:String,default:""},homeLabel:{type:String,default:""}},emits:["update:active"],setup(){return vl(Pl,"vertical-tabs-layout"),{T:Ml}},data(){return{navOpen:this.initialNavOpen,railCollapsed:this.initialRailCollapsed,_tabEls:{},folderOverride:{},narrow:!1,_mql:null,_onMedia:null,activatedKeys:{},hostState:{},hostError:{},_hostSlots:{},_hostMounted:{},hostEls:{}}},computed:{phoneBarShown(){return this.narrow&&!this.header},railEndShown(){return!this.narrow&&!this.header},activeHostEl(){return this.hostEls[this.active]||null},railShown(){return this.narrow?this.navOpen:!0},homeLink(){const e=String(this.homeHref||"").trim();return!e||/^(javascript|data|vbscript):/i.test(e.replace(/[\u0000- ]/g,""))?"":e},homeText(){return this.homeLabel||this.label("home")},allRows(){if(this.groups&&this.groups.length){const e=[];for(const t of this.groups)for(const o of t.rows||[])e.push(o);return e}return this.items},orderedKeys(){return this.allRows.map(e=>e.key)},elementRows(){return this.allRows.filter(e=>e&&e.element)},mountedElementRows(){return this.elementRows.filter(e=>this.activatedKeys[e.key])}},watch:{active:{immediate:!0,handler(e){this.activateElement(e)}}},mounted(){try{window.matchMedia&&(this._mql=window.matchMedia("(max-width: 760px)"),this.narrow=this._mql.matches,this.reconcileForWidth(),this._onMedia=e=>{this.narrow=e.matches,this.reconcileForWidth()},this._mql.addEventListener?this._mql.addEventListener("change",this._onMedia):this._mql.addListener&&this._mql.addListener(this._onMedia))}catch{}this.$nextTick(()=>this.activateElement(this.active))},beforeUnmount(){try{this._mql&&this._onMedia&&(this._mql.removeEventListener?this._mql.removeEventListener("change",this._onMedia):this._mql.removeListener&&this._mql.removeListener(this._onMedia))}catch{}this._mql=null,this._onMedia=null},methods:{registerTab(e,t){t&&(this._tabEls[e]=t)},isNarrow(){return this.narrow},reconcileForWidth(){this.narrow?(this.navOpen=!1,this.railCollapsed=!1):this.navOpen=!0},label(e){const t={toggleList:"Toggle list",openViews:"Open the list of views",expandList:"Expand list",collapseList:"Collapse list",collapse:"Collapse",home:"Back to homepage"};return this.labels&&this.labels[e]||t[e]},expandRail(){!this.narrow&&this.railCollapsed&&(this.railCollapsed=!1)},toggleRail(){this.narrow?this.navOpen=!this.navOpen:this.railCollapsed=!this.railCollapsed},setHostSlot(e,t){t&&(this._hostSlots[e]=t,this.$nextTick(()=>this.mountHostElement(e)))},activateElement(e){!e||!this.elementRows.find(o=>o.key===e)||(this.activatedKeys[e]||(this.activatedKeys={...this.activatedKeys,[e]:!0},this.$nextTick(()=>this.watchContextLoss(e)),this.hostState={...this.hostState,[e]:"loading"}),this.$nextTick(()=>this.mountHostElement(e)))},deepCanvases(e,t=[]){if(!e)return t;for(const o of e.querySelectorAll("*"))o.tagName==="CANVAS"&&t.push(o),o.shadowRoot&&this.deepCanvases(o.shadowRoot,t);return t},watchContextLoss(e){const t=this._hostSlots[e];if(t)for(const o of this.deepCanvases(t))o.__vtlLossBound||(o.__vtlLossBound=!0,o.addEventListener("webglcontextlost",()=>{this.hostState={...this.hostState,[e]:"lost"}},{once:!0}))},reloadHostElement(e){const t=this._hostSlots[e];t&&(t.innerHTML=""),this._hostMounted[e]=!1,this.hostState={...this.hostState,[e]:"loading"},this.$nextTick(()=>this.mountHostElement(e))},mountHostElement(e){if(this._hostMounted[e])return;const t=this.elementRows.find(n=>n.key===e),o=this._hostSlots[e];!t||!o||(this._hostMounted[e]=!0,this.hostState={...this.hostState,[e]:"loading"},Ll(t.src).then(()=>Ol(t.element)).then(()=>{xl(t.element,t.src),o.innerHTML="";const n=document.createElement(t.element),s=t.attrs||{};for(const r in s){const a=s[r],i=a!=null&&typeof a=="object"?JSON.stringify(a):String(a);try{n[r]=a}catch{}try{n.setAttribute(r,i)}catch{}}n.style.cssText="display:block;position:absolute;inset:0;width:100%;height:100%;",o.appendChild(n);for(const r of[0,250,1500])setTimeout(()=>this.watchContextLoss(e),r);this.hostState={...this.hostState,[e]:"ready"}}).catch(n=>{this._hostMounted[e]=!1,this.hostState={...this.hostState,[e]:"error"},this.hostError={...this.hostError,[e]:n&&n.message||String(n)}}))},iconSvg(e){return e?yl(e):""},initial(e){const t=(e||"").trim();return t?t.charAt(0).toUpperCase():"•"},isFolderClosed(e){const t=this.folderOverride[e.key];return t!=null?!t:e.open!==!0},toggleFolder(e){const t=this.folderOverride[e],o=(this.groups||[]).find(s=>s.key===e),n=t??(o&&o.open===!0);this.folderOverride={...this.folderOverride,[e]:!n}},pick(e){this.$emit("update:active",e),this.narrow&&(this.navOpen=!1)},onKey(e){const t=this.orderedKeys;if(!t.length)return;const o=t.indexOf(this.active);let n=-1;if(e.key==="ArrowDown"||e.key==="ArrowRight")n=(o+1)%t.length;else if(e.key==="ArrowUp"||e.key==="ArrowLeft")n=(o-1+t.length)%t.length;else if(e.key==="Home")n=0;else if(e.key==="End")n=t.length-1;else return;e.preventDefault();const s=t[n];this.pick(s),this.$nextTick(()=>{const r=this._tabEls[s];r&&r.focus&&r.focus()})}}}),Cl={key:0,class:"vtl-top"},Fl=["aria-expanded","aria-label"],Il={class:"vtl-brand"},Nl={class:"vtl-title"},El={class:"vtl-meta"},Rl={key:1,class:"vtl-pbar"},Wl=["aria-expanded","aria-label"],Dl={class:"vtl-pbar-end"},zl={class:"vtl-body"},Hl=["aria-label","aria-hidden","role","aria-orientation"],Bl=["href","aria-label","title"],Ul=["innerHTML"],jl={class:"vtl-home-tx"},Vl=["aria-expanded","aria-label"],ql=["innerHTML"],Kl={class:"vtl-collapse-tx"},Gl=["aria-expanded","onClick"],Jl={key:0,class:"vtl-cap"},Xl={class:"vtl-tl"},Zl={key:1,class:"vtl-td"},Yl=["innerHTML"],Ql={key:1,class:"vtl-tier"},ec={key:0,class:"vtl-cap"},tc={class:"vtl-tl"},oc={key:1,class:"vtl-td"},nc={class:"vtl-rows"},sc=["aria-selected","aria-disabled","tabindex","onClick"],rc=["innerHTML"],ic={key:1,class:"vtl-tab-emoji","aria-hidden":"true"},ac={key:2,class:"vtl-tab-fallback","aria-hidden":"true"},lc={class:"vtl-tab-text"},cc={class:"vtl-tab-label"},pc={key:0,class:"vtl-tab-badge"},dc={key:0,class:"vtl-tab-sub"},uc=["innerHTML"],fc=["aria-selected","aria-disabled","tabindex","onClick"],hc=["innerHTML"],gc={key:1,class:"vtl-tab-emoji","aria-hidden":"true"},mc={key:2,class:"vtl-tab-fallback","aria-hidden":"true"},$c={class:"vtl-tab-text"},bc={class:"vtl-tab-label"},vc={key:0,class:"vtl-tab-sub"},_c={key:4,class:"vtl-rail-end"},yc={class:"vtl-main"},wc={class:"vtl-content"},xc=["hidden"],kc={key:0,class:"vtl-host-hint"},Tc={key:1,class:"vtl-host-hint"},Sc=["onClick"],Mc={key:2,class:"vtl-host-hint err"};function Lc(e,t,o,n,s,r){const a=tn("BackToTopButton");return A(),F("div",{class:Ke(["vtl",{"nav-open":e.navOpen,"rail-collapsed":e.railCollapsed,"no-header":!e.header,"has-phone-bar":e.phoneBarShown}])},[e.header?(A(),F("header",Cl,[I("button",{class:"vtl-menu",type:"button","aria-expanded":String(e.navOpen),onClick:t[0]||(t[0]=i=>e.navOpen=!e.navOpen),"aria-label":e.label("toggleList")},"☰",8,Fl),I("span",Il,[tt(e.$slots,"brand")]),I("b",Nl,D(e.title),1),I("span",El,[tt(e.$slots,"meta")])])):ie("",!0),e.phoneBarShown?(A(),F("div",Rl,[I("button",{class:"vtl-phone-menu",type:"button","aria-expanded":String(e.navOpen),onClick:t[1]||(t[1]=i=>e.navOpen=!e.navOpen),"aria-label":e.label("toggleList")},"☰",8,Wl),I("span",Dl,[tt(e.$slots,"phone-end")])])):ie("",!0),e.narrow?(A(),At(a,{key:2,target:e.activeHostEl,labels:{backToTop:e.T("actions.backToTop","Back to top")}},null,8,["target","labels"])):ie("",!0),I("div",zl,[I("nav",{class:Ke(["vtl-nav",{"has-rail-end":e.railEndShown&&!!e.$slots["rail-end"]}]),"aria-label":e.navLabel,"aria-hidden":String(!e.railShown),role:e.$slots.rail?null:"tablist","aria-orientation":e.$slots.rail?null:"vertical"},[e.homeLink?(A(),F("a",{key:0,class:"vtl-home",href:e.homeLink,target:"_top","aria-label":e.homeText,title:e.railCollapsed&&!e.narrow?e.homeText:null},[I("span",{class:"vtl-home-ic","aria-hidden":"true",innerHTML:e.iconSvg("home")},null,8,Ul),I("span",jl,D(e.homeText),1)],8,Bl)):ie("",!0),I("button",{type:"button",class:"vtl-collapse","aria-expanded":String(!e.railCollapsed),"aria-label":e.railCollapsed?e.label("expandList"):e.label("collapseList"),onClick:t[2]||(t[2]=(...i)=>e.toggleRail&&e.toggleRail(...i))},[I("span",{class:"vtl-collapse-ic","aria-hidden":"true",innerHTML:e.iconSvg("chevron")},null,8,ql),I("span",Kl,D(e.label("collapse")),1)],8,Vl),e.$slots.rail?tt(e.$slots,"rail",{collapsed:e.railCollapsed&&!e.narrow,expand:e.expandRail,pick:e.pick},void 0,void 0,1):e.groups&&e.groups.length?(A(!0),F(oe,{key:2},Mt(e.groups,i=>(A(),F("div",{class:"vtl-grp",key:i.key},[i.folder?(A(),F("button",{key:0,type:"button",class:"vtl-tier vtl-tier-btn","aria-expanded":String(!e.isFolderClosed(i)),onClick:l=>e.toggleFolder(i.key)},[i.badge?(A(),F("span",Jl,D(i.badge),1)):ie("",!0),I("span",Xl,D(i.label),1),i.count!=null?(A(),F("span",Zl,D(i.count),1)):ie("",!0),I("span",{class:Ke(["vtl-chev",{open:!e.isFolderClosed(i)}]),"aria-hidden":"true",innerHTML:e.iconSvg("chevron")},null,10,Yl)],8,Gl)):(A(),F("div",Ql,[i.badge?(A(),F("span",ec,D(i.badge),1)):ie("",!0),I("span",tc,D(i.label),1),i.count!=null?(A(),F("span",oc,D(i.count),1)):ie("",!0)])),Jo(I("div",nc,[(A(!0),F(oe,null,Mt(i.rows,l=>(A(),F("button",{key:l.key,type:"button",role:"tab",class:Ke(["vtl-tab",{active:l.key===e.active,disabled:l.disabled}]),"aria-selected":String(l.key===e.active),"aria-disabled":l.disabled?"true":null,tabindex:l.key===e.active?0:-1,ref_for:!0,ref:p=>e.registerTab(l.key,p),onClick:p=>e.pick(l.key),onKeydown:t[3]||(t[3]=p=>e.onKey(p))},[l.icon?(A(),F("span",{key:0,class:"vtl-tab-ic","aria-hidden":"true",innerHTML:e.iconSvg(l.icon)},null,8,rc)):l.emoji?(A(),F("span",ic,D(l.emoji),1)):(A(),F("span",ac,D(e.initial(l.label)),1)),I("span",lc,[I("span",cc,[gt(D(l.label),1),l.badge?(A(),F("span",pc,D(l.badge),1)):ie("",!0)]),l.sub?(A(),F("span",dc,[I("span",{innerHTML:l.sub},null,8,uc)])):ie("",!0)])],42,sc))),128))],512),[[gn,!i.folder||!e.isFolderClosed(i)]])]))),128)):(A(!0),F(oe,{key:3},Mt(e.items,i=>(A(),F("button",{key:i.key,type:"button",role:"tab",class:Ke(["vtl-tab",{active:i.key===e.active,disabled:i.disabled}]),"aria-selected":String(i.key===e.active),"aria-disabled":i.disabled?"true":null,tabindex:i.key===e.active?0:-1,ref_for:!0,ref:l=>e.registerTab(i.key,l),onClick:l=>e.pick(i.key),onKeydown:t[4]||(t[4]=l=>e.onKey(l))},[i.icon?(A(),F("span",{key:0,class:"vtl-tab-ic","aria-hidden":"true",innerHTML:e.iconSvg(i.icon)},null,8,hc)):i.emoji?(A(),F("span",gc,D(i.emoji),1)):(A(),F("span",mc,D(e.initial(i.label)),1)),I("span",$c,[I("span",bc,D(i.label),1),i.sub?(A(),F("span",vc,D(i.sub),1)):ie("",!0)])],42,fc))),128)),e.railEndShown&&e.$slots["rail-end"]?(A(),F("div",_c,[tt(e.$slots,"rail-end",{collapsed:e.railCollapsed})])):ie("",!0)],10,Hl),I("main",yc,[e.header?tt(e.$slots,"toolbar",{},void 0,void 0,0):ie("",!0),I("div",wc,[(A(!0),F(oe,null,Mt(e.mountedElementRows,i=>Jo((A(),F("section",{key:i.key,class:"vtl-host",hidden:i.key!==e.active,ref_for:!0,ref:l=>{l?e.hostEls[i.key]=l:delete e.hostEls[i.key]}},[I("div",{class:"vtl-host-slot",ref_for:!0,ref:l=>e.setHostSlot(i.key,l)},null,512),e.hostState[i.key]==="loading"?(A(),F("div",kc,D(e.T("messages.loadingNamed","Loading {name}…").replace("{name}",i.label)),1)):e.hostState[i.key]==="lost"?(A(),F("div",Tc,[gt(D(e.T("messages.mapContextLost","This map was unloaded to free graphics memory."))+" ",1),I("button",{type:"button",class:"vtl-host-reload",onClick:l=>e.reloadHostElement(i.key)},D(e.T("buttons.reloadMap","Reload Map")),9,Sc)])):e.hostState[i.key]==="error"?(A(),F("div",Mc,[gt(D(e.T("messages.couldNotLoadNamed","Could not load {name}.").replace("{name}",i.label)),1),t[5]||(t[5]=I("br",null,null,-1)),I("small",null,D(e.hostError[i.key]),1)])):ie("",!0)],8,xc)),[[gn,i.key===e.active]])),128)),tt(e.$slots,"default")])])])],2)}const Oc=vn(Al,[["render",Lc],["styles",[Sl]]]),_o={en:{"sec.posters":"Posters","sec.experimental":"Experimental","tab.upg-100":"UPG 100 List Posters","sub.upg-100":"my unreached list + posters","tab.country-posters":"Country Posters","sub.country-posters":"a poster for every country","tab.poster-design":"Poster Design","sub.poster-design":"every poster style and size","tab.wall-of-people-groups":"Wall of People Groups","tab.bible-posters":"Bible Posters",experimentalSub:"experimental bundle",lab:"lab",loading:"Loading {label}…",loadFailed:"Could not load {label}.",manifestHint:"This tab is composed from manifest.json — build the tree, or serve the built tree, to load it.",backToTop:"Back to top",home:"Back to homepage",toggleList:"Toggle list",openViews:"Open the list of views",expandList:"Expand list",collapseList:"Collapse list",collapse:"Collapse"},es:{"sec.posters":"Carteles","sec.experimental":"Experimental","tab.upg-100":"Carteles de la lista UPG 100","sub.upg-100":"mi lista de no alcanzados + carteles","tab.country-posters":"Carteles por país","sub.country-posters":"un cartel para cada país","tab.poster-design":"Diseño de carteles","sub.poster-design":"todos los estilos y tamaños de cartel","tab.wall-of-people-groups":"Muro de los pueblos","tab.bible-posters":"Carteles bíblicos",experimentalSub:"mapa experimental",lab:"beta",loading:"Cargando {label}…",loadFailed:"No se pudo cargar {label}.",manifestHint:"Esta pestaña se compone a partir de manifest.json: compila el árbol o sirve el árbol compilado para cargarla.",backToTop:"Volver arriba",home:"Volver a la página de inicio",toggleList:"Mostrar u ocultar la lista",openViews:"Abrir la lista de vistas",expandList:"Expandir la lista",collapseList:"Contraer la lista",collapse:"Contraer"},fr:{"sec.posters":"Affiches","sec.experimental":"Expérimental","tab.upg-100":"Affiches de la liste UPG 100","sub.upg-100":"ma liste des non atteints + affiches","tab.country-posters":"Affiches par pays","sub.country-posters":"une affiche pour chaque pays","tab.poster-design":"Conception d’affiches","sub.poster-design":"tous les styles et formats d’affiche","tab.wall-of-people-groups":"Mur des peuples","tab.bible-posters":"Affiches bibliques",experimentalSub:"carte expérimentale",lab:"bêta",loading:"Chargement de {label}…",loadFailed:"Impossible de charger {label}.",manifestHint:"Cet onglet est composé à partir de manifest.json : construisez l'arborescence ou servez l'arborescence construite pour le charger.",backToTop:"Retour en haut",home:"Retour à l’accueil",toggleList:"Afficher ou masquer la liste",openViews:"Ouvrir la liste des vues",expandList:"Déplier la liste",collapseList:"Replier la liste",collapse:"Replier"},de:{"sec.posters":"Poster","sec.experimental":"Experimentell","tab.upg-100":"Poster der UPG 100 Liste","sub.upg-100":"meine Liste der Unerreichten + Poster","tab.country-posters":"Länderposter","sub.country-posters":"ein Poster für jedes Land","tab.poster-design":"Postergestaltung","sub.poster-design":"alle Posterstile und -größen","tab.wall-of-people-groups":"Wand der Volksgruppen","tab.bible-posters":"Bibelposter",experimentalSub:"experimentelle Karte",lab:"Beta",loading:"{label} wird geladen…",loadFailed:"{label} konnte nicht geladen werden.",manifestHint:"Dieser Tab wird aus manifest.json zusammengesetzt – bauen Sie den Baum oder stellen Sie den gebauten Baum bereit, um ihn zu laden.",backToTop:"Nach oben",home:"Zurück zur Startseite",toggleList:"Liste ein-/ausblenden",openViews:"Ansichtsliste öffnen",expandList:"Liste ausklappen",collapseList:"Liste einklappen",collapse:"Einklappen"},pt:{"sec.posters":"Cartazes","sec.experimental":"Experimental","tab.upg-100":"Cartazes da lista UPG 100","sub.upg-100":"minha lista de não alcançados + cartazes","tab.country-posters":"Cartazes por país","sub.country-posters":"um cartaz para cada país","tab.poster-design":"Design de cartazes","sub.poster-design":"todos os estilos e tamanhos de cartaz","tab.wall-of-people-groups":"Mural dos povos","tab.bible-posters":"Cartazes bíblicos",experimentalSub:"mapa experimental",lab:"beta",loading:"Carregando {label}…",loadFailed:"Não foi possível carregar {label}.",manifestHint:"Esta aba é composta a partir do manifest.json — compile a árvore ou sirva a árvore compilada para carregá-la.",backToTop:"Voltar ao topo",home:"Voltar à página inicial",toggleList:"Mostrar ou ocultar a lista",openViews:"Abrir a lista de visualizações",expandList:"Expandir a lista",collapseList:"Recolher a lista",collapse:"Recolher"},it:{"sec.posters":"Poster","sec.experimental":"Sperimentale","tab.upg-100":"Poster della lista UPG 100","sub.upg-100":"la mia lista dei non raggiunti + poster","tab.country-posters":"Poster per paese","sub.country-posters":"un poster per ogni paese","tab.poster-design":"Design dei poster","sub.poster-design":"tutti gli stili e i formati dei poster","tab.wall-of-people-groups":"Muro dei popoli","tab.bible-posters":"Poster biblici",experimentalSub:"mappa sperimentale",lab:"beta",loading:"Caricamento di {label}…",loadFailed:"Impossibile caricare {label}.",manifestHint:"Questa scheda è composta da manifest.json: compila l'albero o pubblica l'albero compilato per caricarla.",backToTop:"Torna su",home:"Torna alla home page",toggleList:"Mostra o nascondi l’elenco",openViews:"Apri l’elenco delle viste",expandList:"Espandi l’elenco",collapseList:"Comprimi l’elenco",collapse:"Comprimi"},ro:{"sec.posters":"Afișe","sec.experimental":"Experimental","tab.upg-100":"Afișe din lista UPG 100","sub.upg-100":"lista mea de neatinși + afișe","tab.country-posters":"Afișe pe țări","sub.country-posters":"un afiș pentru fiecare țară","tab.poster-design":"Design de afișe","sub.poster-design":"toate stilurile și dimensiunile de afiș","tab.wall-of-people-groups":"Zidul popoarelor","tab.bible-posters":"Afișe biblice",experimentalSub:"hartă experimentală",lab:"beta",loading:"Se încarcă {label}…",loadFailed:"{label} nu a putut fi încărcat.",manifestHint:"Această filă este compusă din manifest.json — construiți arborele sau serviți arborele construit pentru a o încărca.",backToTop:"Sus",home:"Înapoi la pagina principală",toggleList:"Afișează sau ascunde lista",openViews:"Deschide lista de vizualizări",expandList:"Extinde lista",collapseList:"Restrânge lista",collapse:"Restrânge"},ru:{"sec.posters":"Плакаты","sec.experimental":"Экспериментальное","tab.upg-100":"Плакаты списка UPG 100","sub.upg-100":"мой список недостигнутых + плакаты","tab.country-posters":"Плакаты по странам","sub.country-posters":"плакат для каждой страны","tab.poster-design":"Дизайн плакатов","sub.poster-design":"все стили и размеры плакатов","tab.wall-of-people-groups":"Стена народов","tab.bible-posters":"Библейские плакаты",experimentalSub:"экспериментальная карта",lab:"бета",loading:"Загрузка: {label}…",loadFailed:"Не удалось загрузить: {label}.",manifestHint:"Эта вкладка собирается из manifest.json — соберите дерево или разместите собранное дерево, чтобы загрузить её.",backToTop:"Наверх",home:"На главную страницу",toggleList:"Показать или скрыть список",openViews:"Открыть список представлений",expandList:"Развернуть список",collapseList:"Свернуть список",collapse:"Свернуть"},ar:{"sec.posters":"ملصقات","sec.experimental":"تجريبي","tab.upg-100":"ملصقات قائمة UPG 100","sub.upg-100":"قائمتي لغير المُبشَّرين + ملصقات","tab.country-posters":"ملصقات الدول","sub.country-posters":"ملصق لكل دولة","tab.poster-design":"تصميم الملصقات","sub.poster-design":"كل أنماط الملصقات وأحجامها","tab.wall-of-people-groups":"جدار الشعوب","tab.bible-posters":"ملصقات الكتاب المقدس",experimentalSub:"خريطة تجريبية",lab:"تجريبي",loading:"جارٍ تحميل {label}…",loadFailed:"تعذّر تحميل {label}.",manifestHint:"تُبنى علامة التبويب هذه من manifest.json — ابنِ الشجرة أو قدّم الشجرة المبنية لتحميلها.",backToTop:"إلى الأعلى",home:"العودة إلى الصفحة الرئيسية",toggleList:"إظهار القائمة أو إخفاؤها",openViews:"فتح قائمة العروض",expandList:"توسيع القائمة",collapseList:"طي القائمة",collapse:"طي"},hi:{"sec.posters":"पोस्टर","sec.experimental":"प्रायोगिक","tab.upg-100":"UPG 100 सूची पोस्टर","sub.upg-100":"मेरी अप्राप्त सूची + पोस्टर","tab.country-posters":"देश पोस्टर","sub.country-posters":"हर देश के लिए एक पोस्टर","tab.poster-design":"पोस्टर डिज़ाइन","sub.poster-design":"हर पोस्टर शैली और आकार","tab.wall-of-people-groups":"जनसमूहों की दीवार","tab.bible-posters":"बाइबल पोस्टर",experimentalSub:"प्रायोगिक मानचित्र",lab:"बीटा",loading:"{label} लोड हो रहा है…",loadFailed:"{label} लोड नहीं हो सका।",manifestHint:"यह टैब manifest.json से बनता है — इसे लोड करने के लिए ट्री बनाएँ या बना हुआ ट्री सर्व करें।",backToTop:"ऊपर जाएँ",home:"होमपेज पर वापस जाएँ",toggleList:"सूची दिखाएँ या छिपाएँ",openViews:"दृश्यों की सूची खोलें",expandList:"सूची फैलाएँ",collapseList:"सूची संक्षिप्त करें",collapse:"संक्षिप्त करें"},zh:{"sec.posters":"海报","sec.experimental":"实验性","tab.upg-100":"UPG 100 名单海报","sub.upg-100":"我的未得之民名单 + 海报","tab.country-posters":"国家海报","sub.country-posters":"每个国家一张海报","tab.poster-design":"海报设计","sub.poster-design":"所有海报样式与尺寸","tab.wall-of-people-groups":"民族之墙","tab.bible-posters":"圣经海报",experimentalSub:"实验性地图",lab:"测试版",loading:"正在加载{label}…",loadFailed:"无法加载{label}。",manifestHint:"此标签页由 manifest.json 组成——请构建目录树或提供已构建的目录树以加载它。",backToTop:"回到顶部",home:"返回首页",toggleList:"显示或隐藏列表",openViews:"打开视图列表",expandList:"展开列表",collapseList:"折叠列表",collapse:"折叠"}},wn=Object.keys(_o);function Pc(e,t,o){let s=(_o[e]||_o.en)[t]??_o.en[t]??t;if(o)for(const r in o)s=s.split("{"+r+"}").join(String(o[r]));return s}const Ac=[{key:"posters",i18n:"sec.posters",icon:"poster"},{key:"experimental",i18n:"sec.experimental",icon:"flask",folder:!0,open:!1}],Or=[{id:"upg-100",section:"posters",icon:"list",bundle:"my-upg-100-list",profile:"upg-100-mfe"},{id:"country-posters",section:"posters",icon:"map",bundle:"country-posters",profile:"country-posters-mfe"},{id:"poster-design",section:"posters",icon:"poster",bundle:"poster-design",profile:"poster-design-mfe"},{id:"wall-of-people-groups",section:"experimental",icon:"flask",bundle:"wall-of-people-groups",profile:"wall-of-people-groups"},{id:"bible-posters",section:"experimental",icon:"flask",bundle:"bible-posters",profile:"bible-posters",provisional:!0}],Cc=new Set(["key-cities","posterverse","doxa-maps-spa","plugin-studio"]),Fc=new Set(["my-upg-100-list-map","country-posters-map"]);function Ic(e,t=()=>{}){const o=e&&Array.isArray(e.bundles)?e.bundles:[],n=Object.fromEntries(o.map(r=>[r&&r.bundle,r])),s=[];for(const r of Or){if(Cc.has(r.bundle))continue;const a=n[r.bundle];if(!a)continue;const i=Array.isArray(a.profiles)?a.profiles:[];let l=i.find(h=>h&&h.profile===r.profile);if(!l){if(l=i.find(h=>h&&h.profile===r.bundle)||i[0],!l)continue;t(`[posterverse] ${r.bundle} has no profile "${r.profile}"; row "${r.id}" opens "${l.profile}" instead`)}const p=l.element||Array.isArray(a.elements)&&a.elements[0]||r.bundle,d=a.scriptUrl||l.scriptUrl||"";d&&s.push({...r,tag:p,scriptUrl:d,profile:l.profile,heavy:Fc.has(p)||!!l.isMap})}return s}const Nc=":host{display:block;position:relative;height:var(--posterverse-height, 85vh);min-height:480px}:host{font-size:16px;line-height:normal;font-weight:400;font-style:normal;font-variant:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;text-align:start;text-indent:0;text-shadow:none;white-space:normal;-webkit-hyphens:manual;hyphens:manual;visibility:visible;cursor:auto}:host([hidden]){display:none}.pv-pane{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;--profile-min-h: 0}.pv-slot{position:relative;min-height:100%}.pv-hint{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center;color:#6d766e;font-size:13px;padding:20px}.pv-hint.err{color:#b3261e}.pv-hint small{color:#6d766e}";function Pr(){try{const e=new URLSearchParams(location.search),t=(e.get("lang")||e.get("locale")||"").split("-")[0].toLowerCase();if(wn.includes(t))return t}catch{}try{const e=(document.documentElement.lang||"").split("-")[0].toLowerCase();if(wn.includes(e))return e}catch{}return""}const Ar=e=>({...e,tag:e.tag||"",scriptUrl:e.scriptUrl||"",heavy:!!e.heavy,mounted:!1,state:"idle",error:""}),Ec=Yo({name:"Posterverse",inheritAttrs:!1,components:{VerticalTabsLayout:Oc,BackToTopButton:vr},props:{treeBase:{type:String,default:""},profileConfig:{type:[String,Object],default:""},heading:{type:String,default:"Posterverse"},tokenUrl:{type:String,default:""},tk:{type:String,default:""},language:{type:String,default:""},apiBaseUrl:{type:String,default:""},provider:{type:String,default:""},tab:{type:String,default:""},homeHref:{type:String,default:""},homeLabel:{type:String,default:""}},emits:["tab-change"],setup(){return{injectedBase:Tt("pvTreeBase","")}},data(){return{paneEls:{},activeIndex:0,manifestError:"",manifestBase:"",runtime:{},hostLang:Pr(),tabs:Or.filter(e=>!e.provisional).map(Ar)}},computed:{cfg(){let e=this.profileConfig;if(typeof e=="string")try{e=e?JSON.parse(e):{}}catch{e={}}return e&&typeof e=="object"?e:{}},base(){const e=String(this.treeBase||this.cfg.treeBase||this.injectedBase||"").trim();return e?e.replace(/\/+$/,"")+"/":""},assetsBase(){const e=String(this.cfg.assetsBase||"").trim();return/^https?:\/\//i.test(e)||e.startsWith("/")?e.replace(/\/+$/,""):this.manifestBase?this.manifestBase.replace(/\/+$/,"")+"/assets":""},headingText(){return String(this.cfg.heading||this.heading||"").trim()||"Posterverse"},effectiveLocale(){return(String(this.language||this.cfg.language||this.cfg.locale||this.cfg.lang||"").trim()||this.hostLang||"en").split("-")[0].toLowerCase()},uiLocale(){return wn.includes(this.effectiveLocale)?this.effectiveLocale:"en"},uiDir(){return this.uiLocale==="ar"?"rtl":"ltr"},layoutLabels(){const e={};for(const t of["toggleList","openViews","expandList","collapseList","collapse","home"])e[t]=this.tr(t);return e},effectiveProvider(){const e=String(this.provider||this.cfg.provider||"").trim().toLowerCase();return e==="maplibre"||e==="mapbox"?e:""},activeKey(){const e=this.tabs[this.activeIndex];return e?e.id:""},activePaneEl(){return this.paneEls[this.activeIndex]||null},navGroups(){return Ac.map(e=>({key:e.key,label:this.tr(e.i18n),icon:e.icon,folder:!!e.folder,open:e.open,rows:this.tabs.filter(t=>t.section===e.key).map(t=>({key:t.id,label:this.tabLabel(t),sub:this.tabSub(t),icon:t.icon,badge:e.folder?this.tr("lab"):void 0}))})).filter(e=>e.rows.length)}},watch:{effectiveLocale(){const e=(o,n)=>{try{const s=this._slots&&this._slots[o];s&&(s.innerHTML="")}catch{}n.mounted=!1,n.state="idle",n.error=""};this.tabs.forEach((o,n)=>{o.mounted&&n!==this.activeIndex&&e(n,o)});const t=this.tabs[this.activeIndex];!t||!t.mounted||(e(this.activeIndex,t),this.mountElement(this.activeIndex))},tab(e){e&&this.onSelect(e)}},mounted(){this.watchHostLang(),this.select(this.initialIndex()),this.loadManifest()},beforeUnmount(){this._langObs&&(this._langObs.disconnect(),this._langObs=null)},methods:{tr(e,t){return Pc(this.uiLocale,e,t)},tabLabel(e){return this.tr("tab."+e.id)},tabSub(e){return e.section==="experimental"?this.tr("experimentalSub"):this.tr("sub."+e.id)},setSlot(e,t){t&&(this._slots=Object.assign(this._slots||{},{[e]:t}))},watchHostLang(){typeof MutationObserver>"u"||typeof document>"u"||(this._langObs=new MutationObserver(()=>{this.hostLang=Pr()}),this._langObs.observe(document.documentElement,{attributes:!0,attributeFilter:["lang"]}))},requestedTab(){let e="";try{e=new URLSearchParams(location.search).get("tab")||""}catch{}return String(this.tab||this.cfg.tab||e||"").trim()},initialIndex(){const e=this.tabs.findIndex(t=>t.id===this.requestedTab());return e>=0?e:0},loadManifest(){const e=p=>{try{return new URL(p,location.href).href.replace(/[^/]*$/,"")}catch{return""}},t=this.resolve("manifest.json"),o={url:t,root:e(t)},n={url:this.resolve("doxa-maps-spa/manifest.json"),root:o.root};let s=!1;try{s=new URL(t,location.href).origin!==location.origin}catch{}const r=s?[n,o]:[o,n],a="/public/dx-maps/manifest.json";r.some(p=>p.url===a)||r.push({url:a,root:e(a)});const i=[],l=p=>{if(p>=r.length){this.manifestError="manifest.json not found (tried "+i.join(", ")+")",console.error("[posterverse] "+this.manifestError+" — every tab is composed from it.");return}const{url:d,root:h}=r[p];return i.push(d),fetch(d,{credentials:"same-origin"}).then(w=>{if(!w||!w.ok)throw new Error(d+" → HTTP "+(w?w.status:"?"));return w.json()}).then(w=>{if(!w)throw new Error(d+" → empty");this.manifestError="",this.manifestBase=h||"",this.applyManifest(w)}).catch(()=>l(p+1))};try{l(0)}catch{}},applyManifest(e){this.runtime=e&&e.runtime&&typeof e.runtime=="object"?e.runtime:{},this.applyPageGlobals();const t=this.activeKey;this.tabs=Ic(e,r=>console.warn(r)).map(Ar);const o=this.requestedTab(),n=!this._honouredTab&&o?this.tabs.findIndex(r=>r.id===o):-1,s=this.tabs.findIndex(r=>r.id===t);this._honouredTab=!0,this.select(n>=0?n:s>=0?s:0)},onSelect(e){const t=this.tabs.findIndex(o=>o.id===e);t!==-1&&this.select(t)},resolve(e){const t=String(e);if(/^(https?:)?\/\//.test(t)||t.startsWith("/"))return t;const o=t.replace(/^\.\//,"");return this.manifestBase?this.manifestBase.replace(/\/+$/,"")+"/"+o:this.base?this.base.replace(/\/+$/,"")+"/"+o:"../"+o},select(e){const t=this.activeIndex;if(this.activeIndex=e,t!==e&&t>=0){const n=this.tabs[t];n&&n.heavy&&n.mounted&&this.releaseTab(t,n)}const o=this.tabs[e];o&&((t!==e||!this._announced)&&(this._announced=!0,this.$emit("tab-change",{id:o.id,label:this.tabLabel(o)})),o.scriptUrl&&(o.mounted||this.$nextTick(()=>{this.activeIndex===e&&this.mountElement(e)})))},releaseTab(e,t){try{const o=this._slots&&this._slots[e];o&&(o.innerHTML="")}catch{}this._slots&&delete this._slots[e],t.mounted=!1,t.state="idle",t.error=""},childConfig(e){const t={profile:e.profile||e.id,instanceId:"pv-"+e.id};this.effectiveLocale&&(t.locale=this.effectiveLocale);const o=this.tk||this.cfg.tk||this.runtime.token;return o&&(t.tk=o),(this.tokenUrl||this.cfg.tokenUrl)&&(t.tokenUrl=this.tokenUrl||this.cfg.tokenUrl),this.effectiveProvider&&(t.provider=this.effectiveProvider),this.base&&(t.treeBase=this.base),this.assetsBase&&(t.assetsBase=this.assetsBase),t.urlSync=!1,t.mapTitle=this.tabLabel(e),t},applyPageGlobals(){if(typeof window>"u")return;const e=String(this.apiBaseUrl||this.cfg.apiBaseUrl||this.runtime.apiBaseUrl||"").trim();e&&!window.MAP_APP_API_URL&&(window.MAP_APP_API_URL=e.replace(/\/+$/,""));const t=this.tk||this.cfg.tk||this.runtime.token;t&&!window.MAP_TOKEN&&(window.MAP_TOKEN=t),this.effectiveProvider&&!window.MAP_PROVIDER&&(window.MAP_PROVIDER=this.effectiveProvider)},mountElement(e){const t=this.tabs[e];t.mounted=!0,t.state="loading",Lr(this.resolve(t.scriptUrl)).then(()=>kl(t.tag)).then(()=>{try{if(t.heavy&&this.activeIndex!==e){t.mounted=!1,t.state="idle";return}const o=this._slots&&this._slots[e];if(!o){t.state="error",t.error="no slot";return}o.innerHTML="";const n=document.createElement(t.tag);n.setAttribute("profile-config",JSON.stringify(this.childConfig(t))),this.base&&n.setAttribute("tree-base",this.base.replace(/\/+$/,"")),n.style.cssText="display:block;position:absolute;inset:0;width:100%;height:100%;min-height:0;",o.appendChild(n),t.state="ready"}catch(o){t.state="error",t.error="mount failed: "+(o&&o.message||String(o))}}).catch(o=>{t.state="error",t.error=o&&o.message||String(o)})}}}),Rc=["hidden"],Wc={key:0,class:"pv-hint"},Dc={key:1,class:"pv-hint err"},zc={key:2,class:"pv-hint err"};function Hc(e,t,o,n,s,r){const a=tn("BackToTopButton"),i=tn("VerticalTabsLayout");return A(),At(i,{dir:e.uiDir,lang:e.uiLocale,labels:e.layoutLabels,title:e.headingText,"nav-label":e.tr("sec.posters"),header:!1,"home-href":e.homeHref||e.cfg.homeHref||"","home-label":e.homeLabel||e.cfg.homeLabel||"",groups:e.navGroups,active:e.activeKey,"onUpdate:active":e.onSelect},{default:ds(()=>[(A(!0),F(oe,null,Mt(e.tabs,(l,p)=>Jo((A(),F("section",{key:l.id,class:"pv-pane",ref_for:!0,ref:d=>{d?e.paneEls[p]=d:delete e.paneEls[p]},hidden:p!==e.activeIndex},[!l.heavy||p===e.activeIndex?(A(),F(oe,{key:0},[I("div",{class:"pv-slot",ref_for:!0,ref:d=>e.setSlot(p,d)},null,512),l.state==="loading"?(A(),F("div",Wc,D(e.tr("loading",{label:e.tabLabel(l)})),1)):l.state==="error"?(A(),F("div",Dc,[gt(D(e.tr("loadFailed",{label:e.tabLabel(l)})),1),t[0]||(t[0]=I("br",null,null,-1)),I("small",null,D(l.error),1)])):l.state==="idle"&&!l.scriptUrl&&e.manifestError?(A(),F("div",zc,[gt(D(e.tr("loadFailed",{label:e.tabLabel(l)})),1),t[1]||(t[1]=I("br",null,null,-1)),I("small",null,D(e.manifestError),1),t[2]||(t[2]=I("br",null,null,-1)),I("small",null,D(e.tr("manifestHint")),1)])):ie("",!0)],64)):ie("",!0)],8,Rc)),[[gn,p===e.activeIndex]])),128)),be(a,{target:e.activePaneEl,labels:{backToTop:e.tr("backToTop")}},null,8,["target","labels"])]),_:1},8,["dir","lang","labels","title","nav-label","home-href","home-label","groups","active","onUpdate:active"])}const Bc=vn(Ec,[["render",Hc],["styles",[Nc]]]),Uc=Tl(),jc=nl(Bc,{configureApp(e){e.provide("pvTreeBase",Uc)}});typeof customElements<"u"&&!customElements.get("posterverse-app")&&customElements.define("posterverse-app",jc)})(); +`,Fl=nn({name:"VerticalTabsLayout",components:{BackToTopButton:ba},props:{active:{type:String,default:""},title:{type:String,default:""},items:{type:Array,default:()=>[]},groups:{type:Array,default:()=>[]},navLabel:{type:String,default:"Sections"},labels:{type:Object,default:()=>({})},initialNavOpen:{type:Boolean,default:!0},header:{type:Boolean,default:!0},initialRailCollapsed:{type:Boolean,default:!1},homeHref:{type:String,default:""},homeLabel:{type:String,default:""}},emits:["update:active"],setup(){return wl(Cl,"vertical-tabs-layout"),{T:Ol}},data(){return{navOpen:this.initialNavOpen,railCollapsed:this.initialRailCollapsed,_tabEls:{},folderOverride:{},narrow:!1,_mql:null,_onMedia:null,activatedKeys:{},hostState:{},hostError:{},_hostSlots:{},_hostMounted:{},hostEls:{}}},computed:{phoneBarShown(){return this.narrow&&!this.header},railEndShown(){return!this.narrow&&!this.header},activeHostEl(){return this.hostEls[this.active]||null},railShown(){return this.narrow?this.navOpen:!0},homeLink(){const e=String(this.homeHref||"").trim();return!e||/^(javascript|data|vbscript):/i.test(e.replace(/[\u0000- ]/g,""))?"":e},homeText(){return this.homeLabel||this.label("home")},allRows(){if(this.groups&&this.groups.length){const e=[];for(const t of this.groups)for(const o of t.rows||[])e.push(o);return e}return this.items},orderedKeys(){return this.allRows.map(e=>e.key)},elementRows(){return this.allRows.filter(e=>e&&e.element)},mountedElementRows(){return this.elementRows.filter(e=>this.activatedKeys[e.key])}},watch:{active:{immediate:!0,handler(e){this.activateElement(e)}}},mounted(){try{window.matchMedia&&(this._mql=window.matchMedia("(max-width: 760px)"),this.narrow=this._mql.matches,this.reconcileForWidth(),this._onMedia=e=>{this.narrow=e.matches,this.reconcileForWidth()},this._mql.addEventListener?this._mql.addEventListener("change",this._onMedia):this._mql.addListener&&this._mql.addListener(this._onMedia))}catch{}this.$nextTick(()=>this.activateElement(this.active))},beforeUnmount(){try{this._mql&&this._onMedia&&(this._mql.removeEventListener?this._mql.removeEventListener("change",this._onMedia):this._mql.removeListener&&this._mql.removeListener(this._onMedia))}catch{}this._mql=null,this._onMedia=null},methods:{registerTab(e,t){t&&(this._tabEls[e]=t)},isNarrow(){return this.narrow},reconcileForWidth(){this.narrow?(this.navOpen=!1,this.railCollapsed=!1):this.navOpen=!0},label(e){const t={toggleList:"Toggle list",openViews:"Open the list of views",expandList:"Expand list",collapseList:"Collapse list",collapse:"Collapse",home:"Back to homepage"};return this.labels&&this.labels[e]||t[e]},expandRail(){!this.narrow&&this.railCollapsed&&(this.railCollapsed=!1)},toggleRail(){this.narrow?this.navOpen=!this.navOpen:this.railCollapsed=!this.railCollapsed},setHostSlot(e,t){t&&(this._hostSlots[e]=t,this.$nextTick(()=>this.mountHostElement(e)))},activateElement(e){!e||!this.elementRows.find(o=>o.key===e)||(this.activatedKeys[e]||(this.activatedKeys={...this.activatedKeys,[e]:!0},this.$nextTick(()=>this.watchContextLoss(e)),this.hostState={...this.hostState,[e]:"loading"}),this.$nextTick(()=>this.mountHostElement(e)))},deepCanvases(e,t=[]){if(!e)return t;for(const o of e.querySelectorAll("*"))o.tagName==="CANVAS"&&t.push(o),o.shadowRoot&&this.deepCanvases(o.shadowRoot,t);return t},watchContextLoss(e){const t=this._hostSlots[e];if(t)for(const o of this.deepCanvases(t))o.__vtlLossBound||(o.__vtlLossBound=!0,o.addEventListener("webglcontextlost",()=>{this.hostState={...this.hostState,[e]:"lost"}},{once:!0}))},reloadHostElement(e){const t=this._hostSlots[e];t&&(t.innerHTML=""),this._hostMounted[e]=!1,this.hostState={...this.hostState,[e]:"loading"},this.$nextTick(()=>this.mountHostElement(e))},mountHostElement(e){if(this._hostMounted[e])return;const t=this.elementRows.find(n=>n.key===e),o=this._hostSlots[e];!t||!o||(this._hostMounted[e]=!0,this.hostState={...this.hostState,[e]:"loading"},Al(t.src).then(()=>Pl(t.element)).then(()=>{Tl(t.element,t.src),o.innerHTML="";const n=document.createElement(t.element),s=t.attrs||{};for(const a in s){const i=s[a],r=i!=null&&typeof i=="object"?JSON.stringify(i):String(i);try{n[a]=i}catch{}try{n.setAttribute(a,r)}catch{}}n.style.cssText="display:block;position:absolute;inset:0;width:100%;height:100%;",o.appendChild(n);for(const a of[0,250,1500])setTimeout(()=>this.watchContextLoss(e),a);this.hostState={...this.hostState,[e]:"ready"}}).catch(n=>{this._hostMounted[e]=!1,this.hostState={...this.hostState,[e]:"error"},this.hostError={...this.hostError,[e]:n&&n.message||String(n)}}))},iconSvg(e){return e?Sa(e):""},initial(e){const t=(e||"").trim();return t?t.charAt(0).toUpperCase():"•"},isFolderClosed(e){const t=this.folderOverride[e.key];return t!=null?!t:e.open!==!0},toggleFolder(e){const t=this.folderOverride[e],o=(this.groups||[]).find(s=>s.key===e),n=t??(o&&o.open===!0);this.folderOverride={...this.folderOverride,[e]:!n}},pick(e){this.$emit("update:active",e),this.narrow&&(this.navOpen=!1)},onKey(e){const t=this.orderedKeys;if(!t.length)return;const o=t.indexOf(this.active);let n=-1;if(e.key==="ArrowDown"||e.key==="ArrowRight")n=(o+1)%t.length;else if(e.key==="ArrowUp"||e.key==="ArrowLeft")n=(o-1+t.length)%t.length;else if(e.key==="Home")n=0;else if(e.key==="End")n=t.length-1;else return;e.preventDefault();const s=t[n];this.pick(s),this.$nextTick(()=>{const a=this._tabEls[s];a&&a.focus&&a.focus()})}}}),Il={key:0,class:"vtl-top"},Nl=["aria-expanded","aria-label"],El={class:"vtl-brand"},Rl={class:"vtl-title"},Wl={class:"vtl-meta"},Dl={key:1,class:"vtl-pbar"},zl=["aria-expanded","aria-label"],Hl={class:"vtl-pbar-end"},Bl={class:"vtl-body"},Ul=["aria-label","aria-hidden","role","aria-orientation"],jl=["href","aria-label","title"],Vl=["innerHTML"],ql={class:"vtl-home-tx"},Kl=["aria-expanded","aria-label"],Gl=["innerHTML"],Jl={class:"vtl-collapse-tx"},Xl=["aria-expanded","onClick"],Zl={key:0,class:"vtl-cap"},Yl={class:"vtl-tl"},Ql={key:1,class:"vtl-td"},ec=["innerHTML"],tc={key:1,class:"vtl-tier"},oc={key:0,class:"vtl-cap"},nc={class:"vtl-tl"},sc={key:1,class:"vtl-td"},ac={class:"vtl-rows"},rc=["aria-selected","aria-disabled","tabindex","onClick"],ic=["innerHTML"],lc={key:1,class:"vtl-tab-emoji","aria-hidden":"true"},cc={key:2,class:"vtl-tab-fallback","aria-hidden":"true"},dc={class:"vtl-tab-text"},pc={class:"vtl-tab-label"},uc={key:0,class:"vtl-tab-badge"},fc={key:0,class:"vtl-tab-sub"},gc=["innerHTML"],hc=["aria-selected","aria-disabled","tabindex","onClick"],$c=["innerHTML"],mc={key:1,class:"vtl-tab-emoji","aria-hidden":"true"},_c={key:2,class:"vtl-tab-fallback","aria-hidden":"true"},bc={class:"vtl-tab-text"},vc={class:"vtl-tab-label"},yc={key:0,class:"vtl-tab-sub"},wc={key:4,class:"vtl-rail-end"},xc={class:"vtl-main"},kc={class:"vtl-content"},Tc=["hidden"],Sc={key:0,class:"vtl-host-hint"},Mc={key:1,class:"vtl-host-hint"},Lc=["onClick"],Oc={key:2,class:"vtl-host-hint err"};function Ac(e,t,o,n,s,a){const i=fo("BackToTopButton");return M(),C("div",{class:We(["vtl",{"nav-open":e.navOpen,"rail-collapsed":e.railCollapsed,"no-header":!e.header,"has-phone-bar":e.phoneBarShown}])},[e.header?(M(),C("header",Il,[I("button",{class:"vtl-menu",type:"button","aria-expanded":String(e.navOpen),onClick:t[0]||(t[0]=r=>e.navOpen=!e.navOpen),"aria-label":e.label("toggleList")},"☰",8,Nl),I("span",El,[tt(e.$slots,"brand")]),I("b",Rl,E(e.title),1),I("span",Wl,[tt(e.$slots,"meta")])])):ne("",!0),e.phoneBarShown?(M(),C("div",Dl,[I("button",{class:"vtl-phone-menu",type:"button","aria-expanded":String(e.navOpen),onClick:t[1]||(t[1]=r=>e.navOpen=!e.navOpen),"aria-label":e.label("toggleList")},"☰",8,zl),I("span",Hl,[tt(e.$slots,"phone-end")])])):ne("",!0),e.narrow?(M(),Pt(i,{key:2,target:e.activeHostEl,labels:{backToTop:e.T("actions.backToTop","Back to top")}},null,8,["target","labels"])):ne("",!0),I("div",Bl,[I("nav",{class:We(["vtl-nav",{"has-rail-end":e.railEndShown&&!!e.$slots["rail-end"]}]),"aria-label":e.navLabel,"aria-hidden":String(!e.railShown),role:e.$slots.rail?null:"tablist","aria-orientation":e.$slots.rail?null:"vertical"},[e.homeLink?(M(),C("a",{key:0,class:"vtl-home",href:e.homeLink,target:"_top","aria-label":e.homeText,title:e.railCollapsed&&!e.narrow?e.homeText:null},[I("span",{class:"vtl-home-ic","aria-hidden":"true",innerHTML:e.iconSvg("home")},null,8,Vl),I("span",ql,E(e.homeText),1)],8,jl)):ne("",!0),I("button",{type:"button",class:"vtl-collapse","aria-expanded":String(!e.railCollapsed),"aria-label":e.railCollapsed?e.label("expandList"):e.label("collapseList"),onClick:t[2]||(t[2]=(...r)=>e.toggleRail&&e.toggleRail(...r))},[I("span",{class:"vtl-collapse-ic","aria-hidden":"true",innerHTML:e.iconSvg("chevron")},null,8,Gl),I("span",Jl,E(e.label("collapse")),1)],8,Kl),e.$slots.rail?tt(e.$slots,"rail",{collapsed:e.railCollapsed&&!e.narrow,expand:e.expandRail,pick:e.pick},void 0,void 0,1):e.groups&&e.groups.length?(M(!0),C(ee,{key:2},ft(e.groups,r=>(M(),C("div",{class:"vtl-grp",key:r.key},[r.folder?(M(),C("button",{key:0,type:"button",class:"vtl-tier vtl-tier-btn","aria-expanded":String(!e.isFolderClosed(r)),onClick:l=>e.toggleFolder(r.key)},[r.badge?(M(),C("span",Zl,E(r.badge),1)):ne("",!0),I("span",Yl,E(r.label),1),r.count!=null?(M(),C("span",Ql,E(r.count),1)):ne("",!0),I("span",{class:We(["vtl-chev",{open:!e.isFolderClosed(r)}]),"aria-hidden":"true",innerHTML:e.iconSvg("chevron")},null,10,ec)],8,Xl)):(M(),C("div",tc,[r.badge?(M(),C("span",oc,E(r.badge),1)):ne("",!0),I("span",nc,E(r.label),1),r.count!=null?(M(),C("span",sc,E(r.count),1)):ne("",!0)])),en(I("div",ac,[(M(!0),C(ee,null,ft(r.rows,l=>(M(),C("button",{key:l.key,type:"button",role:"tab",class:We(["vtl-tab",{active:l.key===e.active,disabled:l.disabled}]),"aria-selected":String(l.key===e.active),"aria-disabled":l.disabled?"true":null,tabindex:l.key===e.active?0:-1,ref_for:!0,ref:d=>e.registerTab(l.key,d),onClick:d=>e.pick(l.key),onKeydown:t[3]||(t[3]=d=>e.onKey(d))},[l.icon?(M(),C("span",{key:0,class:"vtl-tab-ic","aria-hidden":"true",innerHTML:e.iconSvg(l.icon)},null,8,ic)):l.emoji?(M(),C("span",lc,E(l.emoji),1)):(M(),C("span",cc,E(e.initial(l.label)),1)),I("span",dc,[I("span",pc,[$t(E(l.label),1),l.badge?(M(),C("span",uc,E(l.badge),1)):ne("",!0)]),l.sub?(M(),C("span",fc,[I("span",{innerHTML:l.sub},null,8,gc)])):ne("",!0)])],42,rc))),128))],512),[[bn,!r.folder||!e.isFolderClosed(r)]])]))),128)):(M(!0),C(ee,{key:3},ft(e.items,r=>(M(),C("button",{key:r.key,type:"button",role:"tab",class:We(["vtl-tab",{active:r.key===e.active,disabled:r.disabled}]),"aria-selected":String(r.key===e.active),"aria-disabled":r.disabled?"true":null,tabindex:r.key===e.active?0:-1,ref_for:!0,ref:l=>e.registerTab(r.key,l),onClick:l=>e.pick(r.key),onKeydown:t[4]||(t[4]=l=>e.onKey(l))},[r.icon?(M(),C("span",{key:0,class:"vtl-tab-ic","aria-hidden":"true",innerHTML:e.iconSvg(r.icon)},null,8,$c)):r.emoji?(M(),C("span",mc,E(r.emoji),1)):(M(),C("span",_c,E(e.initial(r.label)),1)),I("span",bc,[I("span",vc,E(r.label),1),r.sub?(M(),C("span",yc,E(r.sub),1)):ne("",!0)])],42,hc))),128)),e.railEndShown&&e.$slots["rail-end"]?(M(),C("div",wc,[tt(e.$slots,"rail-end",{collapsed:e.railCollapsed})])):ne("",!0)],10,Ul),I("main",xc,[e.header?tt(e.$slots,"toolbar",{},void 0,void 0,0):ne("",!0),I("div",kc,[(M(!0),C(ee,null,ft(e.mountedElementRows,r=>en((M(),C("section",{key:r.key,class:"vtl-host",hidden:r.key!==e.active,ref_for:!0,ref:l=>{l?e.hostEls[r.key]=l:delete e.hostEls[r.key]}},[I("div",{class:"vtl-host-slot",ref_for:!0,ref:l=>e.setHostSlot(r.key,l)},null,512),e.hostState[r.key]==="loading"?(M(),C("div",Sc,E(e.T("messages.loadingNamed","Loading {name}…").replace("{name}",r.label)),1)):e.hostState[r.key]==="lost"?(M(),C("div",Mc,[$t(E(e.T("messages.mapContextLost","This map was unloaded to free graphics memory."))+" ",1),I("button",{type:"button",class:"vtl-host-reload",onClick:l=>e.reloadHostElement(r.key)},E(e.T("buttons.reloadMap","Reload Map")),9,Lc)])):e.hostState[r.key]==="error"?(M(),C("div",Oc,[$t(E(e.T("messages.couldNotLoadNamed","Could not load {name}.").replace("{name}",r.label)),1),t[5]||(t[5]=I("br",null,null,-1)),I("small",null,E(e.hostError[r.key]),1)])):ne("",!0)],8,Tc)),[[bn,r.key===e.active]])),128)),tt(e.$slots,"default")])])])],2)}const Pc=xo(Fl,[["render",Ac],["styles",[Ll]]]),Pa=[{code:"en",name:"English",nativeName:"English",flag:"🇺🇸"},{code:"es",name:"Spanish",nativeName:"Español",flag:"🇪🇸"},{code:"fr",name:"French",nativeName:"Français",flag:"🇫🇷"},{code:"pt",name:"Portuguese",nativeName:"Português",flag:"🇵🇹"},{code:"ar",name:"Arabic",nativeName:"العربية",flag:"🇸🇦",dir:"rtl"},{code:"ru",name:"Russian",nativeName:"Русский",flag:"🇷🇺"},{code:"de",name:"German",nativeName:"Deutsch",flag:"🇩🇪",hideFromSwitcher:!0},{code:"hi",name:"Hindi",nativeName:"हिन्दी",flag:"🇮🇳",hideFromSwitcher:!0},{code:"it",name:"Italian",nativeName:"Italiano",flag:"🇮🇹",hideFromSwitcher:!0},{code:"ro",name:"Romanian",nativeName:"Română",flag:"🇷🇴",hideFromSwitcher:!0},{code:"zh",name:"Chinese",nativeName:"中文",flag:"🇨🇳",hideFromSwitcher:!0}],Cc=Pa.filter(e=>!e.hideFromSwitcher);function Ca(e){return Pa.find(t=>t.code===e)}const Fc="doxa-maps:locale";function Ic(e){try{localStorage.setItem(Fc,e)}catch{}}const Nc="doxa-language-request";function Ec(e){try{const t=e&&e.getRootNode&&e.getRootNode();if(t&&t.host)return t.host}catch{}return e||null}function Rc(e,t){const o=Ec(e);return!o||typeof o.dispatchEvent!="function"?!0:o.dispatchEvent(new CustomEvent(Nc,{detail:{language:t},bubbles:!0,composed:!0,cancelable:!0}))}function Wc(e,t=typeof window<"u"?window:null){try{if(!t||t.MAP_OWNS_PAGE!==!0||!t.history||!t.location)return!1;const o=new URL(t.location.href);return o.searchParams.set("lang",e),t.history.replaceState(t.history.state,"",o.toString()),!0}catch{return!1}}const Dc=".slm[data-v-12760774]{position:relative;display:inline-flex;align-items:center;min-height:44px;max-width:100%;box-sizing:border-box;border-radius:8px;color:#3b463d}.slm-face[data-v-12760774]{display:inline-flex;align-items:center;gap:6px;padding-inline:10px;min-width:0;font-size:13px;font-weight:500;line-height:1.2}.slm-ic[data-v-12760774]{flex:0 0 auto;display:inline-flex;color:var(--vtl-muted, #6d766e)}.slm-ic[data-v-12760774] svg{width:18px;height:18px}.slm-name[data-v-12760774]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.slm-code[data-v-12760774]{font-weight:600;font-size:12px;letter-spacing:.03em}.slm-caret[data-v-12760774]{flex:0 0 auto;color:var(--vtl-muted, #6d766e);font-size:11px}.slm.collapsed .slm-face[data-v-12760774]{flex-direction:column;gap:2px;padding-inline:4px}.slm-select[data-v-12760774]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;margin:0;border:0;cursor:pointer;font-size:16px}.slm[data-v-12760774]:hover{background:var(--vtl-accented, #d1d4cd)}.slm[data-v-12760774]:focus-within{outline:2px solid var(--vtl-accent, #92b195);outline-offset:-2px}@media (prefers-reduced-motion: reduce){.slm[data-v-12760774]{transition:none}}",zc={class:"slm-face","aria-hidden":"true"},Hc=["innerHTML"],Bc={key:0,class:"slm-code"},Uc=["lang","dir"],jc={key:2,class:"slm-caret"},Vc=["value","aria-label","title"],qc=["value","lang","dir"],Kc=xo({__name:"ShellLanguageMenu",props:{current:{type:String,default:"en"},collapsed:{type:Boolean,default:!1}},emits:["switch"],setup(e,{emit:t}){const o=e,n=t,s=Et(()=>{const d=Cc.slice();if(o.current&&!d.some(p=>p.code===o.current)){const p=Ca(o.current);p&&d.push(p)}return d}),a=Et(()=>Ca(o.current)||{code:o.current,nativeName:o.current}),i=Et(()=>ka("controls.language",o.current)||"Language"),r=Sa("globe");function l(d){const p=d.target,f=p.value;!f||f===o.current||(Rc(p,f)?(n("switch",f),Wc(f)):p.value=o.current)}return(d,p)=>(M(),C("span",{class:We(["slm",{collapsed:e.collapsed}])},[I("span",zc,[I("span",{class:"slm-ic",innerHTML:Zo(r)},null,8,Hc),e.collapsed?(M(),C("span",Bc,E(String(e.current).toUpperCase()),1)):(M(),C("span",{key:1,class:"slm-name",lang:a.value.code,dir:a.value.dir||null},E(a.value.nativeName),9,Uc)),e.collapsed?ne("",!0):(M(),C("span",jc,"▾"))]),I("select",{class:"slm-select",value:e.current,"aria-label":i.value,title:i.value,onChange:l},[(M(!0),C(ee,null,ft(s.value,f=>(M(),C("option",{key:f.code,value:f.code,lang:f.code,dir:f.dir||null},E(f.nativeName),9,qc))),128))],40,Vc)],2))}},[["styles",[Dc]],["__scopeId","data-v-12760774"]]),ko={en:{"sec.posters":"Posters","sec.experimental":"Experimental","tab.upg-100":"UPG 100 List Posters","sub.upg-100":"my unreached list + posters","tab.country-posters":"Country Posters","sub.country-posters":"a poster for every country","tab.poster-design":"Poster Design","sub.poster-design":"every poster style and size","tab.wall-of-people-groups":"Wall of People Groups","tab.bible-posters":"Bible Posters",experimentalSub:"experimental bundle",lab:"lab",loading:"Loading {label}…",loadFailed:"Could not load {label}.",manifestHint:"This tab is composed from manifest.json — build the tree, or serve the built tree, to load it.",backToTop:"Back to top",home:"Back to homepage",toggleList:"Toggle list",openViews:"Open the list of views",expandList:"Expand list",collapseList:"Collapse list",collapse:"Collapse"},es:{"sec.posters":"Carteles","sec.experimental":"Experimental","tab.upg-100":"Carteles de la lista UPG 100","sub.upg-100":"mi lista de no alcanzados + carteles","tab.country-posters":"Carteles por país","sub.country-posters":"un cartel para cada país","tab.poster-design":"Diseño de carteles","sub.poster-design":"todos los estilos y tamaños de cartel","tab.wall-of-people-groups":"Muro de los pueblos","tab.bible-posters":"Carteles bíblicos",experimentalSub:"mapa experimental",lab:"beta",loading:"Cargando {label}…",loadFailed:"No se pudo cargar {label}.",manifestHint:"Esta pestaña se compone a partir de manifest.json: compila el árbol o sirve el árbol compilado para cargarla.",backToTop:"Volver arriba",home:"Volver a la página de inicio",toggleList:"Mostrar u ocultar la lista",openViews:"Abrir la lista de vistas",expandList:"Expandir la lista",collapseList:"Contraer la lista",collapse:"Contraer"},fr:{"sec.posters":"Affiches","sec.experimental":"Expérimental","tab.upg-100":"Affiches de la liste UPG 100","sub.upg-100":"ma liste des non atteints + affiches","tab.country-posters":"Affiches par pays","sub.country-posters":"une affiche pour chaque pays","tab.poster-design":"Conception d’affiches","sub.poster-design":"tous les styles et formats d’affiche","tab.wall-of-people-groups":"Mur des peuples","tab.bible-posters":"Affiches bibliques",experimentalSub:"carte expérimentale",lab:"bêta",loading:"Chargement de {label}…",loadFailed:"Impossible de charger {label}.",manifestHint:"Cet onglet est composé à partir de manifest.json : construisez l'arborescence ou servez l'arborescence construite pour le charger.",backToTop:"Retour en haut",home:"Retour à l’accueil",toggleList:"Afficher ou masquer la liste",openViews:"Ouvrir la liste des vues",expandList:"Déplier la liste",collapseList:"Replier la liste",collapse:"Replier"},de:{"sec.posters":"Poster","sec.experimental":"Experimentell","tab.upg-100":"Poster der UPG 100 Liste","sub.upg-100":"meine Liste der Unerreichten + Poster","tab.country-posters":"Länderposter","sub.country-posters":"ein Poster für jedes Land","tab.poster-design":"Postergestaltung","sub.poster-design":"alle Posterstile und -größen","tab.wall-of-people-groups":"Wand der Volksgruppen","tab.bible-posters":"Bibelposter",experimentalSub:"experimentelle Karte",lab:"Beta",loading:"{label} wird geladen…",loadFailed:"{label} konnte nicht geladen werden.",manifestHint:"Dieser Tab wird aus manifest.json zusammengesetzt – bauen Sie den Baum oder stellen Sie den gebauten Baum bereit, um ihn zu laden.",backToTop:"Nach oben",home:"Zurück zur Startseite",toggleList:"Liste ein-/ausblenden",openViews:"Ansichtsliste öffnen",expandList:"Liste ausklappen",collapseList:"Liste einklappen",collapse:"Einklappen"},pt:{"sec.posters":"Cartazes","sec.experimental":"Experimental","tab.upg-100":"Cartazes da lista UPG 100","sub.upg-100":"minha lista de não alcançados + cartazes","tab.country-posters":"Cartazes por país","sub.country-posters":"um cartaz para cada país","tab.poster-design":"Design de cartazes","sub.poster-design":"todos os estilos e tamanhos de cartaz","tab.wall-of-people-groups":"Mural dos povos","tab.bible-posters":"Cartazes bíblicos",experimentalSub:"mapa experimental",lab:"beta",loading:"Carregando {label}…",loadFailed:"Não foi possível carregar {label}.",manifestHint:"Esta aba é composta a partir do manifest.json — compile a árvore ou sirva a árvore compilada para carregá-la.",backToTop:"Voltar ao topo",home:"Voltar à página inicial",toggleList:"Mostrar ou ocultar a lista",openViews:"Abrir a lista de visualizações",expandList:"Expandir a lista",collapseList:"Recolher a lista",collapse:"Recolher"},it:{"sec.posters":"Poster","sec.experimental":"Sperimentale","tab.upg-100":"Poster della lista UPG 100","sub.upg-100":"la mia lista dei non raggiunti + poster","tab.country-posters":"Poster per paese","sub.country-posters":"un poster per ogni paese","tab.poster-design":"Design dei poster","sub.poster-design":"tutti gli stili e i formati dei poster","tab.wall-of-people-groups":"Muro dei popoli","tab.bible-posters":"Poster biblici",experimentalSub:"mappa sperimentale",lab:"beta",loading:"Caricamento di {label}…",loadFailed:"Impossibile caricare {label}.",manifestHint:"Questa scheda è composta da manifest.json: compila l'albero o pubblica l'albero compilato per caricarla.",backToTop:"Torna su",home:"Torna alla home page",toggleList:"Mostra o nascondi l’elenco",openViews:"Apri l’elenco delle viste",expandList:"Espandi l’elenco",collapseList:"Comprimi l’elenco",collapse:"Comprimi"},ro:{"sec.posters":"Afișe","sec.experimental":"Experimental","tab.upg-100":"Afișe din lista UPG 100","sub.upg-100":"lista mea de neatinși + afișe","tab.country-posters":"Afișe pe țări","sub.country-posters":"un afiș pentru fiecare țară","tab.poster-design":"Design de afișe","sub.poster-design":"toate stilurile și dimensiunile de afiș","tab.wall-of-people-groups":"Zidul popoarelor","tab.bible-posters":"Afișe biblice",experimentalSub:"hartă experimentală",lab:"beta",loading:"Se încarcă {label}…",loadFailed:"{label} nu a putut fi încărcat.",manifestHint:"Această filă este compusă din manifest.json — construiți arborele sau serviți arborele construit pentru a o încărca.",backToTop:"Sus",home:"Înapoi la pagina principală",toggleList:"Afișează sau ascunde lista",openViews:"Deschide lista de vizualizări",expandList:"Extinde lista",collapseList:"Restrânge lista",collapse:"Restrânge"},ru:{"sec.posters":"Плакаты","sec.experimental":"Экспериментальное","tab.upg-100":"Плакаты списка UPG 100","sub.upg-100":"мой список недостигнутых + плакаты","tab.country-posters":"Плакаты по странам","sub.country-posters":"плакат для каждой страны","tab.poster-design":"Дизайн плакатов","sub.poster-design":"все стили и размеры плакатов","tab.wall-of-people-groups":"Стена народов","tab.bible-posters":"Библейские плакаты",experimentalSub:"экспериментальная карта",lab:"бета",loading:"Загрузка: {label}…",loadFailed:"Не удалось загрузить: {label}.",manifestHint:"Эта вкладка собирается из manifest.json — соберите дерево или разместите собранное дерево, чтобы загрузить её.",backToTop:"Наверх",home:"На главную страницу",toggleList:"Показать или скрыть список",openViews:"Открыть список представлений",expandList:"Развернуть список",collapseList:"Свернуть список",collapse:"Свернуть"},ar:{"sec.posters":"ملصقات","sec.experimental":"تجريبي","tab.upg-100":"ملصقات قائمة UPG 100","sub.upg-100":"قائمتي لغير المُبشَّرين + ملصقات","tab.country-posters":"ملصقات الدول","sub.country-posters":"ملصق لكل دولة","tab.poster-design":"تصميم الملصقات","sub.poster-design":"كل أنماط الملصقات وأحجامها","tab.wall-of-people-groups":"جدار الشعوب","tab.bible-posters":"ملصقات الكتاب المقدس",experimentalSub:"خريطة تجريبية",lab:"تجريبي",loading:"جارٍ تحميل {label}…",loadFailed:"تعذّر تحميل {label}.",manifestHint:"تُبنى علامة التبويب هذه من manifest.json — ابنِ الشجرة أو قدّم الشجرة المبنية لتحميلها.",backToTop:"إلى الأعلى",home:"العودة إلى الصفحة الرئيسية",toggleList:"إظهار القائمة أو إخفاؤها",openViews:"فتح قائمة العروض",expandList:"توسيع القائمة",collapseList:"طي القائمة",collapse:"طي"},hi:{"sec.posters":"पोस्टर","sec.experimental":"प्रायोगिक","tab.upg-100":"UPG 100 सूची पोस्टर","sub.upg-100":"मेरी अप्राप्त सूची + पोस्टर","tab.country-posters":"देश पोस्टर","sub.country-posters":"हर देश के लिए एक पोस्टर","tab.poster-design":"पोस्टर डिज़ाइन","sub.poster-design":"हर पोस्टर शैली और आकार","tab.wall-of-people-groups":"जनसमूहों की दीवार","tab.bible-posters":"बाइबल पोस्टर",experimentalSub:"प्रायोगिक मानचित्र",lab:"बीटा",loading:"{label} लोड हो रहा है…",loadFailed:"{label} लोड नहीं हो सका।",manifestHint:"यह टैब manifest.json से बनता है — इसे लोड करने के लिए ट्री बनाएँ या बना हुआ ट्री सर्व करें।",backToTop:"ऊपर जाएँ",home:"होमपेज पर वापस जाएँ",toggleList:"सूची दिखाएँ या छिपाएँ",openViews:"दृश्यों की सूची खोलें",expandList:"सूची फैलाएँ",collapseList:"सूची संक्षिप्त करें",collapse:"संक्षिप्त करें"},zh:{"sec.posters":"海报","sec.experimental":"实验性","tab.upg-100":"UPG 100 名单海报","sub.upg-100":"我的未得之民名单 + 海报","tab.country-posters":"国家海报","sub.country-posters":"每个国家一张海报","tab.poster-design":"海报设计","sub.poster-design":"所有海报样式与尺寸","tab.wall-of-people-groups":"民族之墙","tab.bible-posters":"圣经海报",experimentalSub:"实验性地图",lab:"测试版",loading:"正在加载{label}…",loadFailed:"无法加载{label}。",manifestHint:"此标签页由 manifest.json 组成——请构建目录树或提供已构建的目录树以加载它。",backToTop:"回到顶部",home:"返回首页",toggleList:"显示或隐藏列表",openViews:"打开视图列表",expandList:"展开列表",collapseList:"折叠列表",collapse:"折叠"}},Tn=Object.keys(ko);function Gc(e,t,o){let s=(ko[e]||ko.en)[t]??ko.en[t]??t;if(o)for(const a in o)s=s.split("{"+a+"}").join(String(o[a]));return s}const Jc=[{key:"posters",i18n:"sec.posters",icon:"poster"},{key:"experimental",i18n:"sec.experimental",icon:"flask",folder:!0,open:!1}],Fa=[{id:"upg-100",section:"posters",icon:"list",bundle:"my-upg-100-list",profile:"upg-100-mfe"},{id:"country-posters",section:"posters",icon:"map",bundle:"country-posters",profile:"country-posters-mfe"},{id:"poster-design",section:"posters",icon:"poster",bundle:"poster-design",profile:"poster-design-mfe"},{id:"wall-of-people-groups",section:"experimental",icon:"flask",bundle:"wall-of-people-groups",profile:"wall-of-people-groups"},{id:"bible-posters",section:"experimental",icon:"flask",bundle:"bible-posters",profile:"bible-posters",provisional:!0}],Xc=new Set(["key-cities","posterverse","doxa-maps-spa","plugin-studio"]),Zc=new Set(["my-upg-100-list-map","country-posters-map"]);function Yc(e,t=()=>{}){const o=e&&Array.isArray(e.bundles)?e.bundles:[],n=Object.fromEntries(o.map(a=>[a&&a.bundle,a])),s=[];for(const a of Fa){if(Xc.has(a.bundle))continue;const i=n[a.bundle];if(!i)continue;const r=Array.isArray(i.profiles)?i.profiles:[];let l=r.find(f=>f&&f.profile===a.profile);if(!l){if(l=r.find(f=>f&&f.profile===a.bundle)||r[0],!l)continue;t(`[posterverse] ${a.bundle} has no profile "${a.profile}"; row "${a.id}" opens "${l.profile}" instead`)}const d=l.element||Array.isArray(i.elements)&&i.elements[0]||a.bundle,p=i.scriptUrl||l.scriptUrl||"";p&&s.push({...a,tag:d,scriptUrl:p,profile:l.profile,heavy:Zc.has(d)||!!l.isMap})}return s}const Qc=":host{display:block;position:relative;height:var(--posterverse-height, 85vh);min-height:480px}:host{font-size:16px;line-height:normal;font-weight:400;font-style:normal;font-variant:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;text-align:start;text-indent:0;text-shadow:none;white-space:normal;-webkit-hyphens:manual;hyphens:manual;visibility:visible;cursor:auto}:host([hidden]){display:none}.pv-pane{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;--profile-min-h: 0}.pv-slot{position:relative;min-height:100%}.pv-hint{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center;color:#6d766e;font-size:13px;padding:20px}.pv-hint.err{color:#b3261e}.pv-hint small{color:#6d766e}";function Ia(){try{const e=new URLSearchParams(location.search),t=(e.get("lang")||e.get("locale")||"").split("-")[0].toLowerCase();if(Tn.includes(t))return t}catch{}try{const e=(document.documentElement.lang||"").split("-")[0].toLowerCase();if(Tn.includes(e))return e}catch{}return""}const Na=e=>({...e,tag:e.tag||"",scriptUrl:e.scriptUrl||"",heavy:!!e.heavy,mounted:!1,state:"idle",error:""}),ed=nn({name:"Posterverse",inheritAttrs:!1,components:{VerticalTabsLayout:Pc,BackToTopButton:ba,ShellLanguageMenu:Kc},props:{treeBase:{type:String,default:""},profileConfig:{type:[String,Object],default:""},heading:{type:String,default:"Posterverse"},tokenUrl:{type:String,default:""},tk:{type:String,default:""},language:{type:String,default:""},apiBaseUrl:{type:String,default:""},provider:{type:String,default:""},tab:{type:String,default:""},homeHref:{type:String,default:""},homeLabel:{type:String,default:""}},emits:["tab-change"],setup(){return{injectedBase:St("pvTreeBase","")}},data(){return{paneEls:{},activeIndex:0,manifestError:"",manifestBase:"",runtime:{},hostLang:Ia(),localPick:"",pickBase:null,tabs:Fa.filter(e=>!e.provisional).map(Na)}},computed:{cfg(){let e=this.profileConfig;if(typeof e=="string")try{e=e?JSON.parse(e):{}}catch{e={}}return e&&typeof e=="object"?e:{}},base(){const e=String(this.treeBase||this.cfg.treeBase||this.injectedBase||"").trim();return e?e.replace(/\/+$/,"")+"/":""},assetsBase(){const e=String(this.cfg.assetsBase||"").trim();return/^https?:\/\//i.test(e)||e.startsWith("/")?e.replace(/\/+$/,""):this.manifestBase?this.manifestBase.replace(/\/+$/,"")+"/assets":""},headingText(){return String(this.cfg.heading||this.heading||"").trim()||"Posterverse"},hostLanguage(){return String(this.language||this.cfg.language||this.cfg.locale||this.cfg.lang||"").trim()},effectiveLocale(){return this.localPick&&this.hostLanguage===this.pickBase?this.localPick:(this.hostLanguage||this.hostLang||"en").split("-")[0].toLowerCase()},uiLocale(){return Tn.includes(this.effectiveLocale)?this.effectiveLocale:"en"},uiDir(){return this.uiLocale==="ar"?"rtl":"ltr"},layoutLabels(){const e={};for(const t of["toggleList","openViews","expandList","collapseList","collapse","home"])e[t]=this.tr(t);return e},effectiveProvider(){const e=String(this.provider||this.cfg.provider||"").trim().toLowerCase();return e==="maplibre"||e==="mapbox"?e:""},activeKey(){const e=this.tabs[this.activeIndex];return e?e.id:""},activePaneEl(){return this.paneEls[this.activeIndex]||null},navGroups(){return Jc.map(e=>({key:e.key,label:this.tr(e.i18n),icon:e.icon,folder:!!e.folder,open:e.open,rows:this.tabs.filter(t=>t.section===e.key).map(t=>({key:t.id,label:this.tabLabel(t),sub:this.tabSub(t),icon:t.icon,badge:e.folder?this.tr("lab"):void 0}))})).filter(e=>e.rows.length)}},watch:{effectiveLocale(){const e=(o,n)=>{try{const s=this._slots&&this._slots[o];s&&(s.innerHTML="")}catch{}n.mounted=!1,n.state="idle",n.error=""};this.tabs.forEach((o,n)=>{o.mounted&&n!==this.activeIndex&&e(n,o)});const t=this.tabs[this.activeIndex];!t||!t.mounted||(e(this.activeIndex,t),this.mountElement(this.activeIndex))},tab(e){e&&this.onSelect(e)},hostLanguage(e){e!==this.pickBase&&(this.localPick="",this.pickBase=null)}},mounted(){this.watchHostLang(),this.select(this.initialIndex()),this.loadManifest()},beforeUnmount(){this._langObs&&(this._langObs.disconnect(),this._langObs=null)},methods:{tr(e,t){return Gc(this.uiLocale,e,t)},setLocale(e){this.pickBase=this.hostLanguage,this.localPick=e,Ic(e)},tabLabel(e){return this.tr("tab."+e.id)},tabSub(e){return e.section==="experimental"?this.tr("experimentalSub"):this.tr("sub."+e.id)},setSlot(e,t){t&&(this._slots=Object.assign(this._slots||{},{[e]:t}))},watchHostLang(){typeof MutationObserver>"u"||typeof document>"u"||(this._langObs=new MutationObserver(()=>{this.hostLang=Ia()}),this._langObs.observe(document.documentElement,{attributes:!0,attributeFilter:["lang"]}))},requestedTab(){let e="";try{e=new URLSearchParams(location.search).get("tab")||""}catch{}return String(this.tab||this.cfg.tab||e||"").trim()},initialIndex(){const e=this.tabs.findIndex(t=>t.id===this.requestedTab());return e>=0?e:0},loadManifest(){const e=d=>{try{return new URL(d,location.href).href.replace(/[^/]*$/,"")}catch{return""}},t=this.resolve("manifest.json"),o={url:t,root:e(t)},n={url:this.resolve("doxa-maps-spa/manifest.json"),root:o.root};let s=!1;try{s=new URL(t,location.href).origin!==location.origin}catch{}const a=s?[n,o]:[o,n],i="/public/dx-maps/manifest.json";a.some(d=>d.url===i)||a.push({url:i,root:e(i)});const r=[],l=d=>{if(d>=a.length){this.manifestError="manifest.json not found (tried "+r.join(", ")+")",console.error("[posterverse] "+this.manifestError+" — every tab is composed from it.");return}const{url:p,root:f}=a[d];return r.push(p),fetch(p,{credentials:"same-origin"}).then(w=>{if(!w||!w.ok)throw new Error(p+" → HTTP "+(w?w.status:"?"));return w.json()}).then(w=>{if(!w)throw new Error(p+" → empty");this.manifestError="",this.manifestBase=f||"",this.applyManifest(w)}).catch(()=>l(d+1))};try{l(0)}catch{}},applyManifest(e){this.runtime=e&&e.runtime&&typeof e.runtime=="object"?e.runtime:{},this.applyPageGlobals();const t=this.activeKey;this.tabs=Yc(e,a=>console.warn(a)).map(Na);const o=this.requestedTab(),n=!this._honouredTab&&o?this.tabs.findIndex(a=>a.id===o):-1,s=this.tabs.findIndex(a=>a.id===t);this._honouredTab=!0,this.select(n>=0?n:s>=0?s:0)},onSelect(e){const t=this.tabs.findIndex(o=>o.id===e);t!==-1&&this.select(t)},resolve(e){const t=String(e);if(/^(https?:)?\/\//.test(t)||t.startsWith("/"))return t;const o=t.replace(/^\.\//,"");return this.manifestBase?this.manifestBase.replace(/\/+$/,"")+"/"+o:this.base?this.base.replace(/\/+$/,"")+"/"+o:"../"+o},select(e){const t=this.activeIndex;if(this.activeIndex=e,t!==e&&t>=0){const n=this.tabs[t];n&&n.heavy&&n.mounted&&this.releaseTab(t,n)}const o=this.tabs[e];o&&((t!==e||!this._announced)&&(this._announced=!0,this.$emit("tab-change",{id:o.id,label:this.tabLabel(o)})),o.scriptUrl&&(o.mounted||this.$nextTick(()=>{this.activeIndex===e&&this.mountElement(e)})))},releaseTab(e,t){try{const o=this._slots&&this._slots[e];o&&(o.innerHTML="")}catch{}this._slots&&delete this._slots[e],t.mounted=!1,t.state="idle",t.error=""},childConfig(e){const t={profile:e.profile||e.id,instanceId:"pv-"+e.id};this.effectiveLocale&&(t.locale=this.effectiveLocale);const o=this.tk||this.cfg.tk||this.runtime.token;return o&&(t.tk=o),(this.tokenUrl||this.cfg.tokenUrl)&&(t.tokenUrl=this.tokenUrl||this.cfg.tokenUrl),this.effectiveProvider&&(t.provider=this.effectiveProvider),this.base&&(t.treeBase=this.base),this.assetsBase&&(t.assetsBase=this.assetsBase),t.urlSync=!1,t.mapTitle=this.tabLabel(e),t},applyPageGlobals(){if(typeof window>"u")return;const e=String(this.apiBaseUrl||this.cfg.apiBaseUrl||this.runtime.apiBaseUrl||"").trim();e&&!window.MAP_APP_API_URL&&(window.MAP_APP_API_URL=e.replace(/\/+$/,""));const t=this.tk||this.cfg.tk||this.runtime.token;t&&!window.MAP_TOKEN&&(window.MAP_TOKEN=t),this.effectiveProvider&&!window.MAP_PROVIDER&&(window.MAP_PROVIDER=this.effectiveProvider)},mountElement(e){const t=this.tabs[e];t.mounted=!0,t.state="loading",Aa(this.resolve(t.scriptUrl)).then(()=>Sl(t.tag)).then(()=>{try{if(t.heavy&&this.activeIndex!==e){t.mounted=!1,t.state="idle";return}const o=this._slots&&this._slots[e];if(!o){t.state="error",t.error="no slot";return}o.innerHTML="";const n=document.createElement(t.tag);n.setAttribute("profile-config",JSON.stringify(this.childConfig(t))),this.base&&n.setAttribute("tree-base",this.base.replace(/\/+$/,"")),n.style.cssText="display:block;position:absolute;inset:0;width:100%;height:100%;min-height:0;",o.appendChild(n),t.state="ready"}catch(o){t.state="error",t.error="mount failed: "+(o&&o.message||String(o))}}).catch(o=>{t.state="error",t.error=o&&o.message||String(o)})}}}),td=["hidden"],od={key:0,class:"pv-hint"},nd={key:1,class:"pv-hint err"},sd={key:2,class:"pv-hint err"};function ad(e,t,o,n,s,a){const i=fo("ShellLanguageMenu"),r=fo("BackToTopButton"),l=fo("VerticalTabsLayout");return M(),Pt(l,{dir:e.uiDir,lang:e.uiLocale,labels:e.layoutLabels,title:e.headingText,"nav-label":e.tr("sec.posters"),header:!1,"home-href":e.homeHref||e.cfg.homeHref||"","home-label":e.homeLabel||e.cfg.homeLabel||"",groups:e.navGroups,active:e.activeKey,"onUpdate:active":e.onSelect},{"phone-end":io(()=>[ge(i,{current:e.uiLocale,onSwitch:e.setLocale},null,8,["current","onSwitch"])]),"rail-end":io(({collapsed:d})=>[ge(i,{current:e.uiLocale,collapsed:d,onSwitch:e.setLocale},null,8,["current","collapsed","onSwitch"])]),default:io(()=>[(M(!0),C(ee,null,ft(e.tabs,(d,p)=>en((M(),C("section",{key:d.id,class:"pv-pane",ref_for:!0,ref:f=>{f?e.paneEls[p]=f:delete e.paneEls[p]},hidden:p!==e.activeIndex},[!d.heavy||p===e.activeIndex?(M(),C(ee,{key:0},[I("div",{class:"pv-slot",ref_for:!0,ref:f=>e.setSlot(p,f)},null,512),d.state==="loading"?(M(),C("div",od,E(e.tr("loading",{label:e.tabLabel(d)})),1)):d.state==="error"?(M(),C("div",nd,[$t(E(e.tr("loadFailed",{label:e.tabLabel(d)})),1),t[0]||(t[0]=I("br",null,null,-1)),I("small",null,E(d.error),1)])):d.state==="idle"&&!d.scriptUrl&&e.manifestError?(M(),C("div",sd,[$t(E(e.tr("loadFailed",{label:e.tabLabel(d)})),1),t[1]||(t[1]=I("br",null,null,-1)),I("small",null,E(e.manifestError),1),t[2]||(t[2]=I("br",null,null,-1)),I("small",null,E(e.tr("manifestHint")),1)])):ne("",!0)],64)):ne("",!0)],8,td)),[[bn,p===e.activeIndex]])),128)),ge(r,{target:e.activePaneEl,labels:{backToTop:e.tr("backToTop")}},null,8,["target","labels"])]),_:1},8,["dir","lang","labels","title","nav-label","home-href","home-label","groups","active","onUpdate:active"])}const rd=xo(ed,[["render",ad],["styles",[Qc]]]),id=Ml(),ld=il(rd,{configureApp(e){e.provide("pvTreeBase",id)}});typeof customElements<"u"&&!customElements.get("posterverse-app")&&customElements.define("posterverse-app",ld)})(); diff --git a/public/dx-maps/posterverse/posterverse/app/index.html b/public/dx-maps/posterverse/posterverse/app/index.html index e6d286894..7ec8c0ecc 100644 --- a/public/dx-maps/posterverse/posterverse/app/index.html +++ b/public/dx-maps/posterverse/posterverse/app/index.html @@ -67,7 +67,7 @@ - + - +