From ac4e17c74822c9a503d312286e85cc43ce4e96d4 Mon Sep 17 00:00:00 2001 From: brightestautumn Date: Sat, 29 Aug 2026 22:07:26 +0530 Subject: [PATCH 01/10] feat: add new Network Toolkit plugin with comprehensive management for Bluetooth, Wi-Fi, Hotspot, and DNS services --- network-toolkit/README.md | 95 ++++ network-toolkit/panel.luau | 532 +++++++++++++++++++++ network-toolkit/plugin.toml | 142 ++++++ network-toolkit/scripts/bluetooth_helper | Bin 0 -> 18048 bytes network-toolkit/scripts/bluetooth_helper.c | 227 +++++++++ network-toolkit/scripts/hotspot_helper.sh | 24 + network-toolkit/service.luau | 116 +++++ network-toolkit/services/bluetooth.luau | 258 ++++++++++ network-toolkit/services/dns.luau | 133 ++++++ network-toolkit/services/hotspot.luau | 180 +++++++ network-toolkit/services/net.luau | 177 +++++++ network-toolkit/shortcut.luau | 19 + network-toolkit/thumbnail.webp | Bin 0 -> 63828 bytes network-toolkit/translations/en.json | 154 ++++++ network-toolkit/widget.luau | 124 +++++ 15 files changed, 2181 insertions(+) create mode 100644 network-toolkit/README.md create mode 100644 network-toolkit/panel.luau create mode 100644 network-toolkit/plugin.toml create mode 100755 network-toolkit/scripts/bluetooth_helper create mode 100644 network-toolkit/scripts/bluetooth_helper.c create mode 100755 network-toolkit/scripts/hotspot_helper.sh create mode 100644 network-toolkit/service.luau create mode 100644 network-toolkit/services/bluetooth.luau create mode 100644 network-toolkit/services/dns.luau create mode 100644 network-toolkit/services/hotspot.luau create mode 100644 network-toolkit/services/net.luau create mode 100644 network-toolkit/shortcut.luau create mode 100644 network-toolkit/thumbnail.webp create mode 100644 network-toolkit/translations/en.json create mode 100644 network-toolkit/widget.luau diff --git a/network-toolkit/README.md b/network-toolkit/README.md new file mode 100644 index 00000000..a3f3db6a --- /dev/null +++ b/network-toolkit/README.md @@ -0,0 +1,95 @@ +# Network Toolkit + +A unified network management hub for Noctalia providing real-time Wi-Fi, Ethernet, Hotspot, Bluetooth, and persistent DNS control from a single interface. + +## Plugin + +| Field | Value | +| --- | --- | +| ID | `autumn/network-toolkit` | +| Entries | Bar widget: `widget`; shortcut: `toggle`; panel: `panel`; service: `service` | + +## Requirements + +Install the following tools on `PATH`: + +- **`networkmanager`** (`nmcli`) — Wi-Fi scanning, connection management, hotspot orchestration, and DNS routing. +- **`bluez`** / **`bluez-utils`** (`bluetoothctl`) — Bluetooth adapter power, scanning, device pairing, and trust settings. +- **`iproute2`** (`ip`) — Interface address resolution and neighbor discovery. +- **`iw`** — Virtual AP interface provisioning (`__ap`) and wireless client enumeration. +- **`qrencode`** *(optional)* — Generates shareable Wi-Fi QR codes in the panel. + +## Features + +- **Wi-Fi & Ethernet**: Live access point scanning with signal metrics and security badges; inline password authentication prompt; saved network quick-connect; QR code generator for connected Wi-Fi credentials; network forget capability. +- **Concurrent Wi-Fi Hotspot**: Dynamically provisions a virtual access point (`-ap`, such as `wlp3s0-ap` or `wlan0-ap`) alongside active Wi-Fi station mode on supported hardware via `scripts/hotspot_helper.sh`, allowing you to host a hotspot while remaining connected to your existing Wi-Fi network; live connected client list with hostnames, IP, and MAC addresses. +- **Bluetooth Device Manager**: Built-in native C BlueZ D-Bus agent (`scripts/bluetooth_helper`) delivering instant desktop pairing authorization popups with PIN/passkey validation; one-click connect, disconnect, device removal, and auto-reconnect (trust) configuration; adapter discoverability toggle. +- **Universal Persistent DNS Switcher**: Instant switching between curated providers (Cloudflare, Google, Quad9, AdGuard) and custom DNS servers; automatically re-applies chosen DNS across network switches and system reboots. +- **Bar Widget & Shortcut**: Highly configurable top bar widget supporting single or multi-domain indicator modes; quick-toggle control center shortcut for one-click hotspot activation. + +## Usage + +1. Add the `Network Toolkit` widget to your bar in **Settings → Bar Widgets**. +2. Add the `Hotspot` shortcut tile in **Settings → Control Center Shortcuts**. +3. **Left-click** the bar widget to open the main network panel. +4. **Right-click** the bar widget to trigger the configured quick action (toggle Wi-Fi, Hotspot, or Bluetooth). + +Open the main panel via IPC: + +```sh +noctalia msg panel-toggle autumn/network-toolkit:panel +``` + +Or bind it to a keybinding in your Niri configuration (`~/.config/niri/config.kdl`): + +```kdl +binds { + Mod+N { spawn-sh "noctalia msg panel-toggle autumn/network-toolkit:panel"; } +} +``` + +## Settings + +All settings can be configured under **Settings → Plugins → Network Toolkit**: + +| Setting | Type | Default | Description | +| --- | --- | --- | --- | +| `refreshInterval` | `int` | `5` | Background state refresh interval in seconds (2–60). | +| `color` | `string` | `on_surface_variant` | Theme color token for widget glyphs. | +| `text_color` | `string` | `on_surface_variant` | Theme color token for widget labels. | +| `hotspot_ssid` | `string` | `Noctalia-Hotspot` | Default broadcast SSID for the hotspot. | +| `hotspot_password` | `string` | `noctaliapass` | WPA2 passphrase for the hotspot (minimum 8 characters). | +| `hotspot_max_connections` | `int` | `8` | Maximum client connections allowed on the hotspot (1–32). | +| `custom_dns_1` | `string` | `""` | Custom DNS slot 1 (`Name=IP`, e.g. `NextDNS=45.90.28.0 45.90.30.0`). | +| `custom_dns_2` | `string` | `""` | Custom DNS slot 2. | +| `custom_dns_3` | `string` | `""` | Custom DNS slot 3. | +| `bluetooth_download_dir` | `string` | `~/Downloads` | Target directory for incoming Bluetooth file transfers. | +| `bluetooth_device_name` | `string` | `""` | Custom broadcast alias for the local Bluetooth adapter. | +| `widget_display_mode` | `select` | `network` | Display mode: `network`, `bluetooth`, `dns`, `network_hotspot`, `network_bluetooth`, `network_dns`, `bluetooth_dns`, `network_bluetooth_dns`, `network_hotspot_bluetooth_dns`. | +| `widget_right_click` | `select` | `toggle_wifi` | Quick action on right-click: `toggle_wifi`, `toggle_hs`, or `toggle_bt`. | + +## IPC + +The background service synchronizes state across all entries via `network_command` and `network_state`. You can also trigger panel actions directly: + +```sh +# Toggle panel +noctalia msg panel-toggle autumn/network-toolkit:panel + +# Open panel +noctalia msg panel-open autumn/network-toolkit:panel + +# Close panel +noctalia msg panel-close autumn/network-toolkit:panel +``` + +## Notes + +- **Bluetooth Pairing Agent**: Uses a built-in D-Bus agent (`scripts/bluetooth_helper`) registered under `/org/noctalia/bluetooth_helper` to handle authorization and passkey requests directly with BlueZ. +- **Concurrent Hotspot**: Simultaneous Wi-Fi client and AP mode dynamically creates a virtual interface (`-ap`) via `scripts/hotspot_helper.sh`. If the wireless driver does not support multi-VIF concurrency, starting the hotspot will fall back to standard access point mode. +- **DNS Configuration**: DNS preferences are managed through NetworkManager device connections and persist across network switches. +- **Files Written**: Runtime pairing and DNS states are stored in `/tmp` during the active session. + +## License + +MIT diff --git a/network-toolkit/panel.luau b/network-toolkit/panel.luau new file mode 100644 index 00000000..b90621ae --- /dev/null +++ b/network-toolkit/panel.luau @@ -0,0 +1,532 @@ +--!nonstrict +-- Network Toolkit panel UI +local state = noctalia.state.get("network_state") or {} +local customDnsInput, passwordInput, selectedSsid = "", "", nil +local showPassword, showWifiQr, qrLoading, showHsQr = false, false, false, false +local qrImagePath, qrHsPath = "/tmp/network-toolkit-wifi-qr.png", "/tmp/network-toolkit-hotspot-qr.png" +local hoveredId, cmdSeq, animFrame = nil, 0, 0 +local activeLeftCard, activeRightCard = "wifi", "bluetooth" +local dismissedPairingAddresses, removedDevices, deviceActionOverrides = {}, {}, {} +local btConnecting, wifiConnectingSsid = {}, nil + +local LOADER = { "loader", "loader-2", "loader-3", "loader-quarter" } + +local function signalGlyph(val) + local s = tonumber(val) or 0 + return (s >= 88 and "wifi") or (s >= 63 and "wifi-3") or (s >= 38 and "wifi-2") or (s >= 13 and "wifi-1") or "wifi-0" +end + +local function sendCommand(domain, action, payload) + cmdSeq += 1 + noctalia.state.set("network_command", { domain = domain, action = action, payload = payload, nonce = os.time() .. "_" .. cmdSeq }) +end + +local function generateWifiQr(ssid, security, renderFn) + if not ssid or ssid == "" then return end + qrLoading = true; renderFn() + local safe = ssid:gsub("'", "'\\''") + noctalia.runAsync(string.format("nmcli -s -g 802-11-wireless-security.psk connection show '%s' 2>/dev/null || nmcli -s -g 802-11-wireless-security.psk connection show id '%s' 2>/dev/null", safe, safe), function(res) + local psk = (res.stdout or ""):gsub("%s+", "") + local sec = (security == "Open" or (psk == "" and security ~= "WPA2" and security ~= "WPA")) and "nopass" or "WPA" + noctalia.runAsync(string.format("qrencode -s 6 -m 2 -o '%s' 'WIFI:T:%s;S:%s;P:%s;;' 2>/dev/null", qrImagePath, sec, safe, psk:gsub("'", "'\\''")), function() + qrLoading = false; renderFn() + end, 4000) + end, 4000) +end + +local function generateHsQr(renderFn) + local s = (state.hotspot and state.hotspot.ssid ~= "") and state.hotspot.ssid or (noctalia.getConfig("hotspot_ssid") or "Noctalia-Hotspot") + local p = noctalia.getConfig("hotspot_password") or "noctaliapass" + if p == "" or #p < 8 then p = "noctaliapass" end + noctalia.runAsync(string.format("qrencode -s 6 -m 2 -o '%s' 'WIFI:T:WPA;S:%s;P:%s;;' 2>/dev/null", qrHsPath, s:gsub("'", "'\\''"), p:gsub("'", "'\\''")), function() renderFn() end, 4000) +end + +local render + +local function setHover(id, hState) + local target = (hState == "true") and id or nil + if hoveredId ~= target then hoveredId = target; if render then render() end end +end + +local function hintRow(text, glyph, color) + return ui.row({ align = "center", gap = 6, paddingV = 3, paddingH = 2 }, { + ui.glyph({ name = glyph or "info-circle", size = 14, color = color or "on_surface_variant" }), + ui.label({ text = text, fontSize = 11, color = color or "on_surface_variant" }) + }) +end + +local function renderDeviceRow(key, label, sublabel, glyphName, glyphColor, isHovered, isSelected, rightExtras, onClick) + local leftItems = { ui.glyph({ name = glyphName, size = 18, color = glyphColor or "on_surface_variant" }) } + if sublabel and sublabel ~= "" then + table.insert(leftItems, ui.column({ gap = 0, paddingB = 2 }, { + ui.label({ text = label, fontSize = 13, fontWeight = isSelected and "bold" or "normal", color = "on_surface" }), + ui.label({ text = sublabel, fontSize = 11, color = "on_surface_variant" }), + })) + else + table.insert(leftItems, ui.label({ text = label, fontSize = 13, fontWeight = isSelected and "bold" or "normal", color = "on_surface" })) + end + return ui.row({ + key = "row-" .. key, align = "center", justify = "space_between", + fill = isSelected and "primary_container" or "surface", + border = (isHovered or isSelected) and "primary" or "surface", + borderWidth = 1, radius = 8, height = 45, paddingV = 8, paddingH = 12, + onHover = function(s) setHover(key, s) end + }, { + ui.row({ align = "center", gap = 10, flexGrow = 1, onClick = onClick }, leftItems), + ui.row({ align = "center", gap = 8 }, rightExtras or {}) + }) +end + +local function smallBtn(glyph, variant, onClick) + return ui.button({ glyph = glyph, glyphSize = 14, width = 28, height = 28, variant = variant or "ghost", contentAlign = "center", onClick = onClick }) +end + +render = function() + state = noctalia.state.get("network_state") or state + local hs, net, dns, bt = state.hotspot or {}, state.net or {}, state.dns or {}, state.bluetooth or {} + local hsActive = (hs.active == true) or (net.hotspotActive == true) + local isConn = net.wifiConnected or net.ethernetConnected + local connTitle = net.ethernetConnected and (net.interface ~= "" and net.interface or noctalia.tr("status.ethernet")) + or (net.wifiConnected and (net.ssid ~= "" and net.ssid or noctalia.tr("status.wifi")) + or (hsActive and (hs.ssid or noctalia.tr("status.hotspot_active")) or noctalia.tr("status.disconnected"))) + + local connIp = (isConn and net.ipAddress ~= "") and (" (" .. net.ipAddress .. ")") or "" + local connDetails = isConn and (connTitle .. connIp .. " • " .. tostring(net.signal or 0) .. "% • " .. (net.band ~= "" and net.band or "—") .. (hsActive and (" • Hotspot (" .. tostring(hs.clientCount or 0) .. ")") or "")) + or (hsActive and (connTitle .. " • " .. tostring(hs.clientCount or 0) .. " Clients • Hotspot") or (connTitle .. " • —")) + + local spinner = LOADER[(animFrame % #LOADER) + 1] + local isCustomDns = (dns.activeProvider ~= nil and dns.activeProvider ~= "default") + local dnsLabel = isCustomDns and (dns.current and dns.current.label or dns.activeProvider) or noctalia.tr("panel.system_default") + + local subInfo = { + ui.row({ align = "center", gap = 6 }, { + ui.glyph({ name = isCustomDns and "shield" or "shield-off", size = 15, color = isCustomDns and "primary" or "on_surface_variant" }), + ui.label({ text = noctalia.tr("panel.dns_prefix"), fontSize = 12, fontWeight = "bold", color = "on_surface_variant" }), + ui.label({ text = dnsLabel, fontSize = 12, color = "on_surface" }), + }) + } + if bt.pairedDevices then + for _, d in ipairs(bt.pairedDevices) do + if d.connected then + table.insert(subInfo, ui.row({ align = "center", gap = 6 }, { + ui.glyph({ name = d.icon or "bluetooth", size = 15, color = "primary" }), + ui.label({ text = noctalia.tr("panel.bt_prefix"), fontSize = 12, fontWeight = "bold", color = "on_surface_variant" }), + ui.label({ text = d.name or d.address, fontSize = 12, color = "on_surface" }), + smallBtn("bluetooth-off", "ghost", function() sendCommand("bluetooth", "disconnect", { address = d.address }) end) + })) + end + end + end + + local connCard = ui.column({ gap = 6, fill = "surface_variant", radius = 12, paddingV = 8, paddingH = 10 }, { + ui.label({ text = noctalia.tr("panel.current_connection"), fontSize = 13, fontWeight = "bold", color = "on_surface" }), + ui.row({ align = "center", justify = "space_between" }, { + ui.label({ text = connDetails, fontSize = 12, fontWeight = "bold", color = "on_surface" }), + ui.button({ + glyph = isConn and "plug-off" or (hsActive and "broadcast-off" or "plug"), glyphSize = 16, + variant = (isConn or hsActive) and "destructive" or "primary", contentAlign = "center", + onClick = function() + if isConn then net.wifiConnected, net.ssid, net.ipAddress = false, "", ""; render(); sendCommand("wifi", "disconnect") + elseif hsActive then hs.active = not hs.active; render(); sendCommand("hotspot", "toggle") + else sendCommand("wifi", "auto_connect") end + end + }) + }), + ui.row({ align = "center", justify = "space_between", gap = 12 }, subInfo) + }) + + local leftControls = {} + if net.refreshing and activeLeftCard == "wifi" then table.insert(leftControls, ui.glyph({ name = spinner, size = 16, color = "primary" })) end + if activeLeftCard == "wifi" then table.insert(leftControls, ui.button({ glyph = "refresh", glyphSize = 16, variant = "ghost", contentAlign = "center", onClick = function() sendCommand("wifi", "scan") end })) end + if hs.active and activeLeftCard == "hotspot" then + table.insert(leftControls, smallBtn("qrcode", showHsQr and "primary" or "ghost", function() + showHsQr = not showHsQr; if showHsQr then generateHsQr(render) end; render() + end)) + end + table.insert(leftControls, ui.button({ + glyph = hs.active and "broadcast" or "broadcast-off", glyphSize = 16, + variant = (activeLeftCard == "hotspot") and "primary" or "ghost", contentAlign = "center", + onClick = function() if activeLeftCard == "wifi" then activeLeftCard = "hotspot"; render() else sendCommand("hotspot", "toggle") end end, + onRightClick = function() sendCommand("hotspot", "toggle") end + })) + table.insert(leftControls, ui.button({ + glyph = net.wifiEnabled and "wifi" or "wifi-off", glyphSize = 18, + variant = (activeLeftCard == "wifi") and "primary" or "ghost", contentAlign = "center", + onClick = function() + if activeLeftCard == "hotspot" then activeLeftCard = "wifi"; render() + else + net.wifiEnabled = not net.wifiEnabled + if not net.wifiEnabled then net.wifiConnected, net.ssid, net.ipAddress, net.availableNetworks = false, "", "", {} end + render(); sendCommand("wifi", "toggle") + end + end, + onRightClick = function() + net.wifiEnabled = not net.wifiEnabled + if not net.wifiEnabled then net.wifiConnected, net.ssid, net.ipAddress, net.availableNetworks = false, "", "", {} end + render(); sendCommand("wifi", "toggle") + end + })) + + local leftHeader = ui.row({ align = "center", justify = "space_between" }, { + ui.label({ text = (activeLeftCard == "wifi") and noctalia.tr("panel.wifi") or noctalia.tr("panel.hotspot"), fontSize = 13, fontWeight = "bold", color = "on_surface" }), + ui.row({ align = "center", gap = 6 }, leftControls) + }) + + local leftCard + if activeLeftCard == "wifi" then + if not net.wifiEnabled then + leftCard = ui.column({ flexGrow = 1, fill = "surface_variant", radius = 12, paddingV = 8, paddingH = 10, gap = 4 }, { leftHeader, hintRow(noctalia.tr("panel.wifi_off"), "wifi-off") }) + else + local wifiList = {} + local networks = net.availableNetworks or {} + local activeNet, savedNets, otherNets, seen = nil, {}, {}, {} + + for _, n in ipairs(networks) do + if n.active or (net.wifiConnected and net.ssid ~= "" and n.ssid == net.ssid) then + if not activeNet then activeNet = n end; seen[n.ssid] = true + elseif n.saved then + if n.signal > 0 and not seen[n.ssid] then table.insert(savedNets, n); seen[n.ssid] = true end + elseif not seen[n.ssid] then table.insert(otherNets, n); seen[n.ssid] = true end + end + + if activeNet or net.wifiConnected then + local sName = activeNet and activeNet.ssid or net.ssid + local sGlyph = signalGlyph(activeNet and (activeNet.bars or activeNet.signal) or (net.bars or net.signal or 0)) + local aKey = "active-" .. sName + local rBtns = {} + if net.signal > 0 then table.insert(rBtns, ui.label({ text = tostring(net.signal) .. "%", fontSize = 11, color = "on_surface_variant" })) end + if activeNet and activeNet.security and activeNet.security ~= "Open" then table.insert(rBtns, ui.glyph({ name = "lock", size = 14, color = "on_surface_variant" })) end + table.insert(rBtns, smallBtn("qrcode", showWifiQr and "primary" or "ghost", function() showWifiQr = not showWifiQr; if showWifiQr then generateWifiQr(sName, activeNet and activeNet.security or "WPA", render) end; render() end)) + table.insert(rBtns, ui.glyph({ name = "check", size = 16, color = "primary" })) + table.insert(wifiList, renderDeviceRow(aKey, sName, nil, sGlyph, "primary", hoveredId == aKey, false, rBtns, function() if activeNet then sendCommand("wifi", "connect", { ssid = activeNet.ssid }) end end)) + + if showWifiQr then + local qrContent = {} + if qrLoading then + table.insert(qrContent, ui.row({ align = "center", justify = "center", height = 130 }, { ui.glyph({ name = spinner, size = 18, color = "primary" }), ui.label({ text = noctalia.tr("panel.generating_qr"), fontSize = 12, color = "on_surface_variant" }) })) + elseif noctalia.fileExists and noctalia.fileExists(qrImagePath) then + table.insert(qrContent, ui.column({ align = "center", gap = 6, paddingV = 8 }, { ui.image({ path = qrImagePath, width = 140, height = 140, radius = 8 }), ui.label({ text = noctalia.tr("panel.scan_to_connect"), fontSize = 11, color = "on_surface_variant" }) })) + end + table.insert(wifiList, ui.column({ key = "qr-box", fill = "surface", radius = 8, border = "primary", borderWidth = 1, paddingV = 6, paddingH = 8, align = "center" }, qrContent)) + end + end + + if #savedNets > 0 then + table.insert(wifiList, ui.label({ text = noctalia.tr("panel.saved_networks"), fontSize = 11, fontWeight = "bold", color = "on_surface_variant" })) + for _, n in ipairs(savedNets) do + local k, isC = "saved-" .. n.ssid, (wifiConnectingSsid == n.ssid) + local extras = {} + if n.signal > 0 then table.insert(extras, ui.label({ text = tostring(n.signal) .. "%", fontSize = 11, color = "on_surface_variant" })) end + if n.security ~= "Open" then table.insert(extras, ui.glyph({ name = "lock", size = 14, color = "on_surface_variant" })) end + if isC then table.insert(extras, ui.glyph({ name = spinner, size = 14, color = "primary" })) end + table.insert(extras, smallBtn("trash", "ghost", function() sendCommand("wifi", "forget", { ssid = n.ssid }) end)) + table.insert(wifiList, renderDeviceRow(k, n.ssid, isC and noctalia.tr("panel.connecting") or nil, signalGlyph(n.signal or 0), isC and "primary" or "on_surface_variant", hoveredId == k, false, extras, function() + wifiConnectingSsid = n.ssid; render(); sendCommand("wifi", "connect", { ssid = n.ssid }) + end)) + end + end + + if #otherNets > 0 then + table.insert(wifiList, ui.label({ text = noctalia.tr("panel.available_networks"), fontSize = 11, fontWeight = "bold", color = "on_surface_variant" })) + for _, n in ipairs(otherNets) do + local k, isSel = "avail-" .. n.ssid, (selectedSsid == n.ssid) + local extras = {} + if n.signal > 0 then table.insert(extras, ui.label({ text = tostring(n.signal) .. "%", fontSize = 11, color = "on_surface_variant" })) end + if n.security ~= "Open" then table.insert(extras, ui.glyph({ name = "lock", size = 14, color = "on_surface_variant" })) end + table.insert(wifiList, renderDeviceRow(k, n.ssid, nil, signalGlyph(n.signal or 0), "on_surface_variant", hoveredId == k, isSel, extras, function() + if n.security == "Open" then sendCommand("wifi", "connect", { ssid = n.ssid }) + else selectedSsid = (selectedSsid == n.ssid) and nil or n.ssid; passwordInput = ""; showPassword = false; render() end + end)) + + if isSel then + local function submitPwd() if passwordInput ~= "" then sendCommand("wifi", "connect", { ssid = n.ssid, password = passwordInput }); selectedSsid, passwordInput, showPassword = nil, "", false; render() end end + table.insert(wifiList, ui.column({ key = "pwd-" .. k, gap = 4, fill = "surface", radius = 8, paddingV = 8, paddingH = 10 }, { + ui.label({ text = noctalia.tr("panel.password_for") .. " " .. n.ssid, fontSize = 11, color = "on_surface_variant" }), + ui.row({ align = "center", gap = 6 }, { + ui.input({ placeholder = noctalia.tr("panel.password_placeholder"), value = passwordInput, password = not showPassword, fontSize = 11, flexGrow = 1, onChange = function(v) passwordInput = v end, onSubmit = submitPwd }), + smallBtn(showPassword and "eye-off" or "eye", "ghost", function() showPassword = not showPassword; render() end), + ui.button({ text = noctalia.tr("panel.connect"), variant = "primary", fontSize = 11, onClick = submitPwd }) + }) + })) + end + end + elseif not net.wifiConnected and not activeNet and #savedNets == 0 then + table.insert(wifiList, hintRow(net.refreshing and noctalia.tr("panel.scanning") or noctalia.tr("panel.no_networks"), net.refreshing and spinner or "info-circle")) + end + leftCard = ui.column({ flexGrow = 1, fill = "surface_variant", radius = 12, paddingV = 8, paddingH = 10, gap = 4 }, { leftHeader, ui.scroll({ flexGrow = 1, gap = 4 }, wifiList) }) + end + else + local cList = hs.clients or {} + local bandText = (hs.band == "a" or hs.band == "5GHz" or hs.band == "5 GHz") and "5 GHz" or "2.4 GHz" + if hs.channel and hs.channel > 0 then bandText = bandText .. " (Ch " .. tostring(hs.channel) .. ")" end + local scrollEl = {} + if showHsQr and hs.active and noctalia.fileExists and noctalia.fileExists(qrHsPath) then + table.insert(scrollEl, ui.column({ fill = "surface", radius = 8, paddingV = 6, paddingH = 8, align = "center", gap = 4 }, { + ui.image({ path = qrHsPath, width = 130, height = 130, radius = 6 }), + ui.label({ text = noctalia.tr("panel.scan_to_connect"), fontSize = 10, color = "on_surface_variant" }) + })) + end + if hs.active then + table.insert(scrollEl, ui.label({ text = noctalia.tr("panel.connected_devices_ratio", { count = tostring(#cList), max = tostring(hs.maxConnections or 8) }), fontSize = 11, fontWeight = "bold", color = "on_surface_variant" })) + if #cList == 0 then table.insert(scrollEl, ui.label({ text = noctalia.tr("panel.no_devices"), fontSize = 11, color = "on_surface_variant" })) + else + for _, c in ipairs(cList) do + table.insert(scrollEl, ui.row({ align = "center", justify = "start", fill = "surface", radius = 8, height = 44, paddingV = 6, paddingH = 10, gap = 10 }, { + ui.glyph({ name = "device-mobile", size = 16, color = "primary" }), + ui.column({ gap = 1 }, { + ui.label({ text = (c.name and c.name ~= "") and c.name or c.ip, fontSize = 12, fontWeight = "bold", color = "on_surface" }), + ui.label({ text = c.ip .. " • " .. c.mac, fontSize = 10, color = "on_surface_variant" }) + }) + })) + end + end + end + leftCard = ui.column({ flexGrow = 1, fill = "surface_variant", radius = 12, paddingV = 8, paddingH = 10, gap = 4 }, { + leftHeader, + hintRow(hs.active and ((hs.ssid or "Noctalia-Hotspot") .. " • " .. bandText) or noctalia.tr("panel.hotspot_inactive_tip"), hs.active and "broadcast" or "broadcast-off", hs.active and "primary" or "on_surface_variant"), + ui.scroll({ flexGrow = 1, gap = 4 }, scrollEl) + }) + end + + -- Right Card (Bluetooth / DNS) + local rightControls = {} + if bt.scanning and activeRightCard == "bluetooth" then table.insert(rightControls, ui.glyph({ name = spinner, size = 16, color = "primary" })) end + if bt.enabled and activeRightCard == "bluetooth" then table.insert(rightControls, ui.button({ glyph = "refresh", glyphSize = 16, variant = "ghost", contentAlign = "center", onClick = function() sendCommand("bluetooth", "scan") end })) end + table.insert(rightControls, ui.button({ + glyph = isCustomDns and "shield" or "shield-off", glyphSize = 16, variant = (activeRightCard == "dns") and "primary" or "ghost", contentAlign = "center", + onClick = function() if activeRightCard == "bluetooth" then activeRightCard = "dns"; render() else sendCommand("dns", "toggle") end end, + onRightClick = function() sendCommand("dns", "toggle") end + })) + table.insert(rightControls, ui.button({ + glyph = bt.enabled and "bluetooth" or "bluetooth-off", glyphSize = 18, variant = (activeRightCard == "bluetooth") and "primary" or "ghost", contentAlign = "center", + onClick = function() + if activeRightCard == "dns" then activeRightCard = "bluetooth"; render() + else if state.bluetooth then state.bluetooth.enabled = not state.bluetooth.enabled end; render(); sendCommand("bluetooth", "toggle") end + end, + onRightClick = function() if state.bluetooth then state.bluetooth.enabled = not state.bluetooth.enabled end; render(); sendCommand("bluetooth", "toggle") end + })) + + local rightHeader = ui.row({ align = "center", justify = "space_between" }, { + ui.label({ text = (activeRightCard == "bluetooth") and noctalia.tr("panel.bluetooth") or noctalia.tr("panel.dns_service"), fontSize = 13, fontWeight = "bold", color = "on_surface" }), + ui.row({ align = "center", gap = 6 }, rightControls) + }) + + local rightCard + if activeRightCard == "bluetooth" then + local btList = {} + if not bt.enabled then + table.insert(btList, hintRow(noctalia.tr("panel.bt_off"), "bluetooth-off")) + else + table.insert(btList, ui.row({ + key = "row-bt-disc", align = "center", justify = "space_between", paddingV = 4, paddingH = 4, + onClick = function() if state.bluetooth then state.bluetooth.discoverable = not state.bluetooth.discoverable end; render(); sendCommand("bluetooth", "discoverable") end + }, { + ui.label({ text = noctalia.tr("panel.discoverable"), fontSize = 13, fontWeight = "bold", color = "on_surface" }), + ui.glyph({ name = bt.discoverable and "toggle-right-filled" or "toggle-left-filled", size = 30, color = bt.discoverable and "primary" or "on_surface_variant" }) + })) + + local now = os.time() + for _, req in ipairs(bt.pairingRequests or {}) do + local addr = req.address or "" + local exp = dismissedPairingAddresses[addr] + if not exp or now > exp then + table.insert(btList, ui.column({ key = "pair-req-" .. addr, gap = 8, fill = "surface", radius = 8, paddingV = 8, paddingH = 10 }, { + ui.row({ align = "center", gap = 8 }, { + ui.glyph({ name = req.icon or "bluetooth", size = 18, color = "primary" }), + ui.column({ gap = 2 }, { + ui.label({ text = noctalia.tr("panel.pairing_request_msg", { name = req.name or addr }), fontSize = 12, fontWeight = "bold", color = "on_surface" }), + req.passkey and ui.label({ text = noctalia.tr("panel.pairing_passkey", { key = tostring(req.passkey) }), fontSize = 11, fontWeight = "bold", color = "primary" }) or nil + }) + }), + ui.row({ align = "center", justify = "space_between", gap = 8 }, { + ui.button({ text = noctalia.tr("panel.accept"), variant = "primary", fontSize = 11, flexGrow = 1, contentAlign = "center", onClick = function() dismissedPairingAddresses[addr] = os.time() + 10; if state.bluetooth then state.bluetooth.pairingRequests = {} end; render(); sendCommand("bluetooth", "accept_pair", { address = addr }) end }), + ui.button({ text = noctalia.tr("panel.reject"), variant = "destructive", fontSize = 11, flexGrow = 1, contentAlign = "center", onClick = function() dismissedPairingAddresses[addr] = os.time() + 10; if state.bluetooth then state.bluetooth.pairingRequests = {} end; render(); sendCommand("bluetooth", "reject_pair", { address = addr }) end }) + }) + })) + end + end + + local connP, otherP = {}, {} + for _, d in ipairs(bt.pairedDevices or {}) do + local la = (d.address or ""):lower() + local exp = removedDevices[la] + if not exp or now > exp then + if d.connected then table.insert(connP, d) else table.insert(otherP, d) end + end + end + + local function renderBtDevice(d, isConnectedSec) + local k, la = "bt-" .. d.address, (d.address or ""):lower() + local isAuto = (d.autoReconnect == true or d.trusted == true) + local isC = (btConnecting[la] and (now < btConnecting[la])) or (d.connecting == true) + local btns = {} + + if isConnectedSec then + btConnecting[la] = nil + table.insert(btns, ui.glyph({ name = "check", size = 14, color = "primary" })) + table.insert(btns, smallBtn("bluetooth-off", "ghost", function() + deviceActionOverrides[la] = { connected = false, expires = os.time() + 4 } + d.connected = false; render(); sendCommand("bluetooth", "disconnect", { address = d.address }) + end)) + else + if isC then table.insert(btns, ui.glyph({ name = spinner, size = 14, color = "primary" })) + else + table.insert(btns, smallBtn("bluetooth-connected", "ghost", function() + btConnecting[la] = os.time() + 4; d.connecting = true; render(); sendCommand("bluetooth", "connect", { address = d.address }) + end)) + end + end + + table.insert(btns, smallBtn(isAuto and "repeat" or "repeat-off", isAuto and "primary" or "ghost", function() + local nextTr = not d.trusted + deviceActionOverrides[la] = { trusted = nextTr, expires = os.time() + 4 } + d.trusted, d.autoReconnect = nextTr, nextTr; render(); sendCommand("bluetooth", "toggle_autoreconnect", { address = d.address }) + end)) + + table.insert(btns, smallBtn("trash", "ghost", function() + removedDevices[la] = os.time() + 10; btConnecting[la], deviceActionOverrides[la] = nil, nil + if state.bluetooth and state.bluetooth.pairedDevices then + local p = {} + for _, dev in ipairs(state.bluetooth.pairedDevices) do if (dev.address or ""):lower() ~= la then table.insert(p, dev) end end + state.bluetooth.pairedDevices = p + end + render(); sendCommand("bluetooth", "remove", { address = d.address }) + end)) + + return renderDeviceRow(k, d.name, (not isConnectedSec and isC) and noctalia.tr("panel.connecting") or nil, d.icon or "bluetooth", (isConnectedSec or isC) and "primary" or "on_surface_variant", hoveredId == k, false, btns, function() + if isConnectedSec then + deviceActionOverrides[la] = { connected = false, expires = os.time() + 4 } + d.connected = false; render(); sendCommand("bluetooth", "disconnect", { address = d.address }) + elseif not isC then + btConnecting[la] = os.time() + 4; d.connecting = true; render(); sendCommand("bluetooth", "connect", { address = d.address }) + end + end) + end + + if #connP > 0 then + table.insert(btList, ui.label({ text = noctalia.tr("panel.connected_devices"), fontSize = 11, fontWeight = "bold", color = "primary" })) + for _, d in ipairs(connP) do table.insert(btList, renderBtDevice(d, true)) end + end + if #otherP > 0 then + table.insert(btList, ui.label({ text = noctalia.tr("panel.paired_devices"), fontSize = 11, fontWeight = "bold", color = "on_surface_variant" })) + for _, d in ipairs(otherP) do table.insert(btList, renderBtDevice(d, false)) end + end + + local avail = bt.availableDevices or {} + if #avail > 0 then + table.insert(btList, ui.label({ text = noctalia.tr("panel.available_devices"), fontSize = 11, fontWeight = "bold", color = "on_surface_variant" })) + for _, d in ipairs(avail) do + local k = "bt-" .. d.address + local btns = { smallBtn("bluetooth-connected", "ghost", function() sendCommand("bluetooth", "pair", { address = d.address }) end) } + table.insert(btList, renderDeviceRow(k, d.name, nil, d.icon or "bluetooth", "on_surface_variant", hoveredId == k, false, btns, function() sendCommand("bluetooth", "pair", { address = d.address }) end)) + end + elseif #connP == 0 and #otherP == 0 then + table.insert(btList, hintRow(bt.scanning and noctalia.tr("panel.bt_scanning") or noctalia.tr("panel.no_bt_devices"), bt.scanning and spinner or "info-circle")) + end + end + rightCard = ui.column({ flexGrow = 1, fill = "surface_variant", radius = 12, paddingV = 8, paddingH = 10, gap = 4 }, { rightHeader, ui.scroll({ flexGrow = 1, gap = 4 }, btList) }) + else + local dnsList = {} + local actId = dns.activeProvider or "default" + for _, p in ipairs(dns.presets or {}) do + table.insert(dnsList, ui.button({ + key = "dns-" .. p.id, text = p.label or p.id, glyph = p.glyph or "shield", glyphSize = 14, + variant = (p.id == actId) and "primary" or "ghost", contentAlign = "start", fontSize = 12, + onClick = function() sendCommand("dns", "apply", p.id) end + })) + end + local function applyCust() + if customDnsInput ~= "" then sendCommand("dns", "apply", { provider = "custom", servers = customDnsInput }); customDnsInput = ""; render() end + end + table.insert(dnsList, ui.row({ align = "center", gap = 6, paddingV = 1 }, { + ui.input({ placeholder = noctalia.tr("panel.custom_dns_placeholder"), value = customDnsInput, fontSize = 11, flexGrow = 1, onChange = function(v) customDnsInput = v end, onSubmit = applyCust }), + ui.button({ text = noctalia.tr("panel.apply"), variant = "primary", fontSize = 11, onClick = applyCust }) + })) + rightCard = ui.column({ flexGrow = 1, fill = "surface_variant", radius = 12, paddingV = 7, paddingH = 9, gap = 3 }, { rightHeader, ui.scroll({ flexGrow = 1, gap = 2 }, dnsList) }) + end + + -- Root layout + panel.render(ui.column({ flexGrow = 1, gap = 6 }, { + ui.row({ align = "center", justify = "space_between" }, { + ui.row({ align = "center", gap = 6 }, { ui.glyph({ name = "world", size = 18, color = "primary" }), ui.label({ text = noctalia.tr("title"), fontSize = 14, fontWeight = "bold", color = "primary" }) }), + ui.row({ align = "center", gap = 4 }, { + ui.button({ glyph = "refresh", variant = "ghost", contentAlign = "center", onClick = function() sendCommand("system", "refresh") end }), + ui.button({ glyph = "x", variant = "ghost", contentAlign = "center", onClick = function() panel.close() end }) + }) + }), + connCard, + ui.row({ flexGrow = 1, gap = 6, align = "stretch" }, { + ui.column({ flexGrow = 1, width = "50%" }, { leftCard }), + ui.column({ flexGrow = 1, width = "50%" }, { rightCard }), + }) + })) +end + +local lastHsPoll = 0 +function onOpen(_context) + state = noctalia.state.get("network_state") or state + selectedSsid, passwordInput, showPassword, showWifiQr, showHsQr, hoveredId = nil, "", false, false, false, nil + activeLeftCard, activeRightCard = "wifi", "bluetooth" + render() + if not state.net or not state.net.availableNetworks or #state.net.availableNetworks == 0 then sendCommand("wifi", "scan") end + if state.hotspot and state.hotspot.active then sendCommand("hotspot", "refresh") end + if state.bluetooth and state.bluetooth.enabled then sendCommand("bluetooth", "refresh") end +end + +function update() + local now = os.time() + local isRef = state.net and state.net.refreshing + local isBtScan = state.bluetooth and state.bluetooth.scanning + if isRef or isBtScan or qrLoading or next(btConnecting) ~= nil or (wifiConnectingSsid ~= nil) then + animFrame += 1; render() + end + + local pairRaw = noctalia.readFile("/tmp/noctalia_bt_pairing.json") + if pairRaw and pairRaw ~= "" then + local a, n, pk = pairRaw:match('"address":"([^"]+)"'), pairRaw:match('"name":"([^"]+)"') or "Bluetooth Device", pairRaw:match('"passkey":"([^"]*)"') or "" + local ts = tonumber(pairRaw:match('"timestamp":(%d+)')) or now + if a and (now - ts) < 20 then + local exp = dismissedPairingAddresses[a] + if not exp or now > exp then + if not state.bluetooth then state.bluetooth = {} end + local cur = state.bluetooth.pairingRequests or {} + local exists = false + for _, r in ipairs(cur) do if r.address == a and r.passkey == pk then exists = true; break end end + if not exists then state.bluetooth.pairingRequests = { { address = a, name = n, passkey = pk, timestamp = ts } }; render() end + end + end + end + + if activeLeftCard == "hotspot" and state.hotspot and state.hotspot.active and (now - lastHsPoll >= 1) then + lastHsPoll = now; sendCommand("hotspot", "refresh") + end +end + +noctalia.setUpdateInterval(500) + +noctalia.state.watch("network_state", function(newState) + if type(newState) == "table" then + state = newState + local now = os.time() + if state.bluetooth and state.bluetooth.pairedDevices then + local filtered = {} + for _, d in ipairs(state.bluetooth.pairedDevices) do + local la = (d.address or ""):lower() + local exp = removedDevices[la] + if not exp or now > exp then + local ov = deviceActionOverrides[la] + if ov and now < ov.expires then + if ov.connected ~= nil then d.connected = ov.connected end + if ov.trusted ~= nil then d.trusted, d.autoReconnect = ov.trusted, ov.trusted end + end + table.insert(filtered, d) + end + end + state.bluetooth.pairedDevices = filtered + end + render() + end +end) + +function onConfigChanged() render() end +render() diff --git a/network-toolkit/plugin.toml b/network-toolkit/plugin.toml new file mode 100644 index 00000000..f12b2c74 --- /dev/null +++ b/network-toolkit/plugin.toml @@ -0,0 +1,142 @@ +id = "autumn/network-toolkit" +name = "Network Toolkit" +version = "0.1.0" +plugin_api = 10 +author = "Autumn" +license = "MIT" +icon = "world" +description = "Unified control panel for Bluetooth, Wi-Fi, Ethernet, Hotspot, and DNS Switcher." +tags = ["network", "bluetooth", "bar", "panel", "service", "shortcut", "utility", "system", "indicator"] +dependencies = ["networkmanager", "iw", "ip", "qrencode", "bluez-utils"] + +[[setting]] +key = "refreshInterval" +type = "int" +label_key = "settings.refreshInterval.label" +description_key = "settings.refreshInterval.description" +default = 5 +min = 2 +max = 60 + +[[setting]] +key = "color" +type = "string" +label_key = "settings.color.label" +description_key = "settings.color.description" +default = "on_surface_variant" + +[[setting]] +key = "text_color" +type = "string" +label_key = "settings.text_color.label" +description_key = "settings.text_color.description" +default = "on_surface_variant" + +[[setting]] +key = "hotspot_ssid" +type = "string" +label_key = "settings.hotspot_ssid.label" +description_key = "settings.hotspot_ssid.description" +default = "Noctalia-Hotspot" + +[[setting]] +key = "hotspot_password" +type = "string" +label_key = "settings.hotspot_password.label" +description_key = "settings.hotspot_password.description" +default = "noctaliapass" + +[[setting]] +key = "hotspot_max_connections" +type = "int" +label_key = "settings.hotspot_max_connections.label" +description_key = "settings.hotspot_max_connections.description" +default = 8 +min = 1 +max = 32 + +[[setting]] +key = "custom_dns_1" +type = "string" +label_key = "settings.custom_dns_1.label" +description_key = "settings.custom_dns_1.description" +default = "" + +[[setting]] +key = "custom_dns_2" +type = "string" +label_key = "settings.custom_dns_2.label" +description_key = "settings.custom_dns_2.description" +default = "" + +[[setting]] +key = "custom_dns_3" +type = "string" +label_key = "settings.custom_dns_3.label" +description_key = "settings.custom_dns_3.description" +default = "" + +[[setting]] +key = "bluetooth_download_dir" +type = "string" +label_key = "settings.bluetooth_download_dir.label" +description_key = "settings.bluetooth_download_dir.description" +default = "~/Downloads" + +[[setting]] +key = "bluetooth_device_name" +type = "string" +label_key = "settings.bluetooth_device_name.label" +description_key = "settings.bluetooth_device_name.description" +default = "" + +[[setting]] +key = "widget_display_mode" +type = "select" +label_key = "settings.widget_display_mode.label" +description_key = "settings.widget_display_mode.description" +default = "network" +options = [ + { value = "network", label_key = "settings.widget_display_mode.network" }, + { value = "bluetooth", label_key = "settings.widget_display_mode.bluetooth" }, + { value = "dns", label_key = "settings.widget_display_mode.dns" }, + { value = "network_hotspot", label_key = "settings.widget_display_mode.network_hotspot" }, + { value = "network_bluetooth", label_key = "settings.widget_display_mode.network_bluetooth" }, + { value = "network_dns", label_key = "settings.widget_display_mode.network_dns" }, + { value = "bluetooth_dns", label_key = "settings.widget_display_mode.bluetooth_dns" }, + { value = "network_bluetooth_dns", label_key = "settings.widget_display_mode.network_bluetooth_dns" }, + { value = "network_hotspot_bluetooth_dns", label_key = "settings.widget_display_mode.network_hotspot_bluetooth_dns" }, +] + +[[setting]] +key = "widget_right_click" +type = "select" +label_key = "settings.widget_right_click.label" +description_key = "settings.widget_right_click.description" +default = "toggle_wifi" +options = [ + { value = "toggle_wifi", label_key = "settings.widget_right_click.toggle_wifi" }, + { value = "toggle_hs", label_key = "settings.widget_right_click.toggle_hs" }, + { value = "toggle_bt", label_key = "settings.widget_right_click.toggle_bt" }, +] + +[[service]] +id = "service" +entry = "service.luau" + +[[widget]] +id = "widget" +entry = "widget.luau" + +[[shortcut]] +id = "toggle" +entry = "shortcut.luau" + +[[panel]] +id = "panel" +entry = "panel.luau" +width = 700 +height = 505 +placement = "attached" +position = "top_right" +open_near_click = true \ No newline at end of file diff --git a/network-toolkit/scripts/bluetooth_helper b/network-toolkit/scripts/bluetooth_helper new file mode 100755 index 0000000000000000000000000000000000000000..40dcaa6e9da5fc6d2c5f0b355e6d16cd9aa4bb61 GIT binary patch literal 18048 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 literal 0 HcmV?d00001 diff --git a/network-toolkit/scripts/bluetooth_helper.c b/network-toolkit/scripts/bluetooth_helper.c new file mode 100644 index 00000000..4fea59b9 --- /dev/null +++ b/network-toolkit/scripts/bluetooth_helper.c @@ -0,0 +1,227 @@ +// Native BlueZ D-Bus agent helper for Bluetooth pairing +#define _GNU_SOURCE +#include +#include +#include +#include +#include +#include + +#define AGENT_PATH "/org/noctalia/bluetooth_helper" +#define JSON_PATH "/tmp/noctalia_bt_pairing.json" +#define ACT_PATH "/tmp/noctalia_bt_pairing_action" + +static void clean_files(void) { + unlink(JSON_PATH); + unlink(ACT_PATH); +} + +// Extract MAC address and alias from D-Bus object path +static void get_device_info(DBusConnection *conn, const char *dev_path, char *addr, char *name) { + strcpy(addr, dev_path); + strcpy(name, "Bluetooth Device"); + const char *p = strstr(dev_path, "dev_"); + if (p) { + strncpy(addr, p + 4, 17); + addr[17] = '\0'; + for (int i = 0; addr[i]; i++) if (addr[i] == '_') addr[i] = ':'; + } + DBusMessage *msg = dbus_message_new_method_call("org.bluez", dev_path, "org.freedesktop.DBus.Properties", "Get"); + if (!msg) return; + const char *iface = "org.bluez.Device1", *prop_name = "Alias"; + dbus_message_append_args(msg, DBUS_TYPE_STRING, &iface, DBUS_TYPE_STRING, &prop_name, DBUS_TYPE_INVALID); + DBusMessage *reply = dbus_connection_send_with_reply_and_block(conn, msg, 1000, NULL); + dbus_message_unref(msg); + if (reply) { + DBusMessageIter iter, sub; + if (dbus_message_iter_init(reply, &iter) && dbus_message_iter_get_arg_type(&iter) == DBUS_TYPE_VARIANT) { + dbus_message_iter_recurse(&iter, &sub); + if (dbus_message_iter_get_arg_type(&sub) == DBUS_TYPE_STRING) { + const char *val; + dbus_message_iter_get_basic(&sub, &val); + if (val && *val) strncpy(name, val, 63); + } + } + dbus_message_unref(reply); + } +} + +static int wait_user_action(void) { + time_t t0 = time(NULL); + while (time(NULL) - t0 < 20) { + FILE *f = fopen(ACT_PATH, "r"); + if (f) { + char buf[32] = {0}; + if (fgets(buf, sizeof(buf), f)) { + fclose(f); + clean_files(); + return (strcasestr(buf, "accept") != NULL || strcasestr(buf, "yes") != NULL); + } + fclose(f); + } + usleep(50000); + } + clean_files(); + return 0; +} + +// Write pairing details to JSON and await user response +static int handle_req(DBusConnection *conn, const char *dev_path, const char *passkey, int wait) { + char addr[64] = {0}, name[64] = {0}; + get_device_info(conn, dev_path, addr, name); + FILE *f = fopen(JSON_PATH, "w"); + if (f) { + fprintf(f, "{\"address\":\"%s\",\"name\":\"%s\",\"passkey\":\"%s\",\"timestamp\":%ld}\n", addr, name, passkey ? passkey : "", (long)time(NULL)); + fflush(f); + fclose(f); + } + char cmd[256]; + if (passkey && *passkey) snprintf(cmd, sizeof(cmd), "notify-send -u normal -t 6000 'Network Toolkit' '%s requested to pair (PIN: %s)' 2>/dev/null", name, passkey); + else snprintf(cmd, sizeof(cmd), "notify-send -u normal -t 6000 'Network Toolkit' '%s requested to pair' 2>/dev/null", name); + system(cmd); + return wait ? wait_user_action() : 1; +} + +static DBusHandlerResult agent_filter(DBusConnection *conn, DBusMessage *msg, void *user_data) { + const char *member = dbus_message_get_member(msg); + if (!member) return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + + if (strcmp(member, "Release") == 0) { + DBusMessage *reply = dbus_message_new_method_return(msg); + dbus_connection_send(conn, reply, NULL); + dbus_message_unref(reply); + return DBUS_HANDLER_RESULT_HANDLED; + } + if (strcmp(member, "AuthorizeService") == 0) { + DBusMessage *reply = dbus_message_new_method_return(msg); + dbus_connection_send(conn, reply, NULL); + dbus_message_unref(reply); + return DBUS_HANDLER_RESULT_HANDLED; + } + if (strcmp(member, "RequestAuthorization") == 0) { + const char *dev = NULL; + dbus_message_get_args(msg, NULL, DBUS_TYPE_OBJECT_PATH, &dev, DBUS_TYPE_INVALID); + if (handle_req(conn, dev ? dev : "", "", 1)) { + DBusMessage *reply = dbus_message_new_method_return(msg); + dbus_connection_send(conn, reply, NULL); + dbus_message_unref(reply); + } else { + DBusMessage *err = dbus_message_new_error(msg, "org.bluez.Error.Rejected", "Pairing rejected"); + dbus_connection_send(conn, err, NULL); + dbus_message_unref(err); + } + return DBUS_HANDLER_RESULT_HANDLED; + } + if (strcmp(member, "RequestConfirmation") == 0) { + const char *dev = NULL; + dbus_uint32_t passkey = 0; + dbus_message_get_args(msg, NULL, DBUS_TYPE_OBJECT_PATH, &dev, DBUS_TYPE_UINT32, &passkey, DBUS_TYPE_INVALID); + char pbuf[16]; + snprintf(pbuf, sizeof(pbuf), "%06u", passkey); + if (handle_req(conn, dev ? dev : "", pbuf, 1)) { + DBusMessage *reply = dbus_message_new_method_return(msg); + dbus_connection_send(conn, reply, NULL); + dbus_message_unref(reply); + } else { + DBusMessage *err = dbus_message_new_error(msg, "org.bluez.Error.Rejected", "Pairing rejected"); + dbus_connection_send(conn, err, NULL); + dbus_message_unref(err); + } + return DBUS_HANDLER_RESULT_HANDLED; + } + if (strcmp(member, "RequestPasskey") == 0) { + const char *dev = NULL; + dbus_message_get_args(msg, NULL, DBUS_TYPE_OBJECT_PATH, &dev, DBUS_TYPE_INVALID); + if (handle_req(conn, dev ? dev : "", "", 1)) { + DBusMessage *reply = dbus_message_new_method_return(msg); + dbus_uint32_t passkey = 0; + dbus_message_append_args(reply, DBUS_TYPE_UINT32, &passkey, DBUS_TYPE_INVALID); + dbus_connection_send(conn, reply, NULL); + dbus_message_unref(reply); + } else { + DBusMessage *err = dbus_message_new_error(msg, "org.bluez.Error.Rejected", "Pairing rejected"); + dbus_connection_send(conn, err, NULL); + dbus_message_unref(err); + } + return DBUS_HANDLER_RESULT_HANDLED; + } + if (strcmp(member, "RequestPinCode") == 0) { + const char *dev = NULL; + dbus_message_get_args(msg, NULL, DBUS_TYPE_OBJECT_PATH, &dev, DBUS_TYPE_INVALID); + if (handle_req(conn, dev ? dev : "", "0000", 1)) { + DBusMessage *reply = dbus_message_new_method_return(msg); + const char *pin = "0000"; + dbus_message_append_args(reply, DBUS_TYPE_STRING, &pin, DBUS_TYPE_INVALID); + dbus_connection_send(conn, reply, NULL); + dbus_message_unref(reply); + } else { + DBusMessage *err = dbus_message_new_error(msg, "org.bluez.Error.Rejected", "Pairing rejected"); + dbus_connection_send(conn, err, NULL); + dbus_message_unref(err); + } + return DBUS_HANDLER_RESULT_HANDLED; + } + if (strcmp(member, "DisplayPasskey") == 0) { + const char *dev = NULL; + dbus_uint32_t passkey = 0; + dbus_uint16_t entered = 0; + dbus_message_get_args(msg, NULL, DBUS_TYPE_OBJECT_PATH, &dev, DBUS_TYPE_UINT32, &passkey, DBUS_TYPE_UINT16, &entered, DBUS_TYPE_INVALID); + char pbuf[16]; + snprintf(pbuf, sizeof(pbuf), "%06u", passkey); + handle_req(conn, dev ? dev : "", pbuf, 0); + DBusMessage *reply = dbus_message_new_method_return(msg); + dbus_connection_send(conn, reply, NULL); + dbus_message_unref(reply); + return DBUS_HANDLER_RESULT_HANDLED; + } + if (strcmp(member, "DisplayPinCode") == 0) { + const char *dev = NULL, *pin = NULL; + dbus_message_get_args(msg, NULL, DBUS_TYPE_OBJECT_PATH, &dev, DBUS_TYPE_STRING, &pin, DBUS_TYPE_INVALID); + handle_req(conn, dev ? dev : "", pin ? pin : "", 0); + DBusMessage *reply = dbus_message_new_method_return(msg); + dbus_connection_send(conn, reply, NULL); + dbus_message_unref(reply); + return DBUS_HANDLER_RESULT_HANDLED; + } + if (strcmp(member, "Cancel") == 0) { + clean_files(); + DBusMessage *reply = dbus_message_new_method_return(msg); + dbus_connection_send(conn, reply, NULL); + dbus_message_unref(reply); + return DBUS_HANDLER_RESULT_HANDLED; + } + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; +} + +int main(void) { + clean_files(); + DBusError err; + dbus_error_init(&err); + DBusConnection *conn = dbus_bus_get(DBUS_BUS_SYSTEM, &err); + if (!conn) return 1; + + DBusObjectPathVTable vtable = { .message_function = agent_filter }; + dbus_connection_register_object_path(conn, AGENT_PATH, &vtable, NULL); + + const char *path = AGENT_PATH, *cap = "KeyboardDisplay"; + DBusMessage *msg = dbus_message_new_method_call("org.bluez", "/org/bluez", "org.bluez.AgentManager1", "RegisterAgent"); + if (msg) { + dbus_message_append_args(msg, DBUS_TYPE_OBJECT_PATH, &path, DBUS_TYPE_STRING, &cap, DBUS_TYPE_INVALID); + DBusMessage *rep = dbus_connection_send_with_reply_and_block(conn, msg, 2000, NULL); + if (rep) dbus_message_unref(rep); + dbus_message_unref(msg); + } + + msg = dbus_message_new_method_call("org.bluez", "/org/bluez", "org.bluez.AgentManager1", "RequestDefaultAgent"); + if (msg) { + dbus_message_append_args(msg, DBUS_TYPE_OBJECT_PATH, &path, DBUS_TYPE_INVALID); + DBusMessage *rep = dbus_connection_send_with_reply_and_block(conn, msg, 2000, NULL); + if (rep) dbus_message_unref(rep); + dbus_message_unref(msg); + } + + system("bluetoothctl discoverable on 2>/dev/null; bluetoothctl pairable on 2>/dev/null"); + + while (dbus_connection_read_write_dispatch(conn, -1)) {} + return 0; +} diff --git a/network-toolkit/scripts/hotspot_helper.sh b/network-toolkit/scripts/hotspot_helper.sh new file mode 100755 index 00000000..073fd405 --- /dev/null +++ b/network-toolkit/scripts/hotspot_helper.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# Creates virtual AP interface for concurrent client and hotspot operation +set -euo pipefail + +BASE="${1:-${HOTSPOT_BASE:-}}" +if [ -z "$BASE" ]; then + BASE=$(nmcli -t -f DEVICE,TYPE device 2>/dev/null | awk -F: '$2=="wifi" && $1!~/-ap$/ && $1!~/^p2p-/ {print $1; exit}') + [ -z "$BASE" ] && command -v iw >/dev/null 2>&1 && BASE=$(iw dev 2>/dev/null | awk '/Interface/ {if ($2 !~ /-ap$/ && $2 !~ /^p2p-/) {print $2; exit}}') + [ -z "$BASE" ] && BASE="wlan0" +fi + +AP="${2:-${HOTSPOT_IFACE:-${BASE}-ap}}" +[ -d "/sys/class/net/${AP}" ] && { ip link set "${AP}" up 2>/dev/null || true; exit 0; } + +RUN() { + if [ "$(id -u)" -eq 0 ]; then "$@" 2>/dev/null || true + elif command -v sudo >/dev/null 2>&1 && sudo -n true 2>/dev/null; then sudo -n "$@" 2>/dev/null || true + elif command -v pkexec >/dev/null 2>&1; then pkexec "$@" 2>/dev/null || true + else "$@" 2>/dev/null || true + fi +} + +RUN iw dev "${BASE}" interface add "${AP}" type __ap +ip link set "${AP}" up 2>/dev/null || true diff --git a/network-toolkit/service.luau b/network-toolkit/service.luau new file mode 100644 index 00000000..d7019a6a --- /dev/null +++ b/network-toolkit/service.luau @@ -0,0 +1,116 @@ +--!nonstrict +-- Network Toolkit — Background service and event coordinator +local net = require("./services/net.luau") +local hotspot = require("./services/hotspot.luau") +local dns = require("./services/dns.luau") +local bt = require("./services/bluetooth.luau") + +net.init(); hotspot.init(); dns.init(); bt.init() + +local isFirstSync = true +local lastNet, lastEth, lastPairKey = "", false, nil +local LAST_DNS = "/tmp/network-toolkit-last-dns.txt" + +local function publishAll() + local n, b = net.getStatus(), bt.getStatus() + + if n.wifiConnected and n.ssid ~= "" and n.ssid ~= lastNet then + lastNet = n.ssid + dns.enforce() + if not isFirstSync then + noctalia.notify(noctalia.tr("title"), noctalia.tr("notifications.connected_to", { ssid = n.ssid })) + end + elseif n.ethernetConnected and not lastEth then + lastEth = true + dns.enforce() + if not isFirstSync then + noctalia.notify(noctalia.tr("title"), "Connected to Ethernet") + end + end + if not n.wifiConnected then lastNet = "" end + if not n.ethernetConnected then lastEth = false end + isFirstSync = false + + if b.pairingRequests and #b.pairingRequests > 0 then + local r = b.pairingRequests[1] + local key = (r.address or "") .. ":" .. (r.passkey or "") .. ":" .. (r.timestamp or 0) + if key ~= lastPairKey then + lastPairKey = key + local msg = (r.passkey and r.passkey ~= "") and string.format("%s requested to pair (Passkey: %s)", r.name or r.address, r.passkey) or string.format("%s requested to pair", r.name or r.address) + noctalia.notify(noctalia.tr("title"), msg) + end + else lastPairKey = nil end + + noctalia.state.set("network_state", { nonce = os.time(), net = n, hotspot = hotspot.getStatus(), dns = dns.getStatus(), bluetooth = b }) +end + +noctalia.state.watch("network_command", function(cmd) + if type(cmd) ~= "table" then return end + local d, a, p = cmd.domain, cmd.action, cmd.payload or {} + + if d == "hotspot" then + if a == "toggle" then hotspot.toggle(not hotspot.getStatus().active, function() publishAll(); net.refresh(publishAll) end) + elseif a == "refresh" then hotspot.refresh(publishAll) end + elseif d == "wifi" then + if a == "toggle" then net.toggleWifi(not net.getStatus().wifiEnabled, publishAll) + elseif a == "disconnect" then net.disconnect(publishAll) + elseif a == "auto_connect" then net.autoConnect(publishAll) + elseif a == "connect" then + net.connectWifi(p.ssid or "", p.password or "", function(_s, ok, msg, wasHs) + if not ok then + local l = (msg or ""):lower() + local isPwd = l:find("secret") or l:find("password") or l:find("802-11-wireless-security") + noctalia.notifyError(noctalia.tr("title"), noctalia.tr(isPwd and "notifications.incorrect_password" or "notifications.connect_failed", { ssid = p.ssid or "" })) + else + noctalia.notify(noctalia.tr("title"), noctalia.tr("notifications.connected_to", { ssid = p.ssid or "" })) + end + if wasHs then hotspot.toggle(true, publishAll) end + publishAll() + end) + elseif a == "forget" then net.forgetWifi(p.ssid or "", publishAll) + elseif a == "scan" then net.scan(publishAll) end + elseif d == "dns" then + if a == "apply" then + local prov, srv = (type(p) == "table") and (p.provider or "custom") or (p or "default"), (type(p) == "table") and (p.servers or "") or "" + if prov ~= "default" then pcall(noctalia.writeFile, LAST_DNS, prov == "custom" and ("custom=" .. srv) or prov) end + publishAll(); dns.apply(prov, srv, publishAll) + elseif a == "toggle" then + if dns.getStatus().activeProvider == "default" then + local ok, last = pcall(noctalia.readFile, LAST_DNS) + last = (ok and type(last) == "string" and last ~= "") and last:match("^%s*(.-)%s*$") or "cloudflare" + if last:sub(1, 7) == "custom=" then dns.apply("custom", last:sub(8), publishAll) else dns.apply(last, "", publishAll) end + else dns.apply("default", "", publishAll) end + publishAll() + end + elseif d == "bluetooth" then + local addr = p.address or "" + if a == "toggle" then bt.toggle(not bt.getStatus().enabled, publishAll) + elseif a == "scan" then bt.scan(publishAll) + elseif a == "connect" then bt.connect(addr, publishAll) + elseif a == "disconnect" then bt.disconnect(addr, publishAll) + elseif a == "pair" then bt.pair(addr, publishAll) + elseif a == "accept_pair" then bt.acceptPair(addr, publishAll) + elseif a == "reject_pair" then bt.rejectPair(addr, publishAll) + elseif a == "toggle_autoreconnect" then bt.toggleAutoReconnect(addr, publishAll) + elseif a == "remove" then bt.remove(addr, publishAll) + elseif a == "discoverable" then bt.toggleDiscoverable(not bt.getStatus().discoverable, publishAll) + elseif a == "refresh" then bt.refresh(publishAll) end + elseif d == "system" and a == "refresh" then + net.scan(publishAll); hotspot.refresh(publishAll); dns.refresh(publishAll); bt.scan(publishAll) + end +end) + +function update() + net.refresh(publishAll); hotspot.refresh(publishAll); dns.refresh(publishAll); bt.refresh(publishAll) + local pSec = tonumber(noctalia.getConfig("refreshInterval")) or 5 + noctalia.setUpdateInterval((hotspot.getStatus().active and 1500 or (pSec * 1000))) +end + +function onConfigChanged() + hotspot.updateConfig(publishAll) + update() +end + +noctalia.setUpdateInterval(5000) +publishAll() +update() diff --git a/network-toolkit/services/bluetooth.luau b/network-toolkit/services/bluetooth.luau new file mode 100644 index 00000000..3c375d7b --- /dev/null +++ b/network-toolkit/services/bluetooth.luau @@ -0,0 +1,258 @@ +--!nonstrict +-- Bluetooth device management and BlueZ agent interface +local BT = {} +local btctlOk = noctalia.commandExists("bluetoothctl") +local refreshing = false +local pendingActions = {} +local btPowerLock, discLock = 0, 0 + +local state = { + available = btctlOk, enabled = false, discoverable = false, scanning = false, + pairedDevices = {}, availableDevices = {}, pairingRequests = {}, connectedAddrs = {}, + connectingAddrs = {}, alias = "", error = "" +} + +local function btTypeGlyph(name) + local l = (name or ""):lower() + if l:find("headset") or l:find("wh%-") or l:find("wf%-") or l:find("quietcomfort") or l:find("airpod") or l:find("buds") or l:find("freebuds") or l:find("earphone") or l:find("tune") then return "headphones" + elseif l:find("speaker") or l:find("soundlink") or l:find("flip") or l:find("charge") or l:find("boom") or l:find("go") or l:find("echo") then return "speaker" + elseif l:find("mouse") or l:find("trackpad") then return "mouse" + elseif l:find("keyboard") or l:find("keychron") or l:find("k%d%d%d") then return "keyboard" + elseif l:find("controller") or l:find("gamepad") or l:find("xbox") or l:find("dualsense") or l:find("dualshock") then return "device-gamepad" + elseif l:find("phone") or l:find("pixel") or l:find("iphone") or l:find("galaxy") or l:find("oneplus") or l:find("redmi") or l:find("xiaomi") or l:find("nothing") then return "device-mobile" + elseif l:find("tv") or l:find("display") or l:find("smart screen") then return "device-tv" + elseif l:find("watch") or l:find("band") or l:find("fitbit") or l:find("garmin") then return "device-watch" + end + return "bluetooth" +end + +local function ensureAgent() + local bin = noctalia.pluginDir() .. "/scripts/bluetooth_helper" + noctalia.runAsync(string.format("pgrep -f bluetooth_helper >/dev/null 2>&1 || (setsid '%s' >/dev/null 2>&1 &)", bin), function() end, 2000) +end + +function BT.init() + state.available = btctlOk + if not state.available then state.error = noctalia.tr("errors.bluetoothctl_not_found") end + ensureAgent() + return state.available +end + +function BT.getStatus() return state end + +local BATCH = [[ +echo "=SHOW="; bluetoothctl show 2>/dev/null +echo "=PAIRED="; bluetoothctl devices Paired 2>/dev/null +echo "=ALL="; bluetoothctl devices 2>/dev/null +echo "=INFOS="; bluetoothctl devices Paired 2>/dev/null | awk '{print $2}' | while read -r mac; do + echo "---DEV $mac---"; bluetoothctl info "$mac" 2>/dev/null +done +echo "=AGENT="; cat /tmp/noctalia_bt_pairing.json 2>/dev/null || true +]] + +function BT.refresh(callback) + if not state.available or refreshing then if callback then callback(state) end; return end + refreshing = true + ensureAgent() + + noctalia.runAsync(BATCH, function(res) + refreshing = false + local out = res.stdout or "" + local showSec = out:match("=SHOW=(.-)=PAIRED=") or "" + local pairSec = out:match("=PAIRED=(.-)=ALL=") or "" + local allSec = out:match("=ALL=(.-)=INFOS=") or "" + local infoSec = out:match("=INFOS=(.-)=AGENT=") or "" + local agentSec = out:match("=AGENT=(.*)") or "" + + if os.time() >= btPowerLock then state.enabled = (showSec:find("Powered:%s*yes") ~= nil) end + if os.time() >= discLock then state.discoverable = (showSec:find("Discoverable:%s*yes") ~= nil) end + local alias = showSec:match("Alias:%s*(.-)\n") or showSec:match("Name:%s*(.-)\n") + state.alias = alias and alias:match("^%s*(.-)%s*$") or "" + + if not state.enabled then + state.pairedDevices, state.availableDevices, state.pairingRequests, state.connectedAddrs = {}, {}, {}, {} + if callback then callback(state) end + return + end + + local devConn, devTrust, devName = {}, {}, {} + local curDev = nil + for line in infoSec:gmatch("[^\r\n]+") do + local h = line:match("%-%-%-DEV%s+(%S+)%-%-%-") + if h then curDev = h + elseif curDev then + if line:find("Connected:%s*yes") then devConn[curDev] = true end + if line:find("Trusted:%s*yes") then devTrust[curDev] = true end + local al = line:match("Alias:%s*(.+)") or line:match("Name:%s*(.+)") + if al and not devName[curDev] then devName[curDev] = al:match("^%s*(.-)%s*$") end + end + end + state.connectedAddrs = devConn + + local nameMap, paired, pairedMap = {}, {}, {} + for line in allSec:gmatch("[^\r\n]+") do + local a, n = line:match("^Device%s+(%S+)%s+(.+)$") + if a and n then nameMap[a] = n end + end + + local now = os.time() + for line in pairSec:gmatch("[^\r\n]+") do + local a, n = line:match("^Device%s+(%S+)%s+(.+)$") + if a and n then + pairedMap[a] = true + local dName = devName[a] or n + local la = a:lower() + local isC = (devConn[a] == true) + local isPending = pendingActions[la] + if isPending then + if now < isPending.expires then + if isC == isPending.connected then pendingActions[la] = nil + else isC = isPending.connected end + else pendingActions[la] = nil end + end + table.insert(paired, { + address = a, name = dName, connected = isC, + connecting = (state.connectingAddrs[la] == true), + trusted = (devTrust[a] == true), autoReconnect = (devTrust[a] == true), + icon = btTypeGlyph(dName) + }) + end + end + state.pairedDevices = paired + + -- grabs pairing requests from native agent + local reqs = {} + if agentSec and agentSec ~= "" then + local a = agentSec:match('"address":%s*"([^"]+)"') + local n = agentSec:match('"name":%s*"([^"]+)"') or a + local pk = agentSec:match('"passkey":%s*"([^"]*)"') or "" + local ts = tonumber(agentSec:match('"timestamp":%s*(%d+)')) or now + if a and (now - ts) <= 20 then + table.insert(reqs, { address = a, name = n, passkey = pk, timestamp = ts, icon = btTypeGlyph(n) }) + end + end + state.pairingRequests = reqs + + -- Available + local avail = {} + for a, n in pairs(nameMap) do + if not pairedMap[a] and n ~= "" and a:find(":") then + table.insert(avail, { address = a, name = n, icon = btTypeGlyph(n), connected = (devConn[a] == true) }) + end + end + state.availableDevices = avail + + if callback then callback(state) end + end, 6000) +end + +function BT.scan(callback) + if not state.available or not state.enabled then BT.refresh(callback); return end + state.scanning = true + if callback then callback(state) end + noctalia.runAsync("timeout 4 bluetoothctl scan on 2>/dev/null || true", function() + state.scanning = false + BT.refresh(callback) + end, 6000) +end + +function BT.toggle(enable, callback) + btPowerLock = os.time() + 3 + state.enabled = enable + if not enable then state.pairedDevices, state.availableDevices, state.pairingRequests, state.connectedAddrs = {}, {}, {}, {} end + if callback then callback(state) end + local cmd = enable and "rfkill unblock bluetooth 2>/dev/null; bluetoothctl power on 2>/dev/null" or "bluetoothctl power off 2>/dev/null" + noctalia.runAsync(cmd, function() + BT.refresh(function(s) if enable and callback then BT.scan(callback) elseif callback then callback(s) end end) + end, 3000) +end + +function BT.connect(addr, callback) + local la = (addr or ""):lower() + state.connectingAddrs[la] = true + if state.pairedDevices then + for _, d in ipairs(state.pairedDevices) do if (d.address or ""):lower() == la then d.connecting = true; break end end + end + if callback then callback(state) end + + local cmd = string.format("timeout 4 bluetoothctl connect %s 2>&1 || (bluetoothctl disconnect %s 2>/dev/null; true)", addr, addr) + noctalia.runAsync(cmd, function() + state.connectingAddrs[la] = nil + pendingActions[la] = nil + BT.refresh(function(s) + local isConn = s.connectedAddrs and (s.connectedAddrs[addr] or s.connectedAddrs[la]) + if not isConn then + noctalia.runAsync(string.format("bluetoothctl disconnect %s 2>/dev/null", addr), function() end, 1000) + if noctalia.notifyError then pcall(noctalia.notifyError, noctalia.tr("title"), "Connection failed") + else pcall(noctalia.notify, noctalia.tr("title"), "Connection failed") end + end + if callback then callback(s) end + end) + end, 5000) +end + +function BT.disconnect(addr, callback) + local la = (addr or ""):lower() + pendingActions[la] = { connected = false, expires = os.time() + 4 } + state.connectedAddrs[addr], state.connectedAddrs[la] = nil, nil + if state.pairedDevices then + for _, d in ipairs(state.pairedDevices) do if (d.address or ""):lower() == la then d.connected = false; break end end + end + if callback then callback(state) end + noctalia.runAsync("bluetoothctl disconnect " .. addr .. " 2>/dev/null", function() BT.refresh(callback) end, 3000) +end + +function BT.pair(addr, callback) + noctalia.runAsync(string.format("bluetoothctl pair %s 2>/dev/null; bluetoothctl connect %s 2>/dev/null", addr, addr), function() BT.refresh(callback) end, 12000) +end + +function BT.toggleAutoReconnect(addr, callback) + local isTr = false + if state.pairedDevices then + for _, d in ipairs(state.pairedDevices) do + if d.address == addr then d.trusted = not d.trusted; d.autoReconnect = d.trusted; isTr = d.trusted; break end + end + end + if callback then callback(state) end + noctalia.runAsync(string.format("bluetoothctl %s %s 2>/dev/null", isTr and "trust" or "untrust", addr), function() BT.refresh(callback) end, 3000) +end + +function BT.acceptPair(addr, callback) + state.pairingRequests = {} + if callback then callback(state) end + pcall(noctalia.writeFile, "/tmp/noctalia_bt_pairing_action", "accept") + local cmd = string.format("echo -n 'accept' > /tmp/noctalia_bt_pairing_action; rm -f /tmp/noctalia_bt_pairing.json; sleep 0.2; bluetoothctl connect %s 2>/dev/null", addr) + noctalia.runAsync(cmd, function() BT.refresh(callback) end, 10000) +end + +function BT.rejectPair(addr, callback) + state.pairingRequests = {} + if callback then callback(state) end + pcall(noctalia.writeFile, "/tmp/noctalia_bt_pairing_action", "reject") + local cmd = string.format("echo -n 'reject' > /tmp/noctalia_bt_pairing_action; rm -f /tmp/noctalia_bt_pairing.json; bluetoothctl cancel-pairing %s 2>/dev/null || true", addr) + noctalia.runAsync(cmd, function() BT.refresh(callback) end, 2000) +end + +function BT.remove(addr, callback) + local la = (addr or ""):lower() + pendingActions[la] = nil + state.connectedAddrs[addr], state.connectedAddrs[la] = nil, nil + if state.pairedDevices then + local p = {} + for _, d in ipairs(state.pairedDevices) do if (d.address or ""):lower() ~= la then table.insert(p, d) end end + state.pairedDevices = p + end + state.pairingRequests = {} + if callback then callback(state) end + noctalia.runAsync(string.format("rm -f /tmp/noctalia_bt_pairing.json; bluetoothctl disconnect %s 2>/dev/null || true; bluetoothctl untrust %s 2>/dev/null || true; bluetoothctl remove %s 2>/dev/null", addr, addr, addr), function() BT.refresh(callback) end, 3000) +end + +function BT.setDiscoverable(enable, callback) + discLock = os.time() + 3 + state.discoverable = enable + if callback then callback(state) end + noctalia.runAsync("bluetoothctl discoverable " .. (enable and "on" or "off") .. " 2>/dev/null", function() BT.refresh(callback) end, 3000) +end +BT.toggleDiscoverable = BT.setDiscoverable + +return BT diff --git a/network-toolkit/services/dns.luau b/network-toolkit/services/dns.luau new file mode 100644 index 00000000..d7fa398e --- /dev/null +++ b/network-toolkit/services/dns.luau @@ -0,0 +1,133 @@ +--!nonstrict +-- Persistent DNS configuration service +local DNS = {} +local nmcliOk = noctalia.commandExists("nmcli") +local FILE = "/tmp/noctalia_device_dns.json" + +local BUILTIN = { + { id = "default", label = "System Default (ISP)", ip = "", glyph = "shield" }, + { id = "cloudflare", label = "Cloudflare", ip = "1.1.1.1 1.0.0.1", glyph = "cloud" }, + { id = "google", label = "Google", ip = "8.8.8.8 8.8.4.4", glyph = "brand-google" }, + { id = "quad9", label = "Quad9", ip = "9.9.9.9 149.112.112.112", glyph = "lock" }, + { id = "adguard", label = "AdGuard", ip = "94.140.14.14 94.140.15.15", glyph = "shield-check" }, +} + +local current = BUILTIN[1] +local changing, refreshing = false, false + +local function validIp(ip) + local a, b, c, d = ip:match("^(%d+)%.(%d+)%.(%d+)%.(%d+)$") + return a and #a <= 3 and #b <= 3 and #c <= 3 and #d <= 3 and tonumber(a) <= 255 and tonumber(b) <= 255 and tonumber(c) <= 255 and tonumber(d) <= 255 +end + +local function validSpec(spec) + local n = 0 + for tok in spec:gmatch("%S+") do + n += 1 + if n > 2 or not validIp(tok) then return false end + end + return n > 0 +end + +function DNS.getPresets() + local list = {} + for _, p in ipairs(BUILTIN) do table.insert(list, p) end + for i = 1, 3 do + local val = noctalia.getConfig("custom_dns_" .. i) + if type(val) == "string" and val ~= "" then + local name, ip = val:match("^([^=]+)=(.*)$") + name = name and name:match("^%s*(.-)%s*$") or val:match("^%s*(.-)%s*$") + ip = ip and ip:match("^%s*(.-)%s*$") or name + if validSpec(ip) then table.insert(list, { id = "custom_" .. i, label = name, ip = ip, glyph = "server" }) end + end + end + return list +end + +local function findEntry(id, customIp) + if id == "custom" and type(customIp) == "string" and customIp ~= "" then + local ip = customIp:match("^%s*(.-)%s*$") + return { id = "custom", label = "Custom (" .. ip .. ")", ip = ip, glyph = "server" } + end + for _, p in ipairs(DNS.getPresets()) do if p.id == id then return p end end + return BUILTIN[1] +end + +local function readSaved() + local ok, c = pcall(noctalia.readFile, FILE) + if ok and type(c) == "string" and c ~= "" then + local p, s, l = c:match('"provider"%s*:%s*"([^"]+)"'), c:match('"servers"%s*:%s*"([^"]*)"'), c:match('"label"%s*:%s*"([^"]*)"') + if p then return { provider = p, servers = s or "", label = l } end + end + return nil +end + +local function writeSaved(p, s, l) + pcall(noctalia.writeFile, FILE, string.format('{"provider":"%s","servers":"%s","label":"%s"}', p, s, l or "")) +end + +local function applyInternal(entry, callback) + local isDef = (entry.id == "default" or entry.ip == "") + local safeIp = isDef and "" or entry.ip:gsub("[^%d%. ]", "") + local script = string.format([[ +nmcli -t -f UUID,TYPE,DEVICE connection show --active 2>/dev/null | while IFS=: read -r u t d; do + [ -z "$u" ] || [ "$d" = "lo" ] && continue + case "$d" in *-ap|p2p-dev-*) continue ;; esac + [ "$(nmcli -g ipv4.method connection show uuid "$u" 2>/dev/null)" = "shared" ] && continue + if [ "%s" = "1" ]; then + nmcli connection modify "$u" ipv4.dns "" ipv4.ignore-auto-dns no 2>/dev/null || true + else + nmcli connection modify "$u" ipv4.dns "%s" ipv4.ignore-auto-dns yes 2>/dev/null || true + fi + nmcli device reapply "$d" 2>/dev/null || true +done +]], isDef and "1" or "0", safeIp) + + noctalia.runAsync(script, function(res) if callback then callback(res.exitCode == 0) end end, 6000) +end + +function DNS.getStatus() + return { available = nmcliOk, activeProvider = current.id, current = current, currentServers = current.ip, changing = changing, presets = DNS.getPresets() } +end + +function DNS.init() + if not nmcliOk then return false end + local s = readSaved() + if s and s.provider and s.provider ~= "default" then + current = findEntry(s.provider, s.servers) + applyInternal(current, nil) + else + current = BUILTIN[1] + end + return true +end + +function DNS.refresh(callback) + if not nmcliOk or refreshing then if callback then callback(DNS.getStatus()) end; return end + refreshing = true + local s = readSaved() + current = (s and s.provider and s.provider ~= "default") and findEntry(s.provider, s.servers) or BUILTIN[1] + noctalia.runAsync("nmcli -t -f TYPE,DEVICE,UUID connection show --active 2>/dev/null", function() + refreshing = false + if callback then callback(DNS.getStatus()) end + end, 4000) +end + +function DNS.apply(providerId, customServers, callback) + local target = findEntry(providerId, customServers) + current, changing = target, true + writeSaved(target.id, target.ip, target.label) + applyInternal(target, function(ok) + changing = false + if ok then noctalia.notify(noctalia.tr("title"), noctalia.tr("notifications.dns_switched", { provider = target.label })) + else noctalia.notifyError(noctalia.tr("title"), noctalia.tr("notifications.dns_switch_failed")) end + DNS.refresh(callback) + end) +end + +function DNS.enforce(callback) + if current and current.id ~= "default" then applyInternal(current, callback) + elseif callback then callback(true) end +end + +return DNS diff --git a/network-toolkit/services/hotspot.luau b/network-toolkit/services/hotspot.luau new file mode 100644 index 00000000..593a4102 --- /dev/null +++ b/network-toolkit/services/hotspot.luau @@ -0,0 +1,180 @@ +--!nonstrict +-- Hotspot management with concurrent Wi-Fi station and AP support +local Hotspot = {} +local nmcliOk, ipOk, iwOk = noctalia.commandExists("nmcli"), noctalia.commandExists("ip"), noctalia.commandExists("iw") +local refreshing = false +local hsPowerLock = 0 +local SCRIPT = noctalia.pluginDir() .. "/scripts/hotspot_helper.sh" + +local state = { + active = false, busy = false, available = nmcliOk and ipOk, + ssid = "Noctalia-Hotspot", connName = "Noctalia-Hotspot", + interface = "wlan0-ap", baseInterface = "wlan0", + clients = {}, clientCount = 0, maxConnections = 8, + concurrentSupported = false, maxChannels = 1, channel = 6, band = "bg", error = "" +} + +local function getCfg() + local s = noctalia.getConfig("hotspot_ssid") or "Noctalia-Hotspot" + local p = noctalia.getConfig("hotspot_password") or "noctaliapass" + return (s == "" and "Noctalia-Hotspot" or s), (p == "" or #p < 8) and "noctaliapass" or p +end + +function Hotspot.init() + state.available = nmcliOk and ipOk + if not state.available then state.error = noctalia.tr("errors.missing_command") end + state.ssid = getCfg() + state.maxConnections = tonumber(noctalia.getConfig("hotspot_max_connections")) or 8 + return state.available +end + +function Hotspot.getStatus() return state end + +local BATCH_CMD = [[ +echo "=A="; nmcli -t -f TYPE,STATE,DEVICE,NAME connection show --active 2>/dev/null +echo "=D="; nmcli -t -f DEVICE,TYPE,STATE device 2>/dev/null +echo "=I="; iw dev 2>/dev/null +echo "=N="; ip neighbor show 2>/dev/null +echo "=S="; iw dev 2>/dev/null | awk '/Interface.*-ap/{print $2}' | while read -r i; do iw dev "$i" station dump 2>/dev/null; done +echo "=L="; cat /var/lib/misc/dnsmasq.leases /var/lib/NetworkManager/dnsmasq*.leases 2>/dev/null || true +]] + +function Hotspot.refresh(callback) + if not state.available or refreshing then if callback then callback(state) end; return end + refreshing = true + local cfgSsid = getCfg() + state.maxConnections = tonumber(noctalia.getConfig("hotspot_max_connections")) or 8 + + noctalia.runAsync(BATCH_CMD, function(res) + refreshing = false + local out = res.stdout or "" + local actSec = out:match("=A=(.-)=D=") or "" + local devSec = out:match("=D=(.-)=I=") or "" + local iwSec = out:match("=I=(.-)=N=") or "" + local nbrSec = out:match("=N=(.-)=S=") or "" + local staSec = out:match("=S=(.-)=L=") or "" + local lseSec = out:match("=L=(.*)") or "" + + local isActive, apDev, connName = false, "", "" + for line in actSec:gmatch("[^\r\n]+") do + local _, devState, d, name = line:match("^([^:]+):([^:]+):([^:]+):(.*)$") + if name and devState == "activated" and (name:lower():find("hotspot") or name == cfgSsid or name == "Noctalia-Hotspot") then + isActive, apDev, connName = true, d, name + break + end + end + + local baseDev = "" + for line in devSec:gmatch("[^\r\n]+") do + local d, typ, s = line:match("^([^:]+):([^:]+):([^:]+)") + if typ == "wifi" and d ~= apDev and not d:find("%-ap$") and not d:find("^p2p%-") then + if baseDev == "" or s == "connected" then baseDev = d end + end + end + if baseDev == "" then + for line in iwSec:gmatch("[^\r\n]+") do + local ifn = line:match("Interface%s+([%w%-_]+)") + if ifn and not ifn:find("%-ap$") and not ifn:find("^p2p%-") then baseDev = ifn; break end + end + end + state.baseInterface = baseDev ~= "" and baseDev or "wlan0" + + if apDev == "" then + for line in iwSec:gmatch("[^\r\n]+") do + local ifn = line:match("Interface%s+([%w%-_]+)") + if ifn and ifn:find("%-ap$") then apDev = ifn; break end + end + end + state.interface = apDev ~= "" and apDev or (state.baseInterface .. "-ap") + if os.time() >= hsPowerLock then state.active = isActive end + state.connName = connName ~= "" and connName or "Noctalia-Hotspot" + + -- find connected devices & ips + local clients = {} + for line in staSec:gmatch("[^\r\n]+") do + local mac = line:match("Station%s+([%x:]+)%s+%(on") + if mac then clients[mac:lower()] = { mac = mac:lower(), ip = "", name = "" } end + end + for line in lseSec:gmatch("[^\r\n]+") do + local _, mac, ip, name = line:match("^(%d+)%s+([%x:]+)%s+([%d%.]+)%s+(%S+)") + if mac and ip and clients[mac:lower()] then + clients[mac:lower()].ip = ip + if name and name ~= "*" then clients[mac:lower()].name = name end + end + end + for line in nbrSec:gmatch("[^\r\n]+") do + local ip, dev, mac = line:match("^([%d%.]+)%s+dev%s+([%w%-_]+)%s+lladdr%s+([%x:]+)") + if ip and dev and mac and dev:find("%-ap$") and clients[mac:lower()] and clients[mac:lower()].ip == "" then + clients[mac:lower()].ip = ip + end + end + + local cList = {} + for _, c in pairs(clients) do table.insert(cList, c) end + table.sort(cList, function(a, b) return a.mac < b.mac end) + state.clients, state.clientCount = cList, #cList + + if callback then callback(state) end + end, 4000) +end + +function Hotspot.detectCapabilities(callback) + noctalia.runAsync("iw phy 2>/dev/null; echo '=D='; nmcli -t -f DEVICE,TYPE device 2>/dev/null", function(res) + local out = res.stdout or "" + local phySec = out:match("(.-)=D=") or out + local ap = phySec:find("AP") ~= nil + local sta = phySec:find("managed") ~= nil + state.concurrentSupported = ap and sta + if callback then callback({ baseIface = state.baseInterface, concurrent = state.concurrentSupported, maxChannels = 1 }) end + end, 3000) +end + +function Hotspot.toggle(enable, callback) + if not state.available or state.busy then if callback then callback(state) end; return end + local ssid, pass = getCfg() + local sSsid, sPass = ssid:gsub("'", "'\\''"), pass:gsub("'", "'\\''") + hsPowerLock = os.time() + 4 + state.active, state.busy = enable, true + if callback then callback(state) end + + if not enable then + local target = state.interface ~= "" and state.interface or (state.baseInterface .. "-ap") + local downCmd = string.format("nmcli connection down 'Noctalia-Hotspot' 2>/dev/null || nmcli connection down '%s' 2>/dev/null || nmcli device disconnect '%s' 2>/dev/null || true", sSsid, target) + noctalia.runAsync(downCmd, function() + state.busy, state.active = false, false + Hotspot.refresh(callback) + end, 4000) + return + end + + local upCmd = string.format([[ +BASE='%s'; AP='%s' +[ ! -d "/sys/class/net/${AP}" ] && bash '%s' "$BASE" "$AP" >/dev/null 2>&1 || true +CHAN=$(iw dev "$BASE" info 2>/dev/null | awk '/channel/ {print $2; exit}') +[ -z "$CHAN" ] && CHAN=6 +[ "$CHAN" -gt 14 ] && BAND="a" || BAND="bg" + +UUID=$(nmcli -t -f UUID,NAME connection show 2>/dev/null | awk -F: '$2=="Noctalia-Hotspot" || $2=="'%s'" {print $1; exit}') +if [ -n "$UUID" ]; then + nmcli connection modify "$UUID" connection.id "Noctalia-Hotspot" connection.interface-name "$AP" 802-11-wireless.ssid '%s' 802-11-wireless.mode ap 802-11-wireless.band "$BAND" 802-11-wireless.channel "$CHAN" 802-11-wireless-security.key-mgmt wpa-psk 802-11-wireless-security.psk '%s' ipv4.method shared ipv6.method disabled connection.autoconnect no 2>/dev/null || true +else + nmcli connection add type wifi ifname "$AP" con-name 'Noctalia-Hotspot' ssid '%s' 802-11-wireless.mode ap 802-11-wireless.band "$BAND" 802-11-wireless.channel "$CHAN" wifi-sec.key-mgmt wpa-psk wifi-sec.psk '%s' ipv4.method shared ipv6.method disabled connection.autoconnect no 2>/dev/null || true +fi +nmcli connection up 'Noctalia-Hotspot' 2>/dev/null || (sleep 0.5 && nmcli connection up 'Noctalia-Hotspot' 2>/dev/null) +]], state.baseInterface, state.interface, SCRIPT, sSsid, sSsid, sPass, sSsid, sPass) + + noctalia.runAsync(upCmd, function() + state.busy = false + Hotspot.refresh(callback) + end, 8000) +end + +function Hotspot.updateConfig(callback) + local ssid, pass = getCfg() + state.ssid = ssid + local sSsid, sPass = ssid:gsub("'", "'\\''"), pass:gsub("'", "'\\''") + local cmd = string.format("nmcli connection modify 'Noctalia-Hotspot' 802-11-wireless.ssid '%s' 802-11-wireless-security.psk '%s' 2>/dev/null || true; [ '%s' = '1' ] && nmcli connection up 'Noctalia-Hotspot' 2>/dev/null || true", sSsid, sPass, state.active and "1" or "0") + noctalia.runAsync(cmd, function() Hotspot.refresh(callback) end, 4000) +end + +return Hotspot \ No newline at end of file diff --git a/network-toolkit/services/net.luau b/network-toolkit/services/net.luau new file mode 100644 index 00000000..46cf0322 --- /dev/null +++ b/network-toolkit/services/net.luau @@ -0,0 +1,177 @@ +--!nonstrict +-- Network status, Wi-Fi scanning, and connection management +local Net = {} +local nmcliOk = noctalia.commandExists("nmcli") +local CACHE_FILE = "/tmp/network-toolkit-cache.json" +local refreshing = false +local wifiPowerLock = 0 + +local state = { + available = nmcliOk, wifiEnabled = true, wifiConnected = false, ethernetConnected = false, + hotspotActive = false, ssid = "", signal = 0, band = "—", ipAddress = "", interface = "", + speedFormatted = "0 B/s ↓ 0 B/s ↑", availableNetworks = {}, refreshing = false, error = "" +} + +local function saveCache() + pcall(noctalia.writeFile, CACHE_FILE, string.format('{"ssid":"%s","interface":"%s","ipAddress":"%s","band":"%s","wifiConnected":%s,"ethernetConnected":%s,"signal":%d}', + state.ssid:gsub('"', '\\"'), state.interface:gsub('"', '\\"'), state.ipAddress:gsub('"', '\\"'), + state.band:gsub('"', '\\"'), tostring(state.wifiConnected), tostring(state.ethernetConnected), state.signal)) +end + +local function loadCache() + local ok, c = pcall(noctalia.readFile, CACHE_FILE) + if ok and type(c) == "string" and c ~= "" then + state.ssid = c:match('"ssid"%s*:%s*"([^"]*)"') or state.ssid + state.interface = c:match('"interface"%s*:%s*"([^"]*)"') or state.interface + state.ipAddress = c:match('"ipAddress"%s*:%s*"([^"]*)"') or state.ipAddress + state.band = c:match('"band"%s*:%s*"([^"]*)"') or state.band + state.wifiConnected = (c:match('"wifiConnected"%s*:%s*true') ~= nil) + state.ethernetConnected = (c:match('"ethernetConnected"%s*:%s*true') ~= nil) + state.signal = tonumber(c:match('"signal"%s*:%s*(%d+)')) or state.signal + end +end + +function Net.init() + state.available = nmcliOk + if not state.available then state.error = noctalia.tr("errors.nmcli_not_found") end + loadCache() + return state.available +end + +function Net.getStatus() return state end + +function Net.signalGlyph(val) + local s = tonumber(val) or 0 + return (s >= 88 and "wifi") or (s >= 63 and "wifi-3") or (s >= 38 and "wifi-2") or (s >= 13 and "wifi-1") or "wifi-0" +end + +local BATCH = [[ +echo "=D="; nmcli -t -f DEVICE,TYPE,STATE,CONNECTION device 2>/dev/null +echo "=A="; nmcli -t -f TYPE,STATE,DEVICE,NAME connection show --active 2>/dev/null +echo "=S="; nmcli -t -f NAME,TYPE connection show 2>/dev/null +echo "=I="; ip -4 addr show 2>/dev/null +echo "=W="; nmcli -t -f IN-USE,SSID,SIGNAL,SECURITY,FREQ device wifi list 2>/dev/null +]] + +function Net.refresh(callback) + if not state.available or refreshing then if callback then callback(state) end; return end + refreshing, state.refreshing = true, true + + noctalia.runAsync(BATCH, function(res) + refreshing, state.refreshing = false, false + local out = res.stdout or "" + local devSec = out:match("=D=(.-)=A=") or "" + local actSec = out:match("=A=(.-)=S=") or "" + local savSec = out:match("=S=(.-)=I=") or "" + local ipSec = out:match("=I=(.-)=W=") or "" + local wifSec = out:match("=W=(.*)") or "" + + local wifiConn, ethConn, hsAct = false, false, false + local connSsid, wifiIf, ethIf = "", "", "" + local hsSsid = noctalia.getConfig("hotspot_ssid") or "Noctalia-Hotspot" + + for line in actSec:gmatch("[^\r\n]+") do + local typ, _, dev, name = line:match("^([^:]+):([^:]+):([^:]+):(.*)$") + if name and dev then + if dev:find("%-ap$") or name == "Noctalia-Hotspot" or name == hsSsid then hsAct = true + elseif typ == "802-11-wireless" or typ == "wifi" then wifiConn, connSsid, wifiIf = true, name, dev + elseif typ == "802-3-ethernet" or typ == "ethernet" then ethConn, ethIf = true, dev end + end + end + + local wEnabled = true + for line in devSec:gmatch("[^\r\n]+") do + local d, typ, s, c = line:match("^([^:]+):([^:]+):([^:]+):?(.*)$") + if typ == "wifi" and not d:find("%-ap$") and not d:find("^p2p%-") then + if s == "unavailable" or s == "unmanaged" then wEnabled = false end + if s == "connected" and c and c ~= "" and not c:find("Hotspot") then wifiConn, connSsid, wifiIf = true, c, d end + elseif typ == "ethernet" and s == "connected" then ethConn, ethIf = true, d end + end + + local curIp = "" + local activeIf = ethConn and ethIf or (wifiConn and wifiIf or "") + if activeIf ~= "" then + local blk = ipSec:match("%d+:%s+" .. activeIf .. ":(.-)%d+:%s+") or ipSec:match("%d+:%s+" .. activeIf .. ":(.*)") + if blk then curIp = blk:match("inet%s+([%d%.]+)/") or "" end + end + if curIp == "" then curIp = ipSec:match("inet%s+([%d%.]+)/%d+%s+brd[%s%d%.]+scope global") or "" end + + local savedMap = {} + for line in savSec:gmatch("[^\r\n]+") do + local name, typ = line:match("^([^:]+):([^:]+)$") + if name and (typ == "802-11-wireless" or typ == "wifi") then savedMap[name] = true end + end + + local networks, seen = {}, {} + for line in wifSec:gmatch("[^\r\n]+") do + local inUse, ssid, sig, sec, freq = line:match("^([^:]*):([^:]*):([^:]*):([^:]*):(.*)$") + if ssid and ssid ~= "" and not seen[ssid] and not ssid:find("Noctalia%-Hotspot") and ssid ~= hsSsid then + seen[ssid] = true + local isAct = (wifiConn and connSsid ~= "" and ssid == connSsid) + local sigN = tonumber(sig) or 0 + if isAct then + local fNum = tonumber((freq or ""):match("(%d+)")) or 0 + state.band = (fNum >= 4900) and "5 GHz" or "2.4 GHz" + if sigN > 0 then state.signal = sigN end + end + table.insert(networks, { ssid = ssid, signal = sigN, security = (sec ~= "--" and sec ~= "") and sec or "Open", active = isAct, saved = (savedMap[ssid] == true) }) + end + end + + if wifiConn and connSsid ~= "" and not seen[connSsid] then + table.insert(networks, 1, { ssid = connSsid, signal = state.signal > 0 and state.signal or 60, security = "WPA2", active = true, saved = true }) + end + + -- lock stops toggle double-clicking while nmcli is working + if os.time() >= wifiPowerLock then state.wifiEnabled = wEnabled end + state.wifiConnected, state.ethernetConnected = wifiConn, ethConn + state.hotspotActive, state.ssid, state.interface, state.ipAddress = hsAct, (wifiConn and connSsid or ""), activeIf, curIp + if #networks > 0 then state.availableNetworks = networks end + saveCache() + if callback then callback(state) end + end, 5000) +end + +function Net.scan(callback) Net.refresh(callback) end + +function Net.toggleWifi(enable, callback) + wifiPowerLock = os.time() + 3 + state.wifiEnabled = enable + if not enable then state.wifiConnected, state.ssid, state.ipAddress, state.signal, state.availableNetworks = false, "", "", 0, {} end + saveCache() + if callback then callback(state) end + noctalia.runAsync("nmcli radio wifi " .. (enable and "on" or "off"), function() Net.refresh(callback) end, 3000) +end + +function Net.connectWifi(ssid, password, callback) + local safe = ssid:gsub("'", "'\\''") + local wifiCmd = (type(password) == "string" and password ~= "") + and string.format("nmcli device wifi connect '%s' password '%s'", safe, password:gsub("'", "'\\''")) + or string.format("nmcli connection up id '%s' 2>/dev/null || nmcli device wifi connect '%s'", safe, safe) + -- drop hs temporarily so connection doesn't get messed up + local wasHs = state.hotspotActive + local fullCmd = wasHs and ("nmcli connection down 'Noctalia-Hotspot' 2>/dev/null || true; sleep 0.5; " .. wifiCmd) or wifiCmd + + noctalia.runAsync(fullCmd, function(res) + local ok = (res.exitCode == 0) + Net.refresh(function(s) if callback then callback(s, ok, res.stdout or res.stderr or "", wasHs) end end) + end, 15000) +end + +function Net.disconnect(callback) + local iface = state.interface ~= "" and state.interface or "wlan0" + state.wifiConnected, state.ethernetConnected, state.ssid, state.ipAddress = false, false, "", "" + saveCache() + if callback then callback(state) end + noctalia.runAsync(string.format("nmcli device disconnect '%s' 2>/dev/null", iface), function() Net.refresh(callback) end, 4000) +end + +function Net.autoConnect(callback) + noctalia.runAsync("nmcli networking on 2>/dev/null || nmcli device autoconnect 2>/dev/null", function() Net.refresh(callback) end, 5000) +end + +function Net.forgetWifi(ssid, callback) + noctalia.runAsync(string.format("nmcli connection delete id '%s' 2>/dev/null", ssid:gsub("'", "'\\''")), function() Net.refresh(callback) end, 4000) +end + +return Net \ No newline at end of file diff --git a/network-toolkit/shortcut.luau b/network-toolkit/shortcut.luau new file mode 100644 index 00000000..532c6792 --- /dev/null +++ b/network-toolkit/shortcut.luau @@ -0,0 +1,19 @@ +--!nonstrict +-- Network Toolkit — Quick settings hotspot shortcut +local state = noctalia.state.get("network_state") or {} +local cmdSeq = 0 + +local function render() + local hs = state.hotspot or {} + local active = (hs.active == true) + shortcut.setLabel(active and ((hs.ssid and hs.ssid ~= "") and hs.ssid or noctalia.tr("status.hotspot_active")) or noctalia.tr("panel.hotspot")) + shortcut.setIcon(active and "broadcast" or "broadcast-off", "broadcast") + shortcut.setActive(active) +end + +noctalia.state.watch("network_state", function(s) if type(s) == "table" then state = s; render() end end) +function onClick() + cmdSeq += 1 + noctalia.state.set("network_command", { domain = "hotspot", action = "toggle", nonce = os.time() .. "_" .. cmdSeq }) +end +render() diff --git a/network-toolkit/thumbnail.webp b/network-toolkit/thumbnail.webp new file mode 100644 index 0000000000000000000000000000000000000000..85902cf4325b1bbbc9f1100da455c9ea7487153f GIT binary patch literal 63828 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 O!=nqwK= 88 and "wifi") or (s >= 63 and "wifi-3") or (s >= 38 and "wifi-2") or (s >= 13 and "wifi-1") or "wifi-0" +end + +local function sendCommand(domain, action, payload) + cmdSeq += 1 + noctalia.state.set("network_command", { domain = domain, action = action, payload = payload, nonce = os.time() .. "_" .. cmdSeq }) +end + +local function buildTooltip() + local net, hs, dns, bt = state.net or {}, state.hotspot or {}, state.dns or {}, state.bluetooth or {} + local rows = {} + local function add(k, v) table.insert(rows, { key = k, value = v }) end + + if hs.active and net.wifiConnected then + add("Wi-Fi", net.ssid ~= "" and net.ssid or noctalia.tr("status.wifi")) + if net.signal and net.signal > 0 then add("Signal", tostring(net.signal) .. "%") end + add("Hotspot", hs.ssid or "Hotspot"); add("Clients", tostring(hs.clientCount or 0)) + if net.ipAddress and net.ipAddress ~= "" then add("IP", net.ipAddress) end + elseif hs.active then + add("Hotspot", hs.ssid or "Hotspot"); add("Clients", tostring(hs.clientCount or 0)) + elseif net.ethernetConnected then + add(noctalia.tr("tooltip.network"), net.interface ~= "" and net.interface or noctalia.tr("status.ethernet")) + if net.ipAddress and net.ipAddress ~= "" then add("IP", net.ipAddress) end + add(noctalia.tr("tooltip.band"), "Ethernet") + elseif net.wifiConnected then + add("SSID", net.ssid ~= "" and net.ssid or noctalia.tr("status.wifi")) + if net.signal and net.signal > 0 then add("Signal", tostring(net.signal) .. "%") end + add(noctalia.tr("tooltip.band"), (net.band and net.band ~= "") and net.band or "—") + if net.ipAddress and net.ipAddress ~= "" then add("IP", net.ipAddress) end + else + add(noctalia.tr("tooltip.network"), noctalia.tr("status.disconnected")) + add(noctalia.tr("tooltip.band"), "—") + end + + add(noctalia.tr("tooltip.speed"), (net.speedFormatted and net.speedFormatted ~= "") and net.speedFormatted or "0 B/s ↓ 0 B/s ↑") + add(noctalia.tr("tooltip.dns"), (dns.activeProvider and dns.activeProvider ~= "default") and (dns.current and dns.current.label or dns.activeProvider) or noctalia.tr("panel.system_default")) + + local btStr = noctalia.tr("panel.bt_off") + if bt.enabled then + local cList = {} + if bt.pairedDevices then + for _, d in ipairs(bt.pairedDevices) do if d.connected then table.insert(cList, d.name or d.address) end end + end + btStr = #cList > 0 and table.concat(cList, ", ") or "On (No devices)" + end + add(noctalia.tr("tooltip.bluetooth"), btStr) + add(noctalia.tr("tooltip.left_click"), noctalia.tr("tooltip.action_switch")) + add(noctalia.tr("tooltip.right_click"), noctalia.tr("tooltip.action_toggle")) + return rows +end + +local function render() + local color = noctalia.getConfig("color") or "on_surface_variant" + local textColor = noctalia.getConfig("text_color") or color + if textColor == "" then textColor = color end + local mode = noctalia.getConfig("widget_display_mode") or "network" + local hs, net, dns, bt = state.hotspot or {}, state.net or {}, state.dns or {}, state.bluetooth or {} + + local container = barWidget.isVertical() and ui.column or ui.row + + local function makeBlock(gName, text, gColor, showDot) + local icon = showDot and ui.row({ align = "start", gap = -3 }, { ui.glyph({ name = gName, size = 16, color = gColor or color }), ui.glyph({ name = "circle-filled", size = 6, color = "error" }) }) or ui.glyph({ name = gName, size = 16, color = gColor or color }) + local items = { icon } + if text and text ~= "" then table.insert(items, ui.label({ text = text, fontSize = 14, color = textColor })) end + return ui.row({ gap = 5, align = "center" }, items) + end + + local netText = net.ethernetConnected and (net.interface ~= "" and net.interface or noctalia.tr("status.ethernet")) or (net.wifiConnected and (net.ssid ~= "" and net.ssid or noctalia.tr("status.wifi")) or "") + local hsDevs = "(" .. tostring(hs.clientCount or 0) .. "/" .. tostring(hs.maxConnections or 8) .. ")" + local netHsText = hs.active and (netText ~= "" and (netText .. " " .. hsDevs) or hsDevs) or netText + local netGlyph = net.ethernetConnected and "ethernet" or (net.wifiConnected and signalGlyph(net.bars or net.signal or 0) or "wifi-0") + + local btText = noctalia.tr("panel.off") + if bt.enabled then + local first = nil + if bt.pairedDevices then + for _, d in ipairs(bt.pairedDevices) do if d.connected then first = d.name or d.address; break end end + end + btText = first or noctalia.tr("panel.bluetooth") + end + local btGlyph = bt.enabled and "bluetooth" or "bluetooth-off" + + local isCustomDns = (dns.activeProvider and dns.activeProvider ~= "default") + local dnsText = isCustomDns and (dns.current and dns.current.label or dns.activeProvider) or noctalia.tr("panel.system_default") + local dnsGlyph = isCustomDns and "shield" or "shield-off" + + local children = {} + local bNet = makeBlock(netGlyph, (mode:find("hotspot") and netHsText or netText), color, hs.active) + local bBt = makeBlock(btGlyph, btText, nil, mode == "bluetooth" and hs.active or false) + local bDns = makeBlock(dnsGlyph, dnsText, nil, mode == "dns" and hs.active or false) + + if mode == "bluetooth" then table.insert(children, bBt) + elseif mode == "dns" then table.insert(children, bDns) + elseif mode == "network_hotspot" then table.insert(children, bNet) + elseif mode == "network_bluetooth" then table.insert(children, bNet); table.insert(children, bBt) + elseif mode == "network_dns" then table.insert(children, bNet); table.insert(children, bDns) + elseif mode == "bluetooth_dns" then table.insert(children, bBt); table.insert(children, bDns) + elseif mode == "network_bluetooth_dns" or mode == "network_hotspot_bluetooth_dns" then table.insert(children, bNet); table.insert(children, bBt); table.insert(children, bDns) + else table.insert(children, bNet) end + + barWidget.render(container({ gap = 7, align = "center" }, children)) + barWidget.setTooltip(buildTooltip()) +end + +noctalia.state.watch("network_state", function(s) if type(s) == "table" then state = s; render() end end) +function update() state = noctalia.state.get("network_state") or state; render() end +noctalia.setUpdateInterval(1000) + +function onClick() noctalia.togglePanel("autumn/network-toolkit:panel") end +function onRightClick() + local op = noctalia.getConfig("widget_right_click") or "toggle_wifi" + if op == "toggle_hs" then sendCommand("hotspot", "toggle") + elseif op == "toggle_bt" then sendCommand("bluetooth", "toggle") + else sendCommand("wifi", "toggle") end +end +function onConfigChanged() render() end +render() \ No newline at end of file From 6f1394b5c1f3ea5578d9b71eebd1d6560290f559 Mon Sep 17 00:00:00 2001 From: brightestautumn Date: Sat, 29 Aug 2026 22:32:04 +0530 Subject: [PATCH 02/10] improve Wi-Fi connection stability --- network-toolkit/panel.luau | 6 ++-- network-toolkit/services/net.luau | 48 +++++++++++++++++++++++-------- 2 files changed, 39 insertions(+), 15 deletions(-) diff --git a/network-toolkit/panel.luau b/network-toolkit/panel.luau index b90621ae..a8aaab6a 100644 --- a/network-toolkit/panel.luau +++ b/network-toolkit/panel.luau @@ -58,7 +58,7 @@ end local function renderDeviceRow(key, label, sublabel, glyphName, glyphColor, isHovered, isSelected, rightExtras, onClick) local leftItems = { ui.glyph({ name = glyphName, size = 18, color = glyphColor or "on_surface_variant" }) } if sublabel and sublabel ~= "" then - table.insert(leftItems, ui.column({ gap = 0, paddingB = 2 }, { + table.insert(leftItems, ui.column({ gap = 0 }, { ui.label({ text = label, fontSize = 13, fontWeight = isSelected and "bold" or "normal", color = "on_surface" }), ui.label({ text = sublabel, fontSize = 11, color = "on_surface_variant" }), })) @@ -67,7 +67,7 @@ local function renderDeviceRow(key, label, sublabel, glyphName, glyphColor, isHo end return ui.row({ key = "row-" .. key, align = "center", justify = "space_between", - fill = isSelected and "primary_container" or "surface", + fill = "surface", border = (isHovered or isSelected) and "primary" or "surface", borderWidth = 1, radius = 8, height = 45, paddingV = 8, paddingH = 12, onHover = function(s) setHover(key, s) end @@ -220,7 +220,7 @@ render = function() if n.security ~= "Open" then table.insert(extras, ui.glyph({ name = "lock", size = 14, color = "on_surface_variant" })) end if isC then table.insert(extras, ui.glyph({ name = spinner, size = 14, color = "primary" })) end table.insert(extras, smallBtn("trash", "ghost", function() sendCommand("wifi", "forget", { ssid = n.ssid }) end)) - table.insert(wifiList, renderDeviceRow(k, n.ssid, isC and noctalia.tr("panel.connecting") or nil, signalGlyph(n.signal or 0), isC and "primary" or "on_surface_variant", hoveredId == k, false, extras, function() + table.insert(wifiList, renderDeviceRow(k, n.ssid, nil, signalGlyph(n.signal or 0), isC and "primary" or "on_surface_variant", hoveredId == k, false, extras, function() wifiConnectingSsid = n.ssid; render(); sendCommand("wifi", "connect", { ssid = n.ssid }) end)) end diff --git a/network-toolkit/services/net.luau b/network-toolkit/services/net.luau index 46cf0322..0a70d0e6 100644 --- a/network-toolkit/services/net.luau +++ b/network-toolkit/services/net.luau @@ -2,9 +2,11 @@ -- Network status, Wi-Fi scanning, and connection management local Net = {} local nmcliOk = noctalia.commandExists("nmcli") -local CACHE_FILE = "/tmp/network-toolkit-cache.json" +local CACHE_FILE = "/tmp/noctalia_net_cache.json" local refreshing = false local wifiPowerLock = 0 +local connectingSsid = nil +local lastConnectedSsid = "" local state = { available = nmcliOk, wifiEnabled = true, wifiConnected = false, ethernetConnected = false, @@ -28,6 +30,7 @@ local function loadCache() state.wifiConnected = (c:match('"wifiConnected"%s*:%s*true') ~= nil) state.ethernetConnected = (c:match('"ethernetConnected"%s*:%s*true') ~= nil) state.signal = tonumber(c:match('"signal"%s*:%s*(%d+)')) or state.signal + if state.wifiConnected and state.ssid ~= "" then lastConnectedSsid = state.ssid end end end @@ -71,11 +74,11 @@ function Net.refresh(callback) local hsSsid = noctalia.getConfig("hotspot_ssid") or "Noctalia-Hotspot" for line in actSec:gmatch("[^\r\n]+") do - local typ, _, dev, name = line:match("^([^:]+):([^:]+):([^:]+):(.*)$") + local typ, st, dev, name = line:match("^([^:]+):([^:]+):([^:]+):(.*)$") if name and dev then if dev:find("%-ap$") or name == "Noctalia-Hotspot" or name == hsSsid then hsAct = true - elseif typ == "802-11-wireless" or typ == "wifi" then wifiConn, connSsid, wifiIf = true, name, dev - elseif typ == "802-3-ethernet" or typ == "ethernet" then ethConn, ethIf = true, dev end + elseif (st == "activated" or st == "connected") and (typ == "802-11-wireless" or typ == "wifi") then wifiConn, connSsid, wifiIf = true, name, dev + elseif (st == "activated" or st == "connected") and (typ == "802-3-ethernet" or typ == "ethernet") then ethConn, ethIf = true, dev end end end @@ -99,7 +102,9 @@ function Net.refresh(callback) local savedMap = {} for line in savSec:gmatch("[^\r\n]+") do local name, typ = line:match("^([^:]+):([^:]+)$") - if name and (typ == "802-11-wireless" or typ == "wifi") then savedMap[name] = true end + if name and (typ == "802-11-wireless" or typ == "wifi") then + if name ~= connectingSsid then savedMap[name] = true end + end end local networks, seen = {}, {} @@ -126,6 +131,7 @@ function Net.refresh(callback) if os.time() >= wifiPowerLock then state.wifiEnabled = wEnabled end state.wifiConnected, state.ethernetConnected = wifiConn, ethConn state.hotspotActive, state.ssid, state.interface, state.ipAddress = hsAct, (wifiConn and connSsid or ""), activeIf, curIp + if wifiConn and connSsid ~= "" then lastConnectedSsid = connSsid end if #networks > 0 then state.availableNetworks = networks end saveCache() if callback then callback(state) end @@ -145,17 +151,35 @@ end function Net.connectWifi(ssid, password, callback) local safe = ssid:gsub("'", "'\\''") - local wifiCmd = (type(password) == "string" and password ~= "") - and string.format("nmcli device wifi connect '%s' password '%s'", safe, password:gsub("'", "'\\''")) - or string.format("nmcli connection up id '%s' 2>/dev/null || nmcli device wifi connect '%s'", safe, safe) - -- drop hs temporarily so connection doesn't get messed up + local hasPwd = (type(password) == "string" and password ~= "") + local prevSsid = (state.wifiConnected and state.ssid ~= "" and state.ssid ~= ssid) and state.ssid + or (lastConnectedSsid ~= "" and lastConnectedSsid ~= ssid and lastConnectedSsid or nil) + connectingSsid = hasPwd and ssid or nil + + local wifiCmd = hasPwd + and string.format("nmcli --wait 8 device wifi connect '%s' password '%s'", safe, password:gsub("'", "'\\''")) + or string.format("nmcli --wait 8 connection up id '%s' 2>/dev/null || nmcli --wait 8 device wifi connect '%s'", safe, safe) local wasHs = state.hotspotActive - local fullCmd = wasHs and ("nmcli connection down 'Noctalia-Hotspot' 2>/dev/null || true; sleep 0.5; " .. wifiCmd) or wifiCmd + local fullCmd = wasHs and ("nmcli connection down 'Noctalia-Hotspot' 2>/dev/null || true; sleep 0.2; " .. wifiCmd) or wifiCmd noctalia.runAsync(fullCmd, function(res) + connectingSsid = nil local ok = (res.exitCode == 0) - Net.refresh(function(s) if callback then callback(s, ok, res.stdout or res.stderr or "", wasHs) end end) - end, 15000) + if not ok then + local restoreCmd = hasPwd and string.format("nmcli connection delete id '%s' 2>/dev/null || nmcli connection delete '%s' 2>/dev/null; ", safe, safe) or "" + if prevSsid then + local pSafe = prevSsid:gsub("'", "'\\''") + restoreCmd = restoreCmd .. string.format("nmcli connection up id '%s' 2>/dev/null || nmcli device wifi connect '%s' 2>/dev/null || nmcli device autoconnect 2>/dev/null || true", pSafe, pSafe) + else + restoreCmd = restoreCmd .. "nmcli device autoconnect 2>/dev/null || true" + end + noctalia.runAsync(restoreCmd, function() + Net.refresh(function(s) if callback then callback(s, false, res.stdout or res.stderr or "", wasHs) end end) + end, 4000) + else + Net.refresh(function(s) if callback then callback(s, true, res.stdout or res.stderr or "", wasHs) end end) + end + end, 10000) end function Net.disconnect(callback) From e5619835360c74ec2a476e79eba0f3177b082a76 Mon Sep 17 00:00:00 2001 From: brightestautumn Date: Sat, 29 Aug 2026 22:41:03 +0530 Subject: [PATCH 03/10] Update README.md --- network-toolkit/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/network-toolkit/README.md b/network-toolkit/README.md index a3f3db6a..8cf20736 100644 --- a/network-toolkit/README.md +++ b/network-toolkit/README.md @@ -14,8 +14,8 @@ A unified network management hub for Noctalia providing real-time Wi-Fi, Etherne Install the following tools on `PATH`: - **`networkmanager`** (`nmcli`) — Wi-Fi scanning, connection management, hotspot orchestration, and DNS routing. -- **`bluez`** / **`bluez-utils`** (`bluetoothctl`) — Bluetooth adapter power, scanning, device pairing, and trust settings. -- **`iproute2`** (`ip`) — Interface address resolution and neighbor discovery. +- **`bluez-utils`** (`bluetoothctl`) — Bluetooth adapter power, scanning, device pairing, and trust settings. +- **`ip`** — Interface address resolution and neighbor discovery. - **`iw`** — Virtual AP interface provisioning (`__ap`) and wireless client enumeration. - **`qrencode`** *(optional)* — Generates shareable Wi-Fi QR codes in the panel. From 3a67d63ff97c2472c6dd18d8a3a805722217afe9 Mon Sep 17 00:00:00 2001 From: brightestautumn Date: Sat, 29 Aug 2026 23:19:08 +0530 Subject: [PATCH 04/10] Add files via upload --- .../network-toolkit-thumbnail (2).webp | Bin 0 -> 66880 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 network-toolkit/network-toolkit-thumbnail (2).webp diff --git a/network-toolkit/network-toolkit-thumbnail (2).webp b/network-toolkit/network-toolkit-thumbnail (2).webp new file mode 100644 index 0000000000000000000000000000000000000000..5e966ab708ea299e9de5410e788ab432fbf694a1 GIT binary patch literal 66880 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 Date: Sat, 29 Aug 2026 23:19:36 +0530 Subject: [PATCH 05/10] Delete network-toolkit/thumbnail.webp --- network-toolkit/thumbnail.webp | Bin 63828 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 network-toolkit/thumbnail.webp diff --git a/network-toolkit/thumbnail.webp b/network-toolkit/thumbnail.webp deleted file mode 100644 index 85902cf4325b1bbbc9f1100da455c9ea7487153f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63828 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 O!=nqwK Date: Sat, 29 Aug 2026 23:20:10 +0530 Subject: [PATCH 06/10] Rename network-toolkit/network-toolkit-thumbnail (2).webp to thumbnail.webp --- ...ork-toolkit-thumbnail (2).webp => thumbnail.webp | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename network-toolkit/network-toolkit-thumbnail (2).webp => thumbnail.webp (100%) diff --git a/network-toolkit/network-toolkit-thumbnail (2).webp b/thumbnail.webp similarity index 100% rename from network-toolkit/network-toolkit-thumbnail (2).webp rename to thumbnail.webp From 564911a93f6632273b6372e124781a0adbdc8982 Mon Sep 17 00:00:00 2001 From: brightestautumn Date: Sat, 29 Aug 2026 23:21:11 +0530 Subject: [PATCH 07/10] Delete thumbnail.webp --- thumbnail.webp | Bin 66880 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 thumbnail.webp diff --git a/thumbnail.webp b/thumbnail.webp deleted file mode 100644 index 5e966ab708ea299e9de5410e788ab432fbf694a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66880 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 Date: Sat, 29 Aug 2026 23:21:49 +0530 Subject: [PATCH 08/10] Add files via upload --- network-toolkit/thumbnail.webp | Bin 0 -> 66880 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 network-toolkit/thumbnail.webp diff --git a/network-toolkit/thumbnail.webp b/network-toolkit/thumbnail.webp new file mode 100644 index 0000000000000000000000000000000000000000..5e966ab708ea299e9de5410e788ab432fbf694a1 GIT binary patch literal 66880 zcmaHtQ

wv!=hYZQHi(F59+k+pg|%mu=hVvbt>B_BZ{Xb8*ha%tWq;{bc03G9zE&i`2 z^nZ+Q`QJ?aA2#`K=Kl|Sx;eT1({;}CVrndZFZ1TU@)XC*P`nZ1@etSFj z|E%>N`_Jy+%^lQL|6QT~IX=J@paPHri2i5)|N8&Tu@C^@egXi%lKv-Wk_iB`g#!TC z>;ID@&j$dI!T^BQ+5gG?&zU$GyBPo1bm0FYsD%Xpa9;)hAZP;sXmbDntnPn}{R{t( z+KB%R;s2}4@n5q9*a6G|!~hw91Hcr(_>Wit%m5Yu=f68l`~wUGFgFjH3qsouh7T$T z0~#zGtOx)g|ME!eXjy#eI$_QOnYVn=JHEX>E73nmMtZ#DOzqsHf~)ZyUJBw*e_Ek67ceis7r0WF@E0v~~`K!4!L zspY%ktKu8*w9ic_@Vj5=(I+VIkn{c$@w_bY?jzSo%#5lmuFTtM&%A_ZA15 z0S&*2ZcoOL1p3Us%RX)<4PE*YzC_+uo(!+@R)t#rmCo@>cO`qr^pXB;cqat<-u`L* zY4HK^$@S{^AaqHzBUBw|0c`rVyaj6yP!@)|Q`|TF8`uC0|9<+i1Zutq_6FvCZ@gxI znjR4y^mPU%e%il-e3N}jy=y+^tr%YJy!0)6V*!c&9hi{tY*S!6(D7U7R_qe$HSk{X zGH@3-8W{3D4NUzKI^22g+Y{;uECrf=QvqK-6$^>-fo4Fuf0Mnu18;!ez|HTFK=f~+ zuc8mG*TjduEupW#?vE^B(MR-M-LvC2)rsaj(s|;0-t_Da@XM4v$+Ex>N}YXm-3!W) zoo1d;cKS;FYhZZ=R+L%sN6ww?%>dRUK;inah$vKE2w#=>4k*tt+>M#T&bi6e_r&yF z{pYI7(jwz>Y{BSi0Y08?EpKA7ZQmcb1(SW08>^X5a*xvmw`W1e@dFGa!+SCTF3X;G z*7~n1DDBTvp_1djaC5Bu+@p`qR8%3O#8ka(?frTDql3HGXry5Po*kxt`%?NztY1iXfg|3_Q=-=wg4W4@%ZtZpYWB6dQ zjq47X?>?jOgW4VTRL@>-gAQT6k7m7tDQc8RV|$Q7*~gYkdIi6a@nW(UhsAy`hh(=C78Q!aE`GFUx}WD zpZ_ln&0lua`qkCV2l4rQa>BmEB`MW}5J&V!U366j7bWR`kbhv9cdmUYGtdv+_}b&2 z=E;NPAt_nTHMOW?MfFv_`*T5#7*v$`Qc9$%dLO`o#NPg%hQ=c=q3o@y(*uauJ6FiD z6QlYoS|s2yy>-Phetfg6G~mLu*X4*1siBJuSrqIK;rL!j?TcQ%wxkQ^zf)qLDjY86p7Kgo%H}=KjIkJ~TkZB#v5R0$ zM1(WVa?Rkcc0-DEWi|t!wSylKYUlOfX($joh}(-MEZb0HJ1)-lX?sGHt}iDq!lPFY zwj^JN=mdrfnH(rch~J!N?@Mo4AoiO4s3TtPRZ~>{V}u2Nd?j>lyyn`VKp7?^a)q_odOJSB-kH6-74%mN z5e_i5=e_ZQJ;;*W0TuS?{$QXfpZ`q)NnpG~b9QUk|7tf}svIX@dBN#0Tdp`y!dIB@ zFL}PSH1_pKh2pst0yWOaF9Hem(71ib3IAg$ee#FZR-AO*-}ZiQiB91$*8MrWxnT#5 zF*VYuA=8a9`i89g8jSinmct8C*{iOoB;BJ+pl znp-rcj`elkl^yR8lWmx?sC%(}j^hy9S|ONd2~f7prMo!q_=4|l;&_#VcWGw**{CEt zpL4Q!B1rO}wD;nj7%$X!h{={g0$#|*L#OsG9W^JE8aUEOkBQrYkcuzuiQlCamPHyx z5-&rM_U09wqYFWth@tAJk#|$i^Hp&pgoWFYLTc&Vxgk<}Z1ih3PdJNd7KruYRy?aH z!-)u37N~IVS=Kal)3w9avrUS&un4eLJjz+4?EQi@rg7#Rlf}mwHqEeZ9k*>}fqQ&*X|Hf9z@Z{KI&I1-A|oAs~`y z?FRi60=+pF*)HG|h+aSc+%Q6*^-ZTx8DTw}IvbbRj~N$E6PcNfC>+!N8m-ybB>gnu zxaaF)rpCT;??Iw3+gS6xZs@^fdZMtQr`vm`aptpOQ2J0Nx_*y2B%2Y2PWo%UZBG*t)~= zN$zMp1d$@Ac6Et~1r{4D-(O$KL!Fc)WkFnRQZQKm*lTw^sF(k8j!;w?wlW`KK%!zO z0UsNY66-oC-SdY`*6wm)-K4E64tI*?oCepw zioC}gi{4gEL5;d_cRNTLZ=!T$G+Bl$6S^G#xzQ_7o?UfbTG#QoEvJ<2nR{v(B<`c& zX55Ad1Mu0h@Vq@YRDc577p<=Sny$q2iC*r~tT5v?k)rVms!}a|6rx5AuyIogr7Zh{Q3?L2 zo6?yswC&zdhDtz?xuG07J&mrW#%2@)+nc$y5Sf>!t^3+Wat(GLng!}lW&(Ur?PQb& z@e+2?9MXV8IZc#IugpUtjgZD(GLHXMZM{!{qEWy> z@8e>-#k{cFdq8x85HTNu7LiC-w-#bI*STOUTVt{=kL30hCt@TqC1<~bVYdMdR<9b8 zKbSb9T|VKk^!zs%SQyOnS9VVAQGCUlIz-h|47d4sH*SoP9<_QX36+Tkl3tqpu;<2{ z2DJqQHCkm-2~6-0QpFjtM@E2ZQVNki;F`}l1;eZaA?=z|*C6lres~|RD2~0|b`w3` zD3hqIIBV9A=!|&nbP09EzEY$%>Q}TskzO>{(S1Y{W@wgMR3d{5FW9EiGCUB6xIcp5 z(&rS>ehR?a_gX2xOC^#M_$j?|IDxeAAPzyvQ}=*OrIv9qEZG@?#qUL+I*(Xt?da4` zEW32)G8Xoyne1Lth&}@{jVaEQp}nYs0D*q*+Do1C&B!O){XDh;S|}GH$Icc;v%gBa z&sJEkM#&8l`$qBcASC*r2qgMxGd!!FG#YeC{^rT~Eyw;6g}WVoT_R*dtSni;t~n&) zyrCuC|JiWnBo{-EW?22ayGD5Ud{Yj~;^;X8_?@xS{#6t80yX;E{e!KGjN%9n@%69W z_%`)$R7`>RI7?f)YNWzBSyE5?cUYUhDlXoN$^ezgJC2RV0-6Q7*PT6P<|OY0)Q!1d z40I6HuYDTcB4DwdxaE3@3_f49Hgv)hH1vpNvbkC z@L}>ep`Qq0Ln<0hery}$K|z8_73hUxM3L+)=_K=;`=1k)KUL9H$Qq8*VY}mE!3x$3 zmO2dDi*(qUB|+srb)U$}C|>0_R*7HjAZ30(INn7}Pi*;u?+?Ev7p*A+%|{C;uG;1E zp|c*OHO;9Bq{f{z-0o6&W)04A0OFKZG8K!`G-cx15Nz?U{&>-Be|(ZsjO%#%Fei$0 z-if7QB(@}jnja`T)>E_p+@Z?edy2d8v*+-Bg<#kX^4KHkSSf&)b$n-hApT zH#@DL_OYrkjfJ8mRW;;5_1LSsreIS6#KOcKDF2 zqWea~lyF=lW|;Pw3NpWADly>#f)9A#QVwNQc~)d6AiPx~!d(LizEgjQ$Vz&ugaxX@ zh{%>z{=yOM%3w_9kit2S8=5F`g#|uW>0k$vc-5O0?T+D9ofeq#>l@Tb6Hr=_|4x^g z(yy8D`r#nvQ8yWmJ5W^t5r{I(TQUmK+ajcLIR#dNP0<1X5x~bdvXIK6MQ=Oq;2J8N z#2R1Qc85b|euf8tO z@~2Fx0VCF%sM07pZl3M#c*i9rl!c|M9jw)V4@{h*a;wEc2CeP+MS9I>W-WuD4!fUg2ja74xx!DDNdp}9a9R?Uuy zcS)7~K8JP+T}>cbA&!pnNL>sNO_GA2=?db>4GXM@Lj-eLsM$_|^Xtdiw!_OxPzh7-;Ta&%0P!gkmp=$W$>WN^v1;7;q>)X(hRFl5#;aZF-|U z3#MSn<+-qHYmFvL^~w_I$*=q81BMMa)09TpGtpl8Z7Q5(1OhG>%emDGJ7O`u`V%)U z^WGm}3XyI&-z_;N`QcT;W80;2^+1UcXX~yF{cE?dli!YU+e+_N>LQQ@ZAEm-yg>5t zX>GbEKaKjxnBqK?0%Kpop8Ph*9ws%cr%M)$TpOPAA?KwN)lW1Vn)LR(%M7t_)?*18 z#l#9;$tm)JS4bg@e3I%>j}-c6MJ`+C#QKS_rngf2Z)(8SPi_6*jnXG%IJpaAEEe}0P$o_V~v z6QZKMQq{D+w+`-G*MoymJ^%}-#cF0In_;p%P!|{4c^U7`KKjYMEVT5fby@` z$R3kyCwA=vw-Bj;Y!Db?#cE+P1YLZdHW_~`oYshqSPs;qf$(Dx*cde5-CmHBXGtL6> zuecSp&JI;!B=M`fchTilc)qd2t4&Wd1+mzjtN838t{TNmZHo=qiF`UrF8q(B%kktK7pzyRW0gg(Fsl92dTty z;^eeL12A0ZdgJ&qTI-Qz66Vw(a{S(gO?|f+BMc)%gt~Nvf6LyGJFG8%?h7KD74kw@pSM4S z{z7${q5&<|KbME1Nhv$57>#H8Xh0cB4|uIg{p#ol9iP+0x_*XS;j93_p-_tcAqkcU zN8APvF%HV5YqU}#aT@?tS7)5fDYg=^VW|``vH-^@JT8?I)m~`HssRDerOh=pIztDB zQX^odUP#nYF?i`x$VKKxZdngbe3f! z#9y8!@@K5GbvB|0$^0B22CPVc5M4@UZz^A&<3MoyEyKfsBhNPJDBI^&qCeG@rXE=P z)sN9+OD)d4gSN_}+NPMXeH_{NZ zWtfut_=R^vEX0A}-t))*xYADjvMBSEKfYQW<~gyI925{9lRzV$+|DXwq?}J(Z%ES! z`1tsKAN>L-J|&y?t##g{&gg|Vk;LjSE0Q;EUOXyr{>{z|pyL=slP8SJt~zG)Y${HY zP;p6zEj~4It#Iy3d3>{Ki2x0vm3l0wNdpZ8&NSld?~Qi`$=gA9vWgEp_L8u&3!|~d z9KbljLW$#{mc8b5R6_QpG2_KHU^Ca6=W$R?oYuo4up3!p(VXlFYi~H-MHawt-}01T zvOVtkb$YEjX_c`ep0Gmkr}kuKIkEXY&eW$C@37RzTOI{8&4U1 znl2Oski1l2*OFreCbztSGO)dVkK44szR$CmYFQ6u#q*l&LtzQ0>qw|vEDfV{`h(L%Lg4vSpWo=^8=S%5 zpy9gniI!Y}l3tMq-vf>@fLq;2U}dg}UNe2S(AR#J(ra1&v2kl6NaJE+-{tTmdP*`4 zuT`yWZvHytCOUUX&Iv6nc(S}18}_v|*HWJsgt~>T8L9zqE#knHmwCBeEuu!e8vywJ zel7xNDXkEyUJBLRoq)v+q*`-?g`oddU;kxPJ=0cOnjw|){*h+k-#P$(KOiNpD)36| zLBh~_IZj(wJ*8-u^7n`ckhWH`a^S8W#9v_J;RGjT!D>4i*y=>;|I_T=TWZQtz(%W+ zmP2l`Et@|O(tDl>%-7CjLWLivzY3AAH}iwW{tLnKT3ye{BZyh$n`N+BkK+6(I51N@ zGtk0LqJy6Lx_Xr{Wh>+b&I)uET<@A2(vsaKXV$Sk^C)r*n6-g2hr!BJgf4Tb>Z!K{wk_olcF8uqaY-Q zp(b%3cS!BsZehiBe*$w_UGF%n+D#wDmekt>6}Sxr*V3bBU{n0qv!mZ&$e6=r-wkMf zg(KcBA#OEea0&eTMUajAnK}mZNt()gaCYJ~JM4Pp9Gq)EAqH&`f{O)ceY2JBq;Ls{ z7R`MSpb*s`_SYP9$b=R`7 zGejJ7);xkaj#5U@iLi(W%@AdC{1YBXRIkhRg-%N}TW1wP?SxxYxE3O3x8{a8pSbnC<7`}7;O z{<(Gu2bMZ=^sD-E~5&4xKOazPcOO*Z`;pCH366 z_Y0}SmH;@7(@#^n*!|+bUlWrm^s=i3Wnzims?Xv`!-XN#!Y^D_u3E4{kjx(L~PRG1$4r`HQmEv3$db*;IZOi zTw)Bg01u_xJ!=(=MhQnmc(U3;A+++t`(&or;0M%`9z4_lyV6=Tb>mj*w`cWgxM@BY;mYtBki|fc*kYwjt<6?fc zs9P5$m>u(DQ~)nYg!<;OZn;C=ZMXq7(`XTyM?o~2d$Ve>E@GV5AEtmNSs^J)45YyH zVkbA*n_QvhODvWhY*0uqfw9tp3u)xYuVw1KLQ8j_DMG+2Mxs8KPX~(*Pou!+i0hsx z7z&otoi)1J1(%1|^w<)X8rmz<*cbc2szZh)WeFe*&6CMgvvu{Cv`)7zt>&XQr-_XS zNEkeg5XS>=PpmTLVP{Njf!Q}lSldNXyxcjyMM`r#Vis6^P?gUA~dz&!dG+ zj#d}>Ky8j^GCYEhDpKUDRbIL#e=-T}YTcfPiIb~e&*-|N>`#T0OkI04$lrNZ9Ktn3 zd%S27?EVBb;B?!PLrl$8Xg}K}>AQg_5JGjPARFnr_uPyqoJk7mI(VKu2&LxCO>u#o z<(n!UFf9Yhd(jYPD(@cgWQ*EgWzz+r&!Xct=~Lt`bmt(ICbFa7K(qJB%>|ouYwE8mT9G zlc*&%6Hr&2<)ngDOV3|?(8OG|k?v-LvZY|zWG*!d&-v#)b)Sn4v}jCsO=)C)&OJ;^ zSeectW-#kqB|WI`D?6m>fB10R^Tj}zKxs)86#r;89=y}rc3n4&8h3+GR97K6RC@-X z%q8^Lz^lh&K$s+1-hq&j!RXh>Fuo09Y(?5BN+3R>azU8drzQZ+giguRnX`FtRYN$4 zFQupqtNi7#63VfT&4X{wBa`El**ekMh$V3~BuejLB8mVVz~8==sSey}pk68Yx ziE2o2o{7*52j!zWeQSUJo(##qD`}?s5MeywpkUnF%g_YKp9EFJWFxwhU}laa7Up`q z0dOu1QmKYMH5q?PW|-+}x=|Xuz@L`-cR;u;O)_n43$SGfd$7pKoz5p9U49EHld+~) z_nE9t^|~JIm|+XlpPlRh)s@J(D7;}`+ki!-uwUZNWAzkRsEz!g%ahN9(T_l z#`+j}#JXEanqgK_i^naGCX(!!l~6<^xn6HY)Lss7Fvf6GUo#y0;&R-8MC>gz2Vb33 z?3Ge)peF$J*@+|bt-IU=)g=Lup0o8@&@+)6mvF2W4n68_tB=YT7TLvrJ#P)^b5pY3 zpQI;m!-Nqz=&Z`CO{V#3Q1ccGyXs_ZC=B-oR&m^#!hoMQ;X;=`)9q3ZMIRb>vmk=Z zLVQUB$k9gd)>!Vk%74pN){5us4`yrO6WJjoV7I_rycJ+DN=h!54T4@D7?(t>c(=2hzjH6|lWvKC_n z!liCRoJ2HEOYMh8ub)Yd{p$`28#_RJtg@FukCW97>JikG8!GQ-og6^tDN*`+F(V~~ zz^Y&&v+hUQ5jUmY3hhn|y(m^s`I*|LkLy3>Z)E1AkGN>{!Z7Hc|_DYB!0R$PS|}Je!uYWbV~ClmMVT&W7NfIO0$~+ zNIhbZ)e22^_fh%t$nrZ772L`l+?VJZK&h!!#9?AiZ;J(D**ty3l{fIg@M*6NyhgI= zSzqRfc8mvQXwg1U&K|mfm>BoLses{aWkTKF@n}XQiakeL|LmP*(bMn1vZyljf+!!T z`W#*V2%{LAyz9he`QoISZta-tb>Cli8She1Im-`cN(pwfT_ZB8zmahZneT}ariKhB zZS6`U_F*lx>eL-3(G_3NqE$y5I+9et(aCaJ+B>qRVF<=k{)(=VeiOGcx&Z@DyRE?$ zTcZfBc4=j|=g0B`KBI?lRQtDE!f0F}^By7pR^UWOm%Vikwx18ATv>xZUP+{&Cfo5n z9h;TDWQ9k4TV?QCjmP zu=_1=omGw(U4PYD@}&KZ0*A%25@)^?FAC1_v6*l{j^=X#QutxFGI z805N1B>Rq0u0l01JVOVj*i!Riyw!c&$gD3rJy1DsA$t=y0z9hVN4k5K>Gs%*T3?U& zH86M@o-ocz`XocZzd+4m4hZ*C} zpcD4K8}Zg&`mTrbEwD;4S93Q~q&deRiYJuCrtE>_&zK+a)^WQt`ui;8=BpbA^43f0 zArhb8Lc7yufcLt|@YaG0pkjNL^aj~OJfY2r7}j@%FEwL+**|r@D4E^lyNxIGZqdFX zUR?e~^wbAkZ&6){jUBm1Z^AD1rUW#AkuI#rF+2t0jOSpIa0TXz5>@7rx0lb@=hJ-q zO(3Bwl{9|z&I80xkvyNN%TQKMkazL9+*R-BA%R4ccR zZ_eCqRtUWtN!e}w`ks#CMHDq81m&xV{9Cw+I|2Ir`U_xwjVHI2_Dzdyc3Jvcg$mids;7wFP41zdbi3bN z{t#2550TmfLO{}%Q@$n`Q0uK}E}v5jC&u}=L}-R*fe}^tp!15(SI{1G3fO%C-^P8!(I%1y|K1ubieXKn#9M1T#J4d*tLMr%!C-;8 zR&CT2A{_DRy4h^qI}@f$>T9hWSpaTbq)ckx~$phF1dbdxLwHcCGCE0ABU= z3t})|ekW?EuW&DIs$BGP2U3&jLeYbXaeJ8Y2i?u|E4GcM;~bJk zvE~hkreDREoghNU-2MI$-k<1ySH0W$VdXos7K{-bwe{nq5w^Gb7TTllW1P3USQ_N= zSz3b?(TQeZ-f+UAuIQ^1V~1$Hel|#~%=L?2PTv=-TL;&q?v08U zBq-8_>=O(TU})ePZgJeHxQb!P5CzC$k=i z`a%-VL94i+6jR>#nW+ge{GM$G--Ot*TDiVbW(daa#HBtpGXH z?PdWLSDWe3V1FP+Kk{u2h7xZp`NiF_nuU0B{ zeM3u8gN8JI$n|l1gFVfsM_5ygsH`$Q2+~}l@}k7!yxE|3_N3y8sfB_N`{Wa!&C`7S z%8U_#W2_FO&$f1a&G`Ae@8@E|wq}dU_36r=R{RWtAa!k*C#(A(4xW`T0XV^BveY?l z=L&*8jGuWChGJAN>?_c{P@6ybd+NM3OK!-CzRyi{9FFnU=t{bK*X#OC@73D6ijZ0Z z6&?h-K2x&@0}d{9d@Z#Gb=H|Pg`XSU_1}N9jyxtWY*l-r1ZTZJxYn!pa`ts7tnjkG zYy%y{fFGve4yx)`0Ks@gW6saKV!zF(jZV54e8#=b-2K|?NdAr8&dqKViOj*#Sx{XPFNWBIh~n-uu*pdM8$FzO!k>x9fT?o-9+I-{y<@{(okJoY^a8Gnkab< zaNKti`9S-yp7G$joP6@at5lSC^xe$lV^f;RkYneUDaMk~rhl)CFjOynF-II4I|b&| zWI|52hYG=8V0s69Gvll$?90Z0z7|cUgWszch*E3;=;#|!?9irM$#gAYE;Cl5rpEzOHoZ9N_ z;Oes;)Hesp9+*{w??$803MV}z05li zu7^D~^+uf99zFq^e>v#&7h?TO{LxkOvH9Q_Dn{06Zw`JF83m z9KzGwb)lha@`Y6X1iQZgYaLT;$|!QM?6|jbaBb?__Cdpm4-M9lE~zDv&poPAPq}}# z7`y%c^Q^*Vtml_RRlPAA(tf~=^xlqrtAJ>(>j`GfsxrJF`~siV*pK&=dqgFkDGlX` ze#aGg)N-xfM0n6kSxADSqH5L1VFMe&hc`gWk?m6~`8#e6ow(i)0Jm+Z-8@VK#-JG3LjWp@ zc9Wh1w!d=w1SxU?z7t@jX~u`*+>K!HP1SUZ)N!_uYq=oF_8D&cT#(DJQc0x?^ z!2`l-llZ((9TjmwEJIavz3mMZsEykXR43oDZ5sh(;vKBG=+#ilaQ%F&+UQg?*?GHY zEh^LGlIZ}Kr9im7nnuZvdK27S|5L72q6OHjtkQ!f6j%4(yLuT5oyEj7W62+F3VU2m z%*E;*KmLdr2t_Wf`0fiK{1QNW2eRF{`Yk?uG#pR;CPL9j@dOZ$7BL=$#V$c)u}+$O z7{uJwOGjT;W{#oJVnscOIR zdqA`AH`8aG(8X<+!Rfo>Xc&$gKb#t78sZ@=VRMs2eKq+VN{y!<(D?jr^es#di`%9a zv82Snl!YQ7@1v13HFiV)I(w=Z%v+^$z2uOjQv$&r0W`U2_Zs;Q6OeyrV-oG-`={?u zxLi~T-QuxlaAqT#JZlfzlvuC>{6wZ#$WgZDe!(Ale^{iPi^~qy-+8Z;2O=d`NPCJd zwyD8p($4%d<~F${wS=MmR(#l+#3#mz`8zs@eKS^vru;N){-yz6SriM?Ci6o$#P7O- zC$_O$LPWH(XenQK?cl<>w~5UZ!khhSxD+#ANVyxDswg1-yEv0fx;{=)=A0aar%0_O zB&~@EsEIj!4zuO_m2Sz`aerznLl<5nf)^ zsQg~BqpieZ(B|?5@l%|GpcWhwRuIv6_%GMbeAkeFj;eO9y?( zy}W&So@t<|OY-7T_iu+r>EbrpJ2GFNuy{|FOznlP5jzG$Q5;-+9f8&QZ+$$(CZp}8 zsol&1U1C-}OuaVl^f%T5?rZ0fJ1Z<$FBDTLuJ}niMpYl6)_PSI_BU6=+<(s#R_uRl%M zl1i70KEYC&rBpdwj-}yd!LJ~ixTjEMat#1Ed$5bA%QvCF{l=ChuOXPn+xI4!D6!E| z7o+sx$BOE{a|Vyk}{gkFrBnN@=Rb?TY>6mPiUSj*=I^>quoI-@AA{SJjo8MhMJzrXdp}WF;u5~ z=J<9)_v79!26<*ErV_E7dg%D%&dKKW)h$68n{Ux|%{lT3ea#!%uCfj|W+HCs<6Ey5 zlABf#xVw@QU^i=ZaQ@esv=ZiIHjGB{lo{d-R)As8aFv(vLov{UEu69Bf#3>z4Z;kHhWwsLvlL%OOXWb9@)VmO+&ipXe%p2 zXNWq(ZE*ftBoUI7j~1y1WRarF>_>Cw@XvGt5{I*3U|sE4ZN_Aoca`o)0&_?MDh=GC zRM~t2!|v5=5wnP^NatWnoHlAs|I(E`-Q8X>)`IP`N`XS9N`^|eJ%~>0Y%{5oGi-8^NBsQ+>FrQ@B4TKv(}%i<9wI>t)ORJ1CuZQ4kL$I;Fe%w+nPK^V)+`>}sMolESy zyi9H4AbibS_F|pl!i?5Gppb2(AzVta-BFL=cy^@UX5y!`ijo#fI-P%OEs7lTIRD9& zsE5@tE_4vX@L+nd-XYvF zVIbAhWrJV^<>yT8{AA@p&&U1}cvrW%^kSf!h&=u|7n#So4W4TO|Llsv`HmfDh&(8_ zl}Sl-#3S#v89B&&oZimAinUHwH;KkMKu?+_5bE*)F*PI+uI00+uxI|QyfiG&T0_2v0HD^vs% zL2+H9Hy14ihMcd7McZh|zbUwxP(~QPh(eD?Tq477og!>}u5ElEbcSdond@`cHCDsZ zGwoEiS+eJ%K>2i0QI`_Ys!ZwF=$X*GN*RW5MQCPkGZ*2#Bdh>e z!H@+ubn{uGH9GDeOY3&r-7L6H)pjSVnq-1(p0nz4#}QlM(gWvQL0SD1ph4&{N56;$ zUz;+C_skPy*rV#p1Vy}K(vnTC^gZ53tGJAPem-a}YJlqwE9$rqqCZ~0;sVa7brjfj z8^4C?$D4#d>hp(9RKb2JljZ746rl{*FFm}Sc}_>-1SElSSh2dWH$M`tXifa^8EMn; zdTH8C9tZRuVZ>I(-hC&~KhpXv!ZYJ@4uAj?j>EVx4OS^H&g|oP*x|EUnF7UWYGmElxQMQ5Ex#W$;0gWqea-4wk$b^bpHa-w=FX>7Wu1;*5f7d zz9`Yq&%a;UQ!r zj>_!7;(!-@clLaJ*{0`}G`KD&sfXwXH_BmZC~j*yP5bWNt@|0DijcD#9-*~KV8vT) z#rN~F^c&N{oEdghkJs1_bU1GK@veAEdXt{l=+b*hxkFpls3sDSY!ZxasxzAXh9ef5 zr*XfyaWIQq8S#))2|m1HF_W!4rl+@F$HH{QqE@)~FV-}Im$3bf-iz@G4Uf_130P!l zNlX!!cyl4_bbgN-5EhCiU`N{8!0KbA< zl??&1qO7qkQ^~^shV1K_hq8L36?Eqi%4!JqUH4TxKls$^2h|RjC%stFlUM!z-Zbz= zh^S$>E>XD@Vbv!z8&RXAwTTvEtZICGyTs^(?ed7HLyvfkLjT?faAy9E&gEZkF$XBg zG-;URYPL%Q)Ml$Bg+BBOuQ6csvizsnzrJG(jMb;=J!3Gay{C@_eXF&2{h7US&B7!+ zL?84$;#ae8wD6v{$hlzl)V8Fv#6{iBA63lrTk^!7h+hx&6r(c4T~vp9(Us9i0G5X! zkLwC*&%;aL>+iapCKVjav0K(LgO>_f6dC4$P1NodbXyI?P-@9p80hxy1NqhS7qQ%W zg=5zeYrB@G`YZ^OFJTj+MAguFAHf3^foZs=@(DKKnEv+FLb zg>J>`RWe2IVE@|W2FT1yi)4%qH3Z;(x>nt=hqj(fcTZbX-N$2>m^WH@VNqiPTr~9` zPq`l2zmfN#{?>Pea+98RN>iac4LOSLi!spQ9@{<q$QvM9EIbE9xpk+Y@vIuc-q?@Hh zH{@BZa%Yb>)p>tUBg!qYF;WEu-S6jI{$HBF1Q6Sj=!~^;fTnHN&jK^K_}&D^w>)$ zUd=4rGTd4L!G~=sR_5R%^9H5ky)t#4{CMA_(&lgg2cw0_IFb5&oZ$4~9qB-7wzUpu zr!yuR*IkU4&ePF^cAVOC+==4;c2pbK7_xlnzGRq9DDWUbKZ2)pf)VQzB_jGfdh-zJ~tS zEZ4|Z$u`bweod3$h(QS$+a4ght#SdUtg^OxrY`V9@in^yFn#9Nv!Ob(q!yEk)WMB} zR@V5xFjJj?jAi!ZEs^?@^bM4HDF!6y$I`3t_CDjP9hDg+;{Ekvnw$dLCFs!JwF}Xj zSNzKmNE&WOBm1NSH(=aEJwHT|YEBiQxBq_tI6%k0VlxoG8<5t>)!09h@a^X-a*ZQ{ zR4({eeIWU=+U%oO{-L4dZd~`6AZR(;SZ&M&CUe*6L5;YQEB& z4pEeBLpA+S8ui7Gu4>_2(0+j~_HK8w!>L$?3cqesWf7vdaYX4*`Dl#Ge0nm)65VXD z$uae}l%y)piV#d0@}%2}JWcVQZ28N&g}1GdvuUk%zy^$rR&cnO+UF$cC+^zpysDSL zpBMC4%|KQmEA1k1x$fSA33sv3$i}OBM_hI}9*M>*ua$BJq})`Grr614j)6grRiV7b z%UUQPHECz)$5uiHAeXmRPVaBm_xD)k5{VbGqD+s&r&;}2wV4IK*AdWz3G0qA@fqvZ zvZ6W?EJ7>%>I;fr$Mi+F1;H3?Ui<;tS;*`WCZ6N6$VobzI=SRAO#yvq@INP|p!*L| zk(mj$;jzX$Ta*{;AKnwgHk!E53jdRyZM`{-&~>Xv*z0|?CM$s>jtBdlRR*cX_?C|= zhDW9!Zn}g&eW=e06J2@mzRX}Ba?LH>+nNt5&E)1}JL}pAe7lFvmk@K>GXC}X;~)_P z{Gtt?=eg6rP46W9j29`uJHI#%T>;36zVW!1zfem9yUV;P(TnzPre2AI+L8k<&Gv5a zhXC-FAq2j}JsDoO!~{neI^II)WIq8bfwnimI!njH!g+h%Cx~y$^pggAj3F5z?Y@+s zcJ1B2I#|EgD~EAk+79gxPleypvlFn?KExw>*Np9@bM&{sVaI~p#c@IY^L3_k-VDqXw^pD~b||gnAoo3jr2JMS*6&mkS{oX!LEqmzFe?$8=FMbh}&&Vx$6oohD0p z5x`lIHWu|W6=Sx6e>DUAs5R0@rQ<*d%MS_`jjeqdV)+0%qe#JEprAHNlxY&IG}e}A z_E^SfbQ~}VCX+K>)=Jf(o;x6F=Y}4!6G~ovSuIiVYCv5;V!Zu@fVv&FXq&4;x|d@9 zkr+egq`)`mcwo#4kq&PB7(Po02{q0k3i=l)A;5ZVkkpaKXHZJQ(;Lz#Q_eIf4v1zE zUDDye^A9&HrpAe_(L^yl7C@kbGs}jt+-fZ@)N?%Y%2J=7buBlGwHIf-aH2?wQMyzV9$&TikEGu^`<+f{$q{YGr z!tE+-hE6(^94G&GC3yO(&xZk-pb`KPAtesIev z5z_w&t`n`A4sBP&GgYaoRDw5R@9u3(t{C1?q!1x#`+V$|HFoU>f4XVSwcvZ>9g)HW z9)J>@3Dn%T@6Jfa7>VbfyY%%=IUO#$UP}r~af!1zVrKEPmj2MS3H8Rw+o=0StQY8D@OdHv#qFoSeV-!a7EF6wh(`-QJsMNKEHza zv{ZXUzbt#T3&@F5$0uNR=Ds<(x7}1oN7dJTcwss|NkQw;kK8bH7#u4XFSzBTE`n;+ zGp}mu`Zdvf|2D6iCT2>MKL8bXb+rL+-1M{X5gIbN-$OcUyvzDHxZIV5sl5N=7(|1; zwC}j{%2ThS6sdG=Lx{6^^c6){D`nC{_X!%tW_mafy* zM5;+xzK>%_SH@Hv`{WA?eTa;#8TB=b+MtxCo@L`WmA^X>M|V&aS-J29*#q-VQD@lVuTOdqxLH_i| zGSFdyo-6gP9*?;7aTh~+tL8n_zK8e ztkB>|sg_l3^77oBF_iiiqE1e!nz0mu3(^(^1dv+;&t#vk$v$NZC88+xx$UY#*6R1i zhbeQYOD1~`p9%UCF1t=Lf1q_hYwzZxFGruYWnw~D#~=wtK&Km^2B<0B?n{fbF1|K_ zvaf&kp*i_SjV32_Xyc(+T(~LM3fb?nCgaOUSN&H!D1zBydM9-QYZm@W(`kRv38@+$ ziDAEs?%8}m*-oh4h0`DShiTVWu27$n_WQp6(u>8(`mv$X6zYyU;BcdDB!5U1@RVht zJAZD(QEV>6_*HA_#A9$p@MIcsfYcGZ%=d1Ve?3WX!bBER?+fd~z=TfDQrhe;yjF^( zqbJvLz~QY{skUoZ4Et4!B!fxN=l@!=diiI%8wgTD%9~@y0Gak3D}dY$4D{Ve#Ok{a z!(6jnd?(wn$G`Y1?Q%qdB5K|PW}Q#HlWBqJ`|74RQO3-t&qG_A9iWGD2ky{lNi2ne z+@N@bqG}u{zc=iIrQF%;iVL9@$sHr-RyND8_;(J~sD+?vG>bpM22ta;MX;gx3ejx| z4mEPiGo{y{wm(q_NV-X*Cm(e!fG$e|Mo_e=lEiZcbqa$qkvJGU!Of_i^E824`1Mba z2?d{Zv>eOXj7z{gpQ;hCId}X1w_OpM&vzN8gBJ$u5eKr*DYsTD#(JAElv!1F3T393v zJClRWH0-dni6+GzRX*1>c!1`cWsT_9uKx@@&(dbCY zG=G>j-&0~bQCIByrY2MNEmtt;-{P+boQs8@U*plS?p)a07{iz?0J=64^r z`UZRN*OxUR4I|wRTyBgXE-}UGqTj1O|3B#y42t|eRn294#eM3>2H+m7P)#M^=rRP# zs^X3YhR%JyH~`D%L%8MW?={43SGQMs|auV0GNoc#yAE{9`(+f`)DaXxjFg`M~>#wv{$q$ zGCi7oxZ0ngGuvRS9FWjjKdNJGUl&Zu01l@y@8hgB51Qxgz>Cjg}KsFjKz&$H1>iNLp z{k|9TH|2@Iqnf=*816NBKEw;vYDazzDYRtohF`c0))coDRpI5!aQ#K>%A|R&q%O^T zW?UOUe6Xs$gx(lOuQdMkD1RTo3M{vY=skB>gDeZQj2)<bkfwYGOm?}Pu(8>lpS2-u0Xj?eu1z1W&>ra#7*4M9hpmA6KM zx)O$@t*~Hl@!9D@-U8cF20ei>+h5So)F4JhC9Joccaku&JUE*91ma_Q(SiW`sDz7Z zODvKrdlf;X_#6RBmIfM-NwIt~Y4+IlY=Zn7M-XwpjM0vHBO26ZSx30>6Z1rjqe?S= z=1Xl?cZ(e`yDN(Xt=(aH^*eZiUy;{;fE+5&X zK#N<76^I4YX~&~jwCLTCdn9Jw)V+%T>t0yhax^=?|>B#nG zE7H?riOd)^lFtON*=&^q0c6oogdCR}q%;;uXhZ)67a5~*PWNCEn!W!K?=MSOxF=}i z&3xBsxjb&;tlK(qaCSrmd@O1Vc~4wikNE5P`~_Zg~xmepzm+) z9A%f!#VyX|T&6avkJ^4It7#dQd)%%S09uUP_NG{ciB?Ow0}QEdYd4)uQQKo_zkF>p zyRx?x_9pm_@x`EzSY1=oXDegdHp-jT>31ygWTiq7Nf!tfou7Jn2;P)nqS}n0+vsxM zogwO8C1*hQ_0ynUnyCIwwg!gr44;`&dt#1IB_b_@by4fFsAcn_Yl84X^(GT6zp>f? zWE688;Wki4yJFM~SMHBv-Z4Ljc>ijpH8z#kvzC+RO5(-RlU9#3)AmiGkJ|{6%YwJS z?OkD=Es_^@T5)DOH?2NKjIRH04q^?9ehW=8FVmFpY88>}p8?wt3F-QcUwp-$i6Ne) z9m8*S5bzp{!8AA8;-< zbwZP(y~TKI2huw{yCGnd0#Zs67;cAYI1D#Y+PGIM^fR0AC=qvYo%-?d3n%t@8rjva zJpARqRvANy#@&WpTG}00&84HBuSwqr^b+V+Nae7%cgJ2#yx|28#x|9yejKHO`mZ4r zr3pxbG9oO0TA;Ws8aZ|UgF$e)KIagZ)+dECBZIC3V~q1TT>%?G1DXGp z2W$CBOXIJ7R!UQGYt28gR9Q<6$mp9+z$EYt+J^}@hEb(?DA}$~xj#$7u)BL_aym&t z=okU59Ehdn%^P!EY@7@Huiw!Rrhz2x0;(ZJdX-#yY#$3!uSX@puRc9R`_SRM& z2op8k;nway&|*(|>mGd`9*KB8JdneLzmsccCt#RlA4FPei5M!h zlA<*WQ;25V#@$8JTB(9yYG^yL5_k>~UYYenU`(nMK>K$zUdA3pm;tqZb)KsLG z&8!iaC9RL0GptV|rW>w$0VOz?Ub>Q*-8b3&uA0Kek}!sr{I}Qj1hhPJXUhp`plKZb zySgbZv1kI6@jV@OXdgX5UKF9eS=Pt3CJo{9b|R4Mkt1ZKbAD`y;*te`1a6;-I(v8S z$>~uu%V`ZmQ@9Ddz@3nOxiUM9bycJM&CVXKZ?Z92*AY7+^UM?EyqceQ4H7PpKFnA) z^~MBxn;?}%amAu&e6@LvG4Z2+G3k6w!1ljgmtl#KEoL0!G9rx_;T>5m7%Gh)l*PZQ+7i=Y;qW?4kjha4?%jS#v6oh+XCj9ZyBenK{fw?YQU7L9e~WjRDQXITKB!=@q2g^4;GMHkaIcvk7!q6D!q`N^@kwx?;QV(inb%vkT%)Il zQP}ThoFj(&!q!d2NsJJRK6a-aR!OOc)_AtsoQJS%GR~3xro?avW%QV9NG!9dd>$SV zfkrvfMq)xMYD%R)+d?>=HfF`I*0zi9t@N9>W|r}H&=$TEY$xE^G%WG|`-fWdXZm-M z(S9`7dplHs!t29P`dAExfrlIfn;e3~vc3`}>j~^cX8J*t;O<<9W>Pf9{UsJ_fXFRW z+HwAc;nxT3rK6K}4%=>CJdL_DwaL|f5#z;0FZV0)kzpzAJ0HnRU!b<(poU5lN1-%N zZHqvu3s^enuuUDe>l(*x`o(NfbbTiP16u2veBf0|MIkL)uh5ysLv_EgP&FD1-horc z?|HuH*n2*!HI9lemDkJ)x?dvgC!0~vdH3C3Ug@pXSSohPh;U412W2XNOln)cb)P zTrTkAoqFf4T6~yy%xfRM?fRD9MdZU|Xkzal>7Bq&(t%NT;TpUM{87vy{gQ&(@y`Yv zNy+d0($c{UPLV*4(ucLcW|!iP^IySV>Ud7as_*6GDAK9w26 zd=uViegkI^%B<_VrZu0 zOn5sod3Yv~lqL)m-iqB+)&>vS3{DY z))^aL1Y;i{|2N{d5KylMt3 zCN5ha;bM-+)q81hibU$qkeFl&Gm}vL|K*)n1i}hLS(kf#lO!-4FPP^cU}7OK_0oEW zz_dOEq5LH>iV$XQCXUZ}dG>4(O}4BORY!cBj*2AQOdGquaz{GOy>j=hV}oEC^%*Up zz~+!(1H03}V|w9+7kMobu|q5K$>s*iN{t*HSz?=lJVRh3xu3H*;dE&hE6e84rOB4$ zmoVm+!Ba2$HSa8)vph}yP>^qrkWBZS+$a1rT&DbHi#;bXng71Ki~tmJodj1#oNo_p zKCZT%=5b&}KOBs52Pi?)lqQlp@7xy5d9O(Ao)uAeBcs$;2^WEpzad4$Lyq03-$2}7 zf#vclI|O2pDX1j8KB!PfnUpymAi=$=+6hKtU64{fHeD}1@>N;wyhZT_kFDc;Ge z9QA8^9Aowbv+SA*f=&{E0W&l&N^$5o#^cG05wY|=bcO8bCb&Wcgp&E7yG;HbH*hPz zFIzkg8A+q2muX+29MP)A-;cqI*A}J6+9h>XWJMU&S^sAT-7nO$+BBc>kKhgR)Cmm& z$k&3icd0F{jZ(NuS3=_4%2FVdwV``A`@T|+F$A{y{&Adw9jlB)>&D@i{`Sp6DU!l6 z5;TXDB)Qzb#BKqY!BMpA>_S}kI%w6P1>Qj3Q)Zmw$|N)T^{y~gsLQ^6?K&Pw0Q;NiN>y6hJ}we(DNlTLdfV5AjopbGJ|?!{7D;#L{N%*M zzqPqiCDlx!y#zZ_W7_8^@&q<>HJ3}+1>MJ^uJ^13QE*iIX(`kR<9q#R_NGRY2x#OO zOpUY|_1+(e{q0!@M;c=KW*yyZY3_wA{mltS~$=ilW}BK)PC7GuBoU`;el>BN+qM;3L6G6WG2KPb(`RyQM; zh-EOt07WTw@A|s#pIINvUU!IUsy>z-paqBSj10d@y!^9d&}C2#^dvC@`fKxh=m}>7 z^s^DOeE`WC)A%w^`>%)_@!B||)PJ7ok|<{;xC#bGrYPNOmydlM$c}gA$TA8rW$f{= z>Z^A9?Raf;VOJdZ5n#lq=KUd>Lk`ML{bu=N@qDY%;}(?h61Y65_RWGY1)C8`F=LC@`p$)hhWw4`Kao}jZ=<&OngE$0-jd8oWf_md!^I2PdTaU zb_ns!v0PsfG=2ul!{bj*nY`5God0ndp%g7wcm3a2+Hf0*i4aW&$boc5u$-vZ- zXn>UQ+ZEgHk@1YqU*iw!=jdUs3?Api+Bwy~@h@`YA-Q$(=m8I#Lp?c$fG(Aw$af}V ze{i;xf4ZVJeuolfFT3!$&RmfGb^Mq<7(%o_@7O}3FeO2mGPw~5{#_E736{*`&l2W% z@4ZA`wExd?B#n;}ye8>^WY(Jm6n_@2_gj;*bwDDIhN!NG83u5xF{rRx;ILca3iGTp zJkjd+46%WUPpW!>;{&ATF8zPIAdR=#JX_uQc{lY~<@4(6_dm_;Uq^+}`syY2OUfng zhu;qt_I1?!ON`#{A&DfO8)t3vdQPGKOw+T059`1GS? z@&%=+)@Kix!DI zIEh(CmwRx5RAeRP8mO=xX@-U=RN5uV2EZpTivJ<2d2|#J=6VauqChe-_nlzY3u1~3 zUl+J>*1X8I*irw_`^2|+v(N7JIV9|(`?hAF_$1+R!p0;~;-XMQGd&-PkwQ?9imUJ- z@%h0WVvpUQD?3v1We>VNra_RVeVq;3GA!zuwarwz@zmiP{_3&kKZ>F2QmUN>$q`pb z%iH<5EjP5=8M9@}_0USxV2W{zG81`EucWQaNhSL%F+p+*@8dHDmTw7i&T|az@ur8^ zU)znVoB_Fc>97U6$np9;xiSrM(_d$Ox6l?&tQEafZV%h(j%TnyA;)7LP*2e9g3np! zqv0oRg3$EVFI#R^x*d{nnoO|I zfDi3nROYb^KJHn~@u8t3YF@#2=8;-yzuH>BZ_Vf5&S?={U9R7B2k8yfEGaPSW?kc@ z^gq})?8a9SOkxj4 zPKw>zI*{vN_2tDe6d(gpw+e9;lABYbcC`@M&0GndmNYMeP7dM{u$)oRwbLqL1BLCH zL9f96BgUw#S@`BQD~}^$<)tM3u|26EwZJjJre(X2m}W>LdZ_#iTz$9ImpULySxm(! zZ}*vOF-g)|_Mluk*M)yqA>ErPfv)w6B-UuTL!to(8d2Tnv6B>+Kg4`oKWtnZvR*<;bnK^3`Z%_$5i9nTg|$1Rm+Nr)L2Pg zGrH&oUAE!~u;!ccMeJ5IxGMVjQs4bsBG85{g!QxF*>%Dw0kRtdpmqUho42*;KTm7A ze-FC4>C7Yq(XZXDVwiak_U*oeq>HOL8Adnb&+)O*^E?p_*gfSx6RWiosBi}{VTW9k z8^K>&n%vo++t_38De-i9-K z1B!A;T*uir2BmWnpO8)rVMu!4{2~BuEdQ$)T34*yP7$EOL5jyx!LMxW@hTpvi=4w1 zkvZes_pnqHwvGUMJhT0tKJ8AO)*gdI2}~fX15;MXB_+;;uI>^%rp8M$AiA;zr}&tX z^!eFKKEnA4a7oQv1-95OlCT*KT$?75rG9)hx`|-nIh97Izbp7WV+!FjH1gKvA2UmO zL%N>9Y1|0YPgy!Ej-h*qftOcsHp3CKQ2{BQX&>^WB++r}#o{G-WlB)`EngwL{J|wA zksbmIS`=~?`qP15OagS8n+32Y(anhN!ni%$U^Rb?WvI}XG#F_Hm`|**KV4v>HoK?t z#1}^2C#*aSteAGuQmjaA)_qu@K79TeE(z?~eP9bGsi|_nOYT}CCHZuMOCY<^*Yqfx zI?(mPju%AETjT;H?BF-hA{;@dHxyTAE%&WBbpH1Li8)iAcPSD%TfT`Gtf1f#%HGAW zL=Bka;~i~#s((V~z0qO#eKB_L@8_}QT%q?#vcJ*~PnT~~!Kkq!0Xh*I5M+Z;R%0N3 z&uFwboi+Ch5F@`UglMDzz9n>1KT4=L&{wu@CmwB`*DQNi^^gTGJM>^T>=~{O1dm$1YSt zaj<`|w9Sr%uF4rD9+;7U;}&y{gP~z7L^R@D;5d2{Kk`}|sRpHAZ=nc}6S*IjWA;do ze1C*FMHX6K6gTZfdID7Y`uM*Vd4_)(zh4rC-C3Q)Tsc7QE*r;JeAm_7gR;4Vo+zos zV${eLjfwYicf(Kl7@YW6j2{g7Y`(VeGf^*(V;saTe_ngerz9ukDJlo;MrZcOP*p2^ zMEHMm7SrkFc;Sr~3tuK|3-fDgA%7I?MSn>F=soR+d(2?q`oO6yl;;{V>b&fhzf;I- zV#n^E)zO_s*3>)pB2DPvJ}`K8DKk2U$5hWiC%~^h|7_m*=e1#tpqS2wS~f2Cps=UC zf3tw|cDyce?PzJ&*|v16&eit26aKT8yeyc{HjDXaKs=R^JU!gSD|fx=L=6j7#4=a9 zbo2_$j)o^`pzSU z$WILiM84Fn%vqNE+!E2g95To|(X?KbnV=Eea}PCe9)xLp5r7hDy$PfI7JqmDeAUs9 zBEf=|1J)wuquszH&<3tS(O?XcgF+Ki+~%U(eBHwDJEah&o>i;8i%_W(8}Bjx+BNi+ z{N!xi`?&c9$2r21@imyp@5N6jeDfN-DF)_8eV^l>FdDFyZ&j(rrj)8zZ1T8hiij%1 zI5jH)O`vr^lV`6-9D4OQ!r ziuj-GwI7=LQ`0QM!Ds$C)_QlGOqu(4jj4l9zTQ98J{jh^m_R*HU|Fe~)045!q>y35 ziFTgN12Qcolr`jM$4y{AZNNTYb@BuCuw9y?raluSk@%qx!QA3Mi_5SzrbyA=$4KJ! z=6{GZ#w&3RMK1siYliS7wO0@UGEG)yaJgFQjU{ln-qhH?bu= z%4_7zqIzwM1ZNbRZ4b_tj;bGoU5#-&XtL0V46$!Zge&k6#1l?BnfhT_8ON8 zLSSb`(*p18z;+j0-~vozreDnGcf3c?eL*DlK$!G4e{p7P1WHQAClucD;r_O9FmRHs zed?M&RAN8g`fS_q&%<$C?Tw|ZjvN|_y=7WtI8r0-XdJhnW00OMUu(Whs{Eh1>&ol= zRlHFR=T_lUJW8ZyVE^K0 zwaNHv+Bjo?K1Ti+cTLqrja1L7k5ote)Wqbx!e|nH^6^01{k`1kV?Ja&#n!} z5>EtD23*YMRMmvXPLcXT%6)?G?0w-UaJlk0|Kxf$_M|5XRxMtCFYlqPpcBxH(+XqJ z6G@zF{;Jl$EPg+GV&cUOP3k{(_RIbz>_#F zW*uI{W`IKptHx8A$ndEqMV^8B*^@cNeMN5hK$atck2jke%HwjcIm4pbBjGlYVHw`574-kB z&(X3R<$zw-o+>tE88*5e5`&`-ul%u%JhO9ZNo@}o^=r6$S~#BvHLSWRp641Eac8Er zuNst+H{TrN08X0)#kHv8Dmbj7Hd|W>P{K40ZuwMDIdI5#9^a;7gVFju4J|)BBeXg@X8m#1`J~8yC=wU zOHu?gwJT`icDuS$LMeMV>rqV_%%yMNIuLG%EM^V<=u4YUDVC@ng47(zb#1%5JbGks zMtcc;Mv+^p$OEuLE9Z{W^^bm7H}tuYpL!;INFk`6!jkDg&VJ1zSa5d4A*%FQ+!)PG zR5Zld6j^@5^C6`>IbsYi)Mez)&-$?qdhvqr(W))(fN?AUwBA|m%c9oIe>XKermo{~a(#`JxHZr-v1Pn6Qg z8O^q*JU`&NRYU(bncP_3LyNus%V~!e$081q;@Pf8IBt`KKPz^R%5OXa-mUH;0Ffw} zK*IVm{f8`+b1bOBzn!PRJi^yl+lgfLYq}gX4$pV7WX!=<6^VPEr#p~IblQI=)8n=` zJ48p3M&K}nYYfGE$jSCfS0P?m5X4_-%0^5X`^q=hv6r4q=X{qQ76N9_USmE1c6%PM zOj!~Uo`36{DaJGptQliP%<(+xoy8{ckET@E_VMqQy{a(ItyRW5l-$sE*kdxi!f(|+B zC%gJ;tm`45(z;U(KHm*K3KgMXqfY zZOe>qrVVPGP!Ke&Ua7cD56R{^-ve`GlDBQ?C$yup;*ScnV+~r8`87c6I^=o$ncg)C z9XOm#Bdef6m0K$OvDQbWAK(;R0X1yuf-gUWyWHYKb*GL&lpd6q6C7}64eJnj$O;$< z3)E2JJYdSVn)snx;%ic(GB#X<8q-S=Y=1_CWtWHayd@CK2a%r?oY_773=}9m?Vn)u zOnO(o0uXl%Oy?91iP$xp4rd{a4ItK5PK#zPDqqro`Hc?3X34ujWPyR2}#HU$2C@1VKnyV2v_xQU=|>4m{3waVmr_3h#7!Dk(DO&v^%ADuX; z#^;(7lUwd4aS&dff{>T%vcpFAlZNjz3S4ytBtVvuk!>|ZXb9~5Yt|!+;CJ~eWPM!Y znAdg_&CMNUG38^$B|r|_W$BY4Z|NRKalkxs%eY|JtLembPKzJVjz9dY2**O(O!B|5 zSKz3uWDM2jz+wLlpZIB?X17JHs4(ywFCNV`V_Fgi7PjGez{?=6SdUSqA17YFzj_pN z9)bnFM}q(d7*1F_;JTz7{8B8+yahMeZQK%w^3LJaj}gN@Ljcn0w3(VBsY*ZC1gAY3 zU}rgVswPvcjeD^*SYiDq8s_3N$SKef6DuQzLe5uJ4Tez1o?(&=`%j~?6Cn}rojh&5 z)_r?X87Jb`W2w2~G#C%rlF8e{q%~-#$5WHWjSKyIm>0E~lP(nr@vR!Yy_pYty;7T% z+bn@Qnj!0&Bv z3NX4KOm@q>jig1!=R?9p3IES?rqOMbHsD(gZ+-3QO4ZKb>1fKWbsxW8YO4(T)~bKhV;hdYLN%lUd%e zD%~CeBt;Q5nQECmsDG+svtHBV5LP2fbcxuNZ2-NZ?%~2{5k(maYj#y>(0v*Y*EAOAMa2b-xKuK* zbZ}be{(ulF*_8ET`o_4Uhmffhp>{DmQf07mG7!?16`VzxA#Q!oK)^ZH_7sT$LROq{ z>+Ec&uZcn28X`6X7y;DNK;g^Zy!7}A-<>S(4VAS$i&*lDx&M4I^VawBgTVXaZa7V2lqX5 z4RHY2hsY=K6{)8&vu&I}$&dge2jm4)@sqW>dyh5{KIzszIxtUZ;@L5JNvx>49DKX_ z2jIq((_*cyF;aHRfMTyzVjKcOd3`Elu~X+>7``;M5#1BWpmN@evsg*tUJ@mh^%g*0Hq6k#DfeC|I`87sYKW%B~irKC}R?6 z8JZFDN@2k zJCzerdKjAXMolYE6IlKvf+gg#+^l1JVIEyx#`vj{2Cka`i6nSl%|Q+}L-~%B~)4Fa=G}?ge3}d>AZ%7eNCpIy6c) znZt;{YCH38OtI_vAFEZSUU?Q+2(Wg)o?gwS5=j5qAGK^uX4@8aP{8nyXD#>0!>bIX zZ81bLu0(cnZIRu)Dt8M+P2OS5O+?RNcjvsZ^9KG8GN@=^S9WhLVb1#L(AV9#$l@#b zv(OWHAea6A%DU4sIh*@7U-sW2$P1!i+5D&(cebVb>4X)0EOI09dxP7)5llR#(KP{` z$9_XiDc=)%^4@gO7*NA?WhB{=z4)*0%n2`4uPm6JMrCF$C#-IyOk;RFx=NlH`NLwK zt6gx{7S4S$g{0z4&^tjO^B3RV#%|;bRy+lanA^tngxX70f*4dikYVn$6s(rJ*Nv>e zvZ{v!)}ZXOL+Mv0<%#m$l>NP$#b)dc)*@2Y_H*uBqEoa2@~rDrvZq+)z?_SgR&D#7 zaQm=kT413w%g@i%c6?m{k*c+sl+!8=y{xfXSL;(|z>Z4miicl86Qw!eK6Fy^+r6Y>|(LGJ$jI;zik zsr}B>#70%*P5ws-GvjM2Ua`|9VyxUC{!wfj-_=Cy`*r1KBr_P6JcNI&0RF`lE_o=* zfni}culwRpzmb+W3~>_LN&%~+K#U^}R}4Zr%LemNhcZcH-uBWet4R*h9mF9_QkZ7h zWO}~Aow`t;jC?5y1IIDO3}XV99tUSt8cI#Yq>{Q_KE)aG(>nlKITI-w2;;Ghrm9?OL3(kbj#*8q42&tyCo46Kg&1hr01K>D$m;? zzt6+AMCmD|bog#$fI77>U)Rg)C}u5Wbd=*Oa@D>LX8g7CeR$& zni%J+^tS0YQ)DTZa(EI;F*$b_dH;o31f`N{emIO1R6Ru!6pgrH@rK5-(2Y1$%Owo= z;_#?>!>=J{kc72n^dpq*Tc66N$QMa}>#9d8)Tw;AnS!#ZKKnvLH$3oC=f@4 zMIUJaKQ$DUEa4wY{?dD607D^O(Qc5N3wIyRDt;Q(N@@T8Px;qm0OPRRE&p+o<5B zSa5))n4S4xqm+Yrihdm-zHg$Q=&XOu6K52pSFy0NMa3746vDdCPu$Vh);L!^;UX90 zv8Qf4wO77-_c>e0UdT`OAFxens^1M8Gh{t`O2J#2twVY!8h=oJy) zyuzTNwP&?Y0rp^d7BWEFa^M2{dAloeHY2n7*fg8;)i%fIQFVlYlg^*T4Yy* zezlBBKaow<#cb>psd&J&PzT$nc(Ehuh*FgHKFaDY!m}U!B^LIH5V|gd5(&82|Bxkr zh*KRjsx~9qi6f-sxu5z?=oLU<TK%@i%aGJ7qSOt_D^zeB&5f_xrz@9bXp*$IxU6~`^Z5%;Q6*iW zQ--0QBpoMg&&^FhmPT%j9y1;sgJzl%um9f@FGHrq`j5Dt8JL}11NI2g;SAamp z($Rj2<w1r9)iS`M19j|E2 z$kts`+=Jhd0QA;1B3tQ8iS+?EmH*Tvqvbh&l99z1w;3^_6PcL=={={1^R`Oz38L^r zN5~O96g}1 zJ^7qR-kG|Y*c*rj?CoJ#t3NrA+3e}QE)gHv7Ih7)!Gx;~jk%U3v-8507%%&IH z8_EK%*TpCt{z2ZS{E6&t>fd|rNj%fTHZVyIWuvCL`+11jOL1~h zsbYDE>OJkrvQX7+{-|H>b>|Zu;N>hRxYJ_mCL0h%cmq*)?#>Ha9P`1HpDfwowFPKT z^^IE|W(|CpceGP7PB9&t!F_$iXW_a(I_BEM!x*<6s-gfnz=Kn^ z18MrQnXWPoA%pHO`&v2Sqn}&dh-PtVH(+GT+l&4KcRjz64ay1+)d`-(viTZg`MXL& zC`VG#KWLC_H7n1gkes1*0<#sFqUfGg*DDZV5inUtP7bXRwB(t9%=(@{Vq5&Mk>n!2 zQ{Bd*qO($~^{|y`u6wK#h|(4^JA-U0r0B=D3hp>% zS;WyfZZnp$HDn}ZkmA1hB*)p0c-Ka+YEZk%ICmH6^Z7$ZYtxGw=;X=hlx~LLqU>4t z;d{1l^MH3*3gg%S6nRy#c_;Cp_9=8$oq}MLw5c78B;yUXYaf^;|GPc;0&&ahnALx* zxpCyueyTq?>81^H9d7P(XR6sK6fFbpy{H zJ25tppR@@~{}q!N@hSoY)9B%)XZ%qvm-FLSN*a>zD)uqCNEMakHPk&`1T)7Q1LFOU z^1ZXvkvtqR=S*1Lq^~0N_l?QFU~Z=j+$dumx9BzVjkH!IQ6%E{(rBU%o~K5kPfG?? zONM6&K$AU=ST#y}NH$KCKchJL8v1 zuic`YdRq`(5OmEr$%Z=UkH2?-e!-yNib4fXDp%XBh?Sv@lXrf6eYe+Od5ZvOFV0&A z)-oL~^PQU(p5lbD`b)ZO$PVYm__B?=yCEsTfvZ6bdFtGylrK!h%QP{4}Ld7ee&DFd;kfE_?ph{az?;{&icg#uL#x0h%0oM@m}E+*`#Ai z90cZsFG>067f?Vy_kT^%_yn>fzZ#qEuJzNB^*-HCq4g&%nGE+uTGm&R1$(QtQkyTN z8DsqcR)b!D>|3Y*C6+XLK46e(O(nhWDVi!Jy~7>IGy&}ni^6kql@t9uZt)cX%L~5Q zWL(Z$zSXDRwMrhMGErt2YOw$8E*LI@D8-MQBNLaaTk2x&_5dO?W-0KLX9ulN6T9!35@RI?u=g7o zT|IcA4cFQ!MREcsE;t}^QE&>WpJlS=P=L9m*RdR-6g@0NKT5Z@%HhJw{qfpAJy|G8a^FP?h=9a*mP$1dl?A!`cu6zl4NO z>O=n7;puU{Xobt`cOtZ0HfRnf(I?#DVA+;$Z_5U_TJAwcrO_81TMYxArZPeo)po?% z$*`oZMOmjCysB%b!n3t(fig`+`tO{q%_>`BX{K4Z1<$%UR$6f>|2KMelyl>+el(z4 zcnMhZp``p7^=C~m_ie0-3`N^S_}E=`Z~U;)y zD2d=gEIhA(R515p5DwXd53O4((?mVXwcxpk;Kciy2MJrMwsA>Q$(o|&f(jJE;;h;w zjD*oKO7!es$O+rW0q&MRk!Z^-H`GeOEh62db^3}i%oqAz+Og|^>=MPkr4l_wc3aQg z{B4L3keama5L14@cg13Xm`RSgl;u#X13Q0xl>{zK24_%g%U~k?$@?Pr2SSB*vJ!xC zAh>6|x}YG2oA71~!8ZlTA*(s7RFkBo<-+#6FA3T*=am{N`2tyS1Ih=I?tKiQKpOcs+M|u&P@YuZ5AO!lXD@kcp#z^-Y;!acx5k=S$Qv35r%|Rwe=Sm>C7RsmB+q%#_~2siFa#{@0Ap6ti5-%7xgv0FyU+f zhNv#T5T@dg}}^Ye(&Xik}@$hcXWd;MW#(XfrT;1X?h|!l$eXNk9@2 z8rwS*HDgro*yt-a-!$cb-O|I7(h~y~&j0s{Vvg(N%eK7OX@7EQq7I_|jIkj2B9NTr z&;wQ|hi!ZyYtCN*+IJ`_luM*=zzgoMz&coaf;DzKQivtiDrao+iLH@MCW35iwpgfB zet4B+kMP%yRHyK1UQ_7s2d>fnBm{oVrWOP}R~UN=j3^FkU9kpC>q!~Sp25NvbArUNh;dbRAnPI&z=iX`%$%DWd2I1fQK zR0lFM`*N28o`eJVO5mhKp-$84ooZ|N0pvo?IuOm+Img*(`SvzduoyJA4gfSIw`SCP zTOoQfyI2}ftI?H3Xp8T}n@7JMx_i+a0)a28dB28#Cuoi$>5jj{SItF-Rko_+v%qaj zh0%OV=JL%$nYnoJUf^pnhL$y9B($M@iU6gjNaADPe12`(N`H6Vp^K*Fu9Y7+Ine^n zb|3cpqodqwipYCxd%Ep9p@X4~l6OXB?Qc=C#KK~j!+YvgVC!sAY>JsQh9b1>R=M6N z+`X+EruD#Yh7+nX)Rl_aNbsu#u`~=s)ESf%1{Pt<;i#vjjxB{y3FwE+n(R5*i4EaL zg?i@d^4sF7nqg*AR6admY;Q^nCC%tuWo_czZ>_HtOmGnHafmro61nJ(8<*-kDBggl z@Je3^^R*aDyJ(O**fhT*vHuWstoQ`6hA4Ox?Q56BtYjRd*wkz8lWbi^bzK%j6ikv4 zNI}pZK;iuOim=>1G>~uWG}U!WGKZD~m0#W(IH~n(?^FiHgB`2SLVQARFtrtE>BiK; ze6^KXZa5eCoCok}sK>JYC;n#;e{(J>AgL0PXBd8cJk6vDao3}E9<7jlQ4JHNo%q8x zk$Wxj8yaR!)5J9^$08|NBr&Z#Ab&sTHP#dUF9v7zOPDT;87EPloeTEz@XdWYSQb9J z@o)lzsWs(Sf`(^m9Xd|6g(``FTm@W^bpIZt$qTqbWdvK5bQ-crvjc1D3{)U|qB;O9 zG|Sa3Yo>opO)|lbpVwUHB-OVi&F$#N7db2?5!gRjyM5Of_Bma~6!9dGc2OX&e^_m^ z7etaHIJADD*RAHOh*ZxlJT=6qX3^1aKzAeBh3VyzC9tQ%8Y@K&VKwz|8QKC$;k6J~ z@`yx$*dVVo2kC4LsbTMhcDTm(?Im$K>Id-~}<`3}P1`t2vN>ELC- z@Ho_#N|s=>1epPmS~bE^`v2Xjs~}N-FP#3m&ZXi!!e@!$GPdoVTDDMt4mk-?Xvm+$>$wv1*g9pl{L0G2 z{?g&HD_zDjTnSAv6`vGfJZy_fe-z*jmL>mia|ubemP}Xi6I_!ZEY3W=5J6ZW6&ZkL zp2FW+RaQ+Zen|qWB!4Zh^U`M*ImIv5T(|dKb^NxDjiT6;-YbN2UPRvv`fo6xz89>0 zt|NP;_z0SWt|>W+%0Z1Uair&VRZMks0(4$?ex}>aMFd3vY0~F&tbKb zTMv#-lE)Ok{0ckMZT5D~lG;dhH#09e2aPJl#43t#REGJvH*{k}%){X~a|Jop9 z-fg8*jT6kJ0D;LJ8SkS64*p8~RD355JdfvTI62(%Q$b1&tr?co3#4kxS_0puR@~Dh zGr`Ye(#5lvyjz1h5a2ryRypqM&@7v?Du8I-JUge^M2`+LzzjwLp8f`yS!o{=9M|eG zWxskhgLq{uG&NY3u|3lZdrRa#!`aNq9Mc z{nC{QyTI?NPH|-!%rW-fVKGc!72b}ts->S*irgu{sp#r+Q1ScOdr3I1iEFM+eic{u zQseECA~T2LZ`d8(PR%!W5bZwhbbR_{+d)47$B|-{8P&X$mAXOu*VG3Owx`Fec<354 zoUUn{mvuwFXJ*>Z95jl49xU3Zn&%99*FcX+W#6_Zai8trz}p_!D@ubN{>!kZ$aOF# zxo~VDtFy9=#;z938ZmvDo0r-`k#)wgblz)wpH6xee=^eyoPn^PCqrMK{1d-qEjwp_ zRIgW{cbURY8KZM82iLfGZ3gf6uOkVlk^?QGs|>B)IQ@MnP^}rh0DnyPqF?%(+s6jz zx;$%|mAv2@0DA{pqGs>D4|s+7AAB65w{tNAlQY7qtJagjl?kdc;papawMfYGG;4X5 zMG!gefdP&etog@NG*94ORT*KyULLW(+|; z7VM*{kDD^DX2wJWVYy{n6T<*-*S{U4hDIcxp8%HNtUtZILkAz@2NyKYCSjY%nx|^F z2xgrWUfXotcq;~&gUesicl@HJ@6tpm_s@|cR=;qgf%3PeN@wSdT}SvdJ~CqKa-xvP z-hab)?LO_u+ChT-_|tp?dvS9!j?)LLieGFHGnlK(fyt=`_BjevM?I;Ooae(8ZC;`G zF!gTne|XF8{bzogt-qM683nCp^}pA9rx)vr zN{kNEcA55fc?(BTc4LC}D=5+JHobscNGVp_YdLIpD$6QYCE$RRtZk3d@-FfW-efOz z2jUXW*ke&Ei5(S$zKh!aeH6}tX%O8LoFs3fMx`~a5qA_0vl;2F@eixa@_U)6iDuM%F^nE#vSEaLnIe*ssP4}-48^O2`@~rN)=-eNk zsDKjy?slroC-3AUQ}&XuE=dV}y;)P+Sk!zc=St{c>19wsDk+KSweJ_~^zN)EBSgrk z%BmQLPqpcHtgZdw64edJr~%=YS*}KB@Y5@GWWIJAAe!^FxLNlr`QJ8!@VFy?xcR4O zhvN0-LtSPz2vVBb=|CvX)G@s91MPAcS4i@3SlaW%GD(o#yaxYJmE#}zu=|UEuP5HU zn4rJ>InR((#}*g|RNUciBW*R2Rxt)7S%!#ny2><-iEa$5TZ*wO+G40nq$&LWRR;I3 z=wgRO7HVBal&vA87tJtdyLfb{a_gAR^L8XQSH*%Ta47C|sjQf|NQ0An4l5Ew17_`B zu?iBz#a^x&c%shD6YD5#T8<;N@)a=t#$F6#m?WOqE3L%J`0gB@GI)3}OWnCg{w`ke zb|+}5!SY(I9jHegc5VN;Wk=xte+sZGX@W1L!NXSy?6ceSGga~xi*WPW5@7PIem?k6 zAx%SYi?Emtr0!yCD7NtaXkMPsT`O^BLB(Oxo}@whiFag*)O-{W_0f(UmWR!*9E8*7B+iTBmEXsxf zS8Fzu?Wr;zJo{XOV6a+OgnwP~eF{fyYhkR9y9(!D=^o9sH@oZv=qDB^A3~2|Wj9=M ztl0r_D$cH5Fg5IeC6ti**AfEj^O~`uR_*64!#FTb@<*~&Try0RxyEoVQjd6jdxoZR z6aJ|_ox@~=HzxWE*pbVvtv-q?@}t=y+zCi`VMcqcwI76GlKa1AettsUGBy7%>=;=_ zF}-sV=PwMx>l=I%<{MaY*kF>Y=1_tj(;ehQ)8$_fQ_j7gl+mqKs}?EG@|#tskQRCv zfqKVSo@{fuo`Y~jhJX3Q8FOz4W^wm;eZYRFO?HixFt&?#5q&v_k+hQIj^p z-tJADrmpF-gC?3KVDP!y&-Qw3NqDPBYe^LMe>9s6uPsq<5C$R83@^%_L>l=Yhe+-6 zr%d3-ALak1f%+cFMq*GLqkb^7pUn-k*+X=v>flZo;CJZ%cNaambysT;%B6G{^yF8v z#-v`y9~AtqvGkkpJqNG8e$mr#9?~Gs7^Jn5qaag;8_LP5KQMxkL$(<`xc5ARp0(wY zoK{KHU$;-EaghH7VaJNcNbV?jX&NVJA;dBJ+oFs1Sr_ z@>8kij(m=aui$D&mzFErWns1Q+cxonQeT?6_>kH+pxMyq!3>y`kLwy4i;kDeShvuc zW`?g})YQ)%)Gx-gW#-KnoU$_u$bU6|krYw0Qx!$x3PYl=;-Sl2vWT)>PBieb4B|mF z3mKjc7x>VAA)fZa%Z#O9){K-B6jRu-aAAu1sFzU{*+9r=nW2tmL@3}eD3S}EOQ#JR z)}9q0gS#bwrIE~`OPNKr*?u0z+-O`yqm^gpr|BQp7|Ff)Y7l@7+&sA2>9UF_c-IOo zj|QZMNLGNSyeafolyXUU*Q%h;UGy`6v$x0I4bJyi^1f6kEfkTG*t(!kJe89h_?tf~ zm3P<2y*W2fK&q;EFDexK$(F;WBNX>^V?p$# z23G3?MZ0ZrYWB3|a)zm!_}IgVoI;*4t4@CMA0rHeF%sV^QxH+9Sl~h<0PZ8}6LE%= zA7pq<^v_O*QEF>Uu&=5*ooc~X zWLR|3@KQ-J6O%kF!PmlIVIzS!9wpk~Lxt$FtY zm<0(Qff6XuGMjWbfuH1@S3}izkeQ)OV6W3WnO$f*&f&hVI=YSaUZQmBLY(OR-bj*@ z?nzRR5hv5l?*~9;U{kkD;4Vp(T6}u{uOFC2KN$?H>>Im9oD%F%yXdx`PTkS(@C*GT zEV7wUWCNto3L2UmzW9Vs5N*B_?6!746;hVa=;~;hc6O;k=W%XXFa(rAcC!BLL!4k+|BnsZzv%DJTkd;({Ok3zlGNhFlb1mrv_&x{ z!44UeY*B-*LKCMg^-){(EBH5QGdqvF3RWwBYh{Yaao#KlKLoFBG(04Q#5^(fNLgcXRUT4m!dGP=jX2oG8KY?{`SUU2DNEC|vLqviu)c!Q!d$aGm|I9Hjn zgV&=U!<93uM83hMs`VSlR(dOdV0}e0=I5O3L3(VTOs`&yeg5ly(LsVPB+JoX6%wu zM_S>CBJZAIkAcqY1?Rc@UzMt5Q8@P3Y7@}l=gdbgJ6ec#1N>}9KG=1lkS>Q8clfvK zv{z=T%Ol;i;^bg>4s|#^O9k1E{TAr^Npj762H;E{16W8G*d%*Jl&#FXYIn<%oXi#B%dAgn4zvfr`p*itF!*1g4=%FP=7#(epoq_7M@0?^BcyI%r8%{`ks@Wys;*`b zqCR8S9Sx)B%`s5Ib;$1jy3JM(r!nJ!8< z3{%>ejBzCTou8iw6;KQbU=Ir`GFo53ATIP)uJ8KW{IGagusCSZ=YNA%M0Gd z!7lkv5vG!ayt948bXFZK1@xc+Tvbyv*EbQ+{Xf%i%T#%bH2@t>y*PF<3S+X%xO1fW zZWmqNkfe@mmNwhwvn^F?cd&r;s@jsG$BLYtMh}Uv)1O7wg(|bbb#1(-Zl-SndrqW8=aXbQSpHp2(UkC)@PR z_44E{9tC^{S#+dN5`PY+*(RA>wwlo}HAQWjL3jsjx@Bml zxQK#uUt!3Xt0KpHvwP3`DPK#}(_$H*P+#^CS0ZfjYCQpe)ZIDx0?5CNj^3 zY(8>D_?u2mk}60{b!KL~3s#~3c0;Ps#~!O8qBo2H8~tV?Ncd@3tY?zuo&*~B?Hq_t zW-&u1zJ@UmN&p1=?vSj+@v;~t>NY?%cyn|WY`BT>du;oh>Zox-F8!;)$wUBS#O@T?+Fpj1zad)nsTcNjVC~S$#><&D65U-qw7!YB( zZ#Ra`u|$xYVZF_Znw}wNcqpo25~H4k5Sjpp-LIgr!1qINeZ3cpipREmcQj{>Hz7Ld zBuqt6+!fbsxI7EIxcCy)e)iyuYOO(`E_VHW45Bvf8Gv+|n4$cDrOsWZgWz{=3a-Q4 zSHKn#cV|EeV2*H2oVXNzva8DkX9-?JGg;G+`xfV1^S-p^1^BnF8IYXy{Kt^E-5jO< z18H{sCn05*T`tkHQlYZC_FH;@8iBB0I5oR*^Azd1*k zR!NHD_$zgi0`%nlmTQm@{E{(F6vQ%((6qRVN59>dcB0daGf9D_nHvn$*@Pu_y!nC7` zc0vw`Gt^!R!(Tpijnn7yKqocFb!&ndVCIMH46K%(d=}! zR@$tGTXW}$$~1TUk-70IcAz7&HVG+^-D{;E*+HL#o0gO!RzavGxpEONVf8-%{R(0K zem)q&1asi2dMRk&cki9}4J(r84>GI8H^uPDp;m8dZv2+T_xv_tN(dd{tNZ0PPrfgS zHhG!3+aA#rm2YFp+k=wAei^d^p$&m(<1sl4#!1MlUCvMNrJl}mZ(*o7G8rjA z>#KSA3I)C=A5-km3;b9jE&L|0N_Ja0AFX`wM_Z_(*9brT0uM-*KRMeEs@F~Jr+VL< zRK)zjHJSbj-a{Stb7UB`Vq{i4tb3&4L;ieiIe#7&8F8x)$wmj{4CAjRDlX2K&?!|2;xd z?k%D`y>F0hQ=7yYt<4^4B^h3h_MmXdlpOd^<8Uv3QDezKssBCdpi+Fg8SNH1ZPjGK zN9IK^iZg{}xeC?Zk@m0)dS~x}Pa*(0AM#R`MV*lyCHHWygeUjNFf5oFRCWbdmIiSh zE*Kwv=KgJP=IuI6)2dzKr5)KbJc)XtCrB|+ph;1=lv-`jr?ul;R91WsqwK1&&#iM` z5x>Q2SCOG9s&BRZN&2=bHKmJqIfZJw)qT$j~@6i`ZtfM(lIT*6*6Gw#4mEqlIGWKb2MD|CF zP@^7rU42e;)d%fDfmkmPtG# z8)ug5l|#;*%){uEY%r;teswh4D93J`2Z|s1^vcdGwZX`}4iUY!QJ+`uCvVK2a#nFX zjmPvN&Qa2iD)9D6ic~=eYjNBf3Qu{;yE-QJ1>Cf_KY;pi zA%xWRl`F#=Ek4y`Z&&wI17%_bC57oj8WAs_k{CSU^QZ)8TN`8+ao8d?i$7&gpWD2( zQrr>5dwAtUCsPyOHHt=C$}e5u$k)mQpx;wfd)TTkR7T$*?xO6e1PT zO33K0Z)O*<&l002fB@)^3kdKrKotm~T9UU77=u$BiT{6_#;Q}Y4_t$Z7lm-pfEZ^tL*w`}Oei&;ANb%~Veos2?C+W^V2 zcrE&c(F6>7504?envFzH?l7~y%8xAP2ATH1&(2g^CPs)#)(xX7r6Fl*{+A_Zo& zuR7UsxI`DjtPS9w`kEZLXqhn+i8UE@$z<-#b#mmTa0FHJjx5@$N18Pe2-F1Y&RF^6 zyV89f;s|gp7jZ{beB!voMUQa?LL~ESg%y|AFQoHsY&LG$b`9G7j`41mh|aD`hr0Mc zF@eK9I{gF6UhIB7DGYpzvs+J~sk51&^X@R&ZFe$mi>#J%n~~9PP{4e7RDvj`QJs3= z;kdmcqIyi7=z9El6A`A_J^J7{9+RN%`f!`Kc0Uei*QvAY!< z!aheub)q&4e0Gdafj$Eu5g#w2Vy zt=HGOVIR#=d_Wr*a>f0beT_507EVBVJLO|863|g*H1I#heZ&NMZ%b-7&Gj0$JE<~4 zWqg941mubzkes>_uYakYV+RKl=;r>0XShLWfXY2ONwz1%0@-EGuQjtKgrsclw)5db z(dlw3;lC%u0owCdjHviw6cKJdj}ul(r+a*_j#@XlMkylHzw5A&Z)u)6ij1s-cjSgU z(QV>vRD$pzemF>D#RGp|7EgyegOr8jM*cZ$MVl0hv^EE~;7boBVnaxW<`#XVpLw6E zh#$ZPW{-dkTX2xfsV-o;Cvu=`*PS1#&QN3MmO|*XQO%bv6pM%A2}j_XHn2>Rc6E9~ zL7qVyP@aFjQ%dK=o{GFKH`Q3-C2n+Xdo$YRk8l)>+1)9US&@M#;h$aHp$GS#32GZs zfCyX`UYSw$-no~RbspC>i?pz%1AzM4k_c9pc3Y{Q`h77UeZh?ZOIkE5>pt$)Z1lsa z2w8}Jr~z!EI3n%{rV-WF^8^#ME4={V`TFeq?g5O&U3iTM_Kptq`Kq|t``648lpSK+aTS4(31^(!(S40=p1*%@ zAvatHNC!$fjG_%F7)@&&WxQMmXk?2bHGMJRh_8=-OE&H%4bKc0 zj%EvTTai)ppHl_8+3z!oPTN7R`pZklOUmcY0H6G7x^%*5Je#= z%ce{Fwv*-KO(Y-%N_CBX%ziarU3n0oWHzMHVlO{Wg>*cs;)D3Kw>&tpj*;7YrK>b9 zg!|N4`#S)ERd4eAHgpa+(`V|An95se$KP*>hPW$kd*1$`WC0116V`W~Pa6YYDrjek zr_-w2#IU!)QHk_~A&EA$<#ql=3Oj!Mzr#b=U{&uY!^mh|_Qrl zldkDUQmu;PAM|mNqt^|S70&9&nkZ-{ z*uRm=0@oR2$Kg_@b@JD|EtonNpiitd0F|g z#U$)R1n0gs4PT(e3&uv9^J-h>^>PWUTq|&>u>c?^6k!u4d-wLn;5#;~q(orX-`73x zk`2=EGhd!`6XkXJYMzR4pfMxuEd?v?%$=?pu`e zM4KzgQRJ>*kVzP+tqhuMik`z{OrkJTWuz+g;P-dZg^^TY`a@)2hgyz4h?717n1Dzk zr?z|uNFJjopYQ`8o^9;GJ|lWx#MuY)r_tIakko8?k%1gYvDEQ}k6{0JNMbCf(Ng^p zLK{5PV4xA&3)Ba&W)?FVWCE1Hz$wUMsZK?DyoY#a9W6S!>*{)7i2M?83hO%;w&AXb zAs%n&Tk0eZ@j{9~BfVt#0a2vWNh}SeWVpqs^2&W~q*-{fZpEBnP&$UhSK-PqWsKYS z4+SJ5U3Wa%bd1_#)i~(+$i0v47AF2eZaQ98Bgv(`^A8#~nOO6nu)R_sH`<@&05x{nw1TY}AyxrB!gnUi?`&7J*&&Bc%*!3%2b zb1ML-a1I}`J@YbG!+c+`XjlUOkRfxycUs1bh}kg5qzDElbe z@B-&@%Jq3bN>^~HSwIRCCZsBhLVE)7zP|jKJUs~;5&>m>u=Me+TWxmu6SC55^k9z) z-iNje#Zu7!RQHM|@5}=V?=QPf(T^X8W(kc7ize)=mWFbq>l6vJf2D4LgRY>$2WXsm7*Z{IEg66%emmI=gN!fG(oX%zLFo~F-pOgd^qU1==OixRINj4b) zYUM?T{BZ{6pyX_Dn|22T5(Mq-Wj`$s3uL#@x?1lF+CQY5;IL-f3~+UyVjoSZcI2t# zAzY~5^GcHiwGh>tnAxySauvG68FF_B6A+QJvs-ewOff3jN7&OkR|l15*=7xo8Du#$TbjEHrHM~tP_k+l8+fT(q7eg;ALIr z9js+n*-mLh@H1@9!ro|SXlAUcYIkvB+wA$`XAv)UFibq8C9ppE(*Qi@tkEqtt~iADREgdcuF8xUFx3?deeVwOV`Sxa+|CGG z18lz10ydRVl(AY@bv*MbWBu->1}gv+CIsiPxfTS#FfW5tYon$hfY@`*?F>Kexr3#xLsi{^>w!nwgbKtXz8P-9VxmJNPsboJZ! zA{iIxtSUo-#$^J3SmFcUoa={Fz{id&;#FMZKE4v;C(Qh{kR&IFz(S#^npJO6jV5En z_Bl|5C|gPRX5Rsv44NX{sl20_(H$1&Q}?NNfvXz=$)rEj{Uo;~ZBc-}Rr{_P?=y^n z_q4vZ0sfl}F^z=21wJ0}K`=6>O-k2>L6SWGv@Uqse3`M;#V5h&x)%ID&ORLFEv}=$ z&ULWjO6dlFJ7|#KTYL>d?rZ`yheMorzDv~BRnyHsUX0!Bs?-nD@%?{;5|kJBphr&e zXIE-cZoAxT^}PaFC)Ht+N6UvTu>~dhrxJC)7iQ6a;(Ggjb#wB7DyJpWTCRF^s8>)H zm6Gc_L>a!v+o-goRDiQjr^0b~6|_S>f_g3D8LD$)f3?%h1n7ciF*{uBH@IiCzFyeK zr(cU;)8U5BU1>-rZ*v#Qm>%Np1TGaaB|+6Ut}DKet>sC-oChGrR|bOSjjB`{KxIZs z3rX6-8eV8SXpJ!Q9iF5d8)UHdW7;gD$ieei2`lP%?gG-Gg3rJ8; zm`u`|H*Cq`kzSZ-`~_9>VnL~(?_h2RK)VxKQJ{=ma6^adf5H70>yuDgBsIt2{G&Ih3|VjfGPhZ>Nt|#Rp&Vq3 zTrb<;X`5%>`ck5=#7iYVRP#mcu*BGcj2z&nYzYMIg2RX^$x;GV%QK12uwR@suq$P0 z?A8iNzV7BnJ>~*%*CDVc@j~M7Nc>BHCBv{f13%TMey-V_8!sS5+xCkG zs9zo7AIWTl7^fBipkt0_mR#k@m5gYHx!(O)Z!*CJTLeWvvFr+UV-Q#RWWYlXaFetbU8+*&n#nD3$6 z%Z!j8QMG>8E{?jfI zpCEB+sjqgkU?!F09bXHYGk{`R2_~0}c^9A+KZZl$WW3G+XJ}zI&qwfEq3-FPDlRi; z8wBSYl?5?r_zl^F6e%n@JR=2H`k-sQu&(=xZ_O)->IL#(TjTsOK+n};y`5P}S^D9B zP}k(qh*B7PwyYsQMo`3j-|o*C+tojk?)<`@%rHIr1z=I)#IE`i#OzN|KSxr|;b)ZJ zA>OeHVs@fs8{NTmBF_X`@;mXII_X-WVBJ`l>kKQ)CEiJ=tz4bBJyes z<8+;P|7Oz*Dle_$upsbdksOqz--y%!aOwUsOw_Bc{1^|iQ-Ule`rL;0Rny0&N{iRT z5UNct#!C0#{;LzYDNf1>XMEK<*~N89*-+`sRwDZS#Q@+O;wU_WQXR#nQC9!yC=&hL ztl#mmnBCM_fQ}Tdux%PnfQ~4Gdg~Q?S}l2QoPsrKVuxHv$`{OM9|>i}rD*k(zW!Z> zHw8>SSVO(D+|5r<(CVMT7qW*EMZp1BFOxTBTp;%%{&9%8!2KHv7@?k_&-edFCbPwD zjH$APSY-))=tTfH_aZODo7Rh9u=M;rCO}Q#m3TcTAO+=FJe{Wf5q(X^>M1@c>$vsf zoW8lG(@F#9SDqk}H|FGOI~R)+&FjpgbssIb{tQxodSUgPY05unj7^|1)F`k;ETaU_ zm<{}9FwXt?yIc{Da8M@e_Caa^(2EG#Hsimu^g?d#vF@&{iQL_+rl2WPauA~<1fa1I z^J&dGibc`V>+l@ENO;xls4_vCp%Mj^3W@OKI8I@z?*|${H`)IW#&Bk5D6`e4_4D%L z;A(woap&_pu=P-BS~N3~&JLN}u=W*{^83EeKiSx9*L#QN%RjoZbktbN{aJOx1Cd#( z!<+eN`KgWC{`!``J>#=)dqr$`axAE@-0jF;bF9#n)yU`q9v;Y6n2|TU!W1Re`HD=dj2@q!#V4H(OOM zN&NdXFZ0%eT+L~y-3)Z)3(&4nhlZ+JB>Y9rxT0ZA>SyxbjOfFkQS~Ge9?FrxC+({p zd;0pICeASa5ND_73cUv^3ElLVLk+WDmiXJiIgelSy=2cUU)U3lL~ygSy@VzpVx z-dw;sU@lqpa%0pJ>DFO(dFt(qJd51`rCLAXb3+0xxx^P`P8$P}f71$7CHD3)7JWqr(;s_$cd`N*eQ8e z7HwIdW{O-AMeNXJK}Kz}a_%oXVnT&&XFv4h3991-U+ur&Kv)JRQ?Z=+d$!=!bC&=< zK*7Hp^?4iQ+{TN+fw^HE9ISiM(Nh-W!&Y_kt=SCR2}L?e)7m0wR~T}Bt5BvSgtKsSyJ=K#~|LOWeAg)KjOWIRn&sT9I>d9l~JzChiJlRYv#1l7WvGwKlzLN}@2027)nVP8-U0y~&;k&4Hp+Zia?+yCsFzZzTAO&f#q-f#qa%dzK$c$1foo<(#m8K& z`1^TbJ{JAp*nqpshtf%KNDReIhmnU6Jpn6=Sm6}*ld>eJ@ALNt6;|`rsjWLb;DO0<}g>DCVSR_ zBOt78kTeB2EDy7{$B}<*?G=74qt_8P&_>3pUO4>xQi%38gZQIJLss$LjjuTQD`ilv-^(N`a zXZvIsoY)DLh*;`|`qZ8?faexNR=>UkVA=t06D+rC4Hnc_;0}Y>7B*BQ8^OC!BsXvd zVFX~InY`Zng{0jOpWSbI4IK=D9SY+pn+)R~^|1)@7ucUS@^|XkLg$kX$F%rReErqxPwFnB`h+sxs;CJ!_GS)i7vw_`Ny~dObfyoasE>tEu8PrLl=zNg+A$WGG8{4v;mhgiJMbh;zY~JA6s7}VB5nJY_ zOwOQ7Eo&+_Xmv_-Za|A#)$MddN1|K^+%l(RBQdE5RTz~cB@3S935mJ}fe3gli4Cmo zco1#hS%0#gfhp9SLD}_NzZ_B&xgQ*D)swt@KPM{~qp@HIGz!(QH9<PX9@Y-!sv-$>sVnJ3dWtO7= zIyf%a=N#s>ADREb;!9`u!iJHQQ^&Duv|m_(UI#G2Nf5HO*Vu95O;|X5*_fS zXuCr*S4uK}MmxA+w}0()QqF*_Fk zppwrJ)Qt=5aGOFXDLs=Sfg^%m%L!;q-T3f|W;$1sJs0zhfQ;uBPzoe@yg5h`;1Fy7 zJX~lIz}H+)sKbX{NcG8l&O->k4W`GS^+uw}@}Y06`2S)(qN|Wv=hE{*o|aQ~`V{_M zam`O~@6PVa2k5Q_BN|bO@~Zl?2lx+rWIfQcZ|Xl3hUU@(Gn8DpGm}zVmeIrc-&-qz z;AIzlix#qU0Rlfpo^;%p194;X$rSV*+A+Fo(*$i!zspk^MqqmOoX@)9Zh!NEf*-Re zh-$PXzM^RI=gk%)Y)g6ff+H$RK(7?J;$ViqO%h1Si=C4B0=H|w)h;?E zJ+<1U3%#`;>b_9?vzrOS@ZAU7NTF?0fyWraEq<;cfHLD2sdr0u&y90Kd4E zn$ZmwMB#++)Gh5&hH_iH?=-{s(OMu5gmmim@!DR~KMw>@D3KDfhVbZ|qo+eIu3x%OWfDr*8tigbNAZCsPC(xzh|K7yT1nb&+k+%8)P`cGK=dm7KLhs zx0c!Gy2?Vt+ypzgT4RZF`Mm#^R++;zTQc1s?U$Iz55?(B46s7N<6F{}V8hc_dc2Wf|szpO;T$HPlZR z#Fb|4Vq6#3XOk?c*6l9D9d_QJVmn6a3CM)Z$#)?Li{vV>=$+yKWZBiYs|zutUs?Uy z0a#L{!g_8`A0Ns%R8^YCBjy=%%NSiWuLMU0s6b@{ZhUhj9d%uZ<5dm{hgY6EWvIMQ zHtACVrXj8(`1lGThs?_rK{irMJA!C1(qK+xOvT#Mo25}I++gv z!T@GX0>|PeSCR1Xz4b(Lv+7TxpPMV2B*>zU`@C=P_}8lP|GBm33?m-qT;&mHC&_b- z7P{;D?GTzdfBJzq#Lhrs@J@0swQnNrDK6E17IG#AHnrR%Tc|U|>L0Rf80zsm*uveP z^`o+Z44HsKIv4}F7E*AU6})1J$AFI7TdY0mX6@QJd7M`3patmMEqoMEqYL(mx7Nl8PpcMj&;ity%*V-S|;sgGVu@X@vv=Ja>EdmlA&@1wz#PzG4efLWV@=! zx);NGInW8&g4;rz9aSfs!NQQ>|3?elSG$?@unp3!invJwq{3`1CZo)JdEq3Tj&fMX zpFXLo$;IOzY9IwJB}(!6h7KU{9B&pYuufO$@p)2bP0K>)v>G zq2e=`Z(nh+?`F!K;T#&`)&dTtoE7qcA(%d zXINRwpafwkv3b=nq#4b@8~NcmuYJurxH~H}rwQOmXvu94aa^A$vq*9>eRl7mXH?K( z^ia7*b(^z`8DZ;b>^mIUb$L<1%hwP~G=l)-0=|{JlNTj3hh2RvL1tK}rD%Fo!-UHX zxcT3ReWsiom_)3hETqJI>q*Cui{C6mgG|@T{uiQK$4YsWj`$N9;W9+wlLq-!RX~SM z$u^Q(==L1DM>9Bmr^&}aWntss?q(_1ZdRnd%cZG_<$|K zDDpX+TZ>Uf$WJlUG9+2-$j4{Ie<9xYgNSab^!?Ou$BE6g*g|Rc;CHho{Cvm>SLjJM z#JSZ`DV0UCw(MMHw!}_!0hL0glZ9gQrg*SR+GRsWJW#9#6;uT)$wHt%1T`_f*>Mtw z8859FJ;}+4C{-{EqQkL6e5)!s!#O#cH>8h!CL1CT%*nLm&nwrB4zIBjKCmC7uGOD8 zXfU(LHYOCxAf?s~0VTx);H}x^@FXq6>@$hVVQOg} zAA|-FD~@!WZCFV&6oL& z&`(L04-#)NrSoF!z?GwKcpF5d1|a{yyFrY)6y==3_1*cS+NTV2@DsH_Sw@-3Bs4XY z9lna+<5p)%PYq`Sz13U7)fuEp3=i1u;zhd~ujx5nkF|c0=M|QhizXd4CLE%ooPbyJ zACO2vH8(-wVK192ExX^y3dZ*k=Qdj9#Nc894H`m8jr~KWQ0cTO-c7 z$Pe0!lBFLI*>Cm23u#bi7Wpo{-<2b7{CHp)rL~hheU%&wZEuOJ4S6yjyVA`yl_9%x zt(sg(Am+7pUV_M)2>>L&hVN109Zeed#|A$gm%uq^VcU`)tOCDMBFij+5R&?6b(zC_ z4PutbK2dU__k?3C7>Zo$RgeC}5Fae#uO{9s& z`O4FazSb}xvb&K{r3oTl#pP|X{63$GCtF&G@^AHDc7kaiwObDAOrx<%Hw*HCyH(#dpkyC`#TQ?wVQ7#Q@thDx}Mx^Resvtp`yc zvbb$!+P3r`XP9l1&fXqeOYvSNd%E$qkPtKUOkAys;%tzZjuIX_!gGvv+P!z1}fG1&Z`tG-Srq7t&EZW}HHvj%FNVr|~> zAYZf_?gpqpV3a0&GD6??i_R&FW&YOr)9-sN6mfcYkiie<7R%n|S)DhxUv!46BmImR zV!HEMDL|2B4t_(7-V zS3iIfU;4yQLr=_^=(Z2 z?Qj`r?jggqAK~Die8B8KH;WgHBt$)48amL*hQ}=+cl-RLbls}cit1XUyDB)c`Y{Rqbs%D2t5-YL{?%cbka;c*w<> zK>g~3wu>domklw5(A*Ag&&No|g&J(EegB$_2ln0JRe~nVar|*eXXF?Ps_3`|~oaSVTT~e@iC)rvQyHPf{;x z)9A$}s4M!gQkaE3YflwK1GhBx$q2(AoLY+0^~#H=sgvw zsOGCbFOSg3q2+X9`6|fqg<50hcax9!z->&;WJ4)Av4NUepbr1&+1S_kXY zy8rT^FD)$s_(m0bJPrTNwog!TR7`_C2Eht?zgedf@_j)5W_|cTAP}_hs{e6uHJgG8|Tb(3lst(T^D=!>bkyD>sArz!Sw6de?D%pMVG zQXo53(9pe{A&H;Vrr*bA!h)a4r0$14l1-(<;Vh(>4L|M_w)nU{4%>QYmr%JH_RMys z1brJ|`2tHIAY=SItp(xbnk<$7-9B-wS-s{}Yxk0_vZvG*EWPdvU#4b#rfr{}(ynyT zxL4XX3n;-x-v20l>;N5KTF{_3CXY3&XCv0L&u$MGeBa8XyTb7sVWM3=iz%0)0-n7h zL`KLdh`D9Ou`NaLHS65`(9Caf>__D%R0?lSed$mdKxJsTWM2fJGTQPonyv)$&r2yE z_3*l!mKPLme$#<&98+C(yk3Tc6UGFa&~P{bJiLp3@g5cDaN!GVQNy`Cp-LH%W1izcJ}g_kR8 zr=9*!laIy*h1BJwtD@{lqi8Af)~cfDlaDaT50ze(mYKPzM?h$aw6zCuRoGowz zrsloKZd5099Z_InK^^y(K!KNo;G*BMP6&u*&}_7+FdO(8*dvj2<4U7Fk9115E80&A zS7Fu#aPN!CEgif!Ij5C$`fJ zj%c{lh;d_U?k**M4dfh#gC?u#e(b6QeF5_R?=^s>R%-@B?pL8_yCCP(b^>p4zSj!F z`UMW;%O?d5K=j7I9ew(OUOw%3c?;M@gaf90Gm#q^?}xqAqH#qB1J@XxbyV@ULB#G& zNZ-vF)W-bIn{UT~Q*<(b&vdm)b_Zb>&k=ws`>@taYh;n%L=KhVz z^enqg!H<*Dh0|DU(5xU-i_8pZUiXtU{b{Bk+E9D02Rn}00xi-SwA-7*zsJ{d{7z$- z*&hEi#~401#k(~jVnL0Mq*OCJ9!Pfx<$4Jj@gEBY+BikS$$TaaNBeFq6nXKT!gV)C z$Ls$u_s8Ll*{Sb3+`x!xRyN5noX&cl%YLwVpo3s*3Y?N9!Av{6Y&lnl70S`s1&DWo z#KW(MDc0L^!V-G+KzPdfEBK7e(E0wcfU%A)b(B`(uK0Hk671K#-&=NYp=P0%9BeRQ zc-6HAyrN?Pa%j68i>9((jq*fUGv80o6<7|Vc%7wS$@S0&!4I{F950vXtGkzbCE6re zW2fKVQcZ|cXSeAG=`sRV3RB#3Krj3;-U8qKLOoWVAD5V`#5P#$w(kt_u!!8@H*w22 zQP;#E0%~RRQjNc8P`bD(y*H2UFMhm#)ayTigp)uiBvq)7S-M?3f?kN)3e@x1CxOU< zxQDIMFcu=`z3=ZwDfYMkr&QI zyoIexr%A+%HJ~O4*LHk$r7l8uRZezn<%S%6+kO?!)v>we;*+XK8>`2T<$O=Qc_`Wo z@^>AjQ*Wh7R+nnH1)?luQy`0jSybJ8@3p?;m8}0^hFTzycs{`cOKEJ#qIV!fE3L z>U&uJT6uTp4CwUwE2*0&o$y@oOaly>pM{_!S$l?9@9mnAm=p^MH_+s!1vSa$7M4^$ zb85S=wAy>H1L=v{=9PTCm)YBa~2dZG?doXp%K?Zc~=Wm4iYJ{=&{Xl8l z%$uW5=~-=7+1DNki&_|tV0S8%8o~ym>UXd^3WqE%9rh8;iB)wSVAe=vrg330__J0$ zcG%{IlJ%!!l0oqQ%J-Hv)71(^GR`ygDR}wfS>XVj^#TazY7~+wjeU2UPTJSPwD9V0 zQ?ZQRLxqNf(U)9dsux?|z)SHiU>SP5oZqe{1YW2Dvg?&!W_IVs$4(rV_DLXl8^B?Qc+2su_u?0Q>RRt2F+0mu^y@_ae^JZ`jf&8Nl`&X>7 zF7eDqM=O-X%5Iq&SgcwQ$9ZVo{9~J_De`oICCn(EYJQ<}Ge0!z_sz{(_rT4VtO7O5 zP(N$iGgxm48^EaIerXAOu@l^b?+->(J+m?b2Jr$X|zL+b0n6S&isKwoD-L zq@*raEC8i8v{Ml*OY9L0+H@+@0S&P4K1oc(pLvQb&#ZR0lk9-eX7^^u=BP(LeVfQ>85V(^JFC zyHc-!ji?$1M3TuHyX!h|TW~5o4b6xayG~$g+2{ZI!m+Ol^}$;?YRHEQ<#V$r@1i_$BX}BrEp71=TU@fHZi2`!EKfJ1w|X> z0SpK77-_;-@ZvVI?G5uDBznb(h%QkD$rM2}THoMq?Zf}yoC-^f==I$n6mC*CFq>)% z3rU&OspBQa-3!WjBp9U&8<+f(=eOP}#WORmpxpo3GE$O&NjB}yHwz@I5)dO^DcY7* z)3T13IX9vu8#6*mH9sW43hR&}1AO?}LL<4Ucl>;KxnDVAxsqY&@80a3G4TqdCvTSv zck1~}??3Z*35S~+XeG|KPYRL7n+s_e`~v0)Xh#H%^;3rk7=V+!!>Y73?RCLjS1QB$-TAHJ8UgURzoah-sKQuGF9 zIW3uW;#KEa_CovT4gr%ky7-Z=@zFBi=~_;DHW3*>k~JgX6j#(ok7-F(M{}~+7R=_d zltIQJ3%(pITzm*9hNgVaCIipmg!SH9c8{QIhbQX1Lu~q6=-a}odY|H#9>*QZ^xl|( zr8i_Y8ombF0O;$J3aNu8sBQMe!0_9~<wbgaq~AJlcaE{mip+`hg%rZ&q3df4`rW=T8!$p zPOkp85VQK<_kJ_piw@fIx*wU=^|$IWt=4jWnX&PRrZSU}2vEr;AH;|3%%DNFz2a(Y z717&Y7x=hv&Pa(sosgU<`L)~}pGP*em7{_1#vkSQ#~}J}!B(EWJ<)YJx{ehXiykN% z{-?ZY5YL$Gz_SawB!n1;iZvp(RM1_D+YJz0_}WKV3I^}3j$Pb?dla2yEGVU>Kb zP)wi*)KINbOLw@2GsT7cZFIyi-_TjOr7tZL7*#5sMibc~uOw*p&<%VlIQiO4e5ul) z8QUOo90v4zE&UQ|p38lxyeiH*-S6kVaApr(*2>@N$H>bj9!_MbCKQ*VoUqz>YiD9h zrG9>lPCp#n)u+AjVPSgyj~nIEsLfC~RQ@vVznw_9Rp)T-UBgJJoAU|?yj}^3QfyN# zi?8!dk!AK??M&cB$cqe~6O;Q(7t8>Y(K#5FzR3s+gm3MZ=jW@63;^&pcR}PQQ5^xC zmi5_$*o#peScHb%j0Oy6+D(IXlxj5`bS`bmT;J>*jU`fYW~GOcdp=e1w!!WfK}Q#pBdkThxXQGUBXVk7{tl6DjfxvA+|9_pS7U2Dz`> z`YR8_`w0%9M(W&igw`r}j~dkwuixVAIN62$-O++DrbhzsR|eL+argxSTA$ z#-YiCQ!y;M5lCKVEA+Vx1#fgc%ThfJT=z{?OXAv%x<`j! zBl~CVnuKE4o9+ak6dPa~JAaTRMKV)3`lO1m)qCaU%IX&V&fF&Ewu1g$&SUf#43ID z$K|Jb3ayTUp|+rTKu77(Fxrj_=&egz*c~pE!3aAO+`r#7&+y+pho+;88Rv$ zVjb0@6MK?sHCvvv*-%Kg+^zr}heca+YMK_*6Z^))zDDI~)mj{P|qhI)>2$fkH@ zb9GDy2tq`RCAasDULdbFn%2tJg3&?N6n@*6*E>Xc{%es&bR=_uz--b~^-E6ohk)Sx z|A-Kd*CUImB68xEl@qC_86Jt>jf#pS^E#k%TDf<*C*}aWu?T#K$^>cb*;7Hs> zoXEp^^R5J3WSyetm+q5{fEQlb@=ZBvnh~K3!ujLF272+@#{X)*77u(WsT+H#gfHoS3BPK7E#3|f##tKXvLTk!VKw-;Y-)s`b< zY@73Uxv3c{YdZsJlAW3M?u&3i|pTlibP^rIfOx!HmpQrLK>8G;7HF3Rg*E;Kd0b$n2f=n1~=UD$zV? zg5QYJDnKhPl8V#4iS!+H-aq3VhQNKcOWpzw%a-o|P`#6!53ZLOvd+CAb49l)%P9)y zKfM8gtX$@k8vVnHHVc!$8JD?IoZl{&yjJrw&Ox>5>-xO7TNgLwi4p3G^TLc4aoCi! z%_ph~^=b!|VkxZTXnm7dq~a^Ihb(SIxkDJzY!obT&jI)8$J9gJaFGFXYF3W!$*$l@ zNAak*BI<#WV_0dYKam5dXF=at3)tqCZ(s!VzBq!LMr^a}>JV?*r=J7}BvlfWnZO<2 zu59EV76cBx7fm2``@}=_fjvw3UvEag7FeVBku0VDX11dD%nfDtxT}*t7$YABs+HRJ zAcQ^WWaI>jC)tR~6D(0UcTImi=@e8pt3x|tf<=}q-p(7OVLF(hmadzAB*}NfWZ!w)3e$D8!lyNZJ81F{xr*xu^KuE^_rvA~JZA{uLDOO0msk+q$bPHe4Zx!r90F-nd#I5Ols zLXs@e-2h7ZcVN*vZM=!6;mSeg>Y|)sQ%Eo*|an;W74`d zj5?B1hH=4-ZJ^%r+*rz|M+(`Gk@bf##SDQ~4cj zAMX=*#{`3Bo2b;TH>1I(+ z>Ts2{js=_MdG_KYf0&MFRFNz^_E>tdvkak_4DtLsg5L$yMIZQsZx{q(NJKELuo$Q8 zN}zJp;RHEQknNB&AdLDs{=G^qfq8rSKI11aw`vI`t6nESYA7JoYEQNUz)B1N0(Ls; zMq){=deT8p_3EMqaL+S^z#qlpIG@arGRvZsw(|EfiJR`Ub+u`LNQP9^0PN{+00VsHP?bYp0R2XAAC@QbbA;guhmuv6>; z;bgrqltY1xO^zE6{gZA%d#hm2?bJbAmFA}qyu-U;0f`M3(xrRTj83>R8yhddx;lD| zT@t0pf}gThifE@%;ZA^yEvXeD zujC8)hHSa7vf1}K@d2rU-k_b_7f?7MGBXR}nB7uq3LNa3aC5R*pR$3&>P0~xM(;O| zvaDhc%0-`K9saEu_}D5W@%HEclKM}nef{($?=u$u0OEi2SYq?0zD@1kB~Ps$bi{E# zu4&sIpHYonhYu74n2TR5T9`M1zMQl9nEg*XuWS(2mSvxGZhSx8n*dEm#UdbvOcG?IE$rioPPzGQ$s#LZVYD0sjDXCRXZWAy=g{frqiQ$O} zzr;!5_u$rxM@WukouA;T%P38vU=_5LsCPFxT4J=tCSIRxf>3EPr!2#5!v%2?+)B+Q00_Z(q-jRu`Z69DEWg@h^jgM8&1c3-rP7VV&P}I~ zdGb2)BHBVtst9-+n76f=*sFGn8x#3%>3>+g;RRBymJo+n10`t4gpxVHs1=lcXkGry zKRd(tbTEwh${<_=ygWss_Jv{w5gmjo1Xydi;FMetKy`j!#14tWhG4oIfAjb7{Wuyh zvM(~6DO;OA0%MF&y(6Ir5P|~wGi>r9(gbq)x0eVFoZdH;tj zS&zk9bIKH|9WS)Ge5gCDDZ>{8ODdjJ>NHotU$?$dw#|J4RiQ`qiJpeT#@9j1!z^HI zgD=cQ&90kt?M}U>R`c#{@6jlScgc7HgnfD!`yU-2;w2=7EXh;)2ifYxfE;= zeZ4K1+=oMT2_C7BUf>j=Q;Sy_^TdlbLPmEzdI@UvZ zVyg3BHk4pw&OO89j0l$JPlM2ph_|)#An}-=@LvP3f1Cfy!K_+jEizdYa5vez`JMEcp zT|KKr=05D+hyg`y2f{XuoJ)WWFa%WeXklqH=-i{OqG#X9Al2|kT3w0=Ort-Y0627C z;l3uAN^qN$1(?Ne{QMb+&1B_zo8gPtJa#gy0Fm1<6I2_fQ7*w=qf?K^4sG|C`-e{1 zt!Fo6@Ec<6{a@YIsao{zNT8NyH-#PBiHy@w0%{e{Ma|2k?M=&*FJ8}@e;C1sb)Oi7B$e6` zqoJ&RU5{=d-c3ekXT6pv_#g#&w=?>;Kyc1CR*HOqn?2N(S`(lr8qi5XAQ%GKC(OEL}Hg@E%b=^~)z+ z{SS4b|D;BFM}xkA&a1V0y{d;TKJW7mT?tbGSVMUnU5$iQMUQ*P!NOBhuIi@>h}0oN zPLdhD_9*pP0of@{#ud1Vi}t7-NPfwAUpLMc&9v$h!lrD~p>17=2)TlLf7B=Ot8Z@t za6c}S_RdYOd*|=(yG-snE)5BAjW7++v~sO@N!4lv95IPUC;NeJ7BR|rWYvM zYjAQxFf#K_Qmxd(vX%~}&BQ0_lykF=IJ9ytODBVrBxTh*zGO`0?4>C=Pk;g;3*m~Y zJne8@jamR@3p}W;&=%G#F8ceOy82r5*yuE7TtIhxeQPyeK9v-sTLbwt+4ed)pci>D zf~F8aL-)DM2_-M&0)RM()-3>y9%W|;5{C*0XQ_1&YZnqpVUE|}WlK0jAXgpdaWllF zm6Z32cDP8ZjI$lIsmdCN5POh7_7zy@p2z*7kc+9c;NlSiK!cSv&}%2l+%TUq{H@SKO5JPcqB#@2a7hk zfNsrE_|~S&>yBAW*lyE%iVTK@ER^Mwq`hDwiSm$x( z$@hMMy#CO#%lm-&nur0E@^vzvyuvKEcOq16$kvuhY*W_~EQkmL+V?mI6#GpX>%|24 zz6`4}<-O8MfmU4qaR4+C&T_JnyutjGskT8s(*9$H`v?Q78`eyC0>wDfrVCbPis6Sr zofRlt-P-)=gNN%0Nj>&8s)b&n-DRaOY&SCJpl<&*D)m!=9Qs6}ZWyh=FTc!9tT%n= z5>>?!y1sOIJLU=#@4+`W0hs0Q`hOMZf5UIG_a@lX@CuVPZDpMz2+pj!IBK-8m#@vi zHJF_}e^nMT@PdsWdsv{-aMa|%WafhsI+dUE7B1o4Z!Dy!e6xC$e=Z?pIb51syflQcEc+`$%i6*|--#WJl^h<0JO~%`s0Hr{BhhRsXIt$2|N|1xHaps?6%&ZB-zD z_I3|zg4~q=`x{3od1L5=Vh9!uKuVC3&2@~g;wPtZ54$Db;*V!Qh;)*i_Ya^(!mC7; zCB|-4-#V;C=zgy8{$N5)v^=;k97ab>FEuFDP{zM-qNm_eb6fAY;*IB9os=HZ-3f=T zzV>+7?c8d;`{57`8O77JH<01Mg-*=C&!*^G9E3F88AEC}Z|xfHG+s_|391y5=@uleg)Hy zG+qH1Xe^$72*FPe^5kWmk~V~@wK;#icT}dzcN7$)A$g9}Xn6Lu012@xgrqK4){_DE z(S||H0H7Yq34qyy=_}Ng<;khgtqVR}##o$`>}!H#(c^7xKV@mWG49}~HKUFsw9Or7 zC)x_lu6P(Xj?cn$Y%O9;R*I-)PB@dfONWecLLF0UMyT?rk&Vmzqli2jl`u;qN+{kk zbCznlFo)E>6<+ToTni+YIVDli*K`-xZB+i}=nIwHMhrhsjiL%gs;vand3lSuT^uD? z1|z^I1M*t_vpj)b>jS`5SpnQODFBQ4O=~ip=r#X{S>&5B_d`0MwQAkBljOeL(vhgV zIhdYVPiF{dOH1{Nsx)t_EyBpWDr+0wh^#V-JiD-IJ@micP3>LMt1e2Uk5m{UgZ{_o z9rD|4nx%_l7(o}qx9t&D1JPl6JTF@6w=Q&lmetv#*V`po&OB!*prXWfoJ&M|W<=VO zG97LwW~=nPVr+|%H-EV7$Ya2#r%%zxh<46WWY)y(Xv>Xo?&TK z&V>qpW2{%#4FI6xJ0Q!FyXC6Wv;@}@8J)e^k>igSL!o4JH>j#jKtl+_Dldcp%%p56 zW;`@Vio*jxY_G2=D(MV28;0n!XEsSO07Lu; zR8EA)H^nbf34)0ZB#Eo69B(k)w<^`S*u*ZB+a;z6^e2EX#C<|dxq7##4a;=V=aa3y zoR6zSzwijvAUg^`0*F)%IFMavsHFY^TY{M&&JDYD^Q2)kQY1}>LzlI{o$w}0*=yt7 zWBo8R8It@LVXFK;vr8*_I%j8U4+aS?N@+Df)i_5Rs}1r#)%xOjgh@wEd*N4sghf0h3jZ?A4>?!&Zf z!o7V}9CmSmh(F2RAc20cgZ#fRQ>T!KnHyL^NqvAZcW+%`_f~=D{i@`uKs~Dv0fG`~ zzkhA-)G1CR^FJ;e@gc2|VJpWO1Yg2#?_81>gII^1Gv}Qjz4me_z{!*aKUr2>Vhn!e z|838psR}76Q#vs!?=vp#CeVs3_rVbi$(c022DX>T*k^(((FfQeh&POodp9e=I<;O2 zQ~k48@isxfC#er;x|pa6{>(TDbw2s*;-p?MtUQ7ET727BSu-v2@CZdN!l%v+VniRB z02EbK7dU39|0hpi>?0S3TmTl@e@K9jEaU^BU(>k^`d`bR zbWEqc{O;bYZ7*snvw}W-VW>{}aRArnIiCL4t$?mam)L#Un+Is>uO(9|1n6O6jdG-O zwl1WiGJS+f(xhqQ{E(${hG@WBtP%$!2&aM8G;AK`7gx$B zsgV15?UGQyQv)P$rZ(W{iNaD=`|SWh7VKdKXQ>r1+~rkueH9VH7Q`7E1b}mZ|FGm_nx?{n$vs+(nv!?Q zsNr-V>!d{G>2`oocR5MIS(d=r27kblosiM|_+Tt=c9{@ql+rkh)$LfAz#X5o;(%DA z{`0hb(!ePvO0q1UmsKeBMv^52^8;H8lFtVOgb&Cl%k_xS zfKG7D^`rCv0(o4f0QHGMr0{g|koSMvcnm0V=)^(2@rhSqJ=S_iEm2|vgK6Z}4x{%) zssZ0Z+0D%avi|E{PI8zqqx|J$M2Ctf{Tk_V*1Nx8%9+J%;nA~UYqRoGl#{Gq8CvPl z3qXq7kr=qy_V~K@=R|}PDFKQDb^OdT;M0vt*499*b1Snrc!#9+q}#Vw8_gy65b{_x zF~hgH9Jr?Tv;JyCinZR=go}VXH@U2J*%ZwA;_=aV!)`e66DJ}!7}(Tt3`#ZWK$z{k zDCXbYw zD!;~FC+x--uOh>g_^~@pF=C)t{vmC|ZIwO3*0OBB&9#ClB*FIW9nv;8XmE2cY2;(g z1>2OJkrd}3;Plxv8TVuD=Pz~E7P$;}zR4NCPufy~lu5vTYb03w#J*G(%uzdjXbzZj z&g!P!U%&2D(%indT7EA=2D;UM3xs#R7_OSUtJ0TZ)iOVE6GksNWGFGaz&P#QQZ`9r zILEfLT+YK?EqmL{J-W==l~sPfMqB zb;9jK9A4ZMOY+YVz}fH$?=U0r?s)SDM1dgg{0R0=dV)@NE{e_+S!kQ&0r;0PM*o_Z zU%BN%4+h|GKE^^kfK7?>whXU#Yc;g7v!#9&R&*eSgUWkseql7D_pH`qP=jU%J1IgY zz*yD?qgp(1DkO;*(*K3r$M9v;BHsuAj)vgw8`7A1cj8D`3(=sSUKIL*HyU|SL3bzi z2kw@30I85RM@i8cqq!sgntK(J-wr^P1Y8Clne6-XdoCnbiX?VRImtf_<&~%OW`BW= vuXG>1MyOZDv^uxZIRxrQa~(rfSwoBJ7iRXSn2DX8EO8pP$ Date: Sat, 29 Aug 2026 23:22:31 +0530 Subject: [PATCH 09/10] Delete network-toolkit/thumbnail.webp --- network-toolkit/thumbnail.webp | Bin 66880 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 network-toolkit/thumbnail.webp diff --git a/network-toolkit/thumbnail.webp b/network-toolkit/thumbnail.webp deleted file mode 100644 index 5e966ab708ea299e9de5410e788ab432fbf694a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66880 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 Date: Sat, 29 Aug 2026 23:23:18 +0530 Subject: [PATCH 10/10] Add files via upload --- network-toolkit/thumbnail.webp | Bin 0 -> 66880 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 network-toolkit/thumbnail.webp diff --git a/network-toolkit/thumbnail.webp b/network-toolkit/thumbnail.webp new file mode 100644 index 0000000000000000000000000000000000000000..5e966ab708ea299e9de5410e788ab432fbf694a1 GIT binary patch literal 66880 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