diff --git a/documentation/README-SECTION-3-cli-commands.md b/documentation/README-SECTION-3-cli-commands.md index b3525873f..0f0cc1f64 100644 --- a/documentation/README-SECTION-3-cli-commands.md +++ b/documentation/README-SECTION-3-cli-commands.md @@ -49,7 +49,7 @@ The scripts these commands are grounded in (from this branch's `package.json`): "build": "bash internal/build-lock.sh", "build:unlocked": "bun run gates:pre && bun run library-index && bun run check:library-index && bun run clean && bun run token && bun run build:bundles && bun run tree && bun run gates:post && bun run gallery", "gates:pre": "node internal/run-parallel.mjs --label=pre -- check:template-literal check:mjs-parse check:sfc-parse check:tab-radius check:synced-css check:wp-embed check:doc-scripts", -"gates:post": "node internal/run-parallel.mjs --label=post -- check:drop check:parse verify check:sri check:public-hygiene check:label-joins check:facet-cascade check:facet-one-field check:heartbeat check:kpi-unit check:composite-reg check:descriptions check:no-abs-paths check:no-codename check:dep-names check:composite-srcs check:embed-targets check:nested-token check:i18n-parity check:tabs-localized check:packets-all check:packet-strings-parity check:zone-census check:share-policy check:library-index check:csv-shape check:capability-citations check:catalog-identity check:no-orphan-gates check:quoted-scripts check:done-evidence check:script-flags check:backlog-status check:capability-exemplars check:packet-fixture check:packet-browser check:provider-switch check:locale-reachable check:url-resolver check:manifest-covers check:one-palette check:legend-source check:backlog-refs check:composite-embed-knobs check:composite-locale-leaks check:linked-vocabulary", +"gates:post": "node internal/run-parallel.mjs --label=post -- check:drop check:parse verify check:sri check:public-hygiene check:label-joins check:facet-cascade check:facet-one-field check:heartbeat check:kpi-unit check:composite-reg check:descriptions check:no-abs-paths check:no-codename check:dep-names check:composite-srcs check:embed-targets check:nested-token check:i18n-parity check:tabs-localized check:packets-all check:packet-strings-parity check:zone-census check:share-policy check:library-index check:csv-shape check:capability-citations check:catalog-identity check:no-orphan-gates check:quoted-scripts check:done-evidence check:script-flags check:backlog-status check:capability-exemplars check:packet-fixture check:packet-browser check:provider-switch check:locale-reachable check:url-resolver check:manifest-covers check:one-palette check:legend-source check:backlog-refs check:clustering-modes check:composite-embed-knobs check:composite-locale-leaks check:linked-vocabulary", "build:bundles": "node internal/run-parallel.mjs --bundles", // the 22 vite builds, 4 at a time "preview": "bun x vite preview", "serve": "node internal/serve-strict.mjs", // 404s a directory, like production diff --git a/internal/_serves-this-tree.mjs b/internal/_serves-this-tree.mjs index 34133c4eb..8d4bc86e1 100644 --- a/internal/_serves-this-tree.mjs +++ b/internal/_serves-this-tree.mjs @@ -22,8 +22,9 @@ import { readFileSync, existsSync, realpathSync } from 'node:fs' import { createHash } from 'node:crypto' import { resolve, dirname, join } from 'node:path' +import { TREE_NAME, TREE_NAME_RE } from './_tree-name.mjs' -const MANIFEST = 'doxa-maps/manifest.json' +const MANIFEST = `${TREE_NAME}/manifest.json` /** * @param {string} base e.g. http://127.0.0.1:4173 (a trailing /doxa-maps/ is tolerated) @@ -37,7 +38,7 @@ export async function servesThisTree(base, repo) { } catch { return { ok: false, why: `no local public/${MANIFEST} to compare against — build the tree first` } } - const root = String(base).replace(/\/+$/, '').replace(/\/doxa-maps$/, '') + const root = String(base).replace(/\/+$/, '').replace(new RegExp(`/${TREE_NAME_RE}$`), '') const r = await fetch(`${root}/${MANIFEST}`).catch(() => null) if (!r || !r.ok) return { ok: false, why: `nothing serving ${MANIFEST} at ${root}` } const served = createHash('sha256').update(Buffer.from(await r.arrayBuffer())).digest('hex') diff --git a/internal/_tree-name.mjs b/internal/_tree-name.mjs new file mode 100644 index 000000000..eeefde608 --- /dev/null +++ b/internal/_tree-name.mjs @@ -0,0 +1,45 @@ +/** + * _tree-name.mjs — the ONE place the output tree's name is read. + * + * The built tree lives at public// and every embeddable URL carries it + * (…////index.html). Its name has always been configurable — + * vite.doxa-maps-build-config.json `name` — but a census on 2026-09-25 found 61 tooling files + * that ignored the knob and hardcoded 'doxa-maps' (181 literals), so changing the config renamed + * the build while those gates kept reading the old folder. Every tool now imports TREE_NAME from + * here, which makes renaming the tree a one-line config change (see + * _qa-cycle/03-deployment-cycle/qa-loops/RENAME-IMPACT-dx.md, mechanism A). + * + * import { TREE_NAME, BUILD_CONFIG_FILE } from './_tree-name.mjs' + * TREE=$(node internal/_tree-name.mjs) # from a shell script + * + * The fallback, used only when the config is missing or has no name, is the historical name, + * so a checkout without the config behaves exactly as before. + */ +import { readFileSync } from 'node:fs' +import { resolve, dirname } from 'node:path' +import { fileURLToPath } from 'node:url' + +const ROOT = resolve(dirname(fileURLToPath(import.meta.url)), '..') +export const BUILD_CONFIG_FILE = resolve(ROOT, 'vite.doxa-maps-build-config.json') +const FALLBACK = 'doxa-maps' + +function read() { + let name = '' + try { + const cfg = JSON.parse(readFileSync(BUILD_CONFIG_FILE, 'utf8')) + if (cfg && typeof cfg.name === 'string') name = cfg.name.trim() + } catch { /* no config: the fallback */ } + if (!name) return FALLBACK + // A tree name is ONE path segment that also appears in public URLs: refuse anything that could + // escape public/ or need escaping in a URL, rather than build into a surprising place. + if (!/^[a-z0-9][a-z0-9._-]*$/i.test(name) || name.includes('..')) { + throw new Error(`[_tree-name] build config "name" must be a single URL-safe path segment, got ${JSON.stringify(name)}`) + } + return name +} + +export const TREE_NAME = read() +// The name escaped for use inside a RegExp source (a '.' in a future name must not match any char). +export const TREE_NAME_RE = TREE_NAME.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') + +if (process.argv[1] && resolve(process.argv[1]) === fileURLToPath(import.meta.url)) process.stdout.write(TREE_NAME + '\n') diff --git a/internal/acceptance/interop-harness.mjs b/internal/acceptance/interop-harness.mjs index 91ce100e4..71fec1c68 100644 --- a/internal/acceptance/interop-harness.mjs +++ b/internal/acceptance/interop-harness.mjs @@ -68,6 +68,7 @@ import { setTimeout as sleep } from 'node:timers/promises' import { fileURLToPath } from 'node:url' import { dirname, resolve } from 'node:path' import { execFileSync } from 'node:child_process' +import { TREE_NAME } from '../_tree-name.mjs' const __dirname = fileURLToPath(new URL('.', import.meta.url)) const ROOT = resolve(__dirname, '..', '..') @@ -178,7 +179,7 @@ async function readGrid(page) { async function runDesktop(browser) { const PAIR = 'desktop dashboard-plus-grid' const page = await browser.newPage({ viewport: { width: 1600, height: 1000 } }) - const url = `${BASE}/doxa-maps/dashboard-plus-grid/dashboard-plus-grid/index.html` + const url = `${BASE}/${TREE_NAME}/dashboard-plus-grid/dashboard-plus-grid/index.html` console.log(`\n=== ${PAIR} — ${url} ===`) try { await page.goto(url, { waitUntil: 'load', timeout: 60000 }) @@ -344,7 +345,7 @@ async function runDesktop(browser) { async function runMobile(browser) { const PAIR = 'mobile research-map-plus-grid' const page = await browser.newPage({ viewport: { width: 420, height: 900 } }) - const url = `${BASE}/doxa-maps/research-map-plus-grid/research-map-plus-grid/index.html` + const url = `${BASE}/${TREE_NAME}/research-map-plus-grid/research-map-plus-grid/index.html` console.log(`\n=== ${PAIR} — ${url} ===`) try { await page.goto(url, { waitUntil: 'load', timeout: 60000 }) diff --git a/internal/atomic-public-swap.sh b/internal/atomic-public-swap.sh index 65c976448..b99331145 100755 --- a/internal/atomic-public-swap.sh +++ b/internal/atomic-public-swap.sh @@ -34,11 +34,16 @@ DRY_RUN="${DRY_RUN:-0}" die() { echo "❌ atomic-public-swap: $*" >&2; exit 1; } -[ -n "$STAGE_DIR" ] || die "usage: atomic-public-swap.sh (dir holding a built doxa-maps/ + index.html)" +# The tree's name comes from the build config (internal/_tree-name.mjs), never a literal: this script +# renames live folders, so it must fail rather than swap the wrong one if the name cannot be read. +TREE="$(node "$(dirname "$0")/_tree-name.mjs")" || die "could not read the tree name (internal/_tree-name.mjs)" +[ -n "$TREE" ] || die "empty tree name from internal/_tree-name.mjs" + +[ -n "$STAGE_DIR" ] || die "usage: atomic-public-swap.sh (dir holding a built $TREE/ + index.html)" [ -d "$STAGE_DIR" ] || die "STAGE_DIR '$STAGE_DIR' is not a directory" [ -d "$PUBLIC_DIR" ] || die "PUBLIC_DIR '$PUBLIC_DIR' is not a directory (run from the studio root)" -STAGE_TREE="$STAGE_DIR/doxa-maps" +STAGE_TREE="$STAGE_DIR/$TREE" STAGE_INDEX="$STAGE_DIR/index.html" # --- GATE: the stage must be a COMPLETE, verified tree before we touch the live web-root --------------------- @@ -81,12 +86,12 @@ stage_dev=$(stat -c '%d' "$STAGE_DIR") pub_dev=$(stat -c '%d' "$PUBLIC_DIR") [ "$stage_dev" = "$pub_dev" ] || die "STAGE_DIR and PUBLIC_DIR are on different filesystems ($stage_dev != $pub_dev) — rename() would not be atomic. Stage under the same volume as public/." -OLD_TREE="$PUBLIC_DIR/doxa-maps.old.$$" +OLD_TREE="$PUBLIC_DIR/$TREE.old.$$" if [ "$DRY_RUN" = "1" ]; then echo "DRY_RUN — plan (no changes):" - echo " 1. mv $PUBLIC_DIR/doxa-maps -> $OLD_TREE" - echo " 2. mv $STAGE_TREE -> $PUBLIC_DIR/doxa-maps" + echo " 1. mv $PUBLIC_DIR/$TREE -> $OLD_TREE" + echo " 2. mv $STAGE_TREE -> $PUBLIC_DIR/$TREE" echo " 3. cp $STAGE_INDEX -> $PUBLIC_DIR/index.html" echo " 4. rm -rf $OLD_TREE" echo " (NEVER touched: $PUBLIC_DIR/assets/ $PUBLIC_DIR/.gitignore $PUBLIC_DIR/.build.lock)" @@ -94,11 +99,11 @@ if [ "$DRY_RUN" = "1" ]; then fi # --- THE SWAP (scoped; rename-based; public/ itself and the lock never move) --------------------------------- -if [ -d "$PUBLIC_DIR/doxa-maps" ]; then - mv "$PUBLIC_DIR/doxa-maps" "$OLD_TREE" # 1. instant; old tree still fully valid under new name +if [ -d "$PUBLIC_DIR/$TREE" ]; then + mv "$PUBLIC_DIR/$TREE" "$OLD_TREE" # 1. instant; old tree still fully valid under new name fi -mv "$STAGE_TREE" "$PUBLIC_DIR/doxa-maps" # 2. instant; new tree (built+verified) becomes live +mv "$STAGE_TREE" "$PUBLIC_DIR/$TREE" # 2. instant; new tree (built+verified) becomes live cp "$STAGE_INDEX" "$PUBLIC_DIR/index.html" # 3. fresh root gallery page rm -rf "$OLD_TREE" # 4. drop the superseded tree -echo "🔀 atomic swap complete — $PUBLIC_DIR/doxa-maps is the freshly-built tree; assets/ + .build.lock untouched." +echo "🔀 atomic swap complete — $PUBLIC_DIR/$TREE is the freshly-built tree; assets/ + .build.lock untouched." diff --git a/internal/browser-slot.sh b/internal/browser-slot.sh index bb3efd0e5..3f9738ec3 100755 --- a/internal/browser-slot.sh +++ b/internal/browser-slot.sh @@ -34,6 +34,25 @@ BUSY=75 MAX_HOLD="${BROWSER_MAX_HOLD:-900}" KILL_AFTER="${BROWSER_KILL_AFTER:-15}" +# ★ A GATE THAT IS LEGITIMATELY LONG DECLARES ITS OWN LIMIT, in its header: @browser-slot-max-hold 2700 +# check:host-locale-contract loads every leaf twice and hit the 900 s default three times on full +# runs (NOT MEASURED, not a verdict). An env prefix in its package.json script could not fix that — +# this wrapper reads its limit before the script's own environment exists — so the gate carries the +# number itself and it holds however the gate is invoked (node , or bun run `) }).listen(HP, 'localhost') await new Promise(r => setTimeout(r, 800)) @@ -44,10 +45,10 @@ await new Promise(r => setTimeout(r, 800)) // pass or a fail — the same code the shared browser locks use for "busy, re-run later". { const { readFileSync } = await import('node:fs') - const disk = readFileSync(resolve(ROOT, 'public/doxa-maps/manifest.json'), 'utf8') + const disk = readFileSync(resolve(ROOT, `public/${TREE_NAME}/manifest.json`), 'utf8') let served = '' for (let i = 0; i < 20 && !served; i++) { - try { const r = await fetch(`http://127.0.0.1:${TP}/doxa-maps/manifest.json`); if (r.ok) served = await r.text() } catch { /* not up yet */ } + try { const r = await fetch(`http://127.0.0.1:${TP}/${TREE_NAME}/manifest.json`); if (r.ok) served = await r.text() } catch { /* not up yet */ } if (!served) await new Promise(r => setTimeout(r, 300)) } if (served !== disk) { diff --git a/internal/check-profile-descriptions.mjs b/internal/check-profile-descriptions.mjs index 872cc978c..d715ee3e0 100644 --- a/internal/check-profile-descriptions.mjs +++ b/internal/check-profile-descriptions.mjs @@ -34,9 +34,10 @@ import { readFileSync, existsSync } from 'node:fs' import { resolve, dirname, join } from 'node:path' import { fileURLToPath } from 'node:url' +import { TREE_NAME } from './_tree-name.mjs' const ROOT = resolve(dirname(fileURLToPath(import.meta.url)), '..') -const MANIFEST = join(ROOT, 'public', 'doxa-maps', 'manifest.json') +const MANIFEST = join(ROOT, 'public', TREE_NAME, 'manifest.json') // A description shorter than this is a placeholder, not an explanation. Calibrated against the // REAL corpus rather than a guess (measured 2026-09-22): shortest genuine description 62 chars, @@ -52,7 +53,7 @@ const MIN_CHARS = 25 const MIN_EXPECTED_PROFILES = 20 if (!existsSync(MANIFEST)) { - console.error('PROFILE-DESCRIPTIONS: FAIL — no manifest.json at public/doxa-maps/.') + console.error(`PROFILE-DESCRIPTIONS: FAIL — no manifest.json at public/${TREE_NAME}/.`) console.error(' This gate reads the BUILT manifest (the artifact consumers actually read).') console.error(' Run `bun run build` first; an absent manifest is a failure, not a pass.') process.exit(1) diff --git a/internal/check-provider-switch.mjs b/internal/check-provider-switch.mjs index ff023e0de..686252160 100644 --- a/internal/check-provider-switch.mjs +++ b/internal/check-provider-switch.mjs @@ -16,6 +16,7 @@ import { dirname, resolve } from 'node:path' import { fileURLToPath } from 'node:url' import { chromium } from 'playwright' import { servesThisTree, serveThisTree } from './_serves-this-tree.mjs' +import { TREE_NAME } from './_tree-name.mjs' const REPO = resolve(dirname(fileURLToPath(import.meta.url)), '..') @@ -30,7 +31,7 @@ const REPO = resolve(dirname(fileURLToPath(import.meta.url)), '..') // executed shape check:packets-all had. Default to the upg-100 leaf (the profile this // gate was written for) and SKIP with a named verdict when nothing is served there. const DEFAULT_LEAF = (process.env.BASE_URL || 'http://127.0.0.1:4173') - + '/doxa-maps/my-upg-100-list/upg-100-list/index.html' + + `/${TREE_NAME}/my-upg-100-list/upg-100-list/index.html` let LEAF = process.argv[2] || DEFAULT_LEAF let OWN_SERVER = null { diff --git a/internal/check-published-matches-build.mjs b/internal/check-published-matches-build.mjs index 9b2fa335a..7bc873b7b 100644 --- a/internal/check-published-matches-build.mjs +++ b/internal/check-published-matches-build.mjs @@ -37,12 +37,13 @@ import { readFileSync, existsSync, statSync } from 'node:fs' import { createHash } from 'node:crypto' import { resolve, dirname, join } from 'node:path' import { fileURLToPath } from 'node:url' +import { TREE_NAME } from './_tree-name.mjs' const HERE = dirname(fileURLToPath(import.meta.url)) const REPO = process.env.DOXA_REPO || resolve(HERE, '..') const PUBLISHED_BASE = (process.env.PUBLISHED_BASE - || 'https://nuxtbase.app/plugin-assets/doxa-maps').replace(/\/$/, '') -const TREE = resolve(REPO, 'public/doxa-maps') + || `https://nuxtbase.app/plugin-assets/${TREE_NAME}`).replace(/\/$/, '') +const TREE = resolve(REPO, `public/${TREE_NAME}`) const MANIFEST = join(TREE, 'manifest.json') if (!existsSync(MANIFEST)) { @@ -133,7 +134,7 @@ if (stale.length) { console.error(' "red dot" pin hint) were all fixed in main and all still visible live, and each') console.error(' one read as a regression against a card marked done.') console.error('\n FIX: publish. That is a COORDINATOR action — deploy:dev runs a full build whose') - console.error(' first step deletes public/doxa-maps/ and tears the tree out from under every') + console.error(` first step deletes public/${TREE_NAME}/ and tears the tree out from under every`) console.error(' other agent, which is why the build guard refuses it without BUILD_ALLOW=1.') process.exit(1) } diff --git a/internal/check-research-gallery-embed.mjs b/internal/check-research-gallery-embed.mjs index ca728a89d..e609563dc 100644 --- a/internal/check-research-gallery-embed.mjs +++ b/internal/check-research-gallery-embed.mjs @@ -40,6 +40,7 @@ import { spawn } from 'node:child_process' import { existsSync } from 'node:fs' import { resolve, dirname } from 'node:path' import { fileURLToPath } from 'node:url' +import { TREE_NAME } from './_tree-name.mjs' const ROOT = resolve(dirname(fileURLToPath(import.meta.url)), '..') const argv = process.argv.slice(2) @@ -101,10 +102,10 @@ const MAPBOX_KNOWN = { const freePort = () => new Promise(ok => { const s = createServer().listen(0, '127.0.0.1', () => { const p = s.address().port; s.close(() => ok(p)) }) }) const TREE_PORT = await freePort() const HOST_PORT = await freePort() -const TREE = `http://127.0.0.1:${TREE_PORT}/doxa-maps` +const TREE = `http://127.0.0.1:${TREE_PORT}/${TREE_NAME}` -if (!existsSync(resolve(ROOT, 'public/doxa-maps/doxa-maps-spa/doxa-maps-spa.js'))) { - console.log('SKIP check-research-gallery-embed: no built gallery at public/doxa-maps/doxa-maps-spa/') +if (!existsSync(resolve(ROOT, `public/${TREE_NAME}/doxa-maps-spa/doxa-maps-spa.js`))) { + console.log(`SKIP check-research-gallery-embed: no built gallery at public/${TREE_NAME}/doxa-maps-spa/`) process.exit(2) } let chromium @@ -139,10 +140,10 @@ await new Promise(r => setTimeout(r, 800)) // pass or a fail — the same code the shared browser locks use for "busy, re-run later". { const { readFileSync } = await import('node:fs') - const disk = readFileSync(resolve(ROOT, 'public/doxa-maps/manifest.json'), 'utf8') + const disk = readFileSync(resolve(ROOT, `public/${TREE_NAME}/manifest.json`), 'utf8') let served = '' for (let i = 0; i < 20 && !served; i++) { - try { const r = await fetch(`http://127.0.0.1:${TREE_PORT}/doxa-maps/manifest.json`); if (r.ok) served = await r.text() } catch { /* not up yet */ } + try { const r = await fetch(`http://127.0.0.1:${TREE_PORT}/${TREE_NAME}/manifest.json`); if (r.ok) served = await r.text() } catch { /* not up yet */ } if (!served) await new Promise(r => setTimeout(r, 300)) } if (served !== disk) { diff --git a/internal/check-share-policy.mjs b/internal/check-share-policy.mjs index 8b6c8a5a5..951d998e9 100644 --- a/internal/check-share-policy.mjs +++ b/internal/check-share-policy.mjs @@ -43,6 +43,7 @@ import { readFileSync, existsSync, readdirSync } from 'node:fs' import { resolve, join, dirname } from 'node:path' import { fileURLToPath } from 'node:url' +import { TREE_NAME } from './_tree-name.mjs' // Same fix as check-zone-census.mjs, same reason. DOXA_REPO still wins; only the FALLBACK moved // off an absolute path into one author's worktree. check:no-abs-paths rejects those outright — "a @@ -80,7 +81,7 @@ const POLICY = { } const isMap = (src) => /mapboxgl|maplibregl|useMapInstance/.test(src) -const manifest = JSON.parse(readFileSync(join(REPO, 'public', 'doxa-maps', 'manifest.json'), 'utf8')) +const manifest = JSON.parse(readFileSync(join(REPO, 'public', TREE_NAME, 'manifest.json'), 'utf8')) const published = new Set(manifest.bundles.map((b) => b.bundle)) const fails = [] diff --git a/internal/check-shared-component-reached-bundles.mjs b/internal/check-shared-component-reached-bundles.mjs index ae956d6fb..e1a2a158f 100644 --- a/internal/check-shared-component-reached-bundles.mjs +++ b/internal/check-shared-component-reached-bundles.mjs @@ -35,10 +35,11 @@ import { readFileSync, existsSync, readdirSync, statSync } from 'node:fs' import { resolve, dirname, join } from 'node:path' import { fileURLToPath } from 'node:url' +import { TREE_NAME } from './_tree-name.mjs' const HERE = dirname(fileURLToPath(import.meta.url)) const REPO = process.env.DOXA_REPO || resolve(HERE, '..') -const TREE = resolve(REPO, 'public/doxa-maps') +const TREE = resolve(REPO, `public/${TREE_NAME}`) // Each entry: a change that landed in a SHARED component, and a string that proves a built bundle // contains it. `source` is where the marker must also still exist — if it does not, the marker is diff --git a/internal/check-shot-freshness.mjs b/internal/check-shot-freshness.mjs index 3fb100eab..c727cffb0 100644 --- a/internal/check-shot-freshness.mjs +++ b/internal/check-shot-freshness.mjs @@ -46,11 +46,12 @@ import { execFileSync } from 'node:child_process' import { createHash } from 'node:crypto' import { resolve, dirname, join } from 'node:path' import { fileURLToPath } from 'node:url' +import { TREE_NAME, TREE_NAME_RE } from './_tree-name.mjs' const ROOT = resolve(dirname(fileURLToPath(import.meta.url)), '..') const SHOTS_SRC = join(ROOT, 'internal', 'readme-shots.mjs') const OUT = join(ROOT, 'documentation', 'readme-images') -const BUILT = join(ROOT, 'public', 'doxa-maps') +const BUILT = join(ROOT, 'public', TREE_NAME) if (!existsSync(SHOTS_SRC) || !existsSync(OUT)) { console.log('SHOT-FRESHNESS: SKIP — readme-shots.mjs or documentation/readme-images/ not present.') @@ -64,7 +65,7 @@ const recorded = existsSync(SHOT_BUNDLES) ? JSON.parse(readFileSync(SHOT_BUNDLES const git = (...a) => execFileSync('git', ['-C', ROOT, ...a], { encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'] }) let dirty = null try { - dirty = new Set(git('status', '--porcelain', '--', 'public/doxa-maps', 'documentation/readme-images') + dirty = new Set(git('status', '--porcelain', '--', `public/${TREE_NAME}`, 'documentation/readme-images') .split('\n').filter(Boolean).map((l) => resolve(ROOT, l.slice(3).replace(/^"|"$/g, '')))) } catch { /* not a git checkout */ } function stamp(file) { @@ -88,8 +89,8 @@ for (const { name, path } of shots) { const png = join(OUT, name + '.png') if (!existsSync(png)) { missing.push(name); continue } - const m = path.match(/^\/doxa-maps\/([^/]+)\//) - if (!m) { skipped.push(`${name} (path ${path} is not a /doxa-maps/ leaf)`); continue } + const m = path.match(new RegExp(`^/${TREE_NAME_RE}/([^/]+)/`)) + if (!m) { skipped.push(`${name} (path ${path} is not a /${TREE_NAME}/ leaf)`); continue } const bundle = join(BUILT, m[1], `${m[1]}.js`) if (!existsSync(bundle)) { skipped.push(`${name} (bundle ${m[1]} not built)`); continue } diff --git a/internal/check-spa-tab-order.mjs b/internal/check-spa-tab-order.mjs index aef0c7a91..88cf72228 100644 --- a/internal/check-spa-tab-order.mjs +++ b/internal/check-spa-tab-order.mjs @@ -35,9 +35,10 @@ import { chromium } from 'playwright' import { requireDevServesThisCheckout as __devGuard, requireThisTree as __treeGuard } from './_serves-this-tree.mjs' import { fileURLToPath as __f2p } from 'node:url' import { dirname as __dn, resolve as __rs } from 'node:path' +import { TREE_NAME } from './_tree-name.mjs' const __ROOT = __rs(__dn(__f2p(import.meta.url)), '..') -const BASE = process.env.BASE_URL || 'http://127.0.0.1:4173/doxa-maps' +const BASE = process.env.BASE_URL || `http://127.0.0.1:4173/${TREE_NAME}` // Measure THIS checkout, or measure nothing (exit 75 = NOT MEASURED; see _serves-this-tree.mjs). await __treeGuard(BASE, __ROOT, 'SPA-TAB-ORDER') diff --git a/internal/check-staging-forwards-lang.mjs b/internal/check-staging-forwards-lang.mjs index 6995becac..b3d71ffce 100644 --- a/internal/check-staging-forwards-lang.mjs +++ b/internal/check-staging-forwards-lang.mjs @@ -24,6 +24,7 @@ import { createServer } from 'node:http' import { readFileSync } from 'node:fs' import { resolve, dirname } from 'node:path' import { fileURLToPath } from 'node:url' +import { TREE_NAME } from './_tree-name.mjs' const ROOT = resolve(dirname(fileURLToPath(import.meta.url)), '..') const argv = process.argv.slice(2) @@ -36,13 +37,13 @@ const port = await new Promise((ok) => { const s = createServer().listen(0, '127 const srv = spawn(process.execPath, [resolve(ROOT, 'internal/serve-strict.mjs'), '--port', String(port), '--directory', DIR], { stdio: 'ignore' }) const stop = () => { try { srv.kill() } catch { /* already gone */ } } let up = false -for (let i = 0; i < 40 && !up; i++) { await new Promise((r) => setTimeout(r, 150)); up = await fetch(`http://127.0.0.1:${port}/doxa-maps/index.html`).then((r) => r.ok).catch(() => false) } +for (let i = 0; i < 40 && !up; i++) { await new Promise((r) => setTimeout(r, 150)); up = await fetch(`http://127.0.0.1:${port}/${TREE_NAME}/index.html`).then((r) => r.ok).catch(() => false) } if (!up) { stop(); console.log(`STAGING-LANG: NOT MEASURED — could not serve ${DIR}`); process.exit(75) } const browser = await chromium.launch({ args: ['--use-gl=swiftshader', '--enable-webgl', '--ignore-gpu-blocklist'] }) const done = async (code, msg) => { console.log(msg); await browser.close(); stop(); process.exit(code) } const page = await browser.newPage({ viewport: { width: 1400, height: 900 } }) -await page.goto(`http://127.0.0.1:${port}/doxa-maps/index.html?lang=ar`, { waitUntil: 'load' }) +await page.goto(`http://127.0.0.1:${port}/${TREE_NAME}/index.html?lang=ar`, { waitUntil: 'load' }) const node = page.locator(`.node[data-key="${KEY}"]`) if (!(await node.count())) await done(75, `STAGING-LANG: NOT MEASURED — no ${KEY} node on the staging page`) await node.first().click() diff --git a/internal/check-upg-map-data-painted.mjs b/internal/check-upg-map-data-painted.mjs index 325b4273d..feeb82523 100644 --- a/internal/check-upg-map-data-painted.mjs +++ b/internal/check-upg-map-data-painted.mjs @@ -35,10 +35,11 @@ import { chromium } from 'playwright' import { resolve, dirname } from 'node:path' import { fileURLToPath } from 'node:url' import { servesThisTree } from './_serves-this-tree.mjs' +import { TREE_NAME } from './_tree-name.mjs' const ROOT = resolve(dirname(fileURLToPath(import.meta.url)), '..') -const BASE = process.env.BASE || 'http://127.0.0.1:4173/doxa-maps' +const BASE = process.env.BASE || `http://127.0.0.1:4173/${TREE_NAME}` const DEFAULT = [ 'my-upg-100-list/upg-100-list/index.html', 'my-upg-100-list/upg-100-mfe/index.html', @@ -62,7 +63,7 @@ if (!reachable) { // "SKIP — nothing served at /tmp/doxa-maps-browser-gate.lock/…" (the slot had overwritten BASE) // and EXITED 0, so a wave counted a gate that measured nothing as green. console.log(`UPG-MAP-DATA: NOT MEASURED — nothing served at ${urls[0]}.`) - console.log(' Serve THIS checkout (internal/serve-strict.mjs on your own port) and pass BASE=http://127.0.0.1:/doxa-maps') + console.log(` Serve THIS checkout (internal/serve-strict.mjs on your own port) and pass BASE=http://127.0.0.1:/${TREE_NAME}`) process.exit(75) } @@ -76,7 +77,7 @@ if (!reachable) { // ⚠ NOT MEASURED, exit 75 — the repo's EX_TEMPFAIL for "not measured" (a9550858), which the wave // runner reports as ⊘. It was exit 2 here, a code nothing else in the repo reads that way. // This check is also what makes the :4173 default safe: another agent's tree there is refused. -const TREE_BASE = String(urls[0]).split('/doxa-maps/')[0] +const TREE_BASE = String(urls[0]).split(`/${TREE_NAME}/`)[0] const treeCheck = await servesThisTree(TREE_BASE, ROOT) if (!treeCheck.ok) { console.error('UPG-MAP-DATA: NOT MEASURED — the server is not serving this checkout.') @@ -125,7 +126,7 @@ try { console.log('UPG-MAP-DATA') const fails = [] for (const r of results) { - const name = r.url.split('/doxa-maps/')[1] || r.url + const name = r.url.split(`/${TREE_NAME}/`)[1] || r.url if (r.error) { fails.push(`${name}: navigation failed — ${r.error}`); console.log(` ${name} — ERROR`); continue } if (!r.text) { // A MISSING STATUS LINE IS A FAILURE, NOT A SKIP. If the element never rendered its own diff --git a/internal/clean.mjs b/internal/clean.mjs index 01f0ee67f..2ae4edd02 100644 --- a/internal/clean.mjs +++ b/internal/clean.mjs @@ -10,16 +10,17 @@ import { readFileSync, rmSync, mkdirSync } from 'node:fs' import { dirname, resolve } from 'node:path' import { fileURLToPath } from 'node:url' +import { TREE_NAME } from './_tree-name.mjs' const __dirname = dirname(fileURLToPath(import.meta.url)) function config() { try { const cfg = JSON.parse(readFileSync(resolve(__dirname, '..', 'vite.doxa-maps-build-config.json'), 'utf8')) - const name = (typeof cfg?.name === 'string' && cfg.name.trim()) ? cfg.name.trim() : 'doxa-maps' + const name = (typeof cfg?.name === 'string' && cfg.name.trim()) ? cfg.name.trim() : TREE_NAME const paths = Array.isArray(cfg?.paths) ? cfg.paths.filter(p => typeof p === 'string' && p.trim()) : [] return { name, paths } - } catch { return { name: 'doxa-maps', paths: [] } } + } catch { return { name: TREE_NAME, paths: [] } } } const { name, paths } = config() diff --git a/internal/drop-portability-check.mjs b/internal/drop-portability-check.mjs index 7fa428d6d..fdf75b055 100644 --- a/internal/drop-portability-check.mjs +++ b/internal/drop-portability-check.mjs @@ -18,13 +18,14 @@ import { readFileSync, readdirSync, statSync, existsSync } from 'node:fs'; import { join, relative, dirname, resolve } from 'node:path'; import { fileURLToPath } from 'node:url'; +import { TREE_NAME } from './_tree-name.mjs' const here = dirname(fileURLToPath(import.meta.url)); const bundlerRoot = resolve(here, '..'); let treeDir = process.argv[2]; if (!treeDir) { - let name = 'doxa-maps'; + let name = TREE_NAME; const cfgPath = join(bundlerRoot, 'vite.doxa-maps-build-config.json'); if (existsSync(cfgPath)) { try { name = JSON.parse(readFileSync(cfgPath, 'utf8')).name || name; } catch {} diff --git a/internal/embed-smoke.mjs b/internal/embed-smoke.mjs index e55fcdc57..c71d5b697 100644 --- a/internal/embed-smoke.mjs +++ b/internal/embed-smoke.mjs @@ -22,6 +22,7 @@ import { readFileSync, existsSync, statSync, createReadStream } from 'node:fs' import { resolve, join, extname } from 'node:path' import { fileURLToPath } from 'node:url' import { chromium } from 'playwright' +import { TREE_NAME } from './_tree-name.mjs' const __dirname = fileURLToPath(new URL('.', import.meta.url)) const PUB = resolve(__dirname, '..', 'public') @@ -46,16 +47,16 @@ const server = createServer((req, res) => { }) // ── the page list: every profile page in the manifest ─────────────────────── -const manifest = JSON.parse(readFileSync(join(PUB, 'doxa-maps', 'manifest.json'), 'utf8')) +const manifest = JSON.parse(readFileSync(join(PUB, TREE_NAME, 'manifest.json'), 'utf8')) const targets = [] for (const b of manifest.bundles) for (const p of b.profiles) { // iframeUrl is ./-relative to the tree root - const url = p.iframeUrl.replace(/^\.\//, '/doxa-maps/') + const url = p.iframeUrl.replace(/^\.\//, `/${TREE_NAME}/`) targets.push({ bundle: b.bundle, profile: p.profile, element: p.element, url }) // Preconfigured instances are embeddable pages too — verify them the same way. for (const inst of (p.instances || [])) { targets.push({ bundle: b.bundle, profile: `${p.profile}/${inst.id}`, element: inst.element || p.element, - url: inst.iframeUrl.replace(/^\.\//, '/doxa-maps/') }) + url: inst.iframeUrl.replace(/^\.\//, `/${TREE_NAME}/`) }) } } const list = GREP ? targets.filter(t => (t.bundle + '/' + t.profile).includes(GREP)) : targets diff --git a/internal/fix-sri.mjs b/internal/fix-sri.mjs index 7ed08e5d8..5a10a9301 100644 --- a/internal/fix-sri.mjs +++ b/internal/fix-sri.mjs @@ -76,6 +76,7 @@ import { createHash } from 'node:crypto' import { tmpdir } from 'node:os' import { spawnSync } from 'node:child_process' import { fileURLToPath } from 'node:url' +import { TREE_NAME } from './_tree-name.mjs' const HERE = dirname(fileURLToPath(import.meta.url)) const CHECKER = join(HERE, 'sri-consistency-check.mjs') @@ -269,7 +270,7 @@ if (SELF_TEST) { selfTest() } else { let code = 0 - for (const root of (TREES.length ? TREES : ['public/doxa-maps'])) { + for (const root of (TREES.length ? TREES : [`public/${TREE_NAME}`])) { code = report(root, fixTree(root)) || code } process.exit(code) diff --git a/internal/generate-capability-exemplars.mjs b/internal/generate-capability-exemplars.mjs index 99f89365c..0c5c9011b 100644 --- a/internal/generate-capability-exemplars.mjs +++ b/internal/generate-capability-exemplars.mjs @@ -28,9 +28,10 @@ import { readFileSync, writeFileSync, existsSync } from 'node:fs' import { resolve, dirname, join } from 'node:path' import { fileURLToPath } from 'node:url' +import { TREE_NAME } from './_tree-name.mjs' const ROOT = resolve(dirname(fileURLToPath(import.meta.url)), '..') -const MANIFEST = join(ROOT, 'public', 'doxa-maps', 'manifest.json') +const MANIFEST = join(ROOT, 'public', TREE_NAME, 'manifest.json') const OUT = join(ROOT, 'documentation', 'reference-capability-exemplars.md') if (!existsSync(MANIFEST)) { @@ -68,7 +69,7 @@ lines.push('> **Do not hand-edit.** Regenerate with `bun run capability-exemplar lines.push('> check:capability-exemplars` fails if this file falls behind the manifest.') lines.push('>') lines.push('> This answers one question authoritatively: **which bundles are the capability-N') -lines.push('> examples right now?** It is derived from `public/doxa-maps/manifest.json`, which is what') +lines.push(`> examples right now?** It is derived from \`public/${TREE_NAME}/manifest.json\`, which is what`) lines.push('> the build computed from each folder\'s real shape — so it cannot drift from what ships.') lines.push('>') lines.push('> **Cite this file rather than remembering.** The same citation has been wrong in three') diff --git a/internal/generate-gallery.mjs b/internal/generate-gallery.mjs index e428564a3..3e7601e69 100644 --- a/internal/generate-gallery.mjs +++ b/internal/generate-gallery.mjs @@ -50,6 +50,7 @@ import { readFileSync, writeFileSync, existsSync, readdirSync, mkdirSync } from import { join, resolve, dirname } from 'node:path' import { fileURLToPath, pathToFileURL } from 'node:url' import { PROFILE_TIER, TYPE_DISPLAY, detectProfileType } from './plugin-gallery/discover.mjs' +import { TREE_NAME } from './_tree-name.mjs' const ROOT = resolve(dirname(fileURLToPath(import.meta.url)), '..') @@ -99,8 +100,8 @@ export function readBuildConfig() { } catch { /* fall through */ } } return { - name: str('name') || 'doxa-maps', - title: str('displayTitle') || 'doxa-maps', + name: str('name') || TREE_NAME, + title: str('displayTitle') || TREE_NAME, tokenUrl: tokenUrl || 'window.MAP_TOKEN_URL', token: str('token'), apiBaseUrl: str('apiBaseUrl').replace(/\/+$/, ''), @@ -185,7 +186,7 @@ const LADDER_JS = String.raw` - + - + - + - + - + - + - + - + - + \n\n" + "script": "\n\n\n\n" }, "bundle": "all-people-groups" } @@ -105,7 +105,7 @@ "bundle": "cities-internet", "scriptUrl": "./cities-internet/cities-internet.js", "output": "doxa-maps/cities-internet/cities-internet.js", - "integrity": "sha384-b+LM9iwu9nc2PjVLOdnkhEyCzVekbagHbsbhifn8s6e6TlPmCIiaMlVrs3CUCtp2", + "integrity": "sha384-4Vw0NTwm8CYuoQ4GZ72er51cbjuljo1e6szPVAxVUZGXjH9KZneXoLqcRopGmYPF", "elements": [ "cities-internet-map" ], @@ -121,7 +121,7 @@ "scriptUrl": "./cities-internet/cities-internet.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } }, { @@ -135,7 +135,7 @@ "scriptUrl": "./cities-internet/cities-internet.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" } }, { @@ -149,7 +149,7 @@ "scriptUrl": "./cities-internet/cities-internet.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } } ] @@ -158,7 +158,7 @@ "bundle": "country-posters", "scriptUrl": "./country-posters/country-posters.js", "output": "doxa-maps/country-posters/country-posters.js", - "integrity": "sha384-8mq4BeDqzXgVRQdfa4DeKpAcQLBJhh5zu3c98dK9lgEzZ5tI27NxofDMXCVgk8Ed", + "integrity": "sha384-pHQsGBTvyKxe4ZxxS5IuoCo/qgYD0LFvXBayl4kmbpO02IMfxuO7DDJ2FPD+D397", "elements": [ "country-posters-map" ], @@ -178,7 +178,7 @@ "scriptUrl": "./country-posters/country-posters.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" } }, { @@ -192,7 +192,7 @@ "scriptUrl": "./country-posters/country-posters.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } }, { @@ -206,7 +206,7 @@ "scriptUrl": "./country-posters/country-posters.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" } } ] @@ -259,7 +259,7 @@ "bundle": "demo-map", "scriptUrl": "./demo-map/demo-map.js", "output": "doxa-maps/demo-map/demo-map.js", - "integrity": "sha384-5FtwMhHN5M3xQq0HmE68SzMl8huqPEFGcD93ueHirWJZfApCzVI+t71s21eEh8Pr", + "integrity": "sha384-KnmVxOEoCBhAgT1hD3dfPkPuasSL+LvoefV/UoEoRT230y1r2hLVQd3NvXyZaJi9", "elements": [ "demo-map" ], @@ -275,7 +275,7 @@ "scriptUrl": "./demo-map/demo-map.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" }, "instances": [ { @@ -354,7 +354,7 @@ "bundle": "doxa-research-map", "scriptUrl": "./doxa-research-map/doxa-research-map.js", "output": "doxa-maps/doxa-research-map/doxa-research-map.js", - "integrity": "sha384-Drjih7xIR1Qe7Tfx+0BjRAIiuLsK3UH8FHEqim5t27Sn5rWrv1nY+sQ005L+wlc7", + "integrity": "sha384-tx2BP39Z5CIEsyafsrg/wsvmGuhbjBNeieJ+GAXev0ugQUIVuUKwbq6RFUBavh0B", "elements": [ "doxa-research-map" ], @@ -370,7 +370,7 @@ "scriptUrl": "./doxa-research-map/doxa-research-map.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" }, "instances": [ { @@ -396,7 +396,7 @@ "bundle": "doxa-simple-map", "scriptUrl": "./doxa-simple-map/doxa-simple-map.js", "output": "doxa-maps/doxa-simple-map/doxa-simple-map.js", - "integrity": "sha384-lF8U3vrAFhQw+lxLSYcUh0IIypHNS8UxPJX0t/FrSGywm8nYmcROh03HOgnf4cIo", + "integrity": "sha384-LfPJofnJKgW/QZxe85ysy1D0EArZYQrKjsi/YtACn35EIz3yEad87MiardTw2kNe", "elements": [ "doxa-map", "doxa-simple-map" @@ -413,7 +413,7 @@ "scriptUrl": "./doxa-simple-map/doxa-simple-map.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" }, "instances": [ { @@ -579,7 +579,7 @@ "bundle": "gospel-resources", "scriptUrl": "./gospel-resources/gospel-resources.js", "output": "doxa-maps/gospel-resources/gospel-resources.js", - "integrity": "sha384-OJXpQLTiLo4hW7+7Yrar4ZU87N+Qt8fKjx3cVKPgf7J8rJ6MMZTAUVhLn9TqJECG", + "integrity": "sha384-aXduWzOF+DMuJl0mgWLvrnz3W9HTYXLzwsol6I6gvS8kBQuhOSWFKV9tHEMw9cY4", "elements": [ "gospel-resources-map" ], @@ -599,7 +599,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } }, { @@ -613,7 +613,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } }, { @@ -627,7 +627,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" } }, { @@ -641,7 +641,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } }, { @@ -655,7 +655,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" } } ] @@ -664,7 +664,7 @@ "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-mfcY1B5MfRpHNSeOBF1uCFYaT5fgt5F79cBap5/Ts5yEXaIPFBZma51UaEGyTI3k", + "integrity": "sha384-yKHgj8uwY4XvWVZ1K4zeqhJQ8sUs3BXKkO3v61evI5BxGwYHvoWFkHgRIOxSGH2B", "elements": [ "my-upg-100-list-map" ], @@ -684,7 +684,7 @@ "scriptUrl": "./my-upg-100-list/my-upg-100-list.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } }, { @@ -698,7 +698,7 @@ "scriptUrl": "./my-upg-100-list/my-upg-100-list.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" } }, { @@ -712,7 +712,7 @@ "scriptUrl": "./my-upg-100-list/my-upg-100-list.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" } } ] @@ -837,7 +837,7 @@ "bundle": "pplr-data-maps", "scriptUrl": "./pplr-data-maps/pplr-data-maps.js", "output": "doxa-maps/pplr-data-maps/pplr-data-maps.js", - "integrity": "sha384-eYzwOcm/X1qGL2VDS7J8PWd9N3pqiipjWNjpcAixKGkGCSHNsJoH97Igm0dREc36", + "integrity": "sha384-LaWCUgEyASNTWsjKR1qNVltL45UaTiewTd4BZgN6DUhpatRkQSZEhHZWnApPr2wF", "elements": [ "pplr-data-maps" ], @@ -853,7 +853,7 @@ "scriptUrl": "./pplr-data-maps/pplr-data-maps.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" }, "bundle": "pplr-data-maps" } @@ -888,7 +888,7 @@ "bundle": "regions-dashboard", "scriptUrl": "./regions-dashboard/regions-dashboard.js", "output": "doxa-maps/regions-dashboard/regions-dashboard.js", - "integrity": "sha384-gRgDvH9fnpo+Mx7Z3PWkrhpoZFvNAxKc3VYmgsPFwO56TNgHhjjegmvmrxkKwUJ5", + "integrity": "sha384-tYc9LWl2iPEdv1rZUf/pDeIRHQIJlpVuR5OEPIGN5JKwxWQe8UmJ2+tzUPQvXDyZ", "elements": [ "regions-dashboard" ], @@ -908,7 +908,7 @@ "scriptUrl": "./regions-dashboard/regions-dashboard.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" } }, { @@ -922,7 +922,7 @@ "scriptUrl": "./regions-dashboard/regions-dashboard.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } }, { @@ -936,7 +936,7 @@ "scriptUrl": "./regions-dashboard/regions-dashboard.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" } } ] @@ -945,7 +945,7 @@ "bundle": "research-dashboard", "scriptUrl": "./research-dashboard/research-dashboard.js", "output": "doxa-maps/research-dashboard/research-dashboard.js", - "integrity": "sha384-1TITdcbMa/qlqbdIEsm3/wjzfLDN//1QAkK/fjuz+dkcG/H/uRZIHZbZyWDP4veg", + "integrity": "sha384-VDFocgOynW3yYI6d4ZjkUOnJp20rL3uMVMW+7stQMrODjn8UpXyxHU6DW4fl1VGQ", "elements": [ "research-dashboard-map" ], @@ -961,7 +961,7 @@ "scriptUrl": "./research-dashboard/research-dashboard.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" }, "bundle": "research-dashboard" } @@ -1059,7 +1059,7 @@ "bundle": "upg-neighbor", "scriptUrl": "./upg-neighbor/upg-neighbor.js", "output": "doxa-maps/upg-neighbor/upg-neighbor.js", - "integrity": "sha384-w4GJq2DT3+1ZDS99TJigHz6/bilV6hM2av03uvJrK7VlJHIOQD+gkuAD0P+td0J3", + "integrity": "sha384-t0+00FFQh7IBe/b4HDsZZrKr2BkTQrvwzhDGGkAhGUDKvdSiKEFS2RegL5dbJOC3", "elements": [ "upg-neighbor" ], @@ -1075,7 +1075,7 @@ "scriptUrl": "./upg-neighbor/upg-neighbor.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" }, "instances": [ { diff --git a/public/doxa-maps/doxa-research-map/doxa-research-map.js b/public/doxa-maps/doxa-research-map/doxa-research-map.js index c8c88bbc0..a3c18ec05 100644 --- a/public/doxa-maps/doxa-research-map/doxa-research-map.js +++ b/public/doxa-maps/doxa-research-map/doxa-research-map.js @@ -1,46 +1,46 @@ -(function(){"use strict";var jg;var En=typeof document<"u"?document.currentScript:null;const MP="modulepreload",FP=function(e){return"/"+e},IP={},oo=function(t,o,n){let a=Promise.resolve();function s(r){const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=r,window.dispatchEvent(i),!i.defaultPrevented)throw r}return a.then(r=>{for(const i of r||[])i.status==="rejected"&&s(i.reason);return t().catch(s)})},hr="affinityBlock",Tn="#95a5a6",Eo={A001:"Arab World",A002:"East Asian Peoples",A003:"Eurasian Peoples",A004:"Horn of Africa Peoples",A005:"Jewish",A006:"Malay Peoples",A007:"Persian-Median Peoples",A008:"South Asian Peoples",A009:"North American Peoples",A010:"Pacific Islanders",A011:"Southeast Asian Peoples",A012:"Sub-Saharan Peoples",A013:"Tibetan-Himalayan Peoples",A014:"Turkic Peoples",A015:"Latin-Caribbean Americans",A017:"Deaf",A018:"Tibetan Peoples",A019:"Himalayan Peoples"},Ja={A001:"#E74C3C",A002:"#3498DB",A003:"#2ECC71",A004:"#F39C12",A005:"#9B59B6",A006:"#1ABC9C",A007:"#E67E22",A008:"#34495E",A009:"#95A5A6",A010:"#5DADE2",A011:"#16A085",A012:"#C0392B",A013:"#8E44AD",A014:"#D35400",A015:"#27AE60",A017:"#000000",A018:"#6C3483",A019:"#A569BD"},Ho=Ja,Pl=Object.entries(Eo).reduce((e,[t,o])=>(e[o]=t,e),{}),mr=Object.entries(Eo).reduce((e,[t,o])=>(e[o]=Ho[t],e),{}),Cl=Eo;function br(e){return Eo[e]||"Unknown"}function $r(e){return Ho[e]||Tn}function El(e){return e?typeof e=="string"&&/^A\d{3}$/.test(e)?Ho[e]||Tn:mr[e]||Tn:Tn}function Tl(){return Object.entries(Eo).map(([e,t])=>({code:e,name:t,color:Ho[e]}))}function Nl(e){return{code:e,name:Eo[e]||"Unknown",color:Ho[e]||Tn}}function Rl(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return $r(t)}function Ml(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return br(t)}function yr(){const e=["match",["get",hr]];return Object.entries(Ho).forEach(([t,o])=>{e.push(t,o)}),e.push(Tn),e}const Fl=yr,af=Object.freeze(Object.defineProperty({__proto__:null,AFFINITY_BLOCK_COLORS:Ho,AFFINITY_BLOCK_COLORS_BY_NAME:mr,AFFINITY_BLOCK_NAMES:Eo,AFFINITY_BLOCK_NAME_TO_CODE:Pl,NAMES:Cl,PALETTE:Ja,PROPERTY_KEY:hr,affinityBlockCodeLookup:Eo,affinityBlockCodeToColor:Ho,affinityBlockCodeToName:Eo,affinityBlockColors:mr,affinityBlockNameToCode:Pl,applyColor:yr,buildColorExpression:Fl,default:{name:"Affinity Block",propertyKey:hr,palette:Ja,colors:Ja,names:Cl,getColor:Rl,applyColor:yr,buildColorExpression:Fl,getName:Ml,getAffinityBlockName:br,getAffinityBlockColor:El,getAffinityBlockColorByCode:$r,getAffinityBlocksArray:Tl,getAffinityBlockData:Nl},getAffinityBlockColor:El,getAffinityBlockColorByCode:$r,getAffinityBlockData:Nl,getAffinityBlockName:br,getAffinityBlocksArray:Tl,getColor:Rl,getName:Ml},Symbol.toStringTag,{value:"Module"}));function sf(e){if(!e)return"hsl(0, 60%, 50%)";let t=0;for(let n=0;n{e.push(t,o)}),e.push(vr),e}const Gl=xr,lf=Object.freeze(Object.defineProperty({__proto__:null,DOXA_REGION_COLORS:rf,PALETTE:Qa,PROPERTY_KEY:_r,REGION_COLOR_ALIASES:kr,SLUG_PALETTE:es,applyColor:xr,buildColorExpression:Gl,default:{name:"DOXA Region",propertyKey:_r,palette:Qa,colors:Qa,slugColors:es,aliases:kr,fallback:vr,getColor:Dl,applyColor:xr,buildColorExpression:Gl,getRegionColor:Ol,getRegionColorBySlug:wr},getColor:Dl,getRegionColor:Ol,getRegionColorBySlug:wr},Symbol.toStringTag,{value:"Module"})),Bl="resourceType",qo={bible:"#3498db",jesusFilm:"#20c997",radio:"#9b59b6",gospel:"#f39c12",audio:"#1abc9c",stories:"#e74c3c",hasResources:"#27ae60",noResources:"#2c3e50"},cf=qo,la=["bible","jesusFilm","radio","gospel","audio","stories"],Lr={bible:"Bible",jesusFilm:"Jesus Film",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",hasResources:"Has Resources",noResources:"No Resources"},uf=Lr;function ca(e){return{bible:"Bible",jesusFilm:"Jesus",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories"}[e]}function jl(e){var t;for(const o of la)if((e[o]||((t=e._raw)==null?void 0:t[ca(o)]))==="Available")return qo.hasResources;return qo.noResources}function zl(e){var t;for(const o of la)if((e[o]||((t=e._raw)==null?void 0:t[ca(o)]))==="Available")return!0;return!1}function Ul(e){var t;for(const o of la)if((e[o]||((t=e._raw)==null?void 0:t[ca(o)]))==="Available")return o;return"noResources"}function Ar(){return["case",["any",["==",["get","bible"],"Available"],["==",["get","jesusFilm"],"Available"],["==",["get","radio"],"Available"],["==",["get","gospel"],"Available"],["==",["get","audio"],"Available"],["==",["get","stories"],"Available"]],qo.hasResources,qo.noResources]}const Vl=Ar,pf=Object.freeze(Object.defineProperty({__proto__:null,NAMES:Lr,PALETTE:qo,PROPERTY_KEY:Bl,RESOURCE_COLORS:cf,RESOURCE_NAMES:uf,RESOURCE_PRIORITY:la,applyColor:Ar,buildColorExpression:Vl,default:{name:"Gospel Resources",propertyKey:Bl,palette:qo,colors:qo,names:Lr,priority:la,getColor:jl,applyColor:Ar,buildColorExpression:Vl,hasAnyResource:zl,getResourceType:Ul,getCSVColumn:ca},getCSVColumn:ca,getColor:jl,getResourceType:Ul,hasAnyResource:zl},Symbol.toStringTag,{value:"Module"}));/** +(function(){"use strict";var Lf;var Un=typeof document<"u"?document.currentScript:null;const hE="modulepreload",mE=function(e){return"/"+e},bE={},lo=function(t,o,n){let a=Promise.resolve();function s(r){const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=r,window.dispatchEvent(i),!i.defaultPrevented)throw r}return a.then(r=>{for(const i of r||[])i.status==="rejected"&&s(i.reason);return t().catch(s)})},Mr="affinityBlock",Vn="#95a5a6",Io={A001:"Arab World",A002:"East Asian Peoples",A003:"Eurasian Peoples",A004:"Horn of Africa Peoples",A005:"Jewish",A006:"Malay Peoples",A007:"Persian-Median Peoples",A008:"South Asian Peoples",A009:"North American Peoples",A010:"Pacific Islanders",A011:"Southeast Asian Peoples",A012:"Sub-Saharan Peoples",A013:"Tibetan-Himalayan Peoples",A014:"Turkic Peoples",A015:"Latin-Caribbean Americans",A017:"Deaf",A018:"Tibetan Peoples",A019:"Himalayan Peoples"},ys={A001:"#E74C3C",A002:"#3498DB",A003:"#2ECC71",A004:"#F39C12",A005:"#9B59B6",A006:"#1ABC9C",A007:"#E67E22",A008:"#34495E",A009:"#95A5A6",A010:"#5DADE2",A011:"#16A085",A012:"#C0392B",A013:"#8E44AD",A014:"#D35400",A015:"#27AE60",A017:"#000000",A018:"#6C3483",A019:"#A569BD"},on=ys,Ql=Object.entries(Io).reduce((e,[t,o])=>(e[o]=t,e),{}),Fr=Object.entries(Io).reduce((e,[t,o])=>(e[o]=on[t],e),{}),ec=Io;function Ir(e){return Io[e]||"Unknown"}function Or(e){return on[e]||Vn}function tc(e){return e?typeof e=="string"&&/^A\d{3}$/.test(e)?on[e]||Vn:Fr[e]||Vn:Vn}function oc(){return Object.entries(Io).map(([e,t])=>({code:e,name:t,color:on[e]}))}function nc(e){return{code:e,name:Io[e]||"Unknown",color:on[e]||Vn}}function ac(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return Or(t)}function sc(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return Ir(t)}function Dr(){const e=["match",["get",Mr]];return Object.entries(on).forEach(([t,o])=>{e.push(t,o)}),e.push(Vn),e}const rc=Dr,Vf=Object.freeze(Object.defineProperty({__proto__:null,AFFINITY_BLOCK_COLORS:on,AFFINITY_BLOCK_COLORS_BY_NAME:Fr,AFFINITY_BLOCK_NAMES:Io,AFFINITY_BLOCK_NAME_TO_CODE:Ql,NAMES:ec,PALETTE:ys,PROPERTY_KEY:Mr,affinityBlockCodeLookup:Io,affinityBlockCodeToColor:on,affinityBlockCodeToName:Io,affinityBlockColors:Fr,affinityBlockNameToCode:Ql,applyColor:Dr,buildColorExpression:rc,default:{name:"Affinity Block",propertyKey:Mr,palette:ys,colors:ys,names:ec,getColor:ac,applyColor:Dr,buildColorExpression:rc,getName:sc,getAffinityBlockName:Ir,getAffinityBlockColor:tc,getAffinityBlockColorByCode:Or,getAffinityBlocksArray:oc,getAffinityBlockData:nc},getAffinityBlockColor:tc,getAffinityBlockColorByCode:Or,getAffinityBlockData:nc,getAffinityBlockName:Ir,getAffinityBlocksArray:oc,getColor:ac,getName:sc},Symbol.toStringTag,{value:"Module"}));function Kf(e){if(!e)return"hsl(0, 60%, 50%)";let t=0;for(let n=0;n{e.push(t,o)}),e.push(Gr),e}const uc=Ur,qf=Object.freeze(Object.defineProperty({__proto__:null,DOXA_REGION_COLORS:Hf,PALETTE:_s,PROPERTY_KEY:Br,REGION_COLOR_ALIASES:zr,SLUG_PALETTE:vs,applyColor:Ur,buildColorExpression:uc,default:{name:"DOXA Region",propertyKey:Br,palette:_s,colors:_s,slugColors:vs,aliases:zr,fallback:Gr,getColor:cc,applyColor:Ur,buildColorExpression:uc,getRegionColor:lc,getRegionColorBySlug:jr},getColor:cc,getRegionColor:lc,getRegionColorBySlug:jr},Symbol.toStringTag,{value:"Module"})),pc="resourceType",nn={bible:"#3498db",jesusFilm:"#20c997",radio:"#9b59b6",gospel:"#f39c12",audio:"#1abc9c",stories:"#e74c3c",hasResources:"#27ae60",noResources:"#2c3e50"},Wf=nn,va=["bible","jesusFilm","radio","gospel","audio","stories"],Vr={bible:"Bible",jesusFilm:"Jesus Film",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",hasResources:"Has Resources",noResources:"No Resources"},Yf=Vr;function wa(e){return{bible:"Bible",jesusFilm:"Jesus",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories"}[e]}function dc(e){var t;for(const o of va)if((e[o]||((t=e._raw)==null?void 0:t[wa(o)]))==="Available")return nn.hasResources;return nn.noResources}function gc(e){var t;for(const o of va)if((e[o]||((t=e._raw)==null?void 0:t[wa(o)]))==="Available")return!0;return!1}function fc(e){var t;for(const o of va)if((e[o]||((t=e._raw)==null?void 0:t[wa(o)]))==="Available")return o;return"noResources"}function Kr(){return["case",["any",["==",["get","bible"],"Available"],["==",["get","jesusFilm"],"Available"],["==",["get","radio"],"Available"],["==",["get","gospel"],"Available"],["==",["get","audio"],"Available"],["==",["get","stories"],"Available"]],nn.hasResources,nn.noResources]}const hc=Kr,Xf=Object.freeze(Object.defineProperty({__proto__:null,NAMES:Vr,PALETTE:nn,PROPERTY_KEY:pc,RESOURCE_COLORS:Wf,RESOURCE_NAMES:Yf,RESOURCE_PRIORITY:va,applyColor:Kr,buildColorExpression:hc,default:{name:"Gospel Resources",propertyKey:pc,palette:nn,colors:nn,names:Vr,priority:va,getColor:dc,applyColor:Kr,buildColorExpression:hc,hasAnyResource:gc,getResourceType:fc,getCSVColumn:wa},getCSVColumn:wa,getColor:dc,getResourceType:fc,hasAnyResource:gc},Symbol.toStringTag,{value:"Module"}));/** * @vue/shared v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/function Sr(e){const t=Object.create(null);for(const o of e.split(","))t[o]=1;return o=>o in t}const st={},Nn=[],po=()=>{},Kl=()=>!1,ts=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),os=e=>e.startsWith("onUpdate:"),mt=Object.assign,Pr=(e,t)=>{const o=e.indexOf(t);o>-1&&e.splice(o,1)},df=Object.prototype.hasOwnProperty,Ze=(e,t)=>df.call(e,t),Me=Array.isArray,Wo=e=>ua(e)==="[object Map]",ns=e=>ua(e)==="[object Set]",Hl=e=>ua(e)==="[object Date]",De=e=>typeof e=="function",it=e=>typeof e=="string",Vt=e=>typeof e=="symbol",Je=e=>e!==null&&typeof e=="object",ql=e=>(Je(e)||De(e))&&De(e.then)&&De(e.catch),Wl=Object.prototype.toString,ua=e=>Wl.call(e),gf=e=>ua(e).slice(8,-1),as=e=>ua(e)==="[object Object]",ss=e=>it(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,pa=Sr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),rs=e=>{const t=Object.create(null);return o=>t[o]||(t[o]=e(o))},ff=/-\w/g,xt=rs(e=>e.replace(ff,t=>t.slice(1).toUpperCase())),hf=/\B([A-Z])/g,Yt=rs(e=>e.replace(hf,"-$1").toLowerCase()),is=rs(e=>e.charAt(0).toUpperCase()+e.slice(1)),Cr=rs(e=>e?`on${is(e)}`:""),go=(e,t)=>!Object.is(e,t),ls=(e,...t)=>{for(let o=0;o{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:o})},Er=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Xl=e=>{const t=it(e)?Number(e):NaN;return isNaN(t)?e:t};let Zl;const cs=()=>Zl||(Zl=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function dt(e){if(Me(e)){const t={};for(let o=0;o{if(o){const n=o.split(bf);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function Re(e){let t="";if(it(e))t=e;else if(Me(e))for(let o=0;o!!(e&&e.__v_isRef===!0),ye=e=>it(e)?e:e==null?"":Me(e)||Je(e)&&(e.toString===Wl||!De(e.toString))?ec(e)?ye(e.value):JSON.stringify(e,tc,2):String(e),tc=(e,t)=>ec(t)?tc(e,t.value):Wo(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((o,[n,a],s)=>(o[Tr(n,s)+" =>"]=a,o),{})}:ns(t)?{[`Set(${t.size})`]:[...t.values()].map(o=>Tr(o))}:Vt(t)?Tr(t):Je(t)&&!Me(t)&&!as(t)?String(t):t,Tr=(e,t="")=>{var o;return Vt(e)?`Symbol(${(o=e.description)!=null?o:t})`:e};/** +**/function Hr(e){const t=Object.create(null);for(const o of e.split(","))t[o]=1;return o=>o in t}const at={},Kn=[],$o=()=>{},mc=()=>!1,ws=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),ks=e=>e.startsWith("onUpdate:"),ft=Object.assign,qr=(e,t)=>{const o=e.indexOf(t);o>-1&&e.splice(o,1)},Zf=Object.prototype.hasOwnProperty,Je=(e,t)=>Zf.call(e,t),Ee=Array.isArray,an=e=>ka(e)==="[object Map]",Oo=e=>ka(e)==="[object Set]",bc=e=>ka(e)==="[object Date]",De=e=>typeof e=="function",st=e=>typeof e=="string",Kt=e=>typeof e=="symbol",Qe=e=>e!==null&&typeof e=="object",$c=e=>(Qe(e)||De(e))&&De(e.then)&&De(e.catch),yc=Object.prototype.toString,ka=e=>yc.call(e),Jf=e=>ka(e).slice(8,-1),xs=e=>ka(e)==="[object Object]",Ls=e=>st(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,xa=Hr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),As=e=>{const t=Object.create(null);return o=>t[o]||(t[o]=e(o))},Qf=/-\w/g,xt=As(e=>e.replace(Qf,t=>t.slice(1).toUpperCase())),eh=/\B([A-Z])/g,Qt=As(e=>e.replace(eh,"-$1").toLowerCase()),Ss=As(e=>e.charAt(0).toUpperCase()+e.slice(1)),Wr=As(e=>e?`on${Ss(e)}`:""),yo=(e,t)=>!Object.is(e,t),Ps=(e,...t)=>{for(let o=0;o{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:o})},Cs=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Yr=e=>{const t=st(e)?Number(e):NaN;return isNaN(t)?e:t};let vc;const Es=()=>vc||(vc=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ye(e){if(Ee(e)){const t={};for(let o=0;o{if(o){const n=o.split(oh);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function Re(e){let t="";if(st(e))t=e;else if(Ee(e))for(let o=0;oDo(o,t))}const xc=e=>!!(e&&e.__v_isRef===!0),$e=e=>st(e)?e:e==null?"":Ee(e)||Qe(e)&&(e.toString===yc||!De(e.toString))?xc(e)?$e(e.value):JSON.stringify(e,Lc,2):String(e),Lc=(e,t)=>xc(t)?Lc(e,t.value):an(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((o,[n,a],s)=>(o[Zr(n,s)+" =>"]=a,o),{})}:Oo(t)?{[`Set(${t.size})`]:[...t.values()].map(o=>Zr(o))}:Kt(t)?Zr(t):Qe(t)&&!Ee(t)&&!xs(t)?String(t):t,Zr=(e,t="")=>{var o;return Kt(e)?`Symbol(${(o=e.description)!=null?o:t})`:e};/** * @vue/reactivity v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let _t;class oc{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&&_t&&(_t.active?(this.parent=_t,this.index=(_t.scopes||(_t.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,o;if(this.scopes){const n=this.scopes.slice();for(t=0,o=n.length;t0&&--this._on===0){if(_t===this)_t=this.prevScope;else{let t=_t;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let o,n;for(o=0,n=this.effects.length;o0)return;if(ga){let t=ga;for(ga=void 0;t;){const o=t.next;t.next=void 0,t.flags&=-9,t=o}}let e;for(;da;){let t=da;for(da=void 0;t;){const o=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(n){e||(e=n)}t=o}}if(e)throw e}function ic(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function lc(e){let t,o=e.depsTail,n=o;for(;n;){const a=n.prevDep;n.version===-1?(n===o&&(o=a),Or(n),kf(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=a}e.deps=t,e.depsTail=o}function Ir(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(cc(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function cc(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===fa)||(e.globalVersion=fa,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Ir(e))))return;e.flags|=2;const t=e.dep,o=lt,n=no;lt=e,no=!0;try{ic(e);const a=e.fn(e._value);(t.version===0||go(a,e._value))&&(e.flags|=128,e._value=a,t.version++)}catch(a){throw t.version++,a}finally{lt=o,no=n,lc(e),e.flags&=-3}}function Or(e,t=!1){const{dep:o,prevSub:n,nextSub:a}=e;if(n&&(n.nextSub=a,e.prevSub=void 0),a&&(a.prevSub=n,e.nextSub=void 0),o.subs===e&&(o.subs=n,!n&&o.computed)){o.computed.flags&=-5;for(let s=o.computed.deps;s;s=s.nextDep)Or(s,!0)}!t&&!--o.sc&&o.map&&o.map.delete(o.key)}function kf(e){const{prevDep:t,nextDep:o}=e;t&&(t.nextDep=o,e.prevDep=void 0),o&&(o.prevDep=t,e.nextDep=void 0)}let no=!0;const uc=[];function fo(){uc.push(no),no=!1}function ho(){const e=uc.pop();no=e===void 0?!0:e}function pc(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const o=lt;lt=void 0;try{t()}finally{lt=o}}}let fa=0;class xf{constructor(t,o){this.sub=t,this.dep=o,this.version=o.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Dr{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(!lt||!no||lt===this.computed)return;let o=this.activeLink;if(o===void 0||o.sub!==lt)o=this.activeLink=new xf(lt,this),lt.deps?(o.prevDep=lt.depsTail,lt.depsTail.nextDep=o,lt.depsTail=o):lt.deps=lt.depsTail=o,dc(o);else if(o.version===-1&&(o.version=this.version,o.nextDep)){const n=o.nextDep;n.prevDep=o.prevDep,o.prevDep&&(o.prevDep.nextDep=n),o.prevDep=lt.depsTail,o.nextDep=void 0,lt.depsTail.nextDep=o,lt.depsTail=o,lt.deps===o&&(lt.deps=n)}return o}trigger(t){this.version++,fa++,this.notify(t)}notify(t){Mr();try{for(let o=this.subs;o;o=o.prevSub)o.sub.notify()&&o.sub.dep.notify()}finally{Fr()}}}function dc(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let n=t.deps;n;n=n.nextDep)dc(n)}const o=e.dep.subs;o!==e&&(e.prevSub=o,o&&(o.nextSub=e)),e.dep.subs=e}}const ps=new WeakMap,cn=Symbol(""),Gr=Symbol(""),ha=Symbol("");function Nt(e,t,o){if(no&<){let n=ps.get(e);n||ps.set(e,n=new Map);let a=n.get(o);a||(n.set(o,a=new Dr),a.map=n,a.key=o),a.track()}}function To(e,t,o,n,a,s){const r=ps.get(e);if(!r){fa++;return}const i=l=>{l&&l.trigger()};if(Mr(),t==="clear")r.forEach(i);else{const l=Me(e),c=l&&ss(o);if(l&&o==="length"){const u=Number(n);r.forEach((p,g)=>{(g==="length"||g===ha||!Vt(g)&&g>=u)&&i(p)})}else switch((o!==void 0||r.has(void 0))&&i(r.get(o)),c&&i(r.get(ha)),t){case"add":l?c&&i(r.get("length")):(i(r.get(cn)),Wo(e)&&i(r.get(Gr)));break;case"delete":l||(i(r.get(cn)),Wo(e)&&i(r.get(Gr)));break;case"set":Wo(e)&&i(r.get(cn));break}}Fr()}function Lf(e,t){const o=ps.get(e);return o&&o.get(t)}function Rn(e){const t=He(e);return t===e?t:(Nt(t,"iterate",ha),Kt(e)?t:t.map(ao))}function ds(e){return Nt(e=He(e),"iterate",ha),e}function mo(e,t){return Mo(e)?In(Ro(e)?ao(t):t):ao(t)}const Af={__proto__:null,[Symbol.iterator](){return Br(this,Symbol.iterator,e=>mo(this,e))},concat(...e){return Rn(this).concat(...e.map(t=>Me(t)?Rn(t):t))},entries(){return Br(this,"entries",e=>(e[1]=mo(this,e[1]),e))},every(e,t){return No(this,"every",e,t,void 0,arguments)},filter(e,t){return No(this,"filter",e,t,o=>o.map(n=>mo(this,n)),arguments)},find(e,t){return No(this,"find",e,t,o=>mo(this,o),arguments)},findIndex(e,t){return No(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return No(this,"findLast",e,t,o=>mo(this,o),arguments)},findLastIndex(e,t){return No(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return No(this,"forEach",e,t,void 0,arguments)},includes(...e){return jr(this,"includes",e)},indexOf(...e){return jr(this,"indexOf",e)},join(e){return Rn(this).join(e)},lastIndexOf(...e){return jr(this,"lastIndexOf",e)},map(e,t){return No(this,"map",e,t,void 0,arguments)},pop(){return ma(this,"pop")},push(...e){return ma(this,"push",e)},reduce(e,...t){return gc(this,"reduce",e,t)},reduceRight(e,...t){return gc(this,"reduceRight",e,t)},shift(){return ma(this,"shift")},some(e,t){return No(this,"some",e,t,void 0,arguments)},splice(...e){return ma(this,"splice",e)},toReversed(){return Rn(this).toReversed()},toSorted(e){return Rn(this).toSorted(e)},toSpliced(...e){return Rn(this).toSpliced(...e)},unshift(...e){return ma(this,"unshift",e)},values(){return Br(this,"values",e=>mo(this,e))}};function Br(e,t,o){const n=ds(e),a=n[t]();return n!==e&&!Kt(e)&&(a._next=a.next,a.next=()=>{const s=a._next();return s.done||(s.value=o(s.value)),s}),a}const Sf=Array.prototype;function No(e,t,o,n,a,s){const r=ds(e),i=r!==e&&!Kt(e),l=r[t];if(l!==Sf[t]){const p=l.apply(e,s);return i?ao(p):p}let c=o;r!==e&&(i?c=function(p,g){return o.call(this,mo(e,p),g,e)}:o.length>2&&(c=function(p,g){return o.call(this,p,g,e)}));const u=l.call(r,c,n);return i&&a?a(u):u}function gc(e,t,o,n){const a=ds(e),s=a!==e&&!Kt(e);let r=o,i=!1;a!==e&&(s?(i=n.length===0,r=function(c,u,p){return i&&(i=!1,c=mo(e,c)),o.call(this,c,mo(e,u),p,e)}):o.length>3&&(r=function(c,u,p){return o.call(this,c,u,p,e)}));const l=a[t](r,...n);return i?mo(e,l):l}function jr(e,t,o){const n=He(e);Nt(n,"iterate",ha);const a=n[t](...o);return(a===-1||a===!1)&&bs(o[0])?(o[0]=He(o[0]),n[t](...o)):a}function ma(e,t,o=[]){fo(),Mr();const n=He(e)[t].apply(e,o);return Fr(),ho(),n}const Pf=Sr("__proto__,__v_isRef,__isVue"),fc=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Vt));function Cf(e){Vt(e)||(e=String(e));const t=He(this);return Nt(t,"has",e),t.hasOwnProperty(e)}class hc{constructor(t=!1,o=!1){this._isReadonly=t,this._isShallow=o}get(t,o,n){if(o==="__v_skip")return t.__v_skip;const a=this._isReadonly,s=this._isShallow;if(o==="__v_isReactive")return!a;if(o==="__v_isReadonly")return a;if(o==="__v_isShallow")return s;if(o==="__v_raw")return n===(a?s?vc:_c:s?yc:$c).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const r=Me(t);if(!a){let l;if(r&&(l=Af[o]))return l;if(o==="hasOwnProperty")return Cf}const i=Reflect.get(t,o,ut(t)?t:n);if((Vt(o)?fc.has(o):Pf(o))||(a||Nt(t,"get",o),s))return i;if(ut(i)){const l=r&&ss(o)?i:i.value;return a&&Je(l)?un(l):l}return Je(i)?a?un(i):Mn(i):i}}class mc extends hc{constructor(t=!1){super(!1,t)}set(t,o,n,a){let s=t[o];const r=Me(t)&&ss(o);if(!this._isShallow){const c=Mo(s);if(!Kt(n)&&!Mo(n)&&(s=He(s),n=He(n)),!r&&ut(s)&&!ut(n))return c||(s.value=n),!0}const i=r?Number(o)e,gs=e=>Reflect.getPrototypeOf(e);function Mf(e,t,o){return function(...n){const a=this.__v_raw,s=He(a),r=Wo(s),i=e==="entries"||e===Symbol.iterator&&r,l=e==="keys"&&r,c=a[e](...n),u=o?zr:t?In:ao;return!t&&Nt(s,"iterate",l?Gr:cn),mt(Object.create(c),{next(){const{value:p,done:g}=c.next();return g?{value:p,done:g}:{value:i?[u(p[0]),u(p[1])]:u(p),done:g}}})}}function fs(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Ff(e,t){const o={get(a){const s=this.__v_raw,r=He(s),i=He(a);e||(go(a,i)&&Nt(r,"get",a),Nt(r,"get",i));const{has:l}=gs(r),c=t?zr:e?In:ao;if(l.call(r,a))return c(s.get(a));if(l.call(r,i))return c(s.get(i));s!==r&&s.get(a)},get size(){const a=this.__v_raw;return!e&&Nt(He(a),"iterate",cn),a.size},has(a){const s=this.__v_raw,r=He(s),i=He(a);return e||(go(a,i)&&Nt(r,"has",a),Nt(r,"has",i)),a===i?s.has(a):s.has(a)||s.has(i)},forEach(a,s){const r=this,i=r.__v_raw,l=He(i),c=t?zr:e?In:ao;return!e&&Nt(l,"iterate",cn),i.forEach((u,p)=>a.call(s,c(u),c(p),r))}};return mt(o,e?{add:fs("add"),set:fs("set"),delete:fs("delete"),clear:fs("clear")}:{add(a){const s=He(this),r=gs(s),i=He(a),l=!t&&!Kt(a)&&!Mo(a)?i:a;return r.has.call(s,l)||go(a,l)&&r.has.call(s,a)||go(i,l)&&r.has.call(s,i)||(s.add(l),To(s,"add",l,l)),this},set(a,s){!t&&!Kt(s)&&!Mo(s)&&(s=He(s));const r=He(this),{has:i,get:l}=gs(r);let c=i.call(r,a);c||(a=He(a),c=i.call(r,a));const u=l.call(r,a);return r.set(a,s),c?go(s,u)&&To(r,"set",a,s):To(r,"add",a,s),this},delete(a){const s=He(this),{has:r,get:i}=gs(s);let l=r.call(s,a);l||(a=He(a),l=r.call(s,a)),i&&i.call(s,a);const c=s.delete(a);return l&&To(s,"delete",a,void 0),c},clear(){const a=He(this),s=a.size!==0,r=a.clear();return s&&To(a,"clear",void 0,void 0),r}}),["keys","values","entries",Symbol.iterator].forEach(a=>{o[a]=Mf(a,e,t)}),o}function hs(e,t){const o=Ff(e,t);return(n,a,s)=>a==="__v_isReactive"?!e:a==="__v_isReadonly"?e:a==="__v_raw"?n:Reflect.get(Ze(o,a)&&a in n?o:n,a,s)}const If={get:hs(!1,!1)},Of={get:hs(!1,!0)},Df={get:hs(!0,!1)},Gf={get:hs(!0,!0)},$c=new WeakMap,yc=new WeakMap,_c=new WeakMap,vc=new WeakMap;function Bf(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Mn(e){return Mo(e)?e:ms(e,!1,Ef,If,$c)}function jf(e){return ms(e,!1,Nf,Of,yc)}function un(e){return ms(e,!0,Tf,Df,_c)}function HP(e){return ms(e,!0,Rf,Gf,vc)}function ms(e,t,o,n,a){if(!Je(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const s=a.get(e);if(s)return s;const r=Bf(gf(e));if(r===0)return e;const i=new Proxy(e,r===2?n:o);return a.set(e,i),i}function Ro(e){return Mo(e)?Ro(e.__v_raw):!!(e&&e.__v_isReactive)}function Mo(e){return!!(e&&e.__v_isReadonly)}function Kt(e){return!!(e&&e.__v_isShallow)}function bs(e){return e?!!e.__v_raw:!1}function He(e){const t=e&&e.__v_raw;return t?He(t):e}function Fn(e){return!Ze(e,"__v_skip")&&Object.isExtensible(e)&&Yl(e,"__v_skip",!0),e}const ao=e=>Je(e)?Mn(e):e,In=e=>Je(e)?un(e):e;function ut(e){return e?e.__v_isRef===!0:!1}function he(e){return wc(e,!1)}function ba(e){return wc(e,!0)}function wc(e,t){return ut(e)?e:new zf(e,t)}class zf{constructor(t,o){this.dep=new Dr,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=o?t:He(t),this._value=o?t:ao(t),this.__v_isShallow=o}get value(){return this.dep.track(),this._value}set value(t){const o=this._rawValue,n=this.__v_isShallow||Kt(t)||Mo(t);t=n?t:He(t),go(t,o)&&(this._rawValue=t,this._value=n?t:ao(t),this.dep.trigger())}}function ge(e){return ut(e)?e.value:e}const Uf={get:(e,t,o)=>t==="__v_raw"?e:ge(Reflect.get(e,t,o)),set:(e,t,o,n)=>{const a=e[t];return ut(a)&&!ut(o)?(a.value=o,!0):Reflect.set(e,t,o,n)}};function kc(e){return Ro(e)?e:new Proxy(e,Uf)}function Vf(e){const t=Me(e)?new Array(e.length):{};for(const o in e)t[o]=xc(e,o);return t}class Kf{constructor(t,o,n){this._object=t,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._key=Vt(o)?o:String(o),this._raw=He(t);let a=!0,s=t;if(!Me(t)||Vt(this._key)||!ss(this._key))do a=!bs(s)||Kt(s);while(a&&(s=s.__v_raw));this._shallow=a}get value(){let t=this._object[this._key];return this._shallow&&(t=ge(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&ut(this._raw[this._key])){const o=this._object[this._key];if(ut(o)){o.value=t;return}}this._object[this._key]=t}get dep(){return Lf(this._raw,this._key)}}class Hf{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function $s(e,t,o){return ut(e)?e:De(e)?new Hf(e):Je(e)&&arguments.length>1?xc(e,t,o):he(e)}function xc(e,t,o){return new Kf(e,t,o)}class qf{constructor(t,o,n){this.fn=t,this.setter=o,this._value=void 0,this.dep=new Dr(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=fa-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!o,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&<!==this)return rc(this,!0),!0}get value(){const t=this.dep.track();return cc(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Wf(e,t,o=!1){let n,a;return De(e)?n=e:(n=e.get,a=e.set),new qf(n,a,o)}const ys={},_s=new WeakMap;let pn;function Yf(e,t=!1,o=pn){if(o){let n=_s.get(o);n||_s.set(o,n=[]),n.push(e)}}function Xf(e,t,o=st){const{immediate:n,deep:a,once:s,scheduler:r,augmentJob:i,call:l}=o,c=k=>a?k:Kt(k)||a===!1||a===0?Fo(k,1):Fo(k);let u,p,g,S,v=!1,b=!1;if(ut(e)?(p=()=>e.value,v=Kt(e)):Ro(e)?(p=()=>c(e),v=!0):Me(e)?(b=!0,v=e.some(k=>Ro(k)||Kt(k)),p=()=>e.map(k=>{if(ut(k))return k.value;if(Ro(k))return c(k);if(De(k))return l?l(k,2):k()})):De(e)?t?p=l?()=>l(e,2):e:p=()=>{if(g){fo();try{g()}finally{ho()}}const k=pn;pn=u;try{return l?l(e,3,[S]):e(S)}finally{pn=k}}:p=po,t&&a){const k=p,h=a===!0?1/0:a;p=()=>Fo(k(),h)}const _=nc(),$=()=>{u.stop(),_&&_.active&&Pr(_.effects,u)};if(s&&t){const k=t;t=(...h)=>{const P=k(...h);return $(),P}}let f=b?new Array(e.length).fill(ys):ys;const m=k=>{if(!(!(u.flags&1)||!u.dirty&&!k))if(t){const h=u.run();if(k||a||v||(b?h.some((P,d)=>go(P,f[d])):go(h,f))){g&&g();const P=pn;pn=u;try{const d=[h,f===ys?void 0:b&&f[0]===ys?[]:f,S];f=h,l?l(t,3,d):t(...d)}finally{pn=P}}}else u.run()};return i&&i(m),u=new ac(p),u.scheduler=r?()=>r(m,!1):m,S=k=>Yf(k,!1,u),g=u.onStop=()=>{const k=_s.get(u);if(k){if(l)l(k,4);else for(const h of k)h();_s.delete(u)}},t?n?m(!0):f=u.run():r?r(m.bind(null,!0),!0):u.run(),$.pause=u.pause.bind(u),$.resume=u.resume.bind(u),$.stop=$,$}function Fo(e,t=1/0,o){if(t<=0||!Je(e)||e.__v_skip||(o=o||new Map,(o.get(e)||0)>=t))return e;if(o.set(e,t),t--,ut(e))Fo(e.value,t,o);else if(Me(e))for(let n=0;n{Fo(n,t,o)});else if(as(e)){for(const n in e)Fo(e[n],t,o);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&Fo(e[n],t,o)}return e}/** +**/let _t;class Ac{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&&_t&&(_t.active?(this.parent=_t,this.index=(_t.scopes||(_t.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,o;if(this.scopes){const n=this.scopes.slice();for(t=0,o=n.length;t0&&--this._on===0){if(_t===this)_t=this.prevScope;else{let t=_t;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let o,n;for(o=0,n=this.effects.length;o0)return;if(Aa){let t=Aa;for(Aa=void 0;t;){const o=t.next;t.next=void 0,t.flags&=-9,t=o}}let e;for(;La;){let t=La;for(La=void 0;t;){const o=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(n){e||(e=n)}t=o}}if(e)throw e}function Tc(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Nc(e){let t,o=e.depsTail,n=o;for(;n;){const a=n.prevDep;n.version===-1?(n===o&&(o=a),ni(n),lh(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=a}e.deps=t,e.depsTail=o}function oi(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Rc(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Rc(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Sa)||(e.globalVersion=Sa,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!oi(e))))return;e.flags|=2;const t=e.dep,o=rt,n=co;rt=e,co=!0;try{Tc(e);const a=e.fn(e._value);(t.version===0||yo(a,e._value))&&(e.flags|=128,e._value=a,t.version++)}catch(a){throw t.version++,a}finally{rt=o,co=n,Nc(e),e.flags&=-3}}function ni(e,t=!1){const{dep:o,prevSub:n,nextSub:a}=e;if(n&&(n.nextSub=a,e.prevSub=void 0),a&&(a.prevSub=n,e.nextSub=void 0),o.subs===e&&(o.subs=n,!n&&o.computed)){o.computed.flags&=-5;for(let s=o.computed.deps;s;s=s.nextDep)ni(s,!0)}!t&&!--o.sc&&o.map&&o.map.delete(o.key)}function lh(e){const{prevDep:t,nextDep:o}=e;t&&(t.nextDep=o,e.prevDep=void 0),o&&(o.prevDep=t,e.nextDep=void 0)}let co=!0;const Mc=[];function _o(){Mc.push(co),co=!1}function vo(){const e=Mc.pop();co=e===void 0?!0:e}function Fc(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const o=rt;rt=void 0;try{t()}finally{rt=o}}}let Sa=0;class ch{constructor(t,o){this.sub=t,this.dep=o,this.version=o.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class ai{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(!rt||!co||rt===this.computed)return;let o=this.activeLink;if(o===void 0||o.sub!==rt)o=this.activeLink=new ch(rt,this),rt.deps?(o.prevDep=rt.depsTail,rt.depsTail.nextDep=o,rt.depsTail=o):rt.deps=rt.depsTail=o,Ic(o);else if(o.version===-1&&(o.version=this.version,o.nextDep)){const n=o.nextDep;n.prevDep=o.prevDep,o.prevDep&&(o.prevDep.nextDep=n),o.prevDep=rt.depsTail,o.nextDep=void 0,rt.depsTail.nextDep=o,rt.depsTail=o,rt.deps===o&&(rt.deps=n)}return o}trigger(t){this.version++,Sa++,this.notify(t)}notify(t){ei();try{for(let o=this.subs;o;o=o.prevSub)o.sub.notify()&&o.sub.dep.notify()}finally{ti()}}}function Ic(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let n=t.deps;n;n=n.nextDep)Ic(n)}const o=e.dep.subs;o!==e&&(e.prevSub=o,o&&(o.nextSub=e)),e.dep.subs=e}}const Ts=new WeakMap,wn=Symbol(""),si=Symbol(""),Pa=Symbol("");function Rt(e,t,o){if(co&&rt){let n=Ts.get(e);n||Ts.set(e,n=new Map);let a=n.get(o);a||(n.set(o,a=new ai),a.map=n,a.key=o),a.track()}}function Bo(e,t,o,n,a,s){const r=Ts.get(e);if(!r){Sa++;return}const i=l=>{l&&l.trigger()};if(ei(),t==="clear")r.forEach(i);else{const l=Ee(e),c=l&&Ls(o);if(l&&o==="length"){const u=Number(n);r.forEach((p,g)=>{(g==="length"||g===Pa||!Kt(g)&&g>=u)&&i(p)})}else switch((o!==void 0||r.has(void 0))&&i(r.get(o)),c&&i(r.get(Pa)),t){case"add":l?c&&i(r.get("length")):(i(r.get(wn)),an(e)&&i(r.get(si)));break;case"delete":l||(i(r.get(wn)),an(e)&&i(r.get(si)));break;case"set":an(e)&&i(r.get(wn));break}}ti()}function uh(e,t){const o=Ts.get(e);return o&&o.get(t)}function Hn(e){const t=Ve(e);return t===e?t:(Rt(t,"iterate",Pa),Ht(e)?t:t.map(uo))}function Ns(e){return Rt(e=Ve(e),"iterate",Pa),e}function wo(e,t){return zo(e)?Yn(jo(e)?uo(t):t):uo(t)}const ph={__proto__:null,[Symbol.iterator](){return ri(this,Symbol.iterator,e=>wo(this,e))},concat(...e){return Hn(this).concat(...e.map(t=>Ee(t)?Hn(t):t))},entries(){return ri(this,"entries",e=>(e[1]=wo(this,e[1]),e))},every(e,t){return Go(this,"every",e,t,void 0,arguments)},filter(e,t){return Go(this,"filter",e,t,o=>o.map(n=>wo(this,n)),arguments)},find(e,t){return Go(this,"find",e,t,o=>wo(this,o),arguments)},findIndex(e,t){return Go(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Go(this,"findLast",e,t,o=>wo(this,o),arguments)},findLastIndex(e,t){return Go(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Go(this,"forEach",e,t,void 0,arguments)},includes(...e){return ii(this,"includes",e)},indexOf(...e){return ii(this,"indexOf",e)},join(e){return Hn(this).join(e)},lastIndexOf(...e){return ii(this,"lastIndexOf",e)},map(e,t){return Go(this,"map",e,t,void 0,arguments)},pop(){return Ca(this,"pop")},push(...e){return Ca(this,"push",e)},reduce(e,...t){return Oc(this,"reduce",e,t)},reduceRight(e,...t){return Oc(this,"reduceRight",e,t)},shift(){return Ca(this,"shift")},some(e,t){return Go(this,"some",e,t,void 0,arguments)},splice(...e){return Ca(this,"splice",e)},toReversed(){return Hn(this).toReversed()},toSorted(e){return Hn(this).toSorted(e)},toSpliced(...e){return Hn(this).toSpliced(...e)},unshift(...e){return Ca(this,"unshift",e)},values(){return ri(this,"values",e=>wo(this,e))}};function ri(e,t,o){const n=Ns(e),a=n[t]();return n!==e&&!Ht(e)&&(a._next=a.next,a.next=()=>{const s=a._next();return s.done||(s.value=o(s.value)),s}),a}const dh=Array.prototype;function Go(e,t,o,n,a,s){const r=Ns(e),i=r!==e&&!Ht(e),l=r[t];if(l!==dh[t]){const p=l.apply(e,s);return i?uo(p):p}let c=o;r!==e&&(i?c=function(p,g){return o.call(this,wo(e,p),g,e)}:o.length>2&&(c=function(p,g){return o.call(this,p,g,e)}));const u=l.call(r,c,n);return i&&a?a(u):u}function Oc(e,t,o,n){const a=Ns(e),s=a!==e&&!Ht(e);let r=o,i=!1;a!==e&&(s?(i=n.length===0,r=function(c,u,p){return i&&(i=!1,c=wo(e,c)),o.call(this,c,wo(e,u),p,e)}):o.length>3&&(r=function(c,u,p){return o.call(this,c,u,p,e)}));const l=a[t](r,...n);return i?wo(e,l):l}function ii(e,t,o){const n=Ve(e);Rt(n,"iterate",Pa);const a=n[t](...o);return(a===-1||a===!1)&&Os(o[0])?(o[0]=Ve(o[0]),n[t](...o)):a}function Ca(e,t,o=[]){_o(),ei();const n=Ve(e)[t].apply(e,o);return ti(),vo(),n}const gh=Hr("__proto__,__v_isRef,__isVue"),Dc=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Kt));function fh(e){Kt(e)||(e=String(e));const t=Ve(this);return Rt(t,"has",e),t.hasOwnProperty(e)}class Bc{constructor(t=!1,o=!1){this._isReadonly=t,this._isShallow=o}get(t,o,n){if(o==="__v_skip")return t.__v_skip;const a=this._isReadonly,s=this._isShallow;if(o==="__v_isReactive")return!a;if(o==="__v_isReadonly")return a;if(o==="__v_isShallow")return s;if(o==="__v_raw")return n===(a?s?Kc:Vc:s?Uc:zc).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const r=Ee(t);if(!a){let l;if(r&&(l=ph[o]))return l;if(o==="hasOwnProperty")return fh}const i=Reflect.get(t,o,ut(t)?t:n);if((Kt(o)?Dc.has(o):gh(o))||(a||Rt(t,"get",o),s))return i;if(ut(i)){const l=r&&Ls(o)?i:i.value;return a&&Qe(l)?kn(l):l}return Qe(i)?a?kn(i):qn(i):i}}class Gc extends Bc{constructor(t=!1){super(!1,t)}set(t,o,n,a){let s=t[o];const r=Ee(t)&&Ls(o);if(!this._isShallow){const c=zo(s);if(!Ht(n)&&!zo(n)&&(s=Ve(s),n=Ve(n)),!r&&ut(s)&&!ut(n))return c||(s.value=n),!0}const i=r?Number(o)e,Rs=e=>Reflect.getPrototypeOf(e);function yh(e,t,o){return function(...n){const a=this.__v_raw,s=Ve(a),r=an(s),i=e==="entries"||e===Symbol.iterator&&r,l=e==="keys"&&r,c=a[e](...n),u=o?li:t?Yn:uo;return!t&&Rt(s,"iterate",l?si:wn),ft(Object.create(c),{next(){const{value:p,done:g}=c.next();return g?{value:p,done:g}:{value:i?[u(p[0]),u(p[1])]:u(p),done:g}}})}}function Ms(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function _h(e,t){const o={get(a){const s=this.__v_raw,r=Ve(s),i=Ve(a);e||(yo(a,i)&&Rt(r,"get",a),Rt(r,"get",i));const{has:l}=Rs(r),c=t?li:e?Yn:uo;if(l.call(r,a))return c(s.get(a));if(l.call(r,i))return c(s.get(i));s!==r&&s.get(a)},get size(){const a=this.__v_raw;return!e&&Rt(Ve(a),"iterate",wn),a.size},has(a){const s=this.__v_raw,r=Ve(s),i=Ve(a);return e||(yo(a,i)&&Rt(r,"has",a),Rt(r,"has",i)),a===i?s.has(a):s.has(a)||s.has(i)},forEach(a,s){const r=this,i=r.__v_raw,l=Ve(i),c=t?li:e?Yn:uo;return!e&&Rt(l,"iterate",wn),i.forEach((u,p)=>a.call(s,c(u),c(p),r))}};return ft(o,e?{add:Ms("add"),set:Ms("set"),delete:Ms("delete"),clear:Ms("clear")}:{add(a){const s=Ve(this),r=Rs(s),i=Ve(a),l=!t&&!Ht(a)&&!zo(a)?i:a;return r.has.call(s,l)||yo(a,l)&&r.has.call(s,a)||yo(i,l)&&r.has.call(s,i)||(s.add(l),Bo(s,"add",l,l)),this},set(a,s){!t&&!Ht(s)&&!zo(s)&&(s=Ve(s));const r=Ve(this),{has:i,get:l}=Rs(r);let c=i.call(r,a);c||(a=Ve(a),c=i.call(r,a));const u=l.call(r,a);return r.set(a,s),c?yo(s,u)&&Bo(r,"set",a,s):Bo(r,"add",a,s),this},delete(a){const s=Ve(this),{has:r,get:i}=Rs(s);let l=r.call(s,a);l||(a=Ve(a),l=r.call(s,a)),i&&i.call(s,a);const c=s.delete(a);return l&&Bo(s,"delete",a,void 0),c},clear(){const a=Ve(this),s=a.size!==0,r=a.clear();return s&&Bo(a,"clear",void 0,void 0),r}}),["keys","values","entries",Symbol.iterator].forEach(a=>{o[a]=yh(a,e,t)}),o}function Fs(e,t){const o=_h(e,t);return(n,a,s)=>a==="__v_isReactive"?!e:a==="__v_isReadonly"?e:a==="__v_raw"?n:Reflect.get(Je(o,a)&&a in n?o:n,a,s)}const vh={get:Fs(!1,!1)},wh={get:Fs(!1,!0)},kh={get:Fs(!0,!1)},xh={get:Fs(!0,!0)},zc=new WeakMap,Uc=new WeakMap,Vc=new WeakMap,Kc=new WeakMap;function Lh(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function qn(e){return zo(e)?e:Is(e,!1,hh,vh,zc)}function Ah(e){return Is(e,!1,bh,wh,Uc)}function kn(e){return Is(e,!0,mh,kh,Vc)}function SE(e){return Is(e,!0,$h,xh,Kc)}function Is(e,t,o,n,a){if(!Qe(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const s=a.get(e);if(s)return s;const r=Lh(Jf(e));if(r===0)return e;const i=new Proxy(e,r===2?n:o);return a.set(e,i),i}function jo(e){return zo(e)?jo(e.__v_raw):!!(e&&e.__v_isReactive)}function zo(e){return!!(e&&e.__v_isReadonly)}function Ht(e){return!!(e&&e.__v_isShallow)}function Os(e){return e?!!e.__v_raw:!1}function Ve(e){const t=e&&e.__v_raw;return t?Ve(t):e}function Wn(e){return!Je(e,"__v_skip")&&Object.isExtensible(e)&&_c(e,"__v_skip",!0),e}const uo=e=>Qe(e)?qn(e):e,Yn=e=>Qe(e)?kn(e):e;function ut(e){return e?e.__v_isRef===!0:!1}function ge(e){return Hc(e,!1)}function Ea(e){return Hc(e,!0)}function Hc(e,t){return ut(e)?e:new Sh(e,t)}class Sh{constructor(t,o){this.dep=new ai,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=o?t:Ve(t),this._value=o?t:uo(t),this.__v_isShallow=o}get value(){return this.dep.track(),this._value}set value(t){const o=this._rawValue,n=this.__v_isShallow||Ht(t)||zo(t);t=n?t:Ve(t),yo(t,o)&&(this._rawValue=t,this._value=n?t:uo(t),this.dep.trigger())}}function ue(e){return ut(e)?e.value:e}const Ph={get:(e,t,o)=>t==="__v_raw"?e:ue(Reflect.get(e,t,o)),set:(e,t,o,n)=>{const a=e[t];return ut(a)&&!ut(o)?(a.value=o,!0):Reflect.set(e,t,o,n)}};function qc(e){return jo(e)?e:new Proxy(e,Ph)}function Ch(e){const t=Ee(e)?new Array(e.length):{};for(const o in e)t[o]=Wc(e,o);return t}class Eh{constructor(t,o,n){this._object=t,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._key=Kt(o)?o:String(o),this._raw=Ve(t);let a=!0,s=t;if(!Ee(t)||Kt(this._key)||!Ls(this._key))do a=!Os(s)||Ht(s);while(a&&(s=s.__v_raw));this._shallow=a}get value(){let t=this._object[this._key];return this._shallow&&(t=ue(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&ut(this._raw[this._key])){const o=this._object[this._key];if(ut(o)){o.value=t;return}}this._object[this._key]=t}get dep(){return uh(this._raw,this._key)}}class Th{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Ds(e,t,o){return ut(e)?e:De(e)?new Th(e):Qe(e)&&arguments.length>1?Wc(e,t,o):ge(e)}function Wc(e,t,o){return new Eh(e,t,o)}class Nh{constructor(t,o,n){this.fn=t,this.setter=o,this._value=void 0,this.dep=new ai(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Sa-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!o,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&rt!==this)return Ec(this,!0),!0}get value(){const t=this.dep.track();return Rc(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Rh(e,t,o=!1){let n,a;return De(e)?n=e:(n=e.get,a=e.set),new Nh(n,a,o)}const Bs={},Gs=new WeakMap;let xn;function Mh(e,t=!1,o=xn){if(o){let n=Gs.get(o);n||Gs.set(o,n=[]),n.push(e)}}function Fh(e,t,o=at){const{immediate:n,deep:a,once:s,scheduler:r,augmentJob:i,call:l}=o,c=k=>a?k:Ht(k)||a===!1||a===0?Uo(k,1):Uo(k);let u,p,g,A,w=!1,h=!1;if(ut(e)?(p=()=>e.value,w=Ht(e)):jo(e)?(p=()=>c(e),w=!0):Ee(e)?(h=!0,w=e.some(k=>jo(k)||Ht(k)),p=()=>e.map(k=>{if(ut(k))return k.value;if(jo(k))return c(k);if(De(k))return l?l(k,2):k()})):De(e)?t?p=l?()=>l(e,2):e:p=()=>{if(g){_o();try{g()}finally{vo()}}const k=xn;xn=u;try{return l?l(e,3,[A]):e(A)}finally{xn=k}}:p=$o,t&&a){const k=p,E=a===!0?1/0:a;p=()=>Uo(k(),E)}const v=Sc(),$=()=>{u.stop(),v&&v.active&&qr(v.effects,u)};if(s&&t){const k=t;t=(...E)=>{const x=k(...E);return $(),x}}let m=h?new Array(e.length).fill(Bs):Bs;const b=k=>{if(!(!(u.flags&1)||!u.dirty&&!k))if(t){const E=u.run();if(k||a||w||(h?E.some((x,f)=>yo(x,m[f])):yo(E,m))){g&&g();const x=xn;xn=u;try{const f=[E,m===Bs?void 0:h&&m[0]===Bs?[]:m,A];m=E,l?l(t,3,f):t(...f)}finally{xn=x}}}else u.run()};return i&&i(b),u=new Pc(p),u.scheduler=r?()=>r(b,!1):b,A=k=>Mh(k,!1,u),g=u.onStop=()=>{const k=Gs.get(u);if(k){if(l)l(k,4);else for(const E of k)E();Gs.delete(u)}},t?n?b(!0):m=u.run():r?r(b.bind(null,!0),!0):u.run(),$.pause=u.pause.bind(u),$.resume=u.resume.bind(u),$.stop=$,$}function Uo(e,t=1/0,o){if(t<=0||!Qe(e)||e.__v_skip||(o=o||new Map,(o.get(e)||0)>=t))return e;if(o.set(e,t),t--,ut(e))Uo(e.value,t,o);else if(Ee(e))for(let n=0;n{Uo(n,t,o)});else if(xs(e)){for(const n in e)Uo(e[n],t,o);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&Uo(e[n],t,o)}return e}/** * @vue/runtime-core v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/const $a=[];let Ur=!1;function qP(e,...t){if(Ur)return;Ur=!0,fo();const o=$a.length?$a[$a.length-1].component:null,n=o&&o.appContext.config.warnHandler,a=Zf();if(n)On(n,o,11,[e+t.map(s=>{var r,i;return(i=(r=s.toString)==null?void 0:r.call(s))!=null?i:JSON.stringify(s)}).join(""),o&&o.proxy,a.map(({vnode:s})=>`at <${ku(o,s.type)}>`).join(` +**/const Ta=[];let ci=!1;function PE(e,...t){if(ci)return;ci=!0,_o();const o=Ta.length?Ta[Ta.length-1].component:null,n=o&&o.appContext.config.warnHandler,a=Ih();if(n)Xn(n,o,11,[e+t.map(s=>{var r,i;return(i=(r=s.toString)==null?void 0:r.call(s))!=null?i:JSON.stringify(s)}).join(""),o&&o.proxy,a.map(({vnode:s})=>`at <${Zu(o,s.type)}>`).join(` `),a]);else{const s=[`[Vue warn]: ${e}`,...t];a.length&&s.push(` -`,...Jf(a)),console.warn(...s)}ho(),Ur=!1}function Zf(){let e=$a[$a.length-1];if(!e)return[];const t=[];for(;e;){const o=t[0];o&&o.vnode===e?o.recurseCount++:t.push({vnode:e,recurseCount:0});const n=e.component&&e.component.parent;e=n&&n.vnode}return t}function Jf(e){const t=[];return e.forEach((o,n)=>{t.push(...n===0?[]:[` -`],...Qf(o))}),t}function Qf({vnode:e,recurseCount:t}){const o=t>0?`... (${t} recursive calls)`:"",n=e.component?e.component.parent==null:!1,a=` at <${ku(e.component,e.type,n)}`,s=">"+o;return e.props?[a,...eh(e.props),s]:[a+s]}function eh(e){const t=[],o=Object.keys(e);return o.slice(0,3).forEach(n=>{t.push(...Lc(n,e[n]))}),o.length>3&&t.push(" ..."),t}function Lc(e,t,o){return it(t)?(t=JSON.stringify(t),o?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?o?t:[`${e}=${t}`]:ut(t)?(t=Lc(e,He(t.value),!0),o?t:[`${e}=Ref<`,t,">"]):De(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=He(t),o?t:[`${e}=`,t])}function On(e,t,o,n){try{return n?e(...n):e()}catch(a){ya(a,t,o)}}function so(e,t,o,n){if(De(e)){const a=On(e,t,o,n);return a&&ql(a)&&a.catch(s=>{ya(s,t,o)}),a}if(Me(e)){const a=[];for(let s=0;s>>1,a=Ft[n],s=_a(a);s=_a(o)?Ft.push(e):Ft.splice(oh(t),0,e),e.flags|=1,Sc()}}function Sc(){vs||(vs=Ac.then(Ec))}function nh(e){if(!Me(e))Yo&&e.id===-1?Yo.splice(Gn+1,0,e):e.flags&1||(Dn.push(e),e.flags|=1);else for(let t=0;t_a(o)-_a(n));if(Dn.length=0,Yo){for(let o=0;oe.id==null?e.flags&2?-1:1/0:e.id;function Ec(e){try{for(bo=0;bo{n._d&&Rs(-1);const s=ws(t),r=Oo.length;let i;try{i=e(...a)}finally{for(let l=Oo.length;l>r;l--)ii();ws(s),n._d&&Rs(1)}return i};return n._n=!0,n._c=!0,n._d=!0,n}function Kr(e,t){if(St===null)return e;const o=Os(St),n=e.dirs||(e.dirs=[]);for(let a=0;a1)return o&&De(t)?t.call(n&&n.proxy):t}}function ah(){return!!(wo()||hn)}const sh=Symbol.for("v-scx"),rh=()=>Ne(sh);function ih(e,t){return Hr(e,null,t)}function Ie(e,t,o){return Hr(e,t,o)}function Hr(e,t,o=st){const{immediate:n,deep:a,flush:s,once:r}=o,i=mt({},o),l=t&&n||!t&&s!=="post";let c;if(zn){if(s==="sync"){const S=rh();c=S.__watcherHandles||(S.__watcherHandles=[])}else if(!l){const S=()=>{};return S.stop=po,S.resume=po,S.pause=po,S}}const u=Ct;i.call=(S,v,b)=>so(S,u,v,b);let p=!1;s==="post"?i.scheduler=S=>{Dt(S,u&&u.suspense)}:s!=="sync"&&(p=!0,i.scheduler=(S,v)=>{v?S():Vr(S)}),i.augmentJob=S=>{t&&(S.flags|=4),p&&(S.flags|=2,u&&(S.id=u.uid,S.i=u))};const g=Xf(e,t,i);return zn&&(c?c.push(g):l&&g()),g}function lh(e,t,o){const n=this.proxy,a=it(e)?e.includes(".")?Nc(n,e):()=>n[e]:e.bind(n,n);let s;De(t)?s=t:(s=t.handler,o=t);const r=Ta(this),i=Hr(a,s.bind(n),o);return r(),i}function Nc(e,t){const o=t.split(".");return()=>{let n=e;for(let a=0;ae.__isTeleport,gn=e=>e&&(e.disabled||e.disabled===""),ch=e=>e&&(e.defer||e.defer===""),Mc=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Fc=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,qr=(e,t)=>{const o=e&&e.to;return it(o)?t?t(o):null:o},uh={name:"Teleport",__isTeleport:!0,process(e,t,o,n,a,s,r,i,l,c){const{mc:u,pc:p,pbc:g,o:{insert:S,querySelector:v,createText:b,createComment:_,parentNode:$}}=c,f=gn(t.props);let{dynamicChildren:m}=t;const k=(d,C,A)=>{d.shapeFlag&16&&u(d.children,C,A,a,s,r,i,l)},h=(d=t)=>{const C=gn(d.props),A=d.target=qr(d.props,v),B=Wr(A,d,b,S);A&&(r!=="svg"&&Mc(A)?r="svg":r!=="mathml"&&Fc(A)&&(r="mathml"),a&&a.isCE&&(a.ce._teleportTargets||(a.ce._teleportTargets=new Set)).add(A),C||(k(d,A,B),va(d,!1)))},P=d=>{const C=()=>{if(Xo.get(d)===C){if(Xo.delete(d),gn(d.props)){const A=$(d.el)||o;k(d,A,d.anchor),va(d,!0)}h(d)}};Xo.set(d,C),Dt(C,s)};if(e==null){const d=t.el=b(""),C=t.anchor=b("");if(S(d,o,n),S(C,o,n),ch(t.props)||s&&s.pendingBranch){P(t);return}f&&(k(t,o,C),va(t,!0)),h()}else{t.el=e.el;const d=t.anchor=e.anchor,C=Xo.get(e);if(C){C.flags|=8,Xo.delete(e),P(t);return}t.targetStart=e.targetStart;const A=t.target=e.target,B=t.targetAnchor=e.targetAnchor,V=gn(e.props),J=V?o:A,z=V?d:B;if(r==="svg"||Mc(A)?r="svg":(r==="mathml"||Fc(A))&&(r="mathml"),m?(g(e.dynamicChildren,m,J,a,s,r,i),ri(e,t,!0)):l||p(e,t,J,z,a,s,r,i,!1),f)V?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):xs(t,o,d,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const D=qr(t.props,v);D&&(t.target=D,xs(t,D,null,c,0))}else V&&xs(t,A,B,c,1);va(t,f)}},remove(e,t,o,{um:n,o:{remove:a}},s){const{shapeFlag:r,children:i,anchor:l,targetStart:c,targetAnchor:u,target:p,props:g}=e,S=gn(g),v=s||!S,b=Xo.get(e);if(b&&(b.flags|=8,Xo.delete(e)),p&&(a(c),a(u)),s&&a(l),!b&&(S||p)&&r&16)for(let _=0;_1){for(const o of e)if(o.type!==yo){t=o;break}}return t}function Ic(e){if(!Ss(e))return ks(e.type)&&e.children?gh(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:o}=e;if(o){if(t&16)return o[0];if(t&32&&De(o.default))return o.default()}}function Xr(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const o=e.component.subTree;Xr(ks(o.type)&&Ic(o)||o,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function wa(e,t){return De(e)?mt({name:e.name},t,{setup:e}):e}function Zr(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function Oc(e,t){let o;return!!((o=Object.getOwnPropertyDescriptor(e,t))&&!o.configurable)}const Ls=new WeakMap;function ka(e,t,o,n,a=!1){if(Me(e)){e.forEach((b,_)=>ka(b,t&&(Me(t)?t[_]:t),o,n,a));return}if(Bn(n)&&!a){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&ka(e,t,o,n.component.subTree);return}const s=n.shapeFlag&4?Os(n.component):n.el,r=a?null:s,{i,r:l}=e,c=t&&t.r,u=i.refs===st?i.refs={}:i.refs,p=i.setupState,g=He(p),S=p===st?Kl:b=>Oc(u,b)?!1:Ze(g,b),v=(b,_)=>!(_&&Oc(u,_));if(c!=null&&c!==l){if(Dc(t),it(c))u[c]=null,S(c)&&(p[c]=null);else if(ut(c)){const b=t;v(c,b.k)&&(c.value=null),b.k&&(u[b.k]=null)}}if(De(l))On(l,i,12,[r,u]);else{const b=it(l),_=ut(l);if(b||_){const $=()=>{if(e.f){const f=b?S(l)?p[l]:u[l]:v()||!e.k?l.value:u[e.k];if(a)Me(f)&&Pr(f,s);else if(Me(f))f.includes(s)||f.push(s);else if(b)u[l]=[s],S(l)&&(p[l]=u[l]);else{const m=[s];v(l,e.k)&&(l.value=m),e.k&&(u[e.k]=m)}}else b?(u[l]=r,S(l)&&(p[l]=r)):_&&(v(l,e.k)&&(l.value=r),e.k&&(u[e.k]=r))};if(r){const f=()=>{$(),Ls.delete(e)};f.id=-1,Ls.set(e,f),Dt(f,o)}else Dc(e),$()}}}function Dc(e){const t=Ls.get(e);t&&(t.flags|=8,Ls.delete(e))}const Gc=e=>e.nodeType===8;cs().requestIdleCallback,cs().cancelIdleCallback;function fh(e,t){if(Gc(e)&&e.data==="["){let o=1,n=e.nextSibling;for(;n;){if(n.nodeType===1){if(t(n)===!1)break}else if(Gc(n))if(n.data==="]"){if(--o===0)break}else n.data==="["&&o++;n=n.nextSibling}}else t(e)}const Bn=e=>!!e.type.__asyncLoader;function hh(e){De(e)&&(e={loader:e});const{loader:t,loadingComponent:o,errorComponent:n,delay:a=200,hydrate:s,timeout:r,suspensible:i=!0,onError:l}=e;let c=null,u,p=0;const g=()=>(p++,c=null,S()),S=()=>{let v;return c||(v=c=t().catch(b=>{if(b=b instanceof Error?b:new Error(String(b)),l)return new Promise((_,$)=>{l(b,()=>_(g()),()=>$(b),p+1)});throw b}).then(b=>v!==c&&c?c:(b&&(b.__esModule||b[Symbol.toStringTag]==="Module")&&(b=b.default),u=b,b)))};return wa({name:"AsyncComponentWrapper",__asyncLoader:S,__asyncHydrate(v,b,_){const $=v.isConnected;let f=!1;(b.bu||(b.bu=[])).push(()=>f=!0);const m=()=>{f||!v.parentNode||$&&!v.isConnected||_()},k=s?()=>{const h=s(m,P=>fh(v,P));h&&(b.bum||(b.bum=[])).push(h)}:m;u?k():S().then(()=>!b.isUnmounted&&k())},get __asyncResolved(){return u},setup(){const v=Ct;if(Zr(v),u)return()=>As(u,v);const b=h=>{c=null,ya(h,v,13,!n)};if(i&&v.suspense||zn)return S().then(h=>()=>As(h,v)).catch(h=>(b(h),()=>n?tt(n,{error:h}):null));const _=he(!1),$=he(),f=he(!!a);let m,k;return Cs(()=>{m!=null&&clearTimeout(m),k!=null&&clearTimeout(k)}),a&&(k=setTimeout(()=>{v.isUnmounted||(f.value=!1)},a)),r!=null&&(m=setTimeout(()=>{if(!v.isUnmounted&&!_.value&&!$.value){const h=new Error(`Async component timed out after ${r}ms.`);b(h),$.value=h}},r)),S().then(()=>{v.isUnmounted||(_.value=!0,v.parent&&Ss(v.parent.vnode)&&v.parent.update())}).catch(h=>{if(v.isUnmounted){c=null;return}b(h),$.value=h}),()=>{if(_.value&&u)return As(u,v);if($.value&&n)return tt(n,{error:$.value});if(o&&!f.value)return As(o,v)}}})}function As(e,t){const{ref:o,props:n,children:a,ce:s}=t.vnode,r=tt(e,n,a);return r.ref=o,r.ce=s,delete t.vnode.ce,r}const Ss=e=>e.type.__isKeepAlive;function mh(e,t){Bc(e,"a",t)}function bh(e,t){Bc(e,"da",t)}function Bc(e,t,o=Ct){const n=e.__wdc||(e.__wdc=()=>{let a=o;for(;a;){if(a.isDeactivated)return;a=a.parent}return e()});if(Ps(t,n,o),o){let a=o.parent;for(;a&&a.parent;)Ss(a.parent.vnode)&&$h(n,t,o,a),a=a.parent}}function $h(e,t,o,n){const a=Ps(t,e,n,!0);Cs(()=>{Pr(n[t],a)},o)}function Ps(e,t,o=Ct,n=!1){if(o){const a=o[e]||(o[e]=[]),s=t.__weh||(t.__weh=(...r)=>{fo();const i=Ta(o),l=so(t,o,e,r);return i(),ho(),l});return n?a.unshift(s):a.push(s),s}}const Io=e=>(t,o=Ct)=>{(!zn||e==="sp")&&Ps(e,(...n)=>t(...n),o)},jc=Io("bm"),$o=Io("m"),yh=Io("bu"),_h=Io("u"),Xt=Io("bum"),Cs=Io("um"),vh=Io("sp"),wh=Io("rtg"),kh=Io("rtc");function xh(e,t=Ct){Ps("ec",e,t)}const Lh="components",zc=Symbol.for("v-ndc");function Uc(e){return it(e)?Ah(Lh,e,!1)||e:e||zc}function Ah(e,t,o=!0,n=!1){const a=St||Ct;if(a){const s=a.type;{const i=wu(s,!1);if(i&&(i===t||i===xt(t)||i===is(xt(t))))return s}const r=Vc(a[e]||s[e],t)||Vc(a.appContext[e],t);return!r&&n?s:r}}function Vc(e,t){return e&&(e[t]||e[xt(t)]||e[is(xt(t))])}function Rt(e,t,o,n){let a;const s=o,r=Me(e);if(r||it(e)){const i=r&&Ro(e);let l=!1,c=!1;i&&(l=!Kt(e),c=Mo(e),e=ds(e)),a=new Array(e.length);for(let u=0,p=e.length;ut(i,l,void 0,s));else{const i=Object.keys(e);a=new Array(i.length);for(let l=0,c=i.length;l0;return t!=="default"&&(c.name=t),ae(),et(Ue,null,[tt("slot",c,n)],u?-2:64)}let r=e[t];r&&r._c&&(r._d=!1);const i=Oo.length;ae();let l;try{const c=r&&Kc(r(o)),u=o.key||s||c&&c.key;l=et(Ue,{key:(u&&!Vt(u)?u:`_${t}`)+(!c&&n?"_fb":"")},c||(n?n():[]),c&&e._===1?64:-2)}catch(c){for(let u=Oo.length;u>i;u--)ii();throw c}finally{r&&r._c&&(r._d=!0)}return!a&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),l}function Kc(e){return e.some(t=>Pa(t)?!(t.type===yo||t.type===Ue&&!Kc(t.children)):!0)?e:null}const Jr=e=>e?yu(e)?Os(e):Jr(e.parent):null,xa=mt(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=>Jr(e.parent),$root:e=>Jr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Yc(e),$forceUpdate:e=>e.f||(e.f=()=>{Vr(e.update)}),$nextTick:e=>e.n||(e.n=It.bind(e.proxy)),$watch:e=>lh.bind(e)}),Qr=(e,t)=>e!==st&&!e.__isScriptSetup&&Ze(e,t),Sh={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:o,setupState:n,data:a,props:s,accessCache:r,type:i,appContext:l}=e;if(t[0]!=="$"){const g=r[t];if(g!==void 0)switch(g){case 1:return n[t];case 2:return a[t];case 4:return o[t];case 3:return s[t]}else{if(Qr(n,t))return r[t]=1,n[t];if(a!==st&&Ze(a,t))return r[t]=2,a[t];if(Ze(s,t))return r[t]=3,s[t];if(o!==st&&Ze(o,t))return r[t]=4,o[t];ei&&(r[t]=0)}}const c=xa[t];let u,p;if(c)return t==="$attrs"&&Nt(e.attrs,"get",""),c(e);if((u=i.__cssModules)&&(u=u[t]))return u;if(o!==st&&Ze(o,t))return r[t]=4,o[t];if(p=l.config.globalProperties,Ze(p,t))return p[t]},set({_:e},t,o){const{data:n,setupState:a,ctx:s}=e;return Qr(a,t)?(a[t]=o,!0):n!==st&&Ze(n,t)?(n[t]=o,!0):Ze(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(s[t]=o,!0)},has({_:{data:e,setupState:t,accessCache:o,ctx:n,appContext:a,props:s,type:r}},i){let l;return!!(o[i]||e!==st&&i[0]!=="$"&&Ze(e,i)||Qr(t,i)||Ze(s,i)||Ze(n,i)||Ze(xa,i)||Ze(a.config.globalProperties,i)||(l=r.__cssModules)&&l[i])},defineProperty(e,t,o){return o.get!=null?e._.accessCache[t]=0:Ze(o,"value")&&this.set(e,t,o.value,null),Reflect.defineProperty(e,t,o)}};function Hc(e){return Me(e)?e.reduce((t,o)=>(t[o]=null,t),{}):e}let ei=!0;function Ph(e){const t=Yc(e),o=e.proxy,n=e.ctx;ei=!1,t.beforeCreate&&qc(t.beforeCreate,e,"bc");const{data:a,computed:s,methods:r,watch:i,provide:l,inject:c,created:u,beforeMount:p,mounted:g,beforeUpdate:S,updated:v,activated:b,deactivated:_,beforeDestroy:$,beforeUnmount:f,destroyed:m,unmounted:k,render:h,renderTracked:P,renderTriggered:d,errorCaptured:C,serverPrefetch:A,expose:B,inheritAttrs:V,components:J,directives:z,filters:D}=t;if(c&&Ch(c,n,null),r)for(const R in r){const U=r[R];De(U)&&(n[R]=U.bind(o))}if(a){const R=a.call(o,o);Je(R)&&(e.data=Mn(R))}if(ei=!0,s)for(const R in s){const U=s[R],H=De(U)?U.bind(o,o):De(U.get)?U.get.bind(o,o):po,Q=!De(U)&&De(U.set)?U.set.bind(o):po,re=oe({get:H,set:Q});Object.defineProperty(n,R,{enumerable:!0,configurable:!0,get:()=>re.value,set:j=>re.value=j})}if(i)for(const R in i)Wc(i[R],n,o,R);if(l){const R=De(l)?l.call(o):l;Reflect.ownKeys(R).forEach(U=>{vt(U,R[U])})}u&&qc(u,e,"c");function y(R,U){Me(U)?U.forEach(H=>R(H.bind(o))):U&&R(U.bind(o))}if(y(jc,p),y($o,g),y(yh,S),y(_h,v),y(mh,b),y(bh,_),y(xh,C),y(kh,P),y(wh,d),y(Xt,f),y(Cs,k),y(vh,A),Me(B))if(B.length){const R=e.exposed||(e.exposed={});B.forEach(U=>{Object.defineProperty(R,U,{get:()=>o[U],set:H=>o[U]=H,enumerable:!0})})}else e.exposed||(e.exposed={});h&&e.render===po&&(e.render=h),V!=null&&(e.inheritAttrs=V),J&&(e.components=J),z&&(e.directives=z),A&&Zr(e)}function Ch(e,t,o=po){Me(e)&&(e=ti(e));for(const n in e){const a=e[n];let s;Je(a)?"default"in a?s=Ne(a.from||n,a.default,!0):s=Ne(a.from||n):s=Ne(a),ut(s)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>s.value,set:r=>s.value=r}):t[n]=s}}function qc(e,t,o){so(Me(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,o)}function Wc(e,t,o,n){let a=n.includes(".")?Nc(o,n):()=>o[n];if(it(e)){const s=t[e];De(s)&&Ie(a,s)}else if(De(e))Ie(a,e.bind(o));else if(Je(e))if(Me(e))e.forEach(s=>Wc(s,t,o,n));else{const s=De(e.handler)?e.handler.bind(o):t[e.handler];De(s)&&Ie(a,s,e)}}function Yc(e){const t=e.type,{mixins:o,extends:n}=t,{mixins:a,optionsCache:s,config:{optionMergeStrategies:r}}=e.appContext,i=s.get(t);let l;return i?l=i:!a.length&&!o&&!n?l=t:(l={},a.length&&a.forEach(c=>Es(l,c,r,!0)),Es(l,t,r)),Je(t)&&s.set(t,l),l}function Es(e,t,o,n=!1){const{mixins:a,extends:s}=t;s&&Es(e,s,o,!0),a&&a.forEach(r=>Es(e,r,o,!0));for(const r in t)if(!(n&&r==="expose")){const i=Eh[r]||o&&o[r];e[r]=i?i(e[r],t[r]):t[r]}return e}const Eh={data:Xc,props:Zc,emits:Zc,methods:La,computed:La,beforeCreate:Ot,created:Ot,beforeMount:Ot,mounted:Ot,beforeUpdate:Ot,updated:Ot,beforeDestroy:Ot,beforeUnmount:Ot,destroyed:Ot,unmounted:Ot,activated:Ot,deactivated:Ot,errorCaptured:Ot,serverPrefetch:Ot,components:La,directives:La,watch:Nh,provide:Xc,inject:Th};function Xc(e,t){return t?e?function(){return mt(De(e)?e.call(this,this):e,De(t)?t.call(this,this):t)}:t:e}function Th(e,t){return La(ti(e),ti(t))}function ti(e){if(Me(e)){const t={};for(let o=0;ot==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${xt(t)}Modifiers`]||e[`${Yt(t)}Modifiers`];function Ih(e,t,...o){if(e.isUnmounted)return;const n=e.vnode.props||st;let a=o;const s=t.startsWith("update:"),r=s&&Fh(n,t.slice(7));r&&(r.trim&&(a=o.map(u=>it(u)?u.trim():u)),r.number&&(a=a.map(Er)));let i,l=n[i=Cr(t)]||n[i=Cr(xt(t))];!l&&s&&(l=n[i=Cr(Yt(t))]),l&&so(l,e,6,a);const c=n[i+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[i])return;e.emitted[i]=!0,so(c,e,6,a)}}const Oh=new WeakMap;function Qc(e,t,o=!1){const n=o?Oh:t.emitsCache,a=n.get(e);if(a!==void 0)return a;const s=e.emits;let r={},i=!1;if(!De(e)){const l=c=>{const u=Qc(c,t,!0);u&&(i=!0,mt(r,u))};!o&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!s&&!i?(Je(e)&&n.set(e,null),null):(Me(s)?s.forEach(l=>r[l]=null):mt(r,s),Je(e)&&n.set(e,r),r)}function Ts(e,t){return!e||!ts(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),Ze(e,t[0].toLowerCase()+t.slice(1))||Ze(e,Yt(t))||Ze(e,t))}function WP(){}function eu(e){const{type:t,vnode:o,proxy:n,withProxy:a,propsOptions:[s],slots:r,attrs:i,emit:l,render:c,renderCache:u,props:p,data:g,setupState:S,ctx:v,inheritAttrs:b}=e,_=ws(e);let $,f;try{if(o.shapeFlag&4){const k=a||n,h=k;$=_o(c.call(h,k,u,p,S,g,v)),f=i}else{const k=t;$=_o(k.length>1?k(p,{attrs:i,slots:r,emit:l}):k(p,null)),f=t.props?i:Dh(i)}}catch(k){Oo.length=0,ya(k,e,1),$=tt(yo)}let m=$;if(f&&b!==!1){const k=Object.keys(f),{shapeFlag:h}=m;k.length&&h&7&&(s&&k.some(os)&&(f=Gh(f,s)),m=jn(m,f,!1,!0))}if(o.dirs&&(m=jn(m,null,!1,!0),m.dirs=m.dirs?m.dirs.concat(o.dirs):o.dirs),o.transition){const k=ks(m.type)&&Ic(m)||m;Xr(k,o.transition)}return $=m,ws(_),$}const Dh=e=>{let t;for(const o in e)(o==="class"||o==="style"||ts(o))&&((t||(t={}))[o]=e[o]);return t},Gh=(e,t)=>{const o={};for(const n in e)(!os(n)||!(n.slice(9)in t))&&(o[n]=e[n]);return o};function Bh(e,t,o){const{props:n,children:a,component:s}=e,{props:r,children:i,patchFlag:l}=t,c=s.emitsOptions;if(t.dirs||t.transition)return!0;if(o&&l>=0){if(l&1024)return!0;if(l&16)return n?tu(n,r,c):!!r;if(l&8){const u=t.dynamicProps;for(let p=0;pObject.create(nu),su=e=>Object.getPrototypeOf(e)===nu;function zh(e,t,o,n=!1){const a={},s=au();e.propsDefaults=Object.create(null),ru(e,t,a,s);for(const r in e.propsOptions[0])r in a||(a[r]=void 0);o?e.props=n?a:jf(a):e.type.props?e.props=a:e.props=s,e.attrs=s}function Uh(e,t,o,n){const{props:a,attrs:s,vnode:{patchFlag:r}}=e,i=He(a),[l]=e.propsOptions;let c=!1;if((n||r>0)&&!(r&16)){if(r&8){const u=e.vnode.dynamicProps;for(let p=0;p{l=!0;const[g,S]=iu(p,t,!0);mt(r,g),S&&i.push(...S)};!o&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!s&&!l)return Je(e)&&n.set(e,Nn),Nn;if(Me(s))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",ai=e=>Me(e)?e.map(_o):[_o(e)],Kh=(e,t,o)=>{if(t._n)return t;const n=jt((...a)=>ai(t(...a)),o);return n._c=!1,n},cu=(e,t,o)=>{const n=e._ctx;for(const a in e){if(ni(a))continue;const s=e[a];if(De(s))t[a]=Kh(a,s,n);else if(s!=null){const r=ai(s);t[a]=()=>r}}},uu=(e,t)=>{const o=ai(t);e.slots.default=()=>o},pu=(e,t,o)=>{for(const n in t)(o||!ni(n))&&(e[n]=t[n])},Hh=(e,t,o)=>{const n=e.slots=au();if(e.vnode.shapeFlag&32){const a=t._;a?(pu(n,t,o),o&&Yl(n,"_",a,!0)):cu(t,n)}else t&&uu(e,t)},qh=(e,t,o)=>{const{vnode:n,slots:a}=e;let s=!0,r=st;if(n.shapeFlag&32){const i=t._;i?o&&i===1?s=!1:pu(a,t,o):(s=!t.$stable,cu(t,a)),r=t}else t&&(uu(e,t),r={default:1});if(s)for(const i in a)!ni(i)&&r[i]==null&&delete a[i]},Dt=Jh;function Wh(e){return Yh(e)}function Yh(e,t){const o=cs();o.__VUE__=!0;const{insert:n,remove:a,patchProp:s,createElement:r,createText:i,createComment:l,setText:c,setElementText:u,parentNode:p,nextSibling:g,setScopeId:S=po,insertStaticContent:v}=e,b=(T,F,I,W=null,Y=null,O=null,ue=void 0,ee=null,w=!!F.dynamicChildren)=>{if(T===F)return;T&&!Ca(T,F)&&(W=$e(T),j(T,Y,O,!0),T=null),F.patchFlag===-2&&(w=!1,F.dynamicChildren=null);const{type:x,ref:G,shapeFlag:X}=F;switch(x){case Aa:_(T,F,I,W);break;case yo:$(T,F,I,W);break;case Ns:T==null&&f(F,I,W,ue);break;case Ue:J(T,F,I,W,Y,O,ue,ee,w);break;default:X&1?h(T,F,I,W,Y,O,ue,ee,w):X&6?z(T,F,I,W,Y,O,ue,ee,w):(X&64||X&128)&&x.process(T,F,I,W,Y,O,ue,ee,w,de)}G!=null&&Y?ka(G,T&&T.ref,O,F||T,!F):G==null&&T&&T.ref!=null&&ka(T.ref,null,O,T,!0)},_=(T,F,I,W)=>{if(T==null)n(F.el=i(F.children),I,W);else{const Y=F.el=T.el;F.children!==T.children&&c(Y,F.children)}},$=(T,F,I,W)=>{T==null?n(F.el=l(F.children||""),I,W):F.el=T.el},f=(T,F,I,W)=>{[T.el,T.anchor]=v(T.children,F,I,W,T.el,T.anchor)},m=({el:T,anchor:F},I,W)=>{let Y;for(;T&&T!==F;)Y=g(T),n(T,I,W),T=Y;n(F,I,W)},k=({el:T,anchor:F})=>{let I;for(;T&&T!==F;)I=g(T),a(T),T=I;a(F)},h=(T,F,I,W,Y,O,ue,ee,w)=>{if(F.type==="svg"?ue="svg":F.type==="math"&&(ue="mathml"),T==null)P(F,I,W,Y,O,ue,ee,w);else{const x=T.el&&T.el._isVueCE?T.el:null;try{x&&x._beginPatch(),A(T,F,Y,O,ue,ee,w)}finally{x&&x._endPatch()}}},P=(T,F,I,W,Y,O,ue,ee)=>{let w,x;const{props:G,shapeFlag:X,transition:me,dirs:ce}=T;if(w=T.el=r(T.type,O,G&&G.is,G),X&8?u(w,T.children):X&16&&C(T.children,w,null,W,Y,si(T,O),ue,ee),ce&&dn(T,null,W,"created"),d(w,T,T.scopeId,ue,W),G){for(const le in G)le!=="value"&&!pa(le)&&s(w,le,null,G[le],O,W);"value"in G&&s(w,"value",null,G.value,O),(x=G.onVnodeBeforeMount)&&vo(x,W,T)}ce&&dn(T,null,W,"beforeMount");const Z=Xh(Y,me);Z&&me.beforeEnter(w),n(w,F,I),((x=G&&G.onVnodeMounted)||Z||ce)&&Dt(()=>{try{x&&vo(x,W,T),Z&&me.enter(w),ce&&dn(T,null,W,"mounted")}finally{}},Y)},d=(T,F,I,W,Y)=>{if(I&&S(T,I),W)for(let O=0;O{for(let x=w;x{const ee=F.el=T.el;let{patchFlag:w,dynamicChildren:x,dirs:G}=F;w|=T.patchFlag&16;const X=T.props||st,me=F.props||st;let ce;if(I&&mn(I,!1),(ce=me.onVnodeBeforeUpdate)&&vo(ce,I,F,T),G&&dn(F,T,I,"beforeUpdate"),I&&mn(I,!0),x&&(!T.dynamicChildren||T.dynamicChildren.length!==x.length)&&(w=0,ue=!1,x=null),(X.innerHTML&&me.innerHTML==null||X.textContent&&me.textContent==null)&&u(ee,""),x?B(T.dynamicChildren,x,ee,I,W,si(F,Y),O):ue||U(T,F,ee,null,I,W,si(F,Y),O,!1),w>0){if(w&16)V(ee,X,me,I,Y);else if(w&2&&X.class!==me.class&&s(ee,"class",null,me.class,Y),w&4&&s(ee,"style",X.style,me.style,Y),w&8){const Z=F.dynamicProps;for(let le=0;le{ce&&vo(ce,I,F,T),G&&dn(F,T,I,"updated")},W)},B=(T,F,I,W,Y,O,ue)=>{for(let ee=0;ee{if(F!==I){if(F!==st)for(const O in F)!pa(O)&&!(O in I)&&s(T,O,F[O],null,Y,W);for(const O in I){if(pa(O))continue;const ue=I[O],ee=F[O];ue!==ee&&O!=="value"&&s(T,O,ee,ue,Y,W)}"value"in I&&s(T,"value",F.value,I.value,Y)}},J=(T,F,I,W,Y,O,ue,ee,w)=>{const x=F.el=T?T.el:i(""),G=F.anchor=T?T.anchor:i("");let{patchFlag:X,dynamicChildren:me,slotScopeIds:ce}=F;ce&&(ee=ee?ee.concat(ce):ce),T==null?(n(x,I,W),n(G,I,W),C(F.children||[],I,G,Y,O,ue,ee,w)):X>0&&X&64&&me&&T.dynamicChildren&&T.dynamicChildren.length===me.length?(B(T.dynamicChildren,me,I,Y,O,ue,ee),(F.key!=null||Y&&F===Y.subTree)&&ri(T,F,!0)):U(T,F,I,G,Y,O,ue,ee,w)},z=(T,F,I,W,Y,O,ue,ee,w)=>{F.slotScopeIds=ee,T==null?F.shapeFlag&512?Y.ctx.activate(F,I,W,ue,w):D(F,I,W,Y,O,ue,w):L(T,F,w)},D=(T,F,I,W,Y,O,ue)=>{const ee=T.component=sm(T,W,Y);if(Ss(T)&&(ee.ctx.renderer=de),rm(ee,!1,ue),ee.asyncDep){if(Y&&Y.registerDep(ee,y,ue),!T.el){const w=ee.subTree=tt(yo);$(null,w,F,I),T.placeholder=w.el}}else y(ee,T,F,I,Y,O,ue)},L=(T,F,I)=>{const W=F.component=T.component;if(Bh(T,F,I))if(W.asyncDep&&!W.asyncResolved){R(W,F,I);return}else W.next=F,W.update();else F.el=T.el,W.vnode=F},y=(T,F,I,W,Y,O,ue)=>{const ee=()=>{if(T.isMounted){let{next:X,bu:me,u:ce,parent:Z,vnode:le}=T;{const Qe=du(T);if(Qe){X&&(X.el=le.el,R(T,X,ue)),Qe.asyncDep.then(()=>{Dt(()=>{T.isUnmounted||x()},Y)});return}}let Ce=X,Te;mn(T,!1),X?(X.el=le.el,R(T,X,ue)):X=le,me&&ls(me),(Te=X.props&&X.props.onVnodeBeforeUpdate)&&vo(Te,Z,X,le),mn(T,!0);const qe=eu(T),nt=T.subTree;T.subTree=qe,b(nt,qe,p(nt.el),$e(nt),T,Y,O),X.el=qe.el,Ce===null&&jh(T,qe.el),ce&&Dt(ce,Y),(Te=X.props&&X.props.onVnodeUpdated)&&Dt(()=>vo(Te,Z,X,le),Y)}else{let X;const{el:me,props:ce}=F,{bm:Z,m:le,parent:Ce,root:Te,type:qe}=T,nt=Bn(F);mn(T,!1),Z&&ls(Z),!nt&&(X=ce&&ce.onVnodeBeforeMount)&&vo(X,Ce,F),mn(T,!0);{Te.ce&&Te.ce._hasShadowRoot()&&Te.ce._injectChildStyle(qe,T.parent?T.parent.type:void 0);const Qe=T.subTree=eu(T);b(null,Qe,I,W,T,Y,O),F.el=Qe.el}if(le&&Dt(le,Y),!nt&&(X=ce&&ce.onVnodeMounted)){const Qe=F;Dt(()=>vo(X,Ce,Qe),Y)}(F.shapeFlag&256||Ce&&Bn(Ce.vnode)&&Ce.vnode.shapeFlag&256)&&T.a&&Dt(T.a,Y),T.isMounted=!0,F=I=W=null}};T.scope.on();const w=T.effect=new ac(ee);T.scope.off();const x=T.update=w.run.bind(w),G=T.job=w.runIfDirty.bind(w);G.i=T,G.id=T.uid,w.scheduler=()=>Vr(G),mn(T,!0),x()},R=(T,F,I)=>{F.component=T;const W=T.vnode.props;T.vnode=F,T.next=null,Uh(T,F.props,W,I),qh(T,F.children,I),fo(),Pc(T),ho()},U=(T,F,I,W,Y,O,ue,ee,w=!1)=>{const x=T&&T.children,G=T?T.shapeFlag:0,X=F.children,{patchFlag:me,shapeFlag:ce}=F;if(me>0){if(me&128){Q(x,X,I,W,Y,O,ue,ee,w);return}else if(me&256){H(x,X,I,W,Y,O,ue,ee,w);return}}ce&8?(G&16&&we(x,Y,O),X!==x&&u(I,X)):G&16?ce&16?Q(x,X,I,W,Y,O,ue,ee,w):we(x,Y,O,!0):(G&8&&u(I,""),ce&16&&C(X,I,W,Y,O,ue,ee,w))},H=(T,F,I,W,Y,O,ue,ee,w)=>{T=T||Nn,F=F||Nn;const x=T.length,G=F.length,X=Math.min(x,G);let me;for(me=0;meG?we(T,Y,O,!0,!1,X):C(F,I,W,Y,O,ue,ee,w,X)},Q=(T,F,I,W,Y,O,ue,ee,w)=>{let x=0;const G=F.length;let X=T.length-1,me=G-1;for(;x<=X&&x<=me;){const ce=T[x],Z=F[x]=w?Do(F[x]):_o(F[x]);if(Ca(ce,Z))b(ce,Z,I,null,Y,O,ue,ee,w);else break;x++}for(;x<=X&&x<=me;){const ce=T[X],Z=F[me]=w?Do(F[me]):_o(F[me]);if(Ca(ce,Z))b(ce,Z,I,null,Y,O,ue,ee,w);else break;X--,me--}if(x>X){if(x<=me){const ce=me+1,Z=ceme)for(;x<=X;)j(T[x],Y,O,!0),x++;else{const ce=x,Z=x,le=new Map;for(x=Z;x<=me;x++){const ve=F[x]=w?Do(F[x]):_o(F[x]);ve.key!=null&&le.set(ve.key,x)}let Ce,Te=0;const qe=me-Z+1;let nt=!1,Qe=0;const K=new Array(qe);for(x=0;x=qe){j(ve,Y,O,!0);continue}let Ae;if(ve.key!=null)Ae=le.get(ve.key);else for(Ce=Z;Ce<=me;Ce++)if(K[Ce-Z]===0&&Ca(ve,F[Ce])){Ae=Ce;break}Ae===void 0?j(ve,Y,O,!0):(K[Ae-Z]=x+1,Ae>=Qe?Qe=Ae:nt=!0,b(ve,F[Ae],I,null,Y,O,ue,ee,w),Te++)}const se=nt?Zh(K):Nn;for(Ce=se.length-1,x=qe-1;x>=0;x--){const ve=Z+x,Ae=F[ve],Fe=F[ve+1],rt=ve+1{const{el:O,type:ue,transition:ee,children:w,shapeFlag:x}=T;if(x&6){re(T.component.subTree,F,I,W);return}if(x&128){T.suspense.move(F,I,W);return}if(x&64){ue.move(T,F,I,de);return}if(ue===Ue){n(O,F,I);for(let X=0;Xee.enter(O),Y));else{const{leave:X,delayLeave:me,afterLeave:ce}=ee,Z=()=>{T.ctx.isUnmounted?a(O):n(O,F,I)},le=()=>{const Ce=O._isLeaving||!!O[Yr];O._isLeaving&&O[Yr](!0),ee.persisted&&!Ce?Z():X(O,()=>{Z(),ce&&ce()})};me?me(O,Z,le):le()}else n(O,F,I)},j=(T,F,I,W=!1,Y=!1)=>{const{type:O,props:ue,ref:ee,children:w,dynamicChildren:x,shapeFlag:G,patchFlag:X,dirs:me,cacheIndex:ce,memo:Z}=T;if(X===-2&&(Y=!1),ee!=null&&(fo(),ka(ee,null,I,T,!0),ho()),ce!=null&&(F.renderCache[ce]=void 0),G&256){F.ctx.deactivate(T);return}const le=G&1&&me,Ce=!Bn(T);let Te;if(Ce&&(Te=ue&&ue.onVnodeBeforeUnmount)&&vo(Te,F,T),G&6)fe(T.component,I,W);else{if(G&128){T.suspense.unmount(I,W);return}le&&dn(T,null,F,"beforeUnmount"),G&64?T.type.remove(T,F,I,de,W):x&&!x.hasOnce&&(O!==Ue||X>0&&X&64)?we(x,F,I,!1,!0):(O===Ue&&X&384||!Y&&G&16)&&we(w,F,I),W&&be(T)}const qe=Z!=null&&ce==null;(Ce&&(Te=ue&&ue.onVnodeUnmounted)||le||qe)&&Dt(()=>{Te&&vo(Te,F,T),le&&dn(T,null,F,"unmounted"),qe&&(T.el=null)},I)},be=T=>{const{type:F,el:I,anchor:W,transition:Y}=T;if(F===Ue){xe(I,W);return}if(F===Ns){k(T);return}const O=()=>{a(I),Y&&!Y.persisted&&Y.afterLeave&&Y.afterLeave()};if(T.shapeFlag&1&&Y&&!Y.persisted){const{leave:ue,delayLeave:ee}=Y,w=()=>ue(I,O);ee?ee(T.el,O,w):w()}else O()},xe=(T,F)=>{let I;for(;T!==F;)I=g(T),a(T),T=I;a(F)},fe=(T,F,I)=>{const{bum:W,scope:Y,job:O,subTree:ue,um:ee,m:w,a:x}=T;gu(w),gu(x),W&&ls(W),Y.stop(),O&&(O.flags|=8,j(ue,T,F,I)),ee&&Dt(ee,F),Dt(()=>{T.isUnmounted=!0},F)},we=(T,F,I,W=!1,Y=!1,O=0)=>{for(let ue=O;ue{if(T.shapeFlag&6)return $e(T.component.subTree);if(T.shapeFlag&128)return T.suspense.next();const F=g(T.anchor||T.el),I=F&&F[Rc];return I?g(I):F};let ne=!1;const te=(T,F,I)=>{let W;T==null?F._vnode&&(j(F._vnode,null,null,!0),W=F._vnode.component):b(F._vnode||null,T,F,null,null,null,I),F._vnode=T,ne||(ne=!0,Pc(W),Cc(),ne=!1)},de={p:b,um:j,m:re,r:be,mt:D,mc:C,pc:U,pbc:B,n:$e,o:e};return{render:te,hydrate:void 0,createApp:Mh(te)}}function si({type:e,props:t},o){return o==="svg"&&e==="foreignObject"||o==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:o}function mn({effect:e,job:t},o){o?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Xh(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function ri(e,t,o=!1){const n=e.children,a=t.children;if(Me(n)&&Me(a))for(let s=0;s>1,e[o[i]]0&&(t[n]=o[s-1]),o[s]=n)}}for(s=o.length,r=o[s-1];s-- >0;)o[s]=r,r=t[r];return o}function du(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:du(t)}function gu(e){if(e)for(let t=0;te.__isSuspense;function Jh(e,t){t&&t.pendingBranch?Me(e)?t.effects.push(...e):t.effects.push(e):nh(e)}const Ue=Symbol.for("v-fgt"),Aa=Symbol.for("v-txt"),yo=Symbol.for("v-cmt"),Ns=Symbol.for("v-stc"),Oo=[];let Ht=null;function ae(e=!1){Oo.push(Ht=e?null:[])}function ii(){Oo.pop(),Ht=Oo[Oo.length-1]||null}let Sa=1;function Rs(e,t=!1){Sa+=e,e<0&&Ht&&t&&(Ht.hasOnce=!0)}function mu(e){return e.dynamicChildren=Sa>0?Ht||Nn:null,ii(),Sa>0&&Ht&&Ht.push(e),e}function pe(e,t,o,n,a,s){return mu(M(e,t,o,n,a,s,!0))}function et(e,t,o,n,a){return mu(tt(e,t,o,n,a,!0))}function Pa(e){return e?e.__v_isVNode===!0:!1}function Ca(e,t){return e.type===t.type&&e.key===t.key}const bu=({key:e})=>e??null,Ms=({ref:e,ref_key:t,ref_for:o})=>(typeof e=="number"&&(e=""+e),e!=null?it(e)||ut(e)||De(e)?{i:St,r:e,k:t,f:!!o}:e:null);function M(e,t=null,o=null,n=0,a=null,s=e===Ue?0:1,r=!1,i=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&bu(t),ref:t&&Ms(t),scopeId:Tc,slotScopeIds:null,children:o,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:n,dynamicProps:a,dynamicChildren:null,appContext:null,ctx:St};return i?(Fs(l,o),s&128&&e.normalize(l)):o&&(l.shapeFlag|=it(o)?8:16),Sa>0&&!r&&Ht&&(l.patchFlag>0||s&6)&&l.patchFlag!==32&&Ht.push(l),l}const tt=Qh;function Qh(e,t=null,o=null,n=0,a=null,s=!1){if((!e||e===zc)&&(e=yo),Pa(e)){const i=jn(e,t,!0);return o&&Fs(i,o),Sa>0&&!s&&Ht&&(i.shapeFlag&6?Ht[Ht.indexOf(e)]=i:Ht.push(i)),i.patchFlag=-2,i}if(dm(e)&&(e=e.__vccOpts),t){t=em(t);let{class:i,style:l}=t;i&&!it(i)&&(t.class=Re(i)),Je(l)&&(bs(l)&&!Me(l)&&(l=mt({},l)),t.style=dt(l))}const r=it(e)?1:hu(e)?128:ks(e)?64:Je(e)?4:De(e)?2:0;return M(e,t,o,n,a,r,s,!0)}function em(e){return e?bs(e)||su(e)?mt({},e):e:null}function jn(e,t,o=!1,n=!1){const{props:a,ref:s,patchFlag:r,children:i,transition:l}=e,c=t?om(a||{},t):a,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&bu(c),ref:t&&t.ref?o&&s?Me(s)?s.concat(Ms(t)):[s,Ms(t)]:Ms(t):s,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!==Ue?r===-1?16:r|16:r,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&jn(e.ssContent),ssFallback:e.ssFallback&&jn(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&n&&Xr(u,l.clone(u)),u}function Pt(e=" ",t=0){return tt(Aa,null,e,t)}function tm(e,t){const o=tt(Ns,null,e);return o.staticCount=t,o}function Le(e="",t=!1){return t?(ae(),et(yo,null,e)):tt(yo,null,e)}function _o(e){return e==null||typeof e=="boolean"?tt(yo):Me(e)?tt(Ue,null,e.slice()):Pa(e)?Do(e):tt(Aa,null,String(e))}function Do(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:jn(e)}function Fs(e,t){let o=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(Me(t))o=16;else if(typeof t=="object")if(n&65){const a=t.default;a&&(a._c&&(a._d=!1),Fs(e,a()),a._c&&(a._d=!0));return}else{o=32;const a=t._;!a&&!su(t)?t._ctx=St:a===3&&St&&(St.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(De(t)){if(n&65){Fs(e,{default:t});return}t={default:t,_ctx:St},o=32}else t=String(t),n&64?(o=16,t=[Pt(t)]):o=8;e.children=t,e.shapeFlag|=o}function om(...e){const t={};for(let o=0;oCt||St;let Is,Ea;{const e=cs(),t=(o,n)=>{let a;return(a=e[o])||(a=e[o]=[]),a.push(n),s=>{a.length>1?a.forEach(r=>r(s)):a[0](s)}};Is=t("__VUE_INSTANCE_SETTERS__",o=>Ct=o),Ea=t("__VUE_SSR_SETTERS__",o=>zn=o)}const Ta=e=>{const t=Ct;return Is(e),e.scope.on(),()=>{e.scope.off(),Is(t)}},$u=()=>{Ct&&Ct.scope.off(),Is(null)};function yu(e){return e.vnode.shapeFlag&4}let zn=!1;function rm(e,t=!1,o=!1){t&&Ea(t);const{props:n,children:a}=e.vnode,s=yu(e);zh(e,n,s,t),Hh(e,a,o||t);const r=s?im(e,t):void 0;return t&&Ea(!1),r}function im(e,t){const o=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Sh);const{setup:n}=o;if(n){fo();const a=e.setupContext=n.length>1?cm(e):null,s=Ta(e),r=On(n,e,0,[e.props,a]),i=ql(r);if(ho(),s(),(i||e.sp)&&!Bn(e)&&Zr(e),i){if(r.then($u,$u),t)return r.then(l=>{Ea(!0);try{_u(e,l,t)}finally{Ea(!1)}}).catch(l=>{ya(l,e,0)});e.asyncDep=r}else _u(e,r)}else vu(e)}function _u(e,t,o){De(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Je(t)&&(e.setupState=kc(t)),vu(e)}function vu(e,t,o){const n=e.type;e.render||(e.render=n.render||po);{const a=Ta(e);fo();try{Ph(e)}finally{ho(),a()}}}const lm={get(e,t){return Nt(e,"get",""),e[t]}};function cm(e){const t=o=>{e.exposed=o||{}};return{attrs:new Proxy(e.attrs,lm),slots:e.slots,emit:e.emit,expose:t}}function Os(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(kc(Fn(e.exposed)),{get(t,o){if(o in t)return t[o];if(o in xa)return xa[o](e)},has(t,o){return o in t||o in xa}})):e.proxy}const um=/(?:^|[-_])\w/g,pm=e=>e.replace(um,t=>t.toUpperCase()).replace(/[-_]/g,"");function wu(e,t=!0){return De(e)?e.displayName||e.name:e.name||t&&e.__name}function ku(e,t,o=!1){let n=wu(t);if(!n&&t.__file){const a=t.__file.match(/([^/\\]+)\.\w+$/);a&&(n=a[1])}if(!n&&e){const a=s=>{for(const r in s)if(s[r]===t)return r};n=a(e.components)||e.parent&&a(e.parent.type.components)||a(e.appContext.components)}return n?pm(n):o?"App":"Anonymous"}function dm(e){return De(e)&&"__vccOpts"in e}const oe=(e,t)=>Wf(e,t,zn);function xu(e,t,o){try{Rs(-1);const n=arguments.length;return n===2?Je(t)&&!Me(t)?Pa(t)?tt(e,null,[t]):tt(e,t):tt(e,null,t):(n>3?o=Array.prototype.slice.call(arguments,2):n===3&&Pa(o)&&(o=[o]),tt(e,t,o))}finally{Rs(1)}}const gm="3.5.42";/** +`,...Oh(a)),console.warn(...s)}vo(),ci=!1}function Ih(){let e=Ta[Ta.length-1];if(!e)return[];const t=[];for(;e;){const o=t[0];o&&o.vnode===e?o.recurseCount++:t.push({vnode:e,recurseCount:0});const n=e.component&&e.component.parent;e=n&&n.vnode}return t}function Oh(e){const t=[];return e.forEach((o,n)=>{t.push(...n===0?[]:[` +`],...Dh(o))}),t}function Dh({vnode:e,recurseCount:t}){const o=t>0?`... (${t} recursive calls)`:"",n=e.component?e.component.parent==null:!1,a=` at <${Zu(e.component,e.type,n)}`,s=">"+o;return e.props?[a,...Bh(e.props),s]:[a+s]}function Bh(e){const t=[],o=Object.keys(e);return o.slice(0,3).forEach(n=>{t.push(...Yc(n,e[n]))}),o.length>3&&t.push(" ..."),t}function Yc(e,t,o){return st(t)?(t=JSON.stringify(t),o?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?o?t:[`${e}=${t}`]:ut(t)?(t=Yc(e,Ve(t.value),!0),o?t:[`${e}=Ref<`,t,">"]):De(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=Ve(t),o?t:[`${e}=`,t])}function Xn(e,t,o,n){try{return n?e(...n):e()}catch(a){Na(a,t,o)}}function eo(e,t,o,n){if(De(e)){const a=Xn(e,t,o,n);return a&&$c(a)&&a.catch(s=>{Na(s,t,o)}),a}if(Ee(e)){const a=[];for(let s=0;s>>1,a=Ot[n],s=Ra(a);s=Ra(o)?Ot.push(e):Ot.splice(jh(t),0,e),e.flags|=1,Zc()}}function Zc(){js||(js=Xc.then(eu))}function zh(e){if(!Ee(e))sn&&e.id===-1?sn.splice(Jn+1,0,e):e.flags&1||(Zn.push(e),e.flags|=1);else for(let t=0;tRa(o)-Ra(n));if(Zn.length=0,sn){for(let o=0;oe.id==null?e.flags&2?-1:1/0:e.id;function eu(e){try{for(ko=0;ko{n._d&&Js(-1);const s=zs(t),r=Ho.length;let i;try{i=e(...a)}finally{for(let l=Ho.length;l>r;l--)Ai();zs(s),n._d&&Js(1)}return i};return n._n=!0,n._c=!0,n._d=!0,n}function to(e,t){if(Pt===null)return e;const o=or(Pt),n=e.dirs||(e.dirs=[]);for(let a=0;a1)return o&&De(t)?t.call(n&&n.proxy):t}}function Uh(){return!!(po()||Sn)}const Vh=Symbol.for("v-scx"),Kh=()=>Te(Vh);function Hh(e,t){return pi(e,null,t)}function Me(e,t,o){return pi(e,t,o)}function pi(e,t,o=at){const{immediate:n,deep:a,flush:s,once:r}=o,i=ft({},o),l=t&&n||!t&&s!=="post";let c;if(ea){if(s==="sync"){const A=Kh();c=A.__watcherHandles||(A.__watcherHandles=[])}else if(!l){const A=()=>{};return A.stop=$o,A.resume=$o,A.pause=$o,A}}const u=Et;i.call=(A,w,h)=>eo(A,u,w,h);let p=!1;s==="post"?i.scheduler=A=>{Bt(A,u&&u.suspense)}:s!=="sync"&&(p=!0,i.scheduler=(A,w)=>{w?A():ui(A)}),i.augmentJob=A=>{t&&(A.flags|=4),p&&(A.flags|=2,u&&(A.id=u.uid,A.i=u))};const g=Fh(e,t,i);return ea&&(c?c.push(g):l&&g()),g}function qh(e,t,o){const n=this.proxy,a=st(e)?e.includes(".")?ou(n,e):()=>n[e]:e.bind(n,n);let s;De(t)?s=t:(s=t.handler,o=t);const r=qa(this),i=pi(a,s.bind(n),o);return r(),i}function ou(e,t){const o=t.split(".");return()=>{let n=e;for(let a=0;ae.__isTeleport,An=e=>e&&(e.disabled||e.disabled===""),Wh=e=>e&&(e.defer||e.defer===""),au=e=>typeof SVGElement<"u"&&e instanceof SVGElement,su=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,di=(e,t)=>{const o=e&&e.to;return st(o)?t?t(o):null:o},Yh={name:"Teleport",__isTeleport:!0,process(e,t,o,n,a,s,r,i,l,c){const{mc:u,pc:p,pbc:g,o:{insert:A,querySelector:w,createText:h,createComment:v,parentNode:$}}=c,m=An(t.props);let{dynamicChildren:b}=t;const k=(f,d,y)=>{f.shapeFlag&16&&u(f.children,d,y,a,s,r,i,l)},E=(f=t)=>{const d=An(f.props),y=f.target=di(f.props,w),N=gi(y,f,h,A);y&&(r!=="svg"&&au(y)?r="svg":r!=="mathml"&&su(y)&&(r="mathml"),a&&a.isCE&&(a.ce._teleportTargets||(a.ce._teleportTargets=new Set)).add(y),d||(k(f,y,N),Ma(f,!1)))},x=f=>{const d=()=>{if(rn.get(f)===d){if(rn.delete(f),An(f.props)){const y=$(f.el)||o;k(f,y,f.anchor),Ma(f,!0)}E(f)}};rn.set(f,d),Bt(d,s)};if(e==null){const f=t.el=h(""),d=t.anchor=h("");if(A(f,o,n),A(d,o,n),Wh(t.props)||s&&s.pendingBranch){x(t);return}m&&(k(t,o,d),Ma(t,!0)),E()}else{t.el=e.el;const f=t.anchor=e.anchor,d=rn.get(e);if(d){d.flags|=8,rn.delete(e),x(t);return}t.targetStart=e.targetStart;const y=t.target=e.target,N=t.targetAnchor=e.targetAnchor,B=An(e.props),V=B?o:y,j=B?f:N;if(r==="svg"||au(y)?r="svg":(r==="mathml"||su(y))&&(r="mathml"),b?(g(e.dynamicChildren,b,V,a,s,r,i),Li(e,t,!0)):l||p(e,t,V,j,a,s,r,i,!1),m)B?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Vs(t,o,f,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const G=di(t.props,w);G&&(t.target=G,Vs(t,G,null,c,0))}else B&&Vs(t,y,N,c,1);Ma(t,m)}},remove(e,t,o,{um:n,o:{remove:a}},s){const{shapeFlag:r,children:i,anchor:l,targetStart:c,targetAnchor:u,target:p,props:g}=e,A=An(g),w=s||!A,h=rn.get(e);if(h&&(h.flags|=8,rn.delete(e)),p&&(a(c),a(u)),s&&a(l),!h&&(A||p)&&r&16)for(let v=0;v{e.isMounted=!0}),qt(()=>{e.isUnmounting=!0}),e}const no=[Function,Array],ru={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:no,onEnter:no,onAfterEnter:no,onEnterCancelled:no,onBeforeLeave:no,onLeave:no,onAfterLeave:no,onLeaveCancelled:no,onBeforeAppear:no,onAppear:no,onAfterAppear:no,onAppearCancelled:no},iu=e=>{const t=e.subTree;return t.component?iu(t.component):t},Qh={name:"BaseTransition",props:ru,setup(e,{slots:t}){const o=po(),n=Jh();return()=>{const a=t.default&&uu(t.default(),!0),s=a&&a.length?lu(a):o.subTree?xe():void 0;if(!s)return;const r=Ve(e),{mode:i}=r;if(n.isLeaving)return hi(s);const l=Ks(s);if(!l)return hi(s);let c=fi(l,r,n,o,p=>c=p);l.type!==Ft&&Ia(l,c);let u=o.subTree&&Ks(o.subTree);if(u&&u.type!==Ft&&!Cn(u,l)&&iu(o).type!==Ft){let p=fi(u,r,n,o);if(Ia(u,p),i==="out-in"&&l.type!==Ft)return n.isLeaving=!0,p.afterLeave=()=>{n.isLeaving=!1,o.job.flags&8||o.update(),delete p.afterLeave,u=void 0},hi(s);i==="in-out"&&l.type!==Ft?p.delayLeave=(g,A,w)=>{const h=cu(n,u);h[String(u.key)]=u,g[oo]=()=>{A(),g[oo]=void 0,delete c.delayedLeave,u=void 0},c.delayedLeave=()=>{w(),delete c.delayedLeave,u=void 0}}:u=void 0}else u&&(u=void 0);return s}}};function lu(e){let t=e[0];if(e.length>1){for(const o of e)if(o.type!==Ft){t=o;break}}return t}const em=Qh;function cu(e,t){const{leavingVNodes:o}=e;let n=o.get(t.type);return n||(n=Object.create(null),o.set(t.type,n)),n}function fi(e,t,o,n,a){const{appear:s,mode:r,persisted:i=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:u,onEnterCancelled:p,onBeforeLeave:g,onLeave:A,onAfterLeave:w,onLeaveCancelled:h,onBeforeAppear:v,onAppear:$,onAfterAppear:m,onAppearCancelled:b}=t,k=String(e.key),E=cu(o,e),x=(y,N)=>{y&&eo(y,n,9,N)},f=(y,N)=>{const B=N[1];x(y,N),Ee(y)?y.every(V=>V.length<=1)&&B():y.length<=1&&B()},d={mode:r,persisted:i,beforeEnter(y){let N=l;if(!o.isMounted)if(s)N=v||l;else return;y[oo]&&y[oo](!0);const B=E[k];B&&Cn(e,B)&&B.el[oo]&&B.el[oo](),x(N,[y])},enter(y){if(E[k]===e)return;let N=c,B=u,V=p;if(!o.isMounted)if(s)N=$||c,B=m||u,V=b||p;else return;let j=!1;y[Fa]=C=>{j||(j=!0,C?x(V,[y]):x(B,[y]),d.delayedLeave&&d.delayedLeave(),y[Fa]=void 0)};const G=y[Fa].bind(null,!1);N?f(N,[y,G]):G()},leave(y,N){const B=String(e.key);if(y[Fa]&&y[Fa](!0),o.isUnmounting)return N();x(g,[y]);let V=!1;y[oo]=G=>{V||(V=!0,N(),G?x(h,[y]):x(w,[y]),y[oo]=void 0,E[B]===e&&delete E[B])};const j=y[oo].bind(null,!1);E[B]=e,A?f(A,[y,j]):j()},clone(y){const N=fi(y,t,o,n,a);return a&&a(N),N}};return d}function hi(e){if(Ba(e))return e=ln(e),e.children=null,e}function Ks(e){if(!Ba(e))return Us(e.type)&&e.children?lu(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:o}=e;if(o){if(t&16)return o[0];if(t&32&&De(o.default))return o.default()}}function Ia(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const o=e.component.subTree;Ia(Us(o.type)&&Ks(o)||o,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function uu(e,t=!1,o){let n=[],a=0;for(let s=0;s1)for(let s=0;sDa(h,t&&(Ee(t)?t[v]:t),o,n,a));return}if(Qn(n)&&!a){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&Da(e,t,o,n.component.subTree);return}const s=n.shapeFlag&4?or(n.component):n.el,r=a?null:s,{i,r:l}=e,c=t&&t.r,u=i.refs===at?i.refs={}:i.refs,p=i.setupState,g=Ve(p),A=p===at?mc:h=>pu(u,h)?!1:Je(g,h),w=(h,v)=>!(v&&pu(u,v));if(c!=null&&c!==l){if(du(t),st(c))u[c]=null,A(c)&&(p[c]=null);else if(ut(c)){const h=t;w(c,h.k)&&(c.value=null),h.k&&(u[h.k]=null)}}if(De(l))Xn(l,i,12,[r,u]);else{const h=st(l),v=ut(l);if(h||v){const $=()=>{if(e.f){const m=h?A(l)?p[l]:u[l]:w()||!e.k?l.value:u[e.k];if(a)Ee(m)&&qr(m,s);else if(Ee(m))m.includes(s)||m.push(s);else if(h)u[l]=[s],A(l)&&(p[l]=u[l]);else{const b=[s];w(l,e.k)&&(l.value=b),e.k&&(u[e.k]=b)}}else h?(u[l]=r,A(l)&&(p[l]=r)):v&&(w(l,e.k)&&(l.value=r),e.k&&(u[e.k]=r))};if(r){const m=()=>{$(),Hs.delete(e)};m.id=-1,Hs.set(e,m),Bt(m,o)}else du(e),$()}}}function du(e){const t=Hs.get(e);t&&(t.flags|=8,Hs.delete(e))}const gu=e=>e.nodeType===8;Es().requestIdleCallback,Es().cancelIdleCallback;function tm(e,t){if(gu(e)&&e.data==="["){let o=1,n=e.nextSibling;for(;n;){if(n.nodeType===1){if(t(n)===!1)break}else if(gu(n))if(n.data==="]"){if(--o===0)break}else n.data==="["&&o++;n=n.nextSibling}}else t(e)}const Qn=e=>!!e.type.__asyncLoader;function om(e){De(e)&&(e={loader:e});const{loader:t,loadingComponent:o,errorComponent:n,delay:a=200,hydrate:s,timeout:r,suspensible:i=!0,onError:l}=e;let c=null,u,p=0;const g=()=>(p++,c=null,A()),A=()=>{let w;return c||(w=c=t().catch(h=>{if(h=h instanceof Error?h:new Error(String(h)),l)return new Promise((v,$)=>{l(h,()=>v(g()),()=>$(h),p+1)});throw h}).then(h=>w!==c&&c?c:(h&&(h.__esModule||h[Symbol.toStringTag]==="Module")&&(h=h.default),u=h,h)))};return Oa({name:"AsyncComponentWrapper",__asyncLoader:A,__asyncHydrate(w,h,v){const $=w.isConnected;let m=!1;(h.bu||(h.bu=[])).push(()=>m=!0);const b=()=>{m||!w.parentNode||$&&!w.isConnected||v()},k=s?()=>{const E=s(b,x=>tm(w,x));E&&(h.bum||(h.bum=[])).push(E)}:b;u?k():A().then(()=>!h.isUnmounted&&k())},get __asyncResolved(){return u},setup(){const w=Et;if(mi(w),u)return()=>qs(u,w);const h=E=>{c=null,Na(E,w,13,!n)};if(i&&w.suspense||ea)return A().then(E=>()=>qs(E,w)).catch(E=>(h(E),()=>n?et(n,{error:E}):null));const v=ge(!1),$=ge(),m=ge(!!a);let b,k;return Ga(()=>{b!=null&&clearTimeout(b),k!=null&&clearTimeout(k)}),a&&(k=setTimeout(()=>{w.isUnmounted||(m.value=!1)},a)),r!=null&&(b=setTimeout(()=>{if(!w.isUnmounted&&!v.value&&!$.value){const E=new Error(`Async component timed out after ${r}ms.`);h(E),$.value=E}},r)),A().then(()=>{w.isUnmounted||(v.value=!0,w.parent&&Ba(w.parent.vnode)&&w.parent.update())}).catch(E=>{if(w.isUnmounted){c=null;return}h(E),$.value=E}),()=>{if(v.value&&u)return qs(u,w);if($.value&&n)return et(n,{error:$.value});if(o&&!m.value)return qs(o,w)}}})}function qs(e,t){const{ref:o,props:n,children:a,ce:s}=t.vnode,r=et(e,n,a);return r.ref=o,r.ce=s,delete t.vnode.ce,r}const Ba=e=>e.type.__isKeepAlive;function nm(e,t){fu(e,"a",t)}function am(e,t){fu(e,"da",t)}function fu(e,t,o=Et){const n=e.__wdc||(e.__wdc=()=>{let a=o;for(;a;){if(a.isDeactivated)return;a=a.parent}return e()});if(Ws(t,n,o),o){let a=o.parent;for(;a&&a.parent;)Ba(a.parent.vnode)&&sm(n,t,o,a),a=a.parent}}function sm(e,t,o,n){const a=Ws(t,e,n,!0);Ga(()=>{qr(n[t],a)},o)}function Ws(e,t,o=Et,n=!1){if(o){const a=o[e]||(o[e]=[]),s=t.__weh||(t.__weh=(...r)=>{_o();const i=qa(o),l=eo(t,o,e,r);return i(),vo(),l});return n?a.unshift(s):a.push(s),s}}const Vo=e=>(t,o=Et)=>{(!ea||e==="sp")&&Ws(e,(...n)=>t(...n),o)},hu=Vo("bm"),ao=Vo("m"),rm=Vo("bu"),im=Vo("u"),qt=Vo("bum"),Ga=Vo("um"),lm=Vo("sp"),cm=Vo("rtg"),um=Vo("rtc");function pm(e,t=Et){Ws("ec",e,t)}const dm="components",mu=Symbol.for("v-ndc");function bu(e){return st(e)?gm(dm,e,!1)||e:e||mu}function gm(e,t,o=!0,n=!1){const a=Pt||Et;if(a){const s=a.type;{const i=Xu(s,!1);if(i&&(i===t||i===xt(t)||i===Ss(xt(t))))return s}const r=$u(a[e]||s[e],t)||$u(a.appContext[e],t);return!r&&n?s:r}}function $u(e,t){return e&&(e[t]||e[xt(t)]||e[Ss(xt(t))])}function Ct(e,t,o,n){let a;const s=o,r=Ee(e);if(r||st(e)){const i=r&&jo(e);let l=!1,c=!1;i&&(l=!Ht(e),c=zo(e),e=Ns(e)),a=new Array(e.length);for(let u=0,p=e.length;ut(i,l,void 0,s));else{const i=Object.keys(e);a=new Array(i.length);for(let l=0,c=i.length;l0;return t!=="default"&&(c.name=t),Z(),We(ze,null,[et("slot",c,n&&n())],u?-2:64)}let r=e[t];r&&r._c&&(r._d=!1);const i=Ho.length;Z();let l;try{const c=r&&yu(r(o)),u=o.key||s||c&&c.key;l=We(ze,{key:(u&&!Kt(u)?u:`_${t}`)+(!c&&n?"_fb":"")},c||(n?n():[]),c&&e._===1?64:-2)}catch(c){for(let u=Ho.length;u>i;u--)Ai();throw c}finally{r&&r._c&&(r._d=!0)}return!a&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),l}function yu(e){return e.some(t=>Ka(t)?!(t.type===Ft||t.type===ze&&!yu(t.children)):!0)?e:null}const bi=e=>e?qu(e)?or(e):bi(e.parent):null,ja=ft(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=>bi(e.parent),$root:e=>bi(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>ku(e),$forceUpdate:e=>e.f||(e.f=()=>{ui(e.update)}),$nextTick:e=>e.n||(e.n=Mt.bind(e.proxy)),$watch:e=>qh.bind(e)}),$i=(e,t)=>e!==at&&!e.__isScriptSetup&&Je(e,t),fm={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:o,setupState:n,data:a,props:s,accessCache:r,type:i,appContext:l}=e;if(t[0]!=="$"){const g=r[t];if(g!==void 0)switch(g){case 1:return n[t];case 2:return a[t];case 4:return o[t];case 3:return s[t]}else{if($i(n,t))return r[t]=1,n[t];if(a!==at&&Je(a,t))return r[t]=2,a[t];if(Je(s,t))return r[t]=3,s[t];if(o!==at&&Je(o,t))return r[t]=4,o[t];yi&&(r[t]=0)}}const c=ja[t];let u,p;if(c)return t==="$attrs"&&Rt(e.attrs,"get",""),c(e);if((u=i.__cssModules)&&(u=u[t]))return u;if(o!==at&&Je(o,t))return r[t]=4,o[t];if(p=l.config.globalProperties,Je(p,t))return p[t]},set({_:e},t,o){const{data:n,setupState:a,ctx:s}=e;return $i(a,t)?(a[t]=o,!0):n!==at&&Je(n,t)?(n[t]=o,!0):Je(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(s[t]=o,!0)},has({_:{data:e,setupState:t,accessCache:o,ctx:n,appContext:a,props:s,type:r}},i){let l;return!!(o[i]||e!==at&&i[0]!=="$"&&Je(e,i)||$i(t,i)||Je(s,i)||Je(n,i)||Je(ja,i)||Je(a.config.globalProperties,i)||(l=r.__cssModules)&&l[i])},defineProperty(e,t,o){return o.get!=null?e._.accessCache[t]=0:Je(o,"value")&&this.set(e,t,o.value,null),Reflect.defineProperty(e,t,o)}};function _u(e){return Ee(e)?e.reduce((t,o)=>(t[o]=null,t),{}):e}let yi=!0;function hm(e){const t=ku(e),o=e.proxy,n=e.ctx;yi=!1,t.beforeCreate&&vu(t.beforeCreate,e,"bc");const{data:a,computed:s,methods:r,watch:i,provide:l,inject:c,created:u,beforeMount:p,mounted:g,beforeUpdate:A,updated:w,activated:h,deactivated:v,beforeDestroy:$,beforeUnmount:m,destroyed:b,unmounted:k,render:E,renderTracked:x,renderTriggered:f,errorCaptured:d,serverPrefetch:y,expose:N,inheritAttrs:B,components:V,directives:j,filters:G}=t;if(c&&mm(c,n,null),r)for(const M in r){const z=r[M];De(z)&&(n[M]=z.bind(o))}if(a){const M=a.call(o,o);Qe(M)&&(e.data=qn(M))}if(yi=!0,s)for(const M in s){const z=s[M],K=De(z)?z.bind(o,o):De(z.get)?z.get.bind(o,o):$o,J=!De(z)&&De(z.set)?z.set.bind(o):$o,ce=ee({get:K,set:J});Object.defineProperty(n,M,{enumerable:!0,configurable:!0,get:()=>ce.value,set:H=>ce.value=H})}if(i)for(const M in i)wu(i[M],n,o,M);if(l){const M=De(l)?l.call(o):l;Reflect.ownKeys(M).forEach(z=>{vt(z,M[z])})}u&&vu(u,e,"c");function L(M,z){Ee(z)?z.forEach(K=>M(K.bind(o))):z&&M(z.bind(o))}if(L(hu,p),L(ao,g),L(rm,A),L(im,w),L(nm,h),L(am,v),L(pm,d),L(um,x),L(cm,f),L(qt,m),L(Ga,k),L(lm,y),Ee(N))if(N.length){const M=e.exposed||(e.exposed={});N.forEach(z=>{Object.defineProperty(M,z,{get:()=>o[z],set:K=>o[z]=K,enumerable:!0})})}else e.exposed||(e.exposed={});E&&e.render===$o&&(e.render=E),B!=null&&(e.inheritAttrs=B),V&&(e.components=V),j&&(e.directives=j),y&&mi(e)}function mm(e,t,o=$o){Ee(e)&&(e=_i(e));for(const n in e){const a=e[n];let s;Qe(a)?"default"in a?s=Te(a.from||n,a.default,!0):s=Te(a.from||n):s=Te(a),ut(s)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>s.value,set:r=>s.value=r}):t[n]=s}}function vu(e,t,o){eo(Ee(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,o)}function wu(e,t,o,n){let a=n.includes(".")?ou(o,n):()=>o[n];if(st(e)){const s=t[e];De(s)&&Me(a,s)}else if(De(e))Me(a,e.bind(o));else if(Qe(e))if(Ee(e))e.forEach(s=>wu(s,t,o,n));else{const s=De(e.handler)?e.handler.bind(o):t[e.handler];De(s)&&Me(a,s,e)}}function ku(e){const t=e.type,{mixins:o,extends:n}=t,{mixins:a,optionsCache:s,config:{optionMergeStrategies:r}}=e.appContext,i=s.get(t);let l;return i?l=i:!a.length&&!o&&!n?l=t:(l={},a.length&&a.forEach(c=>Ys(l,c,r,!0)),Ys(l,t,r)),Qe(t)&&s.set(t,l),l}function Ys(e,t,o,n=!1){const{mixins:a,extends:s}=t;s&&Ys(e,s,o,!0),a&&a.forEach(r=>Ys(e,r,o,!0));for(const r in t)if(!(n&&r==="expose")){const i=bm[r]||o&&o[r];e[r]=i?i(e[r],t[r]):t[r]}return e}const bm={data:xu,props:Lu,emits:Lu,methods:za,computed:za,beforeCreate:Dt,created:Dt,beforeMount:Dt,mounted:Dt,beforeUpdate:Dt,updated:Dt,beforeDestroy:Dt,beforeUnmount:Dt,destroyed:Dt,unmounted:Dt,activated:Dt,deactivated:Dt,errorCaptured:Dt,serverPrefetch:Dt,components:za,directives:za,watch:ym,provide:xu,inject:$m};function xu(e,t){return t?e?function(){return ft(De(e)?e.call(this,this):e,De(t)?t.call(this,this):t)}:t:e}function $m(e,t){return za(_i(e),_i(t))}function _i(e){if(Ee(e)){const t={};for(let o=0;ot==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${xt(t)}Modifiers`]||e[`${Qt(t)}Modifiers`];function km(e,t,...o){if(e.isUnmounted)return;const n=e.vnode.props||at;let a=o;const s=t.startsWith("update:"),r=s&&wm(n,t.slice(7));r&&(r.trim&&(a=o.map(u=>st(u)?u.trim():u)),r.number&&(a=a.map(Cs)));let i,l=n[i=Wr(t)]||n[i=Wr(xt(t))];!l&&s&&(l=n[i=Wr(Qt(t))]),l&&eo(l,e,6,a);const c=n[i+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[i])return;e.emitted[i]=!0,eo(c,e,6,a)}}const xm=new WeakMap;function Su(e,t,o=!1){const n=o?xm:t.emitsCache,a=n.get(e);if(a!==void 0)return a;const s=e.emits;let r={},i=!1;if(!De(e)){const l=c=>{const u=Su(c,t,!0);u&&(i=!0,ft(r,u))};!o&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!s&&!i?(Qe(e)&&n.set(e,null),null):(Ee(s)?s.forEach(l=>r[l]=null):ft(r,s),Qe(e)&&n.set(e,r),r)}function Xs(e,t){return!e||!ws(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),Je(e,t[0].toLowerCase()+t.slice(1))||Je(e,Qt(t))||Je(e,t))}function CE(){}function Pu(e){const{type:t,vnode:o,proxy:n,withProxy:a,propsOptions:[s],slots:r,attrs:i,emit:l,render:c,renderCache:u,props:p,data:g,setupState:A,ctx:w,inheritAttrs:h}=e,v=zs(e);let $,m;try{if(o.shapeFlag&4){const k=a||n,E=k;$=xo(c.call(E,k,u,p,A,g,w)),m=i}else{const k=t;$=xo(k.length>1?k(p,{attrs:i,slots:r,emit:l}):k(p,null)),m=t.props?i:Lm(i)}}catch(k){Ho.length=0,Na(k,e,1),$=et(Ft)}let b=$;if(m&&h!==!1){const k=Object.keys(m),{shapeFlag:E}=b;k.length&&E&7&&(s&&k.some(ks)&&(m=Am(m,s)),b=ln(b,m,!1,!0))}if(o.dirs&&(b=ln(b,null,!1,!0),b.dirs=b.dirs?b.dirs.concat(o.dirs):o.dirs),o.transition){const k=Us(b.type)&&Ks(b)||b;Ia(k,o.transition)}return $=b,zs(v),$}const Lm=e=>{let t;for(const o in e)(o==="class"||o==="style"||ws(o))&&((t||(t={}))[o]=e[o]);return t},Am=(e,t)=>{const o={};for(const n in e)(!ks(n)||!(n.slice(9)in t))&&(o[n]=e[n]);return o};function Sm(e,t,o){const{props:n,children:a,component:s}=e,{props:r,children:i,patchFlag:l}=t,c=s.emitsOptions;if(t.dirs||t.transition)return!0;if(o&&l>=0){if(l&1024)return!0;if(l&16)return n?Cu(n,r,c):!!r;if(l&8){const u=t.dynamicProps;for(let p=0;pObject.create(Tu),Ru=e=>Object.getPrototypeOf(e)===Tu;function Cm(e,t,o,n=!1){const a={},s=Nu();e.propsDefaults=Object.create(null),Mu(e,t,a,s);for(const r in e.propsOptions[0])r in a||(a[r]=void 0);o?e.props=n?a:Ah(a):e.type.props?e.props=a:e.props=s,e.attrs=s}function Em(e,t,o,n){const{props:a,attrs:s,vnode:{patchFlag:r}}=e,i=Ve(a),[l]=e.propsOptions;let c=!1;if((n||r>0)&&!(r&16)){if(r&8){const u=e.vnode.dynamicProps;for(let p=0;p{l=!0;const[g,A]=Fu(p,t,!0);ft(r,g),A&&i.push(...A)};!o&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!s&&!l)return Qe(e)&&n.set(e,Kn),Kn;if(Ee(s))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",ki=e=>Ee(e)?e.map(xo):[xo(e)],Nm=(e,t,o)=>{if(t._n)return t;const n=Ut((...a)=>ki(t(...a)),o);return n._c=!1,n},Ou=(e,t,o)=>{const n=e._ctx;for(const a in e){if(wi(a))continue;const s=e[a];if(De(s))t[a]=Nm(a,s,n);else if(s!=null){const r=ki(s);t[a]=()=>r}}},Du=(e,t)=>{const o=ki(t);e.slots.default=()=>o},Bu=(e,t,o)=>{for(const n in t)(o||!wi(n))&&(e[n]=t[n])},Rm=(e,t,o)=>{const n=e.slots=Nu();if(e.vnode.shapeFlag&32){const a=t._;a?(Bu(n,t,o),o&&_c(n,"_",a,!0)):Ou(t,n)}else t&&Du(e,t)},Mm=(e,t,o)=>{const{vnode:n,slots:a}=e;let s=!0,r=at;if(n.shapeFlag&32){const i=t._;i?o&&i===1?s=!1:Bu(a,t,o):(s=!t.$stable,Ou(t,a)),r=t}else t&&(Du(e,t),r={default:1});if(s)for(const i in a)!wi(i)&&r[i]==null&&delete a[i]},Bt=Bm;function Fm(e){return Im(e)}function Im(e,t){const o=Es();o.__VUE__=!0;const{insert:n,remove:a,patchProp:s,createElement:r,createText:i,createComment:l,setText:c,setElementText:u,parentNode:p,nextSibling:g,setScopeId:A=$o,insertStaticContent:w}=e,h=(P,O,I,X=null,Q=null,U=null,de=void 0,ne=null,_=!!O.dynamicChildren)=>{if(P===O)return;P&&!Cn(P,O)&&(X=ye(P),H(P,Q,U,!0),P=null),O.patchFlag===-2&&(_=!1,O.dynamicChildren=null);const{type:S,ref:D,shapeFlag:te}=O;switch(S){case Ua:v(P,O,I,X);break;case Ft:$(P,O,I,X);break;case Zs:P==null&&m(O,I,X,de);break;case ze:V(P,O,I,X,Q,U,de,ne,_);break;default:te&1?E(P,O,I,X,Q,U,de,ne,_):te&6?j(P,O,I,X,Q,U,de,ne,_):(te&64||te&128)&&S.process(P,O,I,X,Q,U,de,ne,_,pe)}D!=null&&Q?Da(D,P&&P.ref,U,O||P,!O):D==null&&P&&P.ref!=null&&Da(P.ref,null,U,P,!0)},v=(P,O,I,X)=>{if(P==null)n(O.el=i(O.children),I,X);else{const Q=O.el=P.el;O.children!==P.children&&c(Q,O.children)}},$=(P,O,I,X)=>{P==null?n(O.el=l(O.children||""),I,X):O.el=P.el},m=(P,O,I,X)=>{[P.el,P.anchor]=w(P.children,O,I,X,P.el,P.anchor)},b=({el:P,anchor:O},I,X)=>{let Q;for(;P&&P!==O;)Q=g(P),n(P,I,X),P=Q;n(O,I,X)},k=({el:P,anchor:O})=>{let I;for(;P&&P!==O;)I=g(P),a(P),P=I;a(O)},E=(P,O,I,X,Q,U,de,ne,_)=>{if(O.type==="svg"?de="svg":O.type==="math"&&(de="mathml"),P==null)x(O,I,X,Q,U,de,ne,_);else{const S=P.el&&P.el._isVueCE?P.el:null;try{S&&S._beginPatch(),y(P,O,Q,U,de,ne,_)}finally{S&&S._endPatch()}}},x=(P,O,I,X,Q,U,de,ne)=>{let _,S;const{props:D,shapeFlag:te,transition:me,dirs:le}=P;if(_=P.el=r(P.type,U,D&&D.is,D),te&8?u(_,P.children):te&16&&d(P.children,_,null,X,Q,xi(P,U),de,ne),le&&Ln(P,null,X,"created"),f(_,P,P.scopeId,de,X),D){for(const ie in D)ie!=="value"&&!xa(ie)&&s(_,ie,null,D[ie],U,X);"value"in D&&s(_,"value",null,D.value,U),(S=D.onVnodeBeforeMount)&&Lo(S,X,P)}le&&Ln(P,null,X,"beforeMount");const Y=Om(Q,me);Y&&me.beforeEnter(_),n(_,O,I),((S=D&&D.onVnodeMounted)||Y||le)&&Bt(()=>{try{S&&Lo(S,X,P),Y&&me.enter(_),le&&Ln(P,null,X,"mounted")}finally{}},Q)},f=(P,O,I,X,Q)=>{if(I&&A(P,I),X)for(let U=0;U{for(let S=_;S{const ne=O.el=P.el;let{patchFlag:_,dynamicChildren:S,dirs:D}=O;_|=P.patchFlag&16;const te=P.props||at,me=O.props||at;let le;if(I&&Pn(I,!1),(le=me.onVnodeBeforeUpdate)&&Lo(le,I,O,P),D&&Ln(O,P,I,"beforeUpdate"),I&&Pn(I,!0),S&&(!P.dynamicChildren||P.dynamicChildren.length!==S.length)&&(_=0,de=!1,S=null),(te.innerHTML&&me.innerHTML==null||te.textContent&&me.textContent==null)&&u(ne,""),S?N(P.dynamicChildren,S,ne,I,X,xi(O,Q),U):de||z(P,O,ne,null,I,X,xi(O,Q),U,!1),_>0){if(_&16)B(ne,te,me,I,Q);else if(_&2&&te.class!==me.class&&s(ne,"class",null,me.class,Q),_&4&&s(ne,"style",te.style,me.style,Q),_&8){const Y=O.dynamicProps;for(let ie=0;ie{le&&Lo(le,I,O,P),D&&Ln(O,P,I,"updated")},X)},N=(P,O,I,X,Q,U,de)=>{for(let ne=0;ne{if(O!==I){if(O!==at)for(const U in O)!xa(U)&&!(U in I)&&s(P,U,O[U],null,Q,X);for(const U in I){if(xa(U))continue;const de=I[U],ne=O[U];de!==ne&&U!=="value"&&s(P,U,ne,de,Q,X)}"value"in I&&s(P,"value",O.value,I.value,Q)}},V=(P,O,I,X,Q,U,de,ne,_)=>{const S=O.el=P?P.el:i(""),D=O.anchor=P?P.anchor:i("");let{patchFlag:te,dynamicChildren:me,slotScopeIds:le}=O;le&&(ne=ne?ne.concat(le):le),P==null?(n(S,I,X),n(D,I,X),d(O.children||[],I,D,Q,U,de,ne,_)):te>0&&te&64&&me&&P.dynamicChildren&&P.dynamicChildren.length===me.length?(N(P.dynamicChildren,me,I,Q,U,de,ne),(O.key!=null||Q&&O===Q.subTree)&&Li(P,O,!0)):z(P,O,I,D,Q,U,de,ne,_)},j=(P,O,I,X,Q,U,de,ne,_)=>{O.slotScopeIds=ne,P==null?O.shapeFlag&512?Q.ctx.activate(O,I,X,de,_):G(O,I,X,Q,U,de,_):C(P,O,_)},G=(P,O,I,X,Q,U,de)=>{const ne=P.component=Hm(P,X,Q);if(Ba(P)&&(ne.ctx.renderer=pe),qm(ne,!1,de),ne.asyncDep){if(Q&&Q.registerDep(ne,L,de),!P.el){const _=ne.subTree=et(Ft);$(null,_,O,I),P.placeholder=_.el}}else L(ne,P,O,I,Q,U,de)},C=(P,O,I)=>{const X=O.component=P.component;if(Sm(P,O,I))if(X.asyncDep&&!X.asyncResolved){M(X,O,I);return}else X.next=O,X.update();else O.el=P.el,X.vnode=O},L=(P,O,I,X,Q,U,de)=>{const ne=()=>{if(P.isMounted){let{next:te,bu:me,u:le,parent:Y,vnode:ie}=P;{const tt=Gu(P);if(tt){te&&(te.el=ie.el,M(P,te,de)),tt.asyncDep.then(()=>{Bt(()=>{P.isUnmounted||S()},Q)});return}}let ve=te,Ne;Pn(P,!1),te?(te.el=ie.el,M(P,te,de)):te=ie,me&&Ps(me),(Ne=te.props&&te.props.onVnodeBeforeUpdate)&&Lo(Ne,Y,te,ie),Pn(P,!0);const He=Pu(P),lt=P.subTree;P.subTree=He,h(lt,He,p(lt.el),ye(lt),P,Q,U),te.el=He.el,ve===null&&Pm(P,He.el),le&&Bt(le,Q),(Ne=te.props&&te.props.onVnodeUpdated)&&Bt(()=>Lo(Ne,Y,te,ie),Q)}else{let te;const{el:me,props:le}=O,{bm:Y,m:ie,parent:ve,root:Ne,type:He}=P,lt=Qn(O);Pn(P,!1),Y&&Ps(Y),!lt&&(te=le&&le.onVnodeBeforeMount)&&Lo(te,ve,O),Pn(P,!0);{Ne.ce&&Ne.ce._hasShadowRoot()&&Ne.ce._injectChildStyle(He,P.parent?P.parent.type:void 0);const tt=P.subTree=Pu(P);h(null,tt,I,X,P,Q,U),O.el=tt.el}if(ie&&Bt(ie,Q),!lt&&(te=le&&le.onVnodeMounted)){const tt=O;Bt(()=>Lo(te,ve,tt),Q)}(O.shapeFlag&256||ve&&Qn(ve.vnode)&&ve.vnode.shapeFlag&256)&&P.a&&Bt(P.a,Q),P.isMounted=!0,O=I=X=null}};P.scope.on();const _=P.effect=new Pc(ne);P.scope.off();const S=P.update=_.run.bind(_),D=P.job=_.runIfDirty.bind(_);D.i=P,D.id=P.uid,_.scheduler=()=>ui(D),Pn(P,!0),S()},M=(P,O,I)=>{O.component=P;const X=P.vnode.props;P.vnode=O,P.next=null,Em(P,O.props,X,I),Mm(P,O.children,I),_o(),Jc(P),vo()},z=(P,O,I,X,Q,U,de,ne,_=!1)=>{const S=P&&P.children,D=P?P.shapeFlag:0,te=O.children,{patchFlag:me,shapeFlag:le}=O;if(me>0){if(me&128){J(S,te,I,X,Q,U,de,ne,_);return}else if(me&256){K(S,te,I,X,Q,U,de,ne,_);return}}le&8?(D&16&&Ae(S,Q,U),te!==S&&u(I,te)):D&16?le&16?J(S,te,I,X,Q,U,de,ne,_):Ae(S,Q,U,!0):(D&8&&u(I,""),le&16&&d(te,I,X,Q,U,de,ne,_))},K=(P,O,I,X,Q,U,de,ne,_)=>{P=P||Kn,O=O||Kn;const S=P.length,D=O.length,te=Math.min(S,D);let me;for(me=0;meD?Ae(P,Q,U,!0,!1,te):d(O,I,X,Q,U,de,ne,_,te)},J=(P,O,I,X,Q,U,de,ne,_)=>{let S=0;const D=O.length;let te=P.length-1,me=D-1;for(;S<=te&&S<=me;){const le=P[S],Y=O[S]=_?qo(O[S]):xo(O[S]);if(Cn(le,Y))h(le,Y,I,null,Q,U,de,ne,_);else break;S++}for(;S<=te&&S<=me;){const le=P[te],Y=O[me]=_?qo(O[me]):xo(O[me]);if(Cn(le,Y))h(le,Y,I,null,Q,U,de,ne,_);else break;te--,me--}if(S>te){if(S<=me){const le=me+1,Y=leme)for(;S<=te;)H(P[S],Q,U,!0),S++;else{const le=S,Y=S,ie=new Map;for(S=Y;S<=me;S++){const ke=O[S]=_?qo(O[S]):xo(O[S]);ke.key!=null&&ie.set(ke.key,S)}let ve,Ne=0;const He=me-Y+1;let lt=!1,tt=0;const q=new Array(He);for(S=0;S=He){H(ke,Q,U,!0);continue}let Pe;if(ke.key!=null)Pe=ie.get(ke.key);else for(ve=Y;ve<=me;ve++)if(q[ve-Y]===0&&Cn(ke,O[ve])){Pe=ve;break}Pe===void 0?H(ke,Q,U,!0):(q[Pe-Y]=S+1,Pe>=tt?tt=Pe:lt=!0,h(ke,O[Pe],I,null,Q,U,de,ne,_),Ne++)}const ae=lt?Dm(q):Kn;for(ve=ae.length-1,S=He-1;S>=0;S--){const ke=Y+S,Pe=O[ke],Ie=O[ke+1],gt=ke+1{const{el:U,type:de,transition:ne,children:_,shapeFlag:S}=P;if(S&6){ce(P.component.subTree,O,I,X);return}if(S&128){P.suspense.move(O,I,X);return}if(S&64){de.move(P,O,I,pe);return}if(de===ze){n(U,O,I);for(let te=0;te<_.length;te++)ce(_[te],O,I,X);n(P.anchor,O,I);return}if(de===Zs){b(P,O,I);return}if(X!==2&&S&1&&ne)if(X===0)ne.persisted&&!U[oo]?n(U,O,I):(ne.beforeEnter(U),n(U,O,I),Bt(()=>ne.enter(U),Q));else{const{leave:te,delayLeave:me,afterLeave:le}=ne,Y=()=>{P.ctx.isUnmounted?a(U):n(U,O,I)},ie=()=>{const ve=U._isLeaving||!!U[oo];U._isLeaving&&U[oo](!0),ne.persisted&&!ve?Y():te(U,()=>{Y(),le&&le()})};me?me(U,Y,ie):ie()}else n(U,O,I)},H=(P,O,I,X=!1,Q=!1)=>{const{type:U,props:de,ref:ne,children:_,dynamicChildren:S,shapeFlag:D,patchFlag:te,dirs:me,cacheIndex:le,memo:Y}=P;if(te===-2&&(Q=!1),ne!=null&&(_o(),Da(ne,null,I,P,!0),vo()),le!=null&&(O.renderCache[le]=void 0),D&256){O.ctx.deactivate(P);return}const ie=D&1&&me,ve=!Qn(P);let Ne;if(ve&&(Ne=de&&de.onVnodeBeforeUnmount)&&Lo(Ne,O,P),D&6)he(P.component,I,X);else{if(D&128){P.suspense.unmount(I,X);return}ie&&Ln(P,null,O,"beforeUnmount"),D&64?P.type.remove(P,O,I,pe,X):S&&!S.hasOnce&&(U!==ze||te>0&&te&64)?Ae(S,O,I,!1,!0):(U===ze&&te&384||!Q&&D&16)&&Ae(_,O,I),X&&be(P)}const He=Y!=null&&le==null;(ve&&(Ne=de&&de.onVnodeUnmounted)||ie||He)&&Bt(()=>{Ne&&Lo(Ne,O,P),ie&&Ln(P,null,O,"unmounted"),He&&(P.el=null)},I)},be=P=>{const{type:O,el:I,anchor:X,transition:Q}=P;if(O===ze){we(I,X);return}if(O===Zs){k(P);return}const U=()=>{a(I),Q&&!Q.persisted&&Q.afterLeave&&Q.afterLeave()};if(P.shapeFlag&1&&Q&&!Q.persisted){const{leave:de,delayLeave:ne}=Q,_=()=>de(I,U);ne?ne(P.el,U,_):_()}else U()},we=(P,O)=>{let I;for(;P!==O;)I=g(P),a(P),P=I;a(O)},he=(P,O,I)=>{const{bum:X,scope:Q,job:U,subTree:de,um:ne,m:_,a:S}=P;ju(_),ju(S),X&&Ps(X),Q.stop(),U&&(U.flags|=8,H(de,P,O,I)),ne&&Bt(ne,O),Bt(()=>{P.isUnmounted=!0},O)},Ae=(P,O,I,X=!1,Q=!1,U=0)=>{for(let de=U;de{if(P.shapeFlag&6)return ye(P.component.subTree);if(P.shapeFlag&128)return P.suspense.next();const O=g(P.anchor||P.el),I=O&&O[nu];return I?g(I):O};let oe=!1;const fe=(P,O,I)=>{let X;P==null?O._vnode&&(H(O._vnode,null,null,!0),X=O._vnode.component):h(O._vnode||null,P,O,null,null,null,I),O._vnode=P,oe||(oe=!0,Jc(X),Qc(),oe=!1)},pe={p:h,um:H,m:ce,r:be,mt:G,mc:d,pc:z,pbc:N,n:ye,o:e};return{render:fe,hydrate:void 0,createApp:vm(fe)}}function xi({type:e,props:t},o){return o==="svg"&&e==="foreignObject"||o==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:o}function Pn({effect:e,job:t},o){o?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Om(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Li(e,t,o=!1){const n=e.children,a=t.children;if(Ee(n)&&Ee(a))for(let s=0;s>1,e[o[i]]0&&(t[n]=o[s-1]),o[s]=n)}}for(s=o.length,r=o[s-1];s-- >0;)o[s]=r,r=t[r];return o}function Gu(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Gu(t)}function ju(e){if(e)for(let t=0;te.__isSuspense;function Bm(e,t){t&&t.pendingBranch?Ee(e)?t.effects.push(...e):t.effects.push(e):zh(e)}const ze=Symbol.for("v-fgt"),Ua=Symbol.for("v-txt"),Ft=Symbol.for("v-cmt"),Zs=Symbol.for("v-stc"),Ho=[];let Wt=null;function Z(e=!1){Ho.push(Wt=e?null:[])}function Ai(){Ho.pop(),Wt=Ho[Ho.length-1]||null}let Va=1;function Js(e,t=!1){Va+=e,e<0&&Wt&&t&&(Wt.hasOnce=!0)}function Vu(e){return e.dynamicChildren=Va>0?Wt||Kn:null,Ai(),Va>0&&Wt&&Wt.push(e),e}function re(e,t,o,n,a,s){return Vu(R(e,t,o,n,a,s,!0))}function We(e,t,o,n,a){return Vu(et(e,t,o,n,a,!0))}function Ka(e){return e?e.__v_isVNode===!0:!1}function Cn(e,t){return e.type===t.type&&e.key===t.key}const Ku=({key:e})=>e??null,Qs=({ref:e,ref_key:t,ref_for:o})=>(typeof e=="number"&&(e=""+e),e!=null?st(e)||ut(e)||De(e)?{i:Pt,r:e,k:t,f:!!o}:e:null);function R(e,t=null,o=null,n=0,a=null,s=e===ze?0:1,r=!1,i=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Ku(t),ref:t&&Qs(t),scopeId:tu,slotScopeIds:null,children:o,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:n,dynamicProps:a,dynamicChildren:null,appContext:null,ctx:Pt};return i?(er(l,o),s&128&&e.normalize(l)):o&&(l.shapeFlag|=st(o)?8:16),Va>0&&!r&&Wt&&(l.patchFlag>0||s&6)&&l.patchFlag!==32&&Wt.push(l),l}const et=Gm;function Gm(e,t=null,o=null,n=0,a=null,s=!1){if((!e||e===mu)&&(e=Ft),Ka(e)){const i=ln(e,t,!0);return o&&er(i,o),Va>0&&!s&&Wt&&(i.shapeFlag&6?Wt[Wt.indexOf(e)]=i:Wt.push(i)),i.patchFlag=-2,i}if(Qm(e)&&(e=e.__vccOpts),t){t=jm(t);let{class:i,style:l}=t;i&&!st(i)&&(t.class=Re(i)),Qe(l)&&(Os(l)&&!Ee(l)&&(l=ft({},l)),t.style=Ye(l))}const r=st(e)?1:Uu(e)?128:Us(e)?64:Qe(e)?4:De(e)?2:0;return R(e,t,o,n,a,r,s,!0)}function jm(e){return e?Os(e)||Ru(e)?ft({},e):e:null}function ln(e,t,o=!1,n=!1){const{props:a,ref:s,patchFlag:r,children:i,transition:l}=e,c=t?Um(a||{},t):a,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Ku(c),ref:t&&t.ref?o&&s?Ee(s)?s.concat(Qs(t)):[s,Qs(t)]:Qs(t):s,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!==ze?r===-1?16:r|16:r,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&ln(e.ssContent),ssFallback:e.ssFallback&&ln(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&n&&Ia(u,l.clone(u)),u}function bt(e=" ",t=0){return et(Ua,null,e,t)}function zm(e,t){const o=et(Zs,null,e);return o.staticCount=t,o}function xe(e="",t=!1){return t?(Z(),We(Ft,null,e)):et(Ft,null,e)}function xo(e){return e==null||typeof e=="boolean"?et(Ft):Ee(e)?et(ze,null,e.slice()):Ka(e)?qo(e):et(Ua,null,String(e))}function qo(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:ln(e)}function er(e,t){let o=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(Ee(t))o=16;else if(typeof t=="object")if(n&65){const a=t.default;a&&(a._c&&(a._d=!1),er(e,a()),a._c&&(a._d=!0));return}else{o=32;const a=t._;!a&&!Ru(t)?t._ctx=Pt:a===3&&Pt&&(Pt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(De(t)){if(n&65){er(e,{default:t});return}t={default:t,_ctx:Pt},o=32}else t=String(t),n&64?(o=16,t=[bt(t)]):o=8;e.children=t,e.shapeFlag|=o}function Um(...e){const t={};for(let o=0;oEt||Pt;let tr,Ha;{const e=Es(),t=(o,n)=>{let a;return(a=e[o])||(a=e[o]=[]),a.push(n),s=>{a.length>1?a.forEach(r=>r(s)):a[0](s)}};tr=t("__VUE_INSTANCE_SETTERS__",o=>Et=o),Ha=t("__VUE_SSR_SETTERS__",o=>ea=o)}const qa=e=>{const t=Et;return tr(e),e.scope.on(),()=>{e.scope.off(),tr(t)}},Hu=()=>{Et&&Et.scope.off(),tr(null)};function qu(e){return e.vnode.shapeFlag&4}let ea=!1;function qm(e,t=!1,o=!1){t&&Ha(t);const{props:n,children:a}=e.vnode,s=qu(e);Cm(e,n,s,t),Rm(e,a,o||t);const r=s?Wm(e,t):void 0;return t&&Ha(!1),r}function Wm(e,t){const o=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,fm);const{setup:n}=o;if(n){_o();const a=e.setupContext=n.length>1?Xm(e):null,s=qa(e),r=Xn(n,e,0,[e.props,a]),i=$c(r);if(vo(),s(),(i||e.sp)&&!Qn(e)&&mi(e),i){if(r.then(Hu,Hu),t)return r.then(l=>{Ha(!0);try{Wu(e,l,t)}finally{Ha(!1)}}).catch(l=>{Na(l,e,0)});e.asyncDep=r}else Wu(e,r)}else Yu(e)}function Wu(e,t,o){De(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Qe(t)&&(e.setupState=qc(t)),Yu(e)}function Yu(e,t,o){const n=e.type;e.render||(e.render=n.render||$o);{const a=qa(e);_o();try{hm(e)}finally{vo(),a()}}}const Ym={get(e,t){return Rt(e,"get",""),e[t]}};function Xm(e){const t=o=>{e.exposed=o||{}};return{attrs:new Proxy(e.attrs,Ym),slots:e.slots,emit:e.emit,expose:t}}function or(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(qc(Wn(e.exposed)),{get(t,o){if(o in t)return t[o];if(o in ja)return ja[o](e)},has(t,o){return o in t||o in ja}})):e.proxy}const Zm=/(?:^|[-_])\w/g,Jm=e=>e.replace(Zm,t=>t.toUpperCase()).replace(/[-_]/g,"");function Xu(e,t=!0){return De(e)?e.displayName||e.name:e.name||t&&e.__name}function Zu(e,t,o=!1){let n=Xu(t);if(!n&&t.__file){const a=t.__file.match(/([^/\\]+)\.\w+$/);a&&(n=a[1])}if(!n&&e){const a=s=>{for(const r in s)if(s[r]===t)return r};n=a(e.components)||e.parent&&a(e.parent.type.components)||a(e.appContext.components)}return n?Jm(n):o?"App":"Anonymous"}function Qm(e){return De(e)&&"__vccOpts"in e}const ee=(e,t)=>Rh(e,t,ea);function Si(e,t,o){try{Js(-1);const n=arguments.length;return n===2?Qe(t)&&!Ee(t)?Ka(t)?et(e,null,[t]):et(e,t):et(e,null,t):(n>3?o=Array.prototype.slice.call(arguments,2):n===3&&Ka(o)&&(o=[o]),et(e,t,o))}finally{Js(1)}}const eb="3.5.42";/** * @vue/runtime-dom v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let li;const Lu=typeof window<"u"&&window.trustedTypes;if(Lu)try{li=Lu.createPolicy("vue",{createHTML:e=>e})}catch{}const Au=li?e=>li.createHTML(e):e=>e,fm="http://www.w3.org/2000/svg",hm="http://www.w3.org/1998/Math/MathML",Go=typeof document<"u"?document:null,Su=Go&&Go.createElement("template"),mm={insert:(e,t,o)=>{t.insertBefore(e,o||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,o,n)=>{const a=t==="svg"?Go.createElementNS(fm,e):t==="mathml"?Go.createElementNS(hm,e):o?Go.createElement(e,{is:o}):Go.createElement(e);return e==="select"&&n&&n.multiple!=null&&a.setAttribute("multiple",n.multiple),a},createText:e=>Go.createTextNode(e),createComment:e=>Go.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Go.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,o,n,a,s){const r=o?o.previousSibling:t.lastChild;if(a&&(a===s||a.nextSibling))for(;t.insertBefore(a.cloneNode(!0),o),!(a===s||!(a=a.nextSibling)););else{Su.innerHTML=Au(n==="svg"?`${e}`:n==="mathml"?`${e}`:e);const i=Su.content;if(n==="svg"||n==="mathml"){const l=i.firstChild;for(;l.firstChild;)i.appendChild(l.firstChild);i.removeChild(l)}t.insertBefore(i,o)}return[r?r.nextSibling:t.firstChild,o?o.previousSibling:t.lastChild]}},bm=Symbol("_vtc");function $m(e,t,o){const n=e[bm];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):o?e.setAttribute("class",t):e.className=t}const Ds=Symbol("_vod"),Pu=Symbol("_vsh"),ym={name:"show",beforeMount(e,{value:t},{transition:o}){e[Ds]=e.style.display==="none"?"":e.style.display,o&&t?o.beforeEnter(e):Na(e,t)},mounted(e,{value:t},{transition:o}){o&&t&&o.enter(e)},updated(e,{value:t,oldValue:o},{transition:n}){!t!=!o&&(n?t?(n.beforeEnter(e),Na(e,!0),n.enter(e)):n.leave(e,()=>{Na(e,!1)}):Na(e,t))},beforeUnmount(e,{value:t}){Na(e,t)}};function Na(e,t){e.style.display=t?e[Ds]:"none",e[Pu]=!t}const _m=Symbol(""),vm=/(?:^|;)\s*display\s*:/;function wm(e,t,o){const n=e.style,a=it(o);let s=!1;if(o&&!a){if(t)if(it(t))for(const r of t.split(";")){const i=r.slice(0,r.indexOf(":")).trim();o[i]==null&&Ra(n,i,"")}else for(const r in t)o[r]==null&&Ra(n,r,"");for(const r in o){r==="display"&&(s=!0);const i=o[r];i!=null?xm(e,r,!it(t)&&t?t[r]:void 0,i)||Ra(n,r,i):Ra(n,r,"")}}else if(a){if(t!==o){const r=n[_m];r&&(o+=";"+r),n.cssText=o,s=vm.test(o)}}else t&&e.removeAttribute("style");Ds in e&&(e[Ds]=s?n.display:"",e[Pu]&&(n.display="none"))}const Gs=/\s*!important$/;function Ra(e,t,o){if(Me(o))o.forEach(n=>Ra(e,t,n));else if(o==null&&(o=""),t.startsWith("--"))Gs.test(o)?e.setProperty(t,o.replace(Gs,""),"important"):e.setProperty(t,o);else{const n=km(e,t);Gs.test(o)?e.setProperty(Yt(n),o.replace(Gs,""),"important"):e[n]=o}}const Cu=["Webkit","Moz","ms"],ci={};function km(e,t){const o=ci[t];if(o)return o;let n=xt(t);if(n!=="filter"&&n in e)return ci[t]=n;n=is(n);for(let a=0;aui||(Em.then(()=>ui=0),ui=Date.now());function Nm(e,t){const o=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=o.attached)return;const a=o.value;if(Me(a)){const s=n.stopImmediatePropagation;n.stopImmediatePropagation=()=>{s.call(n),n._stopped=!0};const r=a.slice(),i=[n];for(let l=0;le.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Rm=(e,t,o,n,a,s)=>{const r=a==="svg";t==="class"?$m(e,n,r):t==="style"?wm(e,o,n):ts(t)?os(t)||Am(e,t,o,n,s):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Mm(e,t,n,r))?(Nu(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Tu(e,t,n,r,s,t!=="value")):e._isVueCE&&(Fm(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!it(n)))?Nu(e,xt(t),n,s,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),Tu(e,t,n,r))};function Mm(e,t,o,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&Mu(t)&&De(o));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const a=e.tagName;if(a==="IMG"||a==="VIDEO"||a==="CANVAS"||a==="SOURCE")return!1}return Mu(t)&&it(o)?!1:t in e}function Fm(e,t){const o=e._def.props;if(!o)return!1;const n=xt(t);return Array.isArray(o)?o.some(a=>xt(a)===n):Object.keys(o).some(a=>xt(a)===n)}const Fu={};function Im(e,t,o){let n=wa(e,t);as(n)&&(n=mt({},n,t));class a extends pi{constructor(r){super(n,r,o)}}return a.def=n,a}const Om=typeof HTMLElement<"u"?HTMLElement:class{};class pi extends Om{constructor(t,o={},n=ju){super(),this._def=t,this._props=o,this._createApp=n,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._patching=!1,this._dirty=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._styleAnchors=new WeakMap,this._ob=null,this.shadowRoot&&n!==ju?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(mt({},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 pi){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,It(()=>{this._connected||(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(t){for(const o of t)this._setAttr(o.attributeName)}_resolveDef(){if(this._pendingResolve)return this._pendingResolve;for(let n=0;n{this._resolved=!0,this._pendingResolve=void 0;const{props:s,styles:r}=n;let i;if(s&&!Me(s))for(const l in s){const c=s[l];(c===Number||c&&c.type===Number)&&(l in this._props&&(this._props[l]=Xl(this._props[l])),(i||(i=Object.create(null)))[xt(l)]=!0)}this._numberProps=i,this._resolveProps(n),this.shadowRoot&&this._applyStyles(r),this._mount(n)},o=this._def.__asyncLoader;if(o)return this._pendingResolve=o().then(n=>{n.configureApp=this._def.configureApp,t(this._def=n,!0)}),this._pendingResolve;t(this._def)}_mount(t){this._app=this._createApp(t),this._inheritParentContext(),t.configureApp&&t.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);const o=this._instance&&this._instance.exposed;if(o)for(const n in o)Ze(this,n)||Object.defineProperty(this,n,{get:()=>ge(o[n])})}_resolveProps(t){const{props:o}=t,n=Me(o)?o:Object.keys(o||{});for(const a of Object.keys(this))a[0]!=="_"&&n.includes(a)&&this._setProp(a,this[a]);for(const a of n.map(xt))Object.defineProperty(this,a,{get(){return this._getProp(a)},set(s){this._setProp(a,s,!0,!this._patching)}})}_setAttr(t){if(t.startsWith("data-v-"))return;const o=this.hasAttribute(t);let n=o?this.getAttribute(t):Fu;const a=xt(t);o&&this._numberProps&&this._numberProps[a]&&(n=Xl(n)),this._setProp(a,n,!1,!0)}_getProp(t){return this._props[t]}_setProp(t,o,n=!0,a=!1){if(o!==this._props[t]&&(this._dirty=!0,o===Fu?delete this._props[t]:(this._props[t]=o,t==="key"&&this._app&&(this._app._ceVNode.key=o)),a&&this._instance&&this._update(),n)){const s=this._ob;s&&(this._processMutations(s.takeRecords()),s.disconnect()),o===!0?this.setAttribute(Yt(t),""):typeof o=="string"||typeof o=="number"?this.setAttribute(Yt(t),o+""):o||this.removeAttribute(Yt(t)),s&&s.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),zm(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const o=tt(this._def,mt(t,this._props));return this._instance||(o.ce=n=>{this._instance=n,n.ce=this,n.isCE=!0;const a=(s,r)=>{this.dispatchEvent(new CustomEvent(s,as(r[0])?mt({detail:r},r[0]):{detail:r}))};n.emit=(s,...r)=>{a(s,r),Yt(s)!==s&&a(Yt(s),r)},this._setParent()}),o}_applyStyles(t,o,n){if(!t)return;if(o){if(o===this._def||this._styleChildren.has(o))return;this._styleChildren.add(o)}const a=this._nonce,s=this.shadowRoot,r=n?this._getStyleAnchor(n)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(s);let i=null;for(let l=t.length-1;l>=0;l--){const c=document.createElement("style");a&&c.setAttribute("nonce",a),c.textContent=t[l],s.insertBefore(c,i||r),i=c,l===0&&(n||this._styleAnchors.set(this._def,c),o&&this._styleAnchors.set(o,c))}}_getStyleAnchor(t){if(!t)return null;const o=this._styleAnchors.get(t);return o&&o.parentNode===this.shadowRoot?o:(o&&this._styleAnchors.delete(t),null)}_getRootStyleInsertionAnchor(t){for(let o=0;o{const t=e.props["onUpdate:modelValue"]||!1;return Me(t)?o=>ls(t,o):t};function Dm(e){e.target.composing=!0}function Ou(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Bs=Symbol("_assign"),js=Symbol("_initialValue");function di(e,t,o){return t&&(e=e.trim()),o&&(e=Er(e)),e}const Du={created(e,{modifiers:{lazy:t,trim:o,number:n}},a){e.parentNode&&(e.type==="text"?e[js]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[js]=e.defaultValue.replace(/\r\n?/g,` -`))),e[Bs]=Iu(a);const s=n||a.props&&a.props.type==="number";Un(e,t?"change":"input",r=>{r.target.composing||e[Bs](di(e.value,o,s))}),(o||s)&&Un(e,"change",()=>{e.value=di(e.value,o,s)}),t||(Un(e,"compositionstart",Dm),Un(e,"compositionend",Ou),Un(e,"change",Ou))},mounted(e,{value:t,modifiers:{trim:o,number:n}}){const a=t??"",s=e[js];delete e[js],s!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==s?e[Bs](di(e.value,o,n)):e.value=a},beforeUpdate(e,{value:t,oldValue:o,modifiers:{lazy:n,trim:a,number:s}},r){if(e[Bs]=Iu(r),e.composing)return;const i=(s||e.type==="number")&&!/^0\d/.test(e.value)?Er(e.value):e.value,l=t??"";if(i===l)return;const c=e.getRootNode();(c instanceof Document||c instanceof ShadowRoot)&&c.activeElement===e&&e.type!=="range"&&(n&&t===o||a&&e.value.trim()===l)||(e.value=l)}},Gm=["ctrl","shift","alt","meta"],Bm={stop:e=>e.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)=>Gm.some(o=>e[`${o}Key`]&&!t.includes(o))},gt=(e,t)=>{if(!e)return e;const o=e._withMods||(e._withMods={}),n=t.join(".");return o[n]||(o[n]=(a,...s)=>{for(let r=0;r{Bu().render(...e)},ju=(...e)=>{const t=Bu().createApp(...e),{mount:o}=t;return t.mount=n=>{const a=Vm(n);if(!a)return;const s=t._component;!De(s)&&!s.render&&!s.template&&(s.template=a.innerHTML),a.nodeType===1&&(a.textContent="");const r=o(a,!1,Um(a));return a instanceof Element&&(a.removeAttribute("v-cloak"),a.setAttribute("data-v-app","")),r},t};function Um(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Vm(e){return it(e)?document.querySelector(e):e}/*! +**/let Pi;const Ju=typeof window<"u"&&window.trustedTypes;if(Ju)try{Pi=Ju.createPolicy("vue",{createHTML:e=>e})}catch{}const Qu=Pi?e=>Pi.createHTML(e):e=>e,tb="http://www.w3.org/2000/svg",ob="http://www.w3.org/1998/Math/MathML",Wo=typeof document<"u"?document:null,ep=Wo&&Wo.createElement("template"),nb={insert:(e,t,o)=>{t.insertBefore(e,o||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,o,n)=>{const a=t==="svg"?Wo.createElementNS(tb,e):t==="mathml"?Wo.createElementNS(ob,e):o?Wo.createElement(e,{is:o}):Wo.createElement(e);return e==="select"&&n&&n.multiple!=null&&a.setAttribute("multiple",n.multiple),a},createText:e=>Wo.createTextNode(e),createComment:e=>Wo.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Wo.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,o,n,a,s){const r=o?o.previousSibling:t.lastChild;if(a&&(a===s||a.nextSibling))for(;t.insertBefore(a.cloneNode(!0),o),!(a===s||!(a=a.nextSibling)););else{ep.innerHTML=Qu(n==="svg"?`${e}`:n==="mathml"?`${e}`:e);const i=ep.content;if(n==="svg"||n==="mathml"){const l=i.firstChild;for(;l.firstChild;)i.appendChild(l.firstChild);i.removeChild(l)}t.insertBefore(i,o)}return[r?r.nextSibling:t.firstChild,o?o.previousSibling:t.lastChild]}},cn="transition",Wa="animation",Ya=Symbol("_vtc"),tp={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},ab=ft({},ru,tp),sb=(e=>(e.displayName="Transition",e.props=ab,e))((e,{slots:t})=>Si(em,rb(e),t)),En=(e,t=[])=>{Ee(e)?e.forEach(o=>o(...t)):e&&e(...t)},op=e=>e?Ee(e)?e.some(t=>t.length>1):e.length>1:!1;function rb(e){const t={};for(const V in e)V in tp||(t[V]=e[V]);if(e.css===!1)return t;const{name:o="v",type:n,duration:a,enterFromClass:s=`${o}-enter-from`,enterActiveClass:r=`${o}-enter-active`,enterToClass:i=`${o}-enter-to`,appearFromClass:l=s,appearActiveClass:c=r,appearToClass:u=i,leaveFromClass:p=`${o}-leave-from`,leaveActiveClass:g=`${o}-leave-active`,leaveToClass:A=`${o}-leave-to`}=e,w=ib(a),h=w&&w[0],v=w&&w[1],{onBeforeEnter:$,onEnter:m,onEnterCancelled:b,onLeave:k,onLeaveCancelled:E,onBeforeAppear:x=$,onAppear:f=m,onAppearCancelled:d=b}=t,y=(V,j,G,C)=>{V._enterCancelled=C,Tn(V,j?u:i),Tn(V,j?c:r),G&&G()},N=(V,j)=>{V._isLeaving=!1,Tn(V,p),Tn(V,A),Tn(V,g),j&&j()},B=V=>(j,G)=>{const C=V?f:m,L=()=>y(j,V,G);En(C,[j,L]),np(()=>{Tn(j,V?l:s),Yo(j,V?u:i),op(C)||ap(j,n,h,L)})};return ft(t,{onBeforeEnter(V){En($,[V]),Yo(V,s),Yo(V,r)},onBeforeAppear(V){En(x,[V]),Yo(V,l),Yo(V,c)},onEnter:B(!1),onAppear:B(!0),onLeave(V,j){V._isLeaving=!0;const G=()=>N(V,j);Yo(V,p),V._enterCancelled?(Yo(V,g),ip(V)):(ip(V),Yo(V,g)),np(()=>{V._isLeaving&&(Tn(V,p),Yo(V,A),op(k)||ap(V,n,v,G))}),En(k,[V,G])},onEnterCancelled(V){y(V,!1,void 0,!0),En(b,[V])},onAppearCancelled(V){y(V,!0,void 0,!0),En(d,[V])},onLeaveCancelled(V){N(V),En(E,[V])}})}function ib(e){if(e==null)return null;if(Qe(e))return[Ci(e.enter),Ci(e.leave)];{const t=Ci(e);return[t,t]}}function Ci(e){return Yr(e)}function Yo(e,t){t.split(/\s+/).forEach(o=>o&&e.classList.add(o)),(e[Ya]||(e[Ya]=new Set)).add(t)}function Tn(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.remove(n));const o=e[Ya];o&&(o.delete(t),o.size||(e[Ya]=void 0))}function np(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let lb=0;function ap(e,t,o,n){const a=e._endId=++lb,s=()=>{a===e._endId&&n()};if(o!=null)return setTimeout(s,o);const{type:r,timeout:i,propCount:l}=cb(e,t);if(!r)return n();const c=r+"end";let u=0;const p=()=>{e.removeEventListener(c,g),s()},g=A=>{A.target===e&&++u>=l&&p()};setTimeout(()=>{u(o[w]||"").split(", "),a=n(`${cn}Delay`),s=n(`${cn}Duration`),r=sp(a,s),i=n(`${Wa}Delay`),l=n(`${Wa}Duration`),c=sp(i,l);let u=null,p=0,g=0;t===cn?r>0&&(u=cn,p=r,g=s.length):t===Wa?c>0&&(u=Wa,p=c,g=l.length):(p=Math.max(r,c),u=p>0?r>c?cn:Wa:null,g=u?u===cn?s.length:l.length:0);const A=u===cn&&/\b(?:transform|all)(?:,|$)/.test(n(`${cn}Property`).toString());return{type:u,timeout:p,propCount:g,hasTransform:A}}function sp(e,t){for(;e.lengthrp(o)+rp(e[n])))}function rp(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function ip(e){return(e?e.ownerDocument:document).body.offsetHeight}function ub(e,t,o){const n=e[Ya];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):o?e.setAttribute("class",t):e.className=t}const nr=Symbol("_vod"),lp=Symbol("_vsh"),pb={name:"show",beforeMount(e,{value:t},{transition:o}){e[nr]=e.style.display==="none"?"":e.style.display,o&&t?o.beforeEnter(e):Xa(e,t)},mounted(e,{value:t},{transition:o}){o&&t&&o.enter(e)},updated(e,{value:t,oldValue:o},{transition:n}){!t!=!o&&(n?t?(n.beforeEnter(e),Xa(e,!0),n.enter(e)):n.leave(e,()=>{Xa(e,!1)}):Xa(e,t))},beforeUnmount(e,{value:t}){Xa(e,t)}};function Xa(e,t){e.style.display=t?e[nr]:"none",e[lp]=!t}const db=Symbol(""),gb=/(?:^|;)\s*display\s*:/;function fb(e,t,o){const n=e.style,a=st(o);let s=!1;if(o&&!a){if(t)if(st(t))for(const r of t.split(";")){const i=r.slice(0,r.indexOf(":")).trim();o[i]==null&&Za(n,i,"")}else for(const r in t)o[r]==null&&Za(n,r,"");for(const r in o){r==="display"&&(s=!0);const i=o[r];i!=null?mb(e,r,!st(t)&&t?t[r]:void 0,i)||Za(n,r,i):Za(n,r,"")}}else if(a){if(t!==o){const r=n[db];r&&(o+=";"+r),n.cssText=o,s=gb.test(o)}}else t&&e.removeAttribute("style");nr in e&&(e[nr]=s?n.display:"",e[lp]&&(n.display="none"))}const ar=/\s*!important$/;function Za(e,t,o){if(Ee(o))o.forEach(n=>Za(e,t,n));else if(o==null&&(o=""),t.startsWith("--"))ar.test(o)?e.setProperty(t,o.replace(ar,""),"important"):e.setProperty(t,o);else{const n=hb(e,t);ar.test(o)?e.setProperty(Qt(n),o.replace(ar,""),"important"):e[n]=o}}const cp=["Webkit","Moz","ms"],Ei={};function hb(e,t){const o=Ei[t];if(o)return o;let n=xt(t);if(n!=="filter"&&n in e)return Ei[t]=n;n=Ss(n);for(let a=0;aTi||(wb.then(()=>Ti=0),Ti=Date.now());function xb(e,t){const o=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=o.attached)return;const a=o.value;if(Ee(a)){const s=n.stopImmediatePropagation;n.stopImmediatePropagation=()=>{s.call(n),n._stopped=!0};const r=a.slice(),i=[n];for(let l=0;le.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Lb=(e,t,o,n,a,s)=>{const r=a==="svg";t==="class"?ub(e,n,r):t==="style"?fb(e,o,n):ws(t)?ks(t)||$b(e,t,o,n,s):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Ab(e,t,n,r))?(dp(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&pp(e,t,n,r,s,t!=="value")):e._isVueCE&&(Sb(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!st(n)))?dp(e,xt(t),n,s,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),pp(e,t,n,r))};function Ab(e,t,o,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&fp(t)&&De(o));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const a=e.tagName;if(a==="IMG"||a==="VIDEO"||a==="CANVAS"||a==="SOURCE")return!1}return fp(t)&&st(o)?!1:t in e}function Sb(e,t){const o=e._def.props;if(!o)return!1;const n=xt(t);return Array.isArray(o)?o.some(a=>xt(a)===n):Object.keys(o).some(a=>xt(a)===n)}const hp={};function Pb(e,t,o){let n=Oa(e,t);xs(n)&&(n=ft({},n,t));class a extends Ni{constructor(r){super(n,r,o)}}return a.def=n,a}const Cb=typeof HTMLElement<"u"?HTMLElement:class{};class Ni extends Cb{constructor(t,o={},n=wp){super(),this._def=t,this._props=o,this._createApp=n,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._patching=!1,this._dirty=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._styleAnchors=new WeakMap,this._ob=null,this.shadowRoot&&n!==wp?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(ft({},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 Ni){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,Mt(()=>{this._connected||(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(t){for(const o of t)this._setAttr(o.attributeName)}_resolveDef(){if(this._pendingResolve)return this._pendingResolve;for(let n=0;n{this._resolved=!0,this._pendingResolve=void 0;const{props:s,styles:r}=n;let i;if(s&&!Ee(s))for(const l in s){const c=s[l];(c===Number||c&&c.type===Number)&&(l in this._props&&(this._props[l]=Yr(this._props[l])),(i||(i=Object.create(null)))[xt(l)]=!0)}this._numberProps=i,this._resolveProps(n),this.shadowRoot&&this._applyStyles(r),this._mount(n)},o=this._def.__asyncLoader;if(o)return this._pendingResolve=o().then(n=>{n.configureApp=this._def.configureApp,t(this._def=n,!0)}),this._pendingResolve;t(this._def)}_mount(t){this._app=this._createApp(t),this._inheritParentContext(),t.configureApp&&t.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);const o=this._instance&&this._instance.exposed;if(o)for(const n in o)Je(this,n)||Object.defineProperty(this,n,{get:()=>ue(o[n])})}_resolveProps(t){const{props:o}=t,n=Ee(o)?o:Object.keys(o||{});for(const a of Object.keys(this))a[0]!=="_"&&n.includes(a)&&this._setProp(a,this[a]);for(const a of n.map(xt))Object.defineProperty(this,a,{get(){return this._getProp(a)},set(s){this._setProp(a,s,!0,!this._patching)}})}_setAttr(t){if(t.startsWith("data-v-"))return;const o=this.hasAttribute(t);let n=o?this.getAttribute(t):hp;const a=xt(t);o&&this._numberProps&&this._numberProps[a]&&(n=Yr(n)),this._setProp(a,n,!1,!0)}_getProp(t){return this._props[t]}_setProp(t,o,n=!0,a=!1){if(o!==this._props[t]&&(this._dirty=!0,o===hp?delete this._props[t]:(this._props[t]=o,t==="key"&&this._app&&(this._app._ceVNode.key=o)),a&&this._instance&&this._update(),n)){const s=this._ob;s&&(this._processMutations(s.takeRecords()),s.disconnect()),o===!0?this.setAttribute(Qt(t),""):typeof o=="string"||typeof o=="number"?this.setAttribute(Qt(t),o+""):o||this.removeAttribute(Qt(t)),s&&s.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),Fb(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const o=et(this._def,ft(t,this._props));return this._instance||(o.ce=n=>{this._instance=n,n.ce=this,n.isCE=!0;const a=(s,r)=>{this.dispatchEvent(new CustomEvent(s,xs(r[0])?ft({detail:r},r[0]):{detail:r}))};n.emit=(s,...r)=>{a(s,r),Qt(s)!==s&&a(Qt(s),r)},this._setParent()}),o}_applyStyles(t,o,n){if(!t)return;if(o){if(o===this._def||this._styleChildren.has(o))return;this._styleChildren.add(o)}const a=this._nonce,s=this.shadowRoot,r=n?this._getStyleAnchor(n)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(s);let i=null;for(let l=t.length-1;l>=0;l--){const c=document.createElement("style");a&&c.setAttribute("nonce",a),c.textContent=t[l],s.insertBefore(c,i||r),i=c,l===0&&(n||this._styleAnchors.set(this._def,c),o&&this._styleAnchors.set(o,c))}}_getStyleAnchor(t){if(!t)return null;const o=this._styleAnchors.get(t);return o&&o.parentNode===this.shadowRoot?o:(o&&this._styleAnchors.delete(t),null)}_getRootStyleInsertionAnchor(t){for(let o=0;o{const t=e.props["onUpdate:modelValue"]||!1;return Ee(t)?o=>Ps(t,o):t};function Eb(e){e.target.composing=!0}function mp(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Ao=Symbol("_assign"),sr=Symbol("_initialValue");function Ri(e,t,o){return t&&(e=e.trim()),o&&(e=Cs(e)),e}const rr={created(e,{modifiers:{lazy:t,trim:o,number:n}},a){e.parentNode&&(e.type==="text"?e[sr]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[sr]=e.defaultValue.replace(/\r\n?/g,` +`))),e[Ao]=ta(a);const s=n||a.props&&a.props.type==="number";un(e,t?"change":"input",r=>{r.target.composing||e[Ao](Ri(e.value,o,s))}),(o||s)&&un(e,"change",()=>{e.value=Ri(e.value,o,s)}),t||(un(e,"compositionstart",Eb),un(e,"compositionend",mp),un(e,"change",mp))},mounted(e,{value:t,modifiers:{trim:o,number:n}}){const a=t??"",s=e[sr];delete e[sr],s!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==s?e[Ao](Ri(e.value,o,n)):e.value=a},beforeUpdate(e,{value:t,oldValue:o,modifiers:{lazy:n,trim:a,number:s}},r){if(e[Ao]=ta(r),e.composing)return;const i=(s||e.type==="number")&&!/^0\d/.test(e.value)?Cs(e.value):e.value,l=t??"";if(i===l)return;const c=e.getRootNode();(c instanceof Document||c instanceof ShadowRoot)&&c.activeElement===e&&e.type!=="range"&&(n&&t===o||a&&e.value.trim()===l)||(e.value=l)}},Mi={deep:!0,created(e,t,o){e[Ao]=ta(o),un(e,"change",()=>{const n=e._modelValue,a=Ja(e),s=e.checked,r=e[Ao];if(Ee(n)){const i=Xr(n,a),l=i!==-1;if(s&&!l)r(n.concat(a));else if(!s&&l){const c=[...n];c.splice(i,1),r(c)}}else if(Oo(n)){const i=new Set(n);s?i.add(a):i.delete(a),r(i)}else r(yp(e,s))})},mounted:bp,beforeUpdate(e,t,o){e[Ao]=ta(o),bp(e,t,o)}};function bp(e,{value:t,oldValue:o},n){e._modelValue=t;let a;if(Ee(t))a=Xr(t,n.props.value)>-1;else if(Oo(t))a=t.has(n.props.value);else{if(t===o)return;a=Do(t,yp(e,!0))}e.checked!==a&&(e.checked=a)}const ir={deep:!0,created(e,{value:t,modifiers:{number:o}},n){e._modelValue=t,un(e,"change",()=>{const a=Array.prototype.filter.call(e.options,l=>l.selected).map(l=>o?Cs(Ja(l)):Ja(l)),s=e.multiple,r=s?Oo(e._modelValue)?new Set(a):a:a[0],i=e._pendingValue=[s,s?Ee(r)?a.slice():a:r];try{e[Ao](r)}finally{Mt(()=>{e._pendingValue===i&&(e._pendingValue=void 0)})}}),e[Ao]=ta(n)},mounted(e,{value:t}){$p(e,t)},beforeUpdate(e,{value:t},o){e._modelValue=t,e[Ao]=ta(o)},updated(e,{value:t}){const o=e._pendingValue;e._pendingValue=void 0,(!o||o[0]!==e.multiple||!Tb(t,o[1],o[0]))&&$p(e,t)}};function Tb(e,t,o){if(!o||Ee(e))return Do(e,t);if(Oo(e)){if(e.size!==t.length)return!1;for(const n of t)if(!e.has(n))return!1;return!0}return!1}function $p(e,t){const o=e.multiple,n=Ee(t);if(!(o&&!n&&!Oo(t))){for(let a=0,s=e.options.length;aString(c)===String(i)):r.selected=Xr(t,i)>-1}else r.selected=t.has(i);else if(Do(Ja(r),t)){e.selectedIndex!==a&&(e.selectedIndex=a);return}}!o&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Ja(e){return"_value"in e?e._value:e.value}function yp(e,t){const o=t?"_trueValue":"_falseValue";return o in e?e[o]:t}const Nb=["ctrl","shift","alt","meta"],Rb={stop:e=>e.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)=>Nb.some(o=>e[`${o}Key`]&&!t.includes(o))},pt=(e,t)=>{if(!e)return e;const o=e._withMods||(e._withMods={}),n=t.join(".");return o[n]||(o[n]=(a,...s)=>{for(let r=0;r{vp().render(...e)},wp=(...e)=>{const t=vp().createApp(...e),{mount:o}=t;return t.mount=n=>{const a=Ob(n);if(!a)return;const s=t._component;!De(s)&&!s.render&&!s.template&&(s.template=a.innerHTML),a.nodeType===1&&(a.textContent="");const r=o(a,!1,Ib(a));return a instanceof Element&&(a.removeAttribute("v-cloak"),a.setAttribute("data-v-app","")),r},t};function Ib(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Ob(e){return st(e)?document.querySelector(e):e}/*! * pinia v2.3.1 * (c) 2025 Eduardo San Martin Morote * @license MIT - */let zu;const zs=e=>zu=e,Uu=Symbol();function gi(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Ma;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Ma||(Ma={}));function Km(){const e=Nr(!0),t=e.run(()=>he({}));let o=[],n=[];const a=Fn({install(s){zs(a),a._a=s,s.provide(Uu,a),s.config.globalProperties.$pinia=a,n.forEach(r=>o.push(r)),n=[]},use(s){return this._a?o.push(s):n.push(s),this},_p:o,_a:null,_e:e,_s:new Map,state:t});return a}const Vu=()=>{};function Ku(e,t,o,n=Vu){e.push(t);const a=()=>{const s=e.indexOf(t);s>-1&&(e.splice(s,1),n())};return!o&&nc()&&wf(a),a}function Vn(e,...t){e.slice().forEach(o=>{o(...t)})}const Hm=e=>e(),Hu=Symbol(),fi=Symbol();function hi(e,t){e instanceof Map&&t instanceof Map?t.forEach((o,n)=>e.set(n,o)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const o in t){if(!t.hasOwnProperty(o))continue;const n=t[o],a=e[o];gi(a)&&gi(n)&&e.hasOwnProperty(o)&&!ut(n)&&!Ro(n)?e[o]=hi(a,n):e[o]=n}return e}const qm=Symbol();function Wm(e){return!gi(e)||!e.hasOwnProperty(qm)}const{assign:Zo}=Object;function Ym(e){return!!(ut(e)&&e.effect)}function Xm(e,t,o,n){const{state:a,actions:s,getters:r}=t,i=o.state.value[e];let l;function c(){i||(o.state.value[e]=a?a():{});const u=Vf(o.state.value[e]);return Zo(u,s,Object.keys(r||{}).reduce((p,g)=>(p[g]=Fn(oe(()=>{zs(o);const S=o._s.get(e);return r[g].call(S,S)})),p),{}))}return l=qu(e,c,t,o,n,!0),l}function qu(e,t,o={},n,a,s){let r;const i=Zo({actions:{}},o),l={deep:!0};let c,u,p=[],g=[],S;const v=n.state.value[e];!s&&!v&&(n.state.value[e]={});let b;function _(C){let A;c=u=!1,typeof C=="function"?(C(n.state.value[e]),A={type:Ma.patchFunction,storeId:e,events:S}):(hi(n.state.value[e],C),A={type:Ma.patchObject,payload:C,storeId:e,events:S});const B=b=Symbol();It().then(()=>{b===B&&(c=!0)}),u=!0,Vn(p,A,n.state.value[e])}const $=s?function(){const{state:A}=o,B=A?A():{};this.$patch(V=>{Zo(V,B)})}:Vu;function f(){r.stop(),p=[],g=[],n._s.delete(e)}const m=(C,A="")=>{if(Hu in C)return C[fi]=A,C;const B=function(){zs(n);const V=Array.from(arguments),J=[],z=[];function D(R){J.push(R)}function L(R){z.push(R)}Vn(g,{args:V,name:B[fi],store:h,after:D,onError:L});let y;try{y=C.apply(this&&this.$id===e?this:h,V)}catch(R){throw Vn(z,R),R}return y instanceof Promise?y.then(R=>(Vn(J,R),R)).catch(R=>(Vn(z,R),Promise.reject(R))):(Vn(J,y),y)};return B[Hu]=!0,B[fi]=A,B},k={_p:n,$id:e,$onAction:Ku.bind(null,g),$patch:_,$reset:$,$subscribe(C,A={}){const B=Ku(p,C,A.detached,()=>V()),V=r.run(()=>Ie(()=>n.state.value[e],J=>{(A.flush==="sync"?u:c)&&C({storeId:e,type:Ma.direct,events:S},J)},Zo({},l,A)));return B},$dispose:f},h=Mn(k);n._s.set(e,h);const d=(n._a&&n._a.runWithContext||Hm)(()=>n._e.run(()=>(r=Nr()).run(()=>t({action:m}))));for(const C in d){const A=d[C];if(ut(A)&&!Ym(A)||Ro(A))s||(v&&Wm(A)&&(ut(A)?A.value=v[C]:hi(A,v[C])),n.state.value[e][C]=A);else if(typeof A=="function"){const B=m(A,C);d[C]=B,i.actions[C]=A}}return Zo(h,d),Zo(He(h),d),Object.defineProperty(h,"$state",{get:()=>n.state.value[e],set:C=>{_(A=>{Zo(A,C)})}}),n._p.forEach(C=>{Zo(h,r.run(()=>C({store:h,app:n._a,pinia:n,options:i})))}),v&&s&&o.hydrate&&o.hydrate(h.$state,v),c=!0,u=!0,h}/*! #__NO_SIDE_EFFECTS__ */function mi(e,t,o){let n,a;const s=typeof t=="function";typeof e=="string"?(n=e,a=s?o:t):(a=e,n=e.id);function r(i,l){const c=ah();return i=i||(c?Ne(Uu,null):null),i&&zs(i),i=zu,i._s.has(n)||(s?qu(n,t,a,i):Xm(n,a,i)),i._s.get(n)}return r.$id=n,r}const bi="__doxaMapToken",$i="doxa:map-token",Wu="__doxaMapTokenBridge",Kn=()=>{if(typeof window>"u")return"";const e=window[bi];return typeof e=="string"?e:""};function Yu(e){if(typeof window>"u")return"";const t=typeof e=="string"?e.trim():"";if(!t||t===Kn())return Kn();window[bi]=t;try{window.dispatchEvent(new CustomEvent($i,{detail:t}))}catch{}return t}function Zm(){if(typeof window>"u"||window[Wu])return;const e=typeof window.MAP_TOKEN=="string"?window.MAP_TOKEN:"";e&&!Kn()&&(window[bi]=e);try{Object.defineProperty(window,"MAP_TOKEN",{configurable:!0,get(){return Kn()},set(t){Yu(t)}}),window[Wu]=!0}catch{}}function Jm(){Zm();const e=he(Kn());if(typeof window<"u"){const t=()=>{e.value=Kn()};window.addEventListener($i,t);try{Xt(()=>window.removeEventListener($i,t))}catch{}}return e}function Us(e){return hh({loader:e,onError(t,o,n,a){a<=3?setTimeout(o,a*500):n()}})}const Qm={title:"كل مجموعات الشعوب",locations:"{n} موقعًا (مجموعة × بلد)",doxa:"مجموعات شعوب DOXA",frontier:"حدودية — لم يبدأ شيء",unreached:"غير مُبشَّرة — العمل يبدأ",reached:"مُبشَّرة — الكنيسة موجودة",hint:"انقر على صف لعرضها كلها · انقر مرة أخرى لعرض الكل",loading:"جارٍ تحميل كل مجموعات الشعوب…",loadError:"تعذّر تحميل الخريطة.",pray:"صلِّ لأجلهم ←",population:"السكان {n}"},eb={backToLegend:"العودة إلى المفتاح",closeDetailView:"إغلاق عرض التفاصيل",collapseLegend:"طيّ وسيلة الإيضاح",expandLegend:"توسيع وسيلة الإيضاح",toggleLegend:"إظهار وسيلة الإيضاح أو إخفاؤها"},tb={prayForThem:"صلِّ من أجلهم",adoptThem:"تبنَّهم",moreInfo:"مزيد من المعلومات",zoomIn:"تكبير",zoomOut:"تصغير",switchToLightMode:"التبديل إلى الوضع الفاتح",switchToDarkMode:"التبديل إلى الوضع الداكن",resetView:"إعادة تعيين العرض",toggleFullscreen:"تبديل ملء الشاشة",aboutThisMap:"حول هذه الخريطة",closeMenu:"إغلاق القائمة",reloadMap:"إعادة تحميل الخريطة",showClusters:"إظهار المجموعات",clusterSettings:"إعدادات المجموعات",startAutoFly:"بدء الطيران التلقائي",stopFlight:"إيقاف الطيران",speedLabel:"السرعة:",speedOption:{slow:"بطيء",normal:"عادي",fast:"سريع"},shareEmbed:"مشاركة وتضمين",posterMap:"خريطة الملصق",prayerList:"قائمة الصلاة",cardDeck:"مجموعة البطاقات",printOptions:"خيارات الطباعة",showOnMap:"أظهر على الخريطة",close:"إغلاق",showOnMapAria:"أظهر {label} على الخريطة",cardStockAria:"حجم بطاقة الصلاة",previewPrintPoster:"معاينة وطباعة ملصق {label}",share:"مشاركة",shareSteps:["ضع هذه الخريطة على موقعك","أعدّ قائمة بمواقع الويب في مدينتك","علّمهم أن يضعوها أيضًا","علّمهم أن يعلّموا غيرهم وضعها","لنكثر الخرائط في كل مكان ليسوع!"],clearSelection:"إلغاء التحديد",noOptions:"لا توجد نتائج",renderingLocal:"يتم إنشاء صورة بجودة الطباعة في متصفحك — لا يتم تحميل أي شيء.",postersPerRow:"الملصقات في كل صف"},ob={title:"الوصول إلى الإنترنت حيث تعيش الشعوب غير المنخرطة",bands:{yes:"متصل 60%+",partial:"جزئي 25–59%",no:"منخفض، أقل من 25%",unknown:"غير مُقاس"},peopleGroup:"شعب",caveat:"أرقام وطنية (البنك الدولي). بيانات الاتصال لكل مدينة غير متاحة للعامة — لا تستنتج حال مدينة من بيانات بلدها.",sheet:{close:"إغلاق",ai:"عُثر على هذه البيانات عبر بحث معمّق بالذكاء الاصطناعي — وقد تتضمن معلومات خاطئة.",dismiss:"إغلاق التنبيه",internetUsers:"مستخدمو الإنترنت",measured:"سنة القياس",mobilePer100:"اشتراكات الجوال لكل 100",peopleGroups:"الشعوب",topPlatform:"المنصة الأولى",unknown:"غير معروف",carriers:"شركات الاتصالات ومزودو الإنترنت ({n})",socialPlatforms:"منصات التواصل الاجتماعي",note:"أرقام وطنية وليست قياسات للمدن. أسماء شركات الاتصالات هي أسماء أصحاب سجلات ASN — وتشمل البنوك والجامعات إلى جانب مزودي الإنترنت، لذا فإن تصنيفها كشركات اتصالات تقدير مبني على الاسم وليس تصنيفًا مُتحقَّقًا منه."}},nb={research_controls:"أدوات البحث",clustering:"التجميع",filters:"عوامل التصفية",pin_dim:"خفوت النقاط",export_poster:"تصدير ملصق…",reload_data:"إعادة تحميل البيانات",off:"إيقاف",native:"أصلي",mst:"الشجرة الممتدة",network:"شبكة",off_desc:"إظهار كل نقطة على حدة",native_desc:"تجميع دوائر Mapbox (الأسرع)",mst_desc:"شبكات تقارب بالشجرة الممتدة الصغرى",network_desc:"خطوط ربط بأقرب جار",search_languages:"ابحث عن اللغات…",search_religions:"ابحث عن الأديان…",reset_all:"إعادة تعيين الكل",no_languages:"لم تُحمَّل أي لغات بعد",no_religions:"لم تُحمَّل أي أديان بعد",unadopted:"غير متبنّى",min:"الأدنى",max:"الأعلى",adopted:"متبنَّاة",adoption:"التبني",engaged:"مُخْدُومَة",engagement:"المشاركة",unengaged:"يحتاج إلى انخراط",language:"اللغة",religion:"الدين",population:"السكان",any:"الكل",active_count:"{n} نشط",prayer_status:"حالة الصلاة",close:"إغلاق",clear:"مسح",map_controls:"أدوات التحكم بالخريطة"},ab={bloc:"كتلة التقارب",gospel_access:"الوصول إلى الإنجيل",people:"الشعوب",people_name:"الشعب (الاسم)",praying:"يصلّون",religion_family:"عائلة الأديان",search_language:"ابحث عن لغة",search_people:"ابحث عن شعب",search_place:"ابحث عن مكان",search_religion:"ابحث عن دين",upgs_in_scope:"الشعوب ضمن النطاق",countries_touched:"الدول المشمولة",unreached:"غير موصولين",sum_population:"مجموع السكان",sum_praying:"مجموع المصلّين",charts:"الرسوم البيانية",table:"الجدول",cluster:"المجموعة",country:"الدولة",engagement:"المشاركة",language:"اللغة",language_family:"عائلة اللغة",people_group:"الشعب",population:"السكان",prayer:"الصلاة",region:"المنطقة",religion:"الدين",status:"الحالة",adopted:"متبنَّاة",filters:"عوامل التصفية",gospel_resources:"موارد الإنجيل",map:"الخريطة",search_placeholder:"ابحث عن الشعوب والأماكن واللغات والأديان…",any:"الكل",active_count:"{n} نشط",prayer_status:"حالة الصلاة",map_controls:"أدوات التحكم بالخريطة",close:"إغلاق",clear:"مسح",dashboard_title:"لوحة البحث الشاملة",align_dashboard:"محاذاة اللوحة",align_dashboard_tip:"إعادة تخطيط اللوحة إلى المحاذاة الافتراضية",selected:"المحدد",world:"العالم",vertical_legend:"مفتاح عمودي",groups_in_scope:"مجموعة ضمن النطاق",filter_by:"تصفية حسب",remove_filter:"إزالة التصفية",groups:"مجموعة",expand:"توسيع",collapse:"طيّ",place:"المكان"},sb={labels:{country:"الدولة:",population:"السكان:",language:"اللغة:",religion:"الديانة:",languageFamily:"العائلة اللغوية:",peopleCommitted:"ملتزمون بالصلاة:"},messages:{noDescription:"لا يوجد وصف متاح."}},rb={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"الملاحظات التوضيحية أدناه باللغة الإنجليزية."},mode:{gap:"الفجوة",coverage:"الموارد المتوفرة"},search:{placeholder:"ابحث عن شعب أو لغة أو رمز ISO",clear:"مسح البحث",none:"لا شيء يطابق هذا الاسم أو اللغة أو الرمز.",placeholderShort:"شعب أو لغة أو رمز ISO"},legend:{title:"شعوب غير مبلَّغة ولا يوجد لها أي مورد إنجيلي",band60:"⁦60%+⁩ بلا أي مورد",band30:"⁦30–59%⁩",bandSome:"بعض الشعوب",bandAll:"كل الشعوب لديها شيء",tier2:"الكتاب المقدس والفيلم",tier1:"وُجد بعض الموارد",tier0:"لا شيء",hnr:"يمكنهم السماع، ولا يوجد نص",showAll:"عرض كل الشعوب",titleCoverage:"شعوب غير مبلَّغة ويوجد لها بعض الموارد الإنجيلية",cov80:"⁦80%+⁩ لديهم شيء",cov50:"⁦50–79%⁩",cov1:"⁦1–49%⁩",cov0:"لا شيء لأي منهم",tallyEach:"كل",tallyIs:"هو شعب واحد —",tallyOf:"منها،",tallyLink:"لديها رابط",doxa0:"لدى الجميع شيء",doxa1:"‪1–4‬ بلا شيء",doxa5:"‪5–14‬",doxa15:"‪15–39‬",doxa40:"‪40+‬",cvd1:"‪1–4‬ لديهم موارد",cvd5:"‪5–14‬",cvd15:"‪15–39‬",cvd40:"‪40+‬",onMap:"شعوب دوكسا على هذه الخريطة",notPlaced:"ضمن القائمة، بلا موقع بعد",outOfScope:"لا توجد شعوب دوكسا — غير ملوَّنة"},tabs:{groups:"أكبر الشعوب",countries:"حسب البلد",regions:"حسب المنطقة",noprayer:"لا أحد يصلّي",hnr:"يسمعون، بلا نص"},stat:{language:"اللغة",population:"عدد السكان",countries:"البلدان",peopleGroups:"الشعوب",noResource:"لا يوجد أي مورد",peopleAffected:"الأشخاص المتأثرون",haveScripture:"لديهم الكتاب المقدس",haveFilm:"لديهم الفيلم",haveAudio:"لديهم كتاب مقدس مسموع",signLanguages:"لغات الإشارة",growingUnreached:"متزايدون وغير مبلَّغين",deathsDay:"الوفيات المقدَّرة يوميًا"},sheet:{ownLanguage:"بلغتهم الأم",close:"إغلاق",loading:"جارٍ تحميل الموارد…",pray:"صلِّ من أجل",everyResource:"كل الموارد بـ",alsoSpeak:"يتحدثون أيضًا"},res:{scripture:"الكتاب المقدس",film:"الفيلم",audio:"صوتي",bibleVideo:"فيديو كتابي",bibleStories:"Open Bible Stories",gospelAudio:"صوتيات الإنجيل",gospelPresentation:"عرض للإنجيل",scriptureEarth:"Scripture Earth",training:"تدريب على التلمذة",jesusFilm:"فيلم يسوع"},state:{noneFound:"لا شيء",noneAtFcbh:"لا شيء في FCBH",noneAtGrn:"لا شيء في GRN",notInZume:"ليست ضمن لغات Zume الـ54",linkChecked:"تم التحقق من الرابط",unchecked:"لم يُتحقق منه",linkDead:"رابط معطّل",wrongLanguage:"لغة غير صحيحة",varietyNotStated:"(اللهجة غير محددة)",inLanguage:"بـ"},guide:{dotVsCountry:"كل نقطة هي شعب واحد من شعوب دوكسا ولغته؛ أما لون البلد فهو عدد تلك الشعوب.",noneFoundShort:"«لا شيء» تعني غير موجود في المصادر التي بحثنا فيها — وليست دليلًا على عدم وجوده.",tapCountry:"اضغط على بلد لترى الموارد الفعلية، شعبًا شعبًا."},tables:{title:"موارد الإنجيل — البيانات",showing:"عرض",of:"من",for:"لـ",filteredTo:"مصفّى حسب",showAll:"عرض كل الموارد",t_doxa:"دوكسا — الوصول إلى الإنجيل",t_links:"كل مورد ورابطه",t_nothing:"حيث لا يوجد شيء",t_countrygap:"الفجوة حسب البلد",t_translation:"يسمعون ولا نص لديهم",t_translationcountry:"أين نترجم",t_gaps:"الفجوات والفرص",t_bridges:"جسور المدن",t_deaf:"فجوة الصم",t_resources:"الموارد حسب الشعب",t_languages:"اللغات حسب البلد",t_growth:"الوصول مقابل نمو السكان"},pages:{listTitle:"موارد الإنجيل حسب اللغة",chartsTitle:"موارد الإنجيل — حسب اللغة",loadingTables:"جارٍ تحميل جداول الموارد…"},list:{noText:"بلا نص مقدس",hasScripture:"لديها الكتاب المقدس",allLanguages:"كل اللغات",peopleGroup:"شعب",peopleGroups:"شعوب",scriptureHere:"الكتاب المقدس بهذه اللغة"},columns:{"People group":"الشعب",Country:"البلد",Region:"المنطقة",Language:"اللغة",Population:"عدد السكان",Religion:"الديانة","Gospel access":"الوصول إلى الإنجيل",Resources:"الموارد",Scripture:"الكتاب المقدس","Bible video":"فيديو كتابي","Gospel presentation":"عرض للإنجيل",Countries:"البلدان","People groups":"الشعوب"}},ib={search:"ابحث عن الشعوب…",hide_filters:"إخفاء عوامل التصفية",show_filters:"إظهار عوامل التصفية",total:"الإجمالي",showing:"المعروض",load_more:"عرض المزيد",full_profile:"الملف الكامل",wagf_region:"المنطقة",wagf_block:"كتلة التقارب",rop1:"الشعب",religion:"الدين",exact_filter:"تطابق تام",clear_all:"مسح الكل",loading:"جارٍ التحميل…",no_results:"لا توجد شعوب مطابقة لهذا التصفية.",type_to_search:"اكتب للبحث...",load_failed:"تعذّر تحميل بيانات الشعوب. هذه مشكلة اتصال، وليست مشكلة في التصفية."},lb={title:{adoption:"تقدم التبني",affinityBlocs:"كتل القرابة",doxaRegions:"مناطق Doxa",engagement:"تقدم الانخراط",gospelResources:"موارد الإنجيل",languageFamilies:"العائلات اللغوية",prayer:"تقدم الصلاة",upg100List:"قائمة UPG 100 الخاصة بي"},header:{collapsed:"وسيلة الإيضاح",peopleGroupFallback:"مجموعة الشعب",default:"مفتاح الخريطة"},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:"اللغات"},tabInfo:{upg100Region:"المنطقة — ترتّب قوائم UPG-100 حسب منطقة العالم (أفريقيا، الهند، الشرق الأوسط، الصمّ، …). الأعداد هي مجموع UUPG والسكان لكل قائمة تحتها.",upg100Zone:"قوائم UPG-100 — كل واحدة هي قائمة صلاة للشعوب غير الموصول إليها في منطقة ما، وهي ما ترسمه الخريطة وتلوّنه. تُطبع كل قائمة ككُتيّب خاص بها.",upg100Group:"مجموعة شعبية — المجموعات غير الموصول إليها داخل القائمة، الأكثر حاجة للصلاة أولاً. كل نقطة على الخريطة هي واحدة منها."},a11y:{expandRow:"توسيع {label}",collapseRow:"طي {label}",clearSelection:"إلغاء التحديد"}},cb={menuComingSoon:"القائمة قادمة قريباً",pinHint:{tapDot:"اضغط على نقطة ملوّنة — لا يزال هناك من يحتاج إلى الصلاة"},upg100WallHeading:"قائمتي UPG 100 — قوائم الصلاة والملصقات",upg100WallTag:"تعبئة للصلاة",upg100WallIntro:"وزّع مهمة الصلاة في مجموعات من خمسين ومئة — كما أطعم يسوع الخمسة آلاف (لوقا ٩:١٤). كل ملصق هو قائمة من 100 يمكنك أن تصلي بها وتطبعها وتعلّقها على الحائط — مصلّيًا لأجلهم باسم شعبهم."},ub={clusterByRegion:"حسب منطقة Doxa",clusterByLanguageFamily:"حسب العائلة اللغوية",clusterByGospelResource:"حسب مورد الإنجيل"},pb={country:{wagfRegion:"منطقة WAGF",wagfBlock:"كتلة WAGF",country:"الدولة",uupgCount:"عدد UUPG"}},db={header:"دورة الصلاة الحالية",lap:"الدورة",upgs:"UUPGs",separator:" من "},gb={"%count% people groups in %countries% countries":"%count% مجموعة شعبية في %countries% دولة","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"تضم %region% %count% مجموعة بشرية في %countries% دولة. يشير لون كل نقطة إلى عدد الأشخاص الذين يصلّون من أجل تلك المجموعة البشرية.","1+ People Praying":"شخص واحد أو أكثر يصلّي","100+ People Praying":"أكثر من 100 شخص يصلّون",Adopted:"متبنَّاة","Adoption Progress":"تقدُّم التبنّي","All Regions":"جميع المناطق","Alternate Names":"الأسماء البديلة","Choose a region":"اختر منطقة","Clear All":"مسح الكل",Countries:"الدول","Countries in this region":"الدول في هذه المنطقة",Country:"الدولة",Engaged:"مُخْدُومَة","Engagement Progress":"تقدُّم الانخراط","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"كل مجموعة بشرية غير مبشرة تتبناها كنيسة ملتزمة بالصلاة والعطاء والإرسال","Exact Search":"بحث دقيق","Find unreached people groups by region and country.":"ابحث عن المجموعات البشرية غير المُبلَّغة حسب المنطقة والدولة.","Full Profile":"الملف الكامل",Goal:"الهدف","Hide Filters":"إخفاء المرشحات","Hide country posters":"إخفاء ملصقات الدولة",Intercessors:"المتشفعين","Load More":"تحميل المزيد","Loading results...":"النتائج قيد التحميل...",Map:"الخريطة","Mobilize 100+ people praying daily for each DOXA people group":"حشد أكثر من 100 شخص للصلاة يوميًا من أجل كل مجموعة بشرية من مجموعات دوكسا","No One Praying":"لا أحد يصلّي","No options found":"لم يتم العثور على أي خيارات","No poster has been generated for this country yet.":"لم يُنشأ أي ملصق لهذه الدولة بعد.","No unengaged people groups by 2033":"الهدف هو القضاء على جميع الشعوب الغير مخدومة روحيا بحلول عام 2033","Not Adopted":"لم يتم انتماؤه",Other:"أخرى","Page Not Found":"الصفحة غير موجودة","People Group":"مجموعة بشرية","People Groups":"مجموعات شعبية","People committed to praying":"الأشخاص الذين التزموا بالصلاة","Pick a region above, or click any dot to open that people group's country.":"اختر منطقة أعلاه، أو انقر على أي نقطة لفتح دولة تلك المجموعة البشرية.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"اختر منطقة أو دولة من تبويب قائمة المناطق لتضييق نطاق لوحة المعلومات هذه.",Population:"عدد السكان","Prayer Coverage":"تغطية الصلاة","Prayer coverage progress":"تقدم تغطية الصلاة","Region Dashboards":"لوحات معلومات المناطق","Region dashboard":"لوحة معلومات المنطقة",Regions:"المناطق","Regions List":"قائمة المناطق",Religion:"الدين","Search names, country/continent, religions...":"ابحث عن الأسماء، الدولة/القارة، الأديان...","See %region% dashboard":"عرض لوحة معلومات %region%","See All":"عرض جميع العناصر",Select:"اختر","Select View":"اختر العرض","Show Filters":"إظهار عوامل التصفية","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"توجد %count% مجموعات بشرية في %country%. تحقق من الخريطة لمعرفة المجموعات البشرية الواقعة على حدود هذه الدولة أيضًا.",Total:"المجموع","Type to search...":"اكتب ما تريد البحث عنه...","Unengaged people groups":"المجموعات الشعبية غير المَخْدُومَة","View country posters":"عرض ملصقات الدولة",Views:"العروض","WAGF Block":"كتلة WAGF","WAGF Region":"منطقة WAGF","people groups adopted":"مجموعات شعبية متبنَّاة","people groups engaged":"مجموعات شعبية مُخْدُومَة","Outside this region":"خارج هذه المنطقة",Pray:"صلّي","Loading region dashboards…":"جارٍ تحميل لوحات المناطق…","No regions found.":"لم يتم العثور على مناطق.","Region data could not be loaded. This is a connection problem, not a filter.":"تعذّر تحميل بيانات المناطق. هذه مشكلة في الاتصال، وليست تصفية.","People groups could not be loaded. This is a connection problem, not a filter.":"تعذّر تحميل الشعوب. هذه مشكلة في الاتصال، وليست تصفية.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"تعذّر تشغيل الخريطة. هذه مشكلة في رمز الخريطة أو في الاتصال، وليست تصفية — والأرقام أعلاه غير متأثرة."},fb={placeholder:"شعب، مكان، لغة، ديانة",labels:{people:"الشعب:",place:"المكان:",language:"اللغة:",religion:"الديانة:"},kinds:{people:"الشعب + الدولة",peopleGroup:"الشعب",bloc:"كتلة التقارب",cluster:"مجموعة شعوب",country:"الدولة",region:"المنطقة",family:"عائلة اللغة",languageKind:"اللغة",dialect:"اللهجة",religionKind:"الدين"},sections:{within:"ضمن {selection}",allData:"كل بيانات DOXA"}},hb={title:"استوديو الإضافات",navLabel:"الإضافات حسب القدرة",countLabel:"{bundles} حزمة · {elements} إضافة مدرجة هنا",changeLanguage:"تغيير اللغة",copyEmbed:"نسخ رمز التضمين",copy:"نسخ",copied:"تم النسخ",scriptEmbed:"تضمين عبر سكربت",loading:"جارٍ تحميل {name}…",couldNotLoad:"تعذّر تحميل {name}.",chooseElement:"اختر إضافة من القائمة.",filterPlaceholder:"تصفية الإضافات",collapseAll:"طي الكل",noMatch:"لا توجد إضافة تطابق «{query}».",openSection:"فتح {cap}، {label}",part:"جزء",noStandalone:"بلا صفحة مستقلة",cap5:"هيكل التطبيق",cap4:"مركّب",cap3:"متعدد العروض",cap2:"إعداد مسبق",cap1:"مفرد",toggleList:"إظهار القائمة أو إخفاؤها",openViews:"فتح قائمة العروض",expandList:"توسيع القائمة",collapseList:"طي القائمة",collapse:"طي",partOf:"جزء من {name}، غير منشور بمفرده"},mb={prayer:"الصلاة",adoption:"التبني",engagement:"المشاركة","affinity-blocks":"الشعوب",regions:"المناطق",countries:"الدول","language-families":"اللغات",religion:"الأديان",family:"عائلة اللغة",language:"اللغة",dialect:"اللهجة/التنوع",bloc:"كتلة التقارب",cluster:"المجموعة",group:"الشعب",pgic:"الشعب في الدولة",region:"منطقة WAGF",block:"كتلة WAGF",country:"الدولة",upg100Region:"المنطقة",upg100Zone:"قوائم UPG-100",upg100Group:"مجموعة شعبية",selectView:"اختر العرض",views:"العروض",prayerResources:"موارد الصلاة",map:"الخريطة"},bb={kicker:"DOXA · الرؤية",title:"كل شعب. كل مكان.",tagline:"من كل مجموعات الشعوب في العالم إلى التي تصلي لأجلها DOXA، محسوبةً من البيانات.",funnelLabel:"من كل مجموعات الشعوب إلى مجموعات شعوب DOXA",allLabel:"مجموعات الشعوب",allNote:"كل مجموعة شعب، في كل بلد تعيش فيه",unreachedLabel:"غير المُبشَّرة",unreachedNote:"أقل من 2% إنجيليون",frontierLabel:"الحدودية",frontierNote:"أقل من 0.1% إنجيليون",doxaLabel:"مجموعات شعوب DOXA",doxaNote:"{frontier} منها حدودية",people:"{n} نسمة",sources:"مجموعات الشعوب: {imb}، بيانات {date}. قائمة DOXA: ‏pray.doxa.life، {date2}.",howCounted:"كيف تُحسب هذه الأرقام",ruleAll:"كل صف في بيانات IMB لمجموعات الشعوب: مجموعة شعب واحدة في بلد واحد.",ruleUnreached:"أولوية الضياع لدى IMB من 0 إلى 2: أقل من 2% إنجيليون.",ruleFrontier:"أولوية الضياع لدى IMB رقم 0: أقل من 0.1% إنجيليون. جزء من غير المُبشَّرة.",ruleDoxa:"كل مجموعة في قائمة صلاة DOXA، مطابَقة مع بيانات IMB حسب الشعب والبلد. ليست كلها حدودية."},$b={title:"Alle Volksgruppen",locations:"{n} Standorte (Gruppe × Land)",doxa:"DOXA-Volksgruppen",frontier:"Frontier — noch nichts begonnen",unreached:"Unerreicht — Arbeit beginnt",reached:"Erreicht — Gemeinde ist da",hint:"Zeile anklicken, um alle zu sehen · erneut klicken für alle",loading:"Alle Volksgruppen werden geladen…",loadError:"Die Karte konnte nicht geladen werden.",pray:"Für sie beten →",population:"Einw. {n}"},yb={backToLegend:"Zurück zur Legende",closeDetailView:"Detailansicht schließen",collapseLegend:"Legende einklappen",expandLegend:"Legende ausklappen",toggleLegend:"Legende ein- oder ausblenden"},_b={prayForThem:"Für sie beten",adoptThem:"Sie adoptieren",moreInfo:"Mehr Infos",zoomIn:"Vergrößern",zoomOut:"Verkleinern",switchToLightMode:"Zum hellen Modus wechseln",switchToDarkMode:"Zum dunklen Modus wechseln",resetView:"Ansicht zurücksetzen",toggleFullscreen:"Vollbild umschalten",aboutThisMap:"Über diese Karte",closeMenu:"Menü schließen",reloadMap:"Karte neu laden",showClusters:"Cluster anzeigen",clusterSettings:"Cluster-Einstellungen",startAutoFly:"Auto-Flug starten",stopFlight:"Flug stoppen",speedLabel:"Geschwindigkeit:",speedOption:{slow:"Langsam",normal:"Normal",fast:"Schnell"},shareEmbed:"Teilen und einbetten",posterMap:"Posterkarte",prayerList:"Gebetsliste",cardDeck:"Kartenset",printOptions:"Druckoptionen",showOnMap:"Auf der Karte zeigen",close:"Schließen",showOnMapAria:"{label} auf der Karte zeigen",cardStockAria:"Größe der Gebetskarte",previewPrintPoster:"Vorschau und Druck des Posters {label}",share:"Teilen",shareSteps:["Binde diese Karte auf deiner Website ein","Erstelle eine Liste der Websites in deiner Stadt","Zeige ihnen, wie sie sie ebenfalls einbinden","Zeige ihnen, wie sie es anderen beibringen","Lasst uns Karten überall vermehren – für Jesus!"],clearSelection:"Auswahl aufheben",noOptions:"Keine Optionen gefunden",renderingLocal:"Ein druckfähiges Bild wird in deinem Browser erzeugt — es wird nichts hochgeladen.",postersPerRow:"Poster pro Zeile"},vb={title:"Internetzugang dort, wo Volksgruppen ohne Engagement leben",bands:{yes:"verbunden 60%+",partial:"teilweise 25–59%",no:"gering, unter 25%",unknown:"nicht gemessen"},peopleGroup:"Volksgruppe",caveat:"LANDESWEITE Zahlen (Weltbank). Konnektivität je Stadt ist nicht öffentlich verfügbar — schließen Sie nicht vom Land auf eine Stadt.",sheet:{close:"Schließen",ai:"Diese Daten wurden durch KI-gestützte Recherche gefunden — sie können falsche Angaben enthalten.",dismiss:"Ausblenden",internetUsers:"Internetnutzer",measured:"Gemessen",mobilePer100:"Mobilfunk pro 100",peopleGroups:"Volksgruppen",topPlatform:"Wichtigste Plattform",unknown:"unbekannt",carriers:"Netzbetreiber & ISPs ({n})",socialPlatforms:"Soziale Plattformen",note:"Landesweite Zahlen, keine Messungen je Stadt. Betreibernamen sind ASN-Registerinhaber — darunter neben ISPs auch Banken und Universitäten; die Einstufung als Netzbetreiber ist daher eine Namensheuristik, keine geprüfte Klassifizierung."}},wb={research_controls:"Forschungssteuerung",clustering:"Clustering",filters:"Filter",pin_dim:"Pin-Transparenz",export_poster:"Poster exportieren…",reload_data:"Daten neu laden",off:"Aus",native:"Nativ",mst:"MST",network:"Netzwerk",off_desc:"Jeden Pin einzeln anzeigen",native_desc:"Mapbox-Kreiscluster (am schnellsten)",mst_desc:"Affinitätsnetze über minimalen Spannbaum",network_desc:"Verbindungslinien zum nächsten Nachbarn",search_languages:"Sprachen suchen…",search_religions:"Religionen suchen…",reset_all:"Alles zurücksetzen",no_languages:"Noch keine Sprachen geladen",no_religions:"Noch keine Religionen geladen",unadopted:"Nicht adoptiert",min:"min",max:"max",adopted:"Adoptiert",adoption:"Adoption",engaged:"Engagiert",engagement:"Engagement",unengaged:"Braucht Engagement",language:"Sprache",religion:"Religion",population:"Bevölkerung",any:"Alle",active_count:"{n} aktiv",prayer_status:"Gebetsstatus",close:"Schließen",clear:"Zurücksetzen",map_controls:"Kartensteuerung"},kb={bloc:"Affinitätsblock",gospel_access:"Zugang zum Evangelium",people:"Völker",people_name:"Volk (Name)",praying:"Betend",religion_family:"Religionsfamilie",search_language:"Sprache suchen",search_people:"Volk suchen",search_place:"Ort suchen",search_religion:"Religion suchen",upgs_in_scope:"UPGs im Bereich",countries_touched:"berührte Länder",unreached:"unerreicht",sum_population:"Σ Bevölkerung",sum_praying:"Σ Betende",charts:"Diagramme",table:"Tabelle",cluster:"Cluster",country:"Land",engagement:"Engagement",language:"Sprache",language_family:"Sprachfamilie",people_group:"Volk",population:"Bevölkerung",prayer:"Gebet",region:"Region",religion:"Religion",status:"Status",adopted:"Adoptiert",filters:"Filter",gospel_resources:"Evangeliumsressourcen",map:"Karte",search_placeholder:"Volksgruppen, Orte, Sprachen, Religionen suchen…",any:"Alle",active_count:"{n} aktiv",prayer_status:"Gebetsstatus",map_controls:"Kartensteuerung",close:"Schließen",clear:"Zurücksetzen",dashboard_title:"Big-Picture-Forschungsdashboard",align_dashboard:"Layout ausrichten",align_dashboard_tip:"Das Dashboard-Layout auf die Standardausrichtung zurücksetzen",selected:"Ausgewählt",world:"Welt",vertical_legend:"Vertikale Legende",groups_in_scope:"Volksgruppen im Bereich",filter_by:"Filtern nach",remove_filter:"Filter entfernen",groups:"Volksgruppen",expand:"Aufklappen",collapse:"Zuklappen",place:"Ort"},xb={labels:{country:"Land:",population:"Bevölkerung:",language:"Sprache:",religion:"Religion:",languageFamily:"Sprachfamilie:",peopleCommitted:"Zum Gebet verpflichtet:"},messages:{noDescription:"Keine Beschreibung verfügbar."}},Lb={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Die erläuternden Hinweise unten sind auf Englisch."},mode:{gap:"Lücke",coverage:"Gefundene Ressourcen"},search:{placeholder:"Volksgruppe, Sprache oder ISO-Code suchen",clear:"Suche löschen",none:"Nichts passt zu diesem Namen, dieser Sprache oder diesem Code.",placeholderShort:"Gruppe, Sprache oder ISO-Code"},legend:{title:"Unerreichte Volksgruppen ohne gefundene Evangeliums-Ressource",band60:"60 %+ ohne jede Ressource",band30:"30–59 %",bandSome:"einige Gruppen",bandAll:"alle Gruppen haben etwas",tier2:"Bibeltext und Film",tier1:"etwas gefunden",tier0:"nichts gefunden",hnr:"können hören, kein Text",showAll:"Alle Gruppen anzeigen",titleCoverage:"Unerreichte Volksgruppen mit einer gefundenen Evangeliums-Ressource",cov80:"80 %+ haben etwas",cov50:"50–79 %",cov1:"1–49 %",cov0:"für keinen etwas gefunden",tallyEach:"Jeder",tallyIs:"ist EINE Volksgruppe —",tallyOf:"davon,",tallyLink:"mit einem Link",doxa0:"alle haben etwas",doxa1:"1–4 ohne",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 erreicht",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Doxa-Volksgruppen auf dieser Karte",notPlaced:"auf der Liste, noch nicht verortet",outOfScope:"keine Doxa-Volksgruppen — nicht eingefärbt"},tabs:{groups:"Größte Gruppen",countries:"Nach Land",regions:"Nach Region",noprayer:"Niemand betet",hnr:"Hören ja, Text nein"},stat:{language:"Sprache",population:"Bevölkerung",countries:"Länder",peopleGroups:"Volksgruppen",noResource:"Keine Ressource gefunden",peopleAffected:"Betroffene Menschen",haveScripture:"Haben Bibeltext",haveFilm:"Haben Film",haveAudio:"Haben Hörbibel",signLanguages:"Gebärdensprachen",growingUnreached:"Wachsend & unerreicht",deathsDay:"Geschätzte Todesfälle/Tag"},sheet:{ownLanguage:"In ihrer eigenen Sprache",close:"Schließen",loading:"Ressourcen werden geladen…",pray:"Betet für",everyResource:"Alle Ressourcen auf",alsoSpeak:"Sprechen ebenfalls"},res:{scripture:"Bibeltext",film:"Film",audio:"Audio",bibleVideo:"Bibelvideo",bibleStories:"Open Bible Stories",gospelAudio:"Evangeliums-Audio",gospelPresentation:"Evangeliums-Darstellung",scriptureEarth:"Scripture Earth",training:"Jüngerschaftstraining",jesusFilm:"JESUS Film"},state:{noneFound:"nichts gefunden",noneAtFcbh:"nichts bei FCBH",noneAtGrn:"nichts bei GRN",notInZume:"nicht in Zumes 54",linkChecked:"Link geprüft",unchecked:"ungeprüft",linkDead:"Link tot",wrongLanguage:"falsche Sprache",varietyNotStated:"(Varietät nicht angegeben)",inLanguage:"auf"},guide:{dotVsCountry:"Ein Punkt ist EINE Volksgruppe von Doxa mit ihrer eigenen Sprache; ein Land ist die ANZAHL dieser Gruppen.",noneFoundShort:"„Nichts gefunden“ heißt: nicht in den geprüften Quellen — nie ein Beweis, dass es nichts gibt.",tapCountry:"Tippen Sie auf ein Land, um die Ressourcen Gruppe für Gruppe zu sehen."},tables:{title:"Evangeliums-Ressourcen — Daten",showing:"Zeige",of:"von",for:"für",filteredTo:"Gefiltert nach",showAll:"Alle Ressourcen zeigen",t_doxa:"Doxa — Zugang zum Evangelium",t_links:"Jede Ressource + Link",t_nothing:"Wo nichts gefunden wurde",t_countrygap:"Die Lücke nach Land",t_translation:"Hören ja, Text nein",t_translationcountry:"Wo übersetzen",t_gaps:"Lücken & Chancen",t_bridges:"Stadt-Brücken",t_deaf:"Die Gehörlosen-Lücke",t_resources:"Ressourcen nach Volksgruppe",t_languages:"Sprachen nach Land",t_growth:"Zugang vs. Bevölkerungswachstum"},pages:{listTitle:"Evangeliums-Ressourcen nach Sprache",chartsTitle:"Evangeliums-Ressourcen — nach Sprache",loadingTables:"Ressourcentabellen werden geladen…"},list:{noText:"Kein Bibeltext",hasScripture:"Hat Bibeltext",allLanguages:"Alle Sprachen",peopleGroup:"Volksgruppe",peopleGroups:"Volksgruppen",scriptureHere:"Bibeltext in dieser Sprache"},columns:{"People group":"Volksgruppe",Country:"Land",Region:"Region",Language:"Sprache",Population:"Bevölkerung",Religion:"Religion","Gospel access":"Zugang zum Evangelium",Resources:"Ressourcen",Scripture:"Bibeltext","Bible video":"Bibelvideo","Gospel presentation":"Evangeliums-Darstellung",Countries:"Länder","People groups":"Volksgruppen"}},Ab={search:"Volksgruppen suchen…",hide_filters:"Filter ausblenden",show_filters:"Filter anzeigen",total:"Gesamt",showing:"Angezeigt",load_more:"Mehr laden",full_profile:"Vollständiges Profil",wagf_region:"Region",wagf_block:"Affinitätsblock",rop1:"Volk",religion:"Religion",exact_filter:"Exakt",clear_all:"Alle löschen",loading:"Wird geladen…",no_results:"Keine Volksgruppen entsprechen diesem Filter.",type_to_search:"Zum Suchen tippen...",load_failed:"Die Daten konnten nicht geladen werden. Das ist ein Verbindungsproblem, nicht Ihr Filter."},Sb={title:{adoption:"Adoptionsfortschritt",affinityBlocs:"Affinitätsblöcke",doxaRegions:"Doxa-Regionen",engagement:"Engagement-Fortschritt",gospelResources:"Evangeliumsressourcen",languageFamilies:"Sprachfamilien",prayer:"Gebetsfortschritt",upg100List:"Meine UPG-100-Liste"},header:{collapsed:"Legende",peopleGroupFallback:"Volksgruppe",default:"Legende"},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",name:"Name"},footer:{total:"Gesamt"},sortByUpgs:"Nach UUPGs sortieren",sortByPop:"Nach Bevölkerung sortieren",colLabel:{religion:"UUPG-Religionen",prayer:"Gebetsstatus",engagement:"Engagement-Status",adoption:"Adoptionsstatus",status:"Status"},titleBar:{legend:"Legende",peopleGroups:"Völker",wagfRegions:"WAGF-Regionen",languages:"Sprachen"},tabInfo:{upg100Region:"Region — sortiert die UPG-100-Listen nach Weltgegend (Afrika, Indien, Naher Osten, Gehörlose, …). Die Zahlen sind die UUPGs und die Bevölkerung aller darunterliegenden Listen zusammen.",upg100Zone:"UPG-100-Listen — jede ist eine Gebetsliste der unerreichten Volksgruppen eines Gebiets und das, was die Karte zeichnet und einfärbt. Jede Liste wird als eigenes Heft gedruckt.",upg100Group:"Volksgruppe — die einzelnen unerreichten Gruppen innerhalb einer Liste, größter Gebetsbedarf zuerst. Jeder Kartenpunkt ist eine davon."},a11y:{expandRow:"{label} ausklappen",collapseRow:"{label} einklappen",clearSelection:"Auswahl aufheben"}},Pb={menuComingSoon:"Menü folgt in Kürze",pinHint:{tapDot:"Tippe auf einen farbigen Punkt — jemand braucht noch Gebet"},upg100WallHeading:"Meine UPG-100-Liste — Gebetslisten und Poster",upg100WallTag:"Gebetsmobilisierung",upg100WallIntro:"Teilen Sie die Gebetsaufgabe in Gruppen zu fünfzig und hundert auf — so wie Jesus die 5.000 speiste (Lukas 9,14). Jedes Poster ist eine 100er-Liste, die Sie beten, drucken und an die Wand hängen können — und für sie mit dem Namen ihrer Volksgruppe beten."},Cb={clusterByRegion:"Nach Doxa-Region",clusterByLanguageFamily:"Nach Sprachfamilie",clusterByGospelResource:"Nach Evangeliumsressource"},Eb={country:{wagfRegion:"WAGF-Region",wagfBlock:"WAGF-Block",country:"Land",uupgCount:"Anzahl UUPG"}},Tb={header:"AKTUELLE GEBETSRUNDE",lap:"Runde",upgs:"UUPGs",separator:" von "},Nb={"%count% people groups in %countries% countries":"%count% Volksgruppen in %countries% Ländern","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% hat %count% Volksgruppen in %countries% Ländern. Die Farbe jedes Punktes zeigt, wie viele Menschen für diese Volksgruppe beten.","1+ People Praying":"1+ Menschen beten","100+ People Praying":"100+ Menschen beten",Adopted:"Adoptiert","Adoption Progress":"Adoptionsfortschritt","All Regions":"Alle Regionen","Alternate Names":"Alternative Namen","Choose a region":"Region auswählen","Clear All":"Alle löschen",Countries:"Länder","Countries in this region":"Länder in dieser Region",Country:"Land",Engaged:"Engagiert","Engagement Progress":"Fortschritt der Arbeit vor Ort","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Jede einzelne der völlig unerreichten Volksgruppen soll von einer Ortsgemeinde adoptiert werden, durch Beten, Geben und Senden","Exact Search":"Exakte Suche","Find unreached people groups by region and country.":"Finde unerreichte Volksgruppen nach Region und Land.","Full Profile":"Vollständiges Profil",Goal:"Ziel","Hide Filters":"Filter ausblenden","Hide country posters":"Länderposter ausblenden",Intercessors:"Fürbitter","Load More":"Mehr laden","Loading results...":"Ergebnisse werden geladen...",Map:"Karte","Mobilize 100+ people praying daily for each DOXA people group":"Mobilisiere 100+ Menschen, die täglich für jede DOXA-Volksgruppe beten","No One Praying":"Niemand betet","No options found":"Keine Standorte gefunden","No poster has been generated for this country yet.":"Für dieses Land wurde noch kein Poster erstellt.","No unengaged people groups by 2033":"Dass es bis 2033 keine völlig unerreichte Volksgruppe mehr gibt","Not Adopted":"noch nicht adoptiert",Other:"Andere","Page Not Found":"Seite nicht gefunden","People Group":"Personengruppe","People Groups":"Volksgruppen","People committed to praying":"Menschen, die sich dem Beten verpflichtet haben","Pick a region above, or click any dot to open that people group's country.":"Wählen Sie oben eine Region aus oder klicken Sie auf einen Punkt, um das Land dieser Volksgruppe zu öffnen.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Wählen Sie im Tab „Regionenliste“ eine Region oder ein Land aus, um dieses Dashboard einzugrenzen.",Population:"Bevölkerung","Prayer Coverage":"Gebetsabdeckung","Prayer coverage progress":"Fortschritt der Gebetsabdeckung","Region Dashboards":"Regionen-Dashboards","Region dashboard":"Regions-Dashboard",Regions:"Regionen","Regions List":"Regionenliste",Religion:"Primäre Religion","Search names, country/continent, religions...":"Suche nach Namen, Land/Kontinent, Religionen...","See %region% dashboard":"Dashboard anzeigen: %region%","See All":"Alle anzeigen",Select:"Auswählen","Select View":"Ansicht auswählen","Show Filters":"Filter anzeigen","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"In %country% gibt es %count% Volksgruppen. Sieh auch auf der Karte nach den Volksgruppen an der Grenze dieses Landes.",Total:"Gesamt","Type to search...":"Geben Sie etwas ein, um danach zu suchen","Unengaged people groups":"Unberührte Volksgruppen","View country posters":"Länderposter ansehen",Views:"Ansichten","WAGF Block":"WAGF-Block","WAGF Region":"WAGF-Region","people groups adopted":"adoptierte Volksgruppen","people groups engaged":"engagierte Volksgruppen","Outside this region":"Außerhalb dieser Region",Pray:"Ich bete","Loading region dashboards…":"Regions-Dashboards werden geladen…","No regions found.":"Keine Regionen gefunden.","Region data could not be loaded. This is a connection problem, not a filter.":"Regionsdaten konnten nicht geladen werden. Das ist ein Verbindungsproblem, kein Filter.","People groups could not be loaded. This is a connection problem, not a filter.":"Volksgruppen konnten nicht geladen werden. Das ist ein Verbindungsproblem, kein Filter.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"Die Karte konnte nicht starten. Das ist ein Karten-Token- oder Verbindungsproblem, kein Filter — die Zahlen oben sind davon nicht betroffen."},Rb={placeholder:"Volk, Ort, Sprache, Religion",labels:{people:"Volk:",place:"Ort:",language:"Sprache:",religion:"Religion:"},sections:{within:"Innerhalb {selection}",allData:"Alle DOXA-Daten"},kinds:{people:"Volk + Land",peopleGroup:"Volk",bloc:"Affinitätsblock",cluster:"Völkercluster",country:"Land",region:"Region",family:"Sprachfamilie",languageKind:"Sprache",dialect:"Dialekt",religionKind:"Religion"}},Mb={title:"Plugin-Studio",navLabel:"Plugins nach Fähigkeit",countLabel:"{bundles} Bundles · {elements} Plugins hier aufgeführt",changeLanguage:"Sprache ändern",copyEmbed:"Einbettung kopieren",copy:"Kopieren",copied:"Kopiert",scriptEmbed:"Skript-Einbettung",loading:"{name} wird geladen…",couldNotLoad:"{name} konnte nicht geladen werden.",chooseElement:"Wählen Sie ein Plugin aus der Liste.",filterPlaceholder:"Plugins filtern",collapseAll:"Alle einklappen",noMatch:"Kein Plugin entspricht „{query}“.",openSection:"{cap} öffnen, {label}",part:"Teil",noStandalone:"keine eigene Seite",cap5:"App-Shell",cap4:"Komposit",cap3:"Mehrfachansicht",cap2:"Voreinstellung",cap1:"Einzeln",toggleList:"Liste ein-/ausblenden",openViews:"Ansichtsliste öffnen",expandList:"Liste ausklappen",collapseList:"Liste einklappen",collapse:"Einklappen",partOf:"Teil von {name}, nicht eigenständig veröffentlicht"},Fb={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",upg100Region:"Region",upg100Zone:"UPG-100-Listen",upg100Group:"Volksgruppe",selectView:"Ansicht wählen",views:"Ansichten",prayerResources:"Gebetsressourcen",map:"Karte"},Ib={kicker:"DOXA · Vision",title:"Jedes Volk. Jeder Ort.",tagline:"Von allen Volksgruppen der Welt bis zu denen, für die DOXA betet, aus den Daten gezählt.",funnelLabel:"Von allen Volksgruppen zu den DOXA-Volksgruppen",allLabel:"Volksgruppen",allNote:"jede Volksgruppe in jedem Land, in dem sie lebt",unreachedLabel:"Unerreicht",unreachedNote:"unter 2 % Evangelikale",frontierLabel:"Frontier",frontierNote:"unter 0,1 % Evangelikale",doxaLabel:"DOXA-Volksgruppen",doxaNote:"{frontier} davon sind Frontier",people:"{n} Menschen",sources:"Volksgruppen: {imb}, Datenstand {date}. DOXA-Liste: pray.doxa.life, {date2}.",howCounted:"So wird gezählt",ruleAll:"Jede Zeile der IMB-Volksgruppendaten: eine Volksgruppe in einem Land.",ruleUnreached:"IMB-Lostness-Priorität 0 bis 2: weniger als 2 % Evangelikale.",ruleFrontier:"IMB-Lostness-Priorität 0: weniger als 0,1 % Evangelikale. Eine Teilmenge der Unerreichten.",ruleDoxa:"Jede Gruppe auf der DOXA-Gebetsliste, den IMB-Daten nach Volk und Land zugeordnet. Nicht alle sind Frontier."},Ob={title:"All People Groups",locations:"{n} group–country locations",doxa:"DOXA people groups",frontier:"Frontier — nothing started",unreached:"Unreached — work beginning",reached:"Reached — church is there",hint:"Click a row to see all of them · click again for everything",loading:"Loading every people group…",loadError:"The map could not be loaded.",pray:"Pray for them →",population:"pop {n}"},Db={backToLegend:"Back to Legend",closeDetailView:"Close detail view",collapseLegend:"Collapse legend",expandLegend:"Expand legend",toggleLegend:"Show or hide the legend"},Gb={prayForThem:"Pray for them",adoptThem:"Adopt",moreInfo:"More info",zoomIn:"Zoom in",zoomOut:"Zoom out",switchToLightMode:"Switch to light mode",switchToDarkMode:"Switch to dark mode",resetView:"Reset view",toggleFullscreen:"Toggle fullscreen",aboutThisMap:"About this map",closeMenu:"Close menu",reloadMap:"Reload Map",showClusters:"Show Clusters",clusterSettings:"Cluster Settings",startAutoFly:"Start Auto Fly",stopFlight:"Stop Flight",speedLabel:"Speed:",speedOption:{slow:"Slow",normal:"Normal",fast:"Fast"},shareEmbed:"Share & embed",shareSteps:["Embed this map on your site","Create a list of the websites in your city","Train them to embed it too","Train them to train others to embed it too","Multiply maps everywhere for Jesus!"],share:"Share",posterMap:"Poster Map",prayerList:"Prayer List",cardDeck:"Card Deck",printOptions:"Print Options",showOnMap:"Show on map",close:"Close",showOnMapAria:"Show {label} on the map",cardStockAria:"Prayer card size",previewPrintPoster:"Preview & print the {label} poster",clearSelection:"Clear selection",noOptions:"No options found",renderingLocal:"Rendering a print-quality image in your browser — nothing is uploaded.",postersPerRow:"Posters per row"},Bb={title:"Internet access where unengaged people groups live",bands:{yes:"connected 60%+",partial:"partial 25–59%",no:"low, under 25%",unknown:"not measured"},peopleGroup:"people group",caveat:"NATIONAL figures (World Bank). Per-city connectivity is not publicly available — do not read a city off a country.",sheet:{close:"Close",ai:"Data was found by AI deep research — it is subject to false information.",dismiss:"Dismiss",internetUsers:"Internet users",measured:"Measured",mobilePer100:"Mobile per 100",peopleGroups:"People groups",topPlatform:"Top platform",unknown:"unknown",carriers:"Carriers & ISPs ({n})",socialPlatforms:"Social platforms",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."}},jb={research_controls:"Research controls",clustering:"Clustering",filters:"Filters",pin_dim:"Pin dim",export_poster:"Export poster…",reload_data:"Reload data",off:"Off",native:"Native",mst:"MST",network:"Network",off_desc:"Show every pin individually",native_desc:"Mapbox circle clusters (fastest)",mst_desc:"Minimum-spanning-tree affinity webs",network_desc:"Nearest-neighbor connection lines",search_languages:"Search languages…",search_religions:"Search religions…",reset_all:"Reset all",no_languages:"No languages loaded yet",no_religions:"No religions loaded yet",unadopted:"Unadopted",min:"min",max:"max",adopted:"Adopted",adoption:"Adoption",engaged:"Engaged",engagement:"Engagement",unengaged:"Unengaged",language:"Language",religion:"Religion",population:"Population",any:"Any",active_count:"{n} active",prayer_status:"Prayer Status",close:"Close",clear:"Clear",map_controls:"Research map controls"},zb={bloc:"Bloc",gospel_access:"Gospel Access",people:"People",people_name:"People (name)",praying:"Praying",religion_family:"Religion Family",search_language:"Search language",search_people:"Search people",search_place:"Search place",search_religion:"Search religion",upgs_in_scope:"UPGs in scope",countries_touched:"countries touched",unreached:"unreached",sum_population:"Σ population",sum_praying:"Σ praying",charts:"Charts",table:"Table",cluster:"Cluster",country:"Country",engagement:"Engagement",language:"Language",language_family:"Language Family",people_group:"People Group",population:"Population",prayer:"Prayer",region:"Region",religion:"Religion",status:"Status",adopted:"Adopted",filters:"Filters",gospel_resources:"Gospel Resources",map:"Map",search_placeholder:"Search people groups, place, language, religion…",any:"Any",active_count:"{n} active",prayer_status:"Prayer Status",map_controls:"Research map controls",close:"Close",clear:"Clear",dashboard_title:"Big Picture Research Dashboard",align_dashboard:"Align Dashboard",align_dashboard_tip:"Reset the dashboard layout to its default alignment",selected:"Selected",world:"World",vertical_legend:"Vertical Legend",groups_in_scope:"groups in scope",filter_by:"Filter by",remove_filter:"Remove filter",groups:"groups",expand:"Expand",collapse:"Collapse",place:"Place"},Ub={labels:{country:"Country:",population:"Population:",language:"Language:",religion:"Religion:",languageFamily:"Language Family:",peopleCommitted:"Committed to pray:"},messages:{noDescription:"No description available."}},Vb={_note:'SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file: it carries doctrinal and statistical precision — which pools were searched, what "nothing found" does and does not claim, why Open Bible Stories is not Scripture — and a mistranslated caveat there would read as authoritative. `prose.english` is the one translated line that says so. When a human-reviewed translation of the prose exists, it gets its own area file and that line comes out.',prose:{english:"Explanatory notes below are in English."},mode:{gap:"Gap",coverage:"Resources found"},search:{placeholder:"Find a people group, language or ISO code",clear:"Clear search",none:"Nothing matches that name, language or code.",placeholderShort:"Group, language or ISO code"},legend:{title:"Unengaged groups with no gospel resource found",band60:"60%+ with nothing found",band30:"30–59%",bandSome:"some groups",bandAll:"all groups have some",tier2:"Scripture and film",tier1:"some resource found",tier0:"nothing found",hnr:"can hear it, no text found",showAll:"Show all groups",titleCoverage:"Unengaged groups with some gospel resource found",cov80:"80%+ have something found",cov50:"50–79%",cov1:"1–49%",cov0:"nothing found for any",tallyEach:"Each",tallyIs:"is ONE people group —",tallyOf:"of them,",tallyLink:"with a link",doxa0:"all have something",doxa1:"1–4 with nothing",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 reached",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Doxa people groups on this map",notPlaced:"on the roster, not yet placed",outOfScope:"no Doxa people groups — not coloured"},tabs:{groups:"Largest groups",countries:"By country",regions:"By region",noprayer:"Nobody praying",hnr:"Can hear, no text"},stat:{language:"Language",population:"Population",countries:"Countries",peopleGroups:"People groups",noResource:"No resource found",peopleAffected:"People affected",haveScripture:"Have scripture",haveFilm:"Have film",haveAudio:"Have audio Scripture",signLanguages:"Sign languages",growingUnreached:"Growing & unreached",deathsDay:"Est. deaths/day"},sheet:{ownLanguage:"In their own language",close:"Close",loading:"Loading resources…",pray:"Pray for",everyResource:"Every resource in",alsoSpeak:"Also speak"},res:{scripture:"Scripture",film:"Film",audio:"Audio",bibleVideo:"Bible video",bibleStories:"Open Bible Stories",gospelAudio:"Gospel audio",gospelPresentation:"Gospel presentation",scriptureEarth:"Scripture Earth",training:"Discipleship training",jesusFilm:"JESUS Film"},state:{noneFound:"none found",noneAtFcbh:"none found at FCBH",noneAtGrn:"none found at GRN",notInZume:"not in Zume's 54",linkChecked:"link checked",unchecked:"unchecked",linkDead:"link dead",wrongLanguage:"wrong language",varietyNotStated:"(variety not stated)",inLanguage:"in"},guide:{dotVsCountry:"A dot is ONE of Doxa's people groups and its own language; a country is a COUNT of those groups.",noneFoundShort:"“None found” means not present in the pools this build checked — never proof that nothing exists.",tapCountry:"Tap a country to see the actual resources, group by group."},tables:{title:"Gospel Resources — Data",showing:"Showing",of:"of",for:"for",filteredTo:"Filtered to",showAll:"Show all resources",t_doxa:"Doxa — Gospel Access",t_links:"Every Resource + Link",t_nothing:"Where Nothing Was Found",t_countrygap:"The Gap by Country",t_translation:"Can Hear It, No Text",t_translationcountry:"Where to Translate",t_gaps:"Gaps & Opportunities",t_bridges:"City Bridges",t_deaf:"The Deaf Gap",t_resources:"Resources by People Group",t_languages:"Languages by Country",t_growth:"Access vs Population Growth"},pages:{listTitle:"Gospel Resources by Language",chartsTitle:"Gospel Resources — by Language",loadingTables:"Loading resource tables…"},list:{noText:"No text Scripture",hasScripture:"Has scripture",allLanguages:"All languages",peopleGroup:"people group",peopleGroups:"people groups",scriptureHere:"Scripture in this language"},columns:{"People group":"People group",Country:"Country",Region:"Region",Language:"Language",Population:"Population",Religion:"Religion","Gospel access":"Gospel access",Resources:"Resources",Scripture:"Scripture","Bible video":"Bible video","Gospel presentation":"Gospel presentation",Countries:"Countries","People groups":"People groups"}},Kb={search:"Search people groups…",hide_filters:"Hide Filters",show_filters:"Show Filters",total:"Total",showing:"Showing",load_more:"Load more",full_profile:"Full profile",wagf_region:"Region",wagf_block:"Affinity Block",rop1:"People Group",religion:"Religion",exact_filter:"Exact",clear_all:"Clear All",loading:"Loading…",no_results:"No people groups match this filter.",type_to_search:"Type to search...",load_failed:"People-group data could not be loaded. This is a connection problem, not your filter."},Hb={title:{adoption:"Adoption Progress",affinityBlocs:"Affinity Blocks",doxaRegions:"Doxa Regions",engagement:"Engagement Progress",gospelResources:"Gospel Resources",languageFamilies:"Language Families",prayer:"Prayer Progress",upg100List:"My UPG 100 List"},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"},tabInfo:{upg100Region:"Region — sort the UPG-100 lists by world area (Africa, India, Middle East, Deaf, …). Counts are the UUPGs and population summed across every list beneath it.",upg100Zone:"UPG-100 Lists — each one is a prayer list of the unreached people groups in an area, and is what the map paints and colours. Every list prints as its own packet.",upg100Group:"People Group — the individual unreached groups inside a list, largest prayer need first. Each map dot is one of these."},a11y:{expandRow:"Expand {label}",collapseRow:"Collapse {label}",clearSelection:"Clear selection"}},qb={menuComingSoon:"Menu coming soon",pinHint:{tapDot:"Tap a coloured dot — someone still needs prayer"},upg100WallHeading:"My UPG 100 List — Prayer Lists & Posters",upg100WallTag:"Prayer Mobilization",upg100WallIntro:"Hand away the prayer task in clusters of fifties and hundreds — the way Jesus fed the 5,000 (Luke 9:14). Each poster is a 100-list you can pray, print, and put on a wall — praying for them by their people group name."},Wb={clusterByRegion:"By Doxa Region",clusterByLanguageFamily:"By Language Family",clusterByGospelResource:"By Gospel Resource"},Yb={country:{wagfRegion:"WAGF Region",wagfBlock:"WAGF Bloc",country:"Country",uupgCount:"UUPG Count"}},Xb={header:"CURRENT PRAYER LAP",lap:"Lap",upgs:"UUPGs",separator:" of "},Zb={"%count% people groups in %countries% countries":"%count% people groups in %countries% countries","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.","1+ People Praying":"1+ People Praying","100+ People Praying":"100+ People Praying",Adopted:"Adopted","Adoption Progress":"Adoption Progress","All Regions":"All Regions","Alternate Names":"Alternate Names","Choose a region":"Choose a region","Clear All":"Clear All",Countries:"Countries","Countries in this region":"Countries in this region",Country:"Country",Engaged:"Engaged","Engagement Progress":"Engagement Progress","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Every unengaged people group adopted by a church committed to prayer, giving, and sending","Exact Search":"Exact Search","Find unreached people groups by region and country.":"Find unreached people groups by region and country.","Full Profile":"Full Profile",Goal:"Goal","Hide Filters":"Hide Filters","Hide country posters":"Hide country posters",Intercessors:"Intercessors","Load More":"Load More","Loading results...":"Loading results...",Map:"Map","Mobilize 100+ people praying daily for each DOXA people group":"Mobilize 100+ people praying daily for each DOXA people group","No One Praying":"No One Praying","No options found":"No options found","No poster has been generated for this country yet.":"No poster has been generated for this country yet.","No unengaged people groups by 2033":"No unengaged people groups by 2033","Not Adopted":"Not Adopted",Other:"Other","Page Not Found":"Page Not Found","People Group":"People Group","People Groups":"People Groups","People committed to praying":"People committed to praying","Pick a region above, or click any dot to open that people group's country.":"Pick a region above, or click any dot to open that people group's country.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Pick a region or a country on the Regions List tab to narrow this dashboard.",Population:"Population","Prayer Coverage":"Prayer Coverage","Prayer coverage progress":"Prayer coverage progress","Region Dashboards":"Region Dashboards","Region dashboard":"Region dashboard",Regions:"Regions","Regions List":"Regions List",Religion:"Religion","Search names, country/continent, religions...":"Search names, country/continent, religions...","See %region% dashboard":"See %region% dashboard","See All":"See All",Select:"Select","Select View":"Select View","Show Filters":"Show Filters","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.",Total:"Total","Type to search...":"Type to search...","Unengaged people groups":"Unengaged people groups","View country posters":"View country posters",Views:"Views","WAGF Block":"WAGF Block","WAGF Region":"WAGF Region","people groups adopted":"people groups adopted","people groups engaged":"people groups engaged","Outside this region":"Outside this region",Pray:"Pray","Loading region dashboards…":"Loading region dashboards…","No regions found.":"No regions found.","Region data could not be loaded. This is a connection problem, not a filter.":"Region data could not be loaded. This is a connection problem, not a filter.","People groups could not be loaded. This is a connection problem, not a filter.":"People groups could not be loaded. This is a connection problem, not a filter.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected."},Jb={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"}},Qb={title:"Plugin Studio",navLabel:"Plugins by capability",countLabel:"{bundles} bundles · {elements} plugins listed here",changeLanguage:"Change language",copyEmbed:"Copy embed",copy:"Copy",copied:"Copied",scriptEmbed:"Script embed",loading:"Loading {name}…",couldNotLoad:"Could not load {name}.",chooseElement:"Choose a plugin from the list.",filterPlaceholder:"Filter plugins",collapseAll:"Collapse all",noMatch:"No plugin matches “{query}”.",openSection:"Open {cap}, {label}",part:"part",noStandalone:"no standalone page",cap5:"App shell",cap4:"Composite",cap3:"Multi-view",cap2:"Preset",cap1:"Single",toggleList:"Toggle list",openViews:"Open the list of views",expandList:"Expand list",collapseList:"Collapse list",collapse:"Collapse",partOf:"part of {name}, not published on its own"},e$={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",upg100Region:"Region",upg100Zone:"UPG-100 Lists",upg100Group:"People Group",selectView:"Select View",views:"Views",prayerResources:"Prayer Resources",map:"Map"},t$={kicker:"DOXA · Vision",title:"Every people. Every place.",tagline:"From every people group on earth to the ones DOXA prays for, counted from the data.",funnelLabel:"From all people groups to DOXA people groups",allLabel:"People groups",allNote:"each people group, in each country it lives in",unreachedLabel:"Unreached",unreachedNote:"under 2% evangelical",frontierLabel:"Frontier",frontierNote:"under 0.1% evangelical",doxaLabel:"DOXA people groups",doxaNote:"{frontier} of them are frontier",people:"{n} people",sources:"People groups: {imb}, data of {date}. DOXA list: pray.doxa.life, {date2}.",howCounted:"How these are counted",ruleAll:"Every row of the IMB people-group data: one people group in one country.",ruleUnreached:"IMB lostness priority 0 to 2: less than 2% evangelical.",ruleFrontier:"IMB lostness priority 0: less than 0.1% evangelical. A subset of the unreached.",ruleDoxa:"Every group on the DOXA prayer list, matched to the IMB data by people and country. Not all are frontier."},o$={title:"Todos los grupos étnicos",locations:"{n} ubicaciones (grupo × país)",doxa:"Grupos étnicos de DOXA",frontier:"Frontera — nada iniciado",unreached:"No alcanzados — el trabajo comienza",reached:"Alcanzados — la iglesia está ahí",hint:"Haga clic en una fila para verlos todos · de nuevo para ver todo",loading:"Cargando todos los grupos étnicos…",loadError:"No se pudo cargar el mapa.",pray:"Ore por ellos →",population:"pobl. {n}"},n$={backToLegend:"Volver a la leyenda",closeDetailView:"Cerrar vista de detalle",collapseLegend:"Contraer la leyenda",expandLegend:"Expandir la leyenda",toggleLegend:"Mostrar u ocultar la leyenda"},a$={prayForThem:"Ora por ellos",adoptThem:"Adóptalos",moreInfo:"Más información",zoomIn:"Acercar",zoomOut:"Alejar",switchToLightMode:"Cambiar a modo claro",switchToDarkMode:"Cambiar a modo oscuro",resetView:"Restablecer vista",toggleFullscreen:"Alternar pantalla completa",aboutThisMap:"Acerca de este mapa",closeMenu:"Cerrar menú",reloadMap:"Recargar mapa",showClusters:"Mostrar clústeres",clusterSettings:"Ajustes de clústeres",startAutoFly:"Iniciar vuelo automático",stopFlight:"Detener vuelo",speedLabel:"Velocidad:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Compartir e incrustar",posterMap:"Mapa del cartel",prayerList:"Lista de oración",cardDeck:"Baraja de tarjetas",printOptions:"Opciones de impresión",showOnMap:"Ver en el mapa",close:"Cerrar",showOnMapAria:"Ver {label} en el mapa",cardStockAria:"Tamaño de la tarjeta de oración",previewPrintPoster:"Previsualizar e imprimir el cartel de {label}",share:"Compartir",shareSteps:["Inserta este mapa en tu sitio","Haz una lista de los sitios web de tu ciudad","Enséñales a insertarlo también","Enséñales a enseñar a otros a insertarlo","¡Multiplica los mapas por todas partes para Jesús!"],clearSelection:"Borrar la selección",noOptions:"No se encontraron opciones",renderingLocal:"Se está generando una imagen con calidad de impresión en tu navegador: no se sube nada.",postersPerRow:"Pósteres por fila"},s$={title:"Acceso a internet donde viven pueblos sin implicación",bands:{yes:"conectado 60%+",partial:"parcial 25–59%",no:"bajo, menos del 25%",unknown:"sin medir"},peopleGroup:"pueblo",caveat:"Cifras NACIONALES (Banco Mundial). La conectividad por ciudad no está disponible públicamente: no deduzca una ciudad a partir de su país.",sheet:{close:"Cerrar",ai:"Estos datos se obtuvieron mediante investigación con IA y pueden contener información falsa.",dismiss:"Descartar",internetUsers:"Usuarios de internet",measured:"Medido",mobilePer100:"Móviles por cada 100",peopleGroups:"Pueblos",topPlatform:"Plataforma principal",unknown:"desconocido",carriers:"Operadores y proveedores de internet ({n})",socialPlatforms:"Redes sociales",note:"Cifras nacionales, no mediciones por ciudad. Los nombres de operadores son titulares de registros ASN (incluyen bancos y universidades además de proveedores), así que la marca de operador es una heurística por nombre, no una clasificación verificada."}},r$={research_controls:"Controles de investigación",clustering:"Agrupación",filters:"Filtros",pin_dim:"Atenuar puntos",export_poster:"Exportar póster…",reload_data:"Recargar datos",off:"Desactivado",native:"Nativo",mst:"MST",network:"Red",off_desc:"Mostrar cada punto por separado",native_desc:"Grupos circulares de Mapbox (lo más rápido)",mst_desc:"Redes de afinidad por árbol de expansión mínima",network_desc:"Líneas de conexión al vecino más cercano",search_languages:"Buscar idiomas…",search_religions:"Buscar religiones…",reset_all:"Restablecer todo",no_languages:"Aún no se han cargado idiomas",no_religions:"Aún no se han cargado religiones",unadopted:"No adoptado",min:"mín",max:"máx",adopted:"Adoptado",adoption:"Adopción",engaged:"Comprometido",engagement:"Compromiso",unengaged:"Necesita implicación",language:"Idioma",religion:"Religión",population:"Población",any:"Cualquiera",active_count:"{n} activos",prayer_status:"Estado de oración",close:"Cerrar",clear:"Borrar",map_controls:"Controles del mapa"},i$={bloc:"Bloque de afinidad",gospel_access:"Acceso al evangelio",people:"Pueblos",people_name:"Pueblo (nombre)",praying:"Orando",religion_family:"Familia religiosa",search_language:"Buscar idioma",search_people:"Buscar pueblo",search_place:"Buscar lugar",search_religion:"Buscar religión",upgs_in_scope:"UPG en el ámbito",countries_touched:"países alcanzados",unreached:"no alcanzados",sum_population:"Σ población",sum_praying:"Σ orando",charts:"Gráficos",table:"Tabla",cluster:"Clúster",country:"País",engagement:"Compromiso",language:"Idioma",language_family:"Familia lingüística",people_group:"Pueblo",population:"Población",prayer:"Oración",region:"Región",religion:"Religión",status:"Estado",adopted:"Adoptado",filters:"Filtros",gospel_resources:"Recursos del Evangelio",map:"Mapa",search_placeholder:"Buscar pueblos, lugares, idiomas, religiones…",any:"Cualquiera",active_count:"{n} activos",prayer_status:"Estado de oración",map_controls:"Controles del mapa",close:"Cerrar",clear:"Borrar",dashboard_title:"Panel de investigación general",align_dashboard:"Alinear panel",align_dashboard_tip:"Restablecer la disposición del panel a su alineación predeterminada",selected:"Seleccionado",world:"Mundo",vertical_legend:"Leyenda vertical",groups_in_scope:"pueblos en el ámbito",filter_by:"Filtrar por",remove_filter:"Quitar filtro",groups:"pueblos",expand:"Expandir",collapse:"Contraer",place:"Lugar"},l$={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."}},c$={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Las notas explicativas siguientes están en inglés."},mode:{gap:"Brecha",coverage:"Recursos encontrados"},search:{placeholder:"Busca un pueblo, idioma o código ISO",clear:"Borrar búsqueda",none:"Nada coincide con ese nombre, idioma o código.",placeholderShort:"Pueblo, idioma o código ISO"},legend:{title:"Pueblos no alcanzados sin ningún recurso del evangelio",band60:"60 %+ sin nada encontrado",band30:"30–59 %",bandSome:"algunos pueblos",bandAll:"todos los pueblos tienen algo",tier2:"Escrituras y película",tier1:"se encontró algún recurso",tier0:"no se encontró nada",hnr:"pueden oírlo, sin texto",showAll:"Mostrar todos los pueblos",titleCoverage:"Pueblos no alcanzados con algún recurso del evangelio",cov80:"80 %+ tienen algo",cov50:"50–79 %",cov1:"1–49 %",cov0:"nada para ninguno",tallyEach:"Cada",tallyIs:"es UN pueblo —",tallyOf:"de ellos,",tallyLink:"con un enlace",doxa0:"todos tienen algo",doxa1:"1–4 sin nada",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 alcanzados",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Pueblos de Doxa en este mapa",notPlaced:"en la lista, aún sin ubicar",outOfScope:"sin pueblos de Doxa — sin color"},tabs:{groups:"Pueblos más grandes",countries:"Por país",regions:"Por región",noprayer:"Nadie ora",hnr:"Oyen, sin texto"},stat:{language:"Idioma",population:"Población",countries:"Países",peopleGroups:"Pueblos",noResource:"Ningún recurso encontrado",peopleAffected:"Personas afectadas",haveScripture:"Tienen Escrituras",haveFilm:"Tienen película",haveAudio:"Tienen Escrituras en audio",signLanguages:"Lenguas de señas",growingUnreached:"En crecimiento y no alcanzados",deathsDay:"Muertes estimadas/día"},sheet:{ownLanguage:"En su propio idioma",close:"Cerrar",loading:"Cargando recursos…",pray:"Ora por",everyResource:"Todos los recursos en",alsoSpeak:"También hablan"},res:{scripture:"Escrituras",film:"Película",audio:"Audio",bibleVideo:"Video bíblico",bibleStories:"Open Bible Stories",gospelAudio:"Audio del evangelio",gospelPresentation:"Presentación del evangelio",scriptureEarth:"Scripture Earth",training:"Formación de discipulado",jesusFilm:"Película JESÚS"},state:{noneFound:"nada encontrado",noneAtFcbh:"nada en FCBH",noneAtGrn:"nada en GRN",notInZume:"no está entre los 54 de Zume",linkChecked:"enlace verificado",unchecked:"sin verificar",linkDead:"enlace roto",wrongLanguage:"idioma incorrecto",varietyNotStated:"(variedad no indicada)",inLanguage:"en"},guide:{dotVsCountry:"Cada punto es UN pueblo de Doxa y su propio idioma; un país es el NÚMERO de esos pueblos.",noneFoundShort:"«Nada encontrado» significa ausente de las fuentes consultadas, nunca prueba de que no exista.",tapCountry:"Toca un país para ver los recursos, pueblo por pueblo."},tables:{title:"Recursos del evangelio — Datos",showing:"Mostrando",of:"de",for:"para",filteredTo:"Filtrado por",showAll:"Mostrar todos los recursos",t_doxa:"Doxa — Acceso al evangelio",t_links:"Cada recurso + enlace",t_nothing:"Donde no se encontró nada",t_countrygap:"La brecha por país",t_translation:"Pueden oírlo, sin texto",t_translationcountry:"Dónde traducir",t_gaps:"Brechas y oportunidades",t_bridges:"Puentes urbanos",t_deaf:"La brecha sorda",t_resources:"Recursos por pueblo",t_languages:"Idiomas por país",t_growth:"Acceso vs crecimiento"},pages:{listTitle:"Recursos del evangelio por idioma",chartsTitle:"Recursos del evangelio — por idioma",loadingTables:"Cargando tablas de recursos…"},list:{noText:"Sin texto bíblico",hasScripture:"Tiene Escrituras",allLanguages:"Todos los idiomas",peopleGroup:"pueblo",peopleGroups:"pueblos",scriptureHere:"Escrituras en este idioma"},columns:{"People group":"Pueblo",Country:"País",Region:"Región",Language:"Idioma",Population:"Población",Religion:"Religión","Gospel access":"Acceso al evangelio",Resources:"Recursos",Scripture:"Escrituras","Bible video":"Video bíblico","Gospel presentation":"Presentación del evangelio",Countries:"Países","People groups":"Pueblos"}},u$={search:"Buscar pueblos…",hide_filters:"Ocultar filtros",show_filters:"Mostrar filtros",total:"Total",showing:"Mostrando",load_more:"Cargar más",full_profile:"Perfil completo",wagf_region:"Región",wagf_block:"Bloque de afinidad",rop1:"Pueblo",religion:"Religión",exact_filter:"Exacto",clear_all:"Borrar todo",loading:"Cargando…",no_results:"Ningún pueblo coincide con este filtro.",type_to_search:"Escribe para buscar...",load_failed:"No se pudieron cargar los datos de pueblos. Es un problema de conexión, no de tu filtro."},p$={title:{adoption:"Progreso de adopción",affinityBlocs:"Bloques de afinidad",doxaRegions:"Regiones Doxa",engagement:"Progreso de implicación",gospelResources:"Recursos del Evangelio",languageFamilies:"Familias lingüísticas",prayer:"Progreso de oración",upg100List:"Mi lista UPG 100"},header:{collapsed:"Leyenda",peopleGroupFallback:"Grupo de personas",default:"Leyenda"},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"},tabInfo:{upg100Region:"Región — ordena las listas UPG-100 por área mundial (África, India, Oriente Medio, Sordos, …). Los totales son los UUPG y la población sumados de todas las listas que contiene.",upg100Zone:"Listas UPG-100 — cada una es una lista de oración de los grupos étnicos no alcanzados de un área, y es lo que el mapa pinta y colorea. Cada lista se imprime como su propio paquete.",upg100Group:"Grupo étnico — los grupos no alcanzados dentro de una lista, primero los de mayor necesidad de oración. Cada punto del mapa es uno de ellos."},a11y:{expandRow:"Expandir {label}",collapseRow:"Contraer {label}",clearSelection:"Borrar la selección"}},d$={menuComingSoon:"Menú próximamente",pinHint:{tapDot:"Toca un punto de color: alguien todavía necesita oración"},upg100WallHeading:"Mi lista UPG 100 — Listas de oración y carteles",upg100WallTag:"Movilización de oración",upg100WallIntro:"Reparte la tarea de la oración en grupos de cincuenta y de cien, como Jesús alimentó a los 5.000 (Lucas 9:14). Cada cartel es una lista de 100 que puedes orar, imprimir y poner en la pared — orando por ellos por el nombre de su pueblo."},g$={clusterByRegion:"Por región Doxa",clusterByLanguageFamily:"Por familia lingüística",clusterByGospelResource:"Por recurso del Evangelio"},f$={country:{wagfRegion:"Región WAGF",wagfBlock:"Bloque WAGF",country:"País",uupgCount:"Número de UUPG"}},h$={header:"VUELTA DE ORACIÓN ACTUAL",lap:"Vuelta",upgs:"UUPGs",separator:" de "},m$={"%count% people groups in %countries% countries":"%count% grupos étnicos en %countries% países","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% tiene %count% grupos étnicos en %countries% países. El color de cada punto indica cuántas personas oran por ese grupo étnico.","1+ People Praying":"1+ personas orando","100+ People Praying":"100+ personas orando",Adopted:"Adoptado","Adoption Progress":"Progreso de la adopción","All Regions":"Todas las regiones","Alternate Names":"Nombres alternativos","Choose a region":"Elige una región","Clear All":"Borrar todo",Countries:"Países","Countries in this region":"Países de esta región",Country:"País",Engaged:"Comprometido","Engagement Progress":"Progreso del compromiso","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Cada grupo étnico no evangelizado adoptado por una iglesia comprometida con la oración, la ofrenda y el envío.","Exact Search":"Búsqueda exacta","Find unreached people groups by region and country.":"Encuentra grupos étnicos no alcanzados por región y país.","Full Profile":"Perfil completo",Goal:"Meta","Hide Filters":"Ocultar filtros","Hide country posters":"Ocultar los carteles del país",Intercessors:"Intercesores","Load More":"Cargar más","Loading results...":"Cargando resultados...",Map:"Mapa","Mobilize 100+ people praying daily for each DOXA people group":"Movilizar a más de 100 personas que oren diariamente por cada grupo étnico DOXA.","No One Praying":"Nadie orando","No options found":"No se han encontrado opciones","No poster has been generated for this country yet.":"Todavía no se ha generado ningún cartel para este país.","No unengaged people groups by 2033":"No habrá grupos étnicos sin evangelizar para 2033","Not Adopted":"No adoptado",Other:"Otros","Page Not Found":"Página no encontrada","People Group":"Grupo Étnico","People Groups":"Grupos Étnicos","People committed to praying":"Personas comprometidas con la oración","Pick a region above, or click any dot to open that people group's country.":"Elige una región arriba, o haz clic en cualquier punto para abrir el país de ese pueblo.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Elige una región o un país en la pestaña Lista de regiones para acotar este panel.",Population:"Población","Prayer Coverage":"Cobertura de oración","Prayer coverage progress":"Progreso de la cobertura de oración","Region Dashboards":"Paneles de regiones","Region dashboard":"Panel de la región",Regions:"Regiones","Regions List":"Lista de regiones",Religion:"Religión","Search names, country/continent, religions...":"Buscar nombres, país/continente, religiones...","See %region% dashboard":"Ver el panel de %region%","See All":"Ver todo",Select:"Seleccionar","Select View":"Seleccionar vista","Show Filters":"Mostrar filtros","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Hay %count% grupos étnicos en %country%. Consulta también el mapa para ver los grupos étnicos en la frontera de este país.",Total:"Total","Type to search...":"Escribe para buscar...","Unengaged people groups":"Grupos étnicos no comprometidos","View country posters":"Ver los carteles del país",Views:"Vistas","WAGF Block":"Bloque WAGF","WAGF Region":"Región de la WAGF","people groups adopted":"grupos étnicos adoptados","people groups engaged":"grupos étnicos comprometidos","Outside this region":"Fuera de esta región",Pray:"Oración","Loading region dashboards…":"Cargando los paneles de regiones…","No regions found.":"No se encontraron regiones.","Region data could not be loaded. This is a connection problem, not a filter.":"No se pudieron cargar los datos de las regiones. Es un problema de conexión, no un filtro.","People groups could not be loaded. This is a connection problem, not a filter.":"No se pudieron cargar los pueblos. Es un problema de conexión, no un filtro.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"El mapa no pudo iniciarse. Es un problema del token del mapa o de conexión, no un filtro: las cifras de arriba no se ven afectadas."},b$={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"},sections:{within:"Dentro de {selection}",allData:"Todos los datos DOXA"}},$$={title:"Estudio de plugins",navLabel:"Plugins por capacidad",countLabel:"{bundles} paquetes · {elements} plugins listados aquí",changeLanguage:"Cambiar idioma",copyEmbed:"Copiar código de inserción",copy:"Copiar",copied:"Copiado",scriptEmbed:"Inserción por script",loading:"Cargando {name}…",couldNotLoad:"No se pudo cargar {name}.",chooseElement:"Elija un plugin de la lista.",filterPlaceholder:"Filtrar plugins",collapseAll:"Contraer todo",noMatch:"Ningún plugin coincide con «{query}».",openSection:"Abrir {cap}, {label}",part:"parte",noStandalone:"sin página propia",cap5:"Contenedor de aplicación",cap4:"Compuesto",cap3:"Multivista",cap2:"Preajuste",cap1:"Individual",toggleList:"Mostrar u ocultar la lista",openViews:"Abrir la lista de vistas",expandList:"Expandir la lista",collapseList:"Contraer la lista",collapse:"Contraer",partOf:"parte de {name}, no publicada por separado"},y$={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",upg100Region:"Región",upg100Zone:"Listas UPG-100",upg100Group:"Grupo étnico",selectView:"Seleccionar vista",views:"Vistas",prayerResources:"Recursos de oración",map:"Mapa"},_$={kicker:"DOXA · Visión",title:"Cada pueblo. Cada lugar.",tagline:"De todos los grupos étnicos del mundo a aquellos por los que DOXA ora, contados a partir de los datos.",funnelLabel:"De todos los grupos étnicos a los grupos étnicos de DOXA",allLabel:"Grupos étnicos",allNote:"cada grupo étnico, en cada país donde vive",unreachedLabel:"No alcanzados",unreachedNote:"menos del 2 % evangélicos",frontierLabel:"Frontera",frontierNote:"menos del 0,1 % evangélicos",doxaLabel:"Grupos étnicos de DOXA",doxaNote:"{frontier} de ellos son de frontera",people:"{n} personas",sources:"Grupos étnicos: {imb}, datos de {date}. Lista de DOXA: pray.doxa.life, {date2}.",howCounted:"Cómo se cuentan",ruleAll:"Cada fila de los datos de grupos étnicos del IMB: un grupo étnico en un país.",ruleUnreached:"Prioridad de perdición del IMB de 0 a 2: menos del 2 % evangélicos.",ruleFrontier:"Prioridad de perdición del IMB 0: menos del 0,1 % evangélicos. Un subconjunto de los no alcanzados.",ruleDoxa:"Cada grupo de la lista de oración de DOXA, vinculado a los datos del IMB por pueblo y país. No todos son de frontera."},v$={title:"Tous les groupes ethniques",locations:"{n} emplacements (groupe × pays)",doxa:"Groupes ethniques DOXA",frontier:"Frontière — rien n’a commencé",unreached:"Non atteints — le travail commence",reached:"Atteints — l’Église est là",hint:"Cliquez sur une ligne pour les voir tous · recliquez pour tout voir",loading:"Chargement de tous les groupes ethniques…",loadError:"La carte n’a pas pu être chargée.",pray:"Priez pour eux →",population:"pop. {n}"},w$={backToLegend:"Retour à la légende",closeDetailView:"Fermer la vue détaillée",collapseLegend:"Réduire la légende",expandLegend:"Développer la légende",toggleLegend:"Afficher ou masquer la légende"},k$={prayForThem:"Priez pour eux",adoptThem:"Adoptez-les",moreInfo:"Plus d'infos",zoomIn:"Zoom avant",zoomOut:"Zoom arrière",switchToLightMode:"Passer au mode clair",switchToDarkMode:"Passer au mode sombre",resetView:"Réinitialiser la vue",toggleFullscreen:"Basculer en plein écran",aboutThisMap:"À propos de cette carte",closeMenu:"Fermer le menu",reloadMap:"Recharger la carte",showClusters:"Afficher les clusters",clusterSettings:"Paramètres des clusters",startAutoFly:"Démarrer le vol auto",stopFlight:"Arrêter le vol",speedLabel:"Vitesse :",speedOption:{slow:"Lente",normal:"Normale",fast:"Rapide"},shareEmbed:"Partager et intégrer",posterMap:"Carte de l'affiche",prayerList:"Liste de prière",cardDeck:"Jeu de cartes",printOptions:"Options d'impression",showOnMap:"Voir sur la carte",close:"Fermer",showOnMapAria:"Voir {label} sur la carte",cardStockAria:"Taille de la carte de prière",previewPrintPoster:"Aperçu et impression de l’affiche {label}",share:"Partager",shareSteps:["Intégrez cette carte à votre site","Dressez la liste des sites web de votre ville","Apprenez-leur à l’intégrer aussi","Apprenez-leur à former d’autres personnes à l’intégrer","Multiplions les cartes partout pour Jésus !"],clearSelection:"Effacer la sélection",noOptions:"Aucune option trouvée",renderingLocal:"Une image de qualité impression est générée dans votre navigateur — rien n’est envoyé.",postersPerRow:"Affiches par ligne"},x$={title:"Accès à Internet là où vivent les peuples sans engagement",bands:{yes:"connecté 60 %+",partial:"partiel 25–59 %",no:"faible, moins de 25 %",unknown:"non mesuré"},peopleGroup:"peuple",caveat:"Chiffres NATIONAUX (Banque mondiale). La connectivité par ville n'est pas publique — ne déduisez pas une ville à partir de son pays.",sheet:{close:"Fermer",ai:"Ces données proviennent d'une recherche approfondie par IA — elles peuvent contenir des informations erronées.",dismiss:"Ignorer",internetUsers:"Internautes",measured:"Mesuré",mobilePer100:"Mobiles pour 100",peopleGroups:"Peuples",topPlatform:"Plateforme principale",unknown:"inconnu",carriers:"Opérateurs et FAI ({n})",socialPlatforms:"Réseaux sociaux",note:"Chiffres nationaux, pas des mesures par ville. Les noms d'opérateurs sont les titulaires de registres ASN (on y trouve aussi des banques et des universités à côté des FAI), donc l'étiquette « opérateur » est une heuristique fondée sur le nom, non une classification vérifiée."}},L$={research_controls:"Commandes de recherche",clustering:"Regroupement",filters:"Filtres",pin_dim:"Atténuation des points",export_poster:"Exporter l’affiche…",reload_data:"Recharger les données",off:"Désactivé",native:"Natif",mst:"MST",network:"Réseau",off_desc:"Afficher chaque point séparément",native_desc:"Groupes circulaires Mapbox (le plus rapide)",mst_desc:"Réseaux d’affinité par arbre couvrant minimal",network_desc:"Lignes vers le plus proche voisin",search_languages:"Rechercher des langues…",search_religions:"Rechercher des religions…",reset_all:"Tout réinitialiser",no_languages:"Aucune langue chargée pour l’instant",no_religions:"Aucune religion chargée pour l’instant",unadopted:"Non adopté",min:"min",max:"max",adopted:"Adopté",adoption:"Adoption",engaged:"Engagé",engagement:"Engagement",unengaged:"Besoin d'engagement",language:"Langue",religion:"Religion",population:"Population",any:"Tous",active_count:"{n} actifs",prayer_status:"État de prière",close:"Fermer",clear:"Effacer",map_controls:"Commandes de la carte"},A$={bloc:"Bloc d’affinité",gospel_access:"Accès à l’Évangile",people:"Peuples",people_name:"Peuple (nom)",praying:"En prière",religion_family:"Famille religieuse",search_language:"Rechercher une langue",search_people:"Rechercher un peuple",search_place:"Rechercher un lieu",search_religion:"Rechercher une religion",upgs_in_scope:"UPG dans le périmètre",countries_touched:"pays touchés",unreached:"non atteints",sum_population:"Σ population",sum_praying:"Σ en prière",charts:"Graphiques",table:"Tableau",cluster:"Grappe",country:"Pays",engagement:"Engagement",language:"Langue",language_family:"Famille linguistique",people_group:"Peuple",population:"Population",prayer:"Prière",region:"Région",religion:"Religion",status:"Statut",adopted:"Adopté",filters:"Filtres",gospel_resources:"Ressources de l'Évangile",map:"Carte",search_placeholder:"Rechercher peuples, lieux, langues, religions…",any:"Tous",active_count:"{n} actifs",prayer_status:"État de prière",map_controls:"Commandes de la carte",close:"Fermer",clear:"Effacer",dashboard_title:"Tableau de bord de recherche global",align_dashboard:"Aligner le tableau",align_dashboard_tip:"Rétablir la disposition par défaut du tableau de bord",selected:"Sélectionné",world:"Monde",vertical_legend:"Légende verticale",groups_in_scope:"peuples dans le périmètre",filter_by:"Filtrer par",remove_filter:"Retirer le filtre",groups:"peuples",expand:"Développer",collapse:"Replier",place:"Lieu"},S$={labels:{country:"Pays :",population:"Population :",language:"Langue :",religion:"Religion :",languageFamily:"Famille de langues :",peopleCommitted:"Engagés à prier :"},messages:{noDescription:"Aucune description disponible."}},P$={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Les notes explicatives ci-dessous sont en anglais."},mode:{gap:"Écart",coverage:"Ressources trouvées"},search:{placeholder:"Chercher un peuple, une langue ou un code ISO",clear:"Effacer la recherche",none:"Rien ne correspond à ce nom, cette langue ou ce code.",placeholderShort:"Peuple, langue ou code ISO"},legend:{title:"Peuples non atteints sans aucune ressource de l'Évangile",band60:"60 %+ sans rien trouvé",band30:"30–59 %",bandSome:"quelques peuples",bandAll:"tous les peuples ont quelque chose",tier2:"Écritures et film",tier1:"une ressource trouvée",tier0:"rien trouvé",hnr:"peuvent l'entendre, aucun texte",showAll:"Afficher tous les peuples",titleCoverage:"Peuples non atteints avec une ressource de l'Évangile",cov80:"80 %+ ont quelque chose",cov50:"50–79 %",cov1:"1–49 %",cov0:"rien pour aucun",tallyEach:"Chaque",tallyIs:"est UN peuple —",tallyOf:"d'entre eux,",tallyLink:"avec un lien",doxa0:"tous ont quelque chose",doxa1:"1–4 sans rien",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 atteints",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Peuples Doxa sur cette carte",notPlaced:"sur la liste, pas encore localisés",outOfScope:"aucun peuple Doxa — non coloré"},tabs:{groups:"Peuples les plus nombreux",countries:"Par pays",regions:"Par région",noprayer:"Personne ne prie",hnr:"Entendent, sans texte"},stat:{language:"Langue",population:"Population",countries:"Pays",peopleGroups:"Peuples",noResource:"Aucune ressource trouvée",peopleAffected:"Personnes concernées",haveScripture:"Ont les Écritures",haveFilm:"Ont le film",haveAudio:"Ont les Écritures en audio",signLanguages:"Langues des signes",growingUnreached:"En croissance et non atteints",deathsDay:"Décès estimés/jour"},sheet:{ownLanguage:"Dans leur propre langue",close:"Fermer",loading:"Chargement des ressources…",pray:"Priez pour",everyResource:"Toutes les ressources en",alsoSpeak:"Parlent aussi"},res:{scripture:"Écritures",film:"Film",audio:"Audio",bibleVideo:"Vidéo biblique",bibleStories:"Open Bible Stories",gospelAudio:"Audio de l'Évangile",gospelPresentation:"Présentation de l'Évangile",scriptureEarth:"Scripture Earth",training:"Formation au discipulat",jesusFilm:"Film JÉSUS"},state:{noneFound:"rien trouvé",noneAtFcbh:"rien chez FCBH",noneAtGrn:"rien chez GRN",notInZume:"pas dans les 54 de Zume",linkChecked:"lien vérifié",unchecked:"non vérifié",linkDead:"lien mort",wrongLanguage:"mauvaise langue",varietyNotStated:"(variété non précisée)",inLanguage:"en"},guide:{dotVsCountry:"Un point est UN peuple de Doxa et sa propre langue ; un pays est le NOMBRE de ces peuples.",noneFoundShort:"« Rien trouvé » signifie absent des sources consultées, jamais la preuve que rien n'existe.",tapCountry:"Touchez un pays pour voir les ressources, peuple par peuple."},tables:{title:"Ressources de l'Évangile — Données",showing:"Affichage de",of:"sur",for:"pour",filteredTo:"Filtré sur",showAll:"Afficher toutes les ressources",t_doxa:"Doxa — Accès à l'Évangile",t_links:"Chaque ressource + lien",t_nothing:"Où rien n'a été trouvé",t_countrygap:"L'écart par pays",t_translation:"Entendent, sans texte",t_translationcountry:"Où traduire",t_gaps:"Écarts et opportunités",t_bridges:"Ponts urbains",t_deaf:"L'écart sourd",t_resources:"Ressources par peuple",t_languages:"Langues par pays",t_growth:"Accès vs croissance"},pages:{listTitle:"Ressources de l'Évangile par langue",chartsTitle:"Ressources de l'Évangile — par langue",loadingTables:"Chargement des tableaux…"},list:{noText:"Pas de texte biblique",hasScripture:"A les Écritures",allLanguages:"Toutes les langues",peopleGroup:"peuple",peopleGroups:"peuples",scriptureHere:"Écritures dans cette langue"},columns:{"People group":"Peuple",Country:"Pays",Region:"Région",Language:"Langue",Population:"Population",Religion:"Religion","Gospel access":"Accès à l'Évangile",Resources:"Ressources",Scripture:"Écritures","Bible video":"Vidéo biblique","Gospel presentation":"Présentation de l'Évangile",Countries:"Pays","People groups":"Peuples"}},C$={search:"Rechercher des peuples…",hide_filters:"Masquer les filtres",show_filters:"Afficher les filtres",total:"Total",showing:"Affichage",load_more:"Charger plus",full_profile:"Profil complet",wagf_region:"Région",wagf_block:"Bloc d'affinité",rop1:"Peuple",religion:"Religion",exact_filter:"Exact",clear_all:"Tout effacer",loading:"Chargement…",no_results:"Aucun peuple ne correspond à ce filtre.",type_to_search:"Tapez pour rechercher...",load_failed:"Les données n’ont pas pu être chargées. C’est un problème de connexion, pas votre filtre."},E$={title:{adoption:"Progression de l'adoption",affinityBlocs:"Blocs d'affinité",doxaRegions:"Régions Doxa",engagement:"Progression de l'engagement",gospelResources:"Ressources de l'Évangile",languageFamilies:"Familles de langues",prayer:"Progression de la prière",upg100List:"Ma liste UPG 100"},header:{collapsed:"Légende",peopleGroupFallback:"Groupe de personnes",default:"Légende"},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"},tabInfo:{upg100Region:"Région — trie les listes UPG-100 par zone du monde (Afrique, Inde, Moyen-Orient, Sourds, …). Les totaux sont les UUPG et la population additionnés sur toutes les listes qu’elle contient.",upg100Zone:"Listes UPG-100 — chacune est une liste de prière des groupes de peuples non atteints d’une zone, et c’est ce que la carte dessine et colore. Chaque liste s’imprime comme son propre livret.",upg100Group:"Groupe de peuples — les groupes non atteints au sein d’une liste, les plus grands besoins de prière en premier. Chaque point de la carte en est un."},a11y:{expandRow:"Développer {label}",collapseRow:"Réduire {label}",clearSelection:"Effacer la sélection"}},T$={menuComingSoon:"Menu bientôt disponible",pinHint:{tapDot:"Touchez un point coloré — quelqu’un a encore besoin de prière"},upg100WallHeading:"Ma liste UPG 100 — Listes de prière et affiches",upg100WallTag:"Mobilisation pour la prière",upg100WallIntro:"Répartissez la tâche de la prière par groupes de cinquante et de cent — comme Jésus a nourri les 5 000 (Luc 9:14). Chaque affiche est une liste de 100 que vous pouvez prier, imprimer et afficher au mur — en priant pour eux par le nom de leur peuple."},N$={clusterByRegion:"Par région Doxa",clusterByLanguageFamily:"Par famille de langues",clusterByGospelResource:"Par ressource de l'Évangile"},R$={country:{wagfRegion:"Région WAGF",wagfBlock:"Bloc WAGF",country:"Pays",uupgCount:"Nombre d'UUPG"}},M$={header:"TOUR DE PRIÈRE ACTUEL",lap:"Tour",upgs:"UUPGs",separator:" sur "},F$={"%count% people groups in %countries% countries":"%count% peuples dans %countries% pays","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% compte %count% peuples répartis dans %countries% pays. La couleur de chaque point indique combien de personnes prient pour ce peuple.","1+ People Praying":"1+ personnes en prière","100+ People Praying":"100+ personnes en prière",Adopted:"Adopté","Adoption Progress":"Progrès de l'adoption","All Regions":"Toutes les régions","Alternate Names":"Autres noms","Choose a region":"Choisissez une région","Clear All":"Tout effacer",Countries:"Pays","Countries in this region":"Pays de cette région",Country:"Pays",Engaged:"Engagé","Engagement Progress":"Progrès de l'engagement","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Chaque peuple non engagé adopté par une église locale engagée dans la prière, le don et l'envoi","Exact Search":"Recherche exacte","Find unreached people groups by region and country.":"Trouvez des peuples non atteints par région et par pays.","Full Profile":"Profil complet",Goal:"Objectif","Hide Filters":"Masquer les filtres","Hide country posters":"Masquer les affiches du pays",Intercessors:"Intercesseurs","Load More":"Afficher plus","Loading results...":"Chargement des résultats...",Map:"Carte","Mobilize 100+ people praying daily for each DOXA people group":"Mobiliser plus de 100 personnes priant chaque jour pour chaque peuple DOXA","No One Praying":"Personne ne prie","No options found":"Aucun lieu trouvé","No poster has been generated for this country yet.":"Aucune affiche n'a encore été générée pour ce pays.","No unengaged people groups by 2033":"Plus aucun peuple non engagé d'ici 2033","Not Adopted":"Non adopté",Other:"Autre","Page Not Found":"Page introuvable","People Group":"Peuple","People Groups":"Peuples","People committed to praying":"Personnes engagées dans la prière","Pick a region above, or click any dot to open that people group's country.":"Choisissez une région ci-dessus, ou cliquez sur un point pour ouvrir le pays de ce peuple.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Choisissez une région ou un pays dans l’onglet Liste des régions pour affiner ce tableau de bord.",Population:"Population","Prayer Coverage":"Couverture de prière","Prayer coverage progress":"Progression de la couverture de prière","Region Dashboards":"Tableaux de bord des régions","Region dashboard":"Tableau de bord de la région",Regions:"Régions","Regions List":"Liste des régions",Religion:"Religion","Search names, country/continent, religions...":"Rechercher des noms, pays/continent, religions...","See %region% dashboard":"Voir le tableau de bord : %region%","See All":"Tout afficher",Select:"Sélectionner","Select View":"Sélectionner la vue","Show Filters":"Afficher les filtres","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Il y a %count% peuples en %country%. Consultez la carte pour découvrir également les peuples situés à la frontière de ce pays.",Total:"Total","Type to search...":"Entrer votre recherche","Unengaged people groups":"Peuples non engagés","View country posters":"Voir les affiches du pays",Views:"Vues","WAGF Block":"Bloc WAGF","WAGF Region":"Région WAGF","people groups adopted":"peuples adoptés","people groups engaged":"peuples engagés","Outside this region":"Hors de cette région",Pray:"Prier","Loading region dashboards…":"Chargement des tableaux de bord des régions…","No regions found.":"Aucune région trouvée.","Region data could not be loaded. This is a connection problem, not a filter.":"Les données des régions n'ont pas pu être chargées. Il s'agit d'un problème de connexion, pas d'un filtre.","People groups could not be loaded. This is a connection problem, not a filter.":"Les peuples n'ont pas pu être chargés. Il s'agit d'un problème de connexion, pas d'un filtre.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"La carte n'a pas pu démarrer. Il s'agit d'un problème de jeton de carte ou de connexion, pas d'un filtre — les chiffres ci-dessus ne sont pas affectés."},I$={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"},sections:{within:"Dans {selection}",allData:"Toutes les données DOXA"}},O$={title:"Studio de plugins",navLabel:"Plugins par capacité",countLabel:"{bundles} paquets · {elements} plugins listés ici",changeLanguage:"Changer de langue",copyEmbed:"Copier le code d’intégration",copy:"Copier",copied:"Copié",scriptEmbed:"Intégration par script",loading:"Chargement de {name}…",couldNotLoad:"Impossible de charger {name}.",chooseElement:"Choisissez un plugin dans la liste.",filterPlaceholder:"Filtrer les plugins",collapseAll:"Tout replier",noMatch:"Aucun plugin ne correspond à « {query} ».",openSection:"Ouvrir {cap}, {label}",part:"partie",noStandalone:"pas de page autonome",cap5:"Coquille d’application",cap4:"Composite",cap3:"Multivue",cap2:"Préréglage",cap1:"Simple",toggleList:"Afficher ou masquer la liste",openViews:"Ouvrir la liste des vues",expandList:"Déplier la liste",collapseList:"Replier la liste",collapse:"Replier",partOf:"partie de {name}, non publiée seule"},D$={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",upg100Region:"Région",upg100Zone:"Listes UPG-100",upg100Group:"Groupe de peuples",selectView:"Choisir la vue",views:"Vues",prayerResources:"Ressources de prière",map:"Carte"},G$={kicker:"DOXA · Vision",title:"Chaque peuple. Chaque lieu.",tagline:"De tous les groupes ethniques du monde à ceux pour qui DOXA prie, comptés à partir des données.",funnelLabel:"De tous les groupes ethniques aux groupes ethniques DOXA",allLabel:"Groupes ethniques",allNote:"chaque groupe ethnique, dans chaque pays où il vit",unreachedLabel:"Non atteints",unreachedNote:"moins de 2 % d’évangéliques",frontierLabel:"Frontière",frontierNote:"moins de 0,1 % d’évangéliques",doxaLabel:"Groupes ethniques DOXA",doxaNote:"dont {frontier} de frontière",people:"{n} personnes",sources:"Groupes ethniques : {imb}, données du {date}. Liste DOXA : pray.doxa.life, {date2}.",howCounted:"Comment ces chiffres sont comptés",ruleAll:"Chaque ligne des données IMB : un groupe ethnique dans un pays.",ruleUnreached:"Priorité de perdition IMB 0 à 2 : moins de 2 % d’évangéliques.",ruleFrontier:"Priorité de perdition IMB 0 : moins de 0,1 % d’évangéliques. Un sous-ensemble des non-atteints.",ruleDoxa:"Chaque groupe de la liste de prière DOXA, rapproché des données IMB par peuple et pays. Tous ne sont pas de frontière."},B$={title:"सभी जनसमूह",locations:"{n} स्थान (समूह × देश)",doxa:"DOXA जनसमूह",frontier:"सीमांत — कुछ शुरू नहीं हुआ",unreached:"अप्रचारित — काम शुरू हो रहा है",reached:"प्रचारित — कलीसिया मौजूद है",hint:"सभी देखने के लिए पंक्ति पर क्लिक करें · सब कुछ देखने के लिए फिर क्लिक करें",loading:"सभी जनसमूह लोड हो रहे हैं…",loadError:"मानचित्र लोड नहीं हो सका।",pray:"उनके लिए प्रार्थना करें →",population:"जनसंख्या {n}"},j$={backToLegend:"लेजेंड पर वापस जाएं",closeDetailView:"विवरण दृश्य बंद करें",collapseLegend:"लेजेंड संक्षिप्त करें",expandLegend:"लेजेंड विस्तृत करें",toggleLegend:"लेजेंड दिखाएँ या छिपाएँ"},z$={prayForThem:"उनके लिए प्रार्थना करें",adoptThem:"उन्हें गोद लें",moreInfo:"अधिक जानकारी",zoomIn:"ज़ूम इन",zoomOut:"ज़ूम आउट",switchToLightMode:"लाइट मोड पर जाएं",switchToDarkMode:"डार्क मोड पर जाएं",resetView:"दृश्य रीसेट करें",toggleFullscreen:"फ़ुलस्क्रीन टॉगल करें",aboutThisMap:"इस मानचित्र के बारे में",closeMenu:"मेनू बंद करें",reloadMap:"मानचित्र पुनः लोड करें",showClusters:"क्लस्टर दिखाएं",clusterSettings:"क्लस्टर सेटिंग्स",startAutoFly:"ऑटो फ्लाई शुरू करें",stopFlight:"उड़ान रोकें",speedLabel:"गति:",speedOption:{slow:"धीमी",normal:"सामान्य",fast:"तेज़"},shareEmbed:"साझा करें और एम्बेड करें",posterMap:"पोस्टर मानचित्र",prayerList:"प्रार्थना सूची",cardDeck:"कार्ड सेट",printOptions:"छपाई विकल्प",showOnMap:"मानचित्र पर देखें",close:"बंद करें",showOnMapAria:"{label} को मानचित्र पर देखें",cardStockAria:"प्रार्थना कार्ड का आकार",previewPrintPoster:"{label} पोस्टर देखें और प्रिंट करें",share:"साझा करें",shareSteps:["इस मानचित्र को अपनी वेबसाइट पर लगाएँ","अपने शहर की वेबसाइटों की सूची बनाएँ","उन्हें भी इसे लगाना सिखाएँ","उन्हें सिखाएँ कि वे औरों को लगाना सिखाएँ","यीशु के लिए हर जगह मानचित्र बढ़ाएँ!"],clearSelection:"चयन हटाएँ",noOptions:"कोई विकल्प नहीं मिला",renderingLocal:"आपके ब्राउज़र में प्रिंट-गुणवत्ता वाली छवि बन रही है — कुछ भी अपलोड नहीं किया जाता।",postersPerRow:"प्रति पंक्ति पोस्टर"},U$={title:"इंटरनेट पहुँच जहाँ बिना सहभागिता वाले जनसमूह रहते हैं",bands:{yes:"जुड़ा हुआ 60%+",partial:"आंशिक 25–59%",no:"कम, 25% से नीचे",unknown:"मापा नहीं गया"},peopleGroup:"जनसमूह",caveat:"राष्ट्रीय आँकड़े (विश्व बैंक)। शहर-स्तर की कनेक्टिविटी सार्वजनिक रूप से उपलब्ध नहीं है — देश के आँकड़ों से किसी शहर का अनुमान न लगाएँ।",sheet:{close:"बंद करें",ai:"यह डेटा एआई गहन शोध से मिला है — इसमें गलत जानकारी हो सकती है।",dismiss:"हटाएँ",internetUsers:"इंटरनेट उपयोगकर्ता",measured:"मापा गया",mobilePer100:"प्रति 100 मोबाइल",peopleGroups:"जनसमूह",topPlatform:"शीर्ष प्लेटफ़ॉर्म",unknown:"अज्ञात",carriers:"कैरियर और आईएसपी ({n})",socialPlatforms:"सोशल प्लेटफ़ॉर्म",note:"ये राष्ट्रीय आँकड़े हैं, शहरों के माप नहीं। कैरियर के नाम ASN रजिस्ट्री धारकों के हैं — उनमें आईएसपी के साथ बैंक और विश्वविद्यालय भी शामिल हैं, इसलिए कैरियर का चिह्न नाम पर आधारित अनुमान है, सत्यापित वर्गीकरण नहीं।"}},V$={research_controls:"शोध नियंत्रण",clustering:"क्लस्टरिंग",filters:"फ़िल्टर",pin_dim:"पिन धुंधलापन",export_poster:"पोस्टर निर्यात करें…",reload_data:"डेटा फिर से लोड करें",off:"बंद",native:"नेटिव",mst:"MST",network:"नेटवर्क",off_desc:"हर पिन अलग-अलग दिखाएँ",native_desc:"Mapbox वृत्त क्लस्टर (सबसे तेज़)",mst_desc:"न्यूनतम स्पैनिंग ट्री आधारित जाल",network_desc:"निकटतम पड़ोसी को जोड़ने वाली रेखाएँ",search_languages:"भाषाएँ खोजें…",search_religions:"धर्म खोजें…",reset_all:"सब रीसेट करें",no_languages:"अभी कोई भाषा लोड नहीं हुई",no_religions:"अभी कोई धर्म लोड नहीं हुआ",unadopted:"अ-गोद लिया",min:"न्यून",max:"अधि",adopted:"गोद लिया गया",adoption:"गोद लेना",engaged:"संपर्कित",engagement:"सहभागिता",unengaged:"सहभागिता चाहिए",language:"भाषा",religion:"धर्म",population:"जनसंख्या",any:"कोई भी",active_count:"{n} सक्रिय",prayer_status:"प्रार्थना स्थिति",close:"बंद करें",clear:"साफ़ करें",map_controls:"मानचित्र नियंत्रण"},K$={bloc:"समानता समूह",gospel_access:"सुसमाचार पहुँच",people:"जनसमूह",people_name:"जनसमूह (नाम)",praying:"प्रार्थना कर रहे",religion_family:"धर्म परिवार",search_language:"भाषा खोजें",search_people:"जनसमूह खोजें",search_place:"स्थान खोजें",search_religion:"धर्म खोजें",upgs_in_scope:"दायरे में UPG",countries_touched:"छुए गए देश",unreached:"अनपहुँचे",sum_population:"Σ जनसंख्या",sum_praying:"Σ प्रार्थना",charts:"चार्ट",table:"तालिका",cluster:"क्लस्टर",country:"देश",engagement:"सहभागिता",language:"भाषा",language_family:"भाषा परिवार",people_group:"जनसमूह",population:"जनसंख्या",prayer:"प्रार्थना",region:"क्षेत्र",religion:"धर्म",status:"स्थिति",adopted:"गोद लिया गया",filters:"फ़िल्टर",gospel_resources:"सुसमाचार संसाधन",map:"नक्शा",search_placeholder:"जनसमूह, स्थान, भाषा, धर्म खोजें…",any:"कोई भी",active_count:"{n} सक्रिय",prayer_status:"प्रार्थना स्थिति",map_controls:"मानचित्र नियंत्रण",close:"बंद करें",clear:"साफ़ करें",dashboard_title:"बिग पिक्चर शोध डैशबोर्ड",align_dashboard:"डैशबोर्ड संरेखित करें",align_dashboard_tip:"डैशबोर्ड लेआउट को डिफ़ॉल्ट संरेखण पर लौटाएँ",selected:"चयनित",world:"विश्व",vertical_legend:"लंबवत लेजेंड",groups_in_scope:"दायरे में जनसमूह",filter_by:"इससे फ़िल्टर करें",remove_filter:"फ़िल्टर हटाएँ",groups:"जनसमूह",expand:"विस्तार करें",collapse:"संक्षिप्त करें",place:"स्थान"},H$={labels:{country:"देश:",population:"जनसंख्या:",language:"भाषा:",religion:"धर्म:",languageFamily:"भाषा परिवार:",peopleCommitted:"प्रार्थना के लिए प्रतिबद्ध:"},messages:{noDescription:"कोई विवरण उपलब्ध नहीं है।"}},q$={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"नीचे दी गई व्याख्यात्मक टिप्पणियाँ अंग्रेज़ी में हैं।"},mode:{gap:"कमी",coverage:"उपलब्ध संसाधन"},search:{placeholder:"जनसमूह, भाषा या ISO कोड खोजें",clear:"खोज साफ़ करें",none:"इस नाम, भाषा या कोड से कुछ भी मेल नहीं खाता।",placeholderShort:"जनसमूह, भाषा या ISO कोड"},legend:{title:"ऐसे जनसमूह जिन तक सुसमाचार नहीं पहुँचा और कोई संसाधन नहीं मिला",band60:"60%+ के पास कुछ नहीं",band30:"30–59%",bandSome:"कुछ जनसमूह",bandAll:"सभी जनसमूहों के पास कुछ है",tier2:"पवित्र शास्त्र और फ़िल्म",tier1:"कुछ संसाधन मिला",tier0:"कुछ नहीं मिला",hnr:"सुन सकते हैं, पाठ नहीं",showAll:"सभी जनसमूह दिखाएँ",titleCoverage:"ऐसे अनपहुँचे जनसमूह जिनके लिए कुछ सुसमाचार संसाधन मिला",cov80:"80%+ के पास कुछ है",cov50:"50–79%",cov1:"1–49%",cov0:"किसी के लिए कुछ नहीं",tallyEach:"हर",tallyIs:"एक जनसमूह है —",tallyOf:"में से,",tallyLink:"के पास लिंक है",doxa0:"सभी के पास कुछ है",doxa1:"1–4 के पास कुछ नहीं",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 तक पहुँच",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"इस मानचित्र पर दोक्सा जनसमूह",notPlaced:"सूची में, अभी स्थान नहीं",outOfScope:"कोई दोक्सा जनसमूह नहीं — रंग नहीं"},tabs:{groups:"सबसे बड़े जनसमूह",countries:"देश के अनुसार",regions:"क्षेत्र के अनुसार",noprayer:"कोई प्रार्थना नहीं कर रहा",hnr:"सुन सकते हैं, पाठ नहीं"},stat:{language:"भाषा",population:"जनसंख्या",countries:"देश",peopleGroups:"जनसमूह",noResource:"कोई संसाधन नहीं मिला",peopleAffected:"प्रभावित लोग",haveScripture:"पवित्र शास्त्र उपलब्ध",haveFilm:"फ़िल्म उपलब्ध",haveAudio:"ऑडियो शास्त्र उपलब्ध",signLanguages:"सांकेतिक भाषाएँ",growingUnreached:"बढ़ते और अनपहुँचे",deathsDay:"अनुमानित मृत्यु/दिन"},sheet:{ownLanguage:"उनकी अपनी भाषा में",close:"बंद करें",loading:"संसाधन लोड हो रहे हैं…",pray:"के लिए प्रार्थना करें",everyResource:"में सभी संसाधन",alsoSpeak:"यह भी बोलते हैं"},res:{scripture:"पवित्र शास्त्र",film:"फ़िल्म",audio:"ऑडियो",bibleVideo:"बाइबल वीडियो",bibleStories:"Open Bible Stories",gospelAudio:"सुसमाचार ऑडियो",gospelPresentation:"सुसमाचार प्रस्तुति",scriptureEarth:"Scripture Earth",training:"शिष्यत्व प्रशिक्षण",jesusFilm:"यीशु फ़िल्म"},state:{noneFound:"कुछ नहीं मिला",noneAtFcbh:"FCBH में कुछ नहीं",noneAtGrn:"GRN में कुछ नहीं",notInZume:"Zume की 54 भाषाओं में नहीं",linkChecked:"लिंक जाँचा गया",unchecked:"अनजाँचा",linkDead:"लिंक निष्क्रिय",wrongLanguage:"ग़लत भाषा",varietyNotStated:"(उपभाषा नहीं बताई गई)",inLanguage:"में"},guide:{dotVsCountry:"हर बिंदु दोक्सा का एक जनसमूह और उसकी अपनी भाषा है; देश का रंग उन जनसमूहों की संख्या है।",noneFoundShort:"“कुछ नहीं मिला” का अर्थ है जाँचे गए स्रोतों में नहीं — यह प्रमाण नहीं कि कुछ है ही नहीं।",tapCountry:"संसाधन देखने के लिए किसी देश पर टैप करें, जनसमूह दर जनसमूह।"},tables:{title:"सुसमाचार संसाधन — डेटा",showing:"दिखा रहे हैं",of:"में से",for:"के लिए",filteredTo:"फ़िल्टर:",showAll:"सभी संसाधन दिखाएँ",t_doxa:"दोक्सा — सुसमाचार पहुँच",t_links:"हर संसाधन + लिंक",t_nothing:"जहाँ कुछ नहीं मिला",t_countrygap:"देश अनुसार कमी",t_translation:"सुन सकते हैं, पाठ नहीं",t_translationcountry:"अनुवाद कहाँ करें",t_gaps:"कमियाँ और अवसर",t_bridges:"नगर सेतु",t_deaf:"बधिर कमी",t_resources:"जनसमूह अनुसार संसाधन",t_languages:"देश अनुसार भाषाएँ",t_growth:"पहुँच बनाम जनसंख्या वृद्धि"},pages:{listTitle:"भाषा अनुसार सुसमाचार संसाधन",chartsTitle:"सुसमाचार संसाधन — भाषा अनुसार",loadingTables:"संसाधन तालिकाएँ लोड हो रही हैं…"},list:{noText:"कोई लिखित शास्त्र नहीं",hasScripture:"शास्त्र उपलब्ध",allLanguages:"सभी भाषाएँ",peopleGroup:"जनसमूह",peopleGroups:"जनसमूह",scriptureHere:"इस भाषा में पवित्र शास्त्र"},columns:{"People group":"जनसमूह",Country:"देश",Region:"क्षेत्र",Language:"भाषा",Population:"जनसंख्या",Religion:"धर्म","Gospel access":"सुसमाचार पहुँच",Resources:"संसाधन",Scripture:"पवित्र शास्त्र","Bible video":"बाइबल वीडियो","Gospel presentation":"सुसमाचार प्रस्तुति",Countries:"देश","People groups":"जनसमूह"}},W$={search:"जनसमूह खोजें…",hide_filters:"फ़िल्टर छिपाएँ",show_filters:"फ़िल्टर दिखाएँ",total:"कुल",showing:"दिखा रहे हैं",load_more:"और देखें",full_profile:"पूरी प्रोफ़ाइल",wagf_region:"क्षेत्र",wagf_block:"समानता समूह",rop1:"जनसमूह",religion:"धर्म",exact_filter:"सटीक",clear_all:"सब हटाएँ",loading:"लोड हो रहा है…",no_results:"इस फ़िल्टर से कोई जनसमूह मेल नहीं खाता।",type_to_search:"खोजने के लिए लिखें...",load_failed:"जनसमूह डेटा लोड नहीं हो सका। यह कनेक्शन की समस्या है, आपके फ़िल्टर की नहीं।"},Y$={title:{adoption:"गोद लेने की प्रगति",affinityBlocs:"समानता समूह",doxaRegions:"Doxa क्षेत्र",engagement:"सहभागिता प्रगति",gospelResources:"सुसमाचार संसाधन",languageFamilies:"भाषा परिवार",prayer:"प्रार्थना प्रगति",upg100List:"मेरी UPG 100 सूची"},header:{collapsed:"किंवदंती",peopleGroupFallback:"जनजाति समूह",default:"सूचकांक"},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:"जनसंख्या",name:"नाम"},footer:{total:"कुल"},sortByUpgs:"UUPG के अनुसार क्रमबद्ध करें",sortByPop:"जनसंख्या के अनुसार क्रमबद्ध करें",colLabel:{religion:"UUPG धर्म",prayer:"प्रार्थना स्थिति",engagement:"सहभागिता स्थिति",adoption:"गोद लेने की स्थिति",status:"स्थिति"},titleBar:{legend:"सूचकांक",peopleGroups:"जनसमूह",wagfRegions:"WAGF क्षेत्र",languages:"भाषाएँ"},tabInfo:{upg100Region:"क्षेत्र — UPG-100 सूचियों को विश्व क्षेत्र के अनुसार क्रमित करता है (अफ़्रीका, भारत, मध्य पूर्व, बधिर, …)। संख्याएँ उसके नीचे की हर सूची के UUPG और जनसंख्या का योग हैं।",upg100Zone:"UPG-100 सूचियाँ — हर एक किसी क्षेत्र के अनपहुँचे जनसमूहों की प्रार्थना सूची है, और यही मानचित्र बनाता और रंगता है। हर सूची अपने अलग पैकेट के रूप में छपती है।",upg100Group:"जनसमूह — किसी सूची के भीतर के अलग-अलग अनपहुँचे समूह, सबसे बड़ी प्रार्थना आवश्यकता पहले। मानचित्र का हर बिंदु इनमें से एक है।"},a11y:{expandRow:"{label} का विस्तार करें",collapseRow:"{label} को छोटा करें",clearSelection:"चयन हटाएँ"}},X$={menuComingSoon:"मेनू शीघ्र आ रहा है",pinHint:{tapDot:"किसी रंगीन बिंदु पर टैप करें — किसी को अभी भी प्रार्थना की आवश्यकता है"},upg100WallHeading:"मेरी UPG 100 सूची — प्रार्थना सूचियाँ और पोस्टर",upg100WallTag:"प्रार्थना लामबंदी",upg100WallIntro:"प्रार्थना के काम को पचास-पचास और सौ-सौ के समूहों में बाँटें — जैसे यीशु ने 5,000 लोगों को खिलाया (लूका 9:14)। हर पोस्टर 100 की एक सूची है जिसके लिए आप प्रार्थना कर सकते हैं, छाप सकते हैं और दीवार पर लगा सकते हैं — उनके लिए उनके जनसमूह के नाम से प्रार्थना करते हुए।"},Z$={clusterByRegion:"Doxa क्षेत्र के अनुसार",clusterByLanguageFamily:"भाषा परिवार के अनुसार",clusterByGospelResource:"सुसमाचार संसाधन के अनुसार"},J$={country:{wagfRegion:"WAGF क्षेत्र",wagfBlock:"WAGF ब्लॉक",country:"देश",uupgCount:"UUPG संख्या"}},Q$={header:"वर्तमान प्रार्थना चक्र",lap:"चक्र",upgs:"UUPGs",separator:" में से "},ey={"%count% people groups in %countries% countries":"%countries% देशों में %count% जनसमूह","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% में %countries% देशों में %count% लोगों के समूह हैं। प्रत्येक बिंदु का रंग दर्शाता है कि उस लोगों के समूह के लिए कितने लोग प्रार्थना कर रहे हैं।","1+ People Praying":"1+ लोग प्रार्थना कर रहे हैं","100+ People Praying":"100+ लोग प्रार्थना कर रहे हैं",Adopted:"गोद लिया गया","Adoption Progress":"गोद लेने की प्रगति","All Regions":"सभी क्षेत्र","Alternate Names":"वैकल्पिक नाम","Choose a region":"क्षेत्र चुनें","Clear All":"सभी साफ़ करें",Countries:"देश","Countries in this region":"इस क्षेत्र के देश",Country:"देश",Engaged:"संपर्कित","Engagement Progress":"संलग्नता की प्रगति","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"प्रत्येक असंलग्न जनसमूह जिसे प्रार्थना, दान और भेजने के लिए प्रतिबद्ध एक चर्च ने अपनाया है।","Exact Search":"सटीक खोज","Find unreached people groups by region and country.":"क्षेत्र और देश के अनुसार अगम्य लोगों के समूह खोजें।","Full Profile":"पूरी प्रोफ़ाइल",Goal:"लक्ष्य","Hide Filters":"फ़िल्टर छिपाएँ","Hide country posters":"देश के पोस्टर छिपाएँ",Intercessors:"मध्यस्थ","Load More":"और लोड करें","Loading results...":"परिणाम लोड हो रहे हैं..।",Map:"नक्शा","Mobilize 100+ people praying daily for each DOXA people group":"प्रत्येक DOXA जनसमूह के लिए प्रतिदिन प्रार्थना करने हेतु 100+ लोगों को सक्रिय करें।","No One Praying":"कोई प्रार्थना नहीं कर रहा","No options found":"कोई विकल्प नहीं मिला","No poster has been generated for this country yet.":"इस देश के लिए अभी तक कोई पोस्टर नहीं बना है।","No unengaged people groups by 2033":"2033 तक कोई भी संलग्न न किया गया जनसमूह नहीं रहेगा।","Not Adopted":"दत्तक नहीं लिया गया",Other:"अन्य","Page Not Found":"पृष्ठ नहीं मिला","People Group":"लोगों का समूह","People Groups":"जनसमूह","People committed to praying":"प्रार्थना के लिए प्रतिबद्ध लोग","Pick a region above, or click any dot to open that people group's country.":"ऊपर कोई क्षेत्र चुनें, या उस लोगों के समूह का देश खोलने के लिए किसी बिंदु पर क्लिक करें।","Pick a region or a country on the Regions List tab to narrow this dashboard.":"इस डैशबोर्ड को सीमित करने के लिए क्षेत्रों की सूची टैब में कोई क्षेत्र या देश चुनें।",Population:"जनसंख्या","Prayer Coverage":"प्रार्थना कवरेज","Prayer coverage progress":"प्रार्थना कवरेज की प्रगति","Region Dashboards":"क्षेत्र डैशबोर्ड","Region dashboard":"क्षेत्र डैशबोर्ड",Regions:"क्षेत्र","Regions List":"क्षेत्रों की सूची",Religion:"धर्म","Search names, country/continent, religions...":"नाम, देश/महाद्वीप, धर्म खोजें…","See %region% dashboard":"%region% डैशबोर्ड देखें","See All":"सभी देखें",Select:"चयन/छंटनी","Select View":"दृश्य चुनें","Show Filters":"फ़िल्टर दिखाएँ","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"%country% में %count% लोगों के समूह हैं। इस देश की सीमा पर स्थित लोगों के समूहों के लिए मानचित्र भी देखें।",Total:"संपूर्ण","Type to search...":"खोजने के लिए टाइप करें..।","Unengaged people groups":"अनसंपर्कित जनसमूह","View country posters":"देश के पोस्टर देखें",Views:"दृश्य","WAGF Block":"WAGF ब्लॉक","WAGF Region":"डब्ल्यूएजीएफ क्षेत्र","people groups adopted":"जनसमूह गोद लिए गए","people groups engaged":"संपर्कित जनसमूह","Outside this region":"इस क्षेत्र के बाहर",Pray:"प्रार्थना करें","Loading region dashboards…":"क्षेत्र डैशबोर्ड लोड हो रहे हैं…","No regions found.":"कोई क्षेत्र नहीं मिला।","Region data could not be loaded. This is a connection problem, not a filter.":"क्षेत्र डेटा लोड नहीं हो सका। यह कनेक्शन की समस्या है, फ़िल्टर की नहीं।","People groups could not be loaded. This is a connection problem, not a filter.":"लोकसमूह लोड नहीं हो सके। यह कनेक्शन की समस्या है, फ़िल्टर की नहीं।","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"नक्शा शुरू नहीं हो सका। यह नक्शा-टोकन या कनेक्शन की समस्या है, फ़िल्टर की नहीं — ऊपर के आंकड़े प्रभावित नहीं हैं।"},ty={placeholder:"लोग, स्थान, भाषा, धर्म",labels:{people:"लोग:",place:"स्थान:",language:"भाषा:",religion:"धर्म:"},sections:{within:"{selection} के भीतर",allData:"सभी DOXA डेटा"},kinds:{people:"जनसमूह + देश",peopleGroup:"जनसमूह",bloc:"समानता समूह",cluster:"जनसमूह क्लस्टर",country:"देश",region:"क्षेत्र",family:"भाषा परिवार",languageKind:"भाषा",dialect:"बोली",religionKind:"धर्म"}},oy={title:"प्लगइन स्टूडियो",navLabel:"क्षमता के अनुसार प्लगइन",countLabel:"{bundles} बंडल · यहाँ {elements} प्लगइन सूचीबद्ध",changeLanguage:"भाषा बदलें",copyEmbed:"एम्बेड कोड कॉपी करें",copy:"कॉपी करें",copied:"कॉपी हो गया",scriptEmbed:"स्क्रिप्ट एम्बेड",loading:"{name} लोड हो रहा है…",couldNotLoad:"{name} लोड नहीं हो सका।",chooseElement:"सूची से कोई प्लगइन चुनें।",filterPlaceholder:"प्लगइन फ़िल्टर करें",collapseAll:"सभी संक्षिप्त करें",noMatch:"“{query}” से कोई प्लगइन मेल नहीं खाता।",openSection:"{cap} खोलें, {label}",part:"भाग",noStandalone:"कोई अलग पेज नहीं",cap5:"ऐप शेल",cap4:"संयुक्त",cap3:"बहु-दृश्य",cap2:"प्रीसेट",cap1:"एकल",toggleList:"सूची दिखाएँ या छिपाएँ",openViews:"दृश्यों की सूची खोलें",expandList:"सूची फैलाएँ",collapseList:"सूची संक्षिप्त करें",collapse:"संक्षिप्त करें",partOf:"{name} का भाग, अलग से प्रकाशित नहीं"},ny={prayer:"प्रार्थना",adoption:"गोद लेना",engagement:"सहभागिता","affinity-blocks":"जनसमूह",regions:"क्षेत्र",countries:"देश","language-families":"भाषाएँ",religion:"धर्म",family:"भाषा परिवार",language:"भाषा",dialect:"बोली/रूप",bloc:"समानता समूह",cluster:"क्लस्टर",group:"जनसमूह",pgic:"देश में जनसमूह",region:"WAGF क्षेत्र",block:"WAGF ब्लॉक",country:"देश",upg100Region:"क्षेत्र",upg100Zone:"UPG-100 सूचियाँ",upg100Group:"जनसमूह",selectView:"दृश्य चुनें",views:"दृश्य",prayerResources:"प्रार्थना संसाधन",map:"मानचित्र"},ay={kicker:"DOXA · दर्शन",title:"हर जनसमूह। हर स्थान।",tagline:"दुनिया के हर जनसमूह से उन तक जिनके लिए DOXA प्रार्थना करता है, आँकड़ों से गिने गए।",funnelLabel:"सभी जनसमूहों से DOXA जनसमूहों तक",allLabel:"जनसमूह",allNote:"हर जनसमूह, हर उस देश में जहाँ वह रहता है",unreachedLabel:"अप्रचारित",unreachedNote:"2% से कम इवेंजेलिकल",frontierLabel:"सीमांत",frontierNote:"0.1% से कम इवेंजेलिकल",doxaLabel:"DOXA जनसमूह",doxaNote:"इनमें से {frontier} सीमांत हैं",people:"{n} लोग",sources:"जनसमूह: {imb}, {date} के आँकड़े। DOXA सूची: pray.doxa.life, {date2}।",howCounted:"ये कैसे गिने गए",ruleAll:"IMB जनसमूह आँकड़ों की हर पंक्ति: एक देश में एक जनसमूह।",ruleUnreached:"IMB लॉस्टनेस प्राथमिकता 0 से 2: 2% से कम इवेंजेलिकल।",ruleFrontier:"IMB लॉस्टनेस प्राथमिकता 0: 0.1% से कम इवेंजेलिकल। अप्रचारितों का एक भाग।",ruleDoxa:"DOXA प्रार्थना सूची का हर समूह, जनसमूह और देश के आधार पर IMB आँकड़ों से मिलाया गया। सभी सीमांत नहीं हैं।"},sy={title:"Tutti i gruppi etnici",locations:"{n} località (gruppo × paese)",doxa:"Gruppi etnici DOXA",frontier:"Frontiera — non è iniziato nulla",unreached:"Non raggiunti — il lavoro inizia",reached:"Raggiunti — la chiesa c’è",hint:"Fai clic su una riga per vederli tutti · di nuovo per vedere tutto",loading:"Caricamento di tutti i gruppi etnici…",loadError:"Impossibile caricare la mappa.",pray:"Prega per loro →",population:"pop. {n}"},ry={backToLegend:"Torna alla legenda",closeDetailView:"Chiudi vista dettaglio",collapseLegend:"Comprimi la legenda",expandLegend:"Espandi la legenda",toggleLegend:"Mostra o nascondi la legenda"},iy={prayForThem:"Prega per loro",adoptThem:"Adottali",moreInfo:"Più informazioni",zoomIn:"Ingrandisci",zoomOut:"Riduci",switchToLightMode:"Passa alla modalità chiara",switchToDarkMode:"Passa alla modalità scura",resetView:"Reimposta vista",toggleFullscreen:"Attiva/disattiva schermo intero",aboutThisMap:"Informazioni su questa mappa",closeMenu:"Chiudi menu",reloadMap:"Ricarica mappa",showClusters:"Mostra cluster",clusterSettings:"Impostazioni cluster",startAutoFly:"Avvia volo automatico",stopFlight:"Ferma volo",speedLabel:"Velocità:",speedOption:{slow:"Lenta",normal:"Normale",fast:"Veloce"},shareEmbed:"Condividi e incorpora",posterMap:"Mappa del poster",prayerList:"Lista di preghiera",cardDeck:"Mazzo di carte",printOptions:"Opzioni di stampa",showOnMap:"Mostra sulla mappa",close:"Chiudi",showOnMapAria:"Mostra {label} sulla mappa",cardStockAria:"Formato della scheda di preghiera",previewPrintPoster:"Anteprima e stampa del poster {label}",share:"Condividi",shareSteps:["Incorpora questa mappa nel tuo sito","Fai un elenco dei siti web della tua città","Insegna loro a incorporarla a loro volta","Insegna loro a formare altri a incorporarla","Moltiplichiamo le mappe ovunque per Gesù!"],clearSelection:"Cancella la selezione",noOptions:"Nessuna opzione trovata",renderingLocal:"Un’immagine con qualità di stampa viene generata nel tuo browser: nulla viene caricato.",postersPerRow:"Poster per riga"},ly={title:"Accesso a internet dove vivono i popoli senza impegno",bands:{yes:"connesso 60%+",partial:"parziale 25–59%",no:"basso, sotto il 25%",unknown:"non misurato"},peopleGroup:"popolo",caveat:"Dati NAZIONALI (Banca Mondiale). La connettività per città non è disponibile pubblicamente: non dedurre una città dal suo paese.",sheet:{close:"Chiudi",ai:"Questi dati provengono da una ricerca approfondita con IA e possono contenere informazioni errate.",dismiss:"Ignora",internetUsers:"Utenti internet",measured:"Misurato",mobilePer100:"Cellulari ogni 100",peopleGroups:"Popoli",topPlatform:"Piattaforma principale",unknown:"sconosciuto",carriers:"Operatori e ISP ({n})",socialPlatforms:"Piattaforme social",note:"Dati nazionali, non misure per città. I nomi degli operatori sono titolari di registri ASN (includono banche e università oltre agli ISP), quindi l'etichetta di operatore è un'euristica basata sul nome, non una classificazione verificata."}},cy={research_controls:"Controlli di ricerca",clustering:"Raggruppamento",filters:"Filtri",pin_dim:"Opacità dei punti",export_poster:"Esporta poster…",reload_data:"Ricarica i dati",off:"Disattivato",native:"Nativo",mst:"MST",network:"Rete",off_desc:"Mostra ogni punto singolarmente",native_desc:"Cluster circolari Mapbox (il più veloce)",mst_desc:"Reti di affinità ad albero ricoprente minimo",network_desc:"Linee verso il vicino più prossimo",search_languages:"Cerca lingue…",search_religions:"Cerca religioni…",reset_all:"Reimposta tutto",no_languages:"Nessuna lingua ancora caricata",no_religions:"Nessuna religione ancora caricata",unadopted:"Non adottato",min:"min",max:"max",adopted:"Adottato",adoption:"Adozione",engaged:"Coinvolto",engagement:"Impegno",unengaged:"Necessita impegno",language:"Lingua",religion:"Religione",population:"Popolazione",any:"Tutti",active_count:"{n} attivi",prayer_status:"Stato di preghiera",close:"Chiudi",clear:"Cancella",map_controls:"Controlli della mappa"},uy={bloc:"Blocco di affinità",gospel_access:"Accesso al vangelo",people:"Popoli",people_name:"Popolo (nome)",praying:"In preghiera",religion_family:"Famiglia religiosa",search_language:"Cerca lingua",search_people:"Cerca popolo",search_place:"Cerca luogo",search_religion:"Cerca religione",upgs_in_scope:"UPG nell’ambito",countries_touched:"paesi toccati",unreached:"non raggiunti",sum_population:"Σ popolazione",sum_praying:"Σ in preghiera",charts:"Grafici",table:"Tabella",cluster:"Cluster",country:"Paese",engagement:"Impegno",language:"Lingua",language_family:"Famiglia linguistica",people_group:"Popolo",population:"Popolazione",prayer:"Preghiera",region:"Regione",religion:"Religione",status:"Stato",adopted:"Adottato",filters:"Filtri",gospel_resources:"Risorse del Vangelo",map:"Mappa",search_placeholder:"Cerca popoli, luoghi, lingue, religioni…",any:"Tutti",active_count:"{n} attivi",prayer_status:"Stato di preghiera",map_controls:"Controlli della mappa",close:"Chiudi",clear:"Cancella",dashboard_title:"Cruscotto di ricerca generale",align_dashboard:"Allinea cruscotto",align_dashboard_tip:"Ripristina la disposizione predefinita del cruscotto",selected:"Selezionato",world:"Mondo",vertical_legend:"Legenda verticale",groups_in_scope:"popoli nell’ambito",filter_by:"Filtra per",remove_filter:"Rimuovi filtro",groups:"popoli",expand:"Espandi",collapse:"Comprimi",place:"Luogo"},py={labels:{country:"Paese:",population:"Popolazione:",language:"Lingua:",religion:"Religione:",languageFamily:"Famiglia linguistica:",peopleCommitted:"Impegnati a pregare:"},messages:{noDescription:"Nessuna descrizione disponibile."}},dy={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Le note esplicative qui sotto sono in inglese."},mode:{gap:"Divario",coverage:"Risorse trovate"},search:{placeholder:"Cerca un popolo, una lingua o un codice ISO",clear:"Cancella ricerca",none:"Nessuna corrispondenza per quel nome, lingua o codice.",placeholderShort:"Popolo, lingua o codice ISO"},legend:{title:"Popoli non raggiunti senza alcuna risorsa del vangelo",band60:"60%+ senza nulla",band30:"30–59%",bandSome:"alcuni popoli",bandAll:"tutti i popoli hanno qualcosa",tier2:"Scritture e film",tier1:"qualche risorsa trovata",tier0:"nulla trovato",hnr:"possono ascoltarlo, nessun testo",showAll:"Mostra tutti i popoli",titleCoverage:"Popoli non raggiunti con qualche risorsa del vangelo",cov80:"80%+ hanno qualcosa",cov50:"50–79%",cov1:"1–49%",cov0:"nulla per nessuno",tallyEach:"Ogni",tallyIs:"è UN popolo —",tallyOf:"di questi,",tallyLink:"con un link",doxa0:"tutti hanno qualcosa",doxa1:"1–4 senza nulla",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 raggiunti",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Popoli Doxa su questa mappa",notPlaced:"in elenco, non ancora collocati",outOfScope:"nessun popolo Doxa — non colorato"},tabs:{groups:"Popoli più numerosi",countries:"Per paese",regions:"Per regione",noprayer:"Nessuno prega",hnr:"Ascoltano, senza testo"},stat:{language:"Lingua",population:"Popolazione",countries:"Paesi",peopleGroups:"Popoli",noResource:"Nessuna risorsa trovata",peopleAffected:"Persone coinvolte",haveScripture:"Hanno le Scritture",haveFilm:"Hanno il film",haveAudio:"Hanno le Scritture in audio",signLanguages:"Lingue dei segni",growingUnreached:"In crescita e non raggiunti",deathsDay:"Decessi stimati/giorno"},sheet:{ownLanguage:"Nella loro lingua",close:"Chiudi",loading:"Caricamento risorse…",pray:"Prega per",everyResource:"Tutte le risorse in",alsoSpeak:"Parlano anche"},res:{scripture:"Scritture",film:"Film",audio:"Audio",bibleVideo:"Video biblico",bibleStories:"Open Bible Stories",gospelAudio:"Audio del Vangelo",gospelPresentation:"Presentazione del Vangelo",scriptureEarth:"Scripture Earth",training:"Formazione al discepolato",jesusFilm:"Film GESÙ"},state:{noneFound:"nulla trovato",noneAtFcbh:"nulla presso FCBH",noneAtGrn:"nulla presso GRN",notInZume:"non tra le 54 di Zume",linkChecked:"link verificato",unchecked:"non verificato",linkDead:"link non attivo",wrongLanguage:"lingua errata",varietyNotStated:"(varietà non indicata)",inLanguage:"in"},guide:{dotVsCountry:"Ogni punto è UN popolo di Doxa con la sua lingua; un paese è il NUMERO di quei popoli.",noneFoundShort:"«Nulla trovato» significa assente dalle fonti controllate, mai la prova che non esista.",tapCountry:"Tocca un paese per vedere le risorse, popolo per popolo."},tables:{title:"Risorse del Vangelo — Dati",showing:"Mostrando",of:"di",for:"per",filteredTo:"Filtrato per",showAll:"Mostra tutte le risorse",t_doxa:"Doxa — Accesso al Vangelo",t_links:"Ogni risorsa + link",t_nothing:"Dove non si è trovato nulla",t_countrygap:"Il divario per paese",t_translation:"Ascoltano, senza testo",t_translationcountry:"Dove tradurre",t_gaps:"Divari e opportunità",t_bridges:"Ponti urbani",t_deaf:"Il divario sordo",t_resources:"Risorse per popolo",t_languages:"Lingue per paese",t_growth:"Accesso vs crescita"},pages:{listTitle:"Risorse del Vangelo per lingua",chartsTitle:"Risorse del Vangelo — per lingua",loadingTables:"Caricamento delle tabelle…"},list:{noText:"Nessun testo biblico",hasScripture:"Ha le Scritture",allLanguages:"Tutte le lingue",peopleGroup:"popolo",peopleGroups:"popoli",scriptureHere:"Scritture in questa lingua"},columns:{"People group":"Popolo",Country:"Paese",Region:"Regione",Language:"Lingua",Population:"Popolazione",Religion:"Religione","Gospel access":"Accesso al Vangelo",Resources:"Risorse",Scripture:"Scritture","Bible video":"Video biblico","Gospel presentation":"Presentazione del Vangelo",Countries:"Paesi","People groups":"Popoli"}},gy={search:"Cerca popoli…",hide_filters:"Nascondi filtri",show_filters:"Mostra filtri",total:"Totale",showing:"Mostrati",load_more:"Carica altro",full_profile:"Profilo completo",wagf_region:"Regione",wagf_block:"Blocco di affinità",rop1:"Popolo",religion:"Religione",exact_filter:"Esatto",clear_all:"Cancella tutto",loading:"Caricamento…",no_results:"Nessun popolo corrisponde a questo filtro.",type_to_search:"Digita per cercare...",load_failed:"Impossibile caricare i dati dei popoli. È un problema di connessione, non del filtro."},fy={title:{adoption:"Avanzamento dell'adozione",affinityBlocs:"Blocchi di affinità",doxaRegions:"Regioni Doxa",engagement:"Avanzamento dell'impegno",gospelResources:"Risorse del Vangelo",languageFamilies:"Famiglie linguistiche",prayer:"Avanzamento della preghiera",upg100List:"La mia lista UPG 100"},header:{collapsed:"Legenda",peopleGroupFallback:"Gruppo di persone",default:"Legenda"},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",name:"Nome"},footer:{total:"Totale"},sortByUpgs:"Ordina per UUPG",sortByPop:"Ordina per popolazione",colLabel:{religion:"Religioni UUPG",prayer:"Stato della preghiera",engagement:"Stato dell'impegno",adoption:"Stato dell'adozione",status:"Stato"},titleBar:{legend:"Legenda",peopleGroups:"Popoli",wagfRegions:"Regioni WAGF",languages:"Lingue"},tabInfo:{upg100Region:"Regione — ordina le liste UPG-100 per area del mondo (Africa, India, Medio Oriente, Sordi, …). I totali sono gli UUPG e la popolazione sommati di ogni lista sottostante.",upg100Zone:"Liste UPG-100 — ognuna è una lista di preghiera dei gruppi etnici non raggiunti di un’area, ed è ciò che la mappa disegna e colora. Ogni lista si stampa come il proprio fascicolo.",upg100Group:"Gruppo etnico — i singoli gruppi non raggiunti dentro una lista, prima quelli con maggiore bisogno di preghiera. Ogni punto della mappa è uno di questi."},a11y:{expandRow:"Espandi {label}",collapseRow:"Comprimi {label}",clearSelection:"Cancella la selezione"}},hy={menuComingSoon:"Menu in arrivo",pinHint:{tapDot:"Tocca un punto colorato — qualcuno ha ancora bisogno di preghiera"},upg100WallHeading:"La mia lista UPG 100 — Liste di preghiera e poster",upg100WallTag:"Mobilitazione alla preghiera",upg100WallIntro:"Distribuisci il compito della preghiera in gruppi di cinquanta e di cento — come Gesù sfamò i 5.000 (Luca 9:14). Ogni poster è una lista di 100 che puoi pregare, stampare e appendere al muro — pregando per loro con il nome del loro popolo."},my={clusterByRegion:"Per regione Doxa",clusterByLanguageFamily:"Per famiglia linguistica",clusterByGospelResource:"Per risorsa del Vangelo"},by={country:{wagfRegion:"Regione WAGF",wagfBlock:"Blocco WAGF",country:"Paese",uupgCount:"Numero di UUPG"}},$y={header:"GIRO DI PREGHIERA ATTUALE",lap:"Giro",upgs:"UUPGs",separator:" di "},yy={"%count% people groups in %countries% countries":"%count% popoli in %countries% paesi","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% conta %count% popoli in %countries% paesi. Il colore di ogni punto indica quante persone pregano per quel popolo.","1+ People Praying":"1+ persone in preghiera","100+ People Praying":"100+ persone in preghiera",Adopted:"Adottato","Adoption Progress":"Avanzamento dell'adozione","All Regions":"Tutte le regioni","Alternate Names":"Nomi alternativi","Choose a region":"Scegli una regione","Clear All":"Cancella tutto",Countries:"Paesi","Countries in this region":"Paesi di questa regione",Country:"Paese",Engaged:"Coinvolto","Engagement Progress":"Avanzamento dell'impegno","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Ogni popolo non ancora raggiunto adottato da una chiesa impegnata nella preghiera, nel dare e nell'inviare","Exact Search":"Ricerca esatta","Find unreached people groups by region and country.":"Trova i popoli non raggiunti per regione e paese.","Full Profile":"Profilo completo",Goal:"Obiettivo","Hide Filters":"Nascondi i filtri","Hide country posters":"Nascondi i poster del paese",Intercessors:"Intercessori","Load More":"Carica altri","Loading results...":"Caricamento dei risultati…",Map:"Mappa","Mobilize 100+ people praying daily for each DOXA people group":"Mobilitare oltre 100 persone che pregano ogni giorno per ciascun popolo DOXA","No One Praying":"Nessuno prega","No options found":"Nessuna opzione trovata","No poster has been generated for this country yet.":"Per questo paese non è ancora stato generato alcun poster.","No unengaged people groups by 2033":"Nessun popolo senza impegno entro il 2033","Not Adopted":"Non adottato",Other:"Altro","Page Not Found":"Pagina non trovata","People Group":"Popolo","People Groups":"Popoli","People committed to praying":"Persone impegnate a pregare","Pick a region above, or click any dot to open that people group's country.":"Scegli una regione qui sopra, oppure clicca su un punto per aprire il paese di quel gruppo etnico.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Scegli una regione o un paese nella scheda Elenco delle regioni per restringere questo cruscotto.",Population:"Popolazione","Prayer Coverage":"Copertura della preghiera","Prayer coverage progress":"Avanzamento della copertura di preghiera","Region Dashboards":"Cruscotti delle regioni","Region dashboard":"Cruscotto della regione",Regions:"Regioni","Regions List":"Elenco delle regioni",Religion:"Religione","Search names, country/continent, religions...":"Cerca nomi, paese/continente, religioni…","See %region% dashboard":"Vedi il cruscotto di %region%","See All":"Vedi tutto",Select:"Seleziona","Select View":"Seleziona vista","Show Filters":"Mostra i filtri","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"In %country% ci sono %count% popoli. Controlla sulla mappa anche i popoli ai confini di questo paese.",Total:"Totale","Type to search...":"Digita per cercare…","Unengaged people groups":"Popoli senza impegno","View country posters":"Vedi i poster del paese",Views:"Viste","WAGF Block":"Blocco WAGF","WAGF Region":"Regione WAGF","people groups adopted":"popoli adottati","people groups engaged":"popoli coinvolti","Outside this region":"Fuori da questa regione",Pray:"Prega","Loading region dashboards…":"Caricamento delle dashboard delle regioni…","No regions found.":"Nessuna regione trovata.","Region data could not be loaded. This is a connection problem, not a filter.":"Non è stato possibile caricare i dati delle regioni. È un problema di connessione, non un filtro.","People groups could not be loaded. This is a connection problem, not a filter.":"Non è stato possibile caricare i gruppi di popolazione. È un problema di connessione, non un filtro.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"La mappa non è potuta avviare. È un problema di token della mappa o di connessione, non un filtro: i dati sopra non sono interessati."},_y={placeholder:"Popolo, luogo, lingua, religione",labels:{people:"Popolo:",place:"Luogo:",language:"Lingua:",religion:"Religione:"},sections:{within:"In {selection}",allData:"Tutti i dati DOXA"},kinds:{people:"Popolo + paese",peopleGroup:"Popolo",bloc:"Blocco di affinità",cluster:"Cluster di popoli",country:"Paese",region:"Regione",family:"Famiglia linguistica",languageKind:"Lingua",dialect:"Dialetto",religionKind:"Religione"}},vy={title:"Studio dei plugin",navLabel:"Plugin per capacità",countLabel:"{bundles} pacchetti · {elements} plugin elencati qui",changeLanguage:"Cambia lingua",copyEmbed:"Copia codice di incorporamento",copy:"Copia",copied:"Copiato",scriptEmbed:"Incorporamento tramite script",loading:"Caricamento di {name}…",couldNotLoad:"Impossibile caricare {name}.",chooseElement:"Scegli un plugin dall’elenco.",filterPlaceholder:"Filtra i plugin",collapseAll:"Comprimi tutto",noMatch:"Nessun plugin corrisponde a «{query}».",openSection:"Apri {cap}, {label}",part:"parte",noStandalone:"nessuna pagina propria",cap5:"Shell dell’app",cap4:"Composito",cap3:"Multivista",cap2:"Preimpostato",cap1:"Singolo",toggleList:"Mostra o nascondi l’elenco",openViews:"Apri l’elenco delle viste",expandList:"Espandi l’elenco",collapseList:"Comprimi l’elenco",collapse:"Comprimi",partOf:"parte di {name}, non pubblicata da sola"},wy={prayer:"Preghiera",adoption:"Adozione",engagement:"Impegno","affinity-blocks":"Popoli",regions:"Regioni",countries:"Paesi","language-families":"Lingue",religion:"Religioni",family:"Famiglia ling.",language:"Lingua",dialect:"Dialetto/Variante",bloc:"Blocco di affinità",cluster:"Cluster",group:"Popolo",pgic:"Popolo nel paese",region:"Regione WAGF",block:"Blocco WAGF",country:"Paese",upg100Region:"Regione",upg100Zone:"Liste UPG-100",upg100Group:"Gruppo etnico",selectView:"Seleziona vista",views:"Viste",prayerResources:"Risorse di preghiera",map:"Mappa"},ky={kicker:"DOXA · Visione",title:"Ogni popolo. Ogni luogo.",tagline:"Da tutti i gruppi etnici del mondo a quelli per cui DOXA prega, contati dai dati.",funnelLabel:"Da tutti i gruppi etnici ai gruppi etnici DOXA",allLabel:"Gruppi etnici",allNote:"ogni gruppo etnico, in ogni paese in cui vive",unreachedLabel:"Non raggiunti",unreachedNote:"meno del 2% evangelici",frontierLabel:"Frontiera",frontierNote:"meno dello 0,1% evangelici",doxaLabel:"Gruppi etnici DOXA",doxaNote:"{frontier} di questi sono di frontiera",people:"{n} persone",sources:"Gruppi etnici: {imb}, dati del {date}. Elenco DOXA: pray.doxa.life, {date2}.",howCounted:"Come vengono contati",ruleAll:"Ogni riga dei dati IMB sui gruppi etnici: un gruppo etnico in un paese.",ruleUnreached:"Priorità di perdizione IMB da 0 a 2: meno del 2% evangelici.",ruleFrontier:"Priorità di perdizione IMB 0: meno dello 0,1% evangelici. Un sottoinsieme dei non raggiunti.",ruleDoxa:"Ogni gruppo dell’elenco di preghiera DOXA, abbinato ai dati IMB per popolo e paese. Non tutti sono di frontiera."},xy={title:"Todos os grupos étnicos",locations:"{n} locais (grupo × país)",doxa:"Grupos étnicos da DOXA",frontier:"Fronteira — nada iniciado",unreached:"Não alcançados — o trabalho começa",reached:"Alcançados — a igreja está lá",hint:"Clique em uma linha para ver todos · clique de novo para ver tudo",loading:"Carregando todos os grupos étnicos…",loadError:"Não foi possível carregar o mapa.",pray:"Ore por eles →",population:"pop. {n}"},Ly={backToLegend:"Voltar à legenda",closeDetailView:"Fechar vista de detalhe",collapseLegend:"Recolher a legenda",expandLegend:"Expandir a legenda",toggleLegend:"Mostrar ou ocultar a legenda"},Ay={prayForThem:"Ore por eles",adoptThem:"Adote-os",moreInfo:"Mais informações",zoomIn:"Ampliar",zoomOut:"Reduzir",switchToLightMode:"Mudar para modo claro",switchToDarkMode:"Mudar para modo escuro",resetView:"Repor vista",toggleFullscreen:"Alternar ecrã inteiro",aboutThisMap:"Sobre este mapa",closeMenu:"Fechar menu",reloadMap:"Recarregar mapa",showClusters:"Mostrar clusters",clusterSettings:"Definições de clusters",startAutoFly:"Iniciar voo automático",stopFlight:"Parar voo",speedLabel:"Velocidade:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Partilhar e incorporar",posterMap:"Mapa do cartaz",prayerList:"Lista de oração",cardDeck:"Baralho de cartões",printOptions:"Opções de impressão",showOnMap:"Ver no mapa",close:"Fechar",showOnMapAria:"Ver {label} no mapa",cardStockAria:"Tamanho do cartão de oração",previewPrintPoster:"Pré-visualizar e imprimir o cartaz de {label}",share:"Partilhar",shareSteps:["Incorpore este mapa no seu site","Faça uma lista dos sites da sua cidade","Ensine-os a incorporá-lo também","Ensine-os a ensinar outros a incorporá-lo","Multipliquemos mapas por toda a parte para Jesus!"],clearSelection:"Limpar a seleção",noOptions:"Nenhuma opção encontrada",renderingLocal:"Uma imagem com qualidade de impressão está a ser gerada no seu navegador — nada é enviado.",postersPerRow:"Cartazes por linha"},Sy={title:"Acesso à internet onde vivem os povos sem envolvimento",bands:{yes:"conectado 60%+",partial:"parcial 25–59%",no:"baixo, abaixo de 25%",unknown:"não medido"},peopleGroup:"povo",caveat:"Números NACIONAIS (Banco Mundial). A conectividade por cidade não está disponível publicamente — não deduza uma cidade a partir do país.",sheet:{close:"Fechar",ai:"Estes dados foram encontrados por pesquisa aprofundada com IA — podem conter informações falsas.",dismiss:"Dispensar",internetUsers:"Usuários de internet",measured:"Medido",mobilePer100:"Celulares por 100",peopleGroups:"Povos",topPlatform:"Plataforma principal",unknown:"desconhecido",carriers:"Operadoras e provedores ({n})",socialPlatforms:"Redes sociais",note:"Números nacionais, não medições por cidade. Os nomes das operadoras são titulares de registros ASN (incluem bancos e universidades além de provedores), então a marcação de operadora é uma heurística pelo nome, não uma classificação verificada."}},Py={research_controls:"Controlos de pesquisa",clustering:"Agrupamento",filters:"Filtros",pin_dim:"Esbater pontos",export_poster:"Exportar cartaz…",reload_data:"Recarregar dados",off:"Desligado",native:"Nativo",mst:"MST",network:"Rede",off_desc:"Mostrar cada ponto individualmente",native_desc:"Grupos circulares Mapbox (mais rápido)",mst_desc:"Redes de afinidade por árvore geradora mínima",network_desc:"Linhas para o vizinho mais próximo",search_languages:"Pesquisar idiomas…",search_religions:"Pesquisar religiões…",reset_all:"Repor tudo",no_languages:"Ainda não há idiomas carregados",no_religions:"Ainda não há religiões carregadas",unadopted:"Não adotado",min:"mín",max:"máx",adopted:"Adotado",adoption:"Adoção",engaged:"Engajado",engagement:"Engajamento",unengaged:"Precisa de envolvimento",language:"Idioma",religion:"Religião",population:"População",any:"Qualquer",active_count:"{n} ativos",prayer_status:"Estado de oração",close:"Fechar",clear:"Limpar",map_controls:"Controlos do mapa"},Cy={bloc:"Bloco de afinidade",gospel_access:"Acesso ao evangelho",people:"Povos",people_name:"Povo (nome)",praying:"A orar",religion_family:"Família religiosa",search_language:"Pesquisar idioma",search_people:"Pesquisar povo",search_place:"Pesquisar lugar",search_religion:"Pesquisar religião",upgs_in_scope:"UPG no âmbito",countries_touched:"países alcançados",unreached:"não alcançados",sum_population:"Σ população",sum_praying:"Σ a orar",charts:"Gráficos",table:"Tabela",cluster:"Agrupamento",country:"País",engagement:"Engajamento",language:"Idioma",language_family:"Família linguística",people_group:"Povo",population:"População",prayer:"Oração",region:"Região",religion:"Religião",status:"Status",adopted:"Adotado",filters:"Filtros",gospel_resources:"Recursos do Evangelho",map:"Mapa",search_placeholder:"Pesquisar povos, lugares, idiomas, religiões…",any:"Qualquer",active_count:"{n} ativos",prayer_status:"Estado de oração",map_controls:"Controlos do mapa",close:"Fechar",clear:"Limpar",dashboard_title:"Painel de pesquisa geral",align_dashboard:"Alinhar painel",align_dashboard_tip:"Repor a disposição do painel para o alinhamento predefinido",selected:"Selecionado",world:"Mundo",vertical_legend:"Legenda vertical",groups_in_scope:"povos no âmbito",filter_by:"Filtrar por",remove_filter:"Remover filtro",groups:"povos",expand:"Expandir",collapse:"Recolher",place:"Lugar"},Ey={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."}},Ty={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"As notas explicativas abaixo estão em inglês."},mode:{gap:"Lacuna",coverage:"Recursos encontrados"},search:{placeholder:"Procure um povo, idioma ou código ISO",clear:"Limpar busca",none:"Nada corresponde a esse nome, idioma ou código.",placeholderShort:"Povo, idioma ou código ISO"},legend:{title:"Povos não alcançados sem nenhum recurso do evangelho",band60:"60%+ sem nada encontrado",band30:"30–59%",bandSome:"alguns povos",bandAll:"todos os povos têm algo",tier2:"Escrituras e filme",tier1:"algum recurso encontrado",tier0:"nada encontrado",hnr:"podem ouvir, sem texto",showAll:"Mostrar todos os povos",titleCoverage:"Povos não alcançados com algum recurso do evangelho",cov80:"80%+ têm algo",cov50:"50–79%",cov1:"1–49%",cov0:"nada para ninguém",tallyEach:"Cada",tallyIs:"é UM povo —",tallyOf:"deles,",tallyLink:"com um link",doxa0:"todos têm algo",doxa1:"1–4 sem nada",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 alcançados",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Povos Doxa neste mapa",notPlaced:"na lista, ainda sem localização",outOfScope:"sem povos Doxa — sem cor"},tabs:{groups:"Maiores povos",countries:"Por país",regions:"Por região",noprayer:"Ninguém orando",hnr:"Ouvem, sem texto"},stat:{language:"Idioma",population:"População",countries:"Países",peopleGroups:"Povos",noResource:"Nenhum recurso encontrado",peopleAffected:"Pessoas afetadas",haveScripture:"Têm Escrituras",haveFilm:"Têm filme",haveAudio:"Têm Escrituras em áudio",signLanguages:"Línguas de sinais",growingUnreached:"Em crescimento e não alcançados",deathsDay:"Mortes estimadas/dia"},sheet:{ownLanguage:"No próprio idioma",close:"Fechar",loading:"Carregando recursos…",pray:"Ore por",everyResource:"Todos os recursos em",alsoSpeak:"Também falam"},res:{scripture:"Escrituras",film:"Filme",audio:"Áudio",bibleVideo:"Vídeo bíblico",bibleStories:"Open Bible Stories",gospelAudio:"Áudio do evangelho",gospelPresentation:"Apresentação do evangelho",scriptureEarth:"Scripture Earth",training:"Treinamento de discipulado",jesusFilm:"Filme JESUS"},state:{noneFound:"nada encontrado",noneAtFcbh:"nada na FCBH",noneAtGrn:"nada na GRN",notInZume:"não está entre as 54 da Zume",linkChecked:"link verificado",unchecked:"não verificado",linkDead:"link inativo",wrongLanguage:"idioma incorreto",varietyNotStated:"(variedade não indicada)",inLanguage:"em"},guide:{dotVsCountry:"Cada ponto é UM povo da Doxa e o seu próprio idioma; um país é o NÚMERO desses povos.",noneFoundShort:"«Nada encontrado» significa ausente das fontes verificadas, nunca prova de que não exista.",tapCountry:"Toque num país para ver os recursos, povo a povo."},tables:{title:"Recursos do evangelho — Dados",showing:"Mostrando",of:"de",for:"para",filteredTo:"Filtrado por",showAll:"Mostrar todos os recursos",t_doxa:"Doxa — Acesso ao evangelho",t_links:"Cada recurso + link",t_nothing:"Onde nada foi encontrado",t_countrygap:"A lacuna por país",t_translation:"Ouvem, sem texto",t_translationcountry:"Onde traduzir",t_gaps:"Lacunas e oportunidades",t_bridges:"Pontes urbanas",t_deaf:"A lacuna surda",t_resources:"Recursos por povo",t_languages:"Idiomas por país",t_growth:"Acesso vs crescimento"},pages:{listTitle:"Recursos do evangelho por idioma",chartsTitle:"Recursos do evangelho — por idioma",loadingTables:"Carregando tabelas de recursos…"},list:{noText:"Sem texto bíblico",hasScripture:"Tem Escrituras",allLanguages:"Todos os idiomas",peopleGroup:"povo",peopleGroups:"povos",scriptureHere:"Escrituras neste idioma"},columns:{"People group":"Povo",Country:"País",Region:"Região",Language:"Idioma",Population:"População",Religion:"Religião","Gospel access":"Acesso ao evangelho",Resources:"Recursos",Scripture:"Escrituras","Bible video":"Vídeo bíblico","Gospel presentation":"Apresentação do evangelho",Countries:"Países","People groups":"Povos"}},Ny={search:"Pesquisar povos…",hide_filters:"Ocultar filtros",show_filters:"Mostrar filtros",total:"Total",showing:"Mostrando",load_more:"Carregar mais",full_profile:"Perfil completo",wagf_region:"Região",wagf_block:"Bloco de afinidade",rop1:"Povo",religion:"Religião",exact_filter:"Exato",clear_all:"Limpar tudo",loading:"A carregar…",no_results:"Nenhum povo corresponde a este filtro.",type_to_search:"Escreva para pesquisar...",load_failed:"Não foi possível carregar os dados dos povos. É um problema de ligação, não do seu filtro."},Ry={title:{adoption:"Progresso da adoção",affinityBlocs:"Blocos de afinidade",doxaRegions:"Regiões Doxa",engagement:"Progresso do envolvimento",gospelResources:"Recursos do Evangelho",languageFamilies:"Famílias linguísticas",prayer:"Progresso da oração",upg100List:"A minha lista UPG 100"},header:{collapsed:"Legenda",peopleGroupFallback:"Grupo de pessoas",default:"Legenda"},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"},tabInfo:{upg100Region:"Região — ordena as listas UPG-100 por área do mundo (África, Índia, Oriente Médio, Surdos, …). Os totais são os UUPG e a população somados de todas as listas abaixo dela.",upg100Zone:"Listas UPG-100 — cada uma é uma lista de oração dos grupos étnicos não alcançados de uma área, e é o que o mapa pinta e colore. Cada lista é impressa como seu próprio pacote.",upg100Group:"Grupo étnico — os grupos não alcançados dentro de uma lista, primeiro os de maior necessidade de oração. Cada ponto do mapa é um deles."},a11y:{expandRow:"Expandir {label}",collapseRow:"Recolher {label}",clearSelection:"Limpar a seleção"}},My={menuComingSoon:"Menu em breve",pinHint:{tapDot:"Toque num ponto colorido — alguém ainda precisa de oração"},upg100WallHeading:"A minha lista UPG 100 — Listas de oração e cartazes",upg100WallTag:"Mobilização de oração",upg100WallIntro:"Reparta a tarefa da oração em grupos de cinquenta e de cem — como Jesus alimentou os 5.000 (Lucas 9:14). Cada cartaz é uma lista de 100 que pode orar, imprimir e pôr na parede — orando por eles pelo nome do seu povo."},Fy={clusterByRegion:"Por região Doxa",clusterByLanguageFamily:"Por família linguística",clusterByGospelResource:"Por recurso do Evangelho"},Iy={country:{wagfRegion:"Região WAGF",wagfBlock:"Bloco WAGF",country:"País",uupgCount:"Número de UUPG"}},Oy={header:"VOLTA DE ORAÇÃO ATUAL",lap:"Volta",upgs:"UUPGs",separator:" de "},Dy={"%count% people groups in %countries% countries":"%count% grupos étnicos em %countries% países","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% tem %count% grupos étnicos em %countries% países. A cor de cada ponto indica quantas pessoas oram por esse grupo étnico.","1+ People Praying":"1+ pessoas orando","100+ People Praying":"100+ pessoas orando",Adopted:"Adotado","Adoption Progress":"Progresso da adoção","All Regions":"Todas as regiões","Alternate Names":"Nomes alternativos","Choose a region":"Escolha uma região","Clear All":"Limpar tudo",Countries:"Países","Countries in this region":"Países desta região",Country:"País",Engaged:"Engajado","Engagement Progress":"Progresso do engajamento","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Cada grupo étnico não engajado adotado por uma igreja comprometida com a oração, contribuição e o envio","Exact Search":"Pesquisa exata","Find unreached people groups by region and country.":"Encontre grupos étnicos não alcançados por região e país.","Full Profile":"Perfil completo",Goal:"Meta","Hide Filters":"Ocultar filtros","Hide country posters":"Ocultar os cartazes do país",Intercessors:"Intercessores","Load More":"Carregar mais","Loading results...":"A carregar resultados...",Map:"Mapa","Mobilize 100+ people praying daily for each DOXA people group":"Mobilizar mais de 100 pessoas para orar diariamente por cada grupo étnico DOXA","No One Praying":"Ninguém orando","No options found":"Não foram encontradas opções","No poster has been generated for this country yet.":"Ainda não foi gerado nenhum cartaz para este país.","No unengaged people groups by 2033":"Nenhum grupo étnico não engajado até 2033","Not Adopted":"Não adotado",Other:"Outros","Page Not Found":"Página não encontrada","People Group":"Grupo étnico","People Groups":"Grupos étnicos","People committed to praying":"Pessoas comprometidas com a oração","Pick a region above, or click any dot to open that people group's country.":"Escolha uma região acima, ou clique em qualquer ponto para abrir o país desse povo.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Escolha uma região ou um país na aba Lista de regiões para restringir este painel.",Population:"População","Prayer Coverage":"Cobertura de oração","Prayer coverage progress":"Progresso da cobertura de oração","Region Dashboards":"Painéis das regiões","Region dashboard":"Painel da região",Regions:"Regiões","Regions List":"Lista de regiões",Religion:"Religião","Search names, country/continent, religions...":"Busque nomes, país/continente, religiões...","See %region% dashboard":"Ver o painel: %region%","See All":"Ver tudo",Select:"Selecionar","Select View":"Selecionar visualização","Show Filters":"Mostrar filtros","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Existem %count% grupos étnicos em %country%. Verifique no mapa também os grupos étnicos na fronteira deste país.",Total:"Total","Type to search...":"Digite para pesquisar...","Unengaged people groups":"Grupos étnicos não engajados","View country posters":"Ver os cartazes do país",Views:"Visualizações","WAGF Block":"Bloco WAGF","WAGF Region":"Região da WAGF","people groups adopted":"grupos étnicos adotados","people groups engaged":"grupos étnicos engajados","Outside this region":"Fora desta região",Pray:"Ore","Loading region dashboards…":"Carregando os painéis das regiões…","No regions found.":"Nenhuma região encontrada.","Region data could not be loaded. This is a connection problem, not a filter.":"Não foi possível carregar os dados das regiões. É um problema de conexão, não um filtro.","People groups could not be loaded. This is a connection problem, not a filter.":"Não foi possível carregar os povos. É um problema de conexão, não um filtro.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"O mapa não pôde iniciar. É um problema do token do mapa ou de conexão, não um filtro — os números acima não são afetados."},Gy={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"},sections:{within:"Dentro de {selection}",allData:"Todos os dados DOXA"}},By={title:"Estúdio de plugins",navLabel:"Plugins por capacidade",countLabel:"{bundles} pacotes · {elements} plugins listados aqui",changeLanguage:"Mudar idioma",copyEmbed:"Copiar código de incorporação",copy:"Copiar",copied:"Copiado",scriptEmbed:"Incorporação por script",loading:"Carregando {name}…",couldNotLoad:"Não foi possível carregar {name}.",chooseElement:"Escolha um plugin na lista.",filterPlaceholder:"Filtrar plugins",collapseAll:"Recolher tudo",noMatch:"Nenhum plugin corresponde a “{query}”.",openSection:"Abrir {cap}, {label}",part:"parte",noStandalone:"sem página própria",cap5:"Shell do aplicativo",cap4:"Composto",cap3:"Multivisualização",cap2:"Predefinição",cap1:"Único",toggleList:"Mostrar ou ocultar a lista",openViews:"Abrir a lista de visualizações",expandList:"Expandir a lista",collapseList:"Recolher a lista",collapse:"Recolher",partOf:"parte de {name}, não publicada separadamente"},jy={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",upg100Region:"Região",upg100Zone:"Listas UPG-100",upg100Group:"Grupo étnico",selectView:"Selecionar vista",views:"Vistas",prayerResources:"Recursos de oração",map:"Mapa"},zy={kicker:"DOXA · Visão",title:"Cada povo. Cada lugar.",tagline:"De todos os grupos étnicos do mundo àqueles pelos quais a DOXA ora, contados a partir dos dados.",funnelLabel:"De todos os grupos étnicos aos grupos étnicos da DOXA",allLabel:"Grupos étnicos",allNote:"cada grupo étnico, em cada país onde vive",unreachedLabel:"Não alcançados",unreachedNote:"menos de 2% evangélicos",frontierLabel:"Fronteira",frontierNote:"menos de 0,1% evangélicos",doxaLabel:"Grupos étnicos da DOXA",doxaNote:"{frontier} deles são de fronteira",people:"{n} pessoas",sources:"Grupos étnicos: {imb}, dados de {date}. Lista da DOXA: pray.doxa.life, {date2}.",howCounted:"Como são contados",ruleAll:"Cada linha dos dados de grupos étnicos do IMB: um grupo étnico em um país.",ruleUnreached:"Prioridade de perdição do IMB de 0 a 2: menos de 2% evangélicos.",ruleFrontier:"Prioridade de perdição do IMB 0: menos de 0,1% evangélicos. Um subconjunto dos não alcançados.",ruleDoxa:"Cada grupo da lista de oração da DOXA, associado aos dados do IMB por povo e país. Nem todos são de fronteira."},Uy={title:"Toate grupurile etnice",locations:"{n} locații (grup × țară)",doxa:"Grupuri etnice DOXA",frontier:"Frontieră — nimic început",unreached:"Neatinse — lucrarea începe",reached:"Atinse — biserica este acolo",hint:"Faceți clic pe un rând pentru a le vedea pe toate · din nou pentru tot",loading:"Se încarcă toate grupurile etnice…",loadError:"Harta nu a putut fi încărcată.",pray:"Rugați-vă pentru ei →",population:"pop. {n}"},Vy={backToLegend:"Înapoi la legendă",closeDetailView:"Închide vizualizarea detaliată",collapseLegend:"Restrânge legenda",expandLegend:"Extinde legenda",toggleLegend:"Afișează sau ascunde legenda"},Ky={prayForThem:"Roagă-te pentru ei",adoptThem:"Adoptă-i",moreInfo:"Mai multe informații",zoomIn:"Mărește",zoomOut:"Micșorează",switchToLightMode:"Comută la modul luminos",switchToDarkMode:"Comută la modul întunecat",resetView:"Resetează vizualizarea",toggleFullscreen:"Comută ecran complet",aboutThisMap:"Despre această hartă",closeMenu:"Închide meniul",reloadMap:"Reîncarcă harta",showClusters:"Arată clusterele",clusterSettings:"Setări clustere",startAutoFly:"Pornește zborul automat",stopFlight:"Oprește zborul",speedLabel:"Viteză:",speedOption:{slow:"Lent",normal:"Normal",fast:"Rapid"},shareEmbed:"Partajează și încorporează",posterMap:"Harta afișului",prayerList:"Listă de rugăciune",cardDeck:"Pachet de cartonașe",printOptions:"Opțiuni de tipărire",showOnMap:"Arată pe hartă",close:"Închide",showOnMapAria:"Arată {label} pe hartă",cardStockAria:"Dimensiunea cardului de rugăciune",previewPrintPoster:"Previzualizează și tipărește posterul {label}",share:"Distribuie",shareSteps:["Încorporează această hartă pe site-ul tău","Fă o listă cu site-urile din orașul tău","Învață-i să o încorporeze și ei","Învață-i să îi formeze pe alții să o încorporeze","Să multiplicăm hărți pretutindeni pentru Isus!"],clearSelection:"Șterge selecția",noOptions:"Nicio opțiune găsită",renderingLocal:"O imagine de calitate pentru tipar este generată în browserul tău — nimic nu este încărcat.",postersPerRow:"Postere pe rând"},Hy={title:"Acces la internet unde trăiesc popoarele fără implicare",bands:{yes:"conectat 60%+",partial:"parțial 25–59%",no:"scăzut, sub 25%",unknown:"nemăsurat"},peopleGroup:"popor",caveat:"Cifre NAȚIONALE (Banca Mondială). Conectivitatea pe oraș nu este disponibilă public — nu deduceți un oraș din datele țării.",sheet:{close:"Închide",ai:"Aceste date au fost găsite prin cercetare aprofundată cu IA — pot conține informații false.",dismiss:"Închide notificarea",internetUsers:"Utilizatori de internet",measured:"Măsurat",mobilePer100:"Mobile la 100",peopleGroups:"Popoare",topPlatform:"Platforma principală",unknown:"necunoscut",carriers:"Operatori și ISP-uri ({n})",socialPlatforms:"Platforme sociale",note:"Cifre naționale, nu măsurători pe oraș. Numele operatorilor sunt titulari de înregistrări ASN (printre ei se află și bănci și universități, nu doar ISP-uri), deci eticheta de operator este o euristică după nume, nu o clasificare verificată."}},qy={research_controls:"Comenzi de cercetare",clustering:"Grupare",filters:"Filtre",pin_dim:"Estompare puncte",export_poster:"Exportă posterul…",reload_data:"Reîncarcă datele",off:"Oprit",native:"Nativ",mst:"MST",network:"Rețea",off_desc:"Arată fiecare punct separat",native_desc:"Grupuri circulare Mapbox (cel mai rapid)",mst_desc:"Rețele de afinitate prin arbore minim de acoperire",network_desc:"Linii către cel mai apropiat vecin",search_languages:"Caută limbi…",search_religions:"Caută religii…",reset_all:"Resetează tot",no_languages:"Nicio limbă încărcată încă",no_religions:"Nicio religie încărcată încă",unadopted:"Neadoptat",min:"min",max:"max",adopted:"Adoptat",adoption:"Adopție",engaged:"Implicat",engagement:"Implicare",unengaged:"Necesită implicare",language:"Limbă",religion:"Religie",population:"Populație",any:"Oricare",active_count:"{n} active",prayer_status:"Stare de rugăciune",close:"Închide",clear:"Șterge",map_controls:"Comenzile hărții"},Wy={bloc:"Bloc de afinitate",gospel_access:"Acces la Evanghelie",people:"Popoare",people_name:"Popor (nume)",praying:"Se roagă",religion_family:"Familie religioasă",search_language:"Caută limbă",search_people:"Caută popor",search_place:"Caută loc",search_religion:"Caută religie",upgs_in_scope:"UPG în domeniu",countries_touched:"țări atinse",unreached:"neatinși",sum_population:"Σ populație",sum_praying:"Σ se roagă",charts:"Grafice",table:"Tabel",cluster:"Grup",country:"Țară",engagement:"Implicare",language:"Limbă",language_family:"Familie de limbi",people_group:"Popor",population:"Populație",prayer:"Rugăciune",region:"Regiune",religion:"Religie",status:"Stare",adopted:"Adoptat",filters:"Filtre",gospel_resources:"Resurse ale Evangheliei",map:"Hartă",search_placeholder:"Caută popoare, locuri, limbi, religii…",any:"Oricare",active_count:"{n} active",prayer_status:"Stare de rugăciune",map_controls:"Comenzile hărții",close:"Închide",clear:"Șterge",dashboard_title:"Tablou de bord de cercetare general",align_dashboard:"Aliniază tabloul",align_dashboard_tip:"Readu aranjarea tabloului la alinierea implicită",selected:"Selectat",world:"Lume",vertical_legend:"Legendă verticală",groups_in_scope:"popoare în domeniu",filter_by:"Filtrează după",remove_filter:"Elimină filtrul",groups:"popoare",expand:"Extinde",collapse:"Restrânge",place:"Loc"},Yy={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ă."}},Xy={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Notele explicative de mai jos sunt în limba engleză."},mode:{gap:"Golul",coverage:"Resurse găsite"},search:{placeholder:"Caută un popor, o limbă sau un cod ISO",clear:"Șterge căutarea",none:"Nimic nu se potrivește cu acel nume, limbă sau cod.",placeholderShort:"Popor, limbă sau cod ISO"},legend:{title:"Popoare neatinse, fără nicio resursă a Evangheliei",band60:"60%+ fără nimic găsit",band30:"30–59%",bandSome:"unele popoare",bandAll:"toate popoarele au ceva",tier2:"Scripturi și film",tier1:"s-a găsit o resursă",tier0:"nimic găsit",hnr:"pot auzi, fără text",showAll:"Arată toate popoarele",titleCoverage:"Popoare neatinse cu o resursă a Evangheliei",cov80:"80%+ au ceva",cov50:"50–79%",cov1:"1–49%",cov0:"nimic pentru niciunul",tallyEach:"Fiecare",tallyIs:"este UN popor —",tallyOf:"dintre ele,",tallyLink:"cu un link",doxa0:"toate au ceva",doxa1:"1–4 fără nimic",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 atinse",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Popoare Doxa pe această hartă",notPlaced:"pe listă, încă nelocalizate",outOfScope:"niciun popor Doxa — necolorat"},tabs:{groups:"Cele mai mari popoare",countries:"După țară",regions:"După regiune",noprayer:"Nimeni nu se roagă",hnr:"Aud, fără text"},stat:{language:"Limba",population:"Populație",countries:"Țări",peopleGroups:"Popoare",noResource:"Nicio resursă găsită",peopleAffected:"Persoane afectate",haveScripture:"Au Scripturile",haveFilm:"Au filmul",haveAudio:"Au Scripturi audio",signLanguages:"Limbaje semne",growingUnreached:"În creștere și neatinse",deathsDay:"Decese estimate/zi"},sheet:{ownLanguage:"În limba lor",close:"Închide",loading:"Se încarcă resursele…",pray:"Roagă-te pentru",everyResource:"Toate resursele în",alsoSpeak:"Vorbesc și"},res:{scripture:"Scripturi",film:"Film",audio:"Audio",bibleVideo:"Video biblic",bibleStories:"Open Bible Stories",gospelAudio:"Audio cu Evanghelia",gospelPresentation:"Prezentarea Evangheliei",scriptureEarth:"Scripture Earth",training:"Instruire în ucenicie",jesusFilm:"Filmul ISUS"},state:{noneFound:"nimic găsit",noneAtFcbh:"nimic la FCBH",noneAtGrn:"nimic la GRN",notInZume:"nu este între cele 54 Zume",linkChecked:"link verificat",unchecked:"neverificat",linkDead:"link mort",wrongLanguage:"limbă greșită",varietyNotStated:"(varietate nespecificată)",inLanguage:"în"},guide:{dotVsCountry:"Fiecare punct este UN popor Doxa și limba lui; o țară este NUMĂRUL acelor popoare.",noneFoundShort:"„Nimic găsit” înseamnă absent din sursele verificate, niciodată dovada că nu există.",tapCountry:"Atinge o țară pentru a vedea resursele, popor cu popor."},tables:{title:"Resurse ale Evangheliei — Date",showing:"Se afișează",of:"din",for:"pentru",filteredTo:"Filtrat după",showAll:"Arată toate resursele",t_doxa:"Doxa — Acces la Evanghelie",t_links:"Fiecare resursă + link",t_nothing:"Unde nu s-a găsit nimic",t_countrygap:"Golul pe țări",t_translation:"Aud, fără text",t_translationcountry:"Unde să traducem",t_gaps:"Goluri și oportunități",t_bridges:"Punți urbane",t_deaf:"Golul surd",t_resources:"Resurse pe popoare",t_languages:"Limbi pe țări",t_growth:"Acces vs creștere"},pages:{listTitle:"Resurse ale Evangheliei pe limbi",chartsTitle:"Resurse ale Evangheliei — pe limbi",loadingTables:"Se încarcă tabelele…"},list:{noText:"Fără text biblic",hasScripture:"Are Scripturi",allLanguages:"Toate limbile",peopleGroup:"popor",peopleGroups:"popoare",scriptureHere:"Scripturi în această limbă"},columns:{"People group":"Popor",Country:"Țară",Region:"Regiune",Language:"Limbă",Population:"Populație",Religion:"Religie","Gospel access":"Acces la Evanghelie",Resources:"Resurse",Scripture:"Scripturi","Bible video":"Video biblic","Gospel presentation":"Prezentarea Evangheliei",Countries:"Țări","People groups":"Popoare"}},Zy={search:"Caută popoare…",hide_filters:"Ascunde filtrele",show_filters:"Arată filtrele",total:"Total",showing:"Se afișează",load_more:"Încarcă mai mult",full_profile:"Profil complet",wagf_region:"Regiune",wagf_block:"Bloc de afinitate",rop1:"Popor",religion:"Religie",exact_filter:"Exact",clear_all:"Șterge tot",loading:"Se încarcă…",no_results:"Niciun popor nu corespunde acestui filtru.",type_to_search:"Scrie pentru a căuta...",load_failed:"Datele despre popoare nu au putut fi încărcate. Este o problemă de conexiune, nu a filtrului."},Jy={title:{adoption:"Progresul adopției",affinityBlocs:"Blocuri de afinitate",doxaRegions:"Regiuni Doxa",engagement:"Progresul implicării",gospelResources:"Resurse ale Evangheliei",languageFamilies:"Familii de limbi",prayer:"Progresul rugăciunii",upg100List:"Lista mea UPG 100"},header:{collapsed:"Legendă",peopleGroupFallback:"Grup de popoare",default:"Legendă"},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",name:"Nume"},footer:{total:"Total"},sortByUpgs:"Sortează după UUPG",sortByPop:"Sortează după populație",colLabel:{religion:"Religii UUPG",prayer:"Starea rugăciunii",engagement:"Starea implicării",adoption:"Starea adopției",status:"Stare"},titleBar:{legend:"Legendă",peopleGroups:"Popoare",wagfRegions:"Regiuni WAGF",languages:"Limbi"},tabInfo:{upg100Region:"Regiune — sortează listele UPG-100 după zona lumii (Africa, India, Orientul Mijlociu, Surzi, …). Totalurile sunt UUPG-urile și populația însumate din fiecare listă de dedesubt.",upg100Zone:"Liste UPG-100 — fiecare este o listă de rugăciune a grupurilor etnice neatinse dintr-o zonă și este ceea ce harta desenează și colorează. Fiecare listă se tipărește ca propriul pachet.",upg100Group:"Grup etnic — grupurile neatinse dintr-o listă, mai întâi cele cu cea mai mare nevoie de rugăciune. Fiecare punct de pe hartă este unul dintre ele."},a11y:{expandRow:"Extinde {label}",collapseRow:"Restrânge {label}",clearSelection:"Șterge selecția"}},Qy={menuComingSoon:"Meniu în curând",pinHint:{tapDot:"Atinge un punct colorat — cineva are încă nevoie de rugăciune"},upg100WallHeading:"Lista mea UPG 100 — Liste de rugăciune și afișe",upg100WallTag:"Mobilizare pentru rugăciune",upg100WallIntro:"Împarte sarcina rugăciunii în grupuri de câte cincizeci și o sută — așa cum Isus a hrănit cei 5.000 (Luca 9:14). Fiecare afiș este o listă de 100 pe care o poți ruga, tipări și pune pe perete — rugându-te pentru ei pe numele poporului lor."},e_={clusterByRegion:"După regiune Doxa",clusterByLanguageFamily:"După familia de limbi",clusterByGospelResource:"După resursa Evangheliei"},t_={country:{wagfRegion:"Regiunea WAGF",wagfBlock:"Blocul WAGF",country:"Țară",uupgCount:"Număr de UUPG"}},o_={header:"TURUL DE RUGĂCIUNE CURENT",lap:"Tur",upgs:"UUPGs",separator:" din "},n_={"%count% people groups in %countries% countries":"%count% popoare în %countries% țări","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% are %count% popoare în %countries% țări. Culoarea fiecărui punct arată câți oameni se roagă pentru acel popor.","1+ People Praying":"1+ persoane se roagă","100+ People Praying":"100+ persoane se roagă",Adopted:"Adoptat","Adoption Progress":"Progresul adopției","All Regions":"Toate regiunile","Alternate Names":"Denumiri alternative","Choose a region":"Alege o regiune","Clear All":"Șterge tot",Countries:"Țări","Countries in this region":"Țările din această regiune",Country:"Țară",Engaged:"Implicat","Engagement Progress":"Progresul implicării","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Fiecare popor neimplicat adoptat de o biserică dedicată rugăciunii, dăruirii și trimiterii","Exact Search":"Căutare exactă","Find unreached people groups by region and country.":"Găsește popoarele neatinse după regiune și țară.","Full Profile":"Profil complet",Goal:"Obiectiv","Hide Filters":"Ascunde filtrele","Hide country posters":"Ascunde posterele țării",Intercessors:"Mijlocitori","Load More":"Încarcă mai multe","Loading results...":"Se încarcă rezultatele…",Map:"Hartă","Mobilize 100+ people praying daily for each DOXA people group":"Mobilizarea a peste 100 de persoane care se roagă zilnic pentru fiecare popor DOXA","No One Praying":"Nimeni nu se roagă","No options found":"Nu s-a găsit nicio opțiune","No poster has been generated for this country yet.":"Pentru această țară nu a fost generat încă niciun poster.","No unengaged people groups by 2033":"Niciun popor neimplicat până în 2033","Not Adopted":"Neadoptat",Other:"Altele","Page Not Found":"Pagina nu a fost găsită","People Group":"Popor","People Groups":"Popoare","People committed to praying":"Persoane dedicate rugăciunii","Pick a region above, or click any dot to open that people group's country.":"Alege o regiune mai sus sau dă clic pe orice punct pentru a deschide țara acelui grup etnic.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Alege o regiune sau o țară din fila Lista regiunilor pentru a restrânge acest panou.",Population:"Populație","Prayer Coverage":"Acoperirea prin rugăciune","Prayer coverage progress":"Progresul acoperirii prin rugăciune","Region Dashboards":"Panouri ale regiunilor","Region dashboard":"Panoul regiunii",Regions:"Regiuni","Regions List":"Lista regiunilor",Religion:"Religie","Search names, country/continent, religions...":"Caută nume, țară/continent, religii…","See %region% dashboard":"Vezi panoul %region%","See All":"Vezi tot",Select:"Selectează","Select View":"Selectează vizualizarea","Show Filters":"Arată filtrele","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"În %country% există %count% popoare. Verifică pe hartă și popoarele de la granițele acestei țări.",Total:"Total","Type to search...":"Scrie pentru a căuta…","Unengaged people groups":"Popoare neimplicate","View country posters":"Vezi posterele țării",Views:"Vizualizări","WAGF Block":"Bloc WAGF","WAGF Region":"Regiune WAGF","people groups adopted":"popoare adoptate","people groups engaged":"popoare implicate","Outside this region":"În afara acestei regiuni",Pray:"Roagă-te","Loading region dashboards…":"Se încarcă panourile regiunilor…","No regions found.":"Nu au fost găsite regiuni.","Region data could not be loaded. This is a connection problem, not a filter.":"Datele regiunilor nu au putut fi încărcate. Este o problemă de conexiune, nu un filtru.","People groups could not be loaded. This is a connection problem, not a filter.":"Grupurile de popoare nu au putut fi încărcate. Este o problemă de conexiune, nu un filtru.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"Harta nu a putut porni. Este o problemă de token al hărții sau de conexiune, nu un filtru — cifrele de mai sus nu sunt afectate."},a_={placeholder:"Popor, loc, limbă, religie",labels:{people:"Popor:",place:"Loc:",language:"Limbă:",religion:"Religie:"},sections:{within:"În {selection}",allData:"Toate datele DOXA"},kinds:{people:"Popor + țară",peopleGroup:"Popor",bloc:"Bloc de afinitate",cluster:"Grup de popoare",country:"Țară",region:"Regiune",family:"Familie de limbi",languageKind:"Limbă",dialect:"Dialect",religionKind:"Religie"}},s_={title:"Studio de pluginuri",navLabel:"Pluginuri după capacitate",countLabel:"{bundles} pachete · {elements} pluginuri listate aici",changeLanguage:"Schimbă limba",copyEmbed:"Copiază codul de încorporare",copy:"Copiază",copied:"Copiat",scriptEmbed:"Încorporare prin script",loading:"Se încarcă {name}…",couldNotLoad:"{name} nu a putut fi încărcat.",chooseElement:"Alegeți un plugin din listă.",filterPlaceholder:"Filtrează pluginurile",collapseAll:"Restrânge tot",noMatch:"Niciun plugin nu corespunde cu „{query}”.",openSection:"Deschide {cap}, {label}",part:"parte",noStandalone:"fără pagină proprie",cap5:"Cadru de aplicație",cap4:"Compus",cap3:"Vizualizări multiple",cap2:"Presetat",cap1:"Simplu",toggleList:"Afișează sau ascunde lista",openViews:"Deschide lista de vizualizări",expandList:"Extinde lista",collapseList:"Restrânge lista",collapse:"Restrânge",partOf:"parte din {name}, nepublicată separat"},r_={prayer:"Rugăciune",adoption:"Adopție",engagement:"Implicare","affinity-blocks":"Popoare",regions:"Regiuni",countries:"Țări","language-families":"Limbi",religion:"Religii",family:"Familie de limbi",language:"Limbă",dialect:"Dialect/Variantă",bloc:"Bloc de afinitate",cluster:"Grup",group:"Popor",pgic:"Popor în țară",region:"Regiune WAGF",block:"Bloc WAGF",country:"Țară",upg100Region:"Regiune",upg100Zone:"Liste UPG-100",upg100Group:"Grup etnic",selectView:"Alege vizualizarea",views:"Vizualizări",prayerResources:"Resurse de rugăciune",map:"Hartă"},i_={kicker:"DOXA · Viziune",title:"Fiecare popor. Fiecare loc.",tagline:"De la toate grupurile etnice ale lumii la cele pentru care se roagă DOXA, numărate din date.",funnelLabel:"De la toate grupurile etnice la grupurile etnice DOXA",allLabel:"Grupuri etnice",allNote:"fiecare grup etnic, în fiecare țară în care trăiește",unreachedLabel:"Neatinse",unreachedNote:"sub 2% evanghelici",frontierLabel:"Frontieră",frontierNote:"sub 0,1% evanghelici",doxaLabel:"Grupuri etnice DOXA",doxaNote:"{frontier} dintre ele sunt de frontieră",people:"{n} oameni",sources:"Grupuri etnice: {imb}, date din {date}. Lista DOXA: pray.doxa.life, {date2}.",howCounted:"Cum sunt numărate",ruleAll:"Fiecare rând din datele IMB despre grupuri etnice: un grup etnic într-o țară.",ruleUnreached:"Prioritatea de pierzare IMB 0–2: sub 2% evanghelici.",ruleFrontier:"Prioritatea de pierzare IMB 0: sub 0,1% evanghelici. O submulțime a celor neatinse.",ruleDoxa:"Fiecare grup de pe lista de rugăciune DOXA, potrivit cu datele IMB după popor și țară. Nu toate sunt de frontieră."},l_={title:"Все народы",locations:"{n} мест (народ × страна)",doxa:"Народы DOXA",frontier:"Рубежные — ничего не начато",unreached:"Недостигнутые — работа начинается",reached:"Достигнутые — церковь есть",hint:"Нажмите на строку, чтобы увидеть все · ещё раз — чтобы показать всё",loading:"Загрузка всех народов…",loadError:"Не удалось загрузить карту.",pray:"Молиться за них →",population:"нас. {n}"},c_={backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид",collapseLegend:"Свернуть легенду",expandLegend:"Развернуть легенду",toggleLegend:"Показать или скрыть легенду"},u_={prayForThem:"Молитесь о них",adoptThem:"Усыновите их",moreInfo:"Подробнее",zoomIn:"Приблизить",zoomOut:"Отдалить",switchToLightMode:"Переключить на светлый режим",switchToDarkMode:"Переключить на тёмный режим",resetView:"Сбросить вид",toggleFullscreen:"Полноэкранный режим",aboutThisMap:"Об этой карте",closeMenu:"Закрыть меню",reloadMap:"Перезагрузить карту",showClusters:"Показать кластеры",clusterSettings:"Настройки кластеров",startAutoFly:"Начать авто-полёт",stopFlight:"Остановить полёт",speedLabel:"Скорость:",speedOption:{slow:"Медленно",normal:"Нормально",fast:"Быстро"},shareEmbed:"Поделиться и встроить",posterMap:"Карта плаката",prayerList:"Молитвенный список",cardDeck:"Набор карточек",printOptions:"Параметры печати",showOnMap:"Показать на карте",close:"Закрыть",showOnMapAria:"Показать {label} на карте",cardStockAria:"Размер молитвенной карточки",previewPrintPoster:"Просмотр и печать плаката {label}",share:"Поделиться",shareSteps:["Разместите эту карту на своём сайте","Составьте список сайтов вашего города","Научите их тоже размещать её","Научите их учить других размещать её","Умножим карты повсюду для Иисуса!"],clearSelection:"Снять выделение",noOptions:"Ничего не найдено",renderingLocal:"Изображение типографского качества создаётся в вашем браузере — ничего не загружается на сервер.",postersPerRow:"Плакатов в ряду"},p_={title:"Доступ к интернету там, где живут народы без вовлечённости",bands:{yes:"подключено 60%+",partial:"частично 25–59%",no:"низкий, менее 25%",unknown:"не измерено"},peopleGroup:"народ",caveat:"НАЦИОНАЛЬНЫЕ данные (Всемирный банк). Данных о подключении по городам в открытом доступе нет — не судите о городе по стране.",sheet:{close:"Закрыть",ai:"Эти данные найдены с помощью углублённого поиска ИИ и могут содержать ошибки.",dismiss:"Скрыть",internetUsers:"Пользователи интернета",measured:"Год измерения",mobilePer100:"Мобильных на 100",peopleGroups:"Народы",topPlatform:"Главная платформа",unknown:"неизвестно",carriers:"Операторы и провайдеры ({n})",socialPlatforms:"Социальные платформы",note:"Национальные данные, а не измерения по городам. Названия операторов — это владельцы записей в реестре ASN; среди них есть банки и университеты, а не только провайдеры, поэтому пометка «оператор» — эвристика по названию, а не проверенная классификация."}},d_={research_controls:"Инструменты исследования",clustering:"Кластеризация",filters:"Фильтры",pin_dim:"Прозрачность точек",export_poster:"Экспорт постера…",reload_data:"Обновить данные",off:"Выкл.",native:"Встроенная",mst:"MST",network:"Сеть",off_desc:"Показывать каждую точку отдельно",native_desc:"Круговые кластеры Mapbox (быстрее всего)",mst_desc:"Сети родства по минимальному остовному дереву",network_desc:"Линии до ближайшего соседа",search_languages:"Поиск языков…",search_religions:"Поиск религий…",reset_all:"Сбросить всё",no_languages:"Языки ещё не загружены",no_religions:"Религии ещё не загружены",unadopted:"Не усыновлён",min:"мин",max:"макс",adopted:"Ответственность взята",adoption:"Усыновление",engaged:"Вовлечён",engagement:"Вовлечённость",unengaged:"Нуждается в вовлечённости",language:"Язык",religion:"Религия",population:"Население",any:"Любой",active_count:"{n} активно",prayer_status:"Статус молитвы",close:"Закрыть",clear:"Очистить",map_controls:"Элементы управления картой"},g_={bloc:"Блок родства",gospel_access:"Доступ к Евангелию",people:"Народы",people_name:"Народ (название)",praying:"Молятся",religion_family:"Семья религий",search_language:"Поиск языка",search_people:"Поиск народа",search_place:"Поиск места",search_religion:"Поиск религии",upgs_in_scope:"UPG в выборке",countries_touched:"затронутых стран",unreached:"неохваченные",sum_population:"Σ население",sum_praying:"Σ молящихся",charts:"Графики",table:"Таблица",cluster:"Кластер",country:"Страна",engagement:"Вовлечённость",language:"Язык",language_family:"Языковая семья",people_group:"Народ",population:"Население",prayer:"Молитва",region:"Регион",religion:"Религия",status:"Статус",adopted:"Ответственность взята",filters:"Фильтры",gospel_resources:"Евангельские ресурсы",map:"Карта",search_placeholder:"Поиск народов, мест, языков, религий…",any:"Любой",active_count:"{n} активно",prayer_status:"Статус молитвы",map_controls:"Элементы управления картой",close:"Закрыть",clear:"Очистить",dashboard_title:"Обзорная исследовательская панель",align_dashboard:"Выровнять панель",align_dashboard_tip:"Вернуть расположение панели к виду по умолчанию",selected:"Выбрано",world:"Мир",vertical_legend:"Вертикальная легенда",groups_in_scope:"народов в выборке",filter_by:"Фильтровать по",remove_filter:"Убрать фильтр",groups:"народов",expand:"Развернуть",collapse:"Свернуть",place:"Место"},f_={labels:{country:"Страна:",population:"Население:",language:"Язык:",religion:"Религия:",languageFamily:"Языковая семья:",peopleCommitted:"Обязались молиться:"},messages:{noDescription:"Описание недоступно."}},h_={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Пояснительные примечания ниже — на английском языке."},mode:{gap:"Пробел",coverage:"Найденные ресурсы"},search:{placeholder:"Найдите народ, язык или код ISO",clear:"Очистить поиск",none:"Ничего не найдено по этому названию, языку или коду.",placeholderShort:"Народ, язык или код ISO"},legend:{title:"Недостигнутые народы, для которых не найдено ни одного ресурса",band60:"60%+ без единого ресурса",band30:"30–59%",bandSome:"часть народов",bandAll:"у всех народов что-то есть",tier2:"Писание и фильм",tier1:"что-то найдено",tier0:"ничего не найдено",hnr:"могут услышать, текста нет",showAll:"Показать все народы",titleCoverage:"Недостигнутые народы, для которых найдены ресурсы",cov80:"у 80%+ что-то есть",cov50:"50–79%",cov1:"1–49%",cov0:"ни для кого ничего",tallyEach:"Каждая",tallyIs:"— это ОДИН народ,",tallyOf:"из них",tallyLink:"со ссылкой",doxa0:"у всех что-то есть",doxa1:"1–4 без ресурсов",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 достигнуты",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Народы Doxa на этой карте",notPlaced:"в списке, пока без координат",outOfScope:"нет народов Doxa — не окрашено"},tabs:{groups:"Крупнейшие народы",countries:"По странам",regions:"По регионам",noprayer:"Никто не молится",hnr:"Слышат, но не читают"},stat:{language:"Язык",population:"Численность",countries:"Страны",peopleGroups:"Народы",noResource:"Ресурсов не найдено",peopleAffected:"Затронутые люди",haveScripture:"Есть Писание",haveFilm:"Есть фильм",haveAudio:"Есть аудио-Писание",signLanguages:"Жестовые языки",growingUnreached:"Растущие и недостигнутые",deathsDay:"Оценка смертей в день"},sheet:{ownLanguage:"На их родном языке",close:"Закрыть",loading:"Загрузка ресурсов…",pray:"Молитесь о",everyResource:"Все ресурсы на",alsoSpeak:"Также говорят на"},res:{scripture:"Писание",film:"Фильм",audio:"Аудио",bibleVideo:"Библейское видео",bibleStories:"Open Bible Stories",gospelAudio:"Аудио с Евангелием",gospelPresentation:"Изложение Евангелия",scriptureEarth:"Scripture Earth",training:"Обучение ученичеству",jesusFilm:"Фильм «Иисус»"},state:{noneFound:"ничего не найдено",noneAtFcbh:"нет в FCBH",noneAtGrn:"нет в GRN",notInZume:"нет среди 54 языков Zume",linkChecked:"ссылка проверена",unchecked:"не проверено",linkDead:"ссылка не работает",wrongLanguage:"не тот язык",varietyNotStated:"(вариант не указан)",inLanguage:"на"},guide:{dotVsCountry:"Точка — это ОДИН народ Doxa и его родной язык; цвет страны — это ЧИСЛО таких народов.",noneFoundShort:"«Ничего не найдено» значит: нет в проверенных источниках — но не доказательство отсутствия.",tapCountry:"Нажмите на страну, чтобы увидеть ресурсы по каждому народу."},tables:{title:"Ресурсы Евангелия — данные",showing:"Показано",of:"из",for:"для",filteredTo:"Фильтр:",showAll:"Показать все ресурсы",t_doxa:"Doxa — доступ к Евангелию",t_links:"Каждый ресурс и ссылка",t_nothing:"Где ничего не найдено",t_countrygap:"Пробел по странам",t_translation:"Слышат, но не читают",t_translationcountry:"Где переводить",t_gaps:"Пробелы и возможности",t_bridges:"Городские мосты",t_deaf:"Пробел у глухих",t_resources:"Ресурсы по народам",t_languages:"Языки по странам",t_growth:"Доступ и рост населения"},pages:{listTitle:"Ресурсы Евангелия по языкам",chartsTitle:"Ресурсы Евангелия — по языкам",loadingTables:"Загрузка таблиц ресурсов…"},list:{noText:"Нет текста Писания",hasScripture:"Есть Писание",allLanguages:"Все языки",peopleGroup:"народ",peopleGroups:"народов",scriptureHere:"Писание на этом языке"},columns:{"People group":"Народ",Country:"Страна",Region:"Регион",Language:"Язык",Population:"Численность",Religion:"Религия","Gospel access":"Доступ к Евангелию",Resources:"Ресурсы",Scripture:"Писание","Bible video":"Библейское видео","Gospel presentation":"Изложение Евангелия",Countries:"Страны","People groups":"Народы"}},m_={search:"Поиск народов…",hide_filters:"Скрыть фильтры",show_filters:"Показать фильтры",total:"Всего",showing:"Показано",load_more:"Показать ещё",full_profile:"Полный профиль",wagf_region:"Регион",wagf_block:"Блок родства",rop1:"Народ",religion:"Религия",exact_filter:"Точное совпадение",clear_all:"Очистить всё",loading:"Загрузка…",no_results:"Нет народов, соответствующих этому фильтру.",type_to_search:"Введите для поиска...",load_failed:"Не удалось загрузить данные о народах. Это проблема соединения, а не фильтра."},b_={title:{adoption:"Прогресс усыновления",affinityBlocs:"Блоки родства",doxaRegions:"Регионы Doxa",engagement:"Прогресс вовлечённости",gospelResources:"Евангельские ресурсы",languageFamilies:"Языковые семьи",prayer:"Прогресс молитвы",upg100List:"Мой список UPG 100"},header:{collapsed:"Условные обозначения",peopleGroupFallback:"Народная группа",default:"Легенда"},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:"Языки"},tabInfo:{upg100Region:"Регион — сортирует списки UPG-100 по частям света (Африка, Индия, Ближний Восток, Глухие, …). Числа — это UUPG и население, просуммированные по всем спискам внутри.",upg100Zone:"Списки UPG-100 — каждый представляет собой молитвенный список непросвещённых народов области и именно он отображается и раскрашивается на карте. Каждый список печатается отдельным буклетом.",upg100Group:"Народ — отдельные непросвещённые народы внутри списка, сначала с наибольшей нуждой в молитве. Каждая точка на карте — один из них."},a11y:{expandRow:"Развернуть {label}",collapseRow:"Свернуть {label}",clearSelection:"Снять выделение"}},$_={menuComingSoon:"Меню скоро появится",pinHint:{tapDot:"Нажмите на цветную точку — кому-то всё ещё нужна молитва"},upg100WallHeading:"Мой список UPG 100 — молитвенные списки и плакаты",upg100WallTag:"Молитвенная мобилизация",upg100WallIntro:"Разделите молитвенный труд на группы по пятьдесят и по сто — так Иисус накормил 5000 (Луки 9:14). Каждый плакат — это список из 100, о котором можно молиться, распечатать и повесить на стену, молясь о них по имени их народа."},y_={clusterByRegion:"По региону Doxa",clusterByLanguageFamily:"По языковой семье",clusterByGospelResource:"По евангельскому ресурсу"},__={country:{wagfRegion:"Регион WAGF",wagfBlock:"Блок WAGF",country:"Страна",uupgCount:"Число UUPG"}},v_={header:"ТЕКУЩИЙ КРУГ МОЛИТВЫ",lap:"Круг",upgs:"UUPGs",separator:" из "},w_={"%count% people groups in %countries% countries":"%count% народов в %countries% странах","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"В регионе %region% — %count% групп людей в %countries% странах. Цвет каждой точки показывает, сколько человек молится за эту группу людей.","1+ People Praying":"1+ человек молится","100+ People Praying":"100+ человек молятся",Adopted:"Ответственность взята","Adoption Progress":"Прогресс принятия ответственности","All Regions":"Все регионы","Alternate Names":"Альтернативные названия","Choose a region":"Выберите регион","Clear All":"Очистить всё",Countries:"Страны","Countries in this region":"Страны этого региона",Country:"Страна",Engaged:"Вовлечён","Engagement Progress":"Прогресс вовлечения","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Каждая незадействованная народность принята церковью, приверженной молитве, пожертвованиям и посылке миссионеров","Exact Search":"Точный поиск","Find unreached people groups by region and country.":"Найдите недостигнутые группы людей по регионам и странам.","Full Profile":"Полный профиль",Goal:"Цель","Hide Filters":"Скрыть фильтры","Hide country posters":"Скрыть плакаты страны",Intercessors:"Ходатаи","Load More":"Загрузить ещё","Loading results...":"Загрузка результатов...",Map:"Карта","Mobilize 100+ people praying daily for each DOXA people group":"Мобилизуйте 100+ человек для ежедневной молитвы за каждую народность DOXA","No One Praying":"Никто не молится","No options found":"Вариантов не найдено","No poster has been generated for this country yet.":"Для этой страны плакат ещё не создан.","No unengaged people groups by 2033":"К 2033 году не останется незадействованных народов","Not Adopted":"Не принято",Other:"Другое","Page Not Found":"Страница не найдена","People Group":"Группа людей","People Groups":"Народы","People committed to praying":"Люди, посвятившие себя молитве","Pick a region above, or click any dot to open that people group's country.":"Выберите регион выше или нажмите на любую точку, чтобы открыть страну этой группы народа.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Выберите регион или страну на вкладке «Список регионов», чтобы сузить эту панель.",Population:"Население","Prayer Coverage":"Молитвенный охват","Prayer coverage progress":"Прогресс молитвенного покрытия","Region Dashboards":"Панели регионов","Region dashboard":"Панель региона",Regions:"Регионы","Regions List":"Список регионов",Religion:"Религия","Search names, country/continent, religions...":"Поиск по названиям, странам/континентам, религиям...","See %region% dashboard":"Открыть панель: %region%","See All":"Смотреть все",Select:"Выбрать","Select View":"Выберите вид","Show Filters":"Показать фильтры","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Страна %country% насчитывает %count% групп людей. Проверьте также на карте группы людей, расположенные вдоль границ этой страны.",Total:"Итого","Type to search...":"Введите текст для поиска...","Unengaged people groups":"Невовлечённые народы","View country posters":"Показать плакаты страны",Views:"Виды","WAGF Block":"Блок WAGF","WAGF Region":"Регион WAGF","people groups adopted":"народов, за которые взята ответственность","people groups engaged":"вовлечённые народы","Outside this region":"За пределами этого региона",Pray:"Молиться","Loading region dashboards…":"Загрузка панелей по регионам…","No regions found.":"Регионы не найдены.","Region data could not be loaded. This is a connection problem, not a filter.":"Не удалось загрузить данные по регионам. Это проблема соединения, а не фильтра.","People groups could not be loaded. This is a connection problem, not a filter.":"Не удалось загрузить народы. Это проблема соединения, а не фильтра.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"Карта не запустилась. Это проблема токена карты или соединения, а не фильтра — цифры выше не затронуты."},k_={placeholder:"Народ, место, язык, религия",labels:{people:"Народ:",place:"Место:",language:"Язык:",religion:"Религия:"},kinds:{people:"Народ + страна",peopleGroup:"Народ",bloc:"Блок родства",cluster:"Кластер народов",country:"Страна",region:"Регион",family:"Языковая семья",languageKind:"Язык",dialect:"Диалект",religionKind:"Религия"},sections:{within:"В пределах {selection}",allData:"Все данные DOXA"}},x_={title:"Студия плагинов",navLabel:"Плагины по возможностям",countLabel:"Здесь: пакетов {bundles} · плагинов {elements}",changeLanguage:"Сменить язык",copyEmbed:"Скопировать код встраивания",copy:"Копировать",copied:"Скопировано",scriptEmbed:"Встраивание через скрипт",loading:"Загрузка {name}…",couldNotLoad:"Не удалось загрузить {name}.",chooseElement:"Выберите плагин из списка.",filterPlaceholder:"Фильтр плагинов",collapseAll:"Свернуть всё",noMatch:"Нет плагинов, соответствующих «{query}».",openSection:"Открыть {cap}, {label}",part:"часть",noStandalone:"нет отдельной страницы",cap5:"Оболочка приложения",cap4:"Составной",cap3:"Несколько видов",cap2:"Предустановка",cap1:"Одиночный",toggleList:"Показать или скрыть список",openViews:"Открыть список представлений",expandList:"Развернуть список",collapseList:"Свернуть список",collapse:"Свернуть",partOf:"часть {name}, не публикуется отдельно"},L_={prayer:"Молитва",adoption:"Усыновление",engagement:"Вовлечённость","affinity-blocks":"Народы",regions:"Регионы",countries:"Страны","language-families":"Языки",religion:"Религии",family:"Языковая семья",language:"Язык",dialect:"Диалект/вариант",bloc:"Блок родства",cluster:"Кластер",group:"Народ",pgic:"Народ в стране",region:"Регион WAGF",block:"Блок WAGF",country:"Страна",upg100Region:"Регион",upg100Zone:"Списки UPG-100",upg100Group:"Народ",selectView:"Выбрать вид",views:"Виды",prayerResources:"Молитвенные ресурсы",map:"Карта"},A_={kicker:"DOXA · Видение",title:"Каждый народ. Каждое место.",tagline:"От всех народов мира до тех, за кого молится DOXA, — по данным.",funnelLabel:"От всех народов до народов DOXA",allLabel:"Народы",allNote:"каждый народ в каждой стране, где он живёт",unreachedLabel:"Недостигнутые",unreachedNote:"менее 2% евангельских христиан",frontierLabel:"Рубежные",frontierNote:"менее 0,1% евангельских христиан",doxaLabel:"Народы DOXA",doxaNote:"из них рубежных: {frontier}",people:"{n} человек",sources:"Народы: {imb}, данные на {date}. Список DOXA: pray.doxa.life, {date2}.",howCounted:"Как это посчитано",ruleAll:"Каждая строка данных IMB о народах: один народ в одной стране.",ruleUnreached:"Приоритет IMB 0–2: менее 2% евангельских христиан.",ruleFrontier:"Приоритет IMB 0: менее 0,1% евангельских христиан. Часть недостигнутых.",ruleDoxa:"Каждая группа из молитвенного списка DOXA, сопоставленная с данными IMB по народу и стране. Не все из них рубежные."},S_={title:"所有族群",locations:"{n} 个族群–国家位置",doxa:"DOXA 族群",frontier:"前沿族群 — 尚未开始",unreached:"未得之民 — 事工起步",reached:"已得之民 — 教会已在",hint:"点击一行查看全部 · 再次点击显示所有",loading:"正在加载所有族群…",loadError:"无法加载地图。",pray:"为他们祷告 →",population:"人口 {n}"},P_={backToLegend:"返回图例",closeDetailView:"关闭详情视图",collapseLegend:"收起图例",expandLegend:"展开图例",toggleLegend:"显示或隐藏图例"},C_={prayForThem:"为他们祷告",adoptThem:"认领他们",moreInfo:"更多信息",zoomIn:"放大",zoomOut:"缩小",switchToLightMode:"切换至浅色模式",switchToDarkMode:"切换至深色模式",resetView:"重置视图",toggleFullscreen:"切换全屏",aboutThisMap:"关于此地图",closeMenu:"关闭菜单",reloadMap:"重新加载地图",showClusters:"显示聚类",clusterSettings:"聚类设置",startAutoFly:"开始自动飞行",stopFlight:"停止飞行",speedLabel:"速度:",speedOption:{slow:"慢",normal:"正常",fast:"快"},shareEmbed:"分享与嵌入",posterMap:"海报地图",prayerList:"禱告名單",cardDeck:"禱告卡組",printOptions:"列印選項",showOnMap:"在地圖上顯示",close:"關閉",showOnMapAria:"在地圖上顯示 {label}",cardStockAria:"祷告卡片尺寸",previewPrintPoster:"预览并打印 {label} 海报",share:"分享",shareSteps:["把這張地圖嵌入你的網站","列出你城市裡的網站","教他們也嵌入這張地圖","教他們去教別人嵌入","為耶穌讓地圖遍地繁增!"],clearSelection:"清除选择",noOptions:"未找到选项",renderingLocal:"正在您的浏览器中生成可打印质量的图片——不会上传任何内容。",postersPerRow:"每行海报数"},E_={title:"未参与族群所在地的互联网接入",bands:{yes:"已联网 60%+",partial:"部分 25–59%",no:"低,低于 25%",unknown:"未测量"},peopleGroup:"族群",caveat:"全国数据(世界银行)。各城市的联网数据未公开——请勿用国家数据推断某个城市。",sheet:{close:"关闭",ai:"这些数据来自人工智能深度检索,可能包含错误信息。",dismiss:"忽略",internetUsers:"互联网用户",measured:"测量年份",mobilePer100:"每百人移动电话",peopleGroups:"族群",topPlatform:"主要平台",unknown:"未知",carriers:"运营商和互联网服务商({n})",socialPlatforms:"社交平台",note:"这是全国数据,不是城市测量值。运营商名称来自 ASN 注册持有者——其中除互联网服务商外还包括银行和大学,因此“运营商”标记是基于名称的推断,并非经过核实的分类。"}},T_={research_controls:"研究控件",clustering:"聚类",filters:"筛选",pin_dim:"圆点淡化",export_poster:"导出海报…",reload_data:"重新加载数据",off:"关闭",native:"原生",mst:"MST",network:"网络",off_desc:"逐个显示每个圆点",native_desc:"Mapbox 圆形聚类(最快)",mst_desc:"最小生成树亲缘网络",network_desc:"最近邻连接线",search_languages:"搜索语言…",search_religions:"搜索宗教…",reset_all:"全部重置",no_languages:"尚未加载语言",no_religions:"尚未加载宗教",unadopted:"未认领",min:"最小",max:"最大",adopted:"已认领",adoption:"认领",engaged:"已参与",engagement:"参与",unengaged:"需要参与",language:"语言",religion:"宗教",population:"人口",any:"全部",active_count:"{n} 项启用",prayer_status:"代祷状态",close:"关闭",clear:"清除",map_controls:"地图控件"},N_={bloc:"亲缘板块",gospel_access:"福音可及性",people:"民族",people_name:"民族(名称)",praying:"正在代祷",religion_family:"宗教族系",search_language:"搜索语言",search_people:"搜索民族",search_place:"搜索地点",search_religion:"搜索宗教",upgs_in_scope:"范围内的 UPG",countries_touched:"涉及国家",unreached:"未得之民",sum_population:"Σ 人口",sum_praying:"Σ 代祷",charts:"图表",table:"表格",cluster:"民族群",country:"國家",engagement:"参与",language:"语言",language_family:"语系",people_group:"民族",population:"人口",prayer:"祷告",region:"区域",religion:"宗教",status:"状态",adopted:"已认领",filters:"筛选",gospel_resources:"福音资源",map:"地图",search_placeholder:"搜索民族、地点、语言、宗教…",any:"全部",active_count:"{n} 项启用",prayer_status:"代祷状态",map_controls:"地图控件",close:"关闭",clear:"清除",dashboard_title:"全局研究仪表板",align_dashboard:"对齐仪表板",align_dashboard_tip:"将仪表板布局恢复为默认对齐",selected:"已选择",world:"世界",vertical_legend:"垂直图例",groups_in_scope:"个民族在范围内",filter_by:"筛选",remove_filter:"移除筛选",groups:"个民族",expand:"展开",collapse:"收起",place:"地点"},R_={labels:{country:"国家:",population:"人口:",language:"语言:",religion:"宗教:",languageFamily:"语系:",peopleCommitted:"承诺祷告人数:"},messages:{noDescription:"暂无描述。"}},M_={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"以下说明性文字为英文。"},mode:{gap:"缺口",coverage:"已找到的资源"},search:{placeholder:"搜索族群、语言或 ISO 代码",clear:"清除搜索",none:"没有符合该名称、语言或代码的结果。",placeholderShort:"族群、语言或 ISO 代码"},legend:{title:"尚未接触且未找到任何福音资源的族群",band60:"60% 以上一无所有",band30:"30–59%",bandSome:"部分族群",bandAll:"所有族群都有一些",tier2:"圣经与影片",tier1:"找到部分资源",tier0:"一无所获",hnr:"能听,但没有文字",showAll:"显示所有族群",titleCoverage:"尚未接触但已找到部分福音资源的族群",cov80:"80% 以上有资源",cov50:"50–79%",cov1:"1–49%",cov0:"无人拥有",tallyEach:"每个",tallyIs:"代表一个族群 —",tallyOf:"个族群中,",tallyLink:"个有链接",doxa0:"全部都有资源",doxa1:"1–4 个一无所有",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 个已触及",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"本地图上的 Doxa 族群",notPlaced:"在名单上,尚未定位",outOfScope:"没有 Doxa 族群 — 不着色"},tabs:{groups:"最大的族群",countries:"按国家",regions:"按地区",noprayer:"无人代祷",hnr:"能听,无文字"},stat:{language:"语言",population:"人口",countries:"国家",peopleGroups:"族群",noResource:"未找到资源",peopleAffected:"受影响人数",haveScripture:"有圣经",haveFilm:"有影片",haveAudio:"有有声圣经",signLanguages:"手语",growingUnreached:"增长中且未接触",deathsDay:"每日估计死亡人数"},sheet:{ownLanguage:"以他们自己的语言",close:"关闭",loading:"正在加载资源…",pray:"为其代祷:",everyResource:"所有资源 —",alsoSpeak:"同样使用"},res:{scripture:"圣经",film:"影片",audio:"音频",bibleVideo:"圣经视频",bibleStories:"Open Bible Stories",gospelAudio:"福音音频",gospelPresentation:"福音简介",scriptureEarth:"Scripture Earth",training:"门徒训练",jesusFilm:"《耶稣传》"},state:{noneFound:"一无所获",noneAtFcbh:"FCBH 没有",noneAtGrn:"GRN 没有",notInZume:"不在 Zume 的 54 种语言内",linkChecked:"链接已核实",unchecked:"未核实",linkDead:"链接失效",wrongLanguage:"语言不符",varietyNotStated:"(未注明变体)",inLanguage:"—"},guide:{dotVsCountry:"每个圆点代表 Doxa 的一个族群及其语言;国家的颜色代表这类族群的数量。",noneFoundShort:"“一无所获”指未见于本次查询的资源库,并不证明其不存在。",tapCountry:"点按国家,逐个族群查看实际资源。"},tables:{title:"福音资源 — 数据",showing:"显示",of:"/共",for:"—",filteredTo:"筛选:",showAll:"显示全部资源",t_doxa:"Doxa — 福音可及性",t_links:"每项资源与链接",t_nothing:"一无所获之处",t_countrygap:"各国缺口",t_translation:"能听,无文字",t_translationcountry:"何处需要翻译",t_gaps:"缺口与机会",t_bridges:"城市桥梁",t_deaf:"聋人缺口",t_resources:"按族群列出资源",t_languages:"各国语言",t_growth:"可及性与人口增长"},pages:{listTitle:"按语言列出的福音资源",chartsTitle:"福音资源 — 按语言",loadingTables:"正在加载资源表…"},list:{noText:"没有文字圣经",hasScripture:"有圣经",allLanguages:"全部语言",peopleGroup:"个族群",peopleGroups:"个族群",scriptureHere:"本语言的圣经"},columns:{"People group":"族群",Country:"国家",Region:"地区",Language:"语言",Population:"人口",Religion:"宗教","Gospel access":"福音可及性",Resources:"资源",Scripture:"圣经","Bible video":"圣经视频","Gospel presentation":"福音简介",Countries:"国家","People groups":"族群"}},F_={search:"搜索民族…",hide_filters:"隐藏筛选",show_filters:"显示筛选",total:"总计",showing:"显示",load_more:"加载更多",full_profile:"完整档案",wagf_region:"区域",wagf_block:"亲缘板块",rop1:"民族",religion:"宗教",exact_filter:"精确",clear_all:"全部清除",loading:"加载中…",no_results:"没有符合此筛选条件的民族。",type_to_search:"输入以搜索...",load_failed:"无法加载民族数据。这是连接问题,而不是筛选问题。"},I_={title:{adoption:"认领进度",affinityBlocs:"亲缘板块",doxaRegions:"Doxa 区域",engagement:"参与进度",gospelResources:"福音资源",languageFamilies:"语系",prayer:"祷告进度",upg100List:"我的 UPG 100 名单"},header:{collapsed:"图例",peopleGroupFallback:"民族群体",default:"圖例"},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:"人口",name:"名称"},footer:{total:"总计"},sortByUpgs:"按 UUPG 排序",sortByPop:"按人口排序",colLabel:{religion:"UUPG 宗教",prayer:"祷告状态",engagement:"参与状态",adoption:"认领状态",status:"状态"},titleBar:{legend:"图例",peopleGroups:"民族",wagfRegions:"WAGF 区域",languages:"语言"},tabInfo:{upg100Region:"区域 — 按世界区域排列 UPG-100 名单(非洲、印度、中东、聋人……)。数字是其下每份名单的 UUPG 与人口总和。",upg100Zone:"UPG-100 名单 — 每一份都是某地区未得之民的祷告名单,也是地图所绘制和上色的内容。每份名单印成独立的祷告册。",upg100Group:"族群 — 名单内各个未得之民群体,祷告需要最大的排在前面。地图上每个点就是其中之一。"},a11y:{expandRow:"展开{label}",collapseRow:"折叠{label}",clearSelection:"清除选择"}},O_={menuComingSoon:"菜单即将推出",pinHint:{tapDot:"点按一个彩色圆点——仍有人需要祷告"},upg100WallHeading:"我的 UPG 100 名單 — 禱告名單與海報",upg100WallTag:"禱告動員",upg100WallIntro:"將禱告的工作分成五十人、一百人一組 — 就像耶穌餵飽五千人那樣(路加福音 9:14)。每一張海報都是一份 100 人名單,你可以為他們禱告、列印出來、貼在牆上 — 按著他們族群的名字為他們禱告。"},D_={clusterByRegion:"按 Doxa 区域",clusterByLanguageFamily:"按语系",clusterByGospelResource:"按福音资源"},G_={country:{wagfRegion:"WAGF 地區",wagfBlock:"WAGF 區塊",country:"國家",uupgCount:"UUPG 數量"}},B_={header:"当前祷告轮次",lap:"第",upgs:"UUPGs",separator:" / "},j_={"%count% people groups in %countries% countries":"%countries% 个国家中的 %count% 个民族","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% 在 %countries% 个国家中有 %count% 个民族。每个标记的颜色表示有多少人在为该民族祷告。","1+ People Praying":"1 人以上祷告","100+ People Praying":"100 人以上祷告",Adopted:"已认领","Adoption Progress":"认领进度","All Regions":"所有区域","Alternate Names":"其他名称","Choose a region":"选择区域","Clear All":"全部清除",Countries:"国家","Countries in this region":"本区域的国家",Country:"国家",Engaged:"已参与","Engagement Progress":"参与进度","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"每一个尚无人参与的民族,都由一间委身于祷告、奉献与差派的教会认领","Exact Search":"精确搜索","Find unreached people groups by region and country.":"按区域和国家查找未得之民。","Full Profile":"完整档案",Goal:"目标","Hide Filters":"隐藏筛选","Hide country posters":"隐藏国家海报",Intercessors:"代祷者","Load More":"加载更多","Loading results...":"正在加载结果…",Map:"地图","Mobilize 100+ people praying daily for each DOXA people group":"为每个 DOXA 民族动员 100 人以上每日祷告","No One Praying":"无人祷告","No options found":"未找到选项","No poster has been generated for this country yet.":"尚未为该国家生成海报。","No unengaged people groups by 2033":"到 2033 年不再有无人参与的民族","Not Adopted":"未认领",Other:"其他","Page Not Found":"未找到页面","People Group":"民族","People Groups":"民族","People committed to praying":"委身祷告的人数","Pick a region above, or click any dot to open that people group's country.":"在上方选择一个区域,或点击任意圆点以打开该民族所在的国家。","Pick a region or a country on the Regions List tab to narrow this dashboard.":"在“区域列表”标签中选择一个区域或国家,以缩小此仪表板的范围。",Population:"人口","Prayer Coverage":"祷告覆盖","Prayer coverage progress":"祷告覆盖进度","Region Dashboards":"区域仪表板","Region dashboard":"区域仪表板",Regions:"区域","Regions List":"区域列表",Religion:"宗教","Search names, country/continent, religions...":"搜索名称、国家/大洲、宗教…","See %region% dashboard":"查看 %region% 仪表板","See All":"查看全部",Select:"选择","Select View":"选择视图","Show Filters":"显示筛选","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"%country% 有 %count% 个民族。也请在地图上查看该国边境地区的民族。",Total:"总计","Type to search...":"输入以搜索…","Unengaged people groups":"无人参与的民族","View country posters":"查看国家海报",Views:"视图","WAGF Block":"WAGF 板块","WAGF Region":"WAGF 区域","people groups adopted":"已认领的民族","people groups engaged":"已参与的民族","Outside this region":"在此区域之外",Pray:"祷告","Loading region dashboards…":"正在加载区域面板…","No regions found.":"未找到区域。","Region data could not be loaded. This is a connection problem, not a filter.":"无法加载区域数据。这是连接问题,不是筛选问题。","People groups could not be loaded. This is a connection problem, not a filter.":"无法加载民族群体。这是连接问题,不是筛选问题。","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"地图无法启动。这是地图令牌或连接问题,不是筛选问题——上方的数字不受影响。"},z_={placeholder:"民族、地点、语言、宗教",labels:{people:"民族:",place:"地点:",language:"语言:",religion:"宗教:"},sections:{within:"在 {selection} 之內",allData:"所有 DOXA 資料"},kinds:{people:"民族 + 国家",peopleGroup:"民族",bloc:"亲缘板块",cluster:"民族群",country:"国家",region:"区域",family:"语系",languageKind:"语言",dialect:"方言",religionKind:"宗教"}},U_={title:"插件工作室",navLabel:"按能力分类的插件",countLabel:"此处列出 {bundles} 个包 · {elements} 个插件",changeLanguage:"切换语言",copyEmbed:"复制嵌入代码",copy:"复制",copied:"已复制",scriptEmbed:"脚本嵌入",loading:"正在加载 {name}…",couldNotLoad:"无法加载 {name}。",chooseElement:"请从列表中选择一个插件。",filterPlaceholder:"筛选插件",collapseAll:"全部折叠",noMatch:"没有与“{query}”匹配的插件。",openSection:"打开 {cap},{label}",part:"部分",noStandalone:"无独立页面",cap5:"应用外壳",cap4:"组合",cap3:"多视图",cap2:"预设",cap1:"单一",toggleList:"显示或隐藏列表",openViews:"打开视图列表",expandList:"展开列表",collapseList:"折叠列表",collapse:"折叠",partOf:"{name} 的一部分,不单独发布"},V_={prayer:"祷告",adoption:"认领",engagement:"参与","affinity-blocks":"民族",regions:"区域",countries:"国家","language-families":"语言",religion:"宗教",family:"语系",language:"语言",dialect:"方言/变体",bloc:"亲缘板块",cluster:"民族群",group:"民族",pgic:"国内民族",region:"WAGF 区域",block:"WAGF 板块",country:"国家",upg100Region:"区域",upg100Zone:"UPG-100 名单",upg100Group:"族群",selectView:"選擇檢視",views:"檢視",prayerResources:"禱告資源",map:"地圖"},K_={kicker:"DOXA · 异象",title:"每一个民族,每一个地方。",tagline:"从世界上所有族群到 DOXA 为之祷告的族群,全部依据数据计算。",funnelLabel:"从所有族群到 DOXA 族群",allLabel:"族群",allNote:"每个族群在其居住的每个国家各计一次",unreachedLabel:"未得之民",unreachedNote:"福音派信徒少于 2%",frontierLabel:"前沿族群",frontierNote:"福音派信徒少于 0.1%",doxaLabel:"DOXA 族群",doxaNote:"其中 {frontier} 个为前沿族群",people:"{n} 人",sources:"族群:{imb},数据日期 {date}。DOXA 名单:pray.doxa.life,{date2}。",howCounted:"这些数字如何计算",ruleAll:"IMB 族群数据的每一行:一个国家中的一个族群。",ruleUnreached:"IMB 迷失优先级 0 至 2:福音派信徒少于 2%。",ruleFrontier:"IMB 迷失优先级 0:福音派信徒少于 0.1%。属于未得之民的一部分。",ruleDoxa:"DOXA 祷告名单上的每个族群,按民族和国家与 IMB 数据匹配。并非全部都是前沿族群。"};/*! + */let kp;const lr=e=>kp=e,xp=Symbol();function Fi(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Qa;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Qa||(Qa={}));function Db(){const e=Jr(!0),t=e.run(()=>ge({}));let o=[],n=[];const a=Wn({install(s){lr(a),a._a=s,s.provide(xp,a),s.config.globalProperties.$pinia=a,n.forEach(r=>o.push(r)),n=[]},use(s){return this._a?o.push(s):n.push(s),this},_p:o,_a:null,_e:e,_s:new Map,state:t});return a}const Lp=()=>{};function Ap(e,t,o,n=Lp){e.push(t);const a=()=>{const s=e.indexOf(t);s>-1&&(e.splice(s,1),n())};return!o&&Sc()&&ih(a),a}function oa(e,...t){e.slice().forEach(o=>{o(...t)})}const Bb=e=>e(),Sp=Symbol(),Ii=Symbol();function Oi(e,t){e instanceof Map&&t instanceof Map?t.forEach((o,n)=>e.set(n,o)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const o in t){if(!t.hasOwnProperty(o))continue;const n=t[o],a=e[o];Fi(a)&&Fi(n)&&e.hasOwnProperty(o)&&!ut(n)&&!jo(n)?e[o]=Oi(a,n):e[o]=n}return e}const Gb=Symbol();function jb(e){return!Fi(e)||!e.hasOwnProperty(Gb)}const{assign:pn}=Object;function zb(e){return!!(ut(e)&&e.effect)}function Ub(e,t,o,n){const{state:a,actions:s,getters:r}=t,i=o.state.value[e];let l;function c(){i||(o.state.value[e]=a?a():{});const u=Ch(o.state.value[e]);return pn(u,s,Object.keys(r||{}).reduce((p,g)=>(p[g]=Wn(ee(()=>{lr(o);const A=o._s.get(e);return r[g].call(A,A)})),p),{}))}return l=Pp(e,c,t,o,n,!0),l}function Pp(e,t,o={},n,a,s){let r;const i=pn({actions:{}},o),l={deep:!0};let c,u,p=[],g=[],A;const w=n.state.value[e];!s&&!w&&(n.state.value[e]={});let h;function v(d){let y;c=u=!1,typeof d=="function"?(d(n.state.value[e]),y={type:Qa.patchFunction,storeId:e,events:A}):(Oi(n.state.value[e],d),y={type:Qa.patchObject,payload:d,storeId:e,events:A});const N=h=Symbol();Mt().then(()=>{h===N&&(c=!0)}),u=!0,oa(p,y,n.state.value[e])}const $=s?function(){const{state:y}=o,N=y?y():{};this.$patch(B=>{pn(B,N)})}:Lp;function m(){r.stop(),p=[],g=[],n._s.delete(e)}const b=(d,y="")=>{if(Sp in d)return d[Ii]=y,d;const N=function(){lr(n);const B=Array.from(arguments),V=[],j=[];function G(M){V.push(M)}function C(M){j.push(M)}oa(g,{args:B,name:N[Ii],store:E,after:G,onError:C});let L;try{L=d.apply(this&&this.$id===e?this:E,B)}catch(M){throw oa(j,M),M}return L instanceof Promise?L.then(M=>(oa(V,M),M)).catch(M=>(oa(j,M),Promise.reject(M))):(oa(V,L),L)};return N[Sp]=!0,N[Ii]=y,N},k={_p:n,$id:e,$onAction:Ap.bind(null,g),$patch:v,$reset:$,$subscribe(d,y={}){const N=Ap(p,d,y.detached,()=>B()),B=r.run(()=>Me(()=>n.state.value[e],V=>{(y.flush==="sync"?u:c)&&d({storeId:e,type:Qa.direct,events:A},V)},pn({},l,y)));return N},$dispose:m},E=qn(k);n._s.set(e,E);const f=(n._a&&n._a.runWithContext||Bb)(()=>n._e.run(()=>(r=Jr()).run(()=>t({action:b}))));for(const d in f){const y=f[d];if(ut(y)&&!zb(y)||jo(y))s||(w&&jb(y)&&(ut(y)?y.value=w[d]:Oi(y,w[d])),n.state.value[e][d]=y);else if(typeof y=="function"){const N=b(y,d);f[d]=N,i.actions[d]=y}}return pn(E,f),pn(Ve(E),f),Object.defineProperty(E,"$state",{get:()=>n.state.value[e],set:d=>{v(y=>{pn(y,d)})}}),n._p.forEach(d=>{pn(E,r.run(()=>d({store:E,app:n._a,pinia:n,options:i})))}),w&&s&&o.hydrate&&o.hydrate(E.$state,w),c=!0,u=!0,E}/*! #__NO_SIDE_EFFECTS__ */function Di(e,t,o){let n,a;const s=typeof t=="function";typeof e=="string"?(n=e,a=s?o:t):(a=e,n=e.id);function r(i,l){const c=Uh();return i=i||(c?Te(xp,null):null),i&&lr(i),i=kp,i._s.has(n)||(s?Pp(n,t,a,i):Ub(n,a,i)),i._s.get(n)}return r.$id=n,r}const Bi="__doxaMapToken",Gi="doxa:map-token",Cp="__doxaMapTokenBridge",na=()=>{if(typeof window>"u")return"";const e=window[Bi];return typeof e=="string"?e:""};function Ep(e){if(typeof window>"u")return"";const t=typeof e=="string"?e.trim():"";if(!t||t===na())return na();window[Bi]=t;try{window.dispatchEvent(new CustomEvent(Gi,{detail:t}))}catch{}return t}function Vb(){if(typeof window>"u"||window[Cp])return;const e=typeof window.MAP_TOKEN=="string"?window.MAP_TOKEN:"";e&&!na()&&(window[Bi]=e);try{Object.defineProperty(window,"MAP_TOKEN",{configurable:!0,get(){return na()},set(t){Ep(t)}}),window[Cp]=!0}catch{}}function Kb(){Vb();const e=ge(na());if(typeof window<"u"){const t=()=>{e.value=na()};window.addEventListener(Gi,t);try{qt(()=>window.removeEventListener(Gi,t))}catch{}}return e}function es(e){return om({loader:e,onError(t,o,n,a){a<=3?setTimeout(o,a*500):n()}})}const Hb={title:"كل مجموعات الشعوب",locations:"{n} موقعًا (مجموعة × بلد)",doxa:"مجموعات شعوب DOXA",frontier:"حدودية — لم يبدأ شيء",unreached:"غير مُبشَّرة — العمل يبدأ",reached:"مُبشَّرة — الكنيسة موجودة",hint:"انقر على صف لعرضها كلها · انقر مرة أخرى لعرض الكل",loading:"جارٍ تحميل كل مجموعات الشعوب…",loadError:"تعذّر تحميل الخريطة.",pray:"صلِّ لأجلهم ←",population:"السكان {n}"},qb={backToLegend:"العودة إلى المفتاح",closeDetailView:"إغلاق عرض التفاصيل",collapseLegend:"طيّ وسيلة الإيضاح",expandLegend:"توسيع وسيلة الإيضاح",toggleLegend:"إظهار وسيلة الإيضاح أو إخفاؤها"},Wb={prayForThem:"صلِّ من أجلهم",adoptThem:"تبنَّهم",moreInfo:"مزيد من المعلومات",zoomIn:"تكبير",zoomOut:"تصغير",switchToLightMode:"التبديل إلى الوضع الفاتح",switchToDarkMode:"التبديل إلى الوضع الداكن",resetView:"إعادة تعيين العرض",toggleFullscreen:"تبديل ملء الشاشة",aboutThisMap:"حول هذه الخريطة",closeMenu:"إغلاق القائمة",reloadMap:"إعادة تحميل الخريطة",showClusters:"إظهار المجموعات",clusterSettings:"إعدادات المجموعات",startAutoFly:"بدء الطيران التلقائي",stopFlight:"إيقاف الطيران",speedLabel:"السرعة:",speedOption:{slow:"بطيء",normal:"عادي",fast:"سريع"},shareEmbed:"مشاركة وتضمين",posterMap:"خريطة الملصق",prayerList:"قائمة الصلاة",cardDeck:"مجموعة البطاقات",printOptions:"خيارات الطباعة",showOnMap:"أظهر على الخريطة",close:"إغلاق",showOnMapAria:"أظهر {label} على الخريطة",cardStockAria:"حجم بطاقة الصلاة",previewPrintPoster:"معاينة وطباعة ملصق {label}",share:"مشاركة",shareSteps:["ضع هذه الخريطة على موقعك","أعدّ قائمة بمواقع الويب في مدينتك","علّمهم أن يضعوها أيضًا","علّمهم أن يعلّموا غيرهم وضعها","لنكثر الخرائط في كل مكان ليسوع!"],clearSelection:"إلغاء التحديد",noOptions:"لا توجد نتائج",renderingLocal:"يتم إنشاء صورة بجودة الطباعة في متصفحك — لا يتم تحميل أي شيء.",postersPerRow:"الملصقات في كل صف"},Yb={title:"الوصول إلى الإنترنت حيث تعيش الشعوب غير المنخرطة",bands:{yes:"متصل 60%+",partial:"جزئي 25–59%",no:"منخفض، أقل من 25%",unknown:"غير مُقاس"},peopleGroup:"شعب",caveat:"أرقام وطنية (البنك الدولي). بيانات الاتصال لكل مدينة غير متاحة للعامة — لا تستنتج حال مدينة من بيانات بلدها.",sheet:{close:"إغلاق",ai:"عُثر على هذه البيانات عبر بحث معمّق بالذكاء الاصطناعي — وقد تتضمن معلومات خاطئة.",dismiss:"إغلاق التنبيه",internetUsers:"مستخدمو الإنترنت",measured:"سنة القياس",mobilePer100:"اشتراكات الجوال لكل 100",peopleGroups:"الشعوب",topPlatform:"المنصة الأولى",unknown:"غير معروف",carriers:"شركات الاتصالات ومزودو الإنترنت ({n})",socialPlatforms:"منصات التواصل الاجتماعي",note:"أرقام وطنية وليست قياسات للمدن. أسماء شركات الاتصالات هي أسماء أصحاب سجلات ASN — وتشمل البنوك والجامعات إلى جانب مزودي الإنترنت، لذا فإن تصنيفها كشركات اتصالات تقدير مبني على الاسم وليس تصنيفًا مُتحقَّقًا منه."}},Xb={research_controls:"أدوات البحث",clustering:"التجميع",filters:"عوامل التصفية",pin_dim:"خفوت النقاط",export_poster:"تصدير ملصق…",reload_data:"إعادة تحميل البيانات",off:"إيقاف",native:"أصلي",mst:"الشجرة الممتدة",network:"شبكة",off_desc:"إظهار كل نقطة على حدة",native_desc:"تجميع دوائر Mapbox (الأسرع)",mst_desc:"شبكات تقارب بالشجرة الممتدة الصغرى",network_desc:"خطوط ربط بأقرب جار",search_languages:"ابحث عن اللغات…",search_religions:"ابحث عن الأديان…",reset_all:"إعادة تعيين الكل",no_languages:"لم تُحمَّل أي لغات بعد",no_religions:"لم تُحمَّل أي أديان بعد",unadopted:"غير متبنّى",min:"الأدنى",max:"الأعلى",adopted:"متبنَّاة",adoption:"التبني",engaged:"مُخْدُومَة",engagement:"المشاركة",unengaged:"يحتاج إلى انخراط",language:"اللغة",religion:"الدين",population:"السكان",any:"الكل",active_count:"{n} نشط",prayer_status:"حالة الصلاة",close:"إغلاق",clear:"مسح",map_controls:"أدوات التحكم بالخريطة"},Zb={bloc:"كتلة التقارب",gospel_access:"الوصول إلى الإنجيل",people:"الشعوب",people_name:"الشعب (الاسم)",praying:"يصلّون",religion_family:"عائلة الأديان",search_language:"ابحث عن لغة",search_people:"ابحث عن شعب",search_place:"ابحث عن مكان",search_religion:"ابحث عن دين",upgs_in_scope:"الشعوب ضمن النطاق",countries_touched:"الدول المشمولة",unreached:"غير موصولين",sum_population:"مجموع السكان",sum_praying:"مجموع المصلّين",charts:"الرسوم البيانية",table:"الجدول",cluster:"المجموعة",country:"الدولة",engagement:"المشاركة",language:"اللغة",language_family:"عائلة اللغة",people_group:"الشعب",population:"السكان",prayer:"الصلاة",region:"المنطقة",religion:"الدين",status:"الحالة",adopted:"متبنَّاة",filters:"عوامل التصفية",gospel_resources:"موارد الإنجيل",map:"الخريطة",search_placeholder:"ابحث عن الشعوب والأماكن واللغات والأديان…",any:"الكل",active_count:"{n} نشط",prayer_status:"حالة الصلاة",map_controls:"أدوات التحكم بالخريطة",close:"إغلاق",clear:"مسح",dashboard_title:"لوحة البحث الشاملة",align_dashboard:"محاذاة اللوحة",align_dashboard_tip:"إعادة تخطيط اللوحة إلى المحاذاة الافتراضية",selected:"المحدد",world:"العالم",vertical_legend:"مفتاح عمودي",groups_in_scope:"مجموعة ضمن النطاق",filter_by:"تصفية حسب",remove_filter:"إزالة التصفية",groups:"مجموعة",expand:"توسيع",collapse:"طيّ",place:"المكان"},Jb={labels:{country:"الدولة:",population:"السكان:",language:"اللغة:",religion:"الديانة:",languageFamily:"العائلة اللغوية:",peopleCommitted:"ملتزمون بالصلاة:"},messages:{noDescription:"لا يوجد وصف متاح."}},Qb={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"الملاحظات التوضيحية أدناه باللغة الإنجليزية."},mode:{gap:"الفجوة",coverage:"الموارد المتوفرة"},search:{placeholder:"ابحث عن شعب أو لغة أو رمز ISO",clear:"مسح البحث",none:"لا شيء يطابق هذا الاسم أو اللغة أو الرمز.",placeholderShort:"شعب أو لغة أو رمز ISO"},legend:{title:"شعوب غير مبلَّغة ولا يوجد لها أي مورد إنجيلي",band60:"⁦60%+⁩ بلا أي مورد",band30:"⁦30–59%⁩",bandSome:"بعض الشعوب",bandAll:"كل الشعوب لديها شيء",tier2:"الكتاب المقدس والفيلم",tier1:"وُجد بعض الموارد",tier0:"لا شيء",hnr:"يمكنهم السماع، ولا يوجد نص",showAll:"عرض كل الشعوب",titleCoverage:"شعوب غير مبلَّغة ويوجد لها بعض الموارد الإنجيلية",cov80:"⁦80%+⁩ لديهم شيء",cov50:"⁦50–79%⁩",cov1:"⁦1–49%⁩",cov0:"لا شيء لأي منهم",tallyEach:"كل",tallyIs:"هو شعب واحد —",tallyOf:"منها،",tallyLink:"لديها رابط",doxa0:"لدى الجميع شيء",doxa1:"‪1–4‬ بلا شيء",doxa5:"‪5–14‬",doxa15:"‪15–39‬",doxa40:"‪40+‬",cvd1:"‪1–4‬ لديهم موارد",cvd5:"‪5–14‬",cvd15:"‪15–39‬",cvd40:"‪40+‬",onMap:"شعوب دوكسا على هذه الخريطة",notPlaced:"ضمن القائمة، بلا موقع بعد",outOfScope:"لا توجد شعوب دوكسا — غير ملوَّنة"},tabs:{groups:"أكبر الشعوب",countries:"حسب البلد",regions:"حسب المنطقة",noprayer:"لا أحد يصلّي",hnr:"يسمعون، بلا نص"},stat:{language:"اللغة",population:"عدد السكان",countries:"البلدان",peopleGroups:"الشعوب",noResource:"لا يوجد أي مورد",peopleAffected:"الأشخاص المتأثرون",haveScripture:"لديهم الكتاب المقدس",haveFilm:"لديهم الفيلم",haveAudio:"لديهم كتاب مقدس مسموع",signLanguages:"لغات الإشارة",growingUnreached:"متزايدون وغير مبلَّغين",deathsDay:"الوفيات المقدَّرة يوميًا"},sheet:{ownLanguage:"بلغتهم الأم",close:"إغلاق",loading:"جارٍ تحميل الموارد…",pray:"صلِّ من أجل",everyResource:"كل الموارد بـ",alsoSpeak:"يتحدثون أيضًا"},res:{scripture:"الكتاب المقدس",film:"الفيلم",audio:"صوتي",bibleVideo:"فيديو كتابي",bibleStories:"Open Bible Stories",gospelAudio:"صوتيات الإنجيل",gospelPresentation:"عرض للإنجيل",scriptureEarth:"Scripture Earth",training:"تدريب على التلمذة",jesusFilm:"فيلم يسوع"},state:{noneFound:"لا شيء",noneAtFcbh:"لا شيء في FCBH",noneAtGrn:"لا شيء في GRN",notInZume:"ليست ضمن لغات Zume الـ54",linkChecked:"تم التحقق من الرابط",unchecked:"لم يُتحقق منه",linkDead:"رابط معطّل",wrongLanguage:"لغة غير صحيحة",varietyNotStated:"(اللهجة غير محددة)",inLanguage:"بـ"},guide:{dotVsCountry:"كل نقطة هي شعب واحد من شعوب دوكسا ولغته؛ أما لون البلد فهو عدد تلك الشعوب.",noneFoundShort:"«لا شيء» تعني غير موجود في المصادر التي بحثنا فيها — وليست دليلًا على عدم وجوده.",tapCountry:"اضغط على بلد لترى الموارد الفعلية، شعبًا شعبًا."},tables:{title:"موارد الإنجيل — البيانات",showing:"عرض",of:"من",for:"لـ",filteredTo:"مصفّى حسب",showAll:"عرض كل الموارد",t_doxa:"دوكسا — الوصول إلى الإنجيل",t_links:"كل مورد ورابطه",t_nothing:"حيث لا يوجد شيء",t_countrygap:"الفجوة حسب البلد",t_translation:"يسمعون ولا نص لديهم",t_translationcountry:"أين نترجم",t_gaps:"الفجوات والفرص",t_bridges:"جسور المدن",t_deaf:"فجوة الصم",t_resources:"الموارد حسب الشعب",t_languages:"اللغات حسب البلد",t_growth:"الوصول مقابل نمو السكان"},pages:{listTitle:"موارد الإنجيل حسب اللغة",chartsTitle:"موارد الإنجيل — حسب اللغة",loadingTables:"جارٍ تحميل جداول الموارد…"},list:{noText:"بلا نص مقدس",hasScripture:"لديها الكتاب المقدس",allLanguages:"كل اللغات",peopleGroup:"شعب",peopleGroups:"شعوب",scriptureHere:"الكتاب المقدس بهذه اللغة"},columns:{"People group":"الشعب",Country:"البلد",Region:"المنطقة",Language:"اللغة",Population:"عدد السكان",Religion:"الديانة","Gospel access":"الوصول إلى الإنجيل",Resources:"الموارد",Scripture:"الكتاب المقدس","Bible video":"فيديو كتابي","Gospel presentation":"عرض للإنجيل",Countries:"البلدان","People groups":"الشعوب"}},e$={search:"ابحث عن الشعوب…",hide_filters:"إخفاء عوامل التصفية",show_filters:"إظهار عوامل التصفية",total:"الإجمالي",showing:"المعروض",load_more:"عرض المزيد",full_profile:"الملف الكامل",wagf_region:"المنطقة",wagf_block:"كتلة التقارب",rop1:"الشعب",religion:"الدين",exact_filter:"تطابق تام",clear_all:"مسح الكل",loading:"جارٍ التحميل…",no_results:"لا توجد شعوب مطابقة لهذا التصفية.",type_to_search:"اكتب للبحث...",load_failed:"تعذّر تحميل بيانات الشعوب. هذه مشكلة اتصال، وليست مشكلة في التصفية."},t$={title:{adoption:"تقدم التبني",affinityBlocs:"كتل القرابة",doxaRegions:"مناطق Doxa",engagement:"تقدم الانخراط",gospelResources:"موارد الإنجيل",languageFamilies:"العائلات اللغوية",prayer:"تقدم الصلاة",upg100List:"قائمة UPG 100 الخاصة بي"},header:{collapsed:"وسيلة الإيضاح",peopleGroupFallback:"مجموعة الشعب",default:"مفتاح الخريطة"},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:"اللغات"},tabInfo:{upg100Region:"المنطقة — ترتّب قوائم UPG-100 حسب منطقة العالم (أفريقيا، الهند، الشرق الأوسط، الصمّ، …). الأعداد هي مجموع UUPG والسكان لكل قائمة تحتها.",upg100Zone:"قوائم UPG-100 — كل واحدة هي قائمة صلاة للشعوب غير الموصول إليها في منطقة ما، وهي ما ترسمه الخريطة وتلوّنه. تُطبع كل قائمة ككُتيّب خاص بها.",upg100Group:"مجموعة شعبية — المجموعات غير الموصول إليها داخل القائمة، الأكثر حاجة للصلاة أولاً. كل نقطة على الخريطة هي واحدة منها."},a11y:{expandRow:"توسيع {label}",collapseRow:"طي {label}",clearSelection:"إلغاء التحديد"}},o$={menuComingSoon:"القائمة قادمة قريباً",pinHint:{tapDot:"اضغط على نقطة ملوّنة — لا يزال هناك من يحتاج إلى الصلاة"},upg100WallHeading:"قائمتي UPG 100 — قوائم الصلاة والملصقات",upg100WallTag:"تعبئة للصلاة",upg100WallIntro:"وزّع مهمة الصلاة في مجموعات من خمسين ومئة — كما أطعم يسوع الخمسة آلاف (لوقا ٩:١٤). كل ملصق هو قائمة من 100 يمكنك أن تصلي بها وتطبعها وتعلّقها على الحائط — مصلّيًا لأجلهم باسم شعبهم."},n$={clusterByRegion:"حسب منطقة Doxa",clusterByLanguageFamily:"حسب العائلة اللغوية",clusterByGospelResource:"حسب مورد الإنجيل"},a$={country:{wagfRegion:"منطقة WAGF",wagfBlock:"كتلة WAGF",country:"الدولة",uupgCount:"عدد UUPG"}},s$={header:"دورة الصلاة الحالية",lap:"الدورة",upgs:"UUPGs",separator:" من "},r$={"%count% people groups in %countries% countries":"%count% مجموعة شعبية في %countries% دولة","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"تضم %region% %count% مجموعة بشرية في %countries% دولة. يشير لون كل نقطة إلى عدد الأشخاص الذين يصلّون من أجل تلك المجموعة البشرية.","1+ People Praying":"شخص واحد أو أكثر يصلّي","100+ People Praying":"أكثر من 100 شخص يصلّون",Adopted:"متبنَّاة","Adoption Progress":"تقدُّم التبنّي","All Regions":"جميع المناطق","Alternate Names":"الأسماء البديلة","Choose a region":"اختر منطقة","Clear All":"مسح الكل",Countries:"الدول","Countries in this region":"الدول في هذه المنطقة",Country:"الدولة",Engaged:"مُخْدُومَة","Engagement Progress":"تقدُّم الانخراط","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"كل مجموعة بشرية غير مبشرة تتبناها كنيسة ملتزمة بالصلاة والعطاء والإرسال","Exact Search":"بحث دقيق","Find unreached people groups by region and country.":"ابحث عن المجموعات البشرية غير المُبلَّغة حسب المنطقة والدولة.","Full Profile":"الملف الكامل",Goal:"الهدف","Hide Filters":"إخفاء المرشحات","Hide country posters":"إخفاء ملصقات الدولة",Intercessors:"المتشفعين","Load More":"تحميل المزيد","Loading results...":"النتائج قيد التحميل...",Map:"الخريطة","Mobilize 100+ people praying daily for each DOXA people group":"حشد أكثر من 100 شخص للصلاة يوميًا من أجل كل مجموعة بشرية من مجموعات دوكسا","No One Praying":"لا أحد يصلّي","No options found":"لم يتم العثور على أي خيارات","No poster has been generated for this country yet.":"لم يُنشأ أي ملصق لهذه الدولة بعد.","No unengaged people groups by 2033":"الهدف هو القضاء على جميع الشعوب الغير مخدومة روحيا بحلول عام 2033","Not Adopted":"لم يتم انتماؤه",Other:"أخرى","Page Not Found":"الصفحة غير موجودة","People Group":"مجموعة بشرية","People Groups":"مجموعات شعبية","People committed to praying":"الأشخاص الذين التزموا بالصلاة","Pick a region above, or click any dot to open that people group's country.":"اختر منطقة أعلاه، أو انقر على أي نقطة لفتح دولة تلك المجموعة البشرية.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"اختر منطقة أو دولة من تبويب قائمة المناطق لتضييق نطاق لوحة المعلومات هذه.",Population:"عدد السكان","Prayer Coverage":"تغطية الصلاة","Prayer coverage progress":"تقدم تغطية الصلاة","Region Dashboards":"لوحات معلومات المناطق","Region dashboard":"لوحة معلومات المنطقة",Regions:"المناطق","Regions List":"قائمة المناطق",Religion:"الدين","Search names, country/continent, religions...":"ابحث عن الأسماء، الدولة/القارة، الأديان...","See %region% dashboard":"عرض لوحة معلومات %region%","See All":"عرض جميع العناصر",Select:"اختر","Select View":"اختر العرض","Show Filters":"إظهار عوامل التصفية","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"توجد %count% مجموعات بشرية في %country%. تحقق من الخريطة لمعرفة المجموعات البشرية الواقعة على حدود هذه الدولة أيضًا.",Total:"المجموع","Type to search...":"اكتب ما تريد البحث عنه...","Unengaged people groups":"المجموعات الشعبية غير المَخْدُومَة","View country posters":"عرض ملصقات الدولة",Views:"العروض","WAGF Block":"كتلة WAGF","WAGF Region":"منطقة WAGF","people groups adopted":"مجموعات شعبية متبنَّاة","people groups engaged":"مجموعات شعبية مُخْدُومَة","Outside this region":"خارج هذه المنطقة",Pray:"صلّي","Loading region dashboards…":"جارٍ تحميل لوحات المناطق…","No regions found.":"لم يتم العثور على مناطق.","Region data could not be loaded. This is a connection problem, not a filter.":"تعذّر تحميل بيانات المناطق. هذه مشكلة في الاتصال، وليست تصفية.","People groups could not be loaded. This is a connection problem, not a filter.":"تعذّر تحميل الشعوب. هذه مشكلة في الاتصال، وليست تصفية.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"تعذّر تشغيل الخريطة. هذه مشكلة في رمز الخريطة أو في الاتصال، وليست تصفية — والأرقام أعلاه غير متأثرة."},i$={placeholder:"شعب، مكان، لغة، ديانة",labels:{people:"الشعب:",place:"المكان:",language:"اللغة:",religion:"الديانة:"},kinds:{people:"الشعب + الدولة",peopleGroup:"الشعب",bloc:"كتلة التقارب",cluster:"مجموعة شعوب",country:"الدولة",region:"المنطقة",family:"عائلة اللغة",languageKind:"اللغة",dialect:"اللهجة",religionKind:"الدين"},sections:{within:"ضمن {selection}",allData:"كل بيانات DOXA"}},l$={title:"استوديو الإضافات",navLabel:"الإضافات حسب القدرة",countLabel:"{bundles} حزمة · {elements} إضافة مدرجة هنا",changeLanguage:"تغيير اللغة",copyEmbed:"نسخ رمز التضمين",copy:"نسخ",copied:"تم النسخ",scriptEmbed:"تضمين عبر سكربت",loading:"جارٍ تحميل {name}…",couldNotLoad:"تعذّر تحميل {name}.",chooseElement:"اختر إضافة من القائمة.",filterPlaceholder:"تصفية الإضافات",collapseAll:"طي الكل",noMatch:"لا توجد إضافة تطابق «{query}».",openSection:"فتح {cap}، {label}",part:"جزء",noStandalone:"بلا صفحة مستقلة",cap5:"هيكل التطبيق",cap4:"مركّب",cap3:"متعدد العروض",cap2:"إعداد مسبق",cap1:"مفرد",toggleList:"إظهار القائمة أو إخفاؤها",openViews:"فتح قائمة العروض",expandList:"توسيع القائمة",collapseList:"طي القائمة",collapse:"طي",partOf:"جزء من {name}، غير منشور بمفرده"},c$={prayer:"الصلاة",adoption:"التبني",engagement:"المشاركة","affinity-blocks":"الشعوب",regions:"المناطق",countries:"الدول","language-families":"اللغات",religion:"الأديان",family:"عائلة اللغة",language:"اللغة",dialect:"اللهجة/التنوع",bloc:"كتلة التقارب",cluster:"المجموعة",group:"الشعب",pgic:"الشعب في الدولة",region:"منطقة WAGF",block:"كتلة WAGF",country:"الدولة",upg100Region:"المنطقة",upg100Zone:"قوائم UPG-100",upg100Group:"مجموعة شعبية",selectView:"اختر العرض",views:"العروض",prayerResources:"موارد الصلاة",map:"الخريطة"},u$={kicker:"DOXA · الرؤية",title:"كل شعب. كل مكان.",tagline:"من كل مجموعات الشعوب في العالم إلى التي تصلي لأجلها DOXA، محسوبةً من البيانات.",funnelLabel:"من كل مجموعات الشعوب إلى مجموعات شعوب DOXA",allLabel:"مجموعات الشعوب",allNote:"كل مجموعة شعب، في كل بلد تعيش فيه",unreachedLabel:"غير المُبشَّرة",unreachedNote:"أقل من 2% إنجيليون",frontierLabel:"الحدودية",frontierNote:"أقل من 0.1% إنجيليون",doxaLabel:"مجموعات شعوب DOXA",doxaNote:"{frontier} منها حدودية",people:"{n} نسمة",sources:"مجموعات الشعوب: {imb}، بيانات {date}. قائمة DOXA: ‏pray.doxa.life، {date2}.",howCounted:"كيف تُحسب هذه الأرقام",ruleAll:"كل صف في بيانات IMB لمجموعات الشعوب: مجموعة شعب واحدة في بلد واحد.",ruleUnreached:"أولوية الضياع لدى IMB من 0 إلى 2: أقل من 2% إنجيليون.",ruleFrontier:"أولوية الضياع لدى IMB رقم 0: أقل من 0.1% إنجيليون. جزء من غير المُبشَّرة.",ruleDoxa:"كل مجموعة في قائمة صلاة DOXA، مطابَقة مع بيانات IMB حسب الشعب والبلد. ليست كلها حدودية."},p$={title:"Alle Volksgruppen",locations:"{n} Standorte (Gruppe × Land)",doxa:"DOXA-Volksgruppen",frontier:"Frontier — noch nichts begonnen",unreached:"Unerreicht — Arbeit beginnt",reached:"Erreicht — Gemeinde ist da",hint:"Zeile anklicken, um alle zu sehen · erneut klicken für alle",loading:"Alle Volksgruppen werden geladen…",loadError:"Die Karte konnte nicht geladen werden.",pray:"Für sie beten →",population:"Einw. {n}"},d$={backToLegend:"Zurück zur Legende",closeDetailView:"Detailansicht schließen",collapseLegend:"Legende einklappen",expandLegend:"Legende ausklappen",toggleLegend:"Legende ein- oder ausblenden"},g$={prayForThem:"Für sie beten",adoptThem:"Sie adoptieren",moreInfo:"Mehr Infos",zoomIn:"Vergrößern",zoomOut:"Verkleinern",switchToLightMode:"Zum hellen Modus wechseln",switchToDarkMode:"Zum dunklen Modus wechseln",resetView:"Ansicht zurücksetzen",toggleFullscreen:"Vollbild umschalten",aboutThisMap:"Über diese Karte",closeMenu:"Menü schließen",reloadMap:"Karte neu laden",showClusters:"Cluster anzeigen",clusterSettings:"Cluster-Einstellungen",startAutoFly:"Auto-Flug starten",stopFlight:"Flug stoppen",speedLabel:"Geschwindigkeit:",speedOption:{slow:"Langsam",normal:"Normal",fast:"Schnell"},shareEmbed:"Teilen und einbetten",posterMap:"Posterkarte",prayerList:"Gebetsliste",cardDeck:"Kartenset",printOptions:"Druckoptionen",showOnMap:"Auf der Karte zeigen",close:"Schließen",showOnMapAria:"{label} auf der Karte zeigen",cardStockAria:"Größe der Gebetskarte",previewPrintPoster:"Vorschau und Druck des Posters {label}",share:"Teilen",shareSteps:["Binde diese Karte auf deiner Website ein","Erstelle eine Liste der Websites in deiner Stadt","Zeige ihnen, wie sie sie ebenfalls einbinden","Zeige ihnen, wie sie es anderen beibringen","Lasst uns Karten überall vermehren – für Jesus!"],clearSelection:"Auswahl aufheben",noOptions:"Keine Optionen gefunden",renderingLocal:"Ein druckfähiges Bild wird in deinem Browser erzeugt — es wird nichts hochgeladen.",postersPerRow:"Poster pro Zeile"},f$={title:"Internetzugang dort, wo Volksgruppen ohne Engagement leben",bands:{yes:"verbunden 60%+",partial:"teilweise 25–59%",no:"gering, unter 25%",unknown:"nicht gemessen"},peopleGroup:"Volksgruppe",caveat:"LANDESWEITE Zahlen (Weltbank). Konnektivität je Stadt ist nicht öffentlich verfügbar — schließen Sie nicht vom Land auf eine Stadt.",sheet:{close:"Schließen",ai:"Diese Daten wurden durch KI-gestützte Recherche gefunden — sie können falsche Angaben enthalten.",dismiss:"Ausblenden",internetUsers:"Internetnutzer",measured:"Gemessen",mobilePer100:"Mobilfunk pro 100",peopleGroups:"Volksgruppen",topPlatform:"Wichtigste Plattform",unknown:"unbekannt",carriers:"Netzbetreiber & ISPs ({n})",socialPlatforms:"Soziale Plattformen",note:"Landesweite Zahlen, keine Messungen je Stadt. Betreibernamen sind ASN-Registerinhaber — darunter neben ISPs auch Banken und Universitäten; die Einstufung als Netzbetreiber ist daher eine Namensheuristik, keine geprüfte Klassifizierung."}},h$={research_controls:"Forschungssteuerung",clustering:"Clustering",filters:"Filter",pin_dim:"Pin-Transparenz",export_poster:"Poster exportieren…",reload_data:"Daten neu laden",off:"Aus",native:"Nativ",mst:"MST",network:"Netzwerk",off_desc:"Jeden Pin einzeln anzeigen",native_desc:"Mapbox-Kreiscluster (am schnellsten)",mst_desc:"Affinitätsnetze über minimalen Spannbaum",network_desc:"Verbindungslinien zum nächsten Nachbarn",search_languages:"Sprachen suchen…",search_religions:"Religionen suchen…",reset_all:"Alles zurücksetzen",no_languages:"Noch keine Sprachen geladen",no_religions:"Noch keine Religionen geladen",unadopted:"Nicht adoptiert",min:"min",max:"max",adopted:"Adoptiert",adoption:"Adoption",engaged:"Engagiert",engagement:"Engagement",unengaged:"Braucht Engagement",language:"Sprache",religion:"Religion",population:"Bevölkerung",any:"Alle",active_count:"{n} aktiv",prayer_status:"Gebetsstatus",close:"Schließen",clear:"Zurücksetzen",map_controls:"Kartensteuerung"},m$={bloc:"Affinitätsblock",gospel_access:"Zugang zum Evangelium",people:"Völker",people_name:"Volk (Name)",praying:"Betend",religion_family:"Religionsfamilie",search_language:"Sprache suchen",search_people:"Volk suchen",search_place:"Ort suchen",search_religion:"Religion suchen",upgs_in_scope:"UPGs im Bereich",countries_touched:"berührte Länder",unreached:"unerreicht",sum_population:"Σ Bevölkerung",sum_praying:"Σ Betende",charts:"Diagramme",table:"Tabelle",cluster:"Cluster",country:"Land",engagement:"Engagement",language:"Sprache",language_family:"Sprachfamilie",people_group:"Volk",population:"Bevölkerung",prayer:"Gebet",region:"Region",religion:"Religion",status:"Status",adopted:"Adoptiert",filters:"Filter",gospel_resources:"Evangeliumsressourcen",map:"Karte",search_placeholder:"Volksgruppen, Orte, Sprachen, Religionen suchen…",any:"Alle",active_count:"{n} aktiv",prayer_status:"Gebetsstatus",map_controls:"Kartensteuerung",close:"Schließen",clear:"Zurücksetzen",dashboard_title:"Big-Picture-Forschungsdashboard",align_dashboard:"Layout ausrichten",align_dashboard_tip:"Das Dashboard-Layout auf die Standardausrichtung zurücksetzen",selected:"Ausgewählt",world:"Welt",vertical_legend:"Vertikale Legende",groups_in_scope:"Volksgruppen im Bereich",filter_by:"Filtern nach",remove_filter:"Filter entfernen",groups:"Volksgruppen",expand:"Aufklappen",collapse:"Zuklappen",place:"Ort"},b$={labels:{country:"Land:",population:"Bevölkerung:",language:"Sprache:",religion:"Religion:",languageFamily:"Sprachfamilie:",peopleCommitted:"Zum Gebet verpflichtet:"},messages:{noDescription:"Keine Beschreibung verfügbar."}},$$={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Die erläuternden Hinweise unten sind auf Englisch."},mode:{gap:"Lücke",coverage:"Gefundene Ressourcen"},search:{placeholder:"Volksgruppe, Sprache oder ISO-Code suchen",clear:"Suche löschen",none:"Nichts passt zu diesem Namen, dieser Sprache oder diesem Code.",placeholderShort:"Gruppe, Sprache oder ISO-Code"},legend:{title:"Unerreichte Volksgruppen ohne gefundene Evangeliums-Ressource",band60:"60 %+ ohne jede Ressource",band30:"30–59 %",bandSome:"einige Gruppen",bandAll:"alle Gruppen haben etwas",tier2:"Bibeltext und Film",tier1:"etwas gefunden",tier0:"nichts gefunden",hnr:"können hören, kein Text",showAll:"Alle Gruppen anzeigen",titleCoverage:"Unerreichte Volksgruppen mit einer gefundenen Evangeliums-Ressource",cov80:"80 %+ haben etwas",cov50:"50–79 %",cov1:"1–49 %",cov0:"für keinen etwas gefunden",tallyEach:"Jeder",tallyIs:"ist EINE Volksgruppe —",tallyOf:"davon,",tallyLink:"mit einem Link",doxa0:"alle haben etwas",doxa1:"1–4 ohne",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 erreicht",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Doxa-Volksgruppen auf dieser Karte",notPlaced:"auf der Liste, noch nicht verortet",outOfScope:"keine Doxa-Volksgruppen — nicht eingefärbt"},tabs:{groups:"Größte Gruppen",countries:"Nach Land",regions:"Nach Region",noprayer:"Niemand betet",hnr:"Hören ja, Text nein"},stat:{language:"Sprache",population:"Bevölkerung",countries:"Länder",peopleGroups:"Volksgruppen",noResource:"Keine Ressource gefunden",peopleAffected:"Betroffene Menschen",haveScripture:"Haben Bibeltext",haveFilm:"Haben Film",haveAudio:"Haben Hörbibel",signLanguages:"Gebärdensprachen",growingUnreached:"Wachsend & unerreicht",deathsDay:"Geschätzte Todesfälle/Tag"},sheet:{ownLanguage:"In ihrer eigenen Sprache",close:"Schließen",loading:"Ressourcen werden geladen…",pray:"Betet für",everyResource:"Alle Ressourcen auf",alsoSpeak:"Sprechen ebenfalls"},res:{scripture:"Bibeltext",film:"Film",audio:"Audio",bibleVideo:"Bibelvideo",bibleStories:"Open Bible Stories",gospelAudio:"Evangeliums-Audio",gospelPresentation:"Evangeliums-Darstellung",scriptureEarth:"Scripture Earth",training:"Jüngerschaftstraining",jesusFilm:"JESUS Film"},state:{noneFound:"nichts gefunden",noneAtFcbh:"nichts bei FCBH",noneAtGrn:"nichts bei GRN",notInZume:"nicht in Zumes 54",linkChecked:"Link geprüft",unchecked:"ungeprüft",linkDead:"Link tot",wrongLanguage:"falsche Sprache",varietyNotStated:"(Varietät nicht angegeben)",inLanguage:"auf"},guide:{dotVsCountry:"Ein Punkt ist EINE Volksgruppe von Doxa mit ihrer eigenen Sprache; ein Land ist die ANZAHL dieser Gruppen.",noneFoundShort:"„Nichts gefunden“ heißt: nicht in den geprüften Quellen — nie ein Beweis, dass es nichts gibt.",tapCountry:"Tippen Sie auf ein Land, um die Ressourcen Gruppe für Gruppe zu sehen."},tables:{title:"Evangeliums-Ressourcen — Daten",showing:"Zeige",of:"von",for:"für",filteredTo:"Gefiltert nach",showAll:"Alle Ressourcen zeigen",t_doxa:"Doxa — Zugang zum Evangelium",t_links:"Jede Ressource + Link",t_nothing:"Wo nichts gefunden wurde",t_countrygap:"Die Lücke nach Land",t_translation:"Hören ja, Text nein",t_translationcountry:"Wo übersetzen",t_gaps:"Lücken & Chancen",t_bridges:"Stadt-Brücken",t_deaf:"Die Gehörlosen-Lücke",t_resources:"Ressourcen nach Volksgruppe",t_languages:"Sprachen nach Land",t_growth:"Zugang vs. Bevölkerungswachstum"},pages:{listTitle:"Evangeliums-Ressourcen nach Sprache",chartsTitle:"Evangeliums-Ressourcen — nach Sprache",loadingTables:"Ressourcentabellen werden geladen…"},list:{noText:"Kein Bibeltext",hasScripture:"Hat Bibeltext",allLanguages:"Alle Sprachen",peopleGroup:"Volksgruppe",peopleGroups:"Volksgruppen",scriptureHere:"Bibeltext in dieser Sprache"},columns:{"People group":"Volksgruppe",Country:"Land",Region:"Region",Language:"Sprache",Population:"Bevölkerung",Religion:"Religion","Gospel access":"Zugang zum Evangelium",Resources:"Ressourcen",Scripture:"Bibeltext","Bible video":"Bibelvideo","Gospel presentation":"Evangeliums-Darstellung",Countries:"Länder","People groups":"Volksgruppen"}},y$={search:"Volksgruppen suchen…",hide_filters:"Filter ausblenden",show_filters:"Filter anzeigen",total:"Gesamt",showing:"Angezeigt",load_more:"Mehr laden",full_profile:"Vollständiges Profil",wagf_region:"Region",wagf_block:"Affinitätsblock",rop1:"Volk",religion:"Religion",exact_filter:"Exakt",clear_all:"Alle löschen",loading:"Wird geladen…",no_results:"Keine Volksgruppen entsprechen diesem Filter.",type_to_search:"Zum Suchen tippen...",load_failed:"Die Daten konnten nicht geladen werden. Das ist ein Verbindungsproblem, nicht Ihr Filter."},_$={title:{adoption:"Adoptionsfortschritt",affinityBlocs:"Affinitätsblöcke",doxaRegions:"Doxa-Regionen",engagement:"Engagement-Fortschritt",gospelResources:"Evangeliumsressourcen",languageFamilies:"Sprachfamilien",prayer:"Gebetsfortschritt",upg100List:"Meine UPG-100-Liste"},header:{collapsed:"Legende",peopleGroupFallback:"Volksgruppe",default:"Legende"},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",name:"Name"},footer:{total:"Gesamt"},sortByUpgs:"Nach UUPGs sortieren",sortByPop:"Nach Bevölkerung sortieren",colLabel:{religion:"UUPG-Religionen",prayer:"Gebetsstatus",engagement:"Engagement-Status",adoption:"Adoptionsstatus",status:"Status"},titleBar:{legend:"Legende",peopleGroups:"Völker",wagfRegions:"WAGF-Regionen",languages:"Sprachen"},tabInfo:{upg100Region:"Region — sortiert die UPG-100-Listen nach Weltgegend (Afrika, Indien, Naher Osten, Gehörlose, …). Die Zahlen sind die UUPGs und die Bevölkerung aller darunterliegenden Listen zusammen.",upg100Zone:"UPG-100-Listen — jede ist eine Gebetsliste der unerreichten Volksgruppen eines Gebiets und das, was die Karte zeichnet und einfärbt. Jede Liste wird als eigenes Heft gedruckt.",upg100Group:"Volksgruppe — die einzelnen unerreichten Gruppen innerhalb einer Liste, größter Gebetsbedarf zuerst. Jeder Kartenpunkt ist eine davon."},a11y:{expandRow:"{label} ausklappen",collapseRow:"{label} einklappen",clearSelection:"Auswahl aufheben"}},v$={menuComingSoon:"Menü folgt in Kürze",pinHint:{tapDot:"Tippe auf einen farbigen Punkt — jemand braucht noch Gebet"},upg100WallHeading:"Meine UPG-100-Liste — Gebetslisten und Poster",upg100WallTag:"Gebetsmobilisierung",upg100WallIntro:"Teilen Sie die Gebetsaufgabe in Gruppen zu fünfzig und hundert auf — so wie Jesus die 5.000 speiste (Lukas 9,14). Jedes Poster ist eine 100er-Liste, die Sie beten, drucken und an die Wand hängen können — und für sie mit dem Namen ihrer Volksgruppe beten."},w$={clusterByRegion:"Nach Doxa-Region",clusterByLanguageFamily:"Nach Sprachfamilie",clusterByGospelResource:"Nach Evangeliumsressource"},k$={country:{wagfRegion:"WAGF-Region",wagfBlock:"WAGF-Block",country:"Land",uupgCount:"Anzahl UUPG"}},x$={header:"AKTUELLE GEBETSRUNDE",lap:"Runde",upgs:"UUPGs",separator:" von "},L$={"%count% people groups in %countries% countries":"%count% Volksgruppen in %countries% Ländern","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% hat %count% Volksgruppen in %countries% Ländern. Die Farbe jedes Punktes zeigt, wie viele Menschen für diese Volksgruppe beten.","1+ People Praying":"1+ Menschen beten","100+ People Praying":"100+ Menschen beten",Adopted:"Adoptiert","Adoption Progress":"Adoptionsfortschritt","All Regions":"Alle Regionen","Alternate Names":"Alternative Namen","Choose a region":"Region auswählen","Clear All":"Alle löschen",Countries:"Länder","Countries in this region":"Länder in dieser Region",Country:"Land",Engaged:"Engagiert","Engagement Progress":"Fortschritt der Arbeit vor Ort","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Jede einzelne der völlig unerreichten Volksgruppen soll von einer Ortsgemeinde adoptiert werden, durch Beten, Geben und Senden","Exact Search":"Exakte Suche","Find unreached people groups by region and country.":"Finde unerreichte Volksgruppen nach Region und Land.","Full Profile":"Vollständiges Profil",Goal:"Ziel","Hide Filters":"Filter ausblenden","Hide country posters":"Länderposter ausblenden",Intercessors:"Fürbitter","Load More":"Mehr laden","Loading results...":"Ergebnisse werden geladen...",Map:"Karte","Mobilize 100+ people praying daily for each DOXA people group":"Mobilisiere 100+ Menschen, die täglich für jede DOXA-Volksgruppe beten","No One Praying":"Niemand betet","No options found":"Keine Standorte gefunden","No poster has been generated for this country yet.":"Für dieses Land wurde noch kein Poster erstellt.","No unengaged people groups by 2033":"Dass es bis 2033 keine völlig unerreichte Volksgruppe mehr gibt","Not Adopted":"noch nicht adoptiert",Other:"Andere","Page Not Found":"Seite nicht gefunden","People Group":"Personengruppe","People Groups":"Volksgruppen","People committed to praying":"Menschen, die sich dem Beten verpflichtet haben","Pick a region above, or click any dot to open that people group's country.":"Wählen Sie oben eine Region aus oder klicken Sie auf einen Punkt, um das Land dieser Volksgruppe zu öffnen.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Wählen Sie im Tab „Regionenliste“ eine Region oder ein Land aus, um dieses Dashboard einzugrenzen.",Population:"Bevölkerung","Prayer Coverage":"Gebetsabdeckung","Prayer coverage progress":"Fortschritt der Gebetsabdeckung","Region Dashboards":"Regionen-Dashboards","Region dashboard":"Regions-Dashboard",Regions:"Regionen","Regions List":"Regionenliste",Religion:"Primäre Religion","Search names, country/continent, religions...":"Suche nach Namen, Land/Kontinent, Religionen...","See %region% dashboard":"Dashboard anzeigen: %region%","See All":"Alle anzeigen",Select:"Auswählen","Select View":"Ansicht auswählen","Show Filters":"Filter anzeigen","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"In %country% gibt es %count% Volksgruppen. Sieh auch auf der Karte nach den Volksgruppen an der Grenze dieses Landes.",Total:"Gesamt","Type to search...":"Geben Sie etwas ein, um danach zu suchen","Unengaged people groups":"Unberührte Volksgruppen","View country posters":"Länderposter ansehen",Views:"Ansichten","WAGF Block":"WAGF-Block","WAGF Region":"WAGF-Region","people groups adopted":"adoptierte Volksgruppen","people groups engaged":"engagierte Volksgruppen","Outside this region":"Außerhalb dieser Region",Pray:"Ich bete","Loading region dashboards…":"Regions-Dashboards werden geladen…","No regions found.":"Keine Regionen gefunden.","Region data could not be loaded. This is a connection problem, not a filter.":"Regionsdaten konnten nicht geladen werden. Das ist ein Verbindungsproblem, kein Filter.","People groups could not be loaded. This is a connection problem, not a filter.":"Volksgruppen konnten nicht geladen werden. Das ist ein Verbindungsproblem, kein Filter.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"Die Karte konnte nicht starten. Das ist ein Karten-Token- oder Verbindungsproblem, kein Filter — die Zahlen oben sind davon nicht betroffen."},A$={placeholder:"Volk, Ort, Sprache, Religion",labels:{people:"Volk:",place:"Ort:",language:"Sprache:",religion:"Religion:"},sections:{within:"Innerhalb {selection}",allData:"Alle DOXA-Daten"},kinds:{people:"Volk + Land",peopleGroup:"Volk",bloc:"Affinitätsblock",cluster:"Völkercluster",country:"Land",region:"Region",family:"Sprachfamilie",languageKind:"Sprache",dialect:"Dialekt",religionKind:"Religion"}},S$={title:"Plugin-Studio",navLabel:"Plugins nach Fähigkeit",countLabel:"{bundles} Bundles · {elements} Plugins hier aufgeführt",changeLanguage:"Sprache ändern",copyEmbed:"Einbettung kopieren",copy:"Kopieren",copied:"Kopiert",scriptEmbed:"Skript-Einbettung",loading:"{name} wird geladen…",couldNotLoad:"{name} konnte nicht geladen werden.",chooseElement:"Wählen Sie ein Plugin aus der Liste.",filterPlaceholder:"Plugins filtern",collapseAll:"Alle einklappen",noMatch:"Kein Plugin entspricht „{query}“.",openSection:"{cap} öffnen, {label}",part:"Teil",noStandalone:"keine eigene Seite",cap5:"App-Shell",cap4:"Komposit",cap3:"Mehrfachansicht",cap2:"Voreinstellung",cap1:"Einzeln",toggleList:"Liste ein-/ausblenden",openViews:"Ansichtsliste öffnen",expandList:"Liste ausklappen",collapseList:"Liste einklappen",collapse:"Einklappen",partOf:"Teil von {name}, nicht eigenständig veröffentlicht"},P$={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",upg100Region:"Region",upg100Zone:"UPG-100-Listen",upg100Group:"Volksgruppe",selectView:"Ansicht wählen",views:"Ansichten",prayerResources:"Gebetsressourcen",map:"Karte"},C$={kicker:"DOXA · Vision",title:"Jedes Volk. Jeder Ort.",tagline:"Von allen Volksgruppen der Welt bis zu denen, für die DOXA betet, aus den Daten gezählt.",funnelLabel:"Von allen Volksgruppen zu den DOXA-Volksgruppen",allLabel:"Volksgruppen",allNote:"jede Volksgruppe in jedem Land, in dem sie lebt",unreachedLabel:"Unerreicht",unreachedNote:"unter 2 % Evangelikale",frontierLabel:"Frontier",frontierNote:"unter 0,1 % Evangelikale",doxaLabel:"DOXA-Volksgruppen",doxaNote:"{frontier} davon sind Frontier",people:"{n} Menschen",sources:"Volksgruppen: {imb}, Datenstand {date}. DOXA-Liste: pray.doxa.life, {date2}.",howCounted:"So wird gezählt",ruleAll:"Jede Zeile der IMB-Volksgruppendaten: eine Volksgruppe in einem Land.",ruleUnreached:"IMB-Lostness-Priorität 0 bis 2: weniger als 2 % Evangelikale.",ruleFrontier:"IMB-Lostness-Priorität 0: weniger als 0,1 % Evangelikale. Eine Teilmenge der Unerreichten.",ruleDoxa:"Jede Gruppe auf der DOXA-Gebetsliste, den IMB-Daten nach Volk und Land zugeordnet. Nicht alle sind Frontier."},E$={title:"All People Groups",locations:"{n} group–country locations",doxa:"DOXA people groups",frontier:"Frontier — nothing started",unreached:"Unreached — work beginning",reached:"Reached — church is there",hint:"Click a row to see all of them · click again for everything",loading:"Loading every people group…",loadError:"The map could not be loaded.",pray:"Pray for them →",population:"pop {n}"},T$={backToLegend:"Back to Legend",closeDetailView:"Close detail view",collapseLegend:"Collapse legend",expandLegend:"Expand legend",toggleLegend:"Show or hide the legend"},N$={prayForThem:"Pray for them",adoptThem:"Adopt",moreInfo:"More info",zoomIn:"Zoom in",zoomOut:"Zoom out",switchToLightMode:"Switch to light mode",switchToDarkMode:"Switch to dark mode",resetView:"Reset view",toggleFullscreen:"Toggle fullscreen",aboutThisMap:"About this map",closeMenu:"Close menu",reloadMap:"Reload Map",showClusters:"Show Clusters",clusterSettings:"Cluster Settings",startAutoFly:"Start Auto Fly",stopFlight:"Stop Flight",speedLabel:"Speed:",speedOption:{slow:"Slow",normal:"Normal",fast:"Fast"},shareEmbed:"Share & embed",shareSteps:["Embed this map on your site","Create a list of the websites in your city","Train them to embed it too","Train them to train others to embed it too","Multiply maps everywhere for Jesus!"],share:"Share",posterMap:"Poster Map",prayerList:"Prayer List",cardDeck:"Card Deck",printOptions:"Print Options",showOnMap:"Show on map",close:"Close",showOnMapAria:"Show {label} on the map",cardStockAria:"Prayer card size",previewPrintPoster:"Preview & print the {label} poster",clearSelection:"Clear selection",noOptions:"No options found",renderingLocal:"Rendering a print-quality image in your browser — nothing is uploaded.",postersPerRow:"Posters per row"},R$={title:"Internet access where unengaged people groups live",bands:{yes:"connected 60%+",partial:"partial 25–59%",no:"low, under 25%",unknown:"not measured"},peopleGroup:"people group",caveat:"NATIONAL figures (World Bank). Per-city connectivity is not publicly available — do not read a city off a country.",sheet:{close:"Close",ai:"Data was found by AI deep research — it is subject to false information.",dismiss:"Dismiss",internetUsers:"Internet users",measured:"Measured",mobilePer100:"Mobile per 100",peopleGroups:"People groups",topPlatform:"Top platform",unknown:"unknown",carriers:"Carriers & ISPs ({n})",socialPlatforms:"Social platforms",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."}},M$={research_controls:"Research controls",clustering:"Clustering",filters:"Filters",pin_dim:"Pin dim",export_poster:"Export poster…",reload_data:"Reload data",off:"Off",native:"Native",mst:"MST",network:"Network",off_desc:"Show every pin individually",native_desc:"Mapbox circle clusters (fastest)",mst_desc:"Minimum-spanning-tree affinity webs",network_desc:"Nearest-neighbor connection lines",search_languages:"Search languages…",search_religions:"Search religions…",reset_all:"Reset all",no_languages:"No languages loaded yet",no_religions:"No religions loaded yet",unadopted:"Unadopted",min:"min",max:"max",adopted:"Adopted",adoption:"Adoption",engaged:"Engaged",engagement:"Engagement",unengaged:"Unengaged",language:"Language",religion:"Religion",population:"Population",any:"Any",active_count:"{n} active",prayer_status:"Prayer Status",close:"Close",clear:"Clear",map_controls:"Research map controls"},F$={bloc:"Bloc",gospel_access:"Gospel Access",people:"People",people_name:"People (name)",praying:"Praying",religion_family:"Religion Family",search_language:"Search language",search_people:"Search people",search_place:"Search place",search_religion:"Search religion",upgs_in_scope:"UPGs in scope",countries_touched:"countries touched",unreached:"unreached",sum_population:"Σ population",sum_praying:"Σ praying",charts:"Charts",table:"Table",cluster:"Cluster",country:"Country",engagement:"Engagement",language:"Language",language_family:"Language Family",people_group:"People Group",population:"Population",prayer:"Prayer",region:"Region",religion:"Religion",status:"Status",adopted:"Adopted",filters:"Filters",gospel_resources:"Gospel Resources",map:"Map",search_placeholder:"Search people groups, place, language, religion…",any:"Any",active_count:"{n} active",prayer_status:"Prayer Status",map_controls:"Research map controls",close:"Close",clear:"Clear",dashboard_title:"Big Picture Research Dashboard",align_dashboard:"Align Dashboard",align_dashboard_tip:"Reset the dashboard layout to its default alignment",selected:"Selected",world:"World",vertical_legend:"Vertical Legend",groups_in_scope:"groups in scope",filter_by:"Filter by",remove_filter:"Remove filter",groups:"groups",expand:"Expand",collapse:"Collapse",place:"Place"},I$={labels:{country:"Country:",population:"Population:",language:"Language:",religion:"Religion:",languageFamily:"Language Family:",peopleCommitted:"Committed to pray:"},messages:{noDescription:"No description available."}},O$={_note:'SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file: it carries doctrinal and statistical precision — which pools were searched, what "nothing found" does and does not claim, why Open Bible Stories is not Scripture — and a mistranslated caveat there would read as authoritative. `prose.english` is the one translated line that says so. When a human-reviewed translation of the prose exists, it gets its own area file and that line comes out.',prose:{english:"Explanatory notes below are in English."},mode:{gap:"Gap",coverage:"Resources found"},search:{placeholder:"Find a people group, language or ISO code",clear:"Clear search",none:"Nothing matches that name, language or code.",placeholderShort:"Group, language or ISO code"},legend:{title:"Unengaged groups with no gospel resource found",band60:"60%+ with nothing found",band30:"30–59%",bandSome:"some groups",bandAll:"all groups have some",tier2:"Scripture and film",tier1:"some resource found",tier0:"nothing found",hnr:"can hear it, no text found",showAll:"Show all groups",titleCoverage:"Unengaged groups with some gospel resource found",cov80:"80%+ have something found",cov50:"50–79%",cov1:"1–49%",cov0:"nothing found for any",tallyEach:"Each",tallyIs:"is ONE people group —",tallyOf:"of them,",tallyLink:"with a link",doxa0:"all have something",doxa1:"1–4 with nothing",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 reached",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Doxa people groups on this map",notPlaced:"on the roster, not yet placed",outOfScope:"no Doxa people groups — not coloured"},tabs:{groups:"Largest groups",countries:"By country",regions:"By region",noprayer:"Nobody praying",hnr:"Can hear, no text"},stat:{language:"Language",population:"Population",countries:"Countries",peopleGroups:"People groups",noResource:"No resource found",peopleAffected:"People affected",haveScripture:"Have scripture",haveFilm:"Have film",haveAudio:"Have audio Scripture",signLanguages:"Sign languages",growingUnreached:"Growing & unreached",deathsDay:"Est. deaths/day"},sheet:{ownLanguage:"In their own language",close:"Close",loading:"Loading resources…",pray:"Pray for",everyResource:"Every resource in",alsoSpeak:"Also speak"},res:{scripture:"Scripture",film:"Film",audio:"Audio",bibleVideo:"Bible video",bibleStories:"Open Bible Stories",gospelAudio:"Gospel audio",gospelPresentation:"Gospel presentation",scriptureEarth:"Scripture Earth",training:"Discipleship training",jesusFilm:"JESUS Film"},state:{noneFound:"none found",noneAtFcbh:"none found at FCBH",noneAtGrn:"none found at GRN",notInZume:"not in Zume's 54",linkChecked:"link checked",unchecked:"unchecked",linkDead:"link dead",wrongLanguage:"wrong language",varietyNotStated:"(variety not stated)",inLanguage:"in"},guide:{dotVsCountry:"A dot is ONE of Doxa's people groups and its own language; a country is a COUNT of those groups.",noneFoundShort:"“None found” means not present in the pools this build checked — never proof that nothing exists.",tapCountry:"Tap a country to see the actual resources, group by group."},tables:{title:"Gospel Resources — Data",showing:"Showing",of:"of",for:"for",filteredTo:"Filtered to",showAll:"Show all resources",t_doxa:"Doxa — Gospel Access",t_links:"Every Resource + Link",t_nothing:"Where Nothing Was Found",t_countrygap:"The Gap by Country",t_translation:"Can Hear It, No Text",t_translationcountry:"Where to Translate",t_gaps:"Gaps & Opportunities",t_bridges:"City Bridges",t_deaf:"The Deaf Gap",t_resources:"Resources by People Group",t_languages:"Languages by Country",t_growth:"Access vs Population Growth"},pages:{listTitle:"Gospel Resources by Language",chartsTitle:"Gospel Resources — by Language",loadingTables:"Loading resource tables…"},list:{noText:"No text Scripture",hasScripture:"Has scripture",allLanguages:"All languages",peopleGroup:"people group",peopleGroups:"people groups",scriptureHere:"Scripture in this language"},columns:{"People group":"People group",Country:"Country",Region:"Region",Language:"Language",Population:"Population",Religion:"Religion","Gospel access":"Gospel access",Resources:"Resources",Scripture:"Scripture","Bible video":"Bible video","Gospel presentation":"Gospel presentation",Countries:"Countries","People groups":"People groups"}},D$={search:"Search people groups…",hide_filters:"Hide Filters",show_filters:"Show Filters",total:"Total",showing:"Showing",load_more:"Load more",full_profile:"Full profile",wagf_region:"Region",wagf_block:"Affinity Block",rop1:"People Group",religion:"Religion",exact_filter:"Exact",clear_all:"Clear All",loading:"Loading…",no_results:"No people groups match this filter.",type_to_search:"Type to search...",load_failed:"People-group data could not be loaded. This is a connection problem, not your filter."},B$={title:{adoption:"Adoption Progress",affinityBlocs:"Affinity Blocks",doxaRegions:"Doxa Regions",engagement:"Engagement Progress",gospelResources:"Gospel Resources",languageFamilies:"Language Families",prayer:"Prayer Progress",upg100List:"My UPG 100 List"},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"},tabInfo:{upg100Region:"Region — sort the UPG-100 lists by world area (Africa, India, Middle East, Deaf, …). Counts are the UUPGs and population summed across every list beneath it.",upg100Zone:"UPG-100 Lists — each one is a prayer list of the unreached people groups in an area, and is what the map paints and colours. Every list prints as its own packet.",upg100Group:"People Group — the individual unreached groups inside a list, largest prayer need first. Each map dot is one of these."},a11y:{expandRow:"Expand {label}",collapseRow:"Collapse {label}",clearSelection:"Clear selection"}},G$={menuComingSoon:"Menu coming soon",pinHint:{tapDot:"Tap a coloured dot — someone still needs prayer"},upg100WallHeading:"My UPG 100 List — Prayer Lists & Posters",upg100WallTag:"Prayer Mobilization",upg100WallIntro:"Hand away the prayer task in clusters of fifties and hundreds — the way Jesus fed the 5,000 (Luke 9:14). Each poster is a 100-list you can pray, print, and put on a wall — praying for them by their people group name."},j$={clusterByRegion:"By Doxa Region",clusterByLanguageFamily:"By Language Family",clusterByGospelResource:"By Gospel Resource"},z$={country:{wagfRegion:"WAGF Region",wagfBlock:"WAGF Bloc",country:"Country",uupgCount:"UUPG Count"}},U$={header:"CURRENT PRAYER LAP",lap:"Lap",upgs:"UUPGs",separator:" of "},V$={"%count% people groups in %countries% countries":"%count% people groups in %countries% countries","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.","1+ People Praying":"1+ People Praying","100+ People Praying":"100+ People Praying",Adopted:"Adopted","Adoption Progress":"Adoption Progress","All Regions":"All Regions","Alternate Names":"Alternate Names","Choose a region":"Choose a region","Clear All":"Clear All",Countries:"Countries","Countries in this region":"Countries in this region",Country:"Country",Engaged:"Engaged","Engagement Progress":"Engagement Progress","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Every unengaged people group adopted by a church committed to prayer, giving, and sending","Exact Search":"Exact Search","Find unreached people groups by region and country.":"Find unreached people groups by region and country.","Full Profile":"Full Profile",Goal:"Goal","Hide Filters":"Hide Filters","Hide country posters":"Hide country posters",Intercessors:"Intercessors","Load More":"Load More","Loading results...":"Loading results...",Map:"Map","Mobilize 100+ people praying daily for each DOXA people group":"Mobilize 100+ people praying daily for each DOXA people group","No One Praying":"No One Praying","No options found":"No options found","No poster has been generated for this country yet.":"No poster has been generated for this country yet.","No unengaged people groups by 2033":"No unengaged people groups by 2033","Not Adopted":"Not Adopted",Other:"Other","Page Not Found":"Page Not Found","People Group":"People Group","People Groups":"People Groups","People committed to praying":"People committed to praying","Pick a region above, or click any dot to open that people group's country.":"Pick a region above, or click any dot to open that people group's country.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Pick a region or a country on the Regions List tab to narrow this dashboard.",Population:"Population","Prayer Coverage":"Prayer Coverage","Prayer coverage progress":"Prayer coverage progress","Region Dashboards":"Region Dashboards","Region dashboard":"Region dashboard",Regions:"Regions","Regions List":"Regions List",Religion:"Religion","Search names, country/continent, religions...":"Search names, country/continent, religions...","See %region% dashboard":"See %region% dashboard","See All":"See All",Select:"Select","Select View":"Select View","Show Filters":"Show Filters","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.",Total:"Total","Type to search...":"Type to search...","Unengaged people groups":"Unengaged people groups","View country posters":"View country posters",Views:"Views","WAGF Block":"WAGF Block","WAGF Region":"WAGF Region","people groups adopted":"people groups adopted","people groups engaged":"people groups engaged","Outside this region":"Outside this region",Pray:"Pray","Loading region dashboards…":"Loading region dashboards…","No regions found.":"No regions found.","Region data could not be loaded. This is a connection problem, not a filter.":"Region data could not be loaded. This is a connection problem, not a filter.","People groups could not be loaded. This is a connection problem, not a filter.":"People groups could not be loaded. This is a connection problem, not a filter.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected."},K$={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"}},H$={title:"Plugin Studio",navLabel:"Plugins by capability",countLabel:"{bundles} bundles · {elements} plugins listed here",changeLanguage:"Change language",copyEmbed:"Copy embed",copy:"Copy",copied:"Copied",scriptEmbed:"Script embed",loading:"Loading {name}…",couldNotLoad:"Could not load {name}.",chooseElement:"Choose a plugin from the list.",filterPlaceholder:"Filter plugins",collapseAll:"Collapse all",noMatch:"No plugin matches “{query}”.",openSection:"Open {cap}, {label}",part:"part",noStandalone:"no standalone page",cap5:"App shell",cap4:"Composite",cap3:"Multi-view",cap2:"Preset",cap1:"Single",toggleList:"Toggle list",openViews:"Open the list of views",expandList:"Expand list",collapseList:"Collapse list",collapse:"Collapse",partOf:"part of {name}, not published on its own"},q$={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",upg100Region:"Region",upg100Zone:"UPG-100 Lists",upg100Group:"People Group",selectView:"Select View",views:"Views",prayerResources:"Prayer Resources",map:"Map"},W$={kicker:"DOXA · Vision",title:"Every people. Every place.",tagline:"From every people group on earth to the ones DOXA prays for, counted from the data.",funnelLabel:"From all people groups to DOXA people groups",allLabel:"People groups",allNote:"each people group, in each country it lives in",unreachedLabel:"Unreached",unreachedNote:"under 2% evangelical",frontierLabel:"Frontier",frontierNote:"under 0.1% evangelical",doxaLabel:"DOXA people groups",doxaNote:"{frontier} of them are frontier",people:"{n} people",sources:"People groups: {imb}, data of {date}. DOXA list: pray.doxa.life, {date2}.",howCounted:"How these are counted",ruleAll:"Every row of the IMB people-group data: one people group in one country.",ruleUnreached:"IMB lostness priority 0 to 2: less than 2% evangelical.",ruleFrontier:"IMB lostness priority 0: less than 0.1% evangelical. A subset of the unreached.",ruleDoxa:"Every group on the DOXA prayer list, matched to the IMB data by people and country. Not all are frontier."},Y$={title:"Todos los grupos étnicos",locations:"{n} ubicaciones (grupo × país)",doxa:"Grupos étnicos de DOXA",frontier:"Frontera — nada iniciado",unreached:"No alcanzados — el trabajo comienza",reached:"Alcanzados — la iglesia está ahí",hint:"Haga clic en una fila para verlos todos · de nuevo para ver todo",loading:"Cargando todos los grupos étnicos…",loadError:"No se pudo cargar el mapa.",pray:"Ore por ellos →",population:"pobl. {n}"},X$={backToLegend:"Volver a la leyenda",closeDetailView:"Cerrar vista de detalle",collapseLegend:"Contraer la leyenda",expandLegend:"Expandir la leyenda",toggleLegend:"Mostrar u ocultar la leyenda"},Z$={prayForThem:"Ora por ellos",adoptThem:"Adóptalos",moreInfo:"Más información",zoomIn:"Acercar",zoomOut:"Alejar",switchToLightMode:"Cambiar a modo claro",switchToDarkMode:"Cambiar a modo oscuro",resetView:"Restablecer vista",toggleFullscreen:"Alternar pantalla completa",aboutThisMap:"Acerca de este mapa",closeMenu:"Cerrar menú",reloadMap:"Recargar mapa",showClusters:"Mostrar clústeres",clusterSettings:"Ajustes de clústeres",startAutoFly:"Iniciar vuelo automático",stopFlight:"Detener vuelo",speedLabel:"Velocidad:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Compartir e incrustar",posterMap:"Mapa del cartel",prayerList:"Lista de oración",cardDeck:"Baraja de tarjetas",printOptions:"Opciones de impresión",showOnMap:"Ver en el mapa",close:"Cerrar",showOnMapAria:"Ver {label} en el mapa",cardStockAria:"Tamaño de la tarjeta de oración",previewPrintPoster:"Previsualizar e imprimir el cartel de {label}",share:"Compartir",shareSteps:["Inserta este mapa en tu sitio","Haz una lista de los sitios web de tu ciudad","Enséñales a insertarlo también","Enséñales a enseñar a otros a insertarlo","¡Multiplica los mapas por todas partes para Jesús!"],clearSelection:"Borrar la selección",noOptions:"No se encontraron opciones",renderingLocal:"Se está generando una imagen con calidad de impresión en tu navegador: no se sube nada.",postersPerRow:"Pósteres por fila"},J$={title:"Acceso a internet donde viven pueblos sin implicación",bands:{yes:"conectado 60%+",partial:"parcial 25–59%",no:"bajo, menos del 25%",unknown:"sin medir"},peopleGroup:"pueblo",caveat:"Cifras NACIONALES (Banco Mundial). La conectividad por ciudad no está disponible públicamente: no deduzca una ciudad a partir de su país.",sheet:{close:"Cerrar",ai:"Estos datos se obtuvieron mediante investigación con IA y pueden contener información falsa.",dismiss:"Descartar",internetUsers:"Usuarios de internet",measured:"Medido",mobilePer100:"Móviles por cada 100",peopleGroups:"Pueblos",topPlatform:"Plataforma principal",unknown:"desconocido",carriers:"Operadores y proveedores de internet ({n})",socialPlatforms:"Redes sociales",note:"Cifras nacionales, no mediciones por ciudad. Los nombres de operadores son titulares de registros ASN (incluyen bancos y universidades además de proveedores), así que la marca de operador es una heurística por nombre, no una clasificación verificada."}},Q$={research_controls:"Controles de investigación",clustering:"Agrupación",filters:"Filtros",pin_dim:"Atenuar puntos",export_poster:"Exportar póster…",reload_data:"Recargar datos",off:"Desactivado",native:"Nativo",mst:"MST",network:"Red",off_desc:"Mostrar cada punto por separado",native_desc:"Grupos circulares de Mapbox (lo más rápido)",mst_desc:"Redes de afinidad por árbol de expansión mínima",network_desc:"Líneas de conexión al vecino más cercano",search_languages:"Buscar idiomas…",search_religions:"Buscar religiones…",reset_all:"Restablecer todo",no_languages:"Aún no se han cargado idiomas",no_religions:"Aún no se han cargado religiones",unadopted:"No adoptado",min:"mín",max:"máx",adopted:"Adoptado",adoption:"Adopción",engaged:"Comprometido",engagement:"Compromiso",unengaged:"Necesita implicación",language:"Idioma",religion:"Religión",population:"Población",any:"Cualquiera",active_count:"{n} activos",prayer_status:"Estado de oración",close:"Cerrar",clear:"Borrar",map_controls:"Controles del mapa"},ey={bloc:"Bloque de afinidad",gospel_access:"Acceso al evangelio",people:"Pueblos",people_name:"Pueblo (nombre)",praying:"Orando",religion_family:"Familia religiosa",search_language:"Buscar idioma",search_people:"Buscar pueblo",search_place:"Buscar lugar",search_religion:"Buscar religión",upgs_in_scope:"UPG en el ámbito",countries_touched:"países alcanzados",unreached:"no alcanzados",sum_population:"Σ población",sum_praying:"Σ orando",charts:"Gráficos",table:"Tabla",cluster:"Clúster",country:"País",engagement:"Compromiso",language:"Idioma",language_family:"Familia lingüística",people_group:"Pueblo",population:"Población",prayer:"Oración",region:"Región",religion:"Religión",status:"Estado",adopted:"Adoptado",filters:"Filtros",gospel_resources:"Recursos del Evangelio",map:"Mapa",search_placeholder:"Buscar pueblos, lugares, idiomas, religiones…",any:"Cualquiera",active_count:"{n} activos",prayer_status:"Estado de oración",map_controls:"Controles del mapa",close:"Cerrar",clear:"Borrar",dashboard_title:"Panel de investigación general",align_dashboard:"Alinear panel",align_dashboard_tip:"Restablecer la disposición del panel a su alineación predeterminada",selected:"Seleccionado",world:"Mundo",vertical_legend:"Leyenda vertical",groups_in_scope:"pueblos en el ámbito",filter_by:"Filtrar por",remove_filter:"Quitar filtro",groups:"pueblos",expand:"Expandir",collapse:"Contraer",place:"Lugar"},ty={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."}},oy={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Las notas explicativas siguientes están en inglés."},mode:{gap:"Brecha",coverage:"Recursos encontrados"},search:{placeholder:"Busca un pueblo, idioma o código ISO",clear:"Borrar búsqueda",none:"Nada coincide con ese nombre, idioma o código.",placeholderShort:"Pueblo, idioma o código ISO"},legend:{title:"Pueblos no alcanzados sin ningún recurso del evangelio",band60:"60 %+ sin nada encontrado",band30:"30–59 %",bandSome:"algunos pueblos",bandAll:"todos los pueblos tienen algo",tier2:"Escrituras y película",tier1:"se encontró algún recurso",tier0:"no se encontró nada",hnr:"pueden oírlo, sin texto",showAll:"Mostrar todos los pueblos",titleCoverage:"Pueblos no alcanzados con algún recurso del evangelio",cov80:"80 %+ tienen algo",cov50:"50–79 %",cov1:"1–49 %",cov0:"nada para ninguno",tallyEach:"Cada",tallyIs:"es UN pueblo —",tallyOf:"de ellos,",tallyLink:"con un enlace",doxa0:"todos tienen algo",doxa1:"1–4 sin nada",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 alcanzados",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Pueblos de Doxa en este mapa",notPlaced:"en la lista, aún sin ubicar",outOfScope:"sin pueblos de Doxa — sin color"},tabs:{groups:"Pueblos más grandes",countries:"Por país",regions:"Por región",noprayer:"Nadie ora",hnr:"Oyen, sin texto"},stat:{language:"Idioma",population:"Población",countries:"Países",peopleGroups:"Pueblos",noResource:"Ningún recurso encontrado",peopleAffected:"Personas afectadas",haveScripture:"Tienen Escrituras",haveFilm:"Tienen película",haveAudio:"Tienen Escrituras en audio",signLanguages:"Lenguas de señas",growingUnreached:"En crecimiento y no alcanzados",deathsDay:"Muertes estimadas/día"},sheet:{ownLanguage:"En su propio idioma",close:"Cerrar",loading:"Cargando recursos…",pray:"Ora por",everyResource:"Todos los recursos en",alsoSpeak:"También hablan"},res:{scripture:"Escrituras",film:"Película",audio:"Audio",bibleVideo:"Video bíblico",bibleStories:"Open Bible Stories",gospelAudio:"Audio del evangelio",gospelPresentation:"Presentación del evangelio",scriptureEarth:"Scripture Earth",training:"Formación de discipulado",jesusFilm:"Película JESÚS"},state:{noneFound:"nada encontrado",noneAtFcbh:"nada en FCBH",noneAtGrn:"nada en GRN",notInZume:"no está entre los 54 de Zume",linkChecked:"enlace verificado",unchecked:"sin verificar",linkDead:"enlace roto",wrongLanguage:"idioma incorrecto",varietyNotStated:"(variedad no indicada)",inLanguage:"en"},guide:{dotVsCountry:"Cada punto es UN pueblo de Doxa y su propio idioma; un país es el NÚMERO de esos pueblos.",noneFoundShort:"«Nada encontrado» significa ausente de las fuentes consultadas, nunca prueba de que no exista.",tapCountry:"Toca un país para ver los recursos, pueblo por pueblo."},tables:{title:"Recursos del evangelio — Datos",showing:"Mostrando",of:"de",for:"para",filteredTo:"Filtrado por",showAll:"Mostrar todos los recursos",t_doxa:"Doxa — Acceso al evangelio",t_links:"Cada recurso + enlace",t_nothing:"Donde no se encontró nada",t_countrygap:"La brecha por país",t_translation:"Pueden oírlo, sin texto",t_translationcountry:"Dónde traducir",t_gaps:"Brechas y oportunidades",t_bridges:"Puentes urbanos",t_deaf:"La brecha sorda",t_resources:"Recursos por pueblo",t_languages:"Idiomas por país",t_growth:"Acceso vs crecimiento"},pages:{listTitle:"Recursos del evangelio por idioma",chartsTitle:"Recursos del evangelio — por idioma",loadingTables:"Cargando tablas de recursos…"},list:{noText:"Sin texto bíblico",hasScripture:"Tiene Escrituras",allLanguages:"Todos los idiomas",peopleGroup:"pueblo",peopleGroups:"pueblos",scriptureHere:"Escrituras en este idioma"},columns:{"People group":"Pueblo",Country:"País",Region:"Región",Language:"Idioma",Population:"Población",Religion:"Religión","Gospel access":"Acceso al evangelio",Resources:"Recursos",Scripture:"Escrituras","Bible video":"Video bíblico","Gospel presentation":"Presentación del evangelio",Countries:"Países","People groups":"Pueblos"}},ny={search:"Buscar pueblos…",hide_filters:"Ocultar filtros",show_filters:"Mostrar filtros",total:"Total",showing:"Mostrando",load_more:"Cargar más",full_profile:"Perfil completo",wagf_region:"Región",wagf_block:"Bloque de afinidad",rop1:"Pueblo",religion:"Religión",exact_filter:"Exacto",clear_all:"Borrar todo",loading:"Cargando…",no_results:"Ningún pueblo coincide con este filtro.",type_to_search:"Escribe para buscar...",load_failed:"No se pudieron cargar los datos de pueblos. Es un problema de conexión, no de tu filtro."},ay={title:{adoption:"Progreso de adopción",affinityBlocs:"Bloques de afinidad",doxaRegions:"Regiones Doxa",engagement:"Progreso de implicación",gospelResources:"Recursos del Evangelio",languageFamilies:"Familias lingüísticas",prayer:"Progreso de oración",upg100List:"Mi lista UPG 100"},header:{collapsed:"Leyenda",peopleGroupFallback:"Grupo de personas",default:"Leyenda"},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"},tabInfo:{upg100Region:"Región — ordena las listas UPG-100 por área mundial (África, India, Oriente Medio, Sordos, …). Los totales son los UUPG y la población sumados de todas las listas que contiene.",upg100Zone:"Listas UPG-100 — cada una es una lista de oración de los grupos étnicos no alcanzados de un área, y es lo que el mapa pinta y colorea. Cada lista se imprime como su propio paquete.",upg100Group:"Grupo étnico — los grupos no alcanzados dentro de una lista, primero los de mayor necesidad de oración. Cada punto del mapa es uno de ellos."},a11y:{expandRow:"Expandir {label}",collapseRow:"Contraer {label}",clearSelection:"Borrar la selección"}},sy={menuComingSoon:"Menú próximamente",pinHint:{tapDot:"Toca un punto de color: alguien todavía necesita oración"},upg100WallHeading:"Mi lista UPG 100 — Listas de oración y carteles",upg100WallTag:"Movilización de oración",upg100WallIntro:"Reparte la tarea de la oración en grupos de cincuenta y de cien, como Jesús alimentó a los 5.000 (Lucas 9:14). Cada cartel es una lista de 100 que puedes orar, imprimir y poner en la pared — orando por ellos por el nombre de su pueblo."},ry={clusterByRegion:"Por región Doxa",clusterByLanguageFamily:"Por familia lingüística",clusterByGospelResource:"Por recurso del Evangelio"},iy={country:{wagfRegion:"Región WAGF",wagfBlock:"Bloque WAGF",country:"País",uupgCount:"Número de UUPG"}},ly={header:"VUELTA DE ORACIÓN ACTUAL",lap:"Vuelta",upgs:"UUPGs",separator:" de "},cy={"%count% people groups in %countries% countries":"%count% grupos étnicos en %countries% países","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% tiene %count% grupos étnicos en %countries% países. El color de cada punto indica cuántas personas oran por ese grupo étnico.","1+ People Praying":"1+ personas orando","100+ People Praying":"100+ personas orando",Adopted:"Adoptado","Adoption Progress":"Progreso de la adopción","All Regions":"Todas las regiones","Alternate Names":"Nombres alternativos","Choose a region":"Elige una región","Clear All":"Borrar todo",Countries:"Países","Countries in this region":"Países de esta región",Country:"País",Engaged:"Comprometido","Engagement Progress":"Progreso del compromiso","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Cada grupo étnico no evangelizado adoptado por una iglesia comprometida con la oración, la ofrenda y el envío.","Exact Search":"Búsqueda exacta","Find unreached people groups by region and country.":"Encuentra grupos étnicos no alcanzados por región y país.","Full Profile":"Perfil completo",Goal:"Meta","Hide Filters":"Ocultar filtros","Hide country posters":"Ocultar los carteles del país",Intercessors:"Intercesores","Load More":"Cargar más","Loading results...":"Cargando resultados...",Map:"Mapa","Mobilize 100+ people praying daily for each DOXA people group":"Movilizar a más de 100 personas que oren diariamente por cada grupo étnico DOXA.","No One Praying":"Nadie orando","No options found":"No se han encontrado opciones","No poster has been generated for this country yet.":"Todavía no se ha generado ningún cartel para este país.","No unengaged people groups by 2033":"No habrá grupos étnicos sin evangelizar para 2033","Not Adopted":"No adoptado",Other:"Otros","Page Not Found":"Página no encontrada","People Group":"Grupo Étnico","People Groups":"Grupos Étnicos","People committed to praying":"Personas comprometidas con la oración","Pick a region above, or click any dot to open that people group's country.":"Elige una región arriba, o haz clic en cualquier punto para abrir el país de ese pueblo.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Elige una región o un país en la pestaña Lista de regiones para acotar este panel.",Population:"Población","Prayer Coverage":"Cobertura de oración","Prayer coverage progress":"Progreso de la cobertura de oración","Region Dashboards":"Paneles de regiones","Region dashboard":"Panel de la región",Regions:"Regiones","Regions List":"Lista de regiones",Religion:"Religión","Search names, country/continent, religions...":"Buscar nombres, país/continente, religiones...","See %region% dashboard":"Ver el panel de %region%","See All":"Ver todo",Select:"Seleccionar","Select View":"Seleccionar vista","Show Filters":"Mostrar filtros","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Hay %count% grupos étnicos en %country%. Consulta también el mapa para ver los grupos étnicos en la frontera de este país.",Total:"Total","Type to search...":"Escribe para buscar...","Unengaged people groups":"Grupos étnicos no comprometidos","View country posters":"Ver los carteles del país",Views:"Vistas","WAGF Block":"Bloque WAGF","WAGF Region":"Región de la WAGF","people groups adopted":"grupos étnicos adoptados","people groups engaged":"grupos étnicos comprometidos","Outside this region":"Fuera de esta región",Pray:"Oración","Loading region dashboards…":"Cargando los paneles de regiones…","No regions found.":"No se encontraron regiones.","Region data could not be loaded. This is a connection problem, not a filter.":"No se pudieron cargar los datos de las regiones. Es un problema de conexión, no un filtro.","People groups could not be loaded. This is a connection problem, not a filter.":"No se pudieron cargar los pueblos. Es un problema de conexión, no un filtro.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"El mapa no pudo iniciarse. Es un problema del token del mapa o de conexión, no un filtro: las cifras de arriba no se ven afectadas."},uy={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"},sections:{within:"Dentro de {selection}",allData:"Todos los datos DOXA"}},py={title:"Estudio de plugins",navLabel:"Plugins por capacidad",countLabel:"{bundles} paquetes · {elements} plugins listados aquí",changeLanguage:"Cambiar idioma",copyEmbed:"Copiar código de inserción",copy:"Copiar",copied:"Copiado",scriptEmbed:"Inserción por script",loading:"Cargando {name}…",couldNotLoad:"No se pudo cargar {name}.",chooseElement:"Elija un plugin de la lista.",filterPlaceholder:"Filtrar plugins",collapseAll:"Contraer todo",noMatch:"Ningún plugin coincide con «{query}».",openSection:"Abrir {cap}, {label}",part:"parte",noStandalone:"sin página propia",cap5:"Contenedor de aplicación",cap4:"Compuesto",cap3:"Multivista",cap2:"Preajuste",cap1:"Individual",toggleList:"Mostrar u ocultar la lista",openViews:"Abrir la lista de vistas",expandList:"Expandir la lista",collapseList:"Contraer la lista",collapse:"Contraer",partOf:"parte de {name}, no publicada por separado"},dy={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",upg100Region:"Región",upg100Zone:"Listas UPG-100",upg100Group:"Grupo étnico",selectView:"Seleccionar vista",views:"Vistas",prayerResources:"Recursos de oración",map:"Mapa"},gy={kicker:"DOXA · Visión",title:"Cada pueblo. Cada lugar.",tagline:"De todos los grupos étnicos del mundo a aquellos por los que DOXA ora, contados a partir de los datos.",funnelLabel:"De todos los grupos étnicos a los grupos étnicos de DOXA",allLabel:"Grupos étnicos",allNote:"cada grupo étnico, en cada país donde vive",unreachedLabel:"No alcanzados",unreachedNote:"menos del 2 % evangélicos",frontierLabel:"Frontera",frontierNote:"menos del 0,1 % evangélicos",doxaLabel:"Grupos étnicos de DOXA",doxaNote:"{frontier} de ellos son de frontera",people:"{n} personas",sources:"Grupos étnicos: {imb}, datos de {date}. Lista de DOXA: pray.doxa.life, {date2}.",howCounted:"Cómo se cuentan",ruleAll:"Cada fila de los datos de grupos étnicos del IMB: un grupo étnico en un país.",ruleUnreached:"Prioridad de perdición del IMB de 0 a 2: menos del 2 % evangélicos.",ruleFrontier:"Prioridad de perdición del IMB 0: menos del 0,1 % evangélicos. Un subconjunto de los no alcanzados.",ruleDoxa:"Cada grupo de la lista de oración de DOXA, vinculado a los datos del IMB por pueblo y país. No todos son de frontera."},fy={title:"Tous les groupes ethniques",locations:"{n} emplacements (groupe × pays)",doxa:"Groupes ethniques DOXA",frontier:"Frontière — rien n’a commencé",unreached:"Non atteints — le travail commence",reached:"Atteints — l’Église est là",hint:"Cliquez sur une ligne pour les voir tous · recliquez pour tout voir",loading:"Chargement de tous les groupes ethniques…",loadError:"La carte n’a pas pu être chargée.",pray:"Priez pour eux →",population:"pop. {n}"},hy={backToLegend:"Retour à la légende",closeDetailView:"Fermer la vue détaillée",collapseLegend:"Réduire la légende",expandLegend:"Développer la légende",toggleLegend:"Afficher ou masquer la légende"},my={prayForThem:"Priez pour eux",adoptThem:"Adoptez-les",moreInfo:"Plus d'infos",zoomIn:"Zoom avant",zoomOut:"Zoom arrière",switchToLightMode:"Passer au mode clair",switchToDarkMode:"Passer au mode sombre",resetView:"Réinitialiser la vue",toggleFullscreen:"Basculer en plein écran",aboutThisMap:"À propos de cette carte",closeMenu:"Fermer le menu",reloadMap:"Recharger la carte",showClusters:"Afficher les clusters",clusterSettings:"Paramètres des clusters",startAutoFly:"Démarrer le vol auto",stopFlight:"Arrêter le vol",speedLabel:"Vitesse :",speedOption:{slow:"Lente",normal:"Normale",fast:"Rapide"},shareEmbed:"Partager et intégrer",posterMap:"Carte de l'affiche",prayerList:"Liste de prière",cardDeck:"Jeu de cartes",printOptions:"Options d'impression",showOnMap:"Voir sur la carte",close:"Fermer",showOnMapAria:"Voir {label} sur la carte",cardStockAria:"Taille de la carte de prière",previewPrintPoster:"Aperçu et impression de l’affiche {label}",share:"Partager",shareSteps:["Intégrez cette carte à votre site","Dressez la liste des sites web de votre ville","Apprenez-leur à l’intégrer aussi","Apprenez-leur à former d’autres personnes à l’intégrer","Multiplions les cartes partout pour Jésus !"],clearSelection:"Effacer la sélection",noOptions:"Aucune option trouvée",renderingLocal:"Une image de qualité impression est générée dans votre navigateur — rien n’est envoyé.",postersPerRow:"Affiches par ligne"},by={title:"Accès à Internet là où vivent les peuples sans engagement",bands:{yes:"connecté 60 %+",partial:"partiel 25–59 %",no:"faible, moins de 25 %",unknown:"non mesuré"},peopleGroup:"peuple",caveat:"Chiffres NATIONAUX (Banque mondiale). La connectivité par ville n'est pas publique — ne déduisez pas une ville à partir de son pays.",sheet:{close:"Fermer",ai:"Ces données proviennent d'une recherche approfondie par IA — elles peuvent contenir des informations erronées.",dismiss:"Ignorer",internetUsers:"Internautes",measured:"Mesuré",mobilePer100:"Mobiles pour 100",peopleGroups:"Peuples",topPlatform:"Plateforme principale",unknown:"inconnu",carriers:"Opérateurs et FAI ({n})",socialPlatforms:"Réseaux sociaux",note:"Chiffres nationaux, pas des mesures par ville. Les noms d'opérateurs sont les titulaires de registres ASN (on y trouve aussi des banques et des universités à côté des FAI), donc l'étiquette « opérateur » est une heuristique fondée sur le nom, non une classification vérifiée."}},$y={research_controls:"Commandes de recherche",clustering:"Regroupement",filters:"Filtres",pin_dim:"Atténuation des points",export_poster:"Exporter l’affiche…",reload_data:"Recharger les données",off:"Désactivé",native:"Natif",mst:"MST",network:"Réseau",off_desc:"Afficher chaque point séparément",native_desc:"Groupes circulaires Mapbox (le plus rapide)",mst_desc:"Réseaux d’affinité par arbre couvrant minimal",network_desc:"Lignes vers le plus proche voisin",search_languages:"Rechercher des langues…",search_religions:"Rechercher des religions…",reset_all:"Tout réinitialiser",no_languages:"Aucune langue chargée pour l’instant",no_religions:"Aucune religion chargée pour l’instant",unadopted:"Non adopté",min:"min",max:"max",adopted:"Adopté",adoption:"Adoption",engaged:"Engagé",engagement:"Engagement",unengaged:"Besoin d'engagement",language:"Langue",religion:"Religion",population:"Population",any:"Tous",active_count:"{n} actifs",prayer_status:"État de prière",close:"Fermer",clear:"Effacer",map_controls:"Commandes de la carte"},yy={bloc:"Bloc d’affinité",gospel_access:"Accès à l’Évangile",people:"Peuples",people_name:"Peuple (nom)",praying:"En prière",religion_family:"Famille religieuse",search_language:"Rechercher une langue",search_people:"Rechercher un peuple",search_place:"Rechercher un lieu",search_religion:"Rechercher une religion",upgs_in_scope:"UPG dans le périmètre",countries_touched:"pays touchés",unreached:"non atteints",sum_population:"Σ population",sum_praying:"Σ en prière",charts:"Graphiques",table:"Tableau",cluster:"Grappe",country:"Pays",engagement:"Engagement",language:"Langue",language_family:"Famille linguistique",people_group:"Peuple",population:"Population",prayer:"Prière",region:"Région",religion:"Religion",status:"Statut",adopted:"Adopté",filters:"Filtres",gospel_resources:"Ressources de l'Évangile",map:"Carte",search_placeholder:"Rechercher peuples, lieux, langues, religions…",any:"Tous",active_count:"{n} actifs",prayer_status:"État de prière",map_controls:"Commandes de la carte",close:"Fermer",clear:"Effacer",dashboard_title:"Tableau de bord de recherche global",align_dashboard:"Aligner le tableau",align_dashboard_tip:"Rétablir la disposition par défaut du tableau de bord",selected:"Sélectionné",world:"Monde",vertical_legend:"Légende verticale",groups_in_scope:"peuples dans le périmètre",filter_by:"Filtrer par",remove_filter:"Retirer le filtre",groups:"peuples",expand:"Développer",collapse:"Replier",place:"Lieu"},_y={labels:{country:"Pays :",population:"Population :",language:"Langue :",religion:"Religion :",languageFamily:"Famille de langues :",peopleCommitted:"Engagés à prier :"},messages:{noDescription:"Aucune description disponible."}},vy={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Les notes explicatives ci-dessous sont en anglais."},mode:{gap:"Écart",coverage:"Ressources trouvées"},search:{placeholder:"Chercher un peuple, une langue ou un code ISO",clear:"Effacer la recherche",none:"Rien ne correspond à ce nom, cette langue ou ce code.",placeholderShort:"Peuple, langue ou code ISO"},legend:{title:"Peuples non atteints sans aucune ressource de l'Évangile",band60:"60 %+ sans rien trouvé",band30:"30–59 %",bandSome:"quelques peuples",bandAll:"tous les peuples ont quelque chose",tier2:"Écritures et film",tier1:"une ressource trouvée",tier0:"rien trouvé",hnr:"peuvent l'entendre, aucun texte",showAll:"Afficher tous les peuples",titleCoverage:"Peuples non atteints avec une ressource de l'Évangile",cov80:"80 %+ ont quelque chose",cov50:"50–79 %",cov1:"1–49 %",cov0:"rien pour aucun",tallyEach:"Chaque",tallyIs:"est UN peuple —",tallyOf:"d'entre eux,",tallyLink:"avec un lien",doxa0:"tous ont quelque chose",doxa1:"1–4 sans rien",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 atteints",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Peuples Doxa sur cette carte",notPlaced:"sur la liste, pas encore localisés",outOfScope:"aucun peuple Doxa — non coloré"},tabs:{groups:"Peuples les plus nombreux",countries:"Par pays",regions:"Par région",noprayer:"Personne ne prie",hnr:"Entendent, sans texte"},stat:{language:"Langue",population:"Population",countries:"Pays",peopleGroups:"Peuples",noResource:"Aucune ressource trouvée",peopleAffected:"Personnes concernées",haveScripture:"Ont les Écritures",haveFilm:"Ont le film",haveAudio:"Ont les Écritures en audio",signLanguages:"Langues des signes",growingUnreached:"En croissance et non atteints",deathsDay:"Décès estimés/jour"},sheet:{ownLanguage:"Dans leur propre langue",close:"Fermer",loading:"Chargement des ressources…",pray:"Priez pour",everyResource:"Toutes les ressources en",alsoSpeak:"Parlent aussi"},res:{scripture:"Écritures",film:"Film",audio:"Audio",bibleVideo:"Vidéo biblique",bibleStories:"Open Bible Stories",gospelAudio:"Audio de l'Évangile",gospelPresentation:"Présentation de l'Évangile",scriptureEarth:"Scripture Earth",training:"Formation au discipulat",jesusFilm:"Film JÉSUS"},state:{noneFound:"rien trouvé",noneAtFcbh:"rien chez FCBH",noneAtGrn:"rien chez GRN",notInZume:"pas dans les 54 de Zume",linkChecked:"lien vérifié",unchecked:"non vérifié",linkDead:"lien mort",wrongLanguage:"mauvaise langue",varietyNotStated:"(variété non précisée)",inLanguage:"en"},guide:{dotVsCountry:"Un point est UN peuple de Doxa et sa propre langue ; un pays est le NOMBRE de ces peuples.",noneFoundShort:"« Rien trouvé » signifie absent des sources consultées, jamais la preuve que rien n'existe.",tapCountry:"Touchez un pays pour voir les ressources, peuple par peuple."},tables:{title:"Ressources de l'Évangile — Données",showing:"Affichage de",of:"sur",for:"pour",filteredTo:"Filtré sur",showAll:"Afficher toutes les ressources",t_doxa:"Doxa — Accès à l'Évangile",t_links:"Chaque ressource + lien",t_nothing:"Où rien n'a été trouvé",t_countrygap:"L'écart par pays",t_translation:"Entendent, sans texte",t_translationcountry:"Où traduire",t_gaps:"Écarts et opportunités",t_bridges:"Ponts urbains",t_deaf:"L'écart sourd",t_resources:"Ressources par peuple",t_languages:"Langues par pays",t_growth:"Accès vs croissance"},pages:{listTitle:"Ressources de l'Évangile par langue",chartsTitle:"Ressources de l'Évangile — par langue",loadingTables:"Chargement des tableaux…"},list:{noText:"Pas de texte biblique",hasScripture:"A les Écritures",allLanguages:"Toutes les langues",peopleGroup:"peuple",peopleGroups:"peuples",scriptureHere:"Écritures dans cette langue"},columns:{"People group":"Peuple",Country:"Pays",Region:"Région",Language:"Langue",Population:"Population",Religion:"Religion","Gospel access":"Accès à l'Évangile",Resources:"Ressources",Scripture:"Écritures","Bible video":"Vidéo biblique","Gospel presentation":"Présentation de l'Évangile",Countries:"Pays","People groups":"Peuples"}},wy={search:"Rechercher des peuples…",hide_filters:"Masquer les filtres",show_filters:"Afficher les filtres",total:"Total",showing:"Affichage",load_more:"Charger plus",full_profile:"Profil complet",wagf_region:"Région",wagf_block:"Bloc d'affinité",rop1:"Peuple",religion:"Religion",exact_filter:"Exact",clear_all:"Tout effacer",loading:"Chargement…",no_results:"Aucun peuple ne correspond à ce filtre.",type_to_search:"Tapez pour rechercher...",load_failed:"Les données n’ont pas pu être chargées. C’est un problème de connexion, pas votre filtre."},ky={title:{adoption:"Progression de l'adoption",affinityBlocs:"Blocs d'affinité",doxaRegions:"Régions Doxa",engagement:"Progression de l'engagement",gospelResources:"Ressources de l'Évangile",languageFamilies:"Familles de langues",prayer:"Progression de la prière",upg100List:"Ma liste UPG 100"},header:{collapsed:"Légende",peopleGroupFallback:"Groupe de personnes",default:"Légende"},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"},tabInfo:{upg100Region:"Région — trie les listes UPG-100 par zone du monde (Afrique, Inde, Moyen-Orient, Sourds, …). Les totaux sont les UUPG et la population additionnés sur toutes les listes qu’elle contient.",upg100Zone:"Listes UPG-100 — chacune est une liste de prière des groupes de peuples non atteints d’une zone, et c’est ce que la carte dessine et colore. Chaque liste s’imprime comme son propre livret.",upg100Group:"Groupe de peuples — les groupes non atteints au sein d’une liste, les plus grands besoins de prière en premier. Chaque point de la carte en est un."},a11y:{expandRow:"Développer {label}",collapseRow:"Réduire {label}",clearSelection:"Effacer la sélection"}},xy={menuComingSoon:"Menu bientôt disponible",pinHint:{tapDot:"Touchez un point coloré — quelqu’un a encore besoin de prière"},upg100WallHeading:"Ma liste UPG 100 — Listes de prière et affiches",upg100WallTag:"Mobilisation pour la prière",upg100WallIntro:"Répartissez la tâche de la prière par groupes de cinquante et de cent — comme Jésus a nourri les 5 000 (Luc 9:14). Chaque affiche est une liste de 100 que vous pouvez prier, imprimer et afficher au mur — en priant pour eux par le nom de leur peuple."},Ly={clusterByRegion:"Par région Doxa",clusterByLanguageFamily:"Par famille de langues",clusterByGospelResource:"Par ressource de l'Évangile"},Ay={country:{wagfRegion:"Région WAGF",wagfBlock:"Bloc WAGF",country:"Pays",uupgCount:"Nombre d'UUPG"}},Sy={header:"TOUR DE PRIÈRE ACTUEL",lap:"Tour",upgs:"UUPGs",separator:" sur "},Py={"%count% people groups in %countries% countries":"%count% peuples dans %countries% pays","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% compte %count% peuples répartis dans %countries% pays. La couleur de chaque point indique combien de personnes prient pour ce peuple.","1+ People Praying":"1+ personnes en prière","100+ People Praying":"100+ personnes en prière",Adopted:"Adopté","Adoption Progress":"Progrès de l'adoption","All Regions":"Toutes les régions","Alternate Names":"Autres noms","Choose a region":"Choisissez une région","Clear All":"Tout effacer",Countries:"Pays","Countries in this region":"Pays de cette région",Country:"Pays",Engaged:"Engagé","Engagement Progress":"Progrès de l'engagement","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Chaque peuple non engagé adopté par une église locale engagée dans la prière, le don et l'envoi","Exact Search":"Recherche exacte","Find unreached people groups by region and country.":"Trouvez des peuples non atteints par région et par pays.","Full Profile":"Profil complet",Goal:"Objectif","Hide Filters":"Masquer les filtres","Hide country posters":"Masquer les affiches du pays",Intercessors:"Intercesseurs","Load More":"Afficher plus","Loading results...":"Chargement des résultats...",Map:"Carte","Mobilize 100+ people praying daily for each DOXA people group":"Mobiliser plus de 100 personnes priant chaque jour pour chaque peuple DOXA","No One Praying":"Personne ne prie","No options found":"Aucun lieu trouvé","No poster has been generated for this country yet.":"Aucune affiche n'a encore été générée pour ce pays.","No unengaged people groups by 2033":"Plus aucun peuple non engagé d'ici 2033","Not Adopted":"Non adopté",Other:"Autre","Page Not Found":"Page introuvable","People Group":"Peuple","People Groups":"Peuples","People committed to praying":"Personnes engagées dans la prière","Pick a region above, or click any dot to open that people group's country.":"Choisissez une région ci-dessus, ou cliquez sur un point pour ouvrir le pays de ce peuple.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Choisissez une région ou un pays dans l’onglet Liste des régions pour affiner ce tableau de bord.",Population:"Population","Prayer Coverage":"Couverture de prière","Prayer coverage progress":"Progression de la couverture de prière","Region Dashboards":"Tableaux de bord des régions","Region dashboard":"Tableau de bord de la région",Regions:"Régions","Regions List":"Liste des régions",Religion:"Religion","Search names, country/continent, religions...":"Rechercher des noms, pays/continent, religions...","See %region% dashboard":"Voir le tableau de bord : %region%","See All":"Tout afficher",Select:"Sélectionner","Select View":"Sélectionner la vue","Show Filters":"Afficher les filtres","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Il y a %count% peuples en %country%. Consultez la carte pour découvrir également les peuples situés à la frontière de ce pays.",Total:"Total","Type to search...":"Entrer votre recherche","Unengaged people groups":"Peuples non engagés","View country posters":"Voir les affiches du pays",Views:"Vues","WAGF Block":"Bloc WAGF","WAGF Region":"Région WAGF","people groups adopted":"peuples adoptés","people groups engaged":"peuples engagés","Outside this region":"Hors de cette région",Pray:"Prier","Loading region dashboards…":"Chargement des tableaux de bord des régions…","No regions found.":"Aucune région trouvée.","Region data could not be loaded. This is a connection problem, not a filter.":"Les données des régions n'ont pas pu être chargées. Il s'agit d'un problème de connexion, pas d'un filtre.","People groups could not be loaded. This is a connection problem, not a filter.":"Les peuples n'ont pas pu être chargés. Il s'agit d'un problème de connexion, pas d'un filtre.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"La carte n'a pas pu démarrer. Il s'agit d'un problème de jeton de carte ou de connexion, pas d'un filtre — les chiffres ci-dessus ne sont pas affectés."},Cy={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"},sections:{within:"Dans {selection}",allData:"Toutes les données DOXA"}},Ey={title:"Studio de plugins",navLabel:"Plugins par capacité",countLabel:"{bundles} paquets · {elements} plugins listés ici",changeLanguage:"Changer de langue",copyEmbed:"Copier le code d’intégration",copy:"Copier",copied:"Copié",scriptEmbed:"Intégration par script",loading:"Chargement de {name}…",couldNotLoad:"Impossible de charger {name}.",chooseElement:"Choisissez un plugin dans la liste.",filterPlaceholder:"Filtrer les plugins",collapseAll:"Tout replier",noMatch:"Aucun plugin ne correspond à « {query} ».",openSection:"Ouvrir {cap}, {label}",part:"partie",noStandalone:"pas de page autonome",cap5:"Coquille d’application",cap4:"Composite",cap3:"Multivue",cap2:"Préréglage",cap1:"Simple",toggleList:"Afficher ou masquer la liste",openViews:"Ouvrir la liste des vues",expandList:"Déplier la liste",collapseList:"Replier la liste",collapse:"Replier",partOf:"partie de {name}, non publiée seule"},Ty={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",upg100Region:"Région",upg100Zone:"Listes UPG-100",upg100Group:"Groupe de peuples",selectView:"Choisir la vue",views:"Vues",prayerResources:"Ressources de prière",map:"Carte"},Ny={kicker:"DOXA · Vision",title:"Chaque peuple. Chaque lieu.",tagline:"De tous les groupes ethniques du monde à ceux pour qui DOXA prie, comptés à partir des données.",funnelLabel:"De tous les groupes ethniques aux groupes ethniques DOXA",allLabel:"Groupes ethniques",allNote:"chaque groupe ethnique, dans chaque pays où il vit",unreachedLabel:"Non atteints",unreachedNote:"moins de 2 % d’évangéliques",frontierLabel:"Frontière",frontierNote:"moins de 0,1 % d’évangéliques",doxaLabel:"Groupes ethniques DOXA",doxaNote:"dont {frontier} de frontière",people:"{n} personnes",sources:"Groupes ethniques : {imb}, données du {date}. Liste DOXA : pray.doxa.life, {date2}.",howCounted:"Comment ces chiffres sont comptés",ruleAll:"Chaque ligne des données IMB : un groupe ethnique dans un pays.",ruleUnreached:"Priorité de perdition IMB 0 à 2 : moins de 2 % d’évangéliques.",ruleFrontier:"Priorité de perdition IMB 0 : moins de 0,1 % d’évangéliques. Un sous-ensemble des non-atteints.",ruleDoxa:"Chaque groupe de la liste de prière DOXA, rapproché des données IMB par peuple et pays. Tous ne sont pas de frontière."},Ry={title:"सभी जनसमूह",locations:"{n} स्थान (समूह × देश)",doxa:"DOXA जनसमूह",frontier:"सीमांत — कुछ शुरू नहीं हुआ",unreached:"अप्रचारित — काम शुरू हो रहा है",reached:"प्रचारित — कलीसिया मौजूद है",hint:"सभी देखने के लिए पंक्ति पर क्लिक करें · सब कुछ देखने के लिए फिर क्लिक करें",loading:"सभी जनसमूह लोड हो रहे हैं…",loadError:"मानचित्र लोड नहीं हो सका।",pray:"उनके लिए प्रार्थना करें →",population:"जनसंख्या {n}"},My={backToLegend:"लेजेंड पर वापस जाएं",closeDetailView:"विवरण दृश्य बंद करें",collapseLegend:"लेजेंड संक्षिप्त करें",expandLegend:"लेजेंड विस्तृत करें",toggleLegend:"लेजेंड दिखाएँ या छिपाएँ"},Fy={prayForThem:"उनके लिए प्रार्थना करें",adoptThem:"उन्हें गोद लें",moreInfo:"अधिक जानकारी",zoomIn:"ज़ूम इन",zoomOut:"ज़ूम आउट",switchToLightMode:"लाइट मोड पर जाएं",switchToDarkMode:"डार्क मोड पर जाएं",resetView:"दृश्य रीसेट करें",toggleFullscreen:"फ़ुलस्क्रीन टॉगल करें",aboutThisMap:"इस मानचित्र के बारे में",closeMenu:"मेनू बंद करें",reloadMap:"मानचित्र पुनः लोड करें",showClusters:"क्लस्टर दिखाएं",clusterSettings:"क्लस्टर सेटिंग्स",startAutoFly:"ऑटो फ्लाई शुरू करें",stopFlight:"उड़ान रोकें",speedLabel:"गति:",speedOption:{slow:"धीमी",normal:"सामान्य",fast:"तेज़"},shareEmbed:"साझा करें और एम्बेड करें",posterMap:"पोस्टर मानचित्र",prayerList:"प्रार्थना सूची",cardDeck:"कार्ड सेट",printOptions:"छपाई विकल्प",showOnMap:"मानचित्र पर देखें",close:"बंद करें",showOnMapAria:"{label} को मानचित्र पर देखें",cardStockAria:"प्रार्थना कार्ड का आकार",previewPrintPoster:"{label} पोस्टर देखें और प्रिंट करें",share:"साझा करें",shareSteps:["इस मानचित्र को अपनी वेबसाइट पर लगाएँ","अपने शहर की वेबसाइटों की सूची बनाएँ","उन्हें भी इसे लगाना सिखाएँ","उन्हें सिखाएँ कि वे औरों को लगाना सिखाएँ","यीशु के लिए हर जगह मानचित्र बढ़ाएँ!"],clearSelection:"चयन हटाएँ",noOptions:"कोई विकल्प नहीं मिला",renderingLocal:"आपके ब्राउज़र में प्रिंट-गुणवत्ता वाली छवि बन रही है — कुछ भी अपलोड नहीं किया जाता।",postersPerRow:"प्रति पंक्ति पोस्टर"},Iy={title:"इंटरनेट पहुँच जहाँ बिना सहभागिता वाले जनसमूह रहते हैं",bands:{yes:"जुड़ा हुआ 60%+",partial:"आंशिक 25–59%",no:"कम, 25% से नीचे",unknown:"मापा नहीं गया"},peopleGroup:"जनसमूह",caveat:"राष्ट्रीय आँकड़े (विश्व बैंक)। शहर-स्तर की कनेक्टिविटी सार्वजनिक रूप से उपलब्ध नहीं है — देश के आँकड़ों से किसी शहर का अनुमान न लगाएँ।",sheet:{close:"बंद करें",ai:"यह डेटा एआई गहन शोध से मिला है — इसमें गलत जानकारी हो सकती है।",dismiss:"हटाएँ",internetUsers:"इंटरनेट उपयोगकर्ता",measured:"मापा गया",mobilePer100:"प्रति 100 मोबाइल",peopleGroups:"जनसमूह",topPlatform:"शीर्ष प्लेटफ़ॉर्म",unknown:"अज्ञात",carriers:"कैरियर और आईएसपी ({n})",socialPlatforms:"सोशल प्लेटफ़ॉर्म",note:"ये राष्ट्रीय आँकड़े हैं, शहरों के माप नहीं। कैरियर के नाम ASN रजिस्ट्री धारकों के हैं — उनमें आईएसपी के साथ बैंक और विश्वविद्यालय भी शामिल हैं, इसलिए कैरियर का चिह्न नाम पर आधारित अनुमान है, सत्यापित वर्गीकरण नहीं।"}},Oy={research_controls:"शोध नियंत्रण",clustering:"क्लस्टरिंग",filters:"फ़िल्टर",pin_dim:"पिन धुंधलापन",export_poster:"पोस्टर निर्यात करें…",reload_data:"डेटा फिर से लोड करें",off:"बंद",native:"नेटिव",mst:"MST",network:"नेटवर्क",off_desc:"हर पिन अलग-अलग दिखाएँ",native_desc:"Mapbox वृत्त क्लस्टर (सबसे तेज़)",mst_desc:"न्यूनतम स्पैनिंग ट्री आधारित जाल",network_desc:"निकटतम पड़ोसी को जोड़ने वाली रेखाएँ",search_languages:"भाषाएँ खोजें…",search_religions:"धर्म खोजें…",reset_all:"सब रीसेट करें",no_languages:"अभी कोई भाषा लोड नहीं हुई",no_religions:"अभी कोई धर्म लोड नहीं हुआ",unadopted:"अ-गोद लिया",min:"न्यून",max:"अधि",adopted:"गोद लिया गया",adoption:"गोद लेना",engaged:"संपर्कित",engagement:"सहभागिता",unengaged:"सहभागिता चाहिए",language:"भाषा",religion:"धर्म",population:"जनसंख्या",any:"कोई भी",active_count:"{n} सक्रिय",prayer_status:"प्रार्थना स्थिति",close:"बंद करें",clear:"साफ़ करें",map_controls:"मानचित्र नियंत्रण"},Dy={bloc:"समानता समूह",gospel_access:"सुसमाचार पहुँच",people:"जनसमूह",people_name:"जनसमूह (नाम)",praying:"प्रार्थना कर रहे",religion_family:"धर्म परिवार",search_language:"भाषा खोजें",search_people:"जनसमूह खोजें",search_place:"स्थान खोजें",search_religion:"धर्म खोजें",upgs_in_scope:"दायरे में UPG",countries_touched:"छुए गए देश",unreached:"अनपहुँचे",sum_population:"Σ जनसंख्या",sum_praying:"Σ प्रार्थना",charts:"चार्ट",table:"तालिका",cluster:"क्लस्टर",country:"देश",engagement:"सहभागिता",language:"भाषा",language_family:"भाषा परिवार",people_group:"जनसमूह",population:"जनसंख्या",prayer:"प्रार्थना",region:"क्षेत्र",religion:"धर्म",status:"स्थिति",adopted:"गोद लिया गया",filters:"फ़िल्टर",gospel_resources:"सुसमाचार संसाधन",map:"नक्शा",search_placeholder:"जनसमूह, स्थान, भाषा, धर्म खोजें…",any:"कोई भी",active_count:"{n} सक्रिय",prayer_status:"प्रार्थना स्थिति",map_controls:"मानचित्र नियंत्रण",close:"बंद करें",clear:"साफ़ करें",dashboard_title:"बिग पिक्चर शोध डैशबोर्ड",align_dashboard:"डैशबोर्ड संरेखित करें",align_dashboard_tip:"डैशबोर्ड लेआउट को डिफ़ॉल्ट संरेखण पर लौटाएँ",selected:"चयनित",world:"विश्व",vertical_legend:"लंबवत लेजेंड",groups_in_scope:"दायरे में जनसमूह",filter_by:"इससे फ़िल्टर करें",remove_filter:"फ़िल्टर हटाएँ",groups:"जनसमूह",expand:"विस्तार करें",collapse:"संक्षिप्त करें",place:"स्थान"},By={labels:{country:"देश:",population:"जनसंख्या:",language:"भाषा:",religion:"धर्म:",languageFamily:"भाषा परिवार:",peopleCommitted:"प्रार्थना के लिए प्रतिबद्ध:"},messages:{noDescription:"कोई विवरण उपलब्ध नहीं है।"}},Gy={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"नीचे दी गई व्याख्यात्मक टिप्पणियाँ अंग्रेज़ी में हैं।"},mode:{gap:"कमी",coverage:"उपलब्ध संसाधन"},search:{placeholder:"जनसमूह, भाषा या ISO कोड खोजें",clear:"खोज साफ़ करें",none:"इस नाम, भाषा या कोड से कुछ भी मेल नहीं खाता।",placeholderShort:"जनसमूह, भाषा या ISO कोड"},legend:{title:"ऐसे जनसमूह जिन तक सुसमाचार नहीं पहुँचा और कोई संसाधन नहीं मिला",band60:"60%+ के पास कुछ नहीं",band30:"30–59%",bandSome:"कुछ जनसमूह",bandAll:"सभी जनसमूहों के पास कुछ है",tier2:"पवित्र शास्त्र और फ़िल्म",tier1:"कुछ संसाधन मिला",tier0:"कुछ नहीं मिला",hnr:"सुन सकते हैं, पाठ नहीं",showAll:"सभी जनसमूह दिखाएँ",titleCoverage:"ऐसे अनपहुँचे जनसमूह जिनके लिए कुछ सुसमाचार संसाधन मिला",cov80:"80%+ के पास कुछ है",cov50:"50–79%",cov1:"1–49%",cov0:"किसी के लिए कुछ नहीं",tallyEach:"हर",tallyIs:"एक जनसमूह है —",tallyOf:"में से,",tallyLink:"के पास लिंक है",doxa0:"सभी के पास कुछ है",doxa1:"1–4 के पास कुछ नहीं",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 तक पहुँच",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"इस मानचित्र पर दोक्सा जनसमूह",notPlaced:"सूची में, अभी स्थान नहीं",outOfScope:"कोई दोक्सा जनसमूह नहीं — रंग नहीं"},tabs:{groups:"सबसे बड़े जनसमूह",countries:"देश के अनुसार",regions:"क्षेत्र के अनुसार",noprayer:"कोई प्रार्थना नहीं कर रहा",hnr:"सुन सकते हैं, पाठ नहीं"},stat:{language:"भाषा",population:"जनसंख्या",countries:"देश",peopleGroups:"जनसमूह",noResource:"कोई संसाधन नहीं मिला",peopleAffected:"प्रभावित लोग",haveScripture:"पवित्र शास्त्र उपलब्ध",haveFilm:"फ़िल्म उपलब्ध",haveAudio:"ऑडियो शास्त्र उपलब्ध",signLanguages:"सांकेतिक भाषाएँ",growingUnreached:"बढ़ते और अनपहुँचे",deathsDay:"अनुमानित मृत्यु/दिन"},sheet:{ownLanguage:"उनकी अपनी भाषा में",close:"बंद करें",loading:"संसाधन लोड हो रहे हैं…",pray:"के लिए प्रार्थना करें",everyResource:"में सभी संसाधन",alsoSpeak:"यह भी बोलते हैं"},res:{scripture:"पवित्र शास्त्र",film:"फ़िल्म",audio:"ऑडियो",bibleVideo:"बाइबल वीडियो",bibleStories:"Open Bible Stories",gospelAudio:"सुसमाचार ऑडियो",gospelPresentation:"सुसमाचार प्रस्तुति",scriptureEarth:"Scripture Earth",training:"शिष्यत्व प्रशिक्षण",jesusFilm:"यीशु फ़िल्म"},state:{noneFound:"कुछ नहीं मिला",noneAtFcbh:"FCBH में कुछ नहीं",noneAtGrn:"GRN में कुछ नहीं",notInZume:"Zume की 54 भाषाओं में नहीं",linkChecked:"लिंक जाँचा गया",unchecked:"अनजाँचा",linkDead:"लिंक निष्क्रिय",wrongLanguage:"ग़लत भाषा",varietyNotStated:"(उपभाषा नहीं बताई गई)",inLanguage:"में"},guide:{dotVsCountry:"हर बिंदु दोक्सा का एक जनसमूह और उसकी अपनी भाषा है; देश का रंग उन जनसमूहों की संख्या है।",noneFoundShort:"“कुछ नहीं मिला” का अर्थ है जाँचे गए स्रोतों में नहीं — यह प्रमाण नहीं कि कुछ है ही नहीं।",tapCountry:"संसाधन देखने के लिए किसी देश पर टैप करें, जनसमूह दर जनसमूह।"},tables:{title:"सुसमाचार संसाधन — डेटा",showing:"दिखा रहे हैं",of:"में से",for:"के लिए",filteredTo:"फ़िल्टर:",showAll:"सभी संसाधन दिखाएँ",t_doxa:"दोक्सा — सुसमाचार पहुँच",t_links:"हर संसाधन + लिंक",t_nothing:"जहाँ कुछ नहीं मिला",t_countrygap:"देश अनुसार कमी",t_translation:"सुन सकते हैं, पाठ नहीं",t_translationcountry:"अनुवाद कहाँ करें",t_gaps:"कमियाँ और अवसर",t_bridges:"नगर सेतु",t_deaf:"बधिर कमी",t_resources:"जनसमूह अनुसार संसाधन",t_languages:"देश अनुसार भाषाएँ",t_growth:"पहुँच बनाम जनसंख्या वृद्धि"},pages:{listTitle:"भाषा अनुसार सुसमाचार संसाधन",chartsTitle:"सुसमाचार संसाधन — भाषा अनुसार",loadingTables:"संसाधन तालिकाएँ लोड हो रही हैं…"},list:{noText:"कोई लिखित शास्त्र नहीं",hasScripture:"शास्त्र उपलब्ध",allLanguages:"सभी भाषाएँ",peopleGroup:"जनसमूह",peopleGroups:"जनसमूह",scriptureHere:"इस भाषा में पवित्र शास्त्र"},columns:{"People group":"जनसमूह",Country:"देश",Region:"क्षेत्र",Language:"भाषा",Population:"जनसंख्या",Religion:"धर्म","Gospel access":"सुसमाचार पहुँच",Resources:"संसाधन",Scripture:"पवित्र शास्त्र","Bible video":"बाइबल वीडियो","Gospel presentation":"सुसमाचार प्रस्तुति",Countries:"देश","People groups":"जनसमूह"}},jy={search:"जनसमूह खोजें…",hide_filters:"फ़िल्टर छिपाएँ",show_filters:"फ़िल्टर दिखाएँ",total:"कुल",showing:"दिखा रहे हैं",load_more:"और देखें",full_profile:"पूरी प्रोफ़ाइल",wagf_region:"क्षेत्र",wagf_block:"समानता समूह",rop1:"जनसमूह",religion:"धर्म",exact_filter:"सटीक",clear_all:"सब हटाएँ",loading:"लोड हो रहा है…",no_results:"इस फ़िल्टर से कोई जनसमूह मेल नहीं खाता।",type_to_search:"खोजने के लिए लिखें...",load_failed:"जनसमूह डेटा लोड नहीं हो सका। यह कनेक्शन की समस्या है, आपके फ़िल्टर की नहीं।"},zy={title:{adoption:"गोद लेने की प्रगति",affinityBlocs:"समानता समूह",doxaRegions:"Doxa क्षेत्र",engagement:"सहभागिता प्रगति",gospelResources:"सुसमाचार संसाधन",languageFamilies:"भाषा परिवार",prayer:"प्रार्थना प्रगति",upg100List:"मेरी UPG 100 सूची"},header:{collapsed:"किंवदंती",peopleGroupFallback:"जनजाति समूह",default:"सूचकांक"},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:"जनसंख्या",name:"नाम"},footer:{total:"कुल"},sortByUpgs:"UUPG के अनुसार क्रमबद्ध करें",sortByPop:"जनसंख्या के अनुसार क्रमबद्ध करें",colLabel:{religion:"UUPG धर्म",prayer:"प्रार्थना स्थिति",engagement:"सहभागिता स्थिति",adoption:"गोद लेने की स्थिति",status:"स्थिति"},titleBar:{legend:"सूचकांक",peopleGroups:"जनसमूह",wagfRegions:"WAGF क्षेत्र",languages:"भाषाएँ"},tabInfo:{upg100Region:"क्षेत्र — UPG-100 सूचियों को विश्व क्षेत्र के अनुसार क्रमित करता है (अफ़्रीका, भारत, मध्य पूर्व, बधिर, …)। संख्याएँ उसके नीचे की हर सूची के UUPG और जनसंख्या का योग हैं।",upg100Zone:"UPG-100 सूचियाँ — हर एक किसी क्षेत्र के अनपहुँचे जनसमूहों की प्रार्थना सूची है, और यही मानचित्र बनाता और रंगता है। हर सूची अपने अलग पैकेट के रूप में छपती है।",upg100Group:"जनसमूह — किसी सूची के भीतर के अलग-अलग अनपहुँचे समूह, सबसे बड़ी प्रार्थना आवश्यकता पहले। मानचित्र का हर बिंदु इनमें से एक है।"},a11y:{expandRow:"{label} का विस्तार करें",collapseRow:"{label} को छोटा करें",clearSelection:"चयन हटाएँ"}},Uy={menuComingSoon:"मेनू शीघ्र आ रहा है",pinHint:{tapDot:"किसी रंगीन बिंदु पर टैप करें — किसी को अभी भी प्रार्थना की आवश्यकता है"},upg100WallHeading:"मेरी UPG 100 सूची — प्रार्थना सूचियाँ और पोस्टर",upg100WallTag:"प्रार्थना लामबंदी",upg100WallIntro:"प्रार्थना के काम को पचास-पचास और सौ-सौ के समूहों में बाँटें — जैसे यीशु ने 5,000 लोगों को खिलाया (लूका 9:14)। हर पोस्टर 100 की एक सूची है जिसके लिए आप प्रार्थना कर सकते हैं, छाप सकते हैं और दीवार पर लगा सकते हैं — उनके लिए उनके जनसमूह के नाम से प्रार्थना करते हुए।"},Vy={clusterByRegion:"Doxa क्षेत्र के अनुसार",clusterByLanguageFamily:"भाषा परिवार के अनुसार",clusterByGospelResource:"सुसमाचार संसाधन के अनुसार"},Ky={country:{wagfRegion:"WAGF क्षेत्र",wagfBlock:"WAGF ब्लॉक",country:"देश",uupgCount:"UUPG संख्या"}},Hy={header:"वर्तमान प्रार्थना चक्र",lap:"चक्र",upgs:"UUPGs",separator:" में से "},qy={"%count% people groups in %countries% countries":"%countries% देशों में %count% जनसमूह","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% में %countries% देशों में %count% लोगों के समूह हैं। प्रत्येक बिंदु का रंग दर्शाता है कि उस लोगों के समूह के लिए कितने लोग प्रार्थना कर रहे हैं।","1+ People Praying":"1+ लोग प्रार्थना कर रहे हैं","100+ People Praying":"100+ लोग प्रार्थना कर रहे हैं",Adopted:"गोद लिया गया","Adoption Progress":"गोद लेने की प्रगति","All Regions":"सभी क्षेत्र","Alternate Names":"वैकल्पिक नाम","Choose a region":"क्षेत्र चुनें","Clear All":"सभी साफ़ करें",Countries:"देश","Countries in this region":"इस क्षेत्र के देश",Country:"देश",Engaged:"संपर्कित","Engagement Progress":"संलग्नता की प्रगति","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"प्रत्येक असंलग्न जनसमूह जिसे प्रार्थना, दान और भेजने के लिए प्रतिबद्ध एक चर्च ने अपनाया है।","Exact Search":"सटीक खोज","Find unreached people groups by region and country.":"क्षेत्र और देश के अनुसार अगम्य लोगों के समूह खोजें।","Full Profile":"पूरी प्रोफ़ाइल",Goal:"लक्ष्य","Hide Filters":"फ़िल्टर छिपाएँ","Hide country posters":"देश के पोस्टर छिपाएँ",Intercessors:"मध्यस्थ","Load More":"और लोड करें","Loading results...":"परिणाम लोड हो रहे हैं..।",Map:"नक्शा","Mobilize 100+ people praying daily for each DOXA people group":"प्रत्येक DOXA जनसमूह के लिए प्रतिदिन प्रार्थना करने हेतु 100+ लोगों को सक्रिय करें।","No One Praying":"कोई प्रार्थना नहीं कर रहा","No options found":"कोई विकल्प नहीं मिला","No poster has been generated for this country yet.":"इस देश के लिए अभी तक कोई पोस्टर नहीं बना है।","No unengaged people groups by 2033":"2033 तक कोई भी संलग्न न किया गया जनसमूह नहीं रहेगा।","Not Adopted":"दत्तक नहीं लिया गया",Other:"अन्य","Page Not Found":"पृष्ठ नहीं मिला","People Group":"लोगों का समूह","People Groups":"जनसमूह","People committed to praying":"प्रार्थना के लिए प्रतिबद्ध लोग","Pick a region above, or click any dot to open that people group's country.":"ऊपर कोई क्षेत्र चुनें, या उस लोगों के समूह का देश खोलने के लिए किसी बिंदु पर क्लिक करें।","Pick a region or a country on the Regions List tab to narrow this dashboard.":"इस डैशबोर्ड को सीमित करने के लिए क्षेत्रों की सूची टैब में कोई क्षेत्र या देश चुनें।",Population:"जनसंख्या","Prayer Coverage":"प्रार्थना कवरेज","Prayer coverage progress":"प्रार्थना कवरेज की प्रगति","Region Dashboards":"क्षेत्र डैशबोर्ड","Region dashboard":"क्षेत्र डैशबोर्ड",Regions:"क्षेत्र","Regions List":"क्षेत्रों की सूची",Religion:"धर्म","Search names, country/continent, religions...":"नाम, देश/महाद्वीप, धर्म खोजें…","See %region% dashboard":"%region% डैशबोर्ड देखें","See All":"सभी देखें",Select:"चयन/छंटनी","Select View":"दृश्य चुनें","Show Filters":"फ़िल्टर दिखाएँ","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"%country% में %count% लोगों के समूह हैं। इस देश की सीमा पर स्थित लोगों के समूहों के लिए मानचित्र भी देखें।",Total:"संपूर्ण","Type to search...":"खोजने के लिए टाइप करें..।","Unengaged people groups":"अनसंपर्कित जनसमूह","View country posters":"देश के पोस्टर देखें",Views:"दृश्य","WAGF Block":"WAGF ब्लॉक","WAGF Region":"डब्ल्यूएजीएफ क्षेत्र","people groups adopted":"जनसमूह गोद लिए गए","people groups engaged":"संपर्कित जनसमूह","Outside this region":"इस क्षेत्र के बाहर",Pray:"प्रार्थना करें","Loading region dashboards…":"क्षेत्र डैशबोर्ड लोड हो रहे हैं…","No regions found.":"कोई क्षेत्र नहीं मिला।","Region data could not be loaded. This is a connection problem, not a filter.":"क्षेत्र डेटा लोड नहीं हो सका। यह कनेक्शन की समस्या है, फ़िल्टर की नहीं।","People groups could not be loaded. This is a connection problem, not a filter.":"लोकसमूह लोड नहीं हो सके। यह कनेक्शन की समस्या है, फ़िल्टर की नहीं।","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"नक्शा शुरू नहीं हो सका। यह नक्शा-टोकन या कनेक्शन की समस्या है, फ़िल्टर की नहीं — ऊपर के आंकड़े प्रभावित नहीं हैं।"},Wy={placeholder:"लोग, स्थान, भाषा, धर्म",labels:{people:"लोग:",place:"स्थान:",language:"भाषा:",religion:"धर्म:"},sections:{within:"{selection} के भीतर",allData:"सभी DOXA डेटा"},kinds:{people:"जनसमूह + देश",peopleGroup:"जनसमूह",bloc:"समानता समूह",cluster:"जनसमूह क्लस्टर",country:"देश",region:"क्षेत्र",family:"भाषा परिवार",languageKind:"भाषा",dialect:"बोली",religionKind:"धर्म"}},Yy={title:"प्लगइन स्टूडियो",navLabel:"क्षमता के अनुसार प्लगइन",countLabel:"{bundles} बंडल · यहाँ {elements} प्लगइन सूचीबद्ध",changeLanguage:"भाषा बदलें",copyEmbed:"एम्बेड कोड कॉपी करें",copy:"कॉपी करें",copied:"कॉपी हो गया",scriptEmbed:"स्क्रिप्ट एम्बेड",loading:"{name} लोड हो रहा है…",couldNotLoad:"{name} लोड नहीं हो सका।",chooseElement:"सूची से कोई प्लगइन चुनें।",filterPlaceholder:"प्लगइन फ़िल्टर करें",collapseAll:"सभी संक्षिप्त करें",noMatch:"“{query}” से कोई प्लगइन मेल नहीं खाता।",openSection:"{cap} खोलें, {label}",part:"भाग",noStandalone:"कोई अलग पेज नहीं",cap5:"ऐप शेल",cap4:"संयुक्त",cap3:"बहु-दृश्य",cap2:"प्रीसेट",cap1:"एकल",toggleList:"सूची दिखाएँ या छिपाएँ",openViews:"दृश्यों की सूची खोलें",expandList:"सूची फैलाएँ",collapseList:"सूची संक्षिप्त करें",collapse:"संक्षिप्त करें",partOf:"{name} का भाग, अलग से प्रकाशित नहीं"},Xy={prayer:"प्रार्थना",adoption:"गोद लेना",engagement:"सहभागिता","affinity-blocks":"जनसमूह",regions:"क्षेत्र",countries:"देश","language-families":"भाषाएँ",religion:"धर्म",family:"भाषा परिवार",language:"भाषा",dialect:"बोली/रूप",bloc:"समानता समूह",cluster:"क्लस्टर",group:"जनसमूह",pgic:"देश में जनसमूह",region:"WAGF क्षेत्र",block:"WAGF ब्लॉक",country:"देश",upg100Region:"क्षेत्र",upg100Zone:"UPG-100 सूचियाँ",upg100Group:"जनसमूह",selectView:"दृश्य चुनें",views:"दृश्य",prayerResources:"प्रार्थना संसाधन",map:"मानचित्र"},Zy={kicker:"DOXA · दर्शन",title:"हर जनसमूह। हर स्थान।",tagline:"दुनिया के हर जनसमूह से उन तक जिनके लिए DOXA प्रार्थना करता है, आँकड़ों से गिने गए।",funnelLabel:"सभी जनसमूहों से DOXA जनसमूहों तक",allLabel:"जनसमूह",allNote:"हर जनसमूह, हर उस देश में जहाँ वह रहता है",unreachedLabel:"अप्रचारित",unreachedNote:"2% से कम इवेंजेलिकल",frontierLabel:"सीमांत",frontierNote:"0.1% से कम इवेंजेलिकल",doxaLabel:"DOXA जनसमूह",doxaNote:"इनमें से {frontier} सीमांत हैं",people:"{n} लोग",sources:"जनसमूह: {imb}, {date} के आँकड़े। DOXA सूची: pray.doxa.life, {date2}।",howCounted:"ये कैसे गिने गए",ruleAll:"IMB जनसमूह आँकड़ों की हर पंक्ति: एक देश में एक जनसमूह।",ruleUnreached:"IMB लॉस्टनेस प्राथमिकता 0 से 2: 2% से कम इवेंजेलिकल।",ruleFrontier:"IMB लॉस्टनेस प्राथमिकता 0: 0.1% से कम इवेंजेलिकल। अप्रचारितों का एक भाग।",ruleDoxa:"DOXA प्रार्थना सूची का हर समूह, जनसमूह और देश के आधार पर IMB आँकड़ों से मिलाया गया। सभी सीमांत नहीं हैं।"},Jy={title:"Tutti i gruppi etnici",locations:"{n} località (gruppo × paese)",doxa:"Gruppi etnici DOXA",frontier:"Frontiera — non è iniziato nulla",unreached:"Non raggiunti — il lavoro inizia",reached:"Raggiunti — la chiesa c’è",hint:"Fai clic su una riga per vederli tutti · di nuovo per vedere tutto",loading:"Caricamento di tutti i gruppi etnici…",loadError:"Impossibile caricare la mappa.",pray:"Prega per loro →",population:"pop. {n}"},Qy={backToLegend:"Torna alla legenda",closeDetailView:"Chiudi vista dettaglio",collapseLegend:"Comprimi la legenda",expandLegend:"Espandi la legenda",toggleLegend:"Mostra o nascondi la legenda"},e_={prayForThem:"Prega per loro",adoptThem:"Adottali",moreInfo:"Più informazioni",zoomIn:"Ingrandisci",zoomOut:"Riduci",switchToLightMode:"Passa alla modalità chiara",switchToDarkMode:"Passa alla modalità scura",resetView:"Reimposta vista",toggleFullscreen:"Attiva/disattiva schermo intero",aboutThisMap:"Informazioni su questa mappa",closeMenu:"Chiudi menu",reloadMap:"Ricarica mappa",showClusters:"Mostra cluster",clusterSettings:"Impostazioni cluster",startAutoFly:"Avvia volo automatico",stopFlight:"Ferma volo",speedLabel:"Velocità:",speedOption:{slow:"Lenta",normal:"Normale",fast:"Veloce"},shareEmbed:"Condividi e incorpora",posterMap:"Mappa del poster",prayerList:"Lista di preghiera",cardDeck:"Mazzo di carte",printOptions:"Opzioni di stampa",showOnMap:"Mostra sulla mappa",close:"Chiudi",showOnMapAria:"Mostra {label} sulla mappa",cardStockAria:"Formato della scheda di preghiera",previewPrintPoster:"Anteprima e stampa del poster {label}",share:"Condividi",shareSteps:["Incorpora questa mappa nel tuo sito","Fai un elenco dei siti web della tua città","Insegna loro a incorporarla a loro volta","Insegna loro a formare altri a incorporarla","Moltiplichiamo le mappe ovunque per Gesù!"],clearSelection:"Cancella la selezione",noOptions:"Nessuna opzione trovata",renderingLocal:"Un’immagine con qualità di stampa viene generata nel tuo browser: nulla viene caricato.",postersPerRow:"Poster per riga"},t_={title:"Accesso a internet dove vivono i popoli senza impegno",bands:{yes:"connesso 60%+",partial:"parziale 25–59%",no:"basso, sotto il 25%",unknown:"non misurato"},peopleGroup:"popolo",caveat:"Dati NAZIONALI (Banca Mondiale). La connettività per città non è disponibile pubblicamente: non dedurre una città dal suo paese.",sheet:{close:"Chiudi",ai:"Questi dati provengono da una ricerca approfondita con IA e possono contenere informazioni errate.",dismiss:"Ignora",internetUsers:"Utenti internet",measured:"Misurato",mobilePer100:"Cellulari ogni 100",peopleGroups:"Popoli",topPlatform:"Piattaforma principale",unknown:"sconosciuto",carriers:"Operatori e ISP ({n})",socialPlatforms:"Piattaforme social",note:"Dati nazionali, non misure per città. I nomi degli operatori sono titolari di registri ASN (includono banche e università oltre agli ISP), quindi l'etichetta di operatore è un'euristica basata sul nome, non una classificazione verificata."}},o_={research_controls:"Controlli di ricerca",clustering:"Raggruppamento",filters:"Filtri",pin_dim:"Opacità dei punti",export_poster:"Esporta poster…",reload_data:"Ricarica i dati",off:"Disattivato",native:"Nativo",mst:"MST",network:"Rete",off_desc:"Mostra ogni punto singolarmente",native_desc:"Cluster circolari Mapbox (il più veloce)",mst_desc:"Reti di affinità ad albero ricoprente minimo",network_desc:"Linee verso il vicino più prossimo",search_languages:"Cerca lingue…",search_religions:"Cerca religioni…",reset_all:"Reimposta tutto",no_languages:"Nessuna lingua ancora caricata",no_religions:"Nessuna religione ancora caricata",unadopted:"Non adottato",min:"min",max:"max",adopted:"Adottato",adoption:"Adozione",engaged:"Coinvolto",engagement:"Impegno",unengaged:"Necessita impegno",language:"Lingua",religion:"Religione",population:"Popolazione",any:"Tutti",active_count:"{n} attivi",prayer_status:"Stato di preghiera",close:"Chiudi",clear:"Cancella",map_controls:"Controlli della mappa"},n_={bloc:"Blocco di affinità",gospel_access:"Accesso al vangelo",people:"Popoli",people_name:"Popolo (nome)",praying:"In preghiera",religion_family:"Famiglia religiosa",search_language:"Cerca lingua",search_people:"Cerca popolo",search_place:"Cerca luogo",search_religion:"Cerca religione",upgs_in_scope:"UPG nell’ambito",countries_touched:"paesi toccati",unreached:"non raggiunti",sum_population:"Σ popolazione",sum_praying:"Σ in preghiera",charts:"Grafici",table:"Tabella",cluster:"Cluster",country:"Paese",engagement:"Impegno",language:"Lingua",language_family:"Famiglia linguistica",people_group:"Popolo",population:"Popolazione",prayer:"Preghiera",region:"Regione",religion:"Religione",status:"Stato",adopted:"Adottato",filters:"Filtri",gospel_resources:"Risorse del Vangelo",map:"Mappa",search_placeholder:"Cerca popoli, luoghi, lingue, religioni…",any:"Tutti",active_count:"{n} attivi",prayer_status:"Stato di preghiera",map_controls:"Controlli della mappa",close:"Chiudi",clear:"Cancella",dashboard_title:"Cruscotto di ricerca generale",align_dashboard:"Allinea cruscotto",align_dashboard_tip:"Ripristina la disposizione predefinita del cruscotto",selected:"Selezionato",world:"Mondo",vertical_legend:"Legenda verticale",groups_in_scope:"popoli nell’ambito",filter_by:"Filtra per",remove_filter:"Rimuovi filtro",groups:"popoli",expand:"Espandi",collapse:"Comprimi",place:"Luogo"},a_={labels:{country:"Paese:",population:"Popolazione:",language:"Lingua:",religion:"Religione:",languageFamily:"Famiglia linguistica:",peopleCommitted:"Impegnati a pregare:"},messages:{noDescription:"Nessuna descrizione disponibile."}},s_={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Le note esplicative qui sotto sono in inglese."},mode:{gap:"Divario",coverage:"Risorse trovate"},search:{placeholder:"Cerca un popolo, una lingua o un codice ISO",clear:"Cancella ricerca",none:"Nessuna corrispondenza per quel nome, lingua o codice.",placeholderShort:"Popolo, lingua o codice ISO"},legend:{title:"Popoli non raggiunti senza alcuna risorsa del vangelo",band60:"60%+ senza nulla",band30:"30–59%",bandSome:"alcuni popoli",bandAll:"tutti i popoli hanno qualcosa",tier2:"Scritture e film",tier1:"qualche risorsa trovata",tier0:"nulla trovato",hnr:"possono ascoltarlo, nessun testo",showAll:"Mostra tutti i popoli",titleCoverage:"Popoli non raggiunti con qualche risorsa del vangelo",cov80:"80%+ hanno qualcosa",cov50:"50–79%",cov1:"1–49%",cov0:"nulla per nessuno",tallyEach:"Ogni",tallyIs:"è UN popolo —",tallyOf:"di questi,",tallyLink:"con un link",doxa0:"tutti hanno qualcosa",doxa1:"1–4 senza nulla",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 raggiunti",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Popoli Doxa su questa mappa",notPlaced:"in elenco, non ancora collocati",outOfScope:"nessun popolo Doxa — non colorato"},tabs:{groups:"Popoli più numerosi",countries:"Per paese",regions:"Per regione",noprayer:"Nessuno prega",hnr:"Ascoltano, senza testo"},stat:{language:"Lingua",population:"Popolazione",countries:"Paesi",peopleGroups:"Popoli",noResource:"Nessuna risorsa trovata",peopleAffected:"Persone coinvolte",haveScripture:"Hanno le Scritture",haveFilm:"Hanno il film",haveAudio:"Hanno le Scritture in audio",signLanguages:"Lingue dei segni",growingUnreached:"In crescita e non raggiunti",deathsDay:"Decessi stimati/giorno"},sheet:{ownLanguage:"Nella loro lingua",close:"Chiudi",loading:"Caricamento risorse…",pray:"Prega per",everyResource:"Tutte le risorse in",alsoSpeak:"Parlano anche"},res:{scripture:"Scritture",film:"Film",audio:"Audio",bibleVideo:"Video biblico",bibleStories:"Open Bible Stories",gospelAudio:"Audio del Vangelo",gospelPresentation:"Presentazione del Vangelo",scriptureEarth:"Scripture Earth",training:"Formazione al discepolato",jesusFilm:"Film GESÙ"},state:{noneFound:"nulla trovato",noneAtFcbh:"nulla presso FCBH",noneAtGrn:"nulla presso GRN",notInZume:"non tra le 54 di Zume",linkChecked:"link verificato",unchecked:"non verificato",linkDead:"link non attivo",wrongLanguage:"lingua errata",varietyNotStated:"(varietà non indicata)",inLanguage:"in"},guide:{dotVsCountry:"Ogni punto è UN popolo di Doxa con la sua lingua; un paese è il NUMERO di quei popoli.",noneFoundShort:"«Nulla trovato» significa assente dalle fonti controllate, mai la prova che non esista.",tapCountry:"Tocca un paese per vedere le risorse, popolo per popolo."},tables:{title:"Risorse del Vangelo — Dati",showing:"Mostrando",of:"di",for:"per",filteredTo:"Filtrato per",showAll:"Mostra tutte le risorse",t_doxa:"Doxa — Accesso al Vangelo",t_links:"Ogni risorsa + link",t_nothing:"Dove non si è trovato nulla",t_countrygap:"Il divario per paese",t_translation:"Ascoltano, senza testo",t_translationcountry:"Dove tradurre",t_gaps:"Divari e opportunità",t_bridges:"Ponti urbani",t_deaf:"Il divario sordo",t_resources:"Risorse per popolo",t_languages:"Lingue per paese",t_growth:"Accesso vs crescita"},pages:{listTitle:"Risorse del Vangelo per lingua",chartsTitle:"Risorse del Vangelo — per lingua",loadingTables:"Caricamento delle tabelle…"},list:{noText:"Nessun testo biblico",hasScripture:"Ha le Scritture",allLanguages:"Tutte le lingue",peopleGroup:"popolo",peopleGroups:"popoli",scriptureHere:"Scritture in questa lingua"},columns:{"People group":"Popolo",Country:"Paese",Region:"Regione",Language:"Lingua",Population:"Popolazione",Religion:"Religione","Gospel access":"Accesso al Vangelo",Resources:"Risorse",Scripture:"Scritture","Bible video":"Video biblico","Gospel presentation":"Presentazione del Vangelo",Countries:"Paesi","People groups":"Popoli"}},r_={search:"Cerca popoli…",hide_filters:"Nascondi filtri",show_filters:"Mostra filtri",total:"Totale",showing:"Mostrati",load_more:"Carica altro",full_profile:"Profilo completo",wagf_region:"Regione",wagf_block:"Blocco di affinità",rop1:"Popolo",religion:"Religione",exact_filter:"Esatto",clear_all:"Cancella tutto",loading:"Caricamento…",no_results:"Nessun popolo corrisponde a questo filtro.",type_to_search:"Digita per cercare...",load_failed:"Impossibile caricare i dati dei popoli. È un problema di connessione, non del filtro."},i_={title:{adoption:"Avanzamento dell'adozione",affinityBlocs:"Blocchi di affinità",doxaRegions:"Regioni Doxa",engagement:"Avanzamento dell'impegno",gospelResources:"Risorse del Vangelo",languageFamilies:"Famiglie linguistiche",prayer:"Avanzamento della preghiera",upg100List:"La mia lista UPG 100"},header:{collapsed:"Legenda",peopleGroupFallback:"Gruppo di persone",default:"Legenda"},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",name:"Nome"},footer:{total:"Totale"},sortByUpgs:"Ordina per UUPG",sortByPop:"Ordina per popolazione",colLabel:{religion:"Religioni UUPG",prayer:"Stato della preghiera",engagement:"Stato dell'impegno",adoption:"Stato dell'adozione",status:"Stato"},titleBar:{legend:"Legenda",peopleGroups:"Popoli",wagfRegions:"Regioni WAGF",languages:"Lingue"},tabInfo:{upg100Region:"Regione — ordina le liste UPG-100 per area del mondo (Africa, India, Medio Oriente, Sordi, …). I totali sono gli UUPG e la popolazione sommati di ogni lista sottostante.",upg100Zone:"Liste UPG-100 — ognuna è una lista di preghiera dei gruppi etnici non raggiunti di un’area, ed è ciò che la mappa disegna e colora. Ogni lista si stampa come il proprio fascicolo.",upg100Group:"Gruppo etnico — i singoli gruppi non raggiunti dentro una lista, prima quelli con maggiore bisogno di preghiera. Ogni punto della mappa è uno di questi."},a11y:{expandRow:"Espandi {label}",collapseRow:"Comprimi {label}",clearSelection:"Cancella la selezione"}},l_={menuComingSoon:"Menu in arrivo",pinHint:{tapDot:"Tocca un punto colorato — qualcuno ha ancora bisogno di preghiera"},upg100WallHeading:"La mia lista UPG 100 — Liste di preghiera e poster",upg100WallTag:"Mobilitazione alla preghiera",upg100WallIntro:"Distribuisci il compito della preghiera in gruppi di cinquanta e di cento — come Gesù sfamò i 5.000 (Luca 9:14). Ogni poster è una lista di 100 che puoi pregare, stampare e appendere al muro — pregando per loro con il nome del loro popolo."},c_={clusterByRegion:"Per regione Doxa",clusterByLanguageFamily:"Per famiglia linguistica",clusterByGospelResource:"Per risorsa del Vangelo"},u_={country:{wagfRegion:"Regione WAGF",wagfBlock:"Blocco WAGF",country:"Paese",uupgCount:"Numero di UUPG"}},p_={header:"GIRO DI PREGHIERA ATTUALE",lap:"Giro",upgs:"UUPGs",separator:" di "},d_={"%count% people groups in %countries% countries":"%count% popoli in %countries% paesi","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% conta %count% popoli in %countries% paesi. Il colore di ogni punto indica quante persone pregano per quel popolo.","1+ People Praying":"1+ persone in preghiera","100+ People Praying":"100+ persone in preghiera",Adopted:"Adottato","Adoption Progress":"Avanzamento dell'adozione","All Regions":"Tutte le regioni","Alternate Names":"Nomi alternativi","Choose a region":"Scegli una regione","Clear All":"Cancella tutto",Countries:"Paesi","Countries in this region":"Paesi di questa regione",Country:"Paese",Engaged:"Coinvolto","Engagement Progress":"Avanzamento dell'impegno","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Ogni popolo non ancora raggiunto adottato da una chiesa impegnata nella preghiera, nel dare e nell'inviare","Exact Search":"Ricerca esatta","Find unreached people groups by region and country.":"Trova i popoli non raggiunti per regione e paese.","Full Profile":"Profilo completo",Goal:"Obiettivo","Hide Filters":"Nascondi i filtri","Hide country posters":"Nascondi i poster del paese",Intercessors:"Intercessori","Load More":"Carica altri","Loading results...":"Caricamento dei risultati…",Map:"Mappa","Mobilize 100+ people praying daily for each DOXA people group":"Mobilitare oltre 100 persone che pregano ogni giorno per ciascun popolo DOXA","No One Praying":"Nessuno prega","No options found":"Nessuna opzione trovata","No poster has been generated for this country yet.":"Per questo paese non è ancora stato generato alcun poster.","No unengaged people groups by 2033":"Nessun popolo senza impegno entro il 2033","Not Adopted":"Non adottato",Other:"Altro","Page Not Found":"Pagina non trovata","People Group":"Popolo","People Groups":"Popoli","People committed to praying":"Persone impegnate a pregare","Pick a region above, or click any dot to open that people group's country.":"Scegli una regione qui sopra, oppure clicca su un punto per aprire il paese di quel gruppo etnico.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Scegli una regione o un paese nella scheda Elenco delle regioni per restringere questo cruscotto.",Population:"Popolazione","Prayer Coverage":"Copertura della preghiera","Prayer coverage progress":"Avanzamento della copertura di preghiera","Region Dashboards":"Cruscotti delle regioni","Region dashboard":"Cruscotto della regione",Regions:"Regioni","Regions List":"Elenco delle regioni",Religion:"Religione","Search names, country/continent, religions...":"Cerca nomi, paese/continente, religioni…","See %region% dashboard":"Vedi il cruscotto di %region%","See All":"Vedi tutto",Select:"Seleziona","Select View":"Seleziona vista","Show Filters":"Mostra i filtri","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"In %country% ci sono %count% popoli. Controlla sulla mappa anche i popoli ai confini di questo paese.",Total:"Totale","Type to search...":"Digita per cercare…","Unengaged people groups":"Popoli senza impegno","View country posters":"Vedi i poster del paese",Views:"Viste","WAGF Block":"Blocco WAGF","WAGF Region":"Regione WAGF","people groups adopted":"popoli adottati","people groups engaged":"popoli coinvolti","Outside this region":"Fuori da questa regione",Pray:"Prega","Loading region dashboards…":"Caricamento delle dashboard delle regioni…","No regions found.":"Nessuna regione trovata.","Region data could not be loaded. This is a connection problem, not a filter.":"Non è stato possibile caricare i dati delle regioni. È un problema di connessione, non un filtro.","People groups could not be loaded. This is a connection problem, not a filter.":"Non è stato possibile caricare i gruppi di popolazione. È un problema di connessione, non un filtro.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"La mappa non è potuta avviare. È un problema di token della mappa o di connessione, non un filtro: i dati sopra non sono interessati."},g_={placeholder:"Popolo, luogo, lingua, religione",labels:{people:"Popolo:",place:"Luogo:",language:"Lingua:",religion:"Religione:"},sections:{within:"In {selection}",allData:"Tutti i dati DOXA"},kinds:{people:"Popolo + paese",peopleGroup:"Popolo",bloc:"Blocco di affinità",cluster:"Cluster di popoli",country:"Paese",region:"Regione",family:"Famiglia linguistica",languageKind:"Lingua",dialect:"Dialetto",religionKind:"Religione"}},f_={title:"Studio dei plugin",navLabel:"Plugin per capacità",countLabel:"{bundles} pacchetti · {elements} plugin elencati qui",changeLanguage:"Cambia lingua",copyEmbed:"Copia codice di incorporamento",copy:"Copia",copied:"Copiato",scriptEmbed:"Incorporamento tramite script",loading:"Caricamento di {name}…",couldNotLoad:"Impossibile caricare {name}.",chooseElement:"Scegli un plugin dall’elenco.",filterPlaceholder:"Filtra i plugin",collapseAll:"Comprimi tutto",noMatch:"Nessun plugin corrisponde a «{query}».",openSection:"Apri {cap}, {label}",part:"parte",noStandalone:"nessuna pagina propria",cap5:"Shell dell’app",cap4:"Composito",cap3:"Multivista",cap2:"Preimpostato",cap1:"Singolo",toggleList:"Mostra o nascondi l’elenco",openViews:"Apri l’elenco delle viste",expandList:"Espandi l’elenco",collapseList:"Comprimi l’elenco",collapse:"Comprimi",partOf:"parte di {name}, non pubblicata da sola"},h_={prayer:"Preghiera",adoption:"Adozione",engagement:"Impegno","affinity-blocks":"Popoli",regions:"Regioni",countries:"Paesi","language-families":"Lingue",religion:"Religioni",family:"Famiglia ling.",language:"Lingua",dialect:"Dialetto/Variante",bloc:"Blocco di affinità",cluster:"Cluster",group:"Popolo",pgic:"Popolo nel paese",region:"Regione WAGF",block:"Blocco WAGF",country:"Paese",upg100Region:"Regione",upg100Zone:"Liste UPG-100",upg100Group:"Gruppo etnico",selectView:"Seleziona vista",views:"Viste",prayerResources:"Risorse di preghiera",map:"Mappa"},m_={kicker:"DOXA · Visione",title:"Ogni popolo. Ogni luogo.",tagline:"Da tutti i gruppi etnici del mondo a quelli per cui DOXA prega, contati dai dati.",funnelLabel:"Da tutti i gruppi etnici ai gruppi etnici DOXA",allLabel:"Gruppi etnici",allNote:"ogni gruppo etnico, in ogni paese in cui vive",unreachedLabel:"Non raggiunti",unreachedNote:"meno del 2% evangelici",frontierLabel:"Frontiera",frontierNote:"meno dello 0,1% evangelici",doxaLabel:"Gruppi etnici DOXA",doxaNote:"{frontier} di questi sono di frontiera",people:"{n} persone",sources:"Gruppi etnici: {imb}, dati del {date}. Elenco DOXA: pray.doxa.life, {date2}.",howCounted:"Come vengono contati",ruleAll:"Ogni riga dei dati IMB sui gruppi etnici: un gruppo etnico in un paese.",ruleUnreached:"Priorità di perdizione IMB da 0 a 2: meno del 2% evangelici.",ruleFrontier:"Priorità di perdizione IMB 0: meno dello 0,1% evangelici. Un sottoinsieme dei non raggiunti.",ruleDoxa:"Ogni gruppo dell’elenco di preghiera DOXA, abbinato ai dati IMB per popolo e paese. Non tutti sono di frontiera."},b_={title:"Todos os grupos étnicos",locations:"{n} locais (grupo × país)",doxa:"Grupos étnicos da DOXA",frontier:"Fronteira — nada iniciado",unreached:"Não alcançados — o trabalho começa",reached:"Alcançados — a igreja está lá",hint:"Clique em uma linha para ver todos · clique de novo para ver tudo",loading:"Carregando todos os grupos étnicos…",loadError:"Não foi possível carregar o mapa.",pray:"Ore por eles →",population:"pop. {n}"},$_={backToLegend:"Voltar à legenda",closeDetailView:"Fechar vista de detalhe",collapseLegend:"Recolher a legenda",expandLegend:"Expandir a legenda",toggleLegend:"Mostrar ou ocultar a legenda"},y_={prayForThem:"Ore por eles",adoptThem:"Adote-os",moreInfo:"Mais informações",zoomIn:"Ampliar",zoomOut:"Reduzir",switchToLightMode:"Mudar para modo claro",switchToDarkMode:"Mudar para modo escuro",resetView:"Repor vista",toggleFullscreen:"Alternar ecrã inteiro",aboutThisMap:"Sobre este mapa",closeMenu:"Fechar menu",reloadMap:"Recarregar mapa",showClusters:"Mostrar clusters",clusterSettings:"Definições de clusters",startAutoFly:"Iniciar voo automático",stopFlight:"Parar voo",speedLabel:"Velocidade:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Partilhar e incorporar",posterMap:"Mapa do cartaz",prayerList:"Lista de oração",cardDeck:"Baralho de cartões",printOptions:"Opções de impressão",showOnMap:"Ver no mapa",close:"Fechar",showOnMapAria:"Ver {label} no mapa",cardStockAria:"Tamanho do cartão de oração",previewPrintPoster:"Pré-visualizar e imprimir o cartaz de {label}",share:"Partilhar",shareSteps:["Incorpore este mapa no seu site","Faça uma lista dos sites da sua cidade","Ensine-os a incorporá-lo também","Ensine-os a ensinar outros a incorporá-lo","Multipliquemos mapas por toda a parte para Jesus!"],clearSelection:"Limpar a seleção",noOptions:"Nenhuma opção encontrada",renderingLocal:"Uma imagem com qualidade de impressão está a ser gerada no seu navegador — nada é enviado.",postersPerRow:"Cartazes por linha"},__={title:"Acesso à internet onde vivem os povos sem envolvimento",bands:{yes:"conectado 60%+",partial:"parcial 25–59%",no:"baixo, abaixo de 25%",unknown:"não medido"},peopleGroup:"povo",caveat:"Números NACIONAIS (Banco Mundial). A conectividade por cidade não está disponível publicamente — não deduza uma cidade a partir do país.",sheet:{close:"Fechar",ai:"Estes dados foram encontrados por pesquisa aprofundada com IA — podem conter informações falsas.",dismiss:"Dispensar",internetUsers:"Usuários de internet",measured:"Medido",mobilePer100:"Celulares por 100",peopleGroups:"Povos",topPlatform:"Plataforma principal",unknown:"desconhecido",carriers:"Operadoras e provedores ({n})",socialPlatforms:"Redes sociais",note:"Números nacionais, não medições por cidade. Os nomes das operadoras são titulares de registros ASN (incluem bancos e universidades além de provedores), então a marcação de operadora é uma heurística pelo nome, não uma classificação verificada."}},v_={research_controls:"Controlos de pesquisa",clustering:"Agrupamento",filters:"Filtros",pin_dim:"Esbater pontos",export_poster:"Exportar cartaz…",reload_data:"Recarregar dados",off:"Desligado",native:"Nativo",mst:"MST",network:"Rede",off_desc:"Mostrar cada ponto individualmente",native_desc:"Grupos circulares Mapbox (mais rápido)",mst_desc:"Redes de afinidade por árvore geradora mínima",network_desc:"Linhas para o vizinho mais próximo",search_languages:"Pesquisar idiomas…",search_religions:"Pesquisar religiões…",reset_all:"Repor tudo",no_languages:"Ainda não há idiomas carregados",no_religions:"Ainda não há religiões carregadas",unadopted:"Não adotado",min:"mín",max:"máx",adopted:"Adotado",adoption:"Adoção",engaged:"Engajado",engagement:"Engajamento",unengaged:"Precisa de envolvimento",language:"Idioma",religion:"Religião",population:"População",any:"Qualquer",active_count:"{n} ativos",prayer_status:"Estado de oração",close:"Fechar",clear:"Limpar",map_controls:"Controlos do mapa"},w_={bloc:"Bloco de afinidade",gospel_access:"Acesso ao evangelho",people:"Povos",people_name:"Povo (nome)",praying:"A orar",religion_family:"Família religiosa",search_language:"Pesquisar idioma",search_people:"Pesquisar povo",search_place:"Pesquisar lugar",search_religion:"Pesquisar religião",upgs_in_scope:"UPG no âmbito",countries_touched:"países alcançados",unreached:"não alcançados",sum_population:"Σ população",sum_praying:"Σ a orar",charts:"Gráficos",table:"Tabela",cluster:"Agrupamento",country:"País",engagement:"Engajamento",language:"Idioma",language_family:"Família linguística",people_group:"Povo",population:"População",prayer:"Oração",region:"Região",religion:"Religião",status:"Status",adopted:"Adotado",filters:"Filtros",gospel_resources:"Recursos do Evangelho",map:"Mapa",search_placeholder:"Pesquisar povos, lugares, idiomas, religiões…",any:"Qualquer",active_count:"{n} ativos",prayer_status:"Estado de oração",map_controls:"Controlos do mapa",close:"Fechar",clear:"Limpar",dashboard_title:"Painel de pesquisa geral",align_dashboard:"Alinhar painel",align_dashboard_tip:"Repor a disposição do painel para o alinhamento predefinido",selected:"Selecionado",world:"Mundo",vertical_legend:"Legenda vertical",groups_in_scope:"povos no âmbito",filter_by:"Filtrar por",remove_filter:"Remover filtro",groups:"povos",expand:"Expandir",collapse:"Recolher",place:"Lugar"},k_={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."}},x_={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"As notas explicativas abaixo estão em inglês."},mode:{gap:"Lacuna",coverage:"Recursos encontrados"},search:{placeholder:"Procure um povo, idioma ou código ISO",clear:"Limpar busca",none:"Nada corresponde a esse nome, idioma ou código.",placeholderShort:"Povo, idioma ou código ISO"},legend:{title:"Povos não alcançados sem nenhum recurso do evangelho",band60:"60%+ sem nada encontrado",band30:"30–59%",bandSome:"alguns povos",bandAll:"todos os povos têm algo",tier2:"Escrituras e filme",tier1:"algum recurso encontrado",tier0:"nada encontrado",hnr:"podem ouvir, sem texto",showAll:"Mostrar todos os povos",titleCoverage:"Povos não alcançados com algum recurso do evangelho",cov80:"80%+ têm algo",cov50:"50–79%",cov1:"1–49%",cov0:"nada para ninguém",tallyEach:"Cada",tallyIs:"é UM povo —",tallyOf:"deles,",tallyLink:"com um link",doxa0:"todos têm algo",doxa1:"1–4 sem nada",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 alcançados",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Povos Doxa neste mapa",notPlaced:"na lista, ainda sem localização",outOfScope:"sem povos Doxa — sem cor"},tabs:{groups:"Maiores povos",countries:"Por país",regions:"Por região",noprayer:"Ninguém orando",hnr:"Ouvem, sem texto"},stat:{language:"Idioma",population:"População",countries:"Países",peopleGroups:"Povos",noResource:"Nenhum recurso encontrado",peopleAffected:"Pessoas afetadas",haveScripture:"Têm Escrituras",haveFilm:"Têm filme",haveAudio:"Têm Escrituras em áudio",signLanguages:"Línguas de sinais",growingUnreached:"Em crescimento e não alcançados",deathsDay:"Mortes estimadas/dia"},sheet:{ownLanguage:"No próprio idioma",close:"Fechar",loading:"Carregando recursos…",pray:"Ore por",everyResource:"Todos os recursos em",alsoSpeak:"Também falam"},res:{scripture:"Escrituras",film:"Filme",audio:"Áudio",bibleVideo:"Vídeo bíblico",bibleStories:"Open Bible Stories",gospelAudio:"Áudio do evangelho",gospelPresentation:"Apresentação do evangelho",scriptureEarth:"Scripture Earth",training:"Treinamento de discipulado",jesusFilm:"Filme JESUS"},state:{noneFound:"nada encontrado",noneAtFcbh:"nada na FCBH",noneAtGrn:"nada na GRN",notInZume:"não está entre as 54 da Zume",linkChecked:"link verificado",unchecked:"não verificado",linkDead:"link inativo",wrongLanguage:"idioma incorreto",varietyNotStated:"(variedade não indicada)",inLanguage:"em"},guide:{dotVsCountry:"Cada ponto é UM povo da Doxa e o seu próprio idioma; um país é o NÚMERO desses povos.",noneFoundShort:"«Nada encontrado» significa ausente das fontes verificadas, nunca prova de que não exista.",tapCountry:"Toque num país para ver os recursos, povo a povo."},tables:{title:"Recursos do evangelho — Dados",showing:"Mostrando",of:"de",for:"para",filteredTo:"Filtrado por",showAll:"Mostrar todos os recursos",t_doxa:"Doxa — Acesso ao evangelho",t_links:"Cada recurso + link",t_nothing:"Onde nada foi encontrado",t_countrygap:"A lacuna por país",t_translation:"Ouvem, sem texto",t_translationcountry:"Onde traduzir",t_gaps:"Lacunas e oportunidades",t_bridges:"Pontes urbanas",t_deaf:"A lacuna surda",t_resources:"Recursos por povo",t_languages:"Idiomas por país",t_growth:"Acesso vs crescimento"},pages:{listTitle:"Recursos do evangelho por idioma",chartsTitle:"Recursos do evangelho — por idioma",loadingTables:"Carregando tabelas de recursos…"},list:{noText:"Sem texto bíblico",hasScripture:"Tem Escrituras",allLanguages:"Todos os idiomas",peopleGroup:"povo",peopleGroups:"povos",scriptureHere:"Escrituras neste idioma"},columns:{"People group":"Povo",Country:"País",Region:"Região",Language:"Idioma",Population:"População",Religion:"Religião","Gospel access":"Acesso ao evangelho",Resources:"Recursos",Scripture:"Escrituras","Bible video":"Vídeo bíblico","Gospel presentation":"Apresentação do evangelho",Countries:"Países","People groups":"Povos"}},L_={search:"Pesquisar povos…",hide_filters:"Ocultar filtros",show_filters:"Mostrar filtros",total:"Total",showing:"Mostrando",load_more:"Carregar mais",full_profile:"Perfil completo",wagf_region:"Região",wagf_block:"Bloco de afinidade",rop1:"Povo",religion:"Religião",exact_filter:"Exato",clear_all:"Limpar tudo",loading:"A carregar…",no_results:"Nenhum povo corresponde a este filtro.",type_to_search:"Escreva para pesquisar...",load_failed:"Não foi possível carregar os dados dos povos. É um problema de ligação, não do seu filtro."},A_={title:{adoption:"Progresso da adoção",affinityBlocs:"Blocos de afinidade",doxaRegions:"Regiões Doxa",engagement:"Progresso do envolvimento",gospelResources:"Recursos do Evangelho",languageFamilies:"Famílias linguísticas",prayer:"Progresso da oração",upg100List:"A minha lista UPG 100"},header:{collapsed:"Legenda",peopleGroupFallback:"Grupo de pessoas",default:"Legenda"},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"},tabInfo:{upg100Region:"Região — ordena as listas UPG-100 por área do mundo (África, Índia, Oriente Médio, Surdos, …). Os totais são os UUPG e a população somados de todas as listas abaixo dela.",upg100Zone:"Listas UPG-100 — cada uma é uma lista de oração dos grupos étnicos não alcançados de uma área, e é o que o mapa pinta e colore. Cada lista é impressa como seu próprio pacote.",upg100Group:"Grupo étnico — os grupos não alcançados dentro de uma lista, primeiro os de maior necessidade de oração. Cada ponto do mapa é um deles."},a11y:{expandRow:"Expandir {label}",collapseRow:"Recolher {label}",clearSelection:"Limpar a seleção"}},S_={menuComingSoon:"Menu em breve",pinHint:{tapDot:"Toque num ponto colorido — alguém ainda precisa de oração"},upg100WallHeading:"A minha lista UPG 100 — Listas de oração e cartazes",upg100WallTag:"Mobilização de oração",upg100WallIntro:"Reparta a tarefa da oração em grupos de cinquenta e de cem — como Jesus alimentou os 5.000 (Lucas 9:14). Cada cartaz é uma lista de 100 que pode orar, imprimir e pôr na parede — orando por eles pelo nome do seu povo."},P_={clusterByRegion:"Por região Doxa",clusterByLanguageFamily:"Por família linguística",clusterByGospelResource:"Por recurso do Evangelho"},C_={country:{wagfRegion:"Região WAGF",wagfBlock:"Bloco WAGF",country:"País",uupgCount:"Número de UUPG"}},E_={header:"VOLTA DE ORAÇÃO ATUAL",lap:"Volta",upgs:"UUPGs",separator:" de "},T_={"%count% people groups in %countries% countries":"%count% grupos étnicos em %countries% países","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% tem %count% grupos étnicos em %countries% países. A cor de cada ponto indica quantas pessoas oram por esse grupo étnico.","1+ People Praying":"1+ pessoas orando","100+ People Praying":"100+ pessoas orando",Adopted:"Adotado","Adoption Progress":"Progresso da adoção","All Regions":"Todas as regiões","Alternate Names":"Nomes alternativos","Choose a region":"Escolha uma região","Clear All":"Limpar tudo",Countries:"Países","Countries in this region":"Países desta região",Country:"País",Engaged:"Engajado","Engagement Progress":"Progresso do engajamento","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Cada grupo étnico não engajado adotado por uma igreja comprometida com a oração, contribuição e o envio","Exact Search":"Pesquisa exata","Find unreached people groups by region and country.":"Encontre grupos étnicos não alcançados por região e país.","Full Profile":"Perfil completo",Goal:"Meta","Hide Filters":"Ocultar filtros","Hide country posters":"Ocultar os cartazes do país",Intercessors:"Intercessores","Load More":"Carregar mais","Loading results...":"A carregar resultados...",Map:"Mapa","Mobilize 100+ people praying daily for each DOXA people group":"Mobilizar mais de 100 pessoas para orar diariamente por cada grupo étnico DOXA","No One Praying":"Ninguém orando","No options found":"Não foram encontradas opções","No poster has been generated for this country yet.":"Ainda não foi gerado nenhum cartaz para este país.","No unengaged people groups by 2033":"Nenhum grupo étnico não engajado até 2033","Not Adopted":"Não adotado",Other:"Outros","Page Not Found":"Página não encontrada","People Group":"Grupo étnico","People Groups":"Grupos étnicos","People committed to praying":"Pessoas comprometidas com a oração","Pick a region above, or click any dot to open that people group's country.":"Escolha uma região acima, ou clique em qualquer ponto para abrir o país desse povo.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Escolha uma região ou um país na aba Lista de regiões para restringir este painel.",Population:"População","Prayer Coverage":"Cobertura de oração","Prayer coverage progress":"Progresso da cobertura de oração","Region Dashboards":"Painéis das regiões","Region dashboard":"Painel da região",Regions:"Regiões","Regions List":"Lista de regiões",Religion:"Religião","Search names, country/continent, religions...":"Busque nomes, país/continente, religiões...","See %region% dashboard":"Ver o painel: %region%","See All":"Ver tudo",Select:"Selecionar","Select View":"Selecionar visualização","Show Filters":"Mostrar filtros","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Existem %count% grupos étnicos em %country%. Verifique no mapa também os grupos étnicos na fronteira deste país.",Total:"Total","Type to search...":"Digite para pesquisar...","Unengaged people groups":"Grupos étnicos não engajados","View country posters":"Ver os cartazes do país",Views:"Visualizações","WAGF Block":"Bloco WAGF","WAGF Region":"Região da WAGF","people groups adopted":"grupos étnicos adotados","people groups engaged":"grupos étnicos engajados","Outside this region":"Fora desta região",Pray:"Ore","Loading region dashboards…":"Carregando os painéis das regiões…","No regions found.":"Nenhuma região encontrada.","Region data could not be loaded. This is a connection problem, not a filter.":"Não foi possível carregar os dados das regiões. É um problema de conexão, não um filtro.","People groups could not be loaded. This is a connection problem, not a filter.":"Não foi possível carregar os povos. É um problema de conexão, não um filtro.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"O mapa não pôde iniciar. É um problema do token do mapa ou de conexão, não um filtro — os números acima não são afetados."},N_={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"},sections:{within:"Dentro de {selection}",allData:"Todos os dados DOXA"}},R_={title:"Estúdio de plugins",navLabel:"Plugins por capacidade",countLabel:"{bundles} pacotes · {elements} plugins listados aqui",changeLanguage:"Mudar idioma",copyEmbed:"Copiar código de incorporação",copy:"Copiar",copied:"Copiado",scriptEmbed:"Incorporação por script",loading:"Carregando {name}…",couldNotLoad:"Não foi possível carregar {name}.",chooseElement:"Escolha um plugin na lista.",filterPlaceholder:"Filtrar plugins",collapseAll:"Recolher tudo",noMatch:"Nenhum plugin corresponde a “{query}”.",openSection:"Abrir {cap}, {label}",part:"parte",noStandalone:"sem página própria",cap5:"Shell do aplicativo",cap4:"Composto",cap3:"Multivisualização",cap2:"Predefinição",cap1:"Único",toggleList:"Mostrar ou ocultar a lista",openViews:"Abrir a lista de visualizações",expandList:"Expandir a lista",collapseList:"Recolher a lista",collapse:"Recolher",partOf:"parte de {name}, não publicada separadamente"},M_={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",upg100Region:"Região",upg100Zone:"Listas UPG-100",upg100Group:"Grupo étnico",selectView:"Selecionar vista",views:"Vistas",prayerResources:"Recursos de oração",map:"Mapa"},F_={kicker:"DOXA · Visão",title:"Cada povo. Cada lugar.",tagline:"De todos os grupos étnicos do mundo àqueles pelos quais a DOXA ora, contados a partir dos dados.",funnelLabel:"De todos os grupos étnicos aos grupos étnicos da DOXA",allLabel:"Grupos étnicos",allNote:"cada grupo étnico, em cada país onde vive",unreachedLabel:"Não alcançados",unreachedNote:"menos de 2% evangélicos",frontierLabel:"Fronteira",frontierNote:"menos de 0,1% evangélicos",doxaLabel:"Grupos étnicos da DOXA",doxaNote:"{frontier} deles são de fronteira",people:"{n} pessoas",sources:"Grupos étnicos: {imb}, dados de {date}. Lista da DOXA: pray.doxa.life, {date2}.",howCounted:"Como são contados",ruleAll:"Cada linha dos dados de grupos étnicos do IMB: um grupo étnico em um país.",ruleUnreached:"Prioridade de perdição do IMB de 0 a 2: menos de 2% evangélicos.",ruleFrontier:"Prioridade de perdição do IMB 0: menos de 0,1% evangélicos. Um subconjunto dos não alcançados.",ruleDoxa:"Cada grupo da lista de oração da DOXA, associado aos dados do IMB por povo e país. Nem todos são de fronteira."},I_={title:"Toate grupurile etnice",locations:"{n} locații (grup × țară)",doxa:"Grupuri etnice DOXA",frontier:"Frontieră — nimic început",unreached:"Neatinse — lucrarea începe",reached:"Atinse — biserica este acolo",hint:"Faceți clic pe un rând pentru a le vedea pe toate · din nou pentru tot",loading:"Se încarcă toate grupurile etnice…",loadError:"Harta nu a putut fi încărcată.",pray:"Rugați-vă pentru ei →",population:"pop. {n}"},O_={backToLegend:"Înapoi la legendă",closeDetailView:"Închide vizualizarea detaliată",collapseLegend:"Restrânge legenda",expandLegend:"Extinde legenda",toggleLegend:"Afișează sau ascunde legenda"},D_={prayForThem:"Roagă-te pentru ei",adoptThem:"Adoptă-i",moreInfo:"Mai multe informații",zoomIn:"Mărește",zoomOut:"Micșorează",switchToLightMode:"Comută la modul luminos",switchToDarkMode:"Comută la modul întunecat",resetView:"Resetează vizualizarea",toggleFullscreen:"Comută ecran complet",aboutThisMap:"Despre această hartă",closeMenu:"Închide meniul",reloadMap:"Reîncarcă harta",showClusters:"Arată clusterele",clusterSettings:"Setări clustere",startAutoFly:"Pornește zborul automat",stopFlight:"Oprește zborul",speedLabel:"Viteză:",speedOption:{slow:"Lent",normal:"Normal",fast:"Rapid"},shareEmbed:"Partajează și încorporează",posterMap:"Harta afișului",prayerList:"Listă de rugăciune",cardDeck:"Pachet de cartonașe",printOptions:"Opțiuni de tipărire",showOnMap:"Arată pe hartă",close:"Închide",showOnMapAria:"Arată {label} pe hartă",cardStockAria:"Dimensiunea cardului de rugăciune",previewPrintPoster:"Previzualizează și tipărește posterul {label}",share:"Distribuie",shareSteps:["Încorporează această hartă pe site-ul tău","Fă o listă cu site-urile din orașul tău","Învață-i să o încorporeze și ei","Învață-i să îi formeze pe alții să o încorporeze","Să multiplicăm hărți pretutindeni pentru Isus!"],clearSelection:"Șterge selecția",noOptions:"Nicio opțiune găsită",renderingLocal:"O imagine de calitate pentru tipar este generată în browserul tău — nimic nu este încărcat.",postersPerRow:"Postere pe rând"},B_={title:"Acces la internet unde trăiesc popoarele fără implicare",bands:{yes:"conectat 60%+",partial:"parțial 25–59%",no:"scăzut, sub 25%",unknown:"nemăsurat"},peopleGroup:"popor",caveat:"Cifre NAȚIONALE (Banca Mondială). Conectivitatea pe oraș nu este disponibilă public — nu deduceți un oraș din datele țării.",sheet:{close:"Închide",ai:"Aceste date au fost găsite prin cercetare aprofundată cu IA — pot conține informații false.",dismiss:"Închide notificarea",internetUsers:"Utilizatori de internet",measured:"Măsurat",mobilePer100:"Mobile la 100",peopleGroups:"Popoare",topPlatform:"Platforma principală",unknown:"necunoscut",carriers:"Operatori și ISP-uri ({n})",socialPlatforms:"Platforme sociale",note:"Cifre naționale, nu măsurători pe oraș. Numele operatorilor sunt titulari de înregistrări ASN (printre ei se află și bănci și universități, nu doar ISP-uri), deci eticheta de operator este o euristică după nume, nu o clasificare verificată."}},G_={research_controls:"Comenzi de cercetare",clustering:"Grupare",filters:"Filtre",pin_dim:"Estompare puncte",export_poster:"Exportă posterul…",reload_data:"Reîncarcă datele",off:"Oprit",native:"Nativ",mst:"MST",network:"Rețea",off_desc:"Arată fiecare punct separat",native_desc:"Grupuri circulare Mapbox (cel mai rapid)",mst_desc:"Rețele de afinitate prin arbore minim de acoperire",network_desc:"Linii către cel mai apropiat vecin",search_languages:"Caută limbi…",search_religions:"Caută religii…",reset_all:"Resetează tot",no_languages:"Nicio limbă încărcată încă",no_religions:"Nicio religie încărcată încă",unadopted:"Neadoptat",min:"min",max:"max",adopted:"Adoptat",adoption:"Adopție",engaged:"Implicat",engagement:"Implicare",unengaged:"Necesită implicare",language:"Limbă",religion:"Religie",population:"Populație",any:"Oricare",active_count:"{n} active",prayer_status:"Stare de rugăciune",close:"Închide",clear:"Șterge",map_controls:"Comenzile hărții"},j_={bloc:"Bloc de afinitate",gospel_access:"Acces la Evanghelie",people:"Popoare",people_name:"Popor (nume)",praying:"Se roagă",religion_family:"Familie religioasă",search_language:"Caută limbă",search_people:"Caută popor",search_place:"Caută loc",search_religion:"Caută religie",upgs_in_scope:"UPG în domeniu",countries_touched:"țări atinse",unreached:"neatinși",sum_population:"Σ populație",sum_praying:"Σ se roagă",charts:"Grafice",table:"Tabel",cluster:"Grup",country:"Țară",engagement:"Implicare",language:"Limbă",language_family:"Familie de limbi",people_group:"Popor",population:"Populație",prayer:"Rugăciune",region:"Regiune",religion:"Religie",status:"Stare",adopted:"Adoptat",filters:"Filtre",gospel_resources:"Resurse ale Evangheliei",map:"Hartă",search_placeholder:"Caută popoare, locuri, limbi, religii…",any:"Oricare",active_count:"{n} active",prayer_status:"Stare de rugăciune",map_controls:"Comenzile hărții",close:"Închide",clear:"Șterge",dashboard_title:"Tablou de bord de cercetare general",align_dashboard:"Aliniază tabloul",align_dashboard_tip:"Readu aranjarea tabloului la alinierea implicită",selected:"Selectat",world:"Lume",vertical_legend:"Legendă verticală",groups_in_scope:"popoare în domeniu",filter_by:"Filtrează după",remove_filter:"Elimină filtrul",groups:"popoare",expand:"Extinde",collapse:"Restrânge",place:"Loc"},z_={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ă."}},U_={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Notele explicative de mai jos sunt în limba engleză."},mode:{gap:"Golul",coverage:"Resurse găsite"},search:{placeholder:"Caută un popor, o limbă sau un cod ISO",clear:"Șterge căutarea",none:"Nimic nu se potrivește cu acel nume, limbă sau cod.",placeholderShort:"Popor, limbă sau cod ISO"},legend:{title:"Popoare neatinse, fără nicio resursă a Evangheliei",band60:"60%+ fără nimic găsit",band30:"30–59%",bandSome:"unele popoare",bandAll:"toate popoarele au ceva",tier2:"Scripturi și film",tier1:"s-a găsit o resursă",tier0:"nimic găsit",hnr:"pot auzi, fără text",showAll:"Arată toate popoarele",titleCoverage:"Popoare neatinse cu o resursă a Evangheliei",cov80:"80%+ au ceva",cov50:"50–79%",cov1:"1–49%",cov0:"nimic pentru niciunul",tallyEach:"Fiecare",tallyIs:"este UN popor —",tallyOf:"dintre ele,",tallyLink:"cu un link",doxa0:"toate au ceva",doxa1:"1–4 fără nimic",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 atinse",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Popoare Doxa pe această hartă",notPlaced:"pe listă, încă nelocalizate",outOfScope:"niciun popor Doxa — necolorat"},tabs:{groups:"Cele mai mari popoare",countries:"După țară",regions:"După regiune",noprayer:"Nimeni nu se roagă",hnr:"Aud, fără text"},stat:{language:"Limba",population:"Populație",countries:"Țări",peopleGroups:"Popoare",noResource:"Nicio resursă găsită",peopleAffected:"Persoane afectate",haveScripture:"Au Scripturile",haveFilm:"Au filmul",haveAudio:"Au Scripturi audio",signLanguages:"Limbaje semne",growingUnreached:"În creștere și neatinse",deathsDay:"Decese estimate/zi"},sheet:{ownLanguage:"În limba lor",close:"Închide",loading:"Se încarcă resursele…",pray:"Roagă-te pentru",everyResource:"Toate resursele în",alsoSpeak:"Vorbesc și"},res:{scripture:"Scripturi",film:"Film",audio:"Audio",bibleVideo:"Video biblic",bibleStories:"Open Bible Stories",gospelAudio:"Audio cu Evanghelia",gospelPresentation:"Prezentarea Evangheliei",scriptureEarth:"Scripture Earth",training:"Instruire în ucenicie",jesusFilm:"Filmul ISUS"},state:{noneFound:"nimic găsit",noneAtFcbh:"nimic la FCBH",noneAtGrn:"nimic la GRN",notInZume:"nu este între cele 54 Zume",linkChecked:"link verificat",unchecked:"neverificat",linkDead:"link mort",wrongLanguage:"limbă greșită",varietyNotStated:"(varietate nespecificată)",inLanguage:"în"},guide:{dotVsCountry:"Fiecare punct este UN popor Doxa și limba lui; o țară este NUMĂRUL acelor popoare.",noneFoundShort:"„Nimic găsit” înseamnă absent din sursele verificate, niciodată dovada că nu există.",tapCountry:"Atinge o țară pentru a vedea resursele, popor cu popor."},tables:{title:"Resurse ale Evangheliei — Date",showing:"Se afișează",of:"din",for:"pentru",filteredTo:"Filtrat după",showAll:"Arată toate resursele",t_doxa:"Doxa — Acces la Evanghelie",t_links:"Fiecare resursă + link",t_nothing:"Unde nu s-a găsit nimic",t_countrygap:"Golul pe țări",t_translation:"Aud, fără text",t_translationcountry:"Unde să traducem",t_gaps:"Goluri și oportunități",t_bridges:"Punți urbane",t_deaf:"Golul surd",t_resources:"Resurse pe popoare",t_languages:"Limbi pe țări",t_growth:"Acces vs creștere"},pages:{listTitle:"Resurse ale Evangheliei pe limbi",chartsTitle:"Resurse ale Evangheliei — pe limbi",loadingTables:"Se încarcă tabelele…"},list:{noText:"Fără text biblic",hasScripture:"Are Scripturi",allLanguages:"Toate limbile",peopleGroup:"popor",peopleGroups:"popoare",scriptureHere:"Scripturi în această limbă"},columns:{"People group":"Popor",Country:"Țară",Region:"Regiune",Language:"Limbă",Population:"Populație",Religion:"Religie","Gospel access":"Acces la Evanghelie",Resources:"Resurse",Scripture:"Scripturi","Bible video":"Video biblic","Gospel presentation":"Prezentarea Evangheliei",Countries:"Țări","People groups":"Popoare"}},V_={search:"Caută popoare…",hide_filters:"Ascunde filtrele",show_filters:"Arată filtrele",total:"Total",showing:"Se afișează",load_more:"Încarcă mai mult",full_profile:"Profil complet",wagf_region:"Regiune",wagf_block:"Bloc de afinitate",rop1:"Popor",religion:"Religie",exact_filter:"Exact",clear_all:"Șterge tot",loading:"Se încarcă…",no_results:"Niciun popor nu corespunde acestui filtru.",type_to_search:"Scrie pentru a căuta...",load_failed:"Datele despre popoare nu au putut fi încărcate. Este o problemă de conexiune, nu a filtrului."},K_={title:{adoption:"Progresul adopției",affinityBlocs:"Blocuri de afinitate",doxaRegions:"Regiuni Doxa",engagement:"Progresul implicării",gospelResources:"Resurse ale Evangheliei",languageFamilies:"Familii de limbi",prayer:"Progresul rugăciunii",upg100List:"Lista mea UPG 100"},header:{collapsed:"Legendă",peopleGroupFallback:"Grup de popoare",default:"Legendă"},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",name:"Nume"},footer:{total:"Total"},sortByUpgs:"Sortează după UUPG",sortByPop:"Sortează după populație",colLabel:{religion:"Religii UUPG",prayer:"Starea rugăciunii",engagement:"Starea implicării",adoption:"Starea adopției",status:"Stare"},titleBar:{legend:"Legendă",peopleGroups:"Popoare",wagfRegions:"Regiuni WAGF",languages:"Limbi"},tabInfo:{upg100Region:"Regiune — sortează listele UPG-100 după zona lumii (Africa, India, Orientul Mijlociu, Surzi, …). Totalurile sunt UUPG-urile și populația însumate din fiecare listă de dedesubt.",upg100Zone:"Liste UPG-100 — fiecare este o listă de rugăciune a grupurilor etnice neatinse dintr-o zonă și este ceea ce harta desenează și colorează. Fiecare listă se tipărește ca propriul pachet.",upg100Group:"Grup etnic — grupurile neatinse dintr-o listă, mai întâi cele cu cea mai mare nevoie de rugăciune. Fiecare punct de pe hartă este unul dintre ele."},a11y:{expandRow:"Extinde {label}",collapseRow:"Restrânge {label}",clearSelection:"Șterge selecția"}},H_={menuComingSoon:"Meniu în curând",pinHint:{tapDot:"Atinge un punct colorat — cineva are încă nevoie de rugăciune"},upg100WallHeading:"Lista mea UPG 100 — Liste de rugăciune și afișe",upg100WallTag:"Mobilizare pentru rugăciune",upg100WallIntro:"Împarte sarcina rugăciunii în grupuri de câte cincizeci și o sută — așa cum Isus a hrănit cei 5.000 (Luca 9:14). Fiecare afiș este o listă de 100 pe care o poți ruga, tipări și pune pe perete — rugându-te pentru ei pe numele poporului lor."},q_={clusterByRegion:"După regiune Doxa",clusterByLanguageFamily:"După familia de limbi",clusterByGospelResource:"După resursa Evangheliei"},W_={country:{wagfRegion:"Regiunea WAGF",wagfBlock:"Blocul WAGF",country:"Țară",uupgCount:"Număr de UUPG"}},Y_={header:"TURUL DE RUGĂCIUNE CURENT",lap:"Tur",upgs:"UUPGs",separator:" din "},X_={"%count% people groups in %countries% countries":"%count% popoare în %countries% țări","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% are %count% popoare în %countries% țări. Culoarea fiecărui punct arată câți oameni se roagă pentru acel popor.","1+ People Praying":"1+ persoane se roagă","100+ People Praying":"100+ persoane se roagă",Adopted:"Adoptat","Adoption Progress":"Progresul adopției","All Regions":"Toate regiunile","Alternate Names":"Denumiri alternative","Choose a region":"Alege o regiune","Clear All":"Șterge tot",Countries:"Țări","Countries in this region":"Țările din această regiune",Country:"Țară",Engaged:"Implicat","Engagement Progress":"Progresul implicării","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Fiecare popor neimplicat adoptat de o biserică dedicată rugăciunii, dăruirii și trimiterii","Exact Search":"Căutare exactă","Find unreached people groups by region and country.":"Găsește popoarele neatinse după regiune și țară.","Full Profile":"Profil complet",Goal:"Obiectiv","Hide Filters":"Ascunde filtrele","Hide country posters":"Ascunde posterele țării",Intercessors:"Mijlocitori","Load More":"Încarcă mai multe","Loading results...":"Se încarcă rezultatele…",Map:"Hartă","Mobilize 100+ people praying daily for each DOXA people group":"Mobilizarea a peste 100 de persoane care se roagă zilnic pentru fiecare popor DOXA","No One Praying":"Nimeni nu se roagă","No options found":"Nu s-a găsit nicio opțiune","No poster has been generated for this country yet.":"Pentru această țară nu a fost generat încă niciun poster.","No unengaged people groups by 2033":"Niciun popor neimplicat până în 2033","Not Adopted":"Neadoptat",Other:"Altele","Page Not Found":"Pagina nu a fost găsită","People Group":"Popor","People Groups":"Popoare","People committed to praying":"Persoane dedicate rugăciunii","Pick a region above, or click any dot to open that people group's country.":"Alege o regiune mai sus sau dă clic pe orice punct pentru a deschide țara acelui grup etnic.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Alege o regiune sau o țară din fila Lista regiunilor pentru a restrânge acest panou.",Population:"Populație","Prayer Coverage":"Acoperirea prin rugăciune","Prayer coverage progress":"Progresul acoperirii prin rugăciune","Region Dashboards":"Panouri ale regiunilor","Region dashboard":"Panoul regiunii",Regions:"Regiuni","Regions List":"Lista regiunilor",Religion:"Religie","Search names, country/continent, religions...":"Caută nume, țară/continent, religii…","See %region% dashboard":"Vezi panoul %region%","See All":"Vezi tot",Select:"Selectează","Select View":"Selectează vizualizarea","Show Filters":"Arată filtrele","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"În %country% există %count% popoare. Verifică pe hartă și popoarele de la granițele acestei țări.",Total:"Total","Type to search...":"Scrie pentru a căuta…","Unengaged people groups":"Popoare neimplicate","View country posters":"Vezi posterele țării",Views:"Vizualizări","WAGF Block":"Bloc WAGF","WAGF Region":"Regiune WAGF","people groups adopted":"popoare adoptate","people groups engaged":"popoare implicate","Outside this region":"În afara acestei regiuni",Pray:"Roagă-te","Loading region dashboards…":"Se încarcă panourile regiunilor…","No regions found.":"Nu au fost găsite regiuni.","Region data could not be loaded. This is a connection problem, not a filter.":"Datele regiunilor nu au putut fi încărcate. Este o problemă de conexiune, nu un filtru.","People groups could not be loaded. This is a connection problem, not a filter.":"Grupurile de popoare nu au putut fi încărcate. Este o problemă de conexiune, nu un filtru.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"Harta nu a putut porni. Este o problemă de token al hărții sau de conexiune, nu un filtru — cifrele de mai sus nu sunt afectate."},Z_={placeholder:"Popor, loc, limbă, religie",labels:{people:"Popor:",place:"Loc:",language:"Limbă:",religion:"Religie:"},sections:{within:"În {selection}",allData:"Toate datele DOXA"},kinds:{people:"Popor + țară",peopleGroup:"Popor",bloc:"Bloc de afinitate",cluster:"Grup de popoare",country:"Țară",region:"Regiune",family:"Familie de limbi",languageKind:"Limbă",dialect:"Dialect",religionKind:"Religie"}},J_={title:"Studio de pluginuri",navLabel:"Pluginuri după capacitate",countLabel:"{bundles} pachete · {elements} pluginuri listate aici",changeLanguage:"Schimbă limba",copyEmbed:"Copiază codul de încorporare",copy:"Copiază",copied:"Copiat",scriptEmbed:"Încorporare prin script",loading:"Se încarcă {name}…",couldNotLoad:"{name} nu a putut fi încărcat.",chooseElement:"Alegeți un plugin din listă.",filterPlaceholder:"Filtrează pluginurile",collapseAll:"Restrânge tot",noMatch:"Niciun plugin nu corespunde cu „{query}”.",openSection:"Deschide {cap}, {label}",part:"parte",noStandalone:"fără pagină proprie",cap5:"Cadru de aplicație",cap4:"Compus",cap3:"Vizualizări multiple",cap2:"Presetat",cap1:"Simplu",toggleList:"Afișează sau ascunde lista",openViews:"Deschide lista de vizualizări",expandList:"Extinde lista",collapseList:"Restrânge lista",collapse:"Restrânge",partOf:"parte din {name}, nepublicată separat"},Q_={prayer:"Rugăciune",adoption:"Adopție",engagement:"Implicare","affinity-blocks":"Popoare",regions:"Regiuni",countries:"Țări","language-families":"Limbi",religion:"Religii",family:"Familie de limbi",language:"Limbă",dialect:"Dialect/Variantă",bloc:"Bloc de afinitate",cluster:"Grup",group:"Popor",pgic:"Popor în țară",region:"Regiune WAGF",block:"Bloc WAGF",country:"Țară",upg100Region:"Regiune",upg100Zone:"Liste UPG-100",upg100Group:"Grup etnic",selectView:"Alege vizualizarea",views:"Vizualizări",prayerResources:"Resurse de rugăciune",map:"Hartă"},e0={kicker:"DOXA · Viziune",title:"Fiecare popor. Fiecare loc.",tagline:"De la toate grupurile etnice ale lumii la cele pentru care se roagă DOXA, numărate din date.",funnelLabel:"De la toate grupurile etnice la grupurile etnice DOXA",allLabel:"Grupuri etnice",allNote:"fiecare grup etnic, în fiecare țară în care trăiește",unreachedLabel:"Neatinse",unreachedNote:"sub 2% evanghelici",frontierLabel:"Frontieră",frontierNote:"sub 0,1% evanghelici",doxaLabel:"Grupuri etnice DOXA",doxaNote:"{frontier} dintre ele sunt de frontieră",people:"{n} oameni",sources:"Grupuri etnice: {imb}, date din {date}. Lista DOXA: pray.doxa.life, {date2}.",howCounted:"Cum sunt numărate",ruleAll:"Fiecare rând din datele IMB despre grupuri etnice: un grup etnic într-o țară.",ruleUnreached:"Prioritatea de pierzare IMB 0–2: sub 2% evanghelici.",ruleFrontier:"Prioritatea de pierzare IMB 0: sub 0,1% evanghelici. O submulțime a celor neatinse.",ruleDoxa:"Fiecare grup de pe lista de rugăciune DOXA, potrivit cu datele IMB după popor și țară. Nu toate sunt de frontieră."},t0={title:"Все народы",locations:"{n} мест (народ × страна)",doxa:"Народы DOXA",frontier:"Рубежные — ничего не начато",unreached:"Недостигнутые — работа начинается",reached:"Достигнутые — церковь есть",hint:"Нажмите на строку, чтобы увидеть все · ещё раз — чтобы показать всё",loading:"Загрузка всех народов…",loadError:"Не удалось загрузить карту.",pray:"Молиться за них →",population:"нас. {n}"},o0={backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид",collapseLegend:"Свернуть легенду",expandLegend:"Развернуть легенду",toggleLegend:"Показать или скрыть легенду"},n0={prayForThem:"Молитесь о них",adoptThem:"Усыновите их",moreInfo:"Подробнее",zoomIn:"Приблизить",zoomOut:"Отдалить",switchToLightMode:"Переключить на светлый режим",switchToDarkMode:"Переключить на тёмный режим",resetView:"Сбросить вид",toggleFullscreen:"Полноэкранный режим",aboutThisMap:"Об этой карте",closeMenu:"Закрыть меню",reloadMap:"Перезагрузить карту",showClusters:"Показать кластеры",clusterSettings:"Настройки кластеров",startAutoFly:"Начать авто-полёт",stopFlight:"Остановить полёт",speedLabel:"Скорость:",speedOption:{slow:"Медленно",normal:"Нормально",fast:"Быстро"},shareEmbed:"Поделиться и встроить",posterMap:"Карта плаката",prayerList:"Молитвенный список",cardDeck:"Набор карточек",printOptions:"Параметры печати",showOnMap:"Показать на карте",close:"Закрыть",showOnMapAria:"Показать {label} на карте",cardStockAria:"Размер молитвенной карточки",previewPrintPoster:"Просмотр и печать плаката {label}",share:"Поделиться",shareSteps:["Разместите эту карту на своём сайте","Составьте список сайтов вашего города","Научите их тоже размещать её","Научите их учить других размещать её","Умножим карты повсюду для Иисуса!"],clearSelection:"Снять выделение",noOptions:"Ничего не найдено",renderingLocal:"Изображение типографского качества создаётся в вашем браузере — ничего не загружается на сервер.",postersPerRow:"Плакатов в ряду"},a0={title:"Доступ к интернету там, где живут народы без вовлечённости",bands:{yes:"подключено 60%+",partial:"частично 25–59%",no:"низкий, менее 25%",unknown:"не измерено"},peopleGroup:"народ",caveat:"НАЦИОНАЛЬНЫЕ данные (Всемирный банк). Данных о подключении по городам в открытом доступе нет — не судите о городе по стране.",sheet:{close:"Закрыть",ai:"Эти данные найдены с помощью углублённого поиска ИИ и могут содержать ошибки.",dismiss:"Скрыть",internetUsers:"Пользователи интернета",measured:"Год измерения",mobilePer100:"Мобильных на 100",peopleGroups:"Народы",topPlatform:"Главная платформа",unknown:"неизвестно",carriers:"Операторы и провайдеры ({n})",socialPlatforms:"Социальные платформы",note:"Национальные данные, а не измерения по городам. Названия операторов — это владельцы записей в реестре ASN; среди них есть банки и университеты, а не только провайдеры, поэтому пометка «оператор» — эвристика по названию, а не проверенная классификация."}},s0={research_controls:"Инструменты исследования",clustering:"Кластеризация",filters:"Фильтры",pin_dim:"Прозрачность точек",export_poster:"Экспорт постера…",reload_data:"Обновить данные",off:"Выкл.",native:"Встроенная",mst:"MST",network:"Сеть",off_desc:"Показывать каждую точку отдельно",native_desc:"Круговые кластеры Mapbox (быстрее всего)",mst_desc:"Сети родства по минимальному остовному дереву",network_desc:"Линии до ближайшего соседа",search_languages:"Поиск языков…",search_religions:"Поиск религий…",reset_all:"Сбросить всё",no_languages:"Языки ещё не загружены",no_religions:"Религии ещё не загружены",unadopted:"Не усыновлён",min:"мин",max:"макс",adopted:"Ответственность взята",adoption:"Усыновление",engaged:"Вовлечён",engagement:"Вовлечённость",unengaged:"Нуждается в вовлечённости",language:"Язык",religion:"Религия",population:"Население",any:"Любой",active_count:"{n} активно",prayer_status:"Статус молитвы",close:"Закрыть",clear:"Очистить",map_controls:"Элементы управления картой"},r0={bloc:"Блок родства",gospel_access:"Доступ к Евангелию",people:"Народы",people_name:"Народ (название)",praying:"Молятся",religion_family:"Семья религий",search_language:"Поиск языка",search_people:"Поиск народа",search_place:"Поиск места",search_religion:"Поиск религии",upgs_in_scope:"UPG в выборке",countries_touched:"затронутых стран",unreached:"неохваченные",sum_population:"Σ население",sum_praying:"Σ молящихся",charts:"Графики",table:"Таблица",cluster:"Кластер",country:"Страна",engagement:"Вовлечённость",language:"Язык",language_family:"Языковая семья",people_group:"Народ",population:"Население",prayer:"Молитва",region:"Регион",religion:"Религия",status:"Статус",adopted:"Ответственность взята",filters:"Фильтры",gospel_resources:"Евангельские ресурсы",map:"Карта",search_placeholder:"Поиск народов, мест, языков, религий…",any:"Любой",active_count:"{n} активно",prayer_status:"Статус молитвы",map_controls:"Элементы управления картой",close:"Закрыть",clear:"Очистить",dashboard_title:"Обзорная исследовательская панель",align_dashboard:"Выровнять панель",align_dashboard_tip:"Вернуть расположение панели к виду по умолчанию",selected:"Выбрано",world:"Мир",vertical_legend:"Вертикальная легенда",groups_in_scope:"народов в выборке",filter_by:"Фильтровать по",remove_filter:"Убрать фильтр",groups:"народов",expand:"Развернуть",collapse:"Свернуть",place:"Место"},i0={labels:{country:"Страна:",population:"Население:",language:"Язык:",religion:"Религия:",languageFamily:"Языковая семья:",peopleCommitted:"Обязались молиться:"},messages:{noDescription:"Описание недоступно."}},l0={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Пояснительные примечания ниже — на английском языке."},mode:{gap:"Пробел",coverage:"Найденные ресурсы"},search:{placeholder:"Найдите народ, язык или код ISO",clear:"Очистить поиск",none:"Ничего не найдено по этому названию, языку или коду.",placeholderShort:"Народ, язык или код ISO"},legend:{title:"Недостигнутые народы, для которых не найдено ни одного ресурса",band60:"60%+ без единого ресурса",band30:"30–59%",bandSome:"часть народов",bandAll:"у всех народов что-то есть",tier2:"Писание и фильм",tier1:"что-то найдено",tier0:"ничего не найдено",hnr:"могут услышать, текста нет",showAll:"Показать все народы",titleCoverage:"Недостигнутые народы, для которых найдены ресурсы",cov80:"у 80%+ что-то есть",cov50:"50–79%",cov1:"1–49%",cov0:"ни для кого ничего",tallyEach:"Каждая",tallyIs:"— это ОДИН народ,",tallyOf:"из них",tallyLink:"со ссылкой",doxa0:"у всех что-то есть",doxa1:"1–4 без ресурсов",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 достигнуты",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Народы Doxa на этой карте",notPlaced:"в списке, пока без координат",outOfScope:"нет народов Doxa — не окрашено"},tabs:{groups:"Крупнейшие народы",countries:"По странам",regions:"По регионам",noprayer:"Никто не молится",hnr:"Слышат, но не читают"},stat:{language:"Язык",population:"Численность",countries:"Страны",peopleGroups:"Народы",noResource:"Ресурсов не найдено",peopleAffected:"Затронутые люди",haveScripture:"Есть Писание",haveFilm:"Есть фильм",haveAudio:"Есть аудио-Писание",signLanguages:"Жестовые языки",growingUnreached:"Растущие и недостигнутые",deathsDay:"Оценка смертей в день"},sheet:{ownLanguage:"На их родном языке",close:"Закрыть",loading:"Загрузка ресурсов…",pray:"Молитесь о",everyResource:"Все ресурсы на",alsoSpeak:"Также говорят на"},res:{scripture:"Писание",film:"Фильм",audio:"Аудио",bibleVideo:"Библейское видео",bibleStories:"Open Bible Stories",gospelAudio:"Аудио с Евангелием",gospelPresentation:"Изложение Евангелия",scriptureEarth:"Scripture Earth",training:"Обучение ученичеству",jesusFilm:"Фильм «Иисус»"},state:{noneFound:"ничего не найдено",noneAtFcbh:"нет в FCBH",noneAtGrn:"нет в GRN",notInZume:"нет среди 54 языков Zume",linkChecked:"ссылка проверена",unchecked:"не проверено",linkDead:"ссылка не работает",wrongLanguage:"не тот язык",varietyNotStated:"(вариант не указан)",inLanguage:"на"},guide:{dotVsCountry:"Точка — это ОДИН народ Doxa и его родной язык; цвет страны — это ЧИСЛО таких народов.",noneFoundShort:"«Ничего не найдено» значит: нет в проверенных источниках — но не доказательство отсутствия.",tapCountry:"Нажмите на страну, чтобы увидеть ресурсы по каждому народу."},tables:{title:"Ресурсы Евангелия — данные",showing:"Показано",of:"из",for:"для",filteredTo:"Фильтр:",showAll:"Показать все ресурсы",t_doxa:"Doxa — доступ к Евангелию",t_links:"Каждый ресурс и ссылка",t_nothing:"Где ничего не найдено",t_countrygap:"Пробел по странам",t_translation:"Слышат, но не читают",t_translationcountry:"Где переводить",t_gaps:"Пробелы и возможности",t_bridges:"Городские мосты",t_deaf:"Пробел у глухих",t_resources:"Ресурсы по народам",t_languages:"Языки по странам",t_growth:"Доступ и рост населения"},pages:{listTitle:"Ресурсы Евангелия по языкам",chartsTitle:"Ресурсы Евангелия — по языкам",loadingTables:"Загрузка таблиц ресурсов…"},list:{noText:"Нет текста Писания",hasScripture:"Есть Писание",allLanguages:"Все языки",peopleGroup:"народ",peopleGroups:"народов",scriptureHere:"Писание на этом языке"},columns:{"People group":"Народ",Country:"Страна",Region:"Регион",Language:"Язык",Population:"Численность",Religion:"Религия","Gospel access":"Доступ к Евангелию",Resources:"Ресурсы",Scripture:"Писание","Bible video":"Библейское видео","Gospel presentation":"Изложение Евангелия",Countries:"Страны","People groups":"Народы"}},c0={search:"Поиск народов…",hide_filters:"Скрыть фильтры",show_filters:"Показать фильтры",total:"Всего",showing:"Показано",load_more:"Показать ещё",full_profile:"Полный профиль",wagf_region:"Регион",wagf_block:"Блок родства",rop1:"Народ",religion:"Религия",exact_filter:"Точное совпадение",clear_all:"Очистить всё",loading:"Загрузка…",no_results:"Нет народов, соответствующих этому фильтру.",type_to_search:"Введите для поиска...",load_failed:"Не удалось загрузить данные о народах. Это проблема соединения, а не фильтра."},u0={title:{adoption:"Прогресс усыновления",affinityBlocs:"Блоки родства",doxaRegions:"Регионы Doxa",engagement:"Прогресс вовлечённости",gospelResources:"Евангельские ресурсы",languageFamilies:"Языковые семьи",prayer:"Прогресс молитвы",upg100List:"Мой список UPG 100"},header:{collapsed:"Условные обозначения",peopleGroupFallback:"Народная группа",default:"Легенда"},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:"Языки"},tabInfo:{upg100Region:"Регион — сортирует списки UPG-100 по частям света (Африка, Индия, Ближний Восток, Глухие, …). Числа — это UUPG и население, просуммированные по всем спискам внутри.",upg100Zone:"Списки UPG-100 — каждый представляет собой молитвенный список непросвещённых народов области и именно он отображается и раскрашивается на карте. Каждый список печатается отдельным буклетом.",upg100Group:"Народ — отдельные непросвещённые народы внутри списка, сначала с наибольшей нуждой в молитве. Каждая точка на карте — один из них."},a11y:{expandRow:"Развернуть {label}",collapseRow:"Свернуть {label}",clearSelection:"Снять выделение"}},p0={menuComingSoon:"Меню скоро появится",pinHint:{tapDot:"Нажмите на цветную точку — кому-то всё ещё нужна молитва"},upg100WallHeading:"Мой список UPG 100 — молитвенные списки и плакаты",upg100WallTag:"Молитвенная мобилизация",upg100WallIntro:"Разделите молитвенный труд на группы по пятьдесят и по сто — так Иисус накормил 5000 (Луки 9:14). Каждый плакат — это список из 100, о котором можно молиться, распечатать и повесить на стену, молясь о них по имени их народа."},d0={clusterByRegion:"По региону Doxa",clusterByLanguageFamily:"По языковой семье",clusterByGospelResource:"По евангельскому ресурсу"},g0={country:{wagfRegion:"Регион WAGF",wagfBlock:"Блок WAGF",country:"Страна",uupgCount:"Число UUPG"}},f0={header:"ТЕКУЩИЙ КРУГ МОЛИТВЫ",lap:"Круг",upgs:"UUPGs",separator:" из "},h0={"%count% people groups in %countries% countries":"%count% народов в %countries% странах","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"В регионе %region% — %count% групп людей в %countries% странах. Цвет каждой точки показывает, сколько человек молится за эту группу людей.","1+ People Praying":"1+ человек молится","100+ People Praying":"100+ человек молятся",Adopted:"Ответственность взята","Adoption Progress":"Прогресс принятия ответственности","All Regions":"Все регионы","Alternate Names":"Альтернативные названия","Choose a region":"Выберите регион","Clear All":"Очистить всё",Countries:"Страны","Countries in this region":"Страны этого региона",Country:"Страна",Engaged:"Вовлечён","Engagement Progress":"Прогресс вовлечения","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Каждая незадействованная народность принята церковью, приверженной молитве, пожертвованиям и посылке миссионеров","Exact Search":"Точный поиск","Find unreached people groups by region and country.":"Найдите недостигнутые группы людей по регионам и странам.","Full Profile":"Полный профиль",Goal:"Цель","Hide Filters":"Скрыть фильтры","Hide country posters":"Скрыть плакаты страны",Intercessors:"Ходатаи","Load More":"Загрузить ещё","Loading results...":"Загрузка результатов...",Map:"Карта","Mobilize 100+ people praying daily for each DOXA people group":"Мобилизуйте 100+ человек для ежедневной молитвы за каждую народность DOXA","No One Praying":"Никто не молится","No options found":"Вариантов не найдено","No poster has been generated for this country yet.":"Для этой страны плакат ещё не создан.","No unengaged people groups by 2033":"К 2033 году не останется незадействованных народов","Not Adopted":"Не принято",Other:"Другое","Page Not Found":"Страница не найдена","People Group":"Группа людей","People Groups":"Народы","People committed to praying":"Люди, посвятившие себя молитве","Pick a region above, or click any dot to open that people group's country.":"Выберите регион выше или нажмите на любую точку, чтобы открыть страну этой группы народа.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Выберите регион или страну на вкладке «Список регионов», чтобы сузить эту панель.",Population:"Население","Prayer Coverage":"Молитвенный охват","Prayer coverage progress":"Прогресс молитвенного покрытия","Region Dashboards":"Панели регионов","Region dashboard":"Панель региона",Regions:"Регионы","Regions List":"Список регионов",Religion:"Религия","Search names, country/continent, religions...":"Поиск по названиям, странам/континентам, религиям...","See %region% dashboard":"Открыть панель: %region%","See All":"Смотреть все",Select:"Выбрать","Select View":"Выберите вид","Show Filters":"Показать фильтры","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Страна %country% насчитывает %count% групп людей. Проверьте также на карте группы людей, расположенные вдоль границ этой страны.",Total:"Итого","Type to search...":"Введите текст для поиска...","Unengaged people groups":"Невовлечённые народы","View country posters":"Показать плакаты страны",Views:"Виды","WAGF Block":"Блок WAGF","WAGF Region":"Регион WAGF","people groups adopted":"народов, за которые взята ответственность","people groups engaged":"вовлечённые народы","Outside this region":"За пределами этого региона",Pray:"Молиться","Loading region dashboards…":"Загрузка панелей по регионам…","No regions found.":"Регионы не найдены.","Region data could not be loaded. This is a connection problem, not a filter.":"Не удалось загрузить данные по регионам. Это проблема соединения, а не фильтра.","People groups could not be loaded. This is a connection problem, not a filter.":"Не удалось загрузить народы. Это проблема соединения, а не фильтра.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"Карта не запустилась. Это проблема токена карты или соединения, а не фильтра — цифры выше не затронуты."},m0={placeholder:"Народ, место, язык, религия",labels:{people:"Народ:",place:"Место:",language:"Язык:",religion:"Религия:"},kinds:{people:"Народ + страна",peopleGroup:"Народ",bloc:"Блок родства",cluster:"Кластер народов",country:"Страна",region:"Регион",family:"Языковая семья",languageKind:"Язык",dialect:"Диалект",religionKind:"Религия"},sections:{within:"В пределах {selection}",allData:"Все данные DOXA"}},b0={title:"Студия плагинов",navLabel:"Плагины по возможностям",countLabel:"Здесь: пакетов {bundles} · плагинов {elements}",changeLanguage:"Сменить язык",copyEmbed:"Скопировать код встраивания",copy:"Копировать",copied:"Скопировано",scriptEmbed:"Встраивание через скрипт",loading:"Загрузка {name}…",couldNotLoad:"Не удалось загрузить {name}.",chooseElement:"Выберите плагин из списка.",filterPlaceholder:"Фильтр плагинов",collapseAll:"Свернуть всё",noMatch:"Нет плагинов, соответствующих «{query}».",openSection:"Открыть {cap}, {label}",part:"часть",noStandalone:"нет отдельной страницы",cap5:"Оболочка приложения",cap4:"Составной",cap3:"Несколько видов",cap2:"Предустановка",cap1:"Одиночный",toggleList:"Показать или скрыть список",openViews:"Открыть список представлений",expandList:"Развернуть список",collapseList:"Свернуть список",collapse:"Свернуть",partOf:"часть {name}, не публикуется отдельно"},$0={prayer:"Молитва",adoption:"Усыновление",engagement:"Вовлечённость","affinity-blocks":"Народы",regions:"Регионы",countries:"Страны","language-families":"Языки",religion:"Религии",family:"Языковая семья",language:"Язык",dialect:"Диалект/вариант",bloc:"Блок родства",cluster:"Кластер",group:"Народ",pgic:"Народ в стране",region:"Регион WAGF",block:"Блок WAGF",country:"Страна",upg100Region:"Регион",upg100Zone:"Списки UPG-100",upg100Group:"Народ",selectView:"Выбрать вид",views:"Виды",prayerResources:"Молитвенные ресурсы",map:"Карта"},y0={kicker:"DOXA · Видение",title:"Каждый народ. Каждое место.",tagline:"От всех народов мира до тех, за кого молится DOXA, — по данным.",funnelLabel:"От всех народов до народов DOXA",allLabel:"Народы",allNote:"каждый народ в каждой стране, где он живёт",unreachedLabel:"Недостигнутые",unreachedNote:"менее 2% евангельских христиан",frontierLabel:"Рубежные",frontierNote:"менее 0,1% евангельских христиан",doxaLabel:"Народы DOXA",doxaNote:"из них рубежных: {frontier}",people:"{n} человек",sources:"Народы: {imb}, данные на {date}. Список DOXA: pray.doxa.life, {date2}.",howCounted:"Как это посчитано",ruleAll:"Каждая строка данных IMB о народах: один народ в одной стране.",ruleUnreached:"Приоритет IMB 0–2: менее 2% евангельских христиан.",ruleFrontier:"Приоритет IMB 0: менее 0,1% евангельских христиан. Часть недостигнутых.",ruleDoxa:"Каждая группа из молитвенного списка DOXA, сопоставленная с данными IMB по народу и стране. Не все из них рубежные."},_0={title:"所有族群",locations:"{n} 个族群–国家位置",doxa:"DOXA 族群",frontier:"前沿族群 — 尚未开始",unreached:"未得之民 — 事工起步",reached:"已得之民 — 教会已在",hint:"点击一行查看全部 · 再次点击显示所有",loading:"正在加载所有族群…",loadError:"无法加载地图。",pray:"为他们祷告 →",population:"人口 {n}"},v0={backToLegend:"返回图例",closeDetailView:"关闭详情视图",collapseLegend:"收起图例",expandLegend:"展开图例",toggleLegend:"显示或隐藏图例"},w0={prayForThem:"为他们祷告",adoptThem:"认领他们",moreInfo:"更多信息",zoomIn:"放大",zoomOut:"缩小",switchToLightMode:"切换至浅色模式",switchToDarkMode:"切换至深色模式",resetView:"重置视图",toggleFullscreen:"切换全屏",aboutThisMap:"关于此地图",closeMenu:"关闭菜单",reloadMap:"重新加载地图",showClusters:"显示聚类",clusterSettings:"聚类设置",startAutoFly:"开始自动飞行",stopFlight:"停止飞行",speedLabel:"速度:",speedOption:{slow:"慢",normal:"正常",fast:"快"},shareEmbed:"分享与嵌入",posterMap:"海报地图",prayerList:"禱告名單",cardDeck:"禱告卡組",printOptions:"列印選項",showOnMap:"在地圖上顯示",close:"關閉",showOnMapAria:"在地圖上顯示 {label}",cardStockAria:"祷告卡片尺寸",previewPrintPoster:"预览并打印 {label} 海报",share:"分享",shareSteps:["把這張地圖嵌入你的網站","列出你城市裡的網站","教他們也嵌入這張地圖","教他們去教別人嵌入","為耶穌讓地圖遍地繁增!"],clearSelection:"清除选择",noOptions:"未找到选项",renderingLocal:"正在您的浏览器中生成可打印质量的图片——不会上传任何内容。",postersPerRow:"每行海报数"},k0={title:"未参与族群所在地的互联网接入",bands:{yes:"已联网 60%+",partial:"部分 25–59%",no:"低,低于 25%",unknown:"未测量"},peopleGroup:"族群",caveat:"全国数据(世界银行)。各城市的联网数据未公开——请勿用国家数据推断某个城市。",sheet:{close:"关闭",ai:"这些数据来自人工智能深度检索,可能包含错误信息。",dismiss:"忽略",internetUsers:"互联网用户",measured:"测量年份",mobilePer100:"每百人移动电话",peopleGroups:"族群",topPlatform:"主要平台",unknown:"未知",carriers:"运营商和互联网服务商({n})",socialPlatforms:"社交平台",note:"这是全国数据,不是城市测量值。运营商名称来自 ASN 注册持有者——其中除互联网服务商外还包括银行和大学,因此“运营商”标记是基于名称的推断,并非经过核实的分类。"}},x0={research_controls:"研究控件",clustering:"聚类",filters:"筛选",pin_dim:"圆点淡化",export_poster:"导出海报…",reload_data:"重新加载数据",off:"关闭",native:"原生",mst:"MST",network:"网络",off_desc:"逐个显示每个圆点",native_desc:"Mapbox 圆形聚类(最快)",mst_desc:"最小生成树亲缘网络",network_desc:"最近邻连接线",search_languages:"搜索语言…",search_religions:"搜索宗教…",reset_all:"全部重置",no_languages:"尚未加载语言",no_religions:"尚未加载宗教",unadopted:"未认领",min:"最小",max:"最大",adopted:"已认领",adoption:"认领",engaged:"已参与",engagement:"参与",unengaged:"需要参与",language:"语言",religion:"宗教",population:"人口",any:"全部",active_count:"{n} 项启用",prayer_status:"代祷状态",close:"关闭",clear:"清除",map_controls:"地图控件"},L0={bloc:"亲缘板块",gospel_access:"福音可及性",people:"民族",people_name:"民族(名称)",praying:"正在代祷",religion_family:"宗教族系",search_language:"搜索语言",search_people:"搜索民族",search_place:"搜索地点",search_religion:"搜索宗教",upgs_in_scope:"范围内的 UPG",countries_touched:"涉及国家",unreached:"未得之民",sum_population:"Σ 人口",sum_praying:"Σ 代祷",charts:"图表",table:"表格",cluster:"民族群",country:"國家",engagement:"参与",language:"语言",language_family:"语系",people_group:"民族",population:"人口",prayer:"祷告",region:"区域",religion:"宗教",status:"状态",adopted:"已认领",filters:"筛选",gospel_resources:"福音资源",map:"地图",search_placeholder:"搜索民族、地点、语言、宗教…",any:"全部",active_count:"{n} 项启用",prayer_status:"代祷状态",map_controls:"地图控件",close:"关闭",clear:"清除",dashboard_title:"全局研究仪表板",align_dashboard:"对齐仪表板",align_dashboard_tip:"将仪表板布局恢复为默认对齐",selected:"已选择",world:"世界",vertical_legend:"垂直图例",groups_in_scope:"个民族在范围内",filter_by:"筛选",remove_filter:"移除筛选",groups:"个民族",expand:"展开",collapse:"收起",place:"地点"},A0={labels:{country:"国家:",population:"人口:",language:"语言:",religion:"宗教:",languageFamily:"语系:",peopleCommitted:"承诺祷告人数:"},messages:{noDescription:"暂无描述。"}},S0={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"以下说明性文字为英文。"},mode:{gap:"缺口",coverage:"已找到的资源"},search:{placeholder:"搜索族群、语言或 ISO 代码",clear:"清除搜索",none:"没有符合该名称、语言或代码的结果。",placeholderShort:"族群、语言或 ISO 代码"},legend:{title:"尚未接触且未找到任何福音资源的族群",band60:"60% 以上一无所有",band30:"30–59%",bandSome:"部分族群",bandAll:"所有族群都有一些",tier2:"圣经与影片",tier1:"找到部分资源",tier0:"一无所获",hnr:"能听,但没有文字",showAll:"显示所有族群",titleCoverage:"尚未接触但已找到部分福音资源的族群",cov80:"80% 以上有资源",cov50:"50–79%",cov1:"1–49%",cov0:"无人拥有",tallyEach:"每个",tallyIs:"代表一个族群 —",tallyOf:"个族群中,",tallyLink:"个有链接",doxa0:"全部都有资源",doxa1:"1–4 个一无所有",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 个已触及",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"本地图上的 Doxa 族群",notPlaced:"在名单上,尚未定位",outOfScope:"没有 Doxa 族群 — 不着色"},tabs:{groups:"最大的族群",countries:"按国家",regions:"按地区",noprayer:"无人代祷",hnr:"能听,无文字"},stat:{language:"语言",population:"人口",countries:"国家",peopleGroups:"族群",noResource:"未找到资源",peopleAffected:"受影响人数",haveScripture:"有圣经",haveFilm:"有影片",haveAudio:"有有声圣经",signLanguages:"手语",growingUnreached:"增长中且未接触",deathsDay:"每日估计死亡人数"},sheet:{ownLanguage:"以他们自己的语言",close:"关闭",loading:"正在加载资源…",pray:"为其代祷:",everyResource:"所有资源 —",alsoSpeak:"同样使用"},res:{scripture:"圣经",film:"影片",audio:"音频",bibleVideo:"圣经视频",bibleStories:"Open Bible Stories",gospelAudio:"福音音频",gospelPresentation:"福音简介",scriptureEarth:"Scripture Earth",training:"门徒训练",jesusFilm:"《耶稣传》"},state:{noneFound:"一无所获",noneAtFcbh:"FCBH 没有",noneAtGrn:"GRN 没有",notInZume:"不在 Zume 的 54 种语言内",linkChecked:"链接已核实",unchecked:"未核实",linkDead:"链接失效",wrongLanguage:"语言不符",varietyNotStated:"(未注明变体)",inLanguage:"—"},guide:{dotVsCountry:"每个圆点代表 Doxa 的一个族群及其语言;国家的颜色代表这类族群的数量。",noneFoundShort:"“一无所获”指未见于本次查询的资源库,并不证明其不存在。",tapCountry:"点按国家,逐个族群查看实际资源。"},tables:{title:"福音资源 — 数据",showing:"显示",of:"/共",for:"—",filteredTo:"筛选:",showAll:"显示全部资源",t_doxa:"Doxa — 福音可及性",t_links:"每项资源与链接",t_nothing:"一无所获之处",t_countrygap:"各国缺口",t_translation:"能听,无文字",t_translationcountry:"何处需要翻译",t_gaps:"缺口与机会",t_bridges:"城市桥梁",t_deaf:"聋人缺口",t_resources:"按族群列出资源",t_languages:"各国语言",t_growth:"可及性与人口增长"},pages:{listTitle:"按语言列出的福音资源",chartsTitle:"福音资源 — 按语言",loadingTables:"正在加载资源表…"},list:{noText:"没有文字圣经",hasScripture:"有圣经",allLanguages:"全部语言",peopleGroup:"个族群",peopleGroups:"个族群",scriptureHere:"本语言的圣经"},columns:{"People group":"族群",Country:"国家",Region:"地区",Language:"语言",Population:"人口",Religion:"宗教","Gospel access":"福音可及性",Resources:"资源",Scripture:"圣经","Bible video":"圣经视频","Gospel presentation":"福音简介",Countries:"国家","People groups":"族群"}},P0={search:"搜索民族…",hide_filters:"隐藏筛选",show_filters:"显示筛选",total:"总计",showing:"显示",load_more:"加载更多",full_profile:"完整档案",wagf_region:"区域",wagf_block:"亲缘板块",rop1:"民族",religion:"宗教",exact_filter:"精确",clear_all:"全部清除",loading:"加载中…",no_results:"没有符合此筛选条件的民族。",type_to_search:"输入以搜索...",load_failed:"无法加载民族数据。这是连接问题,而不是筛选问题。"},C0={title:{adoption:"认领进度",affinityBlocs:"亲缘板块",doxaRegions:"Doxa 区域",engagement:"参与进度",gospelResources:"福音资源",languageFamilies:"语系",prayer:"祷告进度",upg100List:"我的 UPG 100 名单"},header:{collapsed:"图例",peopleGroupFallback:"民族群体",default:"圖例"},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:"人口",name:"名称"},footer:{total:"总计"},sortByUpgs:"按 UUPG 排序",sortByPop:"按人口排序",colLabel:{religion:"UUPG 宗教",prayer:"祷告状态",engagement:"参与状态",adoption:"认领状态",status:"状态"},titleBar:{legend:"图例",peopleGroups:"民族",wagfRegions:"WAGF 区域",languages:"语言"},tabInfo:{upg100Region:"区域 — 按世界区域排列 UPG-100 名单(非洲、印度、中东、聋人……)。数字是其下每份名单的 UUPG 与人口总和。",upg100Zone:"UPG-100 名单 — 每一份都是某地区未得之民的祷告名单,也是地图所绘制和上色的内容。每份名单印成独立的祷告册。",upg100Group:"族群 — 名单内各个未得之民群体,祷告需要最大的排在前面。地图上每个点就是其中之一。"},a11y:{expandRow:"展开{label}",collapseRow:"折叠{label}",clearSelection:"清除选择"}},E0={menuComingSoon:"菜单即将推出",pinHint:{tapDot:"点按一个彩色圆点——仍有人需要祷告"},upg100WallHeading:"我的 UPG 100 名單 — 禱告名單與海報",upg100WallTag:"禱告動員",upg100WallIntro:"將禱告的工作分成五十人、一百人一組 — 就像耶穌餵飽五千人那樣(路加福音 9:14)。每一張海報都是一份 100 人名單,你可以為他們禱告、列印出來、貼在牆上 — 按著他們族群的名字為他們禱告。"},T0={clusterByRegion:"按 Doxa 区域",clusterByLanguageFamily:"按语系",clusterByGospelResource:"按福音资源"},N0={country:{wagfRegion:"WAGF 地區",wagfBlock:"WAGF 區塊",country:"國家",uupgCount:"UUPG 數量"}},R0={header:"当前祷告轮次",lap:"第",upgs:"UUPGs",separator:" / "},M0={"%count% people groups in %countries% countries":"%countries% 个国家中的 %count% 个民族","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% 在 %countries% 个国家中有 %count% 个民族。每个标记的颜色表示有多少人在为该民族祷告。","1+ People Praying":"1 人以上祷告","100+ People Praying":"100 人以上祷告",Adopted:"已认领","Adoption Progress":"认领进度","All Regions":"所有区域","Alternate Names":"其他名称","Choose a region":"选择区域","Clear All":"全部清除",Countries:"国家","Countries in this region":"本区域的国家",Country:"国家",Engaged:"已参与","Engagement Progress":"参与进度","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"每一个尚无人参与的民族,都由一间委身于祷告、奉献与差派的教会认领","Exact Search":"精确搜索","Find unreached people groups by region and country.":"按区域和国家查找未得之民。","Full Profile":"完整档案",Goal:"目标","Hide Filters":"隐藏筛选","Hide country posters":"隐藏国家海报",Intercessors:"代祷者","Load More":"加载更多","Loading results...":"正在加载结果…",Map:"地图","Mobilize 100+ people praying daily for each DOXA people group":"为每个 DOXA 民族动员 100 人以上每日祷告","No One Praying":"无人祷告","No options found":"未找到选项","No poster has been generated for this country yet.":"尚未为该国家生成海报。","No unengaged people groups by 2033":"到 2033 年不再有无人参与的民族","Not Adopted":"未认领",Other:"其他","Page Not Found":"未找到页面","People Group":"民族","People Groups":"民族","People committed to praying":"委身祷告的人数","Pick a region above, or click any dot to open that people group's country.":"在上方选择一个区域,或点击任意圆点以打开该民族所在的国家。","Pick a region or a country on the Regions List tab to narrow this dashboard.":"在“区域列表”标签中选择一个区域或国家,以缩小此仪表板的范围。",Population:"人口","Prayer Coverage":"祷告覆盖","Prayer coverage progress":"祷告覆盖进度","Region Dashboards":"区域仪表板","Region dashboard":"区域仪表板",Regions:"区域","Regions List":"区域列表",Religion:"宗教","Search names, country/continent, religions...":"搜索名称、国家/大洲、宗教…","See %region% dashboard":"查看 %region% 仪表板","See All":"查看全部",Select:"选择","Select View":"选择视图","Show Filters":"显示筛选","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"%country% 有 %count% 个民族。也请在地图上查看该国边境地区的民族。",Total:"总计","Type to search...":"输入以搜索…","Unengaged people groups":"无人参与的民族","View country posters":"查看国家海报",Views:"视图","WAGF Block":"WAGF 板块","WAGF Region":"WAGF 区域","people groups adopted":"已认领的民族","people groups engaged":"已参与的民族","Outside this region":"在此区域之外",Pray:"祷告","Loading region dashboards…":"正在加载区域面板…","No regions found.":"未找到区域。","Region data could not be loaded. This is a connection problem, not a filter.":"无法加载区域数据。这是连接问题,不是筛选问题。","People groups could not be loaded. This is a connection problem, not a filter.":"无法加载民族群体。这是连接问题,不是筛选问题。","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"地图无法启动。这是地图令牌或连接问题,不是筛选问题——上方的数字不受影响。"},F0={placeholder:"民族、地点、语言、宗教",labels:{people:"民族:",place:"地点:",language:"语言:",religion:"宗教:"},sections:{within:"在 {selection} 之內",allData:"所有 DOXA 資料"},kinds:{people:"民族 + 国家",peopleGroup:"民族",bloc:"亲缘板块",cluster:"民族群",country:"国家",region:"区域",family:"语系",languageKind:"语言",dialect:"方言",religionKind:"宗教"}},I0={title:"插件工作室",navLabel:"按能力分类的插件",countLabel:"此处列出 {bundles} 个包 · {elements} 个插件",changeLanguage:"切换语言",copyEmbed:"复制嵌入代码",copy:"复制",copied:"已复制",scriptEmbed:"脚本嵌入",loading:"正在加载 {name}…",couldNotLoad:"无法加载 {name}。",chooseElement:"请从列表中选择一个插件。",filterPlaceholder:"筛选插件",collapseAll:"全部折叠",noMatch:"没有与“{query}”匹配的插件。",openSection:"打开 {cap},{label}",part:"部分",noStandalone:"无独立页面",cap5:"应用外壳",cap4:"组合",cap3:"多视图",cap2:"预设",cap1:"单一",toggleList:"显示或隐藏列表",openViews:"打开视图列表",expandList:"展开列表",collapseList:"折叠列表",collapse:"折叠",partOf:"{name} 的一部分,不单独发布"},O0={prayer:"祷告",adoption:"认领",engagement:"参与","affinity-blocks":"民族",regions:"区域",countries:"国家","language-families":"语言",religion:"宗教",family:"语系",language:"语言",dialect:"方言/变体",bloc:"亲缘板块",cluster:"民族群",group:"民族",pgic:"国内民族",region:"WAGF 区域",block:"WAGF 板块",country:"国家",upg100Region:"区域",upg100Zone:"UPG-100 名单",upg100Group:"族群",selectView:"選擇檢視",views:"檢視",prayerResources:"禱告資源",map:"地圖"},D0={kicker:"DOXA · 异象",title:"每一个民族,每一个地方。",tagline:"从世界上所有族群到 DOXA 为之祷告的族群,全部依据数据计算。",funnelLabel:"从所有族群到 DOXA 族群",allLabel:"族群",allNote:"每个族群在其居住的每个国家各计一次",unreachedLabel:"未得之民",unreachedNote:"福音派信徒少于 2%",frontierLabel:"前沿族群",frontierNote:"福音派信徒少于 0.1%",doxaLabel:"DOXA 族群",doxaNote:"其中 {frontier} 个为前沿族群",people:"{n} 人",sources:"族群:{imb},数据日期 {date}。DOXA 名单:pray.doxa.life,{date2}。",howCounted:"这些数字如何计算",ruleAll:"IMB 族群数据的每一行:一个国家中的一个族群。",ruleUnreached:"IMB 迷失优先级 0 至 2:福音派信徒少于 2%。",ruleFrontier:"IMB 迷失优先级 0:福音派信徒少于 0.1%。属于未得之民的一部分。",ruleDoxa:"DOXA 祷告名单上的每个族群,按民族和国家与 IMB 数据匹配。并非全部都是前沿族群。"};/*! * shared v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */function H_(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const Vs=typeof window<"u",Jo=(e,t=!1)=>t?Symbol.for(e):Symbol(e),q_=(e,t,o)=>W_({l:e,k:t,s:o}),W_=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),$t=e=>typeof e=="number"&&isFinite(e),Y_=e=>ep(e)==="[object Date]",Qo=e=>ep(e)==="[object RegExp]",Ks=e=>Be(e)&&Object.keys(e).length===0,Et=Object.assign,X_=Object.create,ot=(e=null)=>X_(e);let Xu;const Bo=()=>Xu||(Xu=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:ot());function Zu(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function Ju(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function Z_(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(n,a,s)=>`${a}="${Ju(s)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(n,a,s)=>`${a}='${Ju(s)}'`),/\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(n=>{e=e.replace(n,"$1javascript:")}),e}const J_=Object.prototype.hasOwnProperty;function ro(e,t){return J_.call(e,t)}const pt=Array.isArray,ct=e=>typeof e=="function",ke=e=>typeof e=="string",Ke=e=>typeof e=="boolean",We=e=>e!==null&&typeof e=="object",Q_=e=>We(e)&&ct(e.then)&&ct(e.catch),Qu=Object.prototype.toString,ep=e=>Qu.call(e),Be=e=>{if(!We(e))return!1;const t=Object.getPrototypeOf(e);return t===null||t.constructor===Object},e0=e=>e==null?"":pt(e)||Be(e)&&e.toString===Qu?JSON.stringify(e,null,2):String(e);function t0(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}function Hs(e){let t=e;return()=>++t}const qs=e=>!We(e)||pt(e);function Ws(e,t){if(qs(e)||qs(t))throw new Error("Invalid value");const o=[{src:e,des:t}];for(;o.length;){const{src:n,des:a}=o.pop();Object.keys(n).forEach(s=>{s!=="__proto__"&&(We(n[s])&&!We(a[s])&&(a[s]=Array.isArray(n[s])?[]:ot()),qs(a[s])||qs(n[s])?a[s]=n[s]:o.push({src:n[s],des:a[s]}))})}}/*! + */function B0(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const cr=typeof window<"u",dn=(e,t=!1)=>t?Symbol.for(e):Symbol(e),G0=(e,t,o)=>j0({l:e,k:t,s:o}),j0=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),$t=e=>typeof e=="number"&&isFinite(e),z0=e=>Fp(e)==="[object Date]",gn=e=>Fp(e)==="[object RegExp]",ur=e=>je(e)&&Object.keys(e).length===0,Tt=Object.assign,U0=Object.create,nt=(e=null)=>U0(e);let Tp;const Xo=()=>Tp||(Tp=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:nt());function Np(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function Rp(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function V0(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(n,a,s)=>`${a}="${Rp(s)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(n,a,s)=>`${a}='${Rp(s)}'`),/\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(n=>{e=e.replace(n,"$1javascript:")}),e}const K0=Object.prototype.hasOwnProperty;function go(e,t){return K0.call(e,t)}const dt=Array.isArray,it=e=>typeof e=="function",Le=e=>typeof e=="string",Ue=e=>typeof e=="boolean",Xe=e=>e!==null&&typeof e=="object",H0=e=>Xe(e)&&it(e.then)&&it(e.catch),Mp=Object.prototype.toString,Fp=e=>Mp.call(e),je=e=>{if(!Xe(e))return!1;const t=Object.getPrototypeOf(e);return t===null||t.constructor===Object},q0=e=>e==null?"":dt(e)||je(e)&&e.toString===Mp?JSON.stringify(e,null,2):String(e);function W0(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}function pr(e){let t=e;return()=>++t}const dr=e=>!Xe(e)||dt(e);function gr(e,t){if(dr(e)||dr(t))throw new Error("Invalid value");const o=[{src:e,des:t}];for(;o.length;){const{src:n,des:a}=o.pop();Object.keys(n).forEach(s=>{s!=="__proto__"&&(Xe(n[s])&&!Xe(a[s])&&(a[s]=Array.isArray(n[s])?[]:nt()),dr(a[s])||dr(n[s])?a[s]=n[s]:o.push({src:n[s],des:a[s]}))})}}/*! * message-compiler v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */function o0(e,t,o){return{line:e,column:t,offset:o}}function Ys(e,t,o){return{start:e,end:t}}const n0=/\{([0-9a-zA-Z]+)\}/g;function tp(e,...t){return t.length===1&&a0(t[0])&&(t=t[0]),(!t||!t.hasOwnProperty)&&(t={}),e.replace(n0,(o,n)=>t.hasOwnProperty(n)?t[n]:"")}const op=Object.assign,np=e=>typeof e=="string",a0=e=>e!==null&&typeof e=="object";function ap(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}const yi={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},s0={[yi.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function r0(e,t,...o){const n=tp(s0[e],...o||[]),a={message:String(n),code:e};return t&&(a.location=t),a}const Oe={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},i0={[Oe.EXPECTED_TOKEN]:"Expected token: '{0}'",[Oe.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[Oe.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[Oe.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[Oe.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[Oe.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[Oe.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[Oe.EMPTY_PLACEHOLDER]:"Empty placeholder",[Oe.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[Oe.INVALID_LINKED_FORMAT]:"Invalid linked format",[Oe.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[Oe.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[Oe.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[Oe.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[Oe.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[Oe.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function Hn(e,t,o={}){const{domain:n,messages:a,args:s}=o,r=tp((a||i0)[e]||"",...s||[]),i=new SyntaxError(String(r));return i.code=e,t&&(i.location=t),i.domain=n,i}function l0(e){throw e}const jo=" ",c0="\r",Gt=` -`,u0="\u2028",p0="\u2029";function d0(e){const t=e;let o=0,n=1,a=1,s=0;const r=d=>t[d]===c0&&t[d+1]===Gt,i=d=>t[d]===Gt,l=d=>t[d]===p0,c=d=>t[d]===u0,u=d=>r(d)||i(d)||l(d)||c(d),p=()=>o,g=()=>n,S=()=>a,v=()=>s,b=d=>r(d)||l(d)||c(d)?Gt:t[d],_=()=>b(o),$=()=>b(o+s);function f(){return s=0,u(o)&&(n++,a=0),r(o)&&o++,o++,a++,t[o]}function m(){return r(o+s)&&s++,s++,t[o+s]}function k(){o=0,n=1,a=1,s=0}function h(d=0){s=d}function P(){const d=o+s;for(;d!==o;)f();s=0}return{index:p,line:g,column:S,peekOffset:v,charAt:b,currentChar:_,currentPeek:$,next:f,peek:m,reset:k,resetPeek:h,skipToPeek:P}}const en=void 0,g0=".",sp="'",f0="tokenizer";function h0(e,t={}){const o=t.location!==!1,n=d0(e),a=()=>n.index(),s=()=>o0(n.line(),n.column(),n.index()),r=s(),i=a(),l={currentType:14,offset:i,startLoc:r,endLoc:r,lastType:14,lastOffset:i,lastStartLoc:r,lastEndLoc:r,braceNest:0,inLinked:!1,text:""},c=()=>l,{onError:u}=t;function p(w,x,G,...X){const me=c();if(x.column+=G,x.offset+=G,u){const ce=o?Ys(me.startLoc,x):null,Z=Hn(w,ce,{domain:f0,args:X});u(Z)}}function g(w,x,G){w.endLoc=s(),w.currentType=x;const X={type:x};return o&&(X.loc=Ys(w.startLoc,w.endLoc)),G!=null&&(X.value=G),X}const S=w=>g(w,14);function v(w,x){return w.currentChar()===x?(w.next(),x):(p(Oe.EXPECTED_TOKEN,s(),0,x),"")}function b(w){let x="";for(;w.currentPeek()===jo||w.currentPeek()===Gt;)x+=w.currentPeek(),w.peek();return x}function _(w){const x=b(w);return w.skipToPeek(),x}function $(w){if(w===en)return!1;const x=w.charCodeAt(0);return x>=97&&x<=122||x>=65&&x<=90||x===95}function f(w){if(w===en)return!1;const x=w.charCodeAt(0);return x>=48&&x<=57}function m(w,x){const{currentType:G}=x;if(G!==2)return!1;b(w);const X=$(w.currentPeek());return w.resetPeek(),X}function k(w,x){const{currentType:G}=x;if(G!==2)return!1;b(w);const X=w.currentPeek()==="-"?w.peek():w.currentPeek(),me=f(X);return w.resetPeek(),me}function h(w,x){const{currentType:G}=x;if(G!==2)return!1;b(w);const X=w.currentPeek()===sp;return w.resetPeek(),X}function P(w,x){const{currentType:G}=x;if(G!==8)return!1;b(w);const X=w.currentPeek()===".";return w.resetPeek(),X}function d(w,x){const{currentType:G}=x;if(G!==9)return!1;b(w);const X=$(w.currentPeek());return w.resetPeek(),X}function C(w,x){const{currentType:G}=x;if(!(G===8||G===12))return!1;b(w);const X=w.currentPeek()===":";return w.resetPeek(),X}function A(w,x){const{currentType:G}=x;if(G!==10)return!1;const X=()=>{const ce=w.currentPeek();return ce==="{"?$(w.peek()):ce==="@"||ce==="%"||ce==="|"||ce===":"||ce==="."||ce===jo||!ce?!1:ce===Gt?(w.peek(),X()):J(w,!1)},me=X();return w.resetPeek(),me}function B(w){b(w);const x=w.currentPeek()==="|";return w.resetPeek(),x}function V(w){const x=b(w),G=w.currentPeek()==="%"&&w.peek()==="{";return w.resetPeek(),{isModulo:G,hasSpace:x.length>0}}function J(w,x=!0){const G=(me=!1,ce="",Z=!1)=>{const le=w.currentPeek();return le==="{"?ce==="%"?!1:me:le==="@"||!le?ce==="%"?!0:me:le==="%"?(w.peek(),G(me,"%",!0)):le==="|"?ce==="%"||Z?!0:!(ce===jo||ce===Gt):le===jo?(w.peek(),G(!0,jo,Z)):le===Gt?(w.peek(),G(!0,Gt,Z)):!0},X=G();return x&&w.resetPeek(),X}function z(w,x){const G=w.currentChar();return G===en?en:x(G)?(w.next(),G):null}function D(w){const x=w.charCodeAt(0);return x>=97&&x<=122||x>=65&&x<=90||x>=48&&x<=57||x===95||x===36}function L(w){return z(w,D)}function y(w){const x=w.charCodeAt(0);return x>=97&&x<=122||x>=65&&x<=90||x>=48&&x<=57||x===95||x===36||x===45}function R(w){return z(w,y)}function U(w){const x=w.charCodeAt(0);return x>=48&&x<=57}function H(w){return z(w,U)}function Q(w){const x=w.charCodeAt(0);return x>=48&&x<=57||x>=65&&x<=70||x>=97&&x<=102}function re(w){return z(w,Q)}function j(w){let x="",G="";for(;x=H(w);)G+=x;return G}function be(w){_(w);const x=w.currentChar();return x!=="%"&&p(Oe.EXPECTED_TOKEN,s(),0,x),w.next(),"%"}function xe(w){let x="";for(;;){const G=w.currentChar();if(G==="{"||G==="}"||G==="@"||G==="|"||!G)break;if(G==="%")if(J(w))x+=G,w.next();else break;else if(G===jo||G===Gt)if(J(w))x+=G,w.next();else{if(B(w))break;x+=G,w.next()}else x+=G,w.next()}return x}function fe(w){_(w);let x="",G="";for(;x=R(w);)G+=x;return w.currentChar()===en&&p(Oe.UNTERMINATED_CLOSING_BRACE,s(),0),G}function we(w){_(w);let x="";return w.currentChar()==="-"?(w.next(),x+=`-${j(w)}`):x+=j(w),w.currentChar()===en&&p(Oe.UNTERMINATED_CLOSING_BRACE,s(),0),x}function $e(w){return w!==sp&&w!==Gt}function ne(w){_(w),v(w,"'");let x="",G="";for(;x=z(w,$e);)x==="\\"?G+=te(w):G+=x;const X=w.currentChar();return X===Gt||X===en?(p(Oe.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,s(),0),X===Gt&&(w.next(),v(w,"'")),G):(v(w,"'"),G)}function te(w){const x=w.currentChar();switch(x){case"\\":case"'":return w.next(),`\\${x}`;case"u":return de(w,x,4);case"U":return de(w,x,6);default:return p(Oe.UNKNOWN_ESCAPE_SEQUENCE,s(),0,x),""}}function de(w,x,G){v(w,x);let X="";for(let me=0;me{const X=w.currentChar();return X==="{"||X==="%"||X==="@"||X==="|"||X==="("||X===")"||!X||X===jo?G:(G+=X,w.next(),x(G))};return x("")}function W(w){_(w);const x=v(w,"|");return _(w),x}function Y(w,x){let G=null;switch(w.currentChar()){case"{":return x.braceNest>=1&&p(Oe.NOT_ALLOW_NEST_PLACEHOLDER,s(),0),w.next(),G=g(x,2,"{"),_(w),x.braceNest++,G;case"}":return x.braceNest>0&&x.currentType===2&&p(Oe.EMPTY_PLACEHOLDER,s(),0),w.next(),G=g(x,3,"}"),x.braceNest--,x.braceNest>0&&_(w),x.inLinked&&x.braceNest===0&&(x.inLinked=!1),G;case"@":return x.braceNest>0&&p(Oe.UNTERMINATED_CLOSING_BRACE,s(),0),G=O(w,x)||S(x),x.braceNest=0,G;default:{let me=!0,ce=!0,Z=!0;if(B(w))return x.braceNest>0&&p(Oe.UNTERMINATED_CLOSING_BRACE,s(),0),G=g(x,1,W(w)),x.braceNest=0,x.inLinked=!1,G;if(x.braceNest>0&&(x.currentType===5||x.currentType===6||x.currentType===7))return p(Oe.UNTERMINATED_CLOSING_BRACE,s(),0),x.braceNest=0,ue(w,x);if(me=m(w,x))return G=g(x,5,fe(w)),_(w),G;if(ce=k(w,x))return G=g(x,6,we(w)),_(w),G;if(Z=h(w,x))return G=g(x,7,ne(w)),_(w),G;if(!me&&!ce&&!Z)return G=g(x,13,T(w)),p(Oe.INVALID_TOKEN_IN_PLACEHOLDER,s(),0,G.value),_(w),G;break}}return G}function O(w,x){const{currentType:G}=x;let X=null;const me=w.currentChar();switch((G===8||G===9||G===12||G===10)&&(me===Gt||me===jo)&&p(Oe.INVALID_LINKED_FORMAT,s(),0),me){case"@":return w.next(),X=g(x,8,"@"),x.inLinked=!0,X;case".":return _(w),w.next(),g(x,9,".");case":":return _(w),w.next(),g(x,10,":");default:return B(w)?(X=g(x,1,W(w)),x.braceNest=0,x.inLinked=!1,X):P(w,x)||C(w,x)?(_(w),O(w,x)):d(w,x)?(_(w),g(x,12,F(w))):A(w,x)?(_(w),me==="{"?Y(w,x)||X:g(x,11,I(w))):(G===8&&p(Oe.INVALID_LINKED_FORMAT,s(),0),x.braceNest=0,x.inLinked=!1,ue(w,x))}}function ue(w,x){let G={type:14};if(x.braceNest>0)return Y(w,x)||S(x);if(x.inLinked)return O(w,x)||S(x);switch(w.currentChar()){case"{":return Y(w,x)||S(x);case"}":return p(Oe.UNBALANCED_CLOSING_BRACE,s(),0),w.next(),g(x,3,"}");case"@":return O(w,x)||S(x);default:{if(B(w))return G=g(x,1,W(w)),x.braceNest=0,x.inLinked=!1,G;const{isModulo:me,hasSpace:ce}=V(w);if(me)return ce?g(x,0,xe(w)):g(x,4,be(w));if(J(w))return g(x,0,xe(w));break}}return G}function ee(){const{currentType:w,offset:x,startLoc:G,endLoc:X}=l;return l.lastType=w,l.lastOffset=x,l.lastStartLoc=G,l.lastEndLoc=X,l.offset=a(),l.startLoc=s(),n.currentChar()===en?g(l,14):ue(n,l)}return{nextToken:ee,currentOffset:a,currentPosition:s,context:c}}const m0="parser",b0=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function $0(e,t,o){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const n=parseInt(t||o,16);return n<=55295||n>=57344?String.fromCodePoint(n):"�"}}}function y0(e={}){const t=e.location!==!1,{onError:o,onWarn:n}=e;function a(m,k,h,P,...d){const C=m.currentPosition();if(C.offset+=P,C.column+=P,o){const A=t?Ys(h,C):null,B=Hn(k,A,{domain:m0,args:d});o(B)}}function s(m,k,h,P,...d){const C=m.currentPosition();if(C.offset+=P,C.column+=P,n){const A=t?Ys(h,C):null;n(r0(k,A,d))}}function r(m,k,h){const P={type:m};return t&&(P.start=k,P.end=k,P.loc={start:h,end:h}),P}function i(m,k,h,P){t&&(m.end=k,m.loc&&(m.loc.end=h))}function l(m,k){const h=m.context(),P=r(3,h.offset,h.startLoc);return P.value=k,i(P,m.currentOffset(),m.currentPosition()),P}function c(m,k){const h=m.context(),{lastOffset:P,lastStartLoc:d}=h,C=r(5,P,d);return C.index=parseInt(k,10),m.nextToken(),i(C,m.currentOffset(),m.currentPosition()),C}function u(m,k,h){const P=m.context(),{lastOffset:d,lastStartLoc:C}=P,A=r(4,d,C);return A.key=k,h===!0&&(A.modulo=!0),m.nextToken(),i(A,m.currentOffset(),m.currentPosition()),A}function p(m,k){const h=m.context(),{lastOffset:P,lastStartLoc:d}=h,C=r(9,P,d);return C.value=k.replace(b0,$0),m.nextToken(),i(C,m.currentOffset(),m.currentPosition()),C}function g(m){const k=m.nextToken(),h=m.context(),{lastOffset:P,lastStartLoc:d}=h,C=r(8,P,d);return k.type!==12?(a(m,Oe.UNEXPECTED_EMPTY_LINKED_MODIFIER,h.lastStartLoc,0),C.value="",i(C,P,d),{nextConsumeToken:k,node:C}):(k.value==null&&a(m,Oe.UNEXPECTED_LEXICAL_ANALYSIS,h.lastStartLoc,0,io(k)),C.value=k.value||"",i(C,m.currentOffset(),m.currentPosition()),{node:C})}function S(m,k){const h=m.context(),P=r(7,h.offset,h.startLoc);return P.value=k,i(P,m.currentOffset(),m.currentPosition()),P}function v(m){const k=m.context(),h=r(6,k.offset,k.startLoc);let P=m.nextToken();if(P.type===9){const d=g(m);h.modifier=d.node,P=d.nextConsumeToken||m.nextToken()}switch(P.type!==10&&a(m,Oe.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,io(P)),P=m.nextToken(),P.type===2&&(P=m.nextToken()),P.type){case 11:P.value==null&&a(m,Oe.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,io(P)),h.key=S(m,P.value||"");break;case 5:P.value==null&&a(m,Oe.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,io(P)),h.key=u(m,P.value||"");break;case 6:P.value==null&&a(m,Oe.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,io(P)),h.key=c(m,P.value||"");break;case 7:P.value==null&&a(m,Oe.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,io(P)),h.key=p(m,P.value||"");break;default:{a(m,Oe.UNEXPECTED_EMPTY_LINKED_KEY,k.lastStartLoc,0);const d=m.context(),C=r(7,d.offset,d.startLoc);return C.value="",i(C,d.offset,d.startLoc),h.key=C,i(h,d.offset,d.startLoc),{nextConsumeToken:P,node:h}}}return i(h,m.currentOffset(),m.currentPosition()),{node:h}}function b(m){const k=m.context(),h=k.currentType===1?m.currentOffset():k.offset,P=k.currentType===1?k.endLoc:k.startLoc,d=r(2,h,P);d.items=[];let C=null,A=null;do{const J=C||m.nextToken();switch(C=null,J.type){case 0:J.value==null&&a(m,Oe.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,io(J)),d.items.push(l(m,J.value||""));break;case 6:J.value==null&&a(m,Oe.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,io(J)),d.items.push(c(m,J.value||""));break;case 4:A=!0;break;case 5:J.value==null&&a(m,Oe.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,io(J)),d.items.push(u(m,J.value||"",!!A)),A&&(s(m,yi.USE_MODULO_SYNTAX,k.lastStartLoc,0,io(J)),A=null);break;case 7:J.value==null&&a(m,Oe.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,io(J)),d.items.push(p(m,J.value||""));break;case 8:{const z=v(m);d.items.push(z.node),C=z.nextConsumeToken||null;break}}}while(k.currentType!==14&&k.currentType!==1);const B=k.currentType===1?k.lastOffset:m.currentOffset(),V=k.currentType===1?k.lastEndLoc:m.currentPosition();return i(d,B,V),d}function _(m,k,h,P){const d=m.context();let C=P.items.length===0;const A=r(1,k,h);A.cases=[],A.cases.push(P);do{const B=b(m);C||(C=B.items.length===0),A.cases.push(B)}while(d.currentType!==14);return C&&a(m,Oe.MUST_HAVE_MESSAGES_IN_PLURAL,h,0),i(A,m.currentOffset(),m.currentPosition()),A}function $(m){const k=m.context(),{offset:h,startLoc:P}=k,d=b(m);return k.currentType===14?d:_(m,h,P,d)}function f(m){const k=h0(m,op({},e)),h=k.context(),P=r(0,h.offset,h.startLoc);return t&&P.loc&&(P.loc.source=m),P.body=$(k),e.onCacheKey&&(P.cacheKey=e.onCacheKey(m)),h.currentType!==14&&a(k,Oe.UNEXPECTED_LEXICAL_ANALYSIS,h.lastStartLoc,0,m[h.offset]||""),i(P,k.currentOffset(),k.currentPosition()),P}return{parse:f}}function io(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 _0(e,t={}){const o={ast:e,helpers:new Set};return{context:()=>o,helper:s=>(o.helpers.add(s),s)}}function rp(e,t){for(let o=0;oip(o)),e}function ip(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 o=0;or;function l(b,_){r.code+=b}function c(b,_=!0){const $=_?n:"";l(a?$+" ".repeat(b):$)}function u(b=!0){const _=++r.indentLevel;b&&c(_)}function p(b=!0){const _=--r.indentLevel;b&&c(_)}function g(){c(r.indentLevel)}return{context:i,push:l,indent:u,deindent:p,newline:g,helper:b=>`_${b}`,needIndent:()=>r.needIndent}}function A0(e,t){const{helper:o}=e;e.push(`${o("linked")}(`),Wn(e,t.key),t.modifier?(e.push(", "),Wn(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function S0(e,t){const{helper:o,needIndent:n}=e;e.push(`${o("normalize")}([`),e.indent(n());const a=t.items.length;for(let s=0;s1){e.push(`${o("plural")}([`),e.indent(n());const a=t.cases.length;for(let s=0;s{const o=np(t.mode)?t.mode:"normal",n=np(t.filename)?t.filename:"message.intl";t.sourceMap;const a=t.breakLineCode!=null?t.breakLineCode:o==="arrow"?";":` -`,s=t.needIndent?t.needIndent:o!=="arrow",r=e.helpers||[],i=L0(e,{filename:n,breakLineCode:a,needIndent:s});i.push(o==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),i.indent(s),r.length>0&&(i.push(`const { ${ap(r.map(u=>`${u}: _${u}`),", ")} } = ctx`),i.newline()),i.push("return "),Wn(i,e),i.deindent(s),i.push("}"),delete e.helpers;const{code:l,map:c}=i.context();return{ast:e,code:l,map:c?c.toJSON():void 0}};function T0(e,t={}){const o=op({},t),n=!!o.jit,a=!!o.minify,s=o.optimize==null?!0:o.optimize,i=y0(o).parse(e);return n?(s&&w0(i),a&&qn(i),{ast:i,code:""}):(v0(i,o),E0(i,o))}/*! + */function Y0(e,t,o){return{line:e,column:t,offset:o}}function fr(e,t,o){return{start:e,end:t}}const X0=/\{([0-9a-zA-Z]+)\}/g;function Ip(e,...t){return t.length===1&&Z0(t[0])&&(t=t[0]),(!t||!t.hasOwnProperty)&&(t={}),e.replace(X0,(o,n)=>t.hasOwnProperty(n)?t[n]:"")}const Op=Object.assign,Dp=e=>typeof e=="string",Z0=e=>e!==null&&typeof e=="object";function Bp(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}const ji={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},J0={[ji.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function Q0(e,t,...o){const n=Ip(J0[e],...o||[]),a={message:String(n),code:e};return t&&(a.location=t),a}const Oe={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},ev={[Oe.EXPECTED_TOKEN]:"Expected token: '{0}'",[Oe.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[Oe.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[Oe.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[Oe.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[Oe.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[Oe.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[Oe.EMPTY_PLACEHOLDER]:"Empty placeholder",[Oe.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[Oe.INVALID_LINKED_FORMAT]:"Invalid linked format",[Oe.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[Oe.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[Oe.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[Oe.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[Oe.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[Oe.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function aa(e,t,o={}){const{domain:n,messages:a,args:s}=o,r=Ip((a||ev)[e]||"",...s||[]),i=new SyntaxError(String(r));return i.code=e,t&&(i.location=t),i.domain=n,i}function tv(e){throw e}const Zo=" ",ov="\r",Gt=` +`,nv="\u2028",av="\u2029";function sv(e){const t=e;let o=0,n=1,a=1,s=0;const r=f=>t[f]===ov&&t[f+1]===Gt,i=f=>t[f]===Gt,l=f=>t[f]===av,c=f=>t[f]===nv,u=f=>r(f)||i(f)||l(f)||c(f),p=()=>o,g=()=>n,A=()=>a,w=()=>s,h=f=>r(f)||l(f)||c(f)?Gt:t[f],v=()=>h(o),$=()=>h(o+s);function m(){return s=0,u(o)&&(n++,a=0),r(o)&&o++,o++,a++,t[o]}function b(){return r(o+s)&&s++,s++,t[o+s]}function k(){o=0,n=1,a=1,s=0}function E(f=0){s=f}function x(){const f=o+s;for(;f!==o;)m();s=0}return{index:p,line:g,column:A,peekOffset:w,charAt:h,currentChar:v,currentPeek:$,next:m,peek:b,reset:k,resetPeek:E,skipToPeek:x}}const fn=void 0,rv=".",Gp="'",iv="tokenizer";function lv(e,t={}){const o=t.location!==!1,n=sv(e),a=()=>n.index(),s=()=>Y0(n.line(),n.column(),n.index()),r=s(),i=a(),l={currentType:14,offset:i,startLoc:r,endLoc:r,lastType:14,lastOffset:i,lastStartLoc:r,lastEndLoc:r,braceNest:0,inLinked:!1,text:""},c=()=>l,{onError:u}=t;function p(_,S,D,...te){const me=c();if(S.column+=D,S.offset+=D,u){const le=o?fr(me.startLoc,S):null,Y=aa(_,le,{domain:iv,args:te});u(Y)}}function g(_,S,D){_.endLoc=s(),_.currentType=S;const te={type:S};return o&&(te.loc=fr(_.startLoc,_.endLoc)),D!=null&&(te.value=D),te}const A=_=>g(_,14);function w(_,S){return _.currentChar()===S?(_.next(),S):(p(Oe.EXPECTED_TOKEN,s(),0,S),"")}function h(_){let S="";for(;_.currentPeek()===Zo||_.currentPeek()===Gt;)S+=_.currentPeek(),_.peek();return S}function v(_){const S=h(_);return _.skipToPeek(),S}function $(_){if(_===fn)return!1;const S=_.charCodeAt(0);return S>=97&&S<=122||S>=65&&S<=90||S===95}function m(_){if(_===fn)return!1;const S=_.charCodeAt(0);return S>=48&&S<=57}function b(_,S){const{currentType:D}=S;if(D!==2)return!1;h(_);const te=$(_.currentPeek());return _.resetPeek(),te}function k(_,S){const{currentType:D}=S;if(D!==2)return!1;h(_);const te=_.currentPeek()==="-"?_.peek():_.currentPeek(),me=m(te);return _.resetPeek(),me}function E(_,S){const{currentType:D}=S;if(D!==2)return!1;h(_);const te=_.currentPeek()===Gp;return _.resetPeek(),te}function x(_,S){const{currentType:D}=S;if(D!==8)return!1;h(_);const te=_.currentPeek()===".";return _.resetPeek(),te}function f(_,S){const{currentType:D}=S;if(D!==9)return!1;h(_);const te=$(_.currentPeek());return _.resetPeek(),te}function d(_,S){const{currentType:D}=S;if(!(D===8||D===12))return!1;h(_);const te=_.currentPeek()===":";return _.resetPeek(),te}function y(_,S){const{currentType:D}=S;if(D!==10)return!1;const te=()=>{const le=_.currentPeek();return le==="{"?$(_.peek()):le==="@"||le==="%"||le==="|"||le===":"||le==="."||le===Zo||!le?!1:le===Gt?(_.peek(),te()):V(_,!1)},me=te();return _.resetPeek(),me}function N(_){h(_);const S=_.currentPeek()==="|";return _.resetPeek(),S}function B(_){const S=h(_),D=_.currentPeek()==="%"&&_.peek()==="{";return _.resetPeek(),{isModulo:D,hasSpace:S.length>0}}function V(_,S=!0){const D=(me=!1,le="",Y=!1)=>{const ie=_.currentPeek();return ie==="{"?le==="%"?!1:me:ie==="@"||!ie?le==="%"?!0:me:ie==="%"?(_.peek(),D(me,"%",!0)):ie==="|"?le==="%"||Y?!0:!(le===Zo||le===Gt):ie===Zo?(_.peek(),D(!0,Zo,Y)):ie===Gt?(_.peek(),D(!0,Gt,Y)):!0},te=D();return S&&_.resetPeek(),te}function j(_,S){const D=_.currentChar();return D===fn?fn:S(D)?(_.next(),D):null}function G(_){const S=_.charCodeAt(0);return S>=97&&S<=122||S>=65&&S<=90||S>=48&&S<=57||S===95||S===36}function C(_){return j(_,G)}function L(_){const S=_.charCodeAt(0);return S>=97&&S<=122||S>=65&&S<=90||S>=48&&S<=57||S===95||S===36||S===45}function M(_){return j(_,L)}function z(_){const S=_.charCodeAt(0);return S>=48&&S<=57}function K(_){return j(_,z)}function J(_){const S=_.charCodeAt(0);return S>=48&&S<=57||S>=65&&S<=70||S>=97&&S<=102}function ce(_){return j(_,J)}function H(_){let S="",D="";for(;S=K(_);)D+=S;return D}function be(_){v(_);const S=_.currentChar();return S!=="%"&&p(Oe.EXPECTED_TOKEN,s(),0,S),_.next(),"%"}function we(_){let S="";for(;;){const D=_.currentChar();if(D==="{"||D==="}"||D==="@"||D==="|"||!D)break;if(D==="%")if(V(_))S+=D,_.next();else break;else if(D===Zo||D===Gt)if(V(_))S+=D,_.next();else{if(N(_))break;S+=D,_.next()}else S+=D,_.next()}return S}function he(_){v(_);let S="",D="";for(;S=M(_);)D+=S;return _.currentChar()===fn&&p(Oe.UNTERMINATED_CLOSING_BRACE,s(),0),D}function Ae(_){v(_);let S="";return _.currentChar()==="-"?(_.next(),S+=`-${H(_)}`):S+=H(_),_.currentChar()===fn&&p(Oe.UNTERMINATED_CLOSING_BRACE,s(),0),S}function ye(_){return _!==Gp&&_!==Gt}function oe(_){v(_),w(_,"'");let S="",D="";for(;S=j(_,ye);)S==="\\"?D+=fe(_):D+=S;const te=_.currentChar();return te===Gt||te===fn?(p(Oe.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,s(),0),te===Gt&&(_.next(),w(_,"'")),D):(w(_,"'"),D)}function fe(_){const S=_.currentChar();switch(S){case"\\":case"'":return _.next(),`\\${S}`;case"u":return pe(_,S,4);case"U":return pe(_,S,6);default:return p(Oe.UNKNOWN_ESCAPE_SEQUENCE,s(),0,S),""}}function pe(_,S,D){w(_,S);let te="";for(let me=0;me{const te=_.currentChar();return te==="{"||te==="%"||te==="@"||te==="|"||te==="("||te===")"||!te||te===Zo?D:(D+=te,_.next(),S(D))};return S("")}function X(_){v(_);const S=w(_,"|");return v(_),S}function Q(_,S){let D=null;switch(_.currentChar()){case"{":return S.braceNest>=1&&p(Oe.NOT_ALLOW_NEST_PLACEHOLDER,s(),0),_.next(),D=g(S,2,"{"),v(_),S.braceNest++,D;case"}":return S.braceNest>0&&S.currentType===2&&p(Oe.EMPTY_PLACEHOLDER,s(),0),_.next(),D=g(S,3,"}"),S.braceNest--,S.braceNest>0&&v(_),S.inLinked&&S.braceNest===0&&(S.inLinked=!1),D;case"@":return S.braceNest>0&&p(Oe.UNTERMINATED_CLOSING_BRACE,s(),0),D=U(_,S)||A(S),S.braceNest=0,D;default:{let me=!0,le=!0,Y=!0;if(N(_))return S.braceNest>0&&p(Oe.UNTERMINATED_CLOSING_BRACE,s(),0),D=g(S,1,X(_)),S.braceNest=0,S.inLinked=!1,D;if(S.braceNest>0&&(S.currentType===5||S.currentType===6||S.currentType===7))return p(Oe.UNTERMINATED_CLOSING_BRACE,s(),0),S.braceNest=0,de(_,S);if(me=b(_,S))return D=g(S,5,he(_)),v(_),D;if(le=k(_,S))return D=g(S,6,Ae(_)),v(_),D;if(Y=E(_,S))return D=g(S,7,oe(_)),v(_),D;if(!me&&!le&&!Y)return D=g(S,13,P(_)),p(Oe.INVALID_TOKEN_IN_PLACEHOLDER,s(),0,D.value),v(_),D;break}}return D}function U(_,S){const{currentType:D}=S;let te=null;const me=_.currentChar();switch((D===8||D===9||D===12||D===10)&&(me===Gt||me===Zo)&&p(Oe.INVALID_LINKED_FORMAT,s(),0),me){case"@":return _.next(),te=g(S,8,"@"),S.inLinked=!0,te;case".":return v(_),_.next(),g(S,9,".");case":":return v(_),_.next(),g(S,10,":");default:return N(_)?(te=g(S,1,X(_)),S.braceNest=0,S.inLinked=!1,te):x(_,S)||d(_,S)?(v(_),U(_,S)):f(_,S)?(v(_),g(S,12,O(_))):y(_,S)?(v(_),me==="{"?Q(_,S)||te:g(S,11,I(_))):(D===8&&p(Oe.INVALID_LINKED_FORMAT,s(),0),S.braceNest=0,S.inLinked=!1,de(_,S))}}function de(_,S){let D={type:14};if(S.braceNest>0)return Q(_,S)||A(S);if(S.inLinked)return U(_,S)||A(S);switch(_.currentChar()){case"{":return Q(_,S)||A(S);case"}":return p(Oe.UNBALANCED_CLOSING_BRACE,s(),0),_.next(),g(S,3,"}");case"@":return U(_,S)||A(S);default:{if(N(_))return D=g(S,1,X(_)),S.braceNest=0,S.inLinked=!1,D;const{isModulo:me,hasSpace:le}=B(_);if(me)return le?g(S,0,we(_)):g(S,4,be(_));if(V(_))return g(S,0,we(_));break}}return D}function ne(){const{currentType:_,offset:S,startLoc:D,endLoc:te}=l;return l.lastType=_,l.lastOffset=S,l.lastStartLoc=D,l.lastEndLoc=te,l.offset=a(),l.startLoc=s(),n.currentChar()===fn?g(l,14):de(n,l)}return{nextToken:ne,currentOffset:a,currentPosition:s,context:c}}const cv="parser",uv=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function pv(e,t,o){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const n=parseInt(t||o,16);return n<=55295||n>=57344?String.fromCodePoint(n):"�"}}}function dv(e={}){const t=e.location!==!1,{onError:o,onWarn:n}=e;function a(b,k,E,x,...f){const d=b.currentPosition();if(d.offset+=x,d.column+=x,o){const y=t?fr(E,d):null,N=aa(k,y,{domain:cv,args:f});o(N)}}function s(b,k,E,x,...f){const d=b.currentPosition();if(d.offset+=x,d.column+=x,n){const y=t?fr(E,d):null;n(Q0(k,y,f))}}function r(b,k,E){const x={type:b};return t&&(x.start=k,x.end=k,x.loc={start:E,end:E}),x}function i(b,k,E,x){t&&(b.end=k,b.loc&&(b.loc.end=E))}function l(b,k){const E=b.context(),x=r(3,E.offset,E.startLoc);return x.value=k,i(x,b.currentOffset(),b.currentPosition()),x}function c(b,k){const E=b.context(),{lastOffset:x,lastStartLoc:f}=E,d=r(5,x,f);return d.index=parseInt(k,10),b.nextToken(),i(d,b.currentOffset(),b.currentPosition()),d}function u(b,k,E){const x=b.context(),{lastOffset:f,lastStartLoc:d}=x,y=r(4,f,d);return y.key=k,E===!0&&(y.modulo=!0),b.nextToken(),i(y,b.currentOffset(),b.currentPosition()),y}function p(b,k){const E=b.context(),{lastOffset:x,lastStartLoc:f}=E,d=r(9,x,f);return d.value=k.replace(uv,pv),b.nextToken(),i(d,b.currentOffset(),b.currentPosition()),d}function g(b){const k=b.nextToken(),E=b.context(),{lastOffset:x,lastStartLoc:f}=E,d=r(8,x,f);return k.type!==12?(a(b,Oe.UNEXPECTED_EMPTY_LINKED_MODIFIER,E.lastStartLoc,0),d.value="",i(d,x,f),{nextConsumeToken:k,node:d}):(k.value==null&&a(b,Oe.UNEXPECTED_LEXICAL_ANALYSIS,E.lastStartLoc,0,fo(k)),d.value=k.value||"",i(d,b.currentOffset(),b.currentPosition()),{node:d})}function A(b,k){const E=b.context(),x=r(7,E.offset,E.startLoc);return x.value=k,i(x,b.currentOffset(),b.currentPosition()),x}function w(b){const k=b.context(),E=r(6,k.offset,k.startLoc);let x=b.nextToken();if(x.type===9){const f=g(b);E.modifier=f.node,x=f.nextConsumeToken||b.nextToken()}switch(x.type!==10&&a(b,Oe.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,fo(x)),x=b.nextToken(),x.type===2&&(x=b.nextToken()),x.type){case 11:x.value==null&&a(b,Oe.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,fo(x)),E.key=A(b,x.value||"");break;case 5:x.value==null&&a(b,Oe.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,fo(x)),E.key=u(b,x.value||"");break;case 6:x.value==null&&a(b,Oe.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,fo(x)),E.key=c(b,x.value||"");break;case 7:x.value==null&&a(b,Oe.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,fo(x)),E.key=p(b,x.value||"");break;default:{a(b,Oe.UNEXPECTED_EMPTY_LINKED_KEY,k.lastStartLoc,0);const f=b.context(),d=r(7,f.offset,f.startLoc);return d.value="",i(d,f.offset,f.startLoc),E.key=d,i(E,f.offset,f.startLoc),{nextConsumeToken:x,node:E}}}return i(E,b.currentOffset(),b.currentPosition()),{node:E}}function h(b){const k=b.context(),E=k.currentType===1?b.currentOffset():k.offset,x=k.currentType===1?k.endLoc:k.startLoc,f=r(2,E,x);f.items=[];let d=null,y=null;do{const V=d||b.nextToken();switch(d=null,V.type){case 0:V.value==null&&a(b,Oe.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,fo(V)),f.items.push(l(b,V.value||""));break;case 6:V.value==null&&a(b,Oe.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,fo(V)),f.items.push(c(b,V.value||""));break;case 4:y=!0;break;case 5:V.value==null&&a(b,Oe.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,fo(V)),f.items.push(u(b,V.value||"",!!y)),y&&(s(b,ji.USE_MODULO_SYNTAX,k.lastStartLoc,0,fo(V)),y=null);break;case 7:V.value==null&&a(b,Oe.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,fo(V)),f.items.push(p(b,V.value||""));break;case 8:{const j=w(b);f.items.push(j.node),d=j.nextConsumeToken||null;break}}}while(k.currentType!==14&&k.currentType!==1);const N=k.currentType===1?k.lastOffset:b.currentOffset(),B=k.currentType===1?k.lastEndLoc:b.currentPosition();return i(f,N,B),f}function v(b,k,E,x){const f=b.context();let d=x.items.length===0;const y=r(1,k,E);y.cases=[],y.cases.push(x);do{const N=h(b);d||(d=N.items.length===0),y.cases.push(N)}while(f.currentType!==14);return d&&a(b,Oe.MUST_HAVE_MESSAGES_IN_PLURAL,E,0),i(y,b.currentOffset(),b.currentPosition()),y}function $(b){const k=b.context(),{offset:E,startLoc:x}=k,f=h(b);return k.currentType===14?f:v(b,E,x,f)}function m(b){const k=lv(b,Op({},e)),E=k.context(),x=r(0,E.offset,E.startLoc);return t&&x.loc&&(x.loc.source=b),x.body=$(k),e.onCacheKey&&(x.cacheKey=e.onCacheKey(b)),E.currentType!==14&&a(k,Oe.UNEXPECTED_LEXICAL_ANALYSIS,E.lastStartLoc,0,b[E.offset]||""),i(x,k.currentOffset(),k.currentPosition()),x}return{parse:m}}function fo(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 gv(e,t={}){const o={ast:e,helpers:new Set};return{context:()=>o,helper:s=>(o.helpers.add(s),s)}}function jp(e,t){for(let o=0;ozp(o)),e}function zp(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 o=0;or;function l(h,v){r.code+=h}function c(h,v=!0){const $=v?n:"";l(a?$+" ".repeat(h):$)}function u(h=!0){const v=++r.indentLevel;h&&c(v)}function p(h=!0){const v=--r.indentLevel;h&&c(v)}function g(){c(r.indentLevel)}return{context:i,push:l,indent:u,deindent:p,newline:g,helper:h=>`_${h}`,needIndent:()=>r.needIndent}}function yv(e,t){const{helper:o}=e;e.push(`${o("linked")}(`),ra(e,t.key),t.modifier?(e.push(", "),ra(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function _v(e,t){const{helper:o,needIndent:n}=e;e.push(`${o("normalize")}([`),e.indent(n());const a=t.items.length;for(let s=0;s1){e.push(`${o("plural")}([`),e.indent(n());const a=t.cases.length;for(let s=0;s{const o=Dp(t.mode)?t.mode:"normal",n=Dp(t.filename)?t.filename:"message.intl";t.sourceMap;const a=t.breakLineCode!=null?t.breakLineCode:o==="arrow"?";":` +`,s=t.needIndent?t.needIndent:o!=="arrow",r=e.helpers||[],i=$v(e,{filename:n,breakLineCode:a,needIndent:s});i.push(o==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),i.indent(s),r.length>0&&(i.push(`const { ${Bp(r.map(u=>`${u}: _${u}`),", ")} } = ctx`),i.newline()),i.push("return "),ra(i,e),i.deindent(s),i.push("}"),delete e.helpers;const{code:l,map:c}=i.context();return{ast:e,code:l,map:c?c.toJSON():void 0}};function xv(e,t={}){const o=Op({},t),n=!!o.jit,a=!!o.minify,s=o.optimize==null?!0:o.optimize,i=dv(o).parse(e);return n?(s&&hv(i),a&&sa(i),{ast:i,code:""}):(fv(i,o),kv(i,o))}/*! * core-base v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */function N0(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Bo().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Bo().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Bo().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function ko(e){return We(e)&&vi(e)===0&&(ro(e,"b")||ro(e,"body"))}const lp=["b","body"];function R0(e){return tn(e,lp)}const cp=["c","cases"];function M0(e){return tn(e,cp,[])}const up=["s","static"];function F0(e){return tn(e,up)}const pp=["i","items"];function I0(e){return tn(e,pp,[])}const dp=["t","type"];function vi(e){return tn(e,dp)}const gp=["v","value"];function Xs(e,t){const o=tn(e,gp);if(o!=null)return o;throw Fa(t)}const fp=["m","modifier"];function O0(e){return tn(e,fp)}const hp=["k","key"];function D0(e){const t=tn(e,hp);if(t)return t;throw Fa(6)}function tn(e,t,o){for(let n=0;n{r===void 0?r=i:r+=i},g[1]=()=>{r!==void 0&&(t.push(r),r=void 0)},g[2]=()=>{g[0](),a++},g[3]=()=>{if(a>0)a--,n=4,g[0]();else{if(a=0,r===void 0||(r=U0(r),r===!1))return!1;g[1]()}};function S(){const v=e[o+1];if(n===5&&v==="'"||n===6&&v==='"')return o++,i="\\"+v,g[0](),!0}for(;n!==null;)if(o++,s=e[o],!(s==="\\"&&S())){if(l=z0(s),p=on[n],c=p[l]||p.l||8,c===8||(n=c[0],c[1]!==void 0&&(u=g[c[1]],u&&(i=s,u()===!1))))return;if(n===7)return t}}const bp=new Map;function K0(e,t){return We(e)?e[t]:null}function H0(e,t){if(!We(e))return null;let o=bp.get(t);if(o||(o=V0(t),o&&bp.set(t,o)),!o)return null;const n=o.length;let a=e,s=0;for(;se,W0=e=>"",Y0="text",X0=e=>e.length===0?"":t0(e),Z0=e0;function $p(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function J0(e){const t=$t(e.pluralIndex)?e.pluralIndex:-1;return e.named&&($t(e.named.count)||$t(e.named.n))?$t(e.named.count)?e.named.count:$t(e.named.n)?e.named.n:t:t}function Q0(e,t){t.count||(t.count=e),t.n||(t.n=e)}function ev(e={}){const t=e.locale,o=J0(e),n=We(e.pluralRules)&&ke(t)&&ct(e.pluralRules[t])?e.pluralRules[t]:$p,a=We(e.pluralRules)&&ke(t)&&ct(e.pluralRules[t])?$p:void 0,s=$=>$[n(o,$.length,a)],r=e.list||[],i=$=>r[$],l=e.named||ot();$t(e.pluralIndex)&&Q0(o,l);const c=$=>l[$];function u($){const f=ct(e.messages)?e.messages($):We(e.messages)?e.messages[$]:!1;return f||(e.parent?e.parent.message($):W0)}const p=$=>e.modifiers?e.modifiers[$]:q0,g=Be(e.processor)&&ct(e.processor.normalize)?e.processor.normalize:X0,S=Be(e.processor)&&ct(e.processor.interpolate)?e.processor.interpolate:Z0,v=Be(e.processor)&&ke(e.processor.type)?e.processor.type:Y0,_={list:i,named:c,plural:s,linked:($,...f)=>{const[m,k]=f;let h="text",P="";f.length===1?We(m)?(P=m.modifier||P,h=m.type||h):ke(m)&&(P=m||P):f.length===2&&(ke(m)&&(P=m||P),ke(k)&&(h=k||h));const d=u($)(_),C=h==="vnode"&&pt(d)&&P?d[0]:d;return P?p(P)(C,h):C},message:u,type:v,interpolate:S,normalize:g,values:Et(ot(),r,l)};return _}let Ia=null;function tv(e){Ia=e}function ov(e,t,o){Ia&&Ia.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:o})}const nv=av("function:translate");function av(e){return t=>Ia&&Ia.emit(e,t)}const sv=yi.__EXTEND_POINT__,bn=Hs(sv),rv={FALLBACK_TO_TRANSLATE:bn(),CANNOT_FORMAT_NUMBER:bn(),FALLBACK_TO_NUMBER_FORMAT:bn(),CANNOT_FORMAT_DATE:bn(),FALLBACK_TO_DATE_FORMAT:bn(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:bn(),__EXTEND_POINT__:bn()},yp=Oe.__EXTEND_POINT__,$n=Hs(yp),lo={INVALID_ARGUMENT:yp,INVALID_DATE_ARGUMENT:$n(),INVALID_ISO_DATE_ARGUMENT:$n(),NOT_SUPPORT_NON_STRING_MESSAGE:$n(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:$n(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:$n(),NOT_SUPPORT_LOCALE_TYPE:$n(),__EXTEND_POINT__:$n()};function xo(e){return Hn(e,null,void 0)}function wi(e,t){return t.locale!=null?_p(t.locale):_p(e.locale)}let ki;function _p(e){if(ke(e))return e;if(ct(e)){if(e.resolvedOnce&&ki!=null)return ki;if(e.constructor.name==="Function"){const t=e();if(Q_(t))throw xo(lo.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return ki=t}else throw xo(lo.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw xo(lo.NOT_SUPPORT_LOCALE_TYPE)}function iv(e,t,o){return[...new Set([o,...pt(t)?t:We(t)?Object.keys(t):ke(t)?[t]:[o]])]}function vp(e,t,o){const n=ke(o)?o:Yn,a=e;a.__localeChainCache||(a.__localeChainCache=new Map);let s=a.__localeChainCache.get(n);if(!s){s=[];let r=[o];for(;pt(r);)r=wp(s,r,t);const i=pt(t)||!Be(t)?t:t.default?t.default:null;r=ke(i)?[i]:i,pt(r)&&wp(s,r,!1),a.__localeChainCache.set(n,s)}return s}function wp(e,t,o){let n=!0;for(let a=0;a`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function pv(){return{upper:(e,t)=>t==="text"&&ke(e)?e.toUpperCase():t==="vnode"&&We(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&ke(e)?e.toLowerCase():t==="vnode"&&We(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&ke(e)?xp(e):t==="vnode"&&We(e)&&"__v_isVNode"in e?xp(e.children):e}}let Lp;function Ap(e){Lp=e}let Sp;function dv(e){Sp=e}let Pp;function gv(e){Pp=e}let Cp=null;const fv=e=>{Cp=e},hv=()=>Cp;let Ep=null;const Tp=e=>{Ep=e},mv=()=>Ep;let Np=0;function bv(e={}){const t=ct(e.onWarn)?e.onWarn:H_,o=ke(e.version)?e.version:uv,n=ke(e.locale)||ct(e.locale)?e.locale:Yn,a=ct(n)?Yn:n,s=pt(e.fallbackLocale)||Be(e.fallbackLocale)||ke(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:a,r=Be(e.messages)?e.messages:xi(a),i=Be(e.datetimeFormats)?e.datetimeFormats:xi(a),l=Be(e.numberFormats)?e.numberFormats:xi(a),c=Et(ot(),e.modifiers,pv()),u=e.pluralRules||ot(),p=ct(e.missing)?e.missing:null,g=Ke(e.missingWarn)||Qo(e.missingWarn)?e.missingWarn:!0,S=Ke(e.fallbackWarn)||Qo(e.fallbackWarn)?e.fallbackWarn:!0,v=!!e.fallbackFormat,b=!!e.unresolving,_=ct(e.postTranslation)?e.postTranslation:null,$=Be(e.processor)?e.processor:null,f=Ke(e.warnHtmlMessage)?e.warnHtmlMessage:!0,m=!!e.escapeParameter,k=ct(e.messageCompiler)?e.messageCompiler:Lp,h=ct(e.messageResolver)?e.messageResolver:Sp||K0,P=ct(e.localeFallbacker)?e.localeFallbacker:Pp||iv,d=We(e.fallbackContext)?e.fallbackContext:void 0,C=e,A=We(C.__datetimeFormatters)?C.__datetimeFormatters:new Map,B=We(C.__numberFormatters)?C.__numberFormatters:new Map,V=We(C.__meta)?C.__meta:{};Np++;const J={version:o,cid:Np,locale:n,fallbackLocale:s,messages:r,modifiers:c,pluralRules:u,missing:p,missingWarn:g,fallbackWarn:S,fallbackFormat:v,unresolving:b,postTranslation:_,processor:$,warnHtmlMessage:f,escapeParameter:m,messageCompiler:k,messageResolver:h,localeFallbacker:P,fallbackContext:d,onWarn:t,__meta:V};return J.datetimeFormats=i,J.numberFormats=l,J.__datetimeFormatters=A,J.__numberFormatters=B,__INTLIFY_PROD_DEVTOOLS__&&ov(J,o,V),J}const xi=e=>({[e]:ot()});function Li(e,t,o,n,a){const{missing:s,onWarn:r}=e;if(s!==null){const i=s(e,o,t,a);return ke(i)?i:t}else return t}function Oa(e,t,o){const n=e;n.__localeChainCache=new Map,e.localeFallbacker(e,o,t)}function $v(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function yv(e,t){const o=t.indexOf(e);if(o===-1)return!1;for(let n=o+1;n_v(o,e)}function _v(e,t){const o=R0(t);if(o==null)throw Fa(0);if(vi(o)===1){const s=M0(o);return e.plural(s.reduce((r,i)=>[...r,Rp(e,i)],[]))}else return Rp(e,o)}function Rp(e,t){const o=F0(t);if(o!=null)return e.type==="text"?o:e.normalize([o]);{const n=I0(t).reduce((a,s)=>[...a,Si(e,s)],[]);return e.normalize(n)}}function Si(e,t){const o=vi(t);switch(o){case 3:return Xs(t,o);case 9:return Xs(t,o);case 4:{const n=t;if(ro(n,"k")&&n.k)return e.interpolate(e.named(n.k));if(ro(n,"key")&&n.key)return e.interpolate(e.named(n.key));throw Fa(o)}case 5:{const n=t;if(ro(n,"i")&&$t(n.i))return e.interpolate(e.list(n.i));if(ro(n,"index")&&$t(n.index))return e.interpolate(e.list(n.index));throw Fa(o)}case 6:{const n=t,a=O0(n),s=D0(n);return e.linked(Si(e,s),a?Si(e,a):void 0,e.type)}case 7:return Xs(t,o);case 8:return Xs(t,o);default:throw new Error(`unhandled node on format message part: ${o}`)}}const Mp=e=>e;let Xn=ot();function Fp(e,t={}){let o=!1;const n=t.onError||l0;return t.onError=a=>{o=!0,n(a)},{...T0(e,t),detectError:o}}const vv=(e,t)=>{if(!ke(e))throw xo(lo.NOT_SUPPORT_NON_STRING_MESSAGE);{Ke(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||Mp)(e),a=Xn[n];if(a)return a;const{code:s,detectError:r}=Fp(e,t),i=new Function(`return ${s}`)();return r?i:Xn[n]=i}};function wv(e,t){if(__INTLIFY_JIT_COMPILATION__&&!__INTLIFY_DROP_MESSAGE_COMPILER__&&ke(e)){Ke(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||Mp)(e),a=Xn[n];if(a)return a;const{ast:s,detectError:r}=Fp(e,{...t,location:!1,jit:!0}),i=Ai(s);return r?i:Xn[n]=i}else{const o=e.cacheKey;if(o){const n=Xn[o];return n||(Xn[o]=Ai(e))}else return Ai(e)}}const Ip=()=>"",Zt=e=>ct(e);function Op(e,...t){const{fallbackFormat:o,postTranslation:n,unresolving:a,messageCompiler:s,fallbackLocale:r,messages:i}=e,[l,c]=Pi(...t),u=Ke(c.missingWarn)?c.missingWarn:e.missingWarn,p=Ke(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,g=Ke(c.escapeParameter)?c.escapeParameter:e.escapeParameter,S=!!c.resolvedMessage,v=ke(c.default)||Ke(c.default)?Ke(c.default)?s?l:()=>l:c.default:o?s?l:()=>l:"",b=o||v!=="",_=wi(e,c);g&&kv(c);let[$,f,m]=S?[l,_,i[_]||ot()]:Dp(e,l,_,r,p,u),k=$,h=l;if(!S&&!(ke(k)||ko(k)||Zt(k))&&b&&(k=v,h=k),!S&&(!(ke(k)||ko(k)||Zt(k))||!ke(f)))return a?Zs:l;let P=!1;const d=()=>{P=!0},C=Zt(k)?k:Gp(e,l,f,k,h,d);if(P)return k;const A=Av(e,f,m,c),B=ev(A),V=xv(e,C,B);let J=n?n(V,l):V;if(g&&ke(J)&&(J=Z_(J)),__INTLIFY_PROD_DEVTOOLS__){const z={timestamp:Date.now(),key:ke(l)?l:Zt(k)?k.key:"",locale:f||(Zt(k)?k.locale:""),format:ke(k)?k:Zt(k)?k.source:"",message:J};z.meta=Et({},e.__meta,hv()||{}),nv(z)}return J}function kv(e){pt(e.list)?e.list=e.list.map(t=>ke(t)?Zu(t):t):We(e.named)&&Object.keys(e.named).forEach(t=>{ke(e.named[t])&&(e.named[t]=Zu(e.named[t]))})}function Dp(e,t,o,n,a,s){const{messages:r,onWarn:i,messageResolver:l,localeFallbacker:c}=e,u=c(e,n,o);let p=ot(),g,S=null;const v="translate";for(let b=0;bn;return c.locale=o,c.key=t,c}const l=r(n,Lv(e,o,a,n,i,s));return l.locale=o,l.key=t,l.source=n,l}function xv(e,t,o){return t(o)}function Pi(...e){const[t,o,n]=e,a=ot();if(!ke(t)&&!$t(t)&&!Zt(t)&&!ko(t))throw xo(lo.INVALID_ARGUMENT);const s=$t(t)?String(t):(Zt(t),t);return $t(o)?a.plural=o:ke(o)?a.default=o:Be(o)&&!Ks(o)?a.named=o:pt(o)&&(a.list=o),$t(n)?a.plural=n:ke(n)?a.default=n:Be(n)&&Et(a,n),[s,a]}function Lv(e,t,o,n,a,s){return{locale:t,key:o,warnHtmlMessage:a,onError:r=>{throw s&&s(r),r},onCacheKey:r=>q_(t,o,r)}}function Av(e,t,o,n){const{modifiers:a,pluralRules:s,messageResolver:r,fallbackLocale:i,fallbackWarn:l,missingWarn:c,fallbackContext:u}=e,g={locale:t,modifiers:a,pluralRules:s,messages:S=>{let v=r(o,S);if(v==null&&u){const[,,b]=Dp(u,S,t,i,l,c);v=r(b,S)}if(ke(v)||ko(v)){let b=!1;const $=Gp(e,S,t,v,S,()=>{b=!0});return b?Ip:$}else return Zt(v)?v:Ip}};return e.processor&&(g.processor=e.processor),n.list&&(g.list=n.list),n.named&&(g.named=n.named),$t(n.plural)&&(g.pluralIndex=n.plural),g}function Bp(e,...t){const{datetimeFormats:o,unresolving:n,fallbackLocale:a,onWarn:s,localeFallbacker:r}=e,{__datetimeFormatters:i}=e,[l,c,u,p]=Ci(...t),g=Ke(u.missingWarn)?u.missingWarn:e.missingWarn;Ke(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const S=!!u.part,v=wi(e,u),b=r(e,a,v);if(!ke(l)||l==="")return new Intl.DateTimeFormat(v,p).format(c);let _={},$,f=null;const m="datetime format";for(let P=0;P{jp.includes(l)?r[l]=o[l]:s[l]=o[l]}),ke(n)?s.locale=n:Be(n)&&(r=n),Be(a)&&(r=a),[s.key||"",i,s,r]}function zp(e,t,o){const n=e;for(const a in o){const s=`${t}__${a}`;n.__datetimeFormatters.has(s)&&n.__datetimeFormatters.delete(s)}}function Up(e,...t){const{numberFormats:o,unresolving:n,fallbackLocale:a,onWarn:s,localeFallbacker:r}=e,{__numberFormatters:i}=e,[l,c,u,p]=Ei(...t),g=Ke(u.missingWarn)?u.missingWarn:e.missingWarn;Ke(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const S=!!u.part,v=wi(e,u),b=r(e,a,v);if(!ke(l)||l==="")return new Intl.NumberFormat(v,p).format(c);let _={},$,f=null;const m="number format";for(let P=0;P{Vp.includes(l)?r[l]=o[l]:s[l]=o[l]}),ke(n)?s.locale=n:Be(n)&&(r=n),Be(a)&&(r=a),[s.key||"",i,s,r]}function Kp(e,t,o){const n=e;for(const a in o){const s=`${t}__${a}`;n.__numberFormatters.has(s)&&n.__numberFormatters.delete(s)}}N0();/*! + */function Lv(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Xo().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Xo().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Xo().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function So(e){return Xe(e)&&Ui(e)===0&&(go(e,"b")||go(e,"body"))}const Up=["b","body"];function Av(e){return hn(e,Up)}const Vp=["c","cases"];function Sv(e){return hn(e,Vp,[])}const Kp=["s","static"];function Pv(e){return hn(e,Kp)}const Hp=["i","items"];function Cv(e){return hn(e,Hp,[])}const qp=["t","type"];function Ui(e){return hn(e,qp)}const Wp=["v","value"];function hr(e,t){const o=hn(e,Wp);if(o!=null)return o;throw ts(t)}const Yp=["m","modifier"];function Ev(e){return hn(e,Yp)}const Xp=["k","key"];function Tv(e){const t=hn(e,Xp);if(t)return t;throw ts(6)}function hn(e,t,o){for(let n=0;n{r===void 0?r=i:r+=i},g[1]=()=>{r!==void 0&&(t.push(r),r=void 0)},g[2]=()=>{g[0](),a++},g[3]=()=>{if(a>0)a--,n=4,g[0]();else{if(a=0,r===void 0||(r=Iv(r),r===!1))return!1;g[1]()}};function A(){const w=e[o+1];if(n===5&&w==="'"||n===6&&w==='"')return o++,i="\\"+w,g[0](),!0}for(;n!==null;)if(o++,s=e[o],!(s==="\\"&&A())){if(l=Fv(s),p=mn[n],c=p[l]||p.l||8,c===8||(n=c[0],c[1]!==void 0&&(u=g[c[1]],u&&(i=s,u()===!1))))return;if(n===7)return t}}const Jp=new Map;function Dv(e,t){return Xe(e)?e[t]:null}function Bv(e,t){if(!Xe(e))return null;let o=Jp.get(t);if(o||(o=Ov(t),o&&Jp.set(t,o)),!o)return null;const n=o.length;let a=e,s=0;for(;se,jv=e=>"",zv="text",Uv=e=>e.length===0?"":W0(e),Vv=q0;function Qp(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function Kv(e){const t=$t(e.pluralIndex)?e.pluralIndex:-1;return e.named&&($t(e.named.count)||$t(e.named.n))?$t(e.named.count)?e.named.count:$t(e.named.n)?e.named.n:t:t}function Hv(e,t){t.count||(t.count=e),t.n||(t.n=e)}function qv(e={}){const t=e.locale,o=Kv(e),n=Xe(e.pluralRules)&&Le(t)&&it(e.pluralRules[t])?e.pluralRules[t]:Qp,a=Xe(e.pluralRules)&&Le(t)&&it(e.pluralRules[t])?Qp:void 0,s=$=>$[n(o,$.length,a)],r=e.list||[],i=$=>r[$],l=e.named||nt();$t(e.pluralIndex)&&Hv(o,l);const c=$=>l[$];function u($){const m=it(e.messages)?e.messages($):Xe(e.messages)?e.messages[$]:!1;return m||(e.parent?e.parent.message($):jv)}const p=$=>e.modifiers?e.modifiers[$]:Gv,g=je(e.processor)&&it(e.processor.normalize)?e.processor.normalize:Uv,A=je(e.processor)&&it(e.processor.interpolate)?e.processor.interpolate:Vv,w=je(e.processor)&&Le(e.processor.type)?e.processor.type:zv,v={list:i,named:c,plural:s,linked:($,...m)=>{const[b,k]=m;let E="text",x="";m.length===1?Xe(b)?(x=b.modifier||x,E=b.type||E):Le(b)&&(x=b||x):m.length===2&&(Le(b)&&(x=b||x),Le(k)&&(E=k||E));const f=u($)(v),d=E==="vnode"&&dt(f)&&x?f[0]:f;return x?p(x)(d,E):d},message:u,type:w,interpolate:A,normalize:g,values:Tt(nt(),r,l)};return v}let os=null;function Wv(e){os=e}function Yv(e,t,o){os&&os.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:o})}const Xv=Zv("function:translate");function Zv(e){return t=>os&&os.emit(e,t)}const Jv=ji.__EXTEND_POINT__,Nn=pr(Jv),Qv={FALLBACK_TO_TRANSLATE:Nn(),CANNOT_FORMAT_NUMBER:Nn(),FALLBACK_TO_NUMBER_FORMAT:Nn(),CANNOT_FORMAT_DATE:Nn(),FALLBACK_TO_DATE_FORMAT:Nn(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:Nn(),__EXTEND_POINT__:Nn()},ed=Oe.__EXTEND_POINT__,Rn=pr(ed),ho={INVALID_ARGUMENT:ed,INVALID_DATE_ARGUMENT:Rn(),INVALID_ISO_DATE_ARGUMENT:Rn(),NOT_SUPPORT_NON_STRING_MESSAGE:Rn(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:Rn(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:Rn(),NOT_SUPPORT_LOCALE_TYPE:Rn(),__EXTEND_POINT__:Rn()};function Po(e){return aa(e,null,void 0)}function Vi(e,t){return t.locale!=null?td(t.locale):td(e.locale)}let Ki;function td(e){if(Le(e))return e;if(it(e)){if(e.resolvedOnce&&Ki!=null)return Ki;if(e.constructor.name==="Function"){const t=e();if(H0(t))throw Po(ho.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return Ki=t}else throw Po(ho.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw Po(ho.NOT_SUPPORT_LOCALE_TYPE)}function e1(e,t,o){return[...new Set([o,...dt(t)?t:Xe(t)?Object.keys(t):Le(t)?[t]:[o]])]}function od(e,t,o){const n=Le(o)?o:ia,a=e;a.__localeChainCache||(a.__localeChainCache=new Map);let s=a.__localeChainCache.get(n);if(!s){s=[];let r=[o];for(;dt(r);)r=nd(s,r,t);const i=dt(t)||!je(t)?t:t.default?t.default:null;r=Le(i)?[i]:i,dt(r)&&nd(s,r,!1),a.__localeChainCache.set(n,s)}return s}function nd(e,t,o){let n=!0;for(let a=0;a`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function a1(){return{upper:(e,t)=>t==="text"&&Le(e)?e.toUpperCase():t==="vnode"&&Xe(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&Le(e)?e.toLowerCase():t==="vnode"&&Xe(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&Le(e)?sd(e):t==="vnode"&&Xe(e)&&"__v_isVNode"in e?sd(e.children):e}}let rd;function id(e){rd=e}let ld;function s1(e){ld=e}let cd;function r1(e){cd=e}let ud=null;const i1=e=>{ud=e},l1=()=>ud;let pd=null;const dd=e=>{pd=e},c1=()=>pd;let gd=0;function u1(e={}){const t=it(e.onWarn)?e.onWarn:B0,o=Le(e.version)?e.version:n1,n=Le(e.locale)||it(e.locale)?e.locale:ia,a=it(n)?ia:n,s=dt(e.fallbackLocale)||je(e.fallbackLocale)||Le(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:a,r=je(e.messages)?e.messages:Hi(a),i=je(e.datetimeFormats)?e.datetimeFormats:Hi(a),l=je(e.numberFormats)?e.numberFormats:Hi(a),c=Tt(nt(),e.modifiers,a1()),u=e.pluralRules||nt(),p=it(e.missing)?e.missing:null,g=Ue(e.missingWarn)||gn(e.missingWarn)?e.missingWarn:!0,A=Ue(e.fallbackWarn)||gn(e.fallbackWarn)?e.fallbackWarn:!0,w=!!e.fallbackFormat,h=!!e.unresolving,v=it(e.postTranslation)?e.postTranslation:null,$=je(e.processor)?e.processor:null,m=Ue(e.warnHtmlMessage)?e.warnHtmlMessage:!0,b=!!e.escapeParameter,k=it(e.messageCompiler)?e.messageCompiler:rd,E=it(e.messageResolver)?e.messageResolver:ld||Dv,x=it(e.localeFallbacker)?e.localeFallbacker:cd||e1,f=Xe(e.fallbackContext)?e.fallbackContext:void 0,d=e,y=Xe(d.__datetimeFormatters)?d.__datetimeFormatters:new Map,N=Xe(d.__numberFormatters)?d.__numberFormatters:new Map,B=Xe(d.__meta)?d.__meta:{};gd++;const V={version:o,cid:gd,locale:n,fallbackLocale:s,messages:r,modifiers:c,pluralRules:u,missing:p,missingWarn:g,fallbackWarn:A,fallbackFormat:w,unresolving:h,postTranslation:v,processor:$,warnHtmlMessage:m,escapeParameter:b,messageCompiler:k,messageResolver:E,localeFallbacker:x,fallbackContext:f,onWarn:t,__meta:B};return V.datetimeFormats=i,V.numberFormats=l,V.__datetimeFormatters=y,V.__numberFormatters=N,__INTLIFY_PROD_DEVTOOLS__&&Yv(V,o,B),V}const Hi=e=>({[e]:nt()});function qi(e,t,o,n,a){const{missing:s,onWarn:r}=e;if(s!==null){const i=s(e,o,t,a);return Le(i)?i:t}else return t}function ns(e,t,o){const n=e;n.__localeChainCache=new Map,e.localeFallbacker(e,o,t)}function p1(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function d1(e,t){const o=t.indexOf(e);if(o===-1)return!1;for(let n=o+1;ng1(o,e)}function g1(e,t){const o=Av(t);if(o==null)throw ts(0);if(Ui(o)===1){const s=Sv(o);return e.plural(s.reduce((r,i)=>[...r,fd(e,i)],[]))}else return fd(e,o)}function fd(e,t){const o=Pv(t);if(o!=null)return e.type==="text"?o:e.normalize([o]);{const n=Cv(t).reduce((a,s)=>[...a,Yi(e,s)],[]);return e.normalize(n)}}function Yi(e,t){const o=Ui(t);switch(o){case 3:return hr(t,o);case 9:return hr(t,o);case 4:{const n=t;if(go(n,"k")&&n.k)return e.interpolate(e.named(n.k));if(go(n,"key")&&n.key)return e.interpolate(e.named(n.key));throw ts(o)}case 5:{const n=t;if(go(n,"i")&&$t(n.i))return e.interpolate(e.list(n.i));if(go(n,"index")&&$t(n.index))return e.interpolate(e.list(n.index));throw ts(o)}case 6:{const n=t,a=Ev(n),s=Tv(n);return e.linked(Yi(e,s),a?Yi(e,a):void 0,e.type)}case 7:return hr(t,o);case 8:return hr(t,o);default:throw new Error(`unhandled node on format message part: ${o}`)}}const hd=e=>e;let la=nt();function md(e,t={}){let o=!1;const n=t.onError||tv;return t.onError=a=>{o=!0,n(a)},{...xv(e,t),detectError:o}}const f1=(e,t)=>{if(!Le(e))throw Po(ho.NOT_SUPPORT_NON_STRING_MESSAGE);{Ue(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||hd)(e),a=la[n];if(a)return a;const{code:s,detectError:r}=md(e,t),i=new Function(`return ${s}`)();return r?i:la[n]=i}};function h1(e,t){if(__INTLIFY_JIT_COMPILATION__&&!__INTLIFY_DROP_MESSAGE_COMPILER__&&Le(e)){Ue(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||hd)(e),a=la[n];if(a)return a;const{ast:s,detectError:r}=md(e,{...t,location:!1,jit:!0}),i=Wi(s);return r?i:la[n]=i}else{const o=e.cacheKey;if(o){const n=la[o];return n||(la[o]=Wi(e))}else return Wi(e)}}const bd=()=>"",so=e=>it(e);function $d(e,...t){const{fallbackFormat:o,postTranslation:n,unresolving:a,messageCompiler:s,fallbackLocale:r,messages:i}=e,[l,c]=Xi(...t),u=Ue(c.missingWarn)?c.missingWarn:e.missingWarn,p=Ue(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,g=Ue(c.escapeParameter)?c.escapeParameter:e.escapeParameter,A=!!c.resolvedMessage,w=Le(c.default)||Ue(c.default)?Ue(c.default)?s?l:()=>l:c.default:o?s?l:()=>l:"",h=o||w!=="",v=Vi(e,c);g&&m1(c);let[$,m,b]=A?[l,v,i[v]||nt()]:yd(e,l,v,r,p,u),k=$,E=l;if(!A&&!(Le(k)||So(k)||so(k))&&h&&(k=w,E=k),!A&&(!(Le(k)||So(k)||so(k))||!Le(m)))return a?mr:l;let x=!1;const f=()=>{x=!0},d=so(k)?k:_d(e,l,m,k,E,f);if(x)return k;const y=y1(e,m,b,c),N=qv(y),B=b1(e,d,N);let V=n?n(B,l):B;if(g&&Le(V)&&(V=V0(V)),__INTLIFY_PROD_DEVTOOLS__){const j={timestamp:Date.now(),key:Le(l)?l:so(k)?k.key:"",locale:m||(so(k)?k.locale:""),format:Le(k)?k:so(k)?k.source:"",message:V};j.meta=Tt({},e.__meta,l1()||{}),Xv(j)}return V}function m1(e){dt(e.list)?e.list=e.list.map(t=>Le(t)?Np(t):t):Xe(e.named)&&Object.keys(e.named).forEach(t=>{Le(e.named[t])&&(e.named[t]=Np(e.named[t]))})}function yd(e,t,o,n,a,s){const{messages:r,onWarn:i,messageResolver:l,localeFallbacker:c}=e,u=c(e,n,o);let p=nt(),g,A=null;const w="translate";for(let h=0;hn;return c.locale=o,c.key=t,c}const l=r(n,$1(e,o,a,n,i,s));return l.locale=o,l.key=t,l.source=n,l}function b1(e,t,o){return t(o)}function Xi(...e){const[t,o,n]=e,a=nt();if(!Le(t)&&!$t(t)&&!so(t)&&!So(t))throw Po(ho.INVALID_ARGUMENT);const s=$t(t)?String(t):(so(t),t);return $t(o)?a.plural=o:Le(o)?a.default=o:je(o)&&!ur(o)?a.named=o:dt(o)&&(a.list=o),$t(n)?a.plural=n:Le(n)?a.default=n:je(n)&&Tt(a,n),[s,a]}function $1(e,t,o,n,a,s){return{locale:t,key:o,warnHtmlMessage:a,onError:r=>{throw s&&s(r),r},onCacheKey:r=>G0(t,o,r)}}function y1(e,t,o,n){const{modifiers:a,pluralRules:s,messageResolver:r,fallbackLocale:i,fallbackWarn:l,missingWarn:c,fallbackContext:u}=e,g={locale:t,modifiers:a,pluralRules:s,messages:A=>{let w=r(o,A);if(w==null&&u){const[,,h]=yd(u,A,t,i,l,c);w=r(h,A)}if(Le(w)||So(w)){let h=!1;const $=_d(e,A,t,w,A,()=>{h=!0});return h?bd:$}else return so(w)?w:bd}};return e.processor&&(g.processor=e.processor),n.list&&(g.list=n.list),n.named&&(g.named=n.named),$t(n.plural)&&(g.pluralIndex=n.plural),g}function vd(e,...t){const{datetimeFormats:o,unresolving:n,fallbackLocale:a,onWarn:s,localeFallbacker:r}=e,{__datetimeFormatters:i}=e,[l,c,u,p]=Zi(...t),g=Ue(u.missingWarn)?u.missingWarn:e.missingWarn;Ue(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const A=!!u.part,w=Vi(e,u),h=r(e,a,w);if(!Le(l)||l==="")return new Intl.DateTimeFormat(w,p).format(c);let v={},$,m=null;const b="datetime format";for(let x=0;x{wd.includes(l)?r[l]=o[l]:s[l]=o[l]}),Le(n)?s.locale=n:je(n)&&(r=n),je(a)&&(r=a),[s.key||"",i,s,r]}function kd(e,t,o){const n=e;for(const a in o){const s=`${t}__${a}`;n.__datetimeFormatters.has(s)&&n.__datetimeFormatters.delete(s)}}function xd(e,...t){const{numberFormats:o,unresolving:n,fallbackLocale:a,onWarn:s,localeFallbacker:r}=e,{__numberFormatters:i}=e,[l,c,u,p]=Ji(...t),g=Ue(u.missingWarn)?u.missingWarn:e.missingWarn;Ue(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const A=!!u.part,w=Vi(e,u),h=r(e,a,w);if(!Le(l)||l==="")return new Intl.NumberFormat(w,p).format(c);let v={},$,m=null;const b="number format";for(let x=0;x{Ld.includes(l)?r[l]=o[l]:s[l]=o[l]}),Le(n)?s.locale=n:je(n)&&(r=n),je(a)&&(r=a),[s.key||"",i,s,r]}function Ad(e,t,o){const n=e;for(const a in o){const s=`${t}__${a}`;n.__numberFormatters.has(s)&&n.__numberFormatters.delete(s)}}Lv();/*! * vue-i18n v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */const Sv="9.14.5";function Pv(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(Bo().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(Bo().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Bo().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Bo().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Bo().__INTLIFY_PROD_DEVTOOLS__=!1)}const Cv=rv.__EXTEND_POINT__,zo=Hs(Cv);zo(),zo(),zo(),zo(),zo(),zo(),zo(),zo(),zo();const Hp=lo.__EXTEND_POINT__,zt=Hs(Hp),wt={UNEXPECTED_RETURN_TYPE:Hp,INVALID_ARGUMENT:zt(),MUST_BE_CALL_SETUP_TOP:zt(),NOT_INSTALLED:zt(),NOT_AVAILABLE_IN_LEGACY_MODE:zt(),REQUIRED_VALUE:zt(),INVALID_VALUE:zt(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:zt(),NOT_INSTALLED_WITH_PROVIDE:zt(),UNEXPECTED_ERROR:zt(),NOT_COMPATIBLE_LEGACY_VUE_I18N:zt(),BRIDGE_SUPPORT_VUE_2_ONLY:zt(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:zt(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:zt(),__EXTEND_POINT__:zt()};function Lt(e,...t){return Hn(e,null,void 0)}const Ti=Jo("__translateVNode"),Ni=Jo("__datetimeParts"),Ri=Jo("__numberParts"),qp=Jo("__setPluralRules"),Wp=Jo("__injectWithOption"),Mi=Jo("__dispose");function Da(e){if(!We(e)||ko(e))return e;for(const t in e)if(ro(e,t))if(!t.includes("."))We(e[t])&&Da(e[t]);else{const o=t.split("."),n=o.length-1;let a=e,s=!1;for(let r=0;r{if("locale"in i&&"resource"in i){const{locale:l,resource:c}=i;l?(r[l]=r[l]||ot(),Ws(c,r[l])):Ws(c,r)}else ke(i)&&Ws(JSON.parse(i),r)}),a==null&&s)for(const i in r)ro(r,i)&&Da(r[i]);return r}function Yp(e){return e.type}function Xp(e,t,o){let n=We(t.messages)?t.messages:ot();"__i18nGlobal"in o&&(n=Js(e.locale.value,{messages:n,__i18n:o.__i18nGlobal}));const a=Object.keys(n);a.length&&a.forEach(s=>{e.mergeLocaleMessage(s,n[s])});{if(We(t.datetimeFormats)){const s=Object.keys(t.datetimeFormats);s.length&&s.forEach(r=>{e.mergeDateTimeFormat(r,t.datetimeFormats[r])})}if(We(t.numberFormats)){const s=Object.keys(t.numberFormats);s.length&&s.forEach(r=>{e.mergeNumberFormat(r,t.numberFormats[r])})}}}function Zp(e){return tt(Aa,null,e,0)}const Jp="__INTLIFY_META__",Qp=()=>[],Ev=()=>!1;let ed=0;function td(e){return(t,o,n,a)=>e(o,n,wo()||void 0,a)}const Tv=()=>{const e=wo();let t=null;return e&&(t=Yp(e)[Jp])?{[Jp]:t}:null};function Fi(e={},t){const{__root:o,__injectWithOption:n}=e,a=o===void 0,s=e.flatJson,r=Vs?he:ba,i=!!e.translateExistCompatible;let l=Ke(e.inheritLocale)?e.inheritLocale:!0;const c=r(o&&l?o.locale.value:ke(e.locale)?e.locale:Yn),u=r(o&&l?o.fallbackLocale.value:ke(e.fallbackLocale)||pt(e.fallbackLocale)||Be(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),p=r(Js(c.value,e)),g=r(Be(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),S=r(Be(e.numberFormats)?e.numberFormats:{[c.value]:{}});let v=o?o.missingWarn:Ke(e.missingWarn)||Qo(e.missingWarn)?e.missingWarn:!0,b=o?o.fallbackWarn:Ke(e.fallbackWarn)||Qo(e.fallbackWarn)?e.fallbackWarn:!0,_=o?o.fallbackRoot:Ke(e.fallbackRoot)?e.fallbackRoot:!0,$=!!e.fallbackFormat,f=ct(e.missing)?e.missing:null,m=ct(e.missing)?td(e.missing):null,k=ct(e.postTranslation)?e.postTranslation:null,h=o?o.warnHtmlMessage:Ke(e.warnHtmlMessage)?e.warnHtmlMessage:!0,P=!!e.escapeParameter;const d=o?o.modifiers:Be(e.modifiers)?e.modifiers:{};let C=e.pluralRules||o&&o.pluralRules,A;A=(()=>{a&&Tp(null);const Z={version:Sv,locale:c.value,fallbackLocale:u.value,messages:p.value,modifiers:d,pluralRules:C,missing:m===null?void 0:m,missingWarn:v,fallbackWarn:b,fallbackFormat:$,unresolving:!0,postTranslation:k===null?void 0:k,warnHtmlMessage:h,escapeParameter:P,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};Z.datetimeFormats=g.value,Z.numberFormats=S.value,Z.__datetimeFormatters=Be(A)?A.__datetimeFormatters:void 0,Z.__numberFormatters=Be(A)?A.__numberFormatters:void 0;const le=bv(Z);return a&&Tp(le),le})(),Oa(A,c.value,u.value);function V(){return[c.value,u.value,p.value,g.value,S.value]}const J=oe({get:()=>c.value,set:Z=>{c.value=Z,A.locale=c.value}}),z=oe({get:()=>u.value,set:Z=>{u.value=Z,A.fallbackLocale=u.value,Oa(A,c.value,Z)}}),D=oe(()=>p.value),L=oe(()=>g.value),y=oe(()=>S.value);function R(){return ct(k)?k:null}function U(Z){k=Z,A.postTranslation=Z}function H(){return f}function Q(Z){Z!==null&&(m=td(Z)),f=Z,A.missing=m}const re=(Z,le,Ce,Te,qe,nt)=>{V();let Qe;try{__INTLIFY_PROD_DEVTOOLS__,a||(A.fallbackContext=o?mv():void 0),Qe=Z(A)}finally{__INTLIFY_PROD_DEVTOOLS__,a||(A.fallbackContext=void 0)}if(Ce!=="translate exists"&&$t(Qe)&&Qe===Zs||Ce==="translate exists"&&!Qe){const[K,se]=le();return o&&_?Te(o):qe(K)}else{if(nt(Qe))return Qe;throw Lt(wt.UNEXPECTED_RETURN_TYPE)}};function j(...Z){return re(le=>Reflect.apply(Op,null,[le,...Z]),()=>Pi(...Z),"translate",le=>Reflect.apply(le.t,le,[...Z]),le=>le,le=>ke(le))}function be(...Z){const[le,Ce,Te]=Z;if(Te&&!We(Te))throw Lt(wt.INVALID_ARGUMENT);return j(le,Ce,Et({resolvedMessage:!0},Te||{}))}function xe(...Z){return re(le=>Reflect.apply(Bp,null,[le,...Z]),()=>Ci(...Z),"datetime format",le=>Reflect.apply(le.d,le,[...Z]),()=>kp,le=>ke(le))}function fe(...Z){return re(le=>Reflect.apply(Up,null,[le,...Z]),()=>Ei(...Z),"number format",le=>Reflect.apply(le.n,le,[...Z]),()=>kp,le=>ke(le))}function we(Z){return Z.map(le=>ke(le)||$t(le)||Ke(le)?Zp(String(le)):le)}const ne={normalize:we,interpolate:Z=>Z,type:"vnode"};function te(...Z){return re(le=>{let Ce;const Te=le;try{Te.processor=ne,Ce=Reflect.apply(Op,null,[Te,...Z])}finally{Te.processor=null}return Ce},()=>Pi(...Z),"translate",le=>le[Ti](...Z),le=>[Zp(le)],le=>pt(le))}function de(...Z){return re(le=>Reflect.apply(Up,null,[le,...Z]),()=>Ei(...Z),"number format",le=>le[Ri](...Z),Qp,le=>ke(le)||pt(le))}function Se(...Z){return re(le=>Reflect.apply(Bp,null,[le,...Z]),()=>Ci(...Z),"datetime format",le=>le[Ni](...Z),Qp,le=>ke(le)||pt(le))}function T(Z){C=Z,A.pluralRules=C}function F(Z,le){return re(()=>{if(!Z)return!1;const Ce=ke(le)?le:c.value,Te=Y(Ce),qe=A.messageResolver(Te,Z);return i?qe!=null:ko(qe)||Zt(qe)||ke(qe)},()=>[Z],"translate exists",Ce=>Reflect.apply(Ce.te,Ce,[Z,le]),Ev,Ce=>Ke(Ce))}function I(Z){let le=null;const Ce=vp(A,u.value,c.value);for(let Te=0;Te{l&&(c.value=Z,A.locale=Z,Oa(A,c.value,u.value))}),Ie(o.fallbackLocale,Z=>{l&&(u.value=Z,A.fallbackLocale=Z,Oa(A,c.value,u.value))}));const ce={id:ed,locale:J,fallbackLocale:z,get inheritLocale(){return l},set inheritLocale(Z){l=Z,Z&&o&&(c.value=o.locale.value,u.value=o.fallbackLocale.value,Oa(A,c.value,u.value))},get availableLocales(){return Object.keys(p.value).sort()},messages:D,get modifiers(){return d},get pluralRules(){return C||{}},get isGlobal(){return a},get missingWarn(){return v},set missingWarn(Z){v=Z,A.missingWarn=v},get fallbackWarn(){return b},set fallbackWarn(Z){b=Z,A.fallbackWarn=b},get fallbackRoot(){return _},set fallbackRoot(Z){_=Z},get fallbackFormat(){return $},set fallbackFormat(Z){$=Z,A.fallbackFormat=$},get warnHtmlMessage(){return h},set warnHtmlMessage(Z){h=Z,A.warnHtmlMessage=Z},get escapeParameter(){return P},set escapeParameter(Z){P=Z,A.escapeParameter=Z},t:j,getLocaleMessage:Y,setLocaleMessage:O,mergeLocaleMessage:ue,getPostTranslationHandler:R,setPostTranslationHandler:U,getMissingHandler:H,setMissingHandler:Q,[qp]:T};return ce.datetimeFormats=L,ce.numberFormats=y,ce.rt=be,ce.te=F,ce.tm=W,ce.d=xe,ce.n=fe,ce.getDateTimeFormat=ee,ce.setDateTimeFormat=w,ce.mergeDateTimeFormat=x,ce.getNumberFormat=G,ce.setNumberFormat=X,ce.mergeNumberFormat=me,ce[Wp]=n,ce[Ti]=te,ce[Ni]=Se,ce[Ri]=de,ce}function Nv(e){const t=ke(e.locale)?e.locale:Yn,o=ke(e.fallbackLocale)||pt(e.fallbackLocale)||Be(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,n=ct(e.missing)?e.missing:void 0,a=Ke(e.silentTranslationWarn)||Qo(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,s=Ke(e.silentFallbackWarn)||Qo(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,r=Ke(e.fallbackRoot)?e.fallbackRoot:!0,i=!!e.formatFallbackMessages,l=Be(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=ct(e.postTranslation)?e.postTranslation:void 0,p=ke(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,g=!!e.escapeParameterHtml,S=Ke(e.sync)?e.sync:!0;let v=e.messages;if(Be(e.sharedMessages)){const P=e.sharedMessages;v=Object.keys(P).reduce((C,A)=>{const B=C[A]||(C[A]={});return Et(B,P[A]),C},v||{})}const{__i18n:b,__root:_,__injectWithOption:$}=e,f=e.datetimeFormats,m=e.numberFormats,k=e.flatJson,h=e.translateExistCompatible;return{locale:t,fallbackLocale:o,messages:v,flatJson:k,datetimeFormats:f,numberFormats:m,missing:n,missingWarn:a,fallbackWarn:s,fallbackRoot:r,fallbackFormat:i,modifiers:l,pluralRules:c,postTranslation:u,warnHtmlMessage:p,escapeParameter:g,messageResolver:e.messageResolver,inheritLocale:S,translateExistCompatible:h,__i18n:b,__root:_,__injectWithOption:$}}function Ii(e={},t){{const o=Fi(Nv(e)),{__extender:n}=e,a={id:o.id,get locale(){return o.locale.value},set locale(s){o.locale.value=s},get fallbackLocale(){return o.fallbackLocale.value},set fallbackLocale(s){o.fallbackLocale.value=s},get messages(){return o.messages.value},get datetimeFormats(){return o.datetimeFormats.value},get numberFormats(){return o.numberFormats.value},get availableLocales(){return o.availableLocales},get formatter(){return{interpolate(){return[]}}},set formatter(s){},get missing(){return o.getMissingHandler()},set missing(s){o.setMissingHandler(s)},get silentTranslationWarn(){return Ke(o.missingWarn)?!o.missingWarn:o.missingWarn},set silentTranslationWarn(s){o.missingWarn=Ke(s)?!s:s},get silentFallbackWarn(){return Ke(o.fallbackWarn)?!o.fallbackWarn:o.fallbackWarn},set silentFallbackWarn(s){o.fallbackWarn=Ke(s)?!s:s},get modifiers(){return o.modifiers},get formatFallbackMessages(){return o.fallbackFormat},set formatFallbackMessages(s){o.fallbackFormat=s},get postTranslation(){return o.getPostTranslationHandler()},set postTranslation(s){o.setPostTranslationHandler(s)},get sync(){return o.inheritLocale},set sync(s){o.inheritLocale=s},get warnHtmlInMessage(){return o.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(s){o.warnHtmlMessage=s!=="off"},get escapeParameterHtml(){return o.escapeParameter},set escapeParameterHtml(s){o.escapeParameter=s},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(s){},get pluralizationRules(){return o.pluralRules||{}},__composer:o,t(...s){const[r,i,l]=s,c={};let u=null,p=null;if(!ke(r))throw Lt(wt.INVALID_ARGUMENT);const g=r;return ke(i)?c.locale=i:pt(i)?u=i:Be(i)&&(p=i),pt(l)?u=l:Be(l)&&(p=l),Reflect.apply(o.t,o,[g,u||p||{},c])},rt(...s){return Reflect.apply(o.rt,o,[...s])},tc(...s){const[r,i,l]=s,c={plural:1};let u=null,p=null;if(!ke(r))throw Lt(wt.INVALID_ARGUMENT);const g=r;return ke(i)?c.locale=i:$t(i)?c.plural=i:pt(i)?u=i:Be(i)&&(p=i),ke(l)?c.locale=l:pt(l)?u=l:Be(l)&&(p=l),Reflect.apply(o.t,o,[g,u||p||{},c])},te(s,r){return o.te(s,r)},tm(s){return o.tm(s)},getLocaleMessage(s){return o.getLocaleMessage(s)},setLocaleMessage(s,r){o.setLocaleMessage(s,r)},mergeLocaleMessage(s,r){o.mergeLocaleMessage(s,r)},d(...s){return Reflect.apply(o.d,o,[...s])},getDateTimeFormat(s){return o.getDateTimeFormat(s)},setDateTimeFormat(s,r){o.setDateTimeFormat(s,r)},mergeDateTimeFormat(s,r){o.mergeDateTimeFormat(s,r)},n(...s){return Reflect.apply(o.n,o,[...s])},getNumberFormat(s){return o.getNumberFormat(s)},setNumberFormat(s,r){o.setNumberFormat(s,r)},mergeNumberFormat(s,r){o.mergeNumberFormat(s,r)},getChoiceIndex(s,r){return-1}};return a.__extender=n,a}}const Oi={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function Rv({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((n,a)=>[...n,...a.type===Ue?a.children:[a]],[]):t.reduce((o,n)=>{const a=e[n];return a&&(o[n]=a()),o},ot())}function od(e){return Ue}const nd=wa({name:"i18n-t",props:Et({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>$t(e)||!isNaN(e)}},Oi),setup(e,t){const{slots:o,attrs:n}=t,a=e.i18n||bt({useScope:e.scope,__useComponent:!0});return()=>{const s=Object.keys(o).filter(p=>p!=="_"),r=ot();e.locale&&(r.locale=e.locale),e.plural!==void 0&&(r.plural=ke(e.plural)?+e.plural:e.plural);const i=Rv(t,s),l=a[Ti](e.keypath,i,r),c=Et(ot(),n),u=ke(e.tag)||We(e.tag)?e.tag:od();return xu(u,c,l)}}});function Mv(e){return pt(e)&&!ke(e[0])}function ad(e,t,o,n){const{slots:a,attrs:s}=t;return()=>{const r={part:!0};let i=ot();e.locale&&(r.locale=e.locale),ke(e.format)?r.key=e.format:We(e.format)&&(ke(e.format.key)&&(r.key=e.format.key),i=Object.keys(e.format).reduce((g,S)=>o.includes(S)?Et(ot(),g,{[S]:e.format[S]}):g,ot()));const l=n(e.value,r,i);let c=[r.key];pt(l)?c=l.map((g,S)=>{const v=a[g.type],b=v?v({[g.type]:g.value,index:S,parts:l}):[g.value];return Mv(b)&&(b[0].key=`${g.type}-${S}`),b}):ke(l)&&(c=[l]);const u=Et(ot(),s),p=ke(e.tag)||We(e.tag)?e.tag:od();return xu(p,u,c)}}const sd=wa({name:"i18n-n",props:Et({value:{type:Number,required:!0},format:{type:[String,Object]}},Oi),setup(e,t){const o=e.i18n||bt({useScope:e.scope,__useComponent:!0});return ad(e,t,Vp,(...n)=>o[Ri](...n))}}),rd=wa({name:"i18n-d",props:Et({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},Oi),setup(e,t){const o=e.i18n||bt({useScope:e.scope,__useComponent:!0});return ad(e,t,jp,(...n)=>o[Ni](...n))}});function Fv(e,t){const o=e;if(e.mode==="composition")return o.__getInstance(t)||e.global;{const n=o.__getInstance(t);return n!=null?n.__composer:e.global.__composer}}function Iv(e){const t=r=>{const{instance:i,modifiers:l,value:c}=r;if(!i||!i.$)throw Lt(wt.UNEXPECTED_ERROR);const u=Fv(e,i.$),p=id(c);return[Reflect.apply(u.t,u,[...ld(p)]),u]};return{created:(r,i)=>{const[l,c]=t(i);Vs&&e.global===c&&(r.__i18nWatcher=Ie(c.locale,()=>{i.instance&&i.instance.$forceUpdate()})),r.__composer=c,r.textContent=l},unmounted:r=>{Vs&&r.__i18nWatcher&&(r.__i18nWatcher(),r.__i18nWatcher=void 0,delete r.__i18nWatcher),r.__composer&&(r.__composer=void 0,delete r.__composer)},beforeUpdate:(r,{value:i})=>{if(r.__composer){const l=r.__composer,c=id(i);r.textContent=Reflect.apply(l.t,l,[...ld(c)])}},getSSRProps:r=>{const[i]=t(r);return{textContent:i}}}}function id(e){if(ke(e))return{path:e};if(Be(e)){if(!("path"in e))throw Lt(wt.REQUIRED_VALUE,"path");return e}else throw Lt(wt.INVALID_VALUE)}function ld(e){const{path:t,locale:o,args:n,choice:a,plural:s}=e,r={},i=n||{};return ke(o)&&(r.locale=o),$t(a)&&(r.plural=a),$t(s)&&(r.plural=s),[t,i,r]}function Ov(e,t,...o){const n=Be(o[0])?o[0]:{},a=!!n.useI18nComponentName;(Ke(n.globalInstall)?n.globalInstall:!0)&&([a?"i18n":nd.name,"I18nT"].forEach(r=>e.component(r,nd)),[sd.name,"I18nN"].forEach(r=>e.component(r,sd)),[rd.name,"I18nD"].forEach(r=>e.component(r,rd))),e.directive("t",Iv(t))}function Dv(e,t,o){return{beforeCreate(){const n=wo();if(!n)throw Lt(wt.UNEXPECTED_ERROR);const a=this.$options;if(a.i18n){const s=a.i18n;if(a.__i18n&&(s.__i18n=a.__i18n),s.__root=t,this===this.$root)this.$i18n=cd(e,s);else{s.__injectWithOption=!0,s.__extender=o.__vueI18nExtend,this.$i18n=Ii(s);const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}}else if(a.__i18n)if(this===this.$root)this.$i18n=cd(e,a);else{this.$i18n=Ii({__i18n:a.__i18n,__injectWithOption:!0,__extender:o.__vueI18nExtend,__root:t});const s=this.$i18n;s.__extender&&(s.__disposer=s.__extender(this.$i18n))}else this.$i18n=e;a.__i18nGlobal&&Xp(t,a,a),this.$t=(...s)=>this.$i18n.t(...s),this.$rt=(...s)=>this.$i18n.rt(...s),this.$tc=(...s)=>this.$i18n.tc(...s),this.$te=(s,r)=>this.$i18n.te(s,r),this.$d=(...s)=>this.$i18n.d(...s),this.$n=(...s)=>this.$i18n.n(...s),this.$tm=s=>this.$i18n.tm(s),o.__setInstance(n,this.$i18n)},mounted(){},unmounted(){const n=wo();if(!n)throw Lt(wt.UNEXPECTED_ERROR);const a=this.$i18n;delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,a.__disposer&&(a.__disposer(),delete a.__disposer,delete a.__extender),o.__deleteInstance(n),delete this.$i18n}}}function cd(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[qp](t.pluralizationRules||e.pluralizationRules);const o=Js(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(o).forEach(n=>e.mergeLocaleMessage(n,o[n])),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach(n=>e.mergeDateTimeFormat(n,t.datetimeFormats[n])),t.numberFormats&&Object.keys(t.numberFormats).forEach(n=>e.mergeNumberFormat(n,t.numberFormats[n])),e}const Gv=Jo("global-vue-i18n");function Bv(e={},t){const o=__VUE_I18N_LEGACY_API__&&Ke(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,n=Ke(e.globalInjection)?e.globalInjection:!0,a=__VUE_I18N_LEGACY_API__&&o?!!e.allowComposition:!0,s=new Map,[r,i]=jv(e,o),l=Jo("");function c(g){return s.get(g)||null}function u(g,S){s.set(g,S)}function p(g){s.delete(g)}{const g={get mode(){return __VUE_I18N_LEGACY_API__&&o?"legacy":"composition"},get allowComposition(){return a},async install(S,...v){if(S.__VUE_I18N_SYMBOL__=l,S.provide(S.__VUE_I18N_SYMBOL__,g),Be(v[0])){const $=v[0];g.__composerExtend=$.__composerExtend,g.__vueI18nExtend=$.__vueI18nExtend}let b=null;!o&&n&&(b=Xv(S,g.global)),__VUE_I18N_FULL_INSTALL__&&Ov(S,g,...v),__VUE_I18N_LEGACY_API__&&o&&S.mixin(Dv(i,i.__composer,g));const _=S.unmount;S.unmount=()=>{b&&b(),g.dispose(),_()}},get global(){return i},dispose(){r.stop()},__instances:s,__getInstance:c,__setInstance:u,__deleteInstance:p};return g}}function bt(e={}){const t=wo();if(t==null)throw Lt(wt.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw Lt(wt.NOT_INSTALLED);const o=zv(t),n=Vv(o),a=Yp(t),s=Uv(e,a);if(__VUE_I18N_LEGACY_API__&&o.mode==="legacy"&&!e.__useComponent){if(!o.allowComposition)throw Lt(wt.NOT_AVAILABLE_IN_LEGACY_MODE);return Wv(t,s,n,e)}if(s==="global")return Xp(n,e,a),n;if(s==="parent"){let l=Kv(o,t,e.__useComponent);return l==null&&(l=n),l}const r=o;let i=r.__getInstance(t);if(i==null){const l=Et({},e);"__i18n"in a&&(l.__i18n=a.__i18n),n&&(l.__root=n),i=Fi(l),r.__composerExtend&&(i[Mi]=r.__composerExtend(i)),qv(r,t,i),r.__setInstance(t,i)}return i}function jv(e,t,o){const n=Nr();{const a=__VUE_I18N_LEGACY_API__&&t?n.run(()=>Ii(e)):n.run(()=>Fi(e));if(a==null)throw Lt(wt.UNEXPECTED_ERROR);return[n,a]}}function zv(e){{const t=Ne(e.isCE?Gv:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw Lt(e.isCE?wt.NOT_INSTALLED_WITH_PROVIDE:wt.UNEXPECTED_ERROR);return t}}function Uv(e,t){return Ks(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function Vv(e){return e.mode==="composition"?e.global:e.global.__composer}function Kv(e,t,o=!1){let n=null;const a=t.root;let s=Hv(t,o);for(;s!=null;){const r=e;if(e.mode==="composition")n=r.__getInstance(s);else if(__VUE_I18N_LEGACY_API__){const i=r.__getInstance(s);i!=null&&(n=i.__composer,o&&n&&!n[Wp]&&(n=null))}if(n!=null||a===s)break;s=s.parent}return n}function Hv(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function qv(e,t,o){$o(()=>{},t),Cs(()=>{const n=o;e.__deleteInstance(t);const a=n[Mi];a&&(a(),delete n[Mi])},t)}function Wv(e,t,o,n={}){const a=t==="local",s=ba(null);if(a&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw Lt(wt.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const r=Ke(n.inheritLocale)?n.inheritLocale:!ke(n.locale),i=he(!a||r?o.locale.value:ke(n.locale)?n.locale:Yn),l=he(!a||r?o.fallbackLocale.value:ke(n.fallbackLocale)||pt(n.fallbackLocale)||Be(n.fallbackLocale)||n.fallbackLocale===!1?n.fallbackLocale:i.value),c=he(Js(i.value,n)),u=he(Be(n.datetimeFormats)?n.datetimeFormats:{[i.value]:{}}),p=he(Be(n.numberFormats)?n.numberFormats:{[i.value]:{}}),g=a?o.missingWarn:Ke(n.missingWarn)||Qo(n.missingWarn)?n.missingWarn:!0,S=a?o.fallbackWarn:Ke(n.fallbackWarn)||Qo(n.fallbackWarn)?n.fallbackWarn:!0,v=a?o.fallbackRoot:Ke(n.fallbackRoot)?n.fallbackRoot:!0,b=!!n.fallbackFormat,_=ct(n.missing)?n.missing:null,$=ct(n.postTranslation)?n.postTranslation:null,f=a?o.warnHtmlMessage:Ke(n.warnHtmlMessage)?n.warnHtmlMessage:!0,m=!!n.escapeParameter,k=a?o.modifiers:Be(n.modifiers)?n.modifiers:{},h=n.pluralRules||a&&o.pluralRules;function P(){return[i.value,l.value,c.value,u.value,p.value]}const d=oe({get:()=>s.value?s.value.locale.value:i.value,set:I=>{s.value&&(s.value.locale.value=I),i.value=I}}),C=oe({get:()=>s.value?s.value.fallbackLocale.value:l.value,set:I=>{s.value&&(s.value.fallbackLocale.value=I),l.value=I}}),A=oe(()=>s.value?s.value.messages.value:c.value),B=oe(()=>u.value),V=oe(()=>p.value);function J(){return s.value?s.value.getPostTranslationHandler():$}function z(I){s.value&&s.value.setPostTranslationHandler(I)}function D(){return s.value?s.value.getMissingHandler():_}function L(I){s.value&&s.value.setMissingHandler(I)}function y(I){return P(),I()}function R(...I){return s.value?y(()=>Reflect.apply(s.value.t,null,[...I])):y(()=>"")}function U(...I){return s.value?Reflect.apply(s.value.rt,null,[...I]):""}function H(...I){return s.value?y(()=>Reflect.apply(s.value.d,null,[...I])):y(()=>"")}function Q(...I){return s.value?y(()=>Reflect.apply(s.value.n,null,[...I])):y(()=>"")}function re(I){return s.value?s.value.tm(I):{}}function j(I,W){return s.value?s.value.te(I,W):!1}function be(I){return s.value?s.value.getLocaleMessage(I):{}}function xe(I,W){s.value&&(s.value.setLocaleMessage(I,W),c.value[I]=W)}function fe(I,W){s.value&&s.value.mergeLocaleMessage(I,W)}function we(I){return s.value?s.value.getDateTimeFormat(I):{}}function $e(I,W){s.value&&(s.value.setDateTimeFormat(I,W),u.value[I]=W)}function ne(I,W){s.value&&s.value.mergeDateTimeFormat(I,W)}function te(I){return s.value?s.value.getNumberFormat(I):{}}function de(I,W){s.value&&(s.value.setNumberFormat(I,W),p.value[I]=W)}function Se(I,W){s.value&&s.value.mergeNumberFormat(I,W)}const T={get id(){return s.value?s.value.id:-1},locale:d,fallbackLocale:C,messages:A,datetimeFormats:B,numberFormats:V,get inheritLocale(){return s.value?s.value.inheritLocale:r},set inheritLocale(I){s.value&&(s.value.inheritLocale=I)},get availableLocales(){return s.value?s.value.availableLocales:Object.keys(c.value)},get modifiers(){return s.value?s.value.modifiers:k},get pluralRules(){return s.value?s.value.pluralRules:h},get isGlobal(){return s.value?s.value.isGlobal:!1},get missingWarn(){return s.value?s.value.missingWarn:g},set missingWarn(I){s.value&&(s.value.missingWarn=I)},get fallbackWarn(){return s.value?s.value.fallbackWarn:S},set fallbackWarn(I){s.value&&(s.value.missingWarn=I)},get fallbackRoot(){return s.value?s.value.fallbackRoot:v},set fallbackRoot(I){s.value&&(s.value.fallbackRoot=I)},get fallbackFormat(){return s.value?s.value.fallbackFormat:b},set fallbackFormat(I){s.value&&(s.value.fallbackFormat=I)},get warnHtmlMessage(){return s.value?s.value.warnHtmlMessage:f},set warnHtmlMessage(I){s.value&&(s.value.warnHtmlMessage=I)},get escapeParameter(){return s.value?s.value.escapeParameter:m},set escapeParameter(I){s.value&&(s.value.escapeParameter=I)},t:R,getPostTranslationHandler:J,setPostTranslationHandler:z,getMissingHandler:D,setMissingHandler:L,rt:U,d:H,n:Q,tm:re,te:j,getLocaleMessage:be,setLocaleMessage:xe,mergeLocaleMessage:fe,getDateTimeFormat:we,setDateTimeFormat:$e,mergeDateTimeFormat:ne,getNumberFormat:te,setNumberFormat:de,mergeNumberFormat:Se};function F(I){I.locale.value=i.value,I.fallbackLocale.value=l.value,Object.keys(c.value).forEach(W=>{I.mergeLocaleMessage(W,c.value[W])}),Object.keys(u.value).forEach(W=>{I.mergeDateTimeFormat(W,u.value[W])}),Object.keys(p.value).forEach(W=>{I.mergeNumberFormat(W,p.value[W])}),I.escapeParameter=m,I.fallbackFormat=b,I.fallbackRoot=v,I.fallbackWarn=S,I.missingWarn=g,I.warnHtmlMessage=f}return jc(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw Lt(wt.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const I=s.value=e.proxy.$i18n.__composer;t==="global"?(i.value=I.locale.value,l.value=I.fallbackLocale.value,c.value=I.messages.value,u.value=I.datetimeFormats.value,p.value=I.numberFormats.value):a&&F(I)}),T}const Yv=["locale","fallbackLocale","availableLocales"],ud=["t","rt","d","n","tm","te"];function Xv(e,t){const o=Object.create(null);return Yv.forEach(a=>{const s=Object.getOwnPropertyDescriptor(t,a);if(!s)throw Lt(wt.UNEXPECTED_ERROR);const r=ut(s.value)?{get(){return s.value.value},set(i){s.value.value=i}}:{get(){return s.get&&s.get()}};Object.defineProperty(o,a,r)}),e.config.globalProperties.$i18n=o,ud.forEach(a=>{const s=Object.getOwnPropertyDescriptor(t,a);if(!s||!s.value)throw Lt(wt.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${a}`,s)}),()=>{delete e.config.globalProperties.$i18n,ud.forEach(a=>{delete e.config.globalProperties[`$${a}`]})}}if(Pv(),__INTLIFY_JIT_COMPILATION__?Ap(wv):Ap(vv),dv(H0),gv(vp),__INTLIFY_PROD_DEVTOOLS__){const e=Bo();e.__INTLIFY__=!0,tv(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const Zv=Object.assign({"./locales/ar/allPeopleGroups.json":Qm,"./locales/ar/aria.json":eb,"./locales/ar/buttons.json":tb,"./locales/ar/connectivity.json":ob,"./locales/ar/controls.json":nb,"./locales/ar/dashboard.json":ab,"./locales/ar/detail.json":sb,"./locales/ar/gospel.json":rb,"./locales/ar/grid.json":ib,"./locales/ar/legend.json":lb,"./locales/ar/messages.json":cb,"./locales/ar/options.json":ub,"./locales/ar/popup.json":pb,"./locales/ar/prayerLaps.json":db,"./locales/ar/regions.json":gb,"./locales/ar/search.json":fb,"./locales/ar/studio.json":hb,"./locales/ar/tabs.json":mb,"./locales/ar/vision.json":bb,"./locales/de/allPeopleGroups.json":$b,"./locales/de/aria.json":yb,"./locales/de/buttons.json":_b,"./locales/de/connectivity.json":vb,"./locales/de/controls.json":wb,"./locales/de/dashboard.json":kb,"./locales/de/detail.json":xb,"./locales/de/gospel.json":Lb,"./locales/de/grid.json":Ab,"./locales/de/legend.json":Sb,"./locales/de/messages.json":Pb,"./locales/de/options.json":Cb,"./locales/de/popup.json":Eb,"./locales/de/prayerLaps.json":Tb,"./locales/de/regions.json":Nb,"./locales/de/search.json":Rb,"./locales/de/studio.json":Mb,"./locales/de/tabs.json":Fb,"./locales/de/vision.json":Ib,"./locales/en/allPeopleGroups.json":Ob,"./locales/en/aria.json":Db,"./locales/en/buttons.json":Gb,"./locales/en/connectivity.json":Bb,"./locales/en/controls.json":jb,"./locales/en/dashboard.json":zb,"./locales/en/detail.json":Ub,"./locales/en/gospel.json":Vb,"./locales/en/grid.json":Kb,"./locales/en/legend.json":Hb,"./locales/en/messages.json":qb,"./locales/en/options.json":Wb,"./locales/en/popup.json":Yb,"./locales/en/prayerLaps.json":Xb,"./locales/en/regions.json":Zb,"./locales/en/search.json":Jb,"./locales/en/studio.json":Qb,"./locales/en/tabs.json":e$,"./locales/en/vision.json":t$,"./locales/es/allPeopleGroups.json":o$,"./locales/es/aria.json":n$,"./locales/es/buttons.json":a$,"./locales/es/connectivity.json":s$,"./locales/es/controls.json":r$,"./locales/es/dashboard.json":i$,"./locales/es/detail.json":l$,"./locales/es/gospel.json":c$,"./locales/es/grid.json":u$,"./locales/es/legend.json":p$,"./locales/es/messages.json":d$,"./locales/es/options.json":g$,"./locales/es/popup.json":f$,"./locales/es/prayerLaps.json":h$,"./locales/es/regions.json":m$,"./locales/es/search.json":b$,"./locales/es/studio.json":$$,"./locales/es/tabs.json":y$,"./locales/es/vision.json":_$,"./locales/fr/allPeopleGroups.json":v$,"./locales/fr/aria.json":w$,"./locales/fr/buttons.json":k$,"./locales/fr/connectivity.json":x$,"./locales/fr/controls.json":L$,"./locales/fr/dashboard.json":A$,"./locales/fr/detail.json":S$,"./locales/fr/gospel.json":P$,"./locales/fr/grid.json":C$,"./locales/fr/legend.json":E$,"./locales/fr/messages.json":T$,"./locales/fr/options.json":N$,"./locales/fr/popup.json":R$,"./locales/fr/prayerLaps.json":M$,"./locales/fr/regions.json":F$,"./locales/fr/search.json":I$,"./locales/fr/studio.json":O$,"./locales/fr/tabs.json":D$,"./locales/fr/vision.json":G$,"./locales/hi/allPeopleGroups.json":B$,"./locales/hi/aria.json":j$,"./locales/hi/buttons.json":z$,"./locales/hi/connectivity.json":U$,"./locales/hi/controls.json":V$,"./locales/hi/dashboard.json":K$,"./locales/hi/detail.json":H$,"./locales/hi/gospel.json":q$,"./locales/hi/grid.json":W$,"./locales/hi/legend.json":Y$,"./locales/hi/messages.json":X$,"./locales/hi/options.json":Z$,"./locales/hi/popup.json":J$,"./locales/hi/prayerLaps.json":Q$,"./locales/hi/regions.json":ey,"./locales/hi/search.json":ty,"./locales/hi/studio.json":oy,"./locales/hi/tabs.json":ny,"./locales/hi/vision.json":ay,"./locales/it/allPeopleGroups.json":sy,"./locales/it/aria.json":ry,"./locales/it/buttons.json":iy,"./locales/it/connectivity.json":ly,"./locales/it/controls.json":cy,"./locales/it/dashboard.json":uy,"./locales/it/detail.json":py,"./locales/it/gospel.json":dy,"./locales/it/grid.json":gy,"./locales/it/legend.json":fy,"./locales/it/messages.json":hy,"./locales/it/options.json":my,"./locales/it/popup.json":by,"./locales/it/prayerLaps.json":$y,"./locales/it/regions.json":yy,"./locales/it/search.json":_y,"./locales/it/studio.json":vy,"./locales/it/tabs.json":wy,"./locales/it/vision.json":ky,"./locales/pt/allPeopleGroups.json":xy,"./locales/pt/aria.json":Ly,"./locales/pt/buttons.json":Ay,"./locales/pt/connectivity.json":Sy,"./locales/pt/controls.json":Py,"./locales/pt/dashboard.json":Cy,"./locales/pt/detail.json":Ey,"./locales/pt/gospel.json":Ty,"./locales/pt/grid.json":Ny,"./locales/pt/legend.json":Ry,"./locales/pt/messages.json":My,"./locales/pt/options.json":Fy,"./locales/pt/popup.json":Iy,"./locales/pt/prayerLaps.json":Oy,"./locales/pt/regions.json":Dy,"./locales/pt/search.json":Gy,"./locales/pt/studio.json":By,"./locales/pt/tabs.json":jy,"./locales/pt/vision.json":zy,"./locales/ro/allPeopleGroups.json":Uy,"./locales/ro/aria.json":Vy,"./locales/ro/buttons.json":Ky,"./locales/ro/connectivity.json":Hy,"./locales/ro/controls.json":qy,"./locales/ro/dashboard.json":Wy,"./locales/ro/detail.json":Yy,"./locales/ro/gospel.json":Xy,"./locales/ro/grid.json":Zy,"./locales/ro/legend.json":Jy,"./locales/ro/messages.json":Qy,"./locales/ro/options.json":e_,"./locales/ro/popup.json":t_,"./locales/ro/prayerLaps.json":o_,"./locales/ro/regions.json":n_,"./locales/ro/search.json":a_,"./locales/ro/studio.json":s_,"./locales/ro/tabs.json":r_,"./locales/ro/vision.json":i_,"./locales/ru/allPeopleGroups.json":l_,"./locales/ru/aria.json":c_,"./locales/ru/buttons.json":u_,"./locales/ru/connectivity.json":p_,"./locales/ru/controls.json":d_,"./locales/ru/dashboard.json":g_,"./locales/ru/detail.json":f_,"./locales/ru/gospel.json":h_,"./locales/ru/grid.json":m_,"./locales/ru/legend.json":b_,"./locales/ru/messages.json":$_,"./locales/ru/options.json":y_,"./locales/ru/popup.json":__,"./locales/ru/prayerLaps.json":v_,"./locales/ru/regions.json":w_,"./locales/ru/search.json":k_,"./locales/ru/studio.json":x_,"./locales/ru/tabs.json":L_,"./locales/ru/vision.json":A_,"./locales/zh/allPeopleGroups.json":S_,"./locales/zh/aria.json":P_,"./locales/zh/buttons.json":C_,"./locales/zh/connectivity.json":E_,"./locales/zh/controls.json":T_,"./locales/zh/dashboard.json":N_,"./locales/zh/detail.json":R_,"./locales/zh/gospel.json":M_,"./locales/zh/grid.json":F_,"./locales/zh/legend.json":I_,"./locales/zh/messages.json":O_,"./locales/zh/options.json":D_,"./locales/zh/popup.json":G_,"./locales/zh/prayerLaps.json":B_,"./locales/zh/regions.json":j_,"./locales/zh/search.json":z_,"./locales/zh/studio.json":U_,"./locales/zh/tabs.json":V_,"./locales/zh/vision.json":K_}),yn={};for(const[e,t]of Object.entries(Zv)){const o=e.match(/\.\/locales\/([^/]+)\/([^/]+)\.json$/);if(!o)continue;const[,n,a]=o;yn[n]??(yn[n]={}),yn[n][a]=t}yn.en;const Ga=["ar","de","en","es","fr","hi","it","pt","ro","ru","zh"],pd=new Set(["ar"]);function dd(){var n;const e=(()=>{try{const a=new URLSearchParams(window.location.search);return(a.get("lang")||a.get("locale")||"").split("-")[0].toLowerCase()}catch{return""}})();if(Ga.includes(e))return e;const o=(((n=document==null?void 0:document.documentElement)==null?void 0:n.lang)||"").split("-")[0].toLowerCase();return Ga.includes(o)?o:"en"}function Jv(){const e=dd();try{pd.has(e)&&(document!=null&&document.documentElement)&&(document.documentElement.dir="rtl")}catch{}const t=Bv({legacy:!1,globalInjection:!0,locale:e,fallbackLocale:"en",messages:yn,missingWarn:!1,fallbackWarn:!1});Ie(t.global.locale,n=>fd(n),{immediate:!0});const o=t.install.bind(t);return t.install=(n,...a)=>{const s=o(n,...a);return n.provide("appI18n",t),s},t}const gd="__DOXA_PAGE_LOCALE";function fd(e){const t=String(e||"").split("-")[0].toLowerCase();if(Ga.includes(t))try{typeof window<"u"&&(window[gd]=t)}catch{}}function Qv(){try{return typeof window<"u"&&window[gd]||""}catch{return""}}function Ba(e,t){const o=a=>{let s=yn[a];for(const r of String(e).split(".")){if(!s||typeof s!="object")return;s=s[r]}return typeof s=="string"?s:void 0},n=t||Qv()||dd();return o(n)??o("en")}function kt(e,t){const o=t||e1(e);$o(()=>{var i;const n=wo();if(!n)return;const a=(i=n.proxy)==null?void 0:i.$el;if(!a)return;const s=a.getRootNode();if(!(s instanceof ShadowRoot)||s.querySelector(`style[data-shadow-styles="${o}"]`))return;const r=document.createElement("style");r.setAttribute("data-shadow-styles",o),r.textContent=e,s.appendChild(r)})}function e1(e){let t=0;for(let o=0;ot[C]||C,n=()=>!1;try{const C=bt();o=C.t,n=C.te}catch{}const a=Ne("uiStore",null),s=Ne("profileConfig",null),r=oe(()=>(a==null?void 0:a.theme)==="dark"),i=oe(()=>{var B;const C=(B=s==null?void 0:s.value)==null?void 0:B.pinHintLabel;if(C)return C;const A="Tap a coloured dot — someone still needs prayer";try{return n("messages.pinHint.tapDot")?o("messages.pinHint.tapDot"):A}catch{return A}}),l=he(!1),c=he(null);let u=null,p=null,g=null,S=null,v=null,b=null,_=[],$=null,f=null;function m(){l.value=!1}function k(C,A){var V;let B=C==null?void 0:C.parentElement;for(let J=0;B&&J<12;J++,B=B.parentElement){if(B===A||(V=B.classList)!=null&&V.contains("profile-loader"))return null;let z="";try{z=getComputedStyle(B).position}catch{}if(z&&z!=="static"){const D=B.getBoundingClientRect();if(D.height>=120&&D.width>=160)return B}}return null}function h(C){var B;const A=(B=S==null?void 0:S.querySelector)==null?void 0:B.call(S,".legend-mobile-sheet");if(!A)return 1/0;if(v&&b!==A){try{v.disconnect()}catch{}v=null}if(!v&&typeof ResizeObserver<"u")try{v=new ResizeObserver(()=>P()),v.observe(A),b=A}catch{v=null}try{const V=A.getBoundingClientRect();return!(V.height>16)||!(V.width>16)||C.right<=V.left||V.right<=C.left?1/0:V.top}catch{return 1/0}}function P(){const C=c.value;if(C)try{C.style.removeProperty("--pin-hint-lift");const A=C.getBoundingClientRect();if(!A.height)return;const B=Math.min(window.innerHeight,h(A)),V=Math.round(A.bottom-B);V>0&&C.style.setProperty("--pin-hint-lift",V+8+"px")}catch{}}function d(C){const A=c.value;if(!A||!(C!=null&&C.querySelector))return;let B=0;try{const J=C.querySelector(".mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib, .mapboxgl-ctrl-bottom-right .doxa-attribution, .doxa-attribution");if(J){const z=J.getBoundingClientRect(),D=A.parentElement,L=D?D.getBoundingClientRect():null;if(B=L?Math.max(z.height||0,L.bottom-z.top):z.height||0,f!==J&&typeof ResizeObserver<"u"){if(g)try{g.disconnect()}catch{}f=J,g=new ResizeObserver(()=>d(C)),g.observe(J)}}}catch{}const V=Math.min(Math.max(Math.ceil(B)||20,20),72);A.style.setProperty("--pin-hint-attrib-clear",V+"px"),P()}return $o(()=>{var V,J,z;const C=wo(),A=(z=(J=(V=C==null?void 0:C.proxy)==null?void 0:V.$el)==null?void 0:J.getRootNode)==null?void 0:z.call(J);if(!A||typeof A.querySelector!="function")return;S=A;let B=0;u=setInterval(()=>{B++;const D=A.querySelector("canvas");D?(clearInterval(u),u=null,l.value=!0,It(()=>{const L=k(D,A),y=c.value;if(L&&y&&y.parentElement!==L)try{L.appendChild(y),p=L}catch{}d(A),P(),_.push(setTimeout(P,1200),setTimeout(P,3e3),setTimeout(P,6e3));try{const R=c.value&&c.value.offsetParent||null;if(R&&typeof ResizeObserver<"u"){if($)try{$.disconnect()}catch{}$=new ResizeObserver(()=>P()),$.observe(R)}}catch{}})):B>40&&(clearInterval(u),u=null)},300)}),Xt(()=>{var C;if(u&&clearInterval(u),g){try{g.disconnect()}catch{}g=null}if(f=null,$){try{$.disconnect()}catch{}$=null}if(v){try{v.disconnect()}catch{}v=null}b=null;for(const A of _)clearTimeout(A);if(_=[],S=null,p&&((C=c.value)==null?void 0:C.parentElement)===p)try{p.removeChild(c.value)}catch{}p=null}),kt(` + */const _1="9.14.5";function v1(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(Xo().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(Xo().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Xo().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Xo().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Xo().__INTLIFY_PROD_DEVTOOLS__=!1)}const w1=Qv.__EXTEND_POINT__,Jo=pr(w1);Jo(),Jo(),Jo(),Jo(),Jo(),Jo(),Jo(),Jo(),Jo();const Sd=ho.__EXTEND_POINT__,Vt=pr(Sd),wt={UNEXPECTED_RETURN_TYPE:Sd,INVALID_ARGUMENT:Vt(),MUST_BE_CALL_SETUP_TOP:Vt(),NOT_INSTALLED:Vt(),NOT_AVAILABLE_IN_LEGACY_MODE:Vt(),REQUIRED_VALUE:Vt(),INVALID_VALUE:Vt(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:Vt(),NOT_INSTALLED_WITH_PROVIDE:Vt(),UNEXPECTED_ERROR:Vt(),NOT_COMPATIBLE_LEGACY_VUE_I18N:Vt(),BRIDGE_SUPPORT_VUE_2_ONLY:Vt(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:Vt(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:Vt(),__EXTEND_POINT__:Vt()};function Lt(e,...t){return aa(e,null,void 0)}const Qi=dn("__translateVNode"),el=dn("__datetimeParts"),tl=dn("__numberParts"),Pd=dn("__setPluralRules"),Cd=dn("__injectWithOption"),ol=dn("__dispose");function as(e){if(!Xe(e)||So(e))return e;for(const t in e)if(go(e,t))if(!t.includes("."))Xe(e[t])&&as(e[t]);else{const o=t.split("."),n=o.length-1;let a=e,s=!1;for(let r=0;r{if("locale"in i&&"resource"in i){const{locale:l,resource:c}=i;l?(r[l]=r[l]||nt(),gr(c,r[l])):gr(c,r)}else Le(i)&&gr(JSON.parse(i),r)}),a==null&&s)for(const i in r)go(r,i)&&as(r[i]);return r}function Ed(e){return e.type}function Td(e,t,o){let n=Xe(t.messages)?t.messages:nt();"__i18nGlobal"in o&&(n=br(e.locale.value,{messages:n,__i18n:o.__i18nGlobal}));const a=Object.keys(n);a.length&&a.forEach(s=>{e.mergeLocaleMessage(s,n[s])});{if(Xe(t.datetimeFormats)){const s=Object.keys(t.datetimeFormats);s.length&&s.forEach(r=>{e.mergeDateTimeFormat(r,t.datetimeFormats[r])})}if(Xe(t.numberFormats)){const s=Object.keys(t.numberFormats);s.length&&s.forEach(r=>{e.mergeNumberFormat(r,t.numberFormats[r])})}}}function Nd(e){return et(Ua,null,e,0)}const Rd="__INTLIFY_META__",Md=()=>[],k1=()=>!1;let Fd=0;function Id(e){return(t,o,n,a)=>e(o,n,po()||void 0,a)}const x1=()=>{const e=po();let t=null;return e&&(t=Ed(e)[Rd])?{[Rd]:t}:null};function nl(e={},t){const{__root:o,__injectWithOption:n}=e,a=o===void 0,s=e.flatJson,r=cr?ge:Ea,i=!!e.translateExistCompatible;let l=Ue(e.inheritLocale)?e.inheritLocale:!0;const c=r(o&&l?o.locale.value:Le(e.locale)?e.locale:ia),u=r(o&&l?o.fallbackLocale.value:Le(e.fallbackLocale)||dt(e.fallbackLocale)||je(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),p=r(br(c.value,e)),g=r(je(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),A=r(je(e.numberFormats)?e.numberFormats:{[c.value]:{}});let w=o?o.missingWarn:Ue(e.missingWarn)||gn(e.missingWarn)?e.missingWarn:!0,h=o?o.fallbackWarn:Ue(e.fallbackWarn)||gn(e.fallbackWarn)?e.fallbackWarn:!0,v=o?o.fallbackRoot:Ue(e.fallbackRoot)?e.fallbackRoot:!0,$=!!e.fallbackFormat,m=it(e.missing)?e.missing:null,b=it(e.missing)?Id(e.missing):null,k=it(e.postTranslation)?e.postTranslation:null,E=o?o.warnHtmlMessage:Ue(e.warnHtmlMessage)?e.warnHtmlMessage:!0,x=!!e.escapeParameter;const f=o?o.modifiers:je(e.modifiers)?e.modifiers:{};let d=e.pluralRules||o&&o.pluralRules,y;y=(()=>{a&&dd(null);const Y={version:_1,locale:c.value,fallbackLocale:u.value,messages:p.value,modifiers:f,pluralRules:d,missing:b===null?void 0:b,missingWarn:w,fallbackWarn:h,fallbackFormat:$,unresolving:!0,postTranslation:k===null?void 0:k,warnHtmlMessage:E,escapeParameter:x,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};Y.datetimeFormats=g.value,Y.numberFormats=A.value,Y.__datetimeFormatters=je(y)?y.__datetimeFormatters:void 0,Y.__numberFormatters=je(y)?y.__numberFormatters:void 0;const ie=u1(Y);return a&&dd(ie),ie})(),ns(y,c.value,u.value);function B(){return[c.value,u.value,p.value,g.value,A.value]}const V=ee({get:()=>c.value,set:Y=>{c.value=Y,y.locale=c.value}}),j=ee({get:()=>u.value,set:Y=>{u.value=Y,y.fallbackLocale=u.value,ns(y,c.value,Y)}}),G=ee(()=>p.value),C=ee(()=>g.value),L=ee(()=>A.value);function M(){return it(k)?k:null}function z(Y){k=Y,y.postTranslation=Y}function K(){return m}function J(Y){Y!==null&&(b=Id(Y)),m=Y,y.missing=b}const ce=(Y,ie,ve,Ne,He,lt)=>{B();let tt;try{__INTLIFY_PROD_DEVTOOLS__,a||(y.fallbackContext=o?c1():void 0),tt=Y(y)}finally{__INTLIFY_PROD_DEVTOOLS__,a||(y.fallbackContext=void 0)}if(ve!=="translate exists"&&$t(tt)&&tt===mr||ve==="translate exists"&&!tt){const[q,ae]=ie();return o&&v?Ne(o):He(q)}else{if(lt(tt))return tt;throw Lt(wt.UNEXPECTED_RETURN_TYPE)}};function H(...Y){return ce(ie=>Reflect.apply($d,null,[ie,...Y]),()=>Xi(...Y),"translate",ie=>Reflect.apply(ie.t,ie,[...Y]),ie=>ie,ie=>Le(ie))}function be(...Y){const[ie,ve,Ne]=Y;if(Ne&&!Xe(Ne))throw Lt(wt.INVALID_ARGUMENT);return H(ie,ve,Tt({resolvedMessage:!0},Ne||{}))}function we(...Y){return ce(ie=>Reflect.apply(vd,null,[ie,...Y]),()=>Zi(...Y),"datetime format",ie=>Reflect.apply(ie.d,ie,[...Y]),()=>ad,ie=>Le(ie))}function he(...Y){return ce(ie=>Reflect.apply(xd,null,[ie,...Y]),()=>Ji(...Y),"number format",ie=>Reflect.apply(ie.n,ie,[...Y]),()=>ad,ie=>Le(ie))}function Ae(Y){return Y.map(ie=>Le(ie)||$t(ie)||Ue(ie)?Nd(String(ie)):ie)}const oe={normalize:Ae,interpolate:Y=>Y,type:"vnode"};function fe(...Y){return ce(ie=>{let ve;const Ne=ie;try{Ne.processor=oe,ve=Reflect.apply($d,null,[Ne,...Y])}finally{Ne.processor=null}return ve},()=>Xi(...Y),"translate",ie=>ie[Qi](...Y),ie=>[Nd(ie)],ie=>dt(ie))}function pe(...Y){return ce(ie=>Reflect.apply(xd,null,[ie,...Y]),()=>Ji(...Y),"number format",ie=>ie[tl](...Y),Md,ie=>Le(ie)||dt(ie))}function Se(...Y){return ce(ie=>Reflect.apply(vd,null,[ie,...Y]),()=>Zi(...Y),"datetime format",ie=>ie[el](...Y),Md,ie=>Le(ie)||dt(ie))}function P(Y){d=Y,y.pluralRules=d}function O(Y,ie){return ce(()=>{if(!Y)return!1;const ve=Le(ie)?ie:c.value,Ne=Q(ve),He=y.messageResolver(Ne,Y);return i?He!=null:So(He)||so(He)||Le(He)},()=>[Y],"translate exists",ve=>Reflect.apply(ve.te,ve,[Y,ie]),k1,ve=>Ue(ve))}function I(Y){let ie=null;const ve=od(y,u.value,c.value);for(let Ne=0;Ne{l&&(c.value=Y,y.locale=Y,ns(y,c.value,u.value))}),Me(o.fallbackLocale,Y=>{l&&(u.value=Y,y.fallbackLocale=Y,ns(y,c.value,u.value))}));const le={id:Fd,locale:V,fallbackLocale:j,get inheritLocale(){return l},set inheritLocale(Y){l=Y,Y&&o&&(c.value=o.locale.value,u.value=o.fallbackLocale.value,ns(y,c.value,u.value))},get availableLocales(){return Object.keys(p.value).sort()},messages:G,get modifiers(){return f},get pluralRules(){return d||{}},get isGlobal(){return a},get missingWarn(){return w},set missingWarn(Y){w=Y,y.missingWarn=w},get fallbackWarn(){return h},set fallbackWarn(Y){h=Y,y.fallbackWarn=h},get fallbackRoot(){return v},set fallbackRoot(Y){v=Y},get fallbackFormat(){return $},set fallbackFormat(Y){$=Y,y.fallbackFormat=$},get warnHtmlMessage(){return E},set warnHtmlMessage(Y){E=Y,y.warnHtmlMessage=Y},get escapeParameter(){return x},set escapeParameter(Y){x=Y,y.escapeParameter=Y},t:H,getLocaleMessage:Q,setLocaleMessage:U,mergeLocaleMessage:de,getPostTranslationHandler:M,setPostTranslationHandler:z,getMissingHandler:K,setMissingHandler:J,[Pd]:P};return le.datetimeFormats=C,le.numberFormats=L,le.rt=be,le.te=O,le.tm=X,le.d=we,le.n=he,le.getDateTimeFormat=ne,le.setDateTimeFormat=_,le.mergeDateTimeFormat=S,le.getNumberFormat=D,le.setNumberFormat=te,le.mergeNumberFormat=me,le[Cd]=n,le[Qi]=fe,le[el]=Se,le[tl]=pe,le}function L1(e){const t=Le(e.locale)?e.locale:ia,o=Le(e.fallbackLocale)||dt(e.fallbackLocale)||je(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,n=it(e.missing)?e.missing:void 0,a=Ue(e.silentTranslationWarn)||gn(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,s=Ue(e.silentFallbackWarn)||gn(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,r=Ue(e.fallbackRoot)?e.fallbackRoot:!0,i=!!e.formatFallbackMessages,l=je(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=it(e.postTranslation)?e.postTranslation:void 0,p=Le(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,g=!!e.escapeParameterHtml,A=Ue(e.sync)?e.sync:!0;let w=e.messages;if(je(e.sharedMessages)){const x=e.sharedMessages;w=Object.keys(x).reduce((d,y)=>{const N=d[y]||(d[y]={});return Tt(N,x[y]),d},w||{})}const{__i18n:h,__root:v,__injectWithOption:$}=e,m=e.datetimeFormats,b=e.numberFormats,k=e.flatJson,E=e.translateExistCompatible;return{locale:t,fallbackLocale:o,messages:w,flatJson:k,datetimeFormats:m,numberFormats:b,missing:n,missingWarn:a,fallbackWarn:s,fallbackRoot:r,fallbackFormat:i,modifiers:l,pluralRules:c,postTranslation:u,warnHtmlMessage:p,escapeParameter:g,messageResolver:e.messageResolver,inheritLocale:A,translateExistCompatible:E,__i18n:h,__root:v,__injectWithOption:$}}function al(e={},t){{const o=nl(L1(e)),{__extender:n}=e,a={id:o.id,get locale(){return o.locale.value},set locale(s){o.locale.value=s},get fallbackLocale(){return o.fallbackLocale.value},set fallbackLocale(s){o.fallbackLocale.value=s},get messages(){return o.messages.value},get datetimeFormats(){return o.datetimeFormats.value},get numberFormats(){return o.numberFormats.value},get availableLocales(){return o.availableLocales},get formatter(){return{interpolate(){return[]}}},set formatter(s){},get missing(){return o.getMissingHandler()},set missing(s){o.setMissingHandler(s)},get silentTranslationWarn(){return Ue(o.missingWarn)?!o.missingWarn:o.missingWarn},set silentTranslationWarn(s){o.missingWarn=Ue(s)?!s:s},get silentFallbackWarn(){return Ue(o.fallbackWarn)?!o.fallbackWarn:o.fallbackWarn},set silentFallbackWarn(s){o.fallbackWarn=Ue(s)?!s:s},get modifiers(){return o.modifiers},get formatFallbackMessages(){return o.fallbackFormat},set formatFallbackMessages(s){o.fallbackFormat=s},get postTranslation(){return o.getPostTranslationHandler()},set postTranslation(s){o.setPostTranslationHandler(s)},get sync(){return o.inheritLocale},set sync(s){o.inheritLocale=s},get warnHtmlInMessage(){return o.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(s){o.warnHtmlMessage=s!=="off"},get escapeParameterHtml(){return o.escapeParameter},set escapeParameterHtml(s){o.escapeParameter=s},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(s){},get pluralizationRules(){return o.pluralRules||{}},__composer:o,t(...s){const[r,i,l]=s,c={};let u=null,p=null;if(!Le(r))throw Lt(wt.INVALID_ARGUMENT);const g=r;return Le(i)?c.locale=i:dt(i)?u=i:je(i)&&(p=i),dt(l)?u=l:je(l)&&(p=l),Reflect.apply(o.t,o,[g,u||p||{},c])},rt(...s){return Reflect.apply(o.rt,o,[...s])},tc(...s){const[r,i,l]=s,c={plural:1};let u=null,p=null;if(!Le(r))throw Lt(wt.INVALID_ARGUMENT);const g=r;return Le(i)?c.locale=i:$t(i)?c.plural=i:dt(i)?u=i:je(i)&&(p=i),Le(l)?c.locale=l:dt(l)?u=l:je(l)&&(p=l),Reflect.apply(o.t,o,[g,u||p||{},c])},te(s,r){return o.te(s,r)},tm(s){return o.tm(s)},getLocaleMessage(s){return o.getLocaleMessage(s)},setLocaleMessage(s,r){o.setLocaleMessage(s,r)},mergeLocaleMessage(s,r){o.mergeLocaleMessage(s,r)},d(...s){return Reflect.apply(o.d,o,[...s])},getDateTimeFormat(s){return o.getDateTimeFormat(s)},setDateTimeFormat(s,r){o.setDateTimeFormat(s,r)},mergeDateTimeFormat(s,r){o.mergeDateTimeFormat(s,r)},n(...s){return Reflect.apply(o.n,o,[...s])},getNumberFormat(s){return o.getNumberFormat(s)},setNumberFormat(s,r){o.setNumberFormat(s,r)},mergeNumberFormat(s,r){o.mergeNumberFormat(s,r)},getChoiceIndex(s,r){return-1}};return a.__extender=n,a}}const sl={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function A1({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((n,a)=>[...n,...a.type===ze?a.children:[a]],[]):t.reduce((o,n)=>{const a=e[n];return a&&(o[n]=a()),o},nt())}function Od(e){return ze}const Dd=Oa({name:"i18n-t",props:Tt({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>$t(e)||!isNaN(e)}},sl),setup(e,t){const{slots:o,attrs:n}=t,a=e.i18n||mt({useScope:e.scope,__useComponent:!0});return()=>{const s=Object.keys(o).filter(p=>p!=="_"),r=nt();e.locale&&(r.locale=e.locale),e.plural!==void 0&&(r.plural=Le(e.plural)?+e.plural:e.plural);const i=A1(t,s),l=a[Qi](e.keypath,i,r),c=Tt(nt(),n),u=Le(e.tag)||Xe(e.tag)?e.tag:Od();return Si(u,c,l)}}});function S1(e){return dt(e)&&!Le(e[0])}function Bd(e,t,o,n){const{slots:a,attrs:s}=t;return()=>{const r={part:!0};let i=nt();e.locale&&(r.locale=e.locale),Le(e.format)?r.key=e.format:Xe(e.format)&&(Le(e.format.key)&&(r.key=e.format.key),i=Object.keys(e.format).reduce((g,A)=>o.includes(A)?Tt(nt(),g,{[A]:e.format[A]}):g,nt()));const l=n(e.value,r,i);let c=[r.key];dt(l)?c=l.map((g,A)=>{const w=a[g.type],h=w?w({[g.type]:g.value,index:A,parts:l}):[g.value];return S1(h)&&(h[0].key=`${g.type}-${A}`),h}):Le(l)&&(c=[l]);const u=Tt(nt(),s),p=Le(e.tag)||Xe(e.tag)?e.tag:Od();return Si(p,u,c)}}const Gd=Oa({name:"i18n-n",props:Tt({value:{type:Number,required:!0},format:{type:[String,Object]}},sl),setup(e,t){const o=e.i18n||mt({useScope:e.scope,__useComponent:!0});return Bd(e,t,Ld,(...n)=>o[tl](...n))}}),jd=Oa({name:"i18n-d",props:Tt({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},sl),setup(e,t){const o=e.i18n||mt({useScope:e.scope,__useComponent:!0});return Bd(e,t,wd,(...n)=>o[el](...n))}});function P1(e,t){const o=e;if(e.mode==="composition")return o.__getInstance(t)||e.global;{const n=o.__getInstance(t);return n!=null?n.__composer:e.global.__composer}}function C1(e){const t=r=>{const{instance:i,modifiers:l,value:c}=r;if(!i||!i.$)throw Lt(wt.UNEXPECTED_ERROR);const u=P1(e,i.$),p=zd(c);return[Reflect.apply(u.t,u,[...Ud(p)]),u]};return{created:(r,i)=>{const[l,c]=t(i);cr&&e.global===c&&(r.__i18nWatcher=Me(c.locale,()=>{i.instance&&i.instance.$forceUpdate()})),r.__composer=c,r.textContent=l},unmounted:r=>{cr&&r.__i18nWatcher&&(r.__i18nWatcher(),r.__i18nWatcher=void 0,delete r.__i18nWatcher),r.__composer&&(r.__composer=void 0,delete r.__composer)},beforeUpdate:(r,{value:i})=>{if(r.__composer){const l=r.__composer,c=zd(i);r.textContent=Reflect.apply(l.t,l,[...Ud(c)])}},getSSRProps:r=>{const[i]=t(r);return{textContent:i}}}}function zd(e){if(Le(e))return{path:e};if(je(e)){if(!("path"in e))throw Lt(wt.REQUIRED_VALUE,"path");return e}else throw Lt(wt.INVALID_VALUE)}function Ud(e){const{path:t,locale:o,args:n,choice:a,plural:s}=e,r={},i=n||{};return Le(o)&&(r.locale=o),$t(a)&&(r.plural=a),$t(s)&&(r.plural=s),[t,i,r]}function E1(e,t,...o){const n=je(o[0])?o[0]:{},a=!!n.useI18nComponentName;(Ue(n.globalInstall)?n.globalInstall:!0)&&([a?"i18n":Dd.name,"I18nT"].forEach(r=>e.component(r,Dd)),[Gd.name,"I18nN"].forEach(r=>e.component(r,Gd)),[jd.name,"I18nD"].forEach(r=>e.component(r,jd))),e.directive("t",C1(t))}function T1(e,t,o){return{beforeCreate(){const n=po();if(!n)throw Lt(wt.UNEXPECTED_ERROR);const a=this.$options;if(a.i18n){const s=a.i18n;if(a.__i18n&&(s.__i18n=a.__i18n),s.__root=t,this===this.$root)this.$i18n=Vd(e,s);else{s.__injectWithOption=!0,s.__extender=o.__vueI18nExtend,this.$i18n=al(s);const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}}else if(a.__i18n)if(this===this.$root)this.$i18n=Vd(e,a);else{this.$i18n=al({__i18n:a.__i18n,__injectWithOption:!0,__extender:o.__vueI18nExtend,__root:t});const s=this.$i18n;s.__extender&&(s.__disposer=s.__extender(this.$i18n))}else this.$i18n=e;a.__i18nGlobal&&Td(t,a,a),this.$t=(...s)=>this.$i18n.t(...s),this.$rt=(...s)=>this.$i18n.rt(...s),this.$tc=(...s)=>this.$i18n.tc(...s),this.$te=(s,r)=>this.$i18n.te(s,r),this.$d=(...s)=>this.$i18n.d(...s),this.$n=(...s)=>this.$i18n.n(...s),this.$tm=s=>this.$i18n.tm(s),o.__setInstance(n,this.$i18n)},mounted(){},unmounted(){const n=po();if(!n)throw Lt(wt.UNEXPECTED_ERROR);const a=this.$i18n;delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,a.__disposer&&(a.__disposer(),delete a.__disposer,delete a.__extender),o.__deleteInstance(n),delete this.$i18n}}}function Vd(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[Pd](t.pluralizationRules||e.pluralizationRules);const o=br(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(o).forEach(n=>e.mergeLocaleMessage(n,o[n])),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach(n=>e.mergeDateTimeFormat(n,t.datetimeFormats[n])),t.numberFormats&&Object.keys(t.numberFormats).forEach(n=>e.mergeNumberFormat(n,t.numberFormats[n])),e}const N1=dn("global-vue-i18n");function R1(e={},t){const o=__VUE_I18N_LEGACY_API__&&Ue(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,n=Ue(e.globalInjection)?e.globalInjection:!0,a=__VUE_I18N_LEGACY_API__&&o?!!e.allowComposition:!0,s=new Map,[r,i]=M1(e,o),l=dn("");function c(g){return s.get(g)||null}function u(g,A){s.set(g,A)}function p(g){s.delete(g)}{const g={get mode(){return __VUE_I18N_LEGACY_API__&&o?"legacy":"composition"},get allowComposition(){return a},async install(A,...w){if(A.__VUE_I18N_SYMBOL__=l,A.provide(A.__VUE_I18N_SYMBOL__,g),je(w[0])){const $=w[0];g.__composerExtend=$.__composerExtend,g.__vueI18nExtend=$.__vueI18nExtend}let h=null;!o&&n&&(h=U1(A,g.global)),__VUE_I18N_FULL_INSTALL__&&E1(A,g,...w),__VUE_I18N_LEGACY_API__&&o&&A.mixin(T1(i,i.__composer,g));const v=A.unmount;A.unmount=()=>{h&&h(),g.dispose(),v()}},get global(){return i},dispose(){r.stop()},__instances:s,__getInstance:c,__setInstance:u,__deleteInstance:p};return g}}function mt(e={}){const t=po();if(t==null)throw Lt(wt.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw Lt(wt.NOT_INSTALLED);const o=F1(t),n=O1(o),a=Ed(t),s=I1(e,a);if(__VUE_I18N_LEGACY_API__&&o.mode==="legacy"&&!e.__useComponent){if(!o.allowComposition)throw Lt(wt.NOT_AVAILABLE_IN_LEGACY_MODE);return j1(t,s,n,e)}if(s==="global")return Td(n,e,a),n;if(s==="parent"){let l=D1(o,t,e.__useComponent);return l==null&&(l=n),l}const r=o;let i=r.__getInstance(t);if(i==null){const l=Tt({},e);"__i18n"in a&&(l.__i18n=a.__i18n),n&&(l.__root=n),i=nl(l),r.__composerExtend&&(i[ol]=r.__composerExtend(i)),G1(r,t,i),r.__setInstance(t,i)}return i}function M1(e,t,o){const n=Jr();{const a=__VUE_I18N_LEGACY_API__&&t?n.run(()=>al(e)):n.run(()=>nl(e));if(a==null)throw Lt(wt.UNEXPECTED_ERROR);return[n,a]}}function F1(e){{const t=Te(e.isCE?N1:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw Lt(e.isCE?wt.NOT_INSTALLED_WITH_PROVIDE:wt.UNEXPECTED_ERROR);return t}}function I1(e,t){return ur(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function O1(e){return e.mode==="composition"?e.global:e.global.__composer}function D1(e,t,o=!1){let n=null;const a=t.root;let s=B1(t,o);for(;s!=null;){const r=e;if(e.mode==="composition")n=r.__getInstance(s);else if(__VUE_I18N_LEGACY_API__){const i=r.__getInstance(s);i!=null&&(n=i.__composer,o&&n&&!n[Cd]&&(n=null))}if(n!=null||a===s)break;s=s.parent}return n}function B1(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function G1(e,t,o){ao(()=>{},t),Ga(()=>{const n=o;e.__deleteInstance(t);const a=n[ol];a&&(a(),delete n[ol])},t)}function j1(e,t,o,n={}){const a=t==="local",s=Ea(null);if(a&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw Lt(wt.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const r=Ue(n.inheritLocale)?n.inheritLocale:!Le(n.locale),i=ge(!a||r?o.locale.value:Le(n.locale)?n.locale:ia),l=ge(!a||r?o.fallbackLocale.value:Le(n.fallbackLocale)||dt(n.fallbackLocale)||je(n.fallbackLocale)||n.fallbackLocale===!1?n.fallbackLocale:i.value),c=ge(br(i.value,n)),u=ge(je(n.datetimeFormats)?n.datetimeFormats:{[i.value]:{}}),p=ge(je(n.numberFormats)?n.numberFormats:{[i.value]:{}}),g=a?o.missingWarn:Ue(n.missingWarn)||gn(n.missingWarn)?n.missingWarn:!0,A=a?o.fallbackWarn:Ue(n.fallbackWarn)||gn(n.fallbackWarn)?n.fallbackWarn:!0,w=a?o.fallbackRoot:Ue(n.fallbackRoot)?n.fallbackRoot:!0,h=!!n.fallbackFormat,v=it(n.missing)?n.missing:null,$=it(n.postTranslation)?n.postTranslation:null,m=a?o.warnHtmlMessage:Ue(n.warnHtmlMessage)?n.warnHtmlMessage:!0,b=!!n.escapeParameter,k=a?o.modifiers:je(n.modifiers)?n.modifiers:{},E=n.pluralRules||a&&o.pluralRules;function x(){return[i.value,l.value,c.value,u.value,p.value]}const f=ee({get:()=>s.value?s.value.locale.value:i.value,set:I=>{s.value&&(s.value.locale.value=I),i.value=I}}),d=ee({get:()=>s.value?s.value.fallbackLocale.value:l.value,set:I=>{s.value&&(s.value.fallbackLocale.value=I),l.value=I}}),y=ee(()=>s.value?s.value.messages.value:c.value),N=ee(()=>u.value),B=ee(()=>p.value);function V(){return s.value?s.value.getPostTranslationHandler():$}function j(I){s.value&&s.value.setPostTranslationHandler(I)}function G(){return s.value?s.value.getMissingHandler():v}function C(I){s.value&&s.value.setMissingHandler(I)}function L(I){return x(),I()}function M(...I){return s.value?L(()=>Reflect.apply(s.value.t,null,[...I])):L(()=>"")}function z(...I){return s.value?Reflect.apply(s.value.rt,null,[...I]):""}function K(...I){return s.value?L(()=>Reflect.apply(s.value.d,null,[...I])):L(()=>"")}function J(...I){return s.value?L(()=>Reflect.apply(s.value.n,null,[...I])):L(()=>"")}function ce(I){return s.value?s.value.tm(I):{}}function H(I,X){return s.value?s.value.te(I,X):!1}function be(I){return s.value?s.value.getLocaleMessage(I):{}}function we(I,X){s.value&&(s.value.setLocaleMessage(I,X),c.value[I]=X)}function he(I,X){s.value&&s.value.mergeLocaleMessage(I,X)}function Ae(I){return s.value?s.value.getDateTimeFormat(I):{}}function ye(I,X){s.value&&(s.value.setDateTimeFormat(I,X),u.value[I]=X)}function oe(I,X){s.value&&s.value.mergeDateTimeFormat(I,X)}function fe(I){return s.value?s.value.getNumberFormat(I):{}}function pe(I,X){s.value&&(s.value.setNumberFormat(I,X),p.value[I]=X)}function Se(I,X){s.value&&s.value.mergeNumberFormat(I,X)}const P={get id(){return s.value?s.value.id:-1},locale:f,fallbackLocale:d,messages:y,datetimeFormats:N,numberFormats:B,get inheritLocale(){return s.value?s.value.inheritLocale:r},set inheritLocale(I){s.value&&(s.value.inheritLocale=I)},get availableLocales(){return s.value?s.value.availableLocales:Object.keys(c.value)},get modifiers(){return s.value?s.value.modifiers:k},get pluralRules(){return s.value?s.value.pluralRules:E},get isGlobal(){return s.value?s.value.isGlobal:!1},get missingWarn(){return s.value?s.value.missingWarn:g},set missingWarn(I){s.value&&(s.value.missingWarn=I)},get fallbackWarn(){return s.value?s.value.fallbackWarn:A},set fallbackWarn(I){s.value&&(s.value.missingWarn=I)},get fallbackRoot(){return s.value?s.value.fallbackRoot:w},set fallbackRoot(I){s.value&&(s.value.fallbackRoot=I)},get fallbackFormat(){return s.value?s.value.fallbackFormat:h},set fallbackFormat(I){s.value&&(s.value.fallbackFormat=I)},get warnHtmlMessage(){return s.value?s.value.warnHtmlMessage:m},set warnHtmlMessage(I){s.value&&(s.value.warnHtmlMessage=I)},get escapeParameter(){return s.value?s.value.escapeParameter:b},set escapeParameter(I){s.value&&(s.value.escapeParameter=I)},t:M,getPostTranslationHandler:V,setPostTranslationHandler:j,getMissingHandler:G,setMissingHandler:C,rt:z,d:K,n:J,tm:ce,te:H,getLocaleMessage:be,setLocaleMessage:we,mergeLocaleMessage:he,getDateTimeFormat:Ae,setDateTimeFormat:ye,mergeDateTimeFormat:oe,getNumberFormat:fe,setNumberFormat:pe,mergeNumberFormat:Se};function O(I){I.locale.value=i.value,I.fallbackLocale.value=l.value,Object.keys(c.value).forEach(X=>{I.mergeLocaleMessage(X,c.value[X])}),Object.keys(u.value).forEach(X=>{I.mergeDateTimeFormat(X,u.value[X])}),Object.keys(p.value).forEach(X=>{I.mergeNumberFormat(X,p.value[X])}),I.escapeParameter=b,I.fallbackFormat=h,I.fallbackRoot=w,I.fallbackWarn=A,I.missingWarn=g,I.warnHtmlMessage=m}return hu(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw Lt(wt.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const I=s.value=e.proxy.$i18n.__composer;t==="global"?(i.value=I.locale.value,l.value=I.fallbackLocale.value,c.value=I.messages.value,u.value=I.datetimeFormats.value,p.value=I.numberFormats.value):a&&O(I)}),P}const z1=["locale","fallbackLocale","availableLocales"],Kd=["t","rt","d","n","tm","te"];function U1(e,t){const o=Object.create(null);return z1.forEach(a=>{const s=Object.getOwnPropertyDescriptor(t,a);if(!s)throw Lt(wt.UNEXPECTED_ERROR);const r=ut(s.value)?{get(){return s.value.value},set(i){s.value.value=i}}:{get(){return s.get&&s.get()}};Object.defineProperty(o,a,r)}),e.config.globalProperties.$i18n=o,Kd.forEach(a=>{const s=Object.getOwnPropertyDescriptor(t,a);if(!s||!s.value)throw Lt(wt.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${a}`,s)}),()=>{delete e.config.globalProperties.$i18n,Kd.forEach(a=>{delete e.config.globalProperties[`$${a}`]})}}if(v1(),__INTLIFY_JIT_COMPILATION__?id(h1):id(f1),s1(Bv),r1(od),__INTLIFY_PROD_DEVTOOLS__){const e=Xo();e.__INTLIFY__=!0,Wv(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const V1=Object.assign({"./locales/ar/allPeopleGroups.json":Hb,"./locales/ar/aria.json":qb,"./locales/ar/buttons.json":Wb,"./locales/ar/connectivity.json":Yb,"./locales/ar/controls.json":Xb,"./locales/ar/dashboard.json":Zb,"./locales/ar/detail.json":Jb,"./locales/ar/gospel.json":Qb,"./locales/ar/grid.json":e$,"./locales/ar/legend.json":t$,"./locales/ar/messages.json":o$,"./locales/ar/options.json":n$,"./locales/ar/popup.json":a$,"./locales/ar/prayerLaps.json":s$,"./locales/ar/regions.json":r$,"./locales/ar/search.json":i$,"./locales/ar/studio.json":l$,"./locales/ar/tabs.json":c$,"./locales/ar/vision.json":u$,"./locales/de/allPeopleGroups.json":p$,"./locales/de/aria.json":d$,"./locales/de/buttons.json":g$,"./locales/de/connectivity.json":f$,"./locales/de/controls.json":h$,"./locales/de/dashboard.json":m$,"./locales/de/detail.json":b$,"./locales/de/gospel.json":$$,"./locales/de/grid.json":y$,"./locales/de/legend.json":_$,"./locales/de/messages.json":v$,"./locales/de/options.json":w$,"./locales/de/popup.json":k$,"./locales/de/prayerLaps.json":x$,"./locales/de/regions.json":L$,"./locales/de/search.json":A$,"./locales/de/studio.json":S$,"./locales/de/tabs.json":P$,"./locales/de/vision.json":C$,"./locales/en/allPeopleGroups.json":E$,"./locales/en/aria.json":T$,"./locales/en/buttons.json":N$,"./locales/en/connectivity.json":R$,"./locales/en/controls.json":M$,"./locales/en/dashboard.json":F$,"./locales/en/detail.json":I$,"./locales/en/gospel.json":O$,"./locales/en/grid.json":D$,"./locales/en/legend.json":B$,"./locales/en/messages.json":G$,"./locales/en/options.json":j$,"./locales/en/popup.json":z$,"./locales/en/prayerLaps.json":U$,"./locales/en/regions.json":V$,"./locales/en/search.json":K$,"./locales/en/studio.json":H$,"./locales/en/tabs.json":q$,"./locales/en/vision.json":W$,"./locales/es/allPeopleGroups.json":Y$,"./locales/es/aria.json":X$,"./locales/es/buttons.json":Z$,"./locales/es/connectivity.json":J$,"./locales/es/controls.json":Q$,"./locales/es/dashboard.json":ey,"./locales/es/detail.json":ty,"./locales/es/gospel.json":oy,"./locales/es/grid.json":ny,"./locales/es/legend.json":ay,"./locales/es/messages.json":sy,"./locales/es/options.json":ry,"./locales/es/popup.json":iy,"./locales/es/prayerLaps.json":ly,"./locales/es/regions.json":cy,"./locales/es/search.json":uy,"./locales/es/studio.json":py,"./locales/es/tabs.json":dy,"./locales/es/vision.json":gy,"./locales/fr/allPeopleGroups.json":fy,"./locales/fr/aria.json":hy,"./locales/fr/buttons.json":my,"./locales/fr/connectivity.json":by,"./locales/fr/controls.json":$y,"./locales/fr/dashboard.json":yy,"./locales/fr/detail.json":_y,"./locales/fr/gospel.json":vy,"./locales/fr/grid.json":wy,"./locales/fr/legend.json":ky,"./locales/fr/messages.json":xy,"./locales/fr/options.json":Ly,"./locales/fr/popup.json":Ay,"./locales/fr/prayerLaps.json":Sy,"./locales/fr/regions.json":Py,"./locales/fr/search.json":Cy,"./locales/fr/studio.json":Ey,"./locales/fr/tabs.json":Ty,"./locales/fr/vision.json":Ny,"./locales/hi/allPeopleGroups.json":Ry,"./locales/hi/aria.json":My,"./locales/hi/buttons.json":Fy,"./locales/hi/connectivity.json":Iy,"./locales/hi/controls.json":Oy,"./locales/hi/dashboard.json":Dy,"./locales/hi/detail.json":By,"./locales/hi/gospel.json":Gy,"./locales/hi/grid.json":jy,"./locales/hi/legend.json":zy,"./locales/hi/messages.json":Uy,"./locales/hi/options.json":Vy,"./locales/hi/popup.json":Ky,"./locales/hi/prayerLaps.json":Hy,"./locales/hi/regions.json":qy,"./locales/hi/search.json":Wy,"./locales/hi/studio.json":Yy,"./locales/hi/tabs.json":Xy,"./locales/hi/vision.json":Zy,"./locales/it/allPeopleGroups.json":Jy,"./locales/it/aria.json":Qy,"./locales/it/buttons.json":e_,"./locales/it/connectivity.json":t_,"./locales/it/controls.json":o_,"./locales/it/dashboard.json":n_,"./locales/it/detail.json":a_,"./locales/it/gospel.json":s_,"./locales/it/grid.json":r_,"./locales/it/legend.json":i_,"./locales/it/messages.json":l_,"./locales/it/options.json":c_,"./locales/it/popup.json":u_,"./locales/it/prayerLaps.json":p_,"./locales/it/regions.json":d_,"./locales/it/search.json":g_,"./locales/it/studio.json":f_,"./locales/it/tabs.json":h_,"./locales/it/vision.json":m_,"./locales/pt/allPeopleGroups.json":b_,"./locales/pt/aria.json":$_,"./locales/pt/buttons.json":y_,"./locales/pt/connectivity.json":__,"./locales/pt/controls.json":v_,"./locales/pt/dashboard.json":w_,"./locales/pt/detail.json":k_,"./locales/pt/gospel.json":x_,"./locales/pt/grid.json":L_,"./locales/pt/legend.json":A_,"./locales/pt/messages.json":S_,"./locales/pt/options.json":P_,"./locales/pt/popup.json":C_,"./locales/pt/prayerLaps.json":E_,"./locales/pt/regions.json":T_,"./locales/pt/search.json":N_,"./locales/pt/studio.json":R_,"./locales/pt/tabs.json":M_,"./locales/pt/vision.json":F_,"./locales/ro/allPeopleGroups.json":I_,"./locales/ro/aria.json":O_,"./locales/ro/buttons.json":D_,"./locales/ro/connectivity.json":B_,"./locales/ro/controls.json":G_,"./locales/ro/dashboard.json":j_,"./locales/ro/detail.json":z_,"./locales/ro/gospel.json":U_,"./locales/ro/grid.json":V_,"./locales/ro/legend.json":K_,"./locales/ro/messages.json":H_,"./locales/ro/options.json":q_,"./locales/ro/popup.json":W_,"./locales/ro/prayerLaps.json":Y_,"./locales/ro/regions.json":X_,"./locales/ro/search.json":Z_,"./locales/ro/studio.json":J_,"./locales/ro/tabs.json":Q_,"./locales/ro/vision.json":e0,"./locales/ru/allPeopleGroups.json":t0,"./locales/ru/aria.json":o0,"./locales/ru/buttons.json":n0,"./locales/ru/connectivity.json":a0,"./locales/ru/controls.json":s0,"./locales/ru/dashboard.json":r0,"./locales/ru/detail.json":i0,"./locales/ru/gospel.json":l0,"./locales/ru/grid.json":c0,"./locales/ru/legend.json":u0,"./locales/ru/messages.json":p0,"./locales/ru/options.json":d0,"./locales/ru/popup.json":g0,"./locales/ru/prayerLaps.json":f0,"./locales/ru/regions.json":h0,"./locales/ru/search.json":m0,"./locales/ru/studio.json":b0,"./locales/ru/tabs.json":$0,"./locales/ru/vision.json":y0,"./locales/zh/allPeopleGroups.json":_0,"./locales/zh/aria.json":v0,"./locales/zh/buttons.json":w0,"./locales/zh/connectivity.json":k0,"./locales/zh/controls.json":x0,"./locales/zh/dashboard.json":L0,"./locales/zh/detail.json":A0,"./locales/zh/gospel.json":S0,"./locales/zh/grid.json":P0,"./locales/zh/legend.json":C0,"./locales/zh/messages.json":E0,"./locales/zh/options.json":T0,"./locales/zh/popup.json":N0,"./locales/zh/prayerLaps.json":R0,"./locales/zh/regions.json":M0,"./locales/zh/search.json":F0,"./locales/zh/studio.json":I0,"./locales/zh/tabs.json":O0,"./locales/zh/vision.json":D0}),Mn={};for(const[e,t]of Object.entries(V1)){const o=e.match(/\.\/locales\/([^/]+)\/([^/]+)\.json$/);if(!o)continue;const[,n,a]=o;Mn[n]??(Mn[n]={}),Mn[n][a]=t}Mn.en;const ss=["ar","de","en","es","fr","hi","it","pt","ro","ru","zh"],Hd=new Set(["ar"]);function qd(){var n;const e=(()=>{try{const a=new URLSearchParams(window.location.search);return(a.get("lang")||a.get("locale")||"").split("-")[0].toLowerCase()}catch{return""}})();if(ss.includes(e))return e;const o=(((n=document==null?void 0:document.documentElement)==null?void 0:n.lang)||"").split("-")[0].toLowerCase();return ss.includes(o)?o:"en"}function K1(){const e=qd();try{Hd.has(e)&&(document!=null&&document.documentElement)&&(document.documentElement.dir="rtl")}catch{}const t=R1({legacy:!1,globalInjection:!0,locale:e,fallbackLocale:"en",messages:Mn,missingWarn:!1,fallbackWarn:!1});Me(t.global.locale,n=>Yd(n),{immediate:!0});const o=t.install.bind(t);return t.install=(n,...a)=>{const s=o(n,...a);return n.provide("appI18n",t),s},t}const Wd="__DOXA_PAGE_LOCALE";function Yd(e){const t=String(e||"").split("-")[0].toLowerCase();if(ss.includes(t))try{typeof window<"u"&&(window[Wd]=t)}catch{}}function H1(){try{return typeof window<"u"&&window[Wd]||""}catch{return""}}function rs(e,t){const o=a=>{let s=Mn[a];for(const r of String(e).split(".")){if(!s||typeof s!="object")return;s=s[r]}return typeof s=="string"?s:void 0},n=t||H1()||qd();return o(n)??o("en")}function kt(e,t){const o=t||q1(e);ao(()=>{var i;const n=po();if(!n)return;const a=(i=n.proxy)==null?void 0:i.$el;if(!a)return;const s=a.getRootNode();if(!(s instanceof ShadowRoot)||s.querySelector(`style[data-shadow-styles="${o}"]`))return;const r=document.createElement("style");r.setAttribute("data-shadow-styles",o),r.textContent=e,s.appendChild(r)})}function q1(e){let t=0;for(let o=0;ot[d]||d,n=()=>!1;try{const d=mt();o=d.t,n=d.te}catch{}const a=Te("uiStore",null),s=Te("profileConfig",null),r=ee(()=>(a==null?void 0:a.theme)==="dark"),i=ee(()=>{var N;const d=(N=s==null?void 0:s.value)==null?void 0:N.pinHintLabel;if(d)return d;const y="Tap a coloured dot — someone still needs prayer";try{return n("messages.pinHint.tapDot")?o("messages.pinHint.tapDot"):y}catch{return y}}),l=ge(!1),c=ge(null);let u=null,p=null,g=null,A=null,w=null,h=null,v=[],$=null,m=null;function b(){l.value=!1}function k(d,y){var B;let N=d==null?void 0:d.parentElement;for(let V=0;N&&V<12;V++,N=N.parentElement){if(N===y||(B=N.classList)!=null&&B.contains("profile-loader"))return null;let j="";try{j=getComputedStyle(N).position}catch{}if(j&&j!=="static"){const G=N.getBoundingClientRect();if(G.height>=120&&G.width>=160)return N}}return null}function E(d){var N;const y=(N=A==null?void 0:A.querySelector)==null?void 0:N.call(A,".legend-mobile-sheet");if(!y)return 1/0;if(w&&h!==y){try{w.disconnect()}catch{}w=null}if(!w&&typeof ResizeObserver<"u")try{w=new ResizeObserver(()=>x()),w.observe(y),h=y}catch{w=null}try{const B=y.getBoundingClientRect();return!(B.height>16)||!(B.width>16)||d.right<=B.left||B.right<=d.left?1/0:B.top}catch{return 1/0}}function x(){const d=c.value;if(d)try{d.style.removeProperty("--pin-hint-lift");const y=d.getBoundingClientRect();if(!y.height)return;const N=Math.min(window.innerHeight,E(y)),B=Math.round(y.bottom-N);B>0&&d.style.setProperty("--pin-hint-lift",B+8+"px")}catch{}}function f(d){const y=c.value;if(!y||!(d!=null&&d.querySelector))return;let N=0;try{const V=d.querySelector(".mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib, .mapboxgl-ctrl-bottom-right .doxa-attribution, .doxa-attribution");if(V){const j=V.getBoundingClientRect(),G=y.parentElement,C=G?G.getBoundingClientRect():null;if(N=C?Math.max(j.height||0,C.bottom-j.top):j.height||0,m!==V&&typeof ResizeObserver<"u"){if(g)try{g.disconnect()}catch{}m=V,g=new ResizeObserver(()=>f(d)),g.observe(V)}}}catch{}const B=Math.min(Math.max(Math.ceil(N)||20,20),72);y.style.setProperty("--pin-hint-attrib-clear",B+"px"),x()}return ao(()=>{var B,V,j;const d=po(),y=(j=(V=(B=d==null?void 0:d.proxy)==null?void 0:B.$el)==null?void 0:V.getRootNode)==null?void 0:j.call(V);if(!y||typeof y.querySelector!="function")return;A=y;let N=0;u=setInterval(()=>{N++;const G=y.querySelector("canvas");G?(clearInterval(u),u=null,l.value=!0,Mt(()=>{const C=k(G,y),L=c.value;if(C&&L&&L.parentElement!==C)try{C.appendChild(L),p=C}catch{}f(y),x(),v.push(setTimeout(x,1200),setTimeout(x,3e3),setTimeout(x,6e3));try{const M=c.value&&c.value.offsetParent||null;if(M&&typeof ResizeObserver<"u"){if($)try{$.disconnect()}catch{}$=new ResizeObserver(()=>x()),$.observe(M)}}catch{}})):N>40&&(clearInterval(u),u=null)},300)}),qt(()=>{var d;if(u&&clearInterval(u),g){try{g.disconnect()}catch{}g=null}if(m=null,$){try{$.disconnect()}catch{}$=null}if(w){try{w.disconnect()}catch{}w=null}h=null;for(const y of v)clearTimeout(y);if(v=[],A=null,p&&((d=c.value)==null?void 0:d.parentElement)===p)try{p.removeChild(c.value)}catch{}p=null}),kt(` .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; @@ -71,7 +71,7 @@ @media (prefers-reduced-motion: reduce) { .pin-hint, .pin-hint-pill, .pin-hint-dot::after { animation: none !important; } } -`,"pin-hint"),(C,A)=>l.value?(ae(),pe("div",{key:0,ref_key:"hintEl",ref:c,class:Re(["pin-hint",{dark:r.value}]),role:"status"},[M("span",t1,[A[0]||(A[0]=M("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),Pt(" "+ye(i.value)+" ",1),M("button",{class:"pin-hint-x",type:"button","aria-label":"Dismiss hint",onClick:m},"×")])],2)):Le("",!0)}},Qs="mapbox://styles/mapbox/standard",n1=Qs,a1=Qs,s1=!1,hd={lightPreset:"night",theme:"default"},r1={lightPreset:"day",theme:"monochrome"};function i1(e){return e?/affinity|region|language/i.test(String(e))?"light":"dark":null}function l1(e){let t=!1;const o=new WeakSet;function n(){return!1}function a(){return n()?"night":"day"}let s="dark";function r($){return i1($)}function i($,f){$!=="light"&&$!=="dark"||(s=$,f&&b(f))}function l(){return{...s==="light"?r1:hd}}function c(){return Qs}function u(){return{basemap:l()}}function p($,f){try{return typeof $.getConfigProperty=="function"?$.getConfigProperty("basemap",f):void 0}catch{return}}function g($){return!!$&&typeof $.setConfigProperty=="function"&&typeof $.getConfigProperty=="function"}function S($,f=!1){if(!g($))return!1;const m=l();let k=!1;try{for(const[h,P]of Object.entries(m))!f&&p($,h)===P||($.setConfigProperty("basemap",h,P),k=!0)}catch(h){console.warn("[useMapTheme] setConfigProperty failed:",h)}return k}function v($){if(!o.has($)&&(o.add($),!!g($)))try{$.on("style.load",()=>S($)),$.on("styledata",()=>S($))}catch{}}function b($){if(!$)return;if(v($),S($)&&!t){t=!0;try{$.once("idle",()=>{t=!1,S($,!0)})}catch{t=!1}}}function _($){e.toggleTheme(),b($)}return{setLook:i,lookFor:r,STANDARD_STYLE:Qs,LIGHT_STYLE:n1,DARK_STYLE:a1,isDarkTheme:n,lightPreset:a,basemapConfig:l,bootStyle:c,bootConfig:u,applyTheme:b,swapTheme:_}}let c1=0;const u1=mi("ui",{state:()=>({_storeInstanceId:++c1,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(o=>o.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 o=this.isDarkTheme;document.documentElement.setAttribute("data-theme",o?"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:o="info",duration:n=this.toastDuration,action:a=null,persistent:s=!1}=e,r={id:this.nextToastId++,message:t,type:o,duration:n,action:a,persistent:s,createdAt:Date.now()};return this.toasts.push(r),!s&&n>0&&setTimeout(()=>{this.removeToast(r.id)},n),r.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(o=>o.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(o=>{for(const n of o)this.updateWindowSize(n.contentRect.width,n.contentRect.height)}).observe(document.documentElement),window.matchMedia&&(window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",o=>{this.theme==="auto"&&document.documentElement.setAttribute("data-theme",o.matches?"dark":"light")}),window.matchMedia("(prefers-reduced-motion: reduce)").addEventListener("change",o=>{this.reducedMotion=o.matches,document.documentElement.setAttribute("data-reduced-motion",o.matches)}))}}}),p1=mi("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,o={}){let n=1.5;o.zoom!==void 0?n=o.zoom:t&&typeof t.getZoom=="function"&&(n=t.getZoom());let a=[0,0];if(o.center)a=o.center;else if(t&&typeof t.getCenter=="function"){const s=t.getCenter();s&&(a=[s.lng,s.lat])}this.maps[e]={instance:t,config:o,isReady:!1,zoom:n,center:a,registeredAt:Date.now()},this.activeMapId||(this.activeMapId=e)},setMapReady(e){const t=this.maps[e];t&&(t.isReady=!0)},updateMapState(e,t){const o=this.maps[e];o&&Object.assign(o,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()}}}),d1=mi("data",{state:()=>({sources:{},loadingStates:{}}),actions:{async load(e,t){if(!this.sources[e]){this.loadingStates[e]={isLoading:!0,error:null};try{const o=await t();this.sources[e]=Fn({features:o,timestamp:Date.now()}),this.loadingStates[e]={isLoading:!1,error:null}}catch(o){console.error(`[dataStore] Failed to load source "${e}":`,o),this.loadingStates[e]={isLoading:!1,error:o}}}},clearSource(e){delete this.sources[e],delete this.loadingStates[e]},cacheSourceData(e,t){this.sources[e]=Fn({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 o;return((o=e.sources[t])==null?void 0:o.features)??null},isLoading:e=>t=>{var o;return((o=e.loadingStates[t])==null?void 0:o.isLoading)??!1},getError:e=>t=>{var o;return((o=e.loadingStates[t])==null?void 0:o.error)??null}}}),_n={_meta:{_comment:"Single source of truth for data-source connections across all doxa-maps bundles.",_comment_token:"Mapbox access token is fetched at runtime from window.MAP_TOKEN_URL (same modular pattern as window.MAP_APP_API_URL). Not hardcoded to any host — set mapboxTokenUrl below or override window.MAP_TOKEN_URL on the host page.",mapboxTokenUrl:"window.MAP_TOKEN_URL"},activeSource:"pray-tools",sources:{"pray-tools":{id:"pray-tools",name:"Prayer.Tools API",type:"rest-api",description:"pray.doxa.life live API — people-group prayer, engagement, and adoption data. Base URL read from window.MAP_APP_API_URL or VITE_API_BASE_URL at runtime.",endpoints:{bulk:"/api/people-groups/list",detail:"/api/people-groups/detail/{slug}",statistics:"/api/people-groups/statistics"},queryParams:{lang:"en"},defaultFields:["slug","name","latitude","longitude","wagf_region","wagf_block","wagf_member","rop1","imb_reg_of_people_2","imb_reg_of_people_25","imb_reg_of_people_3","country_code","religion","population","has_photo","image_url","people_praying","people_committed","adopted_by_churches","engagement_status","imb_gsec","primary_language","imb_language_family","imb_language_class","imb_language_speakers"],pollFields:["slug","people_praying"],pollInterval:3e5,fallbackSourceId:null,fieldMappings:{uniqueId:"slug",slug:"slug",name:"name",latitude:"latitude",longitude:"longitude",wagfRegion:"wagf_region",doxaRegion:"wagf_region",wagfBlock:"wagf_block",wagfMember:"wagf_member",affinityBlock:"rop1",countryIso:"country_code",religion:"religion",religionCode:"religion",population:"population",hasPhoto:"has_photo",imageUrl:"image_url",photoUrl:"image_url",peoplePraying:"people_praying",peopleCommitted:"people_committed",engagementStatus:"engagement_status",adoptionStatus:"adopted_by_churches",language:"primary_language",cluster:"imb_reg_of_people_2",peopleGroup:"imb_reg_of_people_25",peopleGroupCountry:"imb_reg_of_people_3",languageFamily:"imb_language_family",languageClass:"imb_language_class",languageSpeakers:"imb_language_speakers"},imageConfig:{useField:"imageUrl",fallbackField:null,fallbackUrlTemplate:null,placeholderUrl:"https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg",useSvgPlaceholder:!0}},"doxa-csv":{id:"doxa-csv",name:"DOXA People Groups CSV",type:"csv",path:"assets/data/Joshua-project-ids-Doxa-1439.csv",description:"People groups dataset from DOXA / Joshua Project",fieldMappings:{uniqueId:"ROP3",peopleGroupId:"ROP3",countryCode:"ROG",peopleId3:"PeopleID3",name:"Name",displayName:"NmDisp",alternateName:"NmAlt",description:"PeopleDesc",locationDescription:"LocationDe",country:"Ctry",countryIso:"ISOalpha3",region:"Regn",subRegion:"RegnSub",wagfRegion:"WAGF Region",doxaRegion:"WAGF Region",wagfBlock:"WAGF BLOCK",affinityBloc:"Affbloc",affinityBlock:"ROP1",affinityCode:"AffCd",affinityName:"Aff",peopleCluster:"PplClstr",ethneName:"Ethne",latitude:"Latitude",longitude:"Longitude",population:"Pop",populationClass:"PopCls",status:"Status",engagementStatus:"EngStat",evangelicalLevel:"EvngLvl",gsec:"GSEC",gsecBrief:"GSECbrf",gsecLong:"GSEClng",spiScore:"SPI",spiDescription:"SPIdesc",language:"Lang",languageCode:"ROL",languageFamily:"LangFamily",religion:"Rlgn",religionCode:"ROR",religionDescription:"RORdesc",religionBase:"RlgnBs",religionDiv:"RlgnDiv",bible:"Bible",jesusFilm:"Jesus",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",resourcesTotal:"ResTot",bibleLevel:"LvlBible",yearPublished:"YrPub",photoCredit:"PicCrdt",photoUrl:"PicURL",hasPhoto:"Photo",isIndigenous:"Indigenous"},imageConfig:{useField:"photoUrl",fallbackField:"peopleId3",fallbackUrlTemplate:"https://joshuaproject.net/assets/media/profiles/photos/p{peopleId3}.jpg",placeholderUrl:"https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg"}}},systemFields:{uniqueId:{description:"Unique identifier per row (slug for API, ROP3+ROG for CSV)",required:!0},peopleGroupId:{description:"People group ID — same group can appear in multiple countries",required:!0},name:{description:"People group display name",required:!0},latitude:{description:"Latitude coordinate for map pin",required:!0},longitude:{description:"Longitude coordinate for map pin",required:!0},engagementStatus:{description:"Boolean — true if engaged_status = 'engaged'",required:!1},adoptionStatus:{description:"Boolean — true if adopted_by_churches > 0",required:!1},peoplePraying:{description:"Number of people currently praying for this group — from pray-tools API",required:!1},peopleCommitted:{description:"Raw count of committed workers for this group — source of engagementStatus",required:!1},languageFamily:{description:"Language family name",required:!1},religion:{description:"Primary religion",required:!1},population:{description:"Population count",required:!1},doxaRegion:{description:"WAGF/DOXA region name",required:!1},photoUrl:{description:"URL to people group photo",required:!1},description:{description:"People group description text",required:!1}}},g1=".profile-loader[data-v-ccbcaedb]{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-ccbcaedb]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}",nn=(e,t)=>{const o=e.__vccOpts||e;for(const[n,a]of t)o[n]=a;return o},f1=["dir"],h1={key:0,class:"profile-error"},m1={key:1,class:"profile-error"},b1=nn({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var P;const o=e,n=Ne("profileConfig",null),a=oe(()=>{var C;if(!o.profileConfig)return null;let d;try{d=JSON.parse(o.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",o.profileConfig),null}if(d&&d.assetsBase===void 0){const A=(C=n==null?void 0:n.value)==null?void 0:C.assetsBase;typeof A=="string"&&A&&(d.assetsBase=A)}return d}),s=oe(()=>{var d;return((d=a.value)==null?void 0:d.profile)||null}),r=Jm(),i=oe(()=>{var C;const d=(C=a.value)==null?void 0:C.tk;return typeof d=="string"&&d?d:r.value||""});Ie(()=>{var d;return(d=a.value)==null?void 0:d.tk},d=>{typeof d=="string"&&d&&Yu(d)},{immediate:!0});const l=oe(()=>{var d;return((d=a.value)==null?void 0:d.dataSource)||_n.activeSource||"doxa-csv"}),c=oe(()=>{var d;return((d=a.value)==null?void 0:d.colorSet)||"default"}),u=oe(()=>!1),p=oe(()=>{var d;return((d=a.value)==null?void 0:d.pinHint)!==!1}),g=oe(()=>{var C,A;const d=(((C=a.value)==null?void 0:C.locale)||((A=a.value)==null?void 0:A.lang)||"").split("-")[0].toLowerCase();return Ga.includes(d)?d:""}),S=Ne("appI18n",null);ih(()=>{g.value&&(S&&(S.global.locale.value=g.value),fd(g.value))});const v=oe(()=>{var d,C;return g.value||((C=(d=S==null?void 0:S.global)==null?void 0:d.locale)==null?void 0:C.value)||"en"}),b=oe(()=>pd.has(v.value)?"rtl":"ltr"),_=oe(()=>{var d;return((d=a.value)==null?void 0:d.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),$=Ne("profileModules",null);if(!$)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const f=oe(()=>{if(!s.value)return null;const d=`./${s.value}.vue`;return $[d]?Us($[d]):(console.error(`[ProfileLoader] Profile not found: "${s.value}". Available:`,Object.keys($)),null)});vt("mapboxToken",i),vt("dataSource",l),vt("colorSet",c),vt("profileConfig",a),vt("instanceId",_),vt("lang",v);const m=u1(),k=p1(),h=d1();try{const d=typeof localStorage<"u"?localStorage.getItem("theme"):null;d&&((P=m.setTheme)==null||P.call(m,d))}catch{}return vt("uiStore",m),vt("mapStore",k),vt("dataStore",h),(d,C)=>(ae(),pe("div",{class:"profile-loader",dir:b.value},[a.value?f.value?(ae(),et(Uc(f.value),{key:2})):(ae(),pe("div",m1,[M("p",null,[C[1]||(C[1]=Pt("⚠️ Profile ",-1)),M("strong",null,'"'+ye(s.value)+'"',1),C[2]||(C[2]=Pt(" not found.",-1))])])):(ae(),pe("div",h1,[...C[0]||(C[0]=[M("p",null,[Pt("⚠️ "),M("strong",null,"doxa-map"),Pt(": missing or invalid "),M("code",null,"profile-config"),Pt(" prop.")],-1),M("p",null,[Pt("Example: "),M("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),f.value&&u.value?(ae(),et(Uc(ge(null)),{key:3})):Le("",!0),f.value&&p.value?(ae(),et(o1,{key:4})):Le("",!0)],8,f1))}},[["styles",[g1]],["__scopeId","data-v-ccbcaedb"]]),md="adoptionStatus",Uo={notAdopted:"#f03b2d",hasAdoption:"#22c55e"},Di=Uo,Gi={notAdopted:"Needs Adoption",hasAdopted:"Has Adoption"},$1=Gi;function bd(e){var n;const t=e.adoptionStatus??((n=e._raw)==null?void 0:n.adopted_by_churches);return t===!0||t===1||typeof t=="number"&&t>0||typeof t=="object"&&(t==null?void 0:t.value)?Uo.hasAdoption:Uo.notAdopted}function Bi({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","adoptionStatus"]:["get","adoptionStatus"];return["case",["==",t,!0],Uo.hasAdoption,["==",t,1],Uo.hasAdoption,Uo.notAdopted]}const $d=Bi,y1=Object.freeze(Object.defineProperty({__proto__:null,ADOPTION_COLORS:Di,ADOPTION_LABELS:$1,LABELS:Gi,PALETTE:Uo,PROPERTY_KEY:md,applyColor:Bi,buildColorExpression:$d,default:{name:"Adoption Progress",propertyKey:md,palette:Uo,colors:Uo,labels:Gi,getColor:bd,applyColor:Bi,buildColorExpression:$d},getColor:bd},Symbol.toStringTag,{value:"Module"})),yd="engagementStatus",Vo={notEngaged:"#f03b2d",hasEngagement:"#22c55e"},ji=Vo,zi={notEngaged:"Unengaged",hasEngagement:"Engaged"},_1=zi;function _d(e){var n;const t=e.engagementStatus??((n=e._raw)==null?void 0:n.people_committed);return t===!0||t===1||typeof t=="number"&&t>0||typeof t=="object"&&(t==null?void 0:t.value)?Vo.hasEngagement:Vo.notEngaged}function Ui({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","engagementStatus"]:["get","engagementStatus"];return["case",["==",t,!0],Vo.hasEngagement,["==",t,1],Vo.hasEngagement,Vo.notEngaged]}const vd=Ui,v1=Object.freeze(Object.defineProperty({__proto__:null,ENGAGEMENT_COLORS:ji,ENGAGEMENT_LABELS:_1,LABELS:zi,PALETTE:Vo,PROPERTY_KEY:yd,applyColor:Ui,buildColorExpression:vd,default:{name:"Engagement Progress",propertyKey:yd,palette:Vo,colors:Vo,labels:zi,getColor:_d,applyColor:Ui,buildColorExpression:vd},getColor:_d},Symbol.toStringTag,{value:"Module"})),Vi="languageFamily",w1="#000000",an={"Indo-European":"#e74c3c",Dravidian:"#ff9800","Afro-Asiatic":"#27ae60","Sino-Tibetan":"#3498db","Niger-Congo":"#9b59b6",Unclassified:"#95a5a6","Nilo-Saharan":"#e91e63","Khoe-Kwadi":"#00bcd4","Austro-Asiatic":"#00bcd4","Kra-Dai":"#8e44ad",Austronesian:"#ff69b4","Hmong-Mien":"#f44336",Turkic:"#ffc107","Nakh-Daghestanian":"#009688",Mongolic:"#795548",Uralic:"#607d8b",Tungusic:"#4caf50",Japonic:"#ff5722",Cariban:"#673ab7",Tupian:"#03a9f4",Tucanoan:"#8bc34a",Maipurean:"#ffc107",Panoan:"#cddc39",Guajiboan:"#9e9e9e",Chibchan:"#ff7043",Quechuan:"#ab47bc",Jean:"#26a69a",Harákmbut:"#7e57c2",Nambikwara:"#42a5f5",Muran:"#66bb6a",Karajá:"#ffa726",Bororoan:"#ef5350",Arauan:"#5c6bc0",Yanomaman:"#26c6da",Yaguan:"#d4e157",Witotoan:"#78909c",Zamucoan:"#8d6e63",Puinavean:"#aed581",Barbacoan:"#4db6ac","Eyak-Athabaskan":"#7986cb","Trans-New Guinea":"#ba68c8",Andamanese:"#4dd0e1","Atlantic-Congo":"#7D3C98",Mande:"#B9770E","Sign Language":"#212121",Creole:"#9575cd","Mixed language":"#a1887f","Language isolate":"#90a4ae",Unknown:"#000000"},wd=an;function co(e){return an[e]||w1}const k1=(()=>{const e=o=>String(o||"").toLowerCase().trim(),t={};for(const o of Object.keys(an))t[e(o)]=o;return t})(),x1={"tai-kadai":"Kra-Dai",none:"Unknown"};function er(e){if(!e)return"Unknown";const t=String(e).trim(),o=t.toLowerCase();return x1[o]||k1[o]||t}function kd(e){var t;return co(e.languageFamily||((t=e._normalized)==null?void 0:t.languageFamily))}function Ki(){const e=["match",["get",Vi]];return Object.entries(an).forEach(([t,o])=>{e.push(t,o)}),e.push("#95a5a6"),e}const xd=Ki,L1=Object.freeze(Object.defineProperty({__proto__:null,LANGUAGE_FAMILY_COLORS:wd,PALETTE:an,PROPERTY_KEY:Vi,applyColor:Ki,buildColorExpression:xd,canonicalFamilyName:er,default:{name:"Language Family",propertyKey:Vi,palette:an,colors:an,getColor:kd,applyColor:Ki,buildColorExpression:xd,getLanguageFamilyColor:co,canonicalFamilyName:er},defaultFamilyColor:"#95a5a6",getColor:kd,getLanguageFamilyColor:co,languageFamilyColors:an},Symbol.toStringTag,{value:"Module"})),Ld="peoplePraying",Lo=144,sn={noPrayer:"#f03b2d",hasPrayer:"#f0c64a",fullPrayer:"#22c55e"},vn=sn,Hi={noPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayer:"Has Full Prayer Coverage"},A1=Hi;function tr(e){var n;const t=(e==null?void 0:e.peoplePraying)??((n=e==null?void 0:e._raw)==null?void 0:n.people_praying)??null,o=Number(t)||0;return o>=Lo?"fullPrayer":o>0?"hasPrayer":"noPrayer"}function qi(e){return sn[tr(e)]}function Ad(e){var o;const t=(e==null?void 0:e.peoplePraying)??((o=e==null?void 0:e._raw)==null?void 0:o.people_praying)??null;return t!==null&&t>0}function Sd(e){return tr(e)==="fullPrayer"}function Pd(e){return qi(e)}function Wi({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","peoplePraying"]:["get","peoplePraying"];return["case",[">=",t,Lo],sn.fullPrayer,[">",t,0],sn.hasPrayer,sn.noPrayer]}const Cd=Wi,S1=Object.freeze(Object.defineProperty({__proto__:null,FULL_PRAYER_THRESHOLD:Lo,LABELS:Hi,PALETTE:sn,PRAYER_COLORS:vn,PRAYER_LABELS:A1,PROPERTY_KEY:Ld,applyColor:Wi,buildColorExpression:Cd,checkHasFullPrayer:Sd,checkHasPrayer:Ad,default:{name:"Prayer Progress",propertyKey:Ld,palette:sn,colors:sn,labels:Hi,threshold:Lo,getColor:Pd,applyColor:Wi,buildColorExpression:Cd,getPrayerLevel:tr,getPrayerColor:qi,checkHasPrayer:Ad,checkHasFullPrayer:Sd},getColor:Pd,getPrayerColor:qi,getPrayerLevel:tr},Symbol.toStringTag,{value:"Module"})),Ed="religion",Yi="#94a3b8",Jt={C:"Christianity",M:"Islam",H:"Hinduism",B:"Buddhism",E:"Ethnoreligion",J:"Judaism",S:"Sikhism",N:"Unaffiliated",O:"Other",U:"Unknown"},qt={C:"#3b82f6",M:"#ef4444",H:"#f59e0b",B:"#facc15",E:"#84cc16",J:"#a855f7",S:"#ec4899",N:"#71717a",O:"#ff6b2b",U:"#94a3b8"};function ja(e){if(!e||typeof e!="string")return"U";const t=e.charAt(0).toUpperCase();return Jt[t]?t:"U"}function Td(e){var o,n,a;const t=(e==null?void 0:e.religion)||((n=(o=e==null?void 0:e._raw)==null?void 0:o.religion)==null?void 0:n.value)||((a=e==null?void 0:e._raw)==null?void 0:a.religion);return qt[ja(t)]||Yi}function Xi(){return["match",["slice",["coalesce",["get","religion"],""],0,1],"C",qt.C,"M",qt.M,"H",qt.H,"B",qt.B,"E",qt.E,"J",qt.J,"S",qt.S,"N",qt.N,"O",qt.O,Yi]}const Nd=Xi,P1=Object.freeze(Object.defineProperty({__proto__:null,PALETTE:qt,PROPERTY_KEY:Ed,RELIGION_FAMILIES:Jt,applyColor:Xi,buildColorExpression:Nd,default:{name:"Religion",propertyKey:Ed,palette:qt,families:Jt,getColor:Td,applyColor:Xi,buildColorExpression:Nd,fallback:Yi},getColor:Td,getReligionFamily:ja},Symbol.toStringTag,{value:"Module"})),Rd="region",Zi="#6d766e",Md={africa:"Africa",asia:"Asia",europe:"Europe","latin_america_&_caribbean":"Latin America & Caribbean",middle_east:"Middle East","north_america_&_non-spanish_caribbean":"North America & Non-Spanish Caribbean",oceania:"Oceania"},za={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},Ji=Object.keys(za);function Fd(e){var o,n,a;const t=(e==null?void 0:e.region)||((n=(o=e==null?void 0:e._raw)==null?void 0:o.wagf_region)==null?void 0:n.value)||((a=e==null?void 0:e._raw)==null?void 0:a.wagf_region);return za[t]||Zi}function Qi(){const e=["match",["coalesce",["get","region"],""]];for(const t of Ji)e.push(t,za[t]);return e.push(Zi),e}const Id=Qi,C1=Object.assign({"./adoption.js":y1,"./engagement.js":v1,"./language-family.js":L1,"./prayer-progress.js":S1,"./religion.js":P1,"./wagf-region.js":Object.freeze(Object.defineProperty({__proto__:null,PALETTE:za,PROPERTY_KEY:Rd,REGION_ORDER:Ji,WAGF_REGIONS:Md,applyColor:Qi,buildColorExpression:Id,default:{name:"WAGF Region",propertyKey:Rd,palette:za,regions:Md,order:Ji,getColor:Fd,applyColor:Qi,buildColorExpression:Id,fallback:Zi},getColor:Fd},Symbol.toStringTag,{value:"Module"}))}),E1=e=>e.replace(/-([a-z0-9])/g,(t,o)=>o.toUpperCase()),T1=e=>e.replace(/-/g,"_").toUpperCase(),Zn={...{STATUS:"status",CUSTOM:"custom"}},el={};function Od(e){for(const t of Object.keys(e).sort()){const o=t.split("/").pop().replace(/\.js$/,"");if(o.startsWith("_")||o.startsWith("."))continue;const n=e[t].default;if(!n)continue;const a=E1(o);Zn[T1(o)]=a,el[a]=n}}Od(C1);function N1(e){e&&Od(e)}function Ao(e){return el[e]||el[Zn.LANGUAGE_FAMILY]}function R1(e,t={}){return Ao(e).applyColor(t)}const M1=Object.assign({"./research-map.vue":()=>oo(()=>Promise.resolve().then(()=>SS),void 0)});if(N1(Object.assign({"./src/colors/affinity-block.js":af,"./src/colors/doxa-region.js":lf,"./src/colors/resource.js":pf})),typeof window<"u"&&((jg=window.mapboxgl)!=null&&jg.setRTLTextPlugin))try{window.mapboxgl.setRTLTextPlugin("https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.3.0/mapbox-gl-rtl-text.js",null,!0)}catch{}function F1(){return Im(b1,{configureApp(e){e.use(Km());const t=Jv();e.use(t),e.provide("appI18n",t),e.provide("profileModules",M1)}})}const I1=F1();typeof customElements<"u"&&(customElements.get("doxa-research-map")||customElements.define("doxa-research-map",I1));const O1="rgba(120, 128, 134, 0.28)",Dd="36px",Gd=()=>{};function D1(e,t={}){const{enabled:o=!0}=t;if(!o||!e)return Gd;const n=Array.from(e.querySelectorAll(".map-scroll-edge"));if(!n.length)return Gd;const a=f=>f.classList.contains("map-scroll-edge--left");for(const f of n)f.style.background=`linear-gradient(${a(f)?"to right":"to left"}, ${O1} ${Dd}, transparent ${Dd})`,f.style.opacity="0",f.style.transition="opacity 0.16s ease",f.style.userSelect="none",f.style.webkitUserSelect="none";const s=f=>{f.style.opacity="1"},r=f=>{f.style.opacity="0"},i=()=>n.find(f=>!a(f))||null,l=new Set;let c=!1,u=null;const p=()=>{for(const f of n)l.has(f)||r(f)},g=()=>{const f=i();f&&(s(f),u&&clearTimeout(u),u=setTimeout(p,250))},S=()=>g(),v=f=>{if(!(f.touches&&f.touches.length===1))return;const m=f.target;m&&m.classList&&m.classList.contains("map-scroll-edge")||g()},b=()=>{u&&clearTimeout(u),p()};e.addEventListener("wheel",S,{passive:!0}),e.addEventListener("touchmove",v,{passive:!0}),e.addEventListener("touchend",b,{passive:!0}),e.addEventListener("touchcancel",b,{passive:!0});const _=()=>{c||g()};typeof window<"u"&&window.addEventListener("scroll",_,{passive:!0});const $=[];for(const f of n){const m=()=>{l.add(f),s(f)},k=()=>{l.delete(f),r(f)},h=()=>{c=!0,s(f)},P=()=>{c=!1,r(f)};f.addEventListener("mouseenter",m),f.addEventListener("mouseleave",k),f.addEventListener("touchstart",h,{passive:!0}),f.addEventListener("touchend",P,{passive:!0}),$.push(()=>{f.removeEventListener("mouseenter",m),f.removeEventListener("mouseleave",k),f.removeEventListener("touchstart",h),f.removeEventListener("touchend",P)})}return function(){u&&(clearTimeout(u),u=null),e.removeEventListener("wheel",S),e.removeEventListener("touchmove",v),e.removeEventListener("touchend",b),e.removeEventListener("touchcancel",b),typeof window<"u"&&window.removeEventListener("scroll",_);for(const m of $)m();for(const m of n)r(m)}}const G1=Object.fromEntries([{id:"midnight-glow",label:"Midnight Glow",mood:"the prayer-map dark — pins glow like embers",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"night",maplibre:"https://tiles.openfreemap.org/styles/fiord",bestFor:["doxa-simple-map","my-upg-100-list"]},{id:"daylight",label:"Daylight",mood:"the same Standard world, lights on",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"day",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["doxa-research-map","gospel-resources"]},{id:"dawn",label:"Dawn",mood:"soft warm horizon — hopeful, quiet",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"dawn",maplibre:"https://tiles.openfreemap.org/styles/positron",bestFor:["doxa-simple-map"]},{id:"dusk",label:"Dusk",mood:"blue hour — calm contrast for bright pins",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"dusk",maplibre:"https://tiles.openfreemap.org/styles/fiord",bestFor:["my-upg-100-list"]},{id:"paper",label:"Paper",mood:"near-white minimal — data reads like print",mapbox:"mapbox://styles/mapbox/light-v11",maplibre:"https://tiles.openfreemap.org/styles/positron",bestFor:["research-dashboard","cities-internet"]},{id:"ink",label:"Ink",mood:"near-black minimal — maximum pin contrast",mapbox:"mapbox://styles/mapbox/dark-v11",maplibre:"https://tiles.openfreemap.org/styles/dark",bestFor:["my-upg-100-list","cities-internet"]},{id:"streetlife",label:"Street Life",mood:"full street detail — city-scale work",mapbox:"mapbox://styles/mapbox/streets-v12",maplibre:"https://tiles.openfreemap.org/styles/bright",bestFor:["cities-internet","key-cities"]},{id:"terrain",label:"Terrain",mood:"relief + parks — where people actually live",mapbox:"mapbox://styles/mapbox/outdoors-v12",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["doxa-research-map","country-posters"]},{id:"satellite",label:"Satellite",mood:"imagery — the real ground",mapbox:"mapbox://styles/mapbox/satellite-v9",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["country-posters"]},{id:"hybrid",label:"Hybrid",mood:"imagery + labels — orientation without losing ground truth",mapbox:"mapbox://styles/mapbox/satellite-streets-v12",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["key-cities"]},{id:"wayfinder-day",label:"Wayfinder Day",mood:"high-legibility navigation palette",mapbox:"mapbox://styles/mapbox/navigation-day-v1",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["gospel-resources"]},{id:"wayfinder-night",label:"Wayfinder Night",mood:"dark navigation — dashboards at night",mapbox:"mapbox://styles/mapbox/navigation-night-v1",maplibre:"https://tiles.openfreemap.org/styles/fiord",bestFor:["research-dashboard"]},{id:"galaxy",label:"Galaxy",mood:"the day side of Earth floating in space — normal land, blue oceans, black void behind the sphere",mapbox:"mapbox://styles/mapbox/standard",maplibre:"https://tiles.versatiles.org/assets/styles/colorful/style.json",bestFor:["research-dashboard","my-upg-100-list"]}].map(e=>[e.id,e]));function B1(e,t="mapbox"){if(typeof e!="string"||!e)return{style:void 0,lightPreset:void 0,paint:void 0};const o=G1[e];return o?t==="maplibre"?{style:o.maplibre,lightPreset:void 0,paint:o.paint}:{style:o.mapbox,lightPreset:o.lightPreset,paint:o.paint}:/^(mapbox:\/\/|https?:\/\/)/.test(e)?{style:e,lightPreset:void 0,paint:void 0}:{style:void 0,lightPreset:void 0,paint:void 0}}function j1(e,t){if(!e||!Array.isArray(t))return[];const o=[];for(const n of t)if(!(!n||!n.layer||!n.prop))try{if(!e.getLayer(n.layer))continue;e.setPaintProperty(n.layer,n.prop,n.value),o.push(n.layer+"."+n.prop)}catch{}return o}const z1=["mapbox","maplibre"],Bd="mapbox";function U1(e){return e&&typeof e=="object"&&"value"in e&&!("provider"in e)&&!("profile"in e)?e.value:e}function jd(e){const t=U1(e),o=t==null?void 0:t.provider,n=typeof location<"u"?new URLSearchParams(location.search).get("provider"):void 0,a=typeof window<"u"?window.MAP_PROVIDER:void 0,s=String(o||n||a||Bd).toLowerCase().trim();return z1.includes(s)?s:Bd}function V1(e){return e==="maplibre"?"MapLibre":"Mapbox"}function zd(e){return typeof window<"u"&&!!window.mapboxgl&&e instanceof window.mapboxgl.Map}function So(e,t="circle"){return zd(e)?{[`${t}-emissive-strength`]:1}:{}}const Ud={mapbox:"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.3.0/mapbox-gl-rtl-text.js",maplibre:"https://cdn.jsdelivr.net/npm/@mapbox/mapbox-gl-rtl-text@0.3.0/dist/mapbox-gl-rtl-text.js"};function K1(e){return!!e&&typeof window<"u"&&e===window.maplibregl}function H1(e){if(typeof window>"u")return!1;const t=e?[e]:[window.maplibregl,window.mapboxgl].filter(Boolean);let o=!1;for(const n of t)if(!(!n||!n.setRTLTextPlugin))try{if(K1(n)){if(n.getRTLTextPluginStatus&&n.getRTLTextPluginStatus()!=="unavailable")continue;const a=n.setRTLTextPlugin(Ud.maplibre,!0);a&&a.catch&&a.catch(()=>{})}else n.setRTLTextPlugin(Ud.mapbox,null,!0);o=!0}catch{}return o}const q1=/\[\s*"get"\s*,\s*"name(?::latin|:nonlatin|:en|_en|_int)?"\s*\]|\{name(?::latin|:nonlatin|:en|_en|_int)?\}/,Vd=new WeakMap;function W1(e){return typeof window<"u"&&!!window.maplibregl&&e instanceof window.maplibregl.Map}function Kd(e,t){if(!e||!t)return 0;const o=String(t).split("-")[0].toLowerCase();try{if(!W1(e))return typeof e.setLanguage=="function"&&e.setLanguage(o),0;const n=e.getStyle&&e.getStyle();if(!n||!Array.isArray(n.layers))return 0;let a=Vd.get(e);a||(a=new Map,Vd.set(e,a));let s=0;for(const r of n.layers){if(r.type!=="symbol"||!r.layout||r.layout["text-field"]==null)continue;const i=r.layout["text-field"],l=JSON.stringify(i);if(l.startsWith('["coalesce",["get","name:')){if(!a.has(r.id))continue}else{if(!q1.test(l))continue;a.set(r.id,i)}const c=o==="en"?a.get(r.id):["coalesce",["get","name:"+o],["get","name:latin"],["get","name"]];e.setLayoutProperty(r.id,"text-field",c),s++}return s}catch{return 0}}const Jn={mapbox:{global:"mapboxgl",js:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js",css:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css"},maplibre:{global:"maplibregl",js:"https://cdn.jsdelivr.net/npm/maplibre-gl@5/dist/maplibre-gl.js",css:"https://cdn.jsdelivr.net/npm/maplibre-gl@5/dist/maplibre-gl.css"}};function Hd(e){if(typeof window>"u")return;const t=window,o=()=>{try{const n=e.getContainer().querySelector(".mapboxgl-ctrl-logo, .maplibregl-ctrl-logo");n&&(n.style.display="none")}catch{}};if(t.__doxaLogoOwner&&t.__doxaLogoOwner!==e){e.once("load",o),o();return}t.__doxaLogoOwner=e,e.once("remove",()=>{t.__doxaLogoOwner===e&&(t.__doxaLogoOwner=null)})}const Y1=Jn.mapbox.css,X1="https://tiles.openfreemap.org/styles/liberty",Z1="https://tiles.openfreemap.org/styles/fiord";function tl(e){var o;const t=((o=Jn[e])==null?void 0:o.global)||Jn.mapbox.global;return typeof window<"u"?window[t]:void 0}async function J1(e){const t=Jn[e]||Jn.mapbox;if(tl(e)||typeof document>"u")return;if(!document.querySelector(`link[href="${t.css}"]`)){const n=document.createElement("link");n.rel="stylesheet",n.href=t.css,document.head.appendChild(n)}const o=document.querySelector(`script[src="${t.js}"]`);if(o){if(tl(e))return;await new Promise(n=>{o.addEventListener("load",n,{once:!0}),o.addEventListener("error",n,{once:!0})});return}await new Promise((n,a)=>{const s=document.createElement("script");s.src=t.js,s.async=!1,s.addEventListener("load",n,{once:!0}),s.addEventListener("error",()=>a(new Error(`[useMapInstance] Failed to load ${e} engine script`)),{once:!0}),document.head.appendChild(s)})}async function Q1(e,t){if(!e)return;const o=e.getRootNode();if(!(o instanceof ShadowRoot))return;const n=r=>new Promise(i=>setTimeout(i,r)),a=o.querySelector(`link[href="${t}"]`);if(a){if(a.sheet)return;await Promise.race([new Promise(r=>{a.addEventListener("load",r,{once:!0}),a.addEventListener("error",r,{once:!0})}),n(2e3)]);return}const s=document.createElement("link");s.rel="stylesheet",s.href=t,await Promise.race([new Promise(r=>{s.addEventListener("load",r,{once:!0}),s.addEventListener("error",r,{once:!0}),o.prepend(s)}),n(2e3)])}function ew(e,t){return typeof e=="string"&&/^https?:\/\//.test(e)?e:t==="night"||t==="dusk"?Z1:X1}const tw=85.0511,ol=-2,ow=0,nw=-60;function qd(e){return(1-Math.log(Math.tan(Math.PI/4+e*Math.PI/180/2))/Math.PI)/2}function aw(e,t,o,n){if(!e||e<=0||!t||t<=0)return ow;const a=Math.log2(e/512),s=qd(n)-qd(tw),r=Math.log2(t/(512*s)),i=Math.max(a,r);return Math.max(ol,Math.min(i,(o??18)-1))}function sw({containerRef:e,accessToken:t,style:o,config:n=void 0,provider:a=void 0,center:s=[20,10],zoom:r=2,bounds:i=void 0,fitBoundsOptions:l=void 0,minZoom:c=void 0,skipWorldFloor:u=!1,maxZoom:p=18,pitch:g=0,bearing:S=0,renderWorldCopies:v=!0,showEdgeBorders:b=!0,southCutoff:_=nw,maxBounds:$=void 0}){const f=ba(null),m=he(!1);let k=null,h=null,P=null,d=null;try{d=Ne("profileConfig",null)}catch{}a=a||jd(d);const C=a==="maplibre";let A=null;try{A=Ne("lang",null)}catch{}const B=()=>{const z=A&&typeof A=="object"&&"value"in A?A.value:A;if(typeof z=="string"&&z)return z;const D=d&&typeof d=="object"&&"value"in d?d.value:d;if(D&&(D.locale||D.lang))return String(D.locale||D.lang);try{const L=new URLSearchParams(location.search);return L.get("lang")||L.get("locale")||document.documentElement.lang||"en"}catch{return"en"}};async function V(){var $e;const z=B1(o,a),D=z.style||o;if(!e.value){console.error("containerRef.value is null — call initializeMap() inside onMounted()");return}const L=()=>!e.value;if(await J1(a),L())return;const y=tl(a);if(!y){console.error(`[useMapInstance] ${C?"maplibregl":"mapboxgl"} is not available. Add the ${C?"MapLibre":"Mapbox"} GL JS script to your page.`);return}if(H1(y),!C){if(!t&&typeof window<"u"&&typeof window.MAP_TOKEN=="string"&&window.MAP_TOKEN&&(t=window.MAP_TOKEN),!t){console.error('No Mapbox access token provided. Pass "tk" in profile-config JSON or set window.MAP_TOKEN.');return}if(!t.startsWith("pk.")){console.error('Mapbox token looks invalid (expected "pk." prefix). Got:',t.slice(0,10)+"...");return}}if(await Q1(e.value,C?Jn.maplibre.css:Y1),L()||(await new Promise(ne=>requestAnimationFrame(ne)),L()))return;const R=e.value,U=R.clientWidth,H=R.clientHeight;if(U===0||H===0){console.error(`[useMapInstance] Container has ZERO dimensions (${U}×${H}). Map will be invisible. Check that parent elements have CSS sizing.`);let ne=R.parentElement,te=0;for(;ne&&te<5;)ne=ne.parentElement,te++}const Q=t;C||(y.accessToken=Q);const re=()=>typeof window<"u"&&window.innerWidth>=1024,j=(ne,te)=>{if(u)return typeof c=="number"?c:ol;if(!re())return ol;const de=aw(ne,te,p,_);return typeof c=="number"?Math.max(c,de):de},be=j(R.clientWidth,R.clientHeight),xe=z.lightPreset||(()=>{var ne;try{const te=typeof n=="function"?n():n;return(ne=te==null?void 0:te.basemap)==null?void 0:ne.lightPreset}catch{return}})();if(C){f.value=new y.Map({container:e.value,style:ew(D,xe),center:s,zoom:r,minZoom:be,maxZoom:p,pitch:g,bearing:S,dragRotate:!1,renderWorldCopies:v,...i?{bounds:i,...l?{fitBoundsOptions:l}:{}}:{},...$?{maxBounds:$}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),Hd(f.value);try{e.value.__doxaMap=f.value}catch{}}else{const ne=typeof n=="function"?n():n;f.value=new y.Map({accessToken:Q,container:e.value,style:D,...ne?{config:ne}:{},center:s,zoom:r,minZoom:be,maxZoom:p,pitch:g,bearing:S,dragRotate:!1,touchPitch:!1,renderWorldCopies:v,...i?{bounds:i,...l?{fitBoundsOptions:l}:{}}:{},...$?{maxBounds:$}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),Hd(f.value);try{e.value.__doxaMap=f.value}catch{}}try{let ne=!1;f.value.on("error",te=>{var T,F;const de=((T=te==null?void 0:te.error)==null?void 0:T.status)??(te==null?void 0:te.status),Se=String(((F=te==null?void 0:te.error)==null?void 0:F.url)||(te==null?void 0:te.sourceId)||"");de!==401&&de!==403||ne||(ne=!0,console.error(`[doxa-maps] Mapbox returned ${de} for a TILE request while the style loaded fine. That is a URL RESTRICTION on the access token, not a bad token and not a bug in this map. Add this page's origin (${typeof location<"u"?location.origin:"this origin"}) to the token's URL restrictions in the Mapbox account. The map will keep its data layer and stay blank underneath until then.`+(Se?` First failing request: ${Se.slice(0,120)}`:"")))})}catch{}try{f.value.touchZoomRotate.disableRotation()}catch{}P=D1((($e=e.value)==null?void 0:$e.parentElement)||null,{enabled:b});let fe=be,we=null;k=()=>{const ne=f.value;if(!ne)return;const te=j(R.clientWidth,R.clientHeight);te!==fe&&(fe=te,ne.setMinZoom(te)),ne.getZoom(){we=null;const de=f.value;if(!de)return;const Se=j(R.clientWidth,R.clientHeight);if(de.getZoom(){we&&(clearTimeout(we),we=null)},f.value.on("resize",k),typeof window<"u"&&(window.addEventListener("resize",k),window.addEventListener("orientationchange",k)),f.value.on("style.load",()=>{if(f.value&&Kd(f.value,B()),z.paint&&f.value){const ne=j1(f.value,z.paint);console.info("[useMapInstance] style paint applied ("+a+"):",ne.join(", ")||"NONE MATCHED")}requestAnimationFrame(()=>{var ne;(ne=f.value)==null||ne.resize(),f.value&&f.value.setMinZoom(j(R.clientWidth,R.clientHeight)),m.value=!0})})}function J(){if(f.value){if(k&&(f.value.off("resize",k),typeof window<"u"&&(window.removeEventListener("resize",k),window.removeEventListener("orientationchange",k)),k=null),h){try{h()}catch{}h=null}P&&(P(),P=null),f.value.remove(),f.value=null,m.value=!1}}if(A&&typeof A=="object"&&"value"in A)try{Ie(A,()=>{f.value&&m.value&&Kd(f.value,B())})}catch{}return{map:f,isMapReady:m,initializeMap:V,destroy:J}}const rw=En&&En.tagName.toUpperCase()==="SCRIPT"&&En.src||new URL("doxa-research-map.js",document.baseURI).href,wn=e=>String(e||"").trim().replace(/\/+$/,"");function Wd(){try{const t=String(rw||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function iw(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return wn(t);if(typeof window<"u"){const o=window.MAP_EMBED_BASE_URL;if(typeof o=="string"&&o.trim())return wn(o)}return wn(Wd()||"")}function Yd(e){const t=wn("")||wn(Wd()||"");if(t)try{const o=typeof document<"u"?document.baseURI:void 0;return wn(new URL(t+"/assets",o).href)}catch{return wn(t+"/assets")}return"./assets"}function lw({shareUrl:e,embedPath:t,profileConfig:o}={}){const n=o||null,a=typeof window<"u",s=e||(n==null?void 0:n.shareUrl);if(typeof s=="string"&&s.trim())return s.trim();const r=String(t||(n==null?void 0:n.shareEmbedPath)||"").trim();if(r){if(/^https?:\/\//i.test(r))return r;if(r.startsWith("/"))return a?window.location.origin+r:r;const i=iw(n),l=r.replace(/^\.\//,"");if(i)return i+"/"+l;if(typeof document<"u")try{return new URL(l,document.baseURI).href}catch{}return l}return a?window.location.origin+window.location.pathname:""}const cw={Africa:{zoom:1.3,center:[16.6512,26.3538]},Asia:{zoom:.8,center:[98.2654,49.9282]},Europe:{zoom:1.4,center:[22.7826,70.1026]},"Latin America & Caribbean":{zoom:1.8,center:[-60.4619,10.1428]},"Middle East":{zoom:1.7,center:[22.9056,39.5752]},"No WAGF Region/Bloc":{zoom:.6,center:[-8.2363,44.2392]},"North America & Non-Spanish Caribbean":{zoom:2.1,center:[-68.1935,31.4282]},Oceania:{zoom:1.5,center:[161.6257,-.668]}},Xd={circleRadius:{standard:["interpolate",["linear"],["zoom"],0,3,2,3.5,4,4,5,5,6,6.5,7,8,8,10,10,14,12,18,14,22],highlighted:["interpolate",["linear"],["zoom"],0,4,4,5,8,12,12,20],faded:["interpolate",["linear"],["zoom"],0,2,4,2.5,8,5,12,8],compact:["interpolate",["linear"],["zoom"],0,2,4,3,8,6,12,10],large:["interpolate",["linear"],["zoom"],0,4,4,6,8,14,12,24],touchTarget:["interpolate",["linear"],["zoom"],0,12,2,15,4,19,6,20,8,21,10,22,12,24,14,28]}};function uw(e){return cw[e]||null}function nl(e="standard"){return Xd.circleRadius[e]||Xd.circleRadius.standard}function Zd(e={}){const{getMap:t=()=>null,mapId:o="unknown",getLanguageFamilyColor:n=()=>"#999999",getNormalizedPeopleGroups:a=()=>[]}=e,s=Ne("uiStore"),{t:r,locale:i}=bt(),l=he([]);function c(m){const k=n(m.languageFamily),h="https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg";let P=m.imageUrl;(!P||P.includes("NoImageAvailable"))&&(P=h);const d=(m.name||"U")[0].toUpperCase(),C=["#e74c3c","#3498db","#2ecc71","#f39c12","#9b59b6","#1abc9c","#e67e22","#34495e"],A=d.charCodeAt(0)%C.length;return` +`,"pin-hint"),(d,y)=>l.value?(Z(),re("div",{key:0,ref_key:"hintEl",ref:c,class:Re(["pin-hint",{dark:r.value}]),role:"status"},[R("span",W1,[y[0]||(y[0]=R("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),bt(" "+$e(i.value)+" ",1),R("button",{class:"pin-hint-x",type:"button","aria-label":"Dismiss hint",onClick:b},"×")])],2)):xe("",!0)}},$r="mapbox://styles/mapbox/standard",X1=$r,Z1=$r,J1=!1,Xd={lightPreset:"night",theme:"default"},Q1={lightPreset:"day",theme:"monochrome"};function ew(e){return e?/affinity|region|language/i.test(String(e))?"light":"dark":null}function tw(e){let t=!1;const o=new WeakSet;function n(){return!1}function a(){return n()?"night":"day"}let s="dark";function r($){return ew($)}function i($,m){$!=="light"&&$!=="dark"||(s=$,m&&h(m))}function l(){return{...s==="light"?Q1:Xd}}function c(){return $r}function u(){return{basemap:l()}}function p($,m){try{return typeof $.getConfigProperty=="function"?$.getConfigProperty("basemap",m):void 0}catch{return}}function g($){return!!$&&typeof $.setConfigProperty=="function"&&typeof $.getConfigProperty=="function"}function A($,m=!1){if(!g($))return!1;const b=l();let k=!1;try{for(const[E,x]of Object.entries(b))!m&&p($,E)===x||($.setConfigProperty("basemap",E,x),k=!0)}catch(E){console.warn("[useMapTheme] setConfigProperty failed:",E)}return k}function w($){if(!o.has($)&&(o.add($),!!g($)))try{$.on("style.load",()=>A($)),$.on("styledata",()=>A($))}catch{}}function h($){if(!$)return;if(w($),A($)&&!t){t=!0;try{$.once("idle",()=>{t=!1,A($,!0)})}catch{t=!1}}}function v($){e.toggleTheme(),h($)}return{setLook:i,lookFor:r,STANDARD_STYLE:$r,LIGHT_STYLE:X1,DARK_STYLE:Z1,isDarkTheme:n,lightPreset:a,basemapConfig:l,bootStyle:c,bootConfig:u,applyTheme:h,swapTheme:v}}let ow=0;const nw=Di("ui",{state:()=>({_storeInstanceId:++ow,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(o=>o.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 o=this.isDarkTheme;document.documentElement.setAttribute("data-theme",o?"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:o="info",duration:n=this.toastDuration,action:a=null,persistent:s=!1}=e,r={id:this.nextToastId++,message:t,type:o,duration:n,action:a,persistent:s,createdAt:Date.now()};return this.toasts.push(r),!s&&n>0&&setTimeout(()=>{this.removeToast(r.id)},n),r.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(o=>o.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(o=>{for(const n of o)this.updateWindowSize(n.contentRect.width,n.contentRect.height)}).observe(document.documentElement),window.matchMedia&&(window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",o=>{this.theme==="auto"&&document.documentElement.setAttribute("data-theme",o.matches?"dark":"light")}),window.matchMedia("(prefers-reduced-motion: reduce)").addEventListener("change",o=>{this.reducedMotion=o.matches,document.documentElement.setAttribute("data-reduced-motion",o.matches)}))}}}),aw=Di("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",clusteringMode:"off",clusterPinOpacity:.6,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,o={}){let n=1.5;o.zoom!==void 0?n=o.zoom:t&&typeof t.getZoom=="function"&&(n=t.getZoom());let a=[0,0];if(o.center)a=o.center;else if(t&&typeof t.getCenter=="function"){const s=t.getCenter();s&&(a=[s.lng,s.lat])}this.maps[e]={instance:t,config:o,isReady:!1,zoom:n,center:a,registeredAt:Date.now()},this.activeMapId||(this.activeMapId=e)},setMapReady(e){const t=this.maps[e];t&&(t.isReady=!0)},updateMapState(e,t){const o=this.maps[e];o&&Object.assign(o,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)},setClusteringMode(e){["off","mapbox","mst","network"].includes(e)&&(this.clusteringMode=e,this.showClusters=e!=="off")},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()}}}),sw=Di("data",{state:()=>({sources:{},loadingStates:{}}),actions:{async load(e,t){if(!this.sources[e]){this.loadingStates[e]={isLoading:!0,error:null};try{const o=await t();this.sources[e]=Wn({features:o,timestamp:Date.now()}),this.loadingStates[e]={isLoading:!1,error:null}}catch(o){console.error(`[dataStore] Failed to load source "${e}":`,o),this.loadingStates[e]={isLoading:!1,error:o}}}},clearSource(e){delete this.sources[e],delete this.loadingStates[e]},cacheSourceData(e,t){this.sources[e]=Wn({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 o;return((o=e.sources[t])==null?void 0:o.features)??null},isLoading:e=>t=>{var o;return((o=e.loadingStates[t])==null?void 0:o.isLoading)??!1},getError:e=>t=>{var o;return((o=e.loadingStates[t])==null?void 0:o.error)??null}}}),Fn={_meta:{_comment:"Single source of truth for data-source connections across all doxa-maps bundles.",_comment_token:"Mapbox access token is fetched at runtime from window.MAP_TOKEN_URL (same modular pattern as window.MAP_APP_API_URL). Not hardcoded to any host — set mapboxTokenUrl below or override window.MAP_TOKEN_URL on the host page.",mapboxTokenUrl:"window.MAP_TOKEN_URL"},activeSource:"pray-tools",sources:{"pray-tools":{id:"pray-tools",name:"Prayer.Tools API",type:"rest-api",description:"pray.doxa.life live API — people-group prayer, engagement, and adoption data. Base URL read from window.MAP_APP_API_URL or VITE_API_BASE_URL at runtime.",endpoints:{bulk:"/api/people-groups/list",detail:"/api/people-groups/detail/{slug}",statistics:"/api/people-groups/statistics"},queryParams:{lang:"en"},defaultFields:["slug","name","latitude","longitude","wagf_region","wagf_block","wagf_member","rop1","imb_reg_of_people_2","imb_reg_of_people_25","imb_reg_of_people_3","country_code","religion","population","has_photo","image_url","people_praying","people_committed","adopted_by_churches","engagement_status","imb_gsec","primary_language","imb_language_family","imb_language_class","imb_language_speakers"],pollFields:["slug","people_praying"],pollInterval:3e5,fallbackSourceId:null,fieldMappings:{uniqueId:"slug",slug:"slug",name:"name",latitude:"latitude",longitude:"longitude",wagfRegion:"wagf_region",doxaRegion:"wagf_region",wagfBlock:"wagf_block",wagfMember:"wagf_member",affinityBlock:"rop1",countryIso:"country_code",religion:"religion",religionCode:"religion",population:"population",hasPhoto:"has_photo",imageUrl:"image_url",photoUrl:"image_url",peoplePraying:"people_praying",peopleCommitted:"people_committed",engagementStatus:"engagement_status",adoptionStatus:"adopted_by_churches",language:"primary_language",cluster:"imb_reg_of_people_2",peopleGroup:"imb_reg_of_people_25",peopleGroupCountry:"imb_reg_of_people_3",languageFamily:"imb_language_family",languageClass:"imb_language_class",languageSpeakers:"imb_language_speakers"},imageConfig:{useField:"imageUrl",fallbackField:null,fallbackUrlTemplate:null,placeholderUrl:"https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg",useSvgPlaceholder:!0}},"doxa-csv":{id:"doxa-csv",name:"DOXA People Groups CSV",type:"csv",path:"assets/data/Joshua-project-ids-Doxa-1439.csv",description:"People groups dataset from DOXA / Joshua Project",fieldMappings:{uniqueId:"ROP3",peopleGroupId:"ROP3",countryCode:"ROG",peopleId3:"PeopleID3",name:"Name",displayName:"NmDisp",alternateName:"NmAlt",description:"PeopleDesc",locationDescription:"LocationDe",country:"Ctry",countryIso:"ISOalpha3",region:"Regn",subRegion:"RegnSub",wagfRegion:"WAGF Region",doxaRegion:"WAGF Region",wagfBlock:"WAGF BLOCK",affinityBloc:"Affbloc",affinityBlock:"ROP1",affinityCode:"AffCd",affinityName:"Aff",peopleCluster:"PplClstr",ethneName:"Ethne",latitude:"Latitude",longitude:"Longitude",population:"Pop",populationClass:"PopCls",status:"Status",engagementStatus:"EngStat",evangelicalLevel:"EvngLvl",gsec:"GSEC",gsecBrief:"GSECbrf",gsecLong:"GSEClng",spiScore:"SPI",spiDescription:"SPIdesc",language:"Lang",languageCode:"ROL",languageFamily:"LangFamily",religion:"Rlgn",religionCode:"ROR",religionDescription:"RORdesc",religionBase:"RlgnBs",religionDiv:"RlgnDiv",bible:"Bible",jesusFilm:"Jesus",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",resourcesTotal:"ResTot",bibleLevel:"LvlBible",yearPublished:"YrPub",photoCredit:"PicCrdt",photoUrl:"PicURL",hasPhoto:"Photo",isIndigenous:"Indigenous"},imageConfig:{useField:"photoUrl",fallbackField:"peopleId3",fallbackUrlTemplate:"https://joshuaproject.net/assets/media/profiles/photos/p{peopleId3}.jpg",placeholderUrl:"https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg"}}},systemFields:{uniqueId:{description:"Unique identifier per row (slug for API, ROP3+ROG for CSV)",required:!0},peopleGroupId:{description:"People group ID — same group can appear in multiple countries",required:!0},name:{description:"People group display name",required:!0},latitude:{description:"Latitude coordinate for map pin",required:!0},longitude:{description:"Longitude coordinate for map pin",required:!0},engagementStatus:{description:"Boolean — true if engaged_status = 'engaged'",required:!1},adoptionStatus:{description:"Boolean — true if adopted_by_churches > 0",required:!1},peoplePraying:{description:"Number of people currently praying for this group — from pray-tools API",required:!1},peopleCommitted:{description:"Raw count of committed workers for this group — source of engagementStatus",required:!1},languageFamily:{description:"Language family name",required:!1},religion:{description:"Primary religion",required:!1},population:{description:"Population count",required:!1},doxaRegion:{description:"WAGF/DOXA region name",required:!1},photoUrl:{description:"URL to people group photo",required:!1},description:{description:"People group description text",required:!1}}},rw=".profile-loader[data-v-ccbcaedb]{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-ccbcaedb]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}",jt=(e,t)=>{const o=e.__vccOpts||e;for(const[n,a]of t)o[n]=a;return o},iw=["dir"],lw={key:0,class:"profile-error"},cw={key:1,class:"profile-error"},uw=jt({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var x;const o=e,n=Te("profileConfig",null),a=ee(()=>{var d;if(!o.profileConfig)return null;let f;try{f=JSON.parse(o.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",o.profileConfig),null}if(f&&f.assetsBase===void 0){const y=(d=n==null?void 0:n.value)==null?void 0:d.assetsBase;typeof y=="string"&&y&&(f.assetsBase=y)}return f}),s=ee(()=>{var f;return((f=a.value)==null?void 0:f.profile)||null}),r=Kb(),i=ee(()=>{var d;const f=(d=a.value)==null?void 0:d.tk;return typeof f=="string"&&f?f:r.value||""});Me(()=>{var f;return(f=a.value)==null?void 0:f.tk},f=>{typeof f=="string"&&f&&Ep(f)},{immediate:!0});const l=ee(()=>{var f;return((f=a.value)==null?void 0:f.dataSource)||Fn.activeSource||"doxa-csv"}),c=ee(()=>{var f;return((f=a.value)==null?void 0:f.colorSet)||"default"}),u=ee(()=>!1),p=ee(()=>{var f;return((f=a.value)==null?void 0:f.pinHint)!==!1}),g=ee(()=>{var d,y;const f=(((d=a.value)==null?void 0:d.locale)||((y=a.value)==null?void 0:y.lang)||"").split("-")[0].toLowerCase();return ss.includes(f)?f:""}),A=Te("appI18n",null);Hh(()=>{g.value&&(A&&(A.global.locale.value=g.value),Yd(g.value))});const w=ee(()=>{var f,d;return g.value||((d=(f=A==null?void 0:A.global)==null?void 0:f.locale)==null?void 0:d.value)||"en"}),h=ee(()=>Hd.has(w.value)?"rtl":"ltr"),v=ee(()=>{var f;return((f=a.value)==null?void 0:f.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),$=Te("profileModules",null);if(!$)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const m=ee(()=>{if(!s.value)return null;const f=`./${s.value}.vue`;return $[f]?es($[f]):(console.error(`[ProfileLoader] Profile not found: "${s.value}". Available:`,Object.keys($)),null)});vt("mapboxToken",i),vt("dataSource",l),vt("colorSet",c),vt("profileConfig",a),vt("instanceId",v),vt("lang",w);const b=nw(),k=aw(),E=sw();try{const f=typeof localStorage<"u"?localStorage.getItem("theme"):null;f&&((x=b.setTheme)==null||x.call(b,f))}catch{}return vt("uiStore",b),vt("mapStore",k),vt("dataStore",E),(f,d)=>(Z(),re("div",{class:"profile-loader",dir:h.value},[a.value?m.value?(Z(),We(bu(m.value),{key:2})):(Z(),re("div",cw,[R("p",null,[d[1]||(d[1]=bt("⚠️ Profile ",-1)),R("strong",null,'"'+$e(s.value)+'"',1),d[2]||(d[2]=bt(" not found.",-1))])])):(Z(),re("div",lw,[...d[0]||(d[0]=[R("p",null,[bt("⚠️ "),R("strong",null,"doxa-map"),bt(": missing or invalid "),R("code",null,"profile-config"),bt(" prop.")],-1),R("p",null,[bt("Example: "),R("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),m.value&&u.value?(Z(),We(bu(ue(null)),{key:3})):xe("",!0),m.value&&p.value?(Z(),We(Y1,{key:4})):xe("",!0)],8,iw))}},[["styles",[rw]],["__scopeId","data-v-ccbcaedb"]]),Zd="adoptionStatus",Qo={notAdopted:"#f03b2d",hasAdoption:"#22c55e"},rl=Qo,il={notAdopted:"Needs Adoption",hasAdopted:"Has Adoption"},pw=il;function Jd(e){var n;const t=e.adoptionStatus??((n=e._raw)==null?void 0:n.adopted_by_churches);return t===!0||t===1||typeof t=="number"&&t>0||typeof t=="object"&&(t==null?void 0:t.value)?Qo.hasAdoption:Qo.notAdopted}function ll({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","adoptionStatus"]:["get","adoptionStatus"];return["case",["==",t,!0],Qo.hasAdoption,["==",t,1],Qo.hasAdoption,Qo.notAdopted]}const Qd=ll,dw=Object.freeze(Object.defineProperty({__proto__:null,ADOPTION_COLORS:rl,ADOPTION_LABELS:pw,LABELS:il,PALETTE:Qo,PROPERTY_KEY:Zd,applyColor:ll,buildColorExpression:Qd,default:{name:"Adoption Progress",propertyKey:Zd,palette:Qo,colors:Qo,labels:il,getColor:Jd,applyColor:ll,buildColorExpression:Qd},getColor:Jd},Symbol.toStringTag,{value:"Module"})),eg="engagementStatus",en={notEngaged:"#f03b2d",hasEngagement:"#22c55e"},cl=en,ul={notEngaged:"Unengaged",hasEngagement:"Engaged"},gw=ul;function tg(e){var n;const t=e.engagementStatus??((n=e._raw)==null?void 0:n.people_committed);return t===!0||t===1||typeof t=="number"&&t>0||typeof t=="object"&&(t==null?void 0:t.value)?en.hasEngagement:en.notEngaged}function pl({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","engagementStatus"]:["get","engagementStatus"];return["case",["==",t,!0],en.hasEngagement,["==",t,1],en.hasEngagement,en.notEngaged]}const og=pl,fw=Object.freeze(Object.defineProperty({__proto__:null,ENGAGEMENT_COLORS:cl,ENGAGEMENT_LABELS:gw,LABELS:ul,PALETTE:en,PROPERTY_KEY:eg,applyColor:pl,buildColorExpression:og,default:{name:"Engagement Progress",propertyKey:eg,palette:en,colors:en,labels:ul,getColor:tg,applyColor:pl,buildColorExpression:og},getColor:tg},Symbol.toStringTag,{value:"Module"})),dl="languageFamily",hw="#000000",bn={"Indo-European":"#e74c3c",Dravidian:"#ff9800","Afro-Asiatic":"#27ae60","Sino-Tibetan":"#3498db","Niger-Congo":"#9b59b6",Unclassified:"#95a5a6","Nilo-Saharan":"#e91e63","Khoe-Kwadi":"#00bcd4","Austro-Asiatic":"#00bcd4","Kra-Dai":"#8e44ad",Austronesian:"#ff69b4","Hmong-Mien":"#f44336",Turkic:"#ffc107","Nakh-Daghestanian":"#009688",Mongolic:"#795548",Uralic:"#607d8b",Tungusic:"#4caf50",Japonic:"#ff5722",Cariban:"#673ab7",Tupian:"#03a9f4",Tucanoan:"#8bc34a",Maipurean:"#ffc107",Panoan:"#cddc39",Guajiboan:"#9e9e9e",Chibchan:"#ff7043",Quechuan:"#ab47bc",Jean:"#26a69a",Harákmbut:"#7e57c2",Nambikwara:"#42a5f5",Muran:"#66bb6a",Karajá:"#ffa726",Bororoan:"#ef5350",Arauan:"#5c6bc0",Yanomaman:"#26c6da",Yaguan:"#d4e157",Witotoan:"#78909c",Zamucoan:"#8d6e63",Puinavean:"#aed581",Barbacoan:"#4db6ac","Eyak-Athabaskan":"#7986cb","Trans-New Guinea":"#ba68c8",Andamanese:"#4dd0e1","Atlantic-Congo":"#7D3C98",Mande:"#B9770E","Sign Language":"#212121",Creole:"#9575cd","Mixed language":"#a1887f","Language isolate":"#90a4ae",Unknown:"#000000"},ng=bn;function mo(e){return bn[e]||hw}const mw=(()=>{const e=o=>String(o||"").toLowerCase().trim(),t={};for(const o of Object.keys(bn))t[e(o)]=o;return t})(),bw={"tai-kadai":"Kra-Dai",none:"Unknown"};function yr(e){if(!e)return"Unknown";const t=String(e).trim(),o=t.toLowerCase();return bw[o]||mw[o]||t}function ag(e){var t;return mo(e.languageFamily||((t=e._normalized)==null?void 0:t.languageFamily))}function gl(){const e=["match",["get",dl]];return Object.entries(bn).forEach(([t,o])=>{e.push(t,o)}),e.push("#95a5a6"),e}const sg=gl,$w=Object.freeze(Object.defineProperty({__proto__:null,LANGUAGE_FAMILY_COLORS:ng,PALETTE:bn,PROPERTY_KEY:dl,applyColor:gl,buildColorExpression:sg,canonicalFamilyName:yr,default:{name:"Language Family",propertyKey:dl,palette:bn,colors:bn,getColor:ag,applyColor:gl,buildColorExpression:sg,getLanguageFamilyColor:mo,canonicalFamilyName:yr},defaultFamilyColor:"#95a5a6",getColor:ag,getLanguageFamilyColor:mo,languageFamilyColors:bn},Symbol.toStringTag,{value:"Module"})),rg="peoplePraying",Co=144,$n={noPrayer:"#f03b2d",hasPrayer:"#f0c64a",fullPrayer:"#22c55e"},In=$n,fl={noPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayer:"Has Full Prayer Coverage"},yw=fl;function _r(e){var n;const t=(e==null?void 0:e.peoplePraying)??((n=e==null?void 0:e._raw)==null?void 0:n.people_praying)??null,o=Number(t)||0;return o>=Co?"fullPrayer":o>0?"hasPrayer":"noPrayer"}function hl(e){return $n[_r(e)]}function ig(e){var o;const t=(e==null?void 0:e.peoplePraying)??((o=e==null?void 0:e._raw)==null?void 0:o.people_praying)??null;return t!==null&&t>0}function lg(e){return _r(e)==="fullPrayer"}function cg(e){return hl(e)}function ml({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","peoplePraying"]:["get","peoplePraying"];return["case",[">=",t,Co],$n.fullPrayer,[">",t,0],$n.hasPrayer,$n.noPrayer]}const ug=ml,_w=Object.freeze(Object.defineProperty({__proto__:null,FULL_PRAYER_THRESHOLD:Co,LABELS:fl,PALETTE:$n,PRAYER_COLORS:In,PRAYER_LABELS:yw,PROPERTY_KEY:rg,applyColor:ml,buildColorExpression:ug,checkHasFullPrayer:lg,checkHasPrayer:ig,default:{name:"Prayer Progress",propertyKey:rg,palette:$n,colors:$n,labels:fl,threshold:Co,getColor:cg,applyColor:ml,buildColorExpression:ug,getPrayerLevel:_r,getPrayerColor:hl,checkHasPrayer:ig,checkHasFullPrayer:lg},getColor:cg,getPrayerColor:hl,getPrayerLevel:_r},Symbol.toStringTag,{value:"Module"})),pg="religion",bl="#94a3b8",ro={C:"Christianity",M:"Islam",H:"Hinduism",B:"Buddhism",E:"Ethnoreligion",J:"Judaism",S:"Sikhism",N:"Unaffiliated",O:"Other",U:"Unknown"},Yt={C:"#3b82f6",M:"#ef4444",H:"#f59e0b",B:"#facc15",E:"#84cc16",J:"#a855f7",S:"#ec4899",N:"#71717a",O:"#ff6b2b",U:"#94a3b8"};function is(e){if(!e||typeof e!="string")return"U";const t=e.charAt(0).toUpperCase();return ro[t]?t:"U"}function dg(e){var o,n,a;const t=(e==null?void 0:e.religion)||((n=(o=e==null?void 0:e._raw)==null?void 0:o.religion)==null?void 0:n.value)||((a=e==null?void 0:e._raw)==null?void 0:a.religion);return Yt[is(t)]||bl}function $l(){return["match",["slice",["coalesce",["get","religion"],""],0,1],"C",Yt.C,"M",Yt.M,"H",Yt.H,"B",Yt.B,"E",Yt.E,"J",Yt.J,"S",Yt.S,"N",Yt.N,"O",Yt.O,bl]}const gg=$l,vw=Object.freeze(Object.defineProperty({__proto__:null,PALETTE:Yt,PROPERTY_KEY:pg,RELIGION_FAMILIES:ro,applyColor:$l,buildColorExpression:gg,default:{name:"Religion",propertyKey:pg,palette:Yt,families:ro,getColor:dg,applyColor:$l,buildColorExpression:gg,fallback:bl},getColor:dg,getReligionFamily:is},Symbol.toStringTag,{value:"Module"})),fg="region",yl="#6d766e",hg={africa:"Africa",asia:"Asia",europe:"Europe","latin_america_&_caribbean":"Latin America & Caribbean",middle_east:"Middle East","north_america_&_non-spanish_caribbean":"North America & Non-Spanish Caribbean",oceania:"Oceania"},ls={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},_l=Object.keys(ls);function mg(e){var o,n,a;const t=(e==null?void 0:e.region)||((n=(o=e==null?void 0:e._raw)==null?void 0:o.wagf_region)==null?void 0:n.value)||((a=e==null?void 0:e._raw)==null?void 0:a.wagf_region);return ls[t]||yl}function vl(){const e=["match",["coalesce",["get","region"],""]];for(const t of _l)e.push(t,ls[t]);return e.push(yl),e}const bg=vl,ww=Object.assign({"./adoption.js":dw,"./engagement.js":fw,"./language-family.js":$w,"./prayer-progress.js":_w,"./religion.js":vw,"./wagf-region.js":Object.freeze(Object.defineProperty({__proto__:null,PALETTE:ls,PROPERTY_KEY:fg,REGION_ORDER:_l,WAGF_REGIONS:hg,applyColor:vl,buildColorExpression:bg,default:{name:"WAGF Region",propertyKey:fg,palette:ls,regions:hg,order:_l,getColor:mg,applyColor:vl,buildColorExpression:bg,fallback:yl},getColor:mg},Symbol.toStringTag,{value:"Module"}))}),kw=e=>e.replace(/-([a-z0-9])/g,(t,o)=>o.toUpperCase()),xw=e=>e.replace(/-/g,"_").toUpperCase(),ca={...{STATUS:"status",CUSTOM:"custom"}},wl={};function $g(e){for(const t of Object.keys(e).sort()){const o=t.split("/").pop().replace(/\.js$/,"");if(o.startsWith("_")||o.startsWith("."))continue;const n=e[t].default;if(!n)continue;const a=kw(o);ca[xw(o)]=a,wl[a]=n}}$g(ww);function Lw(e){e&&$g(e)}function Eo(e){return wl[e]||wl[ca.LANGUAGE_FAMILY]}function Aw(e,t={}){return Eo(e).applyColor(t)}const Sw=Object.assign({"./research-map.vue":()=>lo(()=>Promise.resolve().then(()=>_P),void 0)});if(Lw(Object.assign({"./src/colors/affinity-block.js":Vf,"./src/colors/doxa-region.js":qf,"./src/colors/resource.js":Xf})),typeof window<"u"&&((Lf=window.mapboxgl)!=null&&Lf.setRTLTextPlugin))try{window.mapboxgl.setRTLTextPlugin("https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.3.0/mapbox-gl-rtl-text.js",null,!0)}catch{}function Pw(){return Pb(uw,{configureApp(e){e.use(Db());const t=K1();e.use(t),e.provide("appI18n",t),e.provide("profileModules",Sw)}})}const Cw=Pw();typeof customElements<"u"&&(customElements.get("doxa-research-map")||customElements.define("doxa-research-map",Cw));const Ew="rgba(120, 128, 134, 0.28)",yg="36px",_g=()=>{};function Tw(e,t={}){const{enabled:o=!0}=t;if(!o||!e)return _g;const n=Array.from(e.querySelectorAll(".map-scroll-edge"));if(!n.length)return _g;const a=m=>m.classList.contains("map-scroll-edge--left");for(const m of n)m.style.background=`linear-gradient(${a(m)?"to right":"to left"}, ${Ew} ${yg}, transparent ${yg})`,m.style.opacity="0",m.style.transition="opacity 0.16s ease",m.style.userSelect="none",m.style.webkitUserSelect="none";const s=m=>{m.style.opacity="1"},r=m=>{m.style.opacity="0"},i=()=>n.find(m=>!a(m))||null,l=new Set;let c=!1,u=null;const p=()=>{for(const m of n)l.has(m)||r(m)},g=()=>{const m=i();m&&(s(m),u&&clearTimeout(u),u=setTimeout(p,250))},A=()=>g(),w=m=>{if(!(m.touches&&m.touches.length===1))return;const b=m.target;b&&b.classList&&b.classList.contains("map-scroll-edge")||g()},h=()=>{u&&clearTimeout(u),p()};e.addEventListener("wheel",A,{passive:!0}),e.addEventListener("touchmove",w,{passive:!0}),e.addEventListener("touchend",h,{passive:!0}),e.addEventListener("touchcancel",h,{passive:!0});const v=()=>{c||g()};typeof window<"u"&&window.addEventListener("scroll",v,{passive:!0});const $=[];for(const m of n){const b=()=>{l.add(m),s(m)},k=()=>{l.delete(m),r(m)},E=()=>{c=!0,s(m)},x=()=>{c=!1,r(m)};m.addEventListener("mouseenter",b),m.addEventListener("mouseleave",k),m.addEventListener("touchstart",E,{passive:!0}),m.addEventListener("touchend",x,{passive:!0}),$.push(()=>{m.removeEventListener("mouseenter",b),m.removeEventListener("mouseleave",k),m.removeEventListener("touchstart",E),m.removeEventListener("touchend",x)})}return function(){u&&(clearTimeout(u),u=null),e.removeEventListener("wheel",A),e.removeEventListener("touchmove",w),e.removeEventListener("touchend",h),e.removeEventListener("touchcancel",h),typeof window<"u"&&window.removeEventListener("scroll",v);for(const b of $)b();for(const b of n)r(b)}}const Nw=Object.fromEntries([{id:"midnight-glow",label:"Midnight Glow",mood:"the prayer-map dark — pins glow like embers",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"night",maplibre:"https://tiles.openfreemap.org/styles/fiord",bestFor:["doxa-simple-map","my-upg-100-list"]},{id:"daylight",label:"Daylight",mood:"the same Standard world, lights on",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"day",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["doxa-research-map","gospel-resources"]},{id:"dawn",label:"Dawn",mood:"soft warm horizon — hopeful, quiet",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"dawn",maplibre:"https://tiles.openfreemap.org/styles/positron",bestFor:["doxa-simple-map"]},{id:"dusk",label:"Dusk",mood:"blue hour — calm contrast for bright pins",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"dusk",maplibre:"https://tiles.openfreemap.org/styles/fiord",bestFor:["my-upg-100-list"]},{id:"paper",label:"Paper",mood:"near-white minimal — data reads like print",mapbox:"mapbox://styles/mapbox/light-v11",maplibre:"https://tiles.openfreemap.org/styles/positron",bestFor:["research-dashboard","cities-internet"]},{id:"ink",label:"Ink",mood:"near-black minimal — maximum pin contrast",mapbox:"mapbox://styles/mapbox/dark-v11",maplibre:"https://tiles.openfreemap.org/styles/dark",bestFor:["my-upg-100-list","cities-internet"]},{id:"streetlife",label:"Street Life",mood:"full street detail — city-scale work",mapbox:"mapbox://styles/mapbox/streets-v12",maplibre:"https://tiles.openfreemap.org/styles/bright",bestFor:["cities-internet","key-cities"]},{id:"terrain",label:"Terrain",mood:"relief + parks — where people actually live",mapbox:"mapbox://styles/mapbox/outdoors-v12",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["doxa-research-map","country-posters"]},{id:"satellite",label:"Satellite",mood:"imagery — the real ground",mapbox:"mapbox://styles/mapbox/satellite-v9",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["country-posters"]},{id:"hybrid",label:"Hybrid",mood:"imagery + labels — orientation without losing ground truth",mapbox:"mapbox://styles/mapbox/satellite-streets-v12",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["key-cities"]},{id:"wayfinder-day",label:"Wayfinder Day",mood:"high-legibility navigation palette",mapbox:"mapbox://styles/mapbox/navigation-day-v1",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["gospel-resources"]},{id:"wayfinder-night",label:"Wayfinder Night",mood:"dark navigation — dashboards at night",mapbox:"mapbox://styles/mapbox/navigation-night-v1",maplibre:"https://tiles.openfreemap.org/styles/fiord",bestFor:["research-dashboard"]},{id:"galaxy",label:"Galaxy",mood:"the day side of Earth floating in space — normal land, blue oceans, black void behind the sphere",mapbox:"mapbox://styles/mapbox/standard",maplibre:"https://tiles.versatiles.org/assets/styles/colorful/style.json",bestFor:["research-dashboard","my-upg-100-list"]}].map(e=>[e.id,e]));function Rw(e,t="mapbox"){if(typeof e!="string"||!e)return{style:void 0,lightPreset:void 0,paint:void 0};const o=Nw[e];return o?t==="maplibre"?{style:o.maplibre,lightPreset:void 0,paint:o.paint}:{style:o.mapbox,lightPreset:o.lightPreset,paint:o.paint}:/^(mapbox:\/\/|https?:\/\/)/.test(e)?{style:e,lightPreset:void 0,paint:void 0}:{style:void 0,lightPreset:void 0,paint:void 0}}function Mw(e,t){if(!e||!Array.isArray(t))return[];const o=[];for(const n of t)if(!(!n||!n.layer||!n.prop))try{if(!e.getLayer(n.layer))continue;e.setPaintProperty(n.layer,n.prop,n.value),o.push(n.layer+"."+n.prop)}catch{}return o}const Fw=["mapbox","maplibre"],vg="mapbox";function Iw(e){return e&&typeof e=="object"&&"value"in e&&!("provider"in e)&&!("profile"in e)?e.value:e}function wg(e){const t=Iw(e),o=t==null?void 0:t.provider,n=typeof location<"u"?new URLSearchParams(location.search).get("provider"):void 0,a=typeof window<"u"?window.MAP_PROVIDER:void 0,s=String(o||n||a||vg).toLowerCase().trim();return Fw.includes(s)?s:vg}function Ow(e){return e==="maplibre"?"MapLibre":"Mapbox"}function kg(e){return typeof window<"u"&&!!window.mapboxgl&&e instanceof window.mapboxgl.Map}function To(e,t="circle"){return kg(e)?{[`${t}-emissive-strength`]:1}:{}}const xg={mapbox:"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.3.0/mapbox-gl-rtl-text.js",maplibre:"https://cdn.jsdelivr.net/npm/@mapbox/mapbox-gl-rtl-text@0.3.0/dist/mapbox-gl-rtl-text.js"};function Dw(e){return!!e&&typeof window<"u"&&e===window.maplibregl}function Bw(e){if(typeof window>"u")return!1;const t=e?[e]:[window.maplibregl,window.mapboxgl].filter(Boolean);let o=!1;for(const n of t)if(!(!n||!n.setRTLTextPlugin))try{if(Dw(n)){if(n.getRTLTextPluginStatus&&n.getRTLTextPluginStatus()!=="unavailable")continue;const a=n.setRTLTextPlugin(xg.maplibre,!0);a&&a.catch&&a.catch(()=>{})}else n.setRTLTextPlugin(xg.mapbox,null,!0);o=!0}catch{}return o}const Gw=/\[\s*"get"\s*,\s*"name(?::latin|:nonlatin|:en|_en|_int)?"\s*\]|\{name(?::latin|:nonlatin|:en|_en|_int)?\}/,Lg=new WeakMap;function jw(e){return typeof window<"u"&&!!window.maplibregl&&e instanceof window.maplibregl.Map}function Ag(e,t){if(!e||!t)return 0;const o=String(t).split("-")[0].toLowerCase();try{if(!jw(e))return typeof e.setLanguage=="function"&&e.setLanguage(o),0;const n=e.getStyle&&e.getStyle();if(!n||!Array.isArray(n.layers))return 0;let a=Lg.get(e);a||(a=new Map,Lg.set(e,a));let s=0;for(const r of n.layers){if(r.type!=="symbol"||!r.layout||r.layout["text-field"]==null)continue;const i=r.layout["text-field"],l=JSON.stringify(i);if(l.startsWith('["coalesce",["get","name:')){if(!a.has(r.id))continue}else{if(!Gw.test(l))continue;a.set(r.id,i)}const c=o==="en"?a.get(r.id):["coalesce",["get","name:"+o],["get","name:latin"],["get","name"]];e.setLayoutProperty(r.id,"text-field",c),s++}return s}catch{return 0}}const ua={mapbox:{global:"mapboxgl",js:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js",css:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css"},maplibre:{global:"maplibregl",js:"https://cdn.jsdelivr.net/npm/maplibre-gl@5/dist/maplibre-gl.js",css:"https://cdn.jsdelivr.net/npm/maplibre-gl@5/dist/maplibre-gl.css"}};function Sg(e){if(typeof window>"u")return;const t=window,o=()=>{try{const n=e.getContainer().querySelector(".mapboxgl-ctrl-logo, .maplibregl-ctrl-logo");n&&(n.style.display="none")}catch{}};if(t.__doxaLogoOwner&&t.__doxaLogoOwner!==e){e.once("load",o),o();return}t.__doxaLogoOwner=e,e.once("remove",()=>{t.__doxaLogoOwner===e&&(t.__doxaLogoOwner=null)})}const zw=ua.mapbox.css,Uw="https://tiles.openfreemap.org/styles/liberty",Vw="https://tiles.openfreemap.org/styles/fiord";function kl(e){var o;const t=((o=ua[e])==null?void 0:o.global)||ua.mapbox.global;return typeof window<"u"?window[t]:void 0}async function Kw(e){const t=ua[e]||ua.mapbox;if(kl(e)||typeof document>"u")return;if(!document.querySelector(`link[href="${t.css}"]`)){const n=document.createElement("link");n.rel="stylesheet",n.href=t.css,document.head.appendChild(n)}const o=document.querySelector(`script[src="${t.js}"]`);if(o){if(kl(e))return;await new Promise(n=>{o.addEventListener("load",n,{once:!0}),o.addEventListener("error",n,{once:!0})});return}await new Promise((n,a)=>{const s=document.createElement("script");s.src=t.js,s.async=!1,s.addEventListener("load",n,{once:!0}),s.addEventListener("error",()=>a(new Error(`[useMapInstance] Failed to load ${e} engine script`)),{once:!0}),document.head.appendChild(s)})}async function Hw(e,t){if(!e)return;const o=e.getRootNode();if(!(o instanceof ShadowRoot))return;const n=r=>new Promise(i=>setTimeout(i,r)),a=o.querySelector(`link[href="${t}"]`);if(a){if(a.sheet)return;await Promise.race([new Promise(r=>{a.addEventListener("load",r,{once:!0}),a.addEventListener("error",r,{once:!0})}),n(2e3)]);return}const s=document.createElement("link");s.rel="stylesheet",s.href=t,await Promise.race([new Promise(r=>{s.addEventListener("load",r,{once:!0}),s.addEventListener("error",r,{once:!0}),o.prepend(s)}),n(2e3)])}function qw(e,t){return typeof e=="string"&&/^https?:\/\//.test(e)?e:t==="night"||t==="dusk"?Vw:Uw}const Ww=85.0511,xl=-2,Yw=0,Xw=-60;function Pg(e){return(1-Math.log(Math.tan(Math.PI/4+e*Math.PI/180/2))/Math.PI)/2}function Zw(e,t,o,n){if(!e||e<=0||!t||t<=0)return Yw;const a=Math.log2(e/512),s=Pg(n)-Pg(Ww),r=Math.log2(t/(512*s)),i=Math.max(a,r);return Math.max(xl,Math.min(i,(o??18)-1))}function Jw({containerRef:e,accessToken:t,style:o,config:n=void 0,provider:a=void 0,center:s=[20,10],zoom:r=2,bounds:i=void 0,fitBoundsOptions:l=void 0,minZoom:c=void 0,skipWorldFloor:u=!1,maxZoom:p=18,pitch:g=0,bearing:A=0,renderWorldCopies:w=!0,showEdgeBorders:h=!0,southCutoff:v=Xw,maxBounds:$=void 0}){const m=Ea(null),b=ge(!1);let k=null,E=null,x=null,f=null;try{f=Te("profileConfig",null)}catch{}a=a||wg(f);const d=a==="maplibre";let y=null;try{y=Te("lang",null)}catch{}const N=()=>{const j=y&&typeof y=="object"&&"value"in y?y.value:y;if(typeof j=="string"&&j)return j;const G=f&&typeof f=="object"&&"value"in f?f.value:f;if(G&&(G.locale||G.lang))return String(G.locale||G.lang);try{const C=new URLSearchParams(location.search);return C.get("lang")||C.get("locale")||document.documentElement.lang||"en"}catch{return"en"}};async function B(){var ye;const j=Rw(o,a),G=j.style||o;if(!e.value){console.error("containerRef.value is null — call initializeMap() inside onMounted()");return}const C=()=>!e.value;if(await Kw(a),C())return;const L=kl(a);if(!L){console.error(`[useMapInstance] ${d?"maplibregl":"mapboxgl"} is not available. Add the ${d?"MapLibre":"Mapbox"} GL JS script to your page.`);return}if(Bw(L),!d){if(!t&&typeof window<"u"&&typeof window.MAP_TOKEN=="string"&&window.MAP_TOKEN&&(t=window.MAP_TOKEN),!t){console.error('No Mapbox access token provided. Pass "tk" in profile-config JSON or set window.MAP_TOKEN.');return}if(!t.startsWith("pk.")){console.error('Mapbox token looks invalid (expected "pk." prefix). Got:',t.slice(0,10)+"...");return}}if(await Hw(e.value,d?ua.maplibre.css:zw),C()||(await new Promise(oe=>requestAnimationFrame(oe)),C()))return;const M=e.value,z=M.clientWidth,K=M.clientHeight;if(z===0||K===0){console.error(`[useMapInstance] Container has ZERO dimensions (${z}×${K}). Map will be invisible. Check that parent elements have CSS sizing.`);let oe=M.parentElement,fe=0;for(;oe&&fe<5;)oe=oe.parentElement,fe++}const J=t;d||(L.accessToken=J);const ce=()=>typeof window<"u"&&window.innerWidth>=1024,H=(oe,fe)=>{if(u)return typeof c=="number"?c:xl;if(!ce())return xl;const pe=Zw(oe,fe,p,v);return typeof c=="number"?Math.max(c,pe):pe},be=H(M.clientWidth,M.clientHeight),we=j.lightPreset||(()=>{var oe;try{const fe=typeof n=="function"?n():n;return(oe=fe==null?void 0:fe.basemap)==null?void 0:oe.lightPreset}catch{return}})();if(d){m.value=new L.Map({container:e.value,style:qw(G,we),center:s,zoom:r,minZoom:be,maxZoom:p,pitch:g,bearing:A,dragRotate:!1,renderWorldCopies:w,...i?{bounds:i,...l?{fitBoundsOptions:l}:{}}:{},...$?{maxBounds:$}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),Sg(m.value);try{e.value.__doxaMap=m.value}catch{}}else{const oe=typeof n=="function"?n():n;m.value=new L.Map({accessToken:J,container:e.value,style:G,...oe?{config:oe}:{},center:s,zoom:r,minZoom:be,maxZoom:p,pitch:g,bearing:A,dragRotate:!1,touchPitch:!1,renderWorldCopies:w,...i?{bounds:i,...l?{fitBoundsOptions:l}:{}}:{},...$?{maxBounds:$}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),Sg(m.value);try{e.value.__doxaMap=m.value}catch{}}try{let oe=!1;m.value.on("error",fe=>{var P,O;const pe=((P=fe==null?void 0:fe.error)==null?void 0:P.status)??(fe==null?void 0:fe.status),Se=String(((O=fe==null?void 0:fe.error)==null?void 0:O.url)||(fe==null?void 0:fe.sourceId)||"");pe!==401&&pe!==403||oe||(oe=!0,console.error(`[doxa-maps] Mapbox returned ${pe} for a TILE request while the style loaded fine. That is a URL RESTRICTION on the access token, not a bad token and not a bug in this map. Add this page's origin (${typeof location<"u"?location.origin:"this origin"}) to the token's URL restrictions in the Mapbox account. The map will keep its data layer and stay blank underneath until then.`+(Se?` First failing request: ${Se.slice(0,120)}`:"")))})}catch{}try{m.value.touchZoomRotate.disableRotation()}catch{}x=Tw(((ye=e.value)==null?void 0:ye.parentElement)||null,{enabled:h});let he=be,Ae=null;k=()=>{const oe=m.value;if(!oe)return;const fe=H(M.clientWidth,M.clientHeight);fe!==he&&(he=fe,oe.setMinZoom(fe)),oe.getZoom(){Ae=null;const pe=m.value;if(!pe)return;const Se=H(M.clientWidth,M.clientHeight);if(pe.getZoom(){Ae&&(clearTimeout(Ae),Ae=null)},m.value.on("resize",k),typeof window<"u"&&(window.addEventListener("resize",k),window.addEventListener("orientationchange",k)),m.value.on("style.load",()=>{if(m.value&&Ag(m.value,N()),j.paint&&m.value){const oe=Mw(m.value,j.paint);console.info("[useMapInstance] style paint applied ("+a+"):",oe.join(", ")||"NONE MATCHED")}requestAnimationFrame(()=>{var oe;(oe=m.value)==null||oe.resize(),m.value&&m.value.setMinZoom(H(M.clientWidth,M.clientHeight)),b.value=!0})})}function V(){if(m.value){if(k&&(m.value.off("resize",k),typeof window<"u"&&(window.removeEventListener("resize",k),window.removeEventListener("orientationchange",k)),k=null),E){try{E()}catch{}E=null}x&&(x(),x=null),m.value.remove(),m.value=null,b.value=!1}}if(y&&typeof y=="object"&&"value"in y)try{Me(y,()=>{m.value&&b.value&&Ag(m.value,N())})}catch{}return{map:m,isMapReady:b,initializeMap:B,destroy:V}}const Qw=Un&&Un.tagName.toUpperCase()==="SCRIPT"&&Un.src||new URL("doxa-research-map.js",document.baseURI).href,On=e=>String(e||"").trim().replace(/\/+$/,"");function Cg(){try{const t=String(Qw||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function ek(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return On(t);if(typeof window<"u"){const o=window.MAP_EMBED_BASE_URL;if(typeof o=="string"&&o.trim())return On(o)}return On(Cg()||"")}function Eg(e){const t=On("")||On(Cg()||"");if(t)try{const o=typeof document<"u"?document.baseURI:void 0;return On(new URL(t+"/assets",o).href)}catch{return On(t+"/assets")}return"./assets"}function tk({shareUrl:e,embedPath:t,profileConfig:o}={}){const n=o||null,a=typeof window<"u",s=e||(n==null?void 0:n.shareUrl);if(typeof s=="string"&&s.trim())return s.trim();const r=String(t||(n==null?void 0:n.shareEmbedPath)||"").trim();if(r){if(/^https?:\/\//i.test(r))return r;if(r.startsWith("/"))return a?window.location.origin+r:r;const i=ek(n),l=r.replace(/^\.\//,"");if(i)return i+"/"+l;if(typeof document<"u")try{return new URL(l,document.baseURI).href}catch{}return l}return a?window.location.origin+window.location.pathname:""}const ok={Africa:{zoom:1.3,center:[16.6512,26.3538]},Asia:{zoom:.8,center:[98.2654,49.9282]},Europe:{zoom:1.4,center:[22.7826,70.1026]},"Latin America & Caribbean":{zoom:1.8,center:[-60.4619,10.1428]},"Middle East":{zoom:1.7,center:[22.9056,39.5752]},"No WAGF Region/Bloc":{zoom:.6,center:[-8.2363,44.2392]},"North America & Non-Spanish Caribbean":{zoom:2.1,center:[-68.1935,31.4282]},Oceania:{zoom:1.5,center:[161.6257,-.668]}},Tg={circleRadius:{standard:["interpolate",["linear"],["zoom"],0,3,2,3.5,4,4,5,5,6,6.5,7,8,8,10,10,14,12,18,14,22],highlighted:["interpolate",["linear"],["zoom"],0,4,4,5,8,12,12,20],faded:["interpolate",["linear"],["zoom"],0,2,4,2.5,8,5,12,8],compact:["interpolate",["linear"],["zoom"],0,2,4,3,8,6,12,10],large:["interpolate",["linear"],["zoom"],0,4,4,6,8,14,12,24],touchTarget:["interpolate",["linear"],["zoom"],0,12,2,15,4,19,6,20,8,21,10,22,12,24,14,28]}};function nk(e){return ok[e]||null}function Ll(e="standard"){return Tg.circleRadius[e]||Tg.circleRadius.standard}function Ng(e={}){const{getMap:t=()=>null,mapId:o="unknown",getLanguageFamilyColor:n=()=>"#999999",getNormalizedPeopleGroups:a=()=>[]}=e,s=Te("uiStore"),{t:r,locale:i}=mt(),l=ge([]);function c(b){const k=n(b.languageFamily),E="https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg";let x=b.imageUrl;(!x||x.includes("NoImageAvailable"))&&(x=E);const f=(b.name||"U")[0].toUpperCase(),d=["#e74c3c","#3498db","#2ecc71","#f39c12","#9b59b6","#1abc9c","#e67e22","#34495e"],y=f.charCodeAt(0)%d.length;return`
- ${d} + ${f}
@@ -112,12 +112,12 @@ overflow: hidden; text-overflow: ellipsis; white-space: nowrap; - ">${m.name} + ">${b.name}

${m.country||"Unknown"} • ${m.status||"Unknown Status"}

+ ">${b.country||"Unknown"} • ${b.status||"Unknown Status"}

@@ -132,51 +132,51 @@ overflow: hidden; "> ${m.name}

- Language: ${m.language||"Unknown"} + Language: ${b.language||"Unknown"}

Family: - ${m.languageFamily||"Unknown"} + ${b.languageFamily||"Unknown"}

- ${m.population?`

Population: ${m.population}

`:""} - ${m.description?`

${m.description}

`:""} + ${b.population?`

Population: ${b.population}

`:""} + ${b.description?`

${b.description}

`:""}
- `}function u(m){const k=m.iso_3166_1_alpha_3||"",P=m["name_"+((i==null?void 0:i.value)||"en")]||m.name_en||m.name||k,d=a(),C=k.toUpperCase(),A=d.filter(D=>{const L=(D.countryIso||D.country||"").toUpperCase();return L&&L===C}),B=A.length,V=A[0],J=(V==null?void 0:V.wagfRegionLabel)||(V==null?void 0:V.doxaRegionLabel)||(V==null?void 0:V.doxaRegion)||(V==null?void 0:V.wagfRegion)||"—",z=(V==null?void 0:V.wagfBlockLabel)||(V==null?void 0:V.wagfBlock)||"—";return` + `}function u(b){const k=b.iso_3166_1_alpha_3||"",x=b["name_"+((i==null?void 0:i.value)||"en")]||b.name_en||b.name||k,f=a(),d=k.toUpperCase(),y=f.filter(G=>{const C=(G.countryIso||G.country||"").toUpperCase();return C&&C===d}),N=y.length,B=y[0],V=(B==null?void 0:B.wagfRegionLabel)||(B==null?void 0:B.doxaRegionLabel)||(B==null?void 0:B.doxaRegion)||(B==null?void 0:B.wagfRegion)||"—",j=(B==null?void 0:B.wagfBlockLabel)||(B==null?void 0:B.wagfBlock)||"—";return`

- ${P} + ${x}

- ${r("popup.country.wagfRegion")}: ${J} + ${r("popup.country.wagfRegion")}: ${V}

- ${r("popup.country.wagfBlock")}: ${z} + ${r("popup.country.wagfBlock")}: ${j}

- ${r("popup.country.country")}: ${P} (${k}) + ${r("popup.country.country")}: ${x} (${k})

- ${r("popup.country.uupgCount")}: ${B} + ${r("popup.country.uupgCount")}: ${N}

- `}function p(m){const k=t();if(!k)return;const h=m||"language-family-pins";if(!k.getLayer(h))return;const P=d=>{try{const C=d.features[0],A=C.properties,B=C.geometry.coordinates.slice();for(;Math.abs(d.lngLat.lng-B[0])>180;)B[0]+=d.lngLat.lng>B[0]?360:-360;if(s&&s.legendMode!==void 0){s.selectPeopleGroup(C),s.isMobile&&s.legendState==="collapsed"&&s.setLegendState("open"),s.isMobile||window.dispatchEvent(new CustomEvent("dxm:openDesktopLegend",{detail:{mapId:o}}));return}new mapboxgl.Popup({maxWidth:"320px",className:"people-group-popup"}).setLngLat(B).setHTML(c(A)).addTo(k)}catch(C){console.error(` [${o}] Pin click handler error:`,C)}};k.on("click",h,P),l.value.push({event:"click",layer:h,handler:P})}function g(){const m=t();if(!m)return;const k="regions-fill";if(!m.getLayer(k))return;const h=P=>{const d=["language-family-pins","language-family-pins-hitbox","people-groups-pins"];for(const C of d)if(m.getLayer(C)){const A=m.queryRenderedFeatures(P.point,{layers:[C]});if(A&&A.length>0)return}if(P.features&&P.features.length>0){const C=P.features[0].properties;new mapboxgl.Popup().setLngLat(P.lngLat).setHTML(u(C)).addTo(m)}};m.on("click",k,h),l.value.push({event:"click",layer:k,handler:h})}function S(){const m=t();if(!m)return;const k="clusters";if(!m.getLayer(k))return;const h=P=>{const d=m.queryRenderedFeatures(P.point,{layers:[k]});if(!d.length)return;const C=d[0].properties.cluster_id,A=d[0].source;m.getSource(A).getClusterExpansionZoom(C,(B,V)=>{B||m.easeTo({center:d[0].geometry.coordinates,zoom:V})})};m.on("click",k,h),l.value.push({event:"click",layer:k,handler:h})}function v(m){const k=t();if(!k||!k.getLayer(m))return;const h=()=>{k.getCanvas().style.cursor="pointer"},P=()=>{k.getCanvas().style.cursor=""};k.on("mouseenter",m,h),k.on("mouseleave",m,P),l.value.push({event:"mouseenter",layer:m,handler:h}),l.value.push({event:"mouseleave",layer:m,handler:P})}function b(){p(),v("language-family-pins"),p("language-family-pins-hitbox"),v("language-family-pins-hitbox"),S(),v("clusters")}function _(){g(),v("regions-fill")}function $(){const m=t();m&&(m.getLayer("language-family-pins")&&b(),m.getLayer("regions-fill")&&_(),m.getLayer("people-groups-pins")&&(p(),v("people-groups-pins")))}function f(){const m=t();if(m){for(const{event:k,layer:h,handler:P}of l.value)try{m.off(k,h,P)}catch{}l.value=[]}}return{attachAllEventHandlers:$,attachLanguageFamilyEvents:b,attachRegionEvents:_,attachPinClickHandler:p,attachRegionClickHandler:g,attachClusterClickHandler:S,attachCursorHandlers:v,detachAllEventHandlers:f,generatePinPopupContent:c,generateRegionPopupContent:u,registeredHandlers:l}}const Ye={Chamacoco:"Zamucoan",Ninam:"Yanomaman",Yagua:"Yaguan",Muinane:"Witotoan",Finnish:"Uralic","Hill Mari":"Uralic",Mansi:"Uralic","Meadow Mari":"Uralic","North Saami":"Uralic",Carabayo:"Unclassified",Kujarge:"Unclassified",Shabo:"Unclassified",Ainu:"Turkic",Kazakh:"Turkic","Khorasani Turkish":"Turkic",Kyrgyz:"Turkic","Northern Uzbek":"Turkic","South Azerbaijani":"Turkic",Turkish:"Turkic",Tuvan:"Turkic",Uyghur:"Turkic",Amundava:"Tupian",Araweté:"Tupian","Asurini of Xingú":"Tupian","Avá-Canoeiro":"Tupian",Awetí:"Tupian",Kamayurá:"Tupian",Karo:"Tupian",Morerebi:"Tupian",Tenharim:"Tupian","Uru-Eu-Wau-Wau":"Tupian","Uru-Pa-In":"Tupian",Wayampi:"Tupian","Zo’é":"Tupian",Evenki:"Tungusic",Xibe:"Tungusic",Carapana:"Tucanoan",Cubeo:"Tucanoan",Desano:"Tucanoan",Macuna:"Tucanoan",Piratapuyo:"Tucanoan",Siona:"Tucanoan",Siriano:"Tucanoan",Tucano:"Tucanoan",Tuyuca:"Tucanoan",Waimaha:"Tucanoan",Tay:"Trans-New Guinea",Adi:"Sino-Tibetan",Akha:"Sino-Tibetan","Amdo Tibetan":"Sino-Tibetan",Axi:"Sino-Tibetan",Biyo:"Sino-Tibetan","Boro (India)":"Sino-Tibetan",Brokkat:"Sino-Tibetan",Bugun:"Sino-Tibetan",Byangsi:"Sino-Tibetan","Central Lalo":"Sino-Tibetan","Central Tibetan":"Sino-Tibetan",Chak:"Sino-Tibetan",Chalikha:"Sino-Tibetan",Chaudangsi:"Sino-Tibetan",Chocangacakha:"Sino-Tibetan",Darlong:"Sino-Tibetan",Dhimal:"Sino-Tibetan","Digaro-Mishmi":"Sino-Tibetan",Dzalakha:"Sino-Tibetan","Eastern Nisu":"Sino-Tibetan",Ersu:"Sino-Tibetan",Gahri:"Sino-Tibetan",Gongduk:"Sino-Tibetan",Gyalsumdo:"Sino-Tibetan",Hani:"Sino-Tibetan","Idu-Mishmi":"Sino-Tibetan",Kaike:"Sino-Tibetan",Kanashi:"Sino-Tibetan",Katso:"Sino-Tibetan",Khamba:"Sino-Tibetan",Koireng:"Sino-Tibetan",Kucong:"Sino-Tibetan",Kurtokha:"Sino-Tibetan",Ladakhi:"Sino-Tibetan",Lakha:"Sino-Tibetan","Lang’e":"Sino-Tibetan",Lhokpu:"Sino-Tibetan",Lolopo:"Sino-Tibetan",Lunanakha:"Sino-Tibetan","Mandarin Chinese":"Sino-Tibetan",Meitei:"Sino-Tibetan","Miju-Mishmi":"Sino-Tibetan",Mpi:"Sino-Tibetan",Na:"Sino-Tibetan",Namuyi:"Sino-Tibetan",Narua:"Sino-Tibetan",Naxi:"Sino-Tibetan","Northern Muji":"Sino-Tibetan",Nuosu:"Sino-Tibetan",Nupbikha:"Sino-Tibetan",Nyenkha:"Sino-Tibetan",Olekha:"Sino-Tibetan",Pahari:"Sino-Tibetan",Pattani:"Sino-Tibetan","Phana’":"Sino-Tibetan",Phula:"Sino-Tibetan",Phunoi:"Sino-Tibetan",Puma:"Sino-Tibetan",Puroik:"Sino-Tibetan",Raji:"Sino-Tibetan",Rawat:"Sino-Tibetan",Sani:"Sino-Tibetan",Sherdukpen:"Sino-Tibetan",Sherpa:"Sino-Tibetan",Shuhi:"Sino-Tibetan",Sila:"Sino-Tibetan",Singpho:"Sino-Tibetan",Sunwar:"Sino-Tibetan","Tawang Monpa":"Sino-Tibetan",Tseku:"Sino-Tibetan",Tshangla:"Sino-Tibetan",Usoi:"Sino-Tibetan","Western Minyag":"Sino-Tibetan","Wusa Nasu":"Sino-Tibetan","Xiang Chinese":"Sino-Tibetan",Yakkha:"Sino-Tibetan","Youle Jinuo":"Sino-Tibetan","Yue Chinese":"Sino-Tibetan",Zakhring:"Sino-Tibetan","Afghan Sign Language":"Sign Language","Albanian Sign Language":"Sign Language","Algerian Sign Language":"Sign Language","American Sign Language":"Sign Language","Armenian Sign Language":"Sign Language","British Sign Language":"Sign Language","Bulgarian Sign Language":"Sign Language","Cambodian Sign Language":"Sign language","Cuban Sign Language":"Sign Language","Egyptian Sign Language":"Sign Language","Greek Sign Language":"Sign Language","Guinean Sign Language":"Sign Language","Hong Kong Sign Language":"Sign Language","Icelandic Sign Language":"Sign Language","Iranian Sign Language":"Sign Language","Israeli Sign Language":"Sign Language","Jamaican Sign Language":"Sign Language","Jordanian Sign Language":"Sign Language","Laos Sign Language":"Sign Language","Libyan Sign Language":"Sign Language","Maltese Sign Language":"Sign Language","Mauritian Sign Language":"Sign Language","Moroccan Sign Language":"Sign Language","Mozambican Sign Language":"Sign Language","Myanmar Sign Language":"Sign language","Natural Sign Language":"Sign Language","Pakistan Sign Language":"Sign Language","Papua New Guinean Sign Language":"Sign language","Russian Sign Language":"Sign Language","Saudi Arabian Sign Language":"Sign Language","Sign Language of the Netherlands":"Sign Language","Solomon Islands Sign Language":"Sign Language","Sri Lankan Sign Language":"Sign Language","Swedish Sign Language":"Sign Language","Turkish Sign Language":"Sign Language","Northern Conchucos Ancash Quechua":"Quechuan","Northern Pastaza Quichua":"Quechuan",Hupdë:"Puinavean",Amahuaca:"Panoan",Korubo:"Panoan",Sharanahua:"Panoan","Shipibo-Conibo":"Panoan",Yaminahua:"Panoan",Yawanawa:"Panoan",Afitti:"Nilo-Saharan",Assangori:"Nilo-Saharan","Beli (South Sudan)":"Nilo-Saharan",Berta:"Nilo-Saharan",Burun:"Nilo-Saharan","Dar Daju Daju":"Nilo-Saharan","Dar Fur Daju":"Nilo-Saharan","Dar Sila Daju":"Nilo-Saharan",Dazaga:"Nilo-Saharan","Dendi (Benin)":"Nilo-Saharan",Dilling:"Nilo-Saharan",Fur:"Nilo-Saharan",Gbaya:"Nilo-Saharan",Ghulfan:"Nilo-Saharan",Gwama:"Nilo-Saharan","Humburi Senni Songhay":"Nilo-Saharan",Jopadhola:"Nilo-Saharan",Kadaru:"Nilo-Saharan",Kanga:"Nilo-Saharan",Karanga:"Nilo-Saharan",Karko:"Nilo-Saharan",Kebu:"Nilo-Saharan",Keiga:"Nilo-Saharan",Keliko:"Nilo-Saharan",Kendeje:"Nilo-Saharan",Kibet:"Nilo-Saharan","Komo (Sudan)":"Nilo-Saharan",Korandje:"Nilo-Saharan",Kulfa:"Nilo-Saharan",Kwegu:"Nilo-Saharan",Laarim:"Nilo-Saharan",Logorik:"Nilo-Saharan",Majang:"Nilo-Saharan","Manga Kanuri":"Nilo-Saharan",Mango:"Nilo-Saharan",Mararit:"Nilo-Saharan",Marfa:"Nilo-Saharan",Midob:"Nilo-Saharan","Mo’da":"Nilo-Saharan",Morom:"Nilo-Saharan",Moru:"Nilo-Saharan",Naba:"Nilo-Saharan",Nara:"Nilo-Saharan",Njalgulgule:"Nilo-Saharan",Nuer:"Nilo-Saharan","Nyamusa-Molo":"Nilo-Saharan",Nyangatom:"Nilo-Saharan","Olu’bo":"Nilo-Saharan",Opo:"Nilo-Saharan",Päri:"Nilo-Saharan","Sara Kaba Naa":"Nilo-Saharan",Surbakhal:"Nilo-Saharan",Tadaksahak:"Nilo-Saharan","Tama (Chad)":"Nilo-Saharan",Temein:"Nilo-Saharan",Thuri:"Nilo-Saharan","Tirmaga-Chai Suri":"Nilo-Saharan",Toposa:"Nilo-Saharan",Tumtum:"Nilo-Saharan","Wali (Sudan)":"Nilo-Saharan","Yerwa Kanuri":"Nilo-Saharan",Yulu:"Nilo-Saharan",Zaghawa:"Nilo-Saharan","Adamawa Fulfulde":"Niger-Congo",Akaselem:"Niger-Congo","Amba (Uganda)":"Niger-Congo",Anii:"Niger-Congo",Baangi:"Niger-Congo",Badyara:"Niger-Congo","Bago-Kusuntu":"Niger-Congo",Bai:"Niger-Congo","Bainouk-Gunyaamolo":"Niger-Congo",Bamanankan:"Niger-Congo","Banda-Mbrès":"Niger-Congo",Bandial:"Niger-Congo",Bankagooma:"Niger-Congo","Belanda Viri":"Niger-Congo",Bemba:"Niger-Congo",Bolgo:"Niger-Congo","Bon Gula":"Niger-Congo",Bua:"Niger-Congo",Chichewa:"Niger-Congo","Chung (Cameroon)":"Niger-Congo","Ci Gbe":"Niger-Congo",Degema:"Niger-Congo",Dek:"Niger-Congo",Dhimba:"Niger-Congo",Dogoso:"Niger-Congo","East Limba":"Niger-Congo",Engenni:"Niger-Congo",Epie:"Niger-Congo",Éwé:"Niger-Congo",Fania:"Niger-Congo",Foodo:"Niger-Congo",Fwe:"Niger-Congo",Gciriku:"Niger-Congo",Gwa:"Niger-Congo",Herero:"Niger-Congo",Ibuoro:"Niger-Congo","Jenaama Bozo":"Niger-Congo",Jita:"Niger-Congo",Jula:"Niger-Congo",Kabiyè:"Niger-Congo",Kadung:"Niger-Congo",Kakabe:"Niger-Congo",Kalamsé:"Niger-Congo","Kami (Tanzania)":"Niger-Congo","Kango (Bas-Uélé District)":"Niger-Congo",Kasem:"Niger-Congo","Kelengaxo Bozo":"Niger-Congo",Khe:"Niger-Congo",Khisa:"Niger-Congo",Kim:"Niger-Congo",Kinyarwanda:"Niger-Congo",Kipfokomu:"Niger-Congo",Kitharaka:"Niger-Congo",Kiyombe:"Niger-Congo",Ko:"Niger-Congo",Koalib:"Niger-Congo",Koke:"Niger-Congo",Konongo:"Niger-Congo","Koro Nulu":"Niger-Congo","Koro Zuba":"Niger-Congo",Kuhane:"Niger-Congo",Kunda:"Niger-Congo",Kuranko:"Niger-Congo",Kuria:"Niger-Congo",Kwangali:"Niger-Congo",Lame:"Niger-Congo",Laru:"Niger-Congo",Lopa:"Niger-Congo","Makhuwa-Meetto":"Niger-Congo","Makhuwa-Shirima":"Niger-Congo","Malawi Nyiha":"Niger-Congo",Mandinka:"Niger-Congo",Mankanya:"Niger-Congo",Mansoanka:"Niger-Congo",Mbukushu:"Niger-Congo","Mende (Sierra Leone)":"Niger-Congo",Miyobe:"Niger-Congo",Mushungulu:"Niger-Congo","Mwali Comorian":"Niger-Congo","Mwera (Chimwera)":"Niger-Congo",Ndemli:"Niger-Congo",Ndengereko:"Niger-Congo",Ndumu:"Niger-Congo",Ndunga:"Niger-Congo","Ndzwani Comorian":"Niger-Congo",Ngile:"Niger-Congo","Northwest Gbaya":"Niger-Congo",Notre:"Niger-Congo",Nyamwanga:"Niger-Congo",Nyankore:"Niger-Congo",Nyengo:"Niger-Congo",Okpamheri:"Niger-Congo",Osatu:"Niger-Congo","Pana (Burkina Faso)":"Niger-Congo",Pulaar:"Niger-Congo",Pular:"Niger-Congo",Rufiji:"Niger-Congo","Sankaran Maninka":"Niger-Congo",Sapo:"Niger-Congo","Senara Sénoufo":"Niger-Congo",Shanga:"Niger-Congo",Sininkere:"Niger-Congo","Southern Ngbandi":"Niger-Congo",Swahili:"Niger-Congo","Syenara Sénoufo":"Niger-Congo",Tagbu:"Niger-Congo",Tagoi:"Niger-Congo",Tegali:"Niger-Congo",Tem:"Niger-Congo","Tiéyaxo Bozo":"Niger-Congo",Tiyaa:"Niger-Congo",Tocho:"Niger-Congo","Tonga (Zambia)":"Niger-Congo",Totela:"Niger-Congo","Toura (Côte d’Ivoire)":"Niger-Congo",Tswa:"Niger-Congo",Tumbuka:"Niger-Congo",Ukaan:"Niger-Congo",Uneme:"Niger-Congo",Vai:"Niger-Congo",Vute:"Niger-Congo",Waama:"Niger-Congo",Warnang:"Niger-Congo",Wolof:"Niger-Congo",Yao:"Niger-Congo",Yauma:"Niger-Congo",Yom:"Niger-Congo","Zan Gula":"Niger-Congo",Zande:"Niger-Congo",Zigula:"Niger-Congo",Mamaindê:"Nambikwara",Aghul:"Nakh-Daghestanian",Akhvakh:"Nakh-Daghestanian",Andi:"Nakh-Daghestanian",Avar:"Nakh-Daghestanian",Bagvalal:"Nakh-Daghestanian",Botlikh:"Nakh-Daghestanian",Chamalal:"Nakh-Daghestanian",Chechen:"Nakh-Daghestanian",Dargwa:"Nakh-Daghestanian",Kaitag:"Nakh-Daghestanian",Karata:"Nakh-Daghestanian",Khvarshi:"Nakh-Daghestanian",Tindi:"Nakh-Daghestanian",Pirahã:"Muran",Bonan:"Mongolic","China Buriat":"Mongolic",Daur:"Mongolic","Kalmyk-Oirat":"Mongolic","Peripheral Mongolian":"Mongolic","Russia Buriat":"Mongolic",Tagdal:"Mixed language",Wutunhua:"Mixed language","Ashéninka Perené":"Maipurean",Baniwa:"Maipurean",Cabiyarí:"Maipurean",Curripaco:"Maipurean","Enawené-Nawé":"Maipurean",Kanamarí:"Maipurean",Mehináku:"Maipurean","Pichis Ashéninka":"Maipurean",Waurá:"Maipurean",Bangime:"Language isolate",Burushaski:"Language isolate","Ai-Cham":"Kra-Dai",Aiton:"Kra-Dai","Dai Zhuang":"Kra-Dai",Duoluo:"Kra-Dai","Green Gelao":"Kra-Dai","Guibian Zhuang":"Kra-Dai",Hlai:"Kra-Dai",Jiamao:"Kra-Dai",Kang:"Kra-Dai",Khün:"Kra-Dai",Kuan:"Kra-Dai",Lachi:"Kra-Dai","Laha (Viet Nam)":"Kra-Dai",Lao:"Kra-Dai",Lü:"Kra-Dai","Mak (China)":"Kra-Dai","Northeastern Thai":"Kra-Dai","Northern Dong":"Kra-Dai","Northern Thai":"Kra-Dai",Nyaw:"Kra-Dai",Phake:"Kra-Dai","Phu Thai":"Kra-Dai",Qabiao:"Kra-Dai",Qau:"Kra-Dai","Qiubei Zhuang":"Kra-Dai",Shan:"Kra-Dai","Southern Dong":"Kra-Dai",Sui:"Kra-Dai","T’en":"Kra-Dai","Tai Daeng":"Kra-Dai","Tai Dam":"Kra-Dai","Tai Hongjin":"Kra-Dai","Tai Nüa":"Kra-Dai","Tai Ya":"Kra-Dai","Tai Yo":"Kra-Dai","Ts’ün-Lao":"Kra-Dai","Yang Zhuang":"Kra-Dai",Yerong:"Kra-Dai",Yong:"Kra-Dai",Yoy:"Kra-Dai",Khoekhoe:"Khoe-Kwadi",Karajá:"Karajá","Pará Gavião":"Jean",Suyá:"Jean",Japanese:"Japonic","Oki-No-Erabu":"Japonic","Toku-No-Shima":"Japonic",Yaeyama:"Japonic",Yoron:"Japonic","Adivasi Oriya":"Indo-European",Afrikaans:"Indo-European","Alviri-Vidari":"Indo-European",Angika:"Indo-European",Assamese:"Indo-European",Bagheli:"Indo-European",Bagri:"Indo-European",Bashkardi:"Indo-European",Bateri:"Indo-European",Bengali:"Indo-European",Bhojpuri:"Indo-European",Bhunjia:"Indo-European",Bilaspuri:"Indo-European",Bosnian:"Indo-European","Braj Bhasha":"Indo-European",Brokskat:"Indo-European",Bundeli:"Indo-European",Catalan:"Indo-European",Chambeali:"Indo-European",Chhattisgarhi:"Indo-European",Dameli:"Indo-European",Dari:"Indo-European",Dhundari:"Indo-European",Dogri:"Indo-European",Domari:"Indo-European",Dutch:"Indo-European","Eastern Balochi":"Indo-European","Eastern Panjabi":"Indo-European","Eastern Yiddish":"Indo-European",English:"Indo-European",French:"Indo-European",Gaddi:"Indo-European",Garhwali:"Indo-European",Gawri:"Indo-European",Gowro:"Indo-European",Gujarati:"Indo-European",Gujari:"Indo-European",Halbi:"Indo-European",Haroti:"Indo-European",Haryanvi:"Indo-European",Hindi:"Indo-European","Indus Kohistani":"Indo-European","Iranian Persian":"Indo-European",Ishkashimi:"Indo-European",Kacchi:"Indo-European",Kalkoti:"Indo-European",Kanauji:"Indo-European",Kangri:"Indo-European",Karingani:"Indo-European",Kashmiri:"Indo-European",Kati:"Indo-European",Khunsari:"Indo-European",Konkani:"Indo-European",Kudmali:"Indo-European",Kumaoni:"Indo-European",Kumzari:"Indo-European",Laki:"Indo-European",Lasi:"Indo-European",Luwati:"Indo-European",Magahi:"Indo-European",Maithili:"Indo-European",Maldivian:"Indo-European",Malvi:"Indo-European",Marathi:"Indo-European","Marwari (India)":"Indo-European",Mewari:"Indo-European",Munji:"Indo-European",Nepali:"Indo-European",Nimadi:"Indo-European","Northern Kurdish":"Indo-European",Odia:"Indo-European","Pahari-Potwari":"Indo-European",Palula:"Indo-European",Panchpargania:"Indo-European",Pangwali:"Indo-European",Parachi:"Indo-European",Portuguese:"Indo-European",Russian:"Indo-European",Sadri:"Indo-European",Sanglechi:"Indo-European",Sarikoli:"Indo-European",Savi:"Indo-European",Semnani:"Indo-European",Serbian:"Indo-European",Shabak:"Indo-European",Shahrudi:"Indo-European",Shekhawati:"Indo-European",Shina:"Indo-European",Shughni:"Indo-European",Shumashti:"Indo-European",Sindhi:"Indo-European",Sivandi:"Indo-European",Soi:"Indo-European","Southern Balochi":"Indo-European",Spanish:"Indo-European",Tajik:"Indo-European",Talysh:"Indo-European",Urdu:"Indo-European",Ushojo:"Indo-European",Vaghri:"Indo-European","Vlax Romani":"Indo-European",Wagdi:"Indo-European",Wakhi:"Indo-European",Waneci:"Indo-European","Western Balochi":"Indo-European",Yadgha:"Indo-European","Bu-Nao Bunu":"Hmong-Mien","Central Mashan Miao":"Hmong-Mien","Chuanqiandian Cluster Miao":"Hmong-Mien","Eastern Xiangxi Miao":"Hmong-Mien","Iu Mien":"Hmong-Mien","Luopohe Miao":"Hmong-Mien","Northern Qiandong Miao":"Hmong-Mien","Pa-Hng":"Hmong-Mien","Southwestern Huishui Miao":"Hmong-Mien","Wunai Bunu":"Hmong-Mien","Younuo Bunu":"Hmong-Mien",Amarakaeri:"Harákmbut",Huachipaeri:"Harákmbut",Cuiba:"Guajiboan",Macaguán:"Guajiboan",Tlicho:"Eyak-Athabaskan",Kannada:"Dravidian",Kodava:"Dravidian","Korra Koraga":"Dravidian","Kota (India)":"Dravidian",Kudiya:"Dravidian",Malapandaram:"Dravidian",Malayalam:"Dravidian",Muthuvan:"Dravidian",Ravula:"Dravidian",Sholaga:"Dravidian",Tamil:"Dravidian",Telugu:"Dravidian",Tulu:"Dravidian",Vishavan:"Dravidian","Andaman Hindi Creole":"Creole","Cocos Islands Malay":"Creole","Juba Arabic":"Creole",Nubi:"Creole",Barí:"Chibchan","Barro Negro Tunebo":"Chibchan","Western Tunebo":"Chibchan",Ikpeng:"Cariban","Kuikúro-Kalapálo":"Cariban",Pemon:"Cariban",Trió:"Cariban","Waimiri-Atroarí":"Cariban",Waiwai:"Cariban",Yukpa:"Cariban",Borôro:"Bororoan",Chachi:"Barbacoan","Abai Sungai":"Austronesian",Ambelau:"Austronesian",Asilulu:"Austronesian",Balaesang:"Austronesian","Batak Alas-Kluet":"Austronesian","Batak Dairi":"Austronesian","Batak Karo":"Austronesian",Bonerate:"Austronesian",Bonggi:"Austronesian",Brunei:"Austronesian","Brunei Bisaya":"Austronesian",Buol:"Austronesian","Central Malay":"Austronesian","Central Sama":"Austronesian","Coastal Konjo":"Austronesian",Dampelas:"Austronesian","Dibabawon Manobo":"Austronesian",Dondo:"Austronesian",Gane:"Austronesian","Geser-Gorom":"Austronesian","Highland Konjo":"Austronesian",Hitu:"Austronesian",Iban:"Austronesian",Indonesian:"Austronesian","Kadazan Dusun":"Austronesian",Kiput:"Austronesian",Komodo:"Austronesian",Kompane:"Austronesian",Lahanan:"Austronesian","Lampung Nyo":"Austronesian","Larike-Wakasihu":"Austronesian",Lola:"Austronesian",Luhu:"Austronesian",Malay:"Austronesian",Mariri:"Austronesian",Moronene:"Austronesian",Rukai:"Austronesian","Sabah Bisaya":"Austronesian","Seit-Kaitetu":"Austronesian",Sula:"Austronesian","Tae’":"Austronesian",Tajio:"Austronesian",Tomini:"Austronesian",Tutong:"Austronesian",Ujir:"Austronesian",Aheu:"Austro-Asiatic",Alak:"Austro-Asiatic",Bit:"Austro-Asiatic","Bo (Laos)":"Austro-Asiatic",Bondo:"Austro-Asiatic",Brao:"Austro-Asiatic",Bugan:"Austro-Asiatic",Chong:"Austro-Asiatic",Chut:"Austro-Asiatic",Danau:"Austro-Asiatic",Halang:"Austro-Asiatic","Halang Doan":"Austro-Asiatic",Hu:"Austro-Asiatic",Hung:"Austro-Asiatic",Ir:"Austro-Asiatic",Kensiu:"Austro-Asiatic",Khmu:"Austro-Asiatic",Khua:"Austro-Asiatic",Khuen:"Austro-Asiatic",Koda:"Austro-Asiatic","Kon Keu":"Austro-Asiatic",Kriang:"Austro-Asiatic",Kuay:"Austro-Asiatic",Laven:"Austro-Asiatic",Maleng:"Austro-Asiatic","Man Met":"Austro-Asiatic",Mang:"Austro-Asiatic",Minriq:"Austro-Asiatic",Mlabri:"Austro-Asiatic",Nguôn:"Austro-Asiatic",Nyaheun:"Austro-Asiatic",Nyahkur:"Austro-Asiatic","O’du":"Austro-Asiatic",Ong:"Austro-Asiatic",Oy:"Austro-Asiatic",Pacoh:"Austro-Asiatic","Phong-Kniang":"Austro-Asiatic",Prai:"Austro-Asiatic",Puoc:"Austro-Asiatic",Rengao:"Austro-Asiatic",Rmeet:"Austro-Asiatic","Rumai Palaung":"Austro-Asiatic",Sapuan:"Austro-Asiatic","Shwe Palaung":"Austro-Asiatic","So (Laos)":"Austro-Asiatic",Sou:"Austro-Asiatic","Tai Loi":"Austro-Asiatic",Talieng:"Austro-Asiatic",Tareng:"Austro-Asiatic",Tho:"Austro-Asiatic",U:"Austro-Asiatic","Upper Ta’oih":"Austro-Asiatic",Vietnamese:"Austro-Asiatic","Western Katu":"Austro-Asiatic",Suruahá:"Arauan",Jarawa:"Andamanese",Öñge:"Andamanese",Sentinel:"Andamanese",Afar:"Afro-Asiatic","Alaba-K’abeena":"Afro-Asiatic",Alagwa:"Afro-Asiatic",Ale:"Afro-Asiatic","Algerian Arabic":"Afro-Asiatic",Amharic:"Afro-Asiatic",Arbore:"Afro-Asiatic","Baharna Arabic":"Afro-Asiatic",Barein:"Afro-Asiatic",Bedawiyet:"Afro-Asiatic",Bidiyo:"Afro-Asiatic",Bilen:"Afro-Asiatic",Birgit:"Afro-Asiatic",Boor:"Afro-Asiatic","Borana-Arsi-Guji Oromo":"Afro-Asiatic",Buduma:"Afro-Asiatic","Central Atlas Tamazight":"Afro-Asiatic","Chadian Arabic":"Afro-Asiatic",Chenoua:"Afro-Asiatic",Ciwogai:"Afro-Asiatic",Daasanach:"Afro-Asiatic",Dabarre:"Afro-Asiatic",Dangaléat:"Afro-Asiatic",Deno:"Afro-Asiatic",Diri:"Afro-Asiatic",Duwai:"Afro-Asiatic","Eastern Egyptian Bedawi Arabic":"Afro-Asiatic","Eastern Oromo":"Afro-Asiatic",Garre:"Afro-Asiatic",Geruma:"Afro-Asiatic",Giiwo:"Afro-Asiatic",Gorowa:"Afro-Asiatic","Gulf Arabic":"Afro-Asiatic","Hadrami Arabic":"Afro-Asiatic",Harsusi:"Afro-Asiatic",Hassaniyya:"Afro-Asiatic",Hausa:"Afro-Asiatic",Hebrew:"Afro-Asiatic","Hijazi Arabic":"Afro-Asiatic",Hobyót:"Afro-Asiatic",Hozo:"Afro-Asiatic",Jiiddu:"Afro-Asiatic",Jimi:"Afro-Asiatic",Jina:"Afro-Asiatic","Jonkor Bourmataguil":"Afro-Asiatic","Judeo-Iraqi Arabic":"Afro-Asiatic","Judeo-Moroccan Arabic":"Afro-Asiatic",Kabalai:"Afro-Asiatic",Kajakse:"Afro-Asiatic",Kariya:"Afro-Asiatic","Karo (Ethiopia)":"Afro-Asiatic",Kutto:"Afro-Asiatic","Levantine Arabic":"Afro-Asiatic",Libido:"Afro-Asiatic","Libyan Arabic":"Afro-Asiatic","Lishana Deni":"Afro-Asiatic",Maaka:"Afro-Asiatic",Maay:"Afro-Asiatic",Majera:"Afro-Asiatic",Male:"Afro-Asiatic",Maslam:"Afro-Asiatic",Masmaje:"Afro-Asiatic",Mburku:"Afro-Asiatic",Mehri:"Afro-Asiatic","Mesopotamian Arabic":"Afro-Asiatic",Migaama:"Afro-Asiatic",Mogum:"Afro-Asiatic","Moroccan Arabic":"Afro-Asiatic",Mositacha:"Afro-Asiatic",Mubi:"Afro-Asiatic",Mukulu:"Afro-Asiatic",Nafusi:"Afro-Asiatic","Najdi Arabic":"Afro-Asiatic",Nyam:"Afro-Asiatic","Omani Arabic":"Afro-Asiatic","Pa’a":"Afro-Asiatic",Saba:"Afro-Asiatic",Saho:"Afro-Asiatic","Sanaani Arabic":"Afro-Asiatic",Seze:"Afro-Asiatic",Shehri:"Afro-Asiatic",Shekkacho:"Afro-Asiatic",Sheko:"Afro-Asiatic","Shihhi Arabic":"Afro-Asiatic",Siwi:"Afro-Asiatic",Sokoro:"Afro-Asiatic",Soqotri:"Afro-Asiatic","South Levantine Arabic":"Afro-Asiatic","Standard Arabic":"Afro-Asiatic","Sudanese Arabic":"Afro-Asiatic","Ta’izzi-Adeni Arabic":"Afro-Asiatic","Tahaggart Tamahaq":"Afro-Asiatic",Taznatit:"Afro-Asiatic",Tigré:"Afro-Asiatic",Toram:"Afro-Asiatic",Tsamai:"Afro-Asiatic",Tumzabt:"Afro-Asiatic",Tunni:"Afro-Asiatic",Waata:"Afro-Asiatic","West Central Oromo":"Afro-Asiatic",Xamtanga:"Afro-Asiatic",Zumbun:"Afro-Asiatic"},al=[">",["to-number",["get","peoplePraying"],0],0],sl={0:.25,8:.4,14:.5},Qn={0:.1,8:.18,14:.22},ea={0:1.2,8:1.6,14:2},Jd=["interpolate",["linear"],["zoom"],0,["case",al,sl[0],Qn[0]],8,["case",al,sl[8],Qn[8]],14,["case",al,sl[14],Qn[14]]],pw=["interpolate",["linear"],["zoom"],0,ea[0],8,ea[8],14,ea[14]],Qd=["==",["to-number",["get","peoplePraying"],0],0],dw={prayer:[Qd],prayerProgress:[Qd],engagement:[["all",["!=",["get","engagementStatus"],!0],["!=",["get","engagementStatus"],1]]],adoption:[["all",["!=",["get","adoptionStatus"],!0],["!=",["get","adoptionStatus"],1]]]};function gw(e){const t=dw[e]||[];if(!t.length)return pw;const o=t.length===1?t[0]:["any",...t];return["interpolate",["linear"],["zoom"],0,["case",o,Qn[0],ea[0]],8,["case",o,Qn[8],ea[8]],14,["case",o,Qn[14],ea[14]]]}const fw=[[/ sign language$/i,"Sign Language"]];function hw(e){if(!e||typeof e!="string")return null;const t=e.trim(),o=t.split(",").map(a=>a.trim()).filter(Boolean);if(o.length>=2){const a=[...o].reverse().join(" ");if(Ye[a])return Ye[a];if(o.length>=3){const s=[o[1],o[0]].join(" ");if(Ye[s])return Ye[s]}}if(Ye[t])return Ye[t];const n=t.replace(/\s*\(.*?\)\s*$/,"").trim();if(n!==t&&Ye[n])return Ye[n];for(const[a,s]of fw)if(a.test(t))return s;return null}function mw(e={}){const{getMap:t=()=>null,mapId:o="unknown",getLanguageFamilyColor:n=()=>"#999999",getNormalizedPeopleGroups:a=()=>[]}=e,s=()=>{const ne=t();return ne?He(ne):null},r=Zd({getMap:s,mapId:o,getLanguageFamilyColor:n,getNormalizedPeopleGroups:a}),i=he({languageFamilyPins:!1,regions:!1,peopleGroups:!1,familyConnections:!1}),l=he({});function c(ne,te="languageFamily"){const de=s();if(!de||!(ne!=null&&ne.length))return;const Se=R1(te),T=ne.map(O=>{var ue,ee,w,x,G,X,me,ce,Z,le,Ce,Te,qe,nt,Qe,K,se,ve,Ae;return{type:"Feature",properties:{uniqueId:O.id||O.uniqueId,slug:O.slug||((ue=O._normalized)==null?void 0:ue.slug)||"",rop3:O.rop3||O.peopleGroupId,peopleId3:O.peopleId3||"",name:O.name,language:O.language,languageFamily:O.languageFamily||((ee=O._normalized)==null?void 0:ee.languageFamily)||hw(O.language)||"Unknown",affinityBlock:O.affinityBlock||O.affbloc||O.Affbloc||((w=O._normalized)==null?void 0:w.affinityBlock)||"Unknown",affinityBlockLabel:O.affinityBlockLabel||((x=O._normalized)==null?void 0:x.affinityBlockLabel)||"",cluster:O.cluster||((G=O._normalized)==null?void 0:G.cluster)||"",clusterLabel:O.clusterLabel||((X=O._normalized)==null?void 0:X.clusterLabel)||"",peopleGroup:O.peopleGroup||((me=O._normalized)==null?void 0:me.peopleGroup)||"",peopleGroupLabel:O.peopleGroupLabel||((ce=O._normalized)==null?void 0:ce.peopleGroupLabel)||"",doxaRegion:O.doxaRegion||((Z=O._normalized)==null?void 0:Z.doxaRegion)||"Unknown",wagfBlock:O.wagfBlock||((le=O._normalized)==null?void 0:le.wagfBlock)||"",wagfBlockLabel:O.wagfBlockLabel||((Ce=O._normalized)==null?void 0:Ce.wagfBlockLabel)||"",wagfRegionLabel:O.wagfRegionLabel||((Te=O._normalized)==null?void 0:Te.wagfRegionLabel)||"",country:O.country,countryIso:O.countryIso,countryIsoLabel:O.countryIsoLabel,countryName:O.countryName,religion:O.religion,religionCode:O.religionCode,religionLabel:O.religionLabel,religionName:O.religionName,population:O.population,status:O.status,description:O.description||"",imageUrl:O.imageUrl||"",peoplePraying:Number(O.peoplePraying??((qe=O._normalized)==null?void 0:qe.peoplePraying)??0),engagementStatus:O.engagementStatus===!0||O.engagementStatus===1||!1,adoptionStatus:O.adoptionStatus===!0||O.adoptionStatus===1||!1,bible:O.bible||((nt=O._normalized)==null?void 0:nt.bible)||"Not Available",jesusFilm:O.jesusFilm||((Qe=O._normalized)==null?void 0:Qe.jesusFilm)||"Not Available",radio:O.radio||((K=O._normalized)==null?void 0:K.radio)||"Not Available",gospel:O.gospel||((se=O._normalized)==null?void 0:se.gospel)||"Not Available",audio:O.audio||((ve=O._normalized)==null?void 0:ve.audio)||"Not Available",stories:O.stories||((Ae=O._normalized)==null?void 0:Ae.stories)||"Not Available",lng:parseFloat(O.longitude||O.lng)||0},geometry:{type:"Point",coordinates:[parseFloat(O.longitude||O.lng),parseFloat(O.latitude||O.lat)]}}}).filter(O=>!isNaN(O.geometry.coordinates[0])&&!isNaN(O.geometry.coordinates[1])),F=.04,I=O=>`${O.geometry.coordinates[0]},${O.geometry.coordinates[1]}`,W=new Map;for(const O of T){const ue=I(O);W.has(ue)||W.set(ue,[]),W.get(ue).push(O)}for(const O of W.values()){if(O.length<2)continue;const[ue,ee]=O[0].geometry.coordinates,w=O.length;for(let x=0;x",["to-number",["get","peoplePraying"],0],0],"#ffffff","#1f2937"],"circle-opacity":1,"circle-stroke-opacity":1,"circle-opacity-transition":{duration:250}}}),de.addLayer({id:"language-family-pins-hitbox",type:"circle",source:"language-families",paint:{"circle-radius":nl("touchTarget"),"circle-color":"rgba(0,0,0,0)","circle-stroke-width":0,"circle-opacity":0}}),i.value.languageFamilyPins=!0,r.attachLanguageFamilyEvents()}function u(ne,te="doxa-regions"){const de=s();if(!de)return;de.getLayer("regions-fill")&&de.removeLayer("regions-fill"),de.getLayer("regions-border")&&de.removeLayer("regions-border"),de.getSource("regions")&&de.removeSource("regions");const Se={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},T="#cccccc",F=ne&&ne.isoToRegion?ne.isoToRegion:{},I=[],W={};for(const[ee,w]of Object.entries(F)){const x=Se[String(w).toLowerCase()];x&&I.push(ee,x),W[w]||(W[w]=[]),W[w].push(ee)}l.value=W;const Y=I.length?["match",["get","iso_3166_1_alpha_3"],...I,T]:T,O=de.getLayer("language-family-pins-shadow")?"language-family-pins-shadow":de.getLayer("language-family-pins")?"language-family-pins":void 0,ue=(()=>{var ee,w,x;try{return!!((x=(w=(ee=de.getContainer)==null?void 0:ee.call(de))==null?void 0:w.classList)!=null&&x.contains("maplibregl-map"))}catch{return!1}})();ue?(de.addSource("regions",{type:"geojson",data:{type:"FeatureCollection",features:[]}}),fetch(`${Yd()}/boundaries/world-adm0.geojson`).then(ee=>ee.json()).then(ee=>{for(const x of ee.features||[])x.properties&&x.properties.iso3&&(x.properties.iso_3166_1_alpha_3=x.properties.iso3);const w=de.getSource("regions");w&&w.setData(ee)}).catch(ee=>console.warn("[map-layers] region boundaries failed to load",ee))):de.addSource("regions",{type:"vector",url:"mapbox://mapbox.country-boundaries-v1"}),de.addLayer({id:"regions-fill",type:"fill",source:"regions",...ue?{}:{"source-layer":"country_boundaries"},paint:{"fill-color":Y,"fill-opacity":te==="none"?.1:.7,"fill-antialias":!0,...So(de,"fill"),"fill-opacity-transition":{duration:300}}},O),de.addLayer({id:"regions-border",type:"line",source:"regions",...ue?{}:{"source-layer":"country_boundaries"},paint:{"line-color":Y,"line-width":1,"line-opacity":.9,...So(de,"line")}},O),i.value.regions=!0,r.attachRegionEvents()}function p(ne,te){const de=s();if(!de||!ne||!(te!=null&&te.length))return;g();const Se=te.filter(Y=>{var ue;return(Y.languageFamily||((ue=Y._normalized)==null?void 0:ue.languageFamily)||"Unknown")===ne});if(Se.length<2)return;const T=n(ne),F=[],I=15,W=[...Se].sort((Y,O)=>(Y.longitude||Y.lng)-(O.longitude||O.lng));for(let Y=0;Y=",["get","peoplePraying"],Lo],"#15803d",[">",["get","peoplePraying"],0],"#d97706","rgba(0,0,0,0)"]}const U=[0,5,2,6,4,7,5,9,6,12,7,14,8,18,10,25,12,32,14,40];function H(ne,te){const de=["interpolate",["linear"],["zoom"]];for(let Se=0;Se",["get","peoplePraying"],0],de=R();if(!C.every(T=>ne.getLayer(T))){for(const T of C)if(ne.getLayer(T))try{ne.removeLayer(T)}catch{}ne.addLayer({id:h,type:"circle",source:"language-families",filter:te,paint:{"circle-radius":H(U,1),"circle-color":de,"circle-blur":.3,"circle-opacity":.45,"circle-stroke-width":0,...So(ne)}},"language-family-pins");for(const T of d)ne.addLayer({id:T,type:"circle",source:"language-families",filter:te,paint:{"circle-radius":H(U,1),"circle-radius-transition":D,"circle-color":"rgba(0,0,0,0)","circle-blur":0,"circle-opacity":1,"circle-stroke-width":2.5,"circle-stroke-color":de,"circle-stroke-opacity":0,"circle-stroke-opacity-transition":D,...So(ne)}},"language-family-pins")}}function re(){const ne=s();if(ne)for(const te of C)ne.getLayer(te)&&ne.removeLayer(te)}function j(ne){const te=s();if(!te)return;const de=[">",["get","peoplePraying"],0],Se=ne?["all",de,ne]:de;for(const T of C)if(te.getLayer(T))try{te.setFilter(T,Se)}catch{}}function be(){const ne=s();if(ne){if(Q(),f&&(cancelAnimationFrame(f),f=null),m=!0,ne.getLayer("language-family-pins"))try{ne.setLayoutProperty("language-family-pins","circle-sort-key",["case",[">=",["get","peoplePraying"],Lo],1,[">",["get","peoplePraying"],0],1,3])}catch{}fe(ne),xe()}}function xe(){f&&(cancelAnimationFrame(f),f=null);const ne=++k;let te=performance.now(),de=-1/0;function Se(T){if(!m||ne!==k)return;const F=s();if(!F||!C.some(W=>F.getLayer(W))){f=null;return}if(T-de"u")return;const te=typeof ne.getContainer=="function"?ne.getContainer():null;if(te)try{y=new IntersectionObserver(de=>{for(const Se of de)L=Se.isIntersecting},{threshold:0}),y.observe(te)}catch{y=null,L=!0}}function we(){if(y){try{y.disconnect()}catch{}y=null}L=!0}function $e(){m=!1,f&&(cancelAnimationFrame(f),f=null),we();try{re();const ne=s();ne&&ne.getLayer("language-family-pins")&&ne.setLayoutProperty("language-family-pins","circle-sort-key",void 0)}catch{}}return{layersAdded:i,regionIsoMap:l,addLanguageFamilyLayer:c,addRegionsLayer:u,addFamilyConnectionLines:p,removeFamilyConnectionLines:g,updateLayerSource:S,removeLayer:v,hasLayer:b,setPaintProperty:_,mapEvents:r,startPrayerGlow:be,stopPrayerGlow:$e,syncGlowFilter:j,cleanup:$}}const uo={style:"mapbox://styles/mapbox/standard",center:[20,10],zoom:1.8,minZoom:.5,maxZoom:22,pitch:20,bearing:0,projection:"mercator",renderWorldCopies:!0};function bw(e={}){const{getMap:t=()=>null,mapId:o="unknown",mapStore:n=null,regionsGeoData:a=null,defaultCenter:s=(uo==null?void 0:uo.center)||[20,10],defaultZoom:r=uo==null?void 0:uo.zoom}=e,i={speed:.5,essential:!0,curve:1.2};function l(D,L,y={x:150,y:0}){const R=t();if(!R)return D;try{const U=R.getCanvas(),H=U.width,Q=U.height,re=R.project(D),j=window.devicePixelRatio||1,be=(y.x||0)*j,xe=(y.y||0)*j,fe={x:re.x-be,y:re.y-xe},we=R.unproject(fe);return[we.lng,we.lat]}catch{return D}}function c(D,L=[]){const y=t();if(!y)return;let R=null,U=5;const H=L.filter(re=>re.languageFamily===D);if(H.length>0){let re=1/0,j=-1/0,be=1/0,xe=-1/0;if(H.forEach(fe=>{fe.longitude&&fe.latitude&&(re=Math.min(re,fe.longitude),j=Math.max(j,fe.longitude),be=Math.min(be,fe.latitude),xe=Math.max(xe,fe.latitude))}),re!==1/0){R=[(re+j)/2,(be+xe)/2];const fe=j-re,we=xe-be,$e=Math.max(fe,we);$e>50?U=2:$e>20?U=3:$e>10?U=4:$e>5?U=5:U=6}}if(!R)return;const Q=l(R);y.flyTo({center:Q,zoom:U,...i})}function u(D){const L=t();if(!L)return;let y=null,R=4;const U=uw(D);if(U)y=U.center,R=U.zoom||4;else if(a!=null&&a.features){const Q=a.features.find(re=>{var j,be;return((j=re.properties)==null?void 0:j.region)===D||((be=re.properties)==null?void 0:be.name)===D});Q&&(y=p(Q))}if(!y)return;const H=l(y);L.flyTo({center:H,zoom:R,...i})}function p(D){if(!D||!D.geometry)return null;const{type:L,coordinates:y}=D.geometry;let R=[];if(L==="Polygon"?R=y[0]||[]:L==="MultiPolygon"&&y.forEach(Q=>{R=R.concat(Q[0]||[])}),R.length===0)return null;let U=0,H=0;return R.forEach(Q=>{U+=Q[0],H+=Q[1]}),[U/R.length,H/R.length]}function g(D,L={}){const y=t();if(!y)return;const R={center:D,...i,...L};y.flyTo(R)}function S(D,L){const y=t();if(!y||(D==null?void 0:D.longitude)==null||(D==null?void 0:D.latitude)==null)return;const R=L??Math.min(y.getZoom()+2,8);g([D.longitude,D.latitude],{zoom:R})}function v(D,L={top:40,right:40,bottom:40,left:40},y={}){const R=t();if(!R||!D)return;const U=y.maxZoom??4,H=y.duration??900;R.fitBounds(D,{padding:L,maxZoom:U,duration:H,...i,...y})}function b(){const D=t();D&&D.flyTo({center:s,zoom:r,...i})}const _=80,$=800,f=5,m=5,k=110,h=1.2;function P(D){const L=D.filter(Number.isFinite).slice().sort((T,F)=>T-F),y=L.length;if(!y)return null;let R=-1,U=0;for(let T=0;TR&&(R=I,U=T)}const H=(U+1)%y,Q=new Array(y);for(let T=0;T0&&F((T+180)%360+360)%360-180,we=fe(be),$e=24,ne=360/$e,te=new Array($e).fill(0);for(const T of L){let F=Math.floor(((T+180)%360+360)%360/ne);F>=$e&&(F=$e-1),te[F]++}let de=0;for(let T=1;T<$e;T++)te[T]>te[de]&&(de=T);return{center:fe(-180+(de+.5)*ne),minLng:we,maxLng:we+(xe-be),span:xe-be}}function d(D){try{const L=D.getContainer&&D.getContainer().clientWidth||0,y=L>0?Math.log2(L/512):h,R=typeof D.getMinZoom=="function"?D.getMinZoom():y;return Math.max(R,y)}catch{return h}}function C(D,L,y,R){D.easeTo({center:[L,(y+R)/2],zoom:d(D),duration:$,essential:!0})}function A(D,L,y){if(y>k)return!0;try{const R=typeof D.cameraForBounds=="function"?D.cameraForBounds(L,{padding:_,maxZoom:f}):null;return R==null?!0:typeof R.zoom=="number"&&R.zoom<=d(D)+.05}catch{return!1}}function B(D,L){if(!Array.isArray(D))return D;switch(D[0]){case"get":return L==null?void 0:L[D[1]];case"literal":return D[1];case"has":return L!=null&&D[1]in L;case"!has":return L==null||!(D[1]in L);case"!":return!B(D[1],L);case"coalesce":{for(let R=1;R2){const H=Number(B(D[2],L));return Number.isFinite(H)?H:0}return NaN}case"to-string":{const R=B(D[1],L);return R==null?"":String(R)}case"to-boolean":return!!B(D[1],L);case"slice":{const R=B(D[1],L),U=B(D[2],L),H=D.length>3?B(D[3],L):void 0;return typeof R!="string"?"":H!=null?R.slice(U,H):R.slice(U)}default:return D}}function V(D,L){if(D===!0)return!0;if(D===!1)return!1;if(!Array.isArray(D))return!!D;const y=D[0];if(y==="all"){for(let R=1;R"||y===">="||y==="<"||y==="<="){const R=typeof D[1]=="string"?L==null?void 0:L[D[1]]:B(D[1],L),U=B(D[2],L);switch(y){case"==":return R===U||R==null&&U==null;case"!=":return!(R===U||R==null&&U==null);case">":return R>U;case">=":return R>=U;case"<":return R{const W=(I==null?void 0:I.properties)||{};return W.region===T||W.name===T||W.id===T});if(F){const I=[];let W=1/0,Y=-1/0;const O=ee=>{for(const w of ee)Array.isArray(w[0])?O(w):Number.isFinite(w[0])&&Number.isFinite(w[1])&&(I.push(w[0]),w[1]Y&&(Y=w[1]))};(te=F.geometry)!=null&&te.coordinates&&O(F.geometry.coordinates);const ue=P(I);if(ue&&Number.isFinite(W)){const ee=[[ue.minLng,W],[ue.maxLng,Y]];A(y,ee,ue.span)?C(y,ue.center,W,Y):y.fitBounds(ee,{padding:_,maxZoom:f,duration:$,essential:!0});return}}}const R=L.sourceId??"language-families";if(!y.getSource(R))return;const U=L.matchExpr??D.filter;if(!U)return;const H=J(y,R);if(!H.length)return;const Q=[];let re=1/0,j=-1/0,be=0,xe=0,fe=0;const we=new Set;for(const Se of H){const T=Se==null?void 0:Se.properties;if(!V(U,T))continue;const F=T==null?void 0:T.uniqueId;if(F!=null){if(we.has(F))continue;we.add(F)}const I=(de=Se.geometry)==null?void 0:de.coordinates;if(!Array.isArray(I)||I.length<2)continue;const W=I[0],Y=I[1];!Number.isFinite(W)||!Number.isFinite(Y)||(be===0&&(xe=W,fe=Y),Q.push(W),Yj&&(j=Y),be++)}if(be===0)return;if(be===1){y.flyTo({center:[xe,fe],zoom:m,duration:$,essential:!0});return}const $e=P(Q)||{center:0,minLng:0,maxLng:0,span:0},ne=[[$e.minLng,re],[$e.maxLng,j]];if(A(y,ne,$e.span)){C(y,$e.center,re,j);return}try{y.fitBounds(ne,{padding:_,maxZoom:f,duration:$,essential:!0})}catch{}}return{getOffsetCenter:l,slowFlyToFamily:c,slowFlyToRegion:u,flyTo:g,flyToCoords:S,fitBounds:v,resetView:b,zoomToLegendRow:z,calculateRegionCenterFromPolygon:p}}const or="#1a1a1a",Ko="selected-pin-highlight";function $w(e=or){const t=document.createElement("div");t.className="map-go-pin-wrapper";const o=`pinGrad-${Math.random().toString(36).slice(2,8)}`;return t.innerHTML=` + `}function p(b){const k=t();if(!k)return;const E=b||"language-family-pins";if(!k.getLayer(E))return;const x=f=>{try{const d=f.features[0],y=d.properties,N=d.geometry.coordinates.slice();for(;Math.abs(f.lngLat.lng-N[0])>180;)N[0]+=f.lngLat.lng>N[0]?360:-360;if(s&&s.legendMode!==void 0){s.selectPeopleGroup(d),s.isMobile&&s.legendState==="collapsed"&&s.setLegendState("open"),s.isMobile||window.dispatchEvent(new CustomEvent("dxm:openDesktopLegend",{detail:{mapId:o}}));return}new mapboxgl.Popup({maxWidth:"320px",className:"people-group-popup"}).setLngLat(N).setHTML(c(y)).addTo(k)}catch(d){console.error(` [${o}] Pin click handler error:`,d)}};k.on("click",E,x),l.value.push({event:"click",layer:E,handler:x})}function g(){const b=t();if(!b)return;const k="regions-fill";if(!b.getLayer(k))return;const E=x=>{const f=["language-family-pins","language-family-pins-hitbox","people-groups-pins"];for(const d of f)if(b.getLayer(d)){const y=b.queryRenderedFeatures(x.point,{layers:[d]});if(y&&y.length>0)return}if(x.features&&x.features.length>0){const d=x.features[0].properties;new mapboxgl.Popup().setLngLat(x.lngLat).setHTML(u(d)).addTo(b)}};b.on("click",k,E),l.value.push({event:"click",layer:k,handler:E})}function A(){const b=t();if(!b)return;const k="clusters";if(!b.getLayer(k))return;const E=x=>{const f=b.queryRenderedFeatures(x.point,{layers:[k]});if(!f.length)return;const d=f[0].properties.cluster_id,y=f[0].source;b.getSource(y).getClusterExpansionZoom(d,(N,B)=>{N||b.easeTo({center:f[0].geometry.coordinates,zoom:B})})};b.on("click",k,E),l.value.push({event:"click",layer:k,handler:E})}function w(b){const k=t();if(!k||!k.getLayer(b))return;const E=()=>{k.getCanvas().style.cursor="pointer"},x=()=>{k.getCanvas().style.cursor=""};k.on("mouseenter",b,E),k.on("mouseleave",b,x),l.value.push({event:"mouseenter",layer:b,handler:E}),l.value.push({event:"mouseleave",layer:b,handler:x})}function h(){p(),w("language-family-pins"),p("language-family-pins-hitbox"),w("language-family-pins-hitbox"),A(),w("clusters")}function v(){g(),w("regions-fill")}function $(){const b=t();b&&(b.getLayer("language-family-pins")&&h(),b.getLayer("regions-fill")&&v(),b.getLayer("people-groups-pins")&&(p(),w("people-groups-pins")))}function m(){const b=t();if(b){for(const{event:k,layer:E,handler:x}of l.value)try{b.off(k,E,x)}catch{}l.value=[]}}return{attachAllEventHandlers:$,attachLanguageFamilyEvents:h,attachRegionEvents:v,attachPinClickHandler:p,attachRegionClickHandler:g,attachClusterClickHandler:A,attachCursorHandlers:w,detachAllEventHandlers:m,generatePinPopupContent:c,generateRegionPopupContent:u,registeredHandlers:l}}const Ze={Chamacoco:"Zamucoan",Ninam:"Yanomaman",Yagua:"Yaguan",Muinane:"Witotoan",Finnish:"Uralic","Hill Mari":"Uralic",Mansi:"Uralic","Meadow Mari":"Uralic","North Saami":"Uralic",Carabayo:"Unclassified",Kujarge:"Unclassified",Shabo:"Unclassified",Ainu:"Turkic",Kazakh:"Turkic","Khorasani Turkish":"Turkic",Kyrgyz:"Turkic","Northern Uzbek":"Turkic","South Azerbaijani":"Turkic",Turkish:"Turkic",Tuvan:"Turkic",Uyghur:"Turkic",Amundava:"Tupian",Araweté:"Tupian","Asurini of Xingú":"Tupian","Avá-Canoeiro":"Tupian",Awetí:"Tupian",Kamayurá:"Tupian",Karo:"Tupian",Morerebi:"Tupian",Tenharim:"Tupian","Uru-Eu-Wau-Wau":"Tupian","Uru-Pa-In":"Tupian",Wayampi:"Tupian","Zo’é":"Tupian",Evenki:"Tungusic",Xibe:"Tungusic",Carapana:"Tucanoan",Cubeo:"Tucanoan",Desano:"Tucanoan",Macuna:"Tucanoan",Piratapuyo:"Tucanoan",Siona:"Tucanoan",Siriano:"Tucanoan",Tucano:"Tucanoan",Tuyuca:"Tucanoan",Waimaha:"Tucanoan",Tay:"Trans-New Guinea",Adi:"Sino-Tibetan",Akha:"Sino-Tibetan","Amdo Tibetan":"Sino-Tibetan",Axi:"Sino-Tibetan",Biyo:"Sino-Tibetan","Boro (India)":"Sino-Tibetan",Brokkat:"Sino-Tibetan",Bugun:"Sino-Tibetan",Byangsi:"Sino-Tibetan","Central Lalo":"Sino-Tibetan","Central Tibetan":"Sino-Tibetan",Chak:"Sino-Tibetan",Chalikha:"Sino-Tibetan",Chaudangsi:"Sino-Tibetan",Chocangacakha:"Sino-Tibetan",Darlong:"Sino-Tibetan",Dhimal:"Sino-Tibetan","Digaro-Mishmi":"Sino-Tibetan",Dzalakha:"Sino-Tibetan","Eastern Nisu":"Sino-Tibetan",Ersu:"Sino-Tibetan",Gahri:"Sino-Tibetan",Gongduk:"Sino-Tibetan",Gyalsumdo:"Sino-Tibetan",Hani:"Sino-Tibetan","Idu-Mishmi":"Sino-Tibetan",Kaike:"Sino-Tibetan",Kanashi:"Sino-Tibetan",Katso:"Sino-Tibetan",Khamba:"Sino-Tibetan",Koireng:"Sino-Tibetan",Kucong:"Sino-Tibetan",Kurtokha:"Sino-Tibetan",Ladakhi:"Sino-Tibetan",Lakha:"Sino-Tibetan","Lang’e":"Sino-Tibetan",Lhokpu:"Sino-Tibetan",Lolopo:"Sino-Tibetan",Lunanakha:"Sino-Tibetan","Mandarin Chinese":"Sino-Tibetan",Meitei:"Sino-Tibetan","Miju-Mishmi":"Sino-Tibetan",Mpi:"Sino-Tibetan",Na:"Sino-Tibetan",Namuyi:"Sino-Tibetan",Narua:"Sino-Tibetan",Naxi:"Sino-Tibetan","Northern Muji":"Sino-Tibetan",Nuosu:"Sino-Tibetan",Nupbikha:"Sino-Tibetan",Nyenkha:"Sino-Tibetan",Olekha:"Sino-Tibetan",Pahari:"Sino-Tibetan",Pattani:"Sino-Tibetan","Phana’":"Sino-Tibetan",Phula:"Sino-Tibetan",Phunoi:"Sino-Tibetan",Puma:"Sino-Tibetan",Puroik:"Sino-Tibetan",Raji:"Sino-Tibetan",Rawat:"Sino-Tibetan",Sani:"Sino-Tibetan",Sherdukpen:"Sino-Tibetan",Sherpa:"Sino-Tibetan",Shuhi:"Sino-Tibetan",Sila:"Sino-Tibetan",Singpho:"Sino-Tibetan",Sunwar:"Sino-Tibetan","Tawang Monpa":"Sino-Tibetan",Tseku:"Sino-Tibetan",Tshangla:"Sino-Tibetan",Usoi:"Sino-Tibetan","Western Minyag":"Sino-Tibetan","Wusa Nasu":"Sino-Tibetan","Xiang Chinese":"Sino-Tibetan",Yakkha:"Sino-Tibetan","Youle Jinuo":"Sino-Tibetan","Yue Chinese":"Sino-Tibetan",Zakhring:"Sino-Tibetan","Afghan Sign Language":"Sign Language","Albanian Sign Language":"Sign Language","Algerian Sign Language":"Sign Language","American Sign Language":"Sign Language","Armenian Sign Language":"Sign Language","British Sign Language":"Sign Language","Bulgarian Sign Language":"Sign Language","Cambodian Sign Language":"Sign language","Cuban Sign Language":"Sign Language","Egyptian Sign Language":"Sign Language","Greek Sign Language":"Sign Language","Guinean Sign Language":"Sign Language","Hong Kong Sign Language":"Sign Language","Icelandic Sign Language":"Sign Language","Iranian Sign Language":"Sign Language","Israeli Sign Language":"Sign Language","Jamaican Sign Language":"Sign Language","Jordanian Sign Language":"Sign Language","Laos Sign Language":"Sign Language","Libyan Sign Language":"Sign Language","Maltese Sign Language":"Sign Language","Mauritian Sign Language":"Sign Language","Moroccan Sign Language":"Sign Language","Mozambican Sign Language":"Sign Language","Myanmar Sign Language":"Sign language","Natural Sign Language":"Sign Language","Pakistan Sign Language":"Sign Language","Papua New Guinean Sign Language":"Sign language","Russian Sign Language":"Sign Language","Saudi Arabian Sign Language":"Sign Language","Sign Language of the Netherlands":"Sign Language","Solomon Islands Sign Language":"Sign Language","Sri Lankan Sign Language":"Sign Language","Swedish Sign Language":"Sign Language","Turkish Sign Language":"Sign Language","Northern Conchucos Ancash Quechua":"Quechuan","Northern Pastaza Quichua":"Quechuan",Hupdë:"Puinavean",Amahuaca:"Panoan",Korubo:"Panoan",Sharanahua:"Panoan","Shipibo-Conibo":"Panoan",Yaminahua:"Panoan",Yawanawa:"Panoan",Afitti:"Nilo-Saharan",Assangori:"Nilo-Saharan","Beli (South Sudan)":"Nilo-Saharan",Berta:"Nilo-Saharan",Burun:"Nilo-Saharan","Dar Daju Daju":"Nilo-Saharan","Dar Fur Daju":"Nilo-Saharan","Dar Sila Daju":"Nilo-Saharan",Dazaga:"Nilo-Saharan","Dendi (Benin)":"Nilo-Saharan",Dilling:"Nilo-Saharan",Fur:"Nilo-Saharan",Gbaya:"Nilo-Saharan",Ghulfan:"Nilo-Saharan",Gwama:"Nilo-Saharan","Humburi Senni Songhay":"Nilo-Saharan",Jopadhola:"Nilo-Saharan",Kadaru:"Nilo-Saharan",Kanga:"Nilo-Saharan",Karanga:"Nilo-Saharan",Karko:"Nilo-Saharan",Kebu:"Nilo-Saharan",Keiga:"Nilo-Saharan",Keliko:"Nilo-Saharan",Kendeje:"Nilo-Saharan",Kibet:"Nilo-Saharan","Komo (Sudan)":"Nilo-Saharan",Korandje:"Nilo-Saharan",Kulfa:"Nilo-Saharan",Kwegu:"Nilo-Saharan",Laarim:"Nilo-Saharan",Logorik:"Nilo-Saharan",Majang:"Nilo-Saharan","Manga Kanuri":"Nilo-Saharan",Mango:"Nilo-Saharan",Mararit:"Nilo-Saharan",Marfa:"Nilo-Saharan",Midob:"Nilo-Saharan","Mo’da":"Nilo-Saharan",Morom:"Nilo-Saharan",Moru:"Nilo-Saharan",Naba:"Nilo-Saharan",Nara:"Nilo-Saharan",Njalgulgule:"Nilo-Saharan",Nuer:"Nilo-Saharan","Nyamusa-Molo":"Nilo-Saharan",Nyangatom:"Nilo-Saharan","Olu’bo":"Nilo-Saharan",Opo:"Nilo-Saharan",Päri:"Nilo-Saharan","Sara Kaba Naa":"Nilo-Saharan",Surbakhal:"Nilo-Saharan",Tadaksahak:"Nilo-Saharan","Tama (Chad)":"Nilo-Saharan",Temein:"Nilo-Saharan",Thuri:"Nilo-Saharan","Tirmaga-Chai Suri":"Nilo-Saharan",Toposa:"Nilo-Saharan",Tumtum:"Nilo-Saharan","Wali (Sudan)":"Nilo-Saharan","Yerwa Kanuri":"Nilo-Saharan",Yulu:"Nilo-Saharan",Zaghawa:"Nilo-Saharan","Adamawa Fulfulde":"Niger-Congo",Akaselem:"Niger-Congo","Amba (Uganda)":"Niger-Congo",Anii:"Niger-Congo",Baangi:"Niger-Congo",Badyara:"Niger-Congo","Bago-Kusuntu":"Niger-Congo",Bai:"Niger-Congo","Bainouk-Gunyaamolo":"Niger-Congo",Bamanankan:"Niger-Congo","Banda-Mbrès":"Niger-Congo",Bandial:"Niger-Congo",Bankagooma:"Niger-Congo","Belanda Viri":"Niger-Congo",Bemba:"Niger-Congo",Bolgo:"Niger-Congo","Bon Gula":"Niger-Congo",Bua:"Niger-Congo",Chichewa:"Niger-Congo","Chung (Cameroon)":"Niger-Congo","Ci Gbe":"Niger-Congo",Degema:"Niger-Congo",Dek:"Niger-Congo",Dhimba:"Niger-Congo",Dogoso:"Niger-Congo","East Limba":"Niger-Congo",Engenni:"Niger-Congo",Epie:"Niger-Congo",Éwé:"Niger-Congo",Fania:"Niger-Congo",Foodo:"Niger-Congo",Fwe:"Niger-Congo",Gciriku:"Niger-Congo",Gwa:"Niger-Congo",Herero:"Niger-Congo",Ibuoro:"Niger-Congo","Jenaama Bozo":"Niger-Congo",Jita:"Niger-Congo",Jula:"Niger-Congo",Kabiyè:"Niger-Congo",Kadung:"Niger-Congo",Kakabe:"Niger-Congo",Kalamsé:"Niger-Congo","Kami (Tanzania)":"Niger-Congo","Kango (Bas-Uélé District)":"Niger-Congo",Kasem:"Niger-Congo","Kelengaxo Bozo":"Niger-Congo",Khe:"Niger-Congo",Khisa:"Niger-Congo",Kim:"Niger-Congo",Kinyarwanda:"Niger-Congo",Kipfokomu:"Niger-Congo",Kitharaka:"Niger-Congo",Kiyombe:"Niger-Congo",Ko:"Niger-Congo",Koalib:"Niger-Congo",Koke:"Niger-Congo",Konongo:"Niger-Congo","Koro Nulu":"Niger-Congo","Koro Zuba":"Niger-Congo",Kuhane:"Niger-Congo",Kunda:"Niger-Congo",Kuranko:"Niger-Congo",Kuria:"Niger-Congo",Kwangali:"Niger-Congo",Lame:"Niger-Congo",Laru:"Niger-Congo",Lopa:"Niger-Congo","Makhuwa-Meetto":"Niger-Congo","Makhuwa-Shirima":"Niger-Congo","Malawi Nyiha":"Niger-Congo",Mandinka:"Niger-Congo",Mankanya:"Niger-Congo",Mansoanka:"Niger-Congo",Mbukushu:"Niger-Congo","Mende (Sierra Leone)":"Niger-Congo",Miyobe:"Niger-Congo",Mushungulu:"Niger-Congo","Mwali Comorian":"Niger-Congo","Mwera (Chimwera)":"Niger-Congo",Ndemli:"Niger-Congo",Ndengereko:"Niger-Congo",Ndumu:"Niger-Congo",Ndunga:"Niger-Congo","Ndzwani Comorian":"Niger-Congo",Ngile:"Niger-Congo","Northwest Gbaya":"Niger-Congo",Notre:"Niger-Congo",Nyamwanga:"Niger-Congo",Nyankore:"Niger-Congo",Nyengo:"Niger-Congo",Okpamheri:"Niger-Congo",Osatu:"Niger-Congo","Pana (Burkina Faso)":"Niger-Congo",Pulaar:"Niger-Congo",Pular:"Niger-Congo",Rufiji:"Niger-Congo","Sankaran Maninka":"Niger-Congo",Sapo:"Niger-Congo","Senara Sénoufo":"Niger-Congo",Shanga:"Niger-Congo",Sininkere:"Niger-Congo","Southern Ngbandi":"Niger-Congo",Swahili:"Niger-Congo","Syenara Sénoufo":"Niger-Congo",Tagbu:"Niger-Congo",Tagoi:"Niger-Congo",Tegali:"Niger-Congo",Tem:"Niger-Congo","Tiéyaxo Bozo":"Niger-Congo",Tiyaa:"Niger-Congo",Tocho:"Niger-Congo","Tonga (Zambia)":"Niger-Congo",Totela:"Niger-Congo","Toura (Côte d’Ivoire)":"Niger-Congo",Tswa:"Niger-Congo",Tumbuka:"Niger-Congo",Ukaan:"Niger-Congo",Uneme:"Niger-Congo",Vai:"Niger-Congo",Vute:"Niger-Congo",Waama:"Niger-Congo",Warnang:"Niger-Congo",Wolof:"Niger-Congo",Yao:"Niger-Congo",Yauma:"Niger-Congo",Yom:"Niger-Congo","Zan Gula":"Niger-Congo",Zande:"Niger-Congo",Zigula:"Niger-Congo",Mamaindê:"Nambikwara",Aghul:"Nakh-Daghestanian",Akhvakh:"Nakh-Daghestanian",Andi:"Nakh-Daghestanian",Avar:"Nakh-Daghestanian",Bagvalal:"Nakh-Daghestanian",Botlikh:"Nakh-Daghestanian",Chamalal:"Nakh-Daghestanian",Chechen:"Nakh-Daghestanian",Dargwa:"Nakh-Daghestanian",Kaitag:"Nakh-Daghestanian",Karata:"Nakh-Daghestanian",Khvarshi:"Nakh-Daghestanian",Tindi:"Nakh-Daghestanian",Pirahã:"Muran",Bonan:"Mongolic","China Buriat":"Mongolic",Daur:"Mongolic","Kalmyk-Oirat":"Mongolic","Peripheral Mongolian":"Mongolic","Russia Buriat":"Mongolic",Tagdal:"Mixed language",Wutunhua:"Mixed language","Ashéninka Perené":"Maipurean",Baniwa:"Maipurean",Cabiyarí:"Maipurean",Curripaco:"Maipurean","Enawené-Nawé":"Maipurean",Kanamarí:"Maipurean",Mehináku:"Maipurean","Pichis Ashéninka":"Maipurean",Waurá:"Maipurean",Bangime:"Language isolate",Burushaski:"Language isolate","Ai-Cham":"Kra-Dai",Aiton:"Kra-Dai","Dai Zhuang":"Kra-Dai",Duoluo:"Kra-Dai","Green Gelao":"Kra-Dai","Guibian Zhuang":"Kra-Dai",Hlai:"Kra-Dai",Jiamao:"Kra-Dai",Kang:"Kra-Dai",Khün:"Kra-Dai",Kuan:"Kra-Dai",Lachi:"Kra-Dai","Laha (Viet Nam)":"Kra-Dai",Lao:"Kra-Dai",Lü:"Kra-Dai","Mak (China)":"Kra-Dai","Northeastern Thai":"Kra-Dai","Northern Dong":"Kra-Dai","Northern Thai":"Kra-Dai",Nyaw:"Kra-Dai",Phake:"Kra-Dai","Phu Thai":"Kra-Dai",Qabiao:"Kra-Dai",Qau:"Kra-Dai","Qiubei Zhuang":"Kra-Dai",Shan:"Kra-Dai","Southern Dong":"Kra-Dai",Sui:"Kra-Dai","T’en":"Kra-Dai","Tai Daeng":"Kra-Dai","Tai Dam":"Kra-Dai","Tai Hongjin":"Kra-Dai","Tai Nüa":"Kra-Dai","Tai Ya":"Kra-Dai","Tai Yo":"Kra-Dai","Ts’ün-Lao":"Kra-Dai","Yang Zhuang":"Kra-Dai",Yerong:"Kra-Dai",Yong:"Kra-Dai",Yoy:"Kra-Dai",Khoekhoe:"Khoe-Kwadi",Karajá:"Karajá","Pará Gavião":"Jean",Suyá:"Jean",Japanese:"Japonic","Oki-No-Erabu":"Japonic","Toku-No-Shima":"Japonic",Yaeyama:"Japonic",Yoron:"Japonic","Adivasi Oriya":"Indo-European",Afrikaans:"Indo-European","Alviri-Vidari":"Indo-European",Angika:"Indo-European",Assamese:"Indo-European",Bagheli:"Indo-European",Bagri:"Indo-European",Bashkardi:"Indo-European",Bateri:"Indo-European",Bengali:"Indo-European",Bhojpuri:"Indo-European",Bhunjia:"Indo-European",Bilaspuri:"Indo-European",Bosnian:"Indo-European","Braj Bhasha":"Indo-European",Brokskat:"Indo-European",Bundeli:"Indo-European",Catalan:"Indo-European",Chambeali:"Indo-European",Chhattisgarhi:"Indo-European",Dameli:"Indo-European",Dari:"Indo-European",Dhundari:"Indo-European",Dogri:"Indo-European",Domari:"Indo-European",Dutch:"Indo-European","Eastern Balochi":"Indo-European","Eastern Panjabi":"Indo-European","Eastern Yiddish":"Indo-European",English:"Indo-European",French:"Indo-European",Gaddi:"Indo-European",Garhwali:"Indo-European",Gawri:"Indo-European",Gowro:"Indo-European",Gujarati:"Indo-European",Gujari:"Indo-European",Halbi:"Indo-European",Haroti:"Indo-European",Haryanvi:"Indo-European",Hindi:"Indo-European","Indus Kohistani":"Indo-European","Iranian Persian":"Indo-European",Ishkashimi:"Indo-European",Kacchi:"Indo-European",Kalkoti:"Indo-European",Kanauji:"Indo-European",Kangri:"Indo-European",Karingani:"Indo-European",Kashmiri:"Indo-European",Kati:"Indo-European",Khunsari:"Indo-European",Konkani:"Indo-European",Kudmali:"Indo-European",Kumaoni:"Indo-European",Kumzari:"Indo-European",Laki:"Indo-European",Lasi:"Indo-European",Luwati:"Indo-European",Magahi:"Indo-European",Maithili:"Indo-European",Maldivian:"Indo-European",Malvi:"Indo-European",Marathi:"Indo-European","Marwari (India)":"Indo-European",Mewari:"Indo-European",Munji:"Indo-European",Nepali:"Indo-European",Nimadi:"Indo-European","Northern Kurdish":"Indo-European",Odia:"Indo-European","Pahari-Potwari":"Indo-European",Palula:"Indo-European",Panchpargania:"Indo-European",Pangwali:"Indo-European",Parachi:"Indo-European",Portuguese:"Indo-European",Russian:"Indo-European",Sadri:"Indo-European",Sanglechi:"Indo-European",Sarikoli:"Indo-European",Savi:"Indo-European",Semnani:"Indo-European",Serbian:"Indo-European",Shabak:"Indo-European",Shahrudi:"Indo-European",Shekhawati:"Indo-European",Shina:"Indo-European",Shughni:"Indo-European",Shumashti:"Indo-European",Sindhi:"Indo-European",Sivandi:"Indo-European",Soi:"Indo-European","Southern Balochi":"Indo-European",Spanish:"Indo-European",Tajik:"Indo-European",Talysh:"Indo-European",Urdu:"Indo-European",Ushojo:"Indo-European",Vaghri:"Indo-European","Vlax Romani":"Indo-European",Wagdi:"Indo-European",Wakhi:"Indo-European",Waneci:"Indo-European","Western Balochi":"Indo-European",Yadgha:"Indo-European","Bu-Nao Bunu":"Hmong-Mien","Central Mashan Miao":"Hmong-Mien","Chuanqiandian Cluster Miao":"Hmong-Mien","Eastern Xiangxi Miao":"Hmong-Mien","Iu Mien":"Hmong-Mien","Luopohe Miao":"Hmong-Mien","Northern Qiandong Miao":"Hmong-Mien","Pa-Hng":"Hmong-Mien","Southwestern Huishui Miao":"Hmong-Mien","Wunai Bunu":"Hmong-Mien","Younuo Bunu":"Hmong-Mien",Amarakaeri:"Harákmbut",Huachipaeri:"Harákmbut",Cuiba:"Guajiboan",Macaguán:"Guajiboan",Tlicho:"Eyak-Athabaskan",Kannada:"Dravidian",Kodava:"Dravidian","Korra Koraga":"Dravidian","Kota (India)":"Dravidian",Kudiya:"Dravidian",Malapandaram:"Dravidian",Malayalam:"Dravidian",Muthuvan:"Dravidian",Ravula:"Dravidian",Sholaga:"Dravidian",Tamil:"Dravidian",Telugu:"Dravidian",Tulu:"Dravidian",Vishavan:"Dravidian","Andaman Hindi Creole":"Creole","Cocos Islands Malay":"Creole","Juba Arabic":"Creole",Nubi:"Creole",Barí:"Chibchan","Barro Negro Tunebo":"Chibchan","Western Tunebo":"Chibchan",Ikpeng:"Cariban","Kuikúro-Kalapálo":"Cariban",Pemon:"Cariban",Trió:"Cariban","Waimiri-Atroarí":"Cariban",Waiwai:"Cariban",Yukpa:"Cariban",Borôro:"Bororoan",Chachi:"Barbacoan","Abai Sungai":"Austronesian",Ambelau:"Austronesian",Asilulu:"Austronesian",Balaesang:"Austronesian","Batak Alas-Kluet":"Austronesian","Batak Dairi":"Austronesian","Batak Karo":"Austronesian",Bonerate:"Austronesian",Bonggi:"Austronesian",Brunei:"Austronesian","Brunei Bisaya":"Austronesian",Buol:"Austronesian","Central Malay":"Austronesian","Central Sama":"Austronesian","Coastal Konjo":"Austronesian",Dampelas:"Austronesian","Dibabawon Manobo":"Austronesian",Dondo:"Austronesian",Gane:"Austronesian","Geser-Gorom":"Austronesian","Highland Konjo":"Austronesian",Hitu:"Austronesian",Iban:"Austronesian",Indonesian:"Austronesian","Kadazan Dusun":"Austronesian",Kiput:"Austronesian",Komodo:"Austronesian",Kompane:"Austronesian",Lahanan:"Austronesian","Lampung Nyo":"Austronesian","Larike-Wakasihu":"Austronesian",Lola:"Austronesian",Luhu:"Austronesian",Malay:"Austronesian",Mariri:"Austronesian",Moronene:"Austronesian",Rukai:"Austronesian","Sabah Bisaya":"Austronesian","Seit-Kaitetu":"Austronesian",Sula:"Austronesian","Tae’":"Austronesian",Tajio:"Austronesian",Tomini:"Austronesian",Tutong:"Austronesian",Ujir:"Austronesian",Aheu:"Austro-Asiatic",Alak:"Austro-Asiatic",Bit:"Austro-Asiatic","Bo (Laos)":"Austro-Asiatic",Bondo:"Austro-Asiatic",Brao:"Austro-Asiatic",Bugan:"Austro-Asiatic",Chong:"Austro-Asiatic",Chut:"Austro-Asiatic",Danau:"Austro-Asiatic",Halang:"Austro-Asiatic","Halang Doan":"Austro-Asiatic",Hu:"Austro-Asiatic",Hung:"Austro-Asiatic",Ir:"Austro-Asiatic",Kensiu:"Austro-Asiatic",Khmu:"Austro-Asiatic",Khua:"Austro-Asiatic",Khuen:"Austro-Asiatic",Koda:"Austro-Asiatic","Kon Keu":"Austro-Asiatic",Kriang:"Austro-Asiatic",Kuay:"Austro-Asiatic",Laven:"Austro-Asiatic",Maleng:"Austro-Asiatic","Man Met":"Austro-Asiatic",Mang:"Austro-Asiatic",Minriq:"Austro-Asiatic",Mlabri:"Austro-Asiatic",Nguôn:"Austro-Asiatic",Nyaheun:"Austro-Asiatic",Nyahkur:"Austro-Asiatic","O’du":"Austro-Asiatic",Ong:"Austro-Asiatic",Oy:"Austro-Asiatic",Pacoh:"Austro-Asiatic","Phong-Kniang":"Austro-Asiatic",Prai:"Austro-Asiatic",Puoc:"Austro-Asiatic",Rengao:"Austro-Asiatic",Rmeet:"Austro-Asiatic","Rumai Palaung":"Austro-Asiatic",Sapuan:"Austro-Asiatic","Shwe Palaung":"Austro-Asiatic","So (Laos)":"Austro-Asiatic",Sou:"Austro-Asiatic","Tai Loi":"Austro-Asiatic",Talieng:"Austro-Asiatic",Tareng:"Austro-Asiatic",Tho:"Austro-Asiatic",U:"Austro-Asiatic","Upper Ta’oih":"Austro-Asiatic",Vietnamese:"Austro-Asiatic","Western Katu":"Austro-Asiatic",Suruahá:"Arauan",Jarawa:"Andamanese",Öñge:"Andamanese",Sentinel:"Andamanese",Afar:"Afro-Asiatic","Alaba-K’abeena":"Afro-Asiatic",Alagwa:"Afro-Asiatic",Ale:"Afro-Asiatic","Algerian Arabic":"Afro-Asiatic",Amharic:"Afro-Asiatic",Arbore:"Afro-Asiatic","Baharna Arabic":"Afro-Asiatic",Barein:"Afro-Asiatic",Bedawiyet:"Afro-Asiatic",Bidiyo:"Afro-Asiatic",Bilen:"Afro-Asiatic",Birgit:"Afro-Asiatic",Boor:"Afro-Asiatic","Borana-Arsi-Guji Oromo":"Afro-Asiatic",Buduma:"Afro-Asiatic","Central Atlas Tamazight":"Afro-Asiatic","Chadian Arabic":"Afro-Asiatic",Chenoua:"Afro-Asiatic",Ciwogai:"Afro-Asiatic",Daasanach:"Afro-Asiatic",Dabarre:"Afro-Asiatic",Dangaléat:"Afro-Asiatic",Deno:"Afro-Asiatic",Diri:"Afro-Asiatic",Duwai:"Afro-Asiatic","Eastern Egyptian Bedawi Arabic":"Afro-Asiatic","Eastern Oromo":"Afro-Asiatic",Garre:"Afro-Asiatic",Geruma:"Afro-Asiatic",Giiwo:"Afro-Asiatic",Gorowa:"Afro-Asiatic","Gulf Arabic":"Afro-Asiatic","Hadrami Arabic":"Afro-Asiatic",Harsusi:"Afro-Asiatic",Hassaniyya:"Afro-Asiatic",Hausa:"Afro-Asiatic",Hebrew:"Afro-Asiatic","Hijazi Arabic":"Afro-Asiatic",Hobyót:"Afro-Asiatic",Hozo:"Afro-Asiatic",Jiiddu:"Afro-Asiatic",Jimi:"Afro-Asiatic",Jina:"Afro-Asiatic","Jonkor Bourmataguil":"Afro-Asiatic","Judeo-Iraqi Arabic":"Afro-Asiatic","Judeo-Moroccan Arabic":"Afro-Asiatic",Kabalai:"Afro-Asiatic",Kajakse:"Afro-Asiatic",Kariya:"Afro-Asiatic","Karo (Ethiopia)":"Afro-Asiatic",Kutto:"Afro-Asiatic","Levantine Arabic":"Afro-Asiatic",Libido:"Afro-Asiatic","Libyan Arabic":"Afro-Asiatic","Lishana Deni":"Afro-Asiatic",Maaka:"Afro-Asiatic",Maay:"Afro-Asiatic",Majera:"Afro-Asiatic",Male:"Afro-Asiatic",Maslam:"Afro-Asiatic",Masmaje:"Afro-Asiatic",Mburku:"Afro-Asiatic",Mehri:"Afro-Asiatic","Mesopotamian Arabic":"Afro-Asiatic",Migaama:"Afro-Asiatic",Mogum:"Afro-Asiatic","Moroccan Arabic":"Afro-Asiatic",Mositacha:"Afro-Asiatic",Mubi:"Afro-Asiatic",Mukulu:"Afro-Asiatic",Nafusi:"Afro-Asiatic","Najdi Arabic":"Afro-Asiatic",Nyam:"Afro-Asiatic","Omani Arabic":"Afro-Asiatic","Pa’a":"Afro-Asiatic",Saba:"Afro-Asiatic",Saho:"Afro-Asiatic","Sanaani Arabic":"Afro-Asiatic",Seze:"Afro-Asiatic",Shehri:"Afro-Asiatic",Shekkacho:"Afro-Asiatic",Sheko:"Afro-Asiatic","Shihhi Arabic":"Afro-Asiatic",Siwi:"Afro-Asiatic",Sokoro:"Afro-Asiatic",Soqotri:"Afro-Asiatic","South Levantine Arabic":"Afro-Asiatic","Standard Arabic":"Afro-Asiatic","Sudanese Arabic":"Afro-Asiatic","Ta’izzi-Adeni Arabic":"Afro-Asiatic","Tahaggart Tamahaq":"Afro-Asiatic",Taznatit:"Afro-Asiatic",Tigré:"Afro-Asiatic",Toram:"Afro-Asiatic",Tsamai:"Afro-Asiatic",Tumzabt:"Afro-Asiatic",Tunni:"Afro-Asiatic",Waata:"Afro-Asiatic","West Central Oromo":"Afro-Asiatic",Xamtanga:"Afro-Asiatic",Zumbun:"Afro-Asiatic"},Al=[">",["to-number",["get","peoplePraying"],0],0],Sl={0:.25,8:.4,14:.5},pa={0:.1,8:.18,14:.22},da={0:1.2,8:1.6,14:2},Rg=["interpolate",["linear"],["zoom"],0,["case",Al,Sl[0],pa[0]],8,["case",Al,Sl[8],pa[8]],14,["case",Al,Sl[14],pa[14]]],ak=["interpolate",["linear"],["zoom"],0,da[0],8,da[8],14,da[14]],Mg=["==",["to-number",["get","peoplePraying"],0],0],sk={prayer:[Mg],prayerProgress:[Mg],engagement:[["all",["!=",["get","engagementStatus"],!0],["!=",["get","engagementStatus"],1]]],adoption:[["all",["!=",["get","adoptionStatus"],!0],["!=",["get","adoptionStatus"],1]]]};function rk(e){const t=sk[e]||[];if(!t.length)return ak;const o=t.length===1?t[0]:["any",...t];return["interpolate",["linear"],["zoom"],0,["case",o,pa[0],da[0]],8,["case",o,pa[8],da[8]],14,["case",o,pa[14],da[14]]]}const ik=[[/ sign language$/i,"Sign Language"]];function lk(e){if(!e||typeof e!="string")return null;const t=e.trim(),o=t.split(",").map(a=>a.trim()).filter(Boolean);if(o.length>=2){const a=[...o].reverse().join(" ");if(Ze[a])return Ze[a];if(o.length>=3){const s=[o[1],o[0]].join(" ");if(Ze[s])return Ze[s]}}if(Ze[t])return Ze[t];const n=t.replace(/\s*\(.*?\)\s*$/,"").trim();if(n!==t&&Ze[n])return Ze[n];for(const[a,s]of ik)if(a.test(t))return s;return null}function ck(e={}){const{getMap:t=()=>null,mapId:o="unknown",getLanguageFamilyColor:n=()=>"#999999",getNormalizedPeopleGroups:a=()=>[]}=e,s=()=>{const oe=t();return oe?Ve(oe):null},r=Ng({getMap:s,mapId:o,getLanguageFamilyColor:n,getNormalizedPeopleGroups:a}),i=ge({languageFamilyPins:!1,regions:!1,peopleGroups:!1,familyConnections:!1}),l=ge({});function c(oe,fe="languageFamily"){const pe=s();if(!pe||!(oe!=null&&oe.length))return;const Se=Aw(fe),P=oe.map(U=>{var de,ne,_,S,D,te,me,le,Y,ie,ve,Ne,He,lt,tt,q,ae,ke,Pe;return{type:"Feature",properties:{uniqueId:U.id||U.uniqueId,slug:U.slug||((de=U._normalized)==null?void 0:de.slug)||"",rop3:U.rop3||U.peopleGroupId,peopleId3:U.peopleId3||"",name:U.name,language:U.language,languageFamily:U.languageFamily||((ne=U._normalized)==null?void 0:ne.languageFamily)||lk(U.language)||"Unknown",affinityBlock:U.affinityBlock||U.affbloc||U.Affbloc||((_=U._normalized)==null?void 0:_.affinityBlock)||"Unknown",affinityBlockLabel:U.affinityBlockLabel||((S=U._normalized)==null?void 0:S.affinityBlockLabel)||"",cluster:U.cluster||((D=U._normalized)==null?void 0:D.cluster)||"",clusterLabel:U.clusterLabel||((te=U._normalized)==null?void 0:te.clusterLabel)||"",peopleGroup:U.peopleGroup||((me=U._normalized)==null?void 0:me.peopleGroup)||"",peopleGroupLabel:U.peopleGroupLabel||((le=U._normalized)==null?void 0:le.peopleGroupLabel)||"",doxaRegion:U.doxaRegion||((Y=U._normalized)==null?void 0:Y.doxaRegion)||"Unknown",wagfBlock:U.wagfBlock||((ie=U._normalized)==null?void 0:ie.wagfBlock)||"",wagfBlockLabel:U.wagfBlockLabel||((ve=U._normalized)==null?void 0:ve.wagfBlockLabel)||"",wagfRegionLabel:U.wagfRegionLabel||((Ne=U._normalized)==null?void 0:Ne.wagfRegionLabel)||"",country:U.country,countryIso:U.countryIso,countryIsoLabel:U.countryIsoLabel,countryName:U.countryName,religion:U.religion,religionCode:U.religionCode,religionLabel:U.religionLabel,religionName:U.religionName,population:U.population,status:U.status,description:U.description||"",imageUrl:U.imageUrl||"",peoplePraying:Number(U.peoplePraying??((He=U._normalized)==null?void 0:He.peoplePraying)??0),engagementStatus:U.engagementStatus===!0||U.engagementStatus===1||!1,adoptionStatus:U.adoptionStatus===!0||U.adoptionStatus===1||!1,bible:U.bible||((lt=U._normalized)==null?void 0:lt.bible)||"Not Available",jesusFilm:U.jesusFilm||((tt=U._normalized)==null?void 0:tt.jesusFilm)||"Not Available",radio:U.radio||((q=U._normalized)==null?void 0:q.radio)||"Not Available",gospel:U.gospel||((ae=U._normalized)==null?void 0:ae.gospel)||"Not Available",audio:U.audio||((ke=U._normalized)==null?void 0:ke.audio)||"Not Available",stories:U.stories||((Pe=U._normalized)==null?void 0:Pe.stories)||"Not Available",lng:parseFloat(U.longitude||U.lng)||0},geometry:{type:"Point",coordinates:[parseFloat(U.longitude||U.lng),parseFloat(U.latitude||U.lat)]}}}).filter(U=>!isNaN(U.geometry.coordinates[0])&&!isNaN(U.geometry.coordinates[1])),O=.04,I=U=>`${U.geometry.coordinates[0]},${U.geometry.coordinates[1]}`,X=new Map;for(const U of P){const de=I(U);X.has(de)||X.set(de,[]),X.get(de).push(U)}for(const U of X.values()){if(U.length<2)continue;const[de,ne]=U[0].geometry.coordinates,_=U.length;for(let S=0;S<_;S++){const D=2*Math.PI*S/_;U[S].geometry.coordinates=[de+O*Math.cos(D),ne+O*Math.sin(D)]}}const Q={type:"FeatureCollection",features:P};pe.addSource("language-families",{type:"geojson",data:Q,promoteId:"uniqueId"}),pe.addLayer({id:"language-family-pins-shadow",type:"circle",source:"language-families",paint:{"circle-radius":Ll("standard"),"circle-color":"rgba(0,0,0,0.12)","circle-blur":.8,"circle-translate":[0,1],"circle-stroke-width":0,"circle-opacity":1}}),pe.addLayer({id:"language-family-pins",type:"circle",source:"language-families",paint:{"circle-radius":Ll("standard"),"circle-color":Se,...To(pe),"circle-stroke-width":Rg,"circle-stroke-color":["case",[">",["to-number",["get","peoplePraying"],0],0],"#ffffff","#1f2937"],"circle-opacity":1,"circle-stroke-opacity":1,"circle-opacity-transition":{duration:250}}}),pe.addLayer({id:"language-family-pins-hitbox",type:"circle",source:"language-families",paint:{"circle-radius":Ll("touchTarget"),"circle-color":"rgba(0,0,0,0)","circle-stroke-width":0,"circle-opacity":0}}),i.value.languageFamilyPins=!0,r.attachLanguageFamilyEvents()}function u(oe,fe="doxa-regions"){const pe=s();if(!pe)return;pe.getLayer("regions-fill")&&pe.removeLayer("regions-fill"),pe.getLayer("regions-border")&&pe.removeLayer("regions-border"),pe.getSource("regions")&&pe.removeSource("regions");const Se={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},P="#cccccc",O=oe&&oe.isoToRegion?oe.isoToRegion:{},I=[],X={};for(const[ne,_]of Object.entries(O)){const S=Se[String(_).toLowerCase()];S&&I.push(ne,S),X[_]||(X[_]=[]),X[_].push(ne)}l.value=X;const Q=I.length?["match",["get","iso_3166_1_alpha_3"],...I,P]:P,U=pe.getLayer("language-family-pins-shadow")?"language-family-pins-shadow":pe.getLayer("language-family-pins")?"language-family-pins":void 0,de=(()=>{var ne,_,S;try{return!!((S=(_=(ne=pe.getContainer)==null?void 0:ne.call(pe))==null?void 0:_.classList)!=null&&S.contains("maplibregl-map"))}catch{return!1}})();de?(pe.addSource("regions",{type:"geojson",data:{type:"FeatureCollection",features:[]}}),fetch(`${Eg()}/boundaries/world-adm0.geojson`).then(ne=>ne.json()).then(ne=>{for(const S of ne.features||[])S.properties&&S.properties.iso3&&(S.properties.iso_3166_1_alpha_3=S.properties.iso3);const _=pe.getSource("regions");_&&_.setData(ne)}).catch(ne=>console.warn("[map-layers] region boundaries failed to load",ne))):pe.addSource("regions",{type:"vector",url:"mapbox://mapbox.country-boundaries-v1"}),pe.addLayer({id:"regions-fill",type:"fill",source:"regions",...de?{}:{"source-layer":"country_boundaries"},paint:{"fill-color":Q,"fill-opacity":fe==="none"?.1:.7,"fill-antialias":!0,...To(pe,"fill"),"fill-opacity-transition":{duration:300}}},U),pe.addLayer({id:"regions-border",type:"line",source:"regions",...de?{}:{"source-layer":"country_boundaries"},paint:{"line-color":Q,"line-width":1,"line-opacity":.9,...To(pe,"line")}},U),i.value.regions=!0,r.attachRegionEvents()}function p(oe,fe){const pe=s();if(!pe||!oe||!(fe!=null&&fe.length))return;g();const Se=fe.filter(Q=>{var de;return(Q.languageFamily||((de=Q._normalized)==null?void 0:de.languageFamily)||"Unknown")===oe});if(Se.length<2)return;const P=n(oe),O=[],I=15,X=[...Se].sort((Q,U)=>(Q.longitude||Q.lng)-(U.longitude||U.lng));for(let Q=0;Q=",["get","peoplePraying"],Co],"#15803d",[">",["get","peoplePraying"],0],"#d97706","rgba(0,0,0,0)"]}const z=[0,5,2,6,4,7,5,9,6,12,7,14,8,18,10,25,12,32,14,40];function K(oe,fe){const pe=["interpolate",["linear"],["zoom"]];for(let Se=0;Se",["get","peoplePraying"],0],pe=M();if(!d.every(P=>oe.getLayer(P))){for(const P of d)if(oe.getLayer(P))try{oe.removeLayer(P)}catch{}oe.addLayer({id:E,type:"circle",source:"language-families",filter:fe,paint:{"circle-radius":K(z,1),"circle-color":pe,"circle-blur":.3,"circle-opacity":.45,"circle-stroke-width":0,...To(oe)}},"language-family-pins");for(const P of f)oe.addLayer({id:P,type:"circle",source:"language-families",filter:fe,paint:{"circle-radius":K(z,1),"circle-radius-transition":G,"circle-color":"rgba(0,0,0,0)","circle-blur":0,"circle-opacity":1,"circle-stroke-width":2.5,"circle-stroke-color":pe,"circle-stroke-opacity":0,"circle-stroke-opacity-transition":G,...To(oe)}},"language-family-pins")}}function ce(){const oe=s();if(oe)for(const fe of d)oe.getLayer(fe)&&oe.removeLayer(fe)}function H(oe){const fe=s();if(!fe)return;const pe=[">",["get","peoplePraying"],0],Se=oe?["all",pe,oe]:pe;for(const P of d)if(fe.getLayer(P))try{fe.setFilter(P,Se)}catch{}}function be(){const oe=s();if(oe){if(J(),m&&(cancelAnimationFrame(m),m=null),b=!0,oe.getLayer("language-family-pins"))try{oe.setLayoutProperty("language-family-pins","circle-sort-key",["case",[">=",["get","peoplePraying"],Co],1,[">",["get","peoplePraying"],0],1,3])}catch{}he(oe),we()}}function we(){m&&(cancelAnimationFrame(m),m=null);const oe=++k;let fe=performance.now(),pe=-1/0;function Se(P){if(!b||oe!==k)return;const O=s();if(!O||!d.some(X=>O.getLayer(X))){m=null;return}if(P-pe"u")return;const fe=typeof oe.getContainer=="function"?oe.getContainer():null;if(fe)try{L=new IntersectionObserver(pe=>{for(const Se of pe)C=Se.isIntersecting},{threshold:0}),L.observe(fe)}catch{L=null,C=!0}}function Ae(){if(L){try{L.disconnect()}catch{}L=null}C=!0}function ye(){b=!1,m&&(cancelAnimationFrame(m),m=null),Ae();try{ce();const oe=s();oe&&oe.getLayer("language-family-pins")&&oe.setLayoutProperty("language-family-pins","circle-sort-key",void 0)}catch{}}return{layersAdded:i,regionIsoMap:l,addLanguageFamilyLayer:c,addRegionsLayer:u,addFamilyConnectionLines:p,removeFamilyConnectionLines:g,updateLayerSource:A,removeLayer:w,hasLayer:h,setPaintProperty:v,mapEvents:r,startPrayerGlow:be,stopPrayerGlow:ye,syncGlowFilter:H,cleanup:$}}const bo={style:"mapbox://styles/mapbox/standard",center:[20,10],zoom:1.8,minZoom:.5,maxZoom:22,pitch:20,bearing:0,projection:"mercator",renderWorldCopies:!0};function uk(e={}){const{getMap:t=()=>null,mapId:o="unknown",mapStore:n=null,regionsGeoData:a=null,defaultCenter:s=(bo==null?void 0:bo.center)||[20,10],defaultZoom:r=bo==null?void 0:bo.zoom}=e,i={speed:.5,essential:!0,curve:1.2};function l(G,C,L={x:150,y:0}){const M=t();if(!M)return G;try{const z=M.getCanvas(),K=z.width,J=z.height,ce=M.project(G),H=window.devicePixelRatio||1,be=(L.x||0)*H,we=(L.y||0)*H,he={x:ce.x-be,y:ce.y-we},Ae=M.unproject(he);return[Ae.lng,Ae.lat]}catch{return G}}function c(G,C=[]){const L=t();if(!L)return;let M=null,z=5;const K=C.filter(ce=>ce.languageFamily===G);if(K.length>0){let ce=1/0,H=-1/0,be=1/0,we=-1/0;if(K.forEach(he=>{he.longitude&&he.latitude&&(ce=Math.min(ce,he.longitude),H=Math.max(H,he.longitude),be=Math.min(be,he.latitude),we=Math.max(we,he.latitude))}),ce!==1/0){M=[(ce+H)/2,(be+we)/2];const he=H-ce,Ae=we-be,ye=Math.max(he,Ae);ye>50?z=2:ye>20?z=3:ye>10?z=4:ye>5?z=5:z=6}}if(!M)return;const J=l(M);L.flyTo({center:J,zoom:z,...i})}function u(G){const C=t();if(!C)return;let L=null,M=4;const z=nk(G);if(z)L=z.center,M=z.zoom||4;else if(a!=null&&a.features){const J=a.features.find(ce=>{var H,be;return((H=ce.properties)==null?void 0:H.region)===G||((be=ce.properties)==null?void 0:be.name)===G});J&&(L=p(J))}if(!L)return;const K=l(L);C.flyTo({center:K,zoom:M,...i})}function p(G){if(!G||!G.geometry)return null;const{type:C,coordinates:L}=G.geometry;let M=[];if(C==="Polygon"?M=L[0]||[]:C==="MultiPolygon"&&L.forEach(J=>{M=M.concat(J[0]||[])}),M.length===0)return null;let z=0,K=0;return M.forEach(J=>{z+=J[0],K+=J[1]}),[z/M.length,K/M.length]}function g(G,C={}){const L=t();if(!L)return;const M={center:G,...i,...C};L.flyTo(M)}function A(G,C){const L=t();if(!L||(G==null?void 0:G.longitude)==null||(G==null?void 0:G.latitude)==null)return;const M=C??Math.min(L.getZoom()+2,8);g([G.longitude,G.latitude],{zoom:M})}function w(G,C={top:40,right:40,bottom:40,left:40},L={}){const M=t();if(!M||!G)return;const z=L.maxZoom??4,K=L.duration??900;M.fitBounds(G,{padding:C,maxZoom:z,duration:K,...i,...L})}function h(){const G=t();G&&G.flyTo({center:s,zoom:r,...i})}const v=80,$=800,m=5,b=5,k=110,E=1.2;function x(G){const C=G.filter(Number.isFinite).slice().sort((P,O)=>P-O),L=C.length;if(!L)return null;let M=-1,z=0;for(let P=0;PM&&(M=I,z=P)}const K=(z+1)%L,J=new Array(L);for(let P=0;P0&&O((P+180)%360+360)%360-180,Ae=he(be),ye=24,oe=360/ye,fe=new Array(ye).fill(0);for(const P of C){let O=Math.floor(((P+180)%360+360)%360/oe);O>=ye&&(O=ye-1),fe[O]++}let pe=0;for(let P=1;Pfe[pe]&&(pe=P);return{center:he(-180+(pe+.5)*oe),minLng:Ae,maxLng:Ae+(we-be),span:we-be}}function f(G){try{const C=G.getContainer&&G.getContainer().clientWidth||0,L=C>0?Math.log2(C/512):E,M=typeof G.getMinZoom=="function"?G.getMinZoom():L;return Math.max(M,L)}catch{return E}}function d(G,C,L,M){G.easeTo({center:[C,(L+M)/2],zoom:f(G),duration:$,essential:!0})}function y(G,C,L){if(L>k)return!0;try{const M=typeof G.cameraForBounds=="function"?G.cameraForBounds(C,{padding:v,maxZoom:m}):null;return M==null?!0:typeof M.zoom=="number"&&M.zoom<=f(G)+.05}catch{return!1}}function N(G,C){if(!Array.isArray(G))return G;switch(G[0]){case"get":return C==null?void 0:C[G[1]];case"literal":return G[1];case"has":return C!=null&&G[1]in C;case"!has":return C==null||!(G[1]in C);case"!":return!N(G[1],C);case"coalesce":{for(let M=1;M2){const K=Number(N(G[2],C));return Number.isFinite(K)?K:0}return NaN}case"to-string":{const M=N(G[1],C);return M==null?"":String(M)}case"to-boolean":return!!N(G[1],C);case"slice":{const M=N(G[1],C),z=N(G[2],C),K=G.length>3?N(G[3],C):void 0;return typeof M!="string"?"":K!=null?M.slice(z,K):M.slice(z)}default:return G}}function B(G,C){if(G===!0)return!0;if(G===!1)return!1;if(!Array.isArray(G))return!!G;const L=G[0];if(L==="all"){for(let M=1;M"||L===">="||L==="<"||L==="<="){const M=typeof G[1]=="string"?C==null?void 0:C[G[1]]:N(G[1],C),z=N(G[2],C);switch(L){case"==":return M===z||M==null&&z==null;case"!=":return!(M===z||M==null&&z==null);case">":return M>z;case">=":return M>=z;case"<":return M{const X=(I==null?void 0:I.properties)||{};return X.region===P||X.name===P||X.id===P});if(O){const I=[];let X=1/0,Q=-1/0;const U=ne=>{for(const _ of ne)Array.isArray(_[0])?U(_):Number.isFinite(_[0])&&Number.isFinite(_[1])&&(I.push(_[0]),_[1]Q&&(Q=_[1]))};(fe=O.geometry)!=null&&fe.coordinates&&U(O.geometry.coordinates);const de=x(I);if(de&&Number.isFinite(X)){const ne=[[de.minLng,X],[de.maxLng,Q]];y(L,ne,de.span)?d(L,de.center,X,Q):L.fitBounds(ne,{padding:v,maxZoom:m,duration:$,essential:!0});return}}}const M=C.sourceId??"language-families";if(!L.getSource(M))return;const z=C.matchExpr??G.filter;if(!z)return;const K=V(L,M);if(!K.length)return;const J=[];let ce=1/0,H=-1/0,be=0,we=0,he=0;const Ae=new Set;for(const Se of K){const P=Se==null?void 0:Se.properties;if(!B(z,P))continue;const O=P==null?void 0:P.uniqueId;if(O!=null){if(Ae.has(O))continue;Ae.add(O)}const I=(pe=Se.geometry)==null?void 0:pe.coordinates;if(!Array.isArray(I)||I.length<2)continue;const X=I[0],Q=I[1];!Number.isFinite(X)||!Number.isFinite(Q)||(be===0&&(we=X,he=Q),J.push(X),QH&&(H=Q),be++)}if(be===0)return;if(be===1){L.flyTo({center:[we,he],zoom:b,duration:$,essential:!0});return}const ye=x(J)||{center:0,minLng:0,maxLng:0,span:0},oe=[[ye.minLng,ce],[ye.maxLng,H]];if(y(L,oe,ye.span)){d(L,ye.center,ce,H);return}try{L.fitBounds(oe,{padding:v,maxZoom:m,duration:$,essential:!0})}catch{}}return{getOffsetCenter:l,slowFlyToFamily:c,slowFlyToRegion:u,flyTo:g,flyToCoords:A,fitBounds:w,resetView:h,zoomToLegendRow:j,calculateRegionCenterFromPolygon:p}}const vr="#1a1a1a",tn="selected-pin-highlight";function pk(e=vr){const t=document.createElement("div");t.className="map-go-pin-wrapper";const o=`pinGrad-${Math.random().toString(36).slice(2,8)}`;return t.innerHTML=` ${Cn(n(f))}`,{autoprint:!0}),i(f,m)}async function v(g,{columns:f,title:m}={}){if(o())return;const b="List";r(g,b,"fetch","fetching records",30);try{const $=await u(g),w=f||[{key:"name",head:"Name",cls:"c-name"},{key:"country_code_label",head:"Country"},{key:"population",head:"People",cls:"c-num",num:!0},{key:"religion_label",head:"Religion"}],A=w.map(S=>`${Cn(S.head)}`).join("")+'✓',L=$.map(S=>""+w.map(j=>{const D=S[j.key]??S[`${j.key}_label`]??"—",Z=j.num&&Number.isFinite(Number(D))?Number(D).toLocaleString(a()):D;return`${Cn(Z)}`}).join("")+'□').join("");r(g,b,"render",`laying out ${$.length} rows`,70);const k=m||`${n(g)} — ${$.length}`;ma(`${Cn(k)}

${Cn(k)}

${$.length} entries · pray for them by name

${A}${L}
`,{autoprint:!0}),i(g,b)}catch($){l(g,b,$)}}async function x(g){if(o())return;const f="Card Deck";r(g,f,"fetch","fetching records",30);try{const m=await u(g),[{createCardRenderer:b},$]=await Promise.all([_t(()=>Promise.resolve().then(()=>_d),void 0),e.strings?e.strings():_t(()=>Promise.resolve().then(()=>Ms),void 0).then(A=>A.default||A)]);r(g,f,"render",`laying out ${m.length} cards`,70);const w=b({strings:$,lang:a(),stock:s()});ma(w.buildDeck(g,m),{autoprint:!0}),i(g,f)}catch(m){l(g,f,m)}}async function h(g,{mapSvg:f=""}={}){if(o())return;const m="Prayer Packet";r(g,m,"fetch","fetching people groups",30);try{const b=await u(g),[{createPacketRenderer:$},w]=await Promise.all([_t(()=>Promise.resolve().then(()=>Ei),void 0),e.strings?e.strings():_t(()=>Promise.resolve().then(()=>Ms),void 0).then(k=>k.default||k)]),A=$({strings:w,lang:a()}),L=new Map(b.filter(k=>k.image_url).map(k=>[k.slug,k.image_url]));r(g,m,"render",`printing ${b.length} people groups`,70),ma(A.buildPacket(g,b,L,f),{autoprint:!0}),i(g,m)}catch(b){l(g,m,b)}}return{exportState:t,dismiss:c,printPoster:p,printList:v,printCardDeck:x,printPacket:h}}function q0(e){const t=(e==null?void 0:e.parentElement)||e;if(!t||!t.ownerDocument)return{x:0,y:0};const o=t.ownerDocument.createElement("div");o.style.cssText="position:fixed;top:0;left:0;width:0;height:0;pointer-events:none;opacity:0",t.appendChild(o);const n=o.getBoundingClientRect();return o.remove(),{x:n.left,y:n.top}}function ip(e){const t=he(null),o=gn({position:"fixed",inset:"0"}),n=()=>{var u,p;const s=t.value;if(!s)return;const r=q0(s),i=s.ownerDocument||(typeof document<"u"?document:null),l=((u=i==null?void 0:i.documentElement)==null?void 0:u.clientWidth)||0,c=((p=i==null?void 0:i.documentElement)==null?void 0:p.clientHeight)||0;o.value={position:"fixed",top:`${-r.y}px`,left:`${-r.x}px`,right:"auto",bottom:"auto",width:`${l}px`,height:`${c}px`,boxSizing:"border-box"}};ot(e,s=>{s&&requestAnimationFrame(()=>{n(),requestAnimationFrame(n)})},{flush:"post"});const a=()=>{e.value&&n()};return typeof window<"u"&&window.addEventListener("resize",a),Wt(()=>{typeof window<"u"&&window.removeEventListener("resize",a)}),{scrimRef:t,scrimStyle:o}}const Y0=ln&&ln.tagName.toUpperCase()==="SCRIPT"&&ln.src||new URL("my-upg-100-list.js",document.baseURI).href,Ho=e=>String(e||"").trim().replace(/\/+$/,"");function Kr(){try{const t=String(Y0||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function X0(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return Ho(t);if(typeof window<"u"){const o=window.MAP_EMBED_BASE_URL;if(typeof o=="string"&&o.trim())return Ho(o)}return Ho(Kr()||"")}function vs(e){const t=e==null?void 0:e.assetsBase;if(typeof t=="string"&&t.trim()){const n=Ho(t);if(/^https?:\/\//i.test(n)||n.startsWith("/"))return n}const o=Ho((e==null?void 0:e.treeBase)||"")||Ho(Kr()||"");if(o)try{const n=typeof document<"u"?document.baseURI:void 0;return Ho(new URL(o+"/assets",n).href)}catch{return Ho(o+"/assets")}return"./assets"}function Z0({shareUrl:e,embedPath:t,profileConfig:o}={}){const n=o||null,a=typeof window<"u",s=e||(n==null?void 0:n.shareUrl);if(typeof s=="string"&&s.trim())return s.trim();const r=String(t||(n==null?void 0:n.shareEmbedPath)||"").trim();if(r){if(/^https?:\/\//i.test(r))return r;if(r.startsWith("/"))return a?window.location.origin+r:r;const i=X0(n),l=r.replace(/^\.\//,"");if(i)return i+"/"+l;if(typeof document<"u")try{return new URL(l,document.baseURI).href}catch{}return l}return a?window.location.origin+window.location.pathname:""}const J0={class:"wall-h"},Q0={key:0,class:"wall-tag"},e1=["innerHTML"],t1={class:"sec-name"},o1={class:"sec-count"},n1={key:1,class:"perrow"},a1=["for"],s1=["id"],r1=["value"],i1=["data-list-id"],l1=["aria-label","onClick"],c1={class:"hcount"},u1={class:"hlabel"},p1={class:"main"},d1={key:0,class:"ph is-soon"},g1={class:"ph-label"},h1={key:0,class:"ph-count"},f1={class:"ph-soon"},m1=["src","alt","role","tabindex","title","onClick","onKeydown","onError"],b1={key:2,class:"ph"},$1={class:"ph-label"},_1={key:0,class:"ph-count"},y1={class:"tape pfs"},v1=["onClick"],w1=["onClick"],k1=["aria-expanded","onClick"],x1=["aria-label"],L1=["onClick"],A1={class:"modal",role:"dialog","aria-live":"polite"},S1={class:"modal-kind"},P1={class:"modal-title"},E1={class:"modal-err"},C1={class:"modal-soon"},T1={class:"bar"},R1={class:"modal-phase"},N1={class:"modal-hint"},lp=2,cp=5,up=2,pp="doxa-maps:poster-wall:per-row",M1=210,O1={__name:"PosterWall",props:{items:{type:Array,required:!0},groupBy:{type:Function,default:()=>"All"},instanceId:{type:String,default:"poster-wall"},isDark:{type:Boolean,default:!1},assetsBase:{type:String,default:"./assets"},eventName:{type:String,default:"doxa-poster-wall:show-on-map"},heading:{type:String,default:"Prayer Lists & Posters"},tag:{type:String,default:""},intro:{type:String,default:""},unit:{type:String,default:"UPG"},itemNoun:{type:String,default:"list"},itemNounPlural:{type:String,default:""},collapsible:{type:Boolean,default:!1},collapsedBy:{type:Function,default:()=>!1},unsupported:{type:Function,default:()=>null},downloadPrefix:{type:String,default:"doxa"},prayerListSoonMessage:{type:String,default:"Coming soon — the prayer list for each people group is in build."},records:{type:Function,default:null},cardStock:{type:String,default:"poker"},cardStocks:{type:[Boolean,Array],default:!1},posterAction:{type:String,default:"download"},previewAction:{type:String,default:"none"},hidePrayerListWhenSoon:{type:Boolean,default:!1},embedded:{type:Boolean,default:!1},sectionHeads:{type:Boolean,default:!0},columns:{type:Number,default:0},columnsControl:{type:Boolean,default:!1}},setup(e){const t=e,o=he(a()??(t.columns||up));ot(()=>t.columns,V=>{a()==null&&(o.value=V||up)}),ot(o,V=>{Number.isFinite(V)&&V>=lp&&V<=cp&&s(V)});const n=[2,3,4,5];function a(){try{const V=window.localStorage.getItem(pp),de=Number(V);return Number.isFinite(de)&&de>=lp&&de<=cp?de:null}catch{return null}}function s(V){try{window.localStorage.setItem(pp,String(V))}catch{}}const r=he(typeof window<"u"?window.innerWidth:1280);if(typeof window<"u"){const V=()=>{r.value=window.innerWidth};window.addEventListener("resize",V),Wt(()=>window.removeEventListener("resize",V))}const i=J(()=>{if(!(o.value>0))return{};const V=Math.max(0,r.value-36),de=Math.max(1,Math.floor(V/M1));return{gridTemplateColumns:`repeat(${Math.min(o.value,de)}, minmax(0, 1fr))`}}),l=J(()=>t.itemNounPlural||`${t.itemNoun}s`),c=J(()=>String(t.assetsBase||"./assets").replace(/\/+$/,"")),u=J(()=>{const V=String(Kr()||"").replace(/\/+$/,"");return V?`${V}/assets`:""}),p=he({}),d=V=>`${p.value[V]?u.value:c.value}/previews/${V}.webp`;function v(V){const de=u.value;if(!p.value[V]&&de&&de!==c.value){p.value={...p.value,[V]:1};return}$.value={...$.value,[V]:!0}}const x=J(()=>{const V=new Map;for(const de of t.items||[]){if(!de||!de.id)continue;const be=t.groupBy(de)||"Other";V.has(be)||V.set(be,[]),V.get(be).push(de)}return[...V.entries()].map(([de,be])=>({name:de,items:be.slice().sort((ue,Me)=>(Me.count||0)-(ue.count||0)),total:be.reduce((ue,Me)=>ue+(Me.count||0),0)})).sort((de,be)=>be.total-de.total)}),h=J(()=>{const V={};for(const de of x.value)V[de.name]=!!t.collapsedBy(de);return V}),g=he({}),f=V=>t.collapsible?V in g.value?!!g.value[V]:!!h.value[V]:!1,m=V=>{g.value={...g.value,[V]:!f(V)}},b=he(null),$=he({});function w(V){const de=b.value===V.id;b.value=de?null:V.id,window.dispatchEvent(new CustomEvent(t.eventName,{detail:{instanceId:t.instanceId,listId:de?null:V.id,label:de?null:V.label}}))}const A=he(null),{scrimRef:L,scrimStyle:k}=ip(A);async function S(V){if(A.value)return;const de=t.unsupported(V);if(de){A.value={label:V.label,kind:"Poster",phase:"soon",message:de,pct:0};return}A.value={label:V.label,kind:"Poster",phase:"fetch",message:"fetching poster",pct:20};try{let be=null;try{be=await fetch(`${c.value}/posters/${V.id}.webp`)}catch{}if(!be||!be.ok){A.value={...A.value,phase:"render",message:"generating the poster",pct:45};const ue=await fetch(`${c.value}/posters/${V.id}.html`);if(!ue.ok)throw new Error(`poster not found (${ue.status})`);const{rasterPoster:Me,looksRendered:P}=await _t(async()=>{const{rasterPoster:C,looksRendered:q}=await Promise.resolve().then(()=>fd);return{rasterPoster:C,looksRendered:q}},void 0),R=await Me(await ue.text(),{scale:2});if(!await P(R))throw new Error("the generated poster rendered blank");await se(R,V);return}await se(await be.blob(),V)}catch(be){A.value={label:V.label,kind:"Poster",phase:"error",message:String((be==null?void 0:be.message)||be).slice(0,140),pct:0}}}const j=V=>String(V).split(".").pop().replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/^./,de=>de.toUpperCase());let D=V=>j(V),Z="en";try{const V=ht();D=V.t,Z=V.locale}catch{}const F=he(t.cardStock),U=he([]);t.cardStocks&&_t(async()=>{const{STOCK:V}=await Promise.resolve().then(()=>_d);return{STOCK:V}},void 0).then(({STOCK:V})=>{var be;const de=Array.isArray(t.cardStocks)?t.cardStocks:Object.keys(V);U.value=de.filter(ue=>V[ue]).map(ue=>({id:ue,label:V[ue].label})),U.value.some(ue=>ue.id===F.value)||(F.value=((be=U.value[0])==null?void 0:be.id)||t.cardStock)}).catch(()=>{});const M=rp({state:A,records:t.records?V=>t.records(V):null,lang:()=>{const V=Z&&(Z.value??Z);return typeof V=="string"&&V||"en"},stock:()=>F.value,label:V=>(V==null?void 0:V.label)||(V==null?void 0:V.id)||""}),E=J(()=>typeof t.records=="function"),z=J(()=>t.previewAction==="print"),N=he(null);function X(V,de){var ue,Me,P;N.value=N.value===V?null:V;const be=(Me=(ue=de==null?void 0:de.currentTarget)==null?void 0:ue.closest)==null?void 0:Me.call(ue,".pfs");be&&((P=be.parentElement)==null||P.style.setProperty("--pstocks-gap",`${be.offsetHeight}px`))}function re(V,de){F.value=de,N.value=null,M.printCardDeck(V)}function oe(V){if(!E.value){A.value={label:V.label,kind:"Prayer List",phase:"soon",message:t.prayerListSoonMessage,pct:0};return}M.printList(V)}async function se(V,de){if(t.posterAction==="print"){A.value={...A.value,phase:"save",message:"opening the print dialog",pct:80};const{openPrintFrame:be}=await _t(async()=>{const{openPrintFrame:Me}=await Promise.resolve().then(()=>W0);return{openPrintFrame:Me}},void 0),ue=URL.createObjectURL(V);ve.push(ue),be(''+Ae(`${t.downloadPrefix} — ${de.label||de.id}`)+`${Ae(de.label||de.id)}`,{autoprint:!0})}else A.value={...A.value,phase:"save",message:"saving",pct:80},fe(V,`${t.downloadPrefix}-${de.id}-poster.webp`);A.value={...A.value,phase:"done",message:t.posterAction==="print"?"print dialog opened":"saved",pct:100},setTimeout(()=>{A.value=null},900)}const ve=[];Wt(()=>{for(const V of ve.splice(0))try{URL.revokeObjectURL(V)}catch{}});const Ae=V=>String(V??"").replace(/&/g,"&").replace(//g,">").replace(/"/g,""");function fe(V,de){const be=document.createElement("a");be.href=URL.createObjectURL(V),be.download=de,document.body.appendChild(be),be.click(),be.remove(),setTimeout(()=>URL.revokeObjectURL(be.href),4e3)}function Ne(){A.value=null}return At(`.wall{--wall-pad-top:22px;position:absolute;inset:0;overflow-y:auto;padding:var(--wall-pad-top) 18px 44px;background:#f6f7f9;color:#0f1419;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.wall.is-dark{background:#0a1410;color:#e5e7eb}.wall--embedded{--wall-pad-top:0px;position:static;inset:auto;overflow-y:visible;padding:0;background:transparent}.wall--embedded.is-dark{background:transparent}.wall-h{margin:0 0 6px;font-size:19px;font-weight:700;text-align:center}.wall-tag{margin:0 auto 12px;width:fit-content;padding:3px 11px;border-radius:999px;background:rgba(16,185,129,.13);color:#0b7a5b;border:1px solid rgba(16,185,129,.28);font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.is-dark .wall-tag{background:rgba(16,185,129,.16);color:#6ee7b7;border-color:rgba(110,231,183,.32)}.wall-sub{margin:0 auto 22px;max-width:620px;font-size:12.5px;line-height:1.55;text-align:center;opacity:.75}.wall-sub strong{font-weight:700;opacity:1;color:inherit}.grid{display:grid;gap:56px 30px;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));max-width:1180px;margin:0 auto}.perrow{display:flex;align-items:center;justify-content:flex-end;gap:8px;max-width:1180px;margin:0 auto 12px;font:inherit;font-size:13px}.perrow__label{color:#6d766e}.perrow__select{font:inherit;font-size:13px;padding:2px 6px;border:1px solid #cbd2d9;border-radius:6px;background:#fff;color:inherit;cursor:pointer}.is-dark .perrow__label{color:#9fb3a6}.is-dark .perrow__select{background:#132019;border-color:rgba(110,231,183,.20)}.card{--card-pad-top:24px;--tape-overlap:16px;position:relative;background:#fff;border:1px solid #e3e6ea;border-radius:3px;padding:var(--card-pad-top) 12px 26px;box-shadow:0 1px 3px rgba(0,0,0,.10),0 6px 18px rgba(0,0,0,.07);transition:transform .16s ease,box-shadow .16s ease}.card:hover,.card:focus-within{transform:translateY(-3px);box-shadow:0 3px 8px rgba(0,0,0,.14),0 12px 28px rgba(0,0,0,.10);outline:2px solid #2f6fdb;outline-offset:2px}.is-dark .card:hover,.is-dark .card:focus-within{outline-color:#5aa0ff}@media (hover:none){.card:hover,.card:focus-within{transform:none;outline:none}}.is-dark .card{background:#132019;border-color:rgba(110,231,183,.20)}.tape{box-sizing:border-box;position:absolute;left:50%;transform:translateX(-50%);z-index:2;font-size:10.5px;font-weight:600;letter-spacing:.02em;cursor:pointer;border:1px solid rgba(0,0,0,.08);background:#eef2f6;color:#23303c}.is-dark .tape{background:#1d2b23;color:#cfe9d9;border-color:rgba(255,255,255,.10)}.tape-h{top:calc(var(--card-pad-top,24px) - var(--tape-overlap,16px));transform:translateX(-50%);width:82%;padding:4px 8px;border-radius:999px;display:flex;align-items:center;justify-content:center;gap:5px}.tape-h:hover{background:#e2e8ee}.hcount{font-weight:800;font-variant-numeric:tabular-nums}.hsep{opacity:.45}.hlabel{font-weight:600}.card.is-last{box-shadow:0 0 0 2px #10b981,0 6px 18px rgba(0,0,0,.10)}.card.is-last .tape-h{background:#10b981;color:#04241a;border-color:#10b981}.pfs{position:absolute;top:calc(100% - var(--tape-overlap,16px));left:50%;transform:translateX(-50%);width:82%;max-width:82%;min-width:0;box-sizing:border-box;margin:0;padding:0 4px 3px;border:1px solid rgba(0,0,0,.14);border-radius:2px;background:#fff;display:flex;flex-wrap:wrap;gap:2px;justify-content:center;box-shadow:0 1px 4px rgba(0,0,0,.10)}.pfs > .pbtn{flex:0 1 auto;min-width:0;white-space:normal;overflow-wrap:break-word;text-align:center;line-height:1.2}.is-dark .pfs{background:#132019;border-color:rgba(110,231,183,.24)}.pstocks{top:100%;margin-top:calc(var(--pstocks-gap,20px) / 2);width:92%;max-width:92%;box-sizing:border-box;padding:3px;border-radius:2px;background:#fff;display:flex;flex-wrap:wrap;gap:3px;justify-content:center;box-shadow:0 1px 4px rgba(0,0,0,.10);cursor:default}.is-dark .pstocks{background:#132019;border-color:rgba(110,231,183,.24)}.pfs > legend{margin:0 auto;padding:0 5px;font-size:8px;text-transform:uppercase;letter-spacing:.6px;font-weight:700;color:#8a93a0}.is-dark .pfs > legend{color:#7f9c8c}.pbtn{position:relative;flex:1;border:0;background:none;color:#5b6672;font:inherit;font-size:10.5px;font-weight:600;padding:2px 6px 3px;cursor:pointer;white-space:nowrap;transition:color .15s}.pbtn::after{content:"";position:absolute;left:6px;right:6px;bottom:0;height:2px;border-radius:2px;background:transparent;transition:background .15s}.pbtn:hover{color:#10b981}.pbtn:hover::after{background:#10b981}.pbtn-deck[aria-expanded="true"]{color:#10b981}.pbtn-deck::before{content:"\\25B8";display:inline-block;margin-right:3px;font-size:8px;transition:transform .15s}.pbtn-deck[aria-expanded="true"]::before{transform:rotate(90deg)}.pstock{flex:0 1 auto;min-width:0;max-width:100%;border:1px solid #d8dde3;border-radius:3px;background:#fff;color:#5b6672;font:inherit;font-size:9.5px;font-weight:600;padding:2px 5px;cursor:pointer;line-height:1.25;white-space:normal;overflow-wrap:break-word}.pstock:hover{border-color:#10b981;color:#10b981}.pstock.is-on{border-color:#10b981;color:#0b7a5b;background:rgba(16,185,129,.10)}@media (pointer:coarse){.pbtn{min-height:24px}.pstock{min-height:24px}.tape-h{min-height:24px}}.img.is-clickable{cursor:zoom-in}.img.is-clickable:hover{outline:2px solid #38bdf8;outline-offset:-2px}.img.is-clickable:focus-visible{outline:2px solid #38bdf8;outline-offset:-2px}.is-dark .pstock{background:#12211a;border-color:#2c4a3b;color:#9fb3a8}.is-dark .pbtn{color:#9fb3a8}.sec{max-width:1180px;margin:0 auto;padding-bottom:44px}.sec-head{display:flex;align-items:baseline;gap:10px;margin:0 2px 14px;padding:11px 10px 9px;border-bottom:1px solid rgba(0,0,0,.10);position:sticky;top:0;z-index:6;background:#f6f7f9;box-shadow:0 6px 10px -8px rgba(0,0,0,.35);border-radius:4px 4px 0 0}.is-dark .sec-head{border-bottom-color:rgba(255,255,255,.12);background:#0a1410;box-shadow:0 6px 10px -8px rgba(0,0,0,.7)}.sec-head::before{content:"";position:absolute;left:-20px;right:-20px;bottom:100%;height:var(--wall-pad-top,0px);background:inherit;pointer-events:none}.wall--embedded .sec-head::before{display:none}.sec-head.is-shut{border-bottom-color:transparent;margin-bottom:6px}.sec-head.is-toggle{cursor:pointer;user-select:none;width:100%;text-align:left;border-top:0;border-left:0;border-right:0;font:inherit;color:inherit}.sec-head.is-toggle:hover .sec-name{color:#10b981}.sec-caret{display:inline-block;width:12px;font-size:10px;opacity:.55;transition:transform .18s ease}.sec-caret.is-open{transform:rotate(90deg)}.sec-name{margin:0;font-size:15px;font-weight:700;letter-spacing:.01em}.sec-count{font-size:11px;opacity:.6;font-variant-numeric:tabular-nums}.main{--banner-pad-top:24px;--banner-pad-bottom:24px;position:relative;aspect-ratio:1/1;border:1px solid #dfe3e7;overflow:visible;padding:var(--banner-pad-top) 10px var(--banner-pad-bottom);background:#fbfcfd;display:flex;align-items:center;justify-content:center}.is-dark .main{background:#0c1712;border-color:rgba(255,255,255,.08)}.img{width:100%;height:100%;object-fit:contain;display:block}.ph{padding:14px 10px;text-align:center}.ph-label{font-size:12.5px;font-weight:700;line-height:1.3}.ph-count{margin-top:5px;font-size:11px;opacity:.7}.ph-note{margin-top:10px;font-size:9.5px;text-transform:uppercase;letter-spacing:.09em;opacity:.45}.ph.is-soon{background:rgba(245,158,11,.06)}.ph-soon{margin-top:9px;font-size:10px;line-height:1.45;color:#8a6414}.is-dark .ph-soon{color:#e8b862}.modal-scrim{position:fixed;inset:0;z-index:1000;background:rgba(8,12,16,.55);display:grid;place-items:center;padding:22px}.modal{width:min(340px,100%);background:#fff;color:#0f1419;border-radius:14px;padding:20px 22px;box-shadow:0 10px 40px rgba(0,0,0,.35);text-align:center}.is-dark .modal{background:#132019;color:#e5e7eb}.modal-kind{font-size:10px;text-transform:uppercase;letter-spacing:.1em;opacity:.55}.modal-title{margin:3px 0 14px;font-size:15px;font-weight:700;line-height:1.3}.bar{height:5px;border-radius:99px;background:rgba(0,0,0,.10);overflow:hidden}.is-dark .bar{background:rgba(255,255,255,.12)}.bar-fill{height:100%;background:#10b981;border-radius:99px;transition:width .25s ease}.modal-phase{margin-top:10px;font-size:12.5px;font-weight:600}.modal-hint{margin-top:6px;font-size:11px;line-height:1.5;opacity:.62}.modal-soon{font-size:13px;line-height:1.5;color:#5f5849;margin:6px 0 14px}.modal-err{font-size:12.5px;line-height:1.55;color:#b42318;margin-bottom:14px}.is-dark .modal-err{color:#fda29b}.modal-btn{border:1px solid rgba(0,0,0,.14);background:transparent;color:inherit;font:inherit;font-size:12.5px;padding:6px 18px;border-radius:8px;cursor:pointer}.modal-btn:hover{background:rgba(0,0,0,.06)}`,"doxa-poster-wall"),(V,de)=>(H(),ee("div",{class:De(["wall",{"is-dark":e.isDark,"wall--embedded":e.embedded}])},[T("h2",J0,ce(e.heading),1),e.tag?(H(),ee("div",Q0,ce(e.tag),1)):we("",!0),e.intro?(H(),ee("p",{key:1,class:"wall-sub",innerHTML:e.intro},null,8,e1)):we("",!0),(H(!0),ee(Ge,null,Et(x.value,be=>(H(),ee("section",{key:be.name,class:"sec"},[e.sectionHeads?(H(),dt(sr(e.collapsible?"button":"div"),{key:0,class:De(["sec-head",{"is-toggle":e.collapsible,"is-shut":e.collapsible&&f(be.name)}]),type:e.collapsible?"button":null,"aria-expanded":e.collapsible?String(!f(be.name)):null,onClick:ue=>e.collapsible&&m(be.name)},{default:Ht(()=>[e.collapsible?(H(),ee("span",{key:0,class:De(["sec-caret",{"is-open":!f(be.name)}])},"▶",2)):we("",!0),T("h3",t1,ce(be.name),1),T("span",o1,ce(be.total.toLocaleString())+" people groups · "+ce(be.items.length)+" "+ce(be.items.length===1?e.itemNoun:l.value),1)]),_:2},1032,["class","type","aria-expanded","onClick"])):we("",!0),e.columnsControl&&!f(be.name)?(H(),ee("div",n1,[T("label",{class:"perrow__label",for:`perrow-${e.instanceId}-${be.name}`},ce(me(D)("buttons.postersPerRow")),9,a1),kl(T("select",{id:`perrow-${e.instanceId}-${be.name}`,class:"perrow__select","onUpdate:modelValue":de[0]||(de[0]=ue=>o.value=ue)},[(H(),ee(Ge,null,Et(n,ue=>T("option",{key:ue,value:ue},ce(ue),9,r1)),64))],8,s1),[[df,o.value,void 0,{number:!0}]])])):we("",!0),kl(T("div",{class:"grid",style:lt(i.value)},[(H(!0),ee(Ge,null,Et(be.items,ue=>(H(),ee("div",{key:ue.id,class:De(["card",{"is-last":b.value===ue.id}]),"data-list-id":ue.id},[T("button",{type:"button",class:"tape tape-h","aria-label":me(D)("buttons.showOnMapAria",{label:ue.label}),onClick:Me=>w(ue)},[T("span",c1,ce(ue.count)+" "+ce(e.unit),1),de[2]||(de[2]=T("span",{class:"hsep"},"·",-1)),T("span",u1,ce(me(D)("buttons.showOnMap")),1)],8,l1),T("div",p1,[e.unsupported(ue)?(H(),ee("div",d1,[T("div",g1,ce(ue.label),1),ue.count?(H(),ee("div",h1,ce(ue.count.toLocaleString())+" people groups",1)):we("",!0),T("div",f1,ce(e.unsupported(ue)),1)])):$.value[ue.id]?(H(),ee("div",b1,[T("div",$1,ce(ue.label),1),ue.count?(H(),ee("div",_1,ce(ue.count.toLocaleString())+" people groups",1)):we("",!0),de[3]||(de[3]=T("div",{class:"ph-note"},"preview unavailable",-1))])):(H(),ee("img",{key:1,class:De(["img",{"is-clickable":z.value}]),src:d(ue.id),alt:z.value?`${ue.label} — prayer poster (click to preview and print)`:`${ue.label} — prayer poster`,loading:"lazy",decoding:"async",role:z.value?"button":null,tabindex:z.value?0:null,title:z.value?me(D)("buttons.previewPrintPoster",{label:ue.label}):null,onClick:Me=>z.value&&S(ue),onKeydown:[Cc(vt(Me=>z.value&&S(ue),["prevent"]),["enter"]),Cc(vt(Me=>z.value&&S(ue),["prevent"]),["space"])],onError:Me=>v(ue.id)},null,42,m1)),T("fieldset",y1,[T("legend",null,ce(me(D)("buttons.printOptions")),1),e.hidePrayerListWhenSoon&&!E.value?we("",!0):(H(),ee("button",{key:0,type:"button",class:"pbtn",onClick:Me=>oe(ue)},ce(me(D)("buttons.prayerList")),9,v1)),T("button",{type:"button",class:"pbtn",onClick:Me=>S(ue)},ce(me(D)("buttons.posterMap")),9,w1),E.value?(H(),ee("button",{key:1,type:"button",class:"pbtn pbtn-deck","aria-expanded":String(N.value===ue.id),onClick:vt(Me=>X(ue.id,Me),["stop"])},ce(me(D)("buttons.cardDeck")),9,k1)):we("",!0)]),E.value&&U.value.length&&N.value===ue.id?(H(),ee("div",{key:3,class:"tape pstocks",role:"group","aria-label":me(D)("buttons.cardStockAria")},[(H(!0),ee(Ge,null,Et(U.value,Me=>(H(),ee("button",{key:Me.id,type:"button",class:De(["pstock",{"is-on":F.value===Me.id}]),onClick:vt(P=>re(ue,Me.id),["stop"])},ce(Me.label),11,L1))),128))],8,x1)):we("",!0)])],10,i1))),128))],4),[[Kh,!f(be.name)]])]))),128)),A.value?(H(),ee("div",{key:2,ref_key:"scrimRef",ref:L,style:lt(me(k)),class:"modal-scrim",onClick:de[1]||(de[1]=vt(be=>A.value.phase==="error"&&Ne(),["self"]))},[T("div",A1,[T("div",S1,ce(A.value.kind),1),T("div",P1,ce(A.value.label),1),A.value.phase==="error"?(H(),ee(Ge,{key:0},[T("div",E1,ce(A.value.message),1),T("button",{type:"button",class:"modal-btn",onClick:Ne},ce(me(D)("buttons.close")),1)],64)):A.value.phase==="soon"?(H(),ee(Ge,{key:1},[T("div",C1,ce(A.value.message),1),T("button",{type:"button",class:"modal-btn",onClick:Ne},ce(me(D)("buttons.close")),1)],64)):(H(),ee(Ge,{key:2},[T("div",T1,[T("div",{class:"bar-fill",style:lt({width:A.value.pct+"%"})},null,4)]),T("div",R1,ce(A.value.message),1),T("div",N1,ce(me(D)("buttons.renderingLocal")),1)],64))])],4)):we("",!0)],2))}},dp=[{id:"west-africa",label:"West Africa",count:118,selector:{type:"wagf_block",value:"west_africa"},bbox:[-21.3926,4.2189,27.2705,17.4735]},{id:"sudan",label:"Sudan",count:105,selector:{type:"country_code",value:"SDN"},bbox:[20.1672,9.0707,39.723,20.499]},{id:"brazil",label:"Brazil",count:103,selector:{type:"country_code",value:"BRA"},bbox:[-77.9152,-25.4802,-32.2913,7.3352]},{id:"east-africa",label:"East Africa",count:96,selector:{type:"wagf_block",value:"east_africa"},bbox:[22.3455,-14.3059,47.7947,20.0984]},{id:"laos",label:"Laos",count:95,selector:{type:"country_code",value:"LAO"},bbox:[99.8741,13.6759,108.2843,23.2186]},{id:"middle-east-core",label:"Middle East Core",count:71,selector:{type:"country_codes",values:["IRN","YEM","IRQ","OMN","SYR","LBN","PSE","QAT","SAU","JOR","BHR","ARE","KWT"]},bbox:[31.1468,9.3265,63.7915,42.0085]},{id:"andean-caribbean",label:"Andean + Caribbean",count:63,selector:{type:"country_codes",values:["COL","PER","VEN","ECU","BOL","PRY","PAN","CUB","SUR","ATG","ABW","BHS","BRB","CYM","CUW","GRD","JAM","LCA","SXM","TCA","VCT","GUY"]},bbox:[-85.7034,-31.2233,-51.7537,31.0655]},{id:"central-africa",label:"Central Africa",count:61,selector:{type:"wagf_block",value:"central_africa"},bbox:[.6063,-11.2806,32.2325,15.7303]},{id:"europe",label:"Europe",count:55,selector:{type:"wagf_region",value:"europe"},bbox:[-42.2659,-27.2213,168.5645,85]},{id:"oceania-indonesia",label:"Oceania + Indonesia",count:53,selector:{type:"union",selectors:[{type:"wagf_region",value:"oceania"},{type:"country_code",value:"IDN"}]},bbox:[83.9392,-43.091,-136.017,21.4266]},{id:"mainland-se-asia-philippines",label:"Mainland SE Asia + Philippines",count:50,selector:{type:"country_codes",values:["VNM","MYS","THA","MMR","BRN","KHM","PHL"]},bbox:[88.6434,.084,129.7854,26.789]},{id:"maghreb-egypt",label:"Maghreb + Egypt",count:47,selector:{type:"country_codes",values:["DZA","LBY","MAR","MRT","ESH","EGY","TUN"]},bbox:[-21.8716,14.0878,37.0339,39.1426]},{id:"southern-africa-islands",label:"Southern Africa + Islands of East Africa",count:39,selector:{type:"union",selectors:[{type:"wagf_block",value:"southern_africa"},{type:"wagf_block",value:"islands_of_east_africa"}]},bbox:[.638,-38.0929,63.5885,4.4534]}],gp=[{id:"asia-india-rajasthan",label:"Northwest India",count:116,selector:{type:"pg_slugs",values:["arain-dogri","arain-punjabi","badi-marwari","bania-dogri","bania-kashmiri","baret","bargi","bhand-kashmiri","bhojki","bhopa","bhutta","bomba","brukpa","budhan","campa","cejara","chadwa","cheintz","chheepi","chobdar","chopan","chungar","cudigar","dadupanthi","damami","daoli","daule","dhaki","dhobi-dogri","dhola","dhyar","dokhpa","domal","dosali","gagra","galwan","ganz","gardi","ghihara","gorkun","gosain-kangri","gosain-rajasthani","gurru","hadi","hajjam-haryanvi","hajjam-kashmiri","hesi","hiranbaj","kawoj","khadim","kharol","khatik-chambeali","khatik-punjabi","kraal","kriyagar","kucband","lakhera-haryanvi","laskari","lohar-dogri","malaneese","mangnyar-muslims","manhas","manjygur-muslims","masku","moghol-dogri","moghol-marwari","mogia","mon-india","murhid","nagbansi-dogri","nagda","nai-mewari","najjar","namdagur","naqqas","nar","nicar","nyaria","pajabgar","pakhimara","pangwal-buddhists","pangwala","pinjara-punjabi","pohul","purig-pa","racband","rajkumhar","rajpurohit","ratal","rath","rehar","runwalas","sain","sanchia","sanhai","sansoi","santia","saraogi","sayyid-pahari","seok","shaksaz","shikari","shina-india","singiwala","sofi","sorgars","sudhan","sunga","swangla","tak","thavi","usta","van-baoriya","ved","vijabargiya","waza"]},bbox:[69.9484,22.3586,79.972,35.9424],provinceLabel:"Rājasthān + Haryāna + Himāchal Pradesh + Jammu and Kashmīr + Punjab + Chandīgarh + Ladākh"},{id:"asia-india-andhra-pradesh",label:"South-Central India",count:107,selector:{type:"pg_slugs",values:["accukattavandlu","aguru","aiyarakulu","andhra-vaisnawa","ansari-momin-telugu","arakala","are-bondili","are-kapu","are-katika","atollu","attagara","bandollu","bania-agarwal-telegu","bayita-kammara","berad","bhatrajulu","bhondari","bindla","bolla","budakukkala","cakketakare","camadollu","cippollu","cundollu","dammali","dasari","gandalla","gandla","gangireddula","ganta-sayebulu","garadi","gavara","godagali","godari","gosangi","guddi-eluguwallu","gurika","hajjam-telugu","hatgar","jains-telugu","jakkula","jandra","jethi","kachi","kaikali","karnam","karnibhakthulu","katipamula","khatik-telugu","kommu-dasari","konda-kammara","kuliya","kurakula","lakkamari-kapu","madiga-dasu","majjula","mala-masti","malis","mandula","manna-dhora","matangi","medari","mitha-ayyalavar","moghal-telugu","mondivogula","muchi-chamar","muli","musti-chenchu","nagavamsam","nakhasa","neyyala","ontaris","padigarajulu","pagativeshagallu","paky","pambala","pamidi","pamula","pancaratra-srivaisnavas-brahmans","pariki-muggula","patkars","rajannalu","reddi-dora","reddika","runjalavallu","sadaru","sadhu-chetty","sakunapaksollu","samayavallu","saradagallu","senapathi","silavantulu","sindhollu","swakulasali-koshti","tamboli-telugu","thogataveera-kshatriya","tirugatigantla","tolakari","udupula","uppara","vaikhanasa-brahmans","verra-musti","vipravinodulu","yata","yatagiri","yatla","yite"]},bbox:[76.462,12.5091,84.8294,19.785],provinceLabel:"Andhra Pradesh + Telangāna"},{id:"asia-india-odisha",label:"East India",count:88,selector:{type:"pg_slugs",values:["badhai-chhattisgarhi","baha-i","bairagi-chhattisgarhi","bairagi-odia","bangti","banka","bargah","bari-odia","bauti","bavuri","beldar-chhattisgarhi","bhangi-chhattisgarhi","bharewa","bharia-bhumia-chhattisgarhi","bhattra-bhatri","bhoi-odia","bhunjia","bondo","brahman-jyoti","candhai-maru","chaikwa","chatarkheya","cherua","citrakar","daitapati","damla","darji-odia","dhakad-halbi","dhera","didayi","dom-chhattisgarhi","eneti-dora","ghadwa","ghantarghada","ghogia","ghusuria","godra","gosain-chhattisgarhi","guna","irika","janughanta","jogi-halbi","jogi-odia","kachchi-alia","kalal-sadri","kamila","kapasiya","kasar-odia","khadura","khairwar-chhattisgarhi","khandwal","khati-odia","khatik-chhattisgarhi","kobari","kol-chhattisgarhi","koraga","kuda","kuli","kurunga","kusta","liari","maghia","mahuria","malia","markande-kanjia","mundapotta","munnewar","nai-odia","naksia","noliya","oriya","panara","pando","panka-odia","parenga","radhi","rana","sabakhia","samasi","sanei","sayyid-chhattisgarhi","sayyid-odia","sinduria","son-koli","suda","thanapati","tharua","tula-vina"]},bbox:[80.3325,17.5357,87.6538,23.9578],provinceLabel:"Odisha + Chhattīsgarh"},{id:"asia-india-gujarat",label:"West India",count:90,selector:{type:"pg_slugs",values:["agaria","agri","anjana-patel-gujarati","bafan","bairagi-gujarati","baloch","bamcha","banjania","barot","barthari","bhodala","borpi","caki","champta","cunara","dafer","dangasiya","dasnami-bawa","depala","dudhwala","gadhai","galiara","garmatan","garvi","gavli","ghantiya","golarana","gosain-gujarati","hajjam-gujarati","halaypotra","hingora","hingorza","jat-muslim","juneja","kahar-gujarati","kamalia","kambodia-bhagat","kapadi","kasar-gujarati","kasbati","kathi","ker","khalpa","khaskeli","khatik-gujarati","langa","machhiyara","majothi","makrani","mandali-muslims","mer","mir","miyana","moghol-gujarati","mujavar","muslim-khatri","muslim-lakhera","muslim-patel","mutwa","narsinghpura","nayak-muslims","node","padhar","panar","paradhi","patanwadia","patni-jamat","patni-vankars","pomla","rathodia","raysipotra","royma","sagar","sandhai-muslims","saranias","sayyid-gujarati","shravan","siddi","sompura-salat","tai","targala","theba","tirgar","turi-barot","vadi","vahivanca-barot","vayati","vyapari","wagheri","wandharo"]},bbox:[68.1752,20.1033,74.3448,24.7906],provinceLabel:"Gujarāt"},{id:"asia-india-karnataka",label:"Southwest India",count:86,selector:{type:"pg_slugs",values:["adiyan","agasa","ansari-momin-kannada","arasu","ayri","bagga","baira","balasantoshi","bandi","bania-kannada","bania-konkani","batada","bayil-kammara","bayil-pattar","bellara","bestha","chaptegar","charodi","chenna-dasar","dombi-dasa","durga-murga","gabit","galada-kokani","ganti-chores","gatti","gauli","ghadi","godda","gomantak-maratha","gond-kannada","gudikara","guraw","hajjam-kannada","halleer","harkantra","hasalaru","helawa","holeya-dasari","jatigar","jaweri","jogi-telugu","jogi-tulu","khakar","kolari","komara-panta","koosa","koraga-korra","kottari","koyava","kudiya","kudubi","kummara-kumbara","kurahina-setti","ladar","maila","malaikudi","maleru","manser","meda","mhalo","mith-gauda","mogaveera","mundala","nadors","nai-kannada","nairy","natua","nawaiyat","padarthis","padiyar","pambada","pattegar","pendar","pinjara-kannada","rachavar","raddi","rajapuri","raneyar","raval","raya-rawat","sapalyas","sayyid-kannada","soligaru","sudir","thammadi","vilyagaras"]},bbox:[73.2695,11.4418,78.7305,18.4466],provinceLabel:"Karnātaka + Goa"},{id:"asia-india-kerala",label:"Malabar Coast",count:78,selector:{type:"pg_slugs",values:["allar","ambalavasi","anthur-nair","arayavati","ayyanavar","bakuda","bania-malayalam","bowis-mogeyar","cakkala","cakkyar-nambiyar","chakkiyar","chamar-muchi-malayalam","chengazhi-nambiar","cingatanmar","dheevara","erawallan","ezhavathi","ilayatu","indo-french","indo-vietnamese","kakkalan","kalanadies","kalladi","kallattu-kurup","karimpalan","kavara","kavuthiyan","kidaran","kocu-wellan","kollan","kootan","kumar-kshatriya","kummara-kusuvan","kunduvadian","kurukkal","laccadive","malai-pandaram","malayalar","maran-nairs","marasari","mavilan","moger-malayalam","moothan","mukkari","musari","muttatu","nalkadaya","nambutiris","narsanna","nasuvan","nayadi","otans","padannan","palakad-tandans","pandithar","pathinaickans","pathiyan","pisaroti","poduval","pulisari","puspakan-unni","reddi","samanthan","sonavar","thachanad-moopan","tiyattunni","urindavan","vadugan","valinjiyar","vetan","vettalaikarans","vettiyan","vilkurup","visavan","wainadan-cetti","wainadan-kader","wainadan-pulayan","wayanad-pathiyan"]},bbox:[72.8992,7.9875,80.5765,13.0102],provinceLabel:"Kerala + Puducherry + Lakshadweep"},{id:"asia-india-tamil-nadu",label:"Southeast India + Andaman Islands",count:73,selector:{type:"pg_slugs",values:["alavan","andamanese","ansari-momin-tamil","anuppan","aranadan","baig","bhatu-andamani","bondili","brahmin-andamani","cekkala","chamar-muchi-tamil","chayakkaran","coorgi-andamanese","dasa-palanjika","dayare","dhobi-tamil","gangawar","great-andamanese","gudugudupandi","gurukkal","jains-tamil","jarawas","jati-pillai","kambalattan","kambar","kannada-naicker","kannada-saineegar","karaiyar","karlar","karna-sale","katesar","kattiakaran","kayalar","kepmari","koliyan","kongu-vaisnawa","kongu-vellala-gounder","kota","krishnavaka","kudumi","kuluvan","kummara-kummari","kunnuva-vellalar","malai-vellala","maleyan","maniyattikkaran","mudugar","nakkala","namdeo-maratha","nanjil-mudali","onge","pannadi","panniandi","parkavakulam","parvatarajakulam","pattanavan","perumkollar","salivahanam","savalakkarar","sayyid-tamil","semman","senaithalaivar","sentinelese","siviar","tambiran","telengi","tholuva-naicker","thoraiyar","tondman","uppillian","urikkar-naicker","vellaiyan-kuppam-padaiyaci","vettaikkaran"]},bbox:[74.7588,7.4577,94.7701,13.968],provinceLabel:"Tamil Nādu + Andaman and Nicobar Islands"},{id:"asia-india-madhya-pradesh",label:"Central India",count:88,selector:{type:"pg_slugs",values:["anjana","attar-saibulu","baharupi","banchada","baraua","barda","bari-hindi","bari-marathi","basudeva","berar","bhanumati","bharwad","bhoi-marathi","bhurtia","chari","chitari","citrakathi","dhawad","dhed","dom-marathi","gachha","garodi","garpagari","gondhali","gopal","hajjam-hindi","hardas","hatkar","jadam","jains-hindi","jhadi","kachchi-kushwaha","kachera-bagheli","kaghzi","kandera","kapewar","kasar-hindi","kasikapadi","kathar","kharvi","khatik-marathi","kokaniz","kolhati","kudimahan","ladia","ladsi","lahangir","lajjhar","lodha-marathi","lonar","mana","manbhav","mankar","mitna","mondiwar","muskhan","muslim-gond","muslim-kachera","nahal","naikpod","naita","namdeo","nandiwala","naoda","nat-bagheli","neeli","nema","nilkanth","pangul","phularis","pinjara-marathi","pochammalollu","prabhu-patane","rujjhar","sagharias","sahi","sais","sanghar","sarodi","sikligar","sisgars","soria","sutar-mistry","takari","velip","waidu","yelmar","zamral"]},bbox:[69.6832,14.969,83.1757,26.995],provinceLabel:"Madhya Pradesh + Mahārāshtra + Dādra and Nagar Haveli and Damān and Diu"},{id:"asia-india-uttarakhand",label:"North India + Nepal",count:92,selector:{type:"pg_slugs",values:["ahmadiya","anwal","arain-kannauji","badhik","badi","balahar","banpar","bargala","bargujar","bhuiyar","bisati","camma","charwaha","chaudangsi","dhamin","dhekaro","gadhia","gadihar","gandharv","habura","hijra","hindu-santarash","jadupetia","jains-maithili","jarkhandi-hajjam","jarkhandi-julaha","jharkhandi-nai","jimdar","jogi-angika","kadar","kankali","khangar-bundeli","khatbune","kuthliya-bora","modaks","mujavir","mukeri","nagbansi","nalband","pankhiya","patari","puran","putliwale","rai-bhat-muslims","rajdhop","raji-india","rastogi","rave","sahisia","sayyid-garhwali","sheikhzade","shershabadia","sukiyar","tagewale","thakurai","tikulhara","tilli","turuk-pasi","baniya","barae","bhand","bhediyar","bodo","byangsi","chidmar","churaute","dhobi","dhunia","dura","gangai","gyasumdoba","halkhor","haluwai","jaine","kaike","kamar","kanu","kayastha","lodha","makalu-sherpa","mali","mallah","marwadi","nurang","pahari-nagarkotis","puma","rajbhar","raji-nepal","shaikh-bhojpuri","sudhi","surel","tseku"]},extraCountryCodes:["NPL"],bbox:[76.0644,22.1727,88.8858,31.2428],adm0:["NPL"],provinces:["Uttarākhand","Uttar Pradesh","Bihār","Jhārkhand","Delhi"],provinceLabel:"North India + Nepal"},{id:"asia-india-west-bengal",label:"Northeast India + Bangladesh + Bhutan",count:87,selector:{type:"pg_slugs",values:["aiton","angarok","ansari-momin-bengali","bagti","baida","baisya","bajandar","banai","banik-bania","barua","bhakta","bhalla","bhujel","bilaspuri","byadh","chamar-assamese","chunari","dalu-india","dhal-kstriya","dhimal","ghazi","hajjam-assamese","hajjam-bengali","haluadas","jains-bengali","kakmara","kanda","kapuria","kasar-bengali","khairwar-bengali","khalifa","khamba","khamyang","khatik-bengali","khowa","koiren","kumhar-assamese","kurol","lois","mahisyadas","malakar","man","maria-muslims","matak","mirshikar","momba","mukhi","na","nai-assamese","namasudra-assamese","paharia","pangans","pinjara-dhunia-bengali","sabar","saha","serdukpen","shabdakar","siyalgar","sudra-das","sunuwar","sutradhar","taiphake","tamboli-bengali","teli-assamese","thanga","tripuri-kumhar","tripuri-namasudra","turun","yakha","yatibi","zakhrin","brokkat","chali","dalu-bangladesh","deaf-bhutanese","doya","dzalakha","gongduk","koda","kurtop","lakha","lunape","matpa","nupbi","nyenpa","ole","ushoi"]},extraCountryCodes:["BGD","BTN"],bbox:[84.6438,21.028,98.3478,29.4168],provinceLabel:"West Bengal + Sikkim + Meghālaya + Assam + Arunāchal Pradesh + Manipur + Tripura + Bangladesh + Bhutan",adm0:["BGD","BTN"]},{id:"asia-china-yunnan-province",label:"Southern China",count:109,selector:{type:"pg_slugs",values:["a-ou","ai-cham","akeu","aling","alu","angku","ani","aoka","apu","baonuo","beidongnuo","bit-china","black-thai","bugan","buyang","cai","changpao","chesu","dianbao","diao","doupo","eastern-samadu","eastern-xiangxi-miao","ga-mong","gao","gelao","guaigun","ha-li","hagei","hongjin-tai","hu","huishui-miao","jiamao-li","jiasou","jino","khmu","kong-ge","kucong","laba","labapo","laowu","lati-china","lawu","liang-e","linghua","liping-baheng","liude","liujia","longjia","lu","lupanshui-miao","mang-china","manmet","mashan-miao","meifu-li","mengwu","mishaba-laluo","mo","mosuo","mozhihei","muda","muzi","naheng","nanjingren","northern-awu","northern-dong","northern-muji","numao","palyu","panxian-nasu","pingdi-yao","popei","pubiao","puman","pusha","qanu","qiubei-zhuang","qixingmin","rao","rumai-de-ang","sanda","sanqiao","shenzhou","sichuan-mongols","ta-er","tagu","tai-lu","tai-pong","tulao","tusu","wenma-zhuang","western-gaisu","western-samadu","wopu","wunai","xi","xialusi","xiaoliangshan-nosu","xijima","xinping-lalu","xuzhang-lalu","ya","yanghuang","yerong","yizi","youmai","younuo-bunu","yunnan-mongol","yunnan-shui"]},bbox:[96.3204,17.3374,113.2066,29.9169],provinceLabel:"Yunnan Province + Guizhou Province + Guangxi Zhuang Autonomous Region + Hunan Province + Hainan Province",provinces:["Yunnan Province","Guizhou Province","Guangxi Zhuang Autonomous Region","Hunan Province","Hainan Province"]},{id:"asia-china-tibet-autonomous-region",label:"Mainland China + Mongolia",count:53,selector:{type:"pg_slugs",values:["adi","ainu-china","alxa-mongols","bogar-lhoba","bogol","boyu-tibetans","bunan","buryat","butuo-nosu","cona-monba","darang-deng","enger-yugur","ersu","geman-deng","heishui","henan-mongols","keji","kyrgyz","luzu","manyak","medog-monba","miguba","ming","minyak","naju","namuyi","nghari-tibetans","olot","ongkor","puroik","saman","saragh-yugur","sarikoli-tajiks","shixing","suodi-nosu","tongren-bonan","uzbeks","wakhi-china","western-xibe","wutun","yidu-lhoba","yinuo-nosu","za"]},extraCountryCodes:["MNG","PRK","JPN"],bbox:[69.2237,24.2385,130.4094,51.3865],provinceLabel:"Tibet Autonomous Region + Sichuan Province + Xinjiang Uyghur Autonomous Region + Gansu Province + Inner Mongolia Autonomous Region + Qinghai Province + Heilongjiang Province + Mongolia + Japan + North Korea",provinces:["Tibet Autonomous Region","Sichuan Province","Xinjiang Uyghur Autonomous Region","Gansu Province","Inner Mongolia Autonomous Region","Qinghai Province","Heilongjiang Province"],adm0:["MNG"]}],hp=[{id:"uncovered-scatter",label:"Scattered / Diaspora",count:8,contiguous:!1,contiguityExempt:!0,flag:"allowed non-contiguous bucket (S5-D3) — diaspora/island/micro-territory strays + 2 unstamped CHN border PGs",selector:{type:"country_codes",values:["AND","CCK","GUF","USA"]},extra_slugs:["jing","pana-china"],bbox:[-150.7534,-18.855,123.4288,50.0639]},{id:"uncovered-nas-a",label:"Central Asia + Pakistan",count:55,contiguous:!0,contiguityExempt:!1,flag:"NAS-A real frontier zone (09b-asia-contiguity-v2 N-D6): MERGE of the former uncovered-sa-west (AFG+PAK) + uncovered-central-asia (AZE/KGZ/TJK/UZB) into ONE zone owning BOTH the legend count AND the ADM0 render coverage. AFG-PAK-UZB-TJK-KGZ form one contiguous land-border core; AZE is the flagged Caspian-separated near-member (S5-D2). KAZ stays deaf-only (its only PG is deaf-kazakhstanis). Target coverage 55 (design directive; uncovered coverage counts are carried through, not recomputable from admin-membership — NOTE-COUNT). ID kept in the uncovered-* family (NOT asia-frontier-nas-a) because zone-geometry.isAsiaZone() routes any asia-*-prefixed id down the ADM1 listId path — an asia-* id would resolve 0 ADM0 polys and render NOTHING. uncovered-* keeps it on the country_codes/ADM0 render path; re-prefixing is the render-layer's NEXT slice, not this one.",selector:{type:"country_codes",values:["AFG","AZE","KGZ","PAK","TJK","UZB"]},bbox:[42.6538,23.2204,79.3424,44.9954],provinceLabel:"Pakistan + Afghanistan + Uzbekistan + Tajikistan + Kyrgyzstan + Kazakhstan + Azerbaijan"}],I1=["country_code","wagf_region","wagf_block","primary_language","religion"];function F1(e){return e==null?{value:null,label:null}:typeof e=="object"?{value:e.value??null,label:e.label??null}:{value:e,label:null}}function D1(e){if(e==null||typeof e!="object")return e;const t={...e};for(const o of I1)if(o in t){const{value:n,label:a}=F1(t[o]);t[o]=n,a!=null&&(t[`${o}_label`]=a)}return t}function ba(e){return Array.isArray(e)?e.map(D1):[]}function $a(e){return Array.isArray(e)?e:e&&typeof e=="object"?e.posts||e.data||e.records||e.results||e.items||[]:[]}function Tn(e){return e==null||typeof e!="object"?null:e.slug??null}function fp(e){return typeof e=="string"&&e.toLowerCase().includes("deaf")}function G1(e){const t=e==null?null:e.rop1;return t==null?null:typeof t=="object"?t.value??null:t}function Rn(e,t){const o=new Set;if(e==null||typeof e!="object"||typeof e.type!="string")throw new Error(`selector-evaluator: malformed selector (expected an object with a string \`type\`), got: ${JSON.stringify(e)}`);const n=Array.isArray(t)?t:[];switch(e.type){case"country_code":{const a=e.value;for(const s of n)if(s&&s.country_code===a){const r=Tn(s);r!=null&&o.add(r)}return o}case"country_codes":{const a=new Set(Array.isArray(e.values)?e.values:[]);for(const s of n)if(s&&a.has(s.country_code)){const r=Tn(s);r!=null&&o.add(r)}return o}case"wagf_block":{const a=e.value;for(const s of n)if(s&&s.wagf_block===a){const r=Tn(s);r!=null&&o.add(r)}return o}case"wagf_region":{const a=e.value;for(const s of n)if(s&&s.wagf_region===a){const r=Tn(s);r!=null&&o.add(r)}return o}case"union":{const a=Array.isArray(e.selectors)?e.selectors:[];for(const s of a){const r=Rn(s,n);for(const i of r)o.add(i)}return o}case"deaf_predicate":{const a=new Set(Array.isArray(e.regions)?e.regions:[]);for(const s of n){if(!s)continue;if((fp(s.slug)||fp(s.name))&&a.has(s.wagf_region)){const i=Tn(s);i!=null&&o.add(i)}}return o}case"affinity_bloc":{const a=e.rop1;for(const s of n)if(s&&G1(s)===a){const r=Tn(s);r!=null&&o.add(r)}return o}default:throw new Error(`selector-evaluator: unknown selector type "${e.type}" (supported: country_code, country_codes, wagf_block, wagf_region, union, deaf_predicate, affinity_bloc)`)}}const Wr=Object.freeze(Object.defineProperty({__proto__:null,default:Rn,evaluate:Rn},Symbol.toStringTag,{value:"Module"})),B1=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"poster-wall",setup(e){const t=je("profileConfig",he(null)),o=J(()=>{var h;return((h=t.value)==null?void 0:h.instanceId)||"upg-100-wall"}),n=J(()=>{var h;return((h=t.value)==null?void 0:h.isDark)===!0}),a=J(()=>vs(t.value)),s=typeof window<"u"&&window.MAP_APP_API_URL||void 0||"",r={"west-africa":"Africa",sudan:"Africa","east-africa":"Africa","central-africa":"Africa","southern-africa-islands":"Africa","maghreb-egypt":"Middle East","middle-east-core":"Middle East","uncovered-nas-a":"Central Asia",laos:"Southeast Asia + Oceania","oceania-indonesia":"Southeast Asia + Oceania","mainland-se-asia-philippines":"Southeast Asia + Oceania",brazil:"Americas","andean-caribbean":"Americas","uncovered-scatter":"Americas",europe:"Europe"},i=h=>r[h]?r[h]:h.startsWith("asia-india-")?"India":h.startsWith("asia-china-")?"China + Mongolia":"Other",l=J(()=>[...dp||[],...gp||[],...hp||[]].filter(h=>h&&h.id));async function c(h){if(!s)throw new Error("no API configured");const f=await fetch(`${s}/api/people-groups/list?fields=slug,name,country_code,wagf_region,wagf_block,rop1,population,religion,image_url,primary_language&lang=en`,{cache:"no-store"});if(!f.ok)throw new Error(`people-groups fetch failed (${f.status})`);const m=ba($a(await f.json())),b=h.selector&&h.selector.type==="pg_slugs"?new Set(h.selector.values||[]):Rn(h.selector,m);return m.filter($=>$&&b.has($.slug)).sort(($,w)=>String($.name||"").localeCompare(String(w.name||"")))}const u=h=>String(h).split(".").pop().replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/^./,g=>g.toUpperCase());let p=h=>u(h);try{p=ht().t}catch{}const d=J(()=>p("messages.upg100WallIntro")),v=J(()=>p("messages.upg100WallHeading")),x=J(()=>p("messages.upg100WallTag"));return(h,g)=>(H(),dt(O1,{items:l.value,"group-by":f=>i(f.id),"instance-id":o.value,"is-dark":n.value,"assets-base":a.value,"event-name":"doxa-upg-100-list:show-on-map",heading:v.value,tag:x.value,intro:d.value,unit:"UPG","item-noun":"list",records:c,"card-stocks":!0,"poster-action":"print","preview-action":"print","hide-prayer-list-when-soon":!0,"download-prefix":"doxa-upg-100"},null,8,["items","group-by","instance-id","is-dark","assets-base","heading","tag","intro"]))}}},Symbol.toStringTag,{value:"Module"})),mp="pplrInstance";function j1(e){return{instanceId:e,selection:he(null),activeTab:he(0),activeTabTouched:he(!1),isSearching:he(!1),geocoderText:he(""),pinDetail:he(null),theme:he("dark")}}function U1(e){It(mp,e)}function z1(){return je(mp,null)}const H1="",V1=["data-covered","data-total","data-pct"],K1={class:"lpb-track"},W1=["data-span-pct"],q1=["data-seg","data-count","aria-label","onMouseenter","onFocus","onClick"],Y1=["data-seg","data-count","aria-label"],X1=["aria-valuenow","aria-valuemax","aria-valuetext","aria-label","title"],bp=En({__name:"LegendProgressBar",props:{covered:{type:Number,default:0},total:{type:Number,default:0},segments:{type:Array,default:()=>[]},isDark:{type:Boolean,default:!1},label:{type:String,default:""},fmtCount:{type:Function,default:e=>(Number(e)||0).toLocaleString()},compact:{type:Boolean,default:!1},stacked:{type:Boolean,default:!1},showText:{type:Boolean,default:!0}},emits:["select-segment"],setup(e,{emit:t}){const{t:o}=ht();At(` +`,"pin-hint"),(k,S)=>l.value?(H(),ee("div",{key:0,ref_key:"hintEl",ref:c,class:De(["pin-hint",{dark:r.value}]),role:"status"},[T("span",R0,[S[0]||(S[0]=T("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),Ct(" "+ce(i.value)+" ",1),T("button",{class:"pin-hint-x",type:"button","aria-label":"Dismiss hint",onClick:b},"×")])],2)):we("",!0)}},M0=!1;let O0=0;const I0=xr("ui",{state:()=>({_storeInstanceId:++O0,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(o=>o.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 o=this.isDarkTheme;document.documentElement.setAttribute("data-theme",o?"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:o="info",duration:n=this.toastDuration,action:a=null,persistent:s=!1}=e,r={id:this.nextToastId++,message:t,type:o,duration:n,action:a,persistent:s,createdAt:Date.now()};return this.toasts.push(r),!s&&n>0&&setTimeout(()=>{this.removeToast(r.id)},n),r.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(o=>o.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(o=>{for(const n of o)this.updateWindowSize(n.contentRect.width,n.contentRect.height)}).observe(document.documentElement),window.matchMedia&&(window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",o=>{this.theme==="auto"&&document.documentElement.setAttribute("data-theme",o.matches?"dark":"light")}),window.matchMedia("(prefers-reduced-motion: reduce)").addEventListener("change",o=>{this.reducedMotion=o.matches,document.documentElement.setAttribute("data-reduced-motion",o.matches)}))}}}),F0=xr("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",clusteringMode:"off",clusterPinOpacity:.6,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,o={}){let n=1.5;o.zoom!==void 0?n=o.zoom:t&&typeof t.getZoom=="function"&&(n=t.getZoom());let a=[0,0];if(o.center)a=o.center;else if(t&&typeof t.getCenter=="function"){const s=t.getCenter();s&&(a=[s.lng,s.lat])}this.maps[e]={instance:t,config:o,isReady:!1,zoom:n,center:a,registeredAt:Date.now()},this.activeMapId||(this.activeMapId=e)},setMapReady(e){const t=this.maps[e];t&&(t.isReady=!0)},updateMapState(e,t){const o=this.maps[e];o&&Object.assign(o,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)},setClusteringMode(e){["off","mapbox","mst","network"].includes(e)&&(this.clusteringMode=e,this.showClusters=e!=="off")},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()}}}),D0=xr("data",{state:()=>({sources:{},loadingStates:{}}),actions:{async load(e,t){if(!this.sources[e]){this.loadingStates[e]={isLoading:!0,error:null};try{const o=await t();this.sources[e]=Xo({features:o,timestamp:Date.now()}),this.loadingStates[e]={isLoading:!1,error:null}}catch(o){console.error(`[dataStore] Failed to load source "${e}":`,o),this.loadingStates[e]={isLoading:!1,error:o}}}},clearSource(e){delete this.sources[e],delete this.loadingStates[e]},cacheSourceData(e,t){this.sources[e]=Xo({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 o;return((o=e.sources[t])==null?void 0:o.features)??null},isLoading:e=>t=>{var o;return((o=e.loadingStates[t])==null?void 0:o.isLoading)??!1},getError:e=>t=>{var o;return((o=e.loadingStates[t])==null?void 0:o.error)??null}}}),fa={_meta:{_comment:"Single source of truth for data-source connections across all doxa-maps bundles.",_comment_token:"Mapbox access token is fetched at runtime from window.MAP_TOKEN_URL (same modular pattern as window.MAP_APP_API_URL). Not hardcoded to any host — set mapboxTokenUrl below or override window.MAP_TOKEN_URL on the host page.",mapboxTokenUrl:"window.MAP_TOKEN_URL"},activeSource:"pray-tools",sources:{"pray-tools":{id:"pray-tools",name:"Prayer.Tools API",type:"rest-api",description:"pray.doxa.life live API — people-group prayer, engagement, and adoption data. Base URL read from window.MAP_APP_API_URL or VITE_API_BASE_URL at runtime.",endpoints:{bulk:"/api/people-groups/list",detail:"/api/people-groups/detail/{slug}",statistics:"/api/people-groups/statistics"},queryParams:{lang:"en"},defaultFields:["slug","name","latitude","longitude","wagf_region","wagf_block","wagf_member","rop1","imb_reg_of_people_2","imb_reg_of_people_25","imb_reg_of_people_3","country_code","religion","population","has_photo","image_url","people_praying","people_committed","adopted_by_churches","engagement_status","imb_gsec","primary_language","imb_language_family","imb_language_class","imb_language_speakers"],pollFields:["slug","people_praying"],pollInterval:3e5,fallbackSourceId:null,fieldMappings:{uniqueId:"slug",slug:"slug",name:"name",latitude:"latitude",longitude:"longitude",wagfRegion:"wagf_region",doxaRegion:"wagf_region",wagfBlock:"wagf_block",wagfMember:"wagf_member",affinityBlock:"rop1",countryIso:"country_code",religion:"religion",religionCode:"religion",population:"population",hasPhoto:"has_photo",imageUrl:"image_url",photoUrl:"image_url",peoplePraying:"people_praying",peopleCommitted:"people_committed",engagementStatus:"engagement_status",adoptionStatus:"adopted_by_churches",language:"primary_language",cluster:"imb_reg_of_people_2",peopleGroup:"imb_reg_of_people_25",peopleGroupCountry:"imb_reg_of_people_3",languageFamily:"imb_language_family",languageClass:"imb_language_class",languageSpeakers:"imb_language_speakers"},imageConfig:{useField:"imageUrl",fallbackField:null,fallbackUrlTemplate:null,placeholderUrl:"https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg",useSvgPlaceholder:!0}},"doxa-csv":{id:"doxa-csv",name:"DOXA People Groups CSV",type:"csv",path:"assets/data/Joshua-project-ids-Doxa-1439.csv",description:"People groups dataset from DOXA / Joshua Project",fieldMappings:{uniqueId:"ROP3",peopleGroupId:"ROP3",countryCode:"ROG",peopleId3:"PeopleID3",name:"Name",displayName:"NmDisp",alternateName:"NmAlt",description:"PeopleDesc",locationDescription:"LocationDe",country:"Ctry",countryIso:"ISOalpha3",region:"Regn",subRegion:"RegnSub",wagfRegion:"WAGF Region",doxaRegion:"WAGF Region",wagfBlock:"WAGF BLOCK",affinityBloc:"Affbloc",affinityBlock:"ROP1",affinityCode:"AffCd",affinityName:"Aff",peopleCluster:"PplClstr",ethneName:"Ethne",latitude:"Latitude",longitude:"Longitude",population:"Pop",populationClass:"PopCls",status:"Status",engagementStatus:"EngStat",evangelicalLevel:"EvngLvl",gsec:"GSEC",gsecBrief:"GSECbrf",gsecLong:"GSEClng",spiScore:"SPI",spiDescription:"SPIdesc",language:"Lang",languageCode:"ROL",languageFamily:"LangFamily",religion:"Rlgn",religionCode:"ROR",religionDescription:"RORdesc",religionBase:"RlgnBs",religionDiv:"RlgnDiv",bible:"Bible",jesusFilm:"Jesus",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",resourcesTotal:"ResTot",bibleLevel:"LvlBible",yearPublished:"YrPub",photoCredit:"PicCrdt",photoUrl:"PicURL",hasPhoto:"Photo",isIndigenous:"Indigenous"},imageConfig:{useField:"photoUrl",fallbackField:"peopleId3",fallbackUrlTemplate:"https://joshuaproject.net/assets/media/profiles/photos/p{peopleId3}.jpg",placeholderUrl:"https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg"}}},systemFields:{uniqueId:{description:"Unique identifier per row (slug for API, ROP3+ROG for CSV)",required:!0},peopleGroupId:{description:"People group ID — same group can appear in multiple countries",required:!0},name:{description:"People group display name",required:!0},latitude:{description:"Latitude coordinate for map pin",required:!0},longitude:{description:"Longitude coordinate for map pin",required:!0},engagementStatus:{description:"Boolean — true if engaged_status = 'engaged'",required:!1},adoptionStatus:{description:"Boolean — true if adopted_by_churches > 0",required:!1},peoplePraying:{description:"Number of people currently praying for this group — from pray-tools API",required:!1},peopleCommitted:{description:"Raw count of committed workers for this group — source of engagementStatus",required:!1},languageFamily:{description:"Language family name",required:!1},religion:{description:"Primary religion",required:!1},population:{description:"Population count",required:!1},doxaRegion:{description:"WAGF/DOXA region name",required:!1},photoUrl:{description:"URL to people group photo",required:!1},description:{description:"People group description text",required:!1}}},G0=".profile-loader[data-v-ccbcaedb]{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-ccbcaedb]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}",En=(e,t)=>{const o=e.__vccOpts||e;for(const[n,a]of t)o[n]=a;return o},B0=["dir"],j0={key:0,class:"profile-error"},U0={key:1,class:"profile-error"},z0=En({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var A;const o=e,n=je("profileConfig",null),a=J(()=>{var k;if(!o.profileConfig)return null;let L;try{L=JSON.parse(o.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",o.profileConfig),null}if(L&&L.assetsBase===void 0){const S=(k=n==null?void 0:n.value)==null?void 0:k.assetsBase;typeof S=="string"&&S&&(L.assetsBase=S)}return L}),s=J(()=>{var L;return((L=a.value)==null?void 0:L.profile)||null}),r=Pf(),i=J(()=>{var k;const L=(k=a.value)==null?void 0:k.tk;return typeof L=="string"&&L?L:r.value||""});ot(()=>{var L;return(L=a.value)==null?void 0:L.tk},L=>{typeof L=="string"&&L&&jc(L)},{immediate:!0});const l=J(()=>{var L;return((L=a.value)==null?void 0:L.dataSource)||fa.activeSource}),c=J(()=>{var L;return((L=a.value)==null?void 0:L.colorSet)||"default"}),u=J(()=>!1),p=J(()=>{var L;return((L=a.value)==null?void 0:L.pinHint)!==!1}),d=J(()=>{var k,S;const L=(((k=a.value)==null?void 0:k.locale)||((S=a.value)==null?void 0:S.lang)||"").split("-")[0].toLowerCase();return ys.includes(L)?L:""}),v=je("appI18n",null);Mg(()=>{d.value&&(v&&(v.global.locale.value=d.value),sp(d.value))});const x=J(()=>{var L,k;return d.value||((k=(L=v==null?void 0:v.global)==null?void 0:L.locale)==null?void 0:k.value)||"en"}),h=J(()=>ap.has(x.value)?"rtl":"ltr"),g=J(()=>{var L;return((L=a.value)==null?void 0:L.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),f=je("profileModules",null);if(!f)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const m=J(()=>{if(!s.value)return null;const L=`./${s.value}.vue`;return f[L]?Uc(f[L]):(console.error(`[ProfileLoader] Profile not found: "${s.value}". Available:`,Object.keys(f)),null)});It("mapboxToken",i),It("dataSource",l),It("colorSet",c),It("profileConfig",a),It("instanceId",g),It("lang",x);const b=I0(),$=F0(),w=D0();try{const L=typeof localStorage<"u"?localStorage.getItem("theme"):null;L&&((A=b.setTheme)==null||A.call(b,L))}catch{}return It("uiStore",b),It("mapStore",$),It("dataStore",w),(L,k)=>(H(),ee("div",{class:"profile-loader",dir:h.value},[a.value?m.value?(H(),dt(sr(m.value),{key:2})):(H(),ee("div",U0,[T("p",null,[k[1]||(k[1]=Ct("⚠️ Profile ",-1)),T("strong",null,'"'+ce(s.value)+'"',1),k[2]||(k[2]=Ct(" not found.",-1))])])):(H(),ee("div",j0,[...k[0]||(k[0]=[T("p",null,[Ct("⚠️ "),T("strong",null,"doxa-map"),Ct(": missing or invalid "),T("code",null,"profile-config"),Ct(" prop.")],-1),T("p",null,[Ct("Example: "),T("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),m.value&&u.value?(H(),dt(sr(me(null)),{key:3})):we("",!0),m.value&&p.value?(H(),dt(N0,{key:4})):we("",!0)],8,B0))}},[["styles",[G0]],["__scopeId","data-v-ccbcaedb"]]),H0=Object.assign({"./poster-wall.vue":()=>_t(()=>Promise.resolve().then(()=>B1),void 0),"./upg-100-list.vue":()=>_t(()=>Promise.resolve().then(()=>vL),void 0),"./upg-100-mfe.vue":()=>_t(()=>Promise.resolve().then(()=>ZL),void 0)});if(typeof window<"u"&&((Rd=window.mapboxgl)!=null&&Rd.setRTLTextPlugin))try{window.mapboxgl.setRTLTextPlugin("https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.3.0/mapbox-gl-rtl-text.js",null,!0)}catch{}function V0(){return uf(z0,{configureApp(e){e.use(vf()),e.use(E0()),e.provide("profileModules",H0)}})}const K0=V0();typeof customElements<"u"&&(customElements.get("my-upg-100-list-map")||customElements.define("my-upg-100-list-map",K0));function ma(e,{autoprint:t=!1}={}){const o=document.createElement("iframe");o.setAttribute("aria-hidden","true"),o.style.cssText="position:fixed;right:0;bottom:0;width:1px;height:1px;opacity:0;border:0",document.body.appendChild(o);const n=o.contentDocument;if(!n)return o.remove(),null;n.open(),n.write(e),t&&n.write(' - + - + - + - + - + - + - + - + - + - + - + - + - + - +