From a908d8420cc8f4e2b5c4386f1f784f0977de1747 Mon Sep 17 00:00:00 2001 From: Sergio Date: Sat, 23 May 2026 15:22:13 +0000 Subject: [PATCH] =?UTF-8?q?gioser-web:=20fix=20graph=20not=20appearing=20?= =?UTF-8?q?=E2=80=94=20use=20MutationObserver?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - cytoscape-graph.js now uses MutationObserver, not DOMContentLoaded (the element is created dynamically by WASM) - Remove unused dispatchEvent from lib.rs - Rebuild WASM --- Cargo.toml.bak3 | 509 ------------------ crates/apps/gioser-web/cytoscape-graph.js | 276 +++++----- crates/apps/gioser-web/pkg/gioser_web.d.ts | 14 +- crates/apps/gioser-web/pkg/gioser_web.js | 130 +---- crates/apps/gioser-web/pkg/gioser_web_bg.wasm | Bin 427025 -> 426185 bytes .../gioser-web/pkg/gioser_web_bg.wasm.d.ts | 14 +- crates/apps/gioser-web/src/lib.rs | 9 +- 7 files changed, 188 insertions(+), 764 deletions(-) delete mode 100644 Cargo.toml.bak3 diff --git a/Cargo.toml.bak3 b/Cargo.toml.bak3 deleted file mode 100644 index 754b68e..0000000 --- a/Cargo.toml.bak3 +++ /dev/null @@ -1,509 +0,0 @@ -[workspace] -resolver = "2" -members = [ - # ============================================================ - # protocol/ — Contratos canónicos + routing entre módulos - # ============================================================ - "crates/protocol/brahman-card", - "crates/protocol/brahman-card-wit", - "crates/protocol/brahman-cards", - "crates/protocol/brahman-handshake", - "crates/protocol/brahman-broker", - "crates/protocol/brahman-admin", - "crates/protocol/brahman-sidecar", - "crates/protocol/brahman-net", - "crates/protocol/brahman-dht", - "crates/protocol/brahman-card-discovery", - "crates/protocol/brahman-ssh-multiplex", - "crates/protocol/brahman-auth", - "crates/protocol/arje-card", - - # ============================================================ - # init/ — PID 1 + encarnación Linux (arje) - # ============================================================ - "crates/init/arje-zero", - "crates/init/arje-kernel", - "crates/init/arje-soma", - "crates/init/arje-snapshot", - "crates/init/arje-incarnate", - "crates/init/arje-absorb", - - # ============================================================ - # runtime/ — Infraestructura de ejecución (bus + cas + wasm + brain) - # ============================================================ - "crates/runtime/arje-bus", - "crates/runtime/arje-cas", - "crates/runtime/arje-wasm", - "crates/runtime/arje-brain-rules", - "crates/runtime/arje-brain-cognitive", - "crates/runtime/arje-brain-audit", - "crates/runtime/arje-brain", - "crates/runtime/arje-echo", - "crates/runtime/sandokan-lifecycle", - "crates/runtime/sandokan-core", - "crates/runtime/sandokan-local", - "crates/runtime/sandokan-daemon", - "crates/runtime/sandokan-remote", - "crates/runtime/sandokan", - - # ============================================================ - # compat/ — Shims D-Bus para correr software systemd-aware - # ============================================================ - "crates/compat/arje-compat-common", - "crates/compat/arje-policy-provider", - "crates/compat/arje-logind-compat", - "crates/compat/arje-hostnamed-compat", - "crates/compat/arje-timedated-compat", - "crates/compat/arje-localed-compat", - "crates/compat/arje-journald-compat", - "crates/compat/arje-resolved-compat", - "crates/compat/arje-polkit-compat", - "crates/compat/arje-machined-compat", - "crates/compat/arje-tmpfiles-compat", - "crates/compat/arje-systemd1-compat", - "crates/compat/arje-notify-compat", - "crates/compat/arje-binfmt-compat", - "crates/compat/arje-timer-compat", - - # ============================================================ - # modules/semantic_dht/ (minga) — DHT semántico de código - # ============================================================ - "crates/modules/semantic_dht/minga-core", - "crates/modules/semantic_dht/minga-store", - "crates/modules/semantic_dht/minga-p2p", - "crates/modules/semantic_dht/minga-vfs", - "crates/modules/semantic_dht/minga-cli", - - # ============================================================ - # modules/nahual/ — Motor GPUI: libs + widgets (era yahweh) - # ============================================================ - "crates/modules/nahual/libs/core", - "crates/modules/nahual/libs/theme", - "crates/modules/nahual/libs/launcher", - "crates/modules/nahual/libs/bus", - "crates/modules/nahual/libs/meta-schema", - "crates/modules/nahual/libs/meta-runtime", - "crates/modules/nahual/libs/providers/fs", - "crates/modules/nahual/libs/providers/sqlite", - "crates/modules/nahual/widgets/tree", - "crates/modules/nahual/widgets/container_core", - "crates/modules/nahual/widgets/splitter", - "crates/modules/nahual/widgets/tabs", - "crates/modules/nahual/widgets/tiled", - "crates/modules/nahual/widgets/text_input", - "crates/modules/nahual/widgets/meta-form", - "crates/modules/nahual/widgets/banner", - "crates/modules/nahual/widgets/card", - "crates/modules/nahual/widgets/stat-card", - "crates/modules/nahual/widgets/app-header", - "crates/modules/nahual/widgets/theme-switcher", - - # ============================================================ - # modules/pineal/ — Data-viz agnóstica con backends (era lapaloma) - # ============================================================ - "crates/modules/pineal/core", - "crates/modules/pineal/render", - "crates/modules/pineal/cartesian", - "crates/modules/pineal/stream", - "crates/modules/pineal/mesh", - "crates/modules/pineal/financial", - "crates/modules/pineal/polar", - "crates/modules/pineal/heatmap", - "crates/modules/pineal/treemap", - "crates/modules/pineal/flow", - "crates/modules/pineal/phosphor", - "crates/modules/pineal/export", - "crates/modules/pineal/umbrella", - - # ============================================================ - # modules/verbo/ — Provider de embeddings model-agnostic - # ============================================================ - "crates/modules/verbo/verbo-core", - "crates/modules/verbo/verbo-mock", - "crates/modules/verbo/verbo-daemon", - - # ============================================================ - # modules/agorapura/ — Identidad humana federada - # ============================================================ - "crates/modules/agorapura/agorapura-core", - "crates/modules/agorapura/agorapura-graph", - - # ============================================================ - # modules/badu/ — Toma de notas con gravedad semántica - # ============================================================ - "crates/modules/badu/badu-core", - "crates/modules/badu/badu-gravity", - - # ============================================================ - # modules/takiy/ — Composición musical asistida - # ============================================================ - "crates/modules/takiy/takiy-core", - - # ============================================================ - # modules/matilda/ — Administración de servidores - # ============================================================ - "crates/modules/matilda/matilda-core", - "crates/modules/matilda/matilda-config", - "crates/modules/matilda/matilda-plan", - "crates/modules/matilda/matilda-apply", - "crates/modules/matilda/matilda-ghost", - "crates/modules/matilda/matilda-linker", - "crates/modules/matilda/matilda-discover", - - # ============================================================ - # modules/yachay/ — Notebooks computacionales reproducibles - # ============================================================ - "crates/modules/yachay/yachay-core", - - # ============================================================ - # modules/charka/ — Transpilador COBOL → Rust - # ============================================================ - "crates/modules/charka/charka-bcd", - "crates/modules/charka/charka-lexer", - "crates/modules/charka/charka-parser", - "crates/modules/charka/charka-ir", - "crates/modules/charka/charka-runtime", - "crates/modules/charka/charka-codegen", - "crates/modules/charka/charka-shadow", - - # ============================================================ - # modules/mirada/ — Compositor Wayland - # ============================================================ - "crates/modules/mirada/mirada-layout", - "crates/modules/mirada/mirada-protocol", - "crates/modules/mirada/mirada-brain", - "crates/modules/mirada/mirada-link", - "crates/modules/mirada/mirada-body", - - # ============================================================ - # modules/nakui/ — ERP matemático (categórico) - # ============================================================ - "crates/modules/nakui/core", - - # ============================================================ - # modules/chasqui/ — Explorador semántico de nómadas (ex-nouser, ex-akasha) - # ============================================================ - "crates/modules/chasqui/card", - "crates/modules/chasqui/core", - "crates/modules/chasqui/nous", - "crates/modules/chasqui/nous-mock", - "crates/modules/chasqui/nous-real", - - # ============================================================ - # modules/shuma/ — Runtime de espacios aislados (era shipote) - # ============================================================ - "crates/modules/shuma/shuma-card", - "crates/modules/shuma/shuma-protocol", - "crates/modules/shuma/shuma-discern", - "crates/modules/shuma/shuma-core", - "crates/modules/shuma/shuma-intent", - "crates/modules/shuma/shuma-line", - "crates/modules/shuma/shuma-sysmon", - "crates/modules/shuma/shuma-session", - "crates/modules/shuma/shuma-exec", - "crates/modules/shuma/shuma-infer", - "crates/modules/shuma/shuma-shell-render", - - # ============================================================ - # modules/dominium/ — Simulador psicológico de campo medio - # ============================================================ - "crates/modules/dominium/dominium-core", - "crates/modules/dominium/dominium-physics", - "crates/modules/dominium/dominium-iso", - "crates/modules/dominium/dominium-render-plan", - "crates/modules/dominium/dominium-canvas-gpui", - - # ============================================================ - # modules/gioser/ — Landing WASM (chacana + 4 elementos) - # ============================================================ - "crates/modules/gioser/gioser-geom", - "crates/modules/gioser/gioser-physics", - "crates/modules/gioser/gioser-palette", - "crates/modules/gioser/gioser-shaders", - "crates/modules/gioser/gioser-canvas-web", - "crates/modules/gioser/gioser-graph-web", - - # ========================================================== - # modules/fana/ — Writer DAG editor (absorbe pluma) - # ============================================================ - "crates/modules/fana/fana-core", - "crates/modules/fana/fana-graph", - "crates/modules/fana/fana-render-plan", - "crates/modules/fana/fana-editor-gpui", - "crates/modules/fana/fana-store", - "crates/modules/fana/fana-semantic", - "crates/modules/fana/fana-md", - "crates/modules/fana/fana-md-reader-web", - - # ============================================================ - # modules/revista/ — Deck horizontal swipe (Flutter PageView) - # ============================================================ - "crates/modules/revista/revista-core", - "crates/modules/revista/revista-web", - - # ============================================================ - # modules/barra/ — Taskbar agnóstica estilo Windows - # ============================================================ - "crates/modules/barra/barra-core", - "crates/modules/barra/barra-web", - - # ============================================================ - # modules/cosmobiologia/ — Estudio de astrología profesional - # ============================================================ - "crates/modules/cosmobiologia/cosmobiologia-card", - "crates/modules/cosmobiologia/cosmobiologia-model", - "crates/modules/cosmobiologia/cosmobiologia-store", - "crates/modules/cosmobiologia/cosmobiologia-render", - "crates/modules/cosmobiologia/cosmobiologia-corpus", - "crates/modules/cosmobiologia/cosmobiologia-engine", - "crates/modules/cosmobiologia/cosmobiologia-modules", - "crates/modules/cosmobiologia/cosmobiologia-theme", - "crates/modules/cosmobiologia/cosmobiologia-canvas", - "crates/modules/cosmobiologia/cosmobiologia-tree", - "crates/modules/cosmobiologia/cosmobiologia-panel", - "crates/modules/cosmobiologia/cosmobiologia-web", - - # ============================================================ - # apps/ — Binarios finales que consumen el protocolo - # ============================================================ - "crates/apps/brahman-broker-explorer", - "crates/apps/brahman-demo", - "crates/apps/sandokan", - "crates/apps/nahual-shell", - "crates/apps/nahual-file-explorer", - "crates/apps/nahual-database-explorer", - "crates/apps/nahual-text-viewer", - "crates/apps/nahual-image-viewer", - "crates/apps/chasqui-explorer", - "crates/apps/nakui-explorer", - "crates/apps/nakui-ui", - "crates/apps/minga-explorer", - "crates/apps/shuma-daemon", - "crates/apps/shuma-cli", - "crates/apps/shuma-gateway", - "crates/apps/shuma-shell", - "crates/apps/gioser-web", - "crates/apps/pineal-demo", - "crates/apps/pineal-stream-demo", - "crates/apps/pineal-phosphor-demo", - "crates/apps/pineal-financial-demo", - "crates/apps/cosmobiologia", - "crates/apps/cosmobiologia-cli", - "crates/apps/cosmobiologia-server", - "crates/apps/dominium", - "crates/apps/fana", - "crates/apps/agorapura", - "crates/apps/badu", - "crates/apps/matilda", - "crates/apps/yachay", - "crates/apps/mirada", - "crates/apps/mirada-compositor", - "crates/apps/mirada-ctl", - "crates/apps/mirada-launcher", - "crates/apps/mirada-portal", - "crates/apps/mirada-greeter", - "crates/apps/charka", -] - -# renaser — el SO bare-metal SASOS. Vive en el mismo repo pero es su -# PROPIO workspace de Cargo: usa toolchain nightly, target -# `x86_64-unknown-none` y `panic = "abort"`, incompatibles con los -# perfiles globales de este workspace. Cargo lo trata como ajeno; los -# crates compartidos se referencian por `path` cruzando la frontera. -exclude = ["renaser"] - -[workspace.package] -version = "0.1.0" -edition = "2021" -rust-version = "1.80" -license = "MIT OR Apache-2.0" -authors = ["Brahman Contributors"] -publish = false -repository = "https://example.invalid/brahman" - -[workspace.dependencies] -# === Serialización === -serde = { version = "1", features = ["derive"] } -serde_json = "1" -serde-big-array = "0.5" -postcard = { version = "1", features = ["use-std"] } -toml = "0.8" -ron = "0.8" -bincode = "1" -base64 = "0.22" - -# === Errores === -thiserror = "2" # bump uniforme; arje (era 1) puede requerir ajustes menores -anyhow = "1" - -# === Async === -tokio = { version = "1", features = ["full"] } -tokio-util = { version = "0.7", features = ["compat"] } -async-trait = "0.1" -futures = "0.3" - -# === Observabilidad === -tracing = "0.1" -tracing-subscriber = { version = "0.3", features = ["env-filter", "fmt"] } - -# === Linux primitives (arje) === -nix = { version = "0.29", features = ["signal", "process", "sched", "mount", "fs", "socket", "net", "user"] } -libc = "0.2" - -# === IDs / Hash / Crypto === -ulid = { version = "1", features = ["serde"] } -uuid = { version = "1", features = ["v4"] } -sha2 = "0.10" -blake3 = "1.5" -ed25519-dalek = "2" -aes-gcm = "0.10" -argon2 = "0.5" -rand = "0.8" - -# === WASM (arje) === -# wasmi 1.0: unifica la versión con renaser (su kernel ya corre 1.0), para -# que el ABI WASM del host sea idéntico en Linux y en bare-metal. -wasmi = "1.0" -wat = "1" - -# === Storage / DB === -sled = "0.34" -rusqlite = { version = "0.31", features = ["bundled", "blob"] } - -# === P2P (minga) === -libp2p = { version = "0.56", features = ["tokio", "tcp", "noise", "yamux", "macros", "kad", "identify"] } -libp2p-stream = "=0.4.0-alpha" -libp2p-allow-block-list = "0.6" - -# === SSH (brahman-ssh-multiplex, sandokan RemoteEngine, matilda) === -russh = "0.54" - -# === Math determinista cross-platform (dominium) === -libm = "0.2" - -# === Code parsing (minga) === -tree-sitter = "0.24" -tree-sitter-rust = "0.23" -tree-sitter-python = "0.23" -tree-sitter-typescript = "0.23" -tree-sitter-javascript = "0.23" -tree-sitter-go = "0.23" - -# === FS notify === -notify = "6.1" - -# === FUSE (minga-vfs) === -# default-features = false: prescinde de pkg-config/libfuse-dev en build. -# El montaje pasa a ser Rust puro (vía el helper `fusermount3` en runtime). -fuser = { version = "0.15", default-features = false } - -# === CLI / auth (minga) === -clap = { version = "4", features = ["derive"] } -rpassword = "7" - -# === PAM (brahman-auth) === -pam = "0.8" - -# === D-Bus (arje compat) === -zbus = { version = "4", default-features = false, features = ["tokio"] } - -# === Tests === -tempfile = "3" - -# === GPUI (nahual) === -gpui = "0.2" - -# === Filesystem helpers === -directories = "5" - -# === WASM web (gioser) === -wasm-bindgen = "0.2" -wasm-bindgen-futures = "0.4" -js-sys = "0.3" -web-sys = "0.3" -glam = "0.30" - -# === Markdown (pluma) === -pulldown-cmark = { version = "0.12", default-features = false, features = ["html"] } - -# ============================================================ -# Intra-workspace deps de nahual (referenciadas por workspace = true) -# ============================================================ -nahual-core = { path = "crates/modules/nahual/libs/core" } -nahual-theme = { path = "crates/modules/nahual/libs/theme" } -nahual-bus = { path = "crates/modules/nahual/libs/bus" } -nahual-provider-fs = { path = "crates/modules/nahual/libs/providers/fs" } -nahual-provider-sqlite = { path = "crates/modules/nahual/libs/providers/sqlite" } -nahual-widget-tree = { path = "crates/modules/nahual/widgets/tree" } -nahual-widget-container-core = { path = "crates/modules/nahual/widgets/container_core" } -nahual-widget-splitter = { path = "crates/modules/nahual/widgets/splitter" } -nahual-widget-tabs = { path = "crates/modules/nahual/widgets/tabs" } -nahual-widget-tiled = { path = "crates/modules/nahual/widgets/tiled" } -nahual-widget-text-input = { path = "crates/modules/nahual/widgets/text_input" } -nahual-file-explorer = { path = "crates/apps/nahual-file-explorer" } -nahual-database-explorer = { path = "crates/apps/nahual-database-explorer" } -nahual-text-viewer = { path = "crates/apps/nahual-text-viewer" } -nahual-image-viewer = { path = "crates/apps/nahual-image-viewer" } - -# ============================================================ -# Intra-workspace deps de pineal (módulo de gráficos) -# ============================================================ -pineal-core = { path = "crates/modules/pineal/core" } -pineal-render = { path = "crates/modules/pineal/render" } -pineal-cartesian = { path = "crates/modules/pineal/cartesian" } -pineal-stream = { path = "crates/modules/pineal/stream" } -pineal-mesh = { path = "crates/modules/pineal/mesh" } -pineal-financial = { path = "crates/modules/pineal/financial" } -pineal-polar = { path = "crates/modules/pineal/polar" } -pineal-heatmap = { path = "crates/modules/pineal/heatmap" } -pineal-treemap = { path = "crates/modules/pineal/treemap" } -pineal-flow = { path = "crates/modules/pineal/flow" } -pineal-phosphor = { path = "crates/modules/pineal/phosphor" } -pineal-export = { path = "crates/modules/pineal/export" } -pineal = { path = "crates/modules/pineal/umbrella" } - -[profile.release] -lto = "thin" -codegen-units = 1 -strip = "symbols" -panic = "abort" - -[profile.dev] -opt-level = 0 -# `line-tables-only` mantiene stack traces con archivo:línea correctos -# pero descarta el resto de symbols. Reduce target/ ~40% sin sacrificar -# debugging real para nuestro flujo (no usamos gdb sobre estos crates). -debug = "line-tables-only" -split-debuginfo = "unpacked" -incremental = true -# Más codegen-units = más paralelismo + builds incrementales más chicas -# (cada cambio re-compila menos). Default es 256 en dev pero lo -# anclamos para evitar regresiones. -codegen-units = 256 - -# Override puntual para deps grandes que NO debuggeamos: gpui, ort, -# fastembed, tokenizers, image. Subir opt-level acá hace que sus libs -# pesen menos en target/ (símbolos descartados durante la build). -[profile.dev.package."*"] -opt-level = 0 -debug = "line-tables-only" - -[profile.dev.package.gpui] -opt-level = 1 -debug = false - -[profile.dev.package.ort] -opt-level = 1 -debug = false - -[profile.dev.package.fastembed] -opt-level = 1 -debug = false - -[profile.dev.package.tokenizers] -opt-level = 1 -debug = false - -[profile.dev.package.image] -opt-level = 1 -debug = false diff --git a/crates/apps/gioser-web/cytoscape-graph.js b/crates/apps/gioser-web/cytoscape-graph.js index 9b17de0..5924d37 100644 --- a/crates/apps/gioser-web/cytoscape-graph.js +++ b/crates/apps/gioser-web/cytoscape-graph.js @@ -1,11 +1,11 @@ /** * gioser-graph.js — Grafo semántico con Cytoscape.js * - * Se monta automáticamente cuando hay un contenedor - * en el DOM con atributo data-api-url. + * Detecta automáticamente elementos agregados al DOM + * (incluso los creados dinámicamente por el WASM) y monta el grafo. * * Efecto "wineandcheesemap": clic en nodo → centra + desvanece resto. - * Doble clic → callback de navegación. + * Doble clic → callback de navegación (window.__gioserGraphNavigate). */ (function () { @@ -28,74 +28,93 @@ const apiUrl = container.getAttribute('data-api-url') || 'https://api.gioser.net'; const onNavigate = window.__gioserGraphNavigate || null; - fetch(`${apiUrl}/graph?limit=500`) - .then(r => r.json()) - .then(data => { + // Si cytoscape no ha cargado, esperar + if (typeof cytoscape === 'undefined') { + const check = setInterval(() => { + if (typeof cytoscape !== 'undefined') { + clearInterval(check); + initGraph(container); + } + }, 100); + return; + } + + fetch(apiUrl + '/graph?limit=500') + .then(function (r) { return r.json(); }) + .then(function (data) { if (!data.nodes || data.nodes.length === 0) return; - // Construir elementos Cytoscape - const elements = []; + var elements = []; - for (const n of data.nodes) { - const d = n.data; + for (var i = 0; i < data.nodes.length; i++) { + var d = data.nodes[i].data; if (!d.doc_id) continue; - const color = caminoColor(d.camino); + var color = caminoColor(d.camino); elements.push({ + group: 'nodes', data: { id: d.id, doc_id: d.doc_id, - label: d.name.length > 22 ? d.name.slice(0, 20) + '…' : d.name, + label: d.name.length > 24 ? d.name.slice(0, 22) + '…' : d.name, camino: d.camino.toUpperCase(), - color, + color: color, }, }); } - const nodeIds = new Set(elements.map(e => e.data.id)); + var nodeIds = {}; + for (var i = 0; i < elements.length; i++) { + nodeIds[elements[i].data.id] = true; + } - for (const e of data.edges) { - const ed = e.data; - if (!nodeIds.has(ed.source) || !nodeIds.has(ed.target)) continue; - const weight = ed.weight || 0.7; + for (var i = 0; i < data.edges.length; i++) { + var ed = data.edges[i].data; + if (!nodeIds[ed.source] || !nodeIds[ed.target]) continue; + var weight = ed.weight || 0.7; elements.push({ + group: 'edges', data: { id: ed.id, source: ed.source, target: ed.target, - weight, + weight: weight, }, }); } - const cy = cytoscape({ - container, - elements, + // Guardar payload completo para tooltip + var tipMap = {}; + for (var i = 0; i < data.nodes.length; i++) { + var d = data.nodes[i].data; + if (d.doc_id) tipMap[d.id] = d; + } + + var cy = cytoscape({ + container: container, + elements: elements, style: [ - // Aristas: grosor según peso { selector: 'edge', style: { - 'width': 'mapData(weight, 0.5, 1.0, 0.5, 4)', - 'line-color': 'rgba(255,255,255,0.18)', - 'target-arrow-color': 'rgba(255,255,255,0.12)', + 'width': 'mapData(weight, 0.5, 1.0, 0.5, 4.5)', + 'line-color': 'rgba(255,255,255,0.16)', 'curve-style': 'haystack', 'haystack-radius': 0, 'opacity': 0.6, }, }, - // Nodo: rectángulo redondeado { selector: 'node', style: { 'shape': 'round-rectangle', 'width': 130, - 'height': 32, + 'height': 34, 'background-color': 'data(color)', - 'background-opacity': 0.20, + 'background-opacity': 0.18, 'border-color': 'data(color)', - 'border-width': 1.5, - 'border-opacity': 0.7, - 'color': 'rgba(232,234,245,0.90)', + 'border-width': 1.8, + 'border-opacity': 0.55, + 'color': 'rgba(232,234,245,0.88)', 'font-size': 11, 'font-family': 'Inter, system-ui, sans-serif', 'font-weight': 500, @@ -103,156 +122,153 @@ 'text-halign': 'center', 'label': 'data(label)', 'min-zoomed-font-size': 8, - 'shadow-blur': 6, - 'shadow-color': 'rgba(0,0,0,0.4)', - 'shadow-offset-x': 0, - 'shadow-offset-y': 2, - 'shadow-opacity': 0.5, - 'transition-property': 'background-opacity, border-opacity, shadow-blur', - 'transition-duration': 200, + 'transition-property': 'background-opacity, border-opacity, border-width', + 'transition-duration': 180, }, }, - // Sublabel del camino — lo ponemos como label secundario - // Cytoscape no soporta dos labels nativamente; usamos un - // badge de esquina con la data (camino) en el tooltip. ], layout: { name: 'cose', animate: false, - idealEdgeLength: 160, - nodeRepulsion: 8000, - gravity: 0.25, - numIter: 1000, + idealEdgeLength: 150, + nodeRepulsion: 7000, + gravity: 0.2, + numIter: 800, fit: true, - padding: 30, + padding: 25, }, }); - // Tooltip con preview al hover - const tips = {}; - for (const n of data.nodes) { - const d = n.data; - if (d.doc_id) tips[d.id] = d; - } + // Tooltip + var tooltipEl = document.createElement('div'); + tooltipEl.className = 'cy-tooltip'; + tooltipEl.style.cssText = + 'position:absolute;z-index:10;pointer-events:none;' + + 'background:rgba(6,5,13,0.90);color:#e8eaf5;' + + 'padding:6px 10px;border-radius:8px;font-size:11px;' + + 'font-family:Inter,sans-serif;line-height:1.4;' + + 'border:1px solid rgba(255,255,255,0.10);' + + 'backdrop-filter:blur(8px);max-width:220px;' + + 'opacity:0;transition:opacity 180ms ease;'; + container.style.position = 'relative'; + container.appendChild(tooltipEl); - let tooltipEl = container.querySelector('.cy-tooltip'); - if (!tooltipEl) { - tooltipEl = document.createElement('div'); - tooltipEl.className = 'cy-tooltip'; - tooltipEl.style.cssText = - 'position:absolute;z-index:10;pointer-events:none;' + - 'background:rgba(6,5,13,0.88);color:#e8eaf5;' + - 'padding:6px 10px;border-radius:8px;font-size:11px;' + - 'font-family:Inter,sans-serif;line-height:1.4;' + - 'border:1px solid rgba(255,255,255,0.10);' + - 'backdrop-filter:blur(8px);max-width:240px;' + - 'opacity:0;transition:opacity 180ms ease;'; - container.style.position = 'relative'; - container.appendChild(tooltipEl); - } - - cy.on('mouseover', 'node', (ev) => { - const node = ev.target; - node.style({ 'background-opacity': 0.45, 'border-opacity': 1, 'shadow-blur': 12 }); - const tipData = tips[node.id()]; + cy.on('mouseover', 'node', function (ev) { + var n = ev.target; + n.style({ 'background-opacity': 0.45, 'border-opacity': 0.9, 'border-width': 2.2 }); + var tipData = tipMap[n.id()]; if (tipData && tipData.preview) { - tooltipEl.textContent = tipData.preview.slice(0, 120); + tooltipEl.textContent = tipData.preview.slice(0, 130); tooltipEl.style.opacity = '1'; } }); - cy.on('mouseout', 'node', (ev) => { - const node = ev.target; - node.style({ 'background-opacity': 0.20, 'border-opacity': 0.7, 'shadow-blur': 6 }); + cy.on('mouseout', 'node', function (ev) { + var n = ev.target; + n.style({ 'background-opacity': 0.18, 'border-opacity': 0.55, 'border-width': 1.8 }); tooltipEl.style.opacity = '0'; }); - cy.on('mousemove', 'node', (ev) => { - const pos = ev.renderedPosition || { x: 0, y: 0 }; - tooltipEl.style.left = (pos.x + 14) + 'px'; - tooltipEl.style.top = (pos.y - 10) + 'px'; + cy.on('mousemove', function (ev) { + if (tooltipEl.style.opacity === '1') { + var pos = ev.renderedPosition || { x: 0, y: 0 }; + tooltipEl.style.left = (pos.x + 14) + 'px'; + tooltipEl.style.top = (pos.y - 10) + 'px'; + } }); - // Click: centrar nodo + desvanecer resto (wineandcheesemap effect) - cy.on('click', 'node', (ev) => { - const node = ev.target; - // Animar vecindario: opacidad plena en nodo + vecinos - cy.nodes().not(node).not(node.neighborhood()).forEach(n => { - n.style({ 'opacity': 0.15 }); + // Click nodo: centrar + desvanecer resto + cy.on('click', 'node', function (ev) { + var node = ev.target; + // Vecinos + cy.nodes().not(node).not(node.neighborhood()).forEach(function (n) { + n.style({ 'opacity': 0.12 }); }); - cy.edges().forEach(e => { - e.style({ 'opacity': 0.08 }); + cy.edges().forEach(function (e) { + e.style({ 'opacity': 0.06 }); }); - // Vecinos directos opacidad normal - node.neighborhood().nodes().forEach(n => { + node.neighborhood().nodes().forEach(function (n) { n.style({ 'opacity': 1 }); }); - node.style({ 'opacity': 1 }); - // Aristas del vecindario visibles - node.connectedEdges().forEach(e => { + node.style({ 'opacity': 1, 'background-opacity': 0.40, 'border-opacity': 1 }); + node.connectedEdges().forEach(function (e) { e.style({ 'opacity': 0.7 }); }); - // Centrar cy.animate({ center: { eles: node }, - zoom: 2.2, - duration: 400, + zoom: 2.5, + duration: 350, }); }); - // Doble clic: navegar a la página - cy.on('dblclick', 'node', (ev) => { - const docId = ev.target.data('doc_id'); + // Doble clic: callback de navegación + cy.on('dblclick', 'node', function (ev) { + var docId = ev.target.data('doc_id'); if (onNavigate && docId) onNavigate(docId); }); // Clic en fondo: restaurar todo - cy.on('click', (ev) => { + cy.on('click', function (ev) { if (ev.target === cy) { - cy.nodes().forEach(n => n.style({ 'opacity': 1 })); - cy.edges().forEach(e => e.style({ 'opacity': 0.6 })); + cy.nodes().forEach(function (n) { + n.style({ 'opacity': 1, 'background-opacity': 0.18, 'border-opacity': 0.55, 'border-width': 1.8 }); + }); + cy.edges().forEach(function (e) { + e.style({ 'opacity': 0.6 }); + }); cy.animate({ zoom: 1, pan: { x: 0, y: 0 }, duration: 300 }); } }); - // Resize al cambiar tamaño del contenedor - const ro = new ResizeObserver(() => cy.resize().fit(30)); + // ResizeObserver para redimensionar con el contenedor + var ro = new ResizeObserver(function () { + cy.resize().fit(25); + }); ro.observe(container); - // Scroll del contenedor padre: pausar interacción si no visible - container.__cy = cy; + // Scroll del deck: pausar interacciones del grafo + var deckEl = container.closest('.deck'); + if (deckEl) { + deckEl.addEventListener('scroll', function () { + // No hacemos nada especial, el grafo se redimensiona solo + }); + } }) - .catch(err => { - console.warn('gioser-graph: error fetching graph:', err); + .catch(function (err) { + console.warn('gioser-graph: error:', err); container.innerHTML = - '
' + '· grafo no disponible ·
'; }); } - // Auto-inicializar todos los en la página - function boot() { - const els = document.querySelectorAll('gioser-graph'); - for (const el of els) { - // Esperar a que Cytoscape esté cargado - if (typeof cytoscape !== 'undefined') { - initGraph(el); - } else { - // Si el CDN no ha cargado, esperar - const check = setInterval(() => { - if (typeof cytoscape !== 'undefined') { - clearInterval(check); - initGraph(el); - } - }, 100); + // MutationObserver: detecta agregados en cualquier momento + var observer = new MutationObserver(function (mutations) { + for (var m = 0; m < mutations.length; m++) { + var added = mutations[m].addedNodes; + for (var i = 0; i < added.length; i++) { + var el = added[i]; + if (el.tagName && el.tagName.toLowerCase() === 'gioser-graph') { + initGraph(el); + } + // También revisar hijos + var graphs = el.querySelectorAll ? el.querySelectorAll('gioser-graph') : []; + for (var j = 0; j < graphs.length; j++) { + initGraph(graphs[j]); + } } } - } + }); - if (document.readyState === 'loading') { - document.addEventListener('DOMContentLoaded', boot); - } else { - boot(); + observer.observe(document.documentElement, { + childList: true, + subtree: true, + }); + + // También inicializar los que ya existen (si el DOM ya está listo) + var existing = document.querySelectorAll('gioser-graph'); + for (var i = 0; i < existing.length; i++) { + initGraph(existing[i]); } })(); diff --git a/crates/apps/gioser-web/pkg/gioser_web.d.ts b/crates/apps/gioser-web/pkg/gioser_web.d.ts index 0d7ac15..7405bc0 100644 --- a/crates/apps/gioser-web/pkg/gioser_web.d.ts +++ b/crates/apps/gioser-web/pkg/gioser_web.d.ts @@ -8,13 +8,13 @@ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembl export interface InitOutput { readonly memory: WebAssembly.Memory; readonly boot: () => void; - readonly __wasm_bindgen_func_elem_178: (a: number, b: number, c: number) => void; - readonly __wasm_bindgen_func_elem_1209: (a: number, b: number, c: number, d: number) => void; - readonly __wasm_bindgen_func_elem_177: (a: number, b: number, c: number) => void; - readonly __wasm_bindgen_func_elem_177_3: (a: number, b: number, c: number) => void; - readonly __wasm_bindgen_func_elem_446: (a: number, b: number, c: number) => void; - readonly __wasm_bindgen_func_elem_223: (a: number, b: number, c: number) => void; - readonly __wasm_bindgen_func_elem_224: (a: number, b: number) => void; + readonly __wasm_bindgen_func_elem_175: (a: number, b: number, c: number) => void; + readonly __wasm_bindgen_func_elem_1203: (a: number, b: number, c: number, d: number) => void; + readonly __wasm_bindgen_func_elem_174: (a: number, b: number, c: number) => void; + readonly __wasm_bindgen_func_elem_174_3: (a: number, b: number, c: number) => void; + readonly __wasm_bindgen_func_elem_442: (a: number, b: number, c: number) => void; + readonly __wasm_bindgen_func_elem_219: (a: number, b: number, c: number) => void; + readonly __wasm_bindgen_func_elem_220: (a: number, b: number) => void; readonly __wbindgen_export: (a: number, b: number) => number; readonly __wbindgen_export2: (a: number, b: number, c: number, d: number) => number; readonly __wbindgen_export3: (a: number) => void; diff --git a/crates/apps/gioser-web/pkg/gioser_web.js b/crates/apps/gioser-web/pkg/gioser_web.js index cde2130..a257310 100644 --- a/crates/apps/gioser-web/pkg/gioser_web.js +++ b/crates/apps/gioser-web/pkg/gioser_web.js @@ -11,13 +11,6 @@ function __wbg_get_imports() { const ret = typeof(v) === 'boolean' ? v : undefined; return isLikeNone(ret) ? 0xFFFFFF : ret ? 1 : 0; }, - __wbg___wbindgen_debug_string_edece8177ad01481: function(arg0, arg1) { - const ret = debugString(getObject(arg1)); - const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2); - const len1 = WASM_VECTOR_LEN; - getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); - getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); - }, __wbg___wbindgen_is_function_5cd60d5cf78b4eef: function(arg0) { const ret = typeof(getObject(arg0)) === 'function'; return ret; @@ -148,10 +141,6 @@ function __wbg_get_imports() { __wbg_disable_df908054ffee7971: function(arg0, arg1) { getObject(arg0).disable(arg1 >>> 0); }, - __wbg_dispatchEvent_29c919cea8d37995: function() { return handleError(function (arg0, arg1) { - const ret = getObject(arg0).dispatchEvent(getObject(arg1)); - return ret; - }, arguments); }, __wbg_document_3540635616a18455: function(arg0) { const ret = getObject(arg0).document; return isLikeNone(ret) ? 0 : addHeapObject(ret); @@ -343,10 +332,6 @@ function __wbg_get_imports() { const ret = new Object(); return addHeapObject(ret); }, - __wbg_new_de9891da0bd35168: function() { return handleError(function (arg0, arg1) { - const ret = new Event(getStringFromWasm0(arg0, arg1)); - return addHeapObject(ret); - }, arguments); }, __wbg_ok_556a55299dd238ba: function(arg0) { const ret = getObject(arg0).ok; return ret; @@ -507,38 +492,38 @@ function __wbg_get_imports() { return ret; }, __wbindgen_cast_0000000000000001: function(arg0, arg1) { - // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [Externref], shim_idx: 130, ret: Result(Unit), inner_ret: Some(Result(Unit)) }, mutable: true }) -> Externref`. - const ret = makeMutClosure(arg0, arg1, __wasm_bindgen_func_elem_1209); + // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [Externref], shim_idx: 128, ret: Result(Unit), inner_ret: Some(Result(Unit)) }, mutable: true }) -> Externref`. + const ret = makeMutClosure(arg0, arg1, __wasm_bindgen_func_elem_1203); return addHeapObject(ret); }, __wbindgen_cast_0000000000000002: function(arg0, arg1) { // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [F64], shim_idx: 2, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`. - const ret = makeMutClosure(arg0, arg1, __wasm_bindgen_func_elem_178); + const ret = makeMutClosure(arg0, arg1, __wasm_bindgen_func_elem_175); return addHeapObject(ret); }, __wbindgen_cast_0000000000000003: function(arg0, arg1) { // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [NamedExternref("Event")], shim_idx: 6, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`. - const ret = makeMutClosure(arg0, arg1, __wasm_bindgen_func_elem_177); + const ret = makeMutClosure(arg0, arg1, __wasm_bindgen_func_elem_174); return addHeapObject(ret); }, __wbindgen_cast_0000000000000004: function(arg0, arg1) { // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [NamedExternref("KeyboardEvent")], shim_idx: 6, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`. - const ret = makeMutClosure(arg0, arg1, __wasm_bindgen_func_elem_177_3); + const ret = makeMutClosure(arg0, arg1, __wasm_bindgen_func_elem_174_3); return addHeapObject(ret); }, __wbindgen_cast_0000000000000005: function(arg0, arg1) { - // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [NamedExternref("MouseEvent")], shim_idx: 124, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`. - const ret = makeMutClosure(arg0, arg1, __wasm_bindgen_func_elem_446); + // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [NamedExternref("MouseEvent")], shim_idx: 122, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`. + const ret = makeMutClosure(arg0, arg1, __wasm_bindgen_func_elem_442); return addHeapObject(ret); }, __wbindgen_cast_0000000000000006: function(arg0, arg1) { - // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [NamedExternref("PointerEvent")], shim_idx: 53, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`. - const ret = makeMutClosure(arg0, arg1, __wasm_bindgen_func_elem_223); + // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [NamedExternref("PointerEvent")], shim_idx: 51, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`. + const ret = makeMutClosure(arg0, arg1, __wasm_bindgen_func_elem_219); return addHeapObject(ret); }, __wbindgen_cast_0000000000000007: function(arg0, arg1) { - // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [], shim_idx: 55, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`. - const ret = makeMutClosure(arg0, arg1, __wasm_bindgen_func_elem_224); + // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [], shim_idx: 53, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`. + const ret = makeMutClosure(arg0, arg1, __wasm_bindgen_func_elem_220); return addHeapObject(ret); }, __wbindgen_cast_0000000000000008: function(arg0, arg1) { @@ -565,30 +550,30 @@ function __wbg_get_imports() { }; } -function __wasm_bindgen_func_elem_224(arg0, arg1) { - wasm.__wasm_bindgen_func_elem_224(arg0, arg1); +function __wasm_bindgen_func_elem_220(arg0, arg1) { + wasm.__wasm_bindgen_func_elem_220(arg0, arg1); } -function __wasm_bindgen_func_elem_177(arg0, arg1, arg2) { - wasm.__wasm_bindgen_func_elem_177(arg0, arg1, addHeapObject(arg2)); +function __wasm_bindgen_func_elem_174(arg0, arg1, arg2) { + wasm.__wasm_bindgen_func_elem_174(arg0, arg1, addHeapObject(arg2)); } -function __wasm_bindgen_func_elem_177_3(arg0, arg1, arg2) { - wasm.__wasm_bindgen_func_elem_177_3(arg0, arg1, addHeapObject(arg2)); +function __wasm_bindgen_func_elem_174_3(arg0, arg1, arg2) { + wasm.__wasm_bindgen_func_elem_174_3(arg0, arg1, addHeapObject(arg2)); } -function __wasm_bindgen_func_elem_446(arg0, arg1, arg2) { - wasm.__wasm_bindgen_func_elem_446(arg0, arg1, addHeapObject(arg2)); +function __wasm_bindgen_func_elem_442(arg0, arg1, arg2) { + wasm.__wasm_bindgen_func_elem_442(arg0, arg1, addHeapObject(arg2)); } -function __wasm_bindgen_func_elem_223(arg0, arg1, arg2) { - wasm.__wasm_bindgen_func_elem_223(arg0, arg1, addHeapObject(arg2)); +function __wasm_bindgen_func_elem_219(arg0, arg1, arg2) { + wasm.__wasm_bindgen_func_elem_219(arg0, arg1, addHeapObject(arg2)); } -function __wasm_bindgen_func_elem_1209(arg0, arg1, arg2) { +function __wasm_bindgen_func_elem_1203(arg0, arg1, arg2) { try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); - wasm.__wasm_bindgen_func_elem_1209(retptr, arg0, arg1, addHeapObject(arg2)); + wasm.__wasm_bindgen_func_elem_1203(retptr, arg0, arg1, addHeapObject(arg2)); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); if (r1) { @@ -599,8 +584,8 @@ function __wasm_bindgen_func_elem_1209(arg0, arg1, arg2) { } } -function __wasm_bindgen_func_elem_178(arg0, arg1, arg2) { - wasm.__wasm_bindgen_func_elem_178(arg0, arg1, arg2); +function __wasm_bindgen_func_elem_175(arg0, arg1, arg2) { + wasm.__wasm_bindgen_func_elem_175(arg0, arg1, arg2); } function addHeapObject(obj) { @@ -616,71 +601,6 @@ const CLOSURE_DTORS = (typeof FinalizationRegistry === 'undefined') ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry(state => wasm.__wbindgen_export4(state.a, state.b)); -function debugString(val) { - // primitive types - const type = typeof val; - if (type == 'number' || type == 'boolean' || val == null) { - return `${val}`; - } - if (type == 'string') { - return `"${val}"`; - } - if (type == 'symbol') { - const description = val.description; - if (description == null) { - return 'Symbol'; - } else { - return `Symbol(${description})`; - } - } - if (type == 'function') { - const name = val.name; - if (typeof name == 'string' && name.length > 0) { - return `Function(${name})`; - } else { - return 'Function'; - } - } - // objects - if (Array.isArray(val)) { - const length = val.length; - let debug = '['; - if (length > 0) { - debug += debugString(val[0]); - } - for(let i = 1; i < length; i++) { - debug += ', ' + debugString(val[i]); - } - debug += ']'; - return debug; - } - // Test for built-in - const builtInMatches = /\[object ([^\]]+)\]/.exec(toString.call(val)); - let className; - if (builtInMatches && builtInMatches.length > 1) { - className = builtInMatches[1]; - } else { - // Failed to match the standard '[object ClassName]' - return toString.call(val); - } - if (className == 'Object') { - // we're a user defined class or Object - // JSON.stringify avoids problems with cycles, and is generally much - // easier than looping through ownProperties of `val`. - try { - return 'Object(' + JSON.stringify(val) + ')'; - } catch (_) { - return 'Object'; - } - } - // errors - if (val instanceof Error) { - return `${val.name}: ${val.message}\n${val.stack}`; - } - // TODO we could test for more things here, like `Set`s and `Map`s. - return className; -} - function dropObject(idx) { if (idx < 1028) return; heap[idx] = heap_next; diff --git a/crates/apps/gioser-web/pkg/gioser_web_bg.wasm b/crates/apps/gioser-web/pkg/gioser_web_bg.wasm index 975526ba532e1a11e59a7a825e826c55a07df2ac..2022d2c233ba05e0051f121a9f45e048f11090cf 100644 GIT binary patch delta 90436 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ⅈ!jLTYp@H33S#Br@(^g+`pNm#nyoCo(1=DKqo{qJMIDV zr`!Byl4rXEVJH4(n$LCy!e;x!WCdwQf{GGGfveMf{xC%|?%uxQ4^t^4W6N~8e@u~# zEz>LhF@-R;Oh5aN$&Yc$cA5W7+Kg-uz<0t=^<|#QxM}KR=D8vtzyhGEtOw5WL8 z1U+tq8Fcg`=MQs}F!O6~;ppDX?!#H&ieV=&1Q z0M{1G8cZCJ+JaewiANDC)jGY7g;|+#_w+?9%*Kqnr(a`Xj%0i~-GG((1LMT$ifqgZ zj8~^Su`w&xgXeL;r-VS}Z#bP8YZSRaQ#TvtdMI%#@_?5j3ruDP9eRdPqQnKB<40np3vgR;@F@8 zULeZspupnTz?7xHEO2{zBnNXOR7IhbEFfliiNz|AZUYRm8BW(KwJA8<3P$by^y zpp)SkG(g9?fexYr9Yt4BsKg{Nf4U+MvjX3r1s?98V>>}-;eA;!-Jge9zkWRvC{Q$* zK*vbdXMwhyO#vNS$;$?6!Q7eWp#(a^^uN3!Bd8u>P+&wmt_^hVDde~|&=GpzD4xX~mgP$AJmH`<9Iu4Z?ewZH<yrS^^A4O42}lb zN~|iN{pl=O3XBR&0*ALx;bTr=WNe-Olb`t&Snf2wCFoBX8iy|9{Vo+oU?W$mLWHw{cP+)QFoPJ1{S(mYA`UhcVV^F6?RfO4y z@y+xI5#}VuUE6nyFwbOUTs1vZjM_i_)W_`vb(`zJ|Wf(iB&y)l^=C~xpF@Ge% zj?tH5-pF`=`a>yZamM@Ge@ZdWXJq`keWnaEFX*Cz=__QJE7&H03cc;q)#R9c*cw3W z71Jx^nCE~NbBW0_*RXv6ZB$vYeTF=<4Ws;8CPzj^CeU&+5nj+fc{?{=Mg=xU5zqmA zi~>iee^y|&W;{7vUy)gre*+^(9ccUqwBcjz^khZm1kHz_t~HwmlL&aq7^0O;gGmCU zRK}6f@jht(Vh^*xyy*?0Y%<>{{HbZM^&=y_CKOo-g?Rm<~?TkJfz?Ywc7IK4@$Nd4-RiJ7Vtgr`c1WaxY z3U3VxZx5Ka-BFd9m6fq=y1N$hTgIK+O|_X#85uup&(>k)VP?Fwy+WVahLNpj6UZ^s zcNs9}FfO02Zpf_3cz$}IA+xE=Iwm(oW(Clx#-O90AS>WOYXEt{gQRmn`oJ|Kgue&Q zX8_Bu0rRJyGGso&^li=d2}aCrOpLA5ubVJGW!$lSuPMka@27t@V=j>1GRH%S(GhkC z)SfvWir|YP%$WAfnOQ`%wUrgm_aTAo#+YPvJ2|yUqH2G1&S>j5VmZX zGrh}#Sw$LI0mzm$Fk4p4nSRoOSz2ois(}Yk3_O7_@WhVacpfzh~Mp@M%>qrX6E|EGuMIU=n!4;`jq3A?w&N9V+ff z6P1P_Tdp!V614sWD^yS7iTWuDK>*sFb@CojALh6d1FVxCAy&|K-FS%(#5IpEL8>`aPf$0i3lMK&88c0*?Z-0=qyr zlL8M|F_Qw90*5az12<@t8?^f53`_&k$UB<|x=%rb(X6CXBbHPxoY2V!SndmnX9~OorPFEaTwC zJcn(?3h+|dM_$ZZ*mgkJbG(_)v2{S$1wPCttv(!cQRGzM)?j*b%tet0v|p7;ffaVu z4tV=B=y3Qepz$TJgE$@89G`%B(~EtXO&MFKuk>XOXKbC$=*R5E_5~!fVtSw-vkPPE z^l5&~j%-IDLU;X`bs0Zx=k{m5!6^2L5q#d!vFwFl&RR1QVDQ8K+GzOkfrf`3q9V22y~eZYEgW z_M-{RNlc7ir)wlL$1r}K-kQwp3F(D`5-g|}dMlaPpKBug&P?l&%hj_I8#%<6(yV7u28I270&K?5TPQ7T44~DYUzTm(oXI?qk+E^RYc{h0qu2xR_GnPy2P$5f z94~&?4q+foqJe zyo@|d(^uy)D=owI~_EhF2Vt)PX45M^(`Y?!h$ zVBU1j5@y5cVr9(t#D0LU@B;-q3+Mnd#}{D!bgpvd2*%~plgpX4IZl9um>8zVmoYm| zzh2HP$#w%QH2qsSvm8guM(}t?%XFCvW&<|2->WuTJN7OLOz`FfRpziOV1(5US6_`PX^D_&~ zpFXh$x!VuXy}yRpkZ(N`a<6&%zZz!9#Tbl8XU{W2&YlMgDKR>N?u*D$1RdG%X5MtC zT4vp7$g%&>gWDOwg9o4^+`)^=A?LnBT?KYL=x_t@@$w+Xp9LP^p*hHq0AvW_%K{Hj zg9q%&?Wby)ir_Ip}y@(0K#Q;2T%K2ja4UHbjDkEfm0;qCsP0Y>o^9Kc+i$GAl4X zoSxXpEWy|{y{eO0hwD^t-{yrx@!WMpmx?z<{>}^UMphe)!3e1|!0-!T+Knw{b zCa3?*%})QBgFtgx3M`HiSCzC=|obCg&Ecv2mdbGa2j z<4zyI)#dhAz0874jH{>r>1UQU0)q6PL$Pnf_g%5-@8 z^zsSJ`i#@2FQ34y$JjCb+5~1-#@*9pCNfJvM^He+gi7E;R+u%I1VCLdf!)*nCNh6z z`vVDe&q>V1jJv1roy4rcHV4$dIX?aMBxVD~1=D3FGwZVTfP_wL_n*vsn31Cgv{ivc z;KOvOsm#iZho{?3WtL_7%{o1HDzm(C|M~-fL+`WyRZayVIFM4(|68b=9NUYj2T(k^!qcIMb(j|F`Won z-pmAY@O0^!%<@b#W=yx4$*je_=BK+NGic-Zil5U9XEIM`+cE6~gTVIbe6yIZ%bx(V zK}isDDjB$d0j0$iV2SB0vzeV8ATeAjR9oxh0oh97BJf}MuQIqX9sV@y~+wYDwz?qZ-l{& z2{c2(2D%G`88oX5%2N%qkAe0VG6{SDHIW=w%s$58cnu`MpXE3M#A%pwj6ndj9ZZ28 zeDe6kh0LZL4?vR#+ydbF3}fl<;Hhc`M+QYkX3)U{;C!i)1v=*qG`k@-y=W1$5aZ$L zt&5lyA||pqvVg|uSwSl^K&#T2K=azn3ha(MAoCRLW=uM;c?u1rc?uoe^AtK+0^O#>-MXQnVUhUYHk!@k(fUJ7BlDcs-?{DjS%~^z&p&q6Z$={eQ6Tt zTl79NF>+0R@64h-{n#>QCC25`UoK<5BM6>?;s9+BVF4Y@F0f$wwdKsZY zk%gy!Sj{Y&gDlO4ER8S>bbE{fvm?4;jM!CU6Nc)YUbu!?QSZ_-&@t)!g=LU4_pY-# zUT1Y|fRCGi?hJDL_y7NY#zK9@37@7PSi`K%_;dQ3HO%@NOF_GlSRDnj1WvGm=3x~; zY{$mwOahz0yOBf`SRF;O1UjcXuVuCbO`C~;w*O3TS<9>_ISI7!2UM*wXfkwxcJY83 zrVN@4P1E1N<_z z?SI!Z3&Gm{(?vHjo3I^#^oRU6GW#>OPoKY$S(5{F)VczrKYH3O*0&Y;Qg z76gE1-XI}&b`!Ir)W72{W-#^NKx&}s-yNUMv6)$33mOh0 z;3>8V%#19cfklCAB^DLXWdxx17?Xpe2&j;l9=Ms=2jnscZ|P=c9kwN)VxnUD_07yG zjIGoEY-YC8XaO&!1uepz0%C!?x1jk;rYumA2fFzP6z>8vrYCJ-c9nU<3|guNS})EI zS~DUd09!pGBJgzj;VsN@vXB`f1`Q@2P>g~$%?Nh~3P_j4ji9b~7uAzX!Lhbimz2oh--cAT>M!2dCTZWpEQ`b&VX2bhBxXHIXp#w^Fi?8uTOuw?q;1I*owi>B)zWX@sS zJ$=qWW=+P1>BkN-cQWpu9&m^mbYIH;L(FoF3#Q*Y#Jroad-|-y%rnFefTr!XGl9<+ z2d!h+0OoJ^IKnK?XmSL!x&$N%8b()Obi4xRgL3s25Dyd_3ZTPmS)s$#(`O%L4&lEt z7vySYP*VqV`{wk2N11iGJ}mH1U?~D!W4Yb*81rIA#-`~vk29As&YT`_f?1Yv$@IJv z%$oWZzzdg4ju|7;t;y_o4~r0S(2m zTwwNRJT*P!0<)_acpm}_Xw?A+D1kv7b87m>3(N}B&tG8Xfhk~wl$lIO3UnCfPM5pL zY$XLU;{p>SOFhyOMn}k!i=vCn>XC@X9TTX1!~|NY02<(Yu;~DUKsjjG0@Q6_a0J!) z;AWpIFB7QpfVK#kU3r;7$;^xibY3uMl9Ji+3|Q;*PZyaDWn00^-ZYp5lvto!GeF0K zDlmfT@Yd-LmzX_Wet@=IfGPk-7Do-(YCslv5f5T9a6e^&EXx$gR$@e|bC?_)AmcU6?MOG#Ug=s=e(z=cf90GaZ zZV;$Bj2R>#QP7RLppJF<^i7wUbxfXuDglg1LC}SU0+U%Wrw>6v{B*j|73OrN$*ZPU zUtyL3(KD|w`+?|}SD5vfrmUJSd6ik3@!EFNtIS@Ekg`RAamn4g) zolk7)?is0dlx9Bj_wW@Vxr;DR-DvL7DOna|`2w>GpS-y%`rw z@4m|nTDG|5E?Dl?U1k}M3A2uY?(` z0?M)`@FpdJEP)TxQ|>V@5S|0l$|SG|bYwB30-FMZz@q8m_nBQFGXaZ;{r~iM&EW>zsy3A{4d66TK80T=501r25C~!C)o$mjdS;iIQX$20)!(atU zoC+L{9AG5|3LFZY3LK#H0agu`SKx3I0Lv;k{sbL>4nBN=U109?4X>G{89z)v^P1TV z)CvO^*PxypPnKf?Xni&>q!p$x-SQ2ypztT~S|kR6d*Eg(=m?EZ(_`N-8?beN)>7WvSI`P(iN(sm-Npo6dXTNe42nn4#2h1{Df{a!vuzZ@C5)g&^NgUS7oe*T7#%x6=dxFW zj-HT#jVeeWjVeH00$O&9y8aO~JSqbkSD5&Y*`M+0^oQ@5r7>$nhhf+tKtt zGkb$(^J+dbYcPFUHhtM=NUP$+XUISW_ZQ|ewq2l|+)UH&ePNbkp0U(z`u{J?GNQ1F zE(L}xN6=ls3Jlo-*QVe6!mP~nXvXw^UzlZaC^7iT>}>FX6?|wrXw4}vXtb#w)aU?@ z^8JL5_x)m31hqzavIPFHPG9_$xmI{3GiZMUwC8pPGNfVrjoBMi$uxXpmITqWzcCwv z=yTtgbwHKQpKstwN8&qkCga2DP2ZVA7jYMyA3${UC$j(} zJ3a6>vpQqz^vd7NI_aQXa)A+^IT%$K6c_}U6k(lc*f<+#SvhEu+YEBo9|yz{ z44?)YgX51K2N*yDf((!x16n_N22>2xnlXWT{{mS8ho|%YVb)}vG2Q$RvjrE(PRK@! z>6L$&okY(}2klh=9Vg4I!NdR>d8a}lVtfi~-y1Q@v?i~l(Ua`?F&*MO!9j!)0K5c(@6)o}Crc;$J(RpAn>Sx;Z0A=kydt76Z7}>2nxaBxN6f z;=LLX?^hOqHqj`6I}B^5UxH}=1<|g~#Nx%X4K#WRsxr6)woR{PVzFV`yL|d?CKf5C z&&#G?XJRpC`ph`}-b!XM8D?;iDF8a#NuU98t`lhQHw$?0w;eM}F;71;H$S)I1yFDu zpT3uwMNYSk1ym04F|#l-fR2#XU^+6_Ly66?-Ur;kWdom0as<@I)nGa?cRB|Piy7aE zxgL-KHUPip__Q}3@FW4K;@|;~gI;A}ac8_TU6z$ao$Ud5#Amt}D~lZChv}KD zEOKJdF;lQwP_G#j0e@Jh&t+waWrLI&)7V(N7`ILLWX( z;W1B_gGDy%0O-*BbBv%N7f??KJRc_FXyW!bx6SF1!y4_SSQ3h22h~|$=(W(x%P(~ERu|yr~l?) zS;n{#M0rhr!^slEG?iug9}bpj(;slLNP#Bs{&2CVYe1IO$bjx#1x>OtIZD7T5CG+0 z1<xw{Ub%Dl11lCMH%flisxC1mt zY$Wgq)DePAum0s>NswK`s>sd*zW)R?tIMLu&cg({Iu>Mvz}4whyexB}W`f4Xpk}fO zteLLOhhZjYe+6-7noj5CXNdyY4H|C;1sbTtQ)GkL4Jve}xA3#HGqz6W5nz#KZ)F2d z7*CUB(P0Jkpm$G?7hnm5^ouNXN$LbmPZVJBhw4PS%#I0kav|QH&`CiS6~-yk-wCqV zF@B$}E5stfIAyw<5Q`b(hv~IKEGnReB?D+20Mu$mZdmRRVlkHj%`j*%f!dS`jE>M6 z^aJP~hZEB|g;`udm2iMCXrsld=~cok(sI`zM>m30Dll^|VuTGNK4Ff>?^^i{dLM#Tvf=}}W>jibP&up8nAi^Rl`~b8p z21Rq<^oJ5G3XD^x_erwovw?0<5coRXQ4|~iK9Vd7)2l>TEE%6n-y+JgnDNK-2r-so zh++fARnzxN!qhp!1lJ%5Doj5l&XNP`hL}jOL^4jD-Y0=DVLOsyxCs-G1Qn+LkYxG6 z_T?IA{m%4nQY`KAH$Z)C@CX!>V@;M46E6b~6E`>Lawl#DM(*b6bEH|!R3X`n2ef)k zfeBPNfLE)D2-Jfb;?TL%Z`12!Smby>OBO&&x3uw=fkt~ZDC})7GWN6M{1kdFNOk@Mi6A4_M-YU!D z%(R(t`hnZbphNgx$g+4bzL{<;#}dW(X?mX=iG|?3J{Si4*>VJIz#h=LCs1e1kwgO?Og;uSU;(I; zL%;ww1r|GjHLT$E>Jaa;2wa^WqQK%lT~U!`9ggAZN+~jf;R97)*(c^s zf1$!+AhMek)CSoz^B9BUO9saepfeBVPS;UoQ3Vx4;QlRYF?48phAPV@#-G!r)mVHP zcTdk$V*y>fvp|hS#N;z*p9pACp%Q}z6KLlq18CO}2Y4Ptff1u6!~|{$y-;H@WP`SW z&{c)t?oN|BON#1sM$n;A;GK&M?v4xs$B_A;jrx272N1 z5Rt*LK1-27f!T?rLy6gmAqagfA}B>5x@bEzSu9}-5lPdjs>KoxTK7`m%A&vq-m<=X zy1xO70&4mO4N=t_u((f`)@IRUY@P0^&60*g1(Obo3FFu4jk@6SG(d+X1cevGtRa9b z8^kPt#^*rcyG{4gW8p(Hf(1oM5VHyzUjo5DpwE&4^`8o8X)i9XRWTl){>y+xMizAQ z9b}b@0;q|t0y>@W3uux`M&J?a^dkl=hOD67Xb{yJcvUlS7eQLWJ&e=LSWK7?FoExY z5(5oQnz2YQ?w&4U#Nx@gVS1bqONV$ra!2?AXq^kFcFUg5XvZRqNFxchEMn6q*s+LA zcQR%PW17G`{ev!xIOCM*0Xi%S(=QpbgfK3ju5Q8-BEOFbTpoi@;!~~#=s0w<;f*=d?M+!kT|h(PjG)p8bx0i4Q|0Hz z+|&ZvH;6HQJ$;5L%N#60l5WN#FJ=cShd`xG%Uloe{#6jWWBMF376Z`!T{9MQu13(E zB^+4-{~4$AnX_my9blTCW5J>ijT}XHf>CL2$zsU(a=N_*i#B8bbaP7kxr1&bErN{BIYrWabW$S|&)-e<`YCAWkMFkOIMb<2B%9j~I z;f?qFnCa3sEczmlfl2V`NRYk)tK-q>aW*WH3ZS|!k&zKGT@Tu2%FEygFO{a-upC5K zn_$ZlhQb459-=%0?B=3 zaD>Z6;)?<&CzeFU*6BN(SxlziaAMI_egSGPfd-a%vK+xR3iw1n@DX}Xz)}K>rfWE} zSS!!j20o+^l<6TSiXs$tfTaW$O>c8%F=XrnnO?xSe7dF!iydR*^b8l45JZq1abeMB zd^-Ju3kzuWL&TK@G<)di3XY#RR~9qY-K^Z)QPV%TvxraM;L0L|V($X@5r<$0!tH(P z%F@i}H$BshC4w;kL|IS&>&BwY*bB~gj0dONxwEK2Mw}Qyi&$7eEo5-B{^|5ecNWn3 z5YydR3>d#oKjF?I!+2o&Q+F046q`5Tu-VFkrI0ay`Wg?GF!d{p3Jjo27&t%|=4vqU z2!Q*`te~C5%%D@_K;3`P2$ZHLi=ti+sCCQ&USZCm1n#9n)iZb;X>KDwN{?(U7S^W$sBzPTff+)~=Cu=~AdmsWb_T;z+5;FFFEb2rDBUtg1Ti`H% z3!*?_4mw}g@dt52g?n$vp%SWFlfOg|XFqQ=-f{bwMHv?r*Hf_Brny%?G5LG$n|pb2>mCI&@j z@Z1jU*dfSRE#xR2&~AFr@F*i>YKOtGVY*Ksiv};KMg?uzfmEuEfh<1gN$qwZi!5V1 z*mA}x(?x?=JQ#ORj|*avX52WvDu~4foTM0GNs8H#0g|N7hq1^`e-XqY2$pAt$uq&^ z1A|$lr)vhY2;-L5l1Tz}HXsQRs}0iAHwCkpFjhC}>J2QX+A2d$} zK8JzG4`Y#@t`Py^JF=KS>RD^fwR-o!dZeuK?MRh zkU>sng*o|bIEy9@DeedsRViJV+d-%8flCZVm{zX{78NO5m^`M@9T6;U92Y?KHLu_W{lgW^G32*Fs_79{nP6sS;Rz_Lc4&_Lrp-d`2^aguZm=GU|q?~&22ILK{AU1 zls-MFVS^07-~oNfXS|1)^D`h5mpJriC7%3px9Cx@|Ozy3hwuC5m#C zFH{_)9x^)P_yBwgE=2q=NE})`K+Rbn%>ufL_Cqv_8snPj;xR1xyg$AjU~trMT=4w> zgTS2W!7(gq*evRfVUd(F#0XS)%GnpgqF`c#Q+}?80t2W7U;z!*J2JYNF)?r(GBVW* z9GWf^%VLch)9}2S6w9KFLuytmiviQOWz)~Zvgml8fXs9=I`V^Ox)~hbw;o_n0PSJ~ zH8^$QtsT$=7o+1z+^VNL#<9o?tl4{nK>*xxf=5B0zGD6{yA^vcZ+kgt7)mRMReOsU*ACO0`f*T~D&;zeYQefiNm>w948ner9fNRcJZJpv%DE$W-F^WAAjiBo@=~ZOq)<3Xs;dB4`~KI5Zp?1YF<_5pcn( zzz3nghg$`tl>xbPVVBGzi*V2RBoM#rn5e0yfkbi))DQN~5n-BVb!5YDbl zVUb4g=A^JF)PI_Bg29nh;3>FPcl-|Gu?Rc`U2)Cipa2SiBU=tII2wWHITS#?WYl01 z5M*QER)7T&Rs~u}3eN1pZ2~XE4$#sJBY{WLJyKaLl{`R45J56KgF7g*!>xja`1Hl8 zEIQ$!ro22PszI|E;KKaCTn{A%$F+lg^?88rw-@kp->O=9UE6&FIJpxonp~U;?<}7HDUj z9+<`=&A5B|{d5+8r3ZVDFo0HoJAxKxLG>trjzHpNfL=BC^VozbN}EfRDn$(j9VO(s~H5+r~l7j5ogQ*Q`4ViuxL)V&t&0e zoIBk=lSNA610%N>L_5gSU>0ch_T}`(Ocqf~e{LzzGB^fJrY$qv%$Y#LoD7;wYd~xU zxYQC57b-Oe#Ae_Yn=Zh{B0Bv^CW~N<6SpwfSZJnZ0?q8WaSNe{DKHCoB80#NjRLbk z1h*hel>(&9jNujl7bsBf{ON&NEb8?yS>Xy9G?>87XXWODD-_tr$PZP(0*X=&1x5k5 z7EBSal~6+<_9Ls|2TOx05l~Kb2DzsmG#m^n9Y7o313@Cl0>RuO43JT(4$uI#BcmBp z%Ulnf?g1N*Vmq=3C?p*lW`S0cfin>(2MJE^$Y$X)Tm%jTMvw;~IzTy{2O0ycyR~F%=!5#3{=7|f;x5f%o7Zb5}=6Z1MSlO4Jz>!KwNH6=?-e;KV{_Rgn0Ke z3z!Akt zdf6Btj6W<;#vEn_?s{&}7%!t0!;FO<+*}NxR^x)X9V5sv_aA_D_M z8WRHp2NFMniGe{1iJ#5Hz#xmnPiJCa5Mp3p$jvV;PR-3POGT19INha@ML)AZP=JAj zfq_9}oxA-vjTn0dh6ei*s91%d00S!n1B1uID*LpwXLfG_E$nKcVoibq3~USx46UyN z?a!X!vDb|0x9fn4^+EN6#FiA;+8Y}e+fSN)r;#O`apiQACKh$U044?oX(Y#Nou1Rg z;;#FQk%57mfq|hQKQpf+wJ0UOJP+>oD~t>b5=dHZOn=bCvYWAU`vzIaCVdWsB*1dRW{AEg2wz3KFtn zU|_JGp3})9?`wl3Y|FsFV8_6~V2>o`z`(%Z$iTpWtj>vnfx#I~40Kk5>-2_RmdCO_ z3=9lBPzU%jKmf>A5cZqi(8r=K=noMEJ0Bz*Fn!Kk76n1qqN4mF1_sbvBnYpN+y1tX zlvOw4R{R^V0a7Ve}eMAKn?f~rGG)?|3l>&Z6F4-LTOGL z0R~s!jz=*E29^*g$-!2i0H*<(oq_Sb`NYFxW!*_BH|x zoS^IkRqqXz_lNR>p!y@A{Aeg02i2coBf!AUz`&3W60c`qV92r&VBlh4U?>3zFfcHb zLk+BkYN&;ZH$cT(pmYb6?t%JnB2@iks5s2L=}-sFg_^SfD!;@=fT11~=gXi1tDpv~ zfoj+UZXSe+_l;2OEKUaH9JJ zHQ*=IfIm-~!6j zwjQFt7ASukRKqblNJ)4c z%D)bkzi9_aln#dz{nnw=p3QyU7-A6C_l^|l1;Oq{9Jp817RUtWiP-`FU-Ke&Ie z=m2qGKa@WSD!&-YU*=FR0B%|BfC}t(fCT9&DF3VjME*XM|HuIn=P#lBH&6%vfbxGs z9SDmO7Dq_7paSKqLHRmRzMdl_pBqE@ zrcnJBP`(w^Vmm0`0V?kd6|Z-P8t4mE;O_|WVHi|lB-Da9sC3%U^fibD3^$VcZw|9bg&=bT5<$oWjLa+b>1496mAL0Z_Bwh^~UluXTc?nY~c{0Vw~1lR!PVv3c1El20E(6+Cf* z#QA$D{}VLGnVlg)&gKlUKnThgb%q4FB$SqQhJ>6vR9?v$5(OGiaV=*^270TZF>Cqo@L1InKTm7fRYFMwLG49Z^tRlgR>Uk^36eiKw+3)Fxe zQ2s8cg1u1s0Mx)^Q27&38YX`VYQcG^_(f+(D!&cYf6p0GuE6S!rx5Xah8GY9!)s?q z?e`hV{{{^aCKpJYv${ZnR2a$^gYs3Ne03K{oa(qhqEycXk|vCxv>BAPg38-~`SlD8 z4p0M}T_B0X6RN-)YG44A9|YFGzz_!IM?mFcq5OELIZ04{3Y4D?)t3#W^PzMxhz8~V zau9=ofuS1efJUeR%}@(Ep!_bVx;`j>0+c@m%AW>RKO4%Q3pH;sl)n_}pcPR5Di;BU zdQe|)E!3cmPg8TQZBrN^4~xW`~~Izg<8nw z4haEHD9z&z$^QcGkhCHM6&H1fct9S^uV-LTa);!54X8pbcZiS7!3r1{tlS}OKp!aI z-yPzkSSUXMsvg#g&V{OnwW8~x>S3+uUZ}$+f@o0wp9)p57;4}$cSsy=h4OcR6f!U{ zz;ekRsQ7*;eF*A-6HpJFg3@Q8^5>!SB`AFrO5bpY*8jKMAwm8WD)GV{5{Dn5{4Y@Y zJJcb+q4F#qkRWIGfCM!+l;(%hF#W1U^~d@Bz~Hui;z2Y5iD48~9LfaC%gzt{uPWb^fa_WwIPAgx$fgJF&bB#vQ0 zxXJ^PEjM~VO1e!@i?%|2vJ)zQ04jdi1Cq@yLmhY(s_rIK{tlGBUk_zG@_^*ycToOE z4@eaJg7W`D9VqAt333rnNGg_t@)bQHxkMAn*YSiTVoOg*t!U>7G0z<;?*-Lg9|9E! z_k<+6G$=pQ6B48~Py-r0Awf6^%Af8D38AG>^(#CfA-D%Be-LWk1*rUGDE|>u{<$aE z!}ScGp#ndk3fR3MKIHO(#G#BA#0QFA5DQG9@)ll@D6xm~oxH#XGWbFHfnE>?#zXl@ zUXVnd3pKCE3*@1C28L#+KnK)-DNqg5y#yG<85kJWLFG4tH83z7f$~p64ZH$Xf87fb z=g*0D}N1|7$=6w7nrgZs!g0v9mYCfC#93v^OM* zvY_($-jEP!hRU}=Etn3KpW_V~(AWf(-|7uX1N*!ox$TIz07E?=0|Ub)sDi8BkRW;h z}|^`1VEL>dU?hxiE8 zgU4zUp#mvBkRU3B@+*8Gskjx&@9=@d=`<*RrVpgxnG2;CLM>kI11WG;Lh02|dM(tU zo1pwHKJ^fn?t%*Jfhsr%rnZ-Q2F~%^PWKY&!GI* zQ2yI`A4n?x0u}fMHRubHSM!DVR0GP__JxFqK9n~0g?P{s zs?Hk9cZBlmouLArPy>9R8UvsTf_xzkjD*U^_(Bp>rnkqp#0~)0`=fApr25IKTrjnevlyN@q?spK`39u4-z8MP`;cWq$q}s z^=kM*3L+DzytyAFO01!@JyhJu4-$1Qe)SLq9)6I@#S^N)2dW_eN{2wj!=e0WC>;-V zUPOz zJScwwlwJfCU+M=*w40&)ZGMoV{REU>f7%a{%I`x39zkiC0Z*a)7f^#=`9aEw-%#;? z&?w;WheR2-KO~JvK>5=Ckdjpo$~W|fM3F6oU(ev+4{=ctM1Ua_%1?*#v-}~cx)RE- zfy(zm`4jyiX<#;#KhGbM>X$+JE1?eB2IcSchlI#+Fu$IG;S^NCb+7;f!!3VE(fSI? ze+#wnKa|fD00{x%0Emyp0wC(upnS~$NC=og`Ib<5Pbl9f0FrIPL3~gp6cqq*Q3gnW zfq@}A0OBK9f4wvSl1M9|@-+dFAnbthyP*b7gYsuW)z5|U7eML7P2pI-KqR1o=VxeUq#Dms> zkSK5qgf>Dw10g}|3#9|0bSTt-h(JgP#XOuMc9aP|B5F}Oqhw_<%AqMgUL!yX37~*4LC@mfgagYL3UKuK` z4yCn&!9mPm7z_zfV<_Je%C`;{V5kSJOt6O<;1mprV=pM*Hy9EnK~N1LPy?c%{1~Ww zB9xyD)t3h4XF%2GLHPwx`C_O8%Yy~#!AoFjp$h7u2DU)?ZBPgG1w-Pr9~vSvp$5$f zhUD`VQ2y#*NKw2S%HIby?=X~q3>sqRq5Mn1^$;Ikhgx_O>ax2~`e87n!2v5sUO*l2 z32MMssD-Q{kSO8^ffOvlP`+3QB%3Ki`D!5$`?R5az4{PH99uvItV19c!shXupa#O` z@q9xdX(Sq|J}v}O^5sJL1tE|$QW64*^D?M;wNO6DKG1@s78t(`s-X)?_k} zf=&xc>p^KFC~XF%twJFo{pyCx!x&}%&KVV5o1y`Z` z+fe>psD%%p{6|m&oVHpui1D*p>A{|Bo7Ka^$)gG4o37_|Q9gbMINX~8f^ z9E*oR;#3mKmxuBdp|o-sB$25>Y0WT5TF`^?4WYCNRNNA(&l<|_sfVseaDXawhAMD{ zD)55xeV{aKX_X&TeIV4qp-=}#L)FEGLCTR7sJe8hc`$wslwV&6)ldu-sDSdTp!|BM z0ZmXEwm7X7%I|>E-B1Tigz~3A9X12XpB)CNTNXq4%OLXg46C35YoYW8D7_h?fMGk7 zzYFRhnEZaIg-4UtfNyQ0JIt3~YYcHfh^<_fo9FTI;59K#O z`EB8lqO~1r0L+43sE=U!r$QY#3+j+LQ2h&_^b)AK%c1722p6aaFOP*8xEAVT*h;7^ zPz!fK4cr4Y=m3;|2iLK4cCf%280eANg@nt}0kBOp-*Yp@vBLlsy;HP}Qz z5)sUWj!%kq28R}uuNw(TL$F0C7LgDOU7_+Gk&p&SB$OWm<>!L< zp!&Zc64Lc*0ttW?ghxWsKo^wX3*}FO@~1-iv!MLBQ2rt)e<_r|3d&y#r8h)E65p0c zNE+E4DZo$Z9Ke-Gt< zg7UvdLKmU@f(rbHDqxC&xRfml6h{mUoKcVv;e+x8p?onYUlPifgYp%jd^IRv6Ux_v z@(rPUvnXi&ZwVE!gDP-@^4*|(PpE@@q5J@-d?=J30p-U+`3X>dDwLlA<>x~A1yFve z3{;>3Do_jMH$(|AuuWg1!0Hd~p}`ijtc5Du1XZ>b%HIX$?}hRYLHS3a{8Lc=*(gZb zz6#~vh=L@A`%wNPsQfD^|7{esg#H8-_zE@f7nJ`O%4dp(#1v~ZB&N8aeBNkCObSBz zB2alrC|?H3SA_CapnOdzUnd&cLon>GerjEa5CMhqFNkF~mU92x|-^ z&2Yp(qKq#F5+wpqz8IKa&%hu7)gTKNU|^7k@>QS)sK-E3u^yCf7z0Ukrcm|fQ1!4i z>^4yK&QSGkQ1xC=^*%9>S{}T{9aKVxLKQ|p6~;j61gM52s0Hazby-jYVEkgJco|fE z1(aV6rR$*PH9`5UP=03&w1?IW4U&ma1yf=mmE2+|e_0G<;A0zV3@&}>( zBT)I1Q2rSx|00xs1?s`uQ2sp#znq$h=@VeNkaM3P#U&VLpC0gMqqnWRG{W*LiOpy*FzK-Lj}yBv?bIaYp4bX zDBlTYAXJ?X)ImW|ekhcVh=-(=7^r^OGQvbCA2!{XRu5GO+iQ{qwE)I1jE5wm8mPe_ z^`Iz&@mrwcu&pEQQ2l*S2Ty=nI2EdH29%x+m9L)*^#M#^aXh4du>q=ZGgKbN-wAc_ zUZ?^4q4Gze>Q6xV=b-$HQ2zCJNYQ%(s{amzu4i}vRS4Uy^BC%4*k+j*@sND{0jlmZ zl>Zyb{|EIkYXT(Aa3nyAT0tmZBmt6ZV7vB|pz@GJ3CjOa1+YY6nE=UFusHKbfYg4l zIEzStI0!Z?pO64alxa{4Gok!^D8DEHk`~IKbQP4YOAugS0_Fb(s6Y!;Lp#)fUXTI? z28R9wNG_NHm7fk(KO4%Q2bG6)0T)C0u+23qpnTXQ{MrOaqTiAL9iiC{HE=i7!o5%* z9)((P0%`y(mz;&FhegRnsDrOV_1}c@??d%Jg7RNLQ2pId{zNE$3Y4y&4z+M5)PT8Ai3LyxEQQK1hsv*p z((9r0W~lmYPz&}z`TL>zk3jjyq3TaV%{!Y2PK5OgFo7#j4L6|*ZbJ=x2TcPHAsQH9 zY2pP`J#0JC+eAq135&AtiI9>L7UWDxkSOLzf)qrYV17LV1Ah`EaS0_s63r%P^(dYM zb|HftR9-O&633cQz7ABqA(U?dHy_CL*-!wn+Hf9l>cEq@PR7yPlBZK zKqx;1$`1o+0PO;Y@?)U<1gN@XC_f$Q!wjf}kPT4`47o{=5P@y5sz?%Gs0ZzLhh>|V zBuLp0%Qh3C22X)nI1LWrBMC~sD*2x{0&g~ZBYJBD7^>j&;v=(`u`|Y z;sn%yvrr4qLls_z%3p)Z--hz>>~Bm?CuLFHAUd~K+_E|hN!l{bU(ZJ>PndZ>Ua zRKNqu_k;2Sq5Ne87Qu!Jvy#ea53(y^2o1p5pLg^h)^Y=m2)iWG`8h8{Uz;GO@ z0M>#z3)Of5N?(S`--N2a4b}eu%6|k^_Y}&14t3aTDE}>#hU{UhXJB{_)d1VX_6f>| zC}3dt3N--cqo2?;0o$|2m;y;FFg{BPBn@#w#d%U7X+{Xj7fpebD>5KHDF4f+KoXfc zNPvNXK`R9kqDLnXSP zE`}M{59LpR%1?)?pADtwL*-#Rx|cx3S3uRThVo(C3fDu`Z%KjH|J$Jgd!QQjLqi0% zGxH$SfTK|P6HxVMq5KO_{#7Xd1~kgHBk9_sE=U$4yb$|RDL3qKOM@S1*PXg?OB)#%60V&3@f1$Yrp~w z3|pZ5?NA5of%5l54Ll0vpGbw&mRF(t8>x_v#xp4YCDfv~Q2HZO|97bTFOWDW|NjFq zKu0{JLE;P+0vu32Um7Gx1)zMfG)NFiLiw=nv^GG28v_EPSD9vK1_ag8g%@B0n~s+ zP@gP=TDTHw;5w-M1}F{NM865@;2lu)yP@h2K>3HE7M_Ok&q3A0?7PAVmH6yD-O!3v zsvdND6dQDjzzeA6yHGVBp!^?D{_iwMo@YvjqzBe?Nc3^0L(&U(IwZaYpnM^yycm?0 zg3@wOd4+UnbifQ$O@|~%ZKwiWs0KqQZ3?Afp!JLOQ2sV3e+N|kJ}CbHlz$A$H$4G$ z(P^l_St$Pk)WR!J4Y#23cR=FPYiwBM!83VpKwJg}h7VBs3zYr=bq8c`Bm=`=s5oph zCu0UArr9$fNr@{1l63f?e4z|Tl7j8!6oHD1LusiDfqL+nSaMJSMW})5P>q@ykep}; zl{bOP!?r$JLHQ0)^-dX(v<%zu>jrg@H&nkLR6R^SBm-KLheH)aK{dof4NQa@2wT*h z3YCZL7|zOoq}4*G{t~DKRZxB{ln*QIo1y$psC-X7RA3TRU@FwWIZ*z5sQgkWe+86Y z4W-vX<+nij+o2BL4dw5HI`}YD-AO3_98|vkB2?fSRNy95;r$FqhxY-L{|w514psjK zs{TFH!QY_#pHMzSCL~QTXF}2lXC@>qa6|cm5Pm&_a3&6WJ2N)<^UO}LGlm{ z42n>BRj9ZIR6lG>lrGc)*lHBxOh^=2LDk!4Lei8gm|xGp-~lzz2Q0wA;19JZ5Xuk9 zgfyaHX&^QeQiH>yBr6j#@&`LrrV=XO2Hla|mI08ayoY)amJL5cLjbg88obx)H&g>i z0MxAf2Mto@EJz%(WkKSQ2g>Kqf&{4;lrNbD2~tHUUnL6?g&I(OdQjQ~DsP?zX@-V_ z@;}HzN2q}wPzByukRXToClx&s0!k18 z2H4pO>e-NN2HSUUk_}mr1lxD-mJLZn0Z{$H*^q1o+lQYB)ekFb^PuuIQ1$g-`|24O zTA%{$P#<+e>Hcg;s-Fs#pOFno_4A?pMNs(_Q2uHtAGR@IBUF3~l->^25999x*#pY| zuti&kKmrU549Bt|MelK_foGuxTmZY6fdN)dT+N1LJJ=M$U8p>)+;{}l{{pK2HI#k_ zr9WmvXY#&51%5&`{D<fjXc8%5R2R2s>Y+1Ih=ls{Y*0QhYBppfs}l!p%!g~S^(p3g&MdEs(vq2{vb4D4nz6Jq4KAo{BuzLMW}r+ ze*F!o1Z*qfZK%aC{=*zdHiI2$_8Q8Eoj~#x>Lb`@k-t#=%(;-X!j=n(QXVLuA4&`5 zf}^yaK_nNFXe6N$GP#g^4_ia62^H7Lg(OA;DBl=Ln?dzkLkwiFg^I)WVmLq@09)Ye z2Ic#J)zvdF_(KK2D{B}S7($^2Mu8PDFvLRTVe8Y9p?ug>VrDKhjX>2GLmgTUO3#Pthb{bH3RS-xO0Ud? zB)W}I^S3}f2;zh5|D8~YJy3~*Q2r69!Ka`W!47*kmkUV~H=ycn=R#UQub}+5Q2GPZ zysuFH52$(npyuUzLGwRT9%PPzHxH6%1o9w>MhwcAg!1K~e5E`{nt>hms1B9a%>ySY z2K_upS}}%-TSE204i2z^$~)viyN<3<1HGWMKa>uE8W@%biDQ@nu~7LWsKKdFc^E$@ z4-(|C13pTi7QzkysetN#R1ZDwq892>*zp(5Pz~)+3%a246QB;71m(|w@@GK}gdLSI zAL@YRQ1LZT^EN=u+YF`aw?Pfq0adscDsccR4m&~Q5LEs+RQ?py0T-bB%TRgPrmq{& z5P|XUL*<`9>6Z}w^$f5hPToTV7`{Rc`~g)6JF?_2R33I@33EOqN??4hd`Q~i&4NKp(s!bB6Sfq?$cMK7uRtYkKn=VN4YIpX17YXtJc1hd0xJGCACk|%LixX-i4vxsu>g`t zISL?&lN-txg7QV{3m}OOb_$FXQ~`{y2<2-)HE2WmMo_+K0W`Hk&(*OkfFxSj!9Y$0 zkPz^I(tc3;f}wPM1k}KIsDVjP8g`6LDpVuv*qUspg|K67@}UO7)R#cbgUMGzERkF)fOITiLHYoy4t8wK6R3k=r`EiLS_tF6hswju z`vT>I%>(8CpU@zK9o)lE2uU=sgL>EtA#u!I2uVbIg^)BO45cNYH0<0SS*U*4!9FU5 zkTe04*DZu(TabS6N?!^=?qHK_a@DE~f`{}jr9 z0d?>jsQ4!+{R1lh8!G=F!I=+q2_Ic>e~V4*E2A{PJ!P8)o=)^;3(9ihrb+ADU47Z{5 zeW?0}Q1hNc`7fdB-$3d2AoD=^{|i*$JCuf<2K5VSAZ#`FKad6n1_syyd*)(DlyMY8 z(g=4kB+Upx`JzyH*jY_dP;pr(txyc@|Em^5;zk{+K?lm$gBoZG<(n5n5~(%R0J~yH zqBMoBeR6@ydq8O)C>;P*9}G1=0?LmrhUS0RIr|Avi;|!UQlT1PTL`kC;<-?|04iS! zKERQ)@sc`*5JPzU^h>Z|_`HIStQl8D$#AaM*kpo<$S&Q}6SBLXFmI2S8{l$7F7 zzATh42j#0k^{GS6gYC=HE`cOcBZz!GgDHf;U;$NV1LfO8Ep&v6yF&TyPzzwEN&1#R zazPMOUno>vIFybofz*Dm#ac;Fb*W(adIpAcsDZEv^jxS5OP~tN(d28P4r+w@xTypZ zWnED9y-)|i_ODHXnl}?FKL=_acW3Yf_7^G+J5!CJ6q2T3=CPDQ8X#XwpeuR!N+E4Lm;sWdkVFPEKprZuRSHR@x}}gH zH-+*opnL}?-?JFau+t8ekSCLN&lFNQbJ2 z9r~6HbwDxHf-)$-4$5zY@;jmY9;kj3*codRpccSRiJJy>0L%xoq4Eo%1}uRZumVc2 zfr_s$g=Eu>Q1#oP;=7>qUa0zmP`Vzrs^TbA;3Skj3pL;}RO2gA#GN>IKURGl_dzhN09gp9%B^$ZNK^Rz6=Ac@KWYJfA;0NAN=?qCfJ z3_ehKe<(i$$`6NH08<|el~00Nm;yBqb|6>=NIfY3=Rpl9gld2tQ&(07NyW8L`39(b zE0o^>GJt`Bp%2QR2<5|;5>1ElVKW|cq5Q>A^~=fx80tY+53Pj?Y=A1*2IcRBTDT9& zKM0jS4&|SM%AbewFO@-xTG+{ix1sW|UFr{@{HIX$FUp{2Exjv)B$D?~3%)}6-=G?P zLpA(^h6rmpBn@zsLqdoj$`>k!q!Ed7NE}N+`3g|JQaL1zK@a+4P%nq}|6vZ$h8m;? z)nHH#PNfVcP;qmpg?3QBBh*0H#XoLP3t@a8sQv(``d}y@c9LOuJ=8$hxp;BqkVFVm zkOs8?cFtZl)PQ`bfkjXnwyCld>VRsfcpa1vJBhFbD&7t?r@k9%0qlyC2~a-xBtXy= zMlb`Q8s|ajh0qXM3^iyul)thZQntfV`Q~y+R}7Y>4wgf@Vo>|)87@K7cn2EvZJWT}Ki8SHcl&Ps@n1S=tFLZlKBBGOR4TqPv#6`*|ON=OuH zRzmy#+E4>w6ORT^4X~pLji4G$p|nLMBvIKw`Swr)U7`Biq2|F(F7$z_gPm;X4^L-|Xf{N+#wz}CU8h04QDsow;R0vLZM)WW?`2keLN>lqGLLQ?4w zsDY=T7Mz9p$OC!_+*POrF#auw0Sxz`>K{VsCs6ShQ1f704&Fiae}=0229~d9VE6-d z(Lbn0rYcBcVX1;7D%eCKPZea)3D%X8tb!yq8K`=>DoCPKhVoUbAc;&H%GX8X8-w(N zE@XrqzGwzjU;~l>-Ah>oNo26I7@eUO!1x|ec^{~Hf2e#2lphY2kFJ_-n8GRr9_q`6 z%H>r-a!4tZUjgOUL-|cmvtWy!+M%9@h5i(%TW3Ml&xHooQYe1~)NWYdt*L@`^*2Hl zY=P3-q4X}OhJ8@}L8t?cK`lB1r7uB4^9oem^(sj6xdGLG2P%Fas{SdI|Dp<7)xUu% z`~X$(4XWU06{PV3<1!4FMRx6zTw2)m{aauY=M}Q2nqp(gEc|qr9G>4=MmVFm?)5;|!?7 zW>JLH}KkSE^a|lWwg_?g7%&%u)I0JRSC9nVk z!&RsP*om|^t0B4K0aX4ml>Z9Ke+#wn6O{iI%KruB|Ane&seyzvdkw@qJ`f*N)eF`@ z5)I6S;x&*shdDsL29gLNE@oiRfbwA$7}h}21k3@}Q1cu?7BDa{xIp<{P`)peA6x^i z>ceUvsTx+XML`XORb(kOkRXOtT=`G~U=>#>R326jH9$Q8tEW1kd|16S0U81(K>}Ie zyS=7ET?RX&cNWw^^Pu7jp)~A_-X&1^6*Z7jc@>nu4$9vEH!$P9;&_-s=ouOzPA<@v z1yi94WV8u;oU(GAle0+pAngM^keln=X2Q~}CYh03c#^}`Oq(yfCe7t=aO`m?BmMz zGgznLOdX{5fOQ&fLml)Gs^JOL!7u|}Kppe}D*qYk!(UMTU#JI|pks!t&{IHoApCj; z{(4B9h(iPzq@XPhIVi0JrPZLF4h`tyBV8z89~ya8ED0Cx2B6sQ5SKnfTb80J9bVMk9dgvu|68ng;ZuZ22n zBUFAnRR2z>e%Nhf`=ET#wFcn)e;6uo0&37{r~wzD{43BXg7NP_` zAc+>n&w$G3LFEgf7L-9Ptbp=sq4Et-2es5g868jsy-)=cpaxEZ8ZZN@4wmodK-I&J zrd$Z+!yLQ}s(uwz{~D+VH$%Xe9Y?+kDzFc#;2_k%V^ID{C?9rB@j0jiuR!Im zLqiPK>U;5Mo1!rU0*Tg^KB^E$6EQRt{fE0l4 z&VuqcLiw=s(YHfG1jgSDRksf+eh6wF%)!T@eAo(?GmX%hY}ksEi%^YMq4Z6t23Qo_ zgYscMehgLj97?~2IuI7bAEA6$6nuyBVIlmt5nBJlqJX&xlJB{iAVJC71PMZ+CPimdDuOQjZi*pKS&$YT-g4P`YxzIAJpQBPz|s{e5XO>XF=(C&=7zf>bnHW zhaKv>3aTG=QR8|jAGX0{3)Gw)5W1dW57YqIDZq!Ie8{Q33=Air2Eb1JJqytYzh&Se zR6XpF-|JBRU1*5hhpK-Jq7}Nhn_y#0TYn`DRF}Rs{(#Ffgb?`MOZPelsLD7(w|a zPy;NWd@HDW*qQhaP3tl5n9Jsg4zpc%5sP7=lP=pg=ju@1dfYMS>S_VqXL1_iBIrR(-Dx44>Xh9`( zz!D4$22gP`C~X6kw}Z+%L1{NA?FDs65GN!gLZSRvsJ?h8KOJgbE~g*^BPdPfL48sT zm8j%|L`egbZimYEKgy$iT_Kz>v-_$iU6Oz@V#ZXKxo9Yd3`-;S&OHi?`CCFE&*8sS5N>pCPplmtP^50vyk$xd#&Pd}?Y3!}&Mp2@7rMjpzLlpCQ8Ny#x#Izbr{329JyHRTE; zb87~MIm*)?PG%KjTBAJu=VaC{Mu+JwQ&@{FYE%RnK&Mo7s6e#!sX%h*3@Cpdl)nN> zZ-Ua(KTKuS-yS!W)l#5-t_j2`Ff$gJK;nC?i6Ho%%3UT9JB~r=OHlc{Q2GT_{0o$3 zFoo#jH5Ft4U9>4}3em4_3NhCRO52)((-{|oD}=$|yIo-!tGSN^E>D3Ry>z?CXV!3b z!CItrQOCf*P(Qt)m&J7Y#$T*@f^(7N<}olZ%m>Mt^DbpzU|7b$z_6TwfnmjTli#eD zeb+NEfP)W|7&kC5Fl=OCVAuprBA@~fB)*w}fnf^+1H)DZ28L}63=G>D7#KkPQ;^&a z1_p+m3=9mr7#J9KPY?OS`dM)g0|P@rVqRu)c4~@3Vu^wk7Xt&bHG8LL{ACSR-G^lJ zeg+1H0}Kod2cb5DC{X%8wEe+fR(@8-Q`CQ{@T>$ESfU zgQ;o*oFg!uy^$?}sd_z<$gV~zg$-=ZOf^uYF->ebjD{dFm+9x4*aD_^G_kob x)=f`oW;2qhmk3Ht(+Dmp%FIjGRM53kaIGjwEy^oOO}orGd8Lx#^efG5wg581v7P_` delta 91265 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%0AnLbg9#Y_#7yLdoL(m>fs0I~#4M4*Wg)D#EJ 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 void; -export const __wasm_bindgen_func_elem_178: (a: number, b: number, c: number) => void; -export const __wasm_bindgen_func_elem_1209: (a: number, b: number, c: number, d: number) => void; -export const __wasm_bindgen_func_elem_177: (a: number, b: number, c: number) => void; -export const __wasm_bindgen_func_elem_177_3: (a: number, b: number, c: number) => void; -export const __wasm_bindgen_func_elem_446: (a: number, b: number, c: number) => void; -export const __wasm_bindgen_func_elem_223: (a: number, b: number, c: number) => void; -export const __wasm_bindgen_func_elem_224: (a: number, b: number) => void; +export const __wasm_bindgen_func_elem_175: (a: number, b: number, c: number) => void; +export const __wasm_bindgen_func_elem_1203: (a: number, b: number, c: number, d: number) => void; +export const __wasm_bindgen_func_elem_174: (a: number, b: number, c: number) => void; +export const __wasm_bindgen_func_elem_174_3: (a: number, b: number, c: number) => void; +export const __wasm_bindgen_func_elem_442: (a: number, b: number, c: number) => void; +export const __wasm_bindgen_func_elem_219: (a: number, b: number, c: number) => void; +export const __wasm_bindgen_func_elem_220: (a: number, b: number) => void; export const __wbindgen_export: (a: number, b: number) => number; export const __wbindgen_export2: (a: number, b: number, c: number, d: number) => number; export const __wbindgen_export3: (a: number) => void; diff --git a/crates/apps/gioser-web/src/lib.rs b/crates/apps/gioser-web/src/lib.rs index afce311..678431a 100644 --- a/crates/apps/gioser-web/src/lib.rs +++ b/crates/apps/gioser-web/src/lib.rs @@ -306,12 +306,9 @@ impl AppState { wrapper.style().set_property("border-top", "1px solid rgba(255,255,255,0.06)").ok(); wrapper.style().set_property("min-height", "220px").ok(); content_clone.append_child(&wrapper).ok(); - // Disparar el script de Cytoscape si ya está en la página - if let Some(win) = web_sys::window() { - let _ = win.dispatch_event( - &web_sys::Event::new("gioser-graph-ready").unwrap() - ); - } + // El script cytoscape-graph.js usa MutationObserver + // para detectar dinámicos. No hace falta + // disparar nada acá. }); }