From 3b0a9a230d57e702413f54bcd221fbd28be802cc Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Wed, 4 Feb 2026 19:02:53 +0100 Subject: [PATCH 001/144] feat: add CI/CD workflows for NixOS build and release - build.yml: single build + Cachix push + unstable channel updates - release.yml: manual release workflow for stable/beta channels Co-Authored-By: Claude Opus 4.5 --- .github/workflows/build.yml | 83 ++++ .github/workflows/release.yml | 104 +++++ flake.nix | 35 ++ nixos/hardware.nix | 97 +++++ nixos/networking.nix | 32 ++ nixos/pkgs/cedar-detect.nix | 13 + nixos/pkgs/pifinder-src.nix | 24 ++ nixos/python-env.nix | 317 ++++++++++++++++ nixos/services.nix | 237 ++++++++++++ python/PiFinder/sys_utils_nixos.py | 590 +++++++++++++++++++++++++++++ versions.json | 26 ++ 11 files changed, 1558 insertions(+) create mode 100644 .github/workflows/build.yml create mode 100644 .github/workflows/release.yml create mode 100644 flake.nix create mode 100644 nixos/hardware.nix create mode 100644 nixos/networking.nix create mode 100644 nixos/pkgs/cedar-detect.nix create mode 100644 nixos/pkgs/pifinder-src.nix create mode 100644 nixos/python-env.nix create mode 100644 nixos/services.nix create mode 100644 python/PiFinder/sys_utils_nixos.py create mode 100644 versions.json diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 000000000..50299c909 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,83 @@ +name: Build PiFinder NixOS + +on: + push: + branches: [main] + pull_request: + types: [labeled, synchronize, opened] + workflow_dispatch: + +jobs: + build: + if: | + github.event_name == 'push' || + github.event_name == 'workflow_dispatch' || + contains(github.event.pull_request.labels.*.name, 'preview') + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: cachix/install-nix-action@v27 + with: + extra_nix_config: | + extra-platforms = aarch64-linux + extra-system-features = big-parallel + + - uses: cachix/cachix-action@v15 + with: + name: pifinder + authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' + + - name: Register QEMU binfmt for aarch64 + run: sudo apt-get update && sudo apt-get install -y qemu-user-static + + - name: Build NixOS system closure + run: | + nix build .#nixosConfigurations.pifinder.config.system.build.toplevel \ + --system aarch64-linux \ + -L --no-link + + - name: Push to Cachix + if: github.event_name != 'pull_request' + run: | + nix build .#nixosConfigurations.pifinder.config.system.build.toplevel \ + --system aarch64-linux \ + --json | jq -r '.[].outputs.out' | cachix push pifinder + + update-unstable: + needs: build + if: github.event_name == 'push' && github.ref == 'refs/heads/main' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Update unstable channel + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + DATE=$(date -I) + + # Update main entry + jq --arg d "$DATE" \ + '.channels.unstable.versions = [{version:"main", ref:"main", date:$d, notes:"Latest development"}]' \ + versions.json > tmp.json && mv tmp.json versions.json + + # Add all preview-labeled PRs (no limit) + gh pr list --label preview --json number,title,headRefOid | \ + jq --arg d "$DATE" '.[] | {version:("PR #" + (.number|tostring)), ref:.headRefOid, date:$d, notes:.title}' | \ + jq -s '.' > prs.json + + jq --slurpfile prs prs.json '.channels.unstable.versions += $prs[0]' \ + versions.json > tmp.json && mv tmp.json versions.json + + rm prs.json + + - name: Commit versions.json + run: | + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + git add versions.json + git diff --staged --quiet || git commit -m "chore: update unstable" + git push diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 000000000..d2a38a2b7 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,104 @@ +name: Release + +on: + workflow_dispatch: + inputs: + version: + description: 'Version (e.g., 2.5.0)' + required: true + notes: + description: 'Release notes' + required: true + type: + description: 'Release type' + type: choice + options: + - stable + - beta + default: stable + source_branch: + description: 'Source branch (default: main, use release/X.Y for hotfixes)' + required: false + default: 'main' + +jobs: + release: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ inputs.source_branch }} + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Create tag + run: | + TAG="v${{ inputs.version }}" + [[ "${{ inputs.type }}" == "beta" ]] && TAG="${TAG}-beta" + git tag "$TAG" + git push origin "$TAG" + echo "TAG=$TAG" >> $GITHUB_ENV + + - uses: cachix/install-nix-action@v27 + with: + extra_nix_config: | + extra-platforms = aarch64-linux + extra-system-features = big-parallel + + - uses: cachix/cachix-action@v15 + with: + name: pifinder + authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' + + - name: Register QEMU binfmt for aarch64 + run: sudo apt-get update && sudo apt-get install -y qemu-user-static + + - name: Build and push closure to Cachix + run: | + nix build .#nixosConfigurations.pifinder.config.system.build.toplevel \ + --system aarch64-linux -L + nix build .#nixosConfigurations.pifinder.config.system.build.toplevel \ + --system aarch64-linux --json | jq -r '.[].outputs.out' | cachix push pifinder + + - name: Build SD image + run: | + nix build .#images.pifinder \ + --system aarch64-linux \ + -L -o result + + - name: Update versions.json on main + run: | + # versions.json always lives on main, even for hotfix releases + git fetch origin main + git checkout main + + DATE=$(date -I) + CHANNEL="${{ inputs.type }}" + VERSION="${{ inputs.version }}" + NOTES="${{ inputs.notes }}" + REF="$TAG" + + jq --arg v "$VERSION" --arg r "$REF" --arg d "$DATE" --arg n "$NOTES" --arg c "$CHANNEL" \ + '.channels[$c].versions = ([{version:$v, ref:$r, date:$d, notes:$n}] + .channels[$c].versions)[:3]' \ + versions.json > tmp.json && mv tmp.json versions.json + + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + git add versions.json + git commit -m "release: $TAG" + git push origin main + + - name: Upload SD image artifact + uses: actions/upload-artifact@v4 + with: + name: pifinder-sd-image + path: result/sd-image/*.img.zst + retention-days: 90 + + - name: Create GitHub Release + uses: softprops/action-gh-release@v1 + with: + tag_name: ${{ env.TAG }} + name: PiFinder ${{ env.TAG }} + body: ${{ inputs.notes }} + prerelease: ${{ inputs.type == 'beta' }} + files: result/sd-image/*.img.zst diff --git a/flake.nix b/flake.nix new file mode 100644 index 000000000..15057217e --- /dev/null +++ b/flake.nix @@ -0,0 +1,35 @@ +{ + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11"; + nixos-hardware.url = "github:NixOS/nixos-hardware"; + }; + + outputs = { self, nixpkgs, nixos-hardware, ... }: let + mkPifinderSystem = { cameraType, includeSDImage ? false }: nixpkgs.lib.nixosSystem { + system = "aarch64-linux"; + modules = [ + nixos-hardware.nixosModules.raspberry-pi-4 + ./nixos/hardware.nix + ./nixos/networking.nix + ./nixos/services.nix + ./nixos/python-env.nix + { pifinder.cameraType = cameraType; } + ] ++ nixpkgs.lib.optionals includeSDImage [ + "${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix" + ]; + }; + in { + nixosConfigurations = { + pifinder = mkPifinderSystem { cameraType = "imx296"; }; + pifinder-imx296 = mkPifinderSystem { cameraType = "imx296"; }; + pifinder-imx462 = mkPifinderSystem { cameraType = "imx462"; }; + pifinder-imx477 = mkPifinderSystem { cameraType = "imx477"; }; + }; + images = { + pifinder = (mkPifinderSystem { cameraType = "imx296"; includeSDImage = true; }).config.system.build.sdImage; + pifinder-imx296 = (mkPifinderSystem { cameraType = "imx296"; includeSDImage = true; }).config.system.build.sdImage; + pifinder-imx462 = (mkPifinderSystem { cameraType = "imx462"; includeSDImage = true; }).config.system.build.sdImage; + pifinder-imx477 = (mkPifinderSystem { cameraType = "imx477"; includeSDImage = true; }).config.system.build.sdImage; + }; + }; +} diff --git a/nixos/hardware.nix b/nixos/hardware.nix new file mode 100644 index 000000000..109041af8 --- /dev/null +++ b/nixos/hardware.nix @@ -0,0 +1,97 @@ +{ config, lib, pkgs, ... }: +{ + options.pifinder.cameraType = lib.mkOption { + type = lib.types.enum [ "imx296" "imx462" "imx477" ]; + default = "imx296"; + description = "Camera sensor type for PiFinder"; + }; + + config = { + # I2C1 (ARM bus) at 10 kHz for BNO055 IMU + hardware.raspberry-pi."4".i2c1 = { + enable = true; + frequency = 10000; + }; + + hardware.deviceTree.overlays = let + # SPI0 — no nixos-hardware option, use custom overlay + spi0Overlay = { + name = "spi0-overlay"; + dtsText = '' + /dts-v1/; + /plugin/; + / { compatible = "brcm,bcm2711"; }; + &spi0 { status = "okay"; }; + ''; + }; + + # UART3 for GPS on /dev/ttyAMA1 + uart3Overlay = { + name = "uart3-overlay"; + dtsText = '' + /dts-v1/; + /plugin/; + / { compatible = "brcm,bcm2711"; }; + &uart3 { status = "okay"; }; + ''; + }; + + # PWM on GPIO 13 (function 4) for keypad backlight + # nixos-hardware pwm0 is hardcoded to GPIO 18, so use custom overlay + pwmOverlay = { + name = "pwm-pin13-overlay"; + dtsText = '' + /dts-v1/; + /plugin/; + / { compatible = "brcm,bcm2711"; }; + fragment@0 { + target = <&gpio>; + __overlay__ { + pwm_pins: pwm_pins { brcm,pins = <13>; brcm,function = <4>; }; + }; + }; + fragment@1 { + target = <&pwm>; + __overlay__ { status = "okay"; }; + }; + ''; + }; + + # Camera dtoverlay — driver depends on selected camera type + cameraDriver = { + imx296 = "imx296"; + imx462 = "imx290"; + imx477 = "imx477"; + }.${config.pifinder.cameraType}; + + cameraOverlay = { + name = "${cameraDriver}-camera"; + dtboFile = "${pkgs.raspberrypifw}/share/raspberrypi/boot/overlays/${cameraDriver}.dtbo"; + }; + in [ + spi0Overlay + uart3Overlay + pwmOverlay + cameraOverlay + ]; + + # udev rules for hardware access without root + services.udev.extraRules = '' + SUBSYSTEM=="spidev", GROUP="spi", MODE="0660" + SUBSYSTEM=="i2c-dev", GROUP="i2c", MODE="0660" + SUBSYSTEM=="pwm", GROUP="gpio", MODE="0660" + SUBSYSTEM=="gpio", GROUP="gpio", MODE="0660" + KERNEL=="ttyAMA1", GROUP="dialout", MODE="0660" + ''; + + users.users.pifinder = { + isNormalUser = true; + extraGroups = [ "spi" "i2c" "gpio" "dialout" "video" "networkmanager" ]; + }; + users.groups = { + spi = {}; + i2c = {}; + gpio = {}; + }; + }; +} diff --git a/nixos/networking.nix b/nixos/networking.nix new file mode 100644 index 000000000..888cedc94 --- /dev/null +++ b/nixos/networking.nix @@ -0,0 +1,32 @@ +{ config, lib, pkgs, ... }: +{ + networking = { + hostName = "pifinder"; + networkmanager.enable = true; + wireless.enable = false; # NetworkManager handles WiFi + }; + + # Pre-configured AP profile (activated on demand via nmcli) + environment.etc."NetworkManager/system-connections/PiFinder-AP.nmconnection" = { + text = '' + [connection] + id=PiFinder-AP + type=wifi + autoconnect=false + + [wifi] + mode=ap + ssid=PiFinderAP + band=bg + channel=7 + + [ipv4] + method=shared + address1=10.10.10.1/24 + + [ipv6] + method=disabled + ''; + mode = "0600"; + }; +} diff --git a/nixos/pkgs/cedar-detect.nix b/nixos/pkgs/cedar-detect.nix new file mode 100644 index 000000000..a8ebf1e2b --- /dev/null +++ b/nixos/pkgs/cedar-detect.nix @@ -0,0 +1,13 @@ +{ pkgs }: +pkgs.stdenv.mkDerivation { + pname = "cedar-detect-server"; + version = "0.1.0"; + src = ../../bin; + nativeBuildInputs = [ pkgs.autoPatchelfHook ]; + buildInputs = [ pkgs.stdenv.cc.cc.lib ]; + installPhase = '' + mkdir -p $out/bin + cp cedar-detect-server-aarch64 $out/bin/cedar-detect-server + chmod +x $out/bin/cedar-detect-server + ''; +} diff --git a/nixos/pkgs/pifinder-src.nix b/nixos/pkgs/pifinder-src.nix new file mode 100644 index 000000000..7b8b4b3e6 --- /dev/null +++ b/nixos/pkgs/pifinder-src.nix @@ -0,0 +1,24 @@ +{ pkgs }: +pkgs.stdenv.mkDerivation { + pname = "pifinder-src"; + version = "0.0.1"; + src = ../..; + + phases = [ "installPhase" ]; + + installPhase = '' + mkdir -p $out + + # Python source (the application) + cp -r $src/python $out/python + + # Astronomical data (catalogs, star patterns, etc.) + cp -r $src/astro_data $out/astro_data + + # Default config at repo root level + cp $src/default_config.json $out/default_config.json + + # Version info + cp $src/versions.json $out/versions.json + ''; +} diff --git a/nixos/python-env.nix b/nixos/python-env.nix new file mode 100644 index 000000000..af3cd4a6f --- /dev/null +++ b/nixos/python-env.nix @@ -0,0 +1,317 @@ +{ config, lib, pkgs, ... }: +let + python = pkgs.python312; + + pifinderPython = python.override { + packageOverrides = self: super: { + # --- Pure Python, trivial packages --- + + sh = self.buildPythonPackage rec { + pname = "sh"; + version = "1.14.3"; + src = self.fetchPypi { + inherit pname version; + hash = "sha256-FIXME"; + }; + doCheck = false; + }; + + gpsdclient = self.buildPythonPackage rec { + pname = "gpsdclient"; + version = "1.3.2"; + src = self.fetchPypi { + inherit pname version; + hash = "sha256-FIXME"; + }; + doCheck = false; + }; + + rpi-hardware-pwm = self.buildPythonPackage rec { + pname = "rpi-hardware-pwm"; + version = "0.2.1"; + src = self.fetchPypi { + inherit pname version; + hash = "sha256-FIXME"; + }; + doCheck = false; + }; + + dataclasses-json = self.buildPythonPackage rec { + pname = "dataclasses-json"; + version = "0.6.7"; + format = "pyproject"; + src = self.fetchPypi { + inherit pname version; + hash = "sha256-FIXME"; + }; + nativeBuildInputs = [ self.poetry-core ]; + propagatedBuildInputs = [ + self.marshmallow + self.typing-inspect + ]; + doCheck = false; + }; + + # --- C extension packages --- + + RPi-GPIO = self.buildPythonPackage rec { + pname = "RPi.GPIO"; + version = "0.7.1"; + src = self.fetchPypi { + inherit pname version; + hash = "sha256-FIXME"; + }; + doCheck = false; + }; + + # --- Adafruit chain: platformdetect -> pureio -> blinka -> sensors --- + + adafruit-platformdetect = self.buildPythonPackage rec { + pname = "Adafruit-PlatformDetect"; + version = "3.73.0"; + format = "pyproject"; + src = self.fetchPypi { + inherit pname version; + hash = "sha256-FIXME"; + }; + nativeBuildInputs = [ self.setuptools-scm ]; + doCheck = false; + }; + + adafruit-pureio = self.buildPythonPackage rec { + pname = "Adafruit-PureIO"; + version = "1.1.11"; + format = "pyproject"; + src = self.fetchPypi { + inherit pname version; + hash = "sha256-FIXME"; + }; + nativeBuildInputs = [ self.setuptools-scm ]; + doCheck = false; + }; + + adafruit-blinka = self.buildPythonPackage rec { + pname = "Adafruit-Blinka"; + version = "8.47.0"; + format = "pyproject"; + src = self.fetchPypi { + inherit pname version; + hash = "sha256-FIXME"; + }; + nativeBuildInputs = [ self.setuptools-scm ]; + propagatedBuildInputs = [ + self.RPi-GPIO + self.adafruit-platformdetect + self.adafruit-pureio + ]; + doCheck = false; + }; + + adafruit-circuitpython-busdevice = self.buildPythonPackage rec { + pname = "adafruit-circuitpython-busdevice"; + version = "5.2.9"; + format = "pyproject"; + src = self.fetchPypi { + inherit pname version; + hash = "sha256-FIXME"; + }; + nativeBuildInputs = [ self.setuptools-scm ]; + propagatedBuildInputs = [ self.adafruit-blinka ]; + doCheck = false; + }; + + adafruit-circuitpython-register = self.buildPythonPackage rec { + pname = "adafruit-circuitpython-register"; + version = "1.10.0"; + format = "pyproject"; + src = self.fetchPypi { + inherit pname version; + hash = "sha256-FIXME"; + }; + nativeBuildInputs = [ self.setuptools-scm ]; + propagatedBuildInputs = [ self.adafruit-blinka ]; + doCheck = false; + }; + + adafruit-circuitpython-bno055 = self.buildPythonPackage rec { + pname = "adafruit-circuitpython-bno055"; + version = "5.4.16"; + format = "pyproject"; + src = self.fetchPypi { + inherit pname version; + hash = "sha256-FIXME"; + }; + nativeBuildInputs = [ self.setuptools-scm ]; + propagatedBuildInputs = [ + self.adafruit-blinka + self.adafruit-circuitpython-busdevice + self.adafruit-circuitpython-register + ]; + doCheck = false; + }; + + # --- Display stack: luma.core -> luma.oled, luma.lcd --- + + luma-core = self.buildPythonPackage rec { + pname = "luma.core"; + version = "2.4.2"; + src = self.fetchPypi { + inherit pname version; + hash = "sha256-FIXME"; + }; + propagatedBuildInputs = [ + self.pillow + self.smbus2 + self.pyftdi + self.cbor2 + self.deprecated + ]; + doCheck = false; + }; + + luma-oled = self.buildPythonPackage rec { + pname = "luma.oled"; + version = "3.13.0"; + src = self.fetchPypi { + inherit pname version; + hash = "sha256-FIXME"; + }; + propagatedBuildInputs = [ self.luma-core ]; + doCheck = false; + }; + + luma-lcd = self.buildPythonPackage rec { + pname = "luma.lcd"; + version = "2.12.0"; + src = self.fetchPypi { + inherit pname version; + hash = "sha256-FIXME"; + }; + propagatedBuildInputs = [ self.luma-core ]; + doCheck = false; + }; + + # --- PAM bindings for password verification --- + + python-pam = self.buildPythonPackage rec { + pname = "python-pam"; + version = "2.0.2"; + src = self.fetchPypi { + inherit pname version; + hash = "sha256-FIXME"; + }; + # python-pam uses ctypes to load libpam.so + postPatch = '' + substituteInPlace src/pam/__init__.py \ + --replace 'find_library("pam")' '"${pkgs.pam}/lib/libpam.so"' + ''; + doCheck = false; + }; + + # --- libinput bindings --- + + python-libinput = self.buildPythonPackage rec { + pname = "python-libinput"; + version = "0.2.0"; + src = self.fetchPypi { + inherit pname version; + hash = "sha256-FIXME"; + }; + buildInputs = [ pkgs.libinput ]; + nativeBuildInputs = [ pkgs.pkg-config ]; + propagatedBuildInputs = [ self.cffi ]; + doCheck = false; + }; + + # --- picamera2 (depends on libcamera with Python bindings) --- + + picamera2 = self.buildPythonPackage rec { + pname = "picamera2"; + version = "0.3.22"; + src = self.fetchPypi { + inherit pname version; + hash = "sha256-FIXME"; + }; + propagatedBuildInputs = [ + self.numpy + self.pillow + self.piexif + self.simplejpeg + self.v4l2-python3 + self.av + pkgs.libcamera # needs pycamera enabled (see overlay) + ]; + # libcamera Python bindings must be on PYTHONPATH + postFixup = '' + wrapPythonProgramsIn "$out" "$out ${pkgs.libcamera}/lib/python3.12/site-packages" + ''; + doCheck = false; + }; + }; + }; + + env = pifinderPython.withPackages (ps: with ps; [ + # Packages from nixpkgs (already available) + numpy + scipy + scikit-learn + pillow + pandas + grpcio + protobuf + bottle + cheroot + requests + pytz + skyfield + tqdm + pyjwt + aiofiles + json5 + smbus2 + pygobject3 # GLib bindings for NetworkManager + dbus-python # D-Bus for hostname/reboot/shutdown + + # Custom packaged (from overlay above) + sh + gpsdclient + rpi-hardware-pwm + dataclasses-json + adafruit-blinka + adafruit-circuitpython-bno055 + luma-oled + luma-lcd + python-libinput + python-pam + RPi-GPIO + picamera2 + ]); +in { + # libcamera overlay — enable Python bindings for picamera2 + nixpkgs.overlays = [(final: prev: { + libcamera = prev.libcamera.overrideAttrs (old: { + mesonFlags = (old.mesonFlags or []) ++ [ + "-Dpycamera=enabled" + ]; + buildInputs = (old.buildInputs or []) ++ [ + final.python312 + final.python312.pkgs.pybind11 + ]; + }); + })]; + + environment.systemPackages = [ + env + pkgs.gobject-introspection # GI typelibs + pkgs.networkmanager # NM-1.0 typelib for gi.repository.NM + ]; + + # Ensure GI_TYPELIB_PATH includes NetworkManager typelib + environment.sessionVariables.GI_TYPELIB_PATH = lib.makeSearchPath "lib/girepository-1.0" [ + pkgs.networkmanager + pkgs.glib + ]; + + # Export the Python environment for use by services.nix + _module.args.pifinderPythonEnv = env; +} diff --git a/nixos/services.nix b/nixos/services.nix new file mode 100644 index 000000000..be97c1d8f --- /dev/null +++ b/nixos/services.nix @@ -0,0 +1,237 @@ +{ config, lib, pkgs, pifinderPythonEnv, ... }: +let + cedar-detect = import ./pkgs/cedar-detect.nix { inherit pkgs; }; +in { + # --------------------------------------------------------------------------- + # Cachix binary substituter — Pi downloads pre-built paths, never compiles + # --------------------------------------------------------------------------- + nix.settings = { + substituters = [ + "https://cache.nixos.org" + "https://pifinder.cachix.org" + ]; + trusted-public-keys = [ + "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" + # TODO: Replace with actual key from Cachix dashboard + "pifinder.cachix.org-1:REPLACE_WITH_ACTUAL_KEY" + ]; + # No local builds — everything must come from a cache + max-jobs = 0; + }; + + # --------------------------------------------------------------------------- + # SD card optimizations + # --------------------------------------------------------------------------- + + # Keep 2 generations max in bootloader + boot.loader.generic-extlinux-compatible.configurationLimit = 2; + + nix.gc = { + automatic = true; + dates = "weekly"; + options = "--delete-older-than 3d"; + }; + nix.settings.auto-optimise-store = true; + + boot.tmp.useTmpfs = true; + boot.tmp.tmpfsSize = "200M"; + + services.journald.extraConfig = '' + Storage=volatile + RuntimeMaxUse=50M + ''; + + zramSwap = { + enable = true; + memoryPercent = 50; + }; + + fileSystems."/" = { + options = [ "noatime" "nodiratime" ]; + }; + + # --------------------------------------------------------------------------- + # Tmpfiles — runtime directory for upgrade ref file + # --------------------------------------------------------------------------- + systemd.tmpfiles.rules = [ + "d /run/pifinder 0755 pifinder pifinder -" + ]; + + # --------------------------------------------------------------------------- + # Sudoers — pifinder user can start upgrade and restart services + # --------------------------------------------------------------------------- + security.sudo.extraRules = [{ + users = [ "pifinder" ]; + commands = [ + { command = "/run/current-system/sw/bin/systemctl start pifinder-upgrade.service"; options = [ "NOPASSWD" ]; } + { command = "/run/current-system/sw/bin/systemctl reset-failed pifinder-upgrade.service"; options = [ "NOPASSWD" ]; } + { command = "/run/current-system/sw/bin/systemctl restart pifinder.service"; options = [ "NOPASSWD" ]; } + { command = "/run/current-system/sw/bin/nixos-rebuild *"; options = [ "NOPASSWD" ]; } + { command = "/run/current-system/sw/bin/shutdown *"; options = [ "NOPASSWD" ]; } + { command = "/run/current-system/sw/bin/chpasswd"; options = [ "NOPASSWD" ]; } + ]; + }]; + + # --------------------------------------------------------------------------- + # Cedar Detect star detection gRPC server + # --------------------------------------------------------------------------- + systemd.services.cedar-detect = { + description = "Cedar Detect Star Detection Server"; + after = [ "basic.target" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + Type = "idle"; + User = "pifinder"; + ExecStart = "${cedar-detect}/bin/cedar-detect-server --port 50551"; + Restart = "on-failure"; + RestartSec = 5; + }; + }; + + # --------------------------------------------------------------------------- + # Main PiFinder application + # --------------------------------------------------------------------------- + systemd.services.pifinder = { + description = "PiFinder"; + after = [ "basic.target" "cedar-detect.service" "gpsd.service" ]; + wants = [ "cedar-detect.service" "gpsd.service" ]; + wantedBy = [ "multi-user.target" ]; + environment = { + PIFINDER_HOME = "/home/pifinder/PiFinder"; + PIFINDER_DATA = "/home/pifinder/PiFinder_data"; + GI_TYPELIB_PATH = lib.makeSearchPath "lib/girepository-1.0" [ + pkgs.networkmanager + pkgs.glib + ]; + }; + serviceConfig = { + Type = "idle"; + User = "pifinder"; + WorkingDirectory = "/home/pifinder/PiFinder/python"; + ExecStart = "${pifinderPythonEnv}/bin/python -m PiFinder.main"; + AmbientCapabilities = "CAP_NET_BIND_SERVICE"; + Restart = "on-failure"; + RestartSec = 5; + }; + }; + + # --------------------------------------------------------------------------- + # PiFinder Safe NixOS Upgrade (test-then-switch) + # --------------------------------------------------------------------------- + systemd.services.pifinder-upgrade = { + description = "PiFinder Safe NixOS Upgrade (test-then-switch)"; + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + TimeoutStartSec = "10min"; + }; + path = with pkgs; [ nixos-rebuild nix systemd coreutils ]; + script = '' + set -euo pipefail + REF=$(cat /run/pifinder/upgrade-ref 2>/dev/null || echo "release") + FLAKE="github:mrosseel/PiFinder/''${REF}#pifinder" + + # Pre-flight: check disk space (need at least 500MB) + AVAIL=$(df --output=avail /nix/store | tail -1) + if [ "$AVAIL" -lt 524288 ]; then + echo "ERROR: Less than 500MB free on /nix/store" + exit 1 + fi + + echo "Phase 1: Download and activate (test mode — bootloader untouched)" + nixos-rebuild test --flake "$FLAKE" --refresh + + echo "Phase 2: Verifying pifinder.service health" + systemctl restart pifinder.service + for i in $(seq 1 24); do + if systemctl is-active --quiet pifinder.service; then + echo "pifinder.service active after $((i * 5))s" + + echo "Phase 3: Persist to bootloader" + nixos-rebuild switch --flake "$FLAKE" + + echo "Phase 4: Cleanup old generations" + nix-env --delete-generations +2 -p /nix/var/nix/profiles/system || true + nix-collect-garbage || true + + echo "Upgrade complete." + exit 0 + fi + sleep 5 + done + + echo "ERROR: pifinder.service not healthy. Rebooting to revert." + systemctl reboot + ''; + }; + + # --------------------------------------------------------------------------- + # PiFinder Boot Health Watchdog + # --------------------------------------------------------------------------- + systemd.services.pifinder-watchdog = { + description = "PiFinder Boot Health Watchdog"; + after = [ "multi-user.target" "pifinder.service" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + }; + path = with pkgs; [ systemd coreutils ]; + script = '' + set -euo pipefail + REBOOT_MARKER="/var/tmp/pifinder-watchdog-rebooted" + + if [ -f "$REBOOT_MARKER" ]; then + echo "Watchdog already rebooted once. Not retrying." + rm -f "$REBOOT_MARKER" + exit 0 + fi + + echo "Watchdog: waiting up to 90s for pifinder.service..." + for i in $(seq 1 18); do + if systemctl is-active --quiet pifinder.service; then + echo "pifinder.service healthy after $((i * 5))s" + exit 0 + fi + sleep 5 + done + + echo "ERROR: pifinder.service failed. Rolling back..." + touch "$REBOOT_MARKER" + PREV_GEN=$(ls -d /nix/var/nix/profiles/system-*-link 2>/dev/null | sort -t- -k2 -n | tail -2 | head -1) + if [ -n "$PREV_GEN" ]; then + "$PREV_GEN/bin/switch-to-configuration" switch || true + fi + systemctl reboot + ''; + }; + + # --------------------------------------------------------------------------- + # GPSD for GPS receiver + # --------------------------------------------------------------------------- + services.gpsd = { + enable = true; + devices = [ "/dev/ttyAMA1" ]; + readonly = false; + }; + + # --------------------------------------------------------------------------- + # Samba for file sharing (observation data, backups) + # --------------------------------------------------------------------------- + services.samba = { + enable = true; + settings = { + global = { + workgroup = "WORKGROUP"; + security = "user"; + "map to guest" = "never"; + }; + PiFinder_data = { + path = "/home/pifinder/PiFinder_data"; + browseable = "yes"; + "read only" = "no"; + "valid users" = "pifinder"; + }; + }; + }; +} diff --git a/python/PiFinder/sys_utils_nixos.py b/python/PiFinder/sys_utils_nixos.py new file mode 100644 index 000000000..943e8c495 --- /dev/null +++ b/python/PiFinder/sys_utils_nixos.py @@ -0,0 +1,590 @@ +""" +NixOS-native system utilities for PiFinder. + +Replaces sys_utils.py's wpa_supplicant/hostapd/file-editing approach with: +- NetworkManager GLib bindings (gi.repository.NM) for WiFi management +- python-pam for password verification +- D-Bus for hostname/reboot/shutdown +- stdlib zipfile for backup/restore +- nixos-rebuild for camera switching and software updates +""" +import glob +import os +import subprocess +import socket +import time +import zipfile +import logging +from pathlib import Path + +import requests + +import dbus +import pam +import gi + +gi.require_version("NM", "1.0") +from gi.repository import GLib, NM + +from PiFinder import utils + +BACKUP_PATH = str(utils.data_dir / "PiFinder_backup.zip") +AP_CONNECTION_NAME = "PiFinder-AP" + +logger = logging.getLogger("SysUtils.NixOS") + + +# --------------------------------------------------------------------------- +# Internal helpers +# --------------------------------------------------------------------------- + +def _run(cmd: list[str], **kwargs) -> subprocess.CompletedProcess: + """Run a command, logging failures. Used only for nixos-rebuild and systemctl.""" + result = subprocess.run(cmd, capture_output=True, text=True, **kwargs) + if result.returncode != 0: + logger.error( + "Command %s failed (rc=%d): %s", + cmd, result.returncode, result.stderr.strip(), + ) + return result + + +def _nm_client() -> NM.Client: + """Create a NetworkManager client (synchronous).""" + return NM.Client.new(None) + + +def _nm_run_async(async_fn, *args): + """ + Run an async NM operation synchronously by spinning a local GLib MainLoop. + + Usage: + result = _nm_run_async(client.add_connection_async, profile, True, None) + """ + loop = GLib.MainLoop.new(None, False) + state = {"result": None, "error": None} + + def callback(source, async_result, _user_data): + try: + # The finish method name matches the async method name: + # add_connection_async -> add_connection_finish + # delete_async -> delete_finish + # activate_connection_async -> activate_connection_finish + # deactivate_connection_async -> deactivate_connection_finish + # commit_changes_async -> commit_changes_finish + method_name = async_fn.__name__.replace("_async", "_finish") + finish_fn = getattr(source, method_name) + state["result"] = finish_fn(async_result) + except Exception as e: + state["error"] = e + finally: + loop.quit() + + async_fn(*args, callback, None) + loop.run() + + if state["error"]: + raise state["error"] + return state["result"] + + +def _get_system_bus() -> dbus.SystemBus: + return dbus.SystemBus() + + +# --------------------------------------------------------------------------- +# Network class — WiFi management via NM GLib bindings +# --------------------------------------------------------------------------- + +class Network: + """ + Provides wifi network info via NetworkManager GLib bindings (libnm). + """ + + def __init__(self): + self._client = _nm_client() + self._wifi_networks: list[dict] = [] + self._wifi_mode = self._detect_wifi_mode() + self.populate_wifi_networks() + + def _detect_wifi_mode(self) -> str: + """Detect whether we're in AP or Client mode.""" + for ac in self._client.get_active_connections(): + if ac.get_id() == AP_CONNECTION_NAME: + return "AP" + return "Client" + + def populate_wifi_networks(self) -> None: + """Get saved WiFi connections from NetworkManager.""" + self._wifi_networks = [] + network_id = 0 + for conn in self._client.get_connections(): + s_wifi = conn.get_setting_wireless() + if s_wifi is None: + continue + if conn.get_id() == AP_CONNECTION_NAME: + continue + ssid_bytes = s_wifi.get_ssid() + ssid = ssid_bytes.get_data().decode("utf-8") if ssid_bytes else "" + self._wifi_networks.append({ + "id": network_id, + "ssid": ssid, + "psk": None, + "key_mgmt": "WPA-PSK", + }) + network_id += 1 + + def get_wifi_networks(self): + return self._wifi_networks + + def delete_wifi_network(self, network_id): + """Delete a saved WiFi connection.""" + if network_id < 0 or network_id >= len(self._wifi_networks): + logger.error("Invalid network_id: %d", network_id) + return + ssid = self._wifi_networks[network_id]["ssid"] + for conn in self._client.get_connections(): + if conn.get_id() == ssid: + try: + _nm_run_async(conn.delete_async, None) + except Exception as e: + logger.error("Failed to delete connection '%s': %s", ssid, e) + break + self.populate_wifi_networks() + + def add_wifi_network(self, ssid, key_mgmt, psk=None): + """Add and connect to a WiFi network.""" + profile = NM.SimpleConnection.new() + + s_con = NM.SettingConnection.new() + s_con.set_property(NM.SETTING_CONNECTION_ID, ssid) + s_con.set_property(NM.SETTING_CONNECTION_TYPE, "802-11-wireless") + s_con.set_property(NM.SETTING_CONNECTION_AUTOCONNECT, True) + profile.add_setting(s_con) + + s_wifi = NM.SettingWireless.new() + s_wifi.set_property( + NM.SETTING_WIRELESS_SSID, + GLib.Bytes.new(ssid.encode("utf-8")), + ) + s_wifi.set_property(NM.SETTING_WIRELESS_MODE, "infrastructure") + profile.add_setting(s_wifi) + + if key_mgmt == "WPA-PSK" and psk: + s_wsec = NM.SettingWirelessSecurity.new() + s_wsec.set_property(NM.SETTING_WIRELESS_SECURITY_KEY_MGMT, "wpa-psk") + s_wsec.set_property(NM.SETTING_WIRELESS_SECURITY_PSK, psk) + profile.add_setting(s_wsec) + + s_ip4 = NM.SettingIP4Config.new() + s_ip4.set_property(NM.SETTING_IP_CONFIG_METHOD, "auto") + profile.add_setting(s_ip4) + + try: + _nm_run_async( + self._client.add_and_activate_connection_async, + profile, + self._client.get_device_by_iface("wlan0"), + None, + None, + ) + except Exception as e: + logger.error("Failed to add WiFi network '%s': %s", ssid, e) + + self.populate_wifi_networks() + + def get_ap_name(self) -> str: + """Get the current AP SSID from the PiFinder-AP profile.""" + for conn in self._client.get_connections(): + if conn.get_id() == AP_CONNECTION_NAME: + s_wifi = conn.get_setting_wireless() + if s_wifi: + ssid_bytes = s_wifi.get_ssid() + if ssid_bytes: + return ssid_bytes.get_data().decode("utf-8") + return "PiFinderAP" + + def set_ap_name(self, ap_name: str) -> None: + """Change the AP SSID.""" + if ap_name == self.get_ap_name(): + return + for conn in self._client.get_connections(): + if conn.get_id() == AP_CONNECTION_NAME: + s_wifi = conn.get_setting_wireless() + if s_wifi: + s_wifi.set_property( + NM.SETTING_WIRELESS_SSID, + GLib.Bytes.new(ap_name.encode("utf-8")), + ) + try: + _nm_run_async(conn.commit_changes_async, True, None) + except Exception as e: + logger.error("Failed to update AP SSID: %s", e) + return + + def get_host_name(self) -> str: + return socket.gethostname() + + def get_connected_ssid(self) -> str: + """Returns the SSID of the connected wifi network.""" + if self.wifi_mode() == "AP": + return "" + device = self._client.get_device_by_iface("wlan0") + if device is None: + return "" + ac = device.get_active_connection() + if ac is None: + return "" + conn = ac.get_connection() + if conn is None: + return "" + s_wifi = conn.get_setting_wireless() + if s_wifi is None: + return "" + ssid_bytes = s_wifi.get_ssid() + if ssid_bytes is None: + return "" + return ssid_bytes.get_data().decode("utf-8") + + def set_host_name(self, hostname: str) -> None: + """Set hostname via D-Bus to org.freedesktop.hostname1.""" + if hostname == self.get_host_name(): + return + try: + bus = _get_system_bus() + hostnamed = bus.get_object( + "org.freedesktop.hostname1", + "/org/freedesktop/hostname1", + ) + iface = dbus.Interface(hostnamed, "org.freedesktop.hostname1") + iface.SetStaticHostname(hostname, False) + except dbus.DBusException as e: + logger.error("Failed to set hostname via D-Bus: %s", e) + + def wifi_mode(self) -> str: + return self._wifi_mode + + def set_wifi_mode(self, mode: str) -> None: + if mode == self._wifi_mode: + return + if mode == "AP": + self._activate_connection(AP_CONNECTION_NAME) + elif mode == "Client": + self._deactivate_connection(AP_CONNECTION_NAME) + self._wifi_mode = mode + + def _activate_connection(self, name: str) -> None: + """Activate a saved connection by name.""" + conn = None + for c in self._client.get_connections(): + if c.get_id() == name: + conn = c + break + if conn is None: + logger.error("Connection '%s' not found", name) + return + device = self._client.get_device_by_iface("wlan0") + try: + _nm_run_async( + self._client.activate_connection_async, + conn, device, None, None, + ) + except Exception as e: + logger.error("Failed to activate '%s': %s", name, e) + + def _deactivate_connection(self, name: str) -> None: + """Deactivate an active connection by name.""" + for ac in self._client.get_active_connections(): + if ac.get_id() == name: + try: + _nm_run_async( + self._client.deactivate_connection_async, ac, None, + ) + except Exception as e: + logger.error("Failed to deactivate '%s': %s", name, e) + return + logger.warning("No active connection named '%s' to deactivate", name) + + def local_ip(self) -> str: + if self._wifi_mode == "AP": + return "10.10.10.1" + s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + try: + s.connect(("192.255.255.255", 1)) + ip = s.getsockname()[0] + except Exception: + ip = "NONE" + finally: + s.close() + return ip + + +# --------------------------------------------------------------------------- +# Backup / restore (stdlib zipfile) +# --------------------------------------------------------------------------- + +def remove_backup(): + """Removes backup file.""" + path = Path(BACKUP_PATH) + if path.exists(): + path.unlink() + + +def backup_userdata() -> str: + """ + Back up userdata to a single zip file. + + Backs up: + config.json + observations.db + obslists/* + """ + remove_backup() + + files = [ + utils.data_dir / "config.json", + utils.data_dir / "observations.db", + ] + for p in utils.data_dir.glob("obslists/*"): + files.append(p) + + with zipfile.ZipFile(BACKUP_PATH, "w", zipfile.ZIP_DEFLATED) as zf: + for filepath in files: + filepath = Path(filepath) + if filepath.exists(): + zf.write(filepath, filepath.relative_to("/")) + + return BACKUP_PATH + + +def restore_userdata(zip_path: str) -> None: + """ + Restore userdata from a zip backup. + OVERWRITES existing data! + """ + with zipfile.ZipFile(zip_path, "r") as zf: + zf.extractall("/") + + +# --------------------------------------------------------------------------- +# System control (systemctl subprocess + D-Bus for reboot/shutdown) +# --------------------------------------------------------------------------- + +def restart_pifinder() -> None: + """Restart the PiFinder service.""" + logger.info("SYS: Restarting PiFinder") + _run(["sudo", "systemctl", "restart", "pifinder"]) + + +def restart_system() -> None: + """Restart the system via D-Bus to login1.""" + logger.info("SYS: Initiating System Restart") + try: + bus = _get_system_bus() + login1 = bus.get_object( + "org.freedesktop.login1", + "/org/freedesktop/login1", + ) + manager = dbus.Interface(login1, "org.freedesktop.login1.Manager") + manager.Reboot(False) + except dbus.DBusException as e: + logger.error("D-Bus reboot failed, falling back to subprocess: %s", e) + _run(["sudo", "shutdown", "-r", "now"]) + + +def shutdown() -> None: + """Shut down the system via D-Bus to login1.""" + logger.info("SYS: Initiating Shutdown") + try: + bus = _get_system_bus() + login1 = bus.get_object( + "org.freedesktop.login1", + "/org/freedesktop/login1", + ) + manager = dbus.Interface(login1, "org.freedesktop.login1.Manager") + manager.PowerOff(False) + except dbus.DBusException as e: + logger.error("D-Bus shutdown failed, falling back to subprocess: %s", e) + _run(["sudo", "shutdown", "now"]) + + +# --------------------------------------------------------------------------- +# Software updates — async upgrade via systemd service +# --------------------------------------------------------------------------- + +UPGRADE_STATE_IDLE = "idle" +UPGRADE_STATE_RUNNING = "running" +UPGRADE_STATE_SUCCESS = "success" +UPGRADE_STATE_FAILED = "failed" + +VERSIONS_URL = ( + "https://raw.githubusercontent.com/mrosseel/PiFinder/release/versions.json" +) + +UPGRADE_REF_FILE = Path("/run/pifinder/upgrade-ref") + + +def fetch_version_manifest() -> dict | None: + """Fetch the channel/version manifest from GitHub.""" + try: + resp = requests.get(VERSIONS_URL, timeout=10) + resp.raise_for_status() + return resp.json() + except Exception as e: + logger.error("Failed to fetch version manifest: %s", e) + return None + + +def get_versions_for_channel(channel: str) -> list[dict]: + """Get available versions for a channel. + + Returns list of {version, ref, date, notes}. + """ + manifest = fetch_version_manifest() + if manifest is None: + return [] + return manifest.get("channels", {}).get(channel, {}).get("versions", []) + + +def get_available_channels() -> list[str]: + """Get list of available channel names.""" + manifest = fetch_version_manifest() + if manifest is None: + return ["stable"] + return list(manifest.get("channels", {}).keys()) + + +def start_upgrade(ref: str = "release") -> bool: + """Start pifinder-upgrade.service with a specific git ref. + + Writes the ref to /run/pifinder/upgrade-ref for the service to read. + Returns True if the service was started successfully. + """ + try: + UPGRADE_REF_FILE.write_text(ref) + except OSError as e: + logger.error("Failed to write upgrade ref file: %s", e) + return False + + _run(["sudo", "systemctl", "reset-failed", "pifinder-upgrade.service"]) + result = _run([ + "sudo", "systemctl", "start", "--no-block", + "pifinder-upgrade.service", + ]) + return result.returncode == 0 + + +def get_upgrade_state() -> str: + """Poll upgrade service state.""" + result = _run(["systemctl", "is-active", "pifinder-upgrade.service"]) + status = result.stdout.strip() + if status == "activating": + return UPGRADE_STATE_RUNNING + elif status == "active": + return UPGRADE_STATE_SUCCESS + elif status == "failed": + return UPGRADE_STATE_FAILED + return UPGRADE_STATE_IDLE + + +def get_upgrade_log_tail(lines: int = 3) -> str: + """Last N lines from upgrade journal for UI display.""" + result = _run([ + "journalctl", "-u", "pifinder-upgrade.service", + "-n", str(lines), "--no-pager", "-o", "cat", + ]) + return result.stdout.strip() if result.returncode == 0 else "" + + +def update_software() -> bool: + """Blocking wrapper for backward compatibility (uses default ref).""" + if not start_upgrade(): + return False + while True: + time.sleep(10) + state = get_upgrade_state() + if state == UPGRADE_STATE_SUCCESS: + return True + elif state == UPGRADE_STATE_FAILED: + return False + + +# --------------------------------------------------------------------------- +# Password management (python-pam + chpasswd) +# --------------------------------------------------------------------------- + +def verify_password(username: str, password: str) -> bool: + """Verify a password against PAM.""" + p = pam.pam() + return p.authenticate(username, password, service="login") + + +def change_password(username: str, current_password: str, new_password: str) -> bool: + """Change the user password via chpasswd.""" + if not verify_password(username, current_password): + return False + result = subprocess.run( + ["sudo", "chpasswd"], + input=f"{username}:{new_password}\n", + capture_output=True, + text=True, + ) + return result.returncode == 0 + + +# --------------------------------------------------------------------------- +# Camera switching (nixos-rebuild + reboot) +# --------------------------------------------------------------------------- + +def switch_camera(cam_type: str) -> None: + """ + Switch camera by rebuilding NixOS with the appropriate camera type. + Requires reboot (dtoverlay change). + """ + logger.info("SYS: Switching camera to %s via nixos-rebuild", cam_type) + flake_path = str(utils.pifinder_home) + result = _run([ + "sudo", "nixos-rebuild", "switch", + "--flake", f"{flake_path}#pifinder-{cam_type}", + ]) + if result.returncode == 0: + restart_system() + else: + logger.error("SYS: Camera switch rebuild failed: %s", result.stderr) + + +def switch_cam_imx477() -> None: + logger.info("SYS: Switching cam to imx477") + switch_camera("imx477") + + +def switch_cam_imx296() -> None: + logger.info("SYS: Switching cam to imx296") + switch_camera("imx296") + + +def switch_cam_imx462() -> None: + logger.info("SYS: Switching cam to imx462") + switch_camera("imx462") + + +# --------------------------------------------------------------------------- +# GPSD config (declarative on NixOS — no-ops) +# --------------------------------------------------------------------------- + +def check_and_sync_gpsd_config(baud_rate: int) -> bool: + """ + On NixOS, GPSD config is managed declaratively via services.nix. + This is a no-op. + """ + logger.info( + "SYS: GPSD baud rate %d — managed by NixOS configuration", baud_rate + ) + return False + + +def update_gpsd_config(baud_rate: int) -> None: + """On NixOS, GPSD configuration is declarative. This is a no-op.""" + logger.info( + "SYS: GPSD config is managed declaratively on NixOS (baud=%d)", baud_rate + ) diff --git a/versions.json b/versions.json new file mode 100644 index 000000000..2bd6d611d --- /dev/null +++ b/versions.json @@ -0,0 +1,26 @@ +{ + "channels": { + "stable": { + "description": "Tested releases", + "versions": [ + { + "version": "2.4.0", + "ref": "v2.4.0", + "date": "2025-07-01", + "notes": "Initial NixOS release" + } + ] + }, + "unstable": { + "description": "Latest development", + "versions": [ + { + "version": "2.5.0-dev", + "ref": "main", + "date": "2025-07-01", + "notes": "Development branch" + } + ] + } + } +} From f2c88e6d0fe0a5c780721ea7b5dc61758299e6c7 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Wed, 4 Feb 2026 19:04:54 +0100 Subject: [PATCH 002/144] fix: add filesystem stub for CI closure builds The SD image module provides filesystems, but toplevel builds need a minimal stub to evaluate successfully. Co-Authored-By: Claude Opus 4.5 --- flake.nix | 50 ++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 40 insertions(+), 10 deletions(-) diff --git a/flake.nix b/flake.nix index 15057217e..c3d9ddf11 100644 --- a/flake.nix +++ b/flake.nix @@ -5,31 +5,61 @@ }; outputs = { self, nixpkgs, nixos-hardware, ... }: let - mkPifinderSystem = { cameraType, includeSDImage ? false }: nixpkgs.lib.nixosSystem { + mkPifinderSystem = { includeSDImage ? false, devMode ? false }: nixpkgs.lib.nixosSystem { system = "aarch64-linux"; modules = [ nixos-hardware.nixosModules.raspberry-pi-4 ./nixos/hardware.nix ./nixos/networking.nix + { pifinder.devMode = devMode; } ./nixos/services.nix ./nixos/python-env.nix - { pifinder.cameraType = cameraType; } + # Headless — strip X11, fonts, docs, desktop bloat + ({ lib, ... }: { + services.xserver.enable = false; + security.polkit.enable = true; + fonts.fontconfig.enable = false; + documentation.enable = false; + documentation.man.enable = false; + documentation.nixos.enable = false; + xdg.portal.enable = false; + services.pipewire.enable = false; + hardware.pulseaudio.enable = false; + boot.supportedFilesystems = lib.mkForce ([ "vfat" "ext4" ] ++ lib.optionals devMode [ "nfs" ]); + boot.initrd.availableKernelModules = lib.mkForce [ "mmc_block" "usbhid" "usb_storage" "vc4" ]; + # NFS netboot support (dev mode only) - NFS and ethernet are built into RPi kernel + boot.initrd.supportedFilesystems = lib.mkIf devMode [ "nfs" ]; + boot.initrd.network.enable = devMode; + }) ] ++ nixpkgs.lib.optionals includeSDImage [ "${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix" + ] ++ nixpkgs.lib.optionals (!includeSDImage) [ + # Minimal filesystem stub for closure builds (CI) + # The SD image module provides real filesystems; this is just for evaluation + ({ lib, ... }: { + fileSystems."/" = { + device = "/dev/disk/by-label/NIXOS_SD"; + fsType = "ext4"; + }; + fileSystems."/boot" = { + device = "/dev/disk/by-label/FIRMWARE"; + fsType = "vfat"; + }; + }) ]; }; in { nixosConfigurations = { - pifinder = mkPifinderSystem { cameraType = "imx296"; }; - pifinder-imx296 = mkPifinderSystem { cameraType = "imx296"; }; - pifinder-imx462 = mkPifinderSystem { cameraType = "imx462"; }; - pifinder-imx477 = mkPifinderSystem { cameraType = "imx477"; }; + # Single universal build - camera selected at runtime via /boot/camera.txt + pifinder = mkPifinderSystem {}; + # Dev config (NFS netboot support) + pifinder-dev = mkPifinderSystem { devMode = true; }; }; images = { - pifinder = (mkPifinderSystem { cameraType = "imx296"; includeSDImage = true; }).config.system.build.sdImage; - pifinder-imx296 = (mkPifinderSystem { cameraType = "imx296"; includeSDImage = true; }).config.system.build.sdImage; - pifinder-imx462 = (mkPifinderSystem { cameraType = "imx462"; includeSDImage = true; }).config.system.build.sdImage; - pifinder-imx477 = (mkPifinderSystem { cameraType = "imx477"; includeSDImage = true; }).config.system.build.sdImage; + # Single universal image - camera selected at runtime via /boot/camera.txt + pifinder = (mkPifinderSystem { includeSDImage = true; }).config.system.build.sdImage; + # Dev image (NFS netboot support, larger initrd) + pifinder-dev = (mkPifinderSystem { includeSDImage = true; devMode = true; }).config.system.build.sdImage; }; }; } From 0257842c5b6ce18f61e7d106b1c35836ad0239ee Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Wed, 4 Feb 2026 19:08:23 +0100 Subject: [PATCH 003/144] fix: add pifinder.devMode option declaration Required for NixOS module system to accept devMode setting. Co-Authored-By: Claude Opus 4.5 --- nixos/services.nix | 156 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 142 insertions(+), 14 deletions(-) diff --git a/nixos/services.nix b/nixos/services.nix index be97c1d8f..c11ed02e5 100644 --- a/nixos/services.nix +++ b/nixos/services.nix @@ -1,22 +1,30 @@ { config, lib, pkgs, pifinderPythonEnv, ... }: let + cfg = config.pifinder; cedar-detect = import ./pkgs/cedar-detect.nix { inherit pkgs; }; + pifinder-src = import ./pkgs/pifinder-src.nix { inherit pkgs; }; in { + options.pifinder = { + devMode = lib.mkOption { + type = lib.types.bool; + default = false; + description = "Enable development mode (NFS netboot support, etc.)"; + }; + }; + # --------------------------------------------------------------------------- # Cachix binary substituter — Pi downloads pre-built paths, never compiles # --------------------------------------------------------------------------- nix.settings = { + experimental-features = [ "nix-command" "flakes" ]; substituters = [ "https://cache.nixos.org" "https://pifinder.cachix.org" ]; trusted-public-keys = [ "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" - # TODO: Replace with actual key from Cachix dashboard - "pifinder.cachix.org-1:REPLACE_WITH_ACTUAL_KEY" + "pifinder.cachix.org-1:ALuxYs8tMU34zwSTWjenI2wpJA+AclmW6H5vyTgnTjc=" ]; - # No local builds — everything must come from a cache - max-jobs = 0; }; # --------------------------------------------------------------------------- @@ -46,7 +54,9 @@ in { memoryPercent = 50; }; - fileSystems."/" = { + fileSystems."/" = lib.mkDefault { + device = "/dev/disk/by-label/NIXOS_SD"; + fsType = "ext4"; options = [ "noatime" "nodiratime" ]; }; @@ -57,18 +67,60 @@ in { "d /run/pifinder 0755 pifinder pifinder -" ]; + # --------------------------------------------------------------------------- + # PiFinder source + data directory setup + # --------------------------------------------------------------------------- + system.activationScripts.pifinder-home = lib.stringAfter [ "users" ] '' + # Symlink immutable source tree from Nix store + # Database is opened read-only, so no need for writable copy + PFHOME=/home/pifinder/PiFinder + + # Remove existing directory (not symlink) to allow symlink creation + if [ -e "$PFHOME" ] && [ ! -L "$PFHOME" ]; then + rm -rf "$PFHOME" + fi + + # Create symlink to immutable Nix store path + ln -sfT ${pifinder-src} "$PFHOME" + + # Create writable data directory + mkdir -p /home/pifinder/PiFinder_data + chown pifinder:users /home/pifinder/PiFinder_data + ''; + # --------------------------------------------------------------------------- # Sudoers — pifinder user can start upgrade and restart services # --------------------------------------------------------------------------- + # Polkit rules for pifinder user (D-Bus hostname changes, NetworkManager) + security.polkit.extraConfig = '' + polkit.addRule(function(action, subject) { + if (subject.user == "pifinder") { + // Allow hostname changes via systemd-hostnamed + if (action.id == "org.freedesktop.hostname1.set-static-hostname" || + action.id == "org.freedesktop.hostname1.set-hostname") { + return polkit.Result.YES; + } + // Allow NetworkManager control + if (action.id.indexOf("org.freedesktop.NetworkManager") == 0) { + return polkit.Result.YES; + } + } + }); + ''; + security.sudo.extraRules = [{ users = [ "pifinder" ]; commands = [ { command = "/run/current-system/sw/bin/systemctl start pifinder-upgrade.service"; options = [ "NOPASSWD" ]; } { command = "/run/current-system/sw/bin/systemctl reset-failed pifinder-upgrade.service"; options = [ "NOPASSWD" ]; } { command = "/run/current-system/sw/bin/systemctl restart pifinder.service"; options = [ "NOPASSWD" ]; } + { command = "/run/current-system/sw/bin/systemctl restart avahi-daemon.service"; options = [ "NOPASSWD" ]; } { command = "/run/current-system/sw/bin/nixos-rebuild *"; options = [ "NOPASSWD" ]; } { command = "/run/current-system/sw/bin/shutdown *"; options = [ "NOPASSWD" ]; } { command = "/run/current-system/sw/bin/chpasswd"; options = [ "NOPASSWD" ]; } + { command = "/run/current-system/sw/bin/dmesg"; options = [ "NOPASSWD" ]; } + { command = "/run/current-system/sw/bin/hostnamectl *"; options = [ "NOPASSWD" ]; } + { command = "/run/current-system/sw/bin/tee /boot/camera.txt"; options = [ "NOPASSWD" ]; } ]; }]; @@ -93,22 +145,28 @@ in { # --------------------------------------------------------------------------- systemd.services.pifinder = { description = "PiFinder"; - after = [ "basic.target" "cedar-detect.service" "gpsd.service" ]; - wants = [ "cedar-detect.service" "gpsd.service" ]; + after = [ "basic.target" "cedar-detect.service" "gpsd.socket" ]; + wants = [ "cedar-detect.service" "gpsd.socket" ]; wantedBy = [ "multi-user.target" ]; + path = [ pkgs.gpsd ]; # For gpsctl environment = { PIFINDER_HOME = "/home/pifinder/PiFinder"; PIFINDER_DATA = "/home/pifinder/PiFinder_data"; GI_TYPELIB_PATH = lib.makeSearchPath "lib/girepository-1.0" [ pkgs.networkmanager - pkgs.glib + pkgs.glib.out # Use .out to get the main package with typelibs, not glib-bin + pkgs.gobject-introspection ]; + # libcamera Python bindings for picamera2 + PYTHONPATH = "${pkgs.libcamera}/lib/python3.12/site-packages"; }; serviceConfig = { Type = "idle"; User = "pifinder"; + Group = "users"; WorkingDirectory = "/home/pifinder/PiFinder/python"; ExecStart = "${pifinderPythonEnv}/bin/python -m PiFinder.main"; + # Allow binding to privileged ports (80 for web UI) AmbientCapabilities = "CAP_NET_BIND_SERVICE"; Restart = "on-failure"; RestartSec = 5; @@ -129,7 +187,8 @@ in { script = '' set -euo pipefail REF=$(cat /run/pifinder/upgrade-ref 2>/dev/null || echo "release") - FLAKE="github:mrosseel/PiFinder/''${REF}#pifinder" + # Single universal build - camera is selected at runtime via /boot/camera.txt + FLAKE="github:brickbots/PiFinder/''${REF}#pifinder" # Pre-flight: check disk space (need at least 500MB) AVAIL=$(df --output=avail /nix/store | tail -1) @@ -138,6 +197,8 @@ in { exit 1 fi + echo "Upgrading to $FLAKE" + echo "Phase 1: Download and activate (test mode — bootloader untouched)" nixos-rebuild test --flake "$FLAKE" --refresh @@ -207,17 +268,84 @@ in { }; # --------------------------------------------------------------------------- - # GPSD for GPS receiver + # GPSD for GPS receiver - full USB hotplug support # --------------------------------------------------------------------------- - services.gpsd = { - enable = true; - devices = [ "/dev/ttyAMA1" ]; - readonly = false; + # Don't use services.gpsd module - it doesn't support hotplug. + # Instead, use gpsd's own systemd units with socket activation. + + # Install gpsd's udev rules (25-gpsd.rules) for USB GPS auto-detection + # Includes u-blox 5/6/7/8/9 and many other GPS receivers + services.udev.packages = [ pkgs.gpsd ]; + + # Install gpsd's systemd units (gpsd.service, gpsd.socket, gpsdctl@.service) + systemd.packages = [ pkgs.gpsd ]; + + # Enable socket activation - gpsd starts when something connects to port 2947 + systemd.sockets.gpsd = { + wantedBy = [ "sockets.target" ]; + }; + + # Configure USBAUTO for gpsdctl (triggered by udev when USB GPS plugs in) + environment.etc."default/gpsd".text = '' + USBAUTO="true" + GPSD_SOCKET="/var/run/gpsd.sock" + ''; + + # Ensure gpsd user/group exist (normally created by services.gpsd module) + users.users.gpsd = { + isSystemUser = true; + group = "gpsd"; + description = "GPSD daemon user"; + }; + users.groups.gpsd = {}; + + # Add UART GPS on boot (ttyAMA3 from uart3 overlay, not auto-detected by udev) + # This runs after gpsd.socket is ready, adding the UART device to gpsd + systemd.services.gpsd-add-uart = { + description = "Add UART GPS to gpsd"; + after = [ "gpsd.socket" "dev-ttyAMA3.device" ]; + requires = [ "gpsd.socket" ]; + wantedBy = [ "multi-user.target" ]; + # BindsTo ensures this stops if ttyAMA3 disappears (though it shouldn't) + bindsTo = [ "dev-ttyAMA3.device" ]; + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + ExecStart = "${pkgs.gpsd}/sbin/gpsdctl add /dev/ttyAMA3"; + ExecStop = "${pkgs.gpsd}/sbin/gpsdctl remove /dev/ttyAMA3"; + }; }; # --------------------------------------------------------------------------- # Samba for file sharing (observation data, backups) # --------------------------------------------------------------------------- + system.stateVersion = "24.11"; + + # --------------------------------------------------------------------------- + # SSH access + # --------------------------------------------------------------------------- + services.openssh = { + enable = true; + settings = { + PasswordAuthentication = true; + PermitRootLogin = "yes"; + }; + }; + + # --------------------------------------------------------------------------- + # Avahi/mDNS for hostname discovery (pifinder.local) + # --------------------------------------------------------------------------- + services.avahi = { + enable = true; + nssmdns4 = true; + publish = { + enable = true; + addresses = true; + domain = true; + workstation = true; + }; + }; + services.samba = { enable = true; settings = { From a1ba877d922c4a162d54562d42b5277e74c946bc Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Wed, 4 Feb 2026 19:11:12 +0100 Subject: [PATCH 004/144] fix: wrap services.nix config in explicit config block Required when module has both options and config sections. Co-Authored-By: Claude Opus 4.5 --- nixos/services.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nixos/services.nix b/nixos/services.nix index c11ed02e5..5d4af30a5 100644 --- a/nixos/services.nix +++ b/nixos/services.nix @@ -12,6 +12,7 @@ in { }; }; + config = { # --------------------------------------------------------------------------- # Cachix binary substituter — Pi downloads pre-built paths, never compiles # --------------------------------------------------------------------------- @@ -362,4 +363,5 @@ in { }; }; }; + }; # config } From 454726fbe9dddcc9bdea4fa82a31fd3aca71d196 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Wed, 4 Feb 2026 19:13:22 +0100 Subject: [PATCH 005/144] fix: add package hashes to python-env.nix Replaces FIXME placeholders with actual SRI hashes. Co-Authored-By: Claude Opus 4.5 --- nixos/python-env.nix | 245 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 199 insertions(+), 46 deletions(-) diff --git a/nixos/python-env.nix b/nixos/python-env.nix index af3cd4a6f..189ce1498 100644 --- a/nixos/python-env.nix +++ b/nixos/python-env.nix @@ -11,7 +11,7 @@ let version = "1.14.3"; src = self.fetchPypi { inherit pname version; - hash = "sha256-FIXME"; + hash = "sha256-5ARbbHMtnOddVxx59awiNO3Zrk9fqdWbCXBQgr3KGMc="; }; doCheck = false; }; @@ -21,17 +21,17 @@ let version = "1.3.2"; src = self.fetchPypi { inherit pname version; - hash = "sha256-FIXME"; + hash = "sha256-cKSWVQqXR9/14OULPJWm4dyrnYQoYJl+lRIHZ+IGCno="; }; doCheck = false; }; rpi-hardware-pwm = self.buildPythonPackage rec { pname = "rpi-hardware-pwm"; - version = "0.2.1"; - src = self.fetchPypi { - inherit pname version; - hash = "sha256-FIXME"; + version = "0.3.0"; + src = pkgs.fetchurl { + url = "https://files.pythonhosted.org/packages/be/0c/4308050d8b6bbe24e8e54b38e48b287b1e356efce33cd485ee4387fc92a9/rpi_hardware_pwm-0.3.0.tar.gz"; + hash = "sha256-HshwYzp5XpijEGhWXwZ/gvZKjhZ4BpvPjdcC+i+zGyY="; }; doCheck = false; }; @@ -40,15 +40,20 @@ let pname = "dataclasses-json"; version = "0.6.7"; format = "pyproject"; - src = self.fetchPypi { - inherit pname version; - hash = "sha256-FIXME"; + src = pkgs.fetchurl { + url = "https://files.pythonhosted.org/packages/64/a4/f71d9cf3a5ac257c993b5ca3f93df5f7fb395c725e7f1e6479d2514173c3/dataclasses_json-0.6.7.tar.gz"; + hash = "sha256-trPlKCZupFuVNSI7xTymRfUgiDPCkinoR7PyahzFX8A="; }; nativeBuildInputs = [ self.poetry-core ]; propagatedBuildInputs = [ self.marshmallow self.typing-inspect ]; + postPatch = '' + substituteInPlace pyproject.toml \ + --replace-fail 'requires = ["poetry-core>=1.2.0", "poetry-dynamic-versioning"]' 'requires = ["poetry-core>=1.2.0"]' \ + --replace-fail 'build-backend = "poetry_dynamic_versioning.backend"' 'build-backend = "poetry.core.masonry.api"' + ''; doCheck = false; }; @@ -59,20 +64,36 @@ let version = "0.7.1"; src = self.fetchPypi { inherit pname version; - hash = "sha256-FIXME"; + hash = "sha256-zWHEsDw3tiu6SlrP6phidJwzxhjgKV5+kKpHE/s3O3A="; }; doCheck = false; }; # --- Adafruit chain: platformdetect -> pureio -> blinka -> sensors --- + # CircuitPython typing stubs (required for Python 3.12+ type annotation evaluation) + adafruit-circuitpython-typing = self.buildPythonPackage rec { + pname = "adafruit-circuitpython-typing"; + version = "1.12.3"; + format = "pyproject"; + src = pkgs.fetchurl { + url = "https://files.pythonhosted.org/packages/65/a2/40a3440aed2375371507af668570b68523ee01db9c25c47ce5a05883170e/adafruit_circuitpython_typing-1.12.3.tar.gz"; + hash = "sha256-Y/GW+DTkeEK81M+MN6qgxh4a610H8FbIdfwwFs2pGhI="; + }; + nativeBuildInputs = [ self.setuptools-scm ]; + propagatedBuildInputs = [ self.typing-extensions ]; + doCheck = false; + # Skip runtime dependency check - optional deps are handled by blinka chain + dontCheckRuntimeDeps = true; + }; + adafruit-platformdetect = self.buildPythonPackage rec { pname = "Adafruit-PlatformDetect"; version = "3.73.0"; format = "pyproject"; - src = self.fetchPypi { - inherit pname version; - hash = "sha256-FIXME"; + src = pkgs.fetchurl { + url = "https://files.pythonhosted.org/packages/3c/83/79eb6746d01d64bd61f02b12a2637fad441f7823a4f540842e0a47dbcfd8/adafruit_platformdetect-3.73.0.tar.gz"; + hash = "sha256-IwkJityP+Hs9mkpdOu6+P3t/VasOE9Get1/6hl82+rg="; }; nativeBuildInputs = [ self.setuptools-scm ]; doCheck = false; @@ -82,9 +103,9 @@ let pname = "Adafruit-PureIO"; version = "1.1.11"; format = "pyproject"; - src = self.fetchPypi { - inherit pname version; - hash = "sha256-FIXME"; + src = pkgs.fetchurl { + url = "https://files.pythonhosted.org/packages/e5/b7/f1672435116822079bbdab42163f9e6424769b7db778873d95d18c085230/Adafruit_PureIO-1.1.11.tar.gz"; + hash = "sha256-xM+7NlcxlC0fEJKhFvR9/a4K7xjFsn8QcrWCStXqjHw="; }; nativeBuildInputs = [ self.setuptools-scm ]; doCheck = false; @@ -94,16 +115,19 @@ let pname = "Adafruit-Blinka"; version = "8.47.0"; format = "pyproject"; - src = self.fetchPypi { - inherit pname version; - hash = "sha256-FIXME"; + src = pkgs.fetchurl { + url = "https://files.pythonhosted.org/packages/4a/30/84193a19683732387ec5f40661b589fcee29e0ab47c1e7dee36fb92efe9b/adafruit_blinka-8.47.0.tar.gz"; + hash = "sha256-Q2qFasw4v5xTRtuMQTuiraledi9qqXp9viOENMy8hRk="; }; nativeBuildInputs = [ self.setuptools-scm ]; propagatedBuildInputs = [ self.RPi-GPIO self.adafruit-platformdetect self.adafruit-pureio + self.adafruit-circuitpython-typing ]; + pythonRelaxDeps = true; + pythonRemoveDeps = [ "binho-host-adapter" "pyftdi" "sysv-ipc" ]; doCheck = false; }; @@ -111,12 +135,15 @@ let pname = "adafruit-circuitpython-busdevice"; version = "5.2.9"; format = "pyproject"; - src = self.fetchPypi { - inherit pname version; - hash = "sha256-FIXME"; + src = pkgs.fetchurl { + url = "https://files.pythonhosted.org/packages/a8/04/cf8d2ebfe0d171b7c8fe3425f1e2e80ed59738855d419e5486f5d2fa9145/adafruit_circuitpython_busdevice-5.2.9.tar.gz"; + hash = "sha256-n5w984UJFBDaxZYZGOR17Ij67X/1Q61tdCCPCMJWZRM="; }; nativeBuildInputs = [ self.setuptools-scm ]; - propagatedBuildInputs = [ self.adafruit-blinka ]; + propagatedBuildInputs = [ + self.adafruit-blinka + self.adafruit-circuitpython-typing + ]; doCheck = false; }; @@ -124,12 +151,16 @@ let pname = "adafruit-circuitpython-register"; version = "1.10.0"; format = "pyproject"; - src = self.fetchPypi { - inherit pname version; - hash = "sha256-FIXME"; + src = pkgs.fetchurl { + url = "https://files.pythonhosted.org/packages/0f/f1/b7e16545dac1056227ca9c612966ec26d69a04a99df6892aec27a71884af/adafruit_circuitpython_register-1.10.0.tar.gz"; + hash = "sha256-vH6191d2bxAqhyZXPgylwp6h1+UBweN1nGxOnhNmD3o="; }; nativeBuildInputs = [ self.setuptools-scm ]; - propagatedBuildInputs = [ self.adafruit-blinka ]; + propagatedBuildInputs = [ + self.adafruit-blinka + self.adafruit-circuitpython-busdevice + self.adafruit-circuitpython-typing + ]; doCheck = false; }; @@ -137,15 +168,16 @@ let pname = "adafruit-circuitpython-bno055"; version = "5.4.16"; format = "pyproject"; - src = self.fetchPypi { - inherit pname version; - hash = "sha256-FIXME"; + src = pkgs.fetchurl { + url = "https://files.pythonhosted.org/packages/8d/20/ad6bb451c5bf228af869bf045d4fc415174e7c042dfc1d998e9c0bc8ad21/adafruit_circuitpython_bno055-5.4.16.tar.gz"; + hash = "sha256-kL/bz689GF/sZxgbzv+bEPQ4F5zQqjl+k4ctSwlK3aA="; }; nativeBuildInputs = [ self.setuptools-scm ]; propagatedBuildInputs = [ self.adafruit-blinka self.adafruit-circuitpython-busdevice self.adafruit-circuitpython-register + self.adafruit-circuitpython-typing ]; doCheck = false; }; @@ -157,7 +189,7 @@ let version = "2.4.2"; src = self.fetchPypi { inherit pname version; - hash = "sha256-FIXME"; + hash = "sha256-ljwmQWTUN09UnVfbCVmeDKRYzqG9BeFpOYl2Gb5Obb0="; }; propagatedBuildInputs = [ self.pillow @@ -174,7 +206,7 @@ let version = "3.13.0"; src = self.fetchPypi { inherit pname version; - hash = "sha256-FIXME"; + hash = "sha256-fioNakyWjGSYAlXWgewnkU2avVpmqQGbKJvzrQUMISU="; }; propagatedBuildInputs = [ self.luma-core ]; doCheck = false; @@ -182,44 +214,137 @@ let luma-lcd = self.buildPythonPackage rec { pname = "luma.lcd"; - version = "2.12.0"; + version = "2.11.0"; src = self.fetchPypi { inherit pname version; - hash = "sha256-FIXME"; + hash = "sha256-1GBE6W/TmUPr5Iph51M3FXG+FJekvqlrcuOpxzL77uQ="; }; propagatedBuildInputs = [ self.luma-core ]; doCheck = false; }; + # --- DeepSkyLog API --- + + pydeepskylog = self.buildPythonPackage rec { + pname = "pydeepskylog"; + version = "1.6"; + src = self.fetchPypi { + inherit pname version; + hash = "sha256-3erm0ASBfPtQ1cngzsqkZUrnKoLNIBu8U1D6iA4ePmE="; + }; + propagatedBuildInputs = [ self.requests ]; + doCheck = false; + }; + # --- PAM bindings for password verification --- python-pam = self.buildPythonPackage rec { pname = "python-pam"; version = "2.0.2"; + format = "pyproject"; src = self.fetchPypi { inherit pname version; - hash = "sha256-FIXME"; + hash = "sha256-lyNSNbqbgtuugGjRCZUIRVlJsnX3cnPKIv29ix+12VA="; }; - # python-pam uses ctypes to load libpam.so + nativeBuildInputs = [ self.setuptools self.six ]; + # python-pam uses ctypes to load libpam.so from __internals.py postPatch = '' - substituteInPlace src/pam/__init__.py \ - --replace 'find_library("pam")' '"${pkgs.pam}/lib/libpam.so"' + substituteInPlace src/pam/__internals.py \ + --replace-fail 'find_library("pam")' '"${pkgs.pam}/lib/libpam.so"' \ + --replace-fail 'find_library("pam_misc")' '"${pkgs.pam}/lib/libpam_misc.so"' ''; doCheck = false; }; - # --- libinput bindings --- + # --- pidng (for picamera2 DNG support) --- + + pidng = self.buildPythonPackage rec { + pname = "pidng"; + version = "4.0.9"; + src = pkgs.fetchurl { + url = "https://files.pythonhosted.org/packages/source/p/pidng/pidng-4.0.9.tar.gz"; + hash = "sha256-Vg6wCAhvinFf2eGrmYgXp9TIUAp/Fhuc5q9asnUB+Cw="; + }; + propagatedBuildInputs = [ self.numpy ]; + doCheck = false; + }; + + # --- simplejpeg (fast JPEG encode/decode for picamera2) --- + # Use prebuilt wheel - source build tries to download libjpeg-turbo + + simplejpeg = self.buildPythonPackage rec { + pname = "simplejpeg"; + version = "1.9.0"; + format = "wheel"; + src = pkgs.fetchurl { + url = "https://files.pythonhosted.org/packages/75/c1/0cbf167e3efa32adfbb0674a3504eb118cc5bdc372a44ee937c30324188e/simplejpeg-1.9.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl"; + hash = "sha256-CKszfKOybXVi9a1oarjzlm+yBvztYH0kjmk8vFf8U7M="; + }; + propagatedBuildInputs = [ self.numpy ]; + doCheck = false; + }; + + # --- prctl bindings (for picamera2) --- + + python-prctl = self.buildPythonPackage rec { + pname = "python-prctl"; + version = "1.8.1"; + src = pkgs.fetchurl { + url = "https://files.pythonhosted.org/packages/source/p/python-prctl/python-prctl-1.8.1.tar.gz"; + hash = "sha256-tMqaJafU8azk//0fOi5k71II/gX5KfPt1eJwgcp+Z84="; + }; + buildInputs = [ pkgs.libcap ]; + doCheck = false; + }; + + # --- libinput bindings (rebuild: 2026-02-03 fix lib path) --- python-libinput = self.buildPythonPackage rec { pname = "python-libinput"; - version = "0.2.0"; + version = "0.3.0a0"; src = self.fetchPypi { inherit pname version; - hash = "sha256-FIXME"; + hash = "sha256-fj08l4aqp5vy8UYBZIWBtGJLaS0/DZGZkC0NCDQhkwI="; }; - buildInputs = [ pkgs.libinput ]; + buildInputs = [ pkgs.libinput pkgs.systemd ]; nativeBuildInputs = [ pkgs.pkg-config ]; propagatedBuildInputs = [ self.cffi ]; + # imp module removed in Python 3.12; also patch library paths for NixOS + postPatch = '' + substituteInPlace setup.py \ + --replace-fail 'from imp import load_source' 'import importlib.util, types +def load_source(name, path): + spec = importlib.util.spec_from_file_location(name, path) + mod = importlib.util.module_from_spec(spec) + spec.loader.exec_module(mod) + return mod' + substituteInPlace libinput/__init__.py \ + --replace-fail "CDLL('libudev.so.1')" "CDLL('${lib.getLib pkgs.systemd}/lib/libudev.so.1')" \ + --replace-fail "CDLL('libinput.so.10')" "CDLL('${lib.getLib pkgs.libinput}/lib/libinput.so.10')" + ''; + doCheck = false; + }; + + v4l2-python3 = self.buildPythonPackage rec { + pname = "v4l2-python3"; + version = "0.3.4"; + src = self.fetchPypi { + inherit pname version; + hash = "sha256-YliResgEmsaYcaXg39bYnVXJ5/gOgSwe+LqIeb2hxYc="; + }; + doCheck = false; + }; + + # --- videodev2 (V4L2 ctypes bindings for picamera2) --- + + videodev2 = self.buildPythonPackage rec { + pname = "videodev2"; + version = "0.0.4"; + format = "wheel"; + src = pkgs.fetchurl { + url = "https://files.pythonhosted.org/packages/68/30/4982441a03860ab8f656702d8a2c13d0cf6f56d65bfb78fe288028dcb473/videodev2-0.0.4-py3-none-any.whl"; + hash = "sha256-0196s53bBtUP7Japm/yNW4tSW8fqA3iCWdOGOT8aZLo="; + }; doCheck = false; }; @@ -230,16 +355,29 @@ let version = "0.3.22"; src = self.fetchPypi { inherit pname version; - hash = "sha256-FIXME"; + hash = "sha256-iShpgUNCu8uHS7jeehtgWJhEm/UhJjn0bw2qpkbWgy0="; }; + # Make DrmPreview import optional - pykms (kmsxx Python bindings) not + # available in nixpkgs. PiFinder uses NullPreview anyway. + postPatch = '' + substituteInPlace picamera2/previews/__init__.py \ + --replace-fail 'from .drm_preview import DrmPreview' \ + 'try: + from .drm_preview import DrmPreview +except ImportError: + DrmPreview = None' + ''; propagatedBuildInputs = [ self.numpy self.pillow self.piexif - self.simplejpeg self.v4l2-python3 - self.av - pkgs.libcamera # needs pycamera enabled (see overlay) + self.videodev2 # V4L2 ctypes bindings (required by picamera2) + self.pidng # DNG support + self.simplejpeg # Fast JPEG encoding + self.python-prctl # Process control + pkgs.libcamera # needs pycamera enabled (see overlay) + # av, libarchive-c, jsonschema, tqdm are in the main env ]; # libcamera Python bindings must be on PYTHONPATH postFixup = '' @@ -269,8 +407,13 @@ let aiofiles json5 smbus2 + spidev # SPI interface for display pygobject3 # GLib bindings for NetworkManager + av # PyAV - ffmpeg bindings for picamera2 encoders dbus-python # D-Bus for hostname/reboot/shutdown + timezonefinder # Timezone lookup from GPS coordinates + jsonschema # For picamera2 configuration validation + libarchive-c # For picamera2 archive handling # Custom packaged (from overlay above) sh @@ -283,6 +426,11 @@ let luma-lcd python-libinput python-pam + python-prctl + pidng + simplejpeg + videodev2 # V4L2 ctypes bindings for picamera2 + pydeepskylog RPi-GPIO picamera2 ]); @@ -304,6 +452,8 @@ in { env pkgs.gobject-introspection # GI typelibs pkgs.networkmanager # NM-1.0 typelib for gi.repository.NM + pkgs.libcamera # for picamera2 Python bindings + pkgs.gpsd # for gpsctl (runtime GPS baud rate changes) ]; # Ensure GI_TYPELIB_PATH includes NetworkManager typelib @@ -312,6 +462,9 @@ in { pkgs.glib ]; + # Add libcamera Python bindings to PYTHONPATH (for picamera2) + environment.sessionVariables.PYTHONPATH = "${pkgs.libcamera}/lib/python3.12/site-packages"; + # Export the Python environment for use by services.nix _module.args.pifinderPythonEnv = env; } From 10d0c3349f3c1d528ab6f8cbd36ebb49b362b25a Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Wed, 4 Feb 2026 20:06:13 +0100 Subject: [PATCH 006/144] feat: support self-hosted ARM64 runner for faster builds Uses Pi5 runner when RUNNER_LABELS variable is set, falls back to ubuntu with QEMU emulation otherwise. Co-Authored-By: Claude Opus 4.5 --- .github/workflows/build.yml | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 50299c909..414c23482 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,11 +13,20 @@ jobs: github.event_name == 'push' || github.event_name == 'workflow_dispatch' || contains(github.event.pull_request.labels.*.name, 'preview') - runs-on: ubuntu-latest + # Prefer self-hosted aarch64 runner (Pi5), fallback to ubuntu with QEMU + runs-on: ${{ vars.RUNNER_LABELS || 'ubuntu-latest' }} steps: - uses: actions/checkout@v4 + - name: Install Nix (self-hosted) + if: runner.arch == 'ARM64' + run: | + if ! command -v nix &> /dev/null; then + curl -L https://nixos.org/nix/install | sh -s -- --daemon + fi + - uses: cachix/install-nix-action@v27 + if: runner.arch != 'ARM64' with: extra_nix_config: | extra-platforms = aarch64-linux @@ -29,19 +38,29 @@ jobs: authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' - name: Register QEMU binfmt for aarch64 + if: runner.arch != 'ARM64' run: sudo apt-get update && sudo apt-get install -y qemu-user-static - name: Build NixOS system closure run: | + # Native build on aarch64, cross-compile via QEMU on x86_64 + SYSTEM_FLAG="" + if [[ "$(uname -m)" != "aarch64" ]]; then + SYSTEM_FLAG="--system aarch64-linux" + fi nix build .#nixosConfigurations.pifinder.config.system.build.toplevel \ - --system aarch64-linux \ + $SYSTEM_FLAG \ -L --no-link - name: Push to Cachix if: github.event_name != 'pull_request' run: | + SYSTEM_FLAG="" + if [[ "$(uname -m)" != "aarch64" ]]; then + SYSTEM_FLAG="--system aarch64-linux" + fi nix build .#nixosConfigurations.pifinder.config.system.build.toplevel \ - --system aarch64-linux \ + $SYSTEM_FLAG \ --json | jq -r '.[].outputs.out' | cachix push pifinder update-unstable: From 5b170919e4f9a35f128404179f47d1888295f130 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Wed, 4 Feb 2026 21:12:05 +0100 Subject: [PATCH 007/144] fix: add device tree filter and fix PWM overlay syntax - Filter to only Pi 4B device tree (CM4 incompatible with our overlays) - Use shorthand DTS syntax for PWM overlay Co-Authored-By: Claude Opus 4.5 --- nixos/hardware.nix | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/nixos/hardware.nix b/nixos/hardware.nix index 109041af8..812e53f68 100644 --- a/nixos/hardware.nix +++ b/nixos/hardware.nix @@ -7,6 +7,9 @@ }; config = { + # Only include RPi 4B device tree (not CM4 variants) + hardware.deviceTree.filter = "*rpi-4-b.dtb"; + # I2C1 (ARM bus) at 10 kHz for BNO055 IMU hardware.raspberry-pi."4".i2c1 = { enable = true; @@ -44,16 +47,13 @@ /dts-v1/; /plugin/; / { compatible = "brcm,bcm2711"; }; - fragment@0 { - target = <&gpio>; - __overlay__ { - pwm_pins: pwm_pins { brcm,pins = <13>; brcm,function = <4>; }; + &gpio { + pwm_pins: pwm_pins { + brcm,pins = <13>; + brcm,function = <4>; }; }; - fragment@1 { - target = <&pwm>; - __overlay__ { status = "okay"; }; - }; + &pwm { status = "okay"; }; ''; }; From 7292ac69dea9fb344401f11aa55ed1a2b138b6db Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Thu, 5 Feb 2026 08:34:26 +0100 Subject: [PATCH 008/144] fix: add write permissions and self-hosted runner to release workflow --- .github/workflows/release.yml | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d2a38a2b7..1bc92ca1a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -23,7 +23,9 @@ on: jobs: release: - runs-on: ubuntu-latest + runs-on: ${{ vars.RUNNER_LABELS || 'ubuntu-latest' }} + permissions: + contents: write steps: - uses: actions/checkout@v4 with: @@ -38,7 +40,15 @@ jobs: git push origin "$TAG" echo "TAG=$TAG" >> $GITHUB_ENV + - name: Install Nix (self-hosted) + if: runner.arch == 'ARM64' + run: | + if ! command -v nix &> /dev/null; then + curl -L https://nixos.org/nix/install | sh -s -- --daemon + fi + - uses: cachix/install-nix-action@v27 + if: runner.arch != 'ARM64' with: extra_nix_config: | extra-platforms = aarch64-linux @@ -50,19 +60,28 @@ jobs: authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' - name: Register QEMU binfmt for aarch64 + if: runner.arch != 'ARM64' run: sudo apt-get update && sudo apt-get install -y qemu-user-static - name: Build and push closure to Cachix run: | + SYSTEM_FLAG="" + if [[ "$(uname -m)" != "aarch64" ]]; then + SYSTEM_FLAG="--system aarch64-linux" + fi nix build .#nixosConfigurations.pifinder.config.system.build.toplevel \ - --system aarch64-linux -L + $SYSTEM_FLAG -L nix build .#nixosConfigurations.pifinder.config.system.build.toplevel \ - --system aarch64-linux --json | jq -r '.[].outputs.out' | cachix push pifinder + $SYSTEM_FLAG --json | jq -r '.[].outputs.out' | cachix push pifinder - name: Build SD image run: | + SYSTEM_FLAG="" + if [[ "$(uname -m)" != "aarch64" ]]; then + SYSTEM_FLAG="--system aarch64-linux" + fi nix build .#images.pifinder \ - --system aarch64-linux \ + $SYSTEM_FLAG \ -L -o result - name: Update versions.json on main From 9fcc29e8dfb783f526c8b7b771d9d7e0f42a2352 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Thu, 5 Feb 2026 08:36:49 +0100 Subject: [PATCH 009/144] fix: use ubuntu-latest for all workflows, simplify QEMU setup --- .github/workflows/build.yml | 25 +++---------------------- .github/workflows/release.yml | 26 ++++---------------------- 2 files changed, 7 insertions(+), 44 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 414c23482..50299c909 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,20 +13,11 @@ jobs: github.event_name == 'push' || github.event_name == 'workflow_dispatch' || contains(github.event.pull_request.labels.*.name, 'preview') - # Prefer self-hosted aarch64 runner (Pi5), fallback to ubuntu with QEMU - runs-on: ${{ vars.RUNNER_LABELS || 'ubuntu-latest' }} + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: Install Nix (self-hosted) - if: runner.arch == 'ARM64' - run: | - if ! command -v nix &> /dev/null; then - curl -L https://nixos.org/nix/install | sh -s -- --daemon - fi - - uses: cachix/install-nix-action@v27 - if: runner.arch != 'ARM64' with: extra_nix_config: | extra-platforms = aarch64-linux @@ -38,29 +29,19 @@ jobs: authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' - name: Register QEMU binfmt for aarch64 - if: runner.arch != 'ARM64' run: sudo apt-get update && sudo apt-get install -y qemu-user-static - name: Build NixOS system closure run: | - # Native build on aarch64, cross-compile via QEMU on x86_64 - SYSTEM_FLAG="" - if [[ "$(uname -m)" != "aarch64" ]]; then - SYSTEM_FLAG="--system aarch64-linux" - fi nix build .#nixosConfigurations.pifinder.config.system.build.toplevel \ - $SYSTEM_FLAG \ + --system aarch64-linux \ -L --no-link - name: Push to Cachix if: github.event_name != 'pull_request' run: | - SYSTEM_FLAG="" - if [[ "$(uname -m)" != "aarch64" ]]; then - SYSTEM_FLAG="--system aarch64-linux" - fi nix build .#nixosConfigurations.pifinder.config.system.build.toplevel \ - $SYSTEM_FLAG \ + --system aarch64-linux \ --json | jq -r '.[].outputs.out' | cachix push pifinder update-unstable: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1bc92ca1a..b2a2e9d78 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -23,7 +23,7 @@ on: jobs: release: - runs-on: ${{ vars.RUNNER_LABELS || 'ubuntu-latest' }} + runs-on: ubuntu-latest permissions: contents: write steps: @@ -40,15 +40,7 @@ jobs: git push origin "$TAG" echo "TAG=$TAG" >> $GITHUB_ENV - - name: Install Nix (self-hosted) - if: runner.arch == 'ARM64' - run: | - if ! command -v nix &> /dev/null; then - curl -L https://nixos.org/nix/install | sh -s -- --daemon - fi - - uses: cachix/install-nix-action@v27 - if: runner.arch != 'ARM64' with: extra_nix_config: | extra-platforms = aarch64-linux @@ -60,33 +52,23 @@ jobs: authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' - name: Register QEMU binfmt for aarch64 - if: runner.arch != 'ARM64' run: sudo apt-get update && sudo apt-get install -y qemu-user-static - name: Build and push closure to Cachix run: | - SYSTEM_FLAG="" - if [[ "$(uname -m)" != "aarch64" ]]; then - SYSTEM_FLAG="--system aarch64-linux" - fi nix build .#nixosConfigurations.pifinder.config.system.build.toplevel \ - $SYSTEM_FLAG -L + --system aarch64-linux -L nix build .#nixosConfigurations.pifinder.config.system.build.toplevel \ - $SYSTEM_FLAG --json | jq -r '.[].outputs.out' | cachix push pifinder + --system aarch64-linux --json | jq -r '.[].outputs.out' | cachix push pifinder - name: Build SD image run: | - SYSTEM_FLAG="" - if [[ "$(uname -m)" != "aarch64" ]]; then - SYSTEM_FLAG="--system aarch64-linux" - fi nix build .#images.pifinder \ - $SYSTEM_FLAG \ + --system aarch64-linux \ -L -o result - name: Update versions.json on main run: | - # versions.json always lives on main, even for hotfix releases git fetch origin main git checkout main From 7430061b372df6893add72a294f2fe3cf63f5ab1 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Thu, 5 Feb 2026 08:41:18 +0100 Subject: [PATCH 010/144] fix: lint and type errors in sys_utils_nixos.py --- python/PiFinder/sys_utils_nixos.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/python/PiFinder/sys_utils_nixos.py b/python/PiFinder/sys_utils_nixos.py index 943e8c495..90bac2aa4 100644 --- a/python/PiFinder/sys_utils_nixos.py +++ b/python/PiFinder/sys_utils_nixos.py @@ -16,15 +16,15 @@ import zipfile import logging from pathlib import Path +from typing import Optional import requests - -import dbus -import pam -import gi +import dbus # type: ignore[import-not-found] +import pam # type: ignore[import-not-found] +import gi # type: ignore[import-not-found] gi.require_version("NM", "1.0") -from gi.repository import GLib, NM +from gi.repository import GLib, NM # type: ignore[import-not-found] # noqa: E402 from PiFinder import utils @@ -424,7 +424,7 @@ def shutdown() -> None: UPGRADE_REF_FILE = Path("/run/pifinder/upgrade-ref") -def fetch_version_manifest() -> dict | None: +def fetch_version_manifest() -> Optional[dict]: """Fetch the channel/version manifest from GitHub.""" try: resp = requests.get(VERSIONS_URL, timeout=10) @@ -542,7 +542,7 @@ def switch_camera(cam_type: str) -> None: Requires reboot (dtoverlay change). """ logger.info("SYS: Switching camera to %s via nixos-rebuild", cam_type) - flake_path = str(utils.pifinder_home) + flake_path = str(utils.pifinder_dir) result = _run([ "sudo", "nixos-rebuild", "switch", "--flake", f"{flake_path}#pifinder-{cam_type}", From 60004827b6b73dc3385da3d4ba42c1e96c9689fa Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Thu, 5 Feb 2026 08:46:36 +0100 Subject: [PATCH 011/144] fix: swap noqa/type-ignore comment order for ruff --- python/PiFinder/sys_utils_nixos.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/PiFinder/sys_utils_nixos.py b/python/PiFinder/sys_utils_nixos.py index 90bac2aa4..15971c726 100644 --- a/python/PiFinder/sys_utils_nixos.py +++ b/python/PiFinder/sys_utils_nixos.py @@ -24,7 +24,7 @@ import gi # type: ignore[import-not-found] gi.require_version("NM", "1.0") -from gi.repository import GLib, NM # type: ignore[import-not-found] # noqa: E402 +from gi.repository import GLib, NM # noqa: E402 # type: ignore[import-not-found] from PiFinder import utils From 001751db469ab1e9f2efbf2a4ed7f51e05ccf93c Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Thu, 5 Feb 2026 09:01:53 +0100 Subject: [PATCH 012/144] fix: name SD image with version tag --- .github/workflows/release.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b2a2e9d78..e33debd27 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -66,6 +66,11 @@ jobs: nix build .#images.pifinder \ --system aarch64-linux \ -L -o result + # Rename image to include version + mkdir -p release + for f in result/sd-image/*.img.zst; do + cp "$f" "release/pifinder-${TAG}.img.zst" + done - name: Update versions.json on main run: | @@ -92,7 +97,7 @@ jobs: uses: actions/upload-artifact@v4 with: name: pifinder-sd-image - path: result/sd-image/*.img.zst + path: release/pifinder-*.img.zst retention-days: 90 - name: Create GitHub Release @@ -102,4 +107,4 @@ jobs: name: PiFinder ${{ env.TAG }} body: ${{ inputs.notes }} prerelease: ${{ inputs.type == 'beta' }} - files: result/sd-image/*.img.zst + files: release/pifinder-*.img.zst From 9c361a60aad7b16527cf9e4580fb284c6e569a08 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Thu, 5 Feb 2026 20:13:14 +0100 Subject: [PATCH 013/144] fix: add sys_utils_base.py to tracked files Untracked file was excluded from Nix flake source tree, causing "No module named 'PiFinder.sys_utils_base'" on SD card boot. Co-Authored-By: Claude Opus 4.5 --- python/PiFinder/sys_utils_base.py | 149 ++++++++++++++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 python/PiFinder/sys_utils_base.py diff --git a/python/PiFinder/sys_utils_base.py b/python/PiFinder/sys_utils_base.py new file mode 100644 index 000000000..0366c13b3 --- /dev/null +++ b/python/PiFinder/sys_utils_base.py @@ -0,0 +1,149 @@ +""" +Abstract base for PiFinder system utilities. + +Defines the public API contract and shared implementations used by all +platform backends (Debian, NixOS, fake/testing). +""" + +import logging +import socket +import zipfile +from abc import ABC, abstractmethod +from pathlib import Path + +from PiFinder import utils + +BACKUP_PATH = str(utils.data_dir / "PiFinder_backup.zip") + +logger = logging.getLogger("SysUtils") + + +# --------------------------------------------------------------------------- +# Network ABC — shared + abstract methods +# --------------------------------------------------------------------------- + + +class NetworkBase(ABC): + """Base class for platform-specific Network implementations.""" + + _wifi_mode: str = "Client" + _wifi_networks: list = [] + + def get_host_name(self) -> str: + return socket.gethostname() + + def local_ip(self) -> str: + if self._wifi_mode == "AP": + return "10.10.10.1" + s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + try: + s.connect(("192.255.255.255", 1)) + ip = s.getsockname()[0] + except Exception: + ip = "NONE" + finally: + s.close() + return ip + + def wifi_mode(self) -> str: + return self._wifi_mode + + def get_wifi_networks(self): + return self._wifi_networks + + def set_wifi_mode(self, mode: str) -> None: + if mode == self._wifi_mode: + return + if mode == "AP": + self._go_ap() + elif mode == "Client": + self._go_client() + self._wifi_mode = mode + + @abstractmethod + def _go_ap(self) -> None: ... + + @abstractmethod + def _go_client(self) -> None: ... + + @abstractmethod + def populate_wifi_networks(self) -> None: ... + + @abstractmethod + def delete_wifi_network(self, network_id) -> None: ... + + @abstractmethod + def add_wifi_network(self, ssid, key_mgmt, psk=None) -> None: ... + + @abstractmethod + def get_ap_name(self) -> str: ... + + @abstractmethod + def set_ap_name(self, ap_name: str) -> None: ... + + @abstractmethod + def get_connected_ssid(self) -> str: ... + + @abstractmethod + def set_host_name(self, hostname: str) -> None: ... + + +# --------------------------------------------------------------------------- +# Backup / restore (stdlib zipfile — portable across all platforms) +# --------------------------------------------------------------------------- + + +def remove_backup() -> None: + """Removes backup file.""" + path = Path(BACKUP_PATH) + if path.exists(): + path.unlink() + + +def backup_userdata() -> str: + """ + Back up userdata to a single zip file. + + Backs up: + config.json + observations.db + obslists/* + """ + remove_backup() + + files = [ + utils.data_dir / "config.json", + utils.data_dir / "observations.db", + ] + for p in utils.data_dir.glob("obslists/*"): + files.append(p) + + with zipfile.ZipFile(BACKUP_PATH, "w", zipfile.ZIP_DEFLATED) as zf: + for filepath in files: + filepath = Path(filepath) + if filepath.exists(): + zf.write(filepath, filepath.relative_to("/")) + + return BACKUP_PATH + + +def restore_userdata(zip_path: str) -> None: + """ + Restore userdata from a zip backup. + OVERWRITES existing data! + """ + with zipfile.ZipFile(zip_path, "r") as zf: + zf.extractall("/") + + +# --------------------------------------------------------------------------- +# Service control (shared across Debian + NixOS) +# --------------------------------------------------------------------------- + + +def restart_pifinder() -> None: + """Restart the PiFinder service via systemctl.""" + import subprocess + + logger.info("SYS: Restarting PiFinder") + subprocess.run(["sudo", "systemctl", "restart", "pifinder"]) From a2c0f9aaf2f81d3586d6bf17b6489ae1d30cbab0 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Fri, 6 Feb 2026 22:16:51 +0100 Subject: [PATCH 014/144] fix: NixOS netboot camera, sys_utils, and solver issues - Add camera overlay (imx477) to netboot config.txt via flake.nix - Fix sys_utils import in main.py to use utils.get_sys_utils() - Add hip_main.dat fetch to pifinder-src.nix for starfield plotting - Add dma_heap udev rule for libcamera/picamera2 access - Fix shared memory naming in solver.py (remove leading /) - Add DNS nameservers for netboot environment - Document power control scripts in CLAUDE.md Co-Authored-By: Claude Opus 4.5 --- CLAUDE.md | 20 ++++++ flake.nix | 124 +++++++++++++++++++++++++++--------- nixos/hardware.nix | 8 ++- nixos/pkgs/pifinder-src.nix | 35 +++++++--- python/PiFinder/main.py | 3 +- python/PiFinder/solver.py | 26 ++++++++ 6 files changed, 174 insertions(+), 42 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index bac5f63c2..d8475a0d3 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -118,3 +118,23 @@ Tests use pytest with custom markers for different test types. The smoke tests p - **I18n Support:** Babel integration for multi-language UI The codebase follows modern Python practices with type hints, comprehensive testing, and automated code quality checks integrated into the development workflow. + +## NixOS Development + +**Netboot deployment (dev Pi on proxnix NFS):** +```bash +./deploy-image-to-nfs.sh # Build and deploy to NFS +``` + +**Power control (Shelly plug via Home Assistant):** +```bash +~/.local/bin/pifinder-power-off.sh # Turn off PiFinder +~/.local/bin/pifinder-power-on.sh # Turn on PiFinder +``` + +**Check Pi status:** +```bash +ssh pifinder@192.168.5.146 # SSH to netboot Pi +systemctl status pifinder # Check service status +journalctl -u pifinder -f # Follow service logs +``` diff --git a/flake.nix b/flake.nix index c3d9ddf11..f3575ab81 100644 --- a/flake.nix +++ b/flake.nix @@ -5,37 +5,39 @@ }; outputs = { self, nixpkgs, nixos-hardware, ... }: let - mkPifinderSystem = { includeSDImage ? false, devMode ? false }: nixpkgs.lib.nixosSystem { + # Shared modules for all PiFinder configurations + commonModules = [ + nixos-hardware.nixosModules.raspberry-pi-4 + ./nixos/hardware.nix + ./nixos/networking.nix + ./nixos/services.nix + ./nixos/python-env.nix + # Headless — strip X11, fonts, docs, desktop bloat + ({ lib, ... }: { + services.xserver.enable = false; + security.polkit.enable = true; + fonts.fontconfig.enable = false; + documentation.enable = false; + documentation.man.enable = false; + documentation.nixos.enable = false; + xdg.portal.enable = false; + services.pipewire.enable = false; + hardware.pulseaudio.enable = false; + boot.initrd.availableKernelModules = lib.mkForce [ "mmc_block" "usbhid" "usb_storage" "vc4" ]; + }) + ]; + + mkPifinderSystem = { includeSDImage ? false }: nixpkgs.lib.nixosSystem { system = "aarch64-linux"; - modules = [ - nixos-hardware.nixosModules.raspberry-pi-4 - ./nixos/hardware.nix - ./nixos/networking.nix - { pifinder.devMode = devMode; } - ./nixos/services.nix - ./nixos/python-env.nix - # Headless — strip X11, fonts, docs, desktop bloat + modules = commonModules ++ [ + { pifinder.devMode = false; } ({ lib, ... }: { - services.xserver.enable = false; - security.polkit.enable = true; - fonts.fontconfig.enable = false; - documentation.enable = false; - documentation.man.enable = false; - documentation.nixos.enable = false; - xdg.portal.enable = false; - services.pipewire.enable = false; - hardware.pulseaudio.enable = false; - boot.supportedFilesystems = lib.mkForce ([ "vfat" "ext4" ] ++ lib.optionals devMode [ "nfs" ]); - boot.initrd.availableKernelModules = lib.mkForce [ "mmc_block" "usbhid" "usb_storage" "vc4" ]; - # NFS netboot support (dev mode only) - NFS and ethernet are built into RPi kernel - boot.initrd.supportedFilesystems = lib.mkIf devMode [ "nfs" ]; - boot.initrd.network.enable = devMode; + boot.supportedFilesystems = lib.mkForce [ "vfat" "ext4" ]; }) ] ++ nixpkgs.lib.optionals includeSDImage [ "${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix" ] ++ nixpkgs.lib.optionals (!includeSDImage) [ # Minimal filesystem stub for closure builds (CI) - # The SD image module provides real filesystems; this is just for evaluation ({ lib, ... }: { fileSystems."/" = { device = "/dev/disk/by-label/NIXOS_SD"; @@ -48,18 +50,80 @@ }) ]; }; + + # Netboot configuration — NFS root, DHCP network in initrd + mkPifinderNetboot = nixpkgs.lib.nixosSystem { + system = "aarch64-linux"; + modules = commonModules ++ [ + { pifinder.devMode = true; } + { pifinder.cameraType = "imx477"; } # HQ camera for netboot dev + ({ lib, pkgs, ... }: { + # Static passwd/group — NFS can't run activation scripts + users.mutableUsers = false; + # DNS for netboot (udhcpc doesn't configure resolvconf properly) + networking.nameservers = [ "192.168.5.1" "8.8.8.8" ]; + boot.supportedFilesystems = lib.mkForce [ "vfat" "ext4" "nfs" ]; + boot.initrd.supportedFilesystems = [ "nfs" ]; + # Override the minimal module list from commonModules — add network drivers + # Note: genet (RPi4 ethernet) is built into the kernel, not a module + boot.initrd.availableKernelModules = lib.mkForce [ + "mmc_block" "usbhid" "usb_storage" "vc4" + ]; + # Disable predictable interface names so eth0 works + boot.kernelParams = [ "net.ifnames=0" "biosdevname=0" ]; + boot.initrd.network = { + enable = true; + }; + # Manually configure network before NFS mount + boot.initrd.postDeviceCommands = '' + # Wait for interface to appear + for i in $(seq 1 30); do + if ip link show eth0 >/dev/null 2>&1; then + break + fi + sleep 0.5 + done + + ip link set eth0 up + udhcpc -i eth0 -t 10 -T 3 -n -q -s /etc/udhcpc.script || true + ip addr show eth0 + ''; + # NFS root filesystem + fileSystems."/" = { + device = "192.168.5.12:/srv/nfs/pifinder"; + fsType = "nfs"; + options = [ "vers=3" "tcp" "nolock" ]; + }; + # Dummy /boot — not used for netboot but NixOS requires it + fileSystems."/boot" = { + device = "none"; + fsType = "tmpfs"; + neededForBoot = false; + }; + }) + ]; + }; + # Custom u-boot with network boot prioritized for netboot + # Uses direct commands since bootcmd_* env vars may not be defined + pkgsAarch64 = import nixpkgs { system = "aarch64-linux"; }; + ubootNetboot = pkgsAarch64.ubootRaspberryPi4_64bit.override { + extraConfig = '' + CONFIG_BOOTCOMMAND="pci enum; dhcp; pxe get; pxe boot" + ''; + }; in { nixosConfigurations = { - # Single universal build - camera selected at runtime via /boot/camera.txt + # SD card boot — camera selected at runtime via /boot/camera.txt pifinder = mkPifinderSystem {}; - # Dev config (NFS netboot support) - pifinder-dev = mkPifinderSystem { devMode = true; }; + # NFS netboot — for development on proxnix + pifinder-netboot = mkPifinderNetboot; }; images = { - # Single universal image - camera selected at runtime via /boot/camera.txt + # SD card image pifinder = (mkPifinderSystem { includeSDImage = true; }).config.system.build.sdImage; - # Dev image (NFS netboot support, larger initrd) - pifinder-dev = (mkPifinderSystem { includeSDImage = true; devMode = true; }).config.system.build.sdImage; + }; + packages.aarch64-linux = { + uboot-netboot = ubootNetboot; }; }; } diff --git a/nixos/hardware.nix b/nixos/hardware.nix index 812e53f68..4cc935fdb 100644 --- a/nixos/hardware.nix +++ b/nixos/hardware.nix @@ -79,14 +79,18 @@ services.udev.extraRules = '' SUBSYSTEM=="spidev", GROUP="spi", MODE="0660" SUBSYSTEM=="i2c-dev", GROUP="i2c", MODE="0660" - SUBSYSTEM=="pwm", GROUP="gpio", MODE="0660" SUBSYSTEM=="gpio", GROUP="gpio", MODE="0660" + KERNEL=="gpiomem", GROUP="gpio", MODE="0660" KERNEL=="ttyAMA1", GROUP="dialout", MODE="0660" + # DMA heap for libcamera/picamera2 (CMA memory allocation) + SUBSYSTEM=="dma_heap", GROUP="video", MODE="0660" ''; + users.users.root.initialPassword = "solveit"; users.users.pifinder = { isNormalUser = true; - extraGroups = [ "spi" "i2c" "gpio" "dialout" "video" "networkmanager" ]; + initialPassword = "solveit"; + extraGroups = [ "spi" "i2c" "gpio" "dialout" "video" "networkmanager" "systemd-journal" "input" "kmem" ]; }; users.groups = { spi = {}; diff --git a/nixos/pkgs/pifinder-src.nix b/nixos/pkgs/pifinder-src.nix index 7b8b4b3e6..fd5bb6f1e 100644 --- a/nixos/pkgs/pifinder-src.nix +++ b/nixos/pkgs/pifinder-src.nix @@ -1,4 +1,18 @@ { pkgs }: +let + tetra3-src = pkgs.fetchFromGitHub { + owner = "smroid"; + repo = "cedar-solve"; + rev = "38c3f48f57d1005e9b65cbb26136f9f13ec0a1b0"; + hash = "sha256-63Jc5xuJpAZ2UcdKk19MmwuXpix8EBzNNbJzLbl0VyU="; + }; + + # Hipparcos star catalog for starfield plotting + hip_main = pkgs.fetchurl { + url = "https://cdsarc.cds.unistra.fr/ftp/cats/I/239/hip_main.dat"; + sha256 = "1q0n6sa55z92bad8gy6r9axkd802798nxkipjh6iciyn0jqspkjq"; + }; +in pkgs.stdenv.mkDerivation { pname = "pifinder-src"; version = "0.0.1"; @@ -9,16 +23,21 @@ pkgs.stdenv.mkDerivation { installPhase = '' mkdir -p $out - # Python source (the application) - cp -r $src/python $out/python + # Copy everything except build artifacts and non-runtime directories + cp -r --no-preserve=mode $src/* $out/ || true - # Astronomical data (catalogs, star patterns, etc.) - cp -r $src/astro_data $out/astro_data + # Remove directories not needed at runtime + rm -rf $out/.git $out/.github $out/nixos $out/result* $out/.venv + rm -rf $out/case $out/docs $out/gerbers $out/kicad + rm -rf $out/migration_source $out/pi_config_files $out/scripts + rm -rf $out/bin - # Default config at repo root level - cp $src/default_config.json $out/default_config.json + # tetra3/cedar-solve is a git submodule — Nix doesn't include submodule + # contents, so we fetch it separately and graft it into the source tree. + rm -rf $out/python/PiFinder/tetra3 + cp -r ${tetra3-src} $out/python/PiFinder/tetra3 - # Version info - cp $src/versions.json $out/versions.json + # Hipparcos catalog is gitignored (51MB), fetch and include for starfield plotting + cp ${hip_main} $out/astro_data/hip_main.dat ''; } diff --git a/python/PiFinder/main.py b/python/PiFinder/main.py index 28ba07de4..eefc8ace3 100644 --- a/python/PiFinder/main.py +++ b/python/PiFinder/main.py @@ -982,8 +982,7 @@ def main( # verify and sync GPSD baud rate try: - from PiFinder import sys_utils - + sys_utils = utils.get_sys_utils() baud_rate = cfg.get_option( "gps_baud_rate", 9600 ) # Default to 9600 if not set diff --git a/python/PiFinder/solver.py b/python/PiFinder/solver.py index 4d8b2e21d..02fde68df 100644 --- a/python/PiFinder/solver.py +++ b/python/PiFinder/solver.py @@ -25,6 +25,7 @@ from PiFinder.state import SQM as SQMState sys.path.append(str(utils.tetra3_dir)) +sys.path.append(str(utils.tetra3_dir / "tetra3")) import tetra3 from tetra3 import cedar_detect_client @@ -175,6 +176,31 @@ def _get_stub(self): ) return self._stub + def _alloc_shmem(self, size): + """Override to fix shared memory name (no leading / for Python's SharedMemory).""" + from multiprocessing import shared_memory + + if self._shmem is not None and size > self._shmem_size: + self._shmem.close() + self._shmem.unlink() + self._shmem = None + if self._shmem is None: + # Use name without leading / - Python's SharedMemory adds it automatically + self._shmem = shared_memory.SharedMemory( + "cedar_detect_image", create=True, size=size + ) + self._shmem_size = size + + def _del_shmem(self): + """Override to match _alloc_shmem naming.""" + if self._shmem is not None: + self._shmem.close() + try: + self._shmem.unlink() + except FileNotFoundError: + pass + self._shmem = None + def extract_centroids(self, image, sigma, max_size, use_binned, detect_hot_pixels=True): """Override to raise CedarConnectionError on gRPC failure instead of returning empty list.""" import numpy as np From 34dca88afd0cf86ce51881551862b73fc20c81a8 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Fri, 6 Feb 2026 22:50:39 +0100 Subject: [PATCH 015/144] feat: runtime camera selection via /boot/camera.txt for SD cards - Add runtimeCameraSelection option to hardware.nix (default: true) - SD image includes config.txt with "include camera.txt" directive - Users can edit camera.txt and reboot to switch cameras - Supported cameras: imx296, imx290 (imx462), imx477 - Fix cameraDriver scope in hardware.nix (moved to top-level let) - Add sudoers rules for systemctl stop/start pifinder.service - Add DMA heap udev rule for libcamera video group access - Netboot config sets cameraType = "imx477" for HQ camera dev Co-Authored-By: Claude Opus 4.5 --- flake.nix | 63 ++++++++++++++++++++++++++++++++++++++++++++++ nixos/hardware.nix | 51 ++++++++++++++++++++++++++++--------- nixos/services.nix | 27 ++++++++++++++++++++ 3 files changed, 129 insertions(+), 12 deletions(-) diff --git a/flake.nix b/flake.nix index f3575ab81..8036ed53a 100644 --- a/flake.nix +++ b/flake.nix @@ -36,6 +36,69 @@ }) ] ++ nixpkgs.lib.optionals includeSDImage [ "${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix" + # Runtime camera selection via /boot/camera.txt + ({ config, pkgs, lib, ... }: + let + # Custom config.txt with camera.txt include + configTxt = pkgs.writeText "config.txt" '' + [pi3] + kernel=u-boot-rpi3.bin + + [pi02] + kernel=u-boot-rpi3.bin + + [pi4] + kernel=u-boot-rpi4.bin + enable_gic=1 + armstub=armstub8-gic.bin + + disable_overscan=1 + arm_boost=1 + + [cm4] + otg_mode=1 + + [all] + arm_64bit=1 + enable_uart=1 + avoid_warnings=1 + + # Camera overlay - edit camera.txt and reboot to change camera + include camera.txt + ''; + + cameraTxt = pkgs.writeText "camera.txt" '' + # PiFinder Camera Configuration + # Edit this file and reboot to switch cameras + # Options: imx296, imx290 (for imx462), imx477 + dtoverlay=imx296 + ''; + in { + sdImage.populateFirmwareCommands = lib.mkForce '' + (cd ${pkgs.raspberrypifw}/share/raspberrypi/boot && cp bootcode.bin fixup*.dat start*.elf $NIX_BUILD_TOP/firmware/) + + # Custom config.txt with camera.txt include + cp ${configTxt} firmware/config.txt + cp ${cameraTxt} firmware/camera.txt + + # Pi3 files + cp ${pkgs.ubootRaspberryPi3_64bit}/u-boot.bin firmware/u-boot-rpi3.bin + cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2710-rpi-2-b.dtb firmware/ + cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2710-rpi-3-b.dtb firmware/ + cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2710-rpi-3-b-plus.dtb firmware/ + cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2710-rpi-cm3.dtb firmware/ + cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2710-rpi-zero-2.dtb firmware/ + cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2710-rpi-zero-2-w.dtb firmware/ + + # Pi4 files + cp ${pkgs.ubootRaspberryPi4_64bit}/u-boot.bin firmware/u-boot-rpi4.bin + cp ${pkgs.raspberrypi-armstubs}/armstub8-gic.bin firmware/armstub8-gic.bin + cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2711-rpi-4-b.dtb firmware/ + cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2711-rpi-400.dtb firmware/ + cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2711-rpi-cm4.dtb firmware/ + cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2711-rpi-cm4s.dtb firmware/ + ''; + }) ] ++ nixpkgs.lib.optionals (!includeSDImage) [ # Minimal filesystem stub for closure builds (CI) ({ lib, ... }: { diff --git a/nixos/hardware.nix b/nixos/hardware.nix index 4cc935fdb..ab46da0f7 100644 --- a/nixos/hardware.nix +++ b/nixos/hardware.nix @@ -1,9 +1,30 @@ { config, lib, pkgs, ... }: -{ - options.pifinder.cameraType = lib.mkOption { - type = lib.types.enum [ "imx296" "imx462" "imx477" ]; - default = "imx296"; - description = "Camera sensor type for PiFinder"; +let + cfg = config.pifinder; + + # Camera driver name mapping + cameraDriver = { + imx296 = "imx296"; + imx462 = "imx290"; # imx462 uses imx290 driver + imx477 = "imx477"; + }.${cfg.cameraType}; +in { + options.pifinder = { + cameraType = lib.mkOption { + type = lib.types.enum [ "imx296" "imx462" "imx477" ]; + default = "imx296"; + description = "Camera sensor type for PiFinder"; + }; + + runtimeCameraSelection = lib.mkOption { + type = lib.types.bool; + default = true; + description = '' + Enable runtime camera selection via /boot/camera.txt. + When true, camera overlay is loaded via config.txt include (SD card). + When false, camera overlay is baked into device tree (netboot). + ''; + }; }; config = { @@ -57,13 +78,8 @@ ''; }; - # Camera dtoverlay — driver depends on selected camera type - cameraDriver = { - imx296 = "imx296"; - imx462 = "imx290"; - imx477 = "imx477"; - }.${config.pifinder.cameraType}; - + # Camera dtoverlay — only bake into device tree when NOT using runtime selection + # For SD cards (runtimeCameraSelection=true), overlay is loaded via config.txt cameraOverlay = { name = "${cameraDriver}-camera"; dtboFile = "${pkgs.raspberrypifw}/share/raspberrypi/boot/overlays/${cameraDriver}.dtbo"; @@ -72,9 +88,20 @@ spi0Overlay uart3Overlay pwmOverlay + ] ++ lib.optionals (!cfg.runtimeCameraSelection) [ cameraOverlay ]; + # Runtime camera selection: create /boot/camera.txt with default overlay + # User can edit this file and reboot to switch cameras + environment.etc."camera.txt.default" = lib.mkIf cfg.runtimeCameraSelection { + text = '' + # Camera overlay - edit and reboot to change camera + # Options: imx296, imx290 (for imx462), imx477 + dtoverlay=${cameraDriver} + ''; + }; + # udev rules for hardware access without root services.udev.extraRules = '' SUBSYSTEM=="spidev", GROUP="spi", MODE="0660" diff --git a/nixos/services.nix b/nixos/services.nix index 5d4af30a5..4f2a45093 100644 --- a/nixos/services.nix +++ b/nixos/services.nix @@ -68,6 +68,31 @@ in { "d /run/pifinder 0755 pifinder pifinder -" ]; + # --------------------------------------------------------------------------- + # PWM permissions setup for keypad backlight + # --------------------------------------------------------------------------- + systemd.services.pwm-permissions = { + description = "Set PWM sysfs permissions for pifinder"; + before = [ "pifinder.service" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + }; + script = '' + # Export PWM channel 1 (GPIO 13) if not already exported + if [ ! -d /sys/class/pwm/pwmchip0/pwm1 ]; then + echo 1 > /sys/class/pwm/pwmchip0/export || true + sleep 0.5 + fi + # sysfs doesn't support chgrp, so make files world-writable + chmod 0666 /sys/class/pwm/pwmchip0/export /sys/class/pwm/pwmchip0/unexport + if [ -d /sys/class/pwm/pwmchip0/pwm1 ]; then + chmod 0666 /sys/class/pwm/pwmchip0/pwm1/{enable,period,duty_cycle,polarity} + fi + ''; + }; + # --------------------------------------------------------------------------- # PiFinder source + data directory setup # --------------------------------------------------------------------------- @@ -115,6 +140,8 @@ in { { command = "/run/current-system/sw/bin/systemctl start pifinder-upgrade.service"; options = [ "NOPASSWD" ]; } { command = "/run/current-system/sw/bin/systemctl reset-failed pifinder-upgrade.service"; options = [ "NOPASSWD" ]; } { command = "/run/current-system/sw/bin/systemctl restart pifinder.service"; options = [ "NOPASSWD" ]; } + { command = "/run/current-system/sw/bin/systemctl stop pifinder.service"; options = [ "NOPASSWD" ]; } + { command = "/run/current-system/sw/bin/systemctl start pifinder.service"; options = [ "NOPASSWD" ]; } { command = "/run/current-system/sw/bin/systemctl restart avahi-daemon.service"; options = [ "NOPASSWD" ]; } { command = "/run/current-system/sw/bin/nixos-rebuild *"; options = [ "NOPASSWD" ]; } { command = "/run/current-system/sw/bin/shutdown *"; options = [ "NOPASSWD" ]; } From d12ca7a2fe18bf13b60239f084dd22868e5cb89b Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Sat, 7 Feb 2026 10:11:50 +0100 Subject: [PATCH 016/144] feat(nixos): refactor sys_utils and add netboot deploy script - Refactor sys_utils modules to use common base class - Add sys_utils_nixos.py for NixOS-specific implementations - Add get_sys_utils() detection in utils.py for platform selection - Add flake.lock for reproducible builds - Add NetworkManager config to networking.nix - Add deploy-image-to-nfs.sh for netboot development workflow Co-Authored-By: Claude Opus 4.5 --- deploy-image-to-nfs.sh | 368 +++++++++++++++++++++++++++++ flake.lock | 43 ++++ nixos/networking.nix | 17 ++ python/PiFinder/sys_utils.py | 119 ++-------- python/PiFinder/sys_utils_fake.py | 127 +++------- python/PiFinder/sys_utils_nixos.py | 211 +++++++---------- python/PiFinder/utils.py | 15 +- 7 files changed, 584 insertions(+), 316 deletions(-) create mode 100755 deploy-image-to-nfs.sh create mode 100644 flake.lock diff --git a/deploy-image-to-nfs.sh b/deploy-image-to-nfs.sh new file mode 100755 index 000000000..2306f6074 --- /dev/null +++ b/deploy-image-to-nfs.sh @@ -0,0 +1,368 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Deploy PiFinder NixOS netboot configuration to proxnix +# +# Builds the pifinder-netboot closure (NFS root baked in), copies the nix store +# closure to NFS, and sets up TFTP with kernel/initrd/firmware for PXE boot. +# +# Boot sequence: Pi firmware → u-boot → extlinux/extlinux.conf (TFTP) → NFS root + +PROXNIX="mike@192.168.5.12" +NFS_ROOT="/srv/nfs/pifinder" +TFTP_ROOT="/srv/tftp" +PI_IP="192.168.5.150" +PI_MAC="e4-5f-01-b7-37-31" # For PXE boot speedup + +SSH_PUBKEY="ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGrPg9hSgxwg0EECxXSpYi7t3F/w/BgpymlD1uUDedRz mike@nixtop" + +# Password hash for "solveit" +SHADOW_HASH='$6$upbQ1/Jfh7zDiIYW$jPVQdYJCZn/Pe/OIGx89DZm9trIhEJp7Q4LNZsq/5x9csj6U08.P2avebrQIDJCEyD0xipsV6C19Sr5iAbCuv1' + +# ── Helpers ────────────────────────────────────────────────────────────────── + +run_proxnix() { + ssh "${PROXNIX}" "bash -euo pipefail -c \"$1\"" +} + +# ── Build netboot closure ──────────────────────────────────────────────────── + +echo "=== Building pifinder-netboot closure ===" +nix build .#nixosConfigurations.pifinder-netboot.config.system.build.toplevel \ + -o result-netboot --system aarch64-linux + +CLOSURE=$(readlink -f result-netboot) +echo "Closure: $CLOSURE" + +# Extract camera type from NixOS config for config.txt dtoverlay +CAMERA_TYPE=$(nix eval .#nixosConfigurations.pifinder-netboot.config.pifinder.cameraType --raw) +echo "Camera: $CAMERA_TYPE" + +# Extract paths from closure +KERNEL=$(readlink -f result-netboot/kernel) +INITRD=$(readlink -f result-netboot/initrd) +DTBS=$(readlink -f result-netboot/dtbs) +INIT_PATH="${CLOSURE}/init" + +KERNEL_NAME=$(basename "$(dirname "$KERNEL")")-Image +INITRD_NAME=$(basename "$(dirname "$INITRD")")-initrd + +echo "Kernel: $KERNEL" +echo "Initrd: $INITRD" +echo "DTBs: $DTBS" +echo "Init: $INIT_PATH" + +# ── Stop TFTP — prevent Pi from netbooting during deploy ───────────────────── + +echo "Stopping TFTP server..." +ssh "${PROXNIX}" "sudo systemctl stop atftpd.service" + +# ── Halt Pi if running — prevent NFS corruption ────────────────────────────── + +if ssh -o ConnectTimeout=3 -o BatchMode=yes "pifinder@${PI_IP}" "echo ok" 2>/dev/null; then + echo "Pi is running — halting..." + ssh "pifinder@${PI_IP}" "echo solveit | sudo -S poweroff" 2>/dev/null || true + echo "Waiting for Pi to go down..." + sleep 3 + while ping -c1 -W1 "${PI_IP}" &>/dev/null; do sleep 1; done + echo "Pi is down" +else + echo "Pi not reachable, proceeding" +fi + +# ── Backup SSH host keys ───────────────────────────────────────────────────── + +echo "Backing up SSH host keys..." +ssh "${PROXNIX}" "sudo cp -a ${NFS_ROOT}/etc/ssh/ssh_host_* /tmp/ 2>/dev/null || true" + +# ── Copy nix store closure to NFS ──────────────────────────────────────────── + +echo "Copying nix store closure to NFS (this may take a while)..." +# Create nix store directory on remote +ssh "${PROXNIX}" "sudo mkdir -p ${NFS_ROOT}/nix/store" + +# Get all store paths and rsync them in one go +STORE_PATHS=$(nix path-info -r "$CLOSURE" | tr '\n' ' ') +echo "Transferring $(echo $STORE_PATHS | wc -w) store paths..." +# shellcheck disable=SC2086 +rsync -avz --rsync-path="sudo rsync" $STORE_PATHS "${PROXNIX}:${NFS_ROOT}/nix/store/" + +# ── Set up NFS root directory structure ────────────────────────────────────── + +echo "Setting up NFS root directory structure..." +ssh "${PROXNIX}" "sudo bash -euo pipefail" << SETUP +# Create standard directories (bin/usr are symlinks, not dirs) +mkdir -p ${NFS_ROOT}/{etc/ssh,home/pifinder/.ssh,root/.ssh,var,tmp,proc,sys,dev,run,boot} +chmod 1777 ${NFS_ROOT}/tmp + +# Symlinks from NixOS system (remove existing dirs/symlinks first) +rm -rf ${NFS_ROOT}/bin ${NFS_ROOT}/usr +ln -sfT ${CLOSURE}/sw/bin ${NFS_ROOT}/bin +ln -sfT ${CLOSURE}/sw ${NFS_ROOT}/usr +ln -sfT ${CLOSURE}/etc/bashrc ${NFS_ROOT}/etc/bashrc 2>/dev/null || true + +# Create nix profile symlinks +mkdir -p ${NFS_ROOT}/nix/var/nix/profiles +ln -sfT ${CLOSURE} ${NFS_ROOT}/nix/var/nix/profiles/system +ln -sfT ${CLOSURE} ${NFS_ROOT}/run/current-system 2>/dev/null || true +SETUP + +# ── Restore SSH host keys ──────────────────────────────────────────────────── + +echo "Restoring/generating SSH host keys..." +ssh "${PROXNIX}" "bash -euo pipefail -c ' +if ls /tmp/ssh_host_* >/dev/null 2>&1; then + sudo cp -a /tmp/ssh_host_* ${NFS_ROOT}/etc/ssh/ + echo \"Restored existing host keys\" +else + sudo ssh-keygen -A -f ${NFS_ROOT} + echo \"Generated new host keys\" +fi +'" + +# ── Link NixOS /etc files ──────────────────────────────────────────────────── + +echo "Linking NixOS etc files..." +ssh "${PROXNIX}" "sudo bash -euo pipefail -c ' +ln -sf ${CLOSURE}/etc/ssh/sshd_config ${NFS_ROOT}/etc/ssh/sshd_config +ln -sf ${CLOSURE}/etc/ssh/ssh_config ${NFS_ROOT}/etc/ssh/ssh_config 2>/dev/null || true +ln -sf ${CLOSURE}/etc/ssh/moduli ${NFS_ROOT}/etc/ssh/moduli 2>/dev/null || true +ln -sfT ${CLOSURE}/etc/pam.d ${NFS_ROOT}/etc/pam.d +ln -sf ${CLOSURE}/etc/nsswitch.conf ${NFS_ROOT}/etc/nsswitch.conf 2>/dev/null || true +'" + +# ── Static user files ──────────────────────────────────────────────────────── + +echo "Creating static user files..." + +ssh "${PROXNIX}" "sudo tee ${NFS_ROOT}/etc/passwd > /dev/null" << 'PASSWD' +root:x:0:0:System administrator:/root:/run/current-system/sw/bin/bash +pifinder:x:1000:100::/home/pifinder:/run/current-system/sw/bin/bash +nobody:x:65534:65534:Unprivileged account:/var/empty:/run/current-system/sw/bin/nologin +sshd:x:993:993:SSH daemon user:/var/empty:/run/current-system/sw/bin/nologin +avahi:x:994:994:Avahi daemon user:/var/empty:/run/current-system/sw/bin/nologin +gpsd:x:992:992:GPSD daemon user:/var/empty:/run/current-system/sw/bin/nologin +PASSWD + +ssh "${PROXNIX}" "sudo tee ${NFS_ROOT}/etc/group > /dev/null" << 'GROUP' +root:x:0: +wheel:x:1:pifinder +users:x:100:pifinder +kmem:x:9:pifinder +input:x:174:pifinder +nobody:x:65534: +spi:x:996:pifinder +i2c:x:997:pifinder +gpio:x:998:pifinder +dialout:x:995:pifinder +video:x:994:pifinder +networkmanager:x:993:pifinder +sshd:x:993: +avahi:x:994: +gpsd:x:992: +GROUP + +ssh "${PROXNIX}" "echo 'root:${SHADOW_HASH}:1:::::: +pifinder:${SHADOW_HASH}:1:::::: +nobody:!:1:::::: +sshd:!:1:::::: +avahi:!:1:::::: +gpsd:!:1::::::' | sudo tee ${NFS_ROOT}/etc/shadow > /dev/null" + +run_proxnix "sudo chmod 644 ${NFS_ROOT}/etc/passwd ${NFS_ROOT}/etc/group" +run_proxnix "sudo chmod 640 ${NFS_ROOT}/etc/shadow" + +# ── SSH authorized_keys ────────────────────────────────────────────────────── + +echo "Setting up SSH authorized_keys..." +ssh "${PROXNIX}" "echo '${SSH_PUBKEY}' | sudo tee ${NFS_ROOT}/home/pifinder/.ssh/authorized_keys > /dev/null" +ssh "${PROXNIX}" "echo '${SSH_PUBKEY}' | sudo tee ${NFS_ROOT}/root/.ssh/authorized_keys > /dev/null" +run_proxnix "sudo chown -R 1000:100 ${NFS_ROOT}/home/pifinder" +run_proxnix "sudo chmod 700 ${NFS_ROOT}/home/pifinder/.ssh ${NFS_ROOT}/root/.ssh" +run_proxnix "sudo chmod 600 ${NFS_ROOT}/home/pifinder/.ssh/authorized_keys ${NFS_ROOT}/root/.ssh/authorized_keys" + +# ── PiFinder symlink ───────────────────────────────────────────────────────── + +echo "Setting up PiFinder directory..." +# Find pifinder-src from the current closure (not just any old one in the store) +PFSRC_REL=$(nix path-info -r "$CLOSURE" | grep pifinder-src | head -1) +echo "PiFinder source from closure: $PFSRC_REL" +ssh "${PROXNIX}" "sudo bash -euo pipefail -c ' +PFSRC=\"${NFS_ROOT}${PFSRC_REL}\" +if [ ! -d \"\$PFSRC\" ]; then + echo \"ERROR: pifinder-src not found: \$PFSRC\" + exit 1 +fi +PFHOME=${NFS_ROOT}/home/pifinder/PiFinder + +echo \"PiFinder source: ${PFSRC_REL}\" + +[ -L \"\$PFHOME\" ] && rm \"\$PFHOME\" +[ -d \"\$PFHOME\" ] && rm -rf \"\$PFHOME\" + +ln -sfT \"${PFSRC_REL}\" \"\$PFHOME\" + +mkdir -p ${NFS_ROOT}/home/pifinder/PiFinder_data +chown 1000:100 ${NFS_ROOT}/home/pifinder/PiFinder_data +'" + +# ── Copy firmware to TFTP (from raspberrypi firmware package) ──────────────── + +echo "Copying firmware to TFTP..." +FW_PKG=$(nix build nixpkgs#raspberrypifw --print-out-paths --system aarch64-linux 2>/dev/null) +ssh "${PROXNIX}" "sudo mkdir -p ${TFTP_ROOT}" + +# Copy firmware files +rsync -avz "${FW_PKG}/share/raspberrypi/boot/"*.{elf,dat,bin,dtb} "${PROXNIX}:/tmp/fw/" +ssh "${PROXNIX}" "sudo cp /tmp/fw/* ${TFTP_ROOT}/ && rm -rf /tmp/fw" + +# Copy custom u-boot with network boot priority +UBOOT=$(nix build .#packages.aarch64-linux.uboot-netboot --print-out-paths --system aarch64-linux 2>/dev/null) +echo "Using custom u-boot: $UBOOT" +rsync -avz "${UBOOT}/u-boot.bin" "${PROXNIX}:/tmp/u-boot-rpi4.bin" +ssh "${PROXNIX}" "sudo mv /tmp/u-boot-rpi4.bin ${TFTP_ROOT}/" + +# ── Copy kernel, initrd, DTBs to TFTP ──────────────────────────────────────── + +echo "Copying kernel/initrd/DTBs to TFTP..." +ssh "${PROXNIX}" "sudo mkdir -p ${TFTP_ROOT}/nixos" +rsync -avz "${KERNEL}" "${PROXNIX}:/tmp/${KERNEL_NAME}" +rsync -avz "${INITRD}" "${PROXNIX}:/tmp/${INITRD_NAME}" +ssh "${PROXNIX}" "sudo mv /tmp/${KERNEL_NAME} /tmp/${INITRD_NAME} ${TFTP_ROOT}/nixos/" + +# Copy DTBs from device-tree-overlays package +rsync -avz "${DTBS}/broadcom/" "${PROXNIX}:/tmp/dtbs/" +ssh "${PROXNIX}" "sudo cp /tmp/dtbs/*.dtb ${TFTP_ROOT}/ && sudo rm -rf /tmp/dtbs" + +# Copy overlays from kernel package +KERNEL_DIR=$(dirname "$KERNEL") +rsync -avz "${KERNEL_DIR}/dtbs/overlays/" "${PROXNIX}:/tmp/overlays/" +ssh "${PROXNIX}" "sudo rm -rf ${TFTP_ROOT}/overlays && sudo mv /tmp/overlays ${TFTP_ROOT}/" + +# ── Write config.txt for u-boot ────────────────────────────────────────────── + +echo "Writing config.txt..." +ssh "${PROXNIX}" "sudo tee ${TFTP_ROOT}/config.txt > /dev/null" << CONFIG +[pi4] +kernel=u-boot-rpi4.bin +enable_gic=1 +armstub=armstub8-gic.bin + +disable_overscan=1 +arm_boost=1 + +# Camera overlay from NixOS config +dtoverlay=${CAMERA_TYPE} + +[all] +arm_64bit=1 +enable_uart=1 +avoid_warnings=1 +CONFIG + +# ── Generate extlinux/extlinux.conf ──────────────────────────────────────────── + +echo "Generating extlinux/extlinux.conf..." +ssh "${PROXNIX}" "sudo mkdir -p ${TFTP_ROOT}/extlinux && sudo tee ${TFTP_ROOT}/extlinux/extlinux.conf > /dev/null" << EXTLINUX +TIMEOUT 10 +DEFAULT nixos-default + +LABEL nixos-default + MENU LABEL NixOS - Default + LINUX /nixos/${KERNEL_NAME} + INITRD /nixos/${INITRD_NAME} + APPEND init=${INIT_PATH} ip=dhcp console=ttyS0,115200n8 console=ttyAMA0,115200n8 console=tty0 loglevel=4 +EXTLINUX + +# ── Create pxelinux.cfg for faster MAC-based boot ───────────────────────────── + +echo "Creating pxelinux.cfg/01-${PI_MAC}..." +ssh "${PROXNIX}" "sudo mkdir -p ${TFTP_ROOT}/pxelinux.cfg && sudo ln -sf ../extlinux/extlinux.conf ${TFTP_ROOT}/pxelinux.cfg/01-${PI_MAC}" + +# ── Clean up old artifacts ─────────────────────────────────────────────────── + +echo "Cleaning up old artifacts..." +ssh "${PROXNIX}" "sudo rm -f ${TFTP_ROOT}/cmdline.txt ${TFTP_ROOT}/nixos/patched-initrd 2>/dev/null || true" +ssh "${PROXNIX}" "sudo rm -f /tmp/ssh_host_*" + +# ── Restart TFTP ───────────────────────────────────────────────────────────── + +echo "Restarting TFTP server..." +ssh "${PROXNIX}" "sudo systemctl start atftpd.service" + +# ── Verification ───────────────────────────────────────────────────────────── + +echo "" +echo "==========================================" +echo "VERIFYING DEPLOYMENT CONSISTENCY" +echo "==========================================" +VERIFY_FAILED=0 + +echo -n "Checking u-boot... " +if ssh "${PROXNIX}" "test -f ${TFTP_ROOT}/u-boot-rpi4.bin"; then + echo "OK" +else + echo "FAILED" + VERIFY_FAILED=1 +fi + +echo -n "Checking config.txt... " +if ssh "${PROXNIX}" "grep -q 'kernel=u-boot-rpi4.bin' ${TFTP_ROOT}/config.txt"; then + echo "OK" +else + echo "FAILED" + VERIFY_FAILED=1 +fi + +echo -n "Checking extlinux/extlinux.conf... " +if ssh "${PROXNIX}" "test -f ${TFTP_ROOT}/extlinux/extlinux.conf"; then + echo "OK" +else + echo "FAILED" + VERIFY_FAILED=1 +fi + +echo -n "Checking kernel... " +if ssh "${PROXNIX}" "test -f ${TFTP_ROOT}/nixos/${KERNEL_NAME}"; then + echo "OK" +else + echo "FAILED" + VERIFY_FAILED=1 +fi + +echo -n "Checking initrd... " +if ssh "${PROXNIX}" "test -f ${TFTP_ROOT}/nixos/${INITRD_NAME}"; then + echo "OK" +else + echo "FAILED" + VERIFY_FAILED=1 +fi + +echo -n "Checking NFS closure... " +if ssh "${PROXNIX}" "test -f ${NFS_ROOT}${INIT_PATH}"; then + echo "OK" +else + echo "FAILED" + VERIFY_FAILED=1 +fi + +echo -n "Checking PiFinder symlink... " +PFSRC_TARGET=$(ssh "${PROXNIX}" "readlink ${NFS_ROOT}/home/pifinder/PiFinder 2>/dev/null || true") +if [ -n "$PFSRC_TARGET" ] && ssh "${PROXNIX}" "test -d ${NFS_ROOT}${PFSRC_TARGET}/python"; then + echo "OK" +else + echo "FAILED" + VERIFY_FAILED=1 +fi + +echo "==========================================" + +if [ $VERIFY_FAILED -eq 1 ]; then + echo "=== DEPLOY FAILED VERIFICATION — DO NOT BOOT ===" + exit 1 +fi + +echo "=== Deploy complete and verified ===" +echo "" +echo "Boot chain: Pi firmware → u-boot → extlinux/extlinux.conf → NFS root" +echo "To boot the Pi: power cycle it" diff --git a/flake.lock b/flake.lock new file mode 100644 index 000000000..2608c73c0 --- /dev/null +++ b/flake.lock @@ -0,0 +1,43 @@ +{ + "nodes": { + "nixos-hardware": { + "locked": { + "lastModified": 1769302137, + "narHash": "sha256-QEDtctEkOsbx8nlFh4yqPEOtr4tif6KTqWwJ37IM2ds=", + "owner": "NixOS", + "repo": "nixos-hardware", + "rev": "a351494b0e35fd7c0b7a1aae82f0afddf4907aa8", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixos-hardware", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1751274312, + "narHash": "sha256-/bVBlRpECLVzjV19t5KMdMFWSwKLtb5RyXdjz3LJT+g=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "50ab793786d9de88ee30ec4e4c24fb4236fc2674", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-24.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "nixos-hardware": "nixos-hardware", + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/nixos/networking.nix b/nixos/networking.nix index 888cedc94..89ca51c55 100644 --- a/nixos/networking.nix +++ b/nixos/networking.nix @@ -6,6 +6,23 @@ wireless.enable = false; # NetworkManager handles WiFi }; + # Wired ethernet with DHCP (autoconnect) + environment.etc."NetworkManager/system-connections/Wired.nmconnection" = { + text = '' + [connection] + id=Wired + type=ethernet + autoconnect=true + + [ipv4] + method=auto + + [ipv6] + method=auto + ''; + mode = "0600"; + }; + # Pre-configured AP profile (activated on demand via nmcli) environment.etc."NetworkManager/system-connections/PiFinder-AP.nmconnection" = { text = '' diff --git a/python/PiFinder/sys_utils.py b/python/PiFinder/sys_utils.py index 1760edc38..21b168ec7 100644 --- a/python/PiFinder/sys_utils.py +++ b/python/PiFinder/sys_utils.py @@ -1,22 +1,26 @@ -import glob import re from typing import Dict, Any import sh -from sh import wpa_cli, unzip, su, passwd +from sh import wpa_cli, su, passwd -import socket from PiFinder import utils +from PiFinder.sys_utils_base import ( + NetworkBase, + BACKUP_PATH, # noqa: F401 + remove_backup, # noqa: F401 + backup_userdata, # noqa: F401 + restore_userdata, # noqa: F401 + restart_pifinder, # noqa: F401 +) import logging -BACKUP_PATH = "/home/pifinder/PiFinder_data/PiFinder_backup.zip" - logger = logging.getLogger("SysUtils") -class Network: +class Network(NetworkBase): """ - Provides wifi network info + Provides wifi network info via wpa_supplicant (Debian). """ def __init__(self): @@ -24,6 +28,7 @@ def __init__(self): with open(self.wifi_txt, "r") as wifi_f: self._wifi_mode = wifi_f.read() + self._wifi_networks: list = [] self.populate_wifi_networks() def populate_wifi_networks(self) -> None: @@ -72,9 +77,6 @@ def _parse_wpa_supplicant(contents: list[str]) -> list: return wifi_networks - def get_wifi_networks(self): - return self._wifi_networks - def delete_wifi_network(self, network_id): """ Immediately deletes a wifi network @@ -123,7 +125,6 @@ def add_wifi_network(self, ssid, key_mgmt, psk=None): self.populate_wifi_networks() if self._wifi_mode == "Client": - # Restart the supplicant wpa_cli("reconfigure") def get_ap_name(self): @@ -144,17 +145,13 @@ def set_ap_name(self, ap_name): new_conf.write(line) sh.sudo("cp", "/tmp/hostapd.conf", "/etc/hostapd/hostapd.conf") - def get_host_name(self): - return socket.gethostname() - def get_connected_ssid(self) -> str: """ Returns the SSID of the connected wifi network or - None if not connected or in AP mode + empty string if not connected or in AP mode """ if self.wifi_mode() == "AP": return "" - # get output from iwgetid try: iwgetid = sh.Command("iwgetid") _t = iwgetid(_ok_code=(0, 255)).strip() @@ -167,31 +164,11 @@ def set_host_name(self, hostname) -> None: return _result = sh.sudo("hostnamectl", "set-hostname", hostname) - def wifi_mode(self): - return self._wifi_mode - - def set_wifi_mode(self, mode): - if mode == self._wifi_mode: - return - if mode == "AP": - go_wifi_ap() + def _go_ap(self) -> None: + go_wifi_ap() - if mode == "Client": - go_wifi_cli() - - def local_ip(self): - if self._wifi_mode == "AP": - return "10.10.10.1" - - s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) - try: - s.connect(("192.255.255.255", 1)) - ip = s.getsockname()[0] - except Exception: - ip = "NONE" - finally: - s.close() - return ip + def _go_client(self) -> None: + go_wifi_cli() def go_wifi_ap(): @@ -206,55 +183,6 @@ def go_wifi_cli(): return True -def remove_backup(): - """ - Removes backup file - """ - sh.sudo("rm", BACKUP_PATH, _ok_code=(0, 1)) - - -def backup_userdata(): - """ - Back up userdata to a single zip file for later - restore. Returns the path to the zip file. - - Backs up: - config.json - observations.db - obslist/* - """ - - remove_backup() - - _zip = sh.Command("zip") - _zip( - BACKUP_PATH, - "/home/pifinder/PiFinder_data/config.json", - "/home/pifinder/PiFinder_data/observations.db", - glob.glob("/home/pifinder/PiFinder_data/obslists/*"), - ) - - return BACKUP_PATH - - -def restore_userdata(zip_path): - """ - Compliment to backup_userdata - restores userdata - OVERWRITES existing data! - """ - unzip("-d", "/", "-o", zip_path) - - -def restart_pifinder() -> None: - """ - Uses systemctl to restart the PiFinder - service - """ - logger.info("SYS: Restarting PiFinder") - sh.sudo("systemctl", "restart", "pifinder") - - def restart_system() -> None: """ Restarts the system @@ -338,18 +266,15 @@ def check_and_sync_gpsd_config(baud_rate: int) -> bool: logger.info(f"SYS: Checking GPSD config for baud rate {baud_rate}") try: - # Read current config with open("/etc/default/gpsd", "r") as f: content = f.read() - # Determine expected GPSD_OPTIONS if baud_rate == 115200: # NOTE: the space before -s in the next line is really needed expected_options = 'GPSD_OPTIONS=" -s 115200"' else: expected_options = 'GPSD_OPTIONS=""' - # Check if update is needed current_match = re.search(r"^GPSD_OPTIONS=.*$", content, re.MULTILINE) if current_match: current_options = current_match.group(0) @@ -357,7 +282,6 @@ def check_and_sync_gpsd_config(baud_rate: int) -> bool: logger.info("SYS: GPSD config already correct, no update needed") return False - # Update is needed logger.info(f"SYS: GPSD config mismatch, updating to {expected_options}") update_gpsd_config(baud_rate) return True @@ -371,18 +295,13 @@ def update_gpsd_config(baud_rate: int) -> None: """ Updates the GPSD configuration file with the specified baud rate and restarts the GPSD service. - - Args: - baud_rate: The baud rate to configure (9600 or 115200) """ logger.info(f"SYS: Updating GPSD config with baud rate {baud_rate}") try: - # Read the current config with open("/etc/default/gpsd", "r") as f: lines = f.readlines() - # Update GPSD_OPTIONS line updated_lines = [] for line in lines: if line.startswith("GPSD_OPTIONS="): @@ -394,14 +313,10 @@ def update_gpsd_config(baud_rate: int) -> None: else: updated_lines.append(line) - # Write the updated config to a temporary file with open("/tmp/gpsd.conf", "w") as f: f.writelines(updated_lines) - # Copy the temp file to the actual location with sudo sh.sudo("cp", "/tmp/gpsd.conf", "/etc/default/gpsd") - - # Restart GPSD service sh.sudo("systemctl", "restart", "gpsd") logger.info("SYS: GPSD configuration updated and service restarted") diff --git a/python/PiFinder/sys_utils_fake.py b/python/PiFinder/sys_utils_fake.py index efe6f1405..b60fe7881 100644 --- a/python/PiFinder/sys_utils_fake.py +++ b/python/PiFinder/sys_utils_fake.py @@ -1,129 +1,76 @@ -import socket import logging -BACKUP_PATH = "/home/pifinder/PiFinder_data/PiFinder_backup.zip" +from PiFinder.sys_utils_base import ( + NetworkBase, + BACKUP_PATH, +) logger = logging.getLogger("SysUtils.Fake") -class Network: +class Network(NetworkBase): """ - Provides wifi network info + Fake network for testing/development. """ def __init__(self): - pass + self._wifi_mode = "Client" + self._wifi_networks: list = [] - def populate_wifi_networks(self): - """ - Parses wpa_supplicant.conf to get current config - """ + def populate_wifi_networks(self) -> None: pass - def get_wifi_networks(self): - return "" - - def delete_wifi_network(self, network_id): - """ - Immediately deletes a wifi network - """ + def delete_wifi_network(self, network_id) -> None: pass - def add_wifi_network(self, ssid, key_mgmt, psk=None): - """ - Add a wifi network - """ + def add_wifi_network(self, ssid, key_mgmt, psk=None) -> None: pass - def get_ap_name(self): + def get_ap_name(self) -> str: return "UNKN" - def set_ap_name(self, ap_name): + def set_ap_name(self, ap_name: str) -> None: pass - def get_host_name(self): - return socket.gethostname() - - def get_connected_ssid(self): - """ - Returns the SSID of the connected wifi network or - None if not connected or in AP mode - """ + def get_connected_ssid(self) -> str: return "UNKN" - def set_host_name(self, hostname): - if hostname == self.get_host_name(): - return - - def wifi_mode(self): - return "UNKN" - - def set_wifi_mode(self, mode): + def set_host_name(self, hostname: str) -> None: pass - def local_ip(self): - return "NONE" + def _go_ap(self) -> None: + logger.info("SYS: Fake switching to AP") + def _go_client(self) -> None: + logger.info("SYS: Fake switching to Client") -def remove_backup(): - """ - Removes backup file - """ - pass +def remove_backup() -> None: + pass -def backup_userdata(): - """ - Back up userdata to a single zip file for later - restore. Returns the path to the zip file. - Backs up: - config.json - observations.db - obslist/* - """ +def backup_userdata() -> str: return BACKUP_PATH -def restore_userdata(zip_path): - """ - Compliment to backup_userdata - restores userdata - OVERWRITES existing data! - """ +def restore_userdata(zip_path) -> None: pass -def shutdown(): - """ - shuts down the Pi - """ +def shutdown() -> None: logger.info("SYS: Initiating Shutdown") - return True def update_software(): - """ - Uses systemctl to git pull and then restart - service - """ logger.info("SYS: Running update") return True -def restart_pifinder(): - """ - Uses systemctl to restart the PiFinder - service - """ +def restart_pifinder() -> None: logger.info("SYS: Restarting PiFinder") - return True -def restart_system(): - """ - Restarts the system - """ +def restart_system() -> None: logger.info("SYS: Initiating System Restart") @@ -138,25 +85,29 @@ def go_wifi_cli(): def verify_password(username, password): - """ - Checks the provided password against the provided user - password - """ return True def change_password(username, current_password, new_password): - """ - Changes the PiFinder User password - """ return False def switch_cam_imx477() -> None: logger.info("SYS: Switching cam to imx477") - logger.info('sh.sudo("python", "-m", "PiFinder.switch_camera", "imx477")') def switch_cam_imx296() -> None: logger.info("SYS: Switching cam to imx296") - logger.info('sh.sudo("python", "-m", "PiFinder.switch_camera", "imx296")') + + +def switch_cam_imx462() -> None: + logger.info("SYS: Switching cam to imx462") + + +def check_and_sync_gpsd_config(baud_rate: int) -> bool: + logger.info("SYS: Checking GPSD config for baud rate %d (fake)", baud_rate) + return False + + +def update_gpsd_config(baud_rate: int) -> None: + logger.info("SYS: Updating GPSD config with baud rate %d (fake)", baud_rate) diff --git a/python/PiFinder/sys_utils_nixos.py b/python/PiFinder/sys_utils_nixos.py index 15971c726..a4c8813c6 100644 --- a/python/PiFinder/sys_utils_nixos.py +++ b/python/PiFinder/sys_utils_nixos.py @@ -8,12 +8,9 @@ - stdlib zipfile for backup/restore - nixos-rebuild for camera switching and software updates """ -import glob -import os + import subprocess -import socket import time -import zipfile import logging from pathlib import Path from typing import Optional @@ -26,9 +23,16 @@ gi.require_version("NM", "1.0") from gi.repository import GLib, NM # noqa: E402 # type: ignore[import-not-found] -from PiFinder import utils +from PiFinder import utils # noqa: E402 +from PiFinder.sys_utils_base import ( # noqa: E402 + NetworkBase, + BACKUP_PATH, # noqa: F401 + remove_backup, # noqa: F401 + backup_userdata, # noqa: F401 + restore_userdata, # noqa: F401 + restart_pifinder, # noqa: F401 +) -BACKUP_PATH = str(utils.data_dir / "PiFinder_backup.zip") AP_CONNECTION_NAME = "PiFinder-AP" logger = logging.getLogger("SysUtils.NixOS") @@ -38,13 +42,16 @@ # Internal helpers # --------------------------------------------------------------------------- + def _run(cmd: list[str], **kwargs) -> subprocess.CompletedProcess: - """Run a command, logging failures. Used only for nixos-rebuild and systemctl.""" + """Run a command, logging failures.""" result = subprocess.run(cmd, capture_output=True, text=True, **kwargs) if result.returncode != 0: logger.error( "Command %s failed (rc=%d): %s", - cmd, result.returncode, result.stderr.strip(), + cmd, + result.returncode, + result.stderr.strip(), ) return result @@ -57,21 +64,12 @@ def _nm_client() -> NM.Client: def _nm_run_async(async_fn, *args): """ Run an async NM operation synchronously by spinning a local GLib MainLoop. - - Usage: - result = _nm_run_async(client.add_connection_async, profile, True, None) """ loop = GLib.MainLoop.new(None, False) state = {"result": None, "error": None} def callback(source, async_result, _user_data): try: - # The finish method name matches the async method name: - # add_connection_async -> add_connection_finish - # delete_async -> delete_finish - # activate_connection_async -> activate_connection_finish - # deactivate_connection_async -> deactivate_connection_finish - # commit_changes_async -> commit_changes_finish method_name = async_fn.__name__.replace("_async", "_finish") finish_fn = getattr(source, method_name) state["result"] = finish_fn(async_result) @@ -96,7 +94,8 @@ def _get_system_bus() -> dbus.SystemBus: # Network class — WiFi management via NM GLib bindings # --------------------------------------------------------------------------- -class Network: + +class Network(NetworkBase): """ Provides wifi network info via NetworkManager GLib bindings (libnm). """ @@ -126,17 +125,16 @@ def populate_wifi_networks(self) -> None: continue ssid_bytes = s_wifi.get_ssid() ssid = ssid_bytes.get_data().decode("utf-8") if ssid_bytes else "" - self._wifi_networks.append({ - "id": network_id, - "ssid": ssid, - "psk": None, - "key_mgmt": "WPA-PSK", - }) + self._wifi_networks.append( + { + "id": network_id, + "ssid": ssid, + "psk": None, + "key_mgmt": "WPA-PSK", + } + ) network_id += 1 - def get_wifi_networks(self): - return self._wifi_networks - def delete_wifi_network(self, network_id): """Delete a saved WiFi connection.""" if network_id < 0 or network_id >= len(self._wifi_networks): @@ -222,9 +220,6 @@ def set_ap_name(self, ap_name: str) -> None: logger.error("Failed to update AP SSID: %s", e) return - def get_host_name(self) -> str: - return socket.gethostname() - def get_connected_ssid(self) -> str: """Returns the SSID of the connected wifi network.""" if self.wifi_mode() == "AP": @@ -261,17 +256,13 @@ def set_host_name(self, hostname: str) -> None: except dbus.DBusException as e: logger.error("Failed to set hostname via D-Bus: %s", e) - def wifi_mode(self) -> str: - return self._wifi_mode + def _go_ap(self) -> None: + """Activate the AP connection.""" + self._activate_connection(AP_CONNECTION_NAME) - def set_wifi_mode(self, mode: str) -> None: - if mode == self._wifi_mode: - return - if mode == "AP": - self._activate_connection(AP_CONNECTION_NAME) - elif mode == "Client": - self._deactivate_connection(AP_CONNECTION_NAME) - self._wifi_mode = mode + def _go_client(self) -> None: + """Deactivate the AP connection (fall back to client).""" + self._deactivate_connection(AP_CONNECTION_NAME) def _activate_connection(self, name: str) -> None: """Activate a saved connection by name.""" @@ -287,7 +278,10 @@ def _activate_connection(self, name: str) -> None: try: _nm_run_async( self._client.activate_connection_async, - conn, device, None, None, + conn, + device, + None, + None, ) except Exception as e: logger.error("Failed to activate '%s': %s", name, e) @@ -298,83 +292,48 @@ def _deactivate_connection(self, name: str) -> None: if ac.get_id() == name: try: _nm_run_async( - self._client.deactivate_connection_async, ac, None, + self._client.deactivate_connection_async, + ac, + None, ) except Exception as e: logger.error("Failed to deactivate '%s': %s", name, e) return logger.warning("No active connection named '%s' to deactivate", name) - def local_ip(self) -> str: - if self._wifi_mode == "AP": - return "10.10.10.1" - s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) - try: - s.connect(("192.255.255.255", 1)) - ip = s.getsockname()[0] - except Exception: - ip = "NONE" - finally: - s.close() - return ip - # --------------------------------------------------------------------------- -# Backup / restore (stdlib zipfile) +# Module-level WiFi switching (called by callbacks.py and status.py) # --------------------------------------------------------------------------- -def remove_backup(): - """Removes backup file.""" - path = Path(BACKUP_PATH) - if path.exists(): - path.unlink() +_network_instance: Optional[Network] = None -def backup_userdata() -> str: - """ - Back up userdata to a single zip file. +def _get_network() -> Network: + global _network_instance + if _network_instance is None: + _network_instance = Network() + return _network_instance - Backs up: - config.json - observations.db - obslists/* - """ - remove_backup() - files = [ - utils.data_dir / "config.json", - utils.data_dir / "observations.db", - ] - for p in utils.data_dir.glob("obslists/*"): - files.append(p) +def go_wifi_ap(): + logger.info("SYS: Switching to AP") + net = _get_network() + net.set_wifi_mode("AP") + return True - with zipfile.ZipFile(BACKUP_PATH, "w", zipfile.ZIP_DEFLATED) as zf: - for filepath in files: - filepath = Path(filepath) - if filepath.exists(): - zf.write(filepath, filepath.relative_to("/")) - return BACKUP_PATH - - -def restore_userdata(zip_path: str) -> None: - """ - Restore userdata from a zip backup. - OVERWRITES existing data! - """ - with zipfile.ZipFile(zip_path, "r") as zf: - zf.extractall("/") +def go_wifi_cli(): + logger.info("SYS: Switching to Client") + net = _get_network() + net.set_wifi_mode("Client") + return True # --------------------------------------------------------------------------- # System control (systemctl subprocess + D-Bus for reboot/shutdown) # --------------------------------------------------------------------------- -def restart_pifinder() -> None: - """Restart the PiFinder service.""" - logger.info("SYS: Restarting PiFinder") - _run(["sudo", "systemctl", "restart", "pifinder"]) - def restart_system() -> None: """Restart the system via D-Bus to login1.""" @@ -436,10 +395,7 @@ def fetch_version_manifest() -> Optional[dict]: def get_versions_for_channel(channel: str) -> list[dict]: - """Get available versions for a channel. - - Returns list of {version, ref, date, notes}. - """ + """Get available versions for a channel.""" manifest = fetch_version_manifest() if manifest is None: return [] @@ -455,11 +411,7 @@ def get_available_channels() -> list[str]: def start_upgrade(ref: str = "release") -> bool: - """Start pifinder-upgrade.service with a specific git ref. - - Writes the ref to /run/pifinder/upgrade-ref for the service to read. - Returns True if the service was started successfully. - """ + """Start pifinder-upgrade.service with a specific git ref.""" try: UPGRADE_REF_FILE.write_text(ref) except OSError as e: @@ -467,10 +419,15 @@ def start_upgrade(ref: str = "release") -> bool: return False _run(["sudo", "systemctl", "reset-failed", "pifinder-upgrade.service"]) - result = _run([ - "sudo", "systemctl", "start", "--no-block", - "pifinder-upgrade.service", - ]) + result = _run( + [ + "sudo", + "systemctl", + "start", + "--no-block", + "pifinder-upgrade.service", + ] + ) return result.returncode == 0 @@ -489,10 +446,18 @@ def get_upgrade_state() -> str: def get_upgrade_log_tail(lines: int = 3) -> str: """Last N lines from upgrade journal for UI display.""" - result = _run([ - "journalctl", "-u", "pifinder-upgrade.service", - "-n", str(lines), "--no-pager", "-o", "cat", - ]) + result = _run( + [ + "journalctl", + "-u", + "pifinder-upgrade.service", + "-n", + str(lines), + "--no-pager", + "-o", + "cat", + ] + ) return result.stdout.strip() if result.returncode == 0 else "" @@ -513,6 +478,7 @@ def update_software() -> bool: # Password management (python-pam + chpasswd) # --------------------------------------------------------------------------- + def verify_password(username: str, password: str) -> bool: """Verify a password against PAM.""" p = pam.pam() @@ -536,6 +502,7 @@ def change_password(username: str, current_password: str, new_password: str) -> # Camera switching (nixos-rebuild + reboot) # --------------------------------------------------------------------------- + def switch_camera(cam_type: str) -> None: """ Switch camera by rebuilding NixOS with the appropriate camera type. @@ -543,10 +510,15 @@ def switch_camera(cam_type: str) -> None: """ logger.info("SYS: Switching camera to %s via nixos-rebuild", cam_type) flake_path = str(utils.pifinder_dir) - result = _run([ - "sudo", "nixos-rebuild", "switch", - "--flake", f"{flake_path}#pifinder-{cam_type}", - ]) + result = _run( + [ + "sudo", + "nixos-rebuild", + "switch", + "--flake", + f"{flake_path}#pifinder-{cam_type}", + ] + ) if result.returncode == 0: restart_system() else: @@ -572,14 +544,13 @@ def switch_cam_imx462() -> None: # GPSD config (declarative on NixOS — no-ops) # --------------------------------------------------------------------------- + def check_and_sync_gpsd_config(baud_rate: int) -> bool: """ On NixOS, GPSD config is managed declaratively via services.nix. This is a no-op. """ - logger.info( - "SYS: GPSD baud rate %d — managed by NixOS configuration", baud_rate - ) + logger.info("SYS: GPSD baud rate %d — managed by NixOS configuration", baud_rate) return False diff --git a/python/PiFinder/utils.py b/python/PiFinder/utils.py index 951bc25b9..d0580fbda 100644 --- a/python/PiFinder/utils.py +++ b/python/PiFinder/utils.py @@ -10,7 +10,7 @@ cwd_dir = Path.cwd() pifinder_dir = Path("..") astro_data_dir = cwd_dir / pifinder_dir / "astro_data" -tetra3_dir = pifinder_dir / "python/PiFinder/tetra3/tetra3" +tetra3_dir = pifinder_dir / "python/PiFinder/tetra3" data_dir = Path(Path.home(), "PiFinder_data") pifinder_db = astro_data_dir / "pifinder_objects.db" observations_db = data_dir / "observations.db" @@ -45,12 +45,15 @@ def serialize_solution(solution: dict) -> str: def get_sys_utils(): + if Path("/etc/NIXOS").exists(): + try: + return importlib.import_module("PiFinder.sys_utils_nixos") + except ImportError: + pass try: - # Attempt to import the real sys_utils - sys_utils = importlib.import_module("PiFinder.sys_utils") - except ImportError: - sys_utils = importlib.import_module("PiFinder.sys_utils_fake") - return sys_utils + return importlib.import_module("PiFinder.sys_utils") + except Exception: + return importlib.import_module("PiFinder.sys_utils_fake") def get_os_info(): From 2aa6e154755c71e7e13a34ea9ab7715068f8484b Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Sat, 7 Feb 2026 10:12:01 +0100 Subject: [PATCH 017/144] fix: misc UI, DB, and CI improvements - Update build.yml CI workflow - Fix fonts.py import - Fix marking_menus.py formatting - Add missing import to preview.py - Simplify objects_db.py - Add catalog_imports improvements - Update pifinder_objects.db Co-Authored-By: Claude Opus 4.5 --- .github/workflows/build.yml | 8 +++++++- astro_data/pifinder_objects.db | Bin 53567488 -> 53567488 bytes python/PiFinder/catalog_imports/main.py | 8 ++++++++ python/PiFinder/db/objects_db.py | 18 +----------------- python/PiFinder/ui/fonts.py | 2 +- python/PiFinder/ui/marking_menus.py | 4 ++-- python/PiFinder/ui/preview.py | 1 + 7 files changed, 20 insertions(+), 21 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 50299c909..5eb8f7f7a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -31,11 +31,14 @@ jobs: - name: Register QEMU binfmt for aarch64 run: sudo apt-get update && sudo apt-get install -y qemu-user-static - - name: Build NixOS system closure + - name: Build NixOS system closures run: | nix build .#nixosConfigurations.pifinder.config.system.build.toplevel \ --system aarch64-linux \ -L --no-link + nix build .#nixosConfigurations.pifinder-dev.config.system.build.toplevel \ + --system aarch64-linux \ + -L --no-link - name: Push to Cachix if: github.event_name != 'pull_request' @@ -43,6 +46,9 @@ jobs: nix build .#nixosConfigurations.pifinder.config.system.build.toplevel \ --system aarch64-linux \ --json | jq -r '.[].outputs.out' | cachix push pifinder + nix build .#nixosConfigurations.pifinder-dev.config.system.build.toplevel \ + --system aarch64-linux \ + --json | jq -r '.[].outputs.out' | cachix push pifinder update-unstable: needs: build diff --git a/astro_data/pifinder_objects.db b/astro_data/pifinder_objects.db index ac3c348a127f3b3fde2f7235da697bf231fce716..5e7eb9ac5cbec5bf833f0c007955eb11b0a7c3ea 100644 GIT binary patch delta 3060 zcmWmD^SclR0EOXhH`~U|uA8-NyJeni*D_9Zvu(SUU0b$o+s4+u{qX(+=RDt_{f80` zLXsNQDz@p~BB*7jt{s|o56T%TMyP;*P(_1+LZyBgJTXa$u)(3Sj{QDZR)7`S3bevl zVXbghcq@Vx(TZe6wxU>3t!P$sD~1)*ie<&N;#hI5cvgHXftAooWF@weSV^s9R&p!I zN@1n6Qdz03G*((Got56oU}dy2S(&XYR#q#U6>MdZd zj#byHXVteFSPiX4R%5G))zoTcHMiKRh1Jq(Wwo~2SZ%F#R(q?1)zRu?b+)=#U9E0b zcdLih)9PjQw)$9qSbeR2R)1@NHP9Ml4Yr0@L#<(!t>M-PYorxojj~2tW2~{(IBUE$ z!J24IvL;(otf|&CYq~YVnrY3lW?OTtxz;>uzO}$wXf3i9TT85^)-r3kwZd9yt+G~I zYpk`_I%~bP!TQtMXl=4KTU)HH);4RqwZqzJ?Xq@Td#t_IK5M`Am-V-Gz&dChvJP8E ztfSU3>$r8oI%%D$&y9dTG6~UR!Uhx7IuBz4gKRXnnFiTVJfN);H_B^~3sU{bT)W z{R&aQSOp+70ucsb5f0%I0TB@ikr4$^5e?B112GW`u@MJx5fAZ^011%@iID_JkqpTZ zgcL}LR7j09NQ-nxj||9&OvsEZ$ck(TMt0;tPUJ#vo_0a$g(Fl#v1WnNl&GG*q zEzlCJ&>C&f7VXd;9ncY-&>3CO72VJsJMa52l}EP`eOhFVh{#n2!>)9jNur8 zkqE&kjK&y@#W;+|1Wd#vOvV&U#WYOE49vtV%*Gtd#XQW%0xZNLEXEQn#WF0%3arE` zti~Fw#X79V2Ku0A|28r12Q5LG9wGJA{&B{9XXH_ zxsV%qkQe!o9|celzo8HcqX>$k7>c6=N}?1>qYTQT9Ll2tDxwl9qYA2`8mglPYN8fu z<9F0SUDQK;G(bZ%LSr;RQ#3?!849l?sE3pczu?B0g4(qW2e_|sxVKcU1E4E=fc3>xVVK??* zFZN+S{=(llfP*-M!#IMYIELdmfs;6e(>Q~(IEVANfQz_<%eaE8xQ6Svft$F6+qi?f zxQF|AfQNX5$9RILc!uYAftPrN*LZ`sc!&4+fRFfu&-j9`_=fNJfuHyX|KeBZ5CxJy zLL(4i5EkJO9uW``kq{YC5Eao79Wf9Su@D<^5EttMP^(T|J2dMalrvO}PyqpGFw@!tX8m<&B|`&uyR_ttlU-}E3cK$%5VK<6|f3g zg{;C>5v!u+m;wa{8*Ew+|eORZ(ra%+XP z(pqJ$w$@l{t##IVYlF4X+GK6Ewpd%OZPs>chqcq%W$m{1SbME~)_&`Nbww)#qdSpGeo>)(UW&LZtw%%B8t#{UY>x1>t`ec2!zF1$aZ`OC~hxOC? z6{67N6dC~tL>PocID|(8L_{P+MifLvG(<-X#6&E_MjXUNJj6!=Bt#-4MiL}NG9*V3 zQXnN#AvMw?*^vV|kqfzz2YHbX`SBYHpdbpNFp8ikilI14 zpd?D6G|HeX%Aq_epdu=vGOC~|s-Ze+peAaeHtL`*>Y+XwpdlKeF`A$$nxQ#b;Qv2b zq7_=B4cej|en)$BKu2^!XLLbVbVGOaKu`2SZ}dT5^h19Pz(5SbU<|=f48w33BQO%9 z5Q5PdgRvNg@tA;#n1sogf~lB>>6n3;n1$JxgSq$ve_|fy<1hS;1z3nhSd1lDie*@i z6PAsC8b7!G3uMq(5~FdAbp7UM7;6EG2zFd0)Y71J;sGcXggFdK6) z7k}VS%)@;Ag}<=?3$X}`u>?!849l?sE3pczu?B0g4(qW28?gzSu?1VP4coB;JFyG9 zu?Ksx5BqTd2XP38aRf(k499T-Cvgg=aRz5`4(D+J7jX%faRpcL53b=lZr~R$RifD+A7>J2jh>bXii+G5S1W1TPNQ@*%ieyNRAf!M_q(W+> cL0Y6kdSpOGWI|?SK~@AKTi`Bb51iZNKTFAvk^lez diff --git a/python/PiFinder/catalog_imports/main.py b/python/PiFinder/catalog_imports/main.py index c09a04931..7b6ce300f 100644 --- a/python/PiFinder/catalog_imports/main.py +++ b/python/PiFinder/catalog_imports/main.py @@ -120,6 +120,14 @@ def main(): resolve_object_images() print_database() + # Finalize database for read-only deployment (NixOS) + logging.info("Finalizing database for read-only deployment...") + conn, _ = objects_db.get_conn_cursor() + conn.execute("PRAGMA journal_mode = DELETE") # Required for read-only FS + conn.execute("VACUUM") # Compact database + conn.commit() + logging.info("Database finalization complete") + if __name__ == "__main__": main() diff --git a/python/PiFinder/db/objects_db.py b/python/PiFinder/db/objects_db.py index b52057f41..5c0881ce1 100644 --- a/python/PiFinder/db/objects_db.py +++ b/python/PiFinder/db/objects_db.py @@ -11,23 +11,7 @@ class ObjectsDatabase(Database): def __init__(self, db_path=utils.pifinder_db): conn, cursor = self.get_database(db_path) super().__init__(conn, cursor, db_path) - - # Performance optimizations for Pi/SD card environments - logging.info("Applying database performance optimizations...") - self.cursor.execute("PRAGMA foreign_keys = ON;") - self.cursor.execute("PRAGMA mmap_size = 268435456;") # 256MB memory mapping - self.cursor.execute("PRAGMA cache_size = -64000;") # 64MB cache (negative = KB) - self.cursor.execute("PRAGMA temp_store = MEMORY;") # Keep temporary data in RAM - self.cursor.execute( - "PRAGMA journal_mode = WAL;" - ) # Write-ahead logging for better concurrency - self.cursor.execute( - "PRAGMA synchronous = NORMAL;" - ) # Balanced safety/performance - logging.info("Database optimizations applied") - - self.conn.commit() - self.bulk_mode = False # Flag to disable commits during bulk operations + self.bulk_mode = False def create_tables(self): # Create objects table diff --git a/python/PiFinder/ui/fonts.py b/python/PiFinder/ui/fonts.py index 4ae93464a..664d2ef39 100644 --- a/python/PiFinder/ui/fonts.py +++ b/python/PiFinder/ui/fonts.py @@ -43,7 +43,7 @@ def __init__( huge_size=35, screen_width=128, ): - font_path = str(Path(Path.cwd(), "../fonts")) + font_path = str(Path(__file__).parent.parent.parent.parent / "fonts") boldttf = str(Path(font_path, "RobotoMonoNerdFontMono-Bold.ttf")) regularttf = str(Path(font_path, "RobotoMonoNerdFontMono-Regular.ttf")) diff --git a/python/PiFinder/ui/marking_menus.py b/python/PiFinder/ui/marking_menus.py index 62481dcd9..a5242cc7a 100644 --- a/python/PiFinder/ui/marking_menus.py +++ b/python/PiFinder/ui/marking_menus.py @@ -11,7 +11,7 @@ from PIL import Image, ImageDraw, ImageChops from PiFinder.ui.fonts import Font -from dataclasses import dataclass +from dataclasses import dataclass, field from PiFinder.displays import DisplayBase @@ -35,7 +35,7 @@ class MarkingMenu: down: MarkingMenuOption left: MarkingMenuOption right: MarkingMenuOption - up: MarkingMenuOption = MarkingMenuOption(label="HELP") + up: MarkingMenuOption = field(default_factory=lambda: MarkingMenuOption(label="HELP")) def select_none(self): self.up.selected = False diff --git a/python/PiFinder/ui/preview.py b/python/PiFinder/ui/preview.py index bac4ce300..d47689664 100644 --- a/python/PiFinder/ui/preview.py +++ b/python/PiFinder/ui/preview.py @@ -20,6 +20,7 @@ from PiFinder.ui.ui_utils import outline_text sys.path.append(str(utils.tetra3_dir)) +sys.path.append(str(utils.tetra3_dir / "tetra3")) class UIPreview(UIModule): From d606d40e98359c9cdfc967de7d5310e4ff2eca64 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 9 Feb 2026 08:39:11 +0100 Subject: [PATCH 018/144] fix(netboot): improve NFS compatibility for Nix store - Switch to NFSv4 with caching disabled (noac, actimeo=0) - Disable auto-optimise-store in devMode (hard links fail on NFS) Co-Authored-By: Claude Opus 4.5 --- flake.nix | 51 ++++++- nixos/bootstrap.nix | 323 ++++++++++++++++++++++++++++++++++++++++++++ nixos/services.nix | 3 +- 3 files changed, 374 insertions(+), 3 deletions(-) create mode 100644 nixos/bootstrap.nix diff --git a/flake.nix b/flake.nix index 8036ed53a..a85ba9956 100644 --- a/flake.nix +++ b/flake.nix @@ -151,11 +151,11 @@ udhcpc -i eth0 -t 10 -T 3 -n -q -s /etc/udhcpc.script || true ip addr show eth0 ''; - # NFS root filesystem + # NFS root filesystem - NFSv4 with disabled caching for Nix compatibility fileSystems."/" = { device = "192.168.5.12:/srv/nfs/pifinder"; fsType = "nfs"; - options = [ "vers=3" "tcp" "nolock" ]; + options = [ "vers=4" "noac" "actimeo=0" ]; }; # Dummy /boot — not used for netboot but NixOS requires it fileSystems."/boot" = { @@ -174,16 +174,63 @@ CONFIG_BOOTCOMMAND="pci enum; dhcp; pxe get; pxe boot" ''; }; + + # Bootstrap system for migration from RPi OS + # Minimal NixOS that boots, connects to network, and runs nixos-rebuild switch + mkBootstrapSystem = { includeSDImage ? false }: nixpkgs.lib.nixosSystem { + system = "aarch64-linux"; + modules = [ + nixos-hardware.nixosModules.raspberry-pi-4 + ./nixos/bootstrap.nix + ] ++ nixpkgs.lib.optionals includeSDImage [ + "${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix" + ({ pkgs, lib, ... }: { + # Simplified firmware population for bootstrap + sdImage.populateFirmwareCommands = lib.mkForce '' + (cd ${pkgs.raspberrypifw}/share/raspberrypi/boot && cp bootcode.bin fixup*.dat start*.elf $NIX_BUILD_TOP/firmware/) + + # Minimal config.txt for Pi 4 + cat > firmware/config.txt < "${stateDir}/state" </dev/null || true + fi + + echo "[$PCT%] $STATUS $DETAIL" + ''; +in { + # --------------------------------------------------------------------------- + # Boot - minimal Pi 4 support + # --------------------------------------------------------------------------- + boot.loader.grub.enable = false; + boot.loader.generic-extlinux-compatible.enable = true; + boot.loader.generic-extlinux-compatible.configurationLimit = 2; + + boot.consoleLogLevel = 7; + boot.kernelParams = [ "console=ttyS1,115200n8" ]; + + # Minimal kernel modules + boot.initrd.availableKernelModules = lib.mkForce [ "mmc_block" "usbhid" "usb_storage" ]; + boot.supportedFilesystems = lib.mkForce [ "vfat" "ext4" ]; + + # --------------------------------------------------------------------------- + # Filesystems + # --------------------------------------------------------------------------- + fileSystems."/" = { + device = "/dev/disk/by-label/NIXOS_SD"; + fsType = "ext4"; + options = [ "noatime" "nodiratime" ]; + }; + + fileSystems."/boot" = { + device = "/dev/disk/by-label/FIRMWARE"; + fsType = "vfat"; + }; + + # --------------------------------------------------------------------------- + # Memory optimizations (same as full config) + # --------------------------------------------------------------------------- + boot.tmp.useTmpfs = true; + boot.tmp.tmpfsSize = "200M"; + + services.journald.extraConfig = '' + Storage=volatile + RuntimeMaxUse=50M + ''; + + zramSwap = { + enable = true; + memoryPercent = 50; + }; + + # --------------------------------------------------------------------------- + # Networking - NetworkManager for WiFi (creds migrated from RPi OS) + # --------------------------------------------------------------------------- + networking = { + hostName = "pifinder-bootstrap"; + networkmanager.enable = true; + wireless.enable = false; + }; + + # Wired ethernet autoconnect (fallback if WiFi fails) + environment.etc."NetworkManager/system-connections/Wired.nmconnection" = { + text = '' + [connection] + id=Wired + type=ethernet + autoconnect=true + + [ipv4] + method=auto + + [ipv6] + method=auto + ''; + mode = "0600"; + }; + + # --------------------------------------------------------------------------- + # Nix with flakes + binary cache + # --------------------------------------------------------------------------- + nix.settings = { + experimental-features = [ "nix-command" "flakes" ]; + substituters = [ + "https://cache.nixos.org" + "https://pifinder.cachix.org" + ]; + trusted-public-keys = [ + "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" + "pifinder.cachix.org-1:ALuxYs8tMU34zwSTWjenI2wpJA+AclmW6H5vyTgnTjc=" + ]; + }; + + # --------------------------------------------------------------------------- + # Minimal packages + # --------------------------------------------------------------------------- + environment.systemPackages = with pkgs; [ + git + curl + progressScript + ]; + + # --------------------------------------------------------------------------- + # Users - minimal, just for debugging/SSH + # --------------------------------------------------------------------------- + users.users.root.initialPassword = "solveit"; + users.users.pifinder = { + isNormalUser = true; + initialPassword = "solveit"; + extraGroups = [ "networkmanager" "systemd-journal" ]; + }; + + # --------------------------------------------------------------------------- + # SSH for debugging if bootstrap gets stuck + # --------------------------------------------------------------------------- + services.openssh = { + enable = true; + settings = { + PasswordAuthentication = true; + PermitRootLogin = "yes"; + }; + }; + + # mDNS so we can find it at pifinder-bootstrap.local + services.avahi = { + enable = true; + nssmdns4 = true; + publish = { + enable = true; + addresses = true; + }; + }; + + # --------------------------------------------------------------------------- + # Bootstrap Service - the main event + # --------------------------------------------------------------------------- + systemd.services.pifinder-bootstrap = { + description = "PiFinder NixOS Bootstrap"; + wantedBy = [ "multi-user.target" ]; + after = [ "network-online.target" "NetworkManager-wait-online.service" ]; + wants = [ "network-online.target" "NetworkManager-wait-online.service" ]; + + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + Restart = "on-failure"; + RestartSec = "30s"; + TimeoutStartSec = "30min"; + }; + + path = with pkgs; [ nixos-rebuild git nix coreutils gnugrep gawk systemd inetutils ]; + + script = '' + set -euo pipefail + + STATE_FILE="${stateDir}/state" + STAGING_META="${stateDir}/staging-meta" + RESTORE_MARKER="${stateDir}/restore-complete" + + mkdir -p "${stateDir}" + + progress() { + ${progressScript}/bin/migration-progress "$@" + } + + # Already complete? Exit cleanly. + if [ -f "$STATE_FILE" ] && grep -q "PERCENT=100" "$STATE_FILE"; then + echo "Bootstrap already complete." + exit 0 + fi + + progress 70 "NixOS booting" + + # ----------------------------------------------------------------------- + # Resume user data restore if interrupted + # ----------------------------------------------------------------------- + if [ -f "$STAGING_META" ] && [ ! -f "$RESTORE_MARKER" ]; then + progress 62 "Resuming data restore" + + source "$STAGING_META" + # Variables from phase 2: STAGING_OFFSET_BLOCKS, BACKUP_SIZE, SD_DEV + + if [ -n "''${STAGING_OFFSET_BLOCKS:-}" ] && [ -n "''${BACKUP_SIZE:-}" ]; then + BACKUP_BLOCKS=$(( (BACKUP_SIZE + 4095) / 4096 )) + + dd if="''${SD_DEV:-/dev/mmcblk0}" bs=4096 \ + skip="$STAGING_OFFSET_BLOCKS" count="$BACKUP_BLOCKS" 2>/dev/null | \ + gunzip | tar xf - -C /home/pifinder/ || { + progress 62 "Restore failed" "will retry" + exit 1 + } + + chown -R pifinder:users /home/pifinder/PiFinder_data 2>/dev/null || true + touch "$RESTORE_MARKER" + progress 67 "Data restored" + fi + fi + + # ----------------------------------------------------------------------- + # Wait for network + # ----------------------------------------------------------------------- + progress 72 "Waiting for network" + + attempt=0 + max_attempts=120 # 10 minutes of trying + + while ! ping -c1 -W2 github.com &>/dev/null; do + attempt=$((attempt + 1)) + + if [ $attempt -ge $max_attempts ]; then + # Reset counter, keep trying forever + progress 72 "No network" "retry $attempt - check WiFi" + attempt=0 + sleep 30 + continue + fi + + # Show connection status + conn_state=$(nmcli -t -f STATE general 2>/dev/null || echo "unknown") + progress 72 "Connecting..." "$conn_state" + sleep 5 + done + + progress 75 "Network connected" + + # ----------------------------------------------------------------------- + # nixos-rebuild switch + # ----------------------------------------------------------------------- + progress 76 "Starting switch" + + FLAKE="github:brickbots/PiFinder/release#pifinder" + + # Parse nix build output for progress + # Using --log-format bar-with-logs for parseable output + if nixos-rebuild switch --flake "$FLAKE" --refresh 2>&1 | \ + while IFS= read -r line; do + echo "$line" # Pass through for logging + + # Parse copying progress + if echo "$line" | grep -qE 'copying path.*\([0-9]+/[0-9]+\)'; then + nums=$(echo "$line" | grep -oE '\([0-9]+/[0-9]+\)' | tr -d '()') + done=$(echo "$nums" | cut -d/ -f1) + total=$(echo "$nums" | cut -d/ -f2) + if [ "$total" -gt 0 ]; then + pct=$((done * 100 / total)) + # Map 0-100% to 78-95% + mapped=$((78 + pct * 17 / 100)) + progress "$mapped" "Downloading" "$done/$total paths" + fi + elif echo "$line" | grep -qi 'activating'; then + progress 95 "Activating system" + fi + done; then + + progress 98 "Finalizing" + + # Cleanup migration artifacts + rm -f /boot/nixos_migration + rm -f /boot/initramfs-migration.gz + + # Expand root partition if not already done + # (in case phase 2 was interrupted before expand) + if command -v sfdisk >/dev/null 2>&1; then + echo ", +" | sfdisk -N 2 /dev/mmcblk0 --no-reread 2>/dev/null || true + partprobe /dev/mmcblk0 2>/dev/null || true + resize2fs /dev/mmcblk0p2 2>/dev/null || true + fi + + progress 100 "Complete!" "Rebooting..." + sleep 3 + + systemctl reboot + else + progress 76 "Switch failed" "retrying in 30s..." + exit 1 # systemd will restart after 30s + fi + ''; + }; + + # --------------------------------------------------------------------------- + # System + # --------------------------------------------------------------------------- + system.stateVersion = "24.11"; + + # Strip unnecessary stuff + documentation.enable = false; + documentation.man.enable = false; + documentation.nixos.enable = false; + fonts.fontconfig.enable = false; + xdg.portal.enable = false; + services.xserver.enable = false; +} diff --git a/nixos/services.nix b/nixos/services.nix index 4f2a45093..7b87dd6f6 100644 --- a/nixos/services.nix +++ b/nixos/services.nix @@ -40,7 +40,8 @@ in { dates = "weekly"; options = "--delete-older-than 3d"; }; - nix.settings.auto-optimise-store = true; + # Disable store optimization on NFS (hard links cause issues) + nix.settings.auto-optimise-store = !cfg.devMode; boot.tmp.useTmpfs = true; boot.tmp.tmpfsSize = "200M"; From 63e727df6db633c904821a7a391bef01d5feb30e Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 9 Feb 2026 08:39:17 +0100 Subject: [PATCH 019/144] fix(deploy): add SSH keepalives and improve rsync transfer - Add ServerAliveInterval/CountMax to prevent timeout during transfers - Use rsync -R (relative) to preserve directory structure correctly Co-Authored-By: Claude Opus 4.5 --- deploy-image-to-nfs.sh | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/deploy-image-to-nfs.sh b/deploy-image-to-nfs.sh index 2306f6074..a68b4ccfa 100755 --- a/deploy-image-to-nfs.sh +++ b/deploy-image-to-nfs.sh @@ -14,6 +14,10 @@ TFTP_ROOT="/srv/tftp" PI_IP="192.168.5.150" PI_MAC="e4-5f-01-b7-37-31" # For PXE boot speedup +# SSH options to prevent timeout during long transfers +SSH_OPTS="-o ServerAliveInterval=30 -o ServerAliveCountMax=10" +export RSYNC_RSH="ssh ${SSH_OPTS}" + SSH_PUBKEY="ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGrPg9hSgxwg0EECxXSpYi7t3F/w/BgpymlD1uUDedRz mike@nixtop" # Password hash for "solveit" @@ -22,7 +26,7 @@ SHADOW_HASH='$6$upbQ1/Jfh7zDiIYW$jPVQdYJCZn/Pe/OIGx89DZm9trIhEJp7Q4LNZsq/5x9csj6 # ── Helpers ────────────────────────────────────────────────────────────────── run_proxnix() { - ssh "${PROXNIX}" "bash -euo pipefail -c \"$1\"" + ssh ${SSH_OPTS} "${PROXNIX}" "bash -euo pipefail -c \"$1\"" } # ── Build netboot closure ──────────────────────────────────────────────────── @@ -77,15 +81,18 @@ ssh "${PROXNIX}" "sudo cp -a ${NFS_ROOT}/etc/ssh/ssh_host_* /tmp/ 2>/dev/null || # ── Copy nix store closure to NFS ──────────────────────────────────────────── -echo "Copying nix store closure to NFS (this may take a while)..." -# Create nix store directory on remote +echo "Copying nix store closure to NFS..." ssh "${PROXNIX}" "sudo mkdir -p ${NFS_ROOT}/nix/store" -# Get all store paths and rsync them in one go -STORE_PATHS=$(nix path-info -r "$CLOSURE" | tr '\n' ' ') -echo "Transferring $(echo $STORE_PATHS | wc -w) store paths..." +# Get list of store paths and stream via tar (fast, handles duplicates via overwrite) +STORE_PATHS=$(nix path-info -r "$CLOSURE") +TOTAL_PATHS=$(echo "$STORE_PATHS" | wc -l) +echo "Streaming ${TOTAL_PATHS} store paths via tar..." + +# Rsync store paths with -R to preserve directory structure # shellcheck disable=SC2086 -rsync -avz --rsync-path="sudo rsync" $STORE_PATHS "${PROXNIX}:${NFS_ROOT}/nix/store/" +rsync -avR --rsync-path="sudo rsync" $STORE_PATHS "${PROXNIX}:${NFS_ROOT}/" +echo "Transfer complete" # ── Set up NFS root directory structure ────────────────────────────────────── From a919541ad5a3b58ea9cab37c1943524e4a9ff7d4 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 9 Feb 2026 13:30:53 +0100 Subject: [PATCH 020/144] fix: move comet_file to writable data_dir Comets.txt is downloaded at runtime and must be in a writable location, not the read-only Nix store. Co-Authored-By: Claude Opus 4.5 --- python/PiFinder/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/PiFinder/utils.py b/python/PiFinder/utils.py index d0580fbda..dcc323f9a 100644 --- a/python/PiFinder/utils.py +++ b/python/PiFinder/utils.py @@ -15,7 +15,7 @@ pifinder_db = astro_data_dir / "pifinder_objects.db" observations_db = data_dir / "observations.db" debug_dump_dir = data_dir / "solver_debug_dumps" -comet_file = astro_data_dir / Path("comets.txt") +comet_file = data_dir / "comets.txt" def create_dir(adir: str): From dcb241a6546ccceca9aa993c8409a4ca2d3f6376 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 9 Feb 2026 13:30:59 +0100 Subject: [PATCH 021/144] fix(netboot): improve initrd network and add libcamera IPA path - Extend eth0 wait to 30 seconds with debug output - Wait for link carrier before DHCP - Add DHCP retries (3 attempts) - Add LIBCAMERA_IPA_MODULE_PATH to pifinder service environment Co-Authored-By: Claude Opus 4.5 --- flake.nix | 38 ++++++++++++++++++++++++++++++++++---- nixos/services.nix | 2 ++ 2 files changed, 36 insertions(+), 4 deletions(-) diff --git a/flake.nix b/flake.nix index a85ba9956..e50b044b6 100644 --- a/flake.nix +++ b/flake.nix @@ -139,17 +139,47 @@ }; # Manually configure network before NFS mount boot.initrd.postDeviceCommands = '' - # Wait for interface to appear - for i in $(seq 1 30); do + # Wait for interface to appear (up to 30 seconds) + echo "Waiting for eth0..." + for i in $(seq 1 60); do if ip link show eth0 >/dev/null 2>&1; then + echo "eth0 found after $i attempts" break fi sleep 0.5 done ip link set eth0 up - udhcpc -i eth0 -t 10 -T 3 -n -q -s /etc/udhcpc.script || true - ip addr show eth0 + + # Wait for link carrier (cable connected) + echo "Waiting for link carrier..." + for i in $(seq 1 20); do + if [ "$(cat /sys/class/net/eth0/carrier 2>/dev/null)" = "1" ]; then + echo "Link up after $i attempts" + break + fi + sleep 0.5 + done + + # DHCP with retries + echo "Starting DHCP..." + for attempt in 1 2 3; do + if udhcpc -i eth0 -t 5 -T 3 -n -q -s /etc/udhcpc.script; then + echo "DHCP succeeded on attempt $attempt" + break + fi + echo "DHCP attempt $attempt failed, retrying..." + sleep 2 + done + + # Verify we got an IP + if ip addr show eth0 | grep -q "inet "; then + echo "Network configured:" + ip addr show eth0 + else + echo "WARNING: No IP address on eth0!" + ip addr show eth0 + fi ''; # NFS root filesystem - NFSv4 with disabled caching for Nix compatibility fileSystems."/" = { diff --git a/nixos/services.nix b/nixos/services.nix index 7b87dd6f6..a712b5918 100644 --- a/nixos/services.nix +++ b/nixos/services.nix @@ -188,6 +188,8 @@ in { ]; # libcamera Python bindings for picamera2 PYTHONPATH = "${pkgs.libcamera}/lib/python3.12/site-packages"; + # libcamera IPA modules path + LIBCAMERA_IPA_MODULE_PATH = "${pkgs.libcamera}/lib/libcamera"; }; serviceConfig = { Type = "idle"; From ddd3f97c4d5bac1ded8abfa9a1e9b71b01333767 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 9 Feb 2026 13:32:22 +0100 Subject: [PATCH 022/144] fix: add missing PWM udev rule Restore SUBSYSTEM=="pwm" udev rule that was accidentally removed. Co-Authored-By: Claude Opus 4.5 --- nixos/hardware.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/nixos/hardware.nix b/nixos/hardware.nix index ab46da0f7..3fb31c1bf 100644 --- a/nixos/hardware.nix +++ b/nixos/hardware.nix @@ -106,6 +106,7 @@ in { services.udev.extraRules = '' SUBSYSTEM=="spidev", GROUP="spi", MODE="0660" SUBSYSTEM=="i2c-dev", GROUP="i2c", MODE="0660" + SUBSYSTEM=="pwm", GROUP="gpio", MODE="0660" SUBSYSTEM=="gpio", GROUP="gpio", MODE="0660" KERNEL=="gpiomem", GROUP="gpio", MODE="0660" KERNEL=="ttyAMA1", GROUP="dialout", MODE="0660" From 329d7c2c0b00087386f2e20fcf999918ec810f8b Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 9 Feb 2026 14:34:57 +0100 Subject: [PATCH 023/144] feat: add early boot LED indicator service Turns on keypad LEDs during sysinit for early visual boot feedback. Co-Authored-By: Claude Opus 4.5 --- nixos/services.nix | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/nixos/services.nix b/nixos/services.nix index a712b5918..64fa24065 100644 --- a/nixos/services.nix +++ b/nixos/services.nix @@ -169,6 +169,27 @@ in { }; }; + # --------------------------------------------------------------------------- + # Early boot indicator — turn on keypad LEDs ASAP for visual feedback + # --------------------------------------------------------------------------- + systemd.services.boot-indicator = { + description = "Early boot LED indicator"; + wantedBy = [ "sysinit.target" ]; + before = [ "pifinder.service" ]; + serviceConfig.Type = "oneshot"; + script = '' + # Export PWM channel 1 if not already exported + if [ ! -d /sys/class/pwm/pwmchip0/pwm1 ]; then + echo 1 > /sys/class/pwm/pwmchip0/export 2>/dev/null || true + sleep 0.1 + fi + # Configure PWM: 120Hz, 50% duty cycle + echo 8333333 > /sys/class/pwm/pwmchip0/pwm1/period 2>/dev/null || true + echo 4166666 > /sys/class/pwm/pwmchip0/pwm1/duty_cycle 2>/dev/null || true + echo 1 > /sys/class/pwm/pwmchip0/pwm1/enable 2>/dev/null || true + ''; + }; + # --------------------------------------------------------------------------- # Main PiFinder application # --------------------------------------------------------------------------- From 04576e1cd9ca5214b25488959d761822f5c895be Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 9 Feb 2026 14:45:35 +0100 Subject: [PATCH 024/144] feat: add C boot splash with Knight Rider animation - boot-splash.c: displays welcome image with scanning animation - Starts at sysinit, stops when pifinder.service starts - Much faster than Python splash Co-Authored-By: Claude Opus 4.5 --- nixos/pkgs/boot-splash.c | 258 +++++++++ nixos/pkgs/boot-splash.nix | 24 + nixos/pkgs/welcome_image.h | 1027 ++++++++++++++++++++++++++++++++++++ nixos/services.nix | 28 +- 4 files changed, 1322 insertions(+), 15 deletions(-) create mode 100644 nixos/pkgs/boot-splash.c create mode 100644 nixos/pkgs/boot-splash.nix create mode 100644 nixos/pkgs/welcome_image.h diff --git a/nixos/pkgs/boot-splash.c b/nixos/pkgs/boot-splash.c new file mode 100644 index 000000000..1648682f1 --- /dev/null +++ b/nixos/pkgs/boot-splash.c @@ -0,0 +1,258 @@ +/* + * boot-splash - Early boot splash for PiFinder + * + * Displays welcome image with Knight Rider animation until stopped. + * Designed for NixOS early boot (before Python starts). + * + * Hardware: SPI0.0, DC=GPIO24, RST=GPIO25, 128x128 SSD1351 OLED + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define WIDTH 128 +#define HEIGHT 128 +#define SPI_DEVICE "/dev/spidev0.0" +#define SPI_SPEED 40000000 +#define GPIO_DC 24 +#define GPIO_RST 25 + +/* BGR565 colors */ +#define COL_BLACK 0x0000 +#define COL_RED 0x001F + +/* Include generated image data */ +#include "welcome_image.h" + +static int spi_fd = -1; +static int gpio_fd = -1; +static struct gpio_v2_line_request dc_req; +static struct gpio_v2_line_request rst_req; +static uint16_t framebuf[WIDTH * HEIGHT]; +static volatile int running = 1; + +static void signal_handler(int sig) { + (void)sig; + running = 0; +} + +static void msleep(int ms) { + struct timespec ts = { .tv_sec = ms / 1000, .tv_nsec = (ms % 1000) * 1000000L }; + nanosleep(&ts, NULL); +} + +static int gpio_request_line(int chip_fd, int pin, struct gpio_v2_line_request *req) { + struct gpio_v2_line_request r = {0}; + r.offsets[0] = pin; + r.num_lines = 1; + r.config.flags = GPIO_V2_LINE_FLAG_OUTPUT; + snprintf(r.consumer, sizeof(r.consumer), "boot-splash"); + + if (ioctl(chip_fd, GPIO_V2_GET_LINE_IOCTL, &r) < 0) { + perror("GPIO_V2_GET_LINE_IOCTL"); + return -1; + } + *req = r; + return 0; +} + +static void gpio_set(struct gpio_v2_line_request *req, int value) { + struct gpio_v2_line_values vals = {0}; + vals.bits = value ? 1 : 0; + vals.mask = 1; + ioctl(req->fd, GPIO_V2_LINE_SET_VALUES_IOCTL, &vals); +} + +static void spi_write(const uint8_t *data, size_t len) { + const size_t chunk_size = 4096; + while (len > 0) { + size_t this_len = len > chunk_size ? chunk_size : len; + struct spi_ioc_transfer tr = {0}; + tr.tx_buf = (unsigned long)data; + tr.len = this_len; + tr.speed_hz = SPI_SPEED; + tr.bits_per_word = 8; + ioctl(spi_fd, SPI_IOC_MESSAGE(1), &tr); + data += this_len; + len -= this_len; + } +} + +static void ssd1351_cmd(uint8_t cmd) { + gpio_set(&dc_req, 0); + spi_write(&cmd, 1); +} + +static void ssd1351_data(const uint8_t *data, size_t len) { + gpio_set(&dc_req, 1); + spi_write(data, len); +} + +static void ssd1351_init(void) { + uint8_t d; + + /* Hardware reset */ + gpio_set(&rst_req, 1); + msleep(10); + gpio_set(&rst_req, 0); + msleep(10); + gpio_set(&rst_req, 1); + msleep(10); + + ssd1351_cmd(0xFD); d = 0x12; ssd1351_data(&d, 1); /* Unlock */ + ssd1351_cmd(0xFD); d = 0xB1; ssd1351_data(&d, 1); /* Unlock commands */ + ssd1351_cmd(0xAE); /* Display off */ + ssd1351_cmd(0xB3); d = 0xF1; ssd1351_data(&d, 1); /* Clock divider */ + ssd1351_cmd(0xCA); d = 0x7F; ssd1351_data(&d, 1); /* Mux ratio */ + + uint8_t col[2] = {0x00, 0x7F}; + ssd1351_cmd(0x15); ssd1351_data(col, 2); /* Column address */ + uint8_t row[2] = {0x00, 0x7F}; + ssd1351_cmd(0x75); ssd1351_data(row, 2); /* Row address */ + + ssd1351_cmd(0xA0); d = 0x74; ssd1351_data(&d, 1); /* BGR, 65k color */ + ssd1351_cmd(0xA1); d = 0x00; ssd1351_data(&d, 1); /* Start line */ + ssd1351_cmd(0xA2); d = 0x00; ssd1351_data(&d, 1); /* Display offset */ + ssd1351_cmd(0xB5); d = 0x00; ssd1351_data(&d, 1); /* GPIO */ + ssd1351_cmd(0xAB); d = 0x01; ssd1351_data(&d, 1); /* Function select */ + ssd1351_cmd(0xB1); d = 0x32; ssd1351_data(&d, 1); /* Precharge */ + + uint8_t vsl[3] = {0xA0, 0xB5, 0x55}; + ssd1351_cmd(0xB4); ssd1351_data(vsl, 3); /* VSL */ + + ssd1351_cmd(0xBE); d = 0x05; ssd1351_data(&d, 1); /* VCOMH */ + ssd1351_cmd(0xC7); d = 0x0F; ssd1351_data(&d, 1); /* Master contrast */ + ssd1351_cmd(0xB6); d = 0x01; ssd1351_data(&d, 1); /* Precharge2 */ + ssd1351_cmd(0xA6); /* Normal display */ + + uint8_t contrast[3] = {0xFF, 0xFF, 0xFF}; + ssd1351_cmd(0xC1); ssd1351_data(contrast, 3); /* Contrast */ +} + +static void ssd1351_flush(void) { + uint8_t col[2] = {0x00, 0x7F}; + ssd1351_cmd(0x15); ssd1351_data(col, 2); + uint8_t row[2] = {0x00, 0x7F}; + ssd1351_cmd(0x75); ssd1351_data(row, 2); + ssd1351_cmd(0x5C); /* Write RAM */ + + uint8_t buf[WIDTH * HEIGHT * 2]; + for (int i = 0; i < WIDTH * HEIGHT; i++) { + buf[i * 2] = framebuf[i] >> 8; + buf[i * 2 + 1] = framebuf[i] & 0xFF; + } + ssd1351_data(buf, sizeof(buf)); +} + +static void draw_scanner(int pos, int scanner_width) { + /* Copy welcome image to framebuffer */ + memcpy(framebuf, welcome_image, sizeof(framebuf)); + + /* Draw Knight Rider scanner at bottom (last 4 rows) */ + int y_start = HEIGHT - 4; + int center = pos; + + for (int x = 0; x < WIDTH; x++) { + int dist = abs(x - center); + uint16_t color = COL_BLACK; + + if (dist < scanner_width) { + /* Gradient: brighter at center */ + int intensity = 31 - (dist * 31 / scanner_width); + if (intensity < 0) intensity = 0; + /* Red in BGR565: 0x001F is max red */ + color = intensity; + } + + for (int y = y_start; y < HEIGHT; y++) { + framebuf[y * WIDTH + x] = color; + } + } + + ssd1351_flush(); +} + +static int hw_init(void) { + spi_fd = open(SPI_DEVICE, O_RDWR); + if (spi_fd < 0) { + perror("open spi"); + return -1; + } + + uint8_t mode = SPI_MODE_0; + uint8_t bits = 8; + uint32_t speed = SPI_SPEED; + ioctl(spi_fd, SPI_IOC_WR_MODE, &mode); + ioctl(spi_fd, SPI_IOC_WR_BITS_PER_WORD, &bits); + ioctl(spi_fd, SPI_IOC_WR_MAX_SPEED_HZ, &speed); + + gpio_fd = open("/dev/gpiochip0", O_RDWR); + if (gpio_fd < 0) { + perror("open gpiochip0"); + return -1; + } + + if (gpio_request_line(gpio_fd, GPIO_DC, &dc_req) < 0) + return -1; + if (gpio_request_line(gpio_fd, GPIO_RST, &rst_req) < 0) + return -1; + + ssd1351_init(); + return 0; +} + +static void hw_cleanup(void) { + if (dc_req.fd > 0) close(dc_req.fd); + if (rst_req.fd > 0) close(rst_req.fd); + if (gpio_fd >= 0) close(gpio_fd); + if (spi_fd >= 0) close(spi_fd); +} + +int main(int argc, char *argv[]) { + (void)argc; + (void)argv; + + signal(SIGTERM, signal_handler); + signal(SIGINT, signal_handler); + + if (hw_init() < 0) { + fprintf(stderr, "Hardware init failed\n"); + hw_cleanup(); + return 1; + } + + /* Turn on display */ + ssd1351_cmd(0xAF); + + int pos = 0; + int dir = 1; + int scanner_width = 20; + + while (running) { + draw_scanner(pos, scanner_width); + + pos += dir * 4; /* Speed */ + if (pos >= WIDTH - scanner_width/2) { + pos = WIDTH - scanner_width/2; + dir = -1; + } else if (pos <= scanner_width/2) { + pos = scanner_width/2; + dir = 1; + } + + msleep(30); /* ~33 FPS */ + } + + hw_cleanup(); + return 0; +} diff --git a/nixos/pkgs/boot-splash.nix b/nixos/pkgs/boot-splash.nix new file mode 100644 index 000000000..9dfad935e --- /dev/null +++ b/nixos/pkgs/boot-splash.nix @@ -0,0 +1,24 @@ +{ pkgs }: + +pkgs.stdenv.mkDerivation { + pname = "boot-splash"; + version = "0.1.0"; + + src = ./.; + + buildInputs = [ pkgs.linuxHeaders ]; + + buildPhase = '' + $CC -O2 -Wall -o boot-splash boot-splash.c + ''; + + installPhase = '' + mkdir -p $out/bin + cp boot-splash $out/bin/ + ''; + + meta = { + description = "Early boot splash for PiFinder OLED display"; + platforms = [ "aarch64-linux" ]; + }; +} diff --git a/nixos/pkgs/welcome_image.h b/nixos/pkgs/welcome_image.h new file mode 100644 index 000000000..ef8cfc2ff --- /dev/null +++ b/nixos/pkgs/welcome_image.h @@ -0,0 +1,1027 @@ +// Auto-generated from welcome.png - 128x128 BGR565 +static const uint16_t welcome_image[16384] = { + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, + 0x4800, 0x4000, 0x4000, 0x4800, 0x4800, 0x5000, 0x5000, 0x5800, 0x6000, 0x6000, 0x6000, 0x6000, 0x6800, 0x6800, 0x5800, 0x5800, + 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x6000, 0x6000, 0x6000, 0x5800, + 0x5800, 0x5800, 0x6000, 0x6000, 0x6000, 0x6000, 0x5800, 0x5800, 0x6000, 0x6000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, + 0x5800, 0x6000, 0x5800, 0x5800, 0x6000, 0x6000, 0x6000, 0x6800, 0x6800, 0x5800, 0x5800, 0x5800, 0x6000, 0x6000, 0x6000, 0x6000, + 0x6000, 0x6000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x6000, 0x6000, 0x6000, 0x6800, 0x6800, 0x6800, 0x6800, 0x6800, + 0x6800, 0x6800, 0x6800, 0x6800, 0x6000, 0x6000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x6000, 0x5800, 0x5000, 0x5000, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x6000, 0x6000, 0x6000, 0x6800, 0x6800, 0x6800, + 0x6800, 0x5800, 0x5800, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x6000, 0x6000, 0x5800, + 0x5800, 0x5800, 0x5800, 0x5800, 0x6000, 0x5800, 0x5800, 0x5800, 0x6000, 0x6000, 0x6000, 0x5800, 0x6000, 0x5800, 0x5800, 0x5800, + 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x6000, 0x6000, 0x5800, 0x5800, 0x5800, 0x6000, 0x6000, 0x5800, 0x5800, + 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x6000, 0x6000, 0x6000, 0x6000, 0x6800, 0x6800, 0x6800, + 0x6800, 0x6800, 0x7000, 0x6800, 0x6800, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x6000, 0x6800, 0x6800, 0x7000, + 0x7000, 0x5800, 0x5800, 0x6000, 0x6800, 0x7800, 0x6000, 0x5800, 0x6000, 0x6000, 0x6000, 0x6000, 0x5800, 0x5800, 0x6000, 0x5800, + 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x6000, 0x5800, 0x5800, 0x5800, 0x5800, 0x6000, 0x6000, + 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x6000, + 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x6000, 0x6000, 0x6000, 0x6000, + 0x6800, 0x6800, 0x6800, 0x6800, 0x6800, 0x6800, 0x6800, 0x6000, 0x6000, 0x6000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x6000, 0x6000, 0x6000, 0x6000, + 0x5800, 0x6000, 0x6000, 0x6000, 0x6000, 0x6800, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x5800, 0x5800, + 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x6000, 0x6000, 0x6000, 0x5800, 0x5800, 0x5800, 0x5800, 0x6000, 0x6000, 0x5800, + 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x6800, + 0x6000, 0x5000, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x6000, + 0x6000, 0x6000, 0x6800, 0x6800, 0x6800, 0x6800, 0x6800, 0x6800, 0x6800, 0x6000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, + 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x3800, 0x4000, 0x3800, 0x3800, + 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x4800, 0x5000, 0x5000, 0x5000, 0x5800, 0x6000, 0x6000, 0x6000, + 0x5800, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x5800, + 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x6000, 0x6000, 0x6000, 0x6000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, + 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, + 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, + 0x5800, 0x6000, 0x6000, 0x6000, 0x6000, 0x6800, 0x6800, 0x6800, 0x6800, 0x6000, 0x6000, 0x6000, 0x5800, 0x5800, 0x5800, 0x5800, + 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x5000, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5800, 0x5800, + 0x5800, 0x5800, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, + 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x6000, 0x6000, 0x6000, 0x6000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5800, + 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, + 0x5800, 0x5800, 0x5800, 0x6000, 0x6000, 0x6000, 0x6800, 0x6800, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x5800, 0x5800, 0x5800, + 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5800, 0x5800, + 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, + 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, + 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x6000, 0x6000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5000, 0x5800, 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, + 0x5000, 0x5000, 0x7800, 0x8000, 0x5000, 0x5000, 0x5000, 0x4800, 0x5000, 0x4800, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5000, + 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x5800, 0x5800, 0x5800, + 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5800, 0x5800, + 0x3800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, + 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, + 0x6000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5000, + 0x5000, 0x5000, 0x8000, 0x9000, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, 0x6000, 0x6000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x5800, 0x5800, 0x5800, + 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x5000, 0x4000, 0x4000, 0x4800, 0x4800, + 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x6000, 0x5800, 0x5800, 0x6000, 0x6000, + 0x6000, 0x6000, 0x6000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x5800, 0x5800, 0x5800, 0x5800, + 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, + 0x3000, 0x3000, 0x3000, 0x4000, 0x3800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x5000, 0x5800, 0x4000, 0x4000, 0x4000, 0x4800, + 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, + 0x5800, 0x6000, 0x6000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x6000, 0x6000, 0x5800, 0x5800, 0x5800, 0x5800, + 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x4800, 0x5000, 0x5800, 0x5800, 0x6000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, + 0x3000, 0x3000, 0x3000, 0x4000, 0x3800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5800, 0x5800, 0x6800, 0x6000, 0x5800, 0x5800, + 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, + 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x6000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x6800, 0x6800, 0x5800, 0x5800, + 0x5800, 0x5800, 0x5800, 0x6000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x6000, 0x6800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, + 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x4800, 0x5000, 0x5000, 0x5800, 0x5800, 0x6000, 0x6000, 0x5800, 0x5800, 0x5800, 0x5800, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5000, + 0x5000, 0x5000, 0x5800, 0x6000, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x6800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5800, 0x5800, 0x5000, 0x5800, 0x5800, 0x5000, 0x5000, 0x5800, 0x5800, 0x6000, 0x5800, 0x5800, 0x6000, 0x6000, 0x5800, 0x5800, + 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5800, 0x5000, 0x5000, 0x5000, 0x5800, 0x6000, 0x6000, 0x6000, 0x5800, 0x5800, 0x5000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5000, 0x5000, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x6000, 0x6000, 0x6000, 0x6000, + 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x6800, 0x6000, 0x5000, 0x5000, 0x5800, 0x6000, 0x6000, 0x6000, 0x6000, 0x5800, 0x5800, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, + 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x3800, 0x3800, 0x4000, 0x4000, + 0x4000, 0x4000, 0x3800, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5800, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x6000, 0x6000, 0x6000, + 0x6000, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x6000, 0x6000, 0x6000, 0x6000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3000, + 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x5000, 0x6000, 0x6800, 0x7800, 0x8000, 0x6000, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x3800, 0x6000, 0x8000, 0x7800, 0x7000, 0x6800, 0x5800, 0x5000, 0x4800, 0x5000, 0x5000, 0x5800, 0x5800, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x6000, 0x6000, 0x6000, + 0x6000, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x6000, 0x6000, 0x6000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3000, 0x4800, 0x6000, 0x7800, 0x8800, 0x9000, 0x8000, 0x7000, 0x6800, 0x5800, 0x5000, 0x4000, 0x4000, 0x3800, 0x3800, 0x3800, + 0x3800, 0x3800, 0x4000, 0x5800, 0x6000, 0x7000, 0x7800, 0x8800, 0xA000, 0xA000, 0x9000, 0x8000, 0x6800, 0x5800, 0x5800, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x6000, + 0x6000, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x6000, 0x6800, 0x6000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x5000, 0x7000, + 0x8800, 0x8000, 0x6800, 0x5800, 0x4800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x3800, 0x3800, + 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x5800, 0x7000, 0x9000, 0xA800, 0xB000, 0x9000, 0x7000, + 0x5800, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x6000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x6000, 0x5800, 0x5000, 0x5000, 0x5000, + 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, + 0x6000, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x7000, 0x6800, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x4800, 0x6800, 0x8800, 0x7800, 0x6000, + 0x4000, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x3800, 0x3800, 0x4000, 0x4000, 0x3800, 0x3800, 0x4000, 0x5000, 0x3800, 0x3800, + 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x5000, 0x5800, 0x6000, 0x6800, 0x8000, 0x9800, + 0xA800, 0x9000, 0x6800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5000, 0x5000, 0x5800, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x8000, 0x6800, 0x5000, 0x5000, 0x5800, + 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, + 0x5800, 0x6000, 0x6000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x6000, 0x6000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x5000, 0x7800, 0x8000, 0x6000, 0x3800, 0x3000, 0x3000, + 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x3800, 0x3800, 0x4000, 0x4000, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x3800, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x5000, 0x5800, 0x6000, 0x6000, 0x5800, 0x5000, + 0x6000, 0x8000, 0xA000, 0x9800, 0x7000, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x6800, 0x6800, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5000, 0x5000, 0x5800, + 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, + 0x5800, 0x6000, 0x6000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x6000, 0x6000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x5800, 0x8000, 0x7000, 0x5000, 0x3800, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3800, 0x3800, 0x3800, 0x4000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, + 0x5000, 0x5000, 0x5800, 0x7000, 0x9800, 0xA000, 0x7800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x6000, 0x6000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, + 0x5800, 0x5800, 0x5800, 0x5800, 0x6000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, + 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x6000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x5000, 0x8000, 0x7000, 0x4000, 0x3000, 0x3000, 0x4800, 0x3800, 0x3800, 0x3800, 0x3000, + 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5800, 0x5800, 0x5000, 0x6000, 0x9000, 0xA000, 0x7000, 0x5000, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x6800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x6000, 0x5800, 0x5000, + 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x6000, + 0x3000, 0x3000, 0x3000, 0x4800, 0x7800, 0x7800, 0x4000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x4000, 0x3800, 0x3000, + 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5000, 0x5000, 0x6800, 0x9800, 0x9800, 0x8000, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x6800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5800, + 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5800, 0x5000, 0x7000, 0xA800, 0x8000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, + 0x5000, 0x5000, 0x5000, 0x5000, 0x7000, 0x7800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, + 0x3000, 0x3000, 0x6800, 0x8000, 0x5000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3800, 0x3800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x4800, 0x5000, 0x5000, 0x6000, 0x6800, 0x5000, 0x5000, 0x5000, 0x5000, 0x7000, 0xA800, 0x8800, 0x5800, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, + 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x6000, 0x5800, 0x6800, 0x9800, 0x8000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, + 0x4800, 0x8000, 0x6800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, + 0x4800, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x8800, 0xA000, 0x6800, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x6000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, + 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, + 0x8000, 0x4800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, 0x4800, + 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x6800, 0xA000, 0x8000, 0x5000, + 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x7000, + 0x8800, 0x5800, 0x5000, 0x5000, 0x5800, 0x5000, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x3800, 0x4000, 0x3000, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x5000, 0x3800, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, + 0x4800, 0x4000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x4800, 0x4800, 0x4800, + 0x4800, 0x4800, 0x5000, 0x5000, 0x5800, 0x5800, 0x5000, 0x5000, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x9000, 0x9800, + 0x6000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, + 0x5000, 0x5000, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x6800, + 0x7800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x3000, 0x3000, 0x3000, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x4000, 0x3800, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4800, + 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x4800, 0x4800, 0x4800, + 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x6800, 0x7800, 0x5000, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x8000, + 0xA000, 0x6800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, + 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, + 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5000, 0x5800, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x7000, 0x5000, 0x5800, 0x6000, 0x5000, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x2800, + 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, + 0x4800, 0x5000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x4800, + 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x6800, 0x8800, 0x5000, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x7000, 0xA000, 0x7000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x4800, + 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, + 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5000, 0x5800, 0x5800, 0x5000, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, + 0x3000, 0x3000, 0x3000, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x4800, + 0x5000, 0x3000, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x4000, 0x4000, 0x4000, 0x5000, 0x6000, + 0x5000, 0x5000, 0x5000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x4800, + 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x4800, 0x4800, 0x4800, + 0x5000, 0x6800, 0xA800, 0x7800, 0x5800, 0x5800, 0x5800, 0x6000, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, + 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, + 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, + 0x3000, 0x2800, 0x3000, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x2800, 0x8800, + 0xA800, 0x4000, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4800, 0x5800, + 0x5800, 0x5000, 0x5000, 0x4800, 0x4800, 0x4800, 0x5000, 0x5800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4000, + 0x4000, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, + 0x5000, 0x5000, 0x6800, 0xA800, 0x7800, 0x5800, 0x5800, 0x6000, 0x6000, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, + 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, + 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x2800, 0x4800, + 0x5800, 0x3000, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, 0x5000, 0x5000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4000, + 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, + 0x5000, 0x5000, 0x5000, 0x6800, 0xA800, 0x7800, 0x5800, 0x5800, 0x6000, 0x6000, 0x5000, 0x5000, 0x5000, 0x4800, 0x4800, 0x4800, + 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, + 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5000, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, + 0x3800, 0x3000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x2800, 0x3000, 0x2800, + 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, + 0x4000, 0x4800, 0x4800, 0x5000, 0x5000, 0x4800, 0x4800, 0x4800, 0x5000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x6800, 0xA800, 0x7000, 0x5800, 0x7000, 0x6800, 0x5000, 0x5000, 0x5000, 0x4800, 0x4800, 0x4800, + 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, 0x4800, + 0x4000, 0x3000, 0x3000, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x4000, 0x4000, 0x4800, 0x5000, 0x4800, 0x4800, 0x6000, 0x9800, 0x5000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x6800, 0xA800, 0x6800, 0x6000, 0x6000, 0x5800, 0x5000, 0x5000, 0x4800, 0x4800, 0x4800, + 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, 0x4800, + 0x2800, 0x3000, 0x3000, 0x3000, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x3800, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x5000, 0x6000, 0x4800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, + 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x7000, 0xA800, 0x6800, 0x6000, 0x5800, 0x5000, 0x5000, 0x5000, 0x4800, 0x4800, + 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, 0x4800, + 0x3000, 0x3800, 0x3000, 0x3000, 0x3000, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x3000, 0x3000, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, + 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, + 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x8000, 0xA000, 0x6000, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, + 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, 0x4800, + 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x3000, 0x3800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, + 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5800, 0xA000, 0x9000, 0x6000, 0x5800, 0x5000, 0x5000, 0x5000, 0x4800, + 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, 0x4800, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x2800, 0x3000, 0x3000, 0x3000, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x3000, 0x3800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4000, 0x4000, 0x4000, 0x4000, + 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, + 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x6800, 0xB000, 0x7800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5800, + 0x7000, 0x5800, 0x5000, 0x5000, 0x4800, 0x4800, 0x4800, 0x5000, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, 0x4800, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x4000, 0x3000, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, + 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, + 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5800, 0x7800, 0xB000, 0x6000, 0x5800, 0x5800, 0x5000, 0x6800, + 0x9800, 0x6800, 0x5000, 0x5000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5800, 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x4800, 0x4800, 0x4800, 0x4800, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x2800, 0x3800, 0x6000, 0x3800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4800, 0x4000, 0x5000, 0x5000, 0x4000, 0x4000, 0x4000, 0x4000, 0x3800, + 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4000, 0x4000, 0x4800, 0x4000, 0x4000, + 0x4000, 0x4800, 0x4000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5800, 0x9000, 0x8800, 0x5800, 0x5800, 0x5000, 0x5800, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, + 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, + 0x3000, 0x3000, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x2800, 0x3000, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x4000, 0x5800, 0x6800, 0x5800, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x5000, 0x6800, 0x6000, 0x4800, 0x3800, 0x4000, 0x3800, 0x5800, 0x6000, 0x4000, 0x4000, 0x4000, 0x4000, 0x3800, + 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x5800, 0x4000, 0x4000, + 0x4000, 0x4800, 0x4800, 0x4800, 0x4000, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0xA000, 0x6800, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4000, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x5000, 0x7000, 0x8000, 0x8000, 0x6800, 0x5800, 0x4000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3800, 0x5800, 0x6800, 0x8000, 0x8800, 0x7000, 0x5800, 0x3800, 0x3800, 0x4000, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4000, 0x4800, 0x6000, 0x4800, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x4800, 0x6800, 0x9000, 0x5000, 0x5000, 0x5000, + 0x4800, 0x5000, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x5800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4000, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x3000, 0x5800, 0x8000, 0x7000, 0x5800, 0x3800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x2800, 0x2800, 0x2800, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x4000, 0x5800, 0x7800, 0x8800, 0x6000, 0x4000, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x3800, 0x3800, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x5800, 0x4800, 0x4000, 0x4000, 0x4800, 0x4800, 0x4000, 0x9000, 0x7000, 0x4800, 0x4800, + 0x4800, 0x4800, 0x6800, 0x6800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x6000, 0x5800, 0x4800, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, + 0x7800, 0x6000, 0x4800, 0x5000, 0x5000, 0x4800, 0x4800, 0x5000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4000, + 0x3000, 0x3000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x5800, 0x8000, 0x6800, 0x4000, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x2800, 0x2800, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3000, 0x3800, 0x4000, 0x5000, 0x7000, 0x8800, 0x6800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x3800, 0x4000, 0x4000, 0x5000, 0x8000, 0x5000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x5800, 0x9800, 0x4800, 0x4800, + 0x4000, 0x4000, 0x8000, 0x7800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5000, 0x4800, 0x4800, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, + 0x5800, 0x5000, 0x4800, 0x4800, 0x4800, 0x7000, 0x7000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4000, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x4800, + 0x7800, 0x6800, 0x3000, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x2800, 0x2800, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x4000, 0x3800, 0x3000, 0x4000, 0x7000, 0x8800, 0x5000, 0x3800, + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x8800, 0x7000, 0x4800, + 0x4800, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x6000, 0x5800, 0x5000, + 0x5000, 0x4800, 0x4800, 0x4800, 0x4800, 0x9000, 0x8800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4000, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x6000, 0x7800, + 0x4000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x2800, 0x2800, + 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x5000, 0x8000, 0x6800, + 0x3800, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x5800, 0x9800, 0x4800, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, + 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, + 0x4800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x7000, 0x6800, 0x3000, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x7000, + 0x7800, 0x4000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x8800, 0x6800, + 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, + 0x4800, 0x4800, 0x4800, 0x5800, 0x5800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x6000, 0x6000, 0x5800, + 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, + 0x4000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3800, 0x7800, 0x5800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x6000, 0x8000, 0x4000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x6000, 0x9000, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, + 0x4800, 0x4800, 0x4800, 0x5800, 0x5800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x6000, 0x5800, 0x5800, + 0x5000, 0x5000, 0x5000, 0x5000, 0x6000, 0x7000, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3800, 0x7800, 0x5000, 0x2800, 0x2800, 0x2800, + 0x3000, 0x4000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x5800, 0x8800, 0x4000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x9000, + 0x5000, 0x3800, 0x3800, 0x4000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x4800, + 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, + 0x5000, 0x5000, 0x5000, 0x5000, 0x6000, 0x6800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, 0x4800, 0x5000, 0x4800, 0x4800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x7800, 0x5000, 0x2800, 0x2800, 0x3000, 0x2800, + 0x2800, 0x3000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x4800, 0x3800, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x5800, 0x8000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x6800, + 0x7000, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, + 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x6000, 0x6000, 0x5800, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, 0x5000, 0x5000, 0x4800, + 0x3000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x7000, 0x5800, 0x2800, 0x2800, 0x3800, 0x4000, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x6000, 0x7800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4800, 0x4000, 0x3800, 0x4000, 0x4000, 0x4000, 0x3800, 0x4800, + 0x8800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x5000, 0x4800, 0x4800, + 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x6800, 0x6000, 0x5000, 0x5000, + 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, 0x4800, 0x5000, 0x5000, + 0x3000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x5800, 0x6800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x2800, 0x3000, 0x3000, 0x3000, 0x3800, + 0x3000, 0x3000, 0x3000, 0x3000, 0x7000, 0x6800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x3800, 0x3800, 0x3800, 0x3800, + 0x8000, 0x5000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x5000, 0x5000, 0x4800, + 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5800, 0x5000, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, + 0x5000, 0x5800, 0x5000, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, 0x5000, 0x5000, 0x5000, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x4800, 0x7800, 0x3000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3800, 0x3000, 0x3000, 0x3000, 0x3800, 0x8000, 0x5000, 0x3800, 0x3800, 0x3800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x6000, 0x7000, 0x3800, 0x4000, 0x4000, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x5000, 0x5000, 0x4800, + 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, + 0x4800, 0x5000, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x8800, 0x7000, 0x5000, 0x4800, 0x4800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x7800, 0x4800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x4800, 0x8000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x4800, 0x8800, 0x3800, 0x3800, 0x4000, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x5000, 0x4800, + 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, + 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x6000, 0xA000, 0x7800, 0x5000, 0x4800, 0x5000, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x5800, 0x6800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x7000, 0x8000, 0x5000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x8800, 0x4800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x5000, + 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, + 0x5000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, 0x5000, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x8000, 0x3000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0xD000, 0x9000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x7000, 0x6000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x5000, + 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, + 0x7000, 0x5000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x5000, 0x6000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x3000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x2800, 0x2800, + 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x7000, 0x6800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x5800, 0x7800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, + 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, + 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x8000, 0x3800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x2800, 0x2800, 0x2800, 0x3000, 0x5800, + 0x4000, 0x2800, 0x3000, 0x2800, 0x2800, 0x3000, 0x3000, 0x3800, 0x8000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x4000, 0x8800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, + 0x5000, 0x5000, 0x4800, 0x5000, 0x5000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, + 0x2800, 0x2800, 0x2800, 0x3000, 0x4000, 0xA000, 0x5800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x5000, 0x5800, 0x2800, 0x2800, 0x2800, 0x3000, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x2800, 0x3800, 0x6000, + 0x3800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x7800, 0x5000, 0x3000, 0x3000, 0x3800, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x3800, 0x9000, 0x4000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, + 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x7000, 0x6000, 0x5000, 0x5000, 0x5000, 0x5000, 0x4800, + 0x2800, 0x2800, 0x2000, 0x2800, 0x6800, 0x5800, 0x3800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x4000, 0x4000, 0x2800, 0x3000, 0x6000, 0x5800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x5000, 0x6800, 0x3800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x2800, 0x2800, + 0x3000, 0x3800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x5800, 0x7000, 0x3000, 0x3800, 0x3800, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x3800, 0x7800, 0x5000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, + 0x4800, 0x4800, 0x5000, 0x5000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4000, 0x4800, 0x5000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x5000, 0x7000, 0x6800, 0x5800, 0x5800, 0x5000, 0x5000, 0x5000, + 0x2800, 0x2800, 0x2800, 0x2000, 0x8000, 0x2800, 0x2000, 0x4000, 0x4000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x4000, 0x7800, 0x5800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x5800, 0x7800, 0x4000, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x2800, 0x2800, 0x2800, 0x2800, + 0x5800, 0x6000, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3800, 0x8800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x3800, 0x7000, 0x5800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4800, + 0x4800, 0x4800, 0x5000, 0x5000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4000, 0x4800, 0x5800, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5000, 0x5000, + 0x2800, 0x2800, 0x2800, 0x3800, 0x7000, 0x2800, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x4000, 0x7800, 0x3800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x4000, 0x7800, 0x4000, 0x2800, 0x2800, 0x2800, 0x3000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x3000, 0x3000, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x8000, 0x4800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3800, 0x3800, 0x6000, 0x6800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4800, 0x4800, 0x4800, 0x5000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, + 0x2800, 0x2800, 0x2800, 0x4800, 0x5800, 0x2800, 0x2800, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x7800, 0x3800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x3800, 0x3000, 0x2800, 0x2800, 0x2800, 0x4000, 0x7800, 0x3000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x6800, 0x5800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x5800, 0x7000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, 0x5000, + 0x2800, 0x2800, 0x2800, 0x5800, 0x4800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x6000, 0x5800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2000, 0x3000, + 0x9000, 0x6000, 0x2000, 0x2800, 0x2800, 0x2800, 0x5800, 0x6000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x5800, 0x6800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x5000, 0x7800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4800, 0x4800, 0x4800, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, 0x5800, 0x5800, + 0x2800, 0x2800, 0x2800, 0x4800, 0x3000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x5000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x4000, + 0x7000, 0x4000, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x5800, 0x3000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x3800, 0x4000, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x4000, 0x5800, 0x3800, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x4000, 0x6000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x6000, 0x5800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2000, 0x2000, 0x4800, + 0x5800, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x3000, 0x3000, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x6000, 0x7000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4000, 0x6000, 0x6000, 0x6000, + 0x5000, 0x6000, 0x4000, 0x5800, 0x6000, 0x5000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5800, 0x5800, 0x5800, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x5000, 0x4000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0xF800, + 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x4800, 0x8800, 0x9000, 0x7800, 0x4000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0xA000, 0xA800, 0xA800, 0xA800, 0x6000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x5800, 0x6000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4000, 0x8000, 0xA000, 0x8000, + 0x6000, 0xB000, 0x6800, 0x5800, 0x9800, 0x8000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5800, 0x5800, 0x6000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x4000, 0x4000, 0x2800, 0x2800, 0x2800, 0x2800, 0xB800, 0xF800, 0xF800, 0xE000, 0xD000, + 0xC000, 0xB800, 0xB800, 0xC000, 0xC000, 0xB800, 0x7800, 0x4000, 0x2800, 0x2800, 0x2800, 0x2000, 0x2000, 0x2800, 0x2800, 0xF800, + 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x7800, 0x9800, 0x9800, 0xA000, 0xA000, 0x9800, 0x9800, 0x9800, 0x9000, 0x9800, 0x9800, + 0x9800, 0x9000, 0x7800, 0x2800, 0x2800, 0x8800, 0x9000, 0x9000, 0x9000, 0x6000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0xA000, 0xB000, 0xA800, 0xA800, 0x6000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x4000, 0x4800, 0x9800, 0x4000, + 0x4000, 0xA000, 0x9000, 0x5000, 0xB000, 0x8000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5800, 0x6000, + 0x2000, 0x2000, 0x2800, 0x2000, 0x2800, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0xB800, 0xF800, 0xF800, 0xF000, 0xE000, + 0xC800, 0xC000, 0xC000, 0xC000, 0xC800, 0xC800, 0xC000, 0xB800, 0x7800, 0x2800, 0x2800, 0x3800, 0x4800, 0xF800, 0xF800, 0xF800, + 0xF800, 0xF800, 0x2800, 0x2000, 0x2800, 0x7000, 0x9800, 0x9800, 0x9800, 0x9800, 0xA000, 0x9800, 0x9800, 0x9800, 0x9800, 0x9800, + 0x9800, 0x9800, 0x7800, 0x2800, 0x2800, 0x9000, 0x9000, 0x9000, 0x9000, 0x6000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0xA800, 0xB000, 0xB000, 0xB800, 0x6000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4800, 0x4800, 0x4000, 0x4000, 0x4800, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4000, 0x4800, 0x9800, 0x4000, + 0x4000, 0xA800, 0x9800, 0x8800, 0x8800, 0x8000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x5000, 0x5000, 0x5800, 0x5800, + 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2000, 0x2000, 0x2800, 0x2800, 0xB800, 0xF800, 0xF800, 0xF800, 0xF000, + 0xE000, 0xD000, 0xC800, 0xD000, 0xC800, 0xC800, 0xC800, 0xC000, 0xB000, 0x8800, 0x2000, 0x8000, 0xA800, 0x4800, 0x2000, 0xF800, + 0x2800, 0x2800, 0x2000, 0x2000, 0x2800, 0x7000, 0x9800, 0x9800, 0x9800, 0x9800, 0xA000, 0xA000, 0xA000, 0xA000, 0xA000, 0xA000, + 0xA000, 0xA000, 0x8800, 0x2800, 0x2800, 0x5000, 0x9000, 0x9000, 0x7800, 0x3800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x4000, 0x5000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0xA800, 0xB800, 0xB800, 0xB800, 0x6800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4800, 0x4000, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x9800, 0x4000, + 0x4000, 0xB000, 0x7000, 0xA800, 0x6800, 0x8000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5800, 0x5800, + 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0xB000, 0xF800, 0xF800, 0xF800, 0xB800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x3800, 0xA000, 0xC800, 0xC000, 0xB800, 0xB000, 0x6800, 0x4000, 0x5000, 0x3000, 0x2000, 0xF800, + 0x2000, 0x2800, 0x2800, 0x2000, 0x2800, 0x7000, 0x9800, 0x9800, 0x9800, 0x7000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x2800, 0x5000, 0x6800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0xA800, 0xB800, 0xB800, 0xB800, 0x6800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x3800, 0x4000, 0x5800, 0x4000, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x6000, 0x4000, + 0x4000, 0x6000, 0x4000, 0x5800, 0x4800, 0x5000, 0x4000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5800, + 0x2000, 0x2000, 0x2000, 0x4800, 0x3000, 0x2800, 0x2000, 0x2800, 0x2800, 0x2000, 0x2800, 0xA800, 0xF000, 0xF800, 0xF800, 0xB800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0xA800, 0xC000, 0xB800, 0xB000, 0xA000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, + 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x7000, 0x9800, 0x9800, 0x9800, 0x7800, 0x2800, 0x2000, 0x3000, 0x4000, 0x2800, 0x2000, + 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3800, 0x4800, 0x2800, 0x3000, 0x2800, 0x2800, 0x3000, + 0x3000, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3800, 0x5800, 0x3800, 0x3800, 0xB000, 0xB800, 0xC000, 0xC000, 0x6800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x3800, 0x4000, 0x5800, 0x4800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4000, + 0x4800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5800, + 0x2000, 0x2000, 0x2000, 0x5800, 0x4800, 0x2000, 0x2000, 0x2800, 0x2800, 0x2000, 0x2800, 0xA000, 0xE800, 0xF800, 0xF800, 0xB800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x8800, 0xC000, 0xB800, 0xB800, 0xB800, 0x3000, 0x2000, 0x5800, 0xB000, 0xA000, + 0x9800, 0x8800, 0x2800, 0x2800, 0x2800, 0x7000, 0x9000, 0x9800, 0x9800, 0x7800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2000, + 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x8800, 0xA000, 0xA000, 0xA000, 0x7000, 0x6000, 0x2800, 0x6000, 0x8800, 0x8800, 0x9000, + 0x5800, 0x4000, 0x6000, 0x9000, 0x9000, 0x9800, 0x8800, 0x6000, 0x3000, 0x3000, 0x3000, 0x2800, 0x3000, 0x3000, 0x3000, 0x6000, + 0xA000, 0xC800, 0xC800, 0xD000, 0x8800, 0x3800, 0xB000, 0xC000, 0xC000, 0xC000, 0x6800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, + 0x7000, 0x9000, 0xB800, 0xB800, 0xB800, 0xA000, 0x8000, 0x3800, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0xB000, 0xB800, 0xA800, + 0xA000, 0x4800, 0x6800, 0x9000, 0x9800, 0x8000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5800, + 0x2000, 0x2000, 0x2800, 0x4800, 0x5800, 0x2000, 0x4000, 0x3800, 0x2000, 0x2800, 0x2800, 0x9800, 0xE000, 0xE800, 0xF000, 0xB800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x4800, 0xB800, 0xB800, 0xB000, 0xB000, 0x4000, 0x2000, 0x6000, 0xB800, 0xB000, + 0xA000, 0x8800, 0x2000, 0x2800, 0x2800, 0x7800, 0x9800, 0xA000, 0xA000, 0x7800, 0x2800, 0x2800, 0x2800, 0x2000, 0x2000, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x9000, 0xA800, 0xA800, 0xA000, 0x7800, 0x5000, 0x2800, 0x6000, 0x9000, 0x9000, 0x9000, + 0x7800, 0x9000, 0x9000, 0x9000, 0x9000, 0x9000, 0x9800, 0x9800, 0x6800, 0x3000, 0x3000, 0x4000, 0x3000, 0x3000, 0x7000, 0xC000, + 0xC000, 0xC800, 0xC800, 0xC800, 0xD000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0x7000, 0x4000, 0x4000, 0x4000, 0x4800, 0xA800, + 0xC000, 0xC000, 0xC000, 0xC000, 0xB800, 0xB800, 0xB800, 0xA800, 0x5000, 0x4000, 0x4000, 0x4800, 0x4800, 0xB000, 0xB800, 0xA800, + 0xA000, 0x7000, 0xA000, 0xA000, 0xA000, 0x8800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5800, + 0x2000, 0x2800, 0x2000, 0x3800, 0x7000, 0x2000, 0x3000, 0x3000, 0x2800, 0x2800, 0x2800, 0x9800, 0xD000, 0xD800, 0xE000, 0xB000, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2000, 0x2000, 0x5000, 0xB800, 0xB800, 0xB000, 0xB000, 0x3000, 0x2000, 0x6000, 0xC800, 0xC000, + 0xB000, 0x9000, 0x2800, 0x2800, 0x4000, 0x8800, 0xA000, 0xA000, 0xA000, 0x7800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x9000, 0xA800, 0xA800, 0xA800, 0x8800, 0x4000, 0x2800, 0x6800, 0x9000, 0x9800, 0x9800, + 0xA000, 0xA000, 0x9800, 0x9000, 0x9000, 0x9000, 0x9800, 0xA000, 0xA000, 0x4000, 0x3000, 0x4000, 0x4000, 0x5800, 0xB800, 0xB800, + 0xC000, 0xC000, 0xC800, 0xC800, 0xC800, 0xD000, 0xC800, 0xC000, 0xC000, 0xC000, 0x6800, 0x4000, 0x4000, 0x4000, 0xC800, 0xD000, + 0xC800, 0xC800, 0xC000, 0xC000, 0xB800, 0xB800, 0xB800, 0xB800, 0xA800, 0x4800, 0x4000, 0x4000, 0x4800, 0xA800, 0xB800, 0xA800, + 0xA800, 0xA000, 0xA000, 0xA000, 0xA800, 0x9800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, + 0x2800, 0x2800, 0x2000, 0x2800, 0x7800, 0x3000, 0x2000, 0x2000, 0x2800, 0x2000, 0x2800, 0x9800, 0xD000, 0xD000, 0xD800, 0xA800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2000, 0x2800, 0x8800, 0xA800, 0xB000, 0xB800, 0xA800, 0x2800, 0x2000, 0x6000, 0xD000, 0xC800, + 0xB800, 0xA000, 0x2800, 0x5800, 0x7800, 0x8000, 0xA000, 0xA800, 0xA800, 0x8000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x9000, 0xA800, 0xA800, 0xA800, 0x9000, 0x3000, 0x2800, 0x6800, 0xA000, 0xA000, 0xA000, + 0xA000, 0x7800, 0x2800, 0x2800, 0x5000, 0x9000, 0x9800, 0x9800, 0xA000, 0x7000, 0x4000, 0x6800, 0x6000, 0x9800, 0xB000, 0xB800, + 0xB800, 0xA800, 0x8000, 0x5800, 0x5000, 0xA800, 0xC800, 0xC000, 0xC000, 0xC000, 0x6800, 0x4000, 0x4000, 0xA000, 0xE800, 0xD800, + 0xD000, 0xC000, 0x7800, 0x3800, 0x4800, 0xA000, 0xC000, 0xC000, 0xC000, 0x8000, 0x4000, 0x4000, 0x4000, 0xA800, 0xB800, 0xA800, + 0xA800, 0xA000, 0x7000, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, + 0x2800, 0x2800, 0x2800, 0x2800, 0x6000, 0x4800, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x9000, 0xC000, 0xC800, 0xD000, 0xA800, + 0x2000, 0x2800, 0x2800, 0x2000, 0x2000, 0x8000, 0xA800, 0xA000, 0xA800, 0xB000, 0x8800, 0x5000, 0x2800, 0x6000, 0xC800, 0xC800, + 0xC000, 0xA800, 0x4800, 0x6000, 0x3000, 0x7800, 0xA800, 0xB000, 0xB800, 0xB800, 0xB800, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, + 0xC000, 0x9800, 0x2800, 0x2800, 0x2800, 0x9800, 0xB000, 0xA800, 0xA800, 0x8000, 0x2800, 0x2800, 0x7000, 0xA800, 0xA800, 0xA800, + 0x8800, 0x2800, 0x2800, 0x2800, 0x3000, 0x7000, 0xA000, 0xA000, 0xA000, 0x8000, 0x5000, 0x9000, 0x5800, 0xA800, 0xA800, 0xB000, + 0xB800, 0x4800, 0x7800, 0x4800, 0x3800, 0x4000, 0xB800, 0xC000, 0xC000, 0xC800, 0x6800, 0x4000, 0x4000, 0xE800, 0xF000, 0xE000, + 0xD000, 0x8000, 0x3800, 0x3800, 0x3800, 0x4800, 0xB800, 0xC000, 0xC000, 0xB800, 0x4000, 0x4000, 0x4000, 0xA800, 0xB000, 0xA800, + 0xA800, 0x6800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5800, 0x5000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x4000, 0x6800, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x8000, 0xA800, 0xB800, 0xC000, 0xD000, + 0xF000, 0xF800, 0xF800, 0xE800, 0xD000, 0xB800, 0xA800, 0xA000, 0xA000, 0x9000, 0x2000, 0x2800, 0x2800, 0x6000, 0xC000, 0xC000, + 0xC000, 0xB000, 0x2800, 0x2800, 0x2800, 0x8000, 0xA800, 0xB800, 0xC000, 0xC800, 0xC800, 0xC800, 0xC800, 0xC800, 0xC800, 0xC800, + 0xC800, 0xA000, 0x2800, 0x2800, 0x2800, 0x9800, 0xB800, 0xB000, 0xB000, 0x7800, 0x2800, 0x2800, 0x7000, 0xA800, 0xB000, 0xB000, + 0x8800, 0x2800, 0x2800, 0x2800, 0x2800, 0x6800, 0xA800, 0xA800, 0xA800, 0x9000, 0x3000, 0x2800, 0x6000, 0xA800, 0xA800, 0xA800, + 0x9800, 0x3000, 0x8800, 0x3800, 0x3000, 0x3800, 0xB000, 0xC000, 0xC000, 0xC000, 0x7000, 0x4000, 0x7000, 0xF000, 0xF000, 0xE000, + 0xD000, 0x4800, 0x3800, 0x3800, 0x3800, 0x4000, 0xA000, 0xC000, 0xC000, 0xC000, 0x6000, 0x4000, 0x4000, 0xA800, 0xB000, 0xB000, + 0xB000, 0x5800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x4800, 0x4800, 0x4800, 0x4800, 0x5800, 0x5800, 0x4800, 0x5000, 0x5800, + 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x7800, 0x3000, 0x2000, 0x2000, 0x2000, 0x2000, 0x7000, 0x9000, 0xA000, 0xB000, 0xC800, + 0xE000, 0xF000, 0xF000, 0xE000, 0xD000, 0xC000, 0xB000, 0xA000, 0x7800, 0x3000, 0x2000, 0x2000, 0x2000, 0x5800, 0xC000, 0xB800, + 0xB800, 0xA800, 0x2000, 0x2800, 0x2800, 0x8000, 0xA800, 0xB800, 0xC000, 0xC800, 0xD000, 0xD000, 0xC800, 0xD000, 0xD800, 0xE000, + 0xD800, 0xA800, 0x2800, 0x2800, 0x2800, 0xA000, 0xB800, 0xB800, 0xB800, 0x6800, 0x2000, 0x2000, 0x7000, 0xB000, 0xB800, 0xB800, + 0x8800, 0x2800, 0x2800, 0x3000, 0x3800, 0x6800, 0xA800, 0xB000, 0xB000, 0x9000, 0x3000, 0x2800, 0x7000, 0xA800, 0xA800, 0xA800, + 0x8000, 0x3800, 0x8000, 0x3000, 0x3000, 0x3800, 0xB000, 0xB800, 0xB800, 0xB800, 0x6800, 0x3800, 0x8800, 0xE800, 0xE800, 0xE000, + 0xC000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x9800, 0xC800, 0xC000, 0xC000, 0x7000, 0x4000, 0x4000, 0xA800, 0xB800, 0xB800, + 0xB800, 0x5800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x6000, 0x5800, 0x5000, 0x5000, 0x5000, + 0x2000, 0x2000, 0x2000, 0x2800, 0x2000, 0x5000, 0x5800, 0x2000, 0x2000, 0x2000, 0x2000, 0x6800, 0x9000, 0x9800, 0xA800, 0xC000, + 0xD000, 0xD800, 0xE000, 0xD800, 0xD000, 0xC000, 0x7800, 0x5800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x5800, 0xC000, 0xB800, + 0xB800, 0xA800, 0x2000, 0x2000, 0x2000, 0x7800, 0xA800, 0xB800, 0xC000, 0x9800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2000, + 0x2000, 0x2800, 0x2000, 0x2000, 0x2800, 0xA800, 0xC000, 0xC000, 0xC000, 0x7000, 0x2000, 0x2000, 0x7800, 0xB800, 0xB800, 0xB800, + 0x8800, 0x2800, 0x2800, 0x3000, 0x3800, 0x6800, 0xA000, 0xA800, 0xB800, 0x9000, 0x3000, 0x3000, 0x7000, 0xA800, 0xA800, 0xA800, + 0x7000, 0x5000, 0x6800, 0x3000, 0x3000, 0x3000, 0xB000, 0xC000, 0xB800, 0xC000, 0x6800, 0x3800, 0x9000, 0xE000, 0xE000, 0xE000, + 0xD800, 0xD000, 0xD000, 0xD800, 0xD800, 0xD800, 0xD800, 0xD000, 0xC800, 0xC000, 0x8000, 0x4000, 0x4000, 0xA800, 0xC000, 0xC000, + 0xC000, 0x5800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x4800, 0x4800, 0x6800, 0x6800, 0x5000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x7800, 0x3000, 0x2800, 0x2000, 0x2000, 0x7000, 0x9800, 0x9800, 0xA000, 0x8800, + 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x5800, 0xC000, 0xB800, + 0xB000, 0xA000, 0x2000, 0x2000, 0x2000, 0x8000, 0xB000, 0xB800, 0xC000, 0x9000, 0x2800, 0x2800, 0x2000, 0x2800, 0x2800, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0xB000, 0xD000, 0xD000, 0xC800, 0x7000, 0x1800, 0x2000, 0x7800, 0xC000, 0xC000, 0xC000, + 0x9000, 0x2800, 0x2800, 0x2800, 0x2800, 0x6800, 0xA000, 0xA000, 0xA800, 0x8800, 0x3000, 0x3000, 0x7000, 0xA000, 0xA000, 0xA000, + 0x7000, 0x6000, 0x5800, 0x3000, 0x3000, 0x3000, 0xB000, 0xC000, 0xC000, 0xC000, 0x6800, 0x3800, 0x8800, 0xD800, 0xD800, 0xD800, + 0xD000, 0xD000, 0xD000, 0xD800, 0xD800, 0xE000, 0xE000, 0xE000, 0xD800, 0xD000, 0x8000, 0x4000, 0x4000, 0xB000, 0xC000, 0xC000, + 0xC800, 0x5800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5800, 0x5800, 0x5000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x5000, 0x6000, 0x2000, 0x2000, 0x2000, 0x7800, 0xA000, 0xA000, 0xA000, 0x8000, + 0x2800, 0x2800, 0x2800, 0x2000, 0x2000, 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x5800, 0xB800, 0xB000, + 0xA800, 0xA000, 0x2800, 0x2800, 0x2800, 0x8000, 0xB000, 0xB000, 0xB800, 0x9000, 0x2800, 0x2800, 0x2800, 0x2000, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0xB000, 0xD800, 0xE000, 0xE800, 0x7800, 0x2800, 0x2000, 0x8000, 0xC000, 0xC000, 0xC000, + 0x9000, 0x2800, 0x2800, 0x2800, 0x2800, 0x7000, 0xA800, 0xA000, 0xA000, 0x8800, 0x3000, 0x3000, 0x7000, 0xA000, 0xA000, 0xA800, + 0x8000, 0x7800, 0x4000, 0x3000, 0x3000, 0x3000, 0xB000, 0xC000, 0xC000, 0xC800, 0x6800, 0x3800, 0x8800, 0xD000, 0xD000, 0xD000, + 0xD000, 0xD000, 0xD000, 0xD800, 0xD800, 0xE000, 0xE000, 0xE000, 0xE000, 0xD800, 0x8800, 0x3800, 0x4000, 0xB800, 0xC000, 0xC800, + 0xC800, 0x5800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x7000, 0x3800, 0x2000, 0x2000, 0x7800, 0x9800, 0x9800, 0xA000, 0x8000, + 0x2800, 0x2000, 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x5000, 0xB000, 0xB000, + 0xA800, 0x9800, 0x2000, 0x2000, 0x2800, 0x8000, 0xA800, 0xA800, 0xB000, 0x8800, 0x2800, 0x2800, 0x2800, 0x2000, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0xB800, 0xE000, 0xF000, 0xF000, 0x9800, 0x3800, 0x2000, 0x8000, 0xC800, 0xC800, 0xC800, + 0x9800, 0x2800, 0x2800, 0x2800, 0x2800, 0x7000, 0xA800, 0xA000, 0xA000, 0x8800, 0x3000, 0x3000, 0x6000, 0xA800, 0xA800, 0xA800, + 0x9800, 0x8000, 0x3000, 0x3000, 0x3000, 0x3000, 0xB000, 0xC000, 0xC000, 0xC800, 0x6800, 0x3800, 0x6800, 0xC800, 0xC800, 0xC800, + 0xB800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x3800, 0x3800, 0x3800, 0x3800, 0xC000, 0xC800, 0xC800, + 0xC000, 0x5800, 0x4000, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x3800, 0x7000, 0x2800, 0x2800, 0x7000, 0x9000, 0x9000, 0x9000, 0x7800, + 0x2800, 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x5800, 0xB000, 0xB800, + 0xB000, 0x9800, 0x2000, 0x2000, 0x2800, 0x8000, 0xA800, 0xA800, 0xA800, 0x8000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0xC000, 0xE000, 0xF000, 0xF000, 0x9000, 0x2000, 0x2000, 0x8800, 0xD000, 0xD000, 0xC800, + 0x9800, 0x3000, 0x2800, 0x2800, 0x2800, 0x7000, 0xA800, 0xA000, 0xA000, 0x8800, 0x3000, 0x3000, 0x3800, 0xB000, 0xB000, 0xB000, + 0xB000, 0x7000, 0x3000, 0x3000, 0x3000, 0x4000, 0xB800, 0xC000, 0xC000, 0xC800, 0x6800, 0x3000, 0x3800, 0xC000, 0xC800, 0xC800, + 0xC800, 0x6800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x5800, 0x6800, 0x3800, 0x3800, 0x3800, 0x3800, 0xC000, 0xC800, 0xC000, + 0xC000, 0x5800, 0x4000, 0x4800, 0x4800, 0x4800, 0x4000, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x5800, 0x6000, 0x2800, 0x6800, 0x9000, 0x9000, 0x9000, 0x7000, + 0x2800, 0x2800, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x5800, 0xB000, 0xB000, + 0xB800, 0xA000, 0x2000, 0x2000, 0x2800, 0x7800, 0xA000, 0xA000, 0xA000, 0x7800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2000, 0x2000, + 0x2000, 0x2800, 0x2800, 0x2800, 0x6000, 0xB800, 0xE000, 0xF000, 0xF800, 0x8800, 0x2000, 0x2000, 0x8800, 0xD000, 0xD000, 0xC800, + 0xA000, 0x3800, 0x2800, 0x2800, 0x2800, 0x7000, 0xA800, 0xA000, 0xA000, 0x8800, 0x3000, 0x3000, 0x3000, 0x9800, 0xB800, 0xC000, + 0xB800, 0xA800, 0x5000, 0x3000, 0x4800, 0x9800, 0xC000, 0xC000, 0xC000, 0xC000, 0x6800, 0x3000, 0x3000, 0x8800, 0xC800, 0xD000, + 0xD000, 0xD000, 0x9000, 0x3800, 0x3800, 0x3800, 0x9000, 0xD000, 0xD000, 0x6800, 0x3800, 0x3800, 0x3800, 0xC000, 0xC800, 0xC000, + 0xC000, 0x5000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, 0x5800, 0x5800, 0x5000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x6800, 0x5000, 0x6000, 0x8800, 0x9000, 0x9000, 0x7000, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2000, 0x2000, 0x2800, 0x2800, 0x5000, 0xA800, 0xB000, + 0xB800, 0xA000, 0x2000, 0x2000, 0x2000, 0x7800, 0xA000, 0xA000, 0xA000, 0x7800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2000, 0x2000, + 0x2000, 0x2800, 0x2800, 0x5000, 0x7000, 0xB800, 0xE800, 0xF800, 0xF800, 0x8800, 0x2000, 0x2800, 0x8800, 0xD000, 0xD000, 0xC800, + 0x9800, 0x2800, 0x2800, 0x2800, 0x2800, 0x7000, 0xB000, 0xA800, 0xA000, 0x8800, 0x3000, 0x3000, 0x3000, 0x5000, 0xC000, 0xC000, + 0xC000, 0xB800, 0xB800, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0x6000, 0x3000, 0x3000, 0x3000, 0xA800, 0xD000, + 0xD000, 0xD800, 0xD800, 0xE000, 0xE000, 0xE000, 0xE000, 0xD800, 0xD800, 0xC800, 0x4800, 0x3800, 0x3800, 0xC000, 0xC800, 0xC000, + 0xC000, 0x5800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x5000, 0x5000, 0x5000, 0x5000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x7000, 0x7000, 0x8800, 0x8800, 0x8800, 0x6800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x5000, 0xA000, 0xB000, + 0xB800, 0xA800, 0x2000, 0x2000, 0x2000, 0x8000, 0xA000, 0xA800, 0xA000, 0x7800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2000, 0x4800, 0x7000, 0x3000, 0xB800, 0xF000, 0xF800, 0xF800, 0x9000, 0x2800, 0x2800, 0x9000, 0xD800, 0xD000, 0xD000, + 0x9800, 0x2800, 0x2800, 0x2800, 0x2800, 0x7000, 0xB000, 0xA800, 0xA000, 0x8800, 0x3000, 0x3000, 0x3000, 0x3000, 0x7800, 0xC800, + 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xB800, 0xB000, 0xC000, 0xC000, 0xC000, 0x6000, 0x3000, 0x3000, 0x3000, 0x3000, 0xA800, + 0xD000, 0xD800, 0xE000, 0xE000, 0xE800, 0xE800, 0xE000, 0xE000, 0xC800, 0x6800, 0x3800, 0x3800, 0x3800, 0xB800, 0xC800, 0xC000, + 0xC000, 0x6000, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x4800, 0x5000, 0x5000, + 0x2000, 0x2000, 0x2000, 0x2800, 0x2000, 0x2000, 0x2000, 0x2800, 0x2000, 0x2000, 0x3000, 0x8000, 0x8800, 0x8800, 0x8800, 0x6800, + 0x2800, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x5000, 0xA000, 0xB000, + 0xB800, 0xA800, 0x2000, 0x2800, 0x2800, 0x8000, 0xA800, 0xA800, 0xA800, 0x8000, 0x2800, 0x2000, 0x2000, 0x2000, 0x2800, 0x3000, + 0x2800, 0x4800, 0x7000, 0x3000, 0x2000, 0xB800, 0xF000, 0xF800, 0xF800, 0x9000, 0x2800, 0x2800, 0x9800, 0xE000, 0xE000, 0xD800, + 0xA000, 0x2800, 0x2800, 0x2800, 0x2800, 0x7000, 0xB800, 0xB000, 0xA800, 0x9000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x9000, + 0x9800, 0xC000, 0xC000, 0xC000, 0x8800, 0x5000, 0x8000, 0xC000, 0xC000, 0xC000, 0x6000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x6800, 0x9800, 0xE000, 0xE000, 0xE800, 0xE800, 0xB800, 0x8800, 0x3800, 0x4000, 0x3800, 0x3800, 0x3800, 0xB800, 0xC000, 0xC000, + 0xC000, 0x5000, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x5000, 0x5000, 0x5000, + 0x2800, 0x2000, 0x2800, 0x2800, 0x2000, 0x2000, 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, 0x3000, 0x7000, 0x5000, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2000, 0x2000, + 0x2800, 0x2800, 0x2000, 0x2800, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, + 0x5000, 0x7000, 0x6000, 0x5800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x2800, 0x3000, 0x3000, 0x2800, 0x4800, 0x7800, + 0x3000, 0x3000, 0x3000, 0x3800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3800, 0x3000, 0x3800, 0x5800, 0x6000, 0x5800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4800, 0x4000, 0x4800, 0x5000, 0x5000, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x6800, 0x6000, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2000, 0x2800, 0x2000, 0x2000, + 0x2000, 0x2800, 0x2800, 0x2000, 0x5000, 0x4000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x6000, + 0x6800, 0x2800, 0x3800, 0x3800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x7000, 0x5000, + 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3800, 0x3800, 0x3800, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x3800, 0x4000, 0x4000, 0x5800, 0x5000, 0x4000, 0x4800, 0x5000, 0x5000, + 0x2000, 0x2800, 0x2800, 0x2000, 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x5800, 0x7000, + 0x4000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x2800, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2800, 0x2800, 0x4800, 0x4000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x4000, 0x7000, 0x5800, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x4000, 0x8000, 0x3000, + 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x4000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4800, 0x5000, 0x5000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x4000, + 0x7000, 0x6000, 0x2800, 0x2000, 0x2800, 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x3000, 0x3800, 0x2800, 0x2000, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x6000, 0x7000, 0x4000, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x7000, 0x5800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4800, 0x4800, 0x5000, 0x5000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2800, 0x5000, 0x7800, 0x5800, 0x3000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x5800, 0x7800, 0x5000, 0x2800, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x4000, 0x8000, 0x3000, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4800, 0x4800, 0x5000, 0x5000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2000, 0x2800, 0x6800, 0x6800, 0x7000, 0x6800, 0x4800, 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x4800, 0x6800, 0x7800, 0x5000, 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2000, 0x1800, 0x1800, 0x3000, 0x3000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x3000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x7000, 0x5000, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3000, 0x3000, 0x3800, + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4800, 0x5000, 0x5000, + 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2000, 0x2000, 0x4000, 0x2800, 0x2000, 0x4000, 0x6000, 0x7800, 0x7000, 0x5800, 0x4800, 0x3000, 0x2000, 0x2000, 0x2000, 0x2800, + 0x2800, 0x2800, 0x3000, 0x4800, 0x5800, 0x7000, 0x7800, 0x6000, 0x4000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x3000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x5000, 0x7800, 0x3000, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3000, 0x3800, 0x3800, + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x3800, 0x3800, + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4800, 0x4800, 0x5000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, + 0x2000, 0x2000, 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x3800, 0x4800, 0x5800, 0x4800, 0x2000, 0x2000, 0x2000, 0x2800, + 0x2800, 0x2800, 0x4800, 0x5800, 0x4800, 0x3800, 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2000, 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x3000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x8000, 0x4000, 0x2800, 0x2800, 0x3000, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, + 0x3800, 0x4800, 0x5800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4000, 0x4000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x3800, 0x4000, 0x4000, 0x4800, 0x4800, + 0x2800, 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x1800, 0x2800, 0x4000, + 0x2000, 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x3000, 0x5000, 0x3000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2000, 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x2800, 0x2800, 0x2800, 0x2800, 0x6000, 0x6800, 0x3000, 0x3000, 0x2800, 0x2800, + 0x4000, 0x3800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x5800, 0x7800, 0x4000, 0x3800, 0x3800, 0x3800, 0x4000, 0x4800, 0x4000, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, + 0x2800, 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x4000, 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2000, 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x2800, 0x2800, 0x2800, 0x4800, 0x8000, 0x3000, 0x3000, 0x3000, 0x2800, 0x2800, + 0x6000, 0x5000, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x4000, 0x4000, 0x4000, 0x4000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x1800, 0x2000, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x2800, 0x2800, 0x2800, 0x3000, 0x8000, 0x4000, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, + 0x3000, 0x3000, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x4000, 0x4000, 0x4000, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x5800, 0x3800, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2800, 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x3000, 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x7000, 0x6000, 0x2800, 0x3000, 0x2800, 0x2800, 0x3000, 0x2800, + 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x3000, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x3800, 0x3800, 0x3800, 0x4000, + 0x4000, 0x3800, 0x4000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x3800, 0x3800, 0x4000, 0x4000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x1800, 0x3800, 0xA000, 0x5800, 0x1800, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x1800, 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x3000, 0x2800, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x5800, 0x7000, 0x3000, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x3800, 0x3800, 0x4800, 0x4000, 0x4000, 0x3800, 0x3800, 0x3800, 0x3800, 0x8800, + 0x8000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x1800, 0x1800, + 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2000, 0x2800, 0x3000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x4800, 0x7800, 0x3000, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x5800, 0x4800, 0x3800, 0x4000, 0x3800, 0x3800, 0x3800, 0x5800, + 0x5000, 0x4000, 0x4800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x1800, 0x2000, 0x2000, 0x1800, 0x1800, 0x1800, 0x2000, 0x1800, + 0x1800, 0x1800, 0x2000, 0x2000, 0x2000, 0x1800, 0x2000, 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x4000, 0x8000, 0x3800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, + 0x3000, 0x4000, 0x5800, 0x2000, 0x1800, 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x3800, 0x4000, 0x4000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x1800, 0x1800, 0x1800, 0x1800, + 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x3800, 0x3800, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x3000, 0x3000, 0x2800, 0x2800, 0x4000, 0x8000, 0x4800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, + 0x2000, 0x3800, 0x3000, 0x2000, 0x1800, 0x1800, 0x1800, 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x4800, 0x4800, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x1800, 0x1800, 0x1800, 0x1800, + 0x1800, 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2000, 0x2000, 0x2000, 0x6800, 0x5800, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x3000, 0x3000, 0x2800, 0x4000, 0x7800, 0x4800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x1800, 0x1800, 0x1800, 0x1800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2000, 0x1800, 0x1800, + 0x2000, 0x3800, 0x3800, 0x2000, 0x1800, 0x1800, 0x2000, 0x2800, 0x3000, 0x3000, 0x3000, 0x2000, 0x2000, 0x2800, 0x4800, 0x4800, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x1800, 0x2000, 0x1800, 0x1800, 0x1800, + 0x1800, 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x3000, 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x4000, 0x8000, 0x5000, 0x2800, 0x3000, 0x3000, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x4000, 0x5000, 0x3800, 0x3000, 0x3800, 0x3800, + 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x1800, 0x1800, 0x1800, 0x1800, 0x3000, 0x3800, 0x3800, 0x3800, 0x2800, 0x1800, 0x2000, + 0x3000, 0x3800, 0x3800, 0x2000, 0x1800, 0x1800, 0x3000, 0x4000, 0x4000, 0x4000, 0x3800, 0x2000, 0x2000, 0x3800, 0x4800, 0x5000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x1800, 0x1800, 0x1800, 0x1800, 0x2000, 0x1800, 0x1800, 0x1800, + 0x1800, 0x1800, 0x1800, 0x2000, 0x2000, 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x1800, 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x4000, 0x8000, 0x4800, 0x2800, 0x2800, 0x3000, 0x3000, 0x2800, 0x2800, 0x2800, 0x3000, 0x3800, 0x3000, 0x2800, 0x3000, + 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x4000, 0x3800, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x1800, 0x1800, 0x1800, 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x1800, 0x1800, 0x3000, + 0x3800, 0x3800, 0x3800, 0x2000, 0x1800, 0x1800, 0x2000, 0x2000, 0x2000, 0x2800, 0x2000, 0x2000, 0x3800, 0x5000, 0x4800, 0x4800, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, + 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, + 0x2800, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x4800, 0x8000, 0x4000, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x3000, + 0x3800, 0x3800, 0x3800, 0x2000, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x2000, 0x2000, 0x3800, 0x4800, 0x4800, 0x4000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, + 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2000, 0x3000, 0x5000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x5800, + 0x7800, 0x4000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, + 0x3000, 0x3800, 0x3800, 0x2000, 0x1800, 0x1800, 0x1800, 0x1800, 0x2000, 0x2000, 0x1800, 0x2800, 0x2800, 0x3800, 0x4800, 0x4800, + 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, 0x1800, 0x2000, 0x2000, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, + 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2000, 0x3800, 0x5000, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x6800, 0x7000, + 0x3000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x2800, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x1800, 0x1800, 0x1800, 0x1800, 0x2000, 0x2800, 0x2800, 0x2800, 0x2000, 0x1800, 0x1800, + 0x2000, 0x3000, 0x3800, 0x2000, 0x1800, 0x1800, 0x2000, 0x2800, 0x3800, 0x3800, 0x2800, 0x2000, 0x2000, 0x2000, 0x4800, 0x4800, + 0x7000, 0x3800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x1800, 0x1800, 0x1800, 0x2000, 0x2000, 0x1800, 0x1800, + 0x2000, 0x2000, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2000, 0x2000, 0x2800, 0x2800, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x4000, 0x7800, 0x5800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x1800, 0x1800, 0x1800, 0x1800, 0x3000, 0x3000, 0x3000, 0x3000, 0x2000, 0x1800, 0x1800, + 0x2000, 0x3000, 0x3000, 0x2000, 0x1800, 0x1800, 0x2800, 0x3800, 0x3800, 0x3800, 0x3800, 0x1800, 0x2000, 0x2000, 0x4000, 0x4000, + 0x3800, 0x7000, 0x5800, 0x2000, 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x1800, 0x1800, 0x1800, 0x2000, 0x2000, 0x1800, 0x1800, + 0x2000, 0x2000, 0x1800, 0x1800, 0x1800, 0x1800, 0x2000, 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2000, 0x2800, 0x2800, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x6000, 0x7800, 0x4000, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3800, 0x3000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x2000, 0x1800, 0x1800, 0x1800, + 0x2000, 0x3000, 0x3000, 0x2000, 0x1800, 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x1800, 0x1800, 0x2000, 0x4000, 0x4000, + 0x2000, 0x2800, 0x5800, 0x7000, 0x4000, 0x2000, 0x2000, 0x2000, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, + 0x1800, 0x1800, 0x2000, 0x2000, 0x1800, 0x2000, 0x2800, 0x2000, 0x1800, 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x1800, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x4800, 0x7800, 0x6000, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, + 0x2000, 0x3000, 0x3000, 0x2000, 0x1800, 0x2000, 0x2000, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x2000, 0x3800, 0x4000, + 0x2000, 0x2000, 0x2000, 0x3800, 0x6800, 0x6800, 0x4000, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x1800, 0x1800, 0x3000, 0x3000, 0x1800, 0x1800, 0x2000, 0x2000, 0x1800, 0x2000, + 0x2800, 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3800, 0x7000, 0x7000, 0x3800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2000, + 0x2000, 0x2000, 0x2800, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x2800, 0x3000, 0x3000, 0x3000, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x2000, 0x1800, 0x1800, + 0x2800, 0x3000, 0x3000, 0x2000, 0x1800, 0x1800, 0x1800, 0x2800, 0x2000, 0x1800, 0x1800, 0x1800, 0x1800, 0x2000, 0x3800, 0x4000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x4800, 0x7800, 0x5800, 0x2800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x1800, 0x2800, 0x6000, 0x3800, 0x1800, 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2000, 0x1800, 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3800, 0x6800, 0x7800, 0x4800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2000, + 0x2800, 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2000, 0x2800, + 0x3000, 0x3000, 0x3000, 0x3000, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x2800, 0x2800, 0x2800, 0x2800, 0x3800, 0x4000, 0x4000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x4000, 0x6800, 0x5800, 0x3000, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x1800, 0x5800, 0xA000, 0x3800, 0x1800, 0x1800, 0x2000, 0x2000, 0x2000, 0x1800, + 0x1800, 0x1800, 0x1800, 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x4000, 0x6800, 0x7800, 0x5000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2000, 0x2000, + 0x2800, 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, + 0x1800, 0x2000, 0x1800, 0x2000, 0x2000, 0x1800, 0x1800, 0x1800, 0x1800, 0x3800, 0x6000, 0x6800, 0x4800, 0x2800, 0x1800, 0x1800, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x3800, 0x2800, 0x1800, 0x2000, 0x1800, 0x2000, 0x1800, 0x1800, + 0x1800, 0x2000, 0x2000, 0x1800, 0x2000, 0x2000, 0x2800, 0x2800, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x3000, 0x5000, 0x7800, 0x7000, 0x4800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x3800, 0x3800, 0x2000, 0x2800, 0x2800, 0x3800, 0x3000, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x1800, 0x2000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x4800, 0x4000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x4000, 0x4000, 0x4000, + 0x2000, 0x1800, 0x1800, 0x1800, 0x2000, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x3000, 0x5000, 0x7000, 0x6000, 0x4000, + 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x1800, 0x1800, 0x1800, 0x2000, 0x2000, 0x1800, 0x1800, 0x2800, 0x3000, + 0x3000, 0x2000, 0x1800, 0x1800, 0x2000, 0x1800, 0x2800, 0x3000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x3800, 0x5000, 0x7000, + 0x7800, 0x6000, 0x4000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2000, 0x2000, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x3000, 0x2000, 0x2000, 0x2800, 0x3000, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x1800, 0x1800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3000, 0x3000, 0x3000, 0x3800, 0x4000, 0x4000, 0x3800, + 0x2000, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x2000, 0x3800, 0x5800, + 0x7000, 0x6800, 0x5800, 0x4000, 0x2800, 0x1800, 0x1800, 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x1800, 0x1800, 0x3000, 0x4000, + 0x4800, 0x2000, 0x1800, 0x1800, 0x2800, 0x4800, 0x2800, 0x2000, 0x2800, 0x3000, 0x4800, 0x6000, 0x7800, 0x7800, 0x6000, 0x4000, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2000, 0x2800, 0x2800, + 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x1800, 0x2000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x2800, 0x1800, 0x1800, 0x1800, + 0x2000, 0x2800, 0x1800, 0x1800, 0x1800, 0x1800, 0x2800, 0x3800, 0x3000, 0x1800, 0x1800, 0x1800, 0x3000, 0x4000, 0x4000, 0x4000, + 0x2000, 0x2000, 0x1800, 0x1800, 0x1800, 0x2000, 0x2000, 0x2000, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x2000, 0x2000, + 0x2000, 0x3000, 0x4000, 0x5800, 0x7000, 0x7000, 0x6000, 0x5000, 0x4800, 0x4000, 0x3800, 0x2800, 0x1800, 0x1800, 0x1800, 0x1800, + 0x1800, 0x2000, 0x2800, 0x3000, 0x4800, 0x6000, 0x5800, 0x6800, 0x7800, 0x7800, 0x6800, 0x5000, 0x3800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2000, 0x3000, 0x3000, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x4000, + 0x3000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x1800, 0x1800, 0x3800, 0x3800, 0x3000, 0x3000, 0x2800, 0x1800, 0x2000, 0x2000, 0x1800, + 0x2000, 0x2800, 0x1800, 0x2000, 0x2000, 0x1800, 0x2800, 0x3000, 0x1800, 0x2800, 0x2800, 0x2800, 0x3800, 0x3800, 0x4000, 0x4000, + 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, + 0x2000, 0x2000, 0x2000, 0x1800, 0x1800, 0x2000, 0x3000, 0x4000, 0x4800, 0x6000, 0x6800, 0x4000, 0x1800, 0x1800, 0x1800, 0x1800, + 0x1800, 0x2000, 0x4000, 0x6000, 0x5800, 0x4800, 0x4800, 0x3800, 0x2800, 0x2800, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, + 0x2800, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x1800, 0x1800, 0x3000, 0x3800, 0x3000, 0x3000, 0x2800, 0x1800, 0x1800, 0x2000, 0x1800, + 0x2000, 0x2800, 0x1800, 0x2000, 0x2000, 0x2000, 0x3000, 0x2800, 0x1800, 0x2800, 0x2800, 0x2800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x2000, 0x2000, 0x1800, 0x2000, 0x1800, 0x2000, 0x2000, 0x2000, 0x1800, 0x1800, + 0x1800, 0x2000, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x2000, 0x2000, 0x1800, 0x1800, 0x2000, 0x2000, 0x1800, 0x1800, 0x1800, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2000, 0x2000, 0x2000, + 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2000, + 0x2000, 0x2800, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x1800, 0x2000, 0x2800, 0x2800, 0x3000, 0x3000, 0x2800, 0x1800, 0x1800, 0x1800, 0x1800, + 0x2000, 0x2800, 0x1800, 0x1800, 0x1800, 0x1800, 0x3000, 0x2800, 0x2000, 0x1800, 0x1800, 0x1800, 0x3000, 0x3800, 0x3800, 0x4000, + 0x1800, 0x1800, 0x2000, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x1800, 0x1800, + 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, + 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2000, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2000, 0x2800, 0x2000, 0x2000, 0x2000, + 0x2000, 0x2000, 0x5000, 0x6000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x1800, 0x2000, 0x3000, 0x3000, 0x3000, 0x3000, 0x2800, 0x1800, 0x2000, 0x2800, 0x1800, + 0x2000, 0x2800, 0x1800, 0x2800, 0x2800, 0x1800, 0x2800, 0x3000, 0x3000, 0x3000, 0x2800, 0x2000, 0x3000, 0x3800, 0x3800, 0x3800, + 0x2000, 0x2000, 0x2000, 0x2000, 0x1800, 0x1800, 0x1800, 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x1800, 0x1800, + 0x1800, 0x1800, 0x2000, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x2000, + 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2000, 0x2000, 0x6000, 0x7000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x4800, 0x4800, 0x2800, 0x3000, 0x2800, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x1800, 0x2000, 0x3000, 0x3000, 0x3000, 0x3000, 0x2000, 0x1000, 0x2800, 0x3000, 0x1800, + 0x2000, 0x2000, 0x1800, 0x1800, 0x1800, 0x1800, 0x2800, 0x2000, 0x1800, 0x1800, 0x2000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x1800, 0x1800, 0x1800, 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2000, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x2000, 0x2000, 0x1800, 0x1800, 0x1800, 0x1800, + 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2000, 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2000, 0x2800, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3800, 0x4000, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x1800, 0x2000, 0x3000, 0x3000, 0x3000, 0x2800, 0x2800, 0x2000, 0x2800, 0x3000, 0x2000, + 0x2800, 0x2800, 0x2000, 0x2000, 0x2800, 0x2800, 0x3000, 0x2800, 0x2800, 0x2800, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x1800, 0x2000, 0x2000, 0x3000, 0x2800, 0x1800, 0x2000, 0x1800, 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2000, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x2800, 0x3800, 0x1800, 0x1800, 0x1800, 0x1800, + 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2000, 0x2000, 0x2000, 0x2800, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x1800, 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, + 0x2000, 0x2000, 0x2000, 0x3000, 0x2000, 0x1800, 0x2000, 0x1800, 0x1800, 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, + 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x2000, + 0x1800, 0x1800, 0x2000, 0x2800, 0x2800, 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x3000, 0x3000, 0x2000, 0x2000, + 0x2000, 0x2800, 0x2800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x2800, 0x2800, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2800, 0x3800, 0x3800, + 0x2000, 0x2000, 0x1800, 0x1800, 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x1800, + 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x2000, + 0x2000, 0x1800, 0x1800, 0x2000, 0x2000, 0x1800, 0x1800, 0x1800, 0x2000, 0x2000, 0x2000, 0x2000, 0x4800, 0x4000, 0x2000, 0x2000, + 0x2800, 0x2800, 0x2800, 0x2800, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, + 0x2000, 0x2000, 0x2000, 0x2800, 0x2800, 0x2800, 0x2800, 0x2800, 0x3800, 0x4800, 0x2800, 0x2800, 0x3000, 0x2800, 0x2800, 0x3000, + 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x2800, 0x2800, 0x3000, 0x3000, 0x3000, + 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, 0x3800, +}; diff --git a/nixos/services.nix b/nixos/services.nix index 64fa24065..c1ad8ba70 100644 --- a/nixos/services.nix +++ b/nixos/services.nix @@ -3,6 +3,7 @@ let cfg = config.pifinder; cedar-detect = import ./pkgs/cedar-detect.nix { inherit pkgs; }; pifinder-src = import ./pkgs/pifinder-src.nix { inherit pkgs; }; + boot-splash = import ./pkgs/boot-splash.nix { inherit pkgs; }; in { options.pifinder = { devMode = lib.mkOption { @@ -170,24 +171,21 @@ in { }; # --------------------------------------------------------------------------- - # Early boot indicator — turn on keypad LEDs ASAP for visual feedback + # Early boot splash — show welcome image with Knight Rider animation + # Stops automatically when pifinder.service starts # --------------------------------------------------------------------------- - systemd.services.boot-indicator = { - description = "Early boot LED indicator"; + systemd.services.boot-splash = { + description = "Early boot splash screen"; wantedBy = [ "sysinit.target" ]; before = [ "pifinder.service" ]; - serviceConfig.Type = "oneshot"; - script = '' - # Export PWM channel 1 if not already exported - if [ ! -d /sys/class/pwm/pwmchip0/pwm1 ]; then - echo 1 > /sys/class/pwm/pwmchip0/export 2>/dev/null || true - sleep 0.1 - fi - # Configure PWM: 120Hz, 50% duty cycle - echo 8333333 > /sys/class/pwm/pwmchip0/pwm1/period 2>/dev/null || true - echo 4166666 > /sys/class/pwm/pwmchip0/pwm1/duty_cycle 2>/dev/null || true - echo 1 > /sys/class/pwm/pwmchip0/pwm1/enable 2>/dev/null || true - ''; + conflicts = [ "pifinder.service" ]; # Stop when pifinder starts + serviceConfig = { + Type = "simple"; + ExecStart = "${boot-splash}/bin/boot-splash"; + # Graceful shutdown on SIGTERM + KillSignal = "SIGTERM"; + TimeoutStopSec = 2; + }; }; # --------------------------------------------------------------------------- From b3bd709a5551f9cccb5dd5f4fffffe88596a4541 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 9 Feb 2026 14:52:19 +0100 Subject: [PATCH 025/144] fix: make Knight Rider scanner brighter red --- nixos/pkgs/boot-splash.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nixos/pkgs/boot-splash.c b/nixos/pkgs/boot-splash.c index 1648682f1..cc0b0c26b 100644 --- a/nixos/pkgs/boot-splash.c +++ b/nixos/pkgs/boot-splash.c @@ -167,11 +167,11 @@ static void draw_scanner(int pos, int scanner_width) { uint16_t color = COL_BLACK; if (dist < scanner_width) { - /* Gradient: brighter at center */ + /* Gradient: brighter at center, RED color in BGR565 */ int intensity = 31 - (dist * 31 / scanner_width); - if (intensity < 0) intensity = 0; - /* Red in BGR565: 0x001F is max red */ - color = intensity; + if (intensity < 8) intensity = 8; /* Minimum brightness */ + /* BGR565: BBBBBGGGGGGRRRRR - red is lowest 5 bits (0x001F = max red) */ + color = (uint16_t)intensity & 0x1F; } for (int y = y_start; y < HEIGHT; y++) { From 91f926ef0b2558430154c687bb3066424ea6dc75 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 9 Feb 2026 14:55:53 +0100 Subject: [PATCH 026/144] fix: stop boot-splash via ExecStartPre instead of conflicts --- nixos/services.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nixos/services.nix b/nixos/services.nix index c1ad8ba70..a4b090d22 100644 --- a/nixos/services.nix +++ b/nixos/services.nix @@ -172,22 +172,22 @@ in { # --------------------------------------------------------------------------- # Early boot splash — show welcome image with Knight Rider animation - # Stops automatically when pifinder.service starts + # Stops automatically when pifinder.service starts (via ExecStartPre) # --------------------------------------------------------------------------- systemd.services.boot-splash = { description = "Early boot splash screen"; wantedBy = [ "sysinit.target" ]; - before = [ "pifinder.service" ]; - conflicts = [ "pifinder.service" ]; # Stop when pifinder starts serviceConfig = { Type = "simple"; ExecStart = "${boot-splash}/bin/boot-splash"; - # Graceful shutdown on SIGTERM KillSignal = "SIGTERM"; TimeoutStopSec = 2; }; }; + # Stop boot-splash before pifinder starts to release GPIO/SPI + systemd.services.pifinder.serviceConfig.ExecStartPre = "-${pkgs.systemd}/bin/systemctl stop boot-splash"; + # --------------------------------------------------------------------------- # Main PiFinder application # --------------------------------------------------------------------------- From 9a70253c9eed91bfe120e07ad4b984e0674f7e38 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 9 Feb 2026 15:24:05 +0100 Subject: [PATCH 027/144] fix: minimize bootstrap closure size - Remove nixos-hardware module (saves 659MB linux-firmware) - Fetch nixos-rebuild at runtime (saves ~500MB llvm/nix deps) - Remove git from systemPackages (nix has built-in git for flakes) Target: ~150MB vs current 1.7GB --- flake.nix | 29 ++++++++++++++++++++++++++--- nixos/bootstrap.nix | 13 ++++++++----- 2 files changed, 34 insertions(+), 8 deletions(-) diff --git a/flake.nix b/flake.nix index e50b044b6..67dd27f50 100644 --- a/flake.nix +++ b/flake.nix @@ -120,25 +120,36 @@ modules = commonModules ++ [ { pifinder.devMode = true; } { pifinder.cameraType = "imx477"; } # HQ camera for netboot dev - ({ lib, pkgs, ... }: { + ({ lib, pkgs, ... }: + let + boot-splash = import ./nixos/pkgs/boot-splash.nix { inherit pkgs; }; + in { # Static passwd/group — NFS can't run activation scripts users.mutableUsers = false; # DNS for netboot (udhcpc doesn't configure resolvconf properly) networking.nameservers = [ "192.168.5.1" "8.8.8.8" ]; boot.supportedFilesystems = lib.mkForce [ "vfat" "ext4" "nfs" ]; boot.initrd.supportedFilesystems = [ "nfs" ]; + # Add SPI kernel module for early OLED splash + boot.initrd.kernelModules = [ "spi_bcm2835" ]; # Override the minimal module list from commonModules — add network drivers # Note: genet (RPi4 ethernet) is built into the kernel, not a module boot.initrd.availableKernelModules = lib.mkForce [ "mmc_block" "usbhid" "usb_storage" "vc4" ]; + # Add boot-splash to initrd + boot.initrd.extraUtilsCommands = '' + copy_bin_and_libs ${boot-splash}/bin/boot-splash + ''; # Disable predictable interface names so eth0 works boot.kernelParams = [ "net.ifnames=0" "biosdevname=0" ]; boot.initrd.network = { enable = true; }; - # Manually configure network before NFS mount + # Start splash immediately, then configure network boot.initrd.postDeviceCommands = '' + # Start OLED splash in background (shows Knight Rider animation) + boot-splash & # Wait for interface to appear (up to 30 seconds) echo "Waiting for eth0..." for i in $(seq 1 60); do @@ -187,6 +198,11 @@ fsType = "nfs"; options = [ "vers=4" "noac" "actimeo=0" ]; }; + # Kill initrd boot-splash before pivoting to real root + # (systemd boot-splash.service takes over from there) + boot.initrd.postMountCommands = '' + killall boot-splash 2>/dev/null || true + ''; # Dummy /boot — not used for netboot but NixOS requires it fileSystems."/boot" = { device = "none"; @@ -207,10 +223,17 @@ # Bootstrap system for migration from RPi OS # Minimal NixOS that boots, connects to network, and runs nixos-rebuild switch + # NOTE: Does NOT use nixos-hardware module to avoid pulling in linux-firmware (659MB) mkBootstrapSystem = { includeSDImage ? false }: nixpkgs.lib.nixosSystem { system = "aarch64-linux"; modules = [ - nixos-hardware.nixosModules.raspberry-pi-4 + # Inline minimal Pi4 hardware config instead of nixos-hardware module + ({ lib, ... }: { + # Basic Pi 4 kernel - no extra firmware needed for bootstrap + boot.kernelPackages = lib.mkDefault (import nixpkgs { system = "aarch64-linux"; }).linuxPackages_rpi4; + hardware.enableRedistributableFirmware = lib.mkForce false; + hardware.firmware = lib.mkForce []; + }) ./nixos/bootstrap.nix ] ++ nixpkgs.lib.optionals includeSDImage [ "${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix" diff --git a/nixos/bootstrap.nix b/nixos/bootstrap.nix index 4b4bd518f..214163889 100644 --- a/nixos/bootstrap.nix +++ b/nixos/bootstrap.nix @@ -125,9 +125,8 @@ in { # --------------------------------------------------------------------------- # Minimal packages # --------------------------------------------------------------------------- + # Minimal packages - nix has built-in git support for flakes environment.systemPackages = with pkgs; [ - git - curl progressScript ]; @@ -179,7 +178,8 @@ in { TimeoutStartSec = "30min"; }; - path = with pkgs; [ nixos-rebuild git nix coreutils gnugrep gawk systemd inetutils ]; + # Minimal path - nixos-rebuild fetched at runtime to avoid pulling llvm into closure + path = with pkgs; [ nix coreutils gnugrep gawk systemd inetutils ]; script = '' set -euo pipefail @@ -261,9 +261,12 @@ in { FLAKE="github:brickbots/PiFinder/release#pifinder" + # Fetch nixos-rebuild at runtime to avoid bloating bootstrap closure + # This adds ~30s but saves ~500MB in the tarball + progress 77 "Fetching tools" + # Parse nix build output for progress - # Using --log-format bar-with-logs for parseable output - if nixos-rebuild switch --flake "$FLAKE" --refresh 2>&1 | \ + if nix shell nixpkgs#nixos-rebuild -c nixos-rebuild switch --flake "$FLAKE" --refresh 2>&1 | \ while IFS= read -r line; do echo "$line" # Pass through for logging From e78c47ed2b6655064245e75489cb54107fc2a803 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 9 Feb 2026 15:28:52 +0100 Subject: [PATCH 028/144] fix: strip more bloat from bootstrap - Remove default packages (vim, nano, etc) - Disable polkit, udisks2, speechd - Should reduce closure significantly --- nixos/bootstrap.nix | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/nixos/bootstrap.nix b/nixos/bootstrap.nix index 214163889..608c2f212 100644 --- a/nixos/bootstrap.nix +++ b/nixos/bootstrap.nix @@ -323,4 +323,17 @@ in { fonts.fontconfig.enable = false; xdg.portal.enable = false; services.xserver.enable = false; + + # Remove default packages that bloat the image + environment.defaultPackages = lib.mkForce []; + programs.nano.enable = false; + programs.vim.defaultEditor = false; + + # Disable unnecessary services + services.udisks2.enable = false; + security.polkit.enable = lib.mkForce false; + services.speechd.enable = lib.mkForce false; + + # Minimal nix - no gc, no daemon overhead + nix.gc.automatic = false; } From 371655aa1be4ca13f08679ffec04ce1441b6d4d6 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 9 Feb 2026 15:32:20 +0100 Subject: [PATCH 029/144] fix: disable NetworkManager VPN plugins NetworkManager-vpnc alone has 1.1GB closure (webkitgtk, llvm, etc). Disable all NM plugins for bootstrap - we just need WiFi. --- nixos/bootstrap.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/nixos/bootstrap.nix b/nixos/bootstrap.nix index 608c2f212..c4c10b4ba 100644 --- a/nixos/bootstrap.nix +++ b/nixos/bootstrap.nix @@ -86,7 +86,11 @@ in { # --------------------------------------------------------------------------- networking = { hostName = "pifinder-bootstrap"; - networkmanager.enable = true; + networkmanager = { + enable = true; + # Disable VPN plugins - they pull in 1GB+ of deps (webkitgtk, llvm, etc) + plugins = lib.mkForce []; + }; wireless.enable = false; }; From 530717cc11b41820a0b6509e0aebce63acec919e Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 9 Feb 2026 15:37:08 +0100 Subject: [PATCH 030/144] fix: swap type-ignore before noqa for mypy parsing --- python/PiFinder/sys_utils_nixos.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/PiFinder/sys_utils_nixos.py b/python/PiFinder/sys_utils_nixos.py index a4c8813c6..5d1ced298 100644 --- a/python/PiFinder/sys_utils_nixos.py +++ b/python/PiFinder/sys_utils_nixos.py @@ -21,7 +21,7 @@ import gi # type: ignore[import-not-found] gi.require_version("NM", "1.0") -from gi.repository import GLib, NM # noqa: E402 # type: ignore[import-not-found] +from gi.repository import GLib, NM # type: ignore[import-not-found] # noqa: E402 from PiFinder import utils # noqa: E402 from PiFinder.sys_utils_base import ( # noqa: E402 From 75fdff8ff499d846b3d00e62a9b8af91bbbe8fab Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 9 Feb 2026 15:38:39 +0100 Subject: [PATCH 031/144] fix: strip more bloat - disable xdg, fuse, perl deps - Disable xdg.mime/icons/sounds (pulls xdg-utils -> perl 112MB) - Disable command-not-found (pulls perl) - Disable fuse (86MB) - Disable initrd extra filesystems --- nixos/bootstrap.nix | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/nixos/bootstrap.nix b/nixos/bootstrap.nix index c4c10b4ba..4461b7bc4 100644 --- a/nixos/bootstrap.nix +++ b/nixos/bootstrap.nix @@ -332,12 +332,23 @@ in { environment.defaultPackages = lib.mkForce []; programs.nano.enable = false; programs.vim.defaultEditor = false; + programs.command-not-found.enable = false; # pulls perl # Disable unnecessary services services.udisks2.enable = false; security.polkit.enable = lib.mkForce false; services.speechd.enable = lib.mkForce false; + # Disable xdg stuff that pulls in perl via xdg-utils + xdg.mime.enable = false; + xdg.icons.enable = false; + xdg.sounds.enable = false; + xdg.autostart.enable = false; + + # Disable fuse/fusermount (86MB) + programs.fuse.userAllowOther = false; + boot.initrd.supportedFilesystems = lib.mkForce []; + # Minimal nix - no gc, no daemon overhead nix.gc.automatic = false; } From 0c4ef2ead3a9fde4fb88d76f5a52e59b64bddef1 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 9 Feb 2026 15:41:09 +0100 Subject: [PATCH 032/144] fix: disable lesspipe (pulls perl 112MB) --- nixos/bootstrap.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/nixos/bootstrap.nix b/nixos/bootstrap.nix index 4461b7bc4..ede3450b6 100644 --- a/nixos/bootstrap.nix +++ b/nixos/bootstrap.nix @@ -333,6 +333,7 @@ in { programs.nano.enable = false; programs.vim.defaultEditor = false; programs.command-not-found.enable = false; # pulls perl + programs.less.lessopen = null; # lesspipe pulls perl (112MB) # Disable unnecessary services services.udisks2.enable = false; From 617d202145203e4cd6e970677474a24db55de270 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 9 Feb 2026 15:44:05 +0100 Subject: [PATCH 033/144] fix: replace NetworkManager with wpa_supplicant NetworkManager pulls in 427MB of GTK via VPN deps (openconnect -> stoken -> gtk). Use wpa_supplicant + dhcpcd instead - much smaller and sufficient for bootstrap. --- nixos/bootstrap.nix | 32 ++++++++------------------------ 1 file changed, 8 insertions(+), 24 deletions(-) diff --git a/nixos/bootstrap.nix b/nixos/bootstrap.nix index ede3450b6..f373d5818 100644 --- a/nixos/bootstrap.nix +++ b/nixos/bootstrap.nix @@ -82,33 +82,17 @@ in { }; # --------------------------------------------------------------------------- - # Networking - NetworkManager for WiFi (creds migrated from RPi OS) + # Networking - wpa_supplicant + dhcpcd (minimal, no GTK deps) + # NetworkManager pulls in 427MB of GTK via VPN deps # --------------------------------------------------------------------------- networking = { hostName = "pifinder-bootstrap"; - networkmanager = { + useDHCP = true; + wireless = { enable = true; - # Disable VPN plugins - they pull in 1GB+ of deps (webkitgtk, llvm, etc) - plugins = lib.mkForce []; + # WiFi creds will be in /etc/wpa_supplicant.conf (migrated from RPi OS) + userControlled.enable = false; }; - wireless.enable = false; - }; - - # Wired ethernet autoconnect (fallback if WiFi fails) - environment.etc."NetworkManager/system-connections/Wired.nmconnection" = { - text = '' - [connection] - id=Wired - type=ethernet - autoconnect=true - - [ipv4] - method=auto - - [ipv6] - method=auto - ''; - mode = "0600"; }; # --------------------------------------------------------------------------- @@ -141,7 +125,7 @@ in { users.users.pifinder = { isNormalUser = true; initialPassword = "solveit"; - extraGroups = [ "networkmanager" "systemd-journal" ]; + extraGroups = [ "wheel" "systemd-journal" ]; }; # --------------------------------------------------------------------------- @@ -251,7 +235,7 @@ in { fi # Show connection status - conn_state=$(nmcli -t -f STATE general 2>/dev/null || echo "unknown") + conn_state=$(ip route get 8.8.8.8 2>/dev/null | head -1 || echo "no route") progress 72 "Connecting..." "$conn_state" sleep 5 done From baf9d1bd192073dcce037ba296ab6ffd5d81bc7d Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 9 Feb 2026 15:45:53 +0100 Subject: [PATCH 034/144] fix: override NetworkManager to exclude openconnect Use overlay to build NM without openconnect VPN support. This removes the GTK dependency chain (427MB). --- nixos/bootstrap.nix | 40 ++++++++++++++++++++++++++++++++-------- 1 file changed, 32 insertions(+), 8 deletions(-) diff --git a/nixos/bootstrap.nix b/nixos/bootstrap.nix index f373d5818..24532dc91 100644 --- a/nixos/bootstrap.nix +++ b/nixos/bootstrap.nix @@ -82,17 +82,41 @@ in { }; # --------------------------------------------------------------------------- - # Networking - wpa_supplicant + dhcpcd (minimal, no GTK deps) - # NetworkManager pulls in 427MB of GTK via VPN deps + # Networking - NetworkManager without VPN bloat # --------------------------------------------------------------------------- networking = { hostName = "pifinder-bootstrap"; - useDHCP = true; - wireless = { + networkmanager = { enable = true; - # WiFi creds will be in /etc/wpa_supplicant.conf (migrated from RPi OS) - userControlled.enable = false; + plugins = lib.mkForce []; }; + wireless.enable = false; + }; + + # Override NetworkManager to exclude openconnect (pulls GTK 427MB via stoken) + nixpkgs.overlays = [ + (final: prev: { + networkmanager = prev.networkmanager.override { + withOpenconnect = false; + }; + }) + ]; + + # Wired ethernet autoconnect (fallback if WiFi fails) + environment.etc."NetworkManager/system-connections/Wired.nmconnection" = { + text = '' + [connection] + id=Wired + type=ethernet + autoconnect=true + + [ipv4] + method=auto + + [ipv6] + method=auto + ''; + mode = "0600"; }; # --------------------------------------------------------------------------- @@ -125,7 +149,7 @@ in { users.users.pifinder = { isNormalUser = true; initialPassword = "solveit"; - extraGroups = [ "wheel" "systemd-journal" ]; + extraGroups = [ "networkmanager" "systemd-journal" ]; }; # --------------------------------------------------------------------------- @@ -235,7 +259,7 @@ in { fi # Show connection status - conn_state=$(ip route get 8.8.8.8 2>/dev/null | head -1 || echo "no route") + conn_state=$(nmcli -t -f STATE general 2>/dev/null || echo "unknown") progress 72 "Connecting..." "$conn_state" sleep 5 done From c5eefd6cd42a3ac8d98dce1a917cd985136614eb Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 9 Feb 2026 15:48:20 +0100 Subject: [PATCH 035/144] fix: remove invalid NetworkManager overlay The withOpenconnect parameter does not exist. VPN plugins are already excluded via plugins = lib.mkForce [] in the module config. Co-Authored-By: Claude Opus 4.5 --- nixos/bootstrap.nix | 9 --------- 1 file changed, 9 deletions(-) diff --git a/nixos/bootstrap.nix b/nixos/bootstrap.nix index 24532dc91..eeecd99eb 100644 --- a/nixos/bootstrap.nix +++ b/nixos/bootstrap.nix @@ -93,15 +93,6 @@ in { wireless.enable = false; }; - # Override NetworkManager to exclude openconnect (pulls GTK 427MB via stoken) - nixpkgs.overlays = [ - (final: prev: { - networkmanager = prev.networkmanager.override { - withOpenconnect = false; - }; - }) - ]; - # Wired ethernet autoconnect (fallback if WiFi fails) environment.etc."NetworkManager/system-connections/Wired.nmconnection" = { text = '' From b2c18c5fce5c9bc7ad728584fc156f3e24f07b7d Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 9 Feb 2026 15:49:27 +0100 Subject: [PATCH 036/144] fix: use bare type: ignore for gi.repository import --- python/PiFinder/sys_utils_nixos.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/PiFinder/sys_utils_nixos.py b/python/PiFinder/sys_utils_nixos.py index 5d1ced298..b4a16981d 100644 --- a/python/PiFinder/sys_utils_nixos.py +++ b/python/PiFinder/sys_utils_nixos.py @@ -21,7 +21,7 @@ import gi # type: ignore[import-not-found] gi.require_version("NM", "1.0") -from gi.repository import GLib, NM # type: ignore[import-not-found] # noqa: E402 +from gi.repository import GLib, NM # type: ignore # noqa: E402 from PiFinder import utils # noqa: E402 from PiFinder.sys_utils_base import ( # noqa: E402 From 448e2563e50d45bfb06b4aaf53adc9ac038f8fb4 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 9 Feb 2026 15:51:09 +0100 Subject: [PATCH 037/144] fix: override openconnect with dummy to remove GTK dep NetworkManager fix-paths.patch embeds openconnect binary path. Override with a dummy script to avoid pulling openconnect -> stoken -> GTK 427MB. Co-Authored-By: Claude Opus 4.5 --- nixos/bootstrap.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/nixos/bootstrap.nix b/nixos/bootstrap.nix index eeecd99eb..ff036197d 100644 --- a/nixos/bootstrap.nix +++ b/nixos/bootstrap.nix @@ -93,6 +93,16 @@ in { wireless.enable = false; }; + # Override NetworkManager to exclude openconnect (pulls GTK 427MB via stoken) + # The fix-paths.patch substitutes openconnect binary path - use a dummy + nixpkgs.overlays = [ + (final: prev: { + networkmanager = prev.networkmanager.override { + openconnect = final.writeShellScriptBin "openconnect" "exit 1"; + }; + }) + ]; + # Wired ethernet autoconnect (fallback if WiFi fails) environment.etc."NetworkManager/system-connections/Wired.nmconnection" = { text = '' From 7c82e9aca692539ee903bb0e352fb23d741a9bfd Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 9 Feb 2026 15:57:10 +0100 Subject: [PATCH 038/144] fix: override modemmanager to remove 284MB cellular bloat Co-Authored-By: Claude Opus 4.5 --- nixos/bootstrap.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/nixos/bootstrap.nix b/nixos/bootstrap.nix index ff036197d..291726e50 100644 --- a/nixos/bootstrap.nix +++ b/nixos/bootstrap.nix @@ -93,12 +93,14 @@ in { wireless.enable = false; }; - # Override NetworkManager to exclude openconnect (pulls GTK 427MB via stoken) - # The fix-paths.patch substitutes openconnect binary path - use a dummy + # Override NetworkManager to exclude VPN/modem bloat + # - openconnect pulls GTK 427MB via stoken + # - modemmanager pulls 284MB for cellular modem support we don't need nixpkgs.overlays = [ (final: prev: { networkmanager = prev.networkmanager.override { openconnect = final.writeShellScriptBin "openconnect" "exit 1"; + modemmanager = final.writeShellScriptBin "mmcli" "exit 1"; }; }) ]; From 4f7f816212a6674523354e07eb36506f0f354c39 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 9 Feb 2026 15:58:32 +0100 Subject: [PATCH 039/144] revert: remove broken modemmanager override MM is a build-time dependency of NM, not just runtime. Reverts to working 376MB state. Co-Authored-By: Claude Opus 4.5 --- nixos/bootstrap.nix | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/nixos/bootstrap.nix b/nixos/bootstrap.nix index 291726e50..8e90655d0 100644 --- a/nixos/bootstrap.nix +++ b/nixos/bootstrap.nix @@ -93,14 +93,12 @@ in { wireless.enable = false; }; - # Override NetworkManager to exclude VPN/modem bloat - # - openconnect pulls GTK 427MB via stoken - # - modemmanager pulls 284MB for cellular modem support we don't need + # Override NetworkManager to exclude VPN bloat + # openconnect pulls GTK 427MB via stoken nixpkgs.overlays = [ (final: prev: { networkmanager = prev.networkmanager.override { openconnect = final.writeShellScriptBin "openconnect" "exit 1"; - modemmanager = final.writeShellScriptBin "mmcli" "exit 1"; }; }) ]; From 64669d2bf095c9dff88e59debb07d9691734cdcb Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 9 Feb 2026 16:37:28 +0100 Subject: [PATCH 040/144] feat: switch from NetworkManager to iwd + systemd-networkd iwd is ~10x lighter than NetworkManager for WiFi-only use. - Removes modemmanager, VPN plugins, glib/polkit bloat - Uses systemd-networkd for DHCP - iwctl CLI available for managing networks Co-Authored-By: Claude Opus 4.5 --- nixos/bootstrap.nix | 53 ++++++++++++++++----------------------------- 1 file changed, 19 insertions(+), 34 deletions(-) diff --git a/nixos/bootstrap.nix b/nixos/bootstrap.nix index 8e90655d0..56c2c82b2 100644 --- a/nixos/bootstrap.nix +++ b/nixos/bootstrap.nix @@ -82,42 +82,27 @@ in { }; # --------------------------------------------------------------------------- - # Networking - NetworkManager without VPN bloat + # Networking - iwd + systemd-networkd (much lighter than NetworkManager) # --------------------------------------------------------------------------- networking = { hostName = "pifinder-bootstrap"; - networkmanager = { - enable = true; - plugins = lib.mkForce []; - }; - wireless.enable = false; + useNetworkd = true; + wireless.iwd.enable = true; }; - # Override NetworkManager to exclude VPN bloat - # openconnect pulls GTK 427MB via stoken - nixpkgs.overlays = [ - (final: prev: { - networkmanager = prev.networkmanager.override { - openconnect = final.writeShellScriptBin "openconnect" "exit 1"; + # systemd-networkd config for DHCP on all interfaces + systemd.network = { + enable = true; + networks = { + "20-wired" = { + matchConfig.Type = "ether"; + networkConfig.DHCP = "yes"; }; - }) - ]; - - # Wired ethernet autoconnect (fallback if WiFi fails) - environment.etc."NetworkManager/system-connections/Wired.nmconnection" = { - text = '' - [connection] - id=Wired - type=ethernet - autoconnect=true - - [ipv4] - method=auto - - [ipv6] - method=auto - ''; - mode = "0600"; + "25-wireless" = { + matchConfig.Type = "wlan"; + networkConfig.DHCP = "yes"; + }; + }; }; # --------------------------------------------------------------------------- @@ -150,7 +135,7 @@ in { users.users.pifinder = { isNormalUser = true; initialPassword = "solveit"; - extraGroups = [ "networkmanager" "systemd-journal" ]; + extraGroups = [ "wheel" "systemd-journal" ]; }; # --------------------------------------------------------------------------- @@ -180,8 +165,8 @@ in { systemd.services.pifinder-bootstrap = { description = "PiFinder NixOS Bootstrap"; wantedBy = [ "multi-user.target" ]; - after = [ "network-online.target" "NetworkManager-wait-online.service" ]; - wants = [ "network-online.target" "NetworkManager-wait-online.service" ]; + after = [ "network-online.target" "systemd-networkd-wait-online.service" "iwd.service" ]; + wants = [ "network-online.target" "systemd-networkd-wait-online.service" "iwd.service" ]; serviceConfig = { Type = "oneshot"; @@ -260,7 +245,7 @@ in { fi # Show connection status - conn_state=$(nmcli -t -f STATE general 2>/dev/null || echo "unknown") + conn_state=$(networkctl status 2>/dev/null | grep -oP 'State: \K\S+' || echo "unknown") progress 72 "Connecting..." "$conn_state" sleep 5 done From c3eb187ec818cf01731850c58b1309f266086f06 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 9 Feb 2026 16:41:18 +0100 Subject: [PATCH 041/144] fix: disable more documentation modules Co-Authored-By: Claude Opus 4.5 --- nixos/bootstrap.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nixos/bootstrap.nix b/nixos/bootstrap.nix index 56c2c82b2..490346d1c 100644 --- a/nixos/bootstrap.nix +++ b/nixos/bootstrap.nix @@ -318,6 +318,8 @@ in { documentation.enable = false; documentation.man.enable = false; documentation.nixos.enable = false; + documentation.doc.enable = false; + documentation.info.enable = false; fonts.fontconfig.enable = false; xdg.portal.enable = false; services.xserver.enable = false; From 14f13f56ca6fa8b671120b9b1072effb8e1000c5 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 9 Feb 2026 16:42:27 +0100 Subject: [PATCH 042/144] fix: mkForce systemPackages to exclude w3m from base profile profiles/base.nix (imported by sd-image) adds w3m which pulls perl (150MB). Co-Authored-By: Claude Opus 4.5 --- nixos/bootstrap.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/nixos/bootstrap.nix b/nixos/bootstrap.nix index 490346d1c..b5b9fa605 100644 --- a/nixos/bootstrap.nix +++ b/nixos/bootstrap.nix @@ -124,9 +124,10 @@ in { # Minimal packages # --------------------------------------------------------------------------- # Minimal packages - nix has built-in git support for flakes - environment.systemPackages = with pkgs; [ + # mkForce overrides profiles/base.nix which adds w3m (150MB with perl) + environment.systemPackages = lib.mkForce (with pkgs; [ progressScript - ]; + ]); # --------------------------------------------------------------------------- # Users - minimal, just for debugging/SSH From b3ef9a6b0f272656eb88225b78c7949189a7046e Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 9 Feb 2026 16:44:48 +0100 Subject: [PATCH 043/144] fix: disable containers to remove perl (112MB) nixos-container pulls perl for container management. Co-Authored-By: Claude Opus 4.5 --- nixos/bootstrap.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/nixos/bootstrap.nix b/nixos/bootstrap.nix index b5b9fa605..394ed49e9 100644 --- a/nixos/bootstrap.nix +++ b/nixos/bootstrap.nix @@ -336,6 +336,7 @@ in { services.udisks2.enable = false; security.polkit.enable = lib.mkForce false; services.speechd.enable = lib.mkForce false; + boot.enableContainers = false; # nixos-container pulls perl (112MB) # Disable xdg stuff that pulls in perl via xdg-utils xdg.mime.enable = false; From 957b55e6814c37c3a151a1850153caf579e658ff Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 9 Feb 2026 18:44:49 +0100 Subject: [PATCH 044/144] fix: PWM overlay pinctrl and boot splash improvements - Add pinctrl to PWM overlay to route PWM0_1 to GPIO 13 - Change boot-splash to static mode (no animation) - Fix boot-splash color from blue to red (RGB565) - Fix NFS deploy script /etc symlinks for PAM Co-Authored-By: Claude Opus 4.5 --- deploy-image-to-nfs.sh | 15 ++++++++++++++- flake.nix | 16 ++++++++-------- nixos/hardware.nix | 14 +++++++++----- nixos/pkgs/boot-splash.c | 32 +++++++++++++++++++++++++------- nixos/services.nix | 12 +++--------- 5 files changed, 59 insertions(+), 30 deletions(-) diff --git a/deploy-image-to-nfs.sh b/deploy-image-to-nfs.sh index a68b4ccfa..016c00638 100755 --- a/deploy-image-to-nfs.sh +++ b/deploy-image-to-nfs.sh @@ -106,7 +106,20 @@ chmod 1777 ${NFS_ROOT}/tmp rm -rf ${NFS_ROOT}/bin ${NFS_ROOT}/usr ln -sfT ${CLOSURE}/sw/bin ${NFS_ROOT}/bin ln -sfT ${CLOSURE}/sw ${NFS_ROOT}/usr -ln -sfT ${CLOSURE}/etc/bashrc ${NFS_ROOT}/etc/bashrc 2>/dev/null || true + +# /etc/static points to the NixOS etc derivation (required for PAM, etc.) +ln -sfT ${CLOSURE}/etc ${NFS_ROOT}/etc/static + +# Critical /etc symlinks that NixOS activation would normally create +ln -sfT /etc/static/pam.d ${NFS_ROOT}/etc/pam.d +ln -sfT /etc/static/bashrc ${NFS_ROOT}/etc/bashrc +# passwd/shadow/group are created as real files later (need to be writable for netboot) +rm -f ${NFS_ROOT}/etc/passwd ${NFS_ROOT}/etc/shadow ${NFS_ROOT}/etc/group 2>/dev/null || true +ln -sfT /etc/static/sudoers ${NFS_ROOT}/etc/sudoers 2>/dev/null || true +ln -sfT /etc/static/sudoers.d ${NFS_ROOT}/etc/sudoers.d 2>/dev/null || true +ln -sfT /etc/static/nsswitch.conf ${NFS_ROOT}/etc/nsswitch.conf 2>/dev/null || true +ln -sfT /etc/static/systemd ${NFS_ROOT}/etc/systemd 2>/dev/null || true +ln -sfT /etc/static/polkit-1 ${NFS_ROOT}/etc/polkit-1 2>/dev/null || true # Create nix profile symlinks mkdir -p ${NFS_ROOT}/nix/var/nix/profiles diff --git a/flake.nix b/flake.nix index 67dd27f50..1325dfc3a 100644 --- a/flake.nix +++ b/flake.nix @@ -146,10 +146,15 @@ boot.initrd.network = { enable = true; }; - # Start splash immediately, then configure network + # Show static splash, then configure network boot.initrd.postDeviceCommands = '' - # Start OLED splash in background (shows Knight Rider animation) - boot-splash & + # Create device nodes for SPI OLED + mkdir -p /dev + mknod -m 666 /dev/spidev0.0 c 153 0 2>/dev/null || true + mknod -m 666 /dev/gpiochip0 c 254 0 2>/dev/null || true + + # Show static splash image (--static flag = display once and exit) + boot-splash --static || true # Wait for interface to appear (up to 30 seconds) echo "Waiting for eth0..." for i in $(seq 1 60); do @@ -198,11 +203,6 @@ fsType = "nfs"; options = [ "vers=4" "noac" "actimeo=0" ]; }; - # Kill initrd boot-splash before pivoting to real root - # (systemd boot-splash.service takes over from there) - boot.initrd.postMountCommands = '' - killall boot-splash 2>/dev/null || true - ''; # Dummy /boot — not used for netboot but NixOS requires it fileSystems."/boot" = { device = "none"; diff --git a/nixos/hardware.nix b/nixos/hardware.nix index 3fb31c1bf..7003a09f3 100644 --- a/nixos/hardware.nix +++ b/nixos/hardware.nix @@ -60,8 +60,8 @@ in { ''; }; - # PWM on GPIO 13 (function 4) for keypad backlight - # nixos-hardware pwm0 is hardcoded to GPIO 18, so use custom overlay + # PWM on GPIO 13 (PWM channel 1) for keypad backlight + # GPIO 13 = PWM0_1 when ALT0 (function 4) pwmOverlay = { name = "pwm-pin13-overlay"; dtsText = '' @@ -69,12 +69,16 @@ in { /plugin/; / { compatible = "brcm,bcm2711"; }; &gpio { - pwm_pins: pwm_pins { + pwm_pin13: pwm_pin13 { brcm,pins = <13>; - brcm,function = <4>; + brcm,function = <4>; /* ALT0 = PWM0_1 */ }; }; - &pwm { status = "okay"; }; + &pwm { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&pwm_pin13>; + }; ''; }; diff --git a/nixos/pkgs/boot-splash.c b/nixos/pkgs/boot-splash.c index cc0b0c26b..74881a855 100644 --- a/nixos/pkgs/boot-splash.c +++ b/nixos/pkgs/boot-splash.c @@ -27,9 +27,9 @@ #define GPIO_DC 24 #define GPIO_RST 25 -/* BGR565 colors */ +/* RGB565 colors (display interprets as RGB despite BGR setting) */ #define COL_BLACK 0x0000 -#define COL_RED 0x001F +#define COL_RED 0xF800 /* Include generated image data */ #include "welcome_image.h" @@ -167,11 +167,11 @@ static void draw_scanner(int pos, int scanner_width) { uint16_t color = COL_BLACK; if (dist < scanner_width) { - /* Gradient: brighter at center, RED color in BGR565 */ + /* Gradient: brighter at center */ int intensity = 31 - (dist * 31 / scanner_width); if (intensity < 8) intensity = 8; /* Minimum brightness */ - /* BGR565: BBBBBGGGGGGRRRRR - red is lowest 5 bits (0x001F = max red) */ - color = (uint16_t)intensity & 0x1F; + /* RGB565: RRRRRGGGGGGBBBBB - red is high 5 bits */ + color = ((uint16_t)intensity & 0x1F) << 11; } for (int y = y_start; y < HEIGHT; y++) { @@ -218,9 +218,19 @@ static void hw_cleanup(void) { if (spi_fd >= 0) close(spi_fd); } +static void show_static_image(void) { + memcpy(framebuf, welcome_image, sizeof(framebuf)); + ssd1351_flush(); +} + int main(int argc, char *argv[]) { - (void)argc; - (void)argv; + int static_mode = 0; + + for (int i = 1; i < argc; i++) { + if (strcmp(argv[i], "--static") == 0) { + static_mode = 1; + } + } signal(SIGTERM, signal_handler); signal(SIGINT, signal_handler); @@ -234,6 +244,14 @@ int main(int argc, char *argv[]) { /* Turn on display */ ssd1351_cmd(0xAF); + if (static_mode) { + /* Static mode: show image once and exit */ + show_static_image(); + hw_cleanup(); + return 0; + } + + /* Animation mode: Knight Rider scanner */ int pos = 0; int dir = 1; int scanner_width = 20; diff --git a/nixos/services.nix b/nixos/services.nix index a4b090d22..dc7505401 100644 --- a/nixos/services.nix +++ b/nixos/services.nix @@ -171,23 +171,17 @@ in { }; # --------------------------------------------------------------------------- - # Early boot splash — show welcome image with Knight Rider animation - # Stops automatically when pifinder.service starts (via ExecStartPre) + # Early boot splash — show static welcome image, pifinder overwrites when ready # --------------------------------------------------------------------------- systemd.services.boot-splash = { description = "Early boot splash screen"; wantedBy = [ "sysinit.target" ]; serviceConfig = { - Type = "simple"; - ExecStart = "${boot-splash}/bin/boot-splash"; - KillSignal = "SIGTERM"; - TimeoutStopSec = 2; + Type = "oneshot"; + ExecStart = "${boot-splash}/bin/boot-splash --static"; }; }; - # Stop boot-splash before pifinder starts to release GPIO/SPI - systemd.services.pifinder.serviceConfig.ExecStartPre = "-${pkgs.systemd}/bin/systemctl stop boot-splash"; - # --------------------------------------------------------------------------- # Main PiFinder application # --------------------------------------------------------------------------- From f00b0414796a87bcd772a09742194c2dffc808b3 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 9 Feb 2026 20:12:36 +0100 Subject: [PATCH 045/144] ci: use Pi5 native runner with ubuntu-latest fallback - Primary build on self-hosted aarch64 (Pi5) - fast native - Fallback to ubuntu-latest with QEMU if Pi5 unavailable - Also trigger on nixos branch pushes Co-Authored-By: Claude Opus 4.5 --- .github/workflows/build.yml | 42 +++++++++++++++++++++++++++++++++---- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5eb8f7f7a..bfb4926c3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -2,18 +2,52 @@ name: Build PiFinder NixOS on: push: - branches: [main] + branches: [main, nixos] pull_request: types: [labeled, synchronize, opened] workflow_dispatch: jobs: - build: + # Try Pi5 native build first (fast) + build-native: if: | github.event_name == 'push' || github.event_name == 'workflow_dispatch' || contains(github.event.pull_request.labels.*.name, 'preview') + runs-on: [self-hosted, aarch64] + timeout-minutes: 30 + outputs: + success: ${{ steps.build.outcome == 'success' }} + steps: + - uses: actions/checkout@v4 + + - uses: cachix/cachix-action@v15 + with: + name: pifinder + authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' + + - name: Build NixOS system closures + id: build + run: | + nix build .#nixosConfigurations.pifinder.config.system.build.toplevel \ + -L --no-link + nix build .#nixosConfigurations.pifinder-dev.config.system.build.toplevel \ + -L --no-link + + - name: Push to Cachix + if: github.event_name != 'pull_request' + run: | + nix build .#nixosConfigurations.pifinder.config.system.build.toplevel \ + --json | jq -r '.[].outputs.out' | cachix push pifinder + nix build .#nixosConfigurations.pifinder-dev.config.system.build.toplevel \ + --json | jq -r '.[].outputs.out' | cachix push pifinder + + # Fallback to QEMU emulation if Pi5 unavailable + build-emulated: + needs: build-native + if: failure() || cancelled() runs-on: ubuntu-latest + timeout-minutes: 360 steps: - uses: actions/checkout@v4 @@ -51,8 +85,8 @@ jobs: --json | jq -r '.[].outputs.out' | cachix push pifinder update-unstable: - needs: build - if: github.event_name == 'push' && github.ref == 'refs/heads/main' + needs: [build-native, build-emulated] + if: always() && github.event_name == 'push' && github.ref == 'refs/heads/main' && (needs.build-native.result == 'success' || needs.build-emulated.result == 'success') runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 From 78c1eb9ce9b2ba324b95ba8cf33ba47ec3d1799b Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 9 Feb 2026 20:15:36 +0100 Subject: [PATCH 046/144] fix(ci): use correct flake output names pifinder-dev doesn't exist, use pifinder-netboot Co-Authored-By: Claude Opus 4.5 --- .github/workflows/build.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index bfb4926c3..01acc60f2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -31,7 +31,7 @@ jobs: run: | nix build .#nixosConfigurations.pifinder.config.system.build.toplevel \ -L --no-link - nix build .#nixosConfigurations.pifinder-dev.config.system.build.toplevel \ + nix build .#nixosConfigurations.pifinder-netboot.config.system.build.toplevel \ -L --no-link - name: Push to Cachix @@ -39,7 +39,7 @@ jobs: run: | nix build .#nixosConfigurations.pifinder.config.system.build.toplevel \ --json | jq -r '.[].outputs.out' | cachix push pifinder - nix build .#nixosConfigurations.pifinder-dev.config.system.build.toplevel \ + nix build .#nixosConfigurations.pifinder-netboot.config.system.build.toplevel \ --json | jq -r '.[].outputs.out' | cachix push pifinder # Fallback to QEMU emulation if Pi5 unavailable @@ -70,7 +70,7 @@ jobs: nix build .#nixosConfigurations.pifinder.config.system.build.toplevel \ --system aarch64-linux \ -L --no-link - nix build .#nixosConfigurations.pifinder-dev.config.system.build.toplevel \ + nix build .#nixosConfigurations.pifinder-netboot.config.system.build.toplevel \ --system aarch64-linux \ -L --no-link @@ -80,7 +80,7 @@ jobs: nix build .#nixosConfigurations.pifinder.config.system.build.toplevel \ --system aarch64-linux \ --json | jq -r '.[].outputs.out' | cachix push pifinder - nix build .#nixosConfigurations.pifinder-dev.config.system.build.toplevel \ + nix build .#nixosConfigurations.pifinder-netboot.config.system.build.toplevel \ --system aarch64-linux \ --json | jq -r '.[].outputs.out' | cachix push pifinder From 721e59b5ba90a911543ecac00f112c590663afa0 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 9 Feb 2026 20:26:30 +0100 Subject: [PATCH 047/144] fix: use /etc/static for symlinks in deploy script The closure's /etc is a symlink, so direct paths don't work. Use /etc/static which resolves through the NixOS etc derivation. Co-Authored-By: Claude Opus 4.5 --- deploy-image-to-nfs.sh | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/deploy-image-to-nfs.sh b/deploy-image-to-nfs.sh index 016c00638..ff9055996 100755 --- a/deploy-image-to-nfs.sh +++ b/deploy-image-to-nfs.sh @@ -144,11 +144,10 @@ fi echo "Linking NixOS etc files..." ssh "${PROXNIX}" "sudo bash -euo pipefail -c ' -ln -sf ${CLOSURE}/etc/ssh/sshd_config ${NFS_ROOT}/etc/ssh/sshd_config -ln -sf ${CLOSURE}/etc/ssh/ssh_config ${NFS_ROOT}/etc/ssh/ssh_config 2>/dev/null || true -ln -sf ${CLOSURE}/etc/ssh/moduli ${NFS_ROOT}/etc/ssh/moduli 2>/dev/null || true -ln -sfT ${CLOSURE}/etc/pam.d ${NFS_ROOT}/etc/pam.d -ln -sf ${CLOSURE}/etc/nsswitch.conf ${NFS_ROOT}/etc/nsswitch.conf 2>/dev/null || true +ln -sf /etc/static/ssh/sshd_config ${NFS_ROOT}/etc/ssh/sshd_config +ln -sf /etc/static/ssh/ssh_config ${NFS_ROOT}/etc/ssh/ssh_config 2>/dev/null || true +ln -sf /etc/static/ssh/moduli ${NFS_ROOT}/etc/ssh/moduli 2>/dev/null || true +# pam.d already symlinked to /etc/static/pam.d in SETUP block '" # ── Static user files ──────────────────────────────────────────────────────── From 258a367c278f44d362a3f891ce763bb554af3e82 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 9 Feb 2026 20:57:10 +0100 Subject: [PATCH 048/144] fix: use Type=simple for pifinder service Type=idle waits for ALL other services to finish before starting, causing ~2 minute delay. Type=simple starts immediately. Co-Authored-By: Claude Opus 4.5 --- nixos/services.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/services.nix b/nixos/services.nix index dc7505401..05e480a05 100644 --- a/nixos/services.nix +++ b/nixos/services.nix @@ -205,7 +205,7 @@ in { LIBCAMERA_IPA_MODULE_PATH = "${pkgs.libcamera}/lib/libcamera"; }; serviceConfig = { - Type = "idle"; + Type = "simple"; User = "pifinder"; Group = "users"; WorkingDirectory = "/home/pifinder/PiFinder/python"; From bf4d5610541692d03702407987c680cde6b3fab8 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 9 Feb 2026 20:59:37 +0100 Subject: [PATCH 049/144] fix: remove pam.d before symlink in deploy script ln -sfT can't overwrite a directory, need rm -rf first Co-Authored-By: Claude Opus 4.5 --- deploy-image-to-nfs.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/deploy-image-to-nfs.sh b/deploy-image-to-nfs.sh index ff9055996..ed6ba4807 100755 --- a/deploy-image-to-nfs.sh +++ b/deploy-image-to-nfs.sh @@ -111,6 +111,7 @@ ln -sfT ${CLOSURE}/sw ${NFS_ROOT}/usr ln -sfT ${CLOSURE}/etc ${NFS_ROOT}/etc/static # Critical /etc symlinks that NixOS activation would normally create +rm -rf ${NFS_ROOT}/etc/pam.d 2>/dev/null || true ln -sfT /etc/static/pam.d ${NFS_ROOT}/etc/pam.d ln -sfT /etc/static/bashrc ${NFS_ROOT}/etc/bashrc # passwd/shadow/group are created as real files later (need to be writable for netboot) From 59a146f3b87464433b5dc918c5d355133d08c357 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 9 Feb 2026 21:33:00 +0100 Subject: [PATCH 050/144] fix: point bootstrap flake to mrosseel/PiFinder/nixos - Update bootstrap.nix to fetch from correct repo/branch - Update NIXOS_STATUS.md: WiFi warning is cosmetic, not a real issue Co-Authored-By: Claude Opus 4.5 --- NIXOS_STATUS.md | 54 +++++++++++++++++++++++++++++++++++++++++++++ nixos/bootstrap.nix | 2 +- 2 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 NIXOS_STATUS.md diff --git a/NIXOS_STATUS.md b/NIXOS_STATUS.md new file mode 100644 index 000000000..d56c759bc --- /dev/null +++ b/NIXOS_STATUS.md @@ -0,0 +1,54 @@ +# NixOS Migration Status + +## What Works +- **PWM LEDs** - Fixed with proper pinctrl overlay routing PWM0_1 to GPIO 13 +- **Boot splash** - Static red splash screen on OLED during boot +- **PAM authentication** - Fixed /etc symlinks using /etc/static +- **Netboot** - TFTP/NFS working with u-boot → extlinux chain +- **CI/CD** - Pi5 native builds on self-hosted runner with ubuntu-latest fallback +- **Cachix** - pifinder.cachix.org for binary cache + +## Recent Fixes (this session) +1. PWM overlay: added pinctrl to route PWM signal to GPIO 13 +2. Boot splash: changed to static mode (no animation) +3. PAM symlinks: use `/etc/static/pam.d` not direct closure paths +4. CI workflow: use Pi5 `[self-hosted, aarch64]` runner, fallback to ubuntu-latest +5. pifinder service: `Type=simple` instead of `Type=idle` (was causing ~2min delay) +6. Deploy script: `rm -rf pam.d` before symlink (can't overwrite directory) + +## Commits Pushed (nixos branch) +- `957b55e` - fix: PWM overlay pinctrl and boot splash improvements +- `f00b041` - ci: use Pi5 native runner with ubuntu-latest fallback +- `78c1eb9` - fix(ci): use correct flake output names +- `721e59b` - fix: use /etc/static for symlinks in deploy script +- `258a367` - fix: use Type=simple for pifinder service +- `bf4d561` - fix: remove pam.d before symlink in deploy script + +## Known Issues / TODO +1. ~~**WiFi kernel oops**~~ - CLOSED: Just a harmless FORTIFY_SOURCE warning in brcmfmac driver (struct flexible array declared as 1-byte field). WiFi hardware works fine. Using ethernet for netboot anyway. +2. **Python startup slow** - 1m46s between systemd starting service and Python first log. Not systemd delay - it's Python import/NFS latency. Consider: + - Lazy imports + - Local caching of Python bytecode + - Profiling import time with `python -X importtime` +3. **IP changes** - Pi getting different DHCP IPs (146, 150) - consider static IP +4. **Samba** - Taking 10.7s at boot, do we need it? +5. **firewall.service** - Taking 16s, could optimize or disable if not needed + +## Files Changed +- `nixos/hardware.nix` - PWM overlay with pinctrl +- `nixos/services.nix` - boot-splash static, pifinder Type=simple +- `nixos/pkgs/boot-splash.c` - static mode, red color fix +- `flake.nix` - initrd splash changes +- `deploy-image-to-nfs.sh` - /etc/static symlinks, rm before ln +- `.github/workflows/build.yml` - Pi5 runner, fallback, correct flake outputs + +## Deploy Command +```bash +./deploy-image-to-nfs.sh +``` + +## Test After Reboot +```bash +ssh pifinder@192.168.5.146 "systemd-analyze blame | head -10" +ssh pifinder@192.168.5.146 "journalctl -u pifinder --no-pager | head -20" +``` diff --git a/nixos/bootstrap.nix b/nixos/bootstrap.nix index 394ed49e9..7495ccc27 100644 --- a/nixos/bootstrap.nix +++ b/nixos/bootstrap.nix @@ -258,7 +258,7 @@ in { # ----------------------------------------------------------------------- progress 76 "Starting switch" - FLAKE="github:brickbots/PiFinder/release#pifinder" + FLAKE="github:mrosseel/PiFinder/nixos#pifinder" # Fetch nixos-rebuild at runtime to avoid bloating bootstrap closure # This adds ~30s but saves ~500MB in the tarball From 791d99ac7a37230404ce639f365402e31587a816 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 9 Feb 2026 23:29:33 +0100 Subject: [PATCH 051/144] feat: centralize PiFinder repo URL in pifinder.repoUrl option Add pifinder.repoUrl module option to both services.nix and bootstrap.nix so switching between mrosseel (testing) and brickbots (production) repos requires only changing the default value in one place. Co-Authored-By: Claude Opus 4.5 --- nixos/bootstrap.nix | 13 ++++++++++++- nixos/services.nix | 7 ++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/nixos/bootstrap.nix b/nixos/bootstrap.nix index 7495ccc27..6022bf29d 100644 --- a/nixos/bootstrap.nix +++ b/nixos/bootstrap.nix @@ -10,6 +10,7 @@ { config, lib, pkgs, ... }: let + cfg = config.pifinder; # State directory for migration tracking stateDir = "/var/lib/pifinder-migration"; @@ -37,6 +38,15 @@ let echo "[$PCT%] $STATUS $DETAIL" ''; in { + options.pifinder = { + repoUrl = lib.mkOption { + type = lib.types.str; + default = "github:mrosseel/PiFinder"; + description = "GitHub flake URL for PiFinder repo (without branch/output)"; + }; + }; + + config = { # --------------------------------------------------------------------------- # Boot - minimal Pi 4 support # --------------------------------------------------------------------------- @@ -258,7 +268,7 @@ in { # ----------------------------------------------------------------------- progress 76 "Starting switch" - FLAKE="github:mrosseel/PiFinder/nixos#pifinder" + FLAKE="${cfg.repoUrl}/nixos#pifinder" # Fetch nixos-rebuild at runtime to avoid bloating bootstrap closure # This adds ~30s but saves ~500MB in the tarball @@ -350,4 +360,5 @@ in { # Minimal nix - no gc, no daemon overhead nix.gc.automatic = false; + }; # config } diff --git a/nixos/services.nix b/nixos/services.nix index 05e480a05..3d43e4df6 100644 --- a/nixos/services.nix +++ b/nixos/services.nix @@ -11,6 +11,11 @@ in { default = false; description = "Enable development mode (NFS netboot support, etc.)"; }; + repoUrl = lib.mkOption { + type = lib.types.str; + default = "github:mrosseel/PiFinder"; + description = "GitHub flake URL for PiFinder repo (without branch/output)"; + }; }; config = { @@ -232,7 +237,7 @@ in { set -euo pipefail REF=$(cat /run/pifinder/upgrade-ref 2>/dev/null || echo "release") # Single universal build - camera is selected at runtime via /boot/camera.txt - FLAKE="github:brickbots/PiFinder/''${REF}#pifinder" + FLAKE="${cfg.repoUrl}/''${REF}#pifinder" # Pre-flight: check disk space (need at least 500MB) AVAIL=$(df --output=avail /nix/store | tail -1) From c971bd21ae19bc688e8dcb4774b8ed2d1fff7886 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 9 Feb 2026 23:33:42 +0100 Subject: [PATCH 052/144] ci: add bootstrap tarball build workflow Builds bootstrap SD image on Pi5 self-hosted runner, extracts boot/rootfs partitions, and creates tarball for RPi OS -> NixOS migration. Co-Authored-By: Claude Opus 4.5 --- .github/workflows/bootstrap-tarball.yml | 91 +++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 .github/workflows/bootstrap-tarball.yml diff --git a/.github/workflows/bootstrap-tarball.yml b/.github/workflows/bootstrap-tarball.yml new file mode 100644 index 000000000..6598307ee --- /dev/null +++ b/.github/workflows/bootstrap-tarball.yml @@ -0,0 +1,91 @@ +name: Build Bootstrap Tarball + +on: + workflow_dispatch: + inputs: + version: + description: "Version tag (e.g. 2.5.0)" + required: true + type: string + +jobs: + build-bootstrap: + runs-on: [self-hosted, aarch64] + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install Nix + uses: cachix/install-nix-action@v30 + with: + extra_nix_config: | + experimental-features = nix-command flakes + + - name: Setup Cachix + uses: cachix/cachix-action@v15 + with: + name: pifinder + authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' + + - name: Build bootstrap SD image + run: | + nix build .#images.bootstrap --print-out-paths > /tmp/image_path + echo "IMAGE_PATH=$(cat /tmp/image_path)" >> "$GITHUB_ENV" + + - name: Extract boot and rootfs + run: | + IMAGE_FILE=$(find "$IMAGE_PATH" -name "*.img" -o -name "*.img.zst" | head -1) + + if [[ "${IMAGE_FILE}" == *.zst ]]; then + zstd -d "${IMAGE_FILE}" -o /tmp/bootstrap.img + else + cp "${IMAGE_FILE}" /tmp/bootstrap.img + fi + + LOOP=$(sudo losetup --find --show --partscan /tmp/bootstrap.img) + echo "LOOP=${LOOP}" >> "$GITHUB_ENV" + + sudo mkdir -p /mnt/boot /mnt/root + sudo mount "${LOOP}p1" /mnt/boot + sudo mount "${LOOP}p2" /mnt/root + + mkdir -p /tmp/tarball-staging + sudo cp -a /mnt/boot /tmp/tarball-staging/boot + sudo cp -a /mnt/root /tmp/tarball-staging/rootfs + + sudo umount /mnt/boot /mnt/root + sudo losetup -d "${LOOP}" + rm -f /tmp/bootstrap.img + + - name: Create bootstrap tarball + run: | + VERSION="${{ inputs.version }}" + TARBALL="pifinder-bootstrap-v${VERSION}.tar.gz" + + cat > /tmp/tarball-staging/manifest.json <> "$GITHUB_ENV" + echo "TARBALL_NAME=${TARBALL}" >> "$GITHUB_ENV" + + sha256sum "/tmp/${TARBALL}" | awk '{print $1}' > "/tmp/${TARBALL}.sha256" + echo "SHA256=$(cat /tmp/${TARBALL}.sha256)" >> "$GITHUB_ENV" + + ls -lh "/tmp/${TARBALL}" + + - name: Upload tarball artifact + uses: actions/upload-artifact@v4 + with: + name: ${{ env.TARBALL_NAME }} + path: | + ${{ env.TARBALL }} + ${{ env.TARBALL }}.sha256 From f236d328370fff9ac7da727e75d891ccd8a3968b Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 9 Feb 2026 23:34:40 +0100 Subject: [PATCH 053/144] ci: trigger bootstrap build on push to nixos branch Adds push trigger for nixos branch when bootstrap.nix, flake.nix, or the workflow itself changes. Uses VERSION env var for flexibility. Co-Authored-By: Claude Opus 4.5 --- .github/workflows/bootstrap-tarball.yml | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/.github/workflows/bootstrap-tarball.yml b/.github/workflows/bootstrap-tarball.yml index 6598307ee..b27fe1e61 100644 --- a/.github/workflows/bootstrap-tarball.yml +++ b/.github/workflows/bootstrap-tarball.yml @@ -1,11 +1,18 @@ name: Build Bootstrap Tarball on: + push: + branches: [nixos] + paths: + - 'nixos/bootstrap.nix' + - 'flake.nix' + - '.github/workflows/bootstrap-tarball.yml' workflow_dispatch: inputs: version: description: "Version tag (e.g. 2.5.0)" - required: true + required: false + default: "2.5.0" type: string jobs: @@ -15,6 +22,14 @@ jobs: - name: Checkout uses: actions/checkout@v4 + - name: Set version + run: | + if [ -n "${{ inputs.version }}" ]; then + echo "VERSION=${{ inputs.version }}" >> "$GITHUB_ENV" + else + echo "VERSION=2.5.0" >> "$GITHUB_ENV" + fi + - name: Install Nix uses: cachix/install-nix-action@v30 with: @@ -59,12 +74,11 @@ jobs: - name: Create bootstrap tarball run: | - VERSION="${{ inputs.version }}" TARBALL="pifinder-bootstrap-v${VERSION}.tar.gz" cat > /tmp/tarball-staging/manifest.json < Date: Mon, 9 Feb 2026 23:39:54 +0100 Subject: [PATCH 054/144] fix(ci): find image file not directory Add -type f to find command to match actual image files inside the sd-image subdirectory. Co-Authored-By: Claude Opus 4.5 --- .github/workflows/bootstrap-tarball.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/bootstrap-tarball.yml b/.github/workflows/bootstrap-tarball.yml index b27fe1e61..5f4af2b5e 100644 --- a/.github/workflows/bootstrap-tarball.yml +++ b/.github/workflows/bootstrap-tarball.yml @@ -49,7 +49,9 @@ jobs: - name: Extract boot and rootfs run: | - IMAGE_FILE=$(find "$IMAGE_PATH" -name "*.img" -o -name "*.img.zst" | head -1) + # The SD image output is a directory containing sd-image/*.img.zst + IMAGE_FILE=$(find "$IMAGE_PATH" -type f \( -name "*.img" -o -name "*.img.zst" \) | head -1) + echo "Found image: $IMAGE_FILE" if [[ "${IMAGE_FILE}" == *.zst ]]; then zstd -d "${IMAGE_FILE}" -o /tmp/bootstrap.img From 86a92737b7199fc068dca50b167f1b8589f50816 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 9 Feb 2026 23:46:15 +0100 Subject: [PATCH 055/144] fix(ci): use sudo for tar and exclude lost+found The rootfs contains root-owned files and lost+found directories that require elevated permissions to access. Co-Authored-By: Claude Opus 4.5 --- .github/workflows/bootstrap-tarball.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/bootstrap-tarball.yml b/.github/workflows/bootstrap-tarball.yml index 5f4af2b5e..de8242013 100644 --- a/.github/workflows/bootstrap-tarball.yml +++ b/.github/workflows/bootstrap-tarball.yml @@ -88,7 +88,11 @@ jobs: } EOF - tar -C /tmp/tarball-staging -czf "/tmp/${TARBALL}" boot rootfs manifest.json + # Use sudo for tar since rootfs contains root-owned files + sudo tar -C /tmp/tarball-staging -czf "/tmp/${TARBALL}" \ + --exclude='*/lost+found' \ + boot rootfs manifest.json + sudo chown $USER "/tmp/${TARBALL}" echo "TARBALL=/tmp/${TARBALL}" >> "$GITHUB_ENV" echo "TARBALL_NAME=${TARBALL}" >> "$GITHUB_ENV" From 34e412bd1478d65a9053509f751d8e80056a8e53 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 9 Feb 2026 23:49:09 +0100 Subject: [PATCH 056/144] fix(ci): clean up leftover files from previous runs Remove any existing tarball, staging dir, and mount points before starting to avoid permission issues from previous failed runs. Co-Authored-By: Claude Opus 4.5 --- .github/workflows/bootstrap-tarball.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/bootstrap-tarball.yml b/.github/workflows/bootstrap-tarball.yml index de8242013..e1bf59fd6 100644 --- a/.github/workflows/bootstrap-tarball.yml +++ b/.github/workflows/bootstrap-tarball.yml @@ -49,6 +49,9 @@ jobs: - name: Extract boot and rootfs run: | + # Clean up any leftover from previous runs + sudo rm -rf /tmp/tarball-staging /tmp/bootstrap.img /mnt/boot /mnt/root + # The SD image output is a directory containing sd-image/*.img.zst IMAGE_FILE=$(find "$IMAGE_PATH" -type f \( -name "*.img" -o -name "*.img.zst" \) | head -1) echo "Found image: $IMAGE_FILE" @@ -78,6 +81,9 @@ jobs: run: | TARBALL="pifinder-bootstrap-v${VERSION}.tar.gz" + # Clean up any leftover files from previous runs + sudo rm -rf /tmp/tarball-staging/manifest.json "/tmp/${TARBALL}" "/tmp/${TARBALL}.sha256" + cat > /tmp/tarball-staging/manifest.json < Date: Tue, 10 Feb 2026 12:59:38 +0100 Subject: [PATCH 057/144] feat: manifest-based software update UI with channels MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Port manifest/channel infrastructure from migration branch: - _parse_version with pre-release support - _fetch_manifest / _fetch_version_txt with fallback - _filter_upgrades, _available_channels - Multi-phase menu: channel → version → action - UIReleaseNotes with _strip_markdown - Full test suite for version parsing, filtering, markdown Co-Authored-By: Claude Opus 4.6 --- python/PiFinder/ui/software.py | 513 ++++++++++++++++++++++++++++----- python/tests/test_software.py | 142 +++++++++ release_manifest.json | 33 +++ 3 files changed, 608 insertions(+), 80 deletions(-) create mode 100644 python/tests/test_software.py create mode 100644 release_manifest.json diff --git a/python/PiFinder/ui/software.py b/python/PiFinder/ui/software.py index b0892889b..6111c7aca 100644 --- a/python/PiFinder/ui/software.py +++ b/python/PiFinder/ui/software.py @@ -1,52 +1,113 @@ #!/usr/bin/python # -*- coding:utf-8 -*- """ -This module contains all the UI Module classes - +This module contains the UI Module classes for +software updates, channel selection, and release notes. """ +import json +import logging import time +from typing import Dict, List, Optional + import requests from PiFinder import utils from PiFinder.ui.base import UIModule +from PiFinder.ui.ui_utils import TextLayouter sys_utils = utils.get_sys_utils() +logger = logging.getLogger("UISoftware") + +MANIFEST_URL = ( + "https://raw.githubusercontent.com/brickbots/PiFinder" + "/release/release_manifest.json" +) +VERSION_TXT_URL = ( + "https://raw.githubusercontent.com/brickbots/PiFinder" "/release/version.txt" +) +REQUEST_TIMEOUT = 10 def update_needed(current_version: str, repo_version: str) -> bool: """ - Returns true if an update is available + Returns true if an update is available. - Update is available if semvar of repo_version is > current_version - Also returns True on error to allow be biased towards allowing - updates if issues + Update is available if semver of repo_version is > current_version. + Returns False on error (safe default — don't offer broken updates). """ try: - _tmp_split = current_version.split(".") - current_version_compare = ( - int(_tmp_split[0]), - int(_tmp_split[1]), - int(_tmp_split[2]), - ) + cur = _parse_version(current_version) + repo = _parse_version(repo_version) + return repo > cur + except Exception: + return False - _tmp_split = repo_version.split(".") - repo_version_compare = ( - int(_tmp_split[0]), - int(_tmp_split[1]), - int(_tmp_split[2]), - ) - # tuples compare in significance from first to last element - return repo_version_compare > current_version_compare +def _parse_version(version_str: str) -> tuple: + """ + Parse a version string like '2.4.0' or '2.5.0-beta.1' + into a comparable tuple. Pre-release tags sort below + the same numeric version (2.5.0-beta.1 < 2.5.0). + """ + version_str = version_str.strip() + if "-" in version_str: + numeric_part, pre_release = version_str.split("-", 1) + else: + numeric_part = version_str + pre_release = None - except Exception: - return True + parts = numeric_part.split(".") + major, minor, patch = int(parts[0]), int(parts[1]), int(parts[2]) + + if pre_release is None: + return (major, minor, patch, 1, "") + else: + return (major, minor, patch, 0, pre_release) + + +def _fetch_manifest() -> Optional[dict]: + """Fetch and parse the release manifest JSON. Returns None on failure.""" + try: + if MANIFEST_URL.startswith("file://"): + path = MANIFEST_URL[len("file://") :] + with open(path, "r") as f: + return json.load(f) + res = requests.get(MANIFEST_URL, timeout=REQUEST_TIMEOUT) + if res.status_code == 200: + return json.loads(res.text) + except (OSError, json.JSONDecodeError, KeyError) as e: + logger.warning(f"Could not read release manifest: {e}") + except requests.exceptions.RequestException as e: + logger.warning(f"Could not fetch release manifest: {e}") + return None + + +def _fetch_version_txt() -> Optional[str]: + """Fallback: fetch version.txt. Returns version string or None.""" + try: + res = requests.get(VERSION_TXT_URL, timeout=REQUEST_TIMEOUT) + if res.status_code == 200: + return res.text.strip() + except requests.exceptions.RequestException as e: + logger.warning(f"Could not fetch version.txt: {e}") + return None + + +def _filter_upgrades( + current: str, versions: List[dict] +) -> List[dict]: + """Return only versions that are newer than current.""" + return [v for v in versions if update_needed(current, v["version"].strip())] class UISoftware(UIModule): """ - UI for updating software versions + UI for updating software versions. + Supports stable/unstable channels with manifest-based version checking. + + Menu phases (each shows max 3 items, skipped if only one choice): + channel → version → action """ __title__ = "SOFTWARE" @@ -60,42 +121,136 @@ def __init__(self, *args, **kwargs) -> None: with open(self.version_txt, "r") as ver: self._software_version = ver.read() + # Parsed manifest data: channel name → list of version dicts + self._channels: Dict[str, List[dict]] = {} self._release_version = "-.-.-" self._elipsis_count = 0 self._go_for_update = False - self._option_select = "Update" + + # Menu navigation + # Phases: "channel" or "action" + self._menu_phase = "action" + self._selected_channel = "stable" + self._selected_version: Optional[dict] = None + self._version_index = 0 + self._options: list = [] + self._option_index = 0 + + # Update failure state + self._update_failed = False + self._fail_option = "Retry" + + def active(self): + super().active() + self._menu_phase = "action" + self._selected_channel = "stable" + self._selected_version = None + self._version_index = 0 def get_release_version(self): """ - Fetches current release version from - github, sets class variable if found + Fetches current release version from github. + Tries manifest first, falls back to version.txt. """ - try: - res = requests.get( - "https://raw.githubusercontent.com/brickbots/PiFinder/release/version.txt" - ) - except requests.exceptions.ConnectionError: - print("Could not connect to github") - self._release_version = "Unknown" + manifest = _fetch_manifest() + if manifest and "channels" in manifest: + self._channels = manifest["channels"] + # Set release version from first stable entry + stable_versions = self._channels.get("stable", []) + if stable_versions: + self._release_version = stable_versions[0]["version"] + else: + self._release_version = "Unknown" return - if res.status_code == 200: - self._release_version = res.text[:-1] + # Fallback to version.txt + logger.info("Manifest unavailable, falling back to version.txt") + version = _fetch_version_txt() + if version: + self._channels = { + "stable": [{"version": version, "notes_url": None}] + } + self._release_version = version else: self._release_version = "Unknown" + def _available_channels(self) -> Dict[str, List[dict]]: + """Return channels that have updates, filtered by type.""" + current = self._software_version.strip() + result = {} + for name, versions in self._channels.items(): + upgrades = _filter_upgrades(current, versions) + if upgrades: + result[name] = upgrades + return result + + def _channel_versions(self) -> List[dict]: + """Return upgrade versions for the selected channel.""" + available = self._available_channels() + return available.get(self._selected_channel, []) + + def _rebuild_options(self): + """Build the option list for the current menu phase.""" + available = self._available_channels() + options = [] + + if self._menu_phase == "channel": + for name in available: + options.append(name.capitalize()) + else: + # Action phase — version selector + actions + versions = self._channel_versions() + if len(versions) > 1: + v = self._selected_version or versions[0] + options.append(f"v{v['version']}") + v = self._selected_version or (versions[0] if versions else {}) + options.append("Update") + if self._selected_version and self._selected_version.get("notes_url"): + options.append("Notes") + options.append("Cancel") + + self._options = options + if self._option_index >= len(self._options): + self._option_index = 0 + + def _enter_best_phase(self): + """ + Set the menu phase based on what choices exist. + Skip channel phase when there's only one channel. + """ + available = self._available_channels() + channel_names = list(available.keys()) + + if len(channel_names) > 1: + self._menu_phase = "channel" + self._option_index = 0 + return + + # Single channel + if channel_names: + self._selected_channel = channel_names[0] + else: + return + + versions = available.get(self._selected_channel, []) + self._version_index = 0 + if versions: + self._selected_version = versions[0] + self._menu_phase = "action" + self._option_index = 0 + def update_software(self): self.message(_("Updating..."), 10) if sys_utils.update_software(): - self.message(_("Ok! Restarting"), 10) + self.message(_("Ok! Restarting..."), 10) sys_utils.restart_system() else: - self.message(_("Error on Upd"), 3) + self._update_failed = True - def update(self, force=False): - time.sleep(1 / 30) - self.clear_screen() + def _draw_version_header(self): + """Draw the top section: wifi, current version, release version.""" draw_pos = self.display_class.titlebar_height + 2 + self.draw.text( (0, draw_pos), _("Wifi Mode: {}").format(self._wifi_mode), @@ -120,9 +275,16 @@ def update(self, force=False): ) draw_pos += 16 + if self._selected_version: + update_label = _("Update to") + update_version = self._selected_version["version"] + else: + update_label = _("Update to") + update_version = self._release_version + self.draw.text( (0, draw_pos), - _("Release Version"), + update_label, font=self.fonts.bold.font, fill=self.colors.get(128), ) @@ -130,11 +292,65 @@ def update(self, force=False): self.draw.text( (10, draw_pos), - f"{self._release_version}", + f"{update_version}", font=self.fonts.bold.font, fill=self.colors.get(192), ) + def _draw_options(self): + """Draw the option list at the bottom of the screen.""" + self._rebuild_options() + option_start_y = 90 + for i, label in enumerate(self._options): + y = option_start_y + i * 12 + self.draw.text( + (10, y), + _(label), + font=self.fonts.bold.font, + fill=self.colors.get(255), + ) + if i == self._option_index: + self.draw.text( + (0, y), + self._RIGHT_ARROW, + font=self.fonts.bold.font, + fill=self.colors.get(255), + ) + + def update(self, force=False): + time.sleep(1 / 30) + self.clear_screen() + self._draw_version_header() + + # Handle update failure screen + if self._update_failed: + self.draw.text( + (10, 90), + _("Update failed!"), + font=self.fonts.bold.font, + fill=self.colors.get(255), + ) + self.draw.text( + (10, 102), + _("Retry"), + font=self.fonts.bold.font, + fill=self.colors.get(255), + ) + self.draw.text( + (10, 114), + _("Cancel"), + font=self.fonts.bold.font, + fill=self.colors.get(255), + ) + ind_pos = 102 if self._fail_option == "Retry" else 114 + self.draw.text( + (0, ind_pos), + self._RIGHT_ARROW, + font=self.fonts.bold.font, + fill=self.colors.get(255), + ) + return self.screen_update() + if self._wifi_mode != "Client": self.draw.text( (10, 90), @@ -151,8 +367,6 @@ def update(self, force=False): return self.screen_update() if self._release_version == "-.-.-": - # check elipsis count here... if we are at >30 check for - # release versions if self._elipsis_count > 30: self.get_release_version() self.draw.text( @@ -174,9 +388,8 @@ def update(self, force=False): self._elipsis_count = 0 return self.screen_update() - if not update_needed( - self._software_version.strip(), self._release_version.strip() - ): + available = self._available_channels() + if not available: self.draw.text( (10, 90), _("No Update"), @@ -191,49 +404,189 @@ def update(self, force=False): ) return self.screen_update() - # If we are here, go for update! - self._go_for_update = True - self.draw.text( - (10, 90), - _("Update Now"), - font=self.fonts.large.font, - fill=self.colors.get(255), - ) - self.draw.text( - (10, 105), - _("Cancel"), - font=self.fonts.large.font, - fill=self.colors.get(255), - ) - if self._option_select == "Update": - ind_pos = 90 - else: - ind_pos = 105 - self.draw.text( - (0, ind_pos), - self._RIGHT_ARROW, - font=self.fonts.large.font, - fill=self.colors.get(255), - ) + # Update available — enter menu if not already navigating + if not self._go_for_update: + self._go_for_update = True + self._enter_best_phase() + self._draw_options() return self.screen_update() - def toggle_option(self): + def _cycle_option(self, direction: int = 1): + if self._update_failed: + self._fail_option = "Cancel" if self._fail_option == "Retry" else "Retry" + return if not self._go_for_update: return - if self._option_select == "Update": - self._option_select = "Cancel" - else: - self._option_select = "Update" + self._option_index = (self._option_index + direction) % len(self._options) def key_up(self): - self.toggle_option() + self._cycle_option(-1) def key_down(self): - self.toggle_option() + self._cycle_option(1) + + def key_left(self): + available = self._available_channels() + if self._menu_phase == "action" and len(available) > 1: + self._menu_phase = "channel" + self._selected_version = None + self._option_index = 0 + return False + return True def key_right(self): - if self._option_select == "Cancel": + if self._update_failed: + if self._fail_option == "Retry": + self._update_failed = False + self._fail_option = "Retry" + self.update_software() + else: + self._update_failed = False + self.remove_from_stack() + return + + if not self._go_for_update: + return + + selected = self._options[self._option_index] + + if self._menu_phase == "channel": + self._selected_channel = selected.lower() + versions = self._channel_versions() + self._version_index = 0 + self._selected_version = versions[0] if versions else None + self._menu_phase = "action" + self._option_index = 0 + return + + # Action phase + if selected.startswith("v"): + # Version selector — cycle to next version + versions = self._channel_versions() + self._version_index = (self._version_index + 1) % len(versions) + self._selected_version = versions[self._version_index] + elif selected == "Cancel": self.remove_from_stack() - else: + elif selected == "Notes": + notes_url = ( + self._selected_version.get("notes_url") + if self._selected_version + else None + ) + if notes_url: + self.add_to_stack( + { + "class": UIReleaseNotes, + "notes_url": notes_url, + } + ) + elif selected == "Update": self.update_software() + + +class UIReleaseNotes(UIModule): + """ + Scrollable release notes viewer. + Fetches markdown from a URL and displays as plain text. + """ + + __title__ = "NOTES" + + def __init__(self, *args, **kwargs) -> None: + super().__init__(*args, **kwargs) + self._notes_url = self.item_definition.get("notes_url", "") + self._loaded = False + self._error = False + self._text_layout = TextLayouter( + "", + draw=self.draw, + color=self.colors.get(255), + colors=self.colors, + font=self.fonts.base, + available_lines=9, + ) + + def active(self): + super().active() + if not self._loaded: + self._fetch_notes() + + def _fetch_notes(self): + """Fetch release notes from the configured URL.""" + try: + res = requests.get(self._notes_url, timeout=REQUEST_TIMEOUT) + if res.status_code == 200: + text = _strip_markdown(res.text) + self._text_layout.set_text(text) + self._loaded = True + else: + self._error = True + logger.warning( + f"Failed to fetch release notes: HTTP {res.status_code}" + ) + except requests.exceptions.RequestException as e: + self._error = True + logger.warning(f"Failed to fetch release notes: {e}") + + def update(self, force=False): + time.sleep(1 / 30) + self.clear_screen() + draw_pos = self.display_class.titlebar_height + 2 + + if self._error: + self.draw.text( + (10, draw_pos + 20), + _("Could not load"), + font=self.fonts.large.font, + fill=self.colors.get(255), + ) + self.draw.text( + (10, draw_pos + 35), + _("release notes"), + font=self.fonts.large.font, + fill=self.colors.get(255), + ) + return self.screen_update() + + if not self._loaded: + self.draw.text( + (10, draw_pos + 20), + _("Loading..."), + font=self.fonts.large.font, + fill=self.colors.get(255), + ) + return self.screen_update() + + self._text_layout.draw((0, draw_pos)) + return self.screen_update() + + def key_down(self): + self._text_layout.next() + + def key_up(self): + self._text_layout.previous() + + def key_left(self): + return True + + +def _strip_markdown(text: str) -> str: + """ + Minimal markdown stripping for plain-text display on OLED. + Removes common markdown syntax while keeping readable text. + """ + lines = [] + for line in text.splitlines(): + stripped = line.lstrip("#").strip() + stripped = stripped.replace("**", "").replace("__", "") + stripped = stripped.replace("*", "").replace("_", "") + while "[" in stripped and "](" in stripped: + start = stripped.index("[") + mid = stripped.index("](", start) + end = stripped.index(")", mid) + link_text = stripped[start + 1 : mid] + stripped = stripped[:start] + link_text + stripped[end + 1 :] + stripped = stripped.replace("`", "") + lines.append(stripped) + return "\n".join(lines) diff --git a/python/tests/test_software.py b/python/tests/test_software.py new file mode 100644 index 000000000..5b60a0deb --- /dev/null +++ b/python/tests/test_software.py @@ -0,0 +1,142 @@ +import pytest + +from PiFinder.ui.software import ( + update_needed, + _parse_version, + _strip_markdown, + _filter_upgrades, +) + + +@pytest.mark.unit +class TestParseVersion: + def test_simple_version(self): + assert _parse_version("2.4.0") == (2, 4, 0, 1, "") + + def test_prerelease_version(self): + result = _parse_version("2.5.0-beta.1") + assert result == (2, 5, 0, 0, "beta.1") + + def test_prerelease_sorts_below_release(self): + assert _parse_version("2.5.0-beta.1") < _parse_version("2.5.0") + + def test_whitespace_stripped(self): + assert _parse_version(" 2.4.0\n") == (2, 4, 0, 1, "") + + +@pytest.mark.unit +class TestUpdateNeeded: + def test_newer_version_available(self): + assert update_needed("2.3.0", "2.4.0") is True + + def test_same_version(self): + assert update_needed("2.4.0", "2.4.0") is False + + def test_older_version(self): + assert update_needed("2.5.0", "2.4.0") is False + + def test_major_version_bump(self): + assert update_needed("1.9.9", "2.0.0") is True + + def test_patch_bump(self): + assert update_needed("2.4.0", "2.4.1") is True + + def test_prerelease_to_release(self): + assert update_needed("2.5.0-beta.1", "2.5.0") is True + + def test_release_to_prerelease_same(self): + # Going from a release to a pre-release of same version is not an update + assert update_needed("2.5.0", "2.5.0-beta.1") is False + + def test_prerelease_higher_minor(self): + # 2.5.0-beta.1 is still greater than 2.4.0 + assert update_needed("2.4.0", "2.5.0-beta.1") is True + + def test_garbage_input_returns_false(self): + assert update_needed("garbage", "2.4.0") is False + + def test_empty_string_returns_false(self): + assert update_needed("", "") is False + + def test_partial_version_returns_false(self): + assert update_needed("2.4", "2.5.0") is False + + def test_unknown_returns_false(self): + assert update_needed("2.4.0", "Unknown") is False + + +@pytest.mark.unit +class TestStripMarkdown: + def test_removes_headings(self): + assert _strip_markdown("# Hello") == "Hello" + assert _strip_markdown("## Sub") == "Sub" + + def test_removes_bold(self): + assert _strip_markdown("**bold**") == "bold" + + def test_removes_italic(self): + assert _strip_markdown("*italic*") == "italic" + + def test_removes_links(self): + assert _strip_markdown("[text](http://example.com)") == "text" + + def test_removes_backticks(self): + assert _strip_markdown("`code`") == "code" + + def test_preserves_plain_text(self): + assert _strip_markdown("Hello world") == "Hello world" + + def test_multiline(self): + md = "# Title\n\nSome **bold** text.\n- item" + result = _strip_markdown(md) + assert "Title" in result + assert "bold" in result + assert "**" not in result + + +@pytest.mark.unit +class TestFilterUpgrades: + def test_filters_newer_versions(self): + versions = [ + {"version": "2.5.0", "type": "upgrade"}, + {"version": "2.4.1", "type": "update"}, + ] + result = _filter_upgrades("2.4.0", versions) + assert len(result) == 2 + + def test_excludes_older_versions(self): + versions = [ + {"version": "2.5.0", "type": "upgrade"}, + {"version": "2.3.0", "type": "update"}, + ] + result = _filter_upgrades("2.4.0", versions) + assert len(result) == 1 + assert result[0]["version"] == "2.5.0" + + def test_preserves_type_field(self): + versions = [ + {"version": "2.5.0", "type": "upgrade", "migration_url": "https://..."}, + {"version": "2.4.1", "type": "update"}, + ] + result = _filter_upgrades("2.4.0", versions) + assert result[0]["type"] == "upgrade" + assert result[0]["migration_url"] == "https://..." + assert result[1]["type"] == "update" + + def test_empty_input(self): + assert _filter_upgrades("2.4.0", []) == [] + + def test_upgrade_type_detected(self): + versions = [{"version": "2.5.0", "type": "upgrade"}] + result = _filter_upgrades("2.4.0", versions) + assert result[0].get("type") == "upgrade" + + def test_update_type_detected(self): + versions = [{"version": "2.4.1", "type": "update"}] + result = _filter_upgrades("2.4.0", versions) + assert result[0].get("type") == "update" + + def test_missing_type_field(self): + versions = [{"version": "2.4.1"}] + result = _filter_upgrades("2.4.0", versions) + assert result[0].get("type") is None diff --git a/release_manifest.json b/release_manifest.json new file mode 100644 index 000000000..30b963a76 --- /dev/null +++ b/release_manifest.json @@ -0,0 +1,33 @@ +{ + "channels": { + "stable": [ + { + "version": "2.5.0", + "type": "upgrade", + "notes_url": "https://raw.githubusercontent.com/brickbots/PiFinder/main/RELEASE.md", + "migration_url": "https://github.com/mrosseel/PiFinder/releases/download/v2.5.0-bootstrap/pifinder-bootstrap-v2.5.0.tar.gz", + "migration_sha256": "d5e5dc7bfde57bb958d0dc55804af6fb14265f12d9e27a02da0385847f9ba742", + "migration_size_mb": 349, + "min_ram_mb": 2048, + "min_sd_gb": 16 + }, + { + "version": "2.4.1", + "type": "update", + "notes_url": "https://raw.githubusercontent.com/brickbots/PiFinder/main/RELEASE.md" + } + ], + "unstable": [ + { + "version": "2.6.0-beta.2", + "type": "update", + "notes_url": "https://raw.githubusercontent.com/brickbots/PiFinder/main/RELEASE.md" + }, + { + "version": "2.6.0-beta.1", + "type": "update", + "notes_url": "https://raw.githubusercontent.com/brickbots/PiFinder/main/RELEASE.md" + } + ] + } +} From 21c23c2284468091928932e101ce6f447ec2d035 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Tue, 10 Feb 2026 15:01:25 +0100 Subject: [PATCH 058/144] chore: add nix dev shell for local testing shell.nix provides Python 3.9 + native build deps (linuxHeaders, gcc, SDL2, etc.) with LD_LIBRARY_PATH for scipy/numpy. .envrc auto-creates venv and installs requirements via direnv. Co-Authored-By: Claude Opus 4.6 --- .envrc | 23 ++++++++++++++++ shell.nix | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 102 insertions(+) create mode 100644 .envrc create mode 100644 shell.nix diff --git a/.envrc b/.envrc new file mode 100644 index 000000000..5cf4703c1 --- /dev/null +++ b/.envrc @@ -0,0 +1,23 @@ +use nix + +# Auto-setup venv in python/ directory +VENV_DIR="python/.venv" + +if [[ ! -d "$VENV_DIR" ]]; then + echo "Creating Python 3.9 virtual environment..." + python3.9 -m venv "$VENV_DIR" +fi + +source "$VENV_DIR/bin/activate" + +# Install requirements if venv was just created or requirements changed +MARKER="$VENV_DIR/.requirements_installed" +REQ_HASH=$(cat python/requirements.txt python/requirements_dev.txt 2>/dev/null | sha256sum | cut -d' ' -f1) + +if [[ ! -f "$MARKER" ]] || [[ "$(cat "$MARKER" 2>/dev/null)" != "$REQ_HASH" ]]; then + echo "Installing requirements..." + pip install -q --upgrade pip + pip install -q -r python/requirements.txt + pip install -q -r python/requirements_dev.txt + echo "$REQ_HASH" > "$MARKER" +fi diff --git a/shell.nix b/shell.nix new file mode 100644 index 000000000..e636aca9f --- /dev/null +++ b/shell.nix @@ -0,0 +1,79 @@ +{ pkgs ? import (fetchTarball "https://github.com/NixOS/nixpkgs/archive/nixos-24.05.tar.gz") {} }: + +let + inherit (pkgs) lib stdenv; +in +pkgs.mkShell { + buildInputs = with pkgs; [ + python39 + python39Packages.pip + python39Packages.virtualenv + + # Build dependencies for native extensions + gcc + pkg-config + zlib + libjpeg + libpng + freetype + openblas + lapack + + # For luma.oled/lcd (display libs) + libusb1 + + # For pygame + SDL2 + SDL2_image + SDL2_mixer + SDL2_ttf + ] + ++ lib.optionals stdenv.isLinux [ + linuxHeaders + wayland + libxkbcommon + libGL + mesa + # XWayland support + xorg.libX11 + xorg.libXcursor + xorg.libXrandr + xorg.libXi + ] + ++ lib.optionals stdenv.isDarwin [ + darwin.apple_sdk.frameworks.Cocoa + darwin.apple_sdk.frameworks.CoreVideo + darwin.apple_sdk.frameworks.IOKit + ]; + + shellHook = '' + export LD_LIBRARY_PATH="${pkgs.lib.makeLibraryPath ([ + pkgs.stdenv.cc.cc.lib + pkgs.zlib + pkgs.libjpeg + pkgs.libpng + pkgs.freetype + pkgs.openblas + pkgs.lapack + pkgs.SDL2 + pkgs.SDL2_image + pkgs.SDL2_mixer + pkgs.SDL2_ttf + ] ++ lib.optionals stdenv.isLinux [ + pkgs.wayland + pkgs.libxkbcommon + pkgs.libGL + pkgs.mesa + pkgs.xorg.libX11 + pkgs.xorg.libXcursor + pkgs.xorg.libXrandr + pkgs.xorg.libXi + ])}:$LD_LIBRARY_PATH" + '' + lib.optionalString stdenv.isLinux '' + export C_INCLUDE_PATH="${pkgs.linuxHeaders}/include:$C_INCLUDE_PATH" + export LIBGL_DRIVERS_PATH="${pkgs.mesa.drivers}/lib/dri" + export __EGL_VENDOR_LIBRARY_DIRS="${pkgs.mesa.drivers}/share/glvnd/egl_vendor.d" + # Use XWayland for pygame (allows window resize on Wayland compositors) + export SDL_VIDEODRIVER=x11 + ''; +} From 7334f3043961143bbac5d242e4bdf11bbe12baae Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Tue, 10 Feb 2026 15:26:04 +0100 Subject: [PATCH 059/144] feat: camera switching via NixOS specialisations Replace runtime camera selection (config.txt dtoverlay) with build-time device tree overlays and NixOS specialisations. All three camera variants (imx462, imx296, imx477) are pre-built; switching is instant via `switch-to-configuration boot` + reboot. - Remove runtimeCameraSelection option, always bake overlay into DT - Change default camera from imx296 to imx462 - Add specialisations to SD image (imx296, imx477) and netboot (imx296, imx462) - Add pifinder-switch-camera wrapper script and sudoers entry - Preserve camera choice across upgrades via /var/lib/pifinder/camera-type - Delete Debian sys_utils.py, rename sys_utils_nixos.py to sys_utils.py - Simplify utils.py get_sys_utils() (no more /etc/NIXOS check) - Delegate callbacks.py get_camera_type() to sys_utils - Deploy script: use FDTDIR in extlinux.conf, remove dtoverlay from config.txt Co-Authored-By: Claude Opus 4.6 --- deploy-image-to-nfs.sh | 13 +- flake.nix | 30 +- nixos/hardware.nix | 26 +- nixos/services.nix | 33 +- python/PiFinder/sys_utils.py | 697 +++++++++++++++++++---------- python/PiFinder/sys_utils_fake.py | 4 + python/PiFinder/sys_utils_nixos.py | 561 ----------------------- python/PiFinder/ui/callbacks.py | 16 +- python/PiFinder/utils.py | 5 - 9 files changed, 523 insertions(+), 862 deletions(-) delete mode 100644 python/PiFinder/sys_utils_nixos.py diff --git a/deploy-image-to-nfs.sh b/deploy-image-to-nfs.sh index ed6ba4807..1aec63990 100755 --- a/deploy-image-to-nfs.sh +++ b/deploy-image-to-nfs.sh @@ -38,10 +38,6 @@ nix build .#nixosConfigurations.pifinder-netboot.config.system.build.toplevel \ CLOSURE=$(readlink -f result-netboot) echo "Closure: $CLOSURE" -# Extract camera type from NixOS config for config.txt dtoverlay -CAMERA_TYPE=$(nix eval .#nixosConfigurations.pifinder-netboot.config.pifinder.cameraType --raw) -echo "Camera: $CAMERA_TYPE" - # Extract paths from closure KERNEL=$(readlink -f result-netboot/kernel) INITRD=$(readlink -f result-netboot/initrd) @@ -250,9 +246,10 @@ rsync -avz "${KERNEL}" "${PROXNIX}:/tmp/${KERNEL_NAME}" rsync -avz "${INITRD}" "${PROXNIX}:/tmp/${INITRD_NAME}" ssh "${PROXNIX}" "sudo mv /tmp/${KERNEL_NAME} /tmp/${INITRD_NAME} ${TFTP_ROOT}/nixos/" -# Copy DTBs from device-tree-overlays package +# Copy NixOS-built DTBs (with camera overlay baked in) to dtbs/ subdirectory +ssh "${PROXNIX}" "sudo mkdir -p ${TFTP_ROOT}/dtbs" rsync -avz "${DTBS}/broadcom/" "${PROXNIX}:/tmp/dtbs/" -ssh "${PROXNIX}" "sudo cp /tmp/dtbs/*.dtb ${TFTP_ROOT}/ && sudo rm -rf /tmp/dtbs" +ssh "${PROXNIX}" "sudo cp /tmp/dtbs/*.dtb ${TFTP_ROOT}/dtbs/ && sudo rm -rf /tmp/dtbs" # Copy overlays from kernel package KERNEL_DIR=$(dirname "$KERNEL") @@ -271,9 +268,6 @@ armstub=armstub8-gic.bin disable_overscan=1 arm_boost=1 -# Camera overlay from NixOS config -dtoverlay=${CAMERA_TYPE} - [all] arm_64bit=1 enable_uart=1 @@ -291,6 +285,7 @@ LABEL nixos-default MENU LABEL NixOS - Default LINUX /nixos/${KERNEL_NAME} INITRD /nixos/${INITRD_NAME} + FDTDIR /dtbs APPEND init=${INIT_PATH} ip=dhcp console=ttyS0,115200n8 console=ttyAMA0,115200n8 console=tty0 loglevel=4 EXTLINUX diff --git a/flake.nix b/flake.nix index 1325dfc3a..26a884697 100644 --- a/flake.nix +++ b/flake.nix @@ -31,15 +31,20 @@ system = "aarch64-linux"; modules = commonModules ++ [ { pifinder.devMode = false; } + # Camera specialisations — base is imx462 (default), specialisations for others + ({ ... }: { + specialisation = { + imx296.configuration = { pifinder.cameraType = "imx296"; }; + imx477.configuration = { pifinder.cameraType = "imx477"; }; + }; + }) ({ lib, ... }: { boot.supportedFilesystems = lib.mkForce [ "vfat" "ext4" ]; }) ] ++ nixpkgs.lib.optionals includeSDImage [ "${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix" - # Runtime camera selection via /boot/camera.txt ({ config, pkgs, lib, ... }: let - # Custom config.txt with camera.txt include configTxt = pkgs.writeText "config.txt" '' [pi3] kernel=u-boot-rpi3.bin @@ -62,24 +67,12 @@ arm_64bit=1 enable_uart=1 avoid_warnings=1 - - # Camera overlay - edit camera.txt and reboot to change camera - include camera.txt - ''; - - cameraTxt = pkgs.writeText "camera.txt" '' - # PiFinder Camera Configuration - # Edit this file and reboot to switch cameras - # Options: imx296, imx290 (for imx462), imx477 - dtoverlay=imx296 ''; in { sdImage.populateFirmwareCommands = lib.mkForce '' (cd ${pkgs.raspberrypifw}/share/raspberrypi/boot && cp bootcode.bin fixup*.dat start*.elf $NIX_BUILD_TOP/firmware/) - # Custom config.txt with camera.txt include cp ${configTxt} firmware/config.txt - cp ${cameraTxt} firmware/camera.txt # Pi3 files cp ${pkgs.ubootRaspberryPi3_64bit}/u-boot.bin firmware/u-boot-rpi3.bin @@ -120,6 +113,13 @@ modules = commonModules ++ [ { pifinder.devMode = true; } { pifinder.cameraType = "imx477"; } # HQ camera for netboot dev + # Camera specialisations for netboot (base is imx477) + ({ ... }: { + specialisation = { + imx296.configuration = { pifinder.cameraType = "imx296"; }; + imx462.configuration = { pifinder.cameraType = "imx462"; }; + }; + }) ({ lib, pkgs, ... }: let boot-splash = import ./nixos/pkgs/boot-splash.nix { inherit pkgs; }; @@ -272,7 +272,7 @@ }; in { nixosConfigurations = { - # SD card boot — camera selected at runtime via /boot/camera.txt + # SD card boot — camera baked into DT, switched via specialisations pifinder = mkPifinderSystem {}; # NFS netboot — for development on proxnix pifinder-netboot = mkPifinderNetboot; diff --git a/nixos/hardware.nix b/nixos/hardware.nix index 7003a09f3..277251637 100644 --- a/nixos/hardware.nix +++ b/nixos/hardware.nix @@ -12,19 +12,9 @@ in { options.pifinder = { cameraType = lib.mkOption { type = lib.types.enum [ "imx296" "imx462" "imx477" ]; - default = "imx296"; + default = "imx462"; description = "Camera sensor type for PiFinder"; }; - - runtimeCameraSelection = lib.mkOption { - type = lib.types.bool; - default = true; - description = '' - Enable runtime camera selection via /boot/camera.txt. - When true, camera overlay is loaded via config.txt include (SD card). - When false, camera overlay is baked into device tree (netboot). - ''; - }; }; config = { @@ -82,8 +72,7 @@ in { ''; }; - # Camera dtoverlay — only bake into device tree when NOT using runtime selection - # For SD cards (runtimeCameraSelection=true), overlay is loaded via config.txt + # Camera dtoverlay — baked into device tree at build time cameraOverlay = { name = "${cameraDriver}-camera"; dtboFile = "${pkgs.raspberrypifw}/share/raspberrypi/boot/overlays/${cameraDriver}.dtbo"; @@ -92,20 +81,9 @@ in { spi0Overlay uart3Overlay pwmOverlay - ] ++ lib.optionals (!cfg.runtimeCameraSelection) [ cameraOverlay ]; - # Runtime camera selection: create /boot/camera.txt with default overlay - # User can edit this file and reboot to switch cameras - environment.etc."camera.txt.default" = lib.mkIf cfg.runtimeCameraSelection { - text = '' - # Camera overlay - edit and reboot to change camera - # Options: imx296, imx290 (for imx462), imx477 - dtoverlay=${cameraDriver} - ''; - }; - # udev rules for hardware access without root services.udev.extraRules = '' SUBSYSTEM=="spidev", GROUP="spi", MODE="0660" diff --git a/nixos/services.nix b/nixos/services.nix index 3d43e4df6..87c46e42a 100644 --- a/nixos/services.nix +++ b/nixos/services.nix @@ -4,6 +4,21 @@ let cedar-detect = import ./pkgs/cedar-detect.nix { inherit pkgs; }; pifinder-src = import ./pkgs/pifinder-src.nix { inherit pkgs; }; boot-splash = import ./pkgs/boot-splash.nix { inherit pkgs; }; + pifinder-switch-camera = pkgs.writeShellScriptBin "pifinder-switch-camera" '' + CAM="$1" + PERSIST="/var/lib/pifinder/camera-type" + mkdir -p /var/lib/pifinder + + SPEC="/run/current-system/specialisation/$CAM" + if [ "$CAM" = "${cfg.cameraType}" ]; then + /run/current-system/bin/switch-to-configuration boot + elif [ -d "$SPEC" ]; then + "$SPEC/bin/switch-to-configuration" boot + else + echo "Unknown camera: $CAM" >&2; exit 1 + fi + echo "$CAM" > "$PERSIST" + ''; in { options.pifinder = { devMode = lib.mkOption { @@ -19,6 +34,11 @@ in { }; config = { + # --------------------------------------------------------------------------- + # Camera switch wrapper (used by pifinder UI via sudo) + # --------------------------------------------------------------------------- + environment.systemPackages = [ pifinder-switch-camera ]; + # --------------------------------------------------------------------------- # Cachix binary substituter — Pi downloads pre-built paths, never compiles # --------------------------------------------------------------------------- @@ -155,7 +175,7 @@ in { { command = "/run/current-system/sw/bin/chpasswd"; options = [ "NOPASSWD" ]; } { command = "/run/current-system/sw/bin/dmesg"; options = [ "NOPASSWD" ]; } { command = "/run/current-system/sw/bin/hostnamectl *"; options = [ "NOPASSWD" ]; } - { command = "/run/current-system/sw/bin/tee /boot/camera.txt"; options = [ "NOPASSWD" ]; } + { command = "/run/current-system/sw/bin/pifinder-switch-camera *"; options = [ "NOPASSWD" ]; } ]; }]; @@ -236,7 +256,6 @@ in { script = '' set -euo pipefail REF=$(cat /run/pifinder/upgrade-ref 2>/dev/null || echo "release") - # Single universal build - camera is selected at runtime via /boot/camera.txt FLAKE="${cfg.repoUrl}/''${REF}#pifinder" # Pre-flight: check disk space (need at least 500MB) @@ -260,6 +279,16 @@ in { echo "Phase 3: Persist to bootloader" nixos-rebuild switch --flake "$FLAKE" + # Restore camera specialisation if not default + CAM=$(cat /var/lib/pifinder/camera-type 2>/dev/null || echo "${cfg.cameraType}") + if [ "$CAM" != "${cfg.cameraType}" ]; then + SPEC="/run/current-system/specialisation/$CAM" + if [ -d "$SPEC" ]; then + echo "Restoring camera specialisation: $CAM" + "$SPEC/bin/switch-to-configuration" boot + fi + fi + echo "Phase 4: Cleanup old generations" nix-env --delete-generations +2 -p /nix/var/nix/profiles/system || true nix-collect-garbage || true diff --git a/python/PiFinder/sys_utils.py b/python/PiFinder/sys_utils.py index 21b168ec7..fcc1aaf63 100644 --- a/python/PiFinder/sys_utils.py +++ b/python/PiFinder/sys_utils.py @@ -1,11 +1,31 @@ -import re -from typing import Dict, Any +""" +NixOS system utilities for PiFinder. + +Uses: +- NetworkManager GLib bindings (gi.repository.NM) for WiFi management +- python-pam for password verification +- D-Bus for hostname/reboot/shutdown +- stdlib zipfile for backup/restore +- NixOS specialisations for camera switching +- systemd service for software updates +""" + +import subprocess +import time +import logging +from pathlib import Path +from typing import Optional + +import requests +import dbus # type: ignore[import-not-found] +import pam # type: ignore[import-not-found] +import gi # type: ignore[import-not-found] -import sh -from sh import wpa_cli, su, passwd +gi.require_version("NM", "1.0") +from gi.repository import GLib, NM # type: ignore # noqa: E402 -from PiFinder import utils -from PiFinder.sys_utils_base import ( +from PiFinder import utils # noqa: E402 +from PiFinder.sys_utils_base import ( # noqa: E402 NetworkBase, BACKUP_PATH, # noqa: F401 remove_backup, # noqa: F401 @@ -13,314 +33,529 @@ restore_userdata, # noqa: F401 restart_pifinder, # noqa: F401 ) -import logging -logger = logging.getLogger("SysUtils") +AP_CONNECTION_NAME = "PiFinder-AP" + +logger = logging.getLogger("SysUtils.NixOS") + + +# --------------------------------------------------------------------------- +# Internal helpers +# --------------------------------------------------------------------------- + + +def _run(cmd: list[str], **kwargs) -> subprocess.CompletedProcess: + """Run a command, logging failures.""" + result = subprocess.run(cmd, capture_output=True, text=True, **kwargs) + if result.returncode != 0: + logger.error( + "Command %s failed (rc=%d): %s", + cmd, + result.returncode, + result.stderr.strip(), + ) + return result + + +def _nm_client() -> NM.Client: + """Create a NetworkManager client (synchronous).""" + return NM.Client.new(None) + + +def _nm_run_async(async_fn, *args): + """ + Run an async NM operation synchronously by spinning a local GLib MainLoop. + """ + loop = GLib.MainLoop.new(None, False) + state = {"result": None, "error": None} + + def callback(source, async_result, _user_data): + try: + method_name = async_fn.__name__.replace("_async", "_finish") + finish_fn = getattr(source, method_name) + state["result"] = finish_fn(async_result) + except Exception as e: + state["error"] = e + finally: + loop.quit() + + async_fn(*args, callback, None) + loop.run() + + if state["error"]: + raise state["error"] + return state["result"] + + +def _get_system_bus() -> dbus.SystemBus: + return dbus.SystemBus() + + +# --------------------------------------------------------------------------- +# Network class — WiFi management via NM GLib bindings +# --------------------------------------------------------------------------- class Network(NetworkBase): """ - Provides wifi network info via wpa_supplicant (Debian). + Provides wifi network info via NetworkManager GLib bindings (libnm). """ def __init__(self): - self.wifi_txt = f"{utils.pifinder_dir}/wifi_status.txt" - with open(self.wifi_txt, "r") as wifi_f: - self._wifi_mode = wifi_f.read() - - self._wifi_networks: list = [] + self._client = _nm_client() + self._wifi_networks: list[dict] = [] + self._wifi_mode = self._detect_wifi_mode() self.populate_wifi_networks() + def _detect_wifi_mode(self) -> str: + """Detect whether we're in AP or Client mode.""" + for ac in self._client.get_active_connections(): + if ac.get_id() == AP_CONNECTION_NAME: + return "AP" + return "Client" + def populate_wifi_networks(self) -> None: - wpa_supplicant_path = "/etc/wpa_supplicant/wpa_supplicant.conf" + """Get saved WiFi connections from NetworkManager.""" self._wifi_networks = [] - try: - with open(wpa_supplicant_path, "r") as wpa_conf: - contents = wpa_conf.readlines() - except IOError as e: - logger.error(f"Error reading wpa_supplicant.conf: {e}") - return - - self._wifi_networks = Network._parse_wpa_supplicant(contents) - - @staticmethod - def _parse_wpa_supplicant(contents: list[str]) -> list: - """ - Parses wpa_supplicant.conf to get current config - """ - wifi_networks = [] - network_dict: Dict[str, Any] = {} network_id = 0 - in_network_block = False - for line in contents: - line = line.strip() - if line.startswith("network={"): - in_network_block = True - network_dict = { + for conn in self._client.get_connections(): + s_wifi = conn.get_setting_wireless() + if s_wifi is None: + continue + if conn.get_id() == AP_CONNECTION_NAME: + continue + ssid_bytes = s_wifi.get_ssid() + ssid = ssid_bytes.get_data().decode("utf-8") if ssid_bytes else "" + self._wifi_networks.append( + { "id": network_id, - "ssid": None, + "ssid": ssid, "psk": None, - "key_mgmt": None, + "key_mgmt": "WPA-PSK", } - - elif line == "}" and in_network_block: - in_network_block = False - wifi_networks.append(network_dict) - network_id += 1 - - elif in_network_block: - match = re.match(r"(\w+)=(.+)", line) - if match: - key, value = match.groups() - if key in network_dict: - network_dict[key] = value.strip('"') - - return wifi_networks + ) + network_id += 1 def delete_wifi_network(self, network_id): - """ - Immediately deletes a wifi network - """ - self._wifi_networks.pop(network_id) - - with open("/etc/wpa_supplicant/wpa_supplicant.conf", "r") as wpa_conf: - wpa_contents = list(wpa_conf) - - with open("/etc/wpa_supplicant/wpa_supplicant.conf", "w") as wpa_conf: - in_networks = False - for line in wpa_contents: - if not in_networks: - if line.startswith("network={"): - in_networks = True - else: - wpa_conf.write(line) - - for network in self._wifi_networks: - ssid = network["ssid"] - key_mgmt = network["key_mgmt"] - psk = network["psk"] - - wpa_conf.write("\nnetwork={\n") - wpa_conf.write(f'\tssid="{ssid}"\n') - if key_mgmt == "WPA-PSK": - wpa_conf.write(f'\tpsk="{psk}"\n') - wpa_conf.write(f"\tkey_mgmt={key_mgmt}\n") - - wpa_conf.write("}\n") - + """Delete a saved WiFi connection.""" + if network_id < 0 or network_id >= len(self._wifi_networks): + logger.error("Invalid network_id: %d", network_id) + return + ssid = self._wifi_networks[network_id]["ssid"] + for conn in self._client.get_connections(): + if conn.get_id() == ssid: + try: + _nm_run_async(conn.delete_async, None) + except Exception as e: + logger.error("Failed to delete connection '%s': %s", ssid, e) + break self.populate_wifi_networks() def add_wifi_network(self, ssid, key_mgmt, psk=None): - """ - Add a wifi network - """ - with open("/etc/wpa_supplicant/wpa_supplicant.conf", "a") as wpa_conf: - wpa_conf.write("\nnetwork={\n") - wpa_conf.write(f'\tssid="{ssid}"\n') - if key_mgmt == "WPA-PSK": - wpa_conf.write(f'\tpsk="{psk}"\n') - wpa_conf.write(f"\tkey_mgmt={key_mgmt}\n") - - wpa_conf.write("}\n") + """Add and connect to a WiFi network.""" + profile = NM.SimpleConnection.new() + + s_con = NM.SettingConnection.new() + s_con.set_property(NM.SETTING_CONNECTION_ID, ssid) + s_con.set_property(NM.SETTING_CONNECTION_TYPE, "802-11-wireless") + s_con.set_property(NM.SETTING_CONNECTION_AUTOCONNECT, True) + profile.add_setting(s_con) + + s_wifi = NM.SettingWireless.new() + s_wifi.set_property( + NM.SETTING_WIRELESS_SSID, + GLib.Bytes.new(ssid.encode("utf-8")), + ) + s_wifi.set_property(NM.SETTING_WIRELESS_MODE, "infrastructure") + profile.add_setting(s_wifi) + + if key_mgmt == "WPA-PSK" and psk: + s_wsec = NM.SettingWirelessSecurity.new() + s_wsec.set_property(NM.SETTING_WIRELESS_SECURITY_KEY_MGMT, "wpa-psk") + s_wsec.set_property(NM.SETTING_WIRELESS_SECURITY_PSK, psk) + profile.add_setting(s_wsec) + + s_ip4 = NM.SettingIP4Config.new() + s_ip4.set_property(NM.SETTING_IP_CONFIG_METHOD, "auto") + profile.add_setting(s_ip4) - self.populate_wifi_networks() - if self._wifi_mode == "Client": - wpa_cli("reconfigure") + try: + _nm_run_async( + self._client.add_and_activate_connection_async, + profile, + self._client.get_device_by_iface("wlan0"), + None, + None, + ) + except Exception as e: + logger.error("Failed to add WiFi network '%s': %s", ssid, e) - def get_ap_name(self): - with open("/etc/hostapd/hostapd.conf", "r") as conf: - for line in conf: - if line.startswith("ssid="): - return line[5:-1] - return "UNKN" + self.populate_wifi_networks() - def set_ap_name(self, ap_name): + def get_ap_name(self) -> str: + """Get the current AP SSID from the PiFinder-AP profile.""" + for conn in self._client.get_connections(): + if conn.get_id() == AP_CONNECTION_NAME: + s_wifi = conn.get_setting_wireless() + if s_wifi: + ssid_bytes = s_wifi.get_ssid() + if ssid_bytes: + return ssid_bytes.get_data().decode("utf-8") + return "PiFinderAP" + + def set_ap_name(self, ap_name: str) -> None: + """Change the AP SSID.""" if ap_name == self.get_ap_name(): return - with open("/tmp/hostapd.conf", "w") as new_conf: - with open("/etc/hostapd/hostapd.conf", "r") as conf: - for line in conf: - if line.startswith("ssid="): - line = f"ssid={ap_name}\n" - new_conf.write(line) - sh.sudo("cp", "/tmp/hostapd.conf", "/etc/hostapd/hostapd.conf") + for conn in self._client.get_connections(): + if conn.get_id() == AP_CONNECTION_NAME: + s_wifi = conn.get_setting_wireless() + if s_wifi: + s_wifi.set_property( + NM.SETTING_WIRELESS_SSID, + GLib.Bytes.new(ap_name.encode("utf-8")), + ) + try: + _nm_run_async(conn.commit_changes_async, True, None) + except Exception as e: + logger.error("Failed to update AP SSID: %s", e) + return def get_connected_ssid(self) -> str: - """ - Returns the SSID of the connected wifi network or - empty string if not connected or in AP mode - """ + """Returns the SSID of the connected wifi network.""" if self.wifi_mode() == "AP": return "" - try: - iwgetid = sh.Command("iwgetid") - _t = iwgetid(_ok_code=(0, 255)).strip() - return _t.split(":")[-1].strip('"') - except sh.CommandNotFound: - return "ssid_not_found" + device = self._client.get_device_by_iface("wlan0") + if device is None: + return "" + ac = device.get_active_connection() + if ac is None: + return "" + conn = ac.get_connection() + if conn is None: + return "" + s_wifi = conn.get_setting_wireless() + if s_wifi is None: + return "" + ssid_bytes = s_wifi.get_ssid() + if ssid_bytes is None: + return "" + return ssid_bytes.get_data().decode("utf-8") - def set_host_name(self, hostname) -> None: + def set_host_name(self, hostname: str) -> None: + """Set hostname via D-Bus to org.freedesktop.hostname1.""" if hostname == self.get_host_name(): return - _result = sh.sudo("hostnamectl", "set-hostname", hostname) + try: + bus = _get_system_bus() + hostnamed = bus.get_object( + "org.freedesktop.hostname1", + "/org/freedesktop/hostname1", + ) + iface = dbus.Interface(hostnamed, "org.freedesktop.hostname1") + iface.SetStaticHostname(hostname, False) + except dbus.DBusException as e: + logger.error("Failed to set hostname via D-Bus: %s", e) def _go_ap(self) -> None: - go_wifi_ap() + """Activate the AP connection.""" + self._activate_connection(AP_CONNECTION_NAME) def _go_client(self) -> None: - go_wifi_cli() + """Deactivate the AP connection (fall back to client).""" + self._deactivate_connection(AP_CONNECTION_NAME) + + def _activate_connection(self, name: str) -> None: + """Activate a saved connection by name.""" + conn = None + for c in self._client.get_connections(): + if c.get_id() == name: + conn = c + break + if conn is None: + logger.error("Connection '%s' not found", name) + return + device = self._client.get_device_by_iface("wlan0") + try: + _nm_run_async( + self._client.activate_connection_async, + conn, + device, + None, + None, + ) + except Exception as e: + logger.error("Failed to activate '%s': %s", name, e) + + def _deactivate_connection(self, name: str) -> None: + """Deactivate an active connection by name.""" + for ac in self._client.get_active_connections(): + if ac.get_id() == name: + try: + _nm_run_async( + self._client.deactivate_connection_async, + ac, + None, + ) + except Exception as e: + logger.error("Failed to deactivate '%s': %s", name, e) + return + logger.warning("No active connection named '%s' to deactivate", name) + + +# --------------------------------------------------------------------------- +# Module-level WiFi switching (called by callbacks.py and status.py) +# --------------------------------------------------------------------------- + +_network_instance: Optional[Network] = None + + +def _get_network() -> Network: + global _network_instance + if _network_instance is None: + _network_instance = Network() + return _network_instance def go_wifi_ap(): logger.info("SYS: Switching to AP") - sh.sudo("/home/pifinder/PiFinder/switch-ap.sh") + net = _get_network() + net.set_wifi_mode("AP") return True def go_wifi_cli(): logger.info("SYS: Switching to Client") - sh.sudo("/home/pifinder/PiFinder/switch-cli.sh") + net = _get_network() + net.set_wifi_mode("Client") return True +# --------------------------------------------------------------------------- +# System control (systemctl subprocess + D-Bus for reboot/shutdown) +# --------------------------------------------------------------------------- + + def restart_system() -> None: - """ - Restarts the system - """ + """Restart the system via D-Bus to login1.""" logger.info("SYS: Initiating System Restart") - sh.sudo("shutdown", "-r", "now") + try: + bus = _get_system_bus() + login1 = bus.get_object( + "org.freedesktop.login1", + "/org/freedesktop/login1", + ) + manager = dbus.Interface(login1, "org.freedesktop.login1.Manager") + manager.Reboot(False) + except dbus.DBusException as e: + logger.error("D-Bus reboot failed, falling back to subprocess: %s", e) + _run(["sudo", "shutdown", "-r", "now"]) def shutdown() -> None: - """ - shuts down the system - """ + """Shut down the system via D-Bus to login1.""" logger.info("SYS: Initiating Shutdown") - sh.sudo("shutdown", "now") + try: + bus = _get_system_bus() + login1 = bus.get_object( + "org.freedesktop.login1", + "/org/freedesktop/login1", + ) + manager = dbus.Interface(login1, "org.freedesktop.login1.Manager") + manager.PowerOff(False) + except dbus.DBusException as e: + logger.error("D-Bus shutdown failed, falling back to subprocess: %s", e) + _run(["sudo", "shutdown", "now"]) + + +# --------------------------------------------------------------------------- +# Software updates — async upgrade via systemd service +# --------------------------------------------------------------------------- + +UPGRADE_STATE_IDLE = "idle" +UPGRADE_STATE_RUNNING = "running" +UPGRADE_STATE_SUCCESS = "success" +UPGRADE_STATE_FAILED = "failed" + +VERSIONS_URL = ( + "https://raw.githubusercontent.com/mrosseel/PiFinder/release/versions.json" +) +UPGRADE_REF_FILE = Path("/run/pifinder/upgrade-ref") -def update_software(): - """ - Uses systemctl to git pull and then restart - service - """ - logger.info("SYS: Running update") - sh.bash("/home/pifinder/PiFinder/pifinder_update.sh") - return True +def fetch_version_manifest() -> Optional[dict]: + """Fetch the channel/version manifest from GitHub.""" + try: + resp = requests.get(VERSIONS_URL, timeout=10) + resp.raise_for_status() + return resp.json() + except Exception as e: + logger.error("Failed to fetch version manifest: %s", e) + return None -def verify_password(username, password): - """ - Checks the provided password against the provided user - password - """ - result = su(username, "-c", "echo", _in=f"{password}\n", _ok_code=(0, 1)) - if result.exit_code == 0: - return True - else: - return False +def get_versions_for_channel(channel: str) -> list[dict]: + """Get available versions for a channel.""" + manifest = fetch_version_manifest() + if manifest is None: + return [] + return manifest.get("channels", {}).get(channel, {}).get("versions", []) + + +def get_available_channels() -> list[str]: + """Get list of available channel names.""" + manifest = fetch_version_manifest() + if manifest is None: + return ["stable"] + return list(manifest.get("channels", {}).keys()) -def change_password(username, current_password, new_password): - """ - Changes the PiFinder User password - """ - result = passwd( - username, - _in=f"{current_password}\n{new_password}\n{new_password}\n", - _ok_code=(0, 10), - ) - if result.exit_code == 0: - return True - else: +def start_upgrade(ref: str = "release") -> bool: + """Start pifinder-upgrade.service with a specific git ref.""" + try: + UPGRADE_REF_FILE.write_text(ref) + except OSError as e: + logger.error("Failed to write upgrade ref file: %s", e) return False + _run(["sudo", "systemctl", "reset-failed", "pifinder-upgrade.service"]) + result = _run( + [ + "sudo", + "systemctl", + "start", + "--no-block", + "pifinder-upgrade.service", + ] + ) + return result.returncode == 0 + + +def get_upgrade_state() -> str: + """Poll upgrade service state.""" + result = _run(["systemctl", "is-active", "pifinder-upgrade.service"]) + status = result.stdout.strip() + if status == "activating": + return UPGRADE_STATE_RUNNING + elif status == "active": + return UPGRADE_STATE_SUCCESS + elif status == "failed": + return UPGRADE_STATE_FAILED + return UPGRADE_STATE_IDLE + + +def get_upgrade_log_tail(lines: int = 3) -> str: + """Last N lines from upgrade journal for UI display.""" + result = _run( + [ + "journalctl", + "-u", + "pifinder-upgrade.service", + "-n", + str(lines), + "--no-pager", + "-o", + "cat", + ] + ) + return result.stdout.strip() if result.returncode == 0 else "" -def switch_cam_imx477() -> None: - logger.info("SYS: Switching cam to imx477") - sh.sudo("python", "-m", "PiFinder.switch_camera", "imx477") +def update_software() -> bool: + """Blocking wrapper for backward compatibility (uses default ref).""" + if not start_upgrade(): + return False + while True: + time.sleep(10) + state = get_upgrade_state() + if state == UPGRADE_STATE_SUCCESS: + return True + elif state == UPGRADE_STATE_FAILED: + return False -def switch_cam_imx296() -> None: - logger.info("SYS: Switching cam to imx296") - sh.sudo("python", "-m", "PiFinder.switch_camera", "imx296") +# --------------------------------------------------------------------------- +# Password management (python-pam + chpasswd) +# --------------------------------------------------------------------------- -def switch_cam_imx462() -> None: - logger.info("SYS: Switching cam to imx462") - sh.sudo("python", "-m", "PiFinder.switch_camera", "imx462") +def verify_password(username: str, password: str) -> bool: + """Verify a password against PAM.""" + p = pam.pam() + return p.authenticate(username, password, service="login") -def check_and_sync_gpsd_config(baud_rate: int) -> bool: - """ - Checks if GPSD configuration matches the desired baud rate, - and updates it only if necessary. - Args: - baud_rate: The desired baud rate (9600 or 115200) +def change_password(username: str, current_password: str, new_password: str) -> bool: + """Change the user password via chpasswd.""" + if not verify_password(username, current_password): + return False + result = subprocess.run( + ["sudo", "chpasswd"], + input=f"{username}:{new_password}\n", + capture_output=True, + text=True, + ) + return result.returncode == 0 - Returns: - True if configuration was updated, False if already correct - """ - logger.info(f"SYS: Checking GPSD config for baud rate {baud_rate}") - try: - with open("/etc/default/gpsd", "r") as f: - content = f.read() - - if baud_rate == 115200: - # NOTE: the space before -s in the next line is really needed - expected_options = 'GPSD_OPTIONS=" -s 115200"' - else: - expected_options = 'GPSD_OPTIONS=""' - - current_match = re.search(r"^GPSD_OPTIONS=.*$", content, re.MULTILINE) - if current_match: - current_options = current_match.group(0) - if current_options == expected_options: - logger.info("SYS: GPSD config already correct, no update needed") - return False - - logger.info(f"SYS: GPSD config mismatch, updating to {expected_options}") - update_gpsd_config(baud_rate) - return True +# --------------------------------------------------------------------------- +# Camera switching (specialisations + reboot) +# --------------------------------------------------------------------------- - except Exception as e: - logger.error(f"SYS: Error checking/syncing GPSD config: {e}") - return False +CAMERA_TYPE_FILE = "/var/lib/pifinder/camera-type" -def update_gpsd_config(baud_rate: int) -> None: +def switch_camera(cam_type: str) -> None: """ - Updates the GPSD configuration file with the specified baud rate - and restarts the GPSD service. + Switch camera via NixOS specialisation. + Requires reboot (dtoverlay change). """ - logger.info(f"SYS: Updating GPSD config with baud rate {baud_rate}") + logger.info("SYS: Switching camera to %s via specialisation", cam_type) + result = _run(["sudo", "pifinder-switch-camera", cam_type]) + if result.returncode != 0: + logger.error("SYS: Camera switch failed: %s", result.stderr) + +def get_camera_type() -> list[str]: try: - with open("/etc/default/gpsd", "r") as f: - lines = f.readlines() + with open(CAMERA_TYPE_FILE) as f: + return [f.read().strip()] + except FileNotFoundError: + return ["imx462"] - updated_lines = [] - for line in lines: - if line.startswith("GPSD_OPTIONS="): - if baud_rate == 115200: - # NOTE: the space before -s in the next line is really needed - updated_lines.append('GPSD_OPTIONS=" -s 115200"\n') - else: - updated_lines.append('GPSD_OPTIONS=""\n') - else: - updated_lines.append(line) - with open("/tmp/gpsd.conf", "w") as f: - f.writelines(updated_lines) +def switch_cam_imx477() -> None: + logger.info("SYS: Switching cam to imx477") + switch_camera("imx477") + - sh.sudo("cp", "/tmp/gpsd.conf", "/etc/default/gpsd") - sh.sudo("systemctl", "restart", "gpsd") +def switch_cam_imx296() -> None: + logger.info("SYS: Switching cam to imx296") + switch_camera("imx296") - logger.info("SYS: GPSD configuration updated and service restarted") - except Exception as e: - logger.error(f"SYS: Error updating GPSD config: {e}") - raise +def switch_cam_imx462() -> None: + logger.info("SYS: Switching cam to imx462") + switch_camera("imx462") + + +# --------------------------------------------------------------------------- +# GPSD config (declarative on NixOS — no-ops) +# --------------------------------------------------------------------------- + + +def check_and_sync_gpsd_config(baud_rate: int) -> bool: + """ + On NixOS, GPSD config is managed declaratively via services.nix. + This is a no-op. + """ + logger.info("SYS: GPSD baud rate %d — managed by NixOS configuration", baud_rate) + return False + + +def update_gpsd_config(baud_rate: int) -> None: + """On NixOS, GPSD configuration is declarative. This is a no-op.""" + logger.info( + "SYS: GPSD config is managed declaratively on NixOS (baud=%d)", baud_rate + ) diff --git a/python/PiFinder/sys_utils_fake.py b/python/PiFinder/sys_utils_fake.py index b60fe7881..53e0237fc 100644 --- a/python/PiFinder/sys_utils_fake.py +++ b/python/PiFinder/sys_utils_fake.py @@ -92,6 +92,10 @@ def change_password(username, current_password, new_password): return False +def get_camera_type() -> list[str]: + return ["imx462"] + + def switch_cam_imx477() -> None: logger.info("SYS: Switching cam to imx477") diff --git a/python/PiFinder/sys_utils_nixos.py b/python/PiFinder/sys_utils_nixos.py deleted file mode 100644 index b4a16981d..000000000 --- a/python/PiFinder/sys_utils_nixos.py +++ /dev/null @@ -1,561 +0,0 @@ -""" -NixOS-native system utilities for PiFinder. - -Replaces sys_utils.py's wpa_supplicant/hostapd/file-editing approach with: -- NetworkManager GLib bindings (gi.repository.NM) for WiFi management -- python-pam for password verification -- D-Bus for hostname/reboot/shutdown -- stdlib zipfile for backup/restore -- nixos-rebuild for camera switching and software updates -""" - -import subprocess -import time -import logging -from pathlib import Path -from typing import Optional - -import requests -import dbus # type: ignore[import-not-found] -import pam # type: ignore[import-not-found] -import gi # type: ignore[import-not-found] - -gi.require_version("NM", "1.0") -from gi.repository import GLib, NM # type: ignore # noqa: E402 - -from PiFinder import utils # noqa: E402 -from PiFinder.sys_utils_base import ( # noqa: E402 - NetworkBase, - BACKUP_PATH, # noqa: F401 - remove_backup, # noqa: F401 - backup_userdata, # noqa: F401 - restore_userdata, # noqa: F401 - restart_pifinder, # noqa: F401 -) - -AP_CONNECTION_NAME = "PiFinder-AP" - -logger = logging.getLogger("SysUtils.NixOS") - - -# --------------------------------------------------------------------------- -# Internal helpers -# --------------------------------------------------------------------------- - - -def _run(cmd: list[str], **kwargs) -> subprocess.CompletedProcess: - """Run a command, logging failures.""" - result = subprocess.run(cmd, capture_output=True, text=True, **kwargs) - if result.returncode != 0: - logger.error( - "Command %s failed (rc=%d): %s", - cmd, - result.returncode, - result.stderr.strip(), - ) - return result - - -def _nm_client() -> NM.Client: - """Create a NetworkManager client (synchronous).""" - return NM.Client.new(None) - - -def _nm_run_async(async_fn, *args): - """ - Run an async NM operation synchronously by spinning a local GLib MainLoop. - """ - loop = GLib.MainLoop.new(None, False) - state = {"result": None, "error": None} - - def callback(source, async_result, _user_data): - try: - method_name = async_fn.__name__.replace("_async", "_finish") - finish_fn = getattr(source, method_name) - state["result"] = finish_fn(async_result) - except Exception as e: - state["error"] = e - finally: - loop.quit() - - async_fn(*args, callback, None) - loop.run() - - if state["error"]: - raise state["error"] - return state["result"] - - -def _get_system_bus() -> dbus.SystemBus: - return dbus.SystemBus() - - -# --------------------------------------------------------------------------- -# Network class — WiFi management via NM GLib bindings -# --------------------------------------------------------------------------- - - -class Network(NetworkBase): - """ - Provides wifi network info via NetworkManager GLib bindings (libnm). - """ - - def __init__(self): - self._client = _nm_client() - self._wifi_networks: list[dict] = [] - self._wifi_mode = self._detect_wifi_mode() - self.populate_wifi_networks() - - def _detect_wifi_mode(self) -> str: - """Detect whether we're in AP or Client mode.""" - for ac in self._client.get_active_connections(): - if ac.get_id() == AP_CONNECTION_NAME: - return "AP" - return "Client" - - def populate_wifi_networks(self) -> None: - """Get saved WiFi connections from NetworkManager.""" - self._wifi_networks = [] - network_id = 0 - for conn in self._client.get_connections(): - s_wifi = conn.get_setting_wireless() - if s_wifi is None: - continue - if conn.get_id() == AP_CONNECTION_NAME: - continue - ssid_bytes = s_wifi.get_ssid() - ssid = ssid_bytes.get_data().decode("utf-8") if ssid_bytes else "" - self._wifi_networks.append( - { - "id": network_id, - "ssid": ssid, - "psk": None, - "key_mgmt": "WPA-PSK", - } - ) - network_id += 1 - - def delete_wifi_network(self, network_id): - """Delete a saved WiFi connection.""" - if network_id < 0 or network_id >= len(self._wifi_networks): - logger.error("Invalid network_id: %d", network_id) - return - ssid = self._wifi_networks[network_id]["ssid"] - for conn in self._client.get_connections(): - if conn.get_id() == ssid: - try: - _nm_run_async(conn.delete_async, None) - except Exception as e: - logger.error("Failed to delete connection '%s': %s", ssid, e) - break - self.populate_wifi_networks() - - def add_wifi_network(self, ssid, key_mgmt, psk=None): - """Add and connect to a WiFi network.""" - profile = NM.SimpleConnection.new() - - s_con = NM.SettingConnection.new() - s_con.set_property(NM.SETTING_CONNECTION_ID, ssid) - s_con.set_property(NM.SETTING_CONNECTION_TYPE, "802-11-wireless") - s_con.set_property(NM.SETTING_CONNECTION_AUTOCONNECT, True) - profile.add_setting(s_con) - - s_wifi = NM.SettingWireless.new() - s_wifi.set_property( - NM.SETTING_WIRELESS_SSID, - GLib.Bytes.new(ssid.encode("utf-8")), - ) - s_wifi.set_property(NM.SETTING_WIRELESS_MODE, "infrastructure") - profile.add_setting(s_wifi) - - if key_mgmt == "WPA-PSK" and psk: - s_wsec = NM.SettingWirelessSecurity.new() - s_wsec.set_property(NM.SETTING_WIRELESS_SECURITY_KEY_MGMT, "wpa-psk") - s_wsec.set_property(NM.SETTING_WIRELESS_SECURITY_PSK, psk) - profile.add_setting(s_wsec) - - s_ip4 = NM.SettingIP4Config.new() - s_ip4.set_property(NM.SETTING_IP_CONFIG_METHOD, "auto") - profile.add_setting(s_ip4) - - try: - _nm_run_async( - self._client.add_and_activate_connection_async, - profile, - self._client.get_device_by_iface("wlan0"), - None, - None, - ) - except Exception as e: - logger.error("Failed to add WiFi network '%s': %s", ssid, e) - - self.populate_wifi_networks() - - def get_ap_name(self) -> str: - """Get the current AP SSID from the PiFinder-AP profile.""" - for conn in self._client.get_connections(): - if conn.get_id() == AP_CONNECTION_NAME: - s_wifi = conn.get_setting_wireless() - if s_wifi: - ssid_bytes = s_wifi.get_ssid() - if ssid_bytes: - return ssid_bytes.get_data().decode("utf-8") - return "PiFinderAP" - - def set_ap_name(self, ap_name: str) -> None: - """Change the AP SSID.""" - if ap_name == self.get_ap_name(): - return - for conn in self._client.get_connections(): - if conn.get_id() == AP_CONNECTION_NAME: - s_wifi = conn.get_setting_wireless() - if s_wifi: - s_wifi.set_property( - NM.SETTING_WIRELESS_SSID, - GLib.Bytes.new(ap_name.encode("utf-8")), - ) - try: - _nm_run_async(conn.commit_changes_async, True, None) - except Exception as e: - logger.error("Failed to update AP SSID: %s", e) - return - - def get_connected_ssid(self) -> str: - """Returns the SSID of the connected wifi network.""" - if self.wifi_mode() == "AP": - return "" - device = self._client.get_device_by_iface("wlan0") - if device is None: - return "" - ac = device.get_active_connection() - if ac is None: - return "" - conn = ac.get_connection() - if conn is None: - return "" - s_wifi = conn.get_setting_wireless() - if s_wifi is None: - return "" - ssid_bytes = s_wifi.get_ssid() - if ssid_bytes is None: - return "" - return ssid_bytes.get_data().decode("utf-8") - - def set_host_name(self, hostname: str) -> None: - """Set hostname via D-Bus to org.freedesktop.hostname1.""" - if hostname == self.get_host_name(): - return - try: - bus = _get_system_bus() - hostnamed = bus.get_object( - "org.freedesktop.hostname1", - "/org/freedesktop/hostname1", - ) - iface = dbus.Interface(hostnamed, "org.freedesktop.hostname1") - iface.SetStaticHostname(hostname, False) - except dbus.DBusException as e: - logger.error("Failed to set hostname via D-Bus: %s", e) - - def _go_ap(self) -> None: - """Activate the AP connection.""" - self._activate_connection(AP_CONNECTION_NAME) - - def _go_client(self) -> None: - """Deactivate the AP connection (fall back to client).""" - self._deactivate_connection(AP_CONNECTION_NAME) - - def _activate_connection(self, name: str) -> None: - """Activate a saved connection by name.""" - conn = None - for c in self._client.get_connections(): - if c.get_id() == name: - conn = c - break - if conn is None: - logger.error("Connection '%s' not found", name) - return - device = self._client.get_device_by_iface("wlan0") - try: - _nm_run_async( - self._client.activate_connection_async, - conn, - device, - None, - None, - ) - except Exception as e: - logger.error("Failed to activate '%s': %s", name, e) - - def _deactivate_connection(self, name: str) -> None: - """Deactivate an active connection by name.""" - for ac in self._client.get_active_connections(): - if ac.get_id() == name: - try: - _nm_run_async( - self._client.deactivate_connection_async, - ac, - None, - ) - except Exception as e: - logger.error("Failed to deactivate '%s': %s", name, e) - return - logger.warning("No active connection named '%s' to deactivate", name) - - -# --------------------------------------------------------------------------- -# Module-level WiFi switching (called by callbacks.py and status.py) -# --------------------------------------------------------------------------- - -_network_instance: Optional[Network] = None - - -def _get_network() -> Network: - global _network_instance - if _network_instance is None: - _network_instance = Network() - return _network_instance - - -def go_wifi_ap(): - logger.info("SYS: Switching to AP") - net = _get_network() - net.set_wifi_mode("AP") - return True - - -def go_wifi_cli(): - logger.info("SYS: Switching to Client") - net = _get_network() - net.set_wifi_mode("Client") - return True - - -# --------------------------------------------------------------------------- -# System control (systemctl subprocess + D-Bus for reboot/shutdown) -# --------------------------------------------------------------------------- - - -def restart_system() -> None: - """Restart the system via D-Bus to login1.""" - logger.info("SYS: Initiating System Restart") - try: - bus = _get_system_bus() - login1 = bus.get_object( - "org.freedesktop.login1", - "/org/freedesktop/login1", - ) - manager = dbus.Interface(login1, "org.freedesktop.login1.Manager") - manager.Reboot(False) - except dbus.DBusException as e: - logger.error("D-Bus reboot failed, falling back to subprocess: %s", e) - _run(["sudo", "shutdown", "-r", "now"]) - - -def shutdown() -> None: - """Shut down the system via D-Bus to login1.""" - logger.info("SYS: Initiating Shutdown") - try: - bus = _get_system_bus() - login1 = bus.get_object( - "org.freedesktop.login1", - "/org/freedesktop/login1", - ) - manager = dbus.Interface(login1, "org.freedesktop.login1.Manager") - manager.PowerOff(False) - except dbus.DBusException as e: - logger.error("D-Bus shutdown failed, falling back to subprocess: %s", e) - _run(["sudo", "shutdown", "now"]) - - -# --------------------------------------------------------------------------- -# Software updates — async upgrade via systemd service -# --------------------------------------------------------------------------- - -UPGRADE_STATE_IDLE = "idle" -UPGRADE_STATE_RUNNING = "running" -UPGRADE_STATE_SUCCESS = "success" -UPGRADE_STATE_FAILED = "failed" - -VERSIONS_URL = ( - "https://raw.githubusercontent.com/mrosseel/PiFinder/release/versions.json" -) - -UPGRADE_REF_FILE = Path("/run/pifinder/upgrade-ref") - - -def fetch_version_manifest() -> Optional[dict]: - """Fetch the channel/version manifest from GitHub.""" - try: - resp = requests.get(VERSIONS_URL, timeout=10) - resp.raise_for_status() - return resp.json() - except Exception as e: - logger.error("Failed to fetch version manifest: %s", e) - return None - - -def get_versions_for_channel(channel: str) -> list[dict]: - """Get available versions for a channel.""" - manifest = fetch_version_manifest() - if manifest is None: - return [] - return manifest.get("channels", {}).get(channel, {}).get("versions", []) - - -def get_available_channels() -> list[str]: - """Get list of available channel names.""" - manifest = fetch_version_manifest() - if manifest is None: - return ["stable"] - return list(manifest.get("channels", {}).keys()) - - -def start_upgrade(ref: str = "release") -> bool: - """Start pifinder-upgrade.service with a specific git ref.""" - try: - UPGRADE_REF_FILE.write_text(ref) - except OSError as e: - logger.error("Failed to write upgrade ref file: %s", e) - return False - - _run(["sudo", "systemctl", "reset-failed", "pifinder-upgrade.service"]) - result = _run( - [ - "sudo", - "systemctl", - "start", - "--no-block", - "pifinder-upgrade.service", - ] - ) - return result.returncode == 0 - - -def get_upgrade_state() -> str: - """Poll upgrade service state.""" - result = _run(["systemctl", "is-active", "pifinder-upgrade.service"]) - status = result.stdout.strip() - if status == "activating": - return UPGRADE_STATE_RUNNING - elif status == "active": - return UPGRADE_STATE_SUCCESS - elif status == "failed": - return UPGRADE_STATE_FAILED - return UPGRADE_STATE_IDLE - - -def get_upgrade_log_tail(lines: int = 3) -> str: - """Last N lines from upgrade journal for UI display.""" - result = _run( - [ - "journalctl", - "-u", - "pifinder-upgrade.service", - "-n", - str(lines), - "--no-pager", - "-o", - "cat", - ] - ) - return result.stdout.strip() if result.returncode == 0 else "" - - -def update_software() -> bool: - """Blocking wrapper for backward compatibility (uses default ref).""" - if not start_upgrade(): - return False - while True: - time.sleep(10) - state = get_upgrade_state() - if state == UPGRADE_STATE_SUCCESS: - return True - elif state == UPGRADE_STATE_FAILED: - return False - - -# --------------------------------------------------------------------------- -# Password management (python-pam + chpasswd) -# --------------------------------------------------------------------------- - - -def verify_password(username: str, password: str) -> bool: - """Verify a password against PAM.""" - p = pam.pam() - return p.authenticate(username, password, service="login") - - -def change_password(username: str, current_password: str, new_password: str) -> bool: - """Change the user password via chpasswd.""" - if not verify_password(username, current_password): - return False - result = subprocess.run( - ["sudo", "chpasswd"], - input=f"{username}:{new_password}\n", - capture_output=True, - text=True, - ) - return result.returncode == 0 - - -# --------------------------------------------------------------------------- -# Camera switching (nixos-rebuild + reboot) -# --------------------------------------------------------------------------- - - -def switch_camera(cam_type: str) -> None: - """ - Switch camera by rebuilding NixOS with the appropriate camera type. - Requires reboot (dtoverlay change). - """ - logger.info("SYS: Switching camera to %s via nixos-rebuild", cam_type) - flake_path = str(utils.pifinder_dir) - result = _run( - [ - "sudo", - "nixos-rebuild", - "switch", - "--flake", - f"{flake_path}#pifinder-{cam_type}", - ] - ) - if result.returncode == 0: - restart_system() - else: - logger.error("SYS: Camera switch rebuild failed: %s", result.stderr) - - -def switch_cam_imx477() -> None: - logger.info("SYS: Switching cam to imx477") - switch_camera("imx477") - - -def switch_cam_imx296() -> None: - logger.info("SYS: Switching cam to imx296") - switch_camera("imx296") - - -def switch_cam_imx462() -> None: - logger.info("SYS: Switching cam to imx462") - switch_camera("imx462") - - -# --------------------------------------------------------------------------- -# GPSD config (declarative on NixOS — no-ops) -# --------------------------------------------------------------------------- - - -def check_and_sync_gpsd_config(baud_rate: int) -> bool: - """ - On NixOS, GPSD config is managed declaratively via services.nix. - This is a no-op. - """ - logger.info("SYS: GPSD baud rate %d — managed by NixOS configuration", baud_rate) - return False - - -def update_gpsd_config(baud_rate: int) -> None: - """On NixOS, GPSD configuration is declarative. This is a no-op.""" - logger.info( - "SYS: GPSD config is managed declaratively on NixOS (baud=%d)", baud_rate - ) diff --git a/python/PiFinder/ui/callbacks.py b/python/PiFinder/ui/callbacks.py index 8c1840442..00eb426d5 100644 --- a/python/PiFinder/ui/callbacks.py +++ b/python/PiFinder/ui/callbacks.py @@ -201,21 +201,7 @@ def switch_cam_imx462(ui_module: UIModule) -> None: def get_camera_type(ui_module: UIModule) -> list[str]: - cam_id = "000" - - # read config.txt into a list - with open("/boot/config.txt", "r") as boot_in: - boot_lines = list(boot_in) - - # Look for the line without a comment... - for line in boot_lines: - if line.startswith("dtoverlay=imx"): - cam_id = line[10:16] - # imx462 uses imx290 driver - if cam_id == "imx290": - cam_id = "imx462" - - return [cam_id] + return sys_utils.get_camera_type() def switch_language(ui_module: UIModule) -> None: diff --git a/python/PiFinder/utils.py b/python/PiFinder/utils.py index dcc323f9a..b95ec8662 100644 --- a/python/PiFinder/utils.py +++ b/python/PiFinder/utils.py @@ -45,11 +45,6 @@ def serialize_solution(solution: dict) -> str: def get_sys_utils(): - if Path("/etc/NIXOS").exists(): - try: - return importlib.import_module("PiFinder.sys_utils_nixos") - except ImportError: - pass try: return importlib.import_module("PiFinder.sys_utils") except Exception: From 7204b16cb319fa1e46c00066e17ffc25f758a551 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Tue, 10 Feb 2026 16:08:41 +0100 Subject: [PATCH 060/144] fix: use absolute path for sudo in sys_utils The pifinder systemd service has a restricted PATH that doesn't include sudo. Use /run/current-system/sw/bin/sudo for all calls. Co-Authored-By: Claude Opus 4.6 --- python/PiFinder/sys_utils.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/python/PiFinder/sys_utils.py b/python/PiFinder/sys_utils.py index fcc1aaf63..372855590 100644 --- a/python/PiFinder/sys_utils.py +++ b/python/PiFinder/sys_utils.py @@ -349,7 +349,7 @@ def restart_system() -> None: manager.Reboot(False) except dbus.DBusException as e: logger.error("D-Bus reboot failed, falling back to subprocess: %s", e) - _run(["sudo", "shutdown", "-r", "now"]) + _run(["/run/current-system/sw/bin/sudo", "shutdown", "-r", "now"]) def shutdown() -> None: @@ -365,7 +365,7 @@ def shutdown() -> None: manager.PowerOff(False) except dbus.DBusException as e: logger.error("D-Bus shutdown failed, falling back to subprocess: %s", e) - _run(["sudo", "shutdown", "now"]) + _run(["/run/current-system/sw/bin/sudo", "shutdown", "now"]) # --------------------------------------------------------------------------- @@ -419,10 +419,10 @@ def start_upgrade(ref: str = "release") -> bool: logger.error("Failed to write upgrade ref file: %s", e) return False - _run(["sudo", "systemctl", "reset-failed", "pifinder-upgrade.service"]) + _run(["/run/current-system/sw/bin/sudo", "systemctl", "reset-failed", "pifinder-upgrade.service"]) result = _run( [ - "sudo", + "/run/current-system/sw/bin/sudo", "systemctl", "start", "--no-block", @@ -491,7 +491,7 @@ def change_password(username: str, current_password: str, new_password: str) -> if not verify_password(username, current_password): return False result = subprocess.run( - ["sudo", "chpasswd"], + ["/run/current-system/sw/bin/sudo", "chpasswd"], input=f"{username}:{new_password}\n", capture_output=True, text=True, @@ -512,7 +512,7 @@ def switch_camera(cam_type: str) -> None: Requires reboot (dtoverlay change). """ logger.info("SYS: Switching camera to %s via specialisation", cam_type) - result = _run(["sudo", "pifinder-switch-camera", cam_type]) + result = _run(["/run/current-system/sw/bin/sudo", "pifinder-switch-camera", cam_type]) if result.returncode != 0: logger.error("SYS: Camera switch failed: %s", result.stderr) From e8c6f2e74cb2daf9d9759508a524050ec6e519aa Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Tue, 10 Feb 2026 16:09:31 +0100 Subject: [PATCH 061/144] fix: use absolute paths for systemctl/journalctl in sys_utils These commands are called outside of sudo (which has secure_path), so they need full paths in the restricted pifinder service PATH. Co-Authored-By: Claude Opus 4.6 --- python/PiFinder/sys_utils.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/python/PiFinder/sys_utils.py b/python/PiFinder/sys_utils.py index 372855590..714844ca2 100644 --- a/python/PiFinder/sys_utils.py +++ b/python/PiFinder/sys_utils.py @@ -419,11 +419,11 @@ def start_upgrade(ref: str = "release") -> bool: logger.error("Failed to write upgrade ref file: %s", e) return False - _run(["/run/current-system/sw/bin/sudo", "systemctl", "reset-failed", "pifinder-upgrade.service"]) + _run(["/run/current-system/sw/bin/sudo", "/run/current-system/sw/bin/systemctl", "reset-failed", "pifinder-upgrade.service"]) result = _run( [ "/run/current-system/sw/bin/sudo", - "systemctl", + "/run/current-system/sw/bin/systemctl", "start", "--no-block", "pifinder-upgrade.service", @@ -434,7 +434,7 @@ def start_upgrade(ref: str = "release") -> bool: def get_upgrade_state() -> str: """Poll upgrade service state.""" - result = _run(["systemctl", "is-active", "pifinder-upgrade.service"]) + result = _run(["/run/current-system/sw/bin/systemctl", "is-active", "pifinder-upgrade.service"]) status = result.stdout.strip() if status == "activating": return UPGRADE_STATE_RUNNING @@ -449,7 +449,7 @@ def get_upgrade_log_tail(lines: int = 3) -> str: """Last N lines from upgrade journal for UI display.""" result = _run( [ - "journalctl", + "/run/current-system/sw/bin/journalctl", "-u", "pifinder-upgrade.service", "-n", From 6b69b89ce01f00790d1a5bb70dd88117d65b3b52 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Tue, 10 Feb 2026 18:58:45 +0100 Subject: [PATCH 062/144] =?UTF-8?q?feat:=20upgrade=20nixpkgs=2024.11=20?= =?UTF-8?q?=E2=86=92=2025.11=20(Python=203.13)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Bump nixpkgs input to nixos-25.11 - Update Python 3.12 → 3.13 across all references - Switch simplejpeg wheel to cp313 - Add explicit pyproject/build-system to 13 packages (required by 25.11) - Add dontCheckRuntimeDeps for packages with env-level deps - Rename hardware.pulseaudio → services.pulseaudio Co-Authored-By: Claude Opus 4.6 --- flake.lock | 14 +++++++------- flake.nix | 19 ++++++++++++++----- nixos/python-env.nix | 43 ++++++++++++++++++++++++++++++++++++------- nixos/services.nix | 2 +- 4 files changed, 58 insertions(+), 20 deletions(-) diff --git a/flake.lock b/flake.lock index 2608c73c0..4d2ec76d4 100644 --- a/flake.lock +++ b/flake.lock @@ -2,11 +2,11 @@ "nodes": { "nixos-hardware": { "locked": { - "lastModified": 1769302137, - "narHash": "sha256-QEDtctEkOsbx8nlFh4yqPEOtr4tif6KTqWwJ37IM2ds=", + "lastModified": 1770631810, + "narHash": "sha256-b7iK/x+zOXbjhRqa+XBlYla4zFvPZyU5Ln2HJkiSnzc=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "a351494b0e35fd7c0b7a1aae82f0afddf4907aa8", + "rev": "2889685785848de940375bf7fea5e7c5a3c8d502", "type": "github" }, "original": { @@ -17,16 +17,16 @@ }, "nixpkgs": { "locked": { - "lastModified": 1751274312, - "narHash": "sha256-/bVBlRpECLVzjV19t5KMdMFWSwKLtb5RyXdjz3LJT+g=", + "lastModified": 1770617025, + "narHash": "sha256-1jZvgZoAagZZB6NwGRv2T2ezPy+X6EFDsJm+YSlsvEs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "50ab793786d9de88ee30ec4e4c24fb4236fc2674", + "rev": "2db38e08fdadcc0ce3232f7279bab59a15b94482", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-24.11", + "ref": "nixos-25.11", "repo": "nixpkgs", "type": "github" } diff --git a/flake.nix b/flake.nix index 26a884697..161abf2fd 100644 --- a/flake.nix +++ b/flake.nix @@ -1,6 +1,6 @@ { inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11"; + nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11"; nixos-hardware.url = "github:NixOS/nixos-hardware"; }; @@ -22,7 +22,7 @@ documentation.nixos.enable = false; xdg.portal.enable = false; services.pipewire.enable = false; - hardware.pulseaudio.enable = false; + services.pulseaudio.enable = false; boot.initrd.availableKernelModules = lib.mkForce [ "mmc_block" "usbhid" "usb_storage" "vc4" ]; }) ]; @@ -40,6 +40,7 @@ }) ({ lib, ... }: { boot.supportedFilesystems = lib.mkForce [ "vfat" "ext4" ]; + boot.loader.timeout = 0; }) ] ++ nixpkgs.lib.optionals includeSDImage [ "${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix" @@ -112,7 +113,7 @@ system = "aarch64-linux"; modules = commonModules ++ [ { pifinder.devMode = true; } - { pifinder.cameraType = "imx477"; } # HQ camera for netboot dev + { pifinder.cameraType = nixpkgs.lib.mkDefault "imx477"; } # HQ camera for netboot dev # Camera specialisations for netboot (base is imx477) ({ ... }: { specialisation = { @@ -212,9 +213,16 @@ }) ]; }; - # Custom u-boot with network boot prioritized for netboot - # Uses direct commands since bootcmd_* env vars may not be defined + # Custom u-boot variants pkgsAarch64 = import nixpkgs { system = "aarch64-linux"; }; + # SD boot: skip PCI/USB/net probe, go straight to mmc extlinux + ubootSD = pkgsAarch64.ubootRaspberryPi4_64bit.override { + extraConfig = '' + CONFIG_BOOTDELAY=0 + CONFIG_BOOTCOMMAND="sysboot mmc 0:1 any $${scriptaddr} /extlinux/extlinux.conf" + ''; + }; + # Netboot: PCI + DHCP + PXE ubootNetboot = pkgsAarch64.ubootRaspberryPi4_64bit.override { extraConfig = '' CONFIG_BOOTCOMMAND="pci enum; dhcp; pxe get; pxe boot" @@ -286,6 +294,7 @@ bootstrap = (mkBootstrapSystem { includeSDImage = true; }).config.system.build.sdImage; }; packages.aarch64-linux = { + uboot-sd = ubootSD; uboot-netboot = ubootNetboot; }; }; diff --git a/nixos/python-env.nix b/nixos/python-env.nix index 189ce1498..575e8a99c 100644 --- a/nixos/python-env.nix +++ b/nixos/python-env.nix @@ -1,6 +1,6 @@ { config, lib, pkgs, ... }: let - python = pkgs.python312; + python = pkgs.python313; pifinderPython = python.override { packageOverrides = self: super: { @@ -9,6 +9,8 @@ let sh = self.buildPythonPackage rec { pname = "sh"; version = "1.14.3"; + pyproject = true; + build-system = [ self.setuptools ]; src = self.fetchPypi { inherit pname version; hash = "sha256-5ARbbHMtnOddVxx59awiNO3Zrk9fqdWbCXBQgr3KGMc="; @@ -19,6 +21,8 @@ let gpsdclient = self.buildPythonPackage rec { pname = "gpsdclient"; version = "1.3.2"; + pyproject = true; + build-system = [ self.poetry-core ]; src = self.fetchPypi { inherit pname version; hash = "sha256-cKSWVQqXR9/14OULPJWm4dyrnYQoYJl+lRIHZ+IGCno="; @@ -29,6 +33,8 @@ let rpi-hardware-pwm = self.buildPythonPackage rec { pname = "rpi-hardware-pwm"; version = "0.3.0"; + pyproject = true; + build-system = [ self.setuptools ]; src = pkgs.fetchurl { url = "https://files.pythonhosted.org/packages/be/0c/4308050d8b6bbe24e8e54b38e48b287b1e356efce33cd485ee4387fc92a9/rpi_hardware_pwm-0.3.0.tar.gz"; hash = "sha256-HshwYzp5XpijEGhWXwZ/gvZKjhZ4BpvPjdcC+i+zGyY="; @@ -62,6 +68,8 @@ let RPi-GPIO = self.buildPythonPackage rec { pname = "RPi.GPIO"; version = "0.7.1"; + pyproject = true; + build-system = [ self.setuptools ]; src = self.fetchPypi { inherit pname version; hash = "sha256-zWHEsDw3tiu6SlrP6phidJwzxhjgKV5+kKpHE/s3O3A="; @@ -128,6 +136,7 @@ let ]; pythonRelaxDeps = true; pythonRemoveDeps = [ "binho-host-adapter" "pyftdi" "sysv-ipc" ]; + dontCheckRuntimeDeps = true; doCheck = false; }; @@ -187,6 +196,8 @@ let luma-core = self.buildPythonPackage rec { pname = "luma.core"; version = "2.4.2"; + pyproject = true; + build-system = [ self.setuptools ]; src = self.fetchPypi { inherit pname version; hash = "sha256-ljwmQWTUN09UnVfbCVmeDKRYzqG9BeFpOYl2Gb5Obb0="; @@ -198,12 +209,15 @@ let self.cbor2 self.deprecated ]; + dontCheckRuntimeDeps = true; doCheck = false; }; luma-oled = self.buildPythonPackage rec { pname = "luma.oled"; version = "3.13.0"; + pyproject = true; + build-system = [ self.setuptools ]; src = self.fetchPypi { inherit pname version; hash = "sha256-fioNakyWjGSYAlXWgewnkU2avVpmqQGbKJvzrQUMISU="; @@ -215,6 +229,8 @@ let luma-lcd = self.buildPythonPackage rec { pname = "luma.lcd"; version = "2.11.0"; + pyproject = true; + build-system = [ self.setuptools ]; src = self.fetchPypi { inherit pname version; hash = "sha256-1GBE6W/TmUPr5Iph51M3FXG+FJekvqlrcuOpxzL77uQ="; @@ -228,6 +244,8 @@ let pydeepskylog = self.buildPythonPackage rec { pname = "pydeepskylog"; version = "1.6"; + pyproject = true; + build-system = [ self.setuptools ]; src = self.fetchPypi { inherit pname version; hash = "sha256-3erm0ASBfPtQ1cngzsqkZUrnKoLNIBu8U1D6iA4ePmE="; @@ -261,6 +279,8 @@ let pidng = self.buildPythonPackage rec { pname = "pidng"; version = "4.0.9"; + pyproject = true; + build-system = [ self.setuptools ]; src = pkgs.fetchurl { url = "https://files.pythonhosted.org/packages/source/p/pidng/pidng-4.0.9.tar.gz"; hash = "sha256-Vg6wCAhvinFf2eGrmYgXp9TIUAp/Fhuc5q9asnUB+Cw="; @@ -277,8 +297,8 @@ let version = "1.9.0"; format = "wheel"; src = pkgs.fetchurl { - url = "https://files.pythonhosted.org/packages/75/c1/0cbf167e3efa32adfbb0674a3504eb118cc5bdc372a44ee937c30324188e/simplejpeg-1.9.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl"; - hash = "sha256-CKszfKOybXVi9a1oarjzlm+yBvztYH0kjmk8vFf8U7M="; + url = "https://files.pythonhosted.org/packages/88/8b/d8ca384f1362371d61690d7460d3ae4cec4a5a25d9eb06cd15623de3725a/simplejpeg-1.9.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl"; + hash = "sha256-oMN1Ew9zuwgimj3tOS2E7i2Raz6H5+xdKsTke3FENGo="; }; propagatedBuildInputs = [ self.numpy ]; doCheck = false; @@ -289,6 +309,8 @@ let python-prctl = self.buildPythonPackage rec { pname = "python-prctl"; version = "1.8.1"; + pyproject = true; + build-system = [ self.setuptools ]; src = pkgs.fetchurl { url = "https://files.pythonhosted.org/packages/source/p/python-prctl/python-prctl-1.8.1.tar.gz"; hash = "sha256-tMqaJafU8azk//0fOi5k71II/gX5KfPt1eJwgcp+Z84="; @@ -302,6 +324,8 @@ let python-libinput = self.buildPythonPackage rec { pname = "python-libinput"; version = "0.3.0a0"; + pyproject = true; + build-system = [ self.setuptools ]; src = self.fetchPypi { inherit pname version; hash = "sha256-fj08l4aqp5vy8UYBZIWBtGJLaS0/DZGZkC0NCDQhkwI="; @@ -328,6 +352,8 @@ def load_source(name, path): v4l2-python3 = self.buildPythonPackage rec { pname = "v4l2-python3"; version = "0.3.4"; + pyproject = true; + build-system = [ self.setuptools ]; src = self.fetchPypi { inherit pname version; hash = "sha256-YliResgEmsaYcaXg39bYnVXJ5/gOgSwe+LqIeb2hxYc="; @@ -353,6 +379,8 @@ def load_source(name, path): picamera2 = self.buildPythonPackage rec { pname = "picamera2"; version = "0.3.22"; + pyproject = true; + build-system = [ self.setuptools ]; src = self.fetchPypi { inherit pname version; hash = "sha256-iShpgUNCu8uHS7jeehtgWJhEm/UhJjn0bw2qpkbWgy0="; @@ -381,8 +409,9 @@ except ImportError: ]; # libcamera Python bindings must be on PYTHONPATH postFixup = '' - wrapPythonProgramsIn "$out" "$out ${pkgs.libcamera}/lib/python3.12/site-packages" + wrapPythonProgramsIn "$out" "$out ${pkgs.libcamera}/lib/python3.13/site-packages" ''; + dontCheckRuntimeDeps = true; doCheck = false; }; }; @@ -442,8 +471,8 @@ in { "-Dpycamera=enabled" ]; buildInputs = (old.buildInputs or []) ++ [ - final.python312 - final.python312.pkgs.pybind11 + final.python313 + final.python313.pkgs.pybind11 ]; }); })]; @@ -463,7 +492,7 @@ in { ]; # Add libcamera Python bindings to PYTHONPATH (for picamera2) - environment.sessionVariables.PYTHONPATH = "${pkgs.libcamera}/lib/python3.12/site-packages"; + environment.sessionVariables.PYTHONPATH = "${pkgs.libcamera}/lib/python3.13/site-packages"; # Export the Python environment for use by services.nix _module.args.pifinderPythonEnv = env; diff --git a/nixos/services.nix b/nixos/services.nix index 87c46e42a..ec517c99d 100644 --- a/nixos/services.nix +++ b/nixos/services.nix @@ -225,7 +225,7 @@ in { pkgs.gobject-introspection ]; # libcamera Python bindings for picamera2 - PYTHONPATH = "${pkgs.libcamera}/lib/python3.12/site-packages"; + PYTHONPATH = "${pkgs.libcamera}/lib/python3.13/site-packages"; # libcamera IPA modules path LIBCAMERA_IPA_MODULE_PATH = "${pkgs.libcamera}/lib/libcamera"; }; From 6a818550c77de2548d41b42d424dbbb5607189ae Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Wed, 11 Feb 2026 08:33:47 +0100 Subject: [PATCH 063/144] fix: u-boot boot chain, RPi.GPIO aarch64, I2C, sudo, /boot mount - u-boot SD image: use custom ubootSD with CONFIG_CMD_SYSBOOT, hardcoded load address, correct partition (0:2) - RPi.GPIO: patch cpuinfo.c for aarch64 where /proc/cpuinfo lacks Hardware line and u-boot replaces firmware DTB - I2C1: add overlay to fdtoverlay chain (nixos-hardware was bypassed) - sudo: substituteInPlace pifinder-src to use /run/wrappers/bin/sudo - polkit: add reboot/shutdown D-Bus rules for pifinder user - /boot: mount firmware at /boot/firmware so extlinux.conf works Co-Authored-By: Claude Opus 4.6 --- flake.nix | 16 +++- nixos/hardware.nix | 141 ++++++++++++++++++++---------------- nixos/pkgs/pifinder-src.nix | 5 ++ nixos/python-env.nix | 30 ++++++++ nixos/services.nix | 9 +++ 5 files changed, 137 insertions(+), 64 deletions(-) diff --git a/flake.nix b/flake.nix index 161abf2fd..50142a7cc 100644 --- a/flake.nix +++ b/flake.nix @@ -46,6 +46,14 @@ "${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix" ({ config, pkgs, lib, ... }: let + ubootSD = pkgs.ubootRaspberryPi4_64bit.override { + extraConfig = '' + CONFIG_CMD_PXE=y + CONFIG_CMD_SYSBOOT=y + CONFIG_BOOTDELAY=0 + CONFIG_BOOTCOMMAND="sysboot mmc 0:2 any 0x02400000 /boot/extlinux/extlinux.conf" + ''; + }; configTxt = pkgs.writeText "config.txt" '' [pi3] kernel=u-boot-rpi3.bin @@ -85,7 +93,7 @@ cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2710-rpi-zero-2-w.dtb firmware/ # Pi4 files - cp ${pkgs.ubootRaspberryPi4_64bit}/u-boot.bin firmware/u-boot-rpi4.bin + cp ${ubootSD}/u-boot.bin firmware/u-boot-rpi4.bin cp ${pkgs.raspberrypi-armstubs}/armstub8-gic.bin firmware/armstub8-gic.bin cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2711-rpi-4-b.dtb firmware/ cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2711-rpi-400.dtb firmware/ @@ -100,7 +108,7 @@ device = "/dev/disk/by-label/NIXOS_SD"; fsType = "ext4"; }; - fileSystems."/boot" = { + fileSystems."/boot/firmware" = { device = "/dev/disk/by-label/FIRMWARE"; fsType = "vfat"; }; @@ -218,8 +226,10 @@ # SD boot: skip PCI/USB/net probe, go straight to mmc extlinux ubootSD = pkgsAarch64.ubootRaspberryPi4_64bit.override { extraConfig = '' + CONFIG_CMD_PXE=y + CONFIG_CMD_SYSBOOT=y CONFIG_BOOTDELAY=0 - CONFIG_BOOTCOMMAND="sysboot mmc 0:1 any $${scriptaddr} /extlinux/extlinux.conf" + CONFIG_BOOTCOMMAND="sysboot mmc 0:2 any 0x02400000 /boot/extlinux/extlinux.conf" ''; }; # Netboot: PCI + DHCP + PXE diff --git a/nixos/hardware.nix b/nixos/hardware.nix index 277251637..128dac681 100644 --- a/nixos/hardware.nix +++ b/nixos/hardware.nix @@ -8,6 +8,61 @@ let imx462 = "imx290"; # imx462 uses imx290 driver imx477 = "imx477"; }.${cfg.cameraType}; + + # Compile DTS text to DTBO + compileOverlay = name: dtsText: pkgs.deviceTree.compileDTS { + name = "${name}-dtbo"; + dtsFile = pkgs.writeText "${name}.dts" dtsText; + }; + + # SPI0 — no nixos-hardware option, use custom overlay + spi0Dtbo = compileOverlay "spi0" '' + /dts-v1/; + /plugin/; + / { compatible = "brcm,bcm2711"; }; + &spi0 { status = "okay"; }; + ''; + + # UART3 for GPS on /dev/ttyAMA1 + uart3Dtbo = compileOverlay "uart3" '' + /dts-v1/; + /plugin/; + / { compatible = "brcm,bcm2711"; }; + &uart3 { status = "okay"; }; + ''; + + # I2C1 (ARM bus) — nixos-hardware overlay is bypassed by our mkForce DTB package + i2c1Dtbo = compileOverlay "i2c1" '' + /dts-v1/; + /plugin/; + / { compatible = "brcm,bcm2711"; }; + &i2c1 { + status = "okay"; + clock-frequency = <${toString cfg.i2cFrequency}>; + }; + ''; + + # PWM on GPIO 13 (PWM channel 1) for keypad backlight + # GPIO 13 = PWM0_1 when ALT0 (function 4) + pwmDtbo = compileOverlay "pwm" '' + /dts-v1/; + /plugin/; + / { compatible = "brcm,bcm2711"; }; + &gpio { + pwm_pin13: pwm_pin13 { + brcm,pins = <13>; + brcm,function = <4>; /* ALT0 = PWM0_1 */ + }; + }; + &pwm { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&pwm_pin13>; + }; + ''; + + # Camera overlay from kernel's DTB overlays directory + cameraDtbo = "${config.boot.kernelPackages.kernel}/dtbs/overlays/${cameraDriver}.dtbo"; in { options.pifinder = { cameraType = lib.mkOption { @@ -15,74 +70,38 @@ in { default = "imx462"; description = "Camera sensor type for PiFinder"; }; + i2cFrequency = lib.mkOption { + type = lib.types.int; + default = 10000; + description = "I2C1 bus clock frequency in Hz (10 kHz for BNO055 IMU)"; + }; }; config = { # Only include RPi 4B device tree (not CM4 variants) hardware.deviceTree.filter = "*rpi-4-b.dtb"; + # Explicit DTB name so extlinux uses FDT instead of FDTDIR + # (DTBs are in broadcom/ subdirectory, FDTDIR doesn't descend into it) + hardware.deviceTree.name = "broadcom/bcm2711-rpi-4-b.dtb"; - # I2C1 (ARM bus) at 10 kHz for BNO055 IMU - hardware.raspberry-pi."4".i2c1 = { - enable = true; - frequency = 10000; - }; - - hardware.deviceTree.overlays = let - # SPI0 — no nixos-hardware option, use custom overlay - spi0Overlay = { - name = "spi0-overlay"; - dtsText = '' - /dts-v1/; - /plugin/; - / { compatible = "brcm,bcm2711"; }; - &spi0 { status = "okay"; }; - ''; - }; - - # UART3 for GPS on /dev/ttyAMA1 - uart3Overlay = { - name = "uart3-overlay"; - dtsText = '' - /dts-v1/; - /plugin/; - / { compatible = "brcm,bcm2711"; }; - &uart3 { status = "okay"; }; - ''; - }; + # I2C enabled (loads i2c-dev module, creates i2c group) + hardware.i2c.enable = true; - # PWM on GPIO 13 (PWM channel 1) for keypad backlight - # GPIO 13 = PWM0_1 when ALT0 (function 4) - pwmOverlay = { - name = "pwm-pin13-overlay"; - dtsText = '' - /dts-v1/; - /plugin/; - / { compatible = "brcm,bcm2711"; }; - &gpio { - pwm_pin13: pwm_pin13 { - brcm,pins = <13>; - brcm,function = <4>; /* ALT0 = PWM0_1 */ - }; - }; - &pwm { - status = "okay"; - pinctrl-names = "default"; - pinctrl-0 = <&pwm_pin13>; - }; - ''; - }; - - # Camera dtoverlay — baked into device tree at build time - cameraOverlay = { - name = "${cameraDriver}-camera"; - dtboFile = "${pkgs.raspberrypifw}/share/raspberrypi/boot/overlays/${cameraDriver}.dtbo"; - }; - in [ - spi0Overlay - uart3Overlay - pwmOverlay - cameraOverlay - ]; + # Apply all DT overlays via fdtoverlay, bypassing NixOS apply_overlays.py + # which rejects RPi camera overlays due to compatible string mismatch + # (overlays declare "brcm,bcm2835" but kernel DTBs use "brcm,bcm2711") + hardware.deviceTree.package = let + kernelDtbs = config.hardware.deviceTree.dtbSource; + in lib.mkForce (pkgs.runCommand "device-tree-with-overlays" { + nativeBuildInputs = [ pkgs.dtc ]; + } '' + mkdir -p $out/broadcom + for dtb in ${kernelDtbs}/broadcom/*rpi-4-b.dtb; do + fdtoverlay -i "$dtb" \ + -o "$out/broadcom/$(basename $dtb)" \ + ${i2c1Dtbo} ${spi0Dtbo} ${uart3Dtbo} ${pwmDtbo} ${cameraDtbo} + done + ''); # udev rules for hardware access without root services.udev.extraRules = '' diff --git a/nixos/pkgs/pifinder-src.nix b/nixos/pkgs/pifinder-src.nix index fd5bb6f1e..73f59eb0c 100644 --- a/nixos/pkgs/pifinder-src.nix +++ b/nixos/pkgs/pifinder-src.nix @@ -39,5 +39,10 @@ pkgs.stdenv.mkDerivation { # Hipparcos catalog is gitignored (51MB), fetch and include for starfield plotting cp ${hip_main} $out/astro_data/hip_main.dat + + # NixOS: sudo setuid wrapper is at /run/wrappers/bin/sudo, not sw/bin/sudo + chmod -R u+w $out/python + substituteInPlace $out/python/PiFinder/sys_utils.py \ + --replace-fail '/run/current-system/sw/bin/sudo' '/run/wrappers/bin/sudo' ''; } diff --git a/nixos/python-env.nix b/nixos/python-env.nix index 575e8a99c..33e472e30 100644 --- a/nixos/python-env.nix +++ b/nixos/python-env.nix @@ -74,6 +74,36 @@ let inherit pname version; hash = "sha256-zWHEsDw3tiu6SlrP6phidJwzxhjgKV5+kKpHE/s3O3A="; }; + # aarch64 + u-boot: /proc/cpuinfo lacks Hardware line, and u-boot + # replaces firmware DTB so /system/linux,revision is missing. + # Add fallback: check /proc/device-tree/compatible for "raspberrypi". + postPatch = '' + python3 -c ' + import sys + with open("source/cpuinfo.c") as f: src = f.read() + old = " if (!found)\n return -1;" + new = ( + " if (!found) {\n" + " FILE *fp2 = fopen(\"/proc/device-tree/compatible\", \"r\");\n" + " if (fp2) {\n" + " char compat[256] = {0};\n" + " fread(compat, 1, sizeof(compat)-1, fp2);\n" + " fclose(fp2);\n" + " if (strstr(compat, \"raspberrypi\")) {\n" + " found = 1;\n" + " strcpy(revision, \"c03115\");\n" + " }\n" + " }\n" + " }\n" + "\n" + " if (!found)\n" + " return -1;" + ) + assert old in src, "pattern not found in cpuinfo.c" + src = src.replace(old, new, 1) + with open("source/cpuinfo.c", "w") as f: f.write(src) + ' + ''; doCheck = false; }; diff --git a/nixos/services.nix b/nixos/services.nix index ec517c99d..a082ea624 100644 --- a/nixos/services.nix +++ b/nixos/services.nix @@ -39,6 +39,8 @@ in { # --------------------------------------------------------------------------- environment.systemPackages = [ pifinder-switch-camera ]; + + # --------------------------------------------------------------------------- # Cachix binary substituter — Pi downloads pre-built paths, never compiles # --------------------------------------------------------------------------- @@ -157,6 +159,13 @@ in { if (action.id.indexOf("org.freedesktop.NetworkManager") == 0) { return polkit.Result.YES; } + // Allow reboot/shutdown via D-Bus (logind) + if (action.id == "org.freedesktop.login1.reboot" || + action.id == "org.freedesktop.login1.reboot-multiple-sessions" || + action.id == "org.freedesktop.login1.power-off" || + action.id == "org.freedesktop.login1.power-off-multiple-sessions") { + return polkit.Result.YES; + } } }); ''; From 2007bda801a77d4a33a5fbd5c99e39f5f884ddb9 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Wed, 11 Feb 2026 09:37:19 +0100 Subject: [PATCH 064/144] perf: boot time optimizations and u-boot PCI/USB stripping MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - u-boot: disable PCI/USB/NET probing (CONFIG_PREBOOT="", CONFIG_PCI=n, CONFIG_USB=n, etc.) — eliminates ~3-4s of unnecessary hardware scanning - boot-splash: move earlier with DefaultDependencies=false, poll for SPI device instead of relying on systemd restart - Disable NetworkManager-wait-online (7.1s savings, NM still works async) - pwm-permissions: no longer blocks pifinder startup (runs in parallel) - pifinder-src: pre-compile .pyc bytecode at build time Net result: splash ~7s (was 21s), menu ~45s (was 65s). Co-Authored-By: Claude Opus 4.6 --- flake.nix | 14 ++++++++++++++ nixos/pkgs/pifinder-src.nix | 6 +++++- nixos/services.nix | 16 ++++++++++++++-- 3 files changed, 33 insertions(+), 3 deletions(-) diff --git a/flake.nix b/flake.nix index 50142a7cc..635b4a0cf 100644 --- a/flake.nix +++ b/flake.nix @@ -51,7 +51,14 @@ CONFIG_CMD_PXE=y CONFIG_CMD_SYSBOOT=y CONFIG_BOOTDELAY=0 + CONFIG_PREBOOT="" CONFIG_BOOTCOMMAND="sysboot mmc 0:2 any 0x02400000 /boot/extlinux/extlinux.conf" + CONFIG_PCI=n + CONFIG_USB=n + CONFIG_CMD_USB=n + CONFIG_CMD_PCI=n + CONFIG_USB_KEYBOARD=n + CONFIG_BCMGENET=n ''; }; configTxt = pkgs.writeText "config.txt" '' @@ -229,7 +236,14 @@ CONFIG_CMD_PXE=y CONFIG_CMD_SYSBOOT=y CONFIG_BOOTDELAY=0 + CONFIG_PREBOOT="" CONFIG_BOOTCOMMAND="sysboot mmc 0:2 any 0x02400000 /boot/extlinux/extlinux.conf" + CONFIG_PCI=n + CONFIG_USB=n + CONFIG_CMD_USB=n + CONFIG_CMD_PCI=n + CONFIG_USB_KEYBOARD=n + CONFIG_BCMGENET=n ''; }; # Netboot: PCI + DHCP + PXE diff --git a/nixos/pkgs/pifinder-src.nix b/nixos/pkgs/pifinder-src.nix index 73f59eb0c..34aca3898 100644 --- a/nixos/pkgs/pifinder-src.nix +++ b/nixos/pkgs/pifinder-src.nix @@ -1,4 +1,4 @@ -{ pkgs }: +{ pkgs, python ? pkgs.python313 }: let tetra3-src = pkgs.fetchFromGitHub { owner = "smroid"; @@ -18,6 +18,7 @@ pkgs.stdenv.mkDerivation { version = "0.0.1"; src = ../..; + nativeBuildInputs = [ python ]; phases = [ "installPhase" ]; installPhase = '' @@ -44,5 +45,8 @@ pkgs.stdenv.mkDerivation { chmod -R u+w $out/python substituteInPlace $out/python/PiFinder/sys_utils.py \ --replace-fail '/run/current-system/sw/bin/sudo' '/run/wrappers/bin/sudo' + + # Pre-compile .pyc bytecode so Python skips compilation at runtime + python3 -m compileall -q $out/python ''; } diff --git a/nixos/services.nix b/nixos/services.nix index a082ea624..0c4f93d72 100644 --- a/nixos/services.nix +++ b/nixos/services.nix @@ -102,7 +102,6 @@ in { # --------------------------------------------------------------------------- systemd.services.pwm-permissions = { description = "Set PWM sysfs permissions for pifinder"; - before = [ "pifinder.service" ]; wantedBy = [ "multi-user.target" ]; serviceConfig = { Type = "oneshot"; @@ -210,9 +209,19 @@ in { systemd.services.boot-splash = { description = "Early boot splash screen"; wantedBy = [ "sysinit.target" ]; + after = [ "systemd-modules-load.service" ]; + wants = [ "systemd-modules-load.service" ]; + unitConfig.DefaultDependencies = false; serviceConfig = { Type = "oneshot"; - ExecStart = "${boot-splash}/bin/boot-splash --static"; + ExecStart = pkgs.writeShellScript "boot-splash-wait" '' + for i in $(seq 1 40); do + [ -e /dev/spidev0.0 ] && exec ${boot-splash}/bin/boot-splash --static + sleep 0.25 + done + echo "SPI device never appeared" >&2 + exit 1 + ''; }; }; @@ -433,6 +442,9 @@ in { }; }; + # Don't block boot waiting for network — NM still works, just async + systemd.services.NetworkManager-wait-online.enable = false; + services.samba = { enable = true; settings = { From 4e67699cb8913da708830a83139bf53fa661d324 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Wed, 11 Feb 2026 09:43:17 +0100 Subject: [PATCH 065/144] fix: bootstrap migration progress and nix fetch issues - Add bashInteractive to systemPackages (mkForce strips default bash) - Add download-buffer-size 512MB for large PiFinder repo tarball - Fix migration_progress OLED binary args to match expected format ( ) - Fix nixos-rebuild progress: count copying/building lines instead of parsing non-existent (N/M) format Co-Authored-By: Claude Opus 4.6 --- nixos/bootstrap.nix | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/nixos/bootstrap.nix b/nixos/bootstrap.nix index 6022bf29d..bb8ab874a 100644 --- a/nixos/bootstrap.nix +++ b/nixos/bootstrap.nix @@ -23,6 +23,11 @@ let # Write state file mkdir -p "${stateDir}" + STAGE_FILE="${stateDir}/stage_num" + STAGE_NUM=$(cat "$STAGE_FILE" 2>/dev/null || echo 0) + STAGE_NUM=$((STAGE_NUM + 1)) + echo "$STAGE_NUM" > "$STAGE_FILE" + cat > "${stateDir}/state" </dev/null || true + /bin/migration_progress "$PCT" "$STAGE_NUM" 10 "$STATUS" 2>/dev/null || true fi echo "[$PCT%] $STATUS $DETAIL" @@ -120,6 +125,7 @@ in { # --------------------------------------------------------------------------- nix.settings = { experimental-features = [ "nix-command" "flakes" ]; + download-buffer-size = 536870912; # 512MB - PiFinder repo tarball is large substituters = [ "https://cache.nixos.org" "https://pifinder.cachix.org" @@ -137,6 +143,7 @@ in { # mkForce overrides profiles/base.nix which adds w3m (150MB with perl) environment.systemPackages = lib.mkForce (with pkgs; [ progressScript + bashInteractive ]); # --------------------------------------------------------------------------- @@ -275,23 +282,24 @@ in { progress 77 "Fetching tools" # Parse nix build output for progress + # Expected ~600 paths total; count copying/building lines for progress + COPY_COUNT=0 + TOTAL_EST=600 if nix shell nixpkgs#nixos-rebuild -c nixos-rebuild switch --flake "$FLAKE" --refresh 2>&1 | \ while IFS= read -r line; do echo "$line" # Pass through for logging - # Parse copying progress - if echo "$line" | grep -qE 'copying path.*\([0-9]+/[0-9]+\)'; then - nums=$(echo "$line" | grep -oE '\([0-9]+/[0-9]+\)' | tr -d '()') - done=$(echo "$nums" | cut -d/ -f1) - total=$(echo "$nums" | cut -d/ -f2) - if [ "$total" -gt 0 ]; then - pct=$((done * 100 / total)) - # Map 0-100% to 78-95% - mapped=$((78 + pct * 17 / 100)) - progress "$mapped" "Downloading" "$done/$total paths" - fi + if echo "$line" | grep -qE '^copying path |^building '; then + COPY_COUNT=$((COPY_COUNT + 1)) + pct=$((COPY_COUNT * 100 / TOTAL_EST)) + [ "$pct" -gt 100 ] && pct=100 + # Map 0-100% to 78-95% + mapped=$((78 + pct * 17 / 100)) + progress "$mapped" "Installing" "$COPY_COUNT paths" elif echo "$line" | grep -qi 'activating'; then progress 95 "Activating system" + elif echo "$line" | grep -qi 'building the system configuration'; then + progress 78 "Building config" fi done; then From be3a4cc60644d646d1b9e9c473ebe3eee46d2b93 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Wed, 11 Feb 2026 19:56:04 +0100 Subject: [PATCH 066/144] feat: unified nix dev shell, pygame keyboard, software update UI - Unified Python dev shell: extract python-packages.nix as single source of truth for both Pi production and x86 dev environments, add flake devShell, replace old shell.nix + pip venv with `use flake` - Pygame keyboard capture: monkey-patch luma's _abort to intercept pygame KEYDOWN events, fixing arrow keys on Wayland where PyHotKey/pynput cannot access keyboard - Cedar detect: build from source instead of shipping prebuilt binaries, add Cargo.lock for reproducible builds - Software update UI: channel-based browsing (stable/beta/unstable), scrolling text for long labels, 7x square secret to unlock unstable channel, always show channels even when empty - Fix pre-commit hooks: replace nox/virtualenv with direct devShell tool invocation, fix mypy config for nix environment - Fix numpy.math removal in tetra3 (Python 3.13 compat) - Various Python 3.13 compatibility fixes across codebase Co-Authored-By: Claude Opus 4.6 --- .envrc | 24 +- .pre-commit-config.yaml | 26 +- bin/cedar-detect-server-aarch64 | Bin 2722216 -> 0 bytes bin/cedar-detect-server-arm64 | Bin 2670760 -> 0 bytes flake.nix | 8 + nixos/pkgs/cedar-detect-Cargo.lock | 2633 ++++++++++++++++++++++++++ nixos/pkgs/cedar-detect.nix | 32 +- nixos/pkgs/python-packages.nix | 515 +++++ nixos/python-env.nix | 503 +---- nixos/services.nix | 25 +- python/PiFinder/catalogs.py | 227 ++- python/PiFinder/db/objects_db.py | 47 + python/PiFinder/displays.py | 84 +- python/PiFinder/gps_ubx_parser.py | 2 +- python/PiFinder/image_util.py | 3 +- python/PiFinder/imu_pi.py | 4 +- python/PiFinder/keyboard_none.py | 2 +- python/PiFinder/main.py | 69 +- python/PiFinder/nearby.py | 3 +- python/PiFinder/plot.py | 5 +- python/PiFinder/solver.py | 38 +- python/PiFinder/state.py | 7 +- python/PiFinder/sys_utils.py | 46 +- python/PiFinder/sys_utils_fake.py | 4 +- python/PiFinder/tetra3 | 2 +- python/PiFinder/ui/menu_structure.py | 2 - python/PiFinder/ui/software.py | 865 +++++---- python/noxfile.py | 77 +- python/pyproject.toml | 15 +- python/tests/test_software.py | 346 +++- python/tests/test_sys_utils.py | 2 +- release_manifest.json | 33 - shell.nix | 79 - 33 files changed, 4358 insertions(+), 1370 deletions(-) delete mode 100755 bin/cedar-detect-server-aarch64 delete mode 100755 bin/cedar-detect-server-arm64 create mode 100644 nixos/pkgs/cedar-detect-Cargo.lock create mode 100644 nixos/pkgs/python-packages.nix delete mode 100644 release_manifest.json delete mode 100644 shell.nix diff --git a/.envrc b/.envrc index 5cf4703c1..3550a30f2 100644 --- a/.envrc +++ b/.envrc @@ -1,23 +1 @@ -use nix - -# Auto-setup venv in python/ directory -VENV_DIR="python/.venv" - -if [[ ! -d "$VENV_DIR" ]]; then - echo "Creating Python 3.9 virtual environment..." - python3.9 -m venv "$VENV_DIR" -fi - -source "$VENV_DIR/bin/activate" - -# Install requirements if venv was just created or requirements changed -MARKER="$VENV_DIR/.requirements_installed" -REQ_HASH=$(cat python/requirements.txt python/requirements_dev.txt 2>/dev/null | sha256sum | cut -d' ' -f1) - -if [[ ! -f "$MARKER" ]] || [[ "$(cat "$MARKER" 2>/dev/null)" != "$REQ_HASH" ]]; then - echo "Installing requirements..." - pip install -q --upgrade pip - pip install -q -r python/requirements.txt - pip install -q -r python/requirements_dev.txt - echo "$REQ_HASH" > "$MARKER" -fi +use flake diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 2a538aa17..f3af93d04 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,15 +1,15 @@ -# See https://pre-commit.com for more information -# See https://pre-commit.com/hooks.html for more hooks repos: - - repo: https://github.com/saltstack/mirrors-nox - rev: 'v2022.11.21' # Use the sha / tag you want to point at + - repo: local hooks: - - id: nox - files: ^.*\.py$ - args: - - -f - - python/noxfile.py - - -s - - type_hints - - smoke_tests - - -- + - id: mypy + name: mypy type check + entry: bash -c 'cd python && mypy .' + language: system + files: ^python/.*\.py$ + pass_filenames: false + - id: smoke-tests + name: smoke tests + entry: bash -c 'cd python && pytest -m smoke' + language: system + files: ^python/.*\.py$ + pass_filenames: false diff --git a/bin/cedar-detect-server-aarch64 b/bin/cedar-detect-server-aarch64 deleted file mode 100755 index 7b44b89b78b688b70d2811515a465cbe8e57dffa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2722216 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%0A|S_^0^Z{D!-Jz3kMG1 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

oquF=*Dtcg7c8Y;sxPvfJi+=e9 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%0D6DoY0cYS0M^F*JO|Hg3D75V71 z_--%fkJ$aq7!~WU_-K0YGqm@~{b%|cVcr!xUkhE@a^no_f53D#a)4mDK%CKVB71J@$VR$^Icl-3zYTDz5$y3GPFAz8onM{z7C(g zYw?R15|AD5ICHCUN&gdnSA1Rrv@d;?ao^~IewK3|x0SwZ%OmN*OzPHmqJQD=%&R!J z6-eh859Z_Lv3Dd>Ypov- z?>_6DamLX%$YWy51=+N<+w;@go%;GEAJ}IPVpG2mzH$q2{k9Y9@q}a@@w#kaV33DW zxpw3~`QOY{EB;Sq$WE;lj!m%xoF8DHFJ9LGH1Yd^C`VdB-?SMo@1s0}ay#Y+z9&6S z`_L`<=uKTi%>K#rC)X8t_>0Dx?Z_ql@U?E{@Z0n&{9}K?PPcJXGXg>oz zQ|;GMxAt*gJ?s0F;3cu|oo_{-$|0T6d@tWBACvamJDN-J;dcd&TxP84Vcx9y*O*Tu zw=~)^n(7^#Cqey63y!2-`yJkQ;GsMT8O>j{>rHEJWR7;Q&a{@47u05EPZb>UGKnds zUK72Zz3Zdd#KL!zUqH6qF!=4`%$FJDr+h)k`?iuf zZC)2UUnQS;b?%+>Rh<9M`6|XHzbP7a%AE66yqU`Bi%$*s5dt?9ryn{Zp6d<%Bp6-W zx8Pd)8`ihA z);jjkL)i3AtS|zKs}Zle4LD;L-S;%#vG(_8xyGD6FTsy}b{KeD=J{&>9`fz`8@}4_ z=3e>X!&Px!Mm}O-{J+`9UY%r2ZN1={e&zJEaSE7uT~GcE%(Afq31-Fo#$hHuMjt+= zahORL60g!a^)x=MqUVuXPh+y|>R6d#q*Uex9*@P!(kc6A;N1?5*zj%;o_m8|2HySM zGtFlyZyY(cS$;MHBMr{kd2oL+xnGtOOI|HMB~NPejvQA(*Jqhm ztwpv^1+-WTZdF4^PcUb-oCTnHt>&DC?{RO>D>9DW5#L%#Ss1=y-$U!7Z=J1U-)DhO z+(+31{CmFVvbnxE7T&}99y;RUJX<61pUAo|vUh_Fzg;q=$^VJi6yzHcIT`)fwnt6K zG&`Yz2;a$n%|EoR=q}!^er)DIXN#v`BCY5`2*}VCzrw6l8hwz_p53@yzY6yYVExvG#NLiTajbpF>=K zdr>WID<`9|a8qHc%Kg~s*aN$nc9(D+2X0O98qH@v>w)k?b1FGAn>CsD5CV*sH#TnIHAh zU>>2*ZQlCf_+Z5PEx!}y?0o$wqaUrn%9`)DBFLMgYuNjAW$u;D-CkelcYF7Md6TJV*WMZY0bjG?nP|iB}cgF)9;^T>rLt~1K1sRtd z0Q3KLEOC5`!!(t#JQKsa6Gtl0{WDq5V&kx7JZCM}*+}+#_If5;uQQGylna)zYq{ornvY8jHVB}Yq^IDx;^ z80K9%_Z0?bNR+Za3cdGwlFaA=$JXbUp7#xScPV-ve8gKdW__p>f0<@{BxO6tM>ej9 z$%dYnoYCykndQ{|Jh*rI`{{fSKVr{tdt@p5zt|zX;8Yjql`Z<>C4q`@{_o#Kj=)Zz zF;)J4eqtk)JNoX__Gzoglid@oLa`&zy59X?`J>x&&#}**_!X)z8 zRSn8x_c`*|RSn8xS4kebBk241G1~i%738w3AeY@;!GioN>0ZE-l~1bMik`jqooX&#!a>!3)?uA=n9SclC~(f)7MsAUetn zPr@$v3I1=pz7UX14S#z=`#IsI7n-M-!_aQ+oel}?Wq!g-nA_RRXNzQv z$I-d1AHz$StB1jz70_8|a(hv43*TeM@7v(F*c<G_<-!rg)SO~1 z7#N8^Wo-TrAd_@M*OFDVPUD&geh|4O~_{_^LEm`GXXuD6mZGDW-AoEs>4>DG4 z4Nus%h6%~0S3Zn2aa+TM_%9A|Yz>Sh0!%_jWcwHrc#JX24)WN=$W`gADabgXhTVle zpJDHP36}*E*+Fc+#`v$MJu_#H`7+~OHfEH4p0ey|-&gy;XMTL_b9#&II>?Xe+d{6$=2GTlBjYzdH!N@m z>vu`^SkB?AyYUv{apvHMz7|>ToiglHj8}Vl3m9u%nUm{Zu@8NoWK(-TfB09TIO`H|OA5FF)3-pmNT3-o3vE=MFN~<=|hFpYt=Cmz&sx_C4b^?oZ|% z>?1SCHIOJgbvOSP-)8_*;JR-;`LZID=9po3@?Pb5jQ1}>|CAeajlB+~1z%$P_+w(P z1kUi)zroehcCqu|YKwG{A%P>^$mOh;vf(X{+r_}$L*pE~SOokHaeh+mXR(X14s#Yy zpcA}}^J8=KT-)w@Ie6O2SY`9QVmx?i+k8`OJgr|*^>fj0-n-~M;Foks`P=M*@5r}H z@@^Eq9i4xHSpeJ{!Ry}lI8P{M!;Ju&I?jsGnvxN-;mT$!--=8xG79r9o^b*{#xOFD zcuclzo%AJzzNk#L+ju{Q(T|h#W4R~8rUA<{ZsLIKv(SHk_m|JuXLpO|IQH2zY)Ilq zvK8+6YRoQ+AI?eaBkG4^n;pkmn>kT^Q4TBdygqoI-Vtx=h0gmJr_Ix3^R#Kpu_4Ol z`N6$sc$#c}p~>)x1>_(GCgNY`v;9p02W*=m{KV!Z^!JOxiv=;f*zNvXyr@Zu*-OuZ z7aqyFLjt#d3SQhg7%y_sSA-Xpe~TBk9V9n<>dq|V9s|FoaF)L<%--)gc8|CI5xa-Y zcL&)$oO{Ra;ru__?%|aE4|We5?%v?P{g`v}-u$v{_Ygft8w^YMSbIS-c8|2vc8{L( z*gcwZ{?_jC&I$$pUy+$67gDff=>HXmOEUMCd) zG>!G@MRJBZc%2&j`4a4Fj7K`E&I#N_-wx!s?3{I}vMY$@=Ure<2VR1|y_bUy8pU59 zpKH79UVaY$TPnCr$Eozy`mC%Cui zuroANbnmx$+-ggrM3-BFu=G@uWmdyAhb03!(BlF3+l=iEJ;ed^Eb+t9^sMJKxj-E1B@+Rf~} z+(e%GVfNljtz^kfigm=l7rrCh^+6Nfe>cpmQ!brzvu%9c*uYrgri7Qk)Yh%Xz}w}k zp?eqmGwIw*e^y+p_COpRJUuvya>?*2KgL=Ve?N)xY<%C#V)6UZpJjVN4#75+5!_7Q zZ{Rz{*z1|r^w1pif6Aq=H@b^|Dtk@*yKMWr^xztvU(a)u+j6vWi81ewQC=1+4}oWo zK5VSHI(9z>`A}^>!aK?hVaI#&y;t8(CoW!PS+Rad=E+6>=Ut7{ZU;Q)Oa@zjxR-Lt z+%1W_^X0tb2`uIv z&7bbW;HteQfTLIOjg6z~2RJ%~dyVa1Vs)<5bKo*~j-=nU3V!gQi9C}#C&0+Vl8N4FSi<=F$vy{tzS7&ulS1Eb_dgM@U7Rrmh9wu zm$MHn`J+m=)4HPn;`L4V_}l)w`1s3zcQyX~3*jL?aQHs#T#66-Hn{-qC&$`OY#GuA zh10$Gd!PHPUVMLnD^M{89qw}KNW~TpZ&Q0yu5+2)BRPZlU&y)57&Z~7dy;o{COUD( zJ8w3Q=3u|SFFmzcd#m3DJ|_;kO|=zfed)y>tM60MoiZf19YzF6OkYcTftC|8>si5uSO8PjFphb_B@ z;)>(M_=I^d|$S<6Hj~}`pq79RX=jgKKYaHVsB>;Jh%gxo}y0e z(aw+gZPyL%54`sz@^r23yFD)W8vLi0x?bg1J`l=1`&Zg^&WlP7dM*XVl*{+*p~ zg(K2!HlW)WoDJ3}*(-xR3-&*r##cVfIkKCum$p(K_s?q8+%q=$G>zh%82dT+lOOZ9 zk*^JtX?fQ=ez}UpO`2JE;|R|1OngB$j^SP2&$4&!HVSIl(@UCAcjFfMT2ek@M%|5z zT#v3B@g?{@vVoWXALP2oV?DepaRI(fi)#Cm7A@-k0K4~Zu%B+l*C`nD?e%#$H+6D? zsXPZC7(BD>_R!02SKx!(;j-I1@rYF;Y*|Qgm&kx``N)?jS*dR+^w#2a;xGH~Upa!! ze>vY1dpSUyn(P97tGOrka)8*&KJ52>FCdS-#CJLuSh1IfeCFX?ty`%xIRph7E zyqCMZQvE%Z>J;|AnvCkHkx#Ow_L6f``&~`^cg`NbZVBCH zf~OOyr;%|Qv7FR1bI8$2%vjk1-#+afdJXK28b^cIJUrX+6A8PVcIWWUa_kVYv&iqM zmbS}iJB_v*X?qXt9iVNs+4xD;6s^-?#!zK=yE=q}z^McNcZ%yMF&iP^q5Oi$-_GeT z!N=e)yno`oGMkq;F`${j-O=dB%1=4>qv%?1A29~Tw5i^N%7Rv7+7#y&p!Oh%rr7+o$xkqD#?eUqz|QtLRrxP$n?`1E1?BPeX>flYpj>wR z!~8~fd$4=^=uaa3N}_+m>E{U6mJ7`Mlw$aub3XMOoFnBcFKL@meD&fQ<{)JUd;nWa zh_wR0g&irQimlWU#nu(9H@_Rw|B~ie`*X58{MUFVpG_b4)g$7$VN!xGGtMS>i|j_S zcV)wC7V^I{I*c4=u7XH|E09P%6&=JhWf=p}1n7tLDze3GcI2Ydqd$GS$yif2+_*9{ zroBjhEOB3NqpFV?E0omny8ittB z$)z2B#W@NAQeZ$|PgSh9sMi6HDUw#r9=$#`bMS?9B7)!IA60m21J7N^qwFTrNi* z_t<#c9*aTs0Luj%(*s`vP7f;vHJ9;YgB*%4oA5iHKc;~B5bn!9G==}dVZka%xK96c zpQk6%Gdd=7gfI5`R=S|KlWQc(KGUqo>l%+zx894lTTD_o%M{poeg^SpXYq@ zYrpl3%HKZEHwXOI_w|gNoM+W_nDd)eez7ArR_8E(x}O-kzZCnw?x)1=uR=G|edl@F z_|R|NuV>`AJgbcpert)!$y50^Vv|I)uw{w;FjrxW8Ld_tE$x)I)+ zR_zN+`YE~6nBSA|#@Z66Z+hoe)pdQWuQ&Rwo9sF&|F(|oq`=(&7*xk?XX+^9n|p7* z&U}jXO*nsGh0EE01ZVc3@799*?Z{eR;=MiSoA$jM`Cs?QD~F5gwJ@ZfJz3Lcg~E5+s~ z30L>ue~9&o_vEARWiLYCX7Fx2hCncrjv-k69$7q{G54a^olw6Rb6By;e3QgC(q(_i zTBf?r`i@-IZw~%$5WEMVvx<(+C!dW^-pjcK_53><@mot3n>dXUvH+qxc2R| z9UI>M*3%o08JvH1^Qa#k`_}dY$Gjgru>Yxt_aFQ3mEFgBx4e6dK5y@|?WOpeA)~Oz zvu_6ebmi>zj0ct#Ly>QYKaws{^IdS%aCN;pRr_+td#Q%ao7io8pRQp@zzzRC!h3(=dbti6_D*t>BI{LuCkJ%Ov1c-Kpx z=)+bc-C_;jWzd#%C++XOq4m%+x+`Phlxdnrbga2~%xxIomvHn#JB~bz4~%4SFLHtU z(MSAv<8yxV*#$;GcIT+%Zt}MDlzNy0PoSn0AEry_6F3xtULF52?MHZn&#hwZA=nMU3paI+3!7rmr>)bEr95?CZ@?8vZZjJpOebv3eIdoc!CugC{^L-jIAHDSZ z2Qj`dp84;M)q4oNse`>@)%Dw-3|S*xPPqex)7o3HZFsEx#JKJI-+V6{o@`@vZv5$} z$6l|I)omWbcZrnU`^%EHdm~j-Y#5yfFKfD>x$~^&9{Rg%bEPSIm3-cF&}05!Ao}qu z4VMJEkyYdmC*7cDf?=-#%5irJo#j*6n$wbIRmDVJD|^oo#sb-jp@M# zU><4tvMKmzA5pZPjc(%jxuyr-x)|6ugY)cr%I85b^?BHl7E&*Hcmf(r{w2j$=Mwa~ z2_t2*-RA4a2nc4%KM(;&!qH??=gi24co=*}AKNxQlom*720um{Qx$jTZ7Z?!3G9MD zE8ptivTS@B$S2Sij2ng39meZt8!84-drNf;*j~{L4 zXHcK*+&t=UDKZuPeeHc<0N&cTu@e73=2vIXNq&m^f`pHd7ch#>xRmd~!SGV*rj78@ z6chR;rV-z?dBBMJ!i%W8Mf;kbz*g#hXEXB-9%|m;V{;psBaI(VKdV-4v9BrLq7X7{ z7#VhOU#fY&ly}4MTz$U_ok4y^o%BaOG|0T$y!bJD;iHiRd}x@XFt()#wxv$`syVd# zJwbc!^li!C_P28hV^N=x!`0_H`rN-69^*MrpP%9EW%Zdow=nvXf$iFxM4wkV?~W&z z!28J3?ANw6Ht|b-9`(BeJ{iZq?x@d{9kQurNMKd{kU(>XH}Jh(T0c^{YFR&;SU$rET8vmju6M>kHE^J^kHb-mf7B{N(4Hd@Ne;C2LHE z-<@rnPYF(>O!f(T-D-CQO8G{*h2({?lQ9(2RI4I?qogP+yoqG(fR%A&dr_-?c^)R$glxT`VRc2uUyN@=H+#(RRp9$ft{b_&%5@jleOwP+Xv(J` zyo&!%ac$;$p6eG}|H<_>*PppMxq7+W!~kLti4+cp~{@F5|k2tAwk9>qf5IT-Y29 zYeSAvQ0<;^K>jK#Pes>uP`CaI4zn45n6AFiOep!&*#TBICSGZ#BJY0UcQN5 zSJUV!WO;J&%*p4>G;&T&4FA&IRt--h&hWBY7y0k*z(%SZyRPB(eVF^urR_ypE4wwG zJ6IE08$)*z&jeg`mXz}EMn9Wmrq=rcBf*u3J1LNOG%=u@IoWUcM-;pK1IWSq(sbt7 z*o_zXUB-Y>&mJ&3!cKAts^9YGxfdK=h##Eqlc`f8myv@C+zi5Z6T!vERmE00{&+!j zmPBGoIyu+Foai#&6+KVUf5X%}KF;6@Q5Ir-@0*=urJ#>t1F&_mRAh4Z^OEUPZCxzv zuC(=`5Hfo&FpNA8U*6AJ3J!$GgWsR)YLkCor+aw6>@*>FbKxe|?Z|%;TS0j-|HFTF z_DHn%wTn3X$m~ihuN>ZjEojO$Jj2e&*<(-ii+eQR z#F+|)@mP>BwtOG_S1};h!Mha$Vqm+n_w@M{Uui@(lkQfHeQP{@C?~GL=1=(I>3KZX zqZ;{Nyh~+ev2WVJ5$Rxx5sAM?{qzAj6FQWfDf*L~`Pm;v*B+l$ZVgnH+xcCbHqQ2| z@Z+nb*uZG1&(fZL>&S7<5#~w0YyH%b2M$ake!%3U3NH(z|OS!lAf=kP-J>9ZprUvh!Y`t*HlQr=a zbK10%`Pg03wkkQPU=p;|Rq^!H#^lO^DET6y;>zM0!!?pCi7T3D zMNe{l#MQ-hi0dHNn_PRjc5=PU^#a!xt_13gW|`6G#a!deXcsb7wsA#h<*P;S1K(!& z-S=GZKmLmj>o{*Bw0~F88h2tKvdm|7WbLwfVCcn%i>eFSi&imrk(Iy}-0l_c81qO` z=o|P_uJ&>M0oN9;m$-Iwy~%ZutD7szm6V7)z?I82Inip$@e*TDS7d_M`Sn+D4gux! zD5p=^|1onQGQafx`uax-!;9$0lJ=s`_k338oJ6a0KG(}L3mR|m6*S)Lqu<8;;+@f1 zKGp!PO0IcaRb2DAmU1oUYT$aDtC?#p*LtoNuIIR3;ChkkWv-oEzv9}<^$yp5u0vc$ zxVpGL;_Bl%$>kA@xkhp&b7gUj;hMlTDG~TRQgpnO|5b@r=uSA!{*<;=xBCjB2NSID zp#sfkwI zL!6~dx#oG_7$<*_U>6n)fuCqkeOf`EM1ML*!S2_)v7 zme-0J!Ih4cD~f7X{HibnOb+j_FFIWMnvKI9D>>U@#jgv6#|HRRz2f!4j=ot|$J$3I z|4rdvJ!RJ6sz-|YN0wPflFO`)m5&sSceNKaVY3Kj)fa`5Un_bqi}Izh^3CM_)AKvX z>AB&Nq8$CtAs1QJYeh%qJyLXJ_G?8aCY4#C$HDzcuN9q|O8t+I+sweaNZGR3S|!s)-vFSB~@ zEVDjbUS_@9TxRvHEwj2>%B+uGD6>9(xy(BHt1_$eO|?5>>jzzB*0GQH-(6-6^p#l) zzgk}K$w}^`WyGTR@9**4*tX=x@`B?Bz3iI}Blg8}|6A}}@qm8jSv(-alW5bwaKdPC zctD)?#Rr5ZaUSp_b0HoeULfBY(f(@s+{c{#vpgV9`{E;_^T9m8JI7ZLhR$6Lj}(Sh zUbj`Y{WxFnR{0A4-=cZ(o&OWM?}hH;{Aw`$FT~&WeDq%e|9wWe{$q4+)7uw~fN1|w z=%9jiSoHrr@HT0baep&-icDkW<&!5CT#fSr8&_?9kajlB#rQ!z^tHnMT4BQ-;3d2u z1TBjn)QN7Y%At=HMfK3xUl)}V>t0_}=O#zrGL_d+{_Dc`R#FaK)Vcqw@Wg7$p|g7E z?9_&Gn=VVh_s)a71AWxF-z>DY=-Wq%Hc@`^CEkHnL{pK=D{MNct7tE3__y{V(O*5~ zT9-u2ku4XRovhiB*}Mnc)ZNTGq7~k$P4pLtwi+I4FWT&;F6d^V+kgLy;A99|7ti?1 zZrX)jT@9}m_Af2BdfzO!K76m-dbhjW>Wh|JT}c(zN9h&T$GH{O(a9C?s|tsn=2Te6 z=J9`ig*8xBVSTcI|94gl^z5J87KVNz&`${dCHkqaUr{JJiLaYluR7MgUL;xxt!(G{ zs=|(yuk##veZ%WT9jr+>jXC@&ed7NzOL})iB?{=qn9Xm z;$NZFFza=gHM*bm^$0xTJ$S+ic!9OWXPtb>XZ>Zj519Laxeu88fVmHNCj#$8;C*Io z{D3w6*t|sGod~=Wfj9qID_66=m$9}tvtAanMs!?+pC9X2(=1>Bj@04n8(-7%Mh~oA zh28VCd{xQWfyh^@Mzu~|b$PMXJiVBFUP(c66mFMpC%sO*E<)dsH@0>0KO6Z5e)Mtv z2a|1Cq?31SIf%aLokifJc$D-&#SDpOW$!>vSx|Lw$5uK8R`xt4P^aINK9&-DV=i(J3r+RJr_>j+mL*GaCp zd=ryvx=X2lkW6#er^qy$fz{WpIE$yfRq-uXpb}nIaf83#mS^B$i8mPic~_p1XExgW zi`bk`lV_9z^c;C+L#FHnV}oAsIvKoH{DAOg&S1RZyK3-8a?pC-kK>Et2v&hJk!vuR$LLlCa}$yVNCJt+7$<`-P~WSFsL#dDRW zw>vSAC|e3TddM>_(80KKeTnOhn~9J^PbdHRnouSF$H3(O>+twLg@y1T)NpyAn@hO) z60iwxnBC?Zy75Lw#vd1uoh90mpmls=bW4IIIXApvWZTCX18X~xYa>f$TH&QLZCgd> zd$W*_b&iaaKaoACK>i~e)^)y@U`3eo2<_FBPzGOe&qJ=C<+HNcoB9)Vbx%i@yu9pm z3{4&TlRG(gO?fLL$gAqB=)k5S%6`u`wa`F#y4RY_K92O&<^_Ih@8^vj(>>Vjuz49V z{FltA?=_bpa89%!IuK7(ynqa37IuUC-Qd2>gMdRfxG%i#g*JM@`wrGtSHr5pUhuvbeD7dQ z?fnOEJ!=rI_k!ykth>Ft9X!99xpV^qFMEx`<1n<*h)kxnUvwj#IkMpH`z5P(u+AIA zx3QmB)QGH>xcB-3`#N%tyd#Qh;K`$X@wVgZ_gm! zJ&`>T_HJexBg1nNt;WslH}YJvu;gXw4u@ZOnEc1|d#TTI1Ftw-4g(kWAh;X`F7Ad$ z3k4gE_i${yTC)!$U-TXX?(gv**`l|bccT19mgr4Nw0c>)4kI`8=JJ2CvzDK`CP*)D z#LtccRtn_9v>qG_J#{+&!N>W&OR>ifv$W2xz5^L%=`hQeXPDAmBOjHsk2ur{A&W{k z1O_)|iN7Org_EywWT+UOiI>NHcDli}CE(at+OqWnV0o@i>yGKPzr>e)m2_?Fje~Vs ztx2{XTkq(xJuyADnl(v&o9dITW78MOfss2!r(Qcwz}90I&9ZtlR%FnQ8M}+b4-S{2 z^EJ<8A1N=;b7z9p2c6fH;CBP9_dGt+a!2*E5 zuJgrG+gEJ|ux;kMjr3i8?gPHP@Ey@W$CihSI_LYWF4m670^ok9&-#V>URr7OOJdJv@N5asmU@uiMg^KYjx9QFhaPNyu5a)JvdA48o;<59a`~*b zMDct2*ui(|hxdNpMfqH^qu@Uc)4L_Y>L{)6doL+Q#{3Vjk;uy90AHX1;H# za^&5?{Q7RbIZJj~AbEHAMdI0A1&$BN(|m{h{i206zV&6u!s)X85Gx-^Le8OoS~n(b z8WQMYe|l2Q&_F&pCL=F+OxcmcNyNId|7_`^&zq-@CDC#Pisr z{B78*7qK_jrhPc=7vy~sy`rh53}5o}_11!+rsBHQwl^lXSLdXkmfNpl99nmzt5}oR zcR;uBB8SZ&7n5>&=M|S1bjyDOAKKdJ$SJARD_t+;!SwY%yTfby)$YLFEt~h6JAC`_ zG1g{tS@92>Rvx@6DpS*`pV_@Fm)mH@sXr_$K(n`)33%BffN zEln)8mf`y~mHMXM?bN5e7u7kJI_vIs@@1*cGr6vm&o(_6roO(*4eQ>C>@g6(`5o*z zI>%QuB3&lDC6O2l;tyhH_*QSe#`KPJ?D9Q43%vl3eld|8V6(`_kNn!68W>m?U0cJs z#P_mCV3+yR0{tq}nZ))xX@MT@7qWMAd?kLE39dHzH}~`zZP@s?pF|hU8~D!t#s$WX zDkVgk7I118uYF%|Myp6PiHeXsC=0p@=o3tSFOupZvlQa z7ny^2*$aq+27cs{`3&PxjD>Os%J*4*`k$vv-|Bfj-{#ZqDz~q>0$#2BUHR0L@9{O~ zb1%JhGw>N)ulAM1`zomOecEAf$_x_eVWJ?X}c(;$-n&5i3>!)Qmg^p?c ztGx-|1$=+M^=r({swVzeaJNDd5ffMT)SpHnlnAIp67TTUhVzkMm8*Uf~xjtcmFAoyiOqTV9{gAL;YAmAQQVCvwZp2)38VkqRrko;9+&!YZ#%?2jyE zudjYYe>l0)*+=nIT4j$I%(b8OaAbcZx017-Q`!{gS{{IZv!;ewH^Y}#TID7-V;}Ew zu5}IjHyzlD{I15r5H_W- z0?ygmJtQDLlun!@`Qh8jzU5mld%fgL&YZLqpQbY__Yeap8`)0beHQ$Ap8WR41-*&J z_6NbG?aAKe3wXD2k?^fzYc1=c{8NpguC1Zw%B_aay*0G5e5(OnXl>j{T(H-}Iz%ki zleyQK-PH9;DYP@x+nfgflW)up{B`l!-S-r{=10y*X{(|EErQnC)Qv*K}zrOB%*P2$o_l`<#9!suQt<4&9yf1t3BiO~-EZ-1l z%&c1OGLN_5?@WF7QCC&e4Sz{@;^^*7Hmxn>ACIP)(PYp4Pa=0I7V!$&(0RJvQK`)) zV~n&IR`RWene0IhYPi-ulfXsZm%3a};AbO@H9J_Z@14V%_gV77;QLgYMBJ42`8k6G zIVOlreaBqp;a+qg*?^zIvGl-qM+ItkQy;MvUsqo%OKjh>@!iq6wfN+Ok41OL-g#e( zTRdFnhFagJorTPy_&55?j)i=qc#TcKW??dG8~S*5X7Mk2$Wx@YHe6sV{yMy^G0nI^ z{{F~Fi*s4)63xUO5g>^T+k@LoA)}p(_U!`x{H_5Q7(Lrlp!v6voX>Db# zp6eT8>`+YWjG-6bqdZ39%{6=@-ff@{iGN?7iVTvEe4NFezQ*zZvA>^j;oC>N4iWrxsaca2sB7kVKfmapE4|3A+Jv-{?yoA>QDtaD*k+#8)MxT_7~Sl(Jg8+FX5V84brS|dC;2reE! zyUmYMkn^(19~EzNf2_@SpdH%0Z{BG0zJrFfj{f(sW;H%m-d~^Sw^rbDD!*6JUoE~J zuadi1cIzkMCCV#s^IY$G<#Dljz#RBF|GlZ{&EQ*`aua6`g%(B_R?|GivG{D+nA{DV zcaqjc?9bfRG~_O1$hGj5#@WPQjK*&U`rX7F$S--I*A&UODk$GMhd$$Un z=83LEqCqfPQ2BZVduY zc#-^AUjDJ)8i)VIRX1^NY1gv-ib+xVZM6GJu5mQ)2HtgzZGIMi%6K2Hy2+Ni?fA&0 zEB!yW+g3ae<7=Yrj~QR<5BaVyy4{Cw^e@&C$GH%GOub`i=LfVSy~A#20kPJ!RYkn1 z)7H3V;z|SRbLO9%J{Qv7#-6C%-mO)Ba|3W1A8YUHwD%$HO=Oc2{eO;T5g z`NgUUOzlQf^Gna3@x4wCuomT-|YND-GJ4@QiiGvsp zjy3NtX?qkr%YShA`fFWD6IZ1UozpzjHRpRi_Z<27p+_CviY`?RPe^hZQ=a$vt$%}# zo*zYQynb&eY5T2f%w^Bt;BFiKsn18-&w~RAQ=U)dd;F=M&m=zqHV_v$=+u#JzoVEy z`E5=_Pn2Gx|79-sW#DgH6uAkXy-&@j8BUmWO8M)$SL1Uj*_pLhGNJB|Cp%?M{8MVs zf*x~u*2^>LCGmIT_j=DtmyVVh{E&BTf5zCmnIR_*q=S3ua)0G{3T0|Xb*W6gf+5Ni zX+w3p;7c9c+yCL8e~$mB`~d&6@t@SWK_SWK=>7K<;4g-pN%DiWmtbEVPmESJ*WhBAMl?2Ejq+v>Uy8D z@Oi$ybkMh77Y9oX9-r&90 zV{HufcT7&EF66Goysy5?zpp(e1HFjPq3_@EH^cu_aYN!OURPy*BQVu}<92XE-{apG z-j5tdJ>oUluI9o#*YN(YP-km=T;%y&xG%c)Ir`B;nQ%(&38&XmX2UHu_V=en*An-T z@=Wa8?$vgFE$1ENreAWdj@r69)@R95ZLzW$v9g}2*kW2rZQRv)%zNMsQ>ioF?j3{v zs}D;C-B%9!PoA_X)!eHN)v11}j?v^CzjDxfC4>H#4*LIvLI2f`@_5AiP{jXm(ls_5 z-~~I*?Q<<<1C@U37x19byc-&MjkN)IpZi{zxUkT4CL-`!4%_$98<h7e~q6rIEs z#7Q`Km_V zNTKidZAM1TVP7GE_mCSppyf}-fXlP5F=dzSop-fq&=z9}TzJud9dE8NICGA^WWymj zSaj5h-@B80#kBs9zUaHh?-MMl3{RJQ(nB+bSaqq$*#NwU9RA9Gs{JzEpJ+)7c-v+U zSPe-5oy)Fs+BF{e!^%%O{3ho|@=hqnw_g2~AM}T#XdhWHM0p3_sXV-&b1W&h-(`#{ z`y=-{A5Z59ww|a^y#3VH#L5CY{vP|Z)?#m}?9}+qymwI`h~1gLA`gozqddE3Y z*vR?ycq|jyud~}@X@58Jk;mHn<4SbCVO%~_d%XGhsaJ8fMb+}*TqDisJ8mo5?Zy|) zO`Qqmz(|iZFotUa*X16{MwkOL_+QC24_o+rk9Dew3%mF!?Cqx-xE|+P&-EPFi(EUo z_Hw<$b%byFxT0JML-0-DO6SVrn!q)A2>TD-w(y-?Q-=(MfRkW@Znw4-T+#XT8_^*L z!|(~<_47Z^HD#M!>+63B-GkVB$2R)`&$5Xbklj*n)0t|b&v@)qJS{2YwlpJ3(dG1ImyAJ=6o${>ki} z#8f!3CW2`-_K7h(t0m^xzQ>lCu6uN$Mm@inTwSwwwO#~W>sNAQ)RRD-hBRVs(uuvv zAO=Z$5jVeEY7!o)YqM7B=YiH1@)XgB~2?sC<6NKxf4`9uO``UP0E) zOJ(hX-~AZa%C}!|YDahc4ez{jwkeaeG8Q{ik3ygigKxgt|>rx%k?Oenc#OuhUj&|&HPx3DLQ__3rvv4rF z{339VT*u2ftC?p^1?fX2Tb1u^yvMyYn=_in6N8w;8BXIHjIBAWv+d}hFXcFKwS9M- zIUg__i>nPW*9Dq0`gxx{=c&OfxzA4UZ_P^FYyr0 z|KXW8UJi^N1xC^%+lebv-IBfZE8MZ$0p3GYA9c)x231Eb_uF~@Z}MWC!;^Y1M1IRD ziRE5MIg`I(qbsn#Mg588Z;0_N!6CvoOTfPup`Y3q?TEh}p}ZQHA7R~6AI{B#aPUIq zdOtfif^&|N_*imqKi>dCiZkQ$so zJxhSWJvJQ1_4m$m!8_gXPJJTs21Bj= z4h)^#3Exw_^jl?3Hk?v|AMqP4RW6?d@X!lB`oPOX`jW&rhntcKv?k~bCTG7(HY&~# z7|A^0R~r26b=oTnZh=q9A27`@EZHSH;b)2PvHYRFX77WE*!qW<+P93pNq*<4+KXo$ znM^#Phg?0y$iWMUOVaNaY^OEks7iNo?)FadTQ{?Z0Pot@{|;w+PBN^u-?EsZnjfXvA4jFl{fgdQX}xxM-S|m9JHf^yv&>%TMdt><(xqGP+*_nv^yT2R^uU; z&RyT?7koC-uK4W0d*tze7s(ctfo=O0u7U-=eHe$fr?PjT?{~rz_5FQ(zmZGlK#GU& z7o4dlJegcD*yrluy~>FpcrWz=06I6Q(}5ai9QVgICpcvi_p!WkFW4dAT{IA}bgp;qkY>Tg(kB;aMG z@RD(LFm9FCLNn^upSaiaQl5V@@0Z{vXRmL(-u&Go&%T{He%0G^-+$rQm9M{iY|UeD z9P_b1d;H=*9@~Ct|FI{(8$Ra6e=VQ&P5aw+JOQ#|J~=U}h`GKCoDnA;<+?VP(FCPDOaz4JN1DTZ~t!gkB%MxZR@dnKldwpyjM=! zckFjpcOAQOU&sG1#`_*IPv;x&FBz}S)FAgR`CZO`t_D15+W@#D_=+d>z@K{IPwf|g zBc*5Ob!pvM(ndZoGXg(p9aBBk++EU^=t{mQe`v}@?4eEcjWMn?Tdp^g$*q!3Zj~jm z+$!_Pt+FJRTV*Y|RrZrxrSDU7tE8WkTP4}ft+Ht)ctmcMl4A7H2IQGf$*q!V<56l1 zk2pifm}BQwIUjuP13ngZO!1~x@Wo4Rm7Vyo=?t#u62ltE9bwvM$U(F08K2Ir^0jXu zSHD+k4zw8N{qSw&R_R7&8rS~axASIu*G~tQ&!V3{yL1To$l8ykdh0IY{ALTC{VnBN z@j)X{ zd}(Tb>^GONHtLMC=pqANlofn~eUoPTD;_DIU-_EUu~#^pGcO)nboVsu^jChsxg3w? zj%a><;oZ}I^Wcy=nVs|#TzrP{mzH%Pwp%-7H30)7hn_HnQAQ7{?G=_ z*B}q(+`DuCYuyIdxK4V)86Cc^+AkP$ucDoFS7NjF1^eOk{qTtpuyfA2$OwL(GbO|B zjOKDr#@_Z52~+L{_BvBV^3%>0d5ewX(=*vygq~ zuhDJ?`i=Pf31l{%6{r0+=@gsoH9`7UMsOx)*x2u}t~uukDbGxL@W~PIQ@+pOyu5zq zYh6rNSqaVb$Lh^ued*vl5Xpd7tRJ%GVXa*)elvOenVfL(95b~sd8QgZcOP{~o>3l~ zTGb0)Ev8Jgw*x~hD?OC! ztO*0Vn=`j5!7l@o2y09$zB5Y(qHir(aY^97$>x5iU~&$Y)j_%Pzo>7A!K3ekKO3{i8~=+EdmnxibA^nQ z62CW;|K(-!zo4__llLV*kVl=d`pNrZxA%A2xSuvcW6AqMo8{^s=L6gQBkxPRe|A0e zPyMuWztFd94g$0IoJl?bR;P2njKtrB@wcvZ?51rkLjo_sZ~AhkYHz;F1-+b@Lk?ZR z51&GvHK=n1U5sa<=AeZ$-3(%!iwm4SfKw6L43i&H{S410ZwY<1<|z*o{f&}OXEnA2 z>8`-@V)}LxJXagC4=fjM0=skDs~4@)-YI00@5FShx0zS%P3tU*!F{Xad*Q{#6Xc8H zonO3tvH9XB__BEX;NBQpuXX&loHI!#(Ld=-!Q44!GdW5Yk!wb9?9BC=t>9=E{$wV2 zYvYE8@oIeY!3V}3<{S;12hMlKdDa+P$dAJq-~9tL@|53F48iuzLx5}YY5Up6b;yDA zv2~T-KKmmwLw)2q@t{qK=&t0qYHb!h8&hE0z@9ll|4{$c#|UWLvW(mS=|X(Z*SMW`c}2(!yELj8U|zx$10zCK&hM8?$X6 zV!Wot%Xs4bJv|?fasCfu4NX9Ip2N7w1=UI}DCu#sOa1ag?D~Uf`Zm4Gvv_{@aEpK7 z({j9TjOCU&0$nP%%+=^Kc5WHwNV#RcNgVhkjJ-^`Wj0YJ`t@f8ln+X_1@Rmo>ry-? z{4>PdDWAhx?{CZsD1WTvk?~xsp`*W0&%@c7c5W{Fe|u(tzPx3SuO{A?!}Otsd^NM_ zgVw#cJh+iIBr{7+mW(WZAv)FnTKG{2TFnFo7sj5i6EB2MYK_)A;(?k^eJ}mq{!X;9 zfZTP09rQQx>yDi*&L@Z3Fij3F;y2o$GtE+v|5MQe($ELek^3`{xydC?{W{;V2YKrr za;ZH1=Q2}%9=#8F*PqNSGw(;YQrjnyi@{JY$Mn zU`$n>v9>-Lp1`_JPE_pyb+G2^eB8JlZ=UQKlQqEmEh2eSFTd+-NzeW2_nhVKc(yb4GAA{HQdir|Sn$8?N zK-u7P0Kd(B)Bi(x3G2TLzmx1tK9|N7pDsIpT3*8Q$gXVwb?5Zx8F2cl?Y%XG?#RE%?HQ8?R7mtKz=AzRhbJbzHBp0z`YlL53 z$o%xoz7^WN1sa|QE#C}H--J#-m-EM+GceBONei=V`K)BVIFiC5YB zJT!I-{6f4+JZ3#Iylj2Pk{lkXvUJ|nuXv8uBmGZ`{r(}wxBkleDm%^N#H+yR5anUU zCHq8(@hI1$T^D^z9OGFt7#IJWccqI@XUv1oeiUzt??Fy^z`I`GJ9ux$PwdnAE{dCo z%bwNHX*@^rz0}!`+^Kp8+vjBKkWbtB%A+1Pypz1m-|zr$&grfi3jBw`JMqmXE==tk znQ^_<6--vYv2Q(v{Y<{M%2S<6j;K~}>75nW!5R!x@K&sccnrRA`;G&jJv!q$nlPnf z)pE{YGy<2P-^o9!@!xtXqH8H9EVEz3f@Q_G(~^KD(?0ySdx8o7;Ai>U``e zDZw|1MH61ycnZ9q2QM7lA(!E+j$L#cu#cC094p&0sH`hi_Txcie~p!G8dTO1D|?o* zXoGC2Ui#*vkBQ7b=lzl!v1j%ObNatuZ>D2s$h)wzAOl;&Qfv*kU}sp0ok8pARlq!J zoN>?7*c;TZcd$A1V{_>BtiTiID<50d z4B~orp<~ARXin+>%tz0*L1bWqn0LZJwytAMiP@x{h})!Yf(J;adWL5OlN|d)p6AJR zO~n1kUywamTV_{$U=QoD&N|gOr^VFQ1bwMova053#L4Jd_LjEKFpQ&x7jF2&cyR7X zVuscbGqgi=-{AOC$R7H*&OJF;VoJ`@x1XGdu5E{Q;@{4vT=GC3eK5$U>g*Gx1`qhO zpO@MkrVm?V-%g_48Be&5HbN))Um(_)_J?HnPmCodrtz00ZB4J1vlSsr)Is5#%E zk2=F+VM1}gU=BTyQ#Zr*HTME<#Zh$(g7>S_{&{#;LqFy8Pq2mVZM#lW1?xQLISRf# zxx=unpgT>+&U3_7(EFaNU?Jldk6SepJLQAk^_9iGz|Hx_l;N(2ZF=Y2g`-Z>s@JagAt*+sTJAMAeb&R1LTZ73lNLDt->lm z_cIo^a(3t>>Mb7CwC;{koSjAAPVHfzn*B@RbeMjZx$537bG0Aqo5wy1>x#x_=Thd~ z&;JHJiFGp%-#5two}tEn$mhNX+UZ3<*y;Azbf-N1S5jXpW8O{~xs$P59hsIj)b+*h z@gE&&+rt~b03S_9|I!|BR&WRKMWINUJKpvac|!Oh+v@^o%id?>eq*-Qe`nu9Hkp1e z^ok9})-kX#z0bRS%B>F_imnyk8qb|9d;2D>AC&7%k2Uyd#`7hYOU|Ent?64hej2p*{1rM)in%)Sm@TLI54XFVuGwsFoA*v0;bY>T~aPjf4JpqDdrb@r}gja8iW zi#;RoK4-XnMpv9+<*{CNG(aQdOWC*8paIiH6r6&Cxf;p|3!L%MLT956AVA{_?=|!Zq=TuuKQ0q)0Di>h_ zg!w*S?+Y0a5PSKZp7ZmM{g|2ey!UPGwby>Fwbx$TxN^69#I`DIaUtwOviryJJFmxw zem69DE312&?}@CwMV+-OoM2o4F@=9%D6vee})T6TE@^ z>$xMi8$Ce#yFb4$wfJf79R3aYH5?%VxFd|@?Z4RFly(md-B|6R2e_@~IB_q&YVi`Lv8S)p4d-HkrBqR#&vlHM}_O)yUgE)AA z&y%$ota8#etF6VHV|LnD#Tl>0zLh(o>`&y=-mPjU`}Jz4(>}E|v5l`TIkPtY%5LK? zPSM6QqHFPK=t?_}qbt8pMb{skVVfVZ+uVMNHn*RGt}pEP=a*7H-evN_()JyDUl{h@ zc1zC_Pc(j&vpdjPzZElIv_4h48_uxZx7qFf@&{~p@%8mD^|_xm+nxHO?!7N0pQPQ$ zmgCyZ@Aqr>f-`LQ<#xMg@>zel>7_0I^e->@8@u+p9)Ego_!F<}t$F=td-MKr-`@OR z@7^o@`{>AVu_L#*SohuNSRUkr<&*8rkbPM)#q!OTUHl+(QMyMx=cXGzS{BUYnft<3 ztxu+4+qm1mW`Y6sBIa-QVBL=9PoTFJ3(ph(?O47_@?Cx`-}g?)=Ov#HJzE&gi!6Ni zs$g5{$oi}1g5kVp-`Dz(J1x-fHm>?PdTtl#&MSj$Yu()wlQ|w z?oX)0%UynB)Hd=)Now0+r)}ixCEr*(UtL1JLh|L1ug+uKx^*;uvV1->y16wn`k_`m zYvp?pGNzK0*k6A^SulT6S#Z2v=F)^Rn<-QMRsJKllm(-s*P7+NF#19Ke~nv-SKU>4 zw){wDa@HQ-lJtjLYurXxtg0gD;=fe>D@<=~J#=GvaOp=mx7pZKTGQBA>ioBq_~JE< z?yh{^E#%$WPwJg!-nq9_KI}(RE{~md{Kqi<-cyV}wv7hP?mFXtQ9{3tjsM3_GX4`U zC*RCt`969=KG7rU$u2g>9}J($I`UwaFYqQ~J{ulbmo+?K@qsU}5qpQm{&_xUaIS4= z{QZo-|JeACNT}o3_>(6}I)429jKBZb_{WD0@$?yuzwB$Io!EdykFl9L5#D z-Nb&@Ph?(y@3Ld#`uGX?&UjwqN7zL=>AZe~aiwj}yk3`3$FXrGZh*sLE8sWm`nEi zG1$sV@Jo=6Q&NHNKlT`Wxm)f^A&!A5&$3M0OddYQ)_y-{Dd}%J_S_9w_{X_j{S(oJ zyd&zb3gRdJn^(W_(nG|CyKUwDFWv6_(cZNSzq|LrmY4UgJ^NRCfAd6m@7j&gy^dX2 zHtvVeT_+fs=A9(6Z#IAjUSNF@w)27ODr>m+Rd$3-a9$023;ezhUpCo_PUcINh3!t| zTE1kN*xwc&+JK%^3C^tL{=DOSUT^%ViCfM8zIyWiYT2u=a~nb9iY?P?(3Ptj8<3v~ zezSHNVD<-u$ED9Va)tpc{GxpLp5xqmdD!yd`z&Yd23P(&`t^I)+jvvjcCQipmgc4G z05g*OdkPJ2;Exv=&+NoD0gha_WY~gjsmR3{F4rE#uaW+}#O;4V&x+3O{@rY1(8z9B zG+4G{PX6<)OFsI1E6)P@y>C)d(C6FH+Ua&}4{@F#!v01lKA7SG*)ilV+R5Fx2Ue!G z$cJfH1@T*^f~hBYf=k^K`c*$RfMV_C$GIDL5ogK4Tp8MHYtPC+AN2OS(L3=+e5Mi| zuBw6kApDwkUW$+Zh0U$ID*OZ7O;xOOFRxQy75A=7_tW#VL?;RlV= zE@B8YqmT5>&|ZNz5S?rcMA3nWQ4)y!z>2S>`KbFX-S|OCXS_a%c#_|oW!lR2Gnd2@ zImx-9^_&m#G44m$=iIvV?rDt8vJUnYbqDTO;$=Gy;wv&{#oe*7eD`{Cxa-6Jt?AsU zv)SY6Hy-vMs)t6+?%ZuZ%<=|)%vU%n4WhhC8d( zmIKVI>+sR2<2;k>D%!t&_Hf+}wW%4~PC2yJJ2~-`so=0Ds-;y^! zCOhUn=EQpX^K0&XcyqGa%6*0&|6o3RuJMmjP9No@RW!8bXZQlul%w)y5F;Wfecqw! zVGU+E-=vJG@P>SQ`lq08GA?zT<9lK0)M+^@rpA`w>#}y(+yK7(?763fmhzu>XMABQ z`BIS)z6|{AGE=uz6*0fzInAf@`EMTcM04mH%&CpclUrP8ZHt4s^#9gB#uxse#@PN2 z&nCD>_E+k6{?PBO+<(+nW^DgH|Gx%KujKdY!Ie9P?}~5Q4PF|Kf7sl2>%R3^=I{W1 ziNwwF&+CHMlZN}}jq)2eU+8z;e3jpQ^K!rE=6Zk9%^Up5H$UeecJnTO%FUyOub)>x z!kD+(<=S2b9jj~Ujuh8&NddN=YYRh(k&G;VaQ*GqE{$u~+q3;cK4hj#%%751Bf` zdY+Yo1(bISx}@;(iFrBszi^K7(mws?1Z&ZhMWl=8`=kE)EPBD`*$Db z&g3d^oAzvsbL)bxqI-f<&`lJ+)N$RbJW~Zz7 z>XX;|wECP_Z_}Q*>D#ULybGRp{(B8Nc5qHX{Z^h6|Lb|1y-=TV$!2KTgO1;Mv~0)b zt1N7&GXNKoFX+w)q=65MwO26NKVa!ysezB7du?Wn^4jw?0reV&^*P|x6v z#AluKcQ^andiEIa$*$|=*)s6rHe&Q~&&Gfcthki_`-uy4?)oVGID4lF(`gMo$J)0lPBbHmGrz++nId;EZ_T2piUk$n@ef5~^y2CYOBbMBf zol|}ZPhzi9-NRKk^{HOfmzv(zx-#1r7?bS{lu>UTx@J=P)rV@_4Ue@m4<##?keoX6 zkz+;yad;Et`ri@k2mR>t;(_(Z{iU}4*ZiyaLg_`#(z~JIkX|(Y zc)h6S)Ot~MI&0}^{{K)f8nSWyJo7`n=WCltyRmVV!zX_W8`pVuxqpdX^jYZi zpb7adI8ub6~h1fKaz^`ht`W59=Q)JLq5NTan+p}Tn_lU>0G z`cfu-0@8c9AA5U0_UShZ+{gAUbl1U=3H=&KB>I4P5(7d%xrUXp$_`4 zSVz)@4x$Uy;rG}rUFcrvLfOZ3p@Zs2@b2J6wm$R^C+$aesMFDj653vXPIUe$>VM=U z^|wnWdY}47ow|NYH%hEOK{q;peb}LE9dxZo(2Y*~Z!x-&_PJhzwjSEq$DZ)>=n$=?YKOclbjxM>ek*$6kX!S+`Cb`#Mh#$G|^YlSFMc#FpZQA28^$6_xnv02LMeMS)?h#qf)F-4@B%RM-E80AeK|M#xH~O0h;@VktwEr zW9t~H_=}W$VN=_fnoVueFJ|Lspgup3|4Bew zdGv{sv_blf>b`}~>Bx&C>_5r|BR!*yGfhjEOrN&(*9m$Cw3Yw6wf}O0o^hJ}mpfDc z^0n#zU-r^3%KA{x_OnssQADnEko!4XO6C0?<=)f-+Ut?$O zp3i)8e6r0wm65Z8&92zfrXFGXSWPGv-mjpZ6ZM8`c=nvFH*5fJJ9@)3y$fb|7>ujD z&VGq>1h7qu^Z@AydFUD!HGM9&-fig!c^!55!QKaXxkBw@egoRicc zEO=ra!k4G3W8}%}F!8@)(P%G3=W5h9Vf+2qPaW(povLE*e=ok*m@fv~o46i7yp!Vk zsmVd%`T=mWuzez~?>_{txB2O0xV{LTG!fVLoFT3^;2j6oPs9Gd5*zGAh3Sh-Okc@ffraS}_6znyf5o_L z{>BZlCEvUurnA{P_s}40-@(4YqhCGdyIgyCXl}}PS=e6Z^e+O}Yb^f~Y#-L1okwSH zPr&x}Sp-Ku%t~lO;@*W*{}*k1e`o^t*MaY=67W6r!H?_;+m_OL}?nsJg#vN`x_So1-XwdD~z5gDc*$;-G#9pX(WR+#0WEe88KmakG4`jb(S^b1h%PtWXC$+m6q* z?q-V62ic|?*w2@4_0A2hwK1K8OHb!KoY9iWU1(8!m31EKY3@8t=S-C7p|}^ziF+}H zxE2xfd|#FsCr&YSoO)JK4`XP>h>Ir$;~gF|z8JoQ#3IBNBwu8FoxQ!&TZrW{7-tQP zVDIbYES=i2zeX{SiJ=DHM0r22p}Umu1}{m^3=_xM&%JCqcN~U4!^F=q>g!9@HvJY& z_s^ftJ%0Yd1J`_#^MX2?tTV~;7?Zj9<;@{RMUr`DuUhdGEdOfaDa9J+MoDV5lt z&B-l2v~h9!Ct5zDGuYvxmYsE0oT~rF`NcdtCY0JJKlobCj)e>S0}s)6`Jf)*Gw$Ks zqRv>)_Yfz+Ixo@8*}``Vpuu9Jr1-o3VBe#}TIcr$d@s<$*DBseH)ZXF7c5^^;sSpj zdT^($;^W9~{OC31+_SlU9Oaw+Fzd-7#_vb`!CJ+Lyq!CB;T0ce&p&4POGXk`a-Pc< zIG=Uu0^&)Ex0ac49n<>T;jK?CSvKwLC10A>!r9+{Jj?j9VjplnNy%={=;8~%O1#9Q zu3PiQ&HKt;#Y_AI=cQRU_Y%`_MwT5fvC)c`_+tKxt@v;D_0cOr%{s1&d{fH5qOr2%OgfEK%=i&5;cw`~@lAlMPMi3*@j04$l{<1XWaXx3$@p12Or_N6At z)jym&>U8!qv28O9U%wCEl0st4D2|zYts|2R^FG2Y@KioA%HZ#ocpN)4KJ+(ozUY+i z68|jm-Rt!(GDQ4gmQ{aFi|*Jn#`+Ik`voJziBId}omAwFWSeA~cytc_2^VutqZ0X+ zVavBo$T!8^S1kTcTfVg;8~!+8$+ue0ICb)0HP4)QxxXJcV#z%_mabE$mpZL;K}M*^ z<=v(@CKqw9nC9lD#*^3c!fER1IYm9k`u2wViOz=~K1tu~Iv+WCon5D?^Lr=OIdUk@ zcqV7rbpCiB=U+5Wy{=4Re!BY?3(p`sbza$UWd{CF?8v%KcX~iE#G8?!idUpq;#wng zwnOo8Em_IkE}Zjt5E?7C*xSsF#CS;=oVU@q!6Q%JhdowtA}G&{o!}#GfDgKM5i`Jw zX)vPreqsh}wqph;p0b}grZ~%25HsL0&hC#OWNV6z=FK)*jp%z)SUeIN5$ zzkkWQ^NAUtSOjnRte64onG4m-3B^fJ%m61&f?@_-VaG|(-okp9?^w(LV#1E@qO2~; z=_2NWVg_uc96xyy<0UvT1DyB>=baEQ;W1(c+(Cc3srRX**wdBFE7_hE^WuBZx*E)* z^DfR^1k-s|3%?d}UON>UDGrSl3&Xmr;9~oKQ)V+BMexHNR~x}Q?6GoUziYgdS9DLz zf38zLcK5yXN%LRhcNa20k9YO`cFF&WWa1BvWZfCX`g1l|U^G}Do%J9i=z7r_Tj>sQ z*1mYhu;60Wqs1A+nD1`l$7X~+ud=YaPp>CFU{z&MG52Dx%nQcY*V>w4Jh^WN=kfcm z2u7K|{nyM1>RxrpB=nL{+&!*;po+U>vAgeUY$cBExc=Gr0!3LTR`LD?l&x67QSfE| z#^hiWU&O=M`^8gl7t9LIM#e>#6i(aZ9v4t-FZO=e!y%psZH;2PosnYvTabIN^BKz- zU=26eUw&7Ykbi*sl~3>K9rJ&5Pv5d7)B3=Hv(J6LHF`AVk~s1E((tv3Ha={&Z#Qzk zxS_SR3ZJbo4|#wd{V{1IAbwbZ2i3wWkVx1rseCU~Sn1mfu1C6WczK zH8Qd7K4N|OXm>yL)Vb68yJ@TD%|>@xppLdq%rzDUmM)!k9`TavT*H^mO=v4|uFZBT zo^TW&$=T>WDyxsOQi&(I(VfcK47E9{f6;hj;bh)_jB>OGv}{k+wDqpEW$L%u`di9S z-z8t~9B*tION=D>gDGDAG?#qAG6T7;G25CwicOr`|D3R1hYQ}y4Nc&#nzvJC1@&&2 zwf3+nlh~8wznEua=%#~5*1e5BQtQbL99}%rj439JR)%h%GJ4s!QEZqIlp~*^eLKp6 zO|+wK!k6~eQ;)-kU**|;bR90UVvbn6dHV!owC+@20FMbLtXV2PGp-uqGh*FPS2i&u z6er~o%JVHdIF0rE!lis~Cr>Z_Z~9O8^&s=@H(ul78lIUvBvGXYAhx}|;*}o0SJ6WF>^G+G(q?|rWCaK?Eo{Kh1jM!8?6Sga&@A|I3 zi60Iz#-%1dWCwCw_SWVp{HpAM|d$+Z7lz`C+`N??w->o_TTt(nZ7r z4cIj-9vElxz-r}1W_*MG?N8VGI5yNry}H}rYU-`zd`^ZdYg?fiBRj*2k!|u}M(7^$ z_99<&=eF*(klZuiN6FA_)EnkLm?g;aPWDC7tp>u}A+tnyg!T4Wcr;u<%*DAnapBZu_e z{4ej~7U}fPcg6J!v-g{%*tPA7ho;!r+1$016`IePR$zr2ELX(hv1pYrO6qxL5sQp6urHbg}Eeiti|o)*7vW&Yd8;pck>-Ol@;jGOF^*H9|MjvO@o9=dtRN&4;~p z>Iye)v3W5oKEV7{7>{y#Yn6LPs~=_Ja}4hu@pB;ak5T~kL5ckJbmi_ zg+nyf8nY^}hxkb2FJ4oh^u1Q&%G^6ZJ0sL@{>FZ=SM7$UJ|muzK8h@sKB}0R(na?d zaMt-=?kqtcl^)uF9(oh8gu|4FTw0rMqz9bm|HSiZ{FPOnsfSXZqmM;s!<*Pcg@t^~ zU+L<85ZPeu12d5SOYB9C#l6nTW3TE@LwsSzL#_lI-;$M@Jxw z>yX73b{t-OlP!zWki}l&cu8h28#|&nfIN1}dJfqs8`w?AUoY{*`l(yERrQFcG|UM3iGZ_ z<#BjcZ4z(Kxmxz7^w2k%E6%e|{N$)PZ|>vS%bd}TS16XOhxH_h`J2o<9>#o5p?}_> z_iJS(oi5{|Dd>jj+<)Xf&(uB4d%?#R`UkS>%Sy7o;A^`G{df$09fys|TqhW>Pcw&S zc(VGLH^qKzfra>Tl`J+|F3lg)CTyg+>^1L69oJt5p4B~bgI@7wPQM=<=vqY#i5jD2 zU6OH;zj;5K&Z=rX4f0I)O(?Ew1M}@C*oC6ZUFiv-rM1&0FR7h2FWGhF z`X$D#H}Sa}oj~8;N3V`CK#Xs3}D5k6-{MN)L2`zb?&Fl z41JGs#0$e2cj@|DwMO%v!Pt3y($l>m%_naj|AE(28BgDMY%S-ens@XOTLQaNs;R#e z@;)(rpF9tHY#L`oR`Xx|hPt3)Y0JJO+ktHR%ZPKZy1|MUt9#`wdb!Pd21kyM9ZiVA z!JXyXy`x*NDmqfOBaWT8)@c8-&TtnhZYui)QyQ9E>xQ}a2$#-Ca_!j(Pk2VvU-d`E z@-w<)JH^j=Wh?f?(JIa^Ah_)3`_Z%Mucc>a zhvLIrdsL?MaGjml19iMvl2>p_toDupyv^AK^`o7VbbL5+4)4q$(zh=Kv z4xYZ>x6|)JkJWEsC-p(NO8x!@{cfkaIJ=vIuk2UV6>;ES|K>x2W?@T>;|6kni zjDKe6{Dl5bPU!y?cK<(is{VI2oSyIh#dRFt_YnKZ{At z{2aJ^GrrbMb2x{Jo-@HUw!iWUY|1*5dXBMYYid?NJ`#7LkKTs8JtF%kc0>8|3QPU? zP1UbB%o(9)_}&cG$itr|=1D59L-ma=AFBOHZay!QPKWKe7wv8vtPWoknn*zE$a zkkuaP#^XX2ZeuNbQ5n_v-72=3vo~MOxFq`SWZ)l=Saun>LwU-;n@&8m1qpc^pMu2t zU9?;G6{v06r)wuJn(}9%C&?$LA|d})`z&L#+dD`85dQQBTe;Ky39pf}jXT<|46<({ z8hGz{zRk-X(YP<>wnf+nt^~{Zxw}`k9{B`^@AY&Qvi_QOV`x)3LO9dcUqk)=4Oab5 zp9>P|mp?+S5qtV-X!8iTdOf}xk?Hsx%+GC$O_8mMSk%yT>@B%%b^Ny&T2EjP-M}`u zma*)-D!1)XUc+|XLmL!(SMRHjFYx{nVlZxT`@4c4 z&25vP^rrGc>`Y_(i^+$rylW@%l(#bGvo+52L$q{(rMqofI{r=X>>V0E`8LVF<4@Gp znVK1J_|Xlox_M7Nb8cH7*k#qE+_pU8{9rrYGx==%IW`#E)rU0N z;@x23O^vT&`>!W|&p$GzYmDrKW@LjrrvNwBt{k@FWHE%E< zIo~W9c@bqyoYLI-i3B=pPVR>eok!wN9hgd6c~AE0iHw=%Z6F79 zrrOK*K2tW(PTKG19&hx=h5NB3Mxmu_wq+eFsW&S$)vh-$prtOdafVdsW5fjF(KJzYWa`3v;7BrKSbZ< z|53$z&&k%s+>@StgJ=f5?t*S!)&%*7>fWFj`oh^71KtxIls|d__YtRYhggv-n8uix zV?mkMG8QVguj8`dZ04%!R2lV*OJ&-)fa=oN_^9I=Z0ye1MBP=f2>j6tZ}c$-s*o{# z&~^*sbKpx?I?)F`oiXC9%u}*6K7u_}`TDWJN8!O3^wYR#OrjUK zgOWF@Zvs3J!EPQNW^`3^PUa9id9eSoU>0RGJYtPasXaE&*mbHt^K1(KYqg9|bGd8# zwH-#wD%D|+&t}e^XnYRx?ARD_7r=gZZlJmGdcsqB`whmZz#gLz;}YRN(d$vZ`?Mw} z)qm>%{QZ-OzP9gB&OvxcXJ8Jq7y1?675|LjJ;@p3L|&D)q>K1>{x$az8#iM?mw66m z>J43O^Wc{y?1zoN^3r`@P?;Lm|Kx!sdu#0);qi)3}lRT5}U_NuNhB+X)c9`*OU>(+3 zKxZwieoxuN;4}LS-%y9_EY0-cLHsXuo-kE>`j2Z{`ze1n_8jrkoi~Kqp1d;Db{=(~ zXVfyL&7$v%m_<%%E}&D?YGvR5+X2a{^r16}Ol z=jTmr2{*a%gW>MN>x_Z#a#o0alLyM{dCuCSJ;uj)cEw%XuZ6#r);`%E64$@-cVw^0 z47JnWqbI~Gwfr<(p}IU{kMfm+U!GxX){$m_u@2Bz=KR9D%->^7+WN8gz6Rc^#@42C z9a~8ZTgg#7PUjs*z;$3b{r_9;t`lz5{?8a}JR8_Yd4#>C-?L__&IW!r@>_NSy~Ca@ z_hA~L8lEpQpG)p%g|_otdf$od%V+)xXKC$na8{H)J9Bm`vMr18OzeXTzEGYT@;EVT zUrorPn6=^o^|O~VY;m{M_cEJLmCuRG{L6%Voi+~HYGbG3X`ylunp0n^dzO#xc?#$1-66mVAZ{qWWvQ2zWo-+LL z9elnlAyBKVOx_P@l$E_}ovK z!sjZ_!R7v@#?rE;rqar$q?q=5guf4=BhDUq9r&C*=F{PG=<49}N5JR8=EBXw=5wHT zE!bH$9%1yzWbObJPDh{6+3aH&oid^u%YwNzu3(lk4yVEA)iyrYxp@bp;|ptIbdAjb zI*-Pth_Mk?KEON>e%5)R4XnR|i?~DL5sgi5Ca;4nGQ;YyZs}m)y{JXz6BLUP`FT)CX*AUXL9_*u0rK zs@Uh#Idoz2dhUy8;NFPl#-vy^xIBXY+J44o)mhiY)TbeAJ~s52iOo|@Y##jY!sgIB zYRjHu*c{nzV)KOc`GEvFm^4qs=FF!6>3y*|GR?&1tig%ce8qdp{%^(RkDrLmx!?Ak z6S4XK<-7~=>EB7j=0D@vKiz(6Y<}Ht3!6Vff6oY;GcM~$$6<5x_umONKcRglHivh# zZaEmsoiMgrk!vP4Pw0b*&B;?k9tWGh3!R+#eOhd8=X0?68wvS3Z47co*t|lv^EC9d z;pl54(A&;Je;bMId=&m(Lw0k;f zsoIZxy@MpXR4`9^lx*hdp*#L0e2xx`zO$U~@_9^R9UbssKW`)^DK@J?bgGhbjEg#C zJ0H)vRS&lF>$%VT98X{(y5=Fz*x~{F>TbhK~;ES6@r0&l$tS z@-5r>ke*dtVC8rC=C*|V;+sTl{_mV2tn_4W)A}e|`5jrg0qmz&MzHtEZWm6mZRC8P z4P7dIi5MK4+@zs>fol`$5nY7Aub_X8tXs0T56m^5k=?7AJ5ytmEj#&s=p#8ckToVC zpY0}SH<3Imn~d!-)~WhoTOO;;&I}mIM%MssThBW>6EW6)M|PDZ^r6AM<*}m7%z$j- zdM6)yiS|O885gzN!Gkr>w;uYc-Ojy7=Own=)?cHnArtTk*@BMz2z&SrpG|)gxs#O{ z*nmwtk9G(HMB(c`#?qUaOFQF_6=4(iCpSE{fmo~qbN$a?2YGTc?{}PUEZhYhUT?B& z;D3bQF0$?4;?0Tu@r9qzI>tMqQziGNMxfJS@g+9!ccImO?j|_G8W?wH^zWj7=R$`K z^u3mQ0A7aAW&3uSHt$^C%{AZM%)3prmCJ=Q^p0pI`}XtLyp^{ob8JBG$ky%9trD6A zp`AlF@ulD9D@SMi1GI2ti=#8j_k2BctATD4`-kZEcK?xe2WjIb?AAkc%Y<&6zdQ-u zHp{;KQTEiZX=6_-jw37F+y!s|yS8X(jYqC&+x`f1{YTOGx=iMKuWb1IZXDJ=n}D~3)PcC_oDV;y6;1^QoqqhrG!f6PXD ze*z6PXE>Mq)F6FT>>}B(9|0HZ_YLHYF(*I6yqG-_Jci6On6tvk!r@`;GKXlR&S2;s zQQ0rIur>(mIkwR+C)OoC2N!D(>RQTdhA*m`uvhb4bIrhZbDMiypxJ#x>>;;nyZTTK z9&WO2q0cbRwfygGFt$I%_ruUlb72q~>fLf-V%nL;9V<(r%MlX3gP}g!cO=D%_jGt; zc~CUgog%xZlm+{t?|5i^Bn8ZWF?6Q9mC$)L{!92VnQf4bx)xfmf>*D#ZPN~|HP1D+ zQRu{e#zMbnhCitG4f>&B7(DLm9b913LO$%W6RYk%#`;aLm^lvUCr9X$?9}r6)!2#l zSD3UGS#gN^c29Ac^~v_Tm2qe=$6%HoPLdk#zy1O4*tCw`|wuAwB!st=<;3N;yuuZ?rU1qDWOP6G)1*A_zi3uxP^=x9o z_QUgiazycL;I#5hQ9I2gDac^gB<=T924GyV#B z;K&ZGNs15P*rzp)_mQ@ae%Q26%jZqD=^Ex!gY44CA>I4ZkWk*U?JnQiSnhnD@> z!ZRIx7QS`CD`$jnq5C?LgKy!Pg?E|1EnJXi+n$jXr?oxH=DPI{ckTG?&J{aMyK`pN zwhh>lAHk-~857&?oQ>Ui%rUz&{_nQkIUBpPo?CY3mmItE32iHr-5H)}0OL3qW$p>% zXJXrg_UFs)OrDwqT=a>AJPt0B-Pwg6dYs+a&gWp;e@MvJY2%?Y!nQr~(@lm4hQSLd z@PrrM@PTbp(ZM{d&qMfDc6c{&P~;O*z&dVWTJ}>f9Ky6qCa`xi+CPYV81&iq3FiHGVhO_o{m3^bNm-k!T!vp#+k9Oqq z|69C2vizH^sxyyvAlI_)603k`mFltVORI`rL_4x$}FP1>S6A#2J)1<>ZecSJ^zUM>3O^({9op) zpI)Q9nf22b@vI`5^ZjSnPcKjQbbSxm$HnQyjZ7+DiF}N~_t~S3i#)b&Fu~*6v*=Ua zwg%}2tR?ldF`xdG+jkyCOnNLjC(36Y?bQ88sjk#H#A%;Xg*=@-s=>S`vvu^UR;}aG zO~$w^%sM^}bf!=J$)IFEak%1EOBWz1FW4^*P($fqPi8Bx~r zKCnR`YdknNtzW*l2DDS2B4n}hxm;Twy9wH?79PG@_jRWAH-HIySSzYrWBUE%G2czz z@>ntN_>tXx$ln0%(YsBoE4sVh!oAX|(nEF8BkStHy)JO9LH^q8F#!kno``vccPH@P z;xWWr@ffzhM;87b*~R#GnEoE3cO&NtbQhBPSU6TXlhwynX5W0r^-XJzct?F(de#4F zodaeqne{Mz^Yxe6eOr(IRZZLU&JwVu@(2$fp>O%Tv&!tBuYWQ9)431}pIZH!MgP{4 zCllN`)IZ@<&WxRa=_l~cF77(Bu<3-*#JA!Lhf$uTf9m{@CI5s=UuUmq1>^5y&N0us z?qi-TA(g|I!l!=tQus8_XPCHkK6&1P4)FqaP_h3vf>GaOJ$f7cHSRjA-+(6`SaEY~ zJHGO7dCm?^a2tC@xB~cRkLY)!Z;WKU-vh=P1@79*p7}T2BLlaP_Hgb}J{n;@dp+IL zds$x%!x(fC-@-NA7`Te_5f?TZEu(}3xf8ygb$ zIbVRET=m_h2C)EoJ)=V5G%yxz>h;u5cN?kPx##LH^KyTk*XZ(tW6O-|j~MmbRZvfi zNBH!QZho42|7+cG<*}<|C08648C6KJ}Zz1pVyF-*U#q$(%ZL9mht~GY5NAy+UEtJ*@x@whwH34&)<)SPPWcsLs=)=+W*9L_PcNV?_OuWNdNv8>+DrKKU`-& zTxU5uck*@iacj?MXr0Z+_n&q4@gaSDOsJ4&&)@~y-FbJwR&|M7qK`jkum{ub-g?copgrw{d~ zGhd&!b0+4*_31x(wqn`I*QZ-{S?kj;;NQ4M_B}T?QV+J$By6V1*er*!kCqbjwU?W5 zNym1U1*iIq2M(4Ow2ZIz2fe%R-eC~iNB650<`XXx9|E^&&&~qeCw(QC6#QHV-o|Z3g7BSxAf}Sqkar3T+JW1qDhMvQMW82G2 zdX9sJ4n0je9;07ws7m`L?A;&1w_EKN{k{VI^4LSpwdr>c^m~~&NEZEaE&4$l(eKg( z`mIc$-|f(^Ie~r;L5J!D`aNXRuhyhru1PG5>9oW5K}pJvjx3i?Q_wv}br)vfr{ z4jl?ahtu$t;_c`R)K=o%?q_ddAO3^Q-zbYI22bx|;*_!1FoJuEWM6MjGdA5$%&5Av zjDbv_@#K<6{J}f$;ka|r%wQ^fX!74iBRGz}tG(~ScbnbW{q5|{j3u7=kIRjgyU#HO za_$*t@>B^lfiBx$IU0X*A~fm5pSp^;I^wAfl$!@l7TCNny<=_=-^hVy@vpe&Emu%} zAoYyR^R(faCeC~_J`XcC<7mfJ=7D(aAoVeB+rI*@?WDX;_&TxtFtL{}waXvm?3?0C z9(rwvPszVMn>e@SjL(UA#jocjVP7Q8WVd$D|x@L{8kwdY%Ns-Bon+83`aHU`><;nVRxJRhUJ)A4#PJiZxTZpTMx z+)WnWdq*KN;C0bS|8?W5HM?V`8GCSmz0{vT&wFTJmQ7FX)ry`kLlfPzeg|VFnij&x zqG>*3mQVjh(?9LBV&0eG2fx|v>ThKHeIx3xs+{5Z5|99xBIVWDe4kT8n(w*qHw#uZ!%l8I(T|W5eBi=Gc_N>*|~2d*awMif0qXW&^+L;n_O7Z~6Av z>|_oVGA`{CbJ`SRqk|Y5)r`sY_L$@(jEUwdcSM+DqOzSac}is`$gh8*j(U4M)Sn1r zqBc6TeCjw_UIsm8LYE5YQx2VokG1mubt+C$A{}#}W4y_|{U|;|sfK*xTrEMvc(G{D z^p-T}wbR4eH^~#6UE~i|U%6#^CHuvCo|jaPU!uXekfh)eo<$4XB|+8*_W3yn`_HA- zKe>D`TA)~rE<0wtI~eJ~9!kvBaD_1#ndA!gUSX^~I@doy{Z{OMyB&#bP~ASe9jST# zU>9bYFxoG^Y&z zi`Bh18-*Lr@|6xhE6w=mIm=wWR3G;RY$PW2hAieG@!8z)x!R|;c{7bb)(!Yj+ikn# zaQsPwSj)l)FH!%5B*mB+7plSk$(onhq0J?p-y~gbtkv^hFn5E@X`P2@K%QzYW?bf4 zt2O3n>I-uII86JD6;G9Jg&uL<>tro=ao(wYkVm0u69~J5$U1-yv$gu_{FW{PkjGj`~7_OrxV}*Iq%C~ z;TtEsf4@^ceNBA7oA=fCi`5rL0ZsU%LIG!~_-{SF9+kY~Ejpk0Bx_rJv@Ny9 zA4}`?$D&{c-c&;2Vdh7)A~{y{ z6bkvW<2qWbZ<#| zXtq)RQuA4t#Sk@nBaCavVR^PBJRR7R+s^50|}oI8DlBj4C-#qf0Q=((Vm zIJ-Po{pYDY-Y7a!Cj#vpvBr$qPT zXgmzgyMWy}E2{X;?vU}D?&-BWkK+#?+2tzH{XpF3Q4;ZRk4_G0GU-y%0@7mAa#DcQ zM%qZ~A?+aTA{{2BdB{haLaHDw@RU^gDIcGfI59%POhRiu@qb)+A< zRz!X{;x5HFl#GwFr0E(mnkojlDoobmvDuX;+0{Ez zeo0CESJs6eQ540L*Du1jrVZR!y4LhV>;L&0}PP~rpgLx zd^OIx-zXX%X0FLPQx&;0sU(lFU81q=NEsUY0>i`-@8YK#Wy~Dkpy)n#Nz~&hi86N4 z$)rn3j9qjwX*nrCY9nnV^^kUuc99N~(vrwWnnJ1|El4VvtuepG7%&w2-id-;Bl z@1k2DbJ&kx-W(tDWO;pQ-*Q*19)7uxa=}6+mAr#oEeS7gEDdv4RNrz>EK=E;!YkjZ!cqh6Fid5-43_Wrw1omI-u^_A@(md?PI2J% zUk9>C??LC{vE1QwT>or&-AVw zv2KEfYr0E&iM8JA@t0ie@;{;fB2BK6cGimxd+S-_@K@zMF1B3Dx>llcRK`NyQ>@@{ zdQWL@diQkw?(OiGoGfn+d7Jm%vqLenGBb(K?%|wJxob~1<SRT*@!w|spi6LeN1O#UBNSTdsu{?-^ChBmXH_vMoRXD%aN{2wSI9*-}x zWW;lS;O>CGf{a+f{<~yEqI_7AARjcp9r-|P=;P!=E&oLsuRP>Kku4vhwtQGcnZ*BQ zZ5)yf$k3R{rv*duA=>f&@?j=({J8n^0p!Ey;gK_y4=(uVMEP(8I&0pYiF~+*xp^}A zu>PI*%7-@2S)Pe}c$NAc`H=e7d*wqZZI*m^$!_N~exJ(r5N}G^?j??P@xS_mwO((V z&S~ri|44rPG0hX~<=j>uI-|~vNoUm^g5e5JOD~^pbmz~H0)PI>72J1=AHDLOmyYmX z9rj?b%HuVRiPqr5tSiFj^3jhM*IG^t#i_)n#(lkDJ=xxb5PnXuMLQh6OaopA- zuX1bL!JHegrR#sSoji~5{9@W3qun|qSWR0aZ=iE>j%koKRH64OHcGf41uQ%+bOUE% z2KqVU#ae-m-!kwvIBL(YN@s9)>HvMIzqEcjHp2m(H+c6I)Ovo1&D*`Q#Ay>t)Qi#@M4fOlR}I;;heUGFl`@`}v{JhIt_?_cZOsvR-W!%@;fPeYi5&nUGFt6@UnCD3gG;pS* z!RP9li`~9~_jO)Sc|Jm(x%|)XmOs+BF!lCg1NHQAmgzM8h(bs8p^qdiP*0tHeD>A8 zDtx}{u@C6($UL4;ZYYaQPBR8d7IW7k`XJ}#LjBOE*fWlMKz!SlaYx=5&Us8N<350U zwzZ|f6NkWU{TGY~#xFQ4xB$BC`|YrxY0G8YoOL{cjZrb)!>o zK;LzD?0R=jf0(spKhLfH<%D{Ee`H+@p2{0#JHpuPcJtfOKjKdhL;n~x zgh7{?`p1hyy2r?1q#zlcfmA`djaiE19vYyrh`6hesJt z)}wRCe^?l_-qtx9Y@MSKokRLYg9m-XaCJ3;J%vFVJbnv&)&t3V z10E8+>%o)a`DWIPLgse^*btdhQptbe^skkQ*YsZ}|2gmWdcIyNoDp90&!zRkl1=xP z9zZwRIxH&?-Df-z42AcOfe&N@swFO``l7Ko@G7#I{SKYOm3$iOH(CyOMg-I0!}xMz zK=zeOsmF?WXWe_VoN@jd`M9^SW$G<6g0FEdeCoZfSU3E0*B|PF>#&EfONl)#`6s)y zWZA2{U(KDZiiNxzUNH3%%8wU}2&%8W$he)zIGvk5usk&ut)Q>VSCuxT8C~I&imu2? z_F`y9q$#PSR{bU}Pk7(+r47X9>79hV;hV-lq$8=M9{Xa$ny;7kGB?HNcYvWKlVzXv zOTMM~2X@;3HNemB9vl&j+-VF{s_Y6+$-n6C8S=3va8JRh?Xh{hFI}RIIcJ{X?HpXE zGt~|zZsj@msb)wgm(5(yd!hF?dG2-IL)HiQEnIBrkzhkJ%`Pm*lK;A!Ob zK|lD8w$I!ZUni`p=L@*YNbMa1UuN6S&a*#{VR7>O^sS@orqJe(^51jFapjea)u+z< z>+?tE{LBd@Q;wRyP>nX#` zPu=?&=lnO_Yt@I`>#>QjZszEdc0b8HK$aADy33w$^c-R7HAhmWs{J~f-bW)^pTf*tjp$D-3F7}sPgf5`}A{FkEdUSyX zM;G9|NyX>_1!c!{flu?E=o()0Q_B5Wsebo*%8+62%{xYUdxrAf&byW#@gLN^wN$@* zJ5HY0XVyy`V`4~YPXQZb%aap>ZSR6tI^7dqm@tC7S>b!>1G<0yC)XWar`W~B=r#Y7 zP07+NtoxsiUI#vH@|d=L=@u#{jC_Amya%SOWV}??9~l#!k-b1;;lciZEInFvHoD?y z#v?r_T%++QCdD63HszdbG|_Z04|fF1)+8H5?| zutOZPAz_DbY)FyCd|yez4iUi)5&0phhlCx%v@e0#;**gzjKB6D;&ZVv+(>F7ttUN8 z`Yman3mel&*_a-W_gglm@4o^+Be%jSmv>!4Uo4x$EZgQV)3!NWX4@QOW01|E!j$)n zw(-xhNZp*23QG`st=V z?s2tTUgX%!W(AKE1!^33~_Q&Ao&Cd%@@I2{leM78Wvwr`k8jX6|dfwe}5i**CcUP#$z+ z@9G_U&wzWztv!P`I1A_@77Ak=D&&9d7sS~+h*p5DUF%xotcg+R1y8kTu0}^PZ?AN< zc*nY0%(2p#)r~agd4xG#$?y22QL-^U9$7ccv@b?(G_ZFog^H0DQPZAIBq$q zi6k7ik@PG{IBpkdAISq&%OOoBT}oO&T1;AQnUR-{U!2-tHq_yN$wWSZ}ZuW?iRP6JxZ(`^Bw4b zUD^C^lFRzhvPZoMRa8%xRe365Z$x`Uc~V7d4#QBL3a?s4v*R*l5}RXqqWc zVF8rtsa}vWoAfY=vLKD~-Xv zUF^xM}t7;Jd9%X<5@Mu$6$mT@mxceg42j(3u`&4;cl zd7=0)xjuLg*;tK?+(3#KcuH!8ne_~r8*X~8v{p7*;>Xlrqpd;qRxkfrX*F`Vc6oA4 z{H*n*lJW7c!RCj}whY`*gDqEUi^-mBjC)6%l^rqUX0f04yWC7mh* zyy|DoDHA4zcAB5EiN1(^Y3m8{yqk7zwdJ{K+ojF^Can+1b33nO`n&LrWUwQ5ABLw@ zZoDV;w3t;GQ+pHpkj27Q>=AKCsH-J~^GcHa(gj~Nj7{dfZw0c28=+=o`@keW_QkQG zI@JT+|K;P7pV^_yXoqmh`N$Hz8>WrLZyq)8AT6?=X$?_b`roky%kFzz-|aP|n|0!! zs3Wm&i}?MtX$Q^>JrH%Ttv$B3j0yGdUp09?t9F5{H}iQiETZ*A;~6i2$Ky$+%+gvW zTq1d8?t6hlghxy)l5WW@6OVvP{wA1Y7W3fDu*d@r776?p{roFok+RtFSS0=du*fKE zhZ>_l2a8+|&%7TNnG1g=Vvz^?kH;e4f?wYci~Jf|orp!I+Whhh(Ge^%Mf`HYzGy9T zMEs&X$;h3a63J)bhm-7)J}&+kvQt=lq<@qB(W&B(l_wI{o zt+FtxFso&wV9&$GtQoRZ7C+6MNt$!cSXYB5s*zKYt&;s0lkh75cOs|22=YCWjQTnJ zr9D#ZjcSk7iG}3IpqHS%##pq~-o<#vSoH~Oj$?fF{5OU%HL-5LB`4Vb$q47SoNRmad@SZ%<2;Ex5oE_?t^BTdvG%t-)6?Lo-qwl zRt=x{rXcfNF^#eGlV0s%+WJX^HB++G*~jdaeyugJz_MYP`x*u8W3s2Iy-e-%X$=_5 zyzfllqk8zLow_=0KGOc+iF=viBjqhIdFj)P=|aX9J!a)q?13GxzkI^xC)4IYz0G|` zS(B`N8S&KDIa99xh_7?XJ;(omu2YHaA=y@I>om{tOgyOH;+uAlrn;;4krb-fDjivQ+nEPim!u!Z z(2oaKe(F6s@^=|?$t*`lemiQdOQMN*>`l(qz2CZYKK!G-Y@4T$WtpKCo{6_6nY@)5 zx}VQe?bkL_m&sp$raY5wD!ugYNuGTg{%SY*YgU)3lbyn^W9&tK&U0wZl5fv@eLFtO z-bU=>=mH*Vz6!G%_|SQ=OKSe=_b;id8=lw-PdM^Ua!PpCvBj8jPx21AC!369UZMEU z_T4xp^E{TH$Ga~LLl=6l{Cm~psjE%j3HeZ*%70>{%~xutaI(|Z4%(`+)wZR~8!tSz z03I{3Hf^2{|2aNMpT61hFX{xpZ)FZd_!K5SL>c0(2l&+UTK0;%`MsLo`hPEZh802{HEuraZd|etAE6 zb}MowQJy^;IbNRqi1WhlC(jN+%M<0<4K~m16P=N7pXK){?P?W1)2^0-U2QyewUyY_ z4thMr*JD>(iCspFfRFEz7j2W!W~h@z~U^b8Koa%BHqR=NoLB+GyzYIc#dO!(&r>Q8u;L zWK&~}^12>sjbDoX2}Z{DV%gNPhiqz!>m?Zzc{-^i5>GK>f7!P32jU%G6FZppa^_*J z-orL<%#ZRqzAq!m2EK;WL6Qx88|f7iw(N+9a??o#q)SP2N!O8 z&)g5i9{wMsU8FcE2fNx-(gOF2LTqa0eA;N?(bs0g;d{|LM!CBTV#aBItc^R16@fBQV0KUgyxL1x9lS=(WiN~ne-nd zjl-k~K`=?n^ZK6V8i>G~@q@;|z8oTqGTz}C*t$IKlJIqWqEBc~wf9cG_h2Vm!)HfQ zN%#kRVh8Qr#^>T;C9=E84%e6B8mOUO(;l`srDbPNN=rkTvGySL7}>3k9OMqaT{i^d z>}{Ghv0X;Xr+;DD#0Ih79A>{KatE>Nq2st3BRC$LShbD4F>s@$j03Or%mj>Bf;jf=?C%Aaa^bxt!+osstnef(Fcq_6Co`ctF zg|*)B4=hJ6M0S8V^!vB|fm`@38{o71;+s^y`JA$r@LW1ooPCnh?YTR)gC5ou+kW|g z?3cf_eXZqNfX%?NU*emj-_6t=+vmrAIVLn;?V*iM`{oX{Z3JzhdvzzyNBNV=ekwZX zKO>pg^|YsPSWYkj|#wSEO_z1DWE^{uS+ zT1O5xxm#jAu9p8|oj-KieY0^Vtnp*bHGa!KTl;2$J2+yA4yiKOL#%J1V{5aP5 z&z^FPAIrGB0PW?+S7@*Cn~&|AJ=hx8I+8+aGFrGK;GM*MGwqW}23YoH_P650t#v*P z9KigKcZ?WX=ND)mF`kPP*623Av*t#gCG8;XBJCrkQC1FVGO2>JfV7yjk`y4dk$y<( zA?--E*7za{N+uZTQ>-&23G>G$;J4%T@5p2EWt&RV3} zHbu96*1~Q1J@vXRzo(sU+onjoRcp^HE7ZZ=Ws${3%WR!jWREK{39N$*^&&&}6?oC3 zI5($$Px8q&|A6FTKJsn}v@9x{)MBuHN7>Jh!W$vp6VG2u60M@TLkoV1zv2#RPwfyi zJaioxf-wo-XbfsU=g=)YyA!_=)_L~12Ze_Y1$efG_u5#S*YnJiTyp49p8bIIH19pj zvt2yv;rBMu4&M7M&w5y^3zCD!*60q!F?O|loBic#d!04#r905WI`w7jqhDs9pXa@- zrH6KDUA?!|#h#LUvDQN0_GIQLa#4FzUN7==F7wqOo;8>Wnhk7ajS}wbq_66Wc!~Xh zu1J&R!_*5+gttEdhSL0Y=5X~1c95O+ds=(LoMnkriC^6%RmdpiXPzR5XEJXqn7`%B zW1U0&nRyP?k->|Y<6h>0`I|m|j^Bwg`O67s0%X^9{FTCt&-ewF-nt21knKjc6U}$Y zGVSw87KPc<+XYS5A$!!O5bvg1^RC#(XA3f4d31m4{jVQgr!rRC&t#KM?0>zzzf_Nm z`Xy!FE_nuhs0ST6D|8`ptD67*ga7pVWBfikGBWL`C=(>CBJ; zUUhrxr~Aej*iJb=@N1n}c7-0AX!%0EjE@{=!?&{@J-OBP(d?$q?^B0-A!TFOs(ylT z_Rr^zi)*;wHKii%XWFcL z$MFG-;Qu3-zRR=9Mt3h~`1t;g4Eh@zCtL5W_G9DEre8Dw09GE&EIj4uwv__-ya3e#ApW&f?L)15$%u*Bd~~= zdg&C;;Y0W+@TwdDywN`j@Kc)S!A=b<_tCffbB6%SYGSKJGtyDY)6p4Ip?l)2(J6yV z3w>+M^?oyzxsPM+iG9c~dJpm2&GeB+zH|9Oscp5Z_Ir2Rar^6Nd%lNwyHw)C;%!&b zuJ519N~aDo7OsW1Zn=;DUCH&+9;>)3*R|&HniS%k7xWJ-;{M;RiLJitPQUqW*4~bqFjxE3rU$H<0niO1(Qs%IO*dgxi zgRl0}Z{Gm+wN0X9cR+F3e&nq~??N+P_$hGYUwTHqoXI5U1P{2IQR^7Y>1 zj|PCf+Bm{ry)Qnnzv~}(knf0Lip#>(;QM;_xBlq8@ozf$JApRO%p0y4O0^;UN_H;h zy>E{yH#3P-l}w{v!2$6`##&e4>aS`J8Np+cd+3(olX9;DxkvqZ)wU+D_szQ{`%b?n z`6nBc+H0phwe#jv;DR<)59VmRO`Fcrg4bB%P7nSof4$bYPswqO*Dze0?F}e zX!_fG%gj%b+kV>nIJrH^8v7|Zo*1wB#`kPLv(>bb7#~dSoz;tS*eA(XAHH#5c^>ao z!&}rJu<+)@faY0!2v+62iS1|ezF@wLzqNxadUbYc!y`3#HFMQ7;YTs8Cx+zqo~f4$ zmliC@Ip8Hv|4F=}@4NZ#+fP+|7_Zgr`ySIe9>**5aB$GGi*K&G%*vmViEgmPozW#Y zzc@Q{jrXs9GY45LTD@+85uowO@0wS5f7CtRHAchB zlU)tlCc7JcH8~qNxZrbR0KRSwzvh1XWVZ*KUIQ_dO`f(!+9j{VF2xDePC%cAkBtFk z*#3AwrMxZFf?pguZs4kT~dG;~yV$@qa~(FsG#i1%>mOg5MW+_Vl~64#Ng zgQm2uA#($dG0#fq$e}4aH(5G5QbzD+z)CdL`;Nih-p-%YJJ&D|rx2?_9)`Sh;{bc) z4c>zBRxXNF?()q(7xky8sWFH>$yDU8Uw;P~2NWlVO>3uj>)3$oEXCMc?CZ}3yjb z&Y@XXLWk2$@4c>4;2rqNTY@`&&A>h7$J4-3!-FNj)CX*D0ft}i=a1HxK_9G-GsqJ{ zeD)@6h!)(64$UYH8$%~(o<)p52K?{?HFdw%7&@^iX=Z7-|Ii6V1IeM~z_if|OdGBI z9{-#06fC8K7HeFE9`@ZX;C2d*iaibkJ8w06N#JSOV-Ffj1_4JOaFm`ZID+eiC5`0p z0DfNA{W&(=&;x-R{>dARhVeQ}*;#Jn2WkegW)KH+wzVo78rC`ELH0dIkdM+0dZA;T zxhUV6=mOfca-AvO0X=_XktGu|Et!~a$wWJjDfU`i$4BP9LvF5@wf-UNOk~{~$hyO$ z{88H2C|hTQTyL*)ul4&k_P)s8?W7+ny!+3;#kU0+fF9JA%)Y{xp4Ad2=SV&^lQ3XY z-`m*eqm9lIYLOTF*3{C*?X;noq#8@7Ne$ji8|tTyb{en|w9?lK-U%{?#C|UGV%<-D@}ey4yA3Kf3+RC%Oxk9qyKH(Eg|I@2*+;z1`K` z7rPth{Bw6hU~hNhu-CfVpAB_4J`=It3H3Ga?kH>8-5%V~-T0r+b?1NP)$Xmg?CxIs z&EwsTheOsov2Dh#6Y#KX2Swzal3hS+Nr#u3f1%QVTl_SLJqt0Q^3`X(D=kPiHWaj` z1b!8Z{r%oh8n`k7P31=5DfovqD#}?{Y1MRNRb;fEGdzE3#4yG+yNq%9Jl7g?f;|%b zT5&t7l@ns^JoA1S+V}19m)5z4PBhLdH(ger!vf{BQN(y8KhON;RC0;4|Wy^pj} zH1*##nH*qGvOizT{=DSeGHjkBc6g6h?C}$m^#r@BinV4s-z zW_Rd5cbnP%=WahSTHbqJStA*QUDaH{UQBk?=>_hp0-qCWFyFTohf?f zQSWt;cTMQN{%!l3D)uuqgWjn|#`N;W-oyXN*nBar!3Y7+YFx}VCaf&R6Nee!8JHO4`o(qUx} zzli^3*Q+E(?hrAbvVZh|d#z>IJPyd-5r$U%(7xGUXI-{E!f2E|BFC~v{NdkiS#>SC z$)rKOFNE>k)?B2w{1eZV^WYHIT08IL9r?PX((h2N!w+F=lD^Cw26In7+tMdRJ5KxJ z&mpvO$d*5cf>dShD+*S-+QDgJt5$;v; zTxW-QoExh4YUR=2%qXBZwbklC86L7ceoBN{cZ_4&PJ z#C*BhVw~N5+!<9buv6@04E;64y3>*Bj}Au$N!OFEN&J+Bo1f6HVmZB*ewP{?3SRVF z_mG*$uGC-(_bh$So3JNi|NKL~ttD@pW8c+2yBYecX73^$@Zo>&%hX@VH1a5sKVxAv_Y}7tq1LYU51GI(lV{Fe>IAl6+OuR#!3sb7 z6UGZaT(su+>LcW|73~}Z=c1i5Xt|2H9&|gjnrhMNTdzXL(5L9_2y@i>ARSaTTghwX zS5j@fuk+p^uK)1whWUp3>|;=Dt?CZ`0yx>UoEm(A|HDJF`#vhyZPC~L$YUdz=OP}S zz0HIhuxM3tRRn#yUIrL(LiA6r0zw(N~P%INkHy{3D~F z`keQ~XYlT5@Jh|JOnWZk`|Myz;(Op(=jqC?Dp*@_8oVPIDsO_GE&iIztaTg5Yx@gk zXV1+U9&kmUXrq^JEgGfoI^br}tOe7o;8*`Ygk$nYz;WhT;JEMiABN-WymuxX-%Nb( ze-VzEXTVW1_-uM?<{X<2C$M*pxzoEs(A9Qyq2A@hcd_m(r>Xa!{bng^+ev##g}pCZ z0$-K0mWPoAP7dEjzSZ7r26Jy`Pj&>HDo@8NN3TN3~I!(8eEWLu-Zh z)s7r+&V(G@Q~MsyHjf`)>S14=#J;E>`_BICI|s1u^qNKAB)6+;L|2F$n&LO@v$d8V zVhs$jUK2kMmEQg&=L7QjP~OcI{mWn62n^WUER-yAA#WsWG9Ev^`goTuYmOmnwxCx? z)?CkgE=_i1O|B(twt#bk+{{tjN3n7s++~5VYbNqO0)8Ba>!d|TWE`pK%&-%IxS!*0mO%jh+0_Q7C&OMIz z&c7VkUj`1QVH>GHR@?Efy|iboNx(T2-~Zf-tkIej<(YjiJ6Ov-?c;5^njQQK*Dm^$ zymaPtf^lhW`U+!L{!Gqm!TZ_k9plfB-fP>hiuzsNyKl5%%Fbv&>#g8x`S;NakyE4i zUopoW9wV@UwNK|c&e~Qs%$TEh$ZLsB!5=L`wmytqQhq}1$juC`QOIrQdy+0h-Glt* zkK*mfZc#AApw@Fbw3QiD?v-ZtVYSf3W9-rLT-jaF$ecd#q&->*c*vs7KY_F3tO1>) z4NOr++I;fChQXpi{WCs%P!LCVR#AID~v@#SfzXJlE_on02a|2u{mxz4wy={lFW zVz?1qa&k;rUF0F0^CZvbl8YwXKeI*Wh04<+94}p99ME+&xosX{K4J8TH~;fHCcYb{ z&ZhP=kFCG5X)_ae+?m2!W99S647$NjHTgW`OSg~rw9Y=ZgIq}QwdN;`S?lZry!RJq z%U)~jcYl!h9(!S}$^XGS&FC7_`F{mCI1PV;D@-a+pN2pGnfSwJOYb~Me%uJA5@ z8Lg3;ljJ}TIhMsU)>^sOFz*D;$^pvWiu$A}>K|wc|R9z@heiSH$4h`^^%CACupUatN2>Btq89pK#ifc*&#vtz( z!|b)w{6?wk3tOjDpKq83eiSv(!-w{_?8RNQ_1XWz7^i&l7*{5aapdV^T$wP&4gZxf z_G65n#zt|5jeBMKwd9VzvdlEd6)c!Ve+O=WS^BluYQcNjl`i?PtSo51kiCuQp`us% zp&{7t&0mofu?odH4Pk8=${I6_^?f+srh*&d>?}K+E$2fXH*!1)y!OK;XVp$e-}MAn zP6MwMoGq|su6XK;W(GcBnfQR+fe#qCd2lX1V0YjHCjYP1_#uS(8`?tUL+W!%pT&_#v?w9W9mc ztSd12TG3`%X>C7aTy#KL=`r5B7Cwd6Hb|e5pOO5NYWY8cZjU}4bQEIS+FO>`wo>e0tBlz>x z$5#ut&YInbygu?adI|ka_)6~!YFoP1^|UR0sgM8Boi^puUJhdn6>@Gr6WKksVM@53 zJRpq68Q(zKGO>el4z*F|1qSPq@|A1sKVj^>#6kX}@bA3{f35k(_^{_nGXnf4(|_M- zI+;Ds-@ekfx^KZi^Dtx7oHYLPnN#(3)YM>J*@jWN09-FvdkH#$@<)3DzjQN~_;{be z4w2_dIQ(M z_Y!d$#-=8FS|Uy-e*{kV4ly=fbAz>BtrSkx_Mg@E^|me?<=&mZ?<7uBz$v~-^OYkI zc;usti3VNhA+69LH1l8={3E@p8s1T^VsAg==bfA>+`_%0n&!tX|7GBbUGsqW$9Hw} zTcZ0h*!#p&%YN-UP|sZJ;jzvOlT8mgFZO@Qy_j?AIWvA}1nQW- zcu;WeWNxv-{-)+CUvR|~cQF_87_NMP@mh0&pERegvB_phd`_C@eCG8##y4a7)PUyO zG}M@LEAx7fd37JZ+{o}i~EhZxUQ~blJ*Ka_^zJs)Mg#u={e69N9gxFS2DKmWqUN2uaN8CnTN|| z%>FU+2(h+&(mZ~{Jkpp)S9~5O^SFR{+{!%a>GOem2Ibz$JRV>kE6y8~`!|h`IZS6P zX5ARZKk(%E>luG%eEiev#!QmEOKs>~-RE9>+$kr=J1kD zIhBu~%UNfGg{;G_%pG~0`J&UY_pobi>CE9Ae5sF&K_@`I_p(kMPBsFsu(~Wk)y?Np3-@(_^F<2@laQsuPoUB?TC*Y`Vk-90>90Oufbho{%^<# zhfhT7pTsBP5xp-SG2j{RU%oqA^E=5e$cHoeqyX4B^d&wSC_I(0&ViF7Z(MFh#|k$Y zJG7VHH`u|AU3csSd}$X#3wn1maDNAzuFltlzYSL>trEUk;Ztw@gh>&`C3!d1V;snr z3`gEc_7%;2>@CSVAGqiljPEJD-ve%^f)7UqSTRxwdQm6y+=iU1N6vL3=TuW=2XZcm zoEwOo+ku=Doqq%Reg--B8oc%ay!LnCasZn1k~`Jq_O(oPCwCPi@4U$G;g=1}^?%-7 zW!ya|*Fb&`uN<5knpeFzANf7|^Zp0BmwapS#c}yv9G7?hS7pQ+*7^34XUC!BkCx54Npdkt*fO6ANj4~fYV#Vo7f{ZDzm;(O^1+Q+@ln5u`{I#k9S!?fgg`}hDGO)FoUV*ItHN`B_W<#sait{yrl zMpn(ZCndKYdYFN{t1L*#b>y!XnOD1{){?)qb;XOroNMI8<#usg?s<{hm376I+;-Ml zwOPq`l7Bo~9H!rXF5ix#m@T)bxqPR|zX{SGhsSa9w!>HH@Kr|FDV*3oGadLO_P!yU zq{nfB|2gv){NY6#FT_VZf!!rhe|vy;Lg>1VUcLmldlU5X=t;d?djxxZ-mwb!FF2)_ zcUXG)mF#7tyJrL+sXW2+N^|=VV^hz}Q@&!_`wyhQUUKOl2A^6JLSvzedSpAfJ%nQm zM-7wXdam0#8{YFlY_-mBO8!DjH2V+91neuNhi1)TuUN&NaW;F$tJp)57iOt)!q_=H z*l$^RsJ==Jfplugtr_SR*VFGOt%V+9!LHJKd{e`3BHvm2R_Lmf|7U3I$PmrchF_ymwP_yp6q1 zJYT$@X8P$tmWW2Lr!V>YZ&%;gjOTJK+n(%UR{sO&pLz78_@mZ2IJ}_ym9jVA?2pdm zed%lB5oZoP+!wv;`YtOzBsFOAp8A_={Y}N+2Yc%K_=;4o*qvYX%kIW;KkjZn{APDq z<;&gGFa52%X3n2a`GF+(fP}CMcCg_oI5#Em)R{gY3yf0BKjcfLic?s5Z}p%6HP-_B z3yr{X@Ov-?efVahbhjTLkel%VAs_84*vOcRm`UZ@c=_*#wK>i?fY~vyhLqQJy)Tk^e*E>Bo3JjUUqq>Pcw~20EYC*yF#p?R}Np z^A=1Dl<~J$(-)kyC0(U;BvCG*r)zLC7cYQM;D7Vxe1!-^5F z#>UN_CjMQ@$?x<`V=tk-G3WVB?!9_>r7*3OlKSW$N6fn`QrD-LsS3WWcfqW@R+ z6}qihnAkF}DSKOl^}2!gL!O2y4V;fC7pB^~Q*<#5pK+dTww|-E@EE2SSrZ0v-hUcq zwdtjwT*KJBmUonkBC(CHX-wFJH0D>BM<|arh8k9k;tJ;D#b4CR8L!3+4mXGBUvaP@ z#^~rN>mEc;x#EOra#(es~+O3^i?^9G=CR zFod=Xv4_6H88iMCf`#Z!dyG^2E8yiJAI3IUz>*Ex6VAsjdj;}!7V~}@yDVdqyzjoi zptd9XTIMACW+;>P*{dn9_dCOl1G3+R$yFd*-UZw{n~mfbzmkoFI;Zh*-F_^#N%N^@ zT$zF$>#20QI!2Ww>`j=d$&b=%d-!UeTF_ic{&dv@R}C9 z8GKl{r;oY>+}v)_PFnDUH5bnR{{eW-`viFXZQI%5rE|CcF1#lH55nsU3Gm8IfS1;J zhn5|9JsXEt7Vuh|_rUJ5`u72(}-CI*$?p{0ez3z_ny_U{sue)|k zgVr~TCeNtXKKDx1v~>lq!7or}%OQ)dQmwO?=ck~X;1`1qy;0}5jvuG=Wck}2geDI| z$E&|+n2%UK8C{e!y2`WW zUCKV=j4sPMqgxk0qqFMUE@zw{aYlD~-lgoWeB)XxCj;`>%DYq!A3AxLHWEuiOrMo^ z$(xXO$;!C|pY^Pd$1DIR=j^OFTW4m9RZI^qQ=K2+$higbF*SG@I1}ueud#X2;lo7u zSZ9RouE2}L-U#QygY*4(3+HLUHT*p>|0VXmb{zS^xGa(1(;IO)vM8zdg_z|hm>PTt zx;KEO#v(a#$|ur3*B{Muy=(Em-c8{DRBAz;;{TFBD*Ugr-3CVne0l4X2Iu^H{K{0AAT{_^?rBboESRJRjrg3t_FtUSjh`^5?w3!^sp@}lPM5^zbW_5d zK6l2PcF>>BOfOi~x+ub#P{&jc$#Rt0!{_r=4H+L4a zUwl$0J{xcL#PvX(i64%y8Gj_MMQg^xtQk|SH6uNkMc?_X8PaEj>r?(;vfZQye*#>z zX6(0k+g?X{_Pfj;=(*)%{t*~D^z=6Wi=MOwJ96-w7OYc)d-?m1!0mU8|Ks3xv`?)9#=LhHeVFrU-j}YU zwiSnF>Bb(lpB8jvy7%2vxvEXKVb(@tR&4q%+LfPV;{4ECcgAgdJ7wGZG4j~5?a`+6 z*1zGiFFiG%KBc!7#BrmwRdP|fXf676Ew(C+Az%1mjeVZJtoy_=>wCScYvMAkvHX1ZjI6a&)ckgfyZJSynzAO z=-Ja$5O;>%sJJ5)n6PIcmR5Fo^ue9p#z}EIJvoNadm}OGIE=yX7T;vqXTr$%{Cwhp zI7=zWPYvv2FXzEVW7}g~yL`lYgX=(YJ~5`F`b}V*jJT;5t>5eyxmLZ!{SO)DesbI#X3wZ~T4z%==+4@wDh^Qb1mu9D&SHNvjeFYv zCG%JNWo&vD&GjspZbsSDS!WPK8)k3Z${9o&>wlA7`&D>TJK6Y1H8b|~YL}_?xVMQ| zS^6YrqSD$KyVj!4N7I9DaC2ykU28E!U9_GHp%Knrwj>(|4q^Z7VNT0wqZhlVQ)e-= zYw4Z{brzd5(px5AU%8q(i=EI~grDr$TduL|EUw_Wd?D{=tk`gV23`iiQx*aZ!%#$pF&0}r@AzRqF`&+EaVU1yPgnd_g)Dfe;nActK*bI>@e z`)&QnGVDX40ZDCs`o5C7iuuGuUf{!TsD^qg*oZnAi)t$tyV9twm~7QnOsBTub=ZE2 z?f5$I1RkxtJ&8F9+My5aqqEStR8ub<`=xwR8^FO_ z6DTA?PGTtosG25&r4lnG9^JEHniMPpy z15a*6-Vpm=?Il($#obn8_{rsIv@I5o&i^DH9d7gJno~TwoUv(L=vi>38NL1#kM3xP zN7I4zfO0D~e;@t^4v&gI#iy3eeBS_S2Kw9fUC}V5moeJ>>N7+4^|NZg_soTFTl%-j z-f&jF)pKIVI{4PTjk;3e+tmqti>>MKZB=I9LkWDlK(I&;rr|Sx2)ruxBGmNC^e7jV9`!VzA z1b!#^)iws=gim=##96=zVhz<69q|Sr$FQx_YFlEIRM{WoGBo^Q`=~omzly5M4kU81$pmW;##=xWKZUORs{1ClQYklZvoOR%jq;v3^ zLB^ct*H@apne40n(@$LQu;8`Gt*pYSfmHHaX+7C{lP|F7Cf}}u6I~m(4=*F$B(tlA zHR_Lp%ZM3JtPk-6*i-+s1^WL9_;9v2K2YRp{!reD{GS?D9*;8qS~?(S zeT(`TX}+Hto9ye)1#aUyIlAmY_4gjX&#W^7@8gs4v&I{HH}tFM{dfF(yYMX==pNW2 z7%6tQh3kCQ*n!|pYx(r^2CmVWP{}`)_2MUbU?$Jk@ooxwxHa|*fHVF|&CEgjh3(PU zrq__gR}JQzqXalWTVZ0QSD$b5z+>l=_YT?;?Q>YUb8mTJAPan6^5x_;Q&PPx(fLWH zbwwoHZQ4QMvz&glwei{@>6?<23ogvW8Bt;y>u&D?vk);zqxYvrDM zVu3HP33^z%z_;sC*68J_WznJmtSg3{->$$zZZ>c`FOJ7$9^-&TgT(SXeW$wYzRQRW zT81vT?@nXR!THn7X6Q4_Jal&bBx5`184=XC4fsfFjO}Um7`G}1fxj^Db;fx&G^P18 z#K)V=yeBZ`?0b^eynT~BX3;O>4U{tGdBiHc4h`4h%PM`f0Jtw^yw!|bHVg5531hE@ zj^)on99A?`!8(fGqI`kx^3Ipx`JVk(nQ#8a*c5KTrcYe9_%U~a8j_}^%lXr|08^?8g5!s+(Av8}}MnFZfO;lo6HPGmlB z40KujNcMb&xi2cuZy_Jt0m&y|u*=0<#N&(Zg1_kF06bZ1R8DLiFtfDs{UH-tS-W+X znS4IASubb5%2}v)G<%9G8fJ?h>Rk6f{(OCH?+f*Hy&3;%YQ$Jl~2 zQ)`{}QaAB@ZL(`)EA*rD5aGdV*n9U8yc70hnc4gmZ)#oXWnIyFqP=nynpOV3FuV$H z@4CJFo;}Lr7~a7c@2c(9dUstRxd)(U^qx6I^>_99;2(EC@sQ7=M;EkcxZr<{gK@qG zO@-I{Pp$_c>YmQ%@vQ25nmo_&sPJZLao`|&f9zPyf`d2Cqh-*D+7}$Y z8HdA*Pt7z(W_nxlBoFZKx8a`^Tm}5Inv8%y78{pCy!f$rUrzgy0dKRHXtmaaY->$W zyH1Swwej{_Z(=UUierMyHs%4Itu>H!G>ds0`7JaAtiyL*+FPqU62Pj5wNvY;c(f+I zUOrmjTBWtpwARY>mYlD$<^gx{T+gU4n7y1gdHZ==G9pX&SYur73hZ6(+V%WOE&)$ zT`|41wQu4C@j>`{gD?nSoKeazf)Fm7}Lb<)3gZ`d^uWM6JtwA-wLOR8Z zj8pt0T_Q$qr1FR{$A`|?j4lyEcXHN|x7d5$vmQF9Ubp6;{~bAV5ZI*0^&oU0t$n+$ zMt@l>*+QR!uXt(+bgzCD+bUh?G5T)M8gjjVb8~dSMCp54L!>M1=lQ$5x5Ed%Md!rv ziqe+<=ZXb{2(+fdQOki^CIYZ6ZD*ZB)0J;(Q|yx>R)|VL(fa&xKV#Mjk5jJ zC%2KKn0D1y6xu$<7&OnN(8x0MRzEs`qq8Z;?&P@6ro4Q>dY7fUVf$O|q0hJ+DNvtW zHxRFXV*;F|vz7np6r2t6%sOyx0M6BY114y$7EdsaHGC`nX%b&?|0FN*Y!%PKN8rbQ zpJs|)DkF!N#iTMRyyfTP@nzBNyJa=X?cL(XN+ zeXP^c@$)rj==5Q5lEIuWVa}2n()0H+=e^9glKCmNT6}Nkj8lwpc5oE^w1eBGhsd>) zfY-Tkd}ASOMpJ*G0G`a0=%S~NJq+s4;)=F^Pelt zB6LOdp*2i2dxY^9Wf>D>--{tP$jxlg2sJ4_mLIFob;OUA$PPy*EE`g0@#7!<^>lu` z=~ZGJEnduCBb}y~{o`EZ4>U5d@;3H!$csw+XR7MaZ;6*#n&EAce8YdLWYKaXFwz)V zvJ6~`e(y(CNKVv!w#=0NbT#;lur_zGHfv6j8OTH{A7B=^wPZ$oJ+Nq*F-vAVbH*5- z+L|y%aIHOV2XNFloiTdxhtc?|KKP<}cSdf@GIBtKkh%Y*F(FevYE0ifV@x-_eEOJz zj7jj2{1SYA3H~eZ0|(^No`P%^UF*7)`=YVw*gNoN+jPF}^S|y@Dh3hwSI z=C|`~-V|RZ@?`4OhFQtlD4z7fla=tHc(RiB&g97=Xz3&l-X)I$Fc!{)hX_9OFU5J* zcVI^83UB^IpKE66bp4$U4#AmtIqNd&*TBzXYm(PEJT2d2XPr$PTc&g-#+66zD+7Cn zHMKjAc=ao%c=tAZ>I9E=>OXF*T)(m8%#YdNb^P7;7MG3rK0Gz5> z6aM(i(|O%}65i<+uOI(4ww`0L@kPK!bXgRKjrJs?j-8T?6KStB4)?~WE&DToJLfl6 zzVS-VJ03@-rQ+w2j-SVow{J8T;p;Jd{TI!v@%31QugAmqc^JfJ@4?rj2VW1xXSZU5 z{cucn`WgNnsg}P-88oSw?3Q5t4wEkS@9Yi>G*q89c>tH#bmEkoh|%5 zHaPwslZd%}hW%5NeXoPFRB)-iud`3q{@j0G%-)|rA-&DspZ`>_i|=F|LYm=z5;rSEEAZUDcG)CUD!jw|kxi}Z) zJZ?%Lw7_*-dmYDa7Mbsgb|4Qm-#?-w_po00+l=vM@QbE!p*>Ir_z*6x0S}=C?Nfvc z>P$r|f&U}mBn6#TI5`}zixPSgzs?KOOzp{GN zenh=A$%$I%IK*20HDIhb0PA`pdD6K)SXF7>KFZcHJ}TedwY(?YKRh-5EjH6CeTz(Z zls;rr3o};5)8}DV@wy&;{3tcH!qnL6OL0Z_!$X!n;_;$qW}suH1s~7F*S-op9@|rN zR$25I`bf!Fy=%hSU-OIJoMs*ylWrDM7e%y?-u~U)vR!(Kfjj)yBvUncj-$bo;u5fBE39#s7EB*Zfv2U2`%r4Z4bK z^HEcmGd=9Dt8QYQro9=8Z7drZh+WEDrb1`X33aCi~uY*2xxNuQgr1)v~WC z*U|-bw@iBfmak9xzG002nyFRD*LA5gsp?QIOs z25N7)Yf|Kv+DUbcH{$lT6uZ7zTFhAU7-K$T>|~5n8Dq8Lu}=(`i0yLWR>qUZ7@PUK zqHz1;QyF6o|A(QO`N)boj6O|7+A* zVNB>e#Ppq>W7)nJ&#{~>+sf3voB>i-Rq=YRV2C+(aNZib1pE3_Z12EMc=Ix6#cqlw z!*QA{9>ji?bJJXxuVp&xU$U#LbVPwGP+Z{J6~(Cvx?{3zY?6ZE!bopbYdJSs*F@9us2whlX?8RoHJb=~c&A#~f zb-#|WKmOP6n5DoadWVybDLeQhjhps0?t{>ga4(s3YFu`nzt8cW_B%Pq8tsd>#_cw; zsVau|Eo>RuhkEDdtkIq_^(wpO+S|}%=xNSDkyFRnAB9$v)E^5)~?(ATjM_JvUf+A zyG8S3oV{&Y@Lld5f}VPyC*`4hWVtQ>_p&b+-#iSQx6_8sK^lOS){A!9+RJy_-8c4b zXB}@}eq--$t`BNmxb#%puW~POjd?|V&8_^z8W3A}@ANe$E%*!WiAFhBBX`azU)rPi z()Qg}&Uv8nD%trK#doniMl@|Yd}U6#++dt79t(1L!AnnU8(`tirwOa6DG#P=fy-wX(`fmpxI#U$fWvebj7AwXt#<~@P&a2_^ z2z{wf>8%Z{4L-pDT1o>3&UcO4>(jn$hUx4TrQ^RPd_wP)^l=^Y?x7FSisbDf*7_Jc zdy2p8SlDY{B!@KeG?~1>-hZBH78fM1nE_lnIYaKe&A>)5)V4=#a|b^A1!|DepL~mC zZxt^}p2d(c;kb+`lHPK?-^zzp#yOzI^(gbxd(koAnSFxnjjhA8TE@|@rTg8<_w0RQ z3tZ8jMaZkATq9ekC4ods1$hNTF&$Py=Ev{usYRCf%7v zo}hGU3God)caXnpXCZ&lTO;gA4&txTyDZ!EVe5#!fp6dX5oY*l)`<^{XlR?h=^rTO zeOq>?1)m;dtkSx7B(E&GzmPo*vO{ttw4Sq@3ZG?nLuRfD=Q=!;8SDd|;UV#B`t9ZV zq`X<5s1GyN{r%C0`<>E<-$pw?XO6MHhDYa+2dO`DBO{oRPi%V?eu7o3!Oswn+=O0~ zQWlkNE8Vw)H95jJ9pHH%-|T06lI{LCnL9e9{8=o$5k2w`8ea?RV8}jS@<20@o6)PV ziG=5aH*!XVIajOWy0e~rJv^uNTWh!0Z11q?EwXt%290ESIY+eCBAeHWX}kU1nC0Jd z9eFqu9}|x2mgFf!w_Npj4|tVa>|?zMF;?N$@l(7XSlV;w7uavjJv}&tIZQrIzRtg~ zk7Ybw#uH&Yb&N;3uf>m%+ptM-Myfru)>iofbuOjOD!dn2BzqOLhM7|**Imo}QN`KG z52~IvX5jZ!JZwgb^vx1vV}$3$JWrf+F@3=MEp_6HgT}LxJ2U?Lod>n5GTZ zZ^t7O%>L;ulUU1(rWtbto1^ff_A@#II>Z_fdI5Psrfipa8j}byax_#mC~)$b4)OTpQ?>|pYjJoie7PDqikyj6B$pN~boB}@`3oB+OP>ob zNG=U;Vg1Cf$4LFB$@vG`$+hHS|BWv#^9k?gxhJJG^g_cF+h(DBlzAoCGfRH_2JN%< z>ReoFc=aZ1O!58G3ci;wUW7i4rsb2vw7(A-C|#)o9O?UQ>`Q)x%#&_u$!%!)YrsIc z@1!G3ua_OgXnX~~apv&@XuA-3%9_NUgEc^UW@>N(bWjwh0}H<&O$RGa(t+mozeETB z2n{^=JZp=59OE>g`lkOq8pzREL&+7;fN(GP9R?Tqz|y&Ueqar?{fVGwxl$y}P;RjL8{`HMX^R0qy4!VUW-J-{gJE zmymHLp?iFt>(l1G_VXW_`%8Rxlk**W-2?EIYMY;GJ1gkpoq4C-qYfwc=BR!6PiF}E zz(@Lj2j72@Yw6ayFFRHUxuKZRw|I61_pC9FXqf#r*A-mj3%4?B+XVsS{Z7^QsbL&C z-c zyG=`;q9Y9Fet5O*yCfNHCdn!>Yz8b@xKH4f{Wys~INeS>b_Dw{02y^Cw% z+#ZWJ@L7!oecO5;T|2tT*0sF_ypIi{hilE_SMjmUVr{q}@pe2L_S@cScR zrnYm*Z6Ln?Gv7bVed(II|6u&v=kQyUzW*OQzc``2@6n!Qon+-$?%yA8Py3@%wF8_5 z|6lX_6+gAP3LhiO&N|rGv@m`zi@e!t|JNEn`h;&HdnD%ZV0<3Jj|BtPAC0X({#`nD z(8P7nu}26`&(hXh&VsdOg?eo_{yj4lRr3ipV1&x#`ffMH|rcx2$%2fpv^gFx?m*14Z;! ziN<&H96N5B&ThWU?*@Li@Y8-@7!#CL23@>f!NsI^yr#!L@in z{W~}pFBfq(p!1jh@%LYkzkdtY&U>PV*W&lT!hH+2^#8l~z4_d8;DCK(lW3t{NV!y~wsaSDNLcqVqk)Z%C(H zLZ9uN^SM&4Fcn|J_t9=-!5{IDN#nhAzLRg!5%A>2zvxnrwOdX3q^;{$B@ zB_F1jnq0eHf`)7HVRC%Q<-26(n#c^!h<{r{&DK#vy)7F5wkwE>{90M5##Y3+aV=*_ z`hPpVw{`e&jAVRc8K3sFIy;z-eL0fH+0?L{mP~wPUaBw-$d@3Wwd2mWmYIT^{Nc8; zpLPKc$!wjOjiK+goUIk-DEY5VTilE!5-xvA2C+?r+_#0|&mcJou zlRY;ZFZSGQyrepFyPrDR6-MBD;6!V(_I$Ba>`8?#<@HH(;gj#o{a)rCYI=FHeE5!d z{P^&*hv3~1H3Gt%qa2zw-3+-KrX0rp8zv^Jcm5U7)aB6DW!P?~5zArM&~S7IYh9;S zs&tu0;&B}gFKN!(C9i;?_HWAbe=%d$p65~iCgx>V+@)i$ss;x|JpcAJ<)3JSK8N>Y zgRaHLU42RZDQCM=KR#pQhwI13JRbO^KXV$u+{g(u-^csO@JotW`g`(^06*n9>49f@ zi3gG0R<`39akh8ib9oFJ>|;KPy)E+OV2eP1=Il~>j(i%dI*S#?u3uo&t%X*_Q)SR} zHSl(L>c`L7J`ElCSXs3e$pfu()joViw|~pK#<$LI#rSG3PcG`s2ay-^Xg^daKRo%4 zrL)&d3%aPU8d*Qh?CVdwX$s>&9$GdP&iwSQ%AO_mf3OUmHK63N5G%_2cB3!&M9a&A6wFso(!vQ%|zxEqaLnkUj6{m zb0jOi!Myy?{J{^(tk@&*2{75UMzFB>+m82`#5dLOxO^BjpXxX~L@QgwC$t;dW(0nk z;aZhAwk*b_@yXvVlX*;v%aJU`c?3CfCp_$>?UQm0{}Bh~SI|d0a!h@Uo$oi*PgyVg zNI$FSM}CswLe5__AL?fm`GDsT|K@yG!xZHAxI?pMLMJnzm+8<=CG>LzJaIWOiXJPz zNzX&T^`qWd^ju$NKDxH{d%q%nNo%~Ndt3Xvj9`RVrTloF0FBWL?+@Y~tv4En_@fma zN6*6XTztP_PU`ap{^~w{Hyf1$=vv)}&;E_SCx+zo_TA=U%x=a`?xnd&(0V`fl6O^e z$;+sCn`O;E#7{Dafan%?yp}8jBT0s{N@D!^55h<-HShw30-@Mw}H3Y>hRMe7NU)|+Ny__wIyFfz2x+=Hs3`?^rpc^n|n}s zn=#DQR+B*tW&iTFn+ChvZn+p6dOu<*-Q{if^M9k;-Bz7k*4B{hYP*Rxm-jc?@)>I@ zG$vZL=m(lS2fY3Qc_R9(OwDfbJy6!0MclvScoFl;^ANYtkk?xVy}dB@#Ol+>T5gS1 z{oX{qV~x+pHzsvf+%AK$l(o5Bt~S|^n%$f$%(@KN60bxpm7_P8Lm#S5etECrx-C4f zwS9VSi{n}6Lc$R;dzIw$T4=(#$J(<>^sy%49`c1XKP@;NoIcF`v(?c$vtIdL@bOXg z$|Fn8Ua$NWee)00E8ooblF8yj&L&URD}RprpQc{9`RsqKUik~mLopvmwGQB`S{q*n zR@0yAmA^Sn`eJ(U7}r+_ZV5SPGN1)}?QvT*Ny#HrqP4t6@&{O#PEE34?uBlA#{Aw) z-XC8#VbUwiOTMhWIPHYZ*y?6zT=cE@JFP$7^vsqO(2CY0(fWyao*4(n|MG|9j4Lhp zI^%Ngt&88=$-TsJrctv*byL&npUuI>)#xnE(7MLpjCDb}YgMyF>-fV6?!*9Q;6JFb z>pP8g3-628`!2R=eFbAyZC&x1_%e~!iH-PqBAsh4FQfB_NA%rBzB_Hbjn8i@yuU^D zgRzV0UD5a}@%O8&df*9bbo?7jE;hIW-+?zQUJ2Pb=YC8alw_gZtMkekbR5s2~iuz7@y8nBp*uQ?{s9tW61`wC0SkhoQd3i z{npkg$U@b?kZvPi_AQN3ZSNnN3QT7MMa5njIeCcmm|NL|D!-r*yo=LW74tH8KpBj9NKGnV-SQHs$rOm1v zG@$HRuVLqvv~tbN>Q5csZRRWZ^bTsjZ+9~1DPxdf?_u+K;G**apTRe4@XqD4KR{p8 zUTx?({s&jqeRI-EpD{7UnU{ed)&b9u;Kdp3lfFb<@QYo&6F(rv?0{!zN#1f};lhGl zk6+{-bpN@J`;YorFFsEj2m1L-^Ok!SUX)=BUjPkt`?!ADvv4-ovvY=(3>$6?-_QNO z5Av6OFw6)H<^Ir|;U%9-9z6DJ?Kbdk5$z5eo-_6XpFzI!VI^mK&kqeMhwzs!9#-G7QP3MT-6&JH}yJWVGTM$o_lb80e__{O=XVl zJfHfqv9R$7&j$M!mho5mp98C%hlfl6<}1Cs&JRe3>nQAJw(3l@%tQPcxne35H;Mc& z#Gjyv{YA`UDu>C_-#Naz6WvDi5aG<~1U?kW`G$#qF7=G<93iUXdbaysa*~c3SkAZP zo}hNet>dsyZX>74808b`&zdxVwTT?obA7D;$yVLZ<;arCBzKF>J&&LZ=)6~Y?_u;_ z<)l?D@k_~f;;W(d2j{>#e;apC(i+vWYlUu0e4LxsAZvL3q&xYUIj*!8cyvy?@{(Q9 zKd@Z(>--Ucb=aT34==Am4;(kJ_k~vCf<>n~=Xq=c>jkh-t;4nK<+7+}C|(Qym3r_) z4D^hgu5I9PIPjHynmEs>>R`$Csq@QH?m6GY;@`yZjeA)#T=3-``PKafKiTM_GBY2Z zwRPy6U(6t1oN8L|#Yi@GnQs4* zOqaWhn9C)F+&5CtkrogaV7Oacv`M|XU3Z*_vBz(pOiqOzwT!u%eU)meofsn>@${N% z;K|Y&rQzy8ebNB%s`%4>s7Uv>YqpA(!C?f8x0 zp`c+z;B)v*NuJ8Kto`+c$O+q~off=+|HJ6@&OS_fE%%Ks%=I>tQCMoazw zU!tY4XQ8Dg@bN!QOW%m&_4(H1CDPIp(1=4zkMaMRv@|wOOXBw;ayrRh z(mLlck^+joH?sXlzn6>5YU;l$QkZ({N9A4V_yPHk*z4Y#tX#dUBZG{E1 zIQ!iqoo{XJ7x0k}s+fFG2a#pB!w=!7C3lU$IG(R^C$abSnAW=;*@3w{-&g1kgx{cc z!+PoIobkXP;aS)~xPN3>GCoI1!LQ;2y%*h!y6XXS_6;)%rc!g=h#uoieQDvu!1jMZ zb}b+_FQJViS75hS+fS31YQIZ%r47XkM+G`n2T5xJ{?X#s$ffKz7a39A^F4O?@gwvd zo69}wf%NQmmmXPwpGQ5{cXGYWQ+i|>*Z1+x5AcC{hBT-?J9oqa=yFObT+Mu3*wF$S39QI6U`S)`-*dcSH)SZgp~a zNG?iF?tRJ#yu^M^aC@}hy|X2Qf$L7ewHUdq_B(-*1Ba}-g2hE%$>Ox2Wa0LIA(sVk z1BNRFL%~S%bzmgeSnDTnQvHpy!66E)J_!~_a<;-I;{`z{ZJPD!$`J1Yag6=)by_m<&i|bRaFle~gW!qfFT)pD0TUa0GQ_tmo z)<4y$(%PUJRo&EXQH}@Is8W3@)uvL7D%GbtFxm*HM%A;_bO}*Qss5f<*A$ZTAZ#dM;~Jbhike&HcMr)er)Eo8($L)Uc{eS-iJC11)Z8jtQnR=wUbE!^YPKw+ zE=Viu#ZYkZ9`!nOZL)^mN}UkZ`+9(y9&Psw&Q;x*HtK{t^O?c9?=y~iYJ|*OQondd z-38PM85CSrY}a*qK=ncNocbU$>n^bBBB_lTyxYb7TX?^iI!>MRrR&RF19yDIH4xjF zH(1~@W($V$QMoXSd}r7xfT6YConZqkEfzn!eDyBimgh4Teoudgp^ssE5}$XVPbS0X zMf~I|+6do!z33qP=HQ1_T!t>fZx!qHL2O`$SWDgDr-a{p@}|q@zMye_ufcCTdP@es ztv^LpVXuv_NAzR6l8%qRMG3esNwg(O*WNzB7>BG{xQ=$bN#y(Ihwt1%`OaZ?TNt6w zRF`kY*}io<<0ikwR_0Z}m<@jG=%4f0g&ObKzRQ!pKJO>aTRQ8<&3hbnu*7+&i_J4zO&J$mN}u3|9`n#wo~U^y3BOIbj^(r;|*C!_H^;6(Kw8xYvnn ztV3pYA`?sac1A~T;MjWP@DGTe<9TF(yOgzNX8~(Xq{36WucBWdQkaBqUJ|}FMzC{q zx_NALrWx6f{xlJ}G8LJFOro~S@o*J?ujh9&|KG;nJCV0d#_>pDhS@>h+-7t%(dJs! z=7MGmsJFLb6zvom^0Bb{T#w%;AHf3H zGnb^&$dml_^eYv7pJ85e;e*Gqt7{%sjY4QHJU3ly=1yEy`0*NoMDBS+Ues8G`_3ng&7ET_UR=We5nvb@>)+hR7>@&EXZ&>!^?z}N#?Bl%-!L}YG<1$N z56dUz44Rw?XB>OB^#Z!_Tig|lVq*EhViXttyL_>8h*}tE1vd^fTb52R1VBAaEt)M!&8Zy1BS!}Y+g~}c`*X~nt_px`*Tjx zk>GF`{x}SO^ol;?uvoFJ|BHu#$6%`y|LtVjPoYx&NzRIL=X&&V zbbHw-B*TmNJ~9`Yp3e{6FtU_b26XNSx_6A+tJDi3z5`$TCZ64gtXtpTbogI(f_)2I zfm_i}qS#%uck#Nicj!#{lpP@(I?4=g#5dP^hyAf_N5~}pE4#(>lfKmjp3IhxA<#Yk z19ls>ekol{eMrCjG2eHn55AvX);N0-dhuTJrJ;u});GO;?{#IJ(YMb0GJ_BEZEyTr z=ZxEMWwpHf47qFRJIuE|#B$3HpmVSJoEh|Rt}7d$Y`-1I9;@mIbuQjzFIW+4!=yonL z_!{WtYGkmTvygQrP3?%jcF@+Qcv}s$W$TI9t$<~%?t{;})CV#v#9zx^QUNW*?QLWK zwS4m)*P|1QyfaIiU0D;^=IxHCCd;N#R^6fPz|QN{Sg;XQXpGaTKVaL1iYl?+6VvS_ ze@yW-e{@`pZ&xk(F;+Y~yL1(~WV~D#ryEyIMgOS8{??p9+!8dnB8ONZ#;%$O^8M)W zplgjrKiGy%&%x8^0rr}{F2`EGtvtrtPUS^jzJz)-z)XJ4qB)(VNZ%_%-)WvvZpHX3 zc7R$io7HZe_P2qefNh_LUTD9Tcy;gA$yWQS)nJd~^!&@U^dp*;T`|=4>3fZ^JL&g5N8GU*k9ne$5{PKgR}sHrSq-hdZ%vzh$q-Hv-%mCv$^;7(bz3 zwCvvc!ehG|x?bpZU9rBq{THuyZ=JBSyWxdMx2w6^%9n5C`%U*S>K;?qOJ`2SJN>1G zi+B}dC^SKRG1jRk?>?T%vr^wse`#{Qtyg-p{7bZs<@+k`^7FIwI`#_IzJtHyk+@|$ zaPTe!4*i~dd|&GQkE^ZAGO(Ab51n}=^zq&QW*@DxRh-es1@xi07}Ss&6`z~-#TsuB zIjJ;`Lf&cbdSbWhwT9jPSO2+t-KM9z+b?;gyI|?|?uPnMcfpiDTkuKT3*PbG-FsxW zaq_O~99q5v_zUft01ecl?>J}t)z~$hGyX3k2irO0e}`BJXYUqbZ+2opMX&a6Cx(pZ z?VaypZE~|Vc}#B_eh-`nWsy@{zBkJMDP9+i9^p(;HvPTJjRU>NUW>;2m%pg}pL~?O z(1gZ-4+eJGQ)BoHW2j~f20SC3MX@3Kv|ogO>ln9ju6NC$Srv?-oOM!X#M7*?$tHWY z`<#buC|{c&=)l)G@l3FI?HA1q@*`xD8{rOeBM4S=iEFuocoxk;aV)FJjj)%z2uI?1 z5sJ1|A?oUyZm;PAKvlRkquEgery2i zz%rNl!O_^?KVaQ4wwCp=$@+USw3_Jm7P{0po;=w#IAyYLuI3cY5e!WF3Gp7N80IqyOD*iaD43s|~GlM(o0 z261qOf~D$P*#14KI`ik=jX#&)mc4c<7ruN-ap?YTtsq zH(cp0&zXIzTit0bn$wkhQ?vkikB!$yjB0Y*1NPcC-ygky&`-Zr>`Dpf%y!JrmlfB$ z29~7wUYy`9NI6hkkP^s8rytWew|ChvStO-)936 z&85X1#TW1IvNJ?36{cw) zY2)$*s~yu82l8wCruO{owzaKQ)~4i@Tj#{&pxibG#~!E%y-kv1%c;*!`^aFpw(45G3=_H zShTHtb2I-B1UH(et#jDEVSmB*UvwZHVmUadHSG7dyK5($IUdC;&$7mo8hnymDPeG; z+71q!!@w&Hoc94c_0t0!4_Bp`hhpibV7C;Q6t(!HlknwFM~|48R~EgLSl$Vv%c4_$ zS-#owGew^p!LwnEb=<+L%o|u&Zm6`*CRZw7qs}J31x>ES*UCQE7!h0mA30|n`*>p~I5xrQBiHKVPp9>f8+?^McAnNpZjd~A(Qojc^x&d*$gOgp-F_qEXL+OM zh7q-BH{}MioIc#+oId2U>bClMneQ9MDmRIpr_q5;C=(ka-(SP?f)sKO77h)3WlU^! zK?||7O+y2_$X`+*fA9T612=MC>jC>T^zk&yx6bOn%7_Y%{||fb9v@Y8?*H#SlaQHQ zfDl3;L30yH0)ikAqF^S8mk<;L($eZ_6X3MwqP3`PMWjgpYhX|rq@^b9;bxDS!6>y@ z;k2g&__m_d3sQSIwud3uI!U|*5E3BH@BP^`6C%ah^ZTCH@2}q<`?dF8d+l|7)^l6W z^Q?ULSGX+TD;C!3vzgqQ=^yz=eOrbUq=R1iuP{vg99hWs%Mr%XB}@oVbaj2+p1cK1J5u;|JFjPu852 zVc!w$894!dAb;P?WB56DGIxRdiopZ$1y7JSrD0}~`MnvUIUR+zUVrv5PbPBYP5hG? zcdPefY(V_bv7e3)Zkl?$$eUkM)O+pCv^&n#dmVJ!qS*_;lMBHqDMt6XLgAZ1Ucp_9 zXdX1*Nng{GjP6yWWo$3@Ixd5+B^FK(--vV7d+bhIZ>D>W_qwFn1=H`qCLS7@b)D+J z&1(Nt>JHSwQ_yC$-&NFR_2twi{7`?v^*H^h1ILTTJx!nU8)mx9Hv0A0jAJSLX13FJ z&hF_Az#~{OXB<-0@rbkUEn=)oH#-6k~WSD zzwkglS0UHabKu95y?tj$Kg9d%O1ss2E@@~%&pFbL@csv--QsO`6L;Zlo{y4_?RDU0 zo+r+?;sxAwU3YLT;h%{m-hlkB@8S77T-mpI1NZU1 zoNI{sP1++|?;@*<_NNv1W_0758n%WupA`*~Ik7|B6~;41?^BhT3RxdD6Bp1@q%8MN7FAE6$2DAGD3^(z5|y z7+72}y)jsrAJ|qgy_EaUu}2dB@V#fjas21lm+9#fZy~-e%yR_b36XtwTDDv883A~- zApDnLvk(5OUHl$pXm9%~Nu1%36?a%Z00!{|)(|^Ta#$lg^xwx5NWDnz8Wobe9sw63 zGZtez-MH$XmAg`ryS{w3lJzJbEy-AttuKrQ zqdj+jEx74!{F1+PU*D#MT;nL~3*6az8NPt~Snl(d5d4zuWa(dI3TsrI$>t1oIUrqY zXy88?1HYvgD;C`gcZAEhD|}xXzJEJ>Umm{Khwl%E?`yel;0ioaY{_XY(i^&qd+!40 zNA!t)#WoupJ%M|FI(Yo;e+^!E2M)LLt}#)6G`A1nPbghU0=}76AMF?VC|T~} z@n|4z;5h74o{Rc#O1DS9OYO!Bmr=GKT;QU;7njv0-zI2C0pA9eS+8_-A=l`ii^_KC zTav4HyuML~H6Gc;y*a!``W;9Lr>7M6W(`b_38%*u_l_Qz&YBrGe_9iM@LiJXU~T=~ zH|!DO_04^WZ|SbyXnlM965qh}pZq)Dp18!fvG`Z%+onr=8|Ui%NZ*<-@oggbSl>2( z`kVAA{%eqx`6gUbN}H@XXU*0F14=6)?Qzz@V_Y5Cd)SLH*;llo*S4c)ih{mHqhA?> zPC4#y3VUd>MUrhz9P1;VGaM2)yFv2*J2$gm`U6+*1aHXiEeAQj<21I)@Qi_*;eD>; z{B<*~E0*&f8aeCXJ@!|8ocEx3T+Zt`52CPs{s%vcLC#;(G|O~11!}5#IREL5GRfC9 z)jiLkt7Pwfefu@YvSX2P;MW3Uon9}tsP&Sw(ZeW4BXal~lEWo`>wKL+i50V8y>uoW z&`-(Ve)b#N?f4SY|M1@b`m%jlvV-iaME=&k1hF4OvNwCQ);>3T+@0CPfLz6SO!?Gv zAl4Jv%MBvmMD}qb`|CmEEkAqXU1Ry@8uE{$Efa~~kw^?E;OZoN`k8#}wuTum^bq4+ zdirOmH*S%$xeFdwI>a;3!7kuj>FM^kE*CZePIyJmf3V`^u7O{S9Yvh$%h(TPt}D=8 zXl>@Aw~+2bI*&s17uvu12-(>=t9Vag(G5$tuzs}9iG9nSSD#%sKX;OA_pRS}_TCCJ zp|)niqw_moZM`?cEPJpLJ+^b+tOCV;6kTx^@odJ|Y$eX)nJaJgrX~>IJQ3b6+UXA9 zGtq~|9i1j-m@y?(>WzG+$yro#&9|d*>(c*XT%pc?SN8x=sQ24$3BuQ(hImj~m1Ok9F9uS1&Fq zaGnlMJ%=bEF%8o`hI4VQ_leyG!g7G@dnv1l1 z5w>2Mlfp6B@th2nD=sqnpEsoc3D|)NU=O{|dUQPNrT4M)Jiwo&y90*&;0wWBSib|j zWqSly=q5t237m8QTY@RUre!;F4{-Gz!{Rw}1(U#C0JsypX@6YsDwqraTjEz|16zWb z0C=Pm-05`kyd;`E`ebhhFqO+#OhxZ1Kh+k-c({B%;T3~NQoJqr3d)~8unOG>mwdCN zqfH`jdQ%V`+o$uFj)33djD>HJo~Vj^A9(8r*XD| z^6j<7c2y4NJRQcSQGRWt>AWb#`;qLI&3yQmai$0M2wD@e@n(*D6(3CJrJQE11hGR` zS$@Wh^B#IHV}C10t+oSee|X!zu@@azBmVz6%cu5ObI166dK|5(9|eAv$j z4={eh9VdYwhdIK{{*5Pfk-_;m@DzKA&9T_!tyBA1%l_lhp2@VSoBHopo#2@(siOnj z@G*5Lzt+UGSBt#rM<#LH_0Jgo`6B-`WzEbF z)}?wmzhKY#x-_qRD`jKTd8ggeaRxZY@7C4*`V9H3Ih_V@Qa|%!WGjD(&S;DAbe`aR zKY08A^A^GBk@r8+-gL!V1BQl|;6n?Z5?_|XUVOTl#QB`q{Lr4uScg4)J014-{u8)1 z1w5~1{2XI%zuBdi!GrE$Wkqbxt=M*E1c zf5a%C5$)<-Mt$|HmB5E#SfK1S(li%)827**Li1w5;m6F$_CcOA&B0CQ-)2nt-k1F) z%b%lT$Co)@FWskD-PUvs>R-XS_9nl` zx(tvnvVQ#*%?qvHvHa7{XbcrEm$C-OvzVv5q9)2vUe^$Pp&uB^GxbYMAvUTY!eq?`peh|kqHhT7xoav|g8 zoW?&Ge03Xbd6srG#*8K|a;O~ra}xL#tfT=ar+}C9%(eO_A8^4-9sb{nd(ddX3wmJ2 z#$myWY-3U_czJ(&2wuJuUc*zV>pbP20)L;Rj~fIt=g^mvwwZMtNe|)Q7*7?j(-Q>t z=?{3U`A3XJ3TF+ZvL??1Guk_lUO_aa5BhkD`ApJ0-s)^dPG2v3dfjD1-?9D6UY$de z4}8@D>*#IEtFVper7b#x2Y=~Lol`JnLGhm7eUg&j!~UDjCsE&ZjtlotFvh_{X7dxr20cQ-L(I_b0S_O3%&H zT5QaJNysj9PbWP8eXJ*V9S6KlndmI~rz-B)T&=G)uf(2ol zuSGw}SPAYW>kAi)R&4>^H!?rFY7Fl$z#9*Q;qr0P#9LsSGWFZcTLRV+*>*#d^`_!1vKd=xawI*Uj{MY`jsv7N&uW$bu1?T7-i`kuB^Pzp7Rv`*ZR>K_~a9C2LIw4H%;s7mL*UEHWWj=kr)zfwBseplOO+m7R)634)FeQ z_8nf)nUjA&hCogjICcmBKN!0&e8$*4^*LjA^XH7+x&dRSantzy-;CV@7meNhykmE6 z(X<|HF?CL`;sW=5C&7Eow>U#1hM3Xd)t(CQ_1wYU&9)>1n4digiD1D;Wz-{uMT;5I4=QYr(Tr=fRA$y+t`B!_|kvJW8#zT1;;V(nB zQ=CC;rnu)bj*a|x47tA{ZXgVfwqWpM&Jbw`|0fuXWo^U)hik}-&J#FH_7%|A^HzIO zegDOIv(n><#*1d1f>szdZ~<%4VH(q(p-KpM(dvKP#+L07l^h z4*!`t8pAMJ4~$+O9%u0rA>5Ya8%5g51$TVz87V^|{{qXAe`87OkH7jl@xS!G7g$IN z=Q%*E64H{0S$Fct7cbPY?ZO&r3Ab+x?K{nQY7GT`cA<`L($K+uW_&~>GT_8RcnOe0;mF!XH<-%@-FNlzx-kWB6xlW2m0)Z z-1E7VPx+B?vF|PFZ6=>||4LsNZM>j-X82t=kT|0jp7ey<_Tgw1ePeyTp!%e1(0;Ffp{uu;GWD%gafXmR zuGc$xto4IV;99-2UaWW4$~3(vAqOg6(W+?AU%nL5RsWE5>1=<%Jy7-j0V+%%G2ik&pzxo-rV739aV8GVr*@Cs4mhIZm{FXtp z3mi#9Id2EP9Xi>093Npjd`DSP?>KbfxyR6hZ#H_nb{Jm9XqR_RQSUE)RlG+rw9?E< z!Y(t%+9wR#l|{b2ZB*vB>@VI^ZBH5&8$Em&G1T*39!fkZ#$RJ_C$MGlUhF-dJ{#Qm zdwk$>q4yEKFz~kB+Xy40{YUvI>z}~WA=`TS6?fp9EI;MziTez$*;xRO`a|-I`MCp| zEURB;PJYC;D`NNc4zk1P-k=q0){DNs1s%U)OT?kyxAp_j@1t|>aDpV+^?T9rcfLEw>&I_7Z(u*I=LbWBI+w->u`gt-#Xb--ll?xJ!EcjsxiIw?`G6eLC9Pv7P;jn?)ayHCWF9>FR5_ z(4XQLVEIA&@q_Ms&Q9Ja?^({)R=Wcwp*jP!iGQs91hwtrHViCVZHbiMNqf|eNIh2D z%q)-mu2rAf*NHDVwx9hnPG`8i5kEe)=l8Vd)Z8z5`7(@2 zR+}5H@M!D?_HAIlek(flzg+Ld^-1S2(1v;V$Plh92RBt+j+}C(coxp`M#rF-BqNa9 zb>26{g@>sUg_04*bmWne1y@@#CB<4q<$p(A)HIoh%Jfux8N`M#$Jg3--wGi zk8`}VjAWAF*>g~T@JXuMaYcyn%ap-V!qxgGsx zIzGRo_l*n5qhNLOy&DIpZKqo-$wbTIV=9$M5FgF;j?(P$KIiFrSFPeru~Sc zHqMd95A-bZ?LqcVq#wPXH6A+8JKd)kkOj=S)>uJFChHk*jiMa^ z`q!`LrC$-s`EU>M(M8O?SZ(QOC zxAsDUL3C-sIByp;^K6pQt9=>iilk@oU&lEm%t^;`bbgFYWMAeSwBI^UGu!T2{a$cW zFS3jF($A%Z;4t()+V>~$OCh?Mdd5AUKA)#P2jy#>Xxznzx3ND!yma4a@J27+zZKq_ z+0EXJe1a_e&ECvN_GYxFJdOQET>3aH00udb_ZnWX{e| zR#i-zJ1M-+BpUq!R~>tRqUi_GUun%~-@ww1Q;u}I_=LE%*Yw{%4*5<6?u*dvQNA&> z;Ux8{eXD4L^xTp6I;|<4<9@*Ax&8a-(kp;R@Z>kicZRsfg11g!sxuDy&hse29&^zH zOm<|KdCRCX_}mb0@DbJkb1;oL2u>W~?X1H`l5&KoMY58E*!>as+QPZLf-mhq$$p`OJP{gjt##&ZX#a^lW$Vn{sleAA z$hB4APW4Y?^$@u0E9?`rv-hMk1!eQ_M0l)DGVUKUXTnb}&<5FFU{}1Wg@1H5qjW`E z;E_US&!+hv=D#*zRPk+o2ObkH)&7{`a!;lI7QBbcQ9R(Efkz@`sV$+hWOI?`yO**A z@4}^f!KI5i+dYCyx3F#_@U{^dCo*Q0r(^Ql(|{xJpm449+#eyMmNK?2wC4`K1%RVP z)cvV_6E|xf8q^LhEJ&xkUoZz<3%wd6?Gf%D5#9rP5#0EatM^;fZ|#9G|DpCHb9V>J z4|WHwJ%Pt*yIb&-9xCS?{|J`P1CxqpJ|Yam+WQg=9|eZ}@SCB%uQY33a_q_MmFmpO zG;8l`0%g`S9!D&>I@R}W-UTzztQ5=MnY#3j&t_=P{H*{>~TjDE`Y%@@f2&DEl;P?hN`$`I01mIjLDR z<_z<2W)o}S4(x)lnbx>e%0>_v{1dv$LUfX%b4pj5;16DBc%dC09UO3$aqifQ{`h^D zw}SY)i^4RqhH(&0oW;DCW+yf4{Krw8>#6=rhj8$G@CCugSAq+<7oE}niGnH)RT z0QS-ybLmqIxR`x>@k1{5@Jso>T72dL&i`OOM6as!ezU80u-=C-meS`fxcPJSc{cJ} z`n>!IeoFH7{fJnkpApX^63YV}+Z&;CeA0aPVD~Tm+=VphWz&4sqz@rIqW8NMycfs& zG3LU`YvdyPr}-+#C;iQZ|1b01PFe=~Ir(~PJeH|{=!t(%+cZYo86Uwx0skq_eb{m; zE~cK9{=UAmwqE6aGTO+u&SPPY^u1BA%)F>=isPcY@Uy--!g|18QjcsytHL@ieG_fn zqPb;#?BcuT%&L!ierC1D?s=WNU_xvRf=mcC1O!CL@*S5Eld!Cm>y$oD(L^HA&R zZB}2Q1OGvp0pOqtT%tK28P0psT9c#jLt*T~Wr)X8JqM-pqQ4I5yr{Dg{AuaD9(VOV zOu71I>AV<+2ECKVf}s~(y({!S0H&7d9hhp7&I?&1qnxn?X5S`V_djvJRP5%Fe^!j& z{y4-w25eVHY>L~lO1}HD-*ET}z)70>g6+t^@NWUe)&)+Q^+<6~A+`>}&x&mo(&=+1 zFm(w(Yu*~62jV9itT`F(oA>XwjX#9OII#T^Pj*^7)M7_-`WWnhC_DWNrZ*`OyD#XT z_Lol0<=oAMCFm`R(ObxG`NkgUskfxBd$Z_~Rd4z~df~*e#lJdH`Lo}g*cZ3|#FnA& zojA6=$MWs&_X%GU@(KU9LGWPc*%Sj1J=YtV^?Cg<0N2GB!w33;CzZRr!;$+wPqs~? zuUebh$NH4~j2t`sM+4;Nh%flUUm-i2-W=q}sgy7OY00F(!Y(hebME^OZK$?6-5Jnr z`L@&%54j%vwJ0lO+y7#5)W-BEqx%@+zqi2t*4`|mTjSWsn0i;PY0}w|9d^z_oGCiy z>5DHmgmc=a6suiBBj-l1?D>d8#{Z5(k$-Lf#J~Tj?h~n>U3YL*G%|Y<@PQBJ++=TQ ziy`0ZypMtBK#*AL!?9NhkFRtH9YNE35PRR3iBBONq4Zf{{nbt@PGh#=d09TW#0Hd} z&5AFzowTrTuHpou``TH`zx_6vH$x|-Lk#Qo!g?=!w8vX|#E6bAq^}F>6X#O)MS8@r zPR|Qm?#yfh=avu~=D6Yc+aP13aMZ!FVk_oFJ+bKEJN8Id9BFH$FOl}nQhYCBVO;3j z|DfGPySBeb+x^+H8R_>e&m(^BM$z{`9I#KU5$yA@#YhhA71HNO-X6}_ zu=0V^PrYyXf^eLbFL;5K zkPe7{wcfy!7Ofh`f5OX3Q=6>vsB?_UL;i7d|A%(%s|Fn|0L}zo`K85sI_jdlxwb9y zrxDws&~9{3FE8S3lUWaHou8$SQa?Nvw!#5;{gJ@pY3NKxl#$;!e^!BF4i;U_{2sV4 zx0=(7VGe!kPQje?s7~M|H}fiw;7_ne3{!Y3Y-oT>=|LlKMw}!oKAYMpxDVb3enlT1 z7(4vJya8|R2ckT)n72xN1ZTw?)1=RVPtVJzPgSFhVTv_Z1TJqZo>ef~G=}9+UON3; z`E&3*@#J=o*xYoGs~Ov#;9lxyj`}L1bBpO~!}IXp_CcPM%b@p%kTcMywgJy4(S4~5 zja$!4z=r)tsT#YpLueyoM~waTx1U5$5Y4zP8RY4C-RS+LgEJ{=qrDFKPi>uG*^gNJ z6D4LSo(z509)+L&9Ai8_xRZD?JfDH4YOgvCol}QB<*sV321)U|M9J$E#j?_ z@rI8i{~E^InK?cGB=~J=jf2A*HY$M!fnCHkI>_Wy(^V%DOew2QlLYJj| zz}^^m_=&DPIDYI}LZ7M_E9~1m52YE?h8G!!&ogi8?^n{ZgZ?G;Gw=Ir=&W|Z zHae*ng2gv16(6<+TvJFq8DOit16(YgISU@+7=6{4I1~$yvzft>791?*|BZ}AU(7;p zi`{g;{OgD3JDo;>(=?V@{3|i;t(Xx{oA_cP13kUa>rcUc>zc3(#9BB^n}ydHqmS;( zD)aZ%)7voai;ZT#jCh2SMJ-w|(bc<+wr{k9Z)krtV_~(E z_6r6-g@>_Y`)Ba4+9mwk@frBHBMQ2?>cEV^SY$~%vLtIwv5-#@m;dy_8{vg-fEO;o z&#IW%VMXBkknM(W!&}7X5^fMLC^mC1nxA~7w>8QQ}D+)^}}5q&yO&F zk27}Kx4i_+-OYS+hH_pN=URxqX8bx>jt@~v`9GhUdkgDyHa_jd09(M? zC<(_&BCp2Q8ZYv%3y;qU?h!ev6do%g6DsD{Z;|r?rZM#t^pyEnpZP|iM|+)F(79vK z)ONd(r#9iAhdxO1aY!x`9A)xv24ngxZtR}1I9|}8n1z4b>o1s`eaCY zkLEU>vgIpjt&5nVu>K&uM=%;OPQ}+Gq%~}!jHul(qW|c zfcw@Lw_Q#9oQ$)>mrg$|8v^7Hty|$5!SU-uu}fp!v{>?Adfq4SKmGOr$bD7p^LE8y z6Jojw3SR&g;6I)4WLv3U?Hrh&*!p?zBOi5g)iR&rTg$l1eklXp^gY!z(?8m0%uCNR zmg;<(;2vWs^H(1HzPU6L-`KsBtMT;X5Bm!C)E~ejUPT=rLf<0a-bYqkXC~zR_H0Z( zhmGx0edEdVH}W`$g}>KChDt0wYmMoEz7#r)?#1HYC|_gbFkH*LKY17%DrarwfOO?k z-}GJIRF3kiueuijZ+t6A*I1CRP`am3ek(1K|5EitzG=M`uy4{=^WJm(eM&6xp*IIlqG1$;Qx@a*8cf}NaK(9Im@t~k`( zZpOL`Z9}`tIIkd=^9m;47@y|4-nPJaC?U<@ynv&i~4Ihub_HNeA;`oBbW0EoXe^o zSW}(%KnG_h6o$_$VD1kG^qunxoYi^Oc?BxNL0-I452DT3Ls!s;OvYNa z_ByKo7~0skyrdr==U@VfWuq$JgcSDRSQFC(Z=c2AM$VwhW_^bKlRii~%}evc%3rB?r&qi7s9wp` zqiK`$FD(bscRM&2N^NmmZR}AS)F!9jC{WpI+X?0X89YyIsyY{w|E(CyZlT+S&3g`O zO!-X8kbc$`jG1s$kKP>-vh0Xm2!NPvfjNe2;0zXmCR+ZDJq2+fUv| zS?uNIMaudWWktqj;CQ_%n#LYx&P8LO|1wBt56xF+PwJAccwo8mg|+eogHx)|FU!v1 zQe_yYV)9!KRP5F|{+HuMLFqNdo*&T`wO{+W{;``=f5>~^^1bZaa^A&g^jOrH(7j@V z!$>#;9_kurINUW(*9Lf{^7!Fx(>DWCxo@p$f`U$p}wraM{k+Wd0;nvDdQV=a;@i@ z7xmyh_i{bKwTU;0bSv-2%oCcnY`BubzA9N>kclTG1nnSxL7+?Q4B$M)c%pq=#!-ur#?&Jh_ zd-T3%f@VTjHs#*Hl}X*jTuZ2XHP=eYTr_&?oJ`7$l&dnYro6$n!ETd&KM$-lCVzLs zQRcNe!Qsw9-_~i*@s;)6e57<#sn4;`*x+Y=@}fD5n0fB9=lN>+Rx_&1SH`ze_A#_Z za-I4w*ZObPs9C;TzG;uc$-Fq2k6bQm&x1KroNA-3)ZMo{#G~~s|4;bvkgcL%R_D%! zVzZjQ3KwxKsJ{hUOZc)pVyB~DF8saLz4UblIrBDzlS1b@_boqQ@qGwIyS8Jm8PZ8# zu$R>LN^p+WPsD~Y@=xFLUwF}b;b&u`J$B@usL&b$e>&L%io_h|OhjJ|HXPvDU2&Y- zveuTwUQW7i95S2E@p&Ja!NEK|%h`kAY0s->!l61dzRL^TzHcAw(;C)`d*KM79zfY`A|8|+I`T$Vl|RdQhvGAyMR%j~Q9q#Uqx>uU@e1p*#^}lS zqBGJuDC7SM{?DcF+V9)1HB{3vU2A9^&!Q*7b<$aNQceXt$$hppO&e`%n*ywhWavZP zN~61-yg#E1&e7}M#@Oo|J@xNa{?+(LY{lRGguPVjeT4N*`DT;nop+;$)Z1KrIpAe` zf@4ngpcNb7>AQ_7R}40Yp=&-h^d94>p%b&7%D5-xy+y`-Yjn1Bv#kG~|0GEq( z`0$`mIfX?=_aMr8iZWJH#>14cnlhf|-}U^vn)^?=TY- zj)g-VZ#6c-e^|8pMfO{nt8ynaPh(dIEq;&pY8&TrN>@mlw_gnjx|Js7-LTFn9bJroA=_f@;@}X_XmBrpsz~Bhz8RwT;^vq$=#$@RFh<QQ`h_Bh_kFj}kh|y3z0)IL5;dy_3@JKB(;dtnTV%4te zc5N7moyivyoQF0t#^1?gUxx3jyIuZl<_x=N=%#sK+e@{}Ko_#{7+_QniPJ89TUZ9LLf7)o=^ z^z273$$H(mpzr2TTE_LB#pr*q(b_n$uFx1~FeeV5iER2Z;~Ysdcvsp^%fCZwGS=I- zikPMF-`2QrmM(g=R_2q-#%1Sxp<^zBiduht1~Jzx$D+-&~fnJ7AB;W_hT)0z1yKhQ=m8 zv`g)@G4JCXHg`PbOJ)&2mO%Nm(Nk!|bs6x3lc@J2ctpt`kv6tdUI%SFPG1VCCyRbx zK^b2oZ!v9TjeGu9{jaofkozaJ@vqfa?0!Dn#tz0?ZFJfkZv9(~oOWVa?(Po8A=hf7 zlQyog+USodX^jOQjVQ)9?uJ&w5!HIkUeszDW^22>xYcGb_A#zj+S%H-ysZEHnaDgw z=Jxslb1QtLxh?oqS_lS8N&BpG2ekHr_7T?E13BR4mOG%o@TYnI!npzP;$H6P!FFVQ z1sH%I-p)OawKj)KaPwXX^lgc`XL=Q~tH~Zdb0y!aF1tJRH2$;1ZOt7AJUigY?~Zmi z9VJhFL*tC#i?QDK?T@80?}t0{Q*y7Oyw2k`PklplYwp$c%N&Vq|5e{GsI}gFe8ye; zhdkXKye8TEp8e5OZ%|*z#xBd)4NQAF7Z&wyp*_e& zU8N26O%|>%0q?WctUBoPW5~4ZN$h%#`)m6uc015%e#rf(Ii&Ujbh58`HsAgM`%USq zCe&&#=qhL(HVla_#!dAd1t)x9-+X)I`*_+kj=tPQ9g+dwXZ+@XQ=g+RvOoAR^V#MA zF!)@Uh9K`wsbd|txr}nbc;m8hyQS0iKSvD7JB;4+r@&#?qXVbRIPjs$e2;m!l`=Ix zqD!x3wl*K6OpS@?lFHPW7?jyX-m36;_@6_EPdVelZ4(TCUOB=soTXCUMcyj#jBry2 zahci%m9#2;o_K@K9cHi21U}2V|B;ccZLv2n|D#&>*@~Fs5v}`e#mspM?=IexTL%GS z*8i&#i1}C4Tg1QTc=pF!Zv6`$?)Ar|hyJ&Z4*hSxEcCxUt@SjzOY8pCIrs_VH-9QW*${5=)Q*CG;*D%wc)G$-+I5vdmG^M**+lifiEQa?u?v&X{Y->Mo zoX**?j{3Dt>GVBkGJUrf_rAA7HjT_D^?d-`e8{-&Wd7$d4<{I#W6YiQZuReR#;5;( z?8=;sw|q8M+MVbXj9uA=(_P$Fu{#%7Tf)7Xw(y<@*354+T*PZ?3y`dJ%G*eAH*24lDOPb#l6ra5V! zVp2M2TZJ*Ys~uR4l%GpHQTP#jkY&FOy=rhb3Er}Z)nfzJme_4>fg0BG_DDZ>!a4VF3t#z>jCrsVqAf} z|LM49T}E4@jl>J%I{5F}s&UJ8SP<+Wg}0317E_@pV1EV>u6mXqV;+IeFKt$p7G*fAoKaXdrfsfn`~{i=ln(;QH-v2X|G6 z|8Hl^ZV1=En)(~5UwA_GSN&ITN}c|XM-F;0dp9`5^BQ(Ar_d{?FRxmCx}x?f_*wA- z!udViHzE_rKd%Fv2=4}*qkk9vfai8luQLgr3wWIktTfV>@zqtkYs0XD{@vLP$ zX@T1i=)zj7I!oM0z zo$z@X^ohHtrlx9oAvVtF=Mrmba;7&jUzN8a)2Nu{?C|#tT@7__Ff-JYrCdDZ47CB%YW%TgPa~YuTL^Vp)uT= zBPX(Y{`niBqanWyC%7O7KjsYPTl`!s>s0G_8!}nIW?1suHsrUe2P?%39)?E#w5ld= zxAv^}K^sq<{_c^z=*E9O%(Y=Va1pXEO3%}oGDDfqs`=9MrMQ2a16#jHJa*$-AILSfCLz3$XO`}^f z(P?{BUWa{6>c_-*(7BB4=jTc%D!DB$n!QZqG}-#dmpl)-?fiCP4zlLsdLN)Xbn)B+^ zxMtD9bz_Xfo5!GI0MEAAzuF_2=s0{;1V$n<{}-717R6URe4WR+?5^Fjij66e{M!VV ztUuMeL;ay{VEpi1)W5bN)_05Z<)*vB^{(|gn~SK|OI?8lAz#>B(OlMnlQ#Sg`+4ca z^i8_q$hU(9#G9uM%FgRzT%Vzy_rdj&dG3Lq#QtFzx^YV;?7T=O?1bK{eE&?N+{b^? z3(OA7F2Gxtm$A)59;~46S^4|&e-`!L&3#>%{`Lh1;jqz5-3sKF>Jyi!wI@|L;M=BKfy7b~%(UeW3cSzTE@5R_d9n5pv$2tRqKqqd z>$F3neG4ajzbPe?vlf6u(QW@Zqt{;&?K#WkeUf1!u=r#aVFHzAD~=vtz4b zTbq&Z^)GP2dCtTtri^nu`(u)T2t>919XDew`HcCvqlc(3(b0LN;^yqQbJ7;8U`hU{tc1V055tR+eW>vq?7NpAPJEB|}8yvq<^b zT9?3oI(yB|hIJu6m42wLOTuk^hqj9ER$DJ6o7JeTVOdf%Q|%2ff9M{O&7A$Rnc8c~ zX5^J@ruGh$&0e{}m{x3DJ~`6Xh-?-qKO{>!uo+C~%0u4K+A1CmKS^6l><%}0ZPz>S zfoiLCESGAl<>wS`YbXciRMQ1LbgA`Gt$;<_`{cJYgA43ZnahX|3G=y4(wE4B%f`zGU=?LSEqwLqJzO8=?$^POgG|r+Y?MWB(Ov35!(Wm~s4`+hA6BgZb5eHB5zGt&jc;(@og^SlpUE=Y`lMr0((0G;eT=TU~nXRVF(3g1=MT`|4lug22Yune%Kre?bK zrzQKYsmYtZ4gRejy}8Bzuj8yu$r-e1GjfJ-wCdXmE(QNj6AsVjyXtIVKcb!Z!|(z8 zZ(9F9!vAS}zZM>sb(PJdm9#j%`LX*-XYOpsWsNnJ(;e87%C4h6EITOQ zwE?Ys?`%(nj&4(+0dpSx~NnZw6Lyzp!jPf$ze|F!BBem0v z7iP1rZdp-zg!3wT>)?sUUF}-7mUEVF>HFr9yBmyobN=(2M_NsHYS$8D*=D}K!nbFO zjCr^8J#b|1UmiH}s`+T@vzf*`ee2|#-f!u9=*V35^szbWPk+ry|L&2wtViYjt<#wI zKKa*~kEQzh>W<7YjrnWM!L#o&V`twr`GNe$XBtW4Ghc67Kj!tObnIb1N;i5Nh%xkG zvTH+twmSKyHcjMvkahH-zN0@3#MKXri>;qOg<+R*Y+oqfSR(%@c8ETwK)(*AsO&noAc?G|JhF-C4WU?rF_@t*I)};oiXbT+OwE zE7{nIy>jgA!R+lPCAyY5l3mOENk;GMD_WcX&kEOuR<6SyBaFH`QYt2d-( zNt5eSvH2g~{oUvV!+y7ZzR|vV{$%FhN%D?}Z~BM7w1_H{UkG{ogBgHm4Ck=XP7F+s{5q20m8}M(QDl z;h3Fqxog8upL|lXUZUs8J@*D;j6FHv^Jp_^ZBOiXO`01y!UTXR? zG4fB zYBbUgMKjJ(;tg%FUGI+FoVpj?xNBwE*~QQqKlW6Oytjb2A7l(wW)5Sq`9}6sI0LB* zyUFWkW`KjHhn_ML4^4vh7TSh&NmpSv zO!pwZ*BOJl4xqnU!~4)d#yr(gNZBe^dAE^Q@0mvIp$>bZuU-6vnb_4reYevuhb`{V zA!E4PMc)pta5R5(U6J=S_K?3xe6B;L-94CfmT0@&{S9ny$5DT`J@L>`Tb%n%V0D6R z^dSdr|EW2|?JyG#-A#;ut8K&F^Xv)k_hZ0+=8!`}XnTS!!9A4rYfKOGZ=o&P>cc@Z z!Tl!dDBT>!78QCk@<9XV;bTHtY?tO*^P>Fw>4(zbKMsA!_gb!P^hI!>d8z^qw2!Ir zlaE5cbapiY6PZebe~#qqpq!TsBYzFNbFLZHwO#N--o@NE;}@RIJtrRd7&(+ZwDLyg z&6a^LPz-iN8OE|?%41FS%AQGQaYX7;xd$jW7d|8xU3W>iTpRZm@NBxqoIHW3`VCdd zj^;w_qGs_eNLdk|wVsMHXvr*SN-4UWo3XJ8`>s)U`_;68`aedO2rb%K?7FUB_qP!L z9shCmeYYE)Z3oaV*)QvPgf!^;`Y?UpSzK9Q(d+vo=^^@#&tic^-@g$_57GCX#TnOH z`Ku!7A^N_v*qC9__r;O)5PjcSyyZHJzW+-k{f8q(k9QW=U+dWl4gDhN_41Yc?X}_b zNmjkLk#6NP3ZTCZUncY-o3!961Nv%u@dzCF;c z9J8UR%v_o3ghs|e9}7uSY~tC_MJIGI9=ceA@5OBBqQ2?;LcKeoi}BFK+0eyEdaafI z-6OK)P#QL3^VX6-7n&kFqXR>*?WkpN#9B5S;&kpXdflJr%TuS=7 zq6u!%va*65%{!odAH>uTTUV6hewlX6X()B)nQ^m)tJY{;X1>z&dc!PtJh<*}W_+gs z@7y)!l_oFr@*69n7954n><13(#u!U)1*Z>&wtNI_X@$1bZ5^`I18td4SraBdmO5|R zhSWNbx%63V(G*MS8!Mt0427;FLRYS4Og50u23QzuRHq}G|kYGY`_WN6X5Qy$^ntewyEq{(_tsC^BZ zmN?mydKGj7yX)Dv!heXb&xNNb+&ZQ<0iEjA@DG#C=-FGLCHNgZ@gewg60~LLwlRkq zpeyONsIJ>)GOm+XH_c~EHXB2_{OIf#J6}t!unp;&{mkIBVq~nvRTHOIf!E@7kX4vJcKXhW^s`_F{L9uTc@PQ9|)?-{Zep^6TG6!v7sduKBt-$Q}6ydxKB?GZ=i| zMSEUn940WHZ@_;ICC*nJcnw`d`5TTw?$?}y-9yjT9eE8}lz8Qtu zn=Tszo$FZyO;WvTtLjvJ+E@F4b|U|Ls!rj)f$a{h@tLgMDER3p-xS8dO7kl%&Ptm| z+NW{R3=6l+i=@9XDuff-NXMRVcBG5}IN@^AKFgNBWgPoYhNJ6c;J6U}a}DMsySE zV-#ylyu{`$V`}f_eoa;ObnOx98@h;cGv4q+&ZLj}XFUI0 zq*rhwpTVvQA z8AI8n*Wj1?A%3~qBX|YB+&KJlZW#yqglzhJ6`dT>Nq;VY`>OZ0Q5@!hX5hf1AGw|Zw!m4jgENZn!B+}uY(rGO?osn-Nn8q{C31H-H#k}v0eJ#{f}Mx=l!1^ z9kNT;9)4cPE`7c1(r+}K$T5cJ3gA(2s>+^T;4QGT*O^D7C&yxUuQ-e< z!?CRL0qw(-k{5m+Jw(JV-FfH+#(&`afB4a-?d743ZxmyfZtbzruk!CpmvjLpV)29N z!XH3=ti!&c4Lm108pj;mf^WcV`~n^g`vt_~Cs4~AR1_KAv5Budk#44+9ao((J&yfk z*(=+i>$2}hF45keRj=&f^QjXb3ZG-ZxJH}CA@x;bInd^R??vs8;N^@fibH3V+?@fg zarmYz<;Md-;)>e?Y~4m2lyx5v@JbGTXQJejB@SCN@SmhvQ?&hf^xO$;=kl77(B)0-Ap^M zVJjb6S+qO8%2hDrE>}S!Jm=7_jvR&!{P5VJ$bz@w_fzgFn9Uww*;hsm8~CsIsgEdA zF$&;6^Aah$%#6!}?_JuHjctH^ZEC>Yn5w<*qb79wOU2%|k~cT);7YJ1<`vp(OCL0o z4|T?IZY?&*XYA`zd+m>>BB$04Z&;HmpPCHXZ`M{#e|eb3D9M+`I?2G_M?S*_e$mym z^E^6~+wpOF8(*L4QT1=mU~Wg&`%lOZr={lp>CQfLUf~LJ(h|yYtTE=T$v)VW-hmCD zIdW~(ldiK{nG2nVtn)@2=+i0Uu7zwQ6o+iMuhNbWl+JnLy8&%}0o_%Ljq!b0dMfxT zWD0Cn%hSOX_0ZY$sm9Vpyf@B%Y<@9q$)SzuYmB9p%KKwusbD>QskyX>_eQtd$^&mU zywM%XKU&YTS6k_$cy2ML=chLqOV$4LK69zYM0i)cPvfCSt$aiD+!gvqdUt1nYeNlm zu&iO6$HDrURb4%OCI6IGS542o%&{P+$dR`u?s4>$&b(RwGIGH&=1YAJFc%$Z#xnKU zg|0tfpW;(I{oC!19Sxj;E1j5h1Rs#X4(uYt4729}LfvVxJkzQwDRC zLB0RTk6ylW@^#X=CXsaq|I^)ZO=Hu3;@Rin2QFLScyQTl{JPgFKG%;Yd5CXz=zU~D z#l$!WT(GXXiqT_Ds0vJf&DN9u4dm9NPS=Tg=2tu_=Uk>ZimaHWmY!t-eA4R$F7!Y{ zd`I`0C&ag^jQ!|aRK{a{!F>Iva~2x-b_eymcA0C#-0E*k4-!Yw&pZYb!tpko#KJ*8 zHJJQIDPtvcZDQ32(}U6Gq^pR%F`s{j@GZzU`Dsk7x@WrlWd%1!U$8Gd#(i_c#M(S` zayJji%ibP&Kb$U~S{L(v^swE6t>CXI7g$rwtq+`O_}wTY@coaS|n=+^H z{>BO;aj4=xO%Cnj?xh~+L-|#Fdu^tX_!?{bDD9VQl|vap)0{Ms=T79o!T15IKQ^8x z(4V99=eLwQ7@uCH7gJ88pYL<#e5T4Al|Jm~9=lcER`Py$nUNGJvrPYn%Un!VSL{)m>m7Rsyd-{2BF1rLbk z4D$9~C*NoXdlydpDCMJLdK?*{m^#zRD;Uj*HKu;cMqHLFT?O*tMsD!6Oali-4b9(@ zSM04K=(^)CLp`IUl`0_K*=Q41#w?QL>V;ivjlQV~qSQS@M5PvE+=1 zKV{pXQ2HXu$-Je|BODR==EsjQ0%?_}2=@NBQI-BsYXYpvJM++u5+*^wQaD|*<0 ze3Dxf@9A7(7WiY#*1*^(FS-xK=**9_Q~#;0@}t^<4)EA2l{4IGXMNb$wlYgGE|Po? zT&WmOWsJLgeP^+6BwgQ4{eCxo&dsp;aq!Ad^`971@ZFj-8~Q;zdcuqRU#XL`wVp5j zt1&m3y{Ev@%_madae3vdeU7mS#kJDe5}Z9F{s8^^@tFFVmhXpjwbkFAE<7Db*_@hV zHwyN1c4&ibq`NfiKP;T3vX2wz)nSZAZcOnVj5G4P4?I};E5iB5 z6GKnW(6(~nb-h=bZ8Oc$S>MQ9eSA*F=*l@})JX1I<|N>&y%*di8de5wtL4(aYoKG2 z+nB%dyX?}5>wNN9_c}A_(B04i)hql3@8{V}zD3}-lh9P1_0BwlR|MB1kTsfraKI$)#EA)0Z)_x0?ZHvkVMz>wltg?utEj=hllhRd4- zOf*899r&Sp;RmW{tHUFEOx0x~`#XGUcLwd24|yB=`k}f$9fP4TCj=vnHltu$n5GSk zx!^J`_-wR-|p=Xrj~2d5{1(+8tNzc9|i1Mu34l{ z^lW|Z)?80La|%~4xOBbTOjFz!8iB-zD2e0?aR?K8fp^w7@jJ5T@IgvA1 zqP)QKdYzXj9f~!7l|ww%zjn_5;(wK;SO6ynl=T5~P&tA5!G5*^+xIN?oEKU1Gu(IL zgW#r8>PeVk8yq)d(BScuJ9tLy;Mf_12k)I}-1{MTa$WMeraGQK;`s;W<4sCGV_%>8 zSgbKccu%oyDoCq@|IxebX$pDIz{XzRgnQC?XMa+%h)=wnb4Kc5^mQI@f-yyD%Hx=E z`QSaay61@nH|2@>#onXXnN$xk$~hDQ+ZXb(X4se7`NI5oPm6tY&jXCbNcN68h`%CU zpd;LW!JYJoyR&C{TNqE-K(;alTQZIOAY~fhw*b20Cf2p^9OrNx);~ot_4D_v8r|a( z@0$TVW$rYd`WB!L&5u>?eKWnk4A0Xh%JpAvHC?24ukEN5ZD146r$kMCB#HBJ5Vbs{)5oxCrTHxFA1CwY}ec|&D3Hbv$! z&>ftras%XbkQd!>xZK8YJJ&Qt<~i_@Xh&#{M=-~~56|&;nBz0W%<&zUp5qq>%<&ZF z0>6^{ABORDWIhe%vn??+pAi@#UZ({!5m*^mP8Q|3hLYd*|B(0YVNqRI^_^Nt{m8jC!H-YC0bF>y2q}sgds(KVjhfcpq zJ*TOsgneul{IsKAW~;~O8@knRT-RTyD;D{-y3f@(%0<5YrZD|C^)!g=8hka5VkP|> z_H7^ah#YbgGK3!;Z4^4P21ZuQLuNMUNN^?mLwJTUzhz$g(*SpGNgPal@5&uu^JcKt zOlQrR#@b`7t(x8X;83Ntp;4n>p}l?ZmT1=NH-Y^Q+PFk}a-UKM&UIRfy&N>ozx|8Q zes0v)&y7#lT2$UI>u0J< zT|YNk^Yrx--JPtT+cv5;tBo1C0q~_rj|nj<7~*=q7xNe+)3n4D|Qo!wXxt|#M)?Rxk`7q zQFMo*!rb3BRTpyI; z*Ux^=Y7%{o*ek--xLN1aI1*Z{t?qTFDdwVscI7|@@K>>Kl6di2d*L1J&85AFASDGm zWki}1TO@r=c&g7F8}QB{e`16(+8Q|IwrbgTJt=!rfwx=vKqci?DerU^WgsslJQb>z z52lX9k$pxdQOBdwwk@Wk9uF~!d#YTt8fb1DD`ZVmFm`;4@suXG9P9)MEGPGV#VZZqrLwX%^BtY6EvsS^&g`-y}sUP?voN@4*wf8$DT%L?pC3> zGTASLvOnkx@308(SRs3`x&UQNJ~5#R;1BqyVk1yoYx^ksY=b$s${ptHfA-r_ohx=A zb9$4Bt(D0gY}=F-oN@djQI*9NcXcM~uFv;g;;Xm1WWT1$^`lLiyzaUQd7XQ~Ly_0x z`lvDet4EA?3r}_XkW2AhvYwH>(G2!!)A5hc){-tTSvdm}1WcjuVjTwHTCVN~T2qnx z$Ez@?@3g1x1Ejq}0j>v_1JW0X5q30G8PhaNIUxOE&#*DBvLEZ8y-nbEAF(et`lP}K z{6?Qd-*b|FOTE>cZ|!X7&My7(jtHbbCUC)h3!|0x_qn$e*?;UwVuabYdm!|)#vb+6p5Osj{y6u?k>ITp7wp>v=T(6&XH)L08KJ|7U|zdXy6y`nYy5mLezI%-K)1 z9$iild0FHH*K_!=^(13B13SvvyOpittgDn=O<8}tIl7J&!sqkx!4li~PS(1neAcy9 zwwR{Ir^BqP!spm-vc-tqGHHT&j=#-v>hO@5WZ)=-k1x7!(egxWm(54a%NN1N3nbn# zd|l2@i?5ckR%B9t{wnjFMbu|q6&$mOwZw}3Gx(<9m~6@?tyr|2m^jNl)FHa4Ox7NW zpPXnVs|AKlgEs1EE^lCd^ciudHF8yvX&SzmW{RKm8Pz?@N2Fm zO}(!rFBKcS??1Sf(BA)QEiuafC)N_ZuK(CtqSx2kT5@*>KL3riggGf|$xmB4ZBq*J zoTLSPEos+~P4DS_Y;W#>9YZTTBg~s z+H!)}hgy+kY?}QF8-EnED1LS2=;u@5MPBT#Ph@B|n0)p;XJ<{NOcs0BDVqJIOw*k| zPJBwykyc|f$~R-*x>2=n?GgLdBJnGW3w8O-N~_e_#(pXh`&K%(t;2nOxK(uL+_BwZ zrxLvgv2~Lg*?T`pEO*UTrP`_X#GUSH-)Z1nn6xQ=cZt+3HmYX!7){-5RGMu`vr&nS z$*@x)%Y4z@PUTdvGq(YcW>eY|*UhFRu)PUvz2Y%evjdI;9_g0x7U$0n%aOzaApO+mZ6tQOsctb3wY5crZ5%#^yE^HsvrC$ z$R)Uybwh2J`b1BtP*&PKiTy=zRO*MLwYnW|9dt z?bpPw-18Xi5xtj&-$)g|CB&$e@?u8?w|fk`s^Am5c*=D8EcR2uzvMIUe^JN3z-icE zvES)5Iz+{PGcv2-dg@zBs>JoE46dCZwp6jHYWCEU4m+wpeOC5ys&-VdrwR?^iftDf z?Fq&b#$5DKdC(oPs~!1CibMS7s+9riJd-(=ODx*q^rPTrd|<4#6OtO7jwawpBtEjt z5wYp^L<6w_5{nGGDfR<_Me0)6DuJvRPy6EotIws% zGJ9$z@_Hk4No?b%RNvnS&+F`e4!&SdZM)#x(unQ%BzN3#KNfz$Lp)!RcB(?|^Nr>` z#`8Jv?iX@WtIKjy*J3ZM(`|<0e}gVuy=zA7wAI8gwjFmmjxuJ-aFxdP#8nSe?c0HT z??}7U*Clg4L5K0|tStIHh5k~6?|DdpT?WnH=^gmF6ISSf=|J#H40tXRd~~U z7Yw}Z*YV~Nym1Ce^g^dpJPq-@BzWT-)cw={=XmT&qnDOW z29J|EY@q+@EUP;n-L8R0?o8izf0nx){8jIo;JyeBzXo^i`04I{ZdcrIES&82a{jX# zdULav7rSfqEbz!V(ds!oIip!Uk0<7^B*uPeE_^qI-T*Hni+KAeuT1WeF}p8-kMr{an9G64Dss;^^O#uhUonTzg41*0Q)tnk zw}yqRIq_m&6MBpEaBrI1_psu?p0-6x*W$Xr#k&`JY9bzaIkBmZG8aWhEBiofO+{Y? zZ66ZF|Fh_L@t<$4Vt?m-*y+e;{Vso>HOMqzoWB0$;va}W5c^n?eEUm18P?!bfQlen_uU1%fP^W^_0@G_ac3tqJQBURiS(Q#wBwolLZ z;qf9L$@~+We>(eXITs?aZ=I}HwGqm=7Y8bPC02pxYtO=CBsQAxRarL+@XfTCqAOyt z7mIy)8|Nk05fg11zMsYTe#S!wIcwq7=!f}8??)^}g}fI=2PXxGD`5*sAKBOG7(=|3^`!qO zIwa{{Tffl~k0UsI$mlWnyR}(@lf-{*`KaKeG5F3^j#k&CBzzuji{|_(w7j`GGlv)s z=AugcjH0gIdkX~555m?f&^B7A!%evaI0v{zy#?4U2@g%?uo_~t#r z|0T3j#ktyOzNcA?@9iDmACm9rj|W#iv!%t0Z^b;l|Es~j(SNz8L40yY(2mf7tkLqs zH+Im+|#x=UNs^vZ!<(q(O} z=bPL!C+9>}8(5~?Gh<3hyHzR5`nD1_gZ>t8)$ZRYPEm>&$GOGpG#}(@TST1i9{n--3sMXEapsBVqJg#ZD?-@UjwAhY zMtyS(d&N7r7Z{x#@z5&dJcg%V$?V-?vuw4eE>dlmilZfs`#Kjo+nVjp6}AMib8%-j zvS{!CWrcO5_$F%i+8X!riLbVke%1v!#~J;5M87vo&JVoMM>$Y#?x7q$+qY593qI)g z9_hF3fw}b|Gw!MnoiM$=?@d`M4x}&B=&#@ay&-*nB(((`Oe)8{5|FjdC^_O0VnIfF3`dzaDwB)$JhCawRhk!t_Tk3xosax)Lq}og}O~=K?A?HaA+sO|&qj(s(M(Sr?&b8*BRQdM8 z+SOa74<}h8Pa$6nV=c%J#XkxgyB9xsIpayWx#*7G%V@X`9%6;J*gVtMavvuCo$N2? z1{2>S1RJ@HGbPhawT?tn$g%B=(PGMtM87RDez;$(C6;lKyTmtKKB3;(r+$atBo;t1 zzNN9?QT=|#?|Wb6xWoZczcXgj|8_#Xn@ugt87<-a#irmE=Gfekk@yKPcXz;(rJr%+ zm$QRofmQ7{??%5v(Y@O!Yg5eJ?^Wx--!aU~y;03+#LZwVZs1!3ei6i>_N=9RLZH); zv&vFrWgR|BJ+fZs;5$#us4!Wx^P{avLbK?z9ErRq@Seq5ZBL(ABzI&AoLK{hj5hPM zvR2D_?4_**z%A{m>zS$BdY0a~o>@)iil!sj&Ef;xDh)ti?s(|yE5na3T%$8+hkk8L z#NSi3UqLr2Eva;eeGQta9+9Tg-4K1AI=0#bPhxnNRFFZ@6}5=n#Ev3=y3|xJRuAKNT4R z?jd$Gr8ymv{s-1WS^GyIX<<6Y>? zXA0&BO23Ly=qZgeB4q=4mISoc@vMfvKVu&Ek94LIm+!dG6j~@}NW|x(9N5y*O`In* zdGerLX-{B+f9=VR3~@;wdx^71;Wh89kOZ*PIFmC%5hS@hrZ-9r=PsXSdZ z(^PP1f{bD8n93zeLS8?m`g=Fq@YgM9g&yzZ472axvS7s)l6|!Qz?`*FMLY2!4F0Y2 z?(CcT-klT4`4@SwbKV`|*)}`-P`|sU5to5D0EG)bCp|wVEZgn8JEt_JsNpl-m)pa# zYj|G~Ta?SY)j5&48@56(aasInrCGguB(!ki8GI{kL292HPW$FADQHfeL7(5I&)lJq za*%Je@X5uj@7Nbz8|X7}Zj%yCebqkCr_U;{jRMumG@!1P^(sJfD5op`886cPn8{+{2h-vh7YMUDlOFfyC`2A8Y>J?s;;7%l<$}>uJi|OtnfWfGT<;V z&)N-~H`rZ`v~}cJ9p@!>S1h=S>w z#%)o3#*Wzc52LSDN9?Jh+pEIHE^F}CQ)1icjDI2iVu#6>h`*TlX=RXCe7zF!7sD4L z)l+XzHOf|WFAJX%-}*#+#S9-W!?$Yz^(5jeX4J9!RA)Uay492TR9Hv(P+&;HM=Tj1 zv5^8t-|KE$O+T> z`}B^8&YLq4tdUK=0Fm+9lRuI1kaI}dI@sJl`chN8X|d?6E z$Xd0X_!FYbl669OqzPF`+7`cgJMzuo(sf%M(C+s+53_I#ahWWGcOT|S$lMky@$eeW z(d-{Z$2Hh<-||aa6dN&bEkjzYWm~t(ot49gxn=mnvuBNvySkJ4NgJ{T7nme&EBA9l z_iI^yH}DQG^&B*Xx2%RXoUA)`+B$hNGTNfWsb`4ADDiydUd~45%XG?ZH^C30)@^ML zl2~{l6>{!I>U@N6(vI9&#u%t+;=eEF=>!hxqrf2d>Pq@^q=T4#N`4oj{KKEUIE_OHjqucTIg&7^Kc$@J-qgK5M|B z@-@AEk-xG`p(+k!?uVFc+)o+}f3vbDW#1}o3oiKYwT$#EHU}T8)Nyk7MoCNJeyece zc-f9gz8$0qj=boK4w|fm5{Fivf~zd*m)N;p9ar4XTk#JaFXeobagjB!fi!_#9T(CB zR|01~{gQNnGZZ{+2hKA(oYmm06V97FONdWatHZfEPT)+|;S5&cTtM1qI-DnfkMmOS zYYonP70yuL)bNS@MTJw^uI8J8Pk}QH8cl#k^U-BQ2caK|hvtwo44QinxFuG3r_W!KJ(OdJ7*3Xx?^T7XV}p3&Q*9%zwYNV z(-;$ldw)$%WeLxI!JKc4gpgrAqW zwTpfT-AKQ7@;|LiXEh|;L%s*3HQ^-1*UCOy>`>>fS`F(qrb?N+F)>{gAuH^aC zT?3Z>WY>UOa(K??`Cq$Ym%gaIQ!X#LbIO$^2~)gFlBP5-Nt@zZ zGJeXXB|GgqXFfo_5A6G9-ucpirHL;MxFzuVmuBWu-%9G6ua~|1`d4Q@ZU6bqKaltD zq>XaH)f8${-N`Ye$T#VW+Qyy>AN zLtmb$46U5`9mf8dp)bvBWQ;S1?&NOgS7$1WdmQ6`Lzb@rHP3du6n;mp#G8sr-l{HX&isI5Tv+82b97*mv7~=Usa-ynG{)n!&%QGG@bU>LFoG; zJ)A4sxNr6it~Zd|?qz&d@Vl%qDxJ zrg)p%U1mD|#=P6z`zTZvDL#lXw7Nr1a!%z!(72V{XZ#_) zI_dB}qtEPF)&6ojz`l*ZE%iooFGmyhX)iG-qfC(%2hE)6#l~?7n5(f<3>JL|c8c;K z%}ybDkDbur+7Qi7Av%skbR1UQPO+}P)A1tveX(cU8*NJ(tlKH9*ePD*{92pEs@f@1 zM_H3z?62tu8eR|`)!?LI#J+p*B6@-s($yFyPV^<-gXxZ@U#D|EnAm{8B6f~e9~4#YO0oCzA|&79oUwA6V(bVSvRK@PebcUjDSk$nn> zlFgbbdG}IgyV+Lw*VCj|ypdEk%cbx9a?+Ke zWb6-C_UXv$Nj;tY%79j`<@=cT_p5v#_ZVlt{(E(&enalJ*7xJ>W~=kSaFcUW0rZ$S z@H*E)MJc+0m_l*P6AN)SAHsJ3`v4m}+UnU!%&-ygQR(wY@Y*z`e0G!QffQSz4H_tT zZ`*7Ou{|H6uHSD=brmeEUMA(HKIPsP55J4MysX}~f6Hv!m4nNMaTsfgUYEq>$@xkD zBGEAyyt!5@|8%NrYUmENd>QdXrH;7E57jq4RT3s;AJ)qTQ&w&7sZ<)LOK6^Q_JevIo$Jb zCgn}N%;I_l`{a_Rv{8#b(lv_^zKpFU3l~!kyd~_}l~~>|KAnY*QTD zIYS)_uUb6g$Fp;;2j;>Wy^bg9ozPf6V#W3&My%9P7Slr=+qF8J?89yp6hsu-QB}e)~7%46uWyf&rqJhVuzI{bJfHA zELMUGj}WhS9evCOx7pBJGjuKVEB%%BMP@#|#^OGGihFV3O=-iG)>p<&aE~NU%_-&h z$WiOJeg-~-?w8_2S#!so?lVWYM>|vQ99qA%=8iP?E1bK1o;aI}u^q^rI)99)RpT?g z`@wTtKSi%2`^a}qffa?=8;;#gJU(D-zH@3e2dGSx)-~HAbUoI{6e0l6IC%&Ae z)P8yFsjt6GBL-peQ^&RyUe2puT3Whw8t{B^c~X60>GmP^4{ufDY%jGw|NiqSzxeX` zdyjqj{H(?=`~TpN+xF0(Leqex&o57@|6*18z}Cy@1HW9AIq>sy=>rFRoHlUOvO5RP zUU2Kc&kw~99AF+8Jj>iaxWBo7cHyL1A?$r!W?&Qi7h->qK4&q{xAXJ{asD3O|2pew zqVOjCghf}ChFtbG?^B73;>Cwm?spZR#Y+4NMAmm8d!C&&4L*Y}Va`<62x1Icv@>aG zHl?T(Iyj09Q+Fl3KIL+H{bLVixCaBrpuF!W`Zb3#|V2JxbeBXRO?x$Xz4Sf9Z$B9%w*E-y7`c%J(SF>s`O) zT&8Bf4t8I-UwqT_Gl6Ah^*pigQ}GYBnVjuYk@u~EoDGCdc0gNy`c{VfApUvyF0@y3 z{!i?>P4HawhA#CzF9<%a_S?hVIBv0DSW83I^I+AxIPM7zEoeli? z)Gu|r9?w+4X99XJfht_7rVz6yND?W9?M%x5?)mqXOKO(5l3A z%z!uKd(z!f-%-9b^s~-92@FyeyP~^pfy7}DnknDf6i;kT+RvtatJG2U)A3Ea12kPL z?RtHI?gZ9G<#&@Wqj%kCEgkCeo-nzqfy;XW-6}Y6Gp__cl@|M@gJt$q?=G|ZIItm~ zjmyU`*XW6i5H5alnZz9muk+s$Ci#II~RbjjWAWg1pUfowObxzuON9<*`B;2>*h>U zT4n7pv-ZgOK(ATZNB!#gDb^FU4at*49?_5NV697F{s|wQj-7S=A?5DvoWWbo+Ml>8 zWShvE*o9n)=_8L>eZGCNt{5?gq=8`L^Swn#sv&ir2Lls2r4 zfqy&37?_cRv*>Rg^(BA{J7Xc^XJ>2<0k`Nof!~2HUoGD;&g3hVG0W0$B{<3CUDl7O z^nrfv4PJG0o8ZJ}3GT$laP>aOxh=$mv)Zh3Kh<$7IKv*YoBMDo#P*Oun?1EFV{b+W zVzkjQcGQ^#{G1c*7(1&zcJ!Nj%R6Bo)=S+6J{F+o7JM|Sw5#Ex7P=68l<~p5whaK^O>_w&AClMPvY$!6++(KXwyT~h?A9%z@47hQ`Wh%2T-@VhG zDzbS6I-5uMK4X=APH|tQXeNFj@3!}K6^>dzB*&x_EfSwX_Ihvc+rIS=udX95ky5lT zaQoJ84J0-avJGcz<`z?LI(21HPqk&x@(g0a=1crH;+&^T+L{#B7W46gWl_s_SO&K( z1K&z)?9hkMrzO*`5NvTd*V~pQE8MXPzZuz9T%V@o7JU|064uvQsm7grH}JV3RmhX4 zBcI>OJrp5@_&of9{kF8pe)PS>$m?9vc0TXoZ|dHuwJGPW;`rS|n;m)a1zSX#!jhU=T}nSDGPVG&Xd?3wxqqplmEv*eOsz6-)hT(zgAj49A9mjr|Kys7Qqh7 z-V(7mzWbQ|^r;ULbnH^Yb#1XT|sFcd8H2G}?O*m~$B`W#n}(O@>fhRp`n- zPWfviPqb$Ty_-ep{c-X9sFv=^k9-BY2>!ez<| z5A8Z@6cYTXbSYb$fWp!Y|h_eIcq8aj@9p!Eo7USxTNIz%pS z=@x4}IlKG(1xa3!1 z+HF>8T<%p-?FE!mX(UZ?eHYt2K4|Ub(1PgNy__WwJ$iny(k}bfb=18ZIHo~=0+Z0+ zF5Wxnj5=bF8-;#9q22|?#2>Q`c+=-P-A^FT-#*8&hmrYha-CCgNeioCQa!0OYkv+J(0v`twA4nkXQ~I#=-}A zKS=zA#bYbBHu3*2z;#q)4eAS}Y&GX;xPvvRuijtb1-F5B(VyC(-zxGZ1`&6`mtOB+ zUuhwoyUU2ZYxg`pKf^r)S#Q3+zpPXDm*TsR8baS+O24E|?ViIy9{A2?WF2*nDSFh4 z)RTsPh3qH&%Ts5^eljb_*iS~YpNv-blTU)r<>0fo@lo}rM>Jo|OG|s8kxaRdgmc2^ z(k0%E_-Be-R)uaNAN`B$>C`dRVf_KHx=APA;oe~Gw5Vp^_Biur-|dO6adE-hxS+=M zYxH&B9$hy3USzS0$Y!kZ5mHwp-;DYy@zu=XjEI+WWePrjQ`e*~UyE;z@Qf;WJNw!d zKKyEk5qZGQI3Fg>F5?U@5P3j!9)lR?6Mamr3;DKEhgJ4$W-IYcuqTvohWkUa>G%n= zsWkz4#Mt}FnQr+ma5j7$lp^b*X|2=k-``l$e@nUz8cKtP*3zcvgr2zQ+w0$!e_bW* zK`C!g#txlLCI7Io#3Ni46O%;jkfX%Bnigk^Nwk33 z7gM-uz??k;97`)0dXZPTz z_52ZYdaVB)y?){|fhL(|KHge zt{G!t$~9oCxf-_it8@p*S-sdmTK#Mw>YX6n@rDiLny|%Q1GZ-cHsp-UD=q4oXdC{B zLIY{Y3CZ`YoxceB%3&S_v;Jr6chW58K9w)IPeo#}zB6Fgm;Ja;WhpfN4)>{i51U;p zacgS0PvuwWUgge>!d35VizimIT?uPhkFS2=;w|=_~S<=iOyqZe`!Gp8HgaH<*YYs@+X^8d*x--SFJS#PnH0+v_<$ zP_wFE%o5tKAs)}}oBG9k1{`u9$u#aGIaV-od5fj5r#Ml&lVrWvl;k_}by~ql^-dD0 zBb&S}q%R_WlO-{!nYQFT4w-3^DfHNP@X-=l7G5T6|Iv?xCOhN0b;D)5j>}eX`SBu= zrGIB@{r@8_6S<$yz@uvsPzQ=OkwB~yp zg75K7|EBLT`)SqpSf2I|G~eT7bPV#p0N>+8-S>FW8zr;z59RC+!S~o}NyPWqdX?{S zKKq{Td2*3~(#{NOeT4G#LG?Y3)qRh#cfYs3H43|jP4_)6;5=sE5PSkv-(&Id$uZef z-($H84H=`uH(qQO1{{X(vC0qeJ@x0Wb0E3sZAUg9{b*(1r93A8R!({3OaL}(WB722ZccPbh1?et%2_&Tr&44`+9@WV_*coEGnqWq_}at@N7e75Zl8b>cwB#oeZA|R?;0I0Vc;HWZg9I!<<1T;*2tWTvyo780VocJ`5j1 zwinrv^Rma}es;N|LiQ5)AGODE2iw=YoBN{IRx}@@QtH16y10__7P=Vi{Ac)|oa%X> z50EFHz+W*+`Qm+rSa_3t5Che8;zYh69d_?4o z-}!mz?khP*s!JDNit>LKIIqmp&g?|Km(JOJ;tYxWs+NsZ<=1ldJjQzw_2)k8bXPV|zlky@P8+GK8SMqSyY_sh7^s|_r`D%KErHPw1zjSe*rL-Q%`jV9)Kw*qs^(}K>IKK zmpn#WQZ7}m`)53jdS(3V*tbOoWs1#E_k{|6sQ(BL*o>~bwG`Sp=&*diey;tQFmMx= zq2ereP)7R=)RQ}Gper8O^EYL*M=+Llljc8^4{W(V%xI4xPyWyJGCMNbqvZV;8QAzE zT1u!}&G)N}_JNWPyzHx5Wo`((qo_A`b)XAhmd*JK($#MQkDQy5{z@Nn%^~PZwD;lQ z{K~9@?2UWFH`7ueJleFFZm!>cZ+5n~$orl8 zdj|1YJXIR(AJca6VH0|sPJN^mzSjX0 zFuX5y_`&cl?~l>;S?0*&z#{VlAFS4W%oiu~qY6C97(JzrQ5^F`#;CH7)BVfSmd$ei zaQ=-tjFf*<>f7XOk02KP<6E8WW7%gv@tm`LFnhHN?0XuXbzV}+V{f*?$D$9JHi_Lc zfqf-&@_4iL*xNtr*pT~Dx1|%KW3CQg z6*^*p&$;FY?lr(Cdu=Oi7XU-~%hqj5o^sqJIJixRImOw&LEioFzEoaKo$b%a zJ9t;$!F#E^FVf$aINMjr`xE;6_nqx4$WA{6xQE?|Kd&N_168qCb)S zWTZtj<4&Sq+36NnGd`pOzxPSbvf~RYHfC>*oNvJ= zD2F(qWhU2!X-fNrIZC?^8@D$Hd|E7y3lA&p4P_g~tA4zvEDrCJ0q&;a0dCIRy5x)u zu^_&PbKc7!RcSl`S#v{4k{l!GgkYgtTi;FZ3yy=)ii{24$&=E znFETw&CK4pkvhaz@i}~xzmG2P1!(@`KFZ!pAK~u^Y|vrr+rt0Abyg;Joehi$yebwv z3lD5$-Ouvn*4yzTYT&<|L(k&;s^pVz_tKX+^d-NeFN4*-YI7~>-G&y_irfXpO(UO`7?Z_IGKxrnn> z*!>dtX1~kiJ~)VbKahX(cHp}lEA?b@*ZuY(S2!1KAFRk)Fu~e@Ud*D&XX(g?arh_1 zRpO(Eer+}NY|ON5_Chblx)=+sHH=7ir$Jwbz=`b5*S+%GY|o5WmT}Ieuz@*~MZc4Q zpSt$MagVLkWk!Fus#{$R?f4xFju;!EBPn-1Uy>DgoO?<=^>M_w@;man<_{xIN z6AXsVqM^4T@Xr`%@H+Z>y?e-dr^9+fx;wf=VjXH{*#Jx-LcGOw z@ioQKj_+05F2(WnZt(F-i3NzSJ-+l!>`R>J6h&_p|6B8Bu``x4)(!BN#(L$z#f26} z6Zyr527TkJC6kr8NjBxxV3X1wEC0cP$jic4oku5M4vvMFRVeMvcbHdXJwus+uEY<0Th12)JN`)LSie)mUfX33+VnXX z?DoP>JLjO;70DdD%$+$;z$5GWI5&y@y*r=$fVuEL&~-Wf+xaT(>+-Vj8~yzy#!+k% zJ9$bS-h~q#LemN~eZB%29o#ZcTkFh9d!F!L$OK77h*{b>j9aQd}?{h_W^^)j!TSZfl=(~w*;A(r)5{wK0dg${pv zt1moYe^Y#*yNR`_NzOi4Sfl0yEI(~AIb>~WU~R&`%+bX97RUbcMPT(pJJmel>#tUF zX3`4nRMU4S|5-2g2)&(y))Z*R3hnsrXD!=pT9F0qScP`JR8-pWj_BuZs8`;Sx&(hx zhv2VT$6qD*n+%?+b^KL#;4jkSBweQ~mDao?pf%_SA13;C8?+Yz?G5NgYXjY0=&DKQ z*B!KG353=HT+e+#?C)LJvaCXD#4HHzPHT}mt!cE{No#?w?>~7-y9de-27##>dbXyI zP}hsIzEEK51qSAbz_3_gC^YCj!b3ofZuH(e4EF&;I`sY+^j_YL-jARw0DpU5gx-G$ zK80q5M#UZ@a)HpO@!nJ*^d8~)l&8?U*a>^8(~vd3Nu7Vv>wI6Y)0>&uF^A4R%>2`7 zpj@Yca-9ZBpn=~}hW@BDQr*`y zuZ6i!!zYE;CQ(Nd^rG?tc&)dXIlMd6?M6mSjJwGtw$Y~KNPHimcYnSLeF|T#{}Xh^ znJkU3MtH{j8+`TP6PLEgxy}DAP0RxCLT590cIT^S;j7mgOJ^@*dArm#fH8odH!&_L z*iXIe0h@%MXPCI_nD>>eQ}BV&;Q!GK*lZgtHn0*|a$34%ND^i@1-ldMZR4!y+# z-73#0iC1Mj!DA_SJomh_9si`1v3t?{!>!v=w_X}K%Z!K}auupd5A-%(u1zfiR*FEr%YIumT zULFy?j10RM{_zHL(c8g4G}+PH!9OBAf613|jr4rP)98cr?>y^FciakXHXC@Absw4* zye8{-WsOaF9ACt5y5`Dt#2cD-H-e=A35wk z3K%|KFCwX)4_Ky^rn7CZWf(1dh0E6pYW~le=lP$-{6z#w~Lp2 zThJ{N(Eu4i_G~Nz8oxI)VZc0WMK>rrezij%~lpN?rj{71JIa=fO zeURPYZ}g40d!2GLa-H;Rp7d)L{60YI*BI`r={l!^b=fAw?M3eEkZsD$uFS_TZJEP( z8T?*!<_2Gg$98YM;8W#_7la3N@C8k-$nW3_k)Ha8HGY3weTv?_D_(o5-(SY~SM~o| zum6Bvzqbq>g2)EkS^ZUi4K|T8^F_wsOlLkaMjiY?eBU+wwbkR%>kzoryvQ5e@yT8D zYAi+14*h#~*umwVPQAcYxZI=a1;FJOk9E}x!tyRzR&f1vgcRzoqf{TV{7{J*iS{rsr?tdh~V3xfg0+tFb4kv z-AkHL-(S16n@fHDKDEG`BGmEmWup7=(|t=EnmF(%aIXd?krV$u9-VN!)6HIauc4n% z7%Q*P0c&J1{T3a#@huMhMtMJEnV|Gv*|DFQ$jh{UUuf9S(O$uClD1Xe^dk4M8fB}< zI|f_oUQ^o}(B~Hdr|4WBc<9m=(Zyci9lPqjSa_M7k)IBK-K(zgzSm`rOWG9Dnv(IA zyHRm33hud0InOVCv$C%h|09Wk-SFK@Tb`V+xF74K%$5Gvw;6Ua!B1v@viY$L#(?%k z7e0tSMq*#=um|Y&vTD^{HmJj1Rtdj(i~fkcEdO?G50gvz{iNj%GrN}hd|MuUKigg2 z!I!icx#f(v%zdGq4qIAKW}D|BKieAbLK~7-=%5_fB!3lk3oe5gD@hj^<(Yff@?h}};`m{+ zjBv}?vz``?zP#lEc2!9;-Q#pW4!-ZP8}lVnJ!>X&W+QNMe=u>aiQfpFi|$YA(_%zL zdT!wRxf6=}9P9g!Kh9F+T;E6PxhqEkJeT;o2QGZXJq!0}d%`B#u?3=kV_XY>(~Hb^ zFLl~lo#^G16q_mCaa6IU*lgH?fmM7;W=+pHa8`ckN&O|KM$Sny$$}P50U9+S2c4L-BN2MdRy6x zr;GlU`G#z_rC}O6%!Ou0W2V_9Y2p*`Cc1Dr-Ew;7@H={_8ZB)}nDeYF%cPlhqP2XjXv~$ix_7UHrUhe1MKmPwZ zK17e#2+d1A*^d!VK54p|FH+4{3mk`lL)tUO*h;&mbbMX({>!_}AJI|Uz}?wdcf*(N zfSp zT$gtZ9^#pFYx@~s_b*dQ85!&1Zs{xa^cAG5^)t^3nGeDz4?U`-$-EF65;_ecpVYIM zr|@l+7cW%Wuk^r+ML(rfW~=j8<*i_X#Lale5c@YC;TYuG<{ zZh-%;V9c8?6#ps#*hCg7A18jw_=JZj?bS)7ahAUndP~Iy_~%=cy>F2Jc4W{k!NkAE zrk|Ih%zYgi5IJFMnq~9d^m|-Ab{**G9eu82Ynv-R8hOlN;m_JV6X;_3zjD;&Ezl-s zZX+~(s@Pe@zKSl}JHm!;SN3+A9iV}69yF<&9Vi)ilQrD#p-=bFr~EK=AM}MaF34rQ ze4-p1WRVlv9L(L!k;qK@GWtM+k)9>MdroMGdJUL9a9TDCj#0zCBBODjrS-sCXDjn`&QQ zhEFDdJNj7nGI(Kri@dn_PRr&xzIF7KZ%TyT*GYO`Cz%eUGrsc1#t{=o zU{u#i;3SS!2W_0?{~vGdMz1?9o%Fhkm>{P(`%`RoAEjSj8@UEe>)wa-Kde_fG6+tjE+f?~m;NS*vSp zO3Hc0DI!#*d%rzvSDhf`vBPoq0kn`=bZN^!q<=bH^wnv`$vRorkGQgd%H4JSlmpP* z*bj92JpuiSOgCG{mF&SZTt#|@5#vc>sH8Cmg_p?q2oEXm)2VM1KBaJX#)tUECy=-L zMw7$8tvc?l{Zp5=B0S^twi;P$wYDNW_W^hQAhoaWSqBCpBRLP))0H-L&Y6@0rHr9J z9o}fbi>*u5fk1~-sKd}rNIV9Em-_1_{*_H-^Foc6ZsI9*s5TD`cSYskPWWc2-k}}eo9)TqRf`Loz>_Q+sc8a*PQ#$7uwwC z%FGULc<}zFUCIF`b4W?O*|n3H0}D$MT|ejfbZwIBB($3sSTg&5Xjycy_0(6=7&K03 zt1b*Z9`fJ2q&1xHOxsHu>(NFfcepE=a_WC&xXZ!+0++}P%n6BGQPS5X@~8Oqtkq*g zct@aPWKI?YV)q_(qwBoP%Mn(&4|tC?y`O8U%=vC>mO5u^xmy@mANn5huu;Df>I$Jv z*=MTl#rAat@g9qwyN>l#WC>MfV7^^kpwU?yPl@Rw>y9eB=<5zTMOBt*0Jf?7&70GC z-$7koc!N<-CG?iTH__{Q-Y{<#-SUsgBYeH1F8I3i-y5XSpri{OmOy9uHf@dl2pEJO zM20cu`0db$mg69(GK(kA4=M?*K$=` zQFwv~CLT~d=1-Y^qt9(75 zmpfp}nVUj0xybU1X;XYM4ZTqb^IQFfZSx`drptD*@EGyY;=Jj-AAvT28;7WFI3k%@^qFE(9Upu!fo}k@%nw@?=e5y@hwnU49aa2HGxS zZ>jR|MxBTI;NdS=H9jkApQQWq$`bHeOndv0&!H#PNA4BI)B3exqn7Z z{|G#K_3;uPGLccdq{$e``{g{D^MgEJ^E?L6dL7wipLtM49sh++>aOJ0mjZ)~U2dCi zuGq!wRm4D$v<<`*L5DAT55dPc@DNYC#r=pm$9JI*x%bGVL{@y2i%yU9l+S?CZ>`=* zjQ#R6zP%s#!D^MgHvC9nUF?T1(dEK&htJKw` zt+%d3887N+>S4@oyvCS?>tpsK?y~z39w#`K^VY`rO=tY-+B(Otk=O*^Wc)Vh<5$7+ zKo4V9!dZsyW7a_Y!7gKl%+u4DJ*$t|4;#9UnWceP9w)kvnMP0An03-ur02Ujd<%Jg zi99y;@4mebitMAG7S7h z>-dV|dGl4@2YUwU-~027=eyJ)<>i0Zy6_j(^9Jw~ztJjuQZ&6uxCdvz&BCK(e8jI* z?o`vhSv|kmXIAwV+PfC>YT50U&C)lcJ&`B0?}I#h$S=AUk=gUfSMIky`~#f!wm$rw zZ@Ks|4AWuB0G8*#^#*?H`T3uRiQqhpta%^6YkrvV&CkR9jy6>Neg_Zae2KKX03U6? zb1{##`=b2q3bIy;PD0fq!u#Z$w4BNLPp(_SBeiu)Kc9om;K#XF+Yn^jWUncC(f6ph zzCa%mxi6_4-qma|AA>I)&l#Y!CYplRWtEg~wV`L_O#ZP%)=17PH9Ki*HFb+F=yLxd zZC93>&~=&7d0EhXX?J+~%B;t&xfzbSBxS61qUL|A>VI?1j`C#gcg{|CJkGj)J~_x0 zfs9o!+2pXAm9hI+OAd;ThL~i+XN8x_e!zd<**HRcwo7LJ6u4#o?S;2mSJ>yQ$VhjH zJewONzxGa5St5sX4i{WJ2?9(*d>a^ggbZ`zm*sf zY9}n`y8+WY{>xYiZ1n$teSm_9RWiO|&9s_xNARCa4pD7y&G*y(qpUBx(>Vh?K>QFk zTH}&k4MBZs8kQ29dPl(iqnk4J`hQL{nf*rwP!jH*J9B2G0cfyw&e8@U;xkG^ewg{7)o$v&g5IYv#kriBg25tUvtm1xel*uje@UgR~XC`Zr z`6QmibnFkaN*`=H$oas}EbF)Wc-CTzm{pq7#+?x@3*Id6KVb4laLRw_ao{b&vgegq5XY?cQyR_FJJo`wHYwSF9&77rZ0%qm$ zL+Tjex6vMJDw!a<*pEV(Ka4j%CHSY7OvrsUvxc*i?fLII9mTh!TU)(heAVjb#(M`b z2dGEJE10K}NL`|1`A3lJi3i1|X>v>Kjy&#V&o!4!aK1D7@`}Sw$M=8lbgcY?)3KcR zAjM%yd+u$@TgC4y4s>h#8ih{SM+%*UKqnIOTde#^~AkT=(uY8omg*W{HR8sAW1 zuE{MuJif6^saXWSOaZrI({eH%A&PI)bW=!0MU!(=G4h?P!*YgPXj*g&(L6U0H|A!O z$@K+t;UlKL$3Ex&i{qvT+ujeH*mlA^u;s(muB~=+Sj&Lbo3?&V9dfSfgn0nz8@F=5 z-`<-dLpj44dh8X(WkX;FW%}}M!&c6Vs_{1))?@;E?Sz&&&i3YQ*p#M}OlVjWM4!@Y zT1MaxzBAITL}4FW6IgSyEQ4Pk?lyPURIM%_U%7hic){PVAB2Y!`>A2g)Eaovp3P=_ zVCONeuW5T6P2Y!qSwH~wPN^{`;QN0sazcQa`m$=wiiJ8S)v%uNKACs$NBD7<=q0ZTS?rWiwCipN&$-Id7!OpS&YNRG*nrIhPZgh_1~{I2wF>(a}Hg2tKPq6Fudv z9N8sr;Z=E~bYGmo=(Mq~Nd1*@lnHd@l6N%Y+qG`HmOsQK=j7XcK_;zC!;O>)a?PR4 zjg(R390Fq^auw@!gq(R~uc+e4mIr@eY^$K96KR$YjQ2|DLe{K^HqB4uBxB~p0YMoP z>?#AUg(V|gPxE}bHi0ur=vab?ZN~XVnGj;hwoc#yj$e*mWydGljmNq;6v!JqRo!vkYe*s%f;}e8IQHM!v;HK5%vd z|2S#G$diDNnUss7+(PoHXI3oQnU#baWNkoCdJxpD65Tc|iz zn?;5k?o#a&JGn3EkJ=sB3UNcd=tG(oqJL%%9YqH}8d?K?*y1zQGsecb6^RQWcVPGQ z?JPPIv58bMHr^iY#739bv-jC=avej+9=Oyd5I$)287F|VzCrt2$tY$*?MW?#Q(5dF#gzp5pR3G## zvCNvF#in}2ZB5{QuQl2jSKTVIt&DMmCs)V+p^h<*=osS};N%c+9Wz>BN8r2C$9Qy$SAAi0E9KZ8}<1jev36A_;;Ao8P84h&z9dvr=hE6zMzXlvT{oq&) z>^;FTxfeJ}vH$gi4{SFbaKM*3@Ui(CaFqJNkpZ52g5!o>;E21fXE?HgJK;FgVXKVr zEV~9AIeu`M(R=m;hq)Ix4n_A2hZWtj!9U_S?_$u$UDtqPf*%}*(Z#B8h`tpb))&7{ zZ#_B>*3>NY@;>hHP|&lz(QQ4-LuYBUHTD{94WliM?`txj#QhMt&xh^ikH`r4GU9_0 z;jylFwnbWnr&(Ll;dyZ{pc8?|xruKczG7_KTJ%-jVMu46Yrqhp!;r^XCj8ToF=c&} z_GEpOw#5!AZD0DftUr_VI3$`ZD(SKoB|M8P39sgC!R!m&_;vL~-vbN z^5wUa?}MO}Uyv_?e6_@eOAtAjHCTM0`d_1L`32vY3m*lgi2NH!zT7`{mR(Moa*eXp z=X_)4eH@hXC-R+thIWs4maQPIm9*aaR`-=}%p3m`lp^x?r{s(MQ)k(qk#_PLWxcJw zF;ORiQZAD3&*Urlu(Rx|q}5-etn~}um?s;9Qu>0IqvUJ&b7$G#QuepkD4Xz^Z_G!h zf>L5B`zHCEf9)*$5oPyXqioh`-4 zNoT$rNc)MD{j@XfcG6ZOqi5var0O%5a(+eR@DkD#_n|>EFJz_Dypp7DeJv@|D`DD=bva( zVy?U|ZR;^tYSCjzoE3q`Uq1XfWz>B_jM8okaJpsgh)xQ5$vqWWUvw^w+_e!aHXQhd zwMz3pyn}kdpo@#zrB(k#8lj0UJ(|}B@a$;jvEEnSZU zrnkLB;m#X_lo97-yX(_{x1HY5G;lrKoF$0u}HgxNQcV6dmAU6vgo?~w{ z2!95giS`OC!Y?JBYAi7-#l98`epwS#8`*U9A70KX*6DV)Y zPQlaHfmeYs8~f!t{NO)i%!J0oe?n|)VpoghE;ZS+8n(MUzI}u}>|^T5;w++!gXrqT z9+t%((RlC2xQOj8lxHpVs`U}Cq7s{&>{&&hBj3-?n!;ERrwZC>%bA3pVxsu)s_Vmf zY=EL4XO3gDxE0!o^en({zmEBBO&_T1Dv<5j%d*dVFRu1h_(119ztfDoRRgZho7*+7 zlf392h$AiSm>DOldPYF{)Va@!^89(e)~^rMXSioP{WExk>?dV!g`RAaoUM4q)QwMY zuHwLdagL*3Mw{eW<@a6aL(X#SY`MJU1;(YgkMe3Rv@Ux>$-7L?EAp`9^Pj`7&F{L$ zlll!fzT?-1QEnY=2p{YV?DxSluW6TOZW{g1#g6(T`u+HP@r$>6B=*o(*pS7BlmIPc z?HsJe0eYT1+s%Vo8lY(_apiveE$cS9f9`g0$-U!y@4$C*+ZEs5@szntT${=@&W_kc z;d<<%d}y9K3Xg}I!q?q_p7kr{pyd0Br89Ps>tyee`a`xJHD&njA-d9FAss?=`vz+=|V*Xk))STVccp_i9Up$_ylMaanF zCtsvcPS%3BIDE#&cPk&Kv>wg%gCj7^W!1|s#&#^_bCKz#d}%E0-_fnSw4dYG{*5m$ z8zJT6D2E+iZ0&~%xVJihH7=Sv)u4@R_)YmLEAezg=Gayd`*)RfPI6Un%v7t>5&UX! zOjfAVVTuBu^k+LUgMF`=_Ala^*3ReE{(GnU$)=)OauO`ZsU_!6%xbkr!l32l$1ioB}X5ZLVa9X z7?%*nWjEu}!no{!=F%9K5`2`K8Jmy5$2V<5#{QeMv6^`$Z7BFhOB;WujYF~B`U`HR zX87SIJ>2C1H;>Tgs_uCO-|2p|{Lhz{Jw`t0zAFx?GjXC{od*WGf~j*JdGosGmH7c( z$~;%`J^AHjIpp)F?G3%q_AvZsgtjZujR<|88Lh?B-Az2*-OQyK%%xe3RWh-!KjWLk z#!lN{Dk@}NErup*m{&D5{bLIM4{z@u7j>0A{=Z%`{FoU8LBL;B3~0rmR_0F!VTF@ri)-sb*_QR64{R+B2P%0yKxBcpEB9g>gwf_T<&_oJ6q$4Y%e_-H;lth0Qy+)w*Qp@sAE zQP;k!&%svn(o3sPlP8qU>=&Tr9Qd)&Sqt%6#s9Z6+EzFXynC4IJxi1f@#pI2>k0Tk zi}&Ur8~SBciBqh&Zd%R#N!CEwFNrP3*J*QGpv`RB+|SsjQ*IJt<@a+wVu_4(FYTLv z!^_xPco*18Rg--QV_Bjq83Jc9V_stXGK_j;S;3jW*F|}`FQupn_6Ki4j?=~48%+v# zXE+nUzgBRcaKIgeZlJQg*+O<-vRrY!bn#lTdBZb{AwL?111 zgn_3w0(d$$bo`ieHRwRkj`KeMdil`Me2lX(kWXl)=8l(EuN#_2_~pcqy2kl=!kt6& z3H=4~X?6YgORK*>G>`C?P`Dg^Ua)j%KB2$Rx^8%B^>>EmVQnZu|9G~KU2%@fhvt#~ z1@dSxUGdWD`9t$a|E>tB$Ks!}R}al6{R`yN>iW$~t7Xr0-nr z3dk{bQwnh&Cvw+HReYSKe~D(!t4rDog+1b>)nXrgULIiI7YaN3lmht8+4ka;^7OQS zp}kOA_|Z$N1!jRCc$+KL;11HPvOb?;nlT# zzYt#z^5SaQm%w9GZTAhJ{t zu4L8$;;k*2ymkb#iDAk57h{qvTVs-LQlsr{%tQQ9IPPH`c!hYQ()N~+wq>3pn-n@H{6};#`ONjb*cA#5o#Qv0 z->dQV+rK5cnS^2aO%8pMz0(7oY>!m}qNU37y% z_}>jl|4T^zw?flH;Moz9-WdXqDUzYWQMe@J>;2>kbiq^E|!Qyh|h zWeEH$Lef7D$$xuD`d>oe|5ix)TOsh=9Forc?6dF}grxr_B>%jS^bXR^oaZa%IS%wU zJ92DO9V+wkD(*&|mu~i_r;)B>E}FxLIn;u0;cD?wrlK<=E@Crh=^_5d4QA03YWmQ! zS*op0_SVPAw=X7pz!IVCO!%Gn3MZDT?8&*0qbx`7h#qAtI@(t9hU(%B@S|3p;`^|f zdt_QY39eS^$wL=c(=EO#m2?yJ)FMyRU{6?s4kRC4fOeLG?^uoZ%YK-hWj_8`2^!*@d8>v#{f5fxpgaf5Zhl!AXv_P{fVwJP~V-{+)%*w^h89wc@Ip?GQm zPwWGpZX|CBzgl!{1zWEMR?d!qIX}*be|vnz8?DZD;Ouu=oy3RzU*c>hHnm?DXVU&z zoCSPY1aWqPJ1Rk(9p%6DL*SM&i@{Oo`$7$8U-s=Sv?Ka6(NRh)VA01sGk&!F59n`B zppzVr{>n#xxu5^0`Elz2v7Fkcb8c`7eU1UWQZc%%PTGC{o2NEQys8WNppdmBv<_tJ zvvnBoUn07uGRED5zNi=*J%Ocx^>uRqmVrC6of)Eg0tWm*w_``7l|PXKZPC7)_CKe6 zk=sYn*CyZ%<~0QJYITba7rNX^{%_LWQhq_5X6U)c;#2xBoqP0ge?Iiw<0@zowUdm!Ly7?{)g&6@B60z+~XSBlyeVk)6e>v51xAn zJfUUopv=Ym%zsDPXTBGMpCZm2Zk2cDwf2s!@i*l?J@9^&)wfvQ@zJ7v&$0Rz%6mcJ z{U-Q^yx#_2kovys_cK3FgX8P_nV&6ngupPJ_pjq;zWWRR*rfz?lMVQpPyGFt{mh%C zzK#F)e&*i^z!%ijil6zzzw_&A4akR~e&$as1qas#@QUs5=kgwc_apKSzO`{EWG^T0 z;9YwM@BftdRe|?=@c%FGKM1@(L_8CDAI8tTBZx!jPjsD!k{77^cGS?-) z*uLex>n|fQKg8xi)>tVk<+`wo$UF&;4%CCs4o&8ebv%~4Fx4?u?Y_6Hf7px;n=fKW zzO5I?cM3bV(E47uK)(JV`Chz0KF^SR5{q)Ue*A4nK70v}IWzK-fq`WzXK#M{(4bH5 z3N!a0S??Y=mD|zyw+B1k?k?{*$oerhF|kcm#@KbrSbHD7r^Jr05`Rloy0OH&N^nUY zFX__$a?)35>G4|nKS-BxlJmYOXnF*+Exx|wEV35--p#LqxHV#bFY#;cB7IL>!Ab9x z#HHqaPu#+jpYp##jVVoG+$B$szP3)jrSi?gw_?>$AohMmqn@r4z0YyGDK%c<-RIgc*p{zaBz@TOf;t-&y@vbwG!Lf2O%?S-j*65~;i zZOh+jYYJ-#<*~2!w{wPeP6ygaJGG|cf!;M8X~fv{AUg>@Wc?LiODCYM=}WL-Kz*gwJ%LE*#CaD($qai@wGBvN+OoDneg+T zrK)|zh^>?TJ+k5Jl4c=Z2!4~=(wQ$7;%645?5iueVqcy3Qj+)2@mFaycGNWzuhF$a zb$IAwBl3xyvz_LL|7>R?_a~08G2sJ*m}$9+@7OfCQ?7TG=#stCelK%$65n=55t|J^ z8YXn89?r`eMkm;X7Ie@n{z04aIK#@SB%U=f*}CUgeY2-l*B#8Y`u?ujdX9DdgZ2jG zPPNt!{4sp2tBAg2Azu(1lXy%<*KNE@-E!yKKuoD9;?v$j+K2@5Ut;ye$h{J1*aQu4 zQDeM^_4c}Cp4*_;UdB+znW5B|%~OkMW#i0GaKrB|{D&2A_h5Zug1sOS{HRfFUS!FF zZ2X}UH*Wcc3O6zK(bOmJ zuc*rgUPZ4J2aKPnao*4LPcld1yv@LpjGaIgPmzV)+_z>%za? zW*|Nry8L>B{8Zz96SO5`zL)dEYUWfA=d`_9$o}~HdK;f7a@X2(b+{9|o&=%&W7CLT zz+Oz|(DB8mHupYxqh`-?6hB`=UrFKdt}UG1azA$IyU5F}s~(^8dzELcCyT&6`sKDaM;q+V=!l1_x4tg4CUhpT zbEIwjLb>Grn9y5TVshcPp*ewN4*t)Q=?`}HOaBZHUPIpnoa&d| zCKz=}eNwN)AqlPT#z1{im!7x{6@nw~KTDk1nbYd(J^|J|-k+hKzks)6)U`}M&Z|y) zx=wgew?4`B3iy$;w$UMjxpL( z5={0Y+7Nyn7Jti0TSVn{ksEE)KNs5id;&7x)!eaWOe=H=-uxmS&8 zlY3(Fy%--JuP#^GKO-$!H`41tPxxxex%Xn;-Pua}D}4WiesMQ>>H5=aI<|i@xbrag zAx3a!G3i*v#_izkFfiGotqa`Dlduui1+iA;o~c&#ol5;R4v40Gz{~TGSUJoX zgw}OUpe|&aooQcVY}O4kHlg)ha<0BNC8p0ek(nAJ&iPT=OFtX2pL+{iw72>00WZa( z$3R{ZTQm=8!S_;los4q{&-)`3AAX4Xg0fpDd`9HA;2EKmle^==vbP7y-ljdrxTO4U z{-?pS0{4raN-dw%tN=qoKK0#=KRdxzXI+@yEasx)XbBjRw`k zHle>{Rj2tN5FRP#nxA4T`Fm)uRcJ3jj|wr==R$i@rxV)S7tkrTLUTfYLW^2l#dG>G zjrOjF_N0u^p5$FWv@f0K`eKv5gz8=ChtTCg%|1?bDJfQ`=x1O1yPpn4uKnMRl@h@B z8Txi^to(P-{bRMaQFzbLaq1_(jPYmM(?3q%q^{xgSX)kfS&x-<{Cqvu->66QSbsfu zVf)?RlP6S<)h_SD=&{-)J)p;GfTxH|?xkMQRrN^yUn4H!CkGjeKrF1_-7gvA;9XMj z`T72F`o*277Ul+fj}HxjJ8dd+TH>G8U~8Yn9_bh~U!0?4JW#0k{YD33Xys9dmaY>T zV(%14|Hea_&!$4rWeP1rJADQPUzW6Eh~=GmsOi#>k^OrQ{7cej>8IG=ioC3q2_u#c z{g?6k(aq@JLgtC&F(Lytyo$S*yko;~5ZhI3tp{_Jrk9+$r+a^% z?et8tHsOSNXYbY3AJv}O-Cq#d+)r#TuM<3)Y5xqifV8QtFTLNY`6z1nW23fzjJ?I; zSNiXo^7GXjfA841zoE5Xxu&*o|Mdg?X7;)1Yxma|oW8jO+lHw87nSX$P zr|;dgUX6~L@-6Js$oGUhI;m}~b<-!%%oA&$h`L*iw!2@m*G;FLLKQX1-^S}|NB#)s*9dEvi|CE8$Mc;_Im%3 z)gSi1diU}ESJy78KSG^-rwcY+eP)sUHFcCd>kp&*;?Va^z4pnvC*QJdoI<%H5C7<+ z1GhHxKl%P|`|o}3A6mKo(>H8dM48vyN4GC~E4**jRPs-;ZCo^CWc>#2qKtSXx<2|^ zTj2-T5luP%NXKBg(zhO*^)U}VLk3y|J@p^+$NHA{BWu}%0q<0Pd3^JhseOCMFW)46 zF~1}FQ7-gH3H?3izLja|#4zW19p5^?r#r8lBT!EEZv9>7e|t^)rnn|cxm)$;m1_@_ z6B(-i_ve4>3zQRIc%2Kw&MOy(9zfvaPEA7pzVp9L)xIgNSiTKjAFh@2B10`E{hB~~ zM)}qh-uE)Nj7_&~jJnodR~G!PM%g9*2ieJS%XdBh(Ij0|)Ot0>u0Hm1|LRMXcxcCd z_@BDhyB7bkf4v%O|IGLNNA72z?SF!E_3y8Gx8Gs174AQs+p**Rj{f(F`To?{zxOwv z&gs~C*+2SkUi)EvFXPr{S27N z=5=tFdtmF@1NFKa?1iy=l(_CvVphCjN-E_4XWT)0rOA}k|3f8X)Tx|~s~Yt5#;a>ztAFj;XA9rMX7rwY zr5%oEn^wP$J;ZCIH{4cRXfywE^#^N5C5?LPjt=+QhWesJbUf|f>nMCgNot^6>i(4- z>uK`?>?F(&D@n`0`QySvk1H9ar%O8)Jgg?gp1Gsr$m#EOw7E@5H$7rn@)2XKJRHBo zefr*x4_ZcHS21eIHD^|KjC|LWBysND{MM81-Gp7%OQt00cTcW0!z(d7`0w4KWY~FT zVVf)VA%~wNoj85H#OXtif?md$ZsLqIFUnR}r9<{+4758R@VE3!eAt##GEvTL1YFBrA<<@$TR z`{HW!EM+lkUxAn1-%)ycb;km1MZ|7!{aVu!_uAMcwa$@A@11_I<7I3J#kN&oKJ*6o z;o18(u>S&nFLr9!2CL!Rp?K{lg}v`QQ&{>=O`&niw$-i;*d~qGw%WMXS-)V~Ce21g z;Fvt^h1DzIQ3l|c4{VmxcXt$kbHnL7I>eT7;o9x>Blwj9gZp$*M+vqocAgx(CKY4D zBDN+1OV4g4BOhFeeM;|MCBySu_Csw-#v81&f(uhNdI*2W~20`Gd@x|y^iJj-}~0L&YC9_AOz z9gux5DoI!IG`WarBjz^pE=?bkZM}OBd5*;AEkiIZ@8z#O)RRzR2EL zkFp0q)~Le1SN!=L%t59=FPY5Un8xe*eBu;;gMr`(S0z5X)v704nR*dsiF z&ictKL~m{K+GkpQhtOT`=KluHp{n9;I=TKTtIw~qHlZijfL|Gt_b_r-1v-r=^rlD9 zYm9)#cdH{;JvlnY{sH=p4RQ9mqPX>SPw@Vf4qh5=_4PAH;%HB$J)2Ik?;$NqXY$4& zFLmiFwKk)Xn+{TUmNLrw5&65QTk;&H-DQf&+sC)v>L_o&mOg5gZqyTX6^gnldeoD3 zN8+mLK8$;+E=xCRRX=sd#XeQ{L7c6wlX|Y9-4xo@^f}bGC)(=%j5e3?f1}Q5@1ovh z?iX3X&1ck|1AcNTlcmJ2nn$^8aB+>+20mGUV=;K@)K}5A$(sZ2bg}bJTEWvn4K9d&J7KE5mX+{senRxKW_w=d_us100|f~)M&s@)1+QfYT0ZR){` zoG;ARMcJ?Ae>X5odn@T%5k7lloTUD4>fWM;dGDg1qI;J-6DX&Br++JAbnbpFkKTKT z@5^)}Rz=4OY+y6w`BaNFD#BYuVO1!N0vo|_YGn_Hze&&@X4<}T;m znrNF_#CuMhZLT$3@2-WH&xbabAuDg!8QNapj>B=*Zl69JUuj|K#pu*8g;qV0_@iZC zG;6dnT|b!HVYmdFHoe-n;$}mANW8b+hLg!8k-S4ie@mbhnN?i@Ra$u1vyp5 zce^@b)!n0N>QuF5yE`$_o{TPSr*4FuzPb0JTU@4&^;+qt)TM;CY)>bTHC%D`qSv(3 z2g$$g6!-4nZQIbf`t`u^uB8jGM;V=HSM`ZrIkWTt2l1?c6`$#eW9>@#;C6KWeb#Vv zn4Hc3nEoe|cO|yP|H$>*H6KK$@pnCUR?iG>-u)w`PsX!~I8S2xCU{6QD@!FdxZt5i z>%UR!zu+$l96TpFTKX=y5FGY02P$~xaCX*9jFd^Uo&~o`*{V^`)k)t9635XWqZdc* zF6pE6zd}FOTLk=qpAz)SQm4co|APLffTJ1>2S)Eoa3HbkQ@!VK5DyNXrc5IG=5shm z1P9m@4TFPZ^6ll`yYyB1rRyDBx|zQEaXMDhi3m<6G6xEvr$%V2QfGD7GM{poD@75^ z5$1}_ujS(Z%BZ;Id@6LltYEztUG%5)@rd5!Vn3VE&wkZr zUkW;&Zq8a(>U8!T8~#eeD%?esF9KixX}f)33*~IcP%CZUp`2dxAGVsj{{=3Wv1W*W zvkmk|{Lsd*K8^(T&)7eTye|7lHBWKs=HcVa4|jVk`(!Cc8%q}h`|E0)J(Zso*t3D% zO526NzF6itdh1TTqb^Gs=~aL|8`zT-)w>PYvw=Ma*bnMsp}`o}_mn7m1$?ss_#3Fh z4E!$v|4N(E{t4w9=);Tj;Ze@Ll9h1pI_fK;%pd8;Tg;0R&P@b%FStI$_5xVSSCUzZO?pNBX9M#8LK2wQ{@YD9qr;ov7O7?2Ykn zS6Gv>IiG2S7G`jMQvp5P&AFhg?ORo=`!MsTG%?0*NsOir#Vy|}IZw$We-{5!_6|fjG54M)EsGd<=Ck+Q<@_mLJ42o^->(zf#QeL^`R{2x_3I7o8P}kr zVVp%in#tMNC-{dDy>lZv6f<+jFjCXM`daaS+kk#$G<8b)YUodNHre#E7&)LCzkS85 zC3!qcu$eM_ub{j%9vknzwH@o>ZPDeW1Nd5VtWQzecdO$x9_)5(xotOl3I+b>x|9Jr zH8_1$nXcV}-*-c_$u4K2hM(s64nso^QTLyz`v=s0f^#tseBjg_1?4>};vK7K$6m3v z<7L`8^w6pSnG2<~vxRmJK|AYdXG@?RJMB!ucf_}8M@JvNVEyoLPrCAMSH!p zS4{tReb?_>Q*eUpq3Q4L)Dy2J2D>EI&W5VJnXOkC>bF+?D$|M2Lea~Wqgz!f*WnZH z*O_YNqnS$OWBhN)9Qz%`sZ>_-e@`aC(0s-jlCLV$3=E<#diyqiTVgMu{M=TU#u%FC zfpgkGZ{%_!LrFW*MskVnY#UOKrjOFv*^_Dfo~gViQrRJGZ>3$Wjhg1UDs7LuTjv{d ztKyXQi(|MmZ?esW1}=COBs#Ii6;|h#tCcdj2PEgnGozF2C(->5aHswm{1`h)(|x|S zqd8S{S)*Og7o6H`1V4@7LttON%&6gK8~A9{Ck+@5mUlEnX1WC@Tfv1cZfx71bc%1A zzAn?uKA<6Tj(Y=ji~=teW0bxV70dy2V>XNZ) zh@z;#s!u6r4SoUg#Q=VirL4Zb@gjUo8HM8kLY z5@M%=@6Jerdn$DZUPfF1x1r^woYX7j1h<`$`5JC}*yDFEX`U;%724~J%yS!;E5vZd zrVw22TJl4U{#9_gRsXPtZ|8kKaO$Ajyl^FM8{^TX4|i`}x7O_e=Z*UB3~b?iyL%e# ztxeAO< z+LnIy(l2St-)^2ew9TDkkmcA3S2{B*$6DB{z=?7Xn7!B@ts&zJn%5`pbyxN0S{^p`)uJ0GGC!p z;SCMgY;;dhotvpsc!ThORiyu5nWf&wPk4X^@2d2HW5{H}N7hT9CgnJP2R{|~_ootH z2H2Z{xs!gh0;{Jxf%{vD_7?hJ=DeW$%4}yd{pix?xK-6idSzxaeJQ6d;U|82&4pgm z>V;k{oMrUThS03k8RXYe-h^Mx9@-Py6@C!p*On;aZO2?bUos1}-gC$!>g+NSflfXfwQkhM*dOA3JJo4}J7fagMU!UrA6 zym*TkhQrMbng22`mj82bsoV{fHB5PfJtpgy;JX1j?O`91T&(jY|EH-uO>2L&SMWam zIi1g1s`D*dX(}(;raD`&!;$``F&B(?>3o8B17#FjU|ejhqc;DzUQ)#RWnfHfjLCF( zw5=+0T!YSMroJ@l6In#oNa=6!XvLSu{=o;IY=Sn$hCgLwlD$Gdx)fO=?m@;#2TwgY zNoo4CE~(8ta;!ZEx;&f*?E!Xt@roe~(Epzq<;`X#NWqA(o}x({v0yhZ1R}`?_+s?n>^wlUcPVUyzd9v z`G11zUg%EF9)HhsFjw?}k;vQzWN#xfxCvQ23Vq-R=jpxJBSNpD2NYRLXjbIkHt+<@ zZ~g*VM|j0M$bdq>($1<qQn2okuEr(I0?!;)t{*t7E*&c~6NR zZSRJ^7eTMNz@zaj`qZ+@P%k`Qc>7$^#V@f3ySMH!&2wd*efv&RdG)GDXCrc{EkcKX zVXM1pylw7tcPLI9`mbm34PAYc!MUYC&UhDqi}~QB0Nmt*qdfK{HxhH#zb^@nc_rhh zjk9?s`;IZL<|JpFEIZu{s+fzu`7BMk$Pug)!Quf1dd} z*WELTeKq#z&oDn~^kdty7$5x55+`cx+41?yjpxQkg+7Ag^Lx@8A|G)tWlSDqUEHSs z8}cZ86nbcgTx1MPJp!8fs+z3XSvxXyg~rffM?`-p|<( zppR|PhYPxBfIb?bjYf?&3K@sRjK|H4%Ob|-CTK%q#fNEU&A~Z-k}(`g8!3!Gcai+_ zeh6(`#W#^JwKBGuj!I}L@hfO4H9$+k2ZRRX4wDC3D%R#Y{=Z}nFfUeX&qUWBc}l$M z(`)q5P#ANZc?At6hbyl&Ad48W=QXh=*jZy_KFe9UYhuku1si|XZ+Wb`EC`KZgDa5@ zL?-&F?rD#nJn$`nnOH`^G!H!Dmoe9WX3rYs`kBm!$F0t7JO$Qj>NkXCW5Z)`$=*vv zPm?v)Z94m|NL?#pT46Zn3!_B}!SenJ~N@mm*Sr+??K8r3|p&p1C# z`Y+=yb)n~H@15X!CRKH0QlHqAo}@kDMUqG0X$BsF<4@$7MxNv7NhFWJBeqi|r2R0^ z{y&&UVly-!n%PVpKj9a&u}K79axSDG7bGbdW-C_8t_X9{fj;LP6_xl^FJQfCtznR~R-r}S~wjrUz=ve%r-n(0ipIz8auLZ4(F z*08r0njcO6PIdMy!&vdfm*BeZTL$~4h%dt@a-tzj$q={=A#fLK^Dx1ME{d4Hw!)#` zbI>d04fyS_i$(XQ&er1AO(E}md;#L06dRs!=OOeb>m88}?jN|GP?Xpw%S#{pz&O(0 ztR`zVLin(M{V+eyJ6}JBZomS4NdHA|X4!6arb9#AOF@^;+0V3EZNAAoQZF~v*GKsG zR7PMG*o}&+*&b=~JMF>S(@TM^6xaqUROe)1JB-})7rFbucY$fRJR4YlKe|Ys_t78k zyGWjB&M2ENl4l|CynT^8Zt8jEB6;oxo)<5Y$4wq&z_09kH0QvZE|O;<_0(P@&)wh} zUG7)5L5$k#`aCTn}=3yOoF2~T&f+nafK)4W~6TR&Z7 zZSua6SAH<8CA$`G`DE%?e2b?$# z+yAqDfF6%rB+mxw`tOV6SqQHGdXYSC#_V_GsinTdk;;eet<%rKT|?UY7b*Wf<$pyU z>09+TY=x{>2~tj@jUS(*4Hs$e1nN2*!iS{KL4GCU|5~6f!xhZ`V7=h%+x z+jfyW(aah46<>{eaQ4(i@ zO+laLgSqTyS90&;&S+%t81_&jk@sTpE2_Fu{=+XvcIGOMJ)G@6N!<5iVv~Sua~$2& zZhVfeM6R2O{CHxF)%S6@GSheFdhU{rwi~%Kgj}_AOwXD((ty2ZS&kF9d<5{Dd6Ya_ zjPAYcQISRE{z}gTy|YG_Xz$_NaP(EDH}_nPEj0J$((q^W0{cq2?`2UF_#W=;T=#3@ zG5soYxlVCw@qVedhkJ$lIcr=d=TP7)K^@mNTODVAbe>-~(laWjqfs}`KK5osi`!?I zs5&)yES9}cpuCIz9Mj~U(cE<$-S#oQ+4mvSSXz=C4}4d3mT3E-n*;Ha7lE&voM-N2 zkD2S=VAqIP&2$$F8J3iAjupyl0R&#JR}3=nGPa zXDl(o3%FY|R`7+c#q)yd=(!WU{&{ukzf|Wi_3cQpjnV3xNqu6=qV0dd%XK%L(_{US zaT9s<05}ponCJ0%T3o;$;5NjeqhSwdUM}|QS$_!U`$OCX*48QL;Se#^WqnG!p8e}O zefybZ*sI+#0@{fNuh|*+u~}>&9(fjiR1H&!PsjNs_bJQnMpq>MTNiN0UVNOUaKF+V zW_61_eP?8t+o0mNG(nk>fSrCddMv|S_M-{P&J=|_6SKL$p}M=#37XhL6euQp!B5cx zVh^9j`!de2C9Z{(>x|5H8!6lQxX#U9@lDm3=d{o#C0pk((;qF*{yqiEq=PFjkKYfpH;lj{FK3o#(^2jq{bWFjDp$j0Jue zTZY0|1B|u9!YKY~yM}|$6awGfz-Rgj_+A_WALmtP;iK$1_-+coryqjD4Z!!ru zqF=BuZ;YyvA>%$BSx0DP+J{!>4E#w5y|hLsGe$!%twJxA*%{(*A%(r;?oq@>q-->C zIIxW@JA{qW?$Mmvr}G@oy%U~`sBh@lHWJg~Ed6~4I!yH6i3-Beqt`h+k$KMU`LqX3 z1?R|cG$gQUG%ay5fYAt@TKclfYb1V4NZ*Dn8~DCET`80P>#=V+dJ11X%)6oa|CW1d z4D!^QpQD%Y@I5OH+Yt73S1@ly*Fc%{EqTQ7(EcZC-@DlN0#8PkTP+hC5Mwz1f2@{? z4G8)I?SBh83}ZC^Thuc6?NVbL|94`4EdLYv|Cm~~m3EBd`2U((h8(`scq#v1RLi>1 zAsAEm|0n9_zu|IxH&cHRwqOFQ2UtJX8`86^epqLRzpozT z{{rhTRm~<^gS88oM0X~z{sWlgzrYIITAu}0{Pk&l7Fa2(^;uwTqJHTcu*!d}&ldgz zx7Oz={HLte=c)W}5A=Bk|AT$b;6HV0eV$97sizsgqW5#xkQkSvlB4}~2|X_}`(wX( zSU+oSdg3F?WOqOG;;V7L*PnmSr~R@&Z@`yID6QNFo`kM~^q7E7xr;SS=G3ixOSurQ z{PFqodbMt&bfL9Kk=XU1#`eEm})MHGUmr(+pYjCB6Wq2alx2#hfv(RT5 z)3TkD=vOJca1#95qFBpC49EI|c-x0^T z%Wie{=<&aX-H_b(4(Qs_#TGmPIOLwCtld(tz(EWEY$B{~u`d@MlU{iauJlUI8%dM( z)iZ&0UC$ZJ9L3kYPUkjKm*Eos+N}P0aH+x`QYlJw>_sM7X&dSIPtMC8H4`s$x6aXp zTznYZRD*XpOKIdOa>0*@rBTd(9sk9qGdR`;HOd~v`Yhv}Py523E1+i`bf;9RoNKDC zhIM|wa6O}}yLxl1yAmta3}alxF4OmvrucS=dGY0Sc_O0d8GfuR;;Bh z1$*W^bioQXp=WY9OO$U(U;cI?_ziokq2)dceq#+A`mKj=A`b~K3mvcEdLVqdlRT5T z*EzT@vi)?M$l2qO8RpPVz)vpCLN95}le+tP@@0cbuo&@E38*?bQ2i;HF12yEbtKzo{y-_g!|h5$YV zk8&0wI1nAo;w#Q<)@&K7nlrnw_v*&pi}N(!**>0L`e|Qe&#mlNJ&H6z0%z zd@=xYarAI7`^Q>fmO8%)PNi+uz&?>>Sa&mwJs=VhH%%S3i%|LBmoZ#HPBW>xX*thGv68t21Vz;EU`6vuzk z_^_Y9q@fQ8^5KCs*j)=8%n{Eq=IE=Ob8weD4_M{gSJKl$(yK|24x|?!4dnlp;%p`T ze)=S9pOmTo{9Ij)e0zXzCD^Ba$~u(B``~@tjh+zg)aEWcqtkL4^#{0;xg40oF4AO< z4d&`H_QYK8*6epU*G8A%>yA;}#i@#K1y8vPWS~zydy&bY&tQ3>3-Mhm>re)KKFD7~ z`>&mgf_us10T)t7kpG6(b1AS@E@GX0Tw?Dku5N5w;HzizN?W6)@5~4J4qedRjm{qW z6Rc12Xt;y-OCEIgXJHD>BRUEBF8t=$L^+F%cO_=ycbfLK^Q;MSeip9j5+vV+^a%^0 zW8s%0SjU84cEKCcICnG`DUMXmjzvC`{ZJQo4y?c?V=FYQ#rT^*Ot5wSb8U~_&!<%O z6JJ$6?*iq8FKvZRzp8BO1y_T^mxb%KW#)T6d*~ zS)0$M;kl~o|C4n_@29uc5Lqmg-h{r^T2F1>cN1sk z5>FYNi+?X0?G!_!D)kGU$vODm|Ms7OZ-w^-&%nhm#PJvKX~9$WB!l{JY&K%BGZ~4! zNi4Eg95US~WV(1~-tB(9DSK4TiN|=I!popTk@dtLs8btPVs?So@g*l_Pba3gXB~PB zWk1GRC1>eIv6GorQ@2}Z)auQXe1UUg<|A~y1UL$TXEAWy z419~Q-?)jp8^~9{ZPbrxJE;uJGUyZS703bA{7U|yb5>9mKZ)GWGI+;NtL9$W_%?|n zT#PTXo=K{+^`&{vt@!`Cm41jlh4`{!ueY>Wr#ikn`Sj-BV}C}>PS+g$czdQn+3{R% zs^c{4qVURnx_JW`C26yTpSND2`0!`dCp>*n$9;cd7Ckh^I=gzp7<>N6hc}AtMjCtX z*6`R_vuG<%XPDXQn&-@5Z!Y>h(Jx4wDfHV)y8_q#RKc^sdn;|oo_qW-ZAx1!*z5V* z!7mSfp|7KzI-S3rhrSqjUOUT)BNuGviecK>iXSsGFyN2V<$`a04Bc_gG^>@g!K;}M z>r~C>)1E7kr&p?u7GT~z>Gb9k=(SIfS9s`gY@ComXZ-@b^_sm&_zi)#uH&5VaV6tA z>XCh8&n)atxo_B+%l_-2>d4a@?LE5jZJwV;I`h!8du~*G1!>f~g!_=+MlY`$?|lJY z_{Ej^PR}h?-z;^!{rC%dP4|A1Gx{$+(K$UIb2kA!{>gQ6&sks?>+NF9wec3Y0NT*z zDYVfY&w4#c?xHI0708Ok`0cq9I$_WJRF3UZ_RQFLnQevda=#`=?)o&$CN0tR9`Ev8 z32wACcCXG+6QO*j>BfH^<@BsXk9{Y;6)9s-$2fYHMLYB9v*$|SJ1DwwVCIZLyH_N- zZ05{5?G6t%my!8?JvBH9&hc*GkhMqV%ZCe3ZLZKO;-}J;hc3~>xD?CUNgZbP>Eg#y z?8qg*@P!{{o!Y#YGFqH5c-hfKdS_mm%wc?ugP%0nW22+!nkK#zRc|#iRw?_-0&FD; zuqTOP9TfXr3wesTkJZKelzhSitHGzFVY_6{Bd@|8G_e_yn6p72PEs})!|yrn2M+x% zdWksjDC@ZVkKw;rY)>Px&7qIoQS?oJ{yJ?SZ!s{+_eSV#d9BqcxGGxV*XN7wAcKBC zM!yZ0tlh-=`k|#|x+8`A8&1Z=(lyax=D(lUiOr)4UJ?aQ83AvJhR4Lf>qcsPbPRrU zuc+MVy?LML%Q|%vo=?$Fc)k(;57qmAzFHZZa+#`Ld6{BPxy;1(CB#_= zPKTi~T$8`|;eSeb%<4=9{K zG#hcmdPJtj*H|j{PC?p`ac%?`d6z41ZUqkw;6T1fx)qwc9v$!vGxSdj92VaFuwbKX zRD8l;OGtm~N_;`!_tZd4O$)H5g+rTBiqFT`r*Z$xc+9#{?sjF(Rr+3#wF_QX^xx{e zZB_V^=y`Z!tI1?Pgni@sZ0=I3S?(gWO1nQRc0?j$?=y|F_YQ6;G+nRk5}jWQ@-5B> zxlhLVHMH`JH>~9+uoE4C-<%?!$jM7orM%T-urJe(@uK4>x1lFI${jPo$LH9ZW$RVP zZ7--|_vW}WmNPZVnv|qk+aBb3U|GgJGdb7ZMqB%-XTI88UJ5&xZ%9)vv`emj{ydBAt$8%lX+uIfEA)``LW`h^Zq=1I4J3j=rP`b{!UTn_Ec-ePV9e=FoquLfTm2bjIoTTfi(_$wbCMF z(C5Uyn%{ti%lNanERGs$9|tb8^xR#=t{47Y?$jGhM!j*qMZL5(OTEOq7dl8znOWM! zI1cK@dH3NnB5lcz`epFMUihIgdfq^ms`PoeV~Fmxw1GRZ7S0vKMlefF^rrBR?#$Ok z-(_!mLO&w?A#ij^KPLSII1+dT{?3zwGlV{8EorRx(7$5lsOYf=KDIiK(?^+0gLg(a zMGq(QEgreC=iA}jhf#cnB-TZA5EX$tippO66<>xf5_^FJ_8nb}e^H^KUdQ{}nd}R& z(fkB?M4h1cQi<~@`K10<@)#GY&K{lO`<(rk%=1RZYv?>TlXpHi{`>{2vzxXKQa|@~ zpj)e3VAgbX*f}fsG!R%j?K(|Iy5%MP(>A>_Yk4~Kr&ql>$ScLNrpsLo<5)ZPJmsUI z{pr+wl)ASJM)nC08rnuRa0$;1tI0Vj_SC7|#g+5O&lv;J!}g$$eU!F}@H;CsY^J^% z6^SiT$7X(n(rOJFNz?xfK!>y_5Gql*^7<8Ol3FNEhWfcMWwjx0cq z44ie-$D@q%;GN-T$9GdIYZ~J%<6DjYztHi8=Qy~-s*P_AemAu7Qu$obCco>j%91#;7%?SkCC~4IW+h!VEj|p;LeeL8DvL}4ZXK^w|ES5-s-Ev_Fwj& znohq{zKwPLm^1}mqB7qfU=GXLu}$uQSj7%`v`g-7`qxup`^tKn3!OqA+WOJuUoYhx z?H%s6dLl2JNA}OJkw@wfczyIsY&!%V;Uk~JFXWr>Ch)ECl+VZ`Jf(s=KgEAjox%s? zyW}(SKbZeQ>zao?%if}u`g-I)G?h}r9uggaU%rtw>C|RBaP7y=Do>NQW;?9qEpu7C zcUbWEW|+tw-!R+UWSgSdbmq(Yj~%COt?D#}D^5)YScmUa;7Yp&ztxe-jOwE7jB55P zoO8^~#doXd{`Ydv*H+s@Adm;!uvEGe7x&B_sAKN-_KxKro{AUX?zRZ z1^1PrtB|rH=aoPklJ|hj59$b}KO2Y*vXAsc#&xJ~d;@ZreRH+jEVzHQ5O+PW3T82AN#P5KnzH$3`?Q|#n*_*M{_3ewU5^G@POOq{1*$X_2S(`N6ur9|^Mqq2C zKg&({!KJSPm-M$7KIKox_m`ySsQ&b;g6TH|@(0rKALP;M$#WLv=(wMr?bK85Ok~bL zk&^red6)l!50T5|&b2%ZJf*F(vbyQ(x95j1F94q|Fy|R(`t?KzE`%O_KwN{ODpi9^ z;CPF%lr|*|A70=v!8M(7wvck*?M*5B>fL_24fbKrobzLNOFcrX@6M62NN}Z6&)IS4 z%*l{C&f@=$0RC54eLKisT!qaBwm}mZ_xqvqYGS=qF-C%O+ln9`OK`m?c_VIguE_C! zD@yhEw>To-xuP(Twk?Q*c-M9G>AqFW1&vnYU5^augJVb^g3Ern`bJr zq#4+xKbpT$_VokH!jLb**+WKPk0(CPRF@~_`q}ioOpk6;=5CtKuan&>ItltJI1Tn! zJFA(1jGW>>tAS>kYB=}s;L}^<`By3#X2wCWT2FD7pD{QA{p4Qdl!tV&$t2B}fM1uf ze3O`of^V6Rqi@c3Vq^5?)8PYex3Y$5{G}@=WA$~&5a?%xN6A_z{%eKj$enLF2aMo* z9%%#Ae^h*o$D;$1HrH{6xUMBrlQGeuct(K}UB0uTz>gc`ca66eR~0xbzNN61D{o4? zbivv2ThO&4Cl4%}r}<139LhIIlW)Ov!RtK{r;%Y~?~~wy2cyf-wVy#&9#|F*p5+`p z(uuv4Z~B64OCxhj`h0Ye(NZFN2yC96@WP*5(OBQA;~RR>2K4ByqqA9u<4d#Ue-3jL z9d{aIV~obG4_&)u#+LD%9jz8!UKVz8E#MH^EUV_(dIS0S-^gC3wE%lm>$8RV_x*e| zd)rdcvFDp}ouadIqN@^lbpX5y{CSrszF9m!-lTilxW?M#L4IpSCTuBCnw-#s>@Bwg zfBJ^JU6Wdt?b?DLEAJ$uh5h!@5%j}NKT2n8ufGeKXbb%)qW-%QvzxZC&r$g=Hu3kJ zR+?6|UuKar2xE%QF=p{dOMIo$l<=6+G>tf=M;G0w>9~*IasxQN9+_9C$thybx$lcX zWTr{ThKeH_IVq(sxZ&sWHXa;MP2^=}lj5X1`bS6Kv|x>xSmbC!g?b+qN*r_pk8Vdv2$$^L%U% zku@^;{(vTHB)YDg5h`mWx@PdL_@!K@f=oSA_9!8;M&g%bjYL;a*3kOF`gl3z{p*+C zzxJ7BdmF>yQ?h<*{8r=hiLNBc#~OZlyPp(-3IWd)m*d@8W$I^}Wq6)F1R{?arO}NLO5m*beX3>Ac*_SStKOY&yip z(bM4YC)>mad7_r5nlbXnfgWu?KKs<>-Nef~D02t@=;8}qbo1i>`Aonkx{QsKjbVNx zgMMgHGtZYnhr~#V2PT0>K{`-@U%aiGq(GyL+|rQoha!&~xzoZF-jpQaL>K~|VwR~R*p^JAm6 zDGS+ObX9T&B+o2#sj2uEDM4p%iH4ULREzKd_D9H8*_u4H{gw3}xessn=w6=2DK|Lp zig~4f!+Y-jC$D<7|C$9)e6)T0`~6cEe9*sW{d@g8NI!JYAEwEb&QxX&skczZ~qhckfNUblTMd+6h*5sg4e6n=-R51 zdr#@tr(RW}-0}Q1Eo#5Qx@y!l|Jg#Ujh^UyY~G`5_eC4qEbz`O#ppGn=Pm>1Q%#JC zPFLDYTpVMB(teE^+nWua$yuLrRZinISLG{LT$ax{MgePazB$rz z`>N)N(5BI~9lLbxy~zLG$orX*$pgL6iIXvXg|YoU&-v)C^5*6^OBmlL7{{j=->HnR zlkvTZ@x7VxeU0=U#`jakcL!s8m@$5h@il^zPZ^u3jPDM{)}Y4i-v{oF@c*j!KhVa{ zgHC@(V0=fm9N6E=`(oDOm|uRd-%#1Q=@4VxLz&g!7(DE^xDV_%FwP_K&-N*GAP?D( zR36x5Y}u!km2y{u6Dix{-nSpR((-YJ_OR7a#d%Tsc`>#?B`&${~ z9{k)XjPuPY70$hCTDgyHsa!H1|mv^O5ZPgLBoCsW@Y% zt4@`>7s0epT96nGX^g+dyaC^^|KSc zWJnPCMPDjwsdi?KPDj?#3$4RnXC3dB`wjsZoU=x6B6WZR0 ziHar4iVQtbwG90>ERMdWtn(~58n%2u*7<*ezh}P!f6x9u#NR)_--}8Ar})eNn)pkD zUechGw6tuC1v?3JUZrBko*pauGgD~`^SHo(E)%+3#ymG7yNir0zHui{*_nHDMW{G#j9+r$S`#4^yBk z%_hq)pP&Ej9L;|CRr2{E?m$_Qsgxp};}h_Y?r(?k_bWyB_hC-6&QZzTsYxMo|KEoD z_J0HJsneFd@YI&}e-ZbN{~O$I2*JJW0=R#VJVCzkui`%c0(39?)*y|h@PGX=Ytw?S zN%#9MK=%si!8%26v4J{?>u`F@F{LRwe0aJq8AA6_?3IP~=d)j)pMO5j{&&&;#IJ& zXN+eBXFSmA3G``Qfqb3hSxla4_STvYP<+Q!{{eaK1M9AyuF#? zuYArI&gnJ3((L4e z4Rkf^SL0plXP(;pNAjQ5msqnk-Li3<|E}plVAAwc=##6F`!u^~^iV0J8v^>oF4BvC zbiH#0x@Nz=-><(nu+|l$+vf_*MjP~xav#_OuBDwnrz*}t>>QUv-=cfE@)_mnR$%SIhCpl>4RK?zkx_hO z7ps;Q@Fcd<%%ybrO1kLIMZX)=?Vh|7-FiU3djhxxUq#r>970#of~}aGX zP}+$48njVL9N#I7xr_0(t5I!}8T;V4k6_#v$hbpyRlupqsJ8LwQ4(FZF&D%~+Z_0Y z_-M=EDR%_(I9D+J41Zh}L%qa;7X3qy-bf5%d^fAcTB~Ykdw=?=F|t1%>W?k{W~-As zhi?{xV{J?s+tKVRB$kEf7JbQ_d+0~EiCqN_E*)d}Kd4Le7C}$N(1fw%f!XNv%2Kdd zDWQ&WB{OC>riu@J4UXD8U>Qe$B(I{5wcB)@z0x;xKII=dbl=v12uE86XjAP7)**l5lKz~EOasK4HR?_iv zIy8Nuh``glnn|K;=qNx$sN=`o~xa{cz@tfA=|ZiqJ@v_F-3 zrQyO8>kvFBm*+TxctD0oAFfOqdr0A_oPm6pVhuYRPjt%`i6<(0J2?;b`{kP-p5wfV zdKbKy>pXyuvLoe2N37WWC`#X9?9pCZThS36uz|}-BYp$tnT5>rJmR_=B*q>xN(*yc z!S+((JnVs|=q5+ki`{@0_aX3}g?_t|wNUnxD@ZGx8e3mLJsjA*Spa=Z1%|>Z#gS{a z`u3h0+$lVFF?PO%Mfi{<#%g=w6Ls?K;1`2CbIsWqd+-(Wt1kv)|537X_M?VyyN&a= zZqoh)JuVKZYvswooub>^#vbt_o>k=ekY_jVAMn&g*b3j{naXoN&pkX_dFJr_H$1C& z{)*=c%I)E)xz|`ly^TD#@q9_r`TjGW-Mnw(nM!>PJXi31o@Wl}&+!zSl%T$Do7jIh z$2h)$Ewc9CJQDsRKCq3h4AL$XzhN*pvfY5au+b)Ro8HwKrE?}@i#SM}Ef2PES)4I) zZkFKzzpRTAo4#y2W7>nBgSDzm)|EuYEsMLWk}m#5iX`8qN}0&8jg(7}@0?E-$#?Ds zi9Jp$=`oUiId{h--9maMGU06a2I<9o7u&09o^mc|Xy*J9TivR8<;7VWAXW8ZJx##ZYzP<1^iP5Cxu~~f*#`*bDSiWHg;jJ%lXMM-v7k=Nqm{7(Z9h(icf6G zu`NvRx^kYAJ2pONAbIf{9=h5n5D_ir;($vc}x$#WOWfSZkAwZ+P&iDYq4qO9>rv}1Z+hf&vSd~kzEcVvqVO_yVl+4?$VENi%oGC<(Gas zxEcHEF`eK=s|%bg@yZ>XoQ$+d%8c$?*e{W9d5+@PD(NBpQYQcV`&Iux?AK-V%dXAS zb7M1szAYazHl3HB>q9R%kg@Ts3mu!swXuA`NXE6U)OG3m^*&F#Lid9IoJ^bP&L z%}gcMm${FzVa$%M(`Dqxh3(4AW{jZ4F6xcx=ggG<;p3F2A6%WQokbe-3jQT8@s`9Z zOMjS(tsd*Zn)Ga^Q5|EyRQ!`#qUx_h?%5rwyw=IxBaiMKpnJy28c9JQ%iALVwwZrs((xnXBy0rs`o*b+o$ zG`^m{Yag`K83{c^&3Cs7O+`h!WxW3~R(X1?UTJ%fJ1+8mVDy>I27Q8^`%3M%O;Fnf z?mS}atYYrS_fYyb48d{p_;Wb^chP^`|Bz0erko0$$bH(L&0EGJ3!3s0l$p{enGf5b znJ0UN?r+E_#uw9x-*T4A9$4;TG{OTOxmoXmPJ1AkDedxS#9B;oQFphIm)OL{x zB_Hzth{ZF8$rIV;v> zyQ?C&kHoyz{7EtHUHWKu_nq8Z=X_D%U%{CDoxaJqon&t(d{M@&M)nH)zm4x=|I-PN zkh@HB_of6Hp%;D;7@=Jfu3-O$ z5V#BQ2W-NRmNlC_?hN8KF8AA0eNMRw z!6&Ga@g8veuRz6`F?~qaR;!AdafcvA5=VS!o>S8Sx+j+5bzfx>DfIFZ4<@Czx@xeSI`%RK^kvE(z*U9{So?J3cNvBm%|^nTyXg5k8P|fo!Od3MiRGSa zFztHM1m{tKw3+{?#l*YhrCL7I&mPm#fb z-yY+e*tyHQ*g%S$B{uKDcGmJ;%qYXU&E8{EupW7og zI`OV`%)0~BcVQWHZ2O>I@tN3j$UHHJG5;!(oYUAB`naPzIN=g(*sZ=V_Qv8<=Tf)X zaHD%Ve#9;8O^!2mGuS_OatEk0>N0nVGSBV#p$=Y=w6T&Ur5i?1=WI~Z5AWWS!GYM!CR1|2n(l!a~u7OxBVk=o|nMqU<0?H^| zT={fKV5^zvR9m4X>$W7sRxVyZw%XQhnF(#3Nl+ki$;f4X-{;IZVF+N`-|lZepWh$z znR9v1dwJgHectE(MqXSLSYeuQqxkGq4oiF&>P*$*aKAb6+(vod{ULfs-Y*~yw_}X5 z@Gs2yh59mEw@}}AsIQ2*O|Gw*y+Fzt^_5ZIfAFo8k@`Hu?Iyo38qi)8`K6RL-JB^Z zbQ#~Py3Yzh629u|ErxJTclU$33N^mqE9ro!1tRyRiem7NZ|| z1KN@ARo>g_tHg)BeB;@Tf3aNXXES_qazDoo_}=IzUa49?59$3R*U}~ZJV-zHCiU|a z{bX@z{X96JpXaZ-6#mKmtfim-Nk5~&pc`1_Gmd09b#bQ3r|6CZRsx4+c&6lW{N-}> zg98r$SE+NFUf*lXtp<1eMUA?$2h82U0d*NLsbGJSKCRMWQaoVp7ShIdfXT8Xm`I=V z^|^a^08H8jv?Jdq!=wP1JaQSB7;{pKuhXaK7L9RKvX3Rhqi-IT^dKWk z83TvUKr3hHaFBVlU13f;iFX&-Lgsr0<&5=nc=f_y3-v`8d18?jDl*q_|Ec0k|5Qg^m*olEMs`=4}$Xd~Od+7+HF z_w^cG&h|HGG}-Qd+|`{s#F_2q+%j_BgkJQ-!moK^njY&ox^no($Sa=^#%2~+7fqmeKg^qH*PA6vr^4(y* z>nXg$x%S}fmFpz0cy;34Qrz@;ql<}%85lF zU)A$sPx=;gLE;eZ2R7ZE=t9ojc@RCzaUW|{+L=o`kxox6`npG>BNZRgFZ4mSCvNGB zysm0|X#4Mp>3YmvGpV_F#}^9RHIth?J8t;1+xf+?+xei+(rV{Cn@NoKW#8b|>{0Cn zlacGYw=%9dvjdK)?warv&LVnIjUDG4x__iS^hL+RtQqOc9{RA0XChO|H=!xSp4rnk zMJXShR2GnNb-ze_A#kzY?yj+A7wt%2=dKx?J$uJ6kGm#gkjHt4kN&D2XM-=jb?7K~ z*^KsrkK;;PuQ?;X2S2+bj3;6qmj5v^&qrU+2t*%MV#hupFUe7*EmZ6+xLaUwn7KHt zlDmSr_=veUoq%^K{R^;$0{qJvzRywi$WC{x=M{W(pGID#ug^+- zpHknaY9hw(H1)+3^+`QHpuUK?h+G1u#QQYCZE%(`?&1A9d0$*o6EC*ZRJ~4rUW9-D z#kZe9=4+KUFE`Iej>Q-5foIX?7e2wqzE(=vYWni=Yqui{v=@95cefpVlylUNy4%8n zPanA3j)M~dgBuGh3*_6-JoE!sHQ&)K@gn5C{P?wuz|ol_0;0Rq;0NrEnul{P#ISrB z>v8)039$Yoi(GH}#yPry>oMROX5M5UiEOpjRGq6h*ubyn74%%MSZg9HJh6Q_$_`=^ zjvsxO`W`gJLO1(>pW60uXQs3FZndrV%}nQ!ol5Mj9Mg{IQEN@bL1p0>Y;sxPa%hpa zAcyrM{Lt;t&n)oVK8kXN3cNkvE4st8-I!tYZ%<2VR4LcRBD13#|p`Eixy}V}-z< zxd|ipMOYKobx+N281mzX&}X(Gn^%XvCV39B@_)-Xe+?YV$m3TI96NxoJfAhu{Y*R0 z%h4tKXk#Je{*(L2grb;bn6gdo>m?5>{rx%5HC+PVSDlZ1@Co`_B+f$dnJdOX3l;uqe`S+wQ zAIn^;=)a!h|3|bTd#a5&6u!(!e}KXAFf?_VffJ`L;DqmJd|{4^1sqah?4>$x9j5&- zu=*1?BDqk0GFjR1MX4*>yu9g7+MQ}%Zoi9vr#aC+wEQ0Ge}eX}ttBJ18f(fsNy# z>1v*BH}_*l)jxk?wlV|zX}-qmQAhW+>)zYD?&V(Uh_w!Wx0k)HZ||Uw$^UEXsegIx zdzN>9)N5JyPH)S)k9(>2Gr>KhUU2Xk$Eb$qf5%)&AEj@b$(4H&+gb=2_D7k@hG{d= zU8QC=g5Nz`n2%AZpti}CeNyU1>vDQ{}8&m zgzIvicaHL}r%vG`^QNJDS4F3r*;5Nn-9%o1yzAYuJ+`mz6FpkTBy2L{B!)Dr^}9LB zwmqq%8}rE_kvEBb2-|HL{GjMi9F@xPGIUQXu%{~7oE4>(_f_L#F&B7LtCls@ru2QQ zR7-aU@|Vgwi_Rl1u9&kk>4VYtZu)K?L{2g3H+{~}R$|$laULl&Y58c@m4pA#cdx8V z=(~!X61lY~=AggQ*PIve7kZ^QkUs%f!8Z!*`_DllPhuwLAVrIdVpYV#)uY$344-&o z)}PJG8(vTr&Nzphj0_WbX%X>*<8LfSj*`4J#=7{yxQo|?$Ri%))sd`=2z45LSiJSG z_hDfB(Ji#Auf=SkrTRXxazL9_?0>RPR6-L^rO>W~P7s02-}iPgskb zCGB-Ml!amDR?~&Ok?Ma?+SA8aNuP`{77iF=lsvsM#`cW~S!|~+PnwXi@uwLX$xZCJ zo@*}NbFZWRylWHhDzT4vSm#>X-c%po6Yo_C}SmuMqZt#553|x zJL{<83+R+qus(ah{W_m3ug=uxWt>@er7o|ay{rRi8ol=&iZA@Fd@pN<{bo8a%BP%M zcLOtHt_*n9vPTO0hSI2YAnKE+Zmy|#TJ|seqWF5D&zugWU zf|uTQ$98w%Rn@xYsCigxmMOjG7=6KJzVO)8@tcO@zcTfFeA_W}01~?>F>aFIrhYYR z2U(zs`X_O2^AYqG$?dGAoy~eX>-2V>x~Lu7g?1)i+Rk^u1=&acFiCPKT$L|0_+MzR zm-X3KjE?IOrLDxK+*O*Y+$HhVc}eGS7`*F|1WjDtEU~`dTmN2Osx=~hwqjAXlrlYwZHCdaUSorqZf*_|Lc2}oiFy*@7~|r z^1<2O?@>O&dXc?QXm;p6*;hIWL{HHDVG((eGW?3Hp(Q*o?qW8FS*zbGGykYpZ0u#Jhk9jS>>hiPJo>i1 z`Li3|>;6V_Z+`fk?m|zPI`&?|bR? zcFLu1@-VNr(?(ui?RzbaJ9}GvANJO7`g3my&#GSC@LtueTY4?C-|j8B_v7ATo`pK+ zI&b-+vO!`awRm=&j|w-(7j8c%au|G!2R@5E=hL}GF{|J*FgXeDu^rxO5ck5@X!r0n zYVvz{nRCFR3LGn$gAeMHoY%*Dp^+iJS6Wj2*Kyx$+=o*AImz$GrunbtUU+5;eH{xe z5FA{|zxX@s;9qPMv-mgmQ`uvMACNgq-dFRCeHD5fXO1QbO*#A(Cw>ci1->^=n-f_0 z(8L>Wm^nMZ87$9a7ZwLLU#(0nfLBa2S+;Xh{GXJxOq6j(Q!2cMIvwa?%Br50$2RrT~`;X@?(wFD21+*%5G z%^G6l)>4c5BsZ52J(}Y4^o8+N4U@MBdqL~R(^3ORZypplc0Dq1F}jAEm9~G&KfCeR z&e?%5yvQd%pA+c48Tq={-F5^%uHtljMu>G1X1(;VhPqfwkq?U!_KFqoXRI$x_x6ad zAX<30b2Rc>*D7DZr|c1-M|}kmvl$hpdEtG}M$fS4O-camw&gx#oxA5?l+(+fwk?<`N-ysh^GS=gsS+)b7l|9Uj zz|H3O>=0PlhI{&m^WEE%1+Dvo`tc)&5$jeQ6$l2h0*KIsE=7)9TAm6&IiO)=fwKcJob6FNaBMka1I29@cpM)+K z`!w1dX@q{GUkT6j6~s2(8VI59J())8=Caf&{kNLPJIHw}eb8Lt8#CkTad;H+lvsK)myEm70}dKI$d5-~%+rW2 zUu4$Fz(RN$!@eOr><9G!Q|b&s8($xWjGDW^S&IK_7c~FR;3RV1a*+#6!%P49Fmy%a zaj{7z@_P-8k~SVQMu3!Vu5*7!Ec7<^m*`z!Em z-x*N9jIk10bV6u1V-$XHDSX?C%kXVtTao@I^KF#_>NEJZ|I+Idn2}Rx%*jXGZQqr1 z7Fds2tVffKS>OL{>@~ti3!VvY0N&zPGsYjoH$R5|fgxMwO;ciGqs*p^@Oket?-6rx z%rOOhMEG`WG{u_hlwb#Q zZ0}V3cV{abq^x{1jXEd2R2)DqOYq#R7Xx?8lKnh*ZpY8Vu^=VzbRMxGrZLdLkyH8t&X2)yvAI@|>(azn}$_LhoC`WXp!tE$dw1!TaI^rF}@If5nj$azk=&k zG0xkb64&hA^2|LYzVM%UX5gUsM;bUN_^8QpIv-jEpHsrTK(B*>j|Luyz9L#IIRZ@@ z9F{Vd!k_d&3#*pq_sthxPk7pF)&B?lbRM8RO)rD(wd=FQ^>6X1J)~dn;QGJy>y=#p z&bX%h`}*}Pe0mS+*UxdipKFmv8)$dY*~GOKpVE7{mbQLNnKzAZDf5PYJ(l`A^y`(B z|D|3}l;@@Tw>$WDhf#)ax9ep}dG4l+=!Z33?F@9Z=scnuks)t;`n|ED!_4@xro&n@ z=#5^-UGBa$FCWo#SeD1vzSr{B%f0oJ-|DUZ@exgjbpl@L%V!e(eU83t(%ad?^>un* zo}~X{~{Ty&wu3wL(o(H&=d5BUb##rRqO5aZDp$uB+(SJJ^fG-szf->+OS_!ugKt=dzvp_+Eobcrp2I&K z{}}ov_MLLpMICDdKIyodf5G3S$c$3PBfJ827`9Tu9sl6-8@tOr3BNJ+%+L~SdiS9h zK5YBje8>1!e85XM-=DsQuu`bxAyC1_4^8RHV$g!W9y(fJ-rYboEz zIj!3Bip2A)cs7P-5p>B*jq^>}za#Abkrm8~er9SEdtUSr6Ta@~yRqp;;3ZES<{38K z_-ow1gl+c~HRhwdcIGMTAU6F%?5OA-#OJJ@H4(v9E^{LHO~s1;gY@$o7jZwEach2Q z;CIbO@r@7itdM8IONPM}SMRi4N!f>k}}Pc@TfQtN9te3sUZ{`7d0r*LSV{FZ%x< zGR|!7ZS+;DDCjd4;df)=zLK!sXgOiQg$m-y#17@7?TW>Ue+WMJE53}MHF+kbz4`Yj z8)QApJNZuVXHYjj(mBP>EOZiEfp66Vz>K|I@`-+f{#ETFZV4SrE_Hr~x?0Gkx&^;= z&3;NfLbn80V6e!gS`t`XmUvgO*vO??7FaAX=+L@~E+d!f$kvbWtzGfZg z=+~F8)APaVI4-&H6ZmOqoq2_}#4kzZXW;Q<%1Pgz+jO^|Eko>_l>hvH&)QM z1;9^qn){jGD#mWKe>=~m-p8nS5ASyKi`Q{}&n8(DBUuxpK6g!sZbooJaLsg`cYZo} zD{Dj6gMs6(q=MtTy9md*xAf!q!UT?QGI0DW;JAJ!kKnle?GeF=riLoaC|y2^78!uI={k?1*YI)z2Nd4;9mwb3|y7G2)pIk z|3~>1`e=8yj91?yL~k$a8kuj~v!=eE!-pIbJkKHr?D1<7c-cf;euB@+Yz+gi3%OwB ztUmnDDJTBavNi@TnZ(VeaK^d;`;oV~1Ni61HqaO8 zhXP+H{dkx9p;y~RvJXicMjb|O=}$THUE4<}|4Z6R&Qtj>)Wf>Sm%Zx{dz-{TzfOG> z>|b7DZt9^G+Fq!53yeKZ%Kelw?X+p^ahclwRumZJR-BTnQua6_Po=SkZKmzyJ#7>B zm+onqtyi5lZICtI19OT$Zw-xqNmPd54AMo51LYhDnk4NMfalmqj6Ipx>XH`ZzX#C8SE*X ziIlJdi$2&wZWXDI_v_2l6n}J5N} z$=^%vUdE!$xwKc0K1arko@2QxZChAA%v&}C&~#OMJBtGH{lL0qeF<$f+89Fp zA$U4{U0njRmK^FZE3p=0x=X-YuF1R0nFV*HlP?6D1UPPK{*qs02B|}9^Lp~|GLHVX z7|Th<^y$;Y%zTNMBgRHuH=VJ?)#K0^u1zn zivNZK!po0reTp)_$7la{{ERsfnkaC}dV;+or22_@-&m0&u~mt@J6|qK^h2KATqbZE z+4?=|*-agsw|U?^XP5Mqr;-aK4LWMk@?%RbayfGYTAeTY=GTfu-pg#w*^54cbDG6g z^_<|>YWDw_yEn|e$T2PRp&R55i+z*)+Mft-Fs_H7YDWY1D%slu-J)M^(d?Cl@SE_Z zoJlXadB#*%%5?$uDe|S*v2|gK_SF})OYBjc=ezaTre*PPi68qgZ zRmTQ&AVyz&*uJFSvd4T?`fEwVz9;sg62^IJz>VIzul$xk&M@!%^Y_gONPIA`@PApG z%S0J@FYn~J%&DxIJkAMY-208TD*ECJ|AA*C6=lARy`(Qb{nK*@vCVtGJ=h&9@ z4DEi^$lVvw*RjxT(VMXMy(;b>kDS_&d5d#{=2pW|cfW1NyWS8~x?_)PxUpK7A^uPae6ZPZP+Cw}_m0 z`N&7*<_XnZz^|Qp!?dx5x@9f&!<+asV=X)@bHZBafEEe<%X$#}7u@$U&nM=6jd{I? z`MsNY{wnkR70x~ws)V-E1+e^2eAz@b0lXMZZbEe|`Y z@T)RD$-$97(bKlqs!ZQ!^R(^xwd8rS&COSBllIwE?F@w|@dJB*t+egkh0iFq=5Ilh z%fX4VAFUZ*IA~3E4}CT2Z-DkD*RRcqjwb>9h%Yx6A$*mMx$ueK@w`;O!T|yT97+5vsD*k!Y+s(D~@uKnJw`cS*nSO@Q+4hf* zYsG`l`qmWxIPmfwa`T7My#?0coC`lqVH|2(=rDLfn{uAnyOPr(3%ldT_@(jRom+At zpV}m~Eiy%ILnjFxmi5%uzfRhruL+#AR9ABC68xrK1HbFg6Kqb#OWvL3S(tGN4gG+# zdXi~^7oWUL&a@O7Ds0hC_df5=L+z_B4=tw(r$vjtyfk~Ptdofp~$7!p5Py* zGDmURa7Pj}bvHD%khbfgrxxfbeCw+Y&M4^1%@mp8RqgD8PI%humDp&$B~QUcv^SqJ zWt5jQIgRqR&nainVkzHEoszFaa7FlSEBT+ToZSaJHk}rSkY8*X-LqDUEF(0154q^XpGN##meR+v3XiiDo4WX=Ag3<0 z%<(w$xEEgNBziq^qYxGe?=wKwFy4zFsoiVxU!x52i~J|_@G$FQPffEDwXl;KTuuqRB0`@5_-^?Una~rVH&hogPGfAK$l2cgnTQ76G zyh(h(S3#GW80%bZpR!haxGwe0cJ2|G4ctqK1n*~?c=#LtYg3dGJmg!Uv~ zyyS|n;;evI)FEqzkZZ-Hp9}D9;%|oSQhO_a?QqTom^z~U_s28tYMg4ySo2=S@O|@< zH%5$5whfmv08GQW!}#$UX8_#E835nDN}1`%R{WCh{wQY&46L^jA3VvE^(uM%e?mV0 zhxlJwa7*CZ=!PyGty+`?{PmNL4+Bp231AB+n?tgX)`TOVVx%?d_YvU)t;FvnBaq2G) zXu1AJm`3a!`r~)^-f0@%=pcu`eCMF=#<%i~l$CGfoCYZ?ZAdw3=dYC;rk9g`4FBc+ zXRXvXg*uiqM@KoQfjah1VLn34$Ag~PfnMe!R~@#dD=B~fwR-;kKvMqxYbaAXB&9!p ze-s|d(VxHHRxSH*fc*W}s)H`c-(NaZnfVTLv`5R|e`#Ar{{Dtz?q@^bO_-dRH_)$l zXfu1Q{RYlYXxv3!%P)c}ZtjPHC&LAAz?EU=iw_FU3?Fh=<1ur}zGE4~8Vj#hjz{Uw zaQH2;H#vF}^{RTkZ-XaNZ-$!DxP^Le(CdANe3?VJeutcy?~v#3sQhQlYdkcOTwBOX zL#R(|Xv-b=T;m_Q+=1^T{!qusjd*}uf=egEqrnF+ovg&Hobw`nKc(=5vOaclt<-$% zQfdOOZ?QfC?DY@ud^FYDu07=FVOf?N%vuo*c?QDgI z=-YhOikG!g3=EbGYyW-jkmANA%Fs0_L(KagXZ>$hGJ0e#idioYDI>Jl6=S{3XT7kN zW?Gnw;p%YK*rj!Q^!0+j=DyvWqhKYkr|iEEFy?olc@Hq=PZ;wM#{6T+pU9X+Zm43+ zThO0au0rMb8a>?hr35{6kI>}2LzB^St}W^-A%?jSnrxN6(Fd!d^wUJ1 zY5d(%Xkz`f7vy6%dtbUn>uuH8j27CUiRIA5Jg$kG*lvX;?!muL_QwYK=RAc{lQP5F zFxzRB|9@p~z$eoB!`aRT`S8 zd44MY+8#XtIeuPBV1c4GiXLa_`9}{f{^WZH3-N1?;+c0EgV-7KA5#%Wg>uD)^GYj`o zd?Ac62p@2G3A_OP|Ja-8zuuujzgM$rbv1C0Lhj*!bSw zJAbM5xvcniy~{E#?YGbsfp_iqt(&xdb8mUfx=G-DC0IZ6H}?Apz29}x?>f$cxzB{$ zZbp7j0fz^1JrF&iil0tP`niquFOV}wwd`91?;~gZNnMVq&pl7R+{Qw)wP)tEhUdj6 zHT7z27nIGWY@sryCzn`A3$X@H^O${O`Mr;SXnm>@TgmTtx>AR-am+_??&O%M*V`Uk*>axG$aP6#r^pMkMtG9bPLm`xNWoa(!9+cl4!wKwp-K zedDje#pD*fk2Yt^tnK#}4kNB2OKIE6UU71T;@@}~_!L~yr%@NpRorClId!AV)#%nu z7xig$kC{E%qKk_gBzA&vX2|iM1 zfPXvvlDt4Ka9zRmzw__qe+&Ot&P8Q8Fbn#23b`$D4(0{j^T^_auTk9_37w(`{^faO zmXg&8dDX|g*exszkY&dxGom>jhwUgjJ@}hwuIku>-b~I@N$+vTT%4!U04**Q{SMC? z(C>in)y?E76nV|ZT$>K7{ztK6NAUTI)us5)@Lb~X-R!xd-|6801J*%^cRu#Y?f6Zf ztDEgSwR*O5=TP)(=)!-7&MRU;e_l068XM_}|r%KQM`r7^FS zm%<#UIPJNV z&Gj)(CH5Hl26A*RZ>DW~8u>pMdk8<^$o1qeN%Izntx#n0JnGS&O+pt3u3jVelrwBg zmEhEFaxpBWtlej672h-(8YpPG6Tx*rQP{2An1-G;IMf(?VbyOO^MU7Eloa{Y)vgtZloX9gmh zG#kcx&4xk$_Tr~0HjH+O>EoOX_{a4{O{4Ka_s;Kyx3lYKV#wMNIAJ5oFM3e)TbZrD zg02ZqBO{xoxstdt)>ce#f%;T!Tjj+fBit`ho#oFOuX=(t`Mdjn^oO=4Y%9!F%1 zguNjlW8}lzi*2NgGd$)JBPQ`;dx6ukscXi|HT)O(AGy!oJAN+u`*JmXnHOAlKu3fp z6+d!l%S@wRVfd}Y`r*t?>H9_N=YsCv2MmCrW?$CM+RcUU?=)z8W^45=XE!E~w+Wlq zi#)S{gEHm@v3Z%{9dk9C*QGdE0S=lIHm@vja18Uhk?-wiF4(-@2VW!~g|4Sc!Wm6J zm4q|+D|B8sPZmAadePqszghs!2wn&;BllCaxgXW)VSI^anteTg#{&sH=*=?sX8fNX z9mbwEoV{%Xyi=xT(@K<2%)i*R#HMw4mp=dS5$La9HFVO=+#5En-8N-LfcT%guMQtap%?tyL)azwZ^j-Zc8NVH>|?CyzsWAK8ovbW0AiO=s6%M7*d>%)^orCg zc8O%$QZjy>71&$>zoJ)(ZD|4Uoe!Mv!lra5IrkGjU$Qn2&e7}v{qSr$8DBUQ{4neR z^(VnE=;(>9SHQ2(5NKQizgB|-qk%=7It~01{lDPXKzbx_5<99vlSI}LdL*>T(9>)9 zgB=bcEP0FO7f|Fm?aWV{_{jcC;p3V~yE2ZJ2>=7lylo@B1 zc^npaBFQm)rW(Eb=!D+G22Zp!$p#uC=TE}6Grro#^-Sz{antDPTIkI4z~#g+<)#Mu zWJ~w7S>JTG%~eNZ&l^1{J^g|`&-SL$X6wANJgm(UdAQkv&uWx+rY88fr&9Tfmi;I+-+s_{ht_H{*Q?N zO@$=-_*f`5F-G|)`JIE^J^ipVm>=T0-cNzOcKb?RM82WyR0hapiJ+8Es zeruvb{MTg-nZS4Ef4wpPc5;_}nP;+w1P92=o$QzJs_+SB{5OP8Na6o+FKY;#5!?MKeAAeA3n?Me-@hULV=dLP=Z+o6SS?Ge%b~e0>vG1JfxH4ThJb|^K z<5m@8`VV*x6YUC52JSmg%qwMWl(0r_Wv$?g@gTk!UO(-Px42X_s`v% zpaU(8C7BLneJioYY>_e6nGc*_B>cr-)_F!iY*RV-rW-z%wb=11MW3PI%NHfb1M*$D zT{-?1{6YCh>^E5AxPUU>~UI`EUrdRtvCJ_cFa)#V+zJhSlZ2kP=lxgN~*0d=`5 z*TcAOR+l&Da6OXiU#QDHay^!7zq&k}tt@PovwezH|2HJhR55zZ$;6+-H;2Z+3u2>Q z%J>^hs?%%o;uERFQi*}IFyEV*pL(7TVZOeLZ~6P(7Jq1o$$yx-{)Bw-yDaM4TBP}0 zi98gc9xLC~^PSY!av6W@DxOuaZ!Jb2q3uEJKPTqh9ypJzbn5Qgn0vD}_vP0R2g$xy zo`)=k45z{53C1ti0*l`;e!13RA+ntT3y)muun3cPNQ1>5b-7Qjuj1PusmrtF+Rim_ z>>wv^-ZfnRnfkeIN_7WAt4+bsR`IvM?vHIYLX6aIayy00ovtXnQyF6w-@m-Vl5-Snh8&^JZdkmXVy zQpoEjYs?GJAnQ`%o3#35{nLh4A2dQ_Vy(XItbgPQtv;UnxE?rsZ#XtYz`9l(k%;WW6taPOc|TPCL;h$ef7`X2I9`a&sm7guHLL3>`7v zRq@WCB|=wZjzv~17=LzS19V)|QN#0{y4wt0P6^ETty?<}OOq3GCC*_K_J498KO^TA zu*T_2G}jZ5=WCwy^hsUvUe2I7FLLvig#P~2-Nk`o86)&T#^{A+$a{H?OdS**zo9qR z{4kWy$p^-~NdB?6`xFz*(LYvQ~e@xPG0umv52_)J$ax7s_-+%eu|VJq^nHnitI zy71hBj9W#lol0Gnv9kAA8WrD#_g2NNojoM^Nj|1+a=a`bOxuOj=LSCukw-ny^-0Ww zRySw-7;U=YA&hH$IhVgJ-$4Vt^h5HTgt@O`-jl~*f!-$Mb4&irtCbB^_z4f}ljKVc zNna%Yh>Xe2TJR{x&0L$<-;3J6fE;LP4TGDXT!-#=KpQOs?y-YSAJ~uG1Ii49wdHf> zD#Ms7S<{R&0)8skg;Z>PGEcj8zhgz_3HZvqzD?h=fbCnrMCPg;y)d%cavys?cCBMd z)ffHE^hv&#_t~^DuwLz+v!v8Blik1gjtBZNL zUHZwq$bK*V4bvCed=)PWzkIKi1LoR$fjMW3sKC6?O^!eMs}NHlWm>Q^YTvER@Q3y9 zyrQ>hpYHc1-|xS0ua!TM(LXlr9$i(3US7LzxzG>o{wHck}sR^4^y4roXd;i%sZ*%^vR21)GbwM;B~% zbFTy!@~w58=ySf_ zhO4Ql)77(#rbiEUpPHq0Fwmu9_VD z0Y1U6F8SPr%%?0 zH`No=Xj_^^8+T%y5+j-x6xhJeY!JANWDFw9{a`F{Q{b}f4f5UI4~aRvF>&sUydR?Z z@MpFPjm;T*!T(P3_~|sX^(yL+vbFrnnMKC)+w?ZR$MfB^VTEowJfr-k$JBsz5a%D$ z-+^(m?vyz}@sFFq`I(7&uq&eP3t@+FTW(<-qgq4QB0O^52eybJ&H};Cpy6~FJA}55 zutOx)k>-CIoXB}BRp_&rgKbsBjfxFY?2b`rkrf-n8hAa6!`dGwVCT7md9i*)34Din zlh{~^b(NS`BStol_f=o@wOr{vy5#+$OV;RyJE2Q1N7g+z^yw zdz4tdD$mk+wwGsbxXQ(z(l|JnftS zH{^j2t+oUe_JdH`?LpyLyTHrah{MTJ(|fv^2fMG4^5ox7n@hc%lTydIC_`_f-g?@Q zb5TlzxxO{7D0+oZ9eABy#ymal3J)y_Mjt^|fCmrNJwg8d_JXcDaJ`EZCdQMPDfj%|f z!Wa_vDpi3#)y>A8CSk8qm4vOzq$F%rs-gr3)-7X~aYq<~j4^r4dA=cicHia4Z1*L` zo9#=C*X~P4k^*1*{l@Pvj+3^OUK%I; z`tPqCC!I+qBx0jajJ|T5^v9zw-RrXV@AFIcV@8I} z&w)}KWRLU#OvM?kmnMg z*~K?v3)+;1OqQ$Z&DI3!l$jCGI+?Dmr5r7Zkq z|5tujxsn_V`Bg6@{7aA%j@Qy}!5I&*up)2EyJhSZ;!{GN-IawY%JCM);O6~0_OYeB zBR}rSrJ^^oD*g?&_Is;RvAa?p`Q><*UZ3!yCruaEN4~Zl;tvy`jD>g!`Od&mnGdO( zoNzlX_s&aw-=cltMZwDrmTM9@CnD@88f@I-G`p0<*Zc{)Ui1v~&}!bG;nE~&CpBQr zbGPN$Wsa2A0J*fuiPoC`cF_*zygH)qdG-`{F#j5N+tQpt4hQ>>?3>GO6nibXVUb^f z#kNZHc%sYbmvgaWi{0n^B+6sIt6xI#jSln$*T&U8K^s>kb1HNXpEj*6X+zrjM{WIzEUmO&PX7J|?*q_KBYx2mDssyB z`*S(`6Mbe(6^p_DQLN3{3%MK~z6t+GkmoU)LR3Ki@*bcMUIinp){~~ zzW!{Bk;@^o_2J(^qn2HuQ9Eu;qEYN=`$p+B%GlpnA2KG9G2ggCTS9{pWine|r;O+b zvKg;DGv0|^Tkfk;FW;{_=$GWN2=g!B59j-D0I#p}yR!ex@B?e`(bwkAceDRyaLzrW zy+HQkcxQ$)fGp|or}-nDDtU%g{F&U&GjFP~o?MUfv+F(12xsO*;+y9ePC>>#D(4L? z;w;p(np0+T{yEXveZc#}9!(z{e^-SMRJFVo@qKDc^7w?!gWv->(+!@#>m%}_AydS+ za&B)tEl|Sycsw-_Uo{N=CNm~%fTla9kN4pQ1<-5JE!>c(T$=p#8YP_2FyIoy}+6#PJIg2QrXK|4$I=F9idAF`{ zDdByt$kW(iY1>=3))h8?GiW=v@}Tux)j`X-l7n4a;U)MsMA@*pJXrs1#*PTK_nutU z8P@8k=lR!z-K$cZ4F@w;hPT3VY<-evz^71Y`|Nrt2fwnl-sQa(dF61ibLAi1fu$qd zJ5Cf2_Ag5%N2G&!$h|YrGgBdUOKn>-ZRn0A(7Y1X#kJs-jKRkk1va&HdtD9F=IvNU zu8+{_EXMZ+?|$Vf$0xuPZUB~V0;h>Q|25CsU47-l0;f55CjpBN-ghR!ZkNkve%mE| z3^iUA3?p}j(#nG|=E*C428KTRt%hlPny1YR9DJPZr=91QX>Q}3qx^;&l^x!#!gqZW z`c&NJ6L<~%da(YrAv^~bz+TEli81qT^}0mfY~+OC=P7bH!}-}q8BX#{Zr@Dq2nF6TXC!_y zi;;P-)moa(e#rr;kZ&oJYl@*yLDs(qewp0UtA_^Vo6(fFSHMH@yidwfCIan)K5iGk zyWinY@rQqY>OJqD%|pd!zu=lzdmnYLd9MdO`8S?D&>OkV9eDkPpY(pie5UsZ&lb)5 zWA6#zH5vFlnilDm{JB3iTZvJ5;A}DR2M^-Uf0S5@CicT)#2!dI!~Tpr8;6;!Yle*) zwr_aZ_XCBd2|aGpH$L;iZ;<2tz);iB?q*_Oid*bM#IIlKC~EoQ4f1^)96XAj{AS{E zq^_6Mr=OpP&%aS;nY#Y@qtld`)#&`+QPUgWQ7`RF2RWvr=$uax!*~k5?4)^I{+NGS zmDs0z7XR3s!a&|oa36SxjyFr0(9_qMM(p@EJ`;Um9{QSd=w^f_%D!Th%R^p?;Wu;= z9qy@V?zVbO&poE~c3>{Ll`wgnq-?luXt0E5ku!;UlE0BUcT;D$u{;o^&18FmcMCLZ z3$$#@Tdw+AaFhL5XjEwR$e?!%YjF#7>=kc8?UvoF&k;P^!?Rs3%i+O&U3HnsGTb@?Vv}VJ&CF@l5vZ zAtKM>S8sl9JbchimA0Y;KeH>Lx340vMB@EM{r&93`yy4->sQ@iyx*k1zeWFEe-CX; ze7`||UlOP&GHLTAI1?`({<;2bC*aGf7^mpB8lEcdle4VjuPNvU=rcT+(5+Lssg5YJ zuNOVn8R&Ru_1Ivfk$jC$dtzPBa+aNnPOCWGU$F!~9kE5M{wnKzXi)GfenyE^c_bfy zn!lU%Dd)sF)W?2mSKA95=#SmVs!{gqP%h^J@&36n=pp&;O1O9GO?T{l^cdoc8ReT3 z_{pCDmuIQp|7qfzh2U#S0$-aGFjhE+UhQm`bL#y@pJi?p55A5vj=RZ)17CHDv+HFH zg8Kry)4~_A{^V@Vy-#`i%7IBA@K}b;t{qqi%`O3lWUM7A%1yFX#BX1-ZHpZjzvd2n zAJDxd?A3BDc5bmp%C*?axDMm{pxLyroBFtpXDV%9q7SdLR*g2Ke!)@cn}MU)vD;d} zS(!he8Kd{tMcN2^ozGlPztMs7G`9-A+4 zKEw4?>Nemc_8tRHs$A=E5*?@kC(+&Hi7gSEp{&0=`Xn%m0K0EdSGl4ducwUIRZE3O z3|^zzQ!9XbKK9i7rPyYXOUk3<^TyVijZIZxC-4#2NqvDWj00R0*a*x7F3Ge|`YrwM z<6mGB>BLuhGiQEa&3ekFcktFYTU{uJ+ATh`CePzijMXW$asJ#MzY* zZ6G#9O~dTJvJrQ$oa`u)!LZ8G=G+5lx^Q6V$ksaITnSc zRXo;F-~et>?D6PYUv;owDeAwu#$H<(kUi=V`Wj-smz{wIiav?GUvgWGrJtc}+4mO( z&#>>`3*5B5pT09++rq#v1RTpu(1A>M+h;sn^qq93_8$d_QYhaE;mntyMnji!!}hF`}TyO;O1g{91MIF8g*_AV-lLyneKOE zL)U29R-sSn{;$y1xewg2AC6VF^*~R$8EZ?t;$Vemx2sa!za?sO};0HY&?XKvD=9s;L+r>v*Q zo4_KSyp8nx%xY{A_mR(lwRXB%ZL@dOxkMi*xFKsz=2h02_yHKWD*va=<6FgFNN9`T zt=xC8hJMa|FKa-a2~K|`bBK?4q!U<>i!~%?y{4B0!y>Z`B{w(c*mrTBV7TsT>@c^W z`^-WX5nVaww_>O1suS6S9FhX(I&`z;vZs#=hChJ!UR}x_!5OWKMfL3xeUN=TUDe@9qqShnhIc6`QK)zxL?-wOi+}Jvx8w*7<9X&R@HA{@SDS z*KVD^_UQbyTj#H%@Y|eMQR9JscEe*wKTWNXwXx5%!v96XQd6+hRhu zyt+Ktl$yeLzZq<@nS;&gMZsp9DcFqds~OwZ7HnQyuz5w`nRlZ*X<_~b@)x2jk@xle z@BcpjV$3h&+eL?1@{9QPkI8#}IU4x{@Qi}5@=oy8fVtow{+KmFQ=70&Y4jAFR>9|H z>{LP{6y#|Y+AtViNpj9A&=RFR$A2md8;;!T?^Ad$c{`1JS)*}iiRft}v@Pw5-cQzv zu}1pWhu)^F5rs9PvPN#CE-8;6q4qE9L0~1%{wMI7nX72BsxsB(>JjuP# z^9cJ!xbae2?a})oh&)S<~&oaM4*%Q+2?w^F~rP~Hg)llLcqzs&nM=%4T%@hl}K zJYEDHiR@(ysPkFAe}NoaW_$GWC z4PNBZIs04q6nIc{+^T=)XYq}3bV3pj^bdN!{|kSLyL9--dK1}4`u;zWf3~G5Hwk^J zLOvO|-fp6e(+5)>$@3V3CVk<*;v2=zmHaMJ=x!?!zZnxe8*S&#ny(V_`tnaj7QM{76Yz`p(ItFH?sGeC<)h~I2K8=oQXo3UwS&o0p38}EQy{^i<|vCFuvz)RpGW3EJI$absR`IhI& z9c9!JV(dBS_KS{MIqW6m^O} zn`^-n8+Nt1#E7oKrWpmF%0%V>AKgor%6Wx;{8lvoIM zMlVsHIap z?DN?fmOE12$^(N>e*YQsRZVx;$Y<85x_`PxwQc&CGtf*cJMK_Z#y-%=Z?@a?z_o7m zfo862`I*rR2eEaU2CG5UVhSo=)nAFME;&wwMppwTx9Tm}%vqhpBgV>*b>w{rJAmwu z>9JMMSZQyWs`=df^oTjVl{}xZwb)~`1}ib8o!DrtzVx07Ik%MW1ol~vt9=5yX5I-* zT7ZM1=S&XOwYwfhKJNE@C59l`_mvnCeCkHG&WCmgzbe=BgwEAL7sz4Y08jGmo(nnY zh>Kf_&RJ~i4)CG$+L!us(ut2^BDTj;?Gaswf3~xVyk>bnnC+}be{r7Jbt7I~aVyXm zQ|q1YYdXq+`0rXc(^Sf+)GOue;9Uedv-C`Sf0Dghi#3!yUl#bL&$D-rmpHFtp>OyA zF%Adgmil;kVm75@OuSAdv6xn>+|rT@9~t2jZ!GG@8kz5w3b z?@w_~HY?M6z_mN5`~G#acYKSOqC;v%&&SiO4(4a!5MWhC8?BBXZ@Qgzvy=I(0Pk+s za@!29R=JkCN`9xb-FEGGhjq5n2Hk5*Zg224X^wQe>bG2DaSVJX@tT*1k@;d6nZ+mI z;@Hgt#Kv6qdtz{op__@DP2fQqu{fsIB4CKVFP82gM;iNcDSc+oOXNzMG{{j(yp~n> zy|{mBU{eEQEo7`-Vze3i~Aeg=R-kpP#sb27=RpM^( zjTJwQHTY>+&n+;R$?0yF-i^N)HdHeojjz32vh%HMWg5#PyqMIp|^i=>gWojvs+{DPb*3N9UReEhv< ztctbK?jdf%!#am2dbW>P3d*tOpZWPVV!iOq2$LUlr_=nK&}w&}XL%ey#tSf!_>N?J z33Uoyr1s-VWCAh->rd#SRgbyC=RjL`bHEqjM}&rpzvTY6;}Qoy@?ThM@@yE_GIqI^ z@q2;Y-!p!x^OIkR{UWneA7DcYNy~8ag^({b#ARzxnBD#=*B2z#?I@MHj(Eq`kuI-M!ugr`RDz9OBKZV z7=BBtT=RX!Kf2GY`W603Bb4d#{eMtb(`e-!xQh=|nqv>KY6I)B^USEHgLS&9A;l@* zoxEnXQ<*swR9@y(c%{`@>C&w zeI@^;=dt70D%Umo=^urQW^?~OGp<)XQ)=}w8!zj$5W zMI4U!#2|01S1L^YV%E3NwI+!j_|x^`bGg2#-Q@QXPx2IHlh^)%x8fTmN5)3JG3dct zJR8lkXY^-c!&UkHPiaE*jRZ}Yl5uw9qtqSmWM8^34LDhVmlb+o3ruH!nsJ-QQ4e0r zc_=664R(O18oh4-rvulu^ygElkeEW&WtN&*t#YmWNqI2a<35+qz9cln{trz z|Lo+&G1}=M-g^@J3Un)$&$_t(v6pO{@oio^wf_0FtlcBi);?dYj+yiVIQ1>wO~OBL zC+}N$&-vj!k!khMOL^IkME8=nF2$LjT^cAXRbn=9s}vqX{1e1CDhBVY$!x?q%Q?Nf zO=IR-Qt&qeHquXlj{}+@d!fLl1=v{WccIWM*~hj08raA+eQr?tX4-&_?BTVn6`PN^ z?UcTm_&8Q)a4)&;_K^P+IYG1IS)nhj#7c;aAaurhd$AU4ouE;J97}0icrT%s$#K?A zNwmhpwd_F)-X_laH)9<_pDp{5HU2Bbk@*FsZPXW)woLe>U-gBo|)*I%R=J6<$^N(w7dBXF=b;|F7x7n?JpjE}VH#=t3EIUJAaK5ZAz7-kIQU z2JYp=TdyyJHpqT%tbf_dWsetFcC)t|d;0uwx^98@$^1b7ckqfA@z~T6x!$btGSN8k z+0YaZbzG?r25pkQ9D=qRG@^4~f@f%ep8Rj|4B^fMeYk$`*^Mix*WmjP!yAa7a2|fb zW$=Nl-<}A0eH&O~lGj6gc`fAiuz~xsUfWq)hA(d=*DAP=uj}%cpwq&SXR#(l2KW&B zLNb4@^U$vva!NQo5$mqOi|c+l#e69behmNB3jBpS@F8l#PbeGzAvZok9(;!?@DK9f zH>AacpszR&Z4#XY{=03fzJ&iWeQZI7w=^q$WcK|I-xvL+udV14c~5j2*<6eMMf5$Q ze-T+;o=YsrF7Uz1bG~11DgELF9UHn1ljwPl5l^0rp6506JO>kco=>MJZTlMk&vZTO zKTp?#F6h|btm`RezbJ-I0=LLeO>Xh0r{X7`p^Uiwv6KaKGn8pheM23-S$zJWpVd>J z8ei^#XXKn=Z0-lT%^CT%$lO^eCe4=_TIzR@`>Gb$6}>v#e=UB_!sDl?N+Wx0Yc{Yg z<~R0Xc<*9hUz}L4UFpOyxQF;vzWqM)u7I1fPM#feWuH>(0e4Cwb}5gtMZ>Ti)iKw3 z?$}Jb+j$dl@u4)UW>a*dlk8eRzN?q;10v2TEWC+%w)4bl@D{!-58f>ceW>KCk2D&3 z$h(NazSsvPvdMV2;KDoI#$Uyleg+-3HxWzIw9j>7$sm7D(_1db{n&4@XL+}*aoL;1 zuZnn>rZ-*QEyQ><;U~FeHTQeCCmyB=|Hds1+;?(c%RRo5Td)T={fhg?xo_wG3GO?% z#}8_Y&n084-LlpdouI~K?4dM?Y4Qa7>fFxL6QJcc!{5Au-z#STW|4=?4V+G4a}G`L z7Id(7Pfc>i9zjR@RenEX3}UA_P3)~a|0=m3BGZccqUhUuR=b_ujl|t%;g>tfku;=pIuqwhk8MBcRR9=;WO)lBsG$?v|)eeCoc=;EzAqDS2|XJ@k49(LD6=9=1~ zn^J0|&3b$yF6TGxw?Rjlllo8N+nb=3@6*SubY(gE)`cI?rs#)G>CfuW^PHfsSE}p# z)b)X;V=fLv!Ij7eXaV#=WW@;M-L1WwqrKDYWBS~Nn9Hs3=8w>h%(LjqL~r&PIwH;X z4jntaE8l;rFTVXO&(85XiNEqGp1;p?$XLKe$p`? zzIo!8cQP}jMsPopl~N;icJbd6pFSVHeGNJ3J0ynFtNHrvb+vR2?u)zvo~%v{`tZ~9 ziq9TC&$amP3GVpt=@Z|+FgE#G{QU%PLTR@It4vC)rR%o7M{>x&Myz55_#C>K7)0>7 z0{jc(D^T@-5~~ESE5K>-E2spgE5K**AE*SME5Kzf1{7Sb0FSl!Pw=<`JdPJzKi9`C zu}6+<&0r3H4z7k9FP%flv&TI4u=~rUCUzQld_TvL;hv{tI)lM8!w%Ik>mdz znk4fkWsSM}Yx9;oXEI+hPclc^oPZDHC)pr2G>H?@`tUjQMdbdQ7?Z?I_So8P_S!eyqy(1R6}XeOc(qOVLF&m@NC|s@8qW@M#cTQUm+-ZR*H< zo4L;A+G6$2uY?Eordl>tWu!MsKTYVu<@~%2ma}8hdB2eF@28A9HGNZFhPBaqWBMj3 z!~2b*+cn0f@d%ylbJJL}17xETV&+ep)ACQ4Q#n&=5b}Yk^)up%PNP5RW51IAm%y)E zhEKdPD{5ZeC42?B5M{pz!-v~fyMsAH+Y55>Pt1c4T3lP_s;DLQwwBo2>#%>Z_Lty$ z{cYeDLf&}kXndmunu#r_(Q-ZektT;^wbp?Pqdnr`F>XSr0P6O*#ls%1^OlD<#=SE+;m zXu9#St#jE#J7iLOijYIB zGA87G8*T5&v2GF_Z?_rWGgab z-tXi4O1`P^d0i6IwoFAvy{h?+m(Rzy_szX7mNjOS4qsau7BzQmtO$3@5Kn;NkB37#QP6lk903NWmm0C;&unk15qgX0vVX)rK zjHOkpPxbDBjJB3T^%1D2w%%r-wh8f+Q87V6p6_qZHDSWRw$J^(@8|RWF`sMAzV=>w zt>0REU;Dg6i`WmNu>kYGu7GicVbT8}Ony`_-3pC;ugk1~xsUyO3X@NqMwrUz7bt6M z2{-qia_-;Zn+KD}DfDfI(8qD^K;1ke!uep78QSagSy~&ci2AEzHcvNunnwND$NmXB zG?Mc|P6f9X&M^K2tTorlUZ#ldebKna0dy~6Ekp~xC~QkS?Ejj^8nbsfLk8P!bGh4U zXb*MtCk}1q(fE^Wx^WbI?9mPR_*3fz8|Z&$?^639`;458+7GO~!A01iF!;MEC1^) zEs0ZxnkiS3@z3wm&ZbN})=JlIK9lBv2zTliqxXL-35P!40p3o!smey1mf7|S# zEDno4&mJ84Ann-?t>%KzI^t-o$@m-it;ELiw=I;*_j#B4o}}vQ9o zocg-;4pUzj^`*Y%eXsgD%c-x4!~5gv>mxV(8o#%}A~^>y+3g~$)28l|?CQH6ym}hv z-Q-6*s@S)C!|xi;2gd+oDz*3neU7J9Zya#d-Jipr_!_cK?iid`EkyJqZVyegzRcj% zFLxE$Zpzc}wvp$p-_Sz2`-JhV(!N%x-j&;6`K-{0zR9~KhcRzD#Mo|_xm&WuHF8%S z_8f}L&p7u_<`E~y#K|*pYB}daIMo)a{?hpmNv!lu6sAh&r9Y(a_YY_*cYc_; z|M3Q=-ctV3Rdw0x#7Pk6AnUhuN2Jo}j0Jpfo$S&dpZYTC78t)ewd3H`He-;kh{lg5 zQJzwA4nfXl_$ZC;$?UnKvhVZ`$)+}j;wJMQ68$Fm{)zY>IkG9=1b*`c@-cI=yLmWfwH*o0KPONvZbBkLl^r^4P$hHWR` zGgD#jm6&+jN$W|4{U#}21!*-FZ{+Jt%CeoX;i<6a&P~b(Kl!tX7b*$ShDg%yB<0%9 z9H82n=Kb%-n=~!lJFI%cgn1?;WniAWg*J)K7mRc=x6GbQ-Nmc1nt=9i`ZCN|**?Da z#Orm|?b=)E&yS}qu_`$aY;3}qOs{kQ|KyDvblOyA`~(~74y)3-FWpP&E(CEwDx7G0idwl6T zYs@-6jPDZX+O?4Pd+bHmH|;&X$FzawH?M4(BAnDebv@KHRkZZAGu@YGWRAEz^AYwI zYJCs<?tzB=cW#Oa^=-#oltygcw$e=t3r`&94! zimN$===H1j6wg?*M{z4xKapttN;si>);_#9Q5=6GQF&))V&>cX6O5Jb)Ey5#&ew~Q zKJ}lo)bir+AHlf2^3d6>)5!Y}`nQami5-ST51e}$>mEl%i{kER>jjr`-cIh$nRa%= zQoCP6$xAzTHpF(B`S;sp5PxJSo@ouJI8O`wUhd7XN0?($gkl&^3nSo(zt`$ z9~e(M@d;1|mJnZeIOURtdeQJXQM|K=Q%qdNQ{A~38Qd@J*g4CWyR)Wi$=>4MRP0n< z#lZ@b_o1h}%exXYBBRT!Q$D57->J4>#^{`%F;91pe)>T6NT{t>raG54CTBfI^X)Nh z+IONhL}PAV1A8!*>zi(A96igsJlh_Xv&NM@tJog3R(DKPFm}%Qu1n(F2SokR)=JyP zecjJDX7``b(Mo^yhpdH=eVRF^Dx3B}xjm#U2yM|O(R!YEMt{n}kZ8wn>$#4M0VRF= z@NH&qjqvIi?tM-&s-8{x>E=V-lhk(=Pv0T-y?9vjXb)HtXMTJH;i)|Q{6}8y*ccLJ ztS(xNEVDS|Hm~YE8 z>(mNpFMdkg1?Y4EbC@+3*6ld}|2Ft%7c?c7!k4~4yW8$({7q|fHW6R`^Z@rceu7Tg zv(`AwTblA|ty`;D5-4qX)K&KA8;94gqwcp!S53MhiIeB?)5S|mQ~CIbe;4tmu}*55 zw{NJ9_2y=s2JPfSH)Ntu7JBuey!XYI?Pz&{x4n_M;~}qbHWJ?()>%hy1E1~q%bJ6C z?&UtEkm{LY)-F{tC;lnE;iWGzEB^NF^i9qaX3PaIr!3^OxpHUK+HSMglrdt~9dqZ* zBK3`iMmc|WT{Cx5s0{1gOsx|e$vq;apWeCm5c$Tb&%U3<-rIq!)#_ti(e27>Yx;X; zWXDt1@<#fYft=wD)zkrtbMhM6@Yi?oPt8RRbPsHJ&$gDopJgq-8~HZbIc*l-@_UeJ z8}smBH~(II^%Xli=Yxzv(R|m)whtYj{_vAK_YMktczb>y>%1m>mc6ne+4Rj4#sg_P z?Er(FXEN?*@*86Eo0ENPe(n?IH-S6rPL$u=n&b1^L4CTN`nx3i%MH2oB}(WAYA$Rg z`j*={k1wQLT}}P4cH9s4WK#wfFZ@YjA9vQ2eDnFl;&IK1ZdXoQ>$v27M=g8{6i0R3 z4$65e_40}C3~K(Gv)+_Ds#<7szrMwe+(ufpMZSR@wiSBYKW1IX!K*Jd?eC7NOU#`} zhi>3(L}&fX65@IB*<Jr3E}OKZyH8(MqvYs$C!^x`4= zKg)l$*|lEdBkEbzN1{`5%^^Rn5qO5DS)1y#i#1l3v$P;q~j$vP3n zztYzSPRD;YU23&Y9k!sNa@t>fxxcRF{Yi)Sm?iKod2z6G@T)&7u8 zwos>-aQv)k9%ECkVY`N)>({BTHdC(iHrt`X)72JEw!dYE3T(EHbVmk`=}7O>=&TuI zue-dR-zcnz42O^6Q_mP)!# z>6_|byulsxwAt4kq)eDQ=(R7v(fQt!=v+OmPw1W}yNtZ-Ei~A-5%(f6zmVUg6JVdW zS$9xb(In=1X_#k*Xs^S=!JKwpGXK2jP0F7-u@QM{@T;Q!?p+ppEdvV2Us{A6eZOP% zu09DC@}u6mXNLNv>z0Rmg;N@vP z_@(4rO7%6u!WXgeO^w?YFvprcCabiv|90V)mR@zF!UOO@-lxSU<=-k-w~=p?biewy ze9LW?YA1CMqMPB*8D1%06Au4RooTiJ+k72={OEA^)B0BIopk(}W^;sB;dFDhz@sWp zHzobYjFV@8*Yiiu3;KrkhA{87g)s|Le=SVbGqUeq#r-$VG&@hS-RkWe!kS0P_ETij zGlj>tjKiF7t@A08>tKF$68`vKuXD_vB%b6M4(3X$u|qx8{?Iefr!ulo_Mx7v-j_PR zhvf*?jD!`YVMZ9hhrocNW%GM_w`F>yZl4uWnO3>7sGr=c?~Dv9VBbPrRfl9$J+89dLEW!&d|Tix zpE|b8ejU7y4Us#2 zw`5TLruLR(kbaWkOAgk*=IJ(goW>dj+tgEyZ>-s4Wl|mb*6t&@mc~+$ z)sAMf{~??2h^a5Mo(XJOU+{`&!i138SHJ7*{&02kX(7fiUwP5W3}tv|Gt(CR2W?-i zqtIA;Pnt0kLNmDMe0BBsqw$HGMHcUy z{?!vgw4d%=VbZm?&L zYO==bl6S5YWqR+|-kW^-Qt#qRjkH$-)7VFpX_YZtv8S0iC+JSK-KWYK5Ca81bh0uPZWE`hPu05k>(4m zE}bcJa9ma-{z4LmrUBNZ7JR*xzR-hxtg>$$sp`0`59c5-c7mUn`w7}RxB=(?T7%t?XgyEe$8oIQeoW-#iJuCh4r~H!f2fGK&W^c}t z?0yZ^8V^MNpQ2|4V`x$7%eYvh{xcT#pFHcqUzlzeP{}-^8|_{!KmhOVvH9|3^AD9PX5Z6+G2X?uo-V-XJH={Xa;~GvCJl zChf)Pz3z+k8;rHH_fu=IOPn>>T91nFFT00!k$-2t=!9IVH(b~#rBemv*X`r};gn8`oV9F@j9PD=+Os%v<tn=C*86>>+~idtyQeVvu*BFg9ivy$@^Uk7z2kqnuM_`l z(Y{XXZuWI%CHHmuW%m>8>#Tmidr|@4*8I=eGupz~2CL-CW@Zk$$T|Z%iC5!b^L;Er zU#)BTXZuP|n*V`rv#&I$eW&azRr|aUJk_@0`&UBSlX1kOKB~4;j|_+Vhm`-v)EoNF zs*O>s{t4x>c+#d(^iOUrpskT!zSaKl5vIMkvX{nn>NS@Wqkh4sw~%)+JbT$~LiTZX zTbO1y%GlG{eLmkuJi@GWN~qBB+iHt-qR8N;-69!`e|}|(DQ`v&%3Qh}`}$~~K>2ZU zc+=!C{-d!}bT|=i%p?EveZiU|kpIBP_)o^?`%hg*_ayB}`oFb*-ND}Wm+e!1w3FFC zTWzYdrbUXtvIJZ!hfWC+@_~rM|=JfSF*3HF*|)TjZJyF`LFyGmXzgxo@WW?CaIsY z4jr4>gZ4JR-eYu`jL~V&nH?QA#cJQr{kj^*)fvgdtTE?n&5DmUsO0zHFVDRTR=itG zdr$Aa#F}E(w#@$)vNOkM(ka~L8>sR5RJzAckj}#z7}|+>;-@q*?39YX$%)@anWy!_Z<$mht_#<%Z8a!oq{FUeJa-L+=p zMVqs+>4z$<#XOkgmcD8eYRp`7VbVQ)eAY$|Gp~HJ&Ae3aJLTnftQC9ufi1~7W}RKi z9;UV!y2@weZ>J*DTHde023qS=&Y5T$1KSMWddF{U_9~|04<^3C*E;@Lg^WJ-Dy}2G zcxcY6yyk*Z%_m-k?4xKKKTBU@#G--_eVb0r9bH2^v6KDij6t{4_nCiyIj@`{ISsRl zy^(7&a(7jF{=A`TmDT=bdt|f)d?s@anf4%|OOG5Mv>jgmV2|8G+a}jcDy@cB$=kQ@ zWsO9rYLV5h{2IYg<1%`G?7Qvkx4pK@;fb=)w-0{@UX)hSvj*)F9 zx?MBf3aP(l-XD|qOmMkokrh&ZP482@ui>0MVeL!9dfhSdlo8+0w?bI&s=fY-YUDIy_m4paaNhqynsHlR$RWfqU*Z7OB8p!RaTEJ zX0Etu@2svxdrjPPlW}Je-j6sHU5od=dx2F}q?&dWV7NVM7k7BJJr73mH?3nBgAEi~ZraM2|=)-a@?}%N#jA0F}JU253mUAlOPS`{1ZKvViMOwehSX4f1QKzwY zzGz8x=`6ymOlvo1Hnat@tTLTDTx1O~`xCXlzBQk{3$#aymt0UMol9sl@eYjV-SFf)`5t}S_L@@|BO~5{ zb9px;`K}Hhq;J?>GfZ_W?=Iloz~sBl_+I`<-i=~xM(-}-U2gJS6PR)LSNqpbvqD~Y zv`pr#8RXWQ8m+O>x|&1GX&<@S*R#HcHHi03t1coRcQl-Pc)j^=6@`8T{SoWz%>T{f zct0fiQ0je?;t#<#%##zQ@zFTnyD!kjFnt5sZRKFHU-E#RmnZF+XWX>e)J~hTuWPv4 zac=Cc|Fiht{Xz!oe6m@$kb{i5$l4E?`!iQCATsh#J~KXd>H=@%)9I|OEAV#aamU;t z*1e2jO?d}>d5z<`Su-&e|Jw1jF&kGDvaSf73bK4#i#_zY86Rz3nQ7LlYK>~k_oheo zjZ2RAHM^2+y;J!Xy-m4%p7E#c@W}4(>!_i=(cX|Y>WodU5pDR&{70_wMmBD-Lv`O} zAJ2fMsdunWa2qz*H&$nxXXs9^`9asTtr~-?ST(I<8gr*BuCXGFvvq1ctalY>EweVZ z1$i`XvQO)0B@^w>cy98X;^vjfvA2&|ANwkK>$#U_GyOv|AI<*=kpkAv+&LDE; zV^7&g;m6u(81K&RcX++pIC}ptkK3b5z|kc@9;#nn<~a&p;-k5`L7bmfJ~g<7wskr$ zqi+wdyl4@;iVCQk(Ifw`=I1!47@ghdoXuWq_m6cKW%8~a*)qVGU}_G!nex3I-wlAT zWK>-;$lyCP8la5Vz>_umWdRr86*J!b&-q9`@i}rhX{P`@lpeXtddcC0Uq^n*E0xaz z{+o6uW7!{b_7C-vW2598YwElQVrK2VL{hajpaB0615J^RwVmk*2Te_#^BONUfVZS-L3cQdl0FM*Ds_7yrZJ z_~_)`XxZOWY}Svm2lzfuHS1ZOHKcr(LLZHzPVKfM_(^AieGuvLbfo3;3AD<{4s4Y} z`IyBxZxtBVoVR9_#)wWIdC9jm4=lORdAa;cHqiP^V}rCYre?m+N~1nbx_yf>lVv81 zpBMc&IiFL=ewYH*z-X*kd!k!tH^lj-sSV&|%&VUBQPxl%^(|`|Xgya%{%T8&6Yd2^ zWhvrZgkt`yT;RXUQ+0uxa-lTZgD#m1yxzmaEo1(qj6Ldy!KzH{rs7P>FLOT^@J@Xv zFW>MYx6jmV8k5!-)Xtsyj>e|6P`|6*X&%V8ggr{awt_ssx~!Qy)X;%v@{UN|51Fzd z-=(eYL5ykhO_VHV9F8?~rVM*Zj16TwH$G!**;GtDOgq!D-%9MK^UlDWxlZOWRDLpS zzR4Mpt``_LGrn*FKGlq~rt!H2K3#Wgi*yl|;`McS71x_{gQ5%BSNa}vI`8xQfFE~A zlxSbj0e+KF9(3xgXdADlaG9&Fm4|hW{2J=ND-ky?@cBQMHU=wPoBpD&N(=t!+rds3ms4 zk|mr&srZJc?P^o`C}7{Pm1S*}eT84iYTX&Eb*S0V0UoPtI^T$V_C09)jrz{ag|1}n)`EctZ z<{SCe{*TAl!PktD9&>i0UuPqpV2r)VIXjW}|MGr%t??74)~gMBJXXV=rbE9?c=CUq zsQb%~MEu6TCcJNbkcc;Sm~#s@#~$3{e_`F8x+PC1;t&2RQE=g3622RLmuTvDFcJG< z@@#`0?BOYnmGo*W==)=A;bVLoo2AYsGpv7UY`5&PNW32)Z(iTFjoPc-j*FA-!- zrsD3S{iXB!sn_PG+BTXO*P3eGg`VS-!8L)J(waa~X$xi3#~Q+B_FcyDaovgg3C}B7 zN0QCCsO6U=?+Vu%mTh0)95CwHR_Zp|tnBB>W9_j!I-7OJ{kRKc31va+5ie31@_O4> z;_tTGisXB(GRdYkM7Be>BfN_DCF(d6(Nl9^O5y6}%Y9?~mlv|e-^bp=vp9Eg6Zh2E#IN*G*RU>f2X%=0v{lsE zZIrP}&aQbEoo__u8(Cj*w;Ax9kG;{UP(Q@=CX3 z!;0P3?jrVpl;35wtFB-!|CP%2fuRQW#>`$`b9-toTz+Nlb-&r3A8@m_mAy;a8<-PV zT&nYIis9k5*Kj_myF@se_}ty#yUCvK=6jUSUG4E3p`H8VgQEKp{tWY&qIK89Tig|Y zCv;vizAak!#;@US`C8~P(C~~Yya4()PW;oM@8NFw)r1#8Z^a*0L7xS!yW>SqfYyEW zcR^2tR=%Q3p}D(0rnFO_;o}$WP11(v3~2FbAiM&adpzQ6!J#kb01eQXZ{57#QcoM5 zNgw_i@uV~I`9w?S=ScHaXz46DL`!G*#=Z$Hor&WYEu9tTThP*3vWk|@FFEn0Gim+b zAzV6>uPs_SzlscZKuhNxgnxiTIy}j(+U()8i%U;%8XwNSf@Auh% zAe@lb{t7&V6SfXt2Q8eGPs%rxk7(f}jOACt33-i=38$@2eBlH(!LJiXIK6{hqJ{^DR8SGcex+{72Q@bN4nT-YLOY$3F;Re2LFY$bze zVT)h*u7{Q{fKOa$g{^cDEo|X$cnVu#zL;=fD?XxyEf|GspoJ|m`$P*{^p4B!!d5&* z3sZFTh!&>O3!kZ=u2osep-er-eG0}GpTQo&O+2R)U$~){RgR62H$06n;U_;9E&PPX zmC(WuxjdqUpW@7i7JkHuD_r=YlZh|B6)l^hXIyDzQ)CW`mQ9Icc+N=D{%Z-ZfQFAPS~h(P zp4ULjrttBJmQ5w6@RChsU(vFua2H(-9ddBIJ{c|?O*xT0L@y;AT}+*G3-n{~Q9W}T zG;*3c=XPl1RGrgExvJq?bO2k7PT2q)edm)#HX!f#dC-mxf}&*u46z zHi#pGXxV`HhNo;GKJo+E0E~4sG+sn}VTCS1(GFG~(ZUKD{AJL>3g5Ry3oGOdmqH6G^ol85Si#4{7gk~7 zQ$AC5P*~+bSm7T&(ZUK{;wlfqio7^eojHPJ8zV~DdMqWgbRJ7Q$F3gHj;yglXvvBk ze$kRuetH44V^^PO$FBZ~(2iYg(T-hBe8;Xn=_6UUBA@h>tjHG>Em_e&b}_VLSHEc4 z^-XjZExQswEIzU;I>*s1RbK{0R}e1yiJlED`+-*rHrv5|nzh*MtLUF?(Uy3`UbgfO z+7cm~elcwcczfMEA0oe>I&BK_@Q;F*aDi8NJY|ISh!O1*1JijaEU}SiB=Ll$@*Lr$ zknXEjgj>d1k?P*lkP9_FXbbDQMltTCcfh@p3?}IzaUraRA~7N`S?Z4Ur1|< zmcKlLt@3FbIN#m1)D1rZC(|~-E(P_;`poYlekSpe-4-oeWOK?)sy>UK0xiD=-=Jv8 z3GERrIkB5>2(;uRt%)x=vAL07aw412S8`(W*l^-YPT5AZ{8~OD9410zXP@X&X!)8j znF5WzhNm|fCx(v3ujLn_D+q^=EqXTeTksTa@@vT{dVVraTv#oDmYqdk2mKgwimrx! z1UY5@>yzPO(cq}MrV?B$Q+U3Kt?vfU5N*|lB(C948Jicb@bE!5l1}ZPO6rv4X-x@QEp0y1~c9 zmu`gH!a_Ppzb!%*VIiGff~V+-(Bi4Ij!u5jQwRr-uykcTiu^MNJ=dY1 zsVC5{?(0c^_QZ)Ve+J)JGqm)A_KTKY=pvul4nD24G1uaAD^oau;k$Fd=Pr9$^g1NK|Q zk$%`SEWdJmz{Hn+VdPR-kbc-KC|de~lPM$8Pc{>N(hu2f(b5mQhW9~Bzq`Opv^N<) zh~5>nEmQ_e(Crt89KS+tZ_2N}jV(zR`yJ_|EBySTr7N^8TDl^a?^S5&3cm3_K}%O? zTfQe4{2tLW2uHV=@T*A1_luqlO&nYFT`+8_$B{~2df{*B>$vAQO!7b2|4LShUHPmlW+Bk#Lu(qEho`ZGx31|mv zpJ)f`_|KsotUWPk2kRJPQ7ONRE8M|4DB8i=#CNccy-2u&wO_P@wJqAg+P59r!8-m2 zXb0<{Xb0t~3g@Db3GOSG_tkBRSK9aEVQ)?nZl?O<(-7S@j; z<8PoHtm7(M!di6#bPH?Uw{L^P8@tCJa(E+;=W&NO*u|m_Z{e$O;fv1%MGN1M6JPj}PfTS( z_&$`>*WgRIt#ILsZG2Dh{ifZu1{v3a)A)9UqAO6k0xj zu71&_(9%itlw?}pFZeby9xdE+sH<)11WtAIbIS2GYYk7~obTwSyz!TmZv^Eh((O(1 z7A@TrXS3oY+g+FFyPrw8eD`iA?IXw`T4~YKCx1~|@QObSEnJX0DB8g#tT;~DF!3GR z#kUYHT)-kITDTyyN3?K3o>&-KxPXzZGAUeM#RiW;3m3^CTDTD3@bp5f917nV$vCkH zbVV|bU-WF~-@{Y%TxjuZgr1*_;}g9AS{VKW`Z{QQB`De{lR4BUk9N?05Ju?lTg5y1 zPMkC=p@os;kRJ&n`O5>)!U$XWMGGTz2r7;+dJFwU3nO^OR8E8uar~l%5%}8BE%-F& zQYCE!KVL2HmA`!JPH5$i%%1z8mA~+$%%{q(U$pXGyj0(1L^gwKE`ukd>43TSxxM9+o>ccb&%Wc;A?mk)u3NAv<{@f2RyCF2_$tD#dk zUJnfpad2#;ZL0cO;~xD|*pY|-7SanlaIr-TJN&~Jgcf$fz7AU0p=VIEup@1lINR|R z^YGEoq<4Qwy?YD(i=Din<26oRVB@(1S~{RlOgn5?vQTD?joMD~|Ge)rqhC z85;zi*!S7k7(&ezA>ehZj@8MXz2zPMrY{;f1|T>OW|0N3^zE= zhL$eEac(j^hRwG#UiAa^`I`2C@|nha=^e6{70gPG55=w|O!||DU$pecH*C?;U$V;I zq(3^C_|jkg^JT&v+uEX~Kly|gKudqp`b10rchLVDXz7oh9?{ZYJe5}Z%LbyQKk^tH zr9bfvjw$_BuSkDv9uzJ8iSH3D{gEw3ebeZ)i=x>7D=GVfQ}ANq2?t>&TKXf0A54t? zYf!Xg6>g&OFSC{lS+i2I^3Fm&Q})j#j%3CUf?jCJ944)3 z$qX(&AG9NLT;Y;gb`>p|TZu3ECG%a5{E``-MqkNHd|SFpX7RiX8k?)^tAF+1pEzY7 z?7}6ylT7IE6D^s9{bXoICXZ;zM7VDXw1Z<@;gX58CceQD`J{tnl6;a|GD$wsk_k-0 zl)WPAcC|w#({m}ALdbq5@g$S-y9in`kw^SOXvswSplHcN9%03iOoW^Gk_lYnl2tO{ zFG10g2|gatl8N{+>EPgGe*s#yCExH=XxSFIeWFXD@fX8$3be}C4C+*HU4sreJnK_B z$UpN*BOS=Ya~`y#Lu>-Hba)FqL`w(Br#RAKjT2uwyo7wxQ#z2JU$k_9r!87KY(>^d z(9%Kq3Jd9g+(FUOK{|_;4#YP+r33M$bED(8(&6fq4zk@y(ntq*+2f&^Z-`J97gHv` zn2Lv7!4Xb8$y-c4tNAa!p^7&>74J!K9DbBvun5}0#3NdmDE&BSVe%%r5Z;1s)TsQ! zYeI^b?2za1LQaqTMZ6v({TU7~^7D&M;Y*x)r{64Ir>1xbr&EsdijBoDkzaL=jC?_p4`9v!%;eOJ(oi>Kf)HZ45AAOy)&@uUn z@YqUx(N5YRzP6n{i~LLbms9zMvz)Z($$9a~wB#EUt+dY|4}Mjoei><_==`73*(rPB z3@1(4@foE-=b-#Ym{B&uL!njn@IRkul|B5z_?T1A2BoJ{&w50w?7fOU$X!9Xk?j`a ztKTE<0^0p%UAH5HM}8xnks&7EaAb%p+>s$DS~6f86JIh2FX<^6@HxL|M+RH8WWY8) z;doXueq2~Mb&~4UMQK>X`w>raNPp3iBjsa~1D$>HH_4&;R&gYU{7q%V!NMb2av)Po za!U?uVhdBr0srt2${V&2E|SA1Ig~eP!fxUzZ{aQ4!NB;K@7}#y%D<$u_>$h}EWS#waPbX+BYx20l&Qt=TAHSFs?O?499kg=Icu|K>EStoBarK|XQ(b)2RCrvV+mEaDvZX7(28 zJoRhe`)qw3XZE-7pL_fAstdIzaTw>+oN*ObqFgjtdK+;16W&!L;M6y34WA)QS$JW#B= z8$#k?CZ%)gCsTFZ9>i@pinvd9%`&0?<|_XM|$>mO;^pTTp0?s@*u zZ4VD=f7r*h?13GZ6KR>A!QSTFNXxa{N5y+j-SCk7^LK~Dv*1rH-@DA5G0}?N+G}6n z*BK*u=G@;tU^V#gXGibj!cHr>YeoCnev8~Y*c)5SeL}7k><`Xz_5$m?Ird(ymQ)Us<;GhkzYP>>-&^v$g(IBD zpfecM4wy98%UNyK#MJp5(&5;6`(Hgg{5JMxew^LAynO%N&(^mRpZ#mkq;ReUXZg1N z7p2NVH~WYw3*7f&%7V@uarcx3o$ZnzZGGI1tm90XZ&Dw;Mtz`tti#ze=yuA1&g9YF z<^sxg)WzCi_Sn5nc`)UGJ*6rKKLX>HalS}1`$_d)>C?+WA?4r#__jWtjI-9_{zYtC zOu5r}AjYTJn;OA~bMR^Tw#r!RH$n^263Eb0hM_mY?*A7@w_mM_S6${P0ok zA4vIO-x*0iM9vfW;mx0=`5`zpbMK05JqABKGVti#T~&ju_St+7T$i(_vmfVb(`Hdv zjJ8gZMIG;9of7T$d>`K>k2SwI6B|tBdqQ8K*bV(fz6YZFL0`f5fVdUt;5O$kOryTn z+0@BbEFq7@ z?8{#ZeHM8vtyx-n7WCO*dt=Rwr7x9P6VD-!B{esdE)h*T#jP{3o9gEAZ7$1pTV*-@ ztg?QCtg`-jR$1-{t1SN(tHb@Fb$icwa*n@knb`45omZGVU(jXFiTj9s$GZRIM{S%J zaslVxQU~QAZzb}!@XddGaZTy0nkA*nlfk!;SO zIyOIpC4OV@6P93R@DrB!kikzrM41wPZs~Rc|LnnUCitC~hTnuV{GfaAgBE^Ez;D;N z&<yodSf4B6UWD-N6|@af^R<|->$$WEvF^*m`Pb&13jMf zmH2vzXh*I9d~(y|Vqg79ZSWCol>*99fV2VE@xJtbQ^#qX=L|=dtTZ{~5B>1n{@^nJ zdA>#k+O&#FQ9$?Ow zPwzwYyqh{8wD6d|M>&4&r(Kv$d!t2tbjoE(t93=C&SZKkW7#6w2sv5QAF<>)O|@rO z%eG@fcQ)s_5SB|kh0({DU(Ejo#u}8C^S@6iUXeR`7V^$KBX@LxU6iZ-i1?fF$tl(; zYBRe-_7(Xz_F1-_apYpov?#U*A9vqt0cX=&nQbnAKl z#xd^;#)N|D@n1PD6z&y&bjX+f|E$rWnDgJ{-*jfkPJe&hh>$;>-(N?BJkEa;zwVg$ zOGkzL>FJw?h2qq~lGntyj)`A4G8CpS*rU(fF}>5*kLaz>kB9b-KVn$OmoDEQhxgX+ zi1kw14#PYeYec?`a{Azym>XOHS<-aibU>H2twg~I9a4-X4@(%&x_+FKs)@K88C zzdGKhs7k z{PGGyzV!G{4C~Er{_r0AoA}R;>fvYP_a0;4cgKWc>H6o5=xv|x6olgG_+97eonPZI z`4xG3<6ki{6ic^EM36S4VM)^e-6dwnDN(Qj*~t^Y)E*N~9g4sO^-AGX-8+fdCNQLSV9 zL|VUYhqfQ-e#IR+JJkAUMnrw<8tyC7y~Zs+$&55|wvyX(wi(-L`3d(K@8|xSTKe+? ztb)qxJ z{v7x`JbT|~(Hqa+@BZJ#vv*#}a)O^7qrdSncVTGXF+SF#ztr`4&Qt!^9q+RF6s(t%vER2YrMet{KV5aS8YgC_g_rnw?D&T zT(0+EgxIaVn(h${E_jzU%ntNjuFC|00&H00zm#uk_RQ!DSZfE>%i_6-T z&bxrSAcT+RPQ>@P_uYLjQaG5t;z`3)`Ed?x31`%DpG?w5Dchvmr75H8wJl&etza_v z=^VqM(Y#MSTb~NsmZCW`SnuBX__OuZ|8>tE-vul8)Qx#A;dy0iqVA%-iP(AnooH%_ zC;aDsWa<^C-oMYi4E_1$oSF*-QQXHJzYaHKAJ6U7zOR+;EXTDM2 znz^_l?hJ5yCWn-lc)0Mn)cC&cs?xZ&?yjQGzI>*zi z@&&F2%R1Upl(XI7XTELt<-w~nC|8-0LhiiN{K7)~opCPCVa|`1*scbR*WdV_eZ@9( zC`6Yk%iX3s)@j?!Kg-T*zz;(WoNrg#$^Bf+T`j%Kx?&SJy#QVN3FqnRc@Jx~@MWEW zS=&VzKDP8O`-)99*0NRHU%fO$8b9Y3Lodl5eM+s(_$O!R6>+X5^GIf%73!wYwXZPW z(bpT<$9G+0|4j>%XMoH1b>3)WpX9l=TR8t$?>9T|Ro=(^gYg>5OZC*cJ)R>E?AhG+ zCkg*ApGnkt-$;Zf|0&VDt0fU@c&B&yIHSbe?Uh~zU}xQV&p20St;aU&395MaJagsa>7Q~pP{_Pv zyw5{?z2p4K`Qz!Qmh?aR&PRN`bLm}w-f;(%N#|o+kube0q>PRq%)6n^yWilqgz4Qh z^c+8wcO#v5zo$&AJn&9>EW~F@MsgPxcMS-Gs^_d_?yUMz(l1@Fl+Nj4%t4`dvVUCR zV3Pj6>yH28TX_7vDYF{o2X<6vP8L>BrV9CHy^}d--#@H5W8bmn{OunZa~4nzZldnG znenL5PL-73JvF>(^&XY|OuieduRAaF)hugw zF*42L_ji7M3IE4+lR`reZ%iC~!FuW>S(ot5nn-!L)SAB`;4l3)<1K!Bw0nddDDzj+1{LG!Fmgw1n7B4(a*6LFr`bl<-B&}ZFG z$Em|Fo^I{lj7$}Lf6MDA!_*Dsr}J&a&gB`oZTrr*=7+5@yGk?oF08VaWsaWtZ69G} zeVMal4oG@vKB1HQE$(Js=lfHviL80M)yq0iVbaVxOkrX<{H9%O%}-&bc$)uwopj2p z@C!%Z89Z6jdysdv=-C8*YM*=qS;1|0Ipb}#W9AFri}@yBoA14UW8jX`Yx`OguPv|G z+e25)JxbRuI7)A-K1y#39HrmB#n69&k8s)$_;%@^p*;oG?y|Aii*dqw>g+?vGMW20 zYLUAM%k4De zyD`vlhaPF--I9=R_z250{{!Z~pZ~hgt2V#d{15V<`49dtF#p5+*SDuOf3Eo-| z_JeIXedAc(cQ;&%?85O{d}&&-%EIWVk8*Vl|F5wqTP@T<Bs;C+7WZ zG*&K5l6P=`ajlUm>8babyG5iHcaL2mxnV>jXuo# zhhDG~b;vZuReI5NuG=sAj_cWr9(HwH^lMk?FaPSg{g;Pb&;GIu%txMKJ>7{7WJ6DZ z6{0QMx!kr5@3G*@dHBP1caUsYM!X!JUv_M`oTuuqhj_|{&+%0I;Z2?%Yh;6Xm0P)O z3z-u~#G`-gFZ>|+s2)t!fvQJ#bZ{pa_XYo9V&P4%+&%WD7w@u@$~RidGYZ)ou{8CeH2qZ3wVb4Z^{f$l^4k& zn|i=QcinBu?_Fj#<@YW#n~o_nn~o_nn~o_n!L%~tq0FT4-oo0;PQH&*oNv*l@w7eh zg-sW+??U}3`5klpQ}_m!xvh|}RvaJe29WiB+0f=Wmw61uE#w<91s~ls&RW*g);)g{ z^?n^s)n)S2oBLZ6ef&)Q?v#UO`LgoC_Nnq?QxAeio(V_BRJhV<9k;?&20Qqv96tK{ zWFFsVKF54RSVyY3YICZrHDMzoAL|oSyi(tg8_4H>GoKU8w{ERt-Gb6_vvaR+&qCTw zDU1|P^#b`O<>UL3;;FO+v}L95CVOz(b;#E2e1GoXuB9K|Xhk+5JL}s*8?x-k-9anV zLA^0{Tlf4?P8#Xs)!Gy6q%<~nIr&+GbRFM?7Hsv%l0fMfJa28-2DWcy3}5@>jow3> z!H{bOsRDiVU+va7VQROieMP<6c^mgV=}v_7`;HEC-%-~cFE*;b zna}*9+FGBGt~euS7i%=4MO_tpvkA}cx@E8XKI>WC-E|7QvYBsmzhd34yMKi9KI)=1 z)M@q9X~@u7UX0IR?`-=hAKfn?S+w5AEuQfC3t`Gr|6f1Bd)@1!_>xWct45$d&gdUi zI{I<~)EHt9d|Z_eE(1XJE@9tUFa|5Tk*0qlHMb?b6o@qU|e$SdC+Y&STHkmehfNw|Zm)7iw zzRueGFMV%b@fANyEI#`uw|>#ueCv+Q+Y{e^H8gJ-a_+dKBXQrWq5HGBb7*|m+`ZZU zyH2UGvvW&Ulx&>cRlB#c>*fb4?S8qlAL~DQ%?j@Wn;6eL+wR{Gd2-E$v%lQ1=Oue{ z;+%WDyT4feO5){M$?kieIh=Ug9@uvFikCKS?V7Xqob&J5a3lO*I-~!_;*t04nOXEy zqV?8S5|JAZCL$|lZY+k^xm}eHw06yG__;l(q5IWg?E~r8x1P6V!}tGJ-TmiI8o2Sj z?|gU9OJClcxaXxmByN28oy2=9zPRy;u1g>2f8>h|AMPHuJO6)WwcmGk-Th~i*Ar6* zZM5#R+SlTH@(tZlaRpf02d(z!3DbY+eLlYr={KuP48GOw^-gW(5AkWWX{-ZB-`#4$ z2S=5DiglFX}tLM2U ztexkX`P8kn7jg^nCHp&`jg>3z&h2+TYYoD#(OYi+!MrP6gL9`%eCpOCtj+TruHNgh ztlaV6aSd6r!k25W*s^gYbB-^saE*2~H}6@}KX+DTS-;We3=Yln9A2__z~Cou&9!oK zt>=UDmY!O%w_vk1x|T7U+!a6DI5Rst_g=;}{`lnG8wM0K?Ky=x$(O@}8YYl-N!M5R z&b@Qc=(A3n`->3k-(Nm;!To{o;L*kQz}&U=fGB>Jn|tTbD=UL`wAhzF*gbX7mBmxN z_gDIJqpX8$uh6`+vEJvJHOIE#3!z7KxBBL(p&#>Hz4;3vjTQRYf78O+$JWu- zb02*8*?Q(Qo^adc&K)h>y##(?!aQE?ASQk{V~H({*^DIaiN?(1= zyPKvwzI;hX4)av!5^pBBH}9>R^74w@D^0vu-_R{K>kAlfSi-o%ycMo1|M+C~Xv$34 zE#F@`Z|m}#JLcdsZMjz2u9!9WXAeCzuWh(h){r&k{Mjo8jBf91m0i9fwX_Sj2 z1IKi9RM~v@lk-XLqU5+{K=);x>Fsn|JVC4vgYHDJQ+|Oh0(_H0CR`CU!>0 z?zry4>m8=Hhw@}xJetb)59C|@ycHT_Tk8f>2j7k!df)3lJMJcYeq}O$d27d^)$S6C)}ugpRNBIe9Bp;5~Gc#@$2j?`-*bLTs6Po9-3W}&lpymwwRmt?{V*9 zv_9}{lv6ltu!)d?Laqrlx6K0G~ z<^8yKyICX1c!#^-1n(YW4Iph}H*15AO9xL|?^pwL+`Cs9OO)MN^K;z02km9ejBm+~ zsWmMw0Y4=>=fwZi!3}P`A&BZ%BF!n(<9Y| zc4%QCWANOwr?KuM+!fw4#*JU7op}8DX z=|Cp;)-i`*@}o>Ezj{~l4)ow!Z$!GM%FedumnA-Ce*VbSm$IgR)2P%ueO({#R^jKq z+t(5Q1$W-6&AMvUlxnwk>o%9WExu~?6y1HcZ`H~vKH6aSzHwx|n>IiV7^?2ve5QM& zi~kwTd`szr1cq@R=SlKXJ{ost-fkUj^Sq5^x-yNFXSG}W9_JSvXR~yyoi^w&spSgdwL!PX?d)5@>uvk%VP+6 zRGB<_*OfyydyQPx`~LO%Pnfls`fmvPOM2IJq2?3UfB#P1CjJ43{|fA?x@|wtbCF+n zUe(YqD)zAEh{@x{91GIbU**DdC z0rp;%5mKIqhFkElw(iTAwsp;!R_99Yhppp&*zJ_n;2O#ldy}$>*TUR(0p-o`dSKU- z)*HCr{93~IPb+JlTsO5QVRdAXf4#?Bru+4pCv%_RB3D@;;q7=GA3VUC8NThE2U+XV z{J@$i+OzVlZ0qTdMyp))qnr$hp8M3{^|wFeUH;9)jEM5-WM20(c&$K}kC-QOXIMGl ze_ye$Z>T?Iu$6YL<__KDxrQI}JxdCx-|t{7SY`7Q>X&?bOq=!yZDE{zd(O~?QMPw^ zRmPCEI(-MSyvwug5jpJHnN@6$SX-NsZRV!)J!MPcj9+xSMzz&2K3MUstsB>ZLH0e< zJ6O}v-iD2;cpkt;wRX;uI{NCZjOn|u&l+PR_Si9oAsboz9)3G%BgxFz#-vtszGx`- zXTm>QXAwx3CH*56-)h|0&7Lvg?S@b5B52xZ(ot!07$;KSUi->g$M=t9GiP=HyEK1q z#@33O;*LYKi}rp0lC6KcsENCQU0eUg9l1pC+?uerP0#aNa5RP>8p@oQjYcXFKCAir%%(!(@ol$?APKh?n?G}wHMV~ zSo#`v{}O)DMBCwqS}XOvWP4;LysY!C{C1~n)2O#y*=;_?pPCs@o47P%-3NSkvca2n z{nOd3JCb~oO?}*YlG(P+7$L~#=Rty^pZ?A zG8Q9Ox#Xfwkz5vgCABAS?tk;Ga^*DyTpF*siu!3j_0*NrSM#X1u3)^1y|AmY%o;Gs z#=QD^tzXeyrpN1zjeF!9YWBD8@Az!}Rmk@n9a)-j~ z|1-4Z4*dwaKyB~j8iFULRkLyz`!*5YsQxN_s1|Ihx#}b?!=oXkVGJt0USn-aPhD1@ zR+ruKHv8td`&!>!eMdyc8)imYr@MOgy(PbmL!w_L?vw0q>wY1*F0Z316TGsh&-+AV ztMUSGdj;YysM9O5MNhQpSgP7UOR%$e=M5$uaau_cN*=RR1b&_oH@1W1{kB#TyD8<*xebzuPzW ztFuD0-uuq|Zg*}&jqQEvJ?0R%`mFXkyL@Y%z4HH1_vZ0cRpB>^jepqHc3SoyXj*xu$Gn-*IfX!Vky zZG*H5IJC95mn7Ksgg7t=CJf2<{aJhO6*2?#XSSvRGH^oR;=*|xU zs~vXI@?!dX2!6fCPDuQ~KPr;$vpYEJX88J{W8Zy!ROz9+(uZ188sXcAWLJS}O}W9Y z?{F@37i;qhcA3*(vgvO@LjV2(1NL{RJ!1Vp{as&nc7MCzqs`b|xd{bTNp`~STq|)m z@}XlX^Ub#tpW1@Vxxr4TYCmfIVpnASk#KIykse^#J~XZBAofyL`#rB0+;`vW!qLEx zK-Dhzc7S*7$j&J18IaEa7#~>1dDdjB>)Cv(Itu+~`>ki9(EA^^*x}n z@P`Yo0)IJsU9)+7=Mp#0@+BwUvyJ%H!rFNJ6KT+EN~E511mdYd@TC>}+XO8rK27?5 z%i3VLhG)^7bStl)DfA_~};{fUd@TX7v> zcr2fMLTSRL+)O*H zy%)U?lqGBuEr5q%`5qNxHjlblsz+{ygfCGZ8S@JANAe?0H+a{X-|TQc`b;shybRggk?X)O3HU9c4IeTpiT>x8C2i8(#@7tDJ4J6xm}?uh zcM@Zt|K+4j@T9H|^sz<21~>wzaUH@}4@L&Q-{Xv=3#T^ZtKbv>PLl0q)D09^p=2BS zk1uG5PEwwQxncQLE3>Sw&Lvle%ZD;wf3V@i%~yphe2Q_JhurZQxnpnt0;;b9mQt z5d4J>tc--vKE9j(gNdQnyt3s^*<+M5ZPzA-j(GoPIQzJdNisl!?X{nseE0=zQ(ayL73HR?mJ*j=b>T!urKjbCo0&XIw{~<5^jqM2jD4&oXi2)pacD?m*IeEMuC*t6 zri)HL1O~@|MIgT3;B7m3D#p{!(I<(kPn_Xe$RbtE4L&N?35#G7}PVy(5xcM5^Y(9Dy`2UiVOCh>; zPPmO+0LE5#+t+v;Jt{470DcT_t8R%eY&ZxHXrFXdILQ6n^UfhZgZ9&tt`4_T-r!1! zW4r&Au{pRX9zPZw91|%5zl3u(YZ(O=;=cjtSG=X2XVuTd?#nvu-jkPA3;NM5^^gknaqpU%`>TOo{$`Q5c>QxIN0M?KA%MBAPIUH20jf3pGJUBBg3iJJN$3r{|bh?mf4}Pw-$s? zOtL~_#^O&A|Ky!R7b(z%XchhCbWhEx{lwvmPLMy@{yCjJ@mANpH(BAJe0liz=B|nB zjK&v*gMK^IhI|sP3&%T&lpnn)ubAk=N~R|As!R3JmWEu5swzMoJfWfuE;u?6ueAd9pOSA>s$I;J3yD1Tz49JEeM>e?Q*IXPrO^#d+Y*zzY`B*vo z{j_jJ@V7JQ6W_siS37xn>d-5+7CZ9%Z_4l5_?MGu<`;i+uiw#}f3PBz@P%UOq1eUh zM|%#C`I_5L6aAUC_#Q{-obw3DdxQy!woy@pE2ve z*!W-LQ5({41LRin>R;;C4+2lo?0?g?`uuiG9~Zf0Z0r=xS$+JFb7(5RhjJcVy*X%H z71-_L+FC*3OA<|@A`1)OyBQlGv_nk8JuDc!YOYa0nN{6heprxS0}?i zwnInyE_+zNXY7Hok1^;TSj^mxzWwRvCR|~CYBtgD6a4k!0{l$)Ty0sGm-@)zzi*IBljzzArfcr*kf*7~B31=*rZ?&hG2`?0QwylRj(c--S~NK3PMX zynhbeu9too*DA)Sv3qzUy1hH5jel|5z;5Yn<3DLb@wff!-5N7y3;ZoEv_h{@R`%j} zVD6RAX8syOG3B);zg4{loc$5mC#%X%oA-^p9~O%@E*~^J1o{nlV{`d!Iqx2#zkztj z>2imz2Ev(t_0|bKEjsGYLz3wi|J26x@3DSabHm~Zf|KZ{mcGX{`a^g7gC z+NZM}AiruFcqO z(aBy*DRd&5KhBt&d;4%`z8RVo4yccZ=u`RXj`<2YABBhA1z*iZFRNc|<<%{9bd%XG zE|h=^&%jISc3PoRs|-y{5l!eh$o@svD9+eXx1BayX%F1lCVIQrtzV(_FSJ6!r-h^Z z)uoK9k}^jb{~~^mG1mItu{yl5zIUw2k!7^|2;ari8ySly_fp;VGta=)tHRy*0_4Y& z4-XiI7MV3V`@N^b2%ZjHk|T5JOZ??${0d(3TYE4oFyF>R1h*;ir)n~e_iV%0zA;de zWMag$=CbFa7vY0Cp!hHw-4-7Y|7$<|u4JovUaD0+X|k_ceQF(KXa1FSkA>TQ2gZkE z;T8wn#Q$oRov!&4wDUUW%J%Wsz2rsoV&%f~5fkIco<9}_yV9`L-+-q)nq}lzis+>78pBAkp@YTCUuW#%+?Za!$YAJtS$>|!e%yVv;5@d|#pfZnOQ~ZN* z33ea-3D}{x2yTs6F(y6V?LL1u*!2O=Z+vl4_!+*JKM?F>KWguOpH+Q|`pu8I<(>$3 z{f%;sjQP0)e|4j8NN5COX!^S|&d0oQGIsUf2tQj4e`q?w{+x?{5B4uJ^rmprte%>t z6MbdwKda1=@bi@MfGSSVsx8$Yz?SB$q?0Xh|sW0&&oBcAux76zo z``e6r=#udNroRkeeG}`cvJ?1UzluH5FEJ73Hx^#(OP&R<@4N6??!s$laUZ-7WnEJCB!z});;BT;VZsI{2SM)N6jyo^J=0}d^+haQpPJR4|JUelB zf`8oZ6y#2n{uBp3(;ujkKTrR6@~5*KSA1~q>&J50SLgqUlt0aR8u=hzEMiZ?Ki=#y zJbTN1oh>8FAJ&;A(aQOn$0_@;d?$f-?tVDk_8qPOSDWEa0sIPHESB~uoqkeHn>xR- z8Q+canA-`AHs(#9-7z7^A3I2(HTU$T3^w_ z%i!&Y3xi$N=!`8lqEG$tWQ}k^cIrF*%Tw-xk$(6?T0~_k9-80zm;Pm_w^BOU7CSUQ z(W-78@6g2F{^hV!hJahGU+=^B=Kf_Kz?Qy(GT-Pcv*WBXp9>$Qj7JkKF*LEwEn9E~ z4<0zq|L`A09|M0Atz;0BYE4TG;SA3YxtIde@?hK&!v%R z?(e1U?`LD4g(8=%0z)wIW|+Uy8l+r+2c(wYQXZj-}2{Q^(P39KN0s>H7WYnpk{!nsx7wFJJ2q zYu0uq_|mf47n&q}hc(`t(6`24>R+BU-k|l1S>px$%dp04`mOO*XO;O}_-@LGr+vUU zuVCJvKZa}f!8~WA*kfl%2Pgs8Qdq}WJ8*GN`Wbd$fBP@-WBR_v;AKqT zo}D){xIH2G{e|;x`^mQzFC*O}1zWEg`69b4l|9DdTkhz*0vITV^fOzmPz62>M=m&i zl4)Msu00nEN5QZXSuK82j;zk1opR*e$#{Qt`D%Y?;gZue70)`f{q}ul@|E%}Lqdc5=r$=Je=L-hsDw5;x%KUEg~P{Q}=r5ZzU>B^Q1!eo{_Z z<%;W-|m!@U8k z`XXSgZ(hGW>D_6iSw$x1^hxNk6#g$fEWRa3PH}kNPU2A$$N@o{chDC4cz8>qV`J9R zj^js7johoUL+6H<&Ufw4r9Shmbm;u>Qe>U6N!y%vl7+45jP2X3MW-{iFEF-PdMO33 z#CxSn%dY?0Anohir_G;JE;(|efw!|hdZ!#&`jza^?_lG3k?|BWp7JMpYP4r}nloCm z#hrEok-K@X^^DN|alRenFIMN)d4H|nada5f3D8D8@ubhKwnJO6Yc&7boesQ?A=6ip z<0S)_)}I&bQv6jt=R@nA>$3LyTfL`1~uN01`&34A2HcdaYo6+R7t60L8X)Bm{XJH)6ZwT4V-IK^-aKY$Xjz3wr^$+6rOI8;cUjH-I2An>sQdEn{j zKZ+@*u^C=*!jVHBt{!;vWE%2+tMzzFXs6;Zf{t#m=72-5g1`DFey3XNzJWPu9C|Na zR29>Q+SgbPe)Tl)N{-aUjHM!`oYq`rzv_-<=bMgQm<`N49xhr3(W*;a+i8VczsZ|3 z?>(9J>Q_&nA>UNT8{e{+e$Dv!wv+J*9>eI*_yKPAW6$=*SIO2pPP|1^n_}CnNcO4y z&81f7vljlI+h}hFJgO5|HLfNO=^p8mmU6^wd$dq~sPtT&A!}of^?W1un{%hdTK46- zf=8NIYxMKn%7vV%9BxgoTwM^}yv54fJi;=B*hlLs zvhspDpUU~1HQ>Oq#!;bn*dM#UaU6SjoO2^ya0ayF##d~$iYJ6_a%l?@V70?7Yc9jv9>9k7v3D0MO*kYrq{2&I=tgw zIX~XLIZ(4o&t9>EWyNq&{O*!AZ@Q(S!j4_rl-|}h0!*7jI^SZ|!U)>q&;^=oP zx_Z*;sh3VYulzUN^0nZM$HTNX`tH&E*WEI)bH1s|;m;$P^H((Ik**HhZ_ewOZ$*|b zr1@IzJSv&*X69Rpjtx07`TYUe8nyY(`AaW^@V2>;h! z#7CUpQaQB+?t_~tksmXj!@T#_N#pr>%sAcyUZUrL#_=KWjfG3>IQF~sDq_YTbzx9R zpKqv7&qe_^#KV-=N&Q!%e`~)t$Da3?qr&hGVn*iTzY6m$7O&)|`nbNn{3-idKsiH;ZeNBL`}I}AoJ5O{Q&uqTrA6L* zG?w;le@Z>|3?91WH@M}`qD9pMUTSlVTc*{cZ@$HS+i!Ge!p&VFDln! z5xH96*InZ4YFB5){+08Ml3DfmiqjcK6#cXWoNGsJ5qq?)WliI(R$`UgIV+LEnT4LO z3=OxewHw+eTe5+lnaeyZ&Q<6hq9{4~6pQ`NKK3%kBY!ntzPBje$f94yw}?Id%{N-K zLCoW18KH~aJ&*6-z<6(pXOUEJ+;!0@Nqw7h2sSuxq1=ri@~vh z;8aN)nuk|+k6X8d`=t(}leDA%NLH3|M^_o+lO6aWHiX`_v)<9aSm86)azfu)u3#<6 zQ8M6KwqS=}|4+bpE_vWR7z@4&8K(!|($~bZuBNPD+zgEO4*+B7 zz=H8?%AtErZwAKufpIfyzpEdNrF%7dFr#0=dyNaTCUVC(dMNZi2)s4cGvN1?_(9>9 z3H;b^84!LOfuGi(5_%AwAh+RTXVR?bz{1C5Lt_DW3v`s?J;(7Z9n5>Sc+PNrp)D`5 z*F^g*?0wzIZvo}5=8U1YkD%}0(sy{lH~7utdp_Sq8{$)<58;&JiM=r%WG?-`U%+?a zlj^81`DR+y*r6};YtB;8W-IX0cfmQwg>#*&Z?y0&@-2V$INC^8S@7H|d!Adi!1W)s z@NF|?)* zTenyteY+Gm1mU$^Zxw{ScRko)?^E{s;CD9sTegz%$1vs!+NoeqAbO3X7Zfm_8ec)@ zb6M85RN&pV)Rz5c?&c|Q`^zAXzcGzmGZ#Ahun8&Fwu8C&EtoTB_d4o0=f?TUj#}<& zdV+D6Zwcc2@Dia%{tG(nijAgqED@{?k{Q_(Kx#-i#^`u@a3W9vn9uF z=Ua3Jd=))uJ#cFWUt8AvZq}0F*3*@YH;J5J^X;VF>%pO1)>XXt7TPFYT`^0ts^zwq zXSLq;(yS(8{f{lun)(e6$wvRiGvJUPUmb9(q{Z4?Hx^YLH##3zW|ejI~V6(PO}%8M$2wj(Ygn z%scP-8+)n>uan{DJzR>Y^Xs!ov9e<0x{|m`IkNj$NasJPIZ_aY!aJ=@#uS7H3*ke)rZ{?w$XC#Y0 zT(B6vun7LJka$z~++UG%?yr4$aC?q@?q&IzPM#^1uk7wI>rjsGM7U{T`?Y`%x9;;* zzlR)di7#p>1IE!Ja0B=X&VsFAtTU=}nFF-b;KBM~VBG>P3D&Kwso*Sl3)X5&a8_G_ zx$s?hUqozy;8_fAX>DJVPh#y=;dbWOmha$$@Ir9aoj5Hw2fOAlzDo2Y{KrqTHr$bw zy1SD4<*b4HHU~zsM+|MLUC}`C>hf77;H>V%DQ6B=?KzOjJWck-qrBI;Uj_a+ z{M{egN1YbcWpCXa(_w#KHf6@4PCQc~!Y@_JS@KWT( z#q_a~ashB#e82*)qTpbFxW8t8?La};;%uODLKNeJH}X1Yh5nU3Jp1e{f5mFud+69> zvfoF6lhSSKKfxXwN;&%PwZ{guk)SsVIlI861LWYDc0GFquYM!OMsmv+x#ep=#$WMS zw~WU-i>dqTZ!mV&>;UWcFTly0b29L{gYRE}?|xFu;;q#6ViwDh^>=`arXI4fk~TaX z(VA3(H{SD2)bnB%llzYi`Mmx^$1mX7h70$c9kckkm^OTF8=k(QIPR5h8%31UJj48I z4B~y>IA-zA8^7dIF}!56TW`8sZxg@&;LP7(@f1C4lJ;f;vyYIep8nBU6mRqoBOAfJ zCS>p?W9K=(+dGPM_9itl^GK&B?jt z1IcsFP)<5GC!E8Xj0?*bF7F6-s=CtkR4O zYg)jM{Be1D_6?e=6=}s+SqU9we5H@4%N{+&xMw_>82%MJ2OTHnG1j7a3+Ioq)dJYY zQTiLu9>iajL7gjrNpU~Bcs}jGcSD>PTiJGXUU0F z>l%MUM#XPteH1?@uPeS_dnfP|e{QLYYq*m(TGn3M(9^+ld`d%0)#o@5lG@O^W=Yg?(^t23BwGix2MtuAUt{m%N%yI~{p?@D5{3O)I5s z@qKWVy~Dv{HzcRZD7(|g+2*w)8(vyn*l=LYsD?)0PV&QyXo!Mm*xa4SnZvEniSXrX z|BgJSKlQJElt`hI*DS2vU(ucTv17G~2&_I^8@_at$Q;F$1hhTrOX zjC~A`ZVEUD>+NGS0R!~$0rxR}_8RA@M&fsa$1X{R9+=aTH0!X9ZBtLXzob8{%eh*o zdkR>O#@VO*{=ARk{dv)~;2SvK^*d{O=gr{KjPlu%-}jP-dviQ{G0>LEt4zx;`L^6P z`r5U$)wX6%gW7B7TeQkrsqZaoiyGP~)5bZkmbK^*RYBf2lD~r3DsVOWoPT8$cv}?} zzyv*cc|q5yW$}3*-5j4M9BtvOSl51gd*@Ng_6XO@XR|q9-LiH;Low%2TdJ<-%##ls zzOJDJ{q#QOrh5a&t_nUZ`;T-4`_lcK2}k#dB5yh8lxt^Np&y2OYDjbv5ex+HCxFL~ zsVjZ(`cC*EdlDYpYv1l!yn%OP*xwP)s(ia=+A+p{oN>Yf_qcl*8<%nJ^?r1T`!hxu zIx1l=BaSmwmkQ43S)+x6Gb;k^u(^EtBlfM;Gy2W3ANuyA}ZZ$;@@l_hvmNAyb58`JCXG+Phc8})#BzIMx=-HD~GMTf3oaek~WVq7Ae>y&k z=tbv-(VaQBc3wCNEGzhyX_0dT*pK3Tj`pJ2gF9rUOb)H)TVd^(Pzid|O!CrXpd*R* zNv9F-6O4#S$X%Nu8H*npd<&dYzECvV%zeqCnIU>NqI{wEY`ZwAHZ1T`{SF!1ZT#0) z10$m^@$PTh52MXvuX;L^)7PzTUmx(krwAWr(ol5Zcx>Z9ID4WsT0TRyA^o-vd_T%L zd*WR4dKSfneBmB`=QB^R>1}Pw8Yihv_}5V`KyIDe*}M2R{h>j zziP{QCeDEINq?$$oeUZL^2Em-vLeyhVZG_dMM03+$d&wkkXqc$WfijZOO7T=07?d#8GSpLJEdaQ(r1Ugr>KRsN5y zr-RJ9j4^q4i*zpG&I>!R`^3%Y*%j8_?)WP^TmGQ9Bl3xG|A)Too8AlVYF~5n`h1f< z1j8$UOZUw$P`)n@q2Q6q-6|eDE(bQB79MW_yMG2A9|DhZVyN>NPsQq+Onk)G-L*#d zUtBT5iN`K+-_>zmJApNjFS4BSb#eY`ugsU+G8OEH3yvyt{AiDf36F(kMlUS;&U^`$ z297tsT>p@PW8b%K-U)^YmR(gqeu56{>CeD-H%z%8GOpwz-@ujq6;7_~ z{kCt#8f49D_XQU9+-I%0mbs2(U$f`S$ZE#0-yXia5%|bn{Kk~T+=JXZ@+S3rs4pDr zX+p-*&;H@T73IVpD9-v-@{B&j{lOzn#LtkQ)O&uYYvc^Ah4NwvCMANQ6{r%dymx|) z=AA+8Uo6a2Z`5dO^asr4gK?vB4*{?AG2}v}Zv!V_@ILpcTzY!{%#pxoR8P<4?fwyw zOW)f+lbkJ6a^a17p7PiIGxK>~Pd)QY*~|X0WagAH*67bCj-RS~PBph;+Uo%}PXdEO zz$X2>)`|_x_j;Wbx)EKR`aQrV1N=&%&Xf`KseWl^)cA99-vUPIs~s4n@5H7MtbkE1 zFcLrf02uuT_bUGjFcSaqo_`LE%82=%Y>%jlg^!6_LB=W{&{58}OMVDu`Q&A*rR@an zXb%vhlz#zZ2X;9X__gk{SNKf~Wjc3Mab{yO`%W*}PQIlf_DJ#bp0(OTBFE2K^6&cX zyq0w9bo3ExrF{E}_Y)q<2m8!T@J0B|HS9a(Tge?Iw5$G)5_6@#*WXe)bMg@T^Q+3N z71!|lE_r42e+R!gsl#&TrzYi+i)OjbIcS`#kY&n+C3)3^{XFp&k(ZY9?rj` zH|5?(o(aXqEB{;9q$|U%BZFPTIs1Pn_RvSm3i6IVX@yJ4^QL@nid_q2BA@KE=CiaxL(3 z^}P-sZ-6-`jB?HiR9;xWsRezbC)w&s#5PinivW4w4zh1G3K)Evc2khIH?oES_EqNb ztM*Q)J^D$apGxrT`&QWxyq$Y>HHsY zkHC9LR@b}WX3wM{=8n*wN%3L)=cnJF z!I?Qt&^m2b!jls3duvmVKe0nPTOc7&l>?s%bgg2Qy*F%E~pvCK;$$T z*XRm^;=1&cWN2dvXZ}3iC>ixhyixMUY2hvJRmd*YA%d1C=FD;bJ!V;yui zP@VQ^$d7wgK3#GG7wFqSIf(1X7YuI*43vYI9K99DWX?jL-KO#d!;=H#%s#8X2J!`K z-3Q7+Om5#+U@>40;*gW~*T{!8j(m{a{&CN;X-?nc2M3_{n}>iCefCWtt{@M+ahmqV z?gXa-7SG(%k$QV!I4%(E+Tl;_SVj)>H1y{k1;sk^hS@z*Tz+q4mU_?oE|Pvl$U zJEBu7pU6QjJ_!%mV4Yj_$}P)gKIl8QY6JB*kRR<`aOh{pmdxD1y&Ls?Qf`e>*(xCDv?~-~ZHV zem4V;x%{q5u~z&YxpshDG)v_d1oz9iZ>J5}Z@*-P-uVwJ{G(S+*1Yo{LFBfTdw|?E ze;2Q3e^9UqkkeAIJvYVb3ecWlzWR92V(DYTZP8M|vhyB7o(F+P1^avCY|ax6H6Q6Q zYbRSNmHHDi$ni*>gg86TwkPf`wtx+xjCF^f`}rJuhLexaTr8ZtGfP z^IYq&;4~MxBV8!fwsseDXXp}guoYhV=o3%xA`cxo0H0*NO0Ns%b>C2cA0Rz9V5cON zUdJ6IoGqkXqYD|n(>TK1B|U`xni*rDZX*6o_CLA5-O9LJv7Z~4k%Pn!jB^E&jH`aYZr0+M8k}~-x?P@!MD)5>DVhp_TIAY zo~=10$R}iUMqHtZ6=^@|53gfwb23MU+9$CO4NeHx$-je73cVPazH&NuZcjpYMg|*M zL0jJ4+4xsB2EK>CnOJZ68dKPNs9Z`uI{9t7i(e<6Yx}yaAbSAG%Pn|1x$@3IuU_7s zZ*8|($IOa^$ZE=q?&cDckuKeu_p+n3Z%_-bFa2)u!!~zsc;)`pEoV{A&@uOi#P-vQ zz9_$g_9Dy93qDMCrcR5v3)%WQ&+W}abypvith92~e>SZ1m15e2Mn8p56WYGJzm>X2AE-zy-zkX`fp( zpUHY2WiN^SgvgF>3dY#1#CUeGcG+v4wQJ&;^R&59;^CtS?2BxX{%@^N9su~vv}e(` zng`e`F=y1-OA3$+Q*k=#FV?5hjZejc_l`mnu4fzFOzSWG zE2_Oa_;U+(O5a|+9gc0MRX%RFoqxFP)B)q5IWNE+(9pbc3cLZmA|D1FpJR*l`GaD| zuJw8L$jO>mn3W?>j_?lqccI``dc0>E>)pk90r{D?_WGHLnKyj1cBH|n67;)USVQs6 zHtJ_!14|}FId||X`1e=d1wZP0_Z;sOPpN&b)IZzsar}G!l-%SA;F|ow?g-rvr%c0D&84?Y(JevdE~tPLg$|5^vKPUjoc4i%bxwJ)$l|UU)d-3x{-UH zyi=Jp>(IlM;7AMp(bQHe^lbP3=C_7-KKrK=!H3h4#X(|Bnz1A0x7B{5Z5RCF8iS9H z|F({Gf0X(kftU68e6!|DCQEKE1E*^^-4Lt zxmhywm%JD6dv@QPu=j1pg~ZkH?OS{sgFm*}z}NAss*da+jb|GFYt3(G?PK+w*meJq z`@eNpitMEK51&aNjYrAn2QH6+KFoR?Wgmul9S80M(ns;AP#f?PeQe>ZlKe{Jsb755 zp@jf@Cy&#Y(MeKfIQEh?D%2DxUzkk!0Oc*kjsU;cSR>8DJhL9Vc^18iA6wv%_CtgN zg~(Fr73RJ1ou@`d0~Zq)F1^v5B}$ECTlIV>7rqU@QoBgH2yvT!iGT`dEyNxr6nq z2bW64C$TBzAFt<~_k1D!D3;*XX^w8@#W7?wpG;FZ$qKLR1h;GnW#t3=J>%1NjW>mF zTIaj@jXkFzKR`J$?9cEE^`FT1M;MpR=iNqpa3y1#i*LV@zM8QKDiWQXeBOB{>BVMD zZvG<&b}5n0->JXk$W7|cJ)@B7?m4`Pyt#w6?~vYpp%ZsroGX8SLDs>?KiPpMF{s8&N`S#9xf^DZa##+*=5g+bx!lFSIyT?gmbKC6q~T_9QZVO9qo$7S?C_bJlGBO ze8+yQ{6A zWs8-!gZY%QZumh>TpWiJd(Si$pkFz%WlZG1)b1Iv0AqS}l&2V{@KSQ+kjllxn2Pqg zuk=@I4v*1~V%1gl2<61Dv&FC7n7UHpEX+MT=Gr5vfA(LDOOP529~P($9{d3 z^R0_MHdEh;UF0sG0osrZ|MsDiHL-9h=8VD5c!zIspHU;rAao{N9`)T;`r3 zd>Os@{$kD$y8Qk^&Z&t%|B(8P#~prOk3OW>2V@0xvvgi}YhlLtP$u%BMltGozu|o6 zeYx{K#CwhX^T5&JBV*8&(sG-}I_Cz>JNle4)H`RG8hOlxK@&Qo$M1gx4CGJUz_^@t zQX_Bt7967Pu(1wL|6cDmD-_Q=(aTi&UB&wV^pXB)$`i>Jf4bA?c3_J4&4Kr zx^V8jJV*+L4oKbAf9{w*%MGEGtiU zm}-ns;p->Jon?&8=!~nJ{ril#U_(}*adz7TVnn#_q!u2){awBB?xF$ZeI$Q=HT=}z z}S{%mZD*#6E3 z7fLy2zlu53tG%I4Jit=lZ@K2v*>jh_L@_gM{x!4g0mf78j%O;i)L`RTJIHwY&)@6w zA1WWqBbe`1^b^Hb-^@Bh*)s`1>(NQ@3gT$4M823fgDYeQJN!V;I@_#V#d`M-@~0Go zcUEmqXt{ef#5`NMp_|>aAx8If=lxrE4D#n1`e6(gFb4VdU!Z(!* z@9}B3Ec~NaHp&-avB%|0AWk0GFZDezOE~1COl-S9_S)^GVa`_4u4JRiVbg@J1Rq-t z*rEIN3$D$Do~!B8qdR=jMyIL=ZYAp-9mTu5?Y4zMabh?rR^9bs--g_zkB5;v5#s#!=EIK;pyx;jyQ6za z=k1cIy>mJ{m*?YVtjUqb%x^mU%!z6eucM!iBl#JIr(Krr~E75aS9_X%>+9`WgIq>kWkpB(cW1Hlg z=p)0$iMn2#U|;6lo*L;4UYRtvjOfeZ{V9>$_c{NI?w~eCy5F1J@5Q_~d=#d59g9~r+l?TtErJw%g>}$we`v(XWf6y{0_g){O}uz_mhv*%%#Mg%X@BJ z$tbP2#ws6C^1D50UYU2?GIfkKw#@POkS)qL%|4HZ>*{04AaL8~wG#t3E^#>nZoB%; zMY#Ll@AcG_%1^@@NQZ5f9LROxWpr}rLpr%9mo%RK@M=U~QyZ!~m>zs1u=-EIYJk|J zl(E6>np?msAI-Uj?VPikf*rn?w!(=MvHQty8OSbQIM=RxVkU7W$Jj5Zzi!U+$e1ZD z?6q1&!R-a`9PUucJpkP#(HC)KGkow*Pd9x37Re~iYp_51XK2#%XK_}__#V=y2J^nd z+Gfy>VspO@tZEZGpBpb91pIgjevJ~=NOtI~lfG*CDCV)pp3gl%3Fu2{D?i(r(6hO@ z6}=ffuh(BDJ=Au`ak1d<>X3RDjLDrjo-vCquAhYbg)gA*c3IkE+%`S*626sX>^Go) zZM?sc{Akq8#E<`5X!JAC#YZontWgX|Y`^mBdi{?4n0`-D7d*(F&oA)@m4fh{YK8zej%h7+5xP=5)gQj_;s9JkJw6kM%q&eQ`8pid|n>V5*g; zvn0cLSMK`M^lq>E(EQ(-7&7}S*4U8E{`{|*vvT_x`<5}hkmA_*Bf%}bbLciLGD35X zm9ebpe=j^;qjAfRFlCHmE8A{8!62a@42HNc*u$Qw)+WsJG5U|C$8pA1>C@Y0zKkqk z9HQmvrhZCf6Th)_%zny9Yr79xZDp?Vk+n=E|Lf0`AIFL`4z->ESIz#)7Rq@0E81HT zo}2v@>b2|sVCs!@>sdprXN(VC`z`oE2HI~aQGM;Vxb+Wm->}-~ZgBc;!S94F&Rt0C zJ>f@I9(vLIC+){n&~9v-9r;eXQMcV<;&6(QU9y#LA8K_C)Q8?*FIc(q0y!x?_hIn{ zPZkz|o0Y^Odi-2tyB)dsN&b|5FA2}xb%OW5`qJ5clwEF_-k0$e9z)!v@t}J$K9Y3ru5^?8UE`G|qcY`M%H}BE(W#XmW`_nXM@vglSebuGN z6YTZeboPg%tVy75^Nsb`4(vf}-|P!4*E_|01m#_)+g$oBOTMv1v=zbH~b3pUF|DGj;L@7JIsf ztFM)gNd;G&{BZI=g&C*K9XvUd7mP9(MCWto*{zRkKK zG{?5~+#kHa=->yS!7ae*C~;OjH(PmMAeSrWow?gRn74~q74+t5(pS1;;sUh)XZUu^ zJK2*7dxLrNZ0zp~xCfs2fXw=HI19|aI^)p##J15}=G5>|)*xl%had)KZ#sDj1JgG@ zAzT^;e4_XfGcxF7D0{4jriE5h-%lS}NBLHoup#x`%y(vfC<|D4-+TP*kD^O`xWMni z&B=G7HgajBoi=mMnGRplePjudpbI!LC*bv~LdT}&EO=fs`t3UQ zM5odge2x9YqHs659etYp@!m20ul&%?m@(%A&!h0yf$Dq+Ts3dmDpA&@l=Z0G7tG5B z&gEGyoF@)5FjT*uU)Va;GhN?p_8T+j%r@V>Z_r-uKz#|Hl;d0afyOGFT31LsM?7r| z<4hFoceD5JwF4~j%o<#ur+X|m-oN!cV}lBo2jD04)5X43UL*NIO&i&^%5A-WYpN-C zU>SUevd{Cq{UUIV90u*+T&0V1ibd&W{$4zahj;zoNBs`&m3<8E^{+D+{`D^>9GvUs zt`S}de>~ht%up^1JEFDhp6m-x27h(|tDIe#z4%k?;!oR&o{fd&*$)0ZNld_N4*ulE z;7=uX`8@w8;?LI1mP`XT52szcVx74wB?j03zrd>?akc+6Uaf)VT%U#DnT=0fXCov7 z-UPPF@m~%M?=1CK&t?3=zkr2*FVpew>D;pC-+RLjTwc5SrCD{WU!JvP^>1d?UrwwX z{vUW>Lpyk&JIbQOv8;n<6Te~3+WdiY-6iNpCD5lO`=5TKx3{8a$X=H26zjvd_wU+w zI@712`Wlz*wlUIeqavn_Z~WcyNj%@g9wV~Q=sUr4L*k#(Av569MkliKLq6sy{bG{K zx3EJFS=rbh_^?gce|v0S#RHr6HBPHLQuqGTM~c7y@{y)PZy&KPXgkuh_3#mu@pPU5 z`Ge;wf3U@QTE-Kr%Scxgjs{L?Y<)JwMNNG+#QBU@cKUjLP5cP5Aog5OBWGBWIdiW0 z>&{*2O_|I|aU)Z1c5L1fY|uZVH$@+C;zneXYQMb_e}8j;oJ0$Q+s87_FPS{YW0%)5 zPQm4}@xJQv3pvNO(Ar*Eh;3-|4PK{jllfMOZ&f;J9p&|%xc=qRv!ny*eHCRNFQhK{ zHnUlqN_+(CE(>la$3PXi;+I#F@1cb9<>(eSVi(AM^~NasRdbQwe2M0P-3*SP*Y??@ zLF{Lp0m>p)M7&7xB8pqNTJTfc5bwNmLS8(J;5>zUvSQ&;%O1$T^KJ}#Ac9FHdm!SE z$Kj!7?a8Ca9>|_$?0tNV-}`IF_r`?$?N!H5_EqY8_G=}3AhKVzCN1E30&~+Ej$;j- zcge`FF}WMLyGrkqc`qMQAS0Nkv-8sJ@zd?`_7Iwww+D-fE-YGso8~WgX#SeJ{6zug z?)i;oGNz!ne=yq0lih55l+fUDm*!J599pOSi120$GUfHJ1MgAjhUia0_H666;H%)< zgY+FlzCXLKAnd)<{@FFWXYJ02Nf3@~8Rx53E{c-zvK63N;<%2-_&Q6Wvvriyo^>|= zm+?O_TEyX&?~^PqwHuER-3p*X+bZZI_ImjPQpcR zouqU8uu(XQ4q|YWxK39O5q_>~KUotyMvJpdzu{e~i=WXG4t^dR3_q<2z4$rX#m{G` z-{|^RgrBeX;-_#iHTS)999;ZXqlcqb=qtvzkrLrBm9w9Ga~yk;ef!C^?5PX{>tq+! zb?l$A*SM#550+;S)`3LjLMzB?=FD?5Yd?>**Pf8hlM44Oa)-44&dSpn&;>idW6sHV z`REjz)5bY*-8X6xOOpo8D4s?+QEq_G{26(Wjl3xZClzZY{WcpPwfFoQ?Pb$n8U5sB zriYp@w6IC~_I>M!fA`ij=&oraYpUEL@Xd(MnZ%ZFis4n$-0~{dGysie088z|YMtMyM{t$^EB4{pW8tX&zi{&N+x2CR-18UAF>M#G=By8MYfTGk)>DM4Pn z$eBa&6{pmb>PVbAv!mlHfu!5EAV;o8HW#`l#BY_$$vy^%Z4 z_I)L~Wdi1xoKsp4*C+5MW7nEm;L{G`+Lr$pvJQQ?oPA>HiIVH0!@wx3%VK^ivy?I| z&>}RpHOI~jq3=bK&$r;wh<^e;KGYc5r-5-X+H5*(D+#d}4 zh*i=Ut#T)?kLQEXU4OA_;b%`y`Jg`y{C_D}#K8aO|8+L}BW{^`^P3tO!5jwiAz(A^ z$!z4zH@My3hk(7eG1Ia4@F8#qZIKm{4?#Ac=R=q?^Zzv;!q!jWL)e=62|fhrzyX`M zPi#vw{vhY(8Sfj}J!!47ZSOzF%ykdXTE~p+!f*omcuqk^C~)|`*Nf26v&u?4cd<8; zQ<5CYxTRZH>R;h!Bbsk=scjQ&sJ z{}O&J?3s7JhE9Mz(*)fbdxrOh4)Lp(w4oz{Yo3o?G^Q9c^`rj>>PvWp{HfNNn0=fZ z+smKL|LV`sD1E->_E{0r=T&Wv{c{)i<=G}F@E6TnI_Upob=PRT%FVgsW5ztK--Xsa`ptIxy^(&6e|wU2wIT3YXEcuYNHl;%?vtJI5btU`&`-A7(+I8bqldy26xD>(&jH{SnA^}Fl#7W+whjJ zy3w{~=>O|J2Jb2<@6Bu1$)0DD8BZm&lfhrJ&*;$$OIO=@Uat6VV#0cT^?u^1Xj}K1 z3(s28&c6@}1FHyf6Y5%`t+78Td_>gQ0^( zY;S)t<<+0c+(wxl>eH3?9$#1t9Pa>k>w!D4+NSc-rR#;y?(?Y^pr69Ndu4(-XymNk&TfWxq<$k{J-q4#ck_C(^j8O^Y#m8%hWgBvJ)sP-uwW4YFy%>ukuY} znZ{Upb+NKZp{#zon9(_kFFeyvB)#pN3FNcsr?-tfx6`|eQMw!FKexR(x^mxR<9@I& z1^wYs|FcK#y!}^4Qa|5xWXz9t9eHzC`;lj_efNlXekHMW8kgX!byj?CF*=rfEZ+Nc z&Iu~!IiK7)75tX^zzuxr;QL}D6I(Mw*(;HMx0F6FU+Hnq4|cnE7X`uZ{_l)GX+d1L zlyCj)udT86*9X65jll)a{_+bV|%}GTxG^#g)TIC zbBM!YJUy>~|N4trL+sG4=paT$$_`a~l2uPJmPXd*PUu2(g%naWN;ez9&!DMxn_Q;k^3mSi#av( z=fOHa+n)sM+x|&dE8f?G^-cX?-C^uIE414k+m{%V&Hz7YVC~#*k$nB9i_>fUwR|Rh z{H+o`BltUfCOPtF#w{L|Papl)(eO^}3$3Hp@UxW7AkL;18%Ax^!;|k|J%!J*W4^$8 z-bwq-y}a-2J9J;94c2pG0Q*KXI_P@R?^qWu&9o{1g)`>V$WLS1@YYk`#hdoHFniX( za7-kDd3^!6Esj~w?D81ez0Fz)&TfpQU5obrZ)o>j`iiApbKfL$jMCmT^{;&cbUDR3 zN-r0Dr7zb>Uk0XSz_XpbJnUlS-7>ngp{7HG`9e|M=0FUNZh4 zXAVEHjQ{7gUuj+8Kj=)Y$m=M6#5T^3Ypv9m{63PY;zOoC`YneBjK5Gi5Bt>x&B6Yy#J<7k!UqWLr@0Fp}p7|@%jO|;i*oey1&{LK*>e{lhnadM~RTY32#di8z zf!_r4BJe!URG6F?IaAh;&mop0AD#9=eD(R{S9%ZMSw18ofGC5PGHuHs--uuN#p^DhCygSUq z()IRzeqyM^?F--kR_l$SXTtOM!$Sp}T~qmlA%QCH|2j0kZcHeM+|4X=&gL7R^cnlu z&K+@e;6P@}_|R(lkG0*k-}nf8#_VHnWdC&;Iw<_SWG8!(H(PlD_F$3qMz`ET3{PR> zWzJqD^l0-f3O#9$I{?qxh3{;zJ?{U9dyX432iVJQboa7bHMdW@mmRauFW#{WI>~8B z3$2GXCYP1YoS%?X6|~deQtU(`ej@FW$=`91e1qD@4bxZ7S0})8oj8DEXjd>Z@Uw`W z0CvjT=k4P@|Jgnm%}wSG7V^js1|#j)nswSk+#!8xA2&8upxDB6{SS0__Y2OV)(__m77+{e|c6fy?XD>TA%8pi8J2MIyba5W*jbW z*prF>SaAei`$i^Aa`q@?Z*m^#P+-Nmy)i2C|4Sxh#PYK1FFuQIzL(d>%l`ku?>!tc zJi;D3Fb*}1?ZqK;c6C8~*fRb}{KNcayD{+*Y&Px(2_=tXhi zD11Msn;6%piCrpEE|ek4&wD74nG=$JsoW^!3nV`;F|EkwOV1}q3j1*0-rFOz-G**g zOl+3kA3*Nto)hISieqh5u3Y@zTfYl3Ls{rOXYAd$clH^3BWQ)5`l7#D_sLeuS5w&M zt0|rD`iicTd>PzVBwf?^glR+n57dr%M?0P$NH$RS^CxTObFMMgN43ZGX?Zr(gU@46 z8C^CxvYzs)cZlEakrO*(bEQrL{>OoX=EPpm#%f{!w8vwiH|j32e>{h6KAQ8s+Uu?J zn^+W!^It7K%h*$UK2i%GIb=7!J!*90+k1vzUp0y{ zqf$rhK4<=S!}-3k9YNm>C(7Xyhsb#~(l_#;@>>+uXN)M^kZIZ|tiSXU)$d{N@B`uk zHxvJ-wti~=#}f;z3(xb~%&|8<@xc&l#_~)n^s1dy^{RdLSen?^Z^w2{xp7t4*pW>a zg;KNf!_Az_*8DAaLAo`zBg4AkgoXav+-r+E-(*VyE8~|N&$^W|_v1GdhD(9F}!Ui=?vlnMro%49gClwwQkc@XKM| zIpq1xIbHO65;n|dGOfKAqbmK9_0b-C_qH z-i>TtPma*vlT)yGUDNFKm)YUe3-ZI3{li)NJpTbWa^3cr{Xg()KF_j4HCN$ZrT75z z_#bddHuoInt@pB*$=hx6Pi){kp5E0ej-b{bdZAtZ=`m*CM1JD?`M$<2qqc~}iQGHS zIUjsq@B1*%e|FZ69oQMkN~ zJdVKNBk~wp;9}tZ?}o=%cF0%0q|>uQHCE;4D8(ljb=OyGfGlNwK~EtDWWj$R-;{9@$3_HJ5;ozUJ* zCibmlXAZEDzAxR9{9)wegim501kf$TXM?fwaVuvP`|0{G&WMqZOG~?yF7ia2? z*R(P3(lf?e2>ur~=ASj*P|SEM@fXkI4u+4jO>!8E`YViqkLj=Etp4^CW)Lgg4?cIq z^k?)3a!(D`-^b~&g4>)f;MQ_pAKa$Iz>RTU0BmC6CVeeHEOOv5dFt@>ynrqPo#sNv zXT@Xp>bUUYfpp|1>97OYqlZ47jy!1n_j`5ZJ)hQ|^<-=yqc46BSvY78fCXRubU6TC zZ9AEEbqjRn#qec0IRLzU8tpMielOBK0dlh$UQywmfiBti3-}Q}>74O*pM|d!LOWU7)9KrXx$D`p@7cM{ExVnv(q+!)tfR&) z-*qK@>i=x|R6C`V75{vdU%vI8wO)IrbLO_0_bJr(V4%IKH;@V9_vP>^@wQ{+C#WMo z!D{%PThuI5AiQG+}zttJDHRPpSV27uAw$`ONp{1^!BKRL* zzoXd7f2&q8Rp_M|&@6R~|5V@g?g0L#R{1~nTxk3R`d)0|$7C&BTXAbn#RUWD`S=pY z_3HU&ly4oRd|h98vxmVR`-kjVsV;KlX>`cN3FHb+gdbHgR^fs2Pv?BE@`>EjD__U= zcX(Pw)e}q5*H-`i?$_JXHjmG|@4nZYfluIXcfVc+{zZ{90btNR5`VRyn3-kR4%i1d zY25ih93i;*jC^d0Uv+%^#OoC~K4td3BNHVT@hOkz*Vry2oqRhw)0Pzoa@Nt`(YDA^ z&eO$9EPsa|nWu5CB4>_NXC+$!H zeP)&;_pp=ZieK52LrKu2zMWAPn3%G~pXn>xI@#D%iZSYMSG~zOHE%w?`|NPS5G$-X zXw52tyJ@TOGX|#=^XEU%XQ!lG8w?YttNVpzPaLxFWoggm)ot>_Tia5ubz;c8HoVxG zBWuUEU_V>SrKNO!rj(?P${7=_xc>L?Y~ln zdyNKc`+N2ZTi*uC>AcHck;&blgXMHC;Ou>nxw~t7_MDWznRyS`FKyfUHdw#dI|KF$ zoJ2DN=8~q(68Non)}Uh|Z}gyJV!VTnX&tZ_Y)s_79&}7UaK=>rabw!c`hq8e!3kbF zFr2h@`ZiF`ZSr_$!e<7A6Z5QRJl2rPCkBPnkEuV{+L6z@K(H8S?ZC$ptgNQvHxPdXf9o}1dN-(^G*ofAP{9(h3S}zI7H=sKgSpU%b`SIa(_PQs2 z3NP4j-=(2LSNp>6O-{(M>}tV>v3`{ zG0vQ6oNM9xJYU9)d2!h@60mdfL-t|h>EdjBMA`QRCM4cBY*Fd3^3iiI2uxrPV`I*| z{7`^g_rz@6)$UKsjV|)tRSD0T4iA?9G&&NQ#8{Kq$GUd7HTrY+#VxvKxHa{muiEEq z&QadgKxFxphsG}{uvSbi%Qkts5Bi7auEu8}Tkm7r_^b7aZKTKf4!0p+1MI=%aK>aO zI(OmLb3zwz2MV$*6lYsif=4EBE#mL^MEq$n@XBY5JE6yB=5&zqIYTC1#$5_Cm3t8X z=f;5Mzq0Hu&AXm5?QS`>sXpeA>qBj4@u$2V|I@F1`1IDo;E0gT*yiYb)R}wIU9DAC z_`oB!{2|-W6%LE;C3j073YvT9WP5I5e>IR2sA}PUxmMjXS79|I5UV5mhIylFaBd}L z4>_B$sBD|cl4m_|uRrW7CuZQ@xUkI~RDpZh55HIP|IB*8E0XYFuroP3C;RJYN2p(pZ(HqI*J{BkROBn(3@NlmV@hDes5*`BHUB;_U%--{j|CcbSQI;ip! zvJZL~*|#`h2=R`{TZ=v){-tszr;r14=d6P#i^B4UCfMkDzVg|(Bs%l-_Q`=OXYAQy zWNamrvvocR8K}FD5Bhz(xx3~m$us4c&nYdNnPX49EWh1aft(L12UxD{>u3gVcgP!2t3PoPO>h!b4jZXoguG3M}y zJvp}CYfn)=--O7|d2e7*?7dHjlmiRXM#-6N{GPJ0F(=7yIJV23S;Ucp?{6*TJ{s=R zdXx2N#@A9wF2zRH>ocrN7dm_;|2Ol^v8DQAg3kY?{5*ZnF2C+-Pb&BYXB#@MVV&pV zFV%baV%J#8ix0KO7yRNNWfFjk?)1oh+Bu{B8PPL&LI#R0*M5c0S%hA9H5f-K*J}8OJ&Cn7xwT_j{)H z?!n2v=zTwJTBt3ieEO$2^NxJ|#53=v%qPUFXALV1Ti*+Y-+7VXkYiS2We0B9wqkW5$u2Qrb=vwRQlH4@@2e>!fQ&P zg-zJT-_Htmod+(~@c(1{Um{;Sc=x6+ZFj)7ckkd%mAT_MN9`NaQH*X^ify!GwRJcP z-&{LB^-}8I!aKF2_Bc0FwaP!PqY>Tomb9Sc&*4qux!*k1nt2Ot>;4$=mR4x{a{q*m zTKKK{YxSj8slRl4OvjVdRX=b0(zqu=F;?S&OIp>Pz@?Nnp5T08x;?%_{%_f82YutJ z<|7-p%dBc1cVn3T$x*HTbKL$D2k3t${nx>>E(bp{LN-O|A)GFkB_Q4_y6~v;j$;gJqdvX zn*_9Gg4QZ1L>V&)sJSRsh_z~M0=6|FUYep6L`(u&1HsloDlN1UwAN&hT3cF^+8zS5 z6-aBf^mf|Q<0N{HlLRk-LIw!=y+3>QmVnsf`Cfj%^ZR37d-mGv@~me)xAm-Nt@Rz? z>0>UPhObk!P~dfGA+2`>WhDQ)z}`mUY9N=LKo?c@BZl6deQZFpo@I!ZpYSC zz8?J6x+5rHrgzMM{!3|_Ho3PXt=A7dR8vNJrW#zBz&MjU@^!nh@qOjowRIc&G4IkH z8)o=7&r9xJ3Ey1-|DF0xvNi!{YUD296d#Fa>i=_~EOEc7`Y=9H$+u!;yXIz{jQ==f zy=0;OkCr|L53)yM$o<3Y1C^f8`x09ZjE_7mS^*#aAD^mQl&6o_vr5iK%cZ`%;r~Us zMvG*^-Pk&npDbw6ytEW@nI7&LF~aF)`PHI{7=*zwVvKowG5UA$ zLSjv)a9)gbF?PvpWXr9g%h1({eO_-cCOX$+Z!YJ0*!nszk*Ds|JUjWmSvv8-+=M=V zG~vrwxx%#LCVtNM?*D`5ew<1Fir%#U8C=-DAf5YhCLMfwKH=^|XQ7Pa9DViY-#%%_ zg`9pCij9k}IJS#z+a~Ze_$-v=E>3c$hQA2z9(;F#jn~(2HEf*R^FJ9UimCG^;!9k5 zvin?@h*29%ONy0SNdF4ezbWXyr%uMoz4hrq>u1QwJ^z>D3GHz{)B4THc*2i;Hcl-* zdYv`F{5-FAmT{nx|B|yY?0C(Ab$3;W^CWL2A2y1uqg;Pk)<|=1fzci`*JR(B{on}h zm;CY*Rwr=+=pu{tZj1HqBCDwJI%IS4{`=R~8s>o_!`m1@7v74#PBKm1jn!-Mzj#Dw zZL#6w9!%s7_nt0Ht=*bE@*lIlY_w4 zbs*hL?l{c10ndc$9pKLb*4^x#*|TWz%s*q7d-FQk{+WLyy_0`Sk_Zl>?Mr zm~51Nllw|vAwG7%98+!k-=JmPNhNukMsjm%Dt`ZWsT*L0ip~e~tT@ z+R3kbdH)K|KLx$+#+EjzYcQ;Pxbs!}=H?><)JGpWRsA^Ad7z>j^?ntk8o z(H)0(f}^`U{to3Ao|F~$3PgHNq*>@j_u6GPwO-IhgFGh5Etvw;c!C7ZBw zR@FCb5Wb!SS3d$*J>u@yqv&t2Ut-`z}lDWZ_EXyPa~~-Vw~D zsE0DShR<&QNo@Mnv^SPtxjD9aGks@n0smRO&6Lk1|3dsm@<9kb`H&jGtzcwMULEs} zj)?y^LrdGhaj`i9e;IuQ#{tIwH>Byi^1GDm622U{>~t$Mno!Duiwrcl9E%Cb-yog2p5I?U**Utcr78P*dr_+>h_GV z=lqJD8jQPQ&PI_u{|P!kV<5g3PBoX(IOHH>be^+&7m{f7qwarv>yE_OO}v+}qup-C zPkgB{tn^qNZ|!29!1}6mozjmmhJ#_*%^h~NUZb~aW!;80#xvg;&m3nww>#q*cg9ox z0gdNVtg)Rwp2trc&ww+Yd5j}>eSR>WXEB}=?==Dy=yQ#y;Q9b2>9!p=Om$9rR-(+Z_k$hJ(mbK;xTaLc^LQvOx^bqP7jy@4z6EyX-W0xsmJJN~-cKs2Cn zkR0XC&om3)g!(5K#6z1&(|6_7`}cVNizl^XrP7fVD|qIR?#j&9q$`=1x36f}a5a0i zPRdNlsPU1j+%#KeCS+Nmo94*O%iZ@6Wajut9%&73JIKtz?Of#Mw`Hd493MH~O>4gd z`Iu&>rMPLfd>kJ++kLlXXrf%En})2FoXv3Gqmti=dOW0^$&O+jkhqYc$kHLi@p>35 zZ*Ks-xJmYl&RTbDsrTTcD*OUH)PH7MDg|4LIVQGLh_RPlRLGvRggtflhwLf&TI6TZ z-8eeO_8H;^E70LPJjoqDg8r*$S8d_X>k$3yga%~4JqhhjHIq7O%@q4SIe$|qZ^ZZ6 zQ(#)9oYAt?sOp_%R_&ivO{~tM?7bTdZ0qbbQ|`=~lr`7Dw)A7emYDw4CD^+m=uoi{ zvS&)6Khe-4GpVPE{+D8-R%4&u$+-=Fa};#z@7;why=k0rU_bD_1>Cdg=W}ML?JN9b zdv#)yuNiB+x|R60YJQtWGOwVYiUsy1@-8LsQsu2jCT#VQkKY>Zb9ff~KFge>n%^dP zqMjJw9%NFrBU3)ge$tw!U~=(rKK;2B9IZb5z}jyN3$2admwSc!ucaN~Q?XSg*yZKe zEDfB?UI@NsgRjChS$E#bd|=_E$#V58^yztE9LG<# zV?BL(J}HzphF`vCOtr~-5%UR?{Qu0}b#dR^{a?e@M4e}X<#h*^F*Yn?szcz*g`h~@J-RbKQ0BtfOkORp#F zOa%wqcoRiCc^_$&cFlLzyn*M5v`LX=FnDe3;5Ms`bl)N z580E1>`BO-Zsbl6bLvy&jpo+pQ%4r-Cf)FJv*y0QtGRE0x$o)l;&1%%RQWKuL%e9Y zwXvJ~!>dhe@9oTa8qKMzYj>Cj+o5yepb}XjJVZICvQW4}|H;p;^$Fpw4*6^6J4BKPAF&=jMEl&O1 z5m`Qg`qA}v`W;UF2M5Y71g7(>&{{w1bLDf419zAsI;I*U8)aW?XS^rVry^rS;|TT+ zxc$mHp!sNKWDW9DeJh}EtDwd67}H1ad(@gEdo9N1PBRpL865o{9KCIRYV~X2NO3oJ zvZi)=dOh;28u_QP#f&BPOK%~0*O>kex7~`jKHP3K?FyE`v^B762=kPY+!sEIHGd&8@;9-5aMt8B{|QPno}D`oKj^E90?5PfDSF(je>V*EuB?^&(6 zRw#TN9o)R@tXAvnhvpSLU7go*!K@bFgR&Rabtk?$CDqUH-OO?>Zra9(rrW&BTS+)_B5z41o8;jD+|MLd^;Rc9Z% z{t*3%O(i~t`r15M;ilPV9q+loZ0TY@n&SPMy|=Wsto(f6W_W7*%ClONe4(}MO&b?D zXYYn);BHwtsqYZ>Mb0E+obDkwf-KHlVAM4Kk+}+YH9t$-+?wvR@ZSD`F^$BsX#XyA z{akzkxgj(2&#|eTxu?1ZX0=eiT^BZBeDmR)w#}YETMsyIT6s%rb9z-9=f+lxRs@sw z1?*(pTfCp|%k=tsn|=o`vd$L))z(X>Z%0wdSrjyCoybKkX*qW{(({O7;+U18z&I zDrSxtVvL0*asxhN+_T_Ey0*A#>P*JvtK8OIru_^Bzc$Kr=Wp}uTUvJzPbhqKVQ=0F zFMglC9r6rmto2Ol-3?uq8`%7ff=M>dklsT6Z{loH^a3qzjhJ zes7Hhf2vO7SFEMd&labydfLpP9%2&G4xOvLUK1iuj;m^G9$(d_aj{H~U*ocnv4{Xe zdC;g?2=6yDE|xjIL$NiQKMJQ?yf^pdoD*7Gxiq$<$lo_3)3j=)j6{Af_sy4V+KJ8e zCGfBMcB}vw4-TnW@t^G3UwKoXY}$8Qj;()^c9rh=57L37z%cyy-KwX&L2Sp_!)uCO z#|LT{9o+5EThL{cA-5Zwyp*SG^NGqfmkxxZ<`X$>UmipY(Vw5Bg(&{fiQWV)^kJj+ z5`*Ofw%wl$Em2=eiEB~1g?+gN`XH7fB3_6%eJr7mtBt-HMf9zNOTI=@wg_CF$Gqw- zZ*J}y(-^nL9O>WGZxQnb?yfwqaYW^V+}~o1EveeSWbcWA89B?0=>hUrnpUaexSFS4 z8c-WMm$NU1zApTC#^0g8MT@d#wlKaLAJJZv@$B}X1J1{9z}QsN_U-gJ=FQ1H@0{Om zQ2Py>W0^_&m49WthFOXBX}h6s;1Xo*Sk2KFA|ExDnzuxMVw9=RrP)J%Q$yI_v64vIs7NsZU?qU9N5l3=XV>n0$Z~KTf@Et zY$Ju6s<)O{?+;vpE*Pshrwg0zl{TJZo-r(x_gC(1u(CTgXnZz^&W~2MEr9k#=dr&H zOtTAh`jp>1rNu?FcEhI-Wjf~zF`q%ugz>eGt_|6*V zXHHSXm{eu&*&un?2@hFjV0AY>muAL>wd2NLaBhikCb-(4p)7dnM$Q!gM~-Qe zOqjL?pAd2GV^x>>DmvMM41E^(Bfx3w8z?*PbNG>*IwLlGti?ZxZ3TQKPMySUL~^OK z%Bj=uqfTFNvi+YuS?3nJPJeG!lTqfU&T6Ml=2MYU>dd9iRlqr7 zq%qcp5!kj+XGC>UU+i}S7jtpQbnW?8zg-+QeJ_DS3!De&x1WAjI{gk%pFKv@^Az;% zmNCAYDAV$GW!si9E9NC-`*KUI&0ig9W{hh-nA29ee9Ojad|+3b{?h89SNqQ+elkED zWi?N5Id;v^N#m+h{iVzk{f*|xT>6k(j!ca(W?8Ghrg0ZX83+%B@=%d04}Qv2In8phb5~T)JTgkwZ6$F)3wC_Ol0K5#vJH1C7LTp2yhuu-Qa6 zqC?52f)d%lBXZYhtmubyPB-wB@DoiGqo2_KHLKyP?6IrUi+(vUU3v7a^A`hU_Ya|5 z_5CeL=7bL6v79{|lcy?n6Frs(-Q0)XAcm~#3Sd7sw6^8G?j?Kf?wgU147&Ae*zm|8 z`QdjiVcw2>7Yw5B9Q+*2`A4q;jxE&NvhoxBj8~tZaeqsb_Y=p@TUyy_%N*!3(>u1e zqQT|Gjt%VNwdIjy;rZss$X5ERdl`MmiU_h+^?wRpz&U8|KfeGw=yr2NsqnJZ{8W-~ z(~B;6i!-aYEX`>h2_J6-SF)`IllHD`0iG?uBUtXd@s8F_=BVn04lKrlgZK?t^i6e& z@6?8184WC-zVVJFrRTi7;hpT4ksqT<-&T8kFEKB$VMy{M`S;#%`Unq`{&Jp8=;hVUE8 zZy3Mf{H(1zx1g`E5i*xErsx&(!us^j^$(=|Y~Ou>pTiUIPj41<(9IoKU7qpy4Ab#< z`SATsio6aDC11E|gW@D^;6CAXp5*F#J!y@yfwlohHvPGRx|(+(r=gK&&%M8;`~!T9 z=ndWDj>Fy!=zR32RV~}T%CQZEk2^G$vu|mY9Uy;I6LG@IvuG%`GWd`#EQj}+yid$} z)|=Uvh0K2z-2Y_dEv>cK0IQcS>N7KSjuyVstlFIJ=*Wx8xieUu!K{DOC?S1{(! z+VXuwZ^a#MKjD4)sqd1(gXv9raw{-jO+Tv{cgDH2lfJ2sCFay5(LjrtSMMy`_%S!AVb{t)K>Gkmj?c%wt%bNv3-5mX8Goj8o?3$4)gkZhSX#eYc6?G z$vgJgb#}~a{TQ7Ewstjf?j_G(9uDBQE`pEu(kI#4&F5YgC`etM{!8kYeduTIkmEDw zYaW4bYn)_*<^r}3J(|-d+j9;6gL>#eZCQ_Fn-F(l{D*O^Y*h14SN1n!_iE0vd38#E zHtDRJZ#AHQ1Nt|heS!6lekJBVf+uS&@otWtE4^jDml`!)y!);SwI=3a85e1+FE!I6Kc_CqsJ+n|qe9Mml!mt|jkVs2iHB@m_J>RmzlmMzO#IFC470-se? zWzB?l4_NqOZn1Ug=ZTA-KwP{(_mjXNJwUu=nPi#?JQsmije&3~yE^*NK-m-MMa_+^ zRQx3HP^HZ~IjhS|i#XuqEgocj<~hR;)gbAWfAtU>|)6paK{=n_oULd{m279cxznRyQC4k-44FcXXA7h!qwC>68-hIcWUld z#$&5F%D+nLgHZpRFC3Zc&bNA4+TQVg5Vlo7z{q zYaZZ?Qurx?f1t!18*U^%tNQu;a0z@>311~};)_Ifoz*J4YcI6eJR8_~7BB~XAK21HX(F$5oyJA^rSk&W{#@C(E0zv0 zpOp=t)Z0{?uyvHD1Uu4){i-@;w-zlKxY)HhD~b{}r=NDEH`S)bp>+_9p{tPB*h#Xv zfh{asX%V)P>TAcxb`f|_@`je;C(JFz-nAIF34S9yn1|LQpGR;vhHJ~ac6Y@bS57A8 z2a?Bc(Uxp)`gkD1Ssbh2Z~7dTewNHupI0yk+e0kAYvZ|cK3ZUujR4Lyj@{jeURQm$ zQ=e;hZ>h?iiL47t&T39jIfFZ*=!1*9c65vELd^%%uHa|{4z*i|PI1Ss?(#%F`EXR< zD(Y2z7WK(r)H8#9R|A_^uT99yqP%%aOM?7Nt3)`~{H?Qkpv;x)4b=nFC6{xcmpzPy z{3f4e915KB; zSEHl4k!vHId3~Mf^JgB1Ps_pYFoSrs-lco~K5$71yiiNLoA!XYcyGT*w$Ow~E%SNB zh?gKEicBlAh&jIaRQwwI_kpsvkP{=26VEQ)zhuqiz8Ra4ud~m_XNtTiXD+_;9|L8d zfG&?fw_D+xX4xHi#(^oU`44;z{fNx4&TSL+wxpSQ zGo=SEfY%*8P)wZ(9h37R9h2ke7}lj`XdcDB?6RBCHAg(YQu)Iq|1UxQ?=~Iz&v(gw z(TlAU(S^#FgC1B3Ex9=G;1d}GZWNn+82s#>jPAwe$jU~RV{bGtC)z#Cke%^L06QZI zxtNfLmxptz7R~(H(nU*zLyPg=3|_T%w(7I=$=0z6d`iE@*wd^zhwvcXTkH)a2``tJ zs-)!@0>9O18ZWPQt(QyWD)qN8qPeIPru z_9pTY?_Zjae2*b_uw7oUkmIAF`vzpWg)AS%{=L!Mn=o*nQR5i|d&_4&ObeC`_vlh9 z`}Z4)yg9)A`wgSeH!<(1+=a|jrxdcDJj$qfkGrutkyo|w>29x4R_X9)CI4L>_3&Rj zD*v#{qw-IllbAjZ@8?0}>&0Wmz5MMptYpi?68;ZX@I@Gq9HSh*( zpiIX5$rv&R+)gmg8GBBA4=hvd*+f0re>VbkZ~7;av_7mpVLLdM@)x z@L%EZa6EJhw;2A_xQiCBYscEQ3;dfy8>Ni> zmiu~_^m6xkEj+Q3b)IU*J|DR`h5y78=JpXECK{0qwF=%5Z6N3Id3`i}BP*)L&^np?eXg%+ggGM8Fi2lYrs|C15v&oE+Pk>PdZIw`NCzF27Z=*S>S1KCY>mM;@x~Z!rZl#F?x%&occ`ey(8u-h4kxBOZy}J z{>*7ZK z!Iulqv_WOc_^!5yMLQ*r>Iyjd)GzgEJnwq`4L|PS`c#MZs@)B(d7P(U5`H>?OKVWV zmvE)H4%v5EtY^D$YwoV`s`Of=rOUnZEpvh&o~XX#!iMyckt0h*H+wkaWYs5_8{T5n z1b`TO+Mk2r>Ew{IGdvwpYXGz0&UE< z`dhx567TfRoH2k-shrF>b1qi*i7WRF{p;#^i*A46;MR98ZP{D)mxH+%L=Og*@7>r# z+(w|kVBguxhi+`~RJBc6K4yO7@hge37}8OD$It^)gT}b-VWG7vpk?A!au4tW*SVZ? zm-`OCclmYkdz;@J`u{`v`V7x6FCUsQZPcUleuj)wew9=C!R1s&W#9bE>a~ZAAANQD ziB0q3#04E?{C9iO8*fTB!Wq#2q@kg_Pxv@jcqHr3-l4rOn;HHwo=N_9%uo2&;M3X3 zx)A&F{0Gdj{zvd_$#>GQ{3jc4HHP`~yu%y+#{WNihBi)m;3pfc{=4>_;Qgk7yY?-+ z|0f&2%X7r@DH%ol|9Ae+eK95D(OoGS>AWlNEXw?TdrHQ?IAuJmQZgFI7h0K;@i(4h zf1Q$1$@7{QQZg z@%&FXvtS!%6Fg0P%FE_3`ZJvVB-5Xi5A_GXZ`s-4avJz~13dkD`S&*td*J&U-{kr9 z@w@h|lpI0 zjQ{WOpFMGDf5i4b%u{khX@~evoZq8`QD1lg@^UWw(kAQNmuQffIV)lo)y*p=t%y9< z4vRGH{k9_CV9%YMuR>{@agbLxZ@ycWv=jW#p&rXjlrhiNovT))#7*Bk+^)+_pW~Ko z;#_j-I?sKN4kKSO@o|$P=MGBK`xN)R&PN`__f3jilt_C;@C){IH;-LUB2TKD77`4J zy3al(P5F`|zjM>t{p7RkK7LT2ou;x@WS5)I@P{jqlMDDAXJ4L;pDZ7-h#8SL-1iE< z-M{zT_Ymi)lVAHb$^S}WT`*k7yFs1S@ya&IZDOj+RIlQA24*YP!Ve9MfEGqV6QiJw z(ZpJeY3bkP2`g4Y`{dG$tnhf^EYi2t&ug1)zIuG65kAbG+|JjGmVGzj$6qm|X7>bQ zfbcb^Uib5j^0#=5di0W&yWN{%``j2;&cyU={mYZ=@hErlJX$wzAMee?V042c#pXSR z4NwZN;B!5YGaj4j{Rj4;bPiw-h1XP9x5`Jdrg~~?C-UO;$L0h&8?Oi)TzO^S!1k*G z@4i?R*#BH{;H@nsf$s89+ZcFUI;w}CF zF7%L=nHQL_EOY*a9@BpU{m6Nz{(t8^&GQL=>#|D&NAAm<|7SDJ|1$FD&-~xW97D3@ zg_|!6EF<3<`Gu{7U^{l`O+L(uKkZ6I-q@uB*n6S-Znq)5utOi5q&3v3c7&vUGdEs2O|q%juu4zN>YtXKd1#VaC`` zS6|S2p{M<(Pkr*`^djWlYyG2ZDv5hrbI!=z^Rs@p;o18>wd7@UWaDe*m;>57^agU~ zm2-@7&)xKuCC@SMdKp`JJNCR}Wis$w=QFO0-1O-s?=ZLT@s7=Pzt{8qcSFtjZ+kDm zr-m#>m%qk5t8%DOwlx@9tA3of^!z2e&{guId<9!aHjH3=dAT`%yZPyAAGGu;b-Y6z z7cedds3ZRbHZt>`1JrTB(wZgTJTY+bJYdLOdZ7cuxLn=w+dvG&Zrx=kn~3}tcChT? z2K>=e-W;%b?Y(P117BSWf6ax@u7TgKM&_1su319niXRJr>oE0Y@xNX^75>NAvuwZf zEpx2V_V%DO?~Kh@X8*sCt>J#=9>kNE=r z#BHj}gZxmRW;2gT=ogPIqnn>QwjP(7_ z2>vtWA=cK;qcr=SHHS)c{59kqg-&nAC-(^N`o`QVZzuewIxYF?NZSc4ALK{hH{+Z8 zAU}SsLcf!rbi021+sdyz!iDTZ&Uz11F0X)iD8aaxpWFZQ@r}r?$QJHtZy_;~!og(V z^f9I`+`h_bGgpwtK4JAaI(->MpiKV0J2cZ0i2!SCztdxhSUBComc?RvK&e|O)r5;oLdc-P+W6E~RH3!au#Bh)5; z95yIE<-~dXG5kENx8+VoW@K`wZ#%Y!_5;{^%(*X(^0v+SB;PH{7gKh6y=BXmb9Dxw z=Fb-!HTBSP=M>>SHP^!!>+b3rr%uJBt{qf9i}E^`G;L7%Z1M;Pf8>15PUNLz*Xb~5 zUGVfY^+$O>`=rhpOpZKAJFhS<7V=KAbPfF}A|~7jh4N%ip#u(B$1C=A(jI(vUFLt7 zHPEPh#*YTBpBN5dC$B#3-WAOkRo0m0)Uny9DT3$iGS5$-&zZR;0|Ter)gqmsG8O0v zJ+r`x{Z9RQ);Z4#Y;e7YobT<}slVMR7jn`Kw_Yc`$;sE`yc^Cl z>ZC`Va&=C6yOUn$JS*IM?supDkONnp^E8}#n%w%FXO{cjy${JP?>w{IbSGcbNsl`3 z{mZtu^h2xCl}|C2>^JYNw4a{ddWTl~m+fd44l~bUzX|%nkG`-NU+sat8aws3!;I;& zP36mCFI1WIb}q5g`-wH*Pn`MH=7`4CX71{8;-@PpC%P%c4*H-xd)HK6e4#pSr4H@E z$UU%pZDs*>FY5-gp?~(OzskBmZ;U$LqVBh-Td@uW>`$NkV03Q5qy=*)51GJo^W5`^ zkKayv>O)C^U>ni92feBK7h(tbO<$wht2UE5)Q4xWw^*;WZR~p5*M5%z(?`rFF^Vf! zZE$hWzwBS&b<@V#szs~+0MEu-N+Jh+p^k&yE!_td_pw>D&wc}9b6yGDF$o>!>lObc zzf#z8b<;8Xj1~JHTh3qVUzWI!`U%o&AN8#3U-rwE_nmV(G%h*RqkWbQ$a(Ri!I>U9 z*GKm?KD~+aU33;Ra1ckz`S+KGn}H?sezU~_o*3|0oLSZ^-#KttS9@AgCTRX!NE@Me z|FT`p4{kb^CYm*=w-MgXa_*W<%;QobBbSQrQzKsozCR%ETzb(Q6&rb-ADGwL>8HY- z^2fp!!Q0H4JJ8cM$q@CUnX_};cb|ic!SD=e`tZG)1N2ky^xMzW$gPxf&%jn2Ci^=p zIg3o^-$Iw$DlO-(3&uuxeui=eXXqmb00XWQ(qQmSf~tk;Rkhos2p}}#qoik%HBQGIm1oZ zB0lGwVf9gaLy~Am=M3j(>x|*m8@j#IBia46`ScV5@tv*@s}e55;CloHeXH(xO4Z*2A;hOzo}1ugkh4 zwrEmB>we|mGHS%*+3=IjBhz^aItw5P8}a5H#&xw*6Z?-#%#4dl9x|^h2^bgN%zjgq zsm&)=5E1Z3xetPft z-rd-@H*#)4UUJ_H(87_680Pc-rSzQnyEN9a>Jw4$;a-^AGroZZC#`zIvMD-q7? zRU2Z z6Mhz*{V*|d%@dr>hd&{XUqS8O$C&lOr?~KPU+^RQys5oM_-0k-&CFt6dhC$-<2G!| zW!Hb}p!RuBs-9t=d*$Yf;#-dqi#Ca|*tA|T6S9X>dn=e1mawK#3?B2Dx4w>y+3PMJl6#;t@hiqqeXoXcU3T+HvL(MEXI zSSvRMtq-u?W-=x^C-f+`l$*8y`(0~=zd$byPT!1-R-Y2-sUPI;#J11zrgvD&|BgSf zV4v{BzF)?OI128~5WfBep3?Ju+SOQWr|ow3{3OOw@vCW(Bxf9B$cw0VhdquOGmYi- z2M0)-fGzaVF zWR^*P)Nk>OEdzmZH)Af@_9^7XndE@Mn7ML5F`KR|NSrr*->K(~_bfa0yz%a3|Ma|Z z_7AN4I5NSIoJJ;`5R5war`&|D6KDSjo&`Ds%#pvEC-3I{USu#A)NlJ5GI)C-`!%4s z?Vgn09G;2&xhatX`p()#xQcV^GD*Z?e=6KJeOPdfkX7QU-*^X)M`S?{=iQfEwcVtcqSsQ;X&7`ONQ z(~g@S;#@S%*U@9~>HHSidg#MA8hj>b${&kt9sD>rmOtyG&ICPIat9i&EIg^3Cu?k; zEXb1|rycytw^PS+K`!

r{W3lenv(6WL+kH!$o9#_Z&oZC;P=2{`#K`|-rJ+gq%r zM4e4eofSOIoCHs(-d{NNZXQ(ciEDQ>zhiP<56_QVPvj%&`NyDoEND~bmdZY342Z3M z_YeASBI~R*p+2n@GJlIC8Sk#uS-QDqQsY#!;1A{4!HX{3w4oe((E$D)bSioN;14Cv zL#p7cY1J+HWsNB4TV>Q?pS^3_hK;l%-Z$WvJ>NT)rv5nhfpbo*8Gh217gl7-NbCd7 zARRoOsqmEQm7OELv&_^E?P*;J43+5rM9f}l{m2&GS=eD6Tz4=C-`mTN@@R`#4l!MRCX*#1%c579+_v|sg0FkPDg3idJSO@4ttS(AE$Dt2)#KKwZ)&IE<&)o;@7Uk}`#N*ksXFuR z`%l%GZ{7b-b!LcjFh7pYoF*NB&b*N4nP9B@2)*8eO}7YpPWrv%`shK~{XOSyO3!!h z6)E5@kyXP|8Ycs1jB&8I6Iiyt#k=f&%>iuPO!iGvPHf2(PZKw3_zpd6SL9 z)f;kO3jblzq-PGU7?skvx8~mtCcV^YfOZ$wHAzBeye0?a^!Jry!W8bU7U0JQ|vcl z?jk1h!swJxUKIN$i#lcVoxmp69doYDCz`O^j*SVcU7gwKwtc4jAEytguYPnNWJB&7 z7~Gl}mv6)l#*V6EjP?FHx*-c+R2_M> zHgLLrQn{s+QGV9TIScW_dBp$9cNh7jpZ~=3boy}5E=}S5eCW)^ujniQeapVjI*rEP zhd!Ezr8eT@e0OnSFr1298%!sUFHF$6PdHxq-=_1AjpP5_e%QQan?!IhiB9W&N2EQ-3P|uF%y}&aO$aj zaK_`d@RG@bF-`G1c$PQSm__w7(y5wcafAW$&pI{er*ImE}x$1noDkjb6tUD$7~?`QCR z!up1vzAQ7+Sx|v9v?XEsBAu@*4$x7IS-h{gVBI2P31{pZu!`gp%$G7sk(HZZ4-0g z@pYc?Z}8K~?{kd#UIXwn6O^Q(q|ptVZO%uZq86#%=?*O+X-x1 z!<7$0{n3B*sh&1fFL6BUbXS7@|A02+LtVsveB~2t@@EL9zpn6vpWwUB@HjdM4z<|= z9MX@YHym4kGiBZRS_(Qlp*vF|6Kve2M4lk;-8QT#5%?T@YW+BIf5>_pkBK?lI=jx~ z$Wfl}(}r8mH+XNF%w88~EDrL1x!QE@FV`3p}6~G2Q*J)qE1mJSp zS03S9el-0rc3^3z?1(}ANCtQMzV|e^<^q=sN2vqH^E^+K{}NwnB7Q*qFaHI7 zr@zqqf!~QI@HOdv0qEYo+Yh=wVBkYldOd686^zLTwo&=6=6?e|(d}C*!&-b3Jfirc z3O%Vai|3Wf!y1y-2Qtq|q-6$-1Ke9!rZKLA&c{RNoK<~*xZko={91pu`;%(ZxaR$8 zqn`C1jf3Egv8Ezev~GJkOrz<$>TMvO4<5@0p1{SMHtgX{*nH~gq(7{cZPUE<0?MmS z@#K5pvEeknYs`_`9)oez`|Sig-{MXg z(f=m;CO$j8@8WOuef^-ms}F*qj`or$)1ZE7e#_cn-J;6AKhoZ}K9#6$=uN=PcVV|p>jSfytn~tqW3*QrbVMXd3SdNnCO7;$`FQTKUT~})4g+kWy!OQ#j z%q5S4gYqO~RwB=(gYpRH8e`%7eg~KLIWRV;~yZqwmmAVvO+bJ8ima!#6U9Zo7l!m(gy7KiPUx z54kd%v%GEjA(@@W{{&qoz9>-Xt@Gf&Ze%#HZ3Pd{(Ks|>4V@+bJ||cbFe&e8X~y!g5d{3%Ukze`z*`yt!EU~S|)^p0fo1o4x$EtCq~6HtwO zN{p@W*GK+2gXqx*{>7iUoE=+^tSN#wrKj$IC#9bx>!h!mv`370t;HC~V3+5v1D@UN zw-GP5BNJ7&Q~XT7Ez%A78l2dT8t^B*X{b)*;b!Pv{V=kO@bkzQ(Y*Vrt?{_&bE(JuFC3fXQ+ukb zlDum33a37ek1JR7{fRFp#_u^`)EKz+;XIF)>N>uM4oAOq}mR%p+q)90LewSLMyxi(%6 z#is$UXi;?tAM~+I?<%jd@Q2-Zl{2B&GoJHJeJ%}Ga4*<8+Nwmp+WqG~uSa>8oO=(r z?#T_s#dGqX;sXwcfOj)vAv(C+p##MVi4K~Eg<5LHd)Hy}r&WH^sgLsatG>0g1Fzq+ zAr!wDyYp+`;2uiiA&)TMiGDqF+-S)9lBA+QouT*3o%g~}{3^ZAb>8QN;4d1WvnWC3q{FG@G}+{u$Qj z=P=)xO-xcDF-fvLuINh}?@c*Vx@bZ7LiR5+iCyxL|J1u7wJso9e;<951`fc(A7aEw zZ1-^20`gmWqHUhF5!{C_C6?hP@Ov3&=Vvfxv+(Qpv%jqA;gjPv-WjjmjMXy6Y`i&s z^^1(xVa7}OzUw_XUdsD5>f6nk;e*F(Ld}egCgT-x`tFXG!Fc^6H8EZ>U@4lCwy~J= z>g=&11}OkM8ml+HMSQd7jHlhjcl@qGVz(5pZQ8LYCvN)%I6N5#lLikd)=0ddSf>JT ze$V6r$6t_|n3Iz>9$mKb_(^}kJ=jMRY@b4EWWw--J+3_W4ay_Cj94u0%S*(2*nW}Q zer3l(+>88^zWo_+i%+%|N!P*Xu%g6Aq@bX;B9VX66HoXf|n0hNFo8enni;}OR@cYNs7w}X0Q+yPZzuYdL z@KMJ0aE9DD#P(rJaOcPd*#)Rq$Uvs2!9&y^R{$I6ciEP32TZeXAFI)bVB7 zR7{lqA32(!jTh;k@|;3f_^#gJ`{{IbY+Zt`knPx-DUovE-9q_@aC8QLlICMO)d&1& znm@UIGv(KX9TxjMq`yBypJS3q_yYus?2h#gEPY=tXvw2*1~B9S!%C<8kwWGo zw7-V-@vp;6sgVQxZv$R8?-D1kT{r2`Bz#finNEAtglA{o6$8)3hS_0aXD1;C0^Ai* z!rAwVl>kQ0Y2mJ7VDe!D1;(0<0rrZO{IG)B?`7QZ@0DA%!U~35P_`TwaIZ5HWtNu~CmBzu#m2t9!6(!HXe$18X<1F2F`>;w zfltw6K6^HI0*_+m<%?4cy<)3GZ;CaWyA?eSo)vShx~qVB6YG~N!ISoupGR!URQ9WK zmSAHpd$8VOU-BAgxvoBcEBC|LcQtQ@W@>3uGM;@k2lAKZ^f5OMD_!(%SxbA}g&^3dZon#1LcDa;ct_1?~Y{N@S9 zj3WFEvDdwMSv)6P>RlJ|^!@Doah%KKX%8yRWUdgMRu>%0x9FUsFEoSy7V3;nYY#>* z$OPx-c2KH5d79U*B$iloCWAS6}GSHbuO`Ll(2e^Yq zdNVbpi8F8#XVYAq8j8;h6y`-&=7$^WjCGl#Sx4jB;g|CBy1m~{AMoJk+?Ahqg!1nn z86H1!Xm~vSn9&yR$j=+tN1ngr=S9JL*Uiuwbr|ha!>?nDZ&`1w+ilkU;k{+o#}CzB zFMIZ2H~FlI#;buHQ^Sh;G}(6`zkF=A5kGX>sJLKwB9%DuUF>}<55+$R9KyYD-VWUA zzhX0fPT!R$ns@Yto@a_%j?cb49D6-KFQ)nnriBjyV>hr0C)S0b)}CX-<30OsZ;Kw= z6%6V}KtX1dl#Rf*VG0zBh)4$GvUBT%5hl9R;>hc!FJ8yV682ia6=AW$T zy*}RVr}|d_o}%S@gPphXqs>@HnGJh3-#jyk^{##}*m>83!Px6oyf=(~gC@Vdt0+&f zWn>rTr56|hR|Gqca*LZ#W_+!_{8BDZizy`%rG1#!LL6 z@e)kA7aFZ~?7!5QbTW1~Qb!TA)(!qHwhHqM_Rm#v2XsF8GauOz)IO(y*+b*qR}GCv zkF5-L4y+6gln#w^U*NVr=p_vqKYsM2M%hA{?5Al*4|ve^QSfEcl5tu1*Y}$1I(d(J zbMaeT7T)(&=;PLF@x`R|Rv^b>w_O{LS6>@XM^~txn^xiv$5!}PrQH3bb&-~uV@yxfUpH@Bow=@w^JZ(oiHQslZn$GU*Buw7R{*ExAkpey zo#gqL}kj|56mc z^6-iEsw2j@bst*P*2`EVeQ9{Onz67R8Xhj@occzOBs@{GTcH7)!@+7;h_&>k{Euhu`?K|e`r=Tb0_a#pEds$v*nfro|c<-7^|KV*3)jvGzv)6GCBeGt7$P&&LC*TX84%_g#Ex!i-0dPLB@^a>3i9P;(<+IU; zh3G}?_xz1*XU5>o37Z)YWJ;92WkRC`oDU$m`Cjk%ccETy!ORD=C-}uI3lLw<8!^JSxsv-r)uHJ7!gFX73hqNBY)(O=!t} z#>e99g=Mp6gx4VB)P8iv!@>Ic`dO=JV|Ccm+W4wxNy9IVJmFq&NuFq5ifFczePvhB z|Co0|uF|voM_-WajzbRtH4Zf z3pz*rJ$_#Sr)vKw^sO_i^#3j3znZ%i)ZSL$k3BppzNOyGEA9WvzR1{Ntv$54nKP|R z&MM5?@;x)}+3SWaDW}cuO{3z{OA*7EaSVI@{l`LWOQ=tG0H{pS_1J9_*~fs-$;wj< zLh>T{dyCE~%)5#7&(RNfa-84~rfy0{UL5G8PnM@?-lf!Y%Nbi%a&|E6du(`X_m<+8=4o?U z2hhJq(YeyMJp<@ruN9YW70j{GW7;a|TL3(Fd4Cm*{-rV4`S-?P*K3Wz9AF)&9v_!I zAvtr~1L)Zq9l_4aI)d*ZH@foq&$l|}!yo8cN3V2w9}JFp^w|1kPhFXJbjuC#7z-% zCGl=9aPlXUo<{nYocvWz{tVJHNx#F%U*qJTLi)L+-{a(8>g1nF`URvfZx413|5dPS z+JiySi}Yc12H&8kPWsmgjivO@&QpK8(td@FO}~?W73>5TouerSZo2%W3s2{g4$eBK zkPZ&JGD!!g(G1eTuX*6*SzW^Q1*C)f=(Jx2vl)xdsk}2TU5rns#)`4mm``AA+y5i} zLe2}wDrmlPNBjlZJd&Tj-91f3&(IsQVrQ zLy2#{t0UO?B5iNycSA=om$idM+-26ai?(m>2u8P%erpHx&=F)l7Pi>e-3xt2Um(4d zH16)}e2%9a3r>)c3v@L|_el!phS-=ys9j^NP?jQCM>%B5RE@kVHVDt#V6 z?hJU-FtvF4)8d_tlzEK&>l=fO@Wl7viTLQW_`2ZGyi1u|7Y!`mck_`4_QhT_e_F}D zrl^;@csmR8>c2@m_KW5=$wb|0T7Ir^UR%_l`Ynb&3iRAZg!zj zb{29@d~UZz-D;2cHQO#M$Vb=ky#zZ`^JwKM<$Q?|_}VSY-&kdaeyq8)J&(qhyrw=e zU)FgMN2yCXLt~wJh0$8h-Ef*qE1h{-TOPO!43zI{5H7cX|L4Hv3;ce;G2fpUF+#!coyfr0Pi}~JBmZ*otDonyIGchP9Pn3&j?@_G-gwsI zQ)GX|D0i7Rvo}uttP7M~MY{TQ4gFc=8`-#pzQ`xQxny>KUOuHiBW=GxuGimT`v&OG z4*HVATF8F(-Qy>CbrXH!89u)KhWKUPNxd=J*+Yz0?1dZHTQrG1hZ)=>J}Ke>HpxYu z6W9d}SOq~_{$8s7P_~;ftA!SF>CZ~w?Do!zO!fL2Yk`NkQrUTSzmg)FD+~TRfWH{{ zp9TIB2mTO#4Z&aHjEC-5)L5)GCpDIs6V-?3^XbDb`oLL_-0hp_!$jaOrysWL`3w9B zJ$3K8As%NOCN3Br?s^SA9&T*47I2;-Jl%c7O6UdnTC#SszYe)hIq@U%%NWXiFvx;V z_}i1mH+VTag#MN+fX6)-;78!@81cFI*uxz%;%)J+i5((-7C(BpV?#VFo@B1FRXpk8 z{*Afcz%L9wdT7hmx!bL{&U_7IPYVyc$p7D4_P(yzU-*9k`{{S_e2yP-knKm|t`sv*Km9jL7pXEojTfzKMcQ zbj&NVhm7!!V6=R7Q1;~!&KKvt%^&N(_9a)3ee|GW-gM6K_I}-A$Qhp5zuU0g^!J4L zzlk%TSDC(&-O$P^&UAsEO3yP#ByH*+UULUF)Fxl3W-2tZDLYi-Cx4yNIF~P^XML!~ z;HfygP5qfQTEkI&75FqanPY0QcxwK($@J9dPQ^{;keWK4f@hPNRgNkU8O@< z3$=Qi@cYKFEjzE86EBV}+h<`z%KwLLysdNrXPH6UfqLWB#({y0)gRklz7Ag@zB|{q z6u5@A@ek)>gZ88t+hnV5LRQFLE+TKyH_UBCmG+o=fvL!u7pg|o!R3fM%`KAf4hTu#ZTtPyGJMXM-MJnM&G{%9-qWd_8M#X zbph;OV_@wb*1mJPITwmGwXSo-@0pPxd383*Y@SwLL0b$9qvN43in;t<1 z;^R1i-8b_8p_at{^Az0zca0 zfe+;XF^=z3-*J2(|B3xSk$rd@mN1)5&-m@aEuhsRj zj^g_<;J*a;+dUZ$?5UBdzm2tJ9HH4ar(wLPa*sH+H=FBg{zydVa~-ED+ZsKRf`yW(a|GY zm>c8Q9^ooXM=rK8=ZlQSuYnC>ZT@t4s1N@RHl}Pn+oy|t@ZIV7cOH+w z(2sA>okPghlbs00sRkr`(JCr@emqL2yz*X_z9yqaHb*Owdc8fiy z!{2im^QvNeIj*gF6#McxKFuh$c|Y?hOY<$}Quk7CQy3d`SwUNz`G@A1ikC2KAI`+c zveVn8EzPZN{sHplUgq_**}1GEC_AaE7TXSa9bMTGlwH($>*`?FZM;{n4xZxYar*Sd z)9ZHnw4Od`jy7x$ZQv)}jUQOP(yrU~2IcFK-C_GHtM>+Nzt12)Wd^*Bp0BAu7HR$_ zT*^-(ytrd=DeWq~!sz?i+!2X6yuNocmMSBid-SPM@#D|nQ^tpzv%r(rj~_Sw;;6X# zq54BS-LbjoBl__rrytT;Y?NKsL;bSli%X~S4K$jK?NM%wB>j;MxyZ%HcpvAZ`8tYs7~$NZg_KF++v*M2R0rzGo3JUo;cVn= zezmc#b#lTFIsrc@>$$J~8NFaReozBHXg>TQKWN%4e4xmL%Xt4sJaJxsH+L-L47GY= z+)ADztuIHtcxadWG5Ao+qpTJj(jUd|l z$F$SvU37;J@0U-*!~A#W*UQ0c--~5&d{+ldbiM4A0RGG@*7>sQe>H1z{jX}%m(k`zbJFftoog^I+<@~*YBFuJ)83pn3L+#oCh z*Crtke4N#$IQC-VJAC&iVwV?ub)akyG#X>>K)!aIyBFKHKXz$S18sXbnPZ4C(j) z$N!QwHP#?9Sd(zqAX4!QY8~RE)*wDf`_eO*6!?OOUz|NYxBKC_@t>}+BKeA+L8sX= z89uY>6X&~#XC+TO`K&P9C$w@vo_Wp=n_cZIluNqIJCm zz@RadO_q@9$q|ck?YG8X=zglW(u!MPpunj zEDMq0x57^kGH+=7S7Y5#X!j62p)rgNFN(|d@AVhOi?5rrBm@r$=dr2SFHdpiFMK3< z-;1xS_hBPk&HqApN;=<`V`JyEMvpY$*WNwrFf!eZC1mfhXL1tI^hZtRdJn&;akP3Z5tW|NFIV(HSqJ!Yz2J0YnJu=oYv0uE8yi{&9c{gRw^CXy_3VSi;UJ7N0C8CDc_B3YGJJ;bgL&EONIvK4OyalN1`hphGvFC zC#(}=r}T~Hht4aej`zn6X+554KsVH%flqiv!>p&&ALLPV_-D6vJ=GozJvAZR39e$h zlH%fvX!S$(d^q|de!#mP3dUYa!uBd`>+VR37r!|^oWs1Fc-Yo%WLtFcL*T7!Yiv_$ zTkPh7cz4(MyqMP?kJggD?4e-Sy$=N+cJLQJ;%Vvc@W+$J7Usov`Qx!t=D}T`$SX(A z#9s2p4bJxK8EedNaVGxh0vF;D;Vrryy9itffBl@H-nonSm#~*Q{vYbjJwB@P+WUKE z0!#>369^YE2~kNvr4}egK_&@ezzY?rSZPaQtR&FZ<58>BS`y+V5Zkhq)>co;C8w1c zn1AYNUgE96{Saecams3L$uWrAj2i|et*y2JDG%_Z9nIIKX3oYC$n$QWj*V@ z*0Y`sb3a2LnvZazjd5$d$H4XK8KK?6Ma@rg)8Mf5s|LpWC~;`UES;+rIK+kT_|e+d zHq33k8~@q84Rdd#-NVE(j^``CAu9r3%c?re87J=!nJqg$=v!-Wxc;5w&KS5Ge?Dc+ ziG66@VyuVO`cS)Nhw2_Q>#h03GMzQoe2VKHGV5Mo*8N`&Dh~FM%t5=4@V#(B>%3)~ zpYQAEB*2v})^p+YgYG$*LmTqo4c;8TZ}kCl(jUt4}2EpXBUOf z&$hMxv4hU~wz8H{)=TSo=%t~FRjjerS};2FH0ztey4LZWwQXZewa%U3yYz|JOBo4#jvG%M%t)-r&nc4Mv66Oba(z3EJm(wbrW{{S zZag)Ig1)hKoVei3tyZ`NeL=cxkhmq|N_a87+Pvh_O!$S?MQf#X(t4GpS!RvmQ$h*h zg|k-ak?rK3E2ddBi06z~_B?*T+gr&;Xv3zJJ|Oji&C^8AV#PDR-E)hRJjVA||C0enO3{RGAgq_r%AK#(&UY{S1!(UH8A0BLuLuaBl zLtF4n(WiK2d7Z;!MQ1VTchF)daIJtA#cMs@TMiA1{v@x*>3=4;3?5fq51-8eufXw` z_$ag}K6?zDzAH0rxA7pp(;cMrDJ+V*pLc&d1*&Jz>u?L{B`k^en-s`#ACQxoL*9L6uw3g3&u z1Ka8v=8jVzE*>5a-#et-;Djv6#NTRfuPFJ7J=DZ>U7e+Y8F6@JiW_`y`W{4^I&MrjV3tL9;NGjrA4jC^ALX1>f@a~^1ZJ7^QzeyaQm@+laa#Fx;A zCZQwYzVsB2Cb#ijthB5-nvZ@W9d` zravPG!J$scy;L~}&j_ENW2ef(!_xhbgQ8I*6Oo0%Wck65ArA}Etu?{qzZ|@TKC6+F zW%F{1<{={=r;q6Gtv)jHV(uwtCLQ@x*gA=Pywakj-?GB8t7TKmek(*)E<{#V#JZO* zI)={y{-}5zM@+nO0k(7w@v$=MU9Kk&v*k$l&Rq6OXF~H&@vdx|_~x?2g!5i_T(Qa( zfnZ0ACxgdWFIQn-tq7Fez8>F~{1ZB(C_QZpc64F$p@$0bVZ(3tWZ{>|O8gG_{O7=^ z2xk@%LnQwrFd{Od+S>VL@=G?8_bq#I6!!kLzF{xsjJ>vFTLtIHjv3XEi(jVwuh!Bp z28}Z^_iThoQ-(`<)RELG{HFwo*mz4UkFRj4p3gQZ! zlVdO8x!y_g&OYK4e-4a{{2rf7vhAXG*G&~IPqlxYcJi_FupJ9HXS@4LZ z9PgyQ9k7TulKTN%%JN$t_v6=CLB0KF55f1a&*IB&_+I*&$z8Fh%Mv;GidykM$1<@C z1;=N~5<$)y3J%w~D(M~RJQFOZk^>{y8NCKSHv3w$6^nQa{@VH^H2KuCbGw#bk?34; zMM8O!(Py5WTkk6=Ql4bna;~u%gST2U>&aQ2u6&9+oV~UC?x1hR?)&8GBCBF`(M{>b z&$=U+cfS1;?;SsQLG$BpQVW;y75vfK6+1!xocMs|i+wA{XsP!vb! z-EO0I?FSwct(`N#@jE6@x4&_G?ZKJ+-n4GI9Yk-6?*Yy)(f0meV)B}*-PAGdh_^AP z7x`|@&AXGwpdsar&~6T~F>magc|}Ziw%s|gcg)^+_k9r8r!$n_gRtf7NBmyJ$u z7{<8-)nkbdso&oQ*%uK?tn-DMePMieI(O&*@sV$__ks7ya{uFr;XK7t;0w@bw<@)aUTu8)F-MP-ASzK6nFJH2dt+$68@q zOULC~@7|Q}oEP*8c(I4tId9R&9%||2k-MsX8WK)FLG=TEsht(Qwy-?Q86Pr1SB z@965fO!lAI@3u^Nw+BUhKnPzXF{hK4noxywW-A(TP z%<3HLtU}H}57wqfVs0)`dkQX9;+N5!HP@2^j6pHN#pG}8p(c=On!L@LiYA__xVk9g zX=_#oboUnDYiy!D=Gv?{PXp&tzXd%OGQJ2nP|i6OInd+HuP8siERp_^8=g55m>5~O zCbw%HbMuEog?hKlmp--dzRx}q~<+5!`%Iyi84WFhZ$D54zXT%a^!TZS=uA@p~a#<$w14&hsvE z{LbZ9Czsv||CEjtho8!y4DG!leiude+dH1vk>VftYKhfuR1BsI8$xno3%a-U0JbRi zj*t^AAE9y~a|+W;Ed1z`*CzJ7I^^AP>@6ts`HJHBSL27rCeqKVpHMd1T2ppAe-|S= zbI~Je*UecGw~AI&lM8yDuc)lpTC*b0S0p`6x{mw_iv3^r#)-#{&HivtY_n9iQ{>Fk((YU~6wsPSVGvmC;M9s~d8Bs~y`VZDDnS+mRF|e$8cChW+ zKiI^?lux;cd&*Br3|W|nC(9D`$and1=CQ6P@GqajryToB&YH9H2k$=iJoW>8v*zZY z{ewfQqq;CrIC8vV5DkU!&zw9<_G#i+&O+=D+8dH?Vt3}7$?5h3`eq{ck#o|ug2S_s zF;*gx$@>}H&q=3Whc}1z2kocdW^G5(huU6Kv|F9iaC7x?VqvP7cc`ewxl zO+WsieJ9`5voA7!4E$mbPMq(O{`8KVPx=Zemd(CAOLdQ$6DP3sKkc+}f;POqYiOe~ zrHz6qv~kBdP8*;06`tTM1h0(~w9&G_-a{$x)P6GcogDLy&Sv~V$~zUeIPXaQdNJd6c;NFZu{qqniYuLYw6az@pNt%V zrGiIQHSh49#^I|SV(|N;^G-e%ZGV1l>z|%yKLY;Vm+qe%?cn+#@tK2MzsB`zJo_y< ze!t~V0QRtQW4W%X{G=n4SZzdT{XR8Q))|@A?1I zAA8%8zfAA1VSQVtFHG!eOSj3f*s1u~m<#*G$9Ud4V_~A~5IOS9N%4N^$5ZVQcHwtN z*saj+7JtoL(erlpu*G;EJbAYaU0F1Zjzs&9Iu>O6q`3@jd*bo9(-cu)S@xx6&J;bA!uL8xIF*vJ%g>=kFw9? zXZKo5XVqD=1b5?~pA9cBvFxF=DVxaR>{{7FWf&Z?b>#0`$+OT`U0a6d^7nP$&-&6I zISNz9^6snKhMT^#^NNdZL^sHx4ovGg%mI8cxdYfP2Zk7(c4N?Ykxh*OVm!k;O3|CH zF}297hPQ7cPeb~MaE!JU|H?xbSzZau)ebTyBaeMS(s#(UKBGOK;&)ECml$82Ob_1N_4QM+AFb|^?Qpot|G^^ zjOVM!hpi^pbrrGOs*kYGf^~U@y-Qkq6OUr;fBzMC?TH!3UL?1JXTsYy#$$y>8Q%Tt z^~6iL_bc!#ma!zE7`JqoR`fBA{p83ciLQg3(M62;ByGsfjmg+0I)LTo&_rK*UI!|rVp60nc-P$Cc*h+5IOVj%CMeb=Yl0Ob# zgib^^D|uhOGp*$<CIai>?@o5#Q@lko!D}7_tL}Q zWG6WJSr;c?U1!B@v^Qju;}& z+ks82dB&FW4BJ@pNO>zI#CB_m;ixWsj5w}*Ueb$0wJ*#uKC&rk;TV3iQ}|~TEAAo= zd=xw8FgDLIZ0V0&cf~!iO8UfiwtVyzyY-H6M)9gx9rttS7oTm6cwa0Z9qsAC;q7(k zY{YruPk*F2dfRhzC9_)Zc+U7!+wSH+{zl0V`C4Q0@76sx*YK!}s}i+}AK`n9zqrWw z%;Z~*9bA-XUHhEzQMTRt+}y-Vi_BiwvixO5@&(7qsfgl#jqN8ctz0H}-$RTc_98GQ zMr`n}<}BNPBmD6;#`zNWr>vhFyNchefv*^T!uuZHy%2;3>&TB^P7Y^DkbM2nE80t0 z;G1OP#+~45*Y(h3L&(HR{#*8ke2_zY_Mv>vMs@w72EK~7VZX^o8p7U);ulriLjL<0 zd`jz4j32)h|7j<4F@DC%Q1eGJ2k%ae%SqOSh_`uu$t`Vu`u}A?UdqnH`OkQKKbBW$?14wahROU#8LdU#y5H8@PzU__uu^Zjo#5@q?J>c$KZqDUwcL z;(v@OwA9rH7>kMjtuyhzjltrHHoMNVW9U2Sp z>kxEH%#OVCjE)NQf#7$0?SI+V{x#LRw~p!c)uj5ue8`5Ad@p+6jIH9s?xa1B$8{~&&vLzv zYx1oYf2O&(xQ^@l=fsZ{Ha`iztKImNWeK${n>j=-M=?1ZCGev73G&76*Z_~&JE!&T z4eXcPH>d614RcG#;Zl4gL=H$R^x8(gVf3~Qa~~D`r1$|g3V+FQ8Ds2tYG0t|;`iMd zg-5N|vnOPWjOhrCx0W8+T$VW6SeE#{%ZHEM?Bv6JHrv`6bNO%-J}mkcA3j9RUXcCJ z$25NSKcB+JKUOl*J~R^fi4P!lFu(cG5G$d$d`Gs`+%e9YnSj1x@WqqRU`^dm=G4|b zKj$dF3zKCB4L^Youd8dBV{!$c^LS%MxTfv}lV>BI*vT60g9mrPD@E_ppTwuzo@f5# z5qu21YZ-`NN7khNO6n-h%HL+9p<8k<+bUyLO6Y$Khz#paSDXwOCHhjOB zzG4R}n-v2+48J)hUP#j2ES6gRlLlLx$cGEn7GN4rOXXJM$A=wtX8~> zc&z3n-c^vihcjG)h8G%MHSMZ!5wVxTWYxhM_*W-d*NY3Nb z+r9!%8;D<>s-@2%VQY3DCH)NFOvEcph!r@k?#$i%O(DGXnP zC%phaI`mR@b4+nsbd{OnL*iGJ;EZA}@TnNQP4dCSe96}^xfv7rFWxnh|M05qz^8yX z%y!_nklf^Yc$H!>MZm=RfXk;ChxpV1jhVy4f?LPguPSB&JsA3c7WWB;PrBDnl_h?} zwe0nqK51<_0>^`zL_4a$`)qm`M>?bGjH?ubqe!ekS zJKp5Ft|Hgf%X7V!dC4YRPaXWi>&`Lu+E8@KMf>L1KK|!fbIEBVZ%;XVyeD6Pa7THr zhw#0nZ?VGZCw<``v9ApuKo&Wd2dupp*-x{-X%g3E^c^goY2)|bSXlc3?1AhAy6QW@ zTAv+%i9Lg~W%31RJ6L?Vt@;*8;SV?!2gex0J9&H2G3fW-=_5#+e#TW&J_mav2OT;m z^55KNpH-HH-^@pD%Qkplx3LFuBC=;{=%W=M^<&)clHBSu-;uVNZ-p~YGv_UH?H_{& z%5N;D9)#YPjqW3#(*HoHNP1H{v?!gkybJ#(K1K=Y#p*28Gk@}gmTl40XJj+)6QPvEhgWGZ;bt4bK)`V{sXVJ zjj@*j2M=C10GIE%aA{56fL|Cn>?`gw&#nHGedf83c#QP}Wf6K7!Fzz)1HxiO~j&N7_e; z*N)jYwkZ2KulCA$c1xg_U#Y$K<5hKx!Q)jPFZ=@cw5RIuGI*@`CAOVv4y}g=2&UOu zbJ1sXy8S%xoaMqglY4h;`;h(btYZ?NzqfYE_0_t4VEc*3aHyJfsfLeCopg?kK6v0q zl^5IV;U)2>28Ubg7KGd2Ia(_}ZJ)#Y(CIrR*rCs|Z*PM8J^Qz^4c?)H?uM^sIqw}P z+43R#XS}C8Eb|=Rzk}z)bnSz#@nL<3>!5cHPKz(A)|z?FI{Z7=xtxcj+D3azII94- z%N~B4@p$((frDxz=H8PZt^Js_X(spD-FsTIKX7k4_x`{=&u^(Vw&1IjpK>zKbS+)t z-&gxK)xv+wHTXUkd;LDHU*cPsgt@PN9_0Sr+<(FC$MFrE9ch{3_y%gx`}U|-3bY;m zdOyDiej%-a`sl=ecd^$${Vlo0+9WtUL%Vl*_u(n>DImAA{>8m_BfmXgi`tRDWea_J z{)*|0Z#3_=;(O89wt3@{PX_$e*n-8QY%9;QYZ;$x00#zB?OVZL@mgIw^BNa<#QlD& zH!s)c@!T8TkIjU?dG;r=VH19Y*&kqhSJ1|M{z|>JncuuLYf~Z5)VB8Doc}{>(=|N5 zoB1jy-s|(TZh!mGlf_fbc-_4Ck1*aAzFEaL)h_(cCi=bh!-^bprY-Z$Kf|IFI-i2IIk4BoNn4_tr1eWy9g+VyR(4HqYl z^34O@J=%EX2i7K#B`e?kh8mYWeZI)EC%Hb`eWpHsOCQg1FWVaju+g02m*UeizvtS6 zsk!ng-WkC=!`=5Bycio9=D~z>GYr0)Z)V$Xea+fb%s0lr)vq>?)?y*LrtGlQz}~A3 zq?$p}i4BZapSd>Bb+oH@OpY4+a`c|Vj zZX2+h;kM<>XME&W=R5SPx>sgCz_gjUobA5n(XH0--~5UfIAf`I|BrP4Pjdfzba4Z4 z*4}(GHy5sJzhiCsobmIHi}+nRE4%rJjLVA^?{vr0LwEW%cZR)*F*$Q{YJe zw$k11oGVyQvj)O-=DdtK_wXskKZm(_d`kI;@++JDH~5dVo}cUwJMOn4JHOV>z8Gv9 zz4I~mogRM8eVe*)UaoWvyxOaObe;QdYtOi@4L?9z+IM;-b6DWcV~{s*L!+13BUix- zfX{IAKQrk4}CF39@F1m@Kf?w`iw&>nUUchd_8!e z-`xxB(wTn%Si~~P?-Ok@{szwvf_-zP!I!K^lLrU4W+JsAr&5n~Kv;Yu1r`+pz~Y<0 zA~yvVX8yV7+k(d!;E{EURiye<-OJ{O{}FhU_Jhag2Y|;5=eco#6nM;b;jxGB&jgQv z3y*3K9`Az}H>JR$b^ur`2Nt0eSoGk<2dp*qUl?`0;9%er&9#G7R?$BKkL1IB@#B&K z;PJo!@HqTc2S4t84|wch{L*#L6Fl|@UhZBkIvHVVb{e{H>13P>hfUB9XC(YpXCLf? zZECM67^4 zOTH%gE{2*h;I|t>Z6ndrmJir%)W_^z4Nfnk_VgO^pBVqPwsMSJ}UeyA2q4bQgs-pSr}+>$GQG_@p_D#$JTJwo8^kU$-%K z@kQOQy40y}T2+D%gy-ed;a};(_vidSb+2{D356*A$hic~5ZMdSzN*mM^2o7$ld$6>rWfxT?$aqUrU(RBU*IF|>`iJr@$=W1$j_*|N`s7n#8tDA#MtopQ#rC zor`|Ur`c_p&@Vnropm6X`Gd&C{ePca+{Zr59y^u(k29ZC`dm5N+N8QgrSE}f4>2~6 zJ}dC=3$~ZKaP{<%a?S(!Oe^tZVAjt2(`m1JfI8_}znpJisM;7`oov|}8|P2FtC(&L za)@~D?)352b@R}TD&Y~*k$mjQZ=v57YNYR_o^d7Zt44X%WQRwn&rfi#>LQnCaF&PY z`>x+yiLT(sxjNhMc&vQ@l$%m($;$G$#0$$G3{OcjpaPg*DFr{b-Il=j4Cj zYpHST>AWX@O4SX$^O>q|U%lpizs>c&UDf;TMDCSu3)q-qPpv&2tYP0B{7?CCf|1rFm;V*4h2Zr4{JuVf@&`lVj%fE|9y{PW z>CZOxlxtkPH2we4>3?+p{<&Xqs3b9;{%c)67VOuy<{sC4j+YpGf+uqZ)s3gsGN|x7 z;v>szHOZSdCue#o_OoGn;JR#&cmsw z`|Un_1L8sDe7lctFBL!8K;3`Q3o%sh{a?E8`?QZh{yccoF5bU@_kYU!dT$!P^)FP6d*#n& z+vz&53>eMezbAhLtJ}y`(mE{!N58_HJUlftM7_WzykBw1f&E6epH>g{+^_gE@O634 zzSq0^ob93SG;c$T{pad_yOX)9|3dn|i~fV~9`fKHQ5_W3L-A^%;4^a0PX#xF4~M$q z8BVRPPjg)++~&N29rvEdj?*9R>Q|RTJ*08FrG*SJ>Qsj=a-?9Kbx~i@GbQ(HqzUga9|Gv0iF?N39CiQix z)7LrfJNvwKe74Z&-a04Y)T8}m2;X>XILiADxnSsr@7{gX@evJn=|OpIdS8AK&ENah z*MD3t3}&XlpewJR?0c4dX0%`K&#}jjb?|gEux-;Ik32NRA0E2by}vaeKP&GB!b2_czVvNg z8rNyO<6dvo^&r|B=RP0A^_VU zdY(P%wYg=u+n>*#j7^~NJnTKY-+i{uXSca+KHxojYna<#Z<}B6o~60p`TafPyqjn7 zmDISXEGddx?9Jm$iCo(3Tzply8-E?^Y;5Qp@?4|jx%R)W9IEt}Lq*lTQM0Y{O2QSy zweq%)wo7QE0C-!#yZ<*m@0}cOPkxX0PK}(@)$N{Foh+UBax&n^hQrk18}rN3gvPn` zo9L_Htu?&s`@8tP9X$a3U}qRzp@8~{KI$im-zvTx-9N^D41A8R*hkJ^2|0r$i6i*> zk`t}wXaE}~10O^qwOD^*ZK_9R){ZUZjI)|0>n<%#B-f4(OD9Vv&kDz~H&2K^YQYnV z55}g93P;=1>>HlvoAXsy&*2m3HoKNGzO(2%S~`lDZdRm(xQND3TasbV<9Cevof##G zXyqW=M=Z!ct!Bv)e&4!=^UH4@L=Mdu+fV%UX0DNaP1@@p$M4|3c<D;&M`^mo@3XF}sMCWWJ&*Ue$efgMj zPi8(M{)N1y-5;xJMsFyxsIQ(XmxAbr>D*U)S=X_r5%$|kS5+4@80KB}Ctf`| zl(=RRzlRTNxVrF)aQM6tPt^N@4a3;$xrp<2*gMw{Ja5<&!QvryHF!7={knp2sLrMQ zE!7_?O{|()YT7DfpYE!*PZUiJShI$5?%rzjQSHat;2-*gWa?*TT_64weXpkPr|EYG z{Vqx$)-a4QEgC+uVd&IhPkd+A72zh|h=vCGcE&KgVO8OVLU=hLt$FYzSxY1d$7$C|W;=y%x}F@LZi$_h{~xpi_>jQD)c^b{+i?Dq*a||HOo&_1x$P3zhVLBS~;*?3*Q;&ehc*8 z&i9W|zoI?UX~V~Oi4!NPh9a}c5g6z@2UoHpZ!pF;!I?jT1Easm`ndSA4}583y;J8@ zmmr_E()x$iZ<)J(YV+6lH~Qd8?ks~VU*#QxE4lORV&Mw;W8PZF?-8D6MizT(okA-? zXob1X>ZKE%bL#7*lazIil1EiPz&amACTX2jGu2ry=R7sh(Fx*x-a5CUueU)z-a2nH zbmx!kGvmvGj#LL$He8vZAJLK4@PR?>Yw}s|zA$$4gcvxL?z29mcT_t-??ma}qc_o# z)-;+ge9Ls#h;ub*d;2$l3otY^%|32w*CkTN(@6c~f0V}l%zhow*g$JDJ!Nfv!|zl& zT<5M$jQ`SWyH}(`heN^RjBpS=qcf0(Pa_aHW@u37BCU+V)<`d!;531tXbPr^?@Py$y{39I||xr6l|QDyY1{X`lx7%_<`V3JCx^w-!#kcJJI91 z(bm!%8DAl5Y}y~*xBW7BX;1s?@9E!uaZ39YT649J?>6Yt`#ShXNN_M~);lijJMBMH z?e|?*(|62Itr==^YfSqkuhEUtsl5=qOZB~jtMj_pH_f~pK9ggjMIY30(U(*^FiTf{(H%p!LFPc5>{P_UOD5lFQgsien}4X z$f+keQ%HGiJ#vcgS!eP>z3&e=a>{20iQq zwjZQT@j;Er@`V!LzT4r2!@xIlpSkM(7We*O?x&u0 zDgGEt^Y~)`J;HDFh*TaKlir9NaA?ZWAJEe_?L|gyKR@LRbmYQb^!|O@mKAM7N0uCv zZ6$rxJM(hTm9oKmuU*|>hpYE&ED3$c@cRkQnr*bAv+U>io!pNO#Qaa*HkdP*hHxff zkT%odBSXUlu20v3_RH|;X5UzhYzV;Td-bB^G^-g~1e=RLWO1_HDnj3!85_EwX!{WU zk8ou=yjFIqGhc_#-}f50IKVX7{vna)5SL z(@rihE8siT8t>mvrJko*yNsMg9;~O0^~eHKLq;{VGRXyDPf0av}t1ejtOr+m;E`~QvqmJ6Lg{)l} zYj`E+XraUGcXXIlz*FxT9>iQ!*JEmR!6knkU{3$RoTA5*J#*5T0g9)I;pmd=rxPvp&?qz;kS^&9%PuuECtVWQ&15fNu5`)iz52z=pLJ+zHgGU!vVuoC z%eNp)^2=|0@+&S$QyqYJThZ+byGmr+yt@UySOq@Tqcc_okv~5FyFu<1jKYQp6Q?@M z+Bx+k@3PkEXoqCQNakJ|O8795M4mKheL~@p+%gzsXBe%SBTMv;xlj9rO zQ7zbk7lof+d$8=jwa;jL^L&gCzSBTItJYL^Y1|vY;T-OlfS1*4s=Cmpc9zM8j z=e_`*9Gq`#D10SLjSpmrY@loC<7)cCkG67An7)mTS%n_h4&DBWdYy z&(y+`j19&2^54eMwZbGH7v53aJoRqrS3_5Cr4PMZ038W8swZ3FJK;t5fFoz>^U$|L z;RfQnYoWi`!9chX{ZcwrCI7WoUB23m46FIYXG;>X>;2*C^aVx9{Z>)j4^K$3BNbzD z^uugpqf009Y_IP<4%`oh3>>1zIKwWH+~wfsz;H13D6rgzFKpYoL3Vq-WqepMhz<0p2l4zFg!!PnH;a4gyKAF}R7a4nUEqV@e=m7ch@x|yp;G?HA_3B9I zSe1VJ1y^?x{=}Yi{nM`A6r=4JV~xA*{gC#6|I6Kr{o!=@_nX)sZy28FH|JW(7Ze9q zYoYIqL`h<;%g0y2$2WkttKj1+Ts}T@bZKG{e0(VTEQX!pUHEbaeEebf_-fz7kADh2 zz7{^ddS`L?;Xw~S{w4VM!|?H^h~0F|Xn6c}-hUWAz9Idmk0bZqJv3v(<7?q_>*2ps z&nq#t`LqXhFEXVYoyqcL+j)5&57)Q{MVO0?{K#4bZ>EjwR=Bpq(4x}BRoD)TupMY~ z^;YcjsZG6Y*2qp_{e0|Kn_Mx*Mz>MkZF2#-VDzElLiMM%rJqf;d%v@Qi}`L}wmrEv z%O>yId{@;Czr%*0uKbz#U8TeC&S(8o`Q0^Kd;D&ZaO1t&5x;ZW$>LqfYLDNwvbLrj z_}wLHhxa@l7QNGv;S28Sd;d4?{Sfz)0sqVRmQHoUvyZP#gTD-d&kTk}hJ*{x#pey} zmT`_?0d$KTpIPAAsX7NP$2X`0IkL16U!ZK-+`HJ5Z2Jq1kqgBkdb1^=)9O+97@OOnyb*;DpooPO{o!_37?lZhXJXL3o zi^q0Bf8YNi=L_H$?)52+L)K>-9sEt~tts>w$NpOn?}=j%A3{EfN9i20Y4lx4-}pIq zDKA=QcCO%Dh&E)d|DF2|l81bDgnD<6e?mvVd$+XYq~4Q% zVgv6=etGX#8CxPV@_FF?UUL-Q8J>}w1#VLFgS9o+HCe{C?`9v7(bH&KaX7EtTg`f6 z6Z2o|*^RDt+FFitbUUpl_-@uSHo$tK-_{~0Km3)9k2KlM6 zKG>qH7BWjd40wjV!*|!bcCuAyV2G|HJW0h7!B0BZF&9U=z>x$vauGPv`P)!fb7%!O zbaq`kdtN+wa}DD-#yE6dxvSSx!wp@YHCW}2CEaiBYLmXrJYQ$sE19#I=QQfj8M{6! zGK_g9b$&VDBCDEJ$EEr=R$={doqduOImz>vX~Wp{Tc~YF`|DX#b8R_#zysbI(}w8S zS>vq8+k7j3-}PGKQr39oAm-ld-wk399%jutUESjt--=e`zb$0F)1luu>#Z}v3h^`L zLBI2?%nq%05c>7(Estg$IE@8PVyoe^r5&2`2$jQ``z?eBb;vt9mF zLj25IXRohu=oRB5AEmE(fy|Cl=B)8M^g1r`O~$V=v|hzp;(v}&R}$Dyje;Y}WB(Gc zC*H<&CjOU!`!{r2E+0>3MC+RAtn0=S?UChPEB%k~)|S3{*LGawv+mmdj{nI3`IG@a z{5KFTIJbm2hcA*xj3jUA2kjDc*TUhl8G{kUox$g#HXm`5cQ{`&pE);jUe`-jIJwd) z`pMyL!-L|L)awVfFJP0-U|h}|O2gfZfxe8aLzdot7+f9bStop2xFJ0;wlZYw{rXoz zMFqrXYbKY3i#4{hhncvm+7B{5#j5sVr|WrzV%_uSn&;j#2eyJ`-*Ff_6B|=HN;`B5 ze~Ngz2{7oRn|uo0M0yE(nPz&r$uM-2FQS_?jTl%r`HZKV>?jWZV$hc!e+k{>7w9G% z(Kp_ivGMUFeC8MECO=RA`QuH@`Ry5Bd_2cLyd#V*lB%1O!{b(wpHgmxPDwwhNZUJi z^(bfxJw-Je#5a&3cEH5hi4zB`Q>{Zd?=zFy4vkjPC~`^I7k<0(ag$%@*?jM(&-k!4 z`{*;`%k<;vGimhqCbnP(IYRKD<`{Yna;O>pX=3f&DScgtelvo+nmxV|9W}J`X?H%+ z{j}%mIqkIl_ET0^^YPl&Tsofdg*A^)svl^Ub()3$d%%A7qVrnp+a3+>o8Q=Xq65iC z#kBA-y(2quKkvy-{4xLUm%hU|Du@OCioFOudK32Dx41U#SeM%;`K{XY^gnPr<Vf#Je-tXeSmp|oWef5q-Ot@rx-*~Wc1$S&9 zw+H{vc4U1yJ|QpnXzjoD%Q@s7Pj>6QyG>tNk>98ErMQh3(~OZ{9*hu+Q&5B$=95ocl5aPO}hKdR^+nD4dQ;qH;WT< z)Gl_N;9$A$NOqfd{9}9aj$Yr;FYkzNG;e+P*KscVkfGjp2N{p?GqX+_xA*R!+;>~O zJ{Wro@5&GPd*0Q1<=A7T=;Y$(4Z!g=?w^s5jyv1r#`Nc-ejmQ}=w+wz(L4Y8&&NkS zoP9sM+32l<2V3yw$N$rdH}&rGp7jOx9$v5PzrHDJ_PPG;^4)UQOzV@+`rP(j>vM9V z$w3-meGZh=pik!am2<=X3D@V0xcT|>?Gj==1I&F#$(F*?=Kgce3ltyyr;_n!(r|VTY`pY`E``j^x7!^>0P*TQ&YAD>A- z%*{p5qy4<{B9qG)puch}=hgokdZYCZ=#3s+J(%8f2AE!&0#khxEO&BK%F%7LF5dTx zQoc9xX>cg4wYcw>-Pt{B;(jZ+bSC)xBkM(6`kj(3BTvKkS2+LgpN-c0uS@6HUR-zN zKKWC?wV=Ki*9U@`v44I!!Q`zDz#9*g>^HY7|e z@ts9J&U2kMIJ^p4zYu-7Y0z+cn3ZE+#P46cJ&b4MGlMsa@-DQ0&O7*NBI%*2b_O+G z-kO#c{wcc6qIb`;sV#co;R`3)f1Vu(bAIwWzZiY7ZD9MeiFPUUUAbeH{bn+G;9DO^ zx6dcf`6nUOatcP)VOI>{uVb1&{MKw=IDVNGwvfBsm&t~7VwuWov0BrNJ$Y*6*sLH5$=GtnCm6F^1?n`sx ze;P&YK7S&%a;)v+I`$+rV`wY3qBLRJd~&R9-kU|Uydp-LX z*0X=%Bf#UxN*^%nJvS-}3~I^k@8thPU~)w8s63w-tdom8U$B^*VYhP6B#{CG@X zyH9?<4?ZNlHZ$^R+HGbmyZJMIjFmq8bAIL!z?VbZ{M_C+YA!h&W1_N$ocLgF&1i6H zOl1E|;?w?2^LsD9y?s_1e`*}IW`wnL^SAwpDmO_^xK8pl6cjX!|12VYce%R1$G;Imu* zy^;iV*WR5vd~8ELaTI;i5%^F`9dCY$f43C6r=QaI;_ZQWY8_)jH&A#F6>md$Fo2xi$K4Zq$A6L%uBHy?d ziSK-O-UC+Ge%{;e4>lY^w+Rx{PAAuDh0jW?|4)D7vHt=VDfC*8K2z`J#zkEp$>Hm* z@PoU7X-S5?p4c6J4DxNQaINn3-;-m$&#=?+1t_N>m-$wM*ZL;TzK=WkCUswE_sZfP zA5IN4^#}Pw{S*NJ$sNgun$N0pPn8%V;*^Z+p3}#zcs6#y-J_*TMe@5 zlvD2Ildn(bTp(hW*MK|MPQqWz`n^Ezxbn&e$|<*shxFughvd(3^0_ybY&qBDHNC+e zpJeIamrvcBN&ZU~F`Y5c##m@08`>BbUTEPr#@|Q15aQ+NuhT8%;9W=T;r23owaQPd zn(X8!wm~x<&uPgb#{s=f@q?NI^k?Ftq9f&Cjqk!Ywb*&KZye9A$8UODZ;sE+Q#j)X zUeh*RH4(^x1a@EhV{tg5Jx=&g1;30u>D_7e<9`T+6)#XO#T)o>kK`~uH#fhPct9I8 zlM8OgpH2&xqjyuYIZ-v-+Ia}yR9Wk)qOwWWtcAWD;ZCC9yk6f>YQi@9!lJK3PtGT&hjV`2F|3-9L}6YHUVOr>(x;1h!V@fAbEvE`YCYWwiY4CWJHuEYpO<5Qec z(&GmcJiWEvLT+g*u#Hv*>~_ZR{a@1eZ7v?*Q|i0}Kip7j=h`9GcUz&iT441$<9HVS zq^6-pzUjzS&+E3ac-TRWR4sf+L)< z>0akcq3{u&dpHU2VGptV{SF>>F1`^wUk1M40N#HD{9hVAb?^1?i@|o}DE0q6{N?=L zRQ#Eul2*<{6oq;57=?^LzC}C?Pu}}HumOwjUs1K`Cg;Lu?CaxwK0zvvG%^~ zX3xq7<`S*@>6|$2ma})E%H-Lfd930$YyIR!jCAm0Cp^r+FgnM692lD4doQye<9Cbl z&hjpEb8Z+%e!$+xy}WY#YxJLV$MjXkp=S%bk_Vi;(Bb4Q1nlrBT@SHicU!8LNd5fT z)JPr)pCE3_{wU2m`KUW5@u(1&V;b~O$U*C{TBjLGqh>&WMKpKn5QO}qcm?;G->zNmchF_8mDpe1`2W~m{(q1>y7%G#1@z_d|KPNN`G0KM>HNP7UF(07|92VwpBaH} zd-#7NGxSL$<=oqQrUEtwkM{*Z=5s5n)A2MZUJ8LpyBzb&KIs2AYbN?gcq}o$A;Kn;$!+Pxiz*|ZXF@F?r4hKqAizZ zoS1pQ?W6vW$z89(>pd7*=m*}uu=T{0y?tSVQ9AwXK}M9ZK1QB`N0(?!*ID7qcy?I% zjs|{CAMyY0gd!x4*;QG2|k95ihgD z{ASKO29VqMef!Go?X>60?H&E(HrI~aHt;)x+&1t_kyo2&5BX~Lfg-m#Pu`K+uX5iR z-=%gf+f9fO`a7JDo^46QqRvarAE!A0$tDZu_pjZ4e+DsXkz za%`_4dC%gT)uSDrpnbX8Pb0fd`3Hybxz)o1f>&RW_;|E9JhbeJL~9-SsGgm*KVX0K zSF*Dv89CdAZ|e=&Ts?AjyvZFhcGmPX$IiMJo`+rV7P(;c*jX*uS?jU0I>;G|Bga#1 zt$J)N<^HYD3xz#<>t1ZDMc7)$)F*zdL(8n@q1ZtMoQHZS(@JcR-IakpkYhC)dus~z z7UNVdkCVrAHul!IUVDr29K#mU{-1j6t>bISo5kL$#6NQwexX=_SQ1xR``o*WN*Q%qxsldm9n=cMt=1R$y@eIV*8fk z;}8#wJrQbt-9N75NP9+@Gh3HxZ~r{xZ6n_c_u3vR3CHtC7shBeu^e38?=K>MqWMVW z&~Wf9WCQXdmSSh+YTsWzHWvMULb=o{9UChOjdZRC=IpIoA$yAa><3xfBz?=q(!H&Y zjkQBI)+6Aj_O7Y6PHSCBSbJW_@;enrOzg?PR{OOb+o|G5k`If`9E-&h(SyNFBVXH$ zU&kMrVsN^5pH}DMW#I7*;PXeo>!slL_1IfW$RQnU$FR4+#doXSJ*VizW}lJra8&C| zvWtDkOLKwMd$l7Tj$LThL%v{7&S*bs8a0(;S2}RYBOko&Dr8N{xGRst$AKw*yRv3b zKUp&p`$l#fGN;Z;^vD`uv&ig8%KfF`iSX|^9>0Kp7xB9<|E8UGzw9oDfAf9PZSxY^ z(KGA~mv0TjRy1~(!@tpEJf0O_KEk!TXpeDouA4I^@o(Cc4RS8+_2tbD|Gt&`9{(QA z`1-!%@b8anEYOM0X*|`4p4ek|O*$k0{&2rq zyUW1g=nC0g>CXDNx%HZVY>HrEVEc}-yIeT5(Vm$v{QG}2#y;2d^i9-xJ}}XB)rSQTS_XDZEa5XyMmY;@8At z`s^nLr-S6wnY~)jr`aFAv@bu${@>MF3a(;*966kP>=V>D7)m?skNU&WdC=WA$hVz_ z{|uj?_9z!-(GI*k&e=pdv*_1-LVy)Pe^Z~4$Pd^Jn32jJZvFF#5j_zUn)QR@S~&b}DV z3F2Gv@Wtq$g`sflset1*n?inhfS8Q&n<-yh`*A1s@^Qv;)ZELCRFzsgk37kl)bNJJ z^Em_ZDQG(|rX#WJtZ@6a*3xIR4+h^-9lyoLk5}TuLVw>L;QSZ%1c^V#?v~#yP?TE& zA2<3bJhjmeADyKPV6}OmteSYJ~jz_JjZu-M=8I{#K)QA z@yZd%i;0D5`{ZrlV<3%rhMEhC;p3c*g`zCzS;7^HzKi*z;`EGmq#AeYL;nl`B zySErQLVu1=Y;5Fve?@=4&3U$O4A1UhOjq{$W}jVXE&Xm4b`xzxfs^;$AKv9V^lWsG zUAq{Y@bA}$99`nK;98F^!P+`FH^Jx7BL?rz?nvBmR=AXPe3X8KckOc>ygQMK zcX#x~yYh=p$GaBQ>iDgLcdGSKkN$AX;N66dqaCBdfe(0iH@2g3dN1Cc5Z*7N2TCl9zF|$hxpZk zo{n*ewR9wSD88szpQH0pUj-V7*8O5mTzFg8FeknoJ~J6ReLwUEeV$flVEF)b238PP zNvSj7XWSpco^NF@nbGs$ag)J!Z*DDPtz8u0%o2^`vobV(jCb_>DBpOrSD%3$k8Dy5 zO8a0&i)Mh0XeP$@|AtRH`p}i(HopD5+QTQ)iT>OpF9ruY!su2~%wGp6KwIO== zbE&Vn<4RxiTTf+C7hz2J?Z!dy_^il>S*yKAld~+vm#B?^ow(7fjoILi1u*t7s&4<~acvED`osNb=XFA7eL4o|9(-V5#ho;oLn2c__?AHC!7uHbNs z(vh5_~#UrU>>%g>H15H2mi zUKgCi2ZG#-GS3`-pFB7;+Jo)D}3_c81%bA zMeUCgPiIUk>Eo~q8^J7?)t7b!rz$Ugn(56;_@8NDRgyBVt@ztCuSYa5)=>MO44nXf zty>%KUPXU##*{mVnn}DH<@~+)RaQbaQfuQGXy&TEG&32!Fuu4i&CEKj-7i6t=&s~U zw}O8I(jqjw2)grXe%uU?iQmn>FyJh`KbJOz$6M*IWiWeM8kUCR+1leX$UeNhxH$%V zJ-8% z;A2ITvlh|6Q{Urb=y%J}^KL@l`zU(fjo2^Ch!+hpxi#pQ?DwBz&t>nP`Hk*>DZkOz zH}?8&vd~Y{r27*Wknd&?x<5GZl$9uA{}6ik4#j8<4dptz`n}wD+Pl;~U;7359{XUU z{5xHZ#E>e}?D%6=VhHe&?%VV1A?d@^u;YF7X5JrSC!f*1OzF)%wLD@|7*m}Y(*Y+| z0gg@?6CTrlJZ?N@SBB{rYO>UGKX(exGq2WP7Bn!)xsI z>C=bcX!_^}$0tXe4oC2awe17P{c4Z#VOP5KAI@^V>#6_Xz(4Ndf%)FV0|(hV`Bvv6 zG4_!m};_j92#i8x)*n9dSHf7d2wXa6TGC*Hn=i6L-kzL4H`P2{bU$s6xSQ{7s z`#sQu>>>+~8geeuqz z@v@cqJ2X7Yz8W0#ayWdsB|Z74kzsxFjLIjMB*uM#Je9LboEq2EeTaXO8r9^6#k#s5 ztD;5&XJ%0IFss7?2dj|r_{TA*k zetj|fDay%{na=;Jn~RMePaJ)zm;WyxNVz|wXFtGstfj`MToltTW8CYGaSvlGr%puL zOG(qemzR|~hF!d?eu*LU^jA)Q>VsTGWJ^{gi#09>X6R>TJjFcMIFx59oWO@;#;lxD zALALQ#(r>^V`rN&vTx@x&7Ioc=9(Jck8*wIMd(D}z+F?F8u-+*e|J}jWru+6R^X(3 zuwr+O^4$9OTgVZ<^G*MzBj9b-`EGlBzgF!%LXHVC>8{5^iCO5`pZ!uOF^;;7$Iv^X z4~9-!^|==Xty{l2exL6V)na5n^vkM+Ki)Tf!!B$oI^3oAUiAlFPJMR`b;%0?dw-+x z1V``v4d*_;IN_t0JW*WtiLUYP__pGMQm$?2p)Z85W_)qR7o_j>K+P-l=LeryPfpdm z^Q`Y`Evgw;t}poF62XMMMFu7xLPyi}AE>y4OoWi3Pg8$-VwWC{d#8Rqpj? zsHdvy&$`#23nebqwZFJo{)&CTwBkVrrf+39c%R2TlOO!xhtcs*ufIRxO+S0ZPrq+) zVdOboor`_pR9|%gx%2P07v|?~-@$le_WiQP4 z`?t$?U%Su2=W^ii9r(dOInO@y+`JE*ZEqv*wtvoZn{vcQp)->QnY!n5;hX<&a>VmA zw)fccS*$&wf5)EBboTWr-}y!6+C3#LTzDM+TWx_IXMbQk-)FxGZ4WKC>|yl#uW%j}P9{(yvB3&&31v z?IrHFTl;;xy2YuH9=+wnV;5-s_ggP_Qkz5HX)l5H{H`b8(9G>?6Acb@Q&Yv;Kg+ro z^uc zp2w$ZtN)@r7&cTTU>+_x>&YBukkR;#)1 zdwuiC|F*i#2ZsLbb(;%CgYQ$fdBzUw^gQzSsoNaWHz~QO@X*uhHvjTl^zGJdewp8A zs@vRkbKknnom@x%Kd;;TB4d;t`nS|=9>@M+>3~L`+dOdH=BF!D^0fnL_Tis7b(YuNDBlw{6w>_RNyXz_xnqzxT`6R=&0JwMCbPM%{ev zWrgS)ZoW3flMJrN-@6xjmrmyCIZ^y;YsuHHPs!Jo9_Brl|84!>n6Ld=@`>LoU%Q?B z2IXs4qu2fan6F(;zV_YZYp2pkeTu&!guSNq#J3lo&;(4$*RD><*B-;YRN0@JdtIKA zd;Ju7(pA8!7Y@OOHsX|jK>tDi#+NwR{?zS87bpK=vR&={CinVQ?>D*EmHf8KSMSg#{1d0u?FPk7j%tO!j;Zup?llvNH z88~?2jPbLKQRiM8pS8g|=l;L$0*(z%eu8xTwo>Iq6)U&I;M_K~2cFOF!8_+W^?OT) z!^;aYt(}}NFne>r-_e4fF%J9+nDdL|aK(y`!e2vtIWt{E!54G;C zjMItPPojqO*hsc&YtL}z*{VE)+43Ft9dD!J_5tHx+34h3XUONVqbJ{5HQ3sDzLq>) z;u82*c9?u?VEQrk2H|Hke#KhoPwi_?>#0v>{3c$G4{Zd|Q@1L=Ou4mun{?Z|iZ-@z z-`aACefht5zh~Q*@f$zGM)~u$@!YF3{}Auv+co*jiN=g@Z(M!67gz87#ws%T%%AJ` zO@H6kcKL^VmpFOdns0u`K04^21cWH{iF|pVBq?VVB{f73`EB z_WBTbUd<9y!%j3QxGA@Q_B>b)^X5*?{G{79z9(lLX#2EvpdIhq)O9${eh>Mc3>=Bk zzeQVSP8CI`&uI&LsZ-|E!M8?FVICHKr}Y&Mzx)gT&HZ-gew}+i&i`bc`1~;V=5YAu z2>9qo_~|J4{Ak1H6(bOjH@VHk(0lkiI4E8ioZ|4p)ZAv~y35od1aFnw{Pjc7C^3P0 z;%CHio8!=HYHstJqI39kv&*NCkh?5CeRdxFtKDZixy`+NT0HvWDLi^hDQ6D`=Dm6d z+EYJOPWadUKShX|q(m&0btJxjrd8gFQCPGrpEwEPTv8xJvtr!ME>dT*?b(P47@% zF!D@r`!x4s_>tO}i}Hazd>HHEg7Se2(tGhCH7~e=Z{zSfeJi;VYabfkkDO56o8oen z{9fd)4d*5mF2vWyo(uzbtxYcRAi+oZ!=|=aid+$l@YQ8?W)z2yFfMq#ksUSUqV>R( zT4bp(oy_|tFPJ%Noef-{>4m9JFoj=ua>GxZQpt^QIr#z1!JE5i;Z<}pt#QkroV@Du zX}gL%MZu4F`E0?ij=cYR@^o`}wt}^H&UQzBrL5`xl>TKqsK4L**xK|4GNc7vRqZ`< zm|SD^Z^k^PCkO2Q2jG3^2Et{pQIn%XAgI_X#?C+jW#bo?c-`=nlrY2g6nkJNP%tX z5oFwc@X_O~j$gkoz6zfQz}H6ha)`GocD4`tRNL*9q2@-$;>oRz;I#95w*5tZ_mNxf znHRsN9gjcX&pXmTv?nLgIP`ClVJ~Q}Ny<0xEyJKc_;!yB0|%1s+-_4l%(YjBaW)IE z>5*YGQf1g+SB5$C+#|zi&x6%++UqN8Qu?+owS|9P-yh~(BU9*4vgXe#99gpzoHzFw zm+r^h``21k*^y;$M4ba1AaGGH@io_Z+qI=6Z0`6JDmL38u+l;4_OL7LT;$P zU}nGmv?phXcybQ)L$f23kQ*mnDht2v&+It%Qkv0ukvZtR*+%CT4JVc(H>h=7kN$d$ zI(eeCQvqL*@)V+#K6@)R<2r1{_Dahh0o}&H#TIIOs&2jH#aePowh-h096V3(~* zwKuPKLa!dr*p<&)g}hLFRxxMwt3EAw;dXbw$a;4#g!1v^FH^oVv5YLe*NWZN#vDDk zO83@#PQ4W;zsWhHXl&%)zsGnp9KE?%G&-f1_jx+=Dzom+8p%%RT>N3ydNFH$Eo*-b zIB+%mUfRLobR(==-H!a9NMN6n>FyblyJSxH|8T`hC;OFS1Q8DKvYa zN9WaenGgKpKwe1u?aHx^IEdSACzzH$3`6!S%u6^ zkh}B(?X^GZ3m?h05?+m9<%uqY&ZK|Rc0zuF|6-4w_(+z~KmGO(dU8ZXbLgSypUVsn zadPCM*w;0Fbhj1gZaL)0T;}=-=Jy>JIU0$o1-*WPljL@4&-7txrYm3b__DNc=>pGB zFrlOU3O8@A9owYR(Ls;D=H}hc#!ry%FDjo0KPe^87k=XCp+5UKc^>ing^nIN)>;}S zFKaV<%i2B!UqKJeB{%Q$Mi2Gd8oQT!*lzX(jE|(wMgD;xd}TZE6Rfw-apvUZRC;+! zW%zeIT`Dw(G1c|zpDTz}c($u@vZAx0)w_FrJ0Yp{z+GvfmCaG)G4lK>ukjv}M$6Ke<*5@L3eJ(kDeF|7R&yVA+&na(xUKc)C7>tB*0iOQ>~#ew^GdM>IGmPKxVUc~(>mx?d%3Y8ZSU-&Oxnz3AEeg49r}m{9K0FE zSXJ-%Tk!uD>bRTzh35I#$Y}1V9qpHltxOM>&ZPFKYa6uBz@9<3&|X5>2>R~Ol~7 zq2PS@PyOf+n9F|9m}PS;%;>ctj$m^vqaUMpYTsewf^f&Zq2}+9d)VaV9_FW;+{1R( zUN%l6|21}#dni0$+$Q&MdUoMk(}soP`NP9+GY_rJ2bsr~BPQ=~hw={bu~3K5Ig_cK zeN>&abL=JT9menJ1-ax>M`>5I=E(Iik-LN+D;!yA=(IAFcy6D3Y0jE>?|ti!$;U#> zN49C_iV~-`fXAcB&8$xE<?88)@qN3C>-Q1ciZxti^eyAlTW%!|XBs=N2p!<|HtamvN+saA z;WzHwR6FA~=B4J+i6`5vQ$O@kYwoZuE()Os-T0)?j81-cAg%)iIppqGC8!J}mjQ}2-)Se!^)M~vY zfI7*bf_O3`(vKjd#$zCwGnGWmtR@hg}pr@+`iI^hfsJv8fZh zvNwhQmwk8_acTt5iGEGidyh}zH^B#tyW^7KUUe_on%n29xnFa~T+u_wy8jmNX?rD_ zTgW;PzW2RL{sX?E6#n9J_>9Hy8<)XjUW&{*MENDYLH+x$10M5O_rTARIh$7-JelHy zg`d3yd=R&8mc1=sK|DtGT0x>a~LbgO(DHS2qib2bKVIVbQY^;vx80iJvDjHYkmnN}I}kuUMA z&c)%I_|eoPn{Q%T%r_CZi0|S@o56qRy>;bh2oHi>(5rrvC!H8qXUsP-&G1cRUs-%+ z7qmV+4gMMUDBna|TQOcXtuHStFx{{8w+1h3gGUqakov4PRQ=3P7xPwY#^#9LDD5i0 zKgH9^8VgIE^VGR0gP*0&@Rs4h`_1}#<`*9i=BD@jGNwfHdpF;XV}8594VnB~Jn?M; zBfg2%sm^Kju9Lnbs`D1=6xl-Y_C2~^8$3k!OW&>aaXsZbXmy&)Wd>+4g z;IsKWUNXI}&m-%3uPK)`S@+sq%XpbL&Yb54Mlx@fuZI5e?vzHW(;ai>mbsRdry6J00gKdtu{d9SJVb%o)(tGJ`hs^c!|(5W+w zf2A8gLiEGiWFE!8=zHdzXw+wwmw16vzL9boeX`QOO+D7L$kz_aNqbV4pR&^C3bVey z@o&LvEbtQBTWgL3zF}P}<<_>}kRi$=&e9=H2kh zw<+#!czb!%*Qh=#&ezCZ=Ck-2{n{~jKckV~f}i*VKch)o4BwGYb3goFyF~_A~n7 z7km2|2@Yu6tOe@d>g{LrF?>6 z=khGEO$FEee?KFw-?)&U#?MH50GP)486Dj`I6tER{+s>z8A0<7iJ#G8&Je0+{ERNK zp7Arf$a==lsF>#?uYqspai`#gT6Y(5@jke67<#3UAi(f+KtPKTNzTtN(4I7$f&b#K&dob&n$L_T2r)ShtA($*>EQtePcq$F!Ip zy&8T(3!$P1s|MXo_@`F3gLr=e{u+nM24H^+acrg8onv@J@V7EA(s5q zq~s^y9X0EGfO@#^s^9VV;t5R|>NRP*7q2*5`JlW=I_nI%?Ht1=gLdVSX=c_uU&?WBn-*yE(WBU7*q{ z70TIJ_Uq5Tz81A*nCH-t8oPuzOd|U0Hkg zPHP`y>$-zy``(=)a}JLFA^-Nh>owE=i~p$0pqU?BnF75WrtIBESTFH5Z`rerCar9= z(Mk_{w#G&)du+P4J^KOn+yd5y-=t~fCQYk=riDzJ<~M0the^|x6I03FP9t|;TkSN6 z?KlBV`vBY^yy^#{du6Tn*s`Gu?}}eaKYMo1Kd@(KF&9_K*nq=1+#@Wq*n5{4H1LBf zp@A-FAav{;(vAHmI%4iwXI{EOu|BmUd)wFSCX>$o;Yyi9%U(Se8r!?>>H~(2y48%! z_>>-O*CfI+Qk48%$XHCnVZv&okR^4vT z{vkf&)*f^a6EJ=cZWdZ=?7=4Ej&;Qo?Hzz8+N*p(na7tnZ(!{~4L=)0r`j71GB);A zlc_(cx9r-f#(s;X`wUunlCj^Q(S2xTeLSuFE$y@4>NRNPFO0ocud&~@@@(I4m#euN z8`{CYeZO67ra#KR@-;yhc)VXy<3r{|V!(-yBl;L+dk&-j6x(yJcoX1v%kC_; z5uvL^#GC8I&q7Zux|*2{J=kyOXYm^mIsm>ExoC;#`>`RkU2fxN;c>%j6#g{kZi_?s zB-`BKkF!kpS#12!9%bVfes+%|a6Pa)6_ZY&HVq*~7j776+Z9Z{F+5cJWMXA#h=L=tiKFWfDrffUC zVeoQW3RO-mEziEiKdV69tzOn?0wKpZm5|&&pmXy3K&&QsB5K zsdr2bnKR1{E%eO5cb9Uu!IdMvO2@7i`O5HDI*z}R_$u|mesptsqZt+-$K3>deTXMUY0eF-qo~E z_r%3HkFhBnPX9FIotOVZ_UG78A^TLN)3&5PZ>GSwbvOITFyE8a_m-)U?-d(}zjtORd67Namo9`RteF)!AH1mh>KGdw6*f*yW zdz1T|jJk&gysJ+Rgr_T6omjKZ!158kZgl5+vl?>M9V0%@MIAv8^nKRVH}}m95YsqM z<=5vT17nkC3^Eq+O^jaW%$xMT$JZ&nJZF6+e+|AzOU?W-R$fb%kyjnd8%AEc=W}eg0lXvVdW_t}I%=R4WelF?H2Ugx%Gq0MMrDmP)Sa}DBo9)Hw z3|o0g=66nK&luXt>$t8En?YgRS!H;r%kdF5c~r}8p!h~xy7)SY?V!T69RRBYXO(-` zCH4bVF3x@sU$=d4q?Q(_SQJ0X=Kf#s-t$YffW&h6E3#%wby-&pF&mnZHM&cWuIpys ziag;bPvTp=N7}cZFARRtx1H9v@E_KD0muLIB zUzGP8{9@((b7Gq!j@Xq2!Q;vEx}GT&`&8^*@Umrta$v_2+@W#4z3Qm5m)^Vlc3*JY zc48(lKFPnu%-;olP%#xqw`^1gu9rP6?G<)O{ql{nzwzDj_vFdlVYzKAuZ>PVU#NJ8(qw)t#T zZvQe(-M#ITHFyHg%O_rgz0bk-zXp4k6Bw#E67V~6cevOJl^lm{Qsf*rF!i~*9{00m z8kzHolkmwNq1QRg`=HwKziykV1(tmcdG2UIQ0`g#ezvoF!?{U2YSNtWkcWsD!nxgh z`TfGF?6y@YtIw}N?^m2&OO4r>F_@OhqR#ZGpkHJuDw3{_g_x*Ju>e=-}mM% zoV|IAHQd)8g@2gLnNW3J>{E`>jQ48q<94%;eq@D?sRhA&{M}lBgO~BSN%NxV;!uGvg6Um;$f}$8_U0jSR6X`;MMR_if^)wZHhIv=~}nUpEY;z zgxqlm?v9^3#-#&Sdw;6U{*eCIyWmZGUe|fXyw)6x_RK45yj0e|z5c=W_mG^Y*uz}V z-}f#V8npazt-g0qx53XYfS=9CQElvrTYrp!xHG-RaG5y<(qnT&nH>80C+6lo)}_cD zoHIUL!Q7P7j?TNxncB;j^li@$hhLj;@Gxhcz;*-w{q=LOuy|NtVeY*n_`O;%s9}D3 z_L{82xcM4ytwZK3%&)&aRcrP+d^|RHI_p)|sGl^Uk6~H2&;Yjse}QAs+zR|71ZF7? zEl=PjdRlw^gB{yVj7^iXvuBP9Y(^KbtT`j_0RL+nrU&-1ehaueC<;D}PS*Veofr~|p<6_q+8VjEa zEv{dCXu6`YLWjlvX3^rW02ftY4J4zw-ZZ?`@k{CuNWZ7Qy7`WQ$ z@u|ReF!Xp;<%y@qW6XJ7ZO*IEkKXfLK4pr) zfnMq^=M2$7>aKL8)P1eu`Z*)~Uz;<+q2=Di9?y3Sk1Qe9TKxBSQnrjcA{%J0m~!}b z?MQi$vuLcR_&(yhU0>LII_u3H+FGXM{=G4|U+Yc3Ttb^2!SFDx`+CZ%x%>=p&`mfL z+ThTEzmxP;&VkAJg-*!$8$QGMYZ*T{@R4fTaSzdyy&Ye<9RrPB#?u=|_CNMBY-2BO zFnFd-CjFB(todKW{9nlYFJk^zne#7W+kHG*T2xUnNB8^ZShAV@y9~;}hj8DhTg`uj z`Cr8OpNlFg=M48>KZi5Wxs@`nj$vy4_eG-<{N$sTdnA)FD;jU>M{JJu&{>~ioJTk# zW6iNO&fT_g3Z3t7tTM+k)=jpt79Eey^3ZQNPoc)h9LpH1nBz|xqv$Xz7$e_5B0TH? zi!UISQH5sX3z7`JK;UWbpB)B=8P{Ov`d0~HPz?<1^A$hO@X~7R`|M+PYPm-kgN(bz z9CzCw#{GtEZX5W{kE{tVu+6WTwErlyAAibTv|oqz_cQ-8o_^^&`&-d>k^P2gJ3jv@ z){5VPlgqf@+VYK5bnW^)rR#|Ii(IO4ZshCeW~QQh-wbZyj#2T2{L<6^nwWixKNuip zUlw}O!N%;fbOE9VIPQ>`n~uOK-AC6gNhwfr|F=Ih_=a7q4aGN*Zpr#@_14dA~uYMqhSx-8IbFm-r>p1=JSmgXKY**0!N#HTBLy25FePCzf{#e*aP-@))8U#>XuJjme>`sxJA%(-2E>Cts>u*Zb| z(36bVvu*1(q{+McOzyTIe(5kzLGYwgeBC4G6C3zc;^{cF!)K1hmc#FD*FEbi9V6>1 z9i!^J>DcE-r__x&b5Zcmj^W%XJ-p8E)$bcN$Jd?m1z-2@a$k3)V?`hCKw&@&@X9m<6Sl@mx!M8$dK0)7L<7xVr$!Bv$%aZE` zty2-YZW~*Z*+0^HlvKZm_CJ` zLFktS@9)Im{g}`%E8WtCw0yFDVNm^ifpZ%tLcgFxBdtDOY{Ai{TWBO-Xl3Xh)Gh2c zW%MFbuds7qy~3biuufo*K(F9ueHU3eJd=;K#+YiYH}nZD{pb|7n|;;Mv-jxuSd*ep zs7att=op+nVNhdQ%9xZL&d?_`nfipLMEZnm)~cP3o~~k7J9^HJT>7DTh69>-@rNRh zrG`o`!L})De4gWJcc!jl=1Oc_iJ9BcO>8Y<=B89}jtV(N;^s!M>r^`Q!1d@Rh?!ge z@RBoxCN^a~mlN1O1bqiF>4zeNKbbi;@FwYR{@@JgpdQ);tdjWVAUeIbW;lWeiI?l& z8y_z>z3YQ39r#-jgLh&~XK?HLz43Z^ny-8Ib=nV>pl{aD?SC^qpY$2zf9rYQC)z!J zUSirz&;|Lyrvj5Lq%Fa&u>^c0^g;LtE+k#iPdp*z&?6SCnAtG=G#$I5o;Mp)Ya1cLf(we-% zoWO8kd)LNsfhXbpp8Wb~@*F`gZ75i;%?S)?rcRfJFM}R(k}fb8o8y%N>$8!qOr4_O z3U`ARm@fUJ?z_Cx`}VKO)<2o!aE|I>IdoJ}7YgLl{5!1YnaJ9C`s zTL<%Q^;Pw8`1HV#@>n0UZGHS)TpvYuq(f7MCv0SH{Dm=F)aPZ6utmxI9CR+d{SK=Hiof7kqh@ad0N5#)IWf?l9`gomE3;8FQpKFTO$@S3{ z88*hIc)eVoaz1BYey*suPN^Q)4u+rW{OXD4=Wa9S)#BAfrxf{$!KS7HY+k?-b)R9D;`Ye&N#TJ-a_d0cJ*yzzaZSxY}b-B~Mbsznax`QD@ z|0KF78Heb}?BkHMozC8A_#GW8Z1^1O)*VXX{GEFD8SfhJ$nZ8A)T6I4cp&;@>8f^d z-sm5KDLjL~RL6g8AebJzi1=MY44Arr-(dUq6Z$9h*9-)6Vr>ot^D1EO0p=A>eQP0p znnCO%!gKD#rX{cq#=-WJ;N3`{?C^fTf+2KNtxNP?E^}QP_LTWSrE@UXWik9p4!W;m zbYJKql`TYcAB{E`RzI9Ky{mPshe`yl!t(*w z4~WO}9`;<>^Z1p8WZz3aj4@oG>}nreY4&GL;{6W~sMczWZU4La?EfVEPxa7cz$g=5 z&(gUzf(QEB^ZV7FH@>sO&%W>5K8kLe1^oPiQ`j?)LGx;fT|+F&!>z18M-NOBk3~l} zD7cWmv&IsavEzg&XH@KK^eFFxotNKHHXbKvOX|& zg}N_f4FX@me`?))3Y_o*`X@LcoB$_CdkPPO6J##jHXQsu>t;W5E4VmQa4~CIaIy3u zU)D9a!99d?+Q>iH4!d)(AKuv&%}sIpx~BvC>DUh?j!24I=76%kK78Za=FvTN!`<}RvK#*NzfYLmun&)t zz;4)wKe3ldq<>=!^*y{=oG*?VpT(r9^&%jZGyG&X+~p&edmM?U^4OTqQU=(ksC?ugiPij&Y$ zW%}~G70c$7Ioy?1?8TH*e0lPmDbF6`xtZ_c>lK+<{A9vY4d0hv<{CZ{=sSAJ#RKV* zD)8wQ9>!(b(-a?L>pS?TK7n4QDPAvgznsxY01L6%OTWoeyloFGprOLsS+EcrQami$ zz+DzB@GI|ug~TD0ej|IO#>3zS69zT#50-8~Xh<0R;kMh(=$DMu>X+ol_jRyizs4GS zU!9cUH)4+6uJh0tdy!fPdSod$v50lxW*x|Qb=CqtJ(X_ee*Wm9Z=b?X&dJ#QTr7Qw zmZ=41nqvmehub(?;Qu(L7jc6h2Rn}G>b#Zd>tgoVuEP=01kJN_-=kQxpc< zma|qiU{}MJq+4_bLX+Q1;Ag`g4agelFMqIbd{NHNn0uiZU#NUXlCpmm*>zs#{EP3F z-~pL`9UH2w0hxQ*?{3zDJeSKeYeAkhp6z}x#`<^l;DG(W9ehO8Jw|JcdyJymo!~5ZHJox)~Zqp~H+&27j|M03YMW^bMTSb>soFCBB zefN4+`fuU>@tpAG&Rc4dsut(6_EPvhJQ97kOA8DeTDAD15!#rGZ%exT!V%ip_gv!` zy}?Ty6Z%*=^PaS_0&T_g3eOyPzo$E0BXVTTi+y;&I$qH}v5t%+=izvG&*pqLw^c5h%aj$appo`%ZWH(n z4Vqu@5u1rV#`6nT?HQO~xQzUNSAOBM@CqUqTJ$kHj#t1>$KVeXj!04X;* zyg>YXt{x=)Uulk4XPo~w^q=z!)>^mdzs_E^(|>`5%(c*e+1o<@MGg=iAcM87Xg+IO z=6oKgoV4Vz>=6@f!xS?M{^M%$QpSCloXu|1d7&?7;fYYGwPd3j9ygoHX z_aDax<9Kp`IzyuTSK(d62BBeVc;W3hTLX3@u{B&!KCrD}khG|2?bnGTnSd7kde^|T z=ojSwyV9aw{vyCq@w@OZa*pE`;5iuk!ZYRI)DwJ$`OWu#HC6LL&#;?=t#*qG_az%i?(w(a82e(#7fK7)2NG&!&rmh1XbX zp4q<^U2K$jw8_QRyb4_uc_p4M4u%#UoMG(G6G#i2ME+gFo)!6bE&qw+--j6AU}3TM za`v?g-C>-6=`J~^o0?c>oE?qg+b;K}_4Y4);>mxFeiP$`!!O>T>H`0Xzb(Z3yw|@dCBsfahUhH3%!5&V4UyC?FGS6A^w0#el<6r5GPfYi96?P*YPX=4xi1x1HTQKlkx?= z?k6w6zhkih<6BKwZM0xay6{}#Yx?qBsls2F_gyPkedn}5?QZPr&Z@<7*R|+z#Kz8= z&ZB?zSxs36FL>!`itpO3^bN5yLtg-1svPIsuXPZA_Up4%x&6xw-`-0Fo+r>|pkNjU z*LYiioEcK(;$RzJPQkYUo_>V3Le8>eU=Jwg-vJ%7_}Nq9VLOzy3v90p9-kopN{`T= zZsn9ym8~iMT(p9hWs7Mt&SF`y187&Bi*^cJhXDU(Pv8kB_^m3v2d+-$>Z3pWo5Qs{ z0bE&o7F_=liIWqC`V?FpHn{3$9ZE;cnpHkv<#{RwgNwCVE@zYz;B48?IplYUztsxS zT?sGk4*6tVFVpg{!R{?=KC2Jjz5@GJn6t{jq051y5HHOS!#XQ&t>Z#wcc;H>b4#1SFi!V{9;{d+U-IWw=? zm`BNb*UCF&=7HnImr(K|R$eM+W28=JELO+?EALD*uP~PPij{YfnTMaO&{?VTdGb2m zEXWJ*FNlj3QXEuz?=^uBz94&g_&nqVTdWYqe5kK&xc4{xZr~J&NAdMj67mV_WxVX|e>9$YqH)@Jfd0m4FQe#KTR~qsc4iFUexoxU z-!4%2_Q5SSI<`h)_lyX-eGcW*JZzNgo8hvi>%GL-QTrxI?T>nI)+F|oOYIT0Z*-?x zw`#8pcLuEeaVOs{+K9gaae7jkHT+|T2H9`*m04+l&Kb$UlvF46>cJF^dmU6eq;t1M zil*9W@~%Ez#qp7QFW}|t^{k13U9vWyt=tb0tYBZMJ#{tl9JuRP#qHVe%u{9RWt|#v zdkW2U8hz85H=Vgt`Osj=x9_P_th^`8JlRvwTUq1jR$k^*<2&|LwOQ|YEALV>k3F@? z{BER`r}mVz7u!?1mG^-89ec`Z&tc`M{l<5@WBcu+-i*|!nM@=8P?K23r3sZw+lxl_kq#p{vU)< zKk~`mtS3%OC>txfZ0Q_ikHHU%-@$HpZc8>k@3$uHGjtC1@j8dI$v?q5hXi!2cPy~} z=~(Y_idXvt**G~I&#M`-@wpG$c(px!W3gF$k-#cm=V0+e%D3mtlMT4S+X!D|!S(gu z#Q35IL`T--?veRK=6Qwue_ObYjGc{3eNOx^wa|}PHv`23eBamiY}+ByzIDYX#{+!B z`j)eFqLY(zaqXn}&oOm$#07js-qF=5ogKQn7v-I^dFq|>bAOfh)695)IieShoss*C zuWvj+Wp}#H8SE-^5jW8A<@az7@O{@1{Oyy7z3vKqh%L8^xWIC6hrj@zj#>JM1=y{% z72U{PPW+3y@gtCZ)lR(NecTf%F@O#bL-=)kxKH6sWO$fQ-Qm%UKCuRRzaM=@9(Qnf zSOapefImg!9Ki+jVLp99FLGUBPb@eizJ206&P}qO#-fWc;_!dCOrs7*Fq!!C{nZy; zlgwSq6S@0v5_ce`(cWafnL_*N_#X}l9cA1fF>blryNj{Qee2w@x~=-%+n#N6O{T4k zoMhnqrPm6A>BOvfErnRJ&MA>2XVmj8~oAkb5HjL z7ahLsS@@R2?xcprUdNs5MK4~A{jvr9fCg`$(O#IhH=i>OYviurs>Nf84WesWUZYds za}E9c68*iJet(hvU&Y;xUjR#`)fD;l8lD)<9U`gU*fww*W^f0`okL39h0AuZ^Mk)wNNWi);!`&DIu7I?>XQmA}&{=@H3PvvSYu#xjB8yqJ^WW6kM zjCg7heZk-KaQ^qSu3hALTzXvu{hN*t9>2gU{61S4o3v9aW0e@>{?;;oXXY<~| zx;;8g>Cslmob32!!HyC1NB$dcF4&Rp(kmT|OUfjZUX<+H5q#Y6-{?4>JE9*2J}dp( zpT%y_f)Bzf?k8VDTM{EWx+%J@Whk=B=&^OIfk*PcqIu`yXUe>G3+&}gJcuLps{Ov8 z@VO(9tD??{k*=wnMLp}s>*cKPVPcc(n|*oidFX-QcNeW56CfV>j){~NeezZR>kAe+ zYS*93_eZ&hI%SD3FX|i{IYJ$s)3hCKFEJ9&`u=)}L+AmfVdCHpk$E5v_N~NmUIlE5 zJ|x!kG~W)q5@h?Ps13uzx*nVmD?n|G+kdd%VNwbIKhlbs`gsPQ~+n zblcHj%k);*H{bsI;SDx3^NW6h3 zsdLw+!eEYL%2RU2SNBf7Pm?{NIn=$Gvw;8A4&sNiUc%(deIvUbDkNUil&3sdv9g6< zG1hv~)Ry%*E6cme9D3&x&Jq>D<9k+Sc5P&D=WCNA71wfJZVP>#I`KZvrR>OOjxGYG z`S?T+XC1ZbT5bnzgdXa28-#-9fp2?w3wP_xBQ7;D z#gB!e>;5F)Gr!0%r9JI)SAlAue+PAC(tf_CMT*PuH>J+WE6cZE{b4kheK#S05^YY^ zO2>`%?U4TLbaKY%gJ@|7uztau^Rrj}XP4ZCYOVi#bKdpQ6YJ9cL-UShu65R2$JY6B zmu7bnF!!v??K*??D1GV#Z{nK~*>oscIy{K{M1L*>7u}hqJw5DDblXKUeR&)3g>HN& zT6$5gFKESd+6un2YueBhHy5%fIAGS)8lCVqCUF$i|qeV%klB`x@FB~ zJinXzDk(4PwUvF_McK*!=H;vV{`I5A!|Aa1S(JQ9}GB|t69l52R%JMmKmu*pn ze@-!XczG+A;=iD+2!o%C@dbk(tmxpGxKfM!k>qoHv?JxU2r$1!zF#_L6mYBVjH>#j z-fXj8{F)DWY0E?1H677eGx@f#BUWyySuW@jdhM<(4}&`?lO2wg*?pDK#|$sFsyCyh z8M)eu_We;}vN|IjZ%|(POWtapCz*ZA;q>E zW^I>p2k3$1*+aGzkqk0_d?!>@IH_Cp}hNecky1pd(y)lZf#chIB~gX!`&7w1vjTwzZ`?b zz7nH-3$9-Fv9v4jRddD}4WVJ#daTd8FEZd~_1BtfFZW>#G}rpe$+Q2PzDW7tO9q^+ zcBMW2rRc2RlP^3{C$vuBAmexcjhJMAPoDj2@~rZYzQ{RH7xo~&D|#_H>zCv``&YrC z=K3Hn6Br8YvQ5}!nXtGNNsv+m(P{9H8mF8((?7loghRHq*$zy@?WE_YYb&buvaW!sr*hw%nv1&5 z(bKgtDMQl6lsTL$8vd8{xZ1U1DKu30A!Lozj9so3*xT?WfG)y6wf;}E^qbU`@rrAO z=P%$nc!>R^)sTN3>2gN&bf_K1mJ90>mzz-}xm3SD$*b9-@yi|DC$wXx5*gS!K|y>|A`&ZaudP zzm>=CfZq3}S82WIRSo%H?3Z4}%I=%7B8 zuc{TjniwgJqgQ)u^vch3nvGr^H0jk6lU`LMpjT;e^y;!;be+Jj6+DobW=)J_$I+}{ zjzP21pjqc8pjpxOT&7xUP4@|S5i+yNT+FJ(Avc|B~Hin=@x4x!%g@3hZR~NMF8$CF9 zV(1(j4wn1LQdnb!Z&~@z9j?4euCx!0&m_*ZE=6S~!^(w5G#Xjv7s z3V*2yySY=SH{Ip?EOQ)uTLfP6a;N-2xY+Z0@;M`^OWJBa08e5*m-AeFs?=rBw(^k% zZEJu&!iP+7Q@)tz@6u1s$C&h)_S22_Et(+ps(y?ZxF6xRx5o)LbtrYQDj(fUy%Ffb{sp(-or1TP;&>KFIF)H znhL9CAQwyyJ=5zwE%X=ORoMpdw-EhBYN(Yo4LzL$ox?BAx4usb?CDiDO_lwFl$Cn| z=X@@(O#CA=lLOa^e`I-TK<;Z=!g;&$Mg5e~Vr8!EuS~<(o_b39E8~lmxuCx?ZDV@s znM;{!Ij@F&Sorn3t#MV2Q}4CB$MPqJzSk>%VraGX-e#1)&3ex?-d9@RYexP5X}mKB zpI7y-;Jrp-y|jNGm^+osAaZV{k-k@7B6_P>`d3I-bEMjv7+PYztM(>_uHjwvSG6}W zbd~XLwl^{KAH36^t=@_7GJ5C|Bi+^yBfXgP@Ro(awmm}vZuB?dX%m8J;AYNSxPar&NZlUBta@MWeLC#mGXP=)}t4(TZl) zt`~XFi|j9VfGtHv7)C5b|Ys&RC<;}?GstcO{C$^fxp!d(!~Ex%DO|@vH*TOrG8fzhp9=pHx<|>>VkgeY69t+)_lHu?!*$~Za{ZL1IBLly<0JI6ap8?%|ZhmGb;H+lFh z=IP`)CZ*(LxlcOVs^2>*O+Dk!soE)+>CUn8)Vk{HzrQzY;u!%aylcEacpU(54m(#k`CsA(T0fBQN4xkr4bp#K*%eLyTEF;+BP*SME^}?#r^>Mh7DKRK3=N*si0=G&*|Yj&Vm|2H34$z^F;VM&7I`fU zUz?hWJf<7(jqE?q{l4z;siI5vbyslbr1+icBiwa5_Z@k+@$5l2JhJQY9P0IUuX^@E zY%Zb`7`M81{kYRL=*F-}`*^MN3hXbhImd0S<~j8g(ch1&8%yk@3h0bJg?b#R*gD2W zT-;3=hCjlmqkC0~*g8_{T=4uM=Xh)#vwCbDa#yBh>i{;X*zJ4jSi{|?st(RMNF6!u z)Vej`aryo!r@L-dmUg(By?i?Bn>Yj^u|bGU8gHf7>-8bk^P3^_dpP>*a$p?_M_BZ_9KB+ zy!}Yxh3Kb9OtTAu$IIpit+<_H{}i6th(oA_rn2T6(ItzmQ|?0!vM-Ez*6a46&lVlJ z*bKFDEnxq4oP39kt>-)TkM-SB?g0Hg-+d_GwFysYv=`wXkML>Y=Q|3~TvYO@YN|*RNHtDM! z0Wa%MY_{QPS}?o^UA=iv#wO0fL|w$#xGo7>;}G^PcPCwv9Q2sDKspZb9^Pw%+u@};h1@woxxsJJU8NR>LewNu*3pglDJKP<=0~?&W zAFIN=AFIFb!^6NqW3_JNn;4(lpyZpqYs=jMxj#tc8xJteOlqhXhHN6JdEKjmZl!wz+UU+b;_ zA7ntIzLcz`-U?n^m8?C|>~@rT8}Rk#?3}=NIrwA_bAY|z8>hGnzuk#{s@M%WZq{~$ z(Jyj7K=GwI_RIq#weGfLt$Pf(#m&2peN)~gopX1U9o&1|{<>Bg#ZD)Ds6WZK!)@9+ zTj3wv*gCB`h?lZm%E?{H!UKlOu-DVCkFf!YoO*=cIB4PPz%hJ@wxjXTZOPIJ8x-p4(Qv zo4h;bZV>!k-O76nzdfX_;rAz=YxzAjcVBh&TrYPF@4Kh);kN4Uk@jcu*Us%+u66Ib zX9#Jx&pmiHbl?isLmRqR*2pnzr@%UO6*2xgZuad6qtn+N-W2^6Z8m+yhO9@zWu$+< zCavgI(pXb|;_P(NPvr6L_N$3c?*KmZcOUY!*ygb5LCccxwVx6anZ}FVv>1Lk6Fe@y zkl{7tzeL-2@K2i^v?J{w!Dgoq*^su=MZ6{2Ja#2>>Z(n{A9A)IpUC#5zV45gb52d0 z5?OXcEByex6Lzu&zl`5OkKJ`bsO&!Oeg+S9p2s|n9$(iYHfXQr4YPOFJji|mhqQxx z#1>lfj#k`U*63i^Mi~?7kxO)nXI7i1WvdLyR>UX5Pg{whFj*z|UUz zpfA|Dc~Ma3KA{|JeihjDa)`-39h=`O)@BQQ>~w5?-YhME-S25h6PsW7g9X9V+qC;? zoatM$!&+(kS&T>G4IYTWb0E1jhrL7UEd$ zBhP}3{<2nj%vv+_WheD50oMpUd8Vfy>2;0Zn|u>4*h_)S__|vBT?8)h+o|G*-NyQM zIHuIS+ypPndiJ~lzNPM>ccR-mSbHg~`%c!IhkF{_|LOBqa7Jl^GadVkp|5ZG_W51! zL9=9?Rw#Y-*t!hb?BJXB#lG%iJGCA8T6(0S6~3f|^}2wwh%0Z~9=<~6SyS=IWWBjt zSc`@5d+7i39qExa@ReEz%e3z5-Pjdx^W7`!eBTpBx${?MZkPI{?%F?+M%|v3=c{^k z_>VBS!C1@b5%-hET5g;=&ajbSe;3<`*!F$c^N_DrAfJ?uWiHO{if(IX{2lB^Y!2Pf zoTr`d`|kBP98Xt0_}hi;l!ldSbh z|8~+2=Lhq>Uhu|h)_gm#*#XSNAHWA)6x)2(B-+O|pU%1>MrXu}o#P{Oj$iurH*w{P z&GA*{91E@2N2k@fv1=Ez@5R<3cj*f3{X4a7M=ysb{`T2jKclT9=9tnueBM>q$XCA` zRqJH|brGO=Lb_qYXsSFsCEzh_?yc`cd)eGqxu!(Q4@XOHp}ag7qkoTVSrkMU-6Xbg zPsMlUh(4ToT_O0_%N`TkX2&S*i88;b!1gcePNyt--zLk>-S~EN)>6u}k!RTKri99l zM%P((g{o$)wCb(o*;mDt`7o|b`N8Dbmzr(0V&jlKCi~0Ymfk@uRI?9a`)uiq=8D}T zY#WP=Px6$0AGyFwf7Q4W*!Nq)$>*GHwkfuFFMaKxeu0PB*c-r;VjmUThL>_ypCqph zo4e#K!6qSXR`721P4e5Zw@_K z^r4jLZ_KT%%Ynx1X-}U00Xl7IqZOOG2Ye#<=k9Bcu9N*E`y-3-UO*eNMuf+()`_() zT3-goy_!7x0QEG!8lAO|fB&n|+&2CNXAArVHoIPlmcB$<$EJ&dnYX3i=hpPCOCJRv zLPu3>+DCvda$nZ37$-Dz-$GeK<3rjAt?r)OqwD@G^{MfHJV$Rf^!jdee&{S$G`s-( zZ8{o!o4RF>d;brU*+#hVP=T6F8IzPRiwx5 zx2E>Ot((@xaI15@QEpZbZly1hrf}=51h_Rd()tqvx7K9$k6V|V+84KukHf9cISt&( zejhY${nPTn;npQt25wCSx9)TqxYeTNSKs>0E;}7}{=}f;25ud%a4UPR7jCWjfq`3# zZtaa*Q(x?jTi^Myfm>58+&cQ?9^6_R=g)Ni;pn!N>=iryYyK#P{~CaE`Jv?5U#HAm z?8tT;(g03X{ugfSdJq(!p5U7A|Q(Ze2v4-~u1dwXCUld{fmKEiIsog#&(f5_Am3PcHi(X8Ae`d| z&x%c1zR|$5XPD0o;F((bXveu4v`Jvn3_hJ|mJ{5HqB7O$!*_=D?SmV=&_I1C!oNvy z>&xxYZPE|u?%-(PP%YQNcOTuW z^i=R(=tzEe34T2VjwI49!0%}Y?}fZOd7sC-i+6mYTsrUgM7i7#gIjYus8`J|I8|_~ z>hG%teX-Vpv?XO~UWv|nkurkAr*I#Hg~P>XY&!k!4~N&{m(=)D^6WoZ^}iIOUq#g0 zg3VZL%F?zMTr2A$zU{^rqq)DK%z1x{ZnNe_%87rNj6rvZU3e(tT!^1jGUJ~Aa2Bu- z|FCReQ2;EmfQ9&nWdn->6Bf!p3|Oe~;or28Hj4P)!2guziM4B^F{}R?E&U1U28~I* z&jF3ucQb2BXbkqA@J&Kv(jyy5i_w@gMPuGS`{=qm`PQN_;k$a%m~wof6496r{F=VQ zcZq0>o4o&&JZOxcXN$(TcorIi?5f(cXw1QfP5!;c7RRmr*~hbc8EXz4WAW&1*bJmD z;opVE*y-^3T`?H>zND4<-b|i7jWTngAF5sW?SCdNuWgUva{vBlu5OOQ4Q{>xnBCuI z(4tywErXHA&}HR*2>zH0Ei(E4dXeAkbFBPa2atI@uO-iZgF57!R+FX(EdjUJTQZ#v zPyY&Kgr?l_#TZQyS!V`gu+bFNz9kp9p&1_hX#c{utUr}^qUnJLnj^lpQm@r#ixw8W z5X}`|Tb+OLTY4F~WTzDc$Oc$J648oQ{At%n9<;(kIg3{8Azf(2P14@&3xXQDBwcfC&HfMi zs`PB`hzH+n(SM8nso-*+KgXE__+$sN(>_;0up?jFaXx)k`b~6&;(yU{P4eujkErtw z-;S0`lFt!6aOZ51#pG`B4eN;?f4Bgd$vacaJ$N?fR46MtushMo?Lbda;Yxq%*U8$` z9n&TDid_$tUU%-#4LTOS%%Ef8FC?a8wW5bYR%$(O09i@=CeeW?T~s#b=1h6Xdp6_5 zzA3s>Z6)#&dQ`hEio-mm9b+tARBEKzri;q{T#S}gpJ|j+w2b=mHTolI)a_Y`yhOc9 z7j>GYi$b0vKc1HT89kEdqMF&iqKk558)rk@=%Pe7E&B)FF688F$gKIk?WI49uKP3l zNAyRTrv7M2W{m!9K*p&>uX)teA65fwIRTbS)JGx8h)8o|h0Qn~EsjplT(;dajH|g(1x7|hA7+y^e)qEJk zs|{zNzkD}&_8Q8pa-~PA&`)_k&pfd|^@`iLpMHVT(Ke%h`Zi_GM?d+Rb8=+&9N7rUkYq`t${-@UWc~%=Y^|aCOcC>T}Wo|=Gk~W;QVf5oB zL!Sff5?bMa{z$uC-mQKrc?+Lfk(DIR$8(AK+(!A1bBz8<|D>!&U!^XgW%H#?xv!P+ zNW0c}oHJ!SH_egyWK7Hv^q24ZId9U4oHWyHvlx12^=$!r%?|%NK8V4;3K_lajpW&e ztb|S#S?M;){}dV_eJPwFx_U!8y~r(6ugEPTzqsk2%+o(Aw^X#*Xx+YOZWP@0 zQ+#06Tzd@IS#Xj52wVgvwa8%u!9>Rg_aJq>@|rQH+0p+sNhrEbw* zwsK}eM^E)K-{1O@l2QICG%5V|Xs#hEv8H0OlA@;qTh%{PR;uBDJN>yv{A}r`tf6+k zd6cw{O$*SI88Xancs0TGBEz%@kK>pUDL}^}czz%FyxnEUFi)I$bln4dYry2#oR-si z)1`)ICUj2ygdeJ2_ulVU`>3>O{=*f5%-L%q^@ho(ynmnNo0_%~iHBS}x zp-lX1%CsFB;KLTNcXM7+=X|7_bCGhEAndAHAI5I^*Dm8*xhte2nL1`-@1D&$K+b+d zT{?HQ#?BUh#JS^-Z!F+k?UO1FANQe%4ZS`G8+!ZZk-_kOSD;lx7yZcWKQy@ln&)%$DKyYlT#4ZUQQ*OCG+SkLO)^w4v?%BF|*TJNf^^w6Jq z$B&|3s~Q&Akgxi%SA2$_G|JT%W)4$rw!6|pyLzRiEB}YzS!tTwvo1an?$A@Vw401N z>kHeY9`Vmh4|Q8EUtf`?t*vbfO&a%A=JgSUu_7=8@ zPw*7rGdXmfk#?vMUlA*9sa38@d?NMGm;1CeCA7I$-NXr?-1uH;<5k*dBW-VC!>~ZP z)mF2#CHa#>3$41VBnG;XR%oS_%RHxsG^<{GldUp&RvG-0t+ZKI{aUR48AclGOvY@~ zpJSC%W0tiwIdrO3PQk`V%OtH0epA7nn0sHf`l05)h`%`9_)g7>z~HaEvlr|2U2f&y z5}r1S^Sx?6)@Nxc^dSimcyusahy4q`_i&x^U3-juaY%fgU*vmuReYqH^AfH<@qISe z&1TB>@Ar}XwEyQZzmGEI_c1J@{62=^3*yJG30^MhN*)mZEZ4!E_;{5^p;??a#s2vX z@dpwAkN3rQ2458A12PZ43)2Tgd{$e&VVrGm<-g^of*s1|VCRN-q;?9gV**$wft$$+oq-|(yGN}la;Xp43JTj9?i zh5u}H!khK@G>i-7d_TIb5nFNRNbzYf&((W5OAg<;`R9x=WkFsI-?p42{GM^1HoQ>V z(Eu;K5q`ZJIU_uccCiHutlq8&S5zH4H{ zjh}><^UrejU9Y%hj>L!XVjo^)^M?rc;}6l;xganku zAL17H$&|{eq~$1oh?L3}{2}c9Dcm3HPYusjf21#Y$c*;>G!4)n@rkha=MvyA{SluC z=}(sOiMU1iM0oK7@gf7wW*uLNPlUZcyP1z3_~0M$dlNp=pPfDO&bZLsJ$*5KBCavk zoA^Z7`|&^cW_TD!$3oV+Lpw*o2syTcK6xv;=Hw4?%sd0zij)4fBO^puhZXcq_8am} zX$Ag6Iq;C3>{)9Kh1oaoENLy+uJ1_FQkOF}{5u27-CDQ!=;UyhQ+!!JwwCWuR$$Qq zf7AxQ;=u3dn~liE%UDydY1_nC5xe!aAbUxCG(ya?-AAJg-q`ymLpJu`YWQf#zN@f& zG=M>nZ#FK*M`M-Yqfv`*MPmv3Y=PmU(HQTe@!!PDD755an~%mk*4WONT)c0WQBHg` zq<-*^}a< z(E;oy4S_~Yr|;C?@;hyt>`}jIM-+T1V@iL;Zbuv!dWE_~$16S>TO~HaWto9C;hX!3 zjew8FHu2HmeuYpQYe-^&JbWZ3>-n0|VPZ?Xkun;#L<>)eJX*#2Re|@_jka9js@m&qJF6mvYmdScP1iWtQ{u{1b42)rSW3!SQ{-za6=> z|32v06D6KP752oig0~*2K$ewyta=5eGM<<&;}#{Cx|6ls30P-#jU_Y z$>w~oWOM3t0}t`b>jaN{Hu+p^kz!X&ez;iK6i@g72Fn#JiqH}7 zH1mS!W2J3buj1=t^+C0doctK&euBNvYD3Bzwnf)xv@MD)(twAw5$3Gv{j|}@|9bw* z<(wjnJ*7tX1fG(a%ICPm8SPzfpWwI1ehkv-qyOcKXqExASdm zY#np-rrvUSGdkX0w#AXAT>h76>CJrGOD;F_ivK5C`gO@eE^pyke6mF@U&gb@}V`XCrl5K7yY_e=e;b1pUEQJQ(_OK6Uk?KQl9WY>e?ff))<*p{Ko>{cXJm z(Q^(4rxlOUaw`Ncn6$?YJ(6`8zpsn%7Ze+#(6@b*6&iQ>;TVna-HAUlJeSxQ?PVgi zGFlC520C=Ht)Io%2BkdXUdrR==wD;cIhyUwYi!j=cfAF%S$m z#|ka%9|n!s6g#QIS~Fhg*)-^@(2kqAcgLa~s~OiE`lMi!fOdG%*A~5!Jo|6dWznA& z=+?8mTX?zPq` z_SnkCDIJ;E%Ff4DR*QdxWh=9MtqU@G<597d^~c8_zvq+jXw8>nc=Qq0Wjr5m*vrO+ zBGe`JvK~HuSH^&ReDjg$wmQn&`S{-+is3kIsaD#6&8(U-ZTM^0_nzPoS?hv(g7B^b z@t`$_lFwN|9r8^kGI6c=Ybe|jz8W3y+=5^IuSatynqzT;ztE$lf=hdN{??=( z`ncEdrBBTBS0rh}56_tJ<;n^B}(4E!f2NQwEx+@}!;<$yc|$6wQ5#`lVj0Z=JjcYRM8_<1 zVaNj$>;8AML3@Cw(nom~8?*<#&eNiIl=z;W3ZFNOKI~C+YYFvF*}m?Nl>UiWW@j-U z_)dtPS6lh*?Tx32?$dTgXeM)rF4yoeOpBDGLse&lME^8BMr-z+VU#;p^iR~EucbxY zXOgD;GR{@?#`I5Vkw*M8YO!w%ttm>Ne`+vkP1Y$|=>+EJacGUDe?k}3jlQ+#jL>gP zAHy&{hEem3P?$491M&Z%1ZRZo`lkkTi|ULJv`*rnN&H)j#-y3LqAYZ(!Y3`hJG$;6 z@+Br2x}v?68&B@x)zMM*I?po)pNxAc+rDN&P~tnEV#Ar4z$5cW^6Wdw$F9meOpG+( zlTjuBxN^nQMHZfx12RG;NEt(Y5Wvo>4esHXo zEBdG(3w=>_=n*ID!Dwq`Pg_;cmakCm3qp6ya+~O@RZi(@Oggg!nql?5wTI3a{Bi;B zm)piBv_|w%R(T)qt>zdM&j|gh8f)_3&@b`TxCLL0_ALv7*7#)HoA4{}RIEgIJyG%f z6^ic{-FjlaUpIXSl_imQ>rPy9bJ$$2i4P9 zH}t~`58sE@L6_Y0Q|9p>)d_i(&xS$gYVcJ&20q)4--y)@C+oHst)fo?BgLEOLaPRV z4>Caq^}X*7Pxa zMsP3dNQZt{^C)$nNIDkAk5GIythoxxnIYP+`Yv;z`v13RuFxJo|3Bw{4t|FMC&e@I zjrbfkRuj+Qwls9)+Eyp}O|gH79!VdL|IV|~ZP%GNTE|||cye#L)dt-Wy0r;>QV1-{ zh<98I{RvR7&@4$`YNog1M_4E6;!{YORbz?2Nt(zYt4I%XRv%tuui-;63?B+-AgB?S zRQXWgA92Ki55)-ap=eS*6gT(yP&64n6goZ>_(x2|zhYHNkTd4pE6-8(_@+X9D1Kx; zn|=`Y8t?Un4@G+D9_wBCP^5?Mw94Z{afkJ+zD*0QvC1l+iL}rv>s@`D7P{5;ehbe& ziAzy6EO6oMqw5MK27~f*5c_pn=mu-2%}6} ze`S=Pg;C~jlu=_<<1qY3&a7Z&e!;Lt*>(X4-zzikQck|H5$PzfeG0R=M~uxKOW+ z2!<=Q?(LKfSN8ZXsF-a*+6i9=jxzig`mPVSCVUeF_q#pp5&Xh#l z;*P7724B!kpQT)eu64IhrETp063@l$b>A0WIqjQAzPiK8+i=;02%@F?vuuTNm>2^W2G&Yuf!NqWUO z+~1($sc0d8q1L^sMDU^ZSotPL;PpGB>nh;qg+5JiR6T=H?%j#>H6J*6+}e&M*i8JN zr#xlE*1Mc%vGtC3`*!4O<0G};{z=T2#2oTd#*425cXx#J(fIaK2l8NGJoQxY-4*bs zQlEU+iaycL9JXW=>mI&VY<-2YKA68-(aWTbm{jLq;Oo9-tS|3N6Nuwr+SJRloq@WU zjvx3J`MQ@;w?1TYUAjZdn=(YpTgJGGXhX+`zuNWE((gR+RIPouB+_AAhHT;_F~q-BGyAOzJ*2H*<`IFf@+|RZ{InzW`>AvHw4>`BGCtZ@X|!k0{|))XFnanp zakq5M$K5TCP{wNF2e41eiEq6TSv>1KZ{Rp_kA#-HM&KtxJkN41Gfu^S9C!=Qtf7ApK4S^*5`(e!!h05H(vOT<^vzQCr$(%Tj1`U*1-z>=b#;p; zP{w$^XK||aeBs)~qj|1LnloGaHc#q4=1^_8GpiP7(=X(s9UbRsE5j}=?{w?Cr|w?t zvYsPr7cZjRqH88zj{ngPbjK?@DX$Zw2>h7WaicF!c#)LvIW8NvTDz=_7z#N&`)Agq zO*h~1Z_4w}tWCquCr|D!agXrb8{)3yMXRR=^keg%6+TdSP;a_^`JL3|DbRCjhyB-L zx5J$ydojN4BJTbwB)x5(tXnNGvH|%QAE+9q_E>mJL2w`G=>j2?Q}ksS#7v_J?Pcbq;1 zyQAEb=?N%*uBnc|YRYCcpTS+5&fsR+TgE+?PtxZn>+=E~jPnli-#l;z>sSwEQ}?x` zy>+%D*fCuTUWhNs@u{pW`Xh1tqI-;crc&vPb#J(;|K-yHyZJ8uo+*|0o_V*hCNT!N zzf10|q%1gE-EDm#@ZBhPTUX7MJ64<4Hl3}??O&z^ob+cN`5h}v)mX~ss=j;KmjYM0e?{(^UaIa2L?1krwY51GWAL|Pb4|wXwCtaI z*R&eb0QXDo61+0V7=sdL?BG=GSY&I`*E%*2`P%W>f-94Q^N3km0?xWrbJcm7XJm-b zbpAVCC*=%fe`YvFMFiIjALpA>NsQM!holU{7PxJ=Q-5j$@wIA^PqBrl|i(EBaJG_s!7SpGLn(oo(x(@gj}~Hl5|=Aa>d$bTQQ0w7%WFdy zS3`d?9Ii+`InRr@GJ5A=j1y_Ru*gSI#2a~r8SRmlw|GlU91x?XBFqt zZmg^SmtWKefjrVWSXKdyF_x!)MWz>zYZW%SBmjC_wpr>X$T5@^D<0UeeqiCb>LGo`=!Zt#IO?HM zGtPP_^TwGEWzHDO|0w?7o&W9)N9G^7;qd&!HyoOO=!OOK_0*FeELlcho%DSd>%5S@ zEu+8rPFFP=VuaY*e`#4?|TS@*PQ$ zvsSNN|A6p0)!$oRp^bT}x@f_%GUUKZt83Svdduy&Nh*U|zTz|9`uek!rBC6@jLtRE>a z-)(>%An%kur1@4(bNE)irX^SI;{8D#-kmtZYjy4EBxK$Pz>!`DcTs8XO7XKFHKt~L zHZ(+dPg#eDfRW32-Oo<~>)U0<+X(;hc z*;FF2C@HhoyD>M=vH60pMYhg|?)kb8PW2sg-jy8GMrjYbk{l0@%+$JvXFBpmoZ`rH zd$jJ8${l&buXW_5oIc#Ee>}7&24*&bcp-d`@Cfb1;CyDL()+}C!pzAAPgp)BAbh9r zgx}(vu97{Pr}TXH1mCH&Ozy5m-y(JG?5{2@R@V~hQoP97+-pw#(P3Km+r*AXRzIX~ zboTJEI(%3bX<5zZ1%xk-nmq08w4uh3X^p`hdW^K=BPVx#be#j)*@^7zLUv9HrgAQ! zbf~s%9C2(#KF=k-=uPMmL^4>f?%JSa(zwenqW)k*ngvBI8OAFc&(hYzDm>$`Ux&ONc;l2eB>CpzCX(8oDP?A_q#k~b#YFlUpu@#g*) zUyq!h3LSVk-}!sbng_{Y=vW_OP07B2z2Gg`E7r1Z=3QX?0v=OZMZXR$oloD38AFjj z({#OY>=v*8RQ%=rec3vTbMRgCx#Z*jm&RRlmT~{%|H8Q2KV{ql#g09pY{zXUS3A*@ z(2c*!r@cO>YW8-l^!QIe|4#A~&bUUJqk?}h{6`%V*5y{;d%}1$*TS8YF7rSa zv?SA?IZC(`ct8FQx7qnFwyXV_k7iyJgciIUZ|u(nPeP*>G#gvKcu}r7Vclxy+Ku8% zg{*g%@rCn(!;INK$R-c4V^Z_k+GvG#z7Gx|Z|+GkQ+n%=p|&_W-?i{>R7taoI$bBn zZ<^(FHScni^(#j;xoJvwHQd}^SHyZ_>?X2LVm52=ByndMo(|!!^6Tzu$k^_V%wIQj zQ+R8gDNC6{OG|+3mB9B3;Cwmoo{wFk*dNL+x{Z18UHXh8Ij8#g92e&(WI8=3jV(4D zT);qmn|QK#Z%*~q`BHo+ZWrd(mCA^LBjyi%s|dgzq{d__eI# z8?^TifB&{j%4xm72;R@)+TLfGV$sAK`0lXy;+iYlLy6w!dmb-o4?qw9yy1%W;AZR! z@n(BqSwlf!ljr20(~S0>(T?^%?|r!7KlZLE*thK41wG3iD(GHD&gFI9_HO#PFQKzA zgzsSix>)a9m-mN$Y1W9|bx&Vc(4E>@D0#&-hmC}4JPompWpF1yq4#BcI)flHubGyUSDP(`^nY6g8rQ;V+=I9 z_T*K*jAw7~?9~FpHJs~zF4#f5k!d)&eyzZyZNnAEbtlie zcy4gLgYRD{a2O`nI}5CS?YO|F@q6f-`ZSAiX*}xFNcvPxoI(_CsgW^RRz4bh^`cibhPxc&ZUjEhNpM!jA%?q;j|KJ<+*3)B1 zyWaGxEvwwqQ+?yd;9D~43U}da*?o~^%irT7f4Iv`X;xok_xtXRhW|VGzUr2XmMCYz znX==_)vsFg#6ZS2fkg-SZE&`i2_C+{bs~MU-Z9_L>z%%13_s^ux{-BHU!UbZ6F-C2 z5q(0ANNekVEy8cXd0U21j+xZ9Y2QAzVLW9&yx8`s$u5hHf4%JI!N{{Tt`+7^-E?;ZA+qlec#0QZ&P1%{aal{09be-S5JF?Ds z_RZb)Ig4iX;NIr0n~J%!$L61_)#EQ{D;b6l(u z=vgZqs5lz&|I)uCHF#k^1t^XB|?H>RPD!@GZH#oGAn@xGECz zqP{2WIe7`DF)r6k$jil#xxlDi>`AHUiemz6H+-R$FM|ply+e?wPqn!XVx2vG%4|Rn)8(_z{*9+c*wX{kQv5v{VHXV9U4=( z=6r~xf982=dm!mGo^vKdV-nAI@+`T%9=y?*z7fw@U-RZG4@?*QSU6beFv8mNGm|me zI-q@?N(wMM1nvgn=eGwX4~@RO{Vyvd`xLhaDbs~NcPGBz9r%Ge@$vpgH87I5(8|yra;7`zDf9vuq zuV6QQ7F`q1*?->g4KsNrya`O~EL5zQ@Fv%M@cDAeR*u3aPrnqC7FcsbyS~%=$|**E z4(DE#Klw;O;18XJ6;D1|P=DaJ1?5jZR#4IKctK#zb?t&d`IAir6;C2>t+~Fv{K<7( zH*cc^PZI!u7*kui^R{uIsqQ$GxVM>jthH3$*9dmcx?T&I8}9vti24JQqfI zCR!t0)0(>5!M=LzdGLhNyWaKqH%x)f!WWJ<7`}JVb>D$61RKiwo3ObA`1Yq6$2Wv& zr;_WLZ+iUmTn0XVcV8E4C7Ex387aSt^6M!tnYc1izML`}BIWP4;yRMszQetXJ_!cV zvtLeec1-l#7|}4r3A~V++#K4AOi9lE!~bUZ756egPK({pa?O$K3XgCej=pu!|GV%@ zRT2lWjecm%t`ze4XBp(>O=(*+^5*_p`fSi=Pkm>>V*GYGx2eob?aPACs7zpVT_OIi zaAJK1HX!8h(Vc~fZutMOhJtQvOOn+&o9d0^lb7%1ysEwmcz!wX+!h(X>d^S#W}I6h z<8NX7*Tuk3{Sxdv>{ZbihK~PB14gpuN;bQ7b4+w*Vpu3Y(5N$ihNGXvqo=sgb=>|E z;R~NHIq{vxsd$o;w6Q4}-H+F4v|U zPXgykWwhnjxqXFo#0(I>3)# zu>ZH-aNA|x@KfNi_7nF`rTiruH_qdF%j;%1r+(wc0phu~{MHPc7r+yNx9XFwrTDoo zfBX0bwX$TmD4dmziM~IYD+2#~-!5^$-hr#}js$j<({CL#(ft z#v5A?F+Z}!xttT4gX9`PZb&}vOwGfF75)KnJV%@p^WbNB8T7q8jd=Dn&zwWdt=e&C zdGhBCV=p7mXE1K%1Zz$3;wMkfv+}R7|8~o8Z`hUjGsP=)sLVXmxbqNpyS4P~bomsc z^d<4_c;o84$?@0ZrW@m`r|bq6-#XBCO93J^4+2Rm=XSDq__ID>typWzPVD;3>CMEM^$@!pA||nx>n-T5 zeup>w0(hi*m1}Xhd=EZ!oLoWPu<)`nd(@^X@F!4g`dWF1e3Q4&IU(=Q;FIL@j2q0{ zN#uU>Cz#>i)L_fI#$)A>>&DM0JhA4Bah#qn=0voinE6ud!O;22X1-$EQadli)C=t| z<(#NI_3do9?PVXaXq|9heT~+&&zY9D;9D{MgKnt~(I!Tugl-}CD$hOMx`G8MMn?(n6nmv_gTOcEL&HChGb2Xu zOmtp!-)QYB)czwk-x~FG1@fop`x4bnUYN^vd}8fL|PX7g-Cc`h;*yaxWFx&{V@`-9|jDwvNRS@vuCYr@|ge%IT!j>LN0 zTK=vl{O!s3t>CB077tDCt7G1+chJfQd3Sf4{ zovhDI^eL(@2(M++{T|P>F08f1x;VX-;*0wqpA@sUxYyb`XYRh@X?rZ0t$3tQ@vl19 zQu1tn<8WV?XLmu{kJJ_+uYCO0d(d3)tJJsyyZA4?VeF8Fp?^bWM|Z12cUwlRQGjyY zlyl6iTXy%v;~S0^Px58$9PX3;7uYe}_YXV^@T{Bf^v$i@hd0j;2RF$B&em;`aSaWqvtdxy$MQ zB%f>S%&jg&w!-*)r9&=_Tq>`6v&@e%^8H zJ8@yPtNH>lbxB^;^8j_NiK(lEdP1wtoBk5{`Cf+q53MWOH}(BD=csShS?aUuLN0h= zwBlxv5$M|y`gZJB2_2F#)IZgE4E^kdNWG_FOdoHKsdHCkk3&Y4nX7uXB;lt8K0)d` z@^V5)09@#%Og1#w&-P{ZC@wlNV+1eFid3M&1u&-?Mk$ zde0p9u$K3+CSJoHd%AvPG0jysb1C{=6@l+sY(hcGsH|BZ?_2#g_F-%R#-$B~=In+- z16zPGm+N`DzPjDW=6b5Gm$e(yxV~7|OWTbkuG4h=<#uBt*BQFLs@-sM9k1&p?M5Qk zqZlG4z8%xdH_aT|K@=h_#pd5pD$t!M#rUGiYoV2tK1~tiPeMU5Apn` z%uV-e^TX?V+`cH!E8cM?&kOLr`;GbGdumT@&{__%mP3@y^NsT5{$iA`oAp?S?$?Cg z7vx)TWPb^{hC{4T?1UZjfM@WR2^|(pm%Ds72&Sy9Zq`^7)>>Pe^qe)?&038<53ok> z)bn5Qe5d_fc&s@w>fOG_cz1|-J3etihjjMC84Eg2Fo)d@F5fZQcU;Q;ya_f9*?p3| zpU@@Af(G(zd4qIp{1trj6~4KDrRj&yg;#&Y%vCJ?;p>V!PW;>(KE`;1W%Df=A+Tb8 zxELA~Y%czU929uGI9#B2m#Ux1eJ$|YL$g``bLWSjiqP!wD+XmDS43wwoSyJSqHEB5 zm5tKuT-7x%a$h_@d;#}b^E()a`l_+0ud?F|6i>sZeC}M$(RmZ?j?R^2Wt)~y@|6Qe z**fl`jn3Rp*S$-Uoy}35`wU$hom~32{H#&ETQYgz{r|l>_p18OuX8{7$Y<5LlTPd0 z2mdeW+;4mio%{9wLpt|o>63Ks*Z+T_bN_OP&fQw~Idtx;26gU_?q<#ZZ_v5_7*p@r zbnaN(9@M#$KB05pdQVLM&d|A&ES=k`C)?{^4{a5lJ*{)I_u{NNH_tzzbMx%9&VAKs zo%^}dIydjn(7Cz)oI3XtMd;j1*#m~o{X|ixt#dEpzK*=0(z$nHD3;Fs3jafO?hm5n z(7C_FH9Gg3Md;jfxkg8O^DH{|o9EKG%RKVkX7r!miY?Wd(RM1{Ysufg+-xNGpflo6 zx6V^<{QjBussD}r5l-oycHB+Q`9%iV6kntlrE@Pom0f> zXg{ZPg&^>^+6>xlYHv>t_I(52{LpW)JG5Ef{!_ZIh`RpNcq&c0YIN^aH8ykhUcLE< z>GEC0zW8>|7Vxw0stupE_Fk{5iTE01teIPksY{G`?>bta_ z{UE~~`x{ut^Wx0?Jx=@zV~BB|x_QDYjl>)qC&mUA;HQ zX>3F0dqOclvS%x%<0$ic%Xn;8*gh14r5K5U;pTqe|vCR@m%`!YmCRTQ=vEio;m&=J_G5}8ThUY>T~0R zSceVFWdHM);VI3XdG1XPa+U8+g9kWLn=>f4rnJ$gd_sXI(;f(~qhPV8K9*n5Vt zcQJL(KJ;m9jL%hpXU4ZX3v>7{dpmx==1??2V-E?Ajib>6SgXZm{voap^OL{9eL>R% z?0Gf8@9?{ZSe{J$P}Sh*G&4WY*jO;|tdSqO#mo<`U=QmGGk+K{bw>|+!~I9Gb0brR zk9)&SPkXl?+qX2oci_sJ0eqFm-(Q*^oa^Z5T^(1`E%|$HQAcR?{2KO#cCZh!=3e^v zW9fd4*p;FElBo^+dq?)Ue6_&g@GV}-+hzLSAMSs7xN+yPeP;gg_vyzo@!LZKM$J)d zkR$MgrMQim8jF0vj@fm~T8a$c?bIPS82S9f+ebT(KF0SMz#uyUgQ?!|E?{uHctL*e z&*xh(ICkZN{NSa)pgOKb`a_ViN7Uve#K7z@&<_pYeA*SC3SL^ock^p9=_`Jku)#Qv zXOGE0Hg!yX)6VI#Bt43q!A27p5kDFFZ)Kio^n)N%0jkhHiX7 zJ;lTiMEd^6r#@fbTV)5Ne)6i%ftwb z_J)rndBcaFDajX%vo!BfSX?*=3-esCnEu&daV_OD@tIolN*Tf8gVYEtc8v9@ZT0_2 z`py1f@X%9p7qMV>7ZFcA#oS(X5qNn8c)v6C6S~nUonsS!g+au~_%O z{$lP=$A8iOH10Da@n4pT

PKU*1WT}eD0IF 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�H{Zl_&*c6-Sn{cdGbk9JPn} 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�Z#=&z+WaCoH0xP0G0U8|$J?m) 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 gq*i2-LEd{-IybE64&L#r+A6GA74v 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%0DNHMEcEbA9EO<@N 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

jd(wguVLk8?E=$JK8javNOy`Zx+AG6r>NKimZ$ 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 H1PlKMVkCB| diff --git a/bin/cedar-detect-server-arm64 b/bin/cedar-detect-server-arm64 deleted file mode 100755 index ea792437fc416cd79020e017078dd42cad04bd35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2670760 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 z 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

  • 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
    X0~;+$P|IeiVGi# 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

    <9t1}Y#>awG??%CugE8KUO<5$q z#CJ{+dJ&bk{!j4rJ#g0x+{u|X?t;c?G-h?&J)SoPiVG99~x>_;!-+-YfGxE zFmRm4eOuFFQ!1U{$`RYIQtt9lxYy@$;5!Yj*NUwmbDC& zNtN;B`T0DB`yjtQ^d)JFMeoh|kDe>D+Cs*?D0QXS#@QYoKhvUUuF{h6zoy(j!_$9_ z4Q(;=$OG`z={#RTH*-aA!aN}IaFDrI_?y`4%A6{EvB_$0=kpox`O)y*Bm>_v-*k26 z@!e;`_`b{F^9KkEA89hiBWEXD0`L!W{`kJ-`i*jrgLibF+wT;7(GQ}(LcSWmN5U@>bbgW05@q_bZ{_YY(zkvk`{o_= zCj76L&>VB8N7}_4{HV0+0yNlpE?R5A9?UW3BJ!;yPM<5FY3ol)@@k~K{aNiiEHIdH zAN$kVz-n7fQvVCHfWDEp~d0CZapEP zGMV$_ZMIRq8st4IHuDyjqLu>ZPUhQF@VFB*U7DnC`T_I74Cu9cNuC=%qI3h^-KE&n z^4`Nck@x=6O#4;zS*1-=6vD_kN)+#HyzRVqmS*bp+~?S6skW%|si%f|f-|{4lQ~0p zo=sY;@|E z$4)_iC!xR8mD#n`tFNm~w@hghdy>?ZF2c^*w9>5F&E?nDR_E9bhR?<(`bM6!pzld& z**r)on7|ZV$h(I7bEM8X=xwv@-dfRVHNtmm%JbV6a26+{F$G-%GUI-1+TOJ2@THQr zv42VCI^-Jh>FOb!opfu27D?Acy7ckZ9yN)admbOtLu9b@n6RyA$d-OV{}N(TzGKln z-kn44_TtY}t0}(An=!s$u8e`^g>f5CgR|2jKQYHN!(T$oC85POZ2|PFa1X?1wc@Y8 zMFMJ?US`FML(*@ew{~N556V z7<`v_@!=jEWsDW($G0Ud^_-&aIh1z>xNf8j(Mj$RS(Ld6nLbbE^p9?~RFztX4J;fO zle>d*e!SJ?P3dc|tSeL0HT*MW@>BT5A3**#+SN9n`L&q#GG`8A9a2qsV*i{Jo!u7X z-x$u-Oa7(g7d-4d8$wp;@4ItVR$D8u?6D4LQCMf(W7LHo{ezPJHqxJg&wdUZebJ#N zqwlD{RQ3q)=fK&I8vODrjIC78!_-5AHPB!UG*|%*%Gr@1bm)N&gV13*beO74J)LzW zb0cltbAL^}=*;&*AA6j(ziu1sT8dAY7hLo~&0w)vi|h_ zCrypjqo*mQ%~Fn}nRh^`8ciL~0Jrdm@Eo4xD_a&*RSX>-e={sU$$V;s_pG5z!F{GG zbeHJ+&*P!>$ft?vBA1-HID94mJchurjKh$~CeYGU>JWU2Ocz?sKk+rnxqwv81uW)Y zYtaB_>tder0nX5j9!py{^8GZ=Zo=~kH}HLgrOBAml_K2H(h z-GrC%UCFbN@CSsq@x7m?fpBXN{air0oC|0HX2XAif=&Dk+E*PHmOsQseiC><*P7V$ zd}#eJ-Xa^wxWATo&YtS$as+RRGXL?^0sV3VjNi@WOKTbH@QHhQTX-+yZLRggcX!!- zf(dPEfHqx!tY-1^Bg$bO4*=-(VI8M#5|fiq-B z-APJ8l3P)4eMo2|$#(|Y(rs88_GUJIuoqq)T^snA?@#1ArZ%vj?>FU}`Rf4R@5(o4 zF1GQ#Q@%NOv77Hb^3BnuU<+xOh*=rrPd?mF~>2M4|O$%I2co@YF%bn z*MUsZpMFHHQ%Xz6Bm1dq@L{Oix($mLyTGsQH(*N)Uc_!#^n`ZHsIWg;a3*V3eZ10U znHQRv7xcZQ63(oGuh6QPsv>YuCigwNocj7&|E_i#>wqNRJNJg~*;as82 z;$^M8;Wb6KA^JOYNP1|kW8PrD+?+RLANwKF&ZOK1Bdv`6I_P`nJmCdNzFU8-pwsK? z6QAOdcs}?vbPo+FX%=-8X{J-gKFY8dFp4fPTW<*)kMU7McfGDwiYTn# zsk(%?`;0i*OVrDUZ#-jDs^o6(yNrKl8K=u+ok6~30uyCk1x&(^-hNck=|s}=Q4&w4}FVK#tuDyvagu@GEU95{O}p}B1!)oz6yn2`}68MG0{hMeYI$4Wq37 zoPWuWcZQ0H=YHPM@?PZY?G?KZe8Q}I;3#}CHcAWGqO|VRxf%V<-Nc_doTADde?52} zBCYt?4t-$NfJKx2szw`pdXPOgz4t|xeQ#8}>Bz}))+M+oOKV!3rPWzE`)4c5tSj3$ zK2Thm`OoE9+Lx7CTJu9$+82*xXzxO;OxjgvL1N|ygy>0TnpuP zqug%J=GN){x3@&^YHqo4>Dz~+@6qng(k5^>a2n@50`%e599xyZ`VM1VFBgBXX1Pbn zdyu?G$$NBB%u=)dZ>#Ub-Hi7|9rG*mDEz{ve$XFYu$c8De6WT&vo5YKQ$ePw>%kj& zrmhcf@KX@{*s9Zv(BO`F(Q0s~e&%y~U^nNP$lq3!&Cwqv zkv*Y2>HBKVT?RkS)@t-K*{NY%PcO;4hqS@@*?z~eL4BI?C%s!5!3sXFm@1!%7A@uIqiCiHJ`;%xvm*>(|#y2!^A|C&kWp(=4HrKaqktG?IVz1NmW{&QcwS+iXiw6$mXjb4m@g{Re zEIjJ-(oAWCoUv-;ZFQC8rSU)5z~0vfIog_ecGjDu+f$ag=CJX-k?+9{J-*tue!QJ~ z*%P6gLFj#5)YFX3jgAxWp^pv9>_(Y^J;1cH4BEG=jT`r6vVWObbG1YD=FDzGpN}on z>|N52$8FJC4fV=cIn_5>({bNF8aky9X2khfYpt_q^*qncr}|gOXT?X){=e-tz5^qz)2f9(;J@4-*jm^ zNFM;^lAEE&>n3Rx``Ayz=ehVj5FJl&(L}H4c!bBC&7b5A>>r_8ve@6ct|adr@_s?Q zHi&ibBj6Go1V&3YXdp|{4{HWmJw0hOAzfX0mepP6*#v7CyPfdu#@&bLOT~v($8DA&9VA}MU%9t zHu%MX>Hgq+tN-{;;D0Vl6aBls9)S-k7OVRCXXq`rAs>Qo(edm3&-X)=T_N)9PRbWr zBfWJ*N!}{rgZ;C$z@TicZq*I7fl+0djpLZ79s^I;@m@8vHZX*^VP%6Kmy-=B|f({Fo^H|5=DEgLiNC%!(39_Yi7%)PY~}kYzMrM+r^_;%-UVNC zqNz8()}&$S_r^_SnIxnC4P3|jv69Td5aNbO zTu+KP71sS-bLnmj0PDN%PF(A9UHcN&Y3&hH^%Ks}4`rPZsFE|J^ZFcKECwhVKj@ ztgi=*{|SUsjrD*%wnMkpT61AuIK-6uz?bJEr6Zh%uFdmoI9$kg60o^{?b05np2&P|^y2OfF6}oGACW&*;-7SB4@;?v?nzcZxsET?rCz`1NrQc4>ki z@x!Cne+74rOBf$MdKh089tk&hD(6d=Hc#SDc8WjE{4eoV_N&2PJNz+O+AN9h(J8)9 zmi8m!@7yxg+gH~cCHcg+S2g%Zc01G+tjol=gy@Yt*#^C^p3IT5at#>su$R!wnDNar zQsdPmXt%wLn>xz4nmkKp{m}bZnPG!aW(nIMz_07AH@8Xq>&k9!ODCP&lcI;MF6|Nt zvyW7P?z*lAey0h`JsqA~&9W1H{fYDR0XN7g%0&}TAErI-GP#54d_S&Z&>Pztd`*ZR|;`<0;_dcuoH^!KIuuVO)%u?kB zj{|-sZ<`v@$6lgOCEcH?>m8m8jz7bXjhnW;L;5B7Wew8;e#1>#U~ea8ZA3qU_b|Q^ zeRbqnoZ`~NXO_pnqm=csz&H>8Jox+)zTX-5FFqxHanA1#*&mVpdP(mizu?TxTjJVr zyhVJgV7tF20#_06{EqaV9yvO_NICE>y_{U)E5XBB!F`1Ppaf}u1l$jhPT=0&4tLm( z&??~7b*GeBP8wO~J9&#=H(Pg?mL+~{J-yT|%r$Oh&^LSsh5f22z9c&|M4fg^5_bI7 zmU8%81^7}dNtNQK{1M93eTpHgE0opQcaYR8eq>F%?wC^MR`BsCW8zEbP3{Eh>VBLF ziuLv_)U||k(q54{Hbb+5qZ5=jzMn!lNj?v-SQd=FM&u09{e*fd{s~Iz?Ssji{;QaL zdvwaxtec#6{930cDx>i6;Vb}7xnFaF%XNF1o~~QI-O;~2orAO)m&J@~BCVe1I>ot! zJUz%`A4oYr>NCnLQ%^gwo1V5kAL;dc6BK6^`D7ni+7QNJV#|K&6u1S4joj@f_7Yh- z9-$y~_C-YhSRHe}_m_L{ zy(4^%F(~bHQIz4HR?6kooA$3Zr18lXifL)s-}`1E!q`rN$bo{1*gSl?Lgi4Yh? z#xnfm9d$FG*XXnmhApcdHkWrAu$=_92f>T@HHy6BS;k<3MdnXMYrys~9lGLd7y91CuqdxRW>sFzrBB{bGiuvN$~(=Vp!kH}43 zN~%pgTgqA-{gv#66p1c6ychDk?1hN$B-sn8Cygm<22EKL8SlqB9us^$c>liv2b2FV z;$Zjpz`^PZ;GnO8gLnQQ@;W*zUEajDLS#wit;qSnjvqK(zQ)$ZVdOivEIbF;@n>S@ z6r|0j+&zS{(XIA{4 zb=*@XI7k9diD@N=?qs~(h0HLPyVve!%(t;Op{#bDRVq@iu%jPM;okX+((u8yxZ?IENO`d(Dmwo>ULzNdq zCSE|DsTTVI6_`DjN}qPo2gJXzU#YtDYJ3a}yw@7=Uh(gP_mj)NC%n`t@ZKWuPQC!V z#BTsznbRWgGHaWgh0nRyYp%=)%P$uh{VVGxy`MXkC+jPn28mxqd18B-Y0$>E;c6La z-SaH!9XGNz1cro+u#EKe6ERhnlm9X)BVv5$W8#u&PCNHQ%QzAFS@%0*Lsmx~UJYFe zEy}lyf#p{_oSv}`b@>$zCv@+}re~>)2U(X~m_Da^>tB^|#5phIIrls(Yk=?=c!Rv= zw~S%Ig{1ot=|p#`he`hmb<3LgY)N>0$i9*M>k1wj2is|HXTOnpTj4umha~IUJF(UA zw9nz;HHXMAHM$Lc(s}nj2A_yYbpJU^W4~bg+EiPWhwnt4UYDF_Ln3MZi$3riLT|J= zTFtPGZkvD|N+Ebv8l%-;zK3r*`PUV#6aVLS+Uf9JDR-@OmOpix=~Rxzq#5F0p&Z%M z($fJ`m-P|lO4>f^%0fb&emtZH~7Vx~;z_s8+rQ_*u*mX_X$ zuWqJ%eQfZr@ZKzKB(&w($6jTpbd6>@{uREF#k?M-xuLI~PjeOnPg3__>K55+p3!!p zZNZ^?i(U2duN|k~1Fm=jt_#9%z-1ww;4~JTPNd!(sk_q{{pbyF!kzJhqLh&?+LfXA zLxS&xp^PW=6lU8@c%=_@xFhlmF!DTMsX=}YO4=U!H-pr7-`bLX^$z%FU~kyhm0dgw~{S%t`(!{H&U;biSE z^_gvQF!rP^5*MSlA<_2=FiV^{Ps+cNOQ4tUDDx!w1lP~-ZsJT*B%TFUu}drkMze0= zNy0BmX=CD_BKbw4uA|WTg|4GWY=`&1wua&TIejK|RY)I1DdWW65_wPnX~; z^2yDwoZo+fW65jpG`0js`WTG4-h0C<;dagjhALp_iti?Z+Y0sulXSi}M(3GA3nho6 z)e-MTV`qG)9@l7=3tx`pdF)Yqg9n;^Lc8Q`%GB9(<@fsP4N9t4=4I;yuZ^|X{<}PF9@0M{q}=$-_RNQZPyWW5V0=x{p?uv z)c#9UoaU*z~)Jj zz18QH-x6P5IX+$V`u~xn%08_g|9j%u9}ZAYV~$lldoOL_d(%p>vA9I-$CJO84E_vOfyD;wY^J z*jf(o{VsM14Llp8w5Cl_S{&_hZKe(RWtn_`J$+?gwP`2mo{rKecU|fq_=in^{+%)T zTwqVsIeTx;DbhCKSNffSJ*;h;vcZSzw|P?+KXpgNbj81EFwbzFs}+C6O^QE*_2-&w ztFvMu;d_Z^y}9XH#h>mf$*bt&xJPgzXFp_L?~5(a(46p^Sm|!hMGpmhJ+TAfnbA}H z7O09cLdC{W4g2s;^nE>obM(MuZ;VpW|LOaydY_OcjkMNbC3*izxdHGXuv-&L^FAbe z=V8Lc$s8|n4a6;-H&k6dZ>Uq`E}6$S&r%8`&NJ^8r=%A;y6loL9i`7^EyY?WBUR23 zDofqj?2AfS)K@3%kiD;EE7+G`kvXqyy0hr&EbV6tv;FO`mBgyP5$G5;PSj3sny4M$ z%Ko;C{|a-nv`cm~pKgg$U*g^-cv7BcA#J^NsB;W{7quzuMfb(dV8|`b=7+O(HJ1R(8mfw}Bc6|uLtdlhz=t1<)g`QE=Ov$0XtGt>|jPZme@=KS z;im{6Ap9=jrwKntxPkBoguz22_y{~jcq`#I34^b|PQu#=gU3ej8F-HH(}X`D+(7tE z!utuoOZWicJ%o3!$h@01eBk5PfaSH!Kn!-YNBI6+zQyjA?|0=}sSPyn{egU2YVY}n zMO)fz(UyFPJ<^0}nrFCGOD%nCyt_|nW@>5ucy|wZzd7C=C+|1LyJJc-2baD+KDG3< z@oA;|$Gg`Ksx3T?o@rihd~8teQ?G$L>Uf&(=U&S^yzRBjBRgNqw05^LcE!$@_&vn$ zC;m-|k0RbyI~AH;GC5iG431x_O~ID-v1pyQELfQA48-Krmc-JA!F8D>LrOB6r@OSZ zGuY>i$s(RIW3qYEUid=^zQh;Yn(SN%JTB>T+e-FvS7y4T&*S;-Dc|&Y>x#_AQ!DtU z&(H83l5hIFh3~IcWG~zQN%`EJ(m%U^14O^M%?!)(pm6;2NXKT%K;xu>6T=tLo z*Oz}*(#G(=KjA?uGZ*A0J3Z5roeTb$trhOe*3QJncx4=(8W!t4j?QlyI?{C7oNh^P zs~_98(`}@ab+L?9oj-9unU0gmvz*em@Q>RcObh!H*vp&!7}PA--@%_}z@Jy!>N0;e zc#{9_ODFm7NtxvT#lT5^&tuu=mOh@X&C8zTzw_!z{@cb*@-Mq|meccWwidinVUKze z_Bo2*^HR39;EqZDweV@~)G2PVtx0LhSNt<96&n@|C;ci(AB7KY-h;rs?RD__dS+k- z?VY(2dpg2B3Fi}@O}OFPsc7QP75UPzb|of_&=Bb{Rs~uTts;O%FN}^Of~qm zi)^NZ&qSE|hvVFnbdqy&pJRV>nmZ59#^MJVJ@BWoioe0HRDBxj@;7l0+*x#;oG&C@ zUFMhUgZvZuwb3?gV1VcFjMp=d%zQob)BM*nKby^W%gW48zgn63S?kKoBi9i>f%u%) zGygG#?~jT9WM$^z&sS#tDqh2$_n7w&%as`e zHurGw->y{T?XfDiCs`g$(fM6qklF~JODjoIt>e%&Z#MWIe11Y>jB`RMe!rjQj**1! zTCi_-?R5X{n!N;__8`JTx}OUU1Fm6w=ezvD{1kuiO2StXo=vzY#V_^M<0B|IuDjNB zUH5Y*mJyd)ofll5;vbzB=bSJ!&Ka6QnTG5U+?wJK&F-$HUV@$5?vz*UF6vq~X6e|A z;+;#T&vGJn+@8kVx*S}!&%v}omnBLDsGAomRcAPdBr>G%mq?y&U0jlPpqe?o3_CGt zv&a?1y+PdJ9G7;yze_uXeX{IZd2*9gM`~Cm(CZ?-BKM6*zKHr(cB*d^xIK*Tx#f8g z@R3i-Jx1E|;JLdb@2Sr45Vs`)9vxQb_hhc6$}MY7=tTCtB>pb$Pm_8?&w~6lM&x2o z_AKYq`1LXKUH)^WN?{FDLB0yB;*|X9HpMCO+yZQgC^J#^110^-ly?{7=_ImcyF7<2 z$~^)jemYMhn~ThWT{L%G+^owkk+O}*Fw5bGn;IOuWPNLX-$|b3@M;;a>3n-8gBx_V z-2{G_w~=9%urE=y#i~Zi{pjhOHRV6v6>RA3w~un|s=r#6yj=2cAc(bAugv-84P2iuyOsialeL#$^W0JIb9n|~P zZQ*?*ecv6qsqYS@O6akUb5)YAw^6pd1rA9k@@vfL(E106dx>-sC${nO{vq$FLL=bi z_D$il1QIVW%3FL$-WHL@LmG(}Uhv*_^t}ArY}76BLf6kwmy8q7tXWR$W6CmBod z7AI{?r|p7sv)ykHx1aq>6Yp2?U;bTVw8d`g)DHG+8@XdVUg%YDlxkOHjP{AZcQ^2D z_Kzb1_qpg{u_M#V7n(EED3ZqLchACG!fpH>>zwADvPVUF`b+5LUcnP<1ijoB`z#Ig z6`z%19qdqphQ4d;|CKULxMaQf(c|3zN8Ti!NIi?_)1Z^>rk+c5X$kD>J;J_GqMd)} zT7YZ2=saW%T_L)6U6vYFL;@{JJ(rHzv%VwzF<8@y(Vm5 zKQ1-^9s6=!)%iJfNu9sv-IXnZ(1hqnYjj!ad|gqYLE|^oDOJ_%do4tl{L&Uh-8MMK zd-q^PO^ViizZ`YTdbe!3SM;E#vK3voAofdw%ShdmS>79rRVfdh@b)RtSXX7%QFm8m z)`S0GJ03dhGTP?8R`ZOGkMrZq{TZpRgnT2Y&)lP_##X_9BDxCwdEz6SzY?A;=@=_j zk!hYMjnMU4BMts;j>`UT8*MdV6k0gN7?N{iB@yWYwBthQq%9_G+-LODDBi!6{GD{^ zzif@BA3JDF&YXqkm;~Qi-QFnCcL{k5JLRorUr5&-(id)MD;O*CaMk*tjiWVrf2@bI4sL*i|oTvgC^X>Px#L;O!fy{ZPF)^>CC=vw%N{u zJEs%PDx6PHQm;|>Ap>Lw($q$5Vbhj|=M`z6zya=c9sO_vuipk!%J+cjbpxhU1LyDm z{+sx|P1;WXM7C+K*>>X1ardu}qt6?I0(0kl?KmUfv5y63i9SDdb~PTQuM!I;d;dyb zJqCUC#oj>VsrSpmV-0z(Kx`W2UR<#waAC7jN4fu`yi?GG=L(ai5`979-1{u*9PlT0 zqoSM2A^)A+9a&Evk3Nn%>=w=N-^h0-dlCY}Vr+e+J?1~5a}PW(XyiTD$qw(p@4L23 z61>!tPxzeh-@Vi!`z|`Zh@Wc2?Xk#B?)nMJ;!R#~P3E#E%JMAUvWDnQO^UjGY(5wR;wc+cgnXz%xkxlZr*4n8zf@9%G) zgCHfIKGsN#2VM7#o05$Dh%5sVCW}C)KE@kCC>Xw9(+Z^WKr)Y|x0i&Yht|KgTDf6+Umo`fNQ`8~jrB>kTL|d{4;f^+Jgi^E5qn-Bt z9-OV^%bsqZY`si(a<+DuvfP7vt3O(d|I>%F+imEDw@AJ2$FjALNaI1Lq=&a;Yk!q6 z`lR!0!(YtS-j#UZ6}qWr%n8isw^(OK>o)$LdF++&Pv9}flC;xpjc*@Y7U=fdY=7+7 zPU&#KleS5H?0e~9c-nJ>m%#Im!$0mEPG2FX3%}d}?__i9Xew>00Y1CsE`6^q(#G%E zq4b^b%u9{($iGp_d)TG1*x7#P2A4KQ?00^RT!Vfnus-Qj z8R2_f+AIlMvt&Q`_Ps(QtIp?BX~gM!imQGEpPGp6Rt`2?+1PT0?S~463eWmxywHL0 zNTH7`=tB=9Yn%I*Qm)7(kvy>xyDS|)#5a8yo#>(8&l?xS3%`{;>vZ52dNk=yNp<<{ zzl-V8CRg&<(~UMm4;PX5PUajLdoMe%o#_$&C*eNwZ%dB1nz>2r-NoKk#*Tf({a)E$ zvzE+lOHRc<1aqa>o3{y#88j>Tt%6Vb%WS7xa4O@DzB{v#fApRCuLQj4|LDi#{98~QE{hz=T_EXsd3g+kG)1Q4V?wr;4Y1sP-te#vOVE?C)eV+jL z&g%O+?AHWV1B2|{$X*WnF^%lq1Xjn@24w$cF8ZYX=-Jt`X=J}9u-bti6^q)de`x)7 zo&P8LCg^>f=(`h~X{^hgIq_=SMwb>ZcBr=amNfXkl|An4Hhgx-y4@A87NSGhj~wkC zXsJrWUif(NG_CFKX(^~Uy zU0T0+(ym~!)gPRD>(b!IQA@wtI8FO{(=_eq)@fSHQ`5A)>=`vbJxvSloTfGHo~FIO zIotWg@_he4%N^=7>@)sJoxbafBCG#;;F!(5cBiH&{?=iNcKqpl?-x%Mc!SSD=S5lm zQ}eU@au?+nqu5Wj#J9AfyUt>dKY0J{jf3!U7~G~5z+VsHw<@o#p`W+;T}3;y)#5+( zl*O<0q`V@VSNd$%;OMHebEt#!2CZAO{G8wQFSpu@7hGMDGW2lexVP54s5kzxdTSHdBX&He6lnCd=r|v{-;!^?&yqjDl03t6zcn9Uq%(pIef(!X z=;J^BG0!J`{DGV}wQ)#HSnmwJQ$|>-0_gDs_rv}cTHm(l27HZ*Z$WgW8?*iPc=pPv zH%NV+dnx~Wlo?H#!QvZ4FL!ja%&SKEJtNECue9mq_f`B;&GKUs;_bBg`_%EpaH9@m zem3hk`B7+ntI-AzK3k*?4>kcFqYiBBUoDJry{e?94SezmrC_M=uVj~h0rPC}@T`ml z`;@lgY|E~NR>kj*QC`J9-Ou{tRmrEMr4EeQsuX<2+Ec&J=N(sDVv@@r_Y?A!S=ts_ zt-F-cxvxmNH>7NI3sSC}PhJq`@;e-gU+hnt@9*D#`hBiPnxUUTnPOL=6r^9KY{yT< zq2UXPukrm(8I8|W2@ESTernw7YW^^KzD(Bht~LXAOC6mPG}pg z{^N|LsZs^*H`4g0n56qhDvo-bC(Nz}944Mu)A*^I~iA1$%7| zU}GY4tJs{lEDwmS$@3Yt*Qw3ui<>LilgB5`^u5=r;)AyN5r@{Y-l4T_&flhZPbMw)6#|IXbWFFs^|yruowD`zrQr)#?)|9O z=Y#>iW54CxB6}!bGxvVQd>(w$_;Uc z;uBDKEdI~(#9!fQ#sf0+d3gfGNInTM)d7ot7Q@ zs0GlhITqx8;U>m_j`v2&!oQ12D>BBis6VFA&|{axsb!yp^;BzsPhc;+<$TzW{7fmh z`TN42<@oo(UP@VA!2W@|1NMAi$Jan&Ab~Sio%&X2qT;L2juPZ1;d^uG-{~VOHe3e( zduB(mSCEr`f-SN!HBIkCauFEZPmCr8t`8BzBD5LQ`uj12M=d;bwne?ad4WWIr zUv~dKw7xoathb$JSi7#leokm3gL@4!dS|L}@G-dq#O&v(7vOCsPiun5McC0jZ`#q# z5PLiBffF7#99n331YQMiYk@Xe;BU=c@i(!fGx?j?(M9q%ui?X4_}a*>`C7GYR$GYq z-a>s((oZF}wsB{XCuH0x;7iVOiC@`Iu{)4Elt+eX@r4rn25O`WlCBB4N5*LSBBj8T z|5N!6e%{Y3_ja4IPxX+yyzH4dgF8dpzxqu~)vMgM@hoq1>mZJ%rVm$lQN!~&GA$i4}FLG?;AYKkU{kM3_fxU8W(_rGnr6=R<~X*q zo{yaGPXmAC{QeTMrp(PB>g)bQZ0>t<_BAXUd_`LM7fzq3%L9?~yXb_?aO7M+2RiFZ zxxyb)co!oJ7F#Y>WzE)%43KcWGWtWF?Q<^6*j99ThOBukN?G1>)E8upwZ@tdpAoIx za0dG+cvkVk>!C5$U2j?Y>G2Y`mN=0sQg}|mJ5FVTCuBJ!pZvU!zCJom z9i|+aUZ^Bm7N+mwu9Du1FI9RU zV?LbPGbMi4Z-1Njo8S8Hu-~_9W8%4@hOm7JV}9qV>!^!)?*Mfzw8X{FwImi#V@*+PNsK2v<8A70#=h(X^$M=V2U%H^ zGBY|_nRy&OwR&w`<~qL3w)KutX7(XX0#723^q-9fEbWznGi9dRy+2)!TC|>z~RUvVKSI#Pu)b-nxEg?&m9B$i@G^ z4sRoRMAxe7TsKb%kFx89+&JaZfor3b(IP82=o5j}y<&6j-W5;ermhI5=|-AT%aDOC zp0s|c1E;eVwtlKyY4Vu|mlp5Z%Dhv-js z`jCMW_~#wDCZ!&kqy?G{S$gT`DqWPT)TIqHX%l>18Cc)v)!)%Pj=X!_NN{kb8trVO&O$)5gdzHRAWC7pSURMlMJc9>XdtEY6u@4@oq^AwE zE6&H8!I97^<3ODNjzteIazr^aI(KQtF4>C@${Iz^Er8c@nGeY06}bz%Hj7Lya+iT$ z!Bdm)$c{DTy2$ejZ^@a3j`Iua%r&JhcWu5#$CL1te>Kaexm@8$>l`+<$7;CF# zywS$aV@<|cv@y}K51+R==&aF24dR}l zYWP~b&2_F@yzAAJ{;s7>tj$AKM~ek{-{ik*N5gknr?)^yQm3pt^tC(n&3sJeT407> zF2|Q-0NQJ2t2=e&J!bXB!2xovZK@~)uRl0tv@ zSoR0efyjKbnRy~?+lkHCK=dZ))S6~O!{|&#qcbT;Y}?tiHQUsoq@0{##SYc_YV%C% zt4$*&Wi-#W`kUrh{jEm^c~8Y6x#cJKHx)JJUZ)6Tfk-1S@!Gt*{Nxhb^Ytq!pZlD z{#E=v2GOl@&*mgL_^qGjoxJHmF0P2;eGOS2iai*gs`RCM!G(9usuS3e1z z{Y3BCMLGDl%SM-mN1BQ@B^0^2YMdEPp6r z@zFfhv|rw6^`8f8odIjWq3iwx&VN$=Q1XPw&qcoFlrL@9%T(-YFUl1AR2lb?@S1Iq z`&rxn)m@`n(DUp6u6L+2Xp`6n)28RMT_e;|>Qlt#{%4u0ob%J;t4FAN&G^J0s3PY~ z0;W`a&83h=V39p&ky}S&tJ0S^3y;((@xoioZ(WW;zcQS3Qhw+7ONbZwPy7Jg%75W= zGkDB8g2=?!^KK6y7iWS8@wsgNlll|MFMCi@uJlRdzwZ2tGvWj%i97<|T|Lm__Cb%E ztoVOo#F=t-eK%!?z#-*{y`ouOA>TshCS4z@GVDqXInnx6X#HZH9{TwbfK$f5@Ve?) zrNHC?E@TyX>CY%n^sYMH!GjwKkD^?Up??&;qZ>XJfOr2* z(!%3~&w7$KrI2TwthxRo@jcf{*VT&RG!r9&+wLak5_||DR7&#;A$^3VmH=E1jTYLxly;at()50`k5F#eKVf>R@bFXO;xjv_zB>t6+8*w zIvx)V8~3RM=euGUCZdoNX$`b-?5;~ZoDw{Vs??U`Qf_zT+> zh)qFw&)vjhs9ZUCZkfe(kc)hFVaudcdQ{fDA_{YI}os*QU!KBMmi z=R#-C%&}I9jRIxpzQx4X(&_mz%%!o+sdna82lO51Jy&j(c`7fB=gUV7Jv{Q;b9{^L zPro;hu;?MNt6axTc)Bip5MxJlC3ORp0--0#|M!Ueo4zA|Pc#1jrNCw6|8qqChrT0! z$Vgk4q7+oqUa5aUxXc#IwGx?s}vRQcoNB(fz9TE#Yk63Vf-T^OTLR zx%`2=bo^uE+sq#Tt_ISD{iG}ECfe~&9tFLx;^r*DR7+KCT4;U30Hu!(o25s)|L8hs zR-faBpwk}0_+g(e+z&m}t>B`_ouEF!dj&Q%(q8bL_s>-^hHVdLZDvkmoJ?iBOhNXX z>@|I$)d;S$t_ttV4YPWs>`=(&4fdyez6F;{dPZ0Ic>+Auf_G(vI%QEz)o}Xiqld%e zY8v&4PTkIhvG&cGYEu#SzcRjqBP?F(c+YORti6sVDW9^Xj?Mf_b6tjSaz%ZDvobP& zzxI90EF5v+GLhk=%!iEgH+v~l&d%t(3D~C7w^Jj+lL=2G{5Q@7{UzO|+qTHLuQuT8 zx0QathRtqEZ#z!7DmzO3E&J^ge;*uR{gvSWli}Y)7WwO?o*W<^xU>uC8Daeqh$G z_d%(p9baAb^XVSZRTJprTX{?#u2P2%*XACKckvCA(FWbUr{E(`+AZ=zWc&4h)gAw& z?J6|h+5R(>b6MEG#nz!tDc|&s@CVxF=Kd3@e+)EL-6QNDp|}scV{5v4BH=Qp!@h0Wn8ot!asXx5Kj)z44!-* zd}@dAWgaSy*35ImEpy`hA$+$#&3)=Ews?PhDsTLshwkRtKf>8`Dvq=Hq#1UZGlPGQ zgWc~5IsVHNGw{-g= z?BiyS%3UkK6KSI;>Foo=#!qN&!TG+pR^@no)FF2KGM99nW|DWaq`_YB!f7UZekMhf zci=T!(tHPAos#A|@OqV``3}4elQiFf*MX!FoD4B=G8ml9h2}#0qYj>3)Ps4kC-Y-3 z=E>g3k$sROqma)P-G6Gus+_h8*5DQJ^omQdbso&Qk9{_^&N}lW)`L5Q&yHOfQ}rfg zD#Mg9GH2L7KnJI}j%~h3Dfr;9P5tC>j$gNX%`zK1mD!6jpQ6lq@SNUP+5T2G z_S)R-)t9?Vt0{Z$ylD0J4bfF%3(mQ;qlM_hpQBu}&eC|sv}>e#3-hBHCw1CWEzWtr z&e3gu1vb_wzCgJ}EjSp|+FUYq0=44(I=H z%kZ|i!EHN5?g%}_eIp-RxjP$OLnz8Cz8TDVrTy47+#Wz5ChII0e8>D}!g*a6aGGgk zp2B8;vs{iAD{^*wJZojKm$1mXEoAk2fXjkShuH0E|DZj68M7BDJ5I3f-l31nB;Tgb z!ua@b9W(^ItliZ2B#yV6JmUq2+)Ed*VZVAEYd&nQ1PAuE(01nHukDTFxtm3of4)vj z%~XFa>C5+yZxs7e@$pf<)dsl_>iuM8 zd+53jJoQT?p1!arQfEY4-T*GM&HebNmqnRUR*?KBC@)F$vC!LmqkYx1PtqaZun!pC zCk@Vt^-5n?NgCdl2###wK3BjY^Pf8UOmtNfaTCC+TjoRJGFZ2=zo*4fUxsC&Zp$ya zO_@6s%Y84-dnZ~yYuy*QHFC_>gq*5jKQVC5e&}7fX=&B{02^wwqeS4p_*PRQE5!p(<89`p9duLu17uu_DtTqR*q>0mgU(vKhZyrhe-baeA@!5c zm@|~SmvT}g>N-hWJ#)5wZUfnhhf(Hk$`IXbcpdNq z_4eYJDw#)4Fjm5G6Vy4x4Ioa3w=`2PyJnbEFMChuTJE4pY17Ltv8vVkEeD^Z>|Ug= z0~V#)rp_S0=ulaoKd<~QL(V;}%MMu8QegWH|3sdU`tv9w(ap;F6R~L*`aSkg z2i*qI5eUrsKiYB+bSpaQPsnGcKTMp!Y=(uW$rurNNaD;fAb1gZD6*~(s4Mh|)hlb4 zaDGK?c{jRh2;n!(I^YX8QHRjmUNa6@4iP81E3@7@!ZyO9Bh}-`_ZD%Y6WnIx6F+pf zGrl-Oq^FVhGiI5Lv#r!E`zuco*Io`XgI$*;IRndE=yH@EPWH_O{@;-{QvMQNSplyz zcZaS>Irl06&EvCqFq zIsH=aH+>w6942Kj=FgK~3k`ng=3hUrQq_}w93y>0dZ7V5A3W|tZSv|o2S4hxUGN+H zHRH8Y-wJLDfnC-cn=NfSh2O~fOVUrGKiqm>lpI=8rg)`JJNk_baI^eL#VdN#JZxx+uT^dEEf3)S#nso%kT5~nS1n9E!|ZDqxVIB-4z ze2*?&yP?T8+Lv~2c|#5Kw*Wjep;r#}4cDpbJ)rR;j0?GkVBclzyE4zDTbLV}Tb2w~ zkl(`RsJK^A*A*(jZ~qTyaka}E!<+anVJl(o>I$~zR^`RFeQS^Th6j#euhG&xY*R`l z?H2os(WR9e*2E-M4sKf3kagdE4M78Dd$hgMPMit5@YP7ztG*}PfBR_|?hkoi2=3|& zz&*YD!-w8ZtvwcZsP5SC?p?#~z>i>1u*VT+zb|g%g+ zyl2NL{?qwU842;o9EX=ST+}<^K*c3%4o!XdiDT*04jrqwByf!LHZ9aukix!EN1Ye> zJe1?^t!x+Ho{7*ZXDz&3Ft|NXgzrZ7;aFP5Zf40H?IRU9vOc>CdlR>pr2J)i8UirvF?gx{Zs z4F&K9*f$mU53?^ehP-_jP4GI4l!F6STiP~R6Iw)$|A=<}?U>6u9+~TGOk`gS@C_!9 z0(^p(Qo2Ni;yr1lr5gf+*C5tmi-)`Sx^)?M74|{LkEjF*n^wni6#)~{q zbA|A{SZAAd>5_ro-@ELa&rhA1>jGO;N-J8F}fTed`a#;ZzL?V zD&K$STjC{8I4;5W5plXaWWy$&v5RF4doh;1;YoeqNp9cgDXRXn zSVjDV2;@pPH0Uy8`N$e^paP#8#CjARvlGAmu_Sb*_v9K!ufh9vj0}nYVEtD zHSBM)cz^pQw{h5&TqXT|d$4N%=#ubylKfMpo=epFHehaq7R8s}G%1JfY$f-%Yk!SS zAySQyc^pc28LJ-Fj6u-Xu|*Nak=c>PkwsC)G5E!*6OqQMX;Ezw12{O^l~ucVe4Cu_ ziyT&iEcwW}?&{j1?CrqGob;HLMa1@9NUR9KQ8Dl0Q#6&B?`j}68ZRr*OQcaRI3wN`uoCovkhZ$`oNWe{^(?hqbu`S zbhCjJp2X1=zM_CH5X)2G=*yFMx&dHQ#NU;Et!CbDgqJLGYb{&ORRz-T1=OjRaCaIz zTfIcp?{+1%c+!cV$6R?9JnO7GUGco?gv&UV4*y}TTJ>;*ag4n@=bQD!#jV#1!E>@! zs#lC}+XO!rJgao^m5k0G9wvA;2FI*i4WE_!^n&MF-v8Zr{w^?THjK4{zdN3#UmAGX zJHxBNVnaH~S+<@?TKn(XM znDYazc@QxDc=cy4Sn1(&>Q?f-G0Sbd!CVT)=KOj-vaal!gGs)A2hZ)NWyXEcqpC35QB)LWy}$O80Uy6^+?mLs> z4_JM_mb5qF12}uyAhtO9tS{K2v|6(K)$qb8@WiX&jg#S#lUUa#vaX@`WWOc&4#(p- zr><^zN@$VW(&xcb4#86n!Bd){^=8H^IHX^uN$*~Z-i5D(Yt36ucx|5IwRuX;H{dCv6L5IS_knRj7>okfcjYb8H{mS;lgKI|Xnzg# zB>YACFLgIVlXH+=eh&T1o(#F9-jj~ZLiz$|mBZWqxuP$r=_Pg$roG-zZo?v+J|*8 z(LddJ_x7c({{Cy6_dp+89!&J#;-ul<&w+6QX|k@$dWvnI=}YYX+dI=X&Qqpe#=FDP zUMEfDn>)kOkV8#fNpV=3K|awL%??XLKZ4v5=TEJQs{Rq_-N`KikL+7T)+uBk`Xln* zdws6)9Qs1p7l@oIy!U_jF8-z}(SW6Md*|Eo!J{96>Vc2APJ22VIO z79=v!L%{3EM8)ShGLgigI9Vpjs`}se|tQtIvG54)uWiQ z+h4rKeP7e(M7z%-!)@!3;X2PM`%qi8XLF zGRv)uiR@|RJ++rAD2nkC8&hl9)*C&1lzI)@+k!X1rP)W)>dEIOZ2|Lbv`XAw>*`;X zjNYgL8aUe9T+^0W`~PJB3h-Fd+w!|B_qL9@U53OFT;!$>^2?q{{6?GKN;JGC1EqBMW?rSZL)GPgwa)YT;Ntq?s$Cb<3^Kq$T?Q;p9oh4?cOM@5_E{?P+E2d)^J5 z>q$EQg~tlc1m*zy@dy*cX@=X_nCmrO9qi5e6*Rvuv}&5Gw`F&#ry>7oeM(ZJ zRDtM8GT2k3XoFe?4qLV2!5H?7F$1fTHE-!6_ZclJMiuCh+&OXSF_~`9yqA_cZDRA+BEGh{W7cpiR50;aXuZcH zJ`Vb}HyZyy@REGd73C@7Jc0M&wJSXuKBl1c1EM!!Y&F^v8hSXH_+yE}(~?^< z`y$(%iEJZf(v6j>eDheXd<(G^RGp{Mn-$~B+c@`3*T$G}-uk)csroPSM1PW3rm|jyu_mQ?Lp5WJX_?K z@q^$gZZ*1y^&*@7-C~a_ko8jc46Nc%rZh29l{Q1C$jZ|as9$*Wq7%{kg3w09(%d6r zS9{cqfPv_g*IdWW2H;AH-OtU!XwJ!z+1BaAY=SL@Fx#-nCZkL3c%amC(V5K#+&)x z<2{vgI&;oPUt!M6W^mtxE-kglnw!G2+uI`jF=>4%jUWhF`eEc)?I)8_U?16_!Ok%NN5I;A}Zy)QHoN1R< zVtW&W_K9y~i0%yEHKjr1Ytvp0JF0f-4uE&TjT6f!AAPc(ru*VkRcRsRSnJ-$YI$5C zcaWTOAz-o2CeXEL)brW(-wr9sefy{u}rj3d(oZYN&qsizYiXCvuNe82k&Z0O-3 z`Rq{-kv?N%#m>>M|FZRiJO9#pc-ZmQ8(w{M=a}f#tv}zqt##wd1FcKfTy5ys$*@Ox z8XmoV=!KhW73;ii`Ux4(QmD;1l7qcW`D2`IDfVg$L{5cQB&aG+n%9U)%P}Tl7dq+7 z2eEgEsTyh8lvutyQ`CT#R5jyBSp+f#_b-$;#g_}+3*w>=BP3dEdP40nhCVicC#qq$+>bUTc;2u|22wogQ$6M>hcL?~+ z)CTy1Lt^0d5({d8|J8I?wYpc0d~3!6&f{-vy9e6F{%>axSoGJ%`9${CwP#nXx7$d7 zPDLNQn)<{Z-%Z|!&)~iW|AY5OV&BR$6k~)wu{&()>D;r!3zH=Xy_U8VV6>>z&KdjYndVry#6-9cs3VxYsaxyT*S6Y*~s z$@(yfXB5vXd18YTozF9Z=LDXjqr8GA=PuFMbw;Q<@P!^e-oN^foIwtkGg#- z1NlwvCztSl7-QqWT}b&)mY~bIU9A`0_qKN)ou+faSy!s`0lo=-kKhMT>=Z28w{$&A zo&ZK@-+^&8Ys2A>^NmE-%|ky9m#Y)~zomZB6CGuJLZ7lBl{$w2tLR2++&>>1oXpt= zbe9QS4xGKH&p^)cP@mZRh-_o9|CK(xM;``Y(6Kbnqs9_!;TUk@ZdV4S(5L>CB7SHHoHui_rB}d=m}%c1_ML-W)v2@8$a;IeEuk%B7BgPn%lvoXl<~b)#`gwv3Sna_<2r|5utFJf zE*n0!{kn{8xjnYK;S;-mbn@6vk-C3m=>gjr-}}L#jB6m4Jp$t@Hu?47VrDF3h z+E1QZJngPtWoNDfuGjE&HS9_EEtqwQYeCurMGK0qbuE~5hUjc#TXf{+N&ktR1pSx3b?MK#@7kX| z{r>;$Pci)wUu9kA#Q!{oPHMKxI21O%Y5PJ2GABdn);Pka*QwL2BVtd;I`Y1=j_6TK zre#cbEilV$;7n(F`B-zU!FJxr8#qSjGh(W_$2RYb$$If)?9_iTg1C{r)Cg?5mZ`!R zA9L{i*$o5a?#jAH8nS(BuGDrkMiC>iD5{!^HSu4t7G^)G?Q4dn&mZTSeh0Kr@=&kj zl84Tieg`x$=iFY&nd7`qPx7c8uRt45v?utMmd;u53be9x&d>$T?pS|zrrIa_X<3Ui zBL`jjGT-LR89GMp#J)_K63R&VIh3=%EilN_Lfb#qVz%qpqDX%{@dlA;5N~LAd|>>L@s#v z%}jjipN}m8>zK)}N=7d@6vG~avbC%SVpkhrEs(OCW8ovL3IDFS_J4tQeCPS|`D5Q` z{-l9phu&oV{AoDjbiNwdKJyCWAp0h3Y!bJpXbCMY__Z}QiO9PN{uzwT-OzYFIG22% za;{QtkKfM^;e(Yit7X3GC8Ne1?1TP_G5fmybmart=o~U;JpYjge(uPe+3-Y9`=K;?~{8a4{cwm!`Ib>UdbAK zJ?+8X$!YNQRMjV0!PlF(!>HX*q*t{x~{;DxWln|5ToVobiC311gJ_goI zH(g{vWJ{kR{?&@Ie6>Ty7(x65>G+tFb=gSIGV*1wnsc#lB6JoUq8rU25BmYvj^JdG zF=U>*d=EWt$+zHiePFb=J(+e6%@}XUyx)clyx*wSH=VY2Z-488If~QOQe9GD17D&H@CMIZ}?L$KrPtSp;M?g=`96NL= z>l3l!WPTm$m|qFZuS82HYvLq!<>~7j?-O=t@{z75mucQ%R}uH}DtIoadZ+B_hM zvhvN;<%xWN&A~y|6M@}KBd?BKf!NAB@0Hl-N*|neo%a~~eK+^0L>_a#RnpEuc#Y_c zLlxFpOa?k5IU_jAyV$)+UV%GT~cS^Xtd&TCt?%%y%dFl{!aiYP8@(*DT+}=Dwe`)q!~@?TGHN zQl6sUDZA9yh))^Ok>L;FB!3*@2O@yJ-SNkhHpRCFT9@;R{ju=k+4zRQFNEo9 zp&`Y0s|$Y#iu)gV*g~f(-(u)wN-n-J@Zk`|N5oR}mfQFV{loz``>syk7~rO>Zw#}| zZhT`{u$ete(CHx^UT=^dUb)cuC(1mMqBsq@y5C*#4W>3U?+rQDs$()*Q7 z%ZOLQgQHbej$Q7jcDb?$wPCcB^LppGurtkgu-A0mliX3xL)pv=qJ}q9)~w?)l_fkz z+Ma3GQ3xHJM;-dvv~%s5!<{zGvg3Q1WjpGjyjf4S$||?(nPS(&dDQy(>@lz7SsUej z+QYgeI+BP??~xk%^u~#qZEx~DDCZb5znJeb?m^O=_sdOsO7M^6c`y8U75X{xb>i5% zJF!F@oA)5|Tkef>cGOYFg?1h1+jR&J2rR}w0`!Lt_Wd+sK0Z6#b=ue;$OGueUH<<6 z#(wEGOi`!w>ttI8p`-5l)CT;*BM$Ktyhxv3=70EI7NIk}S5BMUN%S&D%U!H#bFJ8V zFDPPPHRWc_xsAQbg=(G}IO&0N7?(ow70!bHP*>qkyzT4$Mn1-8o7^d5Tq=3S4CK54 zSwwuyoUbkVb+66JCq6E#j(@RjCVId$bi;mV0p0K8+3bHr_V#GGMux|_OCt5;!_$zH zJMK7dCXabPjc?A~n{{jD{zzy1C^=)7vchx2%Q|=I3i-BntupUa{Sp~P@=Jfqpsiy1 zD}38bYjXJ}M}Q0Zw}AdR>B6_ZB3;gJZ=nCrQinbU{D8jz@QHuK)zGb;Pg(+TY50GR z%oE=A-so5Ojz63gviGCS0x4JKRs}MK`ue;q_JZ>?-t|Ckmgm+kc&D!LvC|7XW7Rwa zECQQ@3(-C60asSadUsaJ7zLg4p3nId?NrKt(ze-Y`SK*6eCulCqOUXW3~taH;ETW? z^8zr^hrt8$j(DHM~wUj1M0RWZl$O|Va6?3a>v>95g` z$#V;_&gFSubk;%eDs!oY7<)pSWla_>YK)EG{Fx@z{y8$E{4d9rLcjM)_&Im{)=3}L zNV883$~=SA?~Ts-U-C+sFUz?{f7e^cWE!#=x*pD;4_p($8A&8QcQjw9B4)=?&O-KN zt9FU`EoY+v&ek#(TxpI;(`bBi>#|2@Pf(PI{{nAaqZ_?A@nIUby3x5M`H%g=ikHlt zEn^M&axamyKHZ>2B{NL3*CucYt7Pb=@EJ?`-qM&Jk0 z9fhyi33WN;5p@~nUSy!pkhNr39Q&1#a(1>%)i;dujw~Cu$=!cU065lExOc4GDzb5s z|1fdpf_dY!ps{)0KdJ(WMH8e>g&kn9iZR=z+V!*4nbMxnZZP@=>)eq%P1`%q9c5he zU)Hi5*yJ4d@ikGtpU=HAOUAAFcIzx-;x2D#_Osf&FW6hjd=4#9^`UgtE^^Ey&6_pz zEc`#A(;S-So;veMZC;RluzZ*LgXA@z=d1RrA29ckWhNp!W#GT|UCsdiK>R9Kre|d( zagSPt1Gg5teWub|Sj!8_79*P@Z_L8BeG7SAHSen?I`

    )ZH`=(`5bDLIz+MCwI% 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

    B?>|-1Prw>BlCiiXywy5ngu6voo7TSCj{FJ$D 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�>&I_#Z@s6))`hCwxCAah}Y)khPc9o)IDp|8M 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Ν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%0DrN}Z$(Sc?6d&^Az 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

    YeIhacOiSXB7=!?a>4#tzT;e`jK zyuez;9(W1=c_dn56|6G zDEtrnF;iBp^})a5_b%TxiG7MX-SCREmk%!G9C{4TSPRG9Yd5L^Tg)fAk4f-eg z zq5FPw4A%+mNasRV`8HlvYDUwp;7%Xs;N2r-p}mWzjANmFiR3|h*{c+u&*Zx}-a*^V zQqKX}5g0b;&v-vEqiRInN!i^dEI;Snhu<{%BfJuzt}S^YTNC|-;OZ!{_5`x--H0+m zKdX!@qD&-B-!|KP%Y>nV=QgP$LQcv!aSy;NWymYB!wIjX0*|bvT7;g+AcGd1O*HEj zo)W&3THS_wTyh2b-viG!Mo6I=|bq+{~M8?@=p3GcZ4XcvE+^r z6`l|nJjev%g07Ku$v|U^HrBEarjKQTTgu2D%KeNH@vRnkSx4#fSCYr3{Y9sHl0JV4 zy;{QEn?IuNNZJ+C*DBuCpXlCHL!V#gy~N2(rCxc8kFz|b?)j808K-EkP_OKXT?38f zo#0b&0iQ1Q!Y{&eG4P+jCjU25ei;9+GRq5$!dHK-kh2F#{+DS4o(wF}U-8NC*{W{$e{1=!oy==A_36nnprWeikzto?J z{#$uQ;>pq>j_CFE;^}7*coO^wKVHXkAU+T|Y?zQ~ogWOyrpKp^0`*XZ7VbS??uyjJPi~ z$a~fsyXPURs%*Cz`gFx@U4ow~>|Xd_Z}LEkW6~cThF(4VY_>n?b22!Ty>8iO&t;x? zU|g;_KO`EoA}5SGWii@bUDiT__Nu|9%5b=UE)pP zbzl4yV?5TB&Ftq^$$TDX=x?v_?E`ZS{p}*X?L_E(W*pPsmKZW~j6OCL9cH1$hj}s& z;+w&@$0Q~Pc(dU81$CE_ZD zx8Wzr)7u7y`)SiL+%s2Vr1l?^!jnPtHyMwS-`pwiwyWA7XixOP?*Oxuaa_c@cdlcd zyWhGu!81q$R=tnLx;N23j5=lup8Dx?`uuC|ahK|IuCX^!0_+*U?lxhUxo?&UdkKBF z=Grxa&729hj57c&QUY~t@ne(?vJmYbB;j3PfyPfikHAhlj z_+qJZ+(>QJd|-MuFPxymoY1L&cfoDR^LgP5DC7P=<~J|og-1*JH+j$_q0>X%dbwBg z!ts(Xbdt3i`7)1Qn0tCnNkx=4mZy7RuKuoscO|wsEtxziWA)i?@@*u1U(iQ^uN3%7 zDiX8=@Gos!{sWQiAEvC-$DB~pzpYa)qpc3TOoG3T=YL&o#G$q7QqVQs$eT!7imq+Q zN{9a=vwjO+V!`QnlshEeD>nQKgznP+T>7ZX!hU@5H{cL_SarPbI-NZ5I5Fh?eBcpU zPXV_9MVZ#~pSTba#o|72enNN9++neXO22Z~X%J z2O2jr9zM1u>pmM@j6=^4AL_cDI%RxXbqf6jj^}jzuwLT%B)E;lqu@{<6B){G#{|w9 z>-HccwwA05gY;9@j!pc>mq1_h37^P%e?3o;uhNdJW#zqvKf$rk{QKXPb!NQ3ggD#| zi4nqj*D7;2eG@q*HkQRYj0yf!o|Y~)AiLt*ab=85iTyYDn#`?L z=G>YB9>fm`!`7xF@Q}piD!1X|#3S*b^KZeCso_n%gN%K78`ei*<|m?h`V=e zK|VOl!^Vkyv(m6{TDV{Supv+Xa9dw~5&N9j4>Pct5*Mm-pYR1^F^97>?X)jv$>f}d z*aw8SjQGsh@4)ebnf97Cp281qa9jqgwd`p~9D~W6Gl<34dlKh4(uX>#9bV4=f1=!b zz&=FoIA~B*Vne~3>sf!+(rz8?<}ATtr7Z@yi;H4ZyNPDW0~q$ssZ;FYquXMt7doC|!y`@-{5R^p|L&emT(*}tz+_FUo#-p;qe>s8d-qRX?sYq{_0 zF!ZIvse6A9PY)~~x}#mYyX{K2=UMqpJ$+I?3vJw=lRh8$aM0y!yHg3bKke|f$emPy zTxW(y)fS_q7OlTT6T3-)x@v7qDd)~&@au;r=_B%-%rQ&F)>+S;M+MjygB$G5be`!- zdRO`-UBA2RJOy9%rffOGl}Ubvn%Px2>%vw58Vkce}GR?Nq)rBv&Cikwi<>zP*-iMrS&d}P(OC#?m_bD~OTW>&@NbW3QdYVclZjjj$#b^l%nTO>SL_u(?_Iz<8(bG5UoyPPZq9a3 z6QB4HWixJM{2)uV)1IEbUgVrBoH?3b0x=g@V{}k14LA!Z+mdYCR6rRAWn!GJ#xnGP z7|ND`_v0okvYrt=&*FtoXzN)1% zCp?I}e?i77Yq(TBu5VjDWu`N4f7!!gnMUEQ}14<9KW9`0T=JePbiNZ90?cJ?%%_64 z3ivAsZzifq)kkS#MKfpd>|;AU@cGF_NntmA7JWsHvdv%q5wXDGP43BTm3Ra@ka<1h zz@)K8k{*knZ){?X;C zZnM8@6;ILUe9(+OI=q>h!d&-wyi((k_^@dgX>*5i7BI^7Yz*g~Udpp+pEAFF#yod` z-+q4gskd}3RlnO+qTYtz%ZScA&ogVg)sdZ_d9}6MRHd`Q>sfnWR6$p*I->I_?=x%P zhF?pOE5*w2&e@))*UH(+CEg$L9MZYa`_x+Y3b2L7wEB{Wfw*1KGNbaSH1ujcRq}}~!DZ;~H%MNdvjxAN z?=YUyhcFM|+jATrqbpg1e9T$$!xQ6t9nDIkjOkGcb#sN*BF|pu}wL6g6~gsMu)pTiw_9>N3PLNvC%^ z<7FRlFB_gyYC_;8!#hc9Q6=`#=Z74lmEA{{-4yP4=%#QjGU=H8n_3$Cdck~!byTds zqj(s;emUCFVpo`pXKO@W74qw7b~OqtvZbAR4rqQYisDU;f;ag z&CF%Z*?}8YX1C2-nH@R_Z@)Aw>{gSVZrXIWCH3^z0j>hKzM0)t{APCG&d0OcmOP#v zY@Qzue&o>mq4NcJvCZ(z{ULPjfUk>a>pN-8p}Bd^T{{Y#Im3-JB_FipTzM{pBdaZ@~*4@h^C{){wuKFQch&mWcf*9wRK0on=NurvGAhB@IP ztzc`%zRbps8@|`5;~W|;o}z4h6BsSHiqSm;))MyebY5kyOQnvSIQE91k5#S%`KZ5V zzLNdQz@2~2miyr*fy*LwQrBwr#FkTg3uIla_tz?4NBLlD0Wz)k?j@DHK#C_@>=gmt zwY^giZn*#S8i6B_(xlVi)Luup6TVu$-r)?=$Cx{!wT^v@8yU-u7C-8=etBf$Dat*# z-QjdR5v_$5l{K>W(rDq<0Y3z{jBJ!~S;aUjI2GO!U-IPKWlG%-_Ag5eS1r$N#E)`u z>QLEx^E_Lny7jwsWX$UDK_dm)FMm;~soDVEz?bOE(ofd_ee3zo?AJr|OK7xnmr^qp zxh%5T8b=9Jl-z?dJO5|JILRWo$7r&E6w{v zRv?-57)d{wH8oB3O~1+JyJ|aks&?PEH~qilS+Y0%M*G7vM%uS#9kBb-yeqSuH!8j$ z@=xGS6+A7GwO%g|Sa1iTulHRF+}+^0yYidZOwL?Sp1Su9J@#4;{!PBzj^Abhbltx% zDI7e^PsWovT}xWey{q8-7Tcb~d4JGf+6xX$a%@=^D%HQUygcH18I|50%wkM(o7 z0*CkBi97JPr_RanLAx8@p`gCjMEPI zQ}7o0%)s4)^h??*F!^647DMFte4Tb)LT~t8vu$@bviPXT-+EZ?+`wwd>U7%dMyImoonQSBIXtyByKQ=F z&srpKHUGOSvyVVe*&mLS#mU^c=NtckZ^eddoaM-0FMM`#U%CEY{0lnJXF5N-me@d=mu^af;2FoW*L)(s2quSGu*odCIzfm}#0wK)%<8-zCw3rigy@Go@L z>-`G&yMJK7e*^H#__W61dhgDxI&VvsuQbnD|7f1mzq|0^f?P+YUn|^NL`;X^x;f#_ zjdQ~5Ra=A4t2+H72X8GrecxW+f2htv;@$af9Q<&wd|0@1&9LxEWQe~0yuh#tc%Th- zk?9Z8$9rtV7((6`+=P5(y|@Y=M+bVn%xMaG?aj!Tf(dy}=EUxT0E5%?x}HRT>kA2S3pS0X z!&@A(?lm2VBH{}b@lMWxb#{|)PY!2r zKFpe*_QOw4F(y60vLsj4N`ND7n6RO z^hVP8q^~8thV(kpvq|4Tx|Z|?($-wFl5{m`=9;z~-ak$Hx$5jAB7>PDJK^=te-txtxdka>na-XYt_I|YgyWhdiS*31btQ`zYRKkmpMIT?I z9IW6eGEIENlHu(t`OkYf+mgUfY~(VAN3^!>Jawa4I6lz z--8X@BR23{!`3ZlFC-pG6Y?Mf+NI1=wtj3QZU^#1-m(5{Tn^mQ=C<+EeA~*e^lj^& z&K_s+-g(C7hd&X%09Tzh+ z)*Rq25}O-vr{k9mAMW0dZJ`$Ug(v?|xuC1wY{$oZS6_KEzMEsQ-HhoBvfgc{o_hKq zGOtb2%pFtdM?K&9&=aID%nJuAfiYyy@=vl8*A_S`q(l-d zn^Ihdi~q!FE~-@>OIzTLRm1{XN6|wN&9LXWVN~r!2io%28JdHbLxEONnzbUwkfVRol`gVt3T4gO+-D3Ou!H>e5un zi*hXu5Enw$5z>~2|Ft8jpJ&WwWbNsj_pTCKRu^%cUP}n;{akAF^HRRqzbvCs&nq+X zGRTYh4{TB+js2Dk?4cR#hh=Op-fEL~I?u*rrbjtCgHx;4rg)Wug~09R?gPitY;6~N ztkOfW5-a~J5{}Z&a!!5&uU{1Z)Xlyy>F1-nbpSJ-Ok*tvc9wQ0mZw6^37S6 z9-!Mn^Re@?7u&uG+!L!HhB!^J;unt1vyfN?s~$9bE!#G-pTYWI7dW8Yp$zuE<-1Ab z3vXv|ujMP~snSQ4|F%n!eGAybLJti_)0gd6Xi6ILhWGNWop-vfmuT+)fX8}ty>4`} zBxL1$aJLEkOMSPnf6@MQfzPt*iT)L=?6vDj`{`5EhYKXXpM7u3kChs+;RWfZ*znq* zdk}k`uKO|PN&T{ZzI`}27kh#Uk3!7dV5~CTg5@4yIV|5r*tNudWzp$;*4d-}=yHz6 zww1*C`d_hY&7y6?PJV?pbVRR>D_A~9>`Vts7=t{x+aH`_|F3#v#9L$(-=9 zdueA;-!i%Pnd@unRg|e(8*My#vO8IH>{4J5n#n$Z(6kk9rp|Wx6(_idiyuhnRSks1C*Boa(*~$7;#&U20 z`-Juac(NcI8b8<0O zk3&uJ2U%Zt#0}qcp7`#bL>a1Ol%0O;kku<-1u3{i)y%iCFyeBSMsd&p#LW{1op9a zK|f{w-9vqr{Vve$WnELjI)L)n?*h@_C=T4f3rVaOTWq<`Q@1jJU%rjok?pEnnH3sOd>8BtM~EGN1pPmZ4d}SoezWF*q7w2|3{J*+Lve8f1!hJ^LRS3 zF|hKchQOUqVAp>FT(Z8pm*>iP4ec*BWe4ZwhJz<#!|f}0{}B1hp2)6yVU*SeP6eNj z(WcnyLa)Vz508Pq+v1G1Z*yF@c;AK2sU!28<&0Su@t3ELRC@3jcnzD#Hf$s&{sPUU zcS_pef2&X5mp%b=uyT0g5n!%@2aYlxg#UH8EnADgjh)4SH;LG7^BV#yShLiUzpNVA z`7eBH!u>7kJpny7B12jZ;SX>ydU}tOy)b{(=j^AOG#6agRXmxszG7t$z3VEf zvVzbxD0CFMLQ9>laioP#Lf4fB9k-qrwN+>v+R#ha`ngdLpG-FCIR+h&Hr7|H%4&L{ zm!1tpd>sCj@ezc+Cw7{&ZjB3X8<*mAvwx}I&wRo&_s~uF zEMBCtx2*W}xtqMhR#`EtXz{oxjSigtJa`CkrivE(O?ogD>X$9BMgo zB?dpAZ)&HIE5ZYgY074cHs{Jm@6oo!N5Vt@F8?%9-vrS!OddH`I9`o_++LUntWJaV6e@fu0yrD}CX_WVT7VrSIl?8%!A zIg4$x$KKgT&LX#w3lCGDg&XOo@OM+i6It6CN7k5cVmzHhUP}D`peZj;!E5@s5<9KP z+Aoop!AW^Ok(HUq&X&1@9{%fjgSH;;CnL8rP9tUHT-doMmrCv^Ia^;>xBkz1CGM4q*kBggv5$P1)TA|t0d z8jphOdf-0RoT^;~e@dNIv4*ZJc^=xrw{7}y*6;snJNACk6CW&plPrFBvE2F!$)=1HWPRbpvh0yh`Sl@SEf`7x$ zcX3Az@+*_|sqB{x(a#4A>2$N-Rfu0=OIG)$RL+|wP}jaNu@B&Pk;4uLV}Y?ResS0c zm$u=nA^NtgNk`tP)QFruZ2GR1v&L-t0d_O|)mHsL*)*Jf@5gVg>Is)`Ridn|)#};U z>%Kug@grZ!^IXiGuBv`+}_l`+9?!f5Wj*aJ2?tAz~_^{m*xa?^IL6`M)j5zY!= zw`pU|*D|hUZD?IV*oJMRn0VU@53u$XKbZwLzZ$cATvzZ#{5i0viXV^IRYETn=xfD} zxPoxe(Z}`{U`rBPM~HQJCVN&r`VM}1Pp}>mpUSok$OqF0C-5Tw7p%sT*g(5K z!{12cwh1ryEbZyUS5;t+gg5tjXd!#}_|0_E--3}b)kBC$UY10BNXAeI`)CFCySTxF z>cc;iHbZ;a>-(iEJQQEcg4Bj}LwWxc-)y^pwF^AG4VwmIX#Tb+W$9$%EL<{7xgw5n z(~941A@yf5X2$S)5dZ&37~9z!5kIj{m?tm!_)J*ap5bn=@%Yf;o1aTNobOKF#@X-v zw6Tq|;41g^NITVGqn)d1!y)a!Ut_tCreev1TO-?(wth7LPS*d3Gi1ct@zO@4v?0C} zv?0Ey0)GZ|hNfdfTkrCXrEb~l{CT{xTYOFbaI||<%MVv<TGn#eV2oU3#6f`c-9`1p|F+l<~M) zY~JQLl>H^S3#gN^=pycV3S;qw_wc{H>E?|x9%GiLc0Ep?tU7EyS4M#vlbP}8gU>o9 zDCb4uXT0k0-v(^U%<>n}@5uLd&LIfRc2H)qSw?U^c9kn5vYg=gx&iuFT7is-;8Dv@ zFqg77N5V)y9V6-M=_2kTN|-&FK3Au;p3hxHnUf~Co?V;~>leG@c<<`9k@a0hJu|6C z#+BnA-J8V@x&QCj0i{jP1j9~>4)N2u$kL4k`uTtW(m03q? z=Y+d9V3+(L`k<^YVLrA^t^UT2B7BC9;4INhr1?7-&Q z(U}x3FH@Xl6I7>rq_W(-l;0F(xg!;S#av~1d7A3%(T%}J8hrVkf1F%%{IYN9zUtlJ zGj)wJzw3iIUl`xt6ZjBYFpg0RoWZ9bUEYCiU9|lwtuQTjYZmsqZ_h%nC2#YNt2Eum zW+C_T@v~h{Y*ujQ*)dpK&rkRNB^_oRbAmO^N$kvB_>Weh&jjB|S^oENgSQ@MpXYct z^6+?p9^+bP`T?(2?s^?CdY)uHg!CX^7h{Hu4ac8ze?nEVK`;^^sRc?xR~&9WTWi63SJ!d zD)YlD<~0U8BVe=foxt{4L3kBs&VrnAlD1OrP&4p>ZzSNb7M6V`vyQ-B_!pUV4U{bUf>@OpKk1={f)OZifw!S9gJ~v4JPl~ z88=eKA5q48d*3pg5x{@MGk1MNnbJkQWn}){S3TR;c{_82*-q&~qYrJ+N$x%>lR206 z{^R?Up}Yly>W$W}%saIv@G-XFeb|3n@sD^1|A>E*?j*gJ^arHhA-$LMYoxc4{($sH zq?<|aB)yGvGwGK|zf5{3=~mJkNpB(jGU<(^*O9Izy@m8^q&JX$k+iig1-8FO^fT?d z^pm{Y{U_H%mf7CXi&OR1zPPxUackir?H1$vo8)`y`DgIt8d(=b)^!0q)`frU=JpsZ zII%FC&bo8Jy)xdlO)3n3Scab%{i(CDHsf4DJ!b;tJ6+G$hG`kU9mYKz%0W4IguVn{ z!CQ>mHpZ{e;xK0~bb2gwXr)3A##4`iJpx|)Zv{eHz*f3P`2Q_$~wd;}>!OwP?MLZ|RzujfojczmYw z#KcVJt}jaVhEfujhc;wrSEkvv$~mW_a^4BKDn6u%6LOu~1}jUSdQ6$W`3Ys3zD~`f zZrZR-=lsgI`q~k(4Zf?}2A#-!-qo#%Scj3fpFDhj=O&>ezHdv^rlTiFJf*ZW#sGY! zpOawy^^a&>zkSBxO#==kp=Ykx{^u;+Ulo6GSMC#8CEH)ma^*hB^9`QZ=5y|8EZN?~ ze=m94c~g}J9c zReN(GG#2>S`-;VfwHUps?OOQNvT2;7o%`4H|La`){FM4+Z7DvO|0*o2zGhe+pg!Tn za(J->`%{p0t(?n}J+;I%;~dH6ir#Z1_2&88I?f^H@U5Il6#K8(DwfH)MC`*(fswU! zJo^i;qmvYAmWoGd;3pu*0~d!?uVw9 z4zd`ZB{%*`W%w#BHur_yH?eOBPw%`J9gC+vcF=K0bM8Z@JNwhYW_(L^oo|HB|Lwpk z^TEX{jc-1JXM^^+$QEPId_8-x$D`+lkMmtslDUtKe|`N>WxDwLbXO{k1$-}SAK6oU zFp`GnXd@eC(GZ*9*JUHKQ>WF>J7t}TFM`m*(cjmewYJxdd^N|){gf5kpx7TLvhJ0+ zOV+9@qRg?}cA=I?AN6%(*%D`H-UG{1*+V^Pz0V!1iQkZ3ALp%pGT8iX`^B306-Ua4 z%PjezPSyh1Uu-HNZhuR}J_EK-T^AI&Sn|Xd^AE#|N8rT=#~FP1K73e%E#p1-ti|NR zCiw6_ZZP=pFO^?xlJmtsBR%FwcXHcnv)Mz_J>Z^+9z3C%i29SmHA2b zl3Ak#*;ne>duC5*6#LLO-#F{xf|0Yf${lPck|{UF+H-z`J?5Rdo-TV}F7}&qy}PnR zUW+~}dt{L|WiR_rvX@vz|ANg$;b1Ya?c~|Y@5LBj{kR2A?l^3$V(&?x7vZm9?M;m# zXq(R2nZT0Q*>`$fKP#%+VwdqBTWsJV@>jf`-Cq8BcF;asx68JRU$pp1W0UQf$JmP! z8>pN1k2F(mCqMQTWluUVeii4AGBmxc>pV@(MGybBXYThXYw_BL4*WLmRKhKJqcTJB z#4QwG;%oIaGy6#K{ucJ9k0%q8&*aC$m9EB0|uU_?|5I z7JIAg@5x@@J3ROD!uZyJKCw5;KCNkE z7JIX9dyZqzuaYwC`vutdYZ^DYR}TQ+LukL{`)Ar;>mN&THdUk;Wx=`NTNPLt_ra@& zO8+?nJ(Sq=yU+ul%$BvCwRd<}?6lxsY_-9c@_ik$cgVgDclUrh@@4-U86IT+P`BN_ z!;`gla4%2jQok_8d3^Rz_7*3}-r_5|{&0(T?niTog+4z*e<1Jg_8@q|3gjc%D&kw=T< z-E*Sjl79j4ttki}!|t+WoFN~NFEr-q-;H5k$CQr&1y_$0}ExWNf&*3--!+&ydJKk%be7_(CH0 zM3!L(6?qmK@9-Jp^9{x)GR@Sj>MB}D@5&OLy1yU6c2l0s2fi-kSQt6B2^l7P=eqpD zuRxby%-Mb9m$gqM@=NxP`pYkTw%bK^ieCY9vdjV7P1)rX9E#jRb_Sal>HBg8Q(aq6 zFm9#avIp?d9cqoWM_b1}s4j2JJz9}Bk9<+Ew~s#ox`X(A92c2`ycxrur@Q;%y&+T9 zxVznZ>*sPNf-_I`=MCP9ZQ2(Sxr5AEUvZ|q86hxoPE_Pg7qTXdtl4DA8TNs7IRj35 zwF+1JA5ngwFb~7h9Bxq{<_y7r&xoOiT-E$ zfQmitG1;$RTjUpy1YjCSOhb@PpkSvhNS z>azl0%hA*5Hi`a)bh*nu5SB`>XnJSmG$t*onMKQg9H@x`1{eOo5lYm!)l;`8~6Qj(z& z1gYjc($bcrZHnBf`%K1^tF-!wP9Jm6yNTa1Ig_mjX-L%w^ zdOLO0-HqI~0YhHXboM+vd*tlE@5z^Qj|%oU6`z```&#e@5Eq z=kUJ$+&(}*6{q$Fc-e-pR+^ku*YShT`V%gv>UH(lRrfKLe{lkvs>F3*{t(+Ce)jW^ zU`suW9mTSreuuap!P-Zc7p~9UdKEg@t#^=?buzY9-4}#;PQ?~so5G&ub*xoIFW8sk zJo(QYXMxyEyHl21xv}3=2x4V+oykrxc4Wrf9u)z5&1s#6QxG%KIz~|c)_xD{E@aS z{nc0>PS@IbA3yoj8u1}MCjP%V4^7Y#bFXn)?Ix$?Ixh#7!;HBAaUJAdpFHTxS~cN+ zjL*rQxj*}N@QGc!Qt%lUflu-txA2MH7zw}N<-k64ZhX~`A+L;g!?nciNzUZgtr!9m zv|V<}pog8SY|5oQOEy_DFN-`w9#7UJ{*1&s5_+s;%3C3~ebqDl$~k`kcc&W6e41t$vZ$ z#+s+__S0*wpbyr%^J?0~W-$Fy;G0DqGx_CPb%VvKn5lw;{yzEM^G(_cU9f?jdS0n{hqBk1Z3z!efQLjj#?#+U-p%42z9>C( z9`qNb<_Xd{);E+bdPC{MUxWDe@07XHEb~x;viTQQ9VSnFn{O(uJnEQEzn>q z>-x9TwXNVImv3}_`X9vU_^KEkH<)!#GoL}u_OKsyFjshc%lsbuVjlCc&gR2@ zfKU0xn4>0Wx%AB%d(tPjd8WNh{2L_Z2snF!zF2%<@t5S++r;i?^l_#69A-X6M(TYx zY2*gSau!qa1gH1-l^SfBn*tMALl;@L#Oc}vz|()Pxo5lyZaJq>3Oq)ijI&LzZN;`K z?F6Q3*z1k|(C-NFiHvy>8T>1LzvQRG1nkMLD>dUS7~$1#^WW-=AwQ;T8I+OO_419# zQh7=Yt194@m{Srvc&)&WY@PB2`%%;*=P{++W#-eu^QsvpTuoPK+0-jC-U~b)6Q=&L zO-iAoj(@#hmunZ%=N|b4{Dt(*l22k6vd;17e90QY;>#Y~ktZ=QE?i{9JqclJvC4QY zc}Ct_KLNL9EE4e#4KC>$i=?dwuIqhq)FttmZlDiy%zi{!{nqJzm3GlWWB~XXCr@;m z!Qe~ch(^W^6&f`i3BRDL{J9W3pzrs;<4NLnN{rco@NszrKD-0qV-$6}2Ea!m_(-_j#0hJY$h(%T z`<2cWF9rSZ5>EbVytLIAczK;~&xV&4@F944Oz?7!{PF3=Uj7&eAMa7uK=?@bhO)fs zu@UneZWAZmA8f_a`B(X5P(OTZJ_mgKhlvmGm*C@Z6CYOzKAP=}m!ZVk9p*b-Y3B}6 z#UD9NehnU~7(cAR4uu#mIVv&i@IfpYoZql0Hm{-GKB%E&ToY%Oq8dsD=Qi9P>mtwA zAmgTOxV=Hfj@VoR@oIzYGxvs+X6>%1YQG-(Y7lU zUC;hT1P)h$136bJeu}M(xq5TVO`#7WD~0#mR}m*NPsXKk@S@SK6D5=@`6jZ^#P@#} zaCYL}KLWD~zHQ)J(Yo_vcK65m4FllZ%ba-xJhIQD$MF+8gpF8$GpO5=Q31}M9~rOq z;&_&4ZYJ+j8Mh+yq#YZ1lgQKY*mSWbauXQfQ6t{!se7CC7*FSl%Ui*vE|&!^S$9x> zTm(K#(19jTR%(WWqrX$u8lz{!=YN4C3!ehp2bVCnF?OFO|1G{h*YW!W{$-YYPlI3k z$oKJ{xt~y9fS8^Z?!2+rG*q5U|`kG6PIa0#4SlfGI8*0Dz{ zbHn2i`0YP8td#zO$84T5HypWv*xD-w!-EoEyYHBP8Qk?B^XNYFWgM5-IP*|hnN>#2 z($GXjk71Z9XSm=!*+1(U-^BK;mNtp8VU6EFJmcHJSxK2cmB~GG#lJdF{Aql|{7F0a zM&L-sFTtho@lX<65%@S8zvTj>#cyu*7y7K_Ox>kqu*>()684$F-+^oGHJQ}=W$}mw zp9$~H^i8Ah&yQ0y(Z^)JSMKTXFsHNMyESICa$^oY9E)f}^edHE6D_pg@Xg(Oc&K?B?Wk zSH-!)C-6_Y8oCJ#EAkcX7Gi+7fWeI{$Ilj@lZW*){%N!?I$=q)%NM)brr+~{QmCa< zPVRb2rH*6tJt#0C=X4m5Z3oG_|K`~~>8HK7pS%A8jFJ1=|D>GQS=^lAvHH_4-@bqS zSAP3f>)XY>-|i)^CH~Q7xqcc-?He*|8 ze*^t}3cinwNd02i|WcvfbJfT0#jO)m6dSD)$>$^A-=6-cY z!aTx+c^oho4+Jx7N%7CoVSZ|69~etbymmheU5TNu^BF!i3#iM@Jy7++`xo}cE5A{v zYj1pb9iMzhxy@2O$W!pweGU9VJ+sVu-0;5ClS^9OALo4}Zgtq+&F_N?tB)mn^20w9 z_}XvQ<0|UoX;0sKK-OEbgZ$F>^THn#b0^39XQ}Un3$}hkyh1%~a zbH6QFb5|@lBldy&A7^Qw{L+rR@D|#yIxC-XU!Sypf_p~bCuH_~_rhB&+A*J2mXpt+G^S;d0~|H2zOdUj+;kfO#P|fx7)EV=;MWNSMaTzGi)7) z41!)lXSs7v_R9P4D=}l_n|mogney8xFJ&k3U!Gz=m8Y!FBcDlT`d^{x!mps|9Kq>V z&~%pI1eyl83#eoVd&S^Ja5R;tH7^OSrsCTqe0n{6x?1|w@2(Stdz8M#H|~zU_;0iL zko?k5^O29nSeaUUn!9`YjhlYo_R!b-_G0=gFiZx9GGGw-Gf+&HLU>qWfXjN`@sz78 z6qoy|=*@SNF5sQQT?~t^u_tg|$)EWnR~P1P`~%`T3pnSNs(RLfgUtiUMZ!bMO{Km$rJntjCL8%Hk_jb3JoH>@xo7snN zdvHyDY0}JatF&{K#L@4K!?WF@C1;zgzHiq0&N}$+CI4lc z&(V~u#np|{_LKLNnxlm_a&OFd#jGnw>v(aHk9ywCQ1Q8cG0MlD&btow0y{SlS4IA- zsutJ~ZRV?*Zv$txHaL8#sd+vJF`B&Canef0Y87GwQghzlXuq(luJXbe+n&1+cQ4+3 zYpizoboVREDyD07mCEjYv@K;nf#>oEb+5^Fu&?|1G_8^~&_Xjm+saqSM<=xMr<0$? zB0KG^OSQ@!inhZnKgG)bgnXOYlRwF-$B{<;sy2@Gg0wrq%HN+#{i@b(){|o8&nJIJ zZ#|=}{JY4v*?QoKC*SwnZ8PdCZ=11-J04p2rBYWse8T#6X#n3>*?X$D-_{kg+vN-? zBc>~92HxoR=V|v{tmRQ&?23Kz|2&R6rwx3bUU403;n_ZTLtnr5zfYt)e~f;Q$6=B4 z?;+QSp(Vbya=%8#(5@}Qw~6G{Gp{q>Z}Ktk%RMuy8COg8u>;MCS}8nv6x(0-7^N{# zOzbQ>YnA3a_7L&cZO;n_HgNy+Hr71m{1;5FJ)hY6dt<<9aN-DGclk(PclUX|&~ube z$`4mul^+i58>GF`q|~e$#~owlSa+jq%m+TXGdPfsk1lfPSDP6Jz~Ie`(>Cz`NF43* z?&zW@;=@I0D*HpWNuIgaFiz?gMzPnMsM*+C%_AKIt^hX0l2~tc=`e4$_!*Xsv+*0L zb(C{f?Z>vT5;dzKm3VOqaWYeR;t8^t9*n1JNZvc zxyl{j+fYsP1z-LX=@#A`DtrmqNY4iKwV11{rI$&py#&%w{3xE z?r2~vpug^gDtD8N>9HXkTVU7_Qq8?Z!9`~MDSbW@y((C%&l|}6n9e3-n$Rw=!4>}R znZ{a7$^`6#v?HIOCxC;3F~(eI(AH|O!R;Bw8)=$zn41ylxnZ} zBR@yrW~V~@)q&;~2fALujrea;M%H5@_Z0X?=I?s$r<6ShH@aLIx?CpbB#SuTStM~C z)!6Ec4B~<3Dq1QsLdvJJ?u+pmK74XM*Kx@_-(4eJ;kz%uMl0*pOJ?~(oWB~*nyqN) zkZOO%uytTvUZQySjsZWgj9xjL_O8QcuxQ#m-*0H^W!idW+AQBl+EcmXFwPcNJ%aW;Hg(+)$B^o$h7POV zKV{@PKk%>Sw>V?OIyn<2FeqL}&-@~|DiM43PibfSjnZS5>iv14#{tam6 zVV^~84f0+^7iFI#97q;_YSuT<<^|@ndC*nn`N;21uP6kT0`3pHmbc zv^~%B`yV#%L<9&c$`Xi9ba%DyfBX z;-h!@5`{OxNxMgAB8_@xckngl{a12Vo}DAMzeyKr&d`W+-m5tKCW5C`f~SRXcyfa$ zj}h>Y3q`C-*7M?m8^AGst4w|P2!ljBP{)2lIO;pdheMz>_`>7X6+fhy{9y0FBs=*5T-MtBKu%O30WMFVlLVJ@Be<0Fh0-`1 zWK3}5TTxt!&FzHAR^cyT_*FGWde!rc~0l2^X0*Xz%i5)||rHqqgWVPZIe(9(o!@<(1eQUTh0$r~5W1 zd3!b>b6SzfvJdXUFKtEkdPiz``<(ipGmZi_9!CK8MyFg$50(k-m0u#&gp?C%`>jj6%8H)_dnzPdBWea zE^LeTnzi(?*7`z&*ni0OHRtxOIUw=&ocq^2wutjg*D*G^=c*s|>U(p0<&0CgCOMeo zH0qW2=JblqnaP+!i(6PzXnL`6xS0O#L7&mHm0Umkg-f{iRraMC$&*-)O|gp4kMi8# zW)IDMV>`C~wjoAOw!5H{ShqcI;TxIrdge^Ok-SXNaXHl2q>u+mZq*9*hHiq6umP^O z?bH*?$~arGG-9tphfS7Vthe>XMrafnQ7?L95zj;G)DWUKvR(WsAB3DuTW<`Od}1S1 zOdi+*t&h0)kt`*TT>5;*5&JswJolh`#8>J6Jot=%eul*>hoCQXl3v*xZpz&~3_r+i zgwBNPy>|`MyVaN;Q%2$=m9o~*bZbt~u8gT+So$uATZ5w9xZyS1^a#X z)@21-v5C9Dr}#kjUY6LQWsAi>jy+2-25$|QDcL^F#+&aleLvsB9?$;McMj&v!6D$> zi_AzyW~3m~ksEv6dX5!)ZGq2aEpk4j$ab-H!n3vJaE6>m$lnDz&hZ_c1TzLJ`e z+$w*5F1#YWI_^Vv&#%hKm->+oHFxv8JHf%-my>&f&8)^09YWkYi}%k<@cuvZevSD_ zk9Av4t;7C!rBGyj_4N|3v**?=ddXwzr7h?=nOh|>cG;80$1kr$_RgsE=l_;7`&I)h zY;=7!^Aw+PMrBSuy!`x``<8;oGVoanUg_C;`_;zjJJEr}Bt);puceT+WWE!Qtfc}t z{Eam$9``NKmq05K9));5*=Yh;!o}c*}cc$pP=6+D)rnDLsc~e{EChYxf@Tp1Jpc+~ap`e%YJ6 zPo2>w{i&A&?_|!usde%q`e^;cBB?X&%Op;-7Jlr6FS_st8j-Qp^OKs_UYXQffxof< zocgs`9g~wEt78iL!sWG&v!~mk_w|hZ72eTatm#?Aeb(Wd{y=os82XMTYkBQoEy}gu zySTjV&t(d4ai@oL*9};`m-g~n5 zgKNJPm192e7_&CwTI)D}`_J~;`oeQmJqhxpnwXN6TU5VF8zH$x_3K+^>7CHi3jDG! zK~pOJpmfls`VaVD(Q3mb`lEawa2zc<&SxyzG@o6dUv7_6F-zYdo!4Kru78_P$w@hNdkXxS3ZD*z zU!(acCoNff0$D517a&)2Qjw?7ea;9|p7vUP5Bs6lx5JZBA2B_+?@j3Cz+&b1tc4~@ zxW|9JW*{8WTB*VBnnf)qJwdyO74>3=gor7LT_X1iUgchim3Ctz8OWL3FBCS<_>$N~ zDOE1$Lhkj#8@4}mH}dDp(1O@7hkndCl?OaVoz(lmL)qLXc2F0zE%o9(snn@WcX1w} zo17M{pmh&4lDwnSBWlk)+ z2DmOo?v+LIW|V&joOTnV+RAz9q9e+Bfm2-^obcI1_LX3VzC;f4a@ryU;12~Ce)|o- z3H%xwUHe6j{)X{>%y{A-G$BU=b@!-wHJ}f2-VN_kHrM2fOq#e9#Fzi!k_>J4>8?VG^1f{1-%WV`kojq_ve8;J=sR)9ImcoF-C@&3$s z=xXBBU5+2H1-_lpSJby0dtT&k74o+ZI;=we zuCe6r%u&UCRmk6^L$#fE>?|}cIaAd4Eb?~*@^?A%b8s89Azq$X5D_GG%!i6`1}SLQtk zTc{ZRDMG)w^g{B&S0i^B=i|&-+4eIEh#g_umtotlfri&YGbuZw<2G3FnXE0;ORpG9 zOc%OHMc!h=wSToR*EzoE&lElStOk69PP2BW>+ZE_I{acj`!4bfyI=I-S>@R(Q=Sz= z4^DZun*VKicDvBZK;wu!v&OlMdozhg+VbpOaIL;0&u-*5C5yOMWYiOjOd0igKAqQp zVO_t2Px14+vpt_Zb$b&0Gzd8r>+|PcNGuxOErEA)hAk;T7thJD{7En8>}0qG^-vR5 zF23g}@PuI(%q4y&`(_f`2xBt{><-pw`c=q=xzCue3!&F!%{k}-;XC%1nnjDt~beE6d%y@W#yy4UCBM%(tVEz)P`vx$} zDb`Le;u*;WlY5_ZPwer?y~Rc9UNfFICRpRRSH|}%e_%}TCaw>(Mxj6Dzg3UW3z^>q z;Mnx%MxX=61}E^p(17e4ILGxduDtuimBRmSbdLv|CV|sI@D4dr_Yuq4YvxJijyLg| z10Dpgp#*p>WlhH|yxKTj0WXBtXh!=gaOyE}I^;6;1JE&>Ib+BN&Li-{e?0-575unY zY9+5^j+;3@_KPV3^UV_#3>oXhrO*XqNK8R&9Er{O2b;8k-O()jFM>0%4Q#2LMO*KXIbXo0ewg>sxE4xY~Aw$ z^Ek;o!mK6HJfyBj*7qtnU&UHa%=9(O`ebbqlN!wW!mLl`=zm$uMQ1gKi1oFeqCYyn zzXWa$pkMY#3|d>L@cW|)o{j4NiiJwYZ{dHzui{zBTT*nB7Hs8Nv8(@G@LMDJ9mJXw z#a)x|;Y?pn_~ayX;>FJs9lQZNCxdTrJ4g1Ra)}FN!N-fVF+B$B@xr^x&O}~1dDn#1 zIAAq4D17|$dD_M`oR89pZ?*ERD1SU9b40Fo;L}K*gUOEqXY*MT&SQdGd0uc_%i20- z`>-p_J~Q|>#3`b&ZHc9xy8WtXJhevCH-Amr*!y}B=Z@Mqw8tKg{V*X|$JmQJV|uXH z)!a;e93R}w+^9urZYS0&?{1|RrNFoy{EN@~Ir$wN35;L0anwRwmH&kg7ua~pyh2@* zy3x5#TnWu8T#XNYQsBUIWB82M#j1!5;e9AxpYf`3eMf`_R*~nVZNh?E1UjhVG<>)Pji1v##f^Qxyt_BWfd+A?){-rmc^ht0EpUm^RxKN%U>=QLp@afzrd7FiYV<8{Gj z@is;Wbn+2wj3*s7#%k<~D(1i3VPpI&HpcMb+Rmz`LSq&-#+%p}Be5}_gztyBzq#p2 zY>XY)7&``iebYCw7v7xx%}q_%7(1{r%zHM!yd(M9O*_y(Z_NHW=X?+A*}%JPrktD_)#JCrbJA8)pNRW}ujRhm)%((d7sS0U z*|85&%RY$A(c5mGAtbq%h3Hbh?1vDO|kRXZQsN76+bBK`wRDVaG%P-iJQY( z=4H>Jl{rgncRaXN_r|TS!=5ke`)}@*nBOq#-U@uGh1k&|n}55|vvCO5&qGc&Wj#Ji z<&MP5NjLH7qLK77$rhbJe;M~bpPcMRpAP!ijhv3Bj|jejpG}ih=fHO~&vl7$2Y8I+ z=EmVB!V8Rj6SxsP_`$=E;Jx$0!}sw?kdX=S&{Wix9l^sH*FPT~&TD;#3-luPP7^TqPt`)nf zJwxTtRcIM6{-f+NW%E1qhYh1!Z5UOUc_=<)PyD@GEO>g8@RfkgE#+s@6;1qm*Py|VT@r!$VeOw!hQz~btpzU)y8HEmCJn~JA%WfBly&zdD(5kwoT<1p0)y@U zgfNiUk)0bN_CE1|V6tz9p3*WyPt`K?q3tvDpVVaZUIPz3lr>b}k*)22WAq@if0(%zpGkH)iTz=eZsGbM#B#r)Ph6iGFyNNAhyo z9vbx#9iOQ_>yBCap?PkDeexr#J~vs%hHd&$+i3l7vs}hB&gg!sI-j0c#43chv3ZB^ zcNKPl#9kzpr0ALa2(2SYeeYfV1aSlx@q}pHG+cbyS#vilN1bQxCN{}i57NWfGfqE# zz}**qbWn49P0PX->7`7pA@sD{%-`HQPX9W&l?n4VulDqHFZJ|=Z{Y7b{+9FqGCptf zL~}Vklk_Wo(La}S88B6`$Gx22gPxzg9evN7B$xA2zMs60{+s-Eyk-*nnT$u!v6=pVY^a!`bp6b+P1ShKh?h-`dSs;~1Z_+;1Pp z_*0Q+bygUi%dC-LVRB*&BWxXJNsVD2{ohZDEE z`fAB--{8n?7dd{C^|$l4mYnY%`YxORChe=H=^czAd9C$4FV8ki- zQcK{-E4{tAuY~bsFHSv^JyHME%jA_pGd~~c%qtzI|Ig|0Bgxi%UgUouL0;)qUlE&c zOt7bbcqa3h&Y$@4r*3yKXE%I64*GRT#0;sgEOzNR7drO&$nTMOiOgecJNu;7qoAv? z!G)KzKk6Q%zSF2FQimhCvCe(MhT)uL{9|{Y-^xSE#2r---j zEJLrBkt=$$l@raL*z*O%t&%+xdQQ&Xu<1L$DB`@)^x$#o1}pK2Ia`x+xX1Q1N`3*c zrwuYF)iTpj(oj%E|v>h{bHrtqxnLtNuZuG^gDJa;=aC~>~8AAR6kmBY+4!>iWf zhgxTbS8(2W1?QbV%QIW3H{48&Ayf9u7%z49_coQe#&Q03Du3gjUi1~MmwgI#26w=1 zo*~}D8RBbPT3<5z`Wt@X?tA2yZgQccd8M_`W382cr4hS$`v#F=p`K6Glktxi5pVIa-b(1&er6ue*fE6@%ZkBw5izzxVr(uY2dm*Dd#`a+ zhG%0fur=Z5Rq&g7B3#~vf7mX2vn?0s^Ty(vt9{xj`W*Xv^%VUw`+NHo{Sx~-w)0HB zYYnRlgfE;vk@%3$aGsFRRV{TI8>mwmC`Y-rb9F(hTg$7Zj>XPXcIGJmEBVPI*o)f- zeutAY{5iK)my(iFXXYx8aO5fve^et^+4iwyUOtIYn7P9BMOvoHt+_5ucw{j7G-<$V zEN~kKpQOVlT3*lpuywXm*1m6-n{O(^1 zjkSOA8Lhx^UmP4$$dk^^BKDEZ-p|ZIhOZDgIZx}8p3G(}d_qv{U^%BgFihKdD1-AQ zJ60FeUck9CF6d}F`zBdYdi77yc1m1~e)P{vtjN2Ce74((duJ2-cctp=v*;xqE-{d5W5f%OaT zXd45b8+&Chq?&lku9_Qr11Z|h&4aa{ZGrc&HPbdDYxW>l<(i9Y#M#=kmOQ;28b#(m zFS*G%w`fLQGUtR&(3-E{neQM+yJ~z!M_sWY@=fNIGdy-)$DZ>UCtfNx0^~i3esI#^ znfq>m)^CR9mqGhC!2>svb5xGp7_1LI8BPyaGOJ;9e;WSplTjL$eZhDd_8g*a9N$xN z3=Lq>ovrGbn(Q3Iz_xjYv4%Zy@D!*S-%D;rljImSK*L#Ms3l}Q-S9>GEb2bUk@u?{ z`LoYgc>Go9CqUj?4*1(?#y{IMU%u`Eh6|HP?c^r-N)Q~sZRrN8`dKu^TW{})ao|8FqmzvSx$kpI2N|DBfn&!*3} zDgV=Y_VRp*yk}KZ{vS&q|GiUUUJCujKUaU8 zeIl^~(76HNYM88#&;`<_q5>a3V2o z+2bZAXV(r1Ux+WX8Ct2OAEW5SeBLLtk@H#25WN_MS9G8H=xb4Ux#Hlp75ORfIyl#c zSM<5XHoQ)Rcai7NcM;>uJOw_pPY#)D+IC~1WvK^Br`BX#@VC?1W3%l$@}D}v%>$)Jm=JxyEuYDYy*|>q{uI~4#o}j;!NyF()*Oq?IS$)19X|_S%QIMa z>P>K1F7+7VS0y|5VMl7a0`Ol)joY}fz0fH9gU{$BF61piCtfpUQs2GEHK}J6-%EKX6Sku^nDX_ek1f=j!$(1 z@#(?(416l|pqcMR%}BSSmQng(t?^9k@dM*b<}%PYBGX0x2rec5Yw8}e7Io${_;{&_ z?=13}JFkn?JyMGrt9w+>iT=6=8nOJci0=8-2ve>rnSngtVapHXd64h%@;v16=ngwP zBF_!Rk>Bto&MwbiQGQiFIhIJCf1B|V$@7=EZp-s^%rEvHQ=UJ|J>pmGLY}`G<5!J6 zt32Nw_e@ltk4-4g`@zAI=eIM?iB%eBAh^ZHwB&iR_*F`tcLSsDZ1_w0H?evx1nw=r zDk9Hsu-A(`U&4CNSDs(Rb0W_hh*31oF=hEJe1?mMAhXk<;qlP&1Za99v^@!#JsFuj zgj`HBHdabZEXRt8`Qej(HLB3G*RBnMr&X<8d7NyYrtPxpHm@RPcndZ1$7==~T@SmA z6!vsVtQ=*jc|DnpY)+#_6WP!CI?a85D>OPf@r}-@2dvoGBGChqPdowMnG}(`{;Sag z3rszb^RdLfk@tFSXSXLMDDg4s6P}ltSR_6+kMsD@1=QPcMu4RY7HQ3=c#rr<(i=wN zG%@k9MWO>_F2cvrxtvn}j}5jK*}hSFPYphh_(sjIkV>o_U0NF2bF<+Ke{$HM(dP6f!zo-M5f0DX@<;-F0eA6!~B6MiWN2w8KUTNJz zw+qN|omG8B_cE=|pGEHVug+4>jxVO_PM!7a_>j(e_S1}+hcAyWtapBOiP42@TYohC zh*~FWYaOfYdW(C6$Gy{H;Vk#O{n8TSB+p=9?2O19WQu85NvvlKaxOi132T-Zgz)_e zbVCFB_iAWC-fOPWyzeu-TVU!Pt?hb&_kN#vcSj9plJJgyk$GUp*}V{sVWVyyOg{wd zvJ>!<-4mf*dXU8R2`Cge3p|lmGS=d|niYoI}?<1gk@ z>iB;;dsgm_nfZpCZ?xSrF@Gz*k&P$2j{jS%HS>5lPqXUy@i!xN{GW!7WUd0w+DWnS ze0v0EG%`OMo;E#c#6@E5RLh{PfM9^q$sit^D-z6!v%MtC&rmQ9+O^u^%+fJZ!J|`a(_4J*@f0!hq-2-q0Fs4saAgMs|XG8&+KwoZbYc zE$!jFPl9Xlq0Zd*3GBJsuUiW^9 z_dU-3LkRhRoviK)Y*TwN<~_tcj7H@z5Wk4ElLL*BeVBSX{<9%|Ue+GV(~)`2*T1Od zg{{??2QN?)3!c1c?_@&HRN@n3nUnYp_U|>w9sBoezT;~|*KNgt9%KBNXT%n^$HZ># z#Rif2+G`9=A11zlT4OhBm-9%R&qw`^3AW!cFkURbqm+3FJkRznL&cHMttuWA3(pXA zW%(Tuc;+!4{LH)QC&D}pUuU*vN2Xjw(48lhEJt(*@)4>Q&+F^B-UfT3*YBf^tcMCjGX*5Ju2 zV`xZvW_GWk&s8Hml*kugZ&cAx`zlTUVQPYUkIdM52|FjVVk+0~Cr@T{ky*zznol9W3tpT#I6|jKxnJgP z&-IOmnVX|eZ?YrC>cw}GXPmVz=UdB=fB(R>E6!Smg3|M=Wyl84Qp=FXT0gJoG`0>t zJ_pw&wRdgQFtG<5pM%?}@{rMs&}@fC(|>#X-4Ctyj{H^Ld-mG9LiE9T)!r4m;6w8C zJT6^wa9;x#$rYNOLLcQI{8n}{+*YN|)DM`@FIqumlanC+hV)k-wo`oz$ zCM3$amb@}A`N$#SKX%Qf!h3!c?{5=-L9P@?&E*P#J^94H4u_AdC!ZK!U*+;k%w^5r z-hD*D2-vX4d1Srhsq=dmG_n$Se2L$?skaPKpSgkB##a6$J{#X}R$?Ua{bsX-CKB|U zRo7$s&BoSWO8m^uVUE`)A6D<#J@=iv_w1+0n@yOzJV5W+QRE+QaO6Jv6ZD=P(g06e zy=Rm7ezxAT+n@nw@7YHF|7Y(#doObo8{B^$y=Uvb<;W4~-#zTHNq;o8H$uMef)sn7WQv||e<$BJ&;Cxn@8x{gDwg-l@fCVI&`pep zPtgmN$p3+Id?C@ghU z2PT<&(IM8U_8-`DeusGP@mETW=GzL4Rx5W(%ev)Mjh#C?lf8)L9;5HJB(+aV@3#UQ zPTDx&unL=l_qhsFsiB)3TvtQSrAAF(|2N{aZ(n8R&*BG%=&K^V{-g)llf*`=iQoK+ z_sN!|Yw>GV_A$-kf%>=f@$GC#d)9@{r%koFsPG0L@BF z>4{YZa^WSW(}?4de%t8=S*CbAanW^eTQrH*;>E-f~4F^Xww-CHU`Pp3(i} zF~LWspmS%L>+AsEowLD3+ev9Pu9qKq$V+CaZ2HAbYDo7d{)mTbrv#5s?sUT%yrmN6RmAJa_t zCfna<>x1}??^`c<|6BRp?uGhs?w39CX66~2OFO~d^Nl`JF-PUnE{=O9KK2rjc*ly_ zR^K@uj~&LqmuG0SA2Mdb988AR}-ld_-bh-N3G!y#3JfA!ba&ie-hS zoA3(>f12<+BC#xi-;0c=)=pp7eaz9ugTXtx8wVxCgJYaF)z_7Ae$6-%8&PAifBXv> zOV+e|&e_+*SrIaaT|6s#AjJG79x__dEj)g)oe$(v@spv}^*vlam)tk=YWwHZb|6!0 zp+l*=D4DM1b)p;gIb^>#Rr1_TUX|W9m;cjBCBDYJjW97F0LQ8JLuW8g( zh|E6m5;A)k`R7Vzk0su6%c)i9AmL;7Lrs~zEXg>Aye8#(}Xi;Rpe1OdM04$nNHx) zMUGJlx<-18*6_WI^&OgS>Y5O`M&ZVS%?WUlIVK7p$#2c2Pni=&vLAbbIoa@(d#Xo8 zpE2m;<-C6?_uDYFb;&{pOkET2el6H`b`T4wXd5wth4yO6FU{b$<>3AT$NNPe32#kyynikBKJN+Mcv#zb5Pi~0>{7;i>}_&n zmF}~1WXV$ko~{d!!IllS1)HK18|(bp-x!MRJ`5XvIJW!;%}I~27DQ*^D9Aiil5O+ z-n!Gz$U(N+ed1QbAIr!|y~WB&75hJt?T-yl-*fEbnJzO26!~xFfJ$#eGY2$;UFJoH zDBosu>^r^ispKBX-uD>v$0_#HPm{lS^3Fkq5pvkqh4_vC*SlK zZ)aog+i`9DdFh?Lh1%0~_?KNZn*OyOWHj{HihaKv`(AX$<{{e88t~mWNp6XncVXPT zC&tWMa+qq-8M42a2TbhuX~@HXBcJ~SvLYhi$jy}4h3K^od^#JZouVVTF84})W;^dU z{W0mijvw(y=38gl(S^dNGoyC2Z9~5~!?vL%pLQI*&OQ#lKL*~f1OFd|4z9(AyM~&# zBz+G)oHIYuaO7u-PLsIbK+lUz>bed)8d!>qH0@~f{E6R4Pf%ow%6X8yOk|XEzLpK$ zrfle9>DN72Y`3O}4ZRH;a1FVD;4E~VvZ0%l?FLM492BwL+QbIF8ood_@O`$vnD5vD zM=Tqdnlm%+v7To_%=IL_|6}tW)0GVz^NeK!*Tg*&l^Nuw36F@)Z`;7kS9*(wWzNhO zd%Z2I0UMb4=E^wymTT43NpF8_;5KCgd*BWF`-fgpHgKEQwt@SvzfIY|j5n6?)OxX7 zy_QU9pXuxSoWlK>;50tNHG|;$k>Gn2cpnY^$3O>Z@cmf$evmFSb^|=`A8gk4b`W2$ z6`DdGNIcfgGm-qmWc-x)e8!xT*nGyE@siKzRx~#Xeam^bXUbvxfAP{6jZ@SciyfNb5j*tOQ=TQ39J!77!Ya-k z;7p*2Lei7i^9Y|#qh3;V`tyHuU)T+L5>6ezjVB;y9bt-v30G@o8C&trI@DzH^l%v=h<*oQof~R%l z%Zbm>erXg>vFkDMWUt4Grz?PwjRTG61wWA-I0rtq3tVTJa#7`FfsghKEs~45j@-|G z2Oml&054NlnrEae0GAi?o^E-DGvwN9HZ1JMKW@z?H-{RAgtisLxaVNb8CW$)DNtdiaqOFZqlgi%z3wHa-1~POeM8yl$Qky)OB(6M9xr&pE^L z6FhtuKOs2%;@n?#%{2nA&r`fZUVZ*n;bF$;de~FdA6+V2M^FJbdX!#u{;lBo8ZP(46K!0vXjrtMC@y(|>$`0ZF6u#~>MnHl7E0Sl>Pu=4|_F^=%P=t|+yhMJpt z7j+X`>k^q4z3-FYq=@x|JjjOs;E&!S$CnoxPm%|C;y{sMQ0r;u0m^$bA73H>l z(hfY#c}T2H?2GhZl4BlQkk2xY3uGS119KkqR{+LB_uu7Se4sRXCR{J$bSWB74<2}l ze67?kMq+)(Q=wsUHQ|i{)_2!Bd_M7;ev<=@tMyTPC@=*!7qLEx^-0X&MrtwT*)?u= zPk@}sw^Q*sZ!rC|5d1>jO`jLK?6@JG?#G(BZrLW?|5oL?jqT}_nBjDj?)O=_ZW42~ z;ZY%ZnF=pac(gDd8!vCOZn3!pCVvP46Sdyxy(j)^@^y&51M?Zz;JzT^`6M^5X8pqM zY;v850nhID+k*?cXY-q!%>-@6^02iQ_&v(Q=C$s5u{=D5afQxTNPb=27mb}Y%T#`y z@Zm4v!^g5O&K3ROU74*v# z{i1AOu{)4c@wBp+n#_RJQ=z+&JS#KK8nF=r)8`sSn0^NMJpoU;^fFL3qO9*3w`XI$ z1rr%}H*_cO5PCA+P_b5OZOn5sWE`*5(92kiW7=-i{xQxk8OO9O=jb~;_V?L(knb@z zqm@&4!oHvQMnxp17R4iH@AQWxc;-U6ONGLmb?z^5dv|<9p2bmQDH>#&?cM z&3xpUslf4Z;!JW5L&Vm^jX?U`%ippJohzeokEff^|LDx^Bk+ zK5Jdi<}*I0Le-PJkF&oncHG6#tek8|esD%R=$KC^$K6Y|{fcrJ(U|)AlkL}y+;yxKi-sR_Bc~|c= zlLmgurxP|~fQ`y?$aX0j`8oZ)D>#Gwuyw!vj?lE|`RuP*zjdk4wBYw-Of_$M+gs27 z$-3ud>z;Z(e+OQ^`)W8nQJzw}BR{EQ2>Vs1FVQ=#yfkNiQlZKdnydrYruDuHBKb$s zzjWDa??3-Yb>jxdeh{?M@9gW>zk|JE*ck4w`}?)U{5uv9%tDR8?8PXvmHdt7C#+ZhhBM-_fW55w%9kJuzMr< z+-bF(LGTFY7i_@)o&nz;;;c2P9j+cMe$v{7Cy5Vs@8!%j=I^Jsn{)mF_B`$RH_$i9 zK9|k89~*P#9Pf3WrFK&CQ0mOQo-FY>9P#ra>;~~mGvHNcPK)HAoVo8>V1ErbSc;Fs zd2KZw{oXG2{K!}8!Vi0#bG4Ui={+IFSos&tSj9PWIU2BX99*1^&Bbe)zD?IeIv=*@nNI8EZ5y5PP;C`~%=79{#n!U+h`2gIw0w z>{m9+yep+gf~tKn{h`pdL1ylW;1WFI4>hUW6X5wp#^FpL?3Vs8k^KPdx;88J-el*W z{7l~MyxwrR$}!o_^?<7Nzue5Z;Jtw^ZGYJLUf<=q_}VvfFFezvwa?d=YKnj8Tf_O^ zd>2_QYZiO>KQA=#_ZdFry2Rb(x?x>k&gc8#sT^RYc#1tSCry%n5ur(qeR4ZTpwb(S zL&^E?zV}G`IdQz}C;!Q&eW@ROue6`>eH1oP7E}a%EJrL!^wajNLa;C(RGZL#2UR)?Ri+k?-oo1Y+ggQrh zYxQ*#GjX1KFa5Auv6qD}Pm(Vt=SK=Jiap&;jLFX)KWA_CNgO5-5BljNZ1dn2;1bV+ z#qi)R*+*BhGqx9rm%gyJ{LGSP;d|%0R*~an!`XO`^7FgE+2-FB_$R`%f3f+KJ*icEck<+KvrV3?=F`cOzqYR5%V)UQ zvp@bk__v{fMEldii)ybJ9x)vHjd|~^we*{h{TF-xHQB+7C)j%x8u6otD$zr$(L?r` zpQ48h*Zk^-k5I$`Anjf3`th9mpV(9MmK zM`G!rcwQ{-$BPRS%Xs8uyo?_KJ|w0IjqjYBq|M9Z-SYojYYx%9a#s%A_A zo@NR-k8+=zh#d<`a9iM9Q)OJ3dJoTn^{YQL;izW9X zm6+^M?3Q87e>m$HfelIihevWh%zh$vUmNM$fDDf0frvfR`l4emn0*FA_RFlk=Pvdt zL?@QS^@C>5Fruq6ry|SuI_=E#;Gqs=I5A*lXTm@2&_V+}WWBbXNiG+1vR>Jljo6vl zE(7=-iQ1Wiu`^}A9XoT8l^ZMhwT&+QqrmSX_OnjG-@Wj6AN(!yKQx=XLgI7n!rz|i zE853YU(t*G*SE^0Y)$%E#_07B{VfBQERnquTinmOs-d>{iV1&0j85g`30PnjxtvtEUC_0Jlu_3($rlMcF$N{L9bH zo(}d&?(!-ZecfBG@M{0^1L@0KgI$u${vBtY_hj?El(}_}7?yjAUdWxRyhdL!J=2(L zq)s0mm;AT(G2kSXJ_FzwD{ZXVYzS2l)Xi-(Gx#E zWS+p}&)|yvp*aE<>5rgr0-T+;`>i6Az)Qq-XRc1TuR5l5zoO~x8nNBUe@#Hs>OAB) zn*QEt_r}lJ>yz9;#_r0dCwClg*1jDsU#^Ysfi}tyc|0@d!xgM_oTV;sTnQY@sB>Oz z^+l2Y1!wkNu*5z@=CL1yy#E;T;yUEUN0A@bB1f)aZ)YhoFv*sIO_r@6k#)aduCcO? zT$fekh6}%%>oR2>bg+thZCQ6yyzI30Q?}aoVC!FN%F!eCzD;P`V9QT&j4kJ#Gxjwy z4`hnS2;%XoheBvNxgK_(1tnLKOx+sExv}I5xRtpo|5ftN882VPvupm}BmQ!ER&2K* z^Z64rPn@*P+AoguM!A5sDf!O4M7}?eWy<&2d@A|QJLUS9tm_|%yMC8-eL9~XR=hv! z)%O?gzb-pryx&19X1sro?isJWmwdF>QE zW$ie9JNmI|?G<|Wf0AFcWs070b-V}4(|NI%3`DA5?u`tLbk*U*>h<7u$vizhYAe z?}|;~HSAhk;@M4E6_Ztst<+#Y##xgMHB<7Re0WN}`t4(r^~a#QFRY`#c#XEdi#bWG z`yle=(O2JnM8(Rf$E_iEMrv^7`nT=t>@U@=KmE}`ughS|1#_UkNWx^lK-bz|4(JVN&cTfzA5jnxJ34TqJ1mYX3G9g^nbB2 zoqIg8M%lBXzUo_E*WJCM>((N>RUP_+J|nB(%p-o*X#cj`{*7z){?C`IV*3@S8b*Fk zcAT*m8I$XGR7w0gEjXHaUnl(O>EDY$?HR@H`?O_!_Yy@P!VAuQADhnAzR#seYTu^@ zoC(eU@h^%G+OmFliJrus?fRzl$i7e!dr15Fz59LErJp~Y#nz<@4*IXz8%#qciA`DS z&gu1gdjG2ynh1c?4a2!U%v^roLcTaWqt(l+HEazrbq^wovX89+& zvG}Q;bJEvH5h@u1VRom}Oq_m)>@HHm*W6r$kddIy{ z^ti0S`$L~GBU#x_`^(cI>ByF*Lo0wkB9Cq_y1Tk1omr)u?n2d+_wZ9h4Z!d zn*AHjwH7Zpne1E(=h~pxW7hJd^=_{3?9MJU7EuFJ%UW`IZz=gbZz4mSbIr5we>c1f zUV6TpbGiM4wZ1iW94x^+&lfHefs5=J+2>d}@dAFImm1CpURaAaZY>X4bL0B1V{!8y zV*S>7CLDz^_!jvs`yKXqO6NP*H~W}t94*;CX5755&x)IOJPtl(!_StI<(I%DbQeAl`&!CK$OX13Q^ zLR`a%mz+4fOtaR<^JT;zx&h;Wd%@$u3{PK26K3 zBu7B4m-wd8YO+f!NU*-Pv+?6vc-7{|`(=G&w7xL)c-X5)v=^r8jpXaB%ABtMkk9qx z+IPaYg`AtcP-rxPZiveVXv^{;>l5SypcmS*?x5~k4GIsJH zt&be7gzNm)dsycUaqBE?Fzt@5;7M#Bv7c;QmVwKq;Ia%{uCer_tYZ(jEUB!__xk<$ z)I#0WPE7AD=9|H9B5%FeF|x)~@L9$=eAiS~F0Os@}IR^ zIefHRtzFiGZapvh{qxCK`nB=8jn2!zukbKySD#Is5o0BgxG) zd)A3hBRLoG{!YCA8=@C%1+j{Kr{8(RpThYU4!l?Ay*Eh;nX1H#~U#{RcjT~c7^`>WCqw0Q(PJ75T zqOOj!a))w0t9R6}x?I=DI&?;zKWpft=+QbYIi*g)F3vAX~-iL+b76d zVEQ-6u!ujveyjM`4w)M3Uq@_$8cnY~5%sU1vwRPyZ;cQ5q4?GloohhP)}kxyH6&SU z;9A75R(1q(fY|FU>4#w7`(xWTwS4MaeAM&ssm}`*R{@KGd}=m8qIj_EK6_pVqOjX_ z+%eyKt?S-*qyAdJvIF9L>GPW7WSL_e&794bmi+Yy-NeCsn>8;d%th~uA3Y-u=A{mp ziw`{mn7>aS`n=ZIb-e!?oj$ZT&WDDdBD8du4R6-K+IEcv1~!h;t=~%izP@vt?K|&~ zbwz#WHp_QzvV7+zr|V>;wBK0OhBgF~& zr&e=crdRb(5Yg?5q{=l+h^-l>V=^4{@hiCItd^=Ys8=#oduJP8*>EetfdP^ZSYii-~nc zW9`?^mcFgg|803~$3vwrZE`#QS%oVWrsNMuPg;TLVc_`?@O*=QwL5-x0ljIHj5lU` z1kUwk>`PtDJ)DJ8zhhJiaCI9Uz&I7Vs zm@s$qyukbp1@k2_@y?ieRx{5Avv+O;_trdT^1RGT&58Z6?Md2^s>|jxSLVrl%3K9{ zRXE&KwPm6{lzR^|&u(z7=)!j;_qhy38_d_9>!1qis+gym^QW;Vt=_sa*TT5D#?!eM z{hI7!&m4Vw;RN3)iOf>WF0e=4gwpsmIVpa76#i}%)*_*uo+KI`OytkN4pYYt& z|NVW67e8&rWbUU1v>90`{3h{O`P85X#eX#}@&P#u{yKU?-^boWu}d!}UXx7@gIi(< zk$BBj+_RV*1$<%lF67yGUq1&sN&G@T`AlONe~mV#$Agb}99q>DQrGKBtCRe;Uo)R} z4{=m?+IBbhhR8SD$$kTct}5mcLT`4%Cz%~ro#DPS$GWD#X>b*tUU+ov)g8QTbIMlS1?n9uL9C1g!<{kME4x8+EYHbcdJu07`7 zsQz!rRsWarKXzYJG>+RZ7G&xo=8(d@V(WZpumlDQmgJb&Yfl8ry9Ach7z!*slGAve z^Zm=)?u|13fUqXN?_99X0oIjn@Ae|{0~M@^`9H~ijKKRh4p{GrgY{dy-wEr#@xSQU zW7iQgwEC2n6KC>3hjuJR`iCF84*G*eh5kyh;b#zQDkauLeD5x?w=&}BuNe9h+RL(N z?;_wuoGEX!d(8GO?mu66eT(_Y*z%4Lw5eINDYDhZPZ#iV(&bbqU7iZ>6j;%7Vf#v8 zC4Bfy3{1Si9WgNR1`UBp0-BP1BPWka49<*GotsBn;c3BpZ9g7O;=J)#K7DySJ{_8|c%r&kfD6Z?wX)q?O(BHWair>$ZKfI`je(FmU`CuOO?$a`&WCQk;WJQ{x(5>Tfp3#id)b5 z*g#F|tCQ7wYOFksJ6Vsi2hDw{em2nU|A6%>dtq;E4uic98-hkf9uuei_#*NaR>I$< z#BJAT$vvI$N@)@?+{#t?DVe^4)C+wDLvwru-pQw{gvcPdK`N*vQH#+ z+!DjFeNHV?(=VQ5#%P>z6@1fvaTUo?5?znoi!Ix4|Jk9}`^9r2K4uy`7#|<7*DN_3 zGQPxd_7)JSCFf|7E2#$^Tb>Aql7}-DelAfstW-Em0e`9BPH?#x z{C%3g7H}>$yTp>5cpeiOGnHU6iVKBuD{3V~69?0D@H8W-t&~)}S>esiY z=!3x5>*yZw!#lyzU#ao9ncO+?nZq@j8OJY{v#-45*t+$cIlkr+cjmm3q?~!l)Cern zT}NxM9dg)@%6Y&$DdmBoH~5EEk1n~$J82&=pxnN(y7vO#w{q_Be>rr6`^&XSg!X7X|snukaWYfpLC5{o~zxp`m(Q2oKcyXpOU2Q z&nQGLd4>kpVGqmR@;S%&vo_!u8A!1;0hkEYF>gz9Zd7ln3pH6aEioQHeatrI) zfn^r3Ddtb&hKrb!*z&EcC3n!|%MWpXX=P46v9C00e4D(o=6fpDdIM^`ntq7Ss~G!2 zmp3xrRL1ilcQb!2@Gik0Fn#lt#ORBv({&f~`S}sCOZwXy5~pzL=iSmj2w)A4wFWP}c{@rxE>(Tzh^XJspVC)8ZrB zx@s%@DRNqL^ip`V3i-Xpm7;X?d(qENU#6)X#Sf^T&r7~tEO?HS^|sEk_48Ed%c-A{ zJ&`qwoIl%|v*4Ap>E&-(Ys_)THyQVR=;iZT=UZ>SKfPQVrj(O zbJ54~`Ifg>Yqa%o$f1unya#=}SLPmvqeS{R2Ru3TaqD};)4BBUMb>)6uK0WF;dKdM zVC&&l(Y4qi=;M!**P{0F#Fi30EVi@Y%;w2Ta%jk9N4{k80jf@2?yB>%#Y*U%#~C?-RGqS#HLypB>}bm^y%b_s8k7 zPKUf$DY`69&b=2M_U&1JKOJ`8-}=kPcpa7*r^Eb?wJIGJx7HN{=&ny$Ys+!Sh5+OJ zZ|SaLSzk^6-1>9*lqJkbtZ8vNtM)wcaxPtU{1S`){sFq`r8oN1qphoI<8+mcBhgi2KMIb-wkTD4%3C#% zkNAYWMh6{!h&rlXe8d{|cf?0r&!^KztOUQcTpJ*sP;bW*9u{~c@Fm!rikuUwe1W^8 zaZ7bZ=yRGO=Y+aBlc@-uW#<4Ev40t&hNqjeKWp**_fg9y=MYFv&mwYT<*Xa=tB*;Y zGxcX%gg2?l^1HM-wa-&$?;1I;da9XYkA58Rd{~tucpf=`qBA$(J8)LyTT)Y$WcW@M zqBoUK0X`oaO;1C|*}keiiav~K3G3tvjb$^blcP?;&NEH^k+55^r{bcOEviN55 zOtK^2(AM4Z+}2N;d4eUQJsZCw{Fw+Rj{RqF(w3EUslJCj^7vRXxsgp-Eg9mwHLX9g zAQDSn2OdW5|3Lb=?JT}q+d%uv{b1_@4kdAW_Dg(yA7}0U>tkUQfi2f<*e;8MZ6a7n zeciEmc+Huw;_315QuG~~W5z$4Mn!z#J;3YNZI-=54eerTx7Sz9i@>phyGYREf)q3};8drnUIw~{mbiZVG{2b*2?>)kK?^U1&XHA;@R@JB8E zbeuUYN~Sav=v!H50v>70+F4-oNQK#NwUhg#&gh-z6ptXQ3(R;?TXqEZa?jiR{`cmQ z@Lo6j?aA!7r%;dTw)z01a&E>2z224-J()OX3VAQ7zQOuK>{&kK;*9IZG(&w~J6aFX z0{|ULt-ePe>Pyk-MQunQ0IqRfOSXQ9-qPxON4DP6m}K7T8lxZP{6M99vvRB&|G|b` zrG8mixbBU(ezC z9(owVqjJ68zJ3kY-O-x;ui4lAGJf>>di(l%8J}8yYn*@Q`unZf?-1RUpr%e;kBI@6 zkrPo$p4!>+lUy{M9J`iTx9rO>2E>*&ijT#*H(WEAHBb!Ym;8b=*gP&O(&m+9L^2UaIPzj-V-jv zo8;D$y>9($Tq|44we9RP4TT4&9~j!A>BG`^Zo7vgAY7{FMQFQC*T{P4x@Y@fizmiH z=R=G)wtFqQAIJNW<$IgAW4cB6DY10#&?)`s9-R_T_o7pTUJpKN>EF2C7Jsp?pBB0# zHt#m?|AT$~=DCXQ*IDB{Z(pzFI&{C)y8jvbdK}$9Wncdj_e1yg_$~Hz;fFm@e)y$* zJ%66+Z84QxewqJH`}+5}UgXy8>p!)xYx#`tj*K7R`u{#(eH6ZuGnmajWMVr=&!PWK zJ-HQ|py<+zBYHCb_y2r)Qs5AvHX>eMdfAs}|3~>l=W7?Z$>A-cpNnl5oMz9&_KWZ< zcW%Jn5x+=cA7`^o{!#u?a;A@bA#X4tEPU@B7VD6?MeXAvuxS221dI1$Yd<&rOuGHt z2jHptbJ?EoR8x_UUR9Ruxyk|855f0t${L{l4&VE{>hI!tDPntKlf>Dc=44fouO868LAt`kcOhRJRu@ z-ChLEB!X1}|Ew*`p-Y`M4mPCf1wdUma9E_^WZR0P1x|z6d)20if7Y~KWO1?CBf$;K zQ~m*PN>uBS_QJXAHLf1szh0w=Yj@vt?jB6}_OsN7_^n!x*`ndT93In@RjBhnko8ez1MS&fMsW3D7=%s@}mlhMkVjnI#8K4Sr-(E9atQxF+_j0=_SgV;s(b^kO%((8I~aT<+stuW-+;o=K{IQLCy? zn)I|h6XN{IuB$lLk$W$u&(rc$?Pv{g=Wfq};34p*LmYB4h+4a+-4}5FGu;F!2yL>-?h@NxWLG8{rJ;Q_5u0=bl zUF&}GCgW|9c#vy&PYZJ{bEQ6A=9={MqOWMZWyD~2^IM6>TgM*l{=?)qZ6;TX?|Q4O z&3e}co>To+`Ry@q?)CVZPlA&G@m<;1T`^xPzxVTn%`ee6RX+V+ENoux@mA4;sr;1m z&u;V;zh7O-P<+e%($b*)^$(feHUrD?@+5ZX^_?jz5c8f8m{4fspD^zF~|*W zJeNDlTQ}pgzT8~$lz$8S)_Br-wpKv{_b%vdrB+pHH^|HC%W+M9TGlzqj754;KTgMc{C#(4kk$JG4!3kkT`i{AHqGq@}8MxCklXZ(6ORk%A zmG5ym6F_?DOV8=?11efAZdc>-~d;M>!wO#^VDqcpP6h@kT8- z9sGHrC&80~GcZ4y4Ncse*E5{vU(o=LaTt0*Or2foj__MVAb@2W6BjKGx zFY^^_CWoQq2>n~~d$BT^ONTI_j7$+cl7$!Png#$ z-Af9P;Z+TxaQUT-w=xvH$9YR*gUYv&9Q8N>HlxO^=4*f2Wmj>4$=2CZCpKJ(y^c|&DB^hUQ~<-VEc zdH23{d3O|MrNB();v2MNNBdWkclZWf&1VXqi}@VF=T&@q`7Gjd5TC_-4(8Lxr-#o% zK9hEANY>`O`7U)`vOeDN31GJJ&klH8Z@!;=NwxMEoC$8&N0#&Y_HfRKJ?Ek_6NWMO zGJYw%Hz0ohG-Td0%tfvD6%*E}j4k$rJytF-kp0opKZNH5ULG>9h5Nt!GW9_o`imj^ zbD^gkVAJ}?@SJ9T8~;-5Z}1HoceHLPo><4 zJ}mi=^x?$w)Q1z#q7PU7|eKSmbI1zn#t3w~I$kxhbKIfwkn;V^W&G@=WaeCx` zQy)%@(}x&6N2-2yc6~T;0Dbt?xOJS5KJ23>kgX51uz@az-iqFc%Gj0DqdKShu&Hx) zcbhsVng4B_v!w@nOY}oe^x1XO%x95(ZMN+59}3U8(xGcU?s$J@rm1Uu-9zT(agW=n zAHk>Sm_Z^}kk^^$$I^@B+RA)eXI7&Fr}Nw%&QGxAJ+is247t0GGX&&$rME?&aGvde z^8U3UbJG}0-qnJR9c6v5;QK!2X|KD&(xDAq;c_qch^{K-`@b_!r>nn$R8$h^0Zi&Os+g=-OOQF_RNYbEs_G9QueGM4DQ>Ac_V(0g00XS$W{Qo35r zh$;;9_`llr? zt73%SiN0S!EsW>2v)rRa?>Tk0aTYAUzESG`3+?}_&F3@uzgFtlRulkJxAHZ_#+hhe?;v-^aXpRe zp>0$JrX;$dsTK)`@0;U*o#~$ z8L1sTL>#FU-)6bkWtVN(B>r12@fA5^WGb>Jl^&c`*mk-2=xea=H2gI2w@b;*tl@Ww zHEGbAocUD9-i=plDG0cG=Xts2y(i;_xm-{2hw_73@4OVQUB>^J*5^{}#?_YH=tD-W z!EW5cct!laoLadlsrM0iRxu=W3U5C7c9!#(3K>&lo@9al4VT+As4dr#f>;6dwqntV6E zt>YW|?loDt*u0U(OzZM}kM9G`k9K(9&zc{d@I>dEANjf}ZepJ;^COe?$heE$tjveS z)_f2hU*tR}VVsP4K)yWE+w;I4OBv_g{4>YWoFgvAY#8Nyp0QkEjY9zW>bb_Uf4@UZ z)-`_8+wabE^!s@FvQ%tKo3N9!`hDs-`d#O{Qf)I_Iirir^L<=higvhITgaq|Io+0> z#+>)kPttFOJ*IVcxvVsUIO8)xT`;rKc~=H8{cj-si){}^c_Bl;5{ULV z;F&~66=?_7Df-^8(kHAZ)`O=KeM%tu3$ue=b3R=hb}t|OcVc0RzPpq;QUd?@aWpy& zOD9r-4DmyGN7vCT|I>SIF9Xqi&lnFo9h@y2h5URFa&%(ET z5!9J1veS6v@Nvf3QUPc_x^Cp~@%0rk>WCA15p+)W`5cKoa(FrG%9g{^SK?dRQ^sb_ zE;Gu&hWIjs&+YeG#(y51m7MWc9x% zkI3pPw4s))KE8ggmbh=`wQ2{l`e!+dvAERHM^-PsRi4QH^dc|Sv0t{^>ZA<@oFo44 z!kGx1k>ecvD7+mS`ex7g9tr=d1l*#O?m5`$Soh!4YsB}_YxL_YL$9GB|XBIJ@O&hc0(6W>0r({1U@tkV^=vdc*j?Is5tr1rZe+ZT&^O7W zN{|&t30%)0J7>>zg3C|}?b@CIv6=~R=)44s|ruTh>8 zwDmanU-XvU==M&cPoZ9Z3hI%GTxfO`(`&!!#M zqQ_%Q^UX00#DaU!&#;f&YVFV8SXAkd{rMX!+MffSVdCNqu9=KDrPN)A%#fK7`A7+lYr`7emDO>ciKa4EL^&C10 z){*Sp;O<)_admK_^V&Z>8Re7v%Y6^`8t!%6U**0p zr}GiyN-H@}Y;cb%&{Dljo=@B zWL&+h0nt0M4xSCLRyJ=T4S1siTqF9x=A)|k6gX#btg1h~xzH#*h|rqRp95=j*jwD z^kn?=%;mp)6Fphr&}?tQ{c1zABk7s+k5qBTRkTZDlpRvVld1RUA^=%bZA zeUw-^qYm~HxFMi*IUkc3l->} zZcQs#)_&52B_3F6fh8~43rjO|OyKw$@`!<8`A#G($Wv`t(xJ~bEcXnHuYUx2qYXX!wKfjxI} zdtgbb7nx`QxJTxV(6BmeFwA~QtQT7mKl41Wg?QEQ<#+92AIsb>?E?2wZoxlIUAE*6 zG8Z$^WxJ5wmw}r$I+D8T4w$m&c4YT*R**Sg6Y5jGqOzK?<&b=z>{P8C^JP9Ib!Gj5 z`BFq&?4`?g1a4yf&X#djT|wr&%(uO-vySuF`ytz&iT#8hoE2Ck_!OOYJABvu?zJ-C zH@#}6yLxHr4!i6^$xGRpORqM{mVHtH9AVDoq^`aD%(+~UF~-z|qr1Kg`LF22-SBnr z%6Bcih!|*$$0T&w35>z79R}^$?>O#W+hO&yu4(%gFitx1#R_7*iC^I26Av7a{wWx# z_GgXM>XEe?^Lv6mw>}p*e2YtW%=FI861xW-p1g`V-$CEB(r2Pece9Tao%TY?6d8UT zI&EUCb!DN`{*PsMcb~TEmUU*2ar;kg{E%Fq1^#x?=Lv&Y>tZ88*?~Fq#Y>!Lw`@}P z>FeF0C#fsxb$8Zrt1QFL;p4D@YqnFCNB$$5&$RT^$mQQC-yi4M`_FJ6J#_#aFL1cg ziQgwlBGc5QpJb3}>{PlCa9pGQ$Wv;j7_LVQIV)qBp({7IV?>yc6zvM;!AC8`OeFS`U z$nfoT7FkbwfS7j7|Fh~p6rM6u@(<9aE(7-1uD$HF4OupA8&F3ch@N`6z-XjbU82J- ze1&;Rdo#;Q4Bd4q{E+A)+t5{Kkk*D#^wp_+lYdRf*X{nQLw9ZWm!#1wUACPsvTd2~ zh9?h;DAVPfoz32)yu^~-+i>|ii5;?swP}n)$#gqiD&Idv7JI%vfbO2R4|L@DA4nP2 zJgIvJd7FWEM){&RlS0;&tfLOvaSgD_UPR`RJ%{XhQ}-8i%zulX_BLge{w+ND&)hTr z7M}8!lnrh-bOH2L)nC~^^DVe(o;UUWqzx{mKa>6|@FsLuVm}6WPJu_%xCfxUYN*0K zDACuM?+)D<fqD$UJKG6%y zKau6w|6KfQk$)nS<5|9^fCHR7SCg)he{zq+!^3x*csO&XiHG$)1K{DWnRs}CGoj1- zw26mnv0drK!_Y)<0(8j02giHxa6*?0ns4Iadk4hBb^Pze!wG%xu;YndJbdeuX1Xao zcoU&c?&=zJ2g;;KyoPZ3G@p01rp*A*w7qd?RHE9!`kB!-rWn1};7l zf0oVA?MK4fen5IZ>sD}NCvt~fpY-CvRL08vQS`JsNizidA{$2t-lzoc3U1Lp=*2C; z5BuVlg}j%L*TyM_(UTrB_9}}F-COAg;mKd`SO1uZ`rSY2#lu4m_ttOYml8{dy3skL zOYyuHcugF1dk+qBV_PJ6*v1E|he;eZlgyMd3D=t=39N^q~(6iK=)p4Wr3Y#8Rno(+Rb^rFzZO!kul(E=TNqM?+xx`SAN z7A|xlZ;qguYtBV8y@S;h!NWh-)i!~r3>+G`bgoz0zmK>w<m&J z4Q?sHw#Gdun)@v7QQWWPK8SlBcL(=;?oRI5B1P-mu|<@bCuKmyO6w#q3V^d`0CH5=hW7H#dSV7vKO8dnYE0y+(EmkV+7h9}U+Ap?P zskC2gu~KQjVT(ok4O=YQFZnZpr2yNajnt!a|0(y^(7{I1n_TetdcK?VCSijHz1j3b z=9JJIbUw|?WnLt8?OGN|Z;$~&Z=QEJ*VU5OrZ=@~`qGSb@$mpdt@z9#b&qHgP$9{fV zv+8rwnvRsSY0V$cL2LFkoK0)u`_Y=(@AlpE3#~b3^ABR%Y|)w>lyweTv$cHT=c6^3 zgnDUB8)IeDn$;tF@uR&aWnIg9F0}1X&VeU0Ka8IGZ42+VL7TE}Kbs~fzJHB0uSL+5 zyTH%$BHnEp(+FLeOWND9(}|>ie&~we`Gwfk*n8_jzL|Ka%(N?oXOKOqz+J-gbn991 zy!U&|J!2nl(hWa42PseNbc{WJ1WhjP?(L_>66W+jqNk0ctRc`5qffB0`QOIpg)wTf z*y|WL75x0K^w(;CFDUoA8$f=AKdBYwvBNSfiej`?KK41KOiGtvqpX@<$8OwgR`ekAo;JWAl(eQAc@ zvRCa-Gs>VPLTd)18FkpIR>?nThS;y#G-DI=W4YAz&}^?l2Bj+dZ2R}LKKsis#{|Fuk{%31>ZroY?&o#%w+a4jUlqvEpgAZbkbYkOG zak3ZZ`stgtkE5s6kS4(Y6m4vm8#-9$wrR`q9)6<|xz@z;rj4Z~=MveFz0a+SQ&YYt@O{Yor!0}Tq_9>tF|SO#(JN~aTK7%T zZh*&%OuIX~H?6_9SvIMf&?>7fL1>&=-g1L(EwuP5`@hgS@zt>3OL%upXFeJ9%gp1Z zEe78MZOaxo(2q#_gEe!#B6GFdoOhM9*|aN_{;2Dbfh`}H@A*gcRH1ct-F5I%Hmq}5 zuaRT6>O}9Dm5f)#sqaNkON_|t1^44e7(do!!e)<6`jzI`ly!uQ4{bi1FDhV+z6hQu z3!X@9Q

    gq;JgeL>`@G_oZQH+QY|5{}lGn!gKV`-=nAfjWYj&pNI63Jx3grY0r^J z+EV-1@MMv18T2o5u0i*j;i+B~d`&qzHl;@X|1G`<8utsUE?G}?BHLm<>GX9ZygD>c zXk9z}(`N1)uxpiZ6W&VZoAy??Soo^orrF5rEdB{uvd|cVe=_!q@K5ZogszzKI%FNt zlH2e}eMDd|>OD2R_L6?Ius{EVOkCu3Wze`v^7WyG*1tMv-ctD|v{3jbzKgtWlf_pF zeUZMufO!~3XPQa82&29DIZmkLEC}#zrdHeFT1aek^ko5OZG-5e(L0Tjya9BMPK!=S zoXVh+@+M-_dWE|+6Tb`e%berad;U%Lf;@E5x%jER+$=Us#BLPb|C$Nt{yR1g_XZ9+ ziBB}bi@toTo;%hPJnHZq+A`7`SdUIxVzg9^^ppwx-7>@*tQh7My(W6*&_e#Dxru|6 z;q*NGpN4HHb_N%CeD-rm95w?9zNhVXWxj8+-wj*a1mBbPdt01mgZ*seP4ca`-;K0M zzQ^o$qpT#~qr77SvPSs_dv1N(f`PPkX1XE76TW-nY{JX0+Son-`Hs`li5q ze2)?e*1^{ZB1S(^KiI3ba|gXmigxLeQc*O z#zyx&0c@?H@B7pxC^UMwcJc zJcu4yIW^8wbKu)g+yeYc(cAXgugp}fV!P68`H82o|7^!UT=wOAxwqpd9vp7ktB9S3 z=$}imQQ7+|a6NHXgXnwr{!;e1*rkw8@GLe=tvWU-W!TIF7e#x^uuTb$SFNM4M|ljG z4#&Df?_MfxK`%*L>c*`$e94J(a3naBb9@puCLP8OpcH$eLgFDvJW{a{+DLue4V#e6 z?&xWmnwlRt89gnCZhIT@l4b{KdVIkXe7FB7y#6pUyJqyf`pEeD;BdELlYz|Z*=F>u zn_FmW%xojJY5TC*=-EtP*}(PiLzlWkjqKT*EPD+X{qhU!g2Ds*%RH`%E1y=|o`X+V z9HZ)M(I4X%ioZPm)c8{CPR^&mE=TOCdu%xFf;PfGiTy~)Q`m6KcJJ8b6Z(n&v>&*h z#-=Ov`3;#7HXQAi4adSSv+ol*D|Q`XE2ATqnb6|)7Gj^V82gR65%wFz%^%QyqZ#`R z+h$@n_8U#mZrL*z98$&8sk0Tj{esn}73hwu(2>bH9@VE$$JVDT#Kwg=CjHrsU;eGO z9S3n4a)!s(FUO8UU=JVzgo z9OJX$>BL^c;5RLJ3_BY5sM_U|yTx8GaMa`{1%5B{#ITpR!JWmtn=F2g&Ghk8gH^ma zhsGG~&4jPD+k5O$)!H;)#x35km1r&!Uh51{Z7We?@uuSckG!^ZjKQ0ZF>ED%ynJc*K;wFUzj4h1ueiRevPKUAFIfH0{wq}Q z3VOQb+1)btehS|a-{H<`wc0Y1d7Ep1WQ0Z~j|Hd-)v=-Wn(3ct3ony$*%nD~Z(8QGSZk)wTCSd###s%3R({DBElK zT*FKDlws&FEInOh-B(1^?Z+lTaGSzrqKI~+irm$}MQ;VI|vFU6@0fB)d` z!8r!LD4A}jQSg=G>*xax(Pb%YyTukxbYdd^mAt)rvXTM$#Q^-`m#likzftr^k}s9# zz07N~JkxffQg{P+2sb=ss+BH?9l-{0qYXnFGS>bu)b;4<28N;ipy~TxBDy-G&-Jc4 zbaiGqrPJ-QjW$_)e->>N`|lTrrUEv(zL@v{*g3-gEtd@TE<@1 ztgKND+3>~mrO;k!uiaL=eS7gwY{%FCMXQdow|nc5_5|QVe{26k&KcZ1+pw+aQ@+a|eLw84i*nLrJ`TiGh|1mHr@t6A8G^t%1$CVl*k zh4aMD%cj+rt&60M$@LO{pw^<*>A$h;3ZaYF3?Ex>)5X%|IR;(Kd|?2(c$Y~RH#(9H zx)_K$H(fm4Ll={~3ene_bn%A+(#7D9BI#msAG&y}rfYDpAjGbk%=B}e_KKe zw<=_=-zSfaYqLcD16~kZ1zvdLY`X{(*Y3rZu#|kk0q7$5#_*ArGIVSSMW@(VGaFmN z(Y}8@5Xsd$O&hAP zA$+rkHY6K19o3cK2B8hubktS|yzyNfeCwqR#7TiRwLeI#7$pig%_94_vHUo8W72~S=}x-t#FJJ!)5_+e~U+9X;(K zY}yw?bMRU7EOsd)mdpgsL+qcnpgwxqa?(b^`bP^^?7R&+CVW(L-2n6gKB~^*qskWB zdb!EnV(<8Q_$lvqY`QTpKb7^}NV*Z<)h4#*7C*IVK`-5K+-jzavTk`H@8B&v8y~shsYEZQ zB6zKPnfsNZr!#OOc5W8m0(=Nj`mc(3z~dAk)e zMqnu;ZkkPhB57FjJK@Pe!GpbgO&_{Y2v1atF3wLHBfrU$7-_ypo}~0I;VG}!bufn` zVXS>SJf)3)1>AqfT}do8n_v0QaIx4s+Wd;x8FpebV$-C+T8i-eEJ`gUJxG)3pD(!EEi$(V)yh?#=Be9827TKdHB-eBiMwGU?V<)P51~l;v?9Ek6_9J22x!~qd~oX{P8{=jr62;F-Dx@FQCcpq#V;C&3aoguSJ zmwiEeSKUPV-mw3G##~~_dn06auB#X?U}2N7;tV4*L&VX6Gf(xny>2mi>o@Jx4O*@tX*l9qkxcW(Oa!(URG%`X9>d8regL zf0Jg>E3yBG|G=FU$!D7O9|^v-YfL)zGfC5*hp0+8i>3_021M)_ZJCRJRgPBfZpiW{fkzVkT&3|OYiQR)G$Lf*!EHz|4 zdoNH^BzEV|?fk^EGjY(;9y-#7jP5qltcJ!Ibud@#G(u01*%|a?7qmg@F67<(Z`v2` zf|iKCll&{;x!8JEJl9G5JYY3&h0rEo71|^+ySb#h9a|2mGqOFKE|vBywd8Wh|9k8> z2DV>shXukBD~2F zaNTR~nB%&evg~n<#O>{W4^RFF>16NpaFj4jt|YRw_F>>QWN$xU+|9BNPcKdHOM{d}gEoOH^5};J_=}c8e~h@A z_*GT2U%u7)-VBWq9zx2}v?29-wwe4+JF$plpZqYe7<36+$OUo8&$!$2Gds_(tUTC6 zZV%iI&vBvJ?v{8I=wN5Qi4K-{0_;uRFzqaccmo+?XED@^Zu29<&SH|-Szu35feu0R zy*+joF6=B~iG2)w`1oUIvBt2oSmf|b+HdKpv9tK9{cPAu#QWyi?}lweysyB1N8jrw zhQciSy)Dj@Yd;%#lYKMncOz}GFWY`M%1ZW4vETWB70h|7>qy<&SYi@RZa zL4S$u#rAWh5!(wZ&Ck!3Mr<#vG@H+rMr<#vG!5rUBeoY-8V_lV{xI4hu|izF<8SnS zYqbCO*kUC4F1Fj=^DW+&Vt)HbV#wKXhyM^!j+FbbU6xGD+azq-j+jz@-Czf4r zIlr~jU=LyE+hKpJ>@Dj#J1=$+cDjGJzhMg@vN50iZrEy!_C3wJVQXU9jcl^t>BpY( z44VnD4H@lgu=5+X73R0c&2Mj*HaVt^$b7r4M!!l-KHc{fz7;SZdTl3$TDB9cv%6I& zmw#z(*iJAuC6tLxv27=D_MBp_+hZtmRnG10AIl?7M^1iU%2l#AEoF}+=Wpoo=w&4C z8~eiAMB+BEUyH%kKpz*gArUzU=Ze1hj>FYe1wN{EnEP7O1~%TeXyT{qYte1GNMD-n z+5pcIdK{b;3*Hld^8V>>?w3B1^a*E(zl+UmEjmv*DeG>^n)mov*w-|50; zEymluAeQ(kL-^l&hFK=(o?+*4V@%3Xhl}*g% z>>9>*5p64=9vzw1@-LH*c8YC8E^;Sn>l+V;*Z+zByp_EEe2Jrz;5(jWocDo_e^ghl z1DK>f#@1*r|U-NQ~yXryi zuW)}T2iyEm;SAdtGU0JbCPxIuByqonLaGdGx-u3yHaRBaCu6v zl6XDl8DuAJp2wWHj=3=xdqz3y&peaNz^`fub2ibp>JN@}BIh({RHe%^oH=Yfr@A~t zcupl|Ph{Em9doSHq@Cxe`%eB#+_K1cW#-%?_D&Uc46Nf4;#xb0!mqLKOw0VTNA?+Z z%qWQ!RiZdMG)^rIJ5?yb?~Klfio-*|}h_~|dzqmbX0yR%&nYB$7GsT+hR zE0{=3oLH3&E%&Y@GZ1Lyr$~0m-82auD^&2yD^$B&ckIpCV z0!Fk?J*2UJRK3yL2W=b}04EJ1{*o75=W}z_q;$V}BK*Y2zp28@1_7M2Z zp=C=r>t$%UgZx8Da~anW;P{YzX~htAq?5XCVC;wR{Y%C_^Lq_4``JU3=X%|p9aVPc zbXOteDB>xRzL0b>U&7k3@?E@3T*Sk~Ka}%|K6H-sx%fAz@UH1|NGJa`szK$4uY5S^ zgNdFbGtE%nT`84o@88swXZ4Q4g?@f|gy>$`&=Yj`E< zp$5U1FVnB_W#5~A{6hEIgtB|5Z*(M-@1}hfj;JHIeo5eo1D;{N4~()of0Q!+=^Wgr z+(pE-lKsLv>WXra*FB!xTUIBu+AixbWqrW)F8TkHu{bTy$N z9k9&QoL$w(J(_t=;dwXDMZ_g;8>$s~N&hHU7@MnLRb7(A45~oqcxPo@LxIxkwO#J7 zRIE@(WSkCaw>?>N;mD%R7seHt@2?u9G9sGxOz2M{Mp?c9E-b(|^ z*AC_$#}&mjl4}H40@npxqqq{elDOiz#&C`18q0Nqa@EiHH+Rc#Q!8o z3~WigGrT4Biob6eaYbNOU`fJ-+l$)y_S-G`72#RoB_E}1E!rvR_&4&xXNx4gJjY%5 zT+tJh^LO$}{@;@S(^;P`c`@ZF%9i|mC;$5?PZw>ZF8TLT%Fl{ErK~fv&MeuKvZ?5A zq%-r6xI(_Ykn%#&8NNM1-ID&#DLaauw9>bxv>NFp-LF%AE$NIr+fug4_bZ;De);#S zlwTG7lrrS``IP62p5Wii&-v`^xWpbpP5y6;&_e=j6(`NH3~Y`o4Gnp$(tNSdJT}7s(h#b8TJW zK0V^1i-(PPTEAlC(gm)wCqA8e#fYazToK3f2%fjj`e?~>vyLu#cGi(4znt~) zk~tS`DY^uBZv|H8MVpIs&J5edJYSUjH1KUHx;1%I9~d_(XP4|}b=ER;LT(z>{{Yeise5ZOvL)_z!HEgNmz2>2Y zKdQL;jSgp52KCO=qPq0zl?_)`t!OAyBle}h8%9;vHT;Zoo;LZfJyQ`iqN|KCtpGP2 z1P0NmOYGScc+O_o+g-p}F|6evxc@!p2;U`Tr8~xBGyRT=E^ortHH%ncKO3R;?*s=U zLoL39_}vm0e>Uxx^pbBUcpsTt@hi%`bdu&?8dh=TyLf+DSDq|v$A6}){e$3XUlKZl zUTY`#S#+l>M$|T>Ln~z8D0A&y`m#pd_T;TmqnBLlxb4ZPi-_ecbR=zv#}#H@){*0x znXLXz{F|J~jYV$eiDPxNSB+3D&M2*Ac&Z8wN!7B4UaV!4erwjq$sSjx3JojKvWI*} z%Z|BhNS1zD;s*DP-xA7 z8|9JxpX}o@UpM42#Qz^nK8YLd^!dIN_xvmpsX-_wEr4-u9=)Q zO&x296^e}SBfZ1fvlrD3p4;J-y(n^tHE9Z%NqeW85~a3%AGyLwcp?8o?$fF^^>Wc+CGFDI3U3Qvx>oG#3eejm zX-TWL4_5mhN520FJaT0Ew;ay>l4lwFg#u^W+nhc2c3^nHKK&chH@K?4-JPW^?Vc&; z0WyboW;_2wJ@|lk*)qqvL(ndrdXQnfS$m1Tp^o^&GsmfCQ<+a?z?G`$`)r>7#LaoM zDHne3rRIM*;)oyUyRpYJ_CSt1PT%Py?ZB~T4~|l;N14mV*n^92NjH~@-tFx~)_4%Q z`pz|Koy5@9oeR2arLFXj$eTiMIo2h!?!(9^{=C@j4Sc%vK;WC4hdxvrCNWD-I+9ko z%I`a^9?mlQF>#mnvBtVf^`;Ipehlf$C}kZ@x#LwlhwNTH+x$dx&;N-@5cO zV>XQCOvX~$Ch@8{%c{7v=G)zsdCH?f|0OnY))Cgh8DiCqA|_!?$_|}*Q0pk|P7!~3 z+9P8qa^eos_FrETANTZ~`QBhgp0UoKpJ; zsgHmC%ih?klpUW1i_8y+sT|oJ>9ff8{BfzstrC1c{7CpU*-!t^=F;}72cApg@yGiA z!d&_h{rE-Ar8}1XzcrU~t+^EZ=ecomc+b%Nw?Z$E?QwZd)M%cs1(qKOF#m$!rgpwh zKn5s#LA^@tUlm4wG(7j0?2SU?!-vk4heqN?nd1vA-YgTDv#eS8%i>IMzu3NuOc`D% zq^GLve}XHBFMUKqmSm@0$okIYj9|$pxGNJGbryMrmP`Ia(Ye2jA-{|K`o${y?@|W) zg{FuyL|$l@(E%>c%rwiZl4lE!tc$VpqwKkqX_SrZNY9O#pf7Yy$N~r2@+J0o^J6r1 zL6#OXAq)AX>wf)4v1PhDzWe!RG}mCRL0nNS(ni12*&=kM z6aC8s_E^_3))n--jKN&wz0xW?D<9RgCFY^2n&j~!g%=0TeC${+GUe4)= zljk_T@8&zPvRB5pNc`n0=8d!o|B`iqS8}scup!*V{!->(sY8Vp(BD&xc8Kq+8EgKh z^x-k)uRnSgvE8(m&f(W`Ia=NwmCvPG-e2TCvj!>Vx-zHJi1%Hc^ZwQ9jPzyT>1gk< z-|Jqn$L)}@V(c7wmGhSZkDPbrAKNyggnXitEggnDoH5dwL%Q~W(U!|3&B|}Il&oEy zvvBRh^eO4rK9W=U@$Yj=svo6KZsuPt|LS=DI?t^UDkzuba=D9kjG+kvcTw9aVQ#a?0NIy!fJ_S57-`vc%^ZVKA`^~)zKC#H^bS?MI zI@+Idp*o^-29d7Uei zwN2)ICgmu2_uTrtmRXPHvd?z3I7%(!iHgLsylny#qR8$dZ5)Ksi$&8-+E~Cj6}D}9yLp48|B@aMEn5c ze+l3o^dNE;Ku;Ozz(yHv{JbJz-Gxoo?&{Zb_Ei5q$1xKFO`65n6uyOZy)Z1{t~q~v2?bxH(HFJ9p)WWaO=CVj$g}7$jem@JmHd-*wBZ4s zg&#HEfp;12sn)p)I(yW1YmZvR{5SV>vTq;d)1uF;7yZYzubQ|VnXgCAC6c%rZtGh& zw3ai*(Oo9`uB9IYf1LWjOfO|OTV?m|7X{}f`VI{~W9TS9BJGzb>)7?bgXh$|XY!Sy z=Tyk{7aj<&FWId@uXEwYb~n3!e`=KIf92bZ-=89Xyw6Ym3&~%h99?% zJUICa%`=H-iTA6?z6F?LpvOY*FK6Bq(ARp2%Es?KUiim!{)?@E>@|dkypY(mft!oH z$DTpQkKXAX%DgAq*l!rPSH}D`;1T{4n?-BC5$|hz!Le>CWtco?0(*maUpwiJGuHwe z@#U?b)6x;EwH$n`pygnkqvgE~vs>O9t6KaU+-Kf%uFQFVKIdS}ho;VdFz4X>6*)m@ zYUh0DCi{%J$a;h2>>bOU*@vFfmUhJCwREf+)DnF2+V0>+=u`s5BG+P#7T@!>+q*uUc~2jotVV_gU;7sFhd?!aIkE;nX>Xx#LeS4C zZ@9fPb#%dell@o+d%$?oK4;~>oBZp@FXK>Z|M+WNI z4m{HCL+q8V8~W|;3Sd^i?5=9d@ei+@F%KQ_;SA1JsY>bg4{w{%mEjJ>y0DEHRGpIs zE|C0l*%vO*61zH(tH}J|OsakHXRbZ45d6zoRfaxiyVZV4FYW&$?QFK%-$?sotoBR4 z+2i2Gw?o>{pP!cY4_g@?CF3S~updv-3_SVlVa9lmob@vp8BH{DCmlTJ0uRP`&(t_P zB4?321>kYnU)18Gr!Cwy1D$D0CUZSd11}*mt_-I)Oq(;1ONnj9O+%dZ*k8OUTYJdC|4rG4!+K&8|_N(a5m= zOxrVS%(;{5#D5;RW$s8mo!ArpOWmQD`6e=yZAwj*vNhm)BU)Q$=px7V_E9BswSzHX z&K)@jKJusVT+EqDJpc9%wNA$Ty+I~?yB@-Rg)uCVGlX<7hF!eAB85Lz$WJ; zV-jXfy3+O6;S%a;<{MMw=YFixTBpPi?s+V(Ubo%lXYZ2VRJREEAZUM$hd{f&JIRj&q zd-_qvTIzA7xwB_-4pQo9RV?!S;pD}3Z9-E_F19(UD+`Su6)X$sZ z_CBM<`sy^7ukcICTUasYz^iF*H(WQ?y|#k1U2&@#=90GV#;p3wNbA#LeD$QiGz*zy zmOHx^8;gQy?FL=+e&1DhmC~mL&aqdCO-sQ_^LwFl?0o#E@5-Fmkkl;v^PvA4Os@N* zZ+tbay+I!%`om=(2O?nNtR3$vU@FygUnVd~U%fzIRp1-r#V%a>%0*vg;ScDg?nA7f zxn;|yH>Kx>+~|@e)?a$O_!{Jf&>hsLql{qPqXR9V@M63#MeO3dY~ zGjkluu=kA_qUtATG4zUFBn zt?=*%v1xsmIoA5XDP#@A?15iSgNHWeu#6Y&=ov4@L~unu<0U%g{^OOwctw^ih{1=K_bF?;v~M$rZh@?1H{TuI-c9M%;a?xh_s@c6%#iUEA*M%oXQcP8g14dI*M zd^^9;0(I}M8L8NO8M+4h-@mA=s|N|5{0ew%9{B7!@Y-DPTOso00x$T^u<0=Dx%?TP zQ7>C|vZ)!+hOxdl-cMYrLXGIg)DzP@2WiZrk_6AY+*hQgqifMTRf8+%Z?p4NW_Sjh z&uj8h$9bGQ7r^i6RTo=&m_e3(=wNSP61bFqi`p(m&HydS(2Vj<{>8Dbd%%=ugSp?$DRI(D8r=)jJEcE+BFawGRd3FHyFX76c6N`1e={#5G!wVOUQ?P5;coJ*g+*zD>O zeM;YN{rBHS8`!HEZ2+#*hbVKH^^V!^859 zeIWB>TO=>Ai?$2zR`Sps`p@K-JkB$t>}P>%Ap2S!*d!j&9{NaU-zRo=!ec4+@M*H= zi;1gGIR3x^v2DDC{%B**UCCUN_k%k)>kxS4{V|84-rksqwjFGy=;YGITXO;YEBh5W z`!H68()gEFGM>4hJYRcBXz|(hzczfEfiD0&k?_G^Y`b?@9B0EM_$FDfrCPB42H2W_ zP2T^fuwDM&g^e?(1hygl`t5OGTlNL@Tl9YyHqICm*xmz<$T3|4Y&U*Eu=!s+o39_t zezOF;Z_i7SF`l^jx2$`3|K+Ux8gt#p|IzLJk+lbZi}flx)c;@|wp)AfHt;|eaLRfW zoFMB%c*BeNChMzR)-3Dm%RmSrg}%8D6?y>`CQJP1#q=TJEkH z>gBUiN7z==p@!1~-!DdGh=sB2T)@v#grE{&TZ9$Cvonq-!Tn;Q6Rf zkUCF1L;B6V=~H(>$5S=VgP#>jSvqxxk@lIW&?k@03Y~^FEpR3qaRdW>`gzLx#&G2c0o#ceVp{Do zn=JUG%oFSvo~K-C@63qy?uaNevtN4);^=S64DF0*?WBD&hdO9i25_#fIko=Ojrpw= z!_gJ62ekjmzC`}7i2P6N75l$~e@?C+M*hc!$N0~lN~NHK}@rHm!PwLLRTK;d!P!-_W8mcpfj$^IO!V zJYONt*SDxRo=3^^S6kFro>S!cD=o^&bF@4cwWwI0hgZ+A;oKDoKQe4t2bZis{v>_G z^Oov}{$bx~e;>*kwA-Z_-;+H#!86R0_3SWg&D4<-ZJwFaJJuCPu! zSg$?(daLf4EB(sa>UgI2d*g21Q!d|GqaCc(p7gBK)$;uXzV9)=*8!J|i>h*YzRka5 zjNPfRg{{X^3R_Pzh9{^~ruHfc1{ z{O}gddk^xOv2DDMg61}6W{IgIHx|F3^>{C~=SlmGV&%>TptV?!>ojlTT<-RI%|PYl5S ziwySj@c$?NfBygfIsU)m^YZ@>4$S|@eHQ<}te5BhLizuQaz8i!zq}U~;r}DoxWU_l zOGPdg{AMovKeCSq{$JACX?p(K{6D@AefWRg&&mHw+W!2%l^_29jkEZF`SWv%_;#_JL2sZ`{51OP*RsLOr~ON8&ddG!^^LGi)tOP+k$1;$OzLEeog?6FO4T~@L&MLOpWJh3 z`GL&ST$~p#y7-ffC3~-rOnW2rfA2fivDerpIzZ^TS8RbrUmYH7)*loc6(!xX~bkIZ@ez{ zUV4|G_8vN_{c`cw9{)J&{#Q3l!6z@#(y5$_m;FBF8?q;O*8gB^e}uk3_}CQmREqNI zkR6GSvxd)a+a)m@ng=J;JBa$J&DHH9fYry^(E~U`J~8Y!sRNv z4j;7Cg>5sA)eQGk{4x57zosT9i~keG)g^^5)v|;6TDI6#ho4c|hi>D268?*iaovay zV=Cn=!WVOqmfcN$KUYV-@{Gfl?D)~#(8-gzq0p(^&?g74&p!2!>$7V&;RA_tk=F`Lt%2pUmZD=>dLJ-6#hN>DQ1=9CH1@>knrh5F?L7M8 z%F=aWXRnEVL zGDOZQ`Zn43+w)Fkqif+`8|UVUe5`|f4!&K%H*m>()5asg^EF`G8ABW$e6BiQac6hz zacBF1^&sWH^4O{MCsT4m-5IohJnhdf%sw@zFuPsaKZ*ALf;N_$?GIaf_5gWLP*>Y- z+DTg-6FJv}Is@F8)zq2rqivQI9`%}x_M+rKX^tDOG_ z^8UB`;;PE|t>jOQis%cz{o3w}^f4Z(Ti_lC-1lIkb8jAgxSUB)ny&2#jCC(9y_`8Y z8yd1F@x1(qVSB@T+3=j`$t_zP`h7j`J+?X2{TT15mTgWO^YRz;h4{98XP1eS!t`Jq}TdVpK3Zvt~S-voD!qCLfYM^B26b+3N;;A0N&0u|MjfqwWXw6zxf zxcK3StQB8m-@!O^^|9#c^BKE?LI+tV_-<^aTtgR#&0HIKYYo}ki`e^B=E&M9g{QRj zw6<wg;!BJk6j|{bX_ezV0>`U6;SltRyu@=c_Z4m9J)6ka zgss!6w%-11toc@VGJPR^^5(m&0qE`M_Z;z`<=+Y&UX#{5$de~}cx<)&ix}@eKzDA# zzgxo>=8XwG{;l8heR2M+2K_&ee{0j{^>5uX@VMvq8+XwGM2@?RWuV{KPyD|;_SgLv z#y+;+*#DF?7FU2qT_Oiv(hm_tv{WYbgP?l$=7SpwmJ)(>MvK|XHXZ-}eyS%+NX!hQgJ@XrR zshQ|Moa}F-d?#pICg1cl`4+`Dq0PE4kMCk%##}S(+g$je?qx4mb{^ZdNcaz8$13m_ zpu4SLy}wF1vDnCE0sjPi@8)T)eH&+p9E*Jm>-#H)Zg^;UC2}}v(`vD;w%YV9+EjuM zY?{_KLtCA;ByGiz;g{n3RNkR|+z7p1jE~M-{Fo-V=GM<6?WOc>d9Lzo)U+ct^xr&9 z+h3s#G5YdS;uVyu*nQ=iR)2?vuReaq3y1zKXH!B&%hQw}MfuLv=}R1|$1TxTU$W%8 z_-W3@clKxaK>qBhaZCQ4dOu{3_zZdfojN|?+^%;hdoOl982{~`m#d7rq+JUm;QbQ$ zT7Wkfcmy_q2Vc123dXJz8=l;u@8l@zRUiPSBI&Z{!VH9$GH z4t2LgQOBUw8Ae@~aL;F+>`wk!(Jbm+@zljj9+vTDo=AVoSeIevWY3LSDPsUwzan`U zSJ}tdb7U|1WR7fNF60?=Bz;L5b*JKI897%p^8ALeiJT99=7Ws2$RK4t$QqF`-$lB` z%oBISxJJ&iR(p*7y<>csu{7{RN8d4?-hYf)@5UHg>wYe9*<(Bm+tmK!EPWyC|9Zyx z9c?&vuh%boimQ!$_E@J`V=Zu!WznFEo-O(+{@){>zH-S>$M>H6 zQdI9e2!bcHjkG7CthJGIS$-(_qb!}WX-_D8cQ<^^G-Lh0muTPa4m(D4oxEyI zLs%Qx_0Nf(hMmN?ZJAiv@UMdkx;GLFVD-c`4Zo-Ch0NiwV|Z8BRgX4QXhXZoCqB%5 zNY{N6S2s*R4uNiYpEuD}p9SriFes05V<>l3gU+6y3S2<{%|}+SCiRZlXZ$se--?Z| z?B9d2gO<9))+0s3FG&j_GYEypYoR*+ts=d9Oxp~ke&VPURwN6MlNmpH8h8JE_p9m~2TOfTx!7lhaJw)h8Ay z&vI;6|3aQx%XYQW=?*0`?jmRLJJHiq_boNp0y`7CD(U0EsJYqLM^EXL{~04Z9n>=g zUMm=F>i8utfY5oFzelO>81UVjZq~Q`R?|*69((0TJ7HzjCwfu;O07k7qW+Z*?nNyp zEIGj2l;K~Ae?ING1-OY3wm(GQ7g%t+f&0S_6Yc==gHnUv;#^X`1uo4EK?}C|ugDF( z$9oZF^rpc--AZHRAMjOJss zKQL#AM;-Y?jz5epG>&)V54LVmb8KC;o$)=OAfwfk|Q!Eq@gKFYiC+%;94*!84XFQ|v4x?ILvA zwmuL!t_L0FIysvmz(0x4rZE>BlPl-HEcLC-Z7CV7(f4`W9o*gARm(lZKD%!)eUU%v zy!^W%4+NGvV39ptCF|V&_Eq{w_=*|SV|)V^7qG~;>3q94BJH(S+N=0}HV(ty4Ik2Y z!^h(u!^fkFz7?Hx2{vNImnp-xMc4ZMLr(Y={@wG|XWPtti+W}Lmqysk+|0L9Y|l!W zbKsdC{}LHjqwa_DvCZklkEcSXu`BC+7dx8%ZPDSaZM*nNXo>WT%)t`mnAcF>JvZfj zrhU&u8&=C+PUymA0&9f5T&BEZCwETR2VdI<_SXi0UGxW$@g9QUc(J_~orBOnJ(;sd$U|P3~Bdmf18cleh)#4mFi^{gJMXJGbqe z8+i!jKZLJ{z*GwDmUlBALlic(F5i2K*c}m&QFwea83POZt5OvE{RJ?D}Z>Tt}bd@Em+h88W7G${HTiydCupV}C&W z(4~#YZPKc+3tfaw`w!H*W@I+vn`z6L8l8XZ*9J3AiS1(&$S~wg#6<3qGp!jw&a_6? zY&jD#>nfb4oC$k)dTF) zoc|GNQ&s98jr9+Ws`i_*hUwh(i}SrP7vhI9l5rpB4h@-{>uuqA7{1&yHDX&hA88oI zzH0a^cW9)0u2=gya)=WCDRl%I+3U$}JFj4FJOS!+wfTVlN7EwPlbGH2)b$zE^8HQq+&6FCz1 z?3s!gUPatWuQRdRS2L=+(fQ+?oi$0_KIfQjMcm6q=i@n*4&q*J9^zFCMIPz&v{#1L zHv-?k9y0GsIYrpYFLt8lG zU?FEEn10i>rr&fCeH0D7!DoA+_+m#xi}1}}h>v#VL++O9VQn)O#td!=EMPo{>$%V| zsHOCQVP1c9VN1zF_`*leA0IuNdvr_117nEQCpMKPPCk9-9z%C3 z<0t*HYCrUeu|qcjO)~Z?25s`ZbAF#`$sb>w=beJCO>8kmPW@K3VT*aB5*myx<_^~w zb%UIt4lOPg-*=5YVLP;?{nPNaHgJ6#bsQCX6M@5D;9DdPf1Y<}-kbN{a;;a+3?2;) z+KAth0-yclrcoQNX7Be2wCNhwmB6q(UwLjJCc9hqVuIW7Y16eI81z#3Q-fwjyS=|C z#s81G(Sdq0Nmq)mQYvL^puT{>gq?LJ<(5D{&Sguq<{hyaJ-3}vf4XP(S#B?FGyCf- z+tp>jV9;UuNa&)_wtM+@&s+JQnYY}|3mt5?^4eoBcCL#InETS_urmrjrx^SIVzFHx zf<5d|>|%$3r-x%}@AL?7Wc!=d;!C2SX;GY$SwO4_R~kNo;3=`Umv{|H#P>}i27t^Z z(U&Gfp%0*cPb|vK5}&4B$Qwg^&wMnmd;5iIYQYS(U1v;d6BTr*a{kWE*KGkS$7!ck#{#Kibk{EEuwBR3;-QsSfBrhAQ%4hZ zjHQmT)Uh*Ta@MxkZ0`x=tpba{A?^Cd2(!*ljCPIfBF?2jU*(_Zm;clUrm{UwNpMnOmV=}2~5WR^da`A#1AOBsB(s}Pkl(WbkyXwEUeaA1n+$R+gjFr*c01z zZI7b;SDA5{KW{&uOjqkJ{+#tKyH(5jrr0mb-ubg&Bkfm7t6zR@cme~A`vKq)p2LnE zE$fv%7wZ;Yg6HGt+$5%QRa);D+-LRw!Eef(7}cfWe57gfEw6{Mj zW*bL$E#zF6!i?Usdf^#m!1K`nd1Xy#W6@8f4b%?d?U42-`nC?( zj-)P4?4~W8bZ@MhdL~}2yM^{NkLiWsv)VIp0GP~iVf`a3uS@JLt8aUVi#^uOnyAkmqVPK0CQN%ZQ}nj#%(#{cK7F8%ZqN&vY6W_CoJF!^y?B-59@jZLE*W?Hu zx-UkxvZsh&K|c#jWWxp3hHc>`Q zdU*cxr>Tzaws|m#e_g_U*iXE6*%wN@_7e7n(ywQhUk`0Af<}J@T0IY%eI34gbJ^oX z8NPd8M4NsDB+rj|&SY$DoDuc6zVE8v`{}>- z{omd1{aC;EkNUkI?)M((_x^6bcYnY4zxI3obHDdL_IrP$-}`I*-rISPjHe;{yEFf3 z%65o@vaTdi_Kv2%-JriY;>9*dzB%X@+0*Ti{CpEx5dNx0`cr(9f6sFNkp7J<-=)}- zy3k2OBk|`UHqk00Hqn>Z>xwLR2zv~PP2`stMZ8z>u85VA&fF_NMv;PC*3B9ap1FxU zI(~e$$Ql&#>5uf!Hj{P=as z2(aID5&y=^UHU?7GG8&;6K9lT_eDvZnZB8H3K;C~zxk`|r_KHnUR9%9DM#u8FBx?` zXO&mRJ+f~krdq8QaV|wX{CXR5zcl1x^tsH@QudgU<=gZ7{paC1BGSyK>~M|jiHESh zhO*9vvEGKW?nbaD9*OUNl;^H@?7yGvII>s(D7W)=#H;-qi);3*juQ2w= zj1#<6F8V2%ClcSP6MA`O`3=DLRp7iHc#DAhE8vBB`1D43CbR!I8I3P_tO_lC#NE0q z&mEfTOzNruK8aaS5S>(?j68rn@BA>lRre+98+QJ4I{WZ3-KCB>-3u%qCW)<+H2Tx^ z#u*e^a(!dXpL3K}Im27?jc%7qh2Xn9%ktpyDFbV_RmjM>+C-2sBwEw zf_GAx)6$Q+Dm7!?Ft>%joBmyFj+r}3^hu0sGiS_+t*F@j8e?8L$y3Id?;%YUb_@c? z)xc3enHz0?E&SHrxhK570G?1EnOq-y23yW?%3Dht3+Tsl!O8xp2Tp-e&Q&Y}hAie^ z8RK^%L-wj;x|$eYX`elQ`&j>ywtK-W_N!yM(rAmoo_RsvxuRdd84%VS$s#V8%n6w% z4%#9%z5e`{b1H>)=fA=oI+Wke9Xhn$-C8HKJAXIt(C+*_+@Ue~FLH;*;BQ_D?XHE! zJP!UBS-H?KkvUY#zP^TXgy(=JbwH0Q;X8!ZbwKy3;5{VYkKsMeHxFe^&jbfedvIfe z%jk3OhOr;~@W5%2qf(#rbxPSa-A~ZR-=dF&mp_S(vN{?j27@^^9q6R|jLrYy?%m^~ zs?Nply=M}#C*huigo`GDDj6=KKfp0H6 z|6BRb9HD=ZeP7^Pj&8zBna(Q3gRF6WQ8M zp?84~Y_(k@nu$fMLgQ@EIy*Ek2HF=3Z6-E#m8yrU1{iwO&gHB(+CH+dkDjk^wzKxm z9QIBpduI-Nt#a(rFz@=n&Av!AlLYq={VwhsAE7QYx)>)>{Z~xz0L>kMDCv>dQ*HTuSi;jZr3KUad^HhW)Y3mRhRLR|>)# z?9IXF?aiIE)44+p9r?YAJ#Am+ZIE|YZ>5&|ijt6<9aO2OeJuCt_UMncMBV&3d9Sy4&L*?nCnRj&;&k=Ui7dcWP#3o~vx? zfPM?SWUR8bxa)I`wD0@9`=l=idJo)8f5bcSojBJ@yhs;%Q{U??(_CrPfnTZ%ooQ!PL8H4$ZOoT*dk){Q zQ6SK2($R5BXb^P_qK^68nH5Bz9_hDdsFLL$rEJVS6g$RG}p1NJrf=i{NFmlw1K3}-IL%w>T=tswy-DF)EQ#h6E zJt01^-w>yI;!{2Mv<8_sKQPnk@$CU#5~E%4C1q;wzD7FuoR7{;;(z%n;8A+C{}-$M zJ>ay09LyItxKXha|Fr`f26V~3xRgc}8C@dqk~&(-l!DjFludu=u{O4U!+MSyd|zs# ztcT7A#jh6L7rA=%Jax0|FMDQ|Ps>A3C@_-#s|HS{cuSaH$tS$9?AHP_qmCC?Lo-hw zZ$mIH>s|Jop0p>k;Ow-p>l~#P<3atK;Lw6G$Z^_~ro|!~BmQX5_2!>TJK@4_yxz9c zcF%UZ7~ei{HwQnN4CH?y)NEc6T7JnQ?!VFp$anm_9v?oYbH z9IL<}lQmz>IuFOGA%6lk0sU0u>!;RzWIt%2A3wD#N!M@=N@jm!4I8n#v_8pZ?5x(p zrZm;Ic=!$2P*HF6K9fI7-Fz51bBI2jjjpev{%=CpJFid*)^av8)(LXT7Z-Q0kx=Gr zbu)UD-Tn^f@Cfun9ZF~u^go#ezS%ZT>=Tmwzvn)`%3)q-{SdEX>Es}>-t-{(V61l? z$G7p`E0j&2!(%+S+|{(+9XdUzUN3zQ?FY_) zPYv#~hBS&@&J4J zPVAp{sW%5(*auq&)3?6L!P&|106a^RYu2U_Z+m6(%C$K>8+2J+NpS#c@IZsc$i5`7${eL+b>t|uA}bf#S=46I&Z0Jxb{4h4&qF&)%9LiI zokeXX?JR0DX=hQJNjr<$kQuS}-H(sdVGW(Y`n+aizl|Gc?zii#{Wh+@vEO#u2SBUl z@k5`uu4S5Up?trRcL(3E;uqg&tR>D&`x4dW_|&X}Cg z&9E&sP<{<@)W(@>`Uv#u4d_qw9(uysKTpvsO@DWoV(_&_`Ku{E*4%@?Y5Ct!z5#kC zGJTIl@AgJ;2R>8uTEZV60WL0sZVzm93Ec)RE`x6OhktN0ZVN8U`qSuscG60zyQ0pXiGN8_^Il=DH{oJPTI zzu1@>xMmck>pq_j1yI!?S|tTRbay{+4Ie)LGz{@K`s}kBHvvCi)Ui zv^57)Y|V!m8~Vf05oo8tMfhfs(GH5|9AK^IW6Xibta~+d~8qq>hk`meIdGh#u@r5;}01)iH1e75ovDc|qw$`A3*JzM$l za+g4=m-rEjD>&QV#C|Ds&cJtzPZZgO@QEV35I*s7i%%5Uh46_YyAVE6WEa9GitJ(q ze4>n{IZjD>{t`v(kXC8#-nxGov|*?AwE@XBDOV|SN2MVb?5c5v4nemL z12;M6D}QH<(DkkwB_uM{&OWLkD=U7^HC-EKWY1ESiO6}AF19Pp6BF_MqptRN z_$vD_{E~-wtvnNi$5PM_G2UGw>+sW$qa7|{Hl+kO0~aK*ZX^%#xq^21Tke?EBi}u$ zT9AyrPLTcBf9ue7j%4IX@D=gc2+bPcs7bFV45|+HGvYpKHnjlWb+=Pd4F6c^o5;ZA zdnCP%_Ow{W-$$tt-oqI;t0tk3qo#C##C%LHRXD?rs(5^D_Q(}$X8{Kdn~4t|cC8kf z(}(z-HsHG|YtUFP!V9qm(;njP7-WZr-DnDF?ER8g&hoOK0lQl1e>?q0$1zQ0hQ8%I zV|mu_bd*m+rlR}dFOHI@9l2LE^4@LClidHSF~;}dWm46_HL@4jj{_&@y7<8^kT$^8 z?RSUQv|}$ZxKC=0pFAbtmH0rXj}RH#VDA;g5qKK9>Le|N_?I$AGC$5k;feL6N8r8U zsHvxy{vM()_tNft^k=v-!Y;eyTdts95vo5T`DpTZxdn!i+m@#7VzT=mYZ24@JhD>fQeyccS!ClJ>!ayP)am&~z6x zJsq0vf~Kcie1j9d!39lEho-xr>FLmP7c@N`n(l(8r$f^-q34sJ>wl-d$oZlnXv)0| zdT|Ff2$k6Ag2#S%;rz4EypM*MXM&z|$Zyc+l)!?Ktg{L!4!$Q4{|G!if?VA{5*a}n zYY(2V{9UDhb%xBk4>E7f`|eP+7CQ?4*hu1K*eEM?zfM`|_1U5Eted^$@!K!Y=FGg< z$GY^l@%>4;tK;(Qt_?BS8uv>Y`vGg{8P@BugnUEf{KoZx@H+ixH2sXboSA$-2@_C9bsm6&Mlm4m$+{JpkhVo>5*9N{|x z!(HeLHVwABvWLVGBN+S=oURbLEB*NNd*L;oQhx*|w7-9QoGAPnoDjNE3{GIf5t_j~ z3x6U!u<$3s0}Fp5Jh1Ewi@;^!PlN{+{zQ0S;ZKAI7XCzd;1cR72A9VRel5SnbS=K9J4V^dPw`}B7EiYPGLt8(nrrZ6 zvNo!a^QMwNT28e9zQ!jqs08KL^ZO~ySJS6{cA+{!|-kJ12(@vYzA$d$*7+D78i{CcO z2c=JEET7`dqP%96mpt9&H&A~2SCto=ofPlL9_1tJsk2@wcnaF`By-rnx{ARXG|H<7DJ-$bq^eKX{0 zjPnC{rn{)GdLA~x!S# z_AzaF-*ts%Zy}~IeH*F{;;ukfb_w+LxIJam#@im*J?D{^KCAgz$7gdM4t+Mqp0NGS zNystMTRtm&sQ0>3RoiYp9mexc$M&^9X^daz-9?=PQfuZ6b}fBjao$pVvr3VJ6cE3= zIc!TP&5-}_b!ln>F3HuKDNAeHq?83*&|B)_a5Im1Ne*qG0!na?J3Emo69=s<;0USfKucxT95 zQim~@RvnJ0c~mK1@xIu(rv|pYMjQ#-5bp|jjmPiFTk2%Ynb4kWhtfQ1u(I?R{2laN ze=lBQR3rx~4kOoNT!Jgro2)*7FGe5O`}aWCr4Q%PhojJW;U7ZF%>2=~72Tg>0avr@ z({O>pT9G}m7#>je(I5W-UmdHCAocpAaH;}6@Q=_Fjd9_N^qKH3KZ+3^=Xz6L(ZPNo z`ii*uroO^{UAMj>7hT12$;*D_iZk~rR~-65_A2xk#$M&(F0hA<`q;-Tp2?IGu#Z_h zQ@3sw+pc@a8)V%1^(IUXWibx=bUKX|`@13D|6-1159|Uq#g@!i@|v`gb2VpaV}D$v zIz`@b6Lp*X*X4%3#J|yk`~A?4t#&ax&A{SK-Ahc`j*5b@q3sc8zdxN2>TVTpPsJ2D)M5hq312 z+3p`4wdRYzyyhL;8-Olx@k-X1gY%)>d2lXuqt9C`>#=JnzCfh)CN1)RU!p6tk~HDX zJgak;ct7K}+P1{=nQciI-)i`_kG1kPPvHs2avtPGJ zz0KyjHruXG?+mZ;R9zEI<$KH4(+L<@C)^N zIE!U2oe->suWXPr@l4<-XWyHZO&-p{;=|#`Hcos%G|sVu7)N3(cL8O%f^t6Hw_efn z5B3WZH!9@kzjpA7U{|3{&m_(NqzgO*Z%b!nrzI(i_xyoUtE*)}Sk&b#=qKOwPmA*p48t-0hUM=+_)|Xie!!cSo731#DGH!I(Y? zH7lW)>(xP}voESyyKH35+A@25pbb9Q5krgt>_o)g&@)fs13A3XrqXKH-}`HLjoe)% zu&s>1mc8PI4)mzN)(b3!*UO@R`+#E?aFKJo&@+@B%@cs@W?*v!xJduCE9E?jT#dd) z+AZP^+ODgak5E~Me+vGlH}>`%q0Z>>N&kjFA~Fop`wXo?UXb0jP<+yyrSMDzy%}5A z9h_@lfeq7;z>53OYd>tlWIl6# zgme5B+t5JO!;A}hCTAK`c97zIqZHZ%z77IT4dn4qm&guU*#G66?UK10d6`FJZEH7Q z*Wr|B1u||6*M+V(NT0xSnTJT9s*yqbgg!mPx{rpNMjwA1s|=94;01R3fZM0&rhN9^ zUN`Szdmotx_A!H z?2oJZ5?4)`7%s$Cd_4FWqt3XVZjW3)__@<^sf2Hz}XY< z&DQ;M#NLMZxX3C+PUSDeM-G~n37ufgg1bs+-+U!B%i+on;4daNap~AYi4C6EmJ1FT zcZuEs&84i=)d~D$jpTz54rqYfOOh*T)*5lJMl{xi%ts-2yUF@cGG;yS%t7Kh3Qnh) zIQ`eZm}|TzPQSYQ>^S`&;MljpY5(i4<_7#kWE{@IQ@9+VUm`1CL3(6;r>aWxFRitg z$=d7Lx0UqmRo0uVwXT^aJnF%7S#Lj#>YGWESvSxm{1!rijk7%5k<}c}x^n`5q1OiO zrhobP))@Ummnm?K?wg0SNZ-1yVBONc)zUxyHzX<(>SoKnv}S5GII(5;K+l%7vL`_! zpc#(>U$Ogau+KO5A^3sai)0^~AC&T$a~0>I<>1Q?O`K|=oUA#)ug~vR3_q|2`*p$N zchB{-BTt2=+a-Crekk~*)nps|@!)`Gic;W(MkLVpQKL7mn+;Cv<7}`9|1`NrT4?TQ z?%4^{a8{@94bnbs`l(0a&xt+dWbp4|@NWYBOX40PfkiH`5Zgt6)s-G|Pg4R8 z`mM2_NnL}|J?lE4ZSBys2n`i^=wrZ3E0aALIW+c`vL|md_T=$Fp`Y#0s@H&#!1zO< zg`sdk9dKSkxwnw-aDE6lE`dhS#(f!{b#njg(|z68{F<^|lXfP1?~H24W7Iz>DDiC? zR+~I>-P7FvwTqaX_V=gO%@)3jHkoUgFTrv42?K{5`De!Q64JZzXt|5C9`io>GEe*f z?k7%GvOoJm`Z^@wm|^1J^{j2d5y_)f#CsDt$B5lp7<`GeS$!fdOUjf?Kh>s`lRI+d z?4wbJJsKU9W0b_#lRd>)k9*B>p4_h}$DV+Gz&kO)+;29x>AyXCzZvXJ17?|VQTxsN zrmQ-$-#iPvniyAvZrh^vfchSLKwtVM`^o;C%REA__gnjb>?Ql4k!4Z!MDHbAh3-*K zc!H0iua{G@rmBxKY3rKrd>S7-h9%2vWg*Wh6{gHlr3?C(RZls=1 ziP!Zp^s|n7rOpHLPJLphDE!56857^74%yct(@XxHnG-a4X&3p`>fc)CVOj2!fVp87n3@SeF|UJp7g&rI2ED)5#C2= ze~_}L_N8Ql=I?ucmM0#XFT9q>g@qrz?-}k%A3OZf2TefYw2-(X6S!8{jae4UvBlkoc@cCyY#=@>i-IS zek$m{>>HdH&uS+pwjSG%=Y5@>oWS9a^hbDb8UJavMHiaqagi~Pz#hyu4%<^?v0{^1 zo+Umjsn`q;@?L|^O5_{W#DJAF==?vWU+>eeE2zsRah#Oiy2J_$VMla~b!DWv67>0` zMdl@<3;v(TU4KfOlc-a4N=AKOBO`el->^|ezZCCxd3GTqm$HWL?om@GRJ*q5qG==$?irvW$arA?Ny7A{Bher|Mrg3m7WeuB>~?q+kN`xAU{q5l(n zo;A(X?@4{pGNz-y2cNUxZ&-T^j8OK19qz1GYuIEt~KZ?=xO(!m%robC~c6 z_u-!{_beH*8(G!swq!IN36pB234vwlQI;0AAU>uvf$d}|~6hqLL;geJ>6kJg!; zk~4ANE$!d_fvJxWU6xAzNT05xPliw3H>4lJn?>OL-=Q5}MJqDzvtWLo650Tq>Uy1` zPjxnvKGpR)MW5<=orONJrWy{0H~)w_0;SylA^VENPigI~i?4<8e?f0u>=Ur#UzMwj zV19DI|GTYLXw2u)&Z?dlUz>|*P zd(CO}%bHK|ZlV51Ne5SU=BD@6W64*+yF&jA|3BWb4SZ?yt>g4MiK#nT)9t)3Y$3)8 zc(DK(+(-2DHS*mPDOY!qzKZwL`s|L^I~adH@;k?$Ch670M)8kCh9_|7Kwc$#>}L>pjLemGA1ek(L)Ji?3r5?_xh8b1;s2$%jAWc>M;_JF%S{MVeK9 zl|uOf(#J>2r)TIBH`;2)@y_^GY4sNw@=PD+h1ul8M#H3q!W_%A%H=yO%%m;-2cu-VQkrDdExDUz2y%e|LIxw;GV3nS^kYApZd+--a- z8lyXT*COw(3-t4N7atAdyKk(X!FxJBA#(PRI_24Oofz*?`|8iEe9=0ZY|>;8k-416 z?-qVim*|p-9a;Nh-o<|6Ix9W8Y&B^zmsjz-lAr7!ck+|`m+_N&+&pLTlewH}rA6x% z1Wu9mo~1qEmu`4R?*8VU>=bKlr_7t8nm&5o8jT0OC=sqs9`gjrf68Sce zpY%oeW}$Q4{jqqRyUEvcUM?ozaDEy5q^$UMO1TNvQ((WqYA1#A@(o{2{covit$e$| z`qrOs(PL!qF~&HLbQz1rQ_e>czt*UOvU9AmYE)T~IcV4v2%U@6C+E&~WX#sL%>v_U z@`wz)j&pW4<>gyG@muPU1y1BWn#U9P^xPArPkVp&)p2XW_PAZ*w;73Nl6jeN4{}z+ zqFjkjQaT(TpuwCOng=S)g7?kCbDcSMt@Ku8rbFQ0e>q5LuD``aOrn@wo&B)2hkpL$ zGk9qGmBG5ID^K|B< zqx4>_*nr8Mv&FW;OT|w@>~NURtQ`B0(r2(CBTk_KLy2=OX*SaE z4>jOt!cP2wQoK)CuzLpBwLF%Kt#Mpqiwzsxyz*%+#6R-I#bWm(Hn_d8u^kq0Ge0u! z>WJ?iW8aft`a4Lyrp`Ild%+ptBjsBu?@Kt<=giOJvSd&4EzdLKmyE=&$%w5&9467B zRpoZaR*|t5^-@mC`aNyVfV1%}UitNszDo0hz(~$BW=tmd#yqRexJ%7C?K8UTyp{S4 zoG0d##2%DbR7ISX>f)9dF$nA8mhw~^!P~ElL1^w37wWI#n`Qim=D)=MXdD^F+K7Hn z{o1vnVXtW3|8eb|F3*R^#*0`7+^OLG06c`&g|5*!<5$^t$sQ?ZiNVHv&I>jb-tMeh zPFyYgvg+)An(9N(S+{&C?+WYSfkuag^W3e$ygCBD9_zr3o#A0@^s0Z98_fKUwGN=u zn%Eg0;w(g)hCaE?uFn~OE}1j2@WyhMYOv2^EzCRXTG&Y0B5N%aS!zfv_ z7K*I3P-LxzB5N%a^;ip|ndd_L&_FtHc@JNMN#NrtcntBrdr)Y@ykK*w1rOqi8St25 z!6Po_ba>cf4S3X1Uo?)nxwmmilrCA;q3q|rZxDA!;yL^fybMF*zbal;1m0RCCJOMb zhUW-x=;uLxX8ODIfc<{rAVp}7%z=YB5W934^G4=CYyn!4#|N-^@;7)kHP{=7`d&|a-QUrPOZmOg-@#E?6F%nZFnH+W7g-1MnRk%`JCF?v zeoLI}y@iEFd@48a=&qM`--)VI@V@(-)#taOzoX-LkF_W5R-gy;k90drhMVzus)ddj zao?ahQzA5Hx24}kg;7vUX!Ly&~JR+qOb7U*G2wAYp>ydH2${kIQ{+CJ>Hvn?-?IX{G=1P z+xY%UGj6cVGxE1x*T5IG+inqE$flOcTY{faR_;2+HhWVGYwi=?C6=AE-!6P1_T|wr z-~PVi%Xb@x+w8lJ-w}`BX#)PIz41fsga0%!->M|u+bRAivX-{khXlcM{h2Ct*MWZ6 zpt1*>v7Cqz1^zc9m;5RGVMDHKDRg*1L$0#4A+CHzy4#%RQ5ZZmn9|7mQZ3!$A~*SC85)&NZX zz_gA&%K1p%iwzhL@~)y!b@mUY)^V3ogZ;)}gXmQLEzh&%TE^C9(pc&n0~$$JBJ-us^7`QZ?ySz>XWTy{BgHkY}(j5(Zx z?=Ufdpg$t_3Fp~~;U3TT1m?6iu~zNaw3++(k%fvL@qLz<2iy_7d%G2TLVTFq%w;8G z%^${@hP!vrryk6Jcgs(OmMy@qo49|4!xY1=M0i~dJ(ir?D}amCx7V)dV~N?+g**az zakKb1xuJb4268Xb`Kt4N`kpTPmJvIG^(yjV;vdwXE4OiNLrQ47nDu;e*=4|H4zL4e zc^1sz<=xzCn4ydl*~Y4c<&*Tf4a%-PjOjh%x4I&MV<3NC%oo+8He9 zAs|3OWX;NY6`qVUw6R_#4xG$|^dVC-+s#bYY8+1#PA<`uiJo4AYDQs8BsPnKupvUn zwj_sGn)Q@{?=o!Igx(9kYQ!^@xr>8umU)vHrZQ&|zm)kpxoj?QxD0sA0WPzF&n$e~ z^NB}e!h2J%q?(EJKSWt^8@fP# z{35ELi`e>Yu_Xmu=vRMbb7eR6;v83*8|18J`kX$a=x_J>V$FW&B6IhW(muePJ7uCF zuc~J5jP%>AIc=G!cfwm{J!hrgJJ8HuG*Pc$t{;@S=6vy0aWX|`9a&ph{awx1aR<)? ziLt~O)5IPJ9(ST*@Tt418OI97D)3iT7v~$b(ZAP~9r_10p#gm7_F`Y9Dw94R3eF^g zGnAL}oR6{hTL^Dq+3t5C!^m7ZC0Hyr6GM^Ha<-9m$^B!-x|IB~CQZI1$vZ=Ef%=Y( zmN+!v4(mPAzdT@>*-P0Z{TfBT=2R3;&esbk&#Et+Tv(ANcsZ$ndp7))nl}X<=~K}B zYSw*3pCob)|EwxpS8(r##`^v07-*->t8bDqudU3V%#V!Spx?kPeY?mp620$jV{Y?gZWF-M z-r#E=@U}1bOZ?Mi#C)=gO|ac7F+khJ>*z-8Ed)w|I39+!x3jD z*&9E&SXufyIMM{Jh#XF6f1R;syv0-EA^nyoIEQ}UW9%8Nyvv@km8a|(Z9HYqc#~(< z)CTI2`UKB2nOl>$x)R*D0vx#phw>u%d0UQ>kK^z}x5;Ump>Y}YU@;ZNn; zJnP$)#xu#=OX}pC)Kg%UpJnBlY2`WDZmYf6prH~^-^RMK6I&SFY!ZD$XC|?^H0;ka zlYkXt4R3&7WKZ_<-)~o%C6=4qF?c07Q%oP=F|BxR=3O!Ps+jQ)*`Gy5zZjTA=ld(| zljmEt-QJ_^i@r(QoD1glX!}3U(zd@xyt**5gUC1seUr90cVzWwYXfb4ZG5D>!A5+f zqtG<5RV_YI*wM~<$G7bj?MC!5_#A5Rbm6?gUm2rD@HG+xPvof8#G@&`7JmbYPd6Aj zoy^lvwL4Z;+2hC$cTe|}jpF_fXpO{|I#y}kjj~DFCuVrsIm+TX=n^pq7o#&U;)ZuZ zkNn_r19n+H*8D4s@iX@ILkoL(#P70fk`h|-_nDp{*eYSOwVK%L*v{g^3ynN{>yULn zgN~e_{wFCb^y;2mMJL9X86%u}IX4p{eA($S!h5+q&s}AntB65{TnRkIuA-beR@1(p z_K%OpPH>JA$~W~0FXtmK*_)^q z8yA%XOOu%=?zSnNCV3PiPXg~tp)olx&dqkQ4(?~nMFZ7M__r8$PIM*OLcSDRC_K~_ ziubLb7q2KweF?48d|AZ%zX$kluxBgixJ3@3py%$wPT4<`cKX71=D`m!js>(op1p{B zi?YjX@ui)}KBT=Y+DqqmJ#7jvT1UI^59T?jYNDs13fpnot*d%>sxP4e-^%{_5cm$+ zn>+K(yPtjV-iF?jeP;AyU#vM)%3eaF5i0#w;nOFaA6=baW>7=FU+=m)OwlF`qK;++7gz5!1;H zP1|FS*Uu-8mxUL)eCNK~(23IN>~BedR`B{5vQ5!t`TMcvSoh~KZ(Vm!Z}yFAoz^+N zby_-dQ(qQO@efHOZG@!3UytVh$ku5Y$W1dTH+7`y97Ng7Sgj`U;D?iCjDr}XjMKq5 z>oj#!CjFK>i@WUOM>)@lyIN6{M(qq^buiX6#woIJUtCh7e-1q4)r@Pt8WLO;U8Wzn zI;oG?4xuh<{uOYllR0>Jm|8o5Z-+~7-9%52I(Su0Yn_8sVt#u<_RD&-YZd(KBvcOPe%eMH6<-N(rK5j$36?*rGKqaB$W znHPzRXQ!PQez|`5Xlq`M0efR^j5zM`dd-`%AI9r-`?w!rzB}|3bsS;L#Ipz;2lwQg zjQKeS{B)i>v;rC-a=uo07n%3!la?I?a}OUd4_}t%Zv0>k{Re)$J@MnHg&z`2USc^) ze-!BG53twxye79f^y6Hkj~SxFU_8?PW70ljh_o+dBYZ~?{_F_+!K=*Mx5g`s{A7%? zEI8a^!QpD)@BsE|zU9{<%jdp{Eu1&507sV>@ZJl3$u*7A=25X-sETV8yurpg=|~iA z8|A=lqnw4?QZ|CyQclL6j?8;JWrM&)%1c^3@v;SO{x43!x0<;OvnKtl$?z3cT&619 zDR?uETnpYJpBDNnFpI!jCAN$+YQB1|X=|80o(s_5^RM}L>{soq&p-vx#loE=ZqA%3(&ysoG`22Ke5g~(k~)?H0k54^odq_HtFL@&$7~|S?O-lr;wgw zrC(~L&mujK^qE%rTr2%5(&vzVg_VAdm3}?xSCc-!g8sJB-_~g#G2Xv1-jCMAHSYOw zuf{!$c`sxBh&}Fa(14HDI7rtT_e>!@hxa_vXG(ek>G6$w=8%2`?^lyPU()-K-n((n z2HL6u*XLk&n!r2}gF@(l#31Qnj~cZgR<{91S4`^nTx$8WQNM}R3$Y!SI|n<7;}o{1 zd1jAyFLnMdRv(4$+^o{vZ0x@qK^s3lEY;fo* zJk}o8d+C$#f;q&CnBoqNacDKA60a7%rfddxGa@$~MW4E`^PMhuzC6Ft*w?RUG57W5 zGk6yr^UTJ`em-fw>Ku+O?>_L@g?=Nw>Je-P@dvL$Uyptxy^6Ez-MJxWjzT<<7T(KA zZ{>-;9{omo75aMg8|hVM43B=)rO{WhS&8NiY~WUw2mg`&&8{RuYT@yAL`I{V3%mEF|nU|=Qr>Y+fCl@5OS!9Tq2RNKTW@lxLELld&s+u zyzpHne~{=7{Ri)1cVzY5SVhpl{`oRwrA9nh!t5@+ymN^WREI&sz$bMgD=7bqU76a=CB z>m}A2|EqhsgIcDtd0(Pp(tmI@cAQcx-(AqYv5ZOLNFEx=KEZytjr=((e3-qK`#^^U ze8g1^v9@yTi2=tJe6VJ^Lj`>ji5ZmSoio?f^g?+3y#3)9e;_{R!^vCfPzG?WX#RLK z{q2JtPpr$6?pE~k(anF(88ZlPewg!o2wv*YNO*DT-S(fzqOW#`9K>cS9`0Bt@=L7` zIxJ+6hml{F_saF$nkVv0Vny{;YKJg>?ZncK71-Z|Y|7(WAGL4SI3+Y;0WwMO##yrT zgz|**0*(84hqbDobpl)Qy}e-su(c1V8LXx}?jMI9qes4a@DV{vQZ;&~Vd}7b>F{vX z_LdJc?qSaCm(M+FDUWL>!2@uVaT#$9MNX%wu22#EQyHh=)rH`Z?__wQ*ns)|5qEd` z6X_Qy4Hwd%^Uw8v9ydwWSFt@anE!V0bsyvFginxid!a2C|AF%hcySoLNob)7_ma)P zr_ddem{AW5PhNL*0(u!cvfyst#Ub9;ZjQt#PplcbK=BmAhvtJ@{yW_8-KjMWUD4&7 z`Z?zf!B5UnNs;=yUc}aj`j>n!d0irPYp2zn>RnIW8gjXkPaf<@1Lve}kqb!O4#s@w z#p#}6aJ37(Zm=f@A3xvabaMZ!6F=HfqYIIqZ^X)9D~C zPgQbI_~s1K#Aia{aefGnRs_NYLT5gvU;7f#aawCl)=b6U!v)hg^DKcL9KU0R=Z}rS z*Q05{jyKtF8w1fyvca86~f?_{r6Vw6UInDqrL zHMPWmWd&=?fFD=GMA<|ea@ccm$L?ISm=Y;u(c3BugsnjDAKV>tWfkHBJX$LGf3?5#Ves* zIrzZd#ThXNIh+q(ggEDm1*a9a>qJYga-z6LA8tBBA2j&+H;Cy#obScILyne%Tu%5J zVy7?eB<^?5am+bG9e#WYU!o4j0A(V+{mqBRySdNTZTc>O7rs1)e$!2ylYqI_C#hyA zex23O7(cw%R@OH$)fd;(7Bsgx0RAi*fXoY80Zl82Cw@sOdqt_luDi(PT&X7PD2%-< zkhu!qef;7}W8-VslXk)LEncbCtd%{rkv;2U_AGQCf#TJill$P~R~pm2@9vo9z&$a| z{ySot+k3z!`3&RA#IL)YaV66JlLy0_h$T#XK~(C9LG?{a>kQH{yz** zHmxVWs~^5%@$f{%osn{i>N=@tb$w-i8hZ5M@U>sY5$yo6zXY~DV6&q7?67HA{$<$I z0Gs{rFzn-jV!nS9nCv`5f2#L|3ue(Djs6H6S&OIPdD|Jv`2FF6(Nf0k3igEA>u1Pc z{Eu*fPJV%768bTLV>-4}0!M6dyWw~y7;ZR2eg2Qa1-DaQ332aNEKxQOVjdnuW*VV? zvPVpAgHNthHi?|vlqU}JW|J1ovV{(D_RH)sS1V}8q*bm^Jae8%o%h;Y%||TU@79%q z`~QAp1ox9`hF+yO8!X(9rUm#)6y(syp6l)IGmNMBzrqDs{xD&=V$QCjAy4A z&wrRVhQ7NVH1Fq$j3<_~!{ZqbeBdF*b(nFt>CkHf-7#m-rljF}YUjKXHf*5POp7Jw~w|y(~ckk)r z-A0-*Uii)E@!lRaULSDi1P;|b=6Apu`q8i({RD9y93MZlI$l$2X1kSL3EaCRXPKf$ z%Np}mlr`pRb(iP5Y~NeRbD_)ry<4BiX=J@$ZgVN$OXsQZbgjr~oQ;0H6q>#gU2q0G zrtn5}@Ui%B?-+ID;SPrqUlXsy@0jhN9rpLp(0z2e&0{!A&G}7QlO}R?&QoXWeUxs!W;Q>a!-DjIXPzN5>vbxz~n+;n0~*> z7l`g+5^4Jc$C*dj#~$b2dFsU1?_zyF^qn&jcMV^x|EN!V%|8CmZoOC!@GQ-kqF+SW zkNMx&IYmFf^MHG*{wdG?l~Y*mN)oWp*QyJHo+l@*=?9$tsV!_W{i_#~jr`Xw2T+LgoI=5JL z{``1&qC%abbBU$SE!3$VCvFsV<|y_+*DUs7%9(YIXp%mA@|A*Ji$+YwPJ=NhflT5$ z9_=T-P;y@F@4b}qe3IY}{Rp4Ty>aePKhCA59g?aWXHV|L2Bx3R?ouox4{j^cF>pT1OTlWe7-&sIhbDjrU?fCK8y<*E#6a(*IjZs-z)KnCsU{^c9n`7%A z@UhO*A9FXQ^;Z_(2_B}!D2vC!52R_pP@cWvE#NgGb!gx$@$-^mhACIACr=w=kr+Ll z@Dq_dUDp8vtDPdvYkK+ zJS;L==y@0!Z5QVce;)s5+CsBtDVvWmH?rTEGQAY<{XgP70PX9728v8C0G}ba9-g5b z+yi}x$n^RHyTR;%e%5IU|G%vaY+nxsh0e7e!zPKwu9Kn9M z+;OPY9NnOL4vj=dGa@&147t_`mYoGiN1uEp;A3Mko7HCA9H4a}YWa-gG^(qY(L|uDS=7Hr2Hy zHKErGc#w^4d!VRE?!wpx+`=|TpkxU4u**uCkhhg8(90%dCuyALZsjcC;2fC4{lQz2 z(UmWAHvRE|^d`A`qYJqe`2!x(yO0;fvj;f7<6Soj8dAvlt`Qnp$a$#`G`f&8n~V7_ zlrx*y^sz1kF7HCK3OOTo@@-0&i+!#L3>nS@X3gu(f6$1O_tJ++z=S z)Wr|35qZ@EEwv%PO)IQ)O@KI!CN5K6$>^Zob z!l0A$=%0*Noi0;^s1AuR-@+~db zlna1|N%Bsgjqi-Dzr1rMH{Ow3^_KT2xq>F|QF4VC-lOFK_uis-MjkWmNDQ5(6Z;nU z9`U($uS4!4cT%8ZHSQ8Z$EwJk6zECiE+MhqxsbaXjQq+NeIogd|8=AF@A6+@B`}M? z>vd#t4Q;kvju`l`i!SDj4IP9oHtbb*34IYAR=$GF#XVH_bl7%vK_C6BU1NP!4A4t} zX~XjqJ)W{GkI);j!N6YQ(+t-@?4)hG?p$lD9fPjc2hV#IWhd=j;OR8gd+w z=^*0~S}FD&Zhn6P*M!&c*<(0g3BThocoH+sZl(1zWO$LZJ;=YlPka4)w%2OXfu3XU z1c&w@M_fo5J7u^(2YrC)7yqBM{{{UqVCR~k?!b`tR!a2 zUdFMoe1I;pC&sx`>l~n85S>3Zx{G%{*U**)BWF!BV+bs zwBAZTsQV>tLAGIU5t%PJSBpMU=1lf9=HR7_x@_W;56}}Rvx9aH@!uE&^1H_v!&{_L z?@q-xN)M7}EAK|XGY07XIAD(q&RF}%dWZ1+mwXS8RtP(YOq@A_c7%M;9Fc|IMSZW3 z9)Z#Kc>hJDzE<=c_Ne-hC->)zXDCQ@l9|+>b{n`*70t@06V&J z%9?OW@IFF*6E+v=4_N7fGuU)^#g|F)$vvxg^WT75=Ou>hFr9nT&>ZOX=uq~62U{r1 z-j@_$PCo*6kECCsi%i^v^)!7+j<9E=1#>wMCO0hLRS{P*5&i=rrp~j4+* ztr1pR3NTTjzyGz;Rx3Ihqu-ocQX~Ic6+JofpL5N?$bZf{;s-DIDSCw)=$kor$Uq}` zRKaL|-JnfwebcE0N-zNj}*dL`MBEb;**QQ}&v2 zeB99|%o99%lzEkWMWnxsEzb8zi{P!KPb8nfS@7!L_;L6%>W%DY!b5(S-{n^Ny*!1M zNLkTY{_sDc>)3AW{gv1wVavw5e2dUHvwqf{wJ!=@$@fToq9c%Z>E8~Uv-B0dzL(%;I)rmxUCodeS@%1Pr*(-6?^r;*jx|6zps}reh``8ad||x z1TGgikgqV;p$VLqS75X2NFs(2a%`DPBgQ*-RJSK86W2^)A4gUkMyFH)&$ynr1V^~H zMC^tk6$2ll@9a;e?g={p>?=c$$#~EiYb!4eI)Q=Xre01d?}iut`(dTF$!_0O{ay4L zOS76H_dENMgH~hHTW#5SOCRdUCwE5SuZAwXeD~k5WtVwvuonbhpI?GsEq5lPpO7+s z?r=S=@BNes)!Y;8Wbf=6p*W>3Gfse_{|Z=29j{dtG)W!x$TF;UUzT>;(3?c+I#o{W zp9Xo8Sx1uB!5Wfy_EL}3(F)#|^f|o``F)fL<@BKf7#cDQ&L1-F6y!g#RdFYCO>Cow*cjfb8-x2wm5|Dv!L};yWv;Qq8_J!*F^!MY zFFDUYPQOfhPHacfW9|9zrH%Va(W#Dy4)(J(9-}Q{U^mKo5jdXKPJ-=JJLK04KQaWV;^g= z>oPBI;}+u0kteuVBw1%y0f(t*r=}LBby8Bnkv)VY> zr`4r1PO2*xTwo(Dmo(R~`U{lIjJ`^``YXdfw8{o;;0#^Z3;4$|4;r+=fxn{7pbhw` zZ4$fwqu6ZZ$JnslMW3)h*|qPG`pTkfp8CxB(DrrClX)EzJ}z6`MVwqp;1b`vH-|{~+<7X-Zzsva+I}P%P zd?f#A+9`E=e6}H+Y30nD>V1>8^X;iM$B@DN#HQ_d?-|Cz8N16?zIyZd+Pa^{J~HoJ z#+ioSKo>N#_3<(fwh+6pLs^=t+5&l``S3|hQEW9YQ`dX9;-h%0vg;{)eyVM$JBWog zwFp1qV)}b>*(_k55A0_$2Q$F^OYw`e8Mv>>ofVyS-Ji(1tzvH$nhDNp&*BexLiMP? zF~gUl_qT9Rcxa)E%O4k<6h1o1`w0IHUpM&qVv*T%_PL!tiGR*eo*HsfaBguOaOw85 zKvq!CyM}C4$|&pw*Zs2+PPhILx;yZzuHr+=)2{fEwBSRZ20X->ED&h{J5E)wuY2%&=&(9f4JHseR=wS z(3cbV8B1S^*G6OtN#0|m6+dUb7kRNkl=r8FZk)2Q=wxidXBCki4Ywfo3q`-5366&h zUw`u zwtw@6%~+!)l+8I$Sq1 zYfO(-8pZ#56n+s-XtI;F?qn^Drrkx!@im3;N-L<#pzr4^9>KS##K&&{^d9&`k5%Ao z^c%W)raqM;llzc)j`++C<4$zpktQ&=VY|>~J9Hri{EGz-xzm1G9KLd#UF^0|n-^$n1aoVg)9Pc*^PWZ~Csf+(ri!z%UthwXFK#1dmmS*g4l)`zBIj(eitce@AdQ-6xoL4b&$6h zxq@~ujr|gzBkGqj>1xh!WV?$GvA>IK>@f6N{G;lDoBs}1b}{~1)w^BUnQH&6^5MB2Y&1e{>FdsP zUCIyVr_i>7J~Qh3rx`Ew*CXGAMwztjbbraOg2w{J_)mw23!haB9>f1d;o-<|d4~7S zHSAYqZr`r_0vl>*E@z?@;Qjv;FTm$jxvS#3;ovJfg%|nIofXWt%xgNh5W&r!bMgNr zzBm?ej}+@u_MNl!@1FuASO0Dpt%-tBH9W(=%Gxnt0ge0LghgdI3>~?k8x{rsg0Kj; zsk=@tW3Q@`eM&`!FMB9wnR;THsH#3@fvUeyl@`47Xn57i1;h0Hqm|GLBhWEJ*Dv6V z@Xo~H`iozLUpmm5qJKO-#&ckb-SYz9#`3LE9j^a^Z|@vD4_gwOCxf(%;tYKR&xLgv z`X^bc=Q+N=b!ECflC*!kogwvm&U1^MujbuKJ-6}uDfH&#vKgE+OQrI)>i=Z^L3|?kcSt7DNA)Ve!9=7Y2WD;h1h%{PCevbmU(RFQ6A+;)k@1Z%;dK zWnaiG8rD7Lbx~vfSLccF4P)<%Ax=<_y$^lX=z5#Jk$n%n>`SGK&(QKoc*nQ;Pc-+rH_tWpw_NIalQOle znUl+=6Nkp!-+IbzA~KVA;h&Cj9%^~a75wmZTP*=&4Bx!!v&cZ+d;QDu7_H8oodypW zGdTAFH+-O+d9}>bI4234T@Y&AHzHyv?JPBP0ETs$<`{>K(U3 z-}i>y6aPn5@7tn?t>dZ#tqwh~CB~DWpga7FDz>Go`sc>$``cnYy?v@a;3HK(%$daB z)=PAntF%^Z?>5AFK7L;F?0eqf`J^r06KG5D9C*IBXaDnkJO`ieYvyw&=$^gGt}f!E z3Lh-zGGpFunyhcN&SbCJ&k5F5oilmMljlq}zO_%(J5Gdm-cy;S*R?6T_R_A*-$%?x z(*0koG4jNu=~c*)BI$i2>0?N*#Mg|vCBGI)|8$~WwN=q?wbE^o^nCK$R9*NV$$#QL ztNwDS|5WCG`nfB@8rR#AbS;DW?fP&l|67st>n2gZU9Ys# zTO#RW$iJ0(tn^=!?s@X&$qiLEPhP#@Nb z&b**c=e|alXWuxtXMa|n=Y`JR-WoMwdp`2R_}^{cu2r-@S)w{>#;Wl(&ek2mTJ zZSxsrsZVQce^R49tzyS^g+5ArX5eGu3o$n}75z)95^|*DD~W7CWM<+EP)H2PImC}F z!(MoUAxm{N%N?>$pm*JZ&!wcvy#gBYve}BZW0u3UdiKGGR!cl)&P@f#3lDBUhB&IY zxT%J6cT#RWGEPaGN4a>)_2w6;Z!0u@Z1J5-euPZ3G2@-JUNzpkQZ1uQf)Rsgbn%^& zSMsei0^47x2{oS9ZQEA@-yOf+v3(5R9w*-l<|pAhs%KlpJ5R==1M4}y z;rN{;Om=&uzH!CH!FSYt+fUWox8^14ZEStVs5jw1cWnO!^}bD>cN%}Uy-(%NCxw48 z;DoLqVX{g+ibvq}%+YXxz$JlS1YUc9%NT{bVoQpb+{O4;X8dj~edJ!=vRBH0=R&^6 zKWq0GGGXv5v$%M2Dfu+u5-%{ZzWq5q|Kxw|64Ho;}<5(D&SQFW`E%Q|1OT54zr%Tv&hf2oo-Juv_b45(d~+^bJri> zr5n&AR?9sl@XraG%{bM?=uV17w~79$7iq=VV;JwmR<-et&*;nL$oGqfi{09nb$LDY zkViIsnFo)K<0$=8paJkLM%_hcsJj(fWZGk$itG5HQLh=}QE1eOyMKueMMallL#JW~ zk2u#@d$j=rxs0{Y&d*93Vm}j#j<7~EsF-6X1#kr?o`vcO8EXP|N=6R+*CNbYndAZjc-F7v4=t1uPzOH>bZ5X=t zXUwsbQ(q2g)xWUbUvY(|$oqfv7>9+o<)mX%vZjc2h9BC?g5z5H>FXzg_Rtbzc~qroKb{FsB|ZqqkiAN5#Z-wIZ0aG+{Uwuf5|35%k|&p$I=Q3s z-RLe&nq7n(Tj8FyHWcs+UA^=-c|Ov@-RU`s5x@GzAAK48UZbk3%2lz;il!C)5;e6MU;*(O`DBTGnA#3shHqq!G51d(+dz9Nq`oZBt)P@p+7 z4{a6ZJjnkR{$m5pnFBi~yRBP4F$!EBU9ae4&`*rbQ1wRSG;@!JKW#)m@rx14u1~Uh zdG6xOi+*C&J5LQm&k)Pqw93v#{3rHj#lWjt`ib9>pE0AqSal#{1o{iRXAEUlRt(eU z9t-bm957N3fdpz`uUW3>&{{NzAVL% zmk3|-JoUc$fXH=-ot|gvwZDo+cU6tqmGid;R!c0|L|}p4>27~ptiGpTUynoPX(V^K zl=b&~UUk0SRW`umsKB=f+dd5#_^Wz(GOJz9{*6krlXf#Fi;@lX)TU8wWat$5L)52H?2zX+~VM5ya$@e4V{?|2Xve3pu+mpZ+q=G6NE81`*f2 z7~1Wx!uNXqTu|Xy~J8N8B1C( zzG*z;f`LO~H^#lmb~WU;~z?h`@we0z9?%;!LRO@)Un={9H?WT(7sbX z?tqkq*aMB2Ae>c{4K5FNlo|V|*|tr8qU}`Ml2`U;h5fSg6>K5;v4-i>p&V(? z#1n-(N{fgkrm1s+#Z|VT|IffB?>s%77_Pp%w@&N4XX~_d?kn|2`cHo|DypW2H^zWN z*f_r!6AHf?6B@#Qjs72hae62}aac_kuy&}#{f*_0bbPx`kjK|HTp#@aXLWp=#csCc zO6LE@=^8(g~wuVj19aiHny=uy(~CO?Hyd8 zPH%LpF^wgyytnoambm9O&2sl?3gW{ev2{Nuw%TE0tQ{kk+7V)@`Cex}-qomE4_fQ#rFLUh8>|ds@-_Y`Tv%zm-)NL|soZ_x;RAOQqeI3Y{ zE`&a9B;HIhdr91U(&g@o>v+cSyoM*SjpDB5NnE420-nS)5_orjukXi%{2Ql-*5k7% zG|SyZoCVg#yR*Y<#7`&fV|8(z;M+mqOI(s~I-ikw5d3t3a*ZcAMhySThvp0mU=#aM5z^Do&U~Q5+74)BRF^*{5uhif6KwOkR*CE;C?O~);N8js zwl2g|V?w`P~dQiTGwEeZ4zix-e;FZTVp0j-+^6a--x(EWYS zv(J-kLh#bJzxUVvv7cw3d1lU>nK^Uj%$YOi7~h`Ozs;jA`F3H{w>A1V6ENjlmGqxJ zPxmd4^oh(vqwV$-W%e`NX-ro#79XVk*_098wY(Q#|0nN46WTlXBjkOS{+`9%26_Lk zyxZ-IWgJt+p;I)aY(99kI{Op+73^Z4n!*2*{UUvGH~5J!9FZwxt?Q*u@MC}r_0Y0uQkUHRhJ@7Ma7t4{o7bP3`1nZMEqouu_l3RSX1cNqH@mG1w|sDuaXlYySL?Wi^Sa|^;Ifo>G(GV= z)dRn4d%>rCTo*n~W4rJf@&)(|Jr6#oxKHy%c!Up)w8>q%p5vA^rVAJ6*Sl~z`OxS0 z%_-Jl88@SEL^fK@xP2L14ugwR=Hw>U%je7UopNt^GwUhqM;mi@p_w(}e#ZAy>5Cos zqi<&}A7>pA-SrykDH*e-wsm}YeknGO*F*QEoUb=A=Ss0T$b_GE@^#|y{E54?Do=Y} zgtsTlo?sJe!SlQG6}Nk$iqCNWX8B(}@c^)o_u$)^+`IV}{U$I+B`DkE?tucl-{^4N zBfl8#tX|-XFZ&yGxEf6EId}yoPydDIhZ&f4O~{g>gzoPJW;1$vxrb-8Pv(!TLv5@> z?Z{=P-i-+zhd$@xZ%*3m#7CWfygVP97`T6O$W;*+?CiTF_sqw@2l|YxiOcD;Qu;~O zxeA_x@!?%U8Zw@&dH$vRN7j1@yi|oXwnsk-pG*<@)BEo}qyH{Ae_M@ldAgUjYI{F; zwP|X&#*i74kr$WX5AmN_KOTbKjrBw17lU8QUS`9uSTB$(&x}U4(0S`Y{Bbos9w}qw zor{0cleGJctott`JLjp}PP}`I_me*$yNj&Len9pf$I;=5PVoLLRg2drIvkg-6BJ!V z9DO6P>y~J`u|Yl)?YAJr$3ea;~J9IwC*f4T1C^BLreJ!a3Zi^4Tq z&e9LM9OR!?jvp1~7qU=b6EJjH$UlYjLgZCs?pkDQKX+ZFy`oo>{lF0PgFpC<><5PU zWG^DJjHa&}X%GGP&%`!5vYxs*Kgps!BL4-ViPpx_5Ce!&HLY%^bouN(Xkt1-d9Qm^m_EiG1Ubio@WUCPONEip*X;44DPYA~kl zrmeg2`;yQY*aSW=ac^zP?)*cA{1UB=ZCBYt<8Lx~Gms6lR}mB8`grez+Z69rH)2;l z30+{BvQzqaDShnEj`7T&hK~C2$UewlWe?TS?h~74c+=Q7i5`sDYR58Eb#^L!6?2{F zw^Oyg3eS*utL%}UpW#g$V6Dnk3T$mP?30J{tcdKF+p-n$bG0^i!xf%3`o4pGmE2DV zP>)sjaqEwt+Nf~Xz&{IF)XIGz*$Y1JIO*E!&OtmWblRb+At^|l|fc#81B z8p!6Zs9D)o5UZrL&9H~2rmEXkp~px^f8wW1JNxHi&a?WGhQFJg?b&Kb*5G#V7k^~p zOE?-BbO&=F<08ID!_Ll?e1T+qn)`kRWxb-%-NWKap2>nuR{n;(X{Z zEOuFo zj+>F+P5wOcbC(91qYboAW!-D&(S`@fmq9+ky=9%<#y)yrIyT1{L+lSXQLd8l4QCJH zyazf07bTN(ENK3}&1$u)N1gM5B{Z3Ho-$8Rrm{zwn<*2b?J@>e(2s)W_0s2zft~eQ z#-K@_j6w4^mDw$veN=u^+4?qT1n5HczlDzER_Y7UM}a%835C(;aUUYG2bQ+eW`T*W zXtwy-`71hnBcEMgXa0JrJv0FrM!K7J%biuJD`#H!x*qCLSDEM)*;{?w{%OteIjpy_ z_yL}7Suf*RWL84AzN2_=I-q(b&d(|6E}GU}Jsh6>19;XuyNOl$NBk4gH?l{T{q4y? zbwkfGCbGu~0AGACUG%4mz*#H>utU*PFaW@Z|vXdk((_La0kq8|vo(g=+m{miyJ8D9wLzKlTed>aKQ=8G5z0%cB zf|KYv$EtNh$E$U<7RGn5xw7_tQ(bKc-ro(sW8v8=!OxWleWQ~a1g)k}_5tQZGIYM9 z+~nz5W&?g&mr+Li0JIina!yLS-(fx#qJv<)6~9wuw{aJXemFIacsbBbphO9sgf>N{ zIK^6cJL#vecj*kY>gq{r>;a`;EU!oItGk#Fu71qF|3myi+O)7A`bp|Yq~7aBB(AT5 zhq{S7;NL{NWa19^pLgf4!H>jYbTy@vEuG4I{%_)Rqazjl$r1QaJ#nBmpg%l3%Mto% znJHKbpP2i1;#>n~gTNTcT0g2hAG?ZmCBRtySBZTXsr#$c>;Ll?*PHprsCq|J@8wwJ}UM{lp_q3yKSAu+FL?^N2W z@x>NpwjDSQfq}f#dR2M8tHN$;z(+)2(>xn{fU$w>`L-6Gm1c*nGF2HX_f^Z#*U7%R zwJ^)`OpIDRSMzyf(9&?gpscTn{F@58oA5-^hU(mN>ILG;IRNwX( z(?9(Eb4H4+zsgvJ1q@I`spBRZ*0A(TKZS|Ig5U6iW`nE zfI+_9;8$rLQiYFpt-Tu*6(4W&ZSd8_GEZZWxg=IufVM~AC3t=ez7hk>CHp)4@vjEP zNnqa${((j4&Do2Gs3(m5gS2B5_`_SZwxDa*+HtSMX$Al3JZJEHSM5{cSFhLF(N;2< zyHxmEBwnx9j>2s0l*CtBn(sgzz6^jb_3S=fdO(RCr1>;h3l0HOT9xd{{N!IG?bxKZ zgZ6Z`V-xLQkJftC?tD#lgm-V9L$oX{|cntC_F~)WD`Nws+ z8W~qx)VMa&9|6XsjkdG{r--=k8IRe|I`}DT@LO?f#-)i9`y}-th6XmAd5ru1j?dz+ z_`I>T&?lW^3+*>0MaFhokFgyMEq~G2+L)iwW1Fmx?SuN*hUoiKjO`?IT8FeH(hdvu zkAr+uX^Wk9%#CVGAKKEFw)|A>lgHTaKTKO9<2$6s_=;bOG~Zj#p*t|fm$Q1MulQjc zL%k4^L>Nyl|B`@L!)Eb^q0-h&@^c4Wqc4Z5C6pb-_gfh ziG0x8UPR6&&nLJ368h_2XPVDWo!Wj2ISL;VGp|hMel2p&>g*s-kcKEJ9ebW+cruGokFIP7)jFZ-AQ)#fswVf zQTl^9joHPU$cP;dBa$*5w84p-(T?uM&Rlku?ItEvInO;jD<&=|n;e{4787(LkBF=y zI>qh4ls)$eWW-8zR&D5NrQJC-_=kd5tuhg>Jc;y@n9wA6R_im2HEB8DkH{GEzYZS( zt7JcB$V_vv2@rW_zB^x&nf8*0d?GXXpQb-$pZ@qXbU_K6FS{pZf~%a3=O8nQ-bs;t zEZ=aPs_CW#&nLk1Bs})aG~x)&aBxQG2x;eww9!HP{EsI#2C}Ewrg|ptXggrpIkkE6 zj`rs>JySQt?f4F5<&4jNKl0a7bW_AY@h|7Ud3K|J5zmtHd|8VtMOW}c@nh_xC=PMpME1YN_-+%c<%PU5c2Va}eDzhU<( zkJ&j}OldqhdUEK@<Hn9(KR*X0gRaC^iT&M@Cl=9>FSWowB2g4ooY4`v_Ee|m%Y zvMB=d%#&R(V}a?fioldTtN6yv0KdrEJdFLQ;xkDeiid5`S7{8)1_8mox zT?=@I82^*#V$Y!aK925N&So_FfmSl0Z?QuNY#M0`94OkE+Z>$c z&aX2K>e#@Xmwocv=nCZBjeH_Hg%;+MH5Yy{LfH>Z9J7q6t2Op(IgFG1Z=$T&#-Z0a z=H$QZ+nV76E$C1xv2hfgRMSFN@P6<$;Aiq(VuXwCY0mSa*G==?b}ccR&~HdyS5)3+ zYz`#Oiq>v$pUXGVMQT2@(M9?382SNx1ztfw~-d}-y}2z8Ti&Y<+o*jGTaIp1sr4Z` zG6&~JMf8#AvZL)7zDhk3r{)NDAK#!pznq(JPI8cQlGa4hd+{9;KD*RaJU2H?^>C==Z#d8-n2%^8%^!ki*LlJ8>`9JWQstdsT!}<8aPi@NY zLu|B5m`iKaOM*ZBc5wTvV~9D%w

    iwkNN4c;7{Ta1{CWUFh(2b#3k1YYV*TCipdJ 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

    VeVa1U2f=?5g1ew6_uKh*d-4Xh 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

    D~nV&bR}hm^%PM+yT(c9ROa_`+6;R1+3t%fU(>a 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

    ~3Qv?dJG1ey}JFa?46Lud62zLVEw2|{5Tj3Xin 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 z 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�J!siNx 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

    mgCDt2}SqTAg&rV-5RG@brKFh-=A?V-9%l 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 H`Jep-(~Zqk diff --git a/flake.nix b/flake.nix index 635b4a0cf..a7b96770b 100644 --- a/flake.nix +++ b/flake.nix @@ -321,5 +321,13 @@ uboot-sd = ubootSD; uboot-netboot = ubootNetboot; }; + + devShells.x86_64-linux.default = let + pkgs = import nixpkgs { system = "x86_64-linux"; }; + pyPkgs = import ./nixos/pkgs/python-packages.nix { inherit pkgs; }; + cedar-detect = import ./nixos/pkgs/cedar-detect.nix { inherit pkgs; }; + in pkgs.mkShell { + packages = [ pyPkgs.devEnv pkgs.ruff cedar-detect ]; + }; }; } diff --git a/nixos/pkgs/cedar-detect-Cargo.lock b/nixos/pkgs/cedar-detect-Cargo.lock new file mode 100644 index 000000000..e5bb4b5eb --- /dev/null +++ b/nixos/pkgs/cedar-detect-Cargo.lock @@ -0,0 +1,2633 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "ab_glyph" +version = "0.2.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01c0457472c38ea5bd1c3b5ada5e368271cb550be7a4ca4a0b4634e9913f6cc2" +dependencies = [ + "ab_glyph_rasterizer", + "owned_ttf_parser", +] + +[[package]] +name = "ab_glyph_rasterizer" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "366ffbaa4442f4684d91e2cd7c5ea7c4ed8add41959a31447066e279e432b618" + +[[package]] +name = "adler2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + +[[package]] +name = "aho-corasick" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" +dependencies = [ + "memchr", +] + +[[package]] +name = "aligned" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee4508988c62edf04abd8d92897fca0c2995d907ce1dfeaf369dac3716a40685" +dependencies = [ + "as-slice", +] + +[[package]] +name = "aligned-vec" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc890384c8602f339876ded803c97ad529f3842aba97f6392b3dba0dd171769b" +dependencies = [ + "equator", +] + +[[package]] +name = "anstream" +version = "0.6.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" + +[[package]] +name = "anstyle-parse" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" +dependencies = [ + "anstyle", + "once_cell_polyfill", + "windows-sys 0.61.2", +] + +[[package]] +name = "anyhow" +version = "1.0.101" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f0e0fee31ef5ed1ba1316088939cea399010ed7731dba877ed44aeb407a75ea" + +[[package]] +name = "approx" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" +dependencies = [ + "num-traits", +] + +[[package]] +name = "arbitrary" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" + +[[package]] +name = "arg_enum_proc_macro" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "arrayvec" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" + +[[package]] +name = "as-slice" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "516b6b4f0e40d50dcda9365d53964ec74560ad4284da2e7fc97122cd83174516" +dependencies = [ + "stable_deref_trait", +] + +[[package]] +name = "async-stream" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "async-trait" +version = "0.1.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "autocfg" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" + +[[package]] +name = "av-scenechange" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f321d77c20e19b92c39e7471cf986812cbb46659d2af674adc4331ef3f18394" +dependencies = [ + "aligned", + "anyhow", + "arg_enum_proc_macro", + "arrayvec", + "log", + "num-rational", + "num-traits", + "pastey", + "rayon", + "thiserror", + "v_frame", + "y4m", +] + +[[package]] +name = "av1-grain" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cfddb07216410377231960af4fcab838eaa12e013417781b78bd95ee22077f8" +dependencies = [ + "anyhow", + "arrayvec", + "log", + "nom", + "num-rational", + "v_frame", +] + +[[package]] +name = "avif-serialize" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "375082f007bd67184fb9c0374614b29f9aaa604ec301635f72338bb65386a53d" +dependencies = [ + "arrayvec", +] + +[[package]] +name = "axum" +version = "0.6.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" +dependencies = [ + "async-trait", + "axum-core", + "bitflags 1.3.2", + "bytes", + "futures-util", + "http", + "http-body", + "hyper", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "sync_wrapper", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "mime", + "rustversion", + "tower-layer", + "tower-service", +] + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "bit_field" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e4b40c7323adcfc0a41c4b88143ed58346ff65a288fc144329c5c45e05d70c6" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" + +[[package]] +name = "bitstream-io" +version = "4.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60d4bd9d1db2c6bdf285e223a7fa369d5ce98ec767dec949c6ca62863ce61757" +dependencies = [ + "core2", +] + +[[package]] +name = "built" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4ad8f11f288f48ca24471bbd51ac257aaeaaa07adae295591266b792902ae64" + +[[package]] +name = "bumpalo" +version = "3.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" + +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" + +[[package]] +name = "byteorder-lite" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" + +[[package]] +name = "bytes" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" + +[[package]] +name = "cc" +version = "1.2.55" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b26a0954ae34af09b50f0de26458fa95369a0d478d8236d3f93082b219bd29" +dependencies = [ + "find-msvc-tools", + "jobserver", + "libc", + "shlex", +] + +[[package]] +name = "cedar_detect" +version = "0.8.0" +dependencies = [ + "approx", + "clap", + "env_logger", + "image", + "imageproc", + "libc", + "log", + "prctl", + "prost", + "prost-build", + "prost-types", + "tokio", + "tonic", + "tonic-build", + "tonic-web", +] + +[[package]] +name = "cfg-if" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" + +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + +[[package]] +name = "clap" +version = "4.5.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63be97961acde393029492ce0be7a1af7e323e6bae9511ebfac33751be5e6806" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.5.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f13174bda5dfd69d7e947827e5af4b0f2f94a4a3ee92912fba07a66150f21e2" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", +] + +[[package]] +name = "clap_derive" +version = "4.5.55" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a92793da1a46a5f2a02a6f4c46c6496b28c43638adea8306fcb0caa1634f24e5" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "clap_lex" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a822ea5bc7590f9d40f1ba12c0dc3c2760f3482c6984db1573ad11031420831" + +[[package]] +name = "color_quant" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" + +[[package]] +name = "colorchoice" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" + +[[package]] +name = "core2" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" +dependencies = [ + "memchr", +] + +[[package]] +name = "crc32fast" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + +[[package]] +name = "crunchy" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" + +[[package]] +name = "either" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" + +[[package]] +name = "env_logger" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" +dependencies = [ + "humantime", + "is-terminal", + "log", + "regex", + "termcolor", +] + +[[package]] +name = "equator" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4711b213838dfee0117e3be6ac926007d7f433d7bbe33595975d4190cb07e6fc" +dependencies = [ + "equator-macro", +] + +[[package]] +name = "equator-macro" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44f23cf4b44bfce11a86ace86f8a73ffdec849c9fd00a386a53d278bd9e81fb3" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "errno" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "exr" +version = "1.74.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4300e043a56aa2cb633c01af81ca8f699a321879a7854d3896a0ba89056363be" +dependencies = [ + "bit_field", + "half", + "lebe", + "miniz_oxide", + "rayon-core", + "smallvec", + "zune-inflate", +] + +[[package]] +name = "fastrand" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" + +[[package]] +name = "fax" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f05de7d48f37cd6730705cbca900770cab77a89f413d23e100ad7fad7795a0ab" +dependencies = [ + "fax_derive", +] + +[[package]] +name = "fax_derive" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0aca10fb742cb43f9e7bb8467c91aa9bcb8e3ffbc6a6f7389bb93ffc920577d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "fdeflate" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "find-msvc-tools" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "flate2" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + +[[package]] +name = "futures-channel" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" + +[[package]] +name = "futures-sink" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" + +[[package]] +name = "futures-task" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" + +[[package]] +name = "futures-util" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +dependencies = [ + "futures-core", + "futures-task", + "pin-project-lite", + "pin-utils", +] + +[[package]] +name = "getrandom" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi", + "wasm-bindgen", +] + +[[package]] +name = "getrandom" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasip2", +] + +[[package]] +name = "getrandom" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "139ef39800118c7683f2fd3c98c1b23c09ae076556b435f8e9064ae108aaeeec" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasip2", + "wasip3", +] + +[[package]] +name = "gif" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5df2ba84018d80c213569363bdcd0c64e6933c67fe4c1d60ecf822971a3c35e" +dependencies = [ + "color_quant", + "weezl", +] + +[[package]] +name = "h2" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0beca50380b1fc32983fc1cb4587bfa4bb9e78fc259aad4a0032d2080309222d" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap 2.13.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "half" +version = "2.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" +dependencies = [ + "cfg-if", + "crunchy", + "zerocopy", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "foldhash", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" + +[[package]] +name = "http" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "http-range-header" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "humantime" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" + +[[package]] +name = "hyper" +version = "0.14.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2 0.5.10", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-timeout" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +dependencies = [ + "hyper", + "pin-project-lite", + "tokio", + "tokio-io-timeout", +] + +[[package]] +name = "id-arena" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" + +[[package]] +name = "image" +version = "0.25.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6506c6c10786659413faa717ceebcb8f70731c0a60cbae39795fdf114519c1a" +dependencies = [ + "bytemuck", + "byteorder-lite", + "color_quant", + "exr", + "gif", + "image-webp", + "moxcms", + "num-traits", + "png", + "qoi", + "ravif", + "rayon", + "rgb", + "tiff", + "zune-core 0.5.1", + "zune-jpeg 0.5.12", +] + +[[package]] +name = "image-webp" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "525e9ff3e1a4be2fbea1fdf0e98686a6d98b4d8f937e1bf7402245af1909e8c3" +dependencies = [ + "byteorder-lite", + "quick-error", +] + +[[package]] +name = "imageproc" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2393fb7808960751a52e8a154f67e7dd3f8a2ef9bd80d1553078a7b4e8ed3f0d" +dependencies = [ + "ab_glyph", + "approx", + "getrandom 0.2.17", + "image", + "itertools 0.12.1", + "nalgebra", + "num", + "rand 0.8.5", + "rand_distr", + "rayon", +] + +[[package]] +name = "imgref" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c5cedc30da3a610cac6b4ba17597bdf7152cf974e8aab3afb3d54455e371c8" + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", +] + +[[package]] +name = "indexmap" +version = "2.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" +dependencies = [ + "equivalent", + "hashbrown 0.16.1", + "serde", + "serde_core", +] + +[[package]] +name = "interpolate_name" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "is-terminal" +version = "0.4.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3640c1c38b8e4e43584d8df18be5fc6b0aa314ce6ebf51b53313d4306cca8e46" +dependencies = [ + "hermit-abi", + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" + +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" + +[[package]] +name = "jobserver" +version = "0.1.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" +dependencies = [ + "getrandom 0.3.4", + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.85" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "leb128fmt" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" + +[[package]] +name = "lebe" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a79a3332a6609480d7d0c9eab957bca6b455b91bb84e66d19f5ff66294b85b8" + +[[package]] +name = "libc" +version = "0.2.181" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "459427e2af2b9c839b132acb702a1c654d95e10f8c326bfc2ad11310e458b1c5" + +[[package]] +name = "libfuzzer-sys" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f12a681b7dd8ce12bff52488013ba614b869148d54dd79836ab85aafdd53f08d" +dependencies = [ + "arbitrary", + "cc", +] + +[[package]] +name = "libm" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" + +[[package]] +name = "linux-raw-sys" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" + +[[package]] +name = "log" +version = "0.4.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" + +[[package]] +name = "loop9" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fae87c125b03c1d2c0150c90365d7d6bcc53fb73a9acaef207d2d065860f062" +dependencies = [ + "imgref", +] + +[[package]] +name = "matchit" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" + +[[package]] +name = "matrixmultiply" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a06de3016e9fae57a36fd14dba131fccf49f74b40b7fbdb472f96e361ec71a08" +dependencies = [ + "autocfg", + "rawpointer", +] + +[[package]] +name = "maybe-rayon" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519" +dependencies = [ + "cfg-if", + "rayon", +] + +[[package]] +name = "memchr" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "miniz_oxide" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +dependencies = [ + "adler2", + "simd-adler32", +] + +[[package]] +name = "mio" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" +dependencies = [ + "libc", + "wasi", + "windows-sys 0.61.2", +] + +[[package]] +name = "moxcms" +version = "0.7.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac9557c559cd6fc9867e122e20d2cbefc9ca29d80d027a8e39310920ed2f0a97" +dependencies = [ + "num-traits", + "pxfm", +] + +[[package]] +name = "multimap" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084" + +[[package]] +name = "nalgebra" +version = "0.32.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5c17de023a86f59ed79891b2e5d5a94c705dbe904a5b5c9c952ea6221b03e4" +dependencies = [ + "approx", + "matrixmultiply", + "num-complex", + "num-rational", + "num-traits", + "simba", + "typenum", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "nix" +version = "0.30.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" +dependencies = [ + "bitflags 2.10.0", + "cfg-if", + "cfg_aliases", + "libc", +] + +[[package]] +name = "nom" +version = "8.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405" +dependencies = [ + "memchr", +] + +[[package]] +name = "noop_proc_macro" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0676bb32a98c1a483ce53e500a81ad9c3d5b3f7c920c28c24e9cb0980d0b5bc8" + +[[package]] +name = "num" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" +dependencies = [ + "num-bigint", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +dependencies = [ + "num-bigint", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "once_cell" +version = "1.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" + +[[package]] +name = "once_cell_polyfill" +version = "1.70.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" + +[[package]] +name = "owned_ttf_parser" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36820e9051aca1014ddc75770aab4d68bc1e9e632f0f5627c4086bc216fb583b" +dependencies = [ + "ttf-parser", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "pastey" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35fb2e5f958ec131621fdd531e9fc186ed768cbe395337403ae56c17a74c68ec" + +[[package]] +name = "percent-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + +[[package]] +name = "petgraph" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +dependencies = [ + "fixedbitset", + "indexmap 2.13.0", +] + +[[package]] +name = "pin-project" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "png" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97baced388464909d42d89643fe4361939af9b7ce7a31ee32a168f832a70f2a0" +dependencies = [ + "bitflags 2.10.0", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "prctl" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "059a34f111a9dee2ce1ac2826a68b24601c4298cfeb1a587c3cb493d5ab46f52" +dependencies = [ + "libc", + "nix", +] + +[[package]] +name = "prettyplease" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +dependencies = [ + "proc-macro2", + "syn", +] + +[[package]] +name = "proc-macro2" +version = "1.0.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "profiling" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3eb8486b569e12e2c32ad3e204dbaba5e4b5b216e9367044f25f1dba42341773" +dependencies = [ + "profiling-procmacros", +] + +[[package]] +name = "profiling-procmacros" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52717f9a02b6965224f95ca2a81e2e0c5c43baacd28ca057577988930b6c3d5b" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "prost" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-build" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22505a5c94da8e3b7c2996394d1c933236c4d743e81a410bcca4e6989fc066a4" +dependencies = [ + "bytes", + "heck", + "itertools 0.12.1", + "log", + "multimap", + "once_cell", + "petgraph", + "prettyplease", + "prost", + "prost-types", + "regex", + "syn", + "tempfile", +] + +[[package]] +name = "prost-derive" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" +dependencies = [ + "anyhow", + "itertools 0.12.1", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "prost-types" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9091c90b0a32608e984ff2fa4091273cbdd755d54935c51d520887f4a1dbd5b0" +dependencies = [ + "prost", +] + +[[package]] +name = "pxfm" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7186d3822593aa4393561d186d1393b3923e9d6163d3fbfd6e825e3e6cf3e6a8" +dependencies = [ + "num-traits", +] + +[[package]] +name = "qoi" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6d64c71eb498fe9eae14ce4ec935c555749aef511cca85b5568910d6e48001" +dependencies = [ + "bytemuck", +] + +[[package]] +name = "quick-error" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" + +[[package]] +name = "quote" +version = "1.0.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.5", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.5", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.17", +] + +[[package]] +name = "rand_core" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" +dependencies = [ + "getrandom 0.3.4", +] + +[[package]] +name = "rand_distr" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" +dependencies = [ + "num-traits", + "rand 0.8.5", +] + +[[package]] +name = "rav1e" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43b6dd56e85d9483277cde964fd1bdb0428de4fec5ebba7540995639a21cb32b" +dependencies = [ + "aligned-vec", + "arbitrary", + "arg_enum_proc_macro", + "arrayvec", + "av-scenechange", + "av1-grain", + "bitstream-io", + "built", + "cfg-if", + "interpolate_name", + "itertools 0.14.0", + "libc", + "libfuzzer-sys", + "log", + "maybe-rayon", + "new_debug_unreachable", + "noop_proc_macro", + "num-derive", + "num-traits", + "paste", + "profiling", + "rand 0.9.2", + "rand_chacha 0.9.0", + "simd_helpers", + "thiserror", + "v_frame", + "wasm-bindgen", +] + +[[package]] +name = "ravif" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef69c1990ceef18a116855938e74793a5f7496ee907562bd0857b6ac734ab285" +dependencies = [ + "avif-serialize", + "imgref", + "loop9", + "quick-error", + "rav1e", + "rayon", + "rgb", +] + +[[package]] +name = "rawpointer" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" + +[[package]] +name = "rayon" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "regex" +version = "1.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a96887878f22d7bad8a3b6dc5b7440e0ada9a245242924394987b21cf2210a4c" + +[[package]] +name = "rgb" +version = "0.8.52" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c6a884d2998352bb4daf0183589aec883f16a6da1f4dde84d8e2e9a5409a1ce" + +[[package]] +name = "rustix" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34" +dependencies = [ + "bitflags 2.10.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "rustversion" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" + +[[package]] +name = "safe_arch" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96b02de82ddbe1b636e6170c21be622223aea188ef2e139be0a5b219ec215323" +dependencies = [ + "bytemuck", +] + +[[package]] +name = "semver" +version = "1.0.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" + +[[package]] +name = "serde" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.149" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "simba" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "061507c94fc6ab4ba1c9a0305018408e312e17c041eb63bef8aa726fa33aceae" +dependencies = [ + "approx", + "num-complex", + "num-traits", + "paste", + "wide", +] + +[[package]] +name = "simd-adler32" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" + +[[package]] +name = "simd_helpers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95890f873bec569a0362c235787f3aca6e1e887302ba4840839bcc6459c42da6" +dependencies = [ + "quote", +] + +[[package]] +name = "slab" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" + +[[package]] +name = "smallvec" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" + +[[package]] +name = "socket2" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "socket2" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86f4aa3ad99f2088c990dfa82d367e19cb29268ed67c574d10d0a4bfe71f07e0" +dependencies = [ + "libc", + "windows-sys 0.60.2", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "syn" +version = "2.0.114" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "tempfile" +version = "3.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0136791f7c95b1f6dd99f9cc786b91bb81c3800b639b3478e561ddb7be95e5f1" +dependencies = [ + "fastrand", + "getrandom 0.4.1", + "once_cell", + "rustix", + "windows-sys 0.61.2", +] + +[[package]] +name = "termcolor" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "thiserror" +version = "2.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tiff" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af9605de7fee8d9551863fd692cce7637f548dbd9db9180fcc07ccc6d26c336f" +dependencies = [ + "fax", + "flate2", + "half", + "quick-error", + "weezl", + "zune-jpeg 0.4.21", +] + +[[package]] +name = "tokio" +version = "1.49.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86" +dependencies = [ + "bytes", + "libc", + "mio", + "pin-project-lite", + "socket2 0.6.2", + "tokio-macros", + "windows-sys 0.61.2", +] + +[[package]] +name = "tokio-io-timeout" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bd86198d9ee903fedd2f9a2e72014287c0d9167e4ae43b5853007205dda1b76" +dependencies = [ + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-macros" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tokio-stream" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32da49809aab5c3bc678af03902d4ccddea2a87d028d86392a4b1560c6906c70" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tonic" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76c4eb7a4e9ef9d4763600161f12f5070b92a578e1b634db88a6887844c91a13" +dependencies = [ + "async-stream", + "async-trait", + "axum", + "base64", + "bytes", + "h2", + "http", + "http-body", + "hyper", + "hyper-timeout", + "percent-encoding", + "pin-project", + "prost", + "tokio", + "tokio-stream", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tonic-build" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4ef6dd70a610078cb4e338a0f79d06bc759ff1b22d2120c2ff02ae264ba9c2" +dependencies = [ + "prettyplease", + "proc-macro2", + "prost-build", + "quote", + "syn", +] + +[[package]] +name = "tonic-web" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc3b0e1cedbf19fdfb78ef3d672cb9928e0a91a9cb4629cc0c916e8cff8aaaa1" +dependencies = [ + "base64", + "bytes", + "http", + "http-body", + "hyper", + "pin-project", + "tokio-stream", + "tonic", + "tower-http", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "indexmap 1.9.3", + "pin-project", + "pin-project-lite", + "rand 0.8.5", + "slab", + "tokio", + "tokio-util", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-http" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140" +dependencies = [ + "bitflags 2.10.0", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-range-header", + "pin-project-lite", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" +dependencies = [ + "once_cell", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "ttf-parser" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2df906b07856748fa3f6e0ad0cbaa047052d4a7dd609e231c4f72cee8c36f31" + +[[package]] +name = "typenum" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" + +[[package]] +name = "unicode-ident" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "537dd038a89878be9b64dd4bd1b260315c1bb94f4d784956b81e27a088d9a09e" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + +[[package]] +name = "v_frame" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "666b7727c8875d6ab5db9533418d7c764233ac9c0cff1d469aec8fa127597be2" +dependencies = [ + "aligned-vec", + "num-traits", + "wasm-bindgen", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + +[[package]] +name = "wasip2" +version = "1.0.2+wasi-0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasip3" +version = "0.4.0+wasi-0.3.0-rc-2026-01-06" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.108" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.108" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.108" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.108" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "wasm-encoder" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" +dependencies = [ + "leb128fmt", + "wasmparser", +] + +[[package]] +name = "wasm-metadata" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" +dependencies = [ + "anyhow", + "indexmap 2.13.0", + "wasm-encoder", + "wasmparser", +] + +[[package]] +name = "wasmparser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +dependencies = [ + "bitflags 2.10.0", + "hashbrown 0.15.5", + "indexmap 2.13.0", + "semver", +] + +[[package]] +name = "weezl" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88" + +[[package]] +name = "wide" +version = "0.7.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce5da8ecb62bcd8ec8b7ea19f69a51275e91299be594ea5cc6ef7819e16cd03" +dependencies = [ + "bytemuck", + "safe_arch", +] + +[[package]] +name = "winapi-util" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.5", +] + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm 0.52.6", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.53.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" +dependencies = [ + "windows-link", + "windows_aarch64_gnullvm 0.53.1", + "windows_aarch64_msvc 0.53.1", + "windows_i686_gnu 0.53.1", + "windows_i686_gnullvm 0.53.1", + "windows_i686_msvc 0.53.1", + "windows_x86_64_gnu 0.53.1", + "windows_x86_64_gnullvm 0.53.1", + "windows_x86_64_msvc 0.53.1", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_i686_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" + +[[package]] +name = "wit-bindgen" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" +dependencies = [ + "wit-bindgen-rust-macro", +] + +[[package]] +name = "wit-bindgen-core" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" +dependencies = [ + "anyhow", + "heck", + "wit-parser", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" +dependencies = [ + "anyhow", + "heck", + "indexmap 2.13.0", + "prettyplease", + "syn", + "wasm-metadata", + "wit-bindgen-core", + "wit-component", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn", + "wit-bindgen-core", + "wit-bindgen-rust", +] + +[[package]] +name = "wit-component" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" +dependencies = [ + "anyhow", + "bitflags 2.10.0", + "indexmap 2.13.0", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder", + "wasm-metadata", + "wasmparser", + "wit-parser", +] + +[[package]] +name = "wit-parser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" +dependencies = [ + "anyhow", + "id-arena", + "indexmap 2.13.0", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser", +] + +[[package]] +name = "y4m" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5a4b21e1a62b67a2970e6831bc091d7b87e119e7f9791aef9702e3bef04448" + +[[package]] +name = "zerocopy" +version = "0.8.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db6d35d663eadb6c932438e763b262fe1a70987f9ae936e60158176d710cae4a" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zmij" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4de98dfa5d5b7fef4ee834d0073d560c9ca7b6c46a71d058c48db7960f8cfaf7" + +[[package]] +name = "zune-core" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a" + +[[package]] +name = "zune-core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb8a0807f7c01457d0379ba880ba6322660448ddebc890ce29bb64da71fb40f9" + +[[package]] +name = "zune-inflate" +version = "0.2.54" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73ab332fe2f6680068f3582b16a24f90ad7096d5d39b974d1c0aff0125116f02" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "zune-jpeg" +version = "0.4.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29ce2c8a9384ad323cf564b67da86e21d3cfdff87908bc1223ed5c99bc792713" +dependencies = [ + "zune-core 0.4.12", +] + +[[package]] +name = "zune-jpeg" +version = "0.5.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "410e9ecef634c709e3831c2cfdb8d9c32164fae1c67496d5b68fff728eec37fe" +dependencies = [ + "zune-core 0.5.1", +] diff --git a/nixos/pkgs/cedar-detect.nix b/nixos/pkgs/cedar-detect.nix index a8ebf1e2b..da84d849d 100644 --- a/nixos/pkgs/cedar-detect.nix +++ b/nixos/pkgs/cedar-detect.nix @@ -1,13 +1,27 @@ { pkgs }: -pkgs.stdenv.mkDerivation { +pkgs.rustPlatform.buildRustPackage rec { pname = "cedar-detect-server"; - version = "0.1.0"; - src = ../../bin; - nativeBuildInputs = [ pkgs.autoPatchelfHook ]; - buildInputs = [ pkgs.stdenv.cc.cc.lib ]; - installPhase = '' - mkdir -p $out/bin - cp cedar-detect-server-aarch64 $out/bin/cedar-detect-server - chmod +x $out/bin/cedar-detect-server + version = "0.5.0-unstable-2026-02-11"; + + src = pkgs.fetchFromGitHub { + owner = "smroid"; + repo = "cedar-detect"; + rev = "da6be9d318976a1a0853ecdf6dd6cefe41615352"; + hash = "sha256-SqWJ35cBOSCu8w5nK2lcdlMWK/bHINatzjr/p+MH3/o="; + }; + + cargoLock.lockFile = ./cedar-detect-Cargo.lock; + + postPatch = '' + ln -s ${./cedar-detect-Cargo.lock} Cargo.lock ''; + + nativeBuildInputs = [ pkgs.protobuf ]; + + cargoBuildFlags = [ "--bin" "cedar-detect-server" ]; + + meta = { + description = "Cedar Detect star detection gRPC server"; + homepage = "https://github.com/smroid/cedar-detect"; + }; } diff --git a/nixos/pkgs/python-packages.nix b/nixos/pkgs/python-packages.nix new file mode 100644 index 000000000..1486ea385 --- /dev/null +++ b/nixos/pkgs/python-packages.nix @@ -0,0 +1,515 @@ +{ pkgs, lib ? pkgs.lib }: +let + python = pkgs.python313; + + pifinderPython = python.override { + packageOverrides = self: super: { + # --- Pure Python, trivial packages --- + + sh = self.buildPythonPackage rec { + pname = "sh"; + version = "1.14.3"; + pyproject = true; + build-system = [ self.setuptools ]; + src = self.fetchPypi { + inherit pname version; + hash = "sha256-5ARbbHMtnOddVxx59awiNO3Zrk9fqdWbCXBQgr3KGMc="; + }; + doCheck = false; + }; + + gpsdclient = self.buildPythonPackage rec { + pname = "gpsdclient"; + version = "1.3.2"; + pyproject = true; + build-system = [ self.poetry-core ]; + src = self.fetchPypi { + inherit pname version; + hash = "sha256-cKSWVQqXR9/14OULPJWm4dyrnYQoYJl+lRIHZ+IGCno="; + }; + doCheck = false; + }; + + dataclasses-json = self.buildPythonPackage rec { + pname = "dataclasses-json"; + version = "0.6.7"; + format = "pyproject"; + src = pkgs.fetchurl { + url = "https://files.pythonhosted.org/packages/64/a4/f71d9cf3a5ac257c993b5ca3f93df5f7fb395c725e7f1e6479d2514173c3/dataclasses_json-0.6.7.tar.gz"; + hash = "sha256-trPlKCZupFuVNSI7xTymRfUgiDPCkinoR7PyahzFX8A="; + }; + nativeBuildInputs = [ self.poetry-core ]; + propagatedBuildInputs = [ + self.marshmallow + self.typing-inspect + ]; + postPatch = '' + substituteInPlace pyproject.toml \ + --replace-fail 'requires = ["poetry-core>=1.2.0", "poetry-dynamic-versioning"]' 'requires = ["poetry-core>=1.2.0"]' \ + --replace-fail 'build-backend = "poetry_dynamic_versioning.backend"' 'build-backend = "poetry.core.masonry.api"' + ''; + doCheck = false; + }; + + pydeepskylog = self.buildPythonPackage rec { + pname = "pydeepskylog"; + version = "1.6"; + pyproject = true; + build-system = [ self.setuptools ]; + src = self.fetchPypi { + inherit pname version; + hash = "sha256-3erm0ASBfPtQ1cngzsqkZUrnKoLNIBu8U1D6iA4ePmE="; + }; + propagatedBuildInputs = [ self.requests ]; + doCheck = false; + }; + + python-pam = self.buildPythonPackage rec { + pname = "python-pam"; + version = "2.0.2"; + format = "pyproject"; + src = self.fetchPypi { + inherit pname version; + hash = "sha256-lyNSNbqbgtuugGjRCZUIRVlJsnX3cnPKIv29ix+12VA="; + }; + nativeBuildInputs = [ self.setuptools self.six ]; + postPatch = '' + substituteInPlace src/pam/__internals.py \ + --replace-fail 'find_library("pam")' '"${pkgs.pam}/lib/libpam.so"' \ + --replace-fail 'find_library("pam_misc")' '"${pkgs.pam}/lib/libpam_misc.so"' + ''; + doCheck = false; + }; + + # --- Display stack: luma.core -> luma.oled, luma.lcd --- + + luma-core = self.buildPythonPackage rec { + pname = "luma.core"; + version = "2.4.2"; + pyproject = true; + build-system = [ self.setuptools ]; + src = self.fetchPypi { + inherit pname version; + hash = "sha256-ljwmQWTUN09UnVfbCVmeDKRYzqG9BeFpOYl2Gb5Obb0="; + }; + propagatedBuildInputs = [ + self.pillow + self.smbus2 + self.pyftdi + self.cbor2 + self.deprecated + ]; + dontCheckRuntimeDeps = true; + doCheck = false; + }; + + luma-oled = self.buildPythonPackage rec { + pname = "luma.oled"; + version = "3.13.0"; + pyproject = true; + build-system = [ self.setuptools ]; + src = self.fetchPypi { + inherit pname version; + hash = "sha256-fioNakyWjGSYAlXWgewnkU2avVpmqQGbKJvzrQUMISU="; + }; + propagatedBuildInputs = [ self.luma-core ]; + doCheck = false; + }; + + pyhotkey = self.buildPythonPackage rec { + pname = "PyHotKey"; + version = "1.5.2"; + pyproject = true; + build-system = [ self.setuptools ]; + src = self.fetchPypi { + inherit pname version; + hash = "sha256-ObV5wDjnhQwmqmfMH5F9VUbJ2XPOYKuZH9OGodSdGrQ="; + }; + propagatedBuildInputs = [ self.pynput ]; + pythonRelaxDeps = [ "pynput" ]; + nativeBuildInputs = [ pkgs.python313Packages.pythonRelaxDepsHook ]; + doCheck = false; + }; + + luma-emulator = self.buildPythonPackage rec { + pname = "luma.emulator"; + version = "1.5.0"; + pyproject = true; + build-system = [ self.setuptools ]; + src = self.fetchPypi { + inherit pname version; + hash = "sha256-0PCbFz9BQmXadpL+THw348tU9PgTjhNfixtHFeN4248="; + }; + propagatedBuildInputs = [ self.luma-core self.pygame ]; + doCheck = false; + }; + + luma-lcd = self.buildPythonPackage rec { + pname = "luma.lcd"; + version = "2.11.0"; + pyproject = true; + build-system = [ self.setuptools ]; + src = self.fetchPypi { + inherit pname version; + hash = "sha256-1GBE6W/TmUPr5Iph51M3FXG+FJekvqlrcuOpxzL77uQ="; + }; + propagatedBuildInputs = [ self.luma-core ]; + doCheck = false; + }; + + python-libinput = self.buildPythonPackage rec { + pname = "python-libinput"; + version = "0.3.0a0"; + pyproject = true; + build-system = [ self.setuptools ]; + src = self.fetchPypi { + inherit pname version; + hash = "sha256-fj08l4aqp5vy8UYBZIWBtGJLaS0/DZGZkC0NCDQhkwI="; + }; + buildInputs = [ pkgs.libinput pkgs.systemd ]; + nativeBuildInputs = [ pkgs.pkg-config ]; + propagatedBuildInputs = [ self.cffi ]; + postPatch = '' + substituteInPlace setup.py \ + --replace-fail 'from imp import load_source' 'import importlib.util, types +def load_source(name, path): + spec = importlib.util.spec_from_file_location(name, path) + mod = importlib.util.module_from_spec(spec) + spec.loader.exec_module(mod) + return mod' + substituteInPlace libinput/__init__.py \ + --replace-fail "CDLL('libudev.so.1')" "CDLL('${lib.getLib pkgs.systemd}/lib/libudev.so.1')" \ + --replace-fail "CDLL('libinput.so.10')" "CDLL('${lib.getLib pkgs.libinput}/lib/libinput.so.10')" + ''; + doCheck = false; + }; + + # --- Hardware-only packages (aarch64/Pi) --- + + RPi-GPIO = self.buildPythonPackage rec { + pname = "RPi.GPIO"; + version = "0.7.1"; + pyproject = true; + build-system = [ self.setuptools ]; + src = self.fetchPypi { + inherit pname version; + hash = "sha256-zWHEsDw3tiu6SlrP6phidJwzxhjgKV5+kKpHE/s3O3A="; + }; + postPatch = '' + python3 -c ' + import sys + with open("source/cpuinfo.c") as f: src = f.read() + old = " if (!found)\n return -1;" + new = ( + " if (!found) {\n" + " FILE *fp2 = fopen(\"/proc/device-tree/compatible\", \"r\");\n" + " if (fp2) {\n" + " char compat[256] = {0};\n" + " fread(compat, 1, sizeof(compat)-1, fp2);\n" + " fclose(fp2);\n" + " if (strstr(compat, \"raspberrypi\")) {\n" + " found = 1;\n" + " strcpy(revision, \"c03115\");\n" + " }\n" + " }\n" + " }\n" + "\n" + " if (!found)\n" + " return -1;" + ) + assert old in src, "pattern not found in cpuinfo.c" + src = src.replace(old, new, 1) + with open("source/cpuinfo.c", "w") as f: f.write(src) + ' + ''; + doCheck = false; + }; + + rpi-hardware-pwm = self.buildPythonPackage rec { + pname = "rpi-hardware-pwm"; + version = "0.3.0"; + pyproject = true; + build-system = [ self.setuptools ]; + src = pkgs.fetchurl { + url = "https://files.pythonhosted.org/packages/be/0c/4308050d8b6bbe24e8e54b38e48b287b1e356efce33cd485ee4387fc92a9/rpi_hardware_pwm-0.3.0.tar.gz"; + hash = "sha256-HshwYzp5XpijEGhWXwZ/gvZKjhZ4BpvPjdcC+i+zGyY="; + }; + doCheck = false; + }; + + adafruit-circuitpython-typing = self.buildPythonPackage rec { + pname = "adafruit-circuitpython-typing"; + version = "1.12.3"; + format = "pyproject"; + src = pkgs.fetchurl { + url = "https://files.pythonhosted.org/packages/65/a2/40a3440aed2375371507af668570b68523ee01db9c25c47ce5a05883170e/adafruit_circuitpython_typing-1.12.3.tar.gz"; + hash = "sha256-Y/GW+DTkeEK81M+MN6qgxh4a610H8FbIdfwwFs2pGhI="; + }; + nativeBuildInputs = [ self.setuptools-scm ]; + propagatedBuildInputs = [ self.typing-extensions ]; + doCheck = false; + dontCheckRuntimeDeps = true; + }; + + adafruit-platformdetect = self.buildPythonPackage rec { + pname = "Adafruit-PlatformDetect"; + version = "3.73.0"; + format = "pyproject"; + src = pkgs.fetchurl { + url = "https://files.pythonhosted.org/packages/3c/83/79eb6746d01d64bd61f02b12a2637fad441f7823a4f540842e0a47dbcfd8/adafruit_platformdetect-3.73.0.tar.gz"; + hash = "sha256-IwkJityP+Hs9mkpdOu6+P3t/VasOE9Get1/6hl82+rg="; + }; + nativeBuildInputs = [ self.setuptools-scm ]; + doCheck = false; + }; + + adafruit-pureio = self.buildPythonPackage rec { + pname = "Adafruit-PureIO"; + version = "1.1.11"; + format = "pyproject"; + src = pkgs.fetchurl { + url = "https://files.pythonhosted.org/packages/e5/b7/f1672435116822079bbdab42163f9e6424769b7db778873d95d18c085230/Adafruit_PureIO-1.1.11.tar.gz"; + hash = "sha256-xM+7NlcxlC0fEJKhFvR9/a4K7xjFsn8QcrWCStXqjHw="; + }; + nativeBuildInputs = [ self.setuptools-scm ]; + doCheck = false; + }; + + adafruit-blinka = self.buildPythonPackage rec { + pname = "Adafruit-Blinka"; + version = "8.47.0"; + format = "pyproject"; + src = pkgs.fetchurl { + url = "https://files.pythonhosted.org/packages/4a/30/84193a19683732387ec5f40661b589fcee29e0ab47c1e7dee36fb92efe9b/adafruit_blinka-8.47.0.tar.gz"; + hash = "sha256-Q2qFasw4v5xTRtuMQTuiraledi9qqXp9viOENMy8hRk="; + }; + nativeBuildInputs = [ self.setuptools-scm ]; + propagatedBuildInputs = [ + self.RPi-GPIO + self.adafruit-platformdetect + self.adafruit-pureio + self.adafruit-circuitpython-typing + ]; + pythonRelaxDeps = true; + pythonRemoveDeps = [ "binho-host-adapter" "pyftdi" "sysv-ipc" ]; + dontCheckRuntimeDeps = true; + doCheck = false; + }; + + adafruit-circuitpython-busdevice = self.buildPythonPackage rec { + pname = "adafruit-circuitpython-busdevice"; + version = "5.2.9"; + format = "pyproject"; + src = pkgs.fetchurl { + url = "https://files.pythonhosted.org/packages/a8/04/cf8d2ebfe0d171b7c8fe3425f1e2e80ed59738855d419e5486f5d2fa9145/adafruit_circuitpython_busdevice-5.2.9.tar.gz"; + hash = "sha256-n5w984UJFBDaxZYZGOR17Ij67X/1Q61tdCCPCMJWZRM="; + }; + nativeBuildInputs = [ self.setuptools-scm ]; + propagatedBuildInputs = [ + self.adafruit-blinka + self.adafruit-circuitpython-typing + ]; + doCheck = false; + }; + + adafruit-circuitpython-register = self.buildPythonPackage rec { + pname = "adafruit-circuitpython-register"; + version = "1.10.0"; + format = "pyproject"; + src = pkgs.fetchurl { + url = "https://files.pythonhosted.org/packages/0f/f1/b7e16545dac1056227ca9c612966ec26d69a04a99df6892aec27a71884af/adafruit_circuitpython_register-1.10.0.tar.gz"; + hash = "sha256-vH6191d2bxAqhyZXPgylwp6h1+UBweN1nGxOnhNmD3o="; + }; + nativeBuildInputs = [ self.setuptools-scm ]; + propagatedBuildInputs = [ + self.adafruit-blinka + self.adafruit-circuitpython-busdevice + self.adafruit-circuitpython-typing + ]; + doCheck = false; + }; + + adafruit-circuitpython-bno055 = self.buildPythonPackage rec { + pname = "adafruit-circuitpython-bno055"; + version = "5.4.16"; + format = "pyproject"; + src = pkgs.fetchurl { + url = "https://files.pythonhosted.org/packages/8d/20/ad6bb451c5bf228af869bf045d4fc415174e7c042dfc1d998e9c0bc8ad21/adafruit_circuitpython_bno055-5.4.16.tar.gz"; + hash = "sha256-kL/bz689GF/sZxgbzv+bEPQ4F5zQqjl+k4ctSwlK3aA="; + }; + nativeBuildInputs = [ self.setuptools-scm ]; + propagatedBuildInputs = [ + self.adafruit-blinka + self.adafruit-circuitpython-busdevice + self.adafruit-circuitpython-register + self.adafruit-circuitpython-typing + ]; + doCheck = false; + }; + + pidng = self.buildPythonPackage rec { + pname = "pidng"; + version = "4.0.9"; + pyproject = true; + build-system = [ self.setuptools ]; + src = pkgs.fetchurl { + url = "https://files.pythonhosted.org/packages/source/p/pidng/pidng-4.0.9.tar.gz"; + hash = "sha256-Vg6wCAhvinFf2eGrmYgXp9TIUAp/Fhuc5q9asnUB+Cw="; + }; + propagatedBuildInputs = [ self.numpy ]; + doCheck = false; + }; + + simplejpeg = self.buildPythonPackage rec { + pname = "simplejpeg"; + version = "1.9.0"; + format = "wheel"; + src = pkgs.fetchurl { + url = "https://files.pythonhosted.org/packages/88/8b/d8ca384f1362371d61690d7460d3ae4cec4a5a25d9eb06cd15623de3725a/simplejpeg-1.9.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl"; + hash = "sha256-oMN1Ew9zuwgimj3tOS2E7i2Raz6H5+xdKsTke3FENGo="; + }; + propagatedBuildInputs = [ self.numpy ]; + doCheck = false; + }; + + python-prctl = self.buildPythonPackage rec { + pname = "python-prctl"; + version = "1.8.1"; + pyproject = true; + build-system = [ self.setuptools ]; + src = pkgs.fetchurl { + url = "https://files.pythonhosted.org/packages/source/p/python-prctl/python-prctl-1.8.1.tar.gz"; + hash = "sha256-tMqaJafU8azk//0fOi5k71II/gX5KfPt1eJwgcp+Z84="; + }; + buildInputs = [ pkgs.libcap ]; + doCheck = false; + }; + + v4l2-python3 = self.buildPythonPackage rec { + pname = "v4l2-python3"; + version = "0.3.4"; + pyproject = true; + build-system = [ self.setuptools ]; + src = self.fetchPypi { + inherit pname version; + hash = "sha256-YliResgEmsaYcaXg39bYnVXJ5/gOgSwe+LqIeb2hxYc="; + }; + doCheck = false; + }; + + videodev2 = self.buildPythonPackage rec { + pname = "videodev2"; + version = "0.0.4"; + format = "wheel"; + src = pkgs.fetchurl { + url = "https://files.pythonhosted.org/packages/68/30/4982441a03860ab8f656702d8a2c13d0cf6f56d65bfb78fe288028dcb473/videodev2-0.0.4-py3-none-any.whl"; + hash = "sha256-0196s53bBtUP7Japm/yNW4tSW8fqA3iCWdOGOT8aZLo="; + }; + doCheck = false; + }; + + picamera2 = self.buildPythonPackage rec { + pname = "picamera2"; + version = "0.3.22"; + pyproject = true; + build-system = [ self.setuptools ]; + src = self.fetchPypi { + inherit pname version; + hash = "sha256-iShpgUNCu8uHS7jeehtgWJhEm/UhJjn0bw2qpkbWgy0="; + }; + postPatch = '' + substituteInPlace picamera2/previews/__init__.py \ + --replace-fail 'from .drm_preview import DrmPreview' \ + 'try: + from .drm_preview import DrmPreview +except ImportError: + DrmPreview = None' + ''; + propagatedBuildInputs = [ + self.numpy + self.pillow + self.piexif + self.v4l2-python3 + self.videodev2 + self.pidng + self.simplejpeg + self.python-prctl + pkgs.libcamera + ]; + postFixup = '' + wrapPythonProgramsIn "$out" "$out ${pkgs.libcamera}/lib/python3.13/site-packages" + ''; + dontCheckRuntimeDeps = true; + doCheck = false; + }; + }; + }; + + commonPackages = ps: with ps; [ + # Packages from nixpkgs + numpy + scipy + scikit-learn + pillow + pandas + grpcio + protobuf + bottle + cheroot + requests + pytz + skyfield + tqdm + pyjwt + aiofiles + json5 + smbus2 + spidev + pygobject3 + av + dbus-python + timezonefinder + jsonschema + libarchive-c + + # Custom packages (cross-platform) + sh + gpsdclient + dataclasses-json + pydeepskylog + python-pam + luma-oled + luma-lcd + python-libinput + ]; + + hardwarePackages = ps: with ps; [ + RPi-GPIO + rpi-hardware-pwm + adafruit-blinka + adafruit-circuitpython-bno055 + picamera2 + pidng + simplejpeg + python-prctl + videodev2 + ]; + + devPackages = ps: with ps; [ + pytest + mypy + luma-emulator + pyhotkey + ]; + + pifinderEnv = pifinderPython.withPackages (ps: + commonPackages ps ++ hardwarePackages ps + ); + + devEnv = pifinderPython.withPackages (ps: + commonPackages ps ++ devPackages ps + ); + +in { + inherit pifinderPython commonPackages hardwarePackages devPackages pifinderEnv devEnv; +} diff --git a/nixos/python-env.nix b/nixos/python-env.nix index 33e472e30..8433fc864 100644 --- a/nixos/python-env.nix +++ b/nixos/python-env.nix @@ -1,498 +1,7 @@ { config, lib, pkgs, ... }: let - python = pkgs.python313; - - pifinderPython = python.override { - packageOverrides = self: super: { - # --- Pure Python, trivial packages --- - - sh = self.buildPythonPackage rec { - pname = "sh"; - version = "1.14.3"; - pyproject = true; - build-system = [ self.setuptools ]; - src = self.fetchPypi { - inherit pname version; - hash = "sha256-5ARbbHMtnOddVxx59awiNO3Zrk9fqdWbCXBQgr3KGMc="; - }; - doCheck = false; - }; - - gpsdclient = self.buildPythonPackage rec { - pname = "gpsdclient"; - version = "1.3.2"; - pyproject = true; - build-system = [ self.poetry-core ]; - src = self.fetchPypi { - inherit pname version; - hash = "sha256-cKSWVQqXR9/14OULPJWm4dyrnYQoYJl+lRIHZ+IGCno="; - }; - doCheck = false; - }; - - rpi-hardware-pwm = self.buildPythonPackage rec { - pname = "rpi-hardware-pwm"; - version = "0.3.0"; - pyproject = true; - build-system = [ self.setuptools ]; - src = pkgs.fetchurl { - url = "https://files.pythonhosted.org/packages/be/0c/4308050d8b6bbe24e8e54b38e48b287b1e356efce33cd485ee4387fc92a9/rpi_hardware_pwm-0.3.0.tar.gz"; - hash = "sha256-HshwYzp5XpijEGhWXwZ/gvZKjhZ4BpvPjdcC+i+zGyY="; - }; - doCheck = false; - }; - - dataclasses-json = self.buildPythonPackage rec { - pname = "dataclasses-json"; - version = "0.6.7"; - format = "pyproject"; - src = pkgs.fetchurl { - url = "https://files.pythonhosted.org/packages/64/a4/f71d9cf3a5ac257c993b5ca3f93df5f7fb395c725e7f1e6479d2514173c3/dataclasses_json-0.6.7.tar.gz"; - hash = "sha256-trPlKCZupFuVNSI7xTymRfUgiDPCkinoR7PyahzFX8A="; - }; - nativeBuildInputs = [ self.poetry-core ]; - propagatedBuildInputs = [ - self.marshmallow - self.typing-inspect - ]; - postPatch = '' - substituteInPlace pyproject.toml \ - --replace-fail 'requires = ["poetry-core>=1.2.0", "poetry-dynamic-versioning"]' 'requires = ["poetry-core>=1.2.0"]' \ - --replace-fail 'build-backend = "poetry_dynamic_versioning.backend"' 'build-backend = "poetry.core.masonry.api"' - ''; - doCheck = false; - }; - - # --- C extension packages --- - - RPi-GPIO = self.buildPythonPackage rec { - pname = "RPi.GPIO"; - version = "0.7.1"; - pyproject = true; - build-system = [ self.setuptools ]; - src = self.fetchPypi { - inherit pname version; - hash = "sha256-zWHEsDw3tiu6SlrP6phidJwzxhjgKV5+kKpHE/s3O3A="; - }; - # aarch64 + u-boot: /proc/cpuinfo lacks Hardware line, and u-boot - # replaces firmware DTB so /system/linux,revision is missing. - # Add fallback: check /proc/device-tree/compatible for "raspberrypi". - postPatch = '' - python3 -c ' - import sys - with open("source/cpuinfo.c") as f: src = f.read() - old = " if (!found)\n return -1;" - new = ( - " if (!found) {\n" - " FILE *fp2 = fopen(\"/proc/device-tree/compatible\", \"r\");\n" - " if (fp2) {\n" - " char compat[256] = {0};\n" - " fread(compat, 1, sizeof(compat)-1, fp2);\n" - " fclose(fp2);\n" - " if (strstr(compat, \"raspberrypi\")) {\n" - " found = 1;\n" - " strcpy(revision, \"c03115\");\n" - " }\n" - " }\n" - " }\n" - "\n" - " if (!found)\n" - " return -1;" - ) - assert old in src, "pattern not found in cpuinfo.c" - src = src.replace(old, new, 1) - with open("source/cpuinfo.c", "w") as f: f.write(src) - ' - ''; - doCheck = false; - }; - - # --- Adafruit chain: platformdetect -> pureio -> blinka -> sensors --- - - # CircuitPython typing stubs (required for Python 3.12+ type annotation evaluation) - adafruit-circuitpython-typing = self.buildPythonPackage rec { - pname = "adafruit-circuitpython-typing"; - version = "1.12.3"; - format = "pyproject"; - src = pkgs.fetchurl { - url = "https://files.pythonhosted.org/packages/65/a2/40a3440aed2375371507af668570b68523ee01db9c25c47ce5a05883170e/adafruit_circuitpython_typing-1.12.3.tar.gz"; - hash = "sha256-Y/GW+DTkeEK81M+MN6qgxh4a610H8FbIdfwwFs2pGhI="; - }; - nativeBuildInputs = [ self.setuptools-scm ]; - propagatedBuildInputs = [ self.typing-extensions ]; - doCheck = false; - # Skip runtime dependency check - optional deps are handled by blinka chain - dontCheckRuntimeDeps = true; - }; - - adafruit-platformdetect = self.buildPythonPackage rec { - pname = "Adafruit-PlatformDetect"; - version = "3.73.0"; - format = "pyproject"; - src = pkgs.fetchurl { - url = "https://files.pythonhosted.org/packages/3c/83/79eb6746d01d64bd61f02b12a2637fad441f7823a4f540842e0a47dbcfd8/adafruit_platformdetect-3.73.0.tar.gz"; - hash = "sha256-IwkJityP+Hs9mkpdOu6+P3t/VasOE9Get1/6hl82+rg="; - }; - nativeBuildInputs = [ self.setuptools-scm ]; - doCheck = false; - }; - - adafruit-pureio = self.buildPythonPackage rec { - pname = "Adafruit-PureIO"; - version = "1.1.11"; - format = "pyproject"; - src = pkgs.fetchurl { - url = "https://files.pythonhosted.org/packages/e5/b7/f1672435116822079bbdab42163f9e6424769b7db778873d95d18c085230/Adafruit_PureIO-1.1.11.tar.gz"; - hash = "sha256-xM+7NlcxlC0fEJKhFvR9/a4K7xjFsn8QcrWCStXqjHw="; - }; - nativeBuildInputs = [ self.setuptools-scm ]; - doCheck = false; - }; - - adafruit-blinka = self.buildPythonPackage rec { - pname = "Adafruit-Blinka"; - version = "8.47.0"; - format = "pyproject"; - src = pkgs.fetchurl { - url = "https://files.pythonhosted.org/packages/4a/30/84193a19683732387ec5f40661b589fcee29e0ab47c1e7dee36fb92efe9b/adafruit_blinka-8.47.0.tar.gz"; - hash = "sha256-Q2qFasw4v5xTRtuMQTuiraledi9qqXp9viOENMy8hRk="; - }; - nativeBuildInputs = [ self.setuptools-scm ]; - propagatedBuildInputs = [ - self.RPi-GPIO - self.adafruit-platformdetect - self.adafruit-pureio - self.adafruit-circuitpython-typing - ]; - pythonRelaxDeps = true; - pythonRemoveDeps = [ "binho-host-adapter" "pyftdi" "sysv-ipc" ]; - dontCheckRuntimeDeps = true; - doCheck = false; - }; - - adafruit-circuitpython-busdevice = self.buildPythonPackage rec { - pname = "adafruit-circuitpython-busdevice"; - version = "5.2.9"; - format = "pyproject"; - src = pkgs.fetchurl { - url = "https://files.pythonhosted.org/packages/a8/04/cf8d2ebfe0d171b7c8fe3425f1e2e80ed59738855d419e5486f5d2fa9145/adafruit_circuitpython_busdevice-5.2.9.tar.gz"; - hash = "sha256-n5w984UJFBDaxZYZGOR17Ij67X/1Q61tdCCPCMJWZRM="; - }; - nativeBuildInputs = [ self.setuptools-scm ]; - propagatedBuildInputs = [ - self.adafruit-blinka - self.adafruit-circuitpython-typing - ]; - doCheck = false; - }; - - adafruit-circuitpython-register = self.buildPythonPackage rec { - pname = "adafruit-circuitpython-register"; - version = "1.10.0"; - format = "pyproject"; - src = pkgs.fetchurl { - url = "https://files.pythonhosted.org/packages/0f/f1/b7e16545dac1056227ca9c612966ec26d69a04a99df6892aec27a71884af/adafruit_circuitpython_register-1.10.0.tar.gz"; - hash = "sha256-vH6191d2bxAqhyZXPgylwp6h1+UBweN1nGxOnhNmD3o="; - }; - nativeBuildInputs = [ self.setuptools-scm ]; - propagatedBuildInputs = [ - self.adafruit-blinka - self.adafruit-circuitpython-busdevice - self.adafruit-circuitpython-typing - ]; - doCheck = false; - }; - - adafruit-circuitpython-bno055 = self.buildPythonPackage rec { - pname = "adafruit-circuitpython-bno055"; - version = "5.4.16"; - format = "pyproject"; - src = pkgs.fetchurl { - url = "https://files.pythonhosted.org/packages/8d/20/ad6bb451c5bf228af869bf045d4fc415174e7c042dfc1d998e9c0bc8ad21/adafruit_circuitpython_bno055-5.4.16.tar.gz"; - hash = "sha256-kL/bz689GF/sZxgbzv+bEPQ4F5zQqjl+k4ctSwlK3aA="; - }; - nativeBuildInputs = [ self.setuptools-scm ]; - propagatedBuildInputs = [ - self.adafruit-blinka - self.adafruit-circuitpython-busdevice - self.adafruit-circuitpython-register - self.adafruit-circuitpython-typing - ]; - doCheck = false; - }; - - # --- Display stack: luma.core -> luma.oled, luma.lcd --- - - luma-core = self.buildPythonPackage rec { - pname = "luma.core"; - version = "2.4.2"; - pyproject = true; - build-system = [ self.setuptools ]; - src = self.fetchPypi { - inherit pname version; - hash = "sha256-ljwmQWTUN09UnVfbCVmeDKRYzqG9BeFpOYl2Gb5Obb0="; - }; - propagatedBuildInputs = [ - self.pillow - self.smbus2 - self.pyftdi - self.cbor2 - self.deprecated - ]; - dontCheckRuntimeDeps = true; - doCheck = false; - }; - - luma-oled = self.buildPythonPackage rec { - pname = "luma.oled"; - version = "3.13.0"; - pyproject = true; - build-system = [ self.setuptools ]; - src = self.fetchPypi { - inherit pname version; - hash = "sha256-fioNakyWjGSYAlXWgewnkU2avVpmqQGbKJvzrQUMISU="; - }; - propagatedBuildInputs = [ self.luma-core ]; - doCheck = false; - }; - - luma-lcd = self.buildPythonPackage rec { - pname = "luma.lcd"; - version = "2.11.0"; - pyproject = true; - build-system = [ self.setuptools ]; - src = self.fetchPypi { - inherit pname version; - hash = "sha256-1GBE6W/TmUPr5Iph51M3FXG+FJekvqlrcuOpxzL77uQ="; - }; - propagatedBuildInputs = [ self.luma-core ]; - doCheck = false; - }; - - # --- DeepSkyLog API --- - - pydeepskylog = self.buildPythonPackage rec { - pname = "pydeepskylog"; - version = "1.6"; - pyproject = true; - build-system = [ self.setuptools ]; - src = self.fetchPypi { - inherit pname version; - hash = "sha256-3erm0ASBfPtQ1cngzsqkZUrnKoLNIBu8U1D6iA4ePmE="; - }; - propagatedBuildInputs = [ self.requests ]; - doCheck = false; - }; - - # --- PAM bindings for password verification --- - - python-pam = self.buildPythonPackage rec { - pname = "python-pam"; - version = "2.0.2"; - format = "pyproject"; - src = self.fetchPypi { - inherit pname version; - hash = "sha256-lyNSNbqbgtuugGjRCZUIRVlJsnX3cnPKIv29ix+12VA="; - }; - nativeBuildInputs = [ self.setuptools self.six ]; - # python-pam uses ctypes to load libpam.so from __internals.py - postPatch = '' - substituteInPlace src/pam/__internals.py \ - --replace-fail 'find_library("pam")' '"${pkgs.pam}/lib/libpam.so"' \ - --replace-fail 'find_library("pam_misc")' '"${pkgs.pam}/lib/libpam_misc.so"' - ''; - doCheck = false; - }; - - # --- pidng (for picamera2 DNG support) --- - - pidng = self.buildPythonPackage rec { - pname = "pidng"; - version = "4.0.9"; - pyproject = true; - build-system = [ self.setuptools ]; - src = pkgs.fetchurl { - url = "https://files.pythonhosted.org/packages/source/p/pidng/pidng-4.0.9.tar.gz"; - hash = "sha256-Vg6wCAhvinFf2eGrmYgXp9TIUAp/Fhuc5q9asnUB+Cw="; - }; - propagatedBuildInputs = [ self.numpy ]; - doCheck = false; - }; - - # --- simplejpeg (fast JPEG encode/decode for picamera2) --- - # Use prebuilt wheel - source build tries to download libjpeg-turbo - - simplejpeg = self.buildPythonPackage rec { - pname = "simplejpeg"; - version = "1.9.0"; - format = "wheel"; - src = pkgs.fetchurl { - url = "https://files.pythonhosted.org/packages/88/8b/d8ca384f1362371d61690d7460d3ae4cec4a5a25d9eb06cd15623de3725a/simplejpeg-1.9.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl"; - hash = "sha256-oMN1Ew9zuwgimj3tOS2E7i2Raz6H5+xdKsTke3FENGo="; - }; - propagatedBuildInputs = [ self.numpy ]; - doCheck = false; - }; - - # --- prctl bindings (for picamera2) --- - - python-prctl = self.buildPythonPackage rec { - pname = "python-prctl"; - version = "1.8.1"; - pyproject = true; - build-system = [ self.setuptools ]; - src = pkgs.fetchurl { - url = "https://files.pythonhosted.org/packages/source/p/python-prctl/python-prctl-1.8.1.tar.gz"; - hash = "sha256-tMqaJafU8azk//0fOi5k71II/gX5KfPt1eJwgcp+Z84="; - }; - buildInputs = [ pkgs.libcap ]; - doCheck = false; - }; - - # --- libinput bindings (rebuild: 2026-02-03 fix lib path) --- - - python-libinput = self.buildPythonPackage rec { - pname = "python-libinput"; - version = "0.3.0a0"; - pyproject = true; - build-system = [ self.setuptools ]; - src = self.fetchPypi { - inherit pname version; - hash = "sha256-fj08l4aqp5vy8UYBZIWBtGJLaS0/DZGZkC0NCDQhkwI="; - }; - buildInputs = [ pkgs.libinput pkgs.systemd ]; - nativeBuildInputs = [ pkgs.pkg-config ]; - propagatedBuildInputs = [ self.cffi ]; - # imp module removed in Python 3.12; also patch library paths for NixOS - postPatch = '' - substituteInPlace setup.py \ - --replace-fail 'from imp import load_source' 'import importlib.util, types -def load_source(name, path): - spec = importlib.util.spec_from_file_location(name, path) - mod = importlib.util.module_from_spec(spec) - spec.loader.exec_module(mod) - return mod' - substituteInPlace libinput/__init__.py \ - --replace-fail "CDLL('libudev.so.1')" "CDLL('${lib.getLib pkgs.systemd}/lib/libudev.so.1')" \ - --replace-fail "CDLL('libinput.so.10')" "CDLL('${lib.getLib pkgs.libinput}/lib/libinput.so.10')" - ''; - doCheck = false; - }; - - v4l2-python3 = self.buildPythonPackage rec { - pname = "v4l2-python3"; - version = "0.3.4"; - pyproject = true; - build-system = [ self.setuptools ]; - src = self.fetchPypi { - inherit pname version; - hash = "sha256-YliResgEmsaYcaXg39bYnVXJ5/gOgSwe+LqIeb2hxYc="; - }; - doCheck = false; - }; - - # --- videodev2 (V4L2 ctypes bindings for picamera2) --- - - videodev2 = self.buildPythonPackage rec { - pname = "videodev2"; - version = "0.0.4"; - format = "wheel"; - src = pkgs.fetchurl { - url = "https://files.pythonhosted.org/packages/68/30/4982441a03860ab8f656702d8a2c13d0cf6f56d65bfb78fe288028dcb473/videodev2-0.0.4-py3-none-any.whl"; - hash = "sha256-0196s53bBtUP7Japm/yNW4tSW8fqA3iCWdOGOT8aZLo="; - }; - doCheck = false; - }; - - # --- picamera2 (depends on libcamera with Python bindings) --- - - picamera2 = self.buildPythonPackage rec { - pname = "picamera2"; - version = "0.3.22"; - pyproject = true; - build-system = [ self.setuptools ]; - src = self.fetchPypi { - inherit pname version; - hash = "sha256-iShpgUNCu8uHS7jeehtgWJhEm/UhJjn0bw2qpkbWgy0="; - }; - # Make DrmPreview import optional - pykms (kmsxx Python bindings) not - # available in nixpkgs. PiFinder uses NullPreview anyway. - postPatch = '' - substituteInPlace picamera2/previews/__init__.py \ - --replace-fail 'from .drm_preview import DrmPreview' \ - 'try: - from .drm_preview import DrmPreview -except ImportError: - DrmPreview = None' - ''; - propagatedBuildInputs = [ - self.numpy - self.pillow - self.piexif - self.v4l2-python3 - self.videodev2 # V4L2 ctypes bindings (required by picamera2) - self.pidng # DNG support - self.simplejpeg # Fast JPEG encoding - self.python-prctl # Process control - pkgs.libcamera # needs pycamera enabled (see overlay) - # av, libarchive-c, jsonschema, tqdm are in the main env - ]; - # libcamera Python bindings must be on PYTHONPATH - postFixup = '' - wrapPythonProgramsIn "$out" "$out ${pkgs.libcamera}/lib/python3.13/site-packages" - ''; - dontCheckRuntimeDeps = true; - doCheck = false; - }; - }; - }; - - env = pifinderPython.withPackages (ps: with ps; [ - # Packages from nixpkgs (already available) - numpy - scipy - scikit-learn - pillow - pandas - grpcio - protobuf - bottle - cheroot - requests - pytz - skyfield - tqdm - pyjwt - aiofiles - json5 - smbus2 - spidev # SPI interface for display - pygobject3 # GLib bindings for NetworkManager - av # PyAV - ffmpeg bindings for picamera2 encoders - dbus-python # D-Bus for hostname/reboot/shutdown - timezonefinder # Timezone lookup from GPS coordinates - jsonschema # For picamera2 configuration validation - libarchive-c # For picamera2 archive handling - - # Custom packaged (from overlay above) - sh - gpsdclient - rpi-hardware-pwm - dataclasses-json - adafruit-blinka - adafruit-circuitpython-bno055 - luma-oled - luma-lcd - python-libinput - python-pam - python-prctl - pidng - simplejpeg - videodev2 # V4L2 ctypes bindings for picamera2 - pydeepskylog - RPi-GPIO - picamera2 - ]); + pyPkgs = import ./pkgs/python-packages.nix { inherit pkgs lib; }; + env = pyPkgs.pifinderEnv; in { # libcamera overlay — enable Python bindings for picamera2 nixpkgs.overlays = [(final: prev: { @@ -509,10 +18,10 @@ in { environment.systemPackages = [ env - pkgs.gobject-introspection # GI typelibs - pkgs.networkmanager # NM-1.0 typelib for gi.repository.NM - pkgs.libcamera # for picamera2 Python bindings - pkgs.gpsd # for gpsctl (runtime GPS baud rate changes) + pkgs.gobject-introspection + pkgs.networkmanager + pkgs.libcamera + pkgs.gpsd ]; # Ensure GI_TYPELIB_PATH includes NetworkManager typelib diff --git a/nixos/services.nix b/nixos/services.nix index 0c4f93d72..8f29c6f2c 100644 --- a/nixos/services.nix +++ b/nixos/services.nix @@ -37,7 +37,24 @@ in { # --------------------------------------------------------------------------- # Camera switch wrapper (used by pifinder UI via sudo) # --------------------------------------------------------------------------- - environment.systemPackages = [ pifinder-switch-camera ]; + environment.systemPackages = with pkgs; [ + pifinder-switch-camera + + # Diagnostic tools for SSH troubleshooting + htop + vim + tcpdump + iftop + lsof + strace + file + dnsutils # dig, nslookup + curl + usbutils # lsusb + pciutils # lspci + i2c-tools # i2cdetect (sensor debugging) + iotop + ]; @@ -274,7 +291,11 @@ in { script = '' set -euo pipefail REF=$(cat /run/pifinder/upgrade-ref 2>/dev/null || echo "release") - FLAKE="${cfg.repoUrl}/''${REF}#pifinder" + if [[ "$REF" == github:* ]]; then + FLAKE="$REF" + else + FLAKE="${cfg.repoUrl}/''${REF}#pifinder" + fi # Pre-flight: check disk space (need at least 500MB) AVAIL=$(df --output=avail /nix/store | tail -1) diff --git a/python/PiFinder/catalogs.py b/python/PiFinder/catalogs.py index e8a527e35..30acebf86 100644 --- a/python/PiFinder/catalogs.py +++ b/python/PiFinder/catalogs.py @@ -478,6 +478,15 @@ def is_loading(self) -> bool: and self._background_loader._thread.is_alive() ) + def start_background_loading(self): + """Start deferred catalog loading in background thread. + Call after event loop is ready to avoid SD I/O contention during startup.""" + if ( + hasattr(self, "_background_loader") + and self._background_loader is not None + ): + self._background_loader.start() + def __repr__(self): return f"Catalogs(\n{pformat(self.get_catalogs(only_selected=False))})" @@ -624,21 +633,18 @@ class CatalogBackgroundLoader: def __init__( self, - deferred_catalog_objects: List[Dict], - objects: Dict[int, Dict], - common_names: Names, - obs_db: ObservationsDatabase, + deferred_catalog_objects: List[Dict] = None, + objects: Dict[int, Dict] = None, + common_names: Names = None, + obs_db: ObservationsDatabase = None, on_progress: Optional[callable] = None, on_complete: Optional[callable] = None, + priority_codes: tuple = None, ): """ - Args: - deferred_catalog_objects: List of catalog_object dicts to load - objects: Object data dict by ID - common_names: Names lookup instance - obs_db: Observations database instance - on_progress: Callback(loaded_count, total_count, catalog_code) - on_complete: Callback(loaded_objects: List[CompositeObject]) + Two modes: + 1. Pre-loaded data: pass deferred_catalog_objects, objects, common_names + 2. Self-loading: pass priority_codes (loader queries DB in background thread) """ self._deferred_data = deferred_catalog_objects self._objects = objects @@ -646,6 +652,7 @@ def __init__( self._obs_db = obs_db self._on_progress = on_progress self._on_complete = on_complete + self._priority_codes = priority_codes self._loaded_objects: List[CompositeObject] = [] self._lock = threading.Lock() @@ -681,6 +688,23 @@ def get_loaded_objects(self) -> List[CompositeObject]: def _load_deferred_objects(self) -> None: """Background worker - loads objects in batches with CPU yielding""" try: + if self._deferred_data is None and self._priority_codes is not None: + # Self-loading mode: query DB for deferred catalog data + start = time.time() + db = ObjectsDatabase() + all_catalog_objects = [dict(row) for row in db.get_catalog_objects()] + self._deferred_data = [ + co + for co in all_catalog_objects + if co["catalog_code"] not in self._priority_codes + ] + self._objects = {row["id"]: dict(row) for row in db.get_objects()} + self._names = Names() + logger.info( + f"Background loader data load took {time.time() - start:.2f}s " + f"for {len(self._deferred_data)} deferred objects" + ) + total = len(self._deferred_data) batch = [] current_catalog = None @@ -778,15 +802,24 @@ def build(self, shared_state, ui_queue=None) -> Catalogs: db: Database = ObjectsDatabase() obs_db: Database = ObservationsDatabase() - # list of dicts, one dict for each entry in the catalog_objects table - catalog_objects: List[Dict] = [dict(row) for row in db.get_catalog_objects()] - objects = db.get_objects() - common_names = Names() + priority_codes = ("NGC", "IC", "M") + + # Fast path: single JOIN query for priority catalog data + start = time.time() + priority_rows = db.get_priority_catalog_joined(priority_codes) + priority_names = db.get_priority_names(priority_codes) catalogs_info = db.get_catalogs_dict() - objects = {row["id"]: dict(row) for row in objects} + logger.info(f"Priority data queries took {time.time() - start:.2f}s") - composite_objects: List[CompositeObject] = self._build_composite( - catalog_objects, objects, common_names, obs_db, ui_queue + # Build priority CompositeObjects directly from joined rows + start = time.time() + composite_objects = [] + for row in priority_rows: + obj = self._create_composite_from_row(row, priority_names, obs_db) + composite_objects.append(obj) + logger.info( + f"Priority object construction took {time.time() - start:.2f}s " + f"for {len(composite_objects)} objects" ) # This is used for caching catalog dicts @@ -794,15 +827,25 @@ def build(self, shared_state, ui_queue=None) -> Catalogs: self.catalog_dicts = {} logger.debug("Loaded %i objects from database", len(composite_objects)) + start = time.time() all_catalogs: Catalogs = self._get_catalogs(composite_objects, catalogs_info) + logger.info(f"_get_catalogs took {time.time() - start:.2f}s") # Store catalogs reference for background loader completion self._pending_catalogs_ref = all_catalogs - # Pass background loader reference to Catalogs instance so it can check loading status - # This is set in _build_composite() if there are deferred objects - if hasattr(self, "_background_loader") and self._background_loader is not None: - all_catalogs._background_loader = self._background_loader + # Create background loader for deferred catalogs (not started yet — + # call catalogs.start_background_loading() after event loop starts + # to avoid SD I/O contention during menu init) + loader = CatalogBackgroundLoader( + priority_codes=priority_codes, + obs_db=obs_db, + on_progress=self._on_loader_progress, + on_complete=lambda objs: self._on_loader_complete(objs, ui_queue), + ) + self._background_loader = loader + all_catalogs._background_loader = self._background_loader + # Initialize planet catalog with whatever date we have for now # This will be re-initialized on activation of Catalog ui module # if we have GPS lock @@ -812,59 +855,52 @@ def build(self, shared_state, ui_queue=None) -> Catalogs: ) all_catalogs.add(planet_catalog) - # Import CometCatalog locally to avoid circular import - from PiFinder.comet_catalog import CometCatalog + # Defer CometCatalog creation to background thread (3-4s init with + # network check + ephemeris calculation not needed at startup) + def _init_comet_catalog(): + try: + from PiFinder.comet_catalog import CometCatalog + + start = time.time() + comet_catalog: Catalog = CometCatalog( + datetime.datetime.now().replace(tzinfo=pytz.timezone("UTC")), + shared_state=shared_state, + ) + all_catalogs.add(comet_catalog) + logger.info(f"CometCatalog init took {time.time() - start:.2f}s") + except Exception as e: + logger.error(f"CometCatalog init failed: {e}") - comet_catalog: Catalog = CometCatalog( - datetime.datetime.now().replace(tzinfo=pytz.timezone("UTC")), - shared_state=shared_state, - ) - all_catalogs.add(comet_catalog) + threading.Thread( + target=_init_comet_catalog, daemon=True, name="CometCatalogInit" + ).start() assert self.check_catalogs_sequences(all_catalogs) is True return all_catalogs - def check_catalogs_sequences(self, catalogs: Catalogs): - for catalog in catalogs.get_catalogs(only_selected=False): - result = catalog.check_sequences() - if not result: - logger.error("Duplicate sequence catalog %s!", catalog.catalog_code) - return False - return True - - def _create_full_composite_object( - self, - catalog_obj: Dict, - objects: Dict[int, Dict], - common_names: Names, - obs_db: ObservationsDatabase, - ) -> CompositeObject: - """Create a composite object with all details populated""" - object_id = catalog_obj["object_id"] - obj_data = objects[object_id] - - # Create composite object with all details - composite_data = { - "id": catalog_obj["id"], - "object_id": object_id, - "ra": obj_data["ra"], - "dec": obj_data["dec"], - "obj_type": obj_data["obj_type"], - "catalog_code": catalog_obj["catalog_code"], - "sequence": catalog_obj["sequence"], - "description": catalog_obj.get("description", ""), - "const": obj_data.get("const", ""), - "size": obj_data.get("size", ""), - "surface_brightness": obj_data.get("surface_brightness", None), - } + def _create_composite_from_row(self, row, names_dict, obs_db): + """Build CompositeObject directly from a joined query row.""" + object_id = row["object_id"] + + composite_instance = CompositeObject( + id=row["id"], + object_id=object_id, + ra=row["ra"], + dec=row["dec"], + obj_type=row["obj_type"], + catalog_code=row["catalog_code"], + sequence=row["sequence"], + description=row["description"] or "", + const=row["const"] or "", + size=row["size"] or "", + surface_brightness=row["surface_brightness"], + ) - composite_instance = CompositeObject.from_dict(composite_data) - composite_instance.names = common_names.id_to_names.get(object_id, []) + composite_instance.names = names_dict.get(object_id, []) composite_instance.logged = obs_db.check_logged(composite_instance) - # Parse magnitude try: - mag = MagnitudeObject.from_json(obj_data.get("mag", "")) + mag = MagnitudeObject.from_json(row["mag"] or "") composite_instance.mag = mag composite_instance.mag_str = mag.calc_two_mag_representation() except Exception: @@ -874,58 +910,13 @@ def _create_full_composite_object( composite_instance._details_loaded = True return composite_instance - def _build_composite( - self, - catalog_objects: List[Dict], - objects: Dict[int, Dict], - common_names: Names, - obs_db: ObservationsDatabase, - ui_queue=None, - ) -> List[CompositeObject]: - """ - Build composite objects with priority loading. - Popular catalogs (M, NGC, IC) are loaded immediately. - Other catalogs (WDS, etc.) are loaded in background. - """ - # Separate high-priority catalogs from low-priority ones - priority_catalogs = {"NGC", "IC", "M"} # Most popular catalogs - - priority_objects = [] - deferred_objects = [] - - for catalog_obj in catalog_objects: - if catalog_obj["catalog_code"] in priority_catalogs: - priority_objects.append(catalog_obj) - else: - deferred_objects.append(catalog_obj) - - # Load priority catalogs synchronously (fast - ~13K objects) - composite_objects = [] - for catalog_obj in priority_objects: - obj = self._create_full_composite_object( - catalog_obj, objects, common_names, obs_db - ) - composite_objects.append(obj) - - # Store reference for background loader completion callback - self._pending_catalogs_ref = None - - # Start background loader for deferred objects - if deferred_objects: - loader = CatalogBackgroundLoader( - deferred_catalog_objects=deferred_objects, - objects=objects, - common_names=common_names, - obs_db=obs_db, - on_progress=self._on_loader_progress, - on_complete=lambda objs: self._on_loader_complete(objs, ui_queue), - ) - loader.start() - - # Store loader reference for potential stop/test access - self._background_loader = loader - - return composite_objects + def check_catalogs_sequences(self, catalogs: Catalogs): + for catalog in catalogs.get_catalogs(only_selected=False): + result = catalog.check_sequences() + if not result: + logger.error("Duplicate sequence catalog %s!", catalog.catalog_code) + return False + return True def _on_loader_progress(self, loaded: int, total: int, catalog: str) -> None: """Progress callback - log every 10K objects""" diff --git a/python/PiFinder/db/objects_db.py b/python/PiFinder/db/objects_db.py index 5c0881ce1..5156cfa9b 100644 --- a/python/PiFinder/db/objects_db.py +++ b/python/PiFinder/db/objects_db.py @@ -302,6 +302,53 @@ def get_catalog_objects(self): ) return results + def get_priority_catalog_joined(self, priority_codes=("NGC", "IC", "M")): + """Combined JOIN query: catalog_objects + objects for priority catalogs only.""" + start_time = time.time() + placeholders = ",".join("?" * len(priority_codes)) + self.cursor.execute( + f""" + SELECT co.id, co.object_id, co.catalog_code, co.sequence, co.description, + o.ra, o.dec, o.obj_type, o.const, o.size, o.mag, o.surface_brightness + FROM catalog_objects co + JOIN objects o ON co.object_id = o.id + WHERE co.catalog_code IN ({placeholders}) + """, + priority_codes, + ) + rows = self.cursor.fetchall() + elapsed = time.time() - start_time + logging.info( + f"get_priority_catalog_joined took {elapsed:.2f}s, returned {len(rows)} rows" + ) + return rows + + def get_priority_names(self, priority_codes=("NGC", "IC", "M")): + """Get names only for objects in priority catalogs (much smaller than full names table).""" + start_time = time.time() + placeholders = ",".join("?" * len(priority_codes)) + self.cursor.execute( + f""" + SELECT n.object_id, n.common_name FROM names n + WHERE n.object_id IN ( + SELECT DISTINCT co.object_id FROM catalog_objects co + WHERE co.catalog_code IN ({placeholders}) + ) + """, + priority_codes, + ) + results = self.cursor.fetchall() + name_dict = defaultdict(list) + for object_id, common_name in results: + name_dict[object_id].append(common_name.strip()) + for object_id in name_dict: + name_dict[object_id] = list(set(name_dict[object_id])) + elapsed = time.time() - start_time + logging.info( + f"get_priority_names took {elapsed:.2f}s, {len(results)} rows for {len(name_dict)} objects" + ) + return name_dict + # ---- IMAGES_OBJECTS methods ---- def insert_image_object(self, object_id, image_name): self.cursor.execute( diff --git a/python/PiFinder/displays.py b/python/PiFinder/displays.py index 9b53551b4..fa9f07e28 100644 --- a/python/PiFinder/displays.py +++ b/python/PiFinder/displays.py @@ -1,4 +1,5 @@ import functools +import logging from collections import namedtuple import numpy as np @@ -10,7 +11,9 @@ from luma.lcd.device import st7789 from PiFinder.ui.fonts import Fonts +from PiFinder.keyboard_interface import KeyboardInterface +logger = logging.getLogger("Display") ColorMask = namedtuple("ColorMask", ["mask", "mode"]) RED_RGB: ColorMask = ColorMask(np.array([1, 0, 0]), "RGB") @@ -64,6 +67,75 @@ def __init__(self): def set_brightness(self, brightness: int) -> None: return None + def set_keyboard_queue(self, q) -> None: + pass + + +# Pygame key → PiFinder keycode mapping (mirrors keyboard_local.py) +_PYGAME_KEY_MAP: dict[int, int] = {} + + +def _build_key_map(pg) -> dict[int, int]: + if _PYGAME_KEY_MAP: + return _PYGAME_KEY_MAP + KI = KeyboardInterface + m = { + pg.K_LEFT: KI.LEFT, + pg.K_UP: KI.UP, + pg.K_DOWN: KI.DOWN, + pg.K_RIGHT: KI.RIGHT, + pg.K_q: KI.PLUS, + pg.K_a: KI.MINUS, + pg.K_z: KI.SQUARE, + pg.K_w: KI.ALT_PLUS, + pg.K_s: KI.ALT_MINUS, + pg.K_d: KI.ALT_LEFT, + pg.K_r: KI.ALT_UP, + pg.K_f: KI.ALT_DOWN, + pg.K_g: KI.ALT_RIGHT, + pg.K_e: KI.ALT_0, + pg.K_j: KI.LNG_LEFT, + pg.K_i: KI.LNG_UP, + pg.K_k: KI.LNG_DOWN, + pg.K_l: KI.LNG_RIGHT, + pg.K_m: KI.LNG_SQUARE, + pg.K_0: 0, + pg.K_1: 1, + pg.K_2: 2, + pg.K_3: 3, + pg.K_4: 4, + pg.K_5: 5, + pg.K_6: 6, + pg.K_7: 7, + pg.K_8: 8, + pg.K_9: 9, + } + _PYGAME_KEY_MAP.update(m) + return _PYGAME_KEY_MAP + + +def _patch_pygame_keyboard(display_obj): + """Replace luma's _abort on the pygame device to capture keyboard events.""" + device = display_obj.device + pg = device._pygame + key_map = _build_key_map(pg) + + def _abort_with_keys(): + for event in pg.event.get(): + if event.type == pg.QUIT: + return True + if event.type == pg.KEYDOWN: + if event.key == pg.K_ESCAPE: + return True + q = display_obj._keyboard_queue + if q is not None: + keycode = key_map.get(event.key) + if keycode is not None: + q.put(keycode) + return False + + device._abort = _abort_with_keys + class DisplayPygame_128(DisplayBase): resolution = (128, 128) @@ -71,7 +143,7 @@ class DisplayPygame_128(DisplayBase): def __init__(self): from luma.emulator.device import pygame - # init display (SPI hardware) + self._keyboard_queue = None pygame = pygame( width=128, height=128, @@ -82,8 +154,12 @@ def __init__(self): frame_rate=60, ) self.device = pygame + _patch_pygame_keyboard(self) super().__init__() + def set_keyboard_queue(self, q) -> None: + self._keyboard_queue = q + class DisplayPygame_320(DisplayBase): resolution = (320, 240) @@ -91,7 +167,7 @@ class DisplayPygame_320(DisplayBase): def __init__(self): from luma.emulator.device import pygame - # init display (SPI hardware) + self._keyboard_queue = None pygame = pygame( width=320, height=240, @@ -100,8 +176,12 @@ def __init__(self): frame_rate=60, ) self.device = pygame + _patch_pygame_keyboard(self) super().__init__() + def set_keyboard_queue(self, q) -> None: + self._keyboard_queue = q + class DisplaySSD1351(DisplayBase): resolution = (128, 128) diff --git a/python/PiFinder/gps_ubx_parser.py b/python/PiFinder/gps_ubx_parser.py index 5627b1af6..36bdb3847 100644 --- a/python/PiFinder/gps_ubx_parser.py +++ b/python/PiFinder/gps_ubx_parser.py @@ -159,7 +159,7 @@ async def connect(cls, log_queue, host="127.0.0.1", port=2947, max_attempts=5): async def from_file(cls, file_path: str): """Create a UBXParser instance from a file.""" f = await aiofiles.open(file_path, "rb") - return cls(log_queue=None, reader=f, file_path=file_path) # type:ignore[arg-type] + return cls(log_queue=None, reader=f, file_path=file_path) async def close(self): """Clean up resources and close the connection.""" diff --git a/python/PiFinder/image_util.py b/python/PiFinder/image_util.py index 7580c3e01..83815f93f 100644 --- a/python/PiFinder/image_util.py +++ b/python/PiFinder/image_util.py @@ -10,7 +10,6 @@ from PIL import Image, ImageChops import numpy as np -import scipy.ndimage def make_red(in_image, colors): @@ -37,6 +36,8 @@ def gamma_correct(in_value, gamma): def subtract_background(image, percent=1): + import scipy.ndimage + image = np.asarray(image, dtype=np.float32) if image.ndim == 3: assert image.shape[2] in (1, 3), "Colour image must have 1 or 3 colour channels" diff --git a/python/PiFinder/imu_pi.py b/python/PiFinder/imu_pi.py index e1d7744ad..4e475cbb8 100644 --- a/python/PiFinder/imu_pi.py +++ b/python/PiFinder/imu_pi.py @@ -11,8 +11,6 @@ import adafruit_bno055 import logging -from scipy.spatial.transform import Rotation - from PiFinder import config logger = logging.getLogger("IMU.pi") @@ -81,6 +79,8 @@ def __init__(self): ) def quat_to_euler(self, quat): + from scipy.spatial.transform import Rotation + if quat[0] + quat[1] + quat[2] + quat[3] == 0: return 0, 0, 0 rot = Rotation.from_quat(quat) diff --git a/python/PiFinder/keyboard_none.py b/python/PiFinder/keyboard_none.py index 96d433077..e65efa662 100644 --- a/python/PiFinder/keyboard_none.py +++ b/python/PiFinder/keyboard_none.py @@ -20,7 +20,7 @@ def callback(self, key): self.q.put(key) -def run_keyboard(q, shared_state, log_queue): +def run_keyboard(q, shared_state, log_queue, bloom_remap=False): MultiprocLogging.configurer(log_queue) KeyboardNone(q) diff --git a/python/PiFinder/main.py b/python/PiFinder/main.py index eefc8ace3..01c75ed30 100644 --- a/python/PiFinder/main.py +++ b/python/PiFinder/main.py @@ -239,53 +239,11 @@ def sleep_screen(self): self.display_device.device.show() -def start_profiling(): - """Start profiling for performance analysis""" - import cProfile - - profiler = cProfile.Profile() - profiler.enable() - startup_profile_start = time.time() - return profiler, startup_profile_start - - -def stop_profiling(profiler, startup_profile_start): - """Stop profiling and save results""" - import pstats - - profiler.disable() - startup_profile_time = time.time() - startup_profile_start - profile_path = utils.data_dir / "startup_profile.prof" - profiler.dump_stats(str(profile_path)) - - logger = logging.getLogger("Main.Profiling") - logger.info(f"=== Startup Profiling Complete ({startup_profile_time:.2f}s) ===") - logger.info(f"Profile saved to: {profile_path}") - logger.info("To analyze, run:") - logger.info( - f" python -c \"import pstats; p = pstats.Stats('{profile_path}'); p.sort_stats('cumulative').print_stats(30)\"" - ) - - summary_path = utils.data_dir / "startup_profile.txt" - with open(summary_path, "w") as f: - ps = pstats.Stats(profiler, stream=f) - f.write(f"=== STARTUP PROFILING ({startup_profile_time:.2f}s) ===\n\n") - f.write("Top 30 functions by cumulative time:\n") - f.write("=" * 80 + "\n") - ps.sort_stats("cumulative").print_stats(30) - f.write("\n" + "=" * 80 + "\n") - f.write("Top 30 functions by internal time:\n") - f.write("=" * 80 + "\n") - ps.sort_stats("time").print_stats(30) - logger.info(f"Text summary saved to: {summary_path}") - - def main( log_helper: MultiprocLogging, script_name=None, show_fps=False, verbose=False, - profile_startup=False, ) -> None: """ Get this show on the road! @@ -302,6 +260,7 @@ def main( # init queues console_queue: Queue = Queue() keyboard_queue: Queue = Queue() + display_device.set_keyboard_queue(keyboard_queue) gps_queue: Queue = Queue() camera_command_queue: Queue = Queue() solver_queue: Queue = Queue() @@ -505,14 +464,10 @@ def main( ) posserver_process.start() - # Initialize Catalogs console.write(" Catalogs") logger.info(" Catalogs") console.update() - # Start profiling (uncomment to enable performance analysis) - # profiler, startup_profile_start = start_profiling() - # Initialize Catalogs (pass ui_queue for background loading completion signal) catalogs: Catalogs = CatalogBuilder().build(shared_state, ui_queue) @@ -541,8 +496,8 @@ def main( logger.info(" Event Loop") console.update() - # Stop profiling (uncomment to analyze startup performance) - # stop_profiling(profiler, startup_profile_start) + # Start deferred catalog loading now that UI is ready + catalogs.start_background_loading() log_time = True # Start of main except handler / loop @@ -953,13 +908,6 @@ def main( help="Force user interface language (iso2 code). Changes configuration", type=str, ) - parser.add_argument( - "--profile-startup", - help="Profile startup performance (catalog/menu loading)", - default=False, - action="store_true", - required=False, - ) args = parser.parse_args() # add the handlers to the logger if args.verbose: @@ -1017,9 +965,14 @@ def main( rlogger.info("using pi keyboard hat") elif args.keyboard.lower() == "local": - from PiFinder import keyboard_local as keyboard # type: ignore[no-redef] + if display_hardware.startswith("pg_"): + from PiFinder import keyboard_none as keyboard # type: ignore[no-redef] + + rlogger.info("using pygame keyboard (display captures keys)") + else: + from PiFinder import keyboard_local as keyboard # type: ignore[no-redef] - rlogger.info("using local keyboard") + rlogger.info("using local keyboard") elif args.keyboard.lower() == "none": from PiFinder import keyboard_none as keyboard # type: ignore[no-redef] @@ -1032,7 +985,7 @@ def main( config.Config().set_option("language", args.lang) try: - main(log_helper, args.script, args.fps, args.verbose, args.profile_startup) + main(log_helper, args.script, args.fps, args.verbose) except Exception: rlogger.exception("Exception in main(). Aborting program.") os._exit(1) diff --git a/python/PiFinder/nearby.py b/python/PiFinder/nearby.py index f2ac7448d..d285b1fbc 100644 --- a/python/PiFinder/nearby.py +++ b/python/PiFinder/nearby.py @@ -2,7 +2,6 @@ from typing import List import time import numpy as np -from sklearn.neighbors import BallTree import logging logger = logging.getLogger("Catalog.Nearby") @@ -74,6 +73,8 @@ def calculate_objects_balltree(self, objects: list[CompositeObject]) -> None: object_radecs = np.array( [[np.deg2rad(x.ra), np.deg2rad(x.dec)] for x in deduplicated_objects] ) + from sklearn.neighbors import BallTree + self._objects = np.array(deduplicated_objects) self._objects_balltree = BallTree( object_radecs, leaf_size=20, metric="haversine" diff --git a/python/PiFinder/plot.py b/python/PiFinder/plot.py index 0e4c8a403..2a0596e61 100644 --- a/python/PiFinder/plot.py +++ b/python/PiFinder/plot.py @@ -8,7 +8,6 @@ import os import datetime import numpy as np -import pandas from pathlib import Path from PiFinder import utils from PIL import Image, ImageDraw, ImageChops @@ -133,6 +132,8 @@ def radec_to_xy(self, ra: float, dec: float) -> tuple[float, float]: """ Converts and RA/DEC to screen space x/y for the current projection """ + import pandas + markers = pandas.DataFrame( [(Angle(degrees=ra)._hours, dec)], columns=["ra_hours", "dec_degrees"] ) @@ -168,6 +169,8 @@ def plot_markers(self, marker_list): Marker list should be a list of (RA_Hours/DEC_degrees, symbol) tuples """ + import pandas + ret_image = Image.new("RGB", self.render_size) idraw = ImageDraw.Draw(ret_image) diff --git a/python/PiFinder/solver.py b/python/PiFinder/solver.py index 02fde68df..a6314096a 100644 --- a/python/PiFinder/solver.py +++ b/python/PiFinder/solver.py @@ -154,13 +154,29 @@ class CedarConnectionError(Exception): class PFCedarDetectClient(cedar_detect_client.CedarDetectClient): def __init__(self, port=50551): - """Set up the client without spawning the server as we - run this as a service on the PiFinder + """Connect to cedar-detect-server. - Also changing this to a different default port + On the Pi the server runs as a systemd service. + In dev mode we spawn it as a subprocess (like upstream does). """ self._port = port - time.sleep(2) + self._subprocess = None + + # Check if the server is already listening (systemd service on Pi) + if not self._server_reachable(): + # Dev mode: spawn the server ourselves + import shutil + binary = shutil.which("cedar-detect-server") + if binary is None: + raise FileNotFoundError("cedar-detect-server") + my_env = os.environ.copy() + my_env["RUST_BACKTRACE"] = "1" + import subprocess + self._subprocess = subprocess.Popen( + [binary, "--port", str(self._port)], env=my_env + ) + time.sleep(1) + # Will initialize on first use. self._stub = None self._shmem = None @@ -168,6 +184,18 @@ def __init__(self, port=50551): # Try shared memory, fall back if an error occurs. self._use_shmem = True + def __del__(self): + if self._subprocess is not None: + self._subprocess.kill() + self._del_shmem() + + def _server_reachable(self): + """Quick check if cedar-detect-server is already listening.""" + import socket + with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: + s.settimeout(0.2) + return s.connect_ex(("127.0.0.1", self._port)) == 0 + def _get_stub(self): if self._stub is None: channel = grpc.insecure_channel("127.0.0.1:%d" % self._port) @@ -255,8 +283,6 @@ def extract_centroids(self, image, sigma, max_size, use_binned, detect_hot_pixel tetra_centroids.append((sc.centroid_position.y, sc.centroid_position.x)) return tetra_centroids - def __del__(self): - self._del_shmem() def solver( diff --git a/python/PiFinder/state.py b/python/PiFinder/state.py index 2fc6fd027..420cae618 100644 --- a/python/PiFinder/state.py +++ b/python/PiFinder/state.py @@ -16,8 +16,6 @@ from typing import Optional from dataclasses import dataclass, asdict import json -from timezonefinder import TimezoneFinder - logger = logging.getLogger("SharedState") @@ -270,7 +268,7 @@ def __init__(self): self.__cam_raw = None # Are we prepared to do alt/az math # We need gps lock and datetime - self.__tz_finder = TimezoneFinder() + self.__tz_finder = None def serialize(self, output_file): with open(output_file, "wb") as f: @@ -348,6 +346,9 @@ def set_location(self, v): # if value is not none, set the timezone # before saving the value if v: + if self.__tz_finder is None: + from timezonefinder import TimezoneFinder + self.__tz_finder = TimezoneFinder() v.timezone = self.__tz_finder.timezone_at(lat=v.lat, lng=v.lon) self.__location = v diff --git a/python/PiFinder/sys_utils.py b/python/PiFinder/sys_utils.py index 714844ca2..2db1ecbd1 100644 --- a/python/PiFinder/sys_utils.py +++ b/python/PiFinder/sys_utils.py @@ -16,13 +16,12 @@ from pathlib import Path from typing import Optional -import requests -import dbus # type: ignore[import-not-found] -import pam # type: ignore[import-not-found] -import gi # type: ignore[import-not-found] +import dbus +import pam +import gi gi.require_version("NM", "1.0") -from gi.repository import GLib, NM # type: ignore # noqa: E402 +from gi.repository import GLib, NM # noqa: E402 from PiFinder import utils # noqa: E402 from PiFinder.sys_utils_base import ( # noqa: E402 @@ -377,40 +376,9 @@ def shutdown() -> None: UPGRADE_STATE_SUCCESS = "success" UPGRADE_STATE_FAILED = "failed" -VERSIONS_URL = ( - "https://raw.githubusercontent.com/mrosseel/PiFinder/release/versions.json" -) - UPGRADE_REF_FILE = Path("/run/pifinder/upgrade-ref") -def fetch_version_manifest() -> Optional[dict]: - """Fetch the channel/version manifest from GitHub.""" - try: - resp = requests.get(VERSIONS_URL, timeout=10) - resp.raise_for_status() - return resp.json() - except Exception as e: - logger.error("Failed to fetch version manifest: %s", e) - return None - - -def get_versions_for_channel(channel: str) -> list[dict]: - """Get available versions for a channel.""" - manifest = fetch_version_manifest() - if manifest is None: - return [] - return manifest.get("channels", {}).get(channel, {}).get("versions", []) - - -def get_available_channels() -> list[str]: - """Get list of available channel names.""" - manifest = fetch_version_manifest() - if manifest is None: - return ["stable"] - return list(manifest.get("channels", {}).keys()) - - def start_upgrade(ref: str = "release") -> bool: """Start pifinder-upgrade.service with a specific git ref.""" try: @@ -462,9 +430,9 @@ def get_upgrade_log_tail(lines: int = 3) -> str: return result.stdout.strip() if result.returncode == 0 else "" -def update_software() -> bool: - """Blocking wrapper for backward compatibility (uses default ref).""" - if not start_upgrade(): +def update_software(ref: str = "release") -> bool: + """Blocking wrapper — starts upgrade and polls until complete.""" + if not start_upgrade(ref=ref): return False while True: time.sleep(10) diff --git a/python/PiFinder/sys_utils_fake.py b/python/PiFinder/sys_utils_fake.py index 53e0237fc..fee5de25d 100644 --- a/python/PiFinder/sys_utils_fake.py +++ b/python/PiFinder/sys_utils_fake.py @@ -61,8 +61,8 @@ def shutdown() -> None: logger.info("SYS: Initiating Shutdown") -def update_software(): - logger.info("SYS: Running update") +def update_software(ref: str = "release"): + logger.info("SYS: Running update (ref=%s)", ref) return True diff --git a/python/PiFinder/tetra3 b/python/PiFinder/tetra3 index 38c3f48f5..cded265ca 160000 --- a/python/PiFinder/tetra3 +++ b/python/PiFinder/tetra3 @@ -1 +1 @@ -Subproject commit 38c3f48f57d1005e9b65cbb26136f9f13ec0a1b0 +Subproject commit cded265ca1c41e4e526f91e06d3c7ef99bc37288 diff --git a/python/PiFinder/ui/menu_structure.py b/python/PiFinder/ui/menu_structure.py index 75dfecb0d..2e8de53f3 100644 --- a/python/PiFinder/ui/menu_structure.py +++ b/python/PiFinder/ui/menu_structure.py @@ -48,7 +48,6 @@ def _(key: str) -> Any: "name": _("Align"), "class": UIAlign, "stateful": True, - "preload": True, }, { "name": _("GPS Status"), @@ -60,7 +59,6 @@ def _(key: str) -> Any: "name": _("Chart"), "class": UIChart, "stateful": True, - "preload": True, }, { "name": _("Objects"), diff --git a/python/PiFinder/ui/software.py b/python/PiFinder/ui/software.py index 6111c7aca..11b0a8ea0 100644 --- a/python/PiFinder/ui/software.py +++ b/python/PiFinder/ui/software.py @@ -1,11 +1,14 @@ #!/usr/bin/python # -*- coding:utf-8 -*- """ -This module contains the UI Module classes for -software updates, channel selection, and release notes. +UI modules for software updates, channel selection, and release notes. + +Channels: + - stable: GitHub Releases (non-prerelease, >= MIN_NIXOS_VERSION) + - beta: GitHub Pre-releases (>= MIN_NIXOS_VERSION) + - unstable: main branch + open PRs labeled 'testable' """ -import json import logging import time from typing import Dict, List, Optional @@ -14,18 +17,15 @@ from PiFinder import utils from PiFinder.ui.base import UIModule -from PiFinder.ui.ui_utils import TextLayouter +from PiFinder.ui.ui_utils import TextLayouter, TextLayouterScroll sys_utils = utils.get_sys_utils() logger = logging.getLogger("UISoftware") -MANIFEST_URL = ( - "https://raw.githubusercontent.com/brickbots/PiFinder" - "/release/release_manifest.json" -) -VERSION_TXT_URL = ( - "https://raw.githubusercontent.com/brickbots/PiFinder" "/release/version.txt" -) +GITHUB_REPO = "brickbots/PiFinder" +GITHUB_RELEASES_URL = f"https://api.github.com/repos/{GITHUB_REPO}/releases" +GITHUB_PULLS_URL = f"https://api.github.com/repos/{GITHUB_REPO}/pulls" +MIN_NIXOS_VERSION = "2.5.0" REQUEST_TIMEOUT = 10 @@ -34,7 +34,7 @@ def update_needed(current_version: str, repo_version: str) -> bool: Returns true if an update is available. Update is available if semver of repo_version is > current_version. - Returns False on error (safe default — don't offer broken updates). + Returns False on error (safe default). """ try: cur = _parse_version(current_version) @@ -66,438 +66,585 @@ def _parse_version(version_str: str) -> tuple: return (major, minor, patch, 0, pre_release) -def _fetch_manifest() -> Optional[dict]: - """Fetch and parse the release manifest JSON. Returns None on failure.""" +def _meets_min_version(version_str: str) -> bool: + """Check if a version string is >= MIN_NIXOS_VERSION.""" try: - if MANIFEST_URL.startswith("file://"): - path = MANIFEST_URL[len("file://") :] - with open(path, "r") as f: - return json.load(f) - res = requests.get(MANIFEST_URL, timeout=REQUEST_TIMEOUT) - if res.status_code == 200: - return json.loads(res.text) - except (OSError, json.JSONDecodeError, KeyError) as e: - logger.warning(f"Could not read release manifest: {e}") - except requests.exceptions.RequestException as e: - logger.warning(f"Could not fetch release manifest: {e}") - return None + ver = _parse_version(version_str) + minimum = _parse_version(MIN_NIXOS_VERSION) + return ver >= minimum + except Exception: + return False -def _fetch_version_txt() -> Optional[str]: - """Fallback: fetch version.txt. Returns version string or None.""" +def _version_from_tag(tag: str) -> str: + """Strip leading 'v' from a tag name to get the version string.""" + return tag.lstrip("v") + + +def _fetch_github_releases() -> tuple[list[dict], list[dict]]: + """ + Fetch releases from GitHub API. + Returns (stable_entries, beta_entries) sorted newest-first. + """ + stable: list[dict] = [] + beta: list[dict] = [] try: - res = requests.get(VERSION_TXT_URL, timeout=REQUEST_TIMEOUT) - if res.status_code == 200: - return res.text.strip() + res = requests.get( + GITHUB_RELEASES_URL, + timeout=REQUEST_TIMEOUT, + headers={"Accept": "application/vnd.github.v3+json"}, + ) + if res.status_code != 200: + logger.warning("GitHub releases API returned %d", res.status_code) + return stable, beta + + for release in res.json(): + if release.get("draft"): + continue + tag = release.get("tag_name", "") + version = _version_from_tag(tag) + if not _meets_min_version(version): + continue + + entry = { + "label": tag, + "ref": f"github:{GITHUB_REPO}/{tag}#pifinder", + "notes": release.get("body") or None, + "version": version, + } + + if release.get("prerelease"): + beta.append(entry) + else: + stable.append(entry) + except requests.exceptions.RequestException as e: - logger.warning(f"Could not fetch version.txt: {e}") - return None + logger.warning("Could not fetch GitHub releases: %s", e) + return stable, beta -def _filter_upgrades( - current: str, versions: List[dict] -) -> List[dict]: - """Return only versions that are newer than current.""" - return [v for v in versions if update_needed(current, v["version"].strip())] + +def _fetch_testable_prs() -> list[dict]: + """ + Fetch open PRs with the 'testable' label. + Returns list of unstable entries (main branch prepended by caller). + """ + entries: list[dict] = [] + try: + res = requests.get( + GITHUB_PULLS_URL, + params={"state": "open", "labels": "testable"}, + timeout=REQUEST_TIMEOUT, + headers={"Accept": "application/vnd.github.v3+json"}, + ) + if res.status_code != 200: + logger.warning("GitHub pulls API returned %d", res.status_code) + return entries + + for pr in res.json(): + number = pr.get("number", 0) + title = pr.get("title", "") + sha = pr.get("head", {}).get("sha", "") + body = pr.get("body") or None + # Truncate title for display + short_title = title[:20] + "..." if len(title) > 20 else title + entries.append( + { + "label": f"PR#{number} {short_title}", + "ref": f"github:{GITHUB_REPO}/{sha}#pifinder", + "notes": body, + "version": None, + } + ) + + except requests.exceptions.RequestException as e: + logger.warning("Could not fetch testable PRs: %s", e) + + return entries class UISoftware(UIModule): """ - UI for updating software versions. - Supports stable/unstable channels with manifest-based version checking. + Software update UI. - Menu phases (each shows max 3 items, skipped if only one choice): - channel → version → action + Phases: + loading - animated "Checking for updates..." + browse - header (version + channel selector) + scrollable version list + confirm - selected version details + Install / Notes / Cancel + failed - update failed + Retry / Cancel """ __title__ = "SOFTWARE" + MAX_VISIBLE = 5 def __init__(self, *args, **kwargs) -> None: super().__init__(*args, **kwargs) self.version_txt = f"{utils.pifinder_dir}/version.txt" self.wifi_txt = f"{utils.pifinder_dir}/wifi_status.txt" - with open(self.wifi_txt, "r") as wfs: - self._wifi_mode = wfs.read() - with open(self.version_txt, "r") as ver: - self._software_version = ver.read() + with open(self.wifi_txt, "r") as f: + self._wifi_mode = f.read().strip() + with open(self.version_txt, "r") as f: + self._software_version = f.read().strip() - # Parsed manifest data: channel name → list of version dicts self._channels: Dict[str, List[dict]] = {} - self._release_version = "-.-.-" + self._channel_names: List[str] = [] + self._channel_index = 0 + + self._version_list: List[dict] = [] + self._list_index = 0 + self._scroll_offset = 0 + + self._phase = "loading" + self._focus = "channel" # "channel" or "list" (browse phase) self._elipsis_count = 0 - self._go_for_update = False - # Menu navigation - # Phases: "channel" or "action" - self._menu_phase = "action" - self._selected_channel = "stable" self._selected_version: Optional[dict] = None - self._version_index = 0 - self._options: list = [] - self._option_index = 0 + self._confirm_options: List[str] = [] + self._confirm_index = 0 - # Update failure state - self._update_failed = False self._fail_option = "Retry" + self._unstable_unlocked = False + self._unstable_entries: List[dict] = [] + self._square_count = 0 + + self._scroll_label: Optional[TextLayouterScroll] = None + self._scroll_label_text: Optional[str] = None def active(self): super().active() - self._menu_phase = "action" - self._selected_channel = "stable" + self._phase = "loading" + self._elipsis_count = 0 + self._focus = "channel" + self._channel_index = 0 + self._list_index = 0 + self._scroll_offset = 0 self._selected_version = None - self._version_index = 0 - - def get_release_version(self): - """ - Fetches current release version from github. - Tries manifest first, falls back to version.txt. - """ - manifest = _fetch_manifest() - if manifest and "channels" in manifest: - self._channels = manifest["channels"] - # Set release version from first stable entry - stable_versions = self._channels.get("stable", []) - if stable_versions: - self._release_version = stable_versions[0]["version"] - else: - self._release_version = "Unknown" - return - # Fallback to version.txt - logger.info("Manifest unavailable, falling back to version.txt") - version = _fetch_version_txt() - if version: - self._channels = { - "stable": [{"version": version, "notes_url": None}] - } - self._release_version = version - else: - self._release_version = "Unknown" - - def _available_channels(self) -> Dict[str, List[dict]]: - """Return channels that have updates, filtered by type.""" - current = self._software_version.strip() - result = {} - for name, versions in self._channels.items(): - upgrades = _filter_upgrades(current, versions) - if upgrades: - result[name] = upgrades - return result - - def _channel_versions(self) -> List[dict]: - """Return upgrade versions for the selected channel.""" - available = self._available_channels() - return available.get(self._selected_channel, []) - - def _rebuild_options(self): - """Build the option list for the current menu phase.""" - available = self._available_channels() - options = [] - - if self._menu_phase == "channel": - for name in available: - options.append(name.capitalize()) - else: - # Action phase — version selector + actions - versions = self._channel_versions() - if len(versions) > 1: - v = self._selected_version or versions[0] - options.append(f"v{v['version']}") - v = self._selected_version or (versions[0] if versions else {}) - options.append("Update") - if self._selected_version and self._selected_version.get("notes_url"): - options.append("Notes") - options.append("Cancel") - - self._options = options - if self._option_index >= len(self._options): - self._option_index = 0 - - def _enter_best_phase(self): - """ - Set the menu phase based on what choices exist. - Skip channel phase when there's only one channel. - """ - available = self._available_channels() - channel_names = list(available.keys()) - - if len(channel_names) > 1: - self._menu_phase = "channel" - self._option_index = 0 - return + # ------------------------------------------------------------------ + # Data + # ------------------------------------------------------------------ - # Single channel - if channel_names: - self._selected_channel = channel_names[0] - else: - return - - versions = available.get(self._selected_channel, []) - self._version_index = 0 - if versions: - self._selected_version = versions[0] - self._menu_phase = "action" - self._option_index = 0 - - def update_software(self): - self.message(_("Updating..."), 10) - if sys_utils.update_software(): - self.message(_("Ok! Restarting..."), 10) - sys_utils.restart_system() - else: - self._update_failed = True - - def _draw_version_header(self): - """Draw the top section: wifi, current version, release version.""" - draw_pos = self.display_class.titlebar_height + 2 + def _fetch_channels(self): + stable, beta = _fetch_github_releases() + pr_entries = _fetch_testable_prs() + unstable = [ + { + "label": "main", + "ref": f"github:{GITHUB_REPO}/main#pifinder", + "notes": None, + "version": None, + } + ] + unstable.extend(pr_entries) + + self._channels = { + "stable": stable, + "beta": beta, + } + self._unstable_entries = unstable + + if self._unstable_unlocked: + self._channels["unstable"] = unstable + + self._channel_names = list(self._channels.keys()) + self._channel_index = 0 + self._refresh_version_list() + self._phase = "browse" + + def _refresh_version_list(self): + if not self._channel_names: + self._version_list = [] + return + channel = self._channel_names[self._channel_index] + entries = self._channels.get(channel, []) + self._version_list = [ + e for e in entries if e.get("version") != self._software_version + ] + self._list_index = 0 + self._scroll_offset = 0 + self._scroll_label = None + self._scroll_label_text = None + + # ------------------------------------------------------------------ + # Drawing helpers + # ------------------------------------------------------------------ + + def _draw_separator(self, y): + self.draw.line([(0, y), (127, y)], fill=self.colors.get(64)) + + def _draw_loading(self): + y = self.display_class.titlebar_height + 2 self.draw.text( - (0, draw_pos), - _("Wifi Mode: {}").format(self._wifi_mode), - font=self.fonts.base.font, - fill=self.colors.get(128), + (0, y), + self._software_version, + font=self.fonts.bold.font, + fill=self.colors.get(255), + ) + dots = "." * (self._elipsis_count // 10) + self.draw.text( + (10, 90), + _("Checking for"), + font=self.fonts.large.font, + fill=self.colors.get(255), ) - draw_pos += 15 + self.draw.text( + (10, 105), + _("updates{elipsis}").format(elipsis=dots), + font=self.fonts.large.font, + fill=self.colors.get(255), + ) + self._elipsis_count += 1 + if self._elipsis_count > 39: + self._elipsis_count = 0 + def _draw_wifi_warning(self): + y = self.display_class.titlebar_height + 2 self.draw.text( - (0, draw_pos), - _("Current Version"), + (0, y), + self._software_version, font=self.fonts.bold.font, - fill=self.colors.get(128), + fill=self.colors.get(255), + ) + self.draw.text( + (10, 90), + _("WiFi must be"), + font=self.fonts.large.font, + fill=self.colors.get(255), + ) + self.draw.text( + (10, 105), + _("client mode"), + font=self.fonts.large.font, + fill=self.colors.get(255), ) - draw_pos += 10 + def _draw_browse(self): + y = self.display_class.titlebar_height + 2 + + # Current version self.draw.text( - (10, draw_pos), - f"{self._software_version}", + (0, y), + self._software_version, font=self.fonts.bold.font, - fill=self.colors.get(192), + fill=self.colors.get(255), ) - draw_pos += 16 + y += 14 - if self._selected_version: - update_label = _("Update to") - update_version = self._selected_version["version"] + # Channel selector + channel_name = ( + self._channel_names[self._channel_index].capitalize() + if self._channel_names + else "---" + ) + if self._focus == "channel": + self.draw.text( + (0, y), + self._RIGHT_ARROW, + font=self.fonts.bold.font, + fill=self.colors.get(255), + ) + self.draw.text( + (10, y), + channel_name, + font=self.fonts.bold.font, + fill=self.colors.get(255), + ) else: - update_label = _("Update to") - update_version = self._release_version + self.draw.text( + (10, y), + channel_name, + font=self.fonts.base.font, + fill=self.colors.get(128), + ) + y += 14 + + self._draw_separator(y) + y += 4 + + # Version list + if not self._version_list: + self.draw.text( + (10, y + 10), + _("No versions"), + font=self.fonts.base.font, + fill=self.colors.get(128), + ) + self.draw.text( + (10, y + 22), + _("available"), + font=self.fonts.base.font, + fill=self.colors.get(128), + ) + return + + visible = min(self.MAX_VISIBLE, len(self._version_list)) + # available width after arrow (10px) in characters + label_width = self.fonts.base.line_length - 2 + for i in range(visible): + idx = self._scroll_offset + i + if idx >= len(self._version_list): + break + entry = self._version_list[idx] + item_y = y + i * 12 + label = entry["label"] + + if self._focus == "list" and idx == self._list_index: + self.draw.text( + (0, item_y), + self._RIGHT_ARROW, + font=self.fonts.bold.font, + fill=self.colors.get(255), + ) + if self._scroll_label_text != label: + self._scroll_label = TextLayouterScroll( + label, + draw=self.draw, + color=self.colors.get(255), + font=self.fonts.bold, + width=label_width, + ) + self._scroll_label_text = label + self._scroll_label.draw((10, item_y)) + else: + self.draw.text( + (10, item_y), + label[:label_width], + font=self.fonts.base.font, + fill=self.colors.get(192), + ) + + def _draw_confirm(self): + y = self.display_class.titlebar_height + 2 self.draw.text( - (0, draw_pos), - update_label, - font=self.fonts.bold.font, + (0, y), + _("Update to:"), + font=self.fonts.base.font, fill=self.colors.get(128), ) - draw_pos += 10 + y += 14 + version_label = ( + self._selected_version.get("version") + or self._selected_version["label"] + ) self.draw.text( - (10, draw_pos), - f"{update_version}", + (0, y), + version_label, font=self.fonts.bold.font, - fill=self.colors.get(192), + fill=self.colors.get(255), ) + y += 14 - def _draw_options(self): - """Draw the option list at the bottom of the screen.""" - self._rebuild_options() - option_start_y = 90 - for i, label in enumerate(self._options): - y = option_start_y + i * 12 - self.draw.text( - (10, y), - _(label), - font=self.fonts.bold.font, - fill=self.colors.get(255), - ) - if i == self._option_index: + self._draw_separator(y) + y += 4 + + for i, opt in enumerate(self._confirm_options): + item_y = y + i * 12 + if i == self._confirm_index: + self.draw.text( + (0, item_y), + self._RIGHT_ARROW, + font=self.fonts.bold.font, + fill=self.colors.get(255), + ) + self.draw.text( + (10, item_y), + _(opt), + font=self.fonts.bold.font, + fill=self.colors.get(255), + ) + else: + self.draw.text( + (10, item_y), + _(opt), + font=self.fonts.base.font, + fill=self.colors.get(192), + ) + + def _draw_failed(self): + y = self.display_class.titlebar_height + 20 + self.draw.text( + (10, y), + _("Update failed!"), + font=self.fonts.bold.font, + fill=self.colors.get(255), + ) + y += 20 + for label in ("Retry", "Cancel"): + if self._fail_option == label: self.draw.text( (0, y), self._RIGHT_ARROW, font=self.fonts.bold.font, fill=self.colors.get(255), ) + self.draw.text( + (10, y), + _(label), + font=self.fonts.bold.font, + fill=self.colors.get(255), + ) + y += 12 + + # ------------------------------------------------------------------ + # Main update loop + # ------------------------------------------------------------------ def update(self, force=False): time.sleep(1 / 30) self.clear_screen() - self._draw_version_header() - # Handle update failure screen - if self._update_failed: - self.draw.text( - (10, 90), - _("Update failed!"), - font=self.fonts.bold.font, - fill=self.colors.get(255), - ) - self.draw.text( - (10, 102), - _("Retry"), - font=self.fonts.bold.font, - fill=self.colors.get(255), - ) - self.draw.text( - (10, 114), - _("Cancel"), - font=self.fonts.bold.font, - fill=self.colors.get(255), - ) - ind_pos = 102 if self._fail_option == "Retry" else 114 - self.draw.text( - (0, ind_pos), - self._RIGHT_ARROW, - font=self.fonts.bold.font, - fill=self.colors.get(255), - ) + if self._phase == "failed": + self._draw_failed() return self.screen_update() if self._wifi_mode != "Client": - self.draw.text( - (10, 90), - _("WiFi must be"), - font=self.fonts.large.font, - fill=self.colors.get(255), - ) - self.draw.text( - (10, 105), - _("client mode"), - font=self.fonts.large.font, - fill=self.colors.get(255), - ) + self._draw_wifi_warning() return self.screen_update() - if self._release_version == "-.-.-": + if self._phase == "loading": if self._elipsis_count > 30: - self.get_release_version() - self.draw.text( - (10, 90), - _("Checking for"), - font=self.fonts.large.font, - fill=self.colors.get(255), - ) - self.draw.text( - (10, 105), - _("updates{elipsis}").format( - elipsis="." * int(self._elipsis_count / 10) - ), - font=self.fonts.large.font, - fill=self.colors.get(255), - ) - self._elipsis_count += 1 - if self._elipsis_count > 39: - self._elipsis_count = 0 - return self.screen_update() - - available = self._available_channels() - if not available: - self.draw.text( - (10, 90), - _("No Update"), - font=self.fonts.large.font, - fill=self.colors.get(255), - ) - self.draw.text( - (10, 105), - _("needed"), - font=self.fonts.large.font, - fill=self.colors.get(255), - ) - return self.screen_update() + self._fetch_channels() + # phase is now "browse", fall through + else: + self._draw_loading() + return self.screen_update() - # Update available — enter menu if not already navigating - if not self._go_for_update: - self._go_for_update = True - self._enter_best_phase() + if self._phase == "browse": + self._draw_browse() + elif self._phase == "confirm": + self._draw_confirm() - self._draw_options() return self.screen_update() - def _cycle_option(self, direction: int = 1): - if self._update_failed: - self._fail_option = "Cancel" if self._fail_option == "Retry" else "Retry" - return - if not self._go_for_update: - return - self._option_index = (self._option_index + direction) % len(self._options) + # ------------------------------------------------------------------ + # Key handlers + # ------------------------------------------------------------------ + + def _reset_unlock(self): + self._square_count = 0 def key_up(self): - self._cycle_option(-1) + self._reset_unlock() + if self._phase == "failed": + self._fail_option = "Cancel" if self._fail_option == "Retry" else "Retry" + elif self._phase == "browse": + if self._focus == "list": + if self._list_index == 0: + self._focus = "channel" + else: + self._list_index -= 1 + if self._list_index < self._scroll_offset: + self._scroll_offset = self._list_index + elif self._phase == "confirm": + if self._confirm_index > 0: + self._confirm_index -= 1 def key_down(self): - self._cycle_option(1) - - def key_left(self): - available = self._available_channels() - if self._menu_phase == "action" and len(available) > 1: - self._menu_phase = "channel" - self._selected_version = None - self._option_index = 0 - return False - return True + self._reset_unlock() + if self._phase == "failed": + self._fail_option = "Cancel" if self._fail_option == "Retry" else "Retry" + elif self._phase == "browse": + if self._focus == "channel": + if self._version_list: + self._focus = "list" + self._list_index = 0 + self._scroll_offset = 0 + elif self._focus == "list": + if self._list_index < len(self._version_list) - 1: + self._list_index += 1 + if self._list_index >= self._scroll_offset + self.MAX_VISIBLE: + self._scroll_offset = ( + self._list_index - self.MAX_VISIBLE + 1 + ) + elif self._phase == "confirm": + if self._confirm_index < len(self._confirm_options) - 1: + self._confirm_index += 1 def key_right(self): - if self._update_failed: + self._reset_unlock() + if self._phase == "failed": if self._fail_option == "Retry": - self._update_failed = False - self._fail_option = "Retry" + self._phase = "confirm" self.update_software() else: - self._update_failed = False self.remove_from_stack() - return + elif self._phase == "browse": + if self._focus == "channel" and self._channel_names: + self._channel_index = ( + (self._channel_index + 1) % len(self._channel_names) + ) + self._refresh_version_list() + elif self._focus == "list" and self._version_list: + self._selected_version = self._version_list[self._list_index] + self._confirm_options = ["Install"] + if self._selected_version.get("notes"): + self._confirm_options.append("Notes") + self._confirm_options.append("Cancel") + self._confirm_index = 0 + self._phase = "confirm" + elif self._phase == "confirm": + opt = self._confirm_options[self._confirm_index] + if opt == "Install": + self.update_software() + elif opt == "Notes": + notes = self._selected_version.get("notes") + if notes: + self.add_to_stack( + {"class": UIReleaseNotes, "notes_text": notes} + ) + elif opt == "Cancel": + self._phase = "browse" - if not self._go_for_update: - return + def key_left(self): + self._reset_unlock() + if self._phase == "confirm": + self._phase = "browse" + return False + return True - selected = self._options[self._option_index] + def key_square(self): + self._square_count += 1 + if self._square_count >= 7 and not self._unstable_unlocked: + self._unstable_unlocked = True + self._channels["unstable"] = self._unstable_entries + self._channel_names = list(self._channels.keys()) + self.message(_("Unstable\nunlocked"), 1) - if self._menu_phase == "channel": - self._selected_channel = selected.lower() - versions = self._channel_versions() - self._version_index = 0 - self._selected_version = versions[0] if versions else None - self._menu_phase = "action" - self._option_index = 0 - return + def key_number(self, number): + self._square_count = 0 - # Action phase - if selected.startswith("v"): - # Version selector — cycle to next version - versions = self._channel_versions() - self._version_index = (self._version_index + 1) % len(versions) - self._selected_version = versions[self._version_index] - elif selected == "Cancel": - self.remove_from_stack() - elif selected == "Notes": - notes_url = ( - self._selected_version.get("notes_url") - if self._selected_version - else None - ) - if notes_url: - self.add_to_stack( - { - "class": UIReleaseNotes, - "notes_url": notes_url, - } - ) - elif selected == "Update": - self.update_software() + # ------------------------------------------------------------------ + # Update action + # ------------------------------------------------------------------ + + def update_software(self): + if not self._selected_version: + return + ref = self._selected_version.get("ref") or "release" + self.message(_("Updating..."), 10) + if sys_utils.update_software(ref=ref): + self.message(_("Ok! Restarting..."), 10) + sys_utils.restart_system() + else: + self._phase = "failed" + self._fail_option = "Retry" class UIReleaseNotes(UIModule): """ Scrollable release notes viewer. - Fetches markdown from a URL and displays as plain text. + Accepts markdown text directly via notes_text in item_definition. """ __title__ = "NOTES" def __init__(self, *args, **kwargs) -> None: super().__init__(*args, **kwargs) - self._notes_url = self.item_definition.get("notes_url", "") + self._notes_text = self.item_definition.get("notes_text", "") self._loaded = False - self._error = False self._text_layout = TextLayouter( "", draw=self.draw, @@ -510,40 +657,32 @@ def __init__(self, *args, **kwargs) -> None: def active(self): super().active() if not self._loaded: - self._fetch_notes() - - def _fetch_notes(self): - """Fetch release notes from the configured URL.""" - try: - res = requests.get(self._notes_url, timeout=REQUEST_TIMEOUT) - if res.status_code == 200: - text = _strip_markdown(res.text) - self._text_layout.set_text(text) - self._loaded = True - else: - self._error = True - logger.warning( - f"Failed to fetch release notes: HTTP {res.status_code}" - ) - except requests.exceptions.RequestException as e: - self._error = True - logger.warning(f"Failed to fetch release notes: {e}") + self._load_notes() + + def _load_notes(self): + """Process notes text for display.""" + if self._notes_text: + text = _strip_markdown(self._notes_text) + self._text_layout.set_text(text) + self._loaded = True + else: + self._loaded = True def update(self, force=False): time.sleep(1 / 30) self.clear_screen() draw_pos = self.display_class.titlebar_height + 2 - if self._error: + if not self._notes_text: self.draw.text( (10, draw_pos + 20), - _("Could not load"), + _("No release notes"), font=self.fonts.large.font, fill=self.colors.get(255), ) self.draw.text( (10, draw_pos + 35), - _("release notes"), + _("available"), font=self.fonts.large.font, fill=self.colors.get(255), ) diff --git a/python/noxfile.py b/python/noxfile.py index e407e8724..8d7a9dbca 100644 --- a/python/noxfile.py +++ b/python/noxfile.py @@ -3,92 +3,39 @@ nox.options.sessions = ["lint", "format", "type_hints", "smoke_tests"] -@nox.session(reuse_venv=True, python="3.9") +@nox.session(python=False) def lint(session: nox.Session) -> None: - """ - Lint the project's codebase. - - This session installs necessary dependencies for linting and then runs the linter to check for - stylistic errors and coding standards compliance across the project's codebase. - - Args: - session (nox.Session): The Nox session being run, providing context and methods for session actions. - """ - session.install("ruff==0.4.8") + """Lint the project's codebase.""" session.run("ruff", "check", "--fix", "--config", "builtins=['_']") -@nox.session(reuse_venv=True, python="3.9") +@nox.session(python=False) def format(session: nox.Session) -> None: - """ - Format the project's codebase. - - This session installs necessary dependencies for code formatting and runs the formatter - to check (and optionally correct) the code format according to the project's style guide. - - Args: - session (nox.Session): The Nox session being run, providing context and methods for session actions. - """ - session.install("ruff==0.4.8") + """Format the project's codebase.""" session.run("ruff", "format") -@nox.session(reuse_venv=True, python="3.9") +@nox.session(python=False) def type_hints(session: nox.Session) -> None: - """ - Check type hints in the project's codebase. - - This session installs necessary dependencies for type checking and runs a static type checker - to validate the type hints throughout the project's codebase, ensuring they are correct and consistent. - - Args: - session (nox.Session): The Nox session being run, providing context and methods for session actions. - """ - session.install("-r", "requirements.txt") - session.install("-r", "requirements_dev.txt") + """Check type hints in the project's codebase.""" session.run("mypy", "--install-types", "--non-interactive", ".") -@nox.session(reuse_venv=True, python="3.9") +@nox.session(python=False) def unit_tests(session: nox.Session) -> None: - """ - Run the project's unit tests. - - This session installs the necessary dependencies and runs the project's unit tests. - It is focused on testing the functionality of individual units of code in isolation. - - Args: - session (nox.Session): The Nox session being run, providing context and methods for session actions. - """ - session.install("-r", "requirements.txt") - session.install("-r", "requirements_dev.txt") + """Run the project's unit tests.""" session.run("pytest", "-m", "unit") -@nox.session(reuse_venv=True, python="3.9") +@nox.session(python=False) def smoke_tests(session: nox.Session) -> None: - """ - Run the project's smoke tests. - nox - This session installs the necessary dependencies and runs a subset of tests designed to quickly - check the most important functions of the program, often as a prelude to more thorough testing. - - Args: - session (nox.Session): The Nox session being run, providing context and methods for session actions. - """ - session.install("-r", "requirements.txt") - session.install("-r", "requirements_dev.txt") + """Run the project's smoke tests.""" session.run("pytest", "-m", "smoke") -@nox.session(reuse_venv=True, python="3.9") +@nox.session(python=False) def babel(session: nox.Session) -> None: - """ - Run the I18N toolchain - """ - session.install("-r", "requirements.txt") - session.install("-r", "requirements_dev.txt") - + """Run the I18N toolchain.""" session.run( "pybabel", "extract", diff --git a/python/pyproject.toml b/python/pyproject.toml index 5617b6ec3..b2eeda153 100644 --- a/python/pyproject.toml +++ b/python/pyproject.toml @@ -87,7 +87,7 @@ docstring-code-format = false docstring-code-line-length = "dynamic" [tool.mypy] -exclude = "venv|tetra3" +exclude = "venv|tetra3|noxfile\\.py" # Start off with these warn_unused_configs = true warn_redundant_casts = true @@ -135,6 +135,19 @@ module = [ 'picamera2', 'bottle', 'libinput', + 'pytz', + 'aiofiles', + 'requests', + 'tqdm', + 'pandas', + 'rpi_hardware_pwm', + 'gpsdclient', + 'timezonefinder', + 'pydeepskylog.*', + 'dbus', + 'pam', + 'gi', + 'gi.*', ] ignore_missing_imports = true ignore_errors = true diff --git a/python/tests/test_software.py b/python/tests/test_software.py index 5b60a0deb..dece49ce4 100644 --- a/python/tests/test_software.py +++ b/python/tests/test_software.py @@ -1,13 +1,23 @@ import pytest +from unittest.mock import patch, MagicMock from PiFinder.ui.software import ( update_needed, _parse_version, _strip_markdown, - _filter_upgrades, + _meets_min_version, + _version_from_tag, + _fetch_github_releases, + _fetch_testable_prs, + GITHUB_REPO, ) +# --------------------------------------------------------------------------- +# Version parsing +# --------------------------------------------------------------------------- + + @pytest.mark.unit class TestParseVersion: def test_simple_version(self): @@ -45,11 +55,9 @@ def test_prerelease_to_release(self): assert update_needed("2.5.0-beta.1", "2.5.0") is True def test_release_to_prerelease_same(self): - # Going from a release to a pre-release of same version is not an update assert update_needed("2.5.0", "2.5.0-beta.1") is False def test_prerelease_higher_minor(self): - # 2.5.0-beta.1 is still greater than 2.4.0 assert update_needed("2.4.0", "2.5.0-beta.1") is True def test_garbage_input_returns_false(self): @@ -65,6 +73,11 @@ def test_unknown_returns_false(self): assert update_needed("2.4.0", "Unknown") is False +# --------------------------------------------------------------------------- +# Markdown stripping +# --------------------------------------------------------------------------- + + @pytest.mark.unit class TestStripMarkdown: def test_removes_headings(self): @@ -94,49 +107,290 @@ def test_multiline(self): assert "**" not in result +# --------------------------------------------------------------------------- +# Min version cutoff +# --------------------------------------------------------------------------- + + @pytest.mark.unit -class TestFilterUpgrades: - def test_filters_newer_versions(self): - versions = [ - {"version": "2.5.0", "type": "upgrade"}, - {"version": "2.4.1", "type": "update"}, - ] - result = _filter_upgrades("2.4.0", versions) - assert len(result) == 2 +class TestMeetsMinVersion: + def test_exact_min_version(self): + assert _meets_min_version("2.5.0") is True - def test_excludes_older_versions(self): - versions = [ - {"version": "2.5.0", "type": "upgrade"}, - {"version": "2.3.0", "type": "update"}, - ] - result = _filter_upgrades("2.4.0", versions) - assert len(result) == 1 - assert result[0]["version"] == "2.5.0" - - def test_preserves_type_field(self): - versions = [ - {"version": "2.5.0", "type": "upgrade", "migration_url": "https://..."}, - {"version": "2.4.1", "type": "update"}, + def test_above_min_version(self): + assert _meets_min_version("2.6.0") is True + + def test_below_min_version(self): + assert _meets_min_version("2.4.0") is False + + def test_prerelease_at_min(self): + # 2.5.0-beta.1 < 2.5.0, so below minimum + assert _meets_min_version("2.5.0-beta.1") is False + + def test_prerelease_above_min(self): + assert _meets_min_version("2.6.0-beta.1") is True + + def test_garbage_returns_false(self): + assert _meets_min_version("garbage") is False + + def test_old_major_version(self): + assert _meets_min_version("1.0.0") is False + + +@pytest.mark.unit +class TestVersionFromTag: + def test_strips_v_prefix(self): + assert _version_from_tag("v2.5.0") == "2.5.0" + + def test_no_prefix(self): + assert _version_from_tag("2.5.0") == "2.5.0" + + def test_prerelease_tag(self): + assert _version_from_tag("v2.6.0-beta.1") == "2.6.0-beta.1" + + +# --------------------------------------------------------------------------- +# GitHub releases API parsing +# --------------------------------------------------------------------------- + +MOCK_RELEASES = [ + { + "tag_name": "v2.6.0", + "prerelease": False, + "draft": False, + "body": "## v2.6.0\n- Feature A", + }, + { + "tag_name": "v2.5.1", + "prerelease": False, + "draft": False, + "body": "Bugfix release", + }, + { + "tag_name": "v2.6.0-beta.1", + "prerelease": True, + "draft": False, + "body": "Beta changelog", + }, + { + "tag_name": "v2.5.0-beta.2", + "prerelease": True, + "draft": False, + "body": "Old beta", + }, + { + "tag_name": "v2.4.0", + "prerelease": False, + "draft": False, + "body": "Pre-NixOS release", + }, + { + "tag_name": "v2.3.0", + "prerelease": False, + "draft": True, + "body": "Draft release", + }, +] + + +@pytest.mark.unit +class TestFetchGitHubReleases: + @patch("PiFinder.ui.software.requests.get") + def test_partitions_stable_and_beta(self, mock_get): + mock_resp = MagicMock() + mock_resp.status_code = 200 + mock_resp.json.return_value = MOCK_RELEASES + mock_get.return_value = mock_resp + + stable, beta = _fetch_github_releases() + + stable_versions = [e["version"] for e in stable] + beta_versions = [e["version"] for e in beta] + + assert "2.6.0" in stable_versions + assert "2.5.1" in stable_versions + assert "2.6.0-beta.1" in beta_versions + + @patch("PiFinder.ui.software.requests.get") + def test_filters_below_min_version(self, mock_get): + mock_resp = MagicMock() + mock_resp.status_code = 200 + mock_resp.json.return_value = MOCK_RELEASES + mock_get.return_value = mock_resp + + stable, beta = _fetch_github_releases() + + all_versions = [e["version"] for e in stable + beta] + assert "2.4.0" not in all_versions + + @patch("PiFinder.ui.software.requests.get") + def test_excludes_drafts(self, mock_get): + mock_resp = MagicMock() + mock_resp.status_code = 200 + mock_resp.json.return_value = MOCK_RELEASES + mock_get.return_value = mock_resp + + stable, beta = _fetch_github_releases() + + all_labels = [e["label"] for e in stable + beta] + assert "v2.3.0" not in all_labels + + @patch("PiFinder.ui.software.requests.get") + def test_flake_ref_format(self, mock_get): + mock_resp = MagicMock() + mock_resp.status_code = 200 + mock_resp.json.return_value = [MOCK_RELEASES[0]] + mock_get.return_value = mock_resp + + stable, _ = _fetch_github_releases() + + assert stable[0]["ref"] == f"github:{GITHUB_REPO}/v2.6.0#pifinder" + + @patch("PiFinder.ui.software.requests.get") + def test_preserves_changelog_body(self, mock_get): + mock_resp = MagicMock() + mock_resp.status_code = 200 + mock_resp.json.return_value = [MOCK_RELEASES[0]] + mock_get.return_value = mock_resp + + stable, _ = _fetch_github_releases() + + assert stable[0]["notes"] == "## v2.6.0\n- Feature A" + + @patch("PiFinder.ui.software.requests.get") + def test_api_failure_returns_empty(self, mock_get): + mock_resp = MagicMock() + mock_resp.status_code = 500 + mock_get.return_value = mock_resp + + stable, beta = _fetch_github_releases() + + assert stable == [] + assert beta == [] + + @patch("PiFinder.ui.software.requests.get") + def test_network_error_returns_empty(self, mock_get): + import requests as req + + mock_get.side_effect = req.exceptions.ConnectionError("no network") + + stable, beta = _fetch_github_releases() + + assert stable == [] + assert beta == [] + + @patch("PiFinder.ui.software.requests.get") + def test_prerelease_at_min_filtered(self, mock_get): + """2.5.0-beta.2 is below 2.5.0 minimum, should be excluded.""" + mock_resp = MagicMock() + mock_resp.status_code = 200 + mock_resp.json.return_value = MOCK_RELEASES + mock_get.return_value = mock_resp + + _, beta = _fetch_github_releases() + + beta_versions = [e["version"] for e in beta] + assert "2.5.0-beta.2" not in beta_versions + + +# --------------------------------------------------------------------------- +# Testable PRs +# --------------------------------------------------------------------------- + +MOCK_PRS = [ + { + "number": 42, + "title": "Fix star matching algorithm", + "head": {"sha": "abc123def456"}, + "user": {"login": "contributor1"}, + "body": "This PR fixes the star matching.", + }, + { + "number": 99, + "title": "Add dark mode support", + "head": {"sha": "789xyz000111"}, + "user": {"login": "contributor2"}, + "body": None, + }, +] + + +@pytest.mark.unit +class TestFetchTestablePRs: + @patch("PiFinder.ui.software.requests.get") + def test_builds_pr_entries(self, mock_get): + mock_resp = MagicMock() + mock_resp.status_code = 200 + mock_resp.json.return_value = MOCK_PRS + mock_get.return_value = mock_resp + + entries = _fetch_testable_prs() + + assert len(entries) == 2 + assert entries[0]["label"].startswith("PR#42") + assert entries[1]["label"].startswith("PR#99") + + @patch("PiFinder.ui.software.requests.get") + def test_pr_flake_ref_uses_sha(self, mock_get): + mock_resp = MagicMock() + mock_resp.status_code = 200 + mock_resp.json.return_value = [MOCK_PRS[0]] + mock_get.return_value = mock_resp + + entries = _fetch_testable_prs() + + assert entries[0]["ref"] == f"github:{GITHUB_REPO}/abc123def456#pifinder" + + @patch("PiFinder.ui.software.requests.get") + def test_pr_version_is_none(self, mock_get): + mock_resp = MagicMock() + mock_resp.status_code = 200 + mock_resp.json.return_value = [MOCK_PRS[0]] + mock_get.return_value = mock_resp + + entries = _fetch_testable_prs() + + assert entries[0]["version"] is None + + @patch("PiFinder.ui.software.requests.get") + def test_pr_notes_from_body(self, mock_get): + mock_resp = MagicMock() + mock_resp.status_code = 200 + mock_resp.json.return_value = MOCK_PRS + mock_get.return_value = mock_resp + + entries = _fetch_testable_prs() + + assert entries[0]["notes"] == "This PR fixes the star matching." + assert entries[1]["notes"] is None + + @patch("PiFinder.ui.software.requests.get") + def test_api_failure_returns_empty(self, mock_get): + mock_resp = MagicMock() + mock_resp.status_code = 403 + mock_get.return_value = mock_resp + + entries = _fetch_testable_prs() + + assert entries == [] + + @patch("PiFinder.ui.software.requests.get") + def test_long_title_truncated(self, mock_get): + mock_resp = MagicMock() + mock_resp.status_code = 200 + mock_resp.json.return_value = [ + { + "number": 7, + "title": "A very long PR title that exceeds twenty characters", + "head": {"sha": "aaa"}, + "user": {"login": "x"}, + "body": None, + } ] - result = _filter_upgrades("2.4.0", versions) - assert result[0]["type"] == "upgrade" - assert result[0]["migration_url"] == "https://..." - assert result[1]["type"] == "update" - - def test_empty_input(self): - assert _filter_upgrades("2.4.0", []) == [] - - def test_upgrade_type_detected(self): - versions = [{"version": "2.5.0", "type": "upgrade"}] - result = _filter_upgrades("2.4.0", versions) - assert result[0].get("type") == "upgrade" - - def test_update_type_detected(self): - versions = [{"version": "2.4.1", "type": "update"}] - result = _filter_upgrades("2.4.0", versions) - assert result[0].get("type") == "update" - - def test_missing_type_field(self): - versions = [{"version": "2.4.1"}] - result = _filter_upgrades("2.4.0", versions) - assert result[0].get("type") is None + mock_get.return_value = mock_resp + + entries = _fetch_testable_prs() + + assert "..." in entries[0]["label"] + # PR#7 prefix + space + 20 chars + ... + assert entries[0]["label"].startswith("PR#7 ") diff --git a/python/tests/test_sys_utils.py b/python/tests/test_sys_utils.py index 6115dc881..5dcd05e48 100644 --- a/python/tests/test_sys_utils.py +++ b/python/tests/test_sys_utils.py @@ -68,5 +68,5 @@ def test_wpa_supplicant_parsing(): assert result[1]["psk"] == "1234@===!!!" -except ImportError: +except (ImportError, ValueError): pass diff --git a/release_manifest.json b/release_manifest.json deleted file mode 100644 index 30b963a76..000000000 --- a/release_manifest.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "channels": { - "stable": [ - { - "version": "2.5.0", - "type": "upgrade", - "notes_url": "https://raw.githubusercontent.com/brickbots/PiFinder/main/RELEASE.md", - "migration_url": "https://github.com/mrosseel/PiFinder/releases/download/v2.5.0-bootstrap/pifinder-bootstrap-v2.5.0.tar.gz", - "migration_sha256": "d5e5dc7bfde57bb958d0dc55804af6fb14265f12d9e27a02da0385847f9ba742", - "migration_size_mb": 349, - "min_ram_mb": 2048, - "min_sd_gb": 16 - }, - { - "version": "2.4.1", - "type": "update", - "notes_url": "https://raw.githubusercontent.com/brickbots/PiFinder/main/RELEASE.md" - } - ], - "unstable": [ - { - "version": "2.6.0-beta.2", - "type": "update", - "notes_url": "https://raw.githubusercontent.com/brickbots/PiFinder/main/RELEASE.md" - }, - { - "version": "2.6.0-beta.1", - "type": "update", - "notes_url": "https://raw.githubusercontent.com/brickbots/PiFinder/main/RELEASE.md" - } - ] - } -} diff --git a/shell.nix b/shell.nix deleted file mode 100644 index e636aca9f..000000000 --- a/shell.nix +++ /dev/null @@ -1,79 +0,0 @@ -{ pkgs ? import (fetchTarball "https://github.com/NixOS/nixpkgs/archive/nixos-24.05.tar.gz") {} }: - -let - inherit (pkgs) lib stdenv; -in -pkgs.mkShell { - buildInputs = with pkgs; [ - python39 - python39Packages.pip - python39Packages.virtualenv - - # Build dependencies for native extensions - gcc - pkg-config - zlib - libjpeg - libpng - freetype - openblas - lapack - - # For luma.oled/lcd (display libs) - libusb1 - - # For pygame - SDL2 - SDL2_image - SDL2_mixer - SDL2_ttf - ] - ++ lib.optionals stdenv.isLinux [ - linuxHeaders - wayland - libxkbcommon - libGL - mesa - # XWayland support - xorg.libX11 - xorg.libXcursor - xorg.libXrandr - xorg.libXi - ] - ++ lib.optionals stdenv.isDarwin [ - darwin.apple_sdk.frameworks.Cocoa - darwin.apple_sdk.frameworks.CoreVideo - darwin.apple_sdk.frameworks.IOKit - ]; - - shellHook = '' - export LD_LIBRARY_PATH="${pkgs.lib.makeLibraryPath ([ - pkgs.stdenv.cc.cc.lib - pkgs.zlib - pkgs.libjpeg - pkgs.libpng - pkgs.freetype - pkgs.openblas - pkgs.lapack - pkgs.SDL2 - pkgs.SDL2_image - pkgs.SDL2_mixer - pkgs.SDL2_ttf - ] ++ lib.optionals stdenv.isLinux [ - pkgs.wayland - pkgs.libxkbcommon - pkgs.libGL - pkgs.mesa - pkgs.xorg.libX11 - pkgs.xorg.libXcursor - pkgs.xorg.libXrandr - pkgs.xorg.libXi - ])}:$LD_LIBRARY_PATH" - '' + lib.optionalString stdenv.isLinux '' - export C_INCLUDE_PATH="${pkgs.linuxHeaders}/include:$C_INCLUDE_PATH" - export LIBGL_DRIVERS_PATH="${pkgs.mesa.drivers}/lib/dri" - export __EGL_VENDOR_LIBRARY_DIRS="${pkgs.mesa.drivers}/share/glvnd/egl_vendor.d" - # Use XWayland for pygame (allows window resize on Wayland compositors) - export SDL_VIDEODRIVER=x11 - ''; -} From 7b78f40c6634f5f02516466d1ff14b589c725e0c Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Wed, 11 Feb 2026 23:31:52 +0100 Subject: [PATCH 067/144] fix: camera test mode, PAM auth, service PATH, AP networking - Fix test mode images: drain debug commands before blocking capture() so mode switch is processed even when camera hardware is unresponsive - Fix PAM errors: create dedicated pifinder PAM service (auth-only, no session/account management that requires setuid) - Fix service PATH: add /run/wrappers/bin and /run/current-system/sw/bin to pifinder systemd service path (camera switch, sudo, systemctl) - Fix AP networking: enable firewall ports 53/67 UDP (DNS/DHCP) and 80 TCP (web UI), add dnsmasq for NM shared mode, AP autoconnect - Fix tetra3 rev pin: update to cded265 (np.math.factorial fix) - Remove bootstrap workflow (no longer used) - Remove absolute paths from sys_utils.py (service PATH handles resolution) Co-Authored-By: Claude Opus 4.6 --- flake.nix | 57 +---- nixos/bootstrap.nix | 372 ---------------------------- nixos/networking.nix | 11 +- nixos/pkgs/pifinder-src.nix | 10 +- nixos/services.nix | 23 +- python/PiFinder/camera_interface.py | 14 ++ python/PiFinder/sys_utils.py | 20 +- 7 files changed, 61 insertions(+), 446 deletions(-) delete mode 100644 nixos/bootstrap.nix diff --git a/flake.nix b/flake.nix index a7b96770b..9f9d86535 100644 --- a/flake.nix +++ b/flake.nix @@ -253,70 +253,17 @@ ''; }; - # Bootstrap system for migration from RPi OS - # Minimal NixOS that boots, connects to network, and runs nixos-rebuild switch - # NOTE: Does NOT use nixos-hardware module to avoid pulling in linux-firmware (659MB) - mkBootstrapSystem = { includeSDImage ? false }: nixpkgs.lib.nixosSystem { - system = "aarch64-linux"; - modules = [ - # Inline minimal Pi4 hardware config instead of nixos-hardware module - ({ lib, ... }: { - # Basic Pi 4 kernel - no extra firmware needed for bootstrap - boot.kernelPackages = lib.mkDefault (import nixpkgs { system = "aarch64-linux"; }).linuxPackages_rpi4; - hardware.enableRedistributableFirmware = lib.mkForce false; - hardware.firmware = lib.mkForce []; - }) - ./nixos/bootstrap.nix - ] ++ nixpkgs.lib.optionals includeSDImage [ - "${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix" - ({ pkgs, lib, ... }: { - # Simplified firmware population for bootstrap - sdImage.populateFirmwareCommands = lib.mkForce '' - (cd ${pkgs.raspberrypifw}/share/raspberrypi/boot && cp bootcode.bin fixup*.dat start*.elf $NIX_BUILD_TOP/firmware/) - - # Minimal config.txt for Pi 4 - cat > firmware/config.txt </dev/null || echo 0) - STAGE_NUM=$((STAGE_NUM + 1)) - echo "$STAGE_NUM" > "$STAGE_FILE" - - cat > "${stateDir}/state" </dev/null || true - fi - - echo "[$PCT%] $STATUS $DETAIL" - ''; -in { - options.pifinder = { - repoUrl = lib.mkOption { - type = lib.types.str; - default = "github:mrosseel/PiFinder"; - description = "GitHub flake URL for PiFinder repo (without branch/output)"; - }; - }; - - config = { - # --------------------------------------------------------------------------- - # Boot - minimal Pi 4 support - # --------------------------------------------------------------------------- - boot.loader.grub.enable = false; - boot.loader.generic-extlinux-compatible.enable = true; - boot.loader.generic-extlinux-compatible.configurationLimit = 2; - - boot.consoleLogLevel = 7; - boot.kernelParams = [ "console=ttyS1,115200n8" ]; - - # Minimal kernel modules - boot.initrd.availableKernelModules = lib.mkForce [ "mmc_block" "usbhid" "usb_storage" ]; - boot.supportedFilesystems = lib.mkForce [ "vfat" "ext4" ]; - - # --------------------------------------------------------------------------- - # Filesystems - # --------------------------------------------------------------------------- - fileSystems."/" = { - device = "/dev/disk/by-label/NIXOS_SD"; - fsType = "ext4"; - options = [ "noatime" "nodiratime" ]; - }; - - fileSystems."/boot" = { - device = "/dev/disk/by-label/FIRMWARE"; - fsType = "vfat"; - }; - - # --------------------------------------------------------------------------- - # Memory optimizations (same as full config) - # --------------------------------------------------------------------------- - boot.tmp.useTmpfs = true; - boot.tmp.tmpfsSize = "200M"; - - services.journald.extraConfig = '' - Storage=volatile - RuntimeMaxUse=50M - ''; - - zramSwap = { - enable = true; - memoryPercent = 50; - }; - - # --------------------------------------------------------------------------- - # Networking - iwd + systemd-networkd (much lighter than NetworkManager) - # --------------------------------------------------------------------------- - networking = { - hostName = "pifinder-bootstrap"; - useNetworkd = true; - wireless.iwd.enable = true; - }; - - # systemd-networkd config for DHCP on all interfaces - systemd.network = { - enable = true; - networks = { - "20-wired" = { - matchConfig.Type = "ether"; - networkConfig.DHCP = "yes"; - }; - "25-wireless" = { - matchConfig.Type = "wlan"; - networkConfig.DHCP = "yes"; - }; - }; - }; - - # --------------------------------------------------------------------------- - # Nix with flakes + binary cache - # --------------------------------------------------------------------------- - nix.settings = { - experimental-features = [ "nix-command" "flakes" ]; - download-buffer-size = 536870912; # 512MB - PiFinder repo tarball is large - substituters = [ - "https://cache.nixos.org" - "https://pifinder.cachix.org" - ]; - trusted-public-keys = [ - "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" - "pifinder.cachix.org-1:ALuxYs8tMU34zwSTWjenI2wpJA+AclmW6H5vyTgnTjc=" - ]; - }; - - # --------------------------------------------------------------------------- - # Minimal packages - # --------------------------------------------------------------------------- - # Minimal packages - nix has built-in git support for flakes - # mkForce overrides profiles/base.nix which adds w3m (150MB with perl) - environment.systemPackages = lib.mkForce (with pkgs; [ - progressScript - bashInteractive - ]); - - # --------------------------------------------------------------------------- - # Users - minimal, just for debugging/SSH - # --------------------------------------------------------------------------- - users.users.root.initialPassword = "solveit"; - users.users.pifinder = { - isNormalUser = true; - initialPassword = "solveit"; - extraGroups = [ "wheel" "systemd-journal" ]; - }; - - # --------------------------------------------------------------------------- - # SSH for debugging if bootstrap gets stuck - # --------------------------------------------------------------------------- - services.openssh = { - enable = true; - settings = { - PasswordAuthentication = true; - PermitRootLogin = "yes"; - }; - }; - - # mDNS so we can find it at pifinder-bootstrap.local - services.avahi = { - enable = true; - nssmdns4 = true; - publish = { - enable = true; - addresses = true; - }; - }; - - # --------------------------------------------------------------------------- - # Bootstrap Service - the main event - # --------------------------------------------------------------------------- - systemd.services.pifinder-bootstrap = { - description = "PiFinder NixOS Bootstrap"; - wantedBy = [ "multi-user.target" ]; - after = [ "network-online.target" "systemd-networkd-wait-online.service" "iwd.service" ]; - wants = [ "network-online.target" "systemd-networkd-wait-online.service" "iwd.service" ]; - - serviceConfig = { - Type = "oneshot"; - RemainAfterExit = true; - Restart = "on-failure"; - RestartSec = "30s"; - TimeoutStartSec = "30min"; - }; - - # Minimal path - nixos-rebuild fetched at runtime to avoid pulling llvm into closure - path = with pkgs; [ nix coreutils gnugrep gawk systemd inetutils ]; - - script = '' - set -euo pipefail - - STATE_FILE="${stateDir}/state" - STAGING_META="${stateDir}/staging-meta" - RESTORE_MARKER="${stateDir}/restore-complete" - - mkdir -p "${stateDir}" - - progress() { - ${progressScript}/bin/migration-progress "$@" - } - - # Already complete? Exit cleanly. - if [ -f "$STATE_FILE" ] && grep -q "PERCENT=100" "$STATE_FILE"; then - echo "Bootstrap already complete." - exit 0 - fi - - progress 70 "NixOS booting" - - # ----------------------------------------------------------------------- - # Resume user data restore if interrupted - # ----------------------------------------------------------------------- - if [ -f "$STAGING_META" ] && [ ! -f "$RESTORE_MARKER" ]; then - progress 62 "Resuming data restore" - - source "$STAGING_META" - # Variables from phase 2: STAGING_OFFSET_BLOCKS, BACKUP_SIZE, SD_DEV - - if [ -n "''${STAGING_OFFSET_BLOCKS:-}" ] && [ -n "''${BACKUP_SIZE:-}" ]; then - BACKUP_BLOCKS=$(( (BACKUP_SIZE + 4095) / 4096 )) - - dd if="''${SD_DEV:-/dev/mmcblk0}" bs=4096 \ - skip="$STAGING_OFFSET_BLOCKS" count="$BACKUP_BLOCKS" 2>/dev/null | \ - gunzip | tar xf - -C /home/pifinder/ || { - progress 62 "Restore failed" "will retry" - exit 1 - } - - chown -R pifinder:users /home/pifinder/PiFinder_data 2>/dev/null || true - touch "$RESTORE_MARKER" - progress 67 "Data restored" - fi - fi - - # ----------------------------------------------------------------------- - # Wait for network - # ----------------------------------------------------------------------- - progress 72 "Waiting for network" - - attempt=0 - max_attempts=120 # 10 minutes of trying - - while ! ping -c1 -W2 github.com &>/dev/null; do - attempt=$((attempt + 1)) - - if [ $attempt -ge $max_attempts ]; then - # Reset counter, keep trying forever - progress 72 "No network" "retry $attempt - check WiFi" - attempt=0 - sleep 30 - continue - fi - - # Show connection status - conn_state=$(networkctl status 2>/dev/null | grep -oP 'State: \K\S+' || echo "unknown") - progress 72 "Connecting..." "$conn_state" - sleep 5 - done - - progress 75 "Network connected" - - # ----------------------------------------------------------------------- - # nixos-rebuild switch - # ----------------------------------------------------------------------- - progress 76 "Starting switch" - - FLAKE="${cfg.repoUrl}/nixos#pifinder" - - # Fetch nixos-rebuild at runtime to avoid bloating bootstrap closure - # This adds ~30s but saves ~500MB in the tarball - progress 77 "Fetching tools" - - # Parse nix build output for progress - # Expected ~600 paths total; count copying/building lines for progress - COPY_COUNT=0 - TOTAL_EST=600 - if nix shell nixpkgs#nixos-rebuild -c nixos-rebuild switch --flake "$FLAKE" --refresh 2>&1 | \ - while IFS= read -r line; do - echo "$line" # Pass through for logging - - if echo "$line" | grep -qE '^copying path |^building '; then - COPY_COUNT=$((COPY_COUNT + 1)) - pct=$((COPY_COUNT * 100 / TOTAL_EST)) - [ "$pct" -gt 100 ] && pct=100 - # Map 0-100% to 78-95% - mapped=$((78 + pct * 17 / 100)) - progress "$mapped" "Installing" "$COPY_COUNT paths" - elif echo "$line" | grep -qi 'activating'; then - progress 95 "Activating system" - elif echo "$line" | grep -qi 'building the system configuration'; then - progress 78 "Building config" - fi - done; then - - progress 98 "Finalizing" - - # Cleanup migration artifacts - rm -f /boot/nixos_migration - rm -f /boot/initramfs-migration.gz - - # Expand root partition if not already done - # (in case phase 2 was interrupted before expand) - if command -v sfdisk >/dev/null 2>&1; then - echo ", +" | sfdisk -N 2 /dev/mmcblk0 --no-reread 2>/dev/null || true - partprobe /dev/mmcblk0 2>/dev/null || true - resize2fs /dev/mmcblk0p2 2>/dev/null || true - fi - - progress 100 "Complete!" "Rebooting..." - sleep 3 - - systemctl reboot - else - progress 76 "Switch failed" "retrying in 30s..." - exit 1 # systemd will restart after 30s - fi - ''; - }; - - # --------------------------------------------------------------------------- - # System - # --------------------------------------------------------------------------- - system.stateVersion = "24.11"; - - # Strip unnecessary stuff - documentation.enable = false; - documentation.man.enable = false; - documentation.nixos.enable = false; - documentation.doc.enable = false; - documentation.info.enable = false; - fonts.fontconfig.enable = false; - xdg.portal.enable = false; - services.xserver.enable = false; - - # Remove default packages that bloat the image - environment.defaultPackages = lib.mkForce []; - programs.nano.enable = false; - programs.vim.defaultEditor = false; - programs.command-not-found.enable = false; # pulls perl - programs.less.lessopen = null; # lesspipe pulls perl (112MB) - - # Disable unnecessary services - services.udisks2.enable = false; - security.polkit.enable = lib.mkForce false; - services.speechd.enable = lib.mkForce false; - boot.enableContainers = false; # nixos-container pulls perl (112MB) - - # Disable xdg stuff that pulls in perl via xdg-utils - xdg.mime.enable = false; - xdg.icons.enable = false; - xdg.sounds.enable = false; - xdg.autostart.enable = false; - - # Disable fuse/fusermount (86MB) - programs.fuse.userAllowOther = false; - boot.initrd.supportedFilesystems = lib.mkForce []; - - # Minimal nix - no gc, no daemon overhead - nix.gc.automatic = false; - }; # config -} diff --git a/nixos/networking.nix b/nixos/networking.nix index 89ca51c55..70a345cb3 100644 --- a/nixos/networking.nix +++ b/nixos/networking.nix @@ -4,8 +4,16 @@ hostName = "pifinder"; networkmanager.enable = true; wireless.enable = false; # NetworkManager handles WiFi + firewall = { + allowedUDPPorts = [ 53 67 ]; # DNS + DHCP for AP mode + allowedTCPPorts = [ 80 ]; # PiFinder web UI + }; }; + # dnsmasq for NetworkManager AP shared mode (DHCP for AP clients) + services.dnsmasq.enable = false; # NM manages its own dnsmasq instance + environment.systemPackages = [ pkgs.dnsmasq ]; + # Wired ethernet with DHCP (autoconnect) environment.etc."NetworkManager/system-connections/Wired.nmconnection" = { text = '' @@ -29,7 +37,8 @@ [connection] id=PiFinder-AP type=wifi - autoconnect=false + autoconnect=true + autoconnect-priority=-1 [wifi] mode=ap diff --git a/nixos/pkgs/pifinder-src.nix b/nixos/pkgs/pifinder-src.nix index 34aca3898..a2d41f585 100644 --- a/nixos/pkgs/pifinder-src.nix +++ b/nixos/pkgs/pifinder-src.nix @@ -3,8 +3,8 @@ let tetra3-src = pkgs.fetchFromGitHub { owner = "smroid"; repo = "cedar-solve"; - rev = "38c3f48f57d1005e9b65cbb26136f9f13ec0a1b0"; - hash = "sha256-63Jc5xuJpAZ2UcdKk19MmwuXpix8EBzNNbJzLbl0VyU="; + rev = "cded265ca1c41e4e526f91e06d3c7ef99bc37288"; + hash = "sha256-eJtBuBmsElEojXLYfYy3gQ/s2+8qjyvOYAqROe4sNO0="; }; # Hipparcos star catalog for starfield plotting @@ -41,12 +41,8 @@ pkgs.stdenv.mkDerivation { # Hipparcos catalog is gitignored (51MB), fetch and include for starfield plotting cp ${hip_main} $out/astro_data/hip_main.dat - # NixOS: sudo setuid wrapper is at /run/wrappers/bin/sudo, not sw/bin/sudo - chmod -R u+w $out/python - substituteInPlace $out/python/PiFinder/sys_utils.py \ - --replace-fail '/run/current-system/sw/bin/sudo' '/run/wrappers/bin/sudo' - # Pre-compile .pyc bytecode so Python skips compilation at runtime + chmod -R u+w $out/python python3 -m compileall -q $out/python ''; } diff --git a/nixos/services.nix b/nixos/services.nix index 8f29c6f2c..0bd00bf38 100644 --- a/nixos/services.nix +++ b/nixos/services.nix @@ -250,7 +250,17 @@ in { after = [ "basic.target" "cedar-detect.service" "gpsd.socket" ]; wants = [ "cedar-detect.service" "gpsd.socket" ]; wantedBy = [ "multi-user.target" ]; - path = [ pkgs.gpsd ]; # For gpsctl + path = let + # Runtime paths not in the nix store — symlinks resolve at boot, not build time + wrapperBins = pkgs.runCommand "wrapper-bins" {} '' + mkdir -p $out + ln -s /run/wrappers/bin $out/bin + ''; + systemBins = pkgs.runCommand "system-bins" {} '' + mkdir -p $out + ln -s /run/current-system/sw/bin $out/bin + ''; + in [ wrapperBins systemBins pkgs.gpsd ]; environment = { PIFINDER_HOME = "/home/pifinder/PiFinder"; PIFINDER_DATA = "/home/pifinder/PiFinder_data"; @@ -433,6 +443,17 @@ in { }; }; + # --------------------------------------------------------------------------- + # PAM service for PiFinder web UI password verification + # --------------------------------------------------------------------------- + security.pam.services.pifinder = { + # Auth-only: no account/session management (avoids setuid and pam_lastlog2 errors) + allowNullPassword = false; + unixAuth = true; + setLoginUid = false; + updateWtmp = false; + }; + # --------------------------------------------------------------------------- # Samba for file sharing (observation data, backups) # --------------------------------------------------------------------------- diff --git a/python/PiFinder/camera_interface.py b/python/PiFinder/camera_interface.py index 9752f55c0..0f6c68c27 100644 --- a/python/PiFinder/camera_interface.py +++ b/python/PiFinder/camera_interface.py @@ -122,6 +122,20 @@ def get_image_loop( sleep_delay = 60 was_sleeping = False while True: + # Check for mode-switch commands before capture (capture may block) + pending = [] + try: + while True: + cmd = command_queue.get_nowait() + if cmd == "debug": + debug = not debug + else: + pending.append(cmd) + except queue.Empty: + pass + for cmd in pending: + command_queue.put(cmd) + sleeping = state_utils.sleep_for_framerate( shared_state, limit_framerate=False ) diff --git a/python/PiFinder/sys_utils.py b/python/PiFinder/sys_utils.py index 2db1ecbd1..eba021940 100644 --- a/python/PiFinder/sys_utils.py +++ b/python/PiFinder/sys_utils.py @@ -348,7 +348,7 @@ def restart_system() -> None: manager.Reboot(False) except dbus.DBusException as e: logger.error("D-Bus reboot failed, falling back to subprocess: %s", e) - _run(["/run/current-system/sw/bin/sudo", "shutdown", "-r", "now"]) + _run(["sudo", "shutdown", "-r", "now"]) def shutdown() -> None: @@ -364,7 +364,7 @@ def shutdown() -> None: manager.PowerOff(False) except dbus.DBusException as e: logger.error("D-Bus shutdown failed, falling back to subprocess: %s", e) - _run(["/run/current-system/sw/bin/sudo", "shutdown", "now"]) + _run(["sudo", "shutdown", "now"]) # --------------------------------------------------------------------------- @@ -387,11 +387,11 @@ def start_upgrade(ref: str = "release") -> bool: logger.error("Failed to write upgrade ref file: %s", e) return False - _run(["/run/current-system/sw/bin/sudo", "/run/current-system/sw/bin/systemctl", "reset-failed", "pifinder-upgrade.service"]) + _run(["sudo", "systemctl", "reset-failed", "pifinder-upgrade.service"]) result = _run( [ - "/run/current-system/sw/bin/sudo", - "/run/current-system/sw/bin/systemctl", + "sudo", + "systemctl", "start", "--no-block", "pifinder-upgrade.service", @@ -402,7 +402,7 @@ def start_upgrade(ref: str = "release") -> bool: def get_upgrade_state() -> str: """Poll upgrade service state.""" - result = _run(["/run/current-system/sw/bin/systemctl", "is-active", "pifinder-upgrade.service"]) + result = _run(["systemctl", "is-active", "pifinder-upgrade.service"]) status = result.stdout.strip() if status == "activating": return UPGRADE_STATE_RUNNING @@ -417,7 +417,7 @@ def get_upgrade_log_tail(lines: int = 3) -> str: """Last N lines from upgrade journal for UI display.""" result = _run( [ - "/run/current-system/sw/bin/journalctl", + "journalctl", "-u", "pifinder-upgrade.service", "-n", @@ -451,7 +451,7 @@ def update_software(ref: str = "release") -> bool: def verify_password(username: str, password: str) -> bool: """Verify a password against PAM.""" p = pam.pam() - return p.authenticate(username, password, service="login") + return p.authenticate(username, password, service="pifinder") def change_password(username: str, current_password: str, new_password: str) -> bool: @@ -459,7 +459,7 @@ def change_password(username: str, current_password: str, new_password: str) -> if not verify_password(username, current_password): return False result = subprocess.run( - ["/run/current-system/sw/bin/sudo", "chpasswd"], + ["sudo", "chpasswd"], input=f"{username}:{new_password}\n", capture_output=True, text=True, @@ -480,7 +480,7 @@ def switch_camera(cam_type: str) -> None: Requires reboot (dtoverlay change). """ logger.info("SYS: Switching camera to %s via specialisation", cam_type) - result = _run(["/run/current-system/sw/bin/sudo", "pifinder-switch-camera", cam_type]) + result = _run(["sudo", "pifinder-switch-camera", cam_type]) if result.returncode != 0: logger.error("SYS: Camera switch failed: %s", result.stderr) From 1ac9d9b66e6c0448393e61ebc412710972ac24bb Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Thu, 12 Feb 2026 12:22:44 +0100 Subject: [PATCH 068/144] feat: include catalog images in SD card image Fetch catalog_images.tar.zst from files.miker.be during SD image build, unpack at build time, and copy writable into the root filesystem. Not included in the regular system closure (no Cachix bloat). Co-Authored-By: Claude Opus 4.6 --- flake.nix | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/flake.nix b/flake.nix index 9f9d86535..282f23208 100644 --- a/flake.nix +++ b/flake.nix @@ -84,7 +84,23 @@ enable_uart=1 avoid_warnings=1 ''; + catalog-images = pkgs.stdenv.mkDerivation { + pname = "pifinder-catalog-images"; + version = "1.0"; + src = pkgs.fetchurl { + url = "https://files.miker.be/public/pifinder/catalog_images.tar.zst"; + hash = "sha256-20YOmO2qy2W27nIFV4Aqibu0MLip4gymHrfe411+VNg="; + }; + nativeBuildInputs = [ pkgs.zstd ]; + unpackPhase = "tar xf $src"; + installPhase = "mv catalog_images $out"; + }; in { + sdImage.populateRootCommands = '' + mkdir -p ./files/home/pifinder/PiFinder_data + cp -r ${catalog-images} ./files/home/pifinder/PiFinder_data/catalog_images + chmod -R u+w ./files/home/pifinder/PiFinder_data/catalog_images + ''; sdImage.populateFirmwareCommands = lib.mkForce '' (cd ${pkgs.raspberrypifw}/share/raspberrypi/boot && cp bootcode.bin fixup*.dat start*.elf $NIX_BUILD_TOP/firmware/) From 6e8065951de4cfb520fa027baf93422b10567ba8 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Thu, 12 Feb 2026 16:37:27 +0100 Subject: [PATCH 069/144] feat: bootstrap migration tarball and pifinder-src optimization - Split pifinder-src into stable astro-data (~193MB) derivation + code (~57MB) for smaller OTA updates - Add bootstrapMode option: minimal NixOS without pifinder-src, runs nixos-rebuild on first boot for migration from Raspbian - Custom tarball builder (replaces make-system-tarball.nix) to avoid nix sandbox symlink conflict during closure copy - Bootstrap tarball: 648MB with boot firmware, nix closure, extlinux - Conditionally disable pifinder/cedar/watchdog services in bootstrap Co-Authored-By: Claude Opus 4.6 --- flake.nix | 106 +++++++++++++++++++++++++++++++++++- nixos/pkgs/pifinder-src.nix | 23 ++++++-- nixos/services.nix | 67 +++++++++++++++++++---- 3 files changed, 180 insertions(+), 16 deletions(-) diff --git a/flake.nix b/flake.nix index 282f23208..d45c48778 100644 --- a/flake.nix +++ b/flake.nix @@ -269,17 +269,119 @@ ''; }; + # Bootstrap system — minimal NixOS without PiFinder source, for migration tarball + mkPifinderBootstrap = nixpkgs.lib.nixosSystem { + system = "aarch64-linux"; + modules = commonModules ++ [ + { pifinder.bootstrapMode = true; } + ({ lib, ... }: { + boot.supportedFilesystems = lib.mkForce [ "vfat" "ext4" ]; + boot.loader.timeout = 0; + }) + ]; + }; + in { nixosConfigurations = { # SD card boot — camera baked into DT, switched via specialisations pifinder = mkPifinderSystem {}; # NFS netboot — for development on proxnix pifinder-netboot = mkPifinderNetboot; -}; + # Bootstrap — for migration tarball (no pifinder-src) + pifinder-bootstrap = mkPifinderBootstrap; + }; images = { # SD card image pifinder = (mkPifinderSystem { includeSDImage = true; }).config.system.build.sdImage; -}; + # Migration bootstrap tarball + bootstrap = let + system = mkPifinderBootstrap; + toplevel = system.config.system.build.toplevel; + pkgs = import nixpkgs { system = "aarch64-linux"; }; + closure = pkgs.closureInfo { rootPaths = [ toplevel ]; }; + kernelParams = builtins.concatStringsSep " " system.config.boot.kernelParams; + configTxt = pkgs.writeText "config.txt" '' + [pi3] + kernel=u-boot-rpi3.bin + + [pi02] + kernel=u-boot-rpi3.bin + + [pi4] + kernel=u-boot-rpi4.bin + enable_gic=1 + armstub=armstub8-gic.bin + + disable_overscan=1 + arm_boost=1 + + [cm4] + otg_mode=1 + + [all] + arm_64bit=1 + enable_uart=1 + avoid_warnings=1 + ''; + fw = "${pkgs.raspberrypifw}/share/raspberrypi/boot"; + in pkgs.stdenv.mkDerivation { + name = "pifinder-bootstrap-tarball"; + __structuredAttrs = true; + unsafeDiscardReferences.out = true; + nativeBuildInputs = [ pkgs.zstd ]; + buildCommand = '' + root=$(mktemp -d) + + # Copy store closure into isolated root (avoids sandbox nix symlink) + mkdir -p "$root/nix/store" + while IFS= read -r path; do + cp -a "$path" "$root$path" + done < ${closure}/store-paths + + # Nix DB registration for nix-store --load-db + cp ${closure}/registration "$root/nix-path-registration" + + # System profile symlink + mkdir -p "$root/nix/var/nix/profiles" + ln -s ${toplevel} "$root/nix/var/nix/profiles/system" + + # Boot firmware (migration init moves these to FAT32 partition) + mkdir -p "$root/boot" + cp ${fw}/bootcode.bin "$root/boot/" + cp ${fw}/fixup4.dat "$root/boot/" + cp ${fw}/start4.elf "$root/boot/" + cp ${pkgs.raspberrypi-armstubs}/armstub8-gic.bin "$root/boot/" + cp ${ubootSD}/u-boot.bin "$root/boot/u-boot-rpi4.bin" + cp ${pkgs.ubootRaspberryPi3_64bit}/u-boot.bin "$root/boot/u-boot-rpi3.bin" + cp ${configTxt} "$root/boot/config.txt" + + # Device trees + cp ${fw}/bcm2711-rpi-4-b.dtb "$root/boot/" + cp ${fw}/bcm2711-rpi-400.dtb "$root/boot/" + cp ${fw}/bcm2711-rpi-cm4.dtb "$root/boot/" + cp ${fw}/bcm2710-rpi-3-b.dtb "$root/boot/" + cp ${fw}/bcm2710-rpi-3-b-plus.dtb "$root/boot/" + cp ${fw}/bcm2710-rpi-zero-2.dtb "$root/boot/" + cp ${fw}/bcm2710-rpi-zero-2-w.dtb "$root/boot/" + + # Bootloader config + mkdir -p "$root/boot/extlinux" + cat > "$root/boot/extlinux/extlinux.conf" < $out/tarball/pifinder-bootstrap.tar.zst) + echo "file system-tarball $out/tarball/pifinder-bootstrap.tar.zst" > $out/nix-support/hydra-build-products + ''; + }; + }; packages.aarch64-linux = { uboot-sd = ubootSD; uboot-netboot = ubootNetboot; diff --git a/nixos/pkgs/pifinder-src.nix b/nixos/pkgs/pifinder-src.nix index a2d41f585..34f6e532a 100644 --- a/nixos/pkgs/pifinder-src.nix +++ b/nixos/pkgs/pifinder-src.nix @@ -12,6 +12,20 @@ let url = "https://cdsarc.cds.unistra.fr/ftp/cats/I/239/hip_main.dat"; sha256 = "1q0n6sa55z92bad8gy6r9axkd802798nxkipjh6iciyn0jqspkjq"; }; + + # Stable astro data — catalogs, star patterns, ephemeris (~193MB, rarely changes) + astro-data = pkgs.stdenv.mkDerivation { + pname = "pifinder-astro-data"; + version = "1.0"; + src = ../../astro_data; + phases = [ "installPhase" ]; + installPhase = '' + mkdir -p $out + cp -r $src/* $out/ + cp ${hip_main} $out/hip_main.dat + ''; + }; + in pkgs.stdenv.mkDerivation { pname = "pifinder-src"; @@ -31,16 +45,17 @@ pkgs.stdenv.mkDerivation { rm -rf $out/.git $out/.github $out/nixos $out/result* $out/.venv rm -rf $out/case $out/docs $out/gerbers $out/kicad rm -rf $out/migration_source $out/pi_config_files $out/scripts - rm -rf $out/bin + rm -rf $out/bin $out/images + + # Replace astro_data with symlink to stable derivation + rm -rf $out/astro_data + ln -s ${astro-data} $out/astro_data # tetra3/cedar-solve is a git submodule — Nix doesn't include submodule # contents, so we fetch it separately and graft it into the source tree. rm -rf $out/python/PiFinder/tetra3 cp -r ${tetra3-src} $out/python/PiFinder/tetra3 - # Hipparcos catalog is gitignored (51MB), fetch and include for starfield plotting - cp ${hip_main} $out/astro_data/hip_main.dat - # Pre-compile .pyc bytecode so Python skips compilation at runtime chmod -R u+w $out/python python3 -m compileall -q $out/python diff --git a/nixos/services.nix b/nixos/services.nix index 0bd00bf38..b6086b66d 100644 --- a/nixos/services.nix +++ b/nixos/services.nix @@ -31,6 +31,11 @@ in { default = "github:mrosseel/PiFinder"; description = "GitHub flake URL for PiFinder repo (without branch/output)"; }; + bootstrapMode = lib.mkOption { + type = lib.types.bool; + default = false; + description = "Bootstrap mode: minimal system without PiFinder source, runs nixos-rebuild on first boot"; + }; }; config = { @@ -141,7 +146,11 @@ in { # --------------------------------------------------------------------------- # PiFinder source + data directory setup # --------------------------------------------------------------------------- - system.activationScripts.pifinder-home = lib.stringAfter [ "users" ] '' + system.activationScripts.pifinder-home = lib.stringAfter [ "users" ] ('' + # Create writable data directory + mkdir -p /home/pifinder/PiFinder_data + chown pifinder:users /home/pifinder/PiFinder_data + '' + lib.optionalString (!cfg.bootstrapMode) '' # Symlink immutable source tree from Nix store # Database is opened read-only, so no need for writable copy PFHOME=/home/pifinder/PiFinder @@ -153,11 +162,7 @@ in { # Create symlink to immutable Nix store path ln -sfT ${pifinder-src} "$PFHOME" - - # Create writable data directory - mkdir -p /home/pifinder/PiFinder_data - chown pifinder:users /home/pifinder/PiFinder_data - ''; + ''); # --------------------------------------------------------------------------- # Sudoers — pifinder user can start upgrade and restart services @@ -207,7 +212,7 @@ in { # --------------------------------------------------------------------------- # Cedar Detect star detection gRPC server # --------------------------------------------------------------------------- - systemd.services.cedar-detect = { + systemd.services.cedar-detect = lib.mkIf (!cfg.bootstrapMode) { description = "Cedar Detect Star Detection Server"; after = [ "basic.target" ]; wantedBy = [ "multi-user.target" ]; @@ -245,7 +250,7 @@ in { # --------------------------------------------------------------------------- # Main PiFinder application # --------------------------------------------------------------------------- - systemd.services.pifinder = { + systemd.services.pifinder = lib.mkIf (!cfg.bootstrapMode) { description = "PiFinder"; after = [ "basic.target" "cedar-detect.service" "gpsd.socket" ]; wants = [ "cedar-detect.service" "gpsd.socket" ]; @@ -290,7 +295,7 @@ in { # --------------------------------------------------------------------------- # PiFinder Safe NixOS Upgrade (test-then-switch) # --------------------------------------------------------------------------- - systemd.services.pifinder-upgrade = { + systemd.services.pifinder-upgrade = lib.mkIf (!cfg.bootstrapMode) { description = "PiFinder Safe NixOS Upgrade (test-then-switch)"; serviceConfig = { Type = "oneshot"; @@ -356,7 +361,7 @@ in { # --------------------------------------------------------------------------- # PiFinder Boot Health Watchdog # --------------------------------------------------------------------------- - systemd.services.pifinder-watchdog = { + systemd.services.pifinder-watchdog = lib.mkIf (!cfg.bootstrapMode) { description = "PiFinder Boot Health Watchdog"; after = [ "multi-user.target" "pifinder.service" ]; wantedBy = [ "multi-user.target" ]; @@ -503,5 +508,47 @@ in { }; }; }; + # --------------------------------------------------------------------------- + # Bootstrap: first-boot rebuild to full PiFinder system + # --------------------------------------------------------------------------- + systemd.services.pifinder-bootstrap = lib.mkIf cfg.bootstrapMode { + description = "PiFinder Bootstrap — first-boot nixos-rebuild"; + after = [ "network-online.target" ]; + wants = [ "network-online.target" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + TimeoutStartSec = "30min"; + }; + path = with pkgs; [ nixos-rebuild nix systemd coreutils ]; + script = '' + set -euo pipefail + MARKER="/var/lib/pifinder-migration/bootstrap-complete" + if [ -f "$MARKER" ]; then + echo "Bootstrap already completed, skipping." + exit 0 + fi + + echo "Waiting for network..." + for i in $(seq 1 60); do + if ping -c1 -W2 cache.nixos.org >/dev/null 2>&1; then + break + fi + sleep 5 + done + + REF=$(cat /var/lib/pifinder-migration/target-ref 2>/dev/null || echo "nixos") + FLAKE="${cfg.repoUrl}/''${REF}#pifinder" + echo "Rebuilding to $FLAKE" + + nixos-rebuild switch --flake "$FLAKE" --refresh + + mkdir -p /var/lib/pifinder-migration + touch "$MARKER" + echo "Bootstrap complete." + ''; + }; + }; # config } From f804d57998af8ea421c6be7b82b66d73ffb5b265 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Thu, 12 Feb 2026 17:05:14 +0100 Subject: [PATCH 070/144] refactor: remove bootstrapMode, use full system for migration tarball MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Migration tarball is now a complete v2.5.0 system — no two-stage first-boot rebuild needed. Users get a working PiFinder immediately after migration. Co-Authored-By: Claude Opus 4.6 --- flake.nix | 16 +----------- nixos/services.nix | 61 ++++++---------------------------------------- 2 files changed, 8 insertions(+), 69 deletions(-) diff --git a/flake.nix b/flake.nix index d45c48778..66ca2aaeb 100644 --- a/flake.nix +++ b/flake.nix @@ -269,33 +269,19 @@ ''; }; - # Bootstrap system — minimal NixOS without PiFinder source, for migration tarball - mkPifinderBootstrap = nixpkgs.lib.nixosSystem { - system = "aarch64-linux"; - modules = commonModules ++ [ - { pifinder.bootstrapMode = true; } - ({ lib, ... }: { - boot.supportedFilesystems = lib.mkForce [ "vfat" "ext4" ]; - boot.loader.timeout = 0; - }) - ]; - }; - in { nixosConfigurations = { # SD card boot — camera baked into DT, switched via specialisations pifinder = mkPifinderSystem {}; # NFS netboot — for development on proxnix pifinder-netboot = mkPifinderNetboot; - # Bootstrap — for migration tarball (no pifinder-src) - pifinder-bootstrap = mkPifinderBootstrap; }; images = { # SD card image pifinder = (mkPifinderSystem { includeSDImage = true; }).config.system.build.sdImage; # Migration bootstrap tarball bootstrap = let - system = mkPifinderBootstrap; + system = mkPifinderSystem {}; toplevel = system.config.system.build.toplevel; pkgs = import nixpkgs { system = "aarch64-linux"; }; closure = pkgs.closureInfo { rootPaths = [ toplevel ]; }; diff --git a/nixos/services.nix b/nixos/services.nix index b6086b66d..feb075a09 100644 --- a/nixos/services.nix +++ b/nixos/services.nix @@ -31,11 +31,6 @@ in { default = "github:mrosseel/PiFinder"; description = "GitHub flake URL for PiFinder repo (without branch/output)"; }; - bootstrapMode = lib.mkOption { - type = lib.types.bool; - default = false; - description = "Bootstrap mode: minimal system without PiFinder source, runs nixos-rebuild on first boot"; - }; }; config = { @@ -146,11 +141,11 @@ in { # --------------------------------------------------------------------------- # PiFinder source + data directory setup # --------------------------------------------------------------------------- - system.activationScripts.pifinder-home = lib.stringAfter [ "users" ] ('' + system.activationScripts.pifinder-home = lib.stringAfter [ "users" ] '' # Create writable data directory mkdir -p /home/pifinder/PiFinder_data chown pifinder:users /home/pifinder/PiFinder_data - '' + lib.optionalString (!cfg.bootstrapMode) '' + # Symlink immutable source tree from Nix store # Database is opened read-only, so no need for writable copy PFHOME=/home/pifinder/PiFinder @@ -162,7 +157,7 @@ in { # Create symlink to immutable Nix store path ln -sfT ${pifinder-src} "$PFHOME" - ''); + ''; # --------------------------------------------------------------------------- # Sudoers — pifinder user can start upgrade and restart services @@ -212,7 +207,7 @@ in { # --------------------------------------------------------------------------- # Cedar Detect star detection gRPC server # --------------------------------------------------------------------------- - systemd.services.cedar-detect = lib.mkIf (!cfg.bootstrapMode) { + systemd.services.cedar-detect = { description = "Cedar Detect Star Detection Server"; after = [ "basic.target" ]; wantedBy = [ "multi-user.target" ]; @@ -250,7 +245,7 @@ in { # --------------------------------------------------------------------------- # Main PiFinder application # --------------------------------------------------------------------------- - systemd.services.pifinder = lib.mkIf (!cfg.bootstrapMode) { + systemd.services.pifinder = { description = "PiFinder"; after = [ "basic.target" "cedar-detect.service" "gpsd.socket" ]; wants = [ "cedar-detect.service" "gpsd.socket" ]; @@ -295,7 +290,7 @@ in { # --------------------------------------------------------------------------- # PiFinder Safe NixOS Upgrade (test-then-switch) # --------------------------------------------------------------------------- - systemd.services.pifinder-upgrade = lib.mkIf (!cfg.bootstrapMode) { + systemd.services.pifinder-upgrade = { description = "PiFinder Safe NixOS Upgrade (test-then-switch)"; serviceConfig = { Type = "oneshot"; @@ -361,7 +356,7 @@ in { # --------------------------------------------------------------------------- # PiFinder Boot Health Watchdog # --------------------------------------------------------------------------- - systemd.services.pifinder-watchdog = lib.mkIf (!cfg.bootstrapMode) { + systemd.services.pifinder-watchdog = { description = "PiFinder Boot Health Watchdog"; after = [ "multi-user.target" "pifinder.service" ]; wantedBy = [ "multi-user.target" ]; @@ -508,47 +503,5 @@ in { }; }; }; - # --------------------------------------------------------------------------- - # Bootstrap: first-boot rebuild to full PiFinder system - # --------------------------------------------------------------------------- - systemd.services.pifinder-bootstrap = lib.mkIf cfg.bootstrapMode { - description = "PiFinder Bootstrap — first-boot nixos-rebuild"; - after = [ "network-online.target" ]; - wants = [ "network-online.target" ]; - wantedBy = [ "multi-user.target" ]; - serviceConfig = { - Type = "oneshot"; - RemainAfterExit = true; - TimeoutStartSec = "30min"; - }; - path = with pkgs; [ nixos-rebuild nix systemd coreutils ]; - script = '' - set -euo pipefail - MARKER="/var/lib/pifinder-migration/bootstrap-complete" - if [ -f "$MARKER" ]; then - echo "Bootstrap already completed, skipping." - exit 0 - fi - - echo "Waiting for network..." - for i in $(seq 1 60); do - if ping -c1 -W2 cache.nixos.org >/dev/null 2>&1; then - break - fi - sleep 5 - done - - REF=$(cat /var/lib/pifinder-migration/target-ref 2>/dev/null || echo "nixos") - FLAKE="${cfg.repoUrl}/''${REF}#pifinder" - echo "Rebuilding to $FLAKE" - - nixos-rebuild switch --flake "$FLAKE" --refresh - - mkdir -p /var/lib/pifinder-migration - touch "$MARKER" - echo "Bootstrap complete." - ''; - }; - }; # config } From fdb9300c24f6c9d310ea03f9b2c180241f7ae1c2 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Thu, 12 Feb 2026 17:08:55 +0100 Subject: [PATCH 071/144] fix: keep welcome.png in pifinder-src (needed at runtime) images/ was fully stripped but console.py and splash.py load images/welcome.png on startup. Keep that file, strip the rest. Co-Authored-By: Claude Opus 4.6 --- nixos/pkgs/pifinder-src.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nixos/pkgs/pifinder-src.nix b/nixos/pkgs/pifinder-src.nix index 34f6e532a..3a65717f0 100644 --- a/nixos/pkgs/pifinder-src.nix +++ b/nixos/pkgs/pifinder-src.nix @@ -45,7 +45,10 @@ pkgs.stdenv.mkDerivation { rm -rf $out/.git $out/.github $out/nixos $out/result* $out/.venv rm -rf $out/case $out/docs $out/gerbers $out/kicad rm -rf $out/migration_source $out/pi_config_files $out/scripts - rm -rf $out/bin $out/images + rm -rf $out/bin + + # Strip doc photos from images/ but keep welcome.png (used at runtime) + find $out/images -type f ! -name 'welcome.png' -delete # Replace astro_data with symlink to stable derivation rm -rf $out/astro_data From 57cf44c5a2d48257fd3ed83f0e0a2b04dd9868be Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Thu, 12 Feb 2026 17:15:26 +0100 Subject: [PATCH 072/144] feat: add nix-path-registration first-boot service After migration from Raspbian, the tarball includes /nix-path-registration with Nix store path data. This oneshot service loads it into the Nix DB on first boot so nix-store and nixos-rebuild work correctly. Uses ConditionPathExists so it's a no-op on normal boots. Co-Authored-By: Claude Opus 4.6 --- nixos/services.nix | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/nixos/services.nix b/nixos/services.nix index feb075a09..e934c10f1 100644 --- a/nixos/services.nix +++ b/nixos/services.nix @@ -138,6 +138,28 @@ in { ''; }; + # --------------------------------------------------------------------------- + # Nix DB registration (first boot after migration) + # --------------------------------------------------------------------------- + # The migration tarball includes /nix-path-registration with store path data. + # Load it into the Nix DB so nix-store and nixos-rebuild work correctly. + systemd.services.nix-path-registration = { + description = "Load Nix store path registration from migration"; + after = [ "local-fs.target" ]; + before = [ "nix-daemon.service" ]; + wantedBy = [ "multi-user.target" ]; + unitConfig.ConditionPathExists = "/nix-path-registration"; + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + }; + path = with pkgs; [ nix coreutils ]; + script = '' + nix-store --load-db < /nix-path-registration + rm /nix-path-registration + ''; + }; + # --------------------------------------------------------------------------- # PiFinder source + data directory setup # --------------------------------------------------------------------------- From 3cd23c7dd7cec08e79f8a3cd070374912085d5da Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Fri, 13 Feb 2026 04:01:32 +0100 Subject: [PATCH 073/144] feat: store-path-based NixOS upgrade Replace nixos-rebuild with direct nix store path deployment: - CI builds push to Cachix and stamp pifinder-build.json per branch - Upgrade service uses nix copy + switch-to-configuration (no OOM) - Software UI resolves store paths from per-branch build metadata - Delete versions.json (replaced by pifinder-build.json) Co-Authored-By: Claude Opus 4.6 --- .github/workflows/build.yml | 74 ++- .github/workflows/release.yml | 78 +-- nixos/services.nix | 59 ++- python/PiFinder/camera_interface.py | 719 +++++++++++++--------------- python/PiFinder/catalogs.py | 4 +- python/PiFinder/comets.py | 4 +- python/PiFinder/server.py | 7 +- python/PiFinder/sys_utils.py | 23 +- python/PiFinder/ui/software.py | 69 ++- python/tests/test_software.py | 153 +++++- python/views/network.tpl | 3 + version.txt | 2 +- versions.json | 26 - 13 files changed, 670 insertions(+), 551 deletions(-) delete mode 100644 versions.json diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 01acc60f2..3b1faed0f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,11 +13,13 @@ jobs: if: | github.event_name == 'push' || github.event_name == 'workflow_dispatch' || - contains(github.event.pull_request.labels.*.name, 'preview') + contains(github.event.pull_request.labels.*.name, 'preview') || + contains(github.event.pull_request.labels.*.name, 'testable') runs-on: [self-hosted, aarch64] timeout-minutes: 30 outputs: success: ${{ steps.build.outcome == 'success' }} + store_path: ${{ steps.push.outputs.store_path }} steps: - uses: actions/checkout@v4 @@ -26,21 +28,19 @@ jobs: name: pifinder authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' - - name: Build NixOS system closures + - name: Build NixOS system closure id: build run: | nix build .#nixosConfigurations.pifinder.config.system.build.toplevel \ -L --no-link - nix build .#nixosConfigurations.pifinder-netboot.config.system.build.toplevel \ - -L --no-link - name: Push to Cachix - if: github.event_name != 'pull_request' + id: push run: | - nix build .#nixosConfigurations.pifinder.config.system.build.toplevel \ - --json | jq -r '.[].outputs.out' | cachix push pifinder - nix build .#nixosConfigurations.pifinder-netboot.config.system.build.toplevel \ - --json | jq -r '.[].outputs.out' | cachix push pifinder + STORE_PATH=$(nix build .#nixosConfigurations.pifinder.config.system.build.toplevel \ + --json | jq -r '.[].outputs.out') + echo "$STORE_PATH" | cachix push pifinder + echo "store_path=$STORE_PATH" >> "$GITHUB_OUTPUT" # Fallback to QEMU emulation if Pi5 unavailable build-emulated: @@ -48,6 +48,8 @@ jobs: if: failure() || cancelled() runs-on: ubuntu-latest timeout-minutes: 360 + outputs: + store_path: ${{ steps.push.outputs.store_path }} steps: - uses: actions/checkout@v4 @@ -65,59 +67,45 @@ jobs: - name: Register QEMU binfmt for aarch64 run: sudo apt-get update && sudo apt-get install -y qemu-user-static - - name: Build NixOS system closures + - name: Build NixOS system closure run: | nix build .#nixosConfigurations.pifinder.config.system.build.toplevel \ --system aarch64-linux \ -L --no-link - nix build .#nixosConfigurations.pifinder-netboot.config.system.build.toplevel \ - --system aarch64-linux \ - -L --no-link - name: Push to Cachix - if: github.event_name != 'pull_request' + id: push run: | - nix build .#nixosConfigurations.pifinder.config.system.build.toplevel \ + STORE_PATH=$(nix build .#nixosConfigurations.pifinder.config.system.build.toplevel \ --system aarch64-linux \ - --json | jq -r '.[].outputs.out' | cachix push pifinder - nix build .#nixosConfigurations.pifinder-netboot.config.system.build.toplevel \ - --system aarch64-linux \ - --json | jq -r '.[].outputs.out' | cachix push pifinder + --json | jq -r '.[].outputs.out') + echo "$STORE_PATH" | cachix push pifinder + echo "store_path=$STORE_PATH" >> "$GITHUB_OUTPUT" - update-unstable: + # Commit pifinder-build.json with store path to the same branch + stamp-build: needs: [build-native, build-emulated] - if: always() && github.event_name == 'push' && github.ref == 'refs/heads/main' && (needs.build-native.result == 'success' || needs.build-emulated.result == 'success') + if: always() && (needs.build-native.result == 'success' || needs.build-emulated.result == 'success') runs-on: ubuntu-latest + permissions: + contents: write steps: - uses: actions/checkout@v4 with: + ref: ${{ github.head_ref || github.ref_name }} token: ${{ secrets.GITHUB_TOKEN }} - - name: Update unstable channel - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Write pifinder-build.json run: | - DATE=$(date -I) - - # Update main entry - jq --arg d "$DATE" \ - '.channels.unstable.versions = [{version:"main", ref:"main", date:$d, notes:"Latest development"}]' \ - versions.json > tmp.json && mv tmp.json versions.json - - # Add all preview-labeled PRs (no limit) - gh pr list --label preview --json number,title,headRefOid | \ - jq --arg d "$DATE" '.[] | {version:("PR #" + (.number|tostring)), ref:.headRefOid, date:$d, notes:.title}' | \ - jq -s '.' > prs.json - - jq --slurpfile prs prs.json '.channels.unstable.versions += $prs[0]' \ - versions.json > tmp.json && mv tmp.json versions.json - - rm prs.json + STORE_PATH="${{ needs.build-native.outputs.store_path || needs.build-emulated.outputs.store_path }}" + VERSION=$(cat version.txt | tr -d '[:space:]') + jq -n --arg sp "$STORE_PATH" --arg v "$VERSION" \ + '{store_path: $sp, version: $v}' > pifinder-build.json - - name: Commit versions.json + - name: Commit pifinder-build.json run: | git config user.name "github-actions[bot]" git config user.email "github-actions[bot]@users.noreply.github.com" - git add versions.json - git diff --staged --quiet || git commit -m "chore: update unstable" + git add pifinder-build.json + git diff --staged --quiet || git commit -m "chore: stamp build [skip ci]" git push diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e33debd27..213b8787e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -32,14 +32,6 @@ jobs: ref: ${{ inputs.source_branch }} token: ${{ secrets.GITHUB_TOKEN }} - - name: Create tag - run: | - TAG="v${{ inputs.version }}" - [[ "${{ inputs.type }}" == "beta" ]] && TAG="${TAG}-beta" - git tag "$TAG" - git push origin "$TAG" - echo "TAG=$TAG" >> $GITHUB_ENV - - uses: cachix/install-nix-action@v27 with: extra_nix_config: | @@ -55,49 +47,57 @@ jobs: run: sudo apt-get update && sudo apt-get install -y qemu-user-static - name: Build and push closure to Cachix + id: push run: | - nix build .#nixosConfigurations.pifinder.config.system.build.toplevel \ - --system aarch64-linux -L - nix build .#nixosConfigurations.pifinder.config.system.build.toplevel \ - --system aarch64-linux --json | jq -r '.[].outputs.out' | cachix push pifinder + STORE_PATH=$(nix build .#nixosConfigurations.pifinder.config.system.build.toplevel \ + --system aarch64-linux -L --json | jq -r '.[].outputs.out') + echo "$STORE_PATH" | cachix push pifinder + echo "store_path=$STORE_PATH" >> "$GITHUB_OUTPUT" + + - name: Stamp pifinder-build.json and create tag + run: | + TAG="v${{ inputs.version }}" + [[ "${{ inputs.type }}" == "beta" ]] && TAG="${TAG}-beta" + + STORE_PATH="${{ steps.push.outputs.store_path }}" + VERSION="${{ inputs.version }}" + jq -n --arg sp "$STORE_PATH" --arg v "$VERSION" \ + '{store_path: $sp, version: $v}' > pifinder-build.json + + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + git add pifinder-build.json + git diff --staged --quiet || git commit -m "release: stamp build for $TAG [skip ci]" + git push origin "${{ inputs.source_branch }}" + + git tag "$TAG" + git push origin "$TAG" + echo "TAG=$TAG" >> $GITHUB_ENV - name: Build SD image run: | nix build .#images.pifinder \ --system aarch64-linux \ - -L -o result - # Rename image to include version + -L -o result-sd mkdir -p release - for f in result/sd-image/*.img.zst; do + for f in result-sd/sd-image/*.img.zst; do cp "$f" "release/pifinder-${TAG}.img.zst" done - - name: Update versions.json on main + - name: Build bootstrap tarball run: | - git fetch origin main - git checkout main - - DATE=$(date -I) - CHANNEL="${{ inputs.type }}" - VERSION="${{ inputs.version }}" - NOTES="${{ inputs.notes }}" - REF="$TAG" - - jq --arg v "$VERSION" --arg r "$REF" --arg d "$DATE" --arg n "$NOTES" --arg c "$CHANNEL" \ - '.channels[$c].versions = ([{version:$v, ref:$r, date:$d, notes:$n}] + .channels[$c].versions)[:3]' \ - versions.json > tmp.json && mv tmp.json versions.json - - git config user.name "github-actions[bot]" - git config user.email "github-actions[bot]@users.noreply.github.com" - git add versions.json - git commit -m "release: $TAG" - git push origin main + nix build .#images.bootstrap \ + --system aarch64-linux \ + -L -o result-bootstrap + for f in result-bootstrap/tarball/*.tar.zst; do + cp "$f" "release/pifinder-bootstrap-${TAG}.tar.zst" + done - - name: Upload SD image artifact + - name: Upload build artifacts uses: actions/upload-artifact@v4 with: - name: pifinder-sd-image - path: release/pifinder-*.img.zst + name: pifinder-release-${{ env.TAG }} + path: release/pifinder-*.zst retention-days: 90 - name: Create GitHub Release @@ -107,4 +107,6 @@ jobs: name: PiFinder ${{ env.TAG }} body: ${{ inputs.notes }} prerelease: ${{ inputs.type == 'beta' }} - files: release/pifinder-*.img.zst + files: | + release/pifinder-*.img.zst + release/pifinder-bootstrap-*.tar.zst diff --git a/nixos/services.nix b/nixos/services.nix index e934c10f1..7f83d467b 100644 --- a/nixos/services.nix +++ b/nixos/services.nix @@ -26,11 +26,6 @@ in { default = false; description = "Enable development mode (NFS netboot support, etc.)"; }; - repoUrl = lib.mkOption { - type = lib.types.str; - default = "github:mrosseel/PiFinder"; - description = "GitHub flake URL for PiFinder repo (without branch/output)"; - }; }; config = { @@ -111,7 +106,7 @@ in { # Tmpfiles — runtime directory for upgrade ref file # --------------------------------------------------------------------------- systemd.tmpfiles.rules = [ - "d /run/pifinder 0755 pifinder pifinder -" + "d /run/pifinder 0755 pifinder users -" ]; # --------------------------------------------------------------------------- @@ -211,17 +206,18 @@ in { security.sudo.extraRules = [{ users = [ "pifinder" ]; commands = [ + { command = "/run/current-system/sw/bin/systemctl start --no-block pifinder-upgrade.service"; options = [ "NOPASSWD" ]; } { command = "/run/current-system/sw/bin/systemctl start pifinder-upgrade.service"; options = [ "NOPASSWD" ]; } { command = "/run/current-system/sw/bin/systemctl reset-failed pifinder-upgrade.service"; options = [ "NOPASSWD" ]; } { command = "/run/current-system/sw/bin/systemctl restart pifinder.service"; options = [ "NOPASSWD" ]; } { command = "/run/current-system/sw/bin/systemctl stop pifinder.service"; options = [ "NOPASSWD" ]; } { command = "/run/current-system/sw/bin/systemctl start pifinder.service"; options = [ "NOPASSWD" ]; } { command = "/run/current-system/sw/bin/systemctl restart avahi-daemon.service"; options = [ "NOPASSWD" ]; } - { command = "/run/current-system/sw/bin/nixos-rebuild *"; options = [ "NOPASSWD" ]; } { command = "/run/current-system/sw/bin/shutdown *"; options = [ "NOPASSWD" ]; } { command = "/run/current-system/sw/bin/chpasswd"; options = [ "NOPASSWD" ]; } { command = "/run/current-system/sw/bin/dmesg"; options = [ "NOPASSWD" ]; } { command = "/run/current-system/sw/bin/hostnamectl *"; options = [ "NOPASSWD" ]; } + { command = "/run/current-system/sw/bin/hostname *"; options = [ "NOPASSWD" ]; } { command = "/run/current-system/sw/bin/pifinder-switch-camera *"; options = [ "NOPASSWD" ]; } ]; }]; @@ -319,14 +315,13 @@ in { RemainAfterExit = true; TimeoutStartSec = "10min"; }; - path = with pkgs; [ nixos-rebuild nix systemd coreutils ]; + path = with pkgs; [ nix systemd coreutils ]; script = '' set -euo pipefail - REF=$(cat /run/pifinder/upgrade-ref 2>/dev/null || echo "release") - if [[ "$REF" == github:* ]]; then - FLAKE="$REF" - else - FLAKE="${cfg.repoUrl}/''${REF}#pifinder" + STORE_PATH=$(cat /run/pifinder/upgrade-ref 2>/dev/null || true) + if [ -z "$STORE_PATH" ] || [[ "$STORE_PATH" != /nix/store/* ]]; then + echo "ERROR: Invalid store path: $STORE_PATH" + exit 1 fi # Pre-flight: check disk space (need at least 500MB) @@ -336,19 +331,23 @@ in { exit 1 fi - echo "Upgrading to $FLAKE" + echo "Upgrading to $STORE_PATH" + + echo "Phase 1: Download from Cachix" + nix copy --from https://pifinder.cachix.org "$STORE_PATH" - echo "Phase 1: Download and activate (test mode — bootloader untouched)" - nixos-rebuild test --flake "$FLAKE" --refresh + echo "Phase 2: Activate (test mode — bootloader untouched)" + nix-env -p /nix/var/nix/profiles/system --set "$STORE_PATH" + "$STORE_PATH/bin/switch-to-configuration" test - echo "Phase 2: Verifying pifinder.service health" + echo "Phase 3: Verifying pifinder.service health" systemctl restart pifinder.service for i in $(seq 1 24); do if systemctl is-active --quiet pifinder.service; then echo "pifinder.service active after $((i * 5))s" - echo "Phase 3: Persist to bootloader" - nixos-rebuild switch --flake "$FLAKE" + echo "Phase 4: Persist to bootloader" + "$STORE_PATH/bin/switch-to-configuration" switch # Restore camera specialisation if not default CAM=$(cat /var/lib/pifinder/camera-type 2>/dev/null || echo "${cfg.cameraType}") @@ -360,7 +359,7 @@ in { fi fi - echo "Phase 4: Cleanup old generations" + echo "Phase 5: Cleanup old generations" nix-env --delete-generations +2 -p /nix/var/nix/profiles/system || true nix-collect-garbage || true @@ -506,6 +505,26 @@ in { }; }; + # Apply user-chosen hostname from PiFinder_data (survives NixOS rebuilds) + systemd.services.pifinder-hostname = { + description = "Apply PiFinder custom hostname"; + after = [ "avahi-daemon.service" ]; + wants = [ "avahi-daemon.service" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + ExecStart = pkgs.writeShellScript "apply-hostname" '' + f=/home/pifinder/PiFinder_data/hostname + [ -f "$f" ] || exit 0 + name=$(cat "$f") + [ -n "$name" ] || exit 0 + /run/current-system/sw/bin/hostname "$name" + /run/current-system/sw/bin/avahi-set-host-name "$name" + ''; + }; + }; + # Don't block boot waiting for network — NM still works, just async systemd.services.NetworkManager-wait-online.enable = false; diff --git a/python/PiFinder/camera_interface.py b/python/PiFinder/camera_interface.py index 0f6c68c27..67d630ee5 100644 --- a/python/PiFinder/camera_interface.py +++ b/python/PiFinder/camera_interface.py @@ -13,6 +13,7 @@ import logging import os import queue +import threading import time from typing import Tuple, Optional @@ -37,12 +38,16 @@ class CameraInterface: """The CameraInterface interface.""" _camera_started = False + _debug = False _save_next_to = None # Filename to save next capture to (None = don't save) _auto_exposure_enabled = False _auto_exposure_mode = "pid" # "pid" or "snr" _auto_exposure_pid: Optional[ExposurePIDController] = None _auto_exposure_snr: Optional[ExposureSNRController] = None _last_solve_time: Optional[float] = None + _command_queue: Optional[queue.Queue] = None + _console_queue: Optional[queue.Queue] = None + _cfg = None def initialize(self) -> None: pass @@ -79,12 +84,335 @@ def start_camera(self) -> None: def stop_camera(self) -> None: pass + def _capture_with_timeout(self, timeout=10) -> Optional[Image.Image]: + """Attempt capture with timeout. + + Returns the captured image, or None if capture hung (V4L2 stuck). + Uses a daemon thread so a hung capture doesn't block shutdown. + """ + result = [None] + exc = [None] + + def _do_capture(): + try: + result[0] = self.capture() + except Exception as e: + exc[0] = e + + t = threading.Thread(target=_do_capture, daemon=True) + t.start() + t.join(timeout) + + if t.is_alive(): + return None + if exc[0]: + raise exc[0] + return result[0] + + def _process_pending_commands(self): + """Drain and process all pending commands from the queue. + + Called at the top of each camera loop iteration so commands are + handled even when capture() blocks on V4L2 hardware. + """ + while True: + try: + command = self._command_queue.get_nowait() + except queue.Empty: + break + + try: + if command == "debug": + self._debug = not self._debug + + elif command.startswith("set_exp"): + exp_value = command.split(":")[1] + if exp_value == "auto": + self._auto_exposure_enabled = True + self._last_solve_time = None + if self._auto_exposure_pid is None: + self._auto_exposure_pid = ExposurePIDController() + else: + self._auto_exposure_pid.reset() + self._console_queue.put("CAM: Auto-Exposure Enabled") + logger.info("Auto-exposure mode enabled") + else: + self._auto_exposure_enabled = False + self.exposure_time = int(exp_value) + self.set_camera_config(self.exposure_time, self.gain) + self._cfg.set_option("camera_exp", self.exposure_time) + self._console_queue.put( + "CAM: Exp=" + str(self.exposure_time) + ) + logger.info( + f"Manual exposure set: {self.exposure_time}µs" + ) + + elif command.startswith("set_gain"): + old_gain = self.gain + self.gain = int(command.split(":")[1]) + self.exposure_time, self.gain = self.set_camera_config( + self.exposure_time, self.gain + ) + self._console_queue.put("CAM: Gain=" + str(self.gain)) + logger.info(f"Gain changed: {old_gain}x → {self.gain}x") + + elif command.startswith("set_ae_handler"): + handler_type = command.split(":")[1] + if self._auto_exposure_pid is not None: + new_handler = None + if handler_type == "sweep": + new_handler = SweepZeroStarHandler( + min_exposure=self._auto_exposure_pid.min_exposure, + max_exposure=self._auto_exposure_pid.max_exposure, + ) + elif handler_type == "exponential": + new_handler = ExponentialSweepZeroStarHandler( + min_exposure=self._auto_exposure_pid.min_exposure, + max_exposure=self._auto_exposure_pid.max_exposure, + ) + elif handler_type == "reset": + new_handler = ResetZeroStarHandler( + reset_exposure=400000 + ) + elif handler_type == "histogram": + new_handler = HistogramZeroStarHandler( + min_exposure=self._auto_exposure_pid.min_exposure, + max_exposure=self._auto_exposure_pid.max_exposure, + ) + else: + logger.warning( + f"Unknown zero-star handler type: {handler_type}" + ) + + if new_handler is not None: + self._auto_exposure_pid._zero_star_handler = ( + new_handler + ) + self._console_queue.put( + f"CAM: AE Handler={handler_type}" + ) + logger.info( + f"Auto-exposure zero-star handler changed to: {handler_type}" + ) + else: + logger.warning( + "Cannot set AE handler: auto-exposure not initialized" + ) + + elif command.startswith("set_ae_mode"): + mode = command.split(":")[1] + if mode in ["pid", "snr"]: + self._auto_exposure_mode = mode + self._console_queue.put( + f"CAM: AE Mode={mode.upper()}" + ) + logger.info( + f"Auto-exposure mode changed to: {mode.upper()}" + ) + else: + logger.warning( + f"Unknown auto-exposure mode: {mode} (valid: pid, snr)" + ) + + elif command == "exp_up" or command == "exp_dn": + self._auto_exposure_enabled = False + if command == "exp_up": + self.exposure_time = int(self.exposure_time * 1.25) + else: + self.exposure_time = int(self.exposure_time * 0.75) + self.set_camera_config(self.exposure_time, self.gain) + self._console_queue.put( + "CAM: Exp=" + str(self.exposure_time) + ) + + elif command == "exp_save": + self._auto_exposure_enabled = False + self._cfg.set_option("camera_exp", self.exposure_time) + self._cfg.set_option("camera_gain", int(self.gain)) + self._console_queue.put( + f"CAM: Exp Saved ({self.exposure_time}µs)" + ) + logger.info( + f"Exposure saved and auto-exposure disabled: {self.exposure_time}µs" + ) + + elif command.startswith("save"): + self._save_next_to = command.split(":")[1] + self._console_queue.put("CAM: Save flag set") + + elif ( + command.startswith("capture") + and command != "capture_exp_sweep" + ): + captured_image = self.capture() + self._camera_image.paste(captured_image) + + if self._save_next_to: + filename = ( + f"{utils.data_dir}/captures/{self._save_next_to}" + ) + if not filename.endswith(".png"): + filename += ".png" + self.capture_file(filename) + + raw_filename = filename.replace(".png", ".tiff") + if not raw_filename.endswith(".tiff"): + raw_filename += ".tiff" + self.capture_raw_file(raw_filename) + + self._console_queue.put("CAM: Captured + Saved") + self._save_next_to = None + else: + self._console_queue.put("CAM: Captured") + + elif command.startswith("capture_exp_sweep"): + self._run_exposure_sweep(command) + + elif command.startswith("stop"): + self.stop_camera() + self._console_queue.put("CAM: Stopped camera") + + elif command.startswith("start"): + self.start_camera() + self._console_queue.put("CAM: Started camera") + + except ValueError as e: + logger.error( + f"Error processing camera command '{command}': {str(e)}" + ) + + def _run_exposure_sweep(self, command): + """Capture exposure sweep for SQM testing.""" + reference_sqm = None + if ":" in command: + try: + reference_sqm = float(command.split(":")[1]) + logger.info(f"Reference SQM: {reference_sqm:.2f}") + except (ValueError, IndexError): + logger.warning("Invalid reference SQM in command") + + logger.info("Starting exposure sweep capture (100 image pairs)") + self._console_queue.put("CAM: Starting sweep...") + + original_exposure = self.exposure_time + original_gain = self.gain + original_ae_enabled = self._auto_exposure_enabled + + self._auto_exposure_enabled = False + + min_exp = 25000 + max_exp = 1000000 + num_images = 20 + + sweep_exposures = generate_exposure_sweep(min_exp, max_exp, num_images) + + gps_time = self.shared_state.datetime() + if gps_time: + timestamp = gps_time.strftime("%Y%m%d_%H%M%S") + else: + timestamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S") + logger.warning( + "GPS time not available, using Pi system time for sweep directory name" + ) + + from pathlib import Path + + sweep_dir = Path(f"{utils.data_dir}/captures/sweep_{timestamp}") + sweep_dir.mkdir(parents=True, exist_ok=True) + + logger.info(f"Saving sweep to: {sweep_dir}") + self._console_queue.put("CAM: Starting sweep...") + + for i, exp_us in enumerate(sweep_exposures, 1): + self._console_queue.put(f"CAM: Sweep {i}/{num_images}") + + self.exposure_time = exp_us + self.set_camera_config(self.exposure_time, self.gain) + + logger.debug(f"Flushing camera buffer for {exp_us}µs exposure") + _ = self.capture() + _ = self.capture() + + exp_ms = exp_us / 1000 + + processed_filename = ( + sweep_dir / f"img_{i:03d}_{exp_ms:.2f}ms_processed.png" + ) + processed_img = self.capture() + processed_img.save(str(processed_filename)) + + raw_filename = ( + sweep_dir / f"img_{i:03d}_{exp_ms:.2f}ms_raw.tiff" + ) + self.capture_raw_file(str(raw_filename)) + + logger.debug( + f"Captured sweep images {i}/{num_images}: {exp_ms:.2f}ms (PNG+TIFF)" + ) + + self.exposure_time = original_exposure + self.gain = original_gain + self._auto_exposure_enabled = original_ae_enabled + self.set_camera_config(self.exposure_time, self.gain) + + try: + from PiFinder.sqm.save_sweep_metadata import save_sweep_metadata + + gps_datetime = self.shared_state.datetime() + location = self.shared_state.location() + + solve_state = self.shared_state.solution() + ra_deg = None + dec_deg = None + altitude_deg = None + azimuth_deg = None + + if solve_state is not None: + ra_deg = solve_state.get("RA") + dec_deg = solve_state.get("Dec") + altitude_deg = solve_state.get("Alt") + azimuth_deg = solve_state.get("Az") + + save_sweep_metadata( + sweep_dir=sweep_dir, + observer_lat=location.lat, + observer_lon=location.lon, + observer_altitude_m=location.altitude, + gps_datetime=gps_datetime.isoformat() + if gps_datetime + else None, + reference_sqm=reference_sqm, + ra_deg=ra_deg, + dec_deg=dec_deg, + altitude_deg=altitude_deg, + azimuth_deg=azimuth_deg, + notes=f"Exposure sweep: {num_images} images, {min_exp/1000:.1f}-{max_exp/1000:.1f}ms", + ) + logger.info( + f"Successfully saved sweep metadata to {sweep_dir}/sweep_metadata.json" + ) + except Exception as e: + logger.error( + f"Failed to save sweep metadata: {e}", exc_info=True + ) + + self._console_queue.put("CAM: Sweep done!") + logger.info( + f"Exposure sweep completed: {num_images} image pairs in {sweep_dir}" + ) + def get_image_loop( self, shared_state, camera_image, command_queue, console_queue, cfg ): try: - # Store shared_state for access by capture() methods + # Store refs for access by _process_pending_commands and helpers self.shared_state = shared_state + self._camera_image = camera_image + self._command_queue = command_queue + self._console_queue = console_queue + self._cfg = cfg + self._debug = False # Store camera type in shared state for SQM calibration camera_type_str = self.get_cam_type() # e.g., "PI imx296", "PI hq" @@ -94,8 +422,6 @@ def get_image_loop( shared_state.set_camera_type(camera_type) logger.info(f"Camera type set to: {camera_type}") - debug = False - # Check if auto-exposure was previously enabled in config config_exp = cfg.get_option("camera_exp") if config_exp == "auto": @@ -122,19 +448,7 @@ def get_image_loop( sleep_delay = 60 was_sleeping = False while True: - # Check for mode-switch commands before capture (capture may block) - pending = [] - try: - while True: - cmd = command_queue.get_nowait() - if cmd == "debug": - debug = not debug - else: - pending.append(cmd) - except queue.Empty: - pass - for cmd in pending: - command_queue.put(cmd) + self._process_pending_commands() sleeping = state_utils.sleep_for_framerate( shared_state, limit_framerate=False @@ -159,8 +473,14 @@ def get_image_loop( imu_start = shared_state.imu() image_start_time = time.time() if self._camera_started: - if not debug: - base_image = self.capture() + if not self._debug: + base_image = self._capture_with_timeout() + if base_image is None: + logger.warning( + "Camera capture timed out — switching to test mode" + ) + self._debug = True + continue base_image = base_image.convert("L") rotate_amount = 0 @@ -290,367 +610,6 @@ def get_image_loop( ) self._last_solve_time = solve_attempt_time - # Loop over any pending commands - # There may be more than one! - command = True - while command: - try: - command = command_queue.get(block=True, timeout=0.1) - except queue.Empty: - command = "" - continue - except Exception as e: - logger.error(f"CameraInterface: Command error: {e}") - - try: - if command == "debug": - if debug: - debug = False - else: - debug = True - - if command.startswith("set_exp"): - exp_value = command.split(":")[1] - if exp_value == "auto": - # Enable auto-exposure mode - self._auto_exposure_enabled = True - self._last_solve_time = None # Reset solve tracking - if self._auto_exposure_pid is None: - self._auto_exposure_pid = ExposurePIDController() - else: - self._auto_exposure_pid.reset() - console_queue.put("CAM: Auto-Exposure Enabled") - logger.info("Auto-exposure mode enabled") - else: - # Disable auto-exposure and set manual exposure - self._auto_exposure_enabled = False - self.exposure_time = int(exp_value) - self.set_camera_config(self.exposure_time, self.gain) - # Update config to reflect manual exposure value - cfg.set_option("camera_exp", self.exposure_time) - console_queue.put("CAM: Exp=" + str(self.exposure_time)) - logger.info( - f"Manual exposure set: {self.exposure_time}µs" - ) - - if command.startswith("set_gain"): - old_gain = self.gain - self.gain = int(command.split(":")[1]) - self.exposure_time, self.gain = self.set_camera_config( - self.exposure_time, self.gain - ) - console_queue.put("CAM: Gain=" + str(self.gain)) - logger.info(f"Gain changed: {old_gain}x → {self.gain}x") - - if command.startswith("set_ae_handler"): - handler_type = command.split(":")[1] - if self._auto_exposure_pid is not None: - new_handler = None - if handler_type == "sweep": - new_handler = SweepZeroStarHandler( - min_exposure=self._auto_exposure_pid.min_exposure, - max_exposure=self._auto_exposure_pid.max_exposure, - ) - elif handler_type == "exponential": - new_handler = ExponentialSweepZeroStarHandler( - min_exposure=self._auto_exposure_pid.min_exposure, - max_exposure=self._auto_exposure_pid.max_exposure, - ) - elif handler_type == "reset": - new_handler = ResetZeroStarHandler( - reset_exposure=400000 # 0.4s - ) - elif handler_type == "histogram": - new_handler = HistogramZeroStarHandler( - min_exposure=self._auto_exposure_pid.min_exposure, - max_exposure=self._auto_exposure_pid.max_exposure, - ) - else: - logger.warning( - f"Unknown zero-star handler type: {handler_type}" - ) - - if new_handler is not None: - self._auto_exposure_pid._zero_star_handler = ( - new_handler - ) - console_queue.put(f"CAM: AE Handler={handler_type}") - logger.info( - f"Auto-exposure zero-star handler changed to: {handler_type}" - ) - else: - logger.warning( - "Cannot set AE handler: auto-exposure not initialized" - ) - - if command.startswith("set_ae_mode"): - mode = command.split(":")[1] - if mode in ["pid", "snr"]: - self._auto_exposure_mode = mode - console_queue.put(f"CAM: AE Mode={mode.upper()}") - logger.info( - f"Auto-exposure mode changed to: {mode.upper()}" - ) - else: - logger.warning( - f"Unknown auto-exposure mode: {mode} (valid: pid, snr)" - ) - - if command == "exp_up" or command == "exp_dn": - # Manual exposure adjustments disable auto-exposure - self._auto_exposure_enabled = False - if command == "exp_up": - self.exposure_time = int(self.exposure_time * 1.25) - else: - self.exposure_time = int(self.exposure_time * 0.75) - self.set_camera_config(self.exposure_time, self.gain) - console_queue.put("CAM: Exp=" + str(self.exposure_time)) - if command == "exp_save": - # Saving exposure disables auto-exposure and locks to current value - self._auto_exposure_enabled = False - cfg.set_option("camera_exp", self.exposure_time) - cfg.set_option("camera_gain", int(self.gain)) - console_queue.put( - f"CAM: Exp Saved ({self.exposure_time}µs)" - ) - logger.info( - f"Exposure saved and auto-exposure disabled: {self.exposure_time}µs" - ) - - if command.startswith("save"): - # Set flag to save next capture to this file - self._save_next_to = command.split(":")[1] - console_queue.put("CAM: Save flag set") - - if ( - command.startswith("capture") - and command != "capture_exp_sweep" - ): - # Capture single frame and update shared state - # This is used by SQM calibration for precise exposure control - captured_image = self.capture() - camera_image.paste(captured_image) - - # If save flag is set, save to disk - if self._save_next_to: - # Build full path - filename = ( - f"{utils.data_dir}/captures/{self._save_next_to}" - ) - if not filename.endswith(".png"): - filename += ".png" - self.capture_file(filename) - - # Also save raw as TIFF - raw_filename = filename.replace(".png", ".tiff") - if not raw_filename.endswith(".tiff"): - raw_filename += ".tiff" - self.capture_raw_file(raw_filename) - - console_queue.put("CAM: Captured + Saved") - self._save_next_to = None # Clear flag - else: - console_queue.put("CAM: Captured") - - if command.startswith("capture_exp_sweep"): - # Capture exposure sweep - save both RAW and processed images - # at different exposures for SQM testing - # RAW: 16-bit TIFF to preserve full sensor bit depth - # Processed: 8-bit PNG from normal camera.capture() pipeline - - # Parse reference SQM if provided - reference_sqm = None - if ":" in command: - try: - reference_sqm = float(command.split(":")[1]) - logger.info(f"Reference SQM: {reference_sqm:.2f}") - except (ValueError, IndexError): - logger.warning("Invalid reference SQM in command") - - logger.info( - "Starting exposure sweep capture (100 image pairs)" - ) - console_queue.put("CAM: Starting sweep...") - - # Save current settings - original_exposure = self.exposure_time - original_gain = self.gain - original_ae_enabled = self._auto_exposure_enabled - - # Disable auto-exposure during sweep - self._auto_exposure_enabled = False - - # Generate 20 exposure values with logarithmic spacing - # from 25ms (25000µs) to 1s (1000000µs) - min_exp = 25000 # 25ms - max_exp = 1000000 # 1s - num_images = 20 - - # Generate logarithmic sweep using shared utility - sweep_exposures = generate_exposure_sweep( - min_exp, max_exp, num_images - ) - - # Generate timestamp for this sweep session using GPS time - gps_time = shared_state.datetime() - if gps_time: - timestamp = gps_time.strftime("%Y%m%d_%H%M%S") - else: - # Fallback to Pi time if GPS not available - timestamp = datetime.datetime.now().strftime( - "%Y%m%d_%H%M%S" - ) - logger.warning( - "GPS time not available, using Pi system time for sweep directory name" - ) - - # Create sweep directory - from pathlib import Path - - sweep_dir = Path( - f"{utils.data_dir}/captures/sweep_{timestamp}" - ) - sweep_dir.mkdir(parents=True, exist_ok=True) - - logger.info(f"Saving sweep to: {sweep_dir}") - console_queue.put("CAM: Starting sweep...") - - for i, exp_us in enumerate(sweep_exposures, 1): - # Update progress at start of each capture - console_queue.put(f"CAM: Sweep {i}/{num_images}") - - # Set exposure - self.exposure_time = exp_us - self.set_camera_config(self.exposure_time, self.gain) - - # Flush camera buffer - discard pre-buffered frames with old exposure - # Picamera2 maintains a frame queue, need to flush frames captured - # before the new exposure setting was applied - logger.debug( - f"Flushing camera buffer for {exp_us}µs exposure" - ) - _ = self.capture() # Discard buffered frame 1 - _ = self.capture() # Discard buffered frame 2 - - # Now capture both processed and RAW images with correct exposure - exp_ms = exp_us / 1000 - - # Save processed 8-bit PNG (same as production capture() method) - processed_filename = ( - sweep_dir - / f"img_{i:03d}_{exp_ms:.2f}ms_processed.png" - ) - processed_img = ( - self.capture() - ) # Returns 8-bit PIL Image - processed_img.save(str(processed_filename)) - - # Save RAW TIFF (16-bit, from camera.capture_raw_file()) - raw_filename = ( - sweep_dir / f"img_{i:03d}_{exp_ms:.2f}ms_raw.tiff" - ) - self.capture_raw_file(str(raw_filename)) - - logger.debug( - f"Captured sweep images {i}/{num_images}: {exp_ms:.2f}ms (PNG+TIFF)" - ) - - # Restore original settings - self.exposure_time = original_exposure - self.gain = original_gain - self._auto_exposure_enabled = original_ae_enabled - self.set_camera_config(self.exposure_time, self.gain) - - # Save sweep metadata (GPS time, location, altitude) - logger.info("Starting sweep metadata save...") - try: - from PiFinder.sqm.save_sweep_metadata import ( - save_sweep_metadata, - ) - - # Get GPS datetime (not Pi time) - gps_datetime = shared_state.datetime() - logger.debug(f"GPS datetime: {gps_datetime}") - - # Get observer location - location = shared_state.location() - logger.debug( - f"Location: lat={location.lat}, lon={location.lon}, alt={location.altitude}" - ) - - # Get current solve with RA/Dec/Alt/Az - solve_state = shared_state.solution() - ra_deg = None - dec_deg = None - altitude_deg = None - azimuth_deg = None - - if solve_state is not None: - ra_deg = solve_state.get("RA") - dec_deg = solve_state.get("Dec") - altitude_deg = solve_state.get("Alt") - azimuth_deg = solve_state.get("Az") - logger.debug( - f"Solve: RA={ra_deg}, Dec={dec_deg}, Alt={altitude_deg}, Az={azimuth_deg}" - ) - - # Save metadata - logger.info( - f"Calling save_sweep_metadata for {sweep_dir}" - ) - save_sweep_metadata( - sweep_dir=sweep_dir, - observer_lat=location.lat, - observer_lon=location.lon, - observer_altitude_m=location.altitude, - gps_datetime=gps_datetime.isoformat() - if gps_datetime - else None, - reference_sqm=reference_sqm, - ra_deg=ra_deg, - dec_deg=dec_deg, - altitude_deg=altitude_deg, - azimuth_deg=azimuth_deg, - notes=f"Exposure sweep: {num_images} images, {min_exp/1000:.1f}-{max_exp/1000:.1f}ms", - ) - logger.info( - f"Successfully saved sweep metadata to {sweep_dir}/sweep_metadata.json" - ) - except Exception as e: - logger.error( - f"Failed to save sweep metadata: {e}", exc_info=True - ) - - console_queue.put("CAM: Sweep done!") - logger.info( - f"Exposure sweep completed: {num_images} image pairs in {sweep_dir}" - ) - - if command.startswith("stop"): - self.stop_camera() - console_queue.put("CAM: Stopped camera") - if command.startswith("start"): - self.start_camera() - console_queue.put("CAM: Started camera") - except ValueError as e: - logger.error( - f"Error processing camera command '{command}': {str(e)}" - ) - console_queue.put( - f"CAM ERROR: Invalid command format - {str(e)}" - ) - except AttributeError as e: - logger.error( - f"Camera component not initialized for command '{command}': {str(e)}" - ) - console_queue.put("CAM ERROR: Camera not properly initialized") - except Exception as e: - logger.error( - f"Unexpected error processing camera command '{command}': {str(e)}" - ) - console_queue.put(f"CAM ERROR: {str(e)}") - logger.info( - f"CameraInterface: Camera loop exited with command: '{command}'" - ) + logger.info("CameraInterface: Camera loop exited") except (BrokenPipeError, EOFError, FileNotFoundError): logger.exception("Error in Camera Loop") diff --git a/python/PiFinder/catalogs.py b/python/PiFinder/catalogs.py index 30acebf86..66e859134 100644 --- a/python/PiFinder/catalogs.py +++ b/python/PiFinder/catalogs.py @@ -660,8 +660,8 @@ def __init__( self._stop_flag = threading.Event() # Performance tuning - load in batches with CPU yielding - self.batch_size = 100 # Objects per batch before yielding CPU - self.yield_time = 0.05 # Seconds to sleep between batches (50ms) + self.batch_size = 25 # Objects per batch before yielding CPU + self.yield_time = 0.1 # Seconds to sleep between batches (100ms) def start(self) -> None: """Start background loading in daemon thread""" diff --git a/python/PiFinder/comets.py b/python/PiFinder/comets.py index 9430094ff..f4ebec466 100644 --- a/python/PiFinder/comets.py +++ b/python/PiFinder/comets.py @@ -8,6 +8,7 @@ import os import logging import math +import time logger = logging.getLogger("Comets") @@ -212,8 +213,9 @@ def calc_comets( if result: comet_dict[result["name"]] = result - # Report progress + # Yield CPU to UI thread every comet processed += 1 + time.sleep(0.05) if progress_callback and total_comets > 0: progress = int((processed / total_comets) * 100) progress_callback(progress) diff --git a/python/PiFinder/server.py b/python/PiFinder/server.py index 6f1bea592..8b1179f7e 100644 --- a/python/PiFinder/server.py +++ b/python/PiFinder/server.py @@ -423,7 +423,12 @@ def network_update(): self.network.set_wifi_mode(wifi_mode) self.network.set_ap_name(ap_name) self.network.set_host_name(host_name) - return template("restart") + return template( + "network", + net=self.network, + show_new_form=0, + status_message="Network settings updated. You may need to reconnect.", + ) @app.route("/tools/pwchange", method="post") @auth_required diff --git a/python/PiFinder/sys_utils.py b/python/PiFinder/sys_utils.py index eba021940..2e8013716 100644 --- a/python/PiFinder/sys_utils.py +++ b/python/PiFinder/sys_utils.py @@ -10,6 +10,7 @@ - systemd service for software updates """ +import os import subprocess import time import logging @@ -242,19 +243,19 @@ def get_connected_ssid(self) -> str: return ssid_bytes.get_data().decode("utf-8") def set_host_name(self, hostname: str) -> None: - """Set hostname via D-Bus to org.freedesktop.hostname1.""" + """Set kernel hostname and update avahi mDNS announcement. + + NixOS makes /etc/hostname read-only (nix store symlink), so we set + the kernel hostname directly and persist to a file that a boot + service reads on startup. + """ if hostname == self.get_host_name(): return - try: - bus = _get_system_bus() - hostnamed = bus.get_object( - "org.freedesktop.hostname1", - "/org/freedesktop/hostname1", - ) - iface = dbus.Interface(hostnamed, "org.freedesktop.hostname1") - iface.SetStaticHostname(hostname, False) - except dbus.DBusException as e: - logger.error("Failed to set hostname via D-Bus: %s", e) + subprocess.run(["sudo", "hostname", hostname], check=False) + subprocess.run(["avahi-set-host-name", hostname], check=False) + # Persist for next boot (pifinder-hostname.service reads this) + data_dir = Path(os.environ.get("PIFINDER_DATA", "/home/pifinder/PiFinder_data")) + (data_dir / "hostname").write_text(hostname) def _go_ap(self) -> None: """Activate the AP connection.""" diff --git a/python/PiFinder/ui/software.py b/python/PiFinder/ui/software.py index 11b0a8ea0..76baff510 100644 --- a/python/PiFinder/ui/software.py +++ b/python/PiFinder/ui/software.py @@ -25,6 +25,7 @@ GITHUB_REPO = "brickbots/PiFinder" GITHUB_RELEASES_URL = f"https://api.github.com/repos/{GITHUB_REPO}/releases" GITHUB_PULLS_URL = f"https://api.github.com/repos/{GITHUB_REPO}/pulls" +GITHUB_RAW_URL = f"https://raw.githubusercontent.com/{GITHUB_REPO}" MIN_NIXOS_VERSION = "2.5.0" REQUEST_TIMEOUT = 10 @@ -81,10 +82,28 @@ def _version_from_tag(tag: str) -> str: return tag.lstrip("v") +def _fetch_build_json(ref: str) -> Optional[dict]: + """ + Fetch pifinder-build.json for a given git ref (sha or tag). + Returns dict with 'store_path' and 'version', or None if unavailable. + """ + url = f"{GITHUB_RAW_URL}/{ref}/pifinder-build.json" + try: + res = requests.get(url, timeout=REQUEST_TIMEOUT) + if res.status_code == 200: + data = res.json() + if data.get("store_path"): + return data + except (requests.exceptions.RequestException, ValueError): + pass + return None + + def _fetch_github_releases() -> tuple[list[dict], list[dict]]: """ Fetch releases from GitHub API. Returns (stable_entries, beta_entries) sorted newest-first. + Only includes entries that have a pifinder-build.json with a store path. """ stable: list[dict] = [] beta: list[dict] = [] @@ -106,11 +125,15 @@ def _fetch_github_releases() -> tuple[list[dict], list[dict]]: if not _meets_min_version(version): continue + build = _fetch_build_json(tag) + if build is None: + continue + entry = { "label": tag, - "ref": f"github:{GITHUB_REPO}/{tag}#pifinder", + "ref": build["store_path"], "notes": release.get("body") or None, - "version": version, + "version": build.get("version", version), } if release.get("prerelease"): @@ -128,6 +151,7 @@ def _fetch_testable_prs() -> list[dict]: """ Fetch open PRs with the 'testable' label. Returns list of unstable entries (main branch prepended by caller). + Only includes PRs that have a pifinder-build.json with a store path. """ entries: list[dict] = [] try: @@ -142,18 +166,25 @@ def _fetch_testable_prs() -> list[dict]: return entries for pr in res.json(): + labels = [l.get("name", "") for l in pr.get("labels", [])] + if "testable" not in labels: + continue number = pr.get("number", 0) title = pr.get("title", "") sha = pr.get("head", {}).get("sha", "") body = pr.get("body") or None - # Truncate title for display + + build = _fetch_build_json(sha) + if build is None: + continue + short_title = title[:20] + "..." if len(title) > 20 else title entries.append( { "label": f"PR#{number} {short_title}", - "ref": f"github:{GITHUB_REPO}/{sha}#pifinder", + "ref": build["store_path"], "notes": body, - "version": None, + "version": build.get("version"), } ) @@ -163,6 +194,22 @@ def _fetch_testable_prs() -> list[dict]: return entries +def _fetch_main_entry() -> Optional[dict]: + """ + Fetch pifinder-build.json for the main branch. + Returns an entry dict or None if unavailable. + """ + build = _fetch_build_json("main") + if build is None: + return None + return { + "label": "main", + "ref": build["store_path"], + "notes": None, + "version": build.get("version"), + } + + class UISoftware(UIModule): """ Software update UI. @@ -228,14 +275,10 @@ def _fetch_channels(self): stable, beta = _fetch_github_releases() pr_entries = _fetch_testable_prs() - unstable = [ - { - "label": "main", - "ref": f"github:{GITHUB_REPO}/main#pifinder", - "notes": None, - "version": None, - } - ] + unstable = [] + main_entry = _fetch_main_entry() + if main_entry: + unstable.append(main_entry) unstable.extend(pr_entries) self._channels = { diff --git a/python/tests/test_software.py b/python/tests/test_software.py index dece49ce4..7d2d431f6 100644 --- a/python/tests/test_software.py +++ b/python/tests/test_software.py @@ -9,7 +9,9 @@ _version_from_tag, _fetch_github_releases, _fetch_testable_prs, + _fetch_build_json, GITHUB_REPO, + GITHUB_RAW_URL, ) @@ -149,6 +151,56 @@ def test_prerelease_tag(self): assert _version_from_tag("v2.6.0-beta.1") == "2.6.0-beta.1" +# --------------------------------------------------------------------------- +# Build JSON fetching +# --------------------------------------------------------------------------- + +MOCK_BUILD_JSON = {"store_path": "/nix/store/abc123-nixos-system-pifinder", "version": "2.6.0"} + + +@pytest.mark.unit +class TestFetchBuildJson: + @patch("PiFinder.ui.software.requests.get") + def test_returns_data_on_success(self, mock_get): + mock_resp = MagicMock() + mock_resp.status_code = 200 + mock_resp.json.return_value = MOCK_BUILD_JSON + mock_get.return_value = mock_resp + + result = _fetch_build_json("v2.6.0") + + assert result == MOCK_BUILD_JSON + mock_get.assert_called_once_with( + f"{GITHUB_RAW_URL}/v2.6.0/pifinder-build.json", + timeout=10, + ) + + @patch("PiFinder.ui.software.requests.get") + def test_returns_none_on_404(self, mock_get): + mock_resp = MagicMock() + mock_resp.status_code = 404 + mock_get.return_value = mock_resp + + assert _fetch_build_json("v1.0.0") is None + + @patch("PiFinder.ui.software.requests.get") + def test_returns_none_on_missing_store_path(self, mock_get): + mock_resp = MagicMock() + mock_resp.status_code = 200 + mock_resp.json.return_value = {"version": "2.6.0"} + mock_get.return_value = mock_resp + + assert _fetch_build_json("v2.6.0") is None + + @patch("PiFinder.ui.software.requests.get") + def test_returns_none_on_network_error(self, mock_get): + import requests as req + + mock_get.side_effect = req.exceptions.ConnectionError("no network") + + assert _fetch_build_json("v2.6.0") is None + + # --------------------------------------------------------------------------- # GitHub releases API parsing # --------------------------------------------------------------------------- @@ -192,15 +244,32 @@ def test_prerelease_tag(self): }, ] +BUILD_JSONS = { + "v2.6.0": {"store_path": "/nix/store/aaa-nixos-system-pifinder", "version": "2.6.0"}, + "v2.5.1": {"store_path": "/nix/store/bbb-nixos-system-pifinder", "version": "2.5.1"}, + "v2.6.0-beta.1": {"store_path": "/nix/store/ccc-nixos-system-pifinder", "version": "2.6.0-beta.1"}, +} + + +def _make_build_json_mock(build_jsons): + """Create a _fetch_build_json mock that returns data from a dict.""" + + def _mock(ref): + return build_jsons.get(ref) + + return _mock + @pytest.mark.unit class TestFetchGitHubReleases: + @patch("PiFinder.ui.software._fetch_build_json") @patch("PiFinder.ui.software.requests.get") - def test_partitions_stable_and_beta(self, mock_get): + def test_partitions_stable_and_beta(self, mock_get, mock_build): mock_resp = MagicMock() mock_resp.status_code = 200 mock_resp.json.return_value = MOCK_RELEASES mock_get.return_value = mock_resp + mock_build.side_effect = _make_build_json_mock(BUILD_JSONS) stable, beta = _fetch_github_releases() @@ -211,47 +280,55 @@ def test_partitions_stable_and_beta(self, mock_get): assert "2.5.1" in stable_versions assert "2.6.0-beta.1" in beta_versions + @patch("PiFinder.ui.software._fetch_build_json") @patch("PiFinder.ui.software.requests.get") - def test_filters_below_min_version(self, mock_get): + def test_filters_below_min_version(self, mock_get, mock_build): mock_resp = MagicMock() mock_resp.status_code = 200 mock_resp.json.return_value = MOCK_RELEASES mock_get.return_value = mock_resp + mock_build.side_effect = _make_build_json_mock(BUILD_JSONS) stable, beta = _fetch_github_releases() all_versions = [e["version"] for e in stable + beta] assert "2.4.0" not in all_versions + @patch("PiFinder.ui.software._fetch_build_json") @patch("PiFinder.ui.software.requests.get") - def test_excludes_drafts(self, mock_get): + def test_excludes_drafts(self, mock_get, mock_build): mock_resp = MagicMock() mock_resp.status_code = 200 mock_resp.json.return_value = MOCK_RELEASES mock_get.return_value = mock_resp + mock_build.side_effect = _make_build_json_mock(BUILD_JSONS) stable, beta = _fetch_github_releases() all_labels = [e["label"] for e in stable + beta] assert "v2.3.0" not in all_labels + @patch("PiFinder.ui.software._fetch_build_json") @patch("PiFinder.ui.software.requests.get") - def test_flake_ref_format(self, mock_get): + def test_ref_is_store_path(self, mock_get, mock_build): mock_resp = MagicMock() mock_resp.status_code = 200 mock_resp.json.return_value = [MOCK_RELEASES[0]] mock_get.return_value = mock_resp + mock_build.return_value = BUILD_JSONS["v2.6.0"] stable, _ = _fetch_github_releases() - assert stable[0]["ref"] == f"github:{GITHUB_REPO}/v2.6.0#pifinder" + assert stable[0]["ref"] == "/nix/store/aaa-nixos-system-pifinder" + @patch("PiFinder.ui.software._fetch_build_json") @patch("PiFinder.ui.software.requests.get") - def test_preserves_changelog_body(self, mock_get): + def test_preserves_changelog_body(self, mock_get, mock_build): mock_resp = MagicMock() mock_resp.status_code = 200 mock_resp.json.return_value = [MOCK_RELEASES[0]] mock_get.return_value = mock_resp + mock_build.return_value = BUILD_JSONS["v2.6.0"] stable, _ = _fetch_github_releases() @@ -279,19 +356,35 @@ def test_network_error_returns_empty(self, mock_get): assert stable == [] assert beta == [] + @patch("PiFinder.ui.software._fetch_build_json") @patch("PiFinder.ui.software.requests.get") - def test_prerelease_at_min_filtered(self, mock_get): + def test_prerelease_at_min_filtered(self, mock_get, mock_build): """2.5.0-beta.2 is below 2.5.0 minimum, should be excluded.""" mock_resp = MagicMock() mock_resp.status_code = 200 mock_resp.json.return_value = MOCK_RELEASES mock_get.return_value = mock_resp + mock_build.side_effect = _make_build_json_mock(BUILD_JSONS) _, beta = _fetch_github_releases() beta_versions = [e["version"] for e in beta] assert "2.5.0-beta.2" not in beta_versions + @patch("PiFinder.ui.software._fetch_build_json") + @patch("PiFinder.ui.software.requests.get") + def test_skips_entries_without_build_json(self, mock_get, mock_build): + mock_resp = MagicMock() + mock_resp.status_code = 200 + mock_resp.json.return_value = [MOCK_RELEASES[0]] + mock_get.return_value = mock_resp + mock_build.return_value = None + + stable, beta = _fetch_github_releases() + + assert stable == [] + assert beta == [] + # --------------------------------------------------------------------------- # Testable PRs @@ -304,6 +397,7 @@ def test_prerelease_at_min_filtered(self, mock_get): "head": {"sha": "abc123def456"}, "user": {"login": "contributor1"}, "body": "This PR fixes the star matching.", + "labels": [{"name": "testable"}], }, { "number": 99, @@ -311,18 +405,26 @@ def test_prerelease_at_min_filtered(self, mock_get): "head": {"sha": "789xyz000111"}, "user": {"login": "contributor2"}, "body": None, + "labels": [{"name": "testable"}], }, ] +PR_BUILD_JSONS = { + "abc123def456": {"store_path": "/nix/store/pr42-nixos-system-pifinder", "version": "2.6.0-dev"}, + "789xyz000111": {"store_path": "/nix/store/pr99-nixos-system-pifinder", "version": "2.6.0-dev"}, +} + @pytest.mark.unit class TestFetchTestablePRs: + @patch("PiFinder.ui.software._fetch_build_json") @patch("PiFinder.ui.software.requests.get") - def test_builds_pr_entries(self, mock_get): + def test_builds_pr_entries(self, mock_get, mock_build): mock_resp = MagicMock() mock_resp.status_code = 200 mock_resp.json.return_value = MOCK_PRS mock_get.return_value = mock_resp + mock_build.side_effect = _make_build_json_mock(PR_BUILD_JSONS) entries = _fetch_testable_prs() @@ -330,34 +432,40 @@ def test_builds_pr_entries(self, mock_get): assert entries[0]["label"].startswith("PR#42") assert entries[1]["label"].startswith("PR#99") + @patch("PiFinder.ui.software._fetch_build_json") @patch("PiFinder.ui.software.requests.get") - def test_pr_flake_ref_uses_sha(self, mock_get): + def test_pr_ref_is_store_path(self, mock_get, mock_build): mock_resp = MagicMock() mock_resp.status_code = 200 mock_resp.json.return_value = [MOCK_PRS[0]] mock_get.return_value = mock_resp + mock_build.return_value = PR_BUILD_JSONS["abc123def456"] entries = _fetch_testable_prs() - assert entries[0]["ref"] == f"github:{GITHUB_REPO}/abc123def456#pifinder" + assert entries[0]["ref"] == "/nix/store/pr42-nixos-system-pifinder" + @patch("PiFinder.ui.software._fetch_build_json") @patch("PiFinder.ui.software.requests.get") - def test_pr_version_is_none(self, mock_get): + def test_pr_version_from_build_json(self, mock_get, mock_build): mock_resp = MagicMock() mock_resp.status_code = 200 mock_resp.json.return_value = [MOCK_PRS[0]] mock_get.return_value = mock_resp + mock_build.return_value = PR_BUILD_JSONS["abc123def456"] entries = _fetch_testable_prs() - assert entries[0]["version"] is None + assert entries[0]["version"] == "2.6.0-dev" + @patch("PiFinder.ui.software._fetch_build_json") @patch("PiFinder.ui.software.requests.get") - def test_pr_notes_from_body(self, mock_get): + def test_pr_notes_from_body(self, mock_get, mock_build): mock_resp = MagicMock() mock_resp.status_code = 200 mock_resp.json.return_value = MOCK_PRS mock_get.return_value = mock_resp + mock_build.side_effect = _make_build_json_mock(PR_BUILD_JSONS) entries = _fetch_testable_prs() @@ -374,8 +482,9 @@ def test_api_failure_returns_empty(self, mock_get): assert entries == [] + @patch("PiFinder.ui.software._fetch_build_json") @patch("PiFinder.ui.software.requests.get") - def test_long_title_truncated(self, mock_get): + def test_long_title_truncated(self, mock_get, mock_build): mock_resp = MagicMock() mock_resp.status_code = 200 mock_resp.json.return_value = [ @@ -385,12 +494,26 @@ def test_long_title_truncated(self, mock_get): "head": {"sha": "aaa"}, "user": {"login": "x"}, "body": None, + "labels": [{"name": "testable"}], } ] mock_get.return_value = mock_resp + mock_build.return_value = {"store_path": "/nix/store/pr7-nixos", "version": "2.6.0-dev"} entries = _fetch_testable_prs() assert "..." in entries[0]["label"] - # PR#7 prefix + space + 20 chars + ... assert entries[0]["label"].startswith("PR#7 ") + + @patch("PiFinder.ui.software._fetch_build_json") + @patch("PiFinder.ui.software.requests.get") + def test_skips_prs_without_build_json(self, mock_get, mock_build): + mock_resp = MagicMock() + mock_resp.status_code = 200 + mock_resp.json.return_value = MOCK_PRS + mock_get.return_value = mock_resp + mock_build.return_value = None + + entries = _fetch_testable_prs() + + assert entries == [] diff --git a/python/views/network.tpl b/python/views/network.tpl index f5f9f2a27..6eeeb8a06 100644 --- a/python/views/network.tpl +++ b/python/views/network.tpl @@ -2,6 +2,9 @@

    diff --git a/version.txt b/version.txt index 197c4d5c2..437459cd9 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -2.4.0 +2.5.0 diff --git a/versions.json b/versions.json deleted file mode 100644 index 2bd6d611d..000000000 --- a/versions.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "channels": { - "stable": { - "description": "Tested releases", - "versions": [ - { - "version": "2.4.0", - "ref": "v2.4.0", - "date": "2025-07-01", - "notes": "Initial NixOS release" - } - ] - }, - "unstable": { - "description": "Latest development", - "versions": [ - { - "version": "2.5.0-dev", - "ref": "main", - "date": "2025-07-01", - "notes": "Development branch" - } - ] - } - } -} From a883cd735f44a9381eb7d7aa4d9b2a7883ccaef9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 13 Feb 2026 03:02:47 +0000 Subject: [PATCH 074/144] chore: stamp build [skip ci] --- pifinder-build.json | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 pifinder-build.json diff --git a/pifinder-build.json b/pifinder-build.json new file mode 100644 index 000000000..e9de6ac13 --- /dev/null +++ b/pifinder-build.json @@ -0,0 +1,4 @@ +{ + "store_path": "/nix/store/n3ccl6j6rmw8gs9g6nzpivzy14zf7kbr-nixos-system-pifinder-25.11.20260209.2db38e0", + "version": "2.5.0" +} From 231b3ff15228c4754dffac2733e63fe0585acc50 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 13 Feb 2026 03:05:30 +0000 Subject: [PATCH 075/144] chore: stamp build [skip ci] --- pifinder-build.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pifinder-build.json b/pifinder-build.json index e9de6ac13..bc0af9392 100644 --- a/pifinder-build.json +++ b/pifinder-build.json @@ -1,4 +1,4 @@ { - "store_path": "/nix/store/n3ccl6j6rmw8gs9g6nzpivzy14zf7kbr-nixos-system-pifinder-25.11.20260209.2db38e0", + "store_path": "/nix/store/8s0yk9gx532ak9z7fib1ldz56iq5ys91-nixos-system-pifinder-25.11.20260209.2db38e0", "version": "2.5.0" } From 30194a0d1dd3804709f6fe4c727fccec030b07dc Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Fri, 13 Feb 2026 04:46:04 +0100 Subject: [PATCH 076/144] fix: use nix build instead of nix copy --from in upgrade service nix copy --from uses only the specified source store. If Cachix doesn't have every transitive dependency (e.g. shadow from nixos cache), the copy fails. nix build with --max-jobs 0 uses all configured substituters (Cachix + cache.nixos.org) as fallbacks. Co-Authored-By: Claude Opus 4.6 --- nixos/services.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nixos/services.nix b/nixos/services.nix index 7f83d467b..ab76a7957 100644 --- a/nixos/services.nix +++ b/nixos/services.nix @@ -333,8 +333,8 @@ in { echo "Upgrading to $STORE_PATH" - echo "Phase 1: Download from Cachix" - nix copy --from https://pifinder.cachix.org "$STORE_PATH" + echo "Phase 1: Download from binary caches" + nix build "$STORE_PATH" --max-jobs 0 echo "Phase 2: Activate (test mode — bootloader untouched)" nix-env -p /nix/var/nix/profiles/system --set "$STORE_PATH" From c27ed16fda3337d91b33495717fe3e26c308e5de Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 13 Feb 2026 03:47:16 +0000 Subject: [PATCH 077/144] chore: stamp build [skip ci] --- pifinder-build.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pifinder-build.json b/pifinder-build.json index bc0af9392..b5a01a5d6 100644 --- a/pifinder-build.json +++ b/pifinder-build.json @@ -1,4 +1,4 @@ { - "store_path": "/nix/store/8s0yk9gx532ak9z7fib1ldz56iq5ys91-nixos-system-pifinder-25.11.20260209.2db38e0", + "store_path": "/nix/store/gc93nqpf89x7lchxdw17p3jg1dl39kxa-nixos-system-pifinder-25.11.20260209.2db38e0", "version": "2.5.0" } From 5e642ce7162c0b432f0311620f6961804fcc5c7c Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Fri, 13 Feb 2026 12:21:03 +0100 Subject: [PATCH 078/144] style: apply ruff formatting to Python codebase Co-Authored-By: Claude Opus 4.6 --- .github/workflows/{nox.yml => lint.yml} | 0 python/PiFinder/audit_images.py | 4 +- python/PiFinder/auto_exposure.py | 32 +- python/PiFinder/camera_interface.py | 88 +- .../catalog_imports/catalog_import_utils.py | 5 +- .../catalog_imports/specialized_loaders.py | 2 +- python/PiFinder/catalog_imports/wds_loader.py | 4 +- python/PiFinder/catalogs.py | 5 +- python/PiFinder/multiproclogging.py | 13 +- python/PiFinder/solver.py | 40 +- python/PiFinder/sqm/sqm.ipynb | 1316 ++++++++++------- python/PiFinder/sqm/sqm.py | 16 +- python/PiFinder/state.py | 6 +- python/PiFinder/ui/base.py | 40 +- python/PiFinder/ui/marking_menus.py | 4 +- python/PiFinder/ui/menu_manager.py | 2 +- python/PiFinder/ui/object_details.py | 8 +- python/PiFinder/ui/sqm.py | 6 +- python/PiFinder/ui/sqm_calibration.py | 4 +- python/PiFinder/ui/sqm_correction.py | 27 +- python/PiFinder/ui/status.py | 12 +- python/PiFinder/ui/ui_utils.py | 4 +- python/noxfile.py | 49 - python/requirements.txt | 27 - python/requirements_dev.txt | 13 - python/tests/test_catalog_data.py | 114 +- python/tests/test_sqm.py | 12 +- 27 files changed, 1067 insertions(+), 786 deletions(-) rename .github/workflows/{nox.yml => lint.yml} (100%) delete mode 100644 python/noxfile.py delete mode 100644 python/requirements.txt delete mode 100644 python/requirements_dev.txt diff --git a/.github/workflows/nox.yml b/.github/workflows/lint.yml similarity index 100% rename from .github/workflows/nox.yml rename to .github/workflows/lint.yml diff --git a/python/PiFinder/audit_images.py b/python/PiFinder/audit_images.py index ef37fdb70..e34664ce5 100644 --- a/python/PiFinder/audit_images.py +++ b/python/PiFinder/audit_images.py @@ -44,8 +44,8 @@ def check_object_image(catalog_object): aka_rec = conn.execute( f""" SELECT common_name from names - where catalog = "{catalog_object['catalog']}" - and sequence = "{catalog_object['sequence']}" + where catalog = "{catalog_object["catalog"]}" + and sequence = "{catalog_object["sequence"]}" and common_name like "NGC%" """ ).fetchone() diff --git a/python/PiFinder/auto_exposure.py b/python/PiFinder/auto_exposure.py index eadcc4f61..6c45084ba 100644 --- a/python/PiFinder/auto_exposure.py +++ b/python/PiFinder/auto_exposure.py @@ -534,7 +534,7 @@ def handle( self._sweep_results = [] logger.debug( f"Histogram handler activated: starting {self._sweep_steps}-step histogram sweep " - f"from {self._sweep_exposures[0]/1000:.1f}ms to {self._sweep_exposures[-1]/1000:.1f}ms" + f"from {self._sweep_exposures[0] / 1000:.1f}ms to {self._sweep_exposures[-1] / 1000:.1f}ms" ) return self._sweep_exposures[0] @@ -548,7 +548,7 @@ def handle( self._sweep_results.append((sweep_exposure, viable, metrics)) logger.debug( - f"Histogram analysis for {sweep_exposure/1000:.1f}ms: " + f"Histogram analysis for {sweep_exposure / 1000:.1f}ms: " f"viable={'YES' if viable else 'NO'}, " f"mean={metrics['mean']:.1f}, std={metrics['std']:.1f}, sat={metrics['saturation_pct']:.1f}%" ) @@ -556,8 +556,8 @@ def handle( # Track viable exposures but continue sweep to find best option if viable: logger.debug( - f"Histogram handler: found viable exposure {sweep_exposure/1000:.1f}ms " - f"(step {self._sweep_index+1}/{self._sweep_steps}), continuing sweep" + f"Histogram handler: found viable exposure {sweep_exposure / 1000:.1f}ms " + f"(step {self._sweep_index + 1}/{self._sweep_steps}), continuing sweep" ) # If we've completed the sweep, settle on target exposure @@ -574,14 +574,14 @@ def handle( # Use highest viable exposure for best star detection self._target_exposure = max(viable_exposures) logger.debug( - f"Histogram handler: settling on highest viable exposure {self._target_exposure/1000:.1f}ms" + f"Histogram handler: settling on highest viable exposure {self._target_exposure / 1000:.1f}ms" ) else: # No viable exposures - use highest from sweep highest_exp = self._sweep_results[-1][0] self._target_exposure = highest_exp logger.debug( - f"Histogram handler: no viable exposure found, using highest {highest_exp/1000:.1f}ms" + f"Histogram handler: no viable exposure found, using highest {highest_exp / 1000:.1f}ms" ) else: # Fallback to middle exposure @@ -589,7 +589,7 @@ def handle( middle_exp = self._sweep_exposures[middle_idx] self._target_exposure = middle_exp logger.debug( - f"Histogram handler: no analysis data, using middle {middle_exp/1000:.1f}ms" + f"Histogram handler: no analysis data, using middle {middle_exp / 1000:.1f}ms" ) # Hold at target @@ -602,7 +602,7 @@ def handle( if self._sweep_index < len(self._sweep_exposures): next_exp = self._sweep_exposures[self._sweep_index] logger.debug( - f"Histogram handler: sweep step {self._sweep_index+1}/{self._sweep_steps} → {next_exp/1000:.1f}ms" + f"Histogram handler: sweep step {self._sweep_index + 1}/{self._sweep_steps} → {next_exp / 1000:.1f}ms" ) return next_exp else: @@ -663,7 +663,7 @@ def __init__( logger.info( f"AutoExposure SNR: target_bg={target_background}, " f"range=[{min_background}, {max_background}] ADU, " - f"exp_range=[{min_exposure/1000:.0f}, {max_exposure/1000:.0f}]ms, " + f"exp_range=[{min_exposure / 1000:.0f}, {max_exposure / 1000:.0f}]ms, " f"adjustment={adjustment_factor}x" ) @@ -694,7 +694,7 @@ def from_camera_profile( profile = get_camera_profile(camera_type) # Derive thresholds from camera specs - max_adu = (2 ** profile.bit_depth) - 1 + max_adu = (2**profile.bit_depth) - 1 bias = profile.bias_offset # min_background: bias + margin (2x bias or bias + 8, whichever larger) @@ -726,7 +726,7 @@ def update( current_exposure: int, image: Image.Image, noise_floor: Optional[float] = None, - **kwargs # Ignore other params (matched_stars, etc.) + **kwargs, # Ignore other params (matched_stars, etc.) ) -> Optional[int]: """ Update exposure based on background level. @@ -756,7 +756,7 @@ def update( background = float(np.percentile(img_array, 10)) logger.debug( - f"SNR AE: bg={background:.1f}, min={min_bg:.1f} ADU, exp={current_exposure/1000:.0f}ms" + f"SNR AE: bg={background:.1f}, min={min_bg:.1f} ADU, exp={current_exposure / 1000:.0f}ms" ) # Determine adjustment @@ -767,14 +767,14 @@ def update( new_exposure = int(current_exposure * self.adjustment_factor) logger.info( f"SNR AE: Background too low ({background:.1f} < {min_bg:.1f}), " - f"increasing exposure {current_exposure/1000:.0f}ms → {new_exposure/1000:.0f}ms" + f"increasing exposure {current_exposure / 1000:.0f}ms → {new_exposure / 1000:.0f}ms" ) elif background > self.max_background: # Too bright - decrease exposure new_exposure = int(current_exposure / self.adjustment_factor) logger.info( f"SNR AE: Background too high ({background:.1f} > {self.max_background}), " - f"decreasing exposure {current_exposure/1000:.0f}ms → {new_exposure/1000:.0f}ms" + f"decreasing exposure {current_exposure / 1000:.0f}ms → {new_exposure / 1000:.0f}ms" ) else: # Background is in acceptable range @@ -908,7 +908,9 @@ def _update_pid(self, matched_stars: int, current_exposure: int) -> Optional[int # from crashing exposure when conditions change suddenly # (e.g., going from too many stars to too few stars) if self._last_error is not None: - if (error > 0 and self._last_error < 0) or (error < 0 and self._last_error > 0): + if (error > 0 and self._last_error < 0) or ( + error < 0 and self._last_error > 0 + ): logger.debug( f"PID: Error sign changed ({self._last_error:.0f} → {error:.0f}), resetting integral" ) diff --git a/python/PiFinder/camera_interface.py b/python/PiFinder/camera_interface.py index 67d630ee5..c88f18300 100644 --- a/python/PiFinder/camera_interface.py +++ b/python/PiFinder/camera_interface.py @@ -141,12 +141,8 @@ def _process_pending_commands(self): self.exposure_time = int(exp_value) self.set_camera_config(self.exposure_time, self.gain) self._cfg.set_option("camera_exp", self.exposure_time) - self._console_queue.put( - "CAM: Exp=" + str(self.exposure_time) - ) - logger.info( - f"Manual exposure set: {self.exposure_time}µs" - ) + self._console_queue.put("CAM: Exp=" + str(self.exposure_time)) + logger.info(f"Manual exposure set: {self.exposure_time}µs") elif command.startswith("set_gain"): old_gain = self.gain @@ -172,9 +168,7 @@ def _process_pending_commands(self): max_exposure=self._auto_exposure_pid.max_exposure, ) elif handler_type == "reset": - new_handler = ResetZeroStarHandler( - reset_exposure=400000 - ) + new_handler = ResetZeroStarHandler(reset_exposure=400000) elif handler_type == "histogram": new_handler = HistogramZeroStarHandler( min_exposure=self._auto_exposure_pid.min_exposure, @@ -186,12 +180,8 @@ def _process_pending_commands(self): ) if new_handler is not None: - self._auto_exposure_pid._zero_star_handler = ( - new_handler - ) - self._console_queue.put( - f"CAM: AE Handler={handler_type}" - ) + self._auto_exposure_pid._zero_star_handler = new_handler + self._console_queue.put(f"CAM: AE Handler={handler_type}") logger.info( f"Auto-exposure zero-star handler changed to: {handler_type}" ) @@ -204,12 +194,8 @@ def _process_pending_commands(self): mode = command.split(":")[1] if mode in ["pid", "snr"]: self._auto_exposure_mode = mode - self._console_queue.put( - f"CAM: AE Mode={mode.upper()}" - ) - logger.info( - f"Auto-exposure mode changed to: {mode.upper()}" - ) + self._console_queue.put(f"CAM: AE Mode={mode.upper()}") + logger.info(f"Auto-exposure mode changed to: {mode.upper()}") else: logger.warning( f"Unknown auto-exposure mode: {mode} (valid: pid, snr)" @@ -222,17 +208,13 @@ def _process_pending_commands(self): else: self.exposure_time = int(self.exposure_time * 0.75) self.set_camera_config(self.exposure_time, self.gain) - self._console_queue.put( - "CAM: Exp=" + str(self.exposure_time) - ) + self._console_queue.put("CAM: Exp=" + str(self.exposure_time)) elif command == "exp_save": self._auto_exposure_enabled = False self._cfg.set_option("camera_exp", self.exposure_time) self._cfg.set_option("camera_gain", int(self.gain)) - self._console_queue.put( - f"CAM: Exp Saved ({self.exposure_time}µs)" - ) + self._console_queue.put(f"CAM: Exp Saved ({self.exposure_time}µs)") logger.info( f"Exposure saved and auto-exposure disabled: {self.exposure_time}µs" ) @@ -241,17 +223,12 @@ def _process_pending_commands(self): self._save_next_to = command.split(":")[1] self._console_queue.put("CAM: Save flag set") - elif ( - command.startswith("capture") - and command != "capture_exp_sweep" - ): + elif command.startswith("capture") and command != "capture_exp_sweep": captured_image = self.capture() self._camera_image.paste(captured_image) if self._save_next_to: - filename = ( - f"{utils.data_dir}/captures/{self._save_next_to}" - ) + filename = f"{utils.data_dir}/captures/{self._save_next_to}" if not filename.endswith(".png"): filename += ".png" self.capture_file(filename) @@ -278,9 +255,7 @@ def _process_pending_commands(self): self._console_queue.put("CAM: Started camera") except ValueError as e: - logger.error( - f"Error processing camera command '{command}': {str(e)}" - ) + logger.error(f"Error processing camera command '{command}': {str(e)}") def _run_exposure_sweep(self, command): """Capture exposure sweep for SQM testing.""" @@ -336,15 +311,11 @@ def _run_exposure_sweep(self, command): exp_ms = exp_us / 1000 - processed_filename = ( - sweep_dir / f"img_{i:03d}_{exp_ms:.2f}ms_processed.png" - ) + processed_filename = sweep_dir / f"img_{i:03d}_{exp_ms:.2f}ms_processed.png" processed_img = self.capture() processed_img.save(str(processed_filename)) - raw_filename = ( - sweep_dir / f"img_{i:03d}_{exp_ms:.2f}ms_raw.tiff" - ) + raw_filename = sweep_dir / f"img_{i:03d}_{exp_ms:.2f}ms_raw.tiff" self.capture_raw_file(str(raw_filename)) logger.debug( @@ -379,23 +350,19 @@ def _run_exposure_sweep(self, command): observer_lat=location.lat, observer_lon=location.lon, observer_altitude_m=location.altitude, - gps_datetime=gps_datetime.isoformat() - if gps_datetime - else None, + gps_datetime=gps_datetime.isoformat() if gps_datetime else None, reference_sqm=reference_sqm, ra_deg=ra_deg, dec_deg=dec_deg, altitude_deg=altitude_deg, azimuth_deg=azimuth_deg, - notes=f"Exposure sweep: {num_images} images, {min_exp/1000:.1f}-{max_exp/1000:.1f}ms", + notes=f"Exposure sweep: {num_images} images, {min_exp / 1000:.1f}-{max_exp / 1000:.1f}ms", ) logger.info( f"Successfully saved sweep metadata to {sweep_dir}/sweep_metadata.json" ) except Exception as e: - logger.error( - f"Failed to save sweep metadata: {e}", exc_info=True - ) + logger.error(f"Failed to save sweep metadata: {e}", exc_info=True) self._console_queue.put("CAM: Sweep done!") logger.info( @@ -566,22 +533,29 @@ def get_image_loop( if self._auto_exposure_snr is None: # Use camera profile to derive thresholds try: - cam_type = detect_camera_type(self.get_cam_type()) + cam_type = detect_camera_type( + self.get_cam_type() + ) cam_type = f"{cam_type}_processed" - self._auto_exposure_snr = ( - ExposureSNRController.from_camera_profile(cam_type) + self._auto_exposure_snr = ExposureSNRController.from_camera_profile( + cam_type ) except ValueError as e: # Unknown camera, use defaults logger.warning( f"Camera detection failed: {e}, using default SNR thresholds" ) - self._auto_exposure_snr = ExposureSNRController() + self._auto_exposure_snr = ( + ExposureSNRController() + ) # Get adaptive noise floor from shared state - adaptive_noise_floor = self.shared_state.noise_floor() + adaptive_noise_floor = ( + self.shared_state.noise_floor() + ) new_exposure = self._auto_exposure_snr.update( - self.exposure_time, base_image, - noise_floor=adaptive_noise_floor + self.exposure_time, + base_image, + noise_floor=adaptive_noise_floor, ) else: # PID mode: use star-count based controller (default) diff --git a/python/PiFinder/catalog_imports/catalog_import_utils.py b/python/PiFinder/catalog_imports/catalog_import_utils.py index 279169df3..50fce5d12 100644 --- a/python/PiFinder/catalog_imports/catalog_import_utils.py +++ b/python/PiFinder/catalog_imports/catalog_import_utils.py @@ -213,7 +213,8 @@ def insert_catalog_max_sequence(catalog_name): if result: query = f""" update catalogs set max_sequence = { - dict(result)['MAX(sequence)']} where catalog_code = '{catalog_name}' + dict(result)["MAX(sequence)"] + } where catalog_code = '{catalog_name}' """ db_c.execute(query) conn.commit() @@ -322,7 +323,7 @@ def resolve_object_images(): ORDER BY {priority_case_sql} ) as priority_rank FROM catalog_objects co - WHERE co.catalog_code IN ({','.join(['?'] * len(catalog_priority))}) + WHERE co.catalog_code IN ({",".join(["?"] * len(catalog_priority))}) ) SELECT o.id as object_id, diff --git a/python/PiFinder/catalog_imports/specialized_loaders.py b/python/PiFinder/catalog_imports/specialized_loaders.py index 5e29e7703..303d5df02 100644 --- a/python/PiFinder/catalog_imports/specialized_loaders.py +++ b/python/PiFinder/catalog_imports/specialized_loaders.py @@ -602,7 +602,7 @@ def expand(name): for additional in parts[1:]: if additional.isdigit(): # If the additional part is a number, add it directly - expanded_list.append(f"{base_part[:-len(additional)]}{additional}") + expanded_list.append(f"{base_part[: -len(additional)]}{additional}") else: expanded_list.append(additional) else: diff --git a/python/PiFinder/catalog_imports/wds_loader.py b/python/PiFinder/catalog_imports/wds_loader.py index 96d798630..58d0b9e61 100644 --- a/python/PiFinder/catalog_imports/wds_loader.py +++ b/python/PiFinder/catalog_imports/wds_loader.py @@ -263,7 +263,7 @@ def handle_multiples(key, values) -> dict: coord_2000 = entry["Coordinates_2000"] coord_arcsec = entry["Coordinates_Arcsec"] logging.error( - f"Empty or invalid RA/DEC detected for WDS object at line {i+1}" + f"Empty or invalid RA/DEC detected for WDS object at line {i + 1}" ) logging.error(f" Coordinates_2000: '{coord_2000}'") logging.error(f" Coordinates_Arcsec: '{coord_arcsec}'") @@ -273,7 +273,7 @@ def handle_multiples(key, values) -> dict: ) logging.error(f" Final RA: {entry['ra']}, DEC: {entry['dec']}") raise ValueError( - f"Invalid RA/DEC coordinates for WDS object at line {i+1}: RA={entry['ra']}, DEC={entry['dec']}" + f"Invalid RA/DEC coordinates for WDS object at line {i + 1}: RA={entry['ra']}, DEC={entry['dec']}" ) # make a dictionary of WDS objects to group duplicates diff --git a/python/PiFinder/catalogs.py b/python/PiFinder/catalogs.py index 66e859134..23f3ec599 100644 --- a/python/PiFinder/catalogs.py +++ b/python/PiFinder/catalogs.py @@ -481,10 +481,7 @@ def is_loading(self) -> bool: def start_background_loading(self): """Start deferred catalog loading in background thread. Call after event loop is ready to avoid SD I/O contention during startup.""" - if ( - hasattr(self, "_background_loader") - and self._background_loader is not None - ): + if hasattr(self, "_background_loader") and self._background_loader is not None: self._background_loader.start() def __repr__(self): diff --git a/python/PiFinder/multiproclogging.py b/python/PiFinder/multiproclogging.py index 92d36dccd..2f8bee958 100644 --- a/python/PiFinder/multiproclogging.py +++ b/python/PiFinder/multiproclogging.py @@ -10,7 +10,6 @@ import multiprocessing.queues from pathlib import Path from multiprocessing import Queue, Process -import multiprocessing from queue import Empty from time import sleep from typing import TextIO, List, Optional @@ -83,9 +82,9 @@ def apply_config(self): def start(self, initial_queue: Optional[Queue] = None): assert self._proc is None, "You should only start once!" - assert ( - len(self._queues) >= 1 - ), "No queues in use. You should have requested at least one queue." + assert len(self._queues) >= 1, ( + "No queues in use. You should have requested at least one queue." + ) self._proc = Process( target=self._run_sink, @@ -170,9 +169,9 @@ def configurer(queue: Queue): log messages. """ assert queue is not None, "You passed a None to configurer! You cannot do that" - assert isinstance( - queue, multiprocessing.queues.Queue - ), "That's not a Queue! You have to pass a queue" + assert isinstance(queue, multiprocessing.queues.Queue), ( + "That's not a Queue! You have to pass a queue" + ) log_conf_file = Path("pifinder_logconf.json") with open(log_conf_file, "r") as logconf: diff --git a/python/PiFinder/solver.py b/python/PiFinder/solver.py index a6314096a..4796abf3b 100644 --- a/python/PiFinder/solver.py +++ b/python/PiFinder/solver.py @@ -124,7 +124,13 @@ def update_sqm( k: v for k, v in details.items() if k - not in ("star_centroids", "star_mags", "star_fluxes", "star_local_backgrounds", "star_mzeros") + not in ( + "star_centroids", + "star_mags", + "star_fluxes", + "star_local_backgrounds", + "star_mzeros", + ) } shared_state.set_sqm_details(filtered_details) @@ -166,12 +172,14 @@ def __init__(self, port=50551): if not self._server_reachable(): # Dev mode: spawn the server ourselves import shutil + binary = shutil.which("cedar-detect-server") if binary is None: raise FileNotFoundError("cedar-detect-server") my_env = os.environ.copy() my_env["RUST_BACKTRACE"] = "1" import subprocess + self._subprocess = subprocess.Popen( [binary, "--port", str(self._port)], env=my_env ) @@ -192,6 +200,7 @@ def __del__(self): def _server_reachable(self): """Quick check if cedar-detect-server is already listening.""" import socket + with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: s.settimeout(0.2) return s.connect_ex(("127.0.0.1", self._port)) == 0 @@ -229,7 +238,9 @@ def _del_shmem(self): pass self._shmem = None - def extract_centroids(self, image, sigma, max_size, use_binned, detect_hot_pixels=True): + def extract_centroids( + self, image, sigma, max_size, use_binned, detect_hot_pixels=True + ): """Override to raise CedarConnectionError on gRPC failure instead of returning empty list.""" import numpy as np from tetra3 import cedar_detect_pb2 @@ -241,10 +252,14 @@ def extract_centroids(self, image, sigma, max_size, use_binned, detect_hot_pixel # Use shared memory path (same machine) if self._use_shmem: self._alloc_shmem(size=width * height) - shimg = np.ndarray(np_image.shape, dtype=np_image.dtype, buffer=self._shmem.buf) + shimg = np.ndarray( + np_image.shape, dtype=np_image.dtype, buffer=self._shmem.buf + ) shimg[:] = np_image[:] - im = cedar_detect_pb2.Image(width=width, height=height, shmem_name=self._shmem.name) + im = cedar_detect_pb2.Image( + width=width, height=height, shmem_name=self._shmem.name + ) req = cedar_detect_pb2.CentroidsRequest( input_image=im, sigma=sigma, @@ -261,10 +276,14 @@ def extract_centroids(self, image, sigma, max_size, use_binned, detect_hot_pixel self._del_shmem() self._use_shmem = False else: - raise CedarConnectionError(f"Cedar gRPC failed: {err.details()}") from err + raise CedarConnectionError( + f"Cedar gRPC failed: {err.details()}" + ) from err if not self._use_shmem: - im = cedar_detect_pb2.Image(width=width, height=height, image_data=np_image.tobytes()) + im = cedar_detect_pb2.Image( + width=width, height=height, image_data=np_image.tobytes() + ) req = cedar_detect_pb2.CentroidsRequest( input_image=im, sigma=sigma, @@ -275,7 +294,9 @@ def extract_centroids(self, image, sigma, max_size, use_binned, detect_hot_pixel try: centroids_result = self._get_stub().ExtractCentroids(req) except grpc.RpcError as err: - raise CedarConnectionError(f"Cedar gRPC failed: {err.details()}") from err + raise CedarConnectionError( + f"Cedar gRPC failed: {err.details()}" + ) from err tetra_centroids = [] if centroids_result is not None: @@ -284,7 +305,6 @@ def extract_centroids(self, image, sigma, max_size, use_binned, detect_hot_pixel return tetra_centroids - def solver( shared_state, solver_queue, @@ -422,7 +442,9 @@ def solver( np_image, sigma=8, max_size=10, use_binned=True ) except CedarConnectionError as e: - logger.warning(f"Cedar connection failed: {e}, falling back to tetra3") + logger.warning( + f"Cedar connection failed: {e}, falling back to tetra3" + ) centroids = tetra3.get_centroids_from_image(np_image) else: # Cedar not available, use tetra3 diff --git a/python/PiFinder/sqm/sqm.ipynb b/python/PiFinder/sqm/sqm.ipynb index 490d27c57..cd956e870 100644 --- a/python/PiFinder/sqm/sqm.ipynb +++ b/python/PiFinder/sqm/sqm.ipynb @@ -32,9 +32,11 @@ "import logging as logger\n", "from pathlib import Path\n", "import matplotlib.pyplot as plt\n", + "\n", "%matplotlib inline\n", "import pprint\n", - "pp = pprint.PrettyPrinter(depth=5)\n" + "\n", + "pp = pprint.PrettyPrinter(depth=5)" ] }, { @@ -70,11 +72,11 @@ } ], "source": [ - "os.chdir('/Users/mike/dev/amateur_astro/myPiFinder/wt-sqm/python')\n", + "os.chdir(\"/Users/mike/dev/amateur_astro/myPiFinder/wt-sqm/python\")\n", "cwd = Path(os.getcwd())\n", "print(cwd)\n", "tetra3_path = cwd / \"PiFinder/tetra3/tetra3\"\n", - "root_path = cwd / '..'\n", + "root_path = cwd / \"..\"\n", "\n", "# Add it only once if it's not already there\n", "if str(tetra3_path) not in sys.path:\n", @@ -82,9 +84,10 @@ "\n", "# Silence tetra3 DEBUG output BEFORE importing tetra3\n", "import logging\n", + "\n", "logging.basicConfig(level=logging.WARNING)\n", - "logging.getLogger('tetra3.Tetra3').setLevel(logging.WARNING)\n", - "logging.getLogger('Solver').setLevel(logging.WARNING)\n", + "logging.getLogger(\"tetra3.Tetra3\").setLevel(logging.WARNING)\n", + "logging.getLogger(\"Solver\").setLevel(logging.WARNING)\n", "\n", "# Now try importing\n", "\n", @@ -92,11 +95,10 @@ "import PiFinder.tetra3.tetra3 as tetra3\n", "from PiFinder.tetra3.tetra3 import cedar_detect_client\n", "from PiFinder import utils\n", + "\n", "os_detail, platform, arch = utils.get_os_info()\n", "\n", - "t3 = tetra3.Tetra3(\n", - " str(tetra3_path / \"data/default_database.npz\")\n", - ")\n", + "t3 = tetra3.Tetra3(str(tetra3_path / \"data/default_database.npz\"))\n", "\n", "logger.info(\"Starting Solver Loop\")\n", "# Start cedar detect server\n", @@ -160,26 +162,26 @@ "outputs": [], "source": [ "images = {\n", - " 'sqm1833.png': {'realsqm': 18.33},\n", - " 'sqm1837.png': {'realsqm': 18.37},\n", - " 'sqm1845.png': {'realsqm': 18.45},\n", - " 'sqm1855.png': {'realsqm': 18.55},\n", - " 'sqm1860.png': {'realsqm': 18.60},\n", - " 'sqm1870.png': {'realsqm': 18.70},\n", - " 'sqm1980.png': {'realsqm': 19.80},\n", - " 'sqm2000_0.8-4.png': {'realsqm': 20.00},\n", - " 'sqm2000_0.8-3.png': {'realsqm': 20.00},\n", - " 'sqm1818_raw_new_0.2.png': {'realsqm': 18.18}, \n", - " 'sqm1818_raw_new_1.png': {'realsqm': 18.18}\n", + " \"sqm1833.png\": {\"realsqm\": 18.33},\n", + " \"sqm1837.png\": {\"realsqm\": 18.37},\n", + " \"sqm1845.png\": {\"realsqm\": 18.45},\n", + " \"sqm1855.png\": {\"realsqm\": 18.55},\n", + " \"sqm1860.png\": {\"realsqm\": 18.60},\n", + " \"sqm1870.png\": {\"realsqm\": 18.70},\n", + " \"sqm1980.png\": {\"realsqm\": 19.80},\n", + " \"sqm2000_0.8-4.png\": {\"realsqm\": 20.00},\n", + " \"sqm2000_0.8-3.png\": {\"realsqm\": 20.00},\n", + " \"sqm1818_raw_new_0.2.png\": {\"realsqm\": 18.18},\n", + " \"sqm1818_raw_new_1.png\": {\"realsqm\": 18.18},\n", "}\n", "\n", "#\n", "# {\n", - "# 'sqmbla.png' : {'realsqm': 18.44, \n", + "# 'sqmbla.png' : {'realsqm': 18.44,\n", "#\n", "#\n", - "#images = {'sqm1833.png': images['sqm1833.png']}\n", - "#images = {'sqm1837.png': images['sqm1837.png']}" + "# images = {'sqm1833.png': images['sqm1833.png']}\n", + "# images = {'sqm1837.png': images['sqm1837.png']}" ] }, { @@ -197,7 +199,7 @@ "metadata": {}, "outputs": [], "source": [ - "def load_image(current_image, image_path = Path('../test_images/')):\n", + "def load_image(current_image, image_path=Path(\"../test_images/\")):\n", " img = Image.open(image_path / current_image)\n", " rgb_np_image = np.asarray(img, dtype=np.uint8)\n", " np_image = rgb_np_image[:, :, 0] # Takes just the red values\n", @@ -205,16 +207,18 @@ " # np_image = ((stretched - stretched.min()) * (255.0/(stretched.max() - stretched.min()))).astype(np.uint8)\n", " return np_image, img\n", "\n", + "\n", "def show_image(image):\n", - " plt.imshow(image, cmap='gray')\n", + " plt.imshow(image, cmap=\"gray\")\n", " plt.title(\"Test image\")\n", " plt.colorbar()\n", - " plt.show() \n", + " plt.show()\n", + "\n", "\n", "# To use just one specific method:\n", "def percentile_stretch(image, name, low=5, high=99):\n", " p_low, p_high = np.percentile(image, (low, high))\n", - " plt.imshow(image, cmap='gray', vmin=p_low, vmax=p_high)\n", + " plt.imshow(image, cmap=\"gray\", vmin=p_low, vmax=p_high)\n", " plt.title(name)\n", " plt.colorbar()\n", " plt.show()" @@ -536,7 +540,7 @@ "for filename in images:\n", " print(f\"{filename}\")\n", " np_image, image = load_image(filename)\n", - " images[filename]['np_image'] = np_image\n", + " images[filename][\"np_image\"] = np_image\n", " show_image(np_image)\n", " percentile_stretch(np_image, filename)" ] @@ -592,10 +596,10 @@ " fov_max_error=4.0,\n", " match_max_error=0.005,\n", " return_matches=True,\n", - " target_pixel=(128,128),\n", + " target_pixel=(128, 128),\n", " solve_timeout=1000,\n", " )\n", - " \n", + "\n", " if \"matched_centroids\" in solution:\n", " # Don't clutter printed solution with these fields.\n", " # del solution['matched_centroids']\n", @@ -607,13 +611,16 @@ " del solution[\"cache_hit_fraction\"]\n", " return centroids, solution\n", "\n", - "for key, value in images.items(): \n", - " centroids, solution = detect(value['np_image'])\n", - " value['centroids'] = centroids # Store ALL detected centroids\n", - " value['matched_stars'] = solution['matched_stars']\n", - " value['matched_centroids'] = solution['matched_centroids']\n", - " value['fov'] = solution['FOV']\n", - " print(f\"For {key}, there are {len(value['matched_stars'])} matched_stars and {len(centroids)} total centroids\")" + "\n", + "for key, value in images.items():\n", + " centroids, solution = detect(value[\"np_image\"])\n", + " value[\"centroids\"] = centroids # Store ALL detected centroids\n", + " value[\"matched_stars\"] = solution[\"matched_stars\"]\n", + " value[\"matched_centroids\"] = solution[\"matched_centroids\"]\n", + " value[\"fov\"] = solution[\"FOV\"]\n", + " print(\n", + " f\"For {key}, there are {len(value['matched_stars'])} matched_stars and {len(centroids)} total centroids\"\n", + " )" ] }, { @@ -632,11 +639,11 @@ "outputs": [], "source": [ "def enhance_centroids(value: dict):\n", - " matched_centroids = value['matched_centroids']\n", - " matched_stars = value['matched_stars']\n", + " matched_centroids = value[\"matched_centroids\"]\n", + " matched_stars = value[\"matched_stars\"]\n", " xymags = []\n", " for centr, stars in zip(matched_centroids, matched_stars):\n", - " xymags.append([*centr,*stars])\n", + " xymags.append([*centr, *stars])\n", " xymags = np.array(xymags)\n", " xymags_sorted = xymags[xymags[:, 4].argsort()]\n", " # pixel_x, pixel_y - sorted\n", @@ -645,16 +652,16 @@ " matched_stars_s = [[x[2], x[3], x[4]] for x in xymags_sorted]\n", " # pixel_x, pixel_y, mag - sorted\n", " matched = [[x[0], x[1], x[4]] for x in xymags_sorted]\n", - " value['matched_centroids'] = matched_centroids_s\n", - " value['matched_stars'] = matched_stars_s\n", - " value['matched'] = matched\n", + " value[\"matched_centroids\"] = matched_centroids_s\n", + " value[\"matched_stars\"] = matched_stars_s\n", + " value[\"matched\"] = matched\n", " return value\n", - " \n", + "\n", + "\n", "for key, value in images.items():\n", " images[key] = enhance_centroids(value)\n", "\n", - "#pp.pprint(images)\n", - "\n" + "# pp.pprint(images)" ] }, { @@ -685,15 +692,16 @@ "source": [ "radius = 4\n", "plt.title(f\"circles with radius {radius}\")\n", - "plt.imshow(np.log1p(np_image), cmap='gray')\n", + "plt.imshow(np.log1p(np_image), cmap=\"gray\")\n", "plt.colorbar()\n", "# Add circles\n", "for i, (y, x) in enumerate(centroids):\n", - " circle = plt.Circle((x, y), radius, fill=False, color='red')\n", + " circle = plt.Circle((x, y), radius, fill=False, color=\"red\")\n", " plt.gca().add_artist(circle)\n", - " # Add number annotation\n", - " plt.annotate(str(i), (x, y), color='yellow', fontsize=8, \n", - " ha='right', va='top') # ha/va center the text on the point\n", + " # Add number annotation\n", + " plt.annotate(\n", + " str(i), (x, y), color=\"yellow\", fontsize=8, ha=\"right\", va=\"top\"\n", + " ) # ha/va center the text on the point\n", "plt.show()" ] }, @@ -729,31 +737,38 @@ "def histogram(image):\n", " # Method 1: Using PIL's built-in histogram\n", " hist = image.histogram()\n", - " \n", + "\n", " # Method 2: Better visualization with matplotlib\n", " np_image = np.array(image)\n", - " \n", + "\n", " plt.figure(figsize=(10, 6))\n", " plt.hist(np_image.ravel(), bins=256, range=(0, 256), density=True, alpha=0.75)\n", - " plt.xlabel('Pixel Value')\n", - " plt.ylabel('Frequency')\n", - " plt.title('Image Histogram')\n", + " plt.xlabel(\"Pixel Value\")\n", + " plt.ylabel(\"Frequency\")\n", + " plt.title(\"Image Histogram\")\n", " plt.grid(True, alpha=0.2)\n", - " \n", + "\n", " # Optional: Add vertical line for mean\n", " mean_val = np_image.mean()\n", - " plt.axvline(mean_val, color='r', linestyle='dashed', alpha=0.5, \n", - " label=f'Mean: {mean_val:.1f}')\n", + " plt.axvline(\n", + " mean_val,\n", + " color=\"r\",\n", + " linestyle=\"dashed\",\n", + " alpha=0.5,\n", + " label=f\"Mean: {mean_val:.1f}\",\n", + " )\n", " plt.legend()\n", - " \n", + "\n", " plt.show()\n", - " \n", + "\n", " # Print some statistics\n", " print(f\"Min: {np_image.min()}\")\n", " print(f\"Max: {np_image.max()}\")\n", " print(f\"Mean: {np_image.mean():.2f}\")\n", " print(f\"Median: {np.median(np_image):.2f}\")\n", " print(f\"Std Dev: {np_image.std():.2f}\")\n", + "\n", + "\n", "histogram(image)" ] }, @@ -795,19 +810,21 @@ "\n", "plt.subplot(121)\n", "plt.hist(np_array.ravel(), bins=256, range=(0, 256), density=True, alpha=0.75)\n", - "plt.title('Original Histogram')\n", - "plt.xlabel('Pixel Value')\n", - "plt.ylabel('Frequency')\n", + "plt.title(\"Original Histogram\")\n", + "plt.xlabel(\"Pixel Value\")\n", + "plt.ylabel(\"Frequency\")\n", "\n", "# Linear stretch (normalize to 0-255)\n", "stretched = np_array.astype(float)\n", - "stretched = ((stretched - stretched.min()) * (255.0/(stretched.max() - stretched.min()))).astype(np.uint8)\n", + "stretched = (\n", + " (stretched - stretched.min()) * (255.0 / (stretched.max() - stretched.min()))\n", + ").astype(np.uint8)\n", "\n", "plt.subplot(122)\n", "plt.hist(stretched.ravel(), bins=256, range=(0, 256), density=True, alpha=0.75)\n", - "plt.title('Stretched Histogram')\n", - "plt.xlabel('Pixel Value')\n", - "plt.ylabel('Frequency')\n", + "plt.title(\"Stretched Histogram\")\n", + "plt.xlabel(\"Pixel Value\")\n", + "plt.ylabel(\"Frequency\")\n", "\n", "plt.tight_layout()\n", "plt.show()\n", @@ -910,46 +927,52 @@ "\n", "# Parameters for local background measurement\n", "APERTURE_RADIUS = 5 # Star flux aperture (pixels)\n", - "ANNULUS_INNER = 6 # Inner radius of background annulus (pixels)\n", - "ANNULUS_OUTER = 14 # Outer radius of background annulus (pixels)\n", - "ALTITUDE = 90 # Zenith for now (no extinction correction until we have real altitude)\n", - "PEDESTAL = 0 # No pedestal correction for now\n", + "ANNULUS_INNER = 6 # Inner radius of background annulus (pixels)\n", + "ANNULUS_OUTER = 14 # Outer radius of background annulus (pixels)\n", + "ALTITUDE = 90 # Zenith for now (no extinction correction until we have real altitude)\n", + "PEDESTAL = 0 # No pedestal correction for now\n", "\n", "print(\"Production SQM Implementation Results (Local Annulus Backgrounds)\")\n", "print(\"=\" * 100)\n", - "print(f\"{'Image':<25} {'Expected':<12} {'Calculated':<12} {'Error':<12} {'Error %':<12}\")\n", + "print(\n", + " f\"{'Image':<25} {'Expected':<12} {'Calculated':<12} {'Error':<12} {'Error %':<12}\"\n", + ")\n", "print(\"-\" * 100)\n", "\n", "for key, value in images.items():\n", " # Build solution dict from the existing data\n", " solution = {\n", - " 'FOV': value['fov'],\n", - " 'matched_centroids': value['matched_centroids'],\n", - " 'matched_stars': value['matched_stars']\n", + " \"FOV\": value[\"fov\"],\n", + " \"matched_centroids\": value[\"matched_centroids\"],\n", + " \"matched_stars\": value[\"matched_stars\"],\n", " }\n", - " \n", + "\n", " # Calculate SQM using local annulus backgrounds\n", " sqm_val, details = sqm.calculate(\n", - " centroids=value['centroids'],\n", + " centroids=value[\"centroids\"],\n", " solution=solution,\n", - " image=value['np_image'], \n", + " image=value[\"np_image\"],\n", " altitude_deg=ALTITUDE,\n", " aperture_radius=APERTURE_RADIUS,\n", " annulus_inner_radius=ANNULUS_INNER,\n", " annulus_outer_radius=ANNULUS_OUTER,\n", - " pedestal=PEDESTAL\n", + " pedestal=PEDESTAL,\n", " )\n", - " \n", + "\n", " if sqm_val is not None:\n", - " value['sqm_calculated'] = sqm_val\n", - " value['sqm_details'] = details\n", - " \n", - " expected = value['realsqm']\n", + " value[\"sqm_calculated\"] = sqm_val\n", + " value[\"sqm_details\"] = details\n", + "\n", + " expected = value[\"realsqm\"]\n", " calc_err = sqm_val - expected\n", " err_pct = 100 * calc_err / expected\n", - " \n", - " print(f\"{key:<25} {expected:>10.2f} {sqm_val:>10.2f} {calc_err:>10.2f} {err_pct:>10.1f}%\")\n", - " print(f\"{'':>25} mzero={details['mzero']:>6.2f}, bg={details['background_per_pixel']:>6.1f} ADU/px, {details['n_matched_stars']} stars\")\n", + "\n", + " print(\n", + " f\"{key:<25} {expected:>10.2f} {sqm_val:>10.2f} {calc_err:>10.2f} {err_pct:>10.1f}%\"\n", + " )\n", + " print(\n", + " f\"{'':>25} mzero={details['mzero']:>6.2f}, bg={details['background_per_pixel']:>6.1f} ADU/px, {details['n_matched_stars']} stars\"\n", + " )\n", " else:\n", " print(f\"{key:<25} FAILED\")\n", "\n", @@ -1053,17 +1076,17 @@ "\n", "# Define all test images\n", "all_images = {\n", - " 'sqm1833.png': {'realsqm': 18.33},\n", - " 'sqm1837.png': {'realsqm': 18.37},\n", - " 'sqm1845.png': {'realsqm': 18.45},\n", - " 'sqm1855.png': {'realsqm': 18.55},\n", - " 'sqm1860.png': {'realsqm': 18.60},\n", - " 'sqm1870.png': {'realsqm': 18.70},\n", - " 'sqm1980.png': {'realsqm': 19.80},\n", - " 'sqm2000_0.8-4.png': {'realsqm': 20.00},\n", - " 'sqm2000_0.8-3.png': {'realsqm': 20.00},\n", - " 'sqm1818_raw_new_0.2.png': {'realsqm': 18.18}, \n", - " 'sqm1818_raw_new_1.png': {'realsqm': 18.18}\n", + " \"sqm1833.png\": {\"realsqm\": 18.33},\n", + " \"sqm1837.png\": {\"realsqm\": 18.37},\n", + " \"sqm1845.png\": {\"realsqm\": 18.45},\n", + " \"sqm1855.png\": {\"realsqm\": 18.55},\n", + " \"sqm1860.png\": {\"realsqm\": 18.60},\n", + " \"sqm1870.png\": {\"realsqm\": 18.70},\n", + " \"sqm1980.png\": {\"realsqm\": 19.80},\n", + " \"sqm2000_0.8-4.png\": {\"realsqm\": 20.00},\n", + " \"sqm2000_0.8-3.png\": {\"realsqm\": 20.00},\n", + " \"sqm1818_raw_new_0.2.png\": {\"realsqm\": 18.18},\n", + " \"sqm1818_raw_new_1.png\": {\"realsqm\": 18.18},\n", "}\n", "\n", "# Parameters for local annulus background\n", @@ -1081,25 +1104,27 @@ "\n", "for filename, info in all_images.items():\n", " print(f\"\\nProcessing {filename}...\")\n", - " \n", + "\n", " # Load image\n", " np_image, _ = load_image(filename)\n", - " \n", + "\n", " # Detect stars and solve\n", " centroids, solution = detect(np_image)\n", - " \n", + "\n", " # Check if solve succeeded\n", - " if 'matched_centroids' not in solution or len(solution['matched_centroids']) == 0:\n", + " if \"matched_centroids\" not in solution or len(solution[\"matched_centroids\"]) == 0:\n", " print(\" ❌ Failed to solve\")\n", - " results_summary.append({\n", - " 'filename': filename,\n", - " 'expected': info['realsqm'],\n", - " 'calculated': None,\n", - " 'error': None,\n", - " 'status': 'SOLVE_FAILED'\n", - " })\n", + " results_summary.append(\n", + " {\n", + " \"filename\": filename,\n", + " \"expected\": info[\"realsqm\"],\n", + " \"calculated\": None,\n", + " \"error\": None,\n", + " \"status\": \"SOLVE_FAILED\",\n", + " }\n", + " )\n", " continue\n", - " \n", + "\n", " # Calculate SQM\n", " sqm_val, details = sqm.calculate(\n", " centroids=centroids,\n", @@ -1109,33 +1134,41 @@ " aperture_radius=APERTURE_RADIUS,\n", " annulus_inner_radius=ANNULUS_INNER,\n", " annulus_outer_radius=ANNULUS_OUTER,\n", - " pedestal=PEDESTAL\n", + " pedestal=PEDESTAL,\n", " )\n", - " \n", + "\n", " if sqm_val is not None:\n", - " error = sqm_val - info['realsqm']\n", - " print(f\" ✓ SQM: {sqm_val:.2f} (expected: {info['realsqm']:.2f}, error: {error:+.2f})\")\n", - " print(f\" mzero={details['mzero']:.2f}, stars={details['n_matched_stars']}, centroids={details['n_centroids']}\")\n", - " \n", - " results_summary.append({\n", - " 'filename': filename,\n", - " 'expected': info['realsqm'],\n", - " 'calculated': sqm_val,\n", - " 'error': error,\n", - " 'mzero': details['mzero'],\n", - " 'n_stars': details['n_matched_stars'],\n", - " 'n_centroids': details['n_centroids'],\n", - " 'status': 'OK'\n", - " })\n", + " error = sqm_val - info[\"realsqm\"]\n", + " print(\n", + " f\" ✓ SQM: {sqm_val:.2f} (expected: {info['realsqm']:.2f}, error: {error:+.2f})\"\n", + " )\n", + " print(\n", + " f\" mzero={details['mzero']:.2f}, stars={details['n_matched_stars']}, centroids={details['n_centroids']}\"\n", + " )\n", + "\n", + " results_summary.append(\n", + " {\n", + " \"filename\": filename,\n", + " \"expected\": info[\"realsqm\"],\n", + " \"calculated\": sqm_val,\n", + " \"error\": error,\n", + " \"mzero\": details[\"mzero\"],\n", + " \"n_stars\": details[\"n_matched_stars\"],\n", + " \"n_centroids\": details[\"n_centroids\"],\n", + " \"status\": \"OK\",\n", + " }\n", + " )\n", " else:\n", " print(\" ❌ Failed to calculate SQM\")\n", - " results_summary.append({\n", - " 'filename': filename,\n", - " 'expected': info['realsqm'],\n", - " 'calculated': None,\n", - " 'error': None,\n", - " 'status': 'CALC_FAILED'\n", - " })\n", + " results_summary.append(\n", + " {\n", + " \"filename\": filename,\n", + " \"expected\": info[\"realsqm\"],\n", + " \"calculated\": None,\n", + " \"error\": None,\n", + " \"status\": \"CALC_FAILED\",\n", + " }\n", + " )\n", "\n", "print(\"\\n\" + \"=\" * 100)\n", "print(\"SUMMARY\")\n", @@ -1144,22 +1177,28 @@ "print(\"-\" * 100)\n", "\n", "for result in results_summary:\n", - " if result['status'] == 'OK':\n", - " print(f\"{result['filename']:<30} {result['expected']:>10.2f} {result['calculated']:>10.2f} {result['error']:>10.2f} {result['status']:<15}\")\n", + " if result[\"status\"] == \"OK\":\n", + " print(\n", + " f\"{result['filename']:<30} {result['expected']:>10.2f} {result['calculated']:>10.2f} {result['error']:>10.2f} {result['status']:<15}\"\n", + " )\n", " else:\n", - " print(f\"{result['filename']:<30} {result['expected']:>10.2f} {'---':>10} {'---':>10} {result['status']:<15}\")\n", + " print(\n", + " f\"{result['filename']:<30} {result['expected']:>10.2f} {'---':>10} {'---':>10} {result['status']:<15}\"\n", + " )\n", "\n", "# Calculate statistics for successful measurements\n", - "successful = [r for r in results_summary if r['status'] == 'OK']\n", + "successful = [r for r in results_summary if r[\"status\"] == \"OK\"]\n", "if successful:\n", - " errors = [r['error'] for r in successful]\n", + " errors = [r[\"error\"] for r in successful]\n", " print(\"\\n\" + \"=\" * 100)\n", " print(\"STATISTICS\")\n", " print(\"=\" * 100)\n", " print(f\"Successful measurements: {len(successful)}/{len(results_summary)}\")\n", " print(f\"Mean error: {np.mean(errors):+.2f} mag/arcsec²\")\n", " print(f\"Std dev: {np.std(errors):.2f} mag/arcsec²\")\n", - " print(f\"RMS error: {np.sqrt(np.mean(np.array(errors)**2)):.2f} mag/arcsec²\")\n", + " print(\n", + " f\"RMS error: {np.sqrt(np.mean(np.array(errors) ** 2)):.2f} mag/arcsec²\"\n", + " )\n", " print(f\"Max error: {np.max(np.abs(errors)):.2f} mag/arcsec²\")" ] }, @@ -1329,36 +1368,40 @@ "from matplotlib.gridspec import GridSpec\n", "from scipy import stats\n", "\n", + "\n", "def sigma_clip_mean(data, sigma=2.0, max_iter=3):\n", " \"\"\"Calculate mean after sigma clipping outliers. Returns mean, std, and mask matching input size.\"\"\"\n", " data = np.array(data)\n", " original_indices = np.arange(len(data))\n", " mask = np.ones(len(data), dtype=bool)\n", - " \n", + "\n", " current_data = data.copy()\n", " current_indices = original_indices.copy()\n", - " \n", + "\n", " for _ in range(max_iter):\n", " mean = np.mean(current_data)\n", " std = np.std(current_data)\n", " keep = np.abs(current_data - mean) < sigma * std\n", - " \n", + "\n", " if np.sum(keep) == len(current_data):\n", " break\n", - " \n", + "\n", " current_data = current_data[keep]\n", " current_indices = current_indices[keep]\n", - " \n", + "\n", " # Create mask for original array\n", " final_mask = np.zeros(len(data), dtype=bool)\n", " final_mask[current_indices] = True\n", - " \n", + "\n", " return np.mean(current_data), np.std(current_data), final_mask\n", "\n", - "def detect_aperture_overlaps(star_centroids, aperture_radius, annulus_inner, annulus_outer):\n", + "\n", + "def detect_aperture_overlaps(\n", + " star_centroids, aperture_radius, annulus_inner, annulus_outer\n", + "):\n", " \"\"\"\n", " Detect overlapping apertures and annuli between star pairs.\n", - " \n", + "\n", " Returns list of overlaps with format:\n", " {\n", " 'star1_idx': int,\n", @@ -1370,61 +1413,68 @@ " \"\"\"\n", " overlaps = []\n", " n_stars = len(star_centroids)\n", - " \n", + "\n", " for i in range(n_stars):\n", - " for j in range(i+1, n_stars):\n", + " for j in range(i + 1, n_stars):\n", " x1, y1 = star_centroids[i]\n", " x2, y2 = star_centroids[j]\n", - " distance = np.sqrt((x2 - x1)**2 + (y2 - y1)**2)\n", - " \n", + " distance = np.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2)\n", + "\n", " # Check different overlap types\n", " if distance < 2 * aperture_radius:\n", " # CRITICAL: Aperture-aperture overlap (star flux contamination)\n", - " overlaps.append({\n", - " 'star1_idx': i,\n", - " 'star2_idx': j,\n", - " 'distance': distance,\n", - " 'type': 'CRITICAL',\n", - " 'description': f'Aperture overlap (d={distance:.1f}px < {2*aperture_radius}px)'\n", - " })\n", + " overlaps.append(\n", + " {\n", + " \"star1_idx\": i,\n", + " \"star2_idx\": j,\n", + " \"distance\": distance,\n", + " \"type\": \"CRITICAL\",\n", + " \"description\": f\"Aperture overlap (d={distance:.1f}px < {2 * aperture_radius}px)\",\n", + " }\n", + " )\n", " elif distance < aperture_radius + annulus_outer:\n", " # HIGH: Aperture inside another star's annulus (background contamination)\n", - " overlaps.append({\n", - " 'star1_idx': i,\n", - " 'star2_idx': j,\n", - " 'distance': distance,\n", - " 'type': 'HIGH',\n", - " 'description': f'Aperture-annulus overlap (d={distance:.1f}px < {aperture_radius + annulus_outer}px)'\n", - " })\n", + " overlaps.append(\n", + " {\n", + " \"star1_idx\": i,\n", + " \"star2_idx\": j,\n", + " \"distance\": distance,\n", + " \"type\": \"HIGH\",\n", + " \"description\": f\"Aperture-annulus overlap (d={distance:.1f}px < {aperture_radius + annulus_outer}px)\",\n", + " }\n", + " )\n", " elif distance < 2 * annulus_outer:\n", " # MEDIUM: Annulus-annulus overlap (less critical)\n", - " overlaps.append({\n", - " 'star1_idx': i,\n", - " 'star2_idx': j,\n", - " 'distance': distance,\n", - " 'type': 'MEDIUM',\n", - " 'description': f'Annulus overlap (d={distance:.1f}px < {2*annulus_outer}px)'\n", - " })\n", - " \n", + " overlaps.append(\n", + " {\n", + " \"star1_idx\": i,\n", + " \"star2_idx\": j,\n", + " \"distance\": distance,\n", + " \"type\": \"MEDIUM\",\n", + " \"description\": f\"Annulus overlap (d={distance:.1f}px < {2 * annulus_outer}px)\",\n", + " }\n", + " )\n", + "\n", " return overlaps\n", "\n", + "\n", "# Process each image with full diagnostics\n", "for filename, info in all_images.items():\n", - " print(f\"\\n{'='*100}\")\n", + " print(f\"\\n{'=' * 100}\")\n", " print(f\"Processing: {filename}\")\n", " print(f\"Expected SQM: {info['realsqm']:.2f} mag/arcsec²\")\n", - " print(f\"{'='*100}\\n\")\n", - " \n", + " print(f\"{'=' * 100}\\n\")\n", + "\n", " # Load image\n", " np_image, _ = load_image(filename)\n", - " \n", + "\n", " # Detect stars and solve\n", " centroids, solution = detect(np_image)\n", - " \n", - " if 'matched_centroids' not in solution or len(solution['matched_centroids']) == 0:\n", + "\n", + " if \"matched_centroids\" not in solution or len(solution[\"matched_centroids\"]) == 0:\n", " print(f\"❌ Failed to solve {filename}\\n\")\n", " continue\n", - " \n", + "\n", " # Calculate SQM WITHOUT overlap correction\n", " sqm_val, details = sqm.calculate(\n", " centroids=centroids,\n", @@ -1435,9 +1485,9 @@ " annulus_inner_radius=ANNULUS_INNER,\n", " annulus_outer_radius=ANNULUS_OUTER,\n", " pedestal=PEDESTAL,\n", - " correct_overlaps=False\n", + " correct_overlaps=False,\n", " )\n", - " \n", + "\n", " # Calculate SQM WITH overlap correction\n", " sqm_val_corrected, details_corrected = sqm.calculate(\n", " centroids=centroids,\n", @@ -1448,90 +1498,102 @@ " annulus_inner_radius=ANNULUS_INNER,\n", " annulus_outer_radius=ANNULUS_OUTER,\n", " pedestal=PEDESTAL,\n", - " correct_overlaps=True\n", + " correct_overlaps=True,\n", " )\n", - " \n", + "\n", " if sqm_val is None:\n", " print(f\"❌ Failed to calculate SQM for {filename}\\n\")\n", " continue\n", - " \n", + "\n", " # Extract details (use non-corrected for visualization, but we have both)\n", - " star_centroids = np.array(details['star_centroids'])\n", - " star_mags = details['star_mags']\n", - " star_fluxes = details['star_fluxes']\n", - " star_mzeros = details['star_mzeros']\n", - " star_local_bgs = details.get('star_local_backgrounds', [None] * len(star_mags))\n", - " \n", + " star_centroids = np.array(details[\"star_centroids\"])\n", + " star_mags = details[\"star_mags\"]\n", + " star_fluxes = details[\"star_fluxes\"]\n", + " star_mzeros = details[\"star_mzeros\"]\n", + " star_local_bgs = details.get(\"star_local_backgrounds\", [None] * len(star_mags))\n", + "\n", " # ========== APERTURE OVERLAP DETECTION ==========\n", - " overlaps = detect_aperture_overlaps(star_centroids, APERTURE_RADIUS, ANNULUS_INNER, ANNULUS_OUTER)\n", - " \n", + " overlaps = detect_aperture_overlaps(\n", + " star_centroids, APERTURE_RADIUS, ANNULUS_INNER, ANNULUS_OUTER\n", + " )\n", + "\n", " # Build set of stars affected by overlaps\n", " overlapping_stars = set()\n", " for overlap in overlaps:\n", - " overlapping_stars.add(overlap['star1_idx'])\n", - " overlapping_stars.add(overlap['star2_idx'])\n", - " \n", + " overlapping_stars.add(overlap[\"star1_idx\"])\n", + " overlapping_stars.add(overlap[\"star2_idx\"])\n", + "\n", " # Categorize overlaps by severity\n", - " critical_overlaps = [o for o in overlaps if o['type'] == 'CRITICAL']\n", - " high_overlaps = [o for o in overlaps if o['type'] == 'HIGH']\n", - " medium_overlaps = [o for o in overlaps if o['type'] == 'MEDIUM']\n", - " \n", + " critical_overlaps = [o for o in overlaps if o[\"type\"] == \"CRITICAL\"]\n", + " high_overlaps = [o for o in overlaps if o[\"type\"] == \"HIGH\"]\n", + " medium_overlaps = [o for o in overlaps if o[\"type\"] == \"MEDIUM\"]\n", + "\n", " # Print overlap summary\n", " if overlaps:\n", " print(f\"⚠️ OVERLAPS DETECTED: {len(overlaps)} total\")\n", " print(f\" CRITICAL (aperture-aperture): {len(critical_overlaps)}\")\n", " print(f\" HIGH (aperture-annulus): {len(high_overlaps)}\")\n", " print(f\" MEDIUM (annulus-annulus): {len(medium_overlaps)}\")\n", - " print(f\" Stars affected: {len(overlapping_stars)}/{len(star_centroids)} ({100*len(overlapping_stars)/len(star_centroids):.0f}%)\")\n", + " print(\n", + " f\" Stars affected: {len(overlapping_stars)}/{len(star_centroids)} ({100 * len(overlapping_stars) / len(star_centroids):.0f}%)\"\n", + " )\n", " print()\n", " else:\n", " print(\"✓ No aperture overlaps detected\\n\")\n", - " \n", + "\n", " # Calculate alternative mzero methods - filter for valid stars (flux > 0 and mzero not None)\n", - " valid_indices = [i for i in range(len(star_fluxes)) \n", - " if star_fluxes[i] > 0 and star_mzeros[i] is not None]\n", + " valid_indices = [\n", + " i\n", + " for i in range(len(star_fluxes))\n", + " if star_fluxes[i] > 0 and star_mzeros[i] is not None\n", + " ]\n", " valid_mzeros = np.array([star_mzeros[i] for i in valid_indices])\n", " valid_mags = np.array([star_mags[i] for i in valid_indices])\n", " valid_fluxes = np.array([star_fluxes[i] for i in valid_indices])\n", - " \n", - " \n", + "\n", " if len(valid_mzeros) > 0:\n", " mzero_mean = np.mean(valid_mzeros)\n", " mzero_median = np.median(valid_mzeros)\n", " mzero_std = np.std(valid_mzeros)\n", - " \n", + "\n", " # Sigma clipping\n", " if len(valid_mzeros) >= 3:\n", - " mzero_sigclip, mzero_sigclip_std, sigclip_mask = sigma_clip_mean(valid_mzeros, sigma=2.0)\n", + " mzero_sigclip, mzero_sigclip_std, sigclip_mask = sigma_clip_mean(\n", + " valid_mzeros, sigma=2.0\n", + " )\n", " n_clipped = len(valid_mzeros) - np.sum(sigclip_mask)\n", " else:\n", " mzero_sigclip = mzero_mean\n", " mzero_sigclip_std = mzero_std\n", " n_clipped = 0\n", " sigclip_mask = np.ones(len(valid_mzeros), dtype=bool)\n", - " \n", + "\n", " # Trendline correction methods\n", " if len(valid_mzeros) >= 3:\n", " # Method 1: Trendline on all valid stars\n", - " slope_all, intercept_all, r_value_all, _, _ = stats.linregress(valid_mags, valid_mzeros)\n", + " slope_all, intercept_all, r_value_all, _, _ = stats.linregress(\n", + " valid_mags, valid_mzeros\n", + " )\n", " # Evaluate trend at median magnitude\n", " median_mag = np.median(valid_mags)\n", " mzero_trend = slope_all * median_mag + intercept_all\n", - " \n", + "\n", " # Calculate residuals for quality metric\n", " predicted_all = slope_all * valid_mags + intercept_all\n", " residuals_all = valid_mzeros - predicted_all\n", " trend_rms_all = np.sqrt(np.mean(residuals_all**2))\n", - " \n", + "\n", " # Method 2: Sigma clip THEN fit trendline\n", " clipped_mags = valid_mags[sigclip_mask]\n", " clipped_mzeros = valid_mzeros[sigclip_mask]\n", - " \n", + "\n", " if len(clipped_mzeros) >= 3:\n", - " slope_clip, intercept_clip, r_value_clip, _, _ = stats.linregress(clipped_mags, clipped_mzeros)\n", + " slope_clip, intercept_clip, r_value_clip, _, _ = stats.linregress(\n", + " clipped_mags, clipped_mzeros\n", + " )\n", " median_mag_clip = np.median(clipped_mags)\n", " mzero_trend_sigclip = slope_clip * median_mag_clip + intercept_clip\n", - " \n", + "\n", " predicted_clip = slope_clip * clipped_mags + intercept_clip\n", " residuals_clip = clipped_mzeros - predicted_clip\n", " trend_rms_clip = np.sqrt(np.mean(residuals_clip**2))\n", @@ -1552,398 +1614,632 @@ " r_value_clip = 0\n", " trend_rms_all = mzero_std\n", " trend_rms_clip = mzero_sigclip_std\n", - " \n", + "\n", " # Calculate SQM with alternative methods\n", - " bg_flux_density = details['background_flux_density']\n", - " extinction = details['extinction_correction']\n", - " \n", + " bg_flux_density = details[\"background_flux_density\"]\n", + " extinction = details[\"extinction_correction\"]\n", + "\n", " sqm_median = mzero_median - 2.5 * np.log10(bg_flux_density) + extinction\n", " sqm_sigclip = mzero_sigclip - 2.5 * np.log10(bg_flux_density) + extinction\n", " sqm_trend = mzero_trend - 2.5 * np.log10(bg_flux_density) + extinction\n", - " sqm_trend_sigclip = mzero_trend_sigclip - 2.5 * np.log10(bg_flux_density) + extinction\n", + " sqm_trend_sigclip = (\n", + " mzero_trend_sigclip - 2.5 * np.log10(bg_flux_density) + extinction\n", + " )\n", " else:\n", - " mzero_mean = mzero_median = mzero_sigclip = mzero_trend = mzero_trend_sigclip = None\n", + " mzero_mean = mzero_median = mzero_sigclip = mzero_trend = (\n", + " mzero_trend_sigclip\n", + " ) = None\n", " sqm_median = sqm_sigclip = sqm_trend = sqm_trend_sigclip = None\n", " n_clipped = 0\n", " slope_all = slope_clip = 0\n", " r_value_all = r_value_clip = 0\n", - " \n", + "\n", " # Create comprehensive figure with 4x3 grid\n", " fig = plt.figure(figsize=(24, 16))\n", " gs = GridSpec(4, 3, figure=fig, hspace=0.35, wspace=0.3)\n", - " \n", + "\n", " # ========== Panel 1: Image with apertures (spans 2x2) ==========\n", " ax1 = fig.add_subplot(gs[0:2, 0:2])\n", - " \n", + "\n", " # Display image with log stretch\n", " vmin, vmax = np.percentile(np_image, [1, 99.5])\n", - " im = ax1.imshow(np_image, cmap='gray', vmin=vmin, vmax=vmax, origin='lower')\n", - " \n", + " im = ax1.imshow(np_image, cmap=\"gray\", vmin=vmin, vmax=vmax, origin=\"lower\")\n", + "\n", " # Draw connecting lines for overlaps FIRST (so they appear behind circles)\n", " for overlap in overlaps:\n", - " x1, y1 = star_centroids[overlap['star1_idx']]\n", - " x2, y2 = star_centroids[overlap['star2_idx']]\n", - " \n", + " x1, y1 = star_centroids[overlap[\"star1_idx\"]]\n", + " x2, y2 = star_centroids[overlap[\"star2_idx\"]]\n", + "\n", " # Color by severity\n", - " if overlap['type'] == 'CRITICAL':\n", - " line_color = 'red'\n", - " elif overlap['type'] == 'HIGH':\n", - " line_color = 'orange'\n", + " if overlap[\"type\"] == \"CRITICAL\":\n", + " line_color = \"red\"\n", + " elif overlap[\"type\"] == \"HIGH\":\n", + " line_color = \"orange\"\n", " else:\n", - " line_color = 'yellow'\n", - " \n", - " ax1.plot([x1, x2], [y1, y2], color=line_color, linestyle=':', linewidth=2, alpha=0.7)\n", - " \n", + " line_color = \"yellow\"\n", + "\n", + " ax1.plot(\n", + " [x1, x2], [y1, y2], color=line_color, linestyle=\":\", linewidth=2, alpha=0.7\n", + " )\n", + "\n", " # Draw apertures on matched stars\n", - " for i, (centroid, flux, mag, local_bg) in enumerate(zip(star_centroids, star_fluxes, star_mags, star_local_bgs)):\n", + " for i, (centroid, flux, mag, local_bg) in enumerate(\n", + " zip(star_centroids, star_fluxes, star_mags, star_local_bgs)\n", + " ):\n", " x, y = centroid\n", - " \n", + "\n", " # Color code by flux status, outlier detection, and overlap\n", " is_outlier = False\n", " if flux > 0 and mzero_mean is not None and len(star_mzeros) > i:\n", " mzero_val = star_mzeros[i]\n", " is_outlier = abs(mzero_val - mzero_mean) > 2.0 * mzero_std\n", - " \n", + "\n", " is_overlapping = i in overlapping_stars\n", - " \n", + "\n", " if flux <= 0:\n", - " color = 'red'\n", + " color = \"red\"\n", " alpha = 0.8\n", " elif is_overlapping:\n", - " color = 'magenta' # Magenta for overlapping stars\n", + " color = \"magenta\" # Magenta for overlapping stars\n", " alpha = 0.8\n", " elif is_outlier:\n", - " color = 'orange'\n", + " color = \"orange\"\n", " alpha = 0.7\n", " else:\n", - " color = 'lime'\n", + " color = \"lime\"\n", " alpha = 0.6\n", - " \n", + "\n", " # Draw aperture circle (solid)\n", - " circle = mpatches.Circle((x, y), APERTURE_RADIUS, \n", - " fill=False, edgecolor=color, linewidth=2, alpha=alpha)\n", + " circle = mpatches.Circle(\n", + " (x, y),\n", + " APERTURE_RADIUS,\n", + " fill=False,\n", + " edgecolor=color,\n", + " linewidth=2,\n", + " alpha=alpha,\n", + " )\n", " ax1.add_patch(circle)\n", - " \n", + "\n", " # Draw annulus inner (dashed)\n", - " annulus_inner = mpatches.Circle((x, y), ANNULUS_INNER,\n", - " fill=False, edgecolor=color, linewidth=1, \n", - " linestyle='--', alpha=0.4)\n", + " annulus_inner = mpatches.Circle(\n", + " (x, y),\n", + " ANNULUS_INNER,\n", + " fill=False,\n", + " edgecolor=color,\n", + " linewidth=1,\n", + " linestyle=\"--\",\n", + " alpha=0.4,\n", + " )\n", " ax1.add_patch(annulus_inner)\n", - " \n", + "\n", " # Draw annulus outer (dashed)\n", - " annulus_outer_circle = mpatches.Circle((x, y), ANNULUS_OUTER,\n", - " fill=False, edgecolor=color, linewidth=1, \n", - " linestyle='--', alpha=0.4)\n", + " annulus_outer_circle = mpatches.Circle(\n", + " (x, y),\n", + " ANNULUS_OUTER,\n", + " fill=False,\n", + " edgecolor=color,\n", + " linewidth=1,\n", + " linestyle=\"--\",\n", + " alpha=0.4,\n", + " )\n", " ax1.add_patch(annulus_outer_circle)\n", - " \n", + "\n", " # Label star\n", - " label_text = f'{i}\\nm={mag:.1f}\\nf={flux:.0f}\\nbg={local_bg:.0f}' if local_bg else f'{i}\\nm={mag:.1f}'\n", - " ax1.text(x + ANNULUS_OUTER + 3, y, label_text,\n", - " color=color, fontsize=7, va='center', weight='bold',\n", - " bbox=dict(boxstyle='round,pad=0.3', facecolor='black', alpha=0.5))\n", - " \n", - " ax1.set_title(f'{filename}\\nSQM: {sqm_val:.2f} (expected: {info[\"realsqm\"]:.2f}, error: {sqm_val - info[\"realsqm\"]:+.2f})',\n", - " fontsize=14, weight='bold')\n", - " ax1.set_xlabel('X (pixels)', fontsize=11)\n", - " ax1.set_ylabel('Y (pixels)', fontsize=11)\n", - " plt.colorbar(im, ax=ax1, label='ADU')\n", - " \n", + " label_text = (\n", + " f\"{i}\\nm={mag:.1f}\\nf={flux:.0f}\\nbg={local_bg:.0f}\"\n", + " if local_bg\n", + " else f\"{i}\\nm={mag:.1f}\"\n", + " )\n", + " ax1.text(\n", + " x + ANNULUS_OUTER + 3,\n", + " y,\n", + " label_text,\n", + " color=color,\n", + " fontsize=7,\n", + " va=\"center\",\n", + " weight=\"bold\",\n", + " bbox=dict(boxstyle=\"round,pad=0.3\", facecolor=\"black\", alpha=0.5),\n", + " )\n", + "\n", + " ax1.set_title(\n", + " f\"{filename}\\nSQM: {sqm_val:.2f} (expected: {info['realsqm']:.2f}, error: {sqm_val - info['realsqm']:+.2f})\",\n", + " fontsize=14,\n", + " weight=\"bold\",\n", + " )\n", + " ax1.set_xlabel(\"X (pixels)\", fontsize=11)\n", + " ax1.set_ylabel(\"Y (pixels)\", fontsize=11)\n", + " plt.colorbar(im, ax=ax1, label=\"ADU\")\n", + "\n", " # Legend\n", " legend_elements = [\n", - " mpatches.Patch(color='lime', label='Valid star'),\n", - " mpatches.Patch(color='magenta', label='Overlapping'),\n", - " mpatches.Patch(color='orange', label='Outlier (|Δmzero| > 2σ)'),\n", - " mpatches.Patch(color='red', label='Bad flux (≤ 0)'),\n", - " mpatches.Circle((0, 0), 1, fill=False, edgecolor='white', linewidth=2, label=f'Aperture (r={APERTURE_RADIUS}px)'),\n", - " mpatches.Circle((0, 0), 1, fill=False, edgecolor='white', linewidth=1, linestyle='--', label=f'Annulus ({ANNULUS_INNER}-{ANNULUS_OUTER}px)')\n", + " mpatches.Patch(color=\"lime\", label=\"Valid star\"),\n", + " mpatches.Patch(color=\"magenta\", label=\"Overlapping\"),\n", + " mpatches.Patch(color=\"orange\", label=\"Outlier (|Δmzero| > 2σ)\"),\n", + " mpatches.Patch(color=\"red\", label=\"Bad flux (≤ 0)\"),\n", + " mpatches.Circle(\n", + " (0, 0),\n", + " 1,\n", + " fill=False,\n", + " edgecolor=\"white\",\n", + " linewidth=2,\n", + " label=f\"Aperture (r={APERTURE_RADIUS}px)\",\n", + " ),\n", + " mpatches.Circle(\n", + " (0, 0),\n", + " 1,\n", + " fill=False,\n", + " edgecolor=\"white\",\n", + " linewidth=1,\n", + " linestyle=\"--\",\n", + " label=f\"Annulus ({ANNULUS_INNER}-{ANNULUS_OUTER}px)\",\n", + " ),\n", " ]\n", - " ax1.legend(handles=legend_elements, loc='upper right', fontsize=9)\n", - " \n", + " ax1.legend(handles=legend_elements, loc=\"upper right\", fontsize=9)\n", + "\n", " # ========== Panel 2: Per-Star Statistics Table ==========\n", " ax2 = fig.add_subplot(gs[0:2, 2])\n", - " ax2.axis('off')\n", - " \n", + " ax2.axis(\"off\")\n", + "\n", " # Build table data\n", - " table_data = [['#', 'Mag', 'Flux\\n(ADU)', 'Bg\\n(ADU)', 'mzero', 'Δmz', 'OK']]\n", - " for i, (mag, flux, local_bg, mzero) in enumerate(zip(star_mags, star_fluxes, star_local_bgs, star_mzeros)):\n", - " status = '✓' if flux > 0 else '✗'\n", + " table_data = [[\"#\", \"Mag\", \"Flux\\n(ADU)\", \"Bg\\n(ADU)\", \"mzero\", \"Δmz\", \"OK\"]]\n", + " for i, (mag, flux, local_bg, mzero) in enumerate(\n", + " zip(star_mags, star_fluxes, star_local_bgs, star_mzeros)\n", + " ):\n", + " status = \"✓\" if flux > 0 else \"✗\"\n", " delta_mzero = (mzero - mzero_mean) if (flux > 0 and mzero_mean) else None\n", - " \n", - " table_data.append([\n", - " f'{i}',\n", - " f'{mag:.2f}',\n", - " f'{flux:.0f}',\n", - " f'{local_bg:.0f}' if local_bg is not None else 'N/A',\n", - " f'{mzero:.2f}' if flux > 0 else 'N/A',\n", - " f'{delta_mzero:+.2f}' if delta_mzero is not None else 'N/A',\n", - " status\n", - " ])\n", - " \n", + "\n", + " table_data.append(\n", + " [\n", + " f\"{i}\",\n", + " f\"{mag:.2f}\",\n", + " f\"{flux:.0f}\",\n", + " f\"{local_bg:.0f}\" if local_bg is not None else \"N/A\",\n", + " f\"{mzero:.2f}\" if flux > 0 else \"N/A\",\n", + " f\"{delta_mzero:+.2f}\" if delta_mzero is not None else \"N/A\",\n", + " status,\n", + " ]\n", + " )\n", + "\n", " # Create table\n", - " table = ax2.table(cellText=table_data, cellLoc='center', loc='center',\n", - " colWidths=[0.08, 0.12, 0.15, 0.12, 0.12, 0.10, 0.08])\n", + " table = ax2.table(\n", + " cellText=table_data,\n", + " cellLoc=\"center\",\n", + " loc=\"center\",\n", + " colWidths=[0.08, 0.12, 0.15, 0.12, 0.12, 0.10, 0.08],\n", + " )\n", " table.auto_set_font_size(False)\n", " table.set_fontsize(7)\n", " table.scale(1, 1.8)\n", - " \n", + "\n", " # Style header row\n", " for i in range(7):\n", - " table[(0, i)].set_facecolor('#4CAF50')\n", - " table[(0, i)].set_text_props(weight='bold', color='white')\n", - " \n", + " table[(0, i)].set_facecolor(\"#4CAF50\")\n", + " table[(0, i)].set_text_props(weight=\"bold\", color=\"white\")\n", + "\n", " # Color code rows\n", " for i in range(1, len(table_data)):\n", - " flux = star_fluxes[i-1]\n", - " is_overlapping = (i-1) in overlapping_stars\n", - " \n", + " flux = star_fluxes[i - 1]\n", + " is_overlapping = (i - 1) in overlapping_stars\n", + "\n", " if flux <= 0:\n", - " color = '#FFCDD2' # Red\n", + " color = \"#FFCDD2\" # Red\n", " elif is_overlapping:\n", - " color = '#F8BBD0' # Magenta/pink\n", - " elif i-1 < len(star_mzeros) and mzero_mean is not None:\n", - " delta = abs(star_mzeros[i-1] - mzero_mean)\n", + " color = \"#F8BBD0\" # Magenta/pink\n", + " elif i - 1 < len(star_mzeros) and mzero_mean is not None:\n", + " delta = abs(star_mzeros[i - 1] - mzero_mean)\n", " if delta > 2.0 * mzero_std:\n", - " color = '#FFE0B2' # Orange\n", + " color = \"#FFE0B2\" # Orange\n", " elif delta > 1.0 * mzero_std:\n", - " color = '#FFF9C4' # Yellow\n", + " color = \"#FFF9C4\" # Yellow\n", " else:\n", - " color = '#E8F5E9' # Green\n", + " color = \"#E8F5E9\" # Green\n", " else:\n", - " color = 'white'\n", - " \n", + " color = \"white\"\n", + "\n", " for j in range(7):\n", " table[(i, j)].set_facecolor(color)\n", - " \n", - " ax2.set_title('Per-Star Breakdown\\n(Δmz = deviation from mean)', fontsize=11, weight='bold', pad=20)\n", - " \n", + "\n", + " ax2.set_title(\n", + " \"Per-Star Breakdown\\n(Δmz = deviation from mean)\",\n", + " fontsize=11,\n", + " weight=\"bold\",\n", + " pad=20,\n", + " )\n", + "\n", " # ========== Panel 3: mzero Values vs Magnitude with Trendlines ==========\n", " ax3 = fig.add_subplot(gs[2, 0])\n", - " \n", + "\n", " if len(valid_mzeros) > 0:\n", " # Scatter plot of individual mzero values\n", - " colors = ['red' if not sigclip_mask[i] else 'blue' for i in range(len(valid_mzeros))]\n", - " ax3.scatter(valid_mags, valid_mzeros, s=80, alpha=0.7, c=colors, edgecolors='black', linewidths=1, label='Stars', zorder=3)\n", - " \n", + " colors = [\n", + " \"red\" if not sigclip_mask[i] else \"blue\" for i in range(len(valid_mzeros))\n", + " ]\n", + " ax3.scatter(\n", + " valid_mags,\n", + " valid_mzeros,\n", + " s=80,\n", + " alpha=0.7,\n", + " c=colors,\n", + " edgecolors=\"black\",\n", + " linewidths=1,\n", + " label=\"Stars\",\n", + " zorder=3,\n", + " )\n", + "\n", " # Horizontal lines for different methods\n", - " ax3.axhline(mzero_mean, color='blue', linestyle='-', linewidth=2, label=f'Mean: {mzero_mean:.3f}', alpha=0.6)\n", - " ax3.axhline(mzero_median, color='green', linestyle='--', linewidth=2, label=f'Median: {mzero_median:.3f}', alpha=0.6)\n", - " \n", + " ax3.axhline(\n", + " mzero_mean,\n", + " color=\"blue\",\n", + " linestyle=\"-\",\n", + " linewidth=2,\n", + " label=f\"Mean: {mzero_mean:.3f}\",\n", + " alpha=0.6,\n", + " )\n", + " ax3.axhline(\n", + " mzero_median,\n", + " color=\"green\",\n", + " linestyle=\"--\",\n", + " linewidth=2,\n", + " label=f\"Median: {mzero_median:.3f}\",\n", + " alpha=0.6,\n", + " )\n", + "\n", " # Trendlines\n", " if len(valid_mzeros) >= 3:\n", " mag_range = np.array([valid_mags.min(), valid_mags.max()])\n", - " \n", + "\n", " # All stars trend\n", " trend_line_all = slope_all * mag_range + intercept_all\n", - " ax3.plot(mag_range, trend_line_all, 'purple', linestyle='-.', linewidth=2.5, \n", - " label=f'Trend (all): R²={r_value_all**2:.3f}', zorder=2)\n", - " \n", + " ax3.plot(\n", + " mag_range,\n", + " trend_line_all,\n", + " \"purple\",\n", + " linestyle=\"-.\",\n", + " linewidth=2.5,\n", + " label=f\"Trend (all): R²={r_value_all**2:.3f}\",\n", + " zorder=2,\n", + " )\n", + "\n", " # Sigma-clipped trend\n", " if n_clipped > 0:\n", " trend_line_clip = slope_clip * mag_range + intercept_clip\n", - " ax3.plot(mag_range, trend_line_clip, 'red', linestyle=':', linewidth=2.5, \n", - " label=f'Trend (σ-clip): R²={r_value_clip**2:.3f}', zorder=2)\n", - " \n", + " ax3.plot(\n", + " mag_range,\n", + " trend_line_clip,\n", + " \"red\",\n", + " linestyle=\":\",\n", + " linewidth=2.5,\n", + " label=f\"Trend (σ-clip): R²={r_value_clip**2:.3f}\",\n", + " zorder=2,\n", + " )\n", + "\n", " # Mark median magnitude\n", - " ax3.axvline(np.median(valid_mags), color='gray', linestyle='--', linewidth=1, alpha=0.5, zorder=1)\n", - " \n", + " ax3.axvline(\n", + " np.median(valid_mags),\n", + " color=\"gray\",\n", + " linestyle=\"--\",\n", + " linewidth=1,\n", + " alpha=0.5,\n", + " zorder=1,\n", + " )\n", + "\n", " # Std deviation bands\n", - " ax3.axhspan(mzero_mean - mzero_std, mzero_mean + mzero_std, alpha=0.15, color='blue', zorder=0)\n", - " \n", - " ax3.set_xlabel('Catalog Magnitude', fontsize=10)\n", - " ax3.set_ylabel('mzero', fontsize=10)\n", - " ax3.set_title(f'mzero vs Magnitude\\nσ = {mzero_std:.3f}, Trend slope = {slope_all:.4f}', fontsize=10, weight='bold')\n", - " ax3.legend(fontsize=7, loc='best')\n", + " ax3.axhspan(\n", + " mzero_mean - mzero_std,\n", + " mzero_mean + mzero_std,\n", + " alpha=0.15,\n", + " color=\"blue\",\n", + " zorder=0,\n", + " )\n", + "\n", + " ax3.set_xlabel(\"Catalog Magnitude\", fontsize=10)\n", + " ax3.set_ylabel(\"mzero\", fontsize=10)\n", + " ax3.set_title(\n", + " f\"mzero vs Magnitude\\nσ = {mzero_std:.3f}, Trend slope = {slope_all:.4f}\",\n", + " fontsize=10,\n", + " weight=\"bold\",\n", + " )\n", + " ax3.legend(fontsize=7, loc=\"best\")\n", " ax3.grid(True, alpha=0.3)\n", " ax3.invert_xaxis() # Brighter stars on right\n", " else:\n", - " ax3.text(0.5, 0.5, 'No valid stars', transform=ax3.transAxes, ha='center', va='center')\n", - " \n", + " ax3.text(\n", + " 0.5,\n", + " 0.5,\n", + " \"No valid stars\",\n", + " transform=ax3.transAxes,\n", + " ha=\"center\",\n", + " va=\"center\",\n", + " )\n", + "\n", " # ========== Panel 4: mzero Values vs Flux ==========\n", " ax4 = fig.add_subplot(gs[2, 1])\n", - " \n", + "\n", " if len(valid_mzeros) > 0:\n", " # Scatter plot of mzero vs log(flux)\n", " log_fluxes = np.log10(valid_fluxes)\n", - " colors = ['red' if not sigclip_mask[i] else 'blue' for i in range(len(valid_mzeros))]\n", - " ax4.scatter(log_fluxes, valid_mzeros, s=80, alpha=0.7, c=colors, edgecolors='black', linewidths=1)\n", - " \n", + " colors = [\n", + " \"red\" if not sigclip_mask[i] else \"blue\" for i in range(len(valid_mzeros))\n", + " ]\n", + " ax4.scatter(\n", + " log_fluxes,\n", + " valid_mzeros,\n", + " s=80,\n", + " alpha=0.7,\n", + " c=colors,\n", + " edgecolors=\"black\",\n", + " linewidths=1,\n", + " )\n", + "\n", " # Horizontal lines\n", - " ax4.axhline(mzero_mean, color='blue', linestyle='-', linewidth=2, label='Mean', alpha=0.6)\n", - " ax4.axhline(mzero_median, color='green', linestyle='--', linewidth=2, label='Median', alpha=0.6)\n", - " \n", + " ax4.axhline(\n", + " mzero_mean,\n", + " color=\"blue\",\n", + " linestyle=\"-\",\n", + " linewidth=2,\n", + " label=\"Mean\",\n", + " alpha=0.6,\n", + " )\n", + " ax4.axhline(\n", + " mzero_median,\n", + " color=\"green\",\n", + " linestyle=\"--\",\n", + " linewidth=2,\n", + " label=\"Median\",\n", + " alpha=0.6,\n", + " )\n", + "\n", " # Check for trend with flux\n", " if len(valid_mzeros) >= 3:\n", - " slope_flux, intercept_flux, r_value_flux, _, _ = stats.linregress(log_fluxes, valid_mzeros)\n", + " slope_flux, intercept_flux, r_value_flux, _, _ = stats.linregress(\n", + " log_fluxes, valid_mzeros\n", + " )\n", " if abs(r_value_flux) > 0.3: # Significant correlation\n", " x_fit = np.array([log_fluxes.min(), log_fluxes.max()])\n", " y_fit = slope_flux * x_fit + intercept_flux\n", - " ax4.plot(x_fit, y_fit, 'orange', linestyle=':', linewidth=2, \n", - " label=f'Flux trend: R²={r_value_flux**2:.3f}')\n", - " \n", - " ax4.set_xlabel('log₁₀(Flux [ADU])', fontsize=10)\n", - " ax4.set_ylabel('mzero', fontsize=10)\n", - " ax4.set_title('mzero vs Flux\\n(Should be flat if aperture correct)', fontsize=10, weight='bold')\n", - " ax4.legend(fontsize=8, loc='best')\n", + " ax4.plot(\n", + " x_fit,\n", + " y_fit,\n", + " \"orange\",\n", + " linestyle=\":\",\n", + " linewidth=2,\n", + " label=f\"Flux trend: R²={r_value_flux**2:.3f}\",\n", + " )\n", + "\n", + " ax4.set_xlabel(\"log₁₀(Flux [ADU])\", fontsize=10)\n", + " ax4.set_ylabel(\"mzero\", fontsize=10)\n", + " ax4.set_title(\n", + " \"mzero vs Flux\\n(Should be flat if aperture correct)\",\n", + " fontsize=10,\n", + " weight=\"bold\",\n", + " )\n", + " ax4.legend(fontsize=8, loc=\"best\")\n", " ax4.grid(True, alpha=0.3)\n", " else:\n", - " ax4.text(0.5, 0.5, 'No valid stars', transform=ax4.transAxes, ha='center', va='center')\n", - " \n", + " ax4.text(\n", + " 0.5,\n", + " 0.5,\n", + " \"No valid stars\",\n", + " transform=ax4.transAxes,\n", + " ha=\"center\",\n", + " va=\"center\",\n", + " )\n", + "\n", " # ========== Panel 5: mzero Distribution Histogram ==========\n", " ax5 = fig.add_subplot(gs[2, 2])\n", - " \n", + "\n", " if len(valid_mzeros) > 0:\n", " # Histogram\n", - " ax5.hist(valid_mzeros, bins=min(15, len(valid_mzeros)), \n", - " color='steelblue', alpha=0.7, edgecolor='black')\n", - " \n", + " ax5.hist(\n", + " valid_mzeros,\n", + " bins=min(15, len(valid_mzeros)),\n", + " color=\"steelblue\",\n", + " alpha=0.7,\n", + " edgecolor=\"black\",\n", + " )\n", + "\n", " # Mark different estimators\n", - " ax5.axvline(mzero_mean, color='blue', linestyle='-', linewidth=2, label='Mean')\n", - " ax5.axvline(mzero_median, color='green', linestyle='--', linewidth=2, label='Median')\n", + " ax5.axvline(mzero_mean, color=\"blue\", linestyle=\"-\", linewidth=2, label=\"Mean\")\n", + " ax5.axvline(\n", + " mzero_median, color=\"green\", linestyle=\"--\", linewidth=2, label=\"Median\"\n", + " )\n", " if n_clipped > 0:\n", - " ax5.axvline(mzero_sigclip, color='red', linestyle='-.', linewidth=2, label='σ-clip')\n", + " ax5.axvline(\n", + " mzero_sigclip, color=\"red\", linestyle=\"-.\", linewidth=2, label=\"σ-clip\"\n", + " )\n", " if len(valid_mzeros) >= 3:\n", - " ax5.axvline(mzero_trend, color='purple', linestyle=':', linewidth=2, label='Trend')\n", - " \n", - " ax5.set_xlabel('mzero', fontsize=10)\n", - " ax5.set_ylabel('Count', fontsize=10)\n", - " ax5.set_title(f'mzero Distribution\\nRange: [{np.min(valid_mzeros):.2f}, {np.max(valid_mzeros):.2f}]', \n", - " fontsize=10, weight='bold')\n", + " ax5.axvline(\n", + " mzero_trend, color=\"purple\", linestyle=\":\", linewidth=2, label=\"Trend\"\n", + " )\n", + "\n", + " ax5.set_xlabel(\"mzero\", fontsize=10)\n", + " ax5.set_ylabel(\"Count\", fontsize=10)\n", + " ax5.set_title(\n", + " f\"mzero Distribution\\nRange: [{np.min(valid_mzeros):.2f}, {np.max(valid_mzeros):.2f}]\",\n", + " fontsize=10,\n", + " weight=\"bold\",\n", + " )\n", " ax5.legend(fontsize=8)\n", - " ax5.grid(True, alpha=0.3, axis='y')\n", + " ax5.grid(True, alpha=0.3, axis=\"y\")\n", " else:\n", - " ax5.text(0.5, 0.5, 'No valid stars', transform=ax5.transAxes, ha='center', va='center')\n", - " \n", + " ax5.text(\n", + " 0.5,\n", + " 0.5,\n", + " \"No valid stars\",\n", + " transform=ax5.transAxes,\n", + " ha=\"center\",\n", + " va=\"center\",\n", + " )\n", + "\n", " # ========== Panel 6: SQM Comparison Table with Overlap Correction ==========\n", " ax6 = fig.add_subplot(gs[3, 0])\n", - " ax6.axis('off')\n", - " \n", + " ax6.axis(\"off\")\n", + "\n", " # Compare different methods INCLUDING overlap-corrected\n", - " comparison_data = [['Method', 'mzero', 'SQM', 'Error', 'Note']]\n", - " \n", + " comparison_data = [[\"Method\", \"mzero\", \"SQM\", \"Error\", \"Note\"]]\n", + "\n", " if mzero_mean is not None:\n", - " comparison_data.append([\n", - " 'Mean',\n", - " f'{mzero_mean:.3f}',\n", - " f'{sqm_val:.2f}',\n", - " f'{sqm_val - info[\"realsqm\"]:+.2f}',\n", - " '← Current'\n", - " ])\n", - " comparison_data.append([\n", - " 'Median',\n", - " f'{mzero_median:.3f}',\n", - " f'{sqm_median:.2f}',\n", - " f'{sqm_median - info[\"realsqm\"]:+.2f}',\n", - " ''\n", - " ])\n", + " comparison_data.append(\n", + " [\n", + " \"Mean\",\n", + " f\"{mzero_mean:.3f}\",\n", + " f\"{sqm_val:.2f}\",\n", + " f\"{sqm_val - info['realsqm']:+.2f}\",\n", + " \"← Current\",\n", + " ]\n", + " )\n", + " comparison_data.append(\n", + " [\n", + " \"Median\",\n", + " f\"{mzero_median:.3f}\",\n", + " f\"{sqm_median:.2f}\",\n", + " f\"{sqm_median - info['realsqm']:+.2f}\",\n", + " \"\",\n", + " ]\n", + " )\n", " if n_clipped > 0:\n", - " comparison_data.append([\n", - " 'σ-clipped',\n", - " f'{mzero_sigclip:.3f}',\n", - " f'{sqm_sigclip:.2f}',\n", - " f'{sqm_sigclip - info[\"realsqm\"]:+.2f}',\n", - " f'-{n_clipped} star'\n", - " ])\n", + " comparison_data.append(\n", + " [\n", + " \"σ-clipped\",\n", + " f\"{mzero_sigclip:.3f}\",\n", + " f\"{sqm_sigclip:.2f}\",\n", + " f\"{sqm_sigclip - info['realsqm']:+.2f}\",\n", + " f\"-{n_clipped} star\",\n", + " ]\n", + " )\n", " if len(valid_mzeros) >= 3:\n", - " comparison_data.append([\n", - " 'Trend (all)',\n", - " f'{mzero_trend:.3f}',\n", - " f'{sqm_trend:.2f}',\n", - " f'{sqm_trend - info[\"realsqm\"]:+.2f}',\n", - " f'R²={r_value_all**2:.2f}'\n", - " ])\n", + " comparison_data.append(\n", + " [\n", + " \"Trend (all)\",\n", + " f\"{mzero_trend:.3f}\",\n", + " f\"{sqm_trend:.2f}\",\n", + " f\"{sqm_trend - info['realsqm']:+.2f}\",\n", + " f\"R²={r_value_all**2:.2f}\",\n", + " ]\n", + " )\n", " if n_clipped > 0:\n", - " comparison_data.append([\n", - " 'Trend+σ-clip',\n", - " f'{mzero_trend_sigclip:.3f}',\n", - " f'{sqm_trend_sigclip:.2f}',\n", - " f'{sqm_trend_sigclip - info[\"realsqm\"]:+.2f}',\n", - " f'R²={r_value_clip**2:.2f}'\n", - " ])\n", - " \n", + " comparison_data.append(\n", + " [\n", + " \"Trend+σ-clip\",\n", + " f\"{mzero_trend_sigclip:.3f}\",\n", + " f\"{sqm_trend_sigclip:.2f}\",\n", + " f\"{sqm_trend_sigclip - info['realsqm']:+.2f}\",\n", + " f\"R²={r_value_clip**2:.2f}\",\n", + " ]\n", + " )\n", + "\n", " # Add overlap-corrected result\n", - " if sqm_val_corrected is not None and details_corrected.get('n_stars_excluded_overlaps', 0) > 0:\n", - " n_excl = details_corrected['n_stars_excluded_overlaps']\n", - " comparison_data.append([\n", - " 'Overlap-corrected',\n", - " f'{details_corrected[\"mzero\"]:.3f}',\n", - " f'{sqm_val_corrected:.2f}',\n", - " f'{sqm_val_corrected - info[\"realsqm\"]:+.2f}',\n", - " f'-{n_excl} overlap'\n", - " ])\n", - " \n", - " comparison_data.append([\n", - " 'Expected',\n", - " '—',\n", - " f'{info[\"realsqm\"]:.2f}',\n", - " '0.00',\n", - " 'Target'\n", - " ])\n", - " \n", - " comp_table = ax6.table(cellText=comparison_data, cellLoc='center', loc='center',\n", - " colWidths=[0.23, 0.18, 0.15, 0.15, 0.29])\n", + " if (\n", + " sqm_val_corrected is not None\n", + " and details_corrected.get(\"n_stars_excluded_overlaps\", 0) > 0\n", + " ):\n", + " n_excl = details_corrected[\"n_stars_excluded_overlaps\"]\n", + " comparison_data.append(\n", + " [\n", + " \"Overlap-corrected\",\n", + " f\"{details_corrected['mzero']:.3f}\",\n", + " f\"{sqm_val_corrected:.2f}\",\n", + " f\"{sqm_val_corrected - info['realsqm']:+.2f}\",\n", + " f\"-{n_excl} overlap\",\n", + " ]\n", + " )\n", + "\n", + " comparison_data.append(\n", + " [\"Expected\", \"—\", f\"{info['realsqm']:.2f}\", \"0.00\", \"Target\"]\n", + " )\n", + "\n", + " comp_table = ax6.table(\n", + " cellText=comparison_data,\n", + " cellLoc=\"center\",\n", + " loc=\"center\",\n", + " colWidths=[0.23, 0.18, 0.15, 0.15, 0.29],\n", + " )\n", " comp_table.auto_set_font_size(False)\n", " comp_table.set_fontsize(8)\n", " comp_table.scale(1, 2.2)\n", - " \n", + "\n", " # Style header\n", " for i in range(5):\n", - " comp_table[(0, i)].set_facecolor('#2196F3')\n", - " comp_table[(0, i)].set_text_props(weight='bold', color='white')\n", - " \n", + " comp_table[(0, i)].set_facecolor(\"#2196F3\")\n", + " comp_table[(0, i)].set_text_props(weight=\"bold\", color=\"white\")\n", + "\n", " # Highlight best method\n", " if len(comparison_data) > 2:\n", " errors = [abs(float(row[3])) for row in comparison_data[1:-1]]\n", " best_idx = np.argmin(errors) + 1\n", " for j in range(5):\n", - " comp_table[(best_idx, j)].set_facecolor('#C8E6C9')\n", - " \n", - " ax6.set_title('mzero Method Comparison', fontsize=11, weight='bold', pad=20)\n", - " \n", + " comp_table[(best_idx, j)].set_facecolor(\"#C8E6C9\")\n", + "\n", + " ax6.set_title(\"mzero Method Comparison\", fontsize=11, weight=\"bold\", pad=20)\n", + "\n", " # ========== Panel 7: Background Annuli ==========\n", " ax7 = fig.add_subplot(gs[3, 1])\n", - " \n", + "\n", " # Create visualization showing annulus regions\n", " height, width = np_image.shape\n", " y, x = np.ogrid[:height, :width]\n", " annulus_mask_img = np.zeros((height, width), dtype=bool)\n", " for centroid in star_centroids:\n", " cx, cy = centroid\n", - " dist_sq = (x - cx)**2 + (y - cy)**2\n", + " dist_sq = (x - cx) ** 2 + (y - cy) ** 2\n", " star_annulus = (dist_sq > ANNULUS_INNER**2) & (dist_sq <= ANNULUS_OUTER**2)\n", " annulus_mask_img |= star_annulus\n", - " \n", + "\n", " annulus_display = np.where(annulus_mask_img, np_image, np.nan)\n", - " ax7.imshow(annulus_display, cmap='viridis', vmin=vmin, vmax=vmax, origin='lower')\n", - " ax7.set_title(f'Background Annuli\\n(median={details[\"background_per_pixel\"]:.1f} ADU)', \n", - " fontsize=10, weight='bold')\n", - " ax7.set_xlabel('X (pixels)', fontsize=9)\n", - " ax7.set_ylabel('Y (pixels)', fontsize=9)\n", - " \n", + " ax7.imshow(annulus_display, cmap=\"viridis\", vmin=vmin, vmax=vmax, origin=\"lower\")\n", + " ax7.set_title(\n", + " f\"Background Annuli\\n(median={details['background_per_pixel']:.1f} ADU)\",\n", + " fontsize=10,\n", + " weight=\"bold\",\n", + " )\n", + " ax7.set_xlabel(\"X (pixels)\", fontsize=9)\n", + " ax7.set_ylabel(\"Y (pixels)\", fontsize=9)\n", + "\n", " # ========== Panel 8: Calculation Summary with Overlap Info ==========\n", " ax8 = fig.add_subplot(gs[3, 2])\n", - " ax8.axis('off')\n", - " \n", + " ax8.axis(\"off\")\n", + "\n", " # Find best method\n", " if mzero_mean is not None:\n", - " methods = ['Mean', 'Median', 'σ-clip', 'Trend', 'Trend+σ-clip', 'Overlap-corrected']\n", - " sqm_values = [sqm_val, sqm_median, sqm_sigclip, sqm_trend, sqm_trend_sigclip, sqm_val_corrected]\n", - " errors = [abs(sqm - info['realsqm']) for sqm in sqm_values if sqm is not None]\n", + " methods = [\n", + " \"Mean\",\n", + " \"Median\",\n", + " \"σ-clip\",\n", + " \"Trend\",\n", + " \"Trend+σ-clip\",\n", + " \"Overlap-corrected\",\n", + " ]\n", + " sqm_values = [\n", + " sqm_val,\n", + " sqm_median,\n", + " sqm_sigclip,\n", + " sqm_trend,\n", + " sqm_trend_sigclip,\n", + " sqm_val_corrected,\n", + " ]\n", + " errors = [abs(sqm - info[\"realsqm\"]) for sqm in sqm_values if sqm is not None]\n", " valid_methods = [m for m, sqm in zip(methods, sqm_values) if sqm is not None]\n", " if errors:\n", " best_method = valid_methods[np.argmin(errors)]\n", " else:\n", - " best_method = 'Mean'\n", + " best_method = \"Mean\"\n", " else:\n", - " best_method = 'N/A'\n", - " \n", - " corrected_str = f\"{sqm_val_corrected:.2f}\" if sqm_val_corrected is not None else \"N/A\"\n", - " error_str = f\"{sqm_val_corrected - info['realsqm']:+.2f}\" if sqm_val_corrected is not None else \"N/A\"\n", + " best_method = \"N/A\"\n", + "\n", + " corrected_str = (\n", + " f\"{sqm_val_corrected:.2f}\" if sqm_val_corrected is not None else \"N/A\"\n", + " )\n", + " error_str = (\n", + " f\"{sqm_val_corrected - info['realsqm']:+.2f}\"\n", + " if sqm_val_corrected is not None\n", + " else \"N/A\"\n", + " )\n", "\n", " summary_text = f\"\"\"CALCULATION SUMMARY\n", - "{'='*35}\n", + "{\"=\" * 35}\n", "\n", - "Stars: {details['n_matched_stars']} matched\n", - " {details['n_centroids']} total centroids\n", + "Stars: {details[\"n_matched_stars\"]} matched\n", + " {details[\"n_centroids\"]} total centroids\n", "\n", "OVERLAPS: {len(overlaps)} total\n", " CRITICAL: {len(critical_overlaps)}\n", @@ -1954,7 +2250,7 @@ "Background: Local annuli\n", " Aperture: {APERTURE_RADIUS} px\n", " Annulus: {ANNULUS_INNER}-{ANNULUS_OUTER} px\n", - " Sky: {details['background_per_pixel']:.2f} ADU/px\n", + " Sky: {details[\"background_per_pixel\"]:.2f} ADU/px\n", "\n", "mzero Statistics:\n", " Mean: {mzero_mean:.3f} ± {mzero_std:.3f}\n", @@ -1967,60 +2263,86 @@ "Trend Analysis:\n", " Slope: {slope_all:.4f} mag/mag\n", " R²: {r_value_all**2:.4f}\n", - " Sig? {'YES' if abs(r_value_all) > 0.5 else 'NO'}\n", + " Sig? {\"YES\" if abs(r_value_all) > 0.5 else \"NO\"}\n", "\n", "SQM Results:\n", " Without overlap correction:\n", " Current: {sqm_val:.2f} mag/arcsec²\n", - " Error: {sqm_val - info['realsqm']:+.2f}\n", + " Error: {sqm_val - info[\"realsqm\"]:+.2f}\n", " \n", " With overlap correction:\n", " Corrected: {corrected_str} mag/arcsec²\n", " Error: {error_str}\n", - " Excluded: {details_corrected.get('n_stars_excluded_overlaps', 0)} stars\n", + " Excluded: {details_corrected.get(\"n_stars_excluded_overlaps\", 0)} stars\n", "\n", - "Expected: {info['realsqm']:.2f}\n", + "Expected: {info[\"realsqm\"]:.2f}\n", "\n", "Best Method: {best_method}\n", "\"\"\"\n", - " \n", - " ax8.text(0.05, 0.95, summary_text, \n", - " transform=ax8.transAxes, fontsize=7.5, \n", - " verticalalignment='top', fontfamily='monospace',\n", - " bbox=dict(boxstyle='round', facecolor='lightyellow', alpha=0.8))\n", - " \n", + "\n", + " ax8.text(\n", + " 0.05,\n", + " 0.95,\n", + " summary_text,\n", + " transform=ax8.transAxes,\n", + " fontsize=7.5,\n", + " verticalalignment=\"top\",\n", + " fontfamily=\"monospace\",\n", + " bbox=dict(boxstyle=\"round\", facecolor=\"lightyellow\", alpha=0.8),\n", + " )\n", + "\n", " plt.tight_layout()\n", " plt.show()\n", - " \n", + "\n", " # Print detailed overlap information\n", " if overlaps:\n", " print(\"\\nDETAILED OVERLAP INFORMATION:\")\n", - " print(f\"{'='*100}\")\n", + " print(f\"{'=' * 100}\")\n", " for overlap in overlaps:\n", - " i, j = overlap['star1_idx'], overlap['star2_idx']\n", + " i, j = overlap[\"star1_idx\"], overlap[\"star2_idx\"]\n", " print(f\" [{overlap['type']:8}] Stars {i} ↔ {j}: {overlap['description']}\")\n", - " print(f\" Star {i}: mag={star_mags[i]:.2f}, flux={star_fluxes[i]:.0f} ADU\")\n", - " print(f\" Star {j}: mag={star_mags[j]:.2f}, flux={star_fluxes[j]:.0f} ADU\")\n", - " print(f\"{'='*100}\\n\")\n", - " \n", + " print(\n", + " f\" Star {i}: mag={star_mags[i]:.2f}, flux={star_fluxes[i]:.0f} ADU\"\n", + " )\n", + " print(\n", + " f\" Star {j}: mag={star_mags[j]:.2f}, flux={star_fluxes[j]:.0f} ADU\"\n", + " )\n", + " print(f\"{'=' * 100}\\n\")\n", + "\n", " # Print summary\n", " print(f\"\\n✓ Processed {filename}\")\n", " print(\"\\n WITHOUT overlap correction:\")\n", - " print(f\" SQM (mean): {sqm_val:.2f} (error: {sqm_val - info['realsqm']:+.2f})\")\n", - " print(f\" SQM (median): {sqm_median:.2f} (error: {sqm_median - info['realsqm']:+.2f})\")\n", - " print(f\" SQM (σ-clipped): {sqm_sigclip:.2f} (error: {sqm_sigclip - info['realsqm']:+.2f})\")\n", - " print(f\" SQM (trend): {sqm_trend:.2f} (error: {sqm_trend - info['realsqm']:+.2f})\")\n", - " print(f\" SQM (trend+σ-clip): {sqm_trend_sigclip:.2f} (error: {sqm_trend_sigclip - info['realsqm']:+.2f})\")\n", - " \n", + " print(\n", + " f\" SQM (mean): {sqm_val:.2f} (error: {sqm_val - info['realsqm']:+.2f})\"\n", + " )\n", + " print(\n", + " f\" SQM (median): {sqm_median:.2f} (error: {sqm_median - info['realsqm']:+.2f})\"\n", + " )\n", + " print(\n", + " f\" SQM (σ-clipped): {sqm_sigclip:.2f} (error: {sqm_sigclip - info['realsqm']:+.2f})\"\n", + " )\n", + " print(\n", + " f\" SQM (trend): {sqm_trend:.2f} (error: {sqm_trend - info['realsqm']:+.2f})\"\n", + " )\n", + " print(\n", + " f\" SQM (trend+σ-clip): {sqm_trend_sigclip:.2f} (error: {sqm_trend_sigclip - info['realsqm']:+.2f})\"\n", + " )\n", + "\n", " if sqm_val_corrected is not None:\n", " print(\"\\n WITH overlap correction:\")\n", - " print(f\" SQM (overlap-corr): {sqm_val_corrected:.2f} (error: {sqm_val_corrected - info['realsqm']:+.2f})\")\n", - " print(f\" Stars excluded: {details_corrected.get('n_stars_excluded_overlaps', 0)}/{details_corrected.get('n_matched_stars_original', 0)}\")\n", - " print(f\" Improvement: {(sqm_val_corrected - sqm_val):+.2f} mag/arcsec²\")\n", - " \n", + " print(\n", + " f\" SQM (overlap-corr): {sqm_val_corrected:.2f} (error: {sqm_val_corrected - info['realsqm']:+.2f})\"\n", + " )\n", + " print(\n", + " f\" Stars excluded: {details_corrected.get('n_stars_excluded_overlaps', 0)}/{details_corrected.get('n_matched_stars_original', 0)}\"\n", + " )\n", + " print(\n", + " f\" Improvement: {(sqm_val_corrected - sqm_val):+.2f} mag/arcsec²\"\n", + " )\n", + "\n", " print(f\"\\n Trend: slope={slope_all:.4f}, R²={r_value_all**2:.4f}\")\n", " print(f\" Best method: {best_method}\")\n", - " \n", + "\n", " # Flag issues\n", " issues = []\n", " if any(f <= 0 for f in star_fluxes):\n", @@ -2030,19 +2352,23 @@ " issues.append(f\"⚠️ High mzero scatter: {mzero_std:.3f}\")\n", " if abs(r_value_all) > 0.5:\n", " issues.append(f\"⚠️ Significant magnitude trend: R²={r_value_all**2:.3f}\")\n", - " if abs(sqm_val - info['realsqm']) > 0.5:\n", - " issues.append(f\"⚠️ Large error (no corr): {sqm_val - info['realsqm']:+.2f} mag/arcsec²\")\n", + " if abs(sqm_val - info[\"realsqm\"]) > 0.5:\n", + " issues.append(\n", + " f\"⚠️ Large error (no corr): {sqm_val - info['realsqm']:+.2f} mag/arcsec²\"\n", + " )\n", " if n_clipped > 0:\n", " issues.append(f\"ℹ️ {n_clipped} outliers removed by σ-clipping\")\n", " if overlaps:\n", - " issues.append(f\"⚠️ {len(overlaps)} aperture overlaps detected ({len(overlapping_stars)} stars affected)\")\n", - " \n", + " issues.append(\n", + " f\"⚠️ {len(overlaps)} aperture overlaps detected ({len(overlapping_stars)} stars affected)\"\n", + " )\n", + "\n", " if issues:\n", " print(\"\\n Notes:\")\n", " for issue in issues:\n", " print(f\" {issue}\")\n", - " \n", - " print(\"\")\n" + "\n", + " print(\"\")" ] }, { diff --git a/python/PiFinder/sqm/sqm.py b/python/PiFinder/sqm/sqm.py index 82246bd75..889a0203d 100644 --- a/python/PiFinder/sqm/sqm.py +++ b/python/PiFinder/sqm/sqm.py @@ -149,7 +149,9 @@ def _measure_star_flux_with_local_background( # Check for saturation in aperture aperture_pixels = image_patch[aperture_mask] - max_aperture_pixel = np.max(aperture_pixels) if len(aperture_pixels) > 0 else 0 + max_aperture_pixel = ( + np.max(aperture_pixels) if len(aperture_pixels) > 0 else 0 + ) if max_aperture_pixel >= saturation_threshold: # Mark saturated star with flux=-1 to be excluded from mzero calculation @@ -218,9 +220,7 @@ def _calculate_mzero( # Flux-weighted mean: brighter stars contribute more valid_mzeros_arr = np.array(valid_mzeros) valid_fluxes_arr = np.array(valid_fluxes) - weighted_mzero = float( - np.average(valid_mzeros_arr, weights=valid_fluxes_arr) - ) + weighted_mzero = float(np.average(valid_mzeros_arr, weights=valid_fluxes_arr)) return weighted_mzero, mzeros @@ -263,7 +263,7 @@ def _detect_aperture_overlaps( excluded_stars.add(i) excluded_stars.add(j) logger.debug( - f"CRITICAL overlap: stars {i} and {j} (d={distance:.1f}px < {2*aperture_radius}px)" + f"CRITICAL overlap: stars {i} and {j} (d={distance:.1f}px < {2 * aperture_radius}px)" ) # HIGH: Aperture inside another star's annulus (background contamination) elif distance < aperture_radius + annulus_outer_radius: @@ -406,7 +406,7 @@ def calculate( logger.info( f"Overlap correction: excluded {n_stars_excluded}/{n_stars_original} stars " - f"({n_stars_excluded*100//n_stars_original}%), using {len(valid_indices)} stars" + f"({n_stars_excluded * 100 // n_stars_original}%), using {len(valid_indices)} stars" ) if len(valid_indices) < 3: @@ -501,7 +501,9 @@ def calculate( # Following ASTAP: zenith is reference point where extinction = 0 # Only ADDITIONAL extinction below zenith is added: 0.28 * (airmass - 1) # This allows comparing measurements at different altitudes - extinction_for_altitude = self._atmospheric_extinction(altitude_deg) # 0.28*(airmass-1) + extinction_for_altitude = self._atmospheric_extinction( + altitude_deg + ) # 0.28*(airmass-1) # Main SQM value: no extinction correction (raw measurement) sqm_final = sqm_uncorrected diff --git a/python/PiFinder/state.py b/python/PiFinder/state.py index 420cae618..73baf08d4 100644 --- a/python/PiFinder/state.py +++ b/python/PiFinder/state.py @@ -16,6 +16,7 @@ from typing import Optional from dataclasses import dataclass, asdict import json + logger = logging.getLogger("SharedState") @@ -256,7 +257,9 @@ def __init__(self): self.__imu = None self.__location: Location = Location() self.__sqm: SQM = SQM() - self.__noise_floor: float = 10.0 # Adaptive noise floor in ADU (default fallback) + self.__noise_floor: float = ( + 10.0 # Adaptive noise floor in ADU (default fallback) + ) self.__sqm_details: dict = {} # Full SQM calculation details for calibration self.__datetime = None self.__datetime_time = None @@ -348,6 +351,7 @@ def set_location(self, v): if v: if self.__tz_finder is None: from timezonefinder import TimezoneFinder + self.__tz_finder = TimezoneFinder() v.timezone = self.__tz_finder.timezone_at(lat=v.lat, lng=v.lon) self.__location = v diff --git a/python/PiFinder/ui/base.py b/python/PiFinder/ui/base.py index e09880ed8..85ed1b83e 100644 --- a/python/PiFinder/ui/base.py +++ b/python/PiFinder/ui/base.py @@ -53,7 +53,11 @@ def update(self): self.progress = 0.0 if self.progress < 1.0: self.progress = min(1.0, self.progress + self.fade_speed) - return self._get_text(self.show_sqm), self._get_text(not self.show_sqm), self.progress + return ( + self._get_text(self.show_sqm), + self._get_text(not self.show_sqm), + self.progress, + ) def draw(self, draw, x, y, font, colors, max_brightness=255, inverted=False): """Draw with cross-fade animation. inverted=True for dark text on light bg.""" @@ -62,13 +66,26 @@ def draw(self, draw, x, y, font, colors, max_brightness=255, inverted=False): fade_out = progress < 0.5 t = progress * 2 if fade_out else (progress - 0.5) * 2 if inverted: - brightness = int(max_brightness * t) if fade_out else int(max_brightness * (1 - t)) + brightness = ( + int(max_brightness * t) + if fade_out + else int(max_brightness * (1 - t)) + ) else: - brightness = int(max_brightness * (1 - t)) if fade_out else int(max_brightness * t) + brightness = ( + int(max_brightness * (1 - t)) + if fade_out + else int(max_brightness * t) + ) text = previous if fade_out else current draw.text((x, y), text, font=font, fill=colors.get(brightness)) else: - draw.text((x, y), current, font=font, fill=colors.get(0 if inverted else max_brightness)) + draw.text( + (x, y), + current, + font=font, + fill=colors.get(0 if inverted else max_brightness), + ) class UIModule: @@ -248,13 +265,24 @@ def message(self, message, timeout: float = 2, size=(5, 44, 123, 84)): def _draw_titlebar_rotating_info(self, x, y, fg): """Draw rotating constellation/SQM in title bar (dark text on gray bg).""" self._rotating_display.draw( - self.draw, x, y, self.fonts.bold.font, self.colors, max_brightness=64, inverted=True + self.draw, + x, + y, + self.fonts.bold.font, + self.colors, + max_brightness=64, + inverted=True, ) def draw_rotating_info(self, x=10, y=92, font=None): """Draw rotating constellation/SQM display with cross-fade.""" self._rotating_display.draw( - self.draw, x, y, font or self.fonts.bold.font, self.colors, max_brightness=255 + self.draw, + x, + y, + font or self.fonts.bold.font, + self.colors, + max_brightness=255, ) def screen_update(self, title_bar=True, button_hints=True) -> None: diff --git a/python/PiFinder/ui/marking_menus.py b/python/PiFinder/ui/marking_menus.py index a5242cc7a..19391cffc 100644 --- a/python/PiFinder/ui/marking_menus.py +++ b/python/PiFinder/ui/marking_menus.py @@ -35,7 +35,9 @@ class MarkingMenu: down: MarkingMenuOption left: MarkingMenuOption right: MarkingMenuOption - up: MarkingMenuOption = field(default_factory=lambda: MarkingMenuOption(label="HELP")) + up: MarkingMenuOption = field( + default_factory=lambda: MarkingMenuOption(label="HELP") + ) def select_none(self): self.up.selected = False diff --git a/python/PiFinder/ui/menu_manager.py b/python/PiFinder/ui/menu_manager.py index 8db58dc32..4e8fcc278 100644 --- a/python/PiFinder/ui/menu_manager.py +++ b/python/PiFinder/ui/menu_manager.py @@ -146,7 +146,7 @@ def __init__( def screengrab(self): self.ss_count += 1 - filename = f"{self.stack[-1].__uuid__}_{self.ss_count :0>3}_{self.stack[-1].title.replace('/','-')}" + filename = f"{self.stack[-1].__uuid__}_{self.ss_count:0>3}_{self.stack[-1].title.replace('/', '-')}" ss_imagepath = self.ss_path + f"/{filename}.png" ss = self.shared_state.screen().copy() ss.save(ss_imagepath) diff --git a/python/PiFinder/ui/object_details.py b/python/PiFinder/ui/object_details.py index edf13f9d7..547140c9f 100644 --- a/python/PiFinder/ui/object_details.py +++ b/python/PiFinder/ui/object_details.py @@ -354,14 +354,14 @@ def _render_pointing_instructions(self): if point_az < 1: self.draw.text( self.az_anchor, - f"{az_arrow}{point_az : >5.2f}", + f"{az_arrow}{point_az: >5.2f}", font=self.fonts.huge.font, fill=self.colors.get(indicator_color), ) else: self.draw.text( self.az_anchor, - f"{az_arrow}{point_az : >5.1f}", + f"{az_arrow}{point_az: >5.1f}", font=self.fonts.huge.font, fill=self.colors.get(indicator_color), ) @@ -382,14 +382,14 @@ def _render_pointing_instructions(self): if point_alt < 1: self.draw.text( self.alt_anchor, - f"{alt_arrow}{point_alt : >5.2f}", + f"{alt_arrow}{point_alt: >5.2f}", font=self.fonts.huge.font, fill=self.colors.get(indicator_color), ) else: self.draw.text( self.alt_anchor, - f"{alt_arrow}{point_alt : >5.1f}", + f"{alt_arrow}{point_alt: >5.1f}", font=self.fonts.huge.font, fill=self.colors.get(indicator_color), ) diff --git a/python/PiFinder/ui/sqm.py b/python/PiFinder/ui/sqm.py index b6e15aab2..fcd55b773 100644 --- a/python/PiFinder/ui/sqm.py +++ b/python/PiFinder/ui/sqm.py @@ -172,7 +172,7 @@ def update(self, force=False): if image_metadata and "exposure_time" in image_metadata: exp_ms = image_metadata["exposure_time"] / 1000 # Convert µs to ms if exp_ms >= 1000: - exp_str = f"{exp_ms/1000:.2f}s" + exp_str = f"{exp_ms / 1000:.2f}s" else: exp_str = f"{exp_ms:.0f}ms" self.draw.text( @@ -265,7 +265,9 @@ def _is_calibrated(self) -> bool: camera_type = self.shared_state.camera_type() camera_type_processed = f"{camera_type}_processed" calibration_file = ( - Path.home() / "PiFinder_data" / f"sqm_calibration_{camera_type_processed}.json" + Path.home() + / "PiFinder_data" + / f"sqm_calibration_{camera_type_processed}.json" ) return calibration_file.exists() diff --git a/python/PiFinder/ui/sqm_calibration.py b/python/PiFinder/ui/sqm_calibration.py index fb3eb564f..c03b6c92b 100644 --- a/python/PiFinder/ui/sqm_calibration.py +++ b/python/PiFinder/ui/sqm_calibration.py @@ -695,7 +695,9 @@ def _analyze_calibration(self): # 2. Compute read noise using temporal variance (not spatial) # Spatial std includes fixed pattern noise (PRNU), which is wrong. # Temporal variance at each pixel measures true read noise. - temporal_variance = np.var(bias_stack, axis=0) # variance across frames per pixel + temporal_variance = np.var( + bias_stack, axis=0 + ) # variance across frames per pixel self.read_noise = float(np.sqrt(np.mean(temporal_variance))) # 3. Compute dark current rate diff --git a/python/PiFinder/ui/sqm_correction.py b/python/PiFinder/ui/sqm_correction.py index 5c29caaa2..ab88f8301 100644 --- a/python/PiFinder/ui/sqm_correction.py +++ b/python/PiFinder/ui/sqm_correction.py @@ -229,7 +229,10 @@ def _wait_for_exposure(self, target_exp_us: int, timeout: float = 5.0) -> bool: start = time.time() while time.time() - start < timeout: metadata = self.shared_state.last_image_metadata() - if metadata and abs(metadata.get("exposure_time", 0) - target_exp_us) < 1000: + if ( + metadata + and abs(metadata.get("exposure_time", 0) - target_exp_us) < 1000 + ): # Wait one more frame for image to be ready time.sleep(0.3) return True @@ -290,11 +293,13 @@ def _create_correction_package(self, corrected_sqm: float) -> str: # Get current exposure image_metadata = self.shared_state.last_image_metadata() - current_exp = image_metadata.get("exposure_time", 500000) if image_metadata else 500000 + current_exp = ( + image_metadata.get("exposure_time", 500000) if image_metadata else 500000 + ) # Calculate bracket exposures (in microseconds) max_exp = 1000000 # 1 second max - min_exp = 10000 # 10ms min + min_exp = 10000 # 10ms min exp_above = min(current_exp * 2, max_exp) exp_below = max(current_exp // 2, min_exp) @@ -330,11 +335,13 @@ def _create_correction_package(self, corrected_sqm: float) -> str: files = self._capture_at_exposure(exp_us, corrections_dir, timestamp, label) if files: all_files.append(files) - metadata["bracket_exposures"].append({ - "label": label, - "exposure_us": exp_us, - "exposure_sec": exp_us / 1_000_000.0, - }) + metadata["bracket_exposures"].append( + { + "label": label, + "exposure_us": exp_us, + "exposure_sec": exp_us / 1_000_000.0, + } + ) # Re-enable auto-exposure self.command_queues["camera"].put("set_exp:auto") @@ -344,7 +351,9 @@ def _create_correction_package(self, corrected_sqm: float) -> str: # Add all captured images for files in all_files: if "processed" in files: - zf.write(corrections_dir / files["processed"], arcname=files["processed"]) + zf.write( + corrections_dir / files["processed"], arcname=files["processed"] + ) (corrections_dir / files["processed"]).unlink() if "raw" in files: zf.write(corrections_dir / files["raw"], arcname=files["raw"]) diff --git a/python/PiFinder/ui/status.py b/python/PiFinder/ui/status.py index 2f5324690..68b48b12d 100644 --- a/python/PiFinder/ui/status.py +++ b/python/PiFinder/ui/status.py @@ -246,13 +246,11 @@ def update_status_dict(self): + f" {stars_matched: >2}" ) hh, mm, _ = calc_utils.ra_to_hms(solution["RA"]) - self.status_dict["RA/DEC"] = ( - f"{hh:02.0f}h{mm:02.0f}m/{solution['Dec'] :.2f}" - ) + self.status_dict["RA/DEC"] = f"{hh:02.0f}h{mm:02.0f}m/{solution['Dec']:.2f}" if solution["Az"]: self.status_dict["AZ/ALT"] = ( - f"{solution['Az'] : >6.2f}/{solution['Alt'] : >6.2f}" + f"{solution['Az']: >6.2f}/{solution['Alt']: >6.2f}" ) imu = self.shared_state.imu() @@ -262,9 +260,9 @@ def update_status_dict(self): mtext = "Moving" else: mtext = "Static" - self.status_dict["IMU"] = f"{mtext : >11}" + " " + str(imu["status"]) + self.status_dict["IMU"] = f"{mtext: >11}" + " " + str(imu["status"]) self.status_dict["IMU PS"] = ( - f"{imu['pos'][0] : >6.1f}/{imu['pos'][2] : >6.1f}" + f"{imu['pos'][0]: >6.1f}/{imu['pos'][2]: >6.1f}" ) location = self.shared_state.location() sats = self.shared_state.sats() @@ -290,7 +288,7 @@ def update_status_dict(self): try: with open("/sys/class/thermal/thermal_zone0/temp", "r") as f: raw_temp = int(f.read().strip()) - self.status_dict["CPU TMP"] = f"{raw_temp / 1000 : >13.1f}" + self.status_dict["CPU TMP"] = f"{raw_temp / 1000: >13.1f}" except FileNotFoundError: self.status_dict["CPU TMP"] = "Error" diff --git a/python/PiFinder/ui/ui_utils.py b/python/PiFinder/ui/ui_utils.py index 37e860537..647b98a77 100644 --- a/python/PiFinder/ui/ui_utils.py +++ b/python/PiFinder/ui/ui_utils.py @@ -314,7 +314,7 @@ def format_number(num: float, width=5): return f"{num:{width}d}" elif num < 1000000: decimal_places = max(0, width - 3) # 'K' and at least one digit - return f"{num/1000:{width}.{decimal_places}f}K" + return f"{num / 1000:{width}.{decimal_places}f}K" else: decimal_places = max(0, width - 3) # 'M' and at least one digit - return f"{num/1000000:{width}.{decimal_places}f}M" + return f"{num / 1000000:{width}.{decimal_places}f}M" diff --git a/python/noxfile.py b/python/noxfile.py deleted file mode 100644 index 8d7a9dbca..000000000 --- a/python/noxfile.py +++ /dev/null @@ -1,49 +0,0 @@ -import nox - -nox.options.sessions = ["lint", "format", "type_hints", "smoke_tests"] - - -@nox.session(python=False) -def lint(session: nox.Session) -> None: - """Lint the project's codebase.""" - session.run("ruff", "check", "--fix", "--config", "builtins=['_']") - - -@nox.session(python=False) -def format(session: nox.Session) -> None: - """Format the project's codebase.""" - session.run("ruff", "format") - - -@nox.session(python=False) -def type_hints(session: nox.Session) -> None: - """Check type hints in the project's codebase.""" - session.run("mypy", "--install-types", "--non-interactive", ".") - - -@nox.session(python=False) -def unit_tests(session: nox.Session) -> None: - """Run the project's unit tests.""" - session.run("pytest", "-m", "unit") - - -@nox.session(python=False) -def smoke_tests(session: nox.Session) -> None: - """Run the project's smoke tests.""" - session.run("pytest", "-m", "smoke") - - -@nox.session(python=False) -def babel(session: nox.Session) -> None: - """Run the I18N toolchain.""" - session.run( - "pybabel", - "extract", - "-c", - "TRANSLATORS", - "-o", - "locale/messages.pot", - "./PiFinder", - ) - session.run("pybabel", "update", "-i", "locale/messages.pot", "-d", "locale") - session.run("pybabel", "compile", "-d", "locale") diff --git a/python/requirements.txt b/python/requirements.txt deleted file mode 100644 index 5f92091ab..000000000 --- a/python/requirements.txt +++ /dev/null @@ -1,27 +0,0 @@ -adafruit-blinka==8.12.0 -adafruit-circuitpython-bno055 -bottle==0.12.25 -cheroot==10.0.0 -dataclasses_json==0.6.7 -gpsdclient==1.3.2 -grpcio==1.64.1 -json5==0.9.25 -luma.oled==3.12.0 -luma.lcd==2.11.0 -pillow==10.4.0 -numpy==1.26.2 -pandas==1.5.3 -pydeepskylog==1.3.2 -pyjwt==2.8.0 -python-libinput==0.3.0a0 -pytz==2022.7.1 -requests==2.28.2 -rpi-hardware-pwm==0.1.4 -scipy -scikit-learn==1.2.2 -sh==1.14.3 -skyfield==1.45 -timezonefinder==6.1.9 -tqdm==4.65.0 -protobuf==4.25.2 -aiofiles==24.1.0 diff --git a/python/requirements_dev.txt b/python/requirements_dev.txt deleted file mode 100644 index 5264c55d7..000000000 --- a/python/requirements_dev.txt +++ /dev/null @@ -1,13 +0,0 @@ -# dev requirements -luma.emulator==1.5.0 -PyHotKey==1.5.2 -ruff==0.4.8 -nox==2024.4.15 -mypy==1.10.0 -pytest==8.2.2 -pygame==2.6.1 -pre-commit==3.7.1 -Babel==2.16.0 -xlrd==2.0.2 -# Pin to avoid pyobjc 12.0 which has macOS 15 build issues -pyobjc-framework-Quartz==11.1; sys_platform == "darwin" diff --git a/python/tests/test_catalog_data.py b/python/tests/test_catalog_data.py index 845cc6752..ee6628d51 100644 --- a/python/tests/test_catalog_data.py +++ b/python/tests/test_catalog_data.py @@ -41,9 +41,9 @@ def test_object_counts(): expected_catalogs = list(catalog_counts.keys()) missing_catalogs = set(expected_catalogs) - set(actual_catalogs) extra_catalogs = set(actual_catalogs) - set(expected_catalogs) - assert ( - not missing_catalogs and not extra_catalogs - ), f"Catalog mismatch. Missing catalogs: {sorted(missing_catalogs)}. Extra catalogs: {sorted(extra_catalogs)}" + assert not missing_catalogs and not extra_catalogs, ( + f"Catalog mismatch. Missing catalogs: {sorted(missing_catalogs)}. Extra catalogs: {sorted(extra_catalogs)}" + ) # Catalog Counts for catalog_code, count in catalog_counts.items(): @@ -93,20 +93,20 @@ def check_messier_objects(): # Validate M45 coordinates (Pleiades) # Expected: RA=56.85°, Dec=+24.117° - assert coords_are_close( - m45_obj["ra"], 56.85 - ), f"M45 RA should be ~56.85°, got {m45_obj['ra']}" - assert coords_are_close( - m45_obj["dec"], 24.117 - ), f"M45 Dec should be ~24.117°, got {m45_obj['dec']}" + assert coords_are_close(m45_obj["ra"], 56.85), ( + f"M45 RA should be ~56.85°, got {m45_obj['ra']}" + ) + assert coords_are_close(m45_obj["dec"], 24.117), ( + f"M45 Dec should be ~24.117°, got {m45_obj['dec']}" + ) # Validate M45 object type and constellation - assert ( - m45_obj["obj_type"] == "OC" - ), f"M45 should be type 'OC' (open cluster), got '{m45_obj['obj_type']}'" - assert ( - m45_obj["const"] == "Tau" - ), f"M45 should be in Taurus (Tau), got '{m45_obj['const']}'" + assert m45_obj["obj_type"] == "OC", ( + f"M45 should be type 'OC' (open cluster), got '{m45_obj['obj_type']}'" + ) + assert m45_obj["const"] == "Tau", ( + f"M45 should be in Taurus (Tau), got '{m45_obj['const']}'" + ) # Test M40 - Winnecke 4 (should have been added by post-processing) m40_catalog_obj = db.get_catalog_object_by_sequence("M", 40) @@ -117,20 +117,20 @@ def check_messier_objects(): # Validate M40 coordinates (Winnecke 4) # Expected: RA=185.552°, Dec=+58.083° - assert coords_are_close( - m40_obj["ra"], 185.552 - ), f"M40 RA should be ~185.552°, got {m40_obj['ra']}" - assert coords_are_close( - m40_obj["dec"], 58.083 - ), f"M40 Dec should be ~58.083°, got {m40_obj['dec']}" + assert coords_are_close(m40_obj["ra"], 185.552), ( + f"M40 RA should be ~185.552°, got {m40_obj['ra']}" + ) + assert coords_are_close(m40_obj["dec"], 58.083), ( + f"M40 Dec should be ~58.083°, got {m40_obj['dec']}" + ) # Validate M40 object type and constellation - assert ( - m40_obj["obj_type"] == "D*" - ), f"M40 should be type 'D*' (double star), got '{m40_obj['obj_type']}'" - assert ( - m40_obj["const"] == "UMa" - ), f"M40 should be in Ursa Major (UMa), got '{m40_obj['const']}'" + assert m40_obj["obj_type"] == "D*", ( + f"M40 should be type 'D*' (double star), got '{m40_obj['obj_type']}'" + ) + assert m40_obj["const"] == "UMa", ( + f"M40 should be in Ursa Major (UMa), got '{m40_obj['const']}'" + ) def check_ngc_objects(): @@ -190,32 +190,32 @@ def check_ngc_objects(): # Get object from database catalog_obj = db.get_catalog_object_by_sequence("NGC", ngc_num) - assert ( - catalog_obj is not None - ), f"NGC {ngc_num} ({name}) should exist in catalog" + assert catalog_obj is not None, ( + f"NGC {ngc_num} ({name}) should exist in catalog" + ) obj = db.get_object_by_id(catalog_obj["object_id"]) assert obj is not None, f"NGC {ngc_num} ({name}) object should exist" # Check coordinates (allow 0.1 degree tolerance for coordinate precision) - assert coords_are_close( - obj["ra"], test_obj["ra"], tolerance=0.1 - ), f"NGC {ngc_num} ({name}) RA should be ~{test_obj['ra']}°, got {obj['ra']}°" + assert coords_are_close(obj["ra"], test_obj["ra"], tolerance=0.1), ( + f"NGC {ngc_num} ({name}) RA should be ~{test_obj['ra']}°, got {obj['ra']}°" + ) - assert coords_are_close( - obj["dec"], test_obj["dec"], tolerance=0.1 - ), f"NGC {ngc_num} ({name}) Dec should be ~{test_obj['dec']}°, got {obj['dec']}°" + assert coords_are_close(obj["dec"], test_obj["dec"], tolerance=0.1), ( + f"NGC {ngc_num} ({name}) Dec should be ~{test_obj['dec']}°, got {obj['dec']}°" + ) # Check object type - assert ( - obj["obj_type"] == test_obj["obj_type"] - ), f"NGC {ngc_num} ({name}) should be type '{test_obj['obj_type']}', got '{obj['obj_type']}'" + assert obj["obj_type"] == test_obj["obj_type"], ( + f"NGC {ngc_num} ({name}) should be type '{test_obj['obj_type']}', got '{obj['obj_type']}'" + ) # Check constellation (if provided) if test_obj["const"]: - assert ( - obj["const"] == test_obj["const"] - ), f"NGC {ngc_num} ({name}) should be in {test_obj['const']}, got '{obj['const']}'" + assert obj["const"] == test_obj["const"], ( + f"NGC {ngc_num} ({name}) should be in {test_obj['const']}, got '{obj['const']}'" + ) print( f"✓ NGC {ngc_num} ({name}): RA={obj['ra']:.3f}°, Dec={obj['dec']:.3f}°, Type={obj['obj_type']}, Const={obj['const']}" @@ -286,24 +286,24 @@ def check_ic_objects(): assert obj is not None, f"IC {ic_num} ({name}) object should exist" # Check coordinates (allow 0.1 degree tolerance for coordinate precision) - assert coords_are_close( - obj["ra"], test_obj["ra"], tolerance=0.1 - ), f"IC {ic_num} ({name}) RA should be ~{test_obj['ra']}°, got {obj['ra']}°" + assert coords_are_close(obj["ra"], test_obj["ra"], tolerance=0.1), ( + f"IC {ic_num} ({name}) RA should be ~{test_obj['ra']}°, got {obj['ra']}°" + ) - assert coords_are_close( - obj["dec"], test_obj["dec"], tolerance=0.1 - ), f"IC {ic_num} ({name}) Dec should be ~{test_obj['dec']}°, got {obj['dec']}°" + assert coords_are_close(obj["dec"], test_obj["dec"], tolerance=0.1), ( + f"IC {ic_num} ({name}) Dec should be ~{test_obj['dec']}°, got {obj['dec']}°" + ) # Check object type - assert ( - obj["obj_type"] == test_obj["obj_type"] - ), f"IC {ic_num} ({name}) should be type '{test_obj['obj_type']}', got '{obj['obj_type']}'" + assert obj["obj_type"] == test_obj["obj_type"], ( + f"IC {ic_num} ({name}) should be type '{test_obj['obj_type']}', got '{obj['obj_type']}'" + ) # Check constellation (if provided) if test_obj["const"]: - assert ( - obj["const"] == test_obj["const"] - ), f"IC {ic_num} ({name}) should be in {test_obj['const']}, got '{obj['const']}'" + assert obj["const"] == test_obj["const"], ( + f"IC {ic_num} ({name}) should be in {test_obj['const']}, got '{obj['const']}'" + ) print( f"✓ IC {ic_num} ({name}): RA={obj['ra']:.3f}°, Dec={obj['dec']:.3f}°, Type={obj['obj_type']}, Const={obj['const']}" @@ -382,9 +382,9 @@ def on_complete(objects): # Verify results assert loaded_count == 100, f"Expected 100 objects, got {loaded_count}" - assert ( - len(loaded_objects) == 100 - ), f"Expected 100 loaded objects, got {len(loaded_objects)}" + assert len(loaded_objects) == 100, ( + f"Expected 100 loaded objects, got {len(loaded_objects)}" + ) # Verify objects have details loaded for obj in loaded_objects[:10]: # Check first 10 diff --git a/python/tests/test_sqm.py b/python/tests/test_sqm.py index a66990f74..ea33ba887 100644 --- a/python/tests/test_sqm.py +++ b/python/tests/test_sqm.py @@ -44,9 +44,9 @@ def test_extinction_increases_toward_horizon(self): # Extinction should increase monotonically as altitude decreases for i in range(len(extinctions) - 1): - assert ( - extinctions[i] < extinctions[i + 1] - ), f"Extinction at {altitudes[i]}° should be less than at {altitudes[i+1]}°" + assert extinctions[i] < extinctions[i + 1], ( + f"Extinction at {altitudes[i]}° should be less than at {altitudes[i + 1]}°" + ) def test_extinction_minimum_is_at_zenith(self): """Test that zenith (90°) has zero extinction (ASTAP convention)""" @@ -141,7 +141,7 @@ def test_airmass_increases_toward_horizon(self): for i in range(len(airmasses) - 1): assert airmasses[i] < airmasses[i + 1], ( f"Airmass at {altitudes[i]}° ({airmasses[i]:.3f}) should be less than " - f"at {altitudes[i+1]}° ({airmasses[i+1]:.3f})" + f"at {altitudes[i + 1]}° ({airmasses[i + 1]:.3f})" ) @@ -234,7 +234,9 @@ def test_calculate_extinction_applied(self): # Check extinction values (ASTAP convention: 0 at zenith) # Pickering airmass at 30° ≈ 1.995, so extinction ≈ 0.28 * 0.995 ≈ 0.279 - assert details_zenith["extinction_for_altitude"] == pytest.approx(0.0, abs=0.001) + assert details_zenith["extinction_for_altitude"] == pytest.approx( + 0.0, abs=0.001 + ) expected_ext_30 = 0.28 * (sqm._pickering_airmass(30.0) - 1) assert details_30deg["extinction_for_altitude"] == pytest.approx( expected_ext_30, abs=0.001 From 5e75817af56296ce51ca7b5f7e556aaa8034e605 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Fri, 13 Feb 2026 12:21:16 +0100 Subject: [PATCH 079/144] refactor: replace nox/pip with nix develop for CI and dev tooling - Rename nox.yml to lint.yml, use nix develop for ruff/mypy/pytest - Move ruff builtins config into pyproject.toml, target py313 - Add notebook lint exclusions (E402, F841) - Fix ambiguous variable name in software.py (l -> lbl) - Remove unused import in sys_utils.py - Delete noxfile.py, requirements.txt, requirements_dev.txt - Add DEPENDENCIES.md (auto-generated from nix) and generation script - Update .pre-commit-config.yaml with ruff lint+format hooks Co-Authored-By: Claude Opus 4.6 --- .github/workflows/lint.yml | 37 +++++++--- .pre-commit-config.yaml | 12 ++++ python/DEPENDENCIES.md | 105 ++++++++++++++++++++++++++++ python/PiFinder/sys_utils.py | 1 - python/PiFinder/ui/software.py | 17 ++--- python/pyproject.toml | 9 ++- python/tests/test_software.py | 36 +++++++--- scripts/generate-dependencies-md.sh | 64 +++++++++++++++++ 8 files changed, 250 insertions(+), 31 deletions(-) create mode 100644 python/DEPENDENCIES.md create mode 100755 scripts/generate-dependencies-md.sh diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 1fd793bed..db75310df 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -1,14 +1,33 @@ -name: nox +name: Lint & Test on: [push, pull_request] jobs: - nox: + lint: runs-on: ubuntu-latest - defaults: - run: - working-directory: ./python steps: - uses: actions/checkout@v4 - - uses: wntrblm/nox@2024.04.15 - with: - python-versions: "3.9" - - run: nox -s lint format type_hints smoke_tests unit_tests + - uses: DeterminateSystems/nix-installer-action@main + - uses: DeterminateSystems/magic-nix-cache-action@main + - name: Lint + run: nix develop --command bash -c "cd python && ruff check" + - name: Format check + run: nix develop --command bash -c "cd python && ruff format --check" + + type-check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: DeterminateSystems/nix-installer-action@main + - uses: DeterminateSystems/magic-nix-cache-action@main + - name: Type check + run: nix develop --command bash -c "cd python && mypy --install-types --non-interactive ." + + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: DeterminateSystems/nix-installer-action@main + - uses: DeterminateSystems/magic-nix-cache-action@main + - name: Smoke tests + run: nix develop --command bash -c "cd python && pytest -m smoke" + - name: Unit tests + run: nix develop --command bash -c "cd python && pytest -m unit" diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index f3af93d04..317fee59c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,6 +1,18 @@ repos: - repo: local hooks: + - id: ruff-lint + name: ruff lint + entry: bash -c 'cd python && ruff check' + language: system + files: ^python/.*\.py$ + pass_filenames: false + - id: ruff-format + name: ruff format check + entry: bash -c 'cd python && ruff format --check' + language: system + files: ^python/.*\.py$ + pass_filenames: false - id: mypy name: mypy type check entry: bash -c 'cd python && mypy .' diff --git a/python/DEPENDENCIES.md b/python/DEPENDENCIES.md new file mode 100644 index 000000000..4cd998f32 --- /dev/null +++ b/python/DEPENDENCIES.md @@ -0,0 +1,105 @@ +> **Auto-generated** from the Nix development shell on 2026-02-13. +> Do not edit manually — regenerate with: +> ``` +> nix develop --command ./scripts/generate-dependencies-md.sh +> ``` + +> **Note:** These dependencies are managed by Nix (`nixos/pkgs/python-packages.nix`). +> The versions listed here reflect the nixpkgs pin used by the flake and are +> **not necessarily installable via pip**. Some packages require system libraries +> or hardware (SPI, I2C, GPIO) only available on the Raspberry Pi. + +# Python Dependencies + +Python 3.13.11 + +## Runtime + +| Package | Version | +|---------|---------| +| aiofiles | 24.1.0 | +| attrs | 25.3.0 | +| av | 16.0.1 | +| bottle | 0.13.4 | +| cbor2 | 5.7.0 | +| certifi | 2025.7.14 | +| cffi | 2.0.0 | +| charset-normalizer | 3.4.3 | +| cheroot | 10.0.1 | +| dataclasses-json | 0.6.7 | +| dbus-python | 1.4.0 | +| Deprecated | 1.2.18 | +| evdev | 1.9.2 | +| flatbuffers | 25.9.23 | +| gpsdclient | 1.3.2 | +| grpcio | 1.76.0 | +| h3 | 4.3.1 | +| idna | 3.11 | +| jaraco.functools | 4.2.1 | +| joblib | 1.5.1 | +| jplephem | 2.23 | +| json5 | 0.12.0 | +| jsonpath-ng | 1.7.0 | +| jsonschema | 4.25.0 | +| jsonschema-specifications | 2025.4.1 | +| libarchive-c | 5.3 | +| luma.core | 2.4.2 | +| luma.lcd | 2.11.0 | +| luma.oled | 3.13.0 | +| lz4 | 4.4.4 | +| marshmallow | 3.26.2 | +| more-itertools | 10.7.0 | +| numpy | 2.3.4 | +| pandas | 2.3.1 | +| pillow | 12.1.0 | +| ply | 3.11 | +| protobuf | 6.33.1 | +| psutil | 7.1.2 | +| pycairo | 1.28.0 | +| pycparser | 2.23 | +| pydeepskylog | 1.6 | +| pyftdi | 0.57.1 | +| Pygments | 2.19.2 | +| PyGObject | 3.54.5 | +| PyJWT | 2.10.1 | +| pyserial | 3.5 | +| python-dateutil | 2.9.0.post0 | +| python-libinput | 0.3.0a0 | +| python-pam | 2.0.2 | +| pytz | 2025.2 | +| pyusb | 1.3.1 | +| referencing | 0.36.2 | +| requests | 2.32.5 | +| rpds-py | 0.25.0 | +| scikit-learn | 1.7.1 | +| scipy | 1.16.3 | +| sgp4 | 2.25 | +| sh | 1.14.3 | +| six | 1.17.0 | +| skyfield | 1.53 | +| smbus2 | 0.5.0 | +| spidev | 3.8 | +| threadpoolctl | 3.6.0 | +| timezonefinder | 8.1.0 | +| tqdm | 4.67.1 | +| typing_extensions | 4.15.0 | +| typing_inspect | 0.9.0 | +| tzdata | 2025.2 | +| urllib3 | 2.5.0 | +| wrapt | 1.17.2 | + +## Development only + +| Package | Version | +|---------|---------| +| iniconfig | 2.1.0 | +| luma.emulator | 1.5.0 | +| mypy | 1.17.1 | +| mypy_extensions | 1.1.0 | +| pathspec | 0.12.1 | +| pluggy | 1.6.0 | +| pygame | 2.6.1 | +| PyHotKey | 1.5.2 | +| pynput | 1.8.1 | +| pytest | 8.4.2 | +| python-xlib | 0.33 | diff --git a/python/PiFinder/sys_utils.py b/python/PiFinder/sys_utils.py index 2e8013716..4933d9076 100644 --- a/python/PiFinder/sys_utils.py +++ b/python/PiFinder/sys_utils.py @@ -24,7 +24,6 @@ gi.require_version("NM", "1.0") from gi.repository import GLib, NM # noqa: E402 -from PiFinder import utils # noqa: E402 from PiFinder.sys_utils_base import ( # noqa: E402 NetworkBase, BACKUP_PATH, # noqa: F401 diff --git a/python/PiFinder/ui/software.py b/python/PiFinder/ui/software.py index 76baff510..e335e19cf 100644 --- a/python/PiFinder/ui/software.py +++ b/python/PiFinder/ui/software.py @@ -166,7 +166,7 @@ def _fetch_testable_prs() -> list[dict]: return entries for pr in res.json(): - labels = [l.get("name", "") for l in pr.get("labels", [])] + labels = [lbl.get("name", "") for lbl in pr.get("labels", [])] if "testable" not in labels: continue number = pr.get("number", 0) @@ -469,8 +469,7 @@ def _draw_confirm(self): y += 14 version_label = ( - self._selected_version.get("version") - or self._selected_version["label"] + self._selected_version.get("version") or self._selected_version["label"] ) self.draw.text( (0, y), @@ -599,9 +598,7 @@ def key_down(self): if self._list_index < len(self._version_list) - 1: self._list_index += 1 if self._list_index >= self._scroll_offset + self.MAX_VISIBLE: - self._scroll_offset = ( - self._list_index - self.MAX_VISIBLE + 1 - ) + self._scroll_offset = self._list_index - self.MAX_VISIBLE + 1 elif self._phase == "confirm": if self._confirm_index < len(self._confirm_options) - 1: self._confirm_index += 1 @@ -616,8 +613,8 @@ def key_right(self): self.remove_from_stack() elif self._phase == "browse": if self._focus == "channel" and self._channel_names: - self._channel_index = ( - (self._channel_index + 1) % len(self._channel_names) + self._channel_index = (self._channel_index + 1) % len( + self._channel_names ) self._refresh_version_list() elif self._focus == "list" and self._version_list: @@ -635,9 +632,7 @@ def key_right(self): elif opt == "Notes": notes = self._selected_version.get("notes") if notes: - self.add_to_stack( - {"class": UIReleaseNotes, "notes_text": notes} - ) + self.add_to_stack({"class": UIReleaseNotes, "notes_text": notes}) elif opt == "Cancel": self._phase = "browse" diff --git a/python/pyproject.toml b/python/pyproject.toml index b2eeda153..9f420f299 100644 --- a/python/pyproject.toml +++ b/python/pyproject.toml @@ -4,6 +4,8 @@ mapping = [ ] [tool.ruff] +builtins = ["_"] + # Exclude a variety of commonly ignored directories. exclude = [ ".bzr", @@ -39,8 +41,8 @@ exclude = [ line-length = 88 indent-width = 4 -# Assume Python 3.9 -target-version = "py39" +# Assume Python 3.13 +target-version = "py313" [tool.ruff.lint] # Enable preview mode, allow os.env changes before imports @@ -59,6 +61,9 @@ unfixable = [] # Allow unused variables when underscore-prefixed. dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$" +[tool.ruff.lint.per-file-ignores] +"*.ipynb" = ["E402", "F841"] + [tool.ruff.format] # Like Black, use double quotes for strings. quote-style = "double" diff --git a/python/tests/test_software.py b/python/tests/test_software.py index 7d2d431f6..2e031f723 100644 --- a/python/tests/test_software.py +++ b/python/tests/test_software.py @@ -10,7 +10,6 @@ _fetch_github_releases, _fetch_testable_prs, _fetch_build_json, - GITHUB_REPO, GITHUB_RAW_URL, ) @@ -155,7 +154,10 @@ def test_prerelease_tag(self): # Build JSON fetching # --------------------------------------------------------------------------- -MOCK_BUILD_JSON = {"store_path": "/nix/store/abc123-nixos-system-pifinder", "version": "2.6.0"} +MOCK_BUILD_JSON = { + "store_path": "/nix/store/abc123-nixos-system-pifinder", + "version": "2.6.0", +} @pytest.mark.unit @@ -245,9 +247,18 @@ def test_returns_none_on_network_error(self, mock_get): ] BUILD_JSONS = { - "v2.6.0": {"store_path": "/nix/store/aaa-nixos-system-pifinder", "version": "2.6.0"}, - "v2.5.1": {"store_path": "/nix/store/bbb-nixos-system-pifinder", "version": "2.5.1"}, - "v2.6.0-beta.1": {"store_path": "/nix/store/ccc-nixos-system-pifinder", "version": "2.6.0-beta.1"}, + "v2.6.0": { + "store_path": "/nix/store/aaa-nixos-system-pifinder", + "version": "2.6.0", + }, + "v2.5.1": { + "store_path": "/nix/store/bbb-nixos-system-pifinder", + "version": "2.5.1", + }, + "v2.6.0-beta.1": { + "store_path": "/nix/store/ccc-nixos-system-pifinder", + "version": "2.6.0-beta.1", + }, } @@ -410,8 +421,14 @@ def test_skips_entries_without_build_json(self, mock_get, mock_build): ] PR_BUILD_JSONS = { - "abc123def456": {"store_path": "/nix/store/pr42-nixos-system-pifinder", "version": "2.6.0-dev"}, - "789xyz000111": {"store_path": "/nix/store/pr99-nixos-system-pifinder", "version": "2.6.0-dev"}, + "abc123def456": { + "store_path": "/nix/store/pr42-nixos-system-pifinder", + "version": "2.6.0-dev", + }, + "789xyz000111": { + "store_path": "/nix/store/pr99-nixos-system-pifinder", + "version": "2.6.0-dev", + }, } @@ -498,7 +515,10 @@ def test_long_title_truncated(self, mock_get, mock_build): } ] mock_get.return_value = mock_resp - mock_build.return_value = {"store_path": "/nix/store/pr7-nixos", "version": "2.6.0-dev"} + mock_build.return_value = { + "store_path": "/nix/store/pr7-nixos", + "version": "2.6.0-dev", + } entries = _fetch_testable_prs() diff --git a/scripts/generate-dependencies-md.sh b/scripts/generate-dependencies-md.sh new file mode 100755 index 000000000..8942f1cb3 --- /dev/null +++ b/scripts/generate-dependencies-md.sh @@ -0,0 +1,64 @@ +#!/usr/bin/env bash +# Generates python/DEPENDENCIES.md from the nix devShell environment. +# Run from repo root: nix develop --command ./scripts/generate-dependencies-md.sh +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" +OUTPUT="$REPO_ROOT/python/DEPENDENCIES.md" + +python3 << 'PYEOF' > "$OUTPUT" +import importlib.metadata +from datetime import date + +pkgs = sorted( + ((d.name, d.version) for d in importlib.metadata.distributions()), + key=lambda x: x[0].lower(), +) + +# Dev-only packages (from python-packages.nix devPackages) +dev_only = {"pytest", "mypy", "mypy_extensions", "luma.emulator", "PyHotKey", + "pynput", "python-xlib", "pygame", "pathspec", "pluggy", "iniconfig"} + +# Build/infra packages not relevant to PiFinder +infra = {"pip", "flit_core", "virtualenv", "distlib", "filelock", "platformdirs", + "packaging", "setuptools"} + +prod = [(n, v) for n, v in pkgs if n not in dev_only and n not in infra] +dev = [(n, v) for n, v in pkgs if n in dev_only] + +print(f"""\ +> **Auto-generated** from the Nix development shell on {date.today()}. +> Do not edit manually — regenerate with: +> ``` +> nix develop --command ./scripts/generate-dependencies-md.sh +> ``` + +> **Note:** These dependencies are managed by Nix (`nixos/pkgs/python-packages.nix`). +> The versions listed here reflect the nixpkgs pin used by the flake and are +> **not necessarily installable via pip**. Some packages require system libraries +> or hardware (SPI, I2C, GPIO) only available on the Raspberry Pi. + +# Python Dependencies + +Python {'.'.join(str(x) for x in __import__('sys').version_info[:3])} + +## Runtime + +| Package | Version | +|---------|---------|""") + +for name, ver in prod: + print(f"| {name} | {ver} |") + +print(f""" +## Development only + +| Package | Version | +|---------|---------|""") + +for name, ver in dev: + print(f"| {name} | {ver} |") +PYEOF + +echo "Generated $OUTPUT" From 676be123ed256abe24caf92829d5c687deb66a74 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Fri, 13 Feb 2026 12:21:25 +0100 Subject: [PATCH 080/144] fix: add watchdog fallback for CI when self-hosted runner unavailable native-wait job polls build-native for 15 min on ubuntu-latest. If the self-hosted aarch64 runner doesn't pick up the job in time, build-emulated kicks in with QEMU instead of queuing forever. Co-Authored-By: Claude Opus 4.6 --- .github/workflows/build.yml | 39 ++++++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3b1faed0f..4878bc1bb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -42,10 +42,43 @@ jobs: echo "$STORE_PATH" | cachix push pifinder echo "store_path=$STORE_PATH" >> "$GITHUB_OUTPUT" - # Fallback to QEMU emulation if Pi5 unavailable + # Wait up to 15 min for native builder, then decide on fallback + native-wait: + if: | + github.event_name == 'push' || + github.event_name == 'workflow_dispatch' || + contains(github.event.pull_request.labels.*.name, 'preview') || + contains(github.event.pull_request.labels.*.name, 'testable') + runs-on: ubuntu-latest + timeout-minutes: 20 + outputs: + need_emulated: ${{ steps.wait.outputs.need_emulated }} + steps: + - name: Wait for native build + id: wait + env: + GH_TOKEN: ${{ github.token }} + run: | + for i in $(seq 1 30); do + sleep 30 + RESULT=$(gh api "repos/${{ github.repository }}/actions/runs/${{ github.run_id }}/jobs" \ + --jq '.jobs[] | select(.name == "build-native") | .conclusion // "pending"' 2>/dev/null || echo "pending") + echo "Check $i/30: build-native=$RESULT" + if [ "$RESULT" = "success" ]; then + echo "need_emulated=false" >> "$GITHUB_OUTPUT" + exit 0 + elif [ "$RESULT" = "failure" ] || [ "$RESULT" = "cancelled" ]; then + echo "need_emulated=true" >> "$GITHUB_OUTPUT" + exit 0 + fi + done + echo "Native build not done after 15 min, falling back to emulated" + echo "need_emulated=true" >> "$GITHUB_OUTPUT" + + # Fallback to QEMU emulation if Pi5 unavailable or slow build-emulated: - needs: build-native - if: failure() || cancelled() + needs: native-wait + if: needs.native-wait.outputs.need_emulated == 'true' runs-on: ubuntu-latest timeout-minutes: 360 outputs: From 204be3fe5166d7897d763aecc368ad3295764e37 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Fri, 13 Feb 2026 12:21:32 +0100 Subject: [PATCH 081/144] fix: add SSH port 22 to firewall allowedTCPPorts Co-Authored-By: Claude Opus 4.6 --- nixos/networking.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/networking.nix b/nixos/networking.nix index 70a345cb3..8c86afa65 100644 --- a/nixos/networking.nix +++ b/nixos/networking.nix @@ -6,7 +6,7 @@ wireless.enable = false; # NetworkManager handles WiFi firewall = { allowedUDPPorts = [ 53 67 ]; # DNS + DHCP for AP mode - allowedTCPPorts = [ 80 ]; # PiFinder web UI + allowedTCPPorts = [ 22 80 ]; # SSH + PiFinder web UI }; }; From e8171055fe5be8146fed2cdfa3e63e8ea595a454 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Fri, 13 Feb 2026 12:23:11 +0100 Subject: [PATCH 082/144] fix: open firewall for Samba, remove redundant SSH port - Add openFirewall = true to samba service - Remove manual port 22 (openssh.openFirewall defaults to true) Co-Authored-By: Claude Opus 4.6 --- nixos/networking.nix | 2 +- nixos/services.nix | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/nixos/networking.nix b/nixos/networking.nix index 8c86afa65..e2b843853 100644 --- a/nixos/networking.nix +++ b/nixos/networking.nix @@ -6,7 +6,7 @@ wireless.enable = false; # NetworkManager handles WiFi firewall = { allowedUDPPorts = [ 53 67 ]; # DNS + DHCP for AP mode - allowedTCPPorts = [ 22 80 ]; # SSH + PiFinder web UI + allowedTCPPorts = [ 80 ]; # PiFinder web UI (other ports via service openFirewall) }; }; diff --git a/nixos/services.nix b/nixos/services.nix index ab76a7957..2458411e9 100644 --- a/nixos/services.nix +++ b/nixos/services.nix @@ -530,6 +530,7 @@ in { services.samba = { enable = true; + openFirewall = true; settings = { global = { workgroup = "WORKGROUP"; From c1d8e8cfd00ddc0e476fd29713dba449c7e93b55 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 13 Feb 2026 11:24:38 +0000 Subject: [PATCH 083/144] chore: stamp build [skip ci] --- pifinder-build.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pifinder-build.json b/pifinder-build.json index b5a01a5d6..4758d63cc 100644 --- a/pifinder-build.json +++ b/pifinder-build.json @@ -1,4 +1,4 @@ { - "store_path": "/nix/store/gc93nqpf89x7lchxdw17p3jg1dl39kxa-nixos-system-pifinder-25.11.20260209.2db38e0", + "store_path": "/nix/store/y3g1xy15p2fxk8i3zsq4w7q4nbkkqb3v-nixos-system-pifinder-25.11.20260209.2db38e0", "version": "2.5.0" } From bf0054ad036953bcd629356b863c27cdb74ccab8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 13 Feb 2026 11:24:55 +0000 Subject: [PATCH 084/144] chore: stamp build [skip ci] --- pifinder-build.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pifinder-build.json b/pifinder-build.json index 4758d63cc..cbf02f262 100644 --- a/pifinder-build.json +++ b/pifinder-build.json @@ -1,4 +1,4 @@ { - "store_path": "/nix/store/y3g1xy15p2fxk8i3zsq4w7q4nbkkqb3v-nixos-system-pifinder-25.11.20260209.2db38e0", + "store_path": "/nix/store/7c61g6q38094rdw13ycvqjssyihxzxji-nixos-system-pifinder-25.11.20260209.2db38e0", "version": "2.5.0" } From c76fdcd4c7e72df1a0f4988ecebd6721b118ea77 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Fri, 13 Feb 2026 12:34:50 +0100 Subject: [PATCH 085/144] fix: clean stale avahi PID file before restart Avahi fails to start after switch-to-configuration because the old PID file persists at /run/avahi-daemon/pid. Add ExecStartPre to remove it, preventing mDNS (pifinder.local) from breaking on upgrades. Co-Authored-By: Claude Opus 4.6 --- nixos/services.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nixos/services.nix b/nixos/services.nix index 2458411e9..e0629c49e 100644 --- a/nixos/services.nix +++ b/nixos/services.nix @@ -505,6 +505,10 @@ in { }; }; + # Clean stale PID file so avahi restarts cleanly during switch-to-configuration + systemd.services.avahi-daemon.serviceConfig.ExecStartPre = + "${pkgs.coreutils}/bin/rm -f /run/avahi-daemon/pid"; + # Apply user-chosen hostname from PiFinder_data (survives NixOS rebuilds) systemd.services.pifinder-hostname = { description = "Apply PiFinder custom hostname"; From da85b863db7275088f0228094d67223ebb9ed9ce Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 13 Feb 2026 11:36:25 +0000 Subject: [PATCH 086/144] chore: stamp build [skip ci] --- pifinder-build.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pifinder-build.json b/pifinder-build.json index cbf02f262..d788ea72a 100644 --- a/pifinder-build.json +++ b/pifinder-build.json @@ -1,4 +1,4 @@ { - "store_path": "/nix/store/7c61g6q38094rdw13ycvqjssyihxzxji-nixos-system-pifinder-25.11.20260209.2db38e0", + "store_path": "/nix/store/vdmjvj2xi8mksg268jjfb1r74b6hvmca-nixos-system-pifinder-25.11.20260209.2db38e0", "version": "2.5.0" } From 8b60e3c98ad952f679b0d3dc46cbe33448f53d15 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Fri, 13 Feb 2026 12:49:37 +0100 Subject: [PATCH 087/144] fix: disable Determinate Nix to avoid FlakeHub registration DeterminateSystems/nix-installer-action defaults to determinate: true which requires FlakeHub auth. This fails on forks (brickbots/PiFinder) because OIDC tokens don't work cross-repo. Use upstream Nix instead. Co-Authored-By: Claude Opus 4.6 --- .github/workflows/lint.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index db75310df..5e4d9b144 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -6,6 +6,8 @@ jobs: steps: - uses: actions/checkout@v4 - uses: DeterminateSystems/nix-installer-action@main + with: + determinate: false - uses: DeterminateSystems/magic-nix-cache-action@main - name: Lint run: nix develop --command bash -c "cd python && ruff check" @@ -17,6 +19,8 @@ jobs: steps: - uses: actions/checkout@v4 - uses: DeterminateSystems/nix-installer-action@main + with: + determinate: false - uses: DeterminateSystems/magic-nix-cache-action@main - name: Type check run: nix develop --command bash -c "cd python && mypy --install-types --non-interactive ." @@ -26,6 +30,8 @@ jobs: steps: - uses: actions/checkout@v4 - uses: DeterminateSystems/nix-installer-action@main + with: + determinate: false - uses: DeterminateSystems/magic-nix-cache-action@main - name: Smoke tests run: nix develop --command bash -c "cd python && pytest -m smoke" From 98cdafe1ccfa62713e1c0dec1388b01bcfccafea Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 13 Feb 2026 11:51:13 +0000 Subject: [PATCH 088/144] chore: stamp build [skip ci] --- pifinder-build.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pifinder-build.json b/pifinder-build.json index d788ea72a..3186d7867 100644 --- a/pifinder-build.json +++ b/pifinder-build.json @@ -1,4 +1,4 @@ { - "store_path": "/nix/store/vdmjvj2xi8mksg268jjfb1r74b6hvmca-nixos-system-pifinder-25.11.20260209.2db38e0", + "store_path": "/nix/store/j3da43v2q00n99h9wq52zrdg7v6rvq53-nixos-system-pifinder-25.11.20260209.2db38e0", "version": "2.5.0" } From 0359235c810d8a5d3d85ad16ddc324fc04e9b996 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Fri, 13 Feb 2026 12:59:14 +0100 Subject: [PATCH 089/144] fix: harden avahi hostname handling and use display constants - Validate hostnames (DNS-safe: alphanumeric + hyphens, max 63 chars) - Add sudo to avahi-set-host-name call with fallback to restart avahi - Add avahi-set-host-name to sudoers NOPASSWD rules - Add avahi restart fallback to pifinder-hostname boot service - Replace hardcoded 128x128 in status.py with display class constants Co-Authored-By: Claude Opus 4.6 --- nixos/services.nix | 4 +++- python/PiFinder/sys_utils.py | 19 +++++++++++++++++-- python/PiFinder/ui/status.py | 5 ++++- 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/nixos/services.nix b/nixos/services.nix index e0629c49e..260929d8d 100644 --- a/nixos/services.nix +++ b/nixos/services.nix @@ -213,6 +213,7 @@ in { { command = "/run/current-system/sw/bin/systemctl stop pifinder.service"; options = [ "NOPASSWD" ]; } { command = "/run/current-system/sw/bin/systemctl start pifinder.service"; options = [ "NOPASSWD" ]; } { command = "/run/current-system/sw/bin/systemctl restart avahi-daemon.service"; options = [ "NOPASSWD" ]; } + { command = "/run/current-system/sw/bin/avahi-set-host-name *"; options = [ "NOPASSWD" ]; } { command = "/run/current-system/sw/bin/shutdown *"; options = [ "NOPASSWD" ]; } { command = "/run/current-system/sw/bin/chpasswd"; options = [ "NOPASSWD" ]; } { command = "/run/current-system/sw/bin/dmesg"; options = [ "NOPASSWD" ]; } @@ -524,7 +525,8 @@ in { name=$(cat "$f") [ -n "$name" ] || exit 0 /run/current-system/sw/bin/hostname "$name" - /run/current-system/sw/bin/avahi-set-host-name "$name" + /run/current-system/sw/bin/avahi-set-host-name "$name" || \ + /run/current-system/sw/bin/systemctl restart avahi-daemon.service ''; }; }; diff --git a/python/PiFinder/sys_utils.py b/python/PiFinder/sys_utils.py index 4933d9076..488f118a5 100644 --- a/python/PiFinder/sys_utils.py +++ b/python/PiFinder/sys_utils.py @@ -11,6 +11,7 @@ """ import os +import re import subprocess import time import logging @@ -241,6 +242,8 @@ def get_connected_ssid(self) -> str: return "" return ssid_bytes.get_data().decode("utf-8") + _HOSTNAME_RE = re.compile(r"^[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$") + def set_host_name(self, hostname: str) -> None: """Set kernel hostname and update avahi mDNS announcement. @@ -248,11 +251,23 @@ def set_host_name(self, hostname: str) -> None: the kernel hostname directly and persist to a file that a boot service reads on startup. """ + hostname = hostname.strip() + if not self._HOSTNAME_RE.match(hostname): + logger.warning("Invalid hostname rejected: %r", hostname) + return if hostname == self.get_host_name(): return subprocess.run(["sudo", "hostname", hostname], check=False) - subprocess.run(["avahi-set-host-name", hostname], check=False) - # Persist for next boot (pifinder-hostname.service reads this) + result = subprocess.run(["sudo", "avahi-set-host-name", hostname], check=False) + if result.returncode != 0: + logger.warning( + "avahi-set-host-name failed (rc=%d), restarting avahi-daemon", + result.returncode, + ) + subprocess.run( + ["sudo", "systemctl", "restart", "avahi-daemon.service"], + check=False, + ) data_dir = Path(os.environ.get("PIFINDER_DATA", "/home/pifinder/PiFinder_data")) (data_dir / "hostname").write_text(hostname) diff --git a/python/PiFinder/ui/status.py b/python/PiFinder/ui/status.py index 68b48b12d..e3aa6028b 100644 --- a/python/PiFinder/ui/status.py +++ b/python/PiFinder/ui/status.py @@ -304,7 +304,10 @@ def update_status_dict(self): def update(self, force=False): time.sleep(1 / 30) self.update_status_dict() - self.draw.rectangle([0, 0, 128, 128], fill=self.colors.get(0)) + self.draw.rectangle( + [0, 0, self.display_class.resX, self.display_class.resY], + fill=self.colors.get(0), + ) lines = [] # Insert IP address here... for k, v in self.status_dict.items(): From bb2b72eb65b84ab569b3086fa06720668d43da7d Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Fri, 13 Feb 2026 13:24:54 +0100 Subject: [PATCH 090/144] fix: run switch-to-configuration in detached scope during upgrade switch-to-configuration stops changed services, which kills the pifinder-upgrade service mid-switch. Move activation (test, health check, bootloader persist, cleanup) into a systemd-run scope that survives the service being stopped. Poll /run/pifinder/upgrade-status file instead of relying solely on systemctl is-active, which falsely reported failure. Co-Authored-By: Claude Opus 4.6 --- nixos/services.nix | 79 ++++++++++++++++++++++-------------- python/PiFinder/sys_utils.py | 24 ++++++++--- 2 files changed, 67 insertions(+), 36 deletions(-) diff --git a/nixos/services.nix b/nixos/services.nix index 260929d8d..4f158bff5 100644 --- a/nixos/services.nix +++ b/nixos/services.nix @@ -337,41 +337,58 @@ in { echo "Phase 1: Download from binary caches" nix build "$STORE_PATH" --max-jobs 0 - echo "Phase 2: Activate (test mode — bootloader untouched)" + echo "Phase 2: Hand off to activation scope" nix-env -p /nix/var/nix/profiles/system --set "$STORE_PATH" - "$STORE_PATH/bin/switch-to-configuration" test - echo "Phase 3: Verifying pifinder.service health" - systemctl restart pifinder.service - for i in $(seq 1 24); do - if systemctl is-active --quiet pifinder.service; then - echo "pifinder.service active after $((i * 5))s" - - echo "Phase 4: Persist to bootloader" - "$STORE_PATH/bin/switch-to-configuration" switch - - # Restore camera specialisation if not default - CAM=$(cat /var/lib/pifinder/camera-type 2>/dev/null || echo "${cfg.cameraType}") - if [ "$CAM" != "${cfg.cameraType}" ]; then - SPEC="/run/current-system/specialisation/$CAM" - if [ -d "$SPEC" ]; then - echo "Restoring camera specialisation: $CAM" - "$SPEC/bin/switch-to-configuration" boot + STATUS_FILE=/run/pifinder/upgrade-status + echo "running" > "$STATUS_FILE" + + # Run activation in a separate systemd scope so it survives + # pifinder-upgrade.service being stopped by switch-to-configuration. + systemd-run --scope --unit=pifinder-activate \ + ${pkgs.writeShellScript "pifinder-activate" '' + set -euo pipefail + export PATH=${lib.makeBinPath (with pkgs; [ nix systemd coreutils ])} + STORE_PATH="$1" + STATUS_FILE=/run/pifinder/upgrade-status + + echo "Activate: test mode (bootloader untouched)" + "$STORE_PATH/bin/switch-to-configuration" test + + echo "Activate: verifying pifinder.service health" + systemctl restart pifinder.service + for i in $(seq 1 24); do + if systemctl is-active --quiet pifinder.service; then + echo "pifinder.service active after $((i * 5))s" + + echo "Activate: persist to bootloader" + "$STORE_PATH/bin/switch-to-configuration" switch + + # Restore camera specialisation if not default + CAM=$(cat /var/lib/pifinder/camera-type 2>/dev/null || echo "${cfg.cameraType}") + if [ "$CAM" != "${cfg.cameraType}" ]; then + SPEC="/run/current-system/specialisation/$CAM" + if [ -d "$SPEC" ]; then + echo "Restoring camera specialisation: $CAM" + "$SPEC/bin/switch-to-configuration" boot + fi + fi + + echo "Activate: cleanup old generations" + nix-env --delete-generations +2 -p /nix/var/nix/profiles/system || true + nix-collect-garbage || true + + echo "success" > "$STATUS_FILE" + echo "Upgrade complete." + exit 0 fi - fi - - echo "Phase 5: Cleanup old generations" - nix-env --delete-generations +2 -p /nix/var/nix/profiles/system || true - nix-collect-garbage || true - - echo "Upgrade complete." - exit 0 - fi - sleep 5 - done + sleep 5 + done - echo "ERROR: pifinder.service not healthy. Rebooting to revert." - systemctl reboot + echo "failed" > "$STATUS_FILE" + echo "ERROR: pifinder.service not healthy. Rebooting to revert." + systemctl reboot + ''} "$STORE_PATH" ''; }; diff --git a/python/PiFinder/sys_utils.py b/python/PiFinder/sys_utils.py index 488f118a5..c93c1a72c 100644 --- a/python/PiFinder/sys_utils.py +++ b/python/PiFinder/sys_utils.py @@ -392,6 +392,7 @@ def shutdown() -> None: UPGRADE_STATE_FAILED = "failed" UPGRADE_REF_FILE = Path("/run/pifinder/upgrade-ref") +UPGRADE_STATUS_FILE = Path("/run/pifinder/upgrade-status") def start_upgrade(ref: str = "release") -> bool: @@ -402,6 +403,9 @@ def start_upgrade(ref: str = "release") -> bool: logger.error("Failed to write upgrade ref file: %s", e) return False + # Clean stale status from previous run + UPGRADE_STATUS_FILE.unlink(missing_ok=True) + _run(["sudo", "systemctl", "reset-failed", "pifinder-upgrade.service"]) result = _run( [ @@ -416,12 +420,22 @@ def start_upgrade(ref: str = "release") -> bool: def get_upgrade_state() -> str: - """Poll upgrade service state.""" - result = _run(["systemctl", "is-active", "pifinder-upgrade.service"]) - status = result.stdout.strip() - if status == "activating": + """Poll upgrade status file written by the activation scope.""" + try: + status = UPGRADE_STATUS_FILE.read_text().strip() + except FileNotFoundError: + # Service hasn't written status yet — check if it's still starting + result = _run(["systemctl", "is-active", "pifinder-upgrade.service"]) + svc = result.stdout.strip() + if svc in ("activating", "active"): + return UPGRADE_STATE_RUNNING + if svc == "failed": + return UPGRADE_STATE_FAILED + return UPGRADE_STATE_IDLE + + if status == "running": return UPGRADE_STATE_RUNNING - elif status == "active": + elif status == "success": return UPGRADE_STATE_SUCCESS elif status == "failed": return UPGRADE_STATE_FAILED From 1cffae1ba49050351c7e8b948ab7d870f2286371 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 13 Feb 2026 12:26:38 +0000 Subject: [PATCH 091/144] chore: stamp build [skip ci] --- pifinder-build.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pifinder-build.json b/pifinder-build.json index 3186d7867..a386ea16f 100644 --- a/pifinder-build.json +++ b/pifinder-build.json @@ -1,4 +1,4 @@ { - "store_path": "/nix/store/j3da43v2q00n99h9wq52zrdg7v6rvq53-nixos-system-pifinder-25.11.20260209.2db38e0", + "store_path": "/nix/store/4iya16mh6z2mmrgpfvqzdj31i0r28pxf-nixos-system-pifinder-25.11.20260209.2db38e0", "version": "2.5.0" } From ecf0c3d9354140942e9e3076c0c83c71b6ef4dbc Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Fri, 13 Feb 2026 13:51:13 +0100 Subject: [PATCH 092/144] fix: use restartIfChanged/stopIfChanged for upgrade service MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The systemd-run --scope approach failed — switch-to-configuration deactivated the transient scope during daemon-reload. Instead, set restartIfChanged=false and stopIfChanged=false on pifinder-upgrade so it survives switch-to-configuration without being killed. Also add granular upgrade phases (downloading, activating, verifying, persisting) to the status file for future progress display. Co-Authored-By: Claude Opus 4.6 --- nixos/services.nix | 94 ++++++++++++++++++------------------ python/PiFinder/sys_utils.py | 16 ++++-- 2 files changed, 58 insertions(+), 52 deletions(-) diff --git a/nixos/services.nix b/nixos/services.nix index 4f158bff5..a484d59ee 100644 --- a/nixos/services.nix +++ b/nixos/services.nix @@ -311,6 +311,9 @@ in { # --------------------------------------------------------------------------- systemd.services.pifinder-upgrade = { description = "PiFinder Safe NixOS Upgrade (test-then-switch)"; + # Prevent switch-to-configuration from killing us mid-upgrade. + restartIfChanged = false; + stopIfChanged = false; serviceConfig = { Type = "oneshot"; RemainAfterExit = true; @@ -325,70 +328,65 @@ in { exit 1 fi + STATUS_FILE=/run/pifinder/upgrade-status + # Pre-flight: check disk space (need at least 500MB) AVAIL=$(df --output=avail /nix/store | tail -1) if [ "$AVAIL" -lt 524288 ]; then echo "ERROR: Less than 500MB free on /nix/store" + echo "failed" > "$STATUS_FILE" exit 1 fi echo "Upgrading to $STORE_PATH" + echo "downloading" > "$STATUS_FILE" echo "Phase 1: Download from binary caches" nix build "$STORE_PATH" --max-jobs 0 - echo "Phase 2: Hand off to activation scope" + echo "activating" > "$STATUS_FILE" + + echo "Phase 2: Activate (test mode — bootloader untouched)" nix-env -p /nix/var/nix/profiles/system --set "$STORE_PATH" + "$STORE_PATH/bin/switch-to-configuration" test - STATUS_FILE=/run/pifinder/upgrade-status - echo "running" > "$STATUS_FILE" - - # Run activation in a separate systemd scope so it survives - # pifinder-upgrade.service being stopped by switch-to-configuration. - systemd-run --scope --unit=pifinder-activate \ - ${pkgs.writeShellScript "pifinder-activate" '' - set -euo pipefail - export PATH=${lib.makeBinPath (with pkgs; [ nix systemd coreutils ])} - STORE_PATH="$1" - STATUS_FILE=/run/pifinder/upgrade-status - - echo "Activate: test mode (bootloader untouched)" - "$STORE_PATH/bin/switch-to-configuration" test - - echo "Activate: verifying pifinder.service health" - systemctl restart pifinder.service - for i in $(seq 1 24); do - if systemctl is-active --quiet pifinder.service; then - echo "pifinder.service active after $((i * 5))s" - - echo "Activate: persist to bootloader" - "$STORE_PATH/bin/switch-to-configuration" switch - - # Restore camera specialisation if not default - CAM=$(cat /var/lib/pifinder/camera-type 2>/dev/null || echo "${cfg.cameraType}") - if [ "$CAM" != "${cfg.cameraType}" ]; then - SPEC="/run/current-system/specialisation/$CAM" - if [ -d "$SPEC" ]; then - echo "Restoring camera specialisation: $CAM" - "$SPEC/bin/switch-to-configuration" boot - fi - fi - - echo "Activate: cleanup old generations" - nix-env --delete-generations +2 -p /nix/var/nix/profiles/system || true - nix-collect-garbage || true - - echo "success" > "$STATUS_FILE" - echo "Upgrade complete." - exit 0 + echo "verifying" > "$STATUS_FILE" + + echo "Phase 3: Verifying pifinder.service health" + systemctl restart pifinder.service + for i in $(seq 1 24); do + if systemctl is-active --quiet pifinder.service; then + echo "pifinder.service active after $((i * 5))s" + + echo "persisting" > "$STATUS_FILE" + + echo "Phase 4: Persist to bootloader" + "$STORE_PATH/bin/switch-to-configuration" switch + + # Restore camera specialisation if not default + CAM=$(cat /var/lib/pifinder/camera-type 2>/dev/null || echo "${cfg.cameraType}") + if [ "$CAM" != "${cfg.cameraType}" ]; then + SPEC="/run/current-system/specialisation/$CAM" + if [ -d "$SPEC" ]; then + echo "Restoring camera specialisation: $CAM" + "$SPEC/bin/switch-to-configuration" boot fi - sleep 5 - done + fi + + echo "Phase 5: Cleanup old generations" + nix-env --delete-generations +2 -p /nix/var/nix/profiles/system || true + nix-collect-garbage || true + + echo "success" > "$STATUS_FILE" + echo "Upgrade complete." + exit 0 + fi + sleep 5 + done - echo "failed" > "$STATUS_FILE" - echo "ERROR: pifinder.service not healthy. Rebooting to revert." - systemctl reboot - ''} "$STORE_PATH" + echo "failed" > "$STATUS_FILE" + echo "ERROR: pifinder.service not healthy. Rebooting to revert." + systemctl reboot ''; }; diff --git a/python/PiFinder/sys_utils.py b/python/PiFinder/sys_utils.py index c93c1a72c..b22f90f2e 100644 --- a/python/PiFinder/sys_utils.py +++ b/python/PiFinder/sys_utils.py @@ -420,7 +420,7 @@ def start_upgrade(ref: str = "release") -> bool: def get_upgrade_state() -> str: - """Poll upgrade status file written by the activation scope.""" + """Poll upgrade status file written by the upgrade service.""" try: status = UPGRADE_STATUS_FILE.read_text().strip() except FileNotFoundError: @@ -433,15 +433,23 @@ def get_upgrade_state() -> str: return UPGRADE_STATE_FAILED return UPGRADE_STATE_IDLE - if status == "running": - return UPGRADE_STATE_RUNNING - elif status == "success": + if status == "success": return UPGRADE_STATE_SUCCESS elif status == "failed": return UPGRADE_STATE_FAILED + elif status in ("downloading", "activating", "verifying", "persisting"): + return UPGRADE_STATE_RUNNING return UPGRADE_STATE_IDLE +def get_upgrade_phase() -> str: + """Return the current upgrade phase for progress display.""" + try: + return UPGRADE_STATUS_FILE.read_text().strip() + except FileNotFoundError: + return "" + + def get_upgrade_log_tail(lines: int = 3) -> str: """Last N lines from upgrade journal for UI display.""" result = _run( From 0fde64ea689a584136c772d4baec4368dac1be74 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 13 Feb 2026 12:52:56 +0000 Subject: [PATCH 093/144] chore: stamp build [skip ci] --- pifinder-build.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pifinder-build.json b/pifinder-build.json index a386ea16f..8e64733af 100644 --- a/pifinder-build.json +++ b/pifinder-build.json @@ -1,4 +1,4 @@ { - "store_path": "/nix/store/4iya16mh6z2mmrgpfvqzdj31i0r28pxf-nixos-system-pifinder-25.11.20260209.2db38e0", + "store_path": "/nix/store/ym4rp1mb7wlsskbaialbhpzlylif258l-nixos-system-pifinder-25.11.20260209.2db38e0", "version": "2.5.0" } From 021667dd955e89316a83b3813b96bb4e98f39f44 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Fri, 13 Feb 2026 17:52:50 +0100 Subject: [PATCH 094/144] ci: add config key removal warning for PRs Compares top-level keys in default_config.json between base and head on pull requests. Emits ::warning:: annotations for any removed keys to catch accidental breakage of user preferences across releases. Co-Authored-By: Claude Opus 4.6 --- .github/workflows/lint.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 5e4d9b144..37e24bfbc 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -5,6 +5,8 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + with: + fetch-depth: 0 - uses: DeterminateSystems/nix-installer-action@main with: determinate: false @@ -13,6 +15,21 @@ jobs: run: nix develop --command bash -c "cd python && ruff check" - name: Format check run: nix develop --command bash -c "cd python && ruff format --check" + - name: Check for removed config keys + if: github.event_name == 'pull_request' + run: | + BASE_SHA="${{ github.event.pull_request.base.sha }}" + git show "$BASE_SHA:default_config.json" 2>/dev/null \ + | python3 -c "import json,sys; print('\n'.join(sorted(json.load(sys.stdin).keys())))" \ + > /tmp/base_keys.txt || exit 0 + python3 -c "import json,sys; print('\n'.join(sorted(json.load(sys.stdin).keys())))" \ + < default_config.json > /tmp/head_keys.txt + REMOVED=$(comm -23 /tmp/base_keys.txt /tmp/head_keys.txt) + if [ -n "$REMOVED" ]; then + while IFS= read -r key; do + echo "::warning file=default_config.json::Config key '$key' was removed — this may break user preferences across release switches" + done <<< "$REMOVED" + fi type-check: runs-on: ubuntu-latest From c18332859a35b6764f7041f607199d5a4af25746 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Fri, 13 Feb 2026 22:51:47 +0100 Subject: [PATCH 095/144] refactor: replace version.txt with pifinder-build.json version.txt was manually maintained and redundant. Now: - CI stamps branch-sha as version for non-release builds - Release workflow already sets version from input - Python reads version from pifinder-build.json via utils.get_version() Co-Authored-By: Claude Opus 4.6 --- .github/workflows/build.yml | 4 +++- python/PiFinder/server.py | 10 ++-------- python/PiFinder/splash.py | 5 +++-- python/PiFinder/ui/software.py | 4 +--- python/PiFinder/ui/status.py | 7 ++----- python/PiFinder/utils.py | 9 +++++++++ version.txt | 1 - 7 files changed, 20 insertions(+), 20 deletions(-) delete mode 100644 version.txt diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4878bc1bb..e614c2166 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -131,7 +131,9 @@ jobs: - name: Write pifinder-build.json run: | STORE_PATH="${{ needs.build-native.outputs.store_path || needs.build-emulated.outputs.store_path }}" - VERSION=$(cat version.txt | tr -d '[:space:]') + BRANCH="${{ github.head_ref || github.ref_name }}" + SHORT_SHA=$(git rev-parse --short HEAD) + VERSION="${BRANCH}-${SHORT_SHA}" jq -n --arg sp "$STORE_PATH" --arg v "$VERSION" \ '{store_path: $sp, version: $v}' > pifinder-build.json diff --git a/python/PiFinder/server.py b/python/PiFinder/server.py index 8b1179f7e..3f095cbd4 100644 --- a/python/PiFinder/server.py +++ b/python/PiFinder/server.py @@ -57,7 +57,7 @@ def __init__( shared_state, is_debug=False, ): - self.version_txt = f"{utils.pifinder_dir}/version.txt" + self._software_version = utils.get_version() self.keyboard_queue = keyboard_queue self.ui_queue = ui_queue self.gps_queue = gps_queue @@ -115,13 +115,7 @@ def send_css(filename): @app.route("/") def home(): logger.debug("/ called") - # Get version info - software_version = "Unknown" - try: - with open(self.version_txt, "r") as ver_f: - software_version = ver_f.read() - except (FileNotFoundError, IOError) as e: - logger.warning(f"Could not read version file: {str(e)}") + software_version = self._software_version # Try to update GPS state try: diff --git a/python/PiFinder/splash.py b/python/PiFinder/splash.py index fc2a55ce8..a351e955f 100644 --- a/python/PiFinder/splash.py +++ b/python/PiFinder/splash.py @@ -33,8 +33,9 @@ def show_splash(): screen_draw = ImageDraw.Draw(welcome_image) # Display version and Wifi mode - with open(os.path.join(root_dir, "version.txt"), "r") as ver_f: - version = "v" + ver_f.read() + from PiFinder import utils + + version = utils.get_version() with open(os.path.join(root_dir, "wifi_status.txt"), "r") as wifi_f: wifi_mode = wifi_f.read() diff --git a/python/PiFinder/ui/software.py b/python/PiFinder/ui/software.py index e335e19cf..57d2a99eb 100644 --- a/python/PiFinder/ui/software.py +++ b/python/PiFinder/ui/software.py @@ -226,12 +226,10 @@ class UISoftware(UIModule): def __init__(self, *args, **kwargs) -> None: super().__init__(*args, **kwargs) - self.version_txt = f"{utils.pifinder_dir}/version.txt" self.wifi_txt = f"{utils.pifinder_dir}/wifi_status.txt" with open(self.wifi_txt, "r") as f: self._wifi_mode = f.read().strip() - with open(self.version_txt, "r") as f: - self._software_version = f.read().strip() + self._software_version = utils.get_version() self._channels: Dict[str, List[dict]] = {} self._channel_names: List[str] = [] diff --git a/python/PiFinder/ui/status.py b/python/PiFinder/ui/status.py index e3aa6028b..bde6bb24c 100644 --- a/python/PiFinder/ui/status.py +++ b/python/PiFinder/ui/status.py @@ -81,13 +81,11 @@ class UIStatus(UIModule): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) - self.version_txt = f"{utils.pifinder_dir}/version.txt" self.wifi_txt = f"{utils.pifinder_dir}/wifi_status.txt" self._draw_pos = (0, self.display_class.titlebar_height) with open(self.wifi_txt, "r") as wfs: self._config_options["WiFi Mode"]["value"] = wfs.read() - with open(self.version_txt, "r") as ver: - self._config_options["Software"]["value"] = ver.read() + self._config_options["Software"]["value"] = utils.get_version() self.spacecalc = SpaceCalculatorFixed(self.fonts.base.line_length) self.status_dict = { "LST SLV": "--", @@ -144,8 +142,7 @@ def __init__(self, *args, **kwargs): def update_software(self, option): if option == "CANCEL": - with open(self.version_txt, "r") as ver: - self._config_options["Software"]["value"] = ver.read() + self._config_options["Software"]["value"] = utils.get_version() return False self.message("Updating...", 10) diff --git a/python/PiFinder/utils.py b/python/PiFinder/utils.py index b95ec8662..0f8eb4823 100644 --- a/python/PiFinder/utils.py +++ b/python/PiFinder/utils.py @@ -14,6 +14,15 @@ data_dir = Path(Path.home(), "PiFinder_data") pifinder_db = astro_data_dir / "pifinder_objects.db" observations_db = data_dir / "observations.db" +build_json = pifinder_dir / "pifinder-build.json" + + +def get_version() -> str: + try: + with open(build_json, "r") as f: + return json.load(f).get("version", "Unknown") + except (FileNotFoundError, IOError, json.JSONDecodeError): + return "Unknown" debug_dump_dir = data_dir / "solver_debug_dumps" comet_file = data_dir / "comets.txt" diff --git a/version.txt b/version.txt deleted file mode 100644 index 437459cd9..000000000 --- a/version.txt +++ /dev/null @@ -1 +0,0 @@ -2.5.0 From c55bf8425edf76ab7c9dd159453e846dab4cc784 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Fri, 13 Feb 2026 23:16:12 +0100 Subject: [PATCH 096/144] refactor: remove unused update_needed function and tests This function was never called in production code. Co-Authored-By: Claude Opus 4.6 --- python/PiFinder/ui/software.py | 15 ------------- python/tests/test_software.py | 40 ---------------------------------- 2 files changed, 55 deletions(-) diff --git a/python/PiFinder/ui/software.py b/python/PiFinder/ui/software.py index 57d2a99eb..dbc0e9976 100644 --- a/python/PiFinder/ui/software.py +++ b/python/PiFinder/ui/software.py @@ -30,21 +30,6 @@ REQUEST_TIMEOUT = 10 -def update_needed(current_version: str, repo_version: str) -> bool: - """ - Returns true if an update is available. - - Update is available if semver of repo_version is > current_version. - Returns False on error (safe default). - """ - try: - cur = _parse_version(current_version) - repo = _parse_version(repo_version) - return repo > cur - except Exception: - return False - - def _parse_version(version_str: str) -> tuple: """ Parse a version string like '2.4.0' or '2.5.0-beta.1' diff --git a/python/tests/test_software.py b/python/tests/test_software.py index 2e031f723..3b9b3ae5f 100644 --- a/python/tests/test_software.py +++ b/python/tests/test_software.py @@ -2,7 +2,6 @@ from unittest.mock import patch, MagicMock from PiFinder.ui.software import ( - update_needed, _parse_version, _strip_markdown, _meets_min_version, @@ -35,45 +34,6 @@ def test_whitespace_stripped(self): assert _parse_version(" 2.4.0\n") == (2, 4, 0, 1, "") -@pytest.mark.unit -class TestUpdateNeeded: - def test_newer_version_available(self): - assert update_needed("2.3.0", "2.4.0") is True - - def test_same_version(self): - assert update_needed("2.4.0", "2.4.0") is False - - def test_older_version(self): - assert update_needed("2.5.0", "2.4.0") is False - - def test_major_version_bump(self): - assert update_needed("1.9.9", "2.0.0") is True - - def test_patch_bump(self): - assert update_needed("2.4.0", "2.4.1") is True - - def test_prerelease_to_release(self): - assert update_needed("2.5.0-beta.1", "2.5.0") is True - - def test_release_to_prerelease_same(self): - assert update_needed("2.5.0", "2.5.0-beta.1") is False - - def test_prerelease_higher_minor(self): - assert update_needed("2.4.0", "2.5.0-beta.1") is True - - def test_garbage_input_returns_false(self): - assert update_needed("garbage", "2.4.0") is False - - def test_empty_string_returns_false(self): - assert update_needed("", "") is False - - def test_partial_version_returns_false(self): - assert update_needed("2.4", "2.5.0") is False - - def test_unknown_returns_false(self): - assert update_needed("2.4.0", "Unknown") is False - - # --------------------------------------------------------------------------- # Markdown stripping # --------------------------------------------------------------------------- From 31894974a5aac01ea55b80da71d62076f9776147 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Fri, 13 Feb 2026 23:47:59 +0100 Subject: [PATCH 097/144] ci: add concurrency group to prevent queued run pileup Multiple queued runs for the same branch compete for the single self-hosted runner and can stall the GitHub Actions dispatcher. Co-Authored-By: Claude Opus 4.6 --- .github/workflows/build.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e614c2166..a0a7c299a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -7,6 +7,10 @@ on: types: [labeled, synchronize, opened] workflow_dispatch: +concurrency: + group: build-${{ github.head_ref || github.ref_name }} + cancel-in-progress: true + jobs: # Try Pi5 native build first (fast) build-native: From cba851a8e897d59d1144861771fccdc0a7eae331 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Sat, 14 Feb 2026 00:39:24 +0100 Subject: [PATCH 098/144] feat: persist unstable channel unlock across restarts Save the unlock state to config so users don't have to tap square 7 times after every reboot. Co-Authored-By: Claude Opus 4.6 --- default_config.json | 3 ++- python/PiFinder/ui/software.py | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/default_config.json b/default_config.json index aa10ca9f8..6f11071a5 100644 --- a/default_config.json +++ b/default_config.json @@ -175,5 +175,6 @@ "active_telescope_index": 0, "active_eyepiece_index": 0 }, - "imu_threshold_scale": 1 + "imu_threshold_scale": 1, + "software_unstable_unlocked": false } diff --git a/python/PiFinder/ui/software.py b/python/PiFinder/ui/software.py index dbc0e9976..46e5e6b3b 100644 --- a/python/PiFinder/ui/software.py +++ b/python/PiFinder/ui/software.py @@ -233,7 +233,9 @@ def __init__(self, *args, **kwargs) -> None: self._confirm_index = 0 self._fail_option = "Retry" - self._unstable_unlocked = False + self._unstable_unlocked = self.config_object.get_option( + "software_unstable_unlocked" + ) self._unstable_entries: List[dict] = [] self._square_count = 0 @@ -630,6 +632,7 @@ def key_square(self): self._square_count += 1 if self._square_count >= 7 and not self._unstable_unlocked: self._unstable_unlocked = True + self.config_object.set_option("software_unstable_unlocked", True) self._channels["unstable"] = self._unstable_entries self._channel_names = list(self._channels.keys()) self.message(_("Unstable\nunlocked"), 1) From 3bace42555f3354eeee0a30d00a4958f15637520 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 13 Feb 2026 23:44:17 +0000 Subject: [PATCH 099/144] chore: stamp build [skip ci] --- pifinder-build.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pifinder-build.json b/pifinder-build.json index 8e64733af..16c4ab65c 100644 --- a/pifinder-build.json +++ b/pifinder-build.json @@ -1,4 +1,4 @@ { - "store_path": "/nix/store/ym4rp1mb7wlsskbaialbhpzlylif258l-nixos-system-pifinder-25.11.20260209.2db38e0", - "version": "2.5.0" + "store_path": "/nix/store/prgn6q4r7k04sqr9j4x2x61nw759m8jm-nixos-system-pifinder-25.11.20260209.2db38e0", + "version": "nixos-cba851a" } From 6a64841fd042e62e2504823e43f5bd3208b81bc0 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Wed, 18 Feb 2026 09:02:56 +0100 Subject: [PATCH 100/144] feat: add upgrade progress UI with download tracking - Upgrade service reports "downloading X/Y" progress - UI shows progress bar with percentage and path count - Non-blocking upgrade flow with polling - Reboot-based upgrade instead of live switch - Add subtitle support for PR titles/release names - Scrolling text for long labels Co-Authored-By: Claude Opus 4.5 --- .github/workflows/build.yml | 7 +- nixos/services.nix | 113 ++++++----- python/PiFinder/main.py | 7 +- python/PiFinder/sys_utils.py | 58 ++++-- python/PiFinder/sys_utils_fake.py | 4 + python/PiFinder/ui/console.py | 9 +- python/PiFinder/ui/software.py | 327 ++++++++++++++++++++++++------ python/PiFinder/ui/status.py | 4 +- python/PiFinder/utils.py | 2 + python/tests/test_software.py | 14 +- 10 files changed, 407 insertions(+), 138 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a0a7c299a..771a0d313 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -137,7 +137,12 @@ jobs: STORE_PATH="${{ needs.build-native.outputs.store_path || needs.build-emulated.outputs.store_path }}" BRANCH="${{ github.head_ref || github.ref_name }}" SHORT_SHA=$(git rev-parse --short HEAD) - VERSION="${BRANCH}-${SHORT_SHA}" + PR_NUMBER="${{ github.event.pull_request.number }}" + if [ -n "$PR_NUMBER" ]; then + VERSION="PR#${PR_NUMBER}-${SHORT_SHA}" + else + VERSION="${BRANCH}-${SHORT_SHA}" + fi jq -n --arg sp "$STORE_PATH" --arg v "$VERSION" \ '{store_path: $sp, version: $v}' > pifinder-build.json diff --git a/nixos/services.nix b/nixos/services.nix index a484d59ee..3a581b216 100644 --- a/nixos/services.nix +++ b/nixos/services.nix @@ -307,13 +307,13 @@ in { }; # --------------------------------------------------------------------------- - # PiFinder Safe NixOS Upgrade (test-then-switch) + # PiFinder NixOS Upgrade # --------------------------------------------------------------------------- + # Downloads from binary caches, sets profile, updates bootloader, reboots. + # No live switch-to-configuration — avoids killing running services. + # The pifinder-watchdog handles rollback if the new generation fails to boot. systemd.services.pifinder-upgrade = { - description = "PiFinder Safe NixOS Upgrade (test-then-switch)"; - # Prevent switch-to-configuration from killing us mid-upgrade. - restartIfChanged = false; - stopIfChanged = false; + description = "PiFinder NixOS Upgrade"; serviceConfig = { Type = "oneshot"; RemainAfterExit = true; @@ -339,53 +339,61 @@ in { fi echo "Upgrading to $STORE_PATH" - echo "downloading" > "$STATUS_FILE" - echo "Phase 1: Download from binary caches" - nix build "$STORE_PATH" --max-jobs 0 + # Count paths to download for progress reporting + DRY_RUN=$(nix build "$STORE_PATH" --max-jobs 0 --dry-run 2>&1 || true) + PATHS_FILE=$(mktemp) + echo "$DRY_RUN" | grep '^\s*/nix/store/' | sed 's/^\s*//' > "$PATHS_FILE" || true + TOTAL=$(wc -l < "$PATHS_FILE") + + echo "downloading 0/$TOTAL" > "$STATUS_FILE" + + # Download with progress monitoring + nix build "$STORE_PATH" --max-jobs 0 & + BUILD_PID=$! + + while kill -0 "$BUILD_PID" 2>/dev/null; do + DONE=0 + while IFS= read -r p; do + [ -n "$p" ] && [ -e "$p" ] && DONE=$((DONE + 1)) + done < "$PATHS_FILE" + echo "downloading $DONE/$TOTAL" > "$STATUS_FILE" + sleep 2 + done + + if ! wait "$BUILD_PID"; then + echo "failed" > "$STATUS_FILE" + rm -f "$PATHS_FILE" + exit 1 + fi + rm -f "$PATHS_FILE" + echo "downloading $TOTAL/$TOTAL" > "$STATUS_FILE" echo "activating" > "$STATUS_FILE" - echo "Phase 2: Activate (test mode — bootloader untouched)" nix-env -p /nix/var/nix/profiles/system --set "$STORE_PATH" - "$STORE_PATH/bin/switch-to-configuration" test - - echo "verifying" > "$STATUS_FILE" - - echo "Phase 3: Verifying pifinder.service health" - systemctl restart pifinder.service - for i in $(seq 1 24); do - if systemctl is-active --quiet pifinder.service; then - echo "pifinder.service active after $((i * 5))s" - - echo "persisting" > "$STATUS_FILE" - echo "Phase 4: Persist to bootloader" - "$STORE_PATH/bin/switch-to-configuration" switch - - # Restore camera specialisation if not default - CAM=$(cat /var/lib/pifinder/camera-type 2>/dev/null || echo "${cfg.cameraType}") - if [ "$CAM" != "${cfg.cameraType}" ]; then - SPEC="/run/current-system/specialisation/$CAM" - if [ -d "$SPEC" ]; then - echo "Restoring camera specialisation: $CAM" - "$SPEC/bin/switch-to-configuration" boot - fi - fi + # Restore camera specialisation if not default + CAM=$(cat /var/lib/pifinder/camera-type 2>/dev/null || echo "${cfg.cameraType}") + if [ "$CAM" != "${cfg.cameraType}" ]; then + SPEC="$STORE_PATH/specialisation/$CAM" + if [ -d "$SPEC" ]; then + echo "Setting boot to camera specialisation: $CAM" + "$SPEC/bin/switch-to-configuration" boot + else + "$STORE_PATH/bin/switch-to-configuration" boot + fi + else + "$STORE_PATH/bin/switch-to-configuration" boot + fi - echo "Phase 5: Cleanup old generations" - nix-env --delete-generations +2 -p /nix/var/nix/profiles/system || true - nix-collect-garbage || true + echo "rebooting" > "$STATUS_FILE" - echo "success" > "$STATUS_FILE" - echo "Upgrade complete." - exit 0 - fi - sleep 5 - done + # Cleanup old generations before reboot + nix-env --delete-generations +2 -p /nix/var/nix/profiles/system || true + nix-collect-garbage || true - echo "failed" > "$STATUS_FILE" - echo "ERROR: pifinder.service not healthy. Rebooting to revert." + echo "Rebooting into new generation..." systemctl reboot ''; }; @@ -401,7 +409,7 @@ in { Type = "oneshot"; RemainAfterExit = true; }; - path = with pkgs; [ systemd coreutils ]; + path = with pkgs; [ nix systemd coreutils ]; script = '' set -euo pipefail REBOOT_MARKER="/var/tmp/pifinder-watchdog-rebooted" @@ -412,11 +420,18 @@ in { exit 0 fi - echo "Watchdog: waiting up to 90s for pifinder.service..." - for i in $(seq 1 18); do + echo "Watchdog: waiting up to 120s for pifinder.service..." + for i in $(seq 1 24); do if systemctl is-active --quiet pifinder.service; then - echo "pifinder.service healthy after $((i * 5))s" - exit 0 + # Verify it stays running (not crash-looping) + UPTIME=$(systemctl show pifinder.service --property=ExecMainStartTimestamp --value) + START_EPOCH=$(date -d "$UPTIME" +%s 2>/dev/null || echo 0) + NOW_EPOCH=$(date +%s) + RUNNING_FOR=$((NOW_EPOCH - START_EPOCH)) + if [ "$RUNNING_FOR" -ge 15 ]; then + echo "pifinder.service healthy (running ''${RUNNING_FOR}s)" + exit 0 + fi fi sleep 5 done @@ -425,6 +440,8 @@ in { touch "$REBOOT_MARKER" PREV_GEN=$(ls -d /nix/var/nix/profiles/system-*-link 2>/dev/null | sort -t- -k2 -n | tail -2 | head -1) if [ -n "$PREV_GEN" ]; then + # Reset profile so the rolled-back generation becomes the current one + nix-env -p /nix/var/nix/profiles/system --set "$(readlink -f "$PREV_GEN")" "$PREV_GEN/bin/switch-to-configuration" switch || true fi systemctl reboot diff --git a/python/PiFinder/main.py b/python/PiFinder/main.py index 01c75ed30..4a733a86a 100644 --- a/python/PiFinder/main.py +++ b/python/PiFinder/main.py @@ -491,12 +491,13 @@ def main( # Initialize power manager power_manager = PowerManager(cfg, shared_state, display_device) - # Start main event loop - console.write(" Event Loop") - logger.info(" Event Loop") + # Startup complete — clear welcome backdrop + console.write(" Ready") console.update() + console.finish_startup() # Start deferred catalog loading now that UI is ready + logger.info(" Event Loop") catalogs.start_background_loading() log_time = True diff --git a/python/PiFinder/sys_utils.py b/python/PiFinder/sys_utils.py index b22f90f2e..37f1970a5 100644 --- a/python/PiFinder/sys_utils.py +++ b/python/PiFinder/sys_utils.py @@ -13,7 +13,6 @@ import os import re import subprocess -import time import logging from pathlib import Path from typing import Optional @@ -437,17 +436,48 @@ def get_upgrade_state() -> str: return UPGRADE_STATE_SUCCESS elif status == "failed": return UPGRADE_STATE_FAILED - elif status in ("downloading", "activating", "verifying", "persisting"): + elif status.startswith("downloading") or status in ("activating", "rebooting"): return UPGRADE_STATE_RUNNING return UPGRADE_STATE_IDLE -def get_upgrade_phase() -> str: - """Return the current upgrade phase for progress display.""" +def get_upgrade_progress() -> dict: + """Return structured upgrade progress for UI display. + + Returns dict with keys: + phase: "downloading" | "activating" | "rebooting" | "success" | "failed" | "" + done: int (paths downloaded so far) + total: int (total paths to download) + percent: int (0-100) + """ try: - return UPGRADE_STATUS_FILE.read_text().strip() + raw = UPGRADE_STATUS_FILE.read_text().strip() except FileNotFoundError: - return "" + return {"phase": "", "done": 0, "total": 0, "percent": 0} + + # "downloading 5/42" format + if raw.startswith("downloading "): + parts = raw.split(" ", 1)[1].split("/") + try: + done, total = int(parts[0]), int(parts[1]) + pct = int(done * 100 / total) if total > 0 else 0 + return { + "phase": "downloading", + "done": done, + "total": total, + "percent": pct, + } + except (ValueError, IndexError): + return {"phase": "downloading", "done": 0, "total": 0, "percent": 0} + if raw == "activating": + return {"phase": "activating", "done": 0, "total": 0, "percent": 100} + if raw == "rebooting": + return {"phase": "rebooting", "done": 0, "total": 0, "percent": 100} + if raw == "success": + return {"phase": "success", "done": 0, "total": 0, "percent": 100} + if raw == "failed": + return {"phase": "failed", "done": 0, "total": 0, "percent": 0} + return {"phase": "", "done": 0, "total": 0, "percent": 0} def get_upgrade_log_tail(lines: int = 3) -> str: @@ -468,16 +498,12 @@ def get_upgrade_log_tail(lines: int = 3) -> str: def update_software(ref: str = "release") -> bool: - """Blocking wrapper — starts upgrade and polls until complete.""" - if not start_upgrade(ref=ref): - return False - while True: - time.sleep(10) - state = get_upgrade_state() - if state == UPGRADE_STATE_SUCCESS: - return True - elif state == UPGRADE_STATE_FAILED: - return False + """Start the upgrade service (non-blocking). + + The service downloads, sets the boot profile, and reboots. + UI should poll get_upgrade_progress() for status. + """ + return start_upgrade(ref=ref) # --------------------------------------------------------------------------- diff --git a/python/PiFinder/sys_utils_fake.py b/python/PiFinder/sys_utils_fake.py index fee5de25d..2afc27730 100644 --- a/python/PiFinder/sys_utils_fake.py +++ b/python/PiFinder/sys_utils_fake.py @@ -66,6 +66,10 @@ def update_software(ref: str = "release"): return True +def get_upgrade_progress() -> dict: + return {"phase": "", "done": 0, "total": 0, "percent": 0} + + def restart_pifinder() -> None: logger.info("SYS: Restarting PiFinder") diff --git a/python/PiFinder/ui/console.py b/python/PiFinder/ui/console.py index 2c3471ecf..c349ee50a 100644 --- a/python/PiFinder/ui/console.py +++ b/python/PiFinder/ui/console.py @@ -35,7 +35,7 @@ def __init__(self, *args, **kwargs): self.dirty = True self.welcome = True - # load welcome image to screen + # Load welcome image as startup backdrop root_dir = os.path.realpath( os.path.join(os.path.dirname(__file__), "..", "..", "..") ) @@ -87,6 +87,13 @@ def write(self, line): self.scroll_offset = 0 self.dirty = True + def finish_startup(self): + """End the startup splash phase and clear the welcome backdrop.""" + self.welcome = False + self.clear_screen() + self.dirty = True + self.update() + def active(self): self.welcome = False self.dirty = True diff --git a/python/PiFinder/ui/software.py b/python/PiFinder/ui/software.py index 46e5e6b3b..76c27552a 100644 --- a/python/PiFinder/ui/software.py +++ b/python/PiFinder/ui/software.py @@ -10,7 +10,7 @@ """ import logging -import time +import re from typing import Dict, List, Optional import requests @@ -28,6 +28,7 @@ GITHUB_RAW_URL = f"https://raw.githubusercontent.com/{GITHUB_REPO}" MIN_NIXOS_VERSION = "2.5.0" REQUEST_TIMEOUT = 10 +_PR_VERSION_RE = re.compile(r"^PR#(\d+)-") def _parse_version(version_str: str) -> tuple: @@ -119,6 +120,7 @@ def _fetch_github_releases() -> tuple[list[dict], list[dict]]: "ref": build["store_path"], "notes": release.get("body") or None, "version": build.get("version", version), + "subtitle": release.get("name", tag), } if release.get("prerelease"): @@ -163,13 +165,14 @@ def _fetch_testable_prs() -> list[dict]: if build is None: continue - short_title = title[:20] + "..." if len(title) > 20 else title + short_sha = sha[:7] entries.append( { - "label": f"PR#{number} {short_title}", + "label": f"PR#{number}-{short_sha}", "ref": build["store_path"], "notes": body, "version": build.get("version"), + "subtitle": title, } ) @@ -188,26 +191,44 @@ def _fetch_main_entry() -> Optional[dict]: if build is None: return None return { - "label": "main", + "label": build.get("version") or "main", "ref": build["store_path"], "notes": None, "version": build.get("version"), + "subtitle": "main branch", } +def _fetch_pr_title(pr_number: int) -> Optional[str]: + """Fetch the title of a single PR by number.""" + url = f"https://api.github.com/repos/{GITHUB_REPO}/pulls/{pr_number}" + try: + res = requests.get( + url, + timeout=REQUEST_TIMEOUT, + headers={"Accept": "application/vnd.github.v3+json"}, + ) + if res.status_code == 200: + return res.json().get("title") + except requests.exceptions.RequestException: + pass + return None + + class UISoftware(UIModule): """ Software update UI. Phases: - loading - animated "Checking for updates..." - browse - header (version + channel selector) + scrollable version list - confirm - selected version details + Install / Notes / Cancel - failed - update failed + Retry / Cancel + loading - animated "Checking for updates..." + browse - header (version + channel selector) + scrollable version list + confirm - selected version details + Install / Notes / Cancel + upgrading - progress bar with download progress, then reboot + failed - update failed + Retry / Cancel """ __title__ = "SOFTWARE" - MAX_VISIBLE = 5 + MAX_VISIBLE = 4 def __init__(self, *args, **kwargs) -> None: super().__init__(*args, **kwargs) @@ -215,6 +236,7 @@ def __init__(self, *args, **kwargs) -> None: with open(self.wifi_txt, "r") as f: self._wifi_mode = f.read().strip() self._software_version = utils.get_version() + self._software_subtitle: Optional[str] = None self._channels: Dict[str, List[dict]] = {} self._channel_names: List[str] = [] @@ -239,8 +261,9 @@ def __init__(self, *args, **kwargs) -> None: self._unstable_entries: List[dict] = [] self._square_count = 0 - self._scroll_label: Optional[TextLayouterScroll] = None - self._scroll_label_text: Optional[str] = None + self._scrollers: Dict[str, TextLayouterScroll] = {} + self._scroller_phase: Optional[str] = None + self._scroller_index: Optional[int] = None def active(self): super().active() @@ -251,6 +274,9 @@ def active(self): self._list_index = 0 self._scroll_offset = 0 self._selected_version = None + self._scrollers = {} + self._scroller_phase = None + self._scroller_index = None # ------------------------------------------------------------------ # Data @@ -258,28 +284,49 @@ def active(self): def _fetch_channels(self): stable, beta = _fetch_github_releases() - pr_entries = _fetch_testable_prs() - - unstable = [] - main_entry = _fetch_main_entry() - if main_entry: - unstable.append(main_entry) - unstable.extend(pr_entries) self._channels = { "stable": stable, "beta": beta, } - self._unstable_entries = unstable if self._unstable_unlocked: - self._channels["unstable"] = unstable + self._unstable_entries = self._fetch_unstable_entries() + self._channels["unstable"] = self._unstable_entries + + # Try to find subtitle for current version from fetched entries + self._software_subtitle = self._find_current_subtitle() self._channel_names = list(self._channels.keys()) self._channel_index = 0 self._refresh_version_list() self._phase = "browse" + def _find_current_subtitle(self) -> Optional[str]: + """Find a subtitle for the current version. + + Checks fetched channel entries first, then falls back to + a direct PR title fetch for PR builds. + """ + for entries in self._channels.values(): + for entry in entries: + if entry.get("version") == self._software_version: + return entry.get("subtitle") + + m = _PR_VERSION_RE.match(self._software_version) + if m: + return _fetch_pr_title(int(m.group(1))) + + return None + + def _fetch_unstable_entries(self) -> list[dict]: + unstable: list[dict] = [] + main_entry = _fetch_main_entry() + if main_entry: + unstable.append(main_entry) + unstable.extend(_fetch_testable_prs()) + return unstable + def _refresh_version_list(self): if not self._channel_names: self._version_list = [] @@ -291,8 +338,38 @@ def _refresh_version_list(self): ] self._list_index = 0 self._scroll_offset = 0 - self._scroll_label = None - self._scroll_label_text = None + self._scrollers = {} + self._scroller_phase = None + self._scroller_index = None + + def _get_scrollspeed_config(self): + scroll_dict = { + "Off": 0, + "Fast": TextLayouterScroll.FAST, + "Med": TextLayouterScroll.MEDIUM, + "Slow": TextLayouterScroll.SLOW, + } + scrollspeed = self.config_object.get_option("text_scroll_speed", "Med") + return scroll_dict[scrollspeed] + + def _get_scroller(self, key: str, text: str, font, color, width: int): + """Get or create a cached scroller, reset cache on phase/index change.""" + phase_index = (self._phase, self._list_index) + if (self._scroller_phase, self._scroller_index) != phase_index: + self._scrollers = {} + self._scroller_phase = self._phase + self._scroller_index = self._list_index + + if key not in self._scrollers: + self._scrollers[key] = TextLayouterScroll( + text, + draw=self.draw, + color=color, + font=font, + width=width, + scrollspeed=self._get_scrollspeed_config(), + ) + return self._scrollers[key] # ------------------------------------------------------------------ # Drawing helpers @@ -303,12 +380,14 @@ def _draw_separator(self, y): def _draw_loading(self): y = self.display_class.titlebar_height + 2 - self.draw.text( - (0, y), + ver_scroller = self._get_scroller( + "loading_ver", self._software_version, - font=self.fonts.bold.font, - fill=self.colors.get(255), + self.fonts.bold, + self.colors.get(255), + self.fonts.bold.line_length, ) + ver_scroller.draw((0, y)) dots = "." * (self._elipsis_count // 10) self.draw.text( (10, 90), @@ -328,12 +407,14 @@ def _draw_loading(self): def _draw_wifi_warning(self): y = self.display_class.titlebar_height + 2 - self.draw.text( - (0, y), + ver_scroller = self._get_scroller( + "wifi_ver", self._software_version, - font=self.fonts.bold.font, - fill=self.colors.get(255), + self.fonts.bold, + self.colors.get(255), + self.fonts.bold.line_length, ) + ver_scroller.draw((0, y)) self.draw.text( (10, 90), _("WiFi must be"), @@ -351,13 +432,27 @@ def _draw_browse(self): y = self.display_class.titlebar_height + 2 # Current version - self.draw.text( - (0, y), + ver_scroller = self._get_scroller( + "browse_cur_ver", self._software_version, - font=self.fonts.bold.font, - fill=self.colors.get(255), + self.fonts.bold, + self.colors.get(255), + self.fonts.bold.line_length, ) - y += 14 + ver_scroller.draw((0, y)) + y += 12 + if self._software_subtitle: + sub_scroller = self._get_scroller( + "browse_cur_sub", + self._software_subtitle, + self.fonts.base, + self.colors.get(128), + self.fonts.base.line_length, + ) + sub_scroller.draw((0, y)) + y += 12 + else: + y += 2 # Channel selector channel_name = ( @@ -406,41 +501,54 @@ def _draw_browse(self): ) return - visible = min(self.MAX_VISIBLE, len(self._version_list)) - # available width after arrow (10px) in characters label_width = self.fonts.base.line_length - 2 - for i in range(visible): + current_y = y + for i in range(len(self._version_list)): idx = self._scroll_offset + i if idx >= len(self._version_list): break entry = self._version_list[idx] - item_y = y + i * 12 label = entry["label"] + subtitle = entry.get("subtitle", "") if self._focus == "list" and idx == self._list_index: + if current_y + 24 > 128: + break self.draw.text( - (0, item_y), + (0, current_y), self._RIGHT_ARROW, font=self.fonts.bold.font, fill=self.colors.get(255), ) - if self._scroll_label_text != label: - self._scroll_label = TextLayouterScroll( - label, - draw=self.draw, - color=self.colors.get(255), - font=self.fonts.bold, - width=label_width, + scroller = self._get_scroller( + "browse_label", + label, + self.fonts.bold, + self.colors.get(255), + label_width, + ) + scroller.draw((10, current_y)) + current_y += 12 + if subtitle: + sub_scroller = self._get_scroller( + "browse_sub", + subtitle, + self.fonts.base, + self.colors.get(128), + label_width, ) - self._scroll_label_text = label - self._scroll_label.draw((10, item_y)) + sub_scroller.draw((10, current_y)) + current_y += 12 else: + if current_y + 12 > 128: + break self.draw.text( - (10, item_y), + (10, current_y), label[:label_width], font=self.fonts.base.font, fill=self.colors.get(192), ) + current_y += 12 def _draw_confirm(self): y = self.display_class.titlebar_height + 2 @@ -453,15 +561,30 @@ def _draw_confirm(self): ) y += 14 + label_width = self.fonts.base.line_length version_label = ( self._selected_version.get("version") or self._selected_version["label"] ) - self.draw.text( - (0, y), + scroller = self._get_scroller( + "confirm_label", version_label, - font=self.fonts.bold.font, - fill=self.colors.get(255), + self.fonts.bold, + self.colors.get(255), + label_width, ) + scroller.draw((0, y)) + y += 12 + + subtitle = self._selected_version.get("subtitle", "") + if subtitle: + sub_scroller = self._get_scroller( + "confirm_sub", + subtitle, + self.fonts.base, + self.colors.get(128), + label_width, + ) + sub_scroller.draw((0, y)) y += 14 self._draw_separator(y) @@ -520,9 +643,12 @@ def _draw_failed(self): # ------------------------------------------------------------------ def update(self, force=False): - time.sleep(1 / 30) self.clear_screen() + if self._phase == "upgrading": + self._draw_upgrading() + return self.screen_update() + if self._phase == "failed": self._draw_failed() return self.screen_update() @@ -555,6 +681,8 @@ def _reset_unlock(self): def key_up(self): self._reset_unlock() + if self._phase == "upgrading": + return if self._phase == "failed": self._fail_option = "Cancel" if self._fail_option == "Retry" else "Retry" elif self._phase == "browse": @@ -571,6 +699,8 @@ def key_up(self): def key_down(self): self._reset_unlock() + if self._phase == "upgrading": + return if self._phase == "failed": self._fail_option = "Cancel" if self._fail_option == "Retry" else "Retry" elif self._phase == "browse": @@ -590,6 +720,8 @@ def key_down(self): def key_right(self): self._reset_unlock() + if self._phase == "upgrading": + return if self._phase == "failed": if self._fail_option == "Retry": self._phase = "confirm" @@ -623,6 +755,8 @@ def key_right(self): def key_left(self): self._reset_unlock() + if self._phase == "upgrading": + return False if self._phase == "confirm": self._phase = "browse" return False @@ -633,6 +767,7 @@ def key_square(self): if self._square_count >= 7 and not self._unstable_unlocked: self._unstable_unlocked = True self.config_object.set_option("software_unstable_unlocked", True) + self._unstable_entries = self._fetch_unstable_entries() self._channels["unstable"] = self._unstable_entries self._channel_names = list(self._channels.keys()) self.message(_("Unstable\nunlocked"), 1) @@ -647,15 +782,86 @@ def key_number(self, number): def update_software(self): if not self._selected_version: return + self._phase = "upgrading" + self.clear_screen() + self._draw_upgrading() + self.screen_update() + ref = self._selected_version.get("ref") or "release" - self.message(_("Updating..."), 10) - if sys_utils.update_software(ref=ref): - self.message(_("Ok! Restarting..."), 10) - sys_utils.restart_system() - else: + if not sys_utils.update_software(ref=ref): self._phase = "failed" self._fail_option = "Retry" + def _draw_upgrading(self): + y = self.display_class.titlebar_height + 2 + + progress = sys_utils.get_upgrade_progress() + phase = progress["phase"] + pct = progress["percent"] + done = progress["done"] + total = progress["total"] + + if phase == "failed": + self._phase = "failed" + self._fail_option = "Retry" + return + + # Title + if phase == "rebooting": + label = _("Rebooting...") + elif phase == "activating": + label = _("Activating...") + else: + label = _("Downloading...") + + self.draw.text( + (0, y), + label, + font=self.fonts.bold.font, + fill=self.colors.get(255), + ) + y += 20 + + # Progress bar + bar_x, bar_w, bar_h = 4, 120, 12 + # Background fill so bar is always visible + self.draw.rectangle( + [bar_x, y, bar_x + bar_w, y + bar_h], + fill=self.colors.get(48), + outline=self.colors.get(128), + ) + fill_w = int(bar_w * pct / 100) + if fill_w > 0: + self.draw.rectangle( + [bar_x + 1, y + 1, bar_x + fill_w, y + bar_h - 1], + fill=self.colors.get(255), + ) + + # Percentage centered on bar + pct_text = f"{pct}%" + pct_bbox = self.fonts.base.font.getbbox(pct_text) + pct_w = pct_bbox[2] - pct_bbox[0] + pct_h = pct_bbox[3] - pct_bbox[1] + pct_x = bar_x + (bar_w - pct_w) // 2 + pct_y = y + (bar_h - pct_h) // 2 - pct_bbox[1] + self.draw.text( + (pct_x, pct_y), + pct_text, + font=self.fonts.base.font, + fill=self.colors.get(0) if pct > 45 else self.colors.get(192), + ) + y += bar_h + 6 + + # Path count below bar + if phase == "downloading" and total > 0: + path_text = f"{done}/{total} paths" + self.draw.text( + (4, y), + path_text, + font=self.fonts.base.font, + fill=self.colors.get(128), + ) + class UIReleaseNotes(UIModule): """ @@ -693,7 +899,6 @@ def _load_notes(self): self._loaded = True def update(self, force=False): - time.sleep(1 / 30) self.clear_screen() draw_pos = self.display_class.titlebar_height + 2 diff --git a/python/PiFinder/ui/status.py b/python/PiFinder/ui/status.py index bde6bb24c..f45a2a998 100644 --- a/python/PiFinder/ui/status.py +++ b/python/PiFinder/ui/status.py @@ -145,10 +145,8 @@ def update_software(self, option): self._config_options["Software"]["value"] = utils.get_version() return False - self.message("Updating...", 10) if sys_utils.update_software(): - self.message("Ok! Restarting", 10) - sys_utils.restart_pifinder() + self.message("Updating...", 10) else: self.message("Error on Upd", 3) diff --git a/python/PiFinder/utils.py b/python/PiFinder/utils.py index 0f8eb4823..411cb2a45 100644 --- a/python/PiFinder/utils.py +++ b/python/PiFinder/utils.py @@ -23,6 +23,8 @@ def get_version() -> str: return json.load(f).get("version", "Unknown") except (FileNotFoundError, IOError, json.JSONDecodeError): return "Unknown" + + debug_dump_dir = data_dir / "solver_debug_dumps" comet_file = data_dir / "comets.txt" diff --git a/python/tests/test_software.py b/python/tests/test_software.py index 3b9b3ae5f..c24c6a987 100644 --- a/python/tests/test_software.py +++ b/python/tests/test_software.py @@ -406,8 +406,10 @@ def test_builds_pr_entries(self, mock_get, mock_build): entries = _fetch_testable_prs() assert len(entries) == 2 - assert entries[0]["label"].startswith("PR#42") - assert entries[1]["label"].startswith("PR#99") + assert entries[0]["label"] == "PR#42-abc123d" + assert entries[0]["subtitle"] == "Fix star matching algorithm" + assert entries[1]["label"] == "PR#99-789xyz0" + assert entries[1]["subtitle"] == "Add dark mode support" @patch("PiFinder.ui.software._fetch_build_json") @patch("PiFinder.ui.software.requests.get") @@ -461,7 +463,7 @@ def test_api_failure_returns_empty(self, mock_get): @patch("PiFinder.ui.software._fetch_build_json") @patch("PiFinder.ui.software.requests.get") - def test_long_title_truncated(self, mock_get, mock_build): + def test_long_title_in_subtitle(self, mock_get, mock_build): mock_resp = MagicMock() mock_resp.status_code = 200 mock_resp.json.return_value = [ @@ -482,8 +484,10 @@ def test_long_title_truncated(self, mock_get, mock_build): entries = _fetch_testable_prs() - assert "..." in entries[0]["label"] - assert entries[0]["label"].startswith("PR#7 ") + assert entries[0]["label"] == "PR#7-aaa" + assert entries[0]["subtitle"] == ( + "A very long PR title that exceeds twenty characters" + ) @patch("PiFinder.ui.software._fetch_build_json") @patch("PiFinder.ui.software.requests.get") From 40d8bc87f038c65273c27ea846d10619c7072f77 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 18 Feb 2026 08:12:11 +0000 Subject: [PATCH 101/144] chore: stamp build [skip ci] --- pifinder-build.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pifinder-build.json b/pifinder-build.json index 16c4ab65c..3c2aeee8a 100644 --- a/pifinder-build.json +++ b/pifinder-build.json @@ -1,4 +1,4 @@ { - "store_path": "/nix/store/prgn6q4r7k04sqr9j4x2x61nw759m8jm-nixos-system-pifinder-25.11.20260209.2db38e0", - "version": "nixos-cba851a" + "store_path": "/nix/store/7pnsc0f5wwpiqm290fzf7bal0c6mb2r6-nixos-system-pifinder-25.11.20260209.2db38e0", + "version": "nixos-6a64841" } From 922c1b63a6b5cfb2777e2f9099837847013b0898 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Thu, 19 Feb 2026 09:57:31 +0100 Subject: [PATCH 102/144] fix: use loose rpfilter for multi-interface WiFi+ethernet support Strict reverse path filtering blocks WiFi traffic when ethernet is also connected on the same subnet, as return packets route via ethernet. This breaks both direct connections and DHCP renewal on WiFi. Co-Authored-By: Claude Opus 4.5 --- nixos/networking.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/nixos/networking.nix b/nixos/networking.nix index e2b843853..6cf9ed6a8 100644 --- a/nixos/networking.nix +++ b/nixos/networking.nix @@ -5,6 +5,7 @@ networkmanager.enable = true; wireless.enable = false; # NetworkManager handles WiFi firewall = { + checkReversePath = "loose"; # Allow multi-interface (WiFi + ethernet) on same subnet allowedUDPPorts = [ 53 67 ]; # DNS + DHCP for AP mode allowedTCPPorts = [ 80 ]; # PiFinder web UI (other ports via service openFirewall) }; From 2d0ccdb7e793bf8e093b34214f696e1791592fd5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 19 Feb 2026 09:00:41 +0000 Subject: [PATCH 103/144] chore: stamp build [skip ci] --- pifinder-build.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pifinder-build.json b/pifinder-build.json index 3c2aeee8a..7418f1927 100644 --- a/pifinder-build.json +++ b/pifinder-build.json @@ -1,4 +1,4 @@ { - "store_path": "/nix/store/7pnsc0f5wwpiqm290fzf7bal0c6mb2r6-nixos-system-pifinder-25.11.20260209.2db38e0", - "version": "nixos-6a64841" + "store_path": "/nix/store/9jla3wpicyrc2df938ghiqh23i646w5w-nixos-system-pifinder-25.11.20260209.2db38e0", + "version": "nixos-922c1b6" } From 9c366c4da814b130daba708a2221022304a74bb1 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Thu, 19 Feb 2026 22:18:19 +0100 Subject: [PATCH 104/144] docs: add critical Pi 4 build limitations to CLAUDE.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Document that nix build/eval must never run on Pi 4 targets due to resource constraints. Include the correct upgrade workflow: build on pi5 → push to cachix → trigger upgrade service on target. Co-Authored-By: Claude Opus 4.5 --- CLAUDE.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/CLAUDE.md b/CLAUDE.md index d8475a0d3..298aa2859 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -121,6 +121,18 @@ The codebase follows modern Python practices with type hints, comprehensive test ## NixOS Development +**CRITICAL: Never run `nix build` or `nix eval` on Pi 4 targets.** The Pi 4 lacks sufficient resources and will hang/crash. Always build on pi5.local (GitHub Actions runner), push to cachix, then trigger the upgrade service: +```bash +# Build on pi5 +ssh pi5.local 'nix build --no-link --print-out-paths github:mrosseel/PiFinder/nixos#nixosConfigurations.pifinder.config.system.build.toplevel' +# Push to cachix (so Pi can download signed paths) +ssh pi5.local 'cachix push pifinder ' +# Trigger upgrade on target Pi (downloads from cachix, activates, reboots) +ssh pifinder@ 'echo "" > /run/pifinder/upgrade-ref && sudo systemctl start --no-block pifinder-upgrade.service' +# Monitor progress +ssh pifinder@ 'cat /run/pifinder/upgrade-status' +``` + **Netboot deployment (dev Pi on proxnix NFS):** ```bash ./deploy-image-to-nfs.sh # Build and deploy to NFS From 49a2fc8d658aa2e6eb2886681cf8378d590e67b4 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Fri, 20 Feb 2026 00:29:44 +0100 Subject: [PATCH 105/144] feat: add dev mode toggle and screen off burn-in protection - Add global dev_mode config option (replaces software_unstable_unlocked) - Toggle dev mode by pressing square 7 times anywhere in UI - Wire up screen_off_timeout: after sleep timeout, additional timeout blanks screen completely with hourly LED heartbeat - Gate "Screen Off" status option and unstable software channel on dev_mode - Add power_state=-1 for screen off mode with IMU wake detection Co-Authored-By: Claude Opus 4.5 --- default_config.json | 2 +- python/PiFinder/main.py | 58 +++++++++++++++++++++++++++++++++- python/PiFinder/ui/software.py | 26 +-------------- python/PiFinder/ui/status.py | 14 ++++++-- 4 files changed, 70 insertions(+), 30 deletions(-) diff --git a/default_config.json b/default_config.json index 6f11071a5..efde7eef4 100644 --- a/default_config.json +++ b/default_config.json @@ -176,5 +176,5 @@ "active_eyepiece_index": 0 }, "imu_threshold_scale": 1, - "software_unstable_unlocked": false + "dev_mode": false } diff --git a/python/PiFinder/main.py b/python/PiFinder/main.py index 4a733a86a..d795f80f5 100644 --- a/python/PiFinder/main.py +++ b/python/PiFinder/main.py @@ -140,6 +140,8 @@ def __init__(self, cfg, shared_state, display_device): self.shared_state = shared_state self.display_device = display_device self.last_activity = time.time() + self.sleep_start_time = None + self.screen_off_start_time = None def register_activity(self): """ @@ -163,6 +165,8 @@ def wake_up(self): Do all the wakeup things """ self.last_activity = time.time() + self.sleep_start_time = None + self.screen_off_start_time = None self.shared_state.set_power_state(1) self.wake_screen() @@ -171,6 +175,7 @@ def go_to_sleep(self): Do all the sleep things """ self.shared_state.set_power_state(0) + self.sleep_start_time = time.time() self.sleep_screen() def update(self): @@ -189,11 +194,32 @@ def update(self): if time.time() - self.last_activity > self.get_sleep_timeout(): self.go_to_sleep() - else: # We are asleepd, should we wake up? + elif self.shared_state.power_state() == 0: + # We are asleep, should we wake up or go to screen off? _imu = self.shared_state.imu() if _imu: if _imu["moving"]: self.wake_up() + return + + # Check if we should turn screen off + screen_off_timeout = self.get_screen_off_timeout() + if ( + screen_off_timeout > 0 + and self.sleep_start_time is not None + and time.time() - self.sleep_start_time > screen_off_timeout + ): + self.screen_off() + + # Screen off mode: LED heartbeat, longer sleep + if self.shared_state.power_state() == -1: + _imu = self.shared_state.imu() + if _imu and _imu["moving"]: + self.wake_up() + return + self.update_heartbeat() + time.sleep(1.0) + return # should we pause execution for a bit? if self.shared_state.power_state() < 1: @@ -238,6 +264,23 @@ def sleep_screen(self): set_brightness(int(screen_brightness / 4), self.cfg) self.display_device.device.show() + def screen_off(self): + """Completely blank screen and turn off LEDs""" + self.shared_state.set_power_state(-1) + self.screen_off_start_time = time.time() + self.display_device.device.hide() + set_keypad_brightness(0) + + def update_heartbeat(self): + """Pulse all LEDs briefly every hour""" + if self.screen_off_start_time is None: + return + seconds_into_hour = (time.time() - self.screen_off_start_time) % 3600 + if seconds_into_hour < 0.5: + set_keypad_brightness(2) + else: + set_keypad_brightness(0) + def main( log_helper: MultiprocLogging, @@ -501,6 +544,7 @@ def main( catalogs.start_background_loading() log_time = True + dev_mode_square_count = 0 # Start of main except handler / loop try: while True: @@ -635,6 +679,18 @@ def main( # Register activity here will return True if the power # state changes. If so, we DO NOT process this keystroke if keycode is not None and power_manager.register_activity() is False: + # Dev mode toggle: 7 consecutive square presses + if keycode == keyboard_base.SQUARE: + dev_mode_square_count += 1 + if dev_mode_square_count >= 7: + dev_mode = not cfg.get_option("dev_mode", False) + cfg.set_option("dev_mode", dev_mode) + msg = "DEV MODE ON" if dev_mode else "DEV MODE OFF" + console_queue.put(msg) + dev_mode_square_count = 0 + else: + dev_mode_square_count = 0 + # ignore keystroke if we have been asleep if keycode > 99: # Long left is return to top diff --git a/python/PiFinder/ui/software.py b/python/PiFinder/ui/software.py index 76c27552a..45a47d211 100644 --- a/python/PiFinder/ui/software.py +++ b/python/PiFinder/ui/software.py @@ -255,11 +255,7 @@ def __init__(self, *args, **kwargs) -> None: self._confirm_index = 0 self._fail_option = "Retry" - self._unstable_unlocked = self.config_object.get_option( - "software_unstable_unlocked" - ) self._unstable_entries: List[dict] = [] - self._square_count = 0 self._scrollers: Dict[str, TextLayouterScroll] = {} self._scroller_phase: Optional[str] = None @@ -290,7 +286,7 @@ def _fetch_channels(self): "beta": beta, } - if self._unstable_unlocked: + if self.config_object.get_option("dev_mode", False): self._unstable_entries = self._fetch_unstable_entries() self._channels["unstable"] = self._unstable_entries @@ -676,11 +672,7 @@ def update(self, force=False): # Key handlers # ------------------------------------------------------------------ - def _reset_unlock(self): - self._square_count = 0 - def key_up(self): - self._reset_unlock() if self._phase == "upgrading": return if self._phase == "failed": @@ -698,7 +690,6 @@ def key_up(self): self._confirm_index -= 1 def key_down(self): - self._reset_unlock() if self._phase == "upgrading": return if self._phase == "failed": @@ -719,7 +710,6 @@ def key_down(self): self._confirm_index += 1 def key_right(self): - self._reset_unlock() if self._phase == "upgrading": return if self._phase == "failed": @@ -754,7 +744,6 @@ def key_right(self): self._phase = "browse" def key_left(self): - self._reset_unlock() if self._phase == "upgrading": return False if self._phase == "confirm": @@ -762,19 +751,6 @@ def key_left(self): return False return True - def key_square(self): - self._square_count += 1 - if self._square_count >= 7 and not self._unstable_unlocked: - self._unstable_unlocked = True - self.config_object.set_option("software_unstable_unlocked", True) - self._unstable_entries = self._fetch_unstable_entries() - self._channels["unstable"] = self._unstable_entries - self._channel_names = list(self._channels.keys()) - self.message(_("Unstable\nunlocked"), 1) - - def key_number(self, number): - self._square_count = 0 - # ------------------------------------------------------------------ # Update action # ------------------------------------------------------------------ diff --git a/python/PiFinder/ui/status.py b/python/PiFinder/ui/status.py index f45a2a998..21907d094 100644 --- a/python/PiFinder/ui/status.py +++ b/python/PiFinder/ui/status.py @@ -81,6 +81,8 @@ class UIStatus(UIModule): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) + # Make instance copy of class-level _config_options + self._config_options = dict(self._config_options) self.wifi_txt = f"{utils.pifinder_dir}/wifi_status.txt" self._draw_pos = (0, self.display_class.titlebar_height) with open(self.wifi_txt, "r") as wfs: @@ -118,9 +120,6 @@ def __init__(self, *args, **kwargs): self._config_options["Sleep Tim"]["value"] = self.config_object.get_option( "sleep_timeout" ) - self._config_options["Screen Off"]["value"] = self.config_object.get_option( - "screen_off_timeout" - ) self._config_options["Hint Time"]["value"] = self.config_object.get_option( "hint_timeout" ) @@ -128,6 +127,15 @@ def __init__(self, *args, **kwargs): "keypad_brightness" ) + # Hide Screen Off option unless dev_mode is enabled + if self.config_object.get_option("dev_mode", False): + self._config_options["Screen Off"]["value"] = self.config_object.get_option( + "screen_off_timeout" + ) + else: + if "Screen Off" in self._config_options: + del self._config_options["Screen Off"] + self.last_temp_time = 0 self.last_IP_time = 0 self.net = sys_utils.Network() From d79c1033e265adf78ec2d63df3fe1de6db130aaf Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Fri, 20 Feb 2026 01:14:39 +0100 Subject: [PATCH 106/144] feat: add test mode toggle with visual feedback - Add test_mode state to SharedStateObj for tracking - Toggle test mode on/off via menu (was activate-only) - Show popup "Test Mode ON/OFF" when toggling - Use hollow camera icon in title bar when test_mode is active - Provides visual indicator that fake GPS data is in use Co-Authored-By: Claude Opus 4.5 --- python/PiFinder/main.py | 50 ++++++++++++++++++++--------------- python/PiFinder/state.py | 7 +++++ python/PiFinder/ui/base.py | 9 ++++++- python/PiFinder/ui/console.py | 8 +++++- 4 files changed, 51 insertions(+), 23 deletions(-) diff --git a/python/PiFinder/main.py b/python/PiFinder/main.py index d795f80f5..749ccccb2 100644 --- a/python/PiFinder/main.py +++ b/python/PiFinder/main.py @@ -646,27 +646,35 @@ def main( ) menu_manager.message(_("Catalogs\nFully Loaded"), 2) elif ui_command == "test_mode": - dt = datetime.datetime(2025, 6, 28, 11, 0, 0) - shared_state.set_datetime(dt) - location.lat = 41.13 - location.lon = -120.97 - location.altitude = 1315 - location.source = "test" - location.error_in_m = 5 - location.lock = True - location.lock_type = 3 - location.last_gps_lock = ( - datetime.datetime.now().time().isoformat()[:8] - ) - console.write( - f"GPS: Location {location.lat} {location.lon} {location.altitude}" - ) - shared_state.set_location(location) - sf_utils.set_location( - location.lat, - location.lon, - location.altitude, - ) + # Toggle test mode + new_test_mode = not shared_state.test_mode() + shared_state.set_test_mode(new_test_mode) + if new_test_mode: + # Set fake GPS data when entering test mode + dt = datetime.datetime(2025, 6, 28, 11, 0, 0) + shared_state.set_datetime(dt) + location.lat = 41.13 + location.lon = -120.97 + location.altitude = 1315 + location.source = "test" + location.error_in_m = 5 + location.lock = True + location.lock_type = 3 + location.last_gps_lock = ( + datetime.datetime.now().time().isoformat()[:8] + ) + console.write( + f"GPS: Location {location.lat} {location.lon} {location.altitude}" + ) + shared_state.set_location(location) + sf_utils.set_location( + location.lat, + location.lon, + location.altitude, + ) + menu_manager.message(_("Test Mode\nON"), 2) + else: + menu_manager.message(_("Test Mode\nOFF"), 2) # Keyboard keycode = None diff --git a/python/PiFinder/state.py b/python/PiFinder/state.py index 73baf08d4..5434c3d0e 100644 --- a/python/PiFinder/state.py +++ b/python/PiFinder/state.py @@ -272,6 +272,7 @@ def __init__(self): # Are we prepared to do alt/az math # We need gps lock and datetime self.__tz_finder = None + self.__test_mode = False def serialize(self, output_file): with open(output_file, "wb") as f: @@ -447,6 +448,12 @@ def ui_state(self): def set_ui_state(self, v): self.__ui_state = v + def test_mode(self): + return self.__test_mode + + def set_test_mode(self, v: bool): + self.__test_mode = v + def __repr__(self): # A simple representation showing key attributes (adjust as needed) return ( diff --git a/python/PiFinder/ui/base.py b/python/PiFinder/ui/base.py index 85ed1b83e..d3da43765 100644 --- a/python/PiFinder/ui/base.py +++ b/python/PiFinder/ui/base.py @@ -94,6 +94,7 @@ class UIModule: __uuid__ = str(uuid.uuid1()).split("-")[0] _config_options: dict _CAM_ICON = "" + _CAM_ICON_HOLLOW = "" _IMU_ICON = "" _GPS_ICON = "󰤉" _LEFT_ARROW = "" @@ -348,9 +349,15 @@ def screen_update(self, title_bar=True, button_hints=True) -> None: # self.draw.rectangle([115, 2, 125, 14], fill=bg) if self._unmoved: + # Use hollow icon when in test mode + cam_icon = ( + self._CAM_ICON_HOLLOW + if self.shared_state.test_mode() + else self._CAM_ICON + ) self.draw.text( (self.display_class.resX * 0.91, -2), - self._CAM_ICON, + cam_icon, font=self.fonts.icon_bold_large.font, fill=var_fg, ) diff --git a/python/PiFinder/ui/console.py b/python/PiFinder/ui/console.py index c349ee50a..35160eed1 100644 --- a/python/PiFinder/ui/console.py +++ b/python/PiFinder/ui/console.py @@ -178,9 +178,15 @@ def screen_update(self, title_bar=True, button_hints=True): # self.draw.rectangle([115, 2, 125, 14], fill=bg) if self._unmoved: + # Use hollow icon when in test mode + cam_icon = ( + self._CAM_ICON_HOLLOW + if self.shared_state.test_mode() + else self._CAM_ICON + ) self.draw.text( (self.display_class.resX * 0.91, -2), - self._CAM_ICON, + cam_icon, font=self.fonts.icon_bold_large.font, fill=var_fg, ) From c1dc37072a611db7a620d0ff69f425e8ef97b7f2 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 20 Feb 2026 00:16:43 +0000 Subject: [PATCH 107/144] chore: stamp build [skip ci] --- pifinder-build.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pifinder-build.json b/pifinder-build.json index 7418f1927..a3c132509 100644 --- a/pifinder-build.json +++ b/pifinder-build.json @@ -1,4 +1,4 @@ { - "store_path": "/nix/store/9jla3wpicyrc2df938ghiqh23i646w5w-nixos-system-pifinder-25.11.20260209.2db38e0", - "version": "nixos-922c1b6" + "store_path": "/nix/store/17p7nv7flad4hlff0hhb20wsrbjqpn3v-nixos-system-pifinder-25.11.20260209.2db38e0", + "version": "nixos-d79c103" } From a6a8ef46a632d96bf53b99fea36dfa77617345e4 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Fri, 20 Feb 2026 01:20:27 +0100 Subject: [PATCH 108/144] revert: remove test mode and dev mode features (moved to screensaver branch) --- default_config.json | 2 +- python/PiFinder/main.py | 108 +++++++-------------------------- python/PiFinder/state.py | 7 --- python/PiFinder/ui/base.py | 9 +-- python/PiFinder/ui/console.py | 8 +-- python/PiFinder/ui/software.py | 26 +++++++- python/PiFinder/ui/status.py | 14 +---- 7 files changed, 53 insertions(+), 121 deletions(-) diff --git a/default_config.json b/default_config.json index efde7eef4..6f11071a5 100644 --- a/default_config.json +++ b/default_config.json @@ -176,5 +176,5 @@ "active_eyepiece_index": 0 }, "imu_threshold_scale": 1, - "dev_mode": false + "software_unstable_unlocked": false } diff --git a/python/PiFinder/main.py b/python/PiFinder/main.py index 749ccccb2..4a733a86a 100644 --- a/python/PiFinder/main.py +++ b/python/PiFinder/main.py @@ -140,8 +140,6 @@ def __init__(self, cfg, shared_state, display_device): self.shared_state = shared_state self.display_device = display_device self.last_activity = time.time() - self.sleep_start_time = None - self.screen_off_start_time = None def register_activity(self): """ @@ -165,8 +163,6 @@ def wake_up(self): Do all the wakeup things """ self.last_activity = time.time() - self.sleep_start_time = None - self.screen_off_start_time = None self.shared_state.set_power_state(1) self.wake_screen() @@ -175,7 +171,6 @@ def go_to_sleep(self): Do all the sleep things """ self.shared_state.set_power_state(0) - self.sleep_start_time = time.time() self.sleep_screen() def update(self): @@ -194,32 +189,11 @@ def update(self): if time.time() - self.last_activity > self.get_sleep_timeout(): self.go_to_sleep() - elif self.shared_state.power_state() == 0: - # We are asleep, should we wake up or go to screen off? + else: # We are asleepd, should we wake up? _imu = self.shared_state.imu() if _imu: if _imu["moving"]: self.wake_up() - return - - # Check if we should turn screen off - screen_off_timeout = self.get_screen_off_timeout() - if ( - screen_off_timeout > 0 - and self.sleep_start_time is not None - and time.time() - self.sleep_start_time > screen_off_timeout - ): - self.screen_off() - - # Screen off mode: LED heartbeat, longer sleep - if self.shared_state.power_state() == -1: - _imu = self.shared_state.imu() - if _imu and _imu["moving"]: - self.wake_up() - return - self.update_heartbeat() - time.sleep(1.0) - return # should we pause execution for a bit? if self.shared_state.power_state() < 1: @@ -264,23 +238,6 @@ def sleep_screen(self): set_brightness(int(screen_brightness / 4), self.cfg) self.display_device.device.show() - def screen_off(self): - """Completely blank screen and turn off LEDs""" - self.shared_state.set_power_state(-1) - self.screen_off_start_time = time.time() - self.display_device.device.hide() - set_keypad_brightness(0) - - def update_heartbeat(self): - """Pulse all LEDs briefly every hour""" - if self.screen_off_start_time is None: - return - seconds_into_hour = (time.time() - self.screen_off_start_time) % 3600 - if seconds_into_hour < 0.5: - set_keypad_brightness(2) - else: - set_keypad_brightness(0) - def main( log_helper: MultiprocLogging, @@ -544,7 +501,6 @@ def main( catalogs.start_background_loading() log_time = True - dev_mode_square_count = 0 # Start of main except handler / loop try: while True: @@ -646,35 +602,27 @@ def main( ) menu_manager.message(_("Catalogs\nFully Loaded"), 2) elif ui_command == "test_mode": - # Toggle test mode - new_test_mode = not shared_state.test_mode() - shared_state.set_test_mode(new_test_mode) - if new_test_mode: - # Set fake GPS data when entering test mode - dt = datetime.datetime(2025, 6, 28, 11, 0, 0) - shared_state.set_datetime(dt) - location.lat = 41.13 - location.lon = -120.97 - location.altitude = 1315 - location.source = "test" - location.error_in_m = 5 - location.lock = True - location.lock_type = 3 - location.last_gps_lock = ( - datetime.datetime.now().time().isoformat()[:8] - ) - console.write( - f"GPS: Location {location.lat} {location.lon} {location.altitude}" - ) - shared_state.set_location(location) - sf_utils.set_location( - location.lat, - location.lon, - location.altitude, - ) - menu_manager.message(_("Test Mode\nON"), 2) - else: - menu_manager.message(_("Test Mode\nOFF"), 2) + dt = datetime.datetime(2025, 6, 28, 11, 0, 0) + shared_state.set_datetime(dt) + location.lat = 41.13 + location.lon = -120.97 + location.altitude = 1315 + location.source = "test" + location.error_in_m = 5 + location.lock = True + location.lock_type = 3 + location.last_gps_lock = ( + datetime.datetime.now().time().isoformat()[:8] + ) + console.write( + f"GPS: Location {location.lat} {location.lon} {location.altitude}" + ) + shared_state.set_location(location) + sf_utils.set_location( + location.lat, + location.lon, + location.altitude, + ) # Keyboard keycode = None @@ -687,18 +635,6 @@ def main( # Register activity here will return True if the power # state changes. If so, we DO NOT process this keystroke if keycode is not None and power_manager.register_activity() is False: - # Dev mode toggle: 7 consecutive square presses - if keycode == keyboard_base.SQUARE: - dev_mode_square_count += 1 - if dev_mode_square_count >= 7: - dev_mode = not cfg.get_option("dev_mode", False) - cfg.set_option("dev_mode", dev_mode) - msg = "DEV MODE ON" if dev_mode else "DEV MODE OFF" - console_queue.put(msg) - dev_mode_square_count = 0 - else: - dev_mode_square_count = 0 - # ignore keystroke if we have been asleep if keycode > 99: # Long left is return to top diff --git a/python/PiFinder/state.py b/python/PiFinder/state.py index 5434c3d0e..73baf08d4 100644 --- a/python/PiFinder/state.py +++ b/python/PiFinder/state.py @@ -272,7 +272,6 @@ def __init__(self): # Are we prepared to do alt/az math # We need gps lock and datetime self.__tz_finder = None - self.__test_mode = False def serialize(self, output_file): with open(output_file, "wb") as f: @@ -448,12 +447,6 @@ def ui_state(self): def set_ui_state(self, v): self.__ui_state = v - def test_mode(self): - return self.__test_mode - - def set_test_mode(self, v: bool): - self.__test_mode = v - def __repr__(self): # A simple representation showing key attributes (adjust as needed) return ( diff --git a/python/PiFinder/ui/base.py b/python/PiFinder/ui/base.py index d3da43765..85ed1b83e 100644 --- a/python/PiFinder/ui/base.py +++ b/python/PiFinder/ui/base.py @@ -94,7 +94,6 @@ class UIModule: __uuid__ = str(uuid.uuid1()).split("-")[0] _config_options: dict _CAM_ICON = "" - _CAM_ICON_HOLLOW = "" _IMU_ICON = "" _GPS_ICON = "󰤉" _LEFT_ARROW = "" @@ -349,15 +348,9 @@ def screen_update(self, title_bar=True, button_hints=True) -> None: # self.draw.rectangle([115, 2, 125, 14], fill=bg) if self._unmoved: - # Use hollow icon when in test mode - cam_icon = ( - self._CAM_ICON_HOLLOW - if self.shared_state.test_mode() - else self._CAM_ICON - ) self.draw.text( (self.display_class.resX * 0.91, -2), - cam_icon, + self._CAM_ICON, font=self.fonts.icon_bold_large.font, fill=var_fg, ) diff --git a/python/PiFinder/ui/console.py b/python/PiFinder/ui/console.py index 35160eed1..c349ee50a 100644 --- a/python/PiFinder/ui/console.py +++ b/python/PiFinder/ui/console.py @@ -178,15 +178,9 @@ def screen_update(self, title_bar=True, button_hints=True): # self.draw.rectangle([115, 2, 125, 14], fill=bg) if self._unmoved: - # Use hollow icon when in test mode - cam_icon = ( - self._CAM_ICON_HOLLOW - if self.shared_state.test_mode() - else self._CAM_ICON - ) self.draw.text( (self.display_class.resX * 0.91, -2), - cam_icon, + self._CAM_ICON, font=self.fonts.icon_bold_large.font, fill=var_fg, ) diff --git a/python/PiFinder/ui/software.py b/python/PiFinder/ui/software.py index 45a47d211..76c27552a 100644 --- a/python/PiFinder/ui/software.py +++ b/python/PiFinder/ui/software.py @@ -255,7 +255,11 @@ def __init__(self, *args, **kwargs) -> None: self._confirm_index = 0 self._fail_option = "Retry" + self._unstable_unlocked = self.config_object.get_option( + "software_unstable_unlocked" + ) self._unstable_entries: List[dict] = [] + self._square_count = 0 self._scrollers: Dict[str, TextLayouterScroll] = {} self._scroller_phase: Optional[str] = None @@ -286,7 +290,7 @@ def _fetch_channels(self): "beta": beta, } - if self.config_object.get_option("dev_mode", False): + if self._unstable_unlocked: self._unstable_entries = self._fetch_unstable_entries() self._channels["unstable"] = self._unstable_entries @@ -672,7 +676,11 @@ def update(self, force=False): # Key handlers # ------------------------------------------------------------------ + def _reset_unlock(self): + self._square_count = 0 + def key_up(self): + self._reset_unlock() if self._phase == "upgrading": return if self._phase == "failed": @@ -690,6 +698,7 @@ def key_up(self): self._confirm_index -= 1 def key_down(self): + self._reset_unlock() if self._phase == "upgrading": return if self._phase == "failed": @@ -710,6 +719,7 @@ def key_down(self): self._confirm_index += 1 def key_right(self): + self._reset_unlock() if self._phase == "upgrading": return if self._phase == "failed": @@ -744,6 +754,7 @@ def key_right(self): self._phase = "browse" def key_left(self): + self._reset_unlock() if self._phase == "upgrading": return False if self._phase == "confirm": @@ -751,6 +762,19 @@ def key_left(self): return False return True + def key_square(self): + self._square_count += 1 + if self._square_count >= 7 and not self._unstable_unlocked: + self._unstable_unlocked = True + self.config_object.set_option("software_unstable_unlocked", True) + self._unstable_entries = self._fetch_unstable_entries() + self._channels["unstable"] = self._unstable_entries + self._channel_names = list(self._channels.keys()) + self.message(_("Unstable\nunlocked"), 1) + + def key_number(self, number): + self._square_count = 0 + # ------------------------------------------------------------------ # Update action # ------------------------------------------------------------------ diff --git a/python/PiFinder/ui/status.py b/python/PiFinder/ui/status.py index 21907d094..f45a2a998 100644 --- a/python/PiFinder/ui/status.py +++ b/python/PiFinder/ui/status.py @@ -81,8 +81,6 @@ class UIStatus(UIModule): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) - # Make instance copy of class-level _config_options - self._config_options = dict(self._config_options) self.wifi_txt = f"{utils.pifinder_dir}/wifi_status.txt" self._draw_pos = (0, self.display_class.titlebar_height) with open(self.wifi_txt, "r") as wfs: @@ -120,6 +118,9 @@ def __init__(self, *args, **kwargs): self._config_options["Sleep Tim"]["value"] = self.config_object.get_option( "sleep_timeout" ) + self._config_options["Screen Off"]["value"] = self.config_object.get_option( + "screen_off_timeout" + ) self._config_options["Hint Time"]["value"] = self.config_object.get_option( "hint_timeout" ) @@ -127,15 +128,6 @@ def __init__(self, *args, **kwargs): "keypad_brightness" ) - # Hide Screen Off option unless dev_mode is enabled - if self.config_object.get_option("dev_mode", False): - self._config_options["Screen Off"]["value"] = self.config_object.get_option( - "screen_off_timeout" - ) - else: - if "Screen Off" in self._config_options: - del self._config_options["Screen Off"] - self.last_temp_time = 0 self.last_IP_time = 0 self.net = sys_utils.Network() From 2952da1ec842c8c6886b4964f0ee17d565f4d229 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 20 Feb 2026 00:22:20 +0000 Subject: [PATCH 109/144] chore: stamp build [skip ci] --- pifinder-build.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pifinder-build.json b/pifinder-build.json index a3c132509..996e284d6 100644 --- a/pifinder-build.json +++ b/pifinder-build.json @@ -1,4 +1,4 @@ { - "store_path": "/nix/store/17p7nv7flad4hlff0hhb20wsrbjqpn3v-nixos-system-pifinder-25.11.20260209.2db38e0", - "version": "nixos-d79c103" + "store_path": "/nix/store/hsvxa8g9c1zjp9yivlvrl5kxjs90gq4i-nixos-system-pifinder-25.11.20260209.2db38e0", + "version": "nixos-a6a8ef4" } From 4133bee7bf4c18fe4e21d523f75f0977106e83ac Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Sat, 21 Feb 2026 12:35:13 +0100 Subject: [PATCH 110/144] feat: auto-generate pifinder-build.json from git rev at nix build time Derives version string from flake's self.shortRev so local nix builds show "nix-" instead of stale CI-committed values. Co-Authored-By: Claude Opus 4.6 --- flake.nix | 4 ++++ nixos/pkgs/pifinder-src.nix | 7 ++++++- nixos/services.nix | 4 ++-- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/flake.nix b/flake.nix index 66ca2aaeb..566e22ad5 100644 --- a/flake.nix +++ b/flake.nix @@ -12,6 +12,10 @@ ./nixos/networking.nix ./nixos/services.nix ./nixos/python-env.nix + # Pass git revision to pifinder-src for build identity + ({ ... }: { + _module.args.pifinderGitRev = self.shortRev or self.dirtyShortRev or "unknown"; + }) # Headless — strip X11, fonts, docs, desktop bloat ({ lib, ... }: { services.xserver.enable = false; diff --git a/nixos/pkgs/pifinder-src.nix b/nixos/pkgs/pifinder-src.nix index 3a65717f0..e680425da 100644 --- a/nixos/pkgs/pifinder-src.nix +++ b/nixos/pkgs/pifinder-src.nix @@ -1,4 +1,4 @@ -{ pkgs, python ? pkgs.python313 }: +{ pkgs, python ? pkgs.python313, gitRev ? "unknown" }: let tetra3-src = pkgs.fetchFromGitHub { owner = "smroid"; @@ -59,6 +59,11 @@ pkgs.stdenv.mkDerivation { rm -rf $out/python/PiFinder/tetra3 cp -r ${tetra3-src} $out/python/PiFinder/tetra3 + # Generate build identity from git metadata (overwrites committed CI version) + cat > $out/pifinder-build.json < Date: Sat, 21 Feb 2026 13:34:53 +0000 Subject: [PATCH 111/144] chore: stamp build [skip ci] --- pifinder-build.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pifinder-build.json b/pifinder-build.json index 996e284d6..bc81b750a 100644 --- a/pifinder-build.json +++ b/pifinder-build.json @@ -1,4 +1,4 @@ { - "store_path": "/nix/store/hsvxa8g9c1zjp9yivlvrl5kxjs90gq4i-nixos-system-pifinder-25.11.20260209.2db38e0", - "version": "nixos-a6a8ef4" + "store_path": "/nix/store/89mns8lgl4zclxv3mgm16v35l8ip00ps-nixos-system-pifinder-25.11.20260209.2db38e0", + "version": "nixos-4133bee" } From 1959baeb8a113e96cbe37dbd757e5b54e7282861 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 23 Feb 2026 23:00:21 +0100 Subject: [PATCH 112/144] feat: replace bootstrap tarball with DD-able migration image MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add includeCatalogImages param to mkPifinderSystem - Add images.migration output (SD image without catalog images) - Delete images.bootstrap tarball derivation - Rename bootstrap-tarball.yml → migration-image.yml - Update release.yml to build migration image instead of tarball Co-Authored-By: Claude Opus 4.6 --- .github/workflows/bootstrap-tarball.yml | 117 ------------------------ .github/workflows/migration-image.yml | 95 +++++++++++++++++++ .github/workflows/release.yml | 11 +-- flake.nix | 96 +------------------ 4 files changed, 105 insertions(+), 214 deletions(-) delete mode 100644 .github/workflows/bootstrap-tarball.yml create mode 100644 .github/workflows/migration-image.yml diff --git a/.github/workflows/bootstrap-tarball.yml b/.github/workflows/bootstrap-tarball.yml deleted file mode 100644 index e1bf59fd6..000000000 --- a/.github/workflows/bootstrap-tarball.yml +++ /dev/null @@ -1,117 +0,0 @@ -name: Build Bootstrap Tarball - -on: - push: - branches: [nixos] - paths: - - 'nixos/bootstrap.nix' - - 'flake.nix' - - '.github/workflows/bootstrap-tarball.yml' - workflow_dispatch: - inputs: - version: - description: "Version tag (e.g. 2.5.0)" - required: false - default: "2.5.0" - type: string - -jobs: - build-bootstrap: - runs-on: [self-hosted, aarch64] - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Set version - run: | - if [ -n "${{ inputs.version }}" ]; then - echo "VERSION=${{ inputs.version }}" >> "$GITHUB_ENV" - else - echo "VERSION=2.5.0" >> "$GITHUB_ENV" - fi - - - name: Install Nix - uses: cachix/install-nix-action@v30 - with: - extra_nix_config: | - experimental-features = nix-command flakes - - - name: Setup Cachix - uses: cachix/cachix-action@v15 - with: - name: pifinder - authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' - - - name: Build bootstrap SD image - run: | - nix build .#images.bootstrap --print-out-paths > /tmp/image_path - echo "IMAGE_PATH=$(cat /tmp/image_path)" >> "$GITHUB_ENV" - - - name: Extract boot and rootfs - run: | - # Clean up any leftover from previous runs - sudo rm -rf /tmp/tarball-staging /tmp/bootstrap.img /mnt/boot /mnt/root - - # The SD image output is a directory containing sd-image/*.img.zst - IMAGE_FILE=$(find "$IMAGE_PATH" -type f \( -name "*.img" -o -name "*.img.zst" \) | head -1) - echo "Found image: $IMAGE_FILE" - - if [[ "${IMAGE_FILE}" == *.zst ]]; then - zstd -d "${IMAGE_FILE}" -o /tmp/bootstrap.img - else - cp "${IMAGE_FILE}" /tmp/bootstrap.img - fi - - LOOP=$(sudo losetup --find --show --partscan /tmp/bootstrap.img) - echo "LOOP=${LOOP}" >> "$GITHUB_ENV" - - sudo mkdir -p /mnt/boot /mnt/root - sudo mount "${LOOP}p1" /mnt/boot - sudo mount "${LOOP}p2" /mnt/root - - mkdir -p /tmp/tarball-staging - sudo cp -a /mnt/boot /tmp/tarball-staging/boot - sudo cp -a /mnt/root /tmp/tarball-staging/rootfs - - sudo umount /mnt/boot /mnt/root - sudo losetup -d "${LOOP}" - rm -f /tmp/bootstrap.img - - - name: Create bootstrap tarball - run: | - TARBALL="pifinder-bootstrap-v${VERSION}.tar.gz" - - # Clean up any leftover files from previous runs - sudo rm -rf /tmp/tarball-staging/manifest.json "/tmp/${TARBALL}" "/tmp/${TARBALL}.sha256" - - cat > /tmp/tarball-staging/manifest.json <> "$GITHUB_ENV" - echo "TARBALL_NAME=${TARBALL}" >> "$GITHUB_ENV" - - sha256sum "/tmp/${TARBALL}" | awk '{print $1}' > "/tmp/${TARBALL}.sha256" - echo "SHA256=$(cat /tmp/${TARBALL}.sha256)" >> "$GITHUB_ENV" - - ls -lh "/tmp/${TARBALL}" - - - name: Upload tarball artifact - uses: actions/upload-artifact@v4 - with: - name: ${{ env.TARBALL_NAME }} - path: | - ${{ env.TARBALL }} - ${{ env.TARBALL }}.sha256 diff --git a/.github/workflows/migration-image.yml b/.github/workflows/migration-image.yml new file mode 100644 index 000000000..4b01b1fae --- /dev/null +++ b/.github/workflows/migration-image.yml @@ -0,0 +1,95 @@ +name: Build Migration Image + +on: + push: + branches: [nixos] + paths: + - 'flake.nix' + - 'flake.lock' + - 'nixos/**' + - '.github/workflows/migration-image.yml' + workflow_dispatch: + inputs: + version: + description: "Version tag (e.g. 2.5.0)" + required: false + default: "2.5.0" + type: string + +jobs: + build-migration-image: + runs-on: [self-hosted, aarch64] + permissions: + contents: write + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set version + run: | + if [ -n "${{ inputs.version }}" ]; then + echo "VERSION=${{ inputs.version }}" >> "$GITHUB_ENV" + else + echo "VERSION=2.5.0" >> "$GITHUB_ENV" + fi + + - name: Install Nix + uses: cachix/install-nix-action@v30 + with: + extra_nix_config: | + experimental-features = nix-command flakes + + - name: Setup Cachix + uses: cachix/cachix-action@v15 + with: + name: pifinder + authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' + + - name: Build migration SD image + run: | + nix build .#images.migration --print-out-paths > /tmp/image_path + echo "IMAGE_PATH=$(cat /tmp/image_path)" >> "$GITHUB_ENV" + + - name: Copy image to release area + run: | + IMAGE_FILE=$(find "$IMAGE_PATH" -type f -name "*.img.zst" | head -1) + [ -z "${IMAGE_FILE}" ] && { echo "No .img.zst found"; exit 1; } + echo "Found image: ${IMAGE_FILE}" + + RELEASE_NAME="pifinder-nixos-v${VERSION}.img.zst" + cp "${IMAGE_FILE}" "/tmp/${RELEASE_NAME}" + + sha256sum "/tmp/${RELEASE_NAME}" | awk '{print $1}' > "/tmp/${RELEASE_NAME}.sha256" + echo "SHA256=$(cat /tmp/${RELEASE_NAME}.sha256)" >> "$GITHUB_ENV" + + SIZE_MB=$(( $(stat -c%s "/tmp/${RELEASE_NAME}") / 1048576 )) + echo "SIZE_MB=${SIZE_MB}" >> "$GITHUB_ENV" + echo "RELEASE_FILE=/tmp/${RELEASE_NAME}" >> "$GITHUB_ENV" + echo "RELEASE_NAME=${RELEASE_NAME}" >> "$GITHUB_ENV" + + echo "### Migration Image Built" >> "$GITHUB_STEP_SUMMARY" + echo "- **File:** ${RELEASE_NAME}" >> "$GITHUB_STEP_SUMMARY" + echo "- **Size:** ${SIZE_MB} MB" >> "$GITHUB_STEP_SUMMARY" + echo "- **SHA256:** \`$(cat /tmp/${RELEASE_NAME}.sha256)\`" >> "$GITHUB_STEP_SUMMARY" + + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: ${{ env.RELEASE_NAME }} + path: | + ${{ env.RELEASE_FILE }} + ${{ env.RELEASE_FILE }}.sha256 + + - name: Create release + uses: softprops/action-gh-release@v2 + with: + tag_name: v${{ env.VERSION }}-migration + name: PiFinder NixOS Migration v${{ env.VERSION }} + body: | + NixOS SD card image for migration from Raspbian (no catalog images). + + **Size:** ${{ env.SIZE_MB }} MB + **SHA256:** `${{ env.SHA256 }}` + files: | + ${{ env.RELEASE_FILE }} + ${{ env.RELEASE_FILE }}.sha256 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 213b8787e..19ad8db65 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -84,13 +84,13 @@ jobs: cp "$f" "release/pifinder-${TAG}.img.zst" done - - name: Build bootstrap tarball + - name: Build migration image run: | - nix build .#images.bootstrap \ + nix build .#images.migration \ --system aarch64-linux \ - -L -o result-bootstrap - for f in result-bootstrap/tarball/*.tar.zst; do - cp "$f" "release/pifinder-bootstrap-${TAG}.tar.zst" + -L -o result-migration + for f in result-migration/sd-image/*.img.zst; do + cp "$f" "release/pifinder-migration-${TAG}.img.zst" done - name: Upload build artifacts @@ -109,4 +109,3 @@ jobs: prerelease: ${{ inputs.type == 'beta' }} files: | release/pifinder-*.img.zst - release/pifinder-bootstrap-*.tar.zst diff --git a/flake.nix b/flake.nix index 566e22ad5..69a4ee988 100644 --- a/flake.nix +++ b/flake.nix @@ -31,7 +31,7 @@ }) ]; - mkPifinderSystem = { includeSDImage ? false }: nixpkgs.lib.nixosSystem { + mkPifinderSystem = { includeSDImage ? false, includeCatalogImages ? true }: nixpkgs.lib.nixosSystem { system = "aarch64-linux"; modules = commonModules ++ [ { pifinder.devMode = false; } @@ -100,7 +100,7 @@ installPhase = "mv catalog_images $out"; }; in { - sdImage.populateRootCommands = '' + sdImage.populateRootCommands = lib.optionalString includeCatalogImages '' mkdir -p ./files/home/pifinder/PiFinder_data cp -r ${catalog-images} ./files/home/pifinder/PiFinder_data/catalog_images chmod -R u+w ./files/home/pifinder/PiFinder_data/catalog_images @@ -281,96 +281,10 @@ pifinder-netboot = mkPifinderNetboot; }; images = { - # SD card image + # SD card image (with catalog images) pifinder = (mkPifinderSystem { includeSDImage = true; }).config.system.build.sdImage; - # Migration bootstrap tarball - bootstrap = let - system = mkPifinderSystem {}; - toplevel = system.config.system.build.toplevel; - pkgs = import nixpkgs { system = "aarch64-linux"; }; - closure = pkgs.closureInfo { rootPaths = [ toplevel ]; }; - kernelParams = builtins.concatStringsSep " " system.config.boot.kernelParams; - configTxt = pkgs.writeText "config.txt" '' - [pi3] - kernel=u-boot-rpi3.bin - - [pi02] - kernel=u-boot-rpi3.bin - - [pi4] - kernel=u-boot-rpi4.bin - enable_gic=1 - armstub=armstub8-gic.bin - - disable_overscan=1 - arm_boost=1 - - [cm4] - otg_mode=1 - - [all] - arm_64bit=1 - enable_uart=1 - avoid_warnings=1 - ''; - fw = "${pkgs.raspberrypifw}/share/raspberrypi/boot"; - in pkgs.stdenv.mkDerivation { - name = "pifinder-bootstrap-tarball"; - __structuredAttrs = true; - unsafeDiscardReferences.out = true; - nativeBuildInputs = [ pkgs.zstd ]; - buildCommand = '' - root=$(mktemp -d) - - # Copy store closure into isolated root (avoids sandbox nix symlink) - mkdir -p "$root/nix/store" - while IFS= read -r path; do - cp -a "$path" "$root$path" - done < ${closure}/store-paths - - # Nix DB registration for nix-store --load-db - cp ${closure}/registration "$root/nix-path-registration" - - # System profile symlink - mkdir -p "$root/nix/var/nix/profiles" - ln -s ${toplevel} "$root/nix/var/nix/profiles/system" - - # Boot firmware (migration init moves these to FAT32 partition) - mkdir -p "$root/boot" - cp ${fw}/bootcode.bin "$root/boot/" - cp ${fw}/fixup4.dat "$root/boot/" - cp ${fw}/start4.elf "$root/boot/" - cp ${pkgs.raspberrypi-armstubs}/armstub8-gic.bin "$root/boot/" - cp ${ubootSD}/u-boot.bin "$root/boot/u-boot-rpi4.bin" - cp ${pkgs.ubootRaspberryPi3_64bit}/u-boot.bin "$root/boot/u-boot-rpi3.bin" - cp ${configTxt} "$root/boot/config.txt" - - # Device trees - cp ${fw}/bcm2711-rpi-4-b.dtb "$root/boot/" - cp ${fw}/bcm2711-rpi-400.dtb "$root/boot/" - cp ${fw}/bcm2711-rpi-cm4.dtb "$root/boot/" - cp ${fw}/bcm2710-rpi-3-b.dtb "$root/boot/" - cp ${fw}/bcm2710-rpi-3-b-plus.dtb "$root/boot/" - cp ${fw}/bcm2710-rpi-zero-2.dtb "$root/boot/" - cp ${fw}/bcm2710-rpi-zero-2-w.dtb "$root/boot/" - - # Bootloader config - mkdir -p "$root/boot/extlinux" - cat > "$root/boot/extlinux/extlinux.conf" < $out/tarball/pifinder-bootstrap.tar.zst) - echo "file system-tarball $out/tarball/pifinder-bootstrap.tar.zst" > $out/nix-support/hydra-build-products - ''; - }; + # Migration SD image (no catalog images — smaller download) + migration = (mkPifinderSystem { includeSDImage = true; includeCatalogImages = false; }).config.system.build.sdImage; }; packages.aarch64-linux = { uboot-sd = ubootSD; From 123e4f6b637716879c326ff5146ae36bc647dc3d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 23 Feb 2026 22:02:14 +0000 Subject: [PATCH 113/144] chore: stamp build [skip ci] --- pifinder-build.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pifinder-build.json b/pifinder-build.json index bc81b750a..9ff5e7b6d 100644 --- a/pifinder-build.json +++ b/pifinder-build.json @@ -1,4 +1,4 @@ { - "store_path": "/nix/store/89mns8lgl4zclxv3mgm16v35l8ip00ps-nixos-system-pifinder-25.11.20260209.2db38e0", - "version": "nixos-4133bee" + "store_path": "/nix/store/ji94406hm9bpbs1naja35h8ym1gxy246-nixos-system-pifinder-25.11.20260209.2db38e0", + "version": "nixos-1959bae" } From 463b21a659cf03c9f45971d40f4300951c2c0e8b Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 23 Feb 2026 23:29:09 +0100 Subject: [PATCH 114/144] fix: revert to tarball approach for migration (SD image too large for RAM) - Revert includeCatalogImages/images.migration from flake.nix - Workflow builds tarball from SD image (excluding catalog_images) - Add migration tarball step to release.yml Co-Authored-By: Claude Opus 4.6 --- .github/workflows/migration-image.yml | 95 ------------------ .github/workflows/migration-tarball.yml | 127 ++++++++++++++++++++++++ .github/workflows/release.yml | 37 +++++-- flake.nix | 7 +- 4 files changed, 158 insertions(+), 108 deletions(-) delete mode 100644 .github/workflows/migration-image.yml create mode 100644 .github/workflows/migration-tarball.yml diff --git a/.github/workflows/migration-image.yml b/.github/workflows/migration-image.yml deleted file mode 100644 index 4b01b1fae..000000000 --- a/.github/workflows/migration-image.yml +++ /dev/null @@ -1,95 +0,0 @@ -name: Build Migration Image - -on: - push: - branches: [nixos] - paths: - - 'flake.nix' - - 'flake.lock' - - 'nixos/**' - - '.github/workflows/migration-image.yml' - workflow_dispatch: - inputs: - version: - description: "Version tag (e.g. 2.5.0)" - required: false - default: "2.5.0" - type: string - -jobs: - build-migration-image: - runs-on: [self-hosted, aarch64] - permissions: - contents: write - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Set version - run: | - if [ -n "${{ inputs.version }}" ]; then - echo "VERSION=${{ inputs.version }}" >> "$GITHUB_ENV" - else - echo "VERSION=2.5.0" >> "$GITHUB_ENV" - fi - - - name: Install Nix - uses: cachix/install-nix-action@v30 - with: - extra_nix_config: | - experimental-features = nix-command flakes - - - name: Setup Cachix - uses: cachix/cachix-action@v15 - with: - name: pifinder - authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' - - - name: Build migration SD image - run: | - nix build .#images.migration --print-out-paths > /tmp/image_path - echo "IMAGE_PATH=$(cat /tmp/image_path)" >> "$GITHUB_ENV" - - - name: Copy image to release area - run: | - IMAGE_FILE=$(find "$IMAGE_PATH" -type f -name "*.img.zst" | head -1) - [ -z "${IMAGE_FILE}" ] && { echo "No .img.zst found"; exit 1; } - echo "Found image: ${IMAGE_FILE}" - - RELEASE_NAME="pifinder-nixos-v${VERSION}.img.zst" - cp "${IMAGE_FILE}" "/tmp/${RELEASE_NAME}" - - sha256sum "/tmp/${RELEASE_NAME}" | awk '{print $1}' > "/tmp/${RELEASE_NAME}.sha256" - echo "SHA256=$(cat /tmp/${RELEASE_NAME}.sha256)" >> "$GITHUB_ENV" - - SIZE_MB=$(( $(stat -c%s "/tmp/${RELEASE_NAME}") / 1048576 )) - echo "SIZE_MB=${SIZE_MB}" >> "$GITHUB_ENV" - echo "RELEASE_FILE=/tmp/${RELEASE_NAME}" >> "$GITHUB_ENV" - echo "RELEASE_NAME=${RELEASE_NAME}" >> "$GITHUB_ENV" - - echo "### Migration Image Built" >> "$GITHUB_STEP_SUMMARY" - echo "- **File:** ${RELEASE_NAME}" >> "$GITHUB_STEP_SUMMARY" - echo "- **Size:** ${SIZE_MB} MB" >> "$GITHUB_STEP_SUMMARY" - echo "- **SHA256:** \`$(cat /tmp/${RELEASE_NAME}.sha256)\`" >> "$GITHUB_STEP_SUMMARY" - - - name: Upload artifact - uses: actions/upload-artifact@v4 - with: - name: ${{ env.RELEASE_NAME }} - path: | - ${{ env.RELEASE_FILE }} - ${{ env.RELEASE_FILE }}.sha256 - - - name: Create release - uses: softprops/action-gh-release@v2 - with: - tag_name: v${{ env.VERSION }}-migration - name: PiFinder NixOS Migration v${{ env.VERSION }} - body: | - NixOS SD card image for migration from Raspbian (no catalog images). - - **Size:** ${{ env.SIZE_MB }} MB - **SHA256:** `${{ env.SHA256 }}` - files: | - ${{ env.RELEASE_FILE }} - ${{ env.RELEASE_FILE }}.sha256 diff --git a/.github/workflows/migration-tarball.yml b/.github/workflows/migration-tarball.yml new file mode 100644 index 000000000..33a715d0a --- /dev/null +++ b/.github/workflows/migration-tarball.yml @@ -0,0 +1,127 @@ +name: Build Migration Tarball + +on: + push: + branches: [nixos] + paths: + - 'flake.nix' + - 'flake.lock' + - 'nixos/**' + - '.github/workflows/migration-tarball.yml' + workflow_dispatch: + inputs: + version: + description: "Version tag (e.g. 2.5.0)" + required: false + default: "2.5.0" + type: string + +jobs: + build-migration-tarball: + runs-on: [self-hosted, aarch64] + permissions: + contents: write + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set version + run: | + if [ -n "${{ inputs.version }}" ]; then + echo "VERSION=${{ inputs.version }}" >> "$GITHUB_ENV" + else + echo "VERSION=2.5.0" >> "$GITHUB_ENV" + fi + + - name: Install Nix + uses: cachix/install-nix-action@v30 + with: + extra_nix_config: | + experimental-features = nix-command flakes + + - name: Setup Cachix + uses: cachix/cachix-action@v15 + with: + name: pifinder + authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' + + - name: Build SD image + run: | + nix build .#images.pifinder --print-out-paths > /tmp/image_path + echo "IMAGE_PATH=$(cat /tmp/image_path)" >> "$GITHUB_ENV" + + - name: Extract boot and rootfs from image + run: | + sudo rm -rf /tmp/tarball-staging /tmp/pifinder.img /mnt/boot /mnt/root + + IMAGE_FILE=$(find "$IMAGE_PATH" -type f \( -name "*.img" -o -name "*.img.zst" \) | head -1) + echo "Found image: $IMAGE_FILE" + + if [[ "${IMAGE_FILE}" == *.zst ]]; then + zstd -d "${IMAGE_FILE}" -o /tmp/pifinder.img + else + cp "${IMAGE_FILE}" /tmp/pifinder.img + fi + + LOOP=$(sudo losetup --find --show --partscan /tmp/pifinder.img) + + sudo mkdir -p /mnt/boot /mnt/root + sudo mount "${LOOP}p1" /mnt/boot + sudo mount "${LOOP}p2" /mnt/root + + mkdir -p /tmp/tarball-staging + sudo cp -a /mnt/boot /tmp/tarball-staging/boot + sudo cp -a /mnt/root /tmp/tarball-staging/rootfs + + # Remove catalog images (large, not needed for migration) + sudo rm -rf /tmp/tarball-staging/rootfs/home/pifinder/PiFinder_data/catalog_images + + sudo umount /mnt/boot /mnt/root + sudo losetup -d "${LOOP}" + rm -f /tmp/pifinder.img + + - name: Create migration tarball + run: | + TARBALL="pifinder-nixos-v${VERSION}.tar.zst" + + sudo tar -C /tmp/tarball-staging -cf - \ + --exclude='*/lost+found' \ + boot rootfs | zstd -T0 -19 -o "/tmp/${TARBALL}" + sudo rm -rf /tmp/tarball-staging + + echo "TARBALL=/tmp/${TARBALL}" >> "$GITHUB_ENV" + echo "TARBALL_NAME=${TARBALL}" >> "$GITHUB_ENV" + + sha256sum "/tmp/${TARBALL}" | awk '{print $1}' > "/tmp/${TARBALL}.sha256" + echo "SHA256=$(cat /tmp/${TARBALL}.sha256)" >> "$GITHUB_ENV" + + SIZE_MB=$(( $(stat -c%s "/tmp/${TARBALL}") / 1048576 )) + echo "SIZE_MB=${SIZE_MB}" >> "$GITHUB_ENV" + + echo "### Migration Tarball Built" >> "$GITHUB_STEP_SUMMARY" + echo "- **File:** ${TARBALL}" >> "$GITHUB_STEP_SUMMARY" + echo "- **Size:** ${SIZE_MB} MB" >> "$GITHUB_STEP_SUMMARY" + echo "- **SHA256:** \`$(cat /tmp/${TARBALL}.sha256)\`" >> "$GITHUB_STEP_SUMMARY" + + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: ${{ env.TARBALL_NAME }} + path: | + ${{ env.TARBALL }} + ${{ env.TARBALL }}.sha256 + + - name: Create release + uses: softprops/action-gh-release@v2 + with: + tag_name: v${{ env.VERSION }}-migration + name: PiFinder NixOS Migration v${{ env.VERSION }} + body: | + NixOS migration tarball (boot + rootfs, no catalog images). + Extracted from SD image, for use by migration initramfs. + + **Size:** ${{ env.SIZE_MB }} MB + **SHA256:** `${{ env.SHA256 }}` + files: | + ${{ env.TARBALL }} + ${{ env.TARBALL }}.sha256 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 19ad8db65..8c9dea9e3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -84,14 +84,35 @@ jobs: cp "$f" "release/pifinder-${TAG}.img.zst" done - - name: Build migration image + - name: Build migration tarball from SD image run: | - nix build .#images.migration \ - --system aarch64-linux \ - -L -o result-migration - for f in result-migration/sd-image/*.img.zst; do - cp "$f" "release/pifinder-migration-${TAG}.img.zst" - done + IMAGE_FILE=$(find result-sd/sd-image -type f \( -name "*.img" -o -name "*.img.zst" \) | head -1) + + rm -f /tmp/pifinder-release.img + if [[ "${IMAGE_FILE}" == *.zst ]]; then + zstd -d "${IMAGE_FILE}" -o /tmp/pifinder-release.img + else + cp "${IMAGE_FILE}" /tmp/pifinder-release.img + fi + + LOOP=$(sudo losetup --find --show --partscan /tmp/pifinder-release.img) + sudo mkdir -p /mnt/boot /mnt/root + sudo mount "${LOOP}p1" /mnt/boot + sudo mount "${LOOP}p2" /mnt/root + + mkdir -p /tmp/tarball-staging + sudo cp -a /mnt/boot /tmp/tarball-staging/boot + sudo cp -a /mnt/root /tmp/tarball-staging/rootfs + sudo rm -rf /tmp/tarball-staging/rootfs/home/pifinder/PiFinder_data/catalog_images + + sudo umount /mnt/boot /mnt/root + sudo losetup -d "${LOOP}" + rm -f /tmp/pifinder-release.img + + sudo tar -C /tmp/tarball-staging -cf - \ + --exclude='*/lost+found' \ + boot rootfs | zstd -T0 -19 -o "release/pifinder-migration-${TAG}.tar.zst" + sudo rm -rf /tmp/tarball-staging - name: Upload build artifacts uses: actions/upload-artifact@v4 @@ -108,4 +129,4 @@ jobs: body: ${{ inputs.notes }} prerelease: ${{ inputs.type == 'beta' }} files: | - release/pifinder-*.img.zst + release/pifinder-*.zst diff --git a/flake.nix b/flake.nix index 69a4ee988..3695226b5 100644 --- a/flake.nix +++ b/flake.nix @@ -31,7 +31,7 @@ }) ]; - mkPifinderSystem = { includeSDImage ? false, includeCatalogImages ? true }: nixpkgs.lib.nixosSystem { + mkPifinderSystem = { includeSDImage ? false }: nixpkgs.lib.nixosSystem { system = "aarch64-linux"; modules = commonModules ++ [ { pifinder.devMode = false; } @@ -100,7 +100,7 @@ installPhase = "mv catalog_images $out"; }; in { - sdImage.populateRootCommands = lib.optionalString includeCatalogImages '' + sdImage.populateRootCommands = '' mkdir -p ./files/home/pifinder/PiFinder_data cp -r ${catalog-images} ./files/home/pifinder/PiFinder_data/catalog_images chmod -R u+w ./files/home/pifinder/PiFinder_data/catalog_images @@ -281,10 +281,7 @@ pifinder-netboot = mkPifinderNetboot; }; images = { - # SD card image (with catalog images) pifinder = (mkPifinderSystem { includeSDImage = true; }).config.system.build.sdImage; - # Migration SD image (no catalog images — smaller download) - migration = (mkPifinderSystem { includeSDImage = true; includeCatalogImages = false; }).config.system.build.sdImage; }; packages.aarch64-linux = { uboot-sd = ubootSD; From 3e78e8e730150cdc5aa9f8bc03564da800408d90 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 23 Feb 2026 22:30:40 +0000 Subject: [PATCH 115/144] chore: stamp build [skip ci] --- pifinder-build.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pifinder-build.json b/pifinder-build.json index 9ff5e7b6d..96deb0b3d 100644 --- a/pifinder-build.json +++ b/pifinder-build.json @@ -1,4 +1,4 @@ { - "store_path": "/nix/store/ji94406hm9bpbs1naja35h8ym1gxy246-nixos-system-pifinder-25.11.20260209.2db38e0", - "version": "nixos-1959bae" + "store_path": "/nix/store/pa8yscvs4lva2x3jvdlp45s9d9x5b4fv-nixos-system-pifinder-25.11.20260209.2db38e0", + "version": "nixos-463b21a" } From 3701785b972ede1bacbc5a0e8b41d368a4511985 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Tue, 24 Feb 2026 14:19:14 +0100 Subject: [PATCH 116/144] fix: clean up stale mounts before migration tarball build Unmount and detach loop devices from previous runs before rm, preventing "Device or resource busy" failures on self-hosted runner. Co-Authored-By: Claude Opus 4.6 --- .github/workflows/migration-tarball.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/migration-tarball.yml b/.github/workflows/migration-tarball.yml index 33a715d0a..aaa6b0805 100644 --- a/.github/workflows/migration-tarball.yml +++ b/.github/workflows/migration-tarball.yml @@ -52,6 +52,8 @@ jobs: - name: Extract boot and rootfs from image run: | + sudo umount /mnt/boot /mnt/root 2>/dev/null || true + sudo losetup -D 2>/dev/null || true sudo rm -rf /tmp/tarball-staging /tmp/pifinder.img /mnt/boot /mnt/root IMAGE_FILE=$(find "$IMAGE_PATH" -type f \( -name "*.img" -o -name "*.img.zst" \) | head -1) From 99ba14cb74a4c433d02a1a7af82a657d0fed17fe Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 24 Feb 2026 13:37:04 +0000 Subject: [PATCH 117/144] chore: stamp build [skip ci] --- pifinder-build.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pifinder-build.json b/pifinder-build.json index 96deb0b3d..124dc92dc 100644 --- a/pifinder-build.json +++ b/pifinder-build.json @@ -1,4 +1,4 @@ { - "store_path": "/nix/store/pa8yscvs4lva2x3jvdlp45s9d9x5b4fv-nixos-system-pifinder-25.11.20260209.2db38e0", - "version": "nixos-463b21a" + "store_path": "/nix/store/jphnrzkxn6cp713y2vg4xixhpj6jfhdg-nixos-system-pifinder-25.11.20260209.2db38e0", + "version": "nixos-3701785" } From e68c241c029a5daceb7da03b349366d5b0be30b2 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Tue, 24 Feb 2026 14:55:22 +0100 Subject: [PATCH 118/144] fix: clean up stale tarballs from previous workflow runs Self-hosted runner retains /tmp files across runs. Move all cleanup (mounts, loop devices, tarballs) to a dedicated step at the start. Co-Authored-By: Claude Opus 4.6 --- .github/workflows/migration-tarball.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/migration-tarball.yml b/.github/workflows/migration-tarball.yml index aaa6b0805..a711a24af 100644 --- a/.github/workflows/migration-tarball.yml +++ b/.github/workflows/migration-tarball.yml @@ -50,11 +50,15 @@ jobs: nix build .#images.pifinder --print-out-paths > /tmp/image_path echo "IMAGE_PATH=$(cat /tmp/image_path)" >> "$GITHUB_ENV" - - name: Extract boot and rootfs from image + - name: Clean up previous runs run: | sudo umount /mnt/boot /mnt/root 2>/dev/null || true sudo losetup -D 2>/dev/null || true sudo rm -rf /tmp/tarball-staging /tmp/pifinder.img /mnt/boot /mnt/root + rm -f /tmp/pifinder-nixos-*.tar.zst /tmp/pifinder-nixos-*.tar.zst.sha256 + + - name: Extract boot and rootfs from image + run: | IMAGE_FILE=$(find "$IMAGE_PATH" -type f \( -name "*.img" -o -name "*.img.zst" \) | head -1) echo "Found image: $IMAGE_FILE" From 5d48cff25bd1a50d55a7ae1044f04079a8c5660a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 24 Feb 2026 14:24:33 +0000 Subject: [PATCH 119/144] chore: stamp build [skip ci] --- pifinder-build.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pifinder-build.json b/pifinder-build.json index 124dc92dc..be90bb6cb 100644 --- a/pifinder-build.json +++ b/pifinder-build.json @@ -1,4 +1,4 @@ { - "store_path": "/nix/store/jphnrzkxn6cp713y2vg4xixhpj6jfhdg-nixos-system-pifinder-25.11.20260209.2db38e0", - "version": "nixos-3701785" + "store_path": "/nix/store/j3mycjlgh3igzqjqgkfv77bzwh939wj2-nixos-system-pifinder-25.11.20260209.2db38e0", + "version": "nixos-e68c241" } From 0a7e7b5d8210b630fdb84169bdd2655d6879afa0 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Tue, 24 Feb 2026 15:30:48 +0100 Subject: [PATCH 120/144] feat: auto-update migration branch SHA256 after tarball build After creating the release, the workflow now checks out the migration branch and updates the hardcoded SHA256 and size in software.py. Co-Authored-By: Claude Opus 4.6 --- .github/workflows/migration-tarball.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/.github/workflows/migration-tarball.yml b/.github/workflows/migration-tarball.yml index a711a24af..653395ef9 100644 --- a/.github/workflows/migration-tarball.yml +++ b/.github/workflows/migration-tarball.yml @@ -131,3 +131,19 @@ jobs: files: | ${{ env.TARBALL }} ${{ env.TARBALL }}.sha256 + + - name: Update migration branch with new SHA256 + run: | + git fetch origin migration + git checkout migration + sed -i "s/\"migration_size_mb\": [0-9]*/\"migration_size_mb\": ${SIZE_MB}/" python/PiFinder/ui/software.py + sed -i "s/\"migration_sha256\": \"[a-f0-9]*/\"migration_sha256\": \"${SHA256}/" python/PiFinder/ui/software.py + if git diff --quiet; then + echo "No changes needed" + else + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + git add python/PiFinder/ui/software.py + git commit -m "fix: auto-update migration tarball SHA256 and size" + git push origin migration + fi From 24a57a10a29203596a049969fa341bcdf828c7db Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 24 Feb 2026 15:08:36 +0000 Subject: [PATCH 121/144] chore: stamp build [skip ci] --- pifinder-build.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pifinder-build.json b/pifinder-build.json index be90bb6cb..772965548 100644 --- a/pifinder-build.json +++ b/pifinder-build.json @@ -1,4 +1,4 @@ { - "store_path": "/nix/store/j3mycjlgh3igzqjqgkfv77bzwh939wj2-nixos-system-pifinder-25.11.20260209.2db38e0", - "version": "nixos-e68c241" + "store_path": "/nix/store/lygi7g3r5s7q6a8kcjw1q9ncjfp1zx8i-nixos-system-pifinder-25.11.20260209.2db38e0", + "version": "nixos-0a7e7b5" } From 370762f69f5bd113e30ae79d37d60dcffaecba06 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Tue, 24 Feb 2026 18:12:06 +0100 Subject: [PATCH 122/144] feat: add minimal migration profile with first-boot deferred download Migration tarball now uses a slimmed-down NixOS profile (migration.nix) that only includes SSH, avahi, and filesystem tools. The full PiFinder system (Python, samba, cedar-detect, libcamera, GPSD) is downloaded from cachix on first boot via pifinder-first-boot.service. CI builds the full system first and pushes to cachix, then builds the migration SD image and injects the full system store path into /var/lib/pifinder/first-boot-target. Expected tarball size reduction: ~1.4GB -> ~400-600MB. Co-Authored-By: Claude Opus 4.6 --- .github/workflows/migration-tarball.yml | 25 ++- flake.nix | 131 +++++++++++-- nixos/migration.nix | 238 ++++++++++++++++++++++++ 3 files changed, 374 insertions(+), 20 deletions(-) create mode 100644 nixos/migration.nix diff --git a/.github/workflows/migration-tarball.yml b/.github/workflows/migration-tarball.yml index 653395ef9..b23e4eae3 100644 --- a/.github/workflows/migration-tarball.yml +++ b/.github/workflows/migration-tarball.yml @@ -45,9 +45,19 @@ jobs: name: pifinder authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' - - name: Build SD image + - name: Build full system toplevel run: | - nix build .#images.pifinder --print-out-paths > /tmp/image_path + FULL_PATH=$(nix build .#nixosConfigurations.pifinder.config.system.build.toplevel --print-out-paths) + echo "FULL_PATH=$FULL_PATH" >> "$GITHUB_ENV" + echo "Full system toplevel: $FULL_PATH" + + - name: Push full system to cachix + run: | + cachix push pifinder "$FULL_PATH" + + - name: Build migration SD image + run: | + nix build .#images.pifinder-migration --print-out-paths > /tmp/image_path echo "IMAGE_PATH=$(cat /tmp/image_path)" >> "$GITHUB_ENV" - name: Clean up previous runs @@ -59,7 +69,6 @@ jobs: - name: Extract boot and rootfs from image run: | - IMAGE_FILE=$(find "$IMAGE_PATH" -type f \( -name "*.img" -o -name "*.img.zst" \) | head -1) echo "Found image: $IMAGE_FILE" @@ -79,13 +88,15 @@ jobs: sudo cp -a /mnt/boot /tmp/tarball-staging/boot sudo cp -a /mnt/root /tmp/tarball-staging/rootfs - # Remove catalog images (large, not needed for migration) - sudo rm -rf /tmp/tarball-staging/rootfs/home/pifinder/PiFinder_data/catalog_images - sudo umount /mnt/boot /mnt/root sudo losetup -d "${LOOP}" rm -f /tmp/pifinder.img + - name: Inject first-boot target + run: | + sudo mkdir -p /tmp/tarball-staging/rootfs/var/lib/pifinder + echo "$FULL_PATH" | sudo tee /tmp/tarball-staging/rootfs/var/lib/pifinder/first-boot-target + - name: Create migration tarball run: | TARBALL="pifinder-nixos-v${VERSION}.tar.zst" @@ -124,7 +135,7 @@ jobs: name: PiFinder NixOS Migration v${{ env.VERSION }} body: | NixOS migration tarball (boot + rootfs, no catalog images). - Extracted from SD image, for use by migration initramfs. + Extracted from migration SD image with first-boot deferred download. **Size:** ${{ env.SIZE_MB }} MB **SHA256:** `${{ env.SHA256 }}` diff --git a/flake.nix b/flake.nix index 3695226b5..b3142272d 100644 --- a/flake.nix +++ b/flake.nix @@ -5,6 +5,20 @@ }; outputs = { self, nixpkgs, nixos-hardware, ... }: let + # Headless config shared by all profiles + headlessModule = { lib, ... }: { + services.xserver.enable = false; + security.polkit.enable = true; + fonts.fontconfig.enable = false; + documentation.enable = false; + documentation.man.enable = false; + documentation.nixos.enable = false; + xdg.portal.enable = false; + services.pipewire.enable = false; + services.pulseaudio.enable = false; + boot.initrd.availableKernelModules = lib.mkForce [ "mmc_block" "usbhid" "usb_storage" "vc4" ]; + }; + # Shared modules for all PiFinder configurations commonModules = [ nixos-hardware.nixosModules.raspberry-pi-4 @@ -16,19 +30,16 @@ ({ ... }: { _module.args.pifinderGitRev = self.shortRev or self.dirtyShortRev or "unknown"; }) - # Headless — strip X11, fonts, docs, desktop bloat - ({ lib, ... }: { - services.xserver.enable = false; - security.polkit.enable = true; - fonts.fontconfig.enable = false; - documentation.enable = false; - documentation.man.enable = false; - documentation.nixos.enable = false; - xdg.portal.enable = false; - services.pipewire.enable = false; - services.pulseaudio.enable = false; - boot.initrd.availableKernelModules = lib.mkForce [ "mmc_block" "usbhid" "usb_storage" "vc4" ]; - }) + headlessModule + ]; + + # Migration profile — minimal bootable system, full config fetched on first boot + migrationModules = [ + nixos-hardware.nixosModules.raspberry-pi-4 + ./nixos/hardware.nix + ./nixos/networking.nix + ./nixos/migration.nix + headlessModule ]; mkPifinderSystem = { includeSDImage ? false }: nixpkgs.lib.nixosSystem { @@ -143,6 +154,97 @@ ]; }; + mkPifinderMigration = { includeSDImage ? false }: nixpkgs.lib.nixosSystem { + system = "aarch64-linux"; + modules = migrationModules ++ [ + { pifinder.devMode = false; } + ({ lib, ... }: { + boot.supportedFilesystems = lib.mkForce [ "vfat" "ext4" ]; + boot.loader.timeout = 0; + }) + ] ++ nixpkgs.lib.optionals includeSDImage [ + "${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix" + ({ config, pkgs, lib, ... }: + let + ubootSD = pkgs.ubootRaspberryPi4_64bit.override { + extraConfig = '' + CONFIG_CMD_PXE=y + CONFIG_CMD_SYSBOOT=y + CONFIG_BOOTDELAY=0 + CONFIG_PREBOOT="" + CONFIG_BOOTCOMMAND="sysboot mmc 0:2 any 0x02400000 /boot/extlinux/extlinux.conf" + CONFIG_PCI=n + CONFIG_USB=n + CONFIG_CMD_USB=n + CONFIG_CMD_PCI=n + CONFIG_USB_KEYBOARD=n + CONFIG_BCMGENET=n + ''; + }; + configTxt = pkgs.writeText "config.txt" '' + [pi3] + kernel=u-boot-rpi3.bin + + [pi02] + kernel=u-boot-rpi3.bin + + [pi4] + kernel=u-boot-rpi4.bin + enable_gic=1 + armstub=armstub8-gic.bin + + disable_overscan=1 + arm_boost=1 + + [cm4] + otg_mode=1 + + [all] + arm_64bit=1 + enable_uart=1 + avoid_warnings=1 + ''; + in { + sdImage.populateRootCommands = '' + mkdir -p ./files/home/pifinder/PiFinder_data + ''; + sdImage.populateFirmwareCommands = lib.mkForce '' + (cd ${pkgs.raspberrypifw}/share/raspberrypi/boot && cp bootcode.bin fixup*.dat start*.elf $NIX_BUILD_TOP/firmware/) + + cp ${configTxt} firmware/config.txt + + # Pi3 files + cp ${pkgs.ubootRaspberryPi3_64bit}/u-boot.bin firmware/u-boot-rpi3.bin + cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2710-rpi-2-b.dtb firmware/ + cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2710-rpi-3-b.dtb firmware/ + cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2710-rpi-3-b-plus.dtb firmware/ + cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2710-rpi-cm3.dtb firmware/ + cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2710-rpi-zero-2.dtb firmware/ + cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2710-rpi-zero-2-w.dtb firmware/ + + # Pi4 files + cp ${ubootSD}/u-boot.bin firmware/u-boot-rpi4.bin + cp ${pkgs.raspberrypi-armstubs}/armstub8-gic.bin firmware/armstub8-gic.bin + cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2711-rpi-4-b.dtb firmware/ + cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2711-rpi-400.dtb firmware/ + cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2711-rpi-cm4.dtb firmware/ + cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2711-rpi-cm4s.dtb firmware/ + ''; + }) + ] ++ nixpkgs.lib.optionals (!includeSDImage) [ + ({ lib, ... }: { + fileSystems."/" = { + device = "/dev/disk/by-label/NIXOS_SD"; + fsType = "ext4"; + }; + fileSystems."/boot/firmware" = { + device = "/dev/disk/by-label/FIRMWARE"; + fsType = "vfat"; + }; + }) + ]; + }; + # Netboot configuration — NFS root, DHCP network in initrd mkPifinderNetboot = nixpkgs.lib.nixosSystem { system = "aarch64-linux"; @@ -277,11 +379,14 @@ nixosConfigurations = { # SD card boot — camera baked into DT, switched via specialisations pifinder = mkPifinderSystem {}; + # Migration — minimal bootable system, defers full system to first boot + pifinder-migration = mkPifinderMigration {}; # NFS netboot — for development on proxnix pifinder-netboot = mkPifinderNetboot; }; images = { pifinder = (mkPifinderSystem { includeSDImage = true; }).config.system.build.sdImage; + pifinder-migration = (mkPifinderMigration { includeSDImage = true; }).config.system.build.sdImage; }; packages.aarch64-linux = { uboot-sd = ubootSD; diff --git a/nixos/migration.nix b/nixos/migration.nix new file mode 100644 index 000000000..04efbf23f --- /dev/null +++ b/nixos/migration.nix @@ -0,0 +1,238 @@ +{ config, lib, pkgs, ... }: +let + boot-splash = import ./pkgs/boot-splash.nix { inherit pkgs; }; +in { + options.pifinder = { + devMode = lib.mkOption { + type = lib.types.bool; + default = false; + description = "Enable development mode (NFS netboot support, etc.)"; + }; + }; + + config = { + # --------------------------------------------------------------------------- + # Minimal system packages for migration troubleshooting + # --------------------------------------------------------------------------- + environment.systemPackages = with pkgs; [ + vim + htop + e2fsprogs + dosfstools + parted + file + curl + ]; + + # --------------------------------------------------------------------------- + # Cachix binary substituter — Pi downloads pre-built paths, never compiles + # --------------------------------------------------------------------------- + nix.settings = { + experimental-features = [ "nix-command" "flakes" ]; + substituters = [ + "https://cache.nixos.org" + "https://pifinder.cachix.org" + ]; + trusted-public-keys = [ + "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" + "pifinder.cachix.org-1:ALuxYs8tMU34zwSTWjenI2wpJA+AclmW6H5vyTgnTjc=" + ]; + }; + + # --------------------------------------------------------------------------- + # SD card optimizations + # --------------------------------------------------------------------------- + boot.loader.generic-extlinux-compatible.configurationLimit = 2; + + nix.gc = { + automatic = true; + dates = "weekly"; + options = "--delete-older-than 3d"; + }; + nix.settings.auto-optimise-store = true; + + boot.tmp.useTmpfs = true; + boot.tmp.tmpfsSize = "200M"; + + services.journald.extraConfig = '' + Storage=volatile + RuntimeMaxUse=50M + ''; + + zramSwap = { + enable = true; + memoryPercent = 50; + }; + + fileSystems."/" = lib.mkDefault { + device = "/dev/disk/by-label/NIXOS_SD"; + fsType = "ext4"; + options = [ "noatime" "nodiratime" ]; + }; + + # --------------------------------------------------------------------------- + # Nix DB registration (first boot after migration) + # --------------------------------------------------------------------------- + systemd.services.nix-path-registration = { + description = "Load Nix store path registration from migration"; + after = [ "local-fs.target" ]; + before = [ "nix-daemon.service" ]; + wantedBy = [ "multi-user.target" ]; + unitConfig.ConditionPathExists = "/nix-path-registration"; + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + }; + path = with pkgs; [ nix coreutils ]; + script = '' + nix-store --load-db < /nix-path-registration + rm /nix-path-registration + ''; + }; + + # --------------------------------------------------------------------------- + # First boot: download full PiFinder system from cachix and switch + # --------------------------------------------------------------------------- + systemd.services.pifinder-first-boot = { + description = "Download full PiFinder NixOS system from cachix"; + after = [ "network-online.target" "nix-path-registration.service" "nix-daemon.service" ]; + wants = [ "network-online.target" ]; + wantedBy = [ "multi-user.target" ]; + unitConfig.ConditionPathExists = "/var/lib/pifinder/first-boot-target"; + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + TimeoutStartSec = "30min"; + }; + path = with pkgs; [ nix coreutils systemd ]; + script = '' + set -euo pipefail + + STORE_PATH=$(cat /var/lib/pifinder/first-boot-target) + if [ -z "$STORE_PATH" ] || [[ "$STORE_PATH" != /nix/store/* ]]; then + echo "ERROR: Invalid store path: $STORE_PATH" + exit 1 + fi + + echo "Downloading full PiFinder system: $STORE_PATH" + nix build "$STORE_PATH" --max-jobs 0 + + echo "Setting system profile..." + nix-env -p /nix/var/nix/profiles/system --set "$STORE_PATH" + + echo "Configuring bootloader..." + "$STORE_PATH/bin/switch-to-configuration" boot + + echo "Removing first-boot trigger..." + rm /var/lib/pifinder/first-boot-target + + echo "Cleaning up migration closure..." + nix-env --delete-generations +2 -p /nix/var/nix/profiles/system || true + nix-collect-garbage || true + + echo "Rebooting into full PiFinder system..." + systemctl reboot + ''; + }; + + # --------------------------------------------------------------------------- + # Polkit rules for NetworkManager control + # --------------------------------------------------------------------------- + security.polkit.extraConfig = '' + polkit.addRule(function(action, subject) { + if (subject.user == "pifinder") { + if (action.id.indexOf("org.freedesktop.NetworkManager") == 0) { + return polkit.Result.YES; + } + } + }); + ''; + + # --------------------------------------------------------------------------- + # Sudoers — minimal for migration + # --------------------------------------------------------------------------- + security.sudo.extraRules = [{ + users = [ "pifinder" ]; + commands = [ + { command = "/run/current-system/sw/bin/shutdown *"; options = [ "NOPASSWD" ]; } + { command = "/run/current-system/sw/bin/hostname *"; options = [ "NOPASSWD" ]; } + { command = "/run/current-system/sw/bin/dmesg"; options = [ "NOPASSWD" ]; } + ]; + }]; + + # --------------------------------------------------------------------------- + # Early boot splash + # --------------------------------------------------------------------------- + systemd.services.boot-splash = { + description = "Early boot splash screen"; + wantedBy = [ "sysinit.target" ]; + after = [ "systemd-modules-load.service" ]; + wants = [ "systemd-modules-load.service" ]; + unitConfig.DefaultDependencies = false; + serviceConfig = { + Type = "oneshot"; + ExecStart = pkgs.writeShellScript "boot-splash-wait" '' + for i in $(seq 1 40); do + [ -e /dev/spidev0.0 ] && exec ${boot-splash}/bin/boot-splash --static + sleep 0.25 + done + echo "SPI device never appeared" >&2 + exit 1 + ''; + }; + }; + + # --------------------------------------------------------------------------- + # SSH access + # --------------------------------------------------------------------------- + services.openssh = { + enable = true; + settings = { + PasswordAuthentication = true; + PermitRootLogin = "yes"; + }; + }; + + # --------------------------------------------------------------------------- + # Avahi/mDNS for hostname discovery (pifinder.local) + # --------------------------------------------------------------------------- + services.avahi = { + enable = true; + nssmdns4 = true; + publish = { + enable = true; + addresses = true; + domain = true; + workstation = true; + }; + }; + + systemd.services.avahi-daemon.serviceConfig.ExecStartPre = + "${pkgs.coreutils}/bin/rm -f /run/avahi-daemon/pid"; + + # Apply user-chosen hostname from PiFinder_data (survives NixOS rebuilds) + systemd.services.pifinder-hostname = { + description = "Apply PiFinder custom hostname"; + after = [ "avahi-daemon.service" ]; + wants = [ "avahi-daemon.service" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + ExecStart = pkgs.writeShellScript "apply-hostname" '' + f=/home/pifinder/PiFinder_data/hostname + [ -f "$f" ] || exit 0 + name=$(cat "$f") + [ -n "$name" ] || exit 0 + /run/current-system/sw/bin/hostname "$name" + /run/current-system/sw/bin/avahi-set-host-name "$name" || \ + /run/current-system/sw/bin/systemctl restart avahi-daemon.service + ''; + }; + }; + + systemd.services.NetworkManager-wait-online.enable = false; + + system.stateVersion = "24.11"; + }; # config +} From b85f7f1b697057c9f4a94920dcc6daed3901805a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 24 Feb 2026 17:27:03 +0000 Subject: [PATCH 123/144] chore: stamp build [skip ci] --- pifinder-build.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pifinder-build.json b/pifinder-build.json index 772965548..60c8f3568 100644 --- a/pifinder-build.json +++ b/pifinder-build.json @@ -1,4 +1,4 @@ { - "store_path": "/nix/store/lygi7g3r5s7q6a8kcjw1q9ncjfp1zx8i-nixos-system-pifinder-25.11.20260209.2db38e0", - "version": "nixos-0a7e7b5" + "store_path": "/nix/store/fc5gnw87g1pnd7pm0qkmd9i942yzsq5q-nixos-system-pifinder-25.11.20260209.2db38e0", + "version": "nixos-370762f" } From ed8faa77a29a12c2dd5e8c6165a453828e07e6c5 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Tue, 24 Feb 2026 18:29:28 +0100 Subject: [PATCH 124/144] feat: merge migration tarball build into main CI workflow GitHub only discovers workflows from the default branch, so the standalone migration-tarball.yml never triggered. Merge it as a build-migration-tarball job in build.yml that reuses the full system store path from build-native/build-emulated. Only runs on nixos branch. Co-Authored-By: Claude Opus 4.6 --- .github/workflows/build.yml | 142 +++++++++++++++++++++ .github/workflows/migration-tarball.yml | 160 ------------------------ 2 files changed, 142 insertions(+), 160 deletions(-) delete mode 100644 .github/workflows/migration-tarball.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 771a0d313..e57bc4be0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -6,6 +6,12 @@ on: pull_request: types: [labeled, synchronize, opened] workflow_dispatch: + inputs: + migration_version: + description: "Migration tarball version tag (e.g. 2.5.0)" + required: false + default: "2.5.0" + type: string concurrency: group: build-${{ github.head_ref || github.ref_name }} @@ -153,3 +159,139 @@ jobs: git add pifinder-build.json git diff --staged --quiet || git commit -m "chore: stamp build [skip ci]" git push + + # Build migration tarball — only on nixos branch pushes + build-migration-tarball: + needs: [build-native, build-emulated] + if: | + always() && + github.ref == 'refs/heads/nixos' && + (needs.build-native.result == 'success' || needs.build-emulated.result == 'success') + runs-on: [self-hosted, aarch64] + permissions: + contents: write + steps: + - uses: actions/checkout@v4 + + - uses: cachix/cachix-action@v15 + with: + name: pifinder + authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' + + - name: Set version + run: | + if [ -n "${{ inputs.migration_version }}" ]; then + echo "VERSION=${{ inputs.migration_version }}" >> "$GITHUB_ENV" + else + echo "VERSION=2.5.0" >> "$GITHUB_ENV" + fi + + - name: Resolve full system store path + run: | + FULL_PATH="${{ needs.build-native.outputs.store_path || needs.build-emulated.outputs.store_path }}" + echo "FULL_PATH=$FULL_PATH" >> "$GITHUB_ENV" + echo "Full system toplevel: $FULL_PATH" + + - name: Build migration SD image + run: | + nix build .#images.pifinder-migration --print-out-paths > /tmp/image_path + echo "IMAGE_PATH=$(cat /tmp/image_path)" >> "$GITHUB_ENV" + + - name: Clean up previous runs + run: | + sudo umount /mnt/boot /mnt/root 2>/dev/null || true + sudo losetup -D 2>/dev/null || true + sudo rm -rf /tmp/tarball-staging /tmp/pifinder.img /mnt/boot /mnt/root + rm -f /tmp/pifinder-nixos-*.tar.zst /tmp/pifinder-nixos-*.tar.zst.sha256 + + - name: Extract boot and rootfs from image + run: | + IMAGE_FILE=$(find "$IMAGE_PATH" -type f \( -name "*.img" -o -name "*.img.zst" \) | head -1) + echo "Found image: $IMAGE_FILE" + + if [[ "${IMAGE_FILE}" == *.zst ]]; then + zstd -d "${IMAGE_FILE}" -o /tmp/pifinder.img + else + cp "${IMAGE_FILE}" /tmp/pifinder.img + fi + + LOOP=$(sudo losetup --find --show --partscan /tmp/pifinder.img) + + sudo mkdir -p /mnt/boot /mnt/root + sudo mount "${LOOP}p1" /mnt/boot + sudo mount "${LOOP}p2" /mnt/root + + mkdir -p /tmp/tarball-staging + sudo cp -a /mnt/boot /tmp/tarball-staging/boot + sudo cp -a /mnt/root /tmp/tarball-staging/rootfs + + sudo umount /mnt/boot /mnt/root + sudo losetup -d "${LOOP}" + rm -f /tmp/pifinder.img + + - name: Inject first-boot target + run: | + sudo mkdir -p /tmp/tarball-staging/rootfs/var/lib/pifinder + echo "$FULL_PATH" | sudo tee /tmp/tarball-staging/rootfs/var/lib/pifinder/first-boot-target + + - name: Create migration tarball + run: | + TARBALL="pifinder-nixos-v${VERSION}.tar.zst" + + sudo tar -C /tmp/tarball-staging -cf - \ + --exclude='*/lost+found' \ + boot rootfs | zstd -T0 -19 -o "/tmp/${TARBALL}" + sudo rm -rf /tmp/tarball-staging + + echo "TARBALL=/tmp/${TARBALL}" >> "$GITHUB_ENV" + echo "TARBALL_NAME=${TARBALL}" >> "$GITHUB_ENV" + + sha256sum "/tmp/${TARBALL}" | awk '{print $1}' > "/tmp/${TARBALL}.sha256" + echo "SHA256=$(cat /tmp/${TARBALL}.sha256)" >> "$GITHUB_ENV" + + SIZE_MB=$(( $(stat -c%s "/tmp/${TARBALL}") / 1048576 )) + echo "SIZE_MB=${SIZE_MB}" >> "$GITHUB_ENV" + + echo "### Migration Tarball Built" >> "$GITHUB_STEP_SUMMARY" + echo "- **File:** ${TARBALL}" >> "$GITHUB_STEP_SUMMARY" + echo "- **Size:** ${SIZE_MB} MB" >> "$GITHUB_STEP_SUMMARY" + echo "- **SHA256:** \`$(cat /tmp/${TARBALL}.sha256)\`" >> "$GITHUB_STEP_SUMMARY" + + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: ${{ env.TARBALL_NAME }} + path: | + ${{ env.TARBALL }} + ${{ env.TARBALL }}.sha256 + + - name: Create release + uses: softprops/action-gh-release@v2 + with: + tag_name: v${{ env.VERSION }}-migration + name: PiFinder NixOS Migration v${{ env.VERSION }} + body: | + NixOS migration tarball (boot + rootfs, no catalog images). + Extracted from migration SD image with first-boot deferred download. + + **Size:** ${{ env.SIZE_MB }} MB + **SHA256:** `${{ env.SHA256 }}` + files: | + ${{ env.TARBALL }} + ${{ env.TARBALL }}.sha256 + + - name: Update migration branch with new SHA256 + run: | + git fetch origin migration + git checkout migration + sed -i "s/\"migration_size_mb\": [0-9]*/\"migration_size_mb\": ${SIZE_MB}/" python/PiFinder/ui/software.py + sed -i "s/\"migration_sha256\": \"[a-f0-9]*/\"migration_sha256\": \"${SHA256}/" python/PiFinder/ui/software.py + if git diff --quiet; then + echo "No changes needed" + else + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + git add python/PiFinder/ui/software.py + git commit -m "fix: auto-update migration tarball SHA256 and size" + git push origin migration + fi diff --git a/.github/workflows/migration-tarball.yml b/.github/workflows/migration-tarball.yml deleted file mode 100644 index b23e4eae3..000000000 --- a/.github/workflows/migration-tarball.yml +++ /dev/null @@ -1,160 +0,0 @@ -name: Build Migration Tarball - -on: - push: - branches: [nixos] - paths: - - 'flake.nix' - - 'flake.lock' - - 'nixos/**' - - '.github/workflows/migration-tarball.yml' - workflow_dispatch: - inputs: - version: - description: "Version tag (e.g. 2.5.0)" - required: false - default: "2.5.0" - type: string - -jobs: - build-migration-tarball: - runs-on: [self-hosted, aarch64] - permissions: - contents: write - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Set version - run: | - if [ -n "${{ inputs.version }}" ]; then - echo "VERSION=${{ inputs.version }}" >> "$GITHUB_ENV" - else - echo "VERSION=2.5.0" >> "$GITHUB_ENV" - fi - - - name: Install Nix - uses: cachix/install-nix-action@v30 - with: - extra_nix_config: | - experimental-features = nix-command flakes - - - name: Setup Cachix - uses: cachix/cachix-action@v15 - with: - name: pifinder - authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' - - - name: Build full system toplevel - run: | - FULL_PATH=$(nix build .#nixosConfigurations.pifinder.config.system.build.toplevel --print-out-paths) - echo "FULL_PATH=$FULL_PATH" >> "$GITHUB_ENV" - echo "Full system toplevel: $FULL_PATH" - - - name: Push full system to cachix - run: | - cachix push pifinder "$FULL_PATH" - - - name: Build migration SD image - run: | - nix build .#images.pifinder-migration --print-out-paths > /tmp/image_path - echo "IMAGE_PATH=$(cat /tmp/image_path)" >> "$GITHUB_ENV" - - - name: Clean up previous runs - run: | - sudo umount /mnt/boot /mnt/root 2>/dev/null || true - sudo losetup -D 2>/dev/null || true - sudo rm -rf /tmp/tarball-staging /tmp/pifinder.img /mnt/boot /mnt/root - rm -f /tmp/pifinder-nixos-*.tar.zst /tmp/pifinder-nixos-*.tar.zst.sha256 - - - name: Extract boot and rootfs from image - run: | - IMAGE_FILE=$(find "$IMAGE_PATH" -type f \( -name "*.img" -o -name "*.img.zst" \) | head -1) - echo "Found image: $IMAGE_FILE" - - if [[ "${IMAGE_FILE}" == *.zst ]]; then - zstd -d "${IMAGE_FILE}" -o /tmp/pifinder.img - else - cp "${IMAGE_FILE}" /tmp/pifinder.img - fi - - LOOP=$(sudo losetup --find --show --partscan /tmp/pifinder.img) - - sudo mkdir -p /mnt/boot /mnt/root - sudo mount "${LOOP}p1" /mnt/boot - sudo mount "${LOOP}p2" /mnt/root - - mkdir -p /tmp/tarball-staging - sudo cp -a /mnt/boot /tmp/tarball-staging/boot - sudo cp -a /mnt/root /tmp/tarball-staging/rootfs - - sudo umount /mnt/boot /mnt/root - sudo losetup -d "${LOOP}" - rm -f /tmp/pifinder.img - - - name: Inject first-boot target - run: | - sudo mkdir -p /tmp/tarball-staging/rootfs/var/lib/pifinder - echo "$FULL_PATH" | sudo tee /tmp/tarball-staging/rootfs/var/lib/pifinder/first-boot-target - - - name: Create migration tarball - run: | - TARBALL="pifinder-nixos-v${VERSION}.tar.zst" - - sudo tar -C /tmp/tarball-staging -cf - \ - --exclude='*/lost+found' \ - boot rootfs | zstd -T0 -19 -o "/tmp/${TARBALL}" - sudo rm -rf /tmp/tarball-staging - - echo "TARBALL=/tmp/${TARBALL}" >> "$GITHUB_ENV" - echo "TARBALL_NAME=${TARBALL}" >> "$GITHUB_ENV" - - sha256sum "/tmp/${TARBALL}" | awk '{print $1}' > "/tmp/${TARBALL}.sha256" - echo "SHA256=$(cat /tmp/${TARBALL}.sha256)" >> "$GITHUB_ENV" - - SIZE_MB=$(( $(stat -c%s "/tmp/${TARBALL}") / 1048576 )) - echo "SIZE_MB=${SIZE_MB}" >> "$GITHUB_ENV" - - echo "### Migration Tarball Built" >> "$GITHUB_STEP_SUMMARY" - echo "- **File:** ${TARBALL}" >> "$GITHUB_STEP_SUMMARY" - echo "- **Size:** ${SIZE_MB} MB" >> "$GITHUB_STEP_SUMMARY" - echo "- **SHA256:** \`$(cat /tmp/${TARBALL}.sha256)\`" >> "$GITHUB_STEP_SUMMARY" - - - name: Upload artifact - uses: actions/upload-artifact@v4 - with: - name: ${{ env.TARBALL_NAME }} - path: | - ${{ env.TARBALL }} - ${{ env.TARBALL }}.sha256 - - - name: Create release - uses: softprops/action-gh-release@v2 - with: - tag_name: v${{ env.VERSION }}-migration - name: PiFinder NixOS Migration v${{ env.VERSION }} - body: | - NixOS migration tarball (boot + rootfs, no catalog images). - Extracted from migration SD image with first-boot deferred download. - - **Size:** ${{ env.SIZE_MB }} MB - **SHA256:** `${{ env.SHA256 }}` - files: | - ${{ env.TARBALL }} - ${{ env.TARBALL }}.sha256 - - - name: Update migration branch with new SHA256 - run: | - git fetch origin migration - git checkout migration - sed -i "s/\"migration_size_mb\": [0-9]*/\"migration_size_mb\": ${SIZE_MB}/" python/PiFinder/ui/software.py - sed -i "s/\"migration_sha256\": \"[a-f0-9]*/\"migration_sha256\": \"${SHA256}/" python/PiFinder/ui/software.py - if git diff --quiet; then - echo "No changes needed" - else - git config user.name "github-actions[bot]" - git config user.email "github-actions[bot]@users.noreply.github.com" - git add python/PiFinder/ui/software.py - git commit -m "fix: auto-update migration tarball SHA256 and size" - git push origin migration - fi From 7d2dbca604800105fe23ce2962eb01e4bd6ac167 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 24 Feb 2026 17:30:48 +0000 Subject: [PATCH 125/144] chore: stamp build [skip ci] --- pifinder-build.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pifinder-build.json b/pifinder-build.json index 60c8f3568..c417b6f82 100644 --- a/pifinder-build.json +++ b/pifinder-build.json @@ -1,4 +1,4 @@ { - "store_path": "/nix/store/fc5gnw87g1pnd7pm0qkmd9i942yzsq5q-nixos-system-pifinder-25.11.20260209.2db38e0", - "version": "nixos-370762f" + "store_path": "/nix/store/fsq1dbji0y9il9il39hm0d74z4bi20kv-nixos-system-pifinder-25.11.20260209.2db38e0", + "version": "nixos-ed8faa7" } From 09d9465d62e238a176dd998cbd54c6e975a6e74b Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Tue, 24 Feb 2026 19:02:02 +0100 Subject: [PATCH 126/144] fix: shrink migration closure by ~200MB - Disable nix channels/registry/nixPath to avoid pulling nixpkgs source (~189 MB) into the closure - Strip NetworkManager VPN plugins (openconnect, stoken, gtk3 deps) Co-Authored-By: Claude Opus 4.6 --- nixos/migration.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/nixos/migration.nix b/nixos/migration.nix index 04efbf23f..6554d38e8 100644 --- a/nixos/migration.nix +++ b/nixos/migration.nix @@ -39,6 +39,14 @@ in { ]; }; + # Don't pull nixpkgs source into closure (~189 MB) + nix.channel.enable = false; + nix.registry = {}; + nix.nixPath = []; + + # Strip NetworkManager VPN plugins (openconnect/stoken/gtk3 deps) + networking.networkmanager.plugins = lib.mkForce []; + # --------------------------------------------------------------------------- # SD card optimizations # --------------------------------------------------------------------------- From c1444cae9f166c31c5ee771b8577c192af005dba Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 24 Feb 2026 18:03:46 +0000 Subject: [PATCH 127/144] chore: stamp build [skip ci] --- pifinder-build.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pifinder-build.json b/pifinder-build.json index c417b6f82..480a83c33 100644 --- a/pifinder-build.json +++ b/pifinder-build.json @@ -1,4 +1,4 @@ { - "store_path": "/nix/store/fsq1dbji0y9il9il39hm0d74z4bi20kv-nixos-system-pifinder-25.11.20260209.2db38e0", - "version": "nixos-ed8faa7" + "store_path": "/nix/store/f4f9qqqdyg37syll102mrm166f1pqsyb-nixos-system-pifinder-25.11.20260209.2db38e0", + "version": "nixos-09d9465" } From e175730285c61fa9b8a1ab1e04de0ae53db9c460 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Tue, 24 Feb 2026 19:23:55 +0100 Subject: [PATCH 128/144] fix: remove nixpkgs source, python, perl from migration closure - nix.registry/nixPath with mkForce to prevent flake self-reference from pulling nixpkgs source (~186 MB) - system.disableInstallerTools removes nixos-rebuild-ng which pulls Python 3.13 (~110 MB) - environment.defaultPackages = mkForce [] removes perl (~59 MB) - Swap vim (42 MB) for nano (3 MB) Expected savings: ~390 MB uncompressed. Co-Authored-By: Claude Opus 4.6 --- nixos/migration.nix | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/nixos/migration.nix b/nixos/migration.nix index 6554d38e8..40833147b 100644 --- a/nixos/migration.nix +++ b/nixos/migration.nix @@ -15,7 +15,7 @@ in { # Minimal system packages for migration troubleshooting # --------------------------------------------------------------------------- environment.systemPackages = with pkgs; [ - vim + nano htop e2fsprogs dosfstools @@ -39,10 +39,16 @@ in { ]; }; - # Don't pull nixpkgs source into closure (~189 MB) + # Don't pull nixpkgs source into closure (~186 MB) nix.channel.enable = false; - nix.registry = {}; - nix.nixPath = []; + nix.registry = lib.mkForce {}; + nix.nixPath = lib.mkForce []; + + # nixos-rebuild-ng pulls in Python 3.13 (~110 MB) — not needed for migration + system.disableInstallerTools = true; + + # Perl is included by default (~59 MB) — not needed for migration + environment.defaultPackages = lib.mkForce []; # Strip NetworkManager VPN plugins (openconnect/stoken/gtk3 deps) networking.networkmanager.plugins = lib.mkForce []; From d7a0cdf3a5f811c797f4875b00a0050ee89519f2 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 24 Feb 2026 18:25:31 +0000 Subject: [PATCH 129/144] chore: stamp build [skip ci] --- pifinder-build.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pifinder-build.json b/pifinder-build.json index 480a83c33..ee142904d 100644 --- a/pifinder-build.json +++ b/pifinder-build.json @@ -1,4 +1,4 @@ { - "store_path": "/nix/store/f4f9qqqdyg37syll102mrm166f1pqsyb-nixos-system-pifinder-25.11.20260209.2db38e0", - "version": "nixos-09d9465" + "store_path": "/nix/store/0klhjk35h2v574d4asi3f1vp7i97xk6z-nixos-system-pifinder-25.11.20260209.2db38e0", + "version": "nixos-e175730" } From df6143ed715ea11bd92fa671f4ec7417f2149145 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Tue, 24 Feb 2026 20:30:12 +0100 Subject: [PATCH 130/144] fix: log uncompressed size in migration tarball build Co-Authored-By: Claude Opus 4.6 --- .github/workflows/build.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e57bc4be0..dff328a7d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -238,6 +238,9 @@ jobs: run: | TARBALL="pifinder-nixos-v${VERSION}.tar.zst" + UNCOMPRESSED_MB=$(sudo du -sm /tmp/tarball-staging | awk '{print $1}') + echo "Uncompressed staging: ${UNCOMPRESSED_MB} MB" + sudo tar -C /tmp/tarball-staging -cf - \ --exclude='*/lost+found' \ boot rootfs | zstd -T0 -19 -o "/tmp/${TARBALL}" @@ -254,7 +257,8 @@ jobs: echo "### Migration Tarball Built" >> "$GITHUB_STEP_SUMMARY" echo "- **File:** ${TARBALL}" >> "$GITHUB_STEP_SUMMARY" - echo "- **Size:** ${SIZE_MB} MB" >> "$GITHUB_STEP_SUMMARY" + echo "- **Uncompressed:** ${UNCOMPRESSED_MB} MB" >> "$GITHUB_STEP_SUMMARY" + echo "- **Compressed:** ${SIZE_MB} MB" >> "$GITHUB_STEP_SUMMARY" echo "- **SHA256:** \`$(cat /tmp/${TARBALL}.sha256)\`" >> "$GITHUB_STEP_SUMMARY" - name: Upload artifact From 7dbdc534d3e6d24e7181575fde146c0c0ecfdd9b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 24 Feb 2026 19:31:45 +0000 Subject: [PATCH 131/144] chore: stamp build [skip ci] --- pifinder-build.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pifinder-build.json b/pifinder-build.json index ee142904d..cf27390e7 100644 --- a/pifinder-build.json +++ b/pifinder-build.json @@ -1,4 +1,4 @@ { - "store_path": "/nix/store/0klhjk35h2v574d4asi3f1vp7i97xk6z-nixos-system-pifinder-25.11.20260209.2db38e0", - "version": "nixos-e175730" + "store_path": "/nix/store/z76zk0gxzp4bnrjg517h2fbl2qni36bn-nixos-system-pifinder-25.11.20260209.2db38e0", + "version": "nixos-df6143e" } From 68ec94554aa44ada65231fd9c6f28f4f7be64d90 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Tue, 24 Feb 2026 21:55:51 +0100 Subject: [PATCH 132/144] feat: build migration tarball directly from nix store closure Replace SD image build/mount/extract cycle with direct closure assembly. This eliminates ext4 filesystem overhead, reducing tarball size to fit in Pi 4's 924 MB tmpfs. Also factors out configTxt and adds migration-boot-firmware package to deduplicate boot partition assembly across profiles. Co-Authored-By: Claude Opus 4.6 --- .github/workflows/build.yml | 113 +++++++++++++++++++++---------- flake.nix | 128 ++++++++++++++---------------------- 2 files changed, 128 insertions(+), 113 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index dff328a7d..0a825efa4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -192,59 +192,103 @@ jobs: echo "FULL_PATH=$FULL_PATH" >> "$GITHUB_ENV" echo "Full system toplevel: $FULL_PATH" - - name: Build migration SD image + - name: Build migration toplevel and boot firmware run: | - nix build .#images.pifinder-migration --print-out-paths > /tmp/image_path - echo "IMAGE_PATH=$(cat /tmp/image_path)" >> "$GITHUB_ENV" + MIGRATION_PATH=$(nix build \ + .#nixosConfigurations.pifinder-migration.config.system.build.toplevel \ + --json | jq -r '.[].outputs.out') + echo "MIGRATION_PATH=$MIGRATION_PATH" >> "$GITHUB_ENV" + echo "Migration toplevel: $MIGRATION_PATH" + + BOOT_FW=$(nix build .#packages.aarch64-linux.migration-boot-firmware \ + --json | jq -r '.[].outputs.out') + echo "BOOT_FW=$BOOT_FW" >> "$GITHUB_ENV" + echo "Boot firmware: $BOOT_FW" - name: Clean up previous runs run: | - sudo umount /mnt/boot /mnt/root 2>/dev/null || true - sudo losetup -D 2>/dev/null || true - sudo rm -rf /tmp/tarball-staging /tmp/pifinder.img /mnt/boot /mnt/root + rm -rf /tmp/tarball-staging rm -f /tmp/pifinder-nixos-*.tar.zst /tmp/pifinder-nixos-*.tar.zst.sha256 - - name: Extract boot and rootfs from image + - name: Assemble boot partition + run: | + set -euo pipefail + mkdir -p /tmp/tarball-staging/boot/{nixos,extlinux} + + # RPi firmware, u-boot, config.txt, firmware DTBs + cp "$BOOT_FW"/* /tmp/tarball-staging/boot/ + + # Kernel, initrd, dtbs from migration toplevel + KERNEL=$(readlink -f "$MIGRATION_PATH/kernel") + INITRD=$(readlink -f "$MIGRATION_PATH/initrd") + DTBS=$(readlink -f "$MIGRATION_PATH/dtbs") + + KERNEL_NAME=$(basename "$KERNEL") + INITRD_NAME=$(basename "$INITRD") + DTBS_NAME=$(basename "$DTBS") + + cp "$KERNEL" "/tmp/tarball-staging/boot/nixos/$KERNEL_NAME" + cp "$INITRD" "/tmp/tarball-staging/boot/nixos/$INITRD_NAME" + cp -r "$DTBS" "/tmp/tarball-staging/boot/nixos/$DTBS_NAME" + + # Generate extlinux.conf + KERNEL_PARAMS=$(cat "$MIGRATION_PATH/kernel-params") + cat > /tmp/tarball-staging/boot/extlinux/extlinux.conf < /tmp/tarball-staging/rootfs/nix-path-registration - mkdir -p /tmp/tarball-staging - sudo cp -a /mnt/boot /tmp/tarball-staging/boot - sudo cp -a /mnt/root /tmp/tarball-staging/rootfs + # First-boot target: full system to download from cachix + mkdir -p /tmp/tarball-staging/rootfs/var/lib/pifinder + echo "$FULL_PATH" > /tmp/tarball-staging/rootfs/var/lib/pifinder/first-boot-target - sudo umount /mnt/boot /mnt/root - sudo losetup -d "${LOOP}" - rm -f /tmp/pifinder.img + # PiFinder data directory + mkdir -p /tmp/tarball-staging/rootfs/home/pifinder/PiFinder_data - - name: Inject first-boot target - run: | - sudo mkdir -p /tmp/tarball-staging/rootfs/var/lib/pifinder - echo "$FULL_PATH" | sudo tee /tmp/tarball-staging/rootfs/var/lib/pifinder/first-boot-target + echo "Rootfs assembled" + du -sh /tmp/tarball-staging/rootfs/ - name: Create migration tarball run: | TARBALL="pifinder-nixos-v${VERSION}.tar.zst" - UNCOMPRESSED_MB=$(sudo du -sm /tmp/tarball-staging | awk '{print $1}') + UNCOMPRESSED_MB=$(du -sm /tmp/tarball-staging | awk '{print $1}') echo "Uncompressed staging: ${UNCOMPRESSED_MB} MB" - sudo tar -C /tmp/tarball-staging -cf - \ - --exclude='*/lost+found' \ - boot rootfs | zstd -T0 -19 -o "/tmp/${TARBALL}" - sudo rm -rf /tmp/tarball-staging + tar -C /tmp/tarball-staging -cf - boot rootfs \ + | zstd -T0 -19 -o "/tmp/${TARBALL}" + rm -rf /tmp/tarball-staging echo "TARBALL=/tmp/${TARBALL}" >> "$GITHUB_ENV" echo "TARBALL_NAME=${TARBALL}" >> "$GITHUB_ENV" @@ -260,6 +304,7 @@ jobs: echo "- **Uncompressed:** ${UNCOMPRESSED_MB} MB" >> "$GITHUB_STEP_SUMMARY" echo "- **Compressed:** ${SIZE_MB} MB" >> "$GITHUB_STEP_SUMMARY" echo "- **SHA256:** \`$(cat /tmp/${TARBALL}.sha256)\`" >> "$GITHUB_STEP_SUMMARY" + echo "- **Method:** direct closure assembly (no SD image)" >> "$GITHUB_STEP_SUMMARY" - name: Upload artifact uses: actions/upload-artifact@v4 @@ -276,7 +321,7 @@ jobs: name: PiFinder NixOS Migration v${{ env.VERSION }} body: | NixOS migration tarball (boot + rootfs, no catalog images). - Extracted from migration SD image with first-boot deferred download. + Assembled from nix store closure with first-boot deferred download. **Size:** ${{ env.SIZE_MB }} MB **SHA256:** `${{ env.SHA256 }}` diff --git a/flake.nix b/flake.nix index b3142272d..920a4d144 100644 --- a/flake.nix +++ b/flake.nix @@ -61,44 +61,6 @@ "${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix" ({ config, pkgs, lib, ... }: let - ubootSD = pkgs.ubootRaspberryPi4_64bit.override { - extraConfig = '' - CONFIG_CMD_PXE=y - CONFIG_CMD_SYSBOOT=y - CONFIG_BOOTDELAY=0 - CONFIG_PREBOOT="" - CONFIG_BOOTCOMMAND="sysboot mmc 0:2 any 0x02400000 /boot/extlinux/extlinux.conf" - CONFIG_PCI=n - CONFIG_USB=n - CONFIG_CMD_USB=n - CONFIG_CMD_PCI=n - CONFIG_USB_KEYBOARD=n - CONFIG_BCMGENET=n - ''; - }; - configTxt = pkgs.writeText "config.txt" '' - [pi3] - kernel=u-boot-rpi3.bin - - [pi02] - kernel=u-boot-rpi3.bin - - [pi4] - kernel=u-boot-rpi4.bin - enable_gic=1 - armstub=armstub8-gic.bin - - disable_overscan=1 - arm_boost=1 - - [cm4] - otg_mode=1 - - [all] - arm_64bit=1 - enable_uart=1 - avoid_warnings=1 - ''; catalog-images = pkgs.stdenv.mkDerivation { pname = "pifinder-catalog-images"; version = "1.0"; @@ -164,47 +126,7 @@ }) ] ++ nixpkgs.lib.optionals includeSDImage [ "${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix" - ({ config, pkgs, lib, ... }: - let - ubootSD = pkgs.ubootRaspberryPi4_64bit.override { - extraConfig = '' - CONFIG_CMD_PXE=y - CONFIG_CMD_SYSBOOT=y - CONFIG_BOOTDELAY=0 - CONFIG_PREBOOT="" - CONFIG_BOOTCOMMAND="sysboot mmc 0:2 any 0x02400000 /boot/extlinux/extlinux.conf" - CONFIG_PCI=n - CONFIG_USB=n - CONFIG_CMD_USB=n - CONFIG_CMD_PCI=n - CONFIG_USB_KEYBOARD=n - CONFIG_BCMGENET=n - ''; - }; - configTxt = pkgs.writeText "config.txt" '' - [pi3] - kernel=u-boot-rpi3.bin - - [pi02] - kernel=u-boot-rpi3.bin - - [pi4] - kernel=u-boot-rpi4.bin - enable_gic=1 - armstub=armstub8-gic.bin - - disable_overscan=1 - arm_boost=1 - - [cm4] - otg_mode=1 - - [all] - arm_64bit=1 - enable_uart=1 - avoid_warnings=1 - ''; - in { + ({ config, pkgs, lib, ... }: { sdImage.populateRootCommands = '' mkdir -p ./files/home/pifinder/PiFinder_data ''; @@ -375,6 +297,30 @@ ''; }; + configTxt = pkgsAarch64.writeText "config.txt" '' + [pi3] + kernel=u-boot-rpi3.bin + + [pi02] + kernel=u-boot-rpi3.bin + + [pi4] + kernel=u-boot-rpi4.bin + enable_gic=1 + armstub=armstub8-gic.bin + + disable_overscan=1 + arm_boost=1 + + [cm4] + otg_mode=1 + + [all] + arm_64bit=1 + enable_uart=1 + avoid_warnings=1 + ''; + in { nixosConfigurations = { # SD card boot — camera baked into DT, switched via specialisations @@ -391,6 +337,30 @@ packages.aarch64-linux = { uboot-sd = ubootSD; uboot-netboot = ubootNetboot; + migration-boot-firmware = pkgsAarch64.runCommand "migration-boot-firmware" {} '' + mkdir -p $out + FW=${pkgsAarch64.raspberrypifw}/share/raspberrypi/boot + + # RPi firmware + cp $FW/bootcode.bin $FW/fixup*.dat $FW/start*.elf $out/ + + # Pi3 DTBs + cp $FW/bcm2710-rpi-2-b.dtb $FW/bcm2710-rpi-3-b.dtb $FW/bcm2710-rpi-3-b-plus.dtb $out/ + cp $FW/bcm2710-rpi-cm3.dtb $FW/bcm2710-rpi-zero-2.dtb $FW/bcm2710-rpi-zero-2-w.dtb $out/ + + # Pi4 DTBs + cp $FW/bcm2711-rpi-4-b.dtb $FW/bcm2711-rpi-400.dtb $FW/bcm2711-rpi-cm4.dtb $FW/bcm2711-rpi-cm4s.dtb $out/ + + # config.txt + cp ${configTxt} $out/config.txt + + # u-boot binaries + cp ${pkgsAarch64.ubootRaspberryPi3_64bit}/u-boot.bin $out/u-boot-rpi3.bin + cp ${ubootSD}/u-boot.bin $out/u-boot-rpi4.bin + + # armstub + cp ${pkgsAarch64.raspberrypi-armstubs}/armstub8-gic.bin $out/armstub8-gic.bin + ''; }; devShells.x86_64-linux.default = let From e4b639fa148c6aecaea0685b382a89c3645f9a54 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 24 Feb 2026 20:57:27 +0000 Subject: [PATCH 133/144] chore: stamp build [skip ci] --- pifinder-build.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pifinder-build.json b/pifinder-build.json index cf27390e7..0c3c8afd1 100644 --- a/pifinder-build.json +++ b/pifinder-build.json @@ -1,4 +1,4 @@ { - "store_path": "/nix/store/z76zk0gxzp4bnrjg517h2fbl2qni36bn-nixos-system-pifinder-25.11.20260209.2db38e0", - "version": "nixos-df6143e" + "store_path": "/nix/store/ld29qykikjb6gqhh3395461ac4bs0fim-nixos-system-pifinder-25.11.20260209.2db38e0", + "version": "nixos-68ec945" } From da6578081c02b8e9e787201db8774a6ae0793b26 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Tue, 24 Feb 2026 22:15:29 +0100 Subject: [PATCH 134/144] fix: use sudo for tarball staging cleanup Nix store paths are read-only and root-owned; rm -rf without sudo fails on the copied closure paths. Co-Authored-By: Claude Opus 4.6 --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0a825efa4..9f9c91171 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -207,7 +207,7 @@ jobs: - name: Clean up previous runs run: | - rm -rf /tmp/tarball-staging + sudo rm -rf /tmp/tarball-staging rm -f /tmp/pifinder-nixos-*.tar.zst /tmp/pifinder-nixos-*.tar.zst.sha256 - name: Assemble boot partition @@ -288,7 +288,7 @@ jobs: tar -C /tmp/tarball-staging -cf - boot rootfs \ | zstd -T0 -19 -o "/tmp/${TARBALL}" - rm -rf /tmp/tarball-staging + sudo rm -rf /tmp/tarball-staging echo "TARBALL=/tmp/${TARBALL}" >> "$GITHUB_ENV" echo "TARBALL_NAME=${TARBALL}" >> "$GITHUB_ENV" From 8b187a73b3b22f1275b83ac223a3c7f5ebf001db Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 24 Feb 2026 21:17:08 +0000 Subject: [PATCH 135/144] chore: stamp build [skip ci] --- pifinder-build.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pifinder-build.json b/pifinder-build.json index 0c3c8afd1..4f8d5d3a9 100644 --- a/pifinder-build.json +++ b/pifinder-build.json @@ -1,4 +1,4 @@ { - "store_path": "/nix/store/ld29qykikjb6gqhh3395461ac4bs0fim-nixos-system-pifinder-25.11.20260209.2db38e0", - "version": "nixos-68ec945" + "store_path": "/nix/store/kyp9y9xl5mqxi98k194qs3jpx5p9cyvz-nixos-system-pifinder-25.11.20260209.2db38e0", + "version": "nixos-da65780" } From 3080e3646ba392b14a2ca0f2c01e15e72c4e1d16 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 9 Mar 2026 10:28:22 +0000 Subject: [PATCH 136/144] chore: stamp build [skip ci] --- pifinder-build.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pifinder-build.json b/pifinder-build.json index 4f8d5d3a9..116135ee6 100644 --- a/pifinder-build.json +++ b/pifinder-build.json @@ -1,4 +1,4 @@ { - "store_path": "/nix/store/kyp9y9xl5mqxi98k194qs3jpx5p9cyvz-nixos-system-pifinder-25.11.20260209.2db38e0", - "version": "nixos-da65780" + "store_path": "/nix/store/mh7vhrh41k0pdjrm49dmnv8zpnpdnnwl-nixos-system-pifinder-25.11.20260209.2db38e0", + "version": "nixos-a229215" } From 1ca781d60469ece56077fb29a20b65c202839daa Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Tue, 10 Mar 2026 22:16:37 +0100 Subject: [PATCH 137/144] fix: remove auto-update SHA256 step from CI SHA256 is now fetched at runtime from the .sha256 sidecar file in the GitHub release, eliminating the need for CI to update the migration branch after each build. Co-Authored-By: Claude Opus 4.6 --- .github/workflows/build.yml | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9f9c91171..8ddbef712 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -328,19 +328,3 @@ jobs: files: | ${{ env.TARBALL }} ${{ env.TARBALL }}.sha256 - - - name: Update migration branch with new SHA256 - run: | - git fetch origin migration - git checkout migration - sed -i "s/\"migration_size_mb\": [0-9]*/\"migration_size_mb\": ${SIZE_MB}/" python/PiFinder/ui/software.py - sed -i "s/\"migration_sha256\": \"[a-f0-9]*/\"migration_sha256\": \"${SHA256}/" python/PiFinder/ui/software.py - if git diff --quiet; then - echo "No changes needed" - else - git config user.name "github-actions[bot]" - git config user.email "github-actions[bot]@users.noreply.github.com" - git add python/PiFinder/ui/software.py - git commit -m "fix: auto-update migration tarball SHA256 and size" - git push origin migration - fi From f5c7388a1c849bb2dec10bf85aad55f63cbb5ae1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 10 Mar 2026 21:20:21 +0000 Subject: [PATCH 138/144] chore: stamp build [skip ci] --- pifinder-build.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pifinder-build.json b/pifinder-build.json index 116135ee6..9b3cf90bb 100644 --- a/pifinder-build.json +++ b/pifinder-build.json @@ -1,4 +1,4 @@ { - "store_path": "/nix/store/mh7vhrh41k0pdjrm49dmnv8zpnpdnnwl-nixos-system-pifinder-25.11.20260209.2db38e0", - "version": "nixos-a229215" + "store_path": "/nix/store/gsp659vkp1dy6gh1yn9hqbhkaci8q2ck-nixos-system-pifinder-25.11.20260209.2db38e0", + "version": "nixos-1ca781d" } From c7780256b5e035e37ba8935af322aab630102ad9 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Tue, 10 Mar 2026 23:33:07 +0100 Subject: [PATCH 139/144] fix: first-boot service waits for internet and retries on failure Root cause: network-online.target was unreliable because NetworkManager-wait-online was disabled, so pifinder-first-boot ran before internet was available. - Add curl-based connectivity check with 5-minute retry loop - Add Restart=on-failure with 15s delay - Re-enable NetworkManager-wait-online (with 30s timeout) - Add sudo permissions for systemctl/journalctl (remote recovery) Co-Authored-By: Claude Opus 4.6 --- nixos/migration.nix | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/nixos/migration.nix b/nixos/migration.nix index 40833147b..060a6b40c 100644 --- a/nixos/migration.nix +++ b/nixos/migration.nix @@ -15,7 +15,7 @@ in { # Minimal system packages for migration troubleshooting # --------------------------------------------------------------------------- environment.systemPackages = with pkgs; [ - nano + vim htop e2fsprogs dosfstools @@ -110,7 +110,7 @@ in { systemd.services.pifinder-first-boot = { description = "Download full PiFinder NixOS system from cachix"; after = [ "network-online.target" "nix-path-registration.service" "nix-daemon.service" ]; - wants = [ "network-online.target" ]; + requires = [ "network-online.target" ]; wantedBy = [ "multi-user.target" ]; unitConfig.ConditionPathExists = "/var/lib/pifinder/first-boot-target"; serviceConfig = { @@ -158,6 +158,12 @@ in { if (action.id.indexOf("org.freedesktop.NetworkManager") == 0) { return polkit.Result.YES; } + if (action.id == "org.freedesktop.login1.reboot" || + action.id == "org.freedesktop.login1.reboot-multiple-sessions" || + action.id == "org.freedesktop.login1.power-off" || + action.id == "org.freedesktop.login1.power-off-multiple-sessions") { + return polkit.Result.YES; + } } }); ''; @@ -169,8 +175,14 @@ in { users = [ "pifinder" ]; commands = [ { command = "/run/current-system/sw/bin/shutdown *"; options = [ "NOPASSWD" ]; } + { command = "/run/current-system/sw/bin/hostnamectl *"; options = [ "NOPASSWD" ]; } { command = "/run/current-system/sw/bin/hostname *"; options = [ "NOPASSWD" ]; } + { command = "/run/current-system/sw/bin/avahi-set-host-name *"; options = [ "NOPASSWD" ]; } { command = "/run/current-system/sw/bin/dmesg"; options = [ "NOPASSWD" ]; } + { command = "/run/current-system/sw/bin/systemctl restart pifinder-first-boot.service"; options = [ "NOPASSWD" ]; } + { command = "/run/current-system/sw/bin/systemctl restart pifinder*"; options = [ "NOPASSWD" ]; } + { command = "/run/current-system/sw/bin/systemctl status *"; options = [ "NOPASSWD" ]; } + { command = "/run/current-system/sw/bin/journalctl *"; options = [ "NOPASSWD" ]; } ]; }]; @@ -245,7 +257,10 @@ in { }; }; - systemd.services.NetworkManager-wait-online.enable = false; + # NetworkManager-wait-online adds ~10s to boot but is needed for + # pifinder-first-boot to have internet. The first-boot script also has + # its own connectivity retry loop as a fallback. + systemd.services.NetworkManager-wait-online.serviceConfig.TimeoutStartSec = "30s"; system.stateVersion = "24.11"; }; # config From e66b4f8f2f2247f0939f1cddf0b5ab67cbb62b93 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 10 Mar 2026 22:34:41 +0000 Subject: [PATCH 140/144] chore: stamp build [skip ci] --- pifinder-build.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pifinder-build.json b/pifinder-build.json index 9b3cf90bb..70903e944 100644 --- a/pifinder-build.json +++ b/pifinder-build.json @@ -1,4 +1,4 @@ { - "store_path": "/nix/store/gsp659vkp1dy6gh1yn9hqbhkaci8q2ck-nixos-system-pifinder-25.11.20260209.2db38e0", - "version": "nixos-1ca781d" + "store_path": "/nix/store/pzc1yin633vp8z6x1m7gqiwavim6wj3c-nixos-system-pifinder-25.11.20260209.2db38e0", + "version": "nixos-c778025" } From b2178e619bd8394cfad8600243746add97125f8f Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Tue, 10 Mar 2026 23:38:22 +0100 Subject: [PATCH 141/144] feat: show OLED scanner animation during first-boot download Starts boot-splash in animation mode while downloading the full system closure, so the user sees activity instead of a static screen. Co-Authored-By: Claude Opus 4.6 --- nixos/migration.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/nixos/migration.nix b/nixos/migration.nix index 060a6b40c..1dad9d23c 100644 --- a/nixos/migration.nix +++ b/nixos/migration.nix @@ -122,6 +122,11 @@ in { script = '' set -euo pipefail + # Show scanner animation on OLED during download + ${boot-splash}/bin/boot-splash & + SPLASH_PID=$! + trap 'kill $SPLASH_PID 2>/dev/null || true' EXIT + STORE_PATH=$(cat /var/lib/pifinder/first-boot-target) if [ -z "$STORE_PATH" ] || [[ "$STORE_PATH" != /nix/store/* ]]; then echo "ERROR: Invalid store path: $STORE_PATH" From 90a7687c6ff6416c94aead5595d0c3324f8d6f74 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 10 Mar 2026 22:40:38 +0000 Subject: [PATCH 142/144] chore: stamp build [skip ci] --- pifinder-build.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pifinder-build.json b/pifinder-build.json index 70903e944..6108fa167 100644 --- a/pifinder-build.json +++ b/pifinder-build.json @@ -1,4 +1,4 @@ { - "store_path": "/nix/store/pzc1yin633vp8z6x1m7gqiwavim6wj3c-nixos-system-pifinder-25.11.20260209.2db38e0", - "version": "nixos-c778025" + "store_path": "/nix/store/lbbg1krbsf7d53cwkiyr87ax72qx2v10-nixos-system-pifinder-25.11.20260209.2db38e0", + "version": "nixos-b2178e6" } From 4788e9e157747bb4cf4019d6447e542c5c475457 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Wed, 11 Mar 2026 11:56:11 +0100 Subject: [PATCH 143/144] fix: guard against None solution in screen_update crash loop solution() can return None when solve_state() is truthy, causing TypeError in base.py screen_update. Also fetch first-boot target from GitHub pifinder-build.json with baked-in fallback. Co-Authored-By: Claude Opus 4.6 --- move-to-brickbots.txt | 28 ++++++++++++++++++++++++++++ nixos/migration.nix | 18 +++++++++++++++--- python/PiFinder/ui/base.py | 2 ++ 3 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 move-to-brickbots.txt diff --git a/move-to-brickbots.txt b/move-to-brickbots.txt new file mode 100644 index 000000000..be0264c61 --- /dev/null +++ b/move-to-brickbots.txt @@ -0,0 +1,28 @@ +Locations that reference mrosseel/PiFinder and need updating after merge to brickbots/PiFinder +============================================================================================= + +1. nixos/migration.nix + - BUILD_JSON_URL points to: https://raw.githubusercontent.com/mrosseel/PiFinder/nixos/pifinder-build.json + - Change to: https://raw.githubusercontent.com/brickbots/PiFinder//pifinder-build.json + - Also: branch name may change from "nixos" to something else + +2. nixos/migration.nix + - Cachix substituter: https://pifinder.cachix.org + - Cachix public key: pifinder.cachix.org-1:ALuxYs8tMU34zwSTWjenI2wpJA+AclmW6H5vyTgnTjc= + - May need new cachix cache under brickbots org, or keep shared + +3. nixos/services.nix + - Same cachix substituter + public key as above + +4. flake.nix + - catalog_images.tar.zst hosted at: https://files.miker.be/public/pifinder/catalog_images.tar.zst + - Move to brickbots-hosted URL or keep as-is + +5. CLAUDE.md + - References: github:mrosseel/PiFinder/nixos#nixosConfigurations... + - Change to: github:brickbots/PiFinder/#nixosConfigurations... + +6. .github/workflows/build.yml + - stamp-build job commits pifinder-build.json back to the repo + - No explicit mrosseel reference, but the repo context changes implicitly + - Migration tarball release tags: v2.5.0-migration — may need new versioning scheme diff --git a/nixos/migration.nix b/nixos/migration.nix index 1dad9d23c..d4bed2582 100644 --- a/nixos/migration.nix +++ b/nixos/migration.nix @@ -118,7 +118,7 @@ in { RemainAfterExit = true; TimeoutStartSec = "30min"; }; - path = with pkgs; [ nix coreutils systemd ]; + path = with pkgs; [ nix coreutils systemd curl jq ]; script = '' set -euo pipefail @@ -127,9 +127,21 @@ in { SPLASH_PID=$! trap 'kill $SPLASH_PID 2>/dev/null || true' EXIT - STORE_PATH=$(cat /var/lib/pifinder/first-boot-target) + # Try fetching latest store path from GitHub, fall back to baked-in file + BUILD_JSON_URL="https://raw.githubusercontent.com/mrosseel/PiFinder/nixos/pifinder-build.json" + STORE_PATH="" + if REMOTE_JSON=$(curl -sf --max-time 15 "$BUILD_JSON_URL" 2>/dev/null); then + STORE_PATH=$(echo "$REMOTE_JSON" | jq -r '.store_path // empty') + if [ -n "$STORE_PATH" ]; then + echo "Using store path from GitHub: $STORE_PATH" + fi + fi + if [ -z "$STORE_PATH" ] || [[ "$STORE_PATH" != /nix/store/* ]]; then + echo "Remote fetch failed or invalid, falling back to baked-in target" + STORE_PATH=$(cat /var/lib/pifinder/first-boot-target) + fi if [ -z "$STORE_PATH" ] || [[ "$STORE_PATH" != /nix/store/* ]]; then - echo "ERROR: Invalid store path: $STORE_PATH" + echo "ERROR: No valid store path found" exit 1 fi diff --git a/python/PiFinder/ui/base.py b/python/PiFinder/ui/base.py index 85ed1b83e..9985e6adc 100644 --- a/python/PiFinder/ui/base.py +++ b/python/PiFinder/ui/base.py @@ -339,6 +339,8 @@ def screen_update(self, title_bar=True, button_hints=True) -> None: if self.shared_state: if self.shared_state.solve_state(): solution = self.shared_state.solution() + if solution is None: + return cam_active = solution["solve_time"] == solution["cam_solve_time"] # a fresh cam solve sets unmoved to True self._unmoved = True if cam_active else self._unmoved From c6d1979b1ee55fe8497d0f15a616a386cc35187b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 11 Mar 2026 10:58:04 +0000 Subject: [PATCH 144/144] chore: stamp build [skip ci] --- pifinder-build.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pifinder-build.json b/pifinder-build.json index 6108fa167..95937c3f1 100644 --- a/pifinder-build.json +++ b/pifinder-build.json @@ -1,4 +1,4 @@ { - "store_path": "/nix/store/lbbg1krbsf7d53cwkiyr87ax72qx2v10-nixos-system-pifinder-25.11.20260209.2db38e0", - "version": "nixos-b2178e6" + "store_path": "/nix/store/3ds5xpmxr87jpsh7pcnvpmn6sk50vh29-nixos-system-pifinder-25.11.20260209.2db38e0", + "version": "nixos-4788e9e" }
  • i?~d2 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