diff --git a/library/components/tables/DataTable.vue b/library/components/tables/DataTable.vue index 3b1bfb710..17aa132b5 100644 --- a/library/components/tables/DataTable.vue +++ b/library/components/tables/DataTable.vue @@ -191,6 +191,59 @@ onBeforeUnmount(() => { try { tab.value?.destroy() } catch (_) {} }) watch(() => props.table, () => { try { tab.value?.replaceData(props.table?.rows || []) } catch (_) {} }) useShadowStyles( + // ── HOUSE PALETTE OVER TABULATOR'S STOCK THEME ──────────────────────────────────── + // The vendored tabulator.min.css is Tabulator's DEFAULT theme: #333 borders, #666 rows, + // #000 headers. MEASURED identically in all three consumers (gospel-resources, + // cities-internet, key-cities) — row rgb(102,102,102), header rgb(51,51,51) — so every + // table in the product shipped mid-grey while the house style is Material LIGHT. + // + // OVERRIDDEN BY SPECIFICITY, NOT BY ORDER. injectCss() appends the vendor sheet AFTER + // a fetch, so it lands after these rules and would win any tie. Every selector here is + // `.dt` + the tabulator class — two classes against the vendor's one — so it wins + // regardless of which sheet is appended last. Re-ordering the injection would be the + // fragile fix; specificity is the durable one. + // + // The dark variant is left to the vendor sheet under .dt.is-dark (three classes, so it + // still beats these): this repo ships light only, but DataTable has other callers and + // silently removing their dark mode is not this change's business. + '.dt .tabulator{border:1px solid #d1d4cd;background:#fff;font-size:14px}' + + '.dt .tabulator .tabulator-header{background:#f3f3f1;border-bottom:1px solid #d1d4cd;color:#3b463d}' + + // FOUR classes, deliberately: the vendor's own rule is + // `.tabulator .tabulator-header .tabulator-col` — three — and it is appended after + // these, so a three-class override ties and LOSES. Measured: the header went #f3f3f1 + // while the columns stayed rgb(51,51,51), which is what a specificity tie looks like. + '.dt .tabulator .tabulator-header .tabulator-col{background:#f3f3f1;' + + 'border-right:1px solid #d1d4cd;color:#3b463d}' + + '.dt .tabulator .tabulator-header .tabulator-col.tabulator-sortable:hover{background:#e9ebe6}' + + '.dt .tabulator .tabulator-col-title{color:#3b463d;font-weight:700}' + + // FIVE classes: the vendor's filter-input rule is four + // (.tabulator .tabulator-header .tabulator-col .tabulator-header-filter input) and sets + // background:#444;color:#fff. A four-class override ties and loses, which read on screen + // as dark boxes sitting under a light header — caught by LOOKING at it, not by the + // computed-style probe, which was only sampling the row and the header. + '.dt .tabulator .tabulator-header .tabulator-col .tabulator-header-filter input,' + + '.dt .tabulator .tabulator-header .tabulator-col .tabulator-header-filter select' + + '{background:#fff;border:1px solid #d1d4cd;border-radius:5px;color:#3b463d;padding:3px 6px}' + + '.dt .tabulator .tabulator-row{background:#fff;color:#3b463d;border-bottom:1px solid #e6e8e3}' + + '.dt .tabulator .tabulator-row.tabulator-row-even{background:#faf9f7}' + + '.dt .tabulator .tabulator-row:hover{background:#e9ebe6}' + + '.dt .tabulator .tabulator-row .tabulator-cell{border-right:1px solid #e6e8e3;color:#3b463d}' + + // The resource link is the point of the gospel-resources table, so it reads as a link + // in the accent rather than as default-blue on grey. + '.dt .tabulator .tabulator-row .tabulator-cell a{color:#4a7a52;font-weight:600}' + + '.dt .tabulator .tabulator-footer{background:#f3f3f1;border-top:1px solid #d1d4cd;color:#3b463d}' + + // The paginator and its "Page Size" label are coloured by three-class vendor rules, so + // these take four. The label was rendering white on the now-light footer — invisible. + '.dt .tabulator .tabulator-footer .tabulator-paginator{color:#3b463d}' + + '.dt .tabulator .tabulator-footer .tabulator-paginator label{color:#3b463d}' + + '.dt .tabulator .tabulator-footer .tabulator-paginator select{background:#fff;' + + 'border:1px solid #d1d4cd;border-radius:5px;color:#3b463d}' + + '.dt .tabulator .tabulator-footer .tabulator-page{border:1px solid #d1d4cd;background:#fff;' + + 'color:#3b463d;border-radius:5px}' + + '.dt .tabulator .tabulator-footer .tabulator-page.active{background:#92b195;' + + 'border-color:#92b195;color:#fff}' + + '.dt .tabulator .tabulator-footer .tabulator-page:not(disabled):hover{background:#e9ebe6;color:#3b463d}' + + '.dt .tabulator .tabulator-footer .tabulator-page:disabled{opacity:.45}' + // box-sizing is NOT inherited into a shadow root from the host reset. '.dt,.dt *{box-sizing:border-box}' + ".dt{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}" + diff --git a/public/doxa-maps/cities-internet/cities-internet.js b/public/doxa-maps/cities-internet/cities-internet.js index 87092034d..4d116f601 100644 --- a/public/doxa-maps/cities-internet/cities-internet.js +++ b/public/doxa-maps/cities-internet/cities-internet.js @@ -1,45 +1,45 @@ -(function(){"use strict";var ar=typeof document<"u"?document.currentScript:null;const $_="modulepreload",O_=function(e){return"/"+e},N_={},lr=function(t,n,o){let s=Promise.resolve();function r(i){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=i,window.dispatchEvent(a),!a.defaultPrevented)throw i}return s.then(i=>{for(const a of i||[])a.status==="rejected"&&r(a.reason);return t().catch(r)})};/** +(function(){"use strict";var ir=typeof document<"u"?document.currentScript:null;const $_="modulepreload",O_=function(e){return"/"+e},N_={},lr=function(t,n,o){let s=Promise.resolve();function r(a){const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=a,window.dispatchEvent(i),!i.defaultPrevented)throw a}return s.then(a=>{for(const i of a||[])i.status==="rejected"&&r(i.reason);return t().catch(r)})};/** * @vue/shared v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/function cr(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const _e={},_n=[],ht=()=>{},ks=()=>!1,ho=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),go=e=>e.startsWith("onUpdate:"),Ce=Object.assign,ur=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Ul=Object.prototype.hasOwnProperty,he=(e,t)=>Ul.call(e,t),ee=Array.isArray,Gt=e=>Mn(e)==="[object Map]",mo=e=>Mn(e)==="[object Set]",$s=e=>Mn(e)==="[object Date]",oe=e=>typeof e=="function",be=e=>typeof e=="string",Xe=e=>typeof e=="symbol",ge=e=>e!==null&&typeof e=="object",Os=e=>(ge(e)||oe(e))&&oe(e.then)&&oe(e.catch),Ns=Object.prototype.toString,Mn=e=>Ns.call(e),jl=e=>Mn(e).slice(8,-1),_o=e=>Mn(e)==="[object Object]",bo=e=>be(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Pn=cr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),yo=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Gl=/-\w/g,Fe=yo(e=>e.replace(Gl,t=>t.slice(1).toUpperCase())),Yl=/\B([A-Z])/g,tt=yo(e=>e.replace(Yl,"-$1").toLowerCase()),vo=yo(e=>e.charAt(0).toUpperCase()+e.slice(1)),pr=yo(e=>e?`on${vo(e)}`:""),gt=(e,t)=>!Object.is(e,t),dr=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:o,value:n})},Vl=e=>{const t=parseFloat(e);return isNaN(t)?e:t},As=e=>{const t=be(e)?Number(e):NaN;return isNaN(t)?e:t};let Es;const wo=()=>Es||(Es=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function bn(e){if(ee(e)){const t={};for(let n=0;n{if(n){const o=n.split(ql);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function Te(e){let t="";if(be(e))t=e;else if(ee(e))for(let n=0;n!!(e&&e.__v_isRef===!0),Q=e=>be(e)?e:e==null?"":ee(e)||ge(e)&&(e.toString===Ns||!oe(e.toString))?Ss(e)?Q(e.value):JSON.stringify(e,Is,2):String(e),Is=(e,t)=>Ss(t)?Is(e,t.value):Gt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[o,s],r)=>(n[fr(o,r)+" =>"]=s,n),{})}:mo(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>fr(n))}:Xe(t)?fr(t):ge(t)&&!ee(t)&&!_o(t)?String(t):t,fr=(e,t="")=>{var n;return Xe(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** +**/function cr(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const _e={},_n=[],ht=()=>{},ks=()=>!1,ho=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),go=e=>e.startsWith("onUpdate:"),Ce=Object.assign,ur=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Ul=Object.prototype.hasOwnProperty,he=(e,t)=>Ul.call(e,t),ee=Array.isArray,Gt=e=>Mn(e)==="[object Map]",mo=e=>Mn(e)==="[object Set]",$s=e=>Mn(e)==="[object Date]",oe=e=>typeof e=="function",be=e=>typeof e=="string",Xe=e=>typeof e=="symbol",ge=e=>e!==null&&typeof e=="object",Os=e=>(ge(e)||oe(e))&&oe(e.then)&&oe(e.catch),Ns=Object.prototype.toString,Mn=e=>Ns.call(e),jl=e=>Mn(e).slice(8,-1),_o=e=>Mn(e)==="[object Object]",bo=e=>be(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Pn=cr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),yo=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Gl=/-\w/g,Fe=yo(e=>e.replace(Gl,t=>t.slice(1).toUpperCase())),Yl=/\B([A-Z])/g,tt=yo(e=>e.replace(Yl,"-$1").toLowerCase()),vo=yo(e=>e.charAt(0).toUpperCase()+e.slice(1)),pr=yo(e=>e?`on${vo(e)}`:""),gt=(e,t)=>!Object.is(e,t),dr=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:o,value:n})},Vl=e=>{const t=parseFloat(e);return isNaN(t)?e:t},As=e=>{const t=be(e)?Number(e):NaN;return isNaN(t)?e:t};let Es;const wo=()=>Es||(Es=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function bn(e){if(ee(e)){const t={};for(let n=0;n{if(n){const o=n.split(ql);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function Te(e){let t="";if(be(e))t=e;else if(ee(e))for(let n=0;n!!(e&&e.__v_isRef===!0),Q=e=>be(e)?e:e==null?"":ee(e)||ge(e)&&(e.toString===Ns||!oe(e.toString))?Ss(e)?Q(e.value):JSON.stringify(e,xs,2):String(e),xs=(e,t)=>Ss(t)?xs(e,t.value):Gt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[o,s],r)=>(n[fr(o,r)+" =>"]=s,n),{})}:mo(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>fr(n))}:Xe(t)?fr(t):ge(t)&&!ee(t)&&!_o(t)?String(t):t,fr=(e,t="")=>{var n;return Xe(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** * @vue/reactivity v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let Se;class xs{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,n;if(this.scopes){const o=this.scopes.slice();for(t=0,n=o.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 n,o;for(n=0,o=this.effects.length;n0)return;if(Dn){let t=Dn;for(Dn=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Bn;){let t=Bn;for(Bn=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(o){e||(e=o)}t=n}}if(e)throw e}function Ds(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Rs(e){let t,n=e.depsTail,o=n;for(;o;){const s=o.prevDep;o.version===-1?(o===n&&(n=s),yr(o),Ql(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=s}e.deps=t,e.depsTail=n}function br(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Ws(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Ws(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Rn)||(e.globalVersion=Rn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!br(e))))return;e.flags|=2;const t=e.dep,n=ye,o=st;ye=e,st=!0;try{Ds(e);const s=e.fn(e._value);(t.version===0||gt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{ye=n,st=o,Rs(e),e.flags&=-3}}function yr(e,t=!1){const{dep:n,prevSub:o,nextSub:s}=e;if(o&&(o.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=o,e.nextSub=void 0),n.subs===e&&(n.subs=o,!o&&n.computed)){n.computed.flags&=-5;for(let r=n.computed.deps;r;r=r.nextDep)yr(r,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Ql(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let st=!0;const Us=[];function mt(){Us.push(st),st=!1}function _t(){const e=Us.pop();st=e===void 0?!0:e}function js(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ye;ye=void 0;try{t()}finally{ye=n}}}let Rn=0;class ec{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class vr{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(!ye||!st||ye===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ye)n=this.activeLink=new ec(ye,this),ye.deps?(n.prevDep=ye.depsTail,ye.depsTail.nextDep=n,ye.depsTail=n):ye.deps=ye.depsTail=n,Gs(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const o=n.nextDep;o.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=o),n.prevDep=ye.depsTail,n.nextDep=void 0,ye.depsTail.nextDep=n,ye.depsTail=n,ye.deps===n&&(ye.deps=o)}return n}trigger(t){this.version++,Rn++,this.notify(t)}notify(t){mr();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{_r()}}}function Gs(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let o=t.deps;o;o=o.nextDep)Gs(o)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const $o=new WeakMap,sn=Symbol(""),wr=Symbol(""),Wn=Symbol("");function je(e,t,n){if(st&&ye){let o=$o.get(e);o||$o.set(e,o=new Map);let s=o.get(n);s||(o.set(n,s=new vr),s.map=o,s.key=n),s.track()}}function At(e,t,n,o,s,r){const i=$o.get(e);if(!i){Rn++;return}const a=l=>{l&&l.trigger()};if(mr(),t==="clear")i.forEach(a);else{const l=ee(e),c=l&&bo(n);if(l&&n==="length"){const u=Number(o);i.forEach((f,h)=>{(h==="length"||h===Wn||!Xe(h)&&h>=u)&&a(f)})}else switch((n!==void 0||i.has(void 0))&&a(i.get(n)),c&&a(i.get(Wn)),t){case"add":l?c&&a(i.get("length")):(a(i.get(sn)),Gt(e)&&a(i.get(wr)));break;case"delete":l||(a(i.get(sn)),Gt(e)&&a(i.get(wr)));break;case"set":Gt(e)&&a(i.get(sn));break}}_r()}function tc(e,t){const n=$o.get(e);return n&&n.get(t)}function yn(e){const t=pe(e);return t===e?t:(je(t,"iterate",Wn),Je(e)?t:t.map(it))}function Oo(e){return je(e=pe(e),"iterate",Wn),e}function bt(e,t){return Lt(e)?wn(Tt(e)?it(t):t):it(t)}const nc={__proto__:null,[Symbol.iterator](){return kr(this,Symbol.iterator,e=>bt(this,e))},concat(...e){return yn(this).concat(...e.map(t=>ee(t)?yn(t):t))},entries(){return kr(this,"entries",e=>(e[1]=bt(this,e[1]),e))},every(e,t){return Et(this,"every",e,t,void 0,arguments)},filter(e,t){return Et(this,"filter",e,t,n=>n.map(o=>bt(this,o)),arguments)},find(e,t){return Et(this,"find",e,t,n=>bt(this,n),arguments)},findIndex(e,t){return Et(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Et(this,"findLast",e,t,n=>bt(this,n),arguments)},findLastIndex(e,t){return Et(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Et(this,"forEach",e,t,void 0,arguments)},includes(...e){return $r(this,"includes",e)},indexOf(...e){return $r(this,"indexOf",e)},join(e){return yn(this).join(e)},lastIndexOf(...e){return $r(this,"lastIndexOf",e)},map(e,t){return Et(this,"map",e,t,void 0,arguments)},pop(){return Un(this,"pop")},push(...e){return Un(this,"push",e)},reduce(e,...t){return Ys(this,"reduce",e,t)},reduceRight(e,...t){return Ys(this,"reduceRight",e,t)},shift(){return Un(this,"shift")},some(e,t){return Et(this,"some",e,t,void 0,arguments)},splice(...e){return Un(this,"splice",e)},toReversed(){return yn(this).toReversed()},toSorted(e){return yn(this).toSorted(e)},toSpliced(...e){return yn(this).toSpliced(...e)},unshift(...e){return Un(this,"unshift",e)},values(){return kr(this,"values",e=>bt(this,e))}};function kr(e,t,n){const o=Oo(e),s=o[t]();return o!==e&&!Je(e)&&(s._next=s.next,s.next=()=>{const r=s._next();return r.done||(r.value=n(r.value)),r}),s}const oc=Array.prototype;function Et(e,t,n,o,s,r){const i=Oo(e),a=i!==e&&!Je(e),l=i[t];if(l!==oc[t]){const f=l.apply(e,r);return a?it(f):f}let c=n;i!==e&&(a?c=function(f,h){return n.call(this,bt(e,f),h,e)}:n.length>2&&(c=function(f,h){return n.call(this,f,h,e)}));const u=l.call(i,c,o);return a&&s?s(u):u}function Ys(e,t,n,o){const s=Oo(e),r=s!==e&&!Je(e);let i=n,a=!1;s!==e&&(r?(a=o.length===0,i=function(c,u,f){return a&&(a=!1,c=bt(e,c)),n.call(this,c,bt(e,u),f,e)}):n.length>3&&(i=function(c,u,f){return n.call(this,c,u,f,e)}));const l=s[t](i,...o);return a?bt(e,l):l}function $r(e,t,n){const o=pe(e);je(o,"iterate",Wn);const s=o[t](...n);return(s===-1||s===!1)&&Lo(n[0])?(n[0]=pe(n[0]),o[t](...n)):s}function Un(e,t,n=[]){mt(),mr();const o=pe(e)[t].apply(e,n);return _r(),_t(),o}const rc=cr("__proto__,__v_isRef,__isVue"),Vs=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Xe));function sc(e){Xe(e)||(e=String(e));const t=pe(this);return je(t,"has",e),t.hasOwnProperty(e)}class Hs{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,o){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,r=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return r;if(n==="__v_raw")return o===(s?r?Zs:Js:r?Xs:Ks).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(o)?t:void 0;const i=ee(t);if(!s){let l;if(i&&(l=nc[n]))return l;if(n==="hasOwnProperty")return sc}const a=Reflect.get(t,n,Ne(t)?t:o);if((Xe(n)?Vs.has(n):rc(n))||(s||je(t,"get",n),r))return a;if(Ne(a)){const l=i&&bo(n)?a:a.value;return s&&ge(l)?Nr(l):l}return ge(a)?s?Nr(a):Eo(a):a}}class qs extends Hs{constructor(t=!1){super(!1,t)}set(t,n,o,s){let r=t[n];const i=ee(t)&&bo(n);if(!this._isShallow){const c=Lt(r);if(!Je(o)&&!Lt(o)&&(r=pe(r),o=pe(o)),!i&&Ne(r)&&!Ne(o))return c||(r.value=o),!0}const a=i?Number(n)e,No=e=>Reflect.getPrototypeOf(e);function uc(e,t,n){return function(...o){const s=this.__v_raw,r=pe(s),i=Gt(r),a=e==="entries"||e===Symbol.iterator&&i,l=e==="keys"&&i,c=s[e](...o),u=n?Or:t?wn:it;return!t&&je(r,"iterate",l?wr:sn),Ce(Object.create(c),{next(){const{value:f,done:h}=c.next();return h?{value:f,done:h}:{value:a?[u(f[0]),u(f[1])]:u(f),done:h}}})}}function Co(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function pc(e,t){const n={get(s){const r=this.__v_raw,i=pe(r),a=pe(s);e||(gt(s,a)&&je(i,"get",s),je(i,"get",a));const{has:l}=No(i),c=t?Or:e?wn:it;if(l.call(i,s))return c(r.get(s));if(l.call(i,a))return c(r.get(a));r!==i&&r.get(s)},get size(){const s=this.__v_raw;return!e&&je(pe(s),"iterate",sn),s.size},has(s){const r=this.__v_raw,i=pe(r),a=pe(s);return e||(gt(s,a)&&je(i,"has",s),je(i,"has",a)),s===a?r.has(s):r.has(s)||r.has(a)},forEach(s,r){const i=this,a=i.__v_raw,l=pe(a),c=t?Or:e?wn:it;return!e&&je(l,"iterate",sn),a.forEach((u,f)=>s.call(r,c(u),c(f),i))}};return Ce(n,e?{add:Co("add"),set:Co("set"),delete:Co("delete"),clear:Co("clear")}:{add(s){const r=pe(this),i=No(r),a=pe(s),l=!t&&!Je(s)&&!Lt(s)?a:s;return i.has.call(r,l)||gt(s,l)&&i.has.call(r,s)||gt(a,l)&&i.has.call(r,a)||(r.add(l),At(r,"add",l,l)),this},set(s,r){!t&&!Je(r)&&!Lt(r)&&(r=pe(r));const i=pe(this),{has:a,get:l}=No(i);let c=a.call(i,s);c||(s=pe(s),c=a.call(i,s));const u=l.call(i,s);return i.set(s,r),c?gt(r,u)&&At(i,"set",s,r):At(i,"add",s,r),this},delete(s){const r=pe(this),{has:i,get:a}=No(r);let l=i.call(r,s);l||(s=pe(s),l=i.call(r,s)),a&&a.call(r,s);const c=r.delete(s);return l&&At(r,"delete",s,void 0),c},clear(){const s=pe(this),r=s.size!==0,i=s.clear();return r&&At(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=uc(s,e,t)}),n}function Ao(e,t){const n=pc(e,t);return(o,s,r)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?o:Reflect.get(he(n,s)&&s in o?n:o,s,r)}const dc={get:Ao(!1,!1)},fc={get:Ao(!1,!0)},hc={get:Ao(!0,!1)},gc={get:Ao(!0,!0)},Ks=new WeakMap,Xs=new WeakMap,Js=new WeakMap,Zs=new WeakMap;function mc(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Eo(e){return Lt(e)?e:To(e,!1,ic,dc,Ks)}function _c(e){return To(e,!1,lc,fc,Xs)}function Nr(e){return To(e,!0,ac,hc,Js)}function A_(e){return To(e,!0,cc,gc,Zs)}function To(e,t,n,o,s){if(!ge(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 i=mc(jl(e));if(i===0)return e;const a=new Proxy(e,i===2?o:n);return s.set(e,a),a}function Tt(e){return Lt(e)?Tt(e.__v_raw):!!(e&&e.__v_isReactive)}function Lt(e){return!!(e&&e.__v_isReadonly)}function Je(e){return!!(e&&e.__v_isShallow)}function Lo(e){return e?!!e.__v_raw:!1}function pe(e){const t=e&&e.__v_raw;return t?pe(t):e}function vn(e){return!he(e,"__v_skip")&&Object.isExtensible(e)&&Cs(e,"__v_skip",!0),e}const it=e=>ge(e)?Eo(e):e,wn=e=>ge(e)?Nr(e):e;function Ne(e){return e?e.__v_isRef===!0:!1}function re(e){return Qs(e,!1)}function jn(e){return Qs(e,!0)}function Qs(e,t){return Ne(e)?e:new bc(e,t)}class bc{constructor(t,n){this.dep=new vr,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:pe(t),this._value=n?t:it(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,o=this.__v_isShallow||Je(t)||Lt(t);t=o?t:pe(t),gt(t,n)&&(this._rawValue=t,this._value=o?t:it(t),this.dep.trigger())}}function ze(e){return Ne(e)?e.value:e}const yc={get:(e,t,n)=>t==="__v_raw"?e:ze(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const s=e[t];return Ne(s)&&!Ne(n)?(s.value=n,!0):Reflect.set(e,t,n,o)}};function ei(e){return Tt(e)?e:new Proxy(e,yc)}function vc(e){const t=ee(e)?new Array(e.length):{};for(const n in e)t[n]=kc(e,n);return t}class wc{constructor(t,n,o){this._object=t,this._defaultValue=o,this.__v_isRef=!0,this._value=void 0,this._key=Xe(n)?n:String(n),this._raw=pe(t);let s=!0,r=t;if(!ee(t)||Xe(this._key)||!bo(this._key))do s=!Lo(r)||Je(r);while(s&&(r=r.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=ze(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&Ne(this._raw[this._key])){const n=this._object[this._key];if(Ne(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return tc(this._raw,this._key)}}function kc(e,t,n){return new wc(e,t,n)}class $c{constructor(t,n,o){this.fn=t,this.setter=n,this._value=void 0,this.dep=new vr(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Rn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=o}notify(){if(this.flags|=16,!(this.flags&8)&&ye!==this)return Bs(this,!0),!0}get value(){const t=this.dep.track();return Ws(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Oc(e,t,n=!1){let o,s;return oe(e)?o=e:(o=e.get,s=e.set),new $c(o,s,n)}const So={},Io=new WeakMap;let an;function Nc(e,t=!1,n=an){if(n){let o=Io.get(n);o||Io.set(n,o=[]),o.push(e)}}function Cc(e,t,n=_e){const{immediate:o,deep:s,once:r,scheduler:i,augmentJob:a,call:l}=n,c=b=>s?b:Je(b)||s===!1||s===0?St(b,1):St(b);let u,f,h,m,w=!1,k=!1;if(Ne(e)?(f=()=>e.value,w=Je(e)):Tt(e)?(f=()=>c(e),w=!0):ee(e)?(k=!0,w=e.some(b=>Tt(b)||Je(b)),f=()=>e.map(b=>{if(Ne(b))return b.value;if(Tt(b))return c(b);if(oe(b))return l?l(b,2):b()})):oe(e)?t?f=l?()=>l(e,2):e:f=()=>{if(h){mt();try{h()}finally{_t()}}const b=an;an=u;try{return l?l(e,3,[m]):e(m)}finally{an=b}}:f=ht,t&&s){const b=f,v=s===!0?1/0:s;f=()=>St(b(),v)}const A=Fs(),O=()=>{u.stop(),A&&A.active&&ur(A.effects,u)};if(r&&t){const b=t;t=(...v)=>{const E=b(...v);return O(),E}}let C=k?new Array(e.length).fill(So):So;const _=b=>{if(!(!(u.flags&1)||!u.dirty&&!b))if(t){const v=u.run();if(b||s||w||(k?v.some((E,L)=>gt(E,C[L])):gt(v,C))){h&&h();const E=an;an=u;try{const L=[v,C===So?void 0:k&&C[0]===So?[]:C,m];C=v,l?l(t,3,L):t(...L)}finally{an=E}}}else u.run()};return a&&a(_),u=new Ms(f),u.scheduler=i?()=>i(_,!1):_,m=b=>Nc(b,!1,u),h=u.onStop=()=>{const b=Io.get(u);if(b){if(l)l(b,4);else for(const v of b)v();Io.delete(u)}},t?o?_(!0):C=u.run():i?i(_.bind(null,!0),!0):u.run(),O.pause=u.pause.bind(u),O.resume=u.resume.bind(u),O.stop=O,O}function St(e,t=1/0,n){if(t<=0||!ge(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,Ne(e))St(e.value,t,n);else if(ee(e))for(let o=0;o{St(o,t,n)});else if(_o(e)){for(const o in e)St(e[o],t,n);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&St(e[o],t,n)}return e}/** +**/let Se;class Is{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,n;if(this.scopes){const o=this.scopes.slice();for(t=0,n=o.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 n,o;for(n=0,o=this.effects.length;n0)return;if(Dn){let t=Dn;for(Dn=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Bn;){let t=Bn;for(Bn=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(o){e||(e=o)}t=n}}if(e)throw e}function Ds(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Rs(e){let t,n=e.depsTail,o=n;for(;o;){const s=o.prevDep;o.version===-1?(o===n&&(n=s),yr(o),Ql(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=s}e.deps=t,e.depsTail=n}function br(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Ws(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Ws(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Rn)||(e.globalVersion=Rn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!br(e))))return;e.flags|=2;const t=e.dep,n=ye,o=st;ye=e,st=!0;try{Ds(e);const s=e.fn(e._value);(t.version===0||gt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{ye=n,st=o,Rs(e),e.flags&=-3}}function yr(e,t=!1){const{dep:n,prevSub:o,nextSub:s}=e;if(o&&(o.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=o,e.nextSub=void 0),n.subs===e&&(n.subs=o,!o&&n.computed)){n.computed.flags&=-5;for(let r=n.computed.deps;r;r=r.nextDep)yr(r,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Ql(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let st=!0;const Us=[];function mt(){Us.push(st),st=!1}function _t(){const e=Us.pop();st=e===void 0?!0:e}function js(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ye;ye=void 0;try{t()}finally{ye=n}}}let Rn=0;class ec{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class vr{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(!ye||!st||ye===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ye)n=this.activeLink=new ec(ye,this),ye.deps?(n.prevDep=ye.depsTail,ye.depsTail.nextDep=n,ye.depsTail=n):ye.deps=ye.depsTail=n,Gs(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const o=n.nextDep;o.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=o),n.prevDep=ye.depsTail,n.nextDep=void 0,ye.depsTail.nextDep=n,ye.depsTail=n,ye.deps===n&&(ye.deps=o)}return n}trigger(t){this.version++,Rn++,this.notify(t)}notify(t){mr();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{_r()}}}function Gs(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let o=t.deps;o;o=o.nextDep)Gs(o)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const $o=new WeakMap,sn=Symbol(""),wr=Symbol(""),Wn=Symbol("");function je(e,t,n){if(st&&ye){let o=$o.get(e);o||$o.set(e,o=new Map);let s=o.get(n);s||(o.set(n,s=new vr),s.map=o,s.key=n),s.track()}}function At(e,t,n,o,s,r){const a=$o.get(e);if(!a){Rn++;return}const i=l=>{l&&l.trigger()};if(mr(),t==="clear")a.forEach(i);else{const l=ee(e),c=l&&bo(n);if(l&&n==="length"){const u=Number(o);a.forEach((f,h)=>{(h==="length"||h===Wn||!Xe(h)&&h>=u)&&i(f)})}else switch((n!==void 0||a.has(void 0))&&i(a.get(n)),c&&i(a.get(Wn)),t){case"add":l?c&&i(a.get("length")):(i(a.get(sn)),Gt(e)&&i(a.get(wr)));break;case"delete":l||(i(a.get(sn)),Gt(e)&&i(a.get(wr)));break;case"set":Gt(e)&&i(a.get(sn));break}}_r()}function tc(e,t){const n=$o.get(e);return n&&n.get(t)}function yn(e){const t=pe(e);return t===e?t:(je(t,"iterate",Wn),Je(e)?t:t.map(at))}function Oo(e){return je(e=pe(e),"iterate",Wn),e}function bt(e,t){return Lt(e)?wn(Tt(e)?at(t):t):at(t)}const nc={__proto__:null,[Symbol.iterator](){return kr(this,Symbol.iterator,e=>bt(this,e))},concat(...e){return yn(this).concat(...e.map(t=>ee(t)?yn(t):t))},entries(){return kr(this,"entries",e=>(e[1]=bt(this,e[1]),e))},every(e,t){return Et(this,"every",e,t,void 0,arguments)},filter(e,t){return Et(this,"filter",e,t,n=>n.map(o=>bt(this,o)),arguments)},find(e,t){return Et(this,"find",e,t,n=>bt(this,n),arguments)},findIndex(e,t){return Et(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Et(this,"findLast",e,t,n=>bt(this,n),arguments)},findLastIndex(e,t){return Et(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Et(this,"forEach",e,t,void 0,arguments)},includes(...e){return $r(this,"includes",e)},indexOf(...e){return $r(this,"indexOf",e)},join(e){return yn(this).join(e)},lastIndexOf(...e){return $r(this,"lastIndexOf",e)},map(e,t){return Et(this,"map",e,t,void 0,arguments)},pop(){return Un(this,"pop")},push(...e){return Un(this,"push",e)},reduce(e,...t){return Ys(this,"reduce",e,t)},reduceRight(e,...t){return Ys(this,"reduceRight",e,t)},shift(){return Un(this,"shift")},some(e,t){return Et(this,"some",e,t,void 0,arguments)},splice(...e){return Un(this,"splice",e)},toReversed(){return yn(this).toReversed()},toSorted(e){return yn(this).toSorted(e)},toSpliced(...e){return yn(this).toSpliced(...e)},unshift(...e){return Un(this,"unshift",e)},values(){return kr(this,"values",e=>bt(this,e))}};function kr(e,t,n){const o=Oo(e),s=o[t]();return o!==e&&!Je(e)&&(s._next=s.next,s.next=()=>{const r=s._next();return r.done||(r.value=n(r.value)),r}),s}const oc=Array.prototype;function Et(e,t,n,o,s,r){const a=Oo(e),i=a!==e&&!Je(e),l=a[t];if(l!==oc[t]){const f=l.apply(e,r);return i?at(f):f}let c=n;a!==e&&(i?c=function(f,h){return n.call(this,bt(e,f),h,e)}:n.length>2&&(c=function(f,h){return n.call(this,f,h,e)}));const u=l.call(a,c,o);return i&&s?s(u):u}function Ys(e,t,n,o){const s=Oo(e),r=s!==e&&!Je(e);let a=n,i=!1;s!==e&&(r?(i=o.length===0,a=function(c,u,f){return i&&(i=!1,c=bt(e,c)),n.call(this,c,bt(e,u),f,e)}):n.length>3&&(a=function(c,u,f){return n.call(this,c,u,f,e)}));const l=s[t](a,...o);return i?bt(e,l):l}function $r(e,t,n){const o=pe(e);je(o,"iterate",Wn);const s=o[t](...n);return(s===-1||s===!1)&&Lo(n[0])?(n[0]=pe(n[0]),o[t](...n)):s}function Un(e,t,n=[]){mt(),mr();const o=pe(e)[t].apply(e,n);return _r(),_t(),o}const rc=cr("__proto__,__v_isRef,__isVue"),Vs=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Xe));function sc(e){Xe(e)||(e=String(e));const t=pe(this);return je(t,"has",e),t.hasOwnProperty(e)}class Hs{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,o){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,r=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return r;if(n==="__v_raw")return o===(s?r?Zs:Js:r?Xs:Ks).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(o)?t:void 0;const a=ee(t);if(!s){let l;if(a&&(l=nc[n]))return l;if(n==="hasOwnProperty")return sc}const i=Reflect.get(t,n,Ne(t)?t:o);if((Xe(n)?Vs.has(n):rc(n))||(s||je(t,"get",n),r))return i;if(Ne(i)){const l=a&&bo(n)?i:i.value;return s&&ge(l)?Nr(l):l}return ge(i)?s?Nr(i):Eo(i):i}}class qs extends Hs{constructor(t=!1){super(!1,t)}set(t,n,o,s){let r=t[n];const a=ee(t)&&bo(n);if(!this._isShallow){const c=Lt(r);if(!Je(o)&&!Lt(o)&&(r=pe(r),o=pe(o)),!a&&Ne(r)&&!Ne(o))return c||(r.value=o),!0}const i=a?Number(n)e,No=e=>Reflect.getPrototypeOf(e);function uc(e,t,n){return function(...o){const s=this.__v_raw,r=pe(s),a=Gt(r),i=e==="entries"||e===Symbol.iterator&&a,l=e==="keys"&&a,c=s[e](...o),u=n?Or:t?wn:at;return!t&&je(r,"iterate",l?wr:sn),Ce(Object.create(c),{next(){const{value:f,done:h}=c.next();return h?{value:f,done:h}:{value:i?[u(f[0]),u(f[1])]:u(f),done:h}}})}}function Co(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function pc(e,t){const n={get(s){const r=this.__v_raw,a=pe(r),i=pe(s);e||(gt(s,i)&&je(a,"get",s),je(a,"get",i));const{has:l}=No(a),c=t?Or:e?wn:at;if(l.call(a,s))return c(r.get(s));if(l.call(a,i))return c(r.get(i));r!==a&&r.get(s)},get size(){const s=this.__v_raw;return!e&&je(pe(s),"iterate",sn),s.size},has(s){const r=this.__v_raw,a=pe(r),i=pe(s);return e||(gt(s,i)&&je(a,"has",s),je(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=pe(i),c=t?Or:e?wn:at;return!e&&je(l,"iterate",sn),i.forEach((u,f)=>s.call(r,c(u),c(f),a))}};return Ce(n,e?{add:Co("add"),set:Co("set"),delete:Co("delete"),clear:Co("clear")}:{add(s){const r=pe(this),a=No(r),i=pe(s),l=!t&&!Je(s)&&!Lt(s)?i:s;return a.has.call(r,l)||gt(s,l)&&a.has.call(r,s)||gt(i,l)&&a.has.call(r,i)||(r.add(l),At(r,"add",l,l)),this},set(s,r){!t&&!Je(r)&&!Lt(r)&&(r=pe(r));const a=pe(this),{has:i,get:l}=No(a);let c=i.call(a,s);c||(s=pe(s),c=i.call(a,s));const u=l.call(a,s);return a.set(s,r),c?gt(r,u)&&At(a,"set",s,r):At(a,"add",s,r),this},delete(s){const r=pe(this),{has:a,get:i}=No(r);let l=a.call(r,s);l||(s=pe(s),l=a.call(r,s)),i&&i.call(r,s);const c=r.delete(s);return l&&At(r,"delete",s,void 0),c},clear(){const s=pe(this),r=s.size!==0,a=s.clear();return r&&At(s,"clear",void 0,void 0),a}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=uc(s,e,t)}),n}function Ao(e,t){const n=pc(e,t);return(o,s,r)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?o:Reflect.get(he(n,s)&&s in o?n:o,s,r)}const dc={get:Ao(!1,!1)},fc={get:Ao(!1,!0)},hc={get:Ao(!0,!1)},gc={get:Ao(!0,!0)},Ks=new WeakMap,Xs=new WeakMap,Js=new WeakMap,Zs=new WeakMap;function mc(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Eo(e){return Lt(e)?e:To(e,!1,ac,dc,Ks)}function _c(e){return To(e,!1,lc,fc,Xs)}function Nr(e){return To(e,!0,ic,hc,Js)}function A_(e){return To(e,!0,cc,gc,Zs)}function To(e,t,n,o,s){if(!ge(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=mc(jl(e));if(a===0)return e;const i=new Proxy(e,a===2?o:n);return s.set(e,i),i}function Tt(e){return Lt(e)?Tt(e.__v_raw):!!(e&&e.__v_isReactive)}function Lt(e){return!!(e&&e.__v_isReadonly)}function Je(e){return!!(e&&e.__v_isShallow)}function Lo(e){return e?!!e.__v_raw:!1}function pe(e){const t=e&&e.__v_raw;return t?pe(t):e}function vn(e){return!he(e,"__v_skip")&&Object.isExtensible(e)&&Cs(e,"__v_skip",!0),e}const at=e=>ge(e)?Eo(e):e,wn=e=>ge(e)?Nr(e):e;function Ne(e){return e?e.__v_isRef===!0:!1}function re(e){return Qs(e,!1)}function jn(e){return Qs(e,!0)}function Qs(e,t){return Ne(e)?e:new bc(e,t)}class bc{constructor(t,n){this.dep=new vr,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:pe(t),this._value=n?t:at(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,o=this.__v_isShallow||Je(t)||Lt(t);t=o?t:pe(t),gt(t,n)&&(this._rawValue=t,this._value=o?t:at(t),this.dep.trigger())}}function ze(e){return Ne(e)?e.value:e}const yc={get:(e,t,n)=>t==="__v_raw"?e:ze(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const s=e[t];return Ne(s)&&!Ne(n)?(s.value=n,!0):Reflect.set(e,t,n,o)}};function ea(e){return Tt(e)?e:new Proxy(e,yc)}function vc(e){const t=ee(e)?new Array(e.length):{};for(const n in e)t[n]=kc(e,n);return t}class wc{constructor(t,n,o){this._object=t,this._defaultValue=o,this.__v_isRef=!0,this._value=void 0,this._key=Xe(n)?n:String(n),this._raw=pe(t);let s=!0,r=t;if(!ee(t)||Xe(this._key)||!bo(this._key))do s=!Lo(r)||Je(r);while(s&&(r=r.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=ze(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&Ne(this._raw[this._key])){const n=this._object[this._key];if(Ne(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return tc(this._raw,this._key)}}function kc(e,t,n){return new wc(e,t,n)}class $c{constructor(t,n,o){this.fn=t,this.setter=n,this._value=void 0,this.dep=new vr(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Rn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=o}notify(){if(this.flags|=16,!(this.flags&8)&&ye!==this)return Bs(this,!0),!0}get value(){const t=this.dep.track();return Ws(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Oc(e,t,n=!1){let o,s;return oe(e)?o=e:(o=e.get,s=e.set),new $c(o,s,n)}const So={},xo=new WeakMap;let an;function Nc(e,t=!1,n=an){if(n){let o=xo.get(n);o||xo.set(n,o=[]),o.push(e)}}function Cc(e,t,n=_e){const{immediate:o,deep:s,once:r,scheduler:a,augmentJob:i,call:l}=n,c=b=>s?b:Je(b)||s===!1||s===0?St(b,1):St(b);let u,f,h,m,w=!1,k=!1;if(Ne(e)?(f=()=>e.value,w=Je(e)):Tt(e)?(f=()=>c(e),w=!0):ee(e)?(k=!0,w=e.some(b=>Tt(b)||Je(b)),f=()=>e.map(b=>{if(Ne(b))return b.value;if(Tt(b))return c(b);if(oe(b))return l?l(b,2):b()})):oe(e)?t?f=l?()=>l(e,2):e:f=()=>{if(h){mt();try{h()}finally{_t()}}const b=an;an=u;try{return l?l(e,3,[m]):e(m)}finally{an=b}}:f=ht,t&&s){const b=f,v=s===!0?1/0:s;f=()=>St(b(),v)}const A=Fs(),O=()=>{u.stop(),A&&A.active&&ur(A.effects,u)};if(r&&t){const b=t;t=(...v)=>{const E=b(...v);return O(),E}}let C=k?new Array(e.length).fill(So):So;const _=b=>{if(!(!(u.flags&1)||!u.dirty&&!b))if(t){const v=u.run();if(b||s||w||(k?v.some((E,L)=>gt(E,C[L])):gt(v,C))){h&&h();const E=an;an=u;try{const L=[v,C===So?void 0:k&&C[0]===So?[]:C,m];C=v,l?l(t,3,L):t(...L)}finally{an=E}}}else u.run()};return i&&i(_),u=new Ms(f),u.scheduler=a?()=>a(_,!1):_,m=b=>Nc(b,!1,u),h=u.onStop=()=>{const b=xo.get(u);if(b){if(l)l(b,4);else for(const v of b)v();xo.delete(u)}},t?o?_(!0):C=u.run():a?a(_.bind(null,!0),!0):u.run(),O.pause=u.pause.bind(u),O.resume=u.resume.bind(u),O.stop=O,O}function St(e,t=1/0,n){if(t<=0||!ge(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,Ne(e))St(e.value,t,n);else if(ee(e))for(let o=0;o{St(o,t,n)});else if(_o(e)){for(const o in e)St(e[o],t,n);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&St(e[o],t,n)}return e}/** * @vue/runtime-core v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/const Gn=[];let Cr=!1;function E_(e,...t){if(Cr)return;Cr=!0,mt();const n=Gn.length?Gn[Gn.length-1].component:null,o=n&&n.appContext.config.warnHandler,s=Ac();if(o)kn(o,n,11,[e+t.map(r=>{var i,a;return(a=(i=r.toString)==null?void 0:i.call(r))!=null?a:JSON.stringify(r)}).join(""),n&&n.proxy,s.map(({vnode:r})=>`at <${Qi(n,r.type)}>`).join(` +**/const Gn=[];let Cr=!1;function E_(e,...t){if(Cr)return;Cr=!0,mt();const n=Gn.length?Gn[Gn.length-1].component:null,o=n&&n.appContext.config.warnHandler,s=Ac();if(o)kn(o,n,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(""),n&&n.proxy,s.map(({vnode:r})=>`at <${Qa(n,r.type)}>`).join(` `),s]);else{const r=[`[Vue warn]: ${e}`,...t];s.length&&r.push(` `,...Ec(s)),console.warn(...r)}_t(),Cr=!1}function Ac(){let e=Gn[Gn.length-1];if(!e)return[];const t=[];for(;e;){const n=t[0];n&&n.vnode===e?n.recurseCount++:t.push({vnode:e,recurseCount:0});const o=e.component&&e.component.parent;e=o&&o.vnode}return t}function Ec(e){const t=[];return e.forEach((n,o)=>{t.push(...o===0?[]:[` -`],...Tc(n))}),t}function Tc({vnode:e,recurseCount:t}){const n=t>0?`... (${t} recursive calls)`:"",o=e.component?e.component.parent==null:!1,s=` at <${Qi(e.component,e.type,o)}`,r=">"+n;return e.props?[s,...Lc(e.props),r]:[s+r]}function Lc(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach(o=>{t.push(...ti(o,e[o]))}),n.length>3&&t.push(" ..."),t}function ti(e,t,n){return be(t)?(t=JSON.stringify(t),n?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?n?t:[`${e}=${t}`]:Ne(t)?(t=ti(e,pe(t.value),!0),n?t:[`${e}=Ref<`,t,">"]):oe(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=pe(t),n?t:[`${e}=`,t])}function kn(e,t,n,o){try{return o?e(...o):e()}catch(s){Yn(s,t,n)}}function at(e,t,n,o){if(oe(e)){const s=kn(e,t,n,o);return s&&Os(s)&&s.catch(r=>{Yn(r,t,n)}),s}if(ee(e)){const s=[];for(let r=0;r>>1,s=Ge[o],r=Hn(s);r=Hn(n)?Ge.push(e):Ge.splice(Ic(t),0,e),e.flags|=1,oi()}}function oi(){xo||(xo=ni.then(ii))}function xc(e){if(!ee(e))Yt&&e.id===-1?Yt.splice(On+1,0,e):e.flags&1||($n.push(e),e.flags|=1);else for(let t=0;tHn(n)-Hn(o));if($n.length=0,Yt){for(let n=0;ne.id==null?e.flags&2?-1:1/0:e.id;function ii(e){try{for(yt=0;yt{o._d&&Yo(-1);const r=Fo(t),i=xt.length;let a;try{a=e(...s)}finally{for(let l=xt.length;l>i;l--)Vr();Fo(r),o._d&&Yo(1)}return a};return o._n=!0,o._c=!0,o._d=!0,o}function Fc(e,t){if(Be===null)return e;const n=zo(Be),o=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&oe(t)?t.call(o&&o.proxy):t}}function Mc(){return!!(Mt()||pn)}const Pc=Symbol.for("v-scx"),Bc=()=>De(Pc);function Dc(e,t){return Er(e,null,t)}function lt(e,t,n){return Er(e,t,n)}function Er(e,t,n=_e){const{immediate:o,deep:s,flush:r,once:i}=n,a=Ce({},n),l=t&&o||!t&&r!=="post";let c;if(An){if(r==="sync"){const m=Bc();c=m.__watcherHandles||(m.__watcherHandles=[])}else if(!l){const m=()=>{};return m.stop=ht,m.resume=ht,m.pause=ht,m}}const u=Re;a.call=(m,w,k)=>at(m,u,w,k);let f=!1;r==="post"?a.scheduler=m=>{Ve(m,u&&u.suspense)}:r!=="sync"&&(f=!0,a.scheduler=(m,w)=>{w?m():Ar(m)}),a.augmentJob=m=>{t&&(m.flags|=4),f&&(m.flags|=2,u&&(m.id=u.uid,m.i=u))};const h=Cc(e,t,a);return An&&(c?c.push(h):l&&h()),h}function Rc(e,t,n){const o=this.proxy,s=be(e)?e.includes(".")?li(o,e):()=>o[e]:e.bind(o,o);let r;oe(t)?r=t:(r=t.handler,n=t);const i=oo(this),a=Er(s,r.bind(o),n);return i(),a}function li(e,t){const n=t.split(".");return()=>{let o=e;for(let s=0;se.__isTeleport,cn=e=>e&&(e.disabled||e.disabled===""),Wc=e=>e&&(e.defer||e.defer===""),ui=e=>typeof SVGElement<"u"&&e instanceof SVGElement,pi=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Tr=(e,t)=>{const n=e&&e.to;return be(n)?t?t(n):null:n},Uc={name:"Teleport",__isTeleport:!0,process(e,t,n,o,s,r,i,a,l,c){const{mc:u,pc:f,pbc:h,o:{insert:m,querySelector:w,createText:k,createComment:A,parentNode:O}}=c,C=cn(t.props);let{dynamicChildren:_}=t;const b=(L,I,N)=>{L.shapeFlag&16&&u(L.children,I,N,s,r,i,a,l)},v=(L=t)=>{const I=cn(L.props),N=L.target=Tr(L.props,w),R=Lr(N,L,k,m);N&&(i!=="svg"&&ui(N)?i="svg":i!=="mathml"&&pi(N)&&(i="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(N),I||(b(L,N,R),qn(L,!1)))},E=L=>{const I=()=>{if(Ht.get(L)===I){if(Ht.delete(L),cn(L.props)){const N=O(L.el)||n;b(L,N,L.anchor),qn(L,!0)}v(L)}};Ht.set(L,I),Ve(I,r)};if(e==null){const L=t.el=k(""),I=t.anchor=k("");if(m(L,n,o),m(I,n,o),Wc(t.props)||r&&r.pendingBranch){E(t);return}C&&(b(t,n,I),qn(t,!0)),v()}else{t.el=e.el;const L=t.anchor=e.anchor,I=Ht.get(e);if(I){I.flags|=8,Ht.delete(e),E(t);return}t.targetStart=e.targetStart;const N=t.target=e.target,R=t.targetAnchor=e.targetAnchor,j=cn(e.props),K=j?n:N,ne=j?L:R;if(i==="svg"||ui(N)?i="svg":(i==="mathml"||pi(N))&&(i="mathml"),_?(h(e.dynamicChildren,_,K,s,r,i,a),Gr(e,t,!0)):l||f(e,t,K,ne,s,r,i,a,!1),C)j?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Po(t,n,L,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const ue=Tr(t.props,w);ue&&(t.target=ue,Po(t,ue,null,c,0))}else j&&Po(t,N,R,c,1);qn(t,C)}},remove(e,t,n,{um:o,o:{remove:s}},r){const{shapeFlag:i,children:a,anchor:l,targetStart:c,targetAnchor:u,target:f,props:h}=e,m=cn(h),w=r||!m,k=Ht.get(e);if(k&&(k.flags|=8,Ht.delete(e)),f&&(s(c),s(u)),r&&s(l),!k&&(m||f)&&i&16)for(let A=0;A1){for(const n of e)if(n.type!==vt){t=n;break}}return t}function di(e){if(!Ro(e))return Mo(e.type)&&e.children?Yc(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&oe(n.default))return n.default()}}function Ir(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const n=e.component.subTree;Ir(Mo(n.type)&&di(n)||n,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function zn(e,t){return oe(e)?Ce({name:e.name},t,{setup:e}):e}function xr(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function fi(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}const Bo=new WeakMap;function Kn(e,t,n,o,s=!1){if(ee(e)){e.forEach((k,A)=>Kn(k,t&&(ee(t)?t[A]:t),n,o,s));return}if(Nn(o)&&!s){o.shapeFlag&512&&o.type.__asyncResolved&&o.component.subTree.component&&Kn(e,t,n,o.component.subTree);return}const r=o.shapeFlag&4?zo(o.component):o.el,i=s?null:r,{i:a,r:l}=e,c=t&&t.r,u=a.refs===_e?a.refs={}:a.refs,f=a.setupState,h=pe(f),m=f===_e?ks:k=>fi(u,k)?!1:he(h,k),w=(k,A)=>!(A&&fi(u,A));if(c!=null&&c!==l){if(hi(t),be(c))u[c]=null,m(c)&&(f[c]=null);else if(Ne(c)){const k=t;w(c,k.k)&&(c.value=null),k.k&&(u[k.k]=null)}}if(oe(l))kn(l,a,12,[i,u]);else{const k=be(l),A=Ne(l);if(k||A){const O=()=>{if(e.f){const C=k?m(l)?f[l]:u[l]:w()||!e.k?l.value:u[e.k];if(s)ee(C)&&ur(C,r);else if(ee(C))C.includes(r)||C.push(r);else if(k)u[l]=[r],m(l)&&(f[l]=u[l]);else{const _=[r];w(l,e.k)&&(l.value=_),e.k&&(u[e.k]=_)}}else k?(u[l]=i,m(l)&&(f[l]=i)):A&&(w(l,e.k)&&(l.value=i),e.k&&(u[e.k]=i))};if(i){const C=()=>{O(),Bo.delete(e)};C.id=-1,Bo.set(e,C),Ve(C,n)}else hi(e),O()}}}function hi(e){const t=Bo.get(e);t&&(t.flags|=8,Bo.delete(e))}const gi=e=>e.nodeType===8;wo().requestIdleCallback,wo().cancelIdleCallback;function Vc(e,t){if(gi(e)&&e.data==="["){let n=1,o=e.nextSibling;for(;o;){if(o.nodeType===1){if(t(o)===!1)break}else if(gi(o))if(o.data==="]"){if(--n===0)break}else o.data==="["&&n++;o=o.nextSibling}}else t(e)}const Nn=e=>!!e.type.__asyncLoader;function Hc(e){oe(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:o,delay:s=200,hydrate:r,timeout:i,suspensible:a=!0,onError:l}=e;let c=null,u,f=0;const h=()=>(f++,c=null,m()),m=()=>{let w;return c||(w=c=t().catch(k=>{if(k=k instanceof Error?k:new Error(String(k)),l)return new Promise((A,O)=>{l(k,()=>A(h()),()=>O(k),f+1)});throw k}).then(k=>w!==c&&c?c:(k&&(k.__esModule||k[Symbol.toStringTag]==="Module")&&(k=k.default),u=k,k)))};return zn({name:"AsyncComponentWrapper",__asyncLoader:m,__asyncHydrate(w,k,A){const O=w.isConnected;let C=!1;(k.bu||(k.bu=[])).push(()=>C=!0);const _=()=>{C||!w.parentNode||O&&!w.isConnected||A()},b=r?()=>{const v=r(_,E=>Vc(w,E));v&&(k.bum||(k.bum=[])).push(v)}:_;u?b():m().then(()=>!k.isUnmounted&&b())},get __asyncResolved(){return u},setup(){const w=Re;if(xr(w),u)return()=>Do(u,w);const k=v=>{c=null,Yn(v,w,13,!o)};if(a&&w.suspense||An)return m().then(v=>()=>Do(v,w)).catch(v=>(k(v),()=>o?ve(o,{error:v}):null));const A=re(!1),O=re(),C=re(!!s);let _,b;return Uo(()=>{_!=null&&clearTimeout(_),b!=null&&clearTimeout(b)}),s&&(b=setTimeout(()=>{w.isUnmounted||(C.value=!1)},s)),i!=null&&(_=setTimeout(()=>{if(!w.isUnmounted&&!A.value&&!O.value){const v=new Error(`Async component timed out after ${i}ms.`);k(v),O.value=v}},i)),m().then(()=>{w.isUnmounted||(A.value=!0,w.parent&&Ro(w.parent.vnode)&&w.parent.update())}).catch(v=>{if(w.isUnmounted){c=null;return}k(v),O.value=v}),()=>{if(A.value&&u)return Do(u,w);if(O.value&&o)return ve(o,{error:O.value});if(n&&!C.value)return Do(n,w)}}})}function Do(e,t){const{ref:n,props:o,children:s,ce:r}=t.vnode,i=ve(e,o,s);return i.ref=n,i.ce=r,delete t.vnode.ce,i}const Ro=e=>e.type.__isKeepAlive;function qc(e,t){mi(e,"a",t)}function zc(e,t){mi(e,"da",t)}function mi(e,t,n=Re){const o=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Wo(t,o,n),n){let s=n.parent;for(;s&&s.parent;)Ro(s.parent.vnode)&&Kc(o,t,n,s),s=s.parent}}function Kc(e,t,n,o){const s=Wo(t,e,o,!0);Uo(()=>{ur(o[t],s)},n)}function Wo(e,t,n=Re,o=!1){if(n){const s=n[e]||(n[e]=[]),r=t.__weh||(t.__weh=(...i)=>{mt();const a=oo(n),l=at(t,n,e,i);return a(),_t(),l});return o?s.unshift(r):s.push(r),r}}const It=e=>(t,n=Re)=>{(!An||e==="sp")&&Wo(e,(...o)=>t(...o),n)},_i=It("bm"),qt=It("m"),Xc=It("bu"),Jc=It("u"),un=It("bum"),Uo=It("um"),Zc=It("sp"),Qc=It("rtg"),eu=It("rtc");function tu(e,t=Re){Wo("ec",e,t)}const nu="components",bi=Symbol.for("v-ndc");function yi(e){return be(e)?ou(nu,e,!1)||e:e||bi}function ou(e,t,n=!0,o=!1){const s=Be||Re;if(s){const r=s.type;{const a=Zi(r,!1);if(a&&(a===t||a===Fe(t)||a===vo(Fe(t))))return r}const i=vi(s[e]||r[e],t)||vi(s.appContext[e],t);return!i&&o?r:i}}function vi(e,t){return e&&(e[t]||e[Fe(t)]||e[vo(Fe(t))])}function ct(e,t,n,o){let s;const r=n,i=ee(e);if(i||be(e)){const a=i&&Tt(e);let l=!1,c=!1;a&&(l=!Je(e),c=Lt(e),e=Oo(e)),s=new Array(e.length);for(let u=0,f=e.length;ut(a,l,void 0,r));else{const a=Object.keys(e);s=new Array(a.length);for(let l=0,c=a.length;l0;return H(),Qe(de,null,[ve("slot",c,o)],u?-2:64)}let i=e[t];i&&i._c&&(i._d=!1);const a=xt.length;H();let l;try{const c=i&&wi(i(n)),u=n.key||r||c&&c.key;l=Qe(de,{key:(u&&!Xe(u)?u:`_${t}`)+(!c&&o?"_fb":"")},c||(o?o():[]),c&&e._===1?64:-2)}catch(c){for(let u=xt.length;u>a;u--)Vr();throw c}finally{i&&i._c&&(i._d=!0)}return l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),l}function wi(e){return e.some(t=>eo(t)?!(t.type===vt||t.type===de&&!wi(t.children)):!0)?e:null}const Mr=e=>e?Ki(e)?zo(e):Mr(e.parent):null,Xn=Ce(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=>Mr(e.parent),$root:e=>Mr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ni(e),$forceUpdate:e=>e.f||(e.f=()=>{Ar(e.update)}),$nextTick:e=>e.n||(e.n=Vn.bind(e.proxy)),$watch:e=>Rc.bind(e)}),Pr=(e,t)=>e!==_e&&!e.__isScriptSetup&&he(e,t),ru={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:o,data:s,props:r,accessCache:i,type:a,appContext:l}=e;if(t[0]!=="$"){const h=i[t];if(h!==void 0)switch(h){case 1:return o[t];case 2:return s[t];case 4:return n[t];case 3:return r[t]}else{if(Pr(o,t))return i[t]=1,o[t];if(s!==_e&&he(s,t))return i[t]=2,s[t];if(he(r,t))return i[t]=3,r[t];if(n!==_e&&he(n,t))return i[t]=4,n[t];Br&&(i[t]=0)}}const c=Xn[t];let u,f;if(c)return t==="$attrs"&&je(e.attrs,"get",""),c(e);if((u=a.__cssModules)&&(u=u[t]))return u;if(n!==_e&&he(n,t))return i[t]=4,n[t];if(f=l.config.globalProperties,he(f,t))return f[t]},set({_:e},t,n){const{data:o,setupState:s,ctx:r}=e;return Pr(s,t)?(s[t]=n,!0):o!==_e&&he(o,t)?(o[t]=n,!0):he(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(r[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:o,appContext:s,props:r,type:i}},a){let l;return!!(n[a]||e!==_e&&a[0]!=="$"&&he(e,a)||Pr(t,a)||he(r,a)||he(o,a)||he(Xn,a)||he(s.config.globalProperties,a)||(l=i.__cssModules)&&l[a])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:he(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function ki(e){return ee(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Br=!0;function su(e){const t=Ni(e),n=e.proxy,o=e.ctx;Br=!1,t.beforeCreate&&$i(t.beforeCreate,e,"bc");const{data:s,computed:r,methods:i,watch:a,provide:l,inject:c,created:u,beforeMount:f,mounted:h,beforeUpdate:m,updated:w,activated:k,deactivated:A,beforeDestroy:O,beforeUnmount:C,destroyed:_,unmounted:b,render:v,renderTracked:E,renderTriggered:L,errorCaptured:I,serverPrefetch:N,expose:R,inheritAttrs:j,components:K,directives:ne,filters:ue}=t;if(c&&iu(c,o,null),i)for(const X in i){const le=i[X];oe(le)&&(o[X]=le.bind(n))}if(s){const X=s.call(n,n);ge(X)&&(e.data=Eo(X))}if(Br=!0,r)for(const X in r){const le=r[X],Ee=oe(le)?le.bind(n,n):oe(le.get)?le.get.bind(n,n):ht,Nt=!oe(le)&&oe(le.set)?le.set.bind(n):ht,xe=ie({get:Ee,set:Nt});Object.defineProperty(o,X,{enumerable:!0,configurable:!0,get:()=>xe.value,set:Pe=>xe.value=Pe})}if(a)for(const X in a)Oi(a[X],o,n,X);if(l){const X=oe(l)?l.call(n):l;Reflect.ownKeys(X).forEach(le=>{nt(le,X[le])})}u&&$i(u,e,"c");function W(X,le){ee(le)?le.forEach(Ee=>X(Ee.bind(n))):le&&X(le.bind(n))}if(W(_i,f),W(qt,h),W(Xc,m),W(Jc,w),W(qc,k),W(zc,A),W(tu,I),W(eu,E),W(Qc,L),W(un,C),W(Uo,b),W(Zc,N),ee(R))if(R.length){const X=e.exposed||(e.exposed={});R.forEach(le=>{Object.defineProperty(X,le,{get:()=>n[le],set:Ee=>n[le]=Ee,enumerable:!0})})}else e.exposed||(e.exposed={});v&&e.render===ht&&(e.render=v),j!=null&&(e.inheritAttrs=j),K&&(e.components=K),ne&&(e.directives=ne),N&&xr(e)}function iu(e,t,n=ht){ee(e)&&(e=Dr(e));for(const o in e){const s=e[o];let r;ge(s)?"default"in s?r=De(s.from||o,s.default,!0):r=De(s.from||o):r=De(s),Ne(r)?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>r.value,set:i=>r.value=i}):t[o]=r}}function $i(e,t,n){at(ee(e)?e.map(o=>o.bind(t.proxy)):e.bind(t.proxy),t,n)}function Oi(e,t,n,o){let s=o.includes(".")?li(n,o):()=>n[o];if(be(e)){const r=t[e];oe(r)&<(s,r)}else if(oe(e))lt(s,e.bind(n));else if(ge(e))if(ee(e))e.forEach(r=>Oi(r,t,n,o));else{const r=oe(e.handler)?e.handler.bind(n):t[e.handler];oe(r)&<(s,r,e)}}function Ni(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:s,optionsCache:r,config:{optionMergeStrategies:i}}=e.appContext,a=r.get(t);let l;return a?l=a:!s.length&&!n&&!o?l=t:(l={},s.length&&s.forEach(c=>jo(l,c,i,!0)),jo(l,t,i)),ge(t)&&r.set(t,l),l}function jo(e,t,n,o=!1){const{mixins:s,extends:r}=t;r&&jo(e,r,n,!0),s&&s.forEach(i=>jo(e,i,n,!0));for(const i in t)if(!(o&&i==="expose")){const a=au[i]||n&&n[i];e[i]=a?a(e[i],t[i]):t[i]}return e}const au={data:Ci,props:Ai,emits:Ai,methods:Jn,computed:Jn,beforeCreate:Ye,created:Ye,beforeMount:Ye,mounted:Ye,beforeUpdate:Ye,updated:Ye,beforeDestroy:Ye,beforeUnmount:Ye,destroyed:Ye,unmounted:Ye,activated:Ye,deactivated:Ye,errorCaptured:Ye,serverPrefetch:Ye,components:Jn,directives:Jn,watch:cu,provide:Ci,inject:lu};function Ci(e,t){return t?e?function(){return Ce(oe(e)?e.call(this,this):e,oe(t)?t.call(this,this):t)}:t:e}function lu(e,t){return Jn(Dr(e),Dr(t))}function Dr(e){if(ee(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Fe(t)}Modifiers`]||e[`${tt(t)}Modifiers`];function fu(e,t,...n){if(e.isUnmounted)return;const o=e.vnode.props||_e;let s=n;const r=t.startsWith("update:"),i=r&&du(o,t.slice(7));i&&(i.trim&&(s=n.map(u=>be(u)?u.trim():u)),i.number&&(s=s.map(Vl)));let a,l=o[a=pr(t)]||o[a=pr(Fe(t))];!l&&r&&(l=o[a=pr(tt(t))]),l&&at(l,e,6,s);const c=o[a+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,at(c,e,6,s)}}const hu=new WeakMap;function Ti(e,t,n=!1){const o=n?hu:t.emitsCache,s=o.get(e);if(s!==void 0)return s;const r=e.emits;let i={},a=!1;if(!oe(e)){const l=c=>{const u=Ti(c,t,!0);u&&(a=!0,Ce(i,u))};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!r&&!a?(ge(e)&&o.set(e,null),null):(ee(r)?r.forEach(l=>i[l]=null):Ce(i,r),ge(e)&&o.set(e,i),i)}function Go(e,t){return!e||!ho(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),he(e,t[0].toLowerCase()+t.slice(1))||he(e,tt(t))||he(e,t))}function T_(){}function Li(e){const{type:t,vnode:n,proxy:o,withProxy:s,propsOptions:[r],slots:i,attrs:a,emit:l,render:c,renderCache:u,props:f,data:h,setupState:m,ctx:w,inheritAttrs:k}=e,A=Fo(e);let O,C;try{if(n.shapeFlag&4){const b=s||o,v=b;O=wt(c.call(v,b,u,f,m,h,w)),C=a}else{const b=t;O=wt(b.length>1?b(f,{attrs:a,slots:i,emit:l}):b(f,null)),C=t.props?a:gu(a)}}catch(b){xt.length=0,Yn(b,e,1),O=ve(vt)}let _=O;if(C&&k!==!1){const b=Object.keys(C),{shapeFlag:v}=_;b.length&&v&7&&(r&&b.some(go)&&(C=mu(C,r)),_=Cn(_,C,!1,!0))}if(n.dirs&&(_=Cn(_,null,!1,!0),_.dirs=_.dirs?_.dirs.concat(n.dirs):n.dirs),n.transition){const b=Mo(_.type)&&di(_)||_;Ir(b,n.transition)}return O=_,Fo(A),O}const gu=e=>{let t;for(const n in e)(n==="class"||n==="style"||ho(n))&&((t||(t={}))[n]=e[n]);return t},mu=(e,t)=>{const n={};for(const o in e)(!go(o)||!(o.slice(9)in t))&&(n[o]=e[o]);return n};function _u(e,t,n){const{props:o,children:s,component:r}=e,{props:i,children:a,patchFlag:l}=t,c=r.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&l>=0){if(l&1024)return!0;if(l&16)return o?Si(o,i,c):!!i;if(l&8){const u=t.dynamicProps;for(let f=0;fObject.create(xi),Mi=e=>Object.getPrototypeOf(e)===xi;function yu(e,t,n,o=!1){const s={},r=Fi();e.propsDefaults=Object.create(null),Pi(e,t,s,r);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=o?s:_c(s):e.type.props?e.props=s:e.props=r,e.attrs=r}function vu(e,t,n,o){const{props:s,attrs:r,vnode:{patchFlag:i}}=e,a=pe(s),[l]=e.propsOptions;let c=!1;if((o||i>0)&&!(i&16)){if(i&8){const u=e.vnode.dynamicProps;for(let f=0;f{l=!0;const[h,m]=Bi(f,t,!0);Ce(i,h),m&&a.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!r&&!l)return ge(e)&&o.set(e,_n),_n;if(ee(r))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",Ur=e=>ee(e)?e.map(wt):[wt(e)],ku=(e,t,n)=>{if(t._n)return t;const o=Vt((...s)=>Ur(t(...s)),n);return o._c=!1,o},Ri=(e,t,n)=>{const o=e._ctx;for(const s in e){if(Wr(s))continue;const r=e[s];if(oe(r))t[s]=ku(s,r,o);else if(r!=null){const i=Ur(r);t[s]=()=>i}}},Wi=(e,t)=>{const n=Ur(t);e.slots.default=()=>n},Ui=(e,t,n)=>{for(const o in t)(n||!Wr(o))&&(e[o]=t[o])},$u=(e,t,n)=>{const o=e.slots=Fi();if(e.vnode.shapeFlag&32){const s=t._;s?(Ui(o,t,n),n&&Cs(o,"_",s,!0)):Ri(t,o)}else t&&Wi(e,t)},Ou=(e,t,n)=>{const{vnode:o,slots:s}=e;let r=!0,i=_e;if(o.shapeFlag&32){const a=t._;a?n&&a===1?r=!1:Ui(s,t,n):(r=!t.$stable,Ri(t,s)),i=t}else t&&(Wi(e,t),i={default:1});if(r)for(const a in s)!Wr(a)&&i[a]==null&&delete s[a]},Ve=Tu;function Nu(e){return Cu(e)}function Cu(e,t){const n=wo();n.__VUE__=!0;const{insert:o,remove:s,patchProp:r,createElement:i,createText:a,createComment:l,setText:c,setElementText:u,parentNode:f,nextSibling:h,setScopeId:m=ht,insertStaticContent:w}=e,k=(g,$,y,x=null,D=null,B=null,Y=void 0,G=null,p=!!$.dynamicChildren)=>{if(g===$)return;g&&!to(g,$)&&(x=Ut(g),Pe(g,D,B,!0),g=null),$.patchFlag===-2&&(p=!1,$.dynamicChildren=null);const{type:d,ref:S,shapeFlag:F}=$;switch(d){case Zn:A(g,$,y,x);break;case vt:O(g,$,y,x);break;case Yr:g==null&&C($,y,x,Y);break;case de:K(g,$,y,x,D,B,Y,G,p);break;default:F&1?v(g,$,y,x,D,B,Y,G,p):F&6?ne(g,$,y,x,D,B,Y,G,p):(F&64||F&128)&&d.process(g,$,y,x,D,B,Y,G,p,rt)}S!=null&&D?Kn(S,g&&g.ref,B,$||g,!$):S==null&&g&&g.ref!=null&&Kn(g.ref,null,B,g,!0)},A=(g,$,y,x)=>{if(g==null)o($.el=a($.children),y,x);else{const D=$.el=g.el;$.children!==g.children&&c(D,$.children)}},O=(g,$,y,x)=>{g==null?o($.el=l($.children||""),y,x):$.el=g.el},C=(g,$,y,x)=>{[g.el,g.anchor]=w(g.children,$,y,x,g.el,g.anchor)},_=({el:g,anchor:$},y,x)=>{let D;for(;g&&g!==$;)D=h(g),o(g,y,x),g=D;o($,y,x)},b=({el:g,anchor:$})=>{let y;for(;g&&g!==$;)y=h(g),s(g),g=y;s($)},v=(g,$,y,x,D,B,Y,G,p)=>{if($.type==="svg"?Y="svg":$.type==="math"&&(Y="mathml"),g==null)E($,y,x,D,B,Y,G,p);else{const d=g.el&&g.el._isVueCE?g.el:null;try{d&&d._beginPatch(),N(g,$,D,B,Y,G,p)}finally{d&&d._endPatch()}}},E=(g,$,y,x,D,B,Y,G)=>{let p,d;const{props:S,shapeFlag:F,transition:V,dirs:U}=g;if(p=g.el=i(g.type,B,S&&S.is,S),F&8?u(p,g.children):F&16&&I(g.children,p,null,x,D,jr(g,B),Y,G),U&&ln(g,null,x,"created"),L(p,g,g.scopeId,Y,x),S){for(const P in S)P!=="value"&&!Pn(P)&&r(p,P,null,S[P],B,x);"value"in S&&r(p,"value",null,S.value,B),(d=S.onVnodeBeforeMount)&&kt(d,x,g)}U&&ln(g,null,x,"beforeMount");const T=Au(D,V);T&&V.beforeEnter(p),o(p,$,y),((d=S&&S.onVnodeMounted)||T||U)&&Ve(()=>{try{d&&kt(d,x,g),T&&V.enter(p),U&&ln(g,null,x,"mounted")}finally{}},D)},L=(g,$,y,x,D)=>{if(y&&m(g,y),x)for(let B=0;B{for(let d=p;d{const G=$.el=g.el;let{patchFlag:p,dynamicChildren:d,dirs:S}=$;p|=g.patchFlag&16;const F=g.props||_e,V=$.props||_e;let U;if(y&&dn(y,!1),(U=V.onVnodeBeforeUpdate)&&kt(U,y,$,g),S&&ln($,g,y,"beforeUpdate"),y&&dn(y,!0),d&&(!g.dynamicChildren||g.dynamicChildren.length!==d.length)&&(p=0,Y=!1,d=null),(F.innerHTML&&V.innerHTML==null||F.textContent&&V.textContent==null)&&u(G,""),d?R(g.dynamicChildren,d,G,y,x,jr($,D),B):Y||le(g,$,G,null,y,x,jr($,D),B,!1),p>0){if(p&16)j(G,F,V,y,D);else if(p&2&&F.class!==V.class&&r(G,"class",null,V.class,D),p&4&&r(G,"style",F.style,V.style,D),p&8){const T=$.dynamicProps;for(let P=0;P{U&&kt(U,y,$,g),S&&ln($,g,y,"updated")},x)},R=(g,$,y,x,D,B,Y)=>{for(let G=0;G<$.length;G++){const p=g[G],d=$[G],S=p.el&&(p.type===de||!to(p,d)||p.shapeFlag&198)?f(p.el):y;k(p,d,S,null,x,D,B,Y,!0)}},j=(g,$,y,x,D)=>{if($!==y){if($!==_e)for(const B in $)!Pn(B)&&!(B in y)&&r(g,B,$[B],null,D,x);for(const B in y){if(Pn(B))continue;const Y=y[B],G=$[B];Y!==G&&B!=="value"&&r(g,B,G,Y,D,x)}"value"in y&&r(g,"value",$.value,y.value,D)}},K=(g,$,y,x,D,B,Y,G,p)=>{const d=$.el=g?g.el:a(""),S=$.anchor=g?g.anchor:a("");let{patchFlag:F,dynamicChildren:V,slotScopeIds:U}=$;U&&(G=G?G.concat(U):U),g==null?(o(d,y,x),o(S,y,x),I($.children||[],y,S,D,B,Y,G,p)):F>0&&F&64&&V&&g.dynamicChildren&&g.dynamicChildren.length===V.length?(R(g.dynamicChildren,V,y,D,B,Y,G),($.key!=null||D&&$===D.subTree)&&Gr(g,$,!0)):le(g,$,y,S,D,B,Y,G,p)},ne=(g,$,y,x,D,B,Y,G,p)=>{$.slotScopeIds=G,g==null?$.shapeFlag&512?D.ctx.activate($,y,x,Y,p):ue($,y,x,D,B,Y,p):z(g,$,p)},ue=(g,$,y,x,D,B,Y)=>{const G=g.component=Mu(g,x,D);if(Ro(g)&&(G.ctx.renderer=rt),Pu(G,!1,Y),G.asyncDep){if(D&&D.registerDep(G,W,Y),!g.el){const p=G.subTree=ve(vt);O(null,p,$,y),g.placeholder=p.el}}else W(G,g,$,y,D,B,Y)},z=(g,$,y)=>{const x=$.component=g.component;if(_u(g,$,y))if(x.asyncDep&&!x.asyncResolved){X(x,$,y);return}else x.next=$,x.update();else $.el=g.el,x.vnode=$},W=(g,$,y,x,D,B,Y)=>{const G=()=>{if(g.isMounted){let{next:F,bu:V,u:U,parent:T,vnode:P}=g;{const Ue=ji(g);if(Ue){F&&(F.el=P.el,X(g,F,Y)),Ue.asyncDep.then(()=>{Ve(()=>{g.isUnmounted||d()},D)});return}}let Z=F,ae;dn(g,!1),F?(F.el=P.el,X(g,F,Y)):F=P,V&&dr(V),(ae=F.props&&F.props.onVnodeBeforeUpdate)&&kt(ae,T,F,P),dn(g,!0);const ke=Li(g),qe=g.subTree;g.subTree=ke,k(qe,ke,f(qe.el),Ut(qe),g,D,B),F.el=ke.el,Z===null&&bu(g,ke.el),U&&Ve(U,D),(ae=F.props&&F.props.onVnodeUpdated)&&Ve(()=>kt(ae,T,F,P),D)}else{let F;const{el:V,props:U}=$,{bm:T,m:P,parent:Z,root:ae,type:ke}=g,qe=Nn($);dn(g,!1),T&&dr(T),!qe&&(F=U&&U.onVnodeBeforeMount)&&kt(F,Z,$),dn(g,!0);{ae.ce&&ae.ce._hasShadowRoot()&&ae.ce._injectChildStyle(ke,g.parent?g.parent.type:void 0);const Ue=g.subTree=Li(g);k(null,Ue,y,x,g,D,B),$.el=Ue.el}if(P&&Ve(P,D),!qe&&(F=U&&U.onVnodeMounted)){const Ue=$;Ve(()=>kt(F,Z,Ue),D)}($.shapeFlag&256||Z&&Nn(Z.vnode)&&Z.vnode.shapeFlag&256)&&g.a&&Ve(g.a,D),g.isMounted=!0,$=y=x=null}};g.scope.on();const p=g.effect=new Ms(G);g.scope.off();const d=g.update=p.run.bind(p),S=g.job=p.runIfDirty.bind(p);S.i=g,S.id=g.uid,p.scheduler=()=>Ar(S),dn(g,!0),d()},X=(g,$,y)=>{$.component=g;const x=g.vnode.props;g.vnode=$,g.next=null,vu(g,$.props,x,y),Ou(g,$.children,y),mt(),ri(g),_t()},le=(g,$,y,x,D,B,Y,G,p=!1)=>{const d=g&&g.children,S=g?g.shapeFlag:0,F=$.children,{patchFlag:V,shapeFlag:U}=$;if(V>0){if(V&128){Nt(d,F,y,x,D,B,Y,G,p);return}else if(V&256){Ee(d,F,y,x,D,B,Y,G,p);return}}U&8?(S&16&&ft(d,D,B),F!==d&&u(y,F)):S&16?U&16?Nt(d,F,y,x,D,B,Y,G,p):ft(d,D,B,!0):(S&8&&u(y,""),U&16&&I(F,y,x,D,B,Y,G,p))},Ee=(g,$,y,x,D,B,Y,G,p)=>{g=g||_n,$=$||_n;const d=g.length,S=$.length,F=Math.min(d,S);let V;for(V=0;VS?ft(g,D,B,!0,!1,F):I($,y,x,D,B,Y,G,p,F)},Nt=(g,$,y,x,D,B,Y,G,p)=>{let d=0;const S=$.length;let F=g.length-1,V=S-1;for(;d<=F&&d<=V;){const U=g[d],T=$[d]=p?Ft($[d]):wt($[d]);if(to(U,T))k(U,T,y,null,D,B,Y,G,p);else break;d++}for(;d<=F&&d<=V;){const U=g[F],T=$[V]=p?Ft($[V]):wt($[V]);if(to(U,T))k(U,T,y,null,D,B,Y,G,p);else break;F--,V--}if(d>F){if(d<=V){const U=V+1,T=UV)for(;d<=F;)Pe(g[d],D,B,!0),d++;else{const U=d,T=d,P=new Map;for(d=T;d<=V;d++){const et=$[d]=p?Ft($[d]):wt($[d]);et.key!=null&&P.set(et.key,d)}let Z,ae=0;const ke=V-T+1;let qe=!1,Ue=0;const mn=new Array(ke);for(d=0;d=ke){Pe(et,D,B,!0);continue}let Ct;if(et.key!=null)Ct=P.get(et.key);else for(Z=T;Z<=V;Z++)if(mn[Z-T]===0&&to(et,$[Z])){Ct=Z;break}Ct===void 0?Pe(et,D,B,!0):(mn[Ct-T]=d+1,Ct>=Ue?Ue=Ct:qe=!0,k(et,$[Ct],y,null,D,B,Y,G,p),ae++)}const ws=qe?Eu(mn):_n;for(Z=ws.length-1,d=ke-1;d>=0;d--){const et=T+d,Ct=$[et],Rl=$[et+1],Wl=et+1{const{el:B,type:Y,transition:G,children:p,shapeFlag:d}=g;if(d&6){xe(g.component.subTree,$,y,x);return}if(d&128){g.suspense.move($,y,x);return}if(d&64){Y.move(g,$,y,rt);return}if(Y===de){o(B,$,y);for(let F=0;FG.enter(B),D));else{const{leave:F,delayLeave:V,afterLeave:U}=G,T=()=>{g.ctx.isUnmounted?s(B):o(B,$,y)},P=()=>{const Z=B._isLeaving||!!B[Sr];B._isLeaving&&B[Sr](!0),G.persisted&&!Z?T():F(B,()=>{T(),U&&U()})};V?V(B,T,P):P()}else o(B,$,y)},Pe=(g,$,y,x=!1,D=!1)=>{const{type:B,props:Y,ref:G,children:p,dynamicChildren:d,shapeFlag:S,patchFlag:F,dirs:V,cacheIndex:U,memo:T}=g;if(F===-2&&(D=!1),G!=null&&(mt(),Kn(G,null,y,g,!0),_t()),U!=null&&($.renderCache[U]=void 0),S&256){$.ctx.deactivate(g);return}const P=S&1&&V,Z=!Nn(g);let ae;if(Z&&(ae=Y&&Y.onVnodeBeforeUnmount)&&kt(ae,$,g),S&6)gn(g.component,y,x);else{if(S&128){g.suspense.unmount(y,x);return}P&&ln(g,null,$,"beforeUnmount"),S&64?g.type.remove(g,$,y,rt,x):d&&!d.hasOnce&&(B!==de||F>0&&F&64)?ft(d,$,y,!1,!0):(B===de&&F&384||!D&&S&16)&&ft(p,$,y),x&&nn(g)}const ke=T!=null&&U==null;(Z&&(ae=Y&&Y.onVnodeUnmounted)||P||ke)&&Ve(()=>{ae&&kt(ae,$,g),P&&ln(g,null,$,"unmounted"),ke&&(g.el=null)},y)},nn=g=>{const{type:$,el:y,anchor:x,transition:D}=g;if($===de){on(y,x);return}if($===Yr){b(g);return}const B=()=>{s(y),D&&!D.persisted&&D.afterLeave&&D.afterLeave()};if(g.shapeFlag&1&&D&&!D.persisted){const{leave:Y,delayLeave:G}=D,p=()=>Y(y,B);G?G(g.el,B,p):p()}else B()},on=(g,$)=>{let y;for(;g!==$;)y=h(g),s(g),g=y;s($)},gn=(g,$,y)=>{const{bum:x,scope:D,job:B,subTree:Y,um:G,m:p,a:d}=g;Gi(p),Gi(d),x&&dr(x),D.stop(),B&&(B.flags|=8,Pe(Y,g,$,y)),G&&Ve(G,$),Ve(()=>{g.isUnmounted=!0},$)},ft=(g,$,y,x=!1,D=!1,B=0)=>{for(let Y=B;Y{if(g.shapeFlag&6)return Ut(g.component.subTree);if(g.shapeFlag&128)return g.suspense.next();const $=h(g.anchor||g.el),y=$&&$[ci];return y?h(y):$};let jt=!1;const rn=(g,$,y)=>{let x;g==null?$._vnode&&(Pe($._vnode,null,null,!0),x=$._vnode.component):k($._vnode||null,g,$,null,null,null,y),$._vnode=g,jt||(jt=!0,ri(x),si(),jt=!1)},rt={p:k,um:Pe,m:xe,r:nn,mt:ue,mc:I,pc:le,pbc:R,n:Ut,o:e};return{render:rn,hydrate:void 0,createApp:pu(rn)}}function jr({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function dn({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Au(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Gr(e,t,n=!1){const o=e.children,s=t.children;if(ee(o)&&ee(s))for(let r=0;r>1,e[n[a]]0&&(t[o]=n[r-1]),n[r]=o)}}for(r=n.length,i=n[r-1];r-- >0;)n[r]=i,i=t[i];return n}function ji(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:ji(t)}function Gi(e){if(e)for(let t=0;te.__isSuspense;function Tu(e,t){t&&t.pendingBranch?ee(e)?t.effects.push(...e):t.effects.push(e):xc(e)}const de=Symbol.for("v-fgt"),Zn=Symbol.for("v-txt"),vt=Symbol.for("v-cmt"),Yr=Symbol.for("v-stc"),xt=[];let Ze=null;function H(e=!1){xt.push(Ze=e?null:[])}function Vr(){xt.pop(),Ze=xt[xt.length-1]||null}let Qn=1;function Yo(e,t=!1){Qn+=e,e<0&&Ze&&t&&(Ze.hasOnce=!0)}function Hi(e){return e.dynamicChildren=Qn>0?Ze||_n:null,Vr(),Qn>0&&Ze&&Ze.push(e),e}function J(e,t,n,o,s,r){return Hi(M(e,t,n,o,s,r,!0))}function Qe(e,t,n,o,s){return Hi(ve(e,t,n,o,s,!0))}function eo(e){return e?e.__v_isVNode===!0:!1}function to(e,t){return e.type===t.type&&e.key===t.key}const qi=({key:e})=>e??null,Vo=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?be(e)||Ne(e)||oe(e)?{i:Be,r:e,k:t,f:!!n}:e:null);function M(e,t=null,n=null,o=0,s=null,r=e===de?0:1,i=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&qi(t),ref:t&&Vo(t),scopeId:ai,slotScopeIds:null,children:n,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:o,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:Be};return a?(Ho(l,n),r&128&&e.normalize(l)):n&&(l.shapeFlag|=be(n)?8:16),Qn>0&&!i&&Ze&&(l.patchFlag>0||r&6)&&l.patchFlag!==32&&Ze.push(l),l}const ve=Lu;function Lu(e,t=null,n=null,o=0,s=null,r=!1){if((!e||e===bi)&&(e=vt),eo(e)){const a=Cn(e,t,!0);return n&&Ho(a,n),Qn>0&&!r&&Ze&&(a.shapeFlag&6?Ze[Ze.indexOf(e)]=a:Ze.push(a)),a.patchFlag=-2,a}if(ju(e)&&(e=e.__vccOpts),t){t=Su(t);let{class:a,style:l}=t;a&&!be(a)&&(t.class=Te(a)),ge(l)&&(Lo(l)&&!ee(l)&&(l=Ce({},l)),t.style=bn(l))}const i=be(e)?1:Vi(e)?128:Mo(e)?64:ge(e)?4:oe(e)?2:0;return M(e,t,n,o,s,i,r,!0)}function Su(e){return e?Lo(e)||Mi(e)?Ce({},e):e:null}function Cn(e,t,n=!1,o=!1){const{props:s,ref:r,patchFlag:i,children:a,transition:l}=e,c=t?Iu(s||{},t):s,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&qi(c),ref:t&&t.ref?n&&r?ee(r)?r.concat(Vo(t)):[r,Vo(t)]:Vo(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:a,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==de?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&&Cn(e.ssContent),ssFallback:e.ssFallback&&Cn(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&o&&Ir(u,l.clone(u)),u}function $e(e=" ",t=0){return ve(Zn,null,e,t)}function Le(e="",t=!1){return t?(H(),Qe(vt,null,e)):ve(vt,null,e)}function wt(e){return e==null||typeof e=="boolean"?ve(vt):ee(e)?ve(de,null,e.slice()):eo(e)?Ft(e):ve(Zn,null,String(e))}function Ft(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Cn(e)}function Ho(e,t){let n=0;const{shapeFlag:o}=e;if(t==null)t=null;else if(ee(t))n=16;else if(typeof t=="object")if(o&65){const s=t.default;s&&(s._c&&(s._d=!1),Ho(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!Mi(t)?t._ctx=Be:s===3&&Be&&(Be.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(oe(t)){if(o&65){Ho(e,{default:t});return}t={default:t,_ctx:Be},n=32}else t=String(t),o&64?(n=16,t=[$e(t)]):n=8;e.children=t,e.shapeFlag|=n}function Iu(...e){const t={};for(let n=0;nRe||Be;let qo,no;{const e=wo(),t=(n,o)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(o),r=>{s.length>1?s.forEach(i=>i(r)):s[0](r)}};qo=t("__VUE_INSTANCE_SETTERS__",n=>Re=n),no=t("__VUE_SSR_SETTERS__",n=>An=n)}const oo=e=>{const t=Re;return qo(e),e.scope.on(),()=>{e.scope.off(),qo(t)}},zi=()=>{Re&&Re.scope.off(),qo(null)};function Ki(e){return e.vnode.shapeFlag&4}let An=!1;function Pu(e,t=!1,n=!1){t&&no(t);const{props:o,children:s}=e.vnode,r=Ki(e);yu(e,o,r,t),$u(e,s,n||t);const i=r?Bu(e,t):void 0;return t&&no(!1),i}function Bu(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,ru);const{setup:o}=n;if(o){mt();const s=e.setupContext=o.length>1?Ru(e):null,r=oo(e),i=kn(o,e,0,[e.props,s]),a=Os(i);if(_t(),r(),(a||e.sp)&&!Nn(e)&&xr(e),a){if(i.then(zi,zi),t)return i.then(l=>{no(!0);try{Xi(e,l,t)}finally{no(!1)}}).catch(l=>{Yn(l,e,0)});e.asyncDep=i}else Xi(e,i)}else Ji(e)}function Xi(e,t,n){oe(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ge(t)&&(e.setupState=ei(t)),Ji(e)}function Ji(e,t,n){const o=e.type;e.render||(e.render=o.render||ht);{const s=oo(e);mt();try{su(e)}finally{_t(),s()}}}const Du={get(e,t){return je(e,"get",""),e[t]}};function Ru(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Du),slots:e.slots,emit:e.emit,expose:t}}function zo(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(ei(vn(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Xn)return Xn[n](e)},has(t,n){return n in t||n in Xn}})):e.proxy}const Wu=/(?:^|[-_])\w/g,Uu=e=>e.replace(Wu,t=>t.toUpperCase()).replace(/[-_]/g,"");function Zi(e,t=!0){return oe(e)?e.displayName||e.name:e.name||t&&e.__name}function Qi(e,t,n=!1){let o=Zi(t);if(!o&&t.__file){const s=t.__file.match(/([^/\\]+)\.\w+$/);s&&(o=s[1])}if(!o&&e){const s=r=>{for(const i in r)if(r[i]===t)return i};o=s(e.components)||e.parent&&s(e.parent.type.components)||s(e.appContext.components)}return o?Uu(o):n?"App":"Anonymous"}function ju(e){return oe(e)&&"__vccOpts"in e}const ie=(e,t)=>Oc(e,t,An);function ea(e,t,n){try{Yo(-1);const o=arguments.length;return o===2?ge(t)&&!ee(t)?eo(t)?ve(e,null,[t]):ve(e,t):ve(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):o===3&&eo(n)&&(n=[n]),ve(e,t,n))}finally{Yo(1)}}const Gu="3.5.42";/** +`],...Tc(n))}),t}function Tc({vnode:e,recurseCount:t}){const n=t>0?`... (${t} recursive calls)`:"",o=e.component?e.component.parent==null:!1,s=` at <${Qa(e.component,e.type,o)}`,r=">"+n;return e.props?[s,...Lc(e.props),r]:[s+r]}function Lc(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach(o=>{t.push(...ta(o,e[o]))}),n.length>3&&t.push(" ..."),t}function ta(e,t,n){return be(t)?(t=JSON.stringify(t),n?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?n?t:[`${e}=${t}`]:Ne(t)?(t=ta(e,pe(t.value),!0),n?t:[`${e}=Ref<`,t,">"]):oe(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=pe(t),n?t:[`${e}=`,t])}function kn(e,t,n,o){try{return o?e(...o):e()}catch(s){Yn(s,t,n)}}function it(e,t,n,o){if(oe(e)){const s=kn(e,t,n,o);return s&&Os(s)&&s.catch(r=>{Yn(r,t,n)}),s}if(ee(e)){const s=[];for(let r=0;r>>1,s=Ge[o],r=Hn(s);r=Hn(n)?Ge.push(e):Ge.splice(xc(t),0,e),e.flags|=1,oa()}}function oa(){Io||(Io=na.then(aa))}function Ic(e){if(!ee(e))Yt&&e.id===-1?Yt.splice(On+1,0,e):e.flags&1||($n.push(e),e.flags|=1);else for(let t=0;tHn(n)-Hn(o));if($n.length=0,Yt){for(let n=0;ne.id==null?e.flags&2?-1:1/0:e.id;function aa(e){try{for(yt=0;yt{o._d&&Yo(-1);const r=Fo(t),a=It.length;let i;try{i=e(...s)}finally{for(let l=It.length;l>a;l--)Vr();Fo(r),o._d&&Yo(1)}return i};return o._n=!0,o._c=!0,o._d=!0,o}function Fc(e,t){if(Be===null)return e;const n=zo(Be),o=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&oe(t)?t.call(o&&o.proxy):t}}function Mc(){return!!(Mt()||pn)}const Pc=Symbol.for("v-scx"),Bc=()=>De(Pc);function Dc(e,t){return Er(e,null,t)}function lt(e,t,n){return Er(e,t,n)}function Er(e,t,n=_e){const{immediate:o,deep:s,flush:r,once:a}=n,i=Ce({},n),l=t&&o||!t&&r!=="post";let c;if(An){if(r==="sync"){const m=Bc();c=m.__watcherHandles||(m.__watcherHandles=[])}else if(!l){const m=()=>{};return m.stop=ht,m.resume=ht,m.pause=ht,m}}const u=Re;i.call=(m,w,k)=>it(m,u,w,k);let f=!1;r==="post"?i.scheduler=m=>{Ve(m,u&&u.suspense)}:r!=="sync"&&(f=!0,i.scheduler=(m,w)=>{w?m():Ar(m)}),i.augmentJob=m=>{t&&(m.flags|=4),f&&(m.flags|=2,u&&(m.id=u.uid,m.i=u))};const h=Cc(e,t,i);return An&&(c?c.push(h):l&&h()),h}function Rc(e,t,n){const o=this.proxy,s=be(e)?e.includes(".")?la(o,e):()=>o[e]:e.bind(o,o);let r;oe(t)?r=t:(r=t.handler,n=t);const a=oo(this),i=Er(s,r.bind(o),n);return a(),i}function la(e,t){const n=t.split(".");return()=>{let o=e;for(let s=0;se.__isTeleport,cn=e=>e&&(e.disabled||e.disabled===""),Wc=e=>e&&(e.defer||e.defer===""),ua=e=>typeof SVGElement<"u"&&e instanceof SVGElement,pa=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Tr=(e,t)=>{const n=e&&e.to;return be(n)?t?t(n):null:n},Uc={name:"Teleport",__isTeleport:!0,process(e,t,n,o,s,r,a,i,l,c){const{mc:u,pc:f,pbc:h,o:{insert:m,querySelector:w,createText:k,createComment:A,parentNode:O}}=c,C=cn(t.props);let{dynamicChildren:_}=t;const b=(L,x,N)=>{L.shapeFlag&16&&u(L.children,x,N,s,r,a,i,l)},v=(L=t)=>{const x=cn(L.props),N=L.target=Tr(L.props,w),R=Lr(N,L,k,m);N&&(a!=="svg"&&ua(N)?a="svg":a!=="mathml"&&pa(N)&&(a="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(N),x||(b(L,N,R),qn(L,!1)))},E=L=>{const x=()=>{if(Ht.get(L)===x){if(Ht.delete(L),cn(L.props)){const N=O(L.el)||n;b(L,N,L.anchor),qn(L,!0)}v(L)}};Ht.set(L,x),Ve(x,r)};if(e==null){const L=t.el=k(""),x=t.anchor=k("");if(m(L,n,o),m(x,n,o),Wc(t.props)||r&&r.pendingBranch){E(t);return}C&&(b(t,n,x),qn(t,!0)),v()}else{t.el=e.el;const L=t.anchor=e.anchor,x=Ht.get(e);if(x){x.flags|=8,Ht.delete(e),E(t);return}t.targetStart=e.targetStart;const N=t.target=e.target,R=t.targetAnchor=e.targetAnchor,j=cn(e.props),K=j?n:N,ne=j?L:R;if(a==="svg"||ua(N)?a="svg":(a==="mathml"||pa(N))&&(a="mathml"),_?(h(e.dynamicChildren,_,K,s,r,a,i),Gr(e,t,!0)):l||f(e,t,K,ne,s,r,a,i,!1),C)j?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Po(t,n,L,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const ue=Tr(t.props,w);ue&&(t.target=ue,Po(t,ue,null,c,0))}else j&&Po(t,N,R,c,1);qn(t,C)}},remove(e,t,n,{um:o,o:{remove:s}},r){const{shapeFlag:a,children:i,anchor:l,targetStart:c,targetAnchor:u,target:f,props:h}=e,m=cn(h),w=r||!m,k=Ht.get(e);if(k&&(k.flags|=8,Ht.delete(e)),f&&(s(c),s(u)),r&&s(l),!k&&(m||f)&&a&16)for(let A=0;A1){for(const n of e)if(n.type!==vt){t=n;break}}return t}function da(e){if(!Ro(e))return Mo(e.type)&&e.children?Yc(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&oe(n.default))return n.default()}}function xr(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const n=e.component.subTree;xr(Mo(n.type)&&da(n)||n,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function zn(e,t){return oe(e)?Ce({name:e.name},t,{setup:e}):e}function Ir(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function fa(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}const Bo=new WeakMap;function Kn(e,t,n,o,s=!1){if(ee(e)){e.forEach((k,A)=>Kn(k,t&&(ee(t)?t[A]:t),n,o,s));return}if(Nn(o)&&!s){o.shapeFlag&512&&o.type.__asyncResolved&&o.component.subTree.component&&Kn(e,t,n,o.component.subTree);return}const r=o.shapeFlag&4?zo(o.component):o.el,a=s?null:r,{i,r:l}=e,c=t&&t.r,u=i.refs===_e?i.refs={}:i.refs,f=i.setupState,h=pe(f),m=f===_e?ks:k=>fa(u,k)?!1:he(h,k),w=(k,A)=>!(A&&fa(u,A));if(c!=null&&c!==l){if(ha(t),be(c))u[c]=null,m(c)&&(f[c]=null);else if(Ne(c)){const k=t;w(c,k.k)&&(c.value=null),k.k&&(u[k.k]=null)}}if(oe(l))kn(l,i,12,[a,u]);else{const k=be(l),A=Ne(l);if(k||A){const O=()=>{if(e.f){const C=k?m(l)?f[l]:u[l]:w()||!e.k?l.value:u[e.k];if(s)ee(C)&&ur(C,r);else if(ee(C))C.includes(r)||C.push(r);else if(k)u[l]=[r],m(l)&&(f[l]=u[l]);else{const _=[r];w(l,e.k)&&(l.value=_),e.k&&(u[e.k]=_)}}else k?(u[l]=a,m(l)&&(f[l]=a)):A&&(w(l,e.k)&&(l.value=a),e.k&&(u[e.k]=a))};if(a){const C=()=>{O(),Bo.delete(e)};C.id=-1,Bo.set(e,C),Ve(C,n)}else ha(e),O()}}}function ha(e){const t=Bo.get(e);t&&(t.flags|=8,Bo.delete(e))}const ga=e=>e.nodeType===8;wo().requestIdleCallback,wo().cancelIdleCallback;function Vc(e,t){if(ga(e)&&e.data==="["){let n=1,o=e.nextSibling;for(;o;){if(o.nodeType===1){if(t(o)===!1)break}else if(ga(o))if(o.data==="]"){if(--n===0)break}else o.data==="["&&n++;o=o.nextSibling}}else t(e)}const Nn=e=>!!e.type.__asyncLoader;function Hc(e){oe(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:o,delay:s=200,hydrate:r,timeout:a,suspensible:i=!0,onError:l}=e;let c=null,u,f=0;const h=()=>(f++,c=null,m()),m=()=>{let w;return c||(w=c=t().catch(k=>{if(k=k instanceof Error?k:new Error(String(k)),l)return new Promise((A,O)=>{l(k,()=>A(h()),()=>O(k),f+1)});throw k}).then(k=>w!==c&&c?c:(k&&(k.__esModule||k[Symbol.toStringTag]==="Module")&&(k=k.default),u=k,k)))};return zn({name:"AsyncComponentWrapper",__asyncLoader:m,__asyncHydrate(w,k,A){const O=w.isConnected;let C=!1;(k.bu||(k.bu=[])).push(()=>C=!0);const _=()=>{C||!w.parentNode||O&&!w.isConnected||A()},b=r?()=>{const v=r(_,E=>Vc(w,E));v&&(k.bum||(k.bum=[])).push(v)}:_;u?b():m().then(()=>!k.isUnmounted&&b())},get __asyncResolved(){return u},setup(){const w=Re;if(Ir(w),u)return()=>Do(u,w);const k=v=>{c=null,Yn(v,w,13,!o)};if(i&&w.suspense||An)return m().then(v=>()=>Do(v,w)).catch(v=>(k(v),()=>o?ve(o,{error:v}):null));const A=re(!1),O=re(),C=re(!!s);let _,b;return Uo(()=>{_!=null&&clearTimeout(_),b!=null&&clearTimeout(b)}),s&&(b=setTimeout(()=>{w.isUnmounted||(C.value=!1)},s)),a!=null&&(_=setTimeout(()=>{if(!w.isUnmounted&&!A.value&&!O.value){const v=new Error(`Async component timed out after ${a}ms.`);k(v),O.value=v}},a)),m().then(()=>{w.isUnmounted||(A.value=!0,w.parent&&Ro(w.parent.vnode)&&w.parent.update())}).catch(v=>{if(w.isUnmounted){c=null;return}k(v),O.value=v}),()=>{if(A.value&&u)return Do(u,w);if(O.value&&o)return ve(o,{error:O.value});if(n&&!C.value)return Do(n,w)}}})}function Do(e,t){const{ref:n,props:o,children:s,ce:r}=t.vnode,a=ve(e,o,s);return a.ref=n,a.ce=r,delete t.vnode.ce,a}const Ro=e=>e.type.__isKeepAlive;function qc(e,t){ma(e,"a",t)}function zc(e,t){ma(e,"da",t)}function ma(e,t,n=Re){const o=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Wo(t,o,n),n){let s=n.parent;for(;s&&s.parent;)Ro(s.parent.vnode)&&Kc(o,t,n,s),s=s.parent}}function Kc(e,t,n,o){const s=Wo(t,e,o,!0);Uo(()=>{ur(o[t],s)},n)}function Wo(e,t,n=Re,o=!1){if(n){const s=n[e]||(n[e]=[]),r=t.__weh||(t.__weh=(...a)=>{mt();const i=oo(n),l=it(t,n,e,a);return i(),_t(),l});return o?s.unshift(r):s.push(r),r}}const xt=e=>(t,n=Re)=>{(!An||e==="sp")&&Wo(e,(...o)=>t(...o),n)},_a=xt("bm"),qt=xt("m"),Xc=xt("bu"),Jc=xt("u"),un=xt("bum"),Uo=xt("um"),Zc=xt("sp"),Qc=xt("rtg"),eu=xt("rtc");function tu(e,t=Re){Wo("ec",e,t)}const nu="components",ba=Symbol.for("v-ndc");function ya(e){return be(e)?ou(nu,e,!1)||e:e||ba}function ou(e,t,n=!0,o=!1){const s=Be||Re;if(s){const r=s.type;{const i=Za(r,!1);if(i&&(i===t||i===Fe(t)||i===vo(Fe(t))))return r}const a=va(s[e]||r[e],t)||va(s.appContext[e],t);return!a&&o?r:a}}function va(e,t){return e&&(e[t]||e[Fe(t)]||e[vo(Fe(t))])}function ct(e,t,n,o){let s;const r=n,a=ee(e);if(a||be(e)){const i=a&&Tt(e);let l=!1,c=!1;i&&(l=!Je(e),c=Lt(e),e=Oo(e)),s=new Array(e.length);for(let u=0,f=e.length;ut(i,l,void 0,r));else{const i=Object.keys(e);s=new Array(i.length);for(let l=0,c=i.length;l0;return H(),Qe(de,null,[ve("slot",c,o)],u?-2:64)}let a=e[t];a&&a._c&&(a._d=!1);const i=It.length;H();let l;try{const c=a&&wa(a(n)),u=n.key||r||c&&c.key;l=Qe(de,{key:(u&&!Xe(u)?u:`_${t}`)+(!c&&o?"_fb":"")},c||(o?o():[]),c&&e._===1?64:-2)}catch(c){for(let u=It.length;u>i;u--)Vr();throw c}finally{a&&a._c&&(a._d=!0)}return l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),l}function wa(e){return e.some(t=>eo(t)?!(t.type===vt||t.type===de&&!wa(t.children)):!0)?e:null}const Mr=e=>e?Ka(e)?zo(e):Mr(e.parent):null,Xn=Ce(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=>Mr(e.parent),$root:e=>Mr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Na(e),$forceUpdate:e=>e.f||(e.f=()=>{Ar(e.update)}),$nextTick:e=>e.n||(e.n=Vn.bind(e.proxy)),$watch:e=>Rc.bind(e)}),Pr=(e,t)=>e!==_e&&!e.__isScriptSetup&&he(e,t),ru={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:o,data:s,props:r,accessCache:a,type:i,appContext:l}=e;if(t[0]!=="$"){const h=a[t];if(h!==void 0)switch(h){case 1:return o[t];case 2:return s[t];case 4:return n[t];case 3:return r[t]}else{if(Pr(o,t))return a[t]=1,o[t];if(s!==_e&&he(s,t))return a[t]=2,s[t];if(he(r,t))return a[t]=3,r[t];if(n!==_e&&he(n,t))return a[t]=4,n[t];Br&&(a[t]=0)}}const c=Xn[t];let u,f;if(c)return t==="$attrs"&&je(e.attrs,"get",""),c(e);if((u=i.__cssModules)&&(u=u[t]))return u;if(n!==_e&&he(n,t))return a[t]=4,n[t];if(f=l.config.globalProperties,he(f,t))return f[t]},set({_:e},t,n){const{data:o,setupState:s,ctx:r}=e;return Pr(s,t)?(s[t]=n,!0):o!==_e&&he(o,t)?(o[t]=n,!0):he(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(r[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:o,appContext:s,props:r,type:a}},i){let l;return!!(n[i]||e!==_e&&i[0]!=="$"&&he(e,i)||Pr(t,i)||he(r,i)||he(o,i)||he(Xn,i)||he(s.config.globalProperties,i)||(l=a.__cssModules)&&l[i])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:he(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function ka(e){return ee(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Br=!0;function su(e){const t=Na(e),n=e.proxy,o=e.ctx;Br=!1,t.beforeCreate&&$a(t.beforeCreate,e,"bc");const{data:s,computed:r,methods:a,watch:i,provide:l,inject:c,created:u,beforeMount:f,mounted:h,beforeUpdate:m,updated:w,activated:k,deactivated:A,beforeDestroy:O,beforeUnmount:C,destroyed:_,unmounted:b,render:v,renderTracked:E,renderTriggered:L,errorCaptured:x,serverPrefetch:N,expose:R,inheritAttrs:j,components:K,directives:ne,filters:ue}=t;if(c&&au(c,o,null),a)for(const X in a){const le=a[X];oe(le)&&(o[X]=le.bind(n))}if(s){const X=s.call(n,n);ge(X)&&(e.data=Eo(X))}if(Br=!0,r)for(const X in r){const le=r[X],Ee=oe(le)?le.bind(n,n):oe(le.get)?le.get.bind(n,n):ht,Nt=!oe(le)&&oe(le.set)?le.set.bind(n):ht,Ie=ae({get:Ee,set:Nt});Object.defineProperty(o,X,{enumerable:!0,configurable:!0,get:()=>Ie.value,set:Pe=>Ie.value=Pe})}if(i)for(const X in i)Oa(i[X],o,n,X);if(l){const X=oe(l)?l.call(n):l;Reflect.ownKeys(X).forEach(le=>{nt(le,X[le])})}u&&$a(u,e,"c");function W(X,le){ee(le)?le.forEach(Ee=>X(Ee.bind(n))):le&&X(le.bind(n))}if(W(_a,f),W(qt,h),W(Xc,m),W(Jc,w),W(qc,k),W(zc,A),W(tu,x),W(eu,E),W(Qc,L),W(un,C),W(Uo,b),W(Zc,N),ee(R))if(R.length){const X=e.exposed||(e.exposed={});R.forEach(le=>{Object.defineProperty(X,le,{get:()=>n[le],set:Ee=>n[le]=Ee,enumerable:!0})})}else e.exposed||(e.exposed={});v&&e.render===ht&&(e.render=v),j!=null&&(e.inheritAttrs=j),K&&(e.components=K),ne&&(e.directives=ne),N&&Ir(e)}function au(e,t,n=ht){ee(e)&&(e=Dr(e));for(const o in e){const s=e[o];let r;ge(s)?"default"in s?r=De(s.from||o,s.default,!0):r=De(s.from||o):r=De(s),Ne(r)?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>r.value,set:a=>r.value=a}):t[o]=r}}function $a(e,t,n){it(ee(e)?e.map(o=>o.bind(t.proxy)):e.bind(t.proxy),t,n)}function Oa(e,t,n,o){let s=o.includes(".")?la(n,o):()=>n[o];if(be(e)){const r=t[e];oe(r)&<(s,r)}else if(oe(e))lt(s,e.bind(n));else if(ge(e))if(ee(e))e.forEach(r=>Oa(r,t,n,o));else{const r=oe(e.handler)?e.handler.bind(n):t[e.handler];oe(r)&<(s,r,e)}}function Na(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:s,optionsCache:r,config:{optionMergeStrategies:a}}=e.appContext,i=r.get(t);let l;return i?l=i:!s.length&&!n&&!o?l=t:(l={},s.length&&s.forEach(c=>jo(l,c,a,!0)),jo(l,t,a)),ge(t)&&r.set(t,l),l}function jo(e,t,n,o=!1){const{mixins:s,extends:r}=t;r&&jo(e,r,n,!0),s&&s.forEach(a=>jo(e,a,n,!0));for(const a in t)if(!(o&&a==="expose")){const i=iu[a]||n&&n[a];e[a]=i?i(e[a],t[a]):t[a]}return e}const iu={data:Ca,props:Aa,emits:Aa,methods:Jn,computed:Jn,beforeCreate:Ye,created:Ye,beforeMount:Ye,mounted:Ye,beforeUpdate:Ye,updated:Ye,beforeDestroy:Ye,beforeUnmount:Ye,destroyed:Ye,unmounted:Ye,activated:Ye,deactivated:Ye,errorCaptured:Ye,serverPrefetch:Ye,components:Jn,directives:Jn,watch:cu,provide:Ca,inject:lu};function Ca(e,t){return t?e?function(){return Ce(oe(e)?e.call(this,this):e,oe(t)?t.call(this,this):t)}:t:e}function lu(e,t){return Jn(Dr(e),Dr(t))}function Dr(e){if(ee(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Fe(t)}Modifiers`]||e[`${tt(t)}Modifiers`];function fu(e,t,...n){if(e.isUnmounted)return;const o=e.vnode.props||_e;let s=n;const r=t.startsWith("update:"),a=r&&du(o,t.slice(7));a&&(a.trim&&(s=n.map(u=>be(u)?u.trim():u)),a.number&&(s=s.map(Vl)));let i,l=o[i=pr(t)]||o[i=pr(Fe(t))];!l&&r&&(l=o[i=pr(tt(t))]),l&&it(l,e,6,s);const c=o[i+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[i])return;e.emitted[i]=!0,it(c,e,6,s)}}const hu=new WeakMap;function Ta(e,t,n=!1){const o=n?hu:t.emitsCache,s=o.get(e);if(s!==void 0)return s;const r=e.emits;let a={},i=!1;if(!oe(e)){const l=c=>{const u=Ta(c,t,!0);u&&(i=!0,Ce(a,u))};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!r&&!i?(ge(e)&&o.set(e,null),null):(ee(r)?r.forEach(l=>a[l]=null):Ce(a,r),ge(e)&&o.set(e,a),a)}function Go(e,t){return!e||!ho(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),he(e,t[0].toLowerCase()+t.slice(1))||he(e,tt(t))||he(e,t))}function T_(){}function La(e){const{type:t,vnode:n,proxy:o,withProxy:s,propsOptions:[r],slots:a,attrs:i,emit:l,render:c,renderCache:u,props:f,data:h,setupState:m,ctx:w,inheritAttrs:k}=e,A=Fo(e);let O,C;try{if(n.shapeFlag&4){const b=s||o,v=b;O=wt(c.call(v,b,u,f,m,h,w)),C=i}else{const b=t;O=wt(b.length>1?b(f,{attrs:i,slots:a,emit:l}):b(f,null)),C=t.props?i:gu(i)}}catch(b){It.length=0,Yn(b,e,1),O=ve(vt)}let _=O;if(C&&k!==!1){const b=Object.keys(C),{shapeFlag:v}=_;b.length&&v&7&&(r&&b.some(go)&&(C=mu(C,r)),_=Cn(_,C,!1,!0))}if(n.dirs&&(_=Cn(_,null,!1,!0),_.dirs=_.dirs?_.dirs.concat(n.dirs):n.dirs),n.transition){const b=Mo(_.type)&&da(_)||_;xr(b,n.transition)}return O=_,Fo(A),O}const gu=e=>{let t;for(const n in e)(n==="class"||n==="style"||ho(n))&&((t||(t={}))[n]=e[n]);return t},mu=(e,t)=>{const n={};for(const o in e)(!go(o)||!(o.slice(9)in t))&&(n[o]=e[o]);return n};function _u(e,t,n){const{props:o,children:s,component:r}=e,{props:a,children:i,patchFlag:l}=t,c=r.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&l>=0){if(l&1024)return!0;if(l&16)return o?Sa(o,a,c):!!a;if(l&8){const u=t.dynamicProps;for(let f=0;fObject.create(Ia),Ma=e=>Object.getPrototypeOf(e)===Ia;function yu(e,t,n,o=!1){const s={},r=Fa();e.propsDefaults=Object.create(null),Pa(e,t,s,r);for(const a in e.propsOptions[0])a in s||(s[a]=void 0);n?e.props=o?s:_c(s):e.type.props?e.props=s:e.props=r,e.attrs=r}function vu(e,t,n,o){const{props:s,attrs:r,vnode:{patchFlag:a}}=e,i=pe(s),[l]=e.propsOptions;let c=!1;if((o||a>0)&&!(a&16)){if(a&8){const u=e.vnode.dynamicProps;for(let f=0;f{l=!0;const[h,m]=Ba(f,t,!0);Ce(a,h),m&&i.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!r&&!l)return ge(e)&&o.set(e,_n),_n;if(ee(r))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",Ur=e=>ee(e)?e.map(wt):[wt(e)],ku=(e,t,n)=>{if(t._n)return t;const o=Vt((...s)=>Ur(t(...s)),n);return o._c=!1,o},Ra=(e,t,n)=>{const o=e._ctx;for(const s in e){if(Wr(s))continue;const r=e[s];if(oe(r))t[s]=ku(s,r,o);else if(r!=null){const a=Ur(r);t[s]=()=>a}}},Wa=(e,t)=>{const n=Ur(t);e.slots.default=()=>n},Ua=(e,t,n)=>{for(const o in t)(n||!Wr(o))&&(e[o]=t[o])},$u=(e,t,n)=>{const o=e.slots=Fa();if(e.vnode.shapeFlag&32){const s=t._;s?(Ua(o,t,n),n&&Cs(o,"_",s,!0)):Ra(t,o)}else t&&Wa(e,t)},Ou=(e,t,n)=>{const{vnode:o,slots:s}=e;let r=!0,a=_e;if(o.shapeFlag&32){const i=t._;i?n&&i===1?r=!1:Ua(s,t,n):(r=!t.$stable,Ra(t,s)),a=t}else t&&(Wa(e,t),a={default:1});if(r)for(const i in s)!Wr(i)&&a[i]==null&&delete s[i]},Ve=Tu;function Nu(e){return Cu(e)}function Cu(e,t){const n=wo();n.__VUE__=!0;const{insert:o,remove:s,patchProp:r,createElement:a,createText:i,createComment:l,setText:c,setElementText:u,parentNode:f,nextSibling:h,setScopeId:m=ht,insertStaticContent:w}=e,k=(g,$,y,I=null,D=null,B=null,Y=void 0,G=null,p=!!$.dynamicChildren)=>{if(g===$)return;g&&!to(g,$)&&(I=Ut(g),Pe(g,D,B,!0),g=null),$.patchFlag===-2&&(p=!1,$.dynamicChildren=null);const{type:d,ref:S,shapeFlag:F}=$;switch(d){case Zn:A(g,$,y,I);break;case vt:O(g,$,y,I);break;case Yr:g==null&&C($,y,I,Y);break;case de:K(g,$,y,I,D,B,Y,G,p);break;default:F&1?v(g,$,y,I,D,B,Y,G,p):F&6?ne(g,$,y,I,D,B,Y,G,p):(F&64||F&128)&&d.process(g,$,y,I,D,B,Y,G,p,rt)}S!=null&&D?Kn(S,g&&g.ref,B,$||g,!$):S==null&&g&&g.ref!=null&&Kn(g.ref,null,B,g,!0)},A=(g,$,y,I)=>{if(g==null)o($.el=i($.children),y,I);else{const D=$.el=g.el;$.children!==g.children&&c(D,$.children)}},O=(g,$,y,I)=>{g==null?o($.el=l($.children||""),y,I):$.el=g.el},C=(g,$,y,I)=>{[g.el,g.anchor]=w(g.children,$,y,I,g.el,g.anchor)},_=({el:g,anchor:$},y,I)=>{let D;for(;g&&g!==$;)D=h(g),o(g,y,I),g=D;o($,y,I)},b=({el:g,anchor:$})=>{let y;for(;g&&g!==$;)y=h(g),s(g),g=y;s($)},v=(g,$,y,I,D,B,Y,G,p)=>{if($.type==="svg"?Y="svg":$.type==="math"&&(Y="mathml"),g==null)E($,y,I,D,B,Y,G,p);else{const d=g.el&&g.el._isVueCE?g.el:null;try{d&&d._beginPatch(),N(g,$,D,B,Y,G,p)}finally{d&&d._endPatch()}}},E=(g,$,y,I,D,B,Y,G)=>{let p,d;const{props:S,shapeFlag:F,transition:V,dirs:U}=g;if(p=g.el=a(g.type,B,S&&S.is,S),F&8?u(p,g.children):F&16&&x(g.children,p,null,I,D,jr(g,B),Y,G),U&&ln(g,null,I,"created"),L(p,g,g.scopeId,Y,I),S){for(const P in S)P!=="value"&&!Pn(P)&&r(p,P,null,S[P],B,I);"value"in S&&r(p,"value",null,S.value,B),(d=S.onVnodeBeforeMount)&&kt(d,I,g)}U&&ln(g,null,I,"beforeMount");const T=Au(D,V);T&&V.beforeEnter(p),o(p,$,y),((d=S&&S.onVnodeMounted)||T||U)&&Ve(()=>{try{d&&kt(d,I,g),T&&V.enter(p),U&&ln(g,null,I,"mounted")}finally{}},D)},L=(g,$,y,I,D)=>{if(y&&m(g,y),I)for(let B=0;B{for(let d=p;d{const G=$.el=g.el;let{patchFlag:p,dynamicChildren:d,dirs:S}=$;p|=g.patchFlag&16;const F=g.props||_e,V=$.props||_e;let U;if(y&&dn(y,!1),(U=V.onVnodeBeforeUpdate)&&kt(U,y,$,g),S&&ln($,g,y,"beforeUpdate"),y&&dn(y,!0),d&&(!g.dynamicChildren||g.dynamicChildren.length!==d.length)&&(p=0,Y=!1,d=null),(F.innerHTML&&V.innerHTML==null||F.textContent&&V.textContent==null)&&u(G,""),d?R(g.dynamicChildren,d,G,y,I,jr($,D),B):Y||le(g,$,G,null,y,I,jr($,D),B,!1),p>0){if(p&16)j(G,F,V,y,D);else if(p&2&&F.class!==V.class&&r(G,"class",null,V.class,D),p&4&&r(G,"style",F.style,V.style,D),p&8){const T=$.dynamicProps;for(let P=0;P{U&&kt(U,y,$,g),S&&ln($,g,y,"updated")},I)},R=(g,$,y,I,D,B,Y)=>{for(let G=0;G<$.length;G++){const p=g[G],d=$[G],S=p.el&&(p.type===de||!to(p,d)||p.shapeFlag&198)?f(p.el):y;k(p,d,S,null,I,D,B,Y,!0)}},j=(g,$,y,I,D)=>{if($!==y){if($!==_e)for(const B in $)!Pn(B)&&!(B in y)&&r(g,B,$[B],null,D,I);for(const B in y){if(Pn(B))continue;const Y=y[B],G=$[B];Y!==G&&B!=="value"&&r(g,B,G,Y,D,I)}"value"in y&&r(g,"value",$.value,y.value,D)}},K=(g,$,y,I,D,B,Y,G,p)=>{const d=$.el=g?g.el:i(""),S=$.anchor=g?g.anchor:i("");let{patchFlag:F,dynamicChildren:V,slotScopeIds:U}=$;U&&(G=G?G.concat(U):U),g==null?(o(d,y,I),o(S,y,I),x($.children||[],y,S,D,B,Y,G,p)):F>0&&F&64&&V&&g.dynamicChildren&&g.dynamicChildren.length===V.length?(R(g.dynamicChildren,V,y,D,B,Y,G),($.key!=null||D&&$===D.subTree)&&Gr(g,$,!0)):le(g,$,y,S,D,B,Y,G,p)},ne=(g,$,y,I,D,B,Y,G,p)=>{$.slotScopeIds=G,g==null?$.shapeFlag&512?D.ctx.activate($,y,I,Y,p):ue($,y,I,D,B,Y,p):z(g,$,p)},ue=(g,$,y,I,D,B,Y)=>{const G=g.component=Mu(g,I,D);if(Ro(g)&&(G.ctx.renderer=rt),Pu(G,!1,Y),G.asyncDep){if(D&&D.registerDep(G,W,Y),!g.el){const p=G.subTree=ve(vt);O(null,p,$,y),g.placeholder=p.el}}else W(G,g,$,y,D,B,Y)},z=(g,$,y)=>{const I=$.component=g.component;if(_u(g,$,y))if(I.asyncDep&&!I.asyncResolved){X(I,$,y);return}else I.next=$,I.update();else $.el=g.el,I.vnode=$},W=(g,$,y,I,D,B,Y)=>{const G=()=>{if(g.isMounted){let{next:F,bu:V,u:U,parent:T,vnode:P}=g;{const Ue=ja(g);if(Ue){F&&(F.el=P.el,X(g,F,Y)),Ue.asyncDep.then(()=>{Ve(()=>{g.isUnmounted||d()},D)});return}}let Z=F,ie;dn(g,!1),F?(F.el=P.el,X(g,F,Y)):F=P,V&&dr(V),(ie=F.props&&F.props.onVnodeBeforeUpdate)&&kt(ie,T,F,P),dn(g,!0);const ke=La(g),qe=g.subTree;g.subTree=ke,k(qe,ke,f(qe.el),Ut(qe),g,D,B),F.el=ke.el,Z===null&&bu(g,ke.el),U&&Ve(U,D),(ie=F.props&&F.props.onVnodeUpdated)&&Ve(()=>kt(ie,T,F,P),D)}else{let F;const{el:V,props:U}=$,{bm:T,m:P,parent:Z,root:ie,type:ke}=g,qe=Nn($);dn(g,!1),T&&dr(T),!qe&&(F=U&&U.onVnodeBeforeMount)&&kt(F,Z,$),dn(g,!0);{ie.ce&&ie.ce._hasShadowRoot()&&ie.ce._injectChildStyle(ke,g.parent?g.parent.type:void 0);const Ue=g.subTree=La(g);k(null,Ue,y,I,g,D,B),$.el=Ue.el}if(P&&Ve(P,D),!qe&&(F=U&&U.onVnodeMounted)){const Ue=$;Ve(()=>kt(F,Z,Ue),D)}($.shapeFlag&256||Z&&Nn(Z.vnode)&&Z.vnode.shapeFlag&256)&&g.a&&Ve(g.a,D),g.isMounted=!0,$=y=I=null}};g.scope.on();const p=g.effect=new Ms(G);g.scope.off();const d=g.update=p.run.bind(p),S=g.job=p.runIfDirty.bind(p);S.i=g,S.id=g.uid,p.scheduler=()=>Ar(S),dn(g,!0),d()},X=(g,$,y)=>{$.component=g;const I=g.vnode.props;g.vnode=$,g.next=null,vu(g,$.props,I,y),Ou(g,$.children,y),mt(),ra(g),_t()},le=(g,$,y,I,D,B,Y,G,p=!1)=>{const d=g&&g.children,S=g?g.shapeFlag:0,F=$.children,{patchFlag:V,shapeFlag:U}=$;if(V>0){if(V&128){Nt(d,F,y,I,D,B,Y,G,p);return}else if(V&256){Ee(d,F,y,I,D,B,Y,G,p);return}}U&8?(S&16&&ft(d,D,B),F!==d&&u(y,F)):S&16?U&16?Nt(d,F,y,I,D,B,Y,G,p):ft(d,D,B,!0):(S&8&&u(y,""),U&16&&x(F,y,I,D,B,Y,G,p))},Ee=(g,$,y,I,D,B,Y,G,p)=>{g=g||_n,$=$||_n;const d=g.length,S=$.length,F=Math.min(d,S);let V;for(V=0;VS?ft(g,D,B,!0,!1,F):x($,y,I,D,B,Y,G,p,F)},Nt=(g,$,y,I,D,B,Y,G,p)=>{let d=0;const S=$.length;let F=g.length-1,V=S-1;for(;d<=F&&d<=V;){const U=g[d],T=$[d]=p?Ft($[d]):wt($[d]);if(to(U,T))k(U,T,y,null,D,B,Y,G,p);else break;d++}for(;d<=F&&d<=V;){const U=g[F],T=$[V]=p?Ft($[V]):wt($[V]);if(to(U,T))k(U,T,y,null,D,B,Y,G,p);else break;F--,V--}if(d>F){if(d<=V){const U=V+1,T=UV)for(;d<=F;)Pe(g[d],D,B,!0),d++;else{const U=d,T=d,P=new Map;for(d=T;d<=V;d++){const et=$[d]=p?Ft($[d]):wt($[d]);et.key!=null&&P.set(et.key,d)}let Z,ie=0;const ke=V-T+1;let qe=!1,Ue=0;const mn=new Array(ke);for(d=0;d=ke){Pe(et,D,B,!0);continue}let Ct;if(et.key!=null)Ct=P.get(et.key);else for(Z=T;Z<=V;Z++)if(mn[Z-T]===0&&to(et,$[Z])){Ct=Z;break}Ct===void 0?Pe(et,D,B,!0):(mn[Ct-T]=d+1,Ct>=Ue?Ue=Ct:qe=!0,k(et,$[Ct],y,null,D,B,Y,G,p),ie++)}const ws=qe?Eu(mn):_n;for(Z=ws.length-1,d=ke-1;d>=0;d--){const et=T+d,Ct=$[et],Rl=$[et+1],Wl=et+1{const{el:B,type:Y,transition:G,children:p,shapeFlag:d}=g;if(d&6){Ie(g.component.subTree,$,y,I);return}if(d&128){g.suspense.move($,y,I);return}if(d&64){Y.move(g,$,y,rt);return}if(Y===de){o(B,$,y);for(let F=0;FG.enter(B),D));else{const{leave:F,delayLeave:V,afterLeave:U}=G,T=()=>{g.ctx.isUnmounted?s(B):o(B,$,y)},P=()=>{const Z=B._isLeaving||!!B[Sr];B._isLeaving&&B[Sr](!0),G.persisted&&!Z?T():F(B,()=>{T(),U&&U()})};V?V(B,T,P):P()}else o(B,$,y)},Pe=(g,$,y,I=!1,D=!1)=>{const{type:B,props:Y,ref:G,children:p,dynamicChildren:d,shapeFlag:S,patchFlag:F,dirs:V,cacheIndex:U,memo:T}=g;if(F===-2&&(D=!1),G!=null&&(mt(),Kn(G,null,y,g,!0),_t()),U!=null&&($.renderCache[U]=void 0),S&256){$.ctx.deactivate(g);return}const P=S&1&&V,Z=!Nn(g);let ie;if(Z&&(ie=Y&&Y.onVnodeBeforeUnmount)&&kt(ie,$,g),S&6)gn(g.component,y,I);else{if(S&128){g.suspense.unmount(y,I);return}P&&ln(g,null,$,"beforeUnmount"),S&64?g.type.remove(g,$,y,rt,I):d&&!d.hasOnce&&(B!==de||F>0&&F&64)?ft(d,$,y,!1,!0):(B===de&&F&384||!D&&S&16)&&ft(p,$,y),I&&nn(g)}const ke=T!=null&&U==null;(Z&&(ie=Y&&Y.onVnodeUnmounted)||P||ke)&&Ve(()=>{ie&&kt(ie,$,g),P&&ln(g,null,$,"unmounted"),ke&&(g.el=null)},y)},nn=g=>{const{type:$,el:y,anchor:I,transition:D}=g;if($===de){on(y,I);return}if($===Yr){b(g);return}const B=()=>{s(y),D&&!D.persisted&&D.afterLeave&&D.afterLeave()};if(g.shapeFlag&1&&D&&!D.persisted){const{leave:Y,delayLeave:G}=D,p=()=>Y(y,B);G?G(g.el,B,p):p()}else B()},on=(g,$)=>{let y;for(;g!==$;)y=h(g),s(g),g=y;s($)},gn=(g,$,y)=>{const{bum:I,scope:D,job:B,subTree:Y,um:G,m:p,a:d}=g;Ga(p),Ga(d),I&&dr(I),D.stop(),B&&(B.flags|=8,Pe(Y,g,$,y)),G&&Ve(G,$),Ve(()=>{g.isUnmounted=!0},$)},ft=(g,$,y,I=!1,D=!1,B=0)=>{for(let Y=B;Y{if(g.shapeFlag&6)return Ut(g.component.subTree);if(g.shapeFlag&128)return g.suspense.next();const $=h(g.anchor||g.el),y=$&&$[ca];return y?h(y):$};let jt=!1;const rn=(g,$,y)=>{let I;g==null?$._vnode&&(Pe($._vnode,null,null,!0),I=$._vnode.component):k($._vnode||null,g,$,null,null,null,y),$._vnode=g,jt||(jt=!0,ra(I),sa(),jt=!1)},rt={p:k,um:Pe,m:Ie,r:nn,mt:ue,mc:x,pc:le,pbc:R,n:Ut,o:e};return{render:rn,hydrate:void 0,createApp:pu(rn)}}function jr({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function dn({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Au(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Gr(e,t,n=!1){const o=e.children,s=t.children;if(ee(o)&&ee(s))for(let r=0;r>1,e[n[i]]0&&(t[o]=n[r-1]),n[r]=o)}}for(r=n.length,a=n[r-1];r-- >0;)n[r]=a,a=t[a];return n}function ja(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:ja(t)}function Ga(e){if(e)for(let t=0;te.__isSuspense;function Tu(e,t){t&&t.pendingBranch?ee(e)?t.effects.push(...e):t.effects.push(e):Ic(e)}const de=Symbol.for("v-fgt"),Zn=Symbol.for("v-txt"),vt=Symbol.for("v-cmt"),Yr=Symbol.for("v-stc"),It=[];let Ze=null;function H(e=!1){It.push(Ze=e?null:[])}function Vr(){It.pop(),Ze=It[It.length-1]||null}let Qn=1;function Yo(e,t=!1){Qn+=e,e<0&&Ze&&t&&(Ze.hasOnce=!0)}function Ha(e){return e.dynamicChildren=Qn>0?Ze||_n:null,Vr(),Qn>0&&Ze&&Ze.push(e),e}function J(e,t,n,o,s,r){return Ha(M(e,t,n,o,s,r,!0))}function Qe(e,t,n,o,s){return Ha(ve(e,t,n,o,s,!0))}function eo(e){return e?e.__v_isVNode===!0:!1}function to(e,t){return e.type===t.type&&e.key===t.key}const qa=({key:e})=>e??null,Vo=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?be(e)||Ne(e)||oe(e)?{i:Be,r:e,k:t,f:!!n}:e:null);function M(e,t=null,n=null,o=0,s=null,r=e===de?0:1,a=!1,i=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&qa(t),ref:t&&Vo(t),scopeId:ia,slotScopeIds:null,children:n,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:o,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:Be};return i?(Ho(l,n),r&128&&e.normalize(l)):n&&(l.shapeFlag|=be(n)?8:16),Qn>0&&!a&&Ze&&(l.patchFlag>0||r&6)&&l.patchFlag!==32&&Ze.push(l),l}const ve=Lu;function Lu(e,t=null,n=null,o=0,s=null,r=!1){if((!e||e===ba)&&(e=vt),eo(e)){const i=Cn(e,t,!0);return n&&Ho(i,n),Qn>0&&!r&&Ze&&(i.shapeFlag&6?Ze[Ze.indexOf(e)]=i:Ze.push(i)),i.patchFlag=-2,i}if(ju(e)&&(e=e.__vccOpts),t){t=Su(t);let{class:i,style:l}=t;i&&!be(i)&&(t.class=Te(i)),ge(l)&&(Lo(l)&&!ee(l)&&(l=Ce({},l)),t.style=bn(l))}const a=be(e)?1:Va(e)?128:Mo(e)?64:ge(e)?4:oe(e)?2:0;return M(e,t,n,o,s,a,r,!0)}function Su(e){return e?Lo(e)||Ma(e)?Ce({},e):e:null}function Cn(e,t,n=!1,o=!1){const{props:s,ref:r,patchFlag:a,children:i,transition:l}=e,c=t?xu(s||{},t):s,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&qa(c),ref:t&&t.ref?n&&r?ee(r)?r.concat(Vo(t)):[r,Vo(t)]:Vo(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!==de?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&&Cn(e.ssContent),ssFallback:e.ssFallback&&Cn(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&o&&xr(u,l.clone(u)),u}function $e(e=" ",t=0){return ve(Zn,null,e,t)}function Le(e="",t=!1){return t?(H(),Qe(vt,null,e)):ve(vt,null,e)}function wt(e){return e==null||typeof e=="boolean"?ve(vt):ee(e)?ve(de,null,e.slice()):eo(e)?Ft(e):ve(Zn,null,String(e))}function Ft(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Cn(e)}function Ho(e,t){let n=0;const{shapeFlag:o}=e;if(t==null)t=null;else if(ee(t))n=16;else if(typeof t=="object")if(o&65){const s=t.default;s&&(s._c&&(s._d=!1),Ho(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!Ma(t)?t._ctx=Be:s===3&&Be&&(Be.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(oe(t)){if(o&65){Ho(e,{default:t});return}t={default:t,_ctx:Be},n=32}else t=String(t),o&64?(n=16,t=[$e(t)]):n=8;e.children=t,e.shapeFlag|=n}function xu(...e){const t={};for(let n=0;nRe||Be;let qo,no;{const e=wo(),t=(n,o)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(o),r=>{s.length>1?s.forEach(a=>a(r)):s[0](r)}};qo=t("__VUE_INSTANCE_SETTERS__",n=>Re=n),no=t("__VUE_SSR_SETTERS__",n=>An=n)}const oo=e=>{const t=Re;return qo(e),e.scope.on(),()=>{e.scope.off(),qo(t)}},za=()=>{Re&&Re.scope.off(),qo(null)};function Ka(e){return e.vnode.shapeFlag&4}let An=!1;function Pu(e,t=!1,n=!1){t&&no(t);const{props:o,children:s}=e.vnode,r=Ka(e);yu(e,o,r,t),$u(e,s,n||t);const a=r?Bu(e,t):void 0;return t&&no(!1),a}function Bu(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,ru);const{setup:o}=n;if(o){mt();const s=e.setupContext=o.length>1?Ru(e):null,r=oo(e),a=kn(o,e,0,[e.props,s]),i=Os(a);if(_t(),r(),(i||e.sp)&&!Nn(e)&&Ir(e),i){if(a.then(za,za),t)return a.then(l=>{no(!0);try{Xa(e,l,t)}finally{no(!1)}}).catch(l=>{Yn(l,e,0)});e.asyncDep=a}else Xa(e,a)}else Ja(e)}function Xa(e,t,n){oe(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ge(t)&&(e.setupState=ea(t)),Ja(e)}function Ja(e,t,n){const o=e.type;e.render||(e.render=o.render||ht);{const s=oo(e);mt();try{su(e)}finally{_t(),s()}}}const Du={get(e,t){return je(e,"get",""),e[t]}};function Ru(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Du),slots:e.slots,emit:e.emit,expose:t}}function zo(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(ea(vn(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Xn)return Xn[n](e)},has(t,n){return n in t||n in Xn}})):e.proxy}const Wu=/(?:^|[-_])\w/g,Uu=e=>e.replace(Wu,t=>t.toUpperCase()).replace(/[-_]/g,"");function Za(e,t=!0){return oe(e)?e.displayName||e.name:e.name||t&&e.__name}function Qa(e,t,n=!1){let o=Za(t);if(!o&&t.__file){const s=t.__file.match(/([^/\\]+)\.\w+$/);s&&(o=s[1])}if(!o&&e){const s=r=>{for(const a in r)if(r[a]===t)return a};o=s(e.components)||e.parent&&s(e.parent.type.components)||s(e.appContext.components)}return o?Uu(o):n?"App":"Anonymous"}function ju(e){return oe(e)&&"__vccOpts"in e}const ae=(e,t)=>Oc(e,t,An);function ei(e,t,n){try{Yo(-1);const o=arguments.length;return o===2?ge(t)&&!ee(t)?eo(t)?ve(e,null,[t]):ve(e,t):ve(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):o===3&&eo(n)&&(n=[n]),ve(e,t,n))}finally{Yo(1)}}const Gu="3.5.42";/** * @vue/runtime-dom v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let Hr;const ta=typeof window<"u"&&window.trustedTypes;if(ta)try{Hr=ta.createPolicy("vue",{createHTML:e=>e})}catch{}const na=Hr?e=>Hr.createHTML(e):e=>e,Yu="http://www.w3.org/2000/svg",Vu="http://www.w3.org/1998/Math/MathML",Pt=typeof document<"u"?document:null,oa=Pt&&Pt.createElement("template"),Hu={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,o)=>{const s=t==="svg"?Pt.createElementNS(Yu,e):t==="mathml"?Pt.createElementNS(Vu,e):n?Pt.createElement(e,{is:n}):Pt.createElement(e);return e==="select"&&o&&o.multiple!=null&&s.setAttribute("multiple",o.multiple),s},createText:e=>Pt.createTextNode(e),createComment:e=>Pt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Pt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,o,s,r){const i=n?n.previousSibling:t.lastChild;if(s&&(s===r||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===r||!(s=s.nextSibling)););else{oa.innerHTML=na(o==="svg"?`${e}`:o==="mathml"?`${e}`:e);const a=oa.content;if(o==="svg"||o==="mathml"){const l=a.firstChild;for(;l.firstChild;)a.appendChild(l.firstChild);a.removeChild(l)}t.insertBefore(a,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},qu=Symbol("_vtc");function zu(e,t,n){const o=e[qu];o&&(t=(t?[t,...o]:[...o]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Ko=Symbol("_vod"),ra=Symbol("_vsh"),Ku={name:"show",beforeMount(e,{value:t},{transition:n}){e[Ko]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):ro(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:o}){!t!=!n&&(o?t?(o.beforeEnter(e),ro(e,!0),o.enter(e)):o.leave(e,()=>{ro(e,!1)}):ro(e,t))},beforeUnmount(e,{value:t}){ro(e,t)}};function ro(e,t){e.style.display=t?e[Ko]:"none",e[ra]=!t}const Xu=Symbol(""),Ju=/(?:^|;)\s*display\s*:/;function Zu(e,t,n){const o=e.style,s=be(n);let r=!1;if(n&&!s){if(t)if(be(t))for(const i of t.split(";")){const a=i.slice(0,i.indexOf(":")).trim();n[a]==null&&so(o,a,"")}else for(const i in t)n[i]==null&&so(o,i,"");for(const i in n){i==="display"&&(r=!0);const a=n[i];a!=null?ep(e,i,!be(t)&&t?t[i]:void 0,a)||so(o,i,a):so(o,i,"")}}else if(s){if(t!==n){const i=o[Xu];i&&(n+=";"+i),o.cssText=n,r=Ju.test(n)}}else t&&e.removeAttribute("style");Ko in e&&(e[Ko]=r?o.display:"",e[ra]&&(o.display="none"))}const Xo=/\s*!important$/;function so(e,t,n){if(ee(n))n.forEach(o=>so(e,t,o));else if(n==null&&(n=""),t.startsWith("--"))Xo.test(n)?e.setProperty(t,n.replace(Xo,""),"important"):e.setProperty(t,n);else{const o=Qu(e,t);Xo.test(n)?e.setProperty(tt(o),n.replace(Xo,""),"important"):e[o]=n}}const sa=["Webkit","Moz","ms"],qr={};function Qu(e,t){const n=qr[t];if(n)return n;let o=Fe(t);if(o!=="filter"&&o in e)return qr[t]=o;o=vo(o);for(let s=0;szr||(ap.then(()=>zr=0),zr=Date.now());function cp(e,t){const n=o=>{if(!o._vts)o._vts=Date.now();else if(o._vts<=n.attached)return;const s=n.value;if(ee(s)){const r=o.stopImmediatePropagation;o.stopImmediatePropagation=()=>{r.call(o),o._stopped=!0};const i=s.slice(),a=[o];for(let l=0;le.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,up=(e,t,n,o,s,r)=>{const i=s==="svg";t==="class"?zu(e,o,i):t==="style"?Zu(e,n,o):ho(t)?go(t)||op(e,t,n,o,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):pp(e,t,o,i))?(la(e,t,o),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&aa(e,t,o,i,r,t!=="value")):e._isVueCE&&(dp(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!be(o)))?la(e,Fe(t),o,r,t):(t==="true-value"?e._trueValue=o:t==="false-value"&&(e._falseValue=o),aa(e,t,o,i))};function pp(e,t,n,o){if(o)return!!(t==="innerHTML"||t==="textContent"||t in e&&ua(t)&&oe(n));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 ua(t)&&be(n)?!1:t in e}function dp(e,t){const n=e._def.props;if(!n)return!1;const o=Fe(t);return Array.isArray(n)?n.some(s=>Fe(s)===o):Object.keys(n).some(s=>Fe(s)===o)}const pa={};function fp(e,t,n){let o=zn(e,t);_o(o)&&(o=Ce({},o,t));class s extends Kr{constructor(i){super(o,i,n)}}return s.def=o,s}const hp=typeof HTMLElement<"u"?HTMLElement:class{};class Kr extends hp{constructor(t,n={},o=ha){super(),this._def=t,this._props=n,this._createApp=o,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&&o!==ha?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(Ce({},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 Kr){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,Vn(()=>{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 n of t)this._setAttr(n.attributeName)}_resolveDef(){if(this._pendingResolve)return this._pendingResolve;for(let o=0;o{this._resolved=!0,this._pendingResolve=void 0;const{props:r,styles:i}=o;let a;if(r&&!ee(r))for(const l in r){const c=r[l];(c===Number||c&&c.type===Number)&&(l in this._props&&(this._props[l]=As(this._props[l])),(a||(a=Object.create(null)))[Fe(l)]=!0)}this._numberProps=a,this._resolveProps(o),this.shadowRoot&&this._applyStyles(i),this._mount(o)},n=this._def.__asyncLoader;if(n)return this._pendingResolve=n().then(o=>{o.configureApp=this._def.configureApp,t(this._def=o,!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 n=this._instance&&this._instance.exposed;if(n)for(const o in n)he(this,o)||Object.defineProperty(this,o,{get:()=>ze(n[o])})}_resolveProps(t){const{props:n}=t,o=ee(n)?n:Object.keys(n||{});for(const s of Object.keys(this))s[0]!=="_"&&o.includes(s)&&this._setProp(s,this[s]);for(const s of o.map(Fe))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 n=this.hasAttribute(t);let o=n?this.getAttribute(t):pa;const s=Fe(t);n&&this._numberProps&&this._numberProps[s]&&(o=As(o)),this._setProp(s,o,!1,!0)}_getProp(t){return this._props[t]}_setProp(t,n,o=!0,s=!1){if(n!==this._props[t]&&(this._dirty=!0,n===pa?delete this._props[t]:(this._props[t]=n,t==="key"&&this._app&&(this._app._ceVNode.key=n)),s&&this._instance&&this._update(),o)){const r=this._ob;r&&(this._processMutations(r.takeRecords()),r.disconnect()),n===!0?this.setAttribute(tt(t),""):typeof n=="string"||typeof n=="number"?this.setAttribute(tt(t),n+""):n||this.removeAttribute(tt(t)),r&&r.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),yp(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const n=ve(this._def,Ce(t,this._props));return this._instance||(n.ce=o=>{this._instance=o,o.ce=this,o.isCE=!0;const s=(r,i)=>{this.dispatchEvent(new CustomEvent(r,_o(i[0])?Ce({detail:i},i[0]):{detail:i}))};o.emit=(r,...i)=>{s(r,i),tt(r)!==r&&s(tt(r),i)},this._setParent()}),n}_applyStyles(t,n,o){if(!t)return;if(n){if(n===this._def||this._styleChildren.has(n))return;this._styleChildren.add(n)}const s=this._nonce,r=this.shadowRoot,i=o?this._getStyleAnchor(o)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(r);let a=null;for(let l=t.length-1;l>=0;l--){const c=document.createElement("style");s&&c.setAttribute("nonce",s),c.textContent=t[l],r.insertBefore(c,a||i),a=c,l===0&&(o||this._styleAnchors.set(this._def,c),n&&this._styleAnchors.set(n,c))}}_getStyleAnchor(t){if(!t)return null;const n=this._styleAnchors.get(t);return n&&n.parentNode===this.shadowRoot?n:(n&&this._styleAnchors.delete(t),null)}_getRootStyleInsertionAnchor(t){for(let n=0;ne.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>gp.some(n=>e[`${n}Key`]&&!t.includes(n))},_p=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),o=t.join(".");return n[o]||(n[o]=(s,...r)=>{for(let i=0;i{fa().render(...e)},ha=(...e)=>{const t=fa().createApp(...e),{mount:n}=t;return t.mount=o=>{const s=wp(o);if(!s)return;const r=t._component;!oe(r)&&!r.render&&!r.template&&(r.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,vp(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t};function vp(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function wp(e){return be(e)?document.querySelector(e):e}/*! +**/let Hr;const ti=typeof window<"u"&&window.trustedTypes;if(ti)try{Hr=ti.createPolicy("vue",{createHTML:e=>e})}catch{}const ni=Hr?e=>Hr.createHTML(e):e=>e,Yu="http://www.w3.org/2000/svg",Vu="http://www.w3.org/1998/Math/MathML",Pt=typeof document<"u"?document:null,oi=Pt&&Pt.createElement("template"),Hu={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,o)=>{const s=t==="svg"?Pt.createElementNS(Yu,e):t==="mathml"?Pt.createElementNS(Vu,e):n?Pt.createElement(e,{is:n}):Pt.createElement(e);return e==="select"&&o&&o.multiple!=null&&s.setAttribute("multiple",o.multiple),s},createText:e=>Pt.createTextNode(e),createComment:e=>Pt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Pt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,o,s,r){const a=n?n.previousSibling:t.lastChild;if(s&&(s===r||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===r||!(s=s.nextSibling)););else{oi.innerHTML=ni(o==="svg"?`${e}`:o==="mathml"?`${e}`:e);const i=oi.content;if(o==="svg"||o==="mathml"){const l=i.firstChild;for(;l.firstChild;)i.appendChild(l.firstChild);i.removeChild(l)}t.insertBefore(i,n)}return[a?a.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},qu=Symbol("_vtc");function zu(e,t,n){const o=e[qu];o&&(t=(t?[t,...o]:[...o]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Ko=Symbol("_vod"),ri=Symbol("_vsh"),Ku={name:"show",beforeMount(e,{value:t},{transition:n}){e[Ko]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):ro(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:o}){!t!=!n&&(o?t?(o.beforeEnter(e),ro(e,!0),o.enter(e)):o.leave(e,()=>{ro(e,!1)}):ro(e,t))},beforeUnmount(e,{value:t}){ro(e,t)}};function ro(e,t){e.style.display=t?e[Ko]:"none",e[ri]=!t}const Xu=Symbol(""),Ju=/(?:^|;)\s*display\s*:/;function Zu(e,t,n){const o=e.style,s=be(n);let r=!1;if(n&&!s){if(t)if(be(t))for(const a of t.split(";")){const i=a.slice(0,a.indexOf(":")).trim();n[i]==null&&so(o,i,"")}else for(const a in t)n[a]==null&&so(o,a,"");for(const a in n){a==="display"&&(r=!0);const i=n[a];i!=null?ep(e,a,!be(t)&&t?t[a]:void 0,i)||so(o,a,i):so(o,a,"")}}else if(s){if(t!==n){const a=o[Xu];a&&(n+=";"+a),o.cssText=n,r=Ju.test(n)}}else t&&e.removeAttribute("style");Ko in e&&(e[Ko]=r?o.display:"",e[ri]&&(o.display="none"))}const Xo=/\s*!important$/;function so(e,t,n){if(ee(n))n.forEach(o=>so(e,t,o));else if(n==null&&(n=""),t.startsWith("--"))Xo.test(n)?e.setProperty(t,n.replace(Xo,""),"important"):e.setProperty(t,n);else{const o=Qu(e,t);Xo.test(n)?e.setProperty(tt(o),n.replace(Xo,""),"important"):e[o]=n}}const si=["Webkit","Moz","ms"],qr={};function Qu(e,t){const n=qr[t];if(n)return n;let o=Fe(t);if(o!=="filter"&&o in e)return qr[t]=o;o=vo(o);for(let s=0;szr||(ip.then(()=>zr=0),zr=Date.now());function cp(e,t){const n=o=>{if(!o._vts)o._vts=Date.now();else if(o._vts<=n.attached)return;const s=n.value;if(ee(s)){const r=o.stopImmediatePropagation;o.stopImmediatePropagation=()=>{r.call(o),o._stopped=!0};const a=s.slice(),i=[o];for(let l=0;le.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,up=(e,t,n,o,s,r)=>{const a=s==="svg";t==="class"?zu(e,o,a):t==="style"?Zu(e,n,o):ho(t)?go(t)||op(e,t,n,o,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):pp(e,t,o,a))?(li(e,t,o),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&ii(e,t,o,a,r,t!=="value")):e._isVueCE&&(dp(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!be(o)))?li(e,Fe(t),o,r,t):(t==="true-value"?e._trueValue=o:t==="false-value"&&(e._falseValue=o),ii(e,t,o,a))};function pp(e,t,n,o){if(o)return!!(t==="innerHTML"||t==="textContent"||t in e&&ui(t)&&oe(n));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 ui(t)&&be(n)?!1:t in e}function dp(e,t){const n=e._def.props;if(!n)return!1;const o=Fe(t);return Array.isArray(n)?n.some(s=>Fe(s)===o):Object.keys(n).some(s=>Fe(s)===o)}const pi={};function fp(e,t,n){let o=zn(e,t);_o(o)&&(o=Ce({},o,t));class s extends Kr{constructor(a){super(o,a,n)}}return s.def=o,s}const hp=typeof HTMLElement<"u"?HTMLElement:class{};class Kr extends hp{constructor(t,n={},o=hi){super(),this._def=t,this._props=n,this._createApp=o,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&&o!==hi?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(Ce({},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 Kr){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,Vn(()=>{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 n of t)this._setAttr(n.attributeName)}_resolveDef(){if(this._pendingResolve)return this._pendingResolve;for(let o=0;o{this._resolved=!0,this._pendingResolve=void 0;const{props:r,styles:a}=o;let i;if(r&&!ee(r))for(const l in r){const c=r[l];(c===Number||c&&c.type===Number)&&(l in this._props&&(this._props[l]=As(this._props[l])),(i||(i=Object.create(null)))[Fe(l)]=!0)}this._numberProps=i,this._resolveProps(o),this.shadowRoot&&this._applyStyles(a),this._mount(o)},n=this._def.__asyncLoader;if(n)return this._pendingResolve=n().then(o=>{o.configureApp=this._def.configureApp,t(this._def=o,!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 n=this._instance&&this._instance.exposed;if(n)for(const o in n)he(this,o)||Object.defineProperty(this,o,{get:()=>ze(n[o])})}_resolveProps(t){const{props:n}=t,o=ee(n)?n:Object.keys(n||{});for(const s of Object.keys(this))s[0]!=="_"&&o.includes(s)&&this._setProp(s,this[s]);for(const s of o.map(Fe))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 n=this.hasAttribute(t);let o=n?this.getAttribute(t):pi;const s=Fe(t);n&&this._numberProps&&this._numberProps[s]&&(o=As(o)),this._setProp(s,o,!1,!0)}_getProp(t){return this._props[t]}_setProp(t,n,o=!0,s=!1){if(n!==this._props[t]&&(this._dirty=!0,n===pi?delete this._props[t]:(this._props[t]=n,t==="key"&&this._app&&(this._app._ceVNode.key=n)),s&&this._instance&&this._update(),o)){const r=this._ob;r&&(this._processMutations(r.takeRecords()),r.disconnect()),n===!0?this.setAttribute(tt(t),""):typeof n=="string"||typeof n=="number"?this.setAttribute(tt(t),n+""):n||this.removeAttribute(tt(t)),r&&r.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),yp(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const n=ve(this._def,Ce(t,this._props));return this._instance||(n.ce=o=>{this._instance=o,o.ce=this,o.isCE=!0;const s=(r,a)=>{this.dispatchEvent(new CustomEvent(r,_o(a[0])?Ce({detail:a},a[0]):{detail:a}))};o.emit=(r,...a)=>{s(r,a),tt(r)!==r&&s(tt(r),a)},this._setParent()}),n}_applyStyles(t,n,o){if(!t)return;if(n){if(n===this._def||this._styleChildren.has(n))return;this._styleChildren.add(n)}const s=this._nonce,r=this.shadowRoot,a=o?this._getStyleAnchor(o)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(r);let i=null;for(let l=t.length-1;l>=0;l--){const c=document.createElement("style");s&&c.setAttribute("nonce",s),c.textContent=t[l],r.insertBefore(c,i||a),i=c,l===0&&(o||this._styleAnchors.set(this._def,c),n&&this._styleAnchors.set(n,c))}}_getStyleAnchor(t){if(!t)return null;const n=this._styleAnchors.get(t);return n&&n.parentNode===this.shadowRoot?n:(n&&this._styleAnchors.delete(t),null)}_getRootStyleInsertionAnchor(t){for(let n=0;ne.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>gp.some(n=>e[`${n}Key`]&&!t.includes(n))},_p=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),o=t.join(".");return n[o]||(n[o]=(s,...r)=>{for(let a=0;a{fi().render(...e)},hi=(...e)=>{const t=fi().createApp(...e),{mount:n}=t;return t.mount=o=>{const s=wp(o);if(!s)return;const r=t._component;!oe(r)&&!r.render&&!r.template&&(r.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const a=n(s,!1,vp(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),a},t};function vp(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function wp(e){return be(e)?document.querySelector(e):e}/*! * pinia v2.3.1 * (c) 2025 Eduardo San Martin Morote * @license MIT - */let ga;const Jo=e=>ga=e,ma=Symbol();function Xr(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var io;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(io||(io={}));function kp(){const e=hr(!0),t=e.run(()=>re({}));let n=[],o=[];const s=vn({install(r){Jo(s),s._a=r,r.provide(ma,s),r.config.globalProperties.$pinia=s,o.forEach(i=>n.push(i)),o=[]},use(r){return this._a?n.push(r):o.push(r),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const _a=()=>{};function ba(e,t,n,o=_a){e.push(t);const s=()=>{const r=e.indexOf(t);r>-1&&(e.splice(r,1),o())};return!n&&Fs()&&Zl(s),s}function En(e,...t){e.slice().forEach(n=>{n(...t)})}const $p=e=>e(),ya=Symbol(),Jr=Symbol();function Zr(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,o)=>e.set(o,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const o=t[n],s=e[n];Xr(s)&&Xr(o)&&e.hasOwnProperty(n)&&!Ne(o)&&!Tt(o)?e[n]=Zr(s,o):e[n]=o}return e}const Op=Symbol();function Np(e){return!Xr(e)||!e.hasOwnProperty(Op)}const{assign:zt}=Object;function Cp(e){return!!(Ne(e)&&e.effect)}function Ap(e,t,n,o){const{state:s,actions:r,getters:i}=t,a=n.state.value[e];let l;function c(){a||(n.state.value[e]=s?s():{});const u=vc(n.state.value[e]);return zt(u,r,Object.keys(i||{}).reduce((f,h)=>(f[h]=vn(ie(()=>{Jo(n);const m=n._s.get(e);return i[h].call(m,m)})),f),{}))}return l=va(e,c,t,n,o,!0),l}function va(e,t,n={},o,s,r){let i;const a=zt({actions:{}},n),l={deep:!0};let c,u,f=[],h=[],m;const w=o.state.value[e];!r&&!w&&(o.state.value[e]={});let k;function A(I){let N;c=u=!1,typeof I=="function"?(I(o.state.value[e]),N={type:io.patchFunction,storeId:e,events:m}):(Zr(o.state.value[e],I),N={type:io.patchObject,payload:I,storeId:e,events:m});const R=k=Symbol();Vn().then(()=>{k===R&&(c=!0)}),u=!0,En(f,N,o.state.value[e])}const O=r?function(){const{state:N}=n,R=N?N():{};this.$patch(j=>{zt(j,R)})}:_a;function C(){i.stop(),f=[],h=[],o._s.delete(e)}const _=(I,N="")=>{if(ya in I)return I[Jr]=N,I;const R=function(){Jo(o);const j=Array.from(arguments),K=[],ne=[];function ue(X){K.push(X)}function z(X){ne.push(X)}En(h,{args:j,name:R[Jr],store:v,after:ue,onError:z});let W;try{W=I.apply(this&&this.$id===e?this:v,j)}catch(X){throw En(ne,X),X}return W instanceof Promise?W.then(X=>(En(K,X),X)).catch(X=>(En(ne,X),Promise.reject(X))):(En(K,W),W)};return R[ya]=!0,R[Jr]=N,R},b={_p:o,$id:e,$onAction:ba.bind(null,h),$patch:A,$reset:O,$subscribe(I,N={}){const R=ba(f,I,N.detached,()=>j()),j=i.run(()=>lt(()=>o.state.value[e],K=>{(N.flush==="sync"?u:c)&&I({storeId:e,type:io.direct,events:m},K)},zt({},l,N)));return R},$dispose:C},v=Eo(b);o._s.set(e,v);const L=(o._a&&o._a.runWithContext||$p)(()=>o._e.run(()=>(i=hr()).run(()=>t({action:_}))));for(const I in L){const N=L[I];if(Ne(N)&&!Cp(N)||Tt(N))r||(w&&Np(N)&&(Ne(N)?N.value=w[I]:Zr(N,w[I])),o.state.value[e][I]=N);else if(typeof N=="function"){const R=_(N,I);L[I]=R,a.actions[I]=N}}return zt(v,L),zt(pe(v),L),Object.defineProperty(v,"$state",{get:()=>o.state.value[e],set:I=>{A(N=>{zt(N,I)})}}),o._p.forEach(I=>{zt(v,i.run(()=>I({store:v,app:o._a,pinia:o,options:a})))}),w&&r&&n.hydrate&&n.hydrate(v.$state,w),c=!0,u=!0,v}/*! #__NO_SIDE_EFFECTS__ */function Qr(e,t,n){let o,s;const r=typeof t=="function";typeof e=="string"?(o=e,s=r?n:t):(s=e,o=e.id);function i(a,l){const c=Mc();return a=a||(c?De(ma,null):null),a&&Jo(a),a=ga,a._s.has(o)||(r?va(o,t,s,a):Ap(o,s,a)),a._s.get(o)}return i.$id=o,i}const Ep={backToLegend:"العودة إلى المفتاح",closeDetailView:"إغلاق عرض التفاصيل"},Tp={prayForThem:"صلِّ من أجلهم",adoptThem:"تبنَّهم",moreInfo:"مزيد من المعلومات",zoomIn:"تكبير",zoomOut:"تصغير",switchToLightMode:"التبديل إلى الوضع الفاتح",switchToDarkMode:"التبديل إلى الوضع الداكن",resetView:"إعادة تعيين العرض",toggleFullscreen:"تبديل ملء الشاشة",aboutThisMap:"حول هذه الخريطة",closeMenu:"إغلاق القائمة",reloadMap:"إعادة تحميل الخريطة",showClusters:"إظهار المجموعات",clusterSettings:"إعدادات المجموعات",startAutoFly:"بدء الطيران التلقائي",stopFlight:"إيقاف الطيران",speedLabel:"السرعة:",speedOption:{slow:"بطيء",normal:"عادي",fast:"سريع"},shareEmbed:"مشاركة وتضمين"},Lp={labels:{country:"الدولة:",population:"السكان:",language:"اللغة:",religion:"الديانة:",languageFamily:"العائلة اللغوية:",peopleCommitted:"ملتزمون بالصلاة:"},messages:{noDescription:"لا يوجد وصف متاح."}},Sp={title:{prayer:"تقدم الصلاة",engagement:"تقدم الانخراط",adoption:"تقدم التبني",languageFamilies:"العائلات اللغوية",doxaRegions:"مناطق Doxa",affinityBlocs:"كتل القرابة",gospelResources:"موارد الإنجيل"},header:{collapsed:"وسيلة الإيضاح",peopleGroupFallback:"مجموعة الشعب"},prayer:{needsPrayer:"يحتاج إلى صلاة",hasPrayer:"لديه صلاة",fullPrayerCoverage:"تغطية صلاة كاملة"},progress:{title:"التقدم",covered:"{covered} من {total} مجموعة شعبية مغطاة بالصلاة · {pct}%",short:"{covered} من {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"يحتاج إلى انخراط",hasEngagement:"لديه انخراط"},adoption:{needsAdoption:"يحتاج إلى تبني",hasAdoption:"لديه تبني"},columns:{upgs:"UUPGs",population:"السكان",name:"الاسم"},footer:{total:"الإجمالي"},sortByUpgs:"ترتيب حسب UUPG",sortByPop:"ترتيب حسب السكان",colLabel:{religion:"ديانات UUPG",prayer:"حالة الصلاة",engagement:"حالة المشاركة",adoption:"حالة التبني",status:"الحالة"},titleBar:{legend:"مفتاح الخريطة",peopleGroups:"الشعوب",wagfRegions:"مناطق WAGF",languages:"اللغات"}},Ip={menuComingSoon:"القائمة قادمة قريباً"},xp={clusterByRegion:"حسب منطقة Doxa",clusterByLanguageFamily:"حسب العائلة اللغوية",clusterByGospelResource:"حسب مورد الإنجيل"},Fp={header:"دورة الصلاة الحالية",lap:"الدورة",upgs:"UUPGs",separator:" من "},Mp={placeholder:"شعب، مكان، لغة، ديانة",labels:{people:"الشعب:",place:"المكان:",language:"اللغة:",religion:"الديانة:"},kinds:{people:"الشعب + الدولة",peopleGroup:"الشعب",bloc:"كتلة التقارب",cluster:"مجموعة شعوب",country:"الدولة",region:"المنطقة",family:"عائلة اللغة",languageKind:"اللغة",dialect:"اللهجة",religionKind:"الدين"}},Pp={prayer:"الصلاة",adoption:"التبني",engagement:"المشاركة","affinity-blocks":"الشعوب",regions:"المناطق",countries:"الدول","language-families":"اللغات",religion:"الأديان",family:"عائلة اللغة",language:"اللغة",dialect:"اللهجة/التنوع",bloc:"كتلة التقارب",cluster:"المجموعة",group:"الشعب",pgic:"الشعب في الدولة",region:"منطقة WAGF",block:"كتلة WAGF",country:"الدولة"},Bp={backToLegend:"Zurück zur Legende",closeDetailView:"Detailansicht schließen"},Dp={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"},Rp={labels:{country:"Land:",population:"Bevölkerung:",language:"Sprache:",religion:"Religion:",languageFamily:"Sprachfamilie:",peopleCommitted:"Zum Gebet verpflichtet:"},messages:{noDescription:"Keine Beschreibung verfügbar."}},Wp={title:{prayer:"Gebetsfortschritt",engagement:"Engagement-Fortschritt",adoption:"Adoptionsfortschritt",languageFamilies:"Sprachfamilien",doxaRegions:"Doxa-Regionen",affinityBlocs:"Affinitätsblöcke",gospelResources:"Evangeliumsressourcen"},header:{collapsed:"Legende",peopleGroupFallback:"Volksgruppe"},prayer:{needsPrayer:"Braucht Gebet",hasPrayer:"Hat Gebet",fullPrayerCoverage:"Vollständige Gebetsabdeckung"},progress:{title:"Fortschritt",covered:"{covered} von {total} Volksgruppen im Gebet abgedeckt · {pct}%",short:"{covered} von {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Braucht Engagement",hasEngagement:"Hat Engagement"},adoption:{needsAdoption:"Braucht Adoption",hasAdoption:"Hat Adoption"},columns:{upgs:"UUPGs",population:"Bevölkerung"},footer:{total:"Gesamt"}},Up={menuComingSoon:"Menü folgt in Kürze"},jp={clusterByRegion:"Nach Doxa-Region",clusterByLanguageFamily:"Nach Sprachfamilie",clusterByGospelResource:"Nach Evangeliumsressource"},Gp={header:"AKTUELLE GEBETSRUNDE",lap:"Runde",upgs:"UUPGs",separator:" von "},Yp={placeholder:"Volk, Ort, Sprache, Religion",labels:{people:"Volk:",place:"Ort:",language:"Sprache:",religion:"Religion:"},sections:{within:"Innerhalb {selection}",allData:"Alle DOXA-Daten"}},Vp={prayer:"Gebet",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"Volksgruppen",regions:"Regionen",countries:"Länder","language-families":"Sprachen",religion:"Religionen",family:"Sprachfamilie",language:"Sprache",dialect:"Dialekt/Varietät",bloc:"Affinitätsblock",cluster:"Cluster",group:"Volksgruppe",pgic:"Volksgruppe im Land",region:"WAGF-Region",block:"WAGF-Block",country:"Land"},Hp={backToLegend:"Back to Legend",closeDetailView:"Close detail view"},qp={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"},zp={labels:{country:"Country:",population:"Population:",language:"Language:",religion:"Religion:",languageFamily:"Language Family:",peopleCommitted:"Committed to pray:"},messages:{noDescription:"No description available."}},Kp={title:{prayer:"Prayer Progress",engagement:"Engagement Progress",adoption:"Adoption Progress",languageFamilies:"Language Families",doxaRegions:"Doxa Regions",affinityBlocs:"Affinity Blocks",gospelResources:"Gospel Resources"},header:{default:"Legend",collapsed:"Legend",peopleGroupFallback:"People Group"},prayer:{needsPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayerCoverage:"Full Prayer Coverage"},progress:{title:"Progress",covered:"{covered} of {total} people groups covered in prayer · {pct}%",short:"{covered} of {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Unengaged",hasEngagement:"Engaged"},adoption:{needsAdoption:"Needs Adoption",hasAdoption:"Has Adoption"},columns:{upgs:"UUPGs",population:"Population",name:"Name"},footer:{total:"Total"},sortByUpgs:"Sort by UUPGs",sortByPop:"Sort by Population",colLabel:{religion:"UUPG Religions",prayer:"Prayer Status",engagement:"Engagement Status",adoption:"Adoption Status",status:"Status"},titleBar:{legend:"Legend",peopleGroups:"People Groups",wagfRegions:"WAGF Regions",languages:"Languages"}},Xp={menuComingSoon:"Menu coming soon"},Jp={clusterByRegion:"By Doxa Region",clusterByLanguageFamily:"By Language Family",clusterByGospelResource:"By Gospel Resource"},Zp={country:{wagfRegion:"WAGF Region",wagfBlock:"WAGF Bloc",country:"Country",uupgCount:"UUPG Count"}},Qp={header:"CURRENT PRAYER LAP",lap:"Lap",upgs:"UUPGs",separator:" of "},ed={placeholder:"People, place, language, religion",labels:{people:"People:",place:"Place:",language:"Language:",religion:"Religion:"},kinds:{people:"People Group + Country",peopleGroup:"People Group",bloc:"Affinity Block",cluster:"People Cluster",country:"Country",region:"Region",family:"Language Family",languageKind:"Language",dialect:"Dialect",religionKind:"Religion"},sections:{within:"Within {selection}",allData:"All DOXA Data"}},td={prayer:"Prayer",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"People Groups (Affinity)",regions:"Regions",countries:"Countries","language-families":"Languages",religion:"Religions",family:"Lang Family",language:"Language",dialect:"Dialect/Variety",bloc:"Affinity Block",cluster:"Cluster",group:"People Group",pgic:"PG in Country",region:"WAGF Region",block:"WAGF Bloc",country:"Country"},nd={backToLegend:"Volver a la leyenda",closeDetailView:"Cerrar vista de detalle"},od={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"},rd={labels:{country:"País:",population:"Población:",language:"Idioma:",religion:"Religión:",languageFamily:"Familia lingüística:",peopleCommitted:"Comprometidos a orar:"},messages:{noDescription:"No hay descripción disponible."}},sd={title:{prayer:"Progreso de oración",engagement:"Progreso de implicación",adoption:"Progreso de adopción",languageFamilies:"Familias lingüísticas",doxaRegions:"Regiones Doxa",affinityBlocs:"Bloques de afinidad",gospelResources:"Recursos del Evangelio"},header:{collapsed:"Leyenda",peopleGroupFallback:"Grupo de personas"},prayer:{needsPrayer:"Necesita oración",hasPrayer:"Tiene oración",fullPrayerCoverage:"Cobertura de oración completa"},progress:{title:"Progreso",covered:"{covered} de {total} grupos de personas cubiertos en oración · {pct}%",short:"{covered} de {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necesita implicación",hasEngagement:"Tiene implicación"},adoption:{needsAdoption:"Necesita adopción",hasAdoption:"Tiene adopción"},columns:{upgs:"UUPGs",population:"Población",name:"Nombre"},footer:{total:"Total"},sortByUpgs:"Ordenar por UUPG",sortByPop:"Ordenar por población",colLabel:{religion:"Religiones UUPG",prayer:"Estado de oración",engagement:"Estado de compromiso",adoption:"Estado de adopción",status:"Estado"},titleBar:{legend:"Leyenda",peopleGroups:"Pueblos",wagfRegions:"Regiones WAGF",languages:"Idiomas"}},id={menuComingSoon:"Menú próximamente"},ad={clusterByRegion:"Por región Doxa",clusterByLanguageFamily:"Por familia lingüística",clusterByGospelResource:"Por recurso del Evangelio"},ld={header:"VUELTA DE ORACIÓN ACTUAL",lap:"Vuelta",upgs:"UUPGs",separator:" de "},cd={placeholder:"Pueblo, lugar, idioma, religión",labels:{people:"Pueblo:",place:"Lugar:",language:"Idioma:",religion:"Religión:"},kinds:{people:"Pueblo + país",peopleGroup:"Pueblo",bloc:"Bloque de afinidad",cluster:"Clúster de pueblos",country:"País",region:"Región",family:"Familia lingüística",languageKind:"Idioma",dialect:"Dialecto",religionKind:"Religión"}},ud={prayer:"Oración",adoption:"Adopción",engagement:"Compromiso","affinity-blocks":"Pueblos",regions:"Regiones",countries:"Países","language-families":"Idiomas",religion:"Religiones",family:"Familia lingüística",language:"Idioma",dialect:"Dialecto/Variedad",bloc:"Bloque de afinidad",cluster:"Clúster",group:"Pueblo",pgic:"Pueblo en país",region:"Región WAGF",block:"Bloque WAGF",country:"País"},pd={backToLegend:"Retour à la légende",closeDetailView:"Fermer la vue détaillée"},dd={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"},fd={labels:{country:"Pays :",population:"Population :",language:"Langue :",religion:"Religion :",languageFamily:"Famille de langues :",peopleCommitted:"Engagés à prier :"},messages:{noDescription:"Aucune description disponible."}},hd={title:{prayer:"Progression de la prière",engagement:"Progression de l'engagement",adoption:"Progression de l'adoption",languageFamilies:"Familles de langues",doxaRegions:"Régions Doxa",affinityBlocs:"Blocs d'affinité",gospelResources:"Ressources de l'Évangile"},header:{collapsed:"Légende",peopleGroupFallback:"Groupe de personnes"},prayer:{needsPrayer:"Besoin de prière",hasPrayer:"Prière en cours",fullPrayerCoverage:"Couverture de prière complète"},progress:{title:"Progression",covered:"{covered} sur {total} groupes de personnes couverts par la prière · {pct}%",short:"{covered} sur {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Besoin d'engagement",hasEngagement:"Engagement en cours"},adoption:{needsAdoption:"Besoin d'adoption",hasAdoption:"Adoption en cours"},columns:{upgs:"UUPGs",population:"Population",name:"Nom"},footer:{total:"Total"},sortByUpgs:"Trier par UUPG",sortByPop:"Trier par population",colLabel:{religion:"Religions UUPG",prayer:"Statut de prière",engagement:"Statut d'engagement",adoption:"Statut d'adoption",status:"Statut"},titleBar:{legend:"Légende",peopleGroups:"Peuples",wagfRegions:"Régions WAGF",languages:"Langues"}},gd={menuComingSoon:"Menu bientôt disponible"},md={clusterByRegion:"Par région Doxa",clusterByLanguageFamily:"Par famille de langues",clusterByGospelResource:"Par ressource de l'Évangile"},_d={country:{wagfRegion:"Région WAGF",wagfBlock:"Bloc WAGF",country:"Pays",uupgCount:"Nombre d'UUPG"}},bd={header:"TOUR DE PRIÈRE ACTUEL",lap:"Tour",upgs:"UUPGs",separator:" sur "},yd={placeholder:"Peuple, lieu, langue, religion",labels:{people:"Peuple :",place:"Lieu :",language:"Langue :",religion:"Religion :"},kinds:{people:"Peuple + pays",peopleGroup:"Peuple",bloc:"Bloc d'affinité",cluster:"Grappe de peuples",country:"Pays",region:"Région",family:"Famille linguistique",languageKind:"Langue",dialect:"Dialecte",religionKind:"Religion"}},vd={prayer:"Prière",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"Peuples",regions:"Régions",countries:"Pays","language-families":"Langues",religion:"Religions",family:"Famille linguistique",language:"Langue",dialect:"Dialecte/Variété",bloc:"Bloc d'affinité",cluster:"Grappe",group:"Peuple",pgic:"Peuple dans le pays",region:"Région WAGF",block:"Bloc WAGF",country:"Pays"},wd={backToLegend:"लेजेंड पर वापस जाएं",closeDetailView:"विवरण दृश्य बंद करें"},kd={prayForThem:"उनके लिए प्रार्थना करें",adoptThem:"उन्हें गोद लें",moreInfo:"अधिक जानकारी",zoomIn:"ज़ूम इन",zoomOut:"ज़ूम आउट",switchToLightMode:"लाइट मोड पर जाएं",switchToDarkMode:"डार्क मोड पर जाएं",resetView:"दृश्य रीसेट करें",toggleFullscreen:"फ़ुलस्क्रीन टॉगल करें",aboutThisMap:"इस मानचित्र के बारे में",closeMenu:"मेनू बंद करें",reloadMap:"मानचित्र पुनः लोड करें",showClusters:"क्लस्टर दिखाएं",clusterSettings:"क्लस्टर सेटिंग्स",startAutoFly:"ऑटो फ्लाई शुरू करें",stopFlight:"उड़ान रोकें",speedLabel:"गति:",speedOption:{slow:"धीमी",normal:"सामान्य",fast:"तेज़"},shareEmbed:"साझा करें और एम्बेड करें"},$d={labels:{country:"देश:",population:"जनसंख्या:",language:"भाषा:",religion:"धर्म:",languageFamily:"भाषा परिवार:",peopleCommitted:"प्रार्थना के लिए प्रतिबद्ध:"},messages:{noDescription:"कोई विवरण उपलब्ध नहीं है।"}},Od={title:{prayer:"प्रार्थना प्रगति",engagement:"सहभागिता प्रगति",adoption:"गोद लेने की प्रगति",languageFamilies:"भाषा परिवार",doxaRegions:"Doxa क्षेत्र",affinityBlocs:"समानता समूह",gospelResources:"सुसमाचार संसाधन"},header:{collapsed:"किंवदंती",peopleGroupFallback:"जनजाति समूह"},prayer:{needsPrayer:"प्रार्थना चाहिए",hasPrayer:"प्रार्थना है",fullPrayerCoverage:"पूर्ण प्रार्थना कवरेज"},progress:{title:"प्रगति",covered:"{total} में से {covered} जनजाति समूह प्रार्थना में कवर · {pct}%",short:"{total} में से {covered} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"सहभागिता चाहिए",hasEngagement:"सहभागिता है"},adoption:{needsAdoption:"गोद लेना चाहिए",hasAdoption:"गोद लिया गया"},columns:{upgs:"UUPGs",population:"जनसंख्या"},footer:{total:"कुल"}},Nd={menuComingSoon:"मेनू शीघ्र आ रहा है"},Cd={clusterByRegion:"Doxa क्षेत्र के अनुसार",clusterByLanguageFamily:"भाषा परिवार के अनुसार",clusterByGospelResource:"सुसमाचार संसाधन के अनुसार"},Ad={header:"वर्तमान प्रार्थना चक्र",lap:"चक्र",upgs:"UUPGs",separator:" में से "},Ed={placeholder:"लोग, स्थान, भाषा, धर्म",labels:{people:"लोग:",place:"स्थान:",language:"भाषा:",religion:"धर्म:"}},Td={backToLegend:"Torna alla legenda",closeDetailView:"Chiudi vista dettaglio"},Ld={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"},Sd={labels:{country:"Paese:",population:"Popolazione:",language:"Lingua:",religion:"Religione:",languageFamily:"Famiglia linguistica:",peopleCommitted:"Impegnati a pregare:"},messages:{noDescription:"Nessuna descrizione disponibile."}},Id={title:{prayer:"Avanzamento della preghiera",engagement:"Avanzamento dell'impegno",adoption:"Avanzamento dell'adozione",languageFamilies:"Famiglie linguistiche",doxaRegions:"Regioni Doxa",affinityBlocs:"Blocchi di affinità",gospelResources:"Risorse del Vangelo"},header:{collapsed:"Legenda",peopleGroupFallback:"Gruppo di persone"},prayer:{needsPrayer:"Necessita preghiera",hasPrayer:"Ha preghiera",fullPrayerCoverage:"Copertura di preghiera completa"},progress:{title:"Avanzamento",covered:"{covered} di {total} gruppi di persone coperti dalla preghiera · {pct}%",short:"{covered} di {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necessita impegno",hasEngagement:"Ha impegno"},adoption:{needsAdoption:"Necessita adozione",hasAdoption:"Ha adozione"},columns:{upgs:"UUPGs",population:"Popolazione"},footer:{total:"Totale"}},xd={menuComingSoon:"Menu in arrivo"},Fd={clusterByRegion:"Per regione Doxa",clusterByLanguageFamily:"Per famiglia linguistica",clusterByGospelResource:"Per risorsa del Vangelo"},Md={header:"GIRO DI PREGHIERA ATTUALE",lap:"Giro",upgs:"UUPGs",separator:" di "},Pd={placeholder:"Popolo, luogo, lingua, religione",labels:{people:"Popolo:",place:"Luogo:",language:"Lingua:",religion:"Religione:"}},Bd={backToLegend:"Voltar à legenda",closeDetailView:"Fechar vista de detalhe"},Dd={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"},Rd={labels:{country:"País:",population:"População:",language:"Língua:",religion:"Religião:",languageFamily:"Família linguística:",peopleCommitted:"Comprometidos a orar:"},messages:{noDescription:"Sem descrição disponível."}},Wd={title:{prayer:"Progresso da oração",engagement:"Progresso do envolvimento",adoption:"Progresso da adoção",languageFamilies:"Famílias linguísticas",doxaRegions:"Regiões Doxa",affinityBlocs:"Blocos de afinidade",gospelResources:"Recursos do Evangelho"},header:{collapsed:"Legenda",peopleGroupFallback:"Grupo de pessoas"},prayer:{needsPrayer:"Precisa de oração",hasPrayer:"Tem oração",fullPrayerCoverage:"Cobertura de oração completa"},progress:{title:"Progresso",covered:"{covered} de {total} grupos de pessoas cobertos em oração · {pct}%",short:"{covered} de {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Precisa de envolvimento",hasEngagement:"Tem envolvimento"},adoption:{needsAdoption:"Precisa de adoção",hasAdoption:"Tem adoção"},columns:{upgs:"UUPGs",population:"População",name:"Nome"},footer:{total:"Total"},sortByUpgs:"Ordenar por UUPG",sortByPop:"Ordenar por população",colLabel:{religion:"Religiões UUPG",prayer:"Status de oração",engagement:"Status de engajamento",adoption:"Status de adoção",status:"Status"},titleBar:{legend:"Legenda",peopleGroups:"Povos",wagfRegions:"Regiões WAGF",languages:"Idiomas"}},Ud={menuComingSoon:"Menu em breve"},jd={clusterByRegion:"Por região Doxa",clusterByLanguageFamily:"Por família linguística",clusterByGospelResource:"Por recurso do Evangelho"},Gd={header:"VOLTA DE ORAÇÃO ATUAL",lap:"Volta",upgs:"UUPGs",separator:" de "},Yd={placeholder:"Povo, local, língua, religião",labels:{people:"Povo:",place:"Local:",language:"Língua:",religion:"Religião:"},kinds:{people:"Povo + país",peopleGroup:"Povo",bloc:"Bloco de afinidade",cluster:"Agrupamento de povos",country:"País",region:"Região",family:"Família linguística",languageKind:"Idioma",dialect:"Dialeto",religionKind:"Religião"}},Vd={prayer:"Oração",adoption:"Adoção",engagement:"Engajamento","affinity-blocks":"Povos",regions:"Regiões",countries:"Países","language-families":"Idiomas",religion:"Religiões",family:"Família linguística",language:"Idioma",dialect:"Dialeto/Variedade",bloc:"Bloco de afinidade",cluster:"Agrupamento",group:"Povo",pgic:"Povo no país",region:"Região WAGF",block:"Bloco WAGF",country:"País"},Hd={backToLegend:"Înapoi la legendă",closeDetailView:"Închide vizualizarea detaliată"},qd={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ă"},zd={labels:{country:"Țară:",population:"Populație:",language:"Limbă:",religion:"Religie:",languageFamily:"Familie de limbi:",peopleCommitted:"Angajați să se roage:"},messages:{noDescription:"Nicio descriere disponibilă."}},Kd={title:{prayer:"Progresul rugăciunii",engagement:"Progresul implicării",adoption:"Progresul adopției",languageFamilies:"Familii de limbi",doxaRegions:"Regiuni Doxa",affinityBlocs:"Blocuri de afinitate",gospelResources:"Resurse ale Evangheliei"},header:{collapsed:"Legendă",peopleGroupFallback:"Grup de popoare"},prayer:{needsPrayer:"Necesită rugăciune",hasPrayer:"Are rugăciune",fullPrayerCoverage:"Acoperire completă de rugăciune"},progress:{title:"Progres",covered:"{covered} din {total} grupuri de popoare acoperite în rugăciune · {pct}%",short:"{covered} din {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necesită implicare",hasEngagement:"Are implicare"},adoption:{needsAdoption:"Necesită adopție",hasAdoption:"Are adopție"},columns:{upgs:"UUPGs",population:"Populație"},footer:{total:"Total"}},Xd={menuComingSoon:"Meniu în curând"},Jd={clusterByRegion:"După regiune Doxa",clusterByLanguageFamily:"După familia de limbi",clusterByGospelResource:"După resursa Evangheliei"},Zd={header:"TURUL DE RUGĂCIUNE CURENT",lap:"Tur",upgs:"UUPGs",separator:" din "},Qd={placeholder:"Popor, loc, limbă, religie",labels:{people:"Popor:",place:"Loc:",language:"Limbă:",religion:"Religie:"}},ef={backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид"},tf={prayForThem:"Молитесь о них",adoptThem:"Усыновите их",moreInfo:"Подробнее",zoomIn:"Приблизить",zoomOut:"Отдалить",switchToLightMode:"Переключить на светлый режим",switchToDarkMode:"Переключить на тёмный режим",resetView:"Сбросить вид",toggleFullscreen:"Полноэкранный режим",aboutThisMap:"Об этой карте",closeMenu:"Закрыть меню",reloadMap:"Перезагрузить карту",showClusters:"Показать кластеры",clusterSettings:"Настройки кластеров",startAutoFly:"Начать авто-полёт",stopFlight:"Остановить полёт",speedLabel:"Скорость:",speedOption:{slow:"Медленно",normal:"Нормально",fast:"Быстро"},shareEmbed:"Поделиться и встроить"},nf={labels:{country:"Страна:",population:"Население:",language:"Язык:",religion:"Религия:",languageFamily:"Языковая семья:",peopleCommitted:"Обязались молиться:"},messages:{noDescription:"Описание недоступно."}},of={title:{prayer:"Прогресс молитвы",engagement:"Прогресс вовлечённости",adoption:"Прогресс усыновления",languageFamilies:"Языковые семьи",doxaRegions:"Регионы Doxa",affinityBlocs:"Блоки родства",gospelResources:"Евангельские ресурсы"},header:{collapsed:"Условные обозначения",peopleGroupFallback:"Народная группа"},prayer:{needsPrayer:"Нуждается в молитве",hasPrayer:"Есть молитва",fullPrayerCoverage:"Полное молитвенное покрытие"},progress:{title:"Прогресс",covered:"{covered} из {total} народных групп охвачены молитвой · {pct}%",short:"{covered} из {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Нуждается в вовлечённости",hasEngagement:"Есть вовлечённость"},adoption:{needsAdoption:"Нуждается в усыновлении",hasAdoption:"Есть усыновление"},columns:{upgs:"UUPGs",population:"Население",name:"Название"},footer:{total:"Всего"},sortByUpgs:"Сортировать по UUPG",sortByPop:"Сортировать по населению",colLabel:{religion:"Религии UUPG",prayer:"Статус молитвы",engagement:"Статус вовлечённости",adoption:"Статус усыновления",status:"Статус"},titleBar:{legend:"Легенда",peopleGroups:"Народы",wagfRegions:"Регионы WAGF",languages:"Языки"}},rf={menuComingSoon:"Меню скоро появится"},sf={clusterByRegion:"По региону Doxa",clusterByLanguageFamily:"По языковой семье",clusterByGospelResource:"По евангельскому ресурсу"},af={header:"ТЕКУЩИЙ КРУГ МОЛИТВЫ",lap:"Круг",upgs:"UUPGs",separator:" из "},lf={placeholder:"Народ, место, язык, религия",labels:{people:"Народ:",place:"Место:",language:"Язык:",religion:"Религия:"},kinds:{people:"Народ + страна",peopleGroup:"Народ",bloc:"Блок родства",cluster:"Кластер народов",country:"Страна",region:"Регион",family:"Языковая семья",languageKind:"Язык",dialect:"Диалект",religionKind:"Религия"}},cf={prayer:"Молитва",adoption:"Усыновление",engagement:"Вовлечённость","affinity-blocks":"Народы",regions:"Регионы",countries:"Страны","language-families":"Языки",religion:"Религии",family:"Языковая семья",language:"Язык",dialect:"Диалект/вариант",bloc:"Блок родства",cluster:"Кластер",group:"Народ",pgic:"Народ в стране",region:"Регион WAGF",block:"Блок WAGF",country:"Страна"},uf={backToLegend:"返回图例",closeDetailView:"关闭详情视图"},pf={prayForThem:"为他们祷告",adoptThem:"认领他们",moreInfo:"更多信息",zoomIn:"放大",zoomOut:"缩小",switchToLightMode:"切换至浅色模式",switchToDarkMode:"切换至深色模式",resetView:"重置视图",toggleFullscreen:"切换全屏",aboutThisMap:"关于此地图",closeMenu:"关闭菜单",reloadMap:"重新加载地图",showClusters:"显示聚类",clusterSettings:"聚类设置",startAutoFly:"开始自动飞行",stopFlight:"停止飞行",speedLabel:"速度:",speedOption:{slow:"慢",normal:"正常",fast:"快"},shareEmbed:"分享与嵌入"},df={labels:{country:"国家:",population:"人口:",language:"语言:",religion:"宗教:",languageFamily:"语系:",peopleCommitted:"承诺祷告人数:"},messages:{noDescription:"暂无描述。"}},ff={title:{prayer:"祷告进度",engagement:"参与进度",adoption:"认领进度",languageFamilies:"语系",doxaRegions:"Doxa 区域",affinityBlocs:"亲缘板块",gospelResources:"福音资源"},header:{collapsed:"图例",peopleGroupFallback:"民族群体"},prayer:{needsPrayer:"需要祷告",hasPrayer:"已有祷告",fullPrayerCoverage:"全面祷告覆盖"},progress:{title:"进度",covered:"{total} 个民族群体中已有 {covered} 个被祷告覆盖 · {pct}%",short:"{covered} / {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"需要参与",hasEngagement:"已有参与"},adoption:{needsAdoption:"需要认领",hasAdoption:"已有认领"},columns:{upgs:"UUPGs",population:"人口"},footer:{total:"总计"}},hf={menuComingSoon:"菜单即将推出"},gf={clusterByRegion:"按 Doxa 区域",clusterByLanguageFamily:"按语系",clusterByGospelResource:"按福音资源"},mf={header:"当前祷告轮次",lap:"第",upgs:"UUPGs",separator:" / "},_f={placeholder:"民族、地点、语言、宗教",labels:{people:"民族:",place:"地点:",language:"语言:",religion:"宗教:"}};/*! + */let gi;const Jo=e=>gi=e,mi=Symbol();function Xr(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var ao;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(ao||(ao={}));function kp(){const e=hr(!0),t=e.run(()=>re({}));let n=[],o=[];const s=vn({install(r){Jo(s),s._a=r,r.provide(mi,s),r.config.globalProperties.$pinia=s,o.forEach(a=>n.push(a)),o=[]},use(r){return this._a?n.push(r):o.push(r),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const _i=()=>{};function bi(e,t,n,o=_i){e.push(t);const s=()=>{const r=e.indexOf(t);r>-1&&(e.splice(r,1),o())};return!n&&Fs()&&Zl(s),s}function En(e,...t){e.slice().forEach(n=>{n(...t)})}const $p=e=>e(),yi=Symbol(),Jr=Symbol();function Zr(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,o)=>e.set(o,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const o=t[n],s=e[n];Xr(s)&&Xr(o)&&e.hasOwnProperty(n)&&!Ne(o)&&!Tt(o)?e[n]=Zr(s,o):e[n]=o}return e}const Op=Symbol();function Np(e){return!Xr(e)||!e.hasOwnProperty(Op)}const{assign:zt}=Object;function Cp(e){return!!(Ne(e)&&e.effect)}function Ap(e,t,n,o){const{state:s,actions:r,getters:a}=t,i=n.state.value[e];let l;function c(){i||(n.state.value[e]=s?s():{});const u=vc(n.state.value[e]);return zt(u,r,Object.keys(a||{}).reduce((f,h)=>(f[h]=vn(ae(()=>{Jo(n);const m=n._s.get(e);return a[h].call(m,m)})),f),{}))}return l=vi(e,c,t,n,o,!0),l}function vi(e,t,n={},o,s,r){let a;const i=zt({actions:{}},n),l={deep:!0};let c,u,f=[],h=[],m;const w=o.state.value[e];!r&&!w&&(o.state.value[e]={});let k;function A(x){let N;c=u=!1,typeof x=="function"?(x(o.state.value[e]),N={type:ao.patchFunction,storeId:e,events:m}):(Zr(o.state.value[e],x),N={type:ao.patchObject,payload:x,storeId:e,events:m});const R=k=Symbol();Vn().then(()=>{k===R&&(c=!0)}),u=!0,En(f,N,o.state.value[e])}const O=r?function(){const{state:N}=n,R=N?N():{};this.$patch(j=>{zt(j,R)})}:_i;function C(){a.stop(),f=[],h=[],o._s.delete(e)}const _=(x,N="")=>{if(yi in x)return x[Jr]=N,x;const R=function(){Jo(o);const j=Array.from(arguments),K=[],ne=[];function ue(X){K.push(X)}function z(X){ne.push(X)}En(h,{args:j,name:R[Jr],store:v,after:ue,onError:z});let W;try{W=x.apply(this&&this.$id===e?this:v,j)}catch(X){throw En(ne,X),X}return W instanceof Promise?W.then(X=>(En(K,X),X)).catch(X=>(En(ne,X),Promise.reject(X))):(En(K,W),W)};return R[yi]=!0,R[Jr]=N,R},b={_p:o,$id:e,$onAction:bi.bind(null,h),$patch:A,$reset:O,$subscribe(x,N={}){const R=bi(f,x,N.detached,()=>j()),j=a.run(()=>lt(()=>o.state.value[e],K=>{(N.flush==="sync"?u:c)&&x({storeId:e,type:ao.direct,events:m},K)},zt({},l,N)));return R},$dispose:C},v=Eo(b);o._s.set(e,v);const L=(o._a&&o._a.runWithContext||$p)(()=>o._e.run(()=>(a=hr()).run(()=>t({action:_}))));for(const x in L){const N=L[x];if(Ne(N)&&!Cp(N)||Tt(N))r||(w&&Np(N)&&(Ne(N)?N.value=w[x]:Zr(N,w[x])),o.state.value[e][x]=N);else if(typeof N=="function"){const R=_(N,x);L[x]=R,i.actions[x]=N}}return zt(v,L),zt(pe(v),L),Object.defineProperty(v,"$state",{get:()=>o.state.value[e],set:x=>{A(N=>{zt(N,x)})}}),o._p.forEach(x=>{zt(v,a.run(()=>x({store:v,app:o._a,pinia:o,options:i})))}),w&&r&&n.hydrate&&n.hydrate(v.$state,w),c=!0,u=!0,v}/*! #__NO_SIDE_EFFECTS__ */function Qr(e,t,n){let o,s;const r=typeof t=="function";typeof e=="string"?(o=e,s=r?n:t):(s=e,o=e.id);function a(i,l){const c=Mc();return i=i||(c?De(mi,null):null),i&&Jo(i),i=gi,i._s.has(o)||(r?vi(o,t,s,i):Ap(o,s,i)),i._s.get(o)}return a.$id=o,a}const Ep={backToLegend:"العودة إلى المفتاح",closeDetailView:"إغلاق عرض التفاصيل"},Tp={prayForThem:"صلِّ من أجلهم",adoptThem:"تبنَّهم",moreInfo:"مزيد من المعلومات",zoomIn:"تكبير",zoomOut:"تصغير",switchToLightMode:"التبديل إلى الوضع الفاتح",switchToDarkMode:"التبديل إلى الوضع الداكن",resetView:"إعادة تعيين العرض",toggleFullscreen:"تبديل ملء الشاشة",aboutThisMap:"حول هذه الخريطة",closeMenu:"إغلاق القائمة",reloadMap:"إعادة تحميل الخريطة",showClusters:"إظهار المجموعات",clusterSettings:"إعدادات المجموعات",startAutoFly:"بدء الطيران التلقائي",stopFlight:"إيقاف الطيران",speedLabel:"السرعة:",speedOption:{slow:"بطيء",normal:"عادي",fast:"سريع"},shareEmbed:"مشاركة وتضمين"},Lp={labels:{country:"الدولة:",population:"السكان:",language:"اللغة:",religion:"الديانة:",languageFamily:"العائلة اللغوية:",peopleCommitted:"ملتزمون بالصلاة:"},messages:{noDescription:"لا يوجد وصف متاح."}},Sp={title:{prayer:"تقدم الصلاة",engagement:"تقدم الانخراط",adoption:"تقدم التبني",languageFamilies:"العائلات اللغوية",doxaRegions:"مناطق Doxa",affinityBlocs:"كتل القرابة",gospelResources:"موارد الإنجيل"},header:{collapsed:"وسيلة الإيضاح",peopleGroupFallback:"مجموعة الشعب"},prayer:{needsPrayer:"يحتاج إلى صلاة",hasPrayer:"لديه صلاة",fullPrayerCoverage:"تغطية صلاة كاملة"},progress:{title:"التقدم",covered:"{covered} من {total} مجموعة شعبية مغطاة بالصلاة · {pct}%",short:"{covered} من {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"يحتاج إلى انخراط",hasEngagement:"لديه انخراط"},adoption:{needsAdoption:"يحتاج إلى تبني",hasAdoption:"لديه تبني"},columns:{upgs:"UUPGs",population:"السكان",name:"الاسم"},footer:{total:"الإجمالي"},sortByUpgs:"ترتيب حسب UUPG",sortByPop:"ترتيب حسب السكان",colLabel:{religion:"ديانات UUPG",prayer:"حالة الصلاة",engagement:"حالة المشاركة",adoption:"حالة التبني",status:"الحالة"},titleBar:{legend:"مفتاح الخريطة",peopleGroups:"الشعوب",wagfRegions:"مناطق WAGF",languages:"اللغات"}},xp={menuComingSoon:"القائمة قادمة قريباً"},Ip={clusterByRegion:"حسب منطقة Doxa",clusterByLanguageFamily:"حسب العائلة اللغوية",clusterByGospelResource:"حسب مورد الإنجيل"},Fp={header:"دورة الصلاة الحالية",lap:"الدورة",upgs:"UUPGs",separator:" من "},Mp={placeholder:"شعب، مكان، لغة، ديانة",labels:{people:"الشعب:",place:"المكان:",language:"اللغة:",religion:"الديانة:"},kinds:{people:"الشعب + الدولة",peopleGroup:"الشعب",bloc:"كتلة التقارب",cluster:"مجموعة شعوب",country:"الدولة",region:"المنطقة",family:"عائلة اللغة",languageKind:"اللغة",dialect:"اللهجة",religionKind:"الدين"}},Pp={prayer:"الصلاة",adoption:"التبني",engagement:"المشاركة","affinity-blocks":"الشعوب",regions:"المناطق",countries:"الدول","language-families":"اللغات",religion:"الأديان",family:"عائلة اللغة",language:"اللغة",dialect:"اللهجة/التنوع",bloc:"كتلة التقارب",cluster:"المجموعة",group:"الشعب",pgic:"الشعب في الدولة",region:"منطقة WAGF",block:"كتلة WAGF",country:"الدولة"},Bp={backToLegend:"Zurück zur Legende",closeDetailView:"Detailansicht schließen"},Dp={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"},Rp={labels:{country:"Land:",population:"Bevölkerung:",language:"Sprache:",religion:"Religion:",languageFamily:"Sprachfamilie:",peopleCommitted:"Zum Gebet verpflichtet:"},messages:{noDescription:"Keine Beschreibung verfügbar."}},Wp={title:{prayer:"Gebetsfortschritt",engagement:"Engagement-Fortschritt",adoption:"Adoptionsfortschritt",languageFamilies:"Sprachfamilien",doxaRegions:"Doxa-Regionen",affinityBlocs:"Affinitätsblöcke",gospelResources:"Evangeliumsressourcen"},header:{collapsed:"Legende",peopleGroupFallback:"Volksgruppe"},prayer:{needsPrayer:"Braucht Gebet",hasPrayer:"Hat Gebet",fullPrayerCoverage:"Vollständige Gebetsabdeckung"},progress:{title:"Fortschritt",covered:"{covered} von {total} Volksgruppen im Gebet abgedeckt · {pct}%",short:"{covered} von {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Braucht Engagement",hasEngagement:"Hat Engagement"},adoption:{needsAdoption:"Braucht Adoption",hasAdoption:"Hat Adoption"},columns:{upgs:"UUPGs",population:"Bevölkerung"},footer:{total:"Gesamt"}},Up={menuComingSoon:"Menü folgt in Kürze"},jp={clusterByRegion:"Nach Doxa-Region",clusterByLanguageFamily:"Nach Sprachfamilie",clusterByGospelResource:"Nach Evangeliumsressource"},Gp={header:"AKTUELLE GEBETSRUNDE",lap:"Runde",upgs:"UUPGs",separator:" von "},Yp={placeholder:"Volk, Ort, Sprache, Religion",labels:{people:"Volk:",place:"Ort:",language:"Sprache:",religion:"Religion:"},sections:{within:"Innerhalb {selection}",allData:"Alle DOXA-Daten"}},Vp={prayer:"Gebet",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"Volksgruppen",regions:"Regionen",countries:"Länder","language-families":"Sprachen",religion:"Religionen",family:"Sprachfamilie",language:"Sprache",dialect:"Dialekt/Varietät",bloc:"Affinitätsblock",cluster:"Cluster",group:"Volksgruppe",pgic:"Volksgruppe im Land",region:"WAGF-Region",block:"WAGF-Block",country:"Land"},Hp={backToLegend:"Back to Legend",closeDetailView:"Close detail view"},qp={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"},zp={labels:{country:"Country:",population:"Population:",language:"Language:",religion:"Religion:",languageFamily:"Language Family:",peopleCommitted:"Committed to pray:"},messages:{noDescription:"No description available."}},Kp={title:{prayer:"Prayer Progress",engagement:"Engagement Progress",adoption:"Adoption Progress",languageFamilies:"Language Families",doxaRegions:"Doxa Regions",affinityBlocs:"Affinity Blocks",gospelResources:"Gospel Resources"},header:{default:"Legend",collapsed:"Legend",peopleGroupFallback:"People Group"},prayer:{needsPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayerCoverage:"Full Prayer Coverage"},progress:{title:"Progress",covered:"{covered} of {total} people groups covered in prayer · {pct}%",short:"{covered} of {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Unengaged",hasEngagement:"Engaged"},adoption:{needsAdoption:"Needs Adoption",hasAdoption:"Has Adoption"},columns:{upgs:"UUPGs",population:"Population",name:"Name"},footer:{total:"Total"},sortByUpgs:"Sort by UUPGs",sortByPop:"Sort by Population",colLabel:{religion:"UUPG Religions",prayer:"Prayer Status",engagement:"Engagement Status",adoption:"Adoption Status",status:"Status"},titleBar:{legend:"Legend",peopleGroups:"People Groups",wagfRegions:"WAGF Regions",languages:"Languages"}},Xp={menuComingSoon:"Menu coming soon"},Jp={clusterByRegion:"By Doxa Region",clusterByLanguageFamily:"By Language Family",clusterByGospelResource:"By Gospel Resource"},Zp={country:{wagfRegion:"WAGF Region",wagfBlock:"WAGF Bloc",country:"Country",uupgCount:"UUPG Count"}},Qp={header:"CURRENT PRAYER LAP",lap:"Lap",upgs:"UUPGs",separator:" of "},ed={placeholder:"People, place, language, religion",labels:{people:"People:",place:"Place:",language:"Language:",religion:"Religion:"},kinds:{people:"People Group + Country",peopleGroup:"People Group",bloc:"Affinity Block",cluster:"People Cluster",country:"Country",region:"Region",family:"Language Family",languageKind:"Language",dialect:"Dialect",religionKind:"Religion"},sections:{within:"Within {selection}",allData:"All DOXA Data"}},td={prayer:"Prayer",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"People Groups (Affinity)",regions:"Regions",countries:"Countries","language-families":"Languages",religion:"Religions",family:"Lang Family",language:"Language",dialect:"Dialect/Variety",bloc:"Affinity Block",cluster:"Cluster",group:"People Group",pgic:"PG in Country",region:"WAGF Region",block:"WAGF Bloc",country:"Country"},nd={backToLegend:"Volver a la leyenda",closeDetailView:"Cerrar vista de detalle"},od={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"},rd={labels:{country:"País:",population:"Población:",language:"Idioma:",religion:"Religión:",languageFamily:"Familia lingüística:",peopleCommitted:"Comprometidos a orar:"},messages:{noDescription:"No hay descripción disponible."}},sd={title:{prayer:"Progreso de oración",engagement:"Progreso de implicación",adoption:"Progreso de adopción",languageFamilies:"Familias lingüísticas",doxaRegions:"Regiones Doxa",affinityBlocs:"Bloques de afinidad",gospelResources:"Recursos del Evangelio"},header:{collapsed:"Leyenda",peopleGroupFallback:"Grupo de personas"},prayer:{needsPrayer:"Necesita oración",hasPrayer:"Tiene oración",fullPrayerCoverage:"Cobertura de oración completa"},progress:{title:"Progreso",covered:"{covered} de {total} grupos de personas cubiertos en oración · {pct}%",short:"{covered} de {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necesita implicación",hasEngagement:"Tiene implicación"},adoption:{needsAdoption:"Necesita adopción",hasAdoption:"Tiene adopción"},columns:{upgs:"UUPGs",population:"Población",name:"Nombre"},footer:{total:"Total"},sortByUpgs:"Ordenar por UUPG",sortByPop:"Ordenar por población",colLabel:{religion:"Religiones UUPG",prayer:"Estado de oración",engagement:"Estado de compromiso",adoption:"Estado de adopción",status:"Estado"},titleBar:{legend:"Leyenda",peopleGroups:"Pueblos",wagfRegions:"Regiones WAGF",languages:"Idiomas"}},ad={menuComingSoon:"Menú próximamente"},id={clusterByRegion:"Por región Doxa",clusterByLanguageFamily:"Por familia lingüística",clusterByGospelResource:"Por recurso del Evangelio"},ld={header:"VUELTA DE ORACIÓN ACTUAL",lap:"Vuelta",upgs:"UUPGs",separator:" de "},cd={placeholder:"Pueblo, lugar, idioma, religión",labels:{people:"Pueblo:",place:"Lugar:",language:"Idioma:",religion:"Religión:"},kinds:{people:"Pueblo + país",peopleGroup:"Pueblo",bloc:"Bloque de afinidad",cluster:"Clúster de pueblos",country:"País",region:"Región",family:"Familia lingüística",languageKind:"Idioma",dialect:"Dialecto",religionKind:"Religión"}},ud={prayer:"Oración",adoption:"Adopción",engagement:"Compromiso","affinity-blocks":"Pueblos",regions:"Regiones",countries:"Países","language-families":"Idiomas",religion:"Religiones",family:"Familia lingüística",language:"Idioma",dialect:"Dialecto/Variedad",bloc:"Bloque de afinidad",cluster:"Clúster",group:"Pueblo",pgic:"Pueblo en país",region:"Región WAGF",block:"Bloque WAGF",country:"País"},pd={backToLegend:"Retour à la légende",closeDetailView:"Fermer la vue détaillée"},dd={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"},fd={labels:{country:"Pays :",population:"Population :",language:"Langue :",religion:"Religion :",languageFamily:"Famille de langues :",peopleCommitted:"Engagés à prier :"},messages:{noDescription:"Aucune description disponible."}},hd={title:{prayer:"Progression de la prière",engagement:"Progression de l'engagement",adoption:"Progression de l'adoption",languageFamilies:"Familles de langues",doxaRegions:"Régions Doxa",affinityBlocs:"Blocs d'affinité",gospelResources:"Ressources de l'Évangile"},header:{collapsed:"Légende",peopleGroupFallback:"Groupe de personnes"},prayer:{needsPrayer:"Besoin de prière",hasPrayer:"Prière en cours",fullPrayerCoverage:"Couverture de prière complète"},progress:{title:"Progression",covered:"{covered} sur {total} groupes de personnes couverts par la prière · {pct}%",short:"{covered} sur {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Besoin d'engagement",hasEngagement:"Engagement en cours"},adoption:{needsAdoption:"Besoin d'adoption",hasAdoption:"Adoption en cours"},columns:{upgs:"UUPGs",population:"Population",name:"Nom"},footer:{total:"Total"},sortByUpgs:"Trier par UUPG",sortByPop:"Trier par population",colLabel:{religion:"Religions UUPG",prayer:"Statut de prière",engagement:"Statut d'engagement",adoption:"Statut d'adoption",status:"Statut"},titleBar:{legend:"Légende",peopleGroups:"Peuples",wagfRegions:"Régions WAGF",languages:"Langues"}},gd={menuComingSoon:"Menu bientôt disponible"},md={clusterByRegion:"Par région Doxa",clusterByLanguageFamily:"Par famille de langues",clusterByGospelResource:"Par ressource de l'Évangile"},_d={country:{wagfRegion:"Région WAGF",wagfBlock:"Bloc WAGF",country:"Pays",uupgCount:"Nombre d'UUPG"}},bd={header:"TOUR DE PRIÈRE ACTUEL",lap:"Tour",upgs:"UUPGs",separator:" sur "},yd={placeholder:"Peuple, lieu, langue, religion",labels:{people:"Peuple :",place:"Lieu :",language:"Langue :",religion:"Religion :"},kinds:{people:"Peuple + pays",peopleGroup:"Peuple",bloc:"Bloc d'affinité",cluster:"Grappe de peuples",country:"Pays",region:"Région",family:"Famille linguistique",languageKind:"Langue",dialect:"Dialecte",religionKind:"Religion"}},vd={prayer:"Prière",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"Peuples",regions:"Régions",countries:"Pays","language-families":"Langues",religion:"Religions",family:"Famille linguistique",language:"Langue",dialect:"Dialecte/Variété",bloc:"Bloc d'affinité",cluster:"Grappe",group:"Peuple",pgic:"Peuple dans le pays",region:"Région WAGF",block:"Bloc WAGF",country:"Pays"},wd={backToLegend:"लेजेंड पर वापस जाएं",closeDetailView:"विवरण दृश्य बंद करें"},kd={prayForThem:"उनके लिए प्रार्थना करें",adoptThem:"उन्हें गोद लें",moreInfo:"अधिक जानकारी",zoomIn:"ज़ूम इन",zoomOut:"ज़ूम आउट",switchToLightMode:"लाइट मोड पर जाएं",switchToDarkMode:"डार्क मोड पर जाएं",resetView:"दृश्य रीसेट करें",toggleFullscreen:"फ़ुलस्क्रीन टॉगल करें",aboutThisMap:"इस मानचित्र के बारे में",closeMenu:"मेनू बंद करें",reloadMap:"मानचित्र पुनः लोड करें",showClusters:"क्लस्टर दिखाएं",clusterSettings:"क्लस्टर सेटिंग्स",startAutoFly:"ऑटो फ्लाई शुरू करें",stopFlight:"उड़ान रोकें",speedLabel:"गति:",speedOption:{slow:"धीमी",normal:"सामान्य",fast:"तेज़"},shareEmbed:"साझा करें और एम्बेड करें"},$d={labels:{country:"देश:",population:"जनसंख्या:",language:"भाषा:",religion:"धर्म:",languageFamily:"भाषा परिवार:",peopleCommitted:"प्रार्थना के लिए प्रतिबद्ध:"},messages:{noDescription:"कोई विवरण उपलब्ध नहीं है।"}},Od={title:{prayer:"प्रार्थना प्रगति",engagement:"सहभागिता प्रगति",adoption:"गोद लेने की प्रगति",languageFamilies:"भाषा परिवार",doxaRegions:"Doxa क्षेत्र",affinityBlocs:"समानता समूह",gospelResources:"सुसमाचार संसाधन"},header:{collapsed:"किंवदंती",peopleGroupFallback:"जनजाति समूह"},prayer:{needsPrayer:"प्रार्थना चाहिए",hasPrayer:"प्रार्थना है",fullPrayerCoverage:"पूर्ण प्रार्थना कवरेज"},progress:{title:"प्रगति",covered:"{total} में से {covered} जनजाति समूह प्रार्थना में कवर · {pct}%",short:"{total} में से {covered} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"सहभागिता चाहिए",hasEngagement:"सहभागिता है"},adoption:{needsAdoption:"गोद लेना चाहिए",hasAdoption:"गोद लिया गया"},columns:{upgs:"UUPGs",population:"जनसंख्या"},footer:{total:"कुल"}},Nd={menuComingSoon:"मेनू शीघ्र आ रहा है"},Cd={clusterByRegion:"Doxa क्षेत्र के अनुसार",clusterByLanguageFamily:"भाषा परिवार के अनुसार",clusterByGospelResource:"सुसमाचार संसाधन के अनुसार"},Ad={header:"वर्तमान प्रार्थना चक्र",lap:"चक्र",upgs:"UUPGs",separator:" में से "},Ed={placeholder:"लोग, स्थान, भाषा, धर्म",labels:{people:"लोग:",place:"स्थान:",language:"भाषा:",religion:"धर्म:"}},Td={backToLegend:"Torna alla legenda",closeDetailView:"Chiudi vista dettaglio"},Ld={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"},Sd={labels:{country:"Paese:",population:"Popolazione:",language:"Lingua:",religion:"Religione:",languageFamily:"Famiglia linguistica:",peopleCommitted:"Impegnati a pregare:"},messages:{noDescription:"Nessuna descrizione disponibile."}},xd={title:{prayer:"Avanzamento della preghiera",engagement:"Avanzamento dell'impegno",adoption:"Avanzamento dell'adozione",languageFamilies:"Famiglie linguistiche",doxaRegions:"Regioni Doxa",affinityBlocs:"Blocchi di affinità",gospelResources:"Risorse del Vangelo"},header:{collapsed:"Legenda",peopleGroupFallback:"Gruppo di persone"},prayer:{needsPrayer:"Necessita preghiera",hasPrayer:"Ha preghiera",fullPrayerCoverage:"Copertura di preghiera completa"},progress:{title:"Avanzamento",covered:"{covered} di {total} gruppi di persone coperti dalla preghiera · {pct}%",short:"{covered} di {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necessita impegno",hasEngagement:"Ha impegno"},adoption:{needsAdoption:"Necessita adozione",hasAdoption:"Ha adozione"},columns:{upgs:"UUPGs",population:"Popolazione"},footer:{total:"Totale"}},Id={menuComingSoon:"Menu in arrivo"},Fd={clusterByRegion:"Per regione Doxa",clusterByLanguageFamily:"Per famiglia linguistica",clusterByGospelResource:"Per risorsa del Vangelo"},Md={header:"GIRO DI PREGHIERA ATTUALE",lap:"Giro",upgs:"UUPGs",separator:" di "},Pd={placeholder:"Popolo, luogo, lingua, religione",labels:{people:"Popolo:",place:"Luogo:",language:"Lingua:",religion:"Religione:"}},Bd={backToLegend:"Voltar à legenda",closeDetailView:"Fechar vista de detalhe"},Dd={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"},Rd={labels:{country:"País:",population:"População:",language:"Língua:",religion:"Religião:",languageFamily:"Família linguística:",peopleCommitted:"Comprometidos a orar:"},messages:{noDescription:"Sem descrição disponível."}},Wd={title:{prayer:"Progresso da oração",engagement:"Progresso do envolvimento",adoption:"Progresso da adoção",languageFamilies:"Famílias linguísticas",doxaRegions:"Regiões Doxa",affinityBlocs:"Blocos de afinidade",gospelResources:"Recursos do Evangelho"},header:{collapsed:"Legenda",peopleGroupFallback:"Grupo de pessoas"},prayer:{needsPrayer:"Precisa de oração",hasPrayer:"Tem oração",fullPrayerCoverage:"Cobertura de oração completa"},progress:{title:"Progresso",covered:"{covered} de {total} grupos de pessoas cobertos em oração · {pct}%",short:"{covered} de {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Precisa de envolvimento",hasEngagement:"Tem envolvimento"},adoption:{needsAdoption:"Precisa de adoção",hasAdoption:"Tem adoção"},columns:{upgs:"UUPGs",population:"População",name:"Nome"},footer:{total:"Total"},sortByUpgs:"Ordenar por UUPG",sortByPop:"Ordenar por população",colLabel:{religion:"Religiões UUPG",prayer:"Status de oração",engagement:"Status de engajamento",adoption:"Status de adoção",status:"Status"},titleBar:{legend:"Legenda",peopleGroups:"Povos",wagfRegions:"Regiões WAGF",languages:"Idiomas"}},Ud={menuComingSoon:"Menu em breve"},jd={clusterByRegion:"Por região Doxa",clusterByLanguageFamily:"Por família linguística",clusterByGospelResource:"Por recurso do Evangelho"},Gd={header:"VOLTA DE ORAÇÃO ATUAL",lap:"Volta",upgs:"UUPGs",separator:" de "},Yd={placeholder:"Povo, local, língua, religião",labels:{people:"Povo:",place:"Local:",language:"Língua:",religion:"Religião:"},kinds:{people:"Povo + país",peopleGroup:"Povo",bloc:"Bloco de afinidade",cluster:"Agrupamento de povos",country:"País",region:"Região",family:"Família linguística",languageKind:"Idioma",dialect:"Dialeto",religionKind:"Religião"}},Vd={prayer:"Oração",adoption:"Adoção",engagement:"Engajamento","affinity-blocks":"Povos",regions:"Regiões",countries:"Países","language-families":"Idiomas",religion:"Religiões",family:"Família linguística",language:"Idioma",dialect:"Dialeto/Variedade",bloc:"Bloco de afinidade",cluster:"Agrupamento",group:"Povo",pgic:"Povo no país",region:"Região WAGF",block:"Bloco WAGF",country:"País"},Hd={backToLegend:"Înapoi la legendă",closeDetailView:"Închide vizualizarea detaliată"},qd={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ă"},zd={labels:{country:"Țară:",population:"Populație:",language:"Limbă:",religion:"Religie:",languageFamily:"Familie de limbi:",peopleCommitted:"Angajați să se roage:"},messages:{noDescription:"Nicio descriere disponibilă."}},Kd={title:{prayer:"Progresul rugăciunii",engagement:"Progresul implicării",adoption:"Progresul adopției",languageFamilies:"Familii de limbi",doxaRegions:"Regiuni Doxa",affinityBlocs:"Blocuri de afinitate",gospelResources:"Resurse ale Evangheliei"},header:{collapsed:"Legendă",peopleGroupFallback:"Grup de popoare"},prayer:{needsPrayer:"Necesită rugăciune",hasPrayer:"Are rugăciune",fullPrayerCoverage:"Acoperire completă de rugăciune"},progress:{title:"Progres",covered:"{covered} din {total} grupuri de popoare acoperite în rugăciune · {pct}%",short:"{covered} din {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necesită implicare",hasEngagement:"Are implicare"},adoption:{needsAdoption:"Necesită adopție",hasAdoption:"Are adopție"},columns:{upgs:"UUPGs",population:"Populație"},footer:{total:"Total"}},Xd={menuComingSoon:"Meniu în curând"},Jd={clusterByRegion:"După regiune Doxa",clusterByLanguageFamily:"După familia de limbi",clusterByGospelResource:"După resursa Evangheliei"},Zd={header:"TURUL DE RUGĂCIUNE CURENT",lap:"Tur",upgs:"UUPGs",separator:" din "},Qd={placeholder:"Popor, loc, limbă, religie",labels:{people:"Popor:",place:"Loc:",language:"Limbă:",religion:"Religie:"}},ef={backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид"},tf={prayForThem:"Молитесь о них",adoptThem:"Усыновите их",moreInfo:"Подробнее",zoomIn:"Приблизить",zoomOut:"Отдалить",switchToLightMode:"Переключить на светлый режим",switchToDarkMode:"Переключить на тёмный режим",resetView:"Сбросить вид",toggleFullscreen:"Полноэкранный режим",aboutThisMap:"Об этой карте",closeMenu:"Закрыть меню",reloadMap:"Перезагрузить карту",showClusters:"Показать кластеры",clusterSettings:"Настройки кластеров",startAutoFly:"Начать авто-полёт",stopFlight:"Остановить полёт",speedLabel:"Скорость:",speedOption:{slow:"Медленно",normal:"Нормально",fast:"Быстро"},shareEmbed:"Поделиться и встроить"},nf={labels:{country:"Страна:",population:"Население:",language:"Язык:",religion:"Религия:",languageFamily:"Языковая семья:",peopleCommitted:"Обязались молиться:"},messages:{noDescription:"Описание недоступно."}},of={title:{prayer:"Прогресс молитвы",engagement:"Прогресс вовлечённости",adoption:"Прогресс усыновления",languageFamilies:"Языковые семьи",doxaRegions:"Регионы Doxa",affinityBlocs:"Блоки родства",gospelResources:"Евангельские ресурсы"},header:{collapsed:"Условные обозначения",peopleGroupFallback:"Народная группа"},prayer:{needsPrayer:"Нуждается в молитве",hasPrayer:"Есть молитва",fullPrayerCoverage:"Полное молитвенное покрытие"},progress:{title:"Прогресс",covered:"{covered} из {total} народных групп охвачены молитвой · {pct}%",short:"{covered} из {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Нуждается в вовлечённости",hasEngagement:"Есть вовлечённость"},adoption:{needsAdoption:"Нуждается в усыновлении",hasAdoption:"Есть усыновление"},columns:{upgs:"UUPGs",population:"Население",name:"Название"},footer:{total:"Всего"},sortByUpgs:"Сортировать по UUPG",sortByPop:"Сортировать по населению",colLabel:{religion:"Религии UUPG",prayer:"Статус молитвы",engagement:"Статус вовлечённости",adoption:"Статус усыновления",status:"Статус"},titleBar:{legend:"Легенда",peopleGroups:"Народы",wagfRegions:"Регионы WAGF",languages:"Языки"}},rf={menuComingSoon:"Меню скоро появится"},sf={clusterByRegion:"По региону Doxa",clusterByLanguageFamily:"По языковой семье",clusterByGospelResource:"По евангельскому ресурсу"},af={header:"ТЕКУЩИЙ КРУГ МОЛИТВЫ",lap:"Круг",upgs:"UUPGs",separator:" из "},lf={placeholder:"Народ, место, язык, религия",labels:{people:"Народ:",place:"Место:",language:"Язык:",religion:"Религия:"},kinds:{people:"Народ + страна",peopleGroup:"Народ",bloc:"Блок родства",cluster:"Кластер народов",country:"Страна",region:"Регион",family:"Языковая семья",languageKind:"Язык",dialect:"Диалект",religionKind:"Религия"}},cf={prayer:"Молитва",adoption:"Усыновление",engagement:"Вовлечённость","affinity-blocks":"Народы",regions:"Регионы",countries:"Страны","language-families":"Языки",religion:"Религии",family:"Языковая семья",language:"Язык",dialect:"Диалект/вариант",bloc:"Блок родства",cluster:"Кластер",group:"Народ",pgic:"Народ в стране",region:"Регион WAGF",block:"Блок WAGF",country:"Страна"},uf={backToLegend:"返回图例",closeDetailView:"关闭详情视图"},pf={prayForThem:"为他们祷告",adoptThem:"认领他们",moreInfo:"更多信息",zoomIn:"放大",zoomOut:"缩小",switchToLightMode:"切换至浅色模式",switchToDarkMode:"切换至深色模式",resetView:"重置视图",toggleFullscreen:"切换全屏",aboutThisMap:"关于此地图",closeMenu:"关闭菜单",reloadMap:"重新加载地图",showClusters:"显示聚类",clusterSettings:"聚类设置",startAutoFly:"开始自动飞行",stopFlight:"停止飞行",speedLabel:"速度:",speedOption:{slow:"慢",normal:"正常",fast:"快"},shareEmbed:"分享与嵌入"},df={labels:{country:"国家:",population:"人口:",language:"语言:",religion:"宗教:",languageFamily:"语系:",peopleCommitted:"承诺祷告人数:"},messages:{noDescription:"暂无描述。"}},ff={title:{prayer:"祷告进度",engagement:"参与进度",adoption:"认领进度",languageFamilies:"语系",doxaRegions:"Doxa 区域",affinityBlocs:"亲缘板块",gospelResources:"福音资源"},header:{collapsed:"图例",peopleGroupFallback:"民族群体"},prayer:{needsPrayer:"需要祷告",hasPrayer:"已有祷告",fullPrayerCoverage:"全面祷告覆盖"},progress:{title:"进度",covered:"{total} 个民族群体中已有 {covered} 个被祷告覆盖 · {pct}%",short:"{covered} / {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"需要参与",hasEngagement:"已有参与"},adoption:{needsAdoption:"需要认领",hasAdoption:"已有认领"},columns:{upgs:"UUPGs",population:"人口"},footer:{total:"总计"}},hf={menuComingSoon:"菜单即将推出"},gf={clusterByRegion:"按 Doxa 区域",clusterByLanguageFamily:"按语系",clusterByGospelResource:"按福音资源"},mf={header:"当前祷告轮次",lap:"第",upgs:"UUPGs",separator:" / "},_f={placeholder:"民族、地点、语言、宗教",labels:{people:"民族:",place:"地点:",language:"语言:",religion:"宗教:"}};/*! * shared v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */function bf(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const Zo=typeof window<"u",Kt=(e,t=!1)=>t?Symbol.for(e):Symbol(e),yf=(e,t,n)=>vf({l:e,k:t,s:n}),vf=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),Ae=e=>typeof e=="number"&&isFinite(e),wf=e=>Na(e)==="[object Date]",Xt=e=>Na(e)==="[object RegExp]",Qo=e=>se(e)&&Object.keys(e).length===0,We=Object.assign,kf=Object.create,me=(e=null)=>kf(e);let wa;const Bt=()=>wa||(wa=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:me());function ka(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function $a(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function $f(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(o,s,r)=>`${s}="${$a(r)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(o,s,r)=>`${s}='${$a(r)}'`),/\s*on\w+\s*=\s*["']?[^"'>]+["']?/gi.test(e)&&(e=e.replace(/(\s+)(on)(\w+\s*=)/gi,"$1on$3")),[/(\s+(?:href|src|action|formaction)\s*=\s*["']?)\s*javascript:/gi,/(style\s*=\s*["'][^"']*url\s*\(\s*)javascript:/gi].forEach(o=>{e=e.replace(o,"$1javascript:")}),e}const Of=Object.prototype.hasOwnProperty;function ut(e,t){return Of.call(e,t)}const Oe=Array.isArray,we=e=>typeof e=="function",q=e=>typeof e=="string",ce=e=>typeof e=="boolean",fe=e=>e!==null&&typeof e=="object",Nf=e=>fe(e)&&we(e.then)&&we(e.catch),Oa=Object.prototype.toString,Na=e=>Oa.call(e),se=e=>{if(!fe(e))return!1;const t=Object.getPrototypeOf(e);return t===null||t.constructor===Object},Cf=e=>e==null?"":Oe(e)||se(e)&&e.toString===Oa?JSON.stringify(e,null,2):String(e);function Af(e,t=""){return e.reduce((n,o,s)=>s===0?n+o:n+t+o,"")}function er(e){let t=e;return()=>++t}const tr=e=>!fe(e)||Oe(e);function nr(e,t){if(tr(e)||tr(t))throw new Error("Invalid value");const n=[{src:e,des:t}];for(;n.length;){const{src:o,des:s}=n.pop();Object.keys(o).forEach(r=>{r!=="__proto__"&&(fe(o[r])&&!fe(s[r])&&(s[r]=Array.isArray(o[r])?[]:me()),tr(s[r])||tr(o[r])?s[r]=o[r]:n.push({src:o[r],des:s[r]}))})}}/*! + */function bf(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const Zo=typeof window<"u",Kt=(e,t=!1)=>t?Symbol.for(e):Symbol(e),yf=(e,t,n)=>vf({l:e,k:t,s:n}),vf=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),Ae=e=>typeof e=="number"&&isFinite(e),wf=e=>Ni(e)==="[object Date]",Xt=e=>Ni(e)==="[object RegExp]",Qo=e=>se(e)&&Object.keys(e).length===0,We=Object.assign,kf=Object.create,me=(e=null)=>kf(e);let wi;const Bt=()=>wi||(wi=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:me());function ki(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function $i(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function $f(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(o,s,r)=>`${s}="${$i(r)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(o,s,r)=>`${s}='${$i(r)}'`),/\s*on\w+\s*=\s*["']?[^"'>]+["']?/gi.test(e)&&(e=e.replace(/(\s+)(on)(\w+\s*=)/gi,"$1on$3")),[/(\s+(?:href|src|action|formaction)\s*=\s*["']?)\s*javascript:/gi,/(style\s*=\s*["'][^"']*url\s*\(\s*)javascript:/gi].forEach(o=>{e=e.replace(o,"$1javascript:")}),e}const Of=Object.prototype.hasOwnProperty;function ut(e,t){return Of.call(e,t)}const Oe=Array.isArray,we=e=>typeof e=="function",q=e=>typeof e=="string",ce=e=>typeof e=="boolean",fe=e=>e!==null&&typeof e=="object",Nf=e=>fe(e)&&we(e.then)&&we(e.catch),Oi=Object.prototype.toString,Ni=e=>Oi.call(e),se=e=>{if(!fe(e))return!1;const t=Object.getPrototypeOf(e);return t===null||t.constructor===Object},Cf=e=>e==null?"":Oe(e)||se(e)&&e.toString===Oi?JSON.stringify(e,null,2):String(e);function Af(e,t=""){return e.reduce((n,o,s)=>s===0?n+o:n+t+o,"")}function er(e){let t=e;return()=>++t}const tr=e=>!fe(e)||Oe(e);function nr(e,t){if(tr(e)||tr(t))throw new Error("Invalid value");const n=[{src:e,des:t}];for(;n.length;){const{src:o,des:s}=n.pop();Object.keys(o).forEach(r=>{r!=="__proto__"&&(fe(o[r])&&!fe(s[r])&&(s[r]=Array.isArray(o[r])?[]:me()),tr(s[r])||tr(o[r])?s[r]=o[r]:n.push({src:o[r],des:s[r]}))})}}/*! * message-compiler v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */function Ef(e,t,n){return{line:e,column:t,offset:n}}function or(e,t,n){return{start:e,end:t}}const Tf=/\{([0-9a-zA-Z]+)\}/g;function Ca(e,...t){return t.length===1&&Lf(t[0])&&(t=t[0]),(!t||!t.hasOwnProperty)&&(t={}),e.replace(Tf,(n,o)=>t.hasOwnProperty(o)?t[o]:"")}const Aa=Object.assign,Ea=e=>typeof e=="string",Lf=e=>e!==null&&typeof e=="object";function Ta(e,t=""){return e.reduce((n,o,s)=>s===0?n+o:n+t+o,"")}const es={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},Sf={[es.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function If(e,t,...n){const o=Ca(Sf[e],...n||[]),s={message:String(o),code:e};return t&&(s.location=t),s}const te={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14,UNHANDLED_CODEGEN_NODE_TYPE:15,UNHANDLED_MINIFIER_NODE_TYPE:16,__EXTEND_POINT__:17},xf={[te.EXPECTED_TOKEN]:"Expected token: '{0}'",[te.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[te.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[te.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[te.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[te.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[te.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[te.EMPTY_PLACEHOLDER]:"Empty placeholder",[te.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[te.INVALID_LINKED_FORMAT]:"Invalid linked format",[te.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[te.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[te.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[te.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[te.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[te.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function Tn(e,t,n={}){const{domain:o,messages:s,args:r}=n,i=Ca((s||xf)[e]||"",...r||[]),a=new SyntaxError(String(i));return a.code=e,t&&(a.location=t),a.domain=o,a}function Ff(e){throw e}const Dt=" ",Mf="\r",He=` -`,Pf="\u2028",Bf="\u2029";function Df(e){const t=e;let n=0,o=1,s=1,r=0;const i=L=>t[L]===Mf&&t[L+1]===He,a=L=>t[L]===He,l=L=>t[L]===Bf,c=L=>t[L]===Pf,u=L=>i(L)||a(L)||l(L)||c(L),f=()=>n,h=()=>o,m=()=>s,w=()=>r,k=L=>i(L)||l(L)||c(L)?He:t[L],A=()=>k(n),O=()=>k(n+r);function C(){return r=0,u(n)&&(o++,s=0),i(n)&&n++,n++,s++,t[n]}function _(){return i(n+r)&&r++,r++,t[n+r]}function b(){n=0,o=1,s=1,r=0}function v(L=0){r=L}function E(){const L=n+r;for(;L!==n;)C();r=0}return{index:f,line:h,column:m,peekOffset:w,charAt:k,currentChar:A,currentPeek:O,next:C,peek:_,reset:b,resetPeek:v,skipToPeek:E}}const Jt=void 0,Rf=".",La="'",Wf="tokenizer";function Uf(e,t={}){const n=t.location!==!1,o=Df(e),s=()=>o.index(),r=()=>Ef(o.line(),o.column(),o.index()),i=r(),a=s(),l={currentType:14,offset:a,startLoc:i,endLoc:i,lastType:14,lastOffset:a,lastStartLoc:i,lastEndLoc:i,braceNest:0,inLinked:!1,text:""},c=()=>l,{onError:u}=t;function f(p,d,S,...F){const V=c();if(d.column+=S,d.offset+=S,u){const U=n?or(V.startLoc,d):null,T=Tn(p,U,{domain:Wf,args:F});u(T)}}function h(p,d,S){p.endLoc=r(),p.currentType=d;const F={type:d};return n&&(F.loc=or(p.startLoc,p.endLoc)),S!=null&&(F.value=S),F}const m=p=>h(p,14);function w(p,d){return p.currentChar()===d?(p.next(),d):(f(te.EXPECTED_TOKEN,r(),0,d),"")}function k(p){let d="";for(;p.currentPeek()===Dt||p.currentPeek()===He;)d+=p.currentPeek(),p.peek();return d}function A(p){const d=k(p);return p.skipToPeek(),d}function O(p){if(p===Jt)return!1;const d=p.charCodeAt(0);return d>=97&&d<=122||d>=65&&d<=90||d===95}function C(p){if(p===Jt)return!1;const d=p.charCodeAt(0);return d>=48&&d<=57}function _(p,d){const{currentType:S}=d;if(S!==2)return!1;k(p);const F=O(p.currentPeek());return p.resetPeek(),F}function b(p,d){const{currentType:S}=d;if(S!==2)return!1;k(p);const F=p.currentPeek()==="-"?p.peek():p.currentPeek(),V=C(F);return p.resetPeek(),V}function v(p,d){const{currentType:S}=d;if(S!==2)return!1;k(p);const F=p.currentPeek()===La;return p.resetPeek(),F}function E(p,d){const{currentType:S}=d;if(S!==8)return!1;k(p);const F=p.currentPeek()===".";return p.resetPeek(),F}function L(p,d){const{currentType:S}=d;if(S!==9)return!1;k(p);const F=O(p.currentPeek());return p.resetPeek(),F}function I(p,d){const{currentType:S}=d;if(!(S===8||S===12))return!1;k(p);const F=p.currentPeek()===":";return p.resetPeek(),F}function N(p,d){const{currentType:S}=d;if(S!==10)return!1;const F=()=>{const U=p.currentPeek();return U==="{"?O(p.peek()):U==="@"||U==="%"||U==="|"||U===":"||U==="."||U===Dt||!U?!1:U===He?(p.peek(),F()):K(p,!1)},V=F();return p.resetPeek(),V}function R(p){k(p);const d=p.currentPeek()==="|";return p.resetPeek(),d}function j(p){const d=k(p),S=p.currentPeek()==="%"&&p.peek()==="{";return p.resetPeek(),{isModulo:S,hasSpace:d.length>0}}function K(p,d=!0){const S=(V=!1,U="",T=!1)=>{const P=p.currentPeek();return P==="{"?U==="%"?!1:V:P==="@"||!P?U==="%"?!0:V:P==="%"?(p.peek(),S(V,"%",!0)):P==="|"?U==="%"||T?!0:!(U===Dt||U===He):P===Dt?(p.peek(),S(!0,Dt,T)):P===He?(p.peek(),S(!0,He,T)):!0},F=S();return d&&p.resetPeek(),F}function ne(p,d){const S=p.currentChar();return S===Jt?Jt:d(S)?(p.next(),S):null}function ue(p){const d=p.charCodeAt(0);return d>=97&&d<=122||d>=65&&d<=90||d>=48&&d<=57||d===95||d===36}function z(p){return ne(p,ue)}function W(p){const d=p.charCodeAt(0);return d>=97&&d<=122||d>=65&&d<=90||d>=48&&d<=57||d===95||d===36||d===45}function X(p){return ne(p,W)}function le(p){const d=p.charCodeAt(0);return d>=48&&d<=57}function Ee(p){return ne(p,le)}function Nt(p){const d=p.charCodeAt(0);return d>=48&&d<=57||d>=65&&d<=70||d>=97&&d<=102}function xe(p){return ne(p,Nt)}function Pe(p){let d="",S="";for(;d=Ee(p);)S+=d;return S}function nn(p){A(p);const d=p.currentChar();return d!=="%"&&f(te.EXPECTED_TOKEN,r(),0,d),p.next(),"%"}function on(p){let d="";for(;;){const S=p.currentChar();if(S==="{"||S==="}"||S==="@"||S==="|"||!S)break;if(S==="%")if(K(p))d+=S,p.next();else break;else if(S===Dt||S===He)if(K(p))d+=S,p.next();else{if(R(p))break;d+=S,p.next()}else d+=S,p.next()}return d}function gn(p){A(p);let d="",S="";for(;d=X(p);)S+=d;return p.currentChar()===Jt&&f(te.UNTERMINATED_CLOSING_BRACE,r(),0),S}function ft(p){A(p);let d="";return p.currentChar()==="-"?(p.next(),d+=`-${Pe(p)}`):d+=Pe(p),p.currentChar()===Jt&&f(te.UNTERMINATED_CLOSING_BRACE,r(),0),d}function Ut(p){return p!==La&&p!==He}function jt(p){A(p),w(p,"'");let d="",S="";for(;d=ne(p,Ut);)d==="\\"?S+=rn(p):S+=d;const F=p.currentChar();return F===He||F===Jt?(f(te.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,r(),0),F===He&&(p.next(),w(p,"'")),S):(w(p,"'"),S)}function rn(p){const d=p.currentChar();switch(d){case"\\":case"'":return p.next(),`\\${d}`;case"u":return rt(p,d,4);case"U":return rt(p,d,6);default:return f(te.UNKNOWN_ESCAPE_SEQUENCE,r(),0,d),""}}function rt(p,d,S){w(p,d);let F="";for(let V=0;V{const F=p.currentChar();return F==="{"||F==="%"||F==="@"||F==="|"||F==="("||F===")"||!F||F===Dt?S:(S+=F,p.next(),d(S))};return d("")}function x(p){A(p);const d=w(p,"|");return A(p),d}function D(p,d){let S=null;switch(p.currentChar()){case"{":return d.braceNest>=1&&f(te.NOT_ALLOW_NEST_PLACEHOLDER,r(),0),p.next(),S=h(d,2,"{"),A(p),d.braceNest++,S;case"}":return d.braceNest>0&&d.currentType===2&&f(te.EMPTY_PLACEHOLDER,r(),0),p.next(),S=h(d,3,"}"),d.braceNest--,d.braceNest>0&&A(p),d.inLinked&&d.braceNest===0&&(d.inLinked=!1),S;case"@":return d.braceNest>0&&f(te.UNTERMINATED_CLOSING_BRACE,r(),0),S=B(p,d)||m(d),d.braceNest=0,S;default:{let V=!0,U=!0,T=!0;if(R(p))return d.braceNest>0&&f(te.UNTERMINATED_CLOSING_BRACE,r(),0),S=h(d,1,x(p)),d.braceNest=0,d.inLinked=!1,S;if(d.braceNest>0&&(d.currentType===5||d.currentType===6||d.currentType===7))return f(te.UNTERMINATED_CLOSING_BRACE,r(),0),d.braceNest=0,Y(p,d);if(V=_(p,d))return S=h(d,5,gn(p)),A(p),S;if(U=b(p,d))return S=h(d,6,ft(p)),A(p),S;if(T=v(p,d))return S=h(d,7,jt(p)),A(p),S;if(!V&&!U&&!T)return S=h(d,13,g(p)),f(te.INVALID_TOKEN_IN_PLACEHOLDER,r(),0,S.value),A(p),S;break}}return S}function B(p,d){const{currentType:S}=d;let F=null;const V=p.currentChar();switch((S===8||S===9||S===12||S===10)&&(V===He||V===Dt)&&f(te.INVALID_LINKED_FORMAT,r(),0),V){case"@":return p.next(),F=h(d,8,"@"),d.inLinked=!0,F;case".":return A(p),p.next(),h(d,9,".");case":":return A(p),p.next(),h(d,10,":");default:return R(p)?(F=h(d,1,x(p)),d.braceNest=0,d.inLinked=!1,F):E(p,d)||I(p,d)?(A(p),B(p,d)):L(p,d)?(A(p),h(d,12,$(p))):N(p,d)?(A(p),V==="{"?D(p,d)||F:h(d,11,y(p))):(S===8&&f(te.INVALID_LINKED_FORMAT,r(),0),d.braceNest=0,d.inLinked=!1,Y(p,d))}}function Y(p,d){let S={type:14};if(d.braceNest>0)return D(p,d)||m(d);if(d.inLinked)return B(p,d)||m(d);switch(p.currentChar()){case"{":return D(p,d)||m(d);case"}":return f(te.UNBALANCED_CLOSING_BRACE,r(),0),p.next(),h(d,3,"}");case"@":return B(p,d)||m(d);default:{if(R(p))return S=h(d,1,x(p)),d.braceNest=0,d.inLinked=!1,S;const{isModulo:V,hasSpace:U}=j(p);if(V)return U?h(d,0,on(p)):h(d,4,nn(p));if(K(p))return h(d,0,on(p));break}}return S}function G(){const{currentType:p,offset:d,startLoc:S,endLoc:F}=l;return l.lastType=p,l.lastOffset=d,l.lastStartLoc=S,l.lastEndLoc=F,l.offset=s(),l.startLoc=r(),o.currentChar()===Jt?h(l,14):Y(o,l)}return{nextToken:G,currentOffset:s,currentPosition:r,context:c}}const jf="parser",Gf=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function Yf(e,t,n){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const o=parseInt(t||n,16);return o<=55295||o>=57344?String.fromCodePoint(o):"�"}}}function Vf(e={}){const t=e.location!==!1,{onError:n,onWarn:o}=e;function s(_,b,v,E,...L){const I=_.currentPosition();if(I.offset+=E,I.column+=E,n){const N=t?or(v,I):null,R=Tn(b,N,{domain:jf,args:L});n(R)}}function r(_,b,v,E,...L){const I=_.currentPosition();if(I.offset+=E,I.column+=E,o){const N=t?or(v,I):null;o(If(b,N,L))}}function i(_,b,v){const E={type:_};return t&&(E.start=b,E.end=b,E.loc={start:v,end:v}),E}function a(_,b,v,E){t&&(_.end=b,_.loc&&(_.loc.end=v))}function l(_,b){const v=_.context(),E=i(3,v.offset,v.startLoc);return E.value=b,a(E,_.currentOffset(),_.currentPosition()),E}function c(_,b){const v=_.context(),{lastOffset:E,lastStartLoc:L}=v,I=i(5,E,L);return I.index=parseInt(b,10),_.nextToken(),a(I,_.currentOffset(),_.currentPosition()),I}function u(_,b,v){const E=_.context(),{lastOffset:L,lastStartLoc:I}=E,N=i(4,L,I);return N.key=b,v===!0&&(N.modulo=!0),_.nextToken(),a(N,_.currentOffset(),_.currentPosition()),N}function f(_,b){const v=_.context(),{lastOffset:E,lastStartLoc:L}=v,I=i(9,E,L);return I.value=b.replace(Gf,Yf),_.nextToken(),a(I,_.currentOffset(),_.currentPosition()),I}function h(_){const b=_.nextToken(),v=_.context(),{lastOffset:E,lastStartLoc:L}=v,I=i(8,E,L);return b.type!==12?(s(_,te.UNEXPECTED_EMPTY_LINKED_MODIFIER,v.lastStartLoc,0),I.value="",a(I,E,L),{nextConsumeToken:b,node:I}):(b.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,pt(b)),I.value=b.value||"",a(I,_.currentOffset(),_.currentPosition()),{node:I})}function m(_,b){const v=_.context(),E=i(7,v.offset,v.startLoc);return E.value=b,a(E,_.currentOffset(),_.currentPosition()),E}function w(_){const b=_.context(),v=i(6,b.offset,b.startLoc);let E=_.nextToken();if(E.type===9){const L=h(_);v.modifier=L.node,E=L.nextConsumeToken||_.nextToken()}switch(E.type!==10&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(E)),E=_.nextToken(),E.type===2&&(E=_.nextToken()),E.type){case 11:E.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(E)),v.key=m(_,E.value||"");break;case 5:E.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(E)),v.key=u(_,E.value||"");break;case 6:E.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(E)),v.key=c(_,E.value||"");break;case 7:E.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(E)),v.key=f(_,E.value||"");break;default:{s(_,te.UNEXPECTED_EMPTY_LINKED_KEY,b.lastStartLoc,0);const L=_.context(),I=i(7,L.offset,L.startLoc);return I.value="",a(I,L.offset,L.startLoc),v.key=I,a(v,L.offset,L.startLoc),{nextConsumeToken:E,node:v}}}return a(v,_.currentOffset(),_.currentPosition()),{node:v}}function k(_){const b=_.context(),v=b.currentType===1?_.currentOffset():b.offset,E=b.currentType===1?b.endLoc:b.startLoc,L=i(2,v,E);L.items=[];let I=null,N=null;do{const K=I||_.nextToken();switch(I=null,K.type){case 0:K.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(K)),L.items.push(l(_,K.value||""));break;case 6:K.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(K)),L.items.push(c(_,K.value||""));break;case 4:N=!0;break;case 5:K.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(K)),L.items.push(u(_,K.value||"",!!N)),N&&(r(_,es.USE_MODULO_SYNTAX,b.lastStartLoc,0,pt(K)),N=null);break;case 7:K.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(K)),L.items.push(f(_,K.value||""));break;case 8:{const ne=w(_);L.items.push(ne.node),I=ne.nextConsumeToken||null;break}}}while(b.currentType!==14&&b.currentType!==1);const R=b.currentType===1?b.lastOffset:_.currentOffset(),j=b.currentType===1?b.lastEndLoc:_.currentPosition();return a(L,R,j),L}function A(_,b,v,E){const L=_.context();let I=E.items.length===0;const N=i(1,b,v);N.cases=[],N.cases.push(E);do{const R=k(_);I||(I=R.items.length===0),N.cases.push(R)}while(L.currentType!==14);return I&&s(_,te.MUST_HAVE_MESSAGES_IN_PLURAL,v,0),a(N,_.currentOffset(),_.currentPosition()),N}function O(_){const b=_.context(),{offset:v,startLoc:E}=b,L=k(_);return b.currentType===14?L:A(_,v,E,L)}function C(_){const b=Uf(_,Aa({},e)),v=b.context(),E=i(0,v.offset,v.startLoc);return t&&E.loc&&(E.loc.source=_),E.body=O(b),e.onCacheKey&&(E.cacheKey=e.onCacheKey(_)),v.currentType!==14&&s(b,te.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,_[v.offset]||""),a(E,b.currentOffset(),b.currentPosition()),E}return{parse:C}}function pt(e){if(e.type===14)return"EOF";const t=(e.value||"").replace(/\r?\n/gu,"\\n");return t.length>10?t.slice(0,9)+"…":t}function Hf(e,t={}){const n={ast:e,helpers:new Set};return{context:()=>n,helper:r=>(n.helpers.add(r),r)}}function Sa(e,t){for(let n=0;nIa(n)),e}function Ia(e){if(e.items.length===1){const t=e.items[0];(t.type===3||t.type===9)&&(e.static=t.value,delete t.value)}else{const t=[];for(let n=0;ni;function l(k,A){i.code+=k}function c(k,A=!0){const O=A?o:"";l(s?O+" ".repeat(k):O)}function u(k=!0){const A=++i.indentLevel;k&&c(A)}function f(k=!0){const A=--i.indentLevel;k&&c(A)}function h(){c(i.indentLevel)}return{context:a,push:l,indent:u,deindent:f,newline:h,helper:k=>`_${k}`,needIndent:()=>i.needIndent}}function Zf(e,t){const{helper:n}=e;e.push(`${n("linked")}(`),Sn(e,t.key),t.modifier?(e.push(", "),Sn(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function Qf(e,t){const{helper:n,needIndent:o}=e;e.push(`${n("normalize")}([`),e.indent(o());const s=t.items.length;for(let r=0;r1){e.push(`${n("plural")}([`),e.indent(o());const s=t.cases.length;for(let r=0;r{const n=Ea(t.mode)?t.mode:"normal",o=Ea(t.filename)?t.filename:"message.intl";t.sourceMap;const s=t.breakLineCode!=null?t.breakLineCode:n==="arrow"?";":` -`,r=t.needIndent?t.needIndent:n!=="arrow",i=e.helpers||[],a=Jf(e,{filename:o,breakLineCode:s,needIndent:r});a.push(n==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),a.indent(r),i.length>0&&(a.push(`const { ${Ta(i.map(u=>`${u}: _${u}`),", ")} } = ctx`),a.newline()),a.push("return "),Sn(a,e),a.deindent(r),a.push("}"),delete e.helpers;const{code:l,map:c}=a.context();return{ast:e,code:l,map:c?c.toJSON():void 0}};function oh(e,t={}){const n=Aa({},t),o=!!n.jit,s=!!n.minify,r=n.optimize==null?!0:n.optimize,a=Vf(n).parse(e);return o?(r&&zf(a),s&&Ln(a),{ast:a,code:""}):(qf(a,n),nh(a,n))}/*! + */function Ef(e,t,n){return{line:e,column:t,offset:n}}function or(e,t,n){return{start:e,end:t}}const Tf=/\{([0-9a-zA-Z]+)\}/g;function Ci(e,...t){return t.length===1&&Lf(t[0])&&(t=t[0]),(!t||!t.hasOwnProperty)&&(t={}),e.replace(Tf,(n,o)=>t.hasOwnProperty(o)?t[o]:"")}const Ai=Object.assign,Ei=e=>typeof e=="string",Lf=e=>e!==null&&typeof e=="object";function Ti(e,t=""){return e.reduce((n,o,s)=>s===0?n+o:n+t+o,"")}const es={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},Sf={[es.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function xf(e,t,...n){const o=Ci(Sf[e],...n||[]),s={message:String(o),code:e};return t&&(s.location=t),s}const te={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14,UNHANDLED_CODEGEN_NODE_TYPE:15,UNHANDLED_MINIFIER_NODE_TYPE:16,__EXTEND_POINT__:17},If={[te.EXPECTED_TOKEN]:"Expected token: '{0}'",[te.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[te.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[te.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[te.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[te.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[te.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[te.EMPTY_PLACEHOLDER]:"Empty placeholder",[te.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[te.INVALID_LINKED_FORMAT]:"Invalid linked format",[te.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[te.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[te.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[te.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[te.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[te.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function Tn(e,t,n={}){const{domain:o,messages:s,args:r}=n,a=Ci((s||If)[e]||"",...r||[]),i=new SyntaxError(String(a));return i.code=e,t&&(i.location=t),i.domain=o,i}function Ff(e){throw e}const Dt=" ",Mf="\r",He=` +`,Pf="\u2028",Bf="\u2029";function Df(e){const t=e;let n=0,o=1,s=1,r=0;const a=L=>t[L]===Mf&&t[L+1]===He,i=L=>t[L]===He,l=L=>t[L]===Bf,c=L=>t[L]===Pf,u=L=>a(L)||i(L)||l(L)||c(L),f=()=>n,h=()=>o,m=()=>s,w=()=>r,k=L=>a(L)||l(L)||c(L)?He:t[L],A=()=>k(n),O=()=>k(n+r);function C(){return r=0,u(n)&&(o++,s=0),a(n)&&n++,n++,s++,t[n]}function _(){return a(n+r)&&r++,r++,t[n+r]}function b(){n=0,o=1,s=1,r=0}function v(L=0){r=L}function E(){const L=n+r;for(;L!==n;)C();r=0}return{index:f,line:h,column:m,peekOffset:w,charAt:k,currentChar:A,currentPeek:O,next:C,peek:_,reset:b,resetPeek:v,skipToPeek:E}}const Jt=void 0,Rf=".",Li="'",Wf="tokenizer";function Uf(e,t={}){const n=t.location!==!1,o=Df(e),s=()=>o.index(),r=()=>Ef(o.line(),o.column(),o.index()),a=r(),i=s(),l={currentType:14,offset:i,startLoc:a,endLoc:a,lastType:14,lastOffset:i,lastStartLoc:a,lastEndLoc:a,braceNest:0,inLinked:!1,text:""},c=()=>l,{onError:u}=t;function f(p,d,S,...F){const V=c();if(d.column+=S,d.offset+=S,u){const U=n?or(V.startLoc,d):null,T=Tn(p,U,{domain:Wf,args:F});u(T)}}function h(p,d,S){p.endLoc=r(),p.currentType=d;const F={type:d};return n&&(F.loc=or(p.startLoc,p.endLoc)),S!=null&&(F.value=S),F}const m=p=>h(p,14);function w(p,d){return p.currentChar()===d?(p.next(),d):(f(te.EXPECTED_TOKEN,r(),0,d),"")}function k(p){let d="";for(;p.currentPeek()===Dt||p.currentPeek()===He;)d+=p.currentPeek(),p.peek();return d}function A(p){const d=k(p);return p.skipToPeek(),d}function O(p){if(p===Jt)return!1;const d=p.charCodeAt(0);return d>=97&&d<=122||d>=65&&d<=90||d===95}function C(p){if(p===Jt)return!1;const d=p.charCodeAt(0);return d>=48&&d<=57}function _(p,d){const{currentType:S}=d;if(S!==2)return!1;k(p);const F=O(p.currentPeek());return p.resetPeek(),F}function b(p,d){const{currentType:S}=d;if(S!==2)return!1;k(p);const F=p.currentPeek()==="-"?p.peek():p.currentPeek(),V=C(F);return p.resetPeek(),V}function v(p,d){const{currentType:S}=d;if(S!==2)return!1;k(p);const F=p.currentPeek()===Li;return p.resetPeek(),F}function E(p,d){const{currentType:S}=d;if(S!==8)return!1;k(p);const F=p.currentPeek()===".";return p.resetPeek(),F}function L(p,d){const{currentType:S}=d;if(S!==9)return!1;k(p);const F=O(p.currentPeek());return p.resetPeek(),F}function x(p,d){const{currentType:S}=d;if(!(S===8||S===12))return!1;k(p);const F=p.currentPeek()===":";return p.resetPeek(),F}function N(p,d){const{currentType:S}=d;if(S!==10)return!1;const F=()=>{const U=p.currentPeek();return U==="{"?O(p.peek()):U==="@"||U==="%"||U==="|"||U===":"||U==="."||U===Dt||!U?!1:U===He?(p.peek(),F()):K(p,!1)},V=F();return p.resetPeek(),V}function R(p){k(p);const d=p.currentPeek()==="|";return p.resetPeek(),d}function j(p){const d=k(p),S=p.currentPeek()==="%"&&p.peek()==="{";return p.resetPeek(),{isModulo:S,hasSpace:d.length>0}}function K(p,d=!0){const S=(V=!1,U="",T=!1)=>{const P=p.currentPeek();return P==="{"?U==="%"?!1:V:P==="@"||!P?U==="%"?!0:V:P==="%"?(p.peek(),S(V,"%",!0)):P==="|"?U==="%"||T?!0:!(U===Dt||U===He):P===Dt?(p.peek(),S(!0,Dt,T)):P===He?(p.peek(),S(!0,He,T)):!0},F=S();return d&&p.resetPeek(),F}function ne(p,d){const S=p.currentChar();return S===Jt?Jt:d(S)?(p.next(),S):null}function ue(p){const d=p.charCodeAt(0);return d>=97&&d<=122||d>=65&&d<=90||d>=48&&d<=57||d===95||d===36}function z(p){return ne(p,ue)}function W(p){const d=p.charCodeAt(0);return d>=97&&d<=122||d>=65&&d<=90||d>=48&&d<=57||d===95||d===36||d===45}function X(p){return ne(p,W)}function le(p){const d=p.charCodeAt(0);return d>=48&&d<=57}function Ee(p){return ne(p,le)}function Nt(p){const d=p.charCodeAt(0);return d>=48&&d<=57||d>=65&&d<=70||d>=97&&d<=102}function Ie(p){return ne(p,Nt)}function Pe(p){let d="",S="";for(;d=Ee(p);)S+=d;return S}function nn(p){A(p);const d=p.currentChar();return d!=="%"&&f(te.EXPECTED_TOKEN,r(),0,d),p.next(),"%"}function on(p){let d="";for(;;){const S=p.currentChar();if(S==="{"||S==="}"||S==="@"||S==="|"||!S)break;if(S==="%")if(K(p))d+=S,p.next();else break;else if(S===Dt||S===He)if(K(p))d+=S,p.next();else{if(R(p))break;d+=S,p.next()}else d+=S,p.next()}return d}function gn(p){A(p);let d="",S="";for(;d=X(p);)S+=d;return p.currentChar()===Jt&&f(te.UNTERMINATED_CLOSING_BRACE,r(),0),S}function ft(p){A(p);let d="";return p.currentChar()==="-"?(p.next(),d+=`-${Pe(p)}`):d+=Pe(p),p.currentChar()===Jt&&f(te.UNTERMINATED_CLOSING_BRACE,r(),0),d}function Ut(p){return p!==Li&&p!==He}function jt(p){A(p),w(p,"'");let d="",S="";for(;d=ne(p,Ut);)d==="\\"?S+=rn(p):S+=d;const F=p.currentChar();return F===He||F===Jt?(f(te.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,r(),0),F===He&&(p.next(),w(p,"'")),S):(w(p,"'"),S)}function rn(p){const d=p.currentChar();switch(d){case"\\":case"'":return p.next(),`\\${d}`;case"u":return rt(p,d,4);case"U":return rt(p,d,6);default:return f(te.UNKNOWN_ESCAPE_SEQUENCE,r(),0,d),""}}function rt(p,d,S){w(p,d);let F="";for(let V=0;V{const F=p.currentChar();return F==="{"||F==="%"||F==="@"||F==="|"||F==="("||F===")"||!F||F===Dt?S:(S+=F,p.next(),d(S))};return d("")}function I(p){A(p);const d=w(p,"|");return A(p),d}function D(p,d){let S=null;switch(p.currentChar()){case"{":return d.braceNest>=1&&f(te.NOT_ALLOW_NEST_PLACEHOLDER,r(),0),p.next(),S=h(d,2,"{"),A(p),d.braceNest++,S;case"}":return d.braceNest>0&&d.currentType===2&&f(te.EMPTY_PLACEHOLDER,r(),0),p.next(),S=h(d,3,"}"),d.braceNest--,d.braceNest>0&&A(p),d.inLinked&&d.braceNest===0&&(d.inLinked=!1),S;case"@":return d.braceNest>0&&f(te.UNTERMINATED_CLOSING_BRACE,r(),0),S=B(p,d)||m(d),d.braceNest=0,S;default:{let V=!0,U=!0,T=!0;if(R(p))return d.braceNest>0&&f(te.UNTERMINATED_CLOSING_BRACE,r(),0),S=h(d,1,I(p)),d.braceNest=0,d.inLinked=!1,S;if(d.braceNest>0&&(d.currentType===5||d.currentType===6||d.currentType===7))return f(te.UNTERMINATED_CLOSING_BRACE,r(),0),d.braceNest=0,Y(p,d);if(V=_(p,d))return S=h(d,5,gn(p)),A(p),S;if(U=b(p,d))return S=h(d,6,ft(p)),A(p),S;if(T=v(p,d))return S=h(d,7,jt(p)),A(p),S;if(!V&&!U&&!T)return S=h(d,13,g(p)),f(te.INVALID_TOKEN_IN_PLACEHOLDER,r(),0,S.value),A(p),S;break}}return S}function B(p,d){const{currentType:S}=d;let F=null;const V=p.currentChar();switch((S===8||S===9||S===12||S===10)&&(V===He||V===Dt)&&f(te.INVALID_LINKED_FORMAT,r(),0),V){case"@":return p.next(),F=h(d,8,"@"),d.inLinked=!0,F;case".":return A(p),p.next(),h(d,9,".");case":":return A(p),p.next(),h(d,10,":");default:return R(p)?(F=h(d,1,I(p)),d.braceNest=0,d.inLinked=!1,F):E(p,d)||x(p,d)?(A(p),B(p,d)):L(p,d)?(A(p),h(d,12,$(p))):N(p,d)?(A(p),V==="{"?D(p,d)||F:h(d,11,y(p))):(S===8&&f(te.INVALID_LINKED_FORMAT,r(),0),d.braceNest=0,d.inLinked=!1,Y(p,d))}}function Y(p,d){let S={type:14};if(d.braceNest>0)return D(p,d)||m(d);if(d.inLinked)return B(p,d)||m(d);switch(p.currentChar()){case"{":return D(p,d)||m(d);case"}":return f(te.UNBALANCED_CLOSING_BRACE,r(),0),p.next(),h(d,3,"}");case"@":return B(p,d)||m(d);default:{if(R(p))return S=h(d,1,I(p)),d.braceNest=0,d.inLinked=!1,S;const{isModulo:V,hasSpace:U}=j(p);if(V)return U?h(d,0,on(p)):h(d,4,nn(p));if(K(p))return h(d,0,on(p));break}}return S}function G(){const{currentType:p,offset:d,startLoc:S,endLoc:F}=l;return l.lastType=p,l.lastOffset=d,l.lastStartLoc=S,l.lastEndLoc=F,l.offset=s(),l.startLoc=r(),o.currentChar()===Jt?h(l,14):Y(o,l)}return{nextToken:G,currentOffset:s,currentPosition:r,context:c}}const jf="parser",Gf=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function Yf(e,t,n){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const o=parseInt(t||n,16);return o<=55295||o>=57344?String.fromCodePoint(o):"�"}}}function Vf(e={}){const t=e.location!==!1,{onError:n,onWarn:o}=e;function s(_,b,v,E,...L){const x=_.currentPosition();if(x.offset+=E,x.column+=E,n){const N=t?or(v,x):null,R=Tn(b,N,{domain:jf,args:L});n(R)}}function r(_,b,v,E,...L){const x=_.currentPosition();if(x.offset+=E,x.column+=E,o){const N=t?or(v,x):null;o(xf(b,N,L))}}function a(_,b,v){const E={type:_};return t&&(E.start=b,E.end=b,E.loc={start:v,end:v}),E}function i(_,b,v,E){t&&(_.end=b,_.loc&&(_.loc.end=v))}function l(_,b){const v=_.context(),E=a(3,v.offset,v.startLoc);return E.value=b,i(E,_.currentOffset(),_.currentPosition()),E}function c(_,b){const v=_.context(),{lastOffset:E,lastStartLoc:L}=v,x=a(5,E,L);return x.index=parseInt(b,10),_.nextToken(),i(x,_.currentOffset(),_.currentPosition()),x}function u(_,b,v){const E=_.context(),{lastOffset:L,lastStartLoc:x}=E,N=a(4,L,x);return N.key=b,v===!0&&(N.modulo=!0),_.nextToken(),i(N,_.currentOffset(),_.currentPosition()),N}function f(_,b){const v=_.context(),{lastOffset:E,lastStartLoc:L}=v,x=a(9,E,L);return x.value=b.replace(Gf,Yf),_.nextToken(),i(x,_.currentOffset(),_.currentPosition()),x}function h(_){const b=_.nextToken(),v=_.context(),{lastOffset:E,lastStartLoc:L}=v,x=a(8,E,L);return b.type!==12?(s(_,te.UNEXPECTED_EMPTY_LINKED_MODIFIER,v.lastStartLoc,0),x.value="",i(x,E,L),{nextConsumeToken:b,node:x}):(b.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,pt(b)),x.value=b.value||"",i(x,_.currentOffset(),_.currentPosition()),{node:x})}function m(_,b){const v=_.context(),E=a(7,v.offset,v.startLoc);return E.value=b,i(E,_.currentOffset(),_.currentPosition()),E}function w(_){const b=_.context(),v=a(6,b.offset,b.startLoc);let E=_.nextToken();if(E.type===9){const L=h(_);v.modifier=L.node,E=L.nextConsumeToken||_.nextToken()}switch(E.type!==10&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(E)),E=_.nextToken(),E.type===2&&(E=_.nextToken()),E.type){case 11:E.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(E)),v.key=m(_,E.value||"");break;case 5:E.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(E)),v.key=u(_,E.value||"");break;case 6:E.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(E)),v.key=c(_,E.value||"");break;case 7:E.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(E)),v.key=f(_,E.value||"");break;default:{s(_,te.UNEXPECTED_EMPTY_LINKED_KEY,b.lastStartLoc,0);const L=_.context(),x=a(7,L.offset,L.startLoc);return x.value="",i(x,L.offset,L.startLoc),v.key=x,i(v,L.offset,L.startLoc),{nextConsumeToken:E,node:v}}}return i(v,_.currentOffset(),_.currentPosition()),{node:v}}function k(_){const b=_.context(),v=b.currentType===1?_.currentOffset():b.offset,E=b.currentType===1?b.endLoc:b.startLoc,L=a(2,v,E);L.items=[];let x=null,N=null;do{const K=x||_.nextToken();switch(x=null,K.type){case 0:K.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(K)),L.items.push(l(_,K.value||""));break;case 6:K.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(K)),L.items.push(c(_,K.value||""));break;case 4:N=!0;break;case 5:K.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(K)),L.items.push(u(_,K.value||"",!!N)),N&&(r(_,es.USE_MODULO_SYNTAX,b.lastStartLoc,0,pt(K)),N=null);break;case 7:K.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(K)),L.items.push(f(_,K.value||""));break;case 8:{const ne=w(_);L.items.push(ne.node),x=ne.nextConsumeToken||null;break}}}while(b.currentType!==14&&b.currentType!==1);const R=b.currentType===1?b.lastOffset:_.currentOffset(),j=b.currentType===1?b.lastEndLoc:_.currentPosition();return i(L,R,j),L}function A(_,b,v,E){const L=_.context();let x=E.items.length===0;const N=a(1,b,v);N.cases=[],N.cases.push(E);do{const R=k(_);x||(x=R.items.length===0),N.cases.push(R)}while(L.currentType!==14);return x&&s(_,te.MUST_HAVE_MESSAGES_IN_PLURAL,v,0),i(N,_.currentOffset(),_.currentPosition()),N}function O(_){const b=_.context(),{offset:v,startLoc:E}=b,L=k(_);return b.currentType===14?L:A(_,v,E,L)}function C(_){const b=Uf(_,Ai({},e)),v=b.context(),E=a(0,v.offset,v.startLoc);return t&&E.loc&&(E.loc.source=_),E.body=O(b),e.onCacheKey&&(E.cacheKey=e.onCacheKey(_)),v.currentType!==14&&s(b,te.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,_[v.offset]||""),i(E,b.currentOffset(),b.currentPosition()),E}return{parse:C}}function pt(e){if(e.type===14)return"EOF";const t=(e.value||"").replace(/\r?\n/gu,"\\n");return t.length>10?t.slice(0,9)+"…":t}function Hf(e,t={}){const n={ast:e,helpers:new Set};return{context:()=>n,helper:r=>(n.helpers.add(r),r)}}function Si(e,t){for(let n=0;nxi(n)),e}function xi(e){if(e.items.length===1){const t=e.items[0];(t.type===3||t.type===9)&&(e.static=t.value,delete t.value)}else{const t=[];for(let n=0;na;function l(k,A){a.code+=k}function c(k,A=!0){const O=A?o:"";l(s?O+" ".repeat(k):O)}function u(k=!0){const A=++a.indentLevel;k&&c(A)}function f(k=!0){const A=--a.indentLevel;k&&c(A)}function h(){c(a.indentLevel)}return{context:i,push:l,indent:u,deindent:f,newline:h,helper:k=>`_${k}`,needIndent:()=>a.needIndent}}function Zf(e,t){const{helper:n}=e;e.push(`${n("linked")}(`),Sn(e,t.key),t.modifier?(e.push(", "),Sn(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function Qf(e,t){const{helper:n,needIndent:o}=e;e.push(`${n("normalize")}([`),e.indent(o());const s=t.items.length;for(let r=0;r1){e.push(`${n("plural")}([`),e.indent(o());const s=t.cases.length;for(let r=0;r{const n=Ei(t.mode)?t.mode:"normal",o=Ei(t.filename)?t.filename:"message.intl";t.sourceMap;const s=t.breakLineCode!=null?t.breakLineCode:n==="arrow"?";":` +`,r=t.needIndent?t.needIndent:n!=="arrow",a=e.helpers||[],i=Jf(e,{filename:o,breakLineCode:s,needIndent:r});i.push(n==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),i.indent(r),a.length>0&&(i.push(`const { ${Ti(a.map(u=>`${u}: _${u}`),", ")} } = ctx`),i.newline()),i.push("return "),Sn(i,e),i.deindent(r),i.push("}"),delete e.helpers;const{code:l,map:c}=i.context();return{ast:e,code:l,map:c?c.toJSON():void 0}};function oh(e,t={}){const n=Ai({},t),o=!!n.jit,s=!!n.minify,r=n.optimize==null?!0:n.optimize,i=Vf(n).parse(e);return o?(r&&zf(i),s&&Ln(i),{ast:i,code:""}):(qf(i,n),nh(i,n))}/*! * core-base v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */function rh(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Bt().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Bt().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Bt().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function $t(e){return fe(e)&&ns(e)===0&&(ut(e,"b")||ut(e,"body"))}const xa=["b","body"];function sh(e){return Zt(e,xa)}const Fa=["c","cases"];function ih(e){return Zt(e,Fa,[])}const Ma=["s","static"];function ah(e){return Zt(e,Ma)}const Pa=["i","items"];function lh(e){return Zt(e,Pa,[])}const Ba=["t","type"];function ns(e){return Zt(e,Ba)}const Da=["v","value"];function rr(e,t){const n=Zt(e,Da);if(n!=null)return n;throw ao(t)}const Ra=["m","modifier"];function ch(e){return Zt(e,Ra)}const Wa=["k","key"];function uh(e){const t=Zt(e,Wa);if(t)return t;throw ao(6)}function Zt(e,t,n){for(let o=0;o{i===void 0?i=a:i+=a},h[1]=()=>{i!==void 0&&(t.push(i),i=void 0)},h[2]=()=>{h[0](),s++},h[3]=()=>{if(s>0)s--,o=4,h[0]();else{if(s=0,i===void 0||(i=gh(i),i===!1))return!1;h[1]()}};function m(){const w=e[n+1];if(o===5&&w==="'"||o===6&&w==='"')return n++,a="\\"+w,h[0](),!0}for(;o!==null;)if(n++,r=e[n],!(r==="\\"&&m())){if(l=hh(r),f=Qt[o],c=f[l]||f.l||8,c===8||(o=c[0],c[1]!==void 0&&(u=h[c[1]],u&&(a=r,u()===!1))))return;if(o===7)return t}}const ja=new Map;function _h(e,t){return fe(e)?e[t]:null}function bh(e,t){if(!fe(e))return null;let n=ja.get(t);if(n||(n=mh(t),n&&ja.set(t,n)),!n)return null;const o=n.length;let s=e,r=0;for(;re,vh=e=>"",wh="text",kh=e=>e.length===0?"":Af(e),$h=Cf;function Ga(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function Oh(e){const t=Ae(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(Ae(e.named.count)||Ae(e.named.n))?Ae(e.named.count)?e.named.count:Ae(e.named.n)?e.named.n:t:t}function Nh(e,t){t.count||(t.count=e),t.n||(t.n=e)}function Ch(e={}){const t=e.locale,n=Oh(e),o=fe(e.pluralRules)&&q(t)&&we(e.pluralRules[t])?e.pluralRules[t]:Ga,s=fe(e.pluralRules)&&q(t)&&we(e.pluralRules[t])?Ga:void 0,r=O=>O[o(n,O.length,s)],i=e.list||[],a=O=>i[O],l=e.named||me();Ae(e.pluralIndex)&&Nh(n,l);const c=O=>l[O];function u(O){const C=we(e.messages)?e.messages(O):fe(e.messages)?e.messages[O]:!1;return C||(e.parent?e.parent.message(O):vh)}const f=O=>e.modifiers?e.modifiers[O]:yh,h=se(e.processor)&&we(e.processor.normalize)?e.processor.normalize:kh,m=se(e.processor)&&we(e.processor.interpolate)?e.processor.interpolate:$h,w=se(e.processor)&&q(e.processor.type)?e.processor.type:wh,A={list:a,named:c,plural:r,linked:(O,...C)=>{const[_,b]=C;let v="text",E="";C.length===1?fe(_)?(E=_.modifier||E,v=_.type||v):q(_)&&(E=_||E):C.length===2&&(q(_)&&(E=_||E),q(b)&&(v=b||v));const L=u(O)(A),I=v==="vnode"&&Oe(L)&&E?L[0]:L;return E?f(E)(I,v):I},message:u,type:w,interpolate:m,normalize:h,values:We(me(),i,l)};return A}let lo=null;function Ah(e){lo=e}function Eh(e,t,n){lo&&lo.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:n})}const Th=Lh("function:translate");function Lh(e){return t=>lo&&lo.emit(e,t)}const Sh=es.__EXTEND_POINT__,fn=er(Sh),Ih={FALLBACK_TO_TRANSLATE:fn(),CANNOT_FORMAT_NUMBER:fn(),FALLBACK_TO_NUMBER_FORMAT:fn(),CANNOT_FORMAT_DATE:fn(),FALLBACK_TO_DATE_FORMAT:fn(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:fn(),__EXTEND_POINT__:fn()},Ya=te.__EXTEND_POINT__,hn=er(Ya),dt={INVALID_ARGUMENT:Ya,INVALID_DATE_ARGUMENT:hn(),INVALID_ISO_DATE_ARGUMENT:hn(),NOT_SUPPORT_NON_STRING_MESSAGE:hn(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:hn(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:hn(),NOT_SUPPORT_LOCALE_TYPE:hn(),__EXTEND_POINT__:hn()};function Ot(e){return Tn(e,null,void 0)}function os(e,t){return t.locale!=null?Va(t.locale):Va(e.locale)}let rs;function Va(e){if(q(e))return e;if(we(e)){if(e.resolvedOnce&&rs!=null)return rs;if(e.constructor.name==="Function"){const t=e();if(Nf(t))throw Ot(dt.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return rs=t}else throw Ot(dt.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw Ot(dt.NOT_SUPPORT_LOCALE_TYPE)}function xh(e,t,n){return[...new Set([n,...Oe(t)?t:fe(t)?Object.keys(t):q(t)?[t]:[n]])]}function Ha(e,t,n){const o=q(n)?n:In,s=e;s.__localeChainCache||(s.__localeChainCache=new Map);let r=s.__localeChainCache.get(o);if(!r){r=[];let i=[n];for(;Oe(i);)i=qa(r,i,t);const a=Oe(t)||!se(t)?t:t.default?t.default:null;i=q(a)?[a]:a,Oe(i)&&qa(r,i,!1),s.__localeChainCache.set(o,r)}return r}function qa(e,t,n){let o=!0;for(let s=0;s`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function Bh(){return{upper:(e,t)=>t==="text"&&q(e)?e.toUpperCase():t==="vnode"&&fe(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&q(e)?e.toLowerCase():t==="vnode"&&fe(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&q(e)?Ka(e):t==="vnode"&&fe(e)&&"__v_isVNode"in e?Ka(e.children):e}}let Xa;function Ja(e){Xa=e}let Za;function Dh(e){Za=e}let Qa;function Rh(e){Qa=e}let el=null;const Wh=e=>{el=e},Uh=()=>el;let tl=null;const nl=e=>{tl=e},jh=()=>tl;let ol=0;function Gh(e={}){const t=we(e.onWarn)?e.onWarn:bf,n=q(e.version)?e.version:Ph,o=q(e.locale)||we(e.locale)?e.locale:In,s=we(o)?In:o,r=Oe(e.fallbackLocale)||se(e.fallbackLocale)||q(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:s,i=se(e.messages)?e.messages:ss(s),a=se(e.datetimeFormats)?e.datetimeFormats:ss(s),l=se(e.numberFormats)?e.numberFormats:ss(s),c=We(me(),e.modifiers,Bh()),u=e.pluralRules||me(),f=we(e.missing)?e.missing:null,h=ce(e.missingWarn)||Xt(e.missingWarn)?e.missingWarn:!0,m=ce(e.fallbackWarn)||Xt(e.fallbackWarn)?e.fallbackWarn:!0,w=!!e.fallbackFormat,k=!!e.unresolving,A=we(e.postTranslation)?e.postTranslation:null,O=se(e.processor)?e.processor:null,C=ce(e.warnHtmlMessage)?e.warnHtmlMessage:!0,_=!!e.escapeParameter,b=we(e.messageCompiler)?e.messageCompiler:Xa,v=we(e.messageResolver)?e.messageResolver:Za||_h,E=we(e.localeFallbacker)?e.localeFallbacker:Qa||xh,L=fe(e.fallbackContext)?e.fallbackContext:void 0,I=e,N=fe(I.__datetimeFormatters)?I.__datetimeFormatters:new Map,R=fe(I.__numberFormatters)?I.__numberFormatters:new Map,j=fe(I.__meta)?I.__meta:{};ol++;const K={version:n,cid:ol,locale:o,fallbackLocale:r,messages:i,modifiers:c,pluralRules:u,missing:f,missingWarn:h,fallbackWarn:m,fallbackFormat:w,unresolving:k,postTranslation:A,processor:O,warnHtmlMessage:C,escapeParameter:_,messageCompiler:b,messageResolver:v,localeFallbacker:E,fallbackContext:L,onWarn:t,__meta:j};return K.datetimeFormats=a,K.numberFormats=l,K.__datetimeFormatters=N,K.__numberFormatters=R,__INTLIFY_PROD_DEVTOOLS__&&Eh(K,n,j),K}const ss=e=>({[e]:me()});function is(e,t,n,o,s){const{missing:r,onWarn:i}=e;if(r!==null){const a=r(e,n,t,s);return q(a)?a:t}else return t}function co(e,t,n){const o=e;o.__localeChainCache=new Map,e.localeFallbacker(e,n,t)}function Yh(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function Vh(e,t){const n=t.indexOf(e);if(n===-1)return!1;for(let o=n+1;oHh(n,e)}function Hh(e,t){const n=sh(t);if(n==null)throw ao(0);if(ns(n)===1){const r=ih(n);return e.plural(r.reduce((i,a)=>[...i,rl(e,a)],[]))}else return rl(e,n)}function rl(e,t){const n=ah(t);if(n!=null)return e.type==="text"?n:e.normalize([n]);{const o=lh(t).reduce((s,r)=>[...s,ls(e,r)],[]);return e.normalize(o)}}function ls(e,t){const n=ns(t);switch(n){case 3:return rr(t,n);case 9:return rr(t,n);case 4:{const o=t;if(ut(o,"k")&&o.k)return e.interpolate(e.named(o.k));if(ut(o,"key")&&o.key)return e.interpolate(e.named(o.key));throw ao(n)}case 5:{const o=t;if(ut(o,"i")&&Ae(o.i))return e.interpolate(e.list(o.i));if(ut(o,"index")&&Ae(o.index))return e.interpolate(e.list(o.index));throw ao(n)}case 6:{const o=t,s=ch(o),r=uh(o);return e.linked(ls(e,r),s?ls(e,s):void 0,e.type)}case 7:return rr(t,n);case 8:return rr(t,n);default:throw new Error(`unhandled node on format message part: ${n}`)}}const sl=e=>e;let xn=me();function il(e,t={}){let n=!1;const o=t.onError||Ff;return t.onError=s=>{n=!0,o(s)},{...oh(e,t),detectError:n}}const qh=(e,t)=>{if(!q(e))throw Ot(dt.NOT_SUPPORT_NON_STRING_MESSAGE);{ce(t.warnHtmlMessage)&&t.warnHtmlMessage;const o=(t.onCacheKey||sl)(e),s=xn[o];if(s)return s;const{code:r,detectError:i}=il(e,t),a=new Function(`return ${r}`)();return i?a:xn[o]=a}};function zh(e,t){if(__INTLIFY_JIT_COMPILATION__&&!__INTLIFY_DROP_MESSAGE_COMPILER__&&q(e)){ce(t.warnHtmlMessage)&&t.warnHtmlMessage;const o=(t.onCacheKey||sl)(e),s=xn[o];if(s)return s;const{ast:r,detectError:i}=il(e,{...t,location:!1,jit:!0}),a=as(r);return i?a:xn[o]=a}else{const n=e.cacheKey;if(n){const o=xn[n];return o||(xn[n]=as(e))}else return as(e)}}const al=()=>"",ot=e=>we(e);function ll(e,...t){const{fallbackFormat:n,postTranslation:o,unresolving:s,messageCompiler:r,fallbackLocale:i,messages:a}=e,[l,c]=cs(...t),u=ce(c.missingWarn)?c.missingWarn:e.missingWarn,f=ce(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,h=ce(c.escapeParameter)?c.escapeParameter:e.escapeParameter,m=!!c.resolvedMessage,w=q(c.default)||ce(c.default)?ce(c.default)?r?l:()=>l:c.default:n?r?l:()=>l:"",k=n||w!=="",A=os(e,c);h&&Kh(c);let[O,C,_]=m?[l,A,a[A]||me()]:cl(e,l,A,i,f,u),b=O,v=l;if(!m&&!(q(b)||$t(b)||ot(b))&&k&&(b=w,v=b),!m&&(!(q(b)||$t(b)||ot(b))||!q(C)))return s?sr:l;let E=!1;const L=()=>{E=!0},I=ot(b)?b:ul(e,l,C,b,v,L);if(E)return b;const N=Zh(e,C,_,c),R=Ch(N),j=Xh(e,I,R);let K=o?o(j,l):j;if(h&&q(K)&&(K=$f(K)),__INTLIFY_PROD_DEVTOOLS__){const ne={timestamp:Date.now(),key:q(l)?l:ot(b)?b.key:"",locale:C||(ot(b)?b.locale:""),format:q(b)?b:ot(b)?b.source:"",message:K};ne.meta=We({},e.__meta,Uh()||{}),Th(ne)}return K}function Kh(e){Oe(e.list)?e.list=e.list.map(t=>q(t)?ka(t):t):fe(e.named)&&Object.keys(e.named).forEach(t=>{q(e.named[t])&&(e.named[t]=ka(e.named[t]))})}function cl(e,t,n,o,s,r){const{messages:i,onWarn:a,messageResolver:l,localeFallbacker:c}=e,u=c(e,o,n);let f=me(),h,m=null;const w="translate";for(let k=0;ko;return c.locale=n,c.key=t,c}const l=i(o,Jh(e,n,s,o,a,r));return l.locale=n,l.key=t,l.source=o,l}function Xh(e,t,n){return t(n)}function cs(...e){const[t,n,o]=e,s=me();if(!q(t)&&!Ae(t)&&!ot(t)&&!$t(t))throw Ot(dt.INVALID_ARGUMENT);const r=Ae(t)?String(t):(ot(t),t);return Ae(n)?s.plural=n:q(n)?s.default=n:se(n)&&!Qo(n)?s.named=n:Oe(n)&&(s.list=n),Ae(o)?s.plural=o:q(o)?s.default=o:se(o)&&We(s,o),[r,s]}function Jh(e,t,n,o,s,r){return{locale:t,key:n,warnHtmlMessage:s,onError:i=>{throw r&&r(i),i},onCacheKey:i=>yf(t,n,i)}}function Zh(e,t,n,o){const{modifiers:s,pluralRules:r,messageResolver:i,fallbackLocale:a,fallbackWarn:l,missingWarn:c,fallbackContext:u}=e,h={locale:t,modifiers:s,pluralRules:r,messages:m=>{let w=i(n,m);if(w==null&&u){const[,,k]=cl(u,m,t,a,l,c);w=i(k,m)}if(q(w)||$t(w)){let k=!1;const O=ul(e,m,t,w,m,()=>{k=!0});return k?al:O}else return ot(w)?w:al}};return e.processor&&(h.processor=e.processor),o.list&&(h.list=o.list),o.named&&(h.named=o.named),Ae(o.plural)&&(h.pluralIndex=o.plural),h}function pl(e,...t){const{datetimeFormats:n,unresolving:o,fallbackLocale:s,onWarn:r,localeFallbacker:i}=e,{__datetimeFormatters:a}=e,[l,c,u,f]=us(...t),h=ce(u.missingWarn)?u.missingWarn:e.missingWarn;ce(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const m=!!u.part,w=os(e,u),k=i(e,s,w);if(!q(l)||l==="")return new Intl.DateTimeFormat(w,f).format(c);let A={},O,C=null;const _="datetime format";for(let E=0;E{dl.includes(l)?i[l]=n[l]:r[l]=n[l]}),q(o)?r.locale=o:se(o)&&(i=o),se(s)&&(i=s),[r.key||"",a,r,i]}function fl(e,t,n){const o=e;for(const s in n){const r=`${t}__${s}`;o.__datetimeFormatters.has(r)&&o.__datetimeFormatters.delete(r)}}function hl(e,...t){const{numberFormats:n,unresolving:o,fallbackLocale:s,onWarn:r,localeFallbacker:i}=e,{__numberFormatters:a}=e,[l,c,u,f]=ps(...t),h=ce(u.missingWarn)?u.missingWarn:e.missingWarn;ce(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const m=!!u.part,w=os(e,u),k=i(e,s,w);if(!q(l)||l==="")return new Intl.NumberFormat(w,f).format(c);let A={},O,C=null;const _="number format";for(let E=0;E{gl.includes(l)?i[l]=n[l]:r[l]=n[l]}),q(o)?r.locale=o:se(o)&&(i=o),se(s)&&(i=s),[r.key||"",a,r,i]}function ml(e,t,n){const o=e;for(const s in n){const r=`${t}__${s}`;o.__numberFormatters.has(r)&&o.__numberFormatters.delete(r)}}rh();/*! + */function rh(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Bt().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Bt().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Bt().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function $t(e){return fe(e)&&ns(e)===0&&(ut(e,"b")||ut(e,"body"))}const Ii=["b","body"];function sh(e){return Zt(e,Ii)}const Fi=["c","cases"];function ah(e){return Zt(e,Fi,[])}const Mi=["s","static"];function ih(e){return Zt(e,Mi)}const Pi=["i","items"];function lh(e){return Zt(e,Pi,[])}const Bi=["t","type"];function ns(e){return Zt(e,Bi)}const Di=["v","value"];function rr(e,t){const n=Zt(e,Di);if(n!=null)return n;throw io(t)}const Ri=["m","modifier"];function ch(e){return Zt(e,Ri)}const Wi=["k","key"];function uh(e){const t=Zt(e,Wi);if(t)return t;throw io(6)}function Zt(e,t,n){for(let o=0;o{a===void 0?a=i:a+=i},h[1]=()=>{a!==void 0&&(t.push(a),a=void 0)},h[2]=()=>{h[0](),s++},h[3]=()=>{if(s>0)s--,o=4,h[0]();else{if(s=0,a===void 0||(a=gh(a),a===!1))return!1;h[1]()}};function m(){const w=e[n+1];if(o===5&&w==="'"||o===6&&w==='"')return n++,i="\\"+w,h[0](),!0}for(;o!==null;)if(n++,r=e[n],!(r==="\\"&&m())){if(l=hh(r),f=Qt[o],c=f[l]||f.l||8,c===8||(o=c[0],c[1]!==void 0&&(u=h[c[1]],u&&(i=r,u()===!1))))return;if(o===7)return t}}const ji=new Map;function _h(e,t){return fe(e)?e[t]:null}function bh(e,t){if(!fe(e))return null;let n=ji.get(t);if(n||(n=mh(t),n&&ji.set(t,n)),!n)return null;const o=n.length;let s=e,r=0;for(;re,vh=e=>"",wh="text",kh=e=>e.length===0?"":Af(e),$h=Cf;function Gi(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function Oh(e){const t=Ae(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(Ae(e.named.count)||Ae(e.named.n))?Ae(e.named.count)?e.named.count:Ae(e.named.n)?e.named.n:t:t}function Nh(e,t){t.count||(t.count=e),t.n||(t.n=e)}function Ch(e={}){const t=e.locale,n=Oh(e),o=fe(e.pluralRules)&&q(t)&&we(e.pluralRules[t])?e.pluralRules[t]:Gi,s=fe(e.pluralRules)&&q(t)&&we(e.pluralRules[t])?Gi:void 0,r=O=>O[o(n,O.length,s)],a=e.list||[],i=O=>a[O],l=e.named||me();Ae(e.pluralIndex)&&Nh(n,l);const c=O=>l[O];function u(O){const C=we(e.messages)?e.messages(O):fe(e.messages)?e.messages[O]:!1;return C||(e.parent?e.parent.message(O):vh)}const f=O=>e.modifiers?e.modifiers[O]:yh,h=se(e.processor)&&we(e.processor.normalize)?e.processor.normalize:kh,m=se(e.processor)&&we(e.processor.interpolate)?e.processor.interpolate:$h,w=se(e.processor)&&q(e.processor.type)?e.processor.type:wh,A={list:i,named:c,plural:r,linked:(O,...C)=>{const[_,b]=C;let v="text",E="";C.length===1?fe(_)?(E=_.modifier||E,v=_.type||v):q(_)&&(E=_||E):C.length===2&&(q(_)&&(E=_||E),q(b)&&(v=b||v));const L=u(O)(A),x=v==="vnode"&&Oe(L)&&E?L[0]:L;return E?f(E)(x,v):x},message:u,type:w,interpolate:m,normalize:h,values:We(me(),a,l)};return A}let lo=null;function Ah(e){lo=e}function Eh(e,t,n){lo&&lo.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:n})}const Th=Lh("function:translate");function Lh(e){return t=>lo&&lo.emit(e,t)}const Sh=es.__EXTEND_POINT__,fn=er(Sh),xh={FALLBACK_TO_TRANSLATE:fn(),CANNOT_FORMAT_NUMBER:fn(),FALLBACK_TO_NUMBER_FORMAT:fn(),CANNOT_FORMAT_DATE:fn(),FALLBACK_TO_DATE_FORMAT:fn(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:fn(),__EXTEND_POINT__:fn()},Yi=te.__EXTEND_POINT__,hn=er(Yi),dt={INVALID_ARGUMENT:Yi,INVALID_DATE_ARGUMENT:hn(),INVALID_ISO_DATE_ARGUMENT:hn(),NOT_SUPPORT_NON_STRING_MESSAGE:hn(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:hn(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:hn(),NOT_SUPPORT_LOCALE_TYPE:hn(),__EXTEND_POINT__:hn()};function Ot(e){return Tn(e,null,void 0)}function os(e,t){return t.locale!=null?Vi(t.locale):Vi(e.locale)}let rs;function Vi(e){if(q(e))return e;if(we(e)){if(e.resolvedOnce&&rs!=null)return rs;if(e.constructor.name==="Function"){const t=e();if(Nf(t))throw Ot(dt.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return rs=t}else throw Ot(dt.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw Ot(dt.NOT_SUPPORT_LOCALE_TYPE)}function Ih(e,t,n){return[...new Set([n,...Oe(t)?t:fe(t)?Object.keys(t):q(t)?[t]:[n]])]}function Hi(e,t,n){const o=q(n)?n:xn,s=e;s.__localeChainCache||(s.__localeChainCache=new Map);let r=s.__localeChainCache.get(o);if(!r){r=[];let a=[n];for(;Oe(a);)a=qi(r,a,t);const i=Oe(t)||!se(t)?t:t.default?t.default:null;a=q(i)?[i]:i,Oe(a)&&qi(r,a,!1),s.__localeChainCache.set(o,r)}return r}function qi(e,t,n){let o=!0;for(let s=0;s`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function Bh(){return{upper:(e,t)=>t==="text"&&q(e)?e.toUpperCase():t==="vnode"&&fe(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&q(e)?e.toLowerCase():t==="vnode"&&fe(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&q(e)?Ki(e):t==="vnode"&&fe(e)&&"__v_isVNode"in e?Ki(e.children):e}}let Xi;function Ji(e){Xi=e}let Zi;function Dh(e){Zi=e}let Qi;function Rh(e){Qi=e}let el=null;const Wh=e=>{el=e},Uh=()=>el;let tl=null;const nl=e=>{tl=e},jh=()=>tl;let ol=0;function Gh(e={}){const t=we(e.onWarn)?e.onWarn:bf,n=q(e.version)?e.version:Ph,o=q(e.locale)||we(e.locale)?e.locale:xn,s=we(o)?xn:o,r=Oe(e.fallbackLocale)||se(e.fallbackLocale)||q(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:s,a=se(e.messages)?e.messages:ss(s),i=se(e.datetimeFormats)?e.datetimeFormats:ss(s),l=se(e.numberFormats)?e.numberFormats:ss(s),c=We(me(),e.modifiers,Bh()),u=e.pluralRules||me(),f=we(e.missing)?e.missing:null,h=ce(e.missingWarn)||Xt(e.missingWarn)?e.missingWarn:!0,m=ce(e.fallbackWarn)||Xt(e.fallbackWarn)?e.fallbackWarn:!0,w=!!e.fallbackFormat,k=!!e.unresolving,A=we(e.postTranslation)?e.postTranslation:null,O=se(e.processor)?e.processor:null,C=ce(e.warnHtmlMessage)?e.warnHtmlMessage:!0,_=!!e.escapeParameter,b=we(e.messageCompiler)?e.messageCompiler:Xi,v=we(e.messageResolver)?e.messageResolver:Zi||_h,E=we(e.localeFallbacker)?e.localeFallbacker:Qi||Ih,L=fe(e.fallbackContext)?e.fallbackContext:void 0,x=e,N=fe(x.__datetimeFormatters)?x.__datetimeFormatters:new Map,R=fe(x.__numberFormatters)?x.__numberFormatters:new Map,j=fe(x.__meta)?x.__meta:{};ol++;const K={version:n,cid:ol,locale:o,fallbackLocale:r,messages:a,modifiers:c,pluralRules:u,missing:f,missingWarn:h,fallbackWarn:m,fallbackFormat:w,unresolving:k,postTranslation:A,processor:O,warnHtmlMessage:C,escapeParameter:_,messageCompiler:b,messageResolver:v,localeFallbacker:E,fallbackContext:L,onWarn:t,__meta:j};return K.datetimeFormats=i,K.numberFormats=l,K.__datetimeFormatters=N,K.__numberFormatters=R,__INTLIFY_PROD_DEVTOOLS__&&Eh(K,n,j),K}const ss=e=>({[e]:me()});function as(e,t,n,o,s){const{missing:r,onWarn:a}=e;if(r!==null){const i=r(e,n,t,s);return q(i)?i:t}else return t}function co(e,t,n){const o=e;o.__localeChainCache=new Map,e.localeFallbacker(e,n,t)}function Yh(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function Vh(e,t){const n=t.indexOf(e);if(n===-1)return!1;for(let o=n+1;oHh(n,e)}function Hh(e,t){const n=sh(t);if(n==null)throw io(0);if(ns(n)===1){const r=ah(n);return e.plural(r.reduce((a,i)=>[...a,rl(e,i)],[]))}else return rl(e,n)}function rl(e,t){const n=ih(t);if(n!=null)return e.type==="text"?n:e.normalize([n]);{const o=lh(t).reduce((s,r)=>[...s,ls(e,r)],[]);return e.normalize(o)}}function ls(e,t){const n=ns(t);switch(n){case 3:return rr(t,n);case 9:return rr(t,n);case 4:{const o=t;if(ut(o,"k")&&o.k)return e.interpolate(e.named(o.k));if(ut(o,"key")&&o.key)return e.interpolate(e.named(o.key));throw io(n)}case 5:{const o=t;if(ut(o,"i")&&Ae(o.i))return e.interpolate(e.list(o.i));if(ut(o,"index")&&Ae(o.index))return e.interpolate(e.list(o.index));throw io(n)}case 6:{const o=t,s=ch(o),r=uh(o);return e.linked(ls(e,r),s?ls(e,s):void 0,e.type)}case 7:return rr(t,n);case 8:return rr(t,n);default:throw new Error(`unhandled node on format message part: ${n}`)}}const sl=e=>e;let In=me();function al(e,t={}){let n=!1;const o=t.onError||Ff;return t.onError=s=>{n=!0,o(s)},{...oh(e,t),detectError:n}}const qh=(e,t)=>{if(!q(e))throw Ot(dt.NOT_SUPPORT_NON_STRING_MESSAGE);{ce(t.warnHtmlMessage)&&t.warnHtmlMessage;const o=(t.onCacheKey||sl)(e),s=In[o];if(s)return s;const{code:r,detectError:a}=al(e,t),i=new Function(`return ${r}`)();return a?i:In[o]=i}};function zh(e,t){if(__INTLIFY_JIT_COMPILATION__&&!__INTLIFY_DROP_MESSAGE_COMPILER__&&q(e)){ce(t.warnHtmlMessage)&&t.warnHtmlMessage;const o=(t.onCacheKey||sl)(e),s=In[o];if(s)return s;const{ast:r,detectError:a}=al(e,{...t,location:!1,jit:!0}),i=is(r);return a?i:In[o]=i}else{const n=e.cacheKey;if(n){const o=In[n];return o||(In[n]=is(e))}else return is(e)}}const il=()=>"",ot=e=>we(e);function ll(e,...t){const{fallbackFormat:n,postTranslation:o,unresolving:s,messageCompiler:r,fallbackLocale:a,messages:i}=e,[l,c]=cs(...t),u=ce(c.missingWarn)?c.missingWarn:e.missingWarn,f=ce(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,h=ce(c.escapeParameter)?c.escapeParameter:e.escapeParameter,m=!!c.resolvedMessage,w=q(c.default)||ce(c.default)?ce(c.default)?r?l:()=>l:c.default:n?r?l:()=>l:"",k=n||w!=="",A=os(e,c);h&&Kh(c);let[O,C,_]=m?[l,A,i[A]||me()]:cl(e,l,A,a,f,u),b=O,v=l;if(!m&&!(q(b)||$t(b)||ot(b))&&k&&(b=w,v=b),!m&&(!(q(b)||$t(b)||ot(b))||!q(C)))return s?sr:l;let E=!1;const L=()=>{E=!0},x=ot(b)?b:ul(e,l,C,b,v,L);if(E)return b;const N=Zh(e,C,_,c),R=Ch(N),j=Xh(e,x,R);let K=o?o(j,l):j;if(h&&q(K)&&(K=$f(K)),__INTLIFY_PROD_DEVTOOLS__){const ne={timestamp:Date.now(),key:q(l)?l:ot(b)?b.key:"",locale:C||(ot(b)?b.locale:""),format:q(b)?b:ot(b)?b.source:"",message:K};ne.meta=We({},e.__meta,Uh()||{}),Th(ne)}return K}function Kh(e){Oe(e.list)?e.list=e.list.map(t=>q(t)?ki(t):t):fe(e.named)&&Object.keys(e.named).forEach(t=>{q(e.named[t])&&(e.named[t]=ki(e.named[t]))})}function cl(e,t,n,o,s,r){const{messages:a,onWarn:i,messageResolver:l,localeFallbacker:c}=e,u=c(e,o,n);let f=me(),h,m=null;const w="translate";for(let k=0;ko;return c.locale=n,c.key=t,c}const l=a(o,Jh(e,n,s,o,i,r));return l.locale=n,l.key=t,l.source=o,l}function Xh(e,t,n){return t(n)}function cs(...e){const[t,n,o]=e,s=me();if(!q(t)&&!Ae(t)&&!ot(t)&&!$t(t))throw Ot(dt.INVALID_ARGUMENT);const r=Ae(t)?String(t):(ot(t),t);return Ae(n)?s.plural=n:q(n)?s.default=n:se(n)&&!Qo(n)?s.named=n:Oe(n)&&(s.list=n),Ae(o)?s.plural=o:q(o)?s.default=o:se(o)&&We(s,o),[r,s]}function Jh(e,t,n,o,s,r){return{locale:t,key:n,warnHtmlMessage:s,onError:a=>{throw r&&r(a),a},onCacheKey:a=>yf(t,n,a)}}function Zh(e,t,n,o){const{modifiers:s,pluralRules:r,messageResolver:a,fallbackLocale:i,fallbackWarn:l,missingWarn:c,fallbackContext:u}=e,h={locale:t,modifiers:s,pluralRules:r,messages:m=>{let w=a(n,m);if(w==null&&u){const[,,k]=cl(u,m,t,i,l,c);w=a(k,m)}if(q(w)||$t(w)){let k=!1;const O=ul(e,m,t,w,m,()=>{k=!0});return k?il:O}else return ot(w)?w:il}};return e.processor&&(h.processor=e.processor),o.list&&(h.list=o.list),o.named&&(h.named=o.named),Ae(o.plural)&&(h.pluralIndex=o.plural),h}function pl(e,...t){const{datetimeFormats:n,unresolving:o,fallbackLocale:s,onWarn:r,localeFallbacker:a}=e,{__datetimeFormatters:i}=e,[l,c,u,f]=us(...t),h=ce(u.missingWarn)?u.missingWarn:e.missingWarn;ce(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const m=!!u.part,w=os(e,u),k=a(e,s,w);if(!q(l)||l==="")return new Intl.DateTimeFormat(w,f).format(c);let A={},O,C=null;const _="datetime format";for(let E=0;E{dl.includes(l)?a[l]=n[l]:r[l]=n[l]}),q(o)?r.locale=o:se(o)&&(a=o),se(s)&&(a=s),[r.key||"",i,r,a]}function fl(e,t,n){const o=e;for(const s in n){const r=`${t}__${s}`;o.__datetimeFormatters.has(r)&&o.__datetimeFormatters.delete(r)}}function hl(e,...t){const{numberFormats:n,unresolving:o,fallbackLocale:s,onWarn:r,localeFallbacker:a}=e,{__numberFormatters:i}=e,[l,c,u,f]=ps(...t),h=ce(u.missingWarn)?u.missingWarn:e.missingWarn;ce(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const m=!!u.part,w=os(e,u),k=a(e,s,w);if(!q(l)||l==="")return new Intl.NumberFormat(w,f).format(c);let A={},O,C=null;const _="number format";for(let E=0;E{gl.includes(l)?a[l]=n[l]:r[l]=n[l]}),q(o)?r.locale=o:se(o)&&(a=o),se(s)&&(a=s),[r.key||"",i,r,a]}function ml(e,t,n){const o=e;for(const s in n){const r=`${t}__${s}`;o.__numberFormatters.has(r)&&o.__numberFormatters.delete(r)}}rh();/*! * vue-i18n v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */const Qh="9.14.5";function eg(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(Bt().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(Bt().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Bt().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Bt().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Bt().__INTLIFY_PROD_DEVTOOLS__=!1)}const tg=Ih.__EXTEND_POINT__,Rt=er(tg);Rt(),Rt(),Rt(),Rt(),Rt(),Rt(),Rt(),Rt(),Rt();const _l=dt.__EXTEND_POINT__,Ke=er(_l),Ie={UNEXPECTED_RETURN_TYPE:_l,INVALID_ARGUMENT:Ke(),MUST_BE_CALL_SETUP_TOP:Ke(),NOT_INSTALLED:Ke(),NOT_AVAILABLE_IN_LEGACY_MODE:Ke(),REQUIRED_VALUE:Ke(),INVALID_VALUE:Ke(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:Ke(),NOT_INSTALLED_WITH_PROVIDE:Ke(),UNEXPECTED_ERROR:Ke(),NOT_COMPATIBLE_LEGACY_VUE_I18N:Ke(),BRIDGE_SUPPORT_VUE_2_ONLY:Ke(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:Ke(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:Ke(),__EXTEND_POINT__:Ke()};function Me(e,...t){return Tn(e,null,void 0)}const ds=Kt("__translateVNode"),fs=Kt("__datetimeParts"),hs=Kt("__numberParts"),bl=Kt("__setPluralRules"),yl=Kt("__injectWithOption"),gs=Kt("__dispose");function uo(e){if(!fe(e)||$t(e))return e;for(const t in e)if(ut(e,t))if(!t.includes("."))fe(e[t])&&uo(e[t]);else{const n=t.split("."),o=n.length-1;let s=e,r=!1;for(let i=0;i{if("locale"in a&&"resource"in a){const{locale:l,resource:c}=a;l?(i[l]=i[l]||me(),nr(c,i[l])):nr(c,i)}else q(a)&&nr(JSON.parse(a),i)}),s==null&&r)for(const a in i)ut(i,a)&&uo(i[a]);return i}function vl(e){return e.type}function wl(e,t,n){let o=fe(t.messages)?t.messages:me();"__i18nGlobal"in n&&(o=ir(e.locale.value,{messages:o,__i18n:n.__i18nGlobal}));const s=Object.keys(o);s.length&&s.forEach(r=>{e.mergeLocaleMessage(r,o[r])});{if(fe(t.datetimeFormats)){const r=Object.keys(t.datetimeFormats);r.length&&r.forEach(i=>{e.mergeDateTimeFormat(i,t.datetimeFormats[i])})}if(fe(t.numberFormats)){const r=Object.keys(t.numberFormats);r.length&&r.forEach(i=>{e.mergeNumberFormat(i,t.numberFormats[i])})}}}function kl(e){return ve(Zn,null,e,0)}const $l="__INTLIFY_META__",Ol=()=>[],ng=()=>!1;let Nl=0;function Cl(e){return(t,n,o,s)=>e(n,o,Mt()||void 0,s)}const og=()=>{const e=Mt();let t=null;return e&&(t=vl(e)[$l])?{[$l]:t}:null};function ms(e={},t){const{__root:n,__injectWithOption:o}=e,s=n===void 0,r=e.flatJson,i=Zo?re:jn,a=!!e.translateExistCompatible;let l=ce(e.inheritLocale)?e.inheritLocale:!0;const c=i(n&&l?n.locale.value:q(e.locale)?e.locale:In),u=i(n&&l?n.fallbackLocale.value:q(e.fallbackLocale)||Oe(e.fallbackLocale)||se(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),f=i(ir(c.value,e)),h=i(se(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),m=i(se(e.numberFormats)?e.numberFormats:{[c.value]:{}});let w=n?n.missingWarn:ce(e.missingWarn)||Xt(e.missingWarn)?e.missingWarn:!0,k=n?n.fallbackWarn:ce(e.fallbackWarn)||Xt(e.fallbackWarn)?e.fallbackWarn:!0,A=n?n.fallbackRoot:ce(e.fallbackRoot)?e.fallbackRoot:!0,O=!!e.fallbackFormat,C=we(e.missing)?e.missing:null,_=we(e.missing)?Cl(e.missing):null,b=we(e.postTranslation)?e.postTranslation:null,v=n?n.warnHtmlMessage:ce(e.warnHtmlMessage)?e.warnHtmlMessage:!0,E=!!e.escapeParameter;const L=n?n.modifiers:se(e.modifiers)?e.modifiers:{};let I=e.pluralRules||n&&n.pluralRules,N;N=(()=>{s&&nl(null);const T={version:Qh,locale:c.value,fallbackLocale:u.value,messages:f.value,modifiers:L,pluralRules:I,missing:_===null?void 0:_,missingWarn:w,fallbackWarn:k,fallbackFormat:O,unresolving:!0,postTranslation:b===null?void 0:b,warnHtmlMessage:v,escapeParameter:E,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};T.datetimeFormats=h.value,T.numberFormats=m.value,T.__datetimeFormatters=se(N)?N.__datetimeFormatters:void 0,T.__numberFormatters=se(N)?N.__numberFormatters:void 0;const P=Gh(T);return s&&nl(P),P})(),co(N,c.value,u.value);function j(){return[c.value,u.value,f.value,h.value,m.value]}const K=ie({get:()=>c.value,set:T=>{c.value=T,N.locale=c.value}}),ne=ie({get:()=>u.value,set:T=>{u.value=T,N.fallbackLocale=u.value,co(N,c.value,T)}}),ue=ie(()=>f.value),z=ie(()=>h.value),W=ie(()=>m.value);function X(){return we(b)?b:null}function le(T){b=T,N.postTranslation=T}function Ee(){return C}function Nt(T){T!==null&&(_=Cl(T)),C=T,N.missing=_}const xe=(T,P,Z,ae,ke,qe)=>{j();let Ue;try{__INTLIFY_PROD_DEVTOOLS__,s||(N.fallbackContext=n?jh():void 0),Ue=T(N)}finally{__INTLIFY_PROD_DEVTOOLS__,s||(N.fallbackContext=void 0)}if(Z!=="translate exists"&&Ae(Ue)&&Ue===sr||Z==="translate exists"&&!Ue){const[mn,ws]=P();return n&&A?ae(n):ke(mn)}else{if(qe(Ue))return Ue;throw Me(Ie.UNEXPECTED_RETURN_TYPE)}};function Pe(...T){return xe(P=>Reflect.apply(ll,null,[P,...T]),()=>cs(...T),"translate",P=>Reflect.apply(P.t,P,[...T]),P=>P,P=>q(P))}function nn(...T){const[P,Z,ae]=T;if(ae&&!fe(ae))throw Me(Ie.INVALID_ARGUMENT);return Pe(P,Z,We({resolvedMessage:!0},ae||{}))}function on(...T){return xe(P=>Reflect.apply(pl,null,[P,...T]),()=>us(...T),"datetime format",P=>Reflect.apply(P.d,P,[...T]),()=>za,P=>q(P))}function gn(...T){return xe(P=>Reflect.apply(hl,null,[P,...T]),()=>ps(...T),"number format",P=>Reflect.apply(P.n,P,[...T]),()=>za,P=>q(P))}function ft(T){return T.map(P=>q(P)||Ae(P)||ce(P)?kl(String(P)):P)}const jt={normalize:ft,interpolate:T=>T,type:"vnode"};function rn(...T){return xe(P=>{let Z;const ae=P;try{ae.processor=jt,Z=Reflect.apply(ll,null,[ae,...T])}finally{ae.processor=null}return Z},()=>cs(...T),"translate",P=>P[ds](...T),P=>[kl(P)],P=>Oe(P))}function rt(...T){return xe(P=>Reflect.apply(hl,null,[P,...T]),()=>ps(...T),"number format",P=>P[hs](...T),Ol,P=>q(P)||Oe(P))}function Fn(...T){return xe(P=>Reflect.apply(pl,null,[P,...T]),()=>us(...T),"datetime format",P=>P[fs](...T),Ol,P=>q(P)||Oe(P))}function g(T){I=T,N.pluralRules=I}function $(T,P){return xe(()=>{if(!T)return!1;const Z=q(P)?P:c.value,ae=D(Z),ke=N.messageResolver(ae,T);return a?ke!=null:$t(ke)||ot(ke)||q(ke)},()=>[T],"translate exists",Z=>Reflect.apply(Z.te,Z,[T,P]),ng,Z=>ce(Z))}function y(T){let P=null;const Z=Ha(N,u.value,c.value);for(let ae=0;ae{l&&(c.value=T,N.locale=T,co(N,c.value,u.value))}),lt(n.fallbackLocale,T=>{l&&(u.value=T,N.fallbackLocale=T,co(N,c.value,u.value))}));const U={id:Nl,locale:K,fallbackLocale:ne,get inheritLocale(){return l},set inheritLocale(T){l=T,T&&n&&(c.value=n.locale.value,u.value=n.fallbackLocale.value,co(N,c.value,u.value))},get availableLocales(){return Object.keys(f.value).sort()},messages:ue,get modifiers(){return L},get pluralRules(){return I||{}},get isGlobal(){return s},get missingWarn(){return w},set missingWarn(T){w=T,N.missingWarn=w},get fallbackWarn(){return k},set fallbackWarn(T){k=T,N.fallbackWarn=k},get fallbackRoot(){return A},set fallbackRoot(T){A=T},get fallbackFormat(){return O},set fallbackFormat(T){O=T,N.fallbackFormat=O},get warnHtmlMessage(){return v},set warnHtmlMessage(T){v=T,N.warnHtmlMessage=T},get escapeParameter(){return E},set escapeParameter(T){E=T,N.escapeParameter=T},t:Pe,getLocaleMessage:D,setLocaleMessage:B,mergeLocaleMessage:Y,getPostTranslationHandler:X,setPostTranslationHandler:le,getMissingHandler:Ee,setMissingHandler:Nt,[bl]:g};return U.datetimeFormats=z,U.numberFormats=W,U.rt=nn,U.te=$,U.tm=x,U.d=on,U.n=gn,U.getDateTimeFormat=G,U.setDateTimeFormat=p,U.mergeDateTimeFormat=d,U.getNumberFormat=S,U.setNumberFormat=F,U.mergeNumberFormat=V,U[yl]=o,U[ds]=rn,U[fs]=Fn,U[hs]=rt,U}function rg(e){const t=q(e.locale)?e.locale:In,n=q(e.fallbackLocale)||Oe(e.fallbackLocale)||se(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,o=we(e.missing)?e.missing:void 0,s=ce(e.silentTranslationWarn)||Xt(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,r=ce(e.silentFallbackWarn)||Xt(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,i=ce(e.fallbackRoot)?e.fallbackRoot:!0,a=!!e.formatFallbackMessages,l=se(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=we(e.postTranslation)?e.postTranslation:void 0,f=q(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,h=!!e.escapeParameterHtml,m=ce(e.sync)?e.sync:!0;let w=e.messages;if(se(e.sharedMessages)){const E=e.sharedMessages;w=Object.keys(E).reduce((I,N)=>{const R=I[N]||(I[N]={});return We(R,E[N]),I},w||{})}const{__i18n:k,__root:A,__injectWithOption:O}=e,C=e.datetimeFormats,_=e.numberFormats,b=e.flatJson,v=e.translateExistCompatible;return{locale:t,fallbackLocale:n,messages:w,flatJson:b,datetimeFormats:C,numberFormats:_,missing:o,missingWarn:s,fallbackWarn:r,fallbackRoot:i,fallbackFormat:a,modifiers:l,pluralRules:c,postTranslation:u,warnHtmlMessage:f,escapeParameter:h,messageResolver:e.messageResolver,inheritLocale:m,translateExistCompatible:v,__i18n:k,__root:A,__injectWithOption:O}}function _s(e={},t){{const n=ms(rg(e)),{__extender:o}=e,s={id:n.id,get locale(){return n.locale.value},set locale(r){n.locale.value=r},get fallbackLocale(){return n.fallbackLocale.value},set fallbackLocale(r){n.fallbackLocale.value=r},get messages(){return n.messages.value},get datetimeFormats(){return n.datetimeFormats.value},get numberFormats(){return n.numberFormats.value},get availableLocales(){return n.availableLocales},get formatter(){return{interpolate(){return[]}}},set formatter(r){},get missing(){return n.getMissingHandler()},set missing(r){n.setMissingHandler(r)},get silentTranslationWarn(){return ce(n.missingWarn)?!n.missingWarn:n.missingWarn},set silentTranslationWarn(r){n.missingWarn=ce(r)?!r:r},get silentFallbackWarn(){return ce(n.fallbackWarn)?!n.fallbackWarn:n.fallbackWarn},set silentFallbackWarn(r){n.fallbackWarn=ce(r)?!r:r},get modifiers(){return n.modifiers},get formatFallbackMessages(){return n.fallbackFormat},set formatFallbackMessages(r){n.fallbackFormat=r},get postTranslation(){return n.getPostTranslationHandler()},set postTranslation(r){n.setPostTranslationHandler(r)},get sync(){return n.inheritLocale},set sync(r){n.inheritLocale=r},get warnHtmlInMessage(){return n.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(r){n.warnHtmlMessage=r!=="off"},get escapeParameterHtml(){return n.escapeParameter},set escapeParameterHtml(r){n.escapeParameter=r},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(r){},get pluralizationRules(){return n.pluralRules||{}},__composer:n,t(...r){const[i,a,l]=r,c={};let u=null,f=null;if(!q(i))throw Me(Ie.INVALID_ARGUMENT);const h=i;return q(a)?c.locale=a:Oe(a)?u=a:se(a)&&(f=a),Oe(l)?u=l:se(l)&&(f=l),Reflect.apply(n.t,n,[h,u||f||{},c])},rt(...r){return Reflect.apply(n.rt,n,[...r])},tc(...r){const[i,a,l]=r,c={plural:1};let u=null,f=null;if(!q(i))throw Me(Ie.INVALID_ARGUMENT);const h=i;return q(a)?c.locale=a:Ae(a)?c.plural=a:Oe(a)?u=a:se(a)&&(f=a),q(l)?c.locale=l:Oe(l)?u=l:se(l)&&(f=l),Reflect.apply(n.t,n,[h,u||f||{},c])},te(r,i){return n.te(r,i)},tm(r){return n.tm(r)},getLocaleMessage(r){return n.getLocaleMessage(r)},setLocaleMessage(r,i){n.setLocaleMessage(r,i)},mergeLocaleMessage(r,i){n.mergeLocaleMessage(r,i)},d(...r){return Reflect.apply(n.d,n,[...r])},getDateTimeFormat(r){return n.getDateTimeFormat(r)},setDateTimeFormat(r,i){n.setDateTimeFormat(r,i)},mergeDateTimeFormat(r,i){n.mergeDateTimeFormat(r,i)},n(...r){return Reflect.apply(n.n,n,[...r])},getNumberFormat(r){return n.getNumberFormat(r)},setNumberFormat(r,i){n.setNumberFormat(r,i)},mergeNumberFormat(r,i){n.mergeNumberFormat(r,i)},getChoiceIndex(r,i){return-1}};return s.__extender=o,s}}const bs={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function sg({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((o,s)=>[...o,...s.type===de?s.children:[s]],[]):t.reduce((n,o)=>{const s=e[o];return s&&(n[o]=s()),n},me())}function Al(e){return de}const El=zn({name:"i18n-t",props:We({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>Ae(e)||!isNaN(e)}},bs),setup(e,t){const{slots:n,attrs:o}=t,s=e.i18n||en({useScope:e.scope,__useComponent:!0});return()=>{const r=Object.keys(n).filter(f=>f!=="_"),i=me();e.locale&&(i.locale=e.locale),e.plural!==void 0&&(i.plural=q(e.plural)?+e.plural:e.plural);const a=sg(t,r),l=s[ds](e.keypath,a,i),c=We(me(),o),u=q(e.tag)||fe(e.tag)?e.tag:Al();return ea(u,c,l)}}});function ig(e){return Oe(e)&&!q(e[0])}function Tl(e,t,n,o){const{slots:s,attrs:r}=t;return()=>{const i={part:!0};let a=me();e.locale&&(i.locale=e.locale),q(e.format)?i.key=e.format:fe(e.format)&&(q(e.format.key)&&(i.key=e.format.key),a=Object.keys(e.format).reduce((h,m)=>n.includes(m)?We(me(),h,{[m]:e.format[m]}):h,me()));const l=o(e.value,i,a);let c=[i.key];Oe(l)?c=l.map((h,m)=>{const w=s[h.type],k=w?w({[h.type]:h.value,index:m,parts:l}):[h.value];return ig(k)&&(k[0].key=`${h.type}-${m}`),k}):q(l)&&(c=[l]);const u=We(me(),r),f=q(e.tag)||fe(e.tag)?e.tag:Al();return ea(f,u,c)}}const Ll=zn({name:"i18n-n",props:We({value:{type:Number,required:!0},format:{type:[String,Object]}},bs),setup(e,t){const n=e.i18n||en({useScope:e.scope,__useComponent:!0});return Tl(e,t,gl,(...o)=>n[hs](...o))}}),Sl=zn({name:"i18n-d",props:We({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},bs),setup(e,t){const n=e.i18n||en({useScope:e.scope,__useComponent:!0});return Tl(e,t,dl,(...o)=>n[fs](...o))}});function ag(e,t){const n=e;if(e.mode==="composition")return n.__getInstance(t)||e.global;{const o=n.__getInstance(t);return o!=null?o.__composer:e.global.__composer}}function lg(e){const t=i=>{const{instance:a,modifiers:l,value:c}=i;if(!a||!a.$)throw Me(Ie.UNEXPECTED_ERROR);const u=ag(e,a.$),f=Il(c);return[Reflect.apply(u.t,u,[...xl(f)]),u]};return{created:(i,a)=>{const[l,c]=t(a);Zo&&e.global===c&&(i.__i18nWatcher=lt(c.locale,()=>{a.instance&&a.instance.$forceUpdate()})),i.__composer=c,i.textContent=l},unmounted:i=>{Zo&&i.__i18nWatcher&&(i.__i18nWatcher(),i.__i18nWatcher=void 0,delete i.__i18nWatcher),i.__composer&&(i.__composer=void 0,delete i.__composer)},beforeUpdate:(i,{value:a})=>{if(i.__composer){const l=i.__composer,c=Il(a);i.textContent=Reflect.apply(l.t,l,[...xl(c)])}},getSSRProps:i=>{const[a]=t(i);return{textContent:a}}}}function Il(e){if(q(e))return{path:e};if(se(e)){if(!("path"in e))throw Me(Ie.REQUIRED_VALUE,"path");return e}else throw Me(Ie.INVALID_VALUE)}function xl(e){const{path:t,locale:n,args:o,choice:s,plural:r}=e,i={},a=o||{};return q(n)&&(i.locale=n),Ae(s)&&(i.plural=s),Ae(r)&&(i.plural=r),[t,a,i]}function cg(e,t,...n){const o=se(n[0])?n[0]:{},s=!!o.useI18nComponentName;(ce(o.globalInstall)?o.globalInstall:!0)&&([s?"i18n":El.name,"I18nT"].forEach(i=>e.component(i,El)),[Ll.name,"I18nN"].forEach(i=>e.component(i,Ll)),[Sl.name,"I18nD"].forEach(i=>e.component(i,Sl))),e.directive("t",lg(t))}function ug(e,t,n){return{beforeCreate(){const o=Mt();if(!o)throw Me(Ie.UNEXPECTED_ERROR);const s=this.$options;if(s.i18n){const r=s.i18n;if(s.__i18n&&(r.__i18n=s.__i18n),r.__root=t,this===this.$root)this.$i18n=Fl(e,r);else{r.__injectWithOption=!0,r.__extender=n.__vueI18nExtend,this.$i18n=_s(r);const i=this.$i18n;i.__extender&&(i.__disposer=i.__extender(this.$i18n))}}else if(s.__i18n)if(this===this.$root)this.$i18n=Fl(e,s);else{this.$i18n=_s({__i18n:s.__i18n,__injectWithOption:!0,__extender:n.__vueI18nExtend,__root:t});const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}else this.$i18n=e;s.__i18nGlobal&&wl(t,s,s),this.$t=(...r)=>this.$i18n.t(...r),this.$rt=(...r)=>this.$i18n.rt(...r),this.$tc=(...r)=>this.$i18n.tc(...r),this.$te=(r,i)=>this.$i18n.te(r,i),this.$d=(...r)=>this.$i18n.d(...r),this.$n=(...r)=>this.$i18n.n(...r),this.$tm=r=>this.$i18n.tm(r),n.__setInstance(o,this.$i18n)},mounted(){},unmounted(){const o=Mt();if(!o)throw Me(Ie.UNEXPECTED_ERROR);const s=this.$i18n;delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,s.__disposer&&(s.__disposer(),delete s.__disposer,delete s.__extender),n.__deleteInstance(o),delete this.$i18n}}}function Fl(e,t){e.locale=t.locale||e.locale,e.fallbackLocale=t.fallbackLocale||e.fallbackLocale,e.missing=t.missing||e.missing,e.silentTranslationWarn=t.silentTranslationWarn||e.silentFallbackWarn,e.silentFallbackWarn=t.silentFallbackWarn||e.silentFallbackWarn,e.formatFallbackMessages=t.formatFallbackMessages||e.formatFallbackMessages,e.postTranslation=t.postTranslation||e.postTranslation,e.warnHtmlInMessage=t.warnHtmlInMessage||e.warnHtmlInMessage,e.escapeParameterHtml=t.escapeParameterHtml||e.escapeParameterHtml,e.sync=t.sync||e.sync,e.__composer[bl](t.pluralizationRules||e.pluralizationRules);const n=ir(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(n).forEach(o=>e.mergeLocaleMessage(o,n[o])),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach(o=>e.mergeDateTimeFormat(o,t.datetimeFormats[o])),t.numberFormats&&Object.keys(t.numberFormats).forEach(o=>e.mergeNumberFormat(o,t.numberFormats[o])),e}const pg=Kt("global-vue-i18n");function dg(e={},t){const n=__VUE_I18N_LEGACY_API__&&ce(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,o=ce(e.globalInjection)?e.globalInjection:!0,s=__VUE_I18N_LEGACY_API__&&n?!!e.allowComposition:!0,r=new Map,[i,a]=fg(e,n),l=Kt("");function c(h){return r.get(h)||null}function u(h,m){r.set(h,m)}function f(h){r.delete(h)}{const h={get mode(){return __VUE_I18N_LEGACY_API__&&n?"legacy":"composition"},get allowComposition(){return s},async install(m,...w){if(m.__VUE_I18N_SYMBOL__=l,m.provide(m.__VUE_I18N_SYMBOL__,h),se(w[0])){const O=w[0];h.__composerExtend=O.__composerExtend,h.__vueI18nExtend=O.__vueI18nExtend}let k=null;!n&&o&&(k=kg(m,h.global)),__VUE_I18N_FULL_INSTALL__&&cg(m,h,...w),__VUE_I18N_LEGACY_API__&&n&&m.mixin(ug(a,a.__composer,h));const A=m.unmount;m.unmount=()=>{k&&k(),h.dispose(),A()}},get global(){return a},dispose(){i.stop()},__instances:r,__getInstance:c,__setInstance:u,__deleteInstance:f};return h}}function en(e={}){const t=Mt();if(t==null)throw Me(Ie.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw Me(Ie.NOT_INSTALLED);const n=hg(t),o=mg(n),s=vl(t),r=gg(e,s);if(__VUE_I18N_LEGACY_API__&&n.mode==="legacy"&&!e.__useComponent){if(!n.allowComposition)throw Me(Ie.NOT_AVAILABLE_IN_LEGACY_MODE);return vg(t,r,o,e)}if(r==="global")return wl(o,e,s),o;if(r==="parent"){let l=_g(n,t,e.__useComponent);return l==null&&(l=o),l}const i=n;let a=i.__getInstance(t);if(a==null){const l=We({},e);"__i18n"in s&&(l.__i18n=s.__i18n),o&&(l.__root=o),a=ms(l),i.__composerExtend&&(a[gs]=i.__composerExtend(a)),yg(i,t,a),i.__setInstance(t,a)}return a}function fg(e,t,n){const o=hr();{const s=__VUE_I18N_LEGACY_API__&&t?o.run(()=>_s(e)):o.run(()=>ms(e));if(s==null)throw Me(Ie.UNEXPECTED_ERROR);return[o,s]}}function hg(e){{const t=De(e.isCE?pg:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw Me(e.isCE?Ie.NOT_INSTALLED_WITH_PROVIDE:Ie.UNEXPECTED_ERROR);return t}}function gg(e,t){return Qo(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function mg(e){return e.mode==="composition"?e.global:e.global.__composer}function _g(e,t,n=!1){let o=null;const s=t.root;let r=bg(t,n);for(;r!=null;){const i=e;if(e.mode==="composition")o=i.__getInstance(r);else if(__VUE_I18N_LEGACY_API__){const a=i.__getInstance(r);a!=null&&(o=a.__composer,n&&o&&!o[yl]&&(o=null))}if(o!=null||s===r)break;r=r.parent}return o}function bg(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function yg(e,t,n){qt(()=>{},t),Uo(()=>{const o=n;e.__deleteInstance(t);const s=o[gs];s&&(s(),delete o[gs])},t)}function vg(e,t,n,o={}){const s=t==="local",r=jn(null);if(s&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw Me(Ie.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const i=ce(o.inheritLocale)?o.inheritLocale:!q(o.locale),a=re(!s||i?n.locale.value:q(o.locale)?o.locale:In),l=re(!s||i?n.fallbackLocale.value:q(o.fallbackLocale)||Oe(o.fallbackLocale)||se(o.fallbackLocale)||o.fallbackLocale===!1?o.fallbackLocale:a.value),c=re(ir(a.value,o)),u=re(se(o.datetimeFormats)?o.datetimeFormats:{[a.value]:{}}),f=re(se(o.numberFormats)?o.numberFormats:{[a.value]:{}}),h=s?n.missingWarn:ce(o.missingWarn)||Xt(o.missingWarn)?o.missingWarn:!0,m=s?n.fallbackWarn:ce(o.fallbackWarn)||Xt(o.fallbackWarn)?o.fallbackWarn:!0,w=s?n.fallbackRoot:ce(o.fallbackRoot)?o.fallbackRoot:!0,k=!!o.fallbackFormat,A=we(o.missing)?o.missing:null,O=we(o.postTranslation)?o.postTranslation:null,C=s?n.warnHtmlMessage:ce(o.warnHtmlMessage)?o.warnHtmlMessage:!0,_=!!o.escapeParameter,b=s?n.modifiers:se(o.modifiers)?o.modifiers:{},v=o.pluralRules||s&&n.pluralRules;function E(){return[a.value,l.value,c.value,u.value,f.value]}const L=ie({get:()=>r.value?r.value.locale.value:a.value,set:y=>{r.value&&(r.value.locale.value=y),a.value=y}}),I=ie({get:()=>r.value?r.value.fallbackLocale.value:l.value,set:y=>{r.value&&(r.value.fallbackLocale.value=y),l.value=y}}),N=ie(()=>r.value?r.value.messages.value:c.value),R=ie(()=>u.value),j=ie(()=>f.value);function K(){return r.value?r.value.getPostTranslationHandler():O}function ne(y){r.value&&r.value.setPostTranslationHandler(y)}function ue(){return r.value?r.value.getMissingHandler():A}function z(y){r.value&&r.value.setMissingHandler(y)}function W(y){return E(),y()}function X(...y){return r.value?W(()=>Reflect.apply(r.value.t,null,[...y])):W(()=>"")}function le(...y){return r.value?Reflect.apply(r.value.rt,null,[...y]):""}function Ee(...y){return r.value?W(()=>Reflect.apply(r.value.d,null,[...y])):W(()=>"")}function Nt(...y){return r.value?W(()=>Reflect.apply(r.value.n,null,[...y])):W(()=>"")}function xe(y){return r.value?r.value.tm(y):{}}function Pe(y,x){return r.value?r.value.te(y,x):!1}function nn(y){return r.value?r.value.getLocaleMessage(y):{}}function on(y,x){r.value&&(r.value.setLocaleMessage(y,x),c.value[y]=x)}function gn(y,x){r.value&&r.value.mergeLocaleMessage(y,x)}function ft(y){return r.value?r.value.getDateTimeFormat(y):{}}function Ut(y,x){r.value&&(r.value.setDateTimeFormat(y,x),u.value[y]=x)}function jt(y,x){r.value&&r.value.mergeDateTimeFormat(y,x)}function rn(y){return r.value?r.value.getNumberFormat(y):{}}function rt(y,x){r.value&&(r.value.setNumberFormat(y,x),f.value[y]=x)}function Fn(y,x){r.value&&r.value.mergeNumberFormat(y,x)}const g={get id(){return r.value?r.value.id:-1},locale:L,fallbackLocale:I,messages:N,datetimeFormats:R,numberFormats:j,get inheritLocale(){return r.value?r.value.inheritLocale:i},set inheritLocale(y){r.value&&(r.value.inheritLocale=y)},get availableLocales(){return r.value?r.value.availableLocales:Object.keys(c.value)},get modifiers(){return r.value?r.value.modifiers:b},get pluralRules(){return r.value?r.value.pluralRules:v},get isGlobal(){return r.value?r.value.isGlobal:!1},get missingWarn(){return r.value?r.value.missingWarn:h},set missingWarn(y){r.value&&(r.value.missingWarn=y)},get fallbackWarn(){return r.value?r.value.fallbackWarn:m},set fallbackWarn(y){r.value&&(r.value.missingWarn=y)},get fallbackRoot(){return r.value?r.value.fallbackRoot:w},set fallbackRoot(y){r.value&&(r.value.fallbackRoot=y)},get fallbackFormat(){return r.value?r.value.fallbackFormat:k},set fallbackFormat(y){r.value&&(r.value.fallbackFormat=y)},get warnHtmlMessage(){return r.value?r.value.warnHtmlMessage:C},set warnHtmlMessage(y){r.value&&(r.value.warnHtmlMessage=y)},get escapeParameter(){return r.value?r.value.escapeParameter:_},set escapeParameter(y){r.value&&(r.value.escapeParameter=y)},t:X,getPostTranslationHandler:K,setPostTranslationHandler:ne,getMissingHandler:ue,setMissingHandler:z,rt:le,d:Ee,n:Nt,tm:xe,te:Pe,getLocaleMessage:nn,setLocaleMessage:on,mergeLocaleMessage:gn,getDateTimeFormat:ft,setDateTimeFormat:Ut,mergeDateTimeFormat:jt,getNumberFormat:rn,setNumberFormat:rt,mergeNumberFormat:Fn};function $(y){y.locale.value=a.value,y.fallbackLocale.value=l.value,Object.keys(c.value).forEach(x=>{y.mergeLocaleMessage(x,c.value[x])}),Object.keys(u.value).forEach(x=>{y.mergeDateTimeFormat(x,u.value[x])}),Object.keys(f.value).forEach(x=>{y.mergeNumberFormat(x,f.value[x])}),y.escapeParameter=_,y.fallbackFormat=k,y.fallbackRoot=w,y.fallbackWarn=m,y.missingWarn=h,y.warnHtmlMessage=C}return _i(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw Me(Ie.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const y=r.value=e.proxy.$i18n.__composer;t==="global"?(a.value=y.locale.value,l.value=y.fallbackLocale.value,c.value=y.messages.value,u.value=y.datetimeFormats.value,f.value=y.numberFormats.value):s&&$(y)}),g}const wg=["locale","fallbackLocale","availableLocales"],Ml=["t","rt","d","n","tm","te"];function kg(e,t){const n=Object.create(null);return wg.forEach(s=>{const r=Object.getOwnPropertyDescriptor(t,s);if(!r)throw Me(Ie.UNEXPECTED_ERROR);const i=Ne(r.value)?{get(){return r.value.value},set(a){r.value.value=a}}:{get(){return r.get&&r.get()}};Object.defineProperty(n,s,i)}),e.config.globalProperties.$i18n=n,Ml.forEach(s=>{const r=Object.getOwnPropertyDescriptor(t,s);if(!r||!r.value)throw Me(Ie.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${s}`,r)}),()=>{delete e.config.globalProperties.$i18n,Ml.forEach(s=>{delete e.config.globalProperties[`$${s}`]})}}if(eg(),__INTLIFY_JIT_COMPILATION__?Ja(zh):Ja(qh),Dh(bh),Rh(Ha),__INTLIFY_PROD_DEVTOOLS__){const e=Bt();e.__INTLIFY__=!0,Ah(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const $g=Object.assign({"./locales/ar/aria.json":Ep,"./locales/ar/buttons.json":Tp,"./locales/ar/detail.json":Lp,"./locales/ar/legend.json":Sp,"./locales/ar/messages.json":Ip,"./locales/ar/options.json":xp,"./locales/ar/prayerLaps.json":Fp,"./locales/ar/search.json":Mp,"./locales/ar/tabs.json":Pp,"./locales/de/aria.json":Bp,"./locales/de/buttons.json":Dp,"./locales/de/detail.json":Rp,"./locales/de/legend.json":Wp,"./locales/de/messages.json":Up,"./locales/de/options.json":jp,"./locales/de/prayerLaps.json":Gp,"./locales/de/search.json":Yp,"./locales/de/tabs.json":Vp,"./locales/en/aria.json":Hp,"./locales/en/buttons.json":qp,"./locales/en/detail.json":zp,"./locales/en/legend.json":Kp,"./locales/en/messages.json":Xp,"./locales/en/options.json":Jp,"./locales/en/popup.json":Zp,"./locales/en/prayerLaps.json":Qp,"./locales/en/search.json":ed,"./locales/en/tabs.json":td,"./locales/es/aria.json":nd,"./locales/es/buttons.json":od,"./locales/es/detail.json":rd,"./locales/es/legend.json":sd,"./locales/es/messages.json":id,"./locales/es/options.json":ad,"./locales/es/prayerLaps.json":ld,"./locales/es/search.json":cd,"./locales/es/tabs.json":ud,"./locales/fr/aria.json":pd,"./locales/fr/buttons.json":dd,"./locales/fr/detail.json":fd,"./locales/fr/legend.json":hd,"./locales/fr/messages.json":gd,"./locales/fr/options.json":md,"./locales/fr/popup.json":_d,"./locales/fr/prayerLaps.json":bd,"./locales/fr/search.json":yd,"./locales/fr/tabs.json":vd,"./locales/hi/aria.json":wd,"./locales/hi/buttons.json":kd,"./locales/hi/detail.json":$d,"./locales/hi/legend.json":Od,"./locales/hi/messages.json":Nd,"./locales/hi/options.json":Cd,"./locales/hi/prayerLaps.json":Ad,"./locales/hi/search.json":Ed,"./locales/it/aria.json":Td,"./locales/it/buttons.json":Ld,"./locales/it/detail.json":Sd,"./locales/it/legend.json":Id,"./locales/it/messages.json":xd,"./locales/it/options.json":Fd,"./locales/it/prayerLaps.json":Md,"./locales/it/search.json":Pd,"./locales/pt/aria.json":Bd,"./locales/pt/buttons.json":Dd,"./locales/pt/detail.json":Rd,"./locales/pt/legend.json":Wd,"./locales/pt/messages.json":Ud,"./locales/pt/options.json":jd,"./locales/pt/prayerLaps.json":Gd,"./locales/pt/search.json":Yd,"./locales/pt/tabs.json":Vd,"./locales/ro/aria.json":Hd,"./locales/ro/buttons.json":qd,"./locales/ro/detail.json":zd,"./locales/ro/legend.json":Kd,"./locales/ro/messages.json":Xd,"./locales/ro/options.json":Jd,"./locales/ro/prayerLaps.json":Zd,"./locales/ro/search.json":Qd,"./locales/ru/aria.json":ef,"./locales/ru/buttons.json":tf,"./locales/ru/detail.json":nf,"./locales/ru/legend.json":of,"./locales/ru/messages.json":rf,"./locales/ru/options.json":sf,"./locales/ru/prayerLaps.json":af,"./locales/ru/search.json":lf,"./locales/ru/tabs.json":cf,"./locales/zh/aria.json":uf,"./locales/zh/buttons.json":pf,"./locales/zh/detail.json":df,"./locales/zh/legend.json":ff,"./locales/zh/messages.json":hf,"./locales/zh/options.json":gf,"./locales/zh/prayerLaps.json":mf,"./locales/zh/search.json":_f}),po={};for(const[e,t]of Object.entries($g)){const n=e.match(/\.\/locales\/([^/]+)\/([^/]+)\.json$/);if(!n)continue;const[,o,s]=n;po[o]??(po[o]={}),po[o][s]=t}const Pl=["ar","de","en","es","fr","hi","it","pt","ro","ru","zh"];function Og(){var n;const t=(((n=document==null?void 0:document.documentElement)==null?void 0:n.lang)||"").split("-")[0].toLowerCase();return Pl.includes(t)?t:"en"}function Ng(){return dg({legacy:!1,globalInjection:!0,locale:Og(),fallbackLocale:"en",messages:po,missingWarn:!1,fallbackWarn:!1})}function Wt(e,t){const n=t||Cg(e);qt(()=>{var a;const o=Mt();if(!o)return;const s=(a=o.proxy)==null?void 0:a.$el;if(!s)return;const r=s.getRootNode();if(!(r instanceof ShadowRoot)||r.querySelector(`style[data-shadow-styles="${n}"]`))return;const i=document.createElement("style");i.setAttribute("data-shadow-styles",n),i.textContent=e,r.appendChild(i)})}function Cg(e){let t=0;for(let n=0;n(t==null?void 0:t.theme)==="dark"),s=ie(()=>{var A;return((A=n==null?void 0:n.value)==null?void 0:A.pinHintLabel)||"Tap a coloured dot — someone still needs prayer"}),r=re(!1),i=re(null);let a=null,l=null,c=null,u=null,f=null;function h(){r.value=!1}function m(A,O){var _;let C=A==null?void 0:A.parentElement;for(let b=0;C&&b<12;b++,C=C.parentElement){if(C===O||(_=C.classList)!=null&&_.contains("profile-loader"))return null;let v="";try{v=getComputedStyle(C).position}catch{}if(v&&v!=="static"){const E=C.getBoundingClientRect();if(E.height>=120&&E.width>=160)return C}}return null}function w(){const A=i.value;if(A)try{A.style.removeProperty("--pin-hint-lift");const O=A.getBoundingClientRect();if(!O.height)return;const C=Math.round(O.bottom-window.innerHeight);C>0&&A.style.setProperty("--pin-hint-lift",C+8+"px")}catch{}}function k(A){const O=i.value;if(!O||!(A!=null&&A.querySelector))return;let C=0;try{const b=A.querySelector(".mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib, .mapboxgl-ctrl-bottom-right .doxa-attribution, .doxa-attribution");if(b){const v=b.getBoundingClientRect(),E=O.parentElement,L=E?E.getBoundingClientRect():null;if(C=L?Math.max(v.height||0,L.bottom-v.top):v.height||0,f!==b&&typeof ResizeObserver<"u"){if(c)try{c.disconnect()}catch{}f=b,c=new ResizeObserver(()=>k(A)),c.observe(b)}}}catch{}const _=Math.min(Math.max(Math.ceil(C)||20,20),72);O.style.setProperty("--pin-hint-attrib-clear",_+"px"),w()}return qt(()=>{var _,b,v;const A=Mt(),O=(v=(b=(_=A==null?void 0:A.proxy)==null?void 0:_.$el)==null?void 0:b.getRootNode)==null?void 0:v.call(b);if(!O||typeof O.querySelector!="function")return;let C=0;a=setInterval(()=>{C++;const E=O.querySelector("canvas");E?(clearInterval(a),a=null,r.value=!0,Vn(()=>{const L=m(E,O),I=i.value;if(L&&I&&I.parentElement!==L)try{L.appendChild(I),l=L}catch{}k(O),w();try{const N=i.value&&i.value.offsetParent||null;if(N&&typeof ResizeObserver<"u"){if(u)try{u.disconnect()}catch{}u=new ResizeObserver(()=>w()),u.observe(N)}}catch{}})):C>40&&(clearInterval(a),a=null)},300)}),un(()=>{var A;if(a&&clearInterval(a),c){try{c.disconnect()}catch{}c=null}if(f=null,u){try{u.disconnect()}catch{}u=null}if(l&&((A=i.value)==null?void 0:A.parentElement)===l)try{l.removeChild(i.value)}catch{}l=null}),Wt(` + */const Qh="9.14.5";function eg(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(Bt().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(Bt().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Bt().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Bt().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Bt().__INTLIFY_PROD_DEVTOOLS__=!1)}const tg=xh.__EXTEND_POINT__,Rt=er(tg);Rt(),Rt(),Rt(),Rt(),Rt(),Rt(),Rt(),Rt(),Rt();const _l=dt.__EXTEND_POINT__,Ke=er(_l),xe={UNEXPECTED_RETURN_TYPE:_l,INVALID_ARGUMENT:Ke(),MUST_BE_CALL_SETUP_TOP:Ke(),NOT_INSTALLED:Ke(),NOT_AVAILABLE_IN_LEGACY_MODE:Ke(),REQUIRED_VALUE:Ke(),INVALID_VALUE:Ke(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:Ke(),NOT_INSTALLED_WITH_PROVIDE:Ke(),UNEXPECTED_ERROR:Ke(),NOT_COMPATIBLE_LEGACY_VUE_I18N:Ke(),BRIDGE_SUPPORT_VUE_2_ONLY:Ke(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:Ke(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:Ke(),__EXTEND_POINT__:Ke()};function Me(e,...t){return Tn(e,null,void 0)}const ds=Kt("__translateVNode"),fs=Kt("__datetimeParts"),hs=Kt("__numberParts"),bl=Kt("__setPluralRules"),yl=Kt("__injectWithOption"),gs=Kt("__dispose");function uo(e){if(!fe(e)||$t(e))return e;for(const t in e)if(ut(e,t))if(!t.includes("."))fe(e[t])&&uo(e[t]);else{const n=t.split("."),o=n.length-1;let s=e,r=!1;for(let a=0;a{if("locale"in i&&"resource"in i){const{locale:l,resource:c}=i;l?(a[l]=a[l]||me(),nr(c,a[l])):nr(c,a)}else q(i)&&nr(JSON.parse(i),a)}),s==null&&r)for(const i in a)ut(a,i)&&uo(a[i]);return a}function vl(e){return e.type}function wl(e,t,n){let o=fe(t.messages)?t.messages:me();"__i18nGlobal"in n&&(o=ar(e.locale.value,{messages:o,__i18n:n.__i18nGlobal}));const s=Object.keys(o);s.length&&s.forEach(r=>{e.mergeLocaleMessage(r,o[r])});{if(fe(t.datetimeFormats)){const r=Object.keys(t.datetimeFormats);r.length&&r.forEach(a=>{e.mergeDateTimeFormat(a,t.datetimeFormats[a])})}if(fe(t.numberFormats)){const r=Object.keys(t.numberFormats);r.length&&r.forEach(a=>{e.mergeNumberFormat(a,t.numberFormats[a])})}}}function kl(e){return ve(Zn,null,e,0)}const $l="__INTLIFY_META__",Ol=()=>[],ng=()=>!1;let Nl=0;function Cl(e){return(t,n,o,s)=>e(n,o,Mt()||void 0,s)}const og=()=>{const e=Mt();let t=null;return e&&(t=vl(e)[$l])?{[$l]:t}:null};function ms(e={},t){const{__root:n,__injectWithOption:o}=e,s=n===void 0,r=e.flatJson,a=Zo?re:jn,i=!!e.translateExistCompatible;let l=ce(e.inheritLocale)?e.inheritLocale:!0;const c=a(n&&l?n.locale.value:q(e.locale)?e.locale:xn),u=a(n&&l?n.fallbackLocale.value:q(e.fallbackLocale)||Oe(e.fallbackLocale)||se(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),f=a(ar(c.value,e)),h=a(se(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),m=a(se(e.numberFormats)?e.numberFormats:{[c.value]:{}});let w=n?n.missingWarn:ce(e.missingWarn)||Xt(e.missingWarn)?e.missingWarn:!0,k=n?n.fallbackWarn:ce(e.fallbackWarn)||Xt(e.fallbackWarn)?e.fallbackWarn:!0,A=n?n.fallbackRoot:ce(e.fallbackRoot)?e.fallbackRoot:!0,O=!!e.fallbackFormat,C=we(e.missing)?e.missing:null,_=we(e.missing)?Cl(e.missing):null,b=we(e.postTranslation)?e.postTranslation:null,v=n?n.warnHtmlMessage:ce(e.warnHtmlMessage)?e.warnHtmlMessage:!0,E=!!e.escapeParameter;const L=n?n.modifiers:se(e.modifiers)?e.modifiers:{};let x=e.pluralRules||n&&n.pluralRules,N;N=(()=>{s&&nl(null);const T={version:Qh,locale:c.value,fallbackLocale:u.value,messages:f.value,modifiers:L,pluralRules:x,missing:_===null?void 0:_,missingWarn:w,fallbackWarn:k,fallbackFormat:O,unresolving:!0,postTranslation:b===null?void 0:b,warnHtmlMessage:v,escapeParameter:E,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};T.datetimeFormats=h.value,T.numberFormats=m.value,T.__datetimeFormatters=se(N)?N.__datetimeFormatters:void 0,T.__numberFormatters=se(N)?N.__numberFormatters:void 0;const P=Gh(T);return s&&nl(P),P})(),co(N,c.value,u.value);function j(){return[c.value,u.value,f.value,h.value,m.value]}const K=ae({get:()=>c.value,set:T=>{c.value=T,N.locale=c.value}}),ne=ae({get:()=>u.value,set:T=>{u.value=T,N.fallbackLocale=u.value,co(N,c.value,T)}}),ue=ae(()=>f.value),z=ae(()=>h.value),W=ae(()=>m.value);function X(){return we(b)?b:null}function le(T){b=T,N.postTranslation=T}function Ee(){return C}function Nt(T){T!==null&&(_=Cl(T)),C=T,N.missing=_}const Ie=(T,P,Z,ie,ke,qe)=>{j();let Ue;try{__INTLIFY_PROD_DEVTOOLS__,s||(N.fallbackContext=n?jh():void 0),Ue=T(N)}finally{__INTLIFY_PROD_DEVTOOLS__,s||(N.fallbackContext=void 0)}if(Z!=="translate exists"&&Ae(Ue)&&Ue===sr||Z==="translate exists"&&!Ue){const[mn,ws]=P();return n&&A?ie(n):ke(mn)}else{if(qe(Ue))return Ue;throw Me(xe.UNEXPECTED_RETURN_TYPE)}};function Pe(...T){return Ie(P=>Reflect.apply(ll,null,[P,...T]),()=>cs(...T),"translate",P=>Reflect.apply(P.t,P,[...T]),P=>P,P=>q(P))}function nn(...T){const[P,Z,ie]=T;if(ie&&!fe(ie))throw Me(xe.INVALID_ARGUMENT);return Pe(P,Z,We({resolvedMessage:!0},ie||{}))}function on(...T){return Ie(P=>Reflect.apply(pl,null,[P,...T]),()=>us(...T),"datetime format",P=>Reflect.apply(P.d,P,[...T]),()=>zi,P=>q(P))}function gn(...T){return Ie(P=>Reflect.apply(hl,null,[P,...T]),()=>ps(...T),"number format",P=>Reflect.apply(P.n,P,[...T]),()=>zi,P=>q(P))}function ft(T){return T.map(P=>q(P)||Ae(P)||ce(P)?kl(String(P)):P)}const jt={normalize:ft,interpolate:T=>T,type:"vnode"};function rn(...T){return Ie(P=>{let Z;const ie=P;try{ie.processor=jt,Z=Reflect.apply(ll,null,[ie,...T])}finally{ie.processor=null}return Z},()=>cs(...T),"translate",P=>P[ds](...T),P=>[kl(P)],P=>Oe(P))}function rt(...T){return Ie(P=>Reflect.apply(hl,null,[P,...T]),()=>ps(...T),"number format",P=>P[hs](...T),Ol,P=>q(P)||Oe(P))}function Fn(...T){return Ie(P=>Reflect.apply(pl,null,[P,...T]),()=>us(...T),"datetime format",P=>P[fs](...T),Ol,P=>q(P)||Oe(P))}function g(T){x=T,N.pluralRules=x}function $(T,P){return Ie(()=>{if(!T)return!1;const Z=q(P)?P:c.value,ie=D(Z),ke=N.messageResolver(ie,T);return i?ke!=null:$t(ke)||ot(ke)||q(ke)},()=>[T],"translate exists",Z=>Reflect.apply(Z.te,Z,[T,P]),ng,Z=>ce(Z))}function y(T){let P=null;const Z=Hi(N,u.value,c.value);for(let ie=0;ie{l&&(c.value=T,N.locale=T,co(N,c.value,u.value))}),lt(n.fallbackLocale,T=>{l&&(u.value=T,N.fallbackLocale=T,co(N,c.value,u.value))}));const U={id:Nl,locale:K,fallbackLocale:ne,get inheritLocale(){return l},set inheritLocale(T){l=T,T&&n&&(c.value=n.locale.value,u.value=n.fallbackLocale.value,co(N,c.value,u.value))},get availableLocales(){return Object.keys(f.value).sort()},messages:ue,get modifiers(){return L},get pluralRules(){return x||{}},get isGlobal(){return s},get missingWarn(){return w},set missingWarn(T){w=T,N.missingWarn=w},get fallbackWarn(){return k},set fallbackWarn(T){k=T,N.fallbackWarn=k},get fallbackRoot(){return A},set fallbackRoot(T){A=T},get fallbackFormat(){return O},set fallbackFormat(T){O=T,N.fallbackFormat=O},get warnHtmlMessage(){return v},set warnHtmlMessage(T){v=T,N.warnHtmlMessage=T},get escapeParameter(){return E},set escapeParameter(T){E=T,N.escapeParameter=T},t:Pe,getLocaleMessage:D,setLocaleMessage:B,mergeLocaleMessage:Y,getPostTranslationHandler:X,setPostTranslationHandler:le,getMissingHandler:Ee,setMissingHandler:Nt,[bl]:g};return U.datetimeFormats=z,U.numberFormats=W,U.rt=nn,U.te=$,U.tm=I,U.d=on,U.n=gn,U.getDateTimeFormat=G,U.setDateTimeFormat=p,U.mergeDateTimeFormat=d,U.getNumberFormat=S,U.setNumberFormat=F,U.mergeNumberFormat=V,U[yl]=o,U[ds]=rn,U[fs]=Fn,U[hs]=rt,U}function rg(e){const t=q(e.locale)?e.locale:xn,n=q(e.fallbackLocale)||Oe(e.fallbackLocale)||se(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,o=we(e.missing)?e.missing:void 0,s=ce(e.silentTranslationWarn)||Xt(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,r=ce(e.silentFallbackWarn)||Xt(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,a=ce(e.fallbackRoot)?e.fallbackRoot:!0,i=!!e.formatFallbackMessages,l=se(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=we(e.postTranslation)?e.postTranslation:void 0,f=q(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,h=!!e.escapeParameterHtml,m=ce(e.sync)?e.sync:!0;let w=e.messages;if(se(e.sharedMessages)){const E=e.sharedMessages;w=Object.keys(E).reduce((x,N)=>{const R=x[N]||(x[N]={});return We(R,E[N]),x},w||{})}const{__i18n:k,__root:A,__injectWithOption:O}=e,C=e.datetimeFormats,_=e.numberFormats,b=e.flatJson,v=e.translateExistCompatible;return{locale:t,fallbackLocale:n,messages:w,flatJson:b,datetimeFormats:C,numberFormats:_,missing:o,missingWarn:s,fallbackWarn:r,fallbackRoot:a,fallbackFormat:i,modifiers:l,pluralRules:c,postTranslation:u,warnHtmlMessage:f,escapeParameter:h,messageResolver:e.messageResolver,inheritLocale:m,translateExistCompatible:v,__i18n:k,__root:A,__injectWithOption:O}}function _s(e={},t){{const n=ms(rg(e)),{__extender:o}=e,s={id:n.id,get locale(){return n.locale.value},set locale(r){n.locale.value=r},get fallbackLocale(){return n.fallbackLocale.value},set fallbackLocale(r){n.fallbackLocale.value=r},get messages(){return n.messages.value},get datetimeFormats(){return n.datetimeFormats.value},get numberFormats(){return n.numberFormats.value},get availableLocales(){return n.availableLocales},get formatter(){return{interpolate(){return[]}}},set formatter(r){},get missing(){return n.getMissingHandler()},set missing(r){n.setMissingHandler(r)},get silentTranslationWarn(){return ce(n.missingWarn)?!n.missingWarn:n.missingWarn},set silentTranslationWarn(r){n.missingWarn=ce(r)?!r:r},get silentFallbackWarn(){return ce(n.fallbackWarn)?!n.fallbackWarn:n.fallbackWarn},set silentFallbackWarn(r){n.fallbackWarn=ce(r)?!r:r},get modifiers(){return n.modifiers},get formatFallbackMessages(){return n.fallbackFormat},set formatFallbackMessages(r){n.fallbackFormat=r},get postTranslation(){return n.getPostTranslationHandler()},set postTranslation(r){n.setPostTranslationHandler(r)},get sync(){return n.inheritLocale},set sync(r){n.inheritLocale=r},get warnHtmlInMessage(){return n.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(r){n.warnHtmlMessage=r!=="off"},get escapeParameterHtml(){return n.escapeParameter},set escapeParameterHtml(r){n.escapeParameter=r},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(r){},get pluralizationRules(){return n.pluralRules||{}},__composer:n,t(...r){const[a,i,l]=r,c={};let u=null,f=null;if(!q(a))throw Me(xe.INVALID_ARGUMENT);const h=a;return q(i)?c.locale=i:Oe(i)?u=i:se(i)&&(f=i),Oe(l)?u=l:se(l)&&(f=l),Reflect.apply(n.t,n,[h,u||f||{},c])},rt(...r){return Reflect.apply(n.rt,n,[...r])},tc(...r){const[a,i,l]=r,c={plural:1};let u=null,f=null;if(!q(a))throw Me(xe.INVALID_ARGUMENT);const h=a;return q(i)?c.locale=i:Ae(i)?c.plural=i:Oe(i)?u=i:se(i)&&(f=i),q(l)?c.locale=l:Oe(l)?u=l:se(l)&&(f=l),Reflect.apply(n.t,n,[h,u||f||{},c])},te(r,a){return n.te(r,a)},tm(r){return n.tm(r)},getLocaleMessage(r){return n.getLocaleMessage(r)},setLocaleMessage(r,a){n.setLocaleMessage(r,a)},mergeLocaleMessage(r,a){n.mergeLocaleMessage(r,a)},d(...r){return Reflect.apply(n.d,n,[...r])},getDateTimeFormat(r){return n.getDateTimeFormat(r)},setDateTimeFormat(r,a){n.setDateTimeFormat(r,a)},mergeDateTimeFormat(r,a){n.mergeDateTimeFormat(r,a)},n(...r){return Reflect.apply(n.n,n,[...r])},getNumberFormat(r){return n.getNumberFormat(r)},setNumberFormat(r,a){n.setNumberFormat(r,a)},mergeNumberFormat(r,a){n.mergeNumberFormat(r,a)},getChoiceIndex(r,a){return-1}};return s.__extender=o,s}}const bs={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function sg({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((o,s)=>[...o,...s.type===de?s.children:[s]],[]):t.reduce((n,o)=>{const s=e[o];return s&&(n[o]=s()),n},me())}function Al(e){return de}const El=zn({name:"i18n-t",props:We({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>Ae(e)||!isNaN(e)}},bs),setup(e,t){const{slots:n,attrs:o}=t,s=e.i18n||en({useScope:e.scope,__useComponent:!0});return()=>{const r=Object.keys(n).filter(f=>f!=="_"),a=me();e.locale&&(a.locale=e.locale),e.plural!==void 0&&(a.plural=q(e.plural)?+e.plural:e.plural);const i=sg(t,r),l=s[ds](e.keypath,i,a),c=We(me(),o),u=q(e.tag)||fe(e.tag)?e.tag:Al();return ei(u,c,l)}}});function ag(e){return Oe(e)&&!q(e[0])}function Tl(e,t,n,o){const{slots:s,attrs:r}=t;return()=>{const a={part:!0};let i=me();e.locale&&(a.locale=e.locale),q(e.format)?a.key=e.format:fe(e.format)&&(q(e.format.key)&&(a.key=e.format.key),i=Object.keys(e.format).reduce((h,m)=>n.includes(m)?We(me(),h,{[m]:e.format[m]}):h,me()));const l=o(e.value,a,i);let c=[a.key];Oe(l)?c=l.map((h,m)=>{const w=s[h.type],k=w?w({[h.type]:h.value,index:m,parts:l}):[h.value];return ag(k)&&(k[0].key=`${h.type}-${m}`),k}):q(l)&&(c=[l]);const u=We(me(),r),f=q(e.tag)||fe(e.tag)?e.tag:Al();return ei(f,u,c)}}const Ll=zn({name:"i18n-n",props:We({value:{type:Number,required:!0},format:{type:[String,Object]}},bs),setup(e,t){const n=e.i18n||en({useScope:e.scope,__useComponent:!0});return Tl(e,t,gl,(...o)=>n[hs](...o))}}),Sl=zn({name:"i18n-d",props:We({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},bs),setup(e,t){const n=e.i18n||en({useScope:e.scope,__useComponent:!0});return Tl(e,t,dl,(...o)=>n[fs](...o))}});function ig(e,t){const n=e;if(e.mode==="composition")return n.__getInstance(t)||e.global;{const o=n.__getInstance(t);return o!=null?o.__composer:e.global.__composer}}function lg(e){const t=a=>{const{instance:i,modifiers:l,value:c}=a;if(!i||!i.$)throw Me(xe.UNEXPECTED_ERROR);const u=ig(e,i.$),f=xl(c);return[Reflect.apply(u.t,u,[...Il(f)]),u]};return{created:(a,i)=>{const[l,c]=t(i);Zo&&e.global===c&&(a.__i18nWatcher=lt(c.locale,()=>{i.instance&&i.instance.$forceUpdate()})),a.__composer=c,a.textContent=l},unmounted:a=>{Zo&&a.__i18nWatcher&&(a.__i18nWatcher(),a.__i18nWatcher=void 0,delete a.__i18nWatcher),a.__composer&&(a.__composer=void 0,delete a.__composer)},beforeUpdate:(a,{value:i})=>{if(a.__composer){const l=a.__composer,c=xl(i);a.textContent=Reflect.apply(l.t,l,[...Il(c)])}},getSSRProps:a=>{const[i]=t(a);return{textContent:i}}}}function xl(e){if(q(e))return{path:e};if(se(e)){if(!("path"in e))throw Me(xe.REQUIRED_VALUE,"path");return e}else throw Me(xe.INVALID_VALUE)}function Il(e){const{path:t,locale:n,args:o,choice:s,plural:r}=e,a={},i=o||{};return q(n)&&(a.locale=n),Ae(s)&&(a.plural=s),Ae(r)&&(a.plural=r),[t,i,a]}function cg(e,t,...n){const o=se(n[0])?n[0]:{},s=!!o.useI18nComponentName;(ce(o.globalInstall)?o.globalInstall:!0)&&([s?"i18n":El.name,"I18nT"].forEach(a=>e.component(a,El)),[Ll.name,"I18nN"].forEach(a=>e.component(a,Ll)),[Sl.name,"I18nD"].forEach(a=>e.component(a,Sl))),e.directive("t",lg(t))}function ug(e,t,n){return{beforeCreate(){const o=Mt();if(!o)throw Me(xe.UNEXPECTED_ERROR);const s=this.$options;if(s.i18n){const r=s.i18n;if(s.__i18n&&(r.__i18n=s.__i18n),r.__root=t,this===this.$root)this.$i18n=Fl(e,r);else{r.__injectWithOption=!0,r.__extender=n.__vueI18nExtend,this.$i18n=_s(r);const a=this.$i18n;a.__extender&&(a.__disposer=a.__extender(this.$i18n))}}else if(s.__i18n)if(this===this.$root)this.$i18n=Fl(e,s);else{this.$i18n=_s({__i18n:s.__i18n,__injectWithOption:!0,__extender:n.__vueI18nExtend,__root:t});const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}else this.$i18n=e;s.__i18nGlobal&&wl(t,s,s),this.$t=(...r)=>this.$i18n.t(...r),this.$rt=(...r)=>this.$i18n.rt(...r),this.$tc=(...r)=>this.$i18n.tc(...r),this.$te=(r,a)=>this.$i18n.te(r,a),this.$d=(...r)=>this.$i18n.d(...r),this.$n=(...r)=>this.$i18n.n(...r),this.$tm=r=>this.$i18n.tm(r),n.__setInstance(o,this.$i18n)},mounted(){},unmounted(){const o=Mt();if(!o)throw Me(xe.UNEXPECTED_ERROR);const s=this.$i18n;delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,s.__disposer&&(s.__disposer(),delete s.__disposer,delete s.__extender),n.__deleteInstance(o),delete this.$i18n}}}function Fl(e,t){e.locale=t.locale||e.locale,e.fallbackLocale=t.fallbackLocale||e.fallbackLocale,e.missing=t.missing||e.missing,e.silentTranslationWarn=t.silentTranslationWarn||e.silentFallbackWarn,e.silentFallbackWarn=t.silentFallbackWarn||e.silentFallbackWarn,e.formatFallbackMessages=t.formatFallbackMessages||e.formatFallbackMessages,e.postTranslation=t.postTranslation||e.postTranslation,e.warnHtmlInMessage=t.warnHtmlInMessage||e.warnHtmlInMessage,e.escapeParameterHtml=t.escapeParameterHtml||e.escapeParameterHtml,e.sync=t.sync||e.sync,e.__composer[bl](t.pluralizationRules||e.pluralizationRules);const n=ar(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(n).forEach(o=>e.mergeLocaleMessage(o,n[o])),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach(o=>e.mergeDateTimeFormat(o,t.datetimeFormats[o])),t.numberFormats&&Object.keys(t.numberFormats).forEach(o=>e.mergeNumberFormat(o,t.numberFormats[o])),e}const pg=Kt("global-vue-i18n");function dg(e={},t){const n=__VUE_I18N_LEGACY_API__&&ce(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,o=ce(e.globalInjection)?e.globalInjection:!0,s=__VUE_I18N_LEGACY_API__&&n?!!e.allowComposition:!0,r=new Map,[a,i]=fg(e,n),l=Kt("");function c(h){return r.get(h)||null}function u(h,m){r.set(h,m)}function f(h){r.delete(h)}{const h={get mode(){return __VUE_I18N_LEGACY_API__&&n?"legacy":"composition"},get allowComposition(){return s},async install(m,...w){if(m.__VUE_I18N_SYMBOL__=l,m.provide(m.__VUE_I18N_SYMBOL__,h),se(w[0])){const O=w[0];h.__composerExtend=O.__composerExtend,h.__vueI18nExtend=O.__vueI18nExtend}let k=null;!n&&o&&(k=kg(m,h.global)),__VUE_I18N_FULL_INSTALL__&&cg(m,h,...w),__VUE_I18N_LEGACY_API__&&n&&m.mixin(ug(i,i.__composer,h));const A=m.unmount;m.unmount=()=>{k&&k(),h.dispose(),A()}},get global(){return i},dispose(){a.stop()},__instances:r,__getInstance:c,__setInstance:u,__deleteInstance:f};return h}}function en(e={}){const t=Mt();if(t==null)throw Me(xe.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw Me(xe.NOT_INSTALLED);const n=hg(t),o=mg(n),s=vl(t),r=gg(e,s);if(__VUE_I18N_LEGACY_API__&&n.mode==="legacy"&&!e.__useComponent){if(!n.allowComposition)throw Me(xe.NOT_AVAILABLE_IN_LEGACY_MODE);return vg(t,r,o,e)}if(r==="global")return wl(o,e,s),o;if(r==="parent"){let l=_g(n,t,e.__useComponent);return l==null&&(l=o),l}const a=n;let i=a.__getInstance(t);if(i==null){const l=We({},e);"__i18n"in s&&(l.__i18n=s.__i18n),o&&(l.__root=o),i=ms(l),a.__composerExtend&&(i[gs]=a.__composerExtend(i)),yg(a,t,i),a.__setInstance(t,i)}return i}function fg(e,t,n){const o=hr();{const s=__VUE_I18N_LEGACY_API__&&t?o.run(()=>_s(e)):o.run(()=>ms(e));if(s==null)throw Me(xe.UNEXPECTED_ERROR);return[o,s]}}function hg(e){{const t=De(e.isCE?pg:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw Me(e.isCE?xe.NOT_INSTALLED_WITH_PROVIDE:xe.UNEXPECTED_ERROR);return t}}function gg(e,t){return Qo(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function mg(e){return e.mode==="composition"?e.global:e.global.__composer}function _g(e,t,n=!1){let o=null;const s=t.root;let r=bg(t,n);for(;r!=null;){const a=e;if(e.mode==="composition")o=a.__getInstance(r);else if(__VUE_I18N_LEGACY_API__){const i=a.__getInstance(r);i!=null&&(o=i.__composer,n&&o&&!o[yl]&&(o=null))}if(o!=null||s===r)break;r=r.parent}return o}function bg(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function yg(e,t,n){qt(()=>{},t),Uo(()=>{const o=n;e.__deleteInstance(t);const s=o[gs];s&&(s(),delete o[gs])},t)}function vg(e,t,n,o={}){const s=t==="local",r=jn(null);if(s&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw Me(xe.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const a=ce(o.inheritLocale)?o.inheritLocale:!q(o.locale),i=re(!s||a?n.locale.value:q(o.locale)?o.locale:xn),l=re(!s||a?n.fallbackLocale.value:q(o.fallbackLocale)||Oe(o.fallbackLocale)||se(o.fallbackLocale)||o.fallbackLocale===!1?o.fallbackLocale:i.value),c=re(ar(i.value,o)),u=re(se(o.datetimeFormats)?o.datetimeFormats:{[i.value]:{}}),f=re(se(o.numberFormats)?o.numberFormats:{[i.value]:{}}),h=s?n.missingWarn:ce(o.missingWarn)||Xt(o.missingWarn)?o.missingWarn:!0,m=s?n.fallbackWarn:ce(o.fallbackWarn)||Xt(o.fallbackWarn)?o.fallbackWarn:!0,w=s?n.fallbackRoot:ce(o.fallbackRoot)?o.fallbackRoot:!0,k=!!o.fallbackFormat,A=we(o.missing)?o.missing:null,O=we(o.postTranslation)?o.postTranslation:null,C=s?n.warnHtmlMessage:ce(o.warnHtmlMessage)?o.warnHtmlMessage:!0,_=!!o.escapeParameter,b=s?n.modifiers:se(o.modifiers)?o.modifiers:{},v=o.pluralRules||s&&n.pluralRules;function E(){return[i.value,l.value,c.value,u.value,f.value]}const L=ae({get:()=>r.value?r.value.locale.value:i.value,set:y=>{r.value&&(r.value.locale.value=y),i.value=y}}),x=ae({get:()=>r.value?r.value.fallbackLocale.value:l.value,set:y=>{r.value&&(r.value.fallbackLocale.value=y),l.value=y}}),N=ae(()=>r.value?r.value.messages.value:c.value),R=ae(()=>u.value),j=ae(()=>f.value);function K(){return r.value?r.value.getPostTranslationHandler():O}function ne(y){r.value&&r.value.setPostTranslationHandler(y)}function ue(){return r.value?r.value.getMissingHandler():A}function z(y){r.value&&r.value.setMissingHandler(y)}function W(y){return E(),y()}function X(...y){return r.value?W(()=>Reflect.apply(r.value.t,null,[...y])):W(()=>"")}function le(...y){return r.value?Reflect.apply(r.value.rt,null,[...y]):""}function Ee(...y){return r.value?W(()=>Reflect.apply(r.value.d,null,[...y])):W(()=>"")}function Nt(...y){return r.value?W(()=>Reflect.apply(r.value.n,null,[...y])):W(()=>"")}function Ie(y){return r.value?r.value.tm(y):{}}function Pe(y,I){return r.value?r.value.te(y,I):!1}function nn(y){return r.value?r.value.getLocaleMessage(y):{}}function on(y,I){r.value&&(r.value.setLocaleMessage(y,I),c.value[y]=I)}function gn(y,I){r.value&&r.value.mergeLocaleMessage(y,I)}function ft(y){return r.value?r.value.getDateTimeFormat(y):{}}function Ut(y,I){r.value&&(r.value.setDateTimeFormat(y,I),u.value[y]=I)}function jt(y,I){r.value&&r.value.mergeDateTimeFormat(y,I)}function rn(y){return r.value?r.value.getNumberFormat(y):{}}function rt(y,I){r.value&&(r.value.setNumberFormat(y,I),f.value[y]=I)}function Fn(y,I){r.value&&r.value.mergeNumberFormat(y,I)}const g={get id(){return r.value?r.value.id:-1},locale:L,fallbackLocale:x,messages:N,datetimeFormats:R,numberFormats:j,get inheritLocale(){return r.value?r.value.inheritLocale:a},set inheritLocale(y){r.value&&(r.value.inheritLocale=y)},get availableLocales(){return r.value?r.value.availableLocales:Object.keys(c.value)},get modifiers(){return r.value?r.value.modifiers:b},get pluralRules(){return r.value?r.value.pluralRules:v},get isGlobal(){return r.value?r.value.isGlobal:!1},get missingWarn(){return r.value?r.value.missingWarn:h},set missingWarn(y){r.value&&(r.value.missingWarn=y)},get fallbackWarn(){return r.value?r.value.fallbackWarn:m},set fallbackWarn(y){r.value&&(r.value.missingWarn=y)},get fallbackRoot(){return r.value?r.value.fallbackRoot:w},set fallbackRoot(y){r.value&&(r.value.fallbackRoot=y)},get fallbackFormat(){return r.value?r.value.fallbackFormat:k},set fallbackFormat(y){r.value&&(r.value.fallbackFormat=y)},get warnHtmlMessage(){return r.value?r.value.warnHtmlMessage:C},set warnHtmlMessage(y){r.value&&(r.value.warnHtmlMessage=y)},get escapeParameter(){return r.value?r.value.escapeParameter:_},set escapeParameter(y){r.value&&(r.value.escapeParameter=y)},t:X,getPostTranslationHandler:K,setPostTranslationHandler:ne,getMissingHandler:ue,setMissingHandler:z,rt:le,d:Ee,n:Nt,tm:Ie,te:Pe,getLocaleMessage:nn,setLocaleMessage:on,mergeLocaleMessage:gn,getDateTimeFormat:ft,setDateTimeFormat:Ut,mergeDateTimeFormat:jt,getNumberFormat:rn,setNumberFormat:rt,mergeNumberFormat:Fn};function $(y){y.locale.value=i.value,y.fallbackLocale.value=l.value,Object.keys(c.value).forEach(I=>{y.mergeLocaleMessage(I,c.value[I])}),Object.keys(u.value).forEach(I=>{y.mergeDateTimeFormat(I,u.value[I])}),Object.keys(f.value).forEach(I=>{y.mergeNumberFormat(I,f.value[I])}),y.escapeParameter=_,y.fallbackFormat=k,y.fallbackRoot=w,y.fallbackWarn=m,y.missingWarn=h,y.warnHtmlMessage=C}return _a(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw Me(xe.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const y=r.value=e.proxy.$i18n.__composer;t==="global"?(i.value=y.locale.value,l.value=y.fallbackLocale.value,c.value=y.messages.value,u.value=y.datetimeFormats.value,f.value=y.numberFormats.value):s&&$(y)}),g}const wg=["locale","fallbackLocale","availableLocales"],Ml=["t","rt","d","n","tm","te"];function kg(e,t){const n=Object.create(null);return wg.forEach(s=>{const r=Object.getOwnPropertyDescriptor(t,s);if(!r)throw Me(xe.UNEXPECTED_ERROR);const a=Ne(r.value)?{get(){return r.value.value},set(i){r.value.value=i}}:{get(){return r.get&&r.get()}};Object.defineProperty(n,s,a)}),e.config.globalProperties.$i18n=n,Ml.forEach(s=>{const r=Object.getOwnPropertyDescriptor(t,s);if(!r||!r.value)throw Me(xe.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${s}`,r)}),()=>{delete e.config.globalProperties.$i18n,Ml.forEach(s=>{delete e.config.globalProperties[`$${s}`]})}}if(eg(),__INTLIFY_JIT_COMPILATION__?Ji(zh):Ji(qh),Dh(bh),Rh(Hi),__INTLIFY_PROD_DEVTOOLS__){const e=Bt();e.__INTLIFY__=!0,Ah(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const $g=Object.assign({"./locales/ar/aria.json":Ep,"./locales/ar/buttons.json":Tp,"./locales/ar/detail.json":Lp,"./locales/ar/legend.json":Sp,"./locales/ar/messages.json":xp,"./locales/ar/options.json":Ip,"./locales/ar/prayerLaps.json":Fp,"./locales/ar/search.json":Mp,"./locales/ar/tabs.json":Pp,"./locales/de/aria.json":Bp,"./locales/de/buttons.json":Dp,"./locales/de/detail.json":Rp,"./locales/de/legend.json":Wp,"./locales/de/messages.json":Up,"./locales/de/options.json":jp,"./locales/de/prayerLaps.json":Gp,"./locales/de/search.json":Yp,"./locales/de/tabs.json":Vp,"./locales/en/aria.json":Hp,"./locales/en/buttons.json":qp,"./locales/en/detail.json":zp,"./locales/en/legend.json":Kp,"./locales/en/messages.json":Xp,"./locales/en/options.json":Jp,"./locales/en/popup.json":Zp,"./locales/en/prayerLaps.json":Qp,"./locales/en/search.json":ed,"./locales/en/tabs.json":td,"./locales/es/aria.json":nd,"./locales/es/buttons.json":od,"./locales/es/detail.json":rd,"./locales/es/legend.json":sd,"./locales/es/messages.json":ad,"./locales/es/options.json":id,"./locales/es/prayerLaps.json":ld,"./locales/es/search.json":cd,"./locales/es/tabs.json":ud,"./locales/fr/aria.json":pd,"./locales/fr/buttons.json":dd,"./locales/fr/detail.json":fd,"./locales/fr/legend.json":hd,"./locales/fr/messages.json":gd,"./locales/fr/options.json":md,"./locales/fr/popup.json":_d,"./locales/fr/prayerLaps.json":bd,"./locales/fr/search.json":yd,"./locales/fr/tabs.json":vd,"./locales/hi/aria.json":wd,"./locales/hi/buttons.json":kd,"./locales/hi/detail.json":$d,"./locales/hi/legend.json":Od,"./locales/hi/messages.json":Nd,"./locales/hi/options.json":Cd,"./locales/hi/prayerLaps.json":Ad,"./locales/hi/search.json":Ed,"./locales/it/aria.json":Td,"./locales/it/buttons.json":Ld,"./locales/it/detail.json":Sd,"./locales/it/legend.json":xd,"./locales/it/messages.json":Id,"./locales/it/options.json":Fd,"./locales/it/prayerLaps.json":Md,"./locales/it/search.json":Pd,"./locales/pt/aria.json":Bd,"./locales/pt/buttons.json":Dd,"./locales/pt/detail.json":Rd,"./locales/pt/legend.json":Wd,"./locales/pt/messages.json":Ud,"./locales/pt/options.json":jd,"./locales/pt/prayerLaps.json":Gd,"./locales/pt/search.json":Yd,"./locales/pt/tabs.json":Vd,"./locales/ro/aria.json":Hd,"./locales/ro/buttons.json":qd,"./locales/ro/detail.json":zd,"./locales/ro/legend.json":Kd,"./locales/ro/messages.json":Xd,"./locales/ro/options.json":Jd,"./locales/ro/prayerLaps.json":Zd,"./locales/ro/search.json":Qd,"./locales/ru/aria.json":ef,"./locales/ru/buttons.json":tf,"./locales/ru/detail.json":nf,"./locales/ru/legend.json":of,"./locales/ru/messages.json":rf,"./locales/ru/options.json":sf,"./locales/ru/prayerLaps.json":af,"./locales/ru/search.json":lf,"./locales/ru/tabs.json":cf,"./locales/zh/aria.json":uf,"./locales/zh/buttons.json":pf,"./locales/zh/detail.json":df,"./locales/zh/legend.json":ff,"./locales/zh/messages.json":hf,"./locales/zh/options.json":gf,"./locales/zh/prayerLaps.json":mf,"./locales/zh/search.json":_f}),po={};for(const[e,t]of Object.entries($g)){const n=e.match(/\.\/locales\/([^/]+)\/([^/]+)\.json$/);if(!n)continue;const[,o,s]=n;po[o]??(po[o]={}),po[o][s]=t}const Pl=["ar","de","en","es","fr","hi","it","pt","ro","ru","zh"];function Og(){var n;const t=(((n=document==null?void 0:document.documentElement)==null?void 0:n.lang)||"").split("-")[0].toLowerCase();return Pl.includes(t)?t:"en"}function Ng(){return dg({legacy:!1,globalInjection:!0,locale:Og(),fallbackLocale:"en",messages:po,missingWarn:!1,fallbackWarn:!1})}function Wt(e,t){const n=t||Cg(e);qt(()=>{var i;const o=Mt();if(!o)return;const s=(i=o.proxy)==null?void 0:i.$el;if(!s)return;const r=s.getRootNode();if(!(r instanceof ShadowRoot)||r.querySelector(`style[data-shadow-styles="${n}"]`))return;const a=document.createElement("style");a.setAttribute("data-shadow-styles",n),a.textContent=e,r.appendChild(a)})}function Cg(e){let t=0;for(let n=0;n(t==null?void 0:t.theme)==="dark"),s=ae(()=>{var A;return((A=n==null?void 0:n.value)==null?void 0:A.pinHintLabel)||"Tap a coloured dot — someone still needs prayer"}),r=re(!1),a=re(null);let i=null,l=null,c=null,u=null,f=null;function h(){r.value=!1}function m(A,O){var _;let C=A==null?void 0:A.parentElement;for(let b=0;C&&b<12;b++,C=C.parentElement){if(C===O||(_=C.classList)!=null&&_.contains("profile-loader"))return null;let v="";try{v=getComputedStyle(C).position}catch{}if(v&&v!=="static"){const E=C.getBoundingClientRect();if(E.height>=120&&E.width>=160)return C}}return null}function w(){const A=a.value;if(A)try{A.style.removeProperty("--pin-hint-lift");const O=A.getBoundingClientRect();if(!O.height)return;const C=Math.round(O.bottom-window.innerHeight);C>0&&A.style.setProperty("--pin-hint-lift",C+8+"px")}catch{}}function k(A){const O=a.value;if(!O||!(A!=null&&A.querySelector))return;let C=0;try{const b=A.querySelector(".mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib, .mapboxgl-ctrl-bottom-right .doxa-attribution, .doxa-attribution");if(b){const v=b.getBoundingClientRect(),E=O.parentElement,L=E?E.getBoundingClientRect():null;if(C=L?Math.max(v.height||0,L.bottom-v.top):v.height||0,f!==b&&typeof ResizeObserver<"u"){if(c)try{c.disconnect()}catch{}f=b,c=new ResizeObserver(()=>k(A)),c.observe(b)}}}catch{}const _=Math.min(Math.max(Math.ceil(C)||20,20),72);O.style.setProperty("--pin-hint-attrib-clear",_+"px"),w()}return qt(()=>{var _,b,v;const A=Mt(),O=(v=(b=(_=A==null?void 0:A.proxy)==null?void 0:_.$el)==null?void 0:b.getRootNode)==null?void 0:v.call(b);if(!O||typeof O.querySelector!="function")return;let C=0;i=setInterval(()=>{C++;const E=O.querySelector("canvas");E?(clearInterval(i),i=null,r.value=!0,Vn(()=>{const L=m(E,O),x=a.value;if(L&&x&&x.parentElement!==L)try{L.appendChild(x),l=L}catch{}k(O),w();try{const N=a.value&&a.value.offsetParent||null;if(N&&typeof ResizeObserver<"u"){if(u)try{u.disconnect()}catch{}u=new ResizeObserver(()=>w()),u.observe(N)}}catch{}})):C>40&&(clearInterval(i),i=null)},300)}),un(()=>{var A;if(i&&clearInterval(i),c){try{c.disconnect()}catch{}c=null}if(f=null,u){try{u.disconnect()}catch{}u=null}if(l&&((A=a.value)==null?void 0:A.parentElement)===l)try{l.removeChild(a.value)}catch{}l=null}),Wt(` .pin-hint { position: absolute; left: 50%; bottom: calc(var(--pin-hint-attrib-clear, 20px) + 12px + var(--pin-hint-lift, 0px)); transform: translateX(-50%); z-index: 2147482000; pointer-events: none; @@ -68,7 +68,7 @@ @media (prefers-reduced-motion: reduce) { .pin-hint, .pin-hint-pill, .pin-hint-dot::after { animation: none !important; } } -`,"pin-hint"),(A,O)=>r.value?(H(),J("div",{key:0,ref_key:"hintEl",ref:i,class:Te(["pin-hint",{dark:o.value}]),role:"status"},[M("span",Ag,[O[0]||(O[0]=M("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),$e(" "+Q(s.value)+" ",1),M("button",{class:"pin-hint-x",type:"button","aria-label":"Dismiss hint",onClick:h},"×")])],2)):Le("",!0)}};let Tg=0;const Lg=Qr("ui",{state:()=>({_storeInstanceId:++Tg,theme:"light",colorScheme:"default",reducedMotion:!1,highContrast:!1,activeTab:"doxa-regions",sidebarCollapsed:!1,mobileMenuOpen:!1,legendState:"collapsed",_customLegendHeight:null,searchMode:!1,hamburgerMenuOpen:!1,legendMode:"prayer",prayerFilter:null,engagementFilter:null,adoptionFilter:null,religionFilter:null,selectedPeopleGroup:null,breakpoint:"desktop",windowSize:{width:window.innerWidth,height:window.innerHeight},toasts:[],nextToastId:1,toastDuration:5e3,openModals:[],modalData:new Map,isGlobalLoading:!1,globalLoadingMessage:"Loading...",loadingStates:new Map,interactionHistory:[],maxHistoryLength:20,keyboardShortcutsEnabled:!0,screenReaderAnnouncement:"",focusTrapActive:!1,debugMode:!1,showPerformanceOverlay:!1}),getters:{isDarkTheme:e=>!1,isMobile:e=>e.breakpoint==="mobile",isTablet:e=>e.breakpoint==="tablet",isDesktop:e=>e.breakpoint==="desktop"||e.breakpoint==="wide",legendHeight:e=>e._customLegendHeight?e._customLegendHeight:e.legendState==="collapsed"?"48px":e.legendState==="open"?"30%":e.legendState==="fullyOpen"?"calc(100% - 80px)":"48px",caretRotation:e=>e.legendState==="collapsed"?0:90,showPullTab:e=>e.legendState==="open"||e.legendState==="fullyOpen",getToastsByType:e=>t=>e.toasts.filter(n=>n.type===t),hasOpenModal:e=>e.openModals.length>0,topModal:e=>e.openModals.length===0?null:e.openModals[e.openModals.length-1],isModalOpen:e=>t=>e.openModals.includes(t),isAnyLoading:e=>e.isGlobalLoading||e.loadingStates.size>0,isLoading:e=>t=>e.loadingStates.get(t)||!1},actions:{setTheme(e){if(!["light","dark","auto"].includes(e))return;e="light",this.theme=e;const n=this.isDarkTheme;document.documentElement.setAttribute("data-theme",n?"dark":"light");try{localStorage.setItem("theme",e)}catch{}},toggleTheme(){const e=this.theme==="light"?"dark":"light";this.setTheme(e)},setColorScheme(e){this.colorScheme=e,document.documentElement.setAttribute("data-color-scheme",e)},toggleReducedMotion(){this.reducedMotion=!this.reducedMotion,document.documentElement.setAttribute("data-reduced-motion",this.reducedMotion)},toggleHighContrast(){this.highContrast=!this.highContrast,document.documentElement.setAttribute("data-high-contrast",this.highContrast)},setActiveTab(e){this.activeTab=e,this.addToHistory({type:"tab-change",tabId:e,timestamp:Date.now()})},toggleSidebar(){this.sidebarCollapsed=!this.sidebarCollapsed},openMobileMenu(){this.mobileMenuOpen=!0},closeMobileMenu(){this.mobileMenuOpen=!1},setLegendMode(e){["prayer","detail"].includes(e)&&(this.legendMode=e)},setPrayerFilter(e){[null,"noPrayer","hasPrayer","fullPrayer"].includes(e)&&(this.prayerFilter=e)},setEngagementFilter(e){[null,"notEngaged","hasEngagement"].includes(e)&&(this.engagementFilter=e)},setAdoptionFilter(e){[null,"notAdopted","hasAdoption"].includes(e)&&(this.adoptionFilter=e)},setReligionFilter(e){[null,"C","M","H","B","E","J","S","N","O","U"].includes(e)&&(this.religionFilter=e)},selectPeopleGroup(e){this.selectedPeopleGroup=e,e?(this._legendStateBeforeDetail=this.legendState,this.legendState="open",this._customLegendHeight=null,this.setLegendMode("detail")):(this.legendState=this._legendStateBeforeDetail||"open",this._customLegendHeight=null,this.setLegendMode("prayer"))},setLegendState(e){["collapsed","open","fullyOpen"].includes(e)&&(this.legendState=e)},toggleSearchMode(){this.searchMode=!this.searchMode},setSearchMode(e){this.searchMode=e},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},updateBreakpoint(e){let t;e<768?t="mobile":e<1024?t="tablet":e<1920?t="desktop":t="wide",t!==this.breakpoint&&(this.breakpoint=t)},updateWindowSize(e,t){this.windowSize.width=e,this.windowSize.height=t,this.updateBreakpoint(e)},showToast(e){const{message:t,type:n="info",duration:o=this.toastDuration,action:s=null,persistent:r=!1}=e,i={id:this.nextToastId++,message:t,type:n,duration:o,action:s,persistent:r,createdAt:Date.now()};return this.toasts.push(i),!r&&o>0&&setTimeout(()=>{this.removeToast(i.id)},o),i.id},showSuccess(e,t={}){return this.showToast({message:e,type:"success",...t})},showError(e,t={}){return this.showToast({message:e,type:"error",duration:7e3,...t})},showWarning(e,t={}){return this.showToast({message:e,type:"warning",...t})},showInfo(e,t={}){return this.showToast({message:e,type:"info",...t})},removeToast(e){const t=this.toasts.findIndex(n=>n.id===e);t!==-1&&this.toasts.splice(t,1)},clearAllToasts(){this.toasts=[]},openModal(e,t={}){this.openModals.includes(e)||(this.openModals.push(e),this.modalData.set(e,t),this.focusTrapActive=!0)},closeModal(e=null){if(e){const t=this.openModals.indexOf(e);t!==-1&&(this.openModals.splice(t,1),this.modalData.delete(e))}else{const t=this.openModals.pop();t&&this.modalData.delete(t)}this.openModals.length===0&&(this.focusTrapActive=!1)},closeAllModals(){this.openModals=[],this.modalData.clear(),this.focusTrapActive=!1},getModalData(e){return this.modalData.get(e)},showGlobalLoading(e="Loading..."){this.isGlobalLoading=!0,this.globalLoadingMessage=e},hideGlobalLoading(){this.isGlobalLoading=!1},setLoading(e,t=!0){t?this.loadingStates.set(e,!0):this.loadingStates.delete(e)},addToHistory(e){this.interactionHistory.push(e),this.interactionHistory.length>this.maxHistoryLength&&this.interactionHistory.shift()},clearHistory(){this.interactionHistory=[]},announce(e,t="polite"){this.screenReaderAnnouncement=e,setTimeout(()=>{this.screenReaderAnnouncement===e&&(this.screenReaderAnnouncement="")},1e3)},toggleKeyboardShortcuts(){this.keyboardShortcutsEnabled=!this.keyboardShortcutsEnabled},toggleDebugMode(){this.debugMode=!this.debugMode},togglePerformanceOverlay(){this.showPerformanceOverlay=!this.showPerformanceOverlay},toggleLegend(){this.legendState==="fullyOpen"?this.legendState="open":this.legendState==="open"?this.legendState="collapsed":this.legendState="open",this._customLegendHeight=null},openLegend(){this.legendState="open",this._customLegendHeight=null},fullyOpenLegend(){this.legendState="fullyOpen",this._customLegendHeight=null},collapseLegend(){this.legendState="collapsed",this._customLegendHeight=null},setLegendHeight(e){this._customLegendHeight=e},handleLegendItemClick(){this.legendState==="fullyOpen"&&(this.legendState="open")},enableSearchMode(){this.searchMode=!0},disableSearchMode(){this.searchMode=!1},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},openHamburgerMenu(){this.hamburgerMenuOpen=!0},closeHamburgerMenu(){this.hamburgerMenuOpen=!1},init(){let e=null;try{e=localStorage.getItem("theme")}catch{}e&&this.setTheme(e),new ResizeObserver(n=>{for(const o of n)this.updateWindowSize(o.contentRect.width,o.contentRect.height)}).observe(document.documentElement),window.matchMedia&&(window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",n=>{this.theme==="auto"&&document.documentElement.setAttribute("data-theme",n.matches?"dark":"light")}),window.matchMedia("(prefers-reduced-motion: reduce)").addEventListener("change",n=>{this.reducedMotion=n.matches,document.documentElement.setAttribute("data-reduced-motion",n.matches)}))}}}),Sg=Qr("map",{state:()=>({maps:{},activeMapId:null,selectedRegion:null,selectedFamily:null,selectedAffinityBlock:null,selectedLanguage:null,selectedDialect:null,activeLegendTab:"family",selectedResource:null,selectedPeopleGroup:null,selectedPinIds:[],globalFilters:{},searchQuery:"",autoFly:{isActive:!1,speed:1,interval:5e3,currentIndex:0,items:[],timerId:null},guidedTour:{isActive:!1,currentStep:0,steps:[]},showClusters:!1,clusterMode:"region",clusterFilterProperty:null,clusterFilterValue:null,flySpeed:"normal",fullscreenMapId:null,preferences:{theme:"light",defaultMapStyle:"streets",enableAnimations:!0,autoSavePreferences:!0}}),getters:{getMapById:e=>t=>e.maps[t],activeMap:e=>e.activeMapId?e.maps[e.activeMapId]:null,hasMap:e=>t=>t in e.maps,allMapIds:e=>Object.keys(e.maps),hasSelection:e=>!!(e.selectedRegion||e.selectedFamily||e.selectedAffinityBlock||e.selectedPeopleGroup),isAutoFlying:e=>e.autoFly.isActive,isGuidedTourActive:e=>e.guidedTour.isActive,isMapFullscreen:e=>t=>e.fullscreenMapId===t},actions:{registerMap(e,t,n={}){let o=1.5;n.zoom!==void 0?o=n.zoom:t&&typeof t.getZoom=="function"&&(o=t.getZoom());let s=[0,0];if(n.center)s=n.center;else if(t&&typeof t.getCenter=="function"){const r=t.getCenter();r&&(s=[r.lng,r.lat])}this.maps[e]={instance:t,config:n,isReady:!1,zoom:o,center:s,registeredAt:Date.now()},this.activeMapId||(this.activeMapId=e)},setMapReady(e){const t=this.maps[e];t&&(t.isReady=!0)},updateMapState(e,t){const n=this.maps[e];n&&Object.assign(n,t)},unregisterMap(e){if(delete this.maps[e],this.activeMapId===e){const t=this.allMapIds;this.activeMapId=t.length>0?t[0]:null}},setActiveMap(e){e in this.maps&&(this.activeMapId=e)},selectRegion(e){this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedRegion=e},selectFamily(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedFamily=e},setActiveLegendTab(e){this.activeLegendTab=e},selectLanguage(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedFamily=null,this.selectedDialect=null,this.selectedLanguage=e},selectDialect(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedDialect=e},selectAffinityBlock(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedPeopleGroup=null,this.selectedAffinityBlock=e},selectPeopleGroup(e){this.selectedPeopleGroup=e},selectResource(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedResource===e?this.selectedResource=null:this.selectedResource=e},clearSelections(){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedAffinityBlock=null,this.selectedResource=null,this.selectedPeopleGroup=null,this.selectedPinIds=[],this.showClusters=!1,this.clusterMode="region"},setSelectedPinIds(e){this.selectedPinIds=e||[]},setFilter(e,t){this.globalFilters[e]=t},removeFilter(e){delete this.globalFilters[e]},clearFilters(){this.globalFilters={},this.searchQuery=""},setSearchQuery(e){this.searchQuery=e},startAutoFly(e,t=1){this.stopAutoFly(),this.autoFly.isActive=!0,this.autoFly.speed=t,this.autoFly.items=e,this.autoFly.currentIndex=0},stopAutoFly(){this.autoFly.timerId&&(clearInterval(this.autoFly.timerId),this.autoFly.timerId=null),this.autoFly.isActive=!1,this.autoFly.currentIndex=0},setAutoFlySpeed(e){this.autoFly.speed=Math.max(.5,Math.min(2,e))},nextAutoFlyItem(){if(!this.autoFly.isActive||this.autoFly.items.length===0)return;this.autoFly.currentIndex=(this.autoFly.currentIndex+1)%this.autoFly.items.length;const e=this.autoFly.items[this.autoFly.currentIndex];e.type==="region"?this.selectRegion(e):e.type==="family"&&this.selectFamily(e)},toggleClusters(e){typeof e=="boolean"?this.showClusters=e:this.showClusters=!this.showClusters},setClusterMode(e){["region","language-family","affinity-block","mst","resource"].includes(e)&&(this.clusterMode=e)},setClusterFilter(e,t){this.clusterFilterProperty=e||null,this.clusterFilterValue=t||null},clearClusterFilter(){this.clusterFilterProperty=null,this.clusterFilterValue=null},setFlySpeed(e){["slow","normal","fast"].includes(e)&&(this.flySpeed=e)},setSelectedFamily(e){this.selectFamily(e)},clearSelectedFamily(){this.selectFamily(null)},setSelectedRegion(e){this.selectRegion(e)},clearSelectedRegion(){this.selectRegion(null)},clearSelectedResource(){this.selectResource(null)},clearSelectedLanguage(){this.selectLanguage(null)},clearSelectedDialect(){this.selectDialect(null)},toggleFullscreen(e){this.fullscreenMapId===e?this.fullscreenMapId=null:this.fullscreenMapId=e},loadPreferences(){try{const e=localStorage.getItem("mapUserPreferences");if(e){const t=JSON.parse(e);this.preferences={...this.preferences,...t}}}catch(e){console.error("[mapStore] Failed to load preferences:",e)}},savePreferences(){try{localStorage.setItem("mapUserPreferences",JSON.stringify(this.preferences))}catch(e){console.error("[mapStore] Failed to save preferences:",e)}},setPreference(e,t){this.preferences[e]=t,this.preferences.autoSavePreferences&&this.savePreferences()}}}),Ig=Qr("data",{state:()=>({sources:{},loadingStates:{}}),actions:{async load(e,t){if(!this.sources[e]){this.loadingStates[e]={isLoading:!0,error:null};try{const n=await t();this.sources[e]=vn({features:n,timestamp:Date.now()}),this.loadingStates[e]={isLoading:!1,error:null}}catch(n){console.error(`[dataStore] Failed to load source "${e}":`,n),this.loadingStates[e]={isLoading:!1,error:n}}}},clearSource(e){delete this.sources[e],delete this.loadingStates[e]},cacheSourceData(e,t){this.sources[e]=vn({features:t.normalizedData||[],timestamp:t.timestamp||Date.now()})},hasSourceData(e){return!!this.sources[e]},getSourceData(e){return this.sources[e]?{normalizedData:this.sources[e].features}:null}},getters:{getData:e=>t=>{var n;return((n=e.sources[t])==null?void 0:n.features)??null},isLoading:e=>t=>{var n;return((n=e.loadingStates[t])==null?void 0:n.isLoading)??!1},getError:e=>t=>{var n;return((n=e.loadingStates[t])==null?void 0:n.error)??null}}}),xg={activeSource:"pray-tools"},Fg=".profile-loader[data-v-931b414b]{border-radius:var(--map-radius-corners, var(--map-radius, 0px));width:100%;height:100%;min-height:var(--profile-min-h, 100dvh);position:relative}.profile-error[data-v-931b414b]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}",Mg=(e,t)=>{const n=e.__vccOpts||e;for(const[o,s]of t)n[o]=s;return n},Pg={class:"profile-loader"},Bg={key:0,class:"profile-error"},Dg={key:1,class:"profile-error"},Rg=Mg({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var b;const n=e,o=De("profileConfig",null),s=ie(()=>{var E;if(!n.profileConfig)return null;let v;try{v=JSON.parse(n.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",n.profileConfig),null}if(v&&v.assetsBase===void 0){const L=(E=o==null?void 0:o.value)==null?void 0:E.assetsBase;typeof L=="string"&&L&&(v.assetsBase=L)}return v}),r=ie(()=>{var v;return((v=s.value)==null?void 0:v.profile)||null}),i=ie(()=>{var E;const v=(E=s.value)==null?void 0:E.tk;return typeof v=="string"&&v?v:typeof window<"u"&&typeof window.MAP_TOKEN=="string"&&window.MAP_TOKEN?window.MAP_TOKEN:""}),a=ie(()=>{var v;return((v=s.value)==null?void 0:v.dataSource)||xg.activeSource}),l=ie(()=>{var v;return((v=s.value)==null?void 0:v.colorSet)||"default"}),c=ie(()=>!1),u=ie(()=>{var v;return((v=s.value)==null?void 0:v.pinHint)!==!1}),f=ie(()=>{var E,L;const v=(((E=s.value)==null?void 0:E.locale)||((L=s.value)==null?void 0:L.lang)||"").split("-")[0].toLowerCase();return Pl.includes(v)?v:""}),h=De("appI18n",null);Dc(()=>{f.value&&h&&(h.global.locale.value=f.value)});const m=ie(()=>{var v,E;return f.value||((E=(v=h==null?void 0:h.global)==null?void 0:v.locale)==null?void 0:E.value)||"en"}),w=ie(()=>{var v;return((v=s.value)==null?void 0:v.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),k=De("profileModules",null);if(!k)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const A=ie(()=>{if(!r.value)return null;const v=`./${r.value}.vue`;return k[v]?Hc(k[v]):(console.error(`[ProfileLoader] Profile not found: "${r.value}". Available:`,Object.keys(k)),null)});nt("mapboxToken",i),nt("dataSource",a),nt("colorSet",l),nt("profileConfig",s),nt("instanceId",w),nt("lang",m);const O=Lg(),C=Sg(),_=Ig();try{const v=typeof localStorage<"u"?localStorage.getItem("theme"):null;v&&((b=O.setTheme)==null||b.call(O,v))}catch{}return nt("uiStore",O),nt("mapStore",C),nt("dataStore",_),(v,E)=>(H(),J("div",Pg,[s.value?A.value?(H(),Qe(yi(A.value),{key:2})):(H(),J("div",Dg,[M("p",null,[E[1]||(E[1]=$e("⚠️ Profile ",-1)),M("strong",null,'"'+Q(r.value)+'"',1),E[2]||(E[2]=$e(" not found.",-1))])])):(H(),J("div",Bg,[...E[0]||(E[0]=[M("p",null,[$e("⚠️ "),M("strong",null,"doxa-map"),$e(": missing or invalid "),M("code",null,"profile-config"),$e(" prop.")],-1),M("p",null,[$e("Example: "),M("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),A.value&&c.value?(H(),Qe(yi(ze(null)),{key:3})):Le("",!0),A.value&&u.value?(H(),Qe(Eg,{key:4})):Le("",!0)]))}},[["styles",[Fg]],["__scopeId","data-v-931b414b"]]),Wg=Object.assign({"./connectivity-list.vue":()=>lr(()=>Promise.resolve().then(()=>om),void 0),"./connectivity-map.vue":()=>lr(()=>Promise.resolve().then(()=>Jm),void 0),"./data-tables.vue":()=>lr(()=>Promise.resolve().then(()=>k_),void 0)});function Ug(){return fp(Rg,{configureApp(e){e.use(kp()),e.use(Ng()),e.provide("profileModules",Wg)}})}const jg=Ug();typeof customElements<"u"&&(customElements.get("cities-internet-map")||customElements.define("cities-internet-map",jg));const Gg={countries:[{iso3:"IND",country:"India",region:"Asia",clusters:541,people_groups:856,multi:164,internet_access:"yes",internet_pct:64.9,internet_year:"2024",mobile_per_100:79.4,mobile_year:"2024",national_population:1450935791,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CHN",country:"People's Republic of China",region:"Asia",clusters:130,people_groups:154,multi:19,internet_access:"yes",internet_pct:92,internet_year:"2024",mobile_per_100:131.8,mobile_year:"2024",national_population:1408975e3,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SDN",country:"Sudan",region:"Middle East",clusters:75,people_groups:105,multi:20,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:70.2,mobile_year:"2022",national_population:50448963,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BRA",country:"Brazil",region:"Latin America & Caribbean",clusters:99,people_groups:104,multi:5,internet_access:"yes",internet_pct:84.5,internet_year:"2024",mobile_per_100:101.9,mobile_year:"2024",national_population:211998573,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LAO",country:"Lao People's Democratic Republic",region:"Asia",clusters:65,people_groups:95,multi:24,internet_access:"yes",internet_pct:65.6,internet_year:"2024",mobile_per_100:64.8,mobile_year:"2023",national_population:7769819,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TCD",country:"Chad",region:"Africa",clusters:48,people_groups:54,multi:6,internet_access:"no",internet_pct:12.6,internet_year:"2024",mobile_per_100:72.9,mobile_year:"2024",national_population:20299123,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NGA",country:"Nigeria",region:"Africa",clusters:35,people_groups:38,multi:3,internet_access:"partial",internet_pct:41.2,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:232679478,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"IDN",country:"Indonesia",region:"Asia",clusters:35,people_groups:36,multi:1,internet_access:"yes",internet_pct:72.8,internet_year:"2024",mobile_per_100:122.5,mobile_year:"2024",national_population:283487931,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NPL",country:"Nepal",region:"Asia",clusters:25,people_groups:33,multi:5,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:99.8,mobile_year:"2024",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ETH",country:"Ethiopia",region:"Africa",clusters:29,people_groups:29,multi:0,internet_access:"no",internet_pct:21.9,internet_year:"2024",mobile_per_100:65.1,mobile_year:"2024",national_population:132059767,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COL",country:"Colombia",region:"Latin America & Caribbean",clusters:26,people_groups:26,multi:0,internet_access:"yes",internet_pct:79.3,internet_year:"2024",mobile_per_100:174.1,mobile_year:"2024",national_population:52886363,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PAK",country:"Pakistan",region:"Asia",clusters:21,people_groups:24,multi:2,internet_access:"partial",internet_pct:57.3,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:251269164,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SSD",country:"South Sudan",region:"Africa",clusters:22,people_groups:22,multi:0,internet_access:"no",internet_pct:6.7,internet_year:"2019",mobile_per_100:46.6,mobile_year:"2023",national_population:11943408,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"RUS",country:"Russian Federation",region:"Europe",clusters:17,people_groups:21,multi:2,internet_access:"yes",internet_pct:94.4,internet_year:"2024",mobile_per_100:186.1,mobile_year:"2024",national_population:143669648,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AFG",country:"Afghanistan",region:"Asia",clusters:15,people_groups:21,multi:5,internet_access:"no",internet_pct:16.1,internet_year:"2024",mobile_per_100:60.1,mobile_year:"2024",national_population:42647492,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"IRN",country:"Islamic Republic of Iran",region:"Middle East",clusters:19,people_groups:20,multi:1,internet_access:"yes",internet_pct:85.3,internet_year:"2024",mobile_per_100:174.1,mobile_year:"2024",national_population:91567738,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"DZA",country:"Algeria",region:"Middle East",clusters:15,people_groups:17,multi:2,internet_access:"yes",internet_pct:77.4,internet_year:"2024",mobile_per_100:115.5,mobile_year:"2024",national_population:46814308,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VNM",country:"Vietnam",region:"Asia",clusters:15,people_groups:16,multi:1,internet_access:"yes",internet_pct:84.2,internet_year:"2024",mobile_per_100:127.6,mobile_year:"2024",national_population:100987686,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TZA",country:"United Republic of Tanzania",region:"Africa",clusters:16,people_groups:16,multi:0,internet_access:"partial",internet_pct:31.2,internet_year:"2024",mobile_per_100:126.6,mobile_year:"2024",national_population:68560157,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LBY",country:"Libya",region:"Middle East",clusters:13,people_groups:15,multi:2,internet_access:"yes",internet_pct:82,internet_year:"2024",mobile_per_100:193,mobile_year:"2022",national_population:7381023,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BTN",country:"Bhutan",region:"Asia",clusters:12,people_groups:13,multi:1,internet_access:"yes",internet_pct:91.3,internet_year:"2024",mobile_per_100:99.8,mobile_year:"2024",national_population:791524,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GIN",country:"Guinea",region:"Africa",clusters:13,people_groups:13,multi:0,internet_access:"partial",internet_pct:33.3,internet_year:"2024",mobile_per_100:97.9,mobile_year:"2023",national_population:14754785,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MLI",country:"Mali",region:"Africa",clusters:13,people_groups:13,multi:0,internet_access:"partial",internet_pct:36.8,internet_year:"2024",mobile_per_100:112.1,mobile_year:"2022",national_population:24478595,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MYS",country:"Malaysia",region:"Asia",clusters:11,people_groups:12,multi:1,internet_access:"yes",internet_pct:98,internet_year:"2024",mobile_per_100:139.7,mobile_year:"2024",national_population:35557673,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AGO",country:"Angola",region:"Africa",clusters:9,people_groups:10,multi:1,internet_access:"partial",internet_pct:40.7,internet_year:"2024",mobile_per_100:69.7,mobile_year:"2024",national_population:37885849,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PER",country:"Peru",region:"Latin America & Caribbean",clusters:10,people_groups:10,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:124.6,mobile_year:"2024",national_population:34217848,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"YEM",country:"Yemen",region:"Middle East",clusters:8,people_groups:9,multi:1,internet_access:"no",internet_pct:17.5,internet_year:"2019",mobile_per_100:50.9,mobile_year:"2023",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COD",country:"Democratic Republic of the Congo",region:"Africa",clusters:8,people_groups:9,multi:1,internet_access:"no",internet_pct:19.7,internet_year:"2024",mobile_per_100:58.5,mobile_year:"2024",national_population:109276265,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BEN",country:"Benin",region:"Africa",clusters:8,people_groups:9,multi:1,internet_access:"partial",internet_pct:34,internet_year:"2024",mobile_per_100:125.9,mobile_year:"2024",national_population:14462724,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SOM",country:"Somalia",region:"Africa",clusters:9,people_groups:9,multi:0,internet_access:"partial",internet_pct:27.9,internet_year:"2024",mobile_per_100:54,mobile_year:"2023",national_population:19009151,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ERI",country:"Eritrea",region:"Africa",clusters:7,people_groups:8,multi:1,internet_access:"no",internet_pct:14.3,internet_year:"2020",mobile_per_100:59.1,mobile_year:"2022",national_population:3535603,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"IRQ",country:"Iraq",region:"Middle East",clusters:7,people_groups:8,multi:1,internet_access:"yes",internet_pct:81.5,internet_year:"2024",mobile_per_100:100.1,mobile_year:"2024",national_population:46042015,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BFA",country:"Burkina Faso",region:"Africa",clusters:7,people_groups:8,multi:1,internet_access:"partial",internet_pct:28.3,internet_year:"2024",mobile_per_100:116.6,mobile_year:"2024",national_population:23548781,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"THA",country:"Thailand",region:"Asia",clusters:8,people_groups:8,multi:0,internet_access:"yes",internet_pct:90.9,internet_year:"2024",mobile_per_100:160.6,mobile_year:"2024",national_population:71668011,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PSE",country:"State of Palestine",region:"Middle East",clusters:3,people_groups:7,multi:1,internet_access:"yes",internet_pct:86.6,internet_year:"2023",mobile_per_100:76.7,mobile_year:"2023",national_population:5289152,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"OMN",country:"Oman",region:"Middle East",clusters:7,people_groups:7,multi:0,internet_access:"yes",internet_pct:95.3,internet_year:"2024",mobile_per_100:120.6,mobile_year:"2024",national_population:5281538,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MMR",country:"Myanmar",region:"Asia",clusters:7,people_groups:7,multi:0,internet_access:"partial",internet_pct:45.4,internet_year:"2020",mobile_per_100:114.3,mobile_year:"2024",national_population:54500091,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CMR",country:"Cameroon",region:"Africa",clusters:7,people_groups:7,multi:0,internet_access:"partial",internet_pct:46.3,internet_year:"2024",mobile_per_100:108.2,mobile_year:"2024",national_population:29123744,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TGO",country:"Togo",region:"Africa",clusters:5,people_groups:6,multi:1,internet_access:"partial",internet_pct:39.5,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:8406558,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JPN",country:"Japan",region:"Asia",clusters:6,people_groups:6,multi:0,internet_access:"yes",internet_pct:85.5,internet_year:"2024",mobile_per_100:178.4,mobile_year:"2023",national_population:123975371,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"UGA",country:"Uganda",region:"Africa",clusters:6,people_groups:6,multi:0,internet_access:"no",internet_pct:8.9,internet_year:"2024",mobile_per_100:83.2,mobile_year:"2024",national_population:50015092,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ZMB",country:"Zambia",region:"Africa",clusters:6,people_groups:6,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:108.7,mobile_year:"2024",national_population:21314956,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VEN",country:"Venezuela",region:"Latin America & Caribbean",clusters:6,people_groups:6,multi:0,internet_access:"yes",internet_pct:76.7,internet_year:"2024",mobile_per_100:71,mobile_year:"2024",national_population:28405543,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NAM",country:"Namibia",region:"Africa",clusters:6,people_groups:6,multi:0,internet_access:"yes",internet_pct:64.9,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:3030131,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BRN",country:"Brunei Darussalam",region:"Asia",clusters:4,people_groups:5,multi:1,internet_access:"yes",internet_pct:96.3,internet_year:"2024",mobile_per_100:118.1,mobile_year:"2024",national_population:462721,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KEN",country:"Kenya",region:"Africa",clusters:5,people_groups:5,multi:0,internet_access:"partial",internet_pct:35,internet_year:"2024",mobile_per_100:126.5,mobile_year:"2024",national_population:56432944,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SYR",country:"Syrian Arab Republic",region:"Middle East",clusters:5,people_groups:5,multi:0,internet_access:"partial",internet_pct:33.8,internet_year:"2018",mobile_per_100:71.2,mobile_year:"2024",national_population:24672760,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LBN",country:"Lebanon",region:"Middle East",clusters:4,people_groups:4,multi:0,internet_access:"yes",internet_pct:80.6,internet_year:"2024",mobile_per_100:74,mobile_year:"2022",national_population:5805962,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MOZ",country:"Mozambique",region:"Africa",clusters:4,people_groups:4,multi:0,internet_access:"no",internet_pct:20.5,internet_year:"2024",mobile_per_100:49.5,mobile_year:"2024",national_population:34631766,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MAR",country:"Morocco",region:"Middle East",clusters:4,people_groups:4,multi:0,internet_access:"yes",internet_pct:91.2,internet_year:"2024",mobile_per_100:153.1,mobile_year:"2024",national_population:38081173,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"QAT",country:"Qatar",region:"Middle East",clusters:1,people_groups:3,multi:1,internet_access:"yes",internet_pct:98.1,internet_year:"2024",mobile_per_100:153.6,mobile_year:"2024",national_population:2857822,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SAU",country:"Saudi Arabia",region:"Middle East",clusters:2,people_groups:3,multi:1,internet_access:"yes",internet_pct:100,internet_year:"2024",mobile_per_100:159.5,mobile_year:"2024",national_population:35300280,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TUR",country:"Türkiye",region:"Europe",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:87.3,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:85518661,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AZE",country:"Azerbaijan",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:90.4,internet_year:"2024",mobile_per_100:109.5,mobile_year:"2024",national_population:10202830,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GMB",country:"Republic of The Gambia",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:49.5,internet_year:"2024",mobile_per_100:126.2,mobile_year:"2024",national_population:2759988,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JOR",country:"Jordan",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:95.6,internet_year:"2024",mobile_per_100:69.6,mobile_year:"2024",national_population:11552876,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ZWE",country:"Zimbabwe",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:94.2,mobile_year:"2024",national_population:16634373,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COM",country:"Comoros",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:32.5,internet_year:"2024",mobile_per_100:109.9,mobile_year:"2023",national_population:866628,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"USA",country:"United States of America",region:"Other",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:94.7,internet_year:"2024",mobile_per_100:113.2,mobile_year:"2024",national_population:340003797,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BGD",country:"Bangladesh",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:53.4,internet_year:"2024",mobile_per_100:108.1,mobile_year:"2024",national_population:173562364,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GNB",country:"Guinea-Bissau",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:29.8,internet_year:"2024",mobile_per_100:147.2,mobile_year:"2024",national_population:2201352,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KOS",country:"KOS",region:"Europe",clusters:3,people_groups:3,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MRT",country:"Mauritania",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:45.8,internet_year:"2024",mobile_per_100:92.1,mobile_year:"2024",national_population:5169395,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ESH",country:"Western Sahara",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TJK",country:"Tajikistan",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:55.8,internet_year:"2024",mobile_per_100:76.2,mobile_year:"2023",national_population:10590927,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"EGY",country:"Egypt",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:74.6,internet_year:"2024",mobile_per_100:97.1,mobile_year:"2024",national_population:116538258,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MNG",country:"Mongolia",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:85.1,internet_year:"2024",mobile_per_100:140.7,mobile_year:"2024",national_population:3524788,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BHR",country:"Bahrain",region:"Middle East",clusters:1,people_groups:2,multi:1,internet_access:"yes",internet_pct:100,internet_year:"2024",mobile_per_100:159.5,mobile_year:"2024",national_population:1588670,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SUR",country:"Suriname",region:"North America & Non-Spanish Caribbean",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:142.1,mobile_year:"2024",national_population:634431,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NER",country:"Niger",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:60.6,mobile_year:"2024",national_population:27032412,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ZAF",country:"South Africa",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:78.4,internet_year:"2024",mobile_per_100:179.3,mobile_year:"2024",national_population:64007187,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CCK",country:"Cocos (Keeling) Islands",region:"N/A",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COG",country:"Republic of the Congo",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:47.3,internet_year:"2024",mobile_per_100:95.5,mobile_year:"2024",national_population:6332961,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ARE",country:"United Arab Emirates",region:"Middle East",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:100,internet_year:"2024",mobile_per_100:203.2,mobile_year:"2024",national_population:10986400,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GAB",country:"Gabon",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:68.7,internet_year:"2024",mobile_per_100:125.3,mobile_year:"2024",national_population:2538952,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GUF",country:"French Guiana",region:"N/A",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CIV",country:"Cote d'Ivoire",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:41.4,internet_year:"2024",mobile_per_100:183.9,mobile_year:"2024",national_population:31934230,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KGZ",country:"Kyrgyzstan",region:"Asia",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:92,internet_year:"2024",mobile_per_100:107.5,mobile_year:"2024",national_population:7221868,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LBR",country:"Liberia",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:32.2,internet_year:"2024",mobile_per_100:32.1,mobile_year:"2022",national_population:5612817,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SWE",country:"Sweden",region:"Europe",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:140.7,mobile_year:"2024",national_population:10569709,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TUN",country:"Tunisia",region:"Middle East",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:76.5,internet_year:"2024",mobile_per_100:117.6,mobile_year:"2024",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SLE",country:"Sierra Leone",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:25.1,internet_year:"2024",mobile_per_100:107.9,mobile_year:"2022",national_population:8642022,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AND",country:"Andorra",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:94.4,internet_year:"2024",mobile_per_100:155.7,mobile_year:"2024",national_population:81938,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SEN",country:"Senegal",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:60.1,internet_year:"2024",mobile_per_100:123.9,mobile_year:"2024",national_population:18501984,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MNE",country:"Montenegro",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:88.9,internet_year:"2024",mobile_per_100:221.7,mobile_year:"2024",national_population:623525,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BOL",country:"Bolivia",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:79.7,internet_year:"2024",mobile_per_100:98,mobile_year:"2024",national_population:12413315,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ECU",country:"Ecuador",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:77.2,internet_year:"2024",mobile_per_100:101.6,mobile_year:"2024",national_population:18135478,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VIR",country:"Virgin Islands, U.S.",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:91.5,mobile_year:"2022",national_population:104377,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ATG",country:"Antigua and Barbuda",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:72.7,internet_year:"2024",mobile_per_100:200.5,mobile_year:"2022",national_population:93772,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ARM",country:"Armenia",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:81.3,internet_year:"2024",mobile_per_100:134.9,mobile_year:"2024",national_population:3033500,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ABW",country:"Aruba",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:130.6,mobile_year:"2022",national_population:107995,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BHS",country:"Bahamas",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:92.5,internet_year:"2024",mobile_per_100:96.7,mobile_year:"2024",national_population:401283,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BRB",country:"Barbados",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:70.4,internet_year:"2024",mobile_per_100:114.6,mobile_year:"2022",national_population:282467,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BLR",country:"Belarus",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:94.3,internet_year:"2024",mobile_per_100:131.1,mobile_year:"2024",national_population:9132629,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BMU",country:"Bermuda",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:96.7,mobile_year:"2024",national_population:64636,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BIH",country:"Bosnia and Herzegovina",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:86.1,internet_year:"2024",mobile_per_100:121.2,mobile_year:"2024",national_population:3164253,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VGB",country:"Virgin Islands, British",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:39471,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BGR",country:"Bulgaria",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:82.4,internet_year:"2024",mobile_per_100:118.1,mobile_year:"2024",national_population:6441421,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KHM",country:"Cambodia",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:68.5,internet_year:"2024",mobile_per_100:116.1,mobile_year:"2024",national_population:17638801,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CYM",country:"Cayman Islands",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:139.3,mobile_year:"2022",national_population:74457,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CAF",country:"Central African Republic",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"no",internet_pct:13.8,internet_year:"2024",mobile_per_100:38.8,mobile_year:"2022",national_population:5330690,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CXR",country:"Christmas Island",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COK",country:"Cook Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CUB",country:"Cuba",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:70.5,internet_year:"2024",mobile_per_100:72.9,mobile_year:"2024",national_population:10979783,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CUW",country:"Curaçao",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:93.8,mobile_year:"2023",national_population:155967,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CYP",country:"Cyprus",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.6,internet_year:"2024",mobile_per_100:156.2,mobile_year:"2024",national_population:1358282,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"DJI",country:"Djibouti",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:65.3,internet_year:"2024",mobile_per_100:48.5,mobile_year:"2023",national_population:1168722,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"DMA",country:"Dominica",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:82,internet_year:"2024",mobile_per_100:85.2,mobile_year:"2022",national_population:66205,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GNQ",country:"Equatorial Guinea",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:63.3,internet_year:"2024",mobile_per_100:49.5,mobile_year:"2022",national_population:1892516,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FRO",country:"Faroe Islands",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:105.8,mobile_year:"2022",national_population:54640,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FJI",country:"Fiji",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:74.7,internet_year:"2024",mobile_per_100:574.2,mobile_year:"2024",national_population:928784,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PYF",country:"French Polynesia",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:118.8,mobile_year:"2023",national_population:281807,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GEO",country:"Georgia",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:83.8,internet_year:"2024",mobile_per_100:161.2,mobile_year:"2024",national_population:3812518,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GIB",country:"Gibraltar",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:97.6,mobile_year:"2022",national_population:39329,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GRC",country:"Greece",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:86.3,internet_year:"2024",mobile_per_100:113.6,mobile_year:"2024",national_population:10405134,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GRD",country:"Grenada",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:70.2,internet_year:"2024",mobile_per_100:95.8,mobile_year:"2022",national_population:117207,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GLP",country:"Guadeloupe",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GUM",country:"Guam",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:167777,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GGY",country:"Guernsey",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ISL",country:"Iceland",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:98.2,internet_year:"2024",mobile_per_100:120.9,mobile_year:"2024",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KIR",country:"Kiribati",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.4,internet_year:"2024",mobile_per_100:53.5,mobile_year:"2024",national_population:134518,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JAM",country:"Jamaica",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:90.1,internet_year:"2024",mobile_per_100:117.7,mobile_year:"2024",national_population:2839175,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JEY",country:"Jersey",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KAZ",country:"Kazakhstan",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:93.4,internet_year:"2024",mobile_per_100:127.1,mobile_year:"2024",national_population:20592571,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PRK",country:"North Korea",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:24.1,mobile_year:"2022",national_population:26498823,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KWT",country:"Kuwait",region:"Middle East",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:99.7,internet_year:"2024",mobile_per_100:167.7,mobile_year:"2023",national_population:4897263,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LIE",country:"Liechtenstein",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:98.3,internet_year:"2024",mobile_per_100:128.9,mobile_year:"2024",national_population:40450,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LUX",country:"Luxembourg",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:98.8,internet_year:"2024",mobile_per_100:144.5,mobile_year:"2023",national_population:677012,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MYT",country:"Mayotte",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MDV",country:"Maldives",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:85.2,internet_year:"2024",mobile_per_100:148.1,mobile_year:"2024",national_population:527799,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MLT",country:"Malta",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:93.9,internet_year:"2024",mobile_per_100:142.1,mobile_year:"2024",national_population:568847,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MNP",country:"Northern Mariana Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:44278,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MHL",country:"Marshall Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:65.9,internet_year:"2024",mobile_per_100:39.7,mobile_year:"2022",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MUS",country:"Mauritius",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:73.3,internet_year:"2024",mobile_per_100:172.7,mobile_year:"2024",national_population:1245779,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FSM",country:"Micronesia, Federated States of",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:39.5,internet_year:"2024",mobile_per_100:20,mobile_year:"2022",national_population:113160,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MCO",country:"Monaco",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:99,internet_year:"2024",mobile_per_100:107.4,mobile_year:"2024",national_population:38631,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MSR",country:"Montserrat",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NCL",country:"New Caledonia",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:91.7,mobile_year:"2022",national_population:292639,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NIU",country:"Niue",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VUT",country:"Vanuatu",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:89.3,mobile_year:"2023",national_population:327777,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NFK",country:"Norfolk Island",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"HKG",country:"Hong Kong",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:95.8,internet_year:"2024",mobile_per_100:364.8,mobile_year:"2024",national_population:7524100,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MAC",country:"Macao",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.8,internet_year:"2024",mobile_per_100:201.1,mobile_year:"2024",national_population:687e3,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PLW",country:"Palau",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:83.9,internet_year:"2024",mobile_per_100:135.4,mobile_year:"2023",national_population:17695,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PNG",country:"Papua New Guinea",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"no",internet_pct:18.8,internet_year:"2024",mobile_per_100:38.8,mobile_year:"2024",national_population:10576502,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BLM",country:"Saint Barthélemy",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SHN",country:"Saint Helena",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LCA",country:"Saint Lucia",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:68.2,internet_year:"2024",mobile_per_100:98.7,mobile_year:"2022",national_population:179744,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SMR",country:"San Marino",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:97.4,internet_year:"2024",mobile_per_100:120.3,mobile_year:"2022",national_population:33977,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ASM",country:"American Samoa",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:46765,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"WSM",country:"Samoa",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:62.4,mobile_year:"2022",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"STP",country:"Sao Tome and Principe",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:59.1,internet_year:"2024",mobile_per_100:62.4,mobile_year:"2024",national_population:235536,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SXM",country:"Sint Maarten (Dutch part)",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:205.4,mobile_year:"2022",national_population:43350,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SLB",country:"Solomon Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:29,internet_year:"2024",mobile_per_100:62.1,mobile_year:"2022",national_population:819198,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LKA",country:"Sri Lanka",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:54.6,internet_year:"2024",mobile_per_100:132.5,mobile_year:"2024",national_population:21916e3,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SJM",country:"Svalbard and Jan Mayen",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SWZ",country:"Eswatini",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:63.4,internet_year:"2024",mobile_per_100:139.8,mobile_year:"2024",national_population:1242822,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TKL",country:"Tokelau",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TON",country:"Tonga",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:67.4,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:104175,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TCA",country:"Turks and Caicos Islands",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:46535,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VCT",country:"Saint Vincent and the Grenadines",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:76.2,internet_year:"2024",mobile_per_100:108.4,mobile_year:"2024",national_population:100616,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"WLF",country:"Wallis and Futuna",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PRY",country:"Paraguay",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:81.6,internet_year:"2024",mobile_per_100:126.6,mobile_year:"2023",national_population:6929153,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FIN",country:"Finland",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:93.7,internet_year:"2024",mobile_per_100:125.9,mobile_year:"2024",national_population:5619911,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ALB",country:"Albania",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:85.9,internet_year:"2024",mobile_per_100:89.1,mobile_year:"2024",national_population:2377128,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PAN",country:"Panama",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:72.8,internet_year:"2024",mobile_per_100:156.6,mobile_year:"2023",national_population:4515577,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NZL",country:"New Zealand",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:130.1,mobile_year:"2024",national_population:529e4,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CZE",country:"Czech Republic",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:87.7,internet_year:"2024",mobile_per_100:126.6,mobile_year:"2024",national_population:10905028,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GHA",country:"Ghana",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:72.2,internet_year:"2024",mobile_per_100:113.6,mobile_year:"2024",national_population:34427414,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PHL",country:"Philippines",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:67.3,internet_year:"2024",mobile_per_100:115.3,mobile_year:"2024",national_population:115843670,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ISR",country:"Israel",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:88.2,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:10002200,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GUY",country:"Guyana",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:83,internet_year:"2024",mobile_per_100:112.6,mobile_year:"2022",national_population:831087,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"UZB",country:"Uzbekistan",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.5,internet_year:"2024",mobile_per_100:110.5,mobile_year:"2024",national_population:36361859,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ESP",country:"Spain",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:95.8,internet_year:"2024",mobile_per_100:130.3,mobile_year:"2024",national_population:48848840,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MWI",country:"Malawi",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:69.3,mobile_year:"2024",national_population:21655286,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}}]},Yg={class:"ci-tot"},Vg={class:"ci-chip"},Hg={class:"ci-chip"},qg={class:"ci-chip"},zg={class:"ci-chip"},Kg=["onClick"],Xg={class:"sec-name"},Jg={class:"sec-meta"},Zg={class:"r-name"},Qg={class:"r-sub"},em={class:"r-num"},tm={class:"r-sub"},nm={class:"r-num"},om=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"connectivity-list",setup(e){const t=De("profileConfig",re(null)),n=ie(()=>{var f;return((f=t.value)==null?void 0:f.isDark)===!0}),o=ie(()=>Gg.countries||[]),s=ie(()=>{const f=new Map;for(const h of o.value){const m=h.region||"Other";f.has(m)||f.set(m,[]),f.get(m).push(h)}return[...f.entries()].map(([h,m])=>({name:h,items:m.slice().sort((w,k)=>k.people_groups-w.people_groups),groups:m.reduce((w,k)=>w+k.people_groups,0),unknown:m.filter(w=>w.internet_access==="unknown").length})).sort((h,m)=>m.groups-h.groups)}),r=re({}),i=f=>!!r.value[f],a=f=>{r.value={...r.value,[f]:!r.value[f]}},l=ie(()=>{const f=o.value;return{countries:f.length,resolved:f.filter(h=>h.internet_access!=="unknown").length,unknown:f.filter(h=>h.internet_access==="unknown").length,low:f.filter(h=>h.internet_access==="no").length}}),c=f=>f==="yes"?"ok":f==="partial"?"mid":f==="no"?"low":"unk",u=f=>f==="yes"?"connected":f==="partial"?"partial":f==="no"?"low":"unknown";return Wt(".ci{position:absolute;inset:0;overflow-y:auto;padding:20px 18px 44px;background:#f6f7f9;color:#0f1419;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.ci.is-dark{background:#0a1410;color:#e5e7eb}.ci-h{margin:0 0 4px;font-size:19px;font-weight:700;text-align:center}.ci-sub{margin:0 auto 18px;max-width:640px;font-size:12.5px;line-height:1.55;text-align:center;opacity:.75}.ci-tot{display:flex;gap:14px;justify-content:center;margin-bottom:20px;flex-wrap:wrap}.ci-chip{font-size:11.5px;padding:4px 11px;border-radius:999px;background:rgba(0,0,0,.06);font-weight:600}.is-dark .ci-chip{background:rgba(255,255,255,.10)}.sec{max-width:1080px;margin:0 auto;padding-bottom:34px}.sec-head{position:sticky;top:0;z-index:6;background:#f6f7f9;display:flex;align-items:baseline;gap:10px;padding:10px 10px 8px;margin:0 2px 10px;border-bottom:1px solid rgba(0,0,0,.10);cursor:pointer;user-select:none;width:100%;text-align:left;border-top:0;border-left:0;border-right:0;font:inherit;color:inherit;box-shadow:0 6px 10px -8px rgba(0,0,0,.35);border-radius:4px 4px 0 0}.is-dark .sec-head{background:#0a1410;border-bottom-color:rgba(255,255,255,.12)}.sec-caret{display:inline-block;width:12px;font-size:10px;opacity:.55;transition:transform .18s}.sec-caret.open{transform:rotate(90deg)}.sec-name{margin:0;font-size:15px;font-weight:700}.sec-meta{font-size:11px;opacity:.6;font-variant-numeric:tabular-nums}.row{display:grid;grid-template-columns:1fr auto auto auto;gap:12px;align-items:center;padding:8px 10px;border-bottom:1px solid rgba(0,0,0,.06)}.is-dark .row{border-bottom-color:rgba(255,255,255,.07)}.r-name{font-size:13.5px;font-weight:600}.r-sub{font-size:11px;opacity:.6}.r-num{font-size:12.5px;font-variant-numeric:tabular-nums;text-align:right;min-width:72px}.pill{font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}.pill.ok{background:rgba(16,185,129,.15);color:#0b7a5b}.pill.mid{background:rgba(245,158,11,.16);color:#8a6414}.pill.low{background:rgba(220,38,38,.13);color:#a12020}.pill.unk{background:rgba(0,0,0,.07);color:#6b7280}.is-dark .pill.unk{background:rgba(255,255,255,.10);color:#9ca3af}.src{max-width:1080px;margin:8px auto 0;font-size:11px;line-height:1.6;opacity:.6;text-align:center}","doxa-cities-internet"),(f,h)=>(H(),J("div",{class:Te(["ci",{"is-dark":n.value}])},[h[1]||(h[1]=M("h2",{class:"ci-h"},"Cities with Internet",-1)),h[2]||(h[2]=M("p",{class:"ci-sub"},[$e(" Connectivity where the unengaged people groups live. Every figure is a measured national statistic with its observation year — "),M("strong",null,"unknown means unmeasured, never assumed"),$e(". ")],-1)),M("div",Yg,[M("span",Vg,Q(l.value.countries)+" countries",1),M("span",Hg,Q(l.value.resolved)+" measured",1),M("span",qg,Q(l.value.unknown)+" unknown",1),M("span",zg,Q(l.value.low)+" low-connectivity",1)]),(H(!0),J(de,null,ct(s.value,m=>(H(),J("section",{key:m.name,class:"sec"},[M("button",{type:"button",class:"sec-head",onClick:w=>a(m.name)},[M("span",{class:Te(["sec-caret",{open:!i(m.name)}])},"▶",2),M("h3",Xg,Q(m.name),1),M("span",Jg,[$e(Q(m.items.length)+" countries · "+Q(m.groups.toLocaleString())+" people groups ",1),m.unknown?(H(),J(de,{key:0},[$e(" · "+Q(m.unknown)+" unmeasured",1)],64)):Le("",!0)])],8,Kg),Fc(M("div",null,[(H(!0),J(de,null,ct(m.items,w=>(H(),J("div",{key:w.iso3,class:"row"},[M("div",null,[M("div",Zg,Q(w.country),1),M("div",Qg,[$e(Q(w.people_groups)+" people groups · "+Q(w.clusters)+" locations ",1),w.multi?(H(),J(de,{key:0},[$e(" · "+Q(w.multi)+" population centres",1)],64)):Le("",!0)])]),M("div",em,[w.internet_pct!==null&&w.internet_pct!==void 0?(H(),J(de,{key:0},[$e(Q(w.internet_pct)+"% ",1),M("div",tm,Q(w.internet_year),1)],64)):(H(),J(de,{key:1},[$e("—")],64))]),M("div",nm,[w.mobile_per_100!==null&&w.mobile_per_100!==void 0?(H(),J(de,{key:0},[$e(Q(w.mobile_per_100)+" ",1),h[0]||(h[0]=M("div",{class:"r-sub"},"mob/100",-1))],64)):(H(),J(de,{key:1},[$e("—")],64))]),M("span",{class:Te(["pill",c(w.internet_access)])},Q(u(w.internet_access)),3)]))),128))],512),[[Ku,!i(m.name)]])]))),128)),h[3]||(h[3]=M("p",{class:"src"}," Internet and mobile figures: World Bank Open Data (CC BY 4.0), most recent observation 2018–2024. Banding: connected ≥60% · partial 25–59% · low <25% of population using the internet. Country-resolution — per-city measurements are not publicly available at this scale. ISP names, carrier names and censorship history require per-country cited reporting and are not shown. ",-1))],2))}}},Symbol.toStringTag,{value:"Module"})),ys={boundaries:{label:"geoBoundaries",href:"https://www.geoboundaries.org",title:"Country and administrative boundaries — geoBoundaries gbOpen (mixed upstream licences; see docs)"},mapbox:{label:"Mapbox",href:"https://www.mapbox.com/about/maps/"},osm:{label:"© OpenStreetMap",href:"https://www.openstreetmap.org/copyright"}};function rm(e,t={}){if(!e||typeof e.addControl!="function")return null;const{boundaries:n=!0,basemap:o=!0}=t,s=document.createElement("div");s.className="doxa-attribution mapboxgl-ctrl",s.style.cssText=["font:11px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif","background:rgba(255,255,255,.82)","color:#3a4048","padding:2px 6px","border-radius:3px 0 0 0","pointer-events:auto","max-width:min(92vw,420px)"].join(";");const r=[];n&&r.push(ys.boundaries),o&&(r.push(ys.mapbox),r.push(ys.osm)),s.innerHTML=r.map(a=>`${a.label}`).join(" · ");const i={onAdd:()=>s,onRemove:()=>{s.parentNode&&s.parentNode.removeChild(s)},getDefaultPosition:()=>"bottom-right"};return e.addControl(i,"bottom-right"),i}const sm={__name:"MapToolbar",props:{hasGeocoder:{type:Boolean,default:!0}},setup(e){const t=re(null);return nt("mapToolbar",{el:t}),Wt(` +`,"pin-hint"),(A,O)=>r.value?(H(),J("div",{key:0,ref_key:"hintEl",ref:a,class:Te(["pin-hint",{dark:o.value}]),role:"status"},[M("span",Ag,[O[0]||(O[0]=M("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),$e(" "+Q(s.value)+" ",1),M("button",{class:"pin-hint-x",type:"button","aria-label":"Dismiss hint",onClick:h},"×")])],2)):Le("",!0)}};let Tg=0;const Lg=Qr("ui",{state:()=>({_storeInstanceId:++Tg,theme:"light",colorScheme:"default",reducedMotion:!1,highContrast:!1,activeTab:"doxa-regions",sidebarCollapsed:!1,mobileMenuOpen:!1,legendState:"collapsed",_customLegendHeight:null,searchMode:!1,hamburgerMenuOpen:!1,legendMode:"prayer",prayerFilter:null,engagementFilter:null,adoptionFilter:null,religionFilter:null,selectedPeopleGroup:null,breakpoint:"desktop",windowSize:{width:window.innerWidth,height:window.innerHeight},toasts:[],nextToastId:1,toastDuration:5e3,openModals:[],modalData:new Map,isGlobalLoading:!1,globalLoadingMessage:"Loading...",loadingStates:new Map,interactionHistory:[],maxHistoryLength:20,keyboardShortcutsEnabled:!0,screenReaderAnnouncement:"",focusTrapActive:!1,debugMode:!1,showPerformanceOverlay:!1}),getters:{isDarkTheme:e=>!1,isMobile:e=>e.breakpoint==="mobile",isTablet:e=>e.breakpoint==="tablet",isDesktop:e=>e.breakpoint==="desktop"||e.breakpoint==="wide",legendHeight:e=>e._customLegendHeight?e._customLegendHeight:e.legendState==="collapsed"?"48px":e.legendState==="open"?"30%":e.legendState==="fullyOpen"?"calc(100% - 80px)":"48px",caretRotation:e=>e.legendState==="collapsed"?0:90,showPullTab:e=>e.legendState==="open"||e.legendState==="fullyOpen",getToastsByType:e=>t=>e.toasts.filter(n=>n.type===t),hasOpenModal:e=>e.openModals.length>0,topModal:e=>e.openModals.length===0?null:e.openModals[e.openModals.length-1],isModalOpen:e=>t=>e.openModals.includes(t),isAnyLoading:e=>e.isGlobalLoading||e.loadingStates.size>0,isLoading:e=>t=>e.loadingStates.get(t)||!1},actions:{setTheme(e){if(!["light","dark","auto"].includes(e))return;e="light",this.theme=e;const n=this.isDarkTheme;document.documentElement.setAttribute("data-theme",n?"dark":"light");try{localStorage.setItem("theme",e)}catch{}},toggleTheme(){const e=this.theme==="light"?"dark":"light";this.setTheme(e)},setColorScheme(e){this.colorScheme=e,document.documentElement.setAttribute("data-color-scheme",e)},toggleReducedMotion(){this.reducedMotion=!this.reducedMotion,document.documentElement.setAttribute("data-reduced-motion",this.reducedMotion)},toggleHighContrast(){this.highContrast=!this.highContrast,document.documentElement.setAttribute("data-high-contrast",this.highContrast)},setActiveTab(e){this.activeTab=e,this.addToHistory({type:"tab-change",tabId:e,timestamp:Date.now()})},toggleSidebar(){this.sidebarCollapsed=!this.sidebarCollapsed},openMobileMenu(){this.mobileMenuOpen=!0},closeMobileMenu(){this.mobileMenuOpen=!1},setLegendMode(e){["prayer","detail"].includes(e)&&(this.legendMode=e)},setPrayerFilter(e){[null,"noPrayer","hasPrayer","fullPrayer"].includes(e)&&(this.prayerFilter=e)},setEngagementFilter(e){[null,"notEngaged","hasEngagement"].includes(e)&&(this.engagementFilter=e)},setAdoptionFilter(e){[null,"notAdopted","hasAdoption"].includes(e)&&(this.adoptionFilter=e)},setReligionFilter(e){[null,"C","M","H","B","E","J","S","N","O","U"].includes(e)&&(this.religionFilter=e)},selectPeopleGroup(e){this.selectedPeopleGroup=e,e?(this._legendStateBeforeDetail=this.legendState,this.legendState="open",this._customLegendHeight=null,this.setLegendMode("detail")):(this.legendState=this._legendStateBeforeDetail||"open",this._customLegendHeight=null,this.setLegendMode("prayer"))},setLegendState(e){["collapsed","open","fullyOpen"].includes(e)&&(this.legendState=e)},toggleSearchMode(){this.searchMode=!this.searchMode},setSearchMode(e){this.searchMode=e},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},updateBreakpoint(e){let t;e<768?t="mobile":e<1024?t="tablet":e<1920?t="desktop":t="wide",t!==this.breakpoint&&(this.breakpoint=t)},updateWindowSize(e,t){this.windowSize.width=e,this.windowSize.height=t,this.updateBreakpoint(e)},showToast(e){const{message:t,type:n="info",duration:o=this.toastDuration,action:s=null,persistent:r=!1}=e,a={id:this.nextToastId++,message:t,type:n,duration:o,action:s,persistent:r,createdAt:Date.now()};return this.toasts.push(a),!r&&o>0&&setTimeout(()=>{this.removeToast(a.id)},o),a.id},showSuccess(e,t={}){return this.showToast({message:e,type:"success",...t})},showError(e,t={}){return this.showToast({message:e,type:"error",duration:7e3,...t})},showWarning(e,t={}){return this.showToast({message:e,type:"warning",...t})},showInfo(e,t={}){return this.showToast({message:e,type:"info",...t})},removeToast(e){const t=this.toasts.findIndex(n=>n.id===e);t!==-1&&this.toasts.splice(t,1)},clearAllToasts(){this.toasts=[]},openModal(e,t={}){this.openModals.includes(e)||(this.openModals.push(e),this.modalData.set(e,t),this.focusTrapActive=!0)},closeModal(e=null){if(e){const t=this.openModals.indexOf(e);t!==-1&&(this.openModals.splice(t,1),this.modalData.delete(e))}else{const t=this.openModals.pop();t&&this.modalData.delete(t)}this.openModals.length===0&&(this.focusTrapActive=!1)},closeAllModals(){this.openModals=[],this.modalData.clear(),this.focusTrapActive=!1},getModalData(e){return this.modalData.get(e)},showGlobalLoading(e="Loading..."){this.isGlobalLoading=!0,this.globalLoadingMessage=e},hideGlobalLoading(){this.isGlobalLoading=!1},setLoading(e,t=!0){t?this.loadingStates.set(e,!0):this.loadingStates.delete(e)},addToHistory(e){this.interactionHistory.push(e),this.interactionHistory.length>this.maxHistoryLength&&this.interactionHistory.shift()},clearHistory(){this.interactionHistory=[]},announce(e,t="polite"){this.screenReaderAnnouncement=e,setTimeout(()=>{this.screenReaderAnnouncement===e&&(this.screenReaderAnnouncement="")},1e3)},toggleKeyboardShortcuts(){this.keyboardShortcutsEnabled=!this.keyboardShortcutsEnabled},toggleDebugMode(){this.debugMode=!this.debugMode},togglePerformanceOverlay(){this.showPerformanceOverlay=!this.showPerformanceOverlay},toggleLegend(){this.legendState==="fullyOpen"?this.legendState="open":this.legendState==="open"?this.legendState="collapsed":this.legendState="open",this._customLegendHeight=null},openLegend(){this.legendState="open",this._customLegendHeight=null},fullyOpenLegend(){this.legendState="fullyOpen",this._customLegendHeight=null},collapseLegend(){this.legendState="collapsed",this._customLegendHeight=null},setLegendHeight(e){this._customLegendHeight=e},handleLegendItemClick(){this.legendState==="fullyOpen"&&(this.legendState="open")},enableSearchMode(){this.searchMode=!0},disableSearchMode(){this.searchMode=!1},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},openHamburgerMenu(){this.hamburgerMenuOpen=!0},closeHamburgerMenu(){this.hamburgerMenuOpen=!1},init(){let e=null;try{e=localStorage.getItem("theme")}catch{}e&&this.setTheme(e),new ResizeObserver(n=>{for(const o of n)this.updateWindowSize(o.contentRect.width,o.contentRect.height)}).observe(document.documentElement),window.matchMedia&&(window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",n=>{this.theme==="auto"&&document.documentElement.setAttribute("data-theme",n.matches?"dark":"light")}),window.matchMedia("(prefers-reduced-motion: reduce)").addEventListener("change",n=>{this.reducedMotion=n.matches,document.documentElement.setAttribute("data-reduced-motion",n.matches)}))}}}),Sg=Qr("map",{state:()=>({maps:{},activeMapId:null,selectedRegion:null,selectedFamily:null,selectedAffinityBlock:null,selectedLanguage:null,selectedDialect:null,activeLegendTab:"family",selectedResource:null,selectedPeopleGroup:null,selectedPinIds:[],globalFilters:{},searchQuery:"",autoFly:{isActive:!1,speed:1,interval:5e3,currentIndex:0,items:[],timerId:null},guidedTour:{isActive:!1,currentStep:0,steps:[]},showClusters:!1,clusterMode:"region",clusterFilterProperty:null,clusterFilterValue:null,flySpeed:"normal",fullscreenMapId:null,preferences:{theme:"light",defaultMapStyle:"streets",enableAnimations:!0,autoSavePreferences:!0}}),getters:{getMapById:e=>t=>e.maps[t],activeMap:e=>e.activeMapId?e.maps[e.activeMapId]:null,hasMap:e=>t=>t in e.maps,allMapIds:e=>Object.keys(e.maps),hasSelection:e=>!!(e.selectedRegion||e.selectedFamily||e.selectedAffinityBlock||e.selectedPeopleGroup),isAutoFlying:e=>e.autoFly.isActive,isGuidedTourActive:e=>e.guidedTour.isActive,isMapFullscreen:e=>t=>e.fullscreenMapId===t},actions:{registerMap(e,t,n={}){let o=1.5;n.zoom!==void 0?o=n.zoom:t&&typeof t.getZoom=="function"&&(o=t.getZoom());let s=[0,0];if(n.center)s=n.center;else if(t&&typeof t.getCenter=="function"){const r=t.getCenter();r&&(s=[r.lng,r.lat])}this.maps[e]={instance:t,config:n,isReady:!1,zoom:o,center:s,registeredAt:Date.now()},this.activeMapId||(this.activeMapId=e)},setMapReady(e){const t=this.maps[e];t&&(t.isReady=!0)},updateMapState(e,t){const n=this.maps[e];n&&Object.assign(n,t)},unregisterMap(e){if(delete this.maps[e],this.activeMapId===e){const t=this.allMapIds;this.activeMapId=t.length>0?t[0]:null}},setActiveMap(e){e in this.maps&&(this.activeMapId=e)},selectRegion(e){this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedRegion=e},selectFamily(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedFamily=e},setActiveLegendTab(e){this.activeLegendTab=e},selectLanguage(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedFamily=null,this.selectedDialect=null,this.selectedLanguage=e},selectDialect(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedDialect=e},selectAffinityBlock(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedPeopleGroup=null,this.selectedAffinityBlock=e},selectPeopleGroup(e){this.selectedPeopleGroup=e},selectResource(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedResource===e?this.selectedResource=null:this.selectedResource=e},clearSelections(){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedAffinityBlock=null,this.selectedResource=null,this.selectedPeopleGroup=null,this.selectedPinIds=[],this.showClusters=!1,this.clusterMode="region"},setSelectedPinIds(e){this.selectedPinIds=e||[]},setFilter(e,t){this.globalFilters[e]=t},removeFilter(e){delete this.globalFilters[e]},clearFilters(){this.globalFilters={},this.searchQuery=""},setSearchQuery(e){this.searchQuery=e},startAutoFly(e,t=1){this.stopAutoFly(),this.autoFly.isActive=!0,this.autoFly.speed=t,this.autoFly.items=e,this.autoFly.currentIndex=0},stopAutoFly(){this.autoFly.timerId&&(clearInterval(this.autoFly.timerId),this.autoFly.timerId=null),this.autoFly.isActive=!1,this.autoFly.currentIndex=0},setAutoFlySpeed(e){this.autoFly.speed=Math.max(.5,Math.min(2,e))},nextAutoFlyItem(){if(!this.autoFly.isActive||this.autoFly.items.length===0)return;this.autoFly.currentIndex=(this.autoFly.currentIndex+1)%this.autoFly.items.length;const e=this.autoFly.items[this.autoFly.currentIndex];e.type==="region"?this.selectRegion(e):e.type==="family"&&this.selectFamily(e)},toggleClusters(e){typeof e=="boolean"?this.showClusters=e:this.showClusters=!this.showClusters},setClusterMode(e){["region","language-family","affinity-block","mst","resource"].includes(e)&&(this.clusterMode=e)},setClusterFilter(e,t){this.clusterFilterProperty=e||null,this.clusterFilterValue=t||null},clearClusterFilter(){this.clusterFilterProperty=null,this.clusterFilterValue=null},setFlySpeed(e){["slow","normal","fast"].includes(e)&&(this.flySpeed=e)},setSelectedFamily(e){this.selectFamily(e)},clearSelectedFamily(){this.selectFamily(null)},setSelectedRegion(e){this.selectRegion(e)},clearSelectedRegion(){this.selectRegion(null)},clearSelectedResource(){this.selectResource(null)},clearSelectedLanguage(){this.selectLanguage(null)},clearSelectedDialect(){this.selectDialect(null)},toggleFullscreen(e){this.fullscreenMapId===e?this.fullscreenMapId=null:this.fullscreenMapId=e},loadPreferences(){try{const e=localStorage.getItem("mapUserPreferences");if(e){const t=JSON.parse(e);this.preferences={...this.preferences,...t}}}catch(e){console.error("[mapStore] Failed to load preferences:",e)}},savePreferences(){try{localStorage.setItem("mapUserPreferences",JSON.stringify(this.preferences))}catch(e){console.error("[mapStore] Failed to save preferences:",e)}},setPreference(e,t){this.preferences[e]=t,this.preferences.autoSavePreferences&&this.savePreferences()}}}),xg=Qr("data",{state:()=>({sources:{},loadingStates:{}}),actions:{async load(e,t){if(!this.sources[e]){this.loadingStates[e]={isLoading:!0,error:null};try{const n=await t();this.sources[e]=vn({features:n,timestamp:Date.now()}),this.loadingStates[e]={isLoading:!1,error:null}}catch(n){console.error(`[dataStore] Failed to load source "${e}":`,n),this.loadingStates[e]={isLoading:!1,error:n}}}},clearSource(e){delete this.sources[e],delete this.loadingStates[e]},cacheSourceData(e,t){this.sources[e]=vn({features:t.normalizedData||[],timestamp:t.timestamp||Date.now()})},hasSourceData(e){return!!this.sources[e]},getSourceData(e){return this.sources[e]?{normalizedData:this.sources[e].features}:null}},getters:{getData:e=>t=>{var n;return((n=e.sources[t])==null?void 0:n.features)??null},isLoading:e=>t=>{var n;return((n=e.loadingStates[t])==null?void 0:n.isLoading)??!1},getError:e=>t=>{var n;return((n=e.loadingStates[t])==null?void 0:n.error)??null}}}),Ig={activeSource:"pray-tools"},Fg=".profile-loader[data-v-931b414b]{border-radius:var(--map-radius-corners, var(--map-radius, 0px));width:100%;height:100%;min-height:var(--profile-min-h, 100dvh);position:relative}.profile-error[data-v-931b414b]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}",Mg=(e,t)=>{const n=e.__vccOpts||e;for(const[o,s]of t)n[o]=s;return n},Pg={class:"profile-loader"},Bg={key:0,class:"profile-error"},Dg={key:1,class:"profile-error"},Rg=Mg({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var b;const n=e,o=De("profileConfig",null),s=ae(()=>{var E;if(!n.profileConfig)return null;let v;try{v=JSON.parse(n.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",n.profileConfig),null}if(v&&v.assetsBase===void 0){const L=(E=o==null?void 0:o.value)==null?void 0:E.assetsBase;typeof L=="string"&&L&&(v.assetsBase=L)}return v}),r=ae(()=>{var v;return((v=s.value)==null?void 0:v.profile)||null}),a=ae(()=>{var E;const v=(E=s.value)==null?void 0:E.tk;return typeof v=="string"&&v?v:typeof window<"u"&&typeof window.MAP_TOKEN=="string"&&window.MAP_TOKEN?window.MAP_TOKEN:""}),i=ae(()=>{var v;return((v=s.value)==null?void 0:v.dataSource)||Ig.activeSource}),l=ae(()=>{var v;return((v=s.value)==null?void 0:v.colorSet)||"default"}),c=ae(()=>!1),u=ae(()=>{var v;return((v=s.value)==null?void 0:v.pinHint)!==!1}),f=ae(()=>{var E,L;const v=(((E=s.value)==null?void 0:E.locale)||((L=s.value)==null?void 0:L.lang)||"").split("-")[0].toLowerCase();return Pl.includes(v)?v:""}),h=De("appI18n",null);Dc(()=>{f.value&&h&&(h.global.locale.value=f.value)});const m=ae(()=>{var v,E;return f.value||((E=(v=h==null?void 0:h.global)==null?void 0:v.locale)==null?void 0:E.value)||"en"}),w=ae(()=>{var v;return((v=s.value)==null?void 0:v.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),k=De("profileModules",null);if(!k)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const A=ae(()=>{if(!r.value)return null;const v=`./${r.value}.vue`;return k[v]?Hc(k[v]):(console.error(`[ProfileLoader] Profile not found: "${r.value}". Available:`,Object.keys(k)),null)});nt("mapboxToken",a),nt("dataSource",i),nt("colorSet",l),nt("profileConfig",s),nt("instanceId",w),nt("lang",m);const O=Lg(),C=Sg(),_=xg();try{const v=typeof localStorage<"u"?localStorage.getItem("theme"):null;v&&((b=O.setTheme)==null||b.call(O,v))}catch{}return nt("uiStore",O),nt("mapStore",C),nt("dataStore",_),(v,E)=>(H(),J("div",Pg,[s.value?A.value?(H(),Qe(ya(A.value),{key:2})):(H(),J("div",Dg,[M("p",null,[E[1]||(E[1]=$e("⚠️ Profile ",-1)),M("strong",null,'"'+Q(r.value)+'"',1),E[2]||(E[2]=$e(" not found.",-1))])])):(H(),J("div",Bg,[...E[0]||(E[0]=[M("p",null,[$e("⚠️ "),M("strong",null,"doxa-map"),$e(": missing or invalid "),M("code",null,"profile-config"),$e(" prop.")],-1),M("p",null,[$e("Example: "),M("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),A.value&&c.value?(H(),Qe(ya(ze(null)),{key:3})):Le("",!0),A.value&&u.value?(H(),Qe(Eg,{key:4})):Le("",!0)]))}},[["styles",[Fg]],["__scopeId","data-v-931b414b"]]),Wg=Object.assign({"./connectivity-list.vue":()=>lr(()=>Promise.resolve().then(()=>om),void 0),"./connectivity-map.vue":()=>lr(()=>Promise.resolve().then(()=>Jm),void 0),"./data-tables.vue":()=>lr(()=>Promise.resolve().then(()=>k_),void 0)});function Ug(){return fp(Rg,{configureApp(e){e.use(kp()),e.use(Ng()),e.provide("profileModules",Wg)}})}const jg=Ug();typeof customElements<"u"&&(customElements.get("cities-internet-map")||customElements.define("cities-internet-map",jg));const Gg={countries:[{iso3:"IND",country:"India",region:"Asia",clusters:541,people_groups:856,multi:164,internet_access:"yes",internet_pct:64.9,internet_year:"2024",mobile_per_100:79.4,mobile_year:"2024",national_population:1450935791,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CHN",country:"People's Republic of China",region:"Asia",clusters:130,people_groups:154,multi:19,internet_access:"yes",internet_pct:92,internet_year:"2024",mobile_per_100:131.8,mobile_year:"2024",national_population:1408975e3,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SDN",country:"Sudan",region:"Middle East",clusters:75,people_groups:105,multi:20,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:70.2,mobile_year:"2022",national_population:50448963,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BRA",country:"Brazil",region:"Latin America & Caribbean",clusters:99,people_groups:104,multi:5,internet_access:"yes",internet_pct:84.5,internet_year:"2024",mobile_per_100:101.9,mobile_year:"2024",national_population:211998573,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LAO",country:"Lao People's Democratic Republic",region:"Asia",clusters:65,people_groups:95,multi:24,internet_access:"yes",internet_pct:65.6,internet_year:"2024",mobile_per_100:64.8,mobile_year:"2023",national_population:7769819,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TCD",country:"Chad",region:"Africa",clusters:48,people_groups:54,multi:6,internet_access:"no",internet_pct:12.6,internet_year:"2024",mobile_per_100:72.9,mobile_year:"2024",national_population:20299123,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NGA",country:"Nigeria",region:"Africa",clusters:35,people_groups:38,multi:3,internet_access:"partial",internet_pct:41.2,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:232679478,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"IDN",country:"Indonesia",region:"Asia",clusters:35,people_groups:36,multi:1,internet_access:"yes",internet_pct:72.8,internet_year:"2024",mobile_per_100:122.5,mobile_year:"2024",national_population:283487931,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NPL",country:"Nepal",region:"Asia",clusters:25,people_groups:33,multi:5,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:99.8,mobile_year:"2024",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ETH",country:"Ethiopia",region:"Africa",clusters:29,people_groups:29,multi:0,internet_access:"no",internet_pct:21.9,internet_year:"2024",mobile_per_100:65.1,mobile_year:"2024",national_population:132059767,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COL",country:"Colombia",region:"Latin America & Caribbean",clusters:26,people_groups:26,multi:0,internet_access:"yes",internet_pct:79.3,internet_year:"2024",mobile_per_100:174.1,mobile_year:"2024",national_population:52886363,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PAK",country:"Pakistan",region:"Asia",clusters:21,people_groups:24,multi:2,internet_access:"partial",internet_pct:57.3,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:251269164,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SSD",country:"South Sudan",region:"Africa",clusters:22,people_groups:22,multi:0,internet_access:"no",internet_pct:6.7,internet_year:"2019",mobile_per_100:46.6,mobile_year:"2023",national_population:11943408,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"RUS",country:"Russian Federation",region:"Europe",clusters:17,people_groups:21,multi:2,internet_access:"yes",internet_pct:94.4,internet_year:"2024",mobile_per_100:186.1,mobile_year:"2024",national_population:143669648,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AFG",country:"Afghanistan",region:"Asia",clusters:15,people_groups:21,multi:5,internet_access:"no",internet_pct:16.1,internet_year:"2024",mobile_per_100:60.1,mobile_year:"2024",national_population:42647492,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"IRN",country:"Islamic Republic of Iran",region:"Middle East",clusters:19,people_groups:20,multi:1,internet_access:"yes",internet_pct:85.3,internet_year:"2024",mobile_per_100:174.1,mobile_year:"2024",national_population:91567738,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"DZA",country:"Algeria",region:"Middle East",clusters:15,people_groups:17,multi:2,internet_access:"yes",internet_pct:77.4,internet_year:"2024",mobile_per_100:115.5,mobile_year:"2024",national_population:46814308,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VNM",country:"Vietnam",region:"Asia",clusters:15,people_groups:16,multi:1,internet_access:"yes",internet_pct:84.2,internet_year:"2024",mobile_per_100:127.6,mobile_year:"2024",national_population:100987686,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TZA",country:"United Republic of Tanzania",region:"Africa",clusters:16,people_groups:16,multi:0,internet_access:"partial",internet_pct:31.2,internet_year:"2024",mobile_per_100:126.6,mobile_year:"2024",national_population:68560157,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LBY",country:"Libya",region:"Middle East",clusters:13,people_groups:15,multi:2,internet_access:"yes",internet_pct:82,internet_year:"2024",mobile_per_100:193,mobile_year:"2022",national_population:7381023,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BTN",country:"Bhutan",region:"Asia",clusters:12,people_groups:13,multi:1,internet_access:"yes",internet_pct:91.3,internet_year:"2024",mobile_per_100:99.8,mobile_year:"2024",national_population:791524,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GIN",country:"Guinea",region:"Africa",clusters:13,people_groups:13,multi:0,internet_access:"partial",internet_pct:33.3,internet_year:"2024",mobile_per_100:97.9,mobile_year:"2023",national_population:14754785,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MLI",country:"Mali",region:"Africa",clusters:13,people_groups:13,multi:0,internet_access:"partial",internet_pct:36.8,internet_year:"2024",mobile_per_100:112.1,mobile_year:"2022",national_population:24478595,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MYS",country:"Malaysia",region:"Asia",clusters:11,people_groups:12,multi:1,internet_access:"yes",internet_pct:98,internet_year:"2024",mobile_per_100:139.7,mobile_year:"2024",national_population:35557673,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AGO",country:"Angola",region:"Africa",clusters:9,people_groups:10,multi:1,internet_access:"partial",internet_pct:40.7,internet_year:"2024",mobile_per_100:69.7,mobile_year:"2024",national_population:37885849,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PER",country:"Peru",region:"Latin America & Caribbean",clusters:10,people_groups:10,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:124.6,mobile_year:"2024",national_population:34217848,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"YEM",country:"Yemen",region:"Middle East",clusters:8,people_groups:9,multi:1,internet_access:"no",internet_pct:17.5,internet_year:"2019",mobile_per_100:50.9,mobile_year:"2023",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COD",country:"Democratic Republic of the Congo",region:"Africa",clusters:8,people_groups:9,multi:1,internet_access:"no",internet_pct:19.7,internet_year:"2024",mobile_per_100:58.5,mobile_year:"2024",national_population:109276265,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BEN",country:"Benin",region:"Africa",clusters:8,people_groups:9,multi:1,internet_access:"partial",internet_pct:34,internet_year:"2024",mobile_per_100:125.9,mobile_year:"2024",national_population:14462724,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SOM",country:"Somalia",region:"Africa",clusters:9,people_groups:9,multi:0,internet_access:"partial",internet_pct:27.9,internet_year:"2024",mobile_per_100:54,mobile_year:"2023",national_population:19009151,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ERI",country:"Eritrea",region:"Africa",clusters:7,people_groups:8,multi:1,internet_access:"no",internet_pct:14.3,internet_year:"2020",mobile_per_100:59.1,mobile_year:"2022",national_population:3535603,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"IRQ",country:"Iraq",region:"Middle East",clusters:7,people_groups:8,multi:1,internet_access:"yes",internet_pct:81.5,internet_year:"2024",mobile_per_100:100.1,mobile_year:"2024",national_population:46042015,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BFA",country:"Burkina Faso",region:"Africa",clusters:7,people_groups:8,multi:1,internet_access:"partial",internet_pct:28.3,internet_year:"2024",mobile_per_100:116.6,mobile_year:"2024",national_population:23548781,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"THA",country:"Thailand",region:"Asia",clusters:8,people_groups:8,multi:0,internet_access:"yes",internet_pct:90.9,internet_year:"2024",mobile_per_100:160.6,mobile_year:"2024",national_population:71668011,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PSE",country:"State of Palestine",region:"Middle East",clusters:3,people_groups:7,multi:1,internet_access:"yes",internet_pct:86.6,internet_year:"2023",mobile_per_100:76.7,mobile_year:"2023",national_population:5289152,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"OMN",country:"Oman",region:"Middle East",clusters:7,people_groups:7,multi:0,internet_access:"yes",internet_pct:95.3,internet_year:"2024",mobile_per_100:120.6,mobile_year:"2024",national_population:5281538,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MMR",country:"Myanmar",region:"Asia",clusters:7,people_groups:7,multi:0,internet_access:"partial",internet_pct:45.4,internet_year:"2020",mobile_per_100:114.3,mobile_year:"2024",national_population:54500091,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CMR",country:"Cameroon",region:"Africa",clusters:7,people_groups:7,multi:0,internet_access:"partial",internet_pct:46.3,internet_year:"2024",mobile_per_100:108.2,mobile_year:"2024",national_population:29123744,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TGO",country:"Togo",region:"Africa",clusters:5,people_groups:6,multi:1,internet_access:"partial",internet_pct:39.5,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:8406558,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JPN",country:"Japan",region:"Asia",clusters:6,people_groups:6,multi:0,internet_access:"yes",internet_pct:85.5,internet_year:"2024",mobile_per_100:178.4,mobile_year:"2023",national_population:123975371,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"UGA",country:"Uganda",region:"Africa",clusters:6,people_groups:6,multi:0,internet_access:"no",internet_pct:8.9,internet_year:"2024",mobile_per_100:83.2,mobile_year:"2024",national_population:50015092,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ZMB",country:"Zambia",region:"Africa",clusters:6,people_groups:6,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:108.7,mobile_year:"2024",national_population:21314956,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VEN",country:"Venezuela",region:"Latin America & Caribbean",clusters:6,people_groups:6,multi:0,internet_access:"yes",internet_pct:76.7,internet_year:"2024",mobile_per_100:71,mobile_year:"2024",national_population:28405543,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NAM",country:"Namibia",region:"Africa",clusters:6,people_groups:6,multi:0,internet_access:"yes",internet_pct:64.9,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:3030131,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BRN",country:"Brunei Darussalam",region:"Asia",clusters:4,people_groups:5,multi:1,internet_access:"yes",internet_pct:96.3,internet_year:"2024",mobile_per_100:118.1,mobile_year:"2024",national_population:462721,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KEN",country:"Kenya",region:"Africa",clusters:5,people_groups:5,multi:0,internet_access:"partial",internet_pct:35,internet_year:"2024",mobile_per_100:126.5,mobile_year:"2024",national_population:56432944,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SYR",country:"Syrian Arab Republic",region:"Middle East",clusters:5,people_groups:5,multi:0,internet_access:"partial",internet_pct:33.8,internet_year:"2018",mobile_per_100:71.2,mobile_year:"2024",national_population:24672760,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LBN",country:"Lebanon",region:"Middle East",clusters:4,people_groups:4,multi:0,internet_access:"yes",internet_pct:80.6,internet_year:"2024",mobile_per_100:74,mobile_year:"2022",national_population:5805962,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MOZ",country:"Mozambique",region:"Africa",clusters:4,people_groups:4,multi:0,internet_access:"no",internet_pct:20.5,internet_year:"2024",mobile_per_100:49.5,mobile_year:"2024",national_population:34631766,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MAR",country:"Morocco",region:"Middle East",clusters:4,people_groups:4,multi:0,internet_access:"yes",internet_pct:91.2,internet_year:"2024",mobile_per_100:153.1,mobile_year:"2024",national_population:38081173,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"QAT",country:"Qatar",region:"Middle East",clusters:1,people_groups:3,multi:1,internet_access:"yes",internet_pct:98.1,internet_year:"2024",mobile_per_100:153.6,mobile_year:"2024",national_population:2857822,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SAU",country:"Saudi Arabia",region:"Middle East",clusters:2,people_groups:3,multi:1,internet_access:"yes",internet_pct:100,internet_year:"2024",mobile_per_100:159.5,mobile_year:"2024",national_population:35300280,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TUR",country:"Türkiye",region:"Europe",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:87.3,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:85518661,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AZE",country:"Azerbaijan",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:90.4,internet_year:"2024",mobile_per_100:109.5,mobile_year:"2024",national_population:10202830,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GMB",country:"Republic of The Gambia",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:49.5,internet_year:"2024",mobile_per_100:126.2,mobile_year:"2024",national_population:2759988,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JOR",country:"Jordan",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:95.6,internet_year:"2024",mobile_per_100:69.6,mobile_year:"2024",national_population:11552876,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ZWE",country:"Zimbabwe",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:94.2,mobile_year:"2024",national_population:16634373,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COM",country:"Comoros",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:32.5,internet_year:"2024",mobile_per_100:109.9,mobile_year:"2023",national_population:866628,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"USA",country:"United States of America",region:"Other",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:94.7,internet_year:"2024",mobile_per_100:113.2,mobile_year:"2024",national_population:340003797,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BGD",country:"Bangladesh",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:53.4,internet_year:"2024",mobile_per_100:108.1,mobile_year:"2024",national_population:173562364,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GNB",country:"Guinea-Bissau",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:29.8,internet_year:"2024",mobile_per_100:147.2,mobile_year:"2024",national_population:2201352,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KOS",country:"KOS",region:"Europe",clusters:3,people_groups:3,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MRT",country:"Mauritania",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:45.8,internet_year:"2024",mobile_per_100:92.1,mobile_year:"2024",national_population:5169395,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ESH",country:"Western Sahara",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TJK",country:"Tajikistan",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:55.8,internet_year:"2024",mobile_per_100:76.2,mobile_year:"2023",national_population:10590927,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"EGY",country:"Egypt",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:74.6,internet_year:"2024",mobile_per_100:97.1,mobile_year:"2024",national_population:116538258,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MNG",country:"Mongolia",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:85.1,internet_year:"2024",mobile_per_100:140.7,mobile_year:"2024",national_population:3524788,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BHR",country:"Bahrain",region:"Middle East",clusters:1,people_groups:2,multi:1,internet_access:"yes",internet_pct:100,internet_year:"2024",mobile_per_100:159.5,mobile_year:"2024",national_population:1588670,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SUR",country:"Suriname",region:"North America & Non-Spanish Caribbean",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:142.1,mobile_year:"2024",national_population:634431,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NER",country:"Niger",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:60.6,mobile_year:"2024",national_population:27032412,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ZAF",country:"South Africa",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:78.4,internet_year:"2024",mobile_per_100:179.3,mobile_year:"2024",national_population:64007187,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CCK",country:"Cocos (Keeling) Islands",region:"N/A",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COG",country:"Republic of the Congo",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:47.3,internet_year:"2024",mobile_per_100:95.5,mobile_year:"2024",national_population:6332961,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ARE",country:"United Arab Emirates",region:"Middle East",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:100,internet_year:"2024",mobile_per_100:203.2,mobile_year:"2024",national_population:10986400,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GAB",country:"Gabon",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:68.7,internet_year:"2024",mobile_per_100:125.3,mobile_year:"2024",national_population:2538952,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GUF",country:"French Guiana",region:"N/A",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CIV",country:"Cote d'Ivoire",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:41.4,internet_year:"2024",mobile_per_100:183.9,mobile_year:"2024",national_population:31934230,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KGZ",country:"Kyrgyzstan",region:"Asia",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:92,internet_year:"2024",mobile_per_100:107.5,mobile_year:"2024",national_population:7221868,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LBR",country:"Liberia",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:32.2,internet_year:"2024",mobile_per_100:32.1,mobile_year:"2022",national_population:5612817,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SWE",country:"Sweden",region:"Europe",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:140.7,mobile_year:"2024",national_population:10569709,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TUN",country:"Tunisia",region:"Middle East",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:76.5,internet_year:"2024",mobile_per_100:117.6,mobile_year:"2024",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SLE",country:"Sierra Leone",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:25.1,internet_year:"2024",mobile_per_100:107.9,mobile_year:"2022",national_population:8642022,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AND",country:"Andorra",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:94.4,internet_year:"2024",mobile_per_100:155.7,mobile_year:"2024",national_population:81938,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SEN",country:"Senegal",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:60.1,internet_year:"2024",mobile_per_100:123.9,mobile_year:"2024",national_population:18501984,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MNE",country:"Montenegro",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:88.9,internet_year:"2024",mobile_per_100:221.7,mobile_year:"2024",national_population:623525,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BOL",country:"Bolivia",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:79.7,internet_year:"2024",mobile_per_100:98,mobile_year:"2024",national_population:12413315,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ECU",country:"Ecuador",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:77.2,internet_year:"2024",mobile_per_100:101.6,mobile_year:"2024",national_population:18135478,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VIR",country:"Virgin Islands, U.S.",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:91.5,mobile_year:"2022",national_population:104377,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ATG",country:"Antigua and Barbuda",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:72.7,internet_year:"2024",mobile_per_100:200.5,mobile_year:"2022",national_population:93772,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ARM",country:"Armenia",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:81.3,internet_year:"2024",mobile_per_100:134.9,mobile_year:"2024",national_population:3033500,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ABW",country:"Aruba",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:130.6,mobile_year:"2022",national_population:107995,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BHS",country:"Bahamas",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:92.5,internet_year:"2024",mobile_per_100:96.7,mobile_year:"2024",national_population:401283,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BRB",country:"Barbados",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:70.4,internet_year:"2024",mobile_per_100:114.6,mobile_year:"2022",national_population:282467,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BLR",country:"Belarus",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:94.3,internet_year:"2024",mobile_per_100:131.1,mobile_year:"2024",national_population:9132629,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BMU",country:"Bermuda",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:96.7,mobile_year:"2024",national_population:64636,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BIH",country:"Bosnia and Herzegovina",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:86.1,internet_year:"2024",mobile_per_100:121.2,mobile_year:"2024",national_population:3164253,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VGB",country:"Virgin Islands, British",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:39471,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BGR",country:"Bulgaria",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:82.4,internet_year:"2024",mobile_per_100:118.1,mobile_year:"2024",national_population:6441421,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KHM",country:"Cambodia",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:68.5,internet_year:"2024",mobile_per_100:116.1,mobile_year:"2024",national_population:17638801,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CYM",country:"Cayman Islands",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:139.3,mobile_year:"2022",national_population:74457,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CAF",country:"Central African Republic",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"no",internet_pct:13.8,internet_year:"2024",mobile_per_100:38.8,mobile_year:"2022",national_population:5330690,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CXR",country:"Christmas Island",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COK",country:"Cook Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CUB",country:"Cuba",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:70.5,internet_year:"2024",mobile_per_100:72.9,mobile_year:"2024",national_population:10979783,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CUW",country:"Curaçao",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:93.8,mobile_year:"2023",national_population:155967,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CYP",country:"Cyprus",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.6,internet_year:"2024",mobile_per_100:156.2,mobile_year:"2024",national_population:1358282,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"DJI",country:"Djibouti",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:65.3,internet_year:"2024",mobile_per_100:48.5,mobile_year:"2023",national_population:1168722,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"DMA",country:"Dominica",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:82,internet_year:"2024",mobile_per_100:85.2,mobile_year:"2022",national_population:66205,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GNQ",country:"Equatorial Guinea",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:63.3,internet_year:"2024",mobile_per_100:49.5,mobile_year:"2022",national_population:1892516,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FRO",country:"Faroe Islands",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:105.8,mobile_year:"2022",national_population:54640,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FJI",country:"Fiji",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:74.7,internet_year:"2024",mobile_per_100:574.2,mobile_year:"2024",national_population:928784,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PYF",country:"French Polynesia",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:118.8,mobile_year:"2023",national_population:281807,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GEO",country:"Georgia",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:83.8,internet_year:"2024",mobile_per_100:161.2,mobile_year:"2024",national_population:3812518,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GIB",country:"Gibraltar",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:97.6,mobile_year:"2022",national_population:39329,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GRC",country:"Greece",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:86.3,internet_year:"2024",mobile_per_100:113.6,mobile_year:"2024",national_population:10405134,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GRD",country:"Grenada",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:70.2,internet_year:"2024",mobile_per_100:95.8,mobile_year:"2022",national_population:117207,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GLP",country:"Guadeloupe",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GUM",country:"Guam",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:167777,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GGY",country:"Guernsey",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ISL",country:"Iceland",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:98.2,internet_year:"2024",mobile_per_100:120.9,mobile_year:"2024",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KIR",country:"Kiribati",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.4,internet_year:"2024",mobile_per_100:53.5,mobile_year:"2024",national_population:134518,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JAM",country:"Jamaica",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:90.1,internet_year:"2024",mobile_per_100:117.7,mobile_year:"2024",national_population:2839175,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JEY",country:"Jersey",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KAZ",country:"Kazakhstan",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:93.4,internet_year:"2024",mobile_per_100:127.1,mobile_year:"2024",national_population:20592571,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PRK",country:"North Korea",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:24.1,mobile_year:"2022",national_population:26498823,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KWT",country:"Kuwait",region:"Middle East",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:99.7,internet_year:"2024",mobile_per_100:167.7,mobile_year:"2023",national_population:4897263,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LIE",country:"Liechtenstein",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:98.3,internet_year:"2024",mobile_per_100:128.9,mobile_year:"2024",national_population:40450,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LUX",country:"Luxembourg",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:98.8,internet_year:"2024",mobile_per_100:144.5,mobile_year:"2023",national_population:677012,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MYT",country:"Mayotte",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MDV",country:"Maldives",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:85.2,internet_year:"2024",mobile_per_100:148.1,mobile_year:"2024",national_population:527799,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MLT",country:"Malta",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:93.9,internet_year:"2024",mobile_per_100:142.1,mobile_year:"2024",national_population:568847,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MNP",country:"Northern Mariana Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:44278,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MHL",country:"Marshall Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:65.9,internet_year:"2024",mobile_per_100:39.7,mobile_year:"2022",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MUS",country:"Mauritius",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:73.3,internet_year:"2024",mobile_per_100:172.7,mobile_year:"2024",national_population:1245779,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FSM",country:"Micronesia, Federated States of",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:39.5,internet_year:"2024",mobile_per_100:20,mobile_year:"2022",national_population:113160,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MCO",country:"Monaco",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:99,internet_year:"2024",mobile_per_100:107.4,mobile_year:"2024",national_population:38631,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MSR",country:"Montserrat",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NCL",country:"New Caledonia",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:91.7,mobile_year:"2022",national_population:292639,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NIU",country:"Niue",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VUT",country:"Vanuatu",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:89.3,mobile_year:"2023",national_population:327777,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NFK",country:"Norfolk Island",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"HKG",country:"Hong Kong",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:95.8,internet_year:"2024",mobile_per_100:364.8,mobile_year:"2024",national_population:7524100,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MAC",country:"Macao",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.8,internet_year:"2024",mobile_per_100:201.1,mobile_year:"2024",national_population:687e3,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PLW",country:"Palau",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:83.9,internet_year:"2024",mobile_per_100:135.4,mobile_year:"2023",national_population:17695,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PNG",country:"Papua New Guinea",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"no",internet_pct:18.8,internet_year:"2024",mobile_per_100:38.8,mobile_year:"2024",national_population:10576502,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BLM",country:"Saint Barthélemy",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SHN",country:"Saint Helena",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LCA",country:"Saint Lucia",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:68.2,internet_year:"2024",mobile_per_100:98.7,mobile_year:"2022",national_population:179744,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SMR",country:"San Marino",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:97.4,internet_year:"2024",mobile_per_100:120.3,mobile_year:"2022",national_population:33977,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ASM",country:"American Samoa",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:46765,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"WSM",country:"Samoa",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:62.4,mobile_year:"2022",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"STP",country:"Sao Tome and Principe",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:59.1,internet_year:"2024",mobile_per_100:62.4,mobile_year:"2024",national_population:235536,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SXM",country:"Sint Maarten (Dutch part)",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:205.4,mobile_year:"2022",national_population:43350,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SLB",country:"Solomon Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:29,internet_year:"2024",mobile_per_100:62.1,mobile_year:"2022",national_population:819198,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LKA",country:"Sri Lanka",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:54.6,internet_year:"2024",mobile_per_100:132.5,mobile_year:"2024",national_population:21916e3,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SJM",country:"Svalbard and Jan Mayen",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SWZ",country:"Eswatini",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:63.4,internet_year:"2024",mobile_per_100:139.8,mobile_year:"2024",national_population:1242822,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TKL",country:"Tokelau",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TON",country:"Tonga",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:67.4,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:104175,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TCA",country:"Turks and Caicos Islands",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:46535,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VCT",country:"Saint Vincent and the Grenadines",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:76.2,internet_year:"2024",mobile_per_100:108.4,mobile_year:"2024",national_population:100616,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"WLF",country:"Wallis and Futuna",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PRY",country:"Paraguay",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:81.6,internet_year:"2024",mobile_per_100:126.6,mobile_year:"2023",national_population:6929153,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FIN",country:"Finland",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:93.7,internet_year:"2024",mobile_per_100:125.9,mobile_year:"2024",national_population:5619911,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ALB",country:"Albania",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:85.9,internet_year:"2024",mobile_per_100:89.1,mobile_year:"2024",national_population:2377128,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PAN",country:"Panama",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:72.8,internet_year:"2024",mobile_per_100:156.6,mobile_year:"2023",national_population:4515577,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NZL",country:"New Zealand",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:130.1,mobile_year:"2024",national_population:529e4,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CZE",country:"Czech Republic",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:87.7,internet_year:"2024",mobile_per_100:126.6,mobile_year:"2024",national_population:10905028,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GHA",country:"Ghana",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:72.2,internet_year:"2024",mobile_per_100:113.6,mobile_year:"2024",national_population:34427414,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PHL",country:"Philippines",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:67.3,internet_year:"2024",mobile_per_100:115.3,mobile_year:"2024",national_population:115843670,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ISR",country:"Israel",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:88.2,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:10002200,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GUY",country:"Guyana",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:83,internet_year:"2024",mobile_per_100:112.6,mobile_year:"2022",national_population:831087,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"UZB",country:"Uzbekistan",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.5,internet_year:"2024",mobile_per_100:110.5,mobile_year:"2024",national_population:36361859,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ESP",country:"Spain",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:95.8,internet_year:"2024",mobile_per_100:130.3,mobile_year:"2024",national_population:48848840,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MWI",country:"Malawi",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:69.3,mobile_year:"2024",national_population:21655286,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}}]},Yg={class:"ci-tot"},Vg={class:"ci-chip"},Hg={class:"ci-chip"},qg={class:"ci-chip"},zg={class:"ci-chip"},Kg=["onClick"],Xg={class:"sec-name"},Jg={class:"sec-meta"},Zg={class:"r-name"},Qg={class:"r-sub"},em={class:"r-num"},tm={class:"r-sub"},nm={class:"r-num"},om=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"connectivity-list",setup(e){const t=De("profileConfig",re(null)),n=ae(()=>{var f;return((f=t.value)==null?void 0:f.isDark)===!0}),o=ae(()=>Gg.countries||[]),s=ae(()=>{const f=new Map;for(const h of o.value){const m=h.region||"Other";f.has(m)||f.set(m,[]),f.get(m).push(h)}return[...f.entries()].map(([h,m])=>({name:h,items:m.slice().sort((w,k)=>k.people_groups-w.people_groups),groups:m.reduce((w,k)=>w+k.people_groups,0),unknown:m.filter(w=>w.internet_access==="unknown").length})).sort((h,m)=>m.groups-h.groups)}),r=re({}),a=f=>!!r.value[f],i=f=>{r.value={...r.value,[f]:!r.value[f]}},l=ae(()=>{const f=o.value;return{countries:f.length,resolved:f.filter(h=>h.internet_access!=="unknown").length,unknown:f.filter(h=>h.internet_access==="unknown").length,low:f.filter(h=>h.internet_access==="no").length}}),c=f=>f==="yes"?"ok":f==="partial"?"mid":f==="no"?"low":"unk",u=f=>f==="yes"?"connected":f==="partial"?"partial":f==="no"?"low":"unknown";return Wt(".ci{position:absolute;inset:0;overflow-y:auto;padding:20px 18px 44px;background:#f6f7f9;color:#0f1419;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.ci.is-dark{background:#0a1410;color:#e5e7eb}.ci-h{margin:0 0 4px;font-size:19px;font-weight:700;text-align:center}.ci-sub{margin:0 auto 18px;max-width:640px;font-size:12.5px;line-height:1.55;text-align:center;opacity:.75}.ci-tot{display:flex;gap:14px;justify-content:center;margin-bottom:20px;flex-wrap:wrap}.ci-chip{font-size:11.5px;padding:4px 11px;border-radius:999px;background:rgba(0,0,0,.06);font-weight:600}.is-dark .ci-chip{background:rgba(255,255,255,.10)}.sec{max-width:1080px;margin:0 auto;padding-bottom:34px}.sec-head{position:sticky;top:0;z-index:6;background:#f6f7f9;display:flex;align-items:baseline;gap:10px;padding:10px 10px 8px;margin:0 2px 10px;border-bottom:1px solid rgba(0,0,0,.10);cursor:pointer;user-select:none;width:100%;text-align:left;border-top:0;border-left:0;border-right:0;font:inherit;color:inherit;box-shadow:0 6px 10px -8px rgba(0,0,0,.35);border-radius:4px 4px 0 0}.is-dark .sec-head{background:#0a1410;border-bottom-color:rgba(255,255,255,.12)}.sec-caret{display:inline-block;width:12px;font-size:10px;opacity:.55;transition:transform .18s}.sec-caret.open{transform:rotate(90deg)}.sec-name{margin:0;font-size:15px;font-weight:700}.sec-meta{font-size:11px;opacity:.6;font-variant-numeric:tabular-nums}.row{display:grid;grid-template-columns:1fr auto auto auto;gap:12px;align-items:center;padding:8px 10px;border-bottom:1px solid rgba(0,0,0,.06)}.is-dark .row{border-bottom-color:rgba(255,255,255,.07)}.r-name{font-size:13.5px;font-weight:600}.r-sub{font-size:11px;opacity:.6}.r-num{font-size:12.5px;font-variant-numeric:tabular-nums;text-align:right;min-width:72px}.pill{font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}.pill.ok{background:rgba(16,185,129,.15);color:#0b7a5b}.pill.mid{background:rgba(245,158,11,.16);color:#8a6414}.pill.low{background:rgba(220,38,38,.13);color:#a12020}.pill.unk{background:rgba(0,0,0,.07);color:#6b7280}.is-dark .pill.unk{background:rgba(255,255,255,.10);color:#9ca3af}.src{max-width:1080px;margin:8px auto 0;font-size:11px;line-height:1.6;opacity:.6;text-align:center}","doxa-cities-internet"),(f,h)=>(H(),J("div",{class:Te(["ci",{"is-dark":n.value}])},[h[1]||(h[1]=M("h2",{class:"ci-h"},"Cities with Internet",-1)),h[2]||(h[2]=M("p",{class:"ci-sub"},[$e(" Connectivity where the unengaged people groups live. Every figure is a measured national statistic with its observation year — "),M("strong",null,"unknown means unmeasured, never assumed"),$e(". ")],-1)),M("div",Yg,[M("span",Vg,Q(l.value.countries)+" countries",1),M("span",Hg,Q(l.value.resolved)+" measured",1),M("span",qg,Q(l.value.unknown)+" unknown",1),M("span",zg,Q(l.value.low)+" low-connectivity",1)]),(H(!0),J(de,null,ct(s.value,m=>(H(),J("section",{key:m.name,class:"sec"},[M("button",{type:"button",class:"sec-head",onClick:w=>i(m.name)},[M("span",{class:Te(["sec-caret",{open:!a(m.name)}])},"▶",2),M("h3",Xg,Q(m.name),1),M("span",Jg,[$e(Q(m.items.length)+" countries · "+Q(m.groups.toLocaleString())+" people groups ",1),m.unknown?(H(),J(de,{key:0},[$e(" · "+Q(m.unknown)+" unmeasured",1)],64)):Le("",!0)])],8,Kg),Fc(M("div",null,[(H(!0),J(de,null,ct(m.items,w=>(H(),J("div",{key:w.iso3,class:"row"},[M("div",null,[M("div",Zg,Q(w.country),1),M("div",Qg,[$e(Q(w.people_groups)+" people groups · "+Q(w.clusters)+" locations ",1),w.multi?(H(),J(de,{key:0},[$e(" · "+Q(w.multi)+" population centres",1)],64)):Le("",!0)])]),M("div",em,[w.internet_pct!==null&&w.internet_pct!==void 0?(H(),J(de,{key:0},[$e(Q(w.internet_pct)+"% ",1),M("div",tm,Q(w.internet_year),1)],64)):(H(),J(de,{key:1},[$e("—")],64))]),M("div",nm,[w.mobile_per_100!==null&&w.mobile_per_100!==void 0?(H(),J(de,{key:0},[$e(Q(w.mobile_per_100)+" ",1),h[0]||(h[0]=M("div",{class:"r-sub"},"mob/100",-1))],64)):(H(),J(de,{key:1},[$e("—")],64))]),M("span",{class:Te(["pill",c(w.internet_access)])},Q(u(w.internet_access)),3)]))),128))],512),[[Ku,!a(m.name)]])]))),128)),h[3]||(h[3]=M("p",{class:"src"}," Internet and mobile figures: World Bank Open Data (CC BY 4.0), most recent observation 2018–2024. Banding: connected ≥60% · partial 25–59% · low <25% of population using the internet. Country-resolution — per-city measurements are not publicly available at this scale. ISP names, carrier names and censorship history require per-country cited reporting and are not shown. ",-1))],2))}}},Symbol.toStringTag,{value:"Module"})),ys={boundaries:{label:"geoBoundaries",href:"https://www.geoboundaries.org",title:"Country and administrative boundaries — geoBoundaries gbOpen (mixed upstream licences; see docs)"},mapbox:{label:"Mapbox",href:"https://www.mapbox.com/about/maps/"},osm:{label:"© OpenStreetMap",href:"https://www.openstreetmap.org/copyright"}};function rm(e,t={}){if(!e||typeof e.addControl!="function")return null;const{boundaries:n=!0,basemap:o=!0}=t,s=document.createElement("div");s.className="doxa-attribution mapboxgl-ctrl",s.style.cssText=["font:11px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif","background:rgba(255,255,255,.82)","color:#3a4048","padding:2px 6px","border-radius:3px 0 0 0","pointer-events:auto","max-width:min(92vw,420px)"].join(";");const r=[];n&&r.push(ys.boundaries),o&&(r.push(ys.mapbox),r.push(ys.osm)),s.innerHTML=r.map(i=>`${i.label}`).join(" · ");const a={onAdd:()=>s,onRemove:()=>{s.parentNode&&s.parentNode.removeChild(s)},getDefaultPosition:()=>"bottom-right"};return e.addControl(a,"bottom-right"),a}const sm={__name:"MapToolbar",props:{hasGeocoder:{type:Boolean,default:!0}},setup(e){const t=re(null);return nt("mapToolbar",{el:t}),Wt(` .map-toolbar { position: absolute; top: 6px; @@ -85,7 +85,7 @@ .map-toolbar { top: 72px; gap: 6px; } .map-toolbar.map-toolbar--no-geocoder { top: 6px; gap: 6px; } } -`,"map-toolbar"),(n,o)=>(H(),J("div",{ref_key:"toolbarEl",ref:t,class:Te(["map-toolbar",{"map-toolbar--no-geocoder":!e.hasGeocoder}])},[Fr(n.$slots,"default")],2))}},im=["title","aria-label","disabled"],fo={__name:"MapControlButton",props:{isDark:{type:Boolean,default:!1},title:{type:String,default:""},active:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["click"],setup(e){return Wt(` +`,"map-toolbar"),(n,o)=>(H(),J("div",{ref_key:"toolbarEl",ref:t,class:Te(["map-toolbar",{"map-toolbar--no-geocoder":!e.hasGeocoder}])},[Fr(n.$slots,"default")],2))}},am=["title","aria-label","disabled"],fo={__name:"MapControlButton",props:{isDark:{type:Boolean,default:!1},title:{type:String,default:""},active:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["click"],setup(e){return Wt(` .mcb{ width:var(--map-btn-size,40px);height:var(--map-btn-size,40px); background:#fff; @@ -109,7 +109,7 @@ .mcb.dark:hover:not(:disabled){background:#4e594f;box-shadow:0 2px 8px rgba(0,0,0,0.5);} .mcb.dark.active{background:#4e594f;color:#92b195;} @media(max-width:767px){.mcb{width:36px;height:36px;}} -`,"map-control-button"),(t,n)=>(H(),J("button",{class:Te(["mcb",{dark:e.isDark,active:e.active}]),title:e.title,"aria-label":e.title||void 0,disabled:e.disabled,onClick:n[0]||(n[0]=o=>t.$emit("click"))},[Fr(t.$slots,"default")],10,im))}},am={__name:"ZoomInButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(e){const{t}=en(),n=e;function o(){var s;n.disabled||(s=n.map)==null||s.zoomIn()}return(s,r)=>(H(),Qe(fo,{"is-dark":e.isDark,disabled:e.disabled,title:ze(t)("buttons.zoomIn"),onClick:o},{default:Vt(()=>[...r[0]||(r[0]=[M("span",{style:{"font-size":"20px","line-height":"1","font-weight":"600"}},"+",-1)])]),_:1},8,["is-dark","disabled","title"]))}},lm={__name:"ZoomOutButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(e){const{t}=en(),n=e;function o(){var s;n.disabled||(s=n.map)==null||s.zoomOut()}return(s,r)=>(H(),Qe(fo,{"is-dark":e.isDark,disabled:e.disabled,title:ze(t)("buttons.zoomOut"),onClick:o},{default:Vt(()=>[...r[0]||(r[0]=[M("span",{style:{"font-size":"22px","line-height":"1","font-weight":"600"}},"−",-1)])]),_:1},8,["is-dark","disabled","title"]))}},cm={__name:"LocationButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},center:{type:Array,default:()=>[20,10]},zoom:{type:Number,default:1.8},userZoom:{type:Number,default:10}},setup(e){const{t}=en(),n=e;function o(){var r;(r=n.map)==null||r.flyTo({center:n.center,zoom:n.zoom,duration:1200})}function s(){if(n.map){if(typeof navigator>"u"||!navigator.geolocation){o();return}navigator.geolocation.getCurrentPosition(r=>{const{longitude:i,latitude:a}=r.coords;Number.isFinite(i)&&Number.isFinite(a)?n.map.flyTo({center:[i,a],zoom:n.userZoom,duration:1500}):o()},()=>o(),{enableHighAccuracy:!1,timeout:5e3,maximumAge:6e4})}}return(r,i)=>(H(),Qe(fo,{"is-dark":e.isDark,title:ze(t)("buttons.resetView"),onClick:s},{default:Vt(()=>[...i[0]||(i[0]=[M("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor"},[M("path",{d:"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z"})],-1)])]),_:1},8,["is-dark","title"]))}},um={key:0,xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 29 29",fill:"currentColor"},pm={key:1,xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 29 29",fill:"currentColor"},dm={__name:"FullscreenButton",props:{mapContainer:{type:Object,default:null},isDark:{type:Boolean,default:!1}},emits:["change"],setup(e,{emit:t}){const{t:n}=en(),o=e,s=t,r=re(!1);let i=null,a=null,l=null,c=null,u=null,f=null,h=null,m=null,w=null,k=null,A=null,O=0,C=0,_=null,b=null;function v(){if(typeof document>"u")return!1;const z=typeof navigator<"u"&&navigator.userAgent||"";return/iPad|iPhone|iPod/.test(z)||z.includes("Mac")&&typeof document<"u"&&"ontouchend"in document?!1:!!(document.fullscreenEnabled||document.webkitFullscreenEnabled)}function E(){var z,W,X;return((X=(W=(z=o.mapContainer)==null?void 0:z.getRootNode)==null?void 0:W.call(z))==null?void 0:X.host)??null}function L(){var W,X;const z=(X=(W=o.mapContainer)==null?void 0:W.getRootNode)==null?void 0:X.call(W);return document.fullscreenElement||document.webkitFullscreenElement||(z&&z instanceof ShadowRoot?z.fullscreenElement:null)||null}function I(z){const W=z.requestFullscreen||z.webkitRequestFullscreen;if(!W)return Promise.reject(new Error("Fullscreen API unavailable"));const X=W.call(z);return X&&typeof X.then=="function"?X:Promise.resolve()}function N(){const z=document.exitFullscreen||document.webkitExitFullscreen;if(!z)return Promise.reject(new Error("Fullscreen API unavailable"));const W=z.call(document);return W&&typeof W.then=="function"?W:Promise.resolve()}function R(){const z=E();if(!z)return!1;if(l=z,a=z.style.cssText,z.style.position="fixed",z.style.top="0",z.style.left="0",z.style.right="0",z.style.bottom="0",z.style.width="100vw",z.style.height="100vh",z.style.height="100dvh",z.style.zIndex="2147483647",z.style.margin="0",z.style.borderRadius="0",z.style.touchAction="pan-x pan-y pinch-zoom",typeof document<"u"){O=window.scrollY||window.pageYOffset||0,C=window.scrollX||window.pageXOffset||0;const W=document.body,X=document.documentElement;c=W?W.style.overflow:null,u=X?X.style.overflow:null,f=W?W.style.position:null,h=W?W.style.top:null,m=W?W.style.left:null,w=W?W.style.width:null,k=W?W.style.touchAction:null,A=X?X.style.touchAction:null,X&&(X.style.overflow="hidden",X.style.touchAction="none"),W&&(W.style.overflow="hidden",W.style.position="fixed",W.style.top=`-${O}px`,W.style.left=`-${C}px`,W.style.width="100%",W.style.touchAction="none"),_=le=>{if(!l)return;const Ee=le.target;Ee&&(Ee===l||l.contains&&l.contains(Ee))||le.cancelable&&le.preventDefault()},b=le=>{if(!l)return;const Ee=le.target;Ee&&(Ee===l||l.contains&&l.contains(Ee))||le.cancelable&&le.preventDefault()},document.addEventListener("touchmove",_,{passive:!1,capture:!0}),document.addEventListener("wheel",b,{passive:!1,capture:!0})}return!0}function j(){if(l){if(l.style.cssText=a||"",l=null,a=null,typeof document<"u"){const z=document.body,W=document.documentElement;z&&(z.style.overflow=c??"",z.style.position=f??"",z.style.top=h??"",z.style.left=m??"",z.style.width=w??"",z.style.touchAction=k??""),W&&(W.style.overflow=u??"",W.style.touchAction=A??""),_&&(document.removeEventListener("touchmove",_,{capture:!0}),_=null),b&&(document.removeEventListener("wheel",b,{capture:!0}),b=null),typeof window<"u"&&(O||C)&&window.scrollTo(C,O)}c=null,u=null,f=null,h=null,m=null,w=null,k=null,A=null,O=0,C=0}}function K(){typeof window>"u"||window.requestAnimationFrame(()=>{window.dispatchEvent(new Event("resize"))})}function ne(){if(!v()){r.value?(j(),r.value=!1,s("change",!1)):R()&&(r.value=!0,s("change",!0)),K();return}if(L())N().then(()=>{r.value=!1,s("change",!1)}).catch(()=>{});else{const W=E()??document.documentElement;I(W).then(()=>{r.value=!0,s("change",!0)}).catch(()=>{I(document.documentElement).then(()=>{r.value=!0,s("change",!0)}).catch(()=>{})})}}function ue(){r.value=!!L(),s("change",r.value)}return qt(()=>{var W,X;document.addEventListener("fullscreenchange",ue),document.addEventListener("webkitfullscreenchange",ue);const z=(X=(W=o.mapContainer)==null?void 0:W.getRootNode)==null?void 0:X.call(W);z instanceof ShadowRoot&&(i=z,z.addEventListener("fullscreenchange",ue),z.addEventListener("webkitfullscreenchange",ue))}),un(()=>{document.removeEventListener("fullscreenchange",ue),document.removeEventListener("webkitfullscreenchange",ue),i&&(i.removeEventListener("fullscreenchange",ue),i.removeEventListener("webkitfullscreenchange",ue),i=null),l&&j()}),(z,W)=>(H(),Qe(fo,{"is-dark":e.isDark,active:r.value,title:ze(n)("buttons.toggleFullscreen"),onClick:ne},{default:Vt(()=>[r.value?(H(),J("svg",pm,[...W[1]||(W[1]=[M("path",{d:"M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z"},null,-1)])])):(H(),J("svg",um,[...W[0]||(W[0]=[M("path",{d:"M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z"},null,-1)])]))]),_:1},8,["is-dark","active","title"]))}},fm=ar&&ar.tagName.toUpperCase()==="SCRIPT"&&ar.src||new URL("cities-internet.js",document.baseURI).href,tn=e=>String(e||"").trim().replace(/\/+$/,"");function Bl(){try{const t=String(fm||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function hm(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return tn(t);if(typeof window<"u"){const n=window.MAP_EMBED_BASE_URL;if(typeof n=="string"&&n.trim())return tn(n)}return tn(Bl()||"")}function Dl(e){const t=e==null?void 0:e.assetsBase;if(typeof t=="string"&&t.trim()){const o=tn(t);if(/^https?:\/\//i.test(o)||o.startsWith("/"))return o}const n=tn((e==null?void 0:e.treeBase)||"")||tn(Bl()||"");if(n)try{const o=typeof document<"u"?document.baseURI:void 0;return tn(new URL(n+"/../assets",o).href)}catch{return tn(n.replace(/\/[^/]*$/,"")+"/assets")}return"./assets"}function gm({shareUrl:e,embedPath:t,profileConfig:n}={}){const o=n||null,s=typeof window<"u",r=e||(o==null?void 0:o.shareUrl);if(typeof r=="string"&&r.trim())return r.trim();const i=String(t||(o==null?void 0:o.shareEmbedPath)||"").trim();if(i){if(/^https?:\/\//i.test(i))return i;if(i.startsWith("/"))return s?window.location.origin+i:i;const a=hm(o),l=i.replace(/^\.\//,"");if(a)return a+"/"+l;if(typeof document<"u")try{return new URL(l,document.baseURI).href}catch{}return l}return s?window.location.origin+window.location.pathname:""}const mm=["aria-label"],_m={class:"mcm-header"},bm={class:"mcm-title"},ym={class:"mcm-body"},vm=".dsm-map-area, .rm-map-area, .dm-map-area, [data-map-area]",vs="doxa-map-menu-open",wm={__name:"MapControlMenu",props:{open:{type:Boolean,default:!1},title:{type:String,default:""},width:{type:Number,default:340},isDark:{type:Boolean,default:!1},maxHeight:{type:Number,default:null},height:{type:Number,default:null},matchToolbar:{type:Boolean,default:!1}},emits:["close"],setup(e,{emit:t}){Wt(` +`,"map-control-button"),(t,n)=>(H(),J("button",{class:Te(["mcb",{dark:e.isDark,active:e.active}]),title:e.title,"aria-label":e.title||void 0,disabled:e.disabled,onClick:n[0]||(n[0]=o=>t.$emit("click"))},[Fr(t.$slots,"default")],10,am))}},im={__name:"ZoomInButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(e){const{t}=en(),n=e;function o(){var s;n.disabled||(s=n.map)==null||s.zoomIn()}return(s,r)=>(H(),Qe(fo,{"is-dark":e.isDark,disabled:e.disabled,title:ze(t)("buttons.zoomIn"),onClick:o},{default:Vt(()=>[...r[0]||(r[0]=[M("span",{style:{"font-size":"20px","line-height":"1","font-weight":"600"}},"+",-1)])]),_:1},8,["is-dark","disabled","title"]))}},lm={__name:"ZoomOutButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(e){const{t}=en(),n=e;function o(){var s;n.disabled||(s=n.map)==null||s.zoomOut()}return(s,r)=>(H(),Qe(fo,{"is-dark":e.isDark,disabled:e.disabled,title:ze(t)("buttons.zoomOut"),onClick:o},{default:Vt(()=>[...r[0]||(r[0]=[M("span",{style:{"font-size":"22px","line-height":"1","font-weight":"600"}},"−",-1)])]),_:1},8,["is-dark","disabled","title"]))}},cm={__name:"LocationButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},center:{type:Array,default:()=>[20,10]},zoom:{type:Number,default:1.8},userZoom:{type:Number,default:10}},setup(e){const{t}=en(),n=e;function o(){var r;(r=n.map)==null||r.flyTo({center:n.center,zoom:n.zoom,duration:1200})}function s(){if(n.map){if(typeof navigator>"u"||!navigator.geolocation){o();return}navigator.geolocation.getCurrentPosition(r=>{const{longitude:a,latitude:i}=r.coords;Number.isFinite(a)&&Number.isFinite(i)?n.map.flyTo({center:[a,i],zoom:n.userZoom,duration:1500}):o()},()=>o(),{enableHighAccuracy:!1,timeout:5e3,maximumAge:6e4})}}return(r,a)=>(H(),Qe(fo,{"is-dark":e.isDark,title:ze(t)("buttons.resetView"),onClick:s},{default:Vt(()=>[...a[0]||(a[0]=[M("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor"},[M("path",{d:"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z"})],-1)])]),_:1},8,["is-dark","title"]))}},um={key:0,xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 29 29",fill:"currentColor"},pm={key:1,xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 29 29",fill:"currentColor"},dm={__name:"FullscreenButton",props:{mapContainer:{type:Object,default:null},isDark:{type:Boolean,default:!1}},emits:["change"],setup(e,{emit:t}){const{t:n}=en(),o=e,s=t,r=re(!1);let a=null,i=null,l=null,c=null,u=null,f=null,h=null,m=null,w=null,k=null,A=null,O=0,C=0,_=null,b=null;function v(){if(typeof document>"u")return!1;const z=typeof navigator<"u"&&navigator.userAgent||"";return/iPad|iPhone|iPod/.test(z)||z.includes("Mac")&&typeof document<"u"&&"ontouchend"in document?!1:!!(document.fullscreenEnabled||document.webkitFullscreenEnabled)}function E(){var z,W,X;return((X=(W=(z=o.mapContainer)==null?void 0:z.getRootNode)==null?void 0:W.call(z))==null?void 0:X.host)??null}function L(){var W,X;const z=(X=(W=o.mapContainer)==null?void 0:W.getRootNode)==null?void 0:X.call(W);return document.fullscreenElement||document.webkitFullscreenElement||(z&&z instanceof ShadowRoot?z.fullscreenElement:null)||null}function x(z){const W=z.requestFullscreen||z.webkitRequestFullscreen;if(!W)return Promise.reject(new Error("Fullscreen API unavailable"));const X=W.call(z);return X&&typeof X.then=="function"?X:Promise.resolve()}function N(){const z=document.exitFullscreen||document.webkitExitFullscreen;if(!z)return Promise.reject(new Error("Fullscreen API unavailable"));const W=z.call(document);return W&&typeof W.then=="function"?W:Promise.resolve()}function R(){const z=E();if(!z)return!1;if(l=z,i=z.style.cssText,z.style.position="fixed",z.style.top="0",z.style.left="0",z.style.right="0",z.style.bottom="0",z.style.width="100vw",z.style.height="100vh",z.style.height="100dvh",z.style.zIndex="2147483647",z.style.margin="0",z.style.borderRadius="0",z.style.touchAction="pan-x pan-y pinch-zoom",typeof document<"u"){O=window.scrollY||window.pageYOffset||0,C=window.scrollX||window.pageXOffset||0;const W=document.body,X=document.documentElement;c=W?W.style.overflow:null,u=X?X.style.overflow:null,f=W?W.style.position:null,h=W?W.style.top:null,m=W?W.style.left:null,w=W?W.style.width:null,k=W?W.style.touchAction:null,A=X?X.style.touchAction:null,X&&(X.style.overflow="hidden",X.style.touchAction="none"),W&&(W.style.overflow="hidden",W.style.position="fixed",W.style.top=`-${O}px`,W.style.left=`-${C}px`,W.style.width="100%",W.style.touchAction="none"),_=le=>{if(!l)return;const Ee=le.target;Ee&&(Ee===l||l.contains&&l.contains(Ee))||le.cancelable&&le.preventDefault()},b=le=>{if(!l)return;const Ee=le.target;Ee&&(Ee===l||l.contains&&l.contains(Ee))||le.cancelable&&le.preventDefault()},document.addEventListener("touchmove",_,{passive:!1,capture:!0}),document.addEventListener("wheel",b,{passive:!1,capture:!0})}return!0}function j(){if(l){if(l.style.cssText=i||"",l=null,i=null,typeof document<"u"){const z=document.body,W=document.documentElement;z&&(z.style.overflow=c??"",z.style.position=f??"",z.style.top=h??"",z.style.left=m??"",z.style.width=w??"",z.style.touchAction=k??""),W&&(W.style.overflow=u??"",W.style.touchAction=A??""),_&&(document.removeEventListener("touchmove",_,{capture:!0}),_=null),b&&(document.removeEventListener("wheel",b,{capture:!0}),b=null),typeof window<"u"&&(O||C)&&window.scrollTo(C,O)}c=null,u=null,f=null,h=null,m=null,w=null,k=null,A=null,O=0,C=0}}function K(){typeof window>"u"||window.requestAnimationFrame(()=>{window.dispatchEvent(new Event("resize"))})}function ne(){if(!v()){r.value?(j(),r.value=!1,s("change",!1)):R()&&(r.value=!0,s("change",!0)),K();return}if(L())N().then(()=>{r.value=!1,s("change",!1)}).catch(()=>{});else{const W=E()??document.documentElement;x(W).then(()=>{r.value=!0,s("change",!0)}).catch(()=>{x(document.documentElement).then(()=>{r.value=!0,s("change",!0)}).catch(()=>{})})}}function ue(){r.value=!!L(),s("change",r.value)}return qt(()=>{var W,X;document.addEventListener("fullscreenchange",ue),document.addEventListener("webkitfullscreenchange",ue);const z=(X=(W=o.mapContainer)==null?void 0:W.getRootNode)==null?void 0:X.call(W);z instanceof ShadowRoot&&(a=z,z.addEventListener("fullscreenchange",ue),z.addEventListener("webkitfullscreenchange",ue))}),un(()=>{document.removeEventListener("fullscreenchange",ue),document.removeEventListener("webkitfullscreenchange",ue),a&&(a.removeEventListener("fullscreenchange",ue),a.removeEventListener("webkitfullscreenchange",ue),a=null),l&&j()}),(z,W)=>(H(),Qe(fo,{"is-dark":e.isDark,active:r.value,title:ze(n)("buttons.toggleFullscreen"),onClick:ne},{default:Vt(()=>[r.value?(H(),J("svg",pm,[...W[1]||(W[1]=[M("path",{d:"M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z"},null,-1)])])):(H(),J("svg",um,[...W[0]||(W[0]=[M("path",{d:"M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z"},null,-1)])]))]),_:1},8,["is-dark","active","title"]))}},fm=ir&&ir.tagName.toUpperCase()==="SCRIPT"&&ir.src||new URL("cities-internet.js",document.baseURI).href,tn=e=>String(e||"").trim().replace(/\/+$/,"");function Bl(){try{const t=String(fm||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function hm(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return tn(t);if(typeof window<"u"){const n=window.MAP_EMBED_BASE_URL;if(typeof n=="string"&&n.trim())return tn(n)}return tn(Bl()||"")}function Dl(e){const t=e==null?void 0:e.assetsBase;if(typeof t=="string"&&t.trim()){const o=tn(t);if(/^https?:\/\//i.test(o)||o.startsWith("/"))return o}const n=tn((e==null?void 0:e.treeBase)||"")||tn(Bl()||"");if(n)try{const o=typeof document<"u"?document.baseURI:void 0;return tn(new URL(n+"/../assets",o).href)}catch{return tn(n.replace(/\/[^/]*$/,"")+"/assets")}return"./assets"}function gm({shareUrl:e,embedPath:t,profileConfig:n}={}){const o=n||null,s=typeof window<"u",r=e||(o==null?void 0:o.shareUrl);if(typeof r=="string"&&r.trim())return r.trim();const a=String(t||(o==null?void 0:o.shareEmbedPath)||"").trim();if(a){if(/^https?:\/\//i.test(a))return a;if(a.startsWith("/"))return s?window.location.origin+a:a;const i=hm(o),l=a.replace(/^\.\//,"");if(i)return i+"/"+l;if(typeof document<"u")try{return new URL(l,document.baseURI).href}catch{}return l}return s?window.location.origin+window.location.pathname:""}const mm=["aria-label"],_m={class:"mcm-header"},bm={class:"mcm-title"},ym={class:"mcm-body"},vm=".dsm-map-area, .rm-map-area, .dm-map-area, [data-map-area]",vs="doxa-map-menu-open",wm={__name:"MapControlMenu",props:{open:{type:Boolean,default:!1},title:{type:String,default:""},width:{type:Number,default:340},isDark:{type:Boolean,default:!1},maxHeight:{type:Number,default:null},height:{type:Number,default:null},matchToolbar:{type:Boolean,default:!1}},emits:["close"],setup(e,{emit:t}){Wt(` .mcm{position:absolute;z-index:var(--z-menu,3000);display:flex;flex-direction:column;box-sizing:border-box; background:#161b22;border:1px solid #30363d;border-radius:12px;box-shadow:0 6px 24px rgba(0,0,0,0.45); color:#e6edf3;font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:13px; @@ -125,7 +125,7 @@ .mcm.light .mcm-close{background:rgba(208,215,222,0.4);border-color:#d0d7de;color:#57606a;} .mcm.light .mcm-close:hover{color:#3b463d;background:rgba(59,70,61,0.12);border-color:#3b463d;} .mcm-body{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;} -`,"map-control-menu");const n=e,o=t,s=De("mapToolbar",null),r=re(null),i=re(null),a=re({});function l(){var I;const m=(I=s==null?void 0:s.el)==null?void 0:I.value,w=r.value;if(!m||!w){a.value={};return}const k=w.getBoundingClientRect(),A=m.getBoundingClientRect(),O=(A.left+A.right)/2>(k.left+k.right)/2,C=8,_=12,b=O?k.right-A.left+C:A.right-k.left+C,v=Math.max(200,Math.min(n.width,k.width-b-_)),E=Math.max(0,A.top-k.top);let L=Math.max(120,k.height-E-_);n.matchToolbar&&(L=Math.max(120,Math.min(L,A.height))),n.maxHeight&&(L=Math.min(L,n.maxHeight)),a.value={top:`${Math.round(E)}px`,[O?"right":"left"]:`${Math.round(b)}px`,width:`${Math.round(v)}px`,maxHeight:`${Math.round(L)}px`,...n.height?{height:`${Math.round(Math.min(n.height,L))}px`}:{}}}function c(m){n.open&&m.detail!==i.value&&o("close")}lt(()=>n.open,async m=>{var w;if(m){await Vn(),l();try{(w=r.value)==null||w.dispatchEvent(new CustomEvent(vs,{detail:i.value}))}catch{}}});function u(){n.open&&l()}function f(m){m.key==="Escape"&&n.open&&o("close")}function h(m){var k;if(!n.open)return;const w=m.composedPath?m.composedPath():[m.target];i.value&&w.includes(i.value)||(k=s==null?void 0:s.el)!=null&&k.value&&w.includes(s.el.value)||w.some(A=>{var O,C,_,b;return((C=(O=A==null?void 0:A.classList)==null?void 0:O.contains)==null?void 0:C.call(O,"mapboxgl-canvas"))||((b=(_=A==null?void 0:A.classList)==null?void 0:_.contains)==null?void 0:b.call(_,"maplibregl-canvas"))})&&o("close")}return qt(()=>{var m,w,k;r.value=((w=(m=s==null?void 0:s.el)==null?void 0:m.value)==null?void 0:w.closest(vm))||null,(k=r.value)==null||k.addEventListener(vs,c),window.addEventListener("resize",u),document.addEventListener("click",h,!0),document.addEventListener("keydown",f)}),un(()=>{var m;(m=r.value)==null||m.removeEventListener(vs,c),window.removeEventListener("resize",u),document.removeEventListener("click",h,!0),document.removeEventListener("keydown",f)}),(m,w)=>(H(),Qe(Gc,{to:r.value,disabled:!r.value},[e.open?(H(),J("div",{key:0,ref_key:"el",ref:i,class:Te(["mcm",{light:!e.isDark}]),style:bn(a.value),role:"dialog","aria-label":e.title},[M("div",_m,[M("span",bm,Q(e.title),1),M("button",{class:"mcm-close",type:"button","aria-label":"Close",onClick:w[0]||(w[0]=k=>o("close"))},[...w[1]||(w[1]=[M("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},[M("line",{x1:"2",y1:"2",x2:"12",y2:"12"}),M("line",{x1:"12",y1:"2",x2:"2",y2:"12"})],-1)])])]),M("div",ym,[Fr(m.$slots,"default")])],14,mm)):Le("",!0)],8,["to","disabled"]))}},km={class:"share-steps"},$m={class:"share-tabs"},Om={key:0,class:"share-body"},Nm={class:"share-url-box"},Cm={class:"share-url-text"},Am={key:0,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},Em={key:1,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},Tm={key:1,class:"share-body"},Lm={class:"share-size-pills"},Sm=["onClick"],Im={class:"share-code-box"},xm={key:0,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},Fm={key:1,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},Mm={__name:"ShareButton",props:{isDark:{type:Boolean,default:!1},embedPath:{type:String,default:""}},setup(e){Wt(` +`,"map-control-menu");const n=e,o=t,s=De("mapToolbar",null),r=re(null),a=re(null),i=re({});function l(){var x;const m=(x=s==null?void 0:s.el)==null?void 0:x.value,w=r.value;if(!m||!w){i.value={};return}const k=w.getBoundingClientRect(),A=m.getBoundingClientRect(),O=(A.left+A.right)/2>(k.left+k.right)/2,C=8,_=12,b=O?k.right-A.left+C:A.right-k.left+C,v=Math.max(200,Math.min(n.width,k.width-b-_)),E=Math.max(0,A.top-k.top);let L=Math.max(120,k.height-E-_);n.matchToolbar&&(L=Math.max(120,Math.min(L,A.height))),n.maxHeight&&(L=Math.min(L,n.maxHeight)),i.value={top:`${Math.round(E)}px`,[O?"right":"left"]:`${Math.round(b)}px`,width:`${Math.round(v)}px`,maxHeight:`${Math.round(L)}px`,...n.height?{height:`${Math.round(Math.min(n.height,L))}px`}:{}}}function c(m){n.open&&m.detail!==a.value&&o("close")}lt(()=>n.open,async m=>{var w;if(m){await Vn(),l();try{(w=r.value)==null||w.dispatchEvent(new CustomEvent(vs,{detail:a.value}))}catch{}}});function u(){n.open&&l()}function f(m){m.key==="Escape"&&n.open&&o("close")}function h(m){var k;if(!n.open)return;const w=m.composedPath?m.composedPath():[m.target];a.value&&w.includes(a.value)||(k=s==null?void 0:s.el)!=null&&k.value&&w.includes(s.el.value)||w.some(A=>{var O,C,_,b;return((C=(O=A==null?void 0:A.classList)==null?void 0:O.contains)==null?void 0:C.call(O,"mapboxgl-canvas"))||((b=(_=A==null?void 0:A.classList)==null?void 0:_.contains)==null?void 0:b.call(_,"maplibregl-canvas"))})&&o("close")}return qt(()=>{var m,w,k;r.value=((w=(m=s==null?void 0:s.el)==null?void 0:m.value)==null?void 0:w.closest(vm))||null,(k=r.value)==null||k.addEventListener(vs,c),window.addEventListener("resize",u),document.addEventListener("click",h,!0),document.addEventListener("keydown",f)}),un(()=>{var m;(m=r.value)==null||m.removeEventListener(vs,c),window.removeEventListener("resize",u),document.removeEventListener("click",h,!0),document.removeEventListener("keydown",f)}),(m,w)=>(H(),Qe(Gc,{to:r.value,disabled:!r.value},[e.open?(H(),J("div",{key:0,ref_key:"el",ref:a,class:Te(["mcm",{light:!e.isDark}]),style:bn(i.value),role:"dialog","aria-label":e.title},[M("div",_m,[M("span",bm,Q(e.title),1),M("button",{class:"mcm-close",type:"button","aria-label":"Close",onClick:w[0]||(w[0]=k=>o("close"))},[...w[1]||(w[1]=[M("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},[M("line",{x1:"2",y1:"2",x2:"12",y2:"12"}),M("line",{x1:"12",y1:"2",x2:"2",y2:"12"})],-1)])])]),M("div",ym,[Fr(m.$slots,"default")])],14,mm)):Le("",!0)],8,["to","disabled"]))}},km={class:"share-steps"},$m={class:"share-tabs"},Om={key:0,class:"share-body"},Nm={class:"share-url-box"},Cm={class:"share-url-text"},Am={key:0,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},Em={key:1,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},Tm={key:1,class:"share-body"},Lm={class:"share-size-pills"},Sm=["onClick"],xm={class:"share-code-box"},Im={key:0,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},Fm={key:1,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},Mm={__name:"ShareButton",props:{isDark:{type:Boolean,default:!1},embedPath:{type:String,default:""}},setup(e){Wt(` .share-wrap{position:relative;display:inline-block;border-radius:50%;} .share-wrap::before{content:'';position:absolute;inset:-2px;border-radius:50%;padding:2px;pointer-events:none; background:conic-gradient(#ff6b6b,#ffd166,#6bd67b,#4dabf7,#9775fa,#f783ac,#ff6b6b); @@ -377,4 +377,4 @@ border-color:rgba(46,164,79,0.30); color:#2ea44f; } -`,"share-button");const{t,tm:n,rt:o}=en(),s=e,r=re(null),i=re(!1),a=re(null),l=re(null),c=re("link"),u=re(!1),f=re(!1),h=re("medium"),m={small:{label:"Small",height:400},medium:{label:"Medium",height:600},large:{label:"Large",height:800}},w=De("profileConfig",null),k=ie(()=>gm({embedPath:s.embedPath,profileConfig:ze(w)||null})),A=ie(()=>{const R=m[h.value].height;return''});function O(){i.value=!i.value,i.value&&(c.value="link",u.value=!1,f.value=!1)}function C(){i.value=!1}async function _(R){try{if(navigator.clipboard&&window.isSecureContext)return await navigator.clipboard.writeText(R),!0}catch{}try{const j=document.createElement("textarea");j.value=R,j.setAttribute("readonly",""),j.style.cssText="position:fixed;top:-1000px;opacity:0",document.body.appendChild(j),j.select();const K=document.execCommand("copy");return document.body.removeChild(j),K}catch{return!1}}async function b(){await _(k.value)&&(u.value=!0,setTimeout(()=>{u.value=!1},2e3))}async function v(){await _(A.value)&&(f.value=!0,setTimeout(()=>{f.value=!1},2e3))}const E=De("mapToolbar",null),L=re(null);nt("mapToolbar",E||{el:L});const I=!E;function N(R){if(r.value=R||null,!I||!R){R||(L.value=null);return}const j=R.offsetParent||R.parentElement;j&&!j.closest(".dsm-map-area, .rm-map-area, .dm-map-area, [data-map-area]")&&j.setAttribute("data-map-area","share-fallback"),L.value=R}return(R,j)=>(H(),J("div",{ref:N,class:"share-wrap","data-share-root":""},[ve(fo,{ref_key:"btnEl",ref:l,"is-dark":e.isDark,active:i.value,title:ze(t)("buttons.share"),onClick:O},{default:Vt(()=>[...j[2]||(j[2]=[M("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[M("path",{d:"M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"}),M("polyline",{points:"16 6 12 2 8 6"}),M("line",{x1:"12",y1:"2",x2:"12",y2:"15"})],-1)])]),_:1},8,["is-dark","active","title"]),ve(wm,{open:i.value,title:ze(t)("buttons.share"),"is-dark":e.isDark,onClose:C},{default:Vt(()=>[M("div",{ref_key:"popoverEl",ref:a,class:Te(["share-pop",{light:!e.isDark}])},[M("ul",km,[(H(!0),J(de,null,ct(ze(n)("buttons.shareSteps"),(K,ne)=>(H(),J("li",{key:ne},Q(ze(o)(K)),1))),128))]),M("div",$m,[M("button",{class:Te(["share-tab",{active:c.value==="link"}]),onClick:j[0]||(j[0]=K=>c.value="link")},"Embed link",2),M("button",{class:Te(["share-tab",{active:c.value==="embed"}]),onClick:j[1]||(j[1]=K=>c.value="embed")},"Add to Your Website",2)]),c.value==="link"?(H(),J("div",Om,[M("div",Nm,[M("div",Cm,Q(k.value),1)]),M("button",{class:Te(["share-primary-btn",{copied:u.value}]),onClick:b},[u.value?(H(),J("svg",Em,[...j[4]||(j[4]=[M("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(H(),J("svg",Am,[...j[3]||(j[3]=[M("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),M("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),$e(" "+Q(u.value?"Copied!":"Copy Link"),1)],2)])):Le("",!0),c.value==="embed"?(H(),J("div",Tm,[j[7]||(j[7]=M("div",{class:"share-embed-desc"}," Paste this code into your website builder (WordPress, Squarespace, Wix, or any site that accepts HTML widgets). ",-1)),M("div",Lm,[(H(),J(de,null,ct(m,(K,ne)=>M("button",{key:ne,class:Te(["share-size-pill",{active:h.value===ne}]),onClick:ue=>h.value=ne},Q(K.label),11,Sm)),64))]),M("div",Im,Q(A.value),1),M("button",{class:Te(["share-secondary-btn",{copied:f.value}]),onClick:v},[f.value?(H(),J("svg",Fm,[...j[6]||(j[6]=[M("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(H(),J("svg",xm,[...j[5]||(j[5]=[M("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),M("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),$e(" "+Q(f.value?"Copied!":"Copy Code"),1)],2)])):Le("",!0)],2)]),_:1},8,["open","title","is-dark"])],512))}},Pm={class:"gm-legend"},Bm={class:"gm-keys"},Dm={key:1,class:"gm-err"},Rm={key:2,class:"gm-sheet"},Wm={class:"gm-sh-head"},Um={class:"gm-sh-name"},jm={key:0,class:"gm-ai"},Gm={class:"gm-stat"},Ym={class:"gm-stat"},Vm={class:"gm-stat"},Hm={class:"gm-stat"},qm={class:"gm-stat"},zm={key:1,class:"gm-list"},Km={class:"gm-list-h"},Xm={key:2,class:"gm-list"},Jm=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"connectivity-map",setup(e){const t=De("profileConfig",re(null)),n=ie(()=>{var O;return((O=t.value)==null?void 0:O.isDark)===!0}),o=ie(()=>{var O;return((O=t.value)==null?void 0:O.tk)||window.DOXA_TOKEN||""}),s=ie(()=>Dl(t.value)),r=re(null),i=jn(null),a=re([]),l=re(null),c=re(!0),u=re(null),f=[{id:"yes",label:"connected 60%+",color:"#10b981"},{id:"partial",label:"partial 25–59%",color:"#e8c15a"},{id:"no",label:"low, under 25%",color:"#b42318"},{id:"unknown",label:"not measured",color:"#9aa2ad"}],h=O=>(f.find(C=>C.id===O)||{}).color||"#9aa2ad",m=ie(()=>{const O={};for(const C of a.value)O[C.iso3]=C;return O});async function w(){const[O,C]=await Promise.all([fetch(`${s.value}/tables/internet-by-country.json`).then(_=>_.json()),fetch(`${s.value}/boundaries/world-adm0.geojson`).then(_=>_.json())]);return a.value=O.countries||[],C}function k(O,C){const _=m.value,v={type:"FeatureCollection",features:(C.features||[]).map(E=>{var N;const L=(N=E.properties)==null?void 0:N.iso3,I=_[L];return{type:"Feature",properties:{iso3:L,band:(I==null?void 0:I.band)||"none",color:I?h(I.band):"rgba(0,0,0,0)",hasData:!!I},geometry:E.geometry}})};if(O.getSource("ci-src")){O.getSource("ci-src").setData(v);return}O.addSource("ci-src",{type:"geojson",data:v}),O.addLayer({id:"ci-fill",type:"fill",source:"ci-src",paint:{"fill-color":["get","color"],"fill-opacity":["case",["get","hasData"],.72,0]}}),O.addLayer({id:"ci-line",type:"line",source:"ci-src",paint:{"line-color":"rgba(255,255,255,0.5)","line-width":.5}}),O.on("click","ci-fill",E=>{var I,N,R;const L=(R=(N=(I=E.features)==null?void 0:I[0])==null?void 0:N.properties)==null?void 0:R.iso3;L&&m.value[L]&&(l.value=m.value[L])}),O.on("mouseenter","ci-fill",()=>{O.getCanvas().style.cursor="pointer"}),O.on("mouseleave","ci-fill",()=>{O.getCanvas().style.cursor=""})}qt(async()=>{const O=window.mapboxgl;if(!O||!r.value){u.value="mapbox-gl not loaded";return}try{const C=await w(),_=new O.Map({container:r.value,style:n.value?"mapbox://styles/mapbox/dark-v11":"mapbox://styles/mapbox/light-v11",accessToken:o.value,center:[42,18],zoom:1.3,projection:"mercator",attributionControl:!1});i.value=vn(_),rm(_,{boundaries:!0}),_.once("load",()=>k(_,C))}catch(C){u.value=String(C.message||C)}}),un(()=>{var O;try{(O=i.value)==null||O.remove()}catch{}});const A=O=>(Number(O)||0).toLocaleString();return Wt(".gm{position:absolute;inset:0;overflow:hidden}.gm-map{position:absolute;inset:0}.gm-legend{position:absolute;top:8px;left:8px;width:var(--map-legend-width,380px);max-width:calc(100% - 16px);box-sizing:border-box;z-index:4;padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.94);color:#0f1419;font:12px/1.35 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;box-shadow:0 2px 10px rgba(0,0,0,.16)}@media(max-width:480px){.gm-legend{width:auto;right:46px}}.is-dark .gm-legend{background:rgba(19,32,25,.95);color:#e5e7eb}.gm-title{font-weight:700;font-size:12.5px;margin-bottom:5px}.gm-keys{display:flex;flex-wrap:wrap;gap:5px 12px}.gm-key{display:flex;align-items:center;gap:5px;font-size:11px;white-space:nowrap}.gm-sw{width:12px;height:12px;border-radius:3px;flex:none}.gm-caveat{margin-top:5px;font-size:10.5px;opacity:.72;line-height:1.4}.gm-sheet{position:absolute;left:0;right:0;bottom:0;z-index:6;max-height:62%;overflow-y:auto;background:#fff;color:#0f1419;border-radius:14px 14px 0 0;padding:14px 16px 22px;font:13px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;box-shadow:0 -6px 26px rgba(0,0,0,.28)}@media(min-width:700px){.gm-sheet{left:auto;right:14px;bottom:14px;width:330px;border-radius:12px}}.is-dark .gm-sheet{background:#132019;color:#e5e7eb}.gm-sh-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.gm-sh-name{font-weight:800;font-size:15px}.gm-ai{display:flex;align-items:flex-start;gap:8px;margin:0 0 10px;padding:7px 9px;border-radius:8px;font-size:11px;line-height:1.35;background:rgba(180,120,0,.12);color:#7a4f00;border:1px solid rgba(180,120,0,.25)}.is-dark .gm-ai{background:rgba(255,200,80,.10);color:#f0cf88;border-color:rgba(255,200,80,.22)}.gm-ai-x{margin-left:auto;flex:none;border:0;background:none;cursor:pointer;font-size:15px;line-height:1;color:inherit;opacity:.7;padding:0 2px}.gm-ai-x:hover{opacity:1}.gm-x{margin-left:auto;border:1px solid rgba(0,0,0,.16);background:transparent;color:inherit;font:600 12px inherit;padding:6px 12px;border-radius:8px;cursor:pointer;min-height:34px}.gm-stat{display:flex;justify-content:space-between;gap:12px;padding:4px 0;border-bottom:1px solid rgba(0,0,0,.07);font-variant-numeric:tabular-nums}.is-dark .gm-stat{border-bottom-color:rgba(255,255,255,.09)}.gm-stat b{font-weight:700}.gm-list{margin-top:9px}.gm-list-h{font-weight:700;font-size:12px;margin-bottom:3px}.gm-list ul{margin:0;padding-left:17px;font-size:12px;line-height:1.5}.gm-note{margin-top:9px;font-size:11px;line-height:1.5;opacity:.75}.gm-err{position:absolute;top:50%;left:0;right:0;text-align:center;font-size:13px;opacity:.7}","doxa-connectivity-map"),(O,C)=>(H(),J("div",{class:Te(["gm",{"is-dark":n.value}])},[M("div",{ref_key:"mapEl",ref:r,class:"gm-map"},null,512),i.value?(H(),Qe(sm,{key:0},{default:Vt(()=>[ve(am,{map:i.value,"is-dark":n.value},null,8,["map","is-dark"]),ve(lm,{map:i.value,"is-dark":n.value},null,8,["map","is-dark"]),ve(cm,{map:i.value,"is-dark":n.value},null,8,["map","is-dark"]),ve(dm,{"map-container":r.value,"is-dark":n.value},null,8,["map-container","is-dark"]),ve(Mm,{"is-dark":n.value,"embed-path":"cities-internet/connectivity-map/index.html"},null,8,["is-dark"])]),_:1})):Le("",!0),M("div",Pm,[C[2]||(C[2]=M("div",{class:"gm-title"},"Internet access where unengaged people groups live",-1)),M("div",Bm,[(H(),J(de,null,ct(f,_=>M("span",{key:_.id,class:"gm-key"},[M("i",{class:"gm-sw",style:bn({background:_.color})},null,4),$e(Q(_.label),1)])),64))]),C[3]||(C[3]=M("div",{class:"gm-caveat"}," NATIONAL figures (World Bank). Per-city connectivity is not publicly available — do not read a city off a country. ",-1))]),u.value?(H(),J("div",Dm,Q(u.value),1)):Le("",!0),l.value?(H(),J("div",Rm,[M("div",Wm,[M("span",Um,Q(l.value.country),1),M("button",{type:"button",class:"gm-x",onClick:C[0]||(C[0]=_=>l.value=null)},"Close")]),c.value?(H(),J("div",jm,[C[4]||(C[4]=M("span",null,"Data was found by AI deep research — it is subject to false information.",-1)),M("button",{type:"button",class:"gm-ai-x",onClick:C[1]||(C[1]=_=>c.value=!1),"aria-label":"Dismiss"},"×")])):Le("",!0),M("div",Gm,[C[5]||(C[5]=M("span",null,"Internet users",-1)),M("b",null,Q(l.value.internet_pct!=null?l.value.internet_pct+"%":"unknown"),1)]),M("div",Ym,[C[6]||(C[6]=M("span",null,"Measured",-1)),M("b",null,Q(l.value.internet_year||"—"),1)]),M("div",Vm,[C[7]||(C[7]=M("span",null,"Mobile per 100",-1)),M("b",null,Q(l.value.mobile_per_100??"—"),1)]),M("div",Hm,[C[8]||(C[8]=M("span",null,"People groups",-1)),M("b",null,Q(A(l.value.people_groups)),1)]),M("div",qm,[C[9]||(C[9]=M("span",null,"Top platform",-1)),M("b",null,[$e(Q(l.value.top_platform||"unknown"),1),l.value.top_platform_pct?(H(),J(de,{key:0},[$e(" · "+Q(l.value.top_platform_pct)+"%",1)],64)):Le("",!0)])]),l.value.carriers&&l.value.carriers.length?(H(),J("div",zm,[M("div",Km,"Carriers & ISPs ("+Q(l.value.carrier_count)+")",1),M("ul",null,[(H(!0),J(de,null,ct(l.value.carriers,(_,b)=>(H(),J("li",{key:b},Q(_),1))),128))])])):Le("",!0),l.value.platforms&&l.value.platforms.length?(H(),J("div",Xm,[C[10]||(C[10]=M("div",{class:"gm-list-h"},"Social platforms",-1)),M("ul",null,[(H(!0),J(de,null,ct(l.value.platforms,(_,b)=>(H(),J("li",{key:b},Q(_.name)+" · "+Q(_.pct)+"%",1))),128))])])):Le("",!0),C[11]||(C[11]=M("p",{class:"gm-note"}," National figures, not city measurements. Carrier names are ASN registry holders — that set includes banks and universities as well as ISPs, so the carrier flag is a name heuristic, not a verified classification. ",-1))])):Le("",!0)],2))}}},Symbol.toStringTag,{value:"Module"}));function Zm(e){const t=(e==null?void 0:e.parentElement)||e;if(!t||!t.ownerDocument)return{x:0,y:0};const n=t.ownerDocument.createElement("div");n.style.cssText="position:fixed;top:0;left:0;width:0;height:0;pointer-events:none;opacity:0",t.appendChild(n);const o=n.getBoundingClientRect();return n.remove(),{x:o.left,y:o.top}}function Qm(e){const t=re(null),n=jn({position:"fixed",inset:"0"}),o=()=>{var u,f;const r=t.value;if(!r)return;const i=Zm(r),a=r.ownerDocument||(typeof document<"u"?document:null),l=((u=a==null?void 0:a.documentElement)==null?void 0:u.clientWidth)||0,c=((f=a==null?void 0:a.documentElement)==null?void 0:f.clientHeight)||0;n.value={position:"fixed",top:`${-i.y}px`,left:`${-i.x}px`,right:"auto",bottom:"auto",width:`${l}px`,height:`${c}px`,boxSizing:"border-box"}};lt(e,r=>{r&&requestAnimationFrame(()=>{o(),requestAnimationFrame(o)})},{flush:"post"});const s=()=>{e.value&&o()};return typeof window<"u"&&window.addEventListener("resize",s),un(()=>{typeof window<"u"&&window.removeEventListener("resize",s)}),{scrimRef:t,scrimStyle:n}}const e_={class:"dt-head"},t_={class:"dt-title"},n_={class:"dt-count"},o_={key:0,class:"dt-grain"},r_={class:"dt-actions"},s_={key:0,class:"dt-err"},i_={class:"dt-wrap"},a_={class:"dt-hint"},l_={class:"dt-sheet",role:"dialog","aria-label":"Row detail"},c_={class:"dt-sheet-head"},u_={class:"dt-dl"},p_=["href"],d_={key:1},f_={key:2},h_={key:2,class:"dt-caveats"},g_={class:"dt-cav-k"},m_={__name:"DataTable",props:{table:{type:Object,required:!0},assetsBase:{type:String,default:"./assets"},isDark:{type:Boolean,default:!1},height:{type:String,default:"560px"},frozen:{type:Number,default:1},pageSize:{type:Number,default:50}},emits:["row-click"],setup(e,{emit:t}){const n=e,o=t,s=re(!1),r=re(null),{scrimRef:i,scrimStyle:a}=Qm(r),l=re(null),c=jn(null),u=re(null),f=re(!1),h=ie(()=>String(n.assetsBase||"./assets").replace(/\/+$/,"")),m=ie(()=>{var N;return((N=n.table)==null?void 0:N.meta)||{}}),w=ie(()=>{var N;return(((N=n.table)==null?void 0:N.rows)||[]).length}),k=ie(()=>Object.entries(m.value).filter(([N,R])=>typeof R=="string"&&/caveat|meaning|note|boundary|measures|does_not/i.test(N)).map(([N,R])=>({key:N.replace(/_/g," "),text:R})));let A=null;function O(){return window.Tabulator?Promise.resolve(window.Tabulator):A||(A=new Promise((N,R)=>{const j=document.createElement("script");j.src=`${h.value}/vendor/tabulator/tabulator.min.js`,j.onload=()=>N(window.Tabulator),j.onerror=()=>R(new Error("Tabulator failed to load — is public/assets/vendor/tabulator/ present?")),document.head.appendChild(j)}),A)}async function C(N){if(!(!N||N.querySelector("style[data-tabulator]")))try{const R=await fetch(`${h.value}/vendor/tabulator/tabulator.min.css`);if(!R.ok)return;const j=document.createElement("style");j.setAttribute("data-tabulator",""),j.textContent=await R.text(),N.appendChild(j)}catch{}}function _(N){var ne,ue;if(!l.value)return;s.value=typeof window<"u"&&window.innerWidth<700;const R=((ne=n.table)==null?void 0:ne.columns)||[],K=(s.value?R.slice(0,3):R).map((z,W)=>({title:z.title,field:z.field,headerFilter:z.type==="boolean"?"tickCross":"input",headerFilterPlaceholder:"filter…",sorter:z.type==="number"?"number":z.type==="boolean"?"boolean":"string",formatter:z.type==="boolean"?"tickCross":void 0,.../_url$/.test(z.field)?{formatter:"link",formatterParams:{target:"_blank",label:()=>"open"}}:{},frozen:!s.value&&W{r.value=W.getData(),o("row-click",W.getData())}),c.value.on("tableBuilt",()=>{f.value=!0})}const b=N=>{var R,j;return((j=(((R=n.table)==null?void 0:R.columns)||[]).find(K=>K.field===N))==null?void 0:j.title)||N.replace(/_/g," ")},v=N=>typeof N=="string"&&N.includes(", ")&&N.length>40?N.split(", "):null,E=N=>typeof N=="string"&&/^https?:\/\//.test(N),L=ie(()=>r.value?Object.entries(r.value).filter(([,N])=>N!==""&&N!==null&&N!==void 0):[]);function I(N){var R;try{(R=c.value)==null||R.download(N,`${(m.value.title||"table").replace(/\W+/g,"-").toLowerCase()}.${N}`)}catch(j){u.value=String(j.message||j)}}return qt(async()=>{var N,R;try{await C((R=(N=l.value)==null?void 0:N.getRootNode)==null?void 0:R.call(N)),_(await O())}catch(j){u.value=String(j.message||j)}}),un(()=>{var N;try{(N=c.value)==null||N.destroy()}catch{}}),lt(()=>n.table,()=>{var N,R;try{(R=c.value)==null||R.replaceData(((N=n.table)==null?void 0:N.rows)||[])}catch{}}),Wt(".dt,.dt *{box-sizing:border-box}.dt{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.dt-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:8px}.dt-title{font-size:15px;font-weight:700;margin:0}.dt-count{font-size:11.5px;opacity:.6;font-variant-numeric:tabular-nums}.dt-grain{font-size:11px;opacity:.55}.dt-actions{margin-left:auto;display:flex;gap:6px}.dt-btn{font:600 11.5px inherit;padding:5px 11px;border-radius:6px;cursor:pointer;border:1px solid rgba(0,0,0,.16);background:transparent;color:inherit}.dt-btn:hover{background:rgba(0,0,0,.05)}.dt-err{padding:10px 12px;border-radius:8px;background:rgba(220,38,38,.10);color:#a12020;font-size:12.5px}.dt-caveats{margin-top:10px;padding:10px 12px;border-radius:8px;background:rgba(0,0,0,.04);font-size:11.5px;line-height:1.6;opacity:.85}.is-dark .dt-caveats{background:rgba(255,255,255,.06)}.dt-cav-k{font-weight:700;text-transform:capitalize}.dt-scrim{position:fixed;inset:0;z-index:1200;background:rgba(8,12,16,.55);display:flex;align-items:flex-end;justify-content:center}@media(min-width:700px){.dt-scrim{align-items:center}}.dt-sheet{width:100%;max-width:560px;max-height:82vh;overflow-y:auto;background:#fff;color:#0f1419;border-radius:14px 14px 0 0;padding:16px 18px 26px;box-shadow:0 -6px 30px rgba(0,0,0,.3)}@media(min-width:700px){.dt-sheet{border-radius:14px}}.is-dark .dt-sheet{background:#132019;color:#e5e7eb}.dt-sheet-head{display:flex;align-items:center;gap:12px;margin-bottom:10px;padding-bottom:9px;border-bottom:1px solid rgba(0,0,0,.10);font-size:15px}.dt-close{margin-left:auto;font:600 12px inherit;padding:7px 14px;border-radius:8px;cursor:pointer;min-height:36px;border:1px solid rgba(0,0,0,.16);background:transparent;color:inherit}.dt-dl{display:grid;grid-template-columns:minmax(96px,34%) 1fr;gap:7px 12px;margin:0;font-size:12.5px}.dt-dl dt{font-weight:700;opacity:.72;text-transform:capitalize}.dt-dl dd{margin:0;word-break:break-word}.dt-dl ul{margin:0;padding-left:16px}.dt-dl a{color:#0b7a5b;font-weight:600}.dt-hint{font-size:11px;opacity:.6;margin:6px 0 0}.dt-wrap{width:100%;overflow:hidden;border:1px solid rgba(0,0,0,.10);border-radius:8px}.is-dark .dt-wrap{border-color:rgba(255,255,255,.12)}","doxa-data-table"),(N,R)=>{var j,K;return H(),J("div",{class:Te(["dt",{"is-dark":e.isDark}])},[M("div",e_,[M("h3",t_,Q(m.value.title||"Data"),1),M("span",n_,Q(w.value.toLocaleString())+" rows",1),m.value.grain?(H(),J("span",o_,"· "+Q(m.value.grain),1)):Le("",!0),M("span",r_,[M("button",{type:"button",class:"dt-btn",onClick:R[0]||(R[0]=ne=>I("csv"))},"CSV"),M("button",{type:"button",class:"dt-btn",onClick:R[1]||(R[1]=ne=>I("json"))},"JSON")])]),u.value?(H(),J("div",s_,Q(u.value),1)):Le("",!0),M("div",i_,[M("div",{ref_key:"host",ref:l},null,512)]),M("p",a_,"Tap any row for its full detail"+Q(s.value?"":" — every field, including the lists the table flattens")+".",1),r.value?(H(),J("div",{key:1,ref_key:"scrimRef",ref:i,style:bn(ze(a)),class:"dt-scrim",onClick:R[3]||(R[3]=_p(ne=>r.value=null,["self"]))},[M("div",l_,[M("div",c_,[M("strong",null,Q(r.value[(K=(((j=e.table)==null?void 0:j.columns)||[])[0])==null?void 0:K.field]||"Detail"),1),M("button",{type:"button",class:"dt-close",onClick:R[2]||(R[2]=ne=>r.value=null)},"Close")]),M("dl",u_,[(H(!0),J(de,null,ct(L.value,([ne,ue])=>(H(),J(de,{key:ne},[M("dt",null,Q(b(ne)),1),M("dd",null,[E(ue)?(H(),J("a",{key:0,href:ue,target:"_blank",rel:"noopener"},Q(ue),9,p_)):v(ue)?(H(),J("ul",d_,[(H(!0),J(de,null,ct(v(ue),(z,W)=>(H(),J("li",{key:W},Q(z),1))),128))])):(H(),J("span",f_,Q(ue===!0?"yes":ue===!1?"no":ue),1))])],64))),128))])])],4)):Le("",!0),k.value.length?(H(),J("div",h_,[(H(!0),J(de,null,ct(k.value,ne=>(H(),J("div",{key:ne.key},[M("span",g_,Q(ne.key)+":",1),$e(" "+Q(ne.text),1)]))),128))])):Le("",!0)],2)}}},__={class:"ct-tabs"},b_=["onClick"],y_={key:0,class:"ct-n"},v_={key:0,class:"ct-err"},w_={key:1,class:"ct-load"},k_=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"data-tables",setup(e){const t=De("profileConfig",re(null)),n=ie(()=>{var h;return((h=t.value)==null?void 0:h.isDark)===!0}),o=ie(()=>Dl(t.value)),s=[{id:"cities",label:"Key Cities",file:"key-cities"},{id:"internet",label:"Connectivity",file:"country-connectivity"},{id:"operators",label:"ISPs & Carriers",file:"network-operators"},{id:"social",label:"Social Platforms",file:"social-platforms"},{id:"messaging",label:"Messaging Apps",file:"messaging-channels"}],r=re("cities"),i=ie(()=>s.find(h=>h.id===r.value)||s[0]),a=re({}),l=re(!1),c=re(null);async function u(h){if(!a.value[h]){l.value=!0,c.value=null;try{const m=await fetch(`${o.value}/tables/${h}.json`);if(!m.ok)throw new Error(`table not found (${m.status})`);a.value={...a.value,[h]:await m.json()}}catch(m){c.value=String(m.message||m)}finally{l.value=!1}}}lt(i,h=>h&&u(h.file),{immediate:!0});const f=ie(()=>{var h;return a.value[(h=i.value)==null?void 0:h.file]||null});return Wt(".ct{position:absolute;inset:0;overflow-y:auto;padding:18px;background:#f6f7f9;color:#0f1419;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.ct.is-dark{background:#0a1410;color:#e5e7eb}.ct-h{margin:0 0 4px;font-size:18px;font-weight:700}.ct-sub{margin:0 0 14px;font-size:12.5px;opacity:.72;line-height:1.5}.ct-tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}.ct-tab{font:600 12px inherit;padding:7px 14px;border-radius:999px;cursor:pointer;border:1px solid rgba(0,0,0,.14);background:transparent;color:inherit}.ct-tab.on{background:#10b981;border-color:#10b981;color:#04241a}.ct-load{padding:22px;text-align:center;font-size:12.5px;opacity:.6}.ct-err{padding:11px 13px;border-radius:8px;background:rgba(220,38,38,.10);color:#a12020;font-size:12.5px}.ct-n{font-size:10.5px;opacity:.6;margin-left:5px;font-variant-numeric:tabular-nums}","doxa-cities-tables"),(h,m)=>(H(),J("div",{class:Te(["ct",{"is-dark":n.value}])},[m[0]||(m[0]=M("h2",{class:"ct-h"},"Cities Data",-1)),m[1]||(m[1]=M("p",{class:"ct-sub"}," Where the unengaged people groups live — and what reaches them. Sort, filter and export any table; each carries its own sources and limits. ",-1)),M("div",__,[(H(),J(de,null,ct(s,w=>M("button",{key:w.id,type:"button",class:Te(["ct-tab",{on:r.value===w.id}]),onClick:k=>r.value=w.id},[$e(Q(w.label),1),a.value[w.file]?(H(),J("span",y_,Q((a.value[w.file].rows||[]).length.toLocaleString()),1)):Le("",!0)],10,b_)),64))]),c.value?(H(),J("div",v_,Q(c.value),1)):f.value?(H(),Qe(m_,{key:i.value.id,table:f.value,"assets-base":o.value,"is-dark":n.value,height:"600px"},null,8,["table","assets-base","is-dark"])):(H(),J("div",w_,"Loading "+Q(i.value.label)+"…",1))],2))}}},Symbol.toStringTag,{value:"Module"}))})(); +`,"share-button");const{t,tm:n,rt:o}=en(),s=e,r=re(null),a=re(!1),i=re(null),l=re(null),c=re("link"),u=re(!1),f=re(!1),h=re("medium"),m={small:{label:"Small",height:400},medium:{label:"Medium",height:600},large:{label:"Large",height:800}},w=De("profileConfig",null),k=ae(()=>gm({embedPath:s.embedPath,profileConfig:ze(w)||null})),A=ae(()=>{const R=m[h.value].height;return''});function O(){a.value=!a.value,a.value&&(c.value="link",u.value=!1,f.value=!1)}function C(){a.value=!1}async function _(R){try{if(navigator.clipboard&&window.isSecureContext)return await navigator.clipboard.writeText(R),!0}catch{}try{const j=document.createElement("textarea");j.value=R,j.setAttribute("readonly",""),j.style.cssText="position:fixed;top:-1000px;opacity:0",document.body.appendChild(j),j.select();const K=document.execCommand("copy");return document.body.removeChild(j),K}catch{return!1}}async function b(){await _(k.value)&&(u.value=!0,setTimeout(()=>{u.value=!1},2e3))}async function v(){await _(A.value)&&(f.value=!0,setTimeout(()=>{f.value=!1},2e3))}const E=De("mapToolbar",null),L=re(null);nt("mapToolbar",E||{el:L});const x=!E;function N(R){if(r.value=R||null,!x||!R){R||(L.value=null);return}const j=R.offsetParent||R.parentElement;j&&!j.closest(".dsm-map-area, .rm-map-area, .dm-map-area, [data-map-area]")&&j.setAttribute("data-map-area","share-fallback"),L.value=R}return(R,j)=>(H(),J("div",{ref:N,class:"share-wrap","data-share-root":""},[ve(fo,{ref_key:"btnEl",ref:l,"is-dark":e.isDark,active:a.value,title:ze(t)("buttons.share"),onClick:O},{default:Vt(()=>[...j[2]||(j[2]=[M("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[M("path",{d:"M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"}),M("polyline",{points:"16 6 12 2 8 6"}),M("line",{x1:"12",y1:"2",x2:"12",y2:"15"})],-1)])]),_:1},8,["is-dark","active","title"]),ve(wm,{open:a.value,title:ze(t)("buttons.share"),"is-dark":e.isDark,onClose:C},{default:Vt(()=>[M("div",{ref_key:"popoverEl",ref:i,class:Te(["share-pop",{light:!e.isDark}])},[M("ul",km,[(H(!0),J(de,null,ct(ze(n)("buttons.shareSteps"),(K,ne)=>(H(),J("li",{key:ne},Q(ze(o)(K)),1))),128))]),M("div",$m,[M("button",{class:Te(["share-tab",{active:c.value==="link"}]),onClick:j[0]||(j[0]=K=>c.value="link")},"Embed link",2),M("button",{class:Te(["share-tab",{active:c.value==="embed"}]),onClick:j[1]||(j[1]=K=>c.value="embed")},"Add to Your Website",2)]),c.value==="link"?(H(),J("div",Om,[M("div",Nm,[M("div",Cm,Q(k.value),1)]),M("button",{class:Te(["share-primary-btn",{copied:u.value}]),onClick:b},[u.value?(H(),J("svg",Em,[...j[4]||(j[4]=[M("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(H(),J("svg",Am,[...j[3]||(j[3]=[M("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),M("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),$e(" "+Q(u.value?"Copied!":"Copy Link"),1)],2)])):Le("",!0),c.value==="embed"?(H(),J("div",Tm,[j[7]||(j[7]=M("div",{class:"share-embed-desc"}," Paste this code into your website builder (WordPress, Squarespace, Wix, or any site that accepts HTML widgets). ",-1)),M("div",Lm,[(H(),J(de,null,ct(m,(K,ne)=>M("button",{key:ne,class:Te(["share-size-pill",{active:h.value===ne}]),onClick:ue=>h.value=ne},Q(K.label),11,Sm)),64))]),M("div",xm,Q(A.value),1),M("button",{class:Te(["share-secondary-btn",{copied:f.value}]),onClick:v},[f.value?(H(),J("svg",Fm,[...j[6]||(j[6]=[M("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(H(),J("svg",Im,[...j[5]||(j[5]=[M("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),M("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),$e(" "+Q(f.value?"Copied!":"Copy Code"),1)],2)])):Le("",!0)],2)]),_:1},8,["open","title","is-dark"])],512))}},Pm={class:"gm-legend"},Bm={class:"gm-keys"},Dm={key:1,class:"gm-err"},Rm={key:2,class:"gm-sheet"},Wm={class:"gm-sh-head"},Um={class:"gm-sh-name"},jm={key:0,class:"gm-ai"},Gm={class:"gm-stat"},Ym={class:"gm-stat"},Vm={class:"gm-stat"},Hm={class:"gm-stat"},qm={class:"gm-stat"},zm={key:1,class:"gm-list"},Km={class:"gm-list-h"},Xm={key:2,class:"gm-list"},Jm=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"connectivity-map",setup(e){const t=De("profileConfig",re(null)),n=ae(()=>{var O;return((O=t.value)==null?void 0:O.isDark)===!0}),o=ae(()=>{var O;return((O=t.value)==null?void 0:O.tk)||window.DOXA_TOKEN||""}),s=ae(()=>Dl(t.value)),r=re(null),a=jn(null),i=re([]),l=re(null),c=re(!0),u=re(null),f=[{id:"yes",label:"connected 60%+",color:"#10b981"},{id:"partial",label:"partial 25–59%",color:"#e8c15a"},{id:"no",label:"low, under 25%",color:"#b42318"},{id:"unknown",label:"not measured",color:"#9aa2ad"}],h=O=>(f.find(C=>C.id===O)||{}).color||"#9aa2ad",m=ae(()=>{const O={};for(const C of i.value)O[C.iso3]=C;return O});async function w(){const[O,C]=await Promise.all([fetch(`${s.value}/tables/internet-by-country.json`).then(_=>_.json()),fetch(`${s.value}/boundaries/world-adm0.geojson`).then(_=>_.json())]);return i.value=O.countries||[],C}function k(O,C){const _=m.value,v={type:"FeatureCollection",features:(C.features||[]).map(E=>{var N;const L=(N=E.properties)==null?void 0:N.iso3,x=_[L];return{type:"Feature",properties:{iso3:L,band:(x==null?void 0:x.band)||"none",color:x?h(x.band):"rgba(0,0,0,0)",hasData:!!x},geometry:E.geometry}})};if(O.getSource("ci-src")){O.getSource("ci-src").setData(v);return}O.addSource("ci-src",{type:"geojson",data:v}),O.addLayer({id:"ci-fill",type:"fill",source:"ci-src",paint:{"fill-color":["get","color"],"fill-opacity":["case",["get","hasData"],.72,0]}}),O.addLayer({id:"ci-line",type:"line",source:"ci-src",paint:{"line-color":"rgba(255,255,255,0.5)","line-width":.5}}),O.on("click","ci-fill",E=>{var x,N,R;const L=(R=(N=(x=E.features)==null?void 0:x[0])==null?void 0:N.properties)==null?void 0:R.iso3;L&&m.value[L]&&(l.value=m.value[L])}),O.on("mouseenter","ci-fill",()=>{O.getCanvas().style.cursor="pointer"}),O.on("mouseleave","ci-fill",()=>{O.getCanvas().style.cursor=""})}qt(async()=>{const O=window.mapboxgl;if(!O||!r.value){u.value="mapbox-gl not loaded";return}try{const C=await w(),_=new O.Map({container:r.value,style:n.value?"mapbox://styles/mapbox/dark-v11":"mapbox://styles/mapbox/light-v11",accessToken:o.value,center:[42,18],zoom:1.3,projection:"mercator",attributionControl:!1});a.value=vn(_),rm(_,{boundaries:!0}),_.once("load",()=>k(_,C))}catch(C){u.value=String(C.message||C)}}),un(()=>{var O;try{(O=a.value)==null||O.remove()}catch{}});const A=O=>(Number(O)||0).toLocaleString();return Wt(".gm{position:absolute;inset:0;overflow:hidden}.gm-map{position:absolute;inset:0}.gm-legend{position:absolute;top:8px;left:8px;width:var(--map-legend-width,380px);max-width:calc(100% - 16px);box-sizing:border-box;z-index:4;padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.94);color:#0f1419;font:12px/1.35 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;box-shadow:0 2px 10px rgba(0,0,0,.16)}@media(max-width:480px){.gm-legend{width:auto;right:46px}}.is-dark .gm-legend{background:rgba(19,32,25,.95);color:#e5e7eb}.gm-title{font-weight:700;font-size:12.5px;margin-bottom:5px}.gm-keys{display:flex;flex-wrap:wrap;gap:5px 12px}.gm-key{display:flex;align-items:center;gap:5px;font-size:11px;white-space:nowrap}.gm-sw{width:12px;height:12px;border-radius:3px;flex:none}.gm-caveat{margin-top:5px;font-size:10.5px;opacity:.72;line-height:1.4}.gm-sheet{position:absolute;left:0;right:0;bottom:0;z-index:6;max-height:62%;overflow-y:auto;background:#fff;color:#0f1419;border-radius:14px 14px 0 0;padding:14px 16px 22px;font:13px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;box-shadow:0 -6px 26px rgba(0,0,0,.28)}@media(min-width:700px){.gm-sheet{left:auto;right:14px;bottom:14px;width:330px;border-radius:12px}}.is-dark .gm-sheet{background:#132019;color:#e5e7eb}.gm-sh-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.gm-sh-name{font-weight:800;font-size:15px}.gm-ai{display:flex;align-items:flex-start;gap:8px;margin:0 0 10px;padding:7px 9px;border-radius:8px;font-size:11px;line-height:1.35;background:rgba(180,120,0,.12);color:#7a4f00;border:1px solid rgba(180,120,0,.25)}.is-dark .gm-ai{background:rgba(255,200,80,.10);color:#f0cf88;border-color:rgba(255,200,80,.22)}.gm-ai-x{margin-left:auto;flex:none;border:0;background:none;cursor:pointer;font-size:15px;line-height:1;color:inherit;opacity:.7;padding:0 2px}.gm-ai-x:hover{opacity:1}.gm-x{margin-left:auto;border:1px solid rgba(0,0,0,.16);background:transparent;color:inherit;font:600 12px inherit;padding:6px 12px;border-radius:8px;cursor:pointer;min-height:34px}.gm-stat{display:flex;justify-content:space-between;gap:12px;padding:4px 0;border-bottom:1px solid rgba(0,0,0,.07);font-variant-numeric:tabular-nums}.is-dark .gm-stat{border-bottom-color:rgba(255,255,255,.09)}.gm-stat b{font-weight:700}.gm-list{margin-top:9px}.gm-list-h{font-weight:700;font-size:12px;margin-bottom:3px}.gm-list ul{margin:0;padding-left:17px;font-size:12px;line-height:1.5}.gm-note{margin-top:9px;font-size:11px;line-height:1.5;opacity:.75}.gm-err{position:absolute;top:50%;left:0;right:0;text-align:center;font-size:13px;opacity:.7}","doxa-connectivity-map"),(O,C)=>(H(),J("div",{class:Te(["gm",{"is-dark":n.value}])},[M("div",{ref_key:"mapEl",ref:r,class:"gm-map"},null,512),a.value?(H(),Qe(sm,{key:0},{default:Vt(()=>[ve(im,{map:a.value,"is-dark":n.value},null,8,["map","is-dark"]),ve(lm,{map:a.value,"is-dark":n.value},null,8,["map","is-dark"]),ve(cm,{map:a.value,"is-dark":n.value},null,8,["map","is-dark"]),ve(dm,{"map-container":r.value,"is-dark":n.value},null,8,["map-container","is-dark"]),ve(Mm,{"is-dark":n.value,"embed-path":"cities-internet/connectivity-map/index.html"},null,8,["is-dark"])]),_:1})):Le("",!0),M("div",Pm,[C[2]||(C[2]=M("div",{class:"gm-title"},"Internet access where unengaged people groups live",-1)),M("div",Bm,[(H(),J(de,null,ct(f,_=>M("span",{key:_.id,class:"gm-key"},[M("i",{class:"gm-sw",style:bn({background:_.color})},null,4),$e(Q(_.label),1)])),64))]),C[3]||(C[3]=M("div",{class:"gm-caveat"}," NATIONAL figures (World Bank). Per-city connectivity is not publicly available — do not read a city off a country. ",-1))]),u.value?(H(),J("div",Dm,Q(u.value),1)):Le("",!0),l.value?(H(),J("div",Rm,[M("div",Wm,[M("span",Um,Q(l.value.country),1),M("button",{type:"button",class:"gm-x",onClick:C[0]||(C[0]=_=>l.value=null)},"Close")]),c.value?(H(),J("div",jm,[C[4]||(C[4]=M("span",null,"Data was found by AI deep research — it is subject to false information.",-1)),M("button",{type:"button",class:"gm-ai-x",onClick:C[1]||(C[1]=_=>c.value=!1),"aria-label":"Dismiss"},"×")])):Le("",!0),M("div",Gm,[C[5]||(C[5]=M("span",null,"Internet users",-1)),M("b",null,Q(l.value.internet_pct!=null?l.value.internet_pct+"%":"unknown"),1)]),M("div",Ym,[C[6]||(C[6]=M("span",null,"Measured",-1)),M("b",null,Q(l.value.internet_year||"—"),1)]),M("div",Vm,[C[7]||(C[7]=M("span",null,"Mobile per 100",-1)),M("b",null,Q(l.value.mobile_per_100??"—"),1)]),M("div",Hm,[C[8]||(C[8]=M("span",null,"People groups",-1)),M("b",null,Q(A(l.value.people_groups)),1)]),M("div",qm,[C[9]||(C[9]=M("span",null,"Top platform",-1)),M("b",null,[$e(Q(l.value.top_platform||"unknown"),1),l.value.top_platform_pct?(H(),J(de,{key:0},[$e(" · "+Q(l.value.top_platform_pct)+"%",1)],64)):Le("",!0)])]),l.value.carriers&&l.value.carriers.length?(H(),J("div",zm,[M("div",Km,"Carriers & ISPs ("+Q(l.value.carrier_count)+")",1),M("ul",null,[(H(!0),J(de,null,ct(l.value.carriers,(_,b)=>(H(),J("li",{key:b},Q(_),1))),128))])])):Le("",!0),l.value.platforms&&l.value.platforms.length?(H(),J("div",Xm,[C[10]||(C[10]=M("div",{class:"gm-list-h"},"Social platforms",-1)),M("ul",null,[(H(!0),J(de,null,ct(l.value.platforms,(_,b)=>(H(),J("li",{key:b},Q(_.name)+" · "+Q(_.pct)+"%",1))),128))])])):Le("",!0),C[11]||(C[11]=M("p",{class:"gm-note"}," National figures, not city measurements. Carrier names are ASN registry holders — that set includes banks and universities as well as ISPs, so the carrier flag is a name heuristic, not a verified classification. ",-1))])):Le("",!0)],2))}}},Symbol.toStringTag,{value:"Module"}));function Zm(e){const t=(e==null?void 0:e.parentElement)||e;if(!t||!t.ownerDocument)return{x:0,y:0};const n=t.ownerDocument.createElement("div");n.style.cssText="position:fixed;top:0;left:0;width:0;height:0;pointer-events:none;opacity:0",t.appendChild(n);const o=n.getBoundingClientRect();return n.remove(),{x:o.left,y:o.top}}function Qm(e){const t=re(null),n=jn({position:"fixed",inset:"0"}),o=()=>{var u,f;const r=t.value;if(!r)return;const a=Zm(r),i=r.ownerDocument||(typeof document<"u"?document:null),l=((u=i==null?void 0:i.documentElement)==null?void 0:u.clientWidth)||0,c=((f=i==null?void 0:i.documentElement)==null?void 0:f.clientHeight)||0;n.value={position:"fixed",top:`${-a.y}px`,left:`${-a.x}px`,right:"auto",bottom:"auto",width:`${l}px`,height:`${c}px`,boxSizing:"border-box"}};lt(e,r=>{r&&requestAnimationFrame(()=>{o(),requestAnimationFrame(o)})},{flush:"post"});const s=()=>{e.value&&o()};return typeof window<"u"&&window.addEventListener("resize",s),un(()=>{typeof window<"u"&&window.removeEventListener("resize",s)}),{scrimRef:t,scrimStyle:n}}const e_={class:"dt-head"},t_={class:"dt-title"},n_={class:"dt-count"},o_={key:0,class:"dt-grain"},r_={class:"dt-actions"},s_={key:0,class:"dt-err"},a_={class:"dt-wrap"},i_={class:"dt-hint"},l_={class:"dt-sheet",role:"dialog","aria-label":"Row detail"},c_={class:"dt-sheet-head"},u_={class:"dt-dl"},p_=["href"],d_={key:1},f_={key:2},h_={key:2,class:"dt-caveats"},g_={class:"dt-cav-k"},m_={__name:"DataTable",props:{table:{type:Object,required:!0},assetsBase:{type:String,default:"./assets"},isDark:{type:Boolean,default:!1},height:{type:String,default:"560px"},frozen:{type:Number,default:1},pageSize:{type:Number,default:50}},emits:["row-click"],setup(e,{emit:t}){const n=e,o=t,s=re(!1),r=re(null),{scrimRef:a,scrimStyle:i}=Qm(r),l=re(null),c=jn(null),u=re(null),f=re(!1),h=ae(()=>String(n.assetsBase||"./assets").replace(/\/+$/,"")),m=ae(()=>{var N;return((N=n.table)==null?void 0:N.meta)||{}}),w=ae(()=>{var N;return(((N=n.table)==null?void 0:N.rows)||[]).length}),k=ae(()=>Object.entries(m.value).filter(([N,R])=>typeof R=="string"&&/caveat|meaning|note|boundary|measures|does_not/i.test(N)).map(([N,R])=>({key:N.replace(/_/g," "),text:R})));let A=null;function O(){return window.Tabulator?Promise.resolve(window.Tabulator):A||(A=new Promise((N,R)=>{const j=document.createElement("script");j.src=`${h.value}/vendor/tabulator/tabulator.min.js`,j.onload=()=>N(window.Tabulator),j.onerror=()=>R(new Error("Tabulator failed to load — is public/assets/vendor/tabulator/ present?")),document.head.appendChild(j)}),A)}async function C(N){if(!(!N||N.querySelector("style[data-tabulator]")))try{const R=await fetch(`${h.value}/vendor/tabulator/tabulator.min.css`);if(!R.ok)return;const j=document.createElement("style");j.setAttribute("data-tabulator",""),j.textContent=await R.text(),N.appendChild(j)}catch{}}function _(N){var ne,ue;if(!l.value)return;s.value=typeof window<"u"&&window.innerWidth<700;const R=((ne=n.table)==null?void 0:ne.columns)||[],K=(s.value?R.slice(0,3):R).map((z,W)=>({title:z.title,field:z.field,headerFilter:z.type==="boolean"?"tickCross":"input",headerFilterPlaceholder:"filter…",sorter:z.type==="number"?"number":z.type==="boolean"?"boolean":"string",formatter:z.type==="boolean"?"tickCross":void 0,.../_url$/.test(z.field)?{formatter:"link",formatterParams:{target:"_blank",label:()=>"open"}}:{},frozen:!s.value&&W{r.value=W.getData(),o("row-click",W.getData())}),c.value.on("tableBuilt",()=>{f.value=!0})}const b=N=>{var R,j;return((j=(((R=n.table)==null?void 0:R.columns)||[]).find(K=>K.field===N))==null?void 0:j.title)||N.replace(/_/g," ")},v=N=>typeof N=="string"&&N.includes(", ")&&N.length>40?N.split(", "):null,E=N=>typeof N=="string"&&/^https?:\/\//.test(N),L=ae(()=>r.value?Object.entries(r.value).filter(([,N])=>N!==""&&N!==null&&N!==void 0):[]);function x(N){var R;try{(R=c.value)==null||R.download(N,`${(m.value.title||"table").replace(/\W+/g,"-").toLowerCase()}.${N}`)}catch(j){u.value=String(j.message||j)}}return qt(async()=>{var N,R;try{await C((R=(N=l.value)==null?void 0:N.getRootNode)==null?void 0:R.call(N)),_(await O())}catch(j){u.value=String(j.message||j)}}),un(()=>{var N;try{(N=c.value)==null||N.destroy()}catch{}}),lt(()=>n.table,()=>{var N,R;try{(R=c.value)==null||R.replaceData(((N=n.table)==null?void 0:N.rows)||[])}catch{}}),Wt(".dt .tabulator{border:1px solid #d1d4cd;background:#fff;font-size:14px}.dt .tabulator .tabulator-header{background:#f3f3f1;border-bottom:1px solid #d1d4cd;color:#3b463d}.dt .tabulator .tabulator-header .tabulator-col{background:#f3f3f1;border-right:1px solid #d1d4cd;color:#3b463d}.dt .tabulator .tabulator-header .tabulator-col.tabulator-sortable:hover{background:#e9ebe6}.dt .tabulator .tabulator-col-title{color:#3b463d;font-weight:700}.dt .tabulator .tabulator-header .tabulator-col .tabulator-header-filter input,.dt .tabulator .tabulator-header .tabulator-col .tabulator-header-filter select{background:#fff;border:1px solid #d1d4cd;border-radius:5px;color:#3b463d;padding:3px 6px}.dt .tabulator .tabulator-row{background:#fff;color:#3b463d;border-bottom:1px solid #e6e8e3}.dt .tabulator .tabulator-row.tabulator-row-even{background:#faf9f7}.dt .tabulator .tabulator-row:hover{background:#e9ebe6}.dt .tabulator .tabulator-row .tabulator-cell{border-right:1px solid #e6e8e3;color:#3b463d}.dt .tabulator .tabulator-row .tabulator-cell a{color:#4a7a52;font-weight:600}.dt .tabulator .tabulator-footer{background:#f3f3f1;border-top:1px solid #d1d4cd;color:#3b463d}.dt .tabulator .tabulator-footer .tabulator-paginator{color:#3b463d}.dt .tabulator .tabulator-footer .tabulator-paginator label{color:#3b463d}.dt .tabulator .tabulator-footer .tabulator-paginator select{background:#fff;border:1px solid #d1d4cd;border-radius:5px;color:#3b463d}.dt .tabulator .tabulator-footer .tabulator-page{border:1px solid #d1d4cd;background:#fff;color:#3b463d;border-radius:5px}.dt .tabulator .tabulator-footer .tabulator-page.active{background:#92b195;border-color:#92b195;color:#fff}.dt .tabulator .tabulator-footer .tabulator-page:not(disabled):hover{background:#e9ebe6;color:#3b463d}.dt .tabulator .tabulator-footer .tabulator-page:disabled{opacity:.45}.dt,.dt *{box-sizing:border-box}.dt{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.dt-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:8px}.dt-title{font-size:15px;font-weight:700;margin:0}.dt-count{font-size:11.5px;opacity:.6;font-variant-numeric:tabular-nums}.dt-grain{font-size:11px;opacity:.55}.dt-actions{margin-left:auto;display:flex;gap:6px}.dt-btn{font:600 11.5px inherit;padding:5px 11px;border-radius:6px;cursor:pointer;border:1px solid rgba(0,0,0,.16);background:transparent;color:inherit}.dt-btn:hover{background:rgba(0,0,0,.05)}.dt-err{padding:10px 12px;border-radius:8px;background:rgba(220,38,38,.10);color:#a12020;font-size:12.5px}.dt-caveats{margin-top:10px;padding:10px 12px;border-radius:8px;background:rgba(0,0,0,.04);font-size:11.5px;line-height:1.6;opacity:.85}.is-dark .dt-caveats{background:rgba(255,255,255,.06)}.dt-cav-k{font-weight:700;text-transform:capitalize}.dt-scrim{position:fixed;inset:0;z-index:1200;background:rgba(8,12,16,.55);display:flex;align-items:flex-end;justify-content:center}@media(min-width:700px){.dt-scrim{align-items:center}}.dt-sheet{width:100%;max-width:560px;max-height:82vh;overflow-y:auto;background:#fff;color:#0f1419;border-radius:14px 14px 0 0;padding:16px 18px 26px;box-shadow:0 -6px 30px rgba(0,0,0,.3)}@media(min-width:700px){.dt-sheet{border-radius:14px}}.is-dark .dt-sheet{background:#132019;color:#e5e7eb}.dt-sheet-head{display:flex;align-items:center;gap:12px;margin-bottom:10px;padding-bottom:9px;border-bottom:1px solid rgba(0,0,0,.10);font-size:15px}.dt-close{margin-left:auto;font:600 12px inherit;padding:7px 14px;border-radius:8px;cursor:pointer;min-height:36px;border:1px solid rgba(0,0,0,.16);background:transparent;color:inherit}.dt-dl{display:grid;grid-template-columns:minmax(96px,34%) 1fr;gap:7px 12px;margin:0;font-size:12.5px}.dt-dl dt{font-weight:700;opacity:.72;text-transform:capitalize}.dt-dl dd{margin:0;word-break:break-word}.dt-dl ul{margin:0;padding-left:16px}.dt-dl a{color:#0b7a5b;font-weight:600}.dt-hint{font-size:11px;opacity:.6;margin:6px 0 0}.dt-wrap{width:100%;overflow:hidden;border:1px solid rgba(0,0,0,.10);border-radius:8px}.is-dark .dt-wrap{border-color:rgba(255,255,255,.12)}","doxa-data-table"),(N,R)=>{var j,K;return H(),J("div",{class:Te(["dt",{"is-dark":e.isDark}])},[M("div",e_,[M("h3",t_,Q(m.value.title||"Data"),1),M("span",n_,Q(w.value.toLocaleString())+" rows",1),m.value.grain?(H(),J("span",o_,"· "+Q(m.value.grain),1)):Le("",!0),M("span",r_,[M("button",{type:"button",class:"dt-btn",onClick:R[0]||(R[0]=ne=>x("csv"))},"CSV"),M("button",{type:"button",class:"dt-btn",onClick:R[1]||(R[1]=ne=>x("json"))},"JSON")])]),u.value?(H(),J("div",s_,Q(u.value),1)):Le("",!0),M("div",a_,[M("div",{ref_key:"host",ref:l},null,512)]),M("p",i_,"Tap any row for its full detail"+Q(s.value?"":" — every field, including the lists the table flattens")+".",1),r.value?(H(),J("div",{key:1,ref_key:"scrimRef",ref:a,style:bn(ze(i)),class:"dt-scrim",onClick:R[3]||(R[3]=_p(ne=>r.value=null,["self"]))},[M("div",l_,[M("div",c_,[M("strong",null,Q(r.value[(K=(((j=e.table)==null?void 0:j.columns)||[])[0])==null?void 0:K.field]||"Detail"),1),M("button",{type:"button",class:"dt-close",onClick:R[2]||(R[2]=ne=>r.value=null)},"Close")]),M("dl",u_,[(H(!0),J(de,null,ct(L.value,([ne,ue])=>(H(),J(de,{key:ne},[M("dt",null,Q(b(ne)),1),M("dd",null,[E(ue)?(H(),J("a",{key:0,href:ue,target:"_blank",rel:"noopener"},Q(ue),9,p_)):v(ue)?(H(),J("ul",d_,[(H(!0),J(de,null,ct(v(ue),(z,W)=>(H(),J("li",{key:W},Q(z),1))),128))])):(H(),J("span",f_,Q(ue===!0?"yes":ue===!1?"no":ue),1))])],64))),128))])])],4)):Le("",!0),k.value.length?(H(),J("div",h_,[(H(!0),J(de,null,ct(k.value,ne=>(H(),J("div",{key:ne.key},[M("span",g_,Q(ne.key)+":",1),$e(" "+Q(ne.text),1)]))),128))])):Le("",!0)],2)}}},__={class:"ct-tabs"},b_=["onClick"],y_={key:0,class:"ct-n"},v_={key:0,class:"ct-err"},w_={key:1,class:"ct-load"},k_=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"data-tables",setup(e){const t=De("profileConfig",re(null)),n=ae(()=>{var h;return((h=t.value)==null?void 0:h.isDark)===!0}),o=ae(()=>Dl(t.value)),s=[{id:"cities",label:"Key Cities",file:"key-cities"},{id:"internet",label:"Connectivity",file:"country-connectivity"},{id:"operators",label:"ISPs & Carriers",file:"network-operators"},{id:"social",label:"Social Platforms",file:"social-platforms"},{id:"messaging",label:"Messaging Apps",file:"messaging-channels"}],r=re("cities"),a=ae(()=>s.find(h=>h.id===r.value)||s[0]),i=re({}),l=re(!1),c=re(null);async function u(h){if(!i.value[h]){l.value=!0,c.value=null;try{const m=await fetch(`${o.value}/tables/${h}.json`);if(!m.ok)throw new Error(`table not found (${m.status})`);i.value={...i.value,[h]:await m.json()}}catch(m){c.value=String(m.message||m)}finally{l.value=!1}}}lt(a,h=>h&&u(h.file),{immediate:!0});const f=ae(()=>{var h;return i.value[(h=a.value)==null?void 0:h.file]||null});return Wt(".ct{position:absolute;inset:0;overflow-y:auto;padding:18px;background:#f6f7f9;color:#0f1419;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.ct.is-dark{background:#0a1410;color:#e5e7eb}.ct-h{margin:0 0 4px;font-size:18px;font-weight:700}.ct-sub{margin:0 0 14px;font-size:12.5px;opacity:.72;line-height:1.5}.ct-tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}.ct-tab{font:600 12px inherit;padding:7px 14px;border-radius:999px;cursor:pointer;border:1px solid rgba(0,0,0,.14);background:transparent;color:inherit}.ct-tab.on{background:#10b981;border-color:#10b981;color:#04241a}.ct-load{padding:22px;text-align:center;font-size:12.5px;opacity:.6}.ct-err{padding:11px 13px;border-radius:8px;background:rgba(220,38,38,.10);color:#a12020;font-size:12.5px}.ct-n{font-size:10.5px;opacity:.6;margin-left:5px;font-variant-numeric:tabular-nums}","doxa-cities-tables"),(h,m)=>(H(),J("div",{class:Te(["ct",{"is-dark":n.value}])},[m[0]||(m[0]=M("h2",{class:"ct-h"},"Cities Data",-1)),m[1]||(m[1]=M("p",{class:"ct-sub"}," Where the unengaged people groups live — and what reaches them. Sort, filter and export any table; each carries its own sources and limits. ",-1)),M("div",__,[(H(),J(de,null,ct(s,w=>M("button",{key:w.id,type:"button",class:Te(["ct-tab",{on:r.value===w.id}]),onClick:k=>r.value=w.id},[$e(Q(w.label),1),i.value[w.file]?(H(),J("span",y_,Q((i.value[w.file].rows||[]).length.toLocaleString()),1)):Le("",!0)],10,b_)),64))]),c.value?(H(),J("div",v_,Q(c.value),1)):f.value?(H(),Qe(m_,{key:a.value.id,table:f.value,"assets-base":o.value,"is-dark":n.value,height:"600px"},null,8,["table","assets-base","is-dark"])):(H(),J("div",w_,"Loading "+Q(a.value.label)+"…",1))],2))}}},Symbol.toStringTag,{value:"Module"}))})(); diff --git a/public/doxa-maps/cities-internet/connectivity-list/index.html b/public/doxa-maps/cities-internet/connectivity-list/index.html index 56e0668f9..7cfa0d0a1 100644 --- a/public/doxa-maps/cities-internet/connectivity-list/index.html +++ b/public/doxa-maps/cities-internet/connectivity-list/index.html @@ -26,7 +26,7 @@ - + - + - + - + - + - + - + + window.FORGE.manifest = {"schema":"doxa-maps-manifest@1","generatedFrom":"plugin-designs/*/*.vue","embedBase":".","bundleCount":21,"profileCount":32,"bundles":[{"bundle":"all-people-groups","scriptUrl":"./all-people-groups/all-people-groups.js","output":"doxa-maps/all-people-groups/all-people-groups.js","integrity":"sha384-ajyiOLGnsr8AOhrZpwopjFXwKGNk56IbWkBMD+2oYA+DSDjdtATeoF5muZoXhcEF","elements":["all-people-groups"],"profiles":[{"profile":"all-people-groups","file":"all-people-groups.vue","description":"All 12,379 people groups (peoplegroups.org) in four colors — reached,","element":"all-people-groups","type":"single","isMap":true,"iframeUrl":"./all-people-groups/all-people-groups/index.html","scriptUrl":"./all-people-groups/all-people-groups.js","embed":{"iframe":"\u003ciframe src=\"./all-people-groups/all-people-groups/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./all-people-groups/all-people-groups.js\" integrity=\"sha384-ajyiOLGnsr8AOhrZpwopjFXwKGNk56IbWkBMD+2oYA+DSDjdtATeoF5muZoXhcEF\" crossorigin=\"anonymous\">\u003c/script>\n\u003call-people-groups profile-config='{\"profile\":\"all-people-groups\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/all-people-groups>"},"bundle":"all-people-groups"}]},{"bundle":"big-picture","scriptUrl":"./big-picture/big-picture.js","output":"doxa-maps/big-picture/big-picture.js","integrity":"sha384-a9W2VPCO3zJ+1pqWQadGso72rNPTfmZgO4aoGtZN7RDFQpVQbeTvy8JBsGi9VH43","elements":["bp-big-picture","bp-research-header","people-groups-grid"],"composes":["bp-research-header","people-groups-grid"],"profiles":[{"profile":"big-picture","file":"big-picture.vue","description":"The Cat-4 composite that PAIRS the two real capability elements of the","element":"bp-big-picture","type":"nested-elements-mfe","isMap":false,"iframeUrl":"./big-picture/big-picture/index.html","scriptUrl":"./big-picture/big-picture.js","embed":{"iframe":"\u003ciframe src=\"./big-picture/big-picture/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./big-picture/big-picture.js\" integrity=\"sha384-a9W2VPCO3zJ+1pqWQadGso72rNPTfmZgO4aoGtZN7RDFQpVQbeTvy8JBsGi9VH43\" crossorigin=\"anonymous\">\u003c/script>\n\u003cbp-big-picture profile-config='{\"profile\":\"big-picture\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/bp-big-picture>"},"instances":[{"id":"big-picture","title":"Big Picture — research header ↔ people-groups grid (composite)","apiBaseUrl":"","props":{"profile":"big-picture","provider":"maplibre","instanceId":"bp-big-picture"},"element":"bp-big-picture","iframeUrl":"./big-picture/big-picture/big-picture/index.html","embed":{"iframe":"\u003ciframe src=\"./big-picture/big-picture/big-picture/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"frontier","title":"Big Picture — frontier accent","apiBaseUrl":"","props":{"profile":"big-picture","provider":"maplibre","instanceId":"bp-big-picture-frontier","accent":"#22d3ee","title":"Big Picture — Frontier Focus"},"element":"bp-big-picture","iframeUrl":"./big-picture/big-picture/frontier/index.html","embed":{"iframe":"\u003ciframe src=\"./big-picture/big-picture/frontier/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}],"bundle":"big-picture"}]},{"bundle":"cities-internet","scriptUrl":"./cities-internet/cities-internet.js","output":"doxa-maps/cities-internet/cities-internet.js","integrity":"sha384-2XeY3I8Ff77YyQjrUsSsINTvxoE7E6Bi6wX2E2d8GuDrEhMXBh+/u+YleUi3Oa7J","elements":["cities-internet-map"],"profiles":[{"profile":"connectivity-list","file":"connectivity-list.vue","description":"Countries where DX people groups live, grouped by region, showing measured internet penetration","element":"cities-internet-map","type":"single","isMap":false,"iframeUrl":"./cities-internet/connectivity-list/index.html","scriptUrl":"./cities-internet/cities-internet.js","embed":{"iframe":"\u003ciframe src=\"./cities-internet/connectivity-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-2XeY3I8Ff77YyQjrUsSsINTvxoE7E6Bi6wX2E2d8GuDrEhMXBh+/u+YleUi3Oa7J\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccities-internet-map profile-config='{\"profile\":\"connectivity-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/cities-internet-map>"}},{"profile":"connectivity-map","file":"connectivity-map.vue","description":"Every country shaded by measured internet penetration, with its named carriers and dominant","element":"cities-internet-map","type":"single","isMap":true,"iframeUrl":"./cities-internet/connectivity-map/index.html","scriptUrl":"./cities-internet/cities-internet.js","embed":{"iframe":"\u003ciframe src=\"./cities-internet/connectivity-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-2XeY3I8Ff77YyQjrUsSsINTvxoE7E6Bi6wX2E2d8GuDrEhMXBh+/u+YleUi3Oa7J\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccities-internet-map profile-config='{\"profile\":\"connectivity-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/cities-internet-map>"}},{"profile":"data-tables","file":"data-tables.vue","description":"Four validated research tables, one tab each, with sortable and filterable columns, CSV and JSON","element":"cities-internet-map","type":"single","isMap":false,"iframeUrl":"./cities-internet/data-tables/index.html","scriptUrl":"./cities-internet/cities-internet.js","embed":{"iframe":"\u003ciframe src=\"./cities-internet/data-tables/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-2XeY3I8Ff77YyQjrUsSsINTvxoE7E6Bi6wX2E2d8GuDrEhMXBh+/u+YleUi3Oa7J\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccities-internet-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/cities-internet-map>"}}]},{"bundle":"country-posters","scriptUrl":"./country-posters/country-posters.js","output":"doxa-maps/country-posters/country-posters.js","integrity":"sha384-11tC7IzM7DM66gTcAlLSb0bwA7TTkfKYmdrYdiGlBTy9eLVhYCjKgD+LmhZ+qLwO","elements":["country-posters-map"],"profiles":[{"profile":"countries-map","file":"countries-map.vue","description":"The researcher's workbench retargeted from people groups to COUNTRIES — region","element":"country-posters-map","type":"single","isMap":true,"iframeUrl":"./country-posters/countries-map/index.html","scriptUrl":"./country-posters/country-posters.js","embed":{"iframe":"\u003ciframe src=\"./country-posters/countries-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./country-posters/country-posters.js\" integrity=\"sha384-11tC7IzM7DM66gTcAlLSb0bwA7TTkfKYmdrYdiGlBTy9eLVhYCjKgD+LmhZ+qLwO\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccountry-posters-map profile-config='{\"profile\":\"countries-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/country-posters-map>"}},{"profile":"country-poster-wall","file":"country-poster-wall.vue","description":"One printable card per country, grouped into COLLAPSIBLE regional sections so the","element":"country-posters-map","type":"single","isMap":false,"iframeUrl":"./country-posters/country-poster-wall/index.html","scriptUrl":"./country-posters/country-posters.js","embed":{"iframe":"\u003ciframe src=\"./country-posters/country-poster-wall/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./country-posters/country-posters.js\" integrity=\"sha384-11tC7IzM7DM66gTcAlLSb0bwA7TTkfKYmdrYdiGlBTy9eLVhYCjKgD+LmhZ+qLwO\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccountry-posters-map profile-config='{\"profile\":\"country-poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/country-posters-map>"}}]},{"bundle":"dashboard-plus-grid","scriptUrl":"./dashboard-plus-grid/dashboard-plus-grid.js","output":"doxa-maps/dashboard-plus-grid/dashboard-plus-grid.js","integrity":"sha384-w8aVTRyH8dlsHIjJMHrFe6QbnZaafEb3wGjykrVlqWvj+I0S5eMwXfyBHy/SS/X0","elements":["dashboard-plus-grid"],"composes":["research-dashboard","people-groups-grid"],"profiles":[{"profile":"dashboard-plus-grid","file":"dashboard-plus-grid.vue","description":"Both children are IMPORTED DIRECTLY (compiled into this ONE bundle — no runtime bundle","element":"dashboard-plus-grid","type":"nested-elements-mfe","isMap":true,"iframeUrl":"./dashboard-plus-grid/dashboard-plus-grid/index.html","scriptUrl":"./dashboard-plus-grid/dashboard-plus-grid.js","embed":{"iframe":"\u003ciframe src=\"./dashboard-plus-grid/dashboard-plus-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./dashboard-plus-grid/dashboard-plus-grid.js\" integrity=\"sha384-w8aVTRyH8dlsHIjJMHrFe6QbnZaafEb3wGjykrVlqWvj+I0S5eMwXfyBHy/SS/X0\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdashboard-plus-grid profile-config='{\"profile\":\"dashboard-plus-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/dashboard-plus-grid>"},"instances":[{"id":"default","title":"default","apiBaseUrl":"","props":{"profile":"dashboard-plus-grid"},"element":"dashboard-plus-grid","iframeUrl":"./dashboard-plus-grid/dashboard-plus-grid/default/index.html","embed":{"iframe":"\u003ciframe src=\"./dashboard-plus-grid/dashboard-plus-grid/default/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"demo-map","scriptUrl":"./demo-map/demo-map.js","output":"doxa-maps/demo-map/demo-map.js","integrity":"sha384-yLc6o2sikAUcTgqEszWaO9whzFZnBAZoO4gPXJhG3tzvfKaDpK2mhAW3qXwrycDO","elements":["demo-map"],"profiles":[{"profile":"demo-map","file":"demo-map.vue","description":"Simple two-tab demo map. Tab 1 colors pins by religion (shared","element":"demo-map","type":"parameterized","isMap":true,"iframeUrl":"./demo-map/demo-map/index.html","scriptUrl":"./demo-map/demo-map.js","embed":{"iframe":"\u003ciframe src=\"./demo-map/demo-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./demo-map/demo-map.js\" integrity=\"sha384-yLc6o2sikAUcTgqEszWaO9whzFZnBAZoO4gPXJhG3tzvfKaDpK2mhAW3qXwrycDO\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdemo-map profile-config='{\"profile\":\"demo-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/demo-map>"},"instances":[{"id":"maplibre","title":"Demo map — MapLibre (token-free)","apiBaseUrl":"","props":{"profile":"demo-map","provider":"maplibre","instanceId":"demo-maplibre"},"element":"demo-map","iframeUrl":"./demo-map/demo-map/maplibre/index.html","embed":{"iframe":"\u003ciframe src=\"./demo-map/demo-map/maplibre/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}],"bundle":"demo-map"}]},{"bundle":"doxa-maps-spa","scriptUrl":"./doxa-maps-spa/doxa-maps-spa.js","output":"doxa-maps/doxa-maps-spa/doxa-maps-spa.js","integrity":"sha384-GNqHiINJmPj5jwlIbFd3WQ2FfQy9VwJ6gZEjisE/TmS23X7RjCEz5YL81gKSVD5c","elements":["doxa-maps-spa"],"composes":["bp-big-picture","doxa-research-map","doxa-simple-map","cities-internet-map","gospel-resources-map","my-upg-100-list-map"],"profiles":[{"profile":"doxa-maps-spa","file":"doxa-maps-spa.vue","description":"The DX-maps app itself: one element whose vertical-tab rail nests every other","element":"doxa-maps-spa","type":"nested-mfe-spa","isMap":false,"iframeUrl":"./doxa-maps-spa/doxa-maps-spa/index.html","scriptUrl":"./doxa-maps-spa/doxa-maps-spa.js","embed":{"iframe":"\u003ciframe src=\"./doxa-maps-spa/doxa-maps-spa/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-maps-spa/doxa-maps-spa.js\" integrity=\"sha384-GNqHiINJmPj5jwlIbFd3WQ2FfQy9VwJ6gZEjisE/TmS23X7RjCEz5YL81gKSVD5c\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-maps-spa profile-config='{\"profile\":\"doxa-maps-spa\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-maps-spa>"},"instances":[{"id":"app","title":"DX-Maps SPA — Big Picture + every research map (app-shell)","apiBaseUrl":"","props":{"profile":"doxa-maps-spa","provider":"maplibre","instanceId":"doxa-maps-spa-app","title":"DX-Maps"},"element":"doxa-maps-spa","iframeUrl":"./doxa-maps-spa/doxa-maps-spa/app/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-maps-spa/doxa-maps-spa/app/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"doxa-research-map","scriptUrl":"./doxa-research-map/doxa-research-map.js","output":"doxa-maps/doxa-research-map/doxa-research-map.js","integrity":"sha384-ugm8PXu3KYQmGJoQnOUaICqt07r17kQa1bINkKsrUgt89uENqvd87rxT2NBeyC9/","elements":["doxa-research-map"],"profiles":[{"profile":"research-map","file":"research-map.vue","description":"The researcher's workbench: every piece a missiologist, demographer or","element":"doxa-research-map","type":"monolithic","isMap":true,"iframeUrl":"./doxa-research-map/research-map/index.html","scriptUrl":"./doxa-research-map/doxa-research-map.js","embed":{"iframe":"\u003ciframe src=\"./doxa-research-map/research-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-research-map/doxa-research-map.js\" integrity=\"sha384-ugm8PXu3KYQmGJoQnOUaICqt07r17kQa1bINkKsrUgt89uENqvd87rxT2NBeyC9/\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-research-map profile-config='{\"profile\":\"research-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-research-map>"}}]},{"bundle":"doxa-simple-map","scriptUrl":"./doxa-simple-map/doxa-simple-map.js","output":"doxa-maps/doxa-simple-map/doxa-simple-map.js","integrity":"sha384-fl3Eh//QzBhOEpF3OJcfZDXOdpyb/yxiQ5aEroT23Onjya6wvBlx+F2dUB6FiBZu","elements":["doxa-map","doxa-simple-map"],"profiles":[{"profile":"doxa-simple-map","file":"doxa-simple-map.vue","description":"The simple world map, shipped as three presets off ONE prop table —","element":"doxa-map","type":"parameterized","isMap":true,"iframeUrl":"./doxa-simple-map/doxa-simple-map/index.html","scriptUrl":"./doxa-simple-map/doxa-simple-map.js","embed":{"iframe":"\u003ciframe src=\"./doxa-simple-map/doxa-simple-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-simple-map/doxa-simple-map.js\" integrity=\"sha384-fl3Eh//QzBhOEpF3OJcfZDXOdpyb/yxiQ5aEroT23Onjya6wvBlx+F2dUB6FiBZu\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-map profile-config='{\"profile\":\"doxa-simple-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-map>"},"instances":[{"id":"prayer","title":"Prayer Map","apiBaseUrl":"https://pray.doxa.life","props":{"profile":"doxa-simple-map","instanceId":"embed-prayer","dataSource":"pray-tools","tabs":[{"id":"prayer","colorStrategy":"prayer","legend":"prayer","popup":"prayer"}]},"element":"doxa-map","iframeUrl":"./doxa-simple-map/doxa-simple-map/prayer/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-simple-map/doxa-simple-map/prayer/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"engagement","title":"Engagement Map","apiBaseUrl":"https://pray.doxa.life","props":{"profile":"doxa-simple-map","instanceId":"embed-engagement","dataSource":"pray-tools","tabs":[{"id":"engagement","colorStrategy":"engagement","legend":"engagement","popup":"engagement"}]},"element":"doxa-map","iframeUrl":"./doxa-simple-map/doxa-simple-map/engagement/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-simple-map/doxa-simple-map/engagement/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"adoption","title":"Adoption Map","apiBaseUrl":"https://pray.doxa.life","props":{"profile":"doxa-simple-map","instanceId":"embed-adoption","dataSource":"pray-tools","tabs":[{"id":"adoption","colorStrategy":"adoption","legend":"adoption","popup":"adoption"}]},"element":"doxa-map","iframeUrl":"./doxa-simple-map/doxa-simple-map/adoption/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-simple-map/doxa-simple-map/adoption/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"doxa-vision-card","scriptUrl":"./doxa-vision-card/doxa-vision-card.js","output":"doxa-maps/doxa-vision-card/doxa-vision-card.js","integrity":"sha384-2mza3cltN5LQQIrlENG/IVL6Icd9zzcFve3E8R8VWuCdYOGW9uGKFvxcbu6eFfwn","elements":["doxa-vision-card"],"profiles":[{"profile":"doxa-vision-card","file":"doxa-vision-card.vue","description":"The Capability-1 example: ONE folder -> ONE bundle -> ONE element.","element":"doxa-vision-card","type":"parameterized","isMap":false,"iframeUrl":"./doxa-vision-card/doxa-vision-card/index.html","scriptUrl":"./doxa-vision-card/doxa-vision-card.js","embed":{"iframe":"\u003ciframe src=\"./doxa-vision-card/doxa-vision-card/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-vision-card/doxa-vision-card.js\" integrity=\"sha384-2mza3cltN5LQQIrlENG/IVL6Icd9zzcFve3E8R8VWuCdYOGW9uGKFvxcbu6eFfwn\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-vision-card profile-config='{\"profile\":\"doxa-vision-card\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-vision-card>"},"instances":[{"id":"default","title":"Vision card — reach at a glance","apiBaseUrl":"","props":{"profile":"doxa-vision-card","provider":"maplibre","instanceId":"vision-card-default"},"element":"doxa-vision-card","iframeUrl":"./doxa-vision-card/doxa-vision-card/default/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-vision-card/doxa-vision-card/default/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"frontier","title":"Vision card — frontier accent","apiBaseUrl":"","props":{"profile":"doxa-vision-card","provider":"maplibre","instanceId":"vision-card-frontier","accent":"#22d3ee","title":"The last frontier of the gospel.","tagline":"Frontier people groups — where fewer than one in a thousand follow Jesus.","stats":[{"value":"1,910","label":"Frontier groups","note":"under 0.1% believers"},{"value":"2.1B","label":"People","note":"living in frontier settings"},{"value":"0.1%","label":"Christian","note":"or fewer, in each group"}]},"element":"doxa-vision-card","iframeUrl":"./doxa-vision-card/doxa-vision-card/frontier/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-vision-card/doxa-vision-card/frontier/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}],"bundle":"doxa-vision-card"}]},{"bundle":"golden-path-check","scriptUrl":"./golden-path-check/golden-path-check.js","output":"doxa-maps/golden-path-check/golden-path-check.js","integrity":"sha384-1V/sT5SkV0U9yTCK9ELIOFfU1ZIJkInIF6nG3UllJ4dxax3RsEAupSGLJEFK6e14","elements":["golden-path-check"],"profiles":[{"profile":"golden-path-check","file":"golden-path-check.vue","description":"A live self-test of the develop-a-plugin-and-see-it-live path: it reads the built","element":"golden-path-check","type":"single","isMap":false,"iframeUrl":"./golden-path-check/golden-path-check/index.html","scriptUrl":"./golden-path-check/golden-path-check.js","embed":{"iframe":"\u003ciframe src=\"./golden-path-check/golden-path-check/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./golden-path-check/golden-path-check.js\" integrity=\"sha384-1V/sT5SkV0U9yTCK9ELIOFfU1ZIJkInIF6nG3UllJ4dxax3RsEAupSGLJEFK6e14\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgolden-path-check profile-config='{\"profile\":\"golden-path-check\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/golden-path-check>"}}]},{"bundle":"gospel-resources","scriptUrl":"./gospel-resources/gospel-resources.js","output":"doxa-maps/gospel-resources/gospel-resources.js","integrity":"sha384-DJOPWgxv0aJTTqWf05/FWiCVqQURbKIlqPP+rlyMLFZmYm8UzzQBrMACWHOPDj5t","elements":["gospel-resources-map"],"profiles":[{"profile":"charts","file":"charts.vue","description":"The gap by LANGUAGE (ISO 639-3) rather than by people group — because one translation serves every","element":"gospel-resources-map","type":"single","isMap":false,"iframeUrl":"./gospel-resources/charts/index.html","scriptUrl":"./gospel-resources/gospel-resources.js","embed":{"iframe":"\u003ciframe src=\"./gospel-resources/charts/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-DJOPWgxv0aJTTqWf05/FWiCVqQURbKIlqPP+rlyMLFZmYm8UzzQBrMACWHOPDj5t\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"charts\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}},{"profile":"data-tables","file":"data-tables.vue","description":"Two validated tables: what resources exist per people group, and whether that access is keeping","element":"gospel-resources-map","type":"single","isMap":false,"iframeUrl":"./gospel-resources/data-tables/index.html","scriptUrl":"./gospel-resources/gospel-resources.js","embed":{"iframe":"\u003ciframe src=\"./gospel-resources/data-tables/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-DJOPWgxv0aJTTqWf05/FWiCVqQURbKIlqPP+rlyMLFZmYm8UzzQBrMACWHOPDj5t\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}},{"profile":"resources-list","file":"resources-list.vue","description":"Which DX people groups have scripture in their own language, and which have none. The zero-resource","element":"gospel-resources-map","type":"single","isMap":false,"iframeUrl":"./gospel-resources/resources-list/index.html","scriptUrl":"./gospel-resources/gospel-resources.js","embed":{"iframe":"\u003ciframe src=\"./gospel-resources/resources-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-DJOPWgxv0aJTTqWf05/FWiCVqQURbKIlqPP+rlyMLFZmYm8UzzQBrMACWHOPDj5t\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"resources-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}},{"profile":"resources-map","file":"resources-map.vue","description":"Every country shaded by how much of its unengaged population has NO gospel resource in their own","element":"gospel-resources-map","type":"single","isMap":true,"iframeUrl":"./gospel-resources/resources-map/index.html","scriptUrl":"./gospel-resources/gospel-resources.js","embed":{"iframe":"\u003ciframe src=\"./gospel-resources/resources-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-DJOPWgxv0aJTTqWf05/FWiCVqQURbKIlqPP+rlyMLFZmYm8UzzQBrMACWHOPDj5t\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"resources-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}}]},{"bundle":"my-upg-100-list","scriptUrl":"./my-upg-100-list/my-upg-100-list.js","output":"doxa-maps/my-upg-100-list/my-upg-100-list.js","integrity":"sha384-HnFFKkrNrn1G3n0Ytk55taH2k/0xGwgWh2vQwJZZWN6F2TTOD2X7vnMq8eqSXpnE","elements":["my-upg-100-list-map"],"composes":["my-upg-100-list/upg-100-list","my-upg-100-list/poster-wall"],"profiles":[{"profile":"poster-wall","file":"poster-wall.vue","description":"A wall of printable poster cards, one per 100-list entry, each with a \"Show on map\" action that","element":"my-upg-100-list-map","type":"single","isMap":true,"iframeUrl":"./my-upg-100-list/poster-wall/index.html","scriptUrl":"./my-upg-100-list/my-upg-100-list.js","embed":{"iframe":"\u003ciframe src=\"./my-upg-100-list/poster-wall/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-HnFFKkrNrn1G3n0Ytk55taH2k/0xGwgWh2vQwJZZWN6F2TTOD2X7vnMq8eqSXpnE\" crossorigin=\"anonymous\">\u003c/script>\n\u003cmy-upg-100-list-map profile-config='{\"profile\":\"poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/my-upg-100-list-map>"}},{"profile":"upg-100-list","file":"upg-100-list.vue","description":"A personal unreached-people-groups list painted as true boundary polygons —","element":"my-upg-100-list-map","type":"single","isMap":true,"iframeUrl":"./my-upg-100-list/upg-100-list/index.html","scriptUrl":"./my-upg-100-list/my-upg-100-list.js","embed":{"iframe":"\u003ciframe src=\"./my-upg-100-list/upg-100-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-HnFFKkrNrn1G3n0Ytk55taH2k/0xGwgWh2vQwJZZWN6F2TTOD2X7vnMq8eqSXpnE\" crossorigin=\"anonymous\">\u003c/script>\n\u003cmy-upg-100-list-map profile-config='{\"profile\":\"upg-100-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/my-upg-100-list-map>"}},{"profile":"upg-100-mfe","file":"upg-100-mfe.vue","description":"The standalone, shareable and embeddable composite of the my-upg-100-list family — it nests the map","element":"my-upg-100-list-map","type":"nested-elements-mfe","isMap":true,"iframeUrl":"./my-upg-100-list/upg-100-mfe/index.html","scriptUrl":"./my-upg-100-list/my-upg-100-list.js","embed":{"iframe":"\u003ciframe src=\"./my-upg-100-list/upg-100-mfe/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-HnFFKkrNrn1G3n0Ytk55taH2k/0xGwgWh2vQwJZZWN6F2TTOD2X7vnMq8eqSXpnE\" crossorigin=\"anonymous\">\u003c/script>\n\u003cmy-upg-100-list-map profile-config='{\"profile\":\"upg-100-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/my-upg-100-list-map>"}}]},{"bundle":"people-groups-grid","scriptUrl":"./people-groups-grid/people-groups-grid.js","output":"doxa-maps/people-groups-grid/people-groups-grid.js","integrity":"sha384-M3RVF4r+s9KJ2YznjQ+g3BR4XjsA4n8uhfCk97dwyiuN1BxRdeQmmMnQILV0CwJg","elements":["people-groups-grid"],"profiles":[{"profile":"people-groups-grid","file":"people-groups-grid.vue","description":"The people-groups grid as an owned custom element: card list, search and four","element":"people-groups-grid","type":"parameterized","isMap":false,"iframeUrl":"./people-groups-grid/people-groups-grid/index.html","scriptUrl":"./people-groups-grid/people-groups-grid.js","embed":{"iframe":"\u003ciframe src=\"./people-groups-grid/people-groups-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./people-groups-grid/people-groups-grid.js\" integrity=\"sha384-M3RVF4r+s9KJ2YznjQ+g3BR4XjsA4n8uhfCk97dwyiuN1BxRdeQmmMnQILV0CwJg\" crossorigin=\"anonymous\">\u003c/script>\n\u003cpeople-groups-grid profile-config='{\"profile\":\"people-groups-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/people-groups-grid>"},"instances":[{"id":"people-groups-grid","title":"People Groups Grid — standalone (own search + 4 dropdowns)","apiBaseUrl":"","props":{"profile":"people-groups-grid","provider":"maplibre","instanceId":"people-groups-grid","pray-base-url":"https://pray.doxa.life"},"element":"people-groups-grid","iframeUrl":"./people-groups-grid/people-groups-grid/people-groups-grid/index.html","embed":{"iframe":"\u003ciframe src=\"./people-groups-grid/people-groups-grid/people-groups-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"driven","title":"People Groups Grid — externally driven (controls off, props/events)","apiBaseUrl":"","props":{"profile":"people-groups-grid","provider":"maplibre","instanceId":"people-groups-grid-driven","pray-base-url":"https://pray.doxa.life","show-search":"false","show-filters":"false"},"element":"people-groups-grid","iframeUrl":"./people-groups-grid/people-groups-grid/driven/index.html","embed":{"iframe":"\u003ciframe src=\"./people-groups-grid/people-groups-grid/driven/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"plugin-studio","scriptUrl":"./plugin-studio/plugin-studio.js","output":"doxa-maps/plugin-studio/plugin-studio.js","integrity":"sha384-VuTJ3Db517xAN7nyV6VKdM0YJH6ToDwxyCjjAEeK69x8KompgYFCHWs29Q0BkfJp","elements":["plugin-studio"],"composes":["bp-big-picture","people-groups-grid","doxa-research-map","doxa-simple-map","cities-internet-map","gospel-resources-map","my-upg-100-list-map","doxa-vision-card","all-people-groups","research-dashboard"],"profiles":[{"profile":"plugin-studio","file":"plugin-studio.vue","description":"The developer's viewing surface: a sidebar that is the composability ladder","element":"plugin-studio","type":"nested-mfe-spa","isMap":false,"iframeUrl":"./plugin-studio/plugin-studio/index.html","scriptUrl":"./plugin-studio/plugin-studio.js","embed":{"iframe":"\u003ciframe src=\"./plugin-studio/plugin-studio/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./plugin-studio/plugin-studio.js\" integrity=\"sha384-VuTJ3Db517xAN7nyV6VKdM0YJH6ToDwxyCjjAEeK69x8KompgYFCHWs29Q0BkfJp\" crossorigin=\"anonymous\">\u003c/script>\n\u003cplugin-studio profile-config='{\"profile\":\"plugin-studio\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/plugin-studio>"},"instances":[{"id":"studio","title":"Plugin Studio — every element by capability 5 -> 1 (developer studio)","apiBaseUrl":"","props":{"profile":"plugin-studio","provider":"maplibre","instanceId":"plugin-studio","title":"Plugin Studio"},"element":"plugin-studio","iframeUrl":"./plugin-studio/plugin-studio/studio/index.html","embed":{"iframe":"\u003ciframe src=\"./plugin-studio/plugin-studio/studio/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"prayer-walk-planner","scriptUrl":"./prayer-walk-planner/prayer-walk-planner.js","output":"doxa-maps/prayer-walk-planner/prayer-walk-planner.js","integrity":"sha384-+XBRYgeeX8JLpdYcc+oGtkQf+Zgc2JkFK6/tlMBh5qghF9rNAJLk1lwVxWkU0cKx","elements":["prayer-walk-planner"],"profiles":[{"profile":"prayer-walk-planner","file":"prayer-walk-planner.vue","description":"A simple polygon-drawing tool for planning prayer-walking routes.","element":"prayer-walk-planner","type":"single","isMap":true,"iframeUrl":"./prayer-walk-planner/prayer-walk-planner/index.html","scriptUrl":"./prayer-walk-planner/prayer-walk-planner.js","embed":{"iframe":"\u003ciframe src=\"./prayer-walk-planner/prayer-walk-planner/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./prayer-walk-planner/prayer-walk-planner.js\" integrity=\"sha384-+XBRYgeeX8JLpdYcc+oGtkQf+Zgc2JkFK6/tlMBh5qghF9rNAJLk1lwVxWkU0cKx\" crossorigin=\"anonymous\">\u003c/script>\n\u003cprayer-walk-planner profile-config='{\"profile\":\"prayer-walk-planner\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/prayer-walk-planner>"}}]},{"bundle":"regions-dashboard","scriptUrl":"./regions-dashboard/regions-dashboard.js","output":"doxa-maps/regions-dashboard/regions-dashboard.js","integrity":"sha384-5QpUDIMXiWozhCtGWtXmkcbZPjuqaGMDKU5RrudhFcbMMWxfTI+OhnNbbhHAlYxv","elements":["regions-dashboard"],"composes":["regions-dashboard/regions-list","regions-dashboard/region-dashboards"],"profiles":[{"profile":"region-dashboards","file":"region-dashboards.vue","description":"The dashboard half of the Driver's 2-tab Regions element: given a region (or a","element":"regions-dashboard","type":"single","isMap":false,"iframeUrl":"./regions-dashboard/region-dashboards/index.html","scriptUrl":"./regions-dashboard/regions-dashboard.js","embed":{"iframe":"\u003ciframe src=\"./regions-dashboard/region-dashboards/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-5QpUDIMXiWozhCtGWtXmkcbZPjuqaGMDKU5RrudhFcbMMWxfTI+OhnNbbhHAlYxv\" crossorigin=\"anonymous\">\u003c/script>\n\u003cregions-dashboard profile-config='{\"profile\":\"region-dashboards\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/regions-dashboard>"}},{"profile":"regions-list","file":"regions-list.vue","description":"A refactor of DX-life's /regions index page (app/pages/regions/index.vue) into","element":"regions-dashboard","type":"single","isMap":false,"iframeUrl":"./regions-dashboard/regions-list/index.html","scriptUrl":"./regions-dashboard/regions-dashboard.js","embed":{"iframe":"\u003ciframe src=\"./regions-dashboard/regions-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-5QpUDIMXiWozhCtGWtXmkcbZPjuqaGMDKU5RrudhFcbMMWxfTI+OhnNbbhHAlYxv\" crossorigin=\"anonymous\">\u003c/script>\n\u003cregions-dashboard profile-config='{\"profile\":\"regions-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/regions-dashboard>"}},{"profile":"regions-mfe","file":"regions-mfe.vue","description":"The composite the Driver asked for: ONE element carrying the SELECT VIEW switcher","element":"regions-dashboard","type":"nested-elements-mfe","isMap":false,"iframeUrl":"./regions-dashboard/regions-mfe/index.html","scriptUrl":"./regions-dashboard/regions-dashboard.js","embed":{"iframe":"\u003ciframe src=\"./regions-dashboard/regions-mfe/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-5QpUDIMXiWozhCtGWtXmkcbZPjuqaGMDKU5RrudhFcbMMWxfTI+OhnNbbhHAlYxv\" crossorigin=\"anonymous\">\u003c/script>\n\u003cregions-dashboard profile-config='{\"profile\":\"regions-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/regions-dashboard>"}}]},{"bundle":"research-dashboard","scriptUrl":"./research-dashboard/research-dashboard.js","output":"doxa-maps/research-dashboard/research-dashboard.js","integrity":"sha384-sQL0nI6tuJD+PpCrg4TbNH5QwazCgMmk/oLwCH7QVbtoh4uYdoPhIPdokF1WLTgT","elements":["research-dashboard-map"],"profiles":[{"profile":"research-dashboard","file":"research-dashboard.vue","description":"Coordinated-Multiple-Views research dashboard for 10/40-window UPGs (live pray.doxa.life): docked facet rail + map-as-hero + linked table/charts, brushing-and-linking over one in-memory store.","element":"research-dashboard-map","type":"monolithic","isMap":true,"iframeUrl":"./research-dashboard/research-dashboard/index.html","scriptUrl":"./research-dashboard/research-dashboard.js","embed":{"iframe":"\u003ciframe src=\"./research-dashboard/research-dashboard/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./research-dashboard/research-dashboard.js\" integrity=\"sha384-sQL0nI6tuJD+PpCrg4TbNH5QwazCgMmk/oLwCH7QVbtoh4uYdoPhIPdokF1WLTgT\" crossorigin=\"anonymous\">\u003c/script>\n\u003cresearch-dashboard-map profile-config='{\"profile\":\"research-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/research-dashboard-map>"},"bundle":"research-dashboard"}]},{"bundle":"research-map-plus-grid","scriptUrl":"./research-map-plus-grid/research-map-plus-grid.js","output":"doxa-maps/research-map-plus-grid/research-map-plus-grid.js","integrity":"sha384-RD6XMWZvRaam/1XF9HAsXE+XutNjsboygfmxLMP9JJEnZ0LdIHqR+gYGWE1Y6Gzq","elements":["research-map-plus-grid"],"composes":["doxa-research-map","people-groups-grid"],"profiles":[{"profile":"research-map-plus-grid","file":"research-map-plus-grid.vue","description":"The monolithic 7-tab research map (cap-3) on top, the People Groups grid beneath,","element":"research-map-plus-grid","type":"nested-elements-mfe","isMap":false,"iframeUrl":"./research-map-plus-grid/research-map-plus-grid/index.html","scriptUrl":"./research-map-plus-grid/research-map-plus-grid.js","embed":{"iframe":"\u003ciframe src=\"./research-map-plus-grid/research-map-plus-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./research-map-plus-grid/research-map-plus-grid.js\" integrity=\"sha384-RD6XMWZvRaam/1XF9HAsXE+XutNjsboygfmxLMP9JJEnZ0LdIHqR+gYGWE1Y6Gzq\" crossorigin=\"anonymous\">\u003c/script>\n\u003cresearch-map-plus-grid profile-config='{\"profile\":\"research-map-plus-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/research-map-plus-grid>"},"instances":[{"id":"default","title":"default","apiBaseUrl":"","props":{"profile":"research-map-plus-grid"},"element":"research-map-plus-grid","iframeUrl":"./research-map-plus-grid/research-map-plus-grid/default/index.html","embed":{"iframe":"\u003ciframe src=\"./research-map-plus-grid/research-map-plus-grid/default/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"stack-demo","scriptUrl":"./stack-demo/stack-demo.js","output":"doxa-maps/stack-demo/stack-demo.js","integrity":"sha384-g9iK/zw5CvcyhNWdWHe8n2S/O22tv3PhQhoCe45ArdX5dL2YRBBRl/hFjktel1UU","elements":["stack-demo"],"composes":["research-dashboard-map","people-groups-grid"],"profiles":[{"profile":"stack-demo","file":"stack-demo.vue","description":"Groups TWO independent elements TOP-TO-BOTTOM so you can embed the pair on a page and","element":"stack-demo","type":"nested-elements-mfe","isMap":false,"iframeUrl":"./stack-demo/stack-demo/index.html","scriptUrl":"./stack-demo/stack-demo.js","embed":{"iframe":"\u003ciframe src=\"./stack-demo/stack-demo/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./stack-demo/stack-demo.js\" integrity=\"sha384-g9iK/zw5CvcyhNWdWHe8n2S/O22tv3PhQhoCe45ArdX5dL2YRBBRl/hFjktel1UU\" crossorigin=\"anonymous\">\u003c/script>\n\u003cstack-demo profile-config='{\"profile\":\"stack-demo\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/stack-demo>"},"instances":[{"id":"pair","title":"pair","apiBaseUrl":"","props":{"profile":"stack-demo"},"element":"stack-demo","iframeUrl":"./stack-demo/stack-demo/pair/index.html","embed":{"iframe":"\u003ciframe src=\"./stack-demo/stack-demo/pair/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"template-bundle","scriptUrl":"./template-bundle/template-bundle.js","output":"doxa-maps/template-bundle/template-bundle.js","integrity":"sha384-6BLnoGxxah2nBlYZe3+9dY5xquKg1exSyIUNazvQz7/0sJM4ROA4aHjRGjNMQL28","elements":["template-bundle"],"profiles":[{"profile":"template-map-a","file":"template-map-a.vue","description":"Minimal example profile A — a colored placeholder, no Mapbox or data.","element":"template-bundle","type":"single","isMap":false,"iframeUrl":"./template-bundle/template-map-a/index.html","scriptUrl":"./template-bundle/template-bundle.js","embed":{"iframe":"\u003ciframe src=\"./template-bundle/template-map-a/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./template-bundle/template-bundle.js\" integrity=\"sha384-6BLnoGxxah2nBlYZe3+9dY5xquKg1exSyIUNazvQz7/0sJM4ROA4aHjRGjNMQL28\" crossorigin=\"anonymous\">\u003c/script>\n\u003ctemplate-bundle profile-config='{\"profile\":\"template-map-a\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/template-bundle>"},"bundle":"template-bundle"},{"profile":"template-map-b","file":"template-map-b.vue","description":"Minimal example profile B — a second profile in the same bundle.","element":"template-bundle","type":"single","isMap":false,"iframeUrl":"./template-bundle/template-map-b/index.html","scriptUrl":"./template-bundle/template-bundle.js","embed":{"iframe":"\u003ciframe src=\"./template-bundle/template-map-b/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./template-bundle/template-bundle.js\" integrity=\"sha384-6BLnoGxxah2nBlYZe3+9dY5xquKg1exSyIUNazvQz7/0sJM4ROA4aHjRGjNMQL28\" crossorigin=\"anonymous\">\u003c/script>\n\u003ctemplate-bundle profile-config='{\"profile\":\"template-map-b\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/template-bundle>"},"bundle":"template-bundle"}]}]}; \n\n" + "script": "\n\n" } }, { @@ -131,7 +131,7 @@ "scriptUrl": "./cities-internet/cities-internet.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } }, { @@ -145,7 +145,7 @@ "scriptUrl": "./cities-internet/cities-internet.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } } ] @@ -556,7 +556,7 @@ "bundle": "gospel-resources", "scriptUrl": "./gospel-resources/gospel-resources.js", "output": "doxa-maps/gospel-resources/gospel-resources.js", - "integrity": "sha384-ghGJCWgzNE6CZFo6Txri3COKSOwM+LmqEj4p6tBo9B/eUoczfRH9p9Ogo+mT+4ci", + "integrity": "sha384-DJOPWgxv0aJTTqWf05/FWiCVqQURbKIlqPP+rlyMLFZmYm8UzzQBrMACWHOPDj5t", "elements": [ "gospel-resources-map" ], @@ -572,7 +572,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } }, { @@ -586,7 +586,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } }, { @@ -600,7 +600,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } }, { @@ -614,7 +614,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } } ]